diff options
-rw-r--r-- | backends/wince/pocketpc.cpp | 2 | ||||
-rw-r--r-- | backends/wince/smartphone.cpp | 2 | ||||
-rw-r--r-- | backends/wince/wince.cpp | 2 | ||||
-rw-r--r-- | common/engine.h | 2 | ||||
-rw-r--r-- | simon/charset.cpp | 22 | ||||
-rw-r--r-- | simon/debug.cpp | 20 | ||||
-rw-r--r-- | simon/items.cpp | 50 | ||||
-rw-r--r-- | simon/res.cpp | 10 | ||||
-rw-r--r-- | simon/simon.cpp | 354 | ||||
-rw-r--r-- | simon/simon.h | 6 | ||||
-rw-r--r-- | simon/verb.cpp | 44 | ||||
-rw-r--r-- | simon/vga.cpp | 330 |
12 files changed, 422 insertions, 422 deletions
diff --git a/backends/wince/pocketpc.cpp b/backends/wince/pocketpc.cpp index 877cf26cfd..0048c2b8da 100644 --- a/backends/wince/pocketpc.cpp +++ b/backends/wince/pocketpc.cpp @@ -235,7 +235,7 @@ BOOL PPCWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam, OSystem_W if (is_demo) do_quit(); if (is_simon) { - ((SimonState*)engine)->_exit_cutscene = true; + ((SimonEngine*)engine)->_exit_cutscene = true; break; } wm->_event.event_code = OSystem::EVENT_KEYDOWN; diff --git a/backends/wince/smartphone.cpp b/backends/wince/smartphone.cpp index 5bdb65c6c4..39e613a95d 100644 --- a/backends/wince/smartphone.cpp +++ b/backends/wince/smartphone.cpp @@ -306,7 +306,7 @@ void SmartfonSave(OSystem_WINCE3 *wm, BOOL repeat) { void SmartfonSkip(OSystem_WINCE3 *wm, BOOL repeat) { if (is_simon) { - ((SimonState*)engine)->_exit_cutscene = true; + ((SimonEngine*)engine)->_exit_cutscene = true; return; } wm->_event.event_code = OSystem::EVENT_KEYDOWN; diff --git a/backends/wince/wince.cpp b/backends/wince/wince.cpp index 967b6d9070..cd95effd17 100644 --- a/backends/wince/wince.cpp +++ b/backends/wince/wince.cpp @@ -360,7 +360,7 @@ Engine *engine; bool is_simon; NewGui *g_gui; extern Scumm *g_scumm; -//extern SimonState *g_simon; +//extern SimonEngine *g_simon; //OSystem *g_system; //SoundMixer *g_mixer; Config *g_config; diff --git a/common/engine.h b/common/engine.h index d6de2d4d32..151ce69352 100644 --- a/common/engine.h +++ b/common/engine.h @@ -58,7 +58,7 @@ public: virtual const char *getGameDataPath() const { return _gameDataPath; } // Create a new engine object based on the detector - either - // a Scumm or a SimonState object currently. + // a Scumm or a SimonEngine object currently. static Engine *createFromDetector(GameDetector *detector, OSystem *syst); // Specific for each engine preparare of erroe string diff --git a/simon/charset.cpp b/simon/charset.cpp index 99ffadbe58..ab405fea13 100644 --- a/simon/charset.cpp +++ b/simon/charset.cpp @@ -23,7 +23,7 @@ #include "simon/simon.h" #include "simon/intern.h" -void SimonState::print_char_helper_1(const byte *src, uint len) { +void SimonEngine::print_char_helper_1(const byte *src, uint len) { uint ind; if (_fcs_ptr_1 == NULL) @@ -41,13 +41,13 @@ void SimonState::print_char_helper_1(const byte *src, uint len) { } } -void SimonState::print_char_helper_5(FillOrCopyStruct *fcs) { +void SimonEngine::print_char_helper_5(FillOrCopyStruct *fcs) { uint index = get_fcs_ptr_3_index(fcs); print_char_helper_6(index); _fcs_data_1[index] = 0; } -void SimonState::print_char_helper_6(uint i) { +void SimonEngine::print_char_helper_6(uint i) { FillOrCopyStruct *fcs; if (_fcs_data_2[i]) { @@ -59,7 +59,7 @@ void SimonState::print_char_helper_6(uint i) { } } -void SimonState::render_string(uint num_1, uint color, uint width, uint height, const char *txt) { +void SimonEngine::render_string(uint num_1, uint color, uint width, uint height, const char *txt) { VgaPointersEntry *vpe = &_vga_buffer_pointers[2]; byte *src, *dst, *p, *dst_org, chr; uint count; @@ -127,7 +127,7 @@ void SimonState::render_string(uint num_1, uint color, uint width, uint height, } } -void SimonState::showMessageFormat(const char *s, ...) { +void SimonEngine::showMessageFormat(const char *s, ...) { char buf[1024], *str; va_list va; @@ -150,7 +150,7 @@ void SimonState::showMessageFormat(const char *s, ...) { showmessage_print_char(*str); } -void SimonState::showmessage_print_char(byte chr) { +void SimonEngine::showmessage_print_char(byte chr) { if (chr == 12) { _num_letters_to_print = 0; _print_char_unk_1 = 0; @@ -190,20 +190,20 @@ void SimonState::showmessage_print_char(byte chr) { } } -void SimonState::showmessage_helper_2() { +void SimonEngine::showmessage_helper_2() { if (_fcs_ptr_1) return; _fcs_ptr_1 = fcs_alloc(8, 0x90, 0x18, 6, 1, 0, 0xF); } -void SimonState::showmessage_helper_3(uint a, uint b) { +void SimonEngine::showmessage_helper_3(uint a, uint b) { _print_char_unk_1 = a; _print_char_unk_2 = b; _num_letters_to_print = 0; } -void SimonState::video_putchar(FillOrCopyStruct *fcs, byte c) { +void SimonEngine::video_putchar(FillOrCopyStruct *fcs, byte c) { if (c == 0xC) { video_fill_or_copy_from_3_to_2(fcs); } else if (c == 0xD || c == 0xA) { @@ -240,7 +240,7 @@ void SimonState::video_putchar(FillOrCopyStruct *fcs, byte c) { } } -void SimonState::video_putchar_newline(FillOrCopyStruct *fcs) { +void SimonEngine::video_putchar_newline(FillOrCopyStruct *fcs) { fcs->textColumnOffset = 0; fcs->textLength = 0; fcs->textColumn = 0; @@ -855,7 +855,7 @@ static const byte video_font[] = { 240, 240, 240, 240, 240, 240, 240, 240, }; -void SimonState::video_putchar_drawchar(FillOrCopyStruct *fcs, uint x, uint y, byte chr) { +void SimonEngine::video_putchar_drawchar(FillOrCopyStruct *fcs, uint x, uint y, byte chr) { const byte *src; byte color, *dst; uint h, i; diff --git a/simon/debug.cpp b/simon/debug.cpp index ffc978815d..e0c189b90a 100644 --- a/simon/debug.cpp +++ b/simon/debug.cpp @@ -30,7 +30,7 @@ #include <sys/stat.h> #endif -byte *SimonState::dumpOpcode(byte *p) { +byte *SimonEngine::dumpOpcode(byte *p) { byte opcode; const char *s, *st; @@ -132,7 +132,7 @@ byte *SimonState::dumpOpcode(byte *p) { } } -void SimonState::dumpSubroutineLine(SubroutineLine *sl, Subroutine *sub) { +void SimonEngine::dumpSubroutineLine(SubroutineLine *sl, Subroutine *sub) { byte *p; printf("; ****\n"); @@ -150,7 +150,7 @@ void SimonState::dumpSubroutineLine(SubroutineLine *sl, Subroutine *sub) { } } -void SimonState::dumpSubroutine(Subroutine *sub) { +void SimonEngine::dumpSubroutine(Subroutine *sub) { SubroutineLine *sl; fprintf(_dump_file, "\n******************************************\n;Subroutine, ID=%d:\nSUB_%d:\n", sub->id, sub->id); @@ -162,14 +162,14 @@ void SimonState::dumpSubroutine(Subroutine *sub) { fflush(_dump_file); } -void SimonState::dumpSubroutines() { +void SimonEngine::dumpSubroutines() { Subroutine *sub = _subroutine_list; for (; sub; sub = sub->next) { dumpSubroutine(sub); } } -void SimonState::dump_video_script(byte *src, bool one_opcode_only) { +void SimonEngine::dump_video_script(byte *src, bool one_opcode_only) { uint opcode; const char *str, *strn; @@ -233,7 +233,7 @@ void SimonState::dump_video_script(byte *src, bool one_opcode_only) { } while (!one_opcode_only); } -void SimonState::dump_vga_file(byte *vga) { +void SimonEngine::dump_vga_file(byte *vga) { { byte *pp; byte *p; @@ -351,7 +351,7 @@ void dump_bitmap(const char *filename, byte *offs, int w, int h, int flags, cons free(b); } -void SimonState::dump_single_bitmap(int file, int image, byte *offs, int w, int h, byte base) { +void SimonEngine::dump_single_bitmap(int file, int image, byte *offs, int w, int h, byte base) { /* Only supported for win32 atm. mkdir doesn't work otherwise. */ #if defined (WIN32) && !defined(_WIN32_WCE) char buf[255], buf2[255]; @@ -389,7 +389,7 @@ void pal_load(byte *pal, const byte *vga1, int a, int b) { } while (--num); } -void SimonState::dump_vga_bitmaps(byte *vga, byte *vga1, int res) { +void SimonEngine::dump_vga_bitmaps(byte *vga, byte *vga1, int res) { /* Only supported for win32 atm. mkdir doesn't work otherwise. */ #if defined (WIN32) && !defined(_WIN32_WCE) @@ -444,14 +444,14 @@ void SimonState::dump_vga_bitmaps(byte *vga, byte *vga1, int res) { #endif } -void SimonState::dump_vga_script_always(byte *ptr, uint res, uint sprite_id) { +void SimonEngine::dump_vga_script_always(byte *ptr, uint res, uint sprite_id) { fprintf(_dump_file, "; address=%x, vgafile=%d vgasprite=%d\n", ptr - _vga_buffer_pointers[res].vgaFile1, res, sprite_id); dump_video_script(ptr, false); fprintf(_dump_file, "; end\n"); } -void SimonState::dump_vga_script(byte *ptr, uint res, uint sprite_id) { +void SimonEngine::dump_vga_script(byte *ptr, uint res, uint sprite_id) { dump_vga_script_always(ptr, res, sprite_id); } diff --git a/simon/items.cpp b/simon/items.cpp index 9a9f0020a3..651798b406 100644 --- a/simon/items.cpp +++ b/simon/items.cpp @@ -32,7 +32,7 @@ extern void force_keyboard(bool); #endif -int SimonState::runScript() { +int SimonEngine::runScript() { byte opcode; bool flag, condition; @@ -1092,7 +1092,7 @@ int SimonState::runScript() { return 0; } -int SimonState::startSubroutine(Subroutine *sub) { +int SimonEngine::startSubroutine(Subroutine *sub) { int result = -1; SubroutineLine *sl; byte *old_code_ptr; @@ -1138,12 +1138,12 @@ int SimonState::startSubroutine(Subroutine *sub) { return result; } -int SimonState::startSubroutineEx(Subroutine *sub) { +int SimonEngine::startSubroutineEx(Subroutine *sub) { _item_1_ptr = _item_1; return startSubroutine(sub); } -bool SimonState::checkIfToRunSubroutineLine(SubroutineLine *sl, Subroutine *sub) { +bool SimonEngine::checkIfToRunSubroutineLine(SubroutineLine *sl, Subroutine *sub) { if (sub->id) return true; @@ -1162,7 +1162,7 @@ bool SimonState::checkIfToRunSubroutineLine(SubroutineLine *sl, Subroutine *sub) return true; } -void SimonState::o_83_helper() { +void SimonEngine::o_83_helper() { if (_exit_cutscene) { if (vc_get_bit(9)) { startSubroutine170(); @@ -1172,7 +1172,7 @@ void SimonState::o_83_helper() { } } -void SimonState::o_190_helper(uint i) { +void SimonEngine::o_190_helper(uint i) { _exit_cutscene = false; while (!(_op_189_flags & (1 << i))) { if (_exit_cutscene) { @@ -1189,7 +1189,7 @@ void SimonState::o_190_helper(uint i) { } -bool SimonState::o_unk_23(uint a) { +bool SimonEngine::o_unk_23(uint a) { if (a == 0) return 0; @@ -1218,7 +1218,7 @@ bool SimonState::o_unk_23(uint a) { return 0; } -void SimonState::o_inventory_descriptions() { +void SimonEngine::o_inventory_descriptions() { uint a = getVarOrByte(); uint b = getVarOrByte(); const char *s = NULL; @@ -1304,7 +1304,7 @@ void SimonState::o_inventory_descriptions() { } } -void SimonState::o_quit_if_user_presses_y() { +void SimonEngine::o_quit_if_user_presses_y() { for (;;) { delay(1); if (_key_pressed == 'f' && _language == 20) // Hebrew @@ -1325,7 +1325,7 @@ void SimonState::o_quit_if_user_presses_y() { get_out:; } -void SimonState::o_unk_137(uint fcs_index) { +void SimonEngine::o_unk_137(uint fcs_index) { FillOrCopyStruct *fcs; fcs = _fcs_ptr_array_3[fcs_index & 7]; @@ -1334,27 +1334,27 @@ void SimonState::o_unk_137(uint fcs_index) { fcs_unk_proc_1(fcs_index, fcs->fcs_data->item_ptr, fcs->fcs_data->unk1, fcs->fcs_data->unk2); } -void SimonState::o_unk_138() { +void SimonEngine::o_unk_138() { _vga_buf_start = _vga_buf_free_start; _vga_file_buf_org = _vga_buf_free_start; } -void SimonState::o_unk_186() { +void SimonEngine::o_unk_186() { _vga_buf_free_start = _vga_file_buf_org_2; _vga_buf_start = _vga_file_buf_org_2; _vga_file_buf_org = _vga_file_buf_org_2; } -void SimonState::o_unk_175() { +void SimonEngine::o_unk_175() { _vga_buf_start = _vga_buf_free_start; } -void SimonState::o_unk_176() { +void SimonEngine::o_unk_176() { _vga_buf_free_start = _vga_file_buf_org; _vga_buf_start = _vga_file_buf_org; } -int SimonState::o_unk_132_helper(bool *b, char *buf) { +int SimonEngine::o_unk_132_helper(bool *b, char *buf) { HitArea *ha; *b = true; @@ -1414,12 +1414,12 @@ start_over_2:; return ha->id - 208; } -void SimonState::o_unk_132_helper_3() { +void SimonEngine::o_unk_132_helper_3() { for (int i = 208; i != 208 + 6; i++) set_hitarea_bit_0x40(i); } -void SimonState::o_unk_132_helper_2(FillOrCopyStruct *fcs, int x) { +void SimonEngine::o_unk_132_helper_2(FillOrCopyStruct *fcs, int x) { byte old_text; video_putchar(fcs, x); @@ -1435,7 +1435,7 @@ void SimonState::o_unk_132_helper_2(FillOrCopyStruct *fcs, int x) { video_putchar(fcs, 8); } -void SimonState::o_play_music_resource() { +void SimonEngine::o_play_music_resource() { int music = getVarOrWord(); int track = getVarOrWord(); @@ -1464,7 +1464,7 @@ void SimonState::o_play_music_resource() { } } -void SimonState::o_unk_120(uint a) { +void SimonEngine::o_unk_120(uint a) { uint16 id = TO_BE_16(a); if (_game & GF_SIMON2) { _lock_word |= 0x8000; @@ -1479,25 +1479,25 @@ void SimonState::o_unk_120(uint a) { } } -void SimonState::o_unk_163(uint a) { +void SimonEngine::o_unk_163(uint a) { if (_game == GAME_SIMON1DOS) playSting(a); else _sound->playEffects(a); } -void SimonState::o_unk_160(uint a) { +void SimonEngine::o_unk_160(uint a) { fcs_setTextColor(_fcs_ptr_array_3[_fcs_unk_1], a); } -void SimonState::o_unk_103() { +void SimonEngine::o_unk_103() { lock(); fcs_unk1(_fcs_unk_1); showMessageFormat("\x0C"); unlock(); } -void SimonState::o_kill_sprite_simon1(uint a) { +void SimonEngine::o_kill_sprite_simon1(uint a) { uint16 b = TO_BE_16(a); _lock_word |= 0x4000; _vc_ptr = (byte *)&b; @@ -1505,7 +1505,7 @@ void SimonState::o_kill_sprite_simon1(uint a) { _lock_word &= ~0x4000; } -void SimonState::o_kill_sprite_simon2(uint a, uint b) { +void SimonEngine::o_kill_sprite_simon2(uint a, uint b) { uint16 items[2]; items[0] = TO_BE_16(a); @@ -1518,7 +1518,7 @@ void SimonState::o_kill_sprite_simon2(uint a, uint b) { } /* OK */ -void SimonState::o_unk26_helper(uint a, uint b, uint c, uint d, uint e, uint f, uint g, uint h) { +void SimonEngine::o_unk26_helper(uint a, uint b, uint c, uint d, uint e, uint f, uint g, uint h) { a &= 7; if (_fcs_ptr_array_3[a]) diff --git a/simon/res.cpp b/simon/res.cpp index b8e4b11c03..162290fb5d 100644 --- a/simon/res.cpp +++ b/simon/res.cpp @@ -94,7 +94,7 @@ static const char *const opcode_arg_table_simon2dos[256] = { " ", " ", "BT ", " ", "B " }; -void SimonState::loadGamePcFile(const char *filename) { +void SimonEngine::loadGamePcFile(const char *filename) { File * in = new File(); int num_inited_objects; int i, file_size; @@ -160,7 +160,7 @@ void SimonState::loadGamePcFile(const char *filename) { in->close(); } -void SimonState::readGamePcText(File *in) { +void SimonEngine::readGamePcText(File *in) { uint text_size; byte *text_mem; @@ -174,7 +174,7 @@ void SimonState::readGamePcText(File *in) { setupStringTable(text_mem, _stringtab_num); } -void SimonState::readItemFromGamePc(File *in, Item *item) { +void SimonEngine::readItemFromGamePc(File *in, Item *item) { uint32 type; item->unk2 = in->readUint16BE(); @@ -195,7 +195,7 @@ void SimonState::readItemFromGamePc(File *in, Item *item) { } } -void SimonState::readItemChildren(File *in, Item *item, uint type) { +void SimonEngine::readItemChildren(File *in, Item *item, uint type) { if (type == 1) { uint fr1 = in->readUint16BE(); uint fr2 = in->readUint16BE(); @@ -249,7 +249,7 @@ uint fileReadItemID(File *in) { return val + 2; } -byte *SimonState::readSingleOpcode(File *in, byte *ptr) { +byte *SimonEngine::readSingleOpcode(File *in, byte *ptr) { int i, l; const char *string_ptr; uint val; diff --git a/simon/simon.cpp b/simon/simon.cpp index 67e5f6bcda..eba5ebf9b5 100644 --- a/simon/simon.cpp +++ b/simon/simon.cpp @@ -166,10 +166,10 @@ static const GameSpecificSettings simon2dos_settings = { Engine *Engine_SIMON_create(GameDetector *detector, OSystem *syst) { - return new SimonState(detector, syst); + return new SimonEngine(detector, syst); } -SimonState::SimonState(GameDetector *detector, OSystem *syst) +SimonEngine::SimonEngine(GameDetector *detector, OSystem *syst) : Engine(detector, syst), midi (syst) { MidiDriver *driver = detector->createMidi(); @@ -432,7 +432,7 @@ SimonState::SimonState(GameDetector *detector, OSystem *syst) _language = detector->_language; } -SimonState::~SimonState() { +SimonEngine::~SimonEngine() { delete _dummy_item_1; delete _dummy_item_2; delete _dummy_item_3; @@ -440,7 +440,7 @@ SimonState::~SimonState() { delete [] _fcs_list; } -void SimonState::errorString(const char *buf1, char *buf2) { +void SimonEngine::errorString(const char *buf1, char *buf2) { strcpy(buf2, buf1); } @@ -464,7 +464,7 @@ void palette_fadeout(uint32 *pal_values, uint num) { } while (--num); } -byte *SimonState::allocateItem(uint size) { +byte *SimonEngine::allocateItem(uint size) { byte *org = _itemheap_ptr; size = (size + 3) & ~3; @@ -477,14 +477,14 @@ byte *SimonState::allocateItem(uint size) { return org; } -void SimonState::alignTableMem() { +void SimonEngine::alignTableMem() { if ((uint32)_tablesheap_ptr & 3) { _tablesheap_ptr += 2; _tablesheap_curpos += 2; } } -byte *SimonState::allocateTable(uint size) { +byte *SimonEngine::allocateTable(uint size) { byte *org = _tablesheap_ptr; size = (size + 1) & ~1; @@ -498,7 +498,7 @@ byte *SimonState::allocateTable(uint size) { return org; } -int SimonState::allocGamePcVars(File *in) { +int SimonEngine::allocGamePcVars(File *in) { uint item_array_size, item_array_inited, stringtable_num; uint32 version; uint i; @@ -532,13 +532,13 @@ int SimonState::allocGamePcVars(File *in) { return item_array_inited; } -Item *SimonState::allocItem1() { +Item *SimonEngine::allocItem1() { Item *item = (Item *)allocateItem(sizeof(Item)); _itemarray_ptr[1] = item; return item; } -void SimonState::loginPlayerHelper(Item *item, int a, int b) { +void SimonEngine::loginPlayerHelper(Item *item, int a, int b) { Child9 *child; child = (Child9 *) findChildOfType(item, 9); @@ -550,7 +550,7 @@ void SimonState::loginPlayerHelper(Item *item, int a, int b) { child->array[a] = b; } -void SimonState::loginPlayer() { +void SimonEngine::loginPlayer() { Item *item; Child *child; @@ -566,13 +566,13 @@ void SimonState::loginPlayer() { loginPlayerHelper(item, 0, 0); } -void SimonState::allocateStringTable(int num) { +void SimonEngine::allocateStringTable(int num) { _stringtab_ptr = (byte **)calloc(num, sizeof(byte *)); _stringtab_pos = 0; _stringtab_numalloc = num; } -void SimonState::setupStringTable(byte *mem, int num) { +void SimonEngine::setupStringTable(byte *mem, int num) { int i = 0; for (;;) { _stringtab_ptr[i++] = mem; @@ -585,7 +585,7 @@ void SimonState::setupStringTable(byte *mem, int num) { _stringtab_pos = i; } -void SimonState::setupLocalStringTable(byte *mem, int num) { +void SimonEngine::setupLocalStringTable(byte *mem, int num) { int i = 0; for (;;) { _local_stringtable[i++] = mem; @@ -596,7 +596,7 @@ void SimonState::setupLocalStringTable(byte *mem, int num) { } } -void SimonState::readSubroutineLine(File *in, SubroutineLine *sl, Subroutine *sub) { +void SimonEngine::readSubroutineLine(File *in, SubroutineLine *sl, Subroutine *sub) { byte line_buffer[1024], *q = line_buffer; int size; @@ -619,7 +619,7 @@ void SimonState::readSubroutineLine(File *in, SubroutineLine *sl, Subroutine *su memcpy(allocateTable(size), line_buffer, size); } -SubroutineLine *SimonState::createSubroutineLine(Subroutine *sub, int where) { +SubroutineLine *SimonEngine::createSubroutineLine(Subroutine *sub, int where) { SubroutineLine *sl, *cur_sl = NULL, *last_sl = NULL; if (sub->id == 0) @@ -652,13 +652,13 @@ SubroutineLine *SimonState::createSubroutineLine(Subroutine *sub, int where) { return sl; } -void SimonState::readSubroutine(File *in, Subroutine *sub) { +void SimonEngine::readSubroutine(File *in, Subroutine *sub) { while (in->readUint16BE() == 0) { readSubroutineLine(in, createSubroutineLine(sub, 0xFFFF), sub); } } -Subroutine *SimonState::createSubroutine(uint id) { +Subroutine *SimonEngine::createSubroutine(uint id) { Subroutine *sub; alignTableMem(); @@ -671,13 +671,13 @@ Subroutine *SimonState::createSubroutine(uint id) { return sub; } -void SimonState::readSubroutineBlock(File *in) { +void SimonEngine::readSubroutineBlock(File *in) { while (in->readUint16BE() == 0) { readSubroutine(in, createSubroutine(in->readUint16BE())); } } -Child *SimonState::findChildOfType(Item *i, uint type) { +Child *SimonEngine::findChildOfType(Item *i, uint type) { Child *child = i->children; for (; child; child = child->next) if (child->type == type) @@ -685,15 +685,15 @@ Child *SimonState::findChildOfType(Item *i, uint type) { return NULL; } -bool SimonState::hasChildOfType1(Item *item) { +bool SimonEngine::hasChildOfType1(Item *item) { return findChildOfType(item, 1) != NULL; } -bool SimonState::hasChildOfType2(Item *item) { +bool SimonEngine::hasChildOfType2(Item *item) { return findChildOfType(item, 2) != NULL; } -uint SimonState::getOffsetOfChild2Param(Child2 *child, uint prop) { +uint SimonEngine::getOffsetOfChild2Param(Child2 *child, uint prop) { uint m = 1; uint offset = 0; while (m != prop) { @@ -704,7 +704,7 @@ uint SimonState::getOffsetOfChild2Param(Child2 *child, uint prop) { return offset; } -Child *SimonState::allocateChildBlock(Item *i, uint type, uint size) { +Child *SimonEngine::allocateChildBlock(Item *i, uint type, uint size) { Child *child = (Child *)allocateItem(size); child->next = i->children; i->children = child; @@ -712,39 +712,39 @@ Child *SimonState::allocateChildBlock(Item *i, uint type, uint size) { return child; } -void SimonState::allocItemHeap() { +void SimonEngine::allocItemHeap() { _itemheap_size = 10000; _itemheap_curpos = 0; _itemheap_ptr = (byte *)calloc(10000, 1); } -void SimonState::allocTablesHeap() { +void SimonEngine::allocTablesHeap() { _tablesheap_size = gss->TABLES_MEM_SIZE; _tablesheap_curpos = 0; _tablesheap_ptr = (byte *)calloc(gss->TABLES_MEM_SIZE, 1); } -void SimonState::setItemUnk3(Item *item, int value) { +void SimonEngine::setItemUnk3(Item *item, int value) { item->unk3 = value; } -int SimonState::getNextWord() { +int SimonEngine::getNextWord() { _code_ptr += 2; return (int16)((_code_ptr[-2] << 8) | _code_ptr[-1]); } -uint SimonState::getNextStringID() { +uint SimonEngine::getNextStringID() { return (uint16)getNextWord(); } -uint SimonState::getVarOrByte() { +uint SimonEngine::getVarOrByte() { uint a = *_code_ptr++; if (a != 255) return a; return readVariable(*_code_ptr++); } -uint SimonState::getVarOrWord() { +uint SimonEngine::getVarOrWord() { uint a = (_code_ptr[0] << 8) | _code_ptr[1]; _code_ptr += 2; if (a >= 30000 && a < 30512) @@ -752,7 +752,7 @@ uint SimonState::getVarOrWord() { return a; } -Item *SimonState::getNextItemPtr() { +Item *SimonEngine::getNextItemPtr() { int a = getNextWord(); switch (a) { case -1: @@ -770,7 +770,7 @@ Item *SimonState::getNextItemPtr() { } } -Item *SimonState::getNextItemPtrStrange() { +Item *SimonEngine::getNextItemPtrStrange() { int a = getNextWord(); switch (a) { case -1: @@ -788,7 +788,7 @@ Item *SimonState::getNextItemPtrStrange() { } } -uint SimonState::getNextItemID() { +uint SimonEngine::getNextItemID() { int a = getNextWord(); switch (a) { case -1: @@ -806,40 +806,40 @@ uint SimonState::getNextItemID() { } } -Item *SimonState::getItem1Ptr() { +Item *SimonEngine::getItem1Ptr() { if (_item_1_ptr) return _item_1_ptr; return _dummy_item_1; } -Item *SimonState::getItemPtrB() { +Item *SimonEngine::getItemPtrB() { error("getItemPtrB: is this code ever used?"); if (_item_ptr_B) return _item_ptr_B; return _dummy_item_1; } -uint SimonState::getNextVarContents() { +uint SimonEngine::getNextVarContents() { return (uint16)readVariable(getVarOrByte()); } -uint SimonState::readVariable(uint variable) { +uint SimonEngine::readVariable(uint variable) { if (variable >= 255) error("Variable %d out of range in read", variable); return _variableArray[variable]; } -void SimonState::writeNextVarContents(uint16 contents) { +void SimonEngine::writeNextVarContents(uint16 contents) { writeVariable(getVarOrByte(), contents); } -void SimonState::writeVariable(uint variable, uint16 contents) { +void SimonEngine::writeVariable(uint variable, uint16 contents) { if (variable >= 256) error("Variable %d out of range in write", variable); _variableArray[variable] = contents; } -void SimonState::setItemParent(Item *item, Item *parent) { +void SimonEngine::setItemParent(Item *item, Item *parent) { Item *old_parent = derefItem(item->parent); if (item == parent) @@ -853,7 +853,7 @@ void SimonState::setItemParent(Item *item, Item *parent) { itemChildrenChanged(parent); } -void SimonState::itemChildrenChanged(Item *item) { +void SimonEngine::itemChildrenChanged(Item *item) { int i; FillOrCopyStruct *fcs; @@ -877,7 +877,7 @@ void SimonState::itemChildrenChanged(Item *item) { unlock(); } -void SimonState::unlinkItem(Item *item) { +void SimonEngine::unlinkItem(Item *item) { Item *first, *parent, *next; // can't unlink item without parent @@ -913,7 +913,7 @@ void SimonState::unlinkItem(Item *item) { } } -void SimonState::linkItem(Item *item, Item *parent) { +void SimonEngine::linkItem(Item *item, Item *parent) { uint id; // Don't allow that an item that is already linked is relinked if (item->parent) @@ -930,7 +930,7 @@ void SimonState::linkItem(Item *item, Item *parent) { } } -const byte *SimonState::getStringPtrByID(uint string_id) { +const byte *SimonEngine::getStringPtrByID(uint string_id) { const byte *string_ptr; byte *dst; @@ -947,14 +947,14 @@ const byte *SimonState::getStringPtrByID(uint string_id) { return dst; } -const byte *SimonState::getLocalStringByID(uint string_id) { +const byte *SimonEngine::getLocalStringByID(uint string_id) { if (string_id < _string_id_local_min || string_id >= _string_id_local_max) { loadTextIntoMem(string_id); } return _local_stringtable[string_id - _string_id_local_min]; } -void SimonState::loadTextIntoMem(uint string_id) { +void SimonEngine::loadTextIntoMem(uint string_id) { byte *p; char filename[30]; int i; @@ -1004,7 +1004,7 @@ void SimonState::loadTextIntoMem(uint string_id) { error("loadTextIntoMem: didn't find %d", string_id); } -void SimonState::loadTablesIntoMem(uint subr_id) { +void SimonEngine::loadTablesIntoMem(uint subr_id) { byte *p; int i; uint min_num, max_num; @@ -1067,7 +1067,7 @@ void SimonState::loadTablesIntoMem(uint subr_id) { warning("loadTablesIntoMem: didn't find %d", subr_id); } -void SimonState::playSting(uint a) { +void SimonEngine::playSting(uint a) { if (!midi._enable_sfx) return; @@ -1094,7 +1094,7 @@ void SimonState::playSting(uint a) { midi.startTrack (0); } -Subroutine *SimonState::getSubroutineByID(uint subroutine_id) { +Subroutine *SimonEngine::getSubroutineByID(uint subroutine_id) { Subroutine *cur; for (cur = _subroutine_list; cur; cur = cur->next) { @@ -1114,7 +1114,7 @@ Subroutine *SimonState::getSubroutineByID(uint subroutine_id) { return NULL; } -uint SimonState::loadTextFile_gme(const char *filename, byte *dst) { +uint SimonEngine::loadTextFile_gme(const char *filename, byte *dst) { uint res; uint32 offs; uint32 size; @@ -1128,7 +1128,7 @@ uint SimonState::loadTextFile_gme(const char *filename, byte *dst) { return size; } -File *SimonState::openTablesFile_gme(const char *filename) { +File *SimonEngine::openTablesFile_gme(const char *filename) { uint res; uint32 offs; @@ -1139,11 +1139,11 @@ File *SimonState::openTablesFile_gme(const char *filename) { return _game_file; } -void SimonState::closeTablesFile_gme(File *in) { +void SimonEngine::closeTablesFile_gme(File *in) { // not needed } -uint SimonState::loadTextFile_simon1(const char *filename, byte *dst) { +uint SimonEngine::loadTextFile_simon1(const char *filename, byte *dst) { File fo; fo.open(filename, _gameDataPath); uint32 size; @@ -1160,7 +1160,7 @@ uint SimonState::loadTextFile_simon1(const char *filename, byte *dst) { return size; } -File *SimonState::openTablesFile_simon1(const char *filename) { +File *SimonEngine::openTablesFile_simon1(const char *filename) { File *fo = new File(); fo->open(filename, _gameDataPath); if (fo->isOpen() == false) @@ -1168,32 +1168,32 @@ File *SimonState::openTablesFile_simon1(const char *filename) { return fo; } -void SimonState::closeTablesFile_simon1(File *in) { +void SimonEngine::closeTablesFile_simon1(File *in) { in->close(); } -uint SimonState::loadTextFile(const char *filename, byte *dst) { +uint SimonEngine::loadTextFile(const char *filename, byte *dst) { if (_game & GF_AMIGAS || _game == GAME_SIMON1DEMO || _game == GAME_SIMON1DOS) return loadTextFile_simon1(filename, dst); else return loadTextFile_gme(filename, dst); } -File *SimonState::openTablesFile(const char *filename) { +File *SimonEngine::openTablesFile(const char *filename) { if (_game & GF_AMIGAS || _game == GAME_SIMON1DEMO || _game == GAME_SIMON1DOS) return openTablesFile_simon1(filename); else return openTablesFile_gme(filename); } -void SimonState::closeTablesFile(File *in) { +void SimonEngine::closeTablesFile(File *in) { if (_game & GF_AMIGAS || _game == GAME_SIMON1DEMO || _game == GAME_SIMON1DOS) closeTablesFile_simon1(in); else closeTablesFile_gme(in); } -void SimonState::addTimeEvent(uint timeout, uint subroutine_id) { +void SimonEngine::addTimeEvent(uint timeout, uint subroutine_id) { TimeEvent *te = (TimeEvent *)malloc(sizeof(TimeEvent)), *first, *last = NULL; time_t cur_time; @@ -1228,7 +1228,7 @@ void SimonState::addTimeEvent(uint timeout, uint subroutine_id) { } } -void SimonState::delTimeEvent(TimeEvent *te) { +void SimonEngine::delTimeEvent(TimeEvent *te) { TimeEvent *cur; if (te == _pending_delete_time_event) @@ -1256,7 +1256,7 @@ void SimonState::delTimeEvent(TimeEvent *te) { } } -void SimonState::killAllTimers() { +void SimonEngine::killAllTimers() { TimeEvent *cur, *next; for (cur = _first_time_struct; cur; cur = next) { @@ -1265,7 +1265,7 @@ void SimonState::killAllTimers() { } } -bool SimonState::kickoffTimeEvents() { +bool SimonEngine::kickoffTimeEvents() { time_t cur_time; TimeEvent *te; bool result = false; @@ -1286,7 +1286,7 @@ bool SimonState::kickoffTimeEvents() { return result; } -void SimonState::invokeTimeEvent(TimeEvent *te) { +void SimonEngine::invokeTimeEvent(TimeEvent *te) { Subroutine *sub; _script_cond_a = 0; @@ -1298,7 +1298,7 @@ void SimonState::invokeTimeEvent(TimeEvent *te) { _run_script_return_1 = false; } -void SimonState::o_setup_cond_c() { +void SimonEngine::o_setup_cond_c() { Item *item = _item_1; setup_cond_c_helper(); @@ -1319,7 +1319,7 @@ void SimonState::o_setup_cond_c() { } } -void SimonState::setup_cond_c_helper() { +void SimonEngine::setup_cond_c_helper() { HitArea *last; if (_game & GF_SIMON2) { @@ -1372,7 +1372,7 @@ out_of_here: _hitarea_unk_6 = false; } -void SimonState::startSubroutine170() { +void SimonEngine::startSubroutine170() { Subroutine *sub; _sound->stopVoice(); @@ -1384,7 +1384,7 @@ void SimonState::startSubroutine170() { _run_script_return_1 = true; } -uint SimonState::get_fcs_ptr_3_index(FillOrCopyStruct *fcs) { +uint SimonEngine::get_fcs_ptr_3_index(FillOrCopyStruct *fcs) { uint i; for (i = 0; i != ARRAYSIZE(_fcs_ptr_array_3); i++) @@ -1394,11 +1394,11 @@ uint SimonState::get_fcs_ptr_3_index(FillOrCopyStruct *fcs) { error("get_fcs_ptr_3_index: not found"); } -void SimonState::lock() { +void SimonEngine::lock() { _lock_counter++; } -void SimonState::unlock() { +void SimonEngine::unlock() { _lock_word |= 1; if (_lock_counter != 0) @@ -1407,7 +1407,7 @@ void SimonState::unlock() { _lock_word &= ~1; } -void SimonState::handle_mouse_moved() { +void SimonEngine::handle_mouse_moved() { uint x; if (_lock_counter) { @@ -1480,7 +1480,7 @@ get_out: _need_hitarea_recalc = 0; } -void SimonState::fcs_unk_proc_1(uint fcs_index, Item *item_ptr, int unk1, int unk2) { +void SimonEngine::fcs_unk_proc_1(uint fcs_index, Item *item_ptr, int unk1, int unk2) { Item *item_ptr_org = item_ptr; FillOrCopyStruct *fcs_ptr; uint width_div_3, height_div_3; @@ -1578,14 +1578,14 @@ void SimonState::fcs_unk_proc_1(uint fcs_index, Item *item_ptr, int unk1, int un } } -void SimonState::fcs_unk_proc_2(FillOrCopyStruct *fcs, uint fcs_index) { +void SimonEngine::fcs_unk_proc_2(FillOrCopyStruct *fcs, uint fcs_index) { setup_hit_areas(fcs, fcs_index); fcs->fcs_data->unk3 = _scroll_up_hit_area; fcs->fcs_data->unk4 = _scroll_down_hit_area; } -void SimonState::setup_hit_areas(FillOrCopyStruct *fcs, uint fcs_index) { +void SimonEngine::setup_hit_areas(FillOrCopyStruct *fcs, uint fcs_index) { HitArea *ha; ha = findEmptyHitArea(); @@ -1643,12 +1643,12 @@ void SimonState::setup_hit_areas(FillOrCopyStruct *fcs, uint fcs_index) { } -bool SimonState::has_item_childflag_0x10(Item *item) { +bool SimonEngine::has_item_childflag_0x10(Item *item) { Child2 *child = (Child2 *)findChildOfType(item, 2); return child && (child->avail_props & 0x10) != 0; } -uint SimonState::item_get_icon_number(Item *item) { +uint SimonEngine::item_get_icon_number(Item *item) { Child2 *child = (Child2 *)findChildOfType(item, 2); uint offs; @@ -1659,7 +1659,7 @@ uint SimonState::item_get_icon_number(Item *item) { return child->array[offs]; } -void SimonState::loadIconFile() { +void SimonEngine::loadIconFile() { File in; if (_game & GF_AMIGAS) in.open("icon.pkd", _gameDataPath); @@ -1680,7 +1680,7 @@ void SimonState::loadIconFile() { in.close(); } -uint SimonState::setup_icon_hit_area(FillOrCopyStruct *fcs, uint x, uint y, uint icon_number, +uint SimonEngine::setup_icon_hit_area(FillOrCopyStruct *fcs, uint x, uint y, uint icon_number, Item *item_ptr) { HitArea *ha; @@ -1711,7 +1711,7 @@ uint SimonState::setup_icon_hit_area(FillOrCopyStruct *fcs, uint x, uint y, uint return ha - _hit_areas; } -void SimonState::f10_key() { +void SimonEngine::f10_key() { HitArea *ha; uint count; uint y_, x_; @@ -1789,7 +1789,7 @@ void SimonState::f10_key() { _lock_word &= ~0x8000; } -void SimonState::hitarea_stuff() { +void SimonEngine::hitarea_stuff() { HitArea *ha; uint id; @@ -1861,7 +1861,7 @@ startOver: _need_hitarea_recalc++; } -void SimonState::hitarea_stuff_helper() { +void SimonEngine::hitarea_stuff_helper() { time_t cur_time; if (!(_game & GF_SIMON2)) { @@ -1890,7 +1890,7 @@ void SimonState::hitarea_stuff_helper() { } // Simon 2 specific -void SimonState::hitarea_stuff_helper_2() { +void SimonEngine::hitarea_stuff_helper_2() { uint subr_id; Subroutine *sub; @@ -1919,7 +1919,7 @@ void SimonState::hitarea_stuff_helper_2() { _run_script_return_1 = false; } -void SimonState::startUp_helper_2() { +void SimonEngine::startUp_helper_2() { if (!_mortal_flag) { _mortal_flag = true; startUp_helper_3(); @@ -1932,16 +1932,16 @@ void SimonState::startUp_helper_2() { } } -void SimonState::startUp_helper_3() { +void SimonEngine::startUp_helper_3() { showmessage_print_char(0); } -void SimonState::pollMouseXY() { +void SimonEngine::pollMouseXY() { _mouse_x = _sdl_mouse_x; _mouse_y = _sdl_mouse_y; } -void SimonState::handle_verb_clicked(uint verb) { +void SimonEngine::handle_verb_clicked(uint verb) { Subroutine *sub; int result; @@ -1997,7 +1997,7 @@ void SimonState::handle_verb_clicked(uint verb) { startUp_helper_2(); } -ThreeValues *SimonState::getThreeValues(uint a) { +ThreeValues *SimonEngine::getThreeValues(uint a) { switch (a) { case 1: return &_threevalues_1; @@ -2014,7 +2014,7 @@ ThreeValues *SimonState::getThreeValues(uint a) { } } -void SimonState::o_print_str() { +void SimonEngine::o_print_str() { uint num_1 = getVarOrByte(); uint num_2 = getVarOrByte(); uint string_id = getNextStringID(); @@ -2068,13 +2068,13 @@ void SimonState::o_print_str() { } } -void SimonState::ensureVgaResLoadedC(uint vga_res) { +void SimonEngine::ensureVgaResLoadedC(uint vga_res) { _lock_word |= 0x80; ensureVgaResLoaded(vga_res); _lock_word &= ~0x80; } -void SimonState::ensureVgaResLoaded(uint vga_res) { +void SimonEngine::ensureVgaResLoaded(uint vga_res) { VgaPointersEntry *vpe; CHECK_BOUNDS(vga_res, _vga_buffer_pointers); @@ -2088,7 +2088,7 @@ void SimonState::ensureVgaResLoaded(uint vga_res) { } -byte *SimonState::setup_vga_destination(uint32 size) { +byte *SimonEngine::setup_vga_destination(uint32 size) { byte *dest, *end; _video_var_4 = 0; @@ -2115,7 +2115,7 @@ byte *SimonState::setup_vga_destination(uint32 size) { } } -void SimonState::setup_vga_file_buf_pointers() { +void SimonEngine::setup_vga_file_buf_pointers() { byte *alloced; alloced = (byte *)malloc(gss->VGA_MEM_SIZE); @@ -2127,7 +2127,7 @@ void SimonState::setup_vga_file_buf_pointers() { _vga_buf_end = alloced + gss->VGA_MEM_SIZE; } -void SimonState::vga_buf_unk_proc3(byte *end) { +void SimonEngine::vga_buf_unk_proc3(byte *end) { VgaPointersEntry *vpe; if (_video_var_7 == 0xFFFF) @@ -2148,7 +2148,7 @@ void SimonState::vga_buf_unk_proc3(byte *end) { } } -void SimonState::vga_buf_unk_proc1(byte *end) { +void SimonEngine::vga_buf_unk_proc1(byte *end) { VgaSprite *vsp; if (_lock_word & 0x20) return; @@ -2160,7 +2160,7 @@ void SimonState::vga_buf_unk_proc1(byte *end) { } } -void SimonState::delete_memptr_range(byte *end) { +void SimonEngine::delete_memptr_range(byte *end) { uint count = ARRAYSIZE(_vga_buffer_pointers); VgaPointersEntry *vpe = _vga_buffer_pointers; do { @@ -2174,7 +2174,7 @@ void SimonState::delete_memptr_range(byte *end) { } while (++vpe, --count); } -void SimonState::vga_buf_unk_proc2(uint a, byte *end) { +void SimonEngine::vga_buf_unk_proc2(uint a, byte *end) { VgaPointersEntry *vpe; vpe = &_vga_buffer_pointers[a]; @@ -2189,7 +2189,7 @@ void SimonState::vga_buf_unk_proc2(uint a, byte *end) { } } -void SimonState::o_clear_vgapointer_entry(uint a) { +void SimonEngine::o_clear_vgapointer_entry(uint a) { VgaPointersEntry *vpe; vpe = &_vga_buffer_pointers[a]; @@ -2199,7 +2199,7 @@ void SimonState::o_clear_vgapointer_entry(uint a) { vpe->vgaFile2 = NULL; } -void SimonState::o_set_video_mode(uint mode, uint vga_res) { +void SimonEngine::o_set_video_mode(uint mode, uint vga_res) { if (mode == 4) vc_29_stop_all_sounds(); @@ -2211,7 +2211,7 @@ void SimonState::o_set_video_mode(uint mode, uint vga_res) { } } -void SimonState::set_video_mode_internal(uint mode, uint vga_res_id) { +void SimonEngine::set_video_mode_internal(uint mode, uint vga_res_id) { uint num; VgaPointersEntry *vpe; byte *bb, *b; @@ -2307,7 +2307,7 @@ void SimonState::set_video_mode_internal(uint mode, uint vga_res_id) { } } -void SimonState::set_video_mode(uint mode, uint vga_res_id) { +void SimonEngine::set_video_mode(uint mode, uint vga_res_id) { if (_lock_counter == 0) { lock(); if (_lock_word == 0) { @@ -2329,7 +2329,7 @@ void SimonState::set_video_mode(uint mode, uint vga_res_id) { set_video_mode_internal(mode, vga_res_id); } -void SimonState::o_fade_to_black() { +void SimonEngine::o_fade_to_black() { uint i; memcpy(_video_buf_1, _palette_backup, 256 * sizeof(uint32)); @@ -2349,7 +2349,7 @@ void SimonState::o_fade_to_black() { memcpy(_palette, _video_buf_1, 256 * sizeof(uint32)); } -void SimonState::delete_vga_timer(VgaTimerEntry * vte) { +void SimonEngine::delete_vga_timer(VgaTimerEntry * vte) { _lock_word |= 1; if (vte + 1 <= _next_vga_timer_to_process) { @@ -2364,7 +2364,7 @@ void SimonState::delete_vga_timer(VgaTimerEntry * vte) { _lock_word &= ~1; } -void SimonState::expire_vga_timers() { +void SimonEngine::expire_vga_timers() { if (_game & GF_SIMON2) { VgaTimerEntry *vte = _vga_timer_list; @@ -2415,7 +2415,7 @@ void SimonState::expire_vga_timers() { } // Simon2 specific -void SimonState::scroll_timeout() { +void SimonEngine::scroll_timeout() { if (_vga_var2 == 0) return; @@ -2436,7 +2436,7 @@ void SimonState::scroll_timeout() { add_vga_timer(10, NULL, 0, 0); } -void SimonState::vc_resume_sprite(byte *code_ptr, uint16 cur_file, uint16 cur_sprite) { +void SimonEngine::vc_resume_sprite(byte *code_ptr, uint16 cur_file, uint16 cur_sprite) { VgaPointersEntry *vpe; _vga_cur_sprite_id = cur_sprite; @@ -2453,7 +2453,7 @@ void SimonState::vc_resume_sprite(byte *code_ptr, uint16 cur_file, uint16 cur_sp run_vga_script(); } -void SimonState::add_vga_timer(uint num, byte *code_ptr, uint cur_sprite, uint cur_file) { +void SimonEngine::add_vga_timer(uint num, byte *code_ptr, uint cur_sprite, uint cur_file) { VgaTimerEntry *vte; _lock_word |= 1; @@ -2469,13 +2469,13 @@ void SimonState::add_vga_timer(uint num, byte *code_ptr, uint cur_sprite, uint c _lock_word &= ~1; } -void SimonState::o_force_unlock() { +void SimonEngine::o_force_unlock() { if (_game & GF_SIMON2 && _bit_array[4] & 0x8000) _mouse_cursor = 0; _lock_counter = 0; } -void SimonState::o_force_lock() { +void SimonEngine::o_force_lock() { if (_game & GF_SIMON2) { _lock_word |= 0x8000; vc_34_force_lock(); @@ -2487,15 +2487,15 @@ void SimonState::o_force_lock() { } } -void SimonState::o_save_game() { +void SimonEngine::o_save_game() { save_or_load_dialog(false); } -void SimonState::o_load_game() { +void SimonEngine::o_load_game() { save_or_load_dialog(true); } -int SimonState::display_savegame_list(int curpos, bool load, char *dst) { +int SimonEngine::display_savegame_list(int curpos, bool load, char *dst) { int slot, last_slot; File in; @@ -2542,7 +2542,7 @@ int SimonState::display_savegame_list(int curpos, bool load, char *dst) { return slot - curpos; } -void SimonState::savegame_dialog(char *buf) { +void SimonEngine::savegame_dialog(char *buf) { int i; o_unk_132_helper_3(); @@ -2566,7 +2566,7 @@ void SimonState::savegame_dialog(char *buf) { } while (--i); } -void SimonState::save_or_load_dialog(bool load) { +void SimonEngine::save_or_load_dialog(bool load) { time_t save_time; int num = _number_of_savegames; int i; @@ -2723,7 +2723,7 @@ get_out:; #endif } -void SimonState::o_wait_for_vga(uint a) { +void SimonEngine::o_wait_for_vga(uint a) { _vga_wait_for = a; _timer_1 = 0; _exit_cutscene = false; @@ -2760,7 +2760,7 @@ void SimonState::o_wait_for_vga(uint a) { } } -void SimonState::skip_speech() { +void SimonEngine::skip_speech() { _sound->stopVoice(); if (!(_bit_array[1] & 0x1000)) { _bit_array[0] |= 0x4000; @@ -2771,7 +2771,7 @@ void SimonState::skip_speech() { } } -void SimonState::timer_vga_sprites() { +void SimonEngine::timer_vga_sprites() { VgaSprite *vsp; VgaPointersEntry *vpe; byte *vc_ptr_org = _vc_ptr; @@ -2821,7 +2821,7 @@ void SimonState::timer_vga_sprites() { _vc_ptr = vc_ptr_org; } -void SimonState::timer_vga_sprites_helper() { +void SimonEngine::timer_vga_sprites_helper() { byte *dst = dx_lock_2(), *src; uint x; @@ -2855,7 +2855,7 @@ void SimonState::timer_vga_sprites_helper() { _vga_var3 = 0; } -void SimonState::timer_vga_sprites_2() { +void SimonEngine::timer_vga_sprites_2() { VgaSprite *vsp; VgaPointersEntry *vpe; byte *vc_ptr_org = _vc_ptr; @@ -2894,7 +2894,7 @@ void SimonState::timer_vga_sprites_2() { _vc_ptr = vc_ptr_org; } -void SimonState::timer_proc1() { +void SimonEngine::timer_proc1() { _timer_4++; if (_game & GF_SIMON2) { @@ -2958,7 +2958,7 @@ void SimonState::timer_proc1() { _lock_word &= ~2; } -void SimonState::timer_callback() { +void SimonEngine::timer_callback() { // uint32 start, end; if (_timer_5 != 0) { @@ -2975,11 +2975,11 @@ void SimonState::timer_callback() { } } -void SimonState::fcs_setTextColor(FillOrCopyStruct *fcs, uint value) { +void SimonEngine::fcs_setTextColor(FillOrCopyStruct *fcs, uint value) { fcs->text_color = value; } -void SimonState::o_vga_reset() { +void SimonEngine::o_vga_reset() { if (_game & GF_SIMON2) { _lock_word |= 0x8000; vc_27_reset(); @@ -2991,7 +2991,7 @@ void SimonState::o_vga_reset() { } } -bool SimonState::itemIsSiblingOf(uint16 a) { +bool SimonEngine::itemIsSiblingOf(uint16 a) { Item *item; CHECK_BOUNDS(a, _vc_item_array); @@ -3003,7 +3003,7 @@ bool SimonState::itemIsSiblingOf(uint16 a) { return getItem1Ptr()->parent == item->parent; } -bool SimonState::itemIsParentOf(uint16 a, uint16 b) { +bool SimonEngine::itemIsParentOf(uint16 a, uint16 b) { Item *item_a, *item_b; CHECK_BOUNDS(a, _vc_item_array); @@ -3018,7 +3018,7 @@ bool SimonState::itemIsParentOf(uint16 a, uint16 b) { return derefItem(item_a->parent) == item_b; } -bool SimonState::vc_maybe_skip_proc_1(uint16 a, int16 b) { +bool SimonEngine::vc_maybe_skip_proc_1(uint16 a, int16 b) { Item *item; CHECK_BOUNDS(a, _vc_item_array); @@ -3030,7 +3030,7 @@ bool SimonState::vc_maybe_skip_proc_1(uint16 a, int16 b) { } // OK -void SimonState::fcs_delete(uint a) { +void SimonEngine::fcs_delete(uint a) { if (_fcs_ptr_array_3[a] == NULL) return; fcs_unk1(a); @@ -3043,7 +3043,7 @@ void SimonState::fcs_delete(uint a) { } // OK -void SimonState::fcs_unk_2(uint a) { +void SimonEngine::fcs_unk_2(uint a) { a &= 7; if (_fcs_ptr_array_3[a] == NULL || _fcs_unk_1 == a) @@ -3057,7 +3057,7 @@ void SimonState::fcs_unk_2(uint a) { } // OK -FillOrCopyStruct *SimonState::fcs_alloc(uint x, uint y, uint w, uint h, uint flags, uint fill_color, +FillOrCopyStruct *SimonEngine::fcs_alloc(uint x, uint y, uint w, uint h, uint flags, uint fill_color, uint unk4) { FillOrCopyStruct *fcs; @@ -3080,13 +3080,13 @@ FillOrCopyStruct *SimonState::fcs_alloc(uint x, uint y, uint w, uint h, uint fla return fcs; } -Item *SimonState::derefItem(uint item) { +Item *SimonEngine::derefItem(uint item) { if (item >= _itemarray_size) error("derefItem: invalid item %d", item); return _itemarray_ptr[item]; } -uint SimonState::itemPtrToID(Item *id) { +uint SimonEngine::itemPtrToID(Item *id) { uint i; for (i = 0; i != _itemarray_size; i++) if (_itemarray_ptr[i] == id) @@ -3094,7 +3094,7 @@ uint SimonState::itemPtrToID(Item *id) { error("itemPtrToID: not found"); } -void SimonState::o_pathfind(int x, int y, uint var_1, uint var_2) { +void SimonEngine::o_pathfind(int x, int y, uint var_1, uint var_2) { uint16 *p; uint i, j; uint prev_i; @@ -3133,7 +3133,7 @@ void SimonState::o_pathfind(int x, int y, uint var_1, uint var_2) { } // ok -void SimonState::fcs_unk1(uint fcs_index) { +void SimonEngine::fcs_unk1(uint fcs_index) { FillOrCopyStruct *fcs; uint16 fcsunk1; uint16 i; @@ -3169,7 +3169,7 @@ void SimonState::fcs_unk1(uint fcs_index) { } // ok -void SimonState::fcs_unk_5(FillOrCopyStruct *fcs, uint fcs_index) { +void SimonEngine::fcs_unk_5(FillOrCopyStruct *fcs, uint fcs_index) { if (_game == GAME_SIMON1WIN) { o_kill_sprite_simon1(0x80); } else if (!(_game & GF_SIMON2)) { @@ -3178,19 +3178,19 @@ void SimonState::fcs_unk_5(FillOrCopyStruct *fcs, uint fcs_index) { } } -void SimonState::delete_hitarea_by_index(uint index) { +void SimonEngine::delete_hitarea_by_index(uint index) { CHECK_BOUNDS(index, _hit_areas); _hit_areas[index].flags = 0; } // ok -void SimonState::fcs_putchar(uint a) { +void SimonEngine::fcs_putchar(uint a) { if (_fcs_ptr_1 != _fcs_ptr_array_3[0]) video_putchar(_fcs_ptr_1, a); } // ok -void SimonState::video_fill_or_copy_from_3_to_2(FillOrCopyStruct *fcs) { +void SimonEngine::video_fill_or_copy_from_3_to_2(FillOrCopyStruct *fcs) { if (fcs->flags & 0x10) copy_img_from_3_to_2(fcs); else @@ -3203,7 +3203,7 @@ void SimonState::video_fill_or_copy_from_3_to_2(FillOrCopyStruct *fcs) { } // ok -void SimonState::copy_img_from_3_to_2(FillOrCopyStruct *fcs) { +void SimonEngine::copy_img_from_3_to_2(FillOrCopyStruct *fcs) { _lock_word |= 0x8000; if (!(_game & GF_SIMON2)) { @@ -3220,7 +3220,7 @@ void SimonState::copy_img_from_3_to_2(FillOrCopyStruct *fcs) { _lock_word &= ~0x8000; } -void SimonState::video_erase(FillOrCopyStruct *fcs) { +void SimonEngine::video_erase(FillOrCopyStruct *fcs) { byte *dst; uint h; @@ -3239,7 +3239,7 @@ void SimonState::video_erase(FillOrCopyStruct *fcs) { _lock_word &= ~0x8000; } -VgaSprite *SimonState::find_cur_sprite() { +VgaSprite *SimonEngine::find_cur_sprite() { VgaSprite *vsp = _vga_sprites; while (vsp->id) { if (_game & GF_SIMON2) { @@ -3254,7 +3254,7 @@ VgaSprite *SimonState::find_cur_sprite() { return vsp; } -bool SimonState::has_vgastruct_with_id(uint16 id, uint16 file) { +bool SimonEngine::has_vgastruct_with_id(uint16 id, uint16 file) { VgaSprite *vsp = _vga_sprites; while (vsp->id) { if (_game & GF_SIMON2) { @@ -3269,7 +3269,7 @@ bool SimonState::has_vgastruct_with_id(uint16 id, uint16 file) { return false; } -void SimonState::processSpecialKeys() { +void SimonEngine::processSpecialKeys() { switch (_key_pressed) { case 27: // escape _exit_cutscene = true; @@ -3535,7 +3535,7 @@ static const byte _simon2_cursors[10][256] = { 0xff,0xff,0xff,0xff,0xff,0xff,0xe5,0xe5,0xe5,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, }; -void SimonState::draw_mouse_pointer() { +void SimonEngine::draw_mouse_pointer() { if (_game & GF_SIMON2) _system->set_mouse_cursor(_simon2_cursors[_mouse_cursor], 16, 16, 7, 7); else @@ -3602,7 +3602,7 @@ void decompress_icon(byte *dst, byte *src, uint w, uint h_org, byte base, uint p } -void SimonState::draw_icon_c(FillOrCopyStruct *fcs, uint icon, uint x, uint y) { +void SimonEngine::draw_icon_c(FillOrCopyStruct *fcs, uint icon, uint x, uint y) { byte *dst; byte *src; @@ -3635,7 +3635,7 @@ void SimonState::draw_icon_c(FillOrCopyStruct *fcs, uint icon, uint x, uint y) { _lock_word &= ~0x8000; } -void SimonState::video_toggle_colors(HitArea * ha, byte a, byte b, byte c, byte d) { +void SimonEngine::video_toggle_colors(HitArea * ha, byte a, byte b, byte c, byte d) { byte *src, color; uint w, h, i; @@ -3672,13 +3672,13 @@ void SimonState::video_toggle_colors(HitArea * ha, byte a, byte b, byte c, byte _lock_word &= ~0x8000; } -void SimonState::video_copy_if_flag_0x8_c(FillOrCopyStruct *fcs) { +void SimonEngine::video_copy_if_flag_0x8_c(FillOrCopyStruct *fcs) { if (fcs->flags & 8) copy_img_from_3_to_2(fcs); fcs->mode = 0; } -void SimonState::start_vga_code(uint b, uint vga_res, uint vga_struct_id, uint c, uint d, uint f) { +void SimonEngine::start_vga_code(uint b, uint vga_res, uint vga_struct_id, uint c, uint d, uint f) { VgaSprite *vsp; VgaPointersEntry *vpe; byte *p, *pp; @@ -3739,7 +3739,7 @@ void SimonState::start_vga_code(uint b, uint vga_res, uint vga_struct_id, uint c _lock_word &= ~0x40; } -void SimonState::talk_with_speech(uint speech_id, uint num_1) { +void SimonEngine::talk_with_speech(uint speech_id, uint num_1) { if (!(_game & GF_SIMON2)) { if (speech_id == 9999) { if (!(_bit_array[0] & 0x4000) && !(_bit_array[1] & 0x1000)) { @@ -3785,7 +3785,7 @@ void SimonState::talk_with_speech(uint speech_id, uint num_1) { } } -void SimonState::talk_with_text(uint num_1, uint num_2, const char *string_ptr, uint threeval_a, int threeval_b, uint width) { +void SimonEngine::talk_with_text(uint num_1, uint num_2, const char *string_ptr, uint threeval_a, int threeval_b, uint width) { char print_str_buf[0x140]; char *char_buf; const char *string_ptr_2, *string_ptr_3; @@ -4047,7 +4047,7 @@ void SimonState::talk_with_text(uint num_1, uint num_2, const char *string_ptr, } } -void SimonState::read_vga_from_datfile_1(uint vga_id) { +void SimonEngine::read_vga_from_datfile_1(uint vga_id) { if (_game & GF_AMIGAS || _game == GAME_SIMON1DEMO || _game == GAME_SIMON1DOS) { File in; char buf[50]; @@ -4084,7 +4084,7 @@ void SimonState::read_vga_from_datfile_1(uint vga_id) { } } -byte *SimonState::read_vga_from_datfile_2(uint id) { +byte *SimonEngine::read_vga_from_datfile_2(uint id) { if (_game & GF_AMIGAS || _game == GAME_SIMON1DEMO || _game == GAME_SIMON1DOS) { File in; char buf[50]; @@ -4126,13 +4126,13 @@ byte *SimonState::read_vga_from_datfile_2(uint id) { } } -void SimonState::resfile_read(void *dst, uint32 offs, uint32 size) { +void SimonEngine::resfile_read(void *dst, uint32 offs, uint32 size) { _game_file->seek(offs, SEEK_SET); if (_game_file->read(dst, size) != size) error("resfile_read(%d,%d) read failed", offs, size); } -void SimonState::openGameFile() { +void SimonEngine::openGameFile() { if (!(_game & GF_AMIGAS) && _game != GAME_SIMON1DEMO && _game != GAME_SIMON1DOS) { _game_file = new File(); _game_file->open(gss->gme_filename, _gameDataPath); @@ -4160,17 +4160,17 @@ void SimonState::openGameFile() { startUp(1); } -void SimonState::startUp(uint a) { +void SimonEngine::startUp(uint a) { if (a == 1) startUp_helper(); } -void SimonState::startUp_helper() { +void SimonEngine::startUp_helper() { runSubroutine101(); startUp_helper_2(); } -void SimonState::runSubroutine101() { +void SimonEngine::runSubroutine101() { Subroutine *sub; sub = getSubroutineByID(101); @@ -4180,7 +4180,7 @@ void SimonState::runSubroutine101() { startUp_helper_2(); } -void SimonState::dx_copy_rgn_from_3_to_2(uint b, uint r, uint y, uint x) { +void SimonEngine::dx_copy_rgn_from_3_to_2(uint b, uint r, uint y, uint x) { byte *dst, *src; uint i; @@ -4201,7 +4201,7 @@ void SimonState::dx_copy_rgn_from_3_to_2(uint b, uint r, uint y, uint x) { dx_unlock_2(); } -void SimonState::dx_clear_surfaces(uint num_lines) { +void SimonEngine::dx_clear_surfaces(uint num_lines) { memset(_sdl_buf_attached, 0, num_lines * 320); _system->copy_rect(_sdl_buf_attached, 320, 0, 0, 320, 200); @@ -4212,11 +4212,11 @@ void SimonState::dx_clear_surfaces(uint num_lines) { } } -void SimonState::dx_clear_attached_from_top(uint lines) { +void SimonEngine::dx_clear_attached_from_top(uint lines) { memset(_sdl_buf_attached, 0, lines * 320); } -void SimonState::dx_copy_from_attached_to_2(uint x, uint y, uint w, uint h) { +void SimonEngine::dx_copy_from_attached_to_2(uint x, uint y, uint w, uint h) { uint offs = x + y * 320; byte *s = _sdl_buf_attached + offs; byte *d = _sdl_buf + offs; @@ -4228,7 +4228,7 @@ void SimonState::dx_copy_from_attached_to_2(uint x, uint y, uint w, uint h) { } while (--h); } -void SimonState::dx_copy_from_2_to_attached(uint x, uint y, uint w, uint h) { +void SimonEngine::dx_copy_from_2_to_attached(uint x, uint y, uint w, uint h) { uint offs = x + y * 320; byte *s = _sdl_buf + offs; byte *d = _sdl_buf_attached + offs; @@ -4240,11 +4240,11 @@ void SimonState::dx_copy_from_2_to_attached(uint x, uint y, uint w, uint h) { } while (--h); } -void SimonState::dx_copy_from_attached_to_3(uint lines) { +void SimonEngine::dx_copy_from_attached_to_3(uint lines) { memcpy(_sdl_buf_3, _sdl_buf_attached, lines * 320); } -void SimonState::dx_update_screen_and_palette() { +void SimonEngine::dx_update_screen_and_palette() { _num_screen_updates++; if (_palette_color_count == 0 && _video_var_9 == 1) { @@ -4273,7 +4273,7 @@ void SimonState::dx_update_screen_and_palette() { } } -void SimonState::realizePalette() { +void SimonEngine::realizePalette() { _video_var_9 = false; memcpy(_palette_backup, _palette, 256 * 4); @@ -4286,7 +4286,7 @@ void SimonState::realizePalette() { _palette_color_count = 0; } -void SimonState::fadeUpPalette() { +void SimonEngine::fadeUpPalette() { bool done; _palette_color_count = (_palette_color_count & 0x7fff) / 4; @@ -4345,7 +4345,7 @@ void SimonState::fadeUpPalette() { } while (!done); } -void SimonState::go() { +void SimonEngine::go() { if (!_dump_file) _dump_file = stdout; @@ -4415,7 +4415,7 @@ void SimonState::go() { } } -void SimonState::shutdown() { +void SimonEngine::shutdown() { if (_game_file) { delete _game_file; _game_file = NULL; @@ -4423,7 +4423,7 @@ void SimonState::shutdown() { _system->quit(); } -void SimonState::delay(uint amount) { +void SimonEngine::delay(uint amount) { OSystem::Event event; uint32 start = _system->get_msecs(); @@ -4505,7 +4505,7 @@ void SimonState::delay(uint amount) { } while (cur < start + amount); } -bool SimonState::save_game(uint slot, char *caption) { +bool SimonEngine::save_game(uint slot, char *caption) { File f; uint item_index, num_item, i, j; TimeEvent *te; @@ -4594,7 +4594,7 @@ bool SimonState::save_game(uint slot, char *caption) { return true; } -char *SimonState::gen_savename(int slot) { +char *SimonEngine::gen_savename(int slot) { static char buf[256]; if (_game & GF_SIMON2) { @@ -4605,7 +4605,7 @@ char *SimonState::gen_savename(int slot) { return buf; } -bool SimonState::load_game(uint slot) { +bool SimonEngine::load_game(uint slot) { char ident[18]; File f; uint num, item_index, i, j; @@ -4718,7 +4718,7 @@ bool SimonState::load_game(uint slot) { return true; } -void SimonState::loadMusic (uint music) { +void SimonEngine::loadMusic (uint music) { if (_game & GF_SIMON2) { // Simon 2 music midi.stop(); _game_file->seek(_game_offsets_ptr[gss->MUSIC_INDEX_BASE + music - 1], SEEK_SET); @@ -4777,26 +4777,26 @@ void SimonState::loadMusic (uint music) { } } -byte *SimonState::dx_lock_2() { +byte *SimonEngine::dx_lock_2() { _dx_surface_pitch = 320; return _sdl_buf; } -void SimonState::dx_unlock_2() { +void SimonEngine::dx_unlock_2() { } -byte *SimonState::dx_lock_attached() { +byte *SimonEngine::dx_lock_attached() { _dx_surface_pitch = 320; return _dx_use_3_or_4_for_lock ? _sdl_buf_3 : _sdl_buf_attached; } -void SimonState::dx_unlock_attached() { +void SimonEngine::dx_unlock_attached() { } -void SimonState::set_volume(byte volume) { +void SimonEngine::set_volume(byte volume) { _mixer->setVolume(volume); } -byte SimonState::getByte() { +byte SimonEngine::getByte() { return *_code_ptr++; } diff --git a/simon/simon.h b/simon/simon.h index 1323ec63b7..6e492299b2 100644 --- a/simon/simon.h +++ b/simon/simon.h @@ -101,7 +101,7 @@ struct VgaTimerEntry { struct GameSpecificSettings; -class SimonState : public Engine { +class SimonEngine : public Engine { void errorString(const char *buf_input, char *buf_output); public: File *_mus_file; @@ -356,8 +356,8 @@ public: RandomSource _rnd; - SimonState(GameDetector *detector, OSystem *syst); - virtual ~SimonState(); + SimonEngine(GameDetector *detector, OSystem *syst); + virtual ~SimonEngine(); int allocGamePcVars(File *in); Item *allocItem1(); diff --git a/simon/verb.cpp b/simon/verb.cpp index 3413f4d99b..dcc89b9885 100644 --- a/simon/verb.cpp +++ b/simon/verb.cpp @@ -77,7 +77,7 @@ static const char *const english_verb_prep_names[] = { "", "", "", "to whom ?" }; -void SimonState::defocusHitarea() { +void SimonEngine::defocusHitarea() { HitArea *last; HitArea *ha; @@ -102,7 +102,7 @@ void SimonState::defocusHitarea() { focusVerb(last->id); } -void SimonState::focusVerb(uint hitarea_id) { +void SimonEngine::focusVerb(uint hitarea_id) { uint x; const char *txt; const char * const *verb_prep_names; @@ -128,7 +128,7 @@ void SimonState::focusVerb(uint hitarea_id) { showActionString(x, (const byte *)txt); } -void SimonState::showActionString(uint x, const byte *string) { +void SimonEngine::showActionString(uint x, const byte *string) { FillOrCopyStruct *fcs; fcs = _fcs_ptr_array_3[1]; @@ -142,7 +142,7 @@ void SimonState::showActionString(uint x, const byte *string) { video_putchar(fcs, *string); } -void SimonState::hitareaChangedHelper() { +void SimonEngine::hitareaChangedHelper() { FillOrCopyStruct *fcs; if (_game & GF_SIMON2) { @@ -158,7 +158,7 @@ void SimonState::hitareaChangedHelper() { _hitarea_ptr_7 = NULL; } -HitArea *SimonState::findHitAreaByID(uint hitarea_id) { +HitArea *SimonEngine::findHitAreaByID(uint hitarea_id) { HitArea *ha = _hit_areas; uint count = ARRAYSIZE(_hit_areas); @@ -169,7 +169,7 @@ HitArea *SimonState::findHitAreaByID(uint hitarea_id) { return NULL; } -HitArea *SimonState::findEmptyHitArea() { +HitArea *SimonEngine::findEmptyHitArea() { HitArea *ha = _hit_areas; uint count = ARRAYSIZE(_hit_areas); @@ -180,13 +180,13 @@ HitArea *SimonState::findEmptyHitArea() { return NULL; } -void SimonState::clear_hitarea_bit_0x40(uint hitarea) { +void SimonEngine::clear_hitarea_bit_0x40(uint hitarea) { HitArea *ha = findHitAreaByID(hitarea); if (ha != NULL) ha->flags &= ~0x40; } -void SimonState::set_hitarea_bit_0x40(uint hitarea) { +void SimonEngine::set_hitarea_bit_0x40(uint hitarea) { HitArea *ha = findHitAreaByID(hitarea); if (ha != NULL) { ha->flags |= 0x40; @@ -196,7 +196,7 @@ void SimonState::set_hitarea_bit_0x40(uint hitarea) { } } -void SimonState::set_hitarea_x_y(uint hitarea, int x, int y) { +void SimonEngine::set_hitarea_x_y(uint hitarea, int x, int y) { HitArea *ha = findHitAreaByID(hitarea); if (ha != NULL) { ha->x = x; @@ -204,7 +204,7 @@ void SimonState::set_hitarea_x_y(uint hitarea, int x, int y) { } } -void SimonState::delete_hitarea(uint hitarea) { +void SimonEngine::delete_hitarea(uint hitarea) { HitArea *ha = findHitAreaByID(hitarea); if (ha != NULL) { ha->flags = 0; @@ -214,14 +214,14 @@ void SimonState::delete_hitarea(uint hitarea) { } } -bool SimonState::is_hitarea_0x40_clear(uint hitarea) { +bool SimonEngine::is_hitarea_0x40_clear(uint hitarea) { HitArea *ha = findHitAreaByID(hitarea); if (ha == NULL) return false; return (ha->flags & 0x40) == 0; } -void SimonState::addNewHitArea(int id, int x, int y, int width, int height, int flags, int unk3, Item *item_ptr) { +void SimonEngine::addNewHitArea(int id, int x, int y, int width, int height, int flags, int unk3, Item *item_ptr) { HitArea *ha; delete_hitarea(id); @@ -238,7 +238,7 @@ void SimonState::addNewHitArea(int id, int x, int y, int width, int height, int _need_hitarea_recalc++; } -void SimonState::hitarea_proc_1() { +void SimonEngine::hitarea_proc_1() { uint id; HitArea *ha; @@ -265,7 +265,7 @@ void SimonState::hitarea_proc_1() { } } -void SimonState::handle_verb_hitarea(HitArea *ha) { +void SimonEngine::handle_verb_hitarea(HitArea *ha) { HitArea *tmp = _hitarea_ptr_5; if (ha == tmp) @@ -293,7 +293,7 @@ void SimonState::handle_verb_hitarea(HitArea *ha) { _hitarea_ptr_5 = ha; } -void SimonState::hitarea_leave(HitArea *ha) { +void SimonEngine::hitarea_leave(HitArea *ha) { if (!(_game & GF_SIMON2)) { video_toggle_colors(ha, 0xdf, 0xd5, 0xda, 5); } else { @@ -301,13 +301,13 @@ void SimonState::hitarea_leave(HitArea *ha) { } } -void SimonState::leaveHitAreaById(uint hitarea_id) { +void SimonEngine::leaveHitAreaById(uint hitarea_id) { HitArea *ha = findHitAreaByID(hitarea_id); if (ha) hitarea_leave(ha); } -void SimonState::handle_uparrow_hitarea(FillOrCopyStruct *fcs) { +void SimonEngine::handle_uparrow_hitarea(FillOrCopyStruct *fcs) { uint index; index = get_fcs_ptr_3_index(fcs); @@ -320,7 +320,7 @@ void SimonState::handle_uparrow_hitarea(FillOrCopyStruct *fcs) { unlock(); } -void SimonState::handle_downarrow_hitarea(FillOrCopyStruct *fcs) { +void SimonEngine::handle_downarrow_hitarea(FillOrCopyStruct *fcs) { uint index; index = get_fcs_ptr_3_index(fcs); @@ -330,7 +330,7 @@ void SimonState::handle_downarrow_hitarea(FillOrCopyStruct *fcs) { unlock(); } -void SimonState::setup_hitarea_from_pos(uint x, uint y, uint mode) { +void SimonEngine::setup_hitarea_from_pos(uint x, uint y, uint mode) { HitArea *best_ha; HitArea *ha = _hit_areas; uint count = ARRAYSIZE(_hit_areas); @@ -390,7 +390,7 @@ void SimonState::setup_hitarea_from_pos(uint x, uint y, uint mode) { return; } -void SimonState::new_current_hitarea(HitArea *ha) { +void SimonEngine::new_current_hitarea(HitArea *ha) { bool result; hitareaChangedHelper(); @@ -404,7 +404,7 @@ void SimonState::new_current_hitarea(HitArea *ha) { _last_hitarea_2_ptr = ha; } -bool SimonState::hitarea_proc_2(uint a) { +bool SimonEngine::hitarea_proc_2(uint a) { uint x; const byte *string_ptr; @@ -433,7 +433,7 @@ bool SimonState::hitarea_proc_2(uint a) { return true; } -bool SimonState::hitarea_proc_3(Item *item) { +bool SimonEngine::hitarea_proc_3(Item *item) { Child2 *child2; uint x; const byte *string_ptr; diff --git a/simon/vga.cpp b/simon/vga.cpp index 3110d2105a..6a0769d61e 100644 --- a/simon/vga.cpp +++ b/simon/vga.cpp @@ -25,90 +25,90 @@ #include "simon/intern.h" #include "simon/vga.h" -typedef void (SimonState::*VgaOpcodeProc) (); +typedef void (SimonEngine::*VgaOpcodeProc) (); static uint16 vc_get_out_of_code = 0; // Opcode tables static const VgaOpcodeProc vga_opcode_table[] = { NULL, - &SimonState::vc_1_dummy_op, - &SimonState::vc_2_call, - &SimonState::vc_3_new_sprite, - &SimonState::vc_4_dummy_op, - &SimonState::vc_5_skip_if_neq, - &SimonState::vc_6_skip_ifn_sib_with_a, - &SimonState::vc_7_skip_if_sib_with_a, - &SimonState::vc_8_skip_if_parent_is, - &SimonState::vc_9_skip_if_unk3_is, - &SimonState::vc_10_draw, - &SimonState::vc_11_clear_pathfind_array, - &SimonState::vc_12_delay, - &SimonState::vc_13_set_sprite_offset_x, - &SimonState::vc_14_set_sprite_offset_y, - &SimonState::vc_15_wakeup_id, - &SimonState::vc_16_sleep_on_id, - &SimonState::vc_17_set_pathfind_item, - &SimonState::vc_18_jump_rel, - &SimonState::vc_19_chain_to_script, - &SimonState::vc_20_set_code_word, - &SimonState::vc_21_jump_if_code_word, - &SimonState::vc_22_set_sprite_palette, - &SimonState::vc_23_set_sprite_priority, - &SimonState::vc_24_set_sprite_xy, - &SimonState::vc_25_halt_sprite, - &SimonState::vc_26_set_window, - &SimonState::vc_27_reset, - &SimonState::vc_28_dummy_op, - &SimonState::vc_29_stop_all_sounds, - &SimonState::vc_30_set_base_delay, - &SimonState::vc_31_set_palette_mode, - &SimonState::vc_32_copy_var, - &SimonState::vc_33_force_unlock, - &SimonState::vc_34_force_lock, - &SimonState::vc_35, - &SimonState::vc_36_saveload_thing, - &SimonState::vc_37_set_sprite_offset_y, - &SimonState::vc_38_skip_if_var_zero, - &SimonState::vc_39_set_var, - &SimonState::vc_40_var_add, - &SimonState::vc_41_var_sub, - &SimonState::vc_42_delay_if_not_eq, - &SimonState::vc_43_skip_if_bit_clear, - &SimonState::vc_44_skip_if_bit_set, - &SimonState::vc_45_set_sprite_x, - &SimonState::vc_46_set_sprite_y, - &SimonState::vc_47_add_var_f, - &SimonState::vc_48, - &SimonState::vc_49_set_bit, - &SimonState::vc_50_clear_bit, - &SimonState::vc_51_clear_hitarea_bit_0x40, - &SimonState::vc_52_play_sound, - &SimonState::vc_53_no_op, - &SimonState::vc_54_no_op, - &SimonState::vc_55_offset_hit_area, - &SimonState::vc_56, - &SimonState::vc_57_no_op, - &SimonState::vc_58, - &SimonState::vc_59, - &SimonState::vc_60_kill_sprite, - &SimonState::vc_61_sprite_change, - &SimonState::vc_62_palette_thing, - &SimonState::vc_63_palette_thing_2, - &SimonState::vc_64_skip_if_no_speech, - &SimonState::vc_65_palette_thing_3, - &SimonState::vc_66_skip_if_nz, - &SimonState::vc_67_skip_if_ge, - &SimonState::vc_68_skip_if_le, - &SimonState::vc_69_play_track, - &SimonState::vc_70_queue_music, - &SimonState::vc_71_check_music_queue, - &SimonState::vc_72_play_track_2, - &SimonState::vc_73_set_op189_flag, - &SimonState::vc_74_clear_op189_flag, + &SimonEngine::vc_1_dummy_op, + &SimonEngine::vc_2_call, + &SimonEngine::vc_3_new_sprite, + &SimonEngine::vc_4_dummy_op, + &SimonEngine::vc_5_skip_if_neq, + &SimonEngine::vc_6_skip_ifn_sib_with_a, + &SimonEngine::vc_7_skip_if_sib_with_a, + &SimonEngine::vc_8_skip_if_parent_is, + &SimonEngine::vc_9_skip_if_unk3_is, + &SimonEngine::vc_10_draw, + &SimonEngine::vc_11_clear_pathfind_array, + &SimonEngine::vc_12_delay, + &SimonEngine::vc_13_set_sprite_offset_x, + &SimonEngine::vc_14_set_sprite_offset_y, + &SimonEngine::vc_15_wakeup_id, + &SimonEngine::vc_16_sleep_on_id, + &SimonEngine::vc_17_set_pathfind_item, + &SimonEngine::vc_18_jump_rel, + &SimonEngine::vc_19_chain_to_script, + &SimonEngine::vc_20_set_code_word, + &SimonEngine::vc_21_jump_if_code_word, + &SimonEngine::vc_22_set_sprite_palette, + &SimonEngine::vc_23_set_sprite_priority, + &SimonEngine::vc_24_set_sprite_xy, + &SimonEngine::vc_25_halt_sprite, + &SimonEngine::vc_26_set_window, + &SimonEngine::vc_27_reset, + &SimonEngine::vc_28_dummy_op, + &SimonEngine::vc_29_stop_all_sounds, + &SimonEngine::vc_30_set_base_delay, + &SimonEngine::vc_31_set_palette_mode, + &SimonEngine::vc_32_copy_var, + &SimonEngine::vc_33_force_unlock, + &SimonEngine::vc_34_force_lock, + &SimonEngine::vc_35, + &SimonEngine::vc_36_saveload_thing, + &SimonEngine::vc_37_set_sprite_offset_y, + &SimonEngine::vc_38_skip_if_var_zero, + &SimonEngine::vc_39_set_var, + &SimonEngine::vc_40_var_add, + &SimonEngine::vc_41_var_sub, + &SimonEngine::vc_42_delay_if_not_eq, + &SimonEngine::vc_43_skip_if_bit_clear, + &SimonEngine::vc_44_skip_if_bit_set, + &SimonEngine::vc_45_set_sprite_x, + &SimonEngine::vc_46_set_sprite_y, + &SimonEngine::vc_47_add_var_f, + &SimonEngine::vc_48, + &SimonEngine::vc_49_set_bit, + &SimonEngine::vc_50_clear_bit, + &SimonEngine::vc_51_clear_hitarea_bit_0x40, + &SimonEngine::vc_52_play_sound, + &SimonEngine::vc_53_no_op, + &SimonEngine::vc_54_no_op, + &SimonEngine::vc_55_offset_hit_area, + &SimonEngine::vc_56, + &SimonEngine::vc_57_no_op, + &SimonEngine::vc_58, + &SimonEngine::vc_59, + &SimonEngine::vc_60_kill_sprite, + &SimonEngine::vc_61_sprite_change, + &SimonEngine::vc_62_palette_thing, + &SimonEngine::vc_63_palette_thing_2, + &SimonEngine::vc_64_skip_if_no_speech, + &SimonEngine::vc_65_palette_thing_3, + &SimonEngine::vc_66_skip_if_nz, + &SimonEngine::vc_67_skip_if_ge, + &SimonEngine::vc_68_skip_if_le, + &SimonEngine::vc_69_play_track, + &SimonEngine::vc_70_queue_music, + &SimonEngine::vc_71_check_music_queue, + &SimonEngine::vc_72_play_track_2, + &SimonEngine::vc_73_set_op189_flag, + &SimonEngine::vc_74_clear_op189_flag, }; // Script parser -void SimonState::run_vga_script() { +void SimonEngine::run_vga_script() { for (;;) { uint opcode; @@ -136,24 +136,24 @@ void SimonState::run_vga_script() { } } -int SimonState::vc_read_var_or_word() { +int SimonEngine::vc_read_var_or_word() { int16 var = vc_read_next_word(); if (var < 0) var = vc_read_var(-var); return var; } -uint SimonState::vc_read_next_word() { +uint SimonEngine::vc_read_next_word() { uint a = READ_BE_UINT16_UNALIGNED(_vc_ptr); _vc_ptr += 2; return a; } -uint SimonState::vc_read_next_byte() { +uint SimonEngine::vc_read_next_byte() { return *_vc_ptr++; } -void SimonState::vc_skip_next_instruction() { +void SimonEngine::vc_skip_next_instruction() { static const byte opcode_param_len_simon1[] = { 0, 6, 2, 10, 6, 4, 2, 2, 4, 4, 10, 0, 2, 2, 2, 2, @@ -190,7 +190,7 @@ void SimonState::vc_skip_next_instruction() { fprintf(_dump_file, "; skipped\n"); } -void SimonState::o_read_vgares_23() { +void SimonEngine::o_read_vgares_23() { // Simon1 Only if (_vga_res_328_loaded == true) { _vga_res_328_loaded = false; @@ -200,7 +200,7 @@ void SimonState::o_read_vgares_23() { } } -void SimonState::o_read_vgares_328() { +void SimonEngine::o_read_vgares_328() { // Simon1 Only if (_vga_res_328_loaded == false) { _vga_res_328_loaded = true; @@ -211,12 +211,12 @@ void SimonState::o_read_vgares_328() { } // VGA Script commands -void SimonState::vc_1_dummy_op() { +void SimonEngine::vc_1_dummy_op() { /* dummy opcode */ _vc_ptr += 6; } -void SimonState::vc_2_call() { +void SimonEngine::vc_2_call() { VgaPointersEntry *vpe; uint num; uint res; @@ -264,7 +264,7 @@ void SimonState::vc_2_call() { _vc_ptr = vc_ptr_org; } -void SimonState::vc_3_new_sprite() { +void SimonEngine::vc_3_new_sprite() { uint16 a, b, c, d, e, f; uint16 res; VgaSprite *vsp; @@ -348,36 +348,36 @@ void SimonState::vc_3_new_sprite() { add_vga_timer(gss->VGA_DELAY_BASE, _cur_vga_file_1 + READ_BE_UINT16_UNALIGNED(&((VgaFile1Struct0x6 *) p)->script_offs), b, res); } -void SimonState::vc_4_dummy_op() { +void SimonEngine::vc_4_dummy_op() { /* dummy opcode */ _vc_ptr += 6; } -void SimonState::vc_5_skip_if_neq() { +void SimonEngine::vc_5_skip_if_neq() { uint var = vc_read_next_word(); uint value = vc_read_next_word(); if (vc_read_var(var) != value) vc_skip_next_instruction(); } -void SimonState::vc_6_skip_ifn_sib_with_a() { +void SimonEngine::vc_6_skip_ifn_sib_with_a() { if (!itemIsSiblingOf(vc_read_next_word())) vc_skip_next_instruction(); } -void SimonState::vc_7_skip_if_sib_with_a() { +void SimonEngine::vc_7_skip_if_sib_with_a() { if (itemIsSiblingOf(vc_read_next_word())) vc_skip_next_instruction(); } -void SimonState::vc_8_skip_if_parent_is() { +void SimonEngine::vc_8_skip_if_parent_is() { uint a = vc_read_next_word(); uint b = vc_read_next_word(); if (!itemIsParentOf(a, b)) vc_skip_next_instruction(); } -void SimonState::vc_9_skip_if_unk3_is() { +void SimonEngine::vc_9_skip_if_unk3_is() { uint a = vc_read_next_word(); uint b = vc_read_next_word(); if (!vc_maybe_skip_proc_1(a, b)) @@ -435,7 +435,7 @@ void vc_10_skip_cols(VC10_state *vs) { } } -byte *SimonState::vc_10_depack_swap(byte *src, uint w, uint h) { +byte *SimonEngine::vc_10_depack_swap(byte *src, uint w, uint h) { w <<= 3; { @@ -524,7 +524,7 @@ static uint16 _video_windows[128] = { }; /* simon2 specific */ -void SimonState::decodeStripA(byte *dst, byte *src, int height) { +void SimonEngine::decodeStripA(byte *dst, byte *src, int height) { const uint pitch = _dx_surface_pitch; int8 reps = (int8)0x80; byte color; @@ -568,7 +568,7 @@ void SimonState::decodeStripA(byte *dst, byte *src, int height) { } } -void SimonState::vc_10_draw() { +void SimonEngine::vc_10_draw() { byte *p2; uint width, height; byte flags; @@ -965,11 +965,11 @@ void SimonState::vc_10_draw() { } -void SimonState::vc_11_clear_pathfind_array() { +void SimonEngine::vc_11_clear_pathfind_array() { memset(&_pathfind_array, 0, sizeof(_pathfind_array)); } -void SimonState::vc_12_delay() { +void SimonEngine::vc_12_delay() { uint num; if (!(_game & GF_SIMON2)) { @@ -982,19 +982,19 @@ void SimonState::vc_12_delay() { _vc_ptr = (byte *)&vc_get_out_of_code; } -void SimonState::vc_13_set_sprite_offset_x() { +void SimonEngine::vc_13_set_sprite_offset_x() { VgaSprite *vsp = find_cur_sprite(); vsp->x += (int16)vc_read_next_word(); _vga_sprite_changed++; } -void SimonState::vc_14_set_sprite_offset_y() { +void SimonEngine::vc_14_set_sprite_offset_y() { VgaSprite *vsp = find_cur_sprite(); vsp->y += (int16)vc_read_next_word(); _vga_sprite_changed++; } -void SimonState::vc_15_wakeup_id() { +void SimonEngine::vc_15_wakeup_id() { VgaSleepStruct *vfs = _vga_sleep_structs, *vfs_tmp; uint16 id = vc_read_next_word(); while (vfs->ident != 0) { @@ -1015,7 +1015,7 @@ void SimonState::vc_15_wakeup_id() { _vga_wait_for = 0; } -void SimonState::vc_16_sleep_on_id() { +void SimonEngine::vc_16_sleep_on_id() { VgaSleepStruct *vfs = _vga_sleep_structs; while (vfs->ident) vfs++; @@ -1028,7 +1028,7 @@ void SimonState::vc_16_sleep_on_id() { _vc_ptr = (byte *)&vc_get_out_of_code; } -void SimonState::vc_17_set_pathfind_item() { +void SimonEngine::vc_17_set_pathfind_item() { uint a = vc_read_next_word(); _pathfind_array[a - 1] = (uint16 *)_vc_ptr; while (READ_BE_UINT16_UNALIGNED(_vc_ptr) != 999) @@ -1036,13 +1036,13 @@ void SimonState::vc_17_set_pathfind_item() { _vc_ptr += 2; } -void SimonState::vc_18_jump_rel() { +void SimonEngine::vc_18_jump_rel() { int16 offs = vc_read_next_word(); _vc_ptr += offs; } /* chain to script? */ -void SimonState::vc_19_chain_to_script() { +void SimonEngine::vc_19_chain_to_script() { /* XXX: not implemented */ error("vc_19_chain_to_script: not implemented"); } @@ -1061,14 +1061,14 @@ static uint16 read_16_le(void *p) { } /* FIXME: unaligned access */ -void SimonState::vc_20_set_code_word() { +void SimonEngine::vc_20_set_code_word() { uint16 a = vc_read_next_word(); write_16_le(_vc_ptr, a); _vc_ptr += 2; } /* FIXME: unaligned access */ -void SimonState::vc_21_jump_if_code_word() { +void SimonEngine::vc_21_jump_if_code_word() { if (!(_game & GF_SIMON2)) { int16 a = vc_read_next_word(); byte *tmp = _vc_ptr + a; @@ -1090,7 +1090,7 @@ void SimonState::vc_21_jump_if_code_word() { } } -void SimonState::vc_22_set_sprite_palette() { +void SimonEngine::vc_22_set_sprite_palette() { uint a = vc_read_next_word(); uint b = vc_read_next_word(); uint num = a == 0 ? 0x20 : 0x10; @@ -1114,7 +1114,7 @@ void SimonState::vc_22_set_sprite_palette() { _vga_sprite_changed++; } -void SimonState::vc_23_set_sprite_priority() { +void SimonEngine::vc_23_set_sprite_priority() { VgaSprite *vsp = find_cur_sprite(), *vus2; uint16 pri = vc_read_next_word(); VgaSprite bak; @@ -1153,7 +1153,7 @@ void SimonState::vc_23_set_sprite_priority() { _vga_sprite_changed++; } -void SimonState::vc_24_set_sprite_xy() { +void SimonEngine::vc_24_set_sprite_xy() { VgaSprite *vsp = find_cur_sprite(); vsp->image = vc_read_var_or_word(); @@ -1173,7 +1173,7 @@ void SimonState::vc_24_set_sprite_xy() { _vga_sprite_changed++; } -void SimonState::vc_25_halt_sprite() { +void SimonEngine::vc_25_halt_sprite() { VgaSprite *vsp = find_cur_sprite(); while (vsp->id != 0) { memcpy(vsp, vsp + 1, sizeof(VgaSprite)); @@ -1183,7 +1183,7 @@ void SimonState::vc_25_halt_sprite() { _vga_sprite_changed++; } -void SimonState::vc_26_set_window() { +void SimonEngine::vc_26_set_window() { uint16 *as = &_video_windows[vc_read_next_word() * 4]; as[0] = vc_read_next_word(); as[1] = vc_read_next_word(); @@ -1191,7 +1191,7 @@ void SimonState::vc_26_set_window() { as[3] = vc_read_next_word(); } -void SimonState::vc_27_reset_simon1() { +void SimonEngine::vc_27_reset_simon1() { VgaSprite bak, *vsp; VgaSleepStruct *vfs; VgaTimerEntry *vte, *vte2; @@ -1237,7 +1237,7 @@ void SimonState::vc_27_reset_simon1() { _lock_word &= ~8; } -void SimonState::vc_27_reset_simon2() { +void SimonEngine::vc_27_reset_simon2() { _lock_word |= 8; { @@ -1272,59 +1272,59 @@ void SimonState::vc_27_reset_simon2() { _lock_word &= ~8; } -void SimonState::vc_27_reset() { +void SimonEngine::vc_27_reset() { if (!(_game & GF_SIMON2)) vc_27_reset_simon1(); else vc_27_reset_simon2(); } -void SimonState::vc_28_dummy_op() { +void SimonEngine::vc_28_dummy_op() { /* dummy opcode */ _vc_ptr += 8; error("vc_28 - Please report error message and where in game it occured"); } -void SimonState::vc_29_stop_all_sounds() { +void SimonEngine::vc_29_stop_all_sounds() { _sound->stopAll(); } -void SimonState::vc_30_set_base_delay() { +void SimonEngine::vc_30_set_base_delay() { _vga_base_delay = vc_read_next_word(); } -void SimonState::vc_31_set_palette_mode() { +void SimonEngine::vc_31_set_palette_mode() { _video_palette_mode = vc_read_next_word(); } -uint SimonState::vc_read_var(uint var) { +uint SimonEngine::vc_read_var(uint var) { assert(var < 255); return (uint16)_variableArray[var]; } -void SimonState::vc_write_var(uint var, int16 value) { +void SimonEngine::vc_write_var(uint var, int16 value) { _variableArray[var] = value; } -void SimonState::vc_32_copy_var() { +void SimonEngine::vc_32_copy_var() { uint16 a = vc_read_var(vc_read_next_word()); vc_write_var(vc_read_next_word(), a); } -void SimonState::vc_33_force_unlock() { +void SimonEngine::vc_33_force_unlock() { if (_lock_counter != 0) { _lock_counter = 1; unlock(); } } -void SimonState::vc_34_force_lock() { +void SimonEngine::vc_34_force_lock() { lock(); _lock_counter = 200; _left_button_down = 0; } -void SimonState::vc_35() { +void SimonEngine::vc_35() { /* unknown function is simon1dos/simon2dos */ /* dummy op in simon1win/simon2win */ /* not used? */ @@ -1333,7 +1333,7 @@ void SimonState::vc_35() { error("vc_35 - Please report error message and where in game it occured"); } -void SimonState::vc_36_saveload_thing() { +void SimonEngine::vc_36_saveload_thing() { _video_var_8 = false; uint vga_res = vc_read_next_word(); uint mode = vc_read_next_word(); @@ -1349,25 +1349,25 @@ void SimonState::vc_36_saveload_thing() { } } -void SimonState::vc_37_set_sprite_offset_y() { +void SimonEngine::vc_37_set_sprite_offset_y() { VgaSprite *vsp = find_cur_sprite(); vsp->y += vc_read_var(vc_read_next_word()); _vga_sprite_changed++; } -void SimonState::vc_38_skip_if_var_zero() { +void SimonEngine::vc_38_skip_if_var_zero() { uint var = vc_read_next_word(); if (vc_read_var(var) == 0) vc_skip_next_instruction(); } -void SimonState::vc_39_set_var() { +void SimonEngine::vc_39_set_var() { uint var = vc_read_next_word(); int16 value = vc_read_next_word(); vc_write_var(var, value); } -void SimonState::vc_40_var_add() { +void SimonEngine::vc_40_var_add() { uint var = vc_read_next_word(); int16 value = vc_read_var(var) + vc_read_next_word(); @@ -1396,7 +1396,7 @@ no_scroll:; vc_write_var(var, value); } -void SimonState::vc_41_var_sub() { +void SimonEngine::vc_41_var_sub() { uint var = vc_read_next_word(); int16 value = vc_read_var(var) - vc_read_next_word(); @@ -1425,7 +1425,7 @@ no_scroll:; vc_write_var(var, value); } -void SimonState::vc_42_delay_if_not_eq() { +void SimonEngine::vc_42_delay_if_not_eq() { uint val = vc_read_var(vc_read_next_word()); if (val == vc_read_next_word()) { @@ -1434,36 +1434,36 @@ void SimonState::vc_42_delay_if_not_eq() { } } -void SimonState::vc_43_skip_if_bit_clear() { +void SimonEngine::vc_43_skip_if_bit_clear() { if (!vc_get_bit(vc_read_next_word())) { vc_skip_next_instruction(); } } -void SimonState::vc_44_skip_if_bit_set() { +void SimonEngine::vc_44_skip_if_bit_set() { if (vc_get_bit(vc_read_next_word())) { vc_skip_next_instruction(); } } -void SimonState::vc_45_set_sprite_x() { +void SimonEngine::vc_45_set_sprite_x() { VgaSprite *vsp = find_cur_sprite(); vsp->x = vc_read_var(vc_read_next_word()); _vga_sprite_changed++; } -void SimonState::vc_46_set_sprite_y() { +void SimonEngine::vc_46_set_sprite_y() { VgaSprite *vsp = find_cur_sprite(); vsp->y = vc_read_var(vc_read_next_word()); _vga_sprite_changed++; } -void SimonState::vc_47_add_var_f() { +void SimonEngine::vc_47_add_var_f() { uint var = vc_read_next_word(); vc_write_var(var, vc_read_var(var) + vc_read_var(vc_read_next_word())); } -void SimonState::vc_48() { +void SimonEngine::vc_48() { uint a = (uint16)_variableArray[12]; uint b = (uint16)_variableArray[13]; int c = _variableArray[14]; @@ -1494,29 +1494,29 @@ void SimonState::vc_48() { } while (--c); } -void SimonState::vc_set_bit_to(uint bit, bool value) { +void SimonEngine::vc_set_bit_to(uint bit, bool value) { uint16 *bits = &_bit_array[bit >> 4]; *bits = (*bits & ~(1 << (bit & 15))) | (value << (bit & 15)); } -bool SimonState::vc_get_bit(uint bit) { +bool SimonEngine::vc_get_bit(uint bit) { uint16 *bits = &_bit_array[bit >> 4]; return (*bits & (1 << (bit & 15))) != 0; } -void SimonState::vc_49_set_bit() { +void SimonEngine::vc_49_set_bit() { vc_set_bit_to(vc_read_next_word(), true); } -void SimonState::vc_50_clear_bit() { +void SimonEngine::vc_50_clear_bit() { vc_set_bit_to(vc_read_next_word(), false); } -void SimonState::vc_51_clear_hitarea_bit_0x40() { +void SimonEngine::vc_51_clear_hitarea_bit_0x40() { clear_hitarea_bit_0x40(vc_read_next_word()); } -void SimonState::vc_52_play_sound() { +void SimonEngine::vc_52_play_sound() { uint16 a = vc_read_next_word(); if (_game == GAME_SIMON1DOS) { @@ -1533,19 +1533,19 @@ void SimonState::vc_52_play_sound() { } } -void SimonState::vc_53_no_op() { +void SimonEngine::vc_53_no_op() { /* dummy op in simon1dos/talkie */ /* no op in simon1win */ error("vc_53 - Please report error message and where in game it occured"); } -void SimonState::vc_54_no_op() { +void SimonEngine::vc_54_no_op() { /* dummy op in simon1dos/talkie */ /* no op in simon1win */ error("vc_54 - Please report error message and where in game it occured"); } -void SimonState::vc_55_offset_hit_area() { +void SimonEngine::vc_55_offset_hit_area() { HitArea *ha = _hit_areas; uint count = ARRAYSIZE(_hit_areas); uint16 id = vc_read_next_word(); @@ -1566,7 +1566,7 @@ void SimonState::vc_55_offset_hit_area() { _need_hitarea_recalc++; } -void SimonState::vc_56() { +void SimonEngine::vc_56() { /* no op in simon1 */ if (_game & GF_SIMON2) { uint num = vc_read_var_or_word() * _vga_base_delay; @@ -1581,7 +1581,7 @@ void SimonState::vc_56() { } } -void SimonState::vc_59() { +void SimonEngine::vc_59() { if (_game & GF_SIMON2) { uint file = vc_read_next_word(); uint start = vc_read_next_word(); @@ -1596,7 +1596,7 @@ void SimonState::vc_59() { } } -void SimonState::vc_58() { +void SimonEngine::vc_58() { /* no op in simon1dos */ /* not used in simon1win? */ if (!(_game & GF_SIMON2)) @@ -1620,14 +1620,14 @@ void SimonState::vc_58() { _vga_cur_file_id = file; } -void SimonState::vc_57_no_op() { +void SimonEngine::vc_57_no_op() { /* unknown function in simon1dos/simon2dos */ /* no op in simon1win/simon2win */ /* not used? */ error("vc_57 - Please report error message and where in game it occured"); } -void SimonState::vc_kill_sprite(uint file, uint sprite) { +void SimonEngine::vc_kill_sprite(uint file, uint sprite) { uint16 old_sprite_id, old_cur_file_id; VgaSleepStruct *vfs; VgaSprite *vsp; @@ -1676,7 +1676,7 @@ void SimonState::vc_kill_sprite(uint file, uint sprite) { _vc_ptr = vc_org; } -void SimonState::vc_60_kill_sprite() { +void SimonEngine::vc_60_kill_sprite() { uint file; if (_game & GF_SIMON2) { @@ -1688,7 +1688,7 @@ void SimonState::vc_60_kill_sprite() { vc_kill_sprite(file, sprite); } -void SimonState::vc_61_sprite_change() { +void SimonEngine::vc_61_sprite_change() { VgaSprite *vsp = find_cur_sprite(); vsp->image = vc_read_var_or_word(); @@ -1700,7 +1700,7 @@ void SimonState::vc_61_sprite_change() { _vga_sprite_changed++; } -void SimonState::vc_62_palette_thing() { +void SimonEngine::vc_62_palette_thing() { uint i; byte *vc_ptr_org = _vc_ptr; @@ -1766,7 +1766,7 @@ void SimonState::vc_62_palette_thing() { } -void SimonState::vc_63_palette_thing_2() { +void SimonEngine::vc_63_palette_thing_2() { _palette_color_count = 208; if (_video_palette_mode != 4) { _palette_color_count = 256; @@ -1774,13 +1774,13 @@ void SimonState::vc_63_palette_thing_2() { _video_var_3 = false; } -void SimonState::vc_64_skip_if_no_speech() { +void SimonEngine::vc_64_skip_if_no_speech() { // Simon2 if (_sound->_voice_handle == 0) vc_skip_next_instruction(); } -void SimonState::vc_65_palette_thing_3() { +void SimonEngine::vc_65_palette_thing_3() { // Simon2 _palette_color_count = 0x270; _video_num_pal_colors = 0x0D0; @@ -1792,7 +1792,7 @@ void SimonState::vc_65_palette_thing_3() { _video_var_3 = false; } -void SimonState::vc_66_skip_if_nz() { +void SimonEngine::vc_66_skip_if_nz() { // Simon2 uint a = vc_read_next_word(); uint b = vc_read_next_word(); @@ -1801,7 +1801,7 @@ void SimonState::vc_66_skip_if_nz() { vc_skip_next_instruction(); } -void SimonState::vc_67_skip_if_ge() { +void SimonEngine::vc_67_skip_if_ge() { // Simon2 uint a = vc_read_next_word(); uint b = vc_read_next_word(); @@ -1810,7 +1810,7 @@ void SimonState::vc_67_skip_if_ge() { vc_skip_next_instruction(); } -void SimonState::vc_68_skip_if_le() { +void SimonEngine::vc_68_skip_if_le() { // Simon2 uint a = vc_read_next_word(); uint b = vc_read_next_word(); @@ -1819,7 +1819,7 @@ void SimonState::vc_68_skip_if_le() { vc_skip_next_instruction(); } -void SimonState::vc_69_play_track() { +void SimonEngine::vc_69_play_track() { // Simon2 int16 track = vc_read_next_word(); int16 loop = vc_read_next_word(); @@ -1843,7 +1843,7 @@ void SimonState::vc_69_play_track() { midi.startTrack (track); } -void SimonState::vc_70_queue_music() { +void SimonEngine::vc_70_queue_music() { // Simon2 uint16 track = vc_read_next_word(); uint16 loop = vc_read_next_word(); @@ -1858,7 +1858,7 @@ void SimonState::vc_70_queue_music() { midi.queueTrack (track, 0); } -void SimonState::vc_71_check_music_queue() { +void SimonEngine::vc_71_check_music_queue() { // Simon2 // Jamieson630: // This command skips the next instruction @@ -1868,7 +1868,7 @@ void SimonState::vc_71_check_music_queue() { vc_skip_next_instruction(); } -void SimonState::vc_72_play_track_2() { +void SimonEngine::vc_72_play_track_2() { // Simon2 // Jamieson630: // This is a "play or stop track". Note that @@ -1894,13 +1894,13 @@ void SimonState::vc_72_play_track_2() { } } -void SimonState::vc_73_set_op189_flag() { +void SimonEngine::vc_73_set_op189_flag() { // Simon2 vc_read_next_byte(); _op_189_flags |= 1 << vc_read_next_byte(); } -void SimonState::vc_74_clear_op189_flag() { +void SimonEngine::vc_74_clear_op189_flag() { // Simon2 vc_read_next_byte(); _op_189_flags &= ~(1 << vc_read_next_byte()); |