mirror of
https://github.com/zeldaret/ss
synced 2026-06-17 23:20:59 -04:00
d_lyt_meter_key OK
This commit is contained in:
+45
-45
@@ -5530,9 +5530,9 @@ executeState_Off__18dLytMeterBossKey_cFv = .text:0x800E2D90; // type:function si
|
||||
finalizeState_Off__18dLytMeterBossKey_cFv = .text:0x800E2E10; // type:function size:0x4
|
||||
build__18dLytMeterBossKey_cFPQ23d2d10ResAccIf_c = .text:0x800E2E20; // type:function size:0x2F4
|
||||
remove__18dLytMeterBossKey_cFv = .text:0x800E3120; // type:function size:0x58
|
||||
fn_800E3180 = .text:0x800E3180; // type:function size:0x21C
|
||||
execute__18dLytMeterBossKey_cFv = .text:0x800E3180; // type:function size:0x21C
|
||||
draw__18dLytMeterBossKey_cFv = .text:0x800E33A0; // type:function size:0x28
|
||||
fn_800E33D0 = .text:0x800E33D0; // type:function size:0x20
|
||||
setPosition__18dLytMeterBossKey_cFl = .text:0x800E33D0; // type:function size:0x20
|
||||
initializeState_Wait__19dLytMeterSmallKey_cFv = .text:0x800E33F0; // type:function size:0x4
|
||||
executeState_Wait__19dLytMeterSmallKey_cFv = .text:0x800E3400; // type:function size:0x5C
|
||||
finalizeState_Wait__19dLytMeterSmallKey_cFv = .text:0x800E3460; // type:function size:0x4
|
||||
@@ -5547,9 +5547,9 @@ executeState_Off__19dLytMeterSmallKey_cFv = .text:0x800E36D0; // type:function s
|
||||
finalizeState_Off__19dLytMeterSmallKey_cFv = .text:0x800E3750; // type:function size:0x4
|
||||
build__19dLytMeterSmallKey_cFPQ23d2d10ResAccIf_c = .text:0x800E3760; // type:function size:0x230
|
||||
remove__19dLytMeterSmallKey_cFv = .text:0x800E3990; // type:function size:0x58
|
||||
fn_800E39F0 = .text:0x800E39F0; // type:function size:0x224
|
||||
execute__19dLytMeterSmallKey_cFv = .text:0x800E39F0; // type:function size:0x224
|
||||
draw__19dLytMeterSmallKey_cFv = .text:0x800E3C20; // type:function size:0x28
|
||||
fn_800E3C50 = .text:0x800E3C50; // type:function size:0x20
|
||||
setPosition__19dLytMeterSmallKey_cFl = .text:0x800E3C50; // type:function size:0x20
|
||||
__sinit_\d_lyt_meter_key_cpp = .text:0x800E3C70; // type:function size:0x9EC scope:local
|
||||
__dt__35sFStateID_c<20dLytMeterKakeraKey_c>Fv = .text:0x800E4660; // type:function size:0x58
|
||||
__dt__33sFStateID_c<18dLytMeterBossKey_c>Fv = .text:0x800E46C0; // type:function size:0x58
|
||||
@@ -10577,7 +10577,7 @@ StageManager__isAreaTypeHouse = .text:0x80199940; // type:function size:0x2C
|
||||
isAreaTypeSky__11dStageMgr_cCFv = .text:0x80199970; // type:function size:0x2C
|
||||
isAreaTypeOverworldOrSkyloft__11dStageMgr_cCFv = .text:0x801999A0; // type:function size:0x3C
|
||||
isAreaTypeDungeonOrBoss__11dStageMgr_cCFv = .text:0x801999E0; // type:function size:0x3C
|
||||
StageManager__getSTIFmapNameId = .text:0x80199A20; // type:function size:0x20
|
||||
getMapNameId__11dStageMgr_cCFv = .text:0x80199A20; // type:function size:0x20
|
||||
StageManager__getSTIFbyte4 = .text:0x80199A40; // type:function size:0x20
|
||||
fn_80199A60 = .text:0x80199A60; // type:function size:0x3C
|
||||
isSTIFbyte4_5or6 = .text:0x80199AA0; // type:function size:0x3C
|
||||
@@ -13581,7 +13581,7 @@ AcItem__getMaxNumberOfSlingshotSeeds = .text:0x802522A0; // type:function size:0
|
||||
getTotalSeedCapacity__9dAcItem_cFv = .text:0x802522B0; // type:function size:0x38
|
||||
getKeyPieceCount__9dAcItem_cFv = .text:0x802522F0; // type:function size:0x8
|
||||
increaseKeyPieceCounter = .text:0x80252300; // type:function size:0xC
|
||||
getSmallKeyCounter = .text:0x80252310; // type:function size:0x8
|
||||
getSmallKeyCount__9dAcItem_cFv = .text:0x80252310; // type:function size:0x8
|
||||
increaseSmallKeyCounter = .text:0x80252320; // type:function size:0xC
|
||||
getAdditionalPouchSlotCounter = .text:0x80252330; // type:function size:0x8
|
||||
addToAdditionalAdventurePouchCounter = .text:0x80252340; // type:function size:0xC
|
||||
@@ -31296,34 +31296,34 @@ lbl_80513FF0 = .data:0x80513FF0; // type:object size:0xE data:string
|
||||
lbl_80514000 = .data:0x80514000; // type:object size:0xD data:string
|
||||
__vt__15dLytMeterZBtn_c = .data:0x80514010; // type:object size:0x34
|
||||
__vt__30sFStateID_c<15dLytMeterZBtn_c> = .data:0x80514150; // type:object size:0x34
|
||||
lbl_80514188 = .data:0x80514188; // type:object size:0x18
|
||||
lbl_805141A0 = .data:0x805141A0; // type:object size:0xC
|
||||
lbl_805141AC = .data:0x805141AC; // type:object size:0x1C
|
||||
lbl_805141C8 = .data:0x805141C8; // type:object size:0x10
|
||||
lbl_805141D8 = .data:0x805141D8; // type:object size:0x1C
|
||||
lbl_805141F4 = .data:0x805141F4; // type:object size:0x10
|
||||
lbl_80514204 = .data:0x80514204; // type:object size:0x1C
|
||||
lbl_80514220 = .data:0x80514220; // type:object size:0x10
|
||||
lbl_80514230 = .data:0x80514230; // type:object size:0x1C
|
||||
lbl_8051424C = .data:0x8051424C; // type:object size:0x10
|
||||
lbl_8051425C = .data:0x8051425C; // type:object size:0x1C
|
||||
lbl_80514278 = .data:0x80514278; // type:object size:0x10
|
||||
lbl_80514188 = .data:0x80514188; // type:object size:0x16 data:string
|
||||
lbl_805141A0 = .data:0x805141A0; // type:object size:0xB data:string
|
||||
lbl_805141AC = .data:0x805141AC; // type:object size:0x1B data:string
|
||||
lbl_805141C8 = .data:0x805141C8; // type:object size:0xD data:string
|
||||
lbl_805141D8 = .data:0x805141D8; // type:object size:0x1B data:string
|
||||
lbl_805141F4 = .data:0x805141F4; // type:object size:0xD data:string
|
||||
lbl_80514204 = .data:0x80514204; // type:object size:0x1B data:string
|
||||
lbl_80514220 = .data:0x80514220; // type:object size:0xD data:string
|
||||
lbl_80514230 = .data:0x80514230; // type:object size:0x1B data:string
|
||||
lbl_8051424C = .data:0x8051424C; // type:object size:0xD data:string
|
||||
lbl_8051425C = .data:0x8051425C; // type:object size:0x1B data:string
|
||||
lbl_80514278 = .data:0x80514278; // type:object size:0xD data:string
|
||||
lbl_80514288 = .data:0x80514288; // type:object size:0x18 data:string
|
||||
lbl_805142A0 = .data:0x805142A0; // type:object size:0xC
|
||||
lbl_805142AC = .data:0x805142AC; // type:object size:0x4C
|
||||
lbl_805142A0 = .data:0x805142A0; // type:object size:0xA data:string
|
||||
lbl_805142AC = .data:0x805142AC; // type:object size:0x17 data:string
|
||||
lbl_805142F8 = .data:0x805142F8; // type:object size:0x14 data:string
|
||||
lbl_8051430C = .data:0x8051430C; // type:object size:0x18
|
||||
lbl_80514324 = .data:0x80514324; // type:object size:0x1C
|
||||
lbl_80514340 = .data:0x80514340; // type:object size:0x10
|
||||
lbl_80514350 = .data:0x80514350; // type:object size:0x18
|
||||
lbl_80514368 = .data:0x80514368; // type:object size:0x1C
|
||||
lbl_80514384 = .data:0x80514384; // type:object size:0x34
|
||||
lbl_805143B8 = .data:0x805143B8; // type:object size:0x18
|
||||
lbl_805143D0 = .data:0x805143D0; // type:object size:0x18
|
||||
lbl_805143E8 = .data:0x805143E8; // type:object size:0x1C
|
||||
lbl_80514404 = .data:0x80514404; // type:object size:0x10
|
||||
lbl_80514414 = .data:0x80514414; // type:object size:0x18
|
||||
lbl_8051442C = .data:0x8051442C; // type:object size:0x3E4
|
||||
lbl_8051430C = .data:0x8051430C; // type:object size:0x15 data:string
|
||||
lbl_80514324 = .data:0x80514324; // type:object size:0x19 data:string
|
||||
lbl_80514340 = .data:0x80514340; // type:object size:0xD data:string
|
||||
lbl_80514350 = .data:0x80514350; // type:object size:0x16 data:string
|
||||
lbl_80514368 = .data:0x80514368; // type:object size:0x1A data:string
|
||||
lbl_80514384 = .data:0x80514384; // type:object size:0xE data:string
|
||||
lbl_805143B8 = .data:0x805143B8; // type:object size:0x15 data:string
|
||||
lbl_805143D0 = .data:0x805143D0; // type:object size:0x16 data:string
|
||||
lbl_805143E8 = .data:0x805143E8; // type:object size:0x1B data:string
|
||||
lbl_80514404 = .data:0x80514404; // type:object size:0xE data:string
|
||||
lbl_80514414 = .data:0x80514414; // type:object size:0x17 data:string
|
||||
lbl_8051442C = .data:0x8051442C; // type:object size:0x1B data:string
|
||||
__vt__34sFStateID_c<19dLytMeterSmallKey_c> = .data:0x80514810; // type:object size:0x34
|
||||
__vt__33sFStateID_c<18dLytMeterBossKey_c> = .data:0x80514844; // type:object size:0x34
|
||||
__vt__35sFStateID_c<20dLytMeterKakeraKey_c> = .data:0x80514878; // type:object size:0x34
|
||||
@@ -48637,19 +48637,19 @@ LytMeterZBtn__STATE_WAIT = .bss:0x805AA360; // type:object size:0x30 data:4byte
|
||||
LytMeterZBtn__STATE_ON = .bss:0x805AA3A0; // type:object size:0x30 data:4byte
|
||||
LytMeterZBtn__STATE_ACTIVE = .bss:0x805AA3E0; // type:object size:0x30 data:4byte
|
||||
LytMeterZBtn__STATE_OFF = .bss:0x805AA420; // type:object size:0x30 data:4byte
|
||||
lbl_805AA450 = .bss:0x805AA450; // type:object size:0x10
|
||||
LytMeterKakeraKey__STATE_WAIT = .bss:0x805AA460; // type:object size:0x40 data:4byte
|
||||
LytMeterKakeraKey__STATE_ON = .bss:0x805AA4A0; // type:object size:0x40 data:4byte
|
||||
lbl_805AA4E0 = .bss:0x805AA4E0; // type:object size:0x40 data:4byte
|
||||
LytMeterKakeraKey__STATE_ACTIVE = .bss:0x805AA520; // type:object size:0x40 data:4byte
|
||||
LytMeterKakeraKey__STATE_OFF = .bss:0x805AA560; // type:object size:0x40 data:4byte
|
||||
LytMeterBossKey__STATE_WAIT = .bss:0x805AA5A0; // type:object size:0x40 data:4byte
|
||||
LytMeterBossKey__STATE_ON = .bss:0x805AA5E0; // type:object size:0x40 data:4byte
|
||||
LytMeterBossKey__STATE_ACTIVE = .bss:0x805AA620; // type:object size:0x40 data:4byte
|
||||
LytMeterBossKey__STATE_OFF = .bss:0x805AA660; // type:object size:0x40 data:4byte
|
||||
LytMeterSmallKey__STATE_WAIT = .bss:0x805AA6A0; // type:object size:0x40 data:4byte
|
||||
LytMeterSmallKey__STATE_ON = .bss:0x805AA6E0; // type:object size:0x40 data:4byte
|
||||
LytMeterSmallKey__STATE_ACTIVE = .bss:0x805AA720; // type:object size:0x40 data:4byte
|
||||
lbl_805AA450 = .bss:0x805AA450; // type:object size:0xC
|
||||
LytMeterKakeraKey__STATE_WAIT = .bss:0x805AA460; // type:object size:0x30 data:4byte
|
||||
LytMeterKakeraKey__STATE_ON = .bss:0x805AA4A0; // type:object size:0x30 data:4byte
|
||||
lbl_805AA4E0 = .bss:0x805AA4E0; // type:object size:0x30 data:4byte
|
||||
LytMeterKakeraKey__STATE_ACTIVE = .bss:0x805AA520; // type:object size:0x30 data:4byte
|
||||
LytMeterKakeraKey__STATE_OFF = .bss:0x805AA560; // type:object size:0x30 data:4byte
|
||||
LytMeterBossKey__STATE_WAIT = .bss:0x805AA5A0; // type:object size:0x30 data:4byte
|
||||
LytMeterBossKey__STATE_ON = .bss:0x805AA5E0; // type:object size:0x30 data:4byte
|
||||
LytMeterBossKey__STATE_ACTIVE = .bss:0x805AA620; // type:object size:0x30 data:4byte
|
||||
LytMeterBossKey__STATE_OFF = .bss:0x805AA660; // type:object size:0x30 data:4byte
|
||||
LytMeterSmallKey__STATE_WAIT = .bss:0x805AA6A0; // type:object size:0x30 data:4byte
|
||||
LytMeterSmallKey__STATE_ON = .bss:0x805AA6E0; // type:object size:0x30 data:4byte
|
||||
LytMeterSmallKey__STATE_ACTIVE = .bss:0x805AA720; // type:object size:0x30 data:4byte
|
||||
LytMeterSmallKey__STATE_OFF = .bss:0x805AA760; // type:object size:0x30 data:4byte
|
||||
lbl_805AA790 = .bss:0x805AA790; // type:object size:0xC scope:local
|
||||
StateID_Invisible__21dLytMeterDrinkParts_c = .bss:0x805AA7A0; // type:object size:0x30 data:4byte
|
||||
|
||||
+1
-1
@@ -388,7 +388,7 @@ config.libs = [
|
||||
Object(NonMatching, "d/lyt/meter/d_lyt_meter_unk.cpp"),
|
||||
Object(Matching, "d/lyt/meter/d_lyt_meter_a_btn.cpp"),
|
||||
Object(Matching, "d/lyt/meter/d_lyt_meter_z_btn.cpp"),
|
||||
Object(NonMatching, "d/lyt/meter/d_lyt_meter_key.cpp"),
|
||||
Object(Matching, "d/lyt/meter/d_lyt_meter_key.cpp"),
|
||||
Object(Matching, "d/lyt/meter/d_lyt_meter_drink.cpp"),
|
||||
Object(Matching, "d/lyt/meter/d_lyt_meter_remocon_bg.cpp"),
|
||||
Object(Matching, "d/lyt/meter/d_lyt_meter_nunchaku_bg.cpp"),
|
||||
|
||||
@@ -59,7 +59,8 @@ public:
|
||||
static s32 getTotalSeedCapacity();
|
||||
static s32 getTotalArrowCapacity();
|
||||
|
||||
static bool getKeyPieceCount();
|
||||
static u32 getKeyPieceCount();
|
||||
static u32 getSmallKeyCount();
|
||||
|
||||
static bool isRupee(ITEM_ID item);
|
||||
static bool isKeyPiece(ITEM_ID item);
|
||||
|
||||
@@ -189,7 +189,7 @@ struct STIF {
|
||||
/* 0x0F */ u8 field_0x0F;
|
||||
/* 0x10 */ u8 field_0x10;
|
||||
/* 0x11 */ u8 field_0x11;
|
||||
/* 0x12 */ u8 mapNameId;
|
||||
/* 0x12 */ s8 mapNameId;
|
||||
/* 0x13 */ u8 field_0x13;
|
||||
};
|
||||
|
||||
|
||||
@@ -54,6 +54,7 @@ public:
|
||||
s32 getSTIFunk1() const;
|
||||
|
||||
s32 getAreaType() const;
|
||||
s32 getMapNameId() const;
|
||||
|
||||
static dStageMgr_c *GetInstance() {
|
||||
return sInstance;
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#ifndef D_LYT_METER_KEY_H
|
||||
#define D_LYT_METER_KEY_H
|
||||
|
||||
#include "common.h"
|
||||
#include "d/lyt/d2d.h"
|
||||
#include "m/m_vec.h"
|
||||
#include "nw4r/lyt/lyt_pane.h"
|
||||
@@ -49,8 +50,11 @@ public:
|
||||
|
||||
bool build(d2d::ResAccIf_c *);
|
||||
bool remove();
|
||||
bool execute();
|
||||
bool draw();
|
||||
|
||||
void setPosition(s32 position);
|
||||
|
||||
private:
|
||||
STATE_FUNC_DECLARE(dLytMeterBossKey_c, Wait);
|
||||
STATE_FUNC_DECLARE(dLytMeterBossKey_c, On);
|
||||
@@ -60,8 +64,13 @@ private:
|
||||
/* 0x004 */ UI_STATE_MGR_DECLARE(dLytMeterBossKey_c);
|
||||
/* 0x040 */ d2d::dLytSub mLyt;
|
||||
/* 0x0D4 */ d2d::AnmGroup_c mAnm[5];
|
||||
/* 0x214 */ u32 field_0x2D0;
|
||||
/* 0x218 */ mVec3_c mVecs[4];
|
||||
/* 0x214 */ nw4r::lyt::Pane *mpPane;
|
||||
/* 0x218 */ mVec3_c mPanePositions[4];
|
||||
/* 0x248 */ mVec3_c mPosition;
|
||||
/* 0x254 */ s32 mPosititionIndex;
|
||||
/* 0x258 */ s32 mOldPosititionIndex;
|
||||
/* 0x25C */ s32 mMovementFrame;
|
||||
/* 0x260 */ u8 mShouldBeVisible;
|
||||
};
|
||||
|
||||
class dLytMeterSmallKey_c {
|
||||
@@ -74,8 +83,11 @@ public:
|
||||
|
||||
bool build(d2d::ResAccIf_c *);
|
||||
bool remove();
|
||||
bool execute();
|
||||
bool draw();
|
||||
|
||||
void setPosition(s32 position);
|
||||
|
||||
private:
|
||||
STATE_FUNC_DECLARE(dLytMeterSmallKey_c, Wait);
|
||||
STATE_FUNC_DECLARE(dLytMeterSmallKey_c, On);
|
||||
@@ -85,8 +97,14 @@ private:
|
||||
/* 0x004 */ UI_STATE_MGR_DECLARE(dLytMeterSmallKey_c);
|
||||
/* 0x040 */ d2d::dLytSub mLyt;
|
||||
/* 0x0D4 */ d2d::AnmGroup_c mAnm[5];
|
||||
/* 0x214 */ u32 field_0x2D0;
|
||||
/* 0x218 */ mVec3_c mVecs[4];
|
||||
/* 0x214 */ nw4r::lyt::Pane *mpPane;
|
||||
/* 0x218 */ mVec3_c mPanePositions[4];
|
||||
/* 0x248 */ mVec3_c mPosition;
|
||||
/* 0x254 */ s32 mSavedSmallKeyCount;
|
||||
/* 0x258 */ s32 mPosititionIndex;
|
||||
/* 0x25C */ s32 mOldPosititionIndex;
|
||||
/* 0x260 */ s32 mMovementFrame;
|
||||
/* 0x264 */ u8 mShouldBeVisible;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
#include "c/c_lib.h"
|
||||
#include "common.h"
|
||||
#include "d/a/d_a_item.h"
|
||||
#include "d/d_stage_mgr.h"
|
||||
#include "d/lyt/d2d.h"
|
||||
#include "m/m_vec.h"
|
||||
#include "nw4r/lyt/lyt_pane.h"
|
||||
@@ -207,34 +208,323 @@ void dLytMeterKakeraKey_c::setPosition(s32 position) {
|
||||
mMovementFrame = 0;
|
||||
}
|
||||
|
||||
static const d2d::LytBrlanMapping brlanMapBoss[] = {
|
||||
{ "keyBoss_00_in.brlan", "G_inOut_00"},
|
||||
{ "keyBoss_00_out.brlan", "G_inOut_00"},
|
||||
{ "keyBoss_00_keyBoss.brlan", "G_keyBoss_00"},
|
||||
{ "keyBoss_00_loop.brlan", "G_loop_00"},
|
||||
{"keyBoss_00_position.brlan", "G_position_00"},
|
||||
};
|
||||
|
||||
#define KEY_BOSS_ANIM_IN 0
|
||||
#define KEY_BOSS_ANIM_OUT 1
|
||||
#define KEY_BOSS_ANIM_KEYBOSS 2
|
||||
#define KEY_BOSS_ANIM_LOOP 3
|
||||
#define KEY_BOSS_ANIM_POSITION 4
|
||||
|
||||
#define KEY_BOSS_NUM_ANIMS 5
|
||||
|
||||
void dLytMeterBossKey_c::initializeState_Wait() {}
|
||||
void dLytMeterBossKey_c::executeState_Wait() {}
|
||||
void dLytMeterBossKey_c::executeState_Wait() {
|
||||
if (mShouldBeVisible) {
|
||||
mStateMgr.changeState(StateID_On);
|
||||
}
|
||||
}
|
||||
void dLytMeterBossKey_c::finalizeState_Wait() {}
|
||||
|
||||
void dLytMeterBossKey_c::initializeState_On() {}
|
||||
void dLytMeterBossKey_c::executeState_On() {}
|
||||
void dLytMeterBossKey_c::initializeState_On() {
|
||||
mAnm[KEY_BOSS_ANIM_IN].setAnimEnable(true);
|
||||
mAnm[KEY_BOSS_ANIM_IN].setFrame(0.0f);
|
||||
}
|
||||
void dLytMeterBossKey_c::executeState_On() {
|
||||
if (mAnm[KEY_BOSS_ANIM_IN].isEndReached()) {
|
||||
mAnm[KEY_BOSS_ANIM_IN].setAnimEnable(false);
|
||||
mStateMgr.changeState(StateID_Active);
|
||||
}
|
||||
}
|
||||
void dLytMeterBossKey_c::finalizeState_On() {}
|
||||
|
||||
void dLytMeterBossKey_c::initializeState_Active() {}
|
||||
void dLytMeterBossKey_c::executeState_Active() {}
|
||||
void dLytMeterBossKey_c::executeState_Active() {
|
||||
if (!mShouldBeVisible) {
|
||||
mStateMgr.changeState(StateID_Off);
|
||||
}
|
||||
}
|
||||
void dLytMeterBossKey_c::finalizeState_Active() {}
|
||||
|
||||
void dLytMeterBossKey_c::initializeState_Off() {}
|
||||
void dLytMeterBossKey_c::executeState_Off() {}
|
||||
void dLytMeterBossKey_c::initializeState_Off() {
|
||||
mAnm[KEY_BOSS_ANIM_OUT].setAnimEnable(true);
|
||||
mAnm[KEY_BOSS_ANIM_OUT].setFrame(0.0f);
|
||||
}
|
||||
void dLytMeterBossKey_c::executeState_Off() {
|
||||
if (mAnm[KEY_BOSS_ANIM_OUT].isEndReached()) {
|
||||
mAnm[KEY_BOSS_ANIM_OUT].setAnimEnable(false);
|
||||
mStateMgr.changeState(StateID_Wait);
|
||||
}
|
||||
}
|
||||
void dLytMeterBossKey_c::finalizeState_Off() {}
|
||||
|
||||
bool dLytMeterBossKey_c::build(d2d::ResAccIf_c *resAcc) {
|
||||
mLyt.setResAcc(resAcc);
|
||||
mLyt.build("keyBoss_00.brlyt", nullptr);
|
||||
|
||||
for (int i = 0; i < KEY_BOSS_NUM_ANIMS; i++) {
|
||||
mAnm[i].init(brlanMapBoss[i].mFile, resAcc, mLyt.getLayout(), brlanMapBoss[i].mName);
|
||||
mAnm[i].bind(false);
|
||||
mAnm[i].setAnimEnable(false);
|
||||
}
|
||||
|
||||
mAnm[KEY_BOSS_ANIM_LOOP].setAnimEnable(true);
|
||||
mpPane = mLyt.findPane("N_keyBoss_00");
|
||||
mAnm[KEY_BOSS_ANIM_POSITION].setAnimEnable(true);
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
mAnm[KEY_BOSS_ANIM_POSITION].setFrame(i);
|
||||
mLyt.calc();
|
||||
mPanePositions[i].copyFrom(mLyt.findPane("N_keyPosition_00")->GetTranslate());
|
||||
}
|
||||
|
||||
mAnm[KEY_BOSS_ANIM_POSITION].setAnimEnable(false);
|
||||
|
||||
mPosititionIndex = 1;
|
||||
mOldPosititionIndex = 1;
|
||||
mMovementFrame = 0;
|
||||
|
||||
mPosition.copyFrom(mPanePositions[mPosititionIndex]);
|
||||
mShouldBeVisible = 0;
|
||||
mpPane->SetTranslate(mPosition);
|
||||
|
||||
mAnm[KEY_BOSS_ANIM_IN].setFrame(0.0f);
|
||||
mAnm[KEY_BOSS_ANIM_IN].setAnimEnable(true);
|
||||
|
||||
f32 frame = 0.0f;
|
||||
if (dStageMgr_c::GetInstance()->getMapNameId() == 11) {
|
||||
frame = 0.0f;
|
||||
} else if (dStageMgr_c::GetInstance()->getMapNameId() == 14) {
|
||||
frame = 1.0f;
|
||||
} else if (dStageMgr_c::GetInstance()->getMapNameId() == 12) {
|
||||
frame = 2.0f;
|
||||
} else if (dStageMgr_c::GetInstance()->getMapNameId() == 16) {
|
||||
frame = 3.0f;
|
||||
} else if (dStageMgr_c::GetInstance()->getMapNameId() == 13) {
|
||||
frame = 4.0f;
|
||||
} else if (dStageMgr_c::GetInstance()->getMapNameId() == 15) {
|
||||
frame = 5.0f;
|
||||
}
|
||||
|
||||
mAnm[KEY_BOSS_ANIM_KEYBOSS].setAnimEnable(true);
|
||||
mAnm[KEY_BOSS_ANIM_KEYBOSS].setFrame(frame);
|
||||
|
||||
mLyt.getLayout()->Animate(0);
|
||||
mLyt.calc();
|
||||
mAnm[KEY_BOSS_ANIM_IN].setAnimEnable(false);
|
||||
mAnm[KEY_BOSS_ANIM_KEYBOSS].setAnimEnable(false);
|
||||
|
||||
mStateMgr.changeState(StateID_Wait);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool dLytMeterBossKey_c::remove() {
|
||||
for (int i = 0; i < KEY_BOSS_NUM_ANIMS; i++) {
|
||||
mAnm[i].unbind();
|
||||
mAnm[i].remove();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool dLytMeterBossKey_c::execute() {
|
||||
mStateMgr.executeState();
|
||||
|
||||
if (mPosition != mPanePositions[mPosititionIndex]) {
|
||||
if (mMovementFrame < 5) {
|
||||
mPosition = (mPanePositions[mPosititionIndex] - mPanePositions[mOldPosititionIndex]) *
|
||||
cLib::easeOut(++mMovementFrame / 5.0f, 3.0f) +
|
||||
mPanePositions[mOldPosititionIndex];
|
||||
} else {
|
||||
mMovementFrame = 0;
|
||||
mPosition = mPanePositions[mPosititionIndex];
|
||||
}
|
||||
mpPane->SetTranslate(mPosition);
|
||||
}
|
||||
|
||||
for (int i = 0; i < KEY_BOSS_NUM_ANIMS; i++) {
|
||||
if (mAnm[i].isEnabled()) {
|
||||
mAnm[i].play();
|
||||
}
|
||||
}
|
||||
mLyt.calc();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool dLytMeterBossKey_c::draw() {
|
||||
mLyt.addToDrawList();
|
||||
return true;
|
||||
}
|
||||
|
||||
void dLytMeterBossKey_c::setPosition(s32 position) {
|
||||
if (mPosititionIndex == position) {
|
||||
return;
|
||||
}
|
||||
|
||||
mOldPosititionIndex = mPosititionIndex;
|
||||
mPosititionIndex = position;
|
||||
mMovementFrame = 0;
|
||||
}
|
||||
|
||||
static const d2d::LytBrlanMapping brlanMapSmall[] = {
|
||||
{ "keySmall_00_in.brlan", "G_inOut_00"},
|
||||
{ "keySmall_00_out.brlan", "G_inOut_00"},
|
||||
{"keySmall_00_keySmall.brlan", "G_keySmall_00"},
|
||||
{ "keySmall_00_loop.brlan", "G_loop_00"},
|
||||
{"keySmall_00_position.brlan", "G_position_00"},
|
||||
};
|
||||
|
||||
#define KEY_SMALL_ANIM_IN 0
|
||||
#define KEY_SMALL_ANIM_OUT 1
|
||||
#define KEY_SMALL_ANIM_KEYSMALL 2
|
||||
#define KEY_SMALL_ANIM_LOOP 3
|
||||
#define KEY_SMALL_ANIM_POSITION 4
|
||||
|
||||
#define KEY_SMALL_NUM_ANIMS 5
|
||||
|
||||
void dLytMeterSmallKey_c::initializeState_Wait() {}
|
||||
void dLytMeterSmallKey_c::executeState_Wait() {}
|
||||
void dLytMeterSmallKey_c::executeState_Wait() {
|
||||
if (mShouldBeVisible && dAcItem_c::getSmallKeyCount() != 0) {
|
||||
mStateMgr.changeState(StateID_On);
|
||||
}
|
||||
}
|
||||
void dLytMeterSmallKey_c::finalizeState_Wait() {}
|
||||
|
||||
void dLytMeterSmallKey_c::initializeState_On() {}
|
||||
void dLytMeterSmallKey_c::executeState_On() {}
|
||||
void dLytMeterSmallKey_c::initializeState_On() {
|
||||
mAnm[KEY_SMALL_ANIM_IN].setAnimEnable(true);
|
||||
mAnm[KEY_SMALL_ANIM_IN].setToEnd();
|
||||
mSavedSmallKeyCount = dAcItem_c::getSmallKeyCount();
|
||||
if (mSavedSmallKeyCount > 0 && mSavedSmallKeyCount <= 5) {
|
||||
mAnm[KEY_SMALL_ANIM_KEYSMALL].setFrame(mSavedSmallKeyCount - 1);
|
||||
}
|
||||
mAnm[KEY_SMALL_ANIM_IN].setFrame(0.0f);
|
||||
}
|
||||
void dLytMeterSmallKey_c::executeState_On() {
|
||||
if (mAnm[KEY_SMALL_ANIM_IN].isEndReached()) {
|
||||
mAnm[KEY_SMALL_ANIM_IN].setAnimEnable(false);
|
||||
mStateMgr.changeState(StateID_Active);
|
||||
}
|
||||
}
|
||||
void dLytMeterSmallKey_c::finalizeState_On() {}
|
||||
|
||||
void dLytMeterSmallKey_c::initializeState_Active() {}
|
||||
void dLytMeterSmallKey_c::executeState_Active() {}
|
||||
void dLytMeterSmallKey_c::executeState_Active() {
|
||||
if (mSavedSmallKeyCount != dAcItem_c::getSmallKeyCount()) {
|
||||
mSavedSmallKeyCount = dAcItem_c::getSmallKeyCount();
|
||||
if (mSavedSmallKeyCount > 0 && mSavedSmallKeyCount <= 5) {
|
||||
mAnm[KEY_SMALL_ANIM_KEYSMALL].setFrame(mSavedSmallKeyCount - 1);
|
||||
}
|
||||
}
|
||||
|
||||
if (!mShouldBeVisible || dAcItem_c::getSmallKeyCount() == 0) {
|
||||
mStateMgr.changeState(StateID_Off);
|
||||
}
|
||||
}
|
||||
void dLytMeterSmallKey_c::finalizeState_Active() {}
|
||||
|
||||
void dLytMeterSmallKey_c::initializeState_Off() {}
|
||||
void dLytMeterSmallKey_c::executeState_Off() {}
|
||||
void dLytMeterSmallKey_c::initializeState_Off() {
|
||||
mAnm[KEY_SMALL_ANIM_OUT].setAnimEnable(true);
|
||||
mAnm[KEY_SMALL_ANIM_OUT].setFrame(0.0f);
|
||||
}
|
||||
void dLytMeterSmallKey_c::executeState_Off() {
|
||||
if (mAnm[KEY_SMALL_ANIM_OUT].isEndReached()) {
|
||||
mAnm[KEY_SMALL_ANIM_OUT].setAnimEnable(false);
|
||||
mStateMgr.changeState(StateID_Wait);
|
||||
}
|
||||
}
|
||||
void dLytMeterSmallKey_c::finalizeState_Off() {}
|
||||
|
||||
bool dLytMeterSmallKey_c::build(d2d::ResAccIf_c *resAcc) {
|
||||
mLyt.setResAcc(resAcc);
|
||||
mLyt.build("keySmall_00.brlyt", nullptr);
|
||||
|
||||
for (int i = 0; i < KEY_SMALL_NUM_ANIMS; i++) {
|
||||
mAnm[i].init(brlanMapSmall[i].mFile, resAcc, mLyt.getLayout(), brlanMapSmall[i].mName);
|
||||
mAnm[i].bind(false);
|
||||
mAnm[i].setAnimEnable(false);
|
||||
}
|
||||
|
||||
mAnm[KEY_SMALL_ANIM_LOOP].setAnimEnable(true);
|
||||
mAnm[KEY_SMALL_ANIM_KEYSMALL].setAnimEnable(true);
|
||||
mpPane = mLyt.findPane("N_keyAll_00");
|
||||
mAnm[KEY_SMALL_ANIM_POSITION].setAnimEnable(true);
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
mAnm[KEY_SMALL_ANIM_POSITION].setFrame(i);
|
||||
mLyt.calc();
|
||||
mPanePositions[i].copyFrom(mLyt.findPane("N_keyPosition_00")->GetTranslate());
|
||||
}
|
||||
|
||||
mAnm[KEY_SMALL_ANIM_POSITION].setAnimEnable(false);
|
||||
|
||||
mPosititionIndex = 1;
|
||||
mOldPosititionIndex = 1;
|
||||
mMovementFrame = 0;
|
||||
|
||||
mPosition.copyFrom(mPanePositions[mPosititionIndex]);
|
||||
mShouldBeVisible = 0;
|
||||
mSavedSmallKeyCount = 0;
|
||||
mpPane->SetTranslate(mPosition);
|
||||
|
||||
mAnm[KEY_SMALL_ANIM_IN].setFrame(0.0f);
|
||||
mAnm[KEY_SMALL_ANIM_IN].setAnimEnable(true);
|
||||
mLyt.calc();
|
||||
mAnm[KEY_SMALL_ANIM_IN].setAnimEnable(false);
|
||||
|
||||
mStateMgr.changeState(StateID_Wait);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool dLytMeterSmallKey_c::remove() {
|
||||
for (int i = 0; i < KEY_SMALL_NUM_ANIMS; i++) {
|
||||
mAnm[i].unbind();
|
||||
mAnm[i].remove();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool dLytMeterSmallKey_c::execute() {
|
||||
mStateMgr.executeState();
|
||||
|
||||
if (mPosition != mPanePositions[mPosititionIndex]) {
|
||||
if (mMovementFrame < 5) {
|
||||
mPosition = (mPanePositions[mPosititionIndex] - mPanePositions[mOldPosititionIndex]) *
|
||||
cLib::easeOut(++mMovementFrame / 5.0f, 3.0f) +
|
||||
mPanePositions[mOldPosititionIndex];
|
||||
} else {
|
||||
mMovementFrame = 0;
|
||||
mPosition = mPanePositions[mPosititionIndex];
|
||||
}
|
||||
mpPane->SetTranslate(mPosition);
|
||||
}
|
||||
|
||||
for (int i = 0; i < KEY_SMALL_NUM_ANIMS; i++) {
|
||||
if (i != KEY_SMALL_ANIM_KEYSMALL && mAnm[i].isEnabled()) {
|
||||
mAnm[i].play();
|
||||
}
|
||||
}
|
||||
mLyt.calc();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool dLytMeterSmallKey_c::draw() {
|
||||
mLyt.addToDrawList();
|
||||
return true;
|
||||
}
|
||||
|
||||
void dLytMeterSmallKey_c::setPosition(s32 position) {
|
||||
if (mPosititionIndex == position) {
|
||||
return;
|
||||
}
|
||||
|
||||
mOldPosititionIndex = mPosititionIndex;
|
||||
mPosititionIndex = position;
|
||||
mMovementFrame = 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user