Files
botw/src/Game/Actor/Action/actionEventAddGameDataToRupeeAction.cpp
T
Léo Lam f4cd38c43b Actor: move all AI code under Game/Actor
Link order shows one sorted actor tree, not a separate AI project: the
Action/AI/Query folders and per-feature folders (Camera, Player, Horse,
...) come out of the same archive rounds as the actor classes.

(AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
2026-09-14 00:02:22 +02:00

51 lines
1.4 KiB
C++

#include "Game/Actor/Action/actionEventAddGameDataToRupeeAction.h"
#include "KingSystem/GameData/gdtManager.h"
#include "KingSystem/System/UIGlue.h"
namespace uking::action {
EventAddGameDataToRupeeAction::EventAddGameDataToRupeeAction(const InitArg& arg)
: ksys::act::ai::Action(arg) {}
EventAddGameDataToRupeeAction::~EventAddGameDataToRupeeAction() = default;
bool EventAddGameDataToRupeeAction::init_(sead::Heap* heap) {
return ksys::act::ai::Action::init_(heap);
}
void EventAddGameDataToRupeeAction::enter_(ksys::act::ai::InlineParamPack* params) {
ksys::act::ai::Action::enter_(params);
s32 val = 0;
auto* gdm = ksys::gdt::Manager::instance();
if (!gdm->getParam().get().getS32(&val, mGameDataIntAddValueName_d)) {
ksys::ui::initRupeeCounter();
return;
}
if (*mIsSignInversion_d) {
val = -val;
}
gdm->incrementS32(val, "CurrentRupee");
ksys::ui::initRupeeCounter();
}
void EventAddGameDataToRupeeAction::leave_() {
ksys::act::ai::Action::leave_();
}
void EventAddGameDataToRupeeAction::loadParams_() {
getDynamicParam(&mIsSignInversion_d, "IsSignInversion");
getDynamicParam(&mGameDataIntAddValueName_d, "GameDataIntAddValueName");
}
void EventAddGameDataToRupeeAction::calc_() {
ksys::act::ai::Action::calc_();
if (!ksys::ui::isRupeeCounterActive()) {
setFinished();
}
}
} // namespace uking::action