demo progress for d_menu_fmap and ghostship

This commit is contained in:
LagoLunatic
2026-09-04 19:36:03 -04:00
parent 7735a21e14
commit 56528e2e29
5 changed files with 371 additions and 251 deletions
+5 -5
View File
@@ -18,8 +18,8 @@ public:
};
bool checkInShip() { return mbCanEnterShip; }
void getAlpha() {}
void setMtx() {}
f32 getAlpha() { return mAlpha; }
inline void setMtx();
inline cPhs_State _create();
inline bool _delete();
@@ -38,7 +38,7 @@ public:
void createInit();
void getArg();
public:
private:
/* 0x290 */ u32 mMode;
/* 0x294 */ s32 mPathNo;
/* 0x298 */ u8 moonPhase;
@@ -52,8 +52,8 @@ public:
/* 0x2C8 */ u32 field_0x2C8;
/* 0x2CC */ request_of_phase_process_class mPhs;
/* 0x2D4 */ request_of_phase_process_class mClothPhs;
/* 0x2DC */ dCloth_packet_c* mpCloth;
/* 0x2E0 */ dCloth_packet_c* mpCloth2;
/* 0x2DC */ dCloth_packetXlu_c* mpCloth;
/* 0x2E0 */ dCloth_packetXlu_c* mpCloth2;
/* 0x2E4 */ J3DModel* mpModel;
/* 0x2E8 */ mDoExt_btkAnm mBtk;
/* 0x2FC */ f32 mAlpha;
+20 -14
View File
@@ -5,6 +5,7 @@
#include "JSystem/J3DGraphAnimator/J3DModel.h"
#include "JSystem/JUtility/JUTTexture.h"
#include "SSystem/SComponent/c_xyz.h"
#include "d/d_kankyo.h"
class dKy_tevstr_c;
@@ -57,11 +58,11 @@ public:
return false;
}
cXyz* getPosP() const { return mpPosArr[mCurArr]; }
cXyz* getNrmP() const { return mpNrmArr[mCurArr]; }
cXyz* getBackNrmP() const { return mpNrmArrBack[mCurArr]; }
cXyz* getSpdP() const { return mpSpeedArr; }
u32 getVerticalNum() const { return mHoistGridSize; }
cXyz* getPosP() { return mpPosArr[mCurArr]; }
cXyz* getNrmP() { return mpNrmArr[mCurArr]; }
cXyz* getBackNrmP() { return mpNrmArrBack[mCurArr]; }
cXyz* getSpdP() { return mpSpeedArr; }
u32 getVarticalNum() const { return mHoistGridSize; }
GXTexObj* getTexObjP() { return &mTexObj; }
GXTexObj* getToonTexObjP() { return &mToonTex; }
@@ -100,15 +101,20 @@ protected:
/* 0xF6 */ s16 mRotateY;
/* 0xF8 */ u8 mCurArr;
}; // Size: 0xFC
dCloth_packet_c* dCloth_packet_create(
ResTIMG* i_flagimage, ResTIMG* i_toonimage, int flyGridSize, int hoistGridSize, float flyLength, float hoistLength, dKy_tevstr_c* tevstr, cXyz** posArr
);
class dCloth_packetXlu_c : public dCloth_packet_c {
public:
virtual void cloth_draw();
virtual void TevSetting();
private:
void setAlpha(dKy_tevstr_c* tevStr, u8 alpha) {
tevStr->mColorC0.a = alpha;
}
dCloth_packetXlu_c(ResTIMG* i_toonimage, int flyGridSize, int hoistGridSize, float flyLength, float hoistLength, dKy_tevstr_c* tevstr, cXyz** posArr)
: dCloth_packet_c(i_toonimage, flyGridSize, hoistGridSize, flyLength, hoistLength, tevstr, posArr) {}
@@ -123,13 +129,13 @@ dCloth_packetXlu_c* dCloth_packetXlu_create(
);
class dClothVobj03_c : public dCloth_packet_c {
public:
virtual void init();
virtual void cloth_move();
virtual void TexObjInit(ResTIMG*);
virtual void TexObjLoad();
void cloth_copy();
private:
dClothVobj03_c(ResTIMG* i_toonimage, dKy_tevstr_c* tevstr, cXyz** posArr)
: dCloth_packet_c(i_toonimage, 5, 5, 120.0f, 60.0f, tevstr, posArr) {
if (posArr) {
@@ -139,7 +145,6 @@ private:
}
}
private:
static dClothVobj03_c* top_pointer;
static s32 cloth_counter;
@@ -150,16 +155,17 @@ private:
bool mIsStandItem;
bool mIsIndoors;
};
dClothVobj03_c* dClothVobj03_create(ResTIMG* i_flagimage, ResTIMG* i_toonimage, dKy_tevstr_c* tevstr, cXyz** posArr);
class dClothVobj04_c : public dCloth_packet_c {
public:
virtual void init();
virtual void cloth_move();
virtual void TexObjInit(ResTIMG*);
virtual void TexObjLoad();
void cloth_copy();
private:
dClothVobj04_c(ResTIMG* i_toonimage, dKy_tevstr_c* tevstr, cXyz** posArr)
: dCloth_packet_c(i_toonimage, 5, 5, 120.0f, 60.0f, tevstr, posArr) {
if (posArr) {
@@ -169,7 +175,6 @@ private:
}
};
private:
static dClothVobj04_c* top_pointer;
static s32 cloth_counter;
@@ -180,16 +185,17 @@ private:
bool mIsStandItem;
bool mIsIndoors;
};
dClothVobj04_c* dClothVobj04_create(ResTIMG* i_flagimage, ResTIMG* i_toonimage, dKy_tevstr_c* tevstr, cXyz** posArr);
class dClothVobj05_c : public dCloth_packet_c {
public:
virtual void init();
virtual void cloth_move();
virtual void TexObjInit(ResTIMG*);
virtual void TexObjLoad();
void cloth_copy();
private:
dClothVobj05_c(ResTIMG* i_toonimage, dKy_tevstr_c* tevstr, cXyz** posArr)
: dCloth_packet_c(i_toonimage, 5, 5, 50.0f, 120.0f, tevstr, posArr) {
if (posArr) {
@@ -199,7 +205,6 @@ private:
}
}
private:
static dClothVobj05_c* top_pointer;
static s32 cloth_counter;
@@ -210,16 +215,17 @@ private:
bool mIsStandItem;
bool mIsIndoors;
};
dClothVobj05_c* dClothVobj05_create(ResTIMG* i_flagimage, ResTIMG* i_toonimage, dKy_tevstr_c* tevstr, cXyz** posArr);
class dClothVobj07_0_c : public dCloth_packet_c {
public:
virtual void init();
virtual void cloth_move();
virtual void TexObjInit(ResTIMG*);
virtual void TexObjLoad();
void cloth_copy();
private:
dClothVobj07_0_c(ResTIMG* i_toonimage, dKy_tevstr_c* tevstr, cXyz** posArr)
: dCloth_packet_c(i_toonimage, 5, 5, 120.0f, 70.0f, tevstr, posArr) {
if (posArr) {
@@ -229,7 +235,6 @@ private:
}
}
private:
static dClothVobj07_0_c* top_pointer;
static s32 cloth_counter;
@@ -240,6 +245,7 @@ private:
bool mIsStandItem;
bool mIsIndoors;
};
dClothVobj07_0_c* dClothVobj07_0_create(ResTIMG* i_flagimage, ResTIMG* i_toonimage, dKy_tevstr_c* tevstr, cXyz** posArr);
#endif /* D_A_CLOTH_PACKET_H */
+39 -24
View File
@@ -52,6 +52,12 @@ enum dMf_WarpSel {
FMAP_WARP_SEL_NO = 1,
};
#if VERSION == VERSION_DEMO
#define FMAP_WARP_COUNT 7
#else
#define FMAP_WARP_COUNT 9
#endif
class dDlst_FMAP_c : public dDlst_base_c {
public:
virtual ~dDlst_FMAP_c() {}
@@ -68,75 +74,75 @@ public:
void draw() { _draw(); }
u8 getCtDispMode() {
JUT_ASSERT(VERSION_SELECT(456, 456, 467, 467), fmapSv != NULL);
return fmapSv->dispMode;
return fmapSv->getDispMode();
}
void setCtDispMode(u8 val) {
JUT_ASSERT(VERSION_SELECT(461, 461, 472, 472), fmapSv != NULL);
fmapSv->dispMode = val;
fmapSv->setDispMode(val);
}
u8 getCtFmapZoom() {
JUT_ASSERT(VERSION_SELECT(467, 467, 478, 478), fmapSv != NULL);
return fmapSv->fmapZoom;
return fmapSv->getFmapZoom();
}
void setCtFmapZoom(u8 val) {
JUT_ASSERT(VERSION_SELECT(472, 472, 483, 483), fmapSv != NULL);
fmapSv->fmapZoom = val;
fmapSv->setFmapZoom(val);
}
s8 getCtCurX() {
JUT_ASSERT(VERSION_SELECT(478, 478, 489, 489), fmapSv != NULL);
return fmapSv->curX;
return fmapSv->getCurX();
}
void setCtCurX(s8 val) {
JUT_ASSERT(VERSION_SELECT(483, 483, 494, 494), fmapSv != NULL);
fmapSv->curX = val;
fmapSv->setCurX(val);
}
s8 getCtCurY() {
JUT_ASSERT(VERSION_SELECT(489, 489, 500, 500), fmapSv != NULL);
return fmapSv->curY;
return fmapSv->getCurY();
}
void setCtCurY(s8 val) {
JUT_ASSERT(VERSION_SELECT(494, 494, 505, 505), fmapSv != NULL);
fmapSv->curY = val;
fmapSv->setCurY(val);
}
s8 getCtCurWX() {
JUT_ASSERT(VERSION_SELECT(500, 500, 511, 511), fmapSv != NULL);
return fmapSv->curWX;
return fmapSv->getCurWX();
}
void setCtCurWX(s8 val) {
JUT_ASSERT(VERSION_SELECT(505, 505, 516, 516), fmapSv != NULL);
fmapSv->curWX = val;
fmapSv->setCurWX(val);
}
s8 getCtCurWY() {
JUT_ASSERT(VERSION_SELECT(511, 511, 522, 522), fmapSv != NULL);
return fmapSv->curWY;
return fmapSv->getCurWY();
}
void setCtCurWY(s8 val) {
JUT_ASSERT(VERSION_SELECT(516, 516, 527, 527), fmapSv != NULL);
fmapSv->curWY = val;
fmapSv->setCurWY(val);
}
s8 getCtZoomGridX() {
JUT_ASSERT(VERSION_SELECT(522, 522, 533, 533), fmapSv != NULL);
return fmapSv->zoomGridX;
return fmapSv->getZoomGridX();
}
void setCtZoomGridX(s8 val) {
JUT_ASSERT(VERSION_SELECT(527, 527, 538, 538), fmapSv != NULL);
fmapSv->zoomGridX = val;
fmapSv->setZoomGridX(val);
}
s8 getCtZoomGridY() {
JUT_ASSERT(VERSION_SELECT(532, 532, 543, 543), fmapSv != NULL);
return fmapSv->zoomGridY;
return fmapSv->getZoomGridY();
}
void setCtZoomGridY(s8 val) {
JUT_ASSERT(VERSION_SELECT(537, 537, 548, 548), fmapSv != NULL);
fmapSv->zoomGridY = val;
fmapSv->setZoomGridY(val);
}
void setCtCurHX(s8 val) {
JUT_ASSERT(VERSION_SELECT(548, 548, 559, 559), fmapSv != NULL);
fmapSv->curHX = val;
fmapSv->setCurHX(val);
}
void setCtCurHY(s8 val) {
JUT_ASSERT(VERSION_SELECT(558, 558, 569, 569), fmapSv != NULL);
fmapSv->curHY = val;
fmapSv->setCurHY(val);
}
void lineInter0to1(f32, f32, f32) {}
void lineInter0to1ForU8(u8, u8, f32) {}
@@ -200,6 +206,10 @@ public:
void windArrowColorAnime();
void checkMarkAnimeInit();
void checkMarkAnime();
#if VERSION == VERSION_DEMO
void krogMarkAnimeInit();
void krogMarkAnime();
#endif
u32 readFmapTexture(const char*);
void aramCmapDatRead();
void initCmapDatPnt(aramCmapDatPat_t*);
@@ -301,6 +311,9 @@ public:
/* 0x0018 */ ResTIMG * mChkPntTxt_p;
/* 0x001C */ dDlst_FMAP_c fmapDl;
/* 0x0024 */ dMenu_Fmap2_c mFmap2;
#if VERSION == VERSION_DEMO
u8 pad4[0x38 * 2];
#endif
/* 0x2874 */ u8 padding_0x2874[0x2878 - 0x2874];
/* 0x2878 */ dMenu_FmapSv_c* fmapSv;
/* 0x287C */ aramCmapDat_c mCmapDatPnt;
@@ -366,12 +379,15 @@ public:
/* 0x4F0C */ fopMsgM_pane_class mCur1Pane;
#if VERSION > VERSION_JPN
/* 0x4F44 */ fopMsgM_pane_class mGsPanes[7];
#endif
#if VERSION == VERSION_DEMO
u8 pad [0x340 + 8];
#endif
/* 0x50CC */ STControl* stick;
/* 0x50D0 */ JUTFont* mFont;
/* 0x50D4 */ JUTFont* mRFont;
/* 0x50D8 */ JPABaseEmitter* mWrapBackEmitter;
/* 0x50DC */ JPABaseEmitter* mWrapSpotEmitters[9];
/* 0x50DC */ JPABaseEmitter* mWrapSpotEmitters[FMAP_WARP_COUNT];
/* 0x5100 */ u8 padding_0x5100[0x510C - 0x5100];
/* 0x510C */ bool mMapClose;
/* 0x510D */ u8 mSelCursorBufIdx;
@@ -423,7 +439,8 @@ public:
/* 0x517A */ u8 mFishmanTimer3;
/* 0x517B */ u8 mCheckMarkTimer;
/* 0x517C */ u8 mCheckMarkToggle;
/* 0x517D */ u8 padding_0x517D[0x517F-0x517D];
/* 0x517D */ u8 field_0x517D;
/* 0x517E */ u8 field_0x517E;
/* 0x517F */ bool mFishmanActive;
/* 0x5180 */ u8 mSalvagePntIdx;
/* 0x5181 */ u8 mButtonIconMode;
@@ -451,8 +468,6 @@ public:
#endif
}; // Size: 0x51B4
STATIC_ASSERT(sizeof(dMenu_Fmap_c) == VERSION_SELECT(0x4E54, 0x4E54, 0x51B4, 0x51B4));
class dMf_HIO_c : public JORReflexible {
public:
dMf_HIO_c();
@@ -509,8 +524,8 @@ public:
/* 0x04D */ u8 mWarpCursorAlphaMin;
/* 0x04E */ u8 mWarpCursorAlphaMax;
/* 0x04F */ u8 padding_0x4F[0x50 - 0x4F];
/* 0x050 */ f32 mWarpSpotPosX[9];
/* 0x074 */ f32 mWarpSpotPosY[9];
/* 0x050 */ f32 mWarpSpotPosX[FMAP_WARP_COUNT];
/* 0x074 */ f32 mWarpSpotPosY[FMAP_WARP_COUNT];
/* 0x098 */ f32 mWarpSpotScaleSel;
/* 0x09C */ f32 mWarpSpotScale;
/* 0x0A0 */ f32 field_0xA0;