uking: Implement GameDataAddFloat action

This commit is contained in:
Léo Lam 2021-01-01 17:45:46 +01:00
parent d5a9f2bc82
commit 8301cb80a6
No known key found for this signature in database
GPG Key ID: 0DF30F9081000741
3 changed files with 23 additions and 2 deletions

View File

@ -9817,7 +9817,7 @@
0x00000071001707c0,_ZN5uking6action16GameDataAddFloatD1Ev,20,_ZN5uking6action16GameDataAddFloatD1Ev
0x00000071001707d4,_ZN5uking6action16GameDataAddFloatD0Ev,52,_ZN5uking6action16GameDataAddFloatD0Ev
0x0000007100170808,_ZN5uking6action16GameDataAddFloat5init_EPN4sead4HeapE,8,_ZN5uking6action16GameDataAddFloat5init_EPN4sead4HeapE
0x0000007100170810,_ZN5uking6action16GameDataAddFloat8oneShot_Ev,184,
0x0000007100170810,_ZN5uking6action16GameDataAddFloat8oneShot_Ev,184,_ZN5uking6action16GameDataAddFloat8oneShot_Ev
0x00000071001708c8,_ZN5uking6action16GameDataAddFloat11loadParams_Ev,208,_ZN5uking6action16GameDataAddFloat11loadParams_Ev
0x0000007100170998,_ZNK5uking6action16GameDataAddFloat27checkDerivedRuntimeTypeInfoEPKN4sead15RuntimeTypeInfo9InterfaceE,288,_ZNK5uking6action16GameDataAddFloat27checkDerivedRuntimeTypeInfoEPKN4sead15RuntimeTypeInfo9InterfaceE
0x0000007100170ab8,_ZNK5uking6action16GameDataAddFloat18getRuntimeTypeInfoEv,92,_ZNK5uking6action16GameDataAddFloat18getRuntimeTypeInfoEv
@ -76036,7 +76036,7 @@
0x0000007100dd2230,sub_7100DD2230,164,
0x0000007100dd22d4,sub_7100DD22D4,184,
0x0000007100dd238c,GameDataMgr::setIntByKey,164,
0x0000007100dd2430,GameDataMgr::setFloatByKey,172,
0x0000007100dd2430,GameDataMgr::setFloatByKey,172,_ZN4ksys3gdt7Manager6setF32EfRKN4sead14SafeStringBaseIcEE
0x0000007100dd24dc,GameDataMgr::setString32ByKey,164,
0x0000007100dd2580,GameDataMgr::setString64ByKey,164,
0x0000007100dd2624,GameDataMgr::setVec3ByKey,164,

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

View File

@ -1,4 +1,5 @@
#include "Game/AI/Action/actionGameDataAddFloat.h"
#include "KingSystem/GameData/gdtManager.h"
namespace uking::action {
@ -10,6 +11,25 @@ bool GameDataAddFloat::init_(sead::Heap* heap) {
return ksys::act::ai::Action::init_(heap);
}
bool GameDataAddFloat::oneShot_() {
auto* gdm = ksys::gdt::Manager::instance();
if (!gdm) {
setFailed();
mFlags.set(Flag::_4);
return false;
}
f32 src = 0.0;
f32 dst = 0.0;
if (gdm->getParam().get().getF32(&src, mGameDataFloatSrcName_d)) {
if (gdm->getParam().get().getF32(&dst, mGameDataFloatDstName_d))
src += dst;
gdm->setF32(src, mGameDataFloatToName_d);
}
return true;
}
void GameDataAddFloat::loadParams_() {
getDynamicParam(&mGameDataFloatSrcName_d, "GameDataFloatSrcName");
getDynamicParam(&mGameDataFloatDstName_d, "GameDataFloatDstName");

View File

@ -10,6 +10,7 @@ public:
explicit GameDataAddFloat(const InitArg& arg);
~GameDataAddFloat() override;
bool oneShot_() override;
bool init_(sead::Heap* heap) override;
void loadParams_() override;