Fix opcodes.

svn-id: r15556
This commit is contained in:
James Brown 2004-10-15 10:42:44 +00:00
parent a5e188b9d8
commit 15c184cc12
3 changed files with 330 additions and 7 deletions

View file

@ -117,12 +117,10 @@ KyraEngine::KyraEngine(GameDetector *detector, OSystem *syst)
// loads the Font
_font = _resMgr->loadFont("8FAT.FNT");
printf("loading scripts\n");
// loads out scripts
_npcScript = _resMgr->loadScript("_NPC.EMC");
_currentScript = _resMgr->loadScript("_STARTUP.EMC");
printf("done\n");
}
KyraEngine::~KyraEngine() {

View file

@ -344,16 +344,324 @@ namespace Kyra {
COMMAND(c1_unknownCommand),
{ 0, 0 }
};
_commands = commandProcs;
// _opcodes = opcodeProcs;
static OpcodeEntry opcodeProcs[] = {
// 0
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
// 10
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
// 20
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
// 30
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
// 40
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
// 50
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
// 60
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
// 70
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
// 80
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
// 90
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
// 100
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_0x68),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
// 110
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
// 120
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
// 130
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
// 140
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
// 150
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
// 160
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
// 170
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
// 180
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
// 190
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
// 200
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
// 210
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
// 220
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
// 230
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
// 240
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
// 250
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
COMMAND(o1_unknownOpcode),
{ 0, 0 }
};
_opcodes = opcodeProcs;
_scriptFile = NULL;
_scriptFileSize = 0;
}
void VMContext::loadScript(const char* file) {
printf("a\n");
if (_scriptFile) {
delete [] _scriptFile;
_scriptFileSize = 0;
@ -363,7 +671,6 @@ namespace Kyra {
// loads the new file
_scriptFile = _engine->resManager()->fileData(file, &_scriptFileSize);
printf("c\n");
if (!_scriptFileSize || !_scriptFile) {
error("couldn't load script file '%s'", file);

View file

@ -217,4 +217,22 @@ namespace Kyra {
pushStack(res);
}
// opcode procs
void VMContext::o1_unknownOpcode(void) {
_error = true;
debug("unknown opcode '0x%x'.", _argument);
debug("parameters:\n"
"Param0: %d\nParam1: %d\nParam2: %d\nParam3: %d\nParam4: %d\nParam5: %d\n"
"Param0 as a string: %s\nParam1 as a string: %s\nParam2 as a string: %s\n"
"Param3 as a string: %s\nParam4 as a string: %s\nParam5 as a string: %s\n",
param(0), param(1), param(2), param(3), param(5), param(5),
paramString(0), paramString(1), paramString(2), paramString(3),
paramString(4), paramString(5));
}
void VMContext::o1_0x68(void) {
debug("o1_0x68 was called with param0: '%d' and param1: '%d'", param(0), param(1));
}
} // end of namespace Kyra