Move Damage to Game/ and add more DamageInfoMgr members

Damage stuff seems to be considered game code rather than KingSystem
code based on the function order in the executable and on the fact
that the Damage code uses other components that are known to be
in Game/U-King rather than in KingSystem.
This commit is contained in:
Léo Lam 2021-01-22 16:52:26 +01:00
parent 0d9117c1b8
commit 5328fd2782
No known key found for this signature in database
GPG Key ID: 0DF30F9081000741
12 changed files with 149 additions and 126 deletions

View File

@ -210,33 +210,33 @@
0x0000007100003f48,DamageMgrBow::m54,164,
0x0000007100003fec,DamageMgrBow::m0,132,
0x0000007100004070,DamageMgrBow::m1,92,
0x00000071000040cc,DamageMgrBase::m2_null,4,_ZN4ksys3dmg17DamageManagerBaseD2Ev
0x00000071000040cc,DamageMgrBase::m2_null,4,_ZN5uking3dmg17DamageManagerBaseD2Ev
0x00000071000040d0,j__ZdlPv_0,4,
0x00000071000040d4,DamageMgrBase::m5,8,_ZN4ksys3dmg17DamageManagerBase10getField48Ev
0x00000071000040dc,DamageMgrBase::getMinDmg,8,_ZN4ksys3dmg17DamageManagerBase9getMinDmgEv
0x00000071000040e4,DamageMgrBase::m7,8,_ZN4ksys3dmg17DamageManagerBase10getField50Ev
0x00000071000040ec,DamageMgrBase::m9,8,_ZN4ksys3dmg17DamageManagerBase16checkDamageFlagsEv
0x00000071000040f4,DamageMgrBase::m10,8,_ZN4ksys3dmg17DamageManagerBase9getFlags2Ev
0x00000071000040fc,DamageMgrBase::m13,8,_ZN4ksys3dmg17DamageManagerBase3m13Ev
0x0000007100004104,DamageMgrBase::m14,8,_ZN4ksys3dmg17DamageManagerBase3m14Ev
0x000000710000410c,DamageMgrBase::m16,8,_ZN4ksys3dmg17DamageManagerBase3m16Ev
0x0000007100004114,DamageMgrBase::m17_null,4,_ZN4ksys3dmg17DamageManagerBase3m17Ev
0x00000071000040d4,DamageMgrBase::m5,8,_ZN5uking3dmg17DamageManagerBase10getField48Ev
0x00000071000040dc,DamageMgrBase::getMinDmg,8,_ZN5uking3dmg17DamageManagerBase9getMinDmgEv
0x00000071000040e4,DamageMgrBase::m7,8,_ZN5uking3dmg17DamageManagerBase10getField50Ev
0x00000071000040ec,DamageMgrBase::m9,8,_ZN5uking3dmg17DamageManagerBase16checkDamageFlagsEv
0x00000071000040f4,DamageMgrBase::m10,8,_ZN5uking3dmg17DamageManagerBase9getFlags2Ev
0x00000071000040fc,DamageMgrBase::m13,8,_ZN5uking3dmg17DamageManagerBase3m13Ev
0x0000007100004104,DamageMgrBase::m14,8,_ZN5uking3dmg17DamageManagerBase3m14Ev
0x000000710000410c,DamageMgrBase::m16,8,_ZN5uking3dmg17DamageManagerBase3m16Ev
0x0000007100004114,DamageMgrBase::m17_null,4,_ZN5uking3dmg17DamageManagerBase3m17Ev
0x0000007100004118,DamageMgrBow::m18,8,
0x0000007100004120,DamageMgrBase::initCallbacks,8,_ZN4ksys3dmg17DamageManagerBase13initCallbacksEPN4sead4HeapE
0x0000007100004128,DamageMgrBase::m21_null,4,_ZN4ksys3dmg17DamageManagerBase10preDelete2Ev
0x000000710000412c,DamageMgrBase::m25,8,_ZN4ksys3dmg17DamageManagerBase3m25Ev
0x0000007100004134,DamageMgrBase::m26,8,_ZN4ksys3dmg17DamageManagerBase3m26Ev
0x000000710000413c,DamageMgrBase::m31,8,_ZN4ksys3dmg17DamageManagerBase3m31Ev
0x0000007100004144,DamageMgrBase::m32,8,_ZN4ksys3dmg17DamageManagerBase3m32Ev
0x000000710000414c,DamageMgrBase::m34,8,_ZN4ksys3dmg17DamageManagerBase26tgSensorMaterialOnHitMaybeEv
0x0000007100004154,DamageMgrBase::m35,8,_ZN4ksys3dmg17DamageManagerBase3m35Ev
0x000000710000415c,DamageMgrBase::m38,8,_ZN4ksys3dmg17DamageManagerBase3m38Ev
0x0000007100004164,DamageMgrBase::m40,8,_ZN4ksys3dmg17DamageManagerBase3m40Ev
0x000000710000416c,DamageMgrBase::m41,8,_ZN4ksys3dmg17DamageManagerBase3m41Ev
0x0000007100004174,DamageMgrBase::m42,8,_ZN4ksys3dmg17DamageManagerBase3m42Ev
0x000000710000417c,DamageMgrBase::m43_null,4,_ZN4ksys3dmg17DamageManagerBase3m43Ev
0x0000007100004120,DamageMgrBase::initCallbacks,8,_ZN5uking3dmg17DamageManagerBase13initCallbacksEPN4sead4HeapE
0x0000007100004128,DamageMgrBase::m21_null,4,_ZN5uking3dmg17DamageManagerBase10preDelete2Ev
0x000000710000412c,DamageMgrBase::m25,8,_ZN5uking3dmg17DamageManagerBase3m25Ev
0x0000007100004134,DamageMgrBase::m26,8,_ZN5uking3dmg17DamageManagerBase3m26Ev
0x000000710000413c,DamageMgrBase::m31,8,_ZN5uking3dmg17DamageManagerBase3m31Ev
0x0000007100004144,DamageMgrBase::m32,8,_ZN5uking3dmg17DamageManagerBase3m32Ev
0x000000710000414c,DamageMgrBase::m34,8,_ZN5uking3dmg17DamageManagerBase26tgSensorMaterialOnHitMaybeEv
0x0000007100004154,DamageMgrBase::m35,8,_ZN5uking3dmg17DamageManagerBase3m35Ev
0x000000710000415c,DamageMgrBase::m38,8,_ZN5uking3dmg17DamageManagerBase3m38Ev
0x0000007100004164,DamageMgrBase::m40,8,_ZN5uking3dmg17DamageManagerBase3m40Ev
0x000000710000416c,DamageMgrBase::m41,8,_ZN5uking3dmg17DamageManagerBase3m41Ev
0x0000007100004174,DamageMgrBase::m42,8,_ZN5uking3dmg17DamageManagerBase3m42Ev
0x000000710000417c,DamageMgrBase::m43_null,4,_ZN5uking3dmg17DamageManagerBase3m43Ev
0x0000007100004180,DamageMgr::m44,8,
0x0000007100004188,DamageMgrBase::onApplyDamage,4,_ZN4ksys3dmg17DamageManagerBase13onApplyDamageEv
0x0000007100004188,DamageMgrBase::onApplyDamage,4,_ZN5uking3dmg17DamageManagerBase13onApplyDamageEv
0x000000710000418c,DamageMgrBow::m51,8,
0x0000007100004194,DamageMgrBow::m52,8,
0x000000710000419c,DamageMgrBow::m53,8,
@ -639,11 +639,11 @@
0x000000710001bd9c,DamageMgrWeapon::rtti1,288,
0x000000710001bebc,sub_710001BEBC,92,
0x000000710001bf18,j__ZdlPv_12,4,
0x000000710001bf1c,DamageMgrBase::m18,8,_ZN4ksys3dmg17DamageManagerBase15getNumCallbacksEv
0x000000710001bf24,DamageMgrBase::m22_null,4,_ZN4ksys3dmg17DamageManagerBase3m22Ev
0x000000710001bf28,DamageMgrBase::m27,8,_ZN4ksys3dmg17DamageManagerBase11getPositionEv
0x000000710001bf30,DamageMgrBase::m28,8,_ZN4ksys3dmg17DamageManagerBase3m28Ev
0x000000710001bf38,DamageMgrBase::m33,8,_ZN4ksys3dmg17DamageManagerBase3m33Ev
0x000000710001bf1c,DamageMgrBase::m18,8,_ZN5uking3dmg17DamageManagerBase15getNumCallbacksEv
0x000000710001bf24,DamageMgrBase::m22_null,4,_ZN5uking3dmg17DamageManagerBase3m22Ev
0x000000710001bf28,DamageMgrBase::m27,8,_ZN5uking3dmg17DamageManagerBase11getPositionEv
0x000000710001bf30,DamageMgrBase::m28,8,_ZN5uking3dmg17DamageManagerBase3m28Ev
0x000000710001bf38,DamageMgrBase::m33,8,_ZN5uking3dmg17DamageManagerBase3m33Ev
0x000000710001bf40,nullsub_55,4,
0x000000710001bf44,sub_710001BF44,8,
0x000000710001bf4c,DamageMgrWeapon::m52,8,
@ -40168,9 +40168,9 @@
0x0000007100670fe4,sub_7100670FE4,960,
0x00000071006713a4,sub_71006713A4,656,
0x0000007100671634,sub_7100671634,8,
0x000000710067163c,_ZN3agl3utl23DynamicTextureAllocator18SingletonDisposer_D2Ev,100,
0x00000071006716a0,sub_71006716A0,108,
0x000000710067170c,DamageInfoMgr::createInstance,136,
0x000000710067163c,_ZN5uking3dmg13DamageInfoMgr18SingletonDisposer_D2Ev,100,_ZN5uking3dmg13DamageInfoMgr18SingletonDisposer_D2Ev
0x00000071006716a0,sub_71006716A0,108,_ZN5uking3dmg13DamageInfoMgr18SingletonDisposer_D0Ev
0x000000710067170c,DamageInfoMgr::createInstance,136,_ZN5uking3dmg13DamageInfoMgr14createInstanceEPN4sead4HeapE
0x0000007100671794,sub_7100671794,684,
0x0000007100671a40,sub_7100671A40,36,
0x0000007100671a64,sub_7100671A64,16,
@ -45002,7 +45002,7 @@
0x00000071006d8be4,DamageMgr::m55,516,
0x00000071006d8de8,sub_71006D8DE8,148,
0x00000071006d8e7c,sub_71006D8E7C,68,
0x00000071006d8ec0,sub_71006D8EC0,244,_ZN4ksys3dmg10Struct20_212combineMaybeEPNS0_12Struct20BaseE
0x00000071006d8ec0,sub_71006D8EC0,244,_ZN5uking3dmg10Struct20_212combineMaybeEPNS0_12Struct20BaseE
0x00000071006d8fb4,DamageMgr::rtti0,288,
0x00000071006d90d4,DamageMgr::rtti2,92,
0x00000071006d9130,DamageMgr::m2,212,
@ -45014,10 +45014,10 @@
0x00000071006d9310,DamageMgr::m53,8,
0x00000071006d9318,sub_71006D9318,212,
0x00000071006d93ec,sub_71006D93EC,224,
0x00000071006d94cc,sub_71006D94CC,288,_ZNK4ksys3dmg10Struct20_227checkDerivedRuntimeTypeInfoEPKN4sead15RuntimeTypeInfo9InterfaceE
0x00000071006d95ec,sub_71006D95EC,92,_ZNK4ksys3dmg10Struct20_218getRuntimeTypeInfoEv
0x00000071006d9648,j__ZdlPv_292,4,_ZN4ksys3dmg10Struct20_2D0Ev
0x00000071006d964c,sub_71006D964C,24,_ZN4ksys3dmg10Struct20_25resetEv
0x00000071006d94cc,sub_71006D94CC,288,_ZNK5uking3dmg10Struct20_227checkDerivedRuntimeTypeInfoEPKN4sead15RuntimeTypeInfo9InterfaceE
0x00000071006d95ec,sub_71006D95EC,92,_ZNK5uking3dmg10Struct20_218getRuntimeTypeInfoEv
0x00000071006d9648,j__ZdlPv_292,4,_ZN5uking3dmg10Struct20_2D0Ev
0x00000071006d964c,sub_71006D964C,24,_ZN5uking3dmg10Struct20_25resetEv
0x00000071006d9664,j__ZdlPv_293,4,
0x00000071006d9668,sub_71006D9668,8,
0x00000071006d9670,j__ZdlPv_294,4,
@ -45026,12 +45026,12 @@
0x00000071006d9748,sub_71006D9748,92,
0x00000071006d97a4,sub_71006D97A4,112,
0x00000071006d9814,sub_71006D9814,92,
0x00000071006d9870,Struct20::m2,20,_ZN4ksys3dmg8Struct20D2Ev
0x00000071006d9870,Struct20::m2,20,_ZN5uking3dmg8Struct20D2Ev
0x00000071006d9884,j__ZdlPv_295,4,
0x00000071006d9888,nullsub_2287,4,
0x00000071006d988c,nullsub_2288,4,
0x00000071006d9890,_ZNK4sead15RuntimeTypeInfo6DeriveIN4ksys3dmg8Struct20EE9isDerivedEPKNS0_9InterfaceE,140,_ZNK4sead15RuntimeTypeInfo6DeriveIN4ksys3dmg8Struct20EE9isDerivedEPKNS0_9InterfaceE
0x00000071006d991c,_ZNK4sead15RuntimeTypeInfo6DeriveIN4ksys3dmg12Struct20BaseEE9isDerivedEPKNS0_9InterfaceE,140,_ZNK4sead15RuntimeTypeInfo6DeriveIN4ksys3dmg12Struct20BaseEE9isDerivedEPKNS0_9InterfaceE
0x00000071006d9890,_ZNK4sead15RuntimeTypeInfo6DeriveIN5uking3dmg8Struct20EE9isDerivedEPKNS0_9InterfaceE,140,_ZNK4sead15RuntimeTypeInfo6DeriveIN5uking3dmg8Struct20EE9isDerivedEPKNS0_9InterfaceE
0x00000071006d991c,_ZNK4sead15RuntimeTypeInfo6DeriveIN5uking3dmg12Struct20BaseEE9isDerivedEPKNS0_9InterfaceE,140,_ZNK4sead15RuntimeTypeInfo6DeriveIN5uking3dmg12Struct20BaseEE9isDerivedEPKNS0_9InterfaceE
0x00000071006d99a8,sub_71006D99A8,76,
0x00000071006d99f4,sub_71006D99F4,48,
0x00000071006d9a24,sub_71006D9A24,268,
@ -45166,21 +45166,21 @@
0x00000071006dfcb0,nullsub_2297,4,
0x00000071006dfcb4,nullsub_2298,4,
0x00000071006dfcb8,nullsub_2299,4,
0x00000071006dfcbc,DamageMgrBase::allocStruct20,132,_ZN4ksys3dmg17DamageManagerBase13allocStruct20EPN4sead4HeapE
0x00000071006dfd40,DamageMgrBase::m24,76,_ZN4ksys3dmg17DamageManagerBase10preDelete1Ev
0x00000071006dfd8c,DamageMgrBase::ctor,76,_ZN4ksys3dmg17DamageManagerBaseC1EPNS_3act5ActorE?
0x00000071006dfcbc,DamageMgrBase::allocStruct20,132,_ZN5uking3dmg17DamageManagerBase13allocStruct20EPN4sead4HeapE
0x00000071006dfd40,DamageMgrBase::m24,76,_ZN5uking3dmg17DamageManagerBase10preDelete1Ev
0x00000071006dfd8c,DamageMgrBase::ctor,76,_ZN5uking3dmg17DamageManagerBaseC1EPN4ksys3act5ActorE?
0x00000071006dfdd8,DamageMgrBase::m20,96,
0x00000071006dfe38,DamageMgrBase::resetStuff,20,
0x00000071006dfe4c,DamageMgrBase::applyDamage,500,_ZN4ksys3dmg17DamageManagerBase11applyDamageERi!
0x00000071006e0040,DamageMgrBase::m46,204,_ZN4ksys3dmg17DamageManagerBase21handleDamageForPlayerEPjS2_S2_S2_S2_
0x00000071006e010c,DamageMgrBase::addDamage,72,_ZN4ksys3dmg17DamageManagerBase9addDamageEliiiiii
0x00000071006dfe4c,DamageMgrBase::applyDamage,500,_ZN5uking3dmg17DamageManagerBase11applyDamageERi!
0x00000071006e0040,DamageMgrBase::m46,204,_ZN5uking3dmg17DamageManagerBase21handleDamageForPlayerEPjS2_S2_S2_S2_
0x00000071006e010c,DamageMgrBase::addDamage,72,_ZN5uking3dmg17DamageManagerBase9addDamageEliiiiii
0x00000071006e0154,DamageMgrBase::isSlowTime,4,
0x00000071006e0158,DamageMgrBase::m29,324,
0x00000071006e029c,DamageMgrBase::m30,2296,
0x00000071006e0b94,DamageMgrBase::getDamage,56,_ZN4ksys3dmg17DamageManagerBase9getDamageEv
0x00000071006e0bcc,DamageMgrBase::m8,8,_ZN4ksys3dmg17DamageManagerBase10getField54Ev
0x00000071006e0b94,DamageMgrBase::getDamage,56,_ZN5uking3dmg17DamageManagerBase9getDamageEv
0x00000071006e0bcc,DamageMgrBase::m8,8,_ZN5uking3dmg17DamageManagerBase10getField54Ev
0x00000071006e0bd4,sub_71006E0BD4,100,
0x00000071006e0c38,DamageMgrBase::canTakeDamage,136,_ZN4ksys3dmg17DamageManagerBase13canTakeDamageEv
0x00000071006e0c38,DamageMgrBase::canTakeDamage,136,_ZN5uking3dmg17DamageManagerBase13canTakeDamageEv
0x00000071006e0cc0,sub_71006E0CC0,100,
0x00000071006e0d24,sub_71006E0D24,196,
0x00000071006e0de8,sub_71006E0DE8,144,
@ -45190,21 +45190,21 @@
0x00000071006e1050,sub_71006E1050,128,
0x00000071006e10d0,sub_71006E10D0,292,
0x00000071006e11f4,sub_71006E11F4,128,
0x00000071006e1274,DamageMgrBase::m45_null,4,_ZN4ksys3dmg17DamageManagerBase3m45Ev
0x00000071006e1278,DamageMgrBase::m49,16,_ZN4ksys3dmg17DamageManagerBase3m49Ei
0x00000071006e1274,DamageMgrBase::m45_null,4,_ZN5uking3dmg17DamageManagerBase3m45Ev
0x00000071006e1278,DamageMgrBase::m49,16,_ZN5uking3dmg17DamageManagerBase3m49Ei
0x00000071006e1288,DamageMgr::getActorDamageParam,28,
0x00000071006e12a4,Struct20::m5,208,_ZN4ksys3dmg8Struct2012combineMaybeEPNS0_12Struct20BaseE
0x00000071006e12a4,Struct20::m5,208,_ZN5uking3dmg8Struct2012combineMaybeEPNS0_12Struct20BaseE
0x00000071006e1374,DamageMgrBase::m36,20,
0x00000071006e1388,DamageMgrBase::m37,20,
0x00000071006e139c,DamageMgrBase::rtti1,204,
0x00000071006e1468,DamageMgrBase::rtti2,92,
0x00000071006e14c4,DamageMgrBase::m3,4,_ZN4ksys3dmg17DamageManagerBaseD0Ev
0x00000071006e14c8,nullsub_2301,4,_ZThn56_N4ksys3dmg17DamageManagerBaseD1Ev
0x00000071006e14cc,sub_71006E14CC,8,_ZThn56_N4ksys3dmg17DamageManagerBaseD0Ev
0x00000071006e14d4,Struct20::rtti1,204,_ZNK4ksys3dmg8Struct2027checkDerivedRuntimeTypeInfoEPKN4sead15RuntimeTypeInfo9InterfaceE
0x00000071006e15a0,Struct20::rtti2,92,_ZNK4ksys3dmg8Struct2018getRuntimeTypeInfoEv
0x00000071006e15fc,j__ZdlPv_299,4,_ZN4ksys3dmg8Struct20D0Ev
0x00000071006e1600,Struct20::m4,20,_ZN4ksys3dmg8Struct205resetEv
0x00000071006e14c4,DamageMgrBase::m3,4,_ZN5uking3dmg17DamageManagerBaseD0Ev
0x00000071006e14c8,nullsub_2301,4,_ZThn56_N5uking3dmg17DamageManagerBaseD1Ev
0x00000071006e14cc,sub_71006E14CC,8,_ZThn56_N5uking3dmg17DamageManagerBaseD0Ev
0x00000071006e14d4,Struct20::rtti1,204,_ZNK5uking3dmg8Struct2027checkDerivedRuntimeTypeInfoEPKN4sead15RuntimeTypeInfo9InterfaceE
0x00000071006e15a0,Struct20::rtti2,92,_ZNK5uking3dmg8Struct2018getRuntimeTypeInfoEv
0x00000071006e15fc,j__ZdlPv_299,4,_ZN5uking3dmg8Struct20D0Ev
0x00000071006e1600,Struct20::m4,20,_ZN5uking3dmg8Struct205resetEv
0x00000071006e1614,sub_71006E1614,112,
0x00000071006e1684,sub_71006E1684,120,
0x00000071006e16fc,sub_71006E16FC,84,
@ -73242,8 +73242,8 @@
0x0000007100d2d370,DamageMgrBase::calcMaybe,180,
0x0000007100d2d424,sub_7100D2D424,160,
0x0000007100d2d4c4,DamageMgrBase::callDamageCallbacks,152,
0x0000007100d2d55c,DamageMgrBase::addDamageCallback,80,_ZN4ksys3dmg17DamageManagerBase17addDamageCallbackEiPNS0_14DamageCallbackE
0x0000007100d2d5ac,DamageMgrBase::removeDamageCallback,220,_ZN4ksys3dmg17DamageManagerBase20removeDamageCallbackEPNS0_14DamageCallbackE
0x0000007100d2d55c,DamageMgrBase::addDamageCallback,80,_ZN5uking3dmg17DamageManagerBase17addDamageCallbackEiPNS0_14DamageCallbackE
0x0000007100d2d5ac,DamageMgrBase::removeDamageCallback,220,_ZN5uking3dmg17DamageManagerBase20removeDamageCallbackEPNS0_14DamageCallbackE
0x0000007100d2d688,sub_7100D2D688,20,_ZN4ksys3act22getSystemIsGetItemSelfEPNS0_8InfoDataEPKc
0x0000007100d2d69c,act::getSystemIsGetItemSelf,20,_ZN4ksys3act22getSystemIsGetItemSelfERKN2al9ByamlIterE
0x0000007100d2d6b0,ActorInfoData::getGeneralLife,20,_ZN4ksys3act14getGeneralLifeEPNS0_8InfoDataEPKc

