1#include "Item/CoinCollectDummy.h"
2
3#include "Library/LiveActor/ActorActionFunction.h"
4#include "Library/LiveActor/ActorClippingFunction.h"
5#include "Library/LiveActor/ActorInitFunction.h"
6#include "Library/LiveActor/ActorInitUtil.h"
7#include "Library/LiveActor/ActorModelFunction.h"
8#include "Library/LiveActor/ActorMovementFunction.h"
9#include "Library/Nerve/NerveSetupUtil.h"
10#include "Library/Nerve/NerveUtil.h"
11
12#include "Item/CoinCollectHintState.h"
13#include "Util/ItemUtil.h"
14
15namespace {
16NERVE_IMPL(CoinCollectDummy, Hint);
17
18NERVES_MAKE_STRUCT(CoinCollectDummy, Hint);
19} // namespace
20
21CoinCollectDummy::CoinCollectDummy(const char* name) : al::LiveActor(name) {}
22
23void CoinCollectDummy::init(const al::ActorInitInfo& initInfo) {
24 al::initActorSceneInfo(actor: this, info: initInfo);
25 al::initActorWithArchiveName(actor: this, initInfo, archiveName: rs::getStageCoinCollectArchiveName(actor: this), suffix: nullptr);
26 al::initNerve(actor: this, nerve: &NrvCoinCollectDummy.Hint, maxStates: 1);
27 mHintState = new CoinCollectHintState(this);
28 al::initNerveState(user: this, state: mHintState, nerve: &NrvCoinCollectDummy.Hint, hostName: "ヒント");
29 makeActorDead();
30}
31
32void CoinCollectDummy::appear() {
33 al::LiveActor::appear();
34 al::setNerve(user: this, nerve: &NrvCoinCollectDummy.Hint);
35}
36
37void CoinCollectDummy::appearHint(const sead::Vector3f& position) {
38 appear();
39 al::resetPosition(actor: this, trans: position);
40 al::hideModelIfShow(actor: this);
41 al::invalidateClipping(actor: this);
42 al::startHitReaction(actor: this, name: "発光");
43}
44
45void CoinCollectDummy::reappearHint() {
46 mHintState->appearHintEffect();
47}
48
49void CoinCollectDummy::deleteHint() {
50 mHintState->deleteHintEffect();
51}
52
53void CoinCollectDummy::exeHint() {
54 if (al::updateNerveState(user: this))
55 makeActorDead();
56}
57