[Scummvm-git-logs] scummvm master -> b4a5b5db865381759a753927cb0b33d0863e7aeb

mduggan mgithub at guarana.org
Thu Sep 17 11:09:17 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:
b4a5b5db86 ULTIMA8: More work on No Regret intrinsics


Commit: b4a5b5db865381759a753927cb0b33d0863e7aeb
    https://github.com/scummvm/scummvm/commit/b4a5b5db865381759a753927cb0b33d0863e7aeb
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2020-09-17T20:08:56+09:00

Commit Message:
ULTIMA8: More work on No Regret intrinsics

Changed paths:
    engines/ultima/ultima8/usecode/regret_intrinsics.h
    engines/ultima/ultima8/usecode/remorse_intrinsics.h
    engines/ultima/ultima8/world/actors/actor.cpp


diff --git a/engines/ultima/ultima8/usecode/regret_intrinsics.h b/engines/ultima/ultima8/usecode/regret_intrinsics.h
index 994dc17504..4047d50650 100644
--- a/engines/ultima/ultima8/usecode/regret_intrinsics.h
+++ b/engines/ultima/ultima8/usecode/regret_intrinsics.h
@@ -31,7 +31,7 @@ namespace Ultima8 {
 
 // Crusader: No Regret Intrinsics
 Intrinsic RegretIntrinsics[] = {
-	0, // Intrinsic000()
+	World::I_getAlertActive, // Intrinsic000()
 	Item::I_getFrame, // Intrinsic001()
 	Item::I_setFrame, // Intrinsic002()
 	Item::I_getMapArray, // Intrinsic003()
@@ -41,7 +41,7 @@ Intrinsic RegretIntrinsics[] = {
 	Item::I_isOnScreen, // Intrinsic007()
 	Actor::I_isNPC, // Intrinsic008()
 	Item::I_getZ, // Intrinsic009()
-	0, // Intrinsic00A()
+	World::I_gameDifficulty, // Intrinsic00A()
 	Item::I_getQLo, // Intrinsic00B()
 	Item::I_destroy, // Intrinsic00C()
 	0, // Intrinsic00D()
@@ -50,39 +50,39 @@ Intrinsic RegretIntrinsics[] = {
 	// 0010
 	AudioProcess::I_playSFXCru, // Intrinsic010()
 	Item::I_getShape, // Intrinsic011()
-	0, // Intrinsic012()
-	0, // Intrinsic013()
+	Item::I_explode, // Intrinsic012()
+	UCMachine::I_rndRange, // Intrinsic013()
 	Item::I_legalCreateAtCoords, // Intrinsic014()
 	Item::I_andStatus, // Intrinsic015()
-	0, // Intrinsic016()
-	0, // Intrinsic017()
-	0, // Intrinsic018()
+	World::I_getControlledNPCNum, // Intrinsic016()
+	Actor::I_getDir, // Intrinsic017()
+	Actor::I_getLastAnimSet, // Intrinsic018()
 	0, // Intrinsic019()
 	Item::I_create, // Intrinsic01A()
 	Item::I_popToCoords, // Intrinsic01B()
-	0, // Intrinsic01C()
+	Actor::I_setDead, // Intrinsic01C()
 	Item::I_push, // Intrinsic01D()
-	0, // Intrinsic01E()
+	Item::I_getEtherealTop, // Intrinsic01E()
 	Item::I_getQLo, // Intrinsic01F()
 	// 0020
 	Item::I_setQLo, // Intrinsic020()
 	Item::I_getQHi, // Intrinsic021()
 	Item::I_setQHi, // Intrinsic022()
-	0, // Intrinsic023()
-	0, // Intrinsic024()
+	Item::I_getClosestDirectionInRange, // Intrinsic023()
+	Item::I_hurl, // Intrinsic024()
 	Item::I_getCY, // Intrinsic025()
 	Item::I_getCX, // Intrinsic026()
-	0, // Intrinsic027()
+	SpriteProcess::I_createSprite, // Intrinsic027()
 	Item::I_setNpcNum, // Intrinsic028()
 	0, // Intrinsic029()
 	Item::I_setShape, // Intrinsic02A()
 	Item::I_pop, // Intrinsic02B()
-	0, // Intrinsic02C()
+	AudioProcess::I_stopSFXCru, // Intrinsic02C(), I_stopAllSFXForItem
 	Item::I_isCompletelyOn, // Intrinsic02D()
 	Item::I_popToContainer, // Intrinsic02E()
-	0, // Intrinsic02F()
+	Actor::I_getHp, // Intrinsic02F()
 	// 0030
-	0, // Intrinsic030()
+	MainActor::I_getMana, // Intrinsic030()
 	Item::I_getFamily, // Intrinsic031()
 	Actor::I_destroyContents, // Intrinsic032()
 	0, // Intrinsic033()
@@ -95,11 +95,11 @@ Intrinsic RegretIntrinsics[] = {
 	Item::I_touch, // Intrinsic03A()
 	Egg::I_getEggId, // Intrinsic03B()
 	0, // Intrinsic03C()
-	0, // Intrinsic03D()
-	0, // Intrinsic03E()
+	Actor::I_getMap, // Intrinsic03D()
+	Item::I_cast, // Intrinsic03E()
 	0, // Intrinsic03F()
 	// 0040
-	0, // Intrinsic040()
+	AudioProcess::I_stopSFXCru, // Intrinsic040()
 	Item::I_isOn, // Intrinsic041()
 	Item::I_getQHi, // Intrinsic042()
 	Item::I_isOn, // Intrinsic043()
@@ -112,35 +112,35 @@ Intrinsic RegretIntrinsics[] = {
 	Item::I_getQHi, // Intrinsic04A()
 	Item::I_isOn, // Intrinsic04B()
 	Item::I_getQHi, // Intrinsic04C()
-	0, // Intrinsic04D()
+	Actor::I_getCurrentActivityNo, // Intrinsic04D()
 	Actor::I_isDead, // Intrinsic04E()
-	0, // Intrinsic04F()
+	Actor::I_clrInCombat, // Intrinsic04F()
 	// 0050
-	0, // Intrinsic050()
-	0, // Intrinsic051()
-	0, // Intrinsic052()
-	0, // Intrinsic053()
-	0, // Intrinsic054()
+	Actor::I_setDefaultActivity0, // Intrinsic050()
+	Actor::I_setDefaultActivity1, // Intrinsic051()
+	Actor::I_setDefaultActivity2, // Intrinsic052()
+	Actor::I_setActivity, // Intrinsic053()
+	World::I_setControlledNPCNum, // Intrinsic054()
 	0, // Intrinsic055()
-	0, // Intrinsic056()
-	0, // Intrinsic057()
+	UCMachine::I_true, // Actually Game::I_isReleaseBuild
+	MainActor::I_setMana, // Intrinsic057()
 	Item::I_use, // Intrinsic058()
 	0, // Intrinsic059()
 	0, // Intrinsic05A()
 	Item::I_getSurfaceWeight, // Intrinsic05B()
-	0, // Intrinsic05C()
+	Item::I_isCentreOn, // Intrinsic05C()
 	Item::I_setFrame, // Intrinsic05D()
-	0, // Intrinsic05E()
-	0, // Intrinsic05F()
+	Actor::I_getLastAnimSet, // Intrinsic05E()
+	Ultima8Engine::I_setAvatarInStasis, // Intrinsic05F()
 	// 0060
-	0, // Intrinsic060()
-	0, // Intrinsic061()
-	0, // Intrinsic062()
+	Actor::I_isBusy, // Intrinsic060()
+	0, // Actor::I_getField0x13Flag2()
+	Actor::I_doAnim, // Intrinsic062()
 	Item::I_legalCreateAtPoint, // Intrinsic063()
 	Item::I_getPoint, // Intrinsic064()
 	Item::I_legalMoveToPoint, // Intrinsic065()
 	Item::I_fall, // Intrinsic066()
-	0, // Intrinsic067()
+	Item::I_hurl, // Intrinsic067()
 	Kernel::I_getNumProcesses, // Intrinsic068()
 	Item::I_getCY, // Intrinsic069()
 	0, // Intrinsic06A()
@@ -157,47 +157,47 @@ Intrinsic RegretIntrinsics[] = {
 	Actor::I_isDead, // Intrinsic074()
 	Actor::I_getNpcNum, // Intrinsic075()
 	0, // Intrinsic076()
-	0, // Intrinsic077()
+	UCMachine::I_true, // Actually Game::I_isViolenceEnabled
 	Item::I_unequip, // Intrinsic078()
 	Item::I_andStatus, // Intrinsic079()
 	Item::I_move, // Intrinsic07A()
 	0, // Intrinsic07B()
 	0, // Intrinsic07C()
 	0, // Intrinsic07D()
-	0, // Intrinsic07E()
+	Actor::I_turnToward, // Intrinsic07E()
 	0, // Intrinsic07F()
 	// 0080
-	0, // Intrinsic080()
+	MainActor::I_clrKeycards, // Intrinsic080()
 	0, // Intrinsic081()
 	0, // Intrinsic082()
 	0, // Intrinsic083()
 	0, // Intrinsic084()
 	0, // Intrinsic085()
-	0, // Intrinsic086()
+	MainActor::I_teleportToEgg, // Intrinsic086()
 	0, // Intrinsic087()
-	0, // Intrinsic088()
-	0, // Intrinsic089()
+	Actor::I_clrImmortal, // Intrinsic088()
+	Actor::I_setActivity, // Intrinsic089()
 	Item::I_getQuality, // Intrinsic08A()
 	Item::I_setQuality, // Intrinsic08B()
-	0, // Intrinsic08C()
-	0, // Intrinsic08D()
-	0, // Intrinsic08E()
+	MainActor::I_getMaxEnergy, // Intrinsic08C()
+	CameraProcess::I_moveTo, // Intrinsic08D()
+	Actor::I_setImmortal, // Intrinsic08E()
 	CameraProcess::I_getCameraX, // Intrinsic08F()
 	// 0090
 	CameraProcess::I_getCameraY, // Intrinsic090()
 	Item::I_setMapArray, // Intrinsic091()
 	Actor::I_getNpcNum, // Intrinsic092()
 	0, // Intrinsic093()
-	0, // Intrinsic094()
+	CameraProcess::I_setCenterOn, // Intrinsic094()
 	Item::I_enterFastArea, // Intrinsic095()
 	Item::I_setBroken, // Intrinsic096()
-	0, // Intrinsic097()
+	Item::I_hurl, // Intrinsic097()
 	Actor::I_getNpcNum, // Intrinsic098()
-	0, // Intrinsic099()
-	0, // Intrinsic09A()
-	0, // Intrinsic09B()
-	0, // Intrinsic09C()
-	0, // Intrinsic09D()
+	Ultima8Engine::I_moveKeyDownRecently, // Intrinsic099()
+	MainActor::I_teleportToEgg, // Intrinsic09A()
+	Actor::I_createActor, // Intrinsic09B()
+	Actor::I_clrInCombat, // Intrinsic09C()
+	PaletteFaderProcess::I_jumpToGreyScale, // Intrinsic09D()
 	0, // Intrinsic09E()
 	0, // Intrinsic09F()
 	// 00A0
@@ -208,21 +208,21 @@ Intrinsic RegretIntrinsics[] = {
 	Item::I_overlaps, // Intrinsic0A4()
 	Item::I_isOn, // Intrinsic0A5()
 	Item::I_getQHi, // Intrinsic0A6()
-	0, // Intrinsic0A7()
+	Actor::I_getLastAnimSet, // Intrinsic0A7()
 	Item::I_getCY, // Intrinsic0A8()
 	0, // Intrinsic0A9()
 	Item::I_isOn, // Intrinsic0AA()
 	Actor::I_isDead, // Intrinsic0AB()
-	0, // Intrinsic0AC()
-	0, // Intrinsic0AD()
+	Item::I_hurl, // Intrinsic0AC()
+	Item::I_inFastArea, // Intrinsic0AD()
 	Item::I_getQHi, // Intrinsic0AE()
 	Item::I_andStatus, // Intrinsic0AF()
 	// 00B0
-	0, // Intrinsic0B0()
+	Item::I_hurl, // Intrinsic0B0()
 	Item::I_andStatus, // Intrinsic0B1()
-	0, // Intrinsic0B2()
+	Item::I_hurl, // Intrinsic0B2()
 	Item::I_andStatus, // Intrinsic0B3()
-	0, // Intrinsic0B4()
+	Item::I_getDirToCoords, // Intrinsic0B4()
 	0, // Intrinsic0B5()
 	0, // Intrinsic0B6()
 	Actor::I_getNpcNum, // Intrinsic0B7()
@@ -231,111 +231,111 @@ Intrinsic RegretIntrinsics[] = {
 	Item::I_getFootpadData, // Intrinsic0BA()
 	Actor::I_isDead, // Intrinsic0BB()
 	Actor::I_createActorCru, // Intrinsic0BC()
-	0, // Intrinsic0BD()
+	Actor::I_setActivity, // Intrinsic0BD()
 	0, // Intrinsic0BE()
 	Item::I_andStatus, // Intrinsic0BF()
 	// 00C0
 	0, // Intrinsic0C0()
-	0, // Intrinsic0C1()
+	UCMachine::I_numToStr, // Intrinsic0C1()
 	0, // Intrinsic0C2()
-	0, // Intrinsic0C3()
+	Actor::I_getDir, // Intrinsic0C3()
 	Item::I_getQHi, // Intrinsic0C4()
 	Item::I_setQuality, // Intrinsic0C5()
-	0, // Intrinsic0C6()
-	0, // Intrinsic0C7()
+	Item::I_hurl, // Intrinsic0C6()
+	Actor::I_addHp, // Intrinsic0C7()
 	0, // Intrinsic0C8()
 	Item::I_equip, // Intrinsic0C9()
 	Item::I_setBroken, // Intrinsic0CA()
 	Item::I_isOn, // Intrinsic0CB()
-	0, // Intrinsic0CC()
-	0, // Intrinsic0CD()
+	Actor::I_teleport, // Intrinsic0CC()
+	Item::I_getDirFromTo16, // Intrinsic0CD()
 	Item::I_getQHi, // Intrinsic0CE()
 	Item::I_isOn, // Intrinsic0CF()
 	// 00D0
-	0, // Intrinsic0D0()
-	0, // Intrinsic0D1()
-	0, // Intrinsic0D2()
-	0, // Intrinsic0D3()
+	Actor::I_isInCombat, // Intrinsic0D0()
+	0, // Actor::I_getNPCDataField0x4()
+	Actor::I_setCombatTactic, // Intrinsic0D2()
+	Actor::I_setDead, // Intrinsic0D3()
 	CameraProcess::I_getCameraY, // Intrinsic0D4()
-	0, // Intrinsic0D5()
-	0, // Intrinsic0D6()
-	0, // Intrinsic0D7()
-	0, // Intrinsic0D8()
-	0, // Intrinsic0D9()
-	0, // Intrinsic0DA()
-	0, // Intrinsic0DB()
+	Actor::I_getEquip, // Intrinsic0D5()
+	Actor::I_setEquip, // Intrinsic0D6()
+	Actor::I_getDefaultActivity0, // Intrinsic0D7()
+	Actor::I_getDefaultActivity1, // Intrinsic0D8()
+	Actor::I_getDefaultActivity2, // Intrinsic0D9()
+	Actor::I_getLastAnimSet, // Intrinsic0DA()
+	0, // Actor::GetFlag0x77Field1()
 	Item::I_getQLo, // Intrinsic0DC()
 	Item::I_getQHi, // Intrinsic0DD()
 	Actor::I_getNpcNum, // Intrinsic0DE()
 	0, // Intrinsic0DF()
 	// 00E0
-	0, // Intrinsic0E0()
-	0, // Intrinsic0E1()
+	Item::I_hurl, // Intrinsic0E0()
+	Actor::I_setDead, // Intrinsic0E1()
 	Item::I_getQLo, // Intrinsic0E2()
 	Item::I_getCY, // Intrinsic0E3()
 	Actor::I_getNpcNum, // Intrinsic0E4()
-	0, // Intrinsic0E5()
+	Item::I_hurl, // Intrinsic0E5()
 	Actor::I_getNpcNum, // Intrinsic0E6()
-	0, // Intrinsic0E7()
+	Item::I_hurl, // Intrinsic0E7()
 	Actor::I_getNpcNum, // Intrinsic0E8()
-	0, // Intrinsic0E9()
+	Item::I_hurl, // Intrinsic0E9()
 	Actor::I_getNpcNum, // Intrinsic0EA()
-	0, // Intrinsic0EB()
+	Item::I_hurl, // Intrinsic0EB()
 	Actor::I_getNpcNum, // Intrinsic0EC()
-	0, // Intrinsic0ED()
+	Item::I_hurl, // Intrinsic0ED()
 	Actor::I_getNpcNum, // Intrinsic0EE()
-	0, // Intrinsic0EF()
+	Item::I_hurl, // Intrinsic0EF()
 	// 00F0
 	Actor::I_getNpcNum, // Intrinsic0F0()
-	0, // Intrinsic0F1()
+	Item::I_hurl, // Intrinsic0F1()
 	Actor::I_getNpcNum, // Intrinsic0F2()
-	0, // Intrinsic0F3()
+	Item::I_hurl, // Intrinsic0F3()
 	Actor::I_getNpcNum, // Intrinsic0F4()
 	0, // Intrinsic0F5()
 	Actor::I_getNpcNum, // Intrinsic0F6()
 	Item::I_andStatus, // Intrinsic0F7()
-	0, // Intrinsic0F8()
+	Actor::I_setDead, // Intrinsic0F8()
 	Item::I_getQLo, // Intrinsic0F9()
-	0, // Intrinsic0FA()
-	0, // Intrinsic0FB()
-	0, // Intrinsic0FC()
+	Actor::I_setDead, // Intrinsic0FA()
+	0, // DTable::I_getMaxHPForNPC()
+	Actor::I_setHp, // Intrinsic0FC()
 	Item::I_getQLo, // Intrinsic0FD()
 	0, // Intrinsic0FE()
-	0, // Intrinsic0FF()
+	Item::I_hurl, // Intrinsic0FF()
 	// 0100
 	Item::I_andStatus, // Intrinsic100()
 	Item::I_isOn, // Intrinsic101()
 	Actor::I_isDead, // Intrinsic102()
-	0, // Intrinsic103()
+	Actor::I_setActivity, // Intrinsic103()
 	Item::I_getQHi, // Intrinsic104()
-	0, // Intrinsic105()
-	0, // Intrinsic106()
+	Actor::I_getLastAnimSet, // Intrinsic105()
+	Actor::I_setDead, // Intrinsic106()
 	Item::I_getQLo, // Intrinsic107()
 	Item::I_isOn, // Intrinsic108()
 	Item::I_getQHi, // Intrinsic109()
 	Item::I_isOn, // Intrinsic10A()
 	Item::I_getQHi, // Intrinsic10B()
-	0, // Intrinsic10C()
+	Item::I_hurl, // Intrinsic10C()
 	Actor::I_getNpcNum, // Intrinsic10D()
 	Item::I_getCY, // Intrinsic10E()
-	0, // Intrinsic10F()
+	Item::I_hurl, // Intrinsic10F()
 	// 0110
 	Item::I_isOn, // Intrinsic110()
-	0, // Intrinsic111()
+	MainActor::I_hasKeycard, // Intrinsic111()
 	0, // Intrinsic112()
 	Actor::I_isDead, // Intrinsic113()
-	0, // Intrinsic114()
-	0, // Intrinsic115()
+	Actor::I_clrImmortal, // Intrinsic114()
+	UCMachine::I_numToStr, // Intrinsic115()
 	Item::I_getQHi, // Intrinsic116()
-	0, // Intrinsic117()
+	Actor::I_setActivity, // Intrinsic117()
 	Item::I_andStatus, // Intrinsic118()
 	Actor::I_getNpcNum, // Intrinsic119()
 	Item::I_andStatus, // Intrinsic11A()
 	Actor::I_getNpcNum, // Intrinsic11B()
-	0, // Intrinsic11C()
+	Item::I_isCrusTypeNPC, // Intrinsic11C()
 	Item::I_andStatus, // Intrinsic11D()
 	Actor::I_getNpcNum, // Intrinsic11E()
-	0, // Intrinsic11F()
+	Item::I_avatarStoleSomething, // Intrinsic11F()
 	// 0120
 	Item::I_andStatus, // Intrinsic120()
 	Actor::I_getNpcNum, // Intrinsic121()
@@ -351,56 +351,56 @@ Intrinsic RegretIntrinsics[] = {
 	Actor::I_getNpcNum, // Intrinsic12B()
 	Item::I_andStatus, // Intrinsic12C()
 	Actor::I_getNpcNum, // Intrinsic12D()
-	0, // Intrinsic12E()
+	Actor::I_getDir, // Intrinsic12E()
 	Item::I_andStatus, // Intrinsic12F()
 	// 0130
 	Actor::I_getNpcNum, // Intrinsic130()
 	0, // Intrinsic131()
 	Item::I_andStatus, // Intrinsic132()
-	0, // Intrinsic133()
+	Item::I_hurl, // Intrinsic133()
 	Item::I_andStatus, // Intrinsic134()
 	CameraProcess::I_getCameraY, // Intrinsic135()
 	CameraProcess::I_getCameraZ, // Intrinsic136()
 	0, // Intrinsic137()
-	0, // Intrinsic138()
-	0, // Intrinsic139()
+	Actor::I_clrInCombat, // Intrinsic138()
+	Item::I_getTypeFlag, // Intrinsic139()
 	Actor::I_getNpcNum, // Intrinsic13A()
-	0, // Intrinsic13B()
+	Item::I_hurl, // Intrinsic13B()
 	Item::I_getCY, // Intrinsic13C()
 	Item::I_getCZ, // Intrinsic13D()
 	Item::I_setFrame, // Intrinsic13E()
 	0, // Intrinsic13F()
 	// 0140
 	0, // Intrinsic140()
-	0, // Intrinsic141()
+	0, // TODO: World::I_clrAlertActive, but not the same as remorse
 	0, // Intrinsic142()
 	Actor::I_isDead, // Intrinsic143()
-	0, // Intrinsic144()
+	Actor::I_setDead, // Intrinsic144()
 	0, // Intrinsic145()
 	0, // Intrinsic146()
-	0, // Intrinsic147()
+	Item::I_getFamilyOfType, // Intrinsic147()
 	Actor::I_getNpcNum, // Intrinsic148()
 	Item::I_getQLo, // Intrinsic149()
 	Item::I_andStatus, // Intrinsic14A()
 	Ultima8Engine::I_getCurrentTimerTick, // Intrinsic14B()
-	0, // Intrinsic14C()
-	0, // Intrinsic14D()
+	0, // TODO: World::I_setAlertActive, but not the same as remorse
+	Ultima8Engine::I_getAvatarInStasis, // Intrinsic14D()
 	0, // Intrinsic14E()
 	Egg::I_getEggXRange, // Intrinsic14F()
 	// 0150
-	0, // Intrinsic150()
+	Actor::I_clrInCombat, // Intrinsic150()
 	0, // Intrinsic151()
 	Item::I_setFrame, // Intrinsic152()
-	0, // Intrinsic153()
-	0, // Intrinsic154()
-	0, // Intrinsic155()
+	UCMachine::I_numToStr, // Intrinsic153()
+	Actor::I_getDir, // Intrinsic154()
+	UCMachine::I_numToStr, // Intrinsic155()
 	Item::I_isOn, // Intrinsic156()
-	0, // Intrinsic157()
-	0, // Intrinsic158()
+	Actor::I_getDir, // Intrinsic157()
+	Actor::I_setDead, // Intrinsic158()
 	Item::I_getQHi, // Intrinsic159()
 	Item::I_getQLo, // Intrinsic15A()
-	0, // Intrinsic15B()
-	0, // Intrinsic15C()
+	UCMachine::I_numToStr, // Intrinsic15B()
+	Actor::I_getDir, // Intrinsic15C()
 	0  // Intrinsic15D()
 };
 
diff --git a/engines/ultima/ultima8/usecode/remorse_intrinsics.h b/engines/ultima/ultima8/usecode/remorse_intrinsics.h
index 666fc1494a..3f0db04185 100644
--- a/engines/ultima/ultima8/usecode/remorse_intrinsics.h
+++ b/engines/ultima/ultima8/usecode/remorse_intrinsics.h
@@ -60,7 +60,7 @@ Intrinsic RemorseIntrinsics[] = {
 	AudioProcess::I_playSFXCru,
 	Item::I_getShape,
 	Item::I_explode, // void Intrinsic017(8 bytes)
-	UCMachine::I_rndRange, // int16 Intrinsic018(4 bytes) // probably.. always called with 2 constants, then result compared to some number between
+	UCMachine::I_rndRange, // int16 Intrinsic018(4 bytes)
 	Item::I_legalCreateAtCoords, // byte Intrinsic019(14 bytes)
 	Item::I_andStatus, // void Intrinsic01A(6 bytes)
 	World::I_getControlledNPCNum,  // int16 Intrinsic01B(void)
diff --git a/engines/ultima/ultima8/world/actors/actor.cpp b/engines/ultima/ultima8/world/actors/actor.cpp
index bff7d85737..f42dd51d60 100644
--- a/engines/ultima/ultima8/world/actors/actor.cpp
+++ b/engines/ultima/ultima8/world/actors/actor.cpp
@@ -680,8 +680,12 @@ uint16 Actor::setActivityCru(int activity) {
 	case 0xb:
 	case 0xc:
 		// attack
-	   setInCombat();
-	   return 0;
+		setInCombat();
+		return 0;
+	case 0xd:
+		// Only in No Regret
+		perr << "Actor::setActivityCru: TODO: RollingThunderProcess (" << activity << ")";
+		return doAnim(Animation::stand, dir_current);
 	case 0x70:
 		return setActivity(getDefaultActivity(0));
 	case 0x71:




More information about the Scummvm-git-logs mailing list