Cleanup.
svn-id: r19647
This commit is contained in:
parent
250071f867
commit
d0f13e6f06
6 changed files with 73 additions and 62 deletions
|
@ -141,7 +141,7 @@ void SimonEngine::dumpSubroutineLine(SubroutineLine *sl, Subroutine *sub) {
|
|||
|
||||
p = (byte *)sl + SUBROUTINE_LINE_SMALL_SIZE;
|
||||
if (sub->id == 0) {
|
||||
fprintf(_dumpFile, "; cond_a=%d, cond_b=%d, cond_c=%d\n", sl->cond_a, sl->cond_b, sl->cond_c);
|
||||
fprintf(_dumpFile, "; verb=%d, noun1=%d, noun2=%d\n", sl->verb, sl->noun1, sl->noun2);
|
||||
p = (byte *)sl + SUBROUTINE_LINE_BIG_SIZE;
|
||||
}
|
||||
|
||||
|
|
|
@ -186,7 +186,7 @@ static const char *const simon1dos_opcode_name_table[256] = {
|
|||
/* 128 */
|
||||
"W|GET_DUMMY_WORD",
|
||||
"W|GET_WORD_COND_TRUE",
|
||||
"Bww|UNK_130",
|
||||
"Bww|SET_ADJ_NOUN",
|
||||
NULL,
|
||||
/* 132 */
|
||||
"|SAVE_GAME",
|
||||
|
@ -249,8 +249,8 @@ static const char *const simon1dos_opcode_name_table[256] = {
|
|||
"WWBB|PATHFIND",
|
||||
"BBB|ROOM_DESCRIPTION",
|
||||
/* 180 */
|
||||
"|FORCE_UNLOCK",
|
||||
"|FORCE_LOCK",
|
||||
"|MOUSE_ON",
|
||||
"|MOUSE_OFF",
|
||||
"|LOAD_BEARD",
|
||||
"|UNLOAD_BEARD",
|
||||
/* 184 */
|
||||
|
@ -424,7 +424,7 @@ static const char *const simon1talkie_opcode_name_table[256] = {
|
|||
/* 128 */
|
||||
"W|GET_DUMMY_WORD",
|
||||
"W|GET_WORD_COND_TRUE",
|
||||
"Bww|UNK_130",
|
||||
"Bww|SET_ADJ_NOUN",
|
||||
NULL,
|
||||
/* 132 */
|
||||
"|SAVE_GAME",
|
||||
|
@ -487,8 +487,8 @@ static const char *const simon1talkie_opcode_name_table[256] = {
|
|||
"WWBB|PATHFIND",
|
||||
"BBB|ROOM_DESCRIPTION",
|
||||
/* 180 */
|
||||
"|FORCE_UNLOCK",
|
||||
"|FORCE_LOCK",
|
||||
"|MOUSE_ON",
|
||||
"|MOUSE_OFF",
|
||||
"|LOAD_BEARD",
|
||||
"|UNLOAD_BEARD",
|
||||
/* 184 */
|
||||
|
@ -662,7 +662,7 @@ static const char *const simon2dos_opcode_name_table[256] = {
|
|||
/* 128 */
|
||||
"W|GET_DUMMY_WORD",
|
||||
"W|GET_WORD_COND_TRUE",
|
||||
"Bww|UNK_130",
|
||||
"Bww|SET_ADJ_NOUN",
|
||||
NULL,
|
||||
/* 132 */
|
||||
"|SAVE_GAME",
|
||||
|
@ -725,8 +725,8 @@ static const char *const simon2dos_opcode_name_table[256] = {
|
|||
"WWBB|PATHFIND",
|
||||
"BBB|ROOM_DESCRIPTION",
|
||||
/* 180 */
|
||||
"|FORCE_UNLOCK",
|
||||
"|FORCE_LOCK",
|
||||
"|MOUSE_ON",
|
||||
"|MOUSE_OFF",
|
||||
NULL,
|
||||
NULL,
|
||||
/* 184 */
|
||||
|
@ -904,7 +904,7 @@ static const char *const simon2talkie_opcode_name_table[256] = {
|
|||
/* 128 */
|
||||
"W|GET_DUMMY_WORD",
|
||||
"W|GET_WORD_COND_TRUE",
|
||||
"Bww|UNK_130",
|
||||
"Bww|SET_ADJ_NOUN",
|
||||
NULL,
|
||||
/* 132 */
|
||||
"|SAVE_GAME",
|
||||
|
@ -967,8 +967,8 @@ static const char *const simon2talkie_opcode_name_table[256] = {
|
|||
"WWBB|PATHFIND",
|
||||
"BBB|ROOM_DESCRIPTION",
|
||||
/* 180 */
|
||||
"|FORCE_UNLOCK",
|
||||
"|FORCE_LOCK",
|
||||
"|MOUSE_ON",
|
||||
"|MOUSE_OFF",
|
||||
NULL,
|
||||
NULL,
|
||||
/* 184 */
|
||||
|
@ -1146,7 +1146,7 @@ static const char *const feeblefiles_opcode_name_table[256] = {
|
|||
/* 128 */
|
||||
"W|GET_DUMMY_WORD",
|
||||
"W|GET_WORD_COND_TRUE",
|
||||
"Bww|UNK_130",
|
||||
"Bww|SET_ADJ_NOUN",
|
||||
NULL,
|
||||
/* 132 */
|
||||
"|SAVE_GAME",
|
||||
|
@ -1209,8 +1209,8 @@ static const char *const feeblefiles_opcode_name_table[256] = {
|
|||
"WWBB|PATHFIND",
|
||||
"BBB|ROOM_DESCRIPTION",
|
||||
/* 180 */
|
||||
"|FORCE_UNLOCK",
|
||||
"|FORCE_LOCK",
|
||||
"|MOUSE_ON",
|
||||
"|MOUSE_OFF",
|
||||
"T|LOAD_VIDEO",
|
||||
"|PLAY_VIDEO",
|
||||
/* 184 */
|
||||
|
@ -1278,8 +1278,8 @@ const char *const simon1_video_opcode_name_table[] = {
|
|||
"d|SET_PALETTE_MODE",
|
||||
/* 32 */
|
||||
"vv|COPY_VAR",
|
||||
"|FORCE_UNLOCK",
|
||||
"|FORCE_LOCK",
|
||||
"|MOUSE_ON",
|
||||
"|MOUSE_OFF",
|
||||
"dd|VC35",
|
||||
/* 36 */
|
||||
"dd|SAVELOAD_THING",
|
||||
|
@ -1361,8 +1361,8 @@ const char *const simon2_video_opcode_name_table[] = {
|
|||
"d|SET_PALETTE_MODE",
|
||||
/* 32 */
|
||||
"vv|COPY_VAR",
|
||||
"|FORCE_UNLOCK",
|
||||
"|FORCE_LOCK",
|
||||
"|MOUSE_ON",
|
||||
"|MOUSE_OFF",
|
||||
"dd|VC35",
|
||||
/* 36 */
|
||||
"dd|SAVELOAD_THING",
|
||||
|
@ -1458,8 +1458,8 @@ const char *const feeblefiles_video_opcode_name_table[] = {
|
|||
"d|SET_PALETTE_MODE",
|
||||
/* 32 */
|
||||
"vv|COPY_VAR",
|
||||
"|FORCE_UNLOCK",
|
||||
"|FORCE_LOCK",
|
||||
"|MOUSE_ON",
|
||||
"|MOUSE_OFF",
|
||||
"dd|VC35",
|
||||
/* 36 */
|
||||
"dd|SAVELOAD_THING",
|
||||
|
@ -1514,12 +1514,12 @@ const char *const feeblefiles_video_opcode_name_table[] = {
|
|||
/* 76 */
|
||||
"ddd|SETSCALEXOFFS",
|
||||
"ddd|SETSCALEYOFFS",
|
||||
"|PATHUNK1",
|
||||
"|PATHUNK1",
|
||||
"|COMPUTEXY",
|
||||
"|COMPUTEPOSNUM",
|
||||
/* 80 */
|
||||
"ddd|SETOVERLAYIMAGE",
|
||||
"dd|SETRANDOM",
|
||||
"d|PATHUNK3",
|
||||
"d|GETPATHVALUE",
|
||||
"ddd|PLAYSOUNDLOOP",
|
||||
"|STOPSOUNDLOOP",
|
||||
};
|
||||
|
|
|
@ -106,9 +106,9 @@ enum {
|
|||
|
||||
struct SubroutineLine {
|
||||
uint16 next;
|
||||
int16 cond_a;
|
||||
int16 cond_b;
|
||||
int16 cond_c;
|
||||
int16 verb;
|
||||
int16 noun1;
|
||||
int16 noun2;
|
||||
};
|
||||
|
||||
struct TimeEvent {
|
||||
|
|
|
@ -722,13 +722,15 @@ int SimonEngine::runScript() {
|
|||
}
|
||||
break;
|
||||
|
||||
case 130:{ /* set script cond */
|
||||
case 130:{ /* set adj noun */
|
||||
uint var = getVarOrByte();
|
||||
getNextWord();
|
||||
if (var == 1)
|
||||
_scriptCondB = getNextWord();
|
||||
else
|
||||
_scriptCondC = getNextWord();
|
||||
if (var == 1) {
|
||||
_scriptAdj1 = getNextWord();
|
||||
_scriptNoun1 = getNextWord();
|
||||
} else {
|
||||
_scriptAdj2 = getNextWord();
|
||||
_scriptNoun2 = getNextWord();
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -997,12 +999,12 @@ int SimonEngine::runScript() {
|
|||
break;
|
||||
|
||||
case 180:{ /* force unlock */
|
||||
o_force_unlock();
|
||||
o_mouseOn();
|
||||
}
|
||||
break;
|
||||
|
||||
case 181:{ /* force lock */
|
||||
o_force_lock();
|
||||
o_mouseOff();
|
||||
if (getGameType() == GType_SIMON2) {
|
||||
changeWindow(1);
|
||||
showMessageFormat("\xC");
|
||||
|
@ -1232,16 +1234,16 @@ bool SimonEngine::checkIfToRunSubroutineLine(SubroutineLine *sl, Subroutine *sub
|
|||
if (sub->id)
|
||||
return true;
|
||||
|
||||
if (sl->cond_a != -1 && sl->cond_a != _scriptCondA &&
|
||||
(sl->cond_a != -2 || _scriptCondA != -1))
|
||||
if (sl->verb != -1 && sl->verb != _scriptVerb &&
|
||||
(sl->verb != -2 || _scriptVerb != -1))
|
||||
return false;
|
||||
|
||||
if (sl->cond_b != -1 && sl->cond_b != _scriptCondB &&
|
||||
(sl->cond_b != -2 || _scriptCondB != -1))
|
||||
if (sl->noun1 != -1 && sl->noun1 != _scriptNoun1 &&
|
||||
(sl->noun1 != -2 || _scriptNoun1 != -1))
|
||||
return false;
|
||||
|
||||
if (sl->cond_c != -1 && sl->cond_c != _scriptCondC &&
|
||||
(sl->cond_c != -2 || _scriptCondC != -1))
|
||||
if (sl->noun2 != -1 && sl->noun2 != _scriptNoun2 &&
|
||||
(sl->noun2 != -2 || _scriptNoun2 != -1))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
|
|
|
@ -352,9 +352,11 @@ SimonEngine::SimonEngine(GameDetector *detector, OSystem *syst)
|
|||
_scrollImage = 0;
|
||||
_vgaVar8 = 0;
|
||||
|
||||
_scriptCondA = 0;
|
||||
_scriptCondB = 0;
|
||||
_scriptCondC = 0;
|
||||
_scriptVerb = 0;
|
||||
_scriptNoun1 = 0;
|
||||
_scriptNoun2 = 0;
|
||||
_scriptAdj1 = 0;
|
||||
_scriptAdj2 = 0;
|
||||
|
||||
_curWindow = 0;
|
||||
_textWindow = 0;
|
||||
|
@ -880,9 +882,9 @@ void SimonEngine::readSubroutineLine(File *in, SubroutineLine *sl, Subroutine *s
|
|||
int size;
|
||||
|
||||
if (sub->id == 0) {
|
||||
sl->cond_a = in->readUint16BE();
|
||||
sl->cond_b = in->readUint16BE();
|
||||
sl->cond_c = in->readUint16BE();
|
||||
sl->verb = in->readUint16BE();
|
||||
sl->noun1 = in->readUint16BE();
|
||||
sl->noun2 = in->readUint16BE();
|
||||
}
|
||||
|
||||
while ((*q = in->readByte()) != 0xFF) {
|
||||
|
@ -1557,7 +1559,7 @@ bool SimonEngine::kickoffTimeEvents() {
|
|||
void SimonEngine::invokeTimeEvent(TimeEvent *te) {
|
||||
Subroutine *sub;
|
||||
|
||||
_scriptCondA = 0;
|
||||
_scriptVerb = 0;
|
||||
if (_runScriptReturn1)
|
||||
return;
|
||||
sub = getSubroutineByID(te->subroutine_id);
|
||||
|
@ -1579,9 +1581,11 @@ void SimonEngine::o_setup_cond_c() {
|
|||
_objectItem = derefItem(getItem1Ptr()->parent);
|
||||
|
||||
if (_objectItem != NULL) {
|
||||
_scriptCondC = _objectItem->noun;
|
||||
_scriptNoun2 = _objectItem->noun;
|
||||
_scriptAdj2 = _objectItem->adjective;
|
||||
} else {
|
||||
_scriptCondC = -1;
|
||||
_scriptNoun2 = -1;
|
||||
_scriptAdj2 = -1;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2194,18 +2198,22 @@ void SimonEngine::handle_verb_clicked(uint verb) {
|
|||
}
|
||||
|
||||
if (_subjectItem) {
|
||||
_scriptCondB = _subjectItem->noun;
|
||||
_scriptNoun1 = _subjectItem->noun;
|
||||
_scriptAdj1 = _subjectItem->adjective;
|
||||
} else {
|
||||
_scriptCondB = -1;
|
||||
_scriptNoun1 = -1;
|
||||
_scriptAdj1 = -1;
|
||||
}
|
||||
|
||||
if (_objectItem) {
|
||||
_scriptCondC = _objectItem->noun;
|
||||
_scriptNoun2 = _objectItem->noun;
|
||||
_scriptAdj2 = _objectItem->adjective;
|
||||
} else {
|
||||
_scriptCondC = -1;
|
||||
_scriptNoun2 = -1;
|
||||
_scriptAdj2 = -1;
|
||||
}
|
||||
|
||||
_scriptCondA = _verbHitArea;
|
||||
_scriptVerb = _verbHitArea;
|
||||
|
||||
sub = getSubroutineByID(0);
|
||||
if (sub == NULL)
|
||||
|
@ -2221,7 +2229,7 @@ void SimonEngine::handle_verb_clicked(uint verb) {
|
|||
if (sub)
|
||||
startSubroutine(sub);
|
||||
|
||||
if (getGameType() == GType_SIMON2)
|
||||
if (getGameType() == GType_SIMON2 || getGameType() == GType_FF)
|
||||
_runScriptReturn1 = false;
|
||||
|
||||
startUp_helper_2();
|
||||
|
@ -2661,13 +2669,13 @@ void SimonEngine::add_vga_timer(uint num, const byte *code_ptr, uint cur_sprite,
|
|||
_lockWord &= ~1;
|
||||
}
|
||||
|
||||
void SimonEngine::o_force_unlock() {
|
||||
void SimonEngine::o_mouseOn() {
|
||||
if (getGameType() == GType_SIMON2 && _bitArray[4] & 0x8000)
|
||||
_mouseCursor = 0;
|
||||
_lockCounter = 0;
|
||||
}
|
||||
|
||||
void SimonEngine::o_force_lock() {
|
||||
void SimonEngine::o_mouseOff() {
|
||||
_lockWord |= 0x8000;
|
||||
vc34_setMouseOff();
|
||||
_lockWord &= ~0x8000;
|
||||
|
|
|
@ -264,7 +264,8 @@ protected:
|
|||
const byte *_scrollImage;
|
||||
byte _vgaVar8;
|
||||
|
||||
int16 _scriptCondA, _scriptCondB, _scriptCondC;
|
||||
int16 _scriptVerb, _scriptNoun1, _scriptNoun2;
|
||||
int16 _scriptAdj1, _scriptAdj2;
|
||||
|
||||
uint16 _curWindow;
|
||||
FillOrCopyStruct *_textWindow;
|
||||
|
@ -566,8 +567,8 @@ protected:
|
|||
void o_lockZone();
|
||||
void o_unlockZone();
|
||||
void o_pathfind(int x, int y, uint var_1, uint var_2);
|
||||
void o_force_unlock();
|
||||
void o_force_lock();
|
||||
void o_mouseOn();
|
||||
void o_mouseOff();
|
||||
void o_loadBeard();
|
||||
void o_unloadBeard();
|
||||
void o_clear_vgapointer_entry(uint a);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue