[Scummvm-git-logs] scummvm master -> 39987c9bbb666c77ab8d30e866a78c44eaeb217a
mduggan
mgithub at guarana.org
Sat Jun 26 12:49:50 UTC 2021
This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
d4052a1c7c ULTIMA8: Fix blank lines in incremental Cruasader computer display
2dbb1bfc7a ULTIMA8: Add usecode offsets for alternate Crusader: No Remorse versions
39987c9bbb ULTIMA8: Remove constants and get the compiler to count array sizes
Commit: d4052a1c7c180d372a2acd3b556ab0d0c438568c
https://github.com/scummvm/scummvm/commit/d4052a1c7c180d372a2acd3b556ab0d0c438568c
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-06-26T21:49:36+09:00
Commit Message:
ULTIMA8: Fix blank lines in incremental Cruasader computer display
Changed paths:
engines/ultima/ultima8/gumps/computer_gump.cpp
diff --git a/engines/ultima/ultima8/gumps/computer_gump.cpp b/engines/ultima/ultima8/gumps/computer_gump.cpp
index 7bcdf0c319..7fc8cd294a 100644
--- a/engines/ultima/ultima8/gumps/computer_gump.cpp
+++ b/engines/ultima/ultima8/gumps/computer_gump.cpp
@@ -166,13 +166,13 @@ bool ComputerGump::nextChar() {
_paused = true;
} else {
const Common::String &curline = _textLines[_curTextLine];
- if (curline[_charOff] == '*') {
+ if (_charOff < curline.size() && curline[_charOff] == '*') {
_nextCharTick += 10;
_charOff++;
return false;
}
_charOff++;
- for (uint32 i = 0; i < _charOff; i++) {
+ for (uint32 i = 0; i < _charOff && i < curline.size(); i++) {
char next = curline[i];
if (next == '*')
display += ' ';
Commit: 2dbb1bfc7ac1a17b5d787304a49e9915389c6530
https://github.com/scummvm/scummvm/commit/2dbb1bfc7ac1a17b5d787304a49e9915389c6530
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-06-26T21:49:36+09:00
Commit Message:
ULTIMA8: Add usecode offsets for alternate Crusader: No Remorse versions
Changed paths:
engines/ultima/ultima8/games/game_info.h
engines/ultima/ultima8/ultima8.cpp
engines/ultima/ultima8/usecode/remorse_intrinsics.h
diff --git a/engines/ultima/ultima8/games/game_info.h b/engines/ultima/ultima8/games/game_info.h
index 9885a6be7e..e62c8a9a39 100644
--- a/engines/ultima/ultima8/games/game_info.h
+++ b/engines/ultima/ultima8/games/game_info.h
@@ -44,6 +44,13 @@ struct GameInfo {
GAME_PENTAGRAM_MENU
} _type;
+ // Usecode coff variant
+ enum GameUsecodeOffsetVariant {
+ GAME_UC_DEFAULT, // Most versions of most games
+ GAME_UC_REM_ES, // Crusader: No Remorse Spanish
+ GAME_UC_REM_DEMO // Crusader: No Remorse Demo
+ } _ucOffVariant;
+
//! version number, encoded as 100*major + minor
//! so, 2.12 becomes 212
//! 0 = unknown
diff --git a/engines/ultima/ultima8/ultima8.cpp b/engines/ultima/ultima8/ultima8.cpp
index 44d340b906..5aa4c35bd6 100644
--- a/engines/ultima/ultima8/ultima8.cpp
+++ b/engines/ultima/ultima8/ultima8.cpp
@@ -364,7 +364,12 @@ bool Ultima8Engine::startupGame() {
if (_gameInfo->_type == GameInfo::GAME_U8) {
_ucMachine = new UCMachine(U8Intrinsics, 256);
} else if (_gameInfo->_type == GameInfo::GAME_REMORSE) {
- _ucMachine = new UCMachine(RemorseIntrinsics, 311);
+ if (_gameInfo->_ucOffVariant == GameInfo::GAME_UC_REM_DEMO)
+ _ucMachine = new UCMachine(RemorseDemoIntrinsics, 310);
+ else if (_gameInfo->_ucOffVariant == GameInfo::GAME_UC_REM_ES)
+ _ucMachine = new UCMachine(RemorseEsIntrinsics, 309);
+ else
+ _ucMachine = new UCMachine(RemorseIntrinsics, 311);
} else if (_gameInfo->_type == GameInfo::GAME_REGRET) {
_ucMachine = new UCMachine(RegretIntrinsics, 350);
} else {
@@ -814,6 +819,7 @@ bool Ultima8Engine::getGameInfo(const istring &game, GameInfo *ginfo) {
ginfo->_type = GameInfo::GAME_UNKNOWN;
ginfo->version = 0;
ginfo->_language = GameInfo::GAMELANG_UNKNOWN;
+ ginfo->_ucOffVariant = GameInfo::GAME_UC_DEFAULT;
assert(game == "ultima8" || game == "remorse" || game == "regret");
@@ -824,6 +830,14 @@ bool Ultima8Engine::getGameInfo(const istring &game, GameInfo *ginfo) {
else if (game == "regret")
ginfo->_type = GameInfo::GAME_REGRET;
+ if (ginfo->_type == GameInfo::GAME_REMORSE)
+ {
+ if (_gameDescription->desc.flags & ADGF_DEMO)
+ ginfo->_ucOffVariant = GameInfo::GAME_UC_REM_DEMO;
+ else if (_gameDescription->desc.language == Common::ES_ESP)
+ ginfo->_ucOffVariant = GameInfo::GAME_UC_REM_ES;
+ }
+
switch (_gameDescription->desc.language) {
case Common::EN_ANY:
ginfo->_language = GameInfo::GAMELANG_ENGLISH;
diff --git a/engines/ultima/ultima8/usecode/remorse_intrinsics.h b/engines/ultima/ultima8/usecode/remorse_intrinsics.h
index ad60dc5af6..95f5705a3a 100644
--- a/engines/ultima/ultima8/usecode/remorse_intrinsics.h
+++ b/engines/ultima/ultima8/usecode/remorse_intrinsics.h
@@ -368,6 +368,635 @@ Intrinsic RemorseIntrinsics[] = {
0 // void UNUSEDInt137()
};
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+// Intrinsics for the Remorse demo.
+Intrinsic RemorseDemoIntrinsics[] = {
+ World::I_getAlertActive,
+ Item::I_getFrame,
+ Item::I_setFrame,
+ Item::I_getMapArray,
+ Item::I_getStatus,
+ Item::I_orStatus,
+ Item::I_equip,
+ Item::I_isPartlyOnScreen,
+ Actor::I_isNPC,
+ Item::I_getZ,
+ Item::I_destroy,
+ Actor::I_getUnkByte,
+ Ultima8Engine::I_setAvatarInStasis,
+ Item::I_getDirToItem,
+ Actor::I_turnToward,
+ MovieGump::I_playMovieCutsceneAlt,
+ Item::I_getQLo,
+ Actor::I_getMap,
+ MusicProcess::I_playMusic,
+ Item::I_getX,
+ Item::I_getY,
+ AudioProcess::I_playSFXCru,
+ Item::I_getShape,
+ Item::I_explode,
+ UCMachine::I_rndRange,
+ Item::I_legalCreateAtCoords,
+ Item::I_andStatus,
+ World::I_getControlledNPCNum,
+ Actor::I_getDir,
+ Actor::I_getLastAnimSet,
+ Item::I_fireWeapon,
+ Item::I_create,
+ Item::I_popToCoords,
+ Actor::I_setDead,
+ Item::I_push,
+ 0, // TODO: Intrinsic023 10a8:26a8,
+ Item::I_setShape,
+ Item::I_touch,
+ Item::I_getQHi,
+ Item::I_getClosestDirectionInRange,
+ Item::I_hurl,
+ World::I_gameDifficulty,
+ AudioProcess::I_playAmbientSFXCru,
+ Item::I_isCompletelyOn,
+ UCMachine::I_true,
+ Container::I_destroyContents,
+ Item::I_getQLo,
+ Item::I_inFastArea,
+ Item::I_setQHi,
+ Item::I_legalMoveToPoint,
+ CurrentMap::I_canExistAtPoint,
+ Item::I_pop,
+ Item::I_andStatus,
+ Item::I_receiveHit,
+ Actor::I_isBusy,
+ Item::I_getDirFromTo16,
+ Actor::I_isKneeling,
+ Actor::I_doAnim,
+ MainActor::I_addItemCru,
+ AudioProcess::I_stopSFXCru,
+ Actor::I_isDead,
+ AudioProcess::I_isSFXPlayingForObject,
+ Item::I_setQLo,
+ Item::I_getFamily,
+ Item::I_fall,
+ Egg::I_getEggId,
+ CameraProcess::I_moveTo,
+ CameraProcess::I_setCenterOn,
+ Item::I_getRangeIfVisible,
+ AudioProcess::I_playSFXCru,
+ Item::I_isOn,
+ Item::I_getQHi,
+ Item::I_isOn,
+ Item::I_getQHi,
+ Item::I_isOn,
+ Item::I_getQHi,
+ Item::I_isOn,
+ Item::I_getQHi,
+ Item::I_isOn,
+ Item::I_getQHi,
+ Item::I_isOn,
+ Item::I_getQHi,
+ Actor::I_getCurrentActivityNo,
+ Actor::I_clrInCombat,
+ Actor::I_setDefaultActivity0,
+ Actor::I_setDefaultActivity1,
+ Actor::I_setDefaultActivity2,
+ Actor::I_setActivity,
+ World::I_setControlledNPCNum,
+ Item::I_getSurfaceWeight,
+ Item::I_isCentreOn,
+ Item::I_setFrame,
+ Actor::I_getLastAnimSet,
+ Item::I_legalCreateAtPoint,
+ Item::I_getPoint,
+ CruStatusGump::I_hideStatusGump,
+ MovieGump::I_playMovieOverlay,
+ CruStatusGump::I_showStatusGump,
+ Actor::I_setDead,
+ Actor::I_createActor,
+ 0,
+ Actor::I_teleport,
+ Item::I_getFootpadData,
+ Item::I_isInNpc,
+ Item::I_getQLo,
+ Item::I_getNpcNum,
+ Item::I_setNpcNum,
+ Item::I_andStatus,
+ Item::I_move,
+ UCMachine::I_true,
+ Kernel::I_resetRef,
+ Item::I_getNpcNum,
+ Item::I_andStatus,
+ Ultima8Engine::I_getUnkCrusaderFlag,
+ Ultima8Engine::I_setUnkCrusaderFlag,
+ Ultima8Engine::I_setCruStasis,
+ Actor::I_setDead,
+ Ultima8Engine::I_clrUnkCrusaderFlag,
+ Ultima8Engine::I_clrCruStasis,
+ AudioProcess::I_stopSFXCru,
+ PaletteFaderProcess::I_fadeToBlack,
+ MainActor::I_clrKeycards,
+ MainActor::I_teleportToEgg,
+ PaletteFaderProcess::I_fadeFromBlack,
+ Actor::I_setImmortal,
+ Actor::I_getHp,
+ Actor::I_setActivity,
+ Item::I_getQuality,
+ Item::I_setQuality,
+ Item::I_use,
+ MainActor::I_getMaxEnergy,
+ Actor::I_getMana,
+ Actor::I_setMana,
+ Item::I_getQLo,
+ Actor::I_setImmortal,
+ CameraProcess::I_getCameraX,
+ CameraProcess::I_getCameraY,
+ Item::I_setMapArray,
+ Item::I_getNpcNum,
+ Item::I_shoot,
+ Item::I_enterFastArea,
+ Item::I_setBroken,
+ Item::I_hurl,
+ Item::I_getNpcNum,
+ PaletteFaderProcess::I_jumpToAllBlack,
+ MusicProcess::I_stopMusic,
+ 0,
+ MovieGump::I_playMovieCutsceneAlt,
+ 0,
+ Game::I_playCredits,
+ Ultima8Engine::I_moveKeyDownRecently,
+ MainActor::I_teleportToEgg,
+ PaletteFaderProcess::I_jumpToGreyScale,
+ World::I_resetVargasShield,
+ Item::I_andStatus,
+ PaletteFaderProcess::I_jumpToNormalPalette,
+ PaletteFaderProcess::I_fadeFromBlack,
+ PaletteFaderProcess::I_fadeFromBlack,
+ PaletteFaderProcess::I_fadeToBlack,
+ PaletteFaderProcess::I_fadeToBlack,
+ PaletteFaderProcess::I_fadeToGivenColor,
+ Actor::I_setDead,
+ Item::I_getQLo,
+ Item::I_getUnkEggType,
+ Egg::I_setEggXRange,
+ Item::I_overlaps,
+ Item::I_isOn,
+ UCMachine::I_true,
+ Egg::I_getEggXRange,
+ Actor::I_setDead,
+ MovieGump::I_playMovieCutsceneAlt,
+ AudioProcess::I_playSFX,
+ Actor::I_isFalling,
+ Item::I_getFamilyOfType,
+ Item::I_getNpcNum,
+ Item::I_getQLo,
+ Item::I_getQHi,
+ Item::I_unequip,
+ Item::I_avatarStoleSomething,
+ Item::I_andStatus,
+ Ultima8Engine::I_getCurrentTimerTick,
+ World::I_setAlertActive,
+ Item::I_equip,
+ World::I_clrAlertActive,
+ Ultima8Engine::I_setAvatarInStasis,
+ MainActor::I_addItemCru,
+ Actor::I_getLastAnimSet,
+ Item::I_setQuality,
+ CurrentMap::I_canExistAt,
+ Item::I_isOn,
+ Item::I_hurl,
+ Item::I_getQHi,
+ Item::I_andStatus,
+ Item::I_hurl,
+ Item::I_andStatus,
+ Item::I_hurl,
+ Item::I_andStatus,
+ KeypadGump::I_showKeypad,
+ Item::I_isOn,
+ SpriteProcess::I_createSprite,
+ Item::I_getDirFromItem,
+ Item::I_hurl,
+ Item::I_getQHi,
+ Actor::I_addHp,
+ 0, // TOOD: Intrinsic0CC 1020:049c,
+ Actor::I_isInCombat,
+ Actor::I_setActivity,
+ Item::I_setQAndCombine,
+ Item::I_use,
+ AudioProcess::I_stopAllSFX,
+ MovieGump::I_playMovieCutscene,
+ 0,
+ AudioProcess::I_playSFX,
+ Item::I_use,
+ CameraProcess::I_getCameraZ,
+ Actor::I_getLastAnimSet,
+ Actor::I_setDead,
+ Item::I_getQLo,
+ PaletteFaderProcess::I_jumpToAllGrey,
+ Actor::I_setActivity,
+ Item::I_isOn,
+ Actor::I_getLastActivityNo,
+ Actor::I_setCombatTactic,
+ Actor::I_getEquip,
+ Actor::I_setEquip,
+ Actor::I_getDefaultActivity0,
+ Actor::I_getDefaultActivity1,
+ Actor::I_getDefaultActivity2,
+ Actor::I_getLastAnimSet,
+ Actor::I_setTarget,
+ Actor::I_setUnkByte,
+ Actor::I_setDead,
+ Item::I_cast,
+ Item::I_andStatus,
+ Item::I_getQLo,
+ MainActor::I_getNumberOfCredits,
+ Item::I_popToEnd,
+ Item::I_popToContainer,
+ BatteryChargerProcess::I_create,
+ Kernel::I_getNumProcesses,
+ Item::I_getQHi,
+ Item::I_isOn,
+ Actor::I_setActivity,
+ Item::I_getQHi,
+ Item::I_getQ,
+ Item::I_setQ,
+ CruHealerProcess::I_create,
+ Item::I_hurl,
+ Item::I_getNpcNum,
+ Item::I_hurl,
+ Item::I_isOn,
+ Item::I_getQHi,
+ Item::I_andStatus,
+ MainActor::I_hasKeycard,
+ ComputerGump::I_readComputer,
+ UCMachine::I_numToStr,
+ Item::I_getNpcNum,
+ Item::I_andStatus,
+ Item::I_getNpcNum,
+ Ultima8Engine::I_moveKeyDownRecently,
+ Item::I_andStatus,
+ Item::I_getNpcNum,
+ Item::I_andStatus,
+ Item::I_getNpcNum,
+ Item::I_andStatus,
+ Item::I_getNpcNum,
+ Item::I_andStatus,
+ Item::I_getNpcNum,
+ Item::I_andStatus,
+ Item::I_getNpcNum,
+ Item::I_andStatus,
+ Item::I_getNpcNum,
+ Item::I_andStatus,
+ Item::I_getNpcNum,
+ Actor::I_getDir,
+ UCMachine::I_numToStr,
+ Item::I_andStatus,
+ Item::I_getNpcNum,
+ Item::I_fireDistance,
+ Item::I_andStatus,
+ Item::I_hurl,
+ Item::I_setBroken,
+ Item::I_andStatus,
+ Item::I_getTypeFlag,
+ Item::I_getNpcNum,
+ Item::I_hurl,
+ Item::I_getCY,
+ Item::I_getCZ,
+ Item::I_getCX,
+ Actor::I_getDir,
+ UCMachine::I_numToStr,
+ Item::I_getDirToCoords,
+ Item::I_andStatus,
+ Item::I_getNpcNum,
+ Item::I_isOn,
+ Item::I_getFootpadData,
+ Actor::I_isDead,
+ Actor::I_createActorCru,
+ Actor::I_setImmortal,
+ Item::I_andStatus,
+ Item::I_getQHi,
+ WeaselGump::I_showWeaselGump,
+ Actor::I_setDead,
+ Item::I_getQLo,
+ Item::I_getNpcNum,
+ Actor::I_getDir,
+ Actor::I_getLastAnimSet,
+ Item::I_setQuality,
+ 0 // Unused
+
+};
+
+
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+// Intrinsics for the Remorse Spanish version.
+Intrinsic RemorseEsIntrinsics[] = {
+ ComputerGump::I_readComputer,
+ Item::I_getMapArray,
+ Item::I_getFrame,
+ Item::I_setFrame,
+ UCMachine::I_rndRange,
+ UCMachine::I_numToStr,
+ CruStatusGump::I_hideStatusGump,
+ Actor::I_getMap,
+ MovieGump::I_playMovieOverlay,
+ CruStatusGump::I_showStatusGump,
+ Item::I_getDirToItem,
+ Actor::I_turnToward,
+ MovieGump::I_playMovieCutsceneAlt,
+ AudioProcess::I_playSFXCru,
+ World::I_getAlertActive,
+ Item::I_getStatus,
+ Item::I_orStatus,
+ Item::I_equip,
+ Item::I_isPartlyOnScreen,
+ Actor::I_isNPC,
+ Item::I_getZ,
+ Item::I_destroy,
+ Actor::I_getUnkByte,
+ Ultima8Engine::I_setAvatarInStasis,
+ Item::I_getQLo,
+ MusicProcess::I_playMusic,
+ Item::I_getX,
+ Item::I_getY,
+ Item::I_getShape,
+ Item::I_explode,
+ Item::I_legalCreateAtCoords,
+ Item::I_andStatus,
+ World::I_getControlledNPCNum,
+ Actor::I_getDir,
+ Actor::I_getLastAnimSet,
+ Item::I_fireWeapon,
+ Item::I_create,
+ Item::I_popToCoords,
+ Actor::I_setDead,
+ Item::I_push,
+ 0, // TODO: Intrinsic028 10b0:2622,
+ Item::I_setShape,
+ Item::I_touch,
+ Item::I_getQHi,
+ Item::I_getClosestDirectionInRange,
+ Item::I_hurl,
+ World::I_gameDifficulty,
+ AudioProcess::I_playAmbientSFXCru,
+ Item::I_isCompletelyOn,
+ UCMachine::I_true,
+ Container::I_destroyContents,
+ Item::I_getQLo,
+ Item::I_inFastArea,
+ Item::I_setQHi,
+ Item::I_legalMoveToPoint,
+ CurrentMap::I_canExistAtPoint,
+ Item::I_pop,
+ Item::I_andStatus,
+ Item::I_receiveHit,
+ Actor::I_isBusy,
+ Item::I_getDirFromTo16,
+ Actor::I_isKneeling,
+ Actor::I_doAnim,
+ MainActor::I_addItemCru,
+ AudioProcess::I_stopSFXCru,
+ Actor::I_isDead,
+ AudioProcess::I_isSFXPlayingForObject,
+ Item::I_setQLo,
+ Item::I_getFamily,
+ Item::I_fall,
+ Egg::I_getEggId,
+ CameraProcess::I_moveTo,
+ CameraProcess::I_setCenterOn,
+ Item::I_getRangeIfVisible,
+ AudioProcess::I_playSFXCru,
+ Item::I_isOn,
+ Item::I_getQHi,
+ Item::I_isOn,
+ Item::I_getQHi,
+ Item::I_isOn,
+ Item::I_getQHi,
+ Item::I_isOn,
+ Item::I_getQHi,
+ Item::I_isOn,
+ Item::I_getQHi,
+ Item::I_isOn,
+ Item::I_getQHi,
+ Kernel::I_resetRef,
+ Actor::I_getCurrentActivityNo,
+ Actor::I_clrInCombat,
+ Actor::I_setDefaultActivity0,
+ Actor::I_setDefaultActivity1,
+ Actor::I_setDefaultActivity2,
+ Actor::I_setActivity,
+ World::I_setControlledNPCNum,
+ Item::I_getSurfaceWeight,
+ Item::I_isCentreOn,
+ Item::I_setFrame,
+ Actor::I_getLastAnimSet,
+ Item::I_legalCreateAtPoint,
+ Item::I_getPoint,
+ Actor::I_setDead,
+ Actor::I_createActor,
+ 0,
+ Actor::I_teleport,
+ Item::I_getFootpadData,
+ Item::I_isInNpc,
+ Item::I_getQLo,
+ Item::I_getNpcNum,
+ Item::I_setNpcNum,
+ Item::I_andStatus,
+ Item::I_move,
+ UCMachine::I_true,
+ Item::I_getNpcNum,
+ Item::I_andStatus,
+ Ultima8Engine::I_getUnkCrusaderFlag,
+ Ultima8Engine::I_setUnkCrusaderFlag,
+ Ultima8Engine::I_setCruStasis,
+ Actor::I_setDead,
+ Ultima8Engine::I_clrUnkCrusaderFlag,
+ Ultima8Engine::I_clrCruStasis,
+ AudioProcess::I_stopSFXCru,
+ PaletteFaderProcess::I_fadeToBlack,
+ MainActor::I_clrKeycards,
+ MainActor::I_teleportToEgg,
+ PaletteFaderProcess::I_fadeFromBlack,
+ Actor::I_setImmortal,
+ Actor::I_getHp,
+ Actor::I_setActivity,
+ Item::I_getQuality,
+ Item::I_setQuality,
+ Item::I_use,
+ MainActor::I_getMaxEnergy,
+ Actor::I_getMana,
+ Actor::I_setMana,
+ Item::I_getQLo,
+ Actor::I_setImmortal,
+ CameraProcess::I_getCameraX,
+ CameraProcess::I_getCameraY,
+ Item::I_setMapArray,
+ Item::I_getNpcNum,
+ Item::I_shoot,
+ Item::I_enterFastArea,
+ Item::I_setBroken,
+ Item::I_hurl,
+ Item::I_getNpcNum,
+ PaletteFaderProcess::I_jumpToAllBlack,
+ MusicProcess::I_stopMusic,
+ 0,
+ MovieGump::I_playMovieCutsceneAlt,
+ 0,
+ Game::I_playCredits,
+ Ultima8Engine::I_moveKeyDownRecently,
+ MainActor::I_teleportToEgg,
+ PaletteFaderProcess::I_jumpToGreyScale,
+ World::I_resetVargasShield,
+ Item::I_andStatus,
+ PaletteFaderProcess::I_jumpToNormalPalette,
+ PaletteFaderProcess::I_fadeFromBlack,
+ PaletteFaderProcess::I_fadeFromBlack,
+ PaletteFaderProcess::I_fadeToBlack,
+ PaletteFaderProcess::I_fadeToBlack,
+ PaletteFaderProcess::I_fadeToGivenColor,
+ Actor::I_setDead,
+ Item::I_getQLo,
+ Item::I_getUnkEggType,
+ Egg::I_setEggXRange,
+ Item::I_overlaps,
+ Item::I_isOn,
+ UCMachine::I_true,
+ KeypadGump::I_showKeypad,
+ MovieGump::I_playMovieCutsceneAlt,
+ Egg::I_getEggXRange,
+ Actor::I_setDead,
+ AudioProcess::I_playSFX,
+ Actor::I_isFalling,
+ Item::I_getFamilyOfType,
+ Item::I_getNpcNum,
+ Item::I_getQLo,
+ Item::I_getQHi,
+ Item::I_unequip,
+ Item::I_avatarStoleSomething,
+ Item::I_andStatus,
+ Ultima8Engine::I_getCurrentTimerTick,
+ World::I_setAlertActive,
+ Item::I_equip,
+ World::I_clrAlertActive,
+ Ultima8Engine::I_setAvatarInStasis,
+ MainActor::I_addItemCru,
+ Actor::I_getLastAnimSet,
+ Item::I_setQuality,
+ CurrentMap::I_canExistAt,
+ Item::I_isOn,
+ Item::I_hurl,
+ Item::I_getQHi,
+ Item::I_andStatus,
+ Item::I_hurl,
+ Item::I_andStatus,
+ Item::I_hurl,
+ Item::I_andStatus,
+ Item::I_getDirToCoords,
+ Item::I_popToContainer,
+ Item::I_getNpcNum,
+ Item::I_setBroken,
+ Item::I_getCY,
+ Item::I_getCX,
+ SpriteProcess::I_createSprite,
+ Item::I_isOn,
+ Item::I_getFootpadData,
+ Actor::I_isDead,
+ Actor::I_createActorCru,
+ Actor::I_setActivity,
+ Item::I_andStatus,
+ Item::I_setQuality,
+ Actor::I_getLastAnimSet,
+ Item::I_getDirFromItem,
+ Item::I_hurl,
+ Item::I_getQHi,
+ Actor::I_addHp,
+ 0, // TODO: Intrinsic0DB 1028:049c,
+ Actor::I_setActivity,
+ Actor::I_isInCombat,
+ Item::I_setQAndCombine,
+ Item::I_use,
+ AudioProcess::I_stopAllSFX,
+ MovieGump::I_playMovieCutscene,
+ 0,
+ AudioProcess::I_playSFX,
+ Item::I_use,
+ CameraProcess::I_getCameraZ,
+ Actor::I_getLastAnimSet,
+ Actor::I_setDead,
+ Item::I_getQLo,
+ PaletteFaderProcess::I_jumpToAllGrey,
+ Item::I_equip,
+ Actor::I_setActivity,
+ Item::I_isOn,
+ Actor::I_getLastActivityNo,
+ Actor::I_setCombatTactic,
+ Actor::I_getEquip,
+ Actor::I_setEquip,
+ Actor::I_getDefaultActivity0,
+ Actor::I_getDefaultActivity1,
+ Actor::I_getDefaultActivity2,
+ Actor::I_getLastAnimSet,
+ Item::I_getQHi,
+ Item::I_getNpcNum,
+ Item::I_cast,
+ MainActor::I_getNumberOfCredits,
+ Actor::I_setTarget,
+ Actor::I_setUnkByte,
+ Item::I_hurl,
+ Actor::I_setDead,
+ Item::I_andStatus,
+ Item::I_getQLo,
+ Item::I_popToEnd,
+ BatteryChargerProcess::I_create,
+ Kernel::I_getNumProcesses,
+ Item::I_isOn,
+ Actor::I_setActivity,
+ Item::I_getQHi,
+ Item::I_getQ,
+ Item::I_setQ,
+ CruHealerProcess::I_create,
+ Item::I_hurl,
+ Item::I_getNpcNum,
+ Item::I_hurl,
+ Item::I_isOn,
+ Item::I_andStatus,
+ Item::I_getQHi,
+ MainActor::I_hasKeycard,
+ Actor::I_setDead,
+ Actor::I_setImmortal,
+ Item::I_getQLo,
+ Item::I_getNpcNum,
+ Item::I_andStatus,
+ Item::I_getNpcNum,
+ Ultima8Engine::I_moveKeyDownRecently,
+ Item::I_andStatus,
+ Item::I_getNpcNum,
+ Item::I_andStatus,
+ Item::I_getNpcNum,
+ Item::I_andStatus,
+ Item::I_getNpcNum,
+ Item::I_andStatus,
+ Item::I_getNpcNum,
+ Item::I_andStatus,
+ Item::I_getNpcNum,
+ Item::I_andStatus,
+ Item::I_getNpcNum,
+ Item::I_andStatus,
+ Item::I_getNpcNum,
+ Item::I_andStatus,
+ Item::I_getNpcNum,
+ Item::I_fireDistance,
+ Item::I_andStatus,
+ Item::I_hurl,
+ Item::I_setBroken,
+ Item::I_andStatus,
+ WeaselGump::I_showWeaselGump,
+ Item::I_getTypeFlag,
+ Item::I_getNpcNum,
+ Item::I_hurl,
+ Item::I_getCY,
+ Item::I_getCZ,
+ 0 //UNUSEDInt136,
+};
+
} // End of namespace Ultima8
} // End of namespace Ultima
Commit: 39987c9bbb666c77ab8d30e866a78c44eaeb217a
https://github.com/scummvm/scummvm/commit/39987c9bbb666c77ab8d30e866a78c44eaeb217a
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-06-26T21:49:36+09:00
Commit Message:
ULTIMA8: Remove constants and get the compiler to count array sizes
Changed paths:
engines/ultima/ultima8/ultima8.cpp
diff --git a/engines/ultima/ultima8/ultima8.cpp b/engines/ultima/ultima8/ultima8.cpp
index 5aa4c35bd6..b2b8b31625 100644
--- a/engines/ultima/ultima8/ultima8.cpp
+++ b/engines/ultima/ultima8/ultima8.cpp
@@ -362,16 +362,16 @@ bool Ultima8Engine::startupGame() {
_gameData = new GameData(_gameInfo);
if (_gameInfo->_type == GameInfo::GAME_U8) {
- _ucMachine = new UCMachine(U8Intrinsics, 256);
+ _ucMachine = new UCMachine(U8Intrinsics, ARRAYSIZE(U8Intrinsics));
} else if (_gameInfo->_type == GameInfo::GAME_REMORSE) {
if (_gameInfo->_ucOffVariant == GameInfo::GAME_UC_REM_DEMO)
- _ucMachine = new UCMachine(RemorseDemoIntrinsics, 310);
+ _ucMachine = new UCMachine(RemorseDemoIntrinsics, ARRAYSIZE(RemorseDemoIntrinsics));
else if (_gameInfo->_ucOffVariant == GameInfo::GAME_UC_REM_ES)
- _ucMachine = new UCMachine(RemorseEsIntrinsics, 309);
+ _ucMachine = new UCMachine(RemorseEsIntrinsics, ARRAYSIZE(RemorseEsIntrinsics));
else
- _ucMachine = new UCMachine(RemorseIntrinsics, 311);
+ _ucMachine = new UCMachine(RemorseIntrinsics, ARRAYSIZE(RemorseIntrinsics));
} else if (_gameInfo->_type == GameInfo::GAME_REGRET) {
- _ucMachine = new UCMachine(RegretIntrinsics, 350);
+ _ucMachine = new UCMachine(RegretIntrinsics, ARRAYSIZE(RegretIntrinsics));
} else {
CANT_HAPPEN_MSG("Invalid game type.");
}
More information about the Scummvm-git-logs
mailing list