1#include "Game/Screen/CounterLayoutAppearer.hpp"
2#include "Game/Util/LayoutUtil.hpp"
3#include "Game/Util/NerveUtil.hpp"
15 MR::setFollowPos(&mFollowPos, pActor,
nullptr);
16 MR::setFollowTypeAdd(mLayout,
nullptr);
17 initNerve(&NrvCounterLayoutAppearer::CounterLayoutAppearerNrvHide::sInstance);
18 MR::startAnimAndSetFrameAndStop(mLayout,
"Appear", 0.0f, 0);
19 setNerve(&NrvCounterLayoutAppearer::CounterLayoutAppearerNrvHide::sInstance);
22void CounterLayoutAppearer::update() {
26void CounterLayoutAppearer::appear(
const TVec2f &a1) {
29 MR::startAnim(mLayout,
"Appear", 0);
30 updateLayoutOffset(0.0f);
31 setNerve(&NrvCounterLayoutAppearer::CounterLayoutAppearerNrvAppear::sInstance);
34void CounterLayoutAppearer::disappear() {
35 setNerve(&NrvCounterLayoutAppearer::CounterLayoutAppearerNrvDisappear::sInstance);
38bool CounterLayoutAppearer::isAppeared()
const {
39 return isNerve(&NrvCounterLayoutAppearer::CounterLayoutAppearerNrvShow::sInstance);
42bool CounterLayoutAppearer::isDisappeared()
const {
43 return isNerve(&NrvCounterLayoutAppearer::CounterLayoutAppearerNrvHide::sInstance);
46void CounterLayoutAppearer::reset() {
47 MR::startAnimAndSetFrameAndStop(mLayout,
"Appear", 0.0f, 0);
48 setNerve(&NrvCounterLayoutAppearer::CounterLayoutAppearerNrvHide::sInstance);
52void CounterLayoutAppearer::updateLayoutOffset(f32 offset) {
54 f32 x = (_C + (offset * (zero - _C))) + _1C;
57 f32 y = ((_10 + (offset * (zero - _10))) + _20);
63void CounterLayoutAppearer::exeAppear() {
64 updateLayoutOffset(MR::calcNerveEaseOutRate(
this, MR::getAnimFrameMax(mLayout, 0)));
65 if (MR::isAnimStopped(mLayout, 0)) {
66 setNerve(&NrvCounterLayoutAppearer::CounterLayoutAppearerNrvShow::sInstance);
70void CounterLayoutAppearer::exeDisappear() {
71 if (MR::isFirstStep(
this)) {
72 MR::startAnim(mLayout,
"End", 0);
75 updateLayoutOffset((1.0f - MR::calcNerveEaseInRate(
this, MR::getAnimFrameMax(mLayout, 0))));
77 if (MR::isAnimStopped(mLayout, 0)) {
78 setNerve(&NrvCounterLayoutAppearer::CounterLayoutAppearerNrvHide::sInstance);
82CounterLayoutAppearer::~CounterLayoutAppearer() {
86namespace NrvCounterLayoutAppearer {
87 INIT_NERVE(CounterLayoutAppearerNrvHide);
88 INIT_NERVE(CounterLayoutAppearerNrvAppear);
89 INIT_NERVE(CounterLayoutAppearerNrvShow);
90 INIT_NERVE(CounterLayoutAppearerNrvDisappear);
92 void CounterLayoutAppearerNrvDisappear::execute(
Spine *pSpine)
const {
94 layout->exeDisappear();
97 void CounterLayoutAppearerNrvShow::execute(
Spine *pSpine)
const {
100 if (MR::isFirstStep(layout)) {
101 layout->updateLayoutOffset(1.0f);
105 void CounterLayoutAppearerNrvAppear::execute(
Spine *pSpine)
const {
110 void CounterLayoutAppearerNrvHide::execute(
Spine *pSpine)
const {