tp/include/JSystem/JMessage/processor.h

302 lines
12 KiB
C++

#ifndef JMESSAGE_PROCESSOR_H
#define JMESSAGE_PROCESSOR_H
#include "SSystem/SComponent/c_xyz.h"
#include "dolphin/types.h"
#include "JSystem/JUtility/JUTFont.h"
namespace JMessage {
struct TResource;
struct TResourceContainer;
struct TReference {
/* 802A7AF8 */ virtual ~TReference();
/* 802A7B40 */ virtual bool do_word(u32) const;
TResourceContainer* pcResource_;
};
struct TProcessor {
struct TStack_ {
/* 0x0 */ int upsz_; // size
/* 0x4 */ const char* stack[4];
}; // Size: 0x14
struct TProcess_ {
/* 0x0 */ void* pfnProcess_CharacterEnd;
struct {
/* 0x0 */ void* pfn;
/* 0x4 */ u32 pcBase;
/* 0x8 */ u32 pOffset;
/* 0xC */ u32 uRest;
}
/* 0x4 */ rData;
}; // Size: 0x14
/* 802A7B90 */ void reset();
/* 802A7BF8 */ void stack_pushCurrent(char const*);
/* 802A7C30 */ void stack_popCurrent();
/* 802A7C54 */ void getResource_groupID(u16) const;
/* 802A7CD4 */ void toMessageCode_messageID(u32, u32, bool*) const;
/* 802A7E38 */ void on_select_begin(char const* (*)(JMessage::TProcessor*), void const*,
char const*, u32);
/* 802A7EDC */ void on_select_end();
/* 802A7F34 */ void on_select_separate();
/* 802A7FE4 */ void on_tag_();
/* 802A8090 */ void do_tag_(u32, void const*, u32);
/* 802A81EC */ void process_character_();
/* 802A828C */ void process_onCharacterEnd_normal_(JMessage::TProcessor*);
/* 802A82F4 */ void process_onCharacterEnd_select_(JMessage::TProcessor*);
/* 802A833C */ void process_onSelect_limited_(JMessage::TProcessor*);
/* 802A8358 */ void process_onSelect_(JMessage::TProcessor*);
/* 802A8C24 */ void on_message(u32) const;
/* 802A8C44 */ void getMessageText_messageCode(u32) const;
/* 802A7B48 */ virtual ~TProcessor();
/* 802A7FC0 */ virtual void do_reset();
/* 802A7FC4 */ virtual void do_begin(void const*, char const*);
/* 802A7FC8 */ virtual void do_end();
/* 802A7FCC */ virtual void do_character(int);
/* 802A7FD0 */ virtual bool do_tag(u32, void const*, u32);
/* 802A7FD8 */ virtual void do_select_begin(u32);
/* 802A7FDC */ virtual void do_select_end();
/* 802A7FE0 */ virtual void do_select_separate();
/* 802A8084 */ virtual void do_resetStatus_(char const*);
/* 802A8088 */ virtual bool do_setBegin_isReady_() const;
/* 0x04 */ TReference* pReference_;
/* 0x08 */ TResource* pResourceCache_;
/* 0x0C */ const char* pszCurrent_;
/* 0x10 */ TStack_ oStack_;
/* 0x24 */ TProcess_ oProcess_;
};
struct TControl;
struct TSequenceProcessor : public TProcessor {
enum SeqStatus {
STATUS_NORMAL = 2,
STATUS_JUMP,
STATUS_BRANCH,
};
/* 802A8374 */ TSequenceProcessor(JMessage::TReference const*, JMessage::TControl*);
/* 802A8418 */ void process(char const*);
/* 802A85A4 */ void on_isReady();
/* 802A85D0 */ void on_jump_register(void const* (*)(JMessage::TSequenceProcessor const*), u32);
/* 802A85E4 */ void on_jump_isReady();
/* 802A8610 */ void on_jump(void const*, char const*);
/* 802A8690 */ void
on_branch_register(void const* (*)(JMessage::TSequenceProcessor const*, u32), void const*, u32);
/* 802A86A0 */ void on_branch_query(u32);
/* 802A86D4 */ void on_branch_queryResult();
/* 802A8700 */ void on_branch(void const*, char const*);
/* 802A892C */ void process_setMessageIndex_reserved_(u16);
/* 802A8944 */ void process_setMessageCode_(JMessage::TSequenceProcessor const*, u16, u16);
/* 802A89B8 */ void process_onJump_limited_(JMessage::TSequenceProcessor const*);
/* 802A89EC */ void process_onJump_(JMessage::TSequenceProcessor const*);
/* 802A8A18 */ void process_onBranch_limited_(JMessage::TSequenceProcessor const*, u32);
/* 802A8A50 */ void process_onBranch_(JMessage::TSequenceProcessor const*, u32);
/* 802A83B8 */ virtual ~TSequenceProcessor();
/* 802A87A4 */ virtual void do_resetStatus_(char const*);
/* 802A87C0 */ virtual void do_setBegin_isReady_() const;
/* 802A87D0 */ virtual void do_begin_(void const*, char const*);
/* 802A87D4 */ virtual void do_end_();
/* 802A87E0 */ virtual void do_tag_(u32, void const*, u32);
/* 802A8780 */ virtual bool do_isReady();
/* 802A8788 */ virtual bool do_jump_isReady();
/* 802A8790 */ virtual void do_jump(void const*, char const*);
/* 802A8794 */ virtual void do_branch_query(u32);
/* 802A8798 */ virtual s32 do_branch_queryResult();
/* 802A87A0 */ virtual void do_branch(void const*, char const*);
/* 0x38 */ TControl* pControl_;
/* 0x3C */ SeqStatus eStatus_;
/* 0x40 */ TProcess_ oProcess2_;
};
struct TRenderingProcessor : public TProcessor {
/* 802A8A84 */ TRenderingProcessor(JMessage::TReference const*);
/* 802A8B20 */ void process(char const*);
/* 802A8AC0 */ virtual ~TRenderingProcessor();
/* 802A8BA4 */ virtual void do_begin_(void const*, char const*);
/* 802A8BA8 */ virtual void do_end_();
/* 802A8BAC */ virtual void do_tag_(u32, void const*, u32);
};
}; // namespace JMessage
struct STControl;
struct dMsgObject_c;
struct jmessage_tReference : public JMessage::TReference {
/* 80228B04 */ jmessage_tReference();
/* 80228D28 */ void calcDistance();
/* 80228DE0 */ void getLineMax();
/* 80228E6C */ void isKanban();
/* 80228EA0 */ void isPlaceName();
/* 80228ED4 */ void isBossName();
/* 80228F08 */ void isSaveSeq();
/* 80228F3C */ void isBook();
/* 80228F70 */ void isStaffRoll();
/* 80228FA4 */ void isHowl();
/* 80228FD8 */ void isMidona();
/* 8022900C */ void resetReference();
/* 80229034 */ void pageSend();
/* 80229168 */ void selectMessage();
/* 802294A8 */ void inputNumber();
/* 80229730 */ void getWord(int);
/* 80229744 */ void resetWord();
/* 80229768 */ void setCharactor(u16);
/* 80229788 */ void addCharactor(u16);
/* 802297B0 */ void resetCharactor();
/* 802297E4 */ void shiftCharCountBuffer();
/* 80229810 */ void resetCharCountBuffer();
/* 80229848 */ void allsetCharCountBuffer();
/* 8022986C */ void isCharSend();
/* 802298DC */ void isLightSend();
/* 8022994C */ void isLightEnd();
/* 802299AC */ void decideOutFontRupeeColor(int);
/* 80232A20 */ void getActorPos();
/* 80238C78 */ void setActorPos(cXyz pos) {
mActorPos = pos;
}
/* 80228CB4 */ virtual ~jmessage_tReference();
private:
/* 0x0008 */ STControl* mpStick;
/* 0x000C */ u16 field_0xc[0x200];
/* 0x040C */ s16 field_0x40c;
/* 0x040E */ s16 field_0x40e;
/* 0x0410 */ s16 mCountBackUp;
/* 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[40];
/* 0x0508 */ f32 mSpaceLength[40];
/* 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 */ u16 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[40];
/* 0x0630 */ u16 mTopTagScale;
/* 0x0632 */ u16 mNowTagScale;
/* 0x0634 */ char mWord[10][100];
/* 0x0A1C */ char mTextPtr[0x200];
/* 0x0C1C */ char mTextSPtr[0x200];
/* 0x0E1C */ char mRuby[0x200];
/* 0x101C */ u8 mSelText[3][50];
/* 0x10B2 */ u8 mSelRuby[3][80];
/* 0x11A2 */ s8 mPageLine[40];
/* 0x11CA */ s8 mPageLineMax[40];
/* 0x11F2 */ u8 mPageType[40];
/* 0x121A */ u8 mLineArrange[40];
/* 0x1242 */ u8 mSelectNum;
/* 0x1243 */ u8 mSelectType;
/* 0x1244 */ u8 mSelectPos;
/* 0x1245 */ u8 mFukiPosType;
/* 0x1246 */ u8 mFukiKind;
/* 0x1247 */ u8 mForm;
/* 0x1248 */ u8 field_0x1248;
/* 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 */ bool mBatchColorFlag;
}; // Size: 0x1278
struct jmessage_tControl;
struct jmessage_tSequenceProcessor : public JMessage::TSequenceProcessor {
/* 8022B558 */ jmessage_tSequenceProcessor(jmessage_tReference const*, jmessage_tControl*);
/* 8022C904 */ void do_name1();
/* 8022C908 */ void do_space(u32);
/* 8022CA24 */ void do_rubyset(void const*, u32);
/* 8022CAAC */ void push_word();
/* 8022CB10 */ void messageSePlay(u8, u8, cXyz*);
/* 8022CBE8 */ void calcStringLength();
/* 8023299C */ virtual ~jmessage_tSequenceProcessor();
/* 8022B654 */ virtual void do_reset();
/* 8022B658 */ virtual void do_begin(void const*, char const*);
/* 8022BA3C */ virtual void do_end();
/* 8022BFE0 */ virtual void do_character(int);
/* 8022C1A0 */ virtual void do_tag(u32, void const*, u32);
/* 8022BB7C */ virtual void do_isReady();
/* 8022C8FC */ virtual bool do_jump_isReady();
/* 8022CBE4 */ virtual void do_jump(void const*, char const*);
};
struct jmessage_tRenderingProcessor : public JMessage::TRenderingProcessor {
/* 8022CCB0 */ jmessage_tRenderingProcessor(jmessage_tReference const*);
/* 8022E12C */ void resetRendering();
/* 8022E17C */ void do_widthcenter();
/* 8022E260 */ void do_selwidthcenter(int);
/* 8022E318 */ void do_heightcenter();
/* 8022E7CC */ void do_color(u8);
/* 8022E860 */ void do_scale(f32);
/* 8022E960 */ void do_linedown(s16);
/* 8022E9C0 */ void do_transY(s16, bool);
/* 8022EAE4 */ void do_outfont(u8, u32);
/* 8022ED10 */ void do_arrow2();
/* 8022EECC */ void getLineLength(int);
/* 8022EF00 */ void do_strcat(char*, bool, bool, bool);
/* 8022F148 */ void do_rubyset(void const*, u32);
/* 8022F384 */ void do_rubystrcat(char*, char*, f32, f32);
/* 8022F53C */ void do_name1();
/* 8022F540 */ void do_numset(s16);
/* 8022F734 */ void push_word();
/* 8022F784 */ void getCharInfo(f32, f32, f32, f32, f32);
/* 8023293C */ virtual ~jmessage_tRenderingProcessor();
/* 8022CDC8 */ virtual void do_reset();
/* 8022CDCC */ virtual void do_begin(void const*, char const*);
/* 8022CFD8 */ virtual void do_end();
/* 8022D0A0 */ virtual void do_character(int);
/* 8022D74C */ virtual void do_tag(u32, void const*, u32);
};
#endif /* JMESSAGE_PROCESSOR_H */