diff options
author | Travis Howell | 2006-10-06 00:36:13 +0000 |
---|---|---|
committer | Travis Howell | 2006-10-06 00:36:13 +0000 |
commit | c22289416fb20a603c83ca33724e1198c39706bb (patch) | |
tree | 61c2627aa26736fe670039a8bf0df54d1888d73c /engines/agos/items.cpp | |
parent | 3dc7c88e067b4fcf8828523b465ab9d377368784 (diff) | |
download | scummvm-rg350-c22289416fb20a603c83ca33724e1198c39706bb.tar.gz scummvm-rg350-c22289416fb20a603c83ca33724e1198c39706bb.tar.bz2 scummvm-rg350-c22289416fb20a603c83ca33724e1198c39706bb.zip |
Add more code for Elvira 1/2
svn-id: r24130
Diffstat (limited to 'engines/agos/items.cpp')
-rw-r--r-- | engines/agos/items.cpp | 34 |
1 files changed, 26 insertions, 8 deletions
diff --git a/engines/agos/items.cpp b/engines/agos/items.cpp index e225c4478f..e90201afaf 100644 --- a/engines/agos/items.cpp +++ b/engines/agos/items.cpp @@ -220,6 +220,7 @@ void AGOSEngine::setupElvira1Opcodes(OpcodeProc *op) { op[74] = &AGOSEngine::o_modf; op[75] = &AGOSEngine::o_random; + op[76] = &AGOSEngine::o_moveDirn; op[77] = &AGOSEngine::o_goto; op[80] = &AGOSEngine::o_oset; @@ -230,8 +231,10 @@ void AGOSEngine::setupElvira1Opcodes(OpcodeProc *op) { op[86] = &AGOSEngine::o_dec; op[87] = &AGOSEngine::o_setState; + op[89] = &AGOSEngine::o_print; + op[90] = &AGOSEngine::oe1_score; op[91] = &AGOSEngine::o_message; - op[92] = &AGOSEngine::o_message; + op[92] = &AGOSEngine::o_msg; op[97] = &AGOSEngine::o_end; op[98] = &AGOSEngine::o_done; @@ -319,6 +322,7 @@ void AGOSEngine::setupElvira2Opcodes(OpcodeProc *op) { op[34] = &AGOSEngine::o_copyof; op[35] = &AGOSEngine::o_copyfo; + op[54] = &AGOSEngine::o_moveDirn; op[83] = &AGOSEngine::o1_rescan; op[98] = &AGOSEngine::o1_animate; op[99] = &AGOSEngine::o1_stopAnimate; @@ -357,7 +361,7 @@ void AGOSEngine::setupWaxworksOpcodes(OpcodeProc *op) { // Confirmed op[34] = &AGOSEngine::o_copyof; op[35] = &AGOSEngine::o_copyfo; - op[54] = &AGOSEngine::oww_moveDirn; + op[54] = &AGOSEngine::o_moveDirn; op[55] = &AGOSEngine::oww_goto; op[70] = &AGOSEngine::o1_printLongText; op[83] = &AGOSEngine::o1_rescan; @@ -845,6 +849,20 @@ void AGOSEngine::o_random() { writeVariable(var, _rnd.getRandomNumber(value - 1)); } +void AGOSEngine::o_moveDirn() { + // 54: move direction + int16 d = getVarOrByte(); + + if (getGameType() == GType_WW) { + moveDirn_ww(me(), d); + } else if (getGameType() == GType_ELVIRA2) { + moveDirn_e2(me(), d); + } else { + moveDirn_e1(me(), d); + } + +} + void AGOSEngine::o_goto() { // 55: set itemA parent uint item = getNextItemID(); @@ -1763,6 +1781,12 @@ void AGOSEngine::oe1_setFF() { writeNextVarContents(0xFF); } +void AGOSEngine::oe1_score() { + // 90: score + SubPlayer *p = (SubPlayer *) findChildOfType(me(), 3); + showMessageFormat("Your score is %ld.\n", p->score); +} + void AGOSEngine::oe1_opcode176() { // 176 getNextItemPtr(); @@ -1829,12 +1853,6 @@ void AGOSEngine::oe2_opcode161() { // Waxworks Opcodes // ----------------------------------------------------------------------- -void AGOSEngine::oww_moveDirn() { - // 54: move direction - int16 d = getVarOrByte(); - moveDirn(me(), d); -} - void AGOSEngine::oww_goto() { // 55: set itemA parent uint item = getNextItemID(); |