[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