uking: Implement GameDataAddFloat action

This commit is contained in:
Léo Lam
2021-01-01 17:45:46 +01:00
parent d5a9f2bc82
commit 8301cb80a6
3 changed files with 23 additions and 2 deletions
@@ -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");