tp/include/d/meter/d_meter2_info.h

256 lines
7.7 KiB
C++

#ifndef D_METER_D_METER2_INFO_H
#define D_METER_D_METER2_INFO_H
#include "JSystem/JUtility/JUTTexture.h"
#include "d/d_resorce.h"
#include "d/menu/d_menu_window.h"
#include "d/msg/d_msg_flow.h"
#include "d/pane/d_pane_class.h"
#include "dolphin/types.h"
#include "f_op/f_op_actor.h"
struct dMsgObject_c {
/* 802384C4 */ static void setLetterNameID(u16);
/* 802379AC */ void setKillMessageFlag();
/* 8023822C */ void getStatus();
};
class dMeterMap_c {
public:
/* 8020D900 */ static bool isMapOpenCheck();
/* 8020D650 */ void isEnableDispMapAndMapDispSizeTypeNo();
/* 8020D874 */ void setDispPosInsideFlg_SE_On();
/* 8020D8BC */ void setDispPosOutsideFlg_SE_On();
};
struct J2DPicture {};
struct JMSMesgEntry_c {
/* 0x00 */ u32 mStringOffset;
/* 0x04 */ u16 mStringId;
/* 0x06 */ u16 field_0x04;
/* 0x08 */ u8 field_0x08;
/* 0x09 */ u8 field_0x09;
/* 0x0A */ u8 field_0x0a;
/* 0x0B */ u8 field_0x0b;
/* 0x0C */ u8 field_0x0c;
/* 0x0D */ u8 field_0x0d;
/* 0x0E */ u8 field_0x0e;
/* 0x0F */ u8 field_0x0f;
/* 0x10 */ u8 field_0x10;
/* 0x11 */ u8 field_0x11;
/* 0x12 */ u8 field_0x12;
/* 0x13 */ u8 field_0x13;
}; // Size: 0x14
struct dMenu_LetterData {
u16 mSubject;
u16 mName;
u16 mText;
u16 mEventFlag;
};
struct dMenu_Letter {
static u16 getLetterSubject(int idx) { return letter_data[idx].mSubject; }
static u16 getLetterName(int idx) { return letter_data[idx].mName; }
static u16 getLetterText(int idx) { return letter_data[idx].mText; }
static u16 getLetterEventFlag(int idx) { return letter_data[idx].mEventFlag; }
static dMenu_LetterData letter_data[64];
};
struct dItem_data {
static void* item_resource[1530];
};
class dMw_c;
class dMeter2_c {
public:
/* 8021F6EC */ void emphasisButtonDelete();
};
class dMeter2Info_c {
public:
class WarpInfo_c {
public:
/* 0x00 */ char mStageName[8];
/* 0x08 */ cXyz mPosition;
/* 0x14 */ s16 mAngle;
/* 0x16 */ u8 mRoomNo;
/* 0x17 */ u8 unk79;
/* 0x18 */ u8 mWarpPlayerNo;
};
dMeter2Info_c();
virtual ~dMeter2Info_c();
void init(void);
int setFloatingMessage(u16, s16, bool);
void setFloatingFlow(u16, s16, bool);
int isFloatingMessageVisible(void);
int decFloatingMessageTimer(void);
void resetFloatingMessage(void);
void decMsgKeyWaitTimer(void);
void getString(u32, char*, JMSMesgEntry_c*); // define JMSMesgEntry
void getStringKana(u32, char*, JMSMesgEntry_c*);
void getStringKanji(u32, char*, JMSMesgEntry_c*);
double getStringLength(J2DTextBox*, char*); // define J2DTextBox
dMeter2Info_c* getStringLength(JUTFont*, float, float, char*);
void onDirectUseItem(int);
bool isDirectUseItem(int);
int setMeterString(s32);
void resetWarpStatus(void);
void warpInProc(void);
void warpOutProc(void);
void resetMeterString(void);
void setWarpInfo(const char*, const cXyz&, s16, u8, u8, u8);
u8 getItemType(u8);
u8 readItemTexture(u8, void*, J2DPicture*, void*, J2DPicture*, void*, J2DPicture*, void*,
J2DPicture*, int); // define J2DPicture
void setItemColor(u8, J2DPicture*, J2DPicture*, J2DPicture*, J2DPicture*);
s8 get2ndTexture(u8);
s8 get3rdTexture(u8);
s8 get4thTexture(u8);
void set1stColor(u8, J2DPicture*);
void set2ndColor(u8, J2DPicture*);
void set3rdColor(u8, J2DPicture*);
void set4thColor(u8, J2DPicture*);
void setHotSpringTimer(u8);
void decHotSpringTimer(void);
void changeWater(u8);
void setMiniGameItem(u8);
void resetMiniGameItem(bool);
void setMiniGameCount(s8);
void setSaveStageName(const char*);
void setWindowStatus(u8 status) {
unk186 = mWindowStatus;
mWindowStatus = status;
}
u8& getDirectUseItem() { return mDirectUseItem; }
dMeterMap_c* getMeterMapClass() { return mMeterMap; }
dMw_c* getMenuWindowClass() { return mMenuWindowClass; }
void offUseButton(int pButton) { mUseButton &= ~(u16)pButton; }
u16 getOilGaugeBackUp() { return mOilGaugeBackUp; }
private:
/* 0x04 */ u8 unk4[4];
/* 0x08 */ u64 unk8;
/* 0x10 */ void* mMsgResource;
/* 0x14 */ void* mStageMsgResource;
/* 0x18 */ void* mMsgUnitResource;
/* 0x1C */ dMeter2_c* mMeterClass;
/* 0x20 */ dMeterMap_c* mMeterMap;
/* 0x24 */ dMw_c* mMenuWindowClass;
/* 0x28 */ CPaneMgr* mMeterItemPanePtr[4];
/* 0x38 */ WarpInfo_c mWarpInfo;
/* 0x54 */ float unk84;
/* 0x58 */ float unk88;
/* 0x5C */ float unk92;
/* 0x60 */ float unk96;
/* 0x64 */ float unk100;
/* 0x68 */ float unk104;
/* 0x6C */ float unk108;
/* 0x70 */ float m2DWidth;
/* 0x74 */ float m2DHeight;
/* 0x78 */ float m2DPosH;
/* 0x7C */ float m2DPosV;
/* 0x80 */ float unk128;
/* 0x84 */ u32 mTimeMs;
/* 0x88 */ u32 mMsgTimeMs;
/* 0x8C */ u32 mMeterString;
/* 0x90 */ u32 mTempBits;
/* 0x94 */ s16 mMsgKeyWaitTimer;
/* 0x96 */ u16 mHorseLifeCount;
/* 0x98 */ u16 unk152;
/* 0x9A */ u16 mHotSpringTimer[4];
/* 0xA2 */ u16 mSub2DStatus;
/* 0xA4 */ u16 mFloatingFlowID;
/* 0xA6 */ u16 mFloatingMessageID;
/* 0xA8 */ s16 mFloatingMessageTimer;
/* 0xAA */ u16 mMapKeyDirection;
/* 0xAC */ u16 mBlinkButton;
/* 0xAE */ u16 mUseButton;
/* 0xB0 */ u16 mGameStatus;
/* 0xB2 */ u16 mTouchKeyCheck;
/* 0xB4 */ u16 mWindowAccept;
/* 0xB6 */ u16 mOilGaugeBackUp;
/* 0xB8 */ u8 mDirectUseItem;
/* 0xB9 */ u8 mWindowStatus;
/* 0xBA */ u8 unk186;
/* 0xBB */ u8 mMaxCount;
/* 0xBC */ u8 mNowCount;
/* 0xBD */ bool mShopTalkFlag;
/* 0xBE */ u8 unk190;
/* 0xBF */ u8 mMapStatus;
/* 0xC0 */ u8 mWarpStatus;
/* 0xC1 */ u8 mPauseStatus;
/* 0xC2 */ u8 mGameOverType;
/* 0xC3 */ u8 mInsectSelectType;
/* 0xC4 */ u8 unk196[4];
/* 0xC8 */ u8 unk200[4];
/* 0xCC */ u8 unk204;
/* 0xCD */ u8 unk205; // arrow num
/* 0xCE */ u8 unk206; // item 1
/* 0xCF */ u8 unk207; // item 2
/* 0xD0 */ u8 unk208[4];
/* 0xD4 */ u8 unk212[4];
/* 0xD8 */ u8 unk216; // bomb num
/* 0xD9 */ u8 unk217; // arrow num?
/* 0xDA */ u8 unk218; // item 1?
/* 0xDB */ u8 unk219; // item 2
/* 0xDC */ u8 mRentalBombBag;
/* 0xDD */ u8 mMiniGameItemSetFlag; // 1: rented in game, 3: rented not in game
/* 0xDE */ u8 mMiniGameCount;
/* 0xDF */ u8 mCollectCursorPosX;
/* 0xE0 */ u8 mCollectCursorPosY;
/* 0xE1 */ u8 mTableMapRegionNo;
/* 0xE2 */ u8 mGoldWolfMapType;
/* 0xE3 */ u8 mLightDropGetFlag[3];
/* 0xE6 */ u8 mLifeGaugeSE;
/* 0xE7 */ u8 unk231;
/* 0xE8 */ u8 mItemExplainWindowStatus;
/* 0xE9 */ char mSaveStageName[8];
/* 0xF1 */ bool mFloatingMessageWakuVisible;
/* 0xF2 */ u8 mMapDrugFlag;
/* 0xF3 */ u8 unk243[5];
};
extern dMeter2Info_c g_meter2_info;
void dMeter2Info_setSword(u8, bool);
inline void dMeter2Info_Initialize() {
g_meter2_info.init();
}
inline dMeterMap_c* dMeter2Info_getMeterMapClass() {
return g_meter2_info.getMeterMapClass();
}
inline dMw_c* dMeter2Info_getMenuWindowClass() {
return g_meter2_info.getMenuWindowClass();
}
inline void dMeter2Info_setWindowStatus(u8 status) {
g_meter2_info.setWindowStatus(status);
}
inline void dMeter2Info_getString(u32 param_0, char* param_1, JMSMesgEntry_c* param_2) {
g_meter2_info.getString(param_0, param_1, param_2);
}
inline void dMeter2Info_setHotSpringTimer(u8 time) {
g_meter2_info.setHotSpringTimer(time);
}
inline u16 dMeter2Info_getOilGaugeBackUp() {
return g_meter2_info.getOilGaugeBackUp();
}
inline void dMeter2Info_setSaveStageName(const char* name) {
g_meter2_info.setSaveStageName(name);
}
#endif /* D_METER_D_METER2_INFO_H */