ASYLUM: Fix two warnings and rename two flags in Encounter class

git-svn-id: http://asylumengine.googlecode.com/svn/trunk@658 0bfb4aae-4ea4-11de-8d8d-752d95cf3e3c
This commit is contained in:
Julien Templier 2010-12-06 18:05:06 +00:00 committed by Eugene Sandulenko
parent ac0ae2162f
commit e5b3e4c476
No known key found for this signature in database
GPG key ID: 014D387312D34F08
6 changed files with 60 additions and 59 deletions

View file

@ -518,7 +518,7 @@ void Actor::update() {
break; break;
case kActorStatus8: case kActorStatus8:
if (_vm->encounter()->getFlag6() if (_vm->encounter()->isRunning()
|| !_soundResourceId || !_soundResourceId
|| getSound()->isPlaying(_soundResourceId)) { || getSound()->isPlaying(_soundResourceId)) {
_frameIndex = (_frameIndex + 1) % _frameCount; _frameIndex = (_frameIndex + 1) % _frameCount;
@ -613,7 +613,7 @@ void Actor::updateStatus(ActorStatus actorStatus) {
break; break;
case kActorStatus9: case kActorStatus9:
if (_vm->encounter()->getFlag6()) if (_vm->encounter()->isRunning())
return; return;
if (_vm->getRandomBit() == 1 && isDefaultDirection(15)) if (_vm->getRandomBit() == 1 && isDefaultDirection(15))
@ -1186,7 +1186,7 @@ void Actor::updateStatusEnabled() {
if (_vm->isGameFlagNotSet(kGameFlagScriptProcessing) if (_vm->isGameFlagNotSet(kGameFlagScriptProcessing)
&& isVisible() && isVisible()
&& !_vm->encounter()->getFlag6() && !_vm->encounter()->isRunning()
&& !getSpeech()->getSoundResourceId()) { && !getSpeech()->getSoundResourceId()) {
if (_vm->getRandom(100) < 50) { if (_vm->getRandom(100) < 50) {
if (getWorld()->chapter == kChapter13) if (getWorld()->chapter == kChapter13)

View file

@ -50,7 +50,7 @@ namespace Asylum {
Encounter::Encounter(AsylumEngine *engine) : _vm(engine), Encounter::Encounter(AsylumEngine *engine) : _vm(engine),
_index(0), _keywordIndex(0), _item(NULL), _objectId1(kObjectNone), _objectId2(kObjectNone), _actorIndex(kActorInvalid), _index(0), _keywordIndex(0), _item(NULL), _objectId1(kObjectNone), _objectId2(kObjectNone), _actorIndex(kActorInvalid),
_flag1(false), _flag2(false), _flag3(false), _flag4(false), _flag5(false), _flag6(false) { _flag1(false), _flag2(false), _flag3(false), _flag4(false), _disablePlayerOnExit(false), _isRunning(false) {
// TODO init rest of members // TODO init rest of members
@ -241,14 +241,14 @@ void Encounter::exit() {
initScript(_item->scriptResourceId); initScript(_item->scriptResourceId);
_flag3 = true; _flag3 = true;
runScript(); runScript();
setupEntities(true); setupEntities(true);
++_item->value; ++_item->value;
// Original saves the item back here // Original saves the item back here
// Update flags // Update flags
_flag6 = false; _isRunning = false;
getSharedData()->setFlag(kFlag3, true); getSharedData()->setFlag(kFlag3, true);
if (_flag2) if (_flag2)
@ -256,10 +256,10 @@ void Encounter::exit() {
else else
_flag1 = true; _flag1 = true;
if (_flag5) if (_disablePlayerOnExit)
getScene()->getActor()->updateStatus(kActorStatusDisabled); getScene()->getActor()->updateStatus(kActorStatusDisabled);
_flag5 = false; _disablePlayerOnExit = false;
if (getSound()->getMusicVolume() != Config.musicVolume) if (getSound()->getMusicVolume() != Config.musicVolume)
getSound()->setMusicVolume(Config.musicVolume); getSound()->setMusicVolume(Config.musicVolume);
@ -303,7 +303,7 @@ bool Encounter::init() {
getSound()->setMusicVolume(Config.musicVolume - 500); getSound()->setMusicVolume(Config.musicVolume - 500);
if (!getSharedData()->getMatteBarHeight()) { if (!getSharedData()->getMatteBarHeight()) {
_flag6 = true; _isRunning = true;
_data_455BD4 = false; _data_455BD4 = false;
_data_455BD8 = false; _data_455BD8 = false;
_data_455BDC = false; _data_455BDC = false;
@ -314,7 +314,7 @@ bool Encounter::init() {
_rectIndex = -1; _rectIndex = -1;
_value1 = 0; _value1 = 0;
_data_455BF4 = 0; _data_455BF4 = 0;
_data_455BF8 = false; _data_455BF8 = 0;
_data_455B14 = -1; _data_455B14 = -1;
getSpeech()->resetTextData(); getSpeech()->resetTextData();
@ -346,10 +346,10 @@ bool Encounter::update() {
if (_objectId3) { if (_objectId3) {
_data_455BD0 = false; _data_455BD0 = false;
Object *object = getWorld()->getObjectById(_objectId3); Object *object = getWorld()->getObjectById(_objectId3);
id = object->getResourceId(); id = object->getResourceId();
if (object->getFrameIndex() == object->getFrameCount() - 1) { if (object->getFrameIndex() == object->getFrameCount() - 1) {
switch (getVariable(3)) { switch (getVariable(3)) {
default: default:
@ -398,13 +398,14 @@ bool Encounter::update() {
_data_455BF4 = 2; _data_455BF4 = 2;
runScript(); runScript();
} }
bool doScript;
if ((getSpeech()->getSoundResourceId() bool doScript = false;
&& !getSound()->isPlaying(getSpeech()->getSoundResourceId()) if ((getSpeech()->getSoundResourceId()
&& !getSound()->isPlaying(getSpeech()->getSoundResourceId())
&& !_data_455BE0) && !_data_455BE0)
|| (getSpeech()->getTick() && tick >= getSpeech()->getTick())) || (getSpeech()->getTick() && tick >= getSpeech()->getTick()))
doScript = true; doScript = true;
if (!getSharedData()->getMatteBarHeight() && doScript && _flag4) { if (!getSharedData()->getMatteBarHeight() && doScript && _flag4) {
if (!setupSpeech(id)) if (!setupSpeech(id))
runScript(); runScript();
@ -415,8 +416,8 @@ bool Encounter::update() {
if (!getSharedData()->getFlag(kFlagRedraw)) { if (!getSharedData()->getFlag(kFlagRedraw)) {
if (updateScreen()) if (updateScreen())
return true; return true;
getSharedData()->setFlag(kFlagRedraw, true); getSharedData()->setFlag(kFlagRedraw, true);
} }
if (tick >= getSharedData()->getNextScreenUpdate() && getSharedData()->getFlag(kFlagRedraw)) { if (tick >= getSharedData()->getNextScreenUpdate() && getSharedData()->getFlag(kFlagRedraw)) {
@ -429,7 +430,7 @@ bool Encounter::update() {
getSharedData()->setFlag(kFlagRedraw, false); getSharedData()->setFlag(kFlagRedraw, false);
getSharedData()->setNextScreenUpdate(tick + 55); getSharedData()->setNextScreenUpdate(tick + 55);
} }
return true; return true;
} }
@ -443,8 +444,8 @@ bool Encounter::key(const AsylumEvent &evt) {
break; break;
case Common::KEYCODE_ESCAPE: case Common::KEYCODE_ESCAPE:
if (!isSpeaking() if (!isSpeaking()
&& _data_455BD0 && _data_455BD0
&& !getSpeech()->getTextData() && !getSpeech()->getTextData()
&& !getSpeech()->getTextDataPos()) && !getSpeech()->getTextDataPos())
_data_455BD4 = true; _data_455BD4 = true;
@ -473,19 +474,19 @@ bool Encounter::mouse(const AsylumEvent &evt) {
if (_rectIndex == -1) { if (_rectIndex == -1) {
if (!isSpeaking()) if (!isSpeaking())
choose(getKeywordIndex()); choose(getKeywordIndex());
_data_455BD8 = false; _data_455BD8 = false;
} else { } else {
_rectIndex = -1; _rectIndex = -1;
updateDrawingStatus1(_rectIndex); updateDrawingStatus1(_rectIndex);
_data_455BD8 = false; _data_455BD8 = false;
} }
break; break;
case Common::EVENT_RBUTTONDOWN: case Common::EVENT_RBUTTONDOWN:
if (!isSpeaking() if (!isSpeaking()
&& _data_455BD0 && _data_455BD0
&& !getSpeech()->getTextData() && !getSpeech()->getTextData()
&& !getSpeech()->getTextDataPos()) && !getSpeech()->getTextDataPos())
_data_455BD4 = true; _data_455BD4 = true;
@ -677,7 +678,7 @@ bool Encounter::setupSpeech(ResourceId id) {
getSpeech()->setTextResourceId(getSpeech()->getTextResourceId() + 1); getSpeech()->setTextResourceId(getSpeech()->getTextResourceId() + 1);
setupSpeechText(); setupSpeechText();
return true; return true;
} }
@ -706,7 +707,7 @@ bool Encounter::drawBackground() {
if (Config.performance > 1) { if (Config.performance > 1) {
if (_vm->isGameFlagSet(kGameFlag528)) { if (_vm->isGameFlagSet(kGameFlag528)) {
Common::Point origin; Common::Point origin;
getScreen()->addGraphicToQueueCrossfade(_background.resourceId, getScreen()->addGraphicToQueueCrossfade(_background.resourceId,
_background.frameIndex, _background.frameIndex,
_point, _point,
@ -715,16 +716,16 @@ bool Encounter::drawBackground() {
_background.transTableNum); _background.transTableNum);
} else { } else {
Common::Point origin(getWorld()->xLeft, getWorld()->yTop); Common::Point origin(getWorld()->xLeft, getWorld()->yTop);
getScreen()->addGraphicToQueueCrossfade(_background.resourceId, getScreen()->addGraphicToQueueCrossfade(_background.resourceId,
_background.frameIndex, _background.frameIndex,
_point, _point,
getWorld()->backgroundImage, getWorld()->backgroundImage,
origin, origin,
_background.transTableNum); _background.transTableNum);
} }
} else { } else {
getScreen()->draw(_background.resourceId, _background.frameIndex, _point.x, _point.y, 0); getScreen()->draw(_background.resourceId, _background.frameIndex, _point.x, _point.y, 0);
} }
if (_data_455BE4) { if (_data_455BE4) {
@ -749,7 +750,7 @@ bool Encounter::drawBackground() {
bool Encounter::drawPortraits() { bool Encounter::drawPortraits() {
bool ret = true; bool ret = true;
if (_data_455BD4) { if (_data_455BD4) {
_portrait1.transTableMax = 0; _portrait1.transTableMax = 0;
_portrait2.transTableMax = 0; _portrait2.transTableMax = 0;
@ -822,7 +823,7 @@ bool Encounter::drawPortraits() {
_portrait2.frameIndex %= _portrait2.frameCount; _portrait2.frameIndex %= _portrait2.frameCount;
} }
if (_data_455BD4) if (_data_455BD4)
if (_portrait1.transTableNum == _portrait1.transTableMax if (_portrait1.transTableNum == _portrait1.transTableMax
&& _portrait2.transTableNum == _portrait2.transTableMax) && _portrait2.transTableNum == _portrait2.transTableMax)
@ -835,7 +836,7 @@ void Encounter::drawStructs() {
// Drawing structure 1 // Drawing structure 1
if (_drawingStructs[0].transTableNum < -1 || _drawingStructs[0].transTableNum > 3) if (_drawingStructs[0].transTableNum < -1 || _drawingStructs[0].transTableNum > 3)
error("[Encounter::drawStructs] Something got <redacted> wrong!"); error("[Encounter::drawStructs] Something got <redacted> wrong!");
if (checkKeywords2() || _drawingStructs[0].transTableNum > -1) { if (checkKeywords2() || _drawingStructs[0].transTableNum > -1) {
int32 val = _drawingStructs[0].transTableNum; int32 val = _drawingStructs[0].transTableNum;
@ -858,10 +859,10 @@ void Encounter::drawStructs() {
_drawingStructs[0].point2.y, _drawingStructs[0].point2.y,
0, 0,
0); 0);
_drawingStructs[0].status = 0; _drawingStructs[0].status = 0;
break; break;
case 0: case 0:
case 1: case 1:
case 2: case 2:
@ -878,7 +879,7 @@ void Encounter::drawStructs() {
--_drawingStructs[0].transTableNum; --_drawingStructs[0].transTableNum;
break; break;
case 3: case 3:
getScreen()->draw(_drawingStructs[0].resourceId, getScreen()->draw(_drawingStructs[0].resourceId,
_drawingStructs[0].frameIndex, _drawingStructs[0].frameIndex,
@ -917,10 +918,10 @@ void Encounter::drawStructs() {
_drawingStructs[1].point2.y, _drawingStructs[1].point2.y,
0, 0,
0); 0);
_drawingStructs[1].status = 0; _drawingStructs[1].status = 0;
break; break;
case 0: case 0:
case 1: case 1:
case 2: case 2:
@ -937,7 +938,7 @@ void Encounter::drawStructs() {
--_drawingStructs[1].transTableNum; --_drawingStructs[1].transTableNum;
break; break;
case 3: case 3:
getScreen()->draw(_drawingStructs[1].resourceId, getScreen()->draw(_drawingStructs[1].resourceId,
_drawingStructs[1].frameIndex, _drawingStructs[1].frameIndex,
@ -956,7 +957,7 @@ void Encounter::drawDialog() {
if (_data_455BF8 >= 50) if (_data_455BF8 >= 50)
return; return;
int32 counter = 0; int32 counter = 0;
for (uint32 i = _data_455BF8; i < ARRAYSIZE(_keywordIndexes); i++) { for (uint32 i = _data_455BF8; i < ARRAYSIZE(_keywordIndexes); i++) {
@ -964,10 +965,10 @@ void Encounter::drawDialog() {
return; return;
int32 index = _keywordIndexes[i]; int32 index = _keywordIndexes[i];
if (index < 0) if (index < 0)
continue; continue;
if ((_item->keywords[index] & KEYWORD_MASK) > 0 && (BYTE1(_keywordIndexes[i]) & 0x80)) { if ((_item->keywords[index] & KEYWORD_MASK) > 0 && (BYTE1(_keywordIndexes[i]) & 0x80)) {
if (BYTE1(_keywordIndexes[i]) & 0x20) if (BYTE1(_keywordIndexes[i]) & 0x20)
@ -980,7 +981,7 @@ void Encounter::drawDialog() {
if (getKeywordIndex() == index) if (getKeywordIndex() == index)
getScreen()->fillRect(x -1, y + 5, getText()->getWidth(MAKE_RESOURCE(kResourcePackShared, 3681)), 18, 0); getScreen()->fillRect(x -1, y + 5, getText()->getWidth(MAKE_RESOURCE(kResourcePackShared, 3681)), 18, 0);
getText()->setPosition(x, y); getText()->setPosition(x, y);
getText()->draw(MAKE_RESOURCE(kResourcePackShared, 3681)); getText()->draw(MAKE_RESOURCE(kResourcePackShared, 3681));
@ -996,7 +997,7 @@ void Encounter::drawText(char *text, ResourceId font, int32 y) {
//int width = _background.rect.width() - _portrait1.rect.width() - _portrait2.rect.width() - 20; //int width = _background.rect.width() - _portrait1.rect.width() - _portrait2.rect.width() - 20;
//int x = _point.x + _portrait1.rect.width() + 10; //int x = _point.x + _portrait1.rect.width() + 10;
error("[Encounter::drawText] not implemented!"); error("[Encounter::drawText] not implemented!");
} }
@ -1167,7 +1168,7 @@ bool Encounter::updateScreen() {
if (_data_455BD4) if (_data_455BD4)
drawStructs(); drawStructs();
return false; return false;
} }
@ -1181,11 +1182,11 @@ bool Encounter::updateScreen() {
if (_rectIndex == -1 && findRect() == -1) if (_rectIndex == -1 && findRect() == -1)
updateFromRect(-1); updateFromRect(-1);
return false; return false;
} }
drawText(getSpeech()->getTextDataPos(), getWorld()->font3, _point.y); drawText(getSpeech()->getTextDataPos(), getWorld()->font3, _point.y);
drawText(getSpeech()->getTextData(), getWorld()->font1, _point.y); drawText(getSpeech()->getTextData(), getWorld()->font1, _point.y);
if (_data_455BE0) { if (_data_455BE0) {

View file

@ -51,8 +51,8 @@ public:
bool getFlag1() { return _flag1; } bool getFlag1() { return _flag1; }
void setFlag3(bool state) { _flag3 = state; } void setFlag3(bool state) { _flag3 = state; }
bool getFlag3() { return _flag3; } bool getFlag3() { return _flag3; }
void setFlag5(bool state) { _flag5 = state; } void disablePlayerOnExit(bool state) { _disablePlayerOnExit = state; }
bool getFlag6() { return _flag6; } bool isRunning() { return _isRunning; }
private: private:
AsylumEngine *_vm; AsylumEngine *_vm;
@ -150,15 +150,15 @@ private:
bool _data_455BE4; bool _data_455BE4;
bool _data_455BE8; bool _data_455BE8;
uint32 _data_455BF4; uint32 _data_455BF4;
bool _data_455BF8; uint32 _data_455BF8;
// Internal flags // Internal flags
bool _flag1; bool _flag1;
bool _flag2; bool _flag2;
bool _flag3; bool _flag3;
bool _flag4; bool _flag4;
bool _flag5; bool _disablePlayerOnExit;
bool _flag6; bool _isRunning;
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// Data // Data
@ -189,7 +189,7 @@ private:
bool checkKeywords(); bool checkKeywords();
bool checkKeywords2(); bool checkKeywords2();
void updateFromRect(int32 rectIndex); void updateFromRect(int32 rectIndex);
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// Speech // Speech
void resetSpeech(uint32 a1, uint32 a2); void resetSpeech(uint32 a1, uint32 a2);
@ -209,7 +209,7 @@ private:
void drawText(char *text, ResourceId font, int32 y); void drawText(char *text, ResourceId font, int32 y);
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// Misc // Misc
void exit(); void exit();
void setupEntities(bool type4); void setupEntities(bool type4);
int32 findRect(); int32 findRect();

View file

@ -756,10 +756,10 @@ END_OPCODE
IMPLEMENT_OPCODE(RunEncounter) IMPLEMENT_OPCODE(RunEncounter)
Encounter *encounter = _vm->encounter(); Encounter *encounter = _vm->encounter();
encounter->setFlag5(cmd->param5); encounter->disablePlayerOnExit(cmd->param5);
if (cmd->param6) { if (cmd->param6) {
if (encounter->getFlag6()) if (encounter->isRunning())
_lineIncrement = 1; _lineIncrement = 1;
else else
cmd->param6 = 0; cmd->param6 = 0;

View file

@ -666,7 +666,7 @@ void Special::chapter9(Object *object, ActorIndex actorIndex) {
void Special::playChapterSound(Object *object, ActorIndex actorIndex) { void Special::playChapterSound(Object *object, ActorIndex actorIndex) {
ResourceId id = getResourceId(object, actorIndex); ResourceId id = getResourceId(object, actorIndex);
if (_vm->encounter()->getFlag6()) if (_vm->encounter()->isRunning())
return; return;
if (id != kResourceNone && getSound()->isPlaying(id)) if (id != kResourceNone && getSound()->isPlaying(id))

View file

@ -1045,7 +1045,7 @@ void Scene::updateCursor(ActorDirection direction, Common::Rect rect) {
int16 rightLimit = rect.right - 10; int16 rightLimit = rect.right - 10;
Common::Point mouse = getCursor()->position(); Common::Point mouse = getCursor()->position();
if (getEncounter()->getFlag6()) { if (getEncounter()->isRunning()) {
if (getCursor()->graphicResourceId != _ws->cursorResources[kCursorResourceTalkNPC]) if (getCursor()->graphicResourceId != _ws->cursorResources[kCursorResourceTalkNPC])
getCursor()->set(_ws->cursorResources[kCursorResourceTalkNPC]); getCursor()->set(_ws->cursorResources[kCursorResourceTalkNPC]);