aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--backends/wince/pocketpc.cpp2
-rw-r--r--backends/wince/smartphone.cpp2
-rw-r--r--backends/wince/wince.cpp2
-rw-r--r--common/engine.h2
-rw-r--r--simon/charset.cpp22
-rw-r--r--simon/debug.cpp20
-rw-r--r--simon/items.cpp50
-rw-r--r--simon/res.cpp10
-rw-r--r--simon/simon.cpp354
-rw-r--r--simon/simon.h6
-rw-r--r--simon/verb.cpp44
-rw-r--r--simon/vga.cpp330
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());