Fix opcodes.
svn-id: r15556
This commit is contained in:
parent
a5e188b9d8
commit
15c184cc12
3 changed files with 330 additions and 7 deletions
|
@ -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() {
|
||||
|
|
315
kyra/script.cpp
315
kyra/script.cpp
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue