diff options
author | Travis Howell | 2006-10-23 10:06:32 +0000 |
---|---|---|
committer | Travis Howell | 2006-10-23 10:06:32 +0000 |
commit | 4c9fc74964a9b786982ecc5880b6e54be41c96ca (patch) | |
tree | 344ffb06c3782b4aade4ec762b436d9058507e59 /engines | |
parent | 8f44ef3209f6775624d4d8ce131b13ae355d35a5 (diff) | |
download | scummvm-rg350-4c9fc74964a9b786982ecc5880b6e54be41c96ca.tar.gz scummvm-rg350-4c9fc74964a9b786982ecc5880b6e54be41c96ca.tar.bz2 scummvm-rg350-4c9fc74964a9b786982ecc5880b6e54be41c96ca.zip |
Add printStats code for Elvira 2 and cleanup
svn-id: r24470
Diffstat (limited to 'engines')
-rw-r--r-- | engines/agos/agos.h | 7 | ||||
-rw-r--r-- | engines/agos/script_e1.cpp | 85 | ||||
-rw-r--r-- | engines/agos/script_e2.cpp | 48 | ||||
-rw-r--r-- | engines/agos/string.cpp | 97 |
4 files changed, 126 insertions, 111 deletions
diff --git a/engines/agos/agos.h b/engines/agos/agos.h index 984a3938e3..8264d8caa3 100644 --- a/engines/agos/agos.h +++ b/engines/agos/agos.h @@ -830,11 +830,6 @@ protected: uint16 getBoxSize(); uint16 checkFit(char *Ptr, int width, int lines); - void printMonsterDamage(); - void printPlayerDamage(); - void printMonsterHit(); - void printPlayerHit(); - void printStats(); void writeChar(WindowBlock *window, int x, int y, int offs, int val); byte *allocBlock(uint32 size); @@ -1145,7 +1140,7 @@ public: void oe2_ifDoorOpen(); void oe2_ifDoorClosed(); void oe2_ifDoorLocked(); - void oe2_unk161(); + void oe2_printStats(); void oe2_unk162(); void oe2_setSuperRoom(); void oe2_getSuperRoom(); diff --git a/engines/agos/script_e1.cpp b/engines/agos/script_e1.cpp index 76cacca453..b83e72ca7a 100644 --- a/engines/agos/script_e1.cpp +++ b/engines/agos/script_e1.cpp @@ -571,27 +571,102 @@ void AGOSEngine::oe1_zoneDisk() { void AGOSEngine::oe1_printStats() { // 270: print stats - printStats(); + WindowBlock *window = _dummyWindow; + int val; + + window->flags = 1; + + mouseOff(); + + // Strength + val = _variableArray[0]; + if (val < -99) + val = -99; + if (val > 99) + val = 99; + writeChar(window, 5, 133, 6, val); + + // Resolution + val = _variableArray[1]; + if (val < -99) + val = -99; + if (val > 99) + val = 99; + writeChar(window, 11, 133, 6, val); + + // Dexterity + val = _variableArray[2]; + if (val < -99) + val = -99; + if (val > 99) + val = 99; + writeChar(window, 18, 133, 0, val); + + // Skill + val = _variableArray[3]; + if (val < -99) + val = -99; + if (val > 99) + val = 99; + writeChar(window, 24, 133, 0, val); + + // Life + val = _variableArray[5]; + if (val < -99) + val = -99; + if (val > 99) + val = 99; + writeChar(window, 30, 133, 2, val); + + // Experience + val = _variableArray[6]; + if (val < -99) + val = -99; + if (val > 99) + val = 99; + writeChar(window, 36, 133, 4, val); + + mouseOn(); } void AGOSEngine::oe1_printPlayerDamage() { // 272: print player damage - printStats(); + WindowBlock *window = _dummyWindow; + window->flags = 1; + + mouseOff(); + writeChar(window, 36, 38, 2, _variableArray[441]); + mouseOn(); } void AGOSEngine::oe1_printMonsterDamage() { // 273: print monster damage - printStats(); + WindowBlock *window = _dummyWindow; + window->flags = 1; + + mouseOff(); + writeChar(window, 36, 88, 2, _variableArray[442]); + mouseOn(); } void AGOSEngine::oe1_printPlayerHit() { // 277: print player hit - printStats(); + WindowBlock *window = _dummyWindow; + window->flags = 1; + + mouseOff(); + writeChar(window, 3, 166, 0, _variableArray[414]); + mouseOn(); } void AGOSEngine::oe1_printMonsterHit() { // 278: print monster hit - printStats(); + WindowBlock *window = _dummyWindow; + window->flags = 1; + + mouseOff(); + writeChar(window, 35, 166, 4, _variableArray[415]); + mouseOn(); } } // End of namespace AGOS diff --git a/engines/agos/script_e2.cpp b/engines/agos/script_e2.cpp index 7f5975aabd..d75cfe75bd 100644 --- a/engines/agos/script_e2.cpp +++ b/engines/agos/script_e2.cpp @@ -62,7 +62,7 @@ void AGOSEngine::setupElvira2Opcodes(OpcodeProc *op) { op[148] = &AGOSEngine::oe2_ifDoorOpen; op[149] = &AGOSEngine::oe2_ifDoorClosed; op[150] = &AGOSEngine::oe2_ifDoorLocked; - op[161] = &AGOSEngine::oe2_unk161; + op[161] = &AGOSEngine::oe2_printStats; op[162] = &AGOSEngine::oe2_unk162; op[165] = &AGOSEngine::oe2_setSuperRoom; op[166] = &AGOSEngine::oe2_getSuperRoom; @@ -149,9 +149,49 @@ void AGOSEngine::oe2_ifDoorLocked() { setScriptCondition(getDoorState(i, d) == 3); } -void AGOSEngine::oe2_unk161() { - // 161: - debug(0, "oe2_unk161: stub"); +void AGOSEngine::oe2_printStats() { + // 161: print stats + WindowBlock *window = _dummyWindow; + int val; + + window->flags = 1; + + mouseOff(); + + // Level + val = _variableArray[20]; + if (val < -99) + val = -99; + if (val > 99) + val = 99; + writeChar(window, 10, 134, 0, val); + + // HP + val = _variableArray[22]; + if (val < -99) + val = -99; + if (val > 99) + val = 99; + writeChar(window, 16, 134, 6, val); + + // PP + val = _variableArray[23]; + if (val < -99) + val = -99; + if (val > 99) + val = 99; + writeChar(window, 23, 134, 4, val); + + // Experience + val = _variableArray[21]; + if (val < -99) + val = -99; + if (val > 9999) + val = 9999; + writeChar(window, 30, 134, 6, val / 100); + writeChar(window, 32, 134, 2, val); + + mouseOn(); } void AGOSEngine::oe2_unk162() { diff --git a/engines/agos/string.cpp b/engines/agos/string.cpp index 44ed983bbb..c75948e216 100644 --- a/engines/agos/string.cpp +++ b/engines/agos/string.cpp @@ -742,102 +742,7 @@ void AGOSEngine::printBox() { changeWindow(0); } -// String code for statistics in Elvira 1 -void AGOSEngine::printMonsterDamage() { - WindowBlock *window = _dummyWindow; - window->flags = 1; - - mouseOff(); - writeChar(window, 36, 88, 2, _variableArray[442]); - mouseOn(); -} - -void AGOSEngine::printPlayerDamage() { - WindowBlock *window = _dummyWindow; - window->flags = 1; - - mouseOff(); - writeChar(window, 36, 38, 2, _variableArray[441]); - mouseOn(); -} - -void AGOSEngine::printMonsterHit() { - WindowBlock *window = _dummyWindow; - window->flags = 1; - - mouseOff(); - writeChar(window, 35, 166, 4, _variableArray[415]); - mouseOn(); -} - -void AGOSEngine::printPlayerHit() { - WindowBlock *window = _dummyWindow; - window->flags = 1; - - mouseOff(); - writeChar(window, 3, 166, 0, _variableArray[414]); - mouseOn(); -} - -void AGOSEngine::printStats() { - WindowBlock *window = _dummyWindow; - int val; - - window->flags = 1; - - mouseOff(); - - // Strength - val = _variableArray[0]; - if (val < -99) - val = -99; - if (val > 99) - val = 99; - writeChar(window, 5, 133, 6, val); - - // Resolution - val = _variableArray[1]; - if (val < -99) - val = -99; - if (val > 99) - val = 99; - writeChar(window, 11, 133, 6, val); - - // Dexterity - val = _variableArray[2]; - if (val < -99) - val = -99; - if (val > 99) - val = 99; - writeChar(window, 18, 133, 0, val); - - // Skill - val = _variableArray[3]; - if (val < -99) - val = -99; - if (val > 99) - val = 99; - writeChar(window, 24, 133, 0, val); - - // Life - val = _variableArray[5]; - if (val < -99) - val = -99; - if (val > 99) - val = 99; - writeChar(window, 30, 133, 2, val); - - // Experience - val = _variableArray[6]; - if (val < -99) - val = -99; - if (val > 99) - val = 99; - writeChar(window, 36, 133, 4, val); - - mouseOn(); -} - +// String code for statistics in Elvira 1/2 void AGOSEngine::writeChar(WindowBlock *window, int x, int y, int offs, int val) { int chr; |