j2d / map_path work, d_drawlist / d_attention cleanup (#208)

* work on fop actor / actor mng, daalink, d_a_obj_item

* d_a_title mostly decompiled

* daalink / d_event / JMessage / dmsg_out_font work

* msg_scrn_base / msg_scrn_boss

* some work on mDo machine, d_menu_save, d_tresure, and various

* remove asm

* progress

* finish d_menu_save / d_pane_class_alpha / d_pane_class / rename some data

* rename more data

* remove asm / progress

* match all of d_pane_class

* fixes / some dKankyo doc

* bunch of j2d work. d_drawlist / d_attention cleanup

* progress / asm

* cleanup wip

* decompile JStage

* setup some more JStudio structs

* set up d_demo classes

* some d_demo work

* cleanup dolphin os stuff

* some initial dEvent documentation

* some At collision documentation

* match JUTConsole::doDraw

* dbgs work / split up some of d_a_alink into .inc files

* d_a_alink_spinner work
This commit is contained in:
TakaRikka
2022-08-30 14:22:17 -07:00
committed by GitHub
parent bc30d007e1
commit f8979749e3
613 changed files with 30182 additions and 40087 deletions
+2 -1
View File
@@ -14,7 +14,8 @@ public:
virtual void* load(void const*) = 0;
virtual void setResource(J2DAnmBase*, void const*) = 0;
/* 8030A410 */ virtual ~J2DAnmLoader() {}
void* _4;
void* mpResource;
};
struct J3DAnmTransformKeyData {
+103 -91
View File
@@ -18,31 +18,31 @@ public:
/* 802F2A40 */ virtual void initialize();
/* 802EB1D0 */ virtual void setGX();
/* 802F2A44 */ virtual void loadTexture(_GXTexMapID, u32);
virtual void getType() = 0;
virtual u32 getType() = 0;
virtual s32 getMaxStage() = 0;
/* 802EB1DC */ virtual void setTexNo(u32, u16);
/* 802EA170 */ virtual u32 getTexNo(u32) const;
/* 802F2A48 */ virtual void setFontNo(u16);
/* 802EA164 */ virtual u32 getFontNo() const;
/* 802F2A4C */ virtual void setTevOrder(u32, J2DTevOrder);
/* 802EA144 */ virtual bool getTevOrder(u32);
/* 802EA144 */ virtual J2DTevOrder* getTevOrder(u32);
/* 802EB1D8 */ virtual void setTevColor(u32, J2DGXColorS10);
/* 802EA13C */ virtual bool getTevColor(u32);
/* 802EA13C */ virtual J2DGXColorS10* getTevColor(u32);
/* 802EB1D4 */ virtual void setTevKColor(u32, JUtility::TColor);
/* 802EA15C */ virtual bool getTevKColor(u32);
/* 802EA15C */ virtual JUtility::TColor* getTevKColor(u32);
/* 802F2A50 */ virtual void setTevKColorSel(u32, u8);
/* 802EA154 */ virtual bool getTevKColorSel(u32);
/* 802EA154 */ virtual u8 getTevKColorSel(u32);
/* 802F2A54 */ virtual void setTevKAlphaSel(u32, u8);
/* 802EA14C */ virtual bool getTevKAlphaSel(u32);
/* 802EA14C */ virtual u8 getTevKAlphaSel(u32);
/* 802F2A58 */ virtual void setTevStageNum(u8);
/* 802EA17C */ virtual bool getTevStageNum() const;
/* 802EA17C */ virtual u8 getTevStageNum() const;
/* 802F2A5C */ virtual void setTevStage(u32, J2DTevStage);
/* 802EA134 */ virtual bool getTevStage(u32);
/* 802EA134 */ virtual J2DTevStage* getTevStage(u32);
/* 802F2A60 */ virtual void setTevSwapModeInfo(u32, J2DTevSwapModeInfo);
/* 802F2A64 */ virtual void setTevSwapModeTable(u32, J2DTevSwapModeTable);
/* 802EA12C */ virtual bool getTevSwapModeTable(u32);
/* 802EA12C */ virtual J2DTevSwapModeTable* getTevSwapModeTable(u32);
/* 802F2A68 */ virtual void setIndTevStage(u32, J2DIndTevStage);
/* 802EA184 */ virtual bool getIndTevStage(u32);
/* 802EA184 */ virtual J2DIndTevStage* getIndTevStage(u32);
/* 802F2A7C */ virtual bool insertTexture(u32, ResTIMG const*);
/* 802F2A74 */ virtual bool insertTexture(u32, ResTIMG const*, JUTPalette*);
/* 802F2A6C */ virtual bool insertTexture(u32, JUTTexture*);
@@ -53,13 +53,13 @@ public:
/* 802F2A9C */ virtual bool setFont(JUTFont*);
/* 802F2AAC */ virtual bool setPalette(u32, ResTLUT const*);
/* 802F2AB4 */ virtual bool prepareTexture(u8);
/* 802EB87C */ virtual bool getTexture(u32);
/* 802EB884 */ virtual bool getPalette(u32);
/* 802F2ABC */ virtual bool getFont();
/* 802EB87C */ virtual JUTTexture* getTexture(u32);
/* 802EB884 */ virtual JUTPalette* getPalette(u32);
/* 802F2ABC */ virtual JUTFont* getFont();
/* 802F2AC4 */ virtual void shiftDeleteFlag(u8, bool);
/* 802F2AC8 */ virtual void setUndeleteFlag(u8);
/* 802F2ACC */ virtual void setFontUndeleteFlag();
/* 802EB184 */ virtual ~J2DTevBlock();
/* 802EB184 */ virtual ~J2DTevBlock() {}
};
class J2DTevBlock1 : public J2DTevBlock {
@@ -69,31 +69,31 @@ public:
/* 802EBA50 */ virtual void initialize();
/* 802EC328 */ virtual void setGX();
/* 802EC570 */ virtual void loadTexture(_GXTexMapID, u32);
/* 802F27A0 */ virtual void getType();
/* 802F27A0 */ virtual u32 getType();
/* 802F27AC */ virtual s32 getMaxStage();
/* 802F27B4 */ virtual void setTexNo(u32, u16);
/* 802F27C4 */ virtual u32 getTexNo(u32) const;
/* 802F27D4 */ virtual void setFontNo(u16);
/* 802F27DC */ virtual u32 getFontNo() const;
/* 802F27E4 */ virtual void setTevOrder(u32, J2DTevOrder);
/* 802F2808 */ virtual bool getTevOrder(u32);
/* 802F2808 */ virtual J2DTevOrder* getTevOrder(u32);
/* 802F281C */ virtual void setTevColor(u32, J2DGXColorS10);
/* 802F2848 */ virtual bool getTevColor(u32);
/* 802F2848 */ virtual J2DGXColorS10* getTevColor(u32);
/* 802F285C */ virtual void setTevKColor(u32, JUtility::TColor);
/* 802F2888 */ virtual bool getTevKColor(u32);
/* 802F2888 */ virtual JUtility::TColor* getTevKColor(u32);
/* 802F289C */ virtual void setTevKColorSel(u32, u8);
/* 802F28A8 */ virtual bool getTevKColorSel(u32);
/* 802F28A8 */ virtual u8 getTevKColorSel(u32);
/* 802F28B4 */ virtual void setTevKAlphaSel(u32, u8);
/* 802F28C0 */ virtual bool getTevKAlphaSel(u32);
/* 802F28C0 */ virtual u8 getTevKAlphaSel(u32);
/* 802F28CC */ virtual void setTevStageNum(u8);
/* 802F28D0 */ virtual bool getTevStageNum() const;
/* 802F28D0 */ virtual u8 getTevStageNum() const;
/* 802F28D8 */ virtual void setTevStage(u32, J2DTevStage);
/* 802F2914 */ virtual bool getTevStage(u32);
/* 802F2914 */ virtual J2DTevStage* getTevStage(u32);
/* 802F2928 */ virtual void setTevSwapModeInfo(u32, J2DTevSwapModeInfo);
/* 802F2960 */ virtual void setTevSwapModeTable(u32, J2DTevSwapModeTable);
/* 802F2970 */ virtual bool getTevSwapModeTable(u32);
/* 802F2970 */ virtual J2DTevSwapModeTable* getTevSwapModeTable(u32);
/* 802F2980 */ virtual void setIndTevStage(u32, J2DIndTevStage);
/* 802F2994 */ virtual bool getIndTevStage(u32);
/* 802F2994 */ virtual J2DIndTevStage* getIndTevStage(u32);
/* 802F29A8 */ virtual bool insertTexture(u32, ResTIMG const*);
/* 802EBCC0 */ virtual bool insertTexture(u32, ResTIMG const*, JUTPalette*);
/* 802EBDE4 */ virtual bool insertTexture(u32, JUTTexture*);
@@ -104,9 +104,9 @@ public:
/* 802EC1D8 */ virtual bool setFont(JUTFont*);
/* 802EC258 */ virtual bool setPalette(u32, ResTLUT const*);
/* 802EBC0C */ virtual bool prepareTexture(u8);
/* 802F29D8 */ virtual bool getTexture(u32);
/* 802F29F8 */ virtual bool getPalette(u32);
/* 802F2A18 */ virtual bool getFont();
/* 802F29D8 */ virtual JUTTexture* getTexture(u32);
/* 802F29F8 */ virtual JUTPalette* getPalette(u32);
/* 802F2A18 */ virtual JUTFont* getFont();
/* 802EC318 */ virtual void shiftDeleteFlag(u8, bool);
/* 802F2A20 */ virtual void setUndeleteFlag(u8);
/* 802F2A30 */ virtual void setFontUndeleteFlag();
@@ -136,31 +136,31 @@ public:
/* 802EC7A0 */ virtual void initialize();
/* 802ED584 */ virtual void setGX();
/* 802ED874 */ virtual void loadTexture(_GXTexMapID, u32);
/* 802F24FC */ virtual void getType();
/* 802F24FC */ virtual u32 getType();
/* 802F2508 */ virtual s32 getMaxStage();
/* 802F2510 */ virtual void setTexNo(u32, u16);
/* 802F2520 */ virtual u32 getTexNo(u32) const;
/* 802F2530 */ virtual void setFontNo(u16);
/* 802F2538 */ virtual u32 getFontNo() const;
/* 802F2540 */ virtual void setTevOrder(u32, J2DTevOrder);
/* 802F2564 */ virtual bool getTevOrder(u32);
/* 802F2564 */ virtual J2DTevOrder* getTevOrder(u32);
/* 802F2578 */ virtual void setTevColor(u32, J2DGXColorS10);
/* 802F25A4 */ virtual bool getTevColor(u32);
/* 802F25A4 */ virtual J2DGXColorS10* getTevColor(u32);
/* 802F25B8 */ virtual void setTevKColor(u32, JUtility::TColor);
/* 802F25E4 */ virtual bool getTevKColor(u32);
/* 802F25E4 */ virtual JUtility::TColor* getTevKColor(u32);
/* 802F25F8 */ virtual void setTevKColorSel(u32, u8);
/* 802F2604 */ virtual bool getTevKColorSel(u32);
/* 802F2604 */ virtual u8 getTevKColorSel(u32);
/* 802F2610 */ virtual void setTevKAlphaSel(u32, u8);
/* 802F261C */ virtual bool getTevKAlphaSel(u32);
/* 802F261C */ virtual u8 getTevKAlphaSel(u32);
/* 802F2628 */ virtual void setTevStageNum(u8);
/* 802F2630 */ virtual bool getTevStageNum() const;
/* 802F2630 */ virtual u8 getTevStageNum() const;
/* 802F2638 */ virtual void setTevStage(u32, J2DTevStage);
/* 802F2674 */ virtual bool getTevStage(u32);
/* 802F2674 */ virtual J2DTevStage* getTevStage(u32);
/* 802F2688 */ virtual void setTevSwapModeInfo(u32, J2DTevSwapModeInfo);
/* 802F26C0 */ virtual void setTevSwapModeTable(u32, J2DTevSwapModeTable);
/* 802F26D0 */ virtual bool getTevSwapModeTable(u32);
/* 802F26D0 */ virtual J2DTevSwapModeTable* getTevSwapModeTable(u32);
/* 802F26E0 */ virtual void setIndTevStage(u32, J2DIndTevStage);
/* 802F26F4 */ virtual bool getIndTevStage(u32);
/* 802F26F4 */ virtual J2DIndTevStage* getIndTevStage(u32);
/* 802F2708 */ virtual bool insertTexture(u32, ResTIMG const*);
/* 802ECAE8 */ virtual bool insertTexture(u32, ResTIMG const*, JUTPalette*);
/* 802ECDE8 */ virtual bool insertTexture(u32, JUTTexture*);
@@ -171,9 +171,9 @@ public:
/* 802ED3A4 */ virtual bool setFont(JUTFont*);
/* 802ED424 */ virtual bool setPalette(u32, ResTLUT const*);
/* 802ECA18 */ virtual bool prepareTexture(u8);
/* 802F2738 */ virtual bool getTexture(u32);
/* 802F2758 */ virtual bool getPalette(u32);
/* 802F2778 */ virtual bool getFont();
/* 802F2738 */ virtual JUTTexture* getTexture(u32);
/* 802F2758 */ virtual JUTPalette* getPalette(u32);
/* 802F2778 */ virtual JUTFont* getFont();
/* 802ED4FC */ virtual void shiftDeleteFlag(u8, bool);
/* 802F2780 */ virtual void setUndeleteFlag(u8);
/* 802F2790 */ virtual void setFontUndeleteFlag();
@@ -186,6 +186,7 @@ private:
/* 0x012 */ J2DGXColorS10 mTevColor[4];
/* 0x032 */ u8 mTevStageNum;
/* 0x033 */ J2DTevStage mTevStage[2];
/* 0x043 */ u8 field_0x43;
/* 0x044 */ JUtility::TColor mTevKColor[4];
/* 0x054 */ u8 mTevKColorSel[2];
/* 0x056 */ u8 mTevKAlphaSel[2];
@@ -204,31 +205,31 @@ public:
/* 802EDAC4 */ virtual void initialize();
/* 802EEA2C */ virtual void setGX();
/* 802EED1C */ virtual void loadTexture(_GXTexMapID, u32);
/* 802F2258 */ virtual void getType();
/* 802F2258 */ virtual u32 getType();
/* 802F2264 */ virtual s32 getMaxStage();
/* 802F226C */ virtual void setTexNo(u32, u16);
/* 802F227C */ virtual u32 getTexNo(u32) const;
/* 802F228C */ virtual void setFontNo(u16);
/* 802F2294 */ virtual u32 getFontNo() const;
/* 802F229C */ virtual void setTevOrder(u32, J2DTevOrder);
/* 802F22C0 */ virtual bool getTevOrder(u32);
/* 802F22C0 */ virtual J2DTevOrder* getTevOrder(u32);
/* 802F22D4 */ virtual void setTevColor(u32, J2DGXColorS10);
/* 802F2300 */ virtual bool getTevColor(u32);
/* 802F2300 */ virtual J2DGXColorS10* getTevColor(u32);
/* 802F2314 */ virtual void setTevKColor(u32, JUtility::TColor);
/* 802F2340 */ virtual bool getTevKColor(u32);
/* 802F2340 */ virtual JUtility::TColor* getTevKColor(u32);
/* 802F2354 */ virtual void setTevKColorSel(u32, u8);
/* 802F2360 */ virtual bool getTevKColorSel(u32);
/* 802F2360 */ virtual u8 getTevKColorSel(u32);
/* 802F236C */ virtual void setTevKAlphaSel(u32, u8);
/* 802F2378 */ virtual bool getTevKAlphaSel(u32);
/* 802F2378 */ virtual u8 getTevKAlphaSel(u32);
/* 802F2384 */ virtual void setTevStageNum(u8);
/* 802F238C */ virtual bool getTevStageNum() const;
/* 802F238C */ virtual u8 getTevStageNum() const;
/* 802F2394 */ virtual void setTevStage(u32, J2DTevStage);
/* 802F23D0 */ virtual bool getTevStage(u32);
/* 802F23D0 */ virtual J2DTevStage* getTevStage(u32);
/* 802F23E4 */ virtual void setTevSwapModeInfo(u32, J2DTevSwapModeInfo);
/* 802F241C */ virtual void setTevSwapModeTable(u32, J2DTevSwapModeTable);
/* 802F242C */ virtual bool getTevSwapModeTable(u32);
/* 802F242C */ virtual J2DTevSwapModeTable* getTevSwapModeTable(u32);
/* 802F243C */ virtual void setIndTevStage(u32, J2DIndTevStage);
/* 802F2450 */ virtual bool getIndTevStage(u32);
/* 802F2450 */ virtual J2DIndTevStage* getIndTevStage(u32);
/* 802F2464 */ virtual bool insertTexture(u32, ResTIMG const*);
/* 802EDE04 */ virtual bool insertTexture(u32, ResTIMG const*, JUTPalette*);
/* 802EE1D4 */ virtual bool insertTexture(u32, JUTTexture*);
@@ -239,9 +240,9 @@ public:
/* 802EE84C */ virtual bool setFont(JUTFont*);
/* 802EE8CC */ virtual bool setPalette(u32, ResTLUT const*);
/* 802EDD34 */ virtual bool prepareTexture(u8);
/* 802F2494 */ virtual bool getTexture(u32);
/* 802F24B4 */ virtual bool getPalette(u32);
/* 802F24D4 */ virtual bool getFont();
/* 802F2494 */ virtual JUTTexture* getTexture(u32);
/* 802F24B4 */ virtual JUTPalette* getPalette(u32);
/* 802F24D4 */ virtual JUTFont* getFont();
/* 802EE9A4 */ virtual void shiftDeleteFlag(u8, bool);
/* 802F24DC */ virtual void setUndeleteFlag(u8);
/* 802F24EC */ virtual void setFontUndeleteFlag();
@@ -254,6 +255,7 @@ private:
/* 0x01E */ J2DGXColorS10 mTevColor[4];
/* 0x03E */ u8 mTevStageNum;
/* 0x03F */ J2DTevStage mTevStage[4];
/* 0x05F */ u8 field_0x5f;
/* 0x060 */ JUtility::TColor mTevKColor[4];
/* 0x070 */ u8 mTevKColorSel[4];
/* 0x074 */ u8 mTevKAlphaSel[4];
@@ -272,31 +274,31 @@ public:
/* 802EEF6C */ virtual void initialize();
/* 802EFEAC */ virtual void setGX();
/* 802F019C */ virtual void loadTexture(_GXTexMapID, u32);
/* 802F1FB8 */ virtual void getType();
/* 802F1FB8 */ virtual u32 getType();
/* 802F1FC4 */ virtual s32 getMaxStage();
/* 802F1FCC */ virtual void setTexNo(u32, u16);
/* 802F1FDC */ virtual u32 getTexNo(u32) const;
/* 802F1FEC */ virtual void setFontNo(u16);
/* 802F1FF4 */ virtual u32 getFontNo() const;
/* 802F1FFC */ virtual void setTevOrder(u32, J2DTevOrder);
/* 802F2020 */ virtual bool getTevOrder(u32);
/* 802F2020 */ virtual J2DTevOrder* getTevOrder(u32);
/* 802F2034 */ virtual void setTevColor(u32, J2DGXColorS10);
/* 802F2060 */ virtual bool getTevColor(u32);
/* 802F2060 */ virtual J2DGXColorS10* getTevColor(u32);
/* 802F2074 */ virtual void setTevKColor(u32, JUtility::TColor);
/* 802F20A0 */ virtual bool getTevKColor(u32);
/* 802F20A0 */ virtual JUtility::TColor* getTevKColor(u32);
/* 802F20B4 */ virtual void setTevKColorSel(u32, u8);
/* 802F20C0 */ virtual bool getTevKColorSel(u32);
/* 802F20C0 */ virtual u8 getTevKColorSel(u32);
/* 802F20CC */ virtual void setTevKAlphaSel(u32, u8);
/* 802F20D8 */ virtual bool getTevKAlphaSel(u32);
/* 802F20D8 */ virtual u8 getTevKAlphaSel(u32);
/* 802F20E4 */ virtual void setTevStageNum(u8);
/* 802F20EC */ virtual bool getTevStageNum() const;
/* 802F20EC */ virtual u8 getTevStageNum() const;
/* 802F20F4 */ virtual void setTevStage(u32, J2DTevStage);
/* 802F2130 */ virtual bool getTevStage(u32);
/* 802F2130 */ virtual J2DTevStage* getTevStage(u32);
/* 802F2144 */ virtual void setTevSwapModeInfo(u32, J2DTevSwapModeInfo);
/* 802F217C */ virtual void setTevSwapModeTable(u32, J2DTevSwapModeTable);
/* 802F218C */ virtual bool getTevSwapModeTable(u32);
/* 802F218C */ virtual J2DTevSwapModeTable* getTevSwapModeTable(u32);
/* 802F219C */ virtual void setIndTevStage(u32, J2DIndTevStage);
/* 802F21B0 */ virtual bool getIndTevStage(u32);
/* 802F21B0 */ virtual J2DIndTevStage* getIndTevStage(u32);
/* 802F21C4 */ virtual bool insertTexture(u32, ResTIMG const*);
/* 802EF2B0 */ virtual bool insertTexture(u32, ResTIMG const*, JUTPalette*);
/* 802EF67C */ virtual bool insertTexture(u32, JUTTexture*);
@@ -307,9 +309,9 @@ public:
/* 802EFCEC */ virtual bool setFont(JUTFont*);
/* 802EFD68 */ virtual bool setPalette(u32, ResTLUT const*);
/* 802EF1E0 */ virtual bool prepareTexture(u8);
/* 802F21F4 */ virtual bool getTexture(u32);
/* 802F2214 */ virtual bool getPalette(u32);
/* 802F2234 */ virtual bool getFont();
/* 802F21F4 */ virtual JUTTexture* getTexture(u32);
/* 802F2214 */ virtual JUTPalette* getPalette(u32);
/* 802F2234 */ virtual JUTFont* getFont();
/* 802EFE40 */ virtual void shiftDeleteFlag(u8, bool);
/* 802F223C */ virtual void setUndeleteFlag(u8);
/* 802F224C */ virtual void setFontUndeleteFlag();
@@ -322,6 +324,7 @@ private:
/* 0x036 */ J2DGXColorS10 mTevColor[4];
/* 0x056 */ u8 mTevStageNum;
/* 0x057 */ J2DTevStage mTevStage[8];
/* 0x097 */ u8 field_0x97;
/* 0x098 */ JUtility::TColor mTevKColor[4];
/* 0x0A8 */ u8 mTevKColorSel[8];
/* 0x0B0 */ u8 mTevKAlphaSel[8];
@@ -341,31 +344,31 @@ public:
/* 802F03EC */ virtual void initialize();
/* 802F132C */ virtual void setGX();
/* 802F161C */ virtual void loadTexture(_GXTexMapID, u32);
/* 802F1D18 */ virtual void getType();
/* 802F1D18 */ virtual u32 getType();
/* 802F1D24 */ virtual s32 getMaxStage();
/* 802F1D2C */ virtual void setTexNo(u32, u16);
/* 802F1D3C */ virtual u32 getTexNo(u32) const;
/* 802F1D4C */ virtual void setFontNo(u16);
/* 802F1D54 */ virtual u32 getFontNo() const;
/* 802F1D5C */ virtual void setTevOrder(u32, J2DTevOrder);
/* 802F1D80 */ virtual bool getTevOrder(u32);
/* 802F1D80 */ virtual J2DTevOrder* getTevOrder(u32);
/* 802F1D94 */ virtual void setTevColor(u32, J2DGXColorS10);
/* 802F1DC0 */ virtual bool getTevColor(u32);
/* 802F1DC0 */ virtual J2DGXColorS10* getTevColor(u32);
/* 802F1DD4 */ virtual void setTevKColor(u32, JUtility::TColor);
/* 802F1E00 */ virtual bool getTevKColor(u32);
/* 802F1E00 */ virtual JUtility::TColor* getTevKColor(u32);
/* 802F1E14 */ virtual void setTevKColorSel(u32, u8);
/* 802F1E20 */ virtual bool getTevKColorSel(u32);
/* 802F1E20 */ virtual u8 getTevKColorSel(u32);
/* 802F1E2C */ virtual void setTevKAlphaSel(u32, u8);
/* 802F1E38 */ virtual bool getTevKAlphaSel(u32);
/* 802F1E38 */ virtual u8 getTevKAlphaSel(u32);
/* 802F1E44 */ virtual void setTevStageNum(u8);
/* 802F1E4C */ virtual bool getTevStageNum() const;
/* 802F1E4C */ virtual u8 getTevStageNum() const;
/* 802F1E54 */ virtual void setTevStage(u32, J2DTevStage);
/* 802F1E90 */ virtual bool getTevStage(u32);
/* 802F1E90 */ virtual J2DTevStage* getTevStage(u32);
/* 802F1EA4 */ virtual void setTevSwapModeInfo(u32, J2DTevSwapModeInfo);
/* 802F1EDC */ virtual void setTevSwapModeTable(u32, J2DTevSwapModeTable);
/* 802F1EEC */ virtual bool getTevSwapModeTable(u32);
/* 802F1EEC */ virtual J2DTevSwapModeTable* getTevSwapModeTable(u32);
/* 802F1EFC */ virtual void setIndTevStage(u32, J2DIndTevStage);
/* 802F1F10 */ virtual bool getIndTevStage(u32);
/* 802F1F10 */ virtual J2DIndTevStage* getIndTevStage(u32);
/* 802F1F24 */ virtual bool insertTexture(u32, ResTIMG const*);
/* 802F0730 */ virtual bool insertTexture(u32, ResTIMG const*, JUTPalette*);
/* 802F0AFC */ virtual bool insertTexture(u32, JUTTexture*);
@@ -376,9 +379,9 @@ public:
/* 802F116C */ virtual bool setFont(JUTFont*);
/* 802F11E8 */ virtual bool setPalette(u32, ResTLUT const*);
/* 802F0660 */ virtual bool prepareTexture(u8);
/* 802F1F54 */ virtual bool getTexture(u32);
/* 802F1F74 */ virtual bool getPalette(u32);
/* 802F1F94 */ virtual bool getFont();
/* 802F1F54 */ virtual JUTTexture* getTexture(u32);
/* 802F1F74 */ virtual JUTPalette* getPalette(u32);
/* 802F1F94 */ virtual JUTFont* getFont();
/* 802F12C0 */ virtual void shiftDeleteFlag(u8, bool);
/* 802F1F9C */ virtual void setUndeleteFlag(u8);
/* 802F1FAC */ virtual void setFontUndeleteFlag();
@@ -391,6 +394,7 @@ public:
/* 0x056 */ J2DGXColorS10 mTevColor[4];
/* 0x076 */ u8 mTevStageNum;
/* 0x077 */ J2DTevStage mTevStage[16];
/* 0x0F7 */ u8 field_0xf7;
/* 0x0F8 */ JUtility::TColor mTevKColor[4];
/* 0x108 */ u8 mTevKColorSel[16];
/* 0x118 */ u8 mTevKAlphaSel[16];
@@ -456,16 +460,16 @@ class J2DIndBlock {
public:
/* 802EB24C */ virtual void initialize();
/* 802EB1CC */ virtual void setGX();
virtual void getType() = 0;
virtual u32 getType() = 0;
/* 802EB250 */ virtual void setIndTexStageNum(u8);
/* 802EA1A4 */ virtual bool getIndTexStageNum() const;
/* 802EA1A4 */ virtual u8 getIndTexStageNum() const;
/* 802EB254 */ virtual void setIndTexOrder(u32, J2DIndTexOrder);
/* 802EA19C */ virtual bool getIndTexOrder(u32);
/* 802EA19C */ virtual J2DIndTexOrder* getIndTexOrder(u32);
/* 802EB258 */ virtual void setIndTexMtx(u32, J2DIndTexMtx);
/* 802EA194 */ virtual bool getIndTexMtx(u32);
/* 802EA194 */ virtual J2DIndTexMtx* getIndTexMtx(u32);
/* 802EB25C */ virtual void setIndTexCoordScale(u32, J2DIndTexCoordScale);
/* 802EA18C */ virtual bool getIndTexCoordScale(u32);
/* 802EB13C */ virtual ~J2DIndBlock();
/* 802EA18C */ virtual J2DIndTexCoordScale* getIndTexCoordScale(u32);
/* 802EB13C */ virtual ~J2DIndBlock() {}
};
class J2DIndBlockFull : public J2DIndBlock {
@@ -474,15 +478,15 @@ public:
/* 802F1664 */ virtual void initialize();
/* 802F1730 */ virtual void setGX();
/* 802F1B94 */ virtual void getType();
/* 802F1B94 */ virtual u32 getType();
/* 802F1BA0 */ virtual void setIndTexStageNum(u8);
/* 802F1BA8 */ virtual bool getIndTexStageNum() const;
/* 802F1BA8 */ virtual u8 getIndTexStageNum() const;
/* 802F1BB0 */ virtual void setIndTexOrder(u32, J2DIndTexOrder);
/* 802F1BCC */ virtual bool getIndTexOrder(u32);
/* 802F1BCC */ virtual J2DIndTexOrder* getIndTexOrder(u32);
/* 802F1BE0 */ virtual void setIndTexMtx(u32, J2DIndTexMtx);
/* 802F1C38 */ virtual bool getIndTexMtx(u32);
/* 802F1C38 */ virtual J2DIndTexMtx* getIndTexMtx(u32);
/* 802F1C4C */ virtual void setIndTexCoordScale(u32, J2DIndTexCoordScale);
/* 802F1C68 */ virtual bool getIndTexCoordScale(u32);
/* 802F1C68 */ virtual J2DIndTexCoordScale* getIndTexCoordScale(u32);
/* 802F1C7C */ virtual ~J2DIndBlockFull();
private:
@@ -497,7 +501,7 @@ public:
J2DIndBlockNull() {}
/* 802EB1E0 */ virtual void setGX();
/* 802EB1E4 */ virtual void getType();
/* 802EB1E4 */ virtual u32 getType();
/* 802EB1F0 */ virtual ~J2DIndBlockNull();
};
@@ -515,6 +519,8 @@ public:
/* 802EB6A4 */ void setTexMtx(u32, J2DTexMtx&);
/* 802EB7E0 */ void getTexMtx(u32, J2DTexMtx&);
u32 getTexGenNum() const { return mTexGenNum; }
/* 802EB620 */ virtual ~J2DTexGenBlock();
}; // Size: 0x48
@@ -526,6 +532,8 @@ class J2DColorChan {
public:
/* 802EB280 */ J2DColorChan();
u16 getMatSrc() const { return mColorChanInfo.field_0x0 & 1; }
private:
/* 0x0 */ J2DColorChanInfo mColorChanInfo;
};
@@ -544,6 +552,10 @@ public:
/* 802EB424 */ void setGX();
/* 802EB0F4 */ virtual ~J2DColorBlock();
JUtility::TColor* getMatColor(u32 i) { return &mMatColor[i]; }
J2DColorChan* getColorChan(u32 i) { return &mColorChan[i]; }
void setCullMode(u8 mode) { mCullMode = mode; }
};
#endif /* J2DMATBLOCK_H */
+4 -2
View File
@@ -41,9 +41,11 @@ public:
J2DPEBlock* getPEBlock() { return &mPEBlock; }
J2DTevBlock* getTevBlock() { return mTevBlock; }
J2DIndBlock* getIndBlock() { return mIndBlock; }
bool isVisible() const { return mVisible; }
int getMaterialAlphaCalc() const { return mMaterialAlphaCalc; }
private:
/* 0x04 */ int field_0x4;
// private:
/* 0x04 */ void* field_0x4;
/* 0x08 */ int field_0x8;
/* 0x0C */ u16 mIndex;
/* 0x0E */ bool mVisible;
+69 -63
View File
@@ -23,48 +23,78 @@ enum J2DRotateAxis {
enum J2DBasePosition {};
struct J2DPaneHeader {
/* 0x0 */ u32 mKind;
/* 0x4 */ u32 mSize;
};
class J2DPane {
public:
J2DPane();
J2DPane(J2DPane*, bool, u64, const JGeometry::TBox2<f32>&);
J2DPane(u64, const JGeometry::TBox2<f32>&);
J2DPane(J2DPane* other, JSURandomInputStream* stream, u8 arg3);
void initiate();
void initialize(J2DPane*, bool, u64, const JGeometry::TBox2<f32>&);
void initialize(u64 tag, const JGeometry::TBox2<f32>& dim);
void makePaneStream(J2DPane* other, JSURandomInputStream* stream);
void changeUseTrans(J2DPane* other);
bool appendChild(J2DPane* child);
bool insertChild(J2DPane* before, J2DPane* child);
void draw(f32 a1, f32 a2, const J2DGrafContext* ctx, bool a4, bool a5);
void place(const JGeometry::TBox2<f32>& dim);
JGeometry::TBox2<f32>& getBounds();
void rotate(f32 offsetX, f32 offsetY, J2DRotateAxis axis, f32 angle);
void rotate(f32 angle);
void clip(const JGeometry::TBox2<f32>& bounds);
void setBasePosition(J2DBasePosition position);
void setInfluencedAlpha(bool arg1, bool arg2);
JGeometry::TVec3<f32> getGlbVtx(u8 arg1) const;
J2DPane* getFirstChildPane();
J2DPane* getNextChildPane();
J2DPane* getParentPane();
void makePaneExStream(J2DPane* other, JSURandomInputStream* stream);
void* getPointer(JSURandomInputStream* stream, u32 size, JKRArchive* archive);
void animationTransform();
void updateTransform(const J2DAnmTransform* transform);
virtual ~J2DPane();
/* 0x0c */ virtual s32 getTypeID() const { return 16; }
/* 0x10 */ virtual void move(f32 x, f32 y);
/* 0x14 */ virtual void add(f32 x, f32 y);
/* 0x18 */ virtual void resize(f32 x, f32 y);
/* 0x1c */ virtual void setCullBack(bool cull);
/* 0x20 */ virtual void setCullBack(_GXCullMode cmode);
/* 0x24 */ virtual void setAlpha(u8);
/* 0x28 */ virtual bool setConnectParent(bool connected);
/* 0x2c */ virtual void calcMtx();
/* 0x30 */ virtual void update();
/* 0x34 */ virtual void drawSelf(f32 arg1, f32 arg2);
/* 0x38 */ virtual void drawSelf(f32 arg1, f32 arg2, Mtx* mtx);
/* 0x3c */ virtual J2DPane* search(u64 tag);
/* 0x40 */ virtual J2DPane* searchUserInfo(u64 tag);
/* 0x44 */ virtual void makeMatrix(f32, f32);
/* 0x48 */ virtual void makeMatrix(f32 a, f32 b, f32 c, f32 d);
/* 0x4c */ virtual bool isUsed(const ResTIMG* timg);
/* 0x50 */ virtual bool isUsed(const ResFONT* font);
/* 0x54 */ virtual void clearAnmTransform();
/* 0x58 */ virtual void rewriteAlpha();
/* 0x5c */ virtual void setAnimation(J2DAnmBase* anm);
/* 0x60 */ virtual void setAnimation(J2DAnmTransform* anm);
/* 0x64 */ virtual void setAnimation(J2DAnmColor* anm) {}
/* 0x68 */ virtual void setAnimation(J2DAnmTexPattern* anm) {}
/* 0x6c */ virtual void setAnimation(J2DAnmTextureSRTKey* anm) {}
/* 0x70 */ virtual void setAnimation(J2DAnmTevRegKey* anm) {}
/* 0x74 */ virtual void setAnimation(J2DAnmVisibilityFull* anm) {}
/* 0x78 */ virtual void setAnimation(J2DAnmVtxColor* anm) {}
/* 0x7c */ virtual const J2DAnmTransform* animationTransform(const J2DAnmTransform* transform);
/* 0x80 */ virtual void setVisibileAnimation(J2DAnmVisibilityFull* visibility);
/* 0x84 */ virtual void setAnimationVF(J2DAnmVisibilityFull* visibility);
/* 0x88 */ virtual void setVtxColorAnimation(J2DAnmVtxColor* vtx_color);
/* 0x8c */ virtual void setAnimationVC(J2DAnmVtxColor* vtx_color);
/* 0x90 */ virtual const J2DAnmTransform* animationPane(const J2DAnmTransform* transform);
/* vt 0x0C */ virtual s32 getTypeID() const { return 16; }
/* vt 0x10 */ virtual void move(f32 x, f32 y);
/* vt 0x14 */ virtual void add(f32 x, f32 y);
/* vt 0x18 */ virtual void resize(f32 x, f32 y);
/* vt 0x1C */ virtual void setCullBack(bool cull);
/* vt 0x20 */ virtual void setCullBack(_GXCullMode cmode);
/* vt 0x24 */ virtual void setAlpha(u8);
/* vt 0x28 */ virtual bool setConnectParent(bool connected);
/* vt 0x2C */ virtual void calcMtx();
/* vt 0x30 */ virtual void update();
/* vt 0x34 */ virtual void drawSelf(f32 arg1, f32 arg2);
/* vt 0x38 */ virtual void drawSelf(f32 arg1, f32 arg2, Mtx* mtx);
/* vt 0x3C */ virtual J2DPane* search(u64 tag);
/* vt 0x40 */ virtual J2DPane* searchUserInfo(u64 tag);
/* vt 0x44 */ virtual void makeMatrix(f32, f32);
/* vt 0x48 */ virtual void makeMatrix(f32 a, f32 b, f32 c, f32 d);
/* vt 0x4C */ virtual bool isUsed(const ResTIMG* timg);
/* vt 0x50 */ virtual bool isUsed(const ResFONT* font);
/* vt 0x54 */ virtual void clearAnmTransform();
/* vt 0x58 */ virtual void rewriteAlpha();
/* vt 0x5C */ virtual void setAnimation(J2DAnmBase* anm);
/* vt 0x60 */ virtual void setAnimation(J2DAnmTransform* anm);
/* vt 0x64 */ virtual void setAnimation(J2DAnmColor* anm) {}
/* vt 0x68 */ virtual void setAnimation(J2DAnmTexPattern* anm) {}
/* vt 0x6C */ virtual void setAnimation(J2DAnmTextureSRTKey* anm) {}
/* vt 0x70 */ virtual void setAnimation(J2DAnmTevRegKey* anm) {}
/* vt 0x74 */ virtual void setAnimation(J2DAnmVisibilityFull* anm) {}
/* vt 0x78 */ virtual void setAnimation(J2DAnmVtxColor* anm) {}
/* vt 0x7C */ virtual const J2DAnmTransform*
animationTransform(const J2DAnmTransform* transform);
/* vt 0x80 */ virtual void setVisibileAnimation(J2DAnmVisibilityFull* visibility);
/* vt 0x84 */ virtual void setAnimationVF(J2DAnmVisibilityFull* visibility);
/* vt 0x88 */ virtual void setVtxColorAnimation(J2DAnmVtxColor* vtx_color);
/* vt 0x8C */ virtual void setAnimationVC(J2DAnmVtxColor* vtx_color);
/* vt 0x90 */ virtual const J2DAnmTransform* animationPane(const J2DAnmTransform* transform);
f32 getHeight() const { return mBounds.getHeight(); }
f32 getWidth() const { return mBounds.getWidth(); }
@@ -102,47 +132,23 @@ public:
calcMtx();
}
int getKind() const { return id; }
int getKind() const { return mKind; }
bool isVisible() const { return mVisible; }
void show() { mVisible = true; }
void hide() { mVisible = false; }
void initiate();
void initialize(J2DPane*, bool, u64, const JGeometry::TBox2<f32>&);
void initialize(u64 tag, const JGeometry::TBox2<f32>& dim);
void makePaneStream(J2DPane* other, JSURandomInputStream* stream);
void changeUseTrans(J2DPane* other);
bool appendChild(J2DPane* child);
bool insertChild(J2DPane* before, J2DPane* child);
void draw(f32 a1, f32 a2, const J2DGrafContext* ctx, bool a4, bool a5);
void place(const JGeometry::TBox2<f32>& dim);
JGeometry::TBox2<f32>& getBounds();
void rotate(f32 offsetX, f32 offsetY, J2DRotateAxis axis, f32 angle);
void rotate(f32 angle);
void clip(const JGeometry::TBox2<f32>& bounds);
void setBasePosition(J2DBasePosition position);
void setInfluencedAlpha(bool arg1, bool arg2);
JGeometry::TVec3<f32> getGlbVtx(u8 arg1) const;
J2DPane* getFirstChildPane();
J2DPane* getNextChildPane();
J2DPane* getParentPane();
void makePaneExStream(J2DPane* other, JSURandomInputStream* stream);
static s16 J2DCast_F32_to_S16(f32 value, u8 arg2);
void* getPointer(JSURandomInputStream* stream, u32 size, JKRArchive* archive);
void animationTransform();
void updateTransform(const J2DAnmTransform* transform);
void setUserInfo(u64 info) { mUserInfoTag = info; }
const Mtx* getMtx() const { return &mPositionMtx; }
static s16 J2DCast_F32_to_S16(f32 value, u8 arg2);
static JGeometry::TBox2<f32> static_mBounds;
public:
/* 0x04 */ u16 _4;
/* 0x06 */ u8 _6[2];
/* 0x08 */ int id;
/* 0x0C */ u8 _c[4];
/* 0x04 */ u16 field_0x4;
/* 0x08 */ int mKind;
/* 0x10 */ u64 mInfoTag;
/* 0x18 */ u64 mUserInfoTag;
/* 0x20 */ JGeometry::TBox2<f32> mBounds;
+15 -1
View File
@@ -14,6 +14,20 @@ enum J2DBinding {
/* 0xF */ BIND15 = 15, // temp, figure out later
};
struct J2DPicHeader {
/* 0x0 */ u32 mTag;
/* 0x4 */ u32 mSize;
};
struct J2DScrnBlockPictureParameter {
/* 0x00 */ u16 field_0x0;
/* 0x02 */ u16 mMaterialNum;
/* 0x04 */ u16 field_0x4;
/* 0x04 */ u8 field_0x6[10];
/* 0x10 */ JGeometry::TVec2<s16> field_0x10[4];
/* 0x20 */ u32 mCornerColor[4];
}; // Size: 0x30
class J2DPicture : public J2DPane {
public:
/* 802FCFF0 */ virtual ~J2DPicture();
@@ -103,7 +117,7 @@ private:
/* 0x109 */ u8 field_0x109;
/* 0x10A */ JGeometry::TVec2<s16> field_0x10a[4];
/* 0x11C */ f32 field_0x11c[4];
/* 0x12C */ JUTPalette* field_0x12c;
/* 0x12C */ JUTPalette* mPalette;
/* 0x130 */ JUtility::TColor mWhite;
/* 0x134 */ JUtility::TColor mBlack;
/* 0x138 */ JUtility::TColor mCornerColor[4];
+18
View File
@@ -30,6 +30,24 @@ public:
/* 802F4420 */ virtual ~J2DPrint();
void setFontSize(f32 sizeX, f32 sizeY) {
f32 x;
if (sizeX > 0.0f) {
x = sizeX;
} else {
x = 0.0f;
}
mFontSizeX = x;
f32 y;
if (sizeY > 0.0f) {
y = sizeY;
} else {
y = 0.0f;
}
mFontSizeY = y;
}
static const u8* mStrBuff;
static size_t mStrBuffSize;
+52 -8
View File
@@ -112,6 +112,24 @@ private:
GXIndTexAlphaSel getAlphaSel() const { return (GXIndTexAlphaSel)((mFlags >> 22) & 0x03); }
};
struct J2DIndTevStageInfo {
/* 0x0 */ u8 field_0x0;
/* 0x1 */ u8 field_0x1;
/* 0x2 */ u8 field_0x2;
/* 0x3 */ u8 field_0x3;
/* 0x4 */ u8 field_0x4;
/* 0x5 */ u8 field_0x5;
/* 0x6 */ u8 field_0x6;
/* 0x7 */ u8 field_0x7;
/* 0x8 */ int field_0x8;
};
inline u32 J2DCalcIndTevStage(J2DIndTevStageInfo info) {
return (info.field_0x8 << 22) | (info.field_0x7 << 21) | (info.field_0x6 << 20) |
(info.field_0x3 << 16) | (info.field_0x5 << 11) | (info.field_0x4 << 8) |
(info.field_0x2 << 4) | (info.field_0x1 << 2) | info.field_0x0;
}
struct J2DTexCoordInfo {
/* 0x0 */ u8 mTexGenType;
/* 0x1 */ u8 mTexGenSrc;
@@ -137,8 +155,12 @@ class J2DTevOrder {
public:
/* 802F1B70 */ J2DTevOrder();
private:
GXChannelID getColor() const { return (GXChannelID)mTevOrderInfo.mColor; }
GXTexMapID getTexMap() const { return (GXTexMapID)mTevOrderInfo.mTexMap; }
GXTexCoordID getTexCoord() const { return (GXTexCoordID)mTevOrderInfo.mTexCoord; }
/* 0x0 */ J2DTevOrderInfo mTevOrderInfo;
/* 0x4 */ u8 field_0x4;
};
struct J2DTevStageInfo {
@@ -163,12 +185,41 @@ struct J2DTevStageInfo {
/* 0x12 */ u8 field_0x12;
};
struct J2DTevSwapModeInfo {
/* 0x0 */ u8 field_0x0;
/* 0x1 */ u8 field_0x1;
/* 0x2 */ u8 field_0x2;
/* 0x3 */ u8 field_0x3;
};
class J2DTevStage {
public:
/* 802F4110 */ J2DTevStage(J2DTevStageInfo const&);
/* 802F1940 */ J2DTevStage();
/* 802F19A8 */ void setTevStageInfo(J2DTevStageInfo const&);
void setTevSwapModeInfo(const J2DTevSwapModeInfo& swapInfo) {
setTexSel(swapInfo.field_0x1);
setRasSel(swapInfo.field_0x0);
}
void setTexSel(u8 param_0) {
field_0x7 = (field_0x7 & ~12) | (param_0 * 4);
}
void setRasSel(u8 param_0) {
field_0x7 = (field_0x7 & ~3) | param_0;
}
void operator=(J2DTevStage const& other) {
field_0x1 = other.field_0x1;
field_0x2 = other.field_0x2;
field_0x3 = other.field_0x3;
field_0x5 = other.field_0x5;
field_0x6 = other.field_0x6;
field_0x7 = other.field_0x7;
}
private:
/* 0x0 */ u8 field_0x0;
/* 0x1 */ u8 field_0x1;
@@ -180,13 +231,6 @@ private:
/* 0x7 */ u8 field_0x7;
};
struct J2DTevSwapModeInfo {
/* 0x0 */ u8 mR;
/* 0x1 */ u8 mG;
/* 0x2 */ u8 mB;
/* 0x3 */ u8 mA;
};
class J2DTevSwapModeTable {
public:
/* 802F1934 */ J2DTevSwapModeTable();
+43 -11
View File
@@ -17,6 +17,29 @@ enum J2DTextBoxHBinding {
/* 0x2 */ HBIND_LEFT
};
struct J2DTbxBlockHeader {
/* 0x00 */ u32 mTag;
/* 0x04 */ s32 mSize;
};
struct J2DTextBoxInfo {
/* 0x00 */ u16 field_0x0;
/* 0x02 */ u16 field_0x2;
/* 0x04 */ u16 mMaterialNum;
/* 0x06 */ s16 mCharSpace;
/* 0x08 */ s16 mLineSpace;
/* 0x0A */ u16 mFontSizeX;
/* 0x0C */ u16 mFontSizeY;
/* 0x0E */ u8 mHBind;
/* 0x0F */ u8 mVBind;
/* 0x10 */ u32 mCharColor;
/* 0x14 */ u32 mGradColor;
/* 0x18 */ u8 mConnected;
/* 0x19 */ char field_0x19[3];
/* 0x1C */ u16 field_0x1c;
/* 0x1E */ u16 field_0x1e;
}; // Size: 0x20
class J2DTextBox : public J2DPane {
public:
struct TFontSize {
@@ -33,13 +56,13 @@ public:
/* 80300C70 */ virtual bool isUsed(ResTIMG const*);
/* 80300BFC */ virtual bool isUsed(ResFONT const*);
/* 80300C90 */ virtual void rewriteAlpha();
/* 80300490 */ virtual void draw(f32, f32, f32, J2DTextBoxHBinding);
/* 803002E8 */ virtual void draw(f32, f32);
/* 80300490 */ virtual void draw(f32, f32, f32, J2DTextBoxHBinding);
/* 80300278 */ virtual void setFont(JUTFont*);
/* 8021C7F4 */ virtual JUTFont* getFont() const;
/* 80254408 */ virtual bool setBlack(JUtility::TColor);
/* 80186C84 */ virtual void setWhite(JUtility::TColor);
/* 8019230C */ virtual void setBlackWhite(JUtility::TColor, JUtility::TColor);
/* 80186C84 */ virtual bool setWhite(JUtility::TColor);
/* 8019230C */ virtual bool setBlackWhite(JUtility::TColor, JUtility::TColor);
/* 801DFA34 */ virtual JUtility::TColor getBlack() const;
/* 801DFA28 */ virtual JUtility::TColor getWhite() const;
/* 8025602C */ virtual bool getMaterial() const;
@@ -63,7 +86,7 @@ public:
} else {
x = 0.0f;
}
field_0x11c = x;
mFontSizeX = x;
f32 y;
if (sizeY > 0.0f) {
@@ -71,13 +94,13 @@ public:
} else {
y = 0.0f;
}
field_0x120 = y;
mFontSizeY = y;
}
void setFontSize(TFontSize size) { setFontSize(size.mSizeX, size.mSizeY); }
void getFontSize(TFontSize& size) const {
size.mSizeX = field_0x11c;
size.mSizeY = field_0x120;
size.mSizeX = mFontSizeX;
size.mSizeY = mFontSizeY;
}
void setCharSpace(f32 space) { mCharSpacing = space; }
@@ -85,7 +108,15 @@ public:
void setLineSpace(f32 space) { mLineSpacing = space; }
f32 getLineSpace() const { return mLineSpacing; }
private:
J2DTextBoxVBinding getVBinding() const {
return (J2DTextBoxVBinding)(mFlags & 3);
}
J2DTextBoxHBinding getHBinding() const {
return (J2DTextBoxHBinding)((mFlags >> 2) & 3);
}
// private:
/* 0x0100 */ JUTFont* mFont;
/* 0x0104 */ JUtility::TColor mCharColor;
/* 0x0108 */ JUtility::TColor mGradientColor;
@@ -93,14 +124,15 @@ private:
/* 0x0110 */ f32 field_0x110;
/* 0x0114 */ f32 mCharSpacing;
/* 0x0118 */ f32 mLineSpacing;
/* 0x011C */ f32 field_0x11c;
/* 0x0120 */ f32 field_0x120;
/* 0x011C */ f32 mFontSizeX;
/* 0x0120 */ f32 mFontSizeY;
/* 0x0124 */ char* mStringPtr;
/* 0x0128 */ JUtility::TColor mWhiteColor;
/* 0x012C */ JUtility::TColor mBlackColor;
/* 0x0130 */ u8 mFlags;
/* 0x0131 */ bool mTextFontOwned;
/* 0x0132 */ s16 mStringLength;
};
/* 0x0134 */ u8 field_0x134[4];
}; // Size: 0x138
#endif /* J2DTEXTBOX_H */
+18 -14
View File
@@ -8,22 +8,26 @@
class J2DTextBoxEx : public J2DTextBox {
public:
enum stage_enum {};
enum stage_enum {
STAGE_0,
STAGE_1,
STAGE_2,
};
/* 803071E4 */ J2DTextBoxEx(J2DPane*, JSURandomInputStream*, u32, J2DMaterial*);
/* 80307E0C */ void setTevOrder(bool);
/* 80307EF0 */ void setTevStage(bool);
/* 80307F94 */ void setStage(J2DTevStage*, J2DTextBoxEx::stage_enum);
/* 803084CC */ void getBlackWhite(JUtility::TColor*, JUtility::TColor*) const;
/* 80308668 */ void isSetBlackWhite(JUtility::TColor, JUtility::TColor) const;
/* 803084CC */ bool getBlackWhite(JUtility::TColor*, JUtility::TColor*) const;
/* 80308668 */ bool isSetBlackWhite(JUtility::TColor, JUtility::TColor) const;
/* 8030751C */ virtual ~J2DTextBoxEx();
/* 803089EC */ virtual void setCullBack(bool);
/* 803087DC */ virtual void setCullBack(_GXCullMode);
/* 803087BC */ virtual void setAlpha(u8);
/* 803075AC */ virtual void drawSelf(f32, f32, f32 (*)[3][4]);
/* 80308A28 */ virtual void isUsed(ResTIMG const*);
/* 80308828 */ virtual void isUsed(ResFONT const*);
/* 80308A28 */ virtual bool isUsed(ResTIMG const*);
/* 80308828 */ virtual bool isUsed(ResFONT const*);
/* 80308810 */ virtual void rewriteAlpha();
/* 80308A4C */ virtual void setAnimation(J2DAnmBase*);
/* 80256044 */ virtual void setAnimation(J2DAnmTransform*);
@@ -33,24 +37,24 @@ public:
/* 80308938 */ virtual void setAnimation(J2DAnmTevRegKey*);
/* 80308964 */ virtual void setAnimation(J2DAnmVisibilityFull*);
/* 80308A48 */ virtual void setAnimation(J2DAnmVtxColor*);
/* 8030896C */ virtual void animationPane(J2DAnmTransform const*);
/* 8030896C */ virtual const J2DAnmTransform* animationPane(J2DAnmTransform const*);
/* 803078AC */ virtual void draw(f32, f32);
/* 80307AF0 */ virtual void draw(f32, f32, f32, J2DTextBoxHBinding);
/* 80307D5C */ virtual void setFont(JUTFont*);
/* 80307DC0 */ virtual JUTFont* getFont() const;
/* 8030823C */ virtual void setBlack(JUtility::TColor);
/* 803082C4 */ virtual void setWhite(JUtility::TColor);
/* 8030834C */ virtual void setBlackWhite(JUtility::TColor, JUtility::TColor);
/* 803086FC */ virtual void getBlack() const;
/* 8030875C */ virtual void getWhite() const;
/* 80256024 */ virtual void getMaterial() const;
/* 8030823C */ virtual bool setBlack(JUtility::TColor);
/* 803082C4 */ virtual bool setWhite(JUtility::TColor);
/* 8030834C */ virtual bool setBlackWhite(JUtility::TColor, JUtility::TColor);
/* 803086FC */ virtual JUtility::TColor getBlack() const;
/* 8030875C */ virtual JUtility::TColor getWhite() const;
/* 80256024 */ virtual bool getMaterial() const;
private:
/* 0x134 */ u8 field_0x134[4];
/* 0x138 */ J2DMaterial* mMaterial;
/* 0x13C */ u16 field_0x13c;
/* 0x13E */ u16 field_0x13e;
/* 0x140 */ u8 field_0x140;
}; // Size: 0x144
/* 0x144 */ J2DAnmVisibilityFull* mVisibilityAnm;
}; // Size: 0x148
#endif /* J2DTEXTBOXEX_H */
+11 -9
View File
@@ -32,17 +32,19 @@ public:
void drawTail() const;
inline void calcZRatio();
void setNonSort() { mSortType = 5; }
void setZSort() { mSortType = 2; }
public:
J3DPacket** mpBuf;
u32 mBufSize;
u32 mDrawType;
u32 mSortType;
float mZNear;
float mZFar;
float mZRatio;
Mtx* mpZMtx;
J3DPacket* mpCallBackPacket;
/* 0x00 */ J3DPacket** mpBuf;
/* 0x04 */ u32 mBufSize;
/* 0x08 */ u32 mDrawType;
/* 0x0C */ u32 mSortType;
/* 0x10 */ f32 mZNear;
/* 0x14 */ f32 mZFar;
/* 0x18 */ f32 mZRatio;
/* 0x1C */ Mtx* mpZMtx;
/* 0x20 */ J3DPacket* mpCallBackPacket;
static u8 sortFuncTable[72];
static u8 drawFuncTable[24];
@@ -2,5 +2,13 @@
#define JAISOUNDSTARTER_H
#include "dolphin/types.h"
#include "JSystem/JAudio2/JAISound.h"
struct JAISoundStarter {
/* 802A2F6C */ JAISoundStarter(bool);
/* 802A2FEC */ void startLevelSound(JAISoundID, JAISoundHandle*, JGeometry::TVec3<f32> const*);
virtual ~JAISoundStarter();
};
#endif /* JAISOUNDSTARTER_H */
+5 -1
View File
@@ -23,7 +23,7 @@ struct TParseData {
const void* getRaw() const { return raw; }
void setRaw(const void* p) { raw = p; }
const void* raw;
/* 0x0 */ const void* raw;
};
template <int T>
@@ -46,6 +46,10 @@ struct TParse_header_block {
virtual bool parseBlock_next(const void** ppData_inout, u32* puData_out, u32 arg2) = 0;
bool parse_next(const void** ppData_inout, u32 a2);
bool parse(const void* ppData_inout, u32 a2) {
return parse_next(&ppData_inout, a2);
}
};
} // namespace binary
+3 -3
View File
@@ -10,9 +10,9 @@ struct TLinkListNode {
mPrev = NULL;
}
TLinkListNode* mNext;
TLinkListNode* mPrev;
};
/* 0x0 */ TLinkListNode* mNext;
/* 0x4 */ TLinkListNode* mPrev;
}; // Size: 0x8
struct TNodeLinkList {
struct iterator {
+42 -40
View File
@@ -10,11 +10,13 @@ public:
friend class JKRExpHeap;
public:
void initiate(CMemBlock*, CMemBlock*, u32, u8, u8);
JKRExpHeap::CMemBlock* allocFore(u32, u8, u8, u8, u8);
JKRExpHeap::CMemBlock* allocBack(u32, u8, u8, u8, u8);
int free(JKRExpHeap*);
static CMemBlock* getHeapBlock(void*);
void initiate(CMemBlock* prev, CMemBlock* next, u32 size, u8 groupId, u8 alignment);
JKRExpHeap::CMemBlock* allocFore(u32 size, u8 groupId1, u8 alignment1, u8 groupId2,
u8 alignment2);
JKRExpHeap::CMemBlock* allocBack(u32 size, u8 groupId1, u8 alignment1, u8 groupId2,
u8 alignment2);
int free(JKRExpHeap* heap);
static CMemBlock* getHeapBlock(void* ptr);
void newGroupId(u8 groupId) { this->mGroupId = groupId; }
bool isValid() const { return this->mMagic == 'HM'; }
@@ -38,46 +40,46 @@ public:
friend class CMemBlock;
protected:
JKRExpHeap(void*, u32, JKRHeap*, bool);
JKRExpHeap(void* data, u32 size, JKRHeap* parent, bool errorFlag);
virtual ~JKRExpHeap();
void* allocFromHead(u32, int);
void* allocFromHead(u32);
void* allocFromTail(u32, int);
void* allocFromTail(u32);
void appendUsedList(CMemBlock*);
void setFreeBlock(CMemBlock*, CMemBlock*, CMemBlock*);
void removeFreeBlock(CMemBlock*);
void removeUsedBlock(CMemBlock*);
void recycleFreeBlock(CMemBlock*);
void joinTwoBlocks(CMemBlock*);
void* allocFromHead(u32 size, int align);
void* allocFromHead(u32 size);
void* allocFromTail(u32 size, int align);
void* allocFromTail(u32 size);
void appendUsedList(CMemBlock* newblock);
void setFreeBlock(CMemBlock* block, CMemBlock* prev, CMemBlock* next);
void removeFreeBlock(CMemBlock* block);
void removeUsedBlock(CMemBlock* block);
void recycleFreeBlock(CMemBlock* block);
void joinTwoBlocks(CMemBlock* block);
public:
s32 getUsedSize(u8) const;
s32 getUsedSize(u8 groupId) const;
s32 getTotalUsedSize(void) const;
CMemBlock* getHeadUsedList() const { return mHeadUsedList; }
public:
/* vt[04] */ virtual u32 getHeapType(); /* override */
/* vt[05] */ virtual bool check(); /* override */
/* vt[06] */ virtual bool dump_sort(); /* override */
/* vt[07] */ virtual bool dump(); /* override */
/* vt[08] */ virtual void do_destroy(); /* override */
/* vt[09] */ virtual void* do_alloc(u32 size, int alignment); /* override */
/* vt[10] */ virtual void do_free(void* ptr); /* override */
/* vt[11] */ virtual void do_freeAll(); /* override */
/* vt[12] */ virtual void do_freeTail(); /* override */
/* vt[13] */ virtual void do_fillFreeArea(); /* override */
/* vt[14] */ virtual s32 do_resize(void* ptr, u32 size); /* override */
/* vt[15] */ virtual s32 do_getSize(void* ptr); /* override */
/* vt[16] */ virtual s32 do_getFreeSize(); /* override */
/* vt[17] */ virtual void* do_getMaxFreeBlock(); /* override */
/* vt[18] */ virtual s32 do_getTotalFreeSize(); /* override */
/* vt[19] */ virtual s32 do_changeGroupID(u8 newGroupID); /* override */
/* vt[20] */ virtual u8 do_getCurrentGroupId(); /* override */
/* vt[21] */ virtual void state_register(JKRHeap::TState*, u32) const; /* override */
/* vt[22] */ virtual bool state_compare(JKRHeap::TState const&,
JKRHeap::TState const&) const; /* override */
/* vt[04] */ virtual u32 getHeapType(); /* override */
/* vt[05] */ virtual bool check(); /* override */
/* vt[06] */ virtual bool dump_sort(); /* override */
/* vt[07] */ virtual bool dump(); /* override */
/* vt[08] */ virtual void do_destroy(); /* override */
/* vt[09] */ virtual void* do_alloc(u32 size, int alignment); /* override */
/* vt[10] */ virtual void do_free(void* ptr); /* override */
/* vt[11] */ virtual void do_freeAll(); /* override */
/* vt[12] */ virtual void do_freeTail(); /* override */
/* vt[13] */ virtual void do_fillFreeArea(); /* override */
/* vt[14] */ virtual s32 do_resize(void* ptr, u32 size); /* override */
/* vt[15] */ virtual s32 do_getSize(void* ptr); /* override */
/* vt[16] */ virtual s32 do_getFreeSize(); /* override */
/* vt[17] */ virtual void* do_getMaxFreeBlock(); /* override */
/* vt[18] */ virtual s32 do_getTotalFreeSize(); /* override */
/* vt[19] */ virtual s32 do_changeGroupID(u8 newGroupID); /* override */
/* vt[20] */ virtual u8 do_getCurrentGroupId(); /* override */
/* vt[21] */ virtual void state_register(JKRHeap::TState* p, u32 id) const; /* override */
/* vt[22] */ virtual bool state_compare(JKRHeap::TState const& r1,
JKRHeap::TState const& r2) const; /* override */
u8 field_0x6c;
u8 mCurrentGroupId;
@@ -92,9 +94,9 @@ private:
CMemBlock* mTailUsedList;
public:
static JKRExpHeap* createRoot(int, bool);
static JKRExpHeap* create(u32, JKRHeap*, bool);
static JKRExpHeap* create(void*, u32, JKRHeap*, bool);
static JKRExpHeap* createRoot(int maxHeaps, bool errorFlag);
static JKRExpHeap* create(u32 size, JKRHeap* parent, bool errorFlag);
static JKRExpHeap* create(void* ptr, u32 size, JKRHeap* parent, bool errorFlag);
};
inline JKRExpHeap* JKRCreateExpHeap(u32 size, JKRHeap* parent, bool errorFlag) {
+6 -6
View File
@@ -29,7 +29,7 @@ public:
};
public:
JKRHeap(void*, u32, JKRHeap*, bool);
JKRHeap(void* data, u32 size, JKRHeap* parent, bool errorFlag);
virtual ~JKRHeap();
JKRHeap* becomeSystemHeap();
@@ -77,9 +77,9 @@ public:
/* vt[18] */ virtual s32 do_getTotalFreeSize() = 0;
/* vt[19] */ virtual s32 do_changeGroupID(u8 newGroupID);
/* vt[20] */ virtual u8 do_getCurrentGroupId();
/* vt[21] */ virtual void state_register(JKRHeap::TState*, unsigned long) const;
/* vt[22] */ virtual bool state_compare(JKRHeap::TState const&, JKRHeap::TState const&) const;
/* vt[23] */ virtual void state_dump(JKRHeap::TState const&) const;
/* vt[21] */ virtual void state_register(JKRHeap::TState* p, u32 id) const;
/* vt[22] */ virtual bool state_compare(JKRHeap::TState const& r1, JKRHeap::TState const& r2) const;
/* vt[23] */ virtual void state_dump(JKRHeap::TState const& p) const;
void setDebugFill(bool debugFill) { mDebugFill = debugFill; }
bool getDebugFill() const { return mDebugFill; }
@@ -123,7 +123,7 @@ protected:
/* 0x6A */ u8 padding_0x6a[2];
public:
static bool initArena(char**, u32*, int);
static bool initArena(char** memory, u32* size, int maxHeaps);
static void* alloc(u32 size, int alignment, JKRHeap* heap);
static void free(void* ptr, JKRHeap* heap);
static s32 resize(void* ptr, u32 size, JKRHeap* heap);
@@ -212,7 +212,7 @@ inline void JKRFreeToSysHeap(void* ptr) {
systemHeap->free(ptr);
}
inline void JKRFree(void* ptr) {
inline void i_JKRFree(void* ptr) {
JKRHeap::free(ptr, NULL);
}
+3 -3
View File
@@ -1,5 +1,5 @@
#ifndef CONTROL_H
#define CONTROL_H
#ifndef JMESSAGE_CONTROL_H
#define JMESSAGE_CONTROL_H
#include "dolphin/types.h"
#include "JSystem/JMessage/processor.h"
@@ -36,4 +36,4 @@ struct jmessage_tControl : public JMessage::TControl {
/* 80039B0C */ virtual ~jmessage_tControl();
};
#endif /* CONTROL_H */
#endif /* JMESSAGE_CONTROL_H */
+3 -3
View File
@@ -1,5 +1,5 @@
#ifndef DATA_H
#define DATA_H
#ifndef JMESSAGE_DATA_H
#define JMESSAGE_DATA_H
#include "dolphin/types.h"
@@ -9,4 +9,4 @@ struct data {
};
}; // namespace JMessage
#endif /* DATA_H */
#endif /* JMESSAGE_DATA_H */
+3 -3
View File
@@ -1,5 +1,5 @@
#ifndef LOCALE_H
#define LOCALE_H
#ifndef JMESSAGE_LOCALE_H
#define JMESSAGE_LOCALE_H
#include "dolphin/types.h"
@@ -12,4 +12,4 @@ struct locale {
};
}; // namespace JMessage
#endif /* LOCALE_H */
#endif /* JMESSAGE_LOCALE_H */
+3 -3
View File
@@ -1,5 +1,5 @@
#ifndef PROCESSOR_H
#define PROCESSOR_H
#ifndef JMESSAGE_PROCESSOR_H
#define JMESSAGE_PROCESSOR_H
#include "SSystem/SComponent/c_xyz.h"
#include "dolphin/types.h"
@@ -298,4 +298,4 @@ struct jmessage_tRenderingProcessor : public JMessage::TRenderingProcessor {
/* 8022D74C */ virtual void do_tag(u32, void const*, u32);
};
#endif /* PROCESSOR_H */
#endif /* JMESSAGE_PROCESSOR_H */
+3 -3
View File
@@ -1,5 +1,5 @@
#ifndef RESOURCE_H
#define RESOURCE_H
#ifndef JMESSAGE_RESOURCE_H
#define JMESSAGE_RESOURCE_H
#include "dolphin/types.h"
#include "JSystem/JGadget/linklist.h"
@@ -34,4 +34,4 @@ struct TParse {
};
}; // namespace JMessage
#endif /* RESOURCE_H */
#endif /* JMESSAGE_RESOURCE_H */
+28
View File
@@ -2,5 +2,33 @@
#define JSGACTOR_H
#include "dolphin/types.h"
#include "JSystem/JStage/JSGObject.h"
namespace JStage {
struct TActor : public TObject {
/* 80280A48 */ virtual ~TActor() = 0;
/* 80280AA8 */ virtual s32 JSGFGetType() const;
/* 80280AB0 */ virtual void JSGGetTranslation(Vec*) const;
/* 80280AB4 */ virtual void JSGSetTranslation(Vec const&);
/* 80280AB8 */ virtual void JSGGetScaling(Vec*) const;
/* 80280ABC */ virtual void JSGSetScaling(Vec const&);
/* 80280AC0 */ virtual void JSGGetRotation(Vec*) const;
/* 80280AC4 */ virtual void JSGSetRotation(Vec const&);
/* 80280AC8 */ virtual s32 JSGGetShape() const;
/* 80280AD0 */ virtual void JSGSetShape(u32);
/* 80280AD4 */ virtual s32 JSGGetAnimation() const;
/* 80280ADC */ virtual void JSGSetAnimation(u32);
/* 80280AE0 */ virtual f32 JSGGetAnimationFrame() const;
/* 80280AE8 */ virtual void JSGSetAnimationFrame(f32);
/* 80280AEC */ virtual f32 JSGGetAnimationFrameMax() const;
/* 80280AF4 */ virtual f32 JSGGetAnimationTransition() const;
/* 80280AFC */ virtual void JSGSetAnimationTransition(f32);
/* 80280B00 */ virtual s32 JSGGetTextureAnimation() const;
/* 80280B08 */ virtual void JSGSetTextureAnimation(u32);
/* 80280B0C */ virtual f32 JSGGetTextureAnimationFrame() const;
/* 80280B14 */ virtual void JSGSetTextureAnimationFrame(f32);
/* 80280B18 */ virtual f32 JSGGetTextureAnimationFrameMax() const;
};
};
#endif /* JSGACTOR_H */
+11 -1
View File
@@ -1,6 +1,16 @@
#ifndef JSGAMBIENTLIGHT_H
#define JSGAMBIENTLIGHT_H
#include "dolphin/types.h"
#include "JSystem/JStage/JSGObject.h"
#include "dolphin/gx/GX.h"
namespace JStage {
struct TAmbientLight : public TObject {
/* 80280B20 */ virtual ~TAmbientLight() = 0;
/* 80280B80 */ virtual s32 JSGFGetType() const;
/* 80280B88 */ virtual GXColor JSGGetColor() const;
/* 80280B9C */ virtual void JSGSetColor(GXColor);
};
};
#endif /* JSGAMBIENTLIGHT_H */
+34 -1
View File
@@ -1,6 +1,39 @@
#ifndef JSGCAMERA_H
#define JSGCAMERA_H
#include "dolphin/types.h"
#include "JSystem/JStage/JSGObject.h"
namespace JStage {
struct TECameraProjection {};
struct TECameraView {};
struct TCamera : public TObject {
/* 80280BA0 */ virtual ~TCamera() = 0;
/* 80280C00 */ virtual s32 JSGFGetType() const;
/* 80280C08 */ virtual bool JSGGetProjectionType() const;
/* 80280C10 */ virtual void JSGSetProjectionType(JStage::TECameraProjection);
/* 80280C14 */ virtual f32 JSGGetProjectionNear() const;
/* 80280C1C */ virtual void JSGSetProjectionNear(f32);
/* 80280C20 */ virtual f32 JSGGetProjectionFar() const;
/* 80280C2C */ virtual void JSGSetProjectionFar(f32);
/* 80280C30 */ virtual f32 JSGGetProjectionFovy() const;
/* 80280C38 */ virtual void JSGSetProjectionFovy(f32);
/* 80280C3C */ virtual f32 JSGGetProjectionAspect() const;
/* 80280C44 */ virtual void JSGSetProjectionAspect(f32);
/* 80280C48 */ virtual void JSGGetProjectionField(f32*) const;
/* 80280C4C */ virtual void JSGSetProjectionField(f32 const*);
/* 80280C50 */ virtual bool JSGGetViewType() const;
/* 80280C58 */ virtual void JSGSetViewType(JStage::TECameraView);
/* 80280C5C */ virtual void JSGGetViewPosition(Vec*) const;
/* 80280C60 */ virtual void JSGSetViewPosition(Vec const&);
/* 80280C64 */ virtual void JSGGetViewUpVector(Vec*) const;
/* 80280C68 */ virtual void JSGSetViewUpVector(Vec const&);
/* 80280C6C */ virtual void JSGGetViewTargetPosition(Vec*) const;
/* 80280C70 */ virtual void JSGSetViewTargetPosition(Vec const&);
/* 80280C74 */ virtual f32 JSGGetViewRoll() const;
/* 80280C7C */ virtual void JSGSetViewRoll(f32);
};
};
#endif /* JSGCAMERA_H */
+17 -1
View File
@@ -1,6 +1,22 @@
#ifndef JSGFOG_H
#define JSGFOG_H
#include "dolphin/types.h"
#include "JSystem/JStage/JSGObject.h"
#include "dolphin/gx/GX.h"
namespace JStage {
struct TFog : public TObject {
/* 80280C80 */ virtual ~TFog() = 0;
/* 80280CE0 */ virtual s32 JSGFGetType() const;
/* 80280CE8 */ virtual bool JSGGetFogFunction() const;
/* 80280CF0 */ virtual void JSGSetFogFunction(GXFogType);
/* 80280CF4 */ virtual f32 JSGGetStartZ() const;
/* 80280CFC */ virtual void JSGSetStartZ(f32);
/* 80280D00 */ virtual f32 JSGGetEndZ() const;
/* 80280D0C */ virtual void JSGSetEndZ(f32);
/* 80280D10 */ virtual GXColor JSGGetColor() const;
/* 80280D24 */ virtual void JSGSetColor(GXColor);
};
};
#endif /* JSGFOG_H */
+23 -1
View File
@@ -1,6 +1,28 @@
#ifndef JSGLIGHT_H
#define JSGLIGHT_H
#include "dolphin/types.h"
#include "JSystem/JStage/JSGObject.h"
#include "dolphin/gx/GX.h"
namespace JStage {
enum TELight {};
struct TLight : public TObject {
/* 80280D28 */ virtual ~TLight() = 0;
/* 80280D88 */ virtual s32 JSGFGetType() const;
/* 80280D90 */ virtual bool JSGGetLightType() const;
/* 80280D98 */ virtual void JSGSetLightType(JStage::TELight);
/* 80280DC4 */ virtual void JSGGetPosition(Vec*) const;
/* 80280DC8 */ virtual void JSGSetPosition(Vec const&);
/* 80280D9C */ virtual GXColor JSGGetColor() const;
/* 80280DB0 */ virtual void JSGSetColor(GXColor);
/* 80280DB4 */ virtual void JSGGetDistanceAttenuation(f32*, f32*, GXDistAttnFn*) const;
/* 80280DB8 */ virtual void JSGSetDistanceAttenuation(f32, f32, GXDistAttnFn);
/* 80280DBC */ virtual void JSGGetAngleAttenuation(f32*, GXSpotFn*) const;
/* 80280DC0 */ virtual void JSGSetAngleAttenuation(f32, GXSpotFn);
/* 80280DCC */ virtual void JSGGetDirection(Vec*) const;
/* 80280DD0 */ virtual void JSGSetDirection(Vec const&);
};
};
#endif /* JSGLIGHT_H */
+19
View File
@@ -2,5 +2,24 @@
#define JSGOBJECT_H
#include "dolphin/types.h"
#include "dolphin/mtx/mtxvec.h"
namespace JStage {
struct TObject {
/* 80280DD4 */ virtual ~TObject() = 0;
virtual s32 JSGFGetType() const = 0;
/* 80280E1C */ virtual bool JSGGetName() const;
/* 80280E24 */ virtual void JSGUpdate();
/* 80280E28 */ virtual bool JSGGetFlag() const;
/* 80280E30 */ virtual void JSGSetFlag(u32);
/* 80280E34 */ virtual bool JSGGetData(u32, void*, u32) const;
/* 80280E3C */ virtual void JSGSetData(u32, void const*, u32);
/* 80280E40 */ virtual void JSGGetParent(JStage::TObject**, u32*) const;
/* 80280E44 */ virtual void JSGSetParent(JStage::TObject*, u32);
/* 80280E48 */ virtual void JSGSetRelation(bool, JStage::TObject*, u32);
/* 80280E4C */ virtual s32 JSGFindNodeID(char const*) const;
/* 80280E54 */ virtual int JSGGetNodeTransformation(u32, f32 (*)[4]) const;
};
};
#endif /* JSGOBJECT_H */
+23
View File
@@ -2,5 +2,28 @@
#define JSGSYSTEM_H
#include "dolphin/types.h"
#include "JSystem/JStage/JSGObject.h"
namespace JStage {
enum TEObject {
/* 0x0 */ TOBJ_ACTOR_UNK,
/* 0x1 */ TOBJ_UNK1,
/* 0x2 */ TOBJ_ACTOR,
/* 0x3 */ TOBJ_CAMERA,
/* 0x4 */ TOBJ_AMBIENT,
/* 0x5 */ TOBJ_LIGHT,
/* 0x6 */ TOBJ_FOG,
};
struct TSystem : public TObject {
/* 80280E90 */ virtual ~TSystem() = 0;
/* 80280EF0 */ virtual s32 JSGFGetType() const;
/* 80280EF8 */ virtual bool JSGFindObject(JStage::TObject**, char const*, JStage::TEObject) const;
/* 80280F00 */ virtual bool JSGCreateObject(char const*, JStage::TEObject, u32);
/* 80280F08 */ virtual void JSGDestroyObject(JStage::TObject*);
/* 80280F0C */ virtual bool JSGGetSystemData(u32);
/* 80280F14 */ virtual void JSGSetSystemData(u32, u32);
};
};
#endif /* JSGSYSTEM_H */
+60
View File
@@ -2,5 +2,65 @@
#define CTB_H
#include "dolphin/types.h"
#include "JSystem/JGadget/binary.h"
#include "JSystem/JGadget/linklist.h"
#include "JSystem/JStudio/JStudio/object-id.h"
namespace JStudio {
namespace ctb {
struct TObject : public object::TObject_ID {
/* 80280F18 */ virtual ~TObject() = 0;
/* 0x08 vtable */
/* 0x0C */ JGadget::TLinkListNode field_0xc;
/* 0x14 */ void* pData_;
};
struct data {
struct TParse_TBlock : public JGadget::binary::TParseData_aligned<4> {};
static u32 ga4cSignature;
};
struct TObject_TxyzRy : public TObject {
/* 80280F60 */ TObject_TxyzRy(JStudio::ctb::data::TParse_TBlock const&);
/* 80281554 */ virtual ~TObject_TxyzRy();
/* 80280FBC */ virtual bool getScheme() const;
};
struct TFactory {
TFactory() {}
/* 80281274 */ virtual ~TFactory();
/* 802812BC */ virtual void create(JStudio::ctb::data::TParse_TBlock const&);
/* 80281320 */ virtual void destroy(JStudio::ctb::TObject*);
};
struct TControl {
/* 80280FC4 */ TControl();
/* 80280FF4 */ virtual ~TControl();
/* 80281060 */ void appendObject(JStudio::ctb::TObject*);
/* 802810AC */ void removeObject(JStudio::ctb::TObject*);
/* 802810DC */ void destroyObject(JStudio::ctb::TObject*);
/* 8028112C */ void destroyObject_all();
/* 80281190 */ void getObject(void const*, u32);
/* 80281230 */ void getObject_index(u32);
/* 0x4 */ TFactory* pFactory_;
/* 0x8 */ JGadget::TLinkList<TObject, 2> mList;
};
struct TParse : public JGadget::binary::TParse_header_block {
/* 8028135C */ TParse(JStudio::ctb::TControl*);
/* 8028137C */ virtual ~TParse();
/* 802813DC */ virtual void parseHeader_next(void const**, u32*, u32);
/* 80281470 */ virtual void parseBlock_next(void const**, u32*, u32);
/* 0x4 */ TControl* pControl_;
};
}; // namespace ctb
}; // namespace JStudio
#endif /* CTB_H */
+1 -1
View File
@@ -10,7 +10,7 @@ namespace JStudio {
namespace fvb {
namespace data {
extern f32 ga4cSignature[1 + 1 /* padding */];
extern const char ga4cSignature[4];
const int PARAGRAPH_DATA = 1;
+5 -4
View File
@@ -49,8 +49,9 @@ private:
class TFactory {
public:
/* 80284918 */ virtual ~TFactory();
TFactory() {}
/* 80284918 */ virtual ~TFactory();
/* 80284960 */ virtual TObject* create(JStudio::fvb::data::TParse_TBlock const&);
/* 80284AA0 */ virtual void destroy(JStudio::fvb::TObject*);
};
@@ -70,9 +71,9 @@ public:
TFactory* getFactory() const { return pFactory; }
private:
TFactory* pFactory;
JGadget::TLinkList<TObject, 12> ocObject_;
};
/* 0x4 */ TFactory* pFactory;
/* 0x8 */ JGadget::TLinkList<TObject, 12> ocObject_;
}; // Size: 0x14
class TObject_composite : public TObject {
public:
@@ -1,6 +1,96 @@
#ifndef JSTUDIO_CONTROL_H
#define JSTUDIO_CONTROL_H
#include "dolphin/types.h"
#include "JSystem/JGadget/binary.h"
#include "JSystem/JStudio/JStudio/fvb.h"
#include "JSystem/JStudio/JStudio/stb.h"
#include "JSystem/JStudio/JStudio/ctb.h"
#include "dolphin/gx/GX.h"
namespace JStudio {
struct TCreateObject {
TCreateObject() {}
/* 80285488 */ virtual ~TCreateObject() = 0;
/* 0x4 */ JGadget::TLinkListNode mNode;
}; // Size: 0xC
struct TFactory : public stb::TFactory {
TFactory() {}
/* 802854D0 */ virtual ~TFactory();
/* 802855AC */ virtual void create(JStudio::stb::data::TParse_TBlock_object const&);
/* 80285560 */ void appendCreateObject(JStudio::TCreateObject*);
/* 0x04 */ JGadget::TLinkList<TCreateObject, -4> mList;
/* 0x10 */ fvb::TFactory fvb_Factory;
/* 0x14 */ ctb::TFactory ctb_Factory;
};
class TControl : public stb::TControl {
public:
struct TTransform_translation_rotation_scaling {};
struct TTransform_position {};
/* 80285114 */ TControl();
/* 802851AC */ virtual ~TControl();
/* 80285228 */ void setFactory(JStudio::TFactory*);
/* 80285250 */ void transformOnSet_setOrigin_TxyzRy(Vec const&, f32);
/* 802852D0 */ void transformOnGet_setOrigin_TxyzRy(Vec const&, f32);
/* 80285368 */ void transform_setOrigin_ctb(JStudio::ctb::TObject const&);
/* 8028543C */ void transform_setOrigin_ctb_index(u32);
void stb_destroyObject_all() { stb::TControl::destroyObject_all(); }
void fvb_destroyObject_all() { fvb_Control.destroyObject_all(); }
void ctb_destroyObject_all() { ctb_Control.destroyObject_all(); }
void destroyObject_all() {
stb_destroyObject_all();
fvb_destroyObject_all();
ctb_destroyObject_all();
}
void transformOnSet_enable(bool param_0) { mTransformOnSet = param_0; }
void transformOnGet_enable(bool param_0) { mTransformOnGet = param_0; }
void transform_enable(bool param_0) {
transformOnSet_enable(param_0);
transformOnGet_enable(param_0);
}
void transform_setOrigin_TxyzRy(const Vec& xyz, f32 rotY) {
transformOnSet_setOrigin_TxyzRy(xyz, rotY);
transformOnGet_setOrigin_TxyzRy(xyz, rotY);
}
void transform_setOrigin(const Vec& xyz, f32 rotY) {
transform_setOrigin_TxyzRy(xyz, rotY);
}
/* 0x58 */ f64 mSecondPerFrame;
/* 0x60 */ fvb::TControl fvb_Control;
/* 0x74 */ ctb::TControl ctb_Control;
/* 0x88 */ bool mTransformOnSet;
/* 0x89 */ bool mTransformOnGet;
/* 0x8C */ Vec field_0x8c;
/* 0x98 */ Vec field_0x98;
/* 0xA4 */ f32 mTransformOnSet_RotationY;
/* 0xA8 */ u8 field_0xa8[4];
/* 0xAC */ Mtx mTransformOnSet_Matrix;
/* 0xDC */ Mtx mTransformOnGet_Matrix;
};
struct TParse : public stb::TParse {
/* 8028566C */ TParse(JStudio::TControl*);
/* 80285844 */ void parseBlock_block_fvb_(JStudio::stb::data::TParse_TBlock const&, u32);
/* 802858F0 */ void parseBlock_block_ctb_(JStudio::stb::data::TParse_TBlock const&, u32);
/* 802856A8 */ virtual ~TParse();
/* 80285708 */ virtual void parseHeader(JStudio::stb::data::TParse_THeader const&, u32);
/* 802857E4 */ virtual void parseBlock_block(JStudio::stb::data::TParse_TBlock const&, u32);
};
}; // namespace JStudio
#endif /* JSTUDIO_CONTROL_H */
@@ -3,4 +3,10 @@
#include "dolphin/types.h"
namespace JStudio {
namespace data {
extern const char ga8cSignature[8];
} // namespace data
} // namespace JStudio
#endif /* JSTUDIO_DATA_H */
@@ -2,5 +2,14 @@
#define JSTUDIO_MATH_H
#include "dolphin/types.h"
#include "dolphin/mtx/mtxvec.h"
namespace JStudio {
namespace math {
/* 802859DC */ void getRotation_xyz(MtxP, f32, f32, f32);
/* 80285B44 */ void getTransformation_SRxyzT(MtxP, Vec const&, Vec const&, Vec const&);
/* 80285BCC */ void getFromTransformation_SRxyzT(Vec*, Vec*, Vec*, CMtxP);
};
}; // namespace JStudio
#endif /* JSTUDIO_MATH_H */
@@ -1,6 +1,237 @@
#ifndef JSTUDIO_OBJECT_H
#define JSTUDIO_OBJECT_H
#include "dolphin/types.h"
#include "JSystem/JStudio/JStudio/fvb.h"
#include "JSystem/JStudio/JStudio/stb.h"
#include "JSystem/JStudio/JStudio/ctb.h"
#include "JSystem/JStudio/JStudio/jstudio-control.h"
#include "dolphin/gx/GX.h"
namespace JStudio {
namespace data {
struct TEOperationData {};
};
struct TAdaptor;
struct TVariableValue {
struct TOutput {
/* 80285E0C */ ~TOutput();
};
struct TOutput_none_ {
/* 80285F6C */ ~TOutput_none_();
/* 80285FCC */ void operator()(f32, JStudio::TAdaptor*) const;
};
/* 80285E54 */ void update(f64, JStudio::TAdaptor*);
/* 80285EB8 */ void update_immediate_(JStudio::TVariableValue*, f64);
/* 80285ECC */ void update_time_(JStudio::TVariableValue*, f64);
/* 80285F08 */ void update_functionValue_(JStudio::TVariableValue*, f64);
/* 8028B568 */ TVariableValue();
static u8 soOutput_none_[4 + 4 /* padding */];
/* 0x00 */ f32 mValue;
/* 0x04 */ u32 field_0x4;
/* 0x08 */ void (*field_0x8)(TVariableValue*, double);
/* 0x0C */ TFunctionValue* field_0xc;
/* 0x10 */ TOutput* pOutput_;
}; // Size: 0x14
class TObject : public stb::TObject {
public:
/* 80286864 */ TObject(JStudio::stb::data::TParse_TBlock_object const&, JStudio::TAdaptor*);
/* 80286734 */ void forward_value(u32);
/* 802866B0 */ virtual ~TObject() = 0;
/* 8028679C */ virtual void do_begin();
/* 802867D4 */ virtual void do_end();
virtual void do_paragraph(u32, void const*, u32) = 0;
/* 8028680C */ virtual void do_wait(u32);
/* 8028682C */ virtual void do_data(void const*, u32, void const*, u32);
/* 0x34 */ TAdaptor* mpAdaptor;
};
struct TAdaptor {
struct TSetVariableValue_immediate {};
/* 80285FD0 */ virtual ~TAdaptor() = 0;
/* 80286018 */ virtual void adaptor_do_prepare();
/* 8028601C */ virtual void adaptor_do_begin();
/* 80286020 */ virtual void adaptor_do_end();
/* 80286024 */ virtual void adaptor_do_update(u32);
/* 80286028 */ virtual void adaptor_do_data(void const*, u32, void const*, u32);
/* 8028602C */ void adaptor_setVariableValue(JStudio::TControl*, u32,
JStudio::data::TEOperationData, void const*, u32);
/* 802860CC */ void adaptor_setVariableValue_n(JStudio::TControl*, u32 const*, u32,
JStudio::data::TEOperationData, void const*,
u32);
/* 802861C0 */ void
adaptor_setVariableValue_immediate(JStudio::TAdaptor::TSetVariableValue_immediate const*);
/* 80286204 */ void adaptor_setVariableValue_Vec(u32 const*, Vec const&);
/* 80286274 */ void adaptor_getVariableValue_Vec(Vec*, u32 const*) const;
/* 802862AC */ void adaptor_setVariableValue_GXColor(u32 const*, GXColor const&);
/* 8028638C */ void adaptor_getVariableValue_GXColor(GXColor*, u32 const*) const;
/* 802864D8 */ void adaptor_updateVariableValue(JStudio::TControl*, u32);
/* 8028656C */ void adaptor_setVariableValue_VOID_(JStudio::TAdaptor*, JStudio::TControl*, u32,
void const*, u32);
/* 80286584 */ void adaptor_setVariableValue_IMMEDIATE_(JStudio::TAdaptor*, JStudio::TControl*,
u32, void const*, u32);
/* 802865B0 */ void adaptor_setVariableValue_TIME_(JStudio::TAdaptor*, JStudio::TControl*, u32,
void const*, u32);
/* 802865DC */ void adaptor_setVariableValue_FVR_NAME_(JStudio::TAdaptor*, JStudio::TControl*,
u32, void const*, u32);
/* 80286648 */ void adaptor_setVariableValue_FVR_INDEX_(JStudio::TAdaptor*, JStudio::TControl*,
u32, void const*, u32);
/* 0x4 */ TObject* pObject_;
/* 0x8 */ TVariableValue* pValue_;
/* 0xC */ u32 u;
};
struct TAdaptor_actor : public TAdaptor {
/* 802868B0 */ virtual ~TAdaptor_actor() = 0;
/* 0x10 */ TVariableValue mValue[14];
static u8 const sauVariableValue_3_TRANSLATION_XYZ[12];
static u8 const sauVariableValue_3_ROTATION_XYZ[12];
static u8 const sauVariableValue_3_SCALING_XYZ[12];
}; // Size: 0x128
struct TObject_actor : public TObject {
/* 80286910 */ TObject_actor(JStudio::stb::data::TParse_TBlock_object const&,
JStudio::TAdaptor_actor*);
/* 802881A4 */ virtual ~TObject_actor();
/* 8028694C */ virtual void do_paragraph(u32, void const*, u32);
};
struct TAdaptor_ambientLight : public TAdaptor {
/* 80286C9C */ virtual ~TAdaptor_ambientLight() = 0;
/* 0x10 */ TVariableValue mValue[4];
static u8 const sauVariableValue_3_COLOR_RGB[12];
static u8 const sauVariableValue_4_COLOR_RGBA[16];
};
struct TObject_ambientLight : public TObject {
/* 80286CFC */ TObject_ambientLight(JStudio::stb::data::TParse_TBlock_object const&,
JStudio::TAdaptor_ambientLight*);
/* 80288144 */ virtual ~TObject_ambientLight();
/* 80286D38 */ virtual void do_paragraph(u32, void const*, u32);
};
struct TAdaptor_camera : public TAdaptor {
/* 80286E1C */ virtual ~TAdaptor_camera() = 0;
/* 0x10 */ TVariableValue mValue[12];
static u8 const sauVariableValue_3_POSITION_XYZ[12];
static u8 const sauVariableValue_3_TARGET_POSITION_XYZ[12];
static u8 sauVariableValue_2_DISTANCE_NEAR_FAR[8];
};
struct TObject_camera : public TObject {
/* 80286E7C */ TObject_camera(JStudio::stb::data::TParse_TBlock_object const&,
JStudio::TAdaptor_camera*);
/* 802880E4 */ virtual ~TObject_camera();
/* 80286EB8 */ virtual void do_paragraph(u32, void const*, u32);
};
struct TAdaptor_fog : public TAdaptor {
/* 8028717C */ virtual ~TAdaptor_fog() = 0;
/* 0x10 */ TVariableValue mValue[6];
static u8 const sauVariableValue_3_COLOR_RGB[12];
static u8 const sauVariableValue_4_COLOR_RGBA[16];
static u8 sauVariableValue_2_RANGE_BEGIN_END[8];
};
struct TObject_fog : public TObject {
/* 802871DC */ TObject_fog(JStudio::stb::data::TParse_TBlock_object const&,
JStudio::TAdaptor_fog*);
/* 80288084 */ virtual ~TObject_fog();
/* 80287218 */ virtual void do_paragraph(u32, void const*, u32);
};
struct TAdaptor_light : public TAdaptor {
/* 80287308 */ virtual ~TAdaptor_light() = 0;
/* 0x10 */ TVariableValue mValue[13];
static u8 const sauVariableValue_3_COLOR_RGB[12];
static u8 const sauVariableValue_4_COLOR_RGBA[16];
static u8 const sauVariableValue_3_POSITION_XYZ[12];
static u8 const sauVariableValue_3_TARGET_POSITION_XYZ[12];
static u8 sauVariableValue_2_DIRECTION_THETA_PHI[8];
};
struct TObject_light : public TObject {
/* 80287368 */ TObject_light(JStudio::stb::data::TParse_TBlock_object const&,
JStudio::TAdaptor_light*);
/* 80288024 */ virtual ~TObject_light();
/* 802873A4 */ virtual void do_paragraph(u32, void const*, u32);
};
struct TAdaptor_message : public TAdaptor {
/* 802875E0 */ virtual ~TAdaptor_message() = 0;
};
struct TObject_message : public TObject {
/* 80287640 */ TObject_message(JStudio::stb::data::TParse_TBlock_object const&,
JStudio::TAdaptor_message*);
/* 80287FC4 */ virtual ~TObject_message();
/* 8028767C */ virtual void do_paragraph(u32, void const*, u32);
};
struct TAdaptor_particle : public TAdaptor {
/* 8028770C */ virtual ~TAdaptor_particle() = 0;
/* 0x10 */ TVariableValue mValue[20];
static u8 const sauVariableValue_3_TRANSLATION_XYZ[12];
static u8 const sauVariableValue_3_ROTATION_XYZ[12];
static u8 const sauVariableValue_3_SCALING_XYZ[12];
static u8 const sauVariableValue_3_COLOR_RGB[12];
static u8 const sauVariableValue_4_COLOR_RGBA[16];
static u8 const sauVariableValue_3_COLOR1_RGB[12];
static u8 const sauVariableValue_4_COLOR1_RGBA[16];
};
struct TObject_particle : public TObject {
/* 8028776C */ TObject_particle(JStudio::stb::data::TParse_TBlock_object const&,
JStudio::TAdaptor_particle*);
/* 80287F64 */ virtual ~TObject_particle();
/* 802877A8 */ virtual void do_paragraph(u32, void const*, u32);
};
struct TAdaptor_sound : public TAdaptor {
/* 80287B3C */ virtual ~TAdaptor_sound() = 0;
/* 0x10 */ TVariableValue mValue[13];
static u8 const sauVariableValue_3_POSITION_XYZ[12];
}; // Size: 0x114
struct TObject_sound : public TObject {
/* 80287B9C */ TObject_sound(JStudio::stb::data::TParse_TBlock_object const&,
JStudio::TAdaptor_sound*);
/* 80287F04 */ virtual ~TObject_sound();
/* 80287BD8 */ virtual void do_paragraph(u32, void const*, u32);
};
}; // namespace JStudio
#endif /* JSTUDIO_OBJECT_H */
+2 -2
View File
@@ -15,8 +15,8 @@ public:
/* 80288988 */ void isEqual(JStudio::object::TIDData const&, JStudio::object::TIDData const&);
private:
const void* mID;
u32 mID_size;
/* 0x00 */ const void* mID;
/* 0x04 */ u32 mID_size;
};
struct TObject_ID : public TIDData {
+2 -2
View File
@@ -21,8 +21,8 @@ const int BLOCK_NONE = -1;
// Used to expand a signed 24 int to a signed 32 int
const u32 gu32Mask_TSequence_value_signExpansion = 0xFF000000;
extern const u32 ga4cSignature; // 'STB/0'
extern const u8 gauDataSize_TEParagraph_data[32];
extern u32 ga4cSignature; // 'STB/0'
extern const s32 gauDataSize_TEParagraph_data[8];
inline void toString_block(char* a5c, u32 arg1) {
// from debug, todo
+6 -2
View File
@@ -107,6 +107,8 @@ private:
class TFactory {
public:
TFactory() {}
/* 802895B4 */ virtual ~TFactory();
/* 802895FC */ virtual TObject* create(data::TParse_TBlock_object const&);
/* 80289604 */ virtual void destroy(TObject*);
@@ -130,13 +132,15 @@ public:
/* 80289300 */ void destroyObject_all();
/* 80289364 */ TObject* getObject(void const*, u32);
/* 80289404 */ void reset();
/* 802894B4 */ void forward(u32);
/* 802894B4 */ u8 forward(u32);
void setStatus_(u32 status) { mStatus = status; }
void resetStatus_() { setStatus_(0); }
bool isSuspended() const { return _54 > 0; }
TFactory* getFactory() const { return pFactory; }
TObject_control& referObject_control() { return mObject_control; }
int getSuspend() const { return _54; }
void setSuspend(s32 suspend) { mObject_control.setSuspend(suspend); }
private:
/* 0x04 */ u32 _4;
@@ -145,7 +149,7 @@ private:
/* 0x10 */ JGadget::TLinkList<TObject, 12> mObjectContainer;
/* 0x1C */ u32 mStatus;
/* 0x20 */ TObject_control mObject_control;
/* 0x54 */ s32 _54; // "second per frame"?
/* 0x54 */ s32 _54;
};
} // namespace stb
@@ -1,6 +1,81 @@
#ifndef CONTROL_H
#define CONTROL_H
#ifndef JSTUDIO_JAUDIO2_CONTROL_H
#define JSTUDIO_JAUDIO2_CONTROL_H
#include "dolphin/types.h"
#include "JSystem/JAudio2/JAISoundHandles.h"
#include "JSystem/JAudio2/JAISoundStarter.h"
#include "JSystem/JStage/JSGSystem.h"
#include "JSystem/JStudio/JStudio/jstudio-object.h"
#endif /* CONTROL_H */
namespace JStudio_JAudio2 {
struct TCreateObject : public JStudio::TCreateObject {
TCreateObject(JAISoundStarter* p_soundStarter, const JStage::TSystem* p_system) {
pJAISoundStarter_ = p_soundStarter;
pJSGSystem_ = p_system;
mPermit_onExit_notEnd = false;
}
/* 8028D550 */ virtual ~TCreateObject();
/* 8028D5B0 */ virtual void create(JStudio::TObject**,
JStudio::stb::data::TParse_TBlock_object const&);
/* 8028D624 */ void createObject_JAI_SOUND_(JStudio::stb::data::TParse_TBlock_object const&,
JStudio_JAudio2::TCreateObject*);
/* 0x0C */ JAISoundStarter* pJAISoundStarter_;
/* 0x10 */ const JStage::TSystem* pJSGSystem_;
/* 0x14 */ bool mPermit_onExit_notEnd;
};
struct TAdaptor_sound : public JStudio::TAdaptor_sound {
struct TVVOSetValue_ {
/* 8028DECC */ void operator()(f32, JStudio::TAdaptor*) const;
/* 8028E094 */ ~TVVOSetValue_();
};
/* 8028D828 */ TAdaptor_sound(JStudio_JAudio2::TCreateObject*);
/* 8028DF04 */ void prepareSound_();
/* 8028DFA4 */ void beginSound_fadeIn_();
/* 8028E054 */ void endSound_fadeOut_(u32);
/* 8028D8F4 */ virtual ~TAdaptor_sound();
/* 8028D9A4 */ virtual void adaptor_do_prepare();
/* 8028DA74 */ virtual void adaptor_do_end();
/* 8028DA78 */ virtual void adaptor_do_update(u32);
/* 8028DC20 */ virtual void adaptor_do_SOUND(JStudio::data::TEOperationData, void const*, u32);
/* 8028DC54 */ virtual void adaptor_do_BEGIN(JStudio::data::TEOperationData, void const*, u32);
/* 8028DC88 */ virtual void adaptor_do_BEGIN_FADE_IN(JStudio::data::TEOperationData, void const*,
u32);
/* 8028DCD0 */ virtual void adaptor_do_END(JStudio::data::TEOperationData, void const*, u32);
/* 8028DD00 */ virtual void adaptor_do_END_FADE_OUT(JStudio::data::TEOperationData, void const*,
u32);
/* 8028DD48 */ virtual void adaptor_do_PARENT(JStudio::data::TEOperationData, void const*, u32);
/* 8028DDB4 */ virtual void adaptor_do_PARENT_NODE(JStudio::data::TEOperationData, void const*,
u32);
/* 8028DE34 */ virtual void adaptor_do_PARENT_ENABLE(JStudio::data::TEOperationData, void const*,
u32);
/* 8028DE50 */ virtual void adaptor_do_REPEAT(JStudio::data::TEOperationData, void const*, u32);
/* 8028DE6C */ virtual void adaptor_do_CONTINUOUS(JStudio::data::TEOperationData, void const*, u32);
/* 8028DE88 */ virtual void adaptor_do_LOCATED(JStudio::data::TEOperationData, void const*, u32);
/* 8028DEB0 */ virtual void adaptor_do_ON_EXIT_NOT_END(JStudio::data::TEOperationData, void const*,
u32);
static u8 saoVVOSetValue_[72];
/* 0x114 */ TCreateObject* pCreateObject_;
/* 0x118 */ JAISoundHandle opJAISoundHandle_;
/* 0x11C */ u8 field_0x11c;
/* 0x11D */ u8 field_0x11d;
/* 0x11E */ u8 field_0x11e;
/* 0x11F */ u8 field_0x11f;
/* 0x120 */ u8 field_0x120;
/* 0x124 */ u32 field_0x124;
/* 0x128 */ u32 field_0x128;
/* 0x12C */ u32 field_0x12c;
/* 0x130 */ JGeometry::TVec3<f32> field_0x130;
/* 0x13C */ u32 field_0x13c;
/* 0x140 */ u32 field_0x140;
/* 0x144 */ u8 field_0x144;
};
}; // namespace JStudio_JAudio2
#endif /* JSTUDIO_JAUDIO2_CONTROL_H */
@@ -1,6 +1,69 @@
#ifndef CONTROL_H
#define CONTROL_H
#ifndef JSTUDIO_JPARTICLE_CONTROL_H
#define JSTUDIO_JPARTICLE_CONTROL_H
#include "JSystem/JParticle/JPAParticle.h"
#include "JSystem/JStage/JSGSystem.h"
#include "JSystem/JStudio/JStudio/jstudio-object.h"
#include "dolphin/types.h"
#endif /* CONTROL_H */
namespace JStudio_JParticle {
struct TCreateObject : public JStudio::TCreateObject {
TCreateObject(JPAEmitterManager* p_emitMgr, const JStage::TSystem* p_system) {
pJPAEmitterManager_ = p_emitMgr;
pJSGSystem_ = p_system;
mPermit_onExit_notEnd = false;
}
/* 8028E3A0 */ virtual ~TCreateObject();
/* 8028E400 */ virtual void create(JStudio::TObject**,
JStudio::stb::data::TParse_TBlock_object const&);
/* 8028E474 */ virtual void emitter_create(u32);
/* 8028E4E4 */ virtual void emitter_destroy(JPABaseEmitter*);
/* 8028E508 */ void createObject_JPA_PARTICLE_(JStudio::stb::data::TParse_TBlock_object const&,
JStudio_JParticle::TCreateObject*);
/* 0x0C */ JPAEmitterManager* pJPAEmitterManager_;
/* 0x10 */ const JStage::TSystem* pJSGSystem_;
/* 0x14 */ bool mPermit_onExit_notEnd;
};
struct TAdaptor_particle : public JStudio::TAdaptor_particle {
struct TJPACallback_emitter_ {
/* 8028E700 */ ~TJPACallback_emitter_();
/* 8028ECC0 */ void execute(JPABaseEmitter*);
/* 8028F060 */ void executeAfter(JPABaseEmitter*);
/* 8028F098 */ void draw(JPABaseEmitter*);
/* 8028F0D0 */ void drawAfter(JPABaseEmitter*);
};
/* 8028E60C */ TAdaptor_particle(JStudio_JParticle::TCreateObject*);
/* 8028F108 */ void beginParticle_fadeIn_();
/* 8028F1C0 */ void endParticle_fadeOut_(u32);
/* 8028E760 */ virtual ~TAdaptor_particle();
/* 8028E850 */ virtual void adaptor_do_prepare();
/* 8028E97C */ virtual void adaptor_do_end();
/* 8028E980 */ virtual void adaptor_do_update(u32);
/* 8028EA68 */ virtual void adaptor_do_PARTICLE(JStudio::data::TEOperationData, void const*, u32);
/* 8028EA7C */ virtual void adaptor_do_BEGIN(JStudio::data::TEOperationData, void const*, u32);
/* 8028EAB0 */ virtual void adaptor_do_BEGIN_FADE_IN(JStudio::data::TEOperationData, void const*,
u32);
/* 8028EAF8 */ virtual void adaptor_do_END(JStudio::data::TEOperationData, void const*, u32);
/* 8028EB24 */ virtual void adaptor_do_END_FADE_OUT(JStudio::data::TEOperationData, void const*,
u32);
/* 8028EB6C */ virtual void adaptor_do_PARENT(JStudio::data::TEOperationData, void const*, u32);
/* 8028EBD8 */ virtual void adaptor_do_PARENT_NODE(JStudio::data::TEOperationData, void const*,
u32);
/* 8028EC58 */ virtual void adaptor_do_PARENT_ENABLE(JStudio::data::TEOperationData, void const*,
u32);
/* 8028EC74 */ virtual void adaptor_do_PARENT_FUNCTION(JStudio::data::TEOperationData, void const*,
u32);
/* 8028EC88 */ virtual void adaptor_do_REPEAT(JStudio::data::TEOperationData, void const*, u32);
/* 8028ECA4 */ virtual void adaptor_do_ON_EXIT_NOT_END(JStudio::data::TEOperationData, void const*,
u32);
};
}; // namespace JStudio_JParticle
#endif /* JSTUDIO_JPARTICLE_CONTROL_H */
@@ -1,6 +1,6 @@
#ifndef OBJECT_PARTICLE_H
#define OBJECT_PARTICLE_H
#include "dolphin/types.h"
#include "JSystem/JStudio/JStudio_JParticle/control.h"
#endif /* OBJECT_PARTICLE_H */
@@ -1,6 +1,174 @@
#ifndef CONTROL_H
#define CONTROL_H
#ifndef JSTUDIO_JSTAGE_CONTROL_H
#define JSTUDIO_JSTAGE_CONTROL_H
#include "dolphin/types.h"
#include "JSystem/JStage/JSGActor.h"
#include "JSystem/JStage/JSGAmbientLight.h"
#include "JSystem/JStage/JSGCamera.h"
#include "JSystem/JStage/JSGFog.h"
#include "JSystem/JStage/JSGLight.h"
#include "JSystem/JStage/JSGSystem.h"
#include "JSystem/JStudio/JStudio/jstudio-object.h"
#endif /* CONTROL_H */
namespace JStudio_JStage {
struct TCreateObject : public JStudio::TCreateObject {
TCreateObject(const JStage::TSystem* pSystem) {
pJSGSystem_ = pSystem;
}
/* 80289B00 */ virtual ~TCreateObject();
/* 80289B60 */ virtual void create(JStudio::TObject**,
JStudio::stb::data::TParse_TBlock_object const&);
/* 0x0C */ const JStage::TSystem* pJSGSystem_;
};
struct TAdaptor_object_ {
/* 8028A470 */ void adaptor_object_data_(void const*, u32, void const*, u32);
/* 8028A4BC */ void adaptor_object_findJSGObject_(char const*);
/* 8028A50C */ void adaptor_object_findJSGObjectNode_(JStage::TObject const*, char const*);
/* 8028A550 */ void adaptor_object_ENABLE_(JStudio::data::TEOperationData, void const*, u32);
/* 0x0 */ JStudio::TAdaptor* field_0x0;
/* 0x4 */ JStage::TSystem* pJSGSystem_;
/* 0x8 */ JStage::TObject* pJSGObject_;
};
struct TAdaptor_actor : public JStudio::TAdaptor_actor, public JStudio_JStage::TAdaptor_object_ {
struct TVVOutput_ANIMATION_FRAME_ {
/* 8028B064 */ void operator()(f32, JStudio::TAdaptor*) const;
/* 8028B138 */ ~TVVOutput_ANIMATION_FRAME_();
};
/* 8028A5F0 */ TAdaptor_actor(JStage::TSystem const*, JStage::TActor*);
/* 8028A6B4 */ virtual ~TAdaptor_actor();
/* 8028A728 */ virtual void adaptor_do_prepare();
/* 8028A7B4 */ virtual void adaptor_do_begin();
/* 8028A8D8 */ virtual void adaptor_do_end();
/* 8028A92C */ virtual void adaptor_do_update(u32);
/* 8028A974 */ virtual void adaptor_do_data(void const*, u32, void const*, u32);
/* 8028AAC8 */ virtual void adaptor_do_PARENT(JStudio::data::TEOperationData, void const*, u32);
/* 8028AB0C */ virtual void adaptor_do_PARENT_NODE(JStudio::data::TEOperationData, void const*,
u32);
/* 8028AB68 */ virtual void adaptor_do_PARENT_ENABLE(JStudio::data::TEOperationData, void const*,
u32);
/* 8028ABF0 */ virtual void adaptor_do_PARENT_FUNCTION(JStudio::data::TEOperationData, void const*,
u32);
/* 8028AC04 */ virtual void adaptor_do_RELATION(JStudio::data::TEOperationData, void const*, u32);
/* 8028AC48 */ virtual void adaptor_do_RELATION_NODE(JStudio::data::TEOperationData, void const*,
u32);
/* 8028ACA4 */ virtual void adaptor_do_RELATION_ENABLE(JStudio::data::TEOperationData, void const*,
u32);
/* 8028A998 */ virtual void adaptor_do_SHAPE(JStudio::data::TEOperationData, void const*, u32);
/* 8028A9F0 */ virtual void adaptor_do_ANIMATION(JStudio::data::TEOperationData, void const*, u32);
/* 8028AA48 */ virtual void adaptor_do_ANIMATION_MODE(JStudio::data::TEOperationData, void const*,
u32);
/* 8028AA5C */ virtual void adaptor_do_TEXTURE_ANIMATION(JStudio::data::TEOperationData,
void const*, u32);
/* 8028AAB4 */ virtual void adaptor_do_TEXTURE_ANIMATION_MODE(JStudio::data::TEOperationData,
void const*, u32);
/* 8028ACFC */ void setJSG_ID_(void (JStage::TActor::*)(u32),
JStudio::data::TEOperationData, void const*, u32);
/* 8028AD38 */ void setJSG_SRT_(JStudio::TControl const*);
/* 8028AECC */ void getJSG_SRT_(JStudio::TControl const*);
static u8 saoVVOutput_[64];
static u8 saoVVOutput_ANIMATION_FRAME_[144 + 4 /* padding */];
/* 0x134 */ u32 field_0x134;
/* 0x138 */ u32 field_0x138;
/* 0x13C */ u32 field_0x13c;
/* 0x140 */ u32 field_0x140;
/* 0x144 */ u32 field_0x144;
/* 0x148 */ u8 field_0x148;
/* 0x14C */ u32 field_0x14c;
/* 0x150 */ u32 field_0x150;
};
struct TAdaptor_ambientLight : public JStudio::TAdaptor_ambientLight {
/* 8028B610 */ TAdaptor_ambientLight(JStage::TSystem const*, JStage::TAmbientLight*);
/* 8028B6AC */ virtual ~TAdaptor_ambientLight();
/* 8028B720 */ virtual void adaptor_do_prepare();
/* 8028B724 */ virtual void adaptor_do_begin();
/* 8028B7B0 */ virtual void adaptor_do_end();
/* 8028B804 */ virtual void adaptor_do_update(u32);
/* 8028B87C */ virtual void adaptor_do_data(void const*, u32, void const*, u32);
};
struct TAdaptor_camera : public JStudio::TAdaptor_camera {
/* 8028B8A0 */ TAdaptor_camera(JStage::TSystem const*, JStage::TCamera*);
/* 8028B960 */ virtual ~TAdaptor_camera();
/* 8028B9D4 */ virtual void adaptor_do_prepare();
/* 8028BA1C */ virtual void adaptor_do_begin();
/* 8028BAF8 */ virtual void adaptor_do_end();
/* 8028BB4C */ virtual void adaptor_do_update(u32);
/* 8028BBAC */ virtual void adaptor_do_data(void const*, u32, void const*, u32);
/* 8028BBD0 */ virtual void adaptor_do_PARENT(JStudio::data::TEOperationData, void const*, u32);
/* 8028BC14 */ virtual void adaptor_do_PARENT_NODE(JStudio::data::TEOperationData, void const*, u32);
/* 8028BC70 */ virtual void adaptor_do_PARENT_ENABLE(JStudio::data::TEOperationData, void const*, u32);
/* 8028BCEC */ virtual void adaptor_do_PARENT_FUNCTION(JStudio::data::TEOperationData, void const*,
u32);
/* 8028BD00 */ virtual void adaptor_do_TARGET_PARENT(JStudio::data::TEOperationData, void const*, u32);
/* 8028BD44 */ virtual void adaptor_do_TARGET_PARENT_NODE(JStudio::data::TEOperationData, void const*,
u32);
/* 8028BDA0 */ virtual void adaptor_do_TARGET_PARENT_ENABLE(JStudio::data::TEOperationData, void const*,
u32);
/* 8028BDBC */ void setJSG_position_(JStudio::TControl const*);
/* 8028BEB8 */ void getJSG_position_(JStudio::TControl const*);
/* 8028BFBC */ void setJSG_targetPosition_(JStudio::TControl const*);
/* 8028C09C */ void getJSG_targetPosition_(JStudio::TControl const*);
static u8 saoVVOutput_[160 + 4 /* padding */];
};
struct TAdaptor_fog : public JStudio::TAdaptor_fog {
/* 8028C574 */ TAdaptor_fog(JStage::TSystem const*, JStage::TFog*);
/* 8028C610 */ virtual ~TAdaptor_fog();
/* 8028C684 */ virtual void adaptor_do_prepare();
/* 8028C6CC */ virtual void adaptor_do_begin();
/* 8028C7B4 */ virtual void adaptor_do_end();
/* 8028C808 */ virtual void adaptor_do_update(u32);
/* 8028C880 */ virtual void adaptor_do_data(void const*, u32, void const*, u32);
static u8 saoVVOutput_[96 + 4 /* padding */];
};
struct TAdaptor_light : public JStudio::TAdaptor_light {
struct TVVOutput_direction_ {
/* 8028D24C */ void operator()(f32, JStudio::TAdaptor*) const;
/* 8028D258 */ ~TVVOutput_direction_();
};
/* 8028CB50 */ TAdaptor_light(JStage::TSystem const*, JStage::TLight*);
/* 8028CBF4 */ virtual ~TAdaptor_light();
/* 8028CC68 */ virtual void adaptor_do_prepare();
/* 8028CCB0 */ virtual void adaptor_do_begin();
/* 8028CF68 */ virtual void adaptor_do_end();
/* 8028CFBC */ virtual void adaptor_do_update(u32);
/* 8028D18C */ virtual void adaptor_do_data(void const*, u32, void const*, u32);
/* 8028D228 */ virtual void adaptor_do_ENABLE(JStudio::data::TEOperationData, void const*, u32);
/* 8028D1B0 */ virtual void adaptor_do_FACULTY(JStudio::data::TEOperationData, void const*, u32);
static u8 saoVVOutput_direction_[72];
};
/* 8028A1F8 */ void
transform_toGlobalFromLocal(f32 (*)[4],
JStudio::TControl::TTransform_translation_rotation_scaling const&,
JStage::TObject const*, u32);
/* 8028A290 */ void transform_toGlobalFromLocal(f32 (*)[4],
JStudio::TControl::TTransform_position const&,
JStage::TObject const*, u32);
/* 8028A328 */ void
transform_toLocalFromGlobal(f32 (*)[4],
JStudio::TControl::TTransform_translation_rotation_scaling const&,
JStage::TObject const*, u32);
/* 8028A3CC */ void transform_toLocalFromGlobal(f32 (*)[4],
JStudio::TControl::TTransform_position const&,
JStage::TObject const*, u32);
}; // namespace JStudio_JStage
#endif /* JSTUDIO_JSTAGE_CONTROL_H */
@@ -1,6 +1,6 @@
#ifndef OBJECT_ACTOR_H
#define OBJECT_ACTOR_H
#include "dolphin/types.h"
#include "JSystem/JStudio/JStudio_JStage/control.h"
#endif /* OBJECT_ACTOR_H */
@@ -1,6 +1,6 @@
#ifndef OBJECT_AMBIENTLIGHT_H
#define OBJECT_AMBIENTLIGHT_H
#include "dolphin/types.h"
#include "JSystem/JStudio/JStudio_JStage/control.h"
#endif /* OBJECT_AMBIENTLIGHT_H */
@@ -1,6 +1,6 @@
#ifndef OBJECT_CAMERA_H
#define OBJECT_CAMERA_H
#include "dolphin/types.h"
#include "JSystem/JStudio/JStudio_JStage/control.h"
#endif /* OBJECT_CAMERA_H */
@@ -1,6 +1,6 @@
#ifndef OBJECT_FOG_H
#define OBJECT_FOG_H
#include "dolphin/types.h"
#include "JSystem/JStudio/JStudio_JStage/control.h"
#endif /* OBJECT_FOG_H */
@@ -1,6 +1,6 @@
#ifndef OBJECT_LIGHT_H
#define OBJECT_LIGHT_H
#include "dolphin/types.h"
#include "JSystem/JStudio/JStudio_JStage/control.h"
#endif /* OBJECT_LIGHT_H */
@@ -1,6 +1,6 @@
#ifndef OBJECT_H
#define OBJECT_H
#include "dolphin/types.h"
#include "JSystem/JStudio/JStudio_JStage/control.h"
#endif /* OBJECT_H */
+18
View File
@@ -25,6 +25,12 @@ public:
return val;
}
s32 readS32() {
s32 val;
this->read(&val, sizeof(val));
return val;
}
s16 readS16() {
s16 val;
this->read(&val, sizeof(val));
@@ -43,6 +49,18 @@ public:
return val;
}
u8 read8b() {
u8 val;
this->read(&val, sizeof(val));
return val;
}
u16 read16b() {
u16 val;
this->read(&val, sizeof(val));
return val;
}
// TODO: return value probably wrong
/* 802DC298 */ s32 read(void*, s32);
}; // Size = 0x8
+1 -1
View File
@@ -68,7 +68,7 @@ public:
void setVisible(bool visible) { mVisible = visible; }
void setLineAttr(int param_0, u8 param_1) { mBuf[(field_0x20 + 2) * param_0] = param_1; }
u8* getLinePtr(int param_0) const { return &mBuf[(field_0x20 + 2) * param_0 + 1]; }
u8* getLinePtr(int param_0) const { return &mBuf[(field_0x20 + 2) * param_0] + 1; }
int diffIndex(int param_0, int param_1) const {
int diff = param_1 - param_0;
if (diff >= 0) {
+1 -1
View File
@@ -68,7 +68,7 @@ public:
/* 0x0C */ virtual void setGX() = 0;
/* 0x10 */ virtual void setGX(JUtility::TColor col1, JUtility::TColor col2);
/* 0x14 */ virtual f32 drawChar_scale(f32 a1, f32 a2, f32 a3, f32 a4, int a5, bool a6) = 0;
/* 0x18 */ virtual u16 getLeading() const = 0;
/* 0x18 */ virtual int getLeading() const = 0;
/* 0x1C */ virtual u16 getAscent() const = 0;
/* 0x20 */ virtual u16 getDescent() const = 0;
/* 0x24 */ virtual s32 getHeight() const = 0;
+5
View File
@@ -17,6 +17,11 @@ public:
JUTPalette(_GXTlut p1, _GXTlutFmt p2, JUTTransparency p3, u16 p4, void* p5) {
this->storeTLUT(p1, p2, p3, p4, p5);
}
JUTPalette(GXTlut tlutNo, ResTLUT* p_tlutRes) {
storeTLUT(tlutNo, p_tlutRes);
}
/* 802DE890 */ void storeTLUT(_GXTlut, ResTLUT*);
/* 802DE91C */ void storeTLUT(_GXTlut, _GXTlutFmt, JUTTransparency, u16, void*);
/* 802DE95C */ bool load();
+1 -1
View File
@@ -11,7 +11,7 @@ public:
/* 802DF48C */ virtual void setGX();
/* 802DF584 */ virtual void setGX(JUtility::TColor, JUtility::TColor);
/* 802DF7C4 */ virtual f32 drawChar_scale(f32, f32, f32, f32, int, bool);
/* 802DDFEC */ virtual u16 getLeading() const;
/* 802DDFEC */ virtual int getLeading() const;
/* 802DE004 */ virtual u16 getAscent() const;
/* 802DE010 */ virtual u16 getDescent() const;
/* 802DE01C */ virtual s32 getHeight() const;
+20 -9
View File
@@ -4,22 +4,25 @@
#include "JSystem/JUtility/JUTPalette.h"
#include "dolphin/types.h"
struct ResTIMG { /* Acts as the header to image data. Usually texture data immediately follows it,
so any pointer arithmetic to go past the end of this structure is so that a
variable sized allocated buffer can be accessed. */
/*
* Acts as the header to image data. Usually texture data immediately follows it,
* so any pointer arithmetic to go past the end of this structure is so that a
* variable sized allocated buffer can be accessed.
*/
struct ResTIMG {
/* 0x00 */ u8 format;
/* 0x01 */ bool alphaEnabled;
/* 0x01 */ u8 alphaEnabled;
/* 0x02 */ u16 width;
/* 0x04 */ u16 height;
/* 0x06 */ u8 wrapS;
/* 0x07 */ u8 wrapT;
/* 0x08 */ bool palettesEnabled;
/* 0x08 */ u8 palettesEnabled;
/* 0x09 */ u8 paletteFormat;
/* 0x0A */ u16 paletteCount;
/* 0x0C */ u32 paletteOffset;
/* 0x10 */ bool mipmapEnabled;
/* 0x11 */ bool doEdgeLOD;
/* 0x12 */ bool biasClamp;
/* 0x10 */ u8 mipmapEnabled;
/* 0x11 */ u8 doEdgeLOD;
/* 0x12 */ u8 biasClamp;
/* 0x13 */ u8 maxAnisotropy;
/* 0x14 */ u8 minFilter;
/* 0x15 */ u8 magFilter;
@@ -38,6 +41,13 @@ public:
mEmbPalette = NULL;
mTexInfo = NULL;
}
JUTTexture(const ResTIMG* p_timg, u8 param_1) {
mEmbPalette = NULL;
storeTIMG(p_timg, param_1);
setCaptureFlag(false);
}
~JUTTexture();
void storeTIMG(ResTIMG const*, JUTPalette*, _GXTlut);
void storeTIMG(ResTIMG const*, u8);
@@ -52,9 +62,10 @@ public:
void setCaptureFlag(bool flag) { mFlags &= 2 | flag; }
u8 getCaptureFlag() const { return mFlags & 1; }
u8 getEmbPaletteDelFlag() const { return mFlags & 2; }
u8 getTlutName() const { return mTlutName; }
private:
/* 0x00 */ _GXTexObj mTexObj;
/* 0x00 */ GXTexObj mTexObj;
/* 0x20 */ const ResTIMG* mTexInfo;
/* 0x24 */ void* mTexData;
/* 0x28 */ JUTPalette* mEmbPalette;
+4
View File
@@ -4,6 +4,10 @@
#include "MSL_C/MSL_Common/Src/float.h"
#include "dolphin/types.h"
#define M_PI 3.14159265358979323846f
#define DEG_TO_RAD(degrees) (degrees * (M_PI / 180.0f))
#ifdef __cplusplus
extern "C" {
#endif
@@ -15,6 +15,9 @@ public:
/* 80267C94 */ virtual ~cBgS_GndChk();
f32 GetNowY() const { return mNowY; }
void SetNowY(f32 y) { mNowY = y; }
private:
/* 0x24 */ cXyz m_pos;
/* 0x30 */ u32 mFlags;
@@ -8,7 +8,7 @@ private:
/* 0x00 */ u16 mPolyIndex;
/* 0x02 */ u16 mBgIndex;
/* 0x04 */ void* unk_0x04;
/* 0x08 */ u32 unk_0x08;
/* 0x08 */ unsigned int mActorId;
public:
cBgS_PolyInfo();
+2
View File
@@ -17,6 +17,8 @@ public:
cBgW_BgId() { Ct(); }
void Ct() { m_id = 0x100; }
u16 GetId() const { return m_id; }
};
bool cBgW_CheckBGround(float a1);
+22
View File
@@ -18,6 +18,28 @@ class cCcD_AabAttr;
class cCcD_CylAttr;
class cCcD_SphAttr;
enum cCcD_ObjAtType {
/* 0x00000002 */ AT_TYPE_NORMAL_SWORD = (1 << 1), // wooden or ordon
/* 0x00000004 */ AT_TYPE_HORSE = (1 << 2),
/* 0x00000008 */ AT_TYPE_THROW_OBJ = (1 << 3),
/* 0x00000010 */ AT_TYPE_SHIELD_ATTACK = (1 << 4),
/* 0x00000020 */ AT_TYPE_BOMB = (1 << 5),
/* 0x00000080 */ AT_TYPE_SLINGSHOT = (1 << 7),
/* 0x00000400 */ AT_TYPE_CSTATUE_SWING = (1 << 10),
/* 0x00002000 */ AT_TYPE_ARROW = (1 << 13),
/* 0x00004000 */ AT_TYPE_HOOKSHOT = (1 << 14),
/* 0x00010000 */ AT_TYPE_BOOMERANG = (1 << 16),
/* 0x00040000 */ AT_TYPE_SPINNER = (1 << 18),
/* 0x00100000 */ AT_TYPE_CSTATUE_BOSS_SWING = (1 << 20),
/* 0x00200000 */ AT_TYPE_HEAVY_BOOTS = (1 << 21),
/* 0x00400000 */ AT_TYPE_IRON_BALL = (1 << 22),
/* 0x00800000 */ AT_TYPE_COPY_ROD = (1 << 23),
/* 0x04000000 */ AT_TYPE_MASTER_SWORD = (1 << 26),
/* 0x08000000 */ AT_TYPE_MIDNA_LOCK = (1 << 27),
/* 0x40000000 */ AT_TYPE_WOLF_CUT_TURN = (1 << 30),
/* 0x80000000 */ AT_TYPE_WOLF_ATTACK = (1 << 31),
};
class cCcD_ShapeAttr {
public:
/* 0x00 */ cM3dGAab mAab;
+1 -4
View File
@@ -2,12 +2,9 @@
#define Z2SOUNDSTARTER_H
#include "JSystem/JAudio2/JAISound.h"
#include "JSystem/JAudio2/JAISoundStarter.h"
#include "dolphin/types.h"
struct JAISoundStarter {
virtual ~JAISoundStarter();
};
struct Z2SoundStarter : public JAISoundStarter {
Z2SoundStarter(bool);
void setPortData(JAISoundHandle*, u32, u16, s8);
+1216 -187
View File
File diff suppressed because it is too large Load Diff
+4 -1
View File
@@ -220,6 +220,7 @@ public:
FLG2_UNK_2080000 = 0x2080000,
BOAR_SINGLE_BATTLE = 0x1800000,
STATUS_WINDOW_DRAW = 0x400000,
FLG2_UNK_280000 = 0x280000,
UNK_ARMOR = 0x80000,
SCENE_CHANGE_START = 0x8000,
FLG2_UNK_4000 = 0x4000,
@@ -243,6 +244,7 @@ public:
enum daPy_ERFLG1 {
GANON_FINISH = 0x80000000,
UNK_FORCE_PUT_POS = 0x2000,
ERFLG1_UNK_2 = 2,
ERFLG1_UNK_1 = 1,
};
enum daPy_ERFLG2 {
@@ -539,7 +541,7 @@ public:
bool getSumouCameraMode() const {
bool sumouCameraMode = false;
if (field_0x560[0xA] != 0 && field_0x560[0xA] < 0x26) {
if (mSpecialMode != 0 && mSpecialMode < 0x26) {
sumouCameraMode = true;
}
return sumouCameraMode;
@@ -568,6 +570,7 @@ public:
void i_onNoResetFlg2(int pFlg) { mNoResetFlg2 |= pFlg; }
void i_onNoResetFlg3(int pFlg) { mNoResetFlg3 |= pFlg; }
void i_offNoResetFlg0(int pFlg) { mNoResetFlg0 &= ~pFlg; }
void i_offNoResetFlg2(int pFlg) { mNoResetFlg2 &= ~pFlg; }
void i_offNoResetFlg3(int pFlg) { mNoResetFlg3 &= ~pFlg; }
void i_offResetFlg0(int flag) { mResetFlg0 &= ~flag; }
void i_onResetFlg0(int flag) { mResetFlg0 |= flag; }
+7 -7
View File
@@ -12,7 +12,7 @@ class cBgS_ChkElm {
public:
/* 0x00 */ dBgW_Base* m_bgw_base_ptr;
/* 0x04 */ bool m_used;
/* 0x08 */ u32 field_0x8;
/* 0x08 */ u32 m_actor_id;
/* 0x0C */ fopAc_ac_c* m_actor_ptr;
/* 0x10 vtable */
@@ -37,7 +37,7 @@ public:
public:
cBgS() {}
bool Regist(dBgW_Base*, unsigned int, void*);
void Release(dBgW_Base*);
int Release(dBgW_Base*);
bool LineCross(cBgS_LinChk*);
f32 GroundCross(cBgS_GndChk*);
static void ConvDzb(void*);
@@ -75,14 +75,14 @@ public:
s32 GetExitId(cBgS_PolyInfo const&);
s32 GetPolyColor(cBgS_PolyInfo const&);
BOOL GetHorseNoEntry(cBgS_PolyInfo const&);
bool GetSpecialCode(cBgS_PolyInfo const&);
int GetSpecialCode(cBgS_PolyInfo const&);
int GetMagnetCode(cBgS_PolyInfo const&);
bool GetMonkeyBarsCode(cBgS_PolyInfo const&);
bool GetUnderwaterRoofCode(cBgS_PolyInfo const&);
int GetMonkeyBarsCode(cBgS_PolyInfo const&);
int GetUnderwaterRoofCode(cBgS_PolyInfo const&);
s32 GetWallCode(cBgS_PolyInfo const&);
int GetPolyAtt0(cBgS_PolyInfo const&);
int GetPolyAtt1(cBgS_PolyInfo const&);
bool GetGroundCode(cBgS_PolyInfo const&);
int GetGroundCode(cBgS_PolyInfo const&);
s32 GetCamMoveBG(cBgS_PolyInfo const&);
s32 GetRoomCamId(cBgS_PolyInfo const&);
s32 GetRoomPathId(cBgS_PolyInfo const&);
@@ -96,7 +96,7 @@ public:
void WallCorrectSort(dBgS_Acch*);
f32 RoofChk(dBgS_RoofChk*);
bool SplGrpChk(dBgS_SplGrpChk*);
void SphChk(dBgS_SphChk*, void*);
bool SphChk(dBgS_SphChk*, void*);
void MoveBgCrrPos(cBgS_PolyInfo const&, bool, cXyz*, csXyz*, csXyz*, bool, bool);
void MoveBgTransPos(cBgS_PolyInfo const&, bool, cXyz*, csXyz*, csXyz*);
void MoveBgMatrixCrrPos(cBgS_PolyInfo const&, bool, cXyz*, csXyz*, csXyz*);
+1
View File
@@ -148,6 +148,7 @@ public:
void SetWtrChkMode(int mode) { m_wtr_mode = mode; }
void SetGrndNone() { m_flags |= GRND_NONE; }
void ClrGrndNone() { m_flags &= ~GRND_NONE; }
bool ChkMoveBGOnly() const { return m_flags & MOVE_BG_ONLY; }
// inline dupe
void i_ClrGroundHit() { m_flags &= ~GROUND_HIT; }
+1
View File
@@ -17,6 +17,7 @@ public:
void SetNowY(f32 y) { mNowY = y; }
void i_SetPos(cXyz const& pos) { m_pos = pos; }
f32 GetNowY() { return mNowY; }
private:
/* 0x3C */ cXyz m_pos;
-2
View File
@@ -15,10 +15,8 @@ typedef void* (*SphChk_Callback)(dBgS_SphChk*, cBgD_Vtx_t*, int, int, int, cM3dG
class dBgS_SphChk : public cM3dGSph, public cBgS_PolyInfo, public cBgS_Chk, public dBgS_Chk {
public:
/* 80078A14 */ dBgS_SphChk();
/* 80078AC0 */ virtual ~dBgS_SphChk();
private:
/* 0x50 */ SphChk_Callback mCallback;
};
+2
View File
@@ -25,6 +25,8 @@ public:
void OffIn() { m_flags &= ~IN; }
void OffMoveBGOnly() { m_flags &= ~MOVE_BG_ONLY; }
void OnMoveBGOnly() { m_flags |= MOVE_BG_ONLY; }
void OnFind() { m_flags |= FIND; }
bool ChkMoveBGOnly() { return m_flags & MOVE_BG_ONLY; }
void SetHeight(f32 height) { m_height = height; }
f32 GetHeight() { return m_height; }
cXyz& GetPosP() { return m_ground; }
+19 -19
View File
@@ -87,31 +87,31 @@ public:
/* 8007933C */ virtual ~cBgW();
/* 80079EEC */ virtual void ChkMemoryError();
/* 8007B948 */ virtual void ChkNotReady() const;
/* 8007B948 */ virtual bool ChkNotReady() const;
/* 8007B958 */ virtual bool ChkLock() const;
/* 8007B964 */ virtual bool ChkMoveBg() const;
virtual u32 ChkMoveFlag() const = 0;
/* 8007B270 */ virtual void GetTriPla(cBgS_PolyInfo const&) const;
/* 8007B270 */ virtual cM3dGPla GetTriPla(cBgS_PolyInfo const&) const;
/* 8007B1B4 */ virtual bool GetTriPnt(cBgS_PolyInfo const&, cXyz*, cXyz*, cXyz*) const;
/* 8007B164 */ virtual void GetBnd() const;
/* 8007B2B0 */ virtual u32 GetGrpInf(cBgS_PolyInfo const&) const;
virtual void OffMoveFlag() = 0;
/* 8007B240 */ virtual void GetTopUnder(f32*, f32*) const;
/* 8007A658 */ virtual bool LineCheck(cBgS_LinChk*);
/* 8007AB9C */ virtual void GroundCross(cBgS_GndChk*);
/* 8007AB9C */ virtual bool GroundCross(cBgS_GndChk*);
/* 8007B084 */ virtual void ShdwDraw(cBgS_ShdwDraw*);
virtual void CaptPoly(dBgS_CaptPoly&) = 0;
virtual void WallCorrect(dBgS_Acch*) = 0;
virtual void WallCorrectSort(dBgS_Acch*) = 0;
virtual void RoofChk(dBgS_RoofChk*) = 0;
virtual void SplGrpChk(dBgS_SplGrpChk*) = 0;
virtual void SphChk(dBgS_SphChk*, void*) = 0;
virtual bool RoofChk(dBgS_RoofChk*) = 0;
virtual bool SplGrpChk(dBgS_SplGrpChk*) = 0;
virtual bool SphChk(dBgS_SphChk*, void*) = 0;
/* 8007B0E4 */ virtual s32 GetGrpRoomIndex(cBgS_PolyInfo const&) const;
virtual s32 GetExitId(cBgS_PolyInfo const&) = 0;
virtual s32 GetPolyColor(cBgS_PolyInfo const&) = 0;
virtual BOOL GetHorseNoEntry(cBgS_PolyInfo const&) = 0;
virtual bool GetSpecialCode(cBgS_PolyInfo const&) = 0;
virtual void GetSpecialCode(int) = 0;
virtual int GetSpecialCode(cBgS_PolyInfo const&) = 0;
virtual int GetSpecialCode(int) = 0;
virtual int GetMagnetCode(cBgS_PolyInfo const&) = 0;
virtual void GetPolyObjThrough(int) = 0;
virtual void GetPolyCamThrough(int) = 0;
@@ -122,12 +122,12 @@ public:
virtual void GetPolyRopeThrough(int) = 0;
virtual void GetPolyBombThrough(int) = 0;
virtual void GetShdwThrough(int) = 0;
virtual bool GetUnderwaterRoofCode(int) = 0;
virtual bool GetMonkeyBarsCode(cBgS_PolyInfo const&) = 0;
virtual int GetUnderwaterRoofCode(int) = 0;
virtual int GetMonkeyBarsCode(cBgS_PolyInfo const&) = 0;
virtual s32 GetWallCode(cBgS_PolyInfo const&) = 0;
virtual int GetPolyAtt0(cBgS_PolyInfo const&) = 0;
virtual int GetPolyAtt1(cBgS_PolyInfo const&) = 0;
virtual bool GetGroundCode(cBgS_PolyInfo const&) = 0;
virtual int GetGroundCode(cBgS_PolyInfo const&) = 0;
virtual void GetIronBallThrough(int) = 0;
virtual u32 GetAttackThrough(int) = 0;
virtual s32 GetCamMoveBG(cBgS_PolyInfo const&) = 0;
@@ -203,14 +203,14 @@ public:
/* 8007DAF8 */ virtual void CaptPoly(dBgS_CaptPoly&);
/* 8007C484 */ virtual void WallCorrect(dBgS_Acch*);
/* 8007C910 */ virtual void WallCorrectSort(dBgS_Acch*);
/* 8007D470 */ virtual void RoofChk(dBgS_RoofChk*);
/* 8007D830 */ virtual void SplGrpChk(dBgS_SplGrpChk*);
/* 8007DF00 */ virtual void SphChk(dBgS_SphChk*, virtual void*);
/* 8007D470 */ virtual bool RoofChk(dBgS_RoofChk*);
/* 8007D830 */ virtual bool SplGrpChk(dBgS_SplGrpChk*);
/* 8007DF00 */ virtual bool SphChk(dBgS_SphChk*, virtual void*);
/* 8007B3AC */ virtual s32 GetExitId(cBgS_PolyInfo const&);
/* 8007B3D8 */ virtual s32 GetPolyColor(cBgS_PolyInfo const&);
/* 8007B404 */ virtual BOOL GetHorseNoEntry(cBgS_PolyInfo const&);
/* 8007B430 */ virtual bool GetSpecialCode(cBgS_PolyInfo const&);
/* 8007B460 */ virtual void GetSpecialCode(int);
/* 8007B430 */ virtual int GetSpecialCode(cBgS_PolyInfo const&);
/* 8007B460 */ virtual int GetSpecialCode(int);
/* 8007B488 */ virtual int GetMagnetCode(cBgS_PolyInfo const&);
/* 8007B4E0 */ virtual void GetPolyObjThrough(int);
/* 8007B504 */ virtual void GetPolyCamThrough(int);
@@ -221,13 +221,13 @@ public:
/* 8007B5BC */ virtual void GetPolyRopeThrough(int);
/* 8007B5E0 */ virtual void GetPolyBombThrough(int);
/* 8007B604 */ virtual void GetShdwThrough(int);
/* 8007B630 */ virtual bool GetUnderwaterRoofCode(int);
/* 8007B4B4 */ virtual bool GetMonkeyBarsCode(cBgS_PolyInfo const&);
/* 8007B630 */ virtual int GetUnderwaterRoofCode(int);
/* 8007B4B4 */ virtual int GetMonkeyBarsCode(cBgS_PolyInfo const&);
/* 8007B6AC */ virtual void GetLinkNo(cBgS_PolyInfo const&);
/* 8007B6D8 */ virtual s32 GetWallCode(cBgS_PolyInfo const&);
/* 8007B704 */ virtual int GetPolyAtt0(cBgS_PolyInfo const&);
/* 8007B734 */ virtual int GetPolyAtt1(cBgS_PolyInfo const&);
/* 8007B760 */ virtual bool GetGroundCode(cBgS_PolyInfo const&);
/* 8007B760 */ virtual int GetGroundCode(cBgS_PolyInfo const&);
/* 8007B7DC */ virtual void GetIronBallThrough(int);
/* 8007B800 */ virtual u32 GetAttackThrough(int);
/* 8007B87C */ virtual s32 GetCamMoveBG(cBgS_PolyInfo const&);
+14 -12
View File
@@ -26,11 +26,11 @@ public:
/* 8007E640 */ virtual ~dBgW_Base();
/* 8007E6D0 */ virtual bool ChkMemoryError();
virtual void ChkNotReady() const = 0;
virtual bool ChkNotReady() const = 0;
virtual bool ChkLock() const = 0;
virtual bool ChkMoveBg() const = 0;
virtual u32 ChkMoveFlag() const = 0;
virtual void GetTriPla(cBgS_PolyInfo const&) const = 0;
virtual cM3dGPla GetTriPla(cBgS_PolyInfo const&) const = 0;
virtual bool GetTriPnt(cBgS_PolyInfo const&, cXyz*, cXyz*, cXyz*) const = 0;
virtual void GetBnd() const = 0;
virtual u32 GetGrpInf(cBgS_PolyInfo const&) const = 0;
@@ -38,20 +38,20 @@ public:
virtual void GetTopUnder(f32*, f32*) const = 0;
/* 80074AB4 */ virtual void SetOldShapeAngleY(s16);
virtual bool LineCheck(cBgS_LinChk*) = 0;
virtual void GroundCross(cBgS_GndChk*) = 0;
virtual bool GroundCross(cBgS_GndChk*) = 0;
virtual void ShdwDraw(cBgS_ShdwDraw*) = 0;
virtual void CaptPoly(dBgS_CaptPoly&) = 0;
virtual void WallCorrect(dBgS_Acch*) = 0;
virtual void WallCorrectSort(dBgS_Acch*) = 0;
virtual void RoofChk(dBgS_RoofChk*) = 0;
virtual void SplGrpChk(dBgS_SplGrpChk*) = 0;
virtual void SphChk(dBgS_SphChk*, void*) = 0;
virtual bool RoofChk(dBgS_RoofChk*) = 0;
virtual bool SplGrpChk(dBgS_SplGrpChk*) = 0;
virtual bool SphChk(dBgS_SphChk*, void*) = 0;
virtual s32 GetGrpRoomIndex(cBgS_PolyInfo const&) const = 0;
virtual s32 GetExitId(cBgS_PolyInfo const&) = 0;
virtual s32 GetPolyColor(cBgS_PolyInfo const&) = 0;
virtual BOOL GetHorseNoEntry(cBgS_PolyInfo const&) = 0;
virtual bool GetSpecialCode(cBgS_PolyInfo const&) = 0;
virtual void GetSpecialCode(int) = 0;
virtual int GetSpecialCode(cBgS_PolyInfo const&) = 0;
virtual int GetSpecialCode(int) = 0;
virtual int GetMagnetCode(cBgS_PolyInfo const&) = 0;
virtual void GetPolyObjThrough(int) = 0;
virtual void GetPolyCamThrough(int) = 0;
@@ -62,13 +62,13 @@ public:
virtual void GetPolyRopeThrough(int) = 0;
virtual void GetPolyBombThrough(int) = 0;
virtual void GetShdwThrough(int) = 0;
virtual bool GetUnderwaterRoofCode(int) = 0;
virtual bool GetMonkeyBarsCode(cBgS_PolyInfo const&) = 0;
virtual int GetUnderwaterRoofCode(int) = 0;
virtual int GetMonkeyBarsCode(cBgS_PolyInfo const&) = 0;
virtual void GetLinkNo(cBgS_PolyInfo const&) = 0;
virtual s32 GetWallCode(cBgS_PolyInfo const&) = 0;
virtual int GetPolyAtt0(cBgS_PolyInfo const&) = 0;
virtual int GetPolyAtt1(cBgS_PolyInfo const&) = 0;
virtual bool GetGroundCode(cBgS_PolyInfo const&) = 0;
virtual int GetGroundCode(cBgS_PolyInfo const&) = 0;
virtual void GetIronBallThrough(int) = 0;
virtual u32 GetAttackThrough(int) = 0;
virtual s32 GetCamMoveBG(cBgS_PolyInfo const&) = 0;
@@ -85,10 +85,12 @@ public:
PushPull_CallBack GetPushPullCallback() const { return m_pushPull_Callback; }
s16 GetDiffShapeAngleY() { return m_diff_ShapeAngleY; }
u8 GetRoomId() { return m_roomId; }
int GetRoomId() { return m_roomId; }
bool chkStickWall() { return field_0xb & 1; }
bool chkStickRoof() { return field_0xb & 2; }
bool ChkPushPullOk() const { return m_pushPull_Ok; }
void SetRoomId(int id) { m_roomId = id; }
bool ChkPriority(int prio) { return m_priority == prio; }
private:
/* 0x08 */ u8 m_priority;
+12 -12
View File
@@ -23,31 +23,31 @@ public:
/* 8007FF00 */ void ChkShdwDrawThrough(dBgPc*);
/* 8007E74C */ virtual ~dBgWKCol();
/* 8007E86C */ virtual void ChkNotReady() const;
/* 8007E86C */ virtual bool ChkNotReady() const;
/* 8007E87C */ virtual bool ChkLock() const;
/* 8007E884 */ virtual bool ChkMoveBg() const;
/* 8007E88C */ virtual bool ChkMoveFlag() const;
/* 8007E894 */ virtual void GetTriPla(cBgS_PolyInfo const&) const;
/* 8007E894 */ virtual cM3dGPla GetTriPla(cBgS_PolyInfo const&) const;
/* 8007E980 */ virtual void GetTriPnt(cBgS_PolyInfo const&, cXyz*, cXyz*, cXyz*) const;
/* 8007EB28 */ virtual void GetBnd() const;
/* 8007EB30 */ virtual void GetGrpInf(cBgS_PolyInfo const&) const;
/* 8007EB6C */ virtual void OffMoveFlag();
/* 800829AC */ virtual void GetTopUnder(f32*, f32*) const;
/* 8007EE34 */ virtual void LineCheck(cBgS_LinChk*);
/* 8007F628 */ virtual void GroundCross(cBgS_GndChk*);
/* 8007EE34 */ virtual bool LineCheck(cBgS_LinChk*);
/* 8007F628 */ virtual bool GroundCross(cBgS_GndChk*);
/* 8007F9A4 */ virtual void ShdwDraw(cBgS_ShdwDraw*);
/* 8007FF1C */ virtual void CaptPoly(dBgS_CaptPoly&);
/* 800811A0 */ virtual void WallCorrect(dBgS_Acch*);
/* 80080330 */ virtual void WallCorrectSort(dBgS_Acch*);
/* 80081E18 */ virtual void RoofChk(dBgS_RoofChk*);
/* 80082184 */ virtual void SplGrpChk(dBgS_SplGrpChk*);
/* 800824EC */ virtual void SphChk(dBgS_SphChk*, virtual void*);
/* 80081E18 */ virtual bool RoofChk(dBgS_RoofChk*);
/* 80082184 */ virtual bool SplGrpChk(dBgS_SplGrpChk*);
/* 800824EC */ virtual bool SphChk(dBgS_SphChk*, virtual void*);
/* 800829F0 */ virtual void GetGrpRoomIndex(cBgS_PolyInfo const&) const;
/* 80082A20 */ virtual void GetExitId(cBgS_PolyInfo const&);
/* 80082A50 */ virtual void GetPolyColor(cBgS_PolyInfo const&);
/* 80082A80 */ virtual void GetHorseNoEntry(cBgS_PolyInfo const&);
/* 80082AB0 */ virtual void GetSpecialCode(cBgS_PolyInfo const&);
/* 80082AE0 */ virtual void GetSpecialCode(int);
/* 80082AB0 */ virtual int GetSpecialCode(cBgS_PolyInfo const&);
/* 80082AE0 */ virtual int GetSpecialCode(int);
/* 80082B0C */ virtual int GetMagnetCode(cBgS_PolyInfo const&);
/* 80082B6C */ virtual void GetPolyObjThrough(int);
/* 80082B98 */ virtual void GetPolyCamThrough(int);
@@ -58,13 +58,13 @@ public:
/* 80082C74 */ virtual void GetPolyRopeThrough(int);
/* 80082CA0 */ virtual void GetPolyBombThrough(int);
/* 80082CF8 */ virtual void GetShdwThrough(int);
/* 80082CCC */ virtual void GetUnderwaterRoofCode(int);
/* 80082B3C */ virtual void GetMonkeyBarsCode(cBgS_PolyInfo const&);
/* 80082CCC */ virtual int GetUnderwaterRoofCode(int);
/* 80082B3C */ virtual int GetMonkeyBarsCode(cBgS_PolyInfo const&);
/* 80082D24 */ virtual void GetLinkNo(cBgS_PolyInfo const&);
/* 80082D54 */ virtual s32 GetWallCode(cBgS_PolyInfo const&);
/* 80082D84 */ virtual int GetPolyAtt0(cBgS_PolyInfo const&);
/* 80082DB4 */ virtual int GetPolyAtt1(cBgS_PolyInfo const&);
/* 80082DE4 */ virtual void GetGroundCode(cBgS_PolyInfo const&);
/* 80082DE4 */ virtual int GetGroundCode(cBgS_PolyInfo const&);
/* 80082E14 */ virtual void GetIronBallThrough(int);
/* 80082E40 */ virtual void GetAttackThrough(int);
/* 80082E6C */ virtual void GetCamMoveBG(cBgS_PolyInfo const&);
+12 -9
View File
@@ -13,11 +13,13 @@ private:
/* 0x08 */ dCcMassS_ObjCallback mpCallback;
/* 0x0C */ cCcD_DivideInfo mDivideInfo;
/* 0x1C vtable */
public:
dCcMassS_Obj();
virtual ~dCcMassS_Obj() {}
/* 800852E0 */ void Set(cCcD_Obj*, u8, void (*)(fopAc_ac_c*, cXyz*, u32));
/* 800852F0 */ void Clear();
void Set(cCcD_Obj* p_obj, u8 priority, dCcMassS_ObjCallback callback);
void Clear();
cCcD_Obj* GetObj() { return mpObj; }
u8 GetPriority() const { return mPriority; }
dCcMassS_ObjCallback GetCallback() const { return mpCallback; }
@@ -34,7 +36,7 @@ private:
/* 0x0C */ f32 mCoHitLen;
public:
/* 80085334 */ void ClearPointer();
void ClearPointer();
void SetAreaHitObj(cCcD_Obj* obj) { mpArea = obj; }
void SetCoHitObj(cCcD_Obj* obj) { mpCoObj = obj; }
void SetAtHitObj(cCcD_Obj* obj) { mpAtObj = obj; }
@@ -60,18 +62,19 @@ public:
/* 0x0224 */ cCcD_CpsAttr mCpsAttr;
/* 0x0264 */ cCcD_DivideInfo mDivideInfo;
/* 0x0274 vtable */
public:
dCcMassS_Mng(void);
dCcMassS_Mng();
virtual ~dCcMassS_Mng() {}
/* 800855E4 */ void Ct();
/* 80085630 */ void SetAttr(f32, f32, u8, u8);
/* 80085630 */ void SetAttr(f32 radius, f32 height, u8 param_2, u8 param_3);
/* 80085690 */ void Prepare();
/* 800858AC */ u32 Chk(cXyz*, fopAc_ac_c**, dCcMassS_HitInf*);
/* 800858AC */ u32 Chk(cXyz* p_xyz, fopAc_ac_c** p_actor, dCcMassS_HitInf* p_hitInf);
/* 80085CF0 */ void Clear();
/* 80085D98 */ void Set(cCcD_Obj*, u8);
/* 80085E6C */ void SetCam(cM3dGCps const&);
/* 80085D98 */ void Set(cCcD_Obj* p_obj, u8 priority);
/* 80085E6C */ void SetCam(cM3dGCps const& cps);
/* 80085EB0 */ u8 GetResultCam() const;
/* 80085EB8 */ void GetCamTopPos(Vec*);
/* 80085EB8 */ void GetCamTopPos(Vec* p_out);
};
STATIC_ASSERT(sizeof(dCcMassS_Mng) == 0x278);
+9
View File
@@ -5,6 +5,15 @@
#include "dolphin/types.h"
#include "f_op/f_op_actor.h"
enum dCcU_AtType {
/* 0x01 */ HIT_TYPE_LINK_NORMAL_ATTACK = 1,
/* 0x02 */ HIT_TYPE_BOMB,
/* 0x09 */ HIT_TYPE_LINK_HEAVY_ATTACK = 9,
/* 0x0A */ HIT_TYPE_BOOMERANG,
/* 0x0F */ HIT_TYPE_ARROW = 15,
/* 0x10 */ HIT_TYPE_STUN,
};
struct dCcU_AtInfo {
/* 0x00 */ cCcD_Obj* mpCollider;
/* 0x04 */ fopAc_ac_c* mpActor;
+1 -1
View File
@@ -643,7 +643,6 @@ public:
/* 0x00000 */ dSv_info_c info;
/* 0x00F38 */ dComIfG_play_c play;
/* 0x05F64 */ dDlst_list_c drawlist;
/* 0x1C104 */ u8 field_0x1C104[0x1F4];
/* 0x1C2F8 */ dRes_control_c mResControl;
/* 0x1DDF8 */ u8 mFadeBrightness;
/* 0x1DDF9 */ u8 mWorldDark;
@@ -797,6 +796,7 @@ BOOL dComIfGs_isStageSwitch(int i_stageNo, int i_no);
void dComIfGs_onStageSwitch(int i_stageNo, int i_no);
void dComIfGs_offStageSwitch(int i_stageNo, int i_no);
void dComIfGs_PolyDamageOff_Set(s8 param_0);
u8 dComIfGs_staffroll_next_go_check();
inline void dComIfGs_init() {
g_dComIfG_gameInfo.info.init();
+59 -64
View File
@@ -17,9 +17,9 @@ public:
/* 80073970 */ void proc();
private:
u32 field_0x0;
u32 field_0x4;
u32 field_0x8;
/* 0x0 */ u32 mHintActorID;
/* 0x4 */ u32 mPriority;
/* 0x8 */ u32 field_0x8;
};
class dAttCatch_c {
@@ -30,52 +30,52 @@ public:
void proc();
void request(fopAc_ac_c*, u8, f32, f32, f32, s16, int);
s32 getCatghTarget() { return convPId(field_0x10); }
s32 getCatghTarget() { return convPId(mCatghTargetID); }
u8 getChangeItem() { return mChangeItem; }
private:
void* field_0x0;
u32 field_0x4;
float field_0x8;
u8 field_0xc;
u8 field_0xd;
u8 field_0xe;
u8 field_0xf;
u32 field_0x10;
u8 mChangeItem;
}; // Size = 0x14
/* 0x00 */ void* field_0x0;
/* 0x04 */ f32 field_0x4;
/* 0x08 */ f32 field_0x8;
/* 0x0C */ u8 field_0xc;
/* 0x0D */ u8 field_0xd;
/* 0x0E */ u8 field_0xe;
/* 0x0F */ u8 field_0xf;
/* 0x10 */ u32 mCatghTargetID;
/* 0x14 */ u8 mChangeItem;
}; // Size: 0x18
class dAttParam_c {
private:
/* 0x00 vtable */
/* 0x04 */ u8 field_0x4;
/* 0x05 */ u8 field_0x5;
/* 0x06 */ u16 mFlag;
/* 0x08 */ float field_0x8;
/* 0x0C */ float field_0xc;
/* 0x10 */ float field_0x10;
/* 0x14 */ float field_0x14;
/* 0x18 */ float field_0x18;
/* 0x1C */ float field_0x1c;
/* 0x20 */ float field_0x20;
/* 0x24 */ float field_0x24;
/* 0x28 */ float field_0x28;
/* 0x2C */ float field_0x2c;
/* 0x30 */ float field_0x30;
/* 0x34 */ float field_0x34;
/* 0x38 */ u8 field_0x38;
/* 0x39 */ u8 field_0x39;
public:
dAttParam_c() {}
/* 80070038 */ dAttParam_c(s32);
/* 80070110 */ virtual ~dAttParam_c();
private:
/* 0x3C */ float field_0x3c;
/* 0x40 */ float field_0x40;
/* 0x44 */ u32 field_0x44;
/* 0x48 */ u32 field_0x48;
/* 0x00 */ u16 field_0x0;
/* 0x04 */ f32 field_0x4;
/* 0x08 */ f32 field_0x8;
/* 0x0C */ f32 field_0xc;
/* 0x10 */ f32 mDangerBGMDistance;
/* 0x14 */ f32 mBGMDistMargin;
/* 0x18 */ f32 mSWModeDisable;
/* 0x1C */ f32 mSelCursorScaleX;
/* 0x20 */ f32 mSelCursorScaleY;
/* 0x24 */ f32 mAttnCursorScaleX;
/* 0x28 */ f32 mAttnCursorScaleY;
/* 0x2C */ f32 mSelCursorOffsetY;
/* 0x30 */ f32 mAttnCursorOffsetY;
/* 0x34 */ u8 mAttnCursorAppearFrames;
/* 0x35 */ u8 mAttnCursorDisappearFrames;
public:
/* 80070110 */ virtual ~dAttParam_c();
/* 0x38 vtable */
private:
/* 0x3C */ f32 mSelCursorAnmSpeed;
/* 0x40 */ f32 mAttnCursorAnmSpeed;
/* 0x44 */ u32 mDispPosX;
/* 0x48 */ u32 mDispPosY;
}; // Size = 0x4C
class dAttLook_c {
@@ -88,11 +88,10 @@ public:
private:
u32 field_0x0;
u32 field_0x4;
float field_0x8;
u32 field_0xc;
}; // Size = 0x10
f32 field_0x8;
u32 mLookTargetID;
}; // Size: 0x10
#pragma pack(push, 1)
class dAttList_c {
public:
/* 800304D0 */ ~dAttList_c() {}
@@ -101,11 +100,12 @@ public:
/* 80073898 */ void setActor(fopAc_ac_c*);
private:
u8 field_0x0[8];
cSAngle angle;
u8 field_0xa[10];
}; // Size = 0x14
#pragma pack(pop)
/* 0x00 */ f32 mWeight;
/* 0x04 */ f32 mDistance;
/* 0x08 */ cSAngle mAngle;
/* 0x0C */ u32 mType;
/* 0x10 */ u32 mActorID;
}; // Size: 0x14
class dAttDraw_c {
public:
@@ -116,14 +116,7 @@ public:
/* 80073004 */ void alphaAnm();
/* 800732B0 */ void draw(cXyz&, f32 (*)[4]);
u8 field_0x0;
u8 field_0x1;
u8 field_0x2;
u8 field_0x3;
u8 field_0x4;
u8 field_0x5;
u8 field_0x6;
u8 field_0x7;
/* 0x000 */ J3DModel* mModel[2];
/* 0x008 */ mDoExt_bckAnm bckAnm[2];
/* 0x040 */ mDoExt_bpkAnm bpkAnm[2];
/* 0x070 */ mDoExt_brkAnm brkAnm[2];
@@ -225,9 +218,9 @@ public:
static u32 chk_type_num;
public:
/* 0x000 */ fopAc_ac_c* field_0x0;
/* 0x004 */ u32 field_0x4;
/* 0x008 */ dAttDraw_CallBack_c dattdraw_callback;
/* 0x000 */ fopAc_ac_c* mpPlayer;
/* 0x004 */ u32 mLockTargetID;
/* 0x008 */ dAttDraw_CallBack_c mpDrawCallback;
/* 0x00C */ u32 field_0xc;
/* 0x010 */ u32 field_0x10;
/* 0x014 */ u8 field_0x14[4];
@@ -251,11 +244,11 @@ public:
/* 0x334 */ u32 mFlags;
/* 0x338 */ dAttList_c mLockOnList[8];
/* 0x3D8 */ int mLockonCount;
/* 0x3DC */ int field_0x3dc;
/* 0x3DC */ int mLockOnOffset;
/* 0x3E0 */ dAttList_c mActionList[4];
/* 0x430 */ int mActionCount;
/* 0x434 */ int field_0x434;
/* 0x438 */ dAttList_c attention_list3[4];
/* 0x434 */ int mActionOffset;
/* 0x438 */ dAttList_c field_0x438[4];
/* 0x488 */ int mCheckObjectCount;
/* 0x48C */ int field_0x48c;
/* 0x490 */ dAttHint_c mZHintTarget;
@@ -270,7 +263,9 @@ public:
/* 0x4CD */ u8 field_0x4cd;
/* 0x4CE */ u8 field_0x4ce;
/* 0x4CF */ u8 field_0x4cf;
/* 0x4D0 */ dAttParam_c attention_param;
}; // Size = 0x51C
/* 0x4D0 */ dAttParam_c mAttParam;
}; // Size: 0x51C
STATIC_ASSERT(sizeof(dAttention_c) == 0x51C);
#endif /* D_D_ATTENTION_H */
+244 -54
View File
@@ -1,91 +1,281 @@
#ifndef D_D_DEMO_H
#define D_D_DEMO_H
#include "JSystem/JStudio/JStudio/stb.h"
#include "dolphin/types.h"
#include "JSystem/JGadget/binary.h"
#include "JSystem/JMessage/control.h"
#include "JSystem/JStage/JSGAmbientLight.h"
#include "JSystem/JStage/JSGCamera.h"
#include "JSystem/JStage/JSGFog.h"
#include "JSystem/JStage/JSGLight.h"
#include "JSystem/JStudio/JStudio/jstudio-object.h"
#include "JSystem/JStudio/JStudio_JAudio2/control.h"
#include "JSystem/JStudio/JStudio_JParticle/object-particle.h"
#include "JSystem/JStudio/JStudio_JStage/object.h"
#include "f_op/f_op_actor.h"
struct cXyz;
struct Vec;
struct fopAc_ac_c;
class dDemo_actor_c;
class dDemo_camera_c;
class dDemo_ambient_c;
class dDemo_light_c;
class dDemo_fog_c;
class dDemo_object_c {
public:
/* 80038F54 */ dDemo_object_c();
/* 80038F70 */ ~dDemo_object_c();
/* 80038FC0 */ void appendActor(fopAc_ac_c*);
/* 80039088 */ static dDemo_actor_c* getActor(u8);
/* 800390AC */ void createCamera();
/* 80039128 */ void getActiveCamera();
/* 8003913C */ void createAmbient();
/* 800391B8 */ void appendLight();
/* 80039258 */ void createFog();
/* 80038FC0 */ JStage::TObject* appendActor(fopAc_ac_c*);
/* 80039088 */ dDemo_actor_c* getActor(u8);
/* 800390AC */ JStage::TObject* createCamera();
/* 80039128 */ JStage::TObject* getActiveCamera();
/* 8003913C */ JStage::TObject* createAmbient();
/* 800391B8 */ JStage::TObject* appendLight();
/* 80039258 */ JStage::TObject* createFog();
/* 800392D4 */ void remove();
/* 0x00 */ u8 mActorNum;
/* 0x01 */ u8 mLightNum;
/* 0x04 */ dDemo_actor_c* mpActors[32];
/* 0x84 */ dDemo_camera_c* mpCamera;
/* 0x88 */ dDemo_ambient_c* mpAmbient;
/* 0x8C */ dDemo_light_c* mpLights[8];
/* 0xAC */ dDemo_fog_c* mpFog;
/* 0xB0 */ dDemo_camera_c* mpEditorCamera;
};
class dDemo_actor_c {
class dDemo_prm_c {
public:
dDemo_prm_c() { mData = 0; }
/* 0x0 */ u32 field_0x0;
/* 0x4 */ u32 mData;
};
class dDemo_actor_c : public JStage::TActor {
public:
/* 80038020 */ dDemo_actor_c();
/* 80038098 */ ~dDemo_actor_c();
/* 80038128 */ void getActor();
/* 8003815C */ void setActor(fopAc_ac_c*);
/* 8003819C */ void getPrm_Morf();
/* 80038338 */ void getDemoIDData(int*, int*, int*, u16*, u8*);
/* 800387EC */ void JSGSetData(u32, void const*, u32);
/* 80038920 */ void JSGSetTranslation(Vec const&);
/* 80038980 */ void JSGSetScaling(Vec const&);
/* 800389A8 */ void JSGSetRotation(Vec const&);
/* 80038A0C */ void JSGSetShape(u32);
/* 80038A20 */ void JSGSetAnimation(u32);
/* 80038A40 */ void JSGSetAnimationFrame(f32);
/* 80038A54 */ void JSGSetAnimationTransition(f32);
/* 80038A68 */ void JSGSetTextureAnimation(u32);
/* 80038A7C */ void JSGSetTextureAnimationFrame(f32);
/* 8003A05C */ void JSGFindNodeID(char const*) const;
/* 8003A088 */ void JSGGetNodeTransformation(u32, f32 (*)[4]) const;
/* 8003A0C8 */ void JSGGetAnimationFrameMax() const;
/* 8003A0D0 */ void JSGGetTextureAnimationFrameMax() const;
/* 8003A0D8 */ void JSGGetTranslation(Vec*) const;
/* 8003A0F4 */ void JSGGetScaling(Vec*) const;
/* 8003A110 */ void JSGGetRotation(Vec*) const;
/* 80038098 */ virtual ~dDemo_actor_c();
/* 800387EC */ virtual void JSGSetData(u32, void const*, u32);
/* 8003A05C */ virtual void JSGFindNodeID(char const*) const;
/* 8003A088 */ virtual void JSGGetNodeTransformation(u32, f32 (*)[4]) const;
/* 8003A0D8 */ virtual void JSGGetTranslation(Vec*) const;
/* 80038920 */ virtual void JSGSetTranslation(Vec const&);
/* 8003A0F4 */ virtual void JSGGetScaling(Vec*) const;
/* 80038980 */ virtual void JSGSetScaling(Vec const&);
/* 8003A110 */ virtual void JSGGetRotation(Vec*) const;
/* 800389A8 */ virtual void JSGSetRotation(Vec const&);
/* 80038A0C */ virtual void JSGSetShape(u32);
/* 80038A20 */ virtual void JSGSetAnimation(u32);
/* 80038A40 */ virtual void JSGSetAnimationFrame(f32);
/* 8003A0C8 */ virtual f32 JSGGetAnimationFrameMax() const;
/* 80038A54 */ virtual void JSGSetAnimationTransition(f32);
/* 80038A68 */ virtual void JSGSetTextureAnimation(u32);
/* 80038A7C */ virtual void JSGSetTextureAnimationFrame(f32);
/* 8003A0D0 */ virtual f32 JSGGetTextureAnimationFrameMax() const;
void setModel(J3DModel* p_model) { mModel = p_model; }
private:
/* 0x04 */ u16 mFlags;
/* 0x08 */ cXyz mTrans;
/* 0x14 */ cXyz mScale;
/* 0x20 */ csXyz mRotate;
/* 0x28 */ u32 mShape;
/* 0x2C */ u32 mAnmId;
/* 0x30 */ f32 mAnmFrame;
/* 0x34 */ f32 mAnmTransition;
/* 0x38 */ f32 mAnmFrameMax;
/* 0x3C */ u32 mTexAnm;
/* 0x40 */ f32 mTexAnmFrame;
/* 0x44 */ f32 mTexAnmFrameMax;
/* 0x48 */ J3DModel* mModel;
/* 0x4C */ dDemo_prm_c mPrm;
/* 0x54 */ u32 field_0x54;
/* 0x58 */ u32 mActorId;
/* 0x5C */ u32 mOldAnmId;
/* 0x60 */ u32 mBtpId;
/* 0x64 */ u32 mBtkId;
/* 0x68 */ u32 mBrkId;
};
class dDemo_system_c : public JStage::TSystem {
public:
dDemo_system_c() { mpObject = NULL; }
/* 80039AAC */ virtual ~dDemo_system_c();
/* 80039528 */ virtual bool JSGFindObject(JStage::TObject**, char const*,
JStage::TEObject) const;
private:
/* 0x4 */ dDemo_object_c* mpObject;
};
class dDemo_particle_c : public JStudio_JParticle::TCreateObject {
public:
dDemo_particle_c(JPAEmitterManager* p_emitMgr, const JStage::TSystem* p_system)
: JStudio_JParticle::TCreateObject(p_emitMgr, p_system) {}
/* 80039F9C */ virtual ~dDemo_particle_c();
/* 80039F1C */ virtual void emitter_create(u32);
};
class dDemo_light_c : public JStage::TLight {
public:
dDemo_light_c() {
mFlags = 0;
}
/* 80039468 */ virtual ~dDemo_light_c();
/* 80038E20 */ virtual void JSGSetLightType(JStage::TELight);
/* 80038E34 */ virtual void JSGSetPosition(Vec const&);
/* 80038E5C */ virtual void JSGSetColor(GXColor);
/* 80038E8C */ virtual void JSGSetDistanceAttenuation(f32, f32, GXDistAttnFn);
/* 80038EA8 */ virtual void JSGSetAngleAttenuation(f32, GXSpotFn);
/* 80038EC0 */ virtual void JSGSetDirection(Vec const&);
private:
/* 0x04 */ u8 mFlags;
/* 0x08 */ JStage::TELight mLightType;
/* 0x0C */ GXDistAttnFn mDistAttenFn;
/* 0x10 */ GXSpotFn mSpotFn;
/* 0x14 */ cXyz mPosition;
/* 0x20 */ GXColor mColor;
/* 0x24 */ f32 field_0x24;
/* 0x28 */ f32 field_0x28;
/* 0x2C */ f32 field_0x2c;
/* 0x30 */ cXyz mDirection;
};
class dDemo_fog_c : public JStage::TFog {
public:
dDemo_fog_c() {
mFlags = 0;
}
/* 80039408 */ virtual ~dDemo_fog_c();
/* 80038EE8 */ virtual void JSGSetFogFunction(GXFogType);
/* 80038EFC */ virtual void JSGSetStartZ(f32);
/* 80038F10 */ virtual void JSGSetEndZ(f32);
/* 80038F24 */ virtual void JSGSetColor(GXColor);
private:
/* 0x04 */ u8 mFlags;
/* 0x05 */ u8 mFogType;
/* 0x08 */ f32 mStartZ;
/* 0x0C */ f32 mEndZ;
/* 0x10 */ GXColor mColor;
};
class dDemo_camera_c : public JStage::TCamera {
public:
dDemo_camera_c() {
mFlags = 0;
}
/* 80039FFC */ virtual ~dDemo_camera_c();
/* 80038AC4 */ virtual f32 JSGGetProjectionNear() const;
/* 80038AF8 */ virtual void JSGSetProjectionNear(f32);
/* 80038B0C */ virtual f32 JSGGetProjectionFar() const;
/* 80038B40 */ virtual void JSGSetProjectionFar(f32);
/* 80038B54 */ virtual f32 JSGGetProjectionFovy() const;
/* 80038B88 */ virtual void JSGSetProjectionFovy(f32);
/* 80038B9C */ virtual f32 JSGGetProjectionAspect() const;
/* 80038BD0 */ virtual void JSGSetProjectionAspect(f32);
/* 80038BE4 */ virtual void JSGGetViewPosition(Vec*) const;
/* 80038C44 */ virtual void JSGSetViewPosition(Vec const&);
/* 80038C6C */ virtual void JSGGetViewUpVector(Vec*) const;
/* 80038CD0 */ virtual void JSGSetViewUpVector(Vec const&);
/* 80038CF8 */ virtual void JSGGetViewTargetPosition(Vec*) const;
/* 80038D5C */ virtual void JSGSetViewTargetPosition(Vec const&);
/* 80038D84 */ virtual f32 JSGGetViewRoll() const;
/* 80038DDC */ virtual void JSGSetViewRoll(f32);
private:
/* 0x04 */ u8 mFlags;
/* 0x08 */ f32 mProjNear;
/* 0x0C */ f32 mProjFar;
/* 0x10 */ f32 mProjFovy;
/* 0x14 */ f32 mProjAspect;
/* 0x18 */ cXyz mViewPos;
/* 0x24 */ cXyz mViewUpVector;
/* 0x30 */ cXyz mViewTargetVector;
/* 0x3C */ f32 mViewRoll;
};
class dDemo_ambient_c : public JStage::TAmbientLight {
public:
dDemo_ambient_c() {
mFlags = 0;
}
/* 800394C8 */ virtual ~dDemo_ambient_c();
/* 80038DF0 */ virtual void JSGSetColor(GXColor);
private:
/* 0x04 */ u8 mFlags;
/* 0x05 */ GXColor mColor;
};
namespace {
class jstudio_tCreateObject_message : public JStudio::TCreateObject {
public:
jstudio_tCreateObject_message() {}
virtual ~jstudio_tCreateObject_message();
virtual void create(JStudio::TObject**, const JStudio::stb::data::TParse_TBlock_object&);
};
class jstudio_tAdaptor_message : public JStudio::TAdaptor_message {
public:
jstudio_tAdaptor_message() {}
virtual ~jstudio_tAdaptor_message();
virtual void adaptor_do_MESSAGE(JStudio::data::TEOperationData, const void*, u32);
};
}; // namespace
class dDemo_c {
public:
/* 80039678 */ static void create();
/* 80039910 */ void remove();
/* 80039B6C */ void start(u8 const*, cXyz*, f32);
/* 80039910 */ static void remove();
/* 80039B6C */ static int start(u8 const*, cXyz*, f32);
/* 80039CF8 */ static void end();
/* 80039D4C */ void branch();
/* 80039DA4 */ static void update();
/* 80039EDC */ void setBranchType(u16);
/* 80039EEC */ void setBranchId(u16, s16);
/* 80039F04 */ void reset();
/* 80039D4C */ static void branch();
/* 80039DA4 */ static int update();
/* 80039EDC */ static void setBranchType(u16);
/* 80039EEC */ static void setBranchId(u16, s16);
/* 80039F04 */ static void reset();
static dDemo_actor_c* getActor(u8 param_0) { return m_object->getActor(param_0); }
static u32 getFrameNoMsg() { return m_frameNoMsg; }
static s32 getMode() { return m_mode; }
static JStudio::stb::TControl* getControl() { return m_control; }
static bool isStatus(u32 status) { return m_status & status; }
static void setBranchData(const u8* p_data) { m_branchData = p_data; }
static u16 m_branchId[1 + 3 /* padding */];
static u8 m_system[4];
static JStudio::stb::TControl* m_control;
static u8 m_stage[4];
static u8 m_audio[4];
static u8 m_particle[4];
static u8 m_message[4];
static u8 m_factory[4];
static u8 m_mesgControl[4];
static s16 m_branchId;
static dDemo_system_c* m_system;
static JStudio::TControl* m_control;
static JStudio_JStage::TCreateObject* m_stage;
static JStudio_JAudio2::TCreateObject* m_audio;
static dDemo_particle_c* m_particle;
static jstudio_tCreateObject_message* m_message;
static JStudio::TFactory* m_factory;
static jmessage_tControl* m_mesgControl;
static dDemo_object_c* m_object;
static u8 m_data[4];
static u8 m_frame[4];
static u8 m_translation[4];
static const u8* m_data;
static int m_frame;
static cXyz* m_translation;
static f32 m_rotationY;
static u32 m_frameNoMsg;
static s32 m_mode;
static u8 m_status[4];
static u8 m_branchType[2 + 2 /* padding */];
static u8 m_branchData[4];
static u32 m_status;
static u16 m_branchType;
static const u8* m_branchData;
};
#endif /* D_D_DEMO_H */
+106 -84
View File
@@ -36,7 +36,7 @@ public:
class dDlst_FileInfo_c : public dDlst_base_c {
public:
dDlst_FileInfo_c() {}
virtual void draw(void);
virtual void draw();
virtual ~dDlst_FileInfo_c(); // inlined
/* 0x04 */ J2DScreen* Scr;
@@ -63,15 +63,40 @@ private:
/* 0x160 */ u8 mAlpha;
};
class dDlst_2DT2_c : public dDlst_base_c {
public:
/* 80052354 */ virtual void draw();
/* 80052B00 */ dDlst_2DT2_c();
/* 80052B4C */ void init(ResTIMG*, f32, f32, f32, f32, u8, u8, u8, f32, f32);
/* 0x04 */ GXTexObj mTexObj;
/* 0x24 */ f32 field_0x24;
/* 0x28 */ f32 field_0x28;
/* 0x2C */ f32 field_0x2c;
/* 0x30 */ f32 field_0x30;
/* 0x34 */ f32 mScaleX;
/* 0x38 */ f32 mScaleY;
/* 0x3C */ GXColor field_0x3c;
/* 0x40 */ GXColor field_0x40;
/* 0x44 */ u8 field_0x44;
/* 0x45 */ u8 field_0x45;
/* 0x46 */ u8 field_0x46;
}; // Size: 0x48
class dDlst_peekZ_c {
public:
dDlst_peekZ_c() { field_0x0 = 0; }
/* 80056018 */ void newData(s16, s16, u32*);
struct dDlst_peekZ_entry {
/* 0x0 */ s16 x;
/* 0x2 */ s16 y;
/* 0x4 */ u32* dst;
};
dDlst_peekZ_c() { mCount = 0; }
/* 80056018 */ int newData(s16, s16, u32*);
/* 80056080 */ void peekData();
/* 0x0 */ u8 field_0x0;
/* 0x2 */ u16 field_0x2;
/* 0x4 */ u32* field_0x4;
/* 0x0 */ u8 mCount;
/* 0x4 */ dDlst_peekZ_entry mEntries[0x40];
};
class dDlst_shadowSimple_c {
@@ -93,7 +118,9 @@ public:
/* 80054288 */ void set(cBgD_Vtx_t*, u16, u16, u16, cM3dGPla*);
/* 800543B4 */ void draw();
/* 0x0 */ void* field_0x0; // vtable
virtual void getTri() = 0;
virtual s32 getTriMax() = 0;
/* 0x4 */ u16 mCount;
/* 0x6 */ u8 field_0x6[2];
};
@@ -106,12 +133,11 @@ public:
/* 0x0 */ cXyz mPos[3];
};
class dDlst_shadowRealPoly_c {
class dDlst_shadowRealPoly_c : public dDlst_shadowPoly_c {
public:
/* 800569A0 */ void getTri();
/* 800569A8 */ s32 getTriMax();
/* 800569A0 */ virtual void getTri();
/* 800569A8 */ virtual s32 getTriMax();
/* 0x0 */ dDlst_shadowPoly_c mShadowPoly;
/* 0x8 */ dDlst_shadowTri_c mShadowTri[256];
};
@@ -123,7 +149,7 @@ public:
/* 80054BD0 */ void setShadowRealMtx(cXyz*, cXyz*, f32, f32, f32, dKy_tevstr_c*);
/* 80055028 */ void set(u32, J3DModel*, cXyz*, f32, f32, dKy_tevstr_c*, f32, f32);
/* 800551D4 */ bool add(J3DModel*);
/* 800561F8 */ ~dDlst_shadowReal_c();
/* 800561F8 */ ~dDlst_shadowReal_c() {}
/* 800562D0 */ dDlst_shadowReal_c();
private:
@@ -174,33 +200,33 @@ private:
class dDlst_window_c {
public:
dDlst_window_c(void) {}
dDlst_window_c() {}
~dDlst_window_c() {}
/* 80051AC0 */ void setViewPort(f32, f32, f32, f32, f32, f32);
/* 80051ADC */ void setScissor(f32, f32, f32, f32);
void setCameraID(int id) { mCameraID = id; }
void setMode(int mode) { mMode = mode; }
f32 getViewPort() { return mViewport; }
f32 getViewPort() { return mXOrig; }
private:
/* 0x00 */ f32 mViewport;
/* 0x04 */ f32 field_0x04;
/* 0x08 */ f32 field_0x08;
/* 0x0C */ f32 field_0x0C;
/* 0x10 */ f32 field_0x10;
/* 0x14 */ f32 field_0x14;
/* 0x18 */ f32 mScissor;
/* 0x1C */ f32 field_0x1c;
/* 0x20 */ f32 field_0x20;
/* 0x24 */ f32 field_0x24;
/* 0x00 */ f32 mXOrig;
/* 0x04 */ f32 mYOrig;
/* 0x08 */ f32 mWidth;
/* 0x0C */ f32 mHeight;
/* 0x10 */ f32 mNearZ;
/* 0x14 */ f32 mFarZ;
/* 0x18 */ f32 mScissorXOrig;
/* 0x1C */ f32 mScissorYOrig;
/* 0x20 */ f32 mScissorWidth;
/* 0x24 */ f32 mScissorHeight;
/* 0x28 */ s8 mCameraID;
/* 0x29 */ s8 mMode;
};
STATIC_ASSERT(sizeof(dDlst_window_c) == 0x2C);
extern u8 data_80450ED0; // Wipe
extern u8 mWipe__12dDlst_list_c; // Wipe
struct view_port_class;
struct view_class;
@@ -222,28 +248,52 @@ public:
/* 800568D8 */ static void wipeIn(f32);
/* 80056900 */ void calcWipe();
void set2DOpa(dDlst_base_c* dlst) { set(field_0x1b4, field_0x1b8, dlst); }
void set2DOpaTop(dDlst_base_c* dlst) { set(field_0xac, field_0xb0, dlst); }
enum DrawBuffer {
/* 0x00 */ DB_OPA_LIST_SKY,
/* 0x01 */ DB_XLU_LIST_SKY,
/* 0x02 */ DB_LIST_P0,
/* 0x03 */ DB_OPA_LIST_BG,
/* 0x04 */ DB_XLU_LIST_BG,
/* 0x05 */ DB_OPA_LIST_DARK_BG,
/* 0x06 */ DB_XLU_LIST_DARK_BG,
/* 0x07 */ DB_OPA_LIST,
/* 0x08 */ DB_XLU_LIST,
/* 0x09 */ DB_OPA_LIST_DARK,
/* 0x0A */ DB_XLU_LIST_DARK,
/* 0x0B */ DB_OPA_LIST_PACKET,
/* 0x0C */ DB_LIST_FILTER,
/* 0x0D */ DB_OPA_LIST_ITEM3D,
/* 0x0E */ DB_XLU_LIST_ITEM3D,
/* 0x0F */ DB_OPA_LIST_INVISIBLE,
/* 0x10 */ DB_XLU_LIST_INVISIBLE,
/* 0x11 */ DB_LIST_Z_XLU,
/* 0x12 */ DB_LIST_2D_SCREEN,
/* 0x13 */ DB_LIST_MIDDLE,
/* 0x14 */ DB_LIST_3D_LAST,
};
void set2DOpa(dDlst_base_c* dlst) { set(mp2DOpaSet[0], mp2DOpaSet[1], dlst); }
void set2DOpaTop(dDlst_base_c* dlst) { set(mp2DOpaTopSet[0], mp2DOpaTopSet[1], dlst); }
view_class* getView() { return mView; }
void setView(view_class* view) { mView = view; }
void setWindow(dDlst_window_c* window) { mWindow = window; }
void setViewport(view_port_class* port) { mViewport = port; }
J3DDrawBuffer* getOpaListFilter() { return mListFilter; }
J3DDrawBuffer* getOpaListP0() { return mListP0; }
J3DDrawBuffer* getOpaListPacket() { return mOpaListPacket; }
J3DDrawBuffer* getOpaListFilter() { return mDrawBuffers[DB_LIST_FILTER]; }
J3DDrawBuffer* getOpaListP0() { return mDrawBuffers[DB_LIST_P0]; }
J3DDrawBuffer* getOpaListPacket() { return mDrawBuffers[DB_OPA_LIST_PACKET]; }
void setXluDrawList(J3DDrawBuffer* buffer) { j3dSys.setDrawBuffer(buffer, XLU_BUFFER); }
void setOpaDrawList(J3DDrawBuffer* buffer) { j3dSys.setDrawBuffer(buffer, OPA_BUFFER); }
void setXluListSky() { setXluDrawList(mpXluListSky); }
void setOpaListSky() { setOpaDrawList(mOpaListSky); }
void setXluListDark() { setXluDrawList(mXluListDark); }
void setOpaListDark() { setOpaDrawList(mOpaListDark); }
void setOpaList() { setOpaDrawList(mOpaList); }
void setXluList() { setXluDrawList(mXluList); }
void setOpaListItem3D() { setOpaDrawList(mOpaListItem3d); }
void setXluListItem3D() { setXluDrawList(mXluListItem3d); }
void setXluListBG() { setXluDrawList(mXluListBG); }
void setOpaListBG() { setOpaDrawList(mOpaListBG); }
void setXluList2DScreen() { setXluDrawList(mList2DScreen); }
void setXluListSky() { setXluDrawList(mDrawBuffers[DB_XLU_LIST_SKY]); }
void setOpaListSky() { setOpaDrawList(mDrawBuffers[DB_OPA_LIST_SKY]); }
void setXluListDark() { setXluDrawList(mDrawBuffers[DB_XLU_LIST_DARK]); }
void setOpaListDark() { setOpaDrawList(mDrawBuffers[DB_OPA_LIST_DARK]); }
void setOpaList() { setOpaDrawList(mDrawBuffers[DB_OPA_LIST]); }
void setXluList() { setXluDrawList(mDrawBuffers[DB_XLU_LIST]); }
void setOpaListItem3D() { setOpaDrawList(mDrawBuffers[DB_OPA_LIST_ITEM3D]); }
void setXluListItem3D() { setXluDrawList(mDrawBuffers[DB_XLU_LIST_ITEM3D]); }
void setXluListBG() { setXluDrawList(mDrawBuffers[DB_XLU_LIST_BG]); }
void setOpaListBG() { setOpaDrawList(mDrawBuffers[DB_OPA_LIST_BG]); }
void setXluList2DScreen() { setXluDrawList(mDrawBuffers[DB_LIST_2D_SCREEN]); }
void peekZdata() { mPeekZ.peekData(); }
@@ -259,52 +309,25 @@ public:
param_6);
}
static void offWipe() { data_80450ED0 = 0; }
static void offWipe() { mWipe = 0; }
static f32 getWipeRate() { return mWipeRate; }
static u8 mWipeDlst[72];
static u8 mWipeColor[4];
static dDlst_2DT2_c mWipeDlst;
static GXColor mWipeColor;
static f32 mWipeRate;
static f32 mWipeSpeed[1 + 1 /* padding */];
static u8 mWipe;
private:
/* 0x00000 */ J3DDrawBuffer* mOpaListSky;
/* 0x00004 */ J3DDrawBuffer* mpXluListSky;
/* 0x00008 */ J3DDrawBuffer* mListP0;
/* 0x0000C */ J3DDrawBuffer* mOpaListBG;
/* 0x00010 */ J3DDrawBuffer* mXluListBG;
/* 0x00014 */ J3DDrawBuffer* mOpaListDarkBG;
/* 0x00018 */ J3DDrawBuffer* mXluListDarkBG;
/* 0x0001C */ J3DDrawBuffer* mOpaList;
/* 0x00020 */ J3DDrawBuffer* mXluList;
/* 0x00024 */ J3DDrawBuffer* mOpaListDark;
/* 0x00028 */ J3DDrawBuffer* mXluListDark;
/* 0x0002C */ J3DDrawBuffer* mOpaListPacket;
/* 0x00030 */ J3DDrawBuffer* mListFilter;
/* 0x00034 */ J3DDrawBuffer* mOpaListItem3d;
/* 0x00038 */ J3DDrawBuffer* mXluListItem3d;
/* 0x0003C */ J3DDrawBuffer* mOpaListInvisible;
/* 0x00040 */ J3DDrawBuffer* mXluListInvisible;
/* 0x00044 */ J3DDrawBuffer* mListZxlu;
/* 0x00048 */ J3DDrawBuffer* mList2DScreen;
/* 0x0004C */ J3DDrawBuffer* mListMiddle;
/* 0x00050 */ J3DDrawBuffer* mList3Dlast;
/* 0x00054 */ dDlst_list_c** field_0x54; // array?
/* 0x00058 */ u8 field_0x58[0xC];
/* 0x00064 */ dDlst_list_c* field_0x64;
/* 0x00068 */ dDlst_list_c** field_0x68;
/* 0x0006C */ dDlst_list_c** field_0x6c; // array?
/* 0x00070 */ u8 field_0x70[0x3C];
/* 0x000AC */ dDlst_base_c** field_0xac;
/* 0x000B0 */ dDlst_base_c** field_0xb0;
/* 0x000B4 */ dDlst_list_c** field_0xb4; // array?
/* 0x000B8 */ u8 field_0xb8[0xFC];
/* 0x001B4 */ dDlst_base_c** field_0x1b4;
/* 0x001B8 */ dDlst_base_c** field_0x1b8;
/* 0x001BC */ dDlst_list_c** field_0x1bc; // array?
/* 0x001C0 */ u8 field_0x1c0[0x7C];
/* 0x0023C */ dDlst_list_c* field_0x23c;
/* 0x00240 */ dDlst_list_c** field_0x240;
/* 0x00000 */ J3DDrawBuffer* mDrawBuffers[21];
/* 0x00054 */ dDlst_base_c** mpCopy2DDraw[4];
/* 0x00064 */ dDlst_base_c** mpCopy2DSet[2];
/* 0x0006C */ dDlst_base_c** mp2DOpaTopDraw[16];
/* 0x000AC */ dDlst_base_c** mp2DOpaTopSet[2];
/* 0x000B4 */ dDlst_base_c** mp2DOpaDraw[64];
/* 0x001B4 */ dDlst_base_c** mp2DOpaSet[2];
/* 0x001BC */ dDlst_base_c** mp2DXluDraw[32];
/* 0x0023C */ dDlst_base_c** mp2DXluSet[2];
/* 0x00244 */ dDlst_window_c* mWindow;
/* 0x00248 */ view_port_class* mViewport;
/* 0x0024C */ view_class* mView;
@@ -312,9 +335,8 @@ private:
/* 0x0025C */ dDlst_shadowControl_c mShadowControl;
/* 0x16154 */ mDoExt_3DlineMatSortPacket m3DLineMatSortPacket[3];
/* 0x16190 */ dDlst_peekZ_c mPeekZ;
/* 0x16198 */ u8 field_0x16198[8]; // might be part of peekZ
}; // Size: 0x161A0
}; // Size: 0x16394
STATIC_ASSERT(sizeof(dDlst_list_c) == 0x161A0);
STATIC_ASSERT(sizeof(dDlst_list_c) == 0x16394);
#endif /* D_D_DRAWLIST_H */
+16 -17
View File
@@ -250,23 +250,22 @@ struct dStage_DMap_c {
};
struct dStage_MapEvent_dt_c {
u8 mType;
u8 field_0x1[3 - 1];
u8 field_0x3;
u8 field_0x4;
u8 field_0x5;
u8 field_0x6;
u8 field_0x7;
u8 field_0x8;
u8 field_0x9;
u8 field_0xA[0xD - 0xA];
char mName[6];
u16 field_0x14;
u8 field_0x16;
u8 field_0x17;
u8 field_0x18;
u8 field_0x19[0x1B - 0x19];
u8 field_0x1B;
/* 0x00 */ u8 mType;
/* 0x01 */ u8 field_0x1[3 - 1];
/* 0x03 */ u8 field_0x3;
/* 0x04 */ u8 field_0x4;
/* 0x05 */ u8 field_0x5;
/* 0x06 */ u8 mPriority;
/* 0x07 */ u8 field_0x7;
/* 0x08 */ u8 field_0x8;
/* 0x09 */ u8 field_0x9;
/* 0x0A */ u8 field_0xA[0xD - 0xA];
/* 0x0D */ char mName[9];
/* 0x16 */ u8 field_0x16;
/* 0x17 */ u8 field_0x17;
/* 0x18 */ u8 mSeType; // 1: RIDDLE_A, 2: RIDDLE_B
/* 0x19 */ u8 field_0x19[0x1B - 0x19];
/* 0x1B */ u8 mSwitch;
}; // SIZE = 0x1C
struct dStage_MapEventInfo_c {
+31 -37
View File
@@ -24,42 +24,36 @@ public:
static u8 const CQ_patt[80];
private:
u32 field_0x0;
u32 field_0x4;
u32 field_0x8;
u32 field_0xc;
u32 field_0x10;
u32 field_0x14;
float field_0x18;
float field_0x1c;
float field_0x20;
u32 field_0x24;
u32 field_0x28;
u32 field_0x2c;
u32 field_0x30;
u32 field_0x34;
u32 field_0x38;
u32 field_0x3c;
float field_0x40;
float field_0x44;
float field_0x48;
u32 field_0x4c;
u32 field_0x50;
u32 field_0x54;
u32 field_0x58;
u32 field_0x5c;
u32 field_0x60;
u32 field_0x64;
u32 field_0x68;
u32 field_0x6c;
u32 field_0x70;
u32 field_0x74;
u32 field_0x78;
u32 field_0x7c;
u32 field_0x80;
u32 field_0x84;
u32 field_0x88;
u32 field_0x8c;
};
class {
public:
class {
public:
/* 0x00 */ u32 field_0x0;
/* 0x04 */ int field_0x4;
/* 0x08 */ s32 field_0x8;
/* 0x0C */ s32 field_0xc;
/* 0x10 */ s32 field_0x10;
/* 0x14 */ int field_0x14;
/* 0x18 */ cXyz field_0x18;
/* 0x24 */ u32 field_0x24;
} mShock, mQuake;
} /* 0x00 */ field_0x0;
/* 0x50 */ u32 field_0x50;
/* 0x54 */ int field_0x54;
/* 0x58 */ s32 field_0x58;
/* 0x5C */ s32 field_0x5c;
/* 0x60 */ u32 field_0x60;
/* 0x64 */ u32 field_0x64;
/* 0x68 */ u32 field_0x68;
/* 0x6C */ u32 field_0x6c;
/* 0x70 */ u32 field_0x70;
/* 0x74 */ u32 field_0x74;
/* 0x78 */ u32 field_0x78;
/* 0x7C */ u32 field_0x7c;
/* 0x80 */ u32 field_0x80;
/* 0x84 */ u32 field_0x84;
/* 0x88 */ s32 field_0x88;
/* 0x8C */ u32 field_0x8c;
}; // Size: 0x90
#endif /* D_D_VIBRATION_H */
+53 -28
View File
@@ -15,7 +15,7 @@ public:
/* 0x00 */ u16 mEventType;
/* 0x02 */ u16 mFlag;
/* 0x04 */ u16 field_0x04;
/* 0x04 */ u16 mHindFlag;
/* 0x08 */ fopAc_ac_c* mActor1;
/* 0x0C */ fopAc_ac_c* mActor2;
/* 0x10 */ s16 mEventId;
@@ -28,25 +28,50 @@ STATIC_ASSERT(sizeof(dEvt_order_c) == 0x18);
typedef int (*SkipFunc)(void*, int);
enum EventMode {
/* 0x0 */ EVT_MODE_NONE,
/* 0x1 */ EVT_MODE_TALK,
/* 0x2 */ EVT_MODE_DEMO,
/* 0x3 */
};
enum EventType {
/* 0x0 */ EVT_TYPE_TALK,
/* 0x1 */ EVT_TYPE_DOOR,
/* 0x2 */ EVT_TYPE_OTHER,
/* 0x3 */ EVT_TYPE_COMPULSORY,
/* 0x4 */ EVT_TYPE_POTENTIAL,
/* 0x5 */ EVT_TYPE_ITEM,
/* 0x6 */ EVT_TYPE_SHOWITEM_X,
/* 0x7 */ EVT_TYPE_SHOWITEM_Y,
/* 0xA */ EVT_TYPE_CATCH = 10,
/* 0xB */ EVT_TYPE_TREASURE,
};
enum EventStatus {
/* 0x0 */ STATUS_NONE,
};
class dEvt_control_c {
public:
dEvt_control_c();
s32 orderOld(u16, u16, u16, u16, void*, void*, void const*);
s32 orderOld(u16 eventType, u16 priority, u16 flag, u16 param_3, void* param_4, void* param_5,
void const* param_6);
s32 order(u16 eventType, u16 priority, u16 flag, u16 param_3, void* param_4, void* param_5,
s16 eventID, u8 infoIdx);
void setParam(dEvt_order_c*);
s32 beforeFlagProc(dEvt_order_c*);
void afterFlagProc(dEvt_order_c*);
int commonCheck(dEvt_order_c*, u16, u16);
int talkCheck(dEvt_order_c*);
int talkXyCheck(dEvt_order_c*);
int catchCheck(dEvt_order_c*);
void setParam(dEvt_order_c* p_order);
s32 beforeFlagProc(dEvt_order_c* p_order);
void afterFlagProc(dEvt_order_c* p_order);
int commonCheck(dEvt_order_c* p_order, u16 condition, u16 command);
int talkCheck(dEvt_order_c* p_order);
int talkXyCheck(dEvt_order_c* p_order);
int catchCheck(dEvt_order_c* p_order);
int talkEnd();
int demoCheck(dEvt_order_c*);
int demoCheck(dEvt_order_c* p_order);
int demoEnd();
int potentialCheck(dEvt_order_c*);
int doorCheck(dEvt_order_c*);
int itemCheck(dEvt_order_c*);
int potentialCheck(dEvt_order_c* p_order);
int doorCheck(dEvt_order_c* p_order);
int itemCheck(dEvt_order_c* p_order);
int endProc();
int change();
int entry();
@@ -64,20 +89,20 @@ public:
BOOL compulsory(void*, char const*, u16);
void remove();
dStage_MapEvent_dt_c* getStageEventDt();
void sceneChange(int);
void sceneChange(int exitId);
u32 getPId(void*);
void* convPId(unsigned int);
void* getStbDemoData(char*);
static dStage_MapEvent_dt_c* searchMapEventData(u8, s32);
static dStage_MapEvent_dt_c* searchMapEventData(u8);
s16 runningEventID(s16);
void setPt1(void*);
void setPt2(void*);
void setPtT(void*);
void setPtI(void*);
void setPtI_Id(unsigned int);
void setPtD(void*);
void setGtItm(u8);
void* getStbDemoData(char* resName);
static dStage_MapEvent_dt_c* searchMapEventData(u8 mapToolID, s32 roomNo);
static dStage_MapEvent_dt_c* searchMapEventData(u8 mapToolID);
s16 runningEventID(s16 eventID);
void setPt1(void* ptr);
void setPt2(void* ptr);
void setPtT(void* ptr);
void setPtI(void* ptr);
void setPtI_Id(unsigned int id);
void setPtD(void* ptr);
void setGtItm(u8 itemNo);
void isOrderOK();
u16 chkFlag2(u16 flag) { return flag & mFlag2; }
@@ -111,9 +136,9 @@ public:
/* 0x0DA */ u16 mFlag2;
/* 0x0DC */ u16 mHindFlag;
/* 0x0DE */ s16 mSpecifiedEvent; // name maybe wrong
/* 0x0E0 */ s16 field_0xe0;
/* 0x0E0 */ s16 mEventID;
/* 0x0E2 */ s8 mNum;
/* 0x0E3 */ s8 field_0xe3;
/* 0x0E3 */ s8 mOrderIdx;
/* 0x0E4 */ u8 mMode;
/* 0x0E5 */ u8 mEventStatus;
/* 0x0E6 */ u8 field_0xe6;
@@ -137,7 +162,7 @@ public:
/* 0x110 */ int mSkipFade;
/* 0x114 */ char mSkipEventName[20];
/* 0x128 */ u8 mCompulsory;
/* 0x129 */ bool field_0x129;
/* 0x129 */ bool mRoomInfoSet;
/* 0x12C */ int mRoomNo;
}; // Size = 0x130
+9 -9
View File
@@ -116,11 +116,11 @@ public:
s32 unk;
};
void specialProc_WaitStart(int);
void specialProc_WaitStart(int index);
void specialProc_WaitProc(int);
void specialProc();
void init();
void advanceCut(int);
void advanceCut(int cut);
void specialProcLight();
void specialProcMessage();
void specialProcSound();
@@ -159,7 +159,7 @@ class dEvDtEvent_c {
public:
int finishCheck();
int forceFinish();
void specialStaffProc(dEvDtStaff_c*);
void specialStaffProc(dEvDtStaff_c* p_staff);
int getNStaff() { return mNStaff; }
int getStaff(int idx) { return mStaff[idx]; }
char* getName() { return mName; }
@@ -183,9 +183,9 @@ public:
class dEvDtFlag_c {
public:
dEvDtFlag_c() {}
BOOL flagCheck(int);
BOOL flagSet(int);
BOOL flagMaxCheck(int);
BOOL flagCheck(int flag);
BOOL flagSet(int flag);
BOOL flagMaxCheck(int flag);
void init();
#define FlagMax 0x2800
@@ -199,9 +199,9 @@ public:
dEvDtBase_c() { init(); }
~dEvDtBase_c() {}
int init();
int init(char*, int);
void advanceCut(dEvDtEvent_c*);
BOOL advanceCutLocal(dEvDtStaff_c*);
int init(char* p_data, int roomNo);
void advanceCut(dEvDtEvent_c* p_event);
BOOL advanceCutLocal(dEvDtStaff_c* p_staff);
event_binary_data_header* getHeaderP() { return mHeaderP; }
dEvDtStaff_c* getStaffP(int i) { return &mStaffP[i]; }
+42 -38
View File
@@ -8,62 +8,66 @@ class dEvent_exception_c {
public:
dEvent_exception_c() { mEventInfoIdx = -1; }
void init();
s32 setStartDemo(int);
s32 setStartDemo(int mapToolID);
const char* getEventName();
// private:
s32 mEventInfoIdx;
u8 field_0x4;
u8 field_0x5;
u8 field_0x6;
u8 field_0x7;
s32 mState;
/* 0x0 */ s32 mEventInfoIdx;
/* 0x4 */ u8 field_0x4;
/* 0x5 */ u8 field_0x5;
/* 0x6 */ u8 field_0x6;
/* 0x7 */ u8 field_0x7;
/* 0x8 */ s32 mState;
};
#define EVT_SE_RIDDLE_A 1
#define EVT_SE_RIDDLE_B 2
class dEvent_manager_c {
public:
void* getSubstance(dEvDtData_c*, int);
void* getSubstance(dEvDtData_c* p_data, int type);
dEvent_manager_c();
~dEvent_manager_c() {}
int create();
bool setObjectArchive(char*);
bool setObjectArchive(char* arcName);
void demoInit();
void roomInit(int);
void roomFinish(int);
void roomInit(int roomNo);
void roomFinish(int roomNo);
int orderStartDemo();
void remove();
void startProc(dEvDtEvent_c*);
void closeProc(dEvDtEvent_c*);
void endProc(s16, int);
void startProc(dEvDtEvent_c* p_evnt);
void closeProc(dEvDtEvent_c* p_evnt);
void endProc(s16 eventID, int close);
void Sequencer();
void Experts();
dEvDtEvent_c* getEventData(s16);
dEvDtEvent_c* getEventData(s16 eventCompositId);
dEvDtEvent_c* getEventData(s16, int);
s16 getEventIdx(char const*, u8, s32);
s16 getEventIdx(fopAc_ac_c*, u8);
s16 getEventIdx(fopAc_ac_c*, char const*, u8);
int isMapToolCamera(u8, s32);
int order(s16);
int startCheck(s16);
int startCheckOld(char const*);
s16 getEventIdx(char const* eventName, u8 mapToolID, s32 roomNo);
s16 getEventIdx(fopAc_ac_c* pActor, u8 mapToolID);
s16 getEventIdx(fopAc_ac_c* pActor, char const* eventName, u8 mapToolID);
int isMapToolCamera(u8 mapToolID, s32 roomNo);
int order(s16 eventCompositId);
int startCheck(s16 eventCompositId);
int startCheckOld(char const* name);
int endCheck(s16);
int endCheckOld(char const*);
int getMyStaffId(char const*, fopAc_ac_c*, int);
int getIsAddvance(int);
int getMyActIdx(int, char const* const*, int, int, int);
char* getMyNowCutName(int);
dEvDtData_c* getMyDataP(int, char const*, int);
void* getMySubstanceP(int, char const*, int);
int getMySubstanceNum(int, char const*);
void cutEnd(int);
int getEventPrio(fopAc_ac_c*, s16);
void issueStaff(char const*);
void cancelStaff(char const*);
void setGoal(cXyz*);
int endCheckOld(char const* name);
int getMyStaffId(char const* staffName, fopAc_ac_c* pActor, int tagId);
int getIsAddvance(int staffIdx);
int getMyActIdx(int staffIdx, char const* const* param_1, int param_2, int param_3,
int param_4);
char* getMyNowCutName(int cutIndex);
dEvDtData_c* getMyDataP(int index, char const* name, int type);
void* getMySubstanceP(int index, char const* name, int type);
int getMySubstanceNum(int index, char const* name);
void cutEnd(int cutIndex);
int getEventPrio(fopAc_ac_c* pActor, s16 eventCompositId);
void issueStaff(char const* name);
void cancelStaff(char const* name);
void setGoal(cXyz* p_goal);
cXyz* getGoal();
const char* getRunEventName();
fopAc_ac_c* specialCast_Shutter(s16, int);
fopAc_ac_c* specialCast(char const*, int);
fopAc_ac_c* specialCast_Shutter(s16 bsTypeId, int param_1);
fopAc_ac_c* specialCast(char const* name, int param_1);
int ChkPresentEnd();
int checkStartDemo();
@@ -71,7 +75,7 @@ public:
void setCameraPlay(int status) { mCameraPlay = status; }
dEvDtBase_c& getBase() { return mEventList[mCurrentEventType]; }
void setFlag(int flag) { mFlags.flagSet(flag); }
bool dataLoaded() { return mDataLoaded; }
bool dataLoaded() { return mDataLoaded; }
int flagCheck(int flag) { return mFlags.flagCheck(flag); }
static int getIndexCompositId(s16 param_0) { return param_0 != -1 ? (u8)param_0 : -1; }
+59 -17
View File
@@ -12,28 +12,49 @@ public:
/* 0x02 */ u8 unk2;
/* 0x03 */ u8 unk3;
/* 0x04 */ u16* unk4;
}; // Size: 0x8
struct poly_class {
/* 0x00 */ u8 field_0x0;
/* 0x01 */ u8 field_0x1;
/* 0x04 */ u16* field_0x4;
}; // Size: 0x8
struct group_class {
/* 0x00 */ u8 field_0x0;
/* 0x01 */ u8 field_0x1;
/* 0x02 */ u8 field_0x2;
/* 0x03 */ u8 field_0x3;
/* 0x04 */ u8 field_0x4;
/* 0x08 */ dDrawPath_c::line_class* mpLine;
/* 0x0C */ u8 field_0xc[4];
/* 0x10 */ dDrawPath_c::poly_class* mpPoly;
}; // Size: 0x14
struct floor_class {
/* 0x0 */ s8 field_0x0;
/* 0x1 */ u8 field_0x1;
/* 0x4 */ dDrawPath_c::group_class* mpGroup;
}; // Size: 0x8
struct room_class {
/* 0x0 */ u8 field_0x0;
/* 0x4 */ dDrawPath_c::floor_class* mpFloor;
/* 0x8 */ void* field_0x8;
};
struct poly_class {};
struct group_class {};
struct floor_class {};
struct room_class {};
/* 8003CB00 */ void rendering(dDrawPath_c::group_class const*);
/* 8003CBBC */ void rendering(dDrawPath_c::floor_class const*);
/* 8002AD3C */ virtual ~dDrawPath_c();
/* 8002ABF0 */ virtual bool isDrawType(int);
virtual void getColor(int) = 0;
/* 8002AD84 */ virtual void getLineColor(int, int);
virtual void getLineWidth(int) = 0;
virtual void isSwitch(dDrawPath_c::group_class const*) = 0;
virtual void isRenderingFloor(int) = 0;
virtual void getFirstRoomPointer() = 0;
virtual void getNextRoomPointer() = 0;
virtual GXColor* getColor(int) = 0;
/* 8002AD84 */ virtual GXColor* getLineColor(int, int);
virtual int getLineWidth(int) = 0;
virtual bool isSwitch(dDrawPath_c::group_class const*) = 0;
virtual bool isRenderingFloor(int) = 0;
virtual room_class* getFirstRoomPointer() = 0;
virtual room_class* getNextRoomPointer() = 0;
/* 8003CCC4 */ virtual void drawPath();
/* 8003C94C */ virtual void rendering(dDrawPath_c::line_class const*);
/* 8003CA40 */ virtual void rendering(dDrawPath_c::poly_class const*);
@@ -55,7 +76,7 @@ public:
virtual void afterDrawPath() = 0;
virtual void preDrawPath() = 0;
virtual void postDrawPath() = 0;
virtual void isDrawPath() = 0;
virtual bool isDrawPath() = 0;
virtual void preRenderingMap() = 0;
virtual void postRenderingMap() = 0;
virtual GXColor* getBackColor() const = 0;
@@ -75,7 +96,7 @@ public:
/* 8003D6B8 */ virtual s32 getDecorationLineWidth(int);
private:
/* 0x04 */ int field_0x4;
/* 0x04 */ void* field_0x4;
/* 0x08 */ f32 field_0x8;
/* 0x0C */ f32 field_0xc;
/* 0x10 */ f32 field_0x10;
@@ -87,4 +108,25 @@ private:
/* 0x22 */ u16 field_0x22;
}; // Size: 0x24
struct dMpath_n {
class dTexObjAggregate_c {
public:
/* 8003C85C */ void create();
/* 8003C8F4 */ void remove();
/* 8003D740 */ ~dTexObjAggregate_c() { remove(); };
dTexObjAggregate_c() {
for (int i = 0; i < 7; i++) {
mp_texObj[i] = NULL;
}
}
/* 0x0 */ GXTexObj* mp_texObj[7];
};
static dTexObjAggregate_c m_texObjAgg;
};
STATIC_ASSERT(sizeof(dMpath_n::dTexObjAggregate_c) == 28);
#endif /* D_MAP_D_MAP_PATH_H */
+5 -5
View File
@@ -56,13 +56,13 @@ public:
/* 8003FE18 */ virtual void draw();
/* 8002B150 */ virtual ~renderingDAmap_c();
/* 8003FD9C */ virtual void isSwitch(dDrawPath_c::group_class const*);
/* 8003FE54 */ virtual void isRenderingFloor(int);
/* 80040134 */ virtual void getFirstRoomPointer();
/* 800401E8 */ virtual void getNextRoomPointer();
/* 8003FD9C */ virtual bool isSwitch(dDrawPath_c::group_class const*);
/* 8003FE54 */ virtual bool isRenderingFloor(int);
/* 80040134 */ virtual dDrawPath_c::room_class* getFirstRoomPointer();
/* 800401E8 */ virtual dDrawPath_c::room_class* getNextRoomPointer();
/* 8003FF14 */ virtual void preDrawPath();
/* 8003FFC4 */ virtual void postDrawPath();
/* 800402C0 */ virtual void isDrawPath();
/* 800402C0 */ virtual bool isDrawPath();
/* 8003FE4C */ virtual GXColor* getBackColor() const;
/* 800402E0 */ virtual bool getFirstDrawLayerNo();
/* 800402E8 */ virtual void getNextDrawLayerNo(int);
+5 -5
View File
@@ -58,18 +58,18 @@ public:
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_CLR_RGBA, GX_RGB8, 0);
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
GXPosition3s16(mDoGph_gInf_c::getMinX(), mDoGph_gInf_c::getMinY(), 0);
i_GXPosition3s16(mDoGph_gInf_c::getMinX(), mDoGph_gInf_c::getMinY(), 0);
GXTexCoord2s8(0, 0);
GXPosition3s16(mDoGph_gInf_c::getMaxX(), mDoGph_gInf_c::getMinY(), 0);
i_GXPosition3s16(mDoGph_gInf_c::getMaxX(), mDoGph_gInf_c::getMinY(), 0);
GXTexCoord2s8(1, 0);
GXPosition3s16(mDoGph_gInf_c::getMaxX(), mDoGph_gInf_c::getMaxY(), 0);
i_GXPosition3s16(mDoGph_gInf_c::getMaxX(), mDoGph_gInf_c::getMaxY(), 0);
GXTexCoord2s8(1, 1);
GXPosition3s16(mDoGph_gInf_c::getMinX(), mDoGph_gInf_c::getMaxY(), 0);
i_GXPosition3s16(mDoGph_gInf_c::getMinX(), mDoGph_gInf_c::getMaxY(), 0);
GXTexCoord2s8(0, 1);
GXEnd();
i_GXEnd();
}
} */
/* 801FE2E8 */ virtual ~dDlst_MENU_CAPTURE_c();
+132
View File
@@ -9,6 +9,138 @@
#include "d/pane/d_pane_class.h"
#include "dolphin/types.h"
enum dMeter2Draw_actionID {
/* 0x00 */ ACTION_STR_NONE,
/* 0x01 */ ACTION_STR_LET_GO,
/* 0x02 */ ACTION_STR_PEEK,
/* 0x03 */ ACTION_STR_ATTACK,
/* 0x04 */ ACTION_STR_PUT_AWAY,
/* 0x05 */ ACTION_STR_HOWL,
/* 0x06 */ ACTION_STR_OPEN,
/* 0x07 */ ACTION_STR_ENTER,
/* 0x08 */ ACTION_STR_CHECK,
/* 0x09 */ ACTION_STR_DASH,
/* 0x0A */ ACTION_STR_CROUCH,
/* 0x0B */ ACTION_STR_DEFEND,
/* 0x0C */ ACTION_STR_PICK_UP,
/* 0x0D */ ACTION_STR_DIG,
/* 0x0E */ ACTION_STR_EAT,
/* 0x0F */ ACTION_STR_SELECT,
/* 0x10 */ ACTION_STR_LOCK,
/* 0x11 */ ACTION_STR_SWITCH,
/* 0x12 */ ACTION_STR_BACK,
/* 0x13 */ ACTION_STR_THROW,
/* 0x14 */ ACTION_STR_PLACE,
/* 0x15 */ ACTION_STR_GRAB,
/* 0x16 */ ACTION_STR_GET_OFF,
/* 0x17 */ ACTION_STR_GET_ON,
/* 0x18 */ ACTION_STR_PADDLE,
/* 0x19 */ ACTION_STR_JUMP,
/* 0x1A */ ACTION_STR_READ,
/* 0x1B */ ACTION_STR_LOOK,
/* 0x1C */ ACTION_STR_SPEAK,
/* 0x1D */ ACTION_STR_LIFT,
/* 0x1E */ ACTION_STR_SWING,
/* 0x1F */ ACTION_STR_PICK_UP2,
/* 0x20 */ ACTION_STR_GET_ON2,
/* 0x21 */ ACTION_STR_GET_OFF2,
/* 0x22 */ ACTION_STR_CONFIRM,
/* 0x23 */ ACTION_STR_NEXT,
/* 0x24 */ ACTION_STR_INFO,
/* 0x25 */ ACTION_STR_NONE2,
/* 0x26 */ ACTION_STR_NONE3,
/* 0x27 */ ACTION_STR_NONE4,
/* 0x28 */ ACTION_STR_WHOOP,
/* 0x29 */ ACTION_STR_ZOOM,
/* 0x2A */ ACTION_STR_QUIT,
/* 0x2B */ ACTION_STR_PICK,
/* 0x2C */ ACTION_STR_BLOW,
/* 0x2D */ ACTION_STR_DODGE,
/* 0x2E */ ACTION_STR_CUT,
/* 0x2F */ ACTION_STR_HINT,
/* 0x30 */ ACTION_STR_FINISH,
/* 0x31 */ ACTION_STR_SET_FREE,
/* 0x32 */ ACTION_STR_DISMOUNT,
/* 0x33 */ ACTION_STR_DROP_DOWN,
/* 0x34 */ ACTION_STR_PICK_UP3,
/* 0x35 */ ACTION_STR_TAKE,
/* 0x36 */ ACTION_STR_HURRY,
/* 0x37 */ ACTION_STR_PULL_DOWN,
/* 0x38 */ ACTION_STR_PET,
/* 0x39 */ ACTION_STR_PICK_UP4,
/* 0x3A */ ACTION_STR_SHIELD_ATTACK,
/* 0x3B */ ACTION_STR_LISTEN,
/* 0x3C */ ACTION_STR_DRINK,
/* 0x3D */ ACTION_STR_ZOOM2,
/* 0x3E */ ACTION_STR_COVER,
/* 0x3F */ ACTION_STR_PUSH,
/* 0x40 */ ACTION_STR_RESIST,
/* 0x41 */ ACTION_STR_DIVE,
/* 0x42 */ ACTION_STR_PUT_TOGETHER,
/* 0x43 */ ACTION_STR_SKIP,
/* 0x44 */ ACTION_STR_SLAP,
/* 0x45 */ ACTION_STR_SNIFF,
/* 0x46 */ ACTION_STR_BITE,
/* 0x47 */ ACTION_STR_ROLL,
/* 0x48 */ ACTION_STR_FASTEN,
/* 0x49 */ ACTION_STR_GET_DOWN,
/* 0x4A */ ACTION_STR_HAWKEYE_OFF,
/* 0x4B */ ACTION_STR_DASH2,
/* 0x4C */ ACTION_STR_SWIM,
/* 0x4D */ ACTION_STR_CANT_SKIP,
/* 0x4E */ ACTION_STR_SENSE,
/* 0x4F */ ACTION_STR_NONE5,
/* 0x50 */ ACTION_STR_THROW2,
/* 0x51 */ ACTION_STR_LAND,
/* 0x52 */ ACTION_STR_HOOK,
/* 0x53 */ ACTION_STR_CHANGE_LOCKS,
/* 0x54 */ ACTION_STR_EQUIP,
/* 0x55 */ ACTION_STR_PULL,
/* 0x56 */ ACTION_STR_REEL,
/* 0x57 */ ACTION_STR_EXTRACT,
/* 0x58 */ ACTION_STR_SPIN,
/* 0x59 */ ACTION_STR_SWITCH2,
/* 0x5A */ ACTION_STR_SPIN_ATTACK,
/* 0x5B */ ACTION_STR_REEL_FAST,
/* 0x5C */ ACTION_STR_RAISE,
/* 0x5D */ ACTION_STR_RELEASE,
/* 0x5E */ ACTION_STR_CHECK2,
/* 0x5F */ ACTION_STR_MAP,
/* 0x60 */ ACTION_STR_ITEMS,
/* 0x61 */ ACTION_STR_INSERT,
/* 0x62 */ ACTION_STR_DRAW,
/* 0x63 */ ACTION_STR_STRIKE,
/* 0x64 */ ACTION_STR_BLANK,
/* 0x65 */ ACTION_STR_JUMP2,
/* 0x66 */ ACTION_STR_POINT_WII_REMOTE,
/* 0x67 */ ACTION_STR_FLIP,
/* 0x68 */ ACTION_STR_CHANGE_VIEW,
/* 0x69 */ ACTION_STR_ZOOM3,
/* 0x6A */ ACTION_STR_BACK2,
/* 0x6B */ ACTION_STR_CHANCE,
/* 0x6C */ ACTION_STR_SCOOP,
/* 0x6D */ ACTION_STR_SURVEY,
/* 0x6E */ ACTION_STR_CANCEL,
/* 0x6F */ ACTION_STR_SEIZE,
/* 0x70 */ ACTION_STR_COLLECTION,
/* 0x71 */ ACTION_STR_AREA_MAP,
/* 0x72 */ ACTION_STR_ACTION,
/* 0x73 */ ACTION_STR_SET_HOOK,
/* 0x74 */ ACTION_STR_TILT,
/* 0x75 */ ACTION_STR_THRUST,
/* 0x76 */ ACTION_STR_ROTATE,
/* 0x77 */ ACTION_STR_HELM_SPLITTER,
/* 0x78 */ ACTION_STR_MOVE,
/* 0x79 */ ACTION_STR_ROLL2,
/* 0x7A */ ACTION_STR_HOLD_ON,
/* 0x7B */ ACTION_STR_BITE2,
/* 0x7C */ ACTION_STR_HELP,
/* 0x7D */ ACTION_STR_ZOOM_IN,
/* 0x7E */ ACTION_STR_ZOOM_OUT,
/* 0x7F */ ACTION_STR_MOVE_CLOSER_TV,
/* 0x80 */ ACTION_STR_CHECK3,
};
class dKantera_icon_c;
class dMeter2Draw_c : public dDlst_base_c {
+4
View File
@@ -491,6 +491,10 @@ inline s16 dMeter2Info_getMsgKeyWaitTimer() {
return g_meter2_info.getMsgKeyWaitTimer();
}
inline void dMeter2Info_onDirectUseItem(int param_0) {
g_meter2_info.onDirectUseItem(param_0);
}
char* dMeter2Info_getNumberTextureName(int pIndex);
void dMeter2Info_recieveLetter();
u8 dMeter2Info_getNewLetterNum();
+4 -4
View File
@@ -19,8 +19,8 @@ public:
/* 800284D0 */ virtual void draw();
/* 8002ADB0 */ virtual ~renderingAmap_c();
/* 80028EE4 */ virtual void getLineColor(int, int);
/* 80028DD4 */ virtual void getLineWidth(int);
/* 80028EE4 */ virtual GXColor* getLineColor(int, int);
/* 80028DD4 */ virtual int getLineWidth(int);
/* 80028A10 */ virtual void drawPath();
/* 80028A30 */ virtual void rendering(dDrawPath_c::line_class const*);
/* 80028B3C */ virtual void rendering(dDrawPath_c::poly_class const*);
@@ -68,8 +68,8 @@ public:
/* 8002AB54 */ void _draw();
/* 8002AF20 */ virtual ~dMap_c();
/* 800296EC */ virtual void isDrawType(int);
/* 80028DF4 */ virtual void getColor(int);
/* 800296EC */ virtual bool isDrawType(int);
/* 80028DF4 */ virtual GXColor* getColor(int);
/* 800296F8 */ virtual void isRendAllRoom() const;
/* 8002A254 */ virtual void getRoomNoSingle();
/* 8002A1DC */ virtual void isDrawRoom(int, int) const;
+5 -1
View File
@@ -136,7 +136,7 @@ public:
/* 802383A4 */ void isMouthCheck();
/* 802383D0 */ static u32 getMessageID();
/* 802383E4 */ void getSmellTypeMessageID();
/* 80238410 */ void setSmellType(u8);
/* 80238410 */ static void setSmellType(u8);
/* 80238440 */ void getSelectCursorPos();
/* 8023846C */ static void setSelectCursorPos(u8);
/* 8023849C */ void setPortalMessageID(u16);
@@ -299,6 +299,10 @@ inline void dMsgObject_endFlowGroup() {
dMsgObject_c::endFlowGroup();
}
inline void dMsgObject_setSmellType(u8 type) {
dMsgObject_c::setSmellType(type);
}
class dMsgObject_HowlHIO_c {
public:
+98 -844
View File
@@ -2,821 +2,16 @@
#define GX_H_
#include "dolphin/gx/GXDisplayList.h"
#include "dolphin/gx/GXStruct.h"
#include "dolphin/gx/GXEnum.h"
#include "dolphin/mtx/mtx.h"
#include "dolphin/mtx/mtx44.h"
#include "dolphin/types.h"
#include "global.h"
typedef struct _GXColor {
/* 0x0 */ u8 r;
/* 0x1 */ u8 g;
/* 0x2 */ u8 b;
/* 0x3 */ u8 a;
} GXColor;
typedef struct _GXColorS10 {
/* 0x0 */ s16 r;
/* 0x2 */ s16 g;
/* 0x4 */ s16 b;
/* 0x6 */ s16 a;
} GXColorS10;
typedef struct _GXRenderModeObj {
s32 vi_tv_mode;
u16 fb_width;
u16 efb_height;
u16 xfb_height;
u16 vi_x_origin;
u16 vi_y_origin;
u16 vi_width;
u16 vi_height;
s32 xfb_mode;
u8 field_rendering;
bool antialiasing;
u8 sample_pattern[12][2];
u8 vfilter[7];
} GXRenderModeObj;
STATIC_ASSERT(sizeof(_GXRenderModeObj) == 60);
typedef struct _GXTexObj {
/* 0x00 */ u32 texture_filter;
/* 0x04 */ u32 texture_lod;
/* 0x08 */ u32 texture_size;
/* 0x0C */ u32 texture_address;
/* 0x10 */ u32 user_data;
/* 0x14 */ u32 texture_format;
/* 0x18 */ u32 tlut_name;
/* 0x1C */ u16 texture_time_count;
/* 0x1E */ u8 texture_tile_type;
/* 0x1F */ u8 texture_flags;
} GXTexObj;
typedef struct _GXTlutObj {
/* 0x0 */ u32 format;
/* 0x4 */ u32 address;
/* 0x8 */ u32 numEntries;
} GXTlutObj;
typedef struct _GXLightObj {
/* 0x0 */ u32 data[16];
} GXLightObj;
typedef struct _GXFogAdjTable {
/* 0x0 */ u16 r[10];
} GXFogAdjTable;
typedef struct _GXFifoObj {
/* 0x00 */ void* base;
/* 0x04 */ u32 end;
/* 0x08 */ u32 size;
/* 0x0C */ u32 high_wtrmark;
/* 0x10 */ u32 low_wtrmark;
/* 0x14 */ void* read_ptr;
/* 0x18 */ void* write_ptr;
/* 0x1C */ void* rw_dst;
/* 0x20 */ u8 fifo_wrap;
/* 0x21 */ bool cpu_fifo_ready;
/* 0x22 */ bool gp_fifo_ready;
/* 0x23 */ u8 field_0x23[93];
} GXFifoObj; // Size: 0x80
typedef struct _GXTexRegion {
/* 0x00 */ u8 dummy[0x10];
} GXTexRegion; // Size: 0x10
typedef enum _GXPrimitive {
/* 0x80 */ GX_QUADS = 0x80,
/* 0x90 */ GX_TRIANGLES = 0x90,
/* 0x98 */ GX_TRIANGLESTRIP = 0x98,
/* 0xA0 */ GX_TRIANGLEFAN = 0xA0,
/* 0xA8 */ GX_LINES = 0xA8,
/* 0xB0 */ GX_LINESTRIP = 0xB0,
/* 0xB8 */ GX_POINTS = 0xB8,
} GXPrimitive;
typedef enum _GXCullMode {
/* 0x0 */ GX_CULL_NONE,
/* 0x1 */ GX_CULL_FRONT,
/* 0x2 */ GX_CULL_BACK,
/* 0x3 */ GX_CULL_ALL
} GXCullMode;
typedef enum _GXBool {
/* 0x0 */ GX_FALSE,
/* 0x1 */ GX_TRUE,
/* 0x0 */ GX_DISABLE = 0,
/* 0x1 */ GX_ENABLE
} GXBool;
typedef enum _GXTexMapID {
/* 0x000 */ GX_TEXMAP0,
/* 0x001 */ GX_TEXMAP1,
/* 0x002 */ GX_TEXMAP2,
/* 0x003 */ GX_TEXMAP3,
/* 0x004 */ GX_TEXMAP4,
/* 0x005 */ GX_TEXMAP5,
/* 0x006 */ GX_TEXMAP6,
/* 0x007 */ GX_TEXMAP7,
/* 0x008 */ GX_MAX_TEXMAP,
/* 0x0FF */ GX_TEXMAP_NULL = 255,
/* 0x100 */ GX_TEXMAP_DISABLE,
} GXTexMapID;
typedef enum _GXTevStageID {
/* 0x00 */ GX_TEVSTAGE0,
/* 0x01 */ GX_TEVSTAGE1,
/* 0x02 */ GX_TEVSTAGE2,
/* 0x03 */ GX_TEVSTAGE3,
/* 0x04 */ GX_TEVSTAGE4,
/* 0x05 */ GX_TEVSTAGE5,
/* 0x06 */ GX_TEVSTAGE6,
/* 0x07 */ GX_TEVSTAGE7,
/* 0x08 */ GX_TEVSTAGE8,
/* 0x09 */ GX_TEVSTAGE9,
/* 0x0A */ GX_TEVSTAGE10,
/* 0x0B */ GX_TEVSTAGE11,
/* 0x0C */ GX_TEVSTAGE12,
/* 0x0D */ GX_TEVSTAGE13,
/* 0x0E */ GX_TEVSTAGE14,
/* 0x0F */ GX_TEVSTAGE15,
/* 0x10 */ GX_MAX_TEVSTAGE,
} GXTevStageID;
typedef enum _GXTexCoordID {
/* 0x00 */ GX_TEXCOORD0,
/* 0x01 */ GX_TEXCOORD1,
/* 0x02 */ GX_TEXCOORD2,
/* 0x03 */ GX_TEXCOORD3,
/* 0x04 */ GX_TEXCOORD4,
/* 0x05 */ GX_TEXCOORD5,
/* 0x06 */ GX_TEXCOORD6,
/* 0x07 */ GX_TEXCOORD7,
/* 0x08 */ GX_MAXCOORD,
/* 0xFF */ GX_TEXCOORD_NULL = 255,
} GXTexCoordID;
typedef enum _GXChannelID {
/* 0x00 */ GX_COLOR0,
/* 0x01 */ GX_COLOR1,
/* 0x02 */ GX_ALPHA0,
/* 0x03 */ GX_ALPHA1,
/* 0x04 */ GX_COLOR0A0,
/* 0x05 */ GX_COLOR1A1,
/* 0x06 */ GX_COLOR_ZERO,
/* 0x07 */ GX_ALPHA_BUMP,
/* 0x08 */ GX_ALPHA_BUMPN,
/* 0xFF */ GX_COLOR_NULL = 255,
} GXChannelID;
typedef enum _GXColorSrc {
/* 0x0 */ GX_SRC_REG,
/* 0x1 */ GX_SRC_VTX,
} GXColorSrc;
typedef enum _GXLightID {
/* 0x000 */ GX_LIGHT_NULL = 0,
/* 0x001 */ GX_LIGHT0 = 1 << 0,
/* 0x002 */ GX_LIGHT1 = 1 << 1,
/* 0x004 */ GX_LIGHT2 = 1 << 2,
/* 0x008 */ GX_LIGHT3 = 1 << 3,
/* 0x010 */ GX_LIGHT4 = 1 << 4,
/* 0x020 */ GX_LIGHT5 = 1 << 5,
/* 0x040 */ GX_LIGHT6 = 1 << 6,
/* 0x080 */ GX_LIGHT7 = 1 << 7,
/* 0x100 */ GX_MAX_LIGHT = 1 << 8,
} GXLightID;
typedef enum _GXDiffuseFn {
/* 0x0 */ GX_DF_NONE,
/* 0x1 */ GX_DF_SIGN,
/* 0x2 */ GX_DF_CLAMP,
} GXDiffuseFn;
typedef enum _GXAttnFn {
/* 0x0 */ GX_AF_SPEC,
/* 0x1 */ GX_AF_SPOT,
/* 0x2 */ GX_AF_NONE,
} GXAttnFn;
typedef enum _GXDistAttnFn {
/* 0x0 */ GX_DA_OFF,
/* 0x1 */ GX_DA_GENTLE,
/* 0x2 */ GX_DA_MEDIUM,
/* 0x3 */ GX_DA_STEEP
} GXDistAttnFn;
typedef enum _GXSpotFn {
/* 0x0 */ GX_SP_OFF,
/* 0x1 */ GX_SP_FLAT,
/* 0x2 */ GX_SP_COS,
/* 0x3 */ GX_SP_COS2,
/* 0x4 */ GX_SP_SHARP,
/* 0x5 */ GX_SP_RING1,
/* 0x6 */ GX_SP_RING2
} GXSpotFn;
typedef enum _GXTevMode {
/* 0x0 */ GX_MODULATE,
/* 0x1 */ GX_DECAL,
/* 0x2 */ GX_BLEND,
/* 0x3 */ GX_REPLACE,
/* 0x4 */ GX_PASSCLR,
} GXTevMode;
typedef enum _GXBlendMode {
/* 0x0 */ GX_BM_NONE,
/* 0x1 */ GX_BM_BLEND,
/* 0x2 */ GX_BM_LOGIC,
/* 0x3 */ GX_BM_SUBTRACT,
/* 0x4 */ GX_MAX_BLENDMODE,
} GXBlendMode;
typedef enum _GXBlendFactor {
/* 0x0 */ GX_BL_ZERO,
/* 0x1 */ GX_BL_ONE,
/* 0x2 */ GX_BL_SRC_COLOR,
/* 0x2 */ GX_BL_DST_COLOR = 2,
/* 0x3 */ GX_BL_INV_SRC_COLOR,
/* 0x3 */ GX_BL_INV_DST_COLOR = 3,
/* 0x4 */ GX_BL_SRC_ALPHA,
/* 0x5 */ GX_BL_INV_SRC_ALPHA,
/* 0x6 */ GX_BL_DST_ALPHA,
/* 0x7 */ GX_BL_INV_DST_ALPHA,
} GXBlendFactor;
typedef enum _GXLogicOp {
/* 0x0 */ GX_LO_CLEAR,
/* 0x1 */ GX_LO_AND,
/* 0x2 */ GX_LO_REV_AND,
/* 0x3 */ GX_LO_COPY,
/* 0x4 */ GX_LO_INV_AND,
/* 0x5 */ GX_LO_NOOP,
/* 0x6 */ GX_LO_XOR,
/* 0x7 */ GX_LO_OR,
/* 0x8 */ GX_LO_NOR,
/* 0x9 */ GX_LO_EQUIV,
/* 0xA */ GX_LO_INV,
/* 0xB */ GX_LO_REV_OR,
/* 0xC */ GX_LO_INV_COPY,
/* 0xD */ GX_LO_INV_OR,
/* 0xE */ GX_LO_NAND,
/* 0xF */ GX_LO_SET,
} GXLogicOp;
typedef enum _GXVtxFmt {
/* 0x0 */ GX_VTXFMT0,
/* 0x1 */ GX_VTXFMT1,
/* 0x2 */ GX_VTXFMT2,
/* 0x3 */ GX_VTXFMT3,
/* 0x4 */ GX_VTXFMT4,
/* 0x5 */ GX_VTXFMT5,
/* 0x6 */ GX_VTXFMT6,
/* 0x7 */ GX_VTXFMT7,
/* 0x8 */ GX_MAX_VTXFMT,
} GXVtxFmt;
typedef enum _GXAttr {
/* 0x00 */ GX_VA_PNMTXIDX,
/* 0x01 */ GX_VA_TEX0MTXIDX,
/* 0x02 */ GX_VA_TEX1MTXIDX,
/* 0x03 */ GX_VA_TEX2MTXIDX,
/* 0x04 */ GX_VA_TEX3MTXIDX,
/* 0x05 */ GX_VA_TEX4MTXIDX,
/* 0x06 */ GX_VA_TEX5MTXIDX,
/* 0x07 */ GX_VA_TEX6MTXIDX,
/* 0x08 */ GX_VA_TEX7MTXIDX,
/* 0x09 */ GX_VA_POS,
/* 0x0A */ GX_VA_NRM,
/* 0x0B */ GX_VA_CLR0,
/* 0x0C */ GX_VA_CLR1,
/* 0x0D */ GX_VA_TEX0,
/* 0x0E */ GX_VA_TEX1,
/* 0x0F */ GX_VA_TEX2,
/* 0x10 */ GX_VA_TEX3,
/* 0x11 */ GX_VA_TEX4,
/* 0x12 */ GX_VA_TEX5,
/* 0x13 */ GX_VA_TEX6,
/* 0x14 */ GX_VA_TEX7,
/* 0x15 */ GX_POS_MTX_ARRAY,
/* 0x16 */ GX_NRM_MTX_ARRAY,
/* 0x17 */ GX_TEX_MTX_ARRAY,
/* 0x18 */ GX_LIGHT_ARRAY,
/* 0x19 */ GX_VA_NBT,
/* 0x1A */ GX_VA_MAX_ATTR,
/* 0xFF */ GX_VA_NULL = 255,
} GXAttr;
typedef enum _GXCompCnt {
/* 0x0 */ GX_POS_XY = 0,
/* 0x1 */ GX_POS_XYZ = 1,
/* 0x0 */ GX_NRM_XYZ = 0,
/* 0x1 */ GX_NRM_NBT = 1,
/* 0x2 */ GX_NRM_NBT3 = 2,
/* 0x0 */ GX_CLR_RGB = 0,
/* 0x1 */ GX_CLR_RGBA = 1,
/* 0x0 */ GX_TEX_S = 0,
/* 0x1 */ GX_TEX_ST = 1,
} GXCompCnt;
typedef enum _GXCompType {
/* 0x0 */ GX_U8,
/* 0x1 */ GX_S8,
/* 0x2 */ GX_U16,
/* 0x3 */ GX_S16,
/* 0x4 */ GX_F32,
/* 0x0 */ GX_RGB565 = 0,
/* 0x1 */ GX_RGB8,
/* 0x2 */ GX_RGBX8,
/* 0x3 */ GX_RGBA4,
/* 0x4 */ GX_RGBA6,
/* 0x5 */ GX_RGBA8,
} GXCompType;
typedef enum _GXAttrType {
/* 0x0 */ GX_NONE,
/* 0x1 */ GX_DIRECT,
/* 0x2 */ GX_INDEX8,
/* 0x3 */ GX_INDEX16,
} GXAttrType;
typedef enum _GXTevOp {
/* 0x0 */ GX_TEV_ADD,
/* 0x1 */ GX_TEV_SUB,
/* 0x8 */ GX_TEV_COMP_R8_GT = 8,
/* 0x9 */ GX_TEV_COMP_R8_EQ,
/* 0xA */ GX_TEV_COMP_GR16_GT,
/* 0xB */ GX_TEV_COMP_GR16_EQ,
/* 0xC */ GX_TEV_COMP_BGR24_GT,
/* 0xD */ GX_TEV_COMP_BGR24_EQ,
/* 0xE */ GX_TEV_COMP_A8_GT,
/* 0xE */ GX_TEV_COMP_RGB8_GT = 14,
/* 0xF */ GX_TEV_COMP_RGB8_EQ,
/* 0xF */ GX_TEV_COMP_A8_EQ = 15,
} GXTevOp;
typedef enum _GXTevBias {
/* 0x0 */ GX_TB_ZERO,
/* 0x1 */ GX_TB_ADDHALF,
/* 0x2 */ GX_TB_SUBHALF,
/* 0x3 */ GX_MAX_TEVBIAS,
} GXTevBias;
typedef enum _GXTevColorArg {
/* 0x0 */ GX_CC_CPREV,
/* 0x1 */ GX_CC_APREV,
/* 0x2 */ GX_CC_C0,
/* 0x3 */ GX_CC_A0,
/* 0x4 */ GX_CC_C1,
/* 0x5 */ GX_CC_A1,
/* 0x6 */ GX_CC_C2,
/* 0x7 */ GX_CC_A2,
/* 0x8 */ GX_CC_TEXC,
/* 0x9 */ GX_CC_TEXA,
/* 0xA */ GX_CC_RASC,
/* 0xB */ GX_CC_RASA,
/* 0xC */ GX_CC_ONE,
/* 0xD */ GX_CC_HALF,
/* 0xE */ GX_CC_KONST,
/* 0xF */ GX_CC_ZERO,
} GXTevColorArg;
typedef enum _GXTevColor {
/* 0x0 */ GX_CH_RED,
/* 0x1 */ GX_CH_GREEN,
/* 0x2 */ GX_CH_BLUE,
/* 0x3 */ GX_CH_ALPHA,
} GXTevColor;
typedef enum _GXTevScale {
/* 0x0 */ GX_CS_SCALE_1,
/* 0x1 */ GX_CS_SCALE_2,
/* 0x2 */ GX_CS_SCALE_4,
/* 0x3 */ GX_CS_DIVIDE_2,
/* 0x4 */ GX_MAX_TEVSCALE
} GXTevScale;
typedef enum _GXTevRegID {
/* 0x0 */ GX_TEVPREV,
/* 0x1 */ GX_TEVREG0,
/* 0x2 */ GX_TEVREG1,
/* 0x3 */ GX_TEVREG2,
/* 0x4 */ GX_MAX_TEVREG
} GXTevRegID;
typedef enum _GXTevAlphaArg {
/* 0x0 */ GX_CA_APREV,
/* 0x1 */ GX_CA_A0,
/* 0x2 */ GX_CA_A1,
/* 0x3 */ GX_CA_A2,
/* 0x4 */ GX_CA_TEXA,
/* 0x5 */ GX_CA_RASA,
/* 0x6 */ GX_CA_KONST,
/* 0x7 */ GX_CA_ZERO,
} GXTevAlphaArg;
typedef enum _GXTexFmt {
/* 0x0 */ GX_TF_I4,
/* 0x1 */ GX_TF_I8,
/* 0x2 */ GX_TF_IA4,
/* 0x3 */ GX_TF_IA8,
/* 0x4 */ GX_TF_RGB565,
/* 0x5 */ GX_TF_TGB5A3,
/* 0x6 */ GX_TF_RGBA8,
/* 0x7 */ GX_TF_CI4,
/* 0x8 */ GX_TF_CI8,
/* 0x9 */ GX_TF_CI14,
/* 0xE */ GX_TF_CMPR = 14,
/* 0x10 */ _GX_TF_ZTF = 0x10,
/* 0x11 */ GX_TF_Z8 = (0x1 | _GX_TF_ZTF),
/* 0x13 */ GX_TF_Z16 = (0x3 | _GX_TF_ZTF),
/* 0x16 */ GX_TF_Z24X8 = (0x6 | _GX_TF_ZTF),
/* 0x20 */ _GX_TF_CTF = 0x20,
/* 0x30 */ GX_CTF_Z4 = (0x0 | _GX_TF_ZTF | _GX_TF_CTF),
/* 0x39 */ GX_CTF_Z8M = (0x9 | _GX_TF_ZTF | _GX_TF_CTF),
/* 0x3A */ GX_CTF_Z8L = (0xA | _GX_TF_ZTF | _GX_TF_CTF),
/* 0x3C */ GX_CTF_Z16L = (0xC | _GX_TF_ZTF | _GX_TF_CTF),
} GXTexFmt;
typedef enum _GXGamma {
/* 0x0 */ GX_GM_1_0,
/* 0x0 */ GX_GM_1_7,
/* 0x0 */ GX_GM_2_2,
} GXGamma;
typedef enum _GXTlutFmt {
/* 0x0 */ GX_TL_IA8,
/* 0x1 */ GX_TL_RGB565,
/* 0x2 */ GX_TL_RGB5A3,
} GXTlutFmt;
typedef enum _GXTlut {
/* 0x00 */ GX_TLUT0,
/* 0x01 */ GX_TLUT1,
/* 0x02 */ GX_TLUT2,
/* 0x03 */ GX_TLUT3,
/* 0x04 */ GX_TLUT4,
/* 0x05 */ GX_TLUT5,
/* 0x06 */ GX_TLUT6,
/* 0x07 */ GX_TLUT7,
/* 0x08 */ GX_TLUT8,
/* 0x09 */ GX_TLUT9,
/* 0x0A */ GX_TLUT10,
/* 0x0B */ GX_TLUT11,
/* 0x0C */ GX_TLUT12,
/* 0x0D */ GX_TLUT13,
/* 0x0E */ GX_TLUT14,
/* 0x0F */ GX_TLUT15,
/* 0x10 */ GX_BIGTLUT0,
/* 0x11 */ GX_BIGTLUT1,
/* 0x12 */ GX_BIGTLUT2,
/* 0x13 */ GX_BIGTLUT3,
} GXTlut;
/* 8-bit version of GXTexFmt for use in structures */
typedef enum _GXTexFmt8 {
/* 0x20 */ GX_CTF_R4 = (0x0 | _GX_TF_CTF),
/* 0x22 */ GX_CTF_RA4 = (0x2 | _GX_TF_CTF),
/* 0x23 */ GX_CTF_RA8 = (0x3 | _GX_TF_CTF),
/* 0x26 */ GX_CTF_YUVA8 = (0x6 | _GX_TF_CTF),
/* 0x27 */ GX_CTF_A8 = (0x7 | _GX_TF_CTF),
/* 0x28 */ GX_CTF_R8 = (0x8 | _GX_TF_CTF),
/* 0x29 */ GX_CTF_G8 = (0x9 | _GX_TF_CTF),
/* 0x2A */ GX_CTF_B8 = (0xA | _GX_TF_CTF),
/* 0x2B */ GX_CTF_RG8 = (0xB | _GX_TF_CTF),
/* 0x2C */ GX_CTF_GB8 = (0xC | _GX_TF_CTF),
} GXTexFmt8;
typedef enum _GXTexWrapMode {
/* 0x0 */ GX_CLAMP,
/* 0x1 */ GX_REPEAT,
/* 0x2 */ GX_MIRROR,
/* 0x3 */ GX_MAX_TEXWRAP_MODE,
} GXTexWrapMode;
typedef enum _GXTexFilter {
/* 0x0 */ GX_NEAR,
/* 0x1 */ GX_LINEAR,
/* 0x2 */ GX_NEAR_MIP_NEAR,
/* 0x3 */ GX_LIN_MIP_NEAR,
/* 0x4 */ GX_NEAR_MIP_LIN,
/* 0x5 */ GX_LIN_MIP_LIN,
} GXTexFilter;
typedef enum _GXAnisotropy {
/* 0x0 */ GX_ANISO_1,
/* 0x1 */ GX_ANISO_2,
/* 0x2 */ GX_ANISO_4,
/* 0x3 */ GX_MAX_ANISOTROPY,
} GXAnisotropy;
enum GXCITexFmt {
/* 0x8 */ GX_TF_C4 = 8,
/* 0x8 */ GX_TF_C8,
/* 0xA */ GX_TF_C14X2
};
typedef enum _GXTexMtxType {
/* 0x0 */ GX_MTX3x4,
/* 0x1 */ GX_MTX2x4
} GXTexMtxType;
typedef enum _GXCompare {
/* 0x0 */ GX_NEVER,
/* 0x1 */ GX_LESS,
/* 0x2 */ GX_EQUAL,
/* 0x3 */ GX_LEQUAL,
/* 0x4 */ GX_GREATER,
/* 0x5 */ GX_NEQUAL,
/* 0x6 */ GX_GEQUAL,
/* 0x7 */ GX_ALWAYS,
} GXCompare;
typedef enum _GXAlphaOp {
/* 0x0 */ GX_AOP_AND,
/* 0x1 */ GX_AOP_OR,
/* 0x2 */ GX_AOP_XOR,
/* 0x3 */ GX_AOP_XNOR,
/* 0x4 */ GX_MAX_ALPHAOP
} GXAlphaOp;
typedef enum _GXFogType {
/* 0x0 */ GX_FOG_NONE,
/* 0x2 */ GX_FOG_LIN = 2,
/* 0x2 */ GX_FOG_PERSP_LIN = 2,
/* 0x4 */ GX_FOG_EXP = 4,
/* 0x4 */ GX_FOG_PERSP_EXP = 4,
/* 0x5 */ GX_FOG_EXP2,
/* 0x5 */ GX_FOG_PERSP_EXP2 = 5,
/* 0x6 */ GX_FOG_REVEXP,
/* 0x6 */ GX_FOG_PERSP_REVEXP = 6,
/* 0x7 */ GX_FOG_REVEXP2,
/* 0x7 */ GX_FOG_PERSP_REVEXP2 = 7,
/* 0xA */ GX_FOG_ORTHO_LIN = 10,
/* 0xC */ GX_FOG_ORTHO_EXP = 12,
/* 0xD */ GX_FOG_ORTHO_EXP2,
/* 0xE */ GX_FOG_ORTHO_REVEXP,
/* 0xF */ GX_FOG_ORTHO_REVEXP2,
} GXFogType;
typedef enum _GXProjectionType {
/* 0x0 */ GX_PERSPECTIVE,
/* 0x1 */ GX_ORTHOGRAPHIC
} GXProjectionType;
typedef enum _GXTevKAlphaSel {
/* 0x00 */ GX_TEV_KASEL_1,
/* 0x01 */ GX_TEV_KASEL_7_8,
/* 0x02 */ GX_TEV_KASEL_3_4,
/* 0x03 */ GX_TEV_KASEL_5_8,
/* 0x04 */ GX_TEV_KASEL_1_2,
/* 0x05 */ GX_TEV_KASEL_3_8,
/* 0x06 */ GX_TEV_KASEL_1_4,
/* 0x07 */ GX_TEV_KASEL_1_8,
/* 0x10 */ GX_TEV_KASEL_K0_R = 0x10,
/* 0x11 */ GX_TEV_KASEL_K1_R,
/* 0x12 */ GX_TEV_KASEL_K2_R,
/* 0x13 */ GX_TEV_KASEL_K3_R,
/* 0x14 */ GX_TEV_KASEL_K0_G,
/* 0x15 */ GX_TEV_KASEL_K1_G,
/* 0x16 */ GX_TEV_KASEL_K2_G,
/* 0x17 */ GX_TEV_KASEL_K3_G,
/* 0x18 */ GX_TEV_KASEL_K0_B,
/* 0x19 */ GX_TEV_KASEL_K1_B,
/* 0x1A */ GX_TEV_KASEL_K2_B,
/* 0x1B */ GX_TEV_KASEL_K3_B,
/* 0x1C */ GX_TEV_KASEL_K0_A,
/* 0x1D */ GX_TEV_KASEL_K1_A,
/* 0x1E */ GX_TEV_KASEL_K2_A,
/* 0x1F */ GX_TEV_KASEL_K3_A,
} GXTevKAlphaSel;
typedef enum _GXTevKColorSel {
/* 0x00 */ GX_TEV_KCSEL_1,
/* 0x01 */ GX_TEV_KCSEL_7_8,
/* 0x02 */ GX_TEV_KCSEL_3_4,
/* 0x03 */ GX_TEV_KCSEL_5_8,
/* 0x04 */ GX_TEV_KCSEL_1_2,
/* 0x05 */ GX_TEV_KCSEL_3_8,
/* 0x06 */ GX_TEV_KCSEL_1_4,
/* 0x07 */ GX_TEV_KCSEL_1_8,
/* 0x0C */ GX_TEV_KCSEL_K0 = 0xC,
/* 0x0D */ GX_TEV_KCSEL_K1,
/* 0x0E */ GX_TEV_KCSEL_K2,
/* 0x0F */ GX_TEV_KCSEL_K3,
/* 0x10 */ GX_TEV_KCSEL_K0_R,
/* 0x11 */ GX_TEV_KCSEL_K1_R,
/* 0x12 */ GX_TEV_KCSEL_K2_R,
/* 0x13 */ GX_TEV_KCSEL_K3_R,
/* 0x14 */ GX_TEV_KCSEL_K0_G,
/* 0x15 */ GX_TEV_KCSEL_K1_G,
/* 0x16 */ GX_TEV_KCSEL_K2_G,
/* 0x17 */ GX_TEV_KCSEL_K3_G,
/* 0x18 */ GX_TEV_KCSEL_K0_B,
/* 0x19 */ GX_TEV_KCSEL_K1_B,
/* 0x1A */ GX_TEV_KCSEL_K2_B,
/* 0x1B */ GX_TEV_KCSEL_K3_B,
/* 0x1C */ GX_TEV_KCSEL_K0_A,
/* 0x1D */ GX_TEV_KCSEL_K1_A,
/* 0x1E */ GX_TEV_KCSEL_K2_A,
/* 0x1F */ GX_TEV_KCSEL_K3_A,
} GXTevKColorSel;
typedef enum _GXTevSwapSel {
/* 0x0 */ GX_TEV_SWAP0,
/* 0x1 */ GX_TEV_SWAP1,
/* 0x2 */ GX_TEV_SWAP2,
/* 0x3 */ GX_TEV_SWAP3,
/* 0x4 */ GX_MAX_TEVSWAP,
} GXTevSwapSel;
typedef enum _GXTexGenType {
/* 0x0 */ GX_TG_MTX3x4,
/* 0x1 */ GX_TG_MTX2x4,
/* 0x2 */ GX_TG_BUMP0,
/* 0x3 */ GX_TG_BUMP1,
/* 0x4 */ GX_TG_BUMP2,
/* 0x5 */ GX_TG_BUMP3,
/* 0x6 */ GX_TG_BUMP4,
/* 0x7 */ GX_TG_BUMP5,
/* 0x8 */ GX_TG_BUMP6,
/* 0x9 */ GX_TG_BUMP7,
/* 0xA */ GX_TG_SRTG,
} GXTexGenType;
typedef enum _GXTexGenSrc {
/* 0x00 */ GX_TG_POS,
/* 0x01 */ GX_TG_NRM,
/* 0x02 */ GX_TG_BINRM,
/* 0x03 */ GX_TG_TANGENT,
/* 0x04 */ GX_TG_TEX0,
/* 0x05 */ GX_TG_TEX1,
/* 0x06 */ GX_TG_TEX2,
/* 0x07 */ GX_TG_TEX3,
/* 0x08 */ GX_TG_TEX4,
/* 0x09 */ GX_TG_TEX5,
/* 0x0A */ GX_TG_TEX6,
/* 0x0B */ GX_TG_TEX7,
/* 0x0C */ GX_TG_TEXCOORD0,
/* 0x0D */ GX_TG_TEXCOORD1,
/* 0x0E */ GX_TG_TEXCOORD2,
/* 0x0F */ GX_TG_TEXCOORD3,
/* 0x10 */ GX_TG_TEXCOORD4,
/* 0x11 */ GX_TG_TEXCOORD5,
/* 0x12 */ GX_TG_TEXCOORD6,
} GXTexGenSrc;
typedef enum _GXZTexOp {
/* 0x0 */ GX_ZT_DISABLE,
/* 0x1 */ GX_ZT_ADD,
/* 0x2 */ GX_ZT_REPLACE,
/* 0x3 */ GX_MAX_ZTEXOP,
} GXZTexOp;
typedef enum _GXIndTexStageID {
/* 0x0 */ GX_INDTEXSTAGE0,
/* 0x1 */ GX_INDTEXSTAGE1,
/* 0x2 */ GX_INDTEXSTAGE2,
/* 0x3 */ GX_INDTEXSTAGE3,
/* 0x4 */ GX_MAX_INDTEXSTAGE,
} GXIndTexStageID;
typedef enum _GXIndTexScale {
/* 0x0 */ GX_ITS_1,
/* 0x1 */ GX_ITS_2,
/* 0x2 */ GX_ITS_4,
/* 0x3 */ GX_ITS_8,
/* 0x4 */ GX_ITS_16,
/* 0x5 */ GX_ITS_32,
/* 0x6 */ GX_ITS_64,
/* 0x7 */ GX_ITS_128,
/* 0x8 */ GX_ITS_256,
/* 0x9 */ GX_MAX_ITSCALE,
} GXIndTexScale;
typedef enum _GXIndTexMtxID {
/* 0x0 */ GX_ITM_OFF,
/* 0x1 */ GX_ITM_0,
/* 0x2 */ GX_ITM_1,
/* 0x3 */ GX_ITM_2,
/* 0x5 */ GX_ITM_S0 = 5,
/* 0x6 */ GX_ITM_S1,
/* 0x7 */ GX_ITM_S2,
/* 0x9 */ GX_ITM_T0 = 9,
/* 0xA */ GX_ITM_T1,
/* 0xB */ GX_ITM_T2,
} GXIndTexMtxID;
typedef enum _GXIndTexFormat {
/* 0x0 */ GX_ITF_8,
/* 0x1 */ GX_ITF_5,
/* 0x2 */ GX_ITF_4,
/* 0x3 */ GX_ITF_3,
} GXIndTexFormat;
typedef enum _GXIndTexBiasSel {
/* 0x0 */ GX_ITB_NONE,
/* 0x1 */ GX_ITB_S,
/* 0x2 */ GX_ITB_T,
/* 0x3 */ GX_ITB_ST,
/* 0x4 */ GX_ITB_U,
/* 0x5 */ GX_ITB_SU,
/* 0x6 */ GX_ITB_TU,
/* 0x7 */ GX_ITB_STU,
} GXIndTexBiasSel;
typedef enum _GXIndTexAlphaSel {
/* 0x0 */ GX_ITBA_OFF,
/* 0x1 */ GX_ITBA_S,
/* 0x2 */ GX_ITBA_T,
/* 0x3 */ GX_ITBA_U,
} GXIndTexAlphaSel;
typedef enum _GXIndTexWrap {
/* 0x0 */ GX_ITW_OFF,
/* 0x1 */ GX_ITW_256,
/* 0x2 */ GX_ITW_128,
/* 0x3 */ GX_ITW_64,
/* 0x4 */ GX_ITW_32,
/* 0x5 */ GX_ITW_16,
/* 0x6 */ GX_ITW_0,
} GXIndTexWrap;
typedef enum _GXTexOffset {
/* 0x0 */ GX_TO_ZERO,
/* 0x1 */ GX_TO_SIXTEENTH,
/* 0x2 */ GX_TO_EIGHTH,
/* 0x3 */ GX_TO_FOURTH,
/* 0x4 */ GX_TO_HALF,
/* 0x5 */ GX_TO_ONE,
/* 0x6 */ GX_MAX_TEXOFFSET,
} GXTexOffset;
typedef enum _GXTevKColorID {
/* 0x0 */ GX_KCOLOR0,
/* 0x1 */ GX_KCOLOR1,
/* 0x2 */ GX_KCOLOR2,
/* 0x3 */ GX_KCOLOR3,
} GXTevKColorID;
typedef enum _GXTexCacheSize {
/* 0x0 */ GX_TEXCACHE_32K,
/* 0x1 */ GX_TEXCACHE_128K,
/* 0x2 */ GX_TEXCACHE_512K,
/* 0x3 */ GX_TEXCACHE_NONE,
} GXTexCacheSize;
typedef enum _GXPosNrmMtx {
GX_PNMTX0 = 3 * 0,
GX_PNMTX1 = 3 * 1,
GX_PNMTX2 = 3 * 2,
GX_PNMTX3 = 3 * 3,
GX_PNMTX4 = 3 * 4,
GX_PNMTX5 = 3 * 5,
GX_PNMTX6 = 3 * 6,
GX_PNMTX7 = 3 * 7,
GX_PNMTX8 = 3 * 8,
GX_PNMTX9 = 3 * 9,
} GXPosNrmMtx;
typedef enum _GXTexMtx {
GX_TEXMTX0 = 30 + 0 * 3,
GX_TEXMTX1 = 30 + 1 * 3,
GX_TEXMTX2 = 30 + 2 * 3,
GX_TEXMTX3 = 30 + 3 * 3,
GX_TEXMTX4 = 30 + 4 * 3,
GX_TEXMTX5 = 30 + 5 * 3,
GX_TEXMTX6 = 30 + 6 * 3,
GX_TEXMTX7 = 30 + 7 * 3,
GX_TEXMTX8 = 30 + 8 * 3,
GX_TEXMTX9 = 30 + 9 * 3,
GX_IDENTITY = 60,
};
typedef enum _GXPTTexMtx {
GX_PTTEXMTX0 = 64 + 0 * 3,
GX_PTTEXMTX1 = 64 + 1 * 3,
GX_PTTEXMTX2 = 64 + 2 * 3,
GX_PTTEXMTX3 = 64 + 3 * 3,
GX_PTTEXMTX4 = 64 + 4 * 3,
GX_PTTEXMTX5 = 64 + 5 * 3,
GX_PTTEXMTX6 = 64 + 6 * 3,
GX_PTTEXMTX7 = 64 + 7 * 3,
GX_PTTEXMTX8 = 64 + 8 * 3,
GX_PTTEXMTX9 = 64 + 9 * 3,
GX_PTTEXMTX10 = 64 + 10 * 3,
GX_PTTEXMTX11 = 64 + 11 * 3,
GX_PTTEXMTX12 = 64 + 12 * 3,
GX_PTTEXMTX13 = 64 + 13 * 3,
GX_PTTEXMTX14 = 64 + 14 * 3,
GX_PTTEXMTX15 = 64 + 15 * 3,
GX_PTTEXMTX16 = 64 + 16 * 3,
GX_PTTEXMTX17 = 64 + 17 * 3,
GX_PTTEXMTX18 = 64 + 18 * 3,
GX_PTTEXMTX19 = 64 + 19 * 3,
GX_PTIDENTITY = 125,
};
#ifdef __cplusplus
extern "C" {
#endif
typedef struct _GXVtxDescList {
/* 0x0 */ GXAttr attr;
@@ -830,41 +25,94 @@ typedef struct _GXVtxAttrFmtList {
/* 0x0C */ u8 mCompShift;
} GXVtxAttrFmtList; // Size: 0x10
typedef enum _GXFBClamp {
/* 0x0 */ GX_CLAMP_NONE,
/* 0x1 */ GX_CLAMP_TOP,
/* 0x2 */ GX_CLAMP_BOTTOM,
} GXFBClamp;
typedef GXTexRegion (*GXTexRegionCallback)(void);
typedef u32 (*GXTlutRegionCallback)(u32);
typedef enum _GXPixelFmt {
/* 0x0 */ GX_PF_RGB8_Z24,
/* 0x1 */ GX_PF_RGBA6_Z24,
/* 0x2 */ GX_PF_RGB565_Z16,
/* 0x3 */ GX_PF_Z24,
/* 0x4 */ GX_PF_Y8,
/* 0x5 */ GX_PF_U8,
/* 0x6 */ GX_PF_V8,
/* 0x7 */ GX_PF_YUV420,
} GXPixelFmt;
typedef struct _GXData {
/* 0x000 */ u16 field_0x0;
/* 0x002 */ u16 field_0x2;
/* 0x004 */ u16 field_0x4;
/* 0x006 */ u16 field_0x6;
/* 0x008 */ u32 field_0x8;
/* 0x00C */ u32 field_0xc;
/* 0x010 */ u32 field_0x10;
/* 0x014 */ GXAttrType field_0x14;
/* 0x018 */ GXAttrType field_0x18;
/* 0x01C */ GXCompCnt field_0x1c[8];
/* 0x03C */ GXCompCnt field_0x3c[8];
/* 0x05C */ u32 field_0x5c[8];
/* 0x07C */ u32 field_0x7c;
/* 0x080 */ u32 field_0x80;
/* 0x084 */ u32 field_0x84;
/* 0x088 */ u8 field_0x88[0xA8 - 0x88];
/* 0x0A8 */ u32 field_0xa8[2];
/* 0x0B0 */ u32 field_0xb0[2];
/* 0x0B8 */ u32 field_0xb8[8]; // GX_MAX_TEXCOORD
/* 0x0D8 */ u32 field_0xd8[8]; // GX_MAX_TEXCOORD
/* 0x0F8 */ u32 field_0xf8;
/* 0x0FC */ u32 field_0xfc;
/* 0x100 */ u32 field_0x100[GX_MAX_TEVSTAGE / 2];
/* 0x120 */ u32 field_0x120;
/* 0x124 */ u32 field_0x124;
/* 0x128 */ u8 field_0x128[0x130 - 0x128];
/* 0x130 */ u32 field_0x130[GX_MAX_TEVSTAGE];
/* 0x170 */ u32 field_0x170[GX_MAX_TEVSTAGE];
/* 0x1B0 */ u32 field_0x1b0[GX_MAX_TEVSTAGE / 2];
/* 0x1D0 */ u32 field_0x1d0;
/* 0x1D4 */ u32 field_0x1d4;
/* 0x1D8 */ u32 field_0x1d8;
/* 0x1DC */ u32 field_0x1dc;
/* 0x1E0 */ u32 field_0x1e0;
/* 0x1E4 */ u32 field_0x1e4;
/* 0x1E8 */ u32 field_0x1e8;
/* 0x1EC */ u32 field_0x1ec;
/* 0x1F0 */ u32 field_0x1f0;
/* 0x1F4 */ u32 field_0x1f4;
/* 0x1F8 */ u32 field_0x1f8;
/* 0x1FC */ u32 field_0x1fc;
/* 0x200 */ u8 field_0x200;
/* 0x204 */ u32 field_0x204;
/* 0x208 */ GXTexRegion field_0x208[8];
/* 0x288 */ GXTexRegion field_0x288[8];
/* 0x308 */ GXTexRegion field_0x308[8];
/* 0x388 */ GXTlutRegion field_0x388[16];
/* 0x488 */ GXTlutRegion field_0x488[4];
/* 0x4C8 */ GXTexRegionCallback field_0x4c8;
/* 0x4CC */ GXTlutRegionCallback field_0x4cc;
/* 0x4D0 */ GXAttrType field_0x4d0;
/* 0x4D4 */ u8 field_0x4d4;
/* 0x4D5 */ u8 field_0x4d5;
/* 0x4D8 */ GXProjectionType field_0x4d8;
/* 0x4DC */ Mtx field_0x4dc;
/* 0x50C */ f32 field_0x50c;
/* 0x510 */ f32 field_0x510;
/* 0x514 */ u32 field_0x514[8];
/* 0x534 */ u32 field_0x534[8];
/* 0x554 */ u32 field_0x554;
/* 0x558 */ u32 field_0x558[8];
/* 0x578 */ u8 field_0x578[0x594 - 0x578];
/* 0x594 */ u32 field_0x594;
/* 0x598 */ u32 field_0x598;
/* 0x59C */ u32 field_0x59c;
/* 0x5A0 */ u8 field_0x5a0[4];
/* 0x5A4 */ u32 field_0x5a4;
/* 0x5A8 */ u8 field_0x5a8;
/* 0x5A9 */ u8 field_0x5a9;
/* 0x5AA */ u8 field_0x5aa;
/* 0x5AB */ u8 field_0x5ab;
/* 0x5AC */ u32 field_0x5ac;
} GXData; // Size: 0x5B0
typedef enum _GXZFmt16 {
/* 0x0 */ GX_ZC_LINEAR,
/* 0x1 */ GX_ZC_NEAR,
/* 0x2 */ GX_ZC_MID,
/* 0x3 */ GX_ZC_FAR,
} GXZFmt16;
STATIC_ASSERT(sizeof(GXData) == 0x5B0);
typedef enum _GXCommand {
GX_CMD_LOAD_INDX_A = 0x20,
GX_CMD_LOAD_INDX_B = 0x28,
GX_CMD_LOAD_INDX_C = 0x30,
GX_CMD_LOAD_INDX_D = 0x38,
extern GXData* __GXData;
GX_CMD_LOAD_CP_REG = 0x08,
GX_CMD_LOAD_XF_REG = 0x10,
} GXCommand;
extern u32* __piReg;
extern u16* __cpReg;
#define GX_LOAD_BP_REG 0x61
#define GX_NOP 0
extern "C" {
f32 GXGetYScaleFactor(u16 efb_height, u16 xfb_height);
u16 GXGetNumXfbLines(u32 efb_height, f32 y_scale);
@@ -894,7 +142,7 @@ void GXSetBlendMode(GXBlendMode, GXBlendFactor, GXBlendFactor, GXLogicOp);
void GXSetVtxAttrFmt(GXVtxFmt, GXAttr, GXCompCnt, GXCompType, u32);
void GXClearVtxDesc(void);
void GXSetVtxDesc(GXAttr, GXAttrType);
void GXSetArray(GXAttr, const void*, u8);
void GXSetArray(GXAttr, void*, u8);
typedef void (*GXDrawDoneCallback)(void);
void GXSetDrawDoneCallback(GXDrawDoneCallback);
void GXDrawDone(void);
@@ -934,7 +182,7 @@ void GXSetAlphaCompare(GXCompare, u8, GXAlphaOp, GXCompare, u8);
void GXSetAlphaUpdate(GXBool);
void GXSetChanAmbColor(GXChannelID, GXColor);
void GXSetChanMatColor(GXChannelID, GXColor);
void GXSetClipMode(GXBool);
void GXSetClipMode(GXClipMode);
void GXSetCoPlanar(GXBool);
void GXSetColorUpdate(GXBool);
void GXSetCopyFilter(GXBool, u8[12][2], GXBool, u8[7]);
@@ -979,6 +227,9 @@ void GXInitFifoPtrs(GXFifoObj*, void*, void*);
void GXSaveCPUFifo(GXFifoObj*);
void GXSetMisc(u32 opt, u32 val);
void GXInitTexCacheRegion(GXTexRegion* region, GXBool, u32, GXTexCacheSize, u32, GXTexCacheSize);
void GXPeekZ(u16 x, u16 y, u32* dst);
void __GXSetDirtyState(void);
void __GXSendFlushPrim(void);
#define GFX_FIFO(T) (*(volatile T*)0xCC008000)
@@ -1022,7 +273,7 @@ inline void GXPosition2s8(s8 x, s8 y) {
GFX_FIFO(s8) = y;
}
inline void GXPosition3s16(s16 x, s16 y, s16 z) {
inline void i_GXPosition3s16(s16 x, s16 y, s16 z) {
GFX_FIFO(s16) = x;
GFX_FIFO(s16) = y;
GFX_FIFO(s16) = z;
@@ -1033,7 +284,10 @@ inline void GXTexCoord2s8(s8 x, s8 y) {
GFX_FIFO(s8) = y;
}
inline void GXEnd() {}
inline void i_GXEnd() {}
#ifdef __cplusplus
};
#endif
#endif
+2 -2
View File
@@ -4,9 +4,9 @@
#include "dolphin/types.h"
extern "C" {
void GXBeginDisplayList(void* pDL, u32 capacity);
void GXBeginDisplayList(void* list, u32 capacity);
void GXEndDisplayList(void);
void GXCallDisplayList(const void* pDL, u32 size);
void GXCallDisplayList(void* list, u32 nbytes);
};
#endif /* GXDISPLAYLIST_H */
+779
View File
@@ -0,0 +1,779 @@
#ifndef GXENUM_H
#define GXENUM_H
#include "dolphin/types.h"
typedef enum _GXPrimitive {
/* 0x80 */ GX_QUADS = 0x80,
/* 0x90 */ GX_TRIANGLES = 0x90,
/* 0x98 */ GX_TRIANGLESTRIP = 0x98,
/* 0xA0 */ GX_TRIANGLEFAN = 0xA0,
/* 0xA8 */ GX_LINES = 0xA8,
/* 0xB0 */ GX_LINESTRIP = 0xB0,
/* 0xB8 */ GX_POINTS = 0xB8,
} GXPrimitive;
typedef enum _GXCullMode {
/* 0x0 */ GX_CULL_NONE,
/* 0x1 */ GX_CULL_FRONT,
/* 0x2 */ GX_CULL_BACK,
/* 0x3 */ GX_CULL_ALL
} GXCullMode;
typedef enum _GXBool {
/* 0x0 */ GX_FALSE,
/* 0x1 */ GX_TRUE,
/* 0x0 */ GX_DISABLE = 0,
/* 0x1 */ GX_ENABLE
} GXBool;
typedef enum _GXTexMapID {
/* 0x000 */ GX_TEXMAP0,
/* 0x001 */ GX_TEXMAP1,
/* 0x002 */ GX_TEXMAP2,
/* 0x003 */ GX_TEXMAP3,
/* 0x004 */ GX_TEXMAP4,
/* 0x005 */ GX_TEXMAP5,
/* 0x006 */ GX_TEXMAP6,
/* 0x007 */ GX_TEXMAP7,
/* 0x008 */ GX_MAX_TEXMAP,
/* 0x0FF */ GX_TEXMAP_NULL = 255,
/* 0x100 */ GX_TEXMAP_DISABLE,
} GXTexMapID;
typedef enum _GXTevStageID {
/* 0x00 */ GX_TEVSTAGE0,
/* 0x01 */ GX_TEVSTAGE1,
/* 0x02 */ GX_TEVSTAGE2,
/* 0x03 */ GX_TEVSTAGE3,
/* 0x04 */ GX_TEVSTAGE4,
/* 0x05 */ GX_TEVSTAGE5,
/* 0x06 */ GX_TEVSTAGE6,
/* 0x07 */ GX_TEVSTAGE7,
/* 0x08 */ GX_TEVSTAGE8,
/* 0x09 */ GX_TEVSTAGE9,
/* 0x0A */ GX_TEVSTAGE10,
/* 0x0B */ GX_TEVSTAGE11,
/* 0x0C */ GX_TEVSTAGE12,
/* 0x0D */ GX_TEVSTAGE13,
/* 0x0E */ GX_TEVSTAGE14,
/* 0x0F */ GX_TEVSTAGE15,
/* 0x10 */ GX_MAX_TEVSTAGE,
} GXTevStageID;
typedef enum _GXTexCoordID {
/* 0x00 */ GX_TEXCOORD0,
/* 0x01 */ GX_TEXCOORD1,
/* 0x02 */ GX_TEXCOORD2,
/* 0x03 */ GX_TEXCOORD3,
/* 0x04 */ GX_TEXCOORD4,
/* 0x05 */ GX_TEXCOORD5,
/* 0x06 */ GX_TEXCOORD6,
/* 0x07 */ GX_TEXCOORD7,
/* 0x08 */ GX_MAXCOORD,
/* 0xFF */ GX_TEXCOORD_NULL = 255,
} GXTexCoordID;
typedef enum _GXChannelID {
/* 0x00 */ GX_COLOR0,
/* 0x01 */ GX_COLOR1,
/* 0x02 */ GX_ALPHA0,
/* 0x03 */ GX_ALPHA1,
/* 0x04 */ GX_COLOR0A0,
/* 0x05 */ GX_COLOR1A1,
/* 0x06 */ GX_COLOR_ZERO,
/* 0x07 */ GX_ALPHA_BUMP,
/* 0x08 */ GX_ALPHA_BUMPN,
/* 0xFF */ GX_COLOR_NULL = 255,
} GXChannelID;
typedef enum _GXColorSrc {
/* 0x0 */ GX_SRC_REG,
/* 0x1 */ GX_SRC_VTX,
} GXColorSrc;
typedef enum _GXLightID {
/* 0x000 */ GX_LIGHT_NULL = 0,
/* 0x001 */ GX_LIGHT0 = 1 << 0,
/* 0x002 */ GX_LIGHT1 = 1 << 1,
/* 0x004 */ GX_LIGHT2 = 1 << 2,
/* 0x008 */ GX_LIGHT3 = 1 << 3,
/* 0x010 */ GX_LIGHT4 = 1 << 4,
/* 0x020 */ GX_LIGHT5 = 1 << 5,
/* 0x040 */ GX_LIGHT6 = 1 << 6,
/* 0x080 */ GX_LIGHT7 = 1 << 7,
/* 0x100 */ GX_MAX_LIGHT = 1 << 8,
} GXLightID;
typedef enum _GXDiffuseFn {
/* 0x0 */ GX_DF_NONE,
/* 0x1 */ GX_DF_SIGN,
/* 0x2 */ GX_DF_CLAMP,
} GXDiffuseFn;
typedef enum _GXAttnFn {
/* 0x0 */ GX_AF_SPEC,
/* 0x1 */ GX_AF_SPOT,
/* 0x2 */ GX_AF_NONE,
} GXAttnFn;
typedef enum _GXDistAttnFn {
/* 0x0 */ GX_DA_OFF,
/* 0x1 */ GX_DA_GENTLE,
/* 0x2 */ GX_DA_MEDIUM,
/* 0x3 */ GX_DA_STEEP
} GXDistAttnFn;
typedef enum _GXSpotFn {
/* 0x0 */ GX_SP_OFF,
/* 0x1 */ GX_SP_FLAT,
/* 0x2 */ GX_SP_COS,
/* 0x3 */ GX_SP_COS2,
/* 0x4 */ GX_SP_SHARP,
/* 0x5 */ GX_SP_RING1,
/* 0x6 */ GX_SP_RING2
} GXSpotFn;
typedef enum _GXTevMode {
/* 0x0 */ GX_MODULATE,
/* 0x1 */ GX_DECAL,
/* 0x2 */ GX_BLEND,
/* 0x3 */ GX_REPLACE,
/* 0x4 */ GX_PASSCLR,
} GXTevMode;
typedef enum _GXBlendMode {
/* 0x0 */ GX_BM_NONE,
/* 0x1 */ GX_BM_BLEND,
/* 0x2 */ GX_BM_LOGIC,
/* 0x3 */ GX_BM_SUBTRACT,
/* 0x4 */ GX_MAX_BLENDMODE,
} GXBlendMode;
typedef enum _GXBlendFactor {
/* 0x0 */ GX_BL_ZERO,
/* 0x1 */ GX_BL_ONE,
/* 0x2 */ GX_BL_SRC_COLOR,
/* 0x2 */ GX_BL_DST_COLOR = 2,
/* 0x3 */ GX_BL_INV_SRC_COLOR,
/* 0x3 */ GX_BL_INV_DST_COLOR = 3,
/* 0x4 */ GX_BL_SRC_ALPHA,
/* 0x5 */ GX_BL_INV_SRC_ALPHA,
/* 0x6 */ GX_BL_DST_ALPHA,
/* 0x7 */ GX_BL_INV_DST_ALPHA,
} GXBlendFactor;
typedef enum _GXLogicOp {
/* 0x0 */ GX_LO_CLEAR,
/* 0x1 */ GX_LO_AND,
/* 0x2 */ GX_LO_REV_AND,
/* 0x3 */ GX_LO_COPY,
/* 0x4 */ GX_LO_INV_AND,
/* 0x5 */ GX_LO_NOOP,
/* 0x6 */ GX_LO_XOR,
/* 0x7 */ GX_LO_OR,
/* 0x8 */ GX_LO_NOR,
/* 0x9 */ GX_LO_EQUIV,
/* 0xA */ GX_LO_INV,
/* 0xB */ GX_LO_REV_OR,
/* 0xC */ GX_LO_INV_COPY,
/* 0xD */ GX_LO_INV_OR,
/* 0xE */ GX_LO_NAND,
/* 0xF */ GX_LO_SET,
} GXLogicOp;
typedef enum _GXVtxFmt {
/* 0x0 */ GX_VTXFMT0,
/* 0x1 */ GX_VTXFMT1,
/* 0x2 */ GX_VTXFMT2,
/* 0x3 */ GX_VTXFMT3,
/* 0x4 */ GX_VTXFMT4,
/* 0x5 */ GX_VTXFMT5,
/* 0x6 */ GX_VTXFMT6,
/* 0x7 */ GX_VTXFMT7,
/* 0x8 */ GX_MAX_VTXFMT,
} GXVtxFmt;
typedef enum _GXAttr {
/* 0x00 */ GX_VA_PNMTXIDX,
/* 0x01 */ GX_VA_TEX0MTXIDX,
/* 0x02 */ GX_VA_TEX1MTXIDX,
/* 0x03 */ GX_VA_TEX2MTXIDX,
/* 0x04 */ GX_VA_TEX3MTXIDX,
/* 0x05 */ GX_VA_TEX4MTXIDX,
/* 0x06 */ GX_VA_TEX5MTXIDX,
/* 0x07 */ GX_VA_TEX6MTXIDX,
/* 0x08 */ GX_VA_TEX7MTXIDX,
/* 0x09 */ GX_VA_POS,
/* 0x0A */ GX_VA_NRM,
/* 0x0B */ GX_VA_CLR0,
/* 0x0C */ GX_VA_CLR1,
/* 0x0D */ GX_VA_TEX0,
/* 0x0E */ GX_VA_TEX1,
/* 0x0F */ GX_VA_TEX2,
/* 0x10 */ GX_VA_TEX3,
/* 0x11 */ GX_VA_TEX4,
/* 0x12 */ GX_VA_TEX5,
/* 0x13 */ GX_VA_TEX6,
/* 0x14 */ GX_VA_TEX7,
/* 0x15 */ GX_POS_MTX_ARRAY,
/* 0x16 */ GX_NRM_MTX_ARRAY,
/* 0x17 */ GX_TEX_MTX_ARRAY,
/* 0x18 */ GX_LIGHT_ARRAY,
/* 0x19 */ GX_VA_NBT,
/* 0x1A */ GX_VA_MAX_ATTR,
/* 0xFF */ GX_VA_NULL = 255,
} GXAttr;
typedef enum _GXCompCnt {
/* 0x0 */ GX_POS_XY = 0,
/* 0x1 */ GX_POS_XYZ = 1,
/* 0x0 */ GX_NRM_XYZ = 0,
/* 0x1 */ GX_NRM_NBT = 1,
/* 0x2 */ GX_NRM_NBT3 = 2,
/* 0x0 */ GX_CLR_RGB = 0,
/* 0x1 */ GX_CLR_RGBA = 1,
/* 0x0 */ GX_TEX_S = 0,
/* 0x1 */ GX_TEX_ST = 1,
} GXCompCnt;
typedef enum _GXCompType {
/* 0x0 */ GX_U8,
/* 0x1 */ GX_S8,
/* 0x2 */ GX_U16,
/* 0x3 */ GX_S16,
/* 0x4 */ GX_F32,
/* 0x0 */ GX_RGB565 = 0,
/* 0x1 */ GX_RGB8,
/* 0x2 */ GX_RGBX8,
/* 0x3 */ GX_RGBA4,
/* 0x4 */ GX_RGBA6,
/* 0x5 */ GX_RGBA8,
} GXCompType;
typedef enum _GXAttrType {
/* 0x0 */ GX_NONE,
/* 0x1 */ GX_DIRECT,
/* 0x2 */ GX_INDEX8,
/* 0x3 */ GX_INDEX16,
} GXAttrType;
typedef enum _GXTevOp {
/* 0x0 */ GX_TEV_ADD,
/* 0x1 */ GX_TEV_SUB,
/* 0x8 */ GX_TEV_COMP_R8_GT = 8,
/* 0x9 */ GX_TEV_COMP_R8_EQ,
/* 0xA */ GX_TEV_COMP_GR16_GT,
/* 0xB */ GX_TEV_COMP_GR16_EQ,
/* 0xC */ GX_TEV_COMP_BGR24_GT,
/* 0xD */ GX_TEV_COMP_BGR24_EQ,
/* 0xE */ GX_TEV_COMP_A8_GT,
/* 0xE */ GX_TEV_COMP_RGB8_GT = 14,
/* 0xF */ GX_TEV_COMP_RGB8_EQ,
/* 0xF */ GX_TEV_COMP_A8_EQ = 15,
} GXTevOp;
typedef enum _GXTevBias {
/* 0x0 */ GX_TB_ZERO,
/* 0x1 */ GX_TB_ADDHALF,
/* 0x2 */ GX_TB_SUBHALF,
/* 0x3 */ GX_MAX_TEVBIAS,
} GXTevBias;
typedef enum _GXTevColorArg {
/* 0x0 */ GX_CC_CPREV,
/* 0x1 */ GX_CC_APREV,
/* 0x2 */ GX_CC_C0,
/* 0x3 */ GX_CC_A0,
/* 0x4 */ GX_CC_C1,
/* 0x5 */ GX_CC_A1,
/* 0x6 */ GX_CC_C2,
/* 0x7 */ GX_CC_A2,
/* 0x8 */ GX_CC_TEXC,
/* 0x9 */ GX_CC_TEXA,
/* 0xA */ GX_CC_RASC,
/* 0xB */ GX_CC_RASA,
/* 0xC */ GX_CC_ONE,
/* 0xD */ GX_CC_HALF,
/* 0xE */ GX_CC_KONST,
/* 0xF */ GX_CC_ZERO,
} GXTevColorArg;
typedef enum _GXTevColor {
/* 0x0 */ GX_CH_RED,
/* 0x1 */ GX_CH_GREEN,
/* 0x2 */ GX_CH_BLUE,
/* 0x3 */ GX_CH_ALPHA,
} GXTevColor;
typedef enum _GXTevScale {
/* 0x0 */ GX_CS_SCALE_1,
/* 0x1 */ GX_CS_SCALE_2,
/* 0x2 */ GX_CS_SCALE_4,
/* 0x3 */ GX_CS_DIVIDE_2,
/* 0x4 */ GX_MAX_TEVSCALE
} GXTevScale;
typedef enum _GXTevRegID {
/* 0x0 */ GX_TEVPREV,
/* 0x1 */ GX_TEVREG0,
/* 0x2 */ GX_TEVREG1,
/* 0x3 */ GX_TEVREG2,
/* 0x4 */ GX_MAX_TEVREG
} GXTevRegID;
typedef enum _GXTevAlphaArg {
/* 0x0 */ GX_CA_APREV,
/* 0x1 */ GX_CA_A0,
/* 0x2 */ GX_CA_A1,
/* 0x3 */ GX_CA_A2,
/* 0x4 */ GX_CA_TEXA,
/* 0x5 */ GX_CA_RASA,
/* 0x6 */ GX_CA_KONST,
/* 0x7 */ GX_CA_ZERO,
} GXTevAlphaArg;
typedef enum _GXTexFmt {
/* 0x0 */ GX_TF_I4,
/* 0x1 */ GX_TF_I8,
/* 0x2 */ GX_TF_IA4,
/* 0x3 */ GX_TF_IA8,
/* 0x4 */ GX_TF_RGB565,
/* 0x5 */ GX_TF_TGB5A3,
/* 0x6 */ GX_TF_RGBA8,
/* 0x7 */ GX_TF_CI4,
/* 0x8 */ GX_TF_CI8,
/* 0x9 */ GX_TF_CI14,
/* 0xE */ GX_TF_CMPR = 14,
/* 0x10 */ _GX_TF_ZTF = 0x10,
/* 0x11 */ GX_TF_Z8 = (0x1 | _GX_TF_ZTF),
/* 0x13 */ GX_TF_Z16 = (0x3 | _GX_TF_ZTF),
/* 0x16 */ GX_TF_Z24X8 = (0x6 | _GX_TF_ZTF),
/* 0x20 */ _GX_TF_CTF = 0x20,
/* 0x28 */ _GX_CTF_R8 = 0x28,
/* 0x30 */ GX_CTF_Z4 = (0x0 | _GX_TF_ZTF | _GX_TF_CTF),
/* 0x39 */ GX_CTF_Z8M = (0x9 | _GX_TF_ZTF | _GX_TF_CTF),
/* 0x3A */ GX_CTF_Z8L = (0xA | _GX_TF_ZTF | _GX_TF_CTF),
/* 0x3C */ GX_CTF_Z16L = (0xC | _GX_TF_ZTF | _GX_TF_CTF),
} GXTexFmt;
typedef enum _GXGamma {
/* 0x0 */ GX_GM_1_0,
/* 0x0 */ GX_GM_1_7,
/* 0x0 */ GX_GM_2_2,
} GXGamma;
typedef enum _GXTlutFmt {
/* 0x0 */ GX_TL_IA8,
/* 0x1 */ GX_TL_RGB565,
/* 0x2 */ GX_TL_RGB5A3,
} GXTlutFmt;
typedef enum _GXTlut {
/* 0x00 */ GX_TLUT0,
/* 0x01 */ GX_TLUT1,
/* 0x02 */ GX_TLUT2,
/* 0x03 */ GX_TLUT3,
/* 0x04 */ GX_TLUT4,
/* 0x05 */ GX_TLUT5,
/* 0x06 */ GX_TLUT6,
/* 0x07 */ GX_TLUT7,
/* 0x08 */ GX_TLUT8,
/* 0x09 */ GX_TLUT9,
/* 0x0A */ GX_TLUT10,
/* 0x0B */ GX_TLUT11,
/* 0x0C */ GX_TLUT12,
/* 0x0D */ GX_TLUT13,
/* 0x0E */ GX_TLUT14,
/* 0x0F */ GX_TLUT15,
/* 0x10 */ GX_BIGTLUT0,
/* 0x11 */ GX_BIGTLUT1,
/* 0x12 */ GX_BIGTLUT2,
/* 0x13 */ GX_BIGTLUT3,
} GXTlut;
/* 8-bit version of GXTexFmt for use in structures */
typedef enum _GXTexFmt8 {
/* 0x20 */ GX_CTF_R4 = (0x0 | _GX_TF_CTF),
/* 0x22 */ GX_CTF_RA4 = (0x2 | _GX_TF_CTF),
/* 0x23 */ GX_CTF_RA8 = (0x3 | _GX_TF_CTF),
/* 0x26 */ GX_CTF_YUVA8 = (0x6 | _GX_TF_CTF),
/* 0x27 */ GX_CTF_A8 = (0x7 | _GX_TF_CTF),
/* 0x28 */ GX_CTF_R8 = (0x8 | _GX_TF_CTF),
/* 0x29 */ GX_CTF_G8 = (0x9 | _GX_TF_CTF),
/* 0x2A */ GX_CTF_B8 = (0xA | _GX_TF_CTF),
/* 0x2B */ GX_CTF_RG8 = (0xB | _GX_TF_CTF),
/* 0x2C */ GX_CTF_GB8 = (0xC | _GX_TF_CTF),
} GXTexFmt8;
typedef enum _GXTexWrapMode {
/* 0x0 */ GX_CLAMP,
/* 0x1 */ GX_REPEAT,
/* 0x2 */ GX_MIRROR,
/* 0x3 */ GX_MAX_TEXWRAP_MODE,
} GXTexWrapMode;
typedef enum _GXTexFilter {
/* 0x0 */ GX_NEAR,
/* 0x1 */ GX_LINEAR,
/* 0x2 */ GX_NEAR_MIP_NEAR,
/* 0x3 */ GX_LIN_MIP_NEAR,
/* 0x4 */ GX_NEAR_MIP_LIN,
/* 0x5 */ GX_LIN_MIP_LIN,
} GXTexFilter;
typedef enum _GXAnisotropy {
/* 0x0 */ GX_ANISO_1,
/* 0x1 */ GX_ANISO_2,
/* 0x2 */ GX_ANISO_4,
/* 0x3 */ GX_MAX_ANISOTROPY,
} GXAnisotropy;
enum GXCITexFmt {
/* 0x8 */ GX_TF_C4 = 8,
/* 0x8 */ GX_TF_C8,
/* 0xA */ GX_TF_C14X2
};
typedef enum _GXTexMtxType {
/* 0x0 */ GX_MTX3x4,
/* 0x1 */ GX_MTX2x4
} GXTexMtxType;
typedef enum _GXCompare {
/* 0x0 */ GX_NEVER,
/* 0x1 */ GX_LESS,
/* 0x2 */ GX_EQUAL,
/* 0x3 */ GX_LEQUAL,
/* 0x4 */ GX_GREATER,
/* 0x5 */ GX_NEQUAL,
/* 0x6 */ GX_GEQUAL,
/* 0x7 */ GX_ALWAYS,
} GXCompare;
typedef enum _GXAlphaOp {
/* 0x0 */ GX_AOP_AND,
/* 0x1 */ GX_AOP_OR,
/* 0x2 */ GX_AOP_XOR,
/* 0x3 */ GX_AOP_XNOR,
/* 0x4 */ GX_MAX_ALPHAOP
} GXAlphaOp;
typedef enum _GXFogType {
/* 0x0 */ GX_FOG_NONE,
/* 0x2 */ GX_FOG_LIN = 2,
/* 0x2 */ GX_FOG_PERSP_LIN = 2,
/* 0x4 */ GX_FOG_EXP = 4,
/* 0x4 */ GX_FOG_PERSP_EXP = 4,
/* 0x5 */ GX_FOG_EXP2,
/* 0x5 */ GX_FOG_PERSP_EXP2 = 5,
/* 0x6 */ GX_FOG_REVEXP,
/* 0x6 */ GX_FOG_PERSP_REVEXP = 6,
/* 0x7 */ GX_FOG_REVEXP2,
/* 0x7 */ GX_FOG_PERSP_REVEXP2 = 7,
/* 0xA */ GX_FOG_ORTHO_LIN = 10,
/* 0xC */ GX_FOG_ORTHO_EXP = 12,
/* 0xD */ GX_FOG_ORTHO_EXP2,
/* 0xE */ GX_FOG_ORTHO_REVEXP,
/* 0xF */ GX_FOG_ORTHO_REVEXP2,
} GXFogType;
typedef enum _GXProjectionType {
/* 0x0 */ GX_PERSPECTIVE,
/* 0x1 */ GX_ORTHOGRAPHIC
} GXProjectionType;
typedef enum _GXTevKAlphaSel {
/* 0x00 */ GX_TEV_KASEL_1,
/* 0x01 */ GX_TEV_KASEL_7_8,
/* 0x02 */ GX_TEV_KASEL_3_4,
/* 0x03 */ GX_TEV_KASEL_5_8,
/* 0x04 */ GX_TEV_KASEL_1_2,
/* 0x05 */ GX_TEV_KASEL_3_8,
/* 0x06 */ GX_TEV_KASEL_1_4,
/* 0x07 */ GX_TEV_KASEL_1_8,
/* 0x10 */ GX_TEV_KASEL_K0_R = 0x10,
/* 0x11 */ GX_TEV_KASEL_K1_R,
/* 0x12 */ GX_TEV_KASEL_K2_R,
/* 0x13 */ GX_TEV_KASEL_K3_R,
/* 0x14 */ GX_TEV_KASEL_K0_G,
/* 0x15 */ GX_TEV_KASEL_K1_G,
/* 0x16 */ GX_TEV_KASEL_K2_G,
/* 0x17 */ GX_TEV_KASEL_K3_G,
/* 0x18 */ GX_TEV_KASEL_K0_B,
/* 0x19 */ GX_TEV_KASEL_K1_B,
/* 0x1A */ GX_TEV_KASEL_K2_B,
/* 0x1B */ GX_TEV_KASEL_K3_B,
/* 0x1C */ GX_TEV_KASEL_K0_A,
/* 0x1D */ GX_TEV_KASEL_K1_A,
/* 0x1E */ GX_TEV_KASEL_K2_A,
/* 0x1F */ GX_TEV_KASEL_K3_A,
} GXTevKAlphaSel;
typedef enum _GXTevKColorSel {
/* 0x00 */ GX_TEV_KCSEL_1,
/* 0x01 */ GX_TEV_KCSEL_7_8,
/* 0x02 */ GX_TEV_KCSEL_3_4,
/* 0x03 */ GX_TEV_KCSEL_5_8,
/* 0x04 */ GX_TEV_KCSEL_1_2,
/* 0x05 */ GX_TEV_KCSEL_3_8,
/* 0x06 */ GX_TEV_KCSEL_1_4,
/* 0x07 */ GX_TEV_KCSEL_1_8,
/* 0x0C */ GX_TEV_KCSEL_K0 = 0xC,
/* 0x0D */ GX_TEV_KCSEL_K1,
/* 0x0E */ GX_TEV_KCSEL_K2,
/* 0x0F */ GX_TEV_KCSEL_K3,
/* 0x10 */ GX_TEV_KCSEL_K0_R,
/* 0x11 */ GX_TEV_KCSEL_K1_R,
/* 0x12 */ GX_TEV_KCSEL_K2_R,
/* 0x13 */ GX_TEV_KCSEL_K3_R,
/* 0x14 */ GX_TEV_KCSEL_K0_G,
/* 0x15 */ GX_TEV_KCSEL_K1_G,
/* 0x16 */ GX_TEV_KCSEL_K2_G,
/* 0x17 */ GX_TEV_KCSEL_K3_G,
/* 0x18 */ GX_TEV_KCSEL_K0_B,
/* 0x19 */ GX_TEV_KCSEL_K1_B,
/* 0x1A */ GX_TEV_KCSEL_K2_B,
/* 0x1B */ GX_TEV_KCSEL_K3_B,
/* 0x1C */ GX_TEV_KCSEL_K0_A,
/* 0x1D */ GX_TEV_KCSEL_K1_A,
/* 0x1E */ GX_TEV_KCSEL_K2_A,
/* 0x1F */ GX_TEV_KCSEL_K3_A,
} GXTevKColorSel;
typedef enum _GXTevSwapSel {
/* 0x0 */ GX_TEV_SWAP0,
/* 0x1 */ GX_TEV_SWAP1,
/* 0x2 */ GX_TEV_SWAP2,
/* 0x3 */ GX_TEV_SWAP3,
/* 0x4 */ GX_MAX_TEVSWAP,
} GXTevSwapSel;
typedef enum _GXTexGenType {
/* 0x0 */ GX_TG_MTX3x4,
/* 0x1 */ GX_TG_MTX2x4,
/* 0x2 */ GX_TG_BUMP0,
/* 0x3 */ GX_TG_BUMP1,
/* 0x4 */ GX_TG_BUMP2,
/* 0x5 */ GX_TG_BUMP3,
/* 0x6 */ GX_TG_BUMP4,
/* 0x7 */ GX_TG_BUMP5,
/* 0x8 */ GX_TG_BUMP6,
/* 0x9 */ GX_TG_BUMP7,
/* 0xA */ GX_TG_SRTG,
} GXTexGenType;
typedef enum _GXTexGenSrc {
/* 0x00 */ GX_TG_POS,
/* 0x01 */ GX_TG_NRM,
/* 0x02 */ GX_TG_BINRM,
/* 0x03 */ GX_TG_TANGENT,
/* 0x04 */ GX_TG_TEX0,
/* 0x05 */ GX_TG_TEX1,
/* 0x06 */ GX_TG_TEX2,
/* 0x07 */ GX_TG_TEX3,
/* 0x08 */ GX_TG_TEX4,
/* 0x09 */ GX_TG_TEX5,
/* 0x0A */ GX_TG_TEX6,
/* 0x0B */ GX_TG_TEX7,
/* 0x0C */ GX_TG_TEXCOORD0,
/* 0x0D */ GX_TG_TEXCOORD1,
/* 0x0E */ GX_TG_TEXCOORD2,
/* 0x0F */ GX_TG_TEXCOORD3,
/* 0x10 */ GX_TG_TEXCOORD4,
/* 0x11 */ GX_TG_TEXCOORD5,
/* 0x12 */ GX_TG_TEXCOORD6,
} GXTexGenSrc;
typedef enum _GXZTexOp {
/* 0x0 */ GX_ZT_DISABLE,
/* 0x1 */ GX_ZT_ADD,
/* 0x2 */ GX_ZT_REPLACE,
/* 0x3 */ GX_MAX_ZTEXOP,
} GXZTexOp;
typedef enum _GXIndTexStageID {
/* 0x0 */ GX_INDTEXSTAGE0,
/* 0x1 */ GX_INDTEXSTAGE1,
/* 0x2 */ GX_INDTEXSTAGE2,
/* 0x3 */ GX_INDTEXSTAGE3,
/* 0x4 */ GX_MAX_INDTEXSTAGE,
} GXIndTexStageID;
typedef enum _GXIndTexScale {
/* 0x0 */ GX_ITS_1,
/* 0x1 */ GX_ITS_2,
/* 0x2 */ GX_ITS_4,
/* 0x3 */ GX_ITS_8,
/* 0x4 */ GX_ITS_16,
/* 0x5 */ GX_ITS_32,
/* 0x6 */ GX_ITS_64,
/* 0x7 */ GX_ITS_128,
/* 0x8 */ GX_ITS_256,
/* 0x9 */ GX_MAX_ITSCALE,
} GXIndTexScale;
typedef enum _GXIndTexMtxID {
/* 0x0 */ GX_ITM_OFF,
/* 0x1 */ GX_ITM_0,
/* 0x2 */ GX_ITM_1,
/* 0x3 */ GX_ITM_2,
/* 0x5 */ GX_ITM_S0 = 5,
/* 0x6 */ GX_ITM_S1,
/* 0x7 */ GX_ITM_S2,
/* 0x9 */ GX_ITM_T0 = 9,
/* 0xA */ GX_ITM_T1,
/* 0xB */ GX_ITM_T2,
} GXIndTexMtxID;
typedef enum _GXIndTexFormat {
/* 0x0 */ GX_ITF_8,
/* 0x1 */ GX_ITF_5,
/* 0x2 */ GX_ITF_4,
/* 0x3 */ GX_ITF_3,
} GXIndTexFormat;
typedef enum _GXIndTexBiasSel {
/* 0x0 */ GX_ITB_NONE,
/* 0x1 */ GX_ITB_S,
/* 0x2 */ GX_ITB_T,
/* 0x3 */ GX_ITB_ST,
/* 0x4 */ GX_ITB_U,
/* 0x5 */ GX_ITB_SU,
/* 0x6 */ GX_ITB_TU,
/* 0x7 */ GX_ITB_STU,
} GXIndTexBiasSel;
typedef enum _GXIndTexAlphaSel {
/* 0x0 */ GX_ITBA_OFF,
/* 0x1 */ GX_ITBA_S,
/* 0x2 */ GX_ITBA_T,
/* 0x3 */ GX_ITBA_U,
} GXIndTexAlphaSel;
typedef enum _GXIndTexWrap {
/* 0x0 */ GX_ITW_OFF,
/* 0x1 */ GX_ITW_256,
/* 0x2 */ GX_ITW_128,
/* 0x3 */ GX_ITW_64,
/* 0x4 */ GX_ITW_32,
/* 0x5 */ GX_ITW_16,
/* 0x6 */ GX_ITW_0,
} GXIndTexWrap;
typedef enum _GXTexOffset {
/* 0x0 */ GX_TO_ZERO,
/* 0x1 */ GX_TO_SIXTEENTH,
/* 0x2 */ GX_TO_EIGHTH,
/* 0x3 */ GX_TO_FOURTH,
/* 0x4 */ GX_TO_HALF,
/* 0x5 */ GX_TO_ONE,
/* 0x6 */ GX_MAX_TEXOFFSET,
} GXTexOffset;
typedef enum _GXTevKColorID {
/* 0x0 */ GX_KCOLOR0,
/* 0x1 */ GX_KCOLOR1,
/* 0x2 */ GX_KCOLOR2,
/* 0x3 */ GX_KCOLOR3,
} GXTevKColorID;
typedef enum _GXTexCacheSize {
/* 0x0 */ GX_TEXCACHE_32K,
/* 0x1 */ GX_TEXCACHE_128K,
/* 0x2 */ GX_TEXCACHE_512K,
/* 0x3 */ GX_TEXCACHE_NONE,
} GXTexCacheSize;
typedef enum _GXPosNrmMtx {
GX_PNMTX0 = 3 * 0,
GX_PNMTX1 = 3 * 1,
GX_PNMTX2 = 3 * 2,
GX_PNMTX3 = 3 * 3,
GX_PNMTX4 = 3 * 4,
GX_PNMTX5 = 3 * 5,
GX_PNMTX6 = 3 * 6,
GX_PNMTX7 = 3 * 7,
GX_PNMTX8 = 3 * 8,
GX_PNMTX9 = 3 * 9,
} GXPosNrmMtx;
typedef enum _GXTexMtx {
GX_TEXMTX0 = 30 + 0 * 3,
GX_TEXMTX1 = 30 + 1 * 3,
GX_TEXMTX2 = 30 + 2 * 3,
GX_TEXMTX3 = 30 + 3 * 3,
GX_TEXMTX4 = 30 + 4 * 3,
GX_TEXMTX5 = 30 + 5 * 3,
GX_TEXMTX6 = 30 + 6 * 3,
GX_TEXMTX7 = 30 + 7 * 3,
GX_TEXMTX8 = 30 + 8 * 3,
GX_TEXMTX9 = 30 + 9 * 3,
GX_IDENTITY = 60,
};
typedef enum _GXPTTexMtx {
GX_PTTEXMTX0 = 64 + 0 * 3,
GX_PTTEXMTX1 = 64 + 1 * 3,
GX_PTTEXMTX2 = 64 + 2 * 3,
GX_PTTEXMTX3 = 64 + 3 * 3,
GX_PTTEXMTX4 = 64 + 4 * 3,
GX_PTTEXMTX5 = 64 + 5 * 3,
GX_PTTEXMTX6 = 64 + 6 * 3,
GX_PTTEXMTX7 = 64 + 7 * 3,
GX_PTTEXMTX8 = 64 + 8 * 3,
GX_PTTEXMTX9 = 64 + 9 * 3,
GX_PTTEXMTX10 = 64 + 10 * 3,
GX_PTTEXMTX11 = 64 + 11 * 3,
GX_PTTEXMTX12 = 64 + 12 * 3,
GX_PTTEXMTX13 = 64 + 13 * 3,
GX_PTTEXMTX14 = 64 + 14 * 3,
GX_PTTEXMTX15 = 64 + 15 * 3,
GX_PTTEXMTX16 = 64 + 16 * 3,
GX_PTTEXMTX17 = 64 + 17 * 3,
GX_PTTEXMTX18 = 64 + 18 * 3,
GX_PTTEXMTX19 = 64 + 19 * 3,
GX_PTIDENTITY = 125,
};
typedef enum _GXFBClamp {
/* 0x0 */ GX_CLAMP_NONE,
/* 0x1 */ GX_CLAMP_TOP,
/* 0x2 */ GX_CLAMP_BOTTOM,
} GXFBClamp;
typedef enum _GXPixelFmt {
/* 0x0 */ GX_PF_RGB8_Z24,
/* 0x1 */ GX_PF_RGBA6_Z24,
/* 0x2 */ GX_PF_RGB565_Z16,
/* 0x3 */ GX_PF_Z24,
/* 0x4 */ GX_PF_Y8,
/* 0x5 */ GX_PF_U8,
/* 0x6 */ GX_PF_V8,
/* 0x7 */ GX_PF_YUV420,
} GXPixelFmt;
typedef enum _GXZFmt16 {
/* 0x0 */ GX_ZC_LINEAR,
/* 0x1 */ GX_ZC_NEAR,
/* 0x2 */ GX_ZC_MID,
/* 0x3 */ GX_ZC_FAR,
} GXZFmt16;
typedef enum _GXCommand {
GX_CMD_LOAD_INDX_A = 0x20,
GX_CMD_LOAD_INDX_B = 0x28,
GX_CMD_LOAD_INDX_C = 0x30,
GX_CMD_LOAD_INDX_D = 0x38,
GX_CMD_LOAD_CP_REG = 0x08,
GX_CMD_LOAD_XF_REG = 0x10,
} GXCommand;
typedef enum _GXClipMode {
/* 0x0 */ GX_CLIP_ENABLE,
/* 0x1 */ GX_CLIP_DISABLE,
} GXClipMode;
#endif /* GXENUM_H */
+89
View File
@@ -0,0 +1,89 @@
#ifndef GXSTRUCT_H
#define GXSTRUCT_H
#include "dolphin/types.h"
#include "global.h"
typedef struct _GXColor {
/* 0x0 */ u8 r;
/* 0x1 */ u8 g;
/* 0x2 */ u8 b;
/* 0x3 */ u8 a;
} GXColor;
typedef struct _GXColorS10 {
/* 0x0 */ s16 r;
/* 0x2 */ s16 g;
/* 0x4 */ s16 b;
/* 0x6 */ s16 a;
} GXColorS10;
typedef struct _GXRenderModeObj {
/* 0x00 */ s32 vi_tv_mode;
/* 0x04 */ u16 fb_width;
/* 0x06 */ u16 efb_height;
/* 0x08 */ u16 xfb_height;
/* 0x0A */ u16 vi_x_origin;
/* 0x0C */ u16 vi_y_origin;
/* 0x0E */ u16 vi_width;
/* 0x10 */ u16 vi_height;
/* 0x14 */ s32 xfb_mode;
/* 0x18 */ u8 field_rendering;
/* 0x19 */ u8 antialiasing;
/* 0x1A */ u8 sample_pattern[12][2];
/* 0x32 */ u8 vfilter[7];
} GXRenderModeObj;
STATIC_ASSERT(sizeof(_GXRenderModeObj) == 60);
typedef struct _GXTexObj {
/* 0x00 */ u32 texture_filter;
/* 0x04 */ u32 texture_lod;
/* 0x08 */ u32 texture_size;
/* 0x0C */ u32 texture_address;
/* 0x10 */ u32 user_data;
/* 0x14 */ u32 texture_format;
/* 0x18 */ u32 tlut_name;
/* 0x1C */ u16 texture_time_count;
/* 0x1E */ u8 texture_tile_type;
/* 0x1F */ u8 texture_flags;
} GXTexObj;
typedef struct _GXTlutObj {
/* 0x0 */ u32 format;
/* 0x4 */ u32 address;
/* 0x8 */ u32 numEntries;
} GXTlutObj;
typedef struct _GXLightObj {
/* 0x0 */ u32 data[16];
} GXLightObj;
typedef struct _GXFogAdjTable {
/* 0x0 */ u16 r[10];
} GXFogAdjTable;
typedef struct _GXFifoObj {
/* 0x00 */ void* base;
/* 0x04 */ u32 end;
/* 0x08 */ u32 size;
/* 0x0C */ u32 high_wtrmark;
/* 0x10 */ u32 low_wtrmark;
/* 0x14 */ void* read_ptr;
/* 0x18 */ void* write_ptr;
/* 0x1C */ void* rw_dst;
/* 0x20 */ u8 fifo_wrap;
/* 0x21 */ u8 cpu_fifo_ready;
/* 0x22 */ u8 gp_fifo_ready;
/* 0x23 */ u8 field_0x23[93];
} GXFifoObj; // Size: 0x80
typedef struct _GXTexRegion {
/* 0x00 */ u8 dummy[0x10];
} GXTexRegion; // Size: 0x10
typedef struct _GXTlutRegion {
/* 0x00 */ u8 dummy[0x10];
} GXTlutRegion; // Size: 0x10
#endif /* GXSTRUCT_H */
+57 -216
View File
@@ -1,236 +1,81 @@
// at some point: we should split this up into various OS/... headers. but not
// yet, since barely any files include this atm.
#ifndef OS_H_
#define OS_H_
#include "Runtime.PPCEABI.H/__va_arg.h"
#include "dolphin/types.h"
#include "Runtime.PPCEABI.H/__va_arg.h"
#include "dolphin/os/OSAlarm.h"
#include "dolphin/os/OSAlloc.h"
#include "dolphin/os/OSArena.h"
#include "dolphin/os/OSAudioSystem.h"
#include "dolphin/os/OSCache.h"
#include "dolphin/os/OSContext.h"
#include "dolphin/os/OSError.h"
#include "dolphin/os/OSExec.h"
#include "dolphin/os/OSFont.h"
#include "dolphin/os/OSInterrupt.h"
#include "dolphin/os/OSLink.h"
#include "dolphin/os/OSMemory.h"
#include "dolphin/os/OSMessage.h"
#include "dolphin/os/OSMutex.h"
#include "dolphin/os/OSReboot.h"
#include "dolphin/os/OSReset.h"
#include "dolphin/os/OSResetSW.h"
#include "dolphin/os/OSRtc.h"
#include "dolphin/os/OSSync.h"
#include "dolphin/os/OSThread.h"
#include "dolphin/os/OSTime.h"
#ifdef __cplusplus
extern "C" {
#endif
#define OS_BUS_CLOCK (*(u32*)0x800000F8)
#define OS_CORE_CLOCK (*(u32*)0x800000FC)
#define OS_TIMER_CLOCK (OS_BUS_CLOCK / 4)
/* TODO: more structs, and get rid of the ones that are faked! */
#define OS_MESSAGE_NON_BLOCKING 0
#define OS_MESSAGE_BLOCKING 1
struct OSThread;
struct OSMutex {
u8 unk[24];
};
struct OSMutexLink {
struct OSMutex* prev;
struct OSMutex* next;
};
struct OSMutexQueue {
struct OSMutex* prev;
struct OSMutex* next;
};
struct OSContext {
u32 gpr[32];
u32 cr;
u32 lr;
u32 ctr;
u32 xer;
double fpr[32];
u32 padding_1;
u32 fpscr;
u32 srr0;
u32 srr1;
u16 mode;
u16 state;
u32 gqr[8];
u32 padding_2;
double ps[32];
};
typedef void (*OSSwitchThreadCallback)(OSThread* from, OSThread* to);
struct OSThreadLink {
struct OSThread* prev;
struct OSThread* next;
};
struct OSThreadQueue {
struct OSThread* head;
struct OSThread* tail;
};
struct OSCond {
struct OSThreadQueue queue;
};
typedef void* OSMessage;
struct OSMessageQueue {
struct OSThreadQueue sending_queue;
struct OSThreadQueue receiving_queue;
void** message_array;
s32 num_messages;
s32 first_index;
s32 num_used;
};
typedef u32 OSTick;
typedef s64 OSTime;
struct OSCalendarTime {
s32 seconds;
s32 minutes;
s32 hours;
s32 day_of_month;
s32 month;
s32 year;
s32 week_day;
s32 year_day;
s32 milliseconds;
s32 microseconds;
};
typedef s32 OSHeapHandle;
typedef enum OSSoundMode {
SOUND_MODE_MONO = 0,
SOUND_MODE_STEREO = 1,
} OSSoundMode;
typedef u16 OSThreadState;
#define OS_THREAD_STATE_UNINITIALIZED 0
#define OS_THREAD_STATE_READY 1
#define OS_THREAD_STATE_RUNNING 2
#define OS_THREAD_STATE_WAITING 4
#define OS_THREAD_STATE_DEAD 8
struct OSThread {
OSContext context;
OSThreadState state;
u16 attributes;
s32 suspend_count;
u32 effective_priority;
u32 base_priority;
void* exit_value;
OSThreadQueue* queue;
OSThreadLink link;
OSThreadQueue join_queue;
OSMutex* mutex;
OSMutexQueue owned_mutexes;
OSThreadLink active_threads_link;
u8* stack_base;
u8* stack_end;
u8* error_code;
void* data[2];
};
struct OSAlarm;
struct OSAlarmLink {
/* 0x0 */ OSAlarm* prev;
/* 0x4 */ OSAlarm* next;
};
typedef void (*OSAlarmHandler)(OSAlarm* alarm, OSContext* context);
struct OSAlarm {
/* 0x00 */ OSAlarmHandler handler;
/* 0x04 */ u32 tag;
/* 0x08 */ OSTime fire_time;
/* 0x10 */ OSAlarmLink link;
/* 0x18 */ OSTime period_time;
/* 0x20 */ OSTime start_time;
}; // Size: 0x28
extern "C" {
s32 OSEnableScheduler(void);
s32 OSDisableScheduler(void);
s32 OSCheckActiveThreads(void);
OSThread* OSGetCurrentThread(void);
s32 OSSuspendThread(OSThread* thread);
s32 OSSetThreadPriority(OSThread* thread, u32 pri);
s32 OSGetThreadPriority(OSThread* thread);
BOOL OSCreateThread(OSThread* thread, void* func, void* param, void* stack, u32 stackSize,
int priority, int attr);
void OSCancelThread(OSThread* thread);
void OSDetachThread(OSThread* thread);
s32 OSResumeThread(OSThread* thread);
void OSExitThread(void* exit_val);
BOOL OSIsThreadSuspended(OSThread* thread);
BOOL OSIsThreadTerminated(OSThread* thread);
OSSwitchThreadCallback OSSetSwitchThreadCallback(OSSwitchThreadCallback callback);
void OSInitMessageQueue(OSMessageQueue* queue, OSMessage* messages, int message_count);
BOOL OSReceiveMessage(OSMessageQueue* queue, OSMessage* message, int flags);
BOOL OSSendMessage(OSMessageQueue* queue, OSMessage message, int flags);
BOOL OSJamMessage(OSMessageQueue* queue, OSMessage message, int flags);
u32 OSGetConsoleType(void);
s32 OSGetConsoleType(void);
u32 OSGetResetCode(void);
u32 OSGetSoundMode(void);
void OSSetSoundMode(OSSoundMode mode);
void OSAttention(const char* msg, ...);
void OSPanic(const char* file, s32 line, const char* fmt, ...);
void OSReport(const char* fmt, ...);
void OSReport_Error(const char* fmt, ...);
void OSReport_FatalError(const char* fmt, ...);
void OSReport_System(const char* fmt, ...);
void OSReport_Warning(const char* fmt, ...);
void OSAttention(char* msg, ...);
void OSPanic(char* file, s32 line, char* fmt, ...);
void OSReport(char* fmt, ...);
void OSReport_Error(char* fmt, ...);
void OSReport_FatalError(char* fmt, ...);
void OSReport_System(char* fmt, ...);
void OSReport_Warning(char* fmt, ...);
void OSReportDisable(void);
void OSReportEnable(void);
void OSReportForceEnableOff(void);
void OSReportForceEnableOn(void);
void OSVReport(const char* format, va_list list);
void OSTicksToCalendarTime(OSTime ticks, OSCalendarTime* out_time);
OSTime OSGetTime(void);
OSTick OSGetTick(void);
u32 OSGetArenaLo();
u32 OSGetArenaHi();
u32 OSInitAlloc(u32 low, u32 high, int maxHeaps);
void OSSetArenaLo(u32 newLo);
void OSSetArenaHi(u32 newHi);
void* OSAllocFromArenaLo(u32 size, int alignment);
void OSInitMutex(OSMutex* mutex);
void OSLockMutex(OSMutex* mutex);
BOOL OSTryLockMutex(OSMutex* mutex);
void OSUnlockMutex(OSMutex* mutex);
BOOL OSDisableInterrupts();
BOOL OSEnableInterrupts();
BOOL OSRestoreInterrupts(s32 level);
void OSResetSystem(s32 param_1, u32 param_2, s32 param_3);
void OSSetSaveRegion(void* start, void* end);
void LCDisable(void);
void OSVReport(char* format, va_list list);
void OSVAttention(char* fmt, va_list args);
void OSReportInit(void);
void OSReportInit__Fv(void); // needed for inline asm
u8* OSGetStackPointer(void);
void __OSFPRInit(void);
static void InquiryCallback(u32 param_0, void* param_1);
void OSInit(void);
static void OSExceptionInit(void);
void __OSDBIntegrator(void);
void __OSDBJump(void);
void OSCreateAlarm(OSAlarm* alarm);
void OSCancelAlarm(OSAlarm* alarm);
void OSSetAlarm(OSAlarm* alarm, OSTime time, OSAlarmHandler handler);
void OSSetPeriodicAlarm(OSAlarm*, OSTime, OSTime, OSAlarmHandler);
void OSInitCond(OSCond* cond);
void OSWaitCond(OSCond* cond, OSMutex* mutex);
void OSSignalCond(OSCond* cond);
void DCStoreRangeNoSync(void*, u32);
typedef void (*OSExceptionHandler)(OSException, OSContext*);
OSExceptionHandler __OSSetExceptionHandler(OSException exception, OSExceptionHandler handler);
OSExceptionHandler __OSGetExceptionHandler(OSException exception);
static void OSExceptionVector(void);
void __DBVECTOR();
void __OSEVSetNumber();
void __OSEVEnd();
static void OSDefaultExceptionHandler(OSException exception, OSContext* context);
void __OSPSInit(void);
void __OSGetDIConfig(void);
void OSRegisterVersion(char* version);
void OSSwitchFiberEx(u32, u32, u32, u32, u32, u32);
inline s16 __OSf32tos16(register f32 inF) {
register s16 out;
@@ -268,7 +113,7 @@ inline void OSf32tou8(f32* f, u8* out) {
*out = __OSf32tou8(*f);
}
inline void OSInitFastCast(void) {
inline void i_OSInitFastCast(void) {
// clang-format off
asm {
li r3, 4
@@ -287,14 +132,6 @@ inline void OSInitFastCast(void) {
// clang-format on
}
}; // extern "C"
void OSSwitchFiberEx(u32, u32, u32, u32, u32, u32);
void OSVAttention(const char* fmt, va_list args);
void OSReportInit(void);
#include "dolphin/dvd/dvd.h"
struct GLOBAL_MEMORY {
@@ -386,4 +223,8 @@ inline void* OSPhysicalToCached(u32 offset) {
return (void*)(offset + 0x80000000);
}
#ifdef __cplusplus
};
#endif
#endif
+36
View File
@@ -2,5 +2,41 @@
#define OSALARM_H
#include "dolphin/types.h"
#include "dolphin/os/OSTime.h"
#include "dolphin/os/OSError.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct OSAlarmLink {
/* 0x0 */ struct OSAlarm* prev;
/* 0x4 */ struct OSAlarm* next;
} OSAlarmLink;
typedef void (*OSAlarmHandler)(struct OSAlarm* alarm, struct OSContext* context);
typedef struct OSAlarm {
/* 0x00 */ OSAlarmHandler handler;
/* 0x04 */ u32 tag;
/* 0x08 */ OSTime fire_time;
/* 0x10 */ OSAlarmLink link;
/* 0x18 */ OSTime period_time;
/* 0x20 */ OSTime start_time;
} OSAlarm; // Size: 0x28
void OSInitAlarm(void);
void OSCreateAlarm(OSAlarm* alarm);
static void InsertAlarm(OSAlarm* alarm, s64 time, OSAlarmHandler* handler);
void OSSetAlarm(OSAlarm* alarm, s64 time, OSAlarmHandler* handler);
void OSSetPeriodicAlarm(OSAlarm* alarm, s64 start, s64 period, OSAlarmHandler* handler);
void OSCancelAlarm(OSAlarm* alarm);
static void DecrementerExceptionCallback(OSException* exception, struct OSContext* context);
static void DecrementerExceptionHandler(OSException* exception, struct OSContext* context);
static s32 OnReset(s32 param_0);
#ifdef __cplusplus
};
#endif
#endif /* OSALARM_H */
+16
View File
@@ -3,4 +3,20 @@
#include "dolphin/types.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef u32 OSHeapHandle;
static void* DLInsert(void* param_0, void* param_1);
void OSFreeToHeap(OSHeapHandle heap, void* ptr);
void OSSetCurrentHeap(OSHeapHandle heap);
void* OSInitAlloc(void* lo, void* hi, s32 maxHeaps);
OSHeapHandle OSCreateHeap(void* start, void* end);
#ifdef __cplusplus
};
#endif
#endif /* OSALLOC_H */
+14
View File
@@ -3,4 +3,18 @@
#include "dolphin/types.h"
#ifdef __cplusplus
extern "C" {
#endif
void* OSGetArenaHi(void);
void* OSGetArenaLo(void);
void OSSetArenaHi(void* hi);
void OSSetArenaLo(void* lo);
void* OSAllocFromArenaLo(u32 size, s32 alignment);
#ifdef __cplusplus
};
#endif
#endif /* OSARENA_H */
+11
View File
@@ -3,4 +3,15 @@
#include "dolphin/types.h"
#ifdef __cplusplus
extern "C" {
#endif
void __OSInitAudioSystem(void);
void __OSStopAudioSystem(void);
#ifdef __cplusplus
};
#endif
#endif /* OSAUDIOSYSTEM_H */
+26 -4
View File
@@ -3,10 +3,32 @@
#include "dolphin/types.h"
#ifdef __cplusplus
extern "C" {
void DCInvalidateRange(void*, u32);
void DCStoreRange(void*, u32);
void DCStoreRangeNoSync(void*, u32);
}
#endif
static void DCEnable(void);
void DCInvalidateRange(void* start, u32 nBytes);
void DCFlushRange(void* start, u32 nBytes);
void DCStoreRange(void* start, u32 nBytes);
void DCFlushRangeNoSync(void* start, u32 nBytes);
void DCStoreRangeNoSync(void* start, u32 nBytes);
void DCZeroRange(void* start, u32 nBytes);
void ICInvalidateRange(void* start, u32 nBytes);
void ICFlashInvalidate(void);
static void ICEnable(void);
void __LCEnable(void);
void LCEnable(void);
void LCDisable(void);
static void LCStoreBlocks(void* destAddr, void* srcAddr, u32 blockNum);
u32 LCStoreData(void* destAddr, void* srcAddr, u32 nBytes);
void LCQueueWait(u32 len);
static void L2GlobalInvalidate(void);
static void DMAErrorHandler(s32 error, struct OSContext* context);
void __OSCacheInit(void);
#ifdef __cplusplus
};
#endif
#endif /* OSCACHE_H */
+41
View File
@@ -3,4 +3,45 @@
#include "dolphin/types.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef void (*OSSwitchThreadCallback)(struct OSThread* from, struct OSThread* to);
typedef struct OSContext {
/* 0x000 */ u32 gpr[32];
/* 0x080 */ u32 cr;
/* 0x084 */ u32 lr;
/* 0x088 */ u32 ctr;
/* 0x08C */ u32 xer;
/* 0x090 */ f64 fpr[32];
/* 0x190 */ u32 padding_1;
/* 0x194 */ u32 fpscr;
/* 0x198 */ u32 srr0;
/* 0x19C */ u32 srr1;
/* 0x1A0 */ u16 mode;
/* 0x1A2 */ u16 state;
/* 0x1A4 */ u32 gqr[8];
/* 0x1C4 */ f64 ps[32];
} OSContext;
void __OSLoadFPUContext(void);
void __OSSaveFPUContext(OSContext* context);
void OSSaveFPUContext(OSContext* context);
void OSSetCurrentContext(OSContext* context);
OSContext* OSGetCurrentContext(void);
void OSSaveContext(OSContext* context);
void OSLoadContext(OSContext* context);
void OSClearContext(OSContext* context);
void OSInitContext(OSContext* context, u32 pc, u32 lr);
void OSDumpContext(OSContext* context);
static void OSSwitchFPUContext(OSContext* context);
void __OSContextInit(void);
void OSFillFPUContext(OSContext* context);
#ifdef __cplusplus
};
#endif
#endif /* OSCONTEXT_H */
+48 -19
View File
@@ -3,31 +3,60 @@
#include "dolphin/types.h"
#ifdef __cplusplus
extern "C" {
#endif
struct OSContext;
extern u32 __OSFpscrEnableBits;
typedef u16 OSError;
typedef void (*OSErrorHandler)(OSError, OSContext*, u32, u32);
typedef void (*OSErrorHandler)(OSError error, OSContext* context, u32, u32);
#define OS_ERROR_SYSTEM_RESET 0x0
#define OS_ERROR_MACHINE_CHECK 0x1
#define OS_ERROR_DSI 0x2
#define OS_ERROR_ISI 0x3
#define OS_ERROR_INTERRUPT 0x4
#define OS_ERROR_ALIGNMENT 0x5
#define OS_ERROR_PROGRAM 0x6
#define OS_ERROR_FLOATING_POINT 0x7
#define OS_ERROR_DECREMENTER 0x8
#define OS_ERROR_SYSTEM_CALL 0x9
#define OS_ERROR_TRACE 0xa
#define OS_ERROR_PERFORMANCE_MONITOR 0xb
#define OS_ERROR_BREAKPOINT 0xc
#define OS_ERROR_RESERVED 0xd
#define OS_ERROR_THERMAL_INTERRUPT 0xe
#define OS_ERROR_MEMORY_PROTECTION 0xf
#define OS_ERROR_FLOATING_POINT_EXCEPTION 0x10
#define OS_ERROR_SYSTEM_RESET 0
#define OS_ERROR_MACHINE_CHECK 1
#define OS_ERROR_DSI 2
#define OS_ERROR_ISI 3
#define OS_ERROR_INTERRUPT 4
#define OS_ERROR_ALIGNMENT 5
#define OS_ERROR_PROGRAM 6
#define OS_ERROR_FLOATING_POINT 7
#define OS_ERROR_DECREMENTER 8
#define OS_ERROR_SYSTEM_CALL 9
#define OS_ERROR_TRACE 10
#define OS_ERROR_PERFORMANCE_MONITOR 11
#define OS_ERROR_BREAKPOINT 12
#define OS_ERROR_RESERVED 13
#define OS_ERROR_THERMAL_INTERRUPT 14
#define OS_ERROR_MEMORY_PROTECTION 15
#define OS_ERROR_FLOATING_POINT_EXCEPTION 16
extern "C" void OSSetErrorHandler(OSError, OSErrorHandler);
typedef enum OSException {
EXCEPTION_SYSTEM_RESET,
EXCEPTION_MACHINE_CHECK,
EXCEPTION_DSI,
EXCEPTION_ISI,
EXCEPTION_EXTERNAL_INTERRUPT,
EXCEPTION_ALIGNMENT,
EXCEPTION_PROGRAM,
EXCEPTION_FLOATING_POINT,
EXCEPTION_DECREMENTER,
EXCEPTION_SYSTEM_CALL,
EXCEPTION_TRACE ,
EXCEPTION_PERFORMANCE_MONITOR,
EXCEPTION_BREAKPOINT,
EXCEPTION_RESERVED,
EXCEPTION_THERMAL_INTERRUPT,
EXCEPTION_MEMORY_PROTECTION,
EXCEPTION_FLOATING_POINT_EXCEPTION,
} OSException;
OSErrorHandler OSSetErrorHandler(OSError error, OSErrorHandler handler);
void __OSUnhandledException(OSException exception, OSContext* context, u32 dsisr, u32 dar);
#ifdef __cplusplus
};
#endif
#endif /* OSERROR_H */
+17
View File
@@ -3,4 +3,21 @@
#include "dolphin/types.h"
#ifdef __cplusplus
extern "C" {
#endif
static s32 PackArgs(void* param_0, u32 param_1, void* param_2);
static void Run(void);
static void ReadDisc(void* param_0, s32 param_1, s32 param_2);
static void Callback(void);
void __OSGetExecParams(void* param_0);
static void GetApploaderPosition(void);
void __OSBootDolSimple(u32 param_0, u32 param_1, void* param_2, void* param_3, s32 param_4, u32 param_5, void* param_6);
void __OSBootDol(s32 param_0, u32 param_1, s32 param_2);
#ifdef __cplusplus
};
#endif
#endif /* OSEXEC_H */

Some files were not shown because too many files have changed in this diff Show More