Can't render this file because it is too large.

View File

@ -1,5 +1,6 @@
add_subdirectory(Actor)
add_subdirectory(AI)
add_subdirectory(Damage)
add_subdirectory(DLC)
add_subdirectory(UI)

View File

@ -1,8 +1,9 @@
target_sources(uking PRIVATE
dmgDamageCallback.h
dmgDamageInfoManager.h
dmgDamageManagerBase.h
dmgDamageManagerBase.cpp
dmgInfoManager.cpp
dmgInfoManager.h
dmgStruct20.h
dmgStruct20.cpp
)

View File

@ -2,9 +2,9 @@
#include <basis/seadTypes.h>
#include "KingSystem/Damage/dmgDamageManagerBase.h"
#include "Game/Damage/dmgDamageManagerBase.h"
namespace ksys::dmg {
namespace uking::dmg {
class DamageManagerBase;
@ -20,4 +20,4 @@ public:
u32 mEventId;
};
} // namespace ksys::dmg
} // namespace uking::dmg

View File

@ -1,22 +1,25 @@
#include "KingSystem/Damage/dmgDamageManagerBase.h"
#include "Game/Damage/dmgDamageManagerBase.h"
#include "Game/DLC/aoc2.h"
#include "KingSystem/ActorSystem/actActor.h"
#include "KingSystem/ActorSystem/actActorConstDataAccess.h"
#include "KingSystem/ActorSystem/actActorParam.h"
#include "KingSystem/ActorSystem/actActorUtil.h"
#include "KingSystem/ActorSystem/actLifeRecoveryInfo.h"
#include "KingSystem/Resource/GeneralParamList/resGParamListObjectGeneral.h"
#include "KingSystem/Resource/resResourceGParamList.h"
namespace ksys::dmg {
namespace uking::dmg {
DamageManagerBase_UnknownBase1::DamageManagerBase_UnknownBase1(act::Actor* actor) : mActor(actor) {}
DamageManagerBase_UnknownBase1::DamageManagerBase_UnknownBase1(ksys::act::Actor* actor)
: mActor(actor) {}
// Compiler seems to combine zero(0) writes to (0x0 ,0x8) and (0x10, 0x18)
// when writing the vtable and Actor.
// The original Compiler writes (0x8, 0x10) in one 'stp', and writes 0x0 and 0x18 individually with
// 'str'. The rest seems to fall out of sync due to that, but it's otherwise functionally the same.
// NON_MATCHING: Incorrect order.
DamageManagerBase::DamageManagerBase(act::Actor* actor) : DamageManagerBase_UnknownBase1(actor) {}
DamageManagerBase::DamageManagerBase(ksys::act::Actor* actor)
: DamageManagerBase_UnknownBase1(actor) {}
u32 DamageManagerBase::getDamage() {
u32 result;
@ -106,7 +109,7 @@ void DamageManagerBase::removeDamageCallback(DamageCallback* callback) {
bool DamageManagerBase::applyDamage(s32& life) {
auto* param_list = mActor->getParam()->getRes().mGParamList;
const res::GParamListObjectGeneral& params = *param_list->getGeneral();
const ksys::res::GParamListObjectGeneral& params = *param_list->getGeneral();
if (params.mIsLifeInfinite.ref()) {
// Since life is infinite, we don't need to modify the damage or life.
// But we still call the "callback" as if damage was done.
@ -116,7 +119,7 @@ bool DamageManagerBase::applyDamage(s32& life) {
s32 damage = getDamage();
if (damage >= 1) {
if (isPlayerClass(mActor)) {
if (ksys::act::isPlayerProfile(mActor)) {
if (getAttacker()->hasProc()) {
tryBuffDamage(damage);
}
@ -148,8 +151,8 @@ void DamageManagerBase::tryBuffDamage(s32& damage) {
return;
}
act::ActorConstDataAccess acc;
act::acquireActor(getAttacker(), &acc);
ksys::act::ActorConstDataAccess acc;
ksys::act::acquireActor(getAttacker(), &acc);
if (uking::aoc2::shouldApplyMasterModeDamageMultiplier(acc)) {
uking::aoc2::buffDamage(damage);
}
@ -175,7 +178,7 @@ void DamageManagerBase::tryApplyDamageRecovery(s32& damage) {
// Take damage from extra HP1, and modify damage.
// Returns true if damage remains? No more regen?
act::LifeRecoverInfo* life_recovery_info = mActor->getLifeRecoverInfo();
ksys::act::LifeRecoverInfo* life_recovery_info = mActor->getLifeRecoverInfo();
if (life_recovery_info->onApplyDamage(damage)) {
// Update flags and counter.
life_recovery_info->onApplyDamage_0();
@ -272,4 +275,4 @@ s32 DamageManagerBase::m49(s32 damageTypeMaybe) {
return 0;
}
} // namespace ksys::dmg
} // namespace uking::dmg

View File

@ -5,23 +5,23 @@
#include <heap/seadExpHeap.h>
#include <prim/seadRuntimeTypeInfo.h>
#include "Game/Damage/dmgDamageCallback.h"
#include "Game/Damage/dmgInfoManager.h"
#include "Game/Damage/dmgStruct20.h"
#include "KingSystem/ActorSystem/actBaseProcLink.h"
#include "KingSystem/Damage/dmgDamageCallback.h"
#include "KingSystem/Damage/dmgDamageInfoManager.h"
#include "KingSystem/Damage/dmgStruct20.h"
namespace ksys::act {
class Actor;
class ActorParam;
} // namespace ksys::act
namespace ksys::dmg {
namespace uking::dmg {
// FIXME: Unknown base. This base seems to handle callbacks and messaging, so maybe a shared base?
class DamageManagerBase_UnknownBase1 {
public:
DamageManagerBase_UnknownBase1(act::Actor* WeaponActor);
virtual ~DamageManagerBase_UnknownBase1() {}
explicit DamageManagerBase_UnknownBase1(ksys::act::Actor* WeaponActor);
virtual ~DamageManagerBase_UnknownBase1() = default;
// Sturct20 for Damage receive/send?
Struct20Base* mStruct20_a = nullptr;
@ -46,8 +46,8 @@ public:
class DamageManagerBase : public DamageManagerBase_UnknownBase1,
public DamageManagerBase_UnknownBase2 {
public:
DamageManagerBase(act::Actor* actor);
virtual ~DamageManagerBase() = default;
explicit DamageManagerBase(ksys::act::Actor* actor);
~DamageManagerBase() override = default;
SEAD_RTTI_BASE(DamageManagerBase)
@ -139,7 +139,4 @@ private:
};
KSYS_CHECK_SIZE_NX150(DamageManagerBase, 0x68);
// FIXME: Move into static helper class?
bool isPlayerClass(ksys::act::Actor* Actor);
} // namespace ksys::dmg
} // namespace uking::dmg

View File

@ -0,0 +1,7 @@
#include "Game/Damage/dmgInfoManager.h"
namespace uking::dmg {
SEAD_SINGLETON_DISPOSER_IMPL(DamageInfoMgr)
} // namespace uking::dmg

View File

@ -0,0 +1,48 @@
#pragma once
#include <basis/seadTypes.h>
#include <container/seadBuffer.h>
#include <container/seadSafeArray.h>
#include <heap/seadDisposer.h>
#include <thread/seadReadWriteLock.h>
#include "KingSystem/ActorSystem/actBaseProcLink.h"
#include "KingSystem/Resource/resHandle.h"
namespace uking::dmg {
// FIXME: incomplete
class DamageInfoMgr {
SEAD_SINGLETON_DISPOSER(DamageInfoMgr);
DamageInfoMgr();
virtual ~DamageInfoMgr();
public:
// FIXME: incomplete
class DamageItem {
public:
s32 mField_0; // unknown
sead::SafeArray<u8, 3> mCanTakeDamageFromType;
};
bool isTrueFormMasterSword() const;
/* 0x0028 */ u8 TEMP_8[0x5d0 - 0x28];
/* 0x05d0 */ ksys::res::Handle mReactionTable;
/* 0x0620 */ sead::Buffer<DamageItem> mDamagesArray;
/* 0x0630 */ u8 TEMP_630[0xd00 - 0x630];
/* 0x0d00 */ sead::ReadWriteLock mLock;
/* 0x0db8 */ u8 TEMP_db8[0x11e4 - 0xdb8];
/* 0x11e4 */ f32 mMasterSwordSearchEvilDist;
/* 0x11e8 */ bool mMasterSwordDetectedEvil;
/* 0x11e9 */ bool mMasterSwordDisableTrueForm;
/* 0x11ea */ bool mOneHitObliteratorActive;
/* 0x11f0 */ ksys::act::BaseProcLink _11f0;
/* 0x1200 */ ksys::act::BaseProcLink _1200;
/* 0x1210 */ ksys::act::BaseProcLink _1210;
/* 0x1220 */ ksys::act::BaseProcLink _1230;
/* 0x1230 */ sead::ReadWriteLock mProcLinkLock;
/* 0x12e8 */ void* _12e8;
};
KSYS_CHECK_SIZE_NX150(DamageInfoMgr, 0x12F0);
} // namespace uking::dmg

View File

@ -1,6 +1,6 @@
#include "KingSystem/Damage/dmgStruct20.h"
#include "Game/Damage/dmgStruct20.h"
namespace ksys::dmg {
namespace uking::dmg {
void Struct20::reset() {
mField_8 = 0;
@ -50,4 +50,4 @@ void Struct20_2::combineMaybe(Struct20Base* other) {
}
}
} // namespace ksys::dmg
} // namespace uking::dmg

View File

@ -5,7 +5,7 @@
#include "KingSystem/Utils/Types.h"
namespace ksys::dmg {
namespace uking::dmg {
// What exactly Struct20 is, isn't known yet.
// It is used by the Damage Managers, especially DamageManager and up, not so much in
@ -61,4 +61,4 @@ public:
};
KSYS_CHECK_SIZE_NX150(Struct20_2, 0x38);
} // namespace ksys::dmg
} // namespace uking::dmg

View File

@ -6,7 +6,6 @@ add_subdirectory(ActorSystem)
add_subdirectory(Cooking)
add_subdirectory(Ecosystem)
add_subdirectory(Event)
add_subdirectory(Damage)
add_subdirectory(Framework)
add_subdirectory(Map)
add_subdirectory(MessageSystem)

View File

@ -1,33 +0,0 @@
#pragma once
#include <basis/seadTypes.h>
#include <container/seadBuffer.h>
#include <container/seadSafeArray.h>
#include <heap/seadDisposer.h>
#include "KingSystem/Resource/resHandle.h"
namespace ksys::dmg {
// FIXME: incomplete
class DamageInfoMgr {
public:
SEAD_SINGLETON_DISPOSER(DamageInfoMgr);
DamageInfoMgr();
virtual ~DamageInfoMgr();
public:
// FIXME: incomplete
class DamageItem {
public:
s32 mField_0; // unknown
sead::SafeArray<u8, 3> mCanTakeDamageFromType;
};
u8 TEMP1[0x5F0]; // Fields
res::Handle* mReactionTable; // 0x5D0
sead::Buffer<DamageItem> mDamagesArray; // 0x620
};
// KSYS_CHECK_SIZE_NX150(DamageInfoMgr, 0x12F0);
} // namespace ksys::dmg