mirror of
https://github.com/zeldaret/ss
synced 2026-06-28 10:40:46 -04:00
d_lyt_msg_window_wood OK, d_lyt_common_a_btn OK
This commit is contained in:
+1
-1
@@ -234,7 +234,7 @@ bool dCsGame_c::lytItemCursor_c::doInit() {
|
||||
mAnm.init(mAnmGroups.tmp.mAnmGroups, lytItemCursorMap, 0x17, mpResAcc, mLyt.getLayout());
|
||||
|
||||
for (int i = 0; i < 0x17; i++) {
|
||||
mAnmGroups.tmp.mAnmGroups[i].setDirection(false);
|
||||
mAnmGroups.tmp.mAnmGroups[i].bind(false);
|
||||
mAnmGroups.tmp.mAnmGroups[i].setAnimEnable(false);
|
||||
}
|
||||
|
||||
|
||||
+4
-4
@@ -811,7 +811,7 @@ bool AnmGroupBase_c::init(
|
||||
return true;
|
||||
}
|
||||
|
||||
bool AnmGroupBase_c::setDirection(bool b) {
|
||||
bool AnmGroupBase_c::bind(bool bDisable) {
|
||||
nw4r::lyt::AnimTransform *anmTransform = mpAnmTransform;
|
||||
if (anmTransform == nullptr) {
|
||||
return false;
|
||||
@@ -823,7 +823,7 @@ bool AnmGroupBase_c::setDirection(bool b) {
|
||||
|
||||
nw4r::lyt::BindAnimation(mpGroup, anmTransform, false, b);
|
||||
mFlags |= ANMGROUP_FLAG_BOUND;
|
||||
if (b) {
|
||||
if (bDisable) {
|
||||
mFlags = (mFlags & ~ANMGROUP_FLAG_ENABLE);
|
||||
} else {
|
||||
mFlags |= ANMGROUP_FLAG_ENABLE;
|
||||
@@ -855,7 +855,7 @@ bool AnmGroupBase_c::unbind() {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool AnmGroupBase_c::afterUnbind() {
|
||||
bool AnmGroupBase_c::remove() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -905,7 +905,7 @@ bool AnmGroups::init(
|
||||
|
||||
void AnmGroups::remove() {
|
||||
for (int i = 0; i < mNumAnmGroups; i++) {
|
||||
mpAnmGroups[i].afterUnbind();
|
||||
mpAnmGroups[i].remove();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ bool dLytAreaCaptionParts_c::init(int first) {
|
||||
mAnmCtrlInUse[i] = false;
|
||||
} else {
|
||||
mAnmGroups[i].init(brlanMap1[i].mFile, &mResAcc, mLyt.getLayout(), brlanMap1[i].mName);
|
||||
mAnmGroups[i].setDirection(false);
|
||||
mAnmGroups[i].bind(false);
|
||||
mAnmGroups[i].setAnimEnable(false);
|
||||
mAnmCtrlInUse[i] = true;
|
||||
}
|
||||
@@ -56,7 +56,7 @@ bool dLytAreaCaptionParts_c::init(int first) {
|
||||
mAnmCtrlInUse[i] = false;
|
||||
} else {
|
||||
mAnmGroups[i].init(brlanMap2[i].mFile, &mResAcc, mLyt.getLayout(), brlanMap2[i].mName);
|
||||
mAnmGroups[i].setDirection(false);
|
||||
mAnmGroups[i].bind(false);
|
||||
mAnmGroups[i].setAnimEnable(false);
|
||||
mAnmCtrlInUse[i] = true;
|
||||
}
|
||||
@@ -78,7 +78,7 @@ bool dLytAreaCaptionParts_c::remove() {
|
||||
for (int i = 0; i < 4; i++) {
|
||||
if (mAnmCtrlInUse[i]) {
|
||||
mAnmGroups[i].unbind();
|
||||
mAnmGroups[i].afterUnbind();
|
||||
mAnmGroups[i].remove();
|
||||
}
|
||||
}
|
||||
mResAcc.detach();
|
||||
|
||||
@@ -48,7 +48,7 @@ bool dLytBattery_c::init() {
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
mAnmGroups[i].init(brlanMap[i].mFile, &mResAcc, mLyt.getLayout(), brlanMap[i].mName);
|
||||
mAnmGroups[i].setDirection(false);
|
||||
mAnmGroups[i].bind(false);
|
||||
mAnmGroups[i].setAnimEnable(false);
|
||||
}
|
||||
|
||||
|
||||
@@ -109,7 +109,7 @@ bool dLytBirdGaugeMain_c::build(d2d::ResAccIf_c *resAcc) {
|
||||
|
||||
for (int i = 0; i < LYT_SKY_GAUGE_MAIN_NUM_ANIMS; i++) {
|
||||
mAnmGroups[i].init(brlanMap[i].mFile, resAcc, mLyt.getLayout(), brlanMap[i].mName);
|
||||
mAnmGroups[i].setDirection(false);
|
||||
mAnmGroups[i].bind(false);
|
||||
mAnmGroups[i].setAnimEnable(false);
|
||||
}
|
||||
|
||||
@@ -148,7 +148,7 @@ bool dLytBirdGaugeMain_c::execute() {
|
||||
bool dLytBirdGaugeMain_c::remove() {
|
||||
mLyt.unbindAnims();
|
||||
for (int i = 0; i < LYT_SKY_GAUGE_MAIN_NUM_ANIMS; i++) {
|
||||
mAnmGroups[i].afterUnbind();
|
||||
mAnmGroups[i].remove();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,244 @@
|
||||
|
||||
|
||||
#include "d/lyt/d_lyt_common_a_btn.h"
|
||||
|
||||
#include "common.h"
|
||||
#include "d/d_sys.h"
|
||||
#include "d/lyt/d2d.h"
|
||||
#include "toBeSorted/small_sound_mgr.h"
|
||||
|
||||
static const d2d::LytBrlanMapping brlanMap[] = {
|
||||
{ "aBtn_00_in.brlan", "G_inOut_00"},
|
||||
{ "aBtn_00_loop.brlan", "G_loopBtn_00"},
|
||||
{"aBtn_00_decide.brlan", "G_decide_00"},
|
||||
{ "aBtn_00_out.brlan", "G_inOut_00"},
|
||||
};
|
||||
|
||||
#define MSG_ABTN_ANIM_IN 0
|
||||
#define MSG_ABTN_ANIM_LOOP 1
|
||||
#define MSG_ABTN_ANIM_DECIDE 2
|
||||
#define MSG_ABTN_ANIM_OUT 3
|
||||
|
||||
#define MSG_ABTN_NUM_ANIMS 4
|
||||
|
||||
const dLytCommonABtn_c::executeFunc dLytCommonABtn_c::sExecuteFuncs[4] = {
|
||||
&dLytCommonABtn_c::executeStateInvisible,
|
||||
&dLytCommonABtn_c::executeStateIn,
|
||||
&dLytCommonABtn_c::executeStateVisible,
|
||||
&dLytCommonABtn_c::executeStateDecideOut,
|
||||
};
|
||||
|
||||
bool dLytCommonABtn_c::build(d2d::ResAccIf_c *resAcc) {
|
||||
mLyt.setResAcc(resAcc);
|
||||
mLyt.build("aBtn_00.brlyt", nullptr);
|
||||
|
||||
for (int i = 0; i < MSG_ABTN_NUM_ANIMS; i++) {
|
||||
mAnm[i].init(brlanMap[i].mFile, resAcc, mLyt.getLayout(), brlanMap[i].mName);
|
||||
}
|
||||
|
||||
resetToInvisble();
|
||||
setSoundVariant(VARIANT_NORMAL);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool dLytCommonABtn_c::remove() {
|
||||
for (int i = 0; i < MSG_ABTN_NUM_ANIMS; i++) {
|
||||
mAnm[i].remove();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool dLytCommonABtn_c::execute() {
|
||||
runExecuteFunc();
|
||||
if (mState == STATE_INVISIBLE) {
|
||||
return true;
|
||||
}
|
||||
mLyt.calc();
|
||||
return true;
|
||||
}
|
||||
|
||||
bool dLytCommonABtn_c::requestIn() {
|
||||
if (mState != STATE_INVISIBLE) {
|
||||
return false;
|
||||
}
|
||||
mInRequested = true;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool dLytCommonABtn_c::requestOut(bool b) {
|
||||
if (mState != STATE_VISIBLE) {
|
||||
return false;
|
||||
}
|
||||
mOutRequested = true;
|
||||
field_0x1AC = b;
|
||||
return true;
|
||||
}
|
||||
|
||||
void dLytCommonABtn_c::resetToInvisble() {
|
||||
gotoStateInvisible();
|
||||
}
|
||||
|
||||
void dLytCommonABtn_c::setSoundVariant(SoundVariant value) {
|
||||
mSoundVariant = value;
|
||||
}
|
||||
|
||||
void dLytCommonABtn_c::runExecuteFunc() {
|
||||
executeFunc fn = sExecuteFuncs[mState];
|
||||
if (fn != nullptr) {
|
||||
(this->*fn)();
|
||||
}
|
||||
}
|
||||
|
||||
void dLytCommonABtn_c::gotoStateInvisible() {
|
||||
setState(STATE_INVISIBLE);
|
||||
mLyt.unbindAnims();
|
||||
|
||||
d2d::AnmGroup_c &inAnim = mAnm[MSG_ABTN_ANIM_IN];
|
||||
field_0x1A8 = 0;
|
||||
mInRequested = false;
|
||||
mOutRequested = false;
|
||||
mIsDoneOut = false;
|
||||
field_0x1AC = 0;
|
||||
mNoDecide = false;
|
||||
|
||||
inAnim.bind(false);
|
||||
inAnim.setAnimEnable(true);
|
||||
inAnim.setFrame(0.0f);
|
||||
if (dSys::getFrameRate() == 1) {
|
||||
inAnim.setRate(0.5f);
|
||||
} else {
|
||||
inAnim.setRate(1.0f);
|
||||
}
|
||||
mLyt.calc();
|
||||
}
|
||||
|
||||
void dLytCommonABtn_c::executeStateInvisible() {
|
||||
if (mInRequested != true) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (field_0x1AC == 1) {
|
||||
gotoStateInvisible();
|
||||
}
|
||||
mInRequested = false;
|
||||
field_0x1A8 = 1;
|
||||
gotoStateIn();
|
||||
}
|
||||
|
||||
void dLytCommonABtn_c::gotoStateIn() {
|
||||
setState(STATE_IN);
|
||||
}
|
||||
|
||||
void dLytCommonABtn_c::executeStateIn() {
|
||||
d2d::AnmGroup_c &anm = mAnm[MSG_ABTN_ANIM_IN];
|
||||
if (anm.isEndReached() == true) {
|
||||
goToStateVisible();
|
||||
} else {
|
||||
anm.play();
|
||||
}
|
||||
}
|
||||
|
||||
void dLytCommonABtn_c::goToStateVisible() {
|
||||
setState(STATE_VISIBLE);
|
||||
mAnm[MSG_ABTN_ANIM_IN].unbind();
|
||||
d2d::AnmGroup_c &anm = mAnm[MSG_ABTN_ANIM_LOOP];
|
||||
anm.bind(false);
|
||||
anm.setFrame(0.0f);
|
||||
if (dSys::getFrameRate() == 1) {
|
||||
anm.setRate(0.5f);
|
||||
} else {
|
||||
anm.setRate(1.0f);
|
||||
}
|
||||
}
|
||||
|
||||
void dLytCommonABtn_c::executeStateVisible() {
|
||||
if (mOutRequested == true) {
|
||||
goToStateDecideOut();
|
||||
mOutRequested = false;
|
||||
} else {
|
||||
d2d::AnmGroup_c &anm = mAnm[MSG_ABTN_ANIM_LOOP];
|
||||
anm.play();
|
||||
}
|
||||
}
|
||||
|
||||
void dLytCommonABtn_c::goToStateDecideOut() {
|
||||
setState(STATE_OUT);
|
||||
mAnm[MSG_ABTN_ANIM_LOOP].unbind();
|
||||
if (mNoDecide == true) {
|
||||
mNoDecide = false;
|
||||
d2d::AnmGroup_c &anm = mAnm[MSG_ABTN_ANIM_OUT];
|
||||
anm.bind(false);
|
||||
anm.setFrame(0.0f);
|
||||
if (dSys::getFrameRate() == 1) {
|
||||
anm.setRate(0.5f);
|
||||
} else {
|
||||
anm.setRate(1.0f);
|
||||
}
|
||||
mOutState = OUT_STATE_OUT;
|
||||
} else {
|
||||
d2d::AnmGroup_c &anm = mAnm[MSG_ABTN_ANIM_DECIDE];
|
||||
anm.bind(false);
|
||||
anm.setAnimEnable(true);
|
||||
anm.setFrame(0.0f);
|
||||
if (dSys::getFrameRate() == 1) {
|
||||
anm.setRate(0.5f);
|
||||
} else {
|
||||
anm.setRate(1.0f);
|
||||
}
|
||||
if (mSoundVariant == VARIANT_NORMAL) {
|
||||
SmallSoundManager::GetInstance()->playSound(SE_S_WINDOW_PRESS_A);
|
||||
} else {
|
||||
SmallSoundManager::GetInstance()->playSound(SE_S_TITLE_PRESS_START);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void dLytCommonABtn_c::executeStateDecideOut() {
|
||||
d2d::AnmGroup_c &decideAnm = mAnm[MSG_ABTN_ANIM_DECIDE];
|
||||
switch (mOutState) {
|
||||
case OUT_STATE_DECIDING: {
|
||||
if (decideAnm.isEndReached() == true) {
|
||||
mOutState = OUT_STATE_GOTO_OUT;
|
||||
if (field_0x1AC == 1) {
|
||||
mIsDoneOut = true;
|
||||
setState(STATE_INVISIBLE);
|
||||
break;
|
||||
}
|
||||
}
|
||||
decideAnm.play();
|
||||
break;
|
||||
}
|
||||
case OUT_STATE_GOTO_OUT: {
|
||||
decideAnm.unbind();
|
||||
d2d::AnmGroup_c &anmOut = mAnm[MSG_ABTN_ANIM_OUT];
|
||||
anmOut.bind(false);
|
||||
anmOut.setAnimEnable(true);
|
||||
anmOut.setFrame(0.0f);
|
||||
if (dSys::getFrameRate() == 1) {
|
||||
anmOut.setRate(0.5f);
|
||||
} else {
|
||||
anmOut.setRate(1.0f);
|
||||
}
|
||||
mOutState = OUT_STATE_OUT;
|
||||
break;
|
||||
}
|
||||
case OUT_STATE_OUT: {
|
||||
d2d::AnmGroup_c &anmOut = mAnm[MSG_ABTN_ANIM_OUT];
|
||||
if (anmOut.isEndReached() == true) {
|
||||
mOutState = OUT_STATE_GOTO_INVISIBLE;
|
||||
mIsDoneOut = true;
|
||||
}
|
||||
anmOut.play();
|
||||
break;
|
||||
}
|
||||
case OUT_STATE_GOTO_INVISIBLE: {
|
||||
gotoStateInvisible();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void dLytCommonABtn_c::setState(ABtnState state) {
|
||||
mState = state;
|
||||
mOutState = OUT_STATE_DECIDING;
|
||||
}
|
||||
@@ -60,7 +60,7 @@ bool dLytCommonArrow_c::fn_80168490() {
|
||||
d2d::dLytStructDList::GetInstance()->removeFromList2(&mStructD);
|
||||
mLytBase.unbindAnims();
|
||||
for (int i = 0; i < 9; i++) {
|
||||
mAnmGroups[i].afterUnbind();
|
||||
mAnmGroups[i].remove();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ bool dLytCommonIconItemPart1_c::build(d2d::ResAccIf_c *resAcc) {
|
||||
mLyt.build("commonIcon_02.brlyt", nullptr);
|
||||
for (int i = 0; i < ITEM_PART_1_NUM_ANIMS; i++) {
|
||||
mAnm[i].init(brlanMapPart1[i].mFile, resAcc, mLyt.getLayout(), brlanMapPart1[i].mName);
|
||||
mAnm[i].setDirection(false);
|
||||
mAnm[i].bind(false);
|
||||
mAnm[i].setRate(1.0f);
|
||||
}
|
||||
|
||||
@@ -61,7 +61,7 @@ bool dLytCommonIconItemPart1_c::build(d2d::ResAccIf_c *resAcc) {
|
||||
bool dLytCommonIconItemPart1_c::remove() {
|
||||
for (int i = 0; i < ITEM_PART_1_NUM_ANIMS; i++) {
|
||||
mAnm[i].unbind();
|
||||
mAnm[i].afterUnbind();
|
||||
mAnm[i].remove();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -276,7 +276,7 @@ bool dLytCommonIconItemPart2_c::build(d2d::ResAccIf_c *resAcc) {
|
||||
mLyt.build("commonIcon_03.brlyt", nullptr);
|
||||
for (int i = 0; i < ITEM_PART_2_NUM_ANIMS; i++) {
|
||||
mAnm[i].init(brlanMapPart2[i].mFile, resAcc, mLyt.getLayout(), brlanMapPart2[i].mName);
|
||||
mAnm[i].setDirection(false);
|
||||
mAnm[i].bind(false);
|
||||
mAnm[i].setRate(1.0f);
|
||||
}
|
||||
|
||||
@@ -292,7 +292,7 @@ bool dLytCommonIconItemPart2_c::build(d2d::ResAccIf_c *resAcc) {
|
||||
bool dLytCommonIconItemPart2_c::remove() {
|
||||
for (int i = 0; i < ITEM_PART_2_NUM_ANIMS; i++) {
|
||||
mAnm[i].unbind();
|
||||
mAnm[i].afterUnbind();
|
||||
mAnm[i].remove();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -600,7 +600,7 @@ bool dLytCommonIconItemPart3_c::build(d2d::ResAccIf_c *resAcc) {
|
||||
mLyt.build("commonIcon_04.brlyt", nullptr);
|
||||
for (int i = 0; i < ITEM_PART_3_NUM_ANIMS; i++) {
|
||||
mAnm[i].init(brlanMapPart3[i].mFile, resAcc, mLyt.getLayout(), brlanMapPart3[i].mName);
|
||||
mAnm[i].setDirection(false);
|
||||
mAnm[i].bind(false);
|
||||
mAnm[i].setRate(1.0f);
|
||||
}
|
||||
|
||||
@@ -612,7 +612,7 @@ bool dLytCommonIconItemPart3_c::build(d2d::ResAccIf_c *resAcc) {
|
||||
bool dLytCommonIconItemPart3_c::remove() {
|
||||
for (int i = 0; i < ITEM_PART_3_NUM_ANIMS; i++) {
|
||||
mAnm[i].unbind();
|
||||
mAnm[i].afterUnbind();
|
||||
mAnm[i].remove();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@ bool dLytCommonIconMaterialPart1_c::build(d2d::ResAccIf_c *resAcc) {
|
||||
mLyt.build("commonIcon_00.brlyt", nullptr);
|
||||
for (int i = 0; i < MATERIAL_PART_1_NUM_ANIMS; i++) {
|
||||
mAnm[i].init(brlanMapPart1[i].mFile, resAcc, mLyt.getLayout(), brlanMapPart1[i].mName);
|
||||
mAnm[i].setDirection(false);
|
||||
mAnm[i].bind(false);
|
||||
mAnm[i].setRate(1.0f);
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ bool dLytCommonIconMaterialPart1_c::build(d2d::ResAccIf_c *resAcc) {
|
||||
bool dLytCommonIconMaterialPart1_c::remove() {
|
||||
for (int i = 0; i < MATERIAL_PART_1_NUM_ANIMS; i++) {
|
||||
mAnm[i].unbind();
|
||||
mAnm[i].afterUnbind();
|
||||
mAnm[i].remove();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -240,7 +240,7 @@ bool dLytCommonIconMaterialPart2_c::build(d2d::ResAccIf_c *resAcc) {
|
||||
mLyt.build("commonIcon_01.brlyt", nullptr);
|
||||
for (int i = 0; i < MATERIAL_PART_2_NUM_ANIMS; i++) {
|
||||
mAnm[i].init(brlanMapPart2[i].mFile, resAcc, mLyt.getLayout(), brlanMapPart2[i].mName);
|
||||
mAnm[i].setDirection(false);
|
||||
mAnm[i].bind(false);
|
||||
mAnm[i].setRate(1.0f);
|
||||
}
|
||||
|
||||
@@ -256,7 +256,7 @@ bool dLytCommonIconMaterialPart2_c::build(d2d::ResAccIf_c *resAcc) {
|
||||
bool dLytCommonIconMaterialPart2_c::remove() {
|
||||
for (int i = 0; i < MATERIAL_PART_2_NUM_ANIMS; i++) {
|
||||
mAnm[i].unbind();
|
||||
mAnm[i].afterUnbind();
|
||||
mAnm[i].remove();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ dLytFader_c::~dLytFader_c() {
|
||||
|
||||
if (field_0x4DD == true) {
|
||||
for (int i = 0; i < 3; i++) {
|
||||
mLytStructAs[i].afterUnbind();
|
||||
mLytStructAs[i].remove();
|
||||
}
|
||||
mResAcc.detach();
|
||||
}
|
||||
@@ -27,7 +27,7 @@ void dLytFader_c::setStatus(EStatus status) {
|
||||
mStatus = FADED_OUT;
|
||||
mLytBase.unbindAnims();
|
||||
d2d::AnmGroup_c *s = &mLytStructAs[0];
|
||||
s->setDirection(false);
|
||||
s->bind(false);
|
||||
s->setToEnd();
|
||||
s->setAnimEnable(true);
|
||||
s->play();
|
||||
@@ -38,7 +38,7 @@ void dLytFader_c::setStatus(EStatus status) {
|
||||
mStatus = FADED_IN;
|
||||
mLytBase.unbindAnims();
|
||||
d2d::AnmGroup_c *s = &mLytStructAs[0];
|
||||
s->setDirection(false);
|
||||
s->bind(false);
|
||||
s->setFrame(0.0f);
|
||||
s->setAnimEnable(true);
|
||||
mLytBase.calc();
|
||||
@@ -109,7 +109,7 @@ void dLytFader_c::fn_801758F0() {
|
||||
fn_80175BC0(0);
|
||||
mLytBase.unbindAnims();
|
||||
d2d::AnmGroup_c *s = &mLytStructAs[0];
|
||||
s->setDirection(false);
|
||||
s->bind(false);
|
||||
s->setFrame(0.0f);
|
||||
s->setRate(20.0f / (mFrame - 1));
|
||||
s->setAnimEnable(true);
|
||||
@@ -130,7 +130,7 @@ void dLytFader_c::fn_80175A50() {
|
||||
fn_80175BC0(1);
|
||||
mLytBase.unbindAnims();
|
||||
d2d::AnmGroup_c *s = &mLytStructAs[1];
|
||||
s->setDirection(false);
|
||||
s->bind(false);
|
||||
s->setFrame(0.0f);
|
||||
s->setRate(20.0f / (mFrame - 1));
|
||||
s->setAnimEnable(true);
|
||||
|
||||
@@ -207,7 +207,7 @@ void dLytMapPinIcon_c::finalizeState_Wait() {}
|
||||
|
||||
void dLytMapPinIcon_c::initializeState_ToSelect() {
|
||||
d2d::AnmGroup_c *m = &mAnmGroups[1];
|
||||
m->setDirection(false);
|
||||
m->bind(false);
|
||||
m->setFrame(0.0f);
|
||||
}
|
||||
void dLytMapPinIcon_c::executeState_ToSelect() {
|
||||
@@ -255,7 +255,7 @@ bool dLytMapPinIcon_c::build(d2d::ResAccIf_c *resAcc) {
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
pAnmGroups[i].init(sMapPinIconBrlanMap[i].mFile, resAcc, mLyt.getLayout(), sMapPinIconBrlanMap[i].mName);
|
||||
pAnmGroups[i].setDirection(false);
|
||||
pAnmGroups[i].bind(false);
|
||||
pAnmGroups[i].setFrame(0.0f);
|
||||
}
|
||||
|
||||
@@ -269,8 +269,8 @@ bool dLytMapPinIcon_c::build(d2d::ResAccIf_c *resAcc) {
|
||||
mStructD.fn_80065E70(mpBounding, 2, 1, 0);
|
||||
d2d::dLytStructDList::GetInstance()->appendToList2(&mStructD);
|
||||
|
||||
mAnmGroups[LYT_MAP_PIN_ICON_ANIM_SCALE].setDirection(false);
|
||||
mAnmGroups[LYT_MAP_PIN_ICON_ANIM_LOOP].setDirection(false);
|
||||
mAnmGroups[LYT_MAP_PIN_ICON_ANIM_SCALE].bind(false);
|
||||
mAnmGroups[LYT_MAP_PIN_ICON_ANIM_LOOP].bind(false);
|
||||
|
||||
mLyt.calc();
|
||||
|
||||
@@ -284,7 +284,7 @@ bool dLytMapPinIcon_c::build(d2d::ResAccIf_c *resAcc) {
|
||||
bool dLytMapPinIcon_c::remove() {
|
||||
d2d::dLytStructDList::GetInstance()->removeFromList2(&mStructD);
|
||||
for (int i = 0; i < 3; i++) {
|
||||
mAnmGroups[i].afterUnbind();
|
||||
mAnmGroups[i].remove();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -142,7 +142,7 @@ bool dLytNote_c::build(d2d::ResAccIf_c *resAcc) {
|
||||
|
||||
for (int i = 0; i < 6; i++) {
|
||||
mAnmGroups[i].init(brlanMap[i].mFile, resAcc, mLyt.getLayout(), brlanMap[i].mName);
|
||||
mAnmGroups[i].setDirection(false);
|
||||
mAnmGroups[i].bind(false);
|
||||
mAnmGroups[i].setAnimEnable(false);
|
||||
}
|
||||
|
||||
@@ -168,7 +168,7 @@ bool dLytNote_c::build(d2d::ResAccIf_c *resAcc) {
|
||||
bool dLytNote_c::remove() {
|
||||
for (int i = 0; i < 6; i++) {
|
||||
// @bug? .unbind call is missing
|
||||
mAnmGroups[i].afterUnbind();
|
||||
mAnmGroups[i].remove();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -68,7 +68,7 @@ bool dLytSkyGaugeMain_c::build(d2d::ResAccIf_c *resAcc) {
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
mAnmGroups[i].init(brlanMap[i].mFile, resAcc, mLyt.getLayout(), brlanMap[i].mName);
|
||||
mAnmGroups[i].setDirection(false);
|
||||
mAnmGroups[i].bind(false);
|
||||
mAnmGroups[i].setAnimEnable(false);
|
||||
}
|
||||
|
||||
@@ -104,7 +104,7 @@ bool dLytSkyGaugeMain_c::execute() {
|
||||
bool dLytSkyGaugeMain_c::remove() {
|
||||
mLyt.unbindAnims();
|
||||
for (int i = 0; i < 3; i++) {
|
||||
mAnmGroups[i].afterUnbind();
|
||||
mAnmGroups[i].remove();
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
@@ -102,7 +102,7 @@ bool dLytMeter1Button_c::build(d2d::ResAccIf_c *resAcc) {
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
mAnmGroups[i].init(btn1BrlanMap[i].mFile, resAcc, mLyt.getLayout(), btn1BrlanMap[i].mName);
|
||||
mAnmGroups[i].setDirection(false);
|
||||
mAnmGroups[i].bind(false);
|
||||
mAnmGroups[i].setAnimEnable(false);
|
||||
}
|
||||
// TODO
|
||||
@@ -127,7 +127,7 @@ bool dLytMeter1Button_c::build(d2d::ResAccIf_c *resAcc) {
|
||||
bool dLytMeter1Button_c::remove() {
|
||||
for (int i = 0; i < 3; i++) {
|
||||
mAnmGroups[i].unbind();
|
||||
mAnmGroups[i].afterUnbind();
|
||||
mAnmGroups[i].remove();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -215,7 +215,7 @@ bool dLytMeter2Button_c::build(d2d::ResAccIf_c *resAcc) {
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
mAnmGroups[i].init(btn2BrlanMap[i].mFile, resAcc, mLyt.getLayout(), btn2BrlanMap[i].mName);
|
||||
mAnmGroups[i].setDirection(false);
|
||||
mAnmGroups[i].bind(false);
|
||||
mAnmGroups[i].setAnimEnable(false);
|
||||
}
|
||||
mpWindow = mLyt.getWindow(sWindowName2);
|
||||
@@ -237,7 +237,7 @@ bool dLytMeter2Button_c::build(d2d::ResAccIf_c *resAcc) {
|
||||
bool dLytMeter2Button_c::remove() {
|
||||
for (int i = 0; i < 3; i++) {
|
||||
mAnmGroups[i].unbind();
|
||||
mAnmGroups[i].afterUnbind();
|
||||
mAnmGroups[i].remove();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -333,7 +333,7 @@ bool dLytMeter_c::build(d2d::ResAccIf_c *resAcc) {
|
||||
mLyt.setPriority(0x8A);
|
||||
for (int i = 0; i < 34; i++) {
|
||||
mAnmGroups[i].init(meterBrlanMap[i].mFile, resAcc, mLyt.getLayout(), meterBrlanMap[i].mName);
|
||||
mAnmGroups[i].setDirection(false);
|
||||
mAnmGroups[i].bind(false);
|
||||
mAnmGroups[i].setAnimEnable(false);
|
||||
}
|
||||
|
||||
@@ -460,7 +460,7 @@ bool dLytMeter_c::build(d2d::ResAccIf_c *resAcc) {
|
||||
|
||||
bool dLytMeter_c::remove() {
|
||||
for (int i = 0; i < 34; i++) {
|
||||
mAnmGroups[i].afterUnbind();
|
||||
mAnmGroups[i].remove();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -94,7 +94,7 @@ bool dLytMeterABtn_c::build(d2d::ResAccIf_c *resAcc) {
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
mAnmGroups[i].init(brlanMap[i].mFile, resAcc, mLyt.getLayout(), brlanMap[i].mName);
|
||||
mAnmGroups[i].setDirection(false);
|
||||
mAnmGroups[i].bind(false);
|
||||
mAnmGroups[i].setAnimEnable(false);
|
||||
}
|
||||
|
||||
@@ -133,7 +133,7 @@ bool dLytMeterABtn_c::build(d2d::ResAccIf_c *resAcc) {
|
||||
bool dLytMeterABtn_c::remove() {
|
||||
for (int i = 0; i < 3; i++) {
|
||||
mAnmGroups[i].unbind();
|
||||
mAnmGroups[i].afterUnbind();
|
||||
mAnmGroups[i].remove();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -375,7 +375,7 @@ bool dLytMeterDrink_c::build(d2d::ResAccIf_c *resAcc) {
|
||||
|
||||
for (int i = 0; i < 20; i++) {
|
||||
mAnmGroups[i].init(brlanMap[i].mFile, resAcc, mLyt.getLayout(), brlanMap[i].mName);
|
||||
mAnmGroups[i].setDirection(false);
|
||||
mAnmGroups[i].bind(false);
|
||||
mAnmGroups[i].setAnimEnable(false);
|
||||
}
|
||||
|
||||
@@ -409,7 +409,7 @@ bool dLytMeterDrink_c::build(d2d::ResAccIf_c *resAcc) {
|
||||
bool dLytMeterDrink_c::remove() {
|
||||
for (int i = 0; i < 20; i++) {
|
||||
mAnmGroups[i].unbind();
|
||||
mAnmGroups[i].afterUnbind();
|
||||
mAnmGroups[i].remove();
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
@@ -24,7 +24,7 @@ bool dLytMeterShieldGauge_c::build(d2d::ResAccIf_c *resAcc) {
|
||||
bool dLytMeterShieldGauge_c::remove() {
|
||||
for (int i = 0; i < 8; i++) {
|
||||
mAnmGroups[i].unbind();
|
||||
mAnmGroups[i].afterUnbind();
|
||||
mAnmGroups[i].remove();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,191 @@
|
||||
#include "d/lyt/msg_window/d_lyt_msg_window_wood.h"
|
||||
|
||||
#include "common.h"
|
||||
#include "d/d_tag_processor.h"
|
||||
#include "d/lyt/d2d.h"
|
||||
#include "d/lyt/d_textbox.h"
|
||||
#include "nw4r/lyt/lyt_group.h"
|
||||
#include "nw4r/lyt/lyt_pane.h"
|
||||
#include "s/s_State.hpp"
|
||||
|
||||
STATE_DEFINE(dLytMsgWindowWood_c, Invisible);
|
||||
STATE_DEFINE(dLytMsgWindowWood_c, In);
|
||||
STATE_DEFINE(dLytMsgWindowWood_c, Visible);
|
||||
STATE_DEFINE(dLytMsgWindowWood_c, Out);
|
||||
|
||||
static const d2d::LytBrlanMapping brlanMap[] = {
|
||||
{ "kanbanWindow_00_in.brlan", "G_inOut_00"},
|
||||
{"kanbanWindow_00_loop.brlan", "G_loop_00"},
|
||||
{ "kanbanWindow_00_out.brlan", "G_inOut_00"},
|
||||
};
|
||||
|
||||
#define KANBAN_ANIM_IN 0
|
||||
#define KANBAN_ANIM_LOOP 1
|
||||
#define KANBAN_ANIM_OUT 2
|
||||
|
||||
#define KANBAN_NUM_ANIMS 3
|
||||
|
||||
static const char *sPanes[] = {
|
||||
"N_aBtn_00",
|
||||
"N_inOut_00",
|
||||
};
|
||||
|
||||
static const char *sTextBoxes[] = {
|
||||
"T_message_00",
|
||||
"T_messageS_00",
|
||||
};
|
||||
|
||||
static const char *sGroupName = "G_ref_00";
|
||||
|
||||
bool dLytMsgWindowWood_c::build(void *unk, d2d::ResAccIf_c *resAcc, dTagProcessor_c *tagProcessor) {
|
||||
mLyt.setResAcc(resAcc);
|
||||
mLyt.build("kanbanWindow_00.brlyt", nullptr);
|
||||
mLyt.setPriority(0x8A);
|
||||
|
||||
for (int i = 0; i < KANBAN_NUM_ANIMS; i++) {
|
||||
mAnm[i].init(brlanMap[i].mFile, resAcc, mLyt.getLayout(), brlanMap[i].mName);
|
||||
mAnm[i].bind(false);
|
||||
mAnm[i].setAnimEnable(false);
|
||||
}
|
||||
|
||||
mAnm[KANBAN_ANIM_LOOP].setAnimEnable(true);
|
||||
mAnm[KANBAN_ANIM_OUT].setAnimEnable(true);
|
||||
mAnm[KANBAN_ANIM_OUT].setToEnd();
|
||||
mLyt.calc();
|
||||
mAnm[KANBAN_ANIM_OUT].setAnimEnable(false);
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
mpPanes[i] = mLyt.findPane(sPanes[i]);
|
||||
}
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
mpTextboxes[i] = mLyt.getTextBox(sTextBoxes[i]);
|
||||
mpTextboxes[i]->SetTextPositionH(0);
|
||||
mpTextboxes[i]->SetTextPositionV(0);
|
||||
}
|
||||
|
||||
mpTextboxes[1]->set0x1F6(1);
|
||||
|
||||
for (int i = 0; i < 1; i++) {
|
||||
mNodes[i].mpLytPane = &mCommon;
|
||||
mCommon.build(resAcc);
|
||||
mSubpaneList.PushBack(&mNodes[i]);
|
||||
}
|
||||
|
||||
if (mLyt.getLayout()->GetGroupContainer() != nullptr) {
|
||||
nw4r::lyt::Group *g = mLyt.getLayout()->GetGroupContainer()->FindGroupByName(sGroupName);
|
||||
if (g != nullptr) {
|
||||
d2d::dSubPane::linkMeters(g, &mSubpaneList);
|
||||
}
|
||||
}
|
||||
|
||||
mpPanes[1]->SetVisible(true);
|
||||
mLyt.calc();
|
||||
mpPanes[1]->SetVisible(false);
|
||||
mpTagProcessor = tagProcessor;
|
||||
mStateMgr.changeState(StateID_Invisible);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool dLytMsgWindowWood_c::remove() {
|
||||
for (d2d::SubPaneList::Iterator it = mSubpaneList.GetBeginIter(); it != mSubpaneList.GetEndIter(); ++it) {
|
||||
d2d::dSubPane *subPane = it->mpLytPane;
|
||||
if (subPane != nullptr) {
|
||||
nw4r::lyt::Pane *parent = subPane->getPane()->GetParent();
|
||||
parent->RemoveChild(subPane->getPane());
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < 1; i++) {
|
||||
mNodes[i].mpLytPane->remove();
|
||||
}
|
||||
mCommon.remove();
|
||||
for (int i = 0; i < KANBAN_NUM_ANIMS; i++) {
|
||||
mAnm[i].remove();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void dLytMsgWindowWood_c::initializeState_Invisible() {
|
||||
mCommon.resetToInvisble();
|
||||
}
|
||||
void dLytMsgWindowWood_c::executeState_Invisible() {
|
||||
if (mCommon.shouldBeOpen()) {
|
||||
mStateMgr.changeState(StateID_In);
|
||||
}
|
||||
}
|
||||
void dLytMsgWindowWood_c::finalizeState_Invisible() {}
|
||||
|
||||
void dLytMsgWindowWood_c::initializeState_In() {
|
||||
mAnm[KANBAN_ANIM_IN].setAnimEnable(true);
|
||||
mAnm[KANBAN_ANIM_IN].setFrame(0.0f);
|
||||
}
|
||||
void dLytMsgWindowWood_c::executeState_In() {
|
||||
if (mAnm[KANBAN_ANIM_IN].isEndReached()) {
|
||||
mAnm[KANBAN_ANIM_IN].setAnimEnable(false);
|
||||
mStateMgr.changeState(StateID_Visible);
|
||||
}
|
||||
}
|
||||
void dLytMsgWindowWood_c::finalizeState_In() {}
|
||||
|
||||
void dLytMsgWindowWood_c::initializeState_Visible() {}
|
||||
void dLytMsgWindowWood_c::executeState_Visible() {
|
||||
if (!mCommon.shouldBeOpen()) {
|
||||
mStateMgr.changeState(StateID_Out);
|
||||
}
|
||||
}
|
||||
void dLytMsgWindowWood_c::finalizeState_Visible() {}
|
||||
|
||||
void dLytMsgWindowWood_c::initializeState_Out() {
|
||||
mAnm[KANBAN_ANIM_OUT].setAnimEnable(true);
|
||||
mAnm[KANBAN_ANIM_OUT].setFrame(0.0f);
|
||||
}
|
||||
void dLytMsgWindowWood_c::executeState_Out() {
|
||||
if (mAnm[KANBAN_ANIM_OUT].isEndReached()) {
|
||||
mAnm[KANBAN_ANIM_OUT].setAnimEnable(false);
|
||||
mStateMgr.changeState(StateID_Invisible);
|
||||
}
|
||||
}
|
||||
void dLytMsgWindowWood_c::finalizeState_Out() {}
|
||||
|
||||
bool dLytMsgWindowWood_c::execute() {
|
||||
mStateMgr.executeState();
|
||||
for (int i = 0; i < KANBAN_NUM_ANIMS; i++) {
|
||||
if (mAnm[i].isEnabled()) {
|
||||
mAnm[i].play();
|
||||
}
|
||||
}
|
||||
mLyt.calc();
|
||||
for (int i = 0; i < 1; i++) {
|
||||
mNodes[i].mpLytPane->execute();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void dLytMsgWindowWood_c::draw() {
|
||||
mLyt.draw();
|
||||
}
|
||||
|
||||
void dLytMsgWindowWood_c::vt_0x1C() {
|
||||
mCommon.openMaybe();
|
||||
}
|
||||
|
||||
bool dLytMsgWindowWood_c::vt_0x20() const {
|
||||
return !(*mStateMgr.getStateID() == StateID_In);
|
||||
}
|
||||
|
||||
void dLytMsgWindowWood_c::vt_0x24() {
|
||||
mCommon.closeMaybe();
|
||||
}
|
||||
|
||||
bool dLytMsgWindowWood_c::vt_0x28() const {
|
||||
return !(*mStateMgr.getStateID() == StateID_Out);
|
||||
}
|
||||
|
||||
bool dLytMsgWindowWood_c::setText(const wchar_t *text) {
|
||||
mpTextboxes[0]->SetTagProcessor(mpTagProcessor);
|
||||
mpTextboxes[1]->SetTagProcessor(mpTagProcessor);
|
||||
mpTextboxes[0]->fn_800AF540(text, mpTagProcessor, 0);
|
||||
mpTextboxes[1]->fn_800AF540(text, mpTagProcessor, 0);
|
||||
return true;
|
||||
}
|
||||
Reference in New Issue
Block a user