diff --git a/data/uking_functions.csv b/data/uking_functions.csv index 24780ae5..8caa0380 100644 --- a/data/uking_functions.csv +++ b/data/uking_functions.csv @@ -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 diff --git a/src/Game/CMakeLists.txt b/src/Game/CMakeLists.txt index 62098248..121a2a9b 100644 --- a/src/Game/CMakeLists.txt +++ b/src/Game/CMakeLists.txt @@ -1,5 +1,6 @@ add_subdirectory(Actor) add_subdirectory(AI) +add_subdirectory(Damage) add_subdirectory(DLC) add_subdirectory(UI) diff --git a/src/KingSystem/Damage/CMakeLists.txt b/src/Game/Damage/CMakeLists.txt similarity index 77% rename from src/KingSystem/Damage/CMakeLists.txt rename to src/Game/Damage/CMakeLists.txt index 93df54bb..1a590388 100644 --- a/src/KingSystem/Damage/CMakeLists.txt +++ b/src/Game/Damage/CMakeLists.txt @@ -1,8 +1,9 @@ target_sources(uking PRIVATE dmgDamageCallback.h - dmgDamageInfoManager.h dmgDamageManagerBase.h dmgDamageManagerBase.cpp + dmgInfoManager.cpp + dmgInfoManager.h dmgStruct20.h dmgStruct20.cpp ) diff --git a/src/KingSystem/Damage/dmgDamageCallback.h b/src/Game/Damage/dmgDamageCallback.h similarity index 79% rename from src/KingSystem/Damage/dmgDamageCallback.h rename to src/Game/Damage/dmgDamageCallback.h index 8dddac3f..7c7e0e4d 100644 --- a/src/KingSystem/Damage/dmgDamageCallback.h +++ b/src/Game/Damage/dmgDamageCallback.h @@ -2,9 +2,9 @@ #include -#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 diff --git a/src/KingSystem/Damage/dmgDamageManagerBase.cpp b/src/Game/Damage/dmgDamageManagerBase.cpp similarity index 91% rename from src/KingSystem/Damage/dmgDamageManagerBase.cpp rename to src/Game/Damage/dmgDamageManagerBase.cpp index 51b1e68a..2a28f532 100644 --- a/src/KingSystem/Damage/dmgDamageManagerBase.cpp +++ b/src/Game/Damage/dmgDamageManagerBase.cpp @@ -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 diff --git a/src/KingSystem/Damage/dmgDamageManagerBase.h b/src/Game/Damage/dmgDamageManagerBase.h similarity index 89% rename from src/KingSystem/Damage/dmgDamageManagerBase.h rename to src/Game/Damage/dmgDamageManagerBase.h index faa5f473..7beeeef3 100644 --- a/src/KingSystem/Damage/dmgDamageManagerBase.h +++ b/src/Game/Damage/dmgDamageManagerBase.h @@ -5,23 +5,23 @@ #include #include +#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 diff --git a/src/Game/Damage/dmgInfoManager.cpp b/src/Game/Damage/dmgInfoManager.cpp new file mode 100644 index 00000000..7a0613a1 --- /dev/null +++ b/src/Game/Damage/dmgInfoManager.cpp @@ -0,0 +1,7 @@ +#include "Game/Damage/dmgInfoManager.h" + +namespace uking::dmg { + +SEAD_SINGLETON_DISPOSER_IMPL(DamageInfoMgr) + +} // namespace uking::dmg diff --git a/src/Game/Damage/dmgInfoManager.h b/src/Game/Damage/dmgInfoManager.h new file mode 100644 index 00000000..14df5548 --- /dev/null +++ b/src/Game/Damage/dmgInfoManager.h @@ -0,0 +1,48 @@ +#pragma once + +#include +#include +#include +#include +#include +#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 mCanTakeDamageFromType; + }; + + bool isTrueFormMasterSword() const; + + /* 0x0028 */ u8 TEMP_8[0x5d0 - 0x28]; + /* 0x05d0 */ ksys::res::Handle mReactionTable; + /* 0x0620 */ sead::Buffer 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 diff --git a/src/KingSystem/Damage/dmgStruct20.cpp b/src/Game/Damage/dmgStruct20.cpp similarity index 93% rename from src/KingSystem/Damage/dmgStruct20.cpp rename to src/Game/Damage/dmgStruct20.cpp index 10c91acb..faa95706 100644 --- a/src/KingSystem/Damage/dmgStruct20.cpp +++ b/src/Game/Damage/dmgStruct20.cpp @@ -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 \ No newline at end of file +} // namespace uking::dmg diff --git a/src/KingSystem/Damage/dmgStruct20.h b/src/Game/Damage/dmgStruct20.h similarity index 96% rename from src/KingSystem/Damage/dmgStruct20.h rename to src/Game/Damage/dmgStruct20.h index 3bc8cb04..65ddeb07 100644 --- a/src/KingSystem/Damage/dmgStruct20.h +++ b/src/Game/Damage/dmgStruct20.h @@ -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 diff --git a/src/KingSystem/CMakeLists.txt b/src/KingSystem/CMakeLists.txt index 01782dba..f430ca2b 100644 --- a/src/KingSystem/CMakeLists.txt +++ b/src/KingSystem/CMakeLists.txt @@ -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) diff --git a/src/KingSystem/Damage/dmgDamageInfoManager.h b/src/KingSystem/Damage/dmgDamageInfoManager.h deleted file mode 100644 index dc09e2bf..00000000 --- a/src/KingSystem/Damage/dmgDamageInfoManager.h +++ /dev/null @@ -1,33 +0,0 @@ -#pragma once - -#include -#include -#include -#include - -#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 mCanTakeDamageFromType; - }; - - u8 TEMP1[0x5F0]; // Fields - res::Handle* mReactionTable; // 0x5D0 - sead::Buffer mDamagesArray; // 0x620 -}; -// KSYS_CHECK_SIZE_NX150(DamageInfoMgr, 0x12F0); - -} // namespace ksys::dmg