mirror of
https://github.com/zeldaret/ss
synced 2026-05-25 07:23:00 -04:00
806 lines
29 KiB
C++
806 lines
29 KiB
C++
#include "d/lyt/d_lyt_do_button.h"
|
|
|
|
#include "common.h"
|
|
#include "d/a/d_a_player.h"
|
|
#include "d/lyt/meter/d_lyt_meter.h"
|
|
#include "nw4r/lyt/lyt_pane.h"
|
|
#include "nw4r/lyt/lyt_types.h"
|
|
#include "nw4r/math/math_types.h"
|
|
#include "sized_string.h"
|
|
#include "toBeSorted/event_manager.h"
|
|
#include "toBeSorted/small_sound_mgr.h"
|
|
|
|
struct DoButtonClass {
|
|
DoButtonClass();
|
|
virtual ~DoButtonClass();
|
|
|
|
u8 field_0x04;
|
|
u8 field_0x05;
|
|
u8 field_0x06;
|
|
u8 field_0x07;
|
|
f32 field_0x08;
|
|
f32 field_0x0C;
|
|
f32 field_0x10;
|
|
u8 field_0x14;
|
|
u8 field_0x15;
|
|
u8 field_0x16;
|
|
};
|
|
|
|
static DoButtonClass sDoButtonClass;
|
|
|
|
DoButtonClass::DoButtonClass() {
|
|
field_0x04 = 0;
|
|
field_0x05 = 0x29;
|
|
field_0x06 = 0x5E;
|
|
field_0x07 = 0;
|
|
field_0x08 = 0.0f;
|
|
field_0x0C = 0.0f;
|
|
field_0x14 = 0xFF;
|
|
field_0x10 = 76.0f;
|
|
field_0x15 = 0;
|
|
field_0x16 = 0;
|
|
}
|
|
DoButtonClass::~DoButtonClass() {}
|
|
|
|
dLytDobutton_c *dLytDobutton_c::sInstance;
|
|
|
|
STATE_DEFINE(dLytDobutton_c, InvisibleWait);
|
|
STATE_DEFINE(dLytDobutton_c, InvisibleTimeCnt);
|
|
STATE_DEFINE(dLytDobutton_c, In);
|
|
STATE_DEFINE(dLytDobutton_c, Wait);
|
|
STATE_DEFINE(dLytDobutton_c, Out);
|
|
|
|
#define DO_BUTTON_ANIM_IN 0
|
|
#define DO_BUTTON_ANIM_BASIC_INFO 1
|
|
#define DO_BUTTON_ANIM_LOOP_BTN 2
|
|
#define DO_BUTTON_ANIM_LOOP_BTN_Z 3
|
|
#define DO_BUTTON_ANIM_LOOP_NUN 4
|
|
#define DO_BUTTON_ANIM_LOOP_REMO_CON 5
|
|
#define DO_BUTTON_ANIM_LOOP_RECOVER 6
|
|
#define DO_BUTTON_ANIM_LOOP_ROTATE 7
|
|
#define DO_BUTTON_ANIM_LOOP_MOVE_INFO 8
|
|
#define DO_BUTTON_ANIM_MOVE_ALPHA 9
|
|
#define DO_BUTTON_ANIM_MOVE_OUT 10
|
|
#define DO_BUTTON_ANIM_LOOP_BG 11
|
|
|
|
#define DO_BUTTON_NUM_ANIMS 12
|
|
|
|
static const d2d::LytBrlanMapping brlanMap[] = {
|
|
{ "basicInfo_00_in.brlan", "G_inOut_00"},
|
|
{ "basicInfo_00_basicInfo.brlan", "G_basicInfo_00"},
|
|
{ "basicInfo_00_loopBtn.brlan", "G_loopBtn_00"},
|
|
{ "basicInfo_00_loopBtn.brlan", "G_loopBtnZ_00"},
|
|
{ "basicInfo_00_loopNun.brlan", "G_loopNun_00"},
|
|
{"basicInfo_00_loopRemoCon.brlan", "G_loopRemoCon_00"},
|
|
{"basicInfo_00_loopRecover.brlan", "G_loopRecover_00"},
|
|
{ "basicInfo_00_loopRotate.brlan", "G_loopRotate"},
|
|
{ "basicInfo_00_moveInfo.brlan", "G_moveInfo_00"},
|
|
{ "basicInfo_00_moveAlpha.brlan", "G_moveAlpha_00"},
|
|
{ "basicInfo_00_out.brlan", "G_inOut_00"},
|
|
{ "basicInfo_00_loopBg.brlan", "G_loopBg_00"},
|
|
};
|
|
|
|
static const char *sPaneNames[] = {
|
|
"N_infoAll_00", "N_infoAll_01", "N_bg_00", "W_bgP_00", "W_bgP_01", "N_infoText_00", "N_aBtn_00",
|
|
"N_aBtn_01", "N_bBtn_00", "N_cBtn_00", "N_cBtn_01", "N_nunchaku_01", "N_nunchaku_02", "N_nunchaku_03",
|
|
"N_upSwing_00", "N_downSwing_00", "N_swing_00", "N_rotate_00", "N_nunRimo_00", "N_nunDrag_00", "N_aBtnDown_00",
|
|
"N_aBtnDown_01", "N_draw_00", "N_play_00", "N_swing_01", "N_swing_03", "N_upset_00", "N_stab_00",
|
|
"N_pullOut_01", "N_bBtn_01", "N_twist_00", "N_zBtn_00", "N_zBtn_01", "N_crossBtn_00", "N_plusAll_00",
|
|
"N_upSwing_01", "N_aBtnDown_02",
|
|
};
|
|
|
|
#define DO_BUTTON_PANE_INFOALL_00 0
|
|
#define DO_BUTTON_PANE_INFOALL_01 1
|
|
#define DO_BUTTON_PANE_BG_00 2
|
|
#define DO_BUTTON_PANE_W_BGP_00 3
|
|
#define DO_BUTTON_PANE_W_BGP_01 4
|
|
#define DO_BUTTON_PANE_INFOTEXT_00 5
|
|
#define DO_BUTTON_PANE_A_BTN_00 6
|
|
#define DO_BUTTON_PANE_A_BTN_01 7
|
|
#define DO_BUTTON_PANE_B_BTN_00 8
|
|
#define DO_BUTTON_PANE_C_BTN_00 9
|
|
#define DO_BUTTON_PANE_C_BTN_01 10
|
|
#define DO_BUTTON_PANE_NUNCHAKU_01 11
|
|
#define DO_BUTTON_PANE_NUNCHAKU_02 12
|
|
#define DO_BUTTON_PANE_NUNCHAKU_03 13
|
|
#define DO_BUTTON_PANE_UP_SWING_00 14
|
|
#define DO_BUTTON_PANE_DOWN_SWING_00 15
|
|
#define DO_BUTTON_PANE_SWING_00 16
|
|
#define DO_BUTTON_PANE_ROTATE_00 17
|
|
#define DO_BUTTON_PANE_NUN_RIMO_00 18
|
|
#define DO_BUTTON_PANE_NUN_DRAG_00 19
|
|
#define DO_BUTTON_PANE_A_BTN_DOWN_00 20
|
|
#define DO_BUTTON_PANE_A_BTN_DOWN_01 21
|
|
#define DO_BUTTON_PANE_DRAW_00 22
|
|
#define DO_BUTTON_PANE_PLAY_00 23
|
|
#define DO_BUTTON_PANE_SWING_01 24
|
|
#define DO_BUTTON_PANE_SWING_03 25
|
|
#define DO_BUTTON_PANE_UPSET_00 26
|
|
#define DO_BUTTON_PANE_STAB_00 27
|
|
#define DO_BUTTON_PANE_PULL_OUT_01 28
|
|
#define DO_BUTTON_PANE_B_BTN_01 29
|
|
#define DO_BUTTON_PANE_TWIST_00 30
|
|
#define DO_BUTTON_PANE_ZBTN_00 31
|
|
#define DO_BUTTON_PANE_ZBTN_01 32
|
|
#define DO_BUTTON_PANE_CROSS_BTN_00 33
|
|
#define DO_BUTTON_PANE_PLUS_ALL_00 34
|
|
#define DO_BUTTON_PANE_UP_SWING_01 35
|
|
#define DO_BUTTON_PANE_A_BTN_DOWN_02 36
|
|
|
|
#define DO_BUTTON_PANE_NONE 37
|
|
#define DO_BUTTON_NUM_PANES 37
|
|
|
|
static const char *sTextBoxNames[] = {
|
|
"T_infoText_00",
|
|
"T_infoTextS_00",
|
|
};
|
|
|
|
#define DO_BUTTON_NUM_TEXT_BOXES 2
|
|
|
|
void dLytDobutton_c::initializeState_InvisibleWait() {}
|
|
void dLytDobutton_c::executeState_InvisibleWait() {
|
|
if (field_0x488 == field_0x474 && mNextDoActionToShow == mDoActionToShow) {
|
|
return;
|
|
}
|
|
|
|
field_0x478 = field_0x474;
|
|
field_0x474 = field_0x488;
|
|
mDoActionToShow = mNextDoActionToShow;
|
|
if (field_0x488 == ICON_NONE) {
|
|
return;
|
|
}
|
|
|
|
if (mNextDoActionToShow == ACT_DO_INVALID) {
|
|
return;
|
|
}
|
|
mStateMgr.changeState(StateID_InvisibleTimeCnt);
|
|
}
|
|
void dLytDobutton_c::finalizeState_InvisibleWait() {}
|
|
|
|
void dLytDobutton_c::initializeState_InvisibleTimeCnt() {
|
|
field_0x48C = 0;
|
|
}
|
|
|
|
void dLytDobutton_c::executeState_InvisibleTimeCnt() {
|
|
if (field_0x488 != field_0x474 || mNextDoActionToShow != mDoActionToShow) {
|
|
field_0x478 = field_0x474;
|
|
field_0x474 = field_0x488;
|
|
mDoActionToShow = mNextDoActionToShow;
|
|
if (field_0x488 == ICON_NONE || mNextDoActionToShow == ACT_DO_INVALID) {
|
|
mStateMgr.changeState(StateID_InvisibleWait);
|
|
} else {
|
|
field_0x48C = 0;
|
|
}
|
|
} else {
|
|
if (field_0x48C < sDoButtonClass.field_0x15) {
|
|
field_0x48C++;
|
|
} else {
|
|
realize();
|
|
mStateMgr.changeState(StateID_In);
|
|
}
|
|
}
|
|
}
|
|
void dLytDobutton_c::finalizeState_InvisibleTimeCnt() {}
|
|
|
|
void dLytDobutton_c::initializeState_In() {
|
|
mAnmGroups[DO_BUTTON_ANIM_MOVE_OUT].setAnimEnable(true);
|
|
mAnmGroups[DO_BUTTON_ANIM_MOVE_OUT].setFrame(0.0f);
|
|
mLyt.calc();
|
|
mAnmGroups[DO_BUTTON_ANIM_MOVE_OUT].setAnimEnable(false);
|
|
|
|
mAnmGroups[DO_BUTTON_ANIM_IN].setAnimEnable(true);
|
|
mAnmGroups[DO_BUTTON_ANIM_IN].setFrame(0.0f);
|
|
}
|
|
void dLytDobutton_c::executeState_In() {
|
|
if (field_0x488 == ICON_NONE || mNextDoActionToShow == ACT_DO_INVALID) {
|
|
mAnmGroups[DO_BUTTON_ANIM_IN].setFrame(0.0f);
|
|
mAnmGroups[DO_BUTTON_ANIM_MOVE_OUT].setAnimEnable(true);
|
|
mAnmGroups[DO_BUTTON_ANIM_MOVE_OUT].setToEnd();
|
|
mLyt.calc();
|
|
mAnmGroups[DO_BUTTON_ANIM_IN].setAnimEnable(false);
|
|
mAnmGroups[DO_BUTTON_ANIM_MOVE_OUT].setAnimEnable(false);
|
|
mStateMgr.changeState(StateID_InvisibleWait);
|
|
} else if (mAnmGroups[DO_BUTTON_ANIM_IN].isEndReached()) {
|
|
mAnmGroups[DO_BUTTON_ANIM_IN].setAnimEnable(false);
|
|
mStateMgr.changeState(StateID_Wait);
|
|
}
|
|
}
|
|
void dLytDobutton_c::finalizeState_In() {}
|
|
|
|
void dLytDobutton_c::initializeState_Wait() {}
|
|
void dLytDobutton_c::executeState_Wait() {
|
|
if (field_0x488 != field_0x474 || mNextDoActionToShow != mDoActionToShow) {
|
|
field_0x478 = field_0x474;
|
|
field_0x474 = field_0x488;
|
|
mDoActionToShow = mNextDoActionToShow;
|
|
if (field_0x488 == ICON_NONE || mNextDoActionToShow == ACT_DO_INVALID) {
|
|
mStateMgr.changeState(StateID_Out);
|
|
field_0x48C = 0;
|
|
} else {
|
|
realize();
|
|
}
|
|
}
|
|
}
|
|
void dLytDobutton_c::finalizeState_Wait() {}
|
|
|
|
void dLytDobutton_c::initializeState_Out() {
|
|
mAnmGroups[DO_BUTTON_ANIM_IN].setAnimEnable(true);
|
|
mAnmGroups[DO_BUTTON_ANIM_IN].setFrame(0.0f);
|
|
mLyt.calc();
|
|
mAnmGroups[DO_BUTTON_ANIM_IN].setAnimEnable(false);
|
|
|
|
mAnmGroups[DO_BUTTON_ANIM_MOVE_OUT].setAnimEnable(true);
|
|
mAnmGroups[DO_BUTTON_ANIM_MOVE_OUT].setFrame(0.0f);
|
|
}
|
|
void dLytDobutton_c::executeState_Out() {
|
|
if (mAnmGroups[DO_BUTTON_ANIM_MOVE_OUT].isEndReached()) {
|
|
mLyt.calc();
|
|
mAnmGroups[DO_BUTTON_ANIM_MOVE_OUT].setAnimEnable(false);
|
|
mStateMgr.changeState(StateID_InvisibleWait);
|
|
}
|
|
}
|
|
void dLytDobutton_c::finalizeState_Out() {}
|
|
|
|
bool dLytDobutton_c::build(m2d::ResAccIf_c *resAcc) {
|
|
mLyt.setResAcc(resAcc);
|
|
mLyt.build("basicInfo_00.brlyt", nullptr);
|
|
mLyt.setPriority(0x8A);
|
|
|
|
for (int i = 0; i < DO_BUTTON_NUM_ANIMS; i++) {
|
|
mAnmGroups[i].init(brlanMap[i].mFile, resAcc, mLyt.getLayout(), brlanMap[i].mName);
|
|
mAnmGroups[i].bind(false);
|
|
mAnmGroups[i].setAnimEnable(false);
|
|
}
|
|
|
|
for (int i = 0; i < DO_BUTTON_NUM_PANES; i++) {
|
|
mpPanes[i] = mLyt.findPane(sPaneNames[i]);
|
|
}
|
|
|
|
for (int i = 0; i < DO_BUTTON_NUM_TEXT_BOXES; i++) {
|
|
mpTextBoxes[i] = mLyt.getTextBox(sTextBoxNames[i]);
|
|
}
|
|
|
|
mDoActionToShow = ACT_DO_INVALID;
|
|
field_0x474 = ICON_NONE;
|
|
field_0x478 = ICON_NONE;
|
|
mNextDoActionToShow = ACT_DO_INVALID;
|
|
field_0x488 = ICON_NONE;
|
|
field_0x490 = 0;
|
|
field_0x47C = ACT_DO_INVALID;
|
|
field_0x480 = ICON_NONE;
|
|
field_0x491 = 0;
|
|
mSavedIsInEvent = false;
|
|
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_NUN].setAnimEnable(true);
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_BG].setAnimEnable(true);
|
|
mAnmGroups[DO_BUTTON_ANIM_IN].setAnimEnable(true);
|
|
mAnmGroups[DO_BUTTON_ANIM_IN].setFrame(0.0f);
|
|
mAnmGroups[DO_BUTTON_ANIM_MOVE_OUT].setAnimEnable(false);
|
|
mLyt.calc();
|
|
mAnmGroups[DO_BUTTON_ANIM_IN].setAnimEnable(false);
|
|
|
|
mStateMgr.changeState(StateID_InvisibleWait);
|
|
field_0x48C = 0;
|
|
return true;
|
|
}
|
|
|
|
bool dLytDobutton_c::remove() {
|
|
for (int i = 0; i < DO_BUTTON_NUM_ANIMS; i++) {
|
|
mAnmGroups[i].remove();
|
|
}
|
|
return true;
|
|
}
|
|
|
|
bool dLytDobutton_c::execute() {
|
|
bool isInEvent = EventManager::isInEvent();
|
|
bool b1 = true;
|
|
if (dAcPy_c::GetLink()->isInBambooCuttingMinigame()) {
|
|
setActionTextStuff(ICON_12, ACT_DO_70, false);
|
|
}
|
|
if (field_0x490 == 0) {
|
|
if (isInEvent != mSavedIsInEvent) {
|
|
if (isInEvent && field_0x488 == field_0x480 && mNextDoActionToShow == field_0x47C) {
|
|
setActionTextStuff(ICON_NONE, ACT_DO_INVALID, false);
|
|
b1 = false;
|
|
}
|
|
mSavedIsInEvent = isInEvent;
|
|
} else if (isInEvent && field_0x490 == 0 && field_0x488 == field_0x480 && mNextDoActionToShow == field_0x47C) {
|
|
setActionTextStuff(ICON_NONE, ACT_DO_INVALID, false);
|
|
b1 = false;
|
|
}
|
|
}
|
|
|
|
if (b1) {
|
|
set_0x47C_0x480(mNextDoActionToShow, field_0x488);
|
|
}
|
|
|
|
if ((isInEvent && !field_0x490) || dLytMeter_c::getItemSelect0x75A2() != 0 ||
|
|
dLytMeter_c::getMinusBtnFn800F7600()) {
|
|
setActionTextStuffInternal(41, ACT_DO_INVALID, false);
|
|
}
|
|
|
|
for (int i = 0; i < DO_BUTTON_NUM_ANIMS; i++) {
|
|
if (i != DO_BUTTON_ANIM_BASIC_INFO && i != DO_BUTTON_ANIM_LOOP_MOVE_INFO && i != DO_BUTTON_ANIM_MOVE_ALPHA) {
|
|
if (mAnmGroups[i].isEnabled()) {
|
|
mAnmGroups[i].play();
|
|
}
|
|
}
|
|
}
|
|
|
|
if (mAnmGroups[DO_BUTTON_ANIM_LOOP_MOVE_INFO].isEnabled() || mAnmGroups[DO_BUTTON_ANIM_MOVE_ALPHA].isEnabled()) {
|
|
bool b2 = false;
|
|
if (mAnmGroups[DO_BUTTON_ANIM_LOOP_MOVE_INFO].isStop2()) {
|
|
if (((field_0x478 == 26 && field_0x474 == 11) || (field_0x478 == 27 && field_0x474 == 11) ||
|
|
(field_0x478 == 28 && field_0x474 == 11) || (field_0x478 == 29 && field_0x474 == 11) ||
|
|
(field_0x478 == 30 && field_0x474 == 8) || (field_0x478 == 31 && field_0x474 == 11) ||
|
|
(field_0x478 == 32 && field_0x474 == 36) || (field_0x478 == 33 && field_0x474 == 11) ||
|
|
(field_0x478 == 34 && field_0x474 == 11) || (field_0x478 == 35 && field_0x474 == 11)) &&
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_MOVE_INFO].getFrame() == 0.0f) {
|
|
mAnmGroups[DO_BUTTON_ANIM_BASIC_INFO].setAnimEnable(true);
|
|
mAnmGroups[DO_BUTTON_ANIM_BASIC_INFO].setFrame(field_0x474);
|
|
}
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_MOVE_INFO].setAnimEnable(false);
|
|
} else {
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_MOVE_INFO].play();
|
|
b2 = true;
|
|
}
|
|
if (mAnmGroups[DO_BUTTON_ANIM_MOVE_ALPHA].isStop2()) {
|
|
mAnmGroups[DO_BUTTON_ANIM_MOVE_ALPHA].setAnimEnable(false);
|
|
} else {
|
|
mAnmGroups[DO_BUTTON_ANIM_MOVE_ALPHA].play();
|
|
b2 = true;
|
|
}
|
|
|
|
if (b2) {
|
|
mLyt.calc();
|
|
}
|
|
fn_8010E3D0(mDoActionToShow != ACT_DO_NONE);
|
|
}
|
|
|
|
mStateMgr.executeState();
|
|
|
|
if (((field_0x474 == 1 && mDoActionToShow == ACT_DO_27) ||
|
|
(field_0x474 == 1 && mDoActionToShow == ACT_DO_BREAK_FREE)) &&
|
|
field_0x491) {
|
|
if (!mAnmGroups[DO_BUTTON_ANIM_LOOP_RECOVER].isEnabled()) {
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_RECOVER].setFrame(0.0f);
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_RECOVER].setRate(3.0f);
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_RECOVER].setAnimEnable(true);
|
|
}
|
|
if (mAnmGroups[DO_BUTTON_ANIM_LOOP_REMO_CON].isEnabled()) {
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_REMO_CON].setRate(1.0f);
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_REMO_CON].setAnimEnable(false);
|
|
}
|
|
if (mAnmGroups[DO_BUTTON_ANIM_LOOP_ROTATE].isEnabled()) {
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_ROTATE].setRate(1.0f);
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_ROTATE].setAnimEnable(false);
|
|
}
|
|
} else if ((field_0x474 == 6 && field_0x491) || (field_0x478 == 6 && *mStateMgr.getStateID() == StateID_Out)) {
|
|
// Same code as above, copypasted
|
|
if (!mAnmGroups[DO_BUTTON_ANIM_LOOP_RECOVER].isEnabled()) {
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_RECOVER].setFrame(0.0f);
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_RECOVER].setRate(3.0f);
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_RECOVER].setAnimEnable(true);
|
|
}
|
|
if (mAnmGroups[DO_BUTTON_ANIM_LOOP_REMO_CON].isEnabled()) {
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_REMO_CON].setRate(1.0f);
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_REMO_CON].setAnimEnable(false);
|
|
}
|
|
if (mAnmGroups[DO_BUTTON_ANIM_LOOP_ROTATE].isEnabled()) {
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_ROTATE].setRate(1.0f);
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_ROTATE].setAnimEnable(false);
|
|
}
|
|
} else {
|
|
if (mAnmGroups[DO_BUTTON_ANIM_LOOP_RECOVER].isEnabled()) {
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_RECOVER].setRate(1.0f);
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_RECOVER].setAnimEnable(false);
|
|
}
|
|
|
|
if (field_0x474 == 4 || field_0x474 == 28 || field_0x474 == 29) {
|
|
if (mAnmGroups[DO_BUTTON_ANIM_LOOP_REMO_CON].isEnabled()) {
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_REMO_CON].setRate(1.0f);
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_REMO_CON].setAnimEnable(false);
|
|
}
|
|
if (!mAnmGroups[DO_BUTTON_ANIM_LOOP_ROTATE].isEnabled()) {
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_ROTATE].setFrame(0.0f);
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_ROTATE].setRate(1.0f);
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_ROTATE].setAnimEnable(true);
|
|
}
|
|
} else if (field_0x474 == 12 && mDoActionToShow == ACT_DO_70) {
|
|
if (!mAnmGroups[DO_BUTTON_ANIM_LOOP_REMO_CON].isEnabled()) {
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_REMO_CON].setFrame(0.0f);
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_REMO_CON].setAnimEnable(true);
|
|
}
|
|
|
|
if (mAnmGroups[DO_BUTTON_ANIM_LOOP_REMO_CON].getRate() != 2.0f) {
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_REMO_CON].setRate(2.0f);
|
|
}
|
|
|
|
if (mAnmGroups[DO_BUTTON_ANIM_LOOP_ROTATE].isEnabled()) {
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_ROTATE].setRate(1.0f);
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_ROTATE].setAnimEnable(false);
|
|
}
|
|
} else {
|
|
if (!mAnmGroups[DO_BUTTON_ANIM_LOOP_REMO_CON].isEnabled()) {
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_REMO_CON].setFrame(0.0f);
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_REMO_CON].setAnimEnable(true);
|
|
}
|
|
if (mAnmGroups[DO_BUTTON_ANIM_LOOP_REMO_CON].getRate() != 1.0f) {
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_REMO_CON].setRate(1.0f);
|
|
}
|
|
if (mAnmGroups[DO_BUTTON_ANIM_LOOP_ROTATE].isEnabled()) {
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_ROTATE].setRate(1.0f);
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_ROTATE].setAnimEnable(false);
|
|
}
|
|
}
|
|
}
|
|
|
|
mLyt.calc();
|
|
|
|
if (field_0x474 >= 26 && field_0x474 < 36) {
|
|
if (!mAnmGroups[DO_BUTTON_ANIM_LOOP_MOVE_INFO].isEnabled()) {
|
|
if (mAnmGroups[DO_BUTTON_ANIM_LOOP_BTN].isEnabled()) {
|
|
if (mAnmGroups[DO_BUTTON_ANIM_LOOP_BTN].getFrame() == 0.0f) {
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_BTN].setAnimEnable(false);
|
|
}
|
|
}
|
|
if (mAnmGroups[DO_BUTTON_ANIM_LOOP_BTN_Z].isEnabled()) {
|
|
if (mAnmGroups[DO_BUTTON_ANIM_LOOP_BTN_Z].getFrame() == 0.0f) {
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_BTN_Z].setAnimEnable(false);
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
if (!mAnmGroups[DO_BUTTON_ANIM_LOOP_BTN].isEnabled()) {
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_BTN].setAnimEnable(true);
|
|
}
|
|
|
|
if (!mAnmGroups[DO_BUTTON_ANIM_LOOP_BTN_Z].isEnabled()) {
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_BTN_Z].setAnimEnable(true);
|
|
}
|
|
}
|
|
|
|
if (mAnmGroups[DO_BUTTON_ANIM_BASIC_INFO].isEnabled()) {
|
|
mAnmGroups[DO_BUTTON_ANIM_BASIC_INFO].setAnimEnable(false);
|
|
}
|
|
|
|
setActionTextStuffInternal(41, ACT_DO_INVALID, false);
|
|
return true;
|
|
}
|
|
|
|
bool dLytDobutton_c::draw() {
|
|
mLyt.addToDrawList();
|
|
return true;
|
|
}
|
|
|
|
static const s32 sActDoIds[] = {
|
|
1, // ACT_DO_CLIMB_UP
|
|
2, // ACT_DO_JUMP
|
|
3, // ACT_DO_DROP_DOWN
|
|
4, // ACT_DO_LET_GO
|
|
5, // ACT_DO_OPEN
|
|
6, // ACT_DO_PUT_DOWN
|
|
7, // ACT_DO_THROW
|
|
8, // ACT_DO_BURROW
|
|
9, // ACT_DO_ROLL
|
|
10, // ACT_DO_9
|
|
11, // ACT_DO_MOVE
|
|
12, // ACT_DO_GRAB
|
|
13, // ACT_DO_SHOOT
|
|
14, // ACT_DO_13
|
|
15, // ACT_DO_14
|
|
16, // ACT_DO_15
|
|
17, // ACT_DO_TALK
|
|
18, // ACT_DO_EXAMINE
|
|
19, // ACT_DO_DRAW
|
|
20, // ACT_DO_19
|
|
21, // ACT_DO_BLOW
|
|
22, // ACT_DO_21
|
|
23, // ACT_DO_22
|
|
24, // ACT_DO_SWIM
|
|
25, // ACT_DO_LEAP
|
|
26, // ACT_DO_DASH
|
|
27, // ACT_DO_GET_OUT
|
|
28, // ACT_DO_27
|
|
29, // ACT_DO_PICK_UP
|
|
30, // ACT_DO_SIT
|
|
31, // ACT_DO_STAND
|
|
32, // ACT_DO_DIG
|
|
33, // ACT_DO_32
|
|
34, // ACT_DO_33
|
|
35, // ACT_DO_BREAK_FREE
|
|
36, // ACT_DO_35
|
|
37, // ACT_DO_36
|
|
38, // ACT_DO_PLANT
|
|
39, // ACT_DO_CATCH
|
|
40, // ACT_DO_SPEED_UP
|
|
41, // ACT_DO_SAILCLOTH
|
|
42, // ACT_DO_PUT_AWAY
|
|
43, // ACT_DO_EMERGE
|
|
44, // ACT_DO_INSERT
|
|
45, // ACT_DO_44
|
|
46, // ACT_DO_TURN
|
|
47, // ACT_DO_PUSH_IN
|
|
48, // ACT_DO_47
|
|
49, // ACT_DO_DRAW_BOW
|
|
50, // ACT_DO_49
|
|
51, // ACT_DO_50
|
|
52, // ACT_DO_51
|
|
53, // ACT_DO_SWING
|
|
54, // ACT_DO_BALANCE
|
|
55, // ACT_DO_JOSTLE
|
|
56, // ACT_DO_55
|
|
57, // ACT_DO_SLEEP
|
|
58, // ACT_DO_DROP
|
|
59, // ACT_DO_LAUNCH
|
|
60, // ACT_DO_READ
|
|
61, // ACT_DO_WHIP
|
|
62, // ACT_DO_PULL
|
|
63, // ACT_DO_DRINK
|
|
64, // ACT_DO_63
|
|
65, // ACT_DO_GET_IN
|
|
66, // ACT_DO_FIRE
|
|
67, // ACT_DO_ATTACK
|
|
68, // ACT_DO_FATAL_BLOW
|
|
69, // ACT_DO_JUMP_DOWN
|
|
70, // ACT_DO_STRUM
|
|
71, // ACT_DO_70
|
|
72, // ACT_DO_RELEASE
|
|
73, // ACT_DO_GRAB_2
|
|
74, // ACT_DO_READY_STANCE
|
|
75, // ACT_DO_REMOVE
|
|
76, // ACT_DO_READY_SWORD
|
|
77, // ACT_DO_THRUST_SWORD
|
|
78, // ACT_DO_USE
|
|
79, // ACT_DO_SCOOP
|
|
80, // ACT_DO_79
|
|
81, // ACT_DO_80
|
|
82, // ACT_DO_LOOK
|
|
83, // ACT_DO_DOWSE
|
|
84, // ACT_DO_PILOT
|
|
85, // ACT_DO_LOOK_DOWN
|
|
86, // ACT_DO_DIVE
|
|
87, // ACT_DO_SELECT
|
|
88, // ACT_DO_GRAB_3
|
|
89, // ACT_DO_MOVE_2
|
|
90, // ACT_DO_ACCELERATE
|
|
91, // ACT_DO_CHARGE
|
|
92, // ACT_DO_LEAN
|
|
93, // ACT_DO_PRESS
|
|
-1,
|
|
};
|
|
|
|
void dLytDobutton_c::realize() {
|
|
// TODO: what?
|
|
s32 i1 = field_0x478;
|
|
s32 i2 = field_0x474;
|
|
if ((i1 == 11 && i2 == 26) || (i1 == 11 && i2 == 27) || (i1 == 11 && i2 == 28) || (i1 == 11 && i2 == 29) ||
|
|
(i1 == 8 && i2 == 30) || (i1 == 8 && i2 == 31) || (i1 == 36 && i2 == 32) || (i1 == 11 && i2 == 33) ||
|
|
(i1 == 11 && i2 == 34) || (i1 == 11 && i2 == 35)) {
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_BTN].setFrame(0.0f);
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_BTN_Z].setFrame(0.0f);
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_NUN].setFrame(0.0f);
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_REMO_CON].setFrame(0.0f);
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_RECOVER].setFrame(0.0f);
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_ROTATE].setFrame(0.0f);
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_MOVE_INFO].setForwardOnce();
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_MOVE_INFO].setAnimEnable(true);
|
|
mAnmGroups[DO_BUTTON_ANIM_MOVE_ALPHA].setForwardOnce();
|
|
mAnmGroups[DO_BUTTON_ANIM_MOVE_ALPHA].setAnimEnable(true);
|
|
} else if ((i1 == 26 && i2 == 11) || (i1 == 27 && i2 == 11) || (i1 == 28 && i2 == 11) || (i1 == 29 && i2 == 11) ||
|
|
(i1 == 30 && i2 == 8) || (i1 == 31 && i2 == /* this one is changed 8 -> 11 */ 11) ||
|
|
(i1 == 32 && i2 == 36) || (i1 == 33 && i2 == 11) || (i1 == 34 && i2 == 11) || (i1 == 35 && i2 == 11)) {
|
|
// Same conditions as above, but inverted (with one exception. Is that exception a bug?)
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_MOVE_INFO].setBackwardsOnce();
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_MOVE_INFO].setAnimEnable(true);
|
|
mAnmGroups[DO_BUTTON_ANIM_MOVE_ALPHA].setBackwardsOnce();
|
|
mAnmGroups[DO_BUTTON_ANIM_MOVE_ALPHA].setAnimEnable(true);
|
|
i2 = field_0x478;
|
|
} else if (i2 >= 26 && i2 < 36) {
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_BTN].setFrame(0.0f);
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_BTN_Z].setFrame(0.0f);
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_NUN].setFrame(0.0f);
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_REMO_CON].setFrame(0.0f);
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_RECOVER].setFrame(0.0f);
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_ROTATE].setFrame(0.0f);
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_MOVE_INFO].setForwardOnce();
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_MOVE_INFO].setAnimEnable(true);
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_MOVE_INFO].setToEnd2();
|
|
mAnmGroups[DO_BUTTON_ANIM_MOVE_ALPHA].setForwardOnce();
|
|
mAnmGroups[DO_BUTTON_ANIM_MOVE_ALPHA].setAnimEnable(true);
|
|
mAnmGroups[DO_BUTTON_ANIM_MOVE_ALPHA].setToEnd2();
|
|
} else {
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_MOVE_INFO].setBackwardsOnce();
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_MOVE_INFO].setAnimEnable(true);
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_MOVE_INFO].setToEnd2();
|
|
if (field_0x474 == 11 || field_0x474 == 8) {
|
|
mAnmGroups[DO_BUTTON_ANIM_MOVE_ALPHA].setBackwardsOnce();
|
|
} else {
|
|
mAnmGroups[DO_BUTTON_ANIM_MOVE_ALPHA].setForwardOnce();
|
|
}
|
|
mAnmGroups[DO_BUTTON_ANIM_MOVE_ALPHA].setAnimEnable(true);
|
|
mAnmGroups[DO_BUTTON_ANIM_MOVE_ALPHA].setToEnd2();
|
|
}
|
|
|
|
mAnmGroups[DO_BUTTON_ANIM_BASIC_INFO].setAnimEnable(true);
|
|
mAnmGroups[DO_BUTTON_ANIM_BASIC_INFO].setFrame(i2);
|
|
if (mDoActionToShow != ACT_DO_NONE) {
|
|
SizedString<16> buf;
|
|
buf.sprintf("ACT_DO_%03d", sActDoIds[mDoActionToShow]);
|
|
mpTextBoxes[0]->setMessageWithGlobalTextProcessor2(buf, nullptr);
|
|
mpTextBoxes[1]->setMessageWithGlobalTextProcessor2(buf, nullptr);
|
|
fn_8010E3D0(true);
|
|
} else {
|
|
wchar_t buf1[2];
|
|
buf1[0] = buf1[1] = 0;
|
|
mpTextBoxes[0]->setTextWithGlobalTextProcessor(buf1, nullptr);
|
|
mpTextBoxes[1]->setTextWithGlobalTextProcessor(buf1, nullptr);
|
|
fn_8010E3D0(false);
|
|
}
|
|
|
|
if (mDoActionToShow == ACT_DO_CATCH) {
|
|
SmallSoundManager::GetInstance()->playSound(SE_S_CALL_BIRD_CATCH);
|
|
}
|
|
}
|
|
|
|
static const s32 sPaneIdxes1[] = {
|
|
DO_BUTTON_PANE_A_BTN_00, // ICON_0
|
|
DO_BUTTON_PANE_SWING_00, // ICON_1
|
|
DO_BUTTON_PANE_UP_SWING_00, // ICON_2
|
|
DO_BUTTON_PANE_DOWN_SWING_00, // ICON_3
|
|
DO_BUTTON_PANE_ROTATE_00, // ICON_4
|
|
DO_BUTTON_PANE_NONE, // ICON_5
|
|
DO_BUTTON_PANE_NUN_RIMO_00, // ICON_6
|
|
DO_BUTTON_PANE_A_BTN_00, // ICON_7
|
|
DO_BUTTON_PANE_C_BTN_00, // ICON_8
|
|
DO_BUTTON_PANE_NUN_DRAG_00, // ICON_9
|
|
DO_BUTTON_PANE_C_BTN_01, // ICON_10
|
|
DO_BUTTON_PANE_A_BTN_DOWN_00, // ICON_11
|
|
DO_BUTTON_PANE_SWING_01, // ICON_12
|
|
DO_BUTTON_PANE_DRAW_00, // ICON_13
|
|
DO_BUTTON_PANE_PLAY_00, // ICON_14
|
|
DO_BUTTON_PANE_NONE, // ICON_15
|
|
DO_BUTTON_PANE_NUNCHAKU_01, // ICON_16
|
|
DO_BUTTON_PANE_UPSET_00, // ICON_17
|
|
DO_BUTTON_PANE_STAB_00, // ICON_18
|
|
DO_BUTTON_PANE_NONE, // ICON_19
|
|
DO_BUTTON_PANE_PULL_OUT_01, // ICON_20
|
|
DO_BUTTON_PANE_A_BTN_01, // ICON_21
|
|
DO_BUTTON_PANE_SWING_03, // ICON_22
|
|
DO_BUTTON_PANE_B_BTN_00, // ICON_23
|
|
DO_BUTTON_PANE_B_BTN_01, // ICON_24
|
|
DO_BUTTON_PANE_TWIST_00, // ICON_25
|
|
DO_BUTTON_PANE_A_BTN_DOWN_00, // ICON_26
|
|
DO_BUTTON_PANE_A_BTN_DOWN_00, // ICON_27
|
|
DO_BUTTON_PANE_A_BTN_DOWN_01, // ICON_28
|
|
DO_BUTTON_PANE_A_BTN_DOWN_01, // ICON_29
|
|
DO_BUTTON_PANE_C_BTN_00, // ICON_30
|
|
DO_BUTTON_PANE_ZBTN_00, // ICON_31
|
|
DO_BUTTON_PANE_ZBTN_01, // ICON_32
|
|
DO_BUTTON_PANE_A_BTN_DOWN_01, // ICON_33
|
|
DO_BUTTON_PANE_A_BTN_DOWN_00, // ICON_34
|
|
DO_BUTTON_PANE_A_BTN_DOWN_00, // ICON_35
|
|
DO_BUTTON_PANE_ZBTN_00, // ICON_36
|
|
DO_BUTTON_PANE_CROSS_BTN_00, // ICON_37
|
|
DO_BUTTON_PANE_UP_SWING_01, // ICON_38
|
|
DO_BUTTON_PANE_A_BTN_DOWN_02, // ICON_39
|
|
DO_BUTTON_PANE_A_BTN_DOWN_02, // ICON_40
|
|
|
|
};
|
|
|
|
static const s32 sPaneIdxes2[] = {
|
|
DO_BUTTON_PANE_NONE, // ICON_0
|
|
DO_BUTTON_PANE_NONE, // ICON_1
|
|
DO_BUTTON_PANE_NONE, // ICON_2
|
|
DO_BUTTON_PANE_NONE, // ICON_3
|
|
DO_BUTTON_PANE_NONE, // ICON_4
|
|
DO_BUTTON_PANE_NONE, // ICON_5
|
|
DO_BUTTON_PANE_NONE, // ICON_6
|
|
DO_BUTTON_PANE_NONE, // ICON_7
|
|
DO_BUTTON_PANE_NONE, // ICON_8
|
|
DO_BUTTON_PANE_NONE, // ICON_9
|
|
DO_BUTTON_PANE_NONE, // ICON_10
|
|
DO_BUTTON_PANE_NONE, // ICON_11
|
|
DO_BUTTON_PANE_NONE, // ICON_12
|
|
DO_BUTTON_PANE_NONE, // ICON_13
|
|
DO_BUTTON_PANE_NONE, // ICON_14
|
|
DO_BUTTON_PANE_NONE, // ICON_15
|
|
DO_BUTTON_PANE_NONE, // ICON_16
|
|
DO_BUTTON_PANE_NONE, // ICON_17
|
|
DO_BUTTON_PANE_NONE, // ICON_18
|
|
DO_BUTTON_PANE_NONE, // ICON_19
|
|
DO_BUTTON_PANE_NONE, // ICON_20
|
|
DO_BUTTON_PANE_NONE, // ICON_21
|
|
DO_BUTTON_PANE_NONE, // ICON_22
|
|
DO_BUTTON_PANE_NONE, // ICON_23
|
|
DO_BUTTON_PANE_NONE, // ICON_24
|
|
DO_BUTTON_PANE_NONE, // ICON_25
|
|
DO_BUTTON_PANE_NUNCHAKU_02, // ICON_26
|
|
DO_BUTTON_PANE_NUNCHAKU_03, // ICON_27
|
|
DO_BUTTON_PANE_ROTATE_00, // ICON_28
|
|
DO_BUTTON_PANE_ROTATE_00, // ICON_29
|
|
DO_BUTTON_PANE_NUN_DRAG_00, // ICON_30
|
|
DO_BUTTON_PANE_A_BTN_00, // ICON_31
|
|
DO_BUTTON_PANE_UP_SWING_00, // ICON_32
|
|
DO_BUTTON_PANE_PLAY_00, // ICON_33
|
|
DO_BUTTON_PANE_PULL_OUT_01, // ICON_34
|
|
DO_BUTTON_PANE_STAB_00, // ICON_35
|
|
DO_BUTTON_PANE_NONE, // ICON_36
|
|
DO_BUTTON_PANE_NONE, // ICON_37
|
|
DO_BUTTON_PANE_NONE, // ICON_38
|
|
DO_BUTTON_PANE_STAB_00, // ICON_39
|
|
DO_BUTTON_PANE_PULL_OUT_01, // ICON_40
|
|
|
|
};
|
|
|
|
void dLytDobutton_c::fn_8010E3D0(bool b) {
|
|
s32 i1 = field_0x474;
|
|
if (mAnmGroups[DO_BUTTON_ANIM_LOOP_MOVE_INFO].isEnabled()) {
|
|
if (mAnmGroups[DO_BUTTON_ANIM_LOOP_MOVE_INFO].isPlayingForwardsOnce()) {
|
|
if (mAnmGroups[DO_BUTTON_ANIM_LOOP_MOVE_INFO].getFrame() <
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_MOVE_INFO].getAnimDuration() * 0.5f) {
|
|
i1 = field_0x478;
|
|
}
|
|
} else {
|
|
if (mAnmGroups[DO_BUTTON_ANIM_LOOP_MOVE_INFO].getFrame() >
|
|
mAnmGroups[DO_BUTTON_ANIM_LOOP_MOVE_INFO].getAnimDuration() * 0.5f) {
|
|
i1 = field_0x478;
|
|
}
|
|
}
|
|
}
|
|
|
|
s32 idx1 = sPaneIdxes1[i1];
|
|
f32 w1 = mpPanes[idx1]->GetSize().width;
|
|
f32 x1 = mpPanes[idx1]->GetTranslate().x;
|
|
f32 left = x1 - w1 / 2.0f;
|
|
f32 right = x1 + w1 / 2.0f;
|
|
f32 xBase = mpPanes[5]->GetTranslate().x;
|
|
|
|
s32 idx2 = sPaneIdxes2[i1];
|
|
if (idx2 != 37) {
|
|
f32 x2 = mpPanes[idx2]->GetTranslate().x;
|
|
f32 w2 = mpPanes[idx2]->GetSize().width;
|
|
f32 left2 = x2 - w2 / 2.0f;
|
|
f32 right2 = x2 + w2 / 2.0f;
|
|
if (left > left2) {
|
|
left = left2;
|
|
}
|
|
if (right < right2) {
|
|
right = right2;
|
|
}
|
|
w1 = right - left;
|
|
}
|
|
|
|
nw4r::lyt::Size sz3 = mpPanes[3]->GetSize();
|
|
nw4r::lyt::Size sz4 = mpPanes[4]->GetSize();
|
|
if (b) {
|
|
f32 tmp = (xBase - left);
|
|
w1 = mpTextBoxes[0]->GetLineWidth(nullptr) + tmp;
|
|
}
|
|
f32 w = w1 + sDoButtonClass.field_0x10;
|
|
sz3.width = w;
|
|
sz4.width = w;
|
|
mpPanes[3]->SetSize(sz3);
|
|
mpPanes[4]->SetSize(sz4);
|
|
nw4r::math::VEC3 v = mpPanes[1]->GetTranslate();
|
|
v.x = -left - w1 / 2.0f;
|
|
mpPanes[1]->SetTranslate(v);
|
|
}
|
|
|
|
void dLytDobutton_c::setActionTextStuffInternal(s32 a1, Act_Do_e a2, bool b) {
|
|
field_0x488 = a1;
|
|
mNextDoActionToShow = (Act_Do_e)a2;
|
|
field_0x490 = b;
|
|
}
|
|
|
|
dLytDobutton_c::Act_Do_e dLytDobutton_c::getActionInternal() const {
|
|
return mDoActionToShow;
|
|
}
|
|
|
|
s32 dLytDobutton_c::fn_8010E5E0() const {
|
|
if (mDoActionToShow != ACT_DO_INVALID) {
|
|
return field_0x474;
|
|
}
|
|
return ICON_NONE;
|
|
}
|