mirror of https://github.com/zeldaret/tp.git
805 lines
29 KiB
C++
805 lines
29 KiB
C++
#ifndef D_MSG_D_MSG_CLASS_H
|
|
#define D_MSG_D_MSG_CLASS_H
|
|
|
|
#include "JSystem/JMessage/control.h"
|
|
#include "JSystem/JMessage/JMessage.h"
|
|
#include "SSystem/SComponent/c_xyz.h"
|
|
|
|
#if REGION_JPN
|
|
#define D_MSG_CLASS_PAGE_CNT_MAX 30
|
|
#define D_MSG_CLASS_CHAR_CNT_MAX 0x210
|
|
#define D_MSG_CLASS_LINE_MAX 9
|
|
#else
|
|
#define D_MSG_CLASS_PAGE_CNT_MAX 40
|
|
#define D_MSG_CLASS_CHAR_CNT_MAX 0x200
|
|
#define D_MSG_CLASS_LINE_MAX 12
|
|
#endif
|
|
|
|
class JMSMesgEntry_c {
|
|
public:
|
|
/* 0x0 */ u32 string_offset;
|
|
|
|
// Attributes
|
|
/* 0x04 */ u16 message_id;
|
|
/* 0x06 */ u16 event_label_id;
|
|
/* 0x08 */ u8 se_speaker;
|
|
/* 0x09 */ u8 fuki_kind;
|
|
/* 0x0A */ u8 output_type;
|
|
/* 0x0B */ u8 fuki_pos_type;
|
|
/* 0x0C */ u8 unk_0xc;
|
|
/* 0x0D */ u8 unk_0xd;
|
|
/* 0x0E */ u8 se_mood;
|
|
/* 0x0F */ u8 camera_id;
|
|
/* 0x10 */ u8 base_anm_id;
|
|
/* 0x11 */ u8 face_anm_id;
|
|
/* 0x12 */ u16 unk_0x12;
|
|
};
|
|
|
|
class JMSMesgInfo_c {
|
|
public:
|
|
/* 0x00 */ bmg_section_t header; // section header
|
|
/* 0x08 */ u16 entry_num; // number of entries in this section
|
|
/* 0x0A */ u16 entry_size; // size of an entry
|
|
/* 0x0C */ u8 padding[4]; // padding
|
|
/* 0x10 */ JMSMesgEntry_c entries[0];
|
|
};
|
|
|
|
class COutFont_c;
|
|
class J2DTextBox;
|
|
class JUTFont;
|
|
|
|
class STControl;
|
|
class dMsgObject_c;
|
|
struct jmessage_tReference : public JMessage::TReference {
|
|
jmessage_tReference();
|
|
void calcDistance();
|
|
u8 getLineMax();
|
|
bool isKanban();
|
|
bool isPlaceName();
|
|
bool isBossName();
|
|
bool isSaveSeq();
|
|
bool isBook();
|
|
bool isStaffRoll();
|
|
bool isHowl();
|
|
bool isMidona();
|
|
void resetReference();
|
|
void pageSend();
|
|
void selectMessage();
|
|
void inputNumber();
|
|
char* getWord(int);
|
|
void resetWord();
|
|
void setCharactor(u16);
|
|
void addCharactor(u16);
|
|
void resetCharactor();
|
|
void shiftCharCountBuffer();
|
|
void resetCharCountBuffer();
|
|
void allsetCharCountBuffer();
|
|
bool isCharSend();
|
|
bool isLightSend();
|
|
bool isLightEnd();
|
|
void decideOutFontRupeeColor(int);
|
|
cXyz getActorPos() { return mActorPos; }
|
|
|
|
void setActorPos(cXyz pos) { mActorPos = pos; }
|
|
|
|
bool isSelectSetCancelFlag() {
|
|
return mSelectSetCancelFlag ? true : false;
|
|
}
|
|
|
|
BOOL isSelectRubyFlag(int i_flag) {
|
|
BOOL var_r31;
|
|
if (mSelectRubyFlag & (u8)(1 << i_flag)) {
|
|
var_r31 = true;
|
|
} else {
|
|
var_r31 = false;
|
|
}
|
|
return var_r31;
|
|
}
|
|
|
|
bool isBatchFlag() { return mBatchFlag ? true : false; }
|
|
bool isLightBatchFlag() { return mLightBatchFlag ? true : false; }
|
|
|
|
void setAddCharAllAlphaRate(f32 i_alphaRate) { mAddCharAllAlphaRate = i_alphaRate; }
|
|
void setCharAllAlphaRate(f32 i_alphaRate) { mCharAllAlphaRate = i_alphaRate; }
|
|
void resetNowLightCount() { mNowLightCount = 0; }
|
|
void resetDrawLightCount() { mDrawLightCount = 0; }
|
|
void setBatchColorFlag(u8 i_flag) { mBatchColorFlag = i_flag; }
|
|
void setSendTimer(s16 i_timer) { mSendTimer = i_timer; }
|
|
void setSendFlag(u8 i_flag) { mSendFlag = i_flag; }
|
|
void setSelectNum(u8 i_num) { mSelectNum = i_num; }
|
|
void setSelectType(u8 i_type) { mSelectType = i_type; }
|
|
void resetInputFigure() { mInputFigure = 0; }
|
|
void onButtonTagStopFlag() { mButtonTagStopFlag = 1; }
|
|
void setDemoFrame(u32 i_frame) { mDemoFrame = i_frame; }
|
|
void setTopColorType(u8 i_colorType) { mTopColorType = i_colorType; }
|
|
void setNowColorType(u8 i_colorType) { mNowColorType = i_colorType; }
|
|
void setTopTagScale(u16 i_tagScale) { mTopTagScale = i_tagScale; }
|
|
void setNowTagScale(u16 i_tagScale) { mNowTagScale = i_tagScale; }
|
|
void setRevoMessageID(u32 i_msgID) { mRevoMessageID = i_msgID; }
|
|
void setPageLine(int i_no, s8 i_pageLine) { mPageLine[i_no] = i_pageLine; }
|
|
void setPageLineMax(int i_no, s8 i_pageLineMax) { mPageLineMax[i_no] = i_pageLineMax; }
|
|
void setPageType(int i_no, u8 i_pageType) { mPageType[i_no] = i_pageType; }
|
|
void setLineArrange(int i_no, u8 i_arrange) { mLineArrange[i_no] = i_arrange; }
|
|
void setLineScale(int i_no, u16 i_lineScale) { mLineScale[i_no] = i_lineScale; }
|
|
void setSelLength(int i_no, f32 i_selLength) { mSelLength[i_no] = i_selLength; }
|
|
void setTopWordCount(s8 wordCount) { mTopWordCount = wordCount; }
|
|
void setNowWordCount(s8 wordCount) { mNowWordCount = wordCount; }
|
|
void offSelectRubyFlag(int i_flag) { mSelectRubyFlag &= ~(u8)(1 << i_flag); }
|
|
void setPageEndCount(s16 i_endCount) { mPageEndCount = i_endCount; }
|
|
void onBombNameUseFlag() { mBombNameUseFlag = 1; }
|
|
void onSelectRubyFlag(int i_flag) { mSelectRubyFlag |= (u8)(1 << i_flag); }
|
|
void setpStatus(u16* status) { mpStatus = status; }
|
|
void setObjectPtr(dMsgObject_c* ptr) { mpObjectPtr = ptr; }
|
|
void setCountBackUp() { mCharactor.mCountBackUp = mCharactor.field_0x40e; }
|
|
void setSelMsgPtr(char* ptr) { mpSelMsgPtr = ptr; }
|
|
void setPageNum(s16 pageNum) { mPageNum = pageNum; }
|
|
void setStopFlag(u8 flag) { mStopFlag = flag; }
|
|
void setStatus(u16 status) { *mpStatus = status; }
|
|
void setFont(JUTFont* font) { mpFont = font; }
|
|
void setFontSizeX(f32 x) { mFontSizeX = x; }
|
|
void setFontSizeY(f32 y) { mFontSizeY = y; }
|
|
void setRubySize(f32 size) { mRubySize = size; }
|
|
void setTBoxWidth(f32 width) { mTBoxWidth = width; }
|
|
void setTBoxHeight(f32 height) { mTBoxHeight = height; }
|
|
void setLineSpace(f32 space) { mLineSpace = space; }
|
|
void setCharSpace(f32 space) { mCharSpace = space; }
|
|
void setRubyCharSpace(f32 space) { mRubyCharSpace = space; }
|
|
void setSelFontSize(f32 size) { mSelFontSize = size; }
|
|
void setSelRubySize(f32 size) { mSelRubySize = size; }
|
|
void setSelTBoxWidth(f32 width) { mSelTBoxWidth = width; }
|
|
void setSelCharSpace(f32 space) { mSelCharSpace = space; }
|
|
void setSelRubyCharSpace(f32 space) { mSelRubyCharSpace = space; }
|
|
void decSendTimer() { mSendTimer--; }
|
|
void resetCharCnt() { mCharCnt = 0; }
|
|
void setFukiPosType(u8 type) { mFukiPosType = type; }
|
|
void setFukiKind(u8 kind) { mFukiKind = kind; }
|
|
void setForm(u8 form) { mForm = form; }
|
|
void setArrange(u8 arrange) { mArrange = arrange; }
|
|
void setMsgID(u16 id) { mMsgID = id; }
|
|
void offBombNameUseFlag() { mBombNameUseFlag = false; }
|
|
void setNowLightCount(u8 count) { mNowLightCount = count; }
|
|
void setCharCnt(s16 cnt) { mCharCnt = cnt; }
|
|
void offButtonTagStopFlag() { mButtonTagStopFlag = false; }
|
|
void onLightBatchFlag() { mLightBatchFlag = true; }
|
|
void addNowLightCount() { mNowLightCount++; }
|
|
void addLineCount() { mLineCount++; }
|
|
void addEndLineCount() { mEndLineCount++; }
|
|
void onSelectSetCancelFlag() { mSelectSetCancelFlag = true; }
|
|
void offSelectSetCancelFlag() { mSelectSetCancelFlag = false; }
|
|
void addDrawLightCount() { mDrawLightCount++; }
|
|
void setCharAlpha(f32 alpha) { mCharAlpha = alpha; }
|
|
|
|
void addCharAlpha() {
|
|
mCharAlpha += mAddCharAlpha;
|
|
if (mCharAlpha > 255.0f) {
|
|
mCharAlpha = 255.0f;
|
|
}
|
|
}
|
|
|
|
void setLineLength(int i_no, f32 i_strLen, f32 i_spaceLen) {
|
|
mStrLength[i_no] = i_strLen;
|
|
mSpaceLength[i_no] = i_spaceLen;
|
|
}
|
|
|
|
void setSelectPos(u8 i_pos) {
|
|
if (!isSelectSetCancelFlag()) {
|
|
mSelectPos = i_pos;
|
|
}
|
|
}
|
|
|
|
void addCharAllAlphaRate() {
|
|
mCharAllAlphaRate += mAddCharAllAlphaRate;
|
|
if (mCharAllAlphaRate > 1.0f) {
|
|
mCharAllAlphaRate = 1.0f;
|
|
}
|
|
}
|
|
|
|
void addLineLength(int param_0, f32 param_1, f32 param_2) {
|
|
mStrLength[param_0] += param_1;
|
|
mSpaceLength[param_0] += param_2;
|
|
}
|
|
|
|
void addSelLength(int param_0, f32 param_1) {
|
|
mSelLength[param_0] += param_1;
|
|
}
|
|
|
|
dMsgObject_c* getObjectPtr() { return mpObjectPtr; }
|
|
u8 getForm() { return mForm; }
|
|
u8 getNowLightCount() { return mNowLightCount; }
|
|
u8 getCharCountBuffer(int i_no) { return mCharCountBuffer[i_no]; }
|
|
u8 getDrawLightCount() { return mDrawLightCount; }
|
|
u8 getFukiKind() { return mFukiKind; }
|
|
s16 getSendTimer() { return mSendTimer; }
|
|
u8 getSelectNum() { return mSelectNum; }
|
|
u8 getSelectType() { return mSelectType; }
|
|
const char* getSelMsgPtr() { return mpSelMsgPtr; }
|
|
f32 getDistanceScale() { return mDistanceScale; }
|
|
f32 getFontSizeX() { return mFontSizeX; }
|
|
f32 getFontSizeY() { return mFontSizeY; }
|
|
s16 getStartLineCount() { return mStartLineCount; }
|
|
f32 getStrLength(int param_0) { return mStrLength[param_0]; }
|
|
f32 getSpaceLength(int param_0) { return mSpaceLength[param_0]; }
|
|
f32 getCharSpace() { return mCharSpace; }
|
|
u8 getPageType(int i_no) { return mPageType[i_no]; }
|
|
u8 getInputFigure() { return mInputFigure; }
|
|
JUTFont* getFont() { return mpFont; }
|
|
f32 getSelRubySize() { return mSelRubySize; }
|
|
f32 getSelRubyCharSpace() { return mSelRubyCharSpace; }
|
|
f32 getRubySize() { return mRubySize; }
|
|
f32 getRubyCharSpace() { return mRubyCharSpace; }
|
|
char* getSelTextPtr(int idx) { return mSelText[idx]; }
|
|
char* getSelRubyPtr(int idx) { return mSelRuby[idx]; }
|
|
char* getTextPtr() { return mText; }
|
|
char* getTextSPtr() { return mTextS; }
|
|
char* getRubyPtr() { return mRuby; }
|
|
u8 getSelectRubyFlag() { return mSelectRubyFlag; }
|
|
f32 getSelTBoxWidth() { return mSelTBoxWidth; }
|
|
u8 getSelectPos() { return mSelectPos; }
|
|
u16 getMsgID() { return mMsgID; }
|
|
bool isButtonTagStopFlag() { return mButtonTagStopFlag ? true : false; }
|
|
u8 getStopFlag() { return mStopFlag; }
|
|
u8 getSendFlag() { return mSendFlag; }
|
|
u8 getFukiPosType() { return mFukiPosType; }
|
|
u16 getStatus() { return *mpStatus; }
|
|
u8 getArrange() { return mArrange; }
|
|
u8 getLineArrange(int idx) { return mLineArrange[idx]; }
|
|
f32 getSelFontSize() { return mSelFontSize; }
|
|
f32 getSelCharSpace() { return mSelCharSpace; }
|
|
u16 getLineScale(int i_no) { return mLineScale[i_no]; }
|
|
bool isBombNameUseFlag() { return mBombNameUseFlag ? true : false; }
|
|
f32 getSelLength(int idx) { return mSelLength[idx]; }
|
|
void setAddCharAlpha(f32 alpha) { mAddCharAlpha = alpha; }
|
|
s8 getNowPageLineMax() { return mPageLineMax[field_0x5d2]; }
|
|
s16 getLineCount() { return mLineCount; }
|
|
void onBatchFlag() { mBatchFlag = true; }
|
|
s16 getPageNum() { return mPageNum; }
|
|
s16 getPageEndCount() { return mPageEndCount; }
|
|
s8 getTopWordCount() { return mTopWordCount; }
|
|
u8 getTopColorType() { return mTopColorType; }
|
|
u16 getTopTagScale() { return mTopTagScale; }
|
|
u8 getBatchColorFlag() { return mBatchColorFlag; }
|
|
f32 getLineSpace() { return mLineSpace; }
|
|
u8 getNowPageType() { return mPageType[field_0x5d2]; }
|
|
f32 getTBoxWidth() { return mTBoxWidth;}
|
|
f32 getTBoxHeight() { return mTBoxHeight;}
|
|
s8 getNowPageLine() { return mPageLine[field_0x5d2]; }
|
|
u8 getOutFontRupeeColor() { return mOutFontRupeeColor; }
|
|
f32 getCharAlpha() { return mCharAlpha; }
|
|
s16 getCharCnt() { return mCharCnt; }
|
|
|
|
struct CharSoundInfo {
|
|
u16 data[D_MSG_CLASS_CHAR_CNT_MAX];
|
|
s16 field_0x40c;
|
|
s16 field_0x40e;
|
|
s16 mCountBackUp;
|
|
};
|
|
CharSoundInfo getCharSoundInfo() { return mCharactor; }
|
|
u32 getDemoFrame() { return mDemoFrame; }
|
|
u32 getRevoMessageID() { return mRevoMessageID; }
|
|
f32 getCharAllAlphaRate() { return mCharAllAlphaRate; }
|
|
|
|
virtual ~jmessage_tReference();
|
|
|
|
/* 0x0008 */ STControl* mpStick;
|
|
/* 0x000C */ CharSoundInfo mCharactor;
|
|
/* 0x0414 */ cXyz mActorPos;
|
|
/* 0x0420 */ f32 mFontSizeX;
|
|
/* 0x0424 */ f32 mFontSizeY;
|
|
/* 0x0428 */ f32 mRubySize;
|
|
/* 0x042C */ f32 mTBoxWidth;
|
|
/* 0x0430 */ f32 mTBoxHeight;
|
|
/* 0x0434 */ f32 mLineSpace;
|
|
/* 0x0438 */ f32 mCharSpace;
|
|
/* 0x043C */ f32 mRubyCharSpace;
|
|
/* 0x0440 */ f32 mSelFontSize;
|
|
/* 0x0444 */ f32 mSelRubySize;
|
|
/* 0x0448 */ f32 mSelTBoxWidth;
|
|
/* 0x044C */ f32 mSelCharSpace;
|
|
/* 0x0450 */ f32 mSelRubyCharSpace;
|
|
/* 0x0454 */ f32 mDistanceScale;
|
|
/* 0x0458 */ f32 mAddCharAllAlphaRate;
|
|
/* 0x045C */ f32 mCharAllAlphaRate;
|
|
/* 0x0460 */ f32 mAddCharAlpha;
|
|
/* 0x0464 */ f32 mCharAlpha;
|
|
/* 0x0468 */ f32 mStrLength[D_MSG_CLASS_PAGE_CNT_MAX];
|
|
/* 0x0508 */ f32 mSpaceLength[D_MSG_CLASS_PAGE_CNT_MAX];
|
|
/* 0x05A8 */ f32 mSelLength[3];
|
|
/* 0x05B4 */ u32 mDemoFrame;
|
|
/* 0x05B8 */ u32 mRevoMessageID;
|
|
/* 0x05BC */ u16* mpStatus;
|
|
/* 0x05C0 */ dMsgObject_c* mpObjectPtr;
|
|
/* 0x05C4 */ char* mpSelMsgPtr;
|
|
/* 0x05C8 */ JUTFont* mpFont;
|
|
/* 0x05CC */ s16 mStartLineCount;
|
|
/* 0x05CE */ s16 mEndLineCount;
|
|
/* 0x05D0 */ s16 mLineCount;
|
|
/* 0x05D2 */ s16 field_0x5d2;
|
|
/* 0x05D4 */ s16 mPageEndCount;
|
|
/* 0x05D6 */ s16 mSendTimer;
|
|
/* 0x05D8 */ s16 mCharCnt;
|
|
/* 0x05DA */ s16 mPageNum;
|
|
/* 0x05DC */ u8 mNowLightCount;
|
|
/* 0x05DD */ u8 mDrawLightCount;
|
|
/* 0x05DE */ u16 mMsgID;
|
|
/* 0x05E0 */ u16 mLineScale[D_MSG_CLASS_PAGE_CNT_MAX];
|
|
/* 0x0630 */ u16 mTopTagScale;
|
|
/* 0x0632 */ u16 mNowTagScale;
|
|
/* 0x0634 */ char mWord[10][100];
|
|
/* 0x0A1C */ char mText[D_MSG_CLASS_CHAR_CNT_MAX];
|
|
/* 0x0C1C */ char mTextS[D_MSG_CLASS_CHAR_CNT_MAX];
|
|
/* 0x0E1C */ char mRuby[D_MSG_CLASS_CHAR_CNT_MAX];
|
|
/* 0x101C */ char mSelText[3][50];
|
|
/* 0x10B2 */ char mSelRuby[3][80];
|
|
/* 0x11A2 */ s8 mPageLine[D_MSG_CLASS_PAGE_CNT_MAX];
|
|
/* 0x11CA */ s8 mPageLineMax[D_MSG_CLASS_PAGE_CNT_MAX];
|
|
/* 0x11F2 */ u8 mPageType[D_MSG_CLASS_PAGE_CNT_MAX];
|
|
/* 0x121A */ u8 mLineArrange[D_MSG_CLASS_PAGE_CNT_MAX];
|
|
/* 0x1242 */ u8 mSelectNum;
|
|
/* 0x1243 */ u8 mSelectType;
|
|
/* 0x1244 */ u8 mSelectPos;
|
|
/* 0x1245 */ u8 mFukiPosType;
|
|
/* 0x1246 */ u8 mFukiKind;
|
|
/* 0x1247 */ u8 mForm;
|
|
/* 0x1248 */ u8 mArrange;
|
|
/* 0x1249 */ u8 mNowColorType;
|
|
/* 0x124A */ u8 mTopColorType;
|
|
/* 0x124B */ bool mButtonTagStopFlag;
|
|
/* 0x124C */ u8 mSendFlag;
|
|
/* 0x124D */ u8 mStopFlag;
|
|
/* 0x124E */ u8 mSelectRubyFlag;
|
|
/* 0x124F */ u8 mInputFigure;
|
|
/* 0x1250 */ u8 mOutFontRupeeColor;
|
|
/* 0x1251 */ s8 mNowWordCount;
|
|
/* 0x1252 */ s8 mTopWordCount;
|
|
/* 0x1253 */ u8 mCharCountBuffer[31];
|
|
/* 0x1272 */ bool mLightBatchFlag;
|
|
/* 0x1273 */ bool mBatchFlag;
|
|
/* 0x1274 */ bool mSelectSetCancelFlag;
|
|
/* 0x1275 */ bool mBombNameUseFlag;
|
|
/* 0x1276 */ u8 mBatchColorFlag;
|
|
}; // Size: 0x1278
|
|
|
|
struct jmessage_tMeasureProcessor : public JMessage::TRenderingProcessor {
|
|
jmessage_tMeasureProcessor(jmessage_tReference const* pReference);
|
|
void do_scale(f32);
|
|
void do_space(u32);
|
|
void do_pageType(int);
|
|
void do_name1();
|
|
void do_rubyset(void const*, u32);
|
|
void push_word(char*);
|
|
|
|
virtual void do_begin(void const* pEntry, char const* pszText);
|
|
virtual void do_end();
|
|
virtual void do_character(int iCharacter);
|
|
virtual bool do_tag(u32 uTag, void const* pData, u32 uSize);
|
|
|
|
/* 0x38 */ f32 field_0x38;
|
|
/* 0x3C */ s16 mTotalLineCnt;
|
|
/* 0x3E */ s16 field_0x3e;
|
|
/* 0x40 */ s16 field_0x40;
|
|
/* 0x42 */ u16 mSeMood;
|
|
/* 0x44 */ u8 field_0x44;
|
|
/* 0x45 */ u8 mSelectType;
|
|
/* 0x46 */ u8 field_0x46;
|
|
/* 0x47 */ u8 field_0x47;
|
|
/* 0x48 */ u8 field_0x48;
|
|
/* 0x49 */ s8 field_0x49;
|
|
/* 0x4A */ s8 mPageLineMax;
|
|
/* 0x4B */ s8 field_0x4b;
|
|
/* 0x4C */ u8 mSeSpeaker;
|
|
/* 0x4D */ u8 field_0x4d;
|
|
}; // Size: 0x50
|
|
|
|
struct jmessage_tControl : public JMessage::TControl {
|
|
jmessage_tControl();
|
|
|
|
virtual ~jmessage_tControl();
|
|
};
|
|
|
|
struct jmessage_tSequenceProcessor : public JMessage::TSequenceProcessor {
|
|
jmessage_tSequenceProcessor(jmessage_tReference const* pReference, jmessage_tControl* pControl);
|
|
void do_name1();
|
|
void do_space(u32);
|
|
void do_rubyset(void const*, u32);
|
|
void push_word();
|
|
void messageSePlay(u8, u8, cXyz*);
|
|
void calcStringLength();
|
|
|
|
virtual void do_reset();
|
|
virtual void do_begin(void const* pEntry, char const* pszText);
|
|
virtual void do_end();
|
|
virtual void do_character(int iCharacter);
|
|
virtual bool do_tag(u32 uTag, void const* pData, u32 uSize);
|
|
virtual bool do_isReady();
|
|
virtual bool do_jump_isReady();
|
|
virtual void do_jump(void const* pEntry, char const* pszText);
|
|
|
|
u8 getMouthCheck() { return mMouthCheck; }
|
|
void setForceForm(u8 forceForm) { mForceForm = forceForm; }
|
|
|
|
/* 0x4C */ jmessage_tMeasureProcessor mMeasureProcessor;
|
|
/* 0x9C */ const void* mpEntry;
|
|
/* 0xA0 */ const char* mpText;
|
|
/* 0xA4 */ s16 field_0xa4;
|
|
/* 0xA6 */ s16 field_0xa6;
|
|
/* 0xA8 */ s16 field_0xa8;
|
|
/* 0xAA */ s16 field_0xaa;
|
|
/* 0xAC */ u8 field_0xac;
|
|
/* 0xAD */ u8 field_0xad;
|
|
/* 0xAE */ u8 field_0xae;
|
|
/* 0xAF */ u8 mForceForm;
|
|
/* 0xB0 */ u8 mMouthCheck;
|
|
/* 0xB1 */ u8 field_0xb1;
|
|
/* 0xB2 */ u8 field_0xb2;
|
|
/* 0xB3 */ u8 field_0xb3;
|
|
/* 0xB4 */ u8 field_0xb4;
|
|
/* 0xB5 */ s8 field_0xb5;
|
|
};
|
|
|
|
struct CharInfo_c {
|
|
/* 0x00 */ f32 field_0x00;
|
|
/* 0x04 */ f32 field_0x04;
|
|
/* 0x08 */ f32 field_0x08;
|
|
/* 0x0C */ f32 field_0x0c;
|
|
/* 0x10 */ f32 field_0x10;
|
|
/* 0x14 */ f32 field_0x14;
|
|
/* 0x18 */ u8 mColorNo;
|
|
/* 0x19 */ u8 field_0x19;
|
|
};
|
|
|
|
struct jmessage_tRenderingProcessor : public JMessage::TRenderingProcessor {
|
|
jmessage_tRenderingProcessor(jmessage_tReference const* pReference);
|
|
void resetRendering();
|
|
void do_widthcenter();
|
|
void do_selwidthcenter(int);
|
|
void do_heightcenter();
|
|
void do_color(u8);
|
|
void do_scale(f32);
|
|
void do_linedown(s16);
|
|
void do_transY(s16, bool);
|
|
void do_outfont(u8, u32);
|
|
void do_arrow2();
|
|
f32 getLineLength(int);
|
|
void do_strcat(char*, bool, bool, bool);
|
|
void do_rubyset(void const*, u32);
|
|
void do_rubystrcat(char*, char*, f32, f32);
|
|
void do_name1();
|
|
void do_numset(s16);
|
|
void push_word();
|
|
void getCharInfo(f32, f32, f32, f32, f32);
|
|
|
|
virtual void do_reset();
|
|
virtual void do_begin(void const* pEntry, char const* pszText);
|
|
virtual void do_end();
|
|
virtual void do_character(int iCharacter);
|
|
virtual bool do_tag(u32 uTag, void const* pData, u32 uSize);
|
|
|
|
void setTextInitPos(float x, float y) {
|
|
mTextInitPosX = x;
|
|
mTextInitPosY = y;
|
|
}
|
|
|
|
void setTextScale(float x, float y) {
|
|
mTextInitScaleX = x;
|
|
mTextInitScaleY = y;
|
|
}
|
|
|
|
void setSelTextInitPos(int idx, float x, float y) {
|
|
mSelTextInitPosX[idx] = x;
|
|
mSelTextInitPosY[idx] = y;
|
|
}
|
|
|
|
void setTextInitOffsetPos(f32 offset) { mTextInitOffsetPos = offset; }
|
|
void setOutFont(COutFont_c* font) { mpOutFont = font; }
|
|
void setCharInfoPtr(CharInfo_c* info) { mCharInfoPtr = info; }
|
|
|
|
/* 0x038 */ COutFont_c* mpOutFont;
|
|
/* 0x03C */ CharInfo_c* mCharInfoPtr;
|
|
/* 0x040 */ s16* mpCharInfoCnt;
|
|
/* 0x044 */ f32 field_0x44;
|
|
/* 0x048 */ f32 field_0x48;
|
|
/* 0x04C */ f32 field_0x4c;
|
|
/* 0x050 */ f32 mTextInitPosX;
|
|
/* 0x054 */ f32 mTextInitPosY;
|
|
/* 0x058 */ f32 mTextInitScaleX;
|
|
/* 0x05C */ f32 mTextInitScaleY;
|
|
/* 0x060 */ f32 mSelTextInitPosX[3];
|
|
/* 0x06C */ f32 mSelTextInitPosY[3];
|
|
/* 0x078 */ f32 mTextInitOffsetPos;
|
|
/* 0x07C */ f32 field_0x7c[D_MSG_CLASS_PAGE_CNT_MAX];
|
|
/* 0x11C */ int field_0x11c;
|
|
/* 0x120 */ u32 mCCColor;
|
|
/* 0x124 */ u32 mGCColor;
|
|
/* 0x128 */ f32 field_0x128;
|
|
/* 0x12C */ f32 field_0x12c;
|
|
/* 0x130 */ f32 field_0x130;
|
|
/* 0x134 */ f32 field_0x134;
|
|
/* 0x138 */ f32 field_0x138;
|
|
/* 0x13C */ u16 field_0x13c;
|
|
/* 0x13E */ s16 field_0x13e;
|
|
/* 0x140 */ s16 field_0x140;
|
|
/* 0x142 */ s16 field_0x142;
|
|
/* 0x144 */ u16 field_0x144;
|
|
/* 0x146 */ s16 field_0x146;
|
|
/* 0x148 */ u16 field_0x148;
|
|
/* 0x14A */ u16 field_0x14a;
|
|
/* 0x14C */ u8 field_0x14c;
|
|
/* 0x14D */ u8 field_0x14d;
|
|
/* 0x14E */ u8 field_0x14e;
|
|
/* 0x14F */ s8 field_0x14f;
|
|
/* 0x150 */ u8 mColorNo;
|
|
/* 0x151 */ u8 field_0x151;
|
|
/* 0x152 */ char field_0x152[0x184 - 0x152];
|
|
/* 0x184 */ char field_0x184[3];
|
|
/* 0x187 */ u8 field_0x187;
|
|
};
|
|
|
|
struct jmessage_string_tControl : public JMessage::TControl {
|
|
jmessage_string_tControl();
|
|
};
|
|
|
|
struct jmessage_string_tReference : public JMessage::TReference {
|
|
jmessage_string_tReference();
|
|
void init(J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*, u8);
|
|
void setCharactor(u16);
|
|
void addCharactor(u16);
|
|
void resetCharactor();
|
|
f32 getLineLength(int);
|
|
void addLineLength(int, f32);
|
|
f32 getOutfontLength(int);
|
|
void setOutfontLength(int, f32);
|
|
void clearOutfontLength(int);
|
|
s16 getLineCountNowPage();
|
|
J2DTextBox* getPanePtr() { return mPanePtr; }
|
|
J2DTextBox* getRubyPanePtr() { return mRubyPanePtr; }
|
|
u32 getCCColor() { return mCCColor; }
|
|
u32 getGCColor() { return mGCColor; }
|
|
u8 getLineMax() { return mLineMax; }
|
|
u8 getNowPage() { return mNowPage; }
|
|
JUTFont* getFont() { return mpFont; }
|
|
s16 getLineCount() { return mLineCount; }
|
|
void setLineCount(s16 lineCount) { mLineCount = lineCount; }
|
|
void addLineCount() { mLineCount++; }
|
|
BOOL isFlag(u8 flag) {
|
|
BOOL rv;
|
|
if (mFlags & flag) {
|
|
rv = 1;
|
|
} else {
|
|
rv = 0;
|
|
}
|
|
return rv;
|
|
}
|
|
void setColor(u32 ccColor, u32 gcColor) {
|
|
mCCColor = ccColor;
|
|
mGCColor = gcColor;
|
|
}
|
|
void setNowPage(u8 nowPage) { mNowPage = nowPage; }
|
|
void setLineMax(u8 lineMax) { mLineMax = lineMax; }
|
|
COutFont_c* getOutFontPtr() { return mOutFontPtr; }
|
|
|
|
virtual ~jmessage_string_tReference();
|
|
|
|
/* 0x08 */ J2DTextBox* mPanePtr;
|
|
/* 0x0C */ J2DTextBox* mRubyPanePtr;
|
|
/* 0x10 */ COutFont_c* mOutFontPtr;
|
|
/* 0x14 */ JUTFont* mpFont;
|
|
/* 0x18 */ f32 mLineLength[D_MSG_CLASS_LINE_MAX];
|
|
/* 0x3C */ f32 mOutfontLength[D_MSG_CLASS_LINE_MAX];
|
|
/* 0x78 */ u32 mCCColor;
|
|
/* 0x7C */ u32 mGCColor;
|
|
/* 0x80 */ s16 mLineCount;
|
|
/* 0x82 */ u8 mLineMax;
|
|
/* 0x83 */ u8 mNowPage;
|
|
/* 0x84 */ u8 mFlags;
|
|
};
|
|
|
|
struct jmessage_string_tMeasureProcessor : public JMessage::TRenderingProcessor {
|
|
jmessage_string_tMeasureProcessor(jmessage_string_tReference const* pReference);
|
|
void do_rubyset(void const*, u32);
|
|
|
|
virtual void do_begin(void const* pEntry, char const* pszText);
|
|
virtual void do_end();
|
|
virtual void do_character(int iCharacter);
|
|
virtual bool do_tag(u32 uTag, void const* pData, u32 uSize);
|
|
|
|
/* 0x38 */ jmessage_string_tReference* mpReference;
|
|
};
|
|
|
|
struct jmessage_string_tSequenceProcessor : public JMessage::TSequenceProcessor {
|
|
jmessage_string_tSequenceProcessor(jmessage_string_tReference const* pReference,
|
|
jmessage_string_tControl* pControl);
|
|
|
|
virtual void do_reset();
|
|
virtual void do_begin(void const* pEntry, char const* pszText);
|
|
virtual void do_end();
|
|
virtual void do_character(int iCharacter);
|
|
virtual bool do_tag(u32 uTag, void const* pData, u32 uSize);
|
|
virtual bool do_isReady();
|
|
virtual bool do_jump_isReady();
|
|
virtual void do_jump(void const* pEntry, char const* pszText);
|
|
|
|
/* 0x4C */ jmessage_string_tMeasureProcessor mMeasureProcessor;
|
|
/* 0x88 */ jmessage_string_tReference* mpSeqReference;
|
|
};
|
|
|
|
struct jmessage_string_tRenderingProcessor : public JMessage::TRenderingProcessor {
|
|
jmessage_string_tRenderingProcessor(jmessage_string_tReference const* pReference);
|
|
s16 getLineCountNowPage();
|
|
void do_widthcenter();
|
|
void do_heightcenter();
|
|
void do_strcat(char*);
|
|
void do_rubyset(void const*, u32);
|
|
void do_rubystrcat(char*);
|
|
void do_outfont(u8);
|
|
void do_color(u8);
|
|
void do_scale(f32);
|
|
void do_linedown(s16);
|
|
void do_numset(s16);
|
|
void push_word(char const*);
|
|
|
|
virtual void do_reset();
|
|
virtual void do_begin(void const* pEntry, char const* pszText);
|
|
virtual void do_end();
|
|
virtual void do_character(int iCharacter);
|
|
virtual bool do_tag(u32 uTag, void const* pData, u32 uSize);
|
|
|
|
char* getString() { return field_0x54; }
|
|
|
|
/* 0x038 */ jmessage_string_tReference* mpReference;
|
|
/* 0x03C */ f32 field_0x3c;
|
|
/* 0x040 */ f32 field_0x40;
|
|
/* 0x044 */ f32 field_0x44;
|
|
/* 0x048 */ f32 field_0x48;
|
|
/* 0x04C */ f32 field_0x4c;
|
|
/* 0x050 */ f32 field_0x50;
|
|
/* 0x054 */ char field_0x54[D_MSG_CLASS_CHAR_CNT_MAX];
|
|
/* 0x254 */ char field_0x254[D_MSG_CLASS_CHAR_CNT_MAX];
|
|
/* 0x454 */ char field_0x454[0x486 - 0x454];
|
|
/* 0x486 */ char field_0x486[0x20]; // Unknown length
|
|
/* 0x4A6 */ u8 field_0x4a6[0x54e - 0x4a6];
|
|
/* 0x54E */ s16 field_0x54e;
|
|
/* 0x550 */ s16 field_0x550;
|
|
/* 0x552 */ s16 field_0x552;
|
|
/* 0x554 */ u8 field_0x554;
|
|
};
|
|
|
|
#define MSGTAG_GROUP(g) (g << 16)
|
|
|
|
// Group 0
|
|
#define MSGTAG_PLAYER_NAME 0
|
|
#define MSGTAG_INSTANT 1
|
|
#define MSGTAG_TYPE 2
|
|
#define MSGTAG_UNK_3 3 // appears the same as autobox
|
|
#define MSGTAG_AUTOBOX 4
|
|
#define MSGTAG_BOXATMOST 5
|
|
#define MSGTAG_UNK_6 6
|
|
#define MSGTAG_PAUSE 7
|
|
#define MSGTAG_SELECT_2WAY 8
|
|
#define MSGTAG_SELECT_3WAY 9
|
|
#define MSGTAG_ABTN 10
|
|
#define MSGTAG_BBTN 11
|
|
#define MSGTAG_CSTICK 12
|
|
#define MSGTAG_LBTN 13
|
|
#define MSGTAG_RBTN 14
|
|
#define MSGTAG_XBTN 15
|
|
#define MSGTAG_YBTN 16
|
|
#define MSGTAG_ZBTN 17
|
|
#define MSGTAG_DPAD 18
|
|
#define MSGTAG_STICK_CROSS 19
|
|
#define MSGTAG_LEFT_ARROW 20
|
|
#define MSGTAG_RIGHT_ARROW 21
|
|
#define MSGTAG_UP_ARROW 22
|
|
#define MSGTAG_DOWN_ARROW 23
|
|
#define MSGTAG_STICK_UP 24
|
|
#define MSGTAG_STICK_DOWN 25
|
|
#define MSGTAG_STICK_LEFT 26
|
|
#define MSGTAG_STICK_RIGHT 27
|
|
#define MSGTAG_STICK_VERTICAL 28
|
|
#define MSGTAG_STICK_HORIZONTAL 29
|
|
#define MSGTAG_INLINE_2_NEXT 30
|
|
#define MSGTAG_INLINE_2_FIRST 31
|
|
#define MSGTAG_AWAIT_CHOICE 32
|
|
#define MSGTAG_UNK_33 33 // calls "do_name1" but the function does nothing
|
|
#define MSGTAG_HORSE_NAME 34
|
|
#define MSGTAG_RED_TARGET 35
|
|
#define MSGTAG_YELLOW_TARGET 36
|
|
#define MSGTAG_INPUT_VALUE 37
|
|
#define MSGTAG_ACKNOWLEDGE 38
|
|
#define MSGTAG_ABTN_STAR 39
|
|
#define MSGTAG_DEMOBOX 40
|
|
#define MSGTAG_SCENT_NAME 41
|
|
#define MSGTAG_WHITE_TARGET 42
|
|
#define MSGTAG_PORTAL_NAME 43
|
|
#define MSGTAG_WARP_ICON 44
|
|
#define MSGTAG_BOMB_NAME 45
|
|
#define MSGTAG_XYBTN 46
|
|
#define MSGTAG_YXBTN 47
|
|
#define MSGTAG_BOMB_BAG_ICON 48
|
|
#define MSGTAG_BOMB_NUM 49
|
|
#define MSGTAG_BOMB_PRICE 50
|
|
#define MSGTAG_INLINE_3_NEXT 51
|
|
#define MSGTAG_INLINE_3_FIRST 52
|
|
#define MSGTAG_UNK_53 53
|
|
#define MSGTAG_BOXATLEAST 54
|
|
#define MSGTAG_BOMB_MAX 55
|
|
#define MSGTAG_ARROW_MAX 56
|
|
#define MSGTAG_HEART 57
|
|
#define MSGTAG_QUAVER 58
|
|
#define MSGTAG_INSECT_NAME 59
|
|
#define MSGTAG_LETTER_NAME 60
|
|
#define MSGTAG_LINE_DOWN 61
|
|
#define MSGTAG_CURRENT_LETTER_PAGE 62
|
|
#define MSGTAG_MAX_LETTER_PAGE 63
|
|
|
|
// Group 3
|
|
#define MSGTAG_WII_MSGID_OVERRIDE 0
|
|
#define MSGTAG_WII_ABTN 1
|
|
#define MSGTAG_WII_BBTN 2
|
|
#define MSGTAG_WII_HOMEBTN 3
|
|
#define MSGTAG_WII_MINUSBTN 4
|
|
#define MSGTAG_WII_PLUSBTN 5
|
|
#define MSGTAG_WII_1BTN 6
|
|
#define MSGTAG_WII_2BTN 7
|
|
#define MSGTAG_WII_DPAD_ITEM 8
|
|
#define MSGTAG_WII_DPAD_UP 9
|
|
#define MSGTAG_WII_DPAD_DOWN 10
|
|
#define MSGTAG_WII_DPAD_HORIZONTAL 11
|
|
#define MSGTAG_WII_DPAD_RIGHT 12
|
|
#define MSGTAG_WII_DPAD_LEFT 13
|
|
#define MSGTAG_WII_WIIMOTE 14
|
|
#define MSGTAG_WII_RETICULE 15
|
|
#define MSGTAG_WII_NUNCHUK 16
|
|
#define MSGTAG_WII_WIIMOTE2 17
|
|
#define MSGTAG_WII_FAIRY 18
|
|
#define MSGTAG_WII_CBTN 19
|
|
#define MSGTAG_WII_ZBTN 20
|
|
|
|
// Group 4
|
|
#define MSGTAG_GLYPH_DOLLARSIGN 0
|
|
#define MSGTAG_GLYPH_BACKSLASH 1
|
|
#define MSGTAG_GLYPH_ATMARK 2
|
|
#define MSGTAG_GLYPH_SHARP 3
|
|
#define MSGTAG_GLYPH_FLAT 4
|
|
#define MSGTAG_GLYPH_SQRT 5
|
|
#define MSGTAG_GLYPH_PERCENT 6
|
|
#define MSGTAG_GLYPH_HECTARE 7
|
|
#define MSGTAG_GLYPH_ARE 8
|
|
#define MSGTAG_GLYPH_LITRE 9
|
|
#define MSGTAG_GLYPH_WATT 10
|
|
#define MSGTAG_GLYPH_CALORIE 11
|
|
#define MSGTAG_GLYPH_DOLLAR 12
|
|
#define MSGTAG_GLYPH_CENT 13
|
|
|
|
// Group 5
|
|
#define MSGTAG_TIME_INFO 0
|
|
#define MSGTAG_INSECT_INFO 3
|
|
#define MSGTAG_RIVER_POINTS 7
|
|
#define MSGTAG_FISH_LENGTH 8
|
|
#define MSGTAG_FUNDRAISE_REMAIN 9
|
|
#define MSGTAG_NEW_LETTER_NUM 10
|
|
#define MSGTAG_POE_NUM 11
|
|
#define MSGTAG_BALLOON_SCORE 12
|
|
#define MSGTAG_FISH_COUNT 13
|
|
#define MSGTAG_ROLLGOAL_LV 14
|
|
|
|
// Group 6
|
|
#define MSGTAG_PLAYER_GENITIV 0
|
|
#define MSGTAG_HORSE_GENITIV 1
|
|
#define MSGTAG_MALE_ICON 2
|
|
#define MSGTAG_FEMALE_ICON 3
|
|
#define MSGTAG_STAR_ICON 4
|
|
#define MSGTAG_REFMARK 5
|
|
#define MSGTAG_THIN_LEFT_ARROW 6
|
|
#define MSGTAG_THIN_RIGHT_ARROW 7
|
|
#define MSGTAG_THIN_UP_ARROW 8
|
|
#define MSGTAG_THIN_DOWN_ARROW 9
|
|
#define MSGTAG_BULLET 10
|
|
#define MSGTAG_BULLET_SPACE 11
|
|
|
|
// Group 255
|
|
#define MSGTAG_COLOR (MSGTAG_GROUP(255) | 0)
|
|
#define MSGTAG_SCALE (MSGTAG_GROUP(255) | 1)
|
|
#define MSGTAG_RUBY (MSGTAG_GROUP(255) | 2)
|
|
|
|
#endif /* D_MSG_D_MSG_CLASS_H */
|