AGI: getflag/setflag/etc. cleanup

renamed getflag() to getFlag()
renamed setflag() to setFlag()
renamed flipflag() to flipFlag()
preagi: renamed setFlag for this engine to setWinnieFlag
This commit is contained in:
Martin Kiewitz 2016-01-31 17:56:53 +01:00
parent 82b958f274
commit 4bc01ab7d5
22 changed files with 116 additions and 111 deletions

View File

@ -685,9 +685,9 @@ public:
int _soundemu;
int getflag(int);
void setflag(int, int);
void flipflag(int);
int getFlag(int16 flagNr);
void setFlag(int16 flagNr, bool newState);
void flipFlag(int16 flagNr);
const AGIGameDescription *_gameDescription;

View File

@ -163,8 +163,8 @@ bool AgiEngine::checkPriority(ScreenObjEntry *screenObj) {
// Check ego
if (screenObj->objectNr == 0) {
setflag(VM_FLAG_EGO_TOUCHED_P2, touchedTrigger ? true : false);
setflag(VM_FLAG_EGO_WATER, touchedWater ? true : false);
setFlag(VM_FLAG_EGO_TOUCHED_P2, touchedTrigger ? true : false);
setFlag(VM_FLAG_EGO_WATER, touchedWater ? true : false);
}
return touchedControl;

View File

@ -75,7 +75,7 @@ bool Console::Cmd_SetFlag(int argc, const char **argv) {
}
int p1 = (int)atoi(argv[1]);
int p2 = (int)atoi(argv[2]);
_vm->setflag(p1, !!p2);
_vm->setFlag(p1, !!p2);
return true;
}
@ -290,7 +290,7 @@ bool Console::Cmd_Flags(int argc, const char **argv) {
for (i = 0; i < 255;) {
debugPrintf("%3d ", i);
for (j = 0; j < 10; j++, i++) {
debugPrintf("%c ", _vm->getflag(i) ? 'T' : 'F');
debugPrintf("%c ", _vm->getFlag(i) ? 'T' : 'F');
}
debugPrintf("\n");
}
@ -542,7 +542,7 @@ bool Console::Cmd_VmFlags(int argc, const char **argv) {
if (argc < 3) {
// show contents
if (_vm->getflag(flagNr)) {
if (_vm->getFlag(flagNr)) {
debugPrintf("flag %d == set\n", flagNr);
} else {
debugPrintf("flag %d == not set\n", flagNr);
@ -557,10 +557,10 @@ bool Console::Cmd_VmFlags(int argc, const char **argv) {
}
if (!newFlagState) {
_vm->setflag(flagNr, 0);
_vm->setFlag(flagNr, false);
debugPrintf("flag %d reset.\n", flagNr);
} else {
_vm->setflag(flagNr, 1);
_vm->setFlag(flagNr, true);
debugPrintf("flag %d set.\n", flagNr);
}
}

View File

@ -109,7 +109,7 @@ void AgiEngine::newRoom(int16 newRoomNr) {
}
setVar(VM_VAR_BORDER_TOUCH_EGO, 0);
setflag(VM_FLAG_NEW_ROOM_EXEC, true);
setFlag(VM_FLAG_NEW_ROOM_EXEC, true);
_game.exitAllLogics = true;
@ -138,7 +138,7 @@ void AgiEngine::interpretCycle() {
checkAllMotions();
oldScore = getVar(VM_VAR_SCORE);
oldSound = getflag(VM_FLAG_SOUND_ON);
oldSound = getFlag(VM_FLAG_SOUND_ON);
_game.exitAllLogics = false;
while (runLogic(0) == 0 && !(shouldQuit() || _restartGame)) {
@ -146,7 +146,7 @@ void AgiEngine::interpretCycle() {
setVar(VM_VAR_BORDER_TOUCH_OBJECT, 0);
setVar(VM_VAR_BORDER_CODE, 0);
oldScore = getVar(VM_VAR_SCORE);
setflag(VM_FLAG_ENTERED_CLI, false);
setFlag(VM_FLAG_ENTERED_CLI, false);
_game.exitAllLogics = false;
nonBlockingText_CycleDone();
resetControllers();
@ -156,14 +156,14 @@ void AgiEngine::interpretCycle() {
screenObjEgo->direction = getVar(VM_VAR_EGO_DIRECTION);
if (getVar(VM_VAR_SCORE) != oldScore || getflag(VM_FLAG_SOUND_ON) != oldSound)
if (getVar(VM_VAR_SCORE) != oldScore || getFlag(VM_FLAG_SOUND_ON) != oldSound)
_game._vm->_text->statusDraw();
setVar(VM_VAR_BORDER_TOUCH_OBJECT, 0);
setVar(VM_VAR_BORDER_CODE, 0);
setflag(VM_FLAG_NEW_ROOM_EXEC, false);
setflag(VM_FLAG_RESTART_GAME, false);
setflag(VM_FLAG_RESTORE_JUST_RAN, false);
setFlag(VM_FLAG_NEW_ROOM_EXEC, false);
setFlag(VM_FLAG_RESTART_GAME, false);
setFlag(VM_FLAG_RESTORE_JUST_RAN, false);
if (_game.gfxMode) {
updateScreenObjTable();
@ -361,9 +361,9 @@ int AgiEngine::playGame() {
_game.horizon = 36;
_game.playerControl = false;
setflag(VM_FLAG_LOGIC_ZERO_FIRST_TIME, true); // not in 2.917
setflag(VM_FLAG_NEW_ROOM_EXEC, true); // needed for MUMG and SQ2!
setflag(VM_FLAG_SOUND_ON, true); // enable sound
setFlag(VM_FLAG_LOGIC_ZERO_FIRST_TIME, true); // not in 2.917
setFlag(VM_FLAG_NEW_ROOM_EXEC, true); // needed for MUMG and SQ2!
setFlag(VM_FLAG_SOUND_ON, true); // enable sound
setVar(VM_VAR_TIME_DELAY, 2); // "normal" speed
_game.gfxMode = true;
@ -379,13 +379,13 @@ int AgiEngine::playGame() {
debug(0, "Running AGI script.\n");
setflag(VM_FLAG_ENTERED_CLI, false);
setflag(VM_FLAG_SAID_ACCEPTED_INPUT, false);
setFlag(VM_FLAG_ENTERED_CLI, false);
setFlag(VM_FLAG_SAID_ACCEPTED_INPUT, false);
setVar(VM_VAR_WORD_NOT_FOUND, 0);
setVar(VM_VAR_KEY, 0);
debugC(2, kDebugLevelMain, "Entering main loop");
bool firstLoop = !getflag(VM_FLAG_RESTART_GAME); // Do not restore on game restart
bool firstLoop = !getFlag(VM_FLAG_RESTART_GAME); // Do not restore on game restart
if (firstLoop) {
if (ConfMan.hasKey("save_slot")) {
@ -419,8 +419,8 @@ int AgiEngine::playGame() {
checkQuickLoad();
}
setflag(VM_FLAG_ENTERED_CLI, false);
setflag(VM_FLAG_SAID_ACCEPTED_INPUT, false);
setFlag(VM_FLAG_ENTERED_CLI, false);
setFlag(VM_FLAG_SAID_ACCEPTED_INPUT, false);
setVar(VM_VAR_WORD_NOT_FOUND, 0);
setVar(VM_VAR_KEY, 0);
}
@ -465,7 +465,7 @@ int AgiEngine::runGame() {
break;
if (_restartGame) {
setflag(VM_FLAG_RESTART_GAME, true);
setFlag(VM_FLAG_RESTART_GAME, true);
setVar(VM_VAR_TIME_DELAY, 2); // "normal" speed
_restartGame = false;
}

View File

@ -571,7 +571,7 @@ namespace Agi {
bool AgiBase::canLoadGameStateCurrently() {
if (!(getGameType() == GType_PreAGI)) {
if (getflag(VM_FLAG_MENUS_WORK)) {
if (getFlag(VM_FLAG_MENUS_WORK)) {
if (!_noSaveLoadAllowed) {
if (!cycleInnerLoopIsActive()) {
// We can't allow to restore a game, while inner loop is active
@ -592,7 +592,7 @@ bool AgiBase::canSaveGameStateCurrently() {
return true;
if (!(getGameType() == GType_PreAGI)) {
if (getflag(VM_FLAG_MENUS_WORK)) {
if (getFlag(VM_FLAG_MENUS_WORK)) {
if (!_noSaveLoadAllowed) {
if (!cycleInnerLoopIsActive()) {
if (promptIsEnabled()) {

View File

@ -24,28 +24,28 @@
namespace Agi {
int AgiBase::getflag(int n) {
uint8 *set = (uint8 *)&_game.flags;
int AgiBase::getFlag(int16 flagNr) {
uint8 *flagPtr = _game.flags;
set += n >> 3;
return (*set & (1 << (n & 0x07))) != 0;
flagPtr += flagNr >> 3;
return (*flagPtr & (1 << (flagNr & 0x07))) != 0;
}
void AgiBase::setflag(int n, int v) {
uint8 *set = (uint8 *)&_game.flags;
void AgiBase::setFlag(int16 flagNr, bool newState) {
uint8 *flagPtr = _game.flags;
set += n >> 3;
if (v)
*set |= 1 << (n & 0x07); // set bit
flagPtr += flagNr >> 3;
if (newState)
*flagPtr |= 1 << (flagNr & 0x07); // set bit
else
*set &= ~(1 << (n & 0x07)); // clear bit
*flagPtr &= ~(1 << (flagNr & 0x07)); // clear bit
}
void AgiBase::flipflag(int n) {
uint8 *set = (uint8 *)&_game.flags;
void AgiBase::flipFlag(int16 flagNr) {
uint8 *flagPtr = _game.flags;
set += n >> 3;
*set ^= 1 << (n & 0x07); // flip bit
flagPtr += flagNr >> 3;
*flagPtr ^= 1 << (flagNr & 0x07); // flip bit
}
void AgiEngine::setVar(int16 varNr, int val) {

View File

@ -127,7 +127,7 @@ void InventoryMgr::show() {
// figure out current inventory of the player
getPlayerInventory();
if (_vm->getflag(VM_FLAG_STATUS_SELECTS_ITEMS)) {
if (_vm->getFlag(VM_FLAG_STATUS_SELECTS_ITEMS)) {
selectItems = true;
} else{
_activeItemNr = -1; // so that none is shown as active

View File

@ -540,7 +540,7 @@ int AgiEngine::waitKey() {
clearKeyQueue();
debugC(3, kDebugLevelInput, "waiting...");
while (!(shouldQuit() || _restartGame || getflag(VM_FLAG_RESTORE_JUST_RAN))) {
while (!(shouldQuit() || _restartGame || getFlag(VM_FLAG_RESTORE_JUST_RAN))) {
pollTimer();
key = doPollKeyboard();
if (key == AGI_KEY_ENTER || key == AGI_KEY_ESCAPE || key == AGI_MOUSE_BUTTON_LEFT)

View File

@ -98,7 +98,7 @@ void AgiEngine::motionFollowEgo(ScreenObjEntry *screenObj) {
if (dir == 0) {
screenObj->direction = 0;
screenObj->motionType = kMotionNormal;
setflag(screenObj->follow_flag, true);
setFlag(screenObj->follow_flag, true);
return;
}
@ -200,7 +200,7 @@ void AgiEngine::checkAllMotions() {
void AgiEngine::inDestination(ScreenObjEntry *screenObj) {
if (screenObj->motionType == kMotionMoveObj) {
screenObj->stepSize = screenObj->move_stepSize;
setflag(screenObj->move_flag, true);
setFlag(screenObj->move_flag, true);
}
screenObj->motionType = kMotionNormal;
if (isEgoView(screenObj))
@ -213,7 +213,7 @@ void AgiEngine::motionMoveObjStop(ScreenObjEntry *screenObj) {
// This check for motionType was only done in AGI3.
// But we use this motion type for mouse movement, so we need to check in any case, otherwise it will cause glitches.
if (screenObj->motionType != kMotionEgo) {
setflag(screenObj->move_flag, true);
setFlag(screenObj->move_flag, true);
}
screenObj->motionType = kMotionNormal;

View File

@ -223,22 +223,22 @@ void cmdSet(AgiGame *state, uint8 *parameter) {
AgiEngine *vm = state->_vm;
uint16 flagNr = parameter[0];
vm->setflag(flagNr, true);
vm->setFlag(flagNr, true);
}
void cmdReset(AgiGame *state, uint8 *parameter) {
AgiEngine *vm = state->_vm;
uint16 flagNr = parameter[0];
vm->setflag(flagNr, false);
vm->setFlag(flagNr, false);
}
void cmdToggle(AgiGame *state, uint8 *parameter) {
AgiEngine *vm = state->_vm;
uint16 flagNr = parameter[0];
bool curFlagState = vm->getflag(flagNr);
bool curFlagState = vm->getFlag(flagNr);
vm->setflag(flagNr, !curFlagState);
vm->setFlag(flagNr, !curFlagState);
}
void cmdSetV(AgiGame *state, uint8 *parameter) {
@ -250,7 +250,7 @@ void cmdSetV(AgiGame *state, uint8 *parameter) {
} else {
flagNr = vm->getVar(flagNr);
vm->setflag(flagNr, true);
vm->setFlag(flagNr, true);
}
}
@ -263,7 +263,7 @@ void cmdResetV(AgiGame *state, uint8 *parameter) {
} else {
flagNr = vm->getVar(flagNr);
vm->setflag(flagNr, false);
vm->setFlag(flagNr, false);
}
}
@ -276,9 +276,9 @@ void cmdToggleV(AgiGame *state, uint8 *parameter) {
vm->setVar(flagNr, value ^ 1);
} else {
flagNr = vm->getVar(flagNr);
bool curFlagState = vm->getflag(flagNr);
bool curFlagState = vm->getFlag(flagNr);
vm->setflag(flagNr, !curFlagState);
vm->setFlag(flagNr, !curFlagState);
}
}
@ -781,7 +781,7 @@ void cmdStopSound(AgiGame *state, uint8 *parameter) {
void cmdMenuInput(AgiGame *state, uint8 *parameter) {
AgiEngine *vm = state->_vm;
if (vm->getflag(VM_FLAG_MENUS_WORK)) {
if (vm->getFlag(VM_FLAG_MENUS_WORK)) {
vm->_menu->delayedExecute();
}
}
@ -964,21 +964,21 @@ void cmdSetSimple(AgiGame *state, uint8 *parameter) {
uint16 resourceNr = vm->getVar(varNr);
spritesMgr->eraseSprites();
state->_vm->agiLoadResource(RESOURCETYPE_PICTURE, resourceNr);
vm->agiLoadResource(RESOURCETYPE_PICTURE, resourceNr);
// Draw the picture. Similar to void cmdDraw_pic(AgiGame *state, uint8 *p).
state->_vm->_picture->decodePicture(resourceNr, false, true);
vm->_picture->decodePicture(resourceNr, false, true);
spritesMgr->drawAllSpriteLists();
state->pictureShown = false;
// Show the picture. Similar to void cmdShow_pic(AgiGame *state, uint8 *p).
state->_vm->setflag(VM_FLAG_OUTPUT_MODE, false);
state->_vm->_text->closeWindow();
state->_vm->_picture->showPic();
vm->setFlag(VM_FLAG_OUTPUT_MODE, false);
vm->_text->closeWindow();
vm->_picture->showPic();
state->pictureShown = true;
// Loading trigger
state->_vm->loadingTrigger_DrawPicture();
vm->loadingTrigger_DrawPicture();
}
}
@ -1093,8 +1093,8 @@ void cmdParse(AgiGame *state, uint8 *parameter) {
uint16 stringNr = parameter[0];
vm->setVar(VM_VAR_WORD_NOT_FOUND, 0);
vm->setflag(VM_FLAG_ENTERED_CLI, false);
vm->setflag(VM_FLAG_SAID_ACCEPTED_INPUT, false);
vm->setFlag(VM_FLAG_ENTERED_CLI, false);
vm->setFlag(VM_FLAG_SAID_ACCEPTED_INPUT, false);
vm->_words->parseUsingDictionary(text->stringPrintf(state->strings[stringNr]));
}
@ -1167,7 +1167,7 @@ void cmdDrawPic(AgiGame *state, uint8 *parameter) {
// that this is a script bug and occurs in the original interpreter as well.
// Fixes bug #3056: AGI: SQ1 (2.2 DOS ENG) bizzare exploding roger
if (getGameID() == GID_SQ1 && resourceNr == 20)
vm->setflag(103, false);
vm->setFlag(103, false);
// Loading trigger
vm->loadingTrigger_DrawPicture();
@ -1177,7 +1177,7 @@ void cmdShowPic(AgiGame *state, uint8 *parameter) {
AgiEngine *vm = state->_vm;
debugC(6, kDebugLevelScripts, "=== show pic ===");
vm->setflag(VM_FLAG_OUTPUT_MODE, false);
vm->setFlag(VM_FLAG_OUTPUT_MODE, false);
vm->_text->closeWindow();
vm->_picture->showPicWithTransition();
state->pictureShown = true;
@ -1506,7 +1506,7 @@ void cmdReverseLoop(AgiGame *state, uint8 *parameter) {
screenObj->cycle = kCycleRevLoop;
screenObj->flags |= (fDontupdate | fUpdate | fCycling);
screenObj->loop_flag = loopFlag;
state->_vm->setflag(screenObj->loop_flag, false);
state->_vm->setFlag(screenObj->loop_flag, false);
}
void cmdReverseLoopV1(AgiGame *state, uint8 *parameter) {
@ -1523,6 +1523,7 @@ void cmdReverseLoopV1(AgiGame *state, uint8 *parameter) {
}
void cmdEndOfLoop(AgiGame *state, uint8 *parameter) {
AgiEngine *vm = state->_vm;
uint16 objectNr = parameter[0];
uint16 loopFlag = parameter[1];
ScreenObjEntry *screenObj = &state->screenObjTable[objectNr];
@ -1531,7 +1532,7 @@ void cmdEndOfLoop(AgiGame *state, uint8 *parameter) {
screenObj->cycle = kCycleEndOfLoop;
screenObj->flags |= (fDontupdate | fUpdate | fCycling);
screenObj->loop_flag = loopFlag;
state->_vm->setflag(screenObj->loop_flag, false);
vm->setFlag(screenObj->loop_flag, false);
}
void cmdEndOfLoopV1(AgiGame *state, uint8 *parameter) {
@ -1642,7 +1643,7 @@ void cmdFollowEgo(AgiGame *state, uint8 *parameter) {
vm->setVar(screenObj->follow_flag, 0);
screenObj->flags |= fUpdate | fAnimated;
} else {
state->_vm->setflag(screenObj->follow_flag, false);
vm->setFlag(screenObj->follow_flag, false);
screenObj->flags |= fUpdate;
}
}
@ -1670,7 +1671,7 @@ void cmdMoveObj(AgiGame *state, uint8 *parameter) {
vm->setVar(moveFlag, 0);
screenObj->flags |= fUpdate | fAnimated;
} else {
vm->setflag(screenObj->move_flag, false);
vm->setFlag(screenObj->move_flag, false);
screenObj->flags |= fUpdate;
}
@ -1700,7 +1701,7 @@ void cmdMoveObjF(AgiGame *state, uint8 *parameter) {
if (stepSize != 0)
screenObj->stepSize = stepSize;
state->_vm->setflag(screenObj->move_flag, false);
vm->setFlag(screenObj->move_flag, false);
screenObj->flags |= fUpdate;
if (objectNr == 0)
@ -1708,7 +1709,7 @@ void cmdMoveObjF(AgiGame *state, uint8 *parameter) {
// AGI 2.272 (ddp, xmas) doesn't call move_obj!
if (getVersion() > 0x2272)
state->_vm->moveObj(screenObj);
vm->moveObj(screenObj);
}
void cmdWander(AgiGame *state, uint8 *parameter) {
@ -1899,20 +1900,21 @@ void cmdQuitV1(AgiGame *state, uint8 *parameter) {
}
void cmdRestartGame(AgiGame *state, uint8 *parameter) {
AgiEngine *vm = state->_vm;
bool doRestart = false;
state->_vm->_sound->stopSound();
if (state->_vm->getflag(VM_FLAG_AUTO_RESTART)) {
if (vm->getFlag(VM_FLAG_AUTO_RESTART)) {
doRestart = true;
} else {
doRestart = state->_vm->_systemUI->restartDialog();
doRestart = vm->_systemUI->restartDialog();
}
if (doRestart) {
state->_vm->_restartGame = true;
state->_vm->setflag(VM_FLAG_RESTART_GAME, true);
state->_vm->_menu->itemEnableAll();
vm->_restartGame = true;
vm->setFlag(VM_FLAG_RESTART_GAME, true);
vm->_menu->itemEnableAll();
}
}

View File

@ -78,11 +78,11 @@ void condGreaterV(AgiGame *state, uint8 *p) {
}
void condIsSet(AgiGame *state, uint8 *p) {
state->testResult = state->_vm->getflag(p[0]);
state->testResult = state->_vm->getFlag(p[0]);
}
void condIsSetV(AgiGame *state, uint8 *p) {
state->testResult = state->_vm->getflag(getVar(p[0]));
state->testResult = state->_vm->getFlag(getVar(p[0]));
}
void condIsSetV1(AgiGame *state, uint8 *p) {
@ -121,7 +121,7 @@ void condSaid(AgiGame *state, uint8 *p) {
void condSaid1(AgiGame *state, uint8 *p) {
state->testResult = false;
if (!state->_vm->getflag(VM_FLAG_ENTERED_CLI))
if (!state->_vm->getFlag(VM_FLAG_ENTERED_CLI))
return;
int id0 = READ_LE_UINT16(p);
@ -133,7 +133,7 @@ void condSaid1(AgiGame *state, uint8 *p) {
void condSaid2(AgiGame *state, uint8 *p) {
state->testResult = false;
if (!state->_vm->getflag(VM_FLAG_ENTERED_CLI))
if (!state->_vm->getFlag(VM_FLAG_ENTERED_CLI))
return;
int id0 = READ_LE_UINT16(p);
@ -147,7 +147,7 @@ void condSaid2(AgiGame *state, uint8 *p) {
void condSaid3(AgiGame *state, uint8 *p) {
state->testResult = false;
if (!state->_vm->getflag(VM_FLAG_ENTERED_CLI))
if (!state->_vm->getFlag(VM_FLAG_ENTERED_CLI))
return;
int id0 = READ_LE_UINT16(p);
@ -320,7 +320,7 @@ uint8 AgiEngine::testSaid(uint8 nwords, uint8 *cc) {
int c, n = words->getEgoWordCount();
int z = 0;
if (vm->getflag(VM_FLAG_SAID_ACCEPTED_INPUT) || !vm->getflag(VM_FLAG_ENTERED_CLI))
if (vm->getFlag(VM_FLAG_SAID_ACCEPTED_INPUT) || !vm->getFlag(VM_FLAG_ENTERED_CLI))
return false;
// FR:
@ -366,7 +366,7 @@ uint8 AgiEngine::testSaid(uint8 nwords, uint8 *cc) {
if (nwords != 0 && READ_LE_UINT16(cc) != 9999)
return false;
setflag(VM_FLAG_SAID_ACCEPTED_INPUT, true);
setFlag(VM_FLAG_SAID_ACCEPTED_INPUT, true);
return true;
}

View File

@ -492,7 +492,7 @@ bool MickeyEngine::getMenuSelRow(MSA_MENU menu, int *sel0, int *sel1, int iRow)
return false;
case Common::KEYCODE_s:
flipflag(VM_FLAG_SOUND_ON);
flipFlag(VM_FLAG_SOUND_ON);
break;
case Common::KEYCODE_c:
inventory();
@ -672,7 +672,7 @@ void MickeyEngine::playNote(MSA_SND_NOTE note) {
}
void MickeyEngine::playSound(ENUM_MSA_SOUND iSound) {
if (!getflag(VM_FLAG_SOUND_ON))
if (!getFlag(VM_FLAG_SOUND_ON))
return;
Common::Event event;
@ -2297,7 +2297,7 @@ void MickeyEngine::init() {
#endif
setflag(VM_FLAG_SOUND_ON, true); // enable sound
setFlag(VM_FLAG_SOUND_ON, true); // enable sound
}
Common::Error MickeyEngine::go() {

View File

@ -226,11 +226,11 @@ void WinnieEngine::setTakeDrop(int fCanSel[]) {
fCanSel[IDI_WTP_SEL_DROP] = _gameStateWinnie.iObjHave;
}
void WinnieEngine::setFlag(int iFlag) {
void WinnieEngine::setWinnieFlag(int iFlag) {
_gameStateWinnie.fGame[iFlag] = 1;
}
void WinnieEngine::clearFlag(int iFlag) {
void WinnieEngine::clearWinnieFlag(int iFlag) {
_gameStateWinnie.fGame[iFlag] = 0;
}
@ -404,11 +404,11 @@ int WinnieEngine::parser(int pc, int index, uint8 *buffer) {
break;
case IDO_WTP_FLAG_CLEAR:
opcode = *(buffer + pc++);
clearFlag(opcode);
clearWinnieFlag(opcode);
break;
case IDO_WTP_FLAG_SET:
opcode = *(buffer + pc++);
setFlag(opcode);
setWinnieFlag(opcode);
break;
case IDO_WTP_GAME_OVER:
gameOver();
@ -947,7 +947,7 @@ void WinnieEngine::getMenuSel(char *szMenu, int *iSel, int fCanSel[]) {
break;
case Common::KEYCODE_s:
if (event.kbd.flags & Common::KBD_CTRL) {
flipflag(VM_FLAG_SOUND_ON);
flipFlag(VM_FLAG_SOUND_ON);
} else {
*iSel = IDI_WTP_SEL_SOUTH;
makeSel(iSel, fCanSel);
@ -1342,7 +1342,7 @@ void WinnieEngine::init() {
}
_sound = new SoundMgr(this, _mixer);
setflag(VM_FLAG_SOUND_ON, true); // enable sound
setFlag(VM_FLAG_SOUND_ON, true); // enable sound
memset(&_gameStateWinnie, 0, sizeof(_gameStateWinnie));
_gameStateWinnie.fSound = 1;

View File

@ -336,8 +336,8 @@ private:
bool isRightObj(int, int, int*);
void drawObjPic(int, int, int);
void getMenuMouseSel(int*, int[], int, int);
void setFlag(int);
void clearFlag(int);
void setWinnieFlag(int);
void clearWinnieFlag(int);
void gameOver();
void saveGame();
void loadGame();

View File

@ -134,6 +134,9 @@ int AgiEngine::saveGame(const Common::String &fileName, const Common::String &de
out->writeByte(_game.automaticSave);
out->write(_game.automaticSaveDescription, 31);
// touch VM_VAR_SECONDS, so that it gets updated
getVar(VM_VAR_SECONDS);
for (i = 0; i < MAX_FLAGS; i++)
out->writeByte(_game.flags[i]);
for (i = 0; i < MAX_VARS; i++)
@ -666,7 +669,7 @@ int AgiEngine::loadGame(const Common::String &fileName, bool checkId) {
delete in;
debugC(3, kDebugLevelMain | kDebugLevelSavegame, "Closed %s", fileName.c_str());
setflag(VM_FLAG_RESTORE_JUST_RAN, true);
setFlag(VM_FLAG_RESTORE_JUST_RAN, true);
_game.hasPrompt = 0; // force input line repaint if necessary
_words->clearEgoWords();

View File

@ -140,7 +140,7 @@ void SoundMgr::startSound(int resnum, int flag) {
if (_vm->getVersion() < 0x2000) {
_vm->_game.vars[_endflag] = 0;
} else {
_vm->setflag(_endflag, false);
_vm->setFlag(_endflag, false);
}
}
@ -160,7 +160,7 @@ void SoundMgr::stopSound() {
if (_vm->getVersion() < 0x2000) {
_vm->_game.vars[_endflag] = 1;
} else {
_vm->setflag(_endflag, true);
_vm->setFlag(_endflag, true);
}
}
@ -169,7 +169,7 @@ void SoundMgr::stopSound() {
void SoundMgr::soundIsFinished() {
if (_endflag != -1)
_vm->setflag(_endflag, true);
_vm->setFlag(_endflag, true);
if (_playingSound != -1)
_vm->_game.sounds[_playingSound]->stop();

View File

@ -236,7 +236,7 @@ int SoundGenPCJr::getNextNote_v2(int ch) {
assert(ch < CHAN_MAX);
if (!_vm->getflag(VM_FLAG_SOUND_ON))
if (!_vm->getFlag(VM_FLAG_SOUND_ON))
return -1;
tpcm = &_tchannel[ch];

View File

@ -161,7 +161,7 @@ void SoundGenSarien::stopNote(int i) {
}
void SoundGenSarien::playNote(int i, int freq, int vol) {
if (!_vm->getflag(VM_FLAG_SOUND_ON))
if (!_vm->getFlag(VM_FLAG_SOUND_ON))
vol = 0;
else if (vol && _vm->_soundemu == SOUND_EMU_PC)
vol = 160;

View File

@ -254,7 +254,7 @@ void SpritesMgr::drawCel(ScreenObjEntry *screenObj) {
}
if (screenObj->objectNr == 0) { // if ego, update if ego is visible at the moment
_vm->setflag(VM_FLAG_EGO_INVISIBLE, isViewHidden);
_vm->setFlag(VM_FLAG_EGO_INVISIBLE, isViewHidden);
}
}

View File

@ -328,9 +328,9 @@ void TextMgr::printAt(int16 textNr, int16 textPos_Row, int16 textPos_Column, int
bool TextMgr::messageBox(const char *textPtr) {
drawMessageBox(textPtr);
if (_vm->getflag(VM_FLAG_OUTPUT_MODE)) {
if (_vm->getFlag(VM_FLAG_OUTPUT_MODE)) {
// non-blocking window
_vm->setflag(VM_FLAG_OUTPUT_MODE, false);
_vm->setFlag(VM_FLAG_OUTPUT_MODE, false);
// Signal, that non-blocking text is shown at the moment
_vm->nonBlockingText_IsShown();
@ -359,7 +359,7 @@ bool TextMgr::messageBox(const char *textPtr) {
_vm->setVar(VM_VAR_KEY, 0);
do {
if (_vm->getflag(VM_FLAG_RESTORE_JUST_RAN))
if (_vm->getFlag(VM_FLAG_RESTORE_JUST_RAN))
break;
_vm->mainCycle();
@ -491,7 +491,7 @@ void TextMgr::statusDraw() {
displayText(statusTextPtr);
charPos_Set(_statusRow, 30);
if (_vm->getflag(VM_FLAG_SOUND_ON)) {
if (_vm->getFlag(VM_FLAG_SOUND_ON)) {
statusTextPtr = stringPrintf(_systemUI->getStatusTextSoundOn());
} else {
statusTextPtr = stringPrintf(_systemUI->getStatusTextSoundOff());

View File

@ -49,7 +49,7 @@ void AgiEngine::updateView(ScreenObjEntry *screenObj) {
if (++celNr != lastCelNr)
break;
}
setflag(screenObj->loop_flag, true);
setFlag(screenObj->loop_flag, true);
screenObj->flags &= ~fCycling;
screenObj->direction = 0;
screenObj->cycle = kCycleNormal;
@ -60,7 +60,7 @@ void AgiEngine::updateView(ScreenObjEntry *screenObj) {
if (celNr)
break;
}
setflag(screenObj->loop_flag, true);
setFlag(screenObj->loop_flag, true);
screenObj->flags &= ~fCycling;
screenObj->direction = 0;
screenObj->cycle = kCycleNormal;

View File

@ -354,11 +354,11 @@ void Words::parseUsingDictionary(char *rawUserInput) {
debugC(4, kDebugLevelScripts, "ego word count = %d", _egoWordCount);
if (_egoWordCount > 0) {
_vm->setflag(VM_FLAG_ENTERED_CLI, true);
_vm->setFlag(VM_FLAG_ENTERED_CLI, true);
} else {
_vm->setflag(VM_FLAG_ENTERED_CLI, false);
_vm->setFlag(VM_FLAG_ENTERED_CLI, false);
}
_vm->setflag(VM_FLAG_SAID_ACCEPTED_INPUT, false);
_vm->setFlag(VM_FLAG_SAID_ACCEPTED_INPUT, false);
}
uint16 Words::getEgoWordCount() {