[Scummvm-git-logs] scummvm master -> 1912bb5a240613ed2a0a48ee204d7ca767972cd8
mduggan
mgithub at guarana.org
Sat Sep 26 01:09:30 UTC 2020
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
1912bb5a24 ULTIMA8: A little more crusader intrinsic work
Commit: 1912bb5a240613ed2a0a48ee204d7ca767972cd8
https://github.com/scummvm/scummvm/commit/1912bb5a240613ed2a0a48ee204d7ca767972cd8
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2020-09-26T10:08:42+09:00
Commit Message:
ULTIMA8: A little more crusader intrinsic work
Changed paths:
engines/ultima/ultima8/convert/crusader/convert_usecode_crusader.h
engines/ultima/ultima8/convert/crusader/convert_usecode_regret.h
engines/ultima/ultima8/usecode/regret_intrinsics.h
engines/ultima/ultima8/world/item.cpp
diff --git a/engines/ultima/ultima8/convert/crusader/convert_usecode_crusader.h b/engines/ultima/ultima8/convert/crusader/convert_usecode_crusader.h
index 211f2c9095..d6166c480f 100644
--- a/engines/ultima/ultima8/convert/crusader/convert_usecode_crusader.h
+++ b/engines/ultima/ultima8/convert/crusader/convert_usecode_crusader.h
@@ -47,7 +47,7 @@ const char* const ConvertUsecodeCrusader::_intrinsics[] = {
"int16 Item::I_getMapArray(Item *)", // See TRIGGER::ordinal21 - stored in a variable 'mapNum'
"int16 Item::I_getStatus(Item *)",
"void Item::I_orStatus(Item *, uint16 flags)",
- "int16 Item::I_equip(6 bytes)", // same coff as 0B5 - TODO: confirm this
+ "int16 Item::I_equip(6 bytes)", // same coff as 0B5
"byte Item::I_isOnScreen(Item *)", // called for gattling guns and camera
"byte Actor::I_isNPC(Item *)", // proably - actually checks is itemno < 256?
"byte Item::I_getZ(Item *)",
diff --git a/engines/ultima/ultima8/convert/crusader/convert_usecode_regret.h b/engines/ultima/ultima8/convert/crusader/convert_usecode_regret.h
index 9e401e4103..de41665525 100644
--- a/engines/ultima/ultima8/convert/crusader/convert_usecode_regret.h
+++ b/engines/ultima/ultima8/convert/crusader/convert_usecode_regret.h
@@ -53,7 +53,7 @@ const char* const ConvertUsecodeRegret::_intrinsics[] = {
"World::I_gameDifficulty()",
"Item::getQLo(void)",
"Item::destroy(void)",
- "Intrinsic000D()",
+ "Actor::I_getField0x81()", // same as field 0x63 in No Remorse
"Item::getX(void)",
"Item::getY(void)",
// 0010
@@ -66,7 +66,7 @@ const char* const ConvertUsecodeRegret::_intrinsics[] = {
"World::I_getControlledNPCNum()",
"Actor::I_getDir()",
"Actor::I_getLastAnimSet()",
- "Intrinsic0019()",
+ "Item::I_fireWeapon()",
"Item::create(uint16,uint16)",
"Item::popToCoords(uint16,uint16,uint8)",
"Actor::I_setDead()",
@@ -94,10 +94,10 @@ const char* const ConvertUsecodeRegret::_intrinsics[] = {
"Actor::I_getMana()",
"Item::getFamily(void)",
"Actor::destroyContents(void)",
- "Intrinsic0033()",
+ "AudioProcess::I_setVolumeForItemSFX(uint16,uint16,byte)",
"Item::getDirToItem(uint16)",
"Intrinsic0035()",
- "Intrinsic0036()",
+ "Item::I_getRangeIfVisible()",
"udioProcess::I_playSFXCru()",
"Item::andStatus(void)",
"Kernel::resetRef(uint16,ProcessType)",
@@ -125,11 +125,11 @@ const char* const ConvertUsecodeRegret::_intrinsics[] = {
"Actor::isDead(void)",
"Actor::I_clrInCombat()",
// 0050
- "Actor::I_setDefaultActivity0",
- "Actor::I_setDefaultActivity1",
- "Actor::I_setDefaultActivity2",
- "Actor::I_setActivity",
- "World::I_setControlledNPCNum",
+ "Actor::I_setDefaultActivity0()",
+ "Actor::I_setDefaultActivity1()",
+ "Actor::I_setDefaultActivity2()",
+ "Actor::I_setActivity()",
+ "World::I_setControlledNPCNum()",
"Intrinsic0055()",
"Game::I_isReleaseBuild()",
"MainActor::I_setMana()",
@@ -143,7 +143,7 @@ const char* const ConvertUsecodeRegret::_intrinsics[] = {
"Ultima8Engine::I_setAvatarInStasis()",
// 0060
"Actor::I_isBusy()",
- "Intrinsic0061()",
+ "Actor::I_getField0x13Flag2()",
"Actor::I_doAnim()",
"Item::legalCreateAtPoint(uint16,uint16,WorldPoint&)",
"Item::getPoint(WorldPoint&)",
@@ -197,7 +197,7 @@ const char* const ConvertUsecodeRegret::_intrinsics[] = {
"Item::setMapNum(sint16)",
"Item::getNpcNum(void)",
"Item::shoot(WorldPoint&,sint16,sint16)",
- "Intrinsic0094()",
+ "CameraProcess::I_setCenterOn()",
"Item::enterFastArea(void)",
"Item::setBroken()",
"Item::hurl(sint16,sint16,sint16,sint16)",
@@ -223,7 +223,7 @@ const char* const ConvertUsecodeRegret::_intrinsics[] = {
"Item::isOn(uint16)",
"Actor::isDead(void)",
"Item::hurl(sint16,sint16,sint16,sint16)",
- "Intrinsic00AD()",
+ "Item::I_inFastArea()",
"Item::getQHi(void)",
"Item::andStatus(void)",
// 00B0
@@ -252,7 +252,7 @@ const char* const ConvertUsecodeRegret::_intrinsics[] = {
"Item::setQuality(sint16)",
"Item::hurl(sint16,sint16,sint16,sint16)",
"Actor::I_addHp()",
- "Intrinsic00C8()",
+ "CruHealerProcess::I_create()",
"Item::callEvent0A(sint16)",
"Item::setBroken()",
"Item::isOn(uint16)",
@@ -309,7 +309,7 @@ const char* const ConvertUsecodeRegret::_intrinsics[] = {
"Dtable::I_getMaxHPForNPC()",
"Actor::I_setHP()",
"Item::getQLo(void)",
- "Intrinsic00FE()",
+ "BatteryChargerProcess::I_create()",
"Item::hurl(sint16,sint16,sint16,sint16)",
// 0100
"Item::andStatus(void)",
diff --git a/engines/ultima/ultima8/usecode/regret_intrinsics.h b/engines/ultima/ultima8/usecode/regret_intrinsics.h
index 39bfb2ae97..679309426a 100644
--- a/engines/ultima/ultima8/usecode/regret_intrinsics.h
+++ b/engines/ultima/ultima8/usecode/regret_intrinsics.h
@@ -57,7 +57,7 @@ Intrinsic RegretIntrinsics[] = {
World::I_getControlledNPCNum, // Intrinsic016()
Actor::I_getDir, // Intrinsic017()
Actor::I_getLastAnimSet, // Intrinsic018()
- 0, // Intrinsic019()
+ Item::I_fireWeapon, // Intrinsic019()
Item::I_create, // Intrinsic01A()
Item::I_popToCoords, // Intrinsic01B()
Actor::I_setDead, // Intrinsic01C()
@@ -85,10 +85,10 @@ Intrinsic RegretIntrinsics[] = {
MainActor::I_getMana, // Intrinsic030()
Item::I_getFamily, // Intrinsic031()
Actor::I_destroyContents, // Intrinsic032()
- 0, // Intrinsic033()
+ 0, // Intrinsic033() Item::I_SetVolumeForItemSFX
Item::I_getDirToItem, // Intrinsic034()
0, // Intrinsic035()
- 0, // Intrinsic036()
+ Item::I_getRangeIfVisible, // Intrinsic036()
AudioProcess::I_playSFXCru, // Intrinsic037() TODO: Not exactly the same.
Item::I_andStatus, // Intrinsic038()
Kernel::I_resetRef, // Intrinsic039()
@@ -121,7 +121,7 @@ Intrinsic RegretIntrinsics[] = {
Actor::I_setDefaultActivity2, // Intrinsic052()
Actor::I_setActivity, // Intrinsic053()
World::I_setControlledNPCNum, // Intrinsic054()
- 0, // Intrinsic055()
+ Item::I_receiveHit, // Intrinsic055()
UCMachine::I_true, // Actually Game::I_isReleaseBuild
MainActor::I_setMana, // Intrinsic057()
Item::I_use, // Intrinsic058()
@@ -243,7 +243,7 @@ Intrinsic RegretIntrinsics[] = {
Item::I_setQuality, // Intrinsic0C5()
Item::I_hurl, // Intrinsic0C6()
Actor::I_addHp, // Intrinsic0C7()
- 0, // Intrinsic0C8()
+ CruHealerProcess::I_create, // Intrinsic0C8()
Item::I_equip, // Intrinsic0C9()
Item::I_setBroken, // Intrinsic0CA()
Item::I_isOn, // Intrinsic0CB()
@@ -300,7 +300,7 @@ Intrinsic RegretIntrinsics[] = {
0, // DTable::I_getMaxHPForNPC()
Actor::I_setHp, // Intrinsic0FC()
Item::I_getQLo, // Intrinsic0FD()
- 0, // Intrinsic0FE()
+ BatteryChargerProcess::I_create, // Intrinsic0FE()
Item::I_hurl, // Intrinsic0FF()
// 0100
Item::I_andStatus, // Intrinsic100()
@@ -355,7 +355,7 @@ Intrinsic RegretIntrinsics[] = {
Item::I_andStatus, // Intrinsic12F()
// 0130
Actor::I_getNpcNum, // Intrinsic130()
- 0, // Intrinsic131()
+ 0, // Intrinsic131() - same as Intrinsic 116 in No Remorse
Item::I_andStatus, // Intrinsic132()
Item::I_hurl, // Intrinsic133()
Item::I_andStatus, // Intrinsic134()
diff --git a/engines/ultima/ultima8/world/item.cpp b/engines/ultima/ultima8/world/item.cpp
index 2cd989faca..c9f813024b 100644
--- a/engines/ultima/ultima8/world/item.cpp
+++ b/engines/ultima/ultima8/world/item.cpp
@@ -1160,6 +1160,9 @@ uint16 Item::fireWeapon(int32 x, int32 y, int32 z, Direction dir, int firetype,
if (!GAME_IS_CRUSADER)
return 0;
+ if (GAME_IS_REGRET)
+ warning("Item::fireWeapon: TODO: Update for Regret (different firetypes)");
+
static const uint32 BULLET_SPLASH_SHAPE = 0x1d9;
ix += x;
More information about the Scummvm-git-logs
mailing list