mirror of
https://github.com/zeldaret/ss
synced 2026-06-04 02:46:25 -04:00
Merge pull request #110 from robojumper/d_lyt_map
start labelling d_lyt_map
This commit is contained in:
@@ -3,5 +3,6 @@ CompileFlags:
|
||||
Add: [
|
||||
"-Wno-c++11-compat-deprecated-writable-strings",
|
||||
"-Wno-trigraphs",
|
||||
"-fno-trigraphs"
|
||||
"-fno-trigraphs",
|
||||
"-Wno-c++11-extensions"
|
||||
]
|
||||
|
||||
@@ -423,6 +423,11 @@ d/lyt/d_lyt_map_capture.cpp:
|
||||
d/lyt/d_lyt_map.cpp:
|
||||
.text start:0x8012DC30 end:0x80148DE8
|
||||
.ctors start:0x804DB76C end:0x804DB770
|
||||
.rodata start:0x804E76A0 end:0x804E7F50
|
||||
.data start:0x8051EAE0 end:0x805225E8
|
||||
.sbss start:0x805754A8 end:0x805754B8
|
||||
.sdata2 start:0x80579F40 end:0x80579FB8
|
||||
.bss start:0x805AF470 end:0x805B0830
|
||||
|
||||
d/lyt/d_lyt_note.cpp:
|
||||
.text start:0x80148DF0 end:0x80149C28
|
||||
@@ -439,6 +444,7 @@ d/lyt/d_lyt_battery.cpp:
|
||||
.rodata start:0x804E7F80 end:0x804E7FA0
|
||||
.data start:0x80522820 end:0x80522B00
|
||||
.sdata start:0x80572870 end:0x80572878
|
||||
.sbss start:0x805754B8 end:0x805754C0
|
||||
.sdata2 start:0x80579FC8 end:0x80579FD0
|
||||
.bss start:0x805B0930 end:0x805B0A70
|
||||
|
||||
@@ -448,20 +454,24 @@ d/lyt/d_lyt_area_caption.cpp:
|
||||
.rodata start:0x804E7FA0 end:0x804E7FE0
|
||||
.data start:0x80522B00 end:0x80522E80
|
||||
.sdata start:0x80572878 end:0x80572880
|
||||
.sbss start:0x805754C0 end:0x805754C8
|
||||
.bss start:0x805B0A70 end:0x805B0B30
|
||||
|
||||
d/lyt/d_lyt_wipe.cpp:
|
||||
.text start:0x8014C6C0 end:0x8014E008
|
||||
.ctors start:0x804DB77C end:0x804DB780
|
||||
.sbss start:0x805754C8 end:0x805754D0
|
||||
|
||||
d/lyt/d_lyt_help.cpp:
|
||||
.text start:0x8014E010 end:0x80150428
|
||||
.ctors start:0x804DB780 end:0x804DB784
|
||||
.sbss start:0x805754D0 end:0x805754D8
|
||||
|
||||
d/lyt/d_lyt_bird_gauge.cpp:
|
||||
.text start:0x80152FD0 end:0x801548D8
|
||||
.ctors start:0x804DB784 end:0x804DB788
|
||||
.data start:0x80524020 end:0x80524510
|
||||
.sbss start:0x805754E0 end:0x805754E8
|
||||
|
||||
d/lyt/d_lyt_sky_gauge.cpp:
|
||||
.text start:0x801548E0 end:0x80155CC8
|
||||
|
||||
+632
-611
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,381 @@
|
||||
#ifndef D_LYT_MAP_H
|
||||
#define D_LYT_MAP_H
|
||||
|
||||
#include "common.h"
|
||||
#include "d/lyt/d2d.h"
|
||||
#include "d/lyt/d_lyt_map_capture.h"
|
||||
#include "d/lyt/d_structd.h"
|
||||
#include "egg/core/eggColorFader.h"
|
||||
#include "m/m2d.h"
|
||||
#include "m/m_vec.h"
|
||||
#include "nw4r/lyt/lyt_bounding.h"
|
||||
#include "s/s_State.hpp"
|
||||
|
||||
struct LytMap0x80520B5C {
|
||||
LytMap0x80520B5C() : field_0x04(false), field_0x05(false) {}
|
||||
virtual ~LytMap0x80520B5C() {}
|
||||
|
||||
bool field_0x04;
|
||||
bool field_0x05;
|
||||
};
|
||||
|
||||
struct LytMapFourAnimGroups {
|
||||
/* 0x00 */ d2d::AnmGroup_c mGroup1;
|
||||
/* 0x40 */ d2d::AnmGroup_c mGroup2;
|
||||
/* 0x80 */ d2d::AnmGroup_c mGroup3;
|
||||
/* 0xC0 */ d2d::AnmGroup_c mGroup4;
|
||||
};
|
||||
|
||||
// Size 0x1E0
|
||||
class dLytMapPinIcon_c {
|
||||
public:
|
||||
friend class dLytMapPinIconAggregate_c;
|
||||
|
||||
dLytMapPinIcon_c()
|
||||
: mStateMgr(*this, sStateID::null), mpBounding(nullptr), field_0x1BC(0), field_0x1C0(0.0f, 0.0f, 0.0f),
|
||||
field_0x1CC(0), field_0x1D0(nullptr), field_0x1D4(0), mIndex(0), field_0x1DC(0) {}
|
||||
virtual ~dLytMapPinIcon_c();
|
||||
|
||||
bool build(d2d::ResAccIf_c *resAcc);
|
||||
bool remove();
|
||||
bool draw();
|
||||
bool execute();
|
||||
|
||||
void fn_8012EC30();
|
||||
|
||||
bool isSelect() const {
|
||||
return *mStateMgr.getStateID() == dLytMapPinIcon_c::StateID_ToSelect ||
|
||||
*mStateMgr.getStateID() == dLytMapPinIcon_c::StateID_Select;
|
||||
}
|
||||
|
||||
bool isRemove() const {
|
||||
return *mStateMgr.getStateID() == dLytMapPinIcon_c::StateID_Remove;
|
||||
}
|
||||
|
||||
STATE_FUNC_DECLARE(dLytMapPinIcon_c, Wait);
|
||||
STATE_FUNC_DECLARE(dLytMapPinIcon_c, ToSelect);
|
||||
STATE_FUNC_DECLARE(dLytMapPinIcon_c, Select);
|
||||
STATE_FUNC_DECLARE(dLytMapPinIcon_c, ToUnselect);
|
||||
STATE_FUNC_DECLARE(dLytMapPinIcon_c, Remove);
|
||||
|
||||
private:
|
||||
/* 0x004 */ UI_STATE_MGR_DECLARE(dLytMapPinIcon_c);
|
||||
/* 0x040 */ d2d::LytBase_c mLyt;
|
||||
/* 0x0D0 */ d2d::AnmGroup_c mAnmGroups[3];
|
||||
/* 0x190 */ d2d::dLytStructD mStructD;
|
||||
/* 0x1B8 */ nw4r::lyt::Bounding *mpBounding;
|
||||
/* 0x1BC */ UNKWORD field_0x1BC;
|
||||
/* 0x1C0 */ mVec3_c field_0x1C0;
|
||||
/* 0x1CC */ u8 field_0x1CC;
|
||||
/* 0x1D0 */ LytMap0x80520B5C *field_0x1D0;
|
||||
/* 0x1D4 */ UNKWORD field_0x1D4;
|
||||
/* 0x1D8 */ s32 mIndex;
|
||||
/* 0x1DC */ UNKWORD field_0x1DC;
|
||||
};
|
||||
|
||||
class dLytMapPinIconAggregate_c {
|
||||
public:
|
||||
dLytMapPinIconAggregate_c() : mStateMgr(*this, sStateID::null) {
|
||||
field_0x9A0 = nullptr;
|
||||
field_0x9A4 = 0;
|
||||
field_0x9A8 = 0;
|
||||
for (int i = 0; i < 5; i++) {
|
||||
mPins[i].mIndex = i;
|
||||
}
|
||||
}
|
||||
virtual ~dLytMapPinIconAggregate_c() {}
|
||||
|
||||
bool remove();
|
||||
|
||||
STATE_FUNC_DECLARE(dLytMapPinIconAggregate_c, Wait);
|
||||
STATE_FUNC_DECLARE(dLytMapPinIconAggregate_c, Select);
|
||||
STATE_FUNC_DECLARE(dLytMapPinIconAggregate_c, Remove);
|
||||
|
||||
private:
|
||||
/* 0x004 */ UI_STATE_MGR_DECLARE(dLytMapPinIconAggregate_c);
|
||||
/* 0x040 */ dLytMapPinIcon_c mPins[5];
|
||||
|
||||
/* 0x9A0 */ LytMap0x80520B5C *field_0x9A0;
|
||||
/* 0x9A4 */ UNKWORD field_0x9A4;
|
||||
/* 0x9A8 */ UNKWORD field_0x9A8;
|
||||
};
|
||||
|
||||
// Size 0x50
|
||||
class dLytMapFloorBtn_c {
|
||||
public:
|
||||
dLytMapFloorBtn_c()
|
||||
: mStateMgr(*this, sStateID::null), field_0x3C(0), field_0x40(0), field_0x44(0), field_0x48(0), field_0x4C(0),
|
||||
field_0x4D(0) {}
|
||||
~dLytMapFloorBtn_c() {}
|
||||
|
||||
STATE_FUNC_DECLARE(dLytMapFloorBtn_c, Wait);
|
||||
STATE_FUNC_DECLARE(dLytMapFloorBtn_c, ToSelect);
|
||||
STATE_FUNC_DECLARE(dLytMapFloorBtn_c, Select);
|
||||
STATE_FUNC_DECLARE(dLytMapFloorBtn_c, ToWait);
|
||||
STATE_FUNC_DECLARE(dLytMapFloorBtn_c, ToDecide);
|
||||
STATE_FUNC_DECLARE(dLytMapFloorBtn_c, Decide);
|
||||
STATE_FUNC_DECLARE(dLytMapFloorBtn_c, ToSelectInDecide);
|
||||
STATE_FUNC_DECLARE(dLytMapFloorBtn_c, SelectInDecide);
|
||||
STATE_FUNC_DECLARE(dLytMapFloorBtn_c, DecideToSelectInDecide);
|
||||
|
||||
private:
|
||||
/* 0x00 */ UI_STATE_MGR_DECLARE(dLytMapFloorBtn_c);
|
||||
/* 0x3C */ UNKWORD field_0x3C;
|
||||
/* 0x40 */ UNKWORD field_0x40;
|
||||
/* 0x44 */ UNKWORD field_0x44;
|
||||
/* 0x48 */ UNKWORD field_0x48;
|
||||
/* 0x4C */ u8 field_0x4C;
|
||||
/* 0x4D */ u8 field_0x4D;
|
||||
};
|
||||
|
||||
class dLytMapFloorBtnMgr_c : public d2d::dSubPane {
|
||||
public:
|
||||
dLytMapFloorBtnMgr_c(void *arg) : field_0x008(arg), field_0x51C(nullptr), mStateMgr(*this, sStateID::null) {
|
||||
field_0x700 = 1;
|
||||
field_0x704 = 0;
|
||||
field_0x708 = 0;
|
||||
field_0x70C = 4;
|
||||
field_0x710 = 0;
|
||||
field_0x711 = 0;
|
||||
field_0x712 = 0;
|
||||
}
|
||||
virtual ~dLytMapFloorBtnMgr_c();
|
||||
|
||||
virtual bool build(d2d::ResAccIf_c *resAcc) override;
|
||||
virtual bool remove() override;
|
||||
virtual bool LytMeter0x14() override;
|
||||
virtual nw4r::lyt::Pane *getPane() override {
|
||||
return mLyt.getLayout()->GetRootPane();
|
||||
}
|
||||
virtual d2d::LytBase_c *getLyt() override {
|
||||
return &mLyt;
|
||||
}
|
||||
virtual const char *getName() const override {
|
||||
return mLyt.getName();
|
||||
}
|
||||
|
||||
STATE_FUNC_DECLARE(dLytMapFloorBtnMgr_c, Invisible);
|
||||
STATE_FUNC_DECLARE(dLytMapFloorBtnMgr_c, Wait);
|
||||
|
||||
private:
|
||||
/* 0x008 */ void *field_0x008;
|
||||
/* 0x00C */ UI_STATE_MGR_DECLARE(dLytMapFloorBtnMgr_c);
|
||||
/* 0x048 */ d2d::dLytSub mLyt;
|
||||
/* 0x0DC */ d2d::AnmGroup_c mAnmGroups[1];
|
||||
/* 0x11C */ LytMapFourAnimGroups mMoreGroups[4];
|
||||
/* 0x51C */ void *field_0x51C;
|
||||
/* 0x520 */ d2d::dLytStructD mStructDs[4];
|
||||
/* 0x5C0 */ dLytMapFloorBtn_c mFloorBtns[4];
|
||||
/* 0x700 */ UNKWORD field_0x700;
|
||||
/* 0x704 */ UNKWORD field_0x704;
|
||||
/* 0x708 */ UNKWORD field_0x708;
|
||||
/* 0x70C */ UNKWORD field_0x70C;
|
||||
/* 0x710 */ u8 field_0x710;
|
||||
/* 0x711 */ u8 field_0x711;
|
||||
/* 0x712 */ u8 field_0x712;
|
||||
};
|
||||
|
||||
// Size 0x4C
|
||||
class dLytMapPopupInfo_c {
|
||||
public:
|
||||
dLytMapPopupInfo_c() : mStateMgr(*this, sStateID::null) {}
|
||||
|
||||
STATE_FUNC_DECLARE(dLytMapPopupInfo_c, Invisible);
|
||||
STATE_FUNC_DECLARE(dLytMapPopupInfo_c, In);
|
||||
STATE_FUNC_DECLARE(dLytMapPopupInfo_c, Wait);
|
||||
STATE_FUNC_DECLARE(dLytMapPopupInfo_c, WaitInvalid);
|
||||
STATE_FUNC_DECLARE(dLytMapPopupInfo_c, Out);
|
||||
|
||||
private:
|
||||
/* 0x000 */ UI_STATE_MGR_DECLARE(dLytMapPopupInfo_c);
|
||||
/* 0x03C */ d2d::LytBase_c mLyt;
|
||||
/* 0x0CC */ d2d::AnmGroup_c mAnmGroups[3];
|
||||
};
|
||||
|
||||
// Size 0x4C
|
||||
class dLytMapSavePopupAction_c {
|
||||
public:
|
||||
dLytMapSavePopupAction_c() : mStateMgr(*this, sStateID::null), field_0x44(0.0f), field_0x48(0) {}
|
||||
|
||||
STATE_FUNC_DECLARE(dLytMapSavePopupAction_c, Invisible);
|
||||
STATE_FUNC_DECLARE(dLytMapSavePopupAction_c, In);
|
||||
STATE_FUNC_DECLARE(dLytMapSavePopupAction_c, Wait);
|
||||
STATE_FUNC_DECLARE(dLytMapSavePopupAction_c, Out);
|
||||
|
||||
private:
|
||||
/* 0x00 */ UI_STATE_MGR_DECLARE(dLytMapSavePopupAction_c);
|
||||
/* 0x44 */ f32 field_0x44;
|
||||
/* 0x48 */ u8 field_0x48;
|
||||
};
|
||||
|
||||
// Assumed name
|
||||
class dLytMapSavePopup_c {
|
||||
public:
|
||||
dLytMapSavePopup_c() {}
|
||||
|
||||
private:
|
||||
/* 0x000 */ d2d::LytBase_c mLyt;
|
||||
/* 0x090 */ d2d::AnmGroup_c mAnmGroups[2];
|
||||
/* 0x110 */ dLytMapSavePopupAction_c mActions[12];
|
||||
};
|
||||
|
||||
class dLytMapSaveCaption_c {
|
||||
public:
|
||||
dLytMapSaveCaption_c() : mStateMgr(*this, sStateID::null) {}
|
||||
|
||||
STATE_FUNC_DECLARE(dLytMapSaveCaption_c, Invisible);
|
||||
STATE_FUNC_DECLARE(dLytMapSaveCaption_c, In);
|
||||
STATE_FUNC_DECLARE(dLytMapSaveCaption_c, Wait);
|
||||
STATE_FUNC_DECLARE(dLytMapSaveCaption_c, Out);
|
||||
|
||||
private:
|
||||
/* 0x000 */ UI_STATE_MGR_DECLARE(dLytMapSaveCaption_c);
|
||||
/* 0x03C */ d2d::LytBase_c mLyt;
|
||||
/* 0x0CC */ d2d::AnmGroup_c mAnmGroups[5];
|
||||
};
|
||||
|
||||
// Size 0x190
|
||||
class dLytMapSaveObj_c {
|
||||
public:
|
||||
dLytMapSaveObj_c() : mStateMgr(*this, sStateID::null), field_0x18C(0), field_0x18D(0), field_0x18E(0) {}
|
||||
|
||||
STATE_FUNC_DECLARE(dLytMapSaveObj_c, Wait);
|
||||
STATE_FUNC_DECLARE(dLytMapSaveObj_c, ToSelect);
|
||||
STATE_FUNC_DECLARE(dLytMapSaveObj_c, Select);
|
||||
STATE_FUNC_DECLARE(dLytMapSaveObj_c, ToWait);
|
||||
STATE_FUNC_DECLARE(dLytMapSaveObj_c, Decide);
|
||||
|
||||
private:
|
||||
/* 0x000 */ UI_STATE_MGR_DECLARE(dLytMapSaveObj_c);
|
||||
/* 0x03C */ d2d::LytBase_c mLyt;
|
||||
/* 0x0CC */ d2d::AnmGroup_c mAnmGroups[3];
|
||||
/* 0x18C */ u8 field_0x18C;
|
||||
/* 0x18D */ u8 field_0x18D;
|
||||
/* 0x18E */ u8 field_0x18E;
|
||||
};
|
||||
|
||||
class dLytMapMain_c : public m2d::Base_c {
|
||||
public:
|
||||
dLytMapMain_c();
|
||||
virtual ~dLytMapMain_c();
|
||||
virtual void draw() override;
|
||||
virtual void dLytMapMain_vt0x10();
|
||||
|
||||
void build();
|
||||
|
||||
STATE_FUNC_DECLARE(dLytMapMain_c, Invisible);
|
||||
STATE_FUNC_DECLARE(dLytMapMain_c, RenderingWait);
|
||||
STATE_FUNC_DECLARE(dLytMapMain_c, In);
|
||||
STATE_FUNC_DECLARE(dLytMapMain_c, Active);
|
||||
STATE_FUNC_DECLARE(dLytMapMain_c, Out);
|
||||
STATE_FUNC_DECLARE(dLytMapMain_c, FloorChange);
|
||||
STATE_FUNC_DECLARE(dLytMapMain_c, ChgMapUpDirection);
|
||||
STATE_FUNC_DECLARE(dLytMapMain_c, ChgDispAreaMode_Map);
|
||||
STATE_FUNC_DECLARE(dLytMapMain_c, ChgDispAreaMode_MapRot);
|
||||
STATE_FUNC_DECLARE(dLytMapMain_c, ChgDispAreaMode_WA);
|
||||
STATE_FUNC_DECLARE(dLytMapMain_c, ChgDispAreaMode_CsrRot);
|
||||
STATE_FUNC_DECLARE(dLytMapMain_c, ResetPos);
|
||||
STATE_FUNC_DECLARE(dLytMapMain_c, ResetPosWithFloorChange);
|
||||
STATE_FUNC_DECLARE(dLytMapMain_c, EventSwBankSmall_Step1);
|
||||
STATE_FUNC_DECLARE(dLytMapMain_c, EventSwBankSmall_Step2);
|
||||
STATE_FUNC_DECLARE(dLytMapMain_c, EventSwBankSmall_Step3);
|
||||
STATE_FUNC_DECLARE(dLytMapMain_c, EventMapIntro_Step1);
|
||||
STATE_FUNC_DECLARE(dLytMapMain_c, EventMapIntro_Step2);
|
||||
STATE_FUNC_DECLARE(dLytMapMain_c, EventMapIntro_Step3);
|
||||
STATE_FUNC_DECLARE(dLytMapMain_c, EventMapIntro_Step4);
|
||||
STATE_FUNC_DECLARE(dLytMapMain_c, EventDungeonMapGet_Step1);
|
||||
STATE_FUNC_DECLARE(dLytMapMain_c, EventDungeonMapGet_Step2);
|
||||
STATE_FUNC_DECLARE(dLytMapMain_c, EventDungeonMapGet_Step3);
|
||||
STATE_FUNC_DECLARE(dLytMapMain_c, EventFieldMapChange_Step1);
|
||||
STATE_FUNC_DECLARE(dLytMapMain_c, EventFieldMapChange_Step2);
|
||||
STATE_FUNC_DECLARE(dLytMapMain_c, EventFieldMapChange_Step3);
|
||||
STATE_FUNC_DECLARE(dLytMapMain_c, EventFieldMapChange_Step4);
|
||||
STATE_FUNC_DECLARE(dLytMapMain_c, EventForestMapChange_Step1);
|
||||
STATE_FUNC_DECLARE(dLytMapMain_c, EventForestMapChange_Step2);
|
||||
STATE_FUNC_DECLARE(dLytMapMain_c, EventForestMapChange_Step3);
|
||||
STATE_FUNC_DECLARE(dLytMapMain_c, EventSignalAdd_Step1);
|
||||
STATE_FUNC_DECLARE(dLytMapMain_c, EventSignalAdd_Step2);
|
||||
STATE_FUNC_DECLARE(dLytMapMain_c, EventSignalAdd_Step3);
|
||||
STATE_FUNC_DECLARE(dLytMapMain_c, EventGoddessCube_Step1);
|
||||
STATE_FUNC_DECLARE(dLytMapMain_c, EventGoddessCube_Step2);
|
||||
STATE_FUNC_DECLARE(dLytMapMain_c, EventGoddessCube_Step3);
|
||||
STATE_FUNC_DECLARE(dLytMapMain_c, EventSaveObjMsgWindow);
|
||||
STATE_FUNC_DECLARE(dLytMapMain_c, EventSaveObjSelect);
|
||||
STATE_FUNC_DECLARE(dLytMapMain_c, EventSaveObjConfirmMsgWindow);
|
||||
STATE_FUNC_DECLARE(dLytMapMain_c, EventSaveObjDecide);
|
||||
|
||||
private:
|
||||
/* 0x0010 */ UI_STATE_MGR_DECLARE(dLytMapMain_c);
|
||||
/* 0x004C */ u8 field_0x004C[0x00A4 - 0x004C];
|
||||
/* 0x00A4 */ u8 field_0x00A4[0x010C - 0x00A4];
|
||||
/* 0x010C */ d2d::LytBase_c mLyt;
|
||||
/* 0x019C */ d2d::AnmGroup_c mAnmGroups[54];
|
||||
/* 0x0F1C */ LytMap0x80520B5C field_0xF1C;
|
||||
/* 0x0F24 */ dLytMapCapture_c mMapCapture;
|
||||
/* 0x0FA0 */ dLytMapFloorBtnMgr_c mFloorBtnMgr;
|
||||
/* 0x16B4 */ dLytMapPinIconAggregate_c mPinIconAggregate;
|
||||
|
||||
/* 0x6704 */ dLytMapSaveObj_c mSaveObjs[12];
|
||||
/* 0x79C4 */ dLytMapSaveCaption_c mSaveCaption;
|
||||
/* 0x0000 */ dLytMapSavePopup_c mSavePopup;
|
||||
/* 0x807C */ dLytMapPopupInfo_c mPopupInfo;
|
||||
/* 0x828C */ mVec3_c field_0x828C[12];
|
||||
/* 0x832C */ d2d::dLytStructD field_0x832C[33];
|
||||
/* 0x8904 */ mVec3_c field_0x8904;
|
||||
/* 0x8910 */ mVec3_c field_0x8910;
|
||||
/* 0x891C */ mVec3_c field_0x891C;
|
||||
// ???
|
||||
/* 0x8930 */ mVec3_c field_0x8930;
|
||||
/* 0x893C */ mVec3_c field_0x893C;
|
||||
// ???
|
||||
|
||||
/* 0x8CC4 */ mVec3_c field_0x8CC4;
|
||||
/* 0x8CD0 */ mVec3_c field_0x8CD0;
|
||||
/* 0x8CDC */ mVec3_c field_0x8CDC;
|
||||
/* 0x8CE8 */ mVec3_c field_0x8CE8;
|
||||
/* 0x8CF4 */ mVec3_c field_0x8CF4;
|
||||
/* 0x8D00 */ mVec3_c field_0x8D00;
|
||||
/* 0x8D0C */ mVec3_c field_0x8D0C;
|
||||
/* 0x8D18 */ mVec3_c field_0x8D18;
|
||||
/* 0x8D24 */ mVec3_c field_0x8D24;
|
||||
|
||||
/* 0x8DC8 */ UNKWORD field_0x8DC8;
|
||||
};
|
||||
|
||||
// Made up name
|
||||
class dLytMapFader_c : public m2d::Base_c {
|
||||
public:
|
||||
dLytMapFader_c();
|
||||
virtual ~dLytMapFader_c();
|
||||
/* vt 0x0C */ virtual void draw() override;
|
||||
|
||||
void calc();
|
||||
|
||||
private:
|
||||
/* 0x10 */ EGG::ColorFader mFader;
|
||||
};
|
||||
|
||||
// Size 0x91FC, inline ctor at 802ccd88
|
||||
class dLytMap_c {
|
||||
public:
|
||||
dLytMap_c() {
|
||||
sInstance = this;
|
||||
}
|
||||
virtual ~dLytMap_c() {
|
||||
sInstance = nullptr;
|
||||
}
|
||||
|
||||
static d2d::ResAccIf_c *getResAcc() {
|
||||
return &sInstance->mResAcc;
|
||||
}
|
||||
|
||||
void build();
|
||||
|
||||
private:
|
||||
/* 0x0004 */ d2d::ResAccIf_c mResAcc;
|
||||
/* 0x0374 */ dLytMapMain_c mMapMain;
|
||||
|
||||
static dLytMap_c *sInstance;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,38 @@
|
||||
#ifndef D_LYT_MAP_CAPTURE_H
|
||||
#define D_LYT_MAP_CAPTURE_H
|
||||
|
||||
#include "common.h"
|
||||
#include "s/s_State.hpp"
|
||||
#include "s/s_StateID.hpp"
|
||||
|
||||
class dLytMapCapture_c {
|
||||
public:
|
||||
dLytMapCapture_c() :mStateMgr(*this, sStateID::null) {
|
||||
field_0x040 = 0;
|
||||
field_0x070 = 0.0f;
|
||||
field_0x074 = 0.0f;
|
||||
field_0x078 = 0;
|
||||
field_0x079 = 0;
|
||||
field_0x06C = 0.0f;
|
||||
field_0x068 = 0.0f;
|
||||
field_0x064 = 0.0f;
|
||||
mStateMgr.changeState(StateID_RenderingWait);
|
||||
}
|
||||
virtual ~dLytMapCapture_c() {}
|
||||
|
||||
STATE_FUNC_DECLARE(dLytMapCapture_c, RenderingWait);
|
||||
STATE_FUNC_DECLARE(dLytMapCapture_c, RenderingWaitStep2);
|
||||
|
||||
private:
|
||||
/* 0x004 */ UI_STATE_MGR_DECLARE(dLytMapCapture_c);
|
||||
/* 0x040*/ UNKWORD field_0x040;
|
||||
/* 0x064 */ f32 field_0x064;
|
||||
/* 0x068 */ f32 field_0x068;
|
||||
/* 0x06C */ f32 field_0x06C;
|
||||
/* 0x070 */ f32 field_0x070;
|
||||
/* 0x074 */ f32 field_0x074;
|
||||
/* 0x078 */ u8 field_0x078;
|
||||
/* 0x079 */ u8 field_0x079;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -90,6 +90,8 @@ public:
|
||||
void appendToList2(dLytStructD *other);
|
||||
void removeFromList2(dLytStructD *other);
|
||||
|
||||
bool fn_80065A30(dLytStructD *other);
|
||||
|
||||
private:
|
||||
TList<dLytStructC, offsetof(dLytStructC, mLink)> mList1;
|
||||
TList<dLytStructD, offsetof(dLytStructD, mLink)> mList2;
|
||||
|
||||
@@ -155,6 +155,7 @@ public:
|
||||
|
||||
class Base_c {
|
||||
public:
|
||||
Base_c() : mPriority(0x80) {}
|
||||
Base_c(u8 priority) : mPriority(priority) {}
|
||||
/* 0x00 */ nw4r::ut::Node mLink;
|
||||
|
||||
@@ -197,6 +198,9 @@ private:
|
||||
u32 field_0x94;
|
||||
};
|
||||
|
||||
|
||||
void getAllocator();
|
||||
|
||||
} // namespace m2d
|
||||
|
||||
#endif
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
template <class T, class Method>
|
||||
class sFStateMgr_c : public sStateMgr_c<T, Method, sFStateFct_c, sStateIDChk_c> {
|
||||
public:
|
||||
sFStateMgr_c(T &owner)
|
||||
: sStateMgr_c<T, Method, sFStateFct_c, sStateIDChk_c>(owner) {}
|
||||
sFStateMgr_c(T &owner, const sStateIDIf_c &initializeState)
|
||||
: sStateMgr_c<T, Method, sFStateFct_c, sStateIDChk_c>(owner, initializeState) {}
|
||||
};
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#ifndef S_STATEMGR_H
|
||||
#define S_STATEMGR_H
|
||||
|
||||
#include "s/s_StateID.hpp"
|
||||
#include "s/s_StateInterfaces.hpp"
|
||||
|
||||
// Note: Ported from https://github.com/NSMBW-Community/NSMBW-Decomp/tree/master/include/dol/sLib
|
||||
@@ -18,6 +19,8 @@
|
||||
template <class T, class Method, template <class> class Factory, class Check>
|
||||
class sStateMgr_c : sStateMgrIf_c {
|
||||
public:
|
||||
sStateMgr_c(T &owner)
|
||||
: mFactory(owner), mMethod(mCheck, mFactory, sStateID::null) {}
|
||||
sStateMgr_c(T &owner, const sStateIDIf_c &initialState)
|
||||
: mFactory(owner), mMethod(mCheck, mFactory, initialState) {}
|
||||
|
||||
|
||||
@@ -78,4 +78,35 @@ struct SizedString {
|
||||
}
|
||||
};
|
||||
|
||||
// TODO this might be a shared template with SizedString but I'm
|
||||
// not sure how to write the inline functions
|
||||
template <size_t Size>
|
||||
struct SizedWString {
|
||||
SizedWString() {
|
||||
mChars[0] = '\0';
|
||||
}
|
||||
|
||||
wchar_t mChars[Size];
|
||||
|
||||
operator wchar_t *() {
|
||||
return mChars;
|
||||
}
|
||||
|
||||
operator const wchar_t *() const {
|
||||
return mChars;
|
||||
}
|
||||
|
||||
int sprintf(const wchar_t *fmt, ...) {
|
||||
va_list args;
|
||||
va_start(args, fmt);
|
||||
|
||||
int printed = vswprintf(this->mChars, Size, fmt, args);
|
||||
if (printed != wcslen(this->mChars)) {
|
||||
this->mChars[0] = '\0';
|
||||
}
|
||||
va_end(list);
|
||||
return printed;
|
||||
}
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -28,6 +28,8 @@ static const char *captionBoxes[] = {
|
||||
"T_captionS_01",
|
||||
};
|
||||
|
||||
dLytAreaCaption_c *dLytAreaCaption_c::sInstance;
|
||||
|
||||
bool dLytAreaCaptionParts_c::init(int first) {
|
||||
void *data = LayoutArcManager::sInstance->getLoadedData("DoButton");
|
||||
mResAcc.attach(data, "");
|
||||
|
||||
@@ -17,6 +17,8 @@ static const d2d::LytBrlanMapping brlanMap[] = {
|
||||
{ "denchi_00_out.brlan", "G_inOut_00"},
|
||||
};
|
||||
|
||||
dLytBattery_c *dLytBattery_c::sInstance;
|
||||
|
||||
#define LYT_BATTERY_ANIM_IN 0
|
||||
#define LYT_BATTERY_ANIM_NONE 1
|
||||
#define LYT_BATTERY_ANIM_LOOP 2
|
||||
|
||||
@@ -0,0 +1,662 @@
|
||||
#include "d/lyt/d_lyt_map.h"
|
||||
|
||||
#include "common.h"
|
||||
#include "d/lyt/d2d.h"
|
||||
#include "d/lyt/d_structd.h"
|
||||
#include "egg/core/eggColorFader.h"
|
||||
#include "m/m_video.h"
|
||||
#include "sized_string.h"
|
||||
#include "toBeSorted/arc_managers/layout_arc_manager.h"
|
||||
|
||||
struct LytMapConfigMaybe {
|
||||
LytMapConfigMaybe();
|
||||
virtual ~LytMapConfigMaybe();
|
||||
|
||||
/* 0x04 */ f32 field_0x04;
|
||||
/* 0x08 */ f32 field_0x08;
|
||||
/* 0x0C */ f32 field_0x0C;
|
||||
/* 0x10 */ f32 field_0x10;
|
||||
/* 0x14 */ f32 field_0x14;
|
||||
/* 0x18 */ u8 field_0x18;
|
||||
/* 0x19 */ u8 field_0x19;
|
||||
/* 0x1A */ u8 field_0x1A;
|
||||
/* 0x1B */ u8 field_0x1B;
|
||||
/* 0x1C */ u8 field_0x1C;
|
||||
/* 0x1D */ u8 field_0x1D;
|
||||
/* 0x1E */ u8 field_0x1E;
|
||||
/* 0x1F */ u8 field_0x1F;
|
||||
/* 0x20 */ u8 field_0x20;
|
||||
/* 0x21 */ u8 field_0x21;
|
||||
/* 0x22 */ u8 field_0x22;
|
||||
/* 0x23 */ u8 field_0x23;
|
||||
/* 0x24 */ u8 field_0x24;
|
||||
/* 0x25 */ u8 field_0x25;
|
||||
/* 0x26 */ u8 field_0x26;
|
||||
/* 0x27 */ u8 field_0x27;
|
||||
/* 0x28 */ u8 field_0x28;
|
||||
/* 0x29 */ u8 field_0x29;
|
||||
/* 0x2A */ u8 field_0x2A;
|
||||
/* 0x2B */ u8 field_0x2B;
|
||||
/* 0x2C */ f32 field_0x2C;
|
||||
};
|
||||
|
||||
LytMapConfigMaybe sLytMapConfig;
|
||||
|
||||
LytMapConfigMaybe::LytMapConfigMaybe() {
|
||||
field_0x04 = -10.0f;
|
||||
field_0x10 = 14.0f;
|
||||
field_0x14 = 32.0f;
|
||||
field_0x18 = 0;
|
||||
field_0x19 = 0xFF;
|
||||
field_0x1A = 0xF;
|
||||
field_0x1B = 0x12;
|
||||
field_0x1C = 9;
|
||||
field_0x2C = 0.0f;
|
||||
field_0x1D = 0x2D;
|
||||
field_0x1E = 0x2D;
|
||||
field_0x1F = 0x1E;
|
||||
field_0x20 = 0x17;
|
||||
field_0x21 = 0x5A;
|
||||
field_0x22 = 0x2D;
|
||||
field_0x23 = 0x2D;
|
||||
field_0x24 = 0x35;
|
||||
field_0x25 = 0x2D;
|
||||
field_0x26 = 0x5A;
|
||||
field_0x27 = 0x2D;
|
||||
field_0x28 = 0x5A;
|
||||
field_0x29 = 0x5;
|
||||
field_0x08 = 10.0f;
|
||||
field_0x0C = 0.4f;
|
||||
field_0x2A = 0x80;
|
||||
field_0x2B = 10;
|
||||
}
|
||||
|
||||
LytMapConfigMaybe::~LytMapConfigMaybe() {}
|
||||
|
||||
STATE_DEFINE(dLytMapPinIcon_c, Wait);
|
||||
STATE_DEFINE(dLytMapPinIcon_c, ToSelect);
|
||||
STATE_DEFINE(dLytMapPinIcon_c, Select);
|
||||
STATE_DEFINE(dLytMapPinIcon_c, ToUnselect);
|
||||
STATE_DEFINE(dLytMapPinIcon_c, Remove);
|
||||
|
||||
STATE_DEFINE(dLytMapPinIconAggregate_c, Wait);
|
||||
STATE_DEFINE(dLytMapPinIconAggregate_c, Select);
|
||||
STATE_DEFINE(dLytMapPinIconAggregate_c, Remove);
|
||||
|
||||
STATE_DEFINE(dLytMapFloorBtn_c, Wait);
|
||||
STATE_DEFINE(dLytMapFloorBtn_c, ToSelect);
|
||||
STATE_DEFINE(dLytMapFloorBtn_c, Select);
|
||||
STATE_DEFINE(dLytMapFloorBtn_c, ToWait);
|
||||
STATE_DEFINE(dLytMapFloorBtn_c, ToDecide);
|
||||
STATE_DEFINE(dLytMapFloorBtn_c, Decide);
|
||||
STATE_DEFINE(dLytMapFloorBtn_c, ToSelectInDecide);
|
||||
STATE_DEFINE(dLytMapFloorBtn_c, SelectInDecide);
|
||||
STATE_DEFINE(dLytMapFloorBtn_c, DecideToSelectInDecide);
|
||||
|
||||
STATE_DEFINE(dLytMapFloorBtnMgr_c, Invisible);
|
||||
STATE_DEFINE(dLytMapFloorBtnMgr_c, Wait);
|
||||
|
||||
nw4r::ut::Color sMapFaderColor(0xFF, 0xFF, 0xFF, 0xFF);
|
||||
|
||||
STATE_DEFINE(dLytMapPopupInfo_c, Invisible);
|
||||
STATE_DEFINE(dLytMapPopupInfo_c, In);
|
||||
STATE_DEFINE(dLytMapPopupInfo_c, Wait);
|
||||
STATE_DEFINE(dLytMapPopupInfo_c, WaitInvalid);
|
||||
STATE_DEFINE(dLytMapPopupInfo_c, Out);
|
||||
|
||||
STATE_DEFINE(dLytMapSavePopupAction_c, Invisible);
|
||||
STATE_DEFINE(dLytMapSavePopupAction_c, In);
|
||||
STATE_DEFINE(dLytMapSavePopupAction_c, Wait);
|
||||
STATE_DEFINE(dLytMapSavePopupAction_c, Out);
|
||||
|
||||
STATE_DEFINE(dLytMapSaveCaption_c, Invisible);
|
||||
STATE_DEFINE(dLytMapSaveCaption_c, In);
|
||||
STATE_DEFINE(dLytMapSaveCaption_c, Wait);
|
||||
STATE_DEFINE(dLytMapSaveCaption_c, Out);
|
||||
|
||||
STATE_DEFINE(dLytMapSaveObj_c, Wait);
|
||||
STATE_DEFINE(dLytMapSaveObj_c, ToSelect);
|
||||
STATE_DEFINE(dLytMapSaveObj_c, Select);
|
||||
STATE_DEFINE(dLytMapSaveObj_c, ToWait);
|
||||
STATE_DEFINE(dLytMapSaveObj_c, Decide);
|
||||
|
||||
STATE_DEFINE(dLytMapMain_c, Invisible);
|
||||
STATE_DEFINE(dLytMapMain_c, RenderingWait);
|
||||
STATE_DEFINE(dLytMapMain_c, In);
|
||||
STATE_DEFINE(dLytMapMain_c, Active);
|
||||
STATE_DEFINE(dLytMapMain_c, Out);
|
||||
STATE_DEFINE(dLytMapMain_c, FloorChange);
|
||||
STATE_DEFINE(dLytMapMain_c, ChgMapUpDirection);
|
||||
STATE_DEFINE(dLytMapMain_c, ChgDispAreaMode_Map);
|
||||
STATE_DEFINE(dLytMapMain_c, ChgDispAreaMode_MapRot);
|
||||
STATE_DEFINE(dLytMapMain_c, ChgDispAreaMode_WA);
|
||||
STATE_DEFINE(dLytMapMain_c, ChgDispAreaMode_CsrRot);
|
||||
STATE_DEFINE(dLytMapMain_c, ResetPos);
|
||||
STATE_DEFINE(dLytMapMain_c, ResetPosWithFloorChange);
|
||||
STATE_DEFINE(dLytMapMain_c, EventSwBankSmall_Step1);
|
||||
STATE_DEFINE(dLytMapMain_c, EventSwBankSmall_Step2);
|
||||
STATE_DEFINE(dLytMapMain_c, EventSwBankSmall_Step3);
|
||||
STATE_DEFINE(dLytMapMain_c, EventMapIntro_Step1);
|
||||
STATE_DEFINE(dLytMapMain_c, EventMapIntro_Step2);
|
||||
STATE_DEFINE(dLytMapMain_c, EventMapIntro_Step3);
|
||||
STATE_DEFINE(dLytMapMain_c, EventMapIntro_Step4);
|
||||
STATE_DEFINE(dLytMapMain_c, EventDungeonMapGet_Step1);
|
||||
STATE_DEFINE(dLytMapMain_c, EventDungeonMapGet_Step2);
|
||||
STATE_DEFINE(dLytMapMain_c, EventDungeonMapGet_Step3);
|
||||
STATE_DEFINE(dLytMapMain_c, EventFieldMapChange_Step1);
|
||||
STATE_DEFINE(dLytMapMain_c, EventFieldMapChange_Step2);
|
||||
STATE_DEFINE(dLytMapMain_c, EventFieldMapChange_Step3);
|
||||
STATE_DEFINE(dLytMapMain_c, EventFieldMapChange_Step4);
|
||||
STATE_DEFINE(dLytMapMain_c, EventForestMapChange_Step1);
|
||||
STATE_DEFINE(dLytMapMain_c, EventForestMapChange_Step2);
|
||||
STATE_DEFINE(dLytMapMain_c, EventForestMapChange_Step3);
|
||||
STATE_DEFINE(dLytMapMain_c, EventSignalAdd_Step1);
|
||||
STATE_DEFINE(dLytMapMain_c, EventSignalAdd_Step2);
|
||||
STATE_DEFINE(dLytMapMain_c, EventSignalAdd_Step3);
|
||||
STATE_DEFINE(dLytMapMain_c, EventGoddessCube_Step1);
|
||||
STATE_DEFINE(dLytMapMain_c, EventGoddessCube_Step2);
|
||||
STATE_DEFINE(dLytMapMain_c, EventGoddessCube_Step3);
|
||||
STATE_DEFINE(dLytMapMain_c, EventSaveObjMsgWindow);
|
||||
STATE_DEFINE(dLytMapMain_c, EventSaveObjSelect);
|
||||
STATE_DEFINE(dLytMapMain_c, EventSaveObjConfirmMsgWindow);
|
||||
STATE_DEFINE(dLytMapMain_c, EventSaveObjDecide);
|
||||
|
||||
dLytMapFader_c::dLytMapFader_c()
|
||||
: mFader(
|
||||
0.0f, 0.0f, mVideo::m_video->pRenderMode->fbWidth, mVideo::m_video->pRenderMode->efbHeight, sMapFaderColor,
|
||||
EGG::ColorFader::STATUS_PREPARE_OUT
|
||||
) {}
|
||||
|
||||
dLytMapFader_c::~dLytMapFader_c() {}
|
||||
|
||||
void dLytMapFader_c::calc() {
|
||||
mFader.calc();
|
||||
}
|
||||
|
||||
void dLytMapFader_c::draw() {
|
||||
mFader.draw();
|
||||
}
|
||||
|
||||
#define LYT_MAP_PIN_ICON_ANIM_SCALE 0
|
||||
#define LYT_MAP_PIN_ICON_ANIM_ERASE 1
|
||||
#define LYT_MAP_PIN_ICON_ANIM_LOOP 2
|
||||
|
||||
void dLytMapPinIcon_c::initializeState_Wait() {
|
||||
mLyt.calc();
|
||||
}
|
||||
void dLytMapPinIcon_c::executeState_Wait() {
|
||||
bool keepGoing = false;
|
||||
if (field_0x1D0 != nullptr) {
|
||||
keepGoing = !field_0x1D0->field_0x04;
|
||||
}
|
||||
if (!keepGoing) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (field_0x1CC == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (field_0x1BC == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
mStateMgr.changeState(StateID_ToSelect);
|
||||
}
|
||||
void dLytMapPinIcon_c::finalizeState_Wait() {}
|
||||
|
||||
void dLytMapPinIcon_c::initializeState_ToSelect() {
|
||||
d2d::AnmGroup_c *m = &mAnmGroups[1];
|
||||
m->setDirection(false);
|
||||
m->setFrame(0.0f);
|
||||
}
|
||||
void dLytMapPinIcon_c::executeState_ToSelect() {
|
||||
mStateMgr.changeState(StateID_Select);
|
||||
}
|
||||
void dLytMapPinIcon_c::finalizeState_ToSelect() {
|
||||
field_0x1D0->field_0x04 = true;
|
||||
}
|
||||
|
||||
void dLytMapPinIcon_c::initializeState_Select() {}
|
||||
void dLytMapPinIcon_c::executeState_Select() {}
|
||||
void dLytMapPinIcon_c::finalizeState_Select() {}
|
||||
|
||||
void dLytMapPinIcon_c::initializeState_ToUnselect() {}
|
||||
void dLytMapPinIcon_c::executeState_ToUnselect() {
|
||||
mStateMgr.changeState(StateID_Wait);
|
||||
}
|
||||
void dLytMapPinIcon_c::finalizeState_ToUnselect() {
|
||||
field_0x1D0->field_0x04 = false;
|
||||
}
|
||||
|
||||
void dLytMapPinIcon_c::initializeState_Remove() {}
|
||||
void dLytMapPinIcon_c::executeState_Remove() {
|
||||
mStateMgr.changeState(StateID_Wait);
|
||||
}
|
||||
void dLytMapPinIcon_c::finalizeState_Remove() {}
|
||||
|
||||
dLytMapPinIcon_c::~dLytMapPinIcon_c() {
|
||||
if (d2d::dLytStructDList::sInstance->fn_80065A30(&mStructD)) {
|
||||
d2d::dLytStructDList::sInstance->removeFromList2(&mStructD);
|
||||
}
|
||||
}
|
||||
|
||||
static const d2d::LytBrlanMapping sMapPinIconBrlanMap[] = {
|
||||
{"mapPutIcon_00_scale.brlan", "G_scale_00"},
|
||||
{"mapPutIcon_00_erase.brlan", "G_scale_00"},
|
||||
{ "mapPutIcon_00_loop.brlan", "G_scale_00"},
|
||||
};
|
||||
|
||||
bool dLytMapPinIcon_c::build(d2d::ResAccIf_c *resAcc) {
|
||||
mLyt.setResAcc(resAcc);
|
||||
mLyt.build("mapPutIcon_00.brlyt", nullptr);
|
||||
|
||||
d2d::AnmGroup_c *pAnmGroups = mAnmGroups;
|
||||
|
||||
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].setFrame(0.0f);
|
||||
}
|
||||
|
||||
mLyt.calc();
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
pAnmGroups[i].unbind();
|
||||
}
|
||||
|
||||
mpBounding = mLyt.findBounding("B_mark_00");
|
||||
mStructD.fn_80065E70(mpBounding, 2, 1, 0);
|
||||
d2d::dLytStructDList::sInstance->appendToList2(&mStructD);
|
||||
|
||||
mAnmGroups[LYT_MAP_PIN_ICON_ANIM_SCALE].setDirection(false);
|
||||
mAnmGroups[LYT_MAP_PIN_ICON_ANIM_LOOP].setDirection(false);
|
||||
|
||||
mLyt.calc();
|
||||
|
||||
mStateMgr.changeState(StateID_Wait);
|
||||
field_0x1BC = 0;
|
||||
field_0x1CC = 0;
|
||||
field_0x1DC = 0;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool dLytMapPinIcon_c::remove() {
|
||||
d2d::dLytStructDList::sInstance->removeFromList2(&mStructD);
|
||||
for (int i = 0; i < 3; i++) {
|
||||
mAnmGroups[i].afterUnbind();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool dLytMapPinIcon_c::execute() {
|
||||
fn_8012EC30();
|
||||
mStateMgr.executeState();
|
||||
field_0x1BC = 0;
|
||||
mAnmGroups[2].setFrame(field_0x1DC);
|
||||
// TODO something MapCapture
|
||||
mLyt.calc();
|
||||
mStructD.field_0x22 = 0;
|
||||
mStructD.fn_80065F70();
|
||||
return true;
|
||||
}
|
||||
|
||||
bool dLytMapPinIcon_c::draw() {
|
||||
mLyt.draw();
|
||||
return true;
|
||||
}
|
||||
|
||||
void dLytMapPinIconAggregate_c::initializeState_Wait() {}
|
||||
void dLytMapPinIconAggregate_c::executeState_Wait() {
|
||||
for (int i = 0; i < 5; i++) {
|
||||
if (mPins[i].isSelect()) {
|
||||
mStateMgr.changeState(StateID_Select);
|
||||
}
|
||||
}
|
||||
}
|
||||
void dLytMapPinIconAggregate_c::finalizeState_Wait() {}
|
||||
|
||||
void dLytMapPinIconAggregate_c::initializeState_Select() {}
|
||||
void dLytMapPinIconAggregate_c::executeState_Select() {
|
||||
bool anyRemove = false;
|
||||
for (int i = 0; i < 5; i++) {
|
||||
if (mPins[i].isRemove()) {
|
||||
mStateMgr.changeState(StateID_Remove);
|
||||
anyRemove = true;
|
||||
// a bit convoluted, an early return would've done the trick
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!anyRemove) {
|
||||
bool allSelect = true;
|
||||
for (int i = 0; i < 5; i++) {
|
||||
if (mPins[i].isSelect()) {
|
||||
allSelect = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (allSelect) {
|
||||
mStateMgr.changeState(StateID_Wait);
|
||||
}
|
||||
}
|
||||
}
|
||||
void dLytMapPinIconAggregate_c::finalizeState_Select() {}
|
||||
|
||||
void dLytMapPinIconAggregate_c::initializeState_Remove() {}
|
||||
void dLytMapPinIconAggregate_c::executeState_Remove() {
|
||||
field_0x9A0->field_0x04 = false;
|
||||
mStateMgr.changeState(StateID_Wait);
|
||||
}
|
||||
void dLytMapPinIconAggregate_c::finalizeState_Remove() {}
|
||||
|
||||
void dLytMapFloorBtn_c::initializeState_Wait() {}
|
||||
void dLytMapFloorBtn_c::executeState_Wait() {}
|
||||
void dLytMapFloorBtn_c::finalizeState_Wait() {}
|
||||
|
||||
void dLytMapFloorBtn_c::initializeState_ToSelect() {}
|
||||
void dLytMapFloorBtn_c::executeState_ToSelect() {}
|
||||
void dLytMapFloorBtn_c::finalizeState_ToSelect() {}
|
||||
|
||||
void dLytMapFloorBtn_c::initializeState_Select() {}
|
||||
void dLytMapFloorBtn_c::executeState_Select() {}
|
||||
void dLytMapFloorBtn_c::finalizeState_Select() {}
|
||||
|
||||
void dLytMapFloorBtn_c::initializeState_ToWait() {}
|
||||
void dLytMapFloorBtn_c::executeState_ToWait() {}
|
||||
void dLytMapFloorBtn_c::finalizeState_ToWait() {}
|
||||
|
||||
void dLytMapFloorBtn_c::initializeState_ToSelectInDecide() {}
|
||||
void dLytMapFloorBtn_c::executeState_ToSelectInDecide() {}
|
||||
void dLytMapFloorBtn_c::finalizeState_ToSelectInDecide() {}
|
||||
|
||||
void dLytMapFloorBtn_c::initializeState_SelectInDecide() {}
|
||||
void dLytMapFloorBtn_c::executeState_SelectInDecide() {}
|
||||
void dLytMapFloorBtn_c::finalizeState_SelectInDecide() {}
|
||||
|
||||
void dLytMapFloorBtn_c::initializeState_ToDecide() {}
|
||||
void dLytMapFloorBtn_c::executeState_ToDecide() {}
|
||||
void dLytMapFloorBtn_c::finalizeState_ToDecide() {}
|
||||
|
||||
void dLytMapFloorBtn_c::initializeState_Decide() {}
|
||||
void dLytMapFloorBtn_c::executeState_Decide() {}
|
||||
void dLytMapFloorBtn_c::finalizeState_Decide() {}
|
||||
|
||||
void dLytMapFloorBtn_c::initializeState_DecideToSelectInDecide() {}
|
||||
void dLytMapFloorBtn_c::executeState_DecideToSelectInDecide() {}
|
||||
void dLytMapFloorBtn_c::finalizeState_DecideToSelectInDecide() {}
|
||||
|
||||
void dLytMapFloorBtnMgr_c::initializeState_Invisible() {}
|
||||
void dLytMapFloorBtnMgr_c::executeState_Invisible() {}
|
||||
void dLytMapFloorBtnMgr_c::finalizeState_Invisible() {}
|
||||
|
||||
void dLytMapFloorBtnMgr_c::initializeState_Wait() {}
|
||||
void dLytMapFloorBtnMgr_c::executeState_Wait() {}
|
||||
void dLytMapFloorBtnMgr_c::finalizeState_Wait() {}
|
||||
|
||||
extern "C" void fn_801942F0(int, int);
|
||||
dLytMapFloorBtnMgr_c::~dLytMapFloorBtnMgr_c() {
|
||||
for (int i = 0; i < 4; i++) {
|
||||
if (d2d::dLytStructDList::sInstance->fn_80065A30(&mStructDs[i])) {
|
||||
d2d::dLytStructDList::sInstance->removeFromList2(&mStructDs[i]);
|
||||
}
|
||||
}
|
||||
fn_801942F0(0, 0);
|
||||
}
|
||||
|
||||
void dLytMapPopupInfo_c::initializeState_Invisible() {}
|
||||
void dLytMapPopupInfo_c::executeState_Invisible() {}
|
||||
void dLytMapPopupInfo_c::finalizeState_Invisible() {}
|
||||
|
||||
void dLytMapPopupInfo_c::initializeState_In() {}
|
||||
void dLytMapPopupInfo_c::executeState_In() {}
|
||||
void dLytMapPopupInfo_c::finalizeState_In() {}
|
||||
|
||||
void dLytMapPopupInfo_c::initializeState_Wait() {}
|
||||
void dLytMapPopupInfo_c::executeState_Wait() {}
|
||||
void dLytMapPopupInfo_c::finalizeState_Wait() {}
|
||||
|
||||
void dLytMapPopupInfo_c::initializeState_WaitInvalid() {}
|
||||
void dLytMapPopupInfo_c::executeState_WaitInvalid() {}
|
||||
void dLytMapPopupInfo_c::finalizeState_WaitInvalid() {}
|
||||
|
||||
void dLytMapPopupInfo_c::initializeState_Out() {}
|
||||
void dLytMapPopupInfo_c::executeState_Out() {}
|
||||
void dLytMapPopupInfo_c::finalizeState_Out() {}
|
||||
|
||||
void dLytMapSavePopupAction_c::initializeState_Invisible() {}
|
||||
void dLytMapSavePopupAction_c::executeState_Invisible() {}
|
||||
void dLytMapSavePopupAction_c::finalizeState_Invisible() {}
|
||||
|
||||
void dLytMapSavePopupAction_c::initializeState_In() {}
|
||||
void dLytMapSavePopupAction_c::executeState_In() {}
|
||||
void dLytMapSavePopupAction_c::finalizeState_In() {}
|
||||
|
||||
void dLytMapSavePopupAction_c::initializeState_Wait() {}
|
||||
void dLytMapSavePopupAction_c::executeState_Wait() {}
|
||||
void dLytMapSavePopupAction_c::finalizeState_Wait() {}
|
||||
|
||||
void dLytMapSavePopupAction_c::initializeState_Out() {}
|
||||
void dLytMapSavePopupAction_c::executeState_Out() {}
|
||||
void dLytMapSavePopupAction_c::finalizeState_Out() {}
|
||||
|
||||
void dLytMapSaveCaption_c::initializeState_Invisible() {}
|
||||
void dLytMapSaveCaption_c::executeState_Invisible() {}
|
||||
void dLytMapSaveCaption_c::finalizeState_Invisible() {}
|
||||
|
||||
void dLytMapSaveCaption_c::initializeState_In() {}
|
||||
void dLytMapSaveCaption_c::executeState_In() {}
|
||||
void dLytMapSaveCaption_c::finalizeState_In() {}
|
||||
|
||||
void dLytMapSaveCaption_c::initializeState_Wait() {}
|
||||
void dLytMapSaveCaption_c::executeState_Wait() {}
|
||||
void dLytMapSaveCaption_c::finalizeState_Wait() {}
|
||||
|
||||
void dLytMapSaveCaption_c::initializeState_Out() {}
|
||||
void dLytMapSaveCaption_c::executeState_Out() {}
|
||||
void dLytMapSaveCaption_c::finalizeState_Out() {}
|
||||
|
||||
void dLytMapSaveObj_c::initializeState_Wait() {}
|
||||
void dLytMapSaveObj_c::executeState_Wait() {}
|
||||
void dLytMapSaveObj_c::finalizeState_Wait() {}
|
||||
|
||||
void dLytMapSaveObj_c::initializeState_ToSelect() {}
|
||||
void dLytMapSaveObj_c::executeState_ToSelect() {}
|
||||
void dLytMapSaveObj_c::finalizeState_ToSelect() {}
|
||||
|
||||
void dLytMapSaveObj_c::initializeState_Select() {}
|
||||
void dLytMapSaveObj_c::executeState_Select() {}
|
||||
void dLytMapSaveObj_c::finalizeState_Select() {}
|
||||
|
||||
void dLytMapSaveObj_c::initializeState_ToWait() {}
|
||||
void dLytMapSaveObj_c::executeState_ToWait() {}
|
||||
void dLytMapSaveObj_c::finalizeState_ToWait() {}
|
||||
|
||||
void dLytMapSaveObj_c::initializeState_Decide() {}
|
||||
void dLytMapSaveObj_c::executeState_Decide() {}
|
||||
void dLytMapSaveObj_c::finalizeState_Decide() {}
|
||||
|
||||
#pragma dont_inline on
|
||||
dLytMapMain_c::dLytMapMain_c() : mStateMgr(*this), mFloorBtnMgr(&field_0x8DC8) {}
|
||||
#pragma dont_inline reset
|
||||
|
||||
dLytMapMain_c::~dLytMapMain_c() {}
|
||||
|
||||
void dLytMapMain_c::draw() {}
|
||||
|
||||
extern "C" void fn_80016690();
|
||||
void dLytMap_c::build() {
|
||||
fn_80016690();
|
||||
void *data = LayoutArcManager::sInstance->getLoadedData("Map2D");
|
||||
mResAcc.attach(data, "");
|
||||
mMapMain.build();
|
||||
m2d::getAllocator();
|
||||
mMapMain.setPriority(0x86);
|
||||
// TODO there's another thing here at 0x91C0
|
||||
}
|
||||
|
||||
void lytMapusesSizedWString() {
|
||||
static SizedWString<0x20> sString;
|
||||
sString.sprintf(L"%ld", 0);
|
||||
}
|
||||
|
||||
void dLytMapMain_c::initializeState_Invisible() {}
|
||||
void dLytMapMain_c::executeState_Invisible() {}
|
||||
void dLytMapMain_c::finalizeState_Invisible() {}
|
||||
|
||||
void dLytMapMain_c::initializeState_RenderingWait() {}
|
||||
void dLytMapMain_c::executeState_RenderingWait() {}
|
||||
void dLytMapMain_c::finalizeState_RenderingWait() {}
|
||||
|
||||
void dLytMapMain_c::initializeState_In() {}
|
||||
void dLytMapMain_c::executeState_In() {}
|
||||
void dLytMapMain_c::finalizeState_In() {}
|
||||
|
||||
void dLytMapMain_c::initializeState_Active() {}
|
||||
void dLytMapMain_c::executeState_Active() {}
|
||||
void dLytMapMain_c::finalizeState_Active() {}
|
||||
|
||||
void dLytMapMain_c::initializeState_Out() {}
|
||||
void dLytMapMain_c::executeState_Out() {}
|
||||
void dLytMapMain_c::finalizeState_Out() {}
|
||||
|
||||
void dLytMapMain_c::initializeState_FloorChange() {}
|
||||
void dLytMapMain_c::executeState_FloorChange() {}
|
||||
void dLytMapMain_c::finalizeState_FloorChange() {}
|
||||
|
||||
void dLytMapMain_c::initializeState_ChgMapUpDirection() {}
|
||||
void dLytMapMain_c::executeState_ChgMapUpDirection() {}
|
||||
void dLytMapMain_c::finalizeState_ChgMapUpDirection() {}
|
||||
|
||||
void dLytMapMain_c::initializeState_ChgDispAreaMode_MapRot() {}
|
||||
void dLytMapMain_c::executeState_ChgDispAreaMode_MapRot() {}
|
||||
void dLytMapMain_c::finalizeState_ChgDispAreaMode_MapRot() {}
|
||||
|
||||
void dLytMapMain_c::initializeState_ChgDispAreaMode_Map() {}
|
||||
void dLytMapMain_c::executeState_ChgDispAreaMode_Map() {}
|
||||
void dLytMapMain_c::finalizeState_ChgDispAreaMode_Map() {}
|
||||
|
||||
void dLytMapMain_c::initializeState_ChgDispAreaMode_WA() {}
|
||||
void dLytMapMain_c::executeState_ChgDispAreaMode_WA() {}
|
||||
void dLytMapMain_c::finalizeState_ChgDispAreaMode_WA() {}
|
||||
|
||||
void dLytMapMain_c::initializeState_ChgDispAreaMode_CsrRot() {}
|
||||
void dLytMapMain_c::executeState_ChgDispAreaMode_CsrRot() {}
|
||||
void dLytMapMain_c::finalizeState_ChgDispAreaMode_CsrRot() {}
|
||||
|
||||
void dLytMapMain_c::initializeState_ResetPos() {}
|
||||
void dLytMapMain_c::executeState_ResetPos() {}
|
||||
void dLytMapMain_c::finalizeState_ResetPos() {}
|
||||
|
||||
void dLytMapMain_c::initializeState_ResetPosWithFloorChange() {}
|
||||
void dLytMapMain_c::executeState_ResetPosWithFloorChange() {}
|
||||
void dLytMapMain_c::finalizeState_ResetPosWithFloorChange() {}
|
||||
|
||||
void dLytMapMain_c::initializeState_EventSwBankSmall_Step1() {}
|
||||
void dLytMapMain_c::executeState_EventSwBankSmall_Step1() {}
|
||||
void dLytMapMain_c::finalizeState_EventSwBankSmall_Step1() {}
|
||||
|
||||
void dLytMapMain_c::initializeState_EventSwBankSmall_Step2() {}
|
||||
void dLytMapMain_c::executeState_EventSwBankSmall_Step2() {}
|
||||
void dLytMapMain_c::finalizeState_EventSwBankSmall_Step2() {}
|
||||
|
||||
void dLytMapMain_c::initializeState_EventSwBankSmall_Step3() {}
|
||||
void dLytMapMain_c::executeState_EventSwBankSmall_Step3() {}
|
||||
void dLytMapMain_c::finalizeState_EventSwBankSmall_Step3() {}
|
||||
|
||||
void dLytMapMain_c::initializeState_EventMapIntro_Step1() {}
|
||||
void dLytMapMain_c::executeState_EventMapIntro_Step1() {}
|
||||
void dLytMapMain_c::finalizeState_EventMapIntro_Step1() {}
|
||||
|
||||
void dLytMapMain_c::initializeState_EventMapIntro_Step2() {}
|
||||
void dLytMapMain_c::executeState_EventMapIntro_Step2() {}
|
||||
void dLytMapMain_c::finalizeState_EventMapIntro_Step2() {}
|
||||
|
||||
void dLytMapMain_c::initializeState_EventMapIntro_Step3() {}
|
||||
void dLytMapMain_c::executeState_EventMapIntro_Step3() {}
|
||||
void dLytMapMain_c::finalizeState_EventMapIntro_Step3() {}
|
||||
|
||||
void dLytMapMain_c::initializeState_EventMapIntro_Step4() {}
|
||||
void dLytMapMain_c::executeState_EventMapIntro_Step4() {}
|
||||
void dLytMapMain_c::finalizeState_EventMapIntro_Step4() {}
|
||||
|
||||
void dLytMapMain_c::initializeState_EventDungeonMapGet_Step1() {}
|
||||
void dLytMapMain_c::executeState_EventDungeonMapGet_Step1() {}
|
||||
void dLytMapMain_c::finalizeState_EventDungeonMapGet_Step1() {}
|
||||
|
||||
void dLytMapMain_c::initializeState_EventDungeonMapGet_Step2() {}
|
||||
void dLytMapMain_c::executeState_EventDungeonMapGet_Step2() {}
|
||||
void dLytMapMain_c::finalizeState_EventDungeonMapGet_Step2() {}
|
||||
|
||||
void dLytMapMain_c::initializeState_EventDungeonMapGet_Step3() {}
|
||||
void dLytMapMain_c::executeState_EventDungeonMapGet_Step3() {}
|
||||
void dLytMapMain_c::finalizeState_EventDungeonMapGet_Step3() {}
|
||||
|
||||
void dLytMapMain_c::initializeState_EventFieldMapChange_Step1() {}
|
||||
void dLytMapMain_c::executeState_EventFieldMapChange_Step1() {}
|
||||
void dLytMapMain_c::finalizeState_EventFieldMapChange_Step1() {}
|
||||
|
||||
void dLytMapMain_c::initializeState_EventFieldMapChange_Step2() {}
|
||||
void dLytMapMain_c::executeState_EventFieldMapChange_Step2() {}
|
||||
void dLytMapMain_c::finalizeState_EventFieldMapChange_Step2() {}
|
||||
|
||||
void dLytMapMain_c::initializeState_EventFieldMapChange_Step3() {}
|
||||
void dLytMapMain_c::executeState_EventFieldMapChange_Step3() {}
|
||||
void dLytMapMain_c::finalizeState_EventFieldMapChange_Step3() {}
|
||||
|
||||
void dLytMapMain_c::initializeState_EventFieldMapChange_Step4() {}
|
||||
void dLytMapMain_c::executeState_EventFieldMapChange_Step4() {}
|
||||
void dLytMapMain_c::finalizeState_EventFieldMapChange_Step4() {}
|
||||
|
||||
void dLytMapMain_c::initializeState_EventForestMapChange_Step1() {}
|
||||
void dLytMapMain_c::executeState_EventForestMapChange_Step1() {}
|
||||
void dLytMapMain_c::finalizeState_EventForestMapChange_Step1() {}
|
||||
|
||||
void dLytMapMain_c::initializeState_EventForestMapChange_Step2() {}
|
||||
void dLytMapMain_c::executeState_EventForestMapChange_Step2() {}
|
||||
void dLytMapMain_c::finalizeState_EventForestMapChange_Step2() {}
|
||||
|
||||
void dLytMapMain_c::initializeState_EventForestMapChange_Step3() {}
|
||||
void dLytMapMain_c::executeState_EventForestMapChange_Step3() {}
|
||||
void dLytMapMain_c::finalizeState_EventForestMapChange_Step3() {}
|
||||
|
||||
void dLytMapMain_c::initializeState_EventSignalAdd_Step1() {}
|
||||
void dLytMapMain_c::executeState_EventSignalAdd_Step1() {}
|
||||
void dLytMapMain_c::finalizeState_EventSignalAdd_Step1() {}
|
||||
|
||||
void dLytMapMain_c::initializeState_EventSignalAdd_Step2() {}
|
||||
void dLytMapMain_c::executeState_EventSignalAdd_Step2() {}
|
||||
void dLytMapMain_c::finalizeState_EventSignalAdd_Step2() {}
|
||||
|
||||
void dLytMapMain_c::initializeState_EventSignalAdd_Step3() {}
|
||||
void dLytMapMain_c::executeState_EventSignalAdd_Step3() {}
|
||||
void dLytMapMain_c::finalizeState_EventSignalAdd_Step3() {}
|
||||
|
||||
void dLytMapMain_c::initializeState_EventGoddessCube_Step1() {}
|
||||
void dLytMapMain_c::executeState_EventGoddessCube_Step1() {}
|
||||
void dLytMapMain_c::finalizeState_EventGoddessCube_Step1() {}
|
||||
|
||||
void dLytMapMain_c::initializeState_EventGoddessCube_Step2() {}
|
||||
void dLytMapMain_c::executeState_EventGoddessCube_Step2() {}
|
||||
void dLytMapMain_c::finalizeState_EventGoddessCube_Step2() {}
|
||||
|
||||
void dLytMapMain_c::initializeState_EventGoddessCube_Step3() {}
|
||||
void dLytMapMain_c::executeState_EventGoddessCube_Step3() {}
|
||||
void dLytMapMain_c::finalizeState_EventGoddessCube_Step3() {}
|
||||
|
||||
void dLytMapMain_c::initializeState_EventSaveObjMsgWindow() {}
|
||||
void dLytMapMain_c::executeState_EventSaveObjMsgWindow() {}
|
||||
void dLytMapMain_c::finalizeState_EventSaveObjMsgWindow() {}
|
||||
|
||||
void dLytMapMain_c::initializeState_EventSaveObjSelect() {}
|
||||
void dLytMapMain_c::executeState_EventSaveObjSelect() {}
|
||||
void dLytMapMain_c::finalizeState_EventSaveObjSelect() {}
|
||||
|
||||
void dLytMapMain_c::initializeState_EventSaveObjConfirmMsgWindow() {}
|
||||
void dLytMapMain_c::executeState_EventSaveObjConfirmMsgWindow() {}
|
||||
void dLytMapMain_c::finalizeState_EventSaveObjConfirmMsgWindow() {}
|
||||
|
||||
void dLytMapMain_c::initializeState_EventSaveObjDecide() {}
|
||||
void dLytMapMain_c::executeState_EventSaveObjDecide() {}
|
||||
void dLytMapMain_c::finalizeState_EventSaveObjDecide() {}
|
||||
@@ -275,7 +275,7 @@ void floats2() {
|
||||
|
||||
#pragma dont_inline on
|
||||
dLytMeter_c::dLytMeter_c() {}
|
||||
#pragma dont_inline off
|
||||
#pragma dont_inline reset
|
||||
|
||||
extern "C" void *GLOBAL_TITLE_RELOADER;
|
||||
extern "C" void fn_800D97E0(int i);
|
||||
|
||||
Reference in New Issue
Block a user