[Scummvm-git-logs] scummvm master -> 573521056f0a836d360a75240883f3bd57b5f664
mduggan
mgithub at guarana.org
Sun Jul 4 06:31:28 UTC 2021
This automated email contains information about 6 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
ca0bc5fa43 ULTIMA8: Fix Crusader computer gump corner case
d8628997e9 ULTIMA8: Implement No Regret alert intrinsics
f3d1b5281b ULTIMA8: Don't remap usecode for Remorse ES fan version
f7861cee95 ULTIMA8: Remove out-of-date comment
63a81b65eb ULTIMA8: Avoid crash in No Regret demo
573521056f ULTIMA8: Add No Regret demo intrinsic map
Commit: ca0bc5fa4301984202365788d540e764eb156780
https://github.com/scummvm/scummvm/commit/ca0bc5fa4301984202365788d540e764eb156780
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-07-04T14:17:35+09:00
Commit Message:
ULTIMA8: Fix Crusader computer gump corner case
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 7fc8cd294a..173cc11d8e 100644
--- a/engines/ultima/ultima8/gumps/computer_gump.cpp
+++ b/engines/ultima/ultima8/gumps/computer_gump.cpp
@@ -74,6 +74,8 @@ ComputerGump::ComputerGump(const Std::string &msg) :
continue;
}
end++;
+ if (end >= msg.size())
+ break;
if (end - start >= MAX_LINE_LEN) {
while (end > start && msg[end] != ' ')
end--;
Commit: d8628997e92e8ea8cc4c6ece1df1cf80c8b8b255
https://github.com/scummvm/scummvm/commit/d8628997e92e8ea8cc4c6ece1df1cf80c8b8b255
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-07-04T14:57:20+09:00
Commit Message:
ULTIMA8: Implement No Regret alert intrinsics
Changed paths:
engines/ultima/ultima8/usecode/regret_intrinsics.h
engines/ultima/ultima8/world/world.cpp
engines/ultima/ultima8/world/world.h
diff --git a/engines/ultima/ultima8/usecode/regret_intrinsics.h b/engines/ultima/ultima8/usecode/regret_intrinsics.h
index edb4cd5f6f..e823aa8dcd 100644
--- a/engines/ultima/ultima8/usecode/regret_intrinsics.h
+++ b/engines/ultima/ultima8/usecode/regret_intrinsics.h
@@ -372,18 +372,18 @@ Intrinsic RegretIntrinsics[] = {
AudioProcess::I_playSFX, // Intrinsic13F()
// 0140
AudioProcess::I_isSFXPlaying, // Intrinsic140()
- 0, // TODO: World::I_clrAlertActive, but not the same as remorse
+ World::I_clrAlertActive, // TODO: World::I_clrAlertActive, but not the same as remorse
PaletteFaderProcess::I_fadeToGivenColor, // Intrinsic142()
Actor::I_isDead, // Intrinsic143()
Actor::I_setDead, // Intrinsic144()
- 0, // Intrinsic145() - I_maybeShowCredits
+ Game::I_playCredits, // Intrinsic145()
PaletteFaderProcess::I_jumpToAllGrey, // Intrinsic146()
Item::I_getFamilyOfType, // Intrinsic147()
Actor::I_getNpcNum, // Intrinsic148()
Item::I_getQLo, // Intrinsic149()
Item::I_andStatus, // Intrinsic14A()
Ultima8Engine::I_getCurrentTimerTick, // Intrinsic14B()
- 0, // TODO: World::I_setAlertActive, but not the same as remorse
+ World::I_setAlertActive, // TODO: World::I_setAlertActive, but not the same as remorse
Ultima8Engine::I_getAvatarInStasis, // Intrinsic14D()
MainActor::I_addItemCru, // Intrinsic14E()
Egg::I_getEggXRange, // Intrinsic14F()
diff --git a/engines/ultima/ultima8/world/world.cpp b/engines/ultima/ultima8/world/world.cpp
index 48bfd9f710..a175769bc9 100644
--- a/engines/ultima/ultima8/world/world.cpp
+++ b/engines/ultima/ultima8/world/world.cpp
@@ -420,6 +420,15 @@ void World::setAlertActive(bool active)
assert(GAME_IS_CRUSADER);
_alertActive = active;
+ if (GAME_IS_REMORSE) {
+ setAlertActiveRemorse(active);
+ } else {
+ setAlertActiveRegret(active);
+ }
+}
+
+void World::setAlertActiveRemorse(bool active)
+{
// Replicate the behavior of the original game.
LOOPSCRIPT(script,
LS_OR(
@@ -437,6 +446,7 @@ void World::setAlertActive(bool active)
for (uint32 i = 0; i < itemlist.getSize(); i++) {
uint16 itemid = itemlist.getuint16(i);
Item *item = getItem(itemid);
+ assert(item);
int frame = item->getFrame();
if (_alertActive) {
if (item->getShape() == 0x477) {
@@ -456,6 +466,45 @@ void World::setAlertActive(bool active)
}
}
+void World::setAlertActiveRegret(bool active)
+{
+ setAlertActiveRemorse(active);
+
+ LOOPSCRIPT(offscript, LS_OR(LS_SHAPE_EQUAL(0x660), LS_SHAPE_EQUAL(0x661)));
+ LOOPSCRIPT(onscript, LS_OR(LS_SHAPE_EQUAL(0x662), LS_SHAPE_EQUAL(0x663)));
+
+ const uint8 *script = active ? onscript : offscript;
+ // note: size should be the same, but just to be explicit.
+ int scriptlen = active ? sizeof(onscript) : sizeof(offscript);
+
+ UCList itemlist(2);
+ _world->getCurrentMap()->areaSearch(&itemlist, script, scriptlen,
+ nullptr, 0xffff, false);
+ for (uint32 i = 0; i < itemlist.getSize(); i++) {
+ uint16 itemid = itemlist.getuint16(i);
+ Item *item = getItem(itemid);
+ assert(item);
+ switch (item->getShape()) {
+ case 0x660:
+ item->setShape(0x663);
+ break;
+ case 0x661:
+ item->setShape(0x662);
+ break;
+ case 0x662:
+ item->setShape(0x661);
+ break;
+ case 0x663:
+ item->setShape(0x660);
+ break;
+ default:
+ warning("unexpected shape %d returned from search", item->getShape());
+ break;
+ }
+ item->setFrame(0);
+ }
+}
+
void World::setControlledNPCNum(uint16 num) {
uint16 oldnpc = _controlledNPCNum;
_controlledNPCNum = num;
diff --git a/engines/ultima/ultima8/world/world.h b/engines/ultima/ultima8/world/world.h
index d462c47947..3052f113de 100644
--- a/engines/ultima/ultima8/world/world.h
+++ b/engines/ultima/ultima8/world/world.h
@@ -173,6 +173,10 @@ public:
INTRINSIC(I_resetVargasShield); // for Crusader: No Remorse
private:
+
+ void setAlertActiveRemorse(bool active);
+ void setAlertActiveRegret(bool active);
+
static World *_world;
Std::vector<Map *> _maps;
Commit: f3d1b5281b3174259c761228baaef145db0f94a4
https://github.com/scummvm/scummvm/commit/f3d1b5281b3174259c761228baaef145db0f94a4
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-07-04T14:57:22+09:00
Commit Message:
ULTIMA8: Don't remap usecode for Remorse ES fan version
It is based on the En version so the usecode offsets are the same. We only
want to remap for the official ES release.
Changed paths:
engines/ultima/ultima8/ultima8.cpp
diff --git a/engines/ultima/ultima8/ultima8.cpp b/engines/ultima/ultima8/ultima8.cpp
index 4b283f2b0b..3ef743480e 100644
--- a/engines/ultima/ultima8/ultima8.cpp
+++ b/engines/ultima/ultima8/ultima8.cpp
@@ -836,8 +836,10 @@ bool Ultima8Engine::getGameInfo(const istring &game, GameInfo *ginfo) {
{
if (_gameDescription->desc.flags & ADGF_DEMO)
ginfo->_ucOffVariant = GameInfo::GAME_UC_REM_DEMO;
- else if (_gameDescription->desc.language == Common::ES_ESP)
+ else if (_gameDescription->desc.language == Common::ES_ESP &&
+ Common::String("") == _gameDescription->desc.extra) {
ginfo->_ucOffVariant = GameInfo::GAME_UC_REM_ES;
+ }
}
switch (_gameDescription->desc.language) {
Commit: f7861cee959a873e7e3a84b70ff2a0946120be2e
https://github.com/scummvm/scummvm/commit/f7861cee959a873e7e3a84b70ff2a0946120be2e
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-07-04T14:57:22+09:00
Commit Message:
ULTIMA8: Remove out-of-date comment
Changed paths:
engines/ultima/ultima8/ultima8.cpp
diff --git a/engines/ultima/ultima8/ultima8.cpp b/engines/ultima/ultima8/ultima8.cpp
index 3ef743480e..8b841a5e8f 100644
--- a/engines/ultima/ultima8/ultima8.cpp
+++ b/engines/ultima/ultima8/ultima8.cpp
@@ -814,9 +814,6 @@ void Ultima8Engine::handleDelayedEvents() {
}
bool Ultima8Engine::getGameInfo(const istring &game, GameInfo *ginfo) {
- // first try getting the information from the config file
- // if that fails, try to autodetect it
-
ginfo->_name = game;
ginfo->_type = GameInfo::GAME_UNKNOWN;
ginfo->version = 0;
Commit: 63a81b65eb689914fa0d047974c3a401a17eb5e0
https://github.com/scummvm/scummvm/commit/63a81b65eb689914fa0d047974c3a401a17eb5e0
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-07-04T14:57:22+09:00
Commit Message:
ULTIMA8: Avoid crash in No Regret demo
It has no sound index data, but we only use that to print info.
Changed paths:
engines/ultima/ultima8/audio/sound_flex.cpp
diff --git a/engines/ultima/ultima8/audio/sound_flex.cpp b/engines/ultima/ultima8/audio/sound_flex.cpp
index 6554642fa8..9c9015b919 100644
--- a/engines/ultima/ultima8/audio/sound_flex.cpp
+++ b/engines/ultima/ultima8/audio/sound_flex.cpp
@@ -99,8 +99,10 @@ void SoundFlex::cache(uint32 index) {
if (strncmp(reinterpret_cast<const char *>(buf), "ASFX", 4) == 0) {
// After the 32 byte header, ASFX (crusader audio) is just raw 11025 data
- const SoundFlexEntry &entry = _index[index];
- debug(6, "SoundFlex: Playing sfx %d (%s) with data 0x%04X", index, entry._name.c_str(), entry._data);
+ if (index < _index.size()) {
+ const SoundFlexEntry &entry = _index[index];
+ debug(6, "SoundFlex: Playing sfx %d (%s) with data 0x%04X", index, entry._name.c_str(), entry._data);
+ }
_samples[index] = new RawAudioSample(buf + 32, size - 32, 11025, true, false);
} else {
_samples[index] = new SonarcAudioSample(buf, size);
Commit: 573521056f0a836d360a75240883f3bd57b5f664
https://github.com/scummvm/scummvm/commit/573521056f0a836d360a75240883f3bd57b5f664
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-07-04T15:08:53+09:00
Commit Message:
ULTIMA8: Add No Regret demo intrinsic map
Changed paths:
engines/ultima/ultima8/games/game_info.h
engines/ultima/ultima8/ultima8.cpp
engines/ultima/ultima8/usecode/regret_intrinsics.h
diff --git a/engines/ultima/ultima8/games/game_info.h b/engines/ultima/ultima8/games/game_info.h
index e62c8a9a39..fcac0e3cc4 100644
--- a/engines/ultima/ultima8/games/game_info.h
+++ b/engines/ultima/ultima8/games/game_info.h
@@ -48,7 +48,7 @@ struct GameInfo {
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
+ GAME_UC_DEMO // Crusader: No Remorse or No Regret Demos
} _ucOffVariant;
//! version number, encoded as 100*major + minor
diff --git a/engines/ultima/ultima8/ultima8.cpp b/engines/ultima/ultima8/ultima8.cpp
index 8b841a5e8f..3e0c1d23de 100644
--- a/engines/ultima/ultima8/ultima8.cpp
+++ b/engines/ultima/ultima8/ultima8.cpp
@@ -366,14 +366,17 @@ bool Ultima8Engine::startupGame() {
if (_gameInfo->_type == GameInfo::GAME_U8) {
_ucMachine = new UCMachine(U8Intrinsics, ARRAYSIZE(U8Intrinsics));
} else if (_gameInfo->_type == GameInfo::GAME_REMORSE) {
- if (_gameInfo->_ucOffVariant == GameInfo::GAME_UC_REM_DEMO)
+ if (_gameInfo->_ucOffVariant == GameInfo::GAME_UC_DEMO)
_ucMachine = new UCMachine(RemorseDemoIntrinsics, ARRAYSIZE(RemorseDemoIntrinsics));
else if (_gameInfo->_ucOffVariant == GameInfo::GAME_UC_REM_ES)
_ucMachine = new UCMachine(RemorseEsIntrinsics, ARRAYSIZE(RemorseEsIntrinsics));
else
_ucMachine = new UCMachine(RemorseIntrinsics, ARRAYSIZE(RemorseIntrinsics));
} else if (_gameInfo->_type == GameInfo::GAME_REGRET) {
- _ucMachine = new UCMachine(RegretIntrinsics, ARRAYSIZE(RegretIntrinsics));
+ if (_gameInfo->_ucOffVariant == GameInfo::GAME_UC_DEMO)
+ _ucMachine = new UCMachine(RegretDemoIntrinsics, ARRAYSIZE(RegretDemoIntrinsics));
+ else
+ _ucMachine = new UCMachine(RegretIntrinsics, ARRAYSIZE(RegretIntrinsics));
} else {
CANT_HAPPEN_MSG("Invalid game type.");
}
@@ -832,11 +835,14 @@ bool Ultima8Engine::getGameInfo(const istring &game, GameInfo *ginfo) {
if (ginfo->_type == GameInfo::GAME_REMORSE)
{
if (_gameDescription->desc.flags & ADGF_DEMO)
- ginfo->_ucOffVariant = GameInfo::GAME_UC_REM_DEMO;
+ ginfo->_ucOffVariant = GameInfo::GAME_UC_DEMO;
else if (_gameDescription->desc.language == Common::ES_ESP &&
Common::String("") == _gameDescription->desc.extra) {
ginfo->_ucOffVariant = GameInfo::GAME_UC_REM_ES;
}
+ } else if (ginfo->_type == GameInfo::GAME_REGRET) {
+ if (_gameDescription->desc.flags & ADGF_DEMO)
+ ginfo->_ucOffVariant = GameInfo::GAME_UC_DEMO;
}
switch (_gameDescription->desc.language) {
diff --git a/engines/ultima/ultima8/usecode/regret_intrinsics.h b/engines/ultima/ultima8/usecode/regret_intrinsics.h
index e823aa8dcd..7e4808f4ac 100644
--- a/engines/ultima/ultima8/usecode/regret_intrinsics.h
+++ b/engines/ultima/ultima8/usecode/regret_intrinsics.h
@@ -372,7 +372,7 @@ Intrinsic RegretIntrinsics[] = {
AudioProcess::I_playSFX, // Intrinsic13F()
// 0140
AudioProcess::I_isSFXPlaying, // Intrinsic140()
- World::I_clrAlertActive, // TODO: World::I_clrAlertActive, but not the same as remorse
+ World::I_clrAlertActive,
PaletteFaderProcess::I_fadeToGivenColor, // Intrinsic142()
Actor::I_isDead, // Intrinsic143()
Actor::I_setDead, // Intrinsic144()
@@ -383,7 +383,7 @@ Intrinsic RegretIntrinsics[] = {
Item::I_getQLo, // Intrinsic149()
Item::I_andStatus, // Intrinsic14A()
Ultima8Engine::I_getCurrentTimerTick, // Intrinsic14B()
- World::I_setAlertActive, // TODO: World::I_setAlertActive, but not the same as remorse
+ World::I_setAlertActive,
Ultima8Engine::I_getAvatarInStasis, // Intrinsic14D()
MainActor::I_addItemCru, // Intrinsic14E()
Egg::I_getEggXRange, // Intrinsic14F()
@@ -404,6 +404,356 @@ Intrinsic RegretIntrinsics[] = {
0 // Intrinsic15D()
};
+// =========================================================
+// Intrinsics for Demo.
+// At first glance this list looks the same, but it diverges
+// changing part way through.
+//
+
+Intrinsic RegretDemoIntrinsics[] = {
+ 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,
+ World::I_gameDifficulty,
+ Item::I_getQLo,
+ Item::I_destroy,
+ Actor::I_getUnkByte,
+ 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,
+ Item::I_getEtherealTop,
+ Item::I_getQLo,
+ Item::I_setQLo,
+ Item::I_getQHi,
+ Item::I_setQHi,
+ Item::I_getClosestDirectionInRange,
+ Item::I_hurl,
+ Item::I_getCY,
+ Item::I_getCX,
+ SpriteProcess::I_createSprite,
+ Item::I_setNpcNum,
+ AudioProcess::I_playSFXCru,
+ Item::I_setShape,
+ Item::I_pop,
+ AudioProcess::I_stopSFXCru,
+ Item::I_isCompletelyOn,
+ Item::I_popToContainer,
+ Actor::I_getHp,
+ MainActor::I_getMana,
+ Item::I_getFamily,
+ Actor::I_destroyContents,
+ 0, // setVolForItem
+ Item::I_getDirToItem,
+ AudioProcess::I_isSFXPlayingForObject,
+ Item::I_touch,
+ Item::I_inFastArea,
+ AudioProcess::I_stopSFXCru,
+ Item::I_fall,
+ Item::I_getRangeIfVisible,
+ AudioProcess::I_playSFXCru,
+ Item::I_andStatus,
+ Kernel::I_resetRef,
+ Egg::I_getEggId,
+ MainActor::I_addItemCru,
+ Actor::I_getMap,
+ Item::I_cast,
+ 0,
+ Item::I_isOn,
+ Item::I_legalMoveToPoint,
+ 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,
+ Item::I_isOn,
+ Item::I_getQHi,
+ Actor::I_getCurrentActivityNo,
+ Actor::I_isDead,
+ Actor::I_clrInCombat,
+ Actor::I_setDefaultActivity0,
+ Actor::I_setDefaultActivity1,
+ Actor::I_setDefaultActivity2,
+ Actor::I_setActivity,
+ World::I_setControlledNPCNum,
+ Item::I_receiveHit,
+ UCMachine::I_true,
+ MainActor::I_setMana,
+ Item::I_use,
+ Item::I_setUnkEggType,
+ MusicProcess::I_playMusic,
+ Item::I_getSurfaceWeight,
+ Item::I_isCentreOn,
+ Item::I_setFrame,
+ Actor::I_getLastAnimSet,
+ Ultima8Engine::I_setAvatarInStasis,
+ Actor::I_isBusy,
+ 0,
+ Actor::I_doAnim,
+ Item::I_legalCreateAtPoint,
+ Item::I_hurl,
+ Kernel::I_getNumProcesses,
+ Item::I_getCY,
+ Item::I_getPoint,
+ 0,
+ 0,
+ CruStatusGump::I_hideStatusGump,
+ Actor::I_turnToward,
+ ComputerGump::I_readComputer,
+ MovieGump::I_playMovieCutsceneRegret,
+ 0,
+ MusicProcess::I_pauseMusic,
+ MusicProcess::I_unpauseMusic,
+ Item::I_isInNpc,
+ Ultima8Engine::I_setCruStasis,
+ Ultima8Engine::I_clrCruStasis,
+ 0, // jump to color
+ PaletteFaderProcess::I_fadeFromBlack,
+ Actor::I_isDead,
+ Actor::I_getNpcNum,
+ 0,
+ UCMachine::I_true,
+ Item::I_unequip,
+ Item::I_andStatus,
+ Item::I_move,
+ Ultima8Engine::I_getUnkCrusaderFlag,
+ Ultima8Engine::I_setUnkCrusaderFlag,
+ Ultima8Engine::I_clrUnkCrusaderFlag,
+ PaletteFaderProcess::I_fadeToBlack,
+ MainActor::I_clrKeycards,
+ MusicProcess::I_stopMusic,
+ PaletteFaderProcess::I_jumpToAllBlack,
+ 0, // set unk flag A4
+ 0, // clr unk flag A4
+ Game::I_playDemoScreen,
+ MainActor::I_teleportToEgg,
+ PaletteFaderProcess::I_fadeFromBlack,
+ Actor::I_clrImmortal,
+ Actor::I_setActivity,
+ Item::I_getQuality,
+ Item::I_setQuality,
+ MainActor::I_getMaxEnergy,
+ CameraProcess::I_moveTo,
+ Actor::I_setImmortal,
+ CameraProcess::I_getCameraX,
+ CameraProcess::I_getCameraY,
+ Item::I_setMapArray,
+ Actor::I_getNpcNum,
+ Item::I_shoot,
+ CameraProcess::I_setCenterOn,
+ Item::I_enterFastArea,
+ Item::I_setBroken,
+ Item::I_hurl,
+ Actor::I_getNpcNum,
+ Ultima8Engine::I_moveKeyDownRecently,
+ MainActor::I_teleportToEgg,
+ Actor::I_createActor,
+ Actor::I_clrInCombat,
+ PaletteFaderProcess::I_jumpToGreyScale,
+ PaletteFaderProcess::I_jumpToNormalPalette,
+ CruStatusGump::I_showStatusGump,
+ Item::I_andStatus,
+ AudioProcess::I_playSFX,
+ AudioProcess::I_isSFXPlaying,
+ Item::I_getDirFromTo16,
+ Item::I_setFrame,
+ Egg::I_getUnkEggType,
+ Egg::I_setEggXRange,
+ Item::I_overlaps,
+ Item::I_isOn,
+ Egg::I_getEggXRange,
+ World::I_clrAlertActive,
+ PaletteFaderProcess::I_fadeToGivenColor,
+ Actor::I_setDead,
+ Game::I_playCredits,
+ PaletteFaderProcess::I_jumpToAllGrey,
+ Actor::I_isFalling,
+ Item::I_getFamilyOfType,
+ Actor::I_getNpcNum,
+ Item::I_getQLo,
+ Item::I_getQHi,
+ Item::I_avatarStoleSomething,
+ Item::I_andStatus,
+ Ultima8Engine::I_getCurrentTimerTick,
+ World::I_setAlertActive,
+ Ultima8Engine::I_getAvatarInStasis,
+ MainActor::I_addItemCru,
+ Actor::I_getLastAnimSet,
+ Item::I_getCY,
+ CurrentMap::I_canExistAt,
+ Item::I_isOn,
+ Actor::I_isDead,
+ Item::I_hurl,
+ Item::I_getQHi,
+ Item::I_andStatus,
+ Item::I_hurl,
+ Item::I_andStatus,
+ Item::I_hurl,
+ Item::I_andStatus,
+ Item::I_getDirToCoords,
+ 0,
+ Actor::I_getNpcNum,
+ Item::I_getCY,
+ Item::I_isOn,
+ Item::I_getFootpadData,
+ Actor::I_isDead,
+ Actor::I_createActorCru,
+ Actor::I_setActivity,
+ KeypadGump::I_showKeypad,
+ Item::I_andStatus,
+ UCMachine::I_numToStr,
+ 0,
+ Actor::I_getDir,
+ Item::I_getQHi,
+ Item::I_setQuality,
+ Item::I_use,
+ Item::I_hurl,
+ Actor::I_addHp,
+ CruHealerProcess::I_create,
+ Item::I_equip,
+ Item::I_setBroken,
+ Item::I_isOn,
+ Actor::I_teleport,
+ Item::I_getQHi,
+ Item::I_isOn,
+ Actor::I_isInCombat,
+ 0,
+ Actor::I_setCombatTactic,
+ Actor::I_setDead,
+ CameraProcess::I_getCameraY,
+ Actor::I_getEquip,
+ Actor::I_setEquip,
+ Actor::I_getDefaultActivity0,
+ Actor::I_getDefaultActivity1,
+ Actor::I_getDefaultActivity2,
+ Actor::I_getLastAnimSet,
+ Item::I_getQLo,
+ Item::I_getQHi,
+ Actor::I_getNpcNum,
+ Actor::I_setUnkByte,
+ Item::I_hurl,
+ Actor::I_setDead,
+ Item::I_getQLo,
+ Item::I_getCY,
+ Actor::I_getNpcNum,
+ Item::I_hurl,
+ Actor::I_getNpcNum,
+ Item::I_hurl,
+ Actor::I_getNpcNum,
+ Item::I_hurl,
+ Actor::I_getNpcNum,
+ Item::I_hurl,
+ Actor::I_getNpcNum,
+ Item::I_hurl,
+ Actor::I_getNpcNum,
+ Item::I_hurl,
+ Actor::I_getNpcNum,
+ Item::I_hurl,
+ Actor::I_getNpcNum,
+ Item::I_hurl,
+ Actor::I_getNpcNum,
+ Item::I_hurl,
+ Actor::I_getNpcNum,
+ Item::I_andStatus,
+ Actor::I_setDead,
+ Item::I_getQLo,
+ Actor::I_setDead,
+ Actor::I_getMaxHp,
+ Actor::I_setHp,
+ Item::I_getQLo,
+ BatteryChargerProcess::I_create,
+ Item::I_hurl,
+ Item::I_andStatus,
+ Item::I_isOn,
+ Actor::I_isDead,
+ Actor::I_setActivity,
+ Item::I_getQHi,
+ Actor::I_getLastAnimSet,
+ Actor::I_setDead,
+ Item::I_getQLo,
+ Item::I_isOn,
+ Item::I_getQHi,
+ Item::I_isOn,
+ Item::I_getQHi,
+ Item::I_hurl,
+ Actor::I_getNpcNum,
+ Item::I_getCY,
+ Item::I_hurl,
+ Item::I_isOn,
+ MainActor::I_hasKeycard,
+ 0,
+ Actor::I_isDead,
+ Actor::I_clrImmortal,
+ UCMachine::I_numToStr,
+ Item::I_getQHi,
+ Actor::I_setActivity,
+ Item::I_andStatus,
+ Actor::I_getNpcNum,
+ Item::I_andStatus,
+ Actor::I_getDir,
+ Actor::I_setDead,
+ Actor::I_getNpcNum,
+ Item::I_getQLo,
+ Item::I_isCrusTypeNPC,
+ Item::I_andStatus,
+ Actor::I_getNpcNum,
+ Item::I_andStatus,
+ Actor::I_getNpcNum,
+ Item::I_getQ,
+ Item::I_setQ,
+ Item::I_andStatus,
+ Actor::I_getNpcNum,
+ Item::I_andStatus,
+ Actor::I_getNpcNum,
+ Item::I_andStatus,
+ Actor::I_getNpcNum,
+ Item::I_andStatus,
+ Actor::I_getNpcNum,
+ Item::I_andStatus,
+ Actor::I_getNpcNum,
+ Item::I_andStatus,
+ Actor::I_getNpcNum,
+ Item::I_fireDistance,
+ Item::I_andStatus,
+ Item::I_hurl,
+ Item::I_andStatus,
+ CameraProcess::I_getCameraY,
+ CameraProcess::I_getCameraZ,
+ Actor::I_clrInCombat,
+ Item::I_getTypeFlag,
+ Actor::I_getNpcNum,
+ Item::I_hurl,
+ Item::I_getCY,
+ Item::I_getCZ,
+ Item::I_setFrame,
+ 0,
+};
+
} // End of namespace Ultima8
} // End of namespace Ultima
More information about the Scummvm-git-logs
mailing list