diff options
| author | TakaRikka <38417346+TakaRikka@users.noreply.github.com> | 2022-01-25 12:24:14 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-01-25 21:24:14 +0100 |
| commit | 612f26c132280da43ecfa5fa8c8cc32966f06eb6 (patch) | |
| tree | ac20d071712cf830ec526222c98d340d90721f77 /include/d/kankyo | |
| parent | 6f4d068f1d7c5a9f25f1920e64e5b10dc29aea07 (diff) | |
d_kankyo_wether / d_eye_hl (#178)
* d_eye_hl / d_kankyo_wether wip
* more d_kankyo_wether + format
* remove asm
* some d_kankyo wip
* fix dccs vtable
* some m_Do_graphic / d_meter2_draw work
Diffstat (limited to 'include/d/kankyo')
| -rw-r--r-- | include/d/kankyo/d_kankyo.h | 397 | ||||
| -rw-r--r-- | include/d/kankyo/d_kankyo_data.h | 46 | ||||
| -rw-r--r-- | include/d/kankyo/d_kankyo_rain.h | 37 | ||||
| -rw-r--r-- | include/d/kankyo/d_kankyo_wether.h | 256 |
4 files changed, 438 insertions, 298 deletions
diff --git a/include/d/kankyo/d_kankyo.h b/include/d/kankyo/d_kankyo.h index 4b58527211..add1722d2a 100644 --- a/include/d/kankyo/d_kankyo.h +++ b/include/d/kankyo/d_kankyo.h @@ -2,11 +2,11 @@ #define D_KANKYO_D_KANKYO_H #include "JSystem/J3DGraphAnimator/J3DModelData.h" -#include "JSystem/J3DGraphBase/J3DPacket.h" #include "JSystem/J3DGraphBase/J3DStruct.h" #include "JSystem/JParticle/JPAParticle.h" #include "SSystem/SComponent/c_sxyz.h" #include "SSystem/SComponent/c_xyz.h" +#include "d/kankyo/d_kankyo_wether.h" #include "dolphin/gx/GX.h" #include "dolphin/types.h" #include "m_Do/m_Do_ext.h" @@ -18,10 +18,10 @@ struct LIGHT_INFLUENCE { /* 800CFC7C */ ~LIGHT_INFLUENCE(); /* 8019F4F8 */ LIGHT_INFLUENCE(); - /* 0x00 */ cXyz field_0x00; - /* 0x0C */ _GXColorS10 mColor; - /* 0x14 */ float field_0x14; - /* 0x18 */ float field_0x18; + /* 0x00 */ cXyz mPosition; + /* 0x0C */ GXColorS10 mColor; + /* 0x14 */ f32 mPow; + /* 0x18 */ f32 mFluctuation; // ? /* 0x1C */ int field_0x1c; }; @@ -46,7 +46,7 @@ struct EFLIGHT_PROC { /* 0x00 */ u8 field_0x0; /* 0x01 */ u8 field_0x1; /* 0x04 */ int field_0x4; - /* 0x08 */ LIGHT_INFLUENCE field_0x8; + /* 0x08 */ u8 field_0x8[0x20]; // LIGHT_INFLUENCE? }; struct SND_INFLUENCE { @@ -64,8 +64,16 @@ struct DUNGEON_LIGHT { /* 8019F478 */ ~DUNGEON_LIGHT(); /* 8019F4B4 */ DUNGEON_LIGHT(); - /* 0x00 */ cXyz field_0x0; - /* 0x0C */ u8 field_0xc[0x20]; + /* 0x00 */ cXyz mPosition; + /* 0x0C */ GXColor mColor; + /* 0x10 */ f32 mRefDistance; + /* 0x14 */ u8 field_0x14[4]; + /* 0x18 */ f32 mCutoffAngle; + /* 0x1C */ f32 mAngleX; + /* 0x20 */ f32 mAngleY; + /* 0x24 */ u8 mAngleAttenuation; + /* 0x25 */ u8 mDistAttenuation; + /* 0x26 */ u8 field_0x26[6]; /* 0x2C */ // LIGHT_INFLUENCE field_0x2c; this breaks ctor for some reason u8 field_0x2c[0x20]; }; // Size: 0x4C @@ -87,7 +95,7 @@ struct BOSS_LIGHT { }; // Size: 0x28 struct GB_WIND_INFLUENCE { - /* 0x00 */ cXyz pos; + /* 0x00 */ cXyz vec; /* 0x0C */ int field_0xc; /* 0x10 */ f32 pow; }; @@ -104,7 +112,7 @@ struct EF_THUNDER { /* 0x18 */ f32 field_0x18; /* 0x1C */ f32 field_0x1c; /* 0x20 */ u8 field_0x20[4]; - /* 0x24 */ LIGHT_INFLUENCE field_0x24; + /* 0x24 */ u8 field_0x24[0x20]; // LIGHT_INFLUENCE? }; struct GB_MAPLE_COL_CHANGE { @@ -157,185 +165,6 @@ public: STATIC_ASSERT(sizeof(dKy_tevstr_c) == 0x388); -class dKankyo_sun_Packet : public J3DPacket { -public: - virtual void draw(); - virtual ~dKankyo_sun_Packet(); - -private: - /* 0x10 */ cXyz field_0x10[2]; -}; - -class dKankyo_sunlenz_Packet : public J3DPacket { -public: - virtual void draw(); - virtual ~dKankyo_sunlenz_Packet(); - -private: - /* 0x10 */ u8 field_0x10[0x14]; - /* 0x24 */ cXyz field_0x24[8]; -}; - -struct RAIN_EFF { - /* 0x00 */ u8 field_0x0[4]; - /* 0x04 */ cXyz field_0x04; - /* 0x10 */ cXyz field_0x10; - /* 0x1C */ u8 field_0x1c[0x1c]; -}; // Size: 0x38 - -class dKankyo_rain_Packet : public J3DPacket { -public: - virtual void draw(); - virtual ~dKankyo_rain_Packet(); - -private: - /* 0x10 */ u8 field_0x10[8]; - /* 0x18 */ RAIN_EFF field_0x18[250]; -}; - -struct SNOW_EFF { - /* 0x00 */ u8 field_0x0[4]; - /* 0x04 */ cXyz field_0x04; - /* 0x10 */ cXyz field_0x10; - /* 0x1C */ u8 field_0x1c[0x1c]; -}; // Size: 0x38 - -class dKankyo_snow_Packet : public J3DPacket { -public: - virtual void draw(); - virtual ~dKankyo_snow_Packet(); - -private: - /* 0x10 */ u8 field_0x10[4]; - /* 0x14 */ SNOW_EFF field_0x14[500]; -}; - -struct STAR_EFF { - /* 0x00 */ u8 field_0x0[4]; - /* 0x04 */ cXyz field_0x04; - /* 0x10 */ cXyz field_0x10; - /* 0x1C */ u8 field_0x1c[0x18]; -}; // Size: 0x34 - -class dKankyo_star_Packet : public J3DPacket { -public: - virtual void draw(); - virtual ~dKankyo_star_Packet(); - -private: - /* 0x10 */ u8 field_0x10[4]; - /* 0x14 */ STAR_EFF field_0x14[1]; -}; - -struct HOUSI_EFF { - /* 0x00 */ u8 field_0x0[4]; - /* 0x04 */ cXyz field_0x04; - /* 0x10 */ cXyz field_0x10; - /* 0x1C */ cXyz field_0x1c; - /* 0x28 */ u8 field_0x28[0x28]; -}; // Size: 0x50 - -class dKankyo_housi_Packet : public J3DPacket { -public: - virtual void draw(); - virtual ~dKankyo_housi_Packet(); - -private: - /* 0x10 */ u8 field_0x10[0x10]; - /* 0x20 */ HOUSI_EFF field_0x18[300]; -}; - -struct CLOUD_EFF { - /* 0x00 */ u8 field_0x0[4]; - /* 0x04 */ cXyz field_0x04; - /* 0x10 */ cXyz field_0x10; - /* 0x1C */ cXyz field_0x1c; - /* 0x28 */ u8 field_0x28[0x10]; -}; // Size: 0x38 - -class dKankyo_cloud_Packet : public J3DPacket { -public: - virtual void draw(); - virtual ~dKankyo_cloud_Packet(); - -private: - /* 0x10 */ u8 field_0x10[8]; - /* 0x18 */ CLOUD_EFF field_0x18[50]; -}; - -struct VRKUMO_EFF { - /* 0x00 */ u8 field_0x0[4]; - /* 0x04 */ cXyz field_0x04; - /* 0x10 */ cXyz field_0x10; - /* 0x1C */ u8 field_0x1c[0x10]; -}; // Size: 0x2C - -class dKankyo_vrkumo_Packet : public J3DPacket { -public: - virtual void draw(); - virtual ~dKankyo_vrkumo_Packet(); - -private: - /* 0x10 */ u8 field_0x10[0x10]; - /* 0x20 */ VRKUMO_EFF field_0x18[100]; -}; - -// might be fake -class dKankyo_shstar_Packet : public J3DPacket {}; - -struct ODOUR_EFF { - /* 0x00 */ u8 field_0x0[4]; - /* 0x04 */ cXyz field_0x04; - /* 0x10 */ cXyz field_0x10; - /* 0x1C */ u8 field_0x1c[0x14]; -}; // Size: 0x30 - -class dKankyo_odour_Packet : public J3DPacket { -public: - virtual void draw(); - virtual ~dKankyo_odour_Packet(); - -private: - /* 0x10 */ u8 field_0x10[4]; - /* 0x14 */ ODOUR_EFF field_0x18[2000]; -}; - -struct MUD_EFF { - /* 0x00 */ u8 field_0x0[4]; - /* 0x04 */ cXyz field_0x04; - /* 0x10 */ cXyz field_0x10; - /* 0x1C */ cXyz field_0x1c; - /* 0x28 */ u8 field_0x28[0x20]; -}; // Size: 0x48 - -class dKankyo_mud_Packet : public J3DPacket { -public: - virtual void draw(); - virtual ~dKankyo_mud_Packet(); - -private: - /* 0x10 */ u8 field_0x10[8]; - /* 0x18 */ MUD_EFF field_0x18[100]; -}; - -struct EVIL_EFF { - /* 0x00 */ u8 field_0x0[4]; - /* 0x04 */ cXyz field_0x04; - /* 0x10 */ cXyz field_0x10; - /* 0x1C */ csXyz field_0x1c; - /* 0x22 */ u8 field_0x22[0x22]; -}; // Size: 0x44 - -class dKankyo_evil_Packet : public J3DPacket { -public: - virtual void draw(); - virtual ~dKankyo_evil_Packet(); - -private: - /* 0x10 */ u8 field_0x10[8]; - /* 0x18 */ EVIL_EFF field_0x18[2000]; -}; - class fopAc_ac_c; class dScnKy_env_light_c { @@ -344,7 +173,7 @@ public: /* 8019F4FC */ void setDaytime(); /* 8019F788 */ void setSunpos(); /* 8019FA08 */ f32 getDaytime(); - /* 8019FBCC */ void getDarkDaytime(); + /* 8019FBCC */ f32 getDarkDaytime(); /* 8019FBD4 */ void setLight_palno_get(u8*, u8*, u8*, u8*, u8*, u8*, u8*, u8*, f32*, int*, int*, f32*, u8*); /* 801A040C */ void setLight(); @@ -369,18 +198,18 @@ public: public: /* 0x0000 */ // vtable - /* 0x0004 */ void* field_0x4; - /* 0x0008 */ void* field_0x8; - /* 0x000C */ void* field_0xc; - /* 0x0010 */ void* field_0x10; - /* 0x0014 */ void* field_0x14; - /* 0x0018 */ LIGHT_INFLUENCE field_0x18; + /* 0x0004 */ void* mpDmPalet; + /* 0x0008 */ void* mpDmPselect; + /* 0x000C */ void* mpDmEnvr; + /* 0x0010 */ void* mpDmVrbox; + /* 0x0014 */ void* mpSchedule; + /* 0x0018 */ u8 field_0x18[0x20]; // LIGHT_INFLUENCE? /* 0x0038 */ LIGHT_INFLUENCE field_0x38[30]; - /* 0x03F8 */ LIGHT_INFLUENCE* mPLight[100]; + /* 0x03F8 */ LIGHT_INFLUENCE* mPointLight[100]; /* 0x0588 */ LIGHT_INFLUENCE* mEfPLight[5]; /* 0x059C */ u8 field_0x59c[400]; - /* 0x072C */ int field_0x72c[5]; - /* 0x0740 */ LIGHT_INFLUENCE field_0x740; + /* 0x072C */ LIGHT_INFLUENCE* field_0x72c[5]; + /* 0x0740 */ u8 field_0x740[0x20]; // LIGHT_INFLUENCE? /* 0x0760 */ u8 field_0x760[4]; /* 0x0764 */ LIGHT_INFLUENCE mBGpartsActiveLight[2]; /* 0x07A4 */ EFLIGHT_PROC field_0x7a4; @@ -390,10 +219,10 @@ public: /* 0x0974 */ SND_INFLUENCE mSound; /* 0x098C */ u8 field_0x98c; /* 0x0990 */ DALKMIST_INFLUENCE* mDalkmistInf[10]; - /* 0x09B8 */ DUNGEON_LIGHT field_0x9b8[8]; + /* 0x09B8 */ DUNGEON_LIGHT mDungeonLights[8]; /* 0x0C18 */ BOSS_LIGHT field_0x0c18[8]; /* 0x0D58 */ BOSS_LIGHT field_0x0d58[6]; - /* 0x0E48 */ GB_WIND_INFLUENCE field_0xe48; + /* 0x0E48 */ GB_WIND_INFLUENCE mWind; /* 0x0E5C */ f32 custom_windpower; /* 0x0E60 */ f32 field_0xe60; /* 0x0E64 */ u16 field_0xe64; @@ -404,46 +233,46 @@ public: /* 0x0E6D */ u8 field_0xe6d; /* 0x0E6E */ u8 field_0xe6e; // E5C - E6E might all be part of GB_WIND_INFLUENCE /* 0x0E6F */ u8 field_0xe6f; - /* 0x0E70 */ u8 field_0xe70; - /* 0x0E74 */ dKankyo_sun_Packet* field_0xe74; - /* 0x0E78 */ dKankyo_sunlenz_Packet* field_0xe78; - /* 0x0E7C */ u8 field_0xe7c; - /* 0x0E80 */ int mRainCheck; - /* 0x0E84 */ dKankyo_rain_Packet* field_0xe84; - /* 0x0E88 */ u8 field_0xe88; - /* 0x0E8C */ int field_0xe8c; + /* 0x0E70 */ bool mSunPacketEnabled; + /* 0x0E74 */ dKankyo_sun_Packet* mpSunPacket; + /* 0x0E78 */ dKankyo_sunlenz_Packet* mpSunLenzPacket; + /* 0x0E7C */ bool mRainPacketEnabled; + /* 0x0E80 */ int mRainCount; + /* 0x0E84 */ dKankyo_rain_Packet* mpRainPacket; + /* 0x0E88 */ bool mSnowPacketEnabled; + /* 0x0E8C */ int mSnowCount; /* 0x0E90 */ u8 field_0xe90; /* 0x0E91 */ u8 field_0xe91; - /* 0x0E92 */ u8 field_0xe92; - /* 0x0E94 */ dKankyo_snow_Packet* field_0xe94; - /* 0x0E98 */ u8 field_0xe98; - /* 0x0E9C */ int field_0xe9c; - /* 0x0EA0 */ f32 field_0xea0; - /* 0x0EA4 */ dKankyo_star_Packet* field_0xea4; - /* 0x0EA8 */ u8 field_0xea8; + /* 0x0E92 */ bool field_0xe92; + /* 0x0E94 */ dKankyo_snow_Packet* mpSnowPacket; + /* 0x0E98 */ bool mStarPacketEnabled; + /* 0x0E9C */ int mStarCount; + /* 0x0EA0 */ f32 mStarDensity; + /* 0x0EA4 */ dKankyo_star_Packet* mpStarPacket; + /* 0x0EA8 */ bool mHousiPacketEnabled; /* 0x0EA9 */ u8 field_0xea9; /* 0x0EAC */ int field_0xeac; - /* 0x0EB0 */ dKankyo_housi_Packet* field_0xeb0; - /* 0x0EB4 */ u8 field_0xeb4; + /* 0x0EB0 */ dKankyo_housi_Packet* mpHousiPacket; + /* 0x0EB4 */ u8 mCloudPacketEnabled; /* 0x0EB5 */ u8 field_0xeb5; /* 0x0EB8 */ int field_0xeb8; /* 0x0EBC */ f32 field_0xebc; - /* 0x0EC0 */ dKankyo_cloud_Packet* field_0xec0; + /* 0x0EC0 */ dKankyo_cloud_Packet* mpCloudPacket; /* 0x0EC4 */ u8 field_0xec4; /* 0x0EC8 */ int field_0xec8; /* 0x0ECC */ f32 field_0xecc; - /* 0x0ED0 */ dKankyo_vrkumo_Packet* field_0xed0; - /* 0x0ED4 */ EF_THUNDER field_0xef4; + /* 0x0ED0 */ dKankyo_vrkumo_Packet* mpVrkumoPacket; + /* 0x0ED4 */ EF_THUNDER field_0xed4; /* 0x0F18 */ u8 field_0xf18[4]; - /* 0x0F1C */ dKankyo_shstar_Packet* field_0xf1c; - /* 0x0F20 */ u8 field_0xf20; + /* 0x0F1C */ dKankyo_shstar_Packet* mpShstarPacket; + /* 0x0F20 */ u8 mOdourPacketStatus; /* 0x0F21 */ u8 field_0xf21; /* 0x0F24 */ int field_0xf24; - /* 0x0F28 */ dKankyo_odour_Packet* field_0xf28; + /* 0x0F28 */ dKankyo_odour_Packet* mpOdourPacket; /* 0x0F2C */ u8 field_0xf2c; /* 0x0F30 */ J3DModel* field_0xf30; /* 0x0F34 */ f32 field_0xf34; - /* 0x0F38 */ int field_0xf38; + /* 0x0F38 */ JKRSolidHeap* field_0xf38; /* 0x0F3C */ u8 field_0xf3c; /* 0x0F3D */ u8 field_0xf3d; /* 0x0F40 */ f32 field_0xf40; @@ -454,13 +283,13 @@ public: /* 0x1038 */ u8 field_0x1038; /* 0x103C */ int field_0x103c; /* 0x1040 */ u8 field_0x1040[4]; - /* 0x1044 */ u8 field_0x1044; + /* 0x1044 */ u8 mMudPacketEnabled; /* 0x1048 */ int field_0x1048; - /* 0x104C */ dKankyo_mud_Packet* field_0x104c; - /* 0x1050 */ u8 field_0x1050; + /* 0x104C */ dKankyo_mud_Packet* mpMudPacket; + /* 0x1050 */ u8 mEvilPacketEnabled; /* 0x1051 */ u8 field_0x1051; /* 0x1054 */ int field_0x1054; - /* 0x1058 */ dKankyo_evil_Packet* field_0x1058; + /* 0x1058 */ dKankyo_evil_Packet* mpEvilPacket; /* 0x105C */ mDoExt_btkAnm* field_0x105c; /* 0x1060 */ fopAc_ac_c* field_0x1060; /* 0x1064 */ f32 field_0x1064; @@ -471,31 +300,13 @@ public: /* 0x1088 */ cXyz field_0x1088; /* 0x1094 */ cXyz field_0x1094; /* 0x10A0 */ cXyz field_0x10a0; - /* 0x10AC */ GXFogAdjTable field_0x10ac; - /* 0x10C0 */ u16 field_0x10c0; - /* 0x10C2 */ u16 field_0x10c2; - /* 0x10C4 */ u16 field_0x10c4; - /* 0x10C6 */ u16 field_0x10c6; - /* 0x10C8 */ u16 field_0x10c8; - /* 0x10CA */ u16 field_0x10ca; - /* 0x10CC */ u16 field_0x10cc; - /* 0x10CE */ u16 field_0x10ce; - /* 0x10D0 */ u16 field_0x10d0; - /* 0x10D2 */ u16 field_0x10d2; - /* 0x10D4 */ u16 field_0x10d4; - /* 0x10D6 */ u16 field_0x10d6; - /* 0x10D8 */ u16 field_0x10d8; - /* 0x10DA */ u16 field_0x10da; - /* 0x10DC */ u16 field_0x10dc; - /* 0x10DE */ u16 field_0x10de; - /* 0x10E0 */ u16 field_0x10e0; - /* 0x10E2 */ u16 field_0x10e2; - /* 0x10E4 */ u16 field_0x10e4; - /* 0x10E6 */ u16 field_0x10e6; - /* 0x10E8 */ u16 field_0x10e8; - /* 0x10EA */ u16 field_0x10ea; - /* 0x10EC */ u16 field_0x10ec; - /* 0x10EE */ u16 field_0x10ee; + /* 0x10AC */ GXFogAdjTable mXFogTbl; + /* 0x10C0 */ GXColorS10 mSkyColor; + /* 0x10C8 */ GXColorS10 mUpperCloudColor; + /* 0x10D0 */ GXColorS10 mUnderCloudColor; + /* 0x10D8 */ GXColorS10 mUnderCloudShadowColor; + /* 0x10E0 */ GXColorS10 mCloudOuterHazeColor; + /* 0x10E8 */ GXColorS10 mCloudInnerHazeColor; /* 0x10F0 */ s16 field_0x10f0; /* 0x10F2 */ s16 field_0x10f2; /* 0x10F4 */ s16 field_0x10f4; @@ -504,23 +315,23 @@ public: /* 0x10FA */ s16 field_0x10fa; /* 0x10FC */ s16 field_0x10fc; /* 0x10FE */ s16 field_0x10fe; - /* 0x1100 */ _GXColorS10 field_0x1100; - /* 0x1108 */ _GXColorS10 field_0x1108; - /* 0x1110 */ s16 field_0x1110; - /* 0x1112 */ s16 field_0x1112; - /* 0x1114 */ s16 field_0x1114; - /* 0x1116 */ s16 field_0x1116; - /* 0x1118 */ s16 field_0x1118; - /* 0x111A */ s16 field_0x111a; - /* 0x111C */ s16 field_0x111c; - /* 0x111E */ s16 field_0x111e; - /* 0x1120 */ s16 field_0x1120; - /* 0x1122 */ s16 field_0x1122; - /* 0x1124 */ s16 field_0x1124; - /* 0x1126 */ s16 field_0x1126; + /* 0x1100 */ _GXColorS10 mActorAmbience; + /* 0x1108 */ _GXColorS10 mTerrainAmbienceBG0; + /* 0x1110 */ s16 mTerrainAmbienceBG1_R; + /* 0x1112 */ s16 mTerrainAmbienceBG1_G; + /* 0x1114 */ s16 mTerrainAmbienceBG1_B; + /* 0x1116 */ s16 mWaterSurfaceAlphaA; + /* 0x1118 */ s16 mTerrainAmbienceBG2_R; + /* 0x111A */ s16 mTerrainAmbienceBG2_G; + /* 0x111C */ s16 mTerrainAmbienceBG2_B; + /* 0x111E */ s16 mAuxAlphaA2; + /* 0x1120 */ s16 mTerrainAmbienceBG3_R; + /* 0x1122 */ s16 mTerrainAmbienceBG3_G; + /* 0x1124 */ s16 mTerrainAmbienceBG3_B; + /* 0x1126 */ s16 mFakeFogA; /* 0x1128 */ _GXColorS10 field_0x1128; /* 0x1130 */ u8 field_0x1130[0x28]; - /* 0x1158 */ _GXColorS10 field_0x1158; + /* 0x1158 */ _GXColorS10 mFogColor; /* 0x1160 */ s16 field_0x1160; /* 0x1162 */ s16 field_0x1162; /* 0x1164 */ s16 field_0x1164; @@ -559,8 +370,8 @@ public: /* 0x11D8 */ f32 field_0x11d8; /* 0x11DC */ f32 field_0x11dc; /* 0x11E0 */ f32 field_0x11e0; - /* 0x11E4 */ f32 field_0x11e4; - /* 0x11E8 */ f32 field_0x11e8; + /* 0x11E4 */ f32 mFogNear; + /* 0x11E8 */ f32 mFogFar; /* 0x11EC */ f32 field_0x11ec; /* 0x11F0 */ f32 field_0x11f0; /* 0x11F4 */ f32 field_0x11f4; @@ -585,17 +396,17 @@ public: /* 0x1240 */ f32 field_0x1240; /* 0x1244 */ f32 mDaytime; /* 0x1248 */ f32 mNexttime; - /* 0x124C */ f32 field_0x124c; + /* 0x124C */ f32 mTimeSpeed; /* 0x1250 */ f32 mDarkDaytime; /* 0x1254 */ f32 field_0x1254; /* 0x1258 */ f32 field_0x1258; - /* 0x125C */ f32 field_0x125c; - /* 0x1260 */ f32 field_0x1260; + /* 0x125C */ f32 mPaletteTerrainLightEffect; + /* 0x1260 */ f32 mGrassLightEffectRate; /* 0x1264 */ f32 field_0x1264; /* 0x1268 */ f32 field_0x1268; /* 0x126C */ f32 field_0x126c; - /* 0x1270 */ f32 field_0x1270; - /* 0x1274 */ f32 field_0x1274; + /* 0x1270 */ f32 mDemoAttentionPoint; + /* 0x1274 */ f32 mTime; // ? /* 0x1278 */ f32 field_0x1278; /* 0x127C */ f32 field_0x127c; /* 0x1280 */ int field_0x1280; @@ -612,13 +423,13 @@ public: /* 0x12B4 */ int field_0x12b4; /* 0x12B8 */ u8 field_0x12b8[4]; /* 0x12BC */ u16 field_0x12bc; - /* 0x12BE */ u16 field_0x12be; - /* 0x12C0 */ u16 field_0x12c0; + /* 0x12BE */ u16 mDate; + /* 0x12C0 */ u16 mActorLightEffect; /* 0x12C2 */ u8 field_0x12c2; /* 0x12C3 */ u8 field_0x12c3; /* 0x12C4 */ u8 field_0x12c4; /* 0x12C5 */ u8 mWeatherPalette; - /* 0x12C6 */ u8 field_0x12c6; + /* 0x12C6 */ s8 mNowRoom; /* 0x12C7 */ u8 field_0x12c7; /* 0x12C8 */ u8 field_0x12c8; /* 0x12C9 */ u8 field_0x12c9; @@ -632,19 +443,19 @@ public: /* 0x12D1 */ u8 mItemGetCol_chg; /* 0x12D2 */ u8 field_0x12d2; /* 0x12D3 */ u8 field_0x12d3; - /* 0x12D4 */ u8 field_0x12d4; + /* 0x12D4 */ bool field_0x12d4; // related to vrbox color /* 0x12D5 */ u8 field_0x12d5; /* 0x12D6 */ u8 field_0x12d6; /* 0x12D7 */ u8 mShadowMode; /* 0x12D8 */ u8 mCameraInWater; - /* 0x12DC */ void* field_0x12dc; - /* 0x12E0 */ void* field_0x12e0; - /* 0x12E4 */ void* field_0x12e4; - /* 0x12E8 */ void* field_0x12e8; - /* 0x12EC */ void* field_0x12ec; - /* 0x12F0 */ void* field_0x12f0; - /* 0x12F4 */ void* field_0x12f4; - /* 0x12F8 */ u8 field_0x12f8; + /* 0x12DC */ void* mResPolEfftbl; + /* 0x12E0 */ void* mResPolEffcol; + /* 0x12E4 */ void* mResPolEfftbl2; + /* 0x12E8 */ void* mResPolEffcol2; + /* 0x12EC */ void* mResPolSound; + /* 0x12F0 */ void* mResPolArg; + /* 0x12F4 */ void* mResColorDataTbl; + /* 0x12F8 */ s8 mFogDensity; /* 0x12F9 */ u8 field_0x12f9; /* 0x12FA */ u8 field_0x12fa; /* 0x12FB */ u8 field_0x12fb; @@ -653,7 +464,7 @@ public: /* 0x12FE */ u8 field_0x12fe; /* 0x1300 */ u16 field_0x1300; /* 0x1302 */ u16 field_0x1302; - /* 0x1304 */ f32 field_0x1304; + /* 0x1304 */ f32 mWaterSurfaceShineRate; /* 0x1308 */ u8 field_0x1308; /* 0x1309 */ u8 field_0x1309; /* 0x130A */ u8 field_0x130a; @@ -666,5 +477,13 @@ STATIC_ASSERT(sizeof(dScnKy_env_light_c) == 4880); BOOL dKy_darkworld_stage_check(char const*, int); BOOL dKy_withwarp_capture_check(); bool dKy_darkworld_check(); +void dKy_undwater_filter_draw(); +BOOL dKy_camera_water_in_status_check(); +static int dKy_Outdoor_check(); +s32 dKy_getdaytime_hour(); +s32 dKy_getdaytime_minute(); +s32 dKy_get_dayofweek(); +static void dKy_Sound_init(); +void dKy_setLight_nowroom(char); #endif /* D_KANKYO_D_KANKYO_H */ diff --git a/include/d/kankyo/d_kankyo_data.h b/include/d/kankyo/d_kankyo_data.h index 4d0c885262..6a9588ce32 100644 --- a/include/d/kankyo/d_kankyo_data.h +++ b/include/d/kankyo/d_kankyo_data.h @@ -3,7 +3,7 @@ #include "dolphin/types.h" -// Invented name; Used as u8 `darkLv` in dKyd_darkworldTblEntry. +// Invented name; Used as u8 `darkLv` in dKydata_darkworldInfo_c. enum dKyd_DARKLV { FARON = 0, ELDIN = 1, @@ -13,10 +13,16 @@ enum dKyd_DARKLV { ALWAYS_DARK = 8, // Unused. Forces Twilight }; -// Invented name -struct dKyd_darkworldTblEntry { - char* stageName; - u8 darkLv; +class dKydata_darkworldInfo_c { +public: + /* 0x0 */ char* stageName; + /* 0x4 */ u8 darkLv; +}; // Size: 0x8 + +class dKydata_lightsizeInfo_c { +public: + /* 0x0 */ char* stageName; + /* 0x4 */ u8 size; }; // Size: 0x8 // Invented name; adjust as needed in the future. @@ -35,6 +41,28 @@ struct dKyd_lightSchejule { u8 endTimeLight; }; // Size: 0xC +enum BloomType { + /* 0x0 */ BLOOM_CLEAR, + /* 0x1 */ BLOOM_SOFT +}; + +#define BLOOMINFO_MAX 64 +class dKydata_BloomInfo_c { +public: + /* 0x0 */ u8 mType; + /* 0x1 */ u8 mThreshold; + /* 0x2 */ u8 mBlurAmount; + /* 0x3 */ u8 mDensity; + /* 0x4 */ u8 mColorR; + /* 0x5 */ u8 mColorG; + /* 0x6 */ u8 mColorB; + /* 0x7 */ u8 mOrigDensity; // ? + /* 0x8 */ u8 mSaturateSubtractR; + /* 0x9 */ u8 mSaturateSubtractG; + /* 0xA */ u8 mSaturateSubtractB; + /* 0xB */ u8 mSaturateSubtractA; +}; // Size: 0xC + void* dKyd_dmpalet_getp(); void* dKyd_dmpselect_getp(); void* dKyd_dmenvr_getp(); @@ -43,9 +71,9 @@ dKyd_lightSchejule* dKyd_schejule_getp(); dKyd_lightSchejule* dKyd_schejule_boss_getp(); void dKyd_xfog_table_set(u8); void* dKyd_maple_col_getp(); -dKyd_darkworldTblEntry* dKyd_darkworld_tbl_getp(); -void* dKyd_light_size_tbl_getp(); -void* dKyd_light_tw_size_tbl_getp(); -void* dKyd_BloomInf_tbl_getp(int); +dKydata_darkworldInfo_c* dKyd_darkworld_tbl_getp(); +dKydata_lightsizeInfo_c* dKyd_light_size_tbl_getp(); +dKydata_lightsizeInfo_c* dKyd_light_tw_size_tbl_getp(); +dKydata_BloomInfo_c* dKyd_BloomInf_tbl_getp(int); #endif /* D_KANKYO_D_KANKYO_DATA_H */ diff --git a/include/d/kankyo/d_kankyo_rain.h b/include/d/kankyo/d_kankyo_rain.h index 74dd807f75..d9d94e98f3 100644 --- a/include/d/kankyo/d_kankyo_rain.h +++ b/include/d/kankyo/d_kankyo_rain.h @@ -3,4 +3,41 @@ #include "dolphin/types.h" +struct cXyz; +struct _GXColor; + +void dKyr_drawSun(f32 (*param_0)[4], cXyz* param_1, _GXColor& param_2, u8** param_3); +void dKyr_drawLenzflare(f32 (*param_0)[4], cXyz* param_1, _GXColor& param_2, u8** param_3); +void dKyr_drawSibuki(f32 (*param_0)[4], u8** param_1); +void dKyr_drawRain(f32 (*param_0)[4], u8** param_1); +void dKyr_drawSnow(f32 (*param_0)[4], u8** param_1); +void dKyr_drawStar(f32 (*param_0)[4], u8** param_1); +void drawCloudShadow(f32 (*param_0)[4], u8** param_1); +void dKyr_drawHousi(f32 (*param_0)[4], u8** param_1); +void drawVrkumo(f32 (*param_0)[4], _GXColor& param_1, u8** param_2); +void dKyr_odour_draw(f32 (*param_0)[4], u8** param_1); +void dKyr_mud_draw(f32 (*param_0)[4], u8** param_1); +void dKyr_evil_draw(f32 (*param_0)[4], u8** param_1); +void dKyr_thunder_init(); +void dKyr_thunder_move(); +void dKyr_snow_init(); +void dKyr_snow_move(); +void dKyr_evil_init(); +void dKyr_evil_move(); +void dKyr_mud_init(); +void dKyr_mud_move(); +void dKyr_rain_init(); +void dKyr_rain_move(); +void cloud_shadow_move(); +void dKyr_odour_init(); +void dKyr_odour_move(); +void dKyr_housi_init(); +void dKyr_housi_move(); +void dKyr_sun_move(); +void dKyr_lenzflare_move(); +void dKyr_star_init(); +void dKyr_shstar_init(); +void dKyr_star_move(); +void dKyr_shstar_move(); + #endif /* D_KANKYO_D_KANKYO_RAIN_H */ diff --git a/include/d/kankyo/d_kankyo_wether.h b/include/d/kankyo/d_kankyo_wether.h index 371d59afcc..6e768e1002 100644 --- a/include/d/kankyo/d_kankyo_wether.h +++ b/include/d/kankyo/d_kankyo_wether.h @@ -1,6 +1,9 @@ #ifndef D_KANKYO_D_KANKYO_WETHER_H #define D_KANKYO_D_KANKYO_WETHER_H +#include "JSystem/J3DGraphBase/J3DPacket.h" +#include "SSystem/SComponent/c_sxyz.h" +#include "SSystem/SComponent/c_xyz.h" #include "dolphin/types.h" void dKyw_wether_draw(); @@ -9,5 +12,258 @@ void dKyw_wether_move_draw2(); void dKyw_wether_draw2(); void dKyw_wether_delete2(); void dKyw_wether_init2(); +static void dKyw_wind_init(); +static void dKyw_pntwind_init(); +f32 dKyw_get_wind_pow(); +static void squal_proc(); + +class dKankyo_sun_Packet : public J3DPacket { +public: + virtual void draw(); + virtual ~dKankyo_sun_Packet(); + + /* 0x10 */ cXyz field_0x10[2]; + /* 0x28 */ u8 field_0x28; + /* 0x29 */ u8 field_0x29; + /* 0x2C */ u8* mpResMoon; + /* 0x30 */ u8* mpResMoon_A; + /* 0x34 */ u8* mpResMoon_A_A00; + /* 0x38 */ u8* mpResMoon_A_A01; + /* 0x3C */ u8* mpResMoon_A_A02; + /* 0x40 */ u8* mpResMoon_A_A03; + /* 0x44 */ int field_0x44; + /* 0x48 */ int field_0x48; + /* 0x4C */ int field_0x4c; + /* 0x50 */ int field_0x50; + /* 0x54 */ int field_0x54; + /* 0x58 */ int field_0x58; + /* 0x5C */ f32 field_0x5c; + /* 0x60 */ f32 field_0x60; + /* 0x64 */ f32 field_0x64; + /* 0x68 */ f32 field_0x68; + /* 0x6C */ f32 field_0x6c; + /* 0x70 */ GXColor mColor; + /* 0x74 */ u8 field_0x74[4]; +}; // Size: 0x78 + +class dKankyo_sunlenz_Packet : public J3DPacket { +public: + virtual void draw(); + virtual ~dKankyo_sunlenz_Packet(); + + /* 0x10 */ GXColor field_0x10; + /* 0x14 */ u8* mpResBall; + /* 0x18 */ u8 field_0x18[4]; + /* 0x1C */ u8* mpResRing_A; + /* 0x20 */ u8* mpResLenz; + /* 0x24 */ cXyz field_0x24[8]; + /* 0x84 */ u8 field_0x84[8]; + /* 0x8C */ f32 field_0x8c; + /* 0x90 */ f32 field_0x90; + /* 0x94 */ u8 field_0x94[4]; + /* 0x98 */ f32 field_0x98; + /* 0x9C */ u8 field_0x9c[2]; + /* 0x9E */ u8 field_0x9e; +}; // Size: 0xA0 + +struct RAIN_EFF { + /* 80056CD0 */ ~RAIN_EFF(); + /* 80056D0C */ RAIN_EFF(); + + /* 0x00 */ u8 field_0x0[4]; + /* 0x04 */ cXyz field_0x04; + /* 0x10 */ cXyz field_0x10; + /* 0x1C */ u8 field_0x1c[0x1c]; +}; // Size: 0x38 + +class dKankyo_rain_Packet : public J3DPacket { +public: + virtual void draw(); + virtual ~dKankyo_rain_Packet(); + +private: + /* 0x0010 */ u8* field_0x10; + /* 0x0014 */ u8 field_0x14[4]; + /* 0x0018 */ RAIN_EFF field_0x18[250]; + /* 0x36C8 */ u8 field_0x36c8[0x50]; +}; // Size: 0x3718 + +struct SNOW_EFF { + /* 80056D58 */ ~SNOW_EFF(); + /* 80056D94 */ SNOW_EFF(); + + /* 0x00 */ u8 field_0x0[4]; + /* 0x04 */ cXyz field_0x04; + /* 0x10 */ cXyz field_0x10; + /* 0x1C */ u8 field_0x1c[0x1c]; +}; // Size: 0x38 + +class dKankyo_snow_Packet : public J3DPacket { +public: + virtual void draw(); + virtual ~dKankyo_snow_Packet(); + +private: + /* 0x10 */ u8* field_0x10; + /* 0x14 */ SNOW_EFF field_0x14[500]; +}; + +struct STAR_EFF { + /* 80056DC8 */ ~STAR_EFF(); + /* 80056E04 */ STAR_EFF(); + + /* 0x00 */ u8 field_0x0[4]; + /* 0x04 */ cXyz field_0x04; + /* 0x10 */ cXyz field_0x10; + /* 0x1C */ u8 field_0x1c[0x18]; +}; // Size: 0x34 + +class dKankyo_star_Packet : public J3DPacket { +public: + virtual void draw(); + virtual ~dKankyo_star_Packet(); + +private: + /* 0x10 */ u8* field_0x10; + /* 0x14 */ STAR_EFF field_0x14[1]; +}; + +struct HOUSI_EFF { + /* 80056EA8 */ ~HOUSI_EFF(); + /* 80056EE4 */ HOUSI_EFF(); + + /* 0x00 */ u8 field_0x0; + /* 0x04 */ cXyz field_0x04; + /* 0x10 */ cXyz field_0x10; + /* 0x1C */ cXyz field_0x1c; + /* 0x28 */ u8 field_0x28[0x28]; +}; // Size: 0x50 + +class dKankyo_housi_Packet : public J3DPacket { +public: + virtual void draw(); + virtual ~dKankyo_housi_Packet(); + + /* 0x0010 */ cXyz field_0x10; + /* 0x001C */ u8* mpResTex; + /* 0x0020 */ HOUSI_EFF field_0x18[300]; + /* 0x5DE0 */ u8 field_0x5de0[8]; + /* 0x5DE8 */ f32 field_0x5de8; + /* 0x5DEC */ u8 field_0x5dec[4]; +}; // Size: 0x5DF0 + +struct CLOUD_EFF { + /* 80056E38 */ ~CLOUD_EFF(); + /* 80056E74 */ CLOUD_EFF(); + + /* 0x00 */ u8 field_0x0; + /* 0x04 */ cXyz field_0x04; + /* 0x10 */ cXyz field_0x10; + /* 0x1C */ cXyz field_0x1c; + /* 0x28 */ u8 field_0x28[0x10]; +}; // Size: 0x38 + +class dKankyo_cloud_Packet : public J3DPacket { +public: + virtual void draw(); + virtual ~dKankyo_cloud_Packet(); + + /* 0x10 */ u8* mpResTex; + /* 0x14 */ int field_0x14; + /* 0x18 */ CLOUD_EFF field_0x18[50]; +}; // Size: 0xB08 + +struct VRKUMO_EFF { + /* 80056F18 */ ~VRKUMO_EFF(); + /* 80056F54 */ VRKUMO_EFF(); + + /* 0x00 */ u8 field_0x0[4]; + /* 0x04 */ cXyz field_0x04; + /* 0x10 */ cXyz field_0x10; + /* 0x1C */ u8 field_0x1c[0x10]; +}; // Size: 0x2C + +class dKankyo_vrkumo_Packet : public J3DPacket { +public: + virtual void draw(); + virtual ~dKankyo_vrkumo_Packet(); + +private: + /* 0x0010 */ GXColor field_0x10; + /* 0x0014 */ u8* mpResCloudtx_01; + /* 0x0018 */ u8* mpResCloudtx_02; + /* 0x001C */ u8* mpResCloudtx_03; + /* 0x0020 */ VRKUMO_EFF field_0x20[100]; + /* 0x1150 */ f32 field_0x1150; + /* 0x1154 */ f32 field_0x1154; +}; // Size: 0x1158 + +// might be fake +class dKankyo_shstar_Packet : public J3DPacket {}; + +struct EF_ODOUR_EFF { + /* 80056F8C */ ~EF_ODOUR_EFF(); + /* 80056FC8 */ EF_ODOUR_EFF(); + + /* 0x00 */ u8 field_0x0[4]; + /* 0x04 */ cXyz field_0x04; + /* 0x10 */ cXyz field_0x10; + /* 0x1C */ u8 field_0x1c[0x14]; +}; // Size: 0x30 + +class dKankyo_odour_Packet : public J3DPacket { +public: + virtual void draw(); + virtual ~dKankyo_odour_Packet(); + + /* 0x00010 */ u8* mpResTex; + /* 0x00014 */ EF_ODOUR_EFF field_0x18[2000]; + /* 0x17714 */ u8 field_0x17714[0x14]; +}; // Size: 0x17728 + +struct EF_MUD_EFF { + /* 80056FFC */ ~EF_MUD_EFF(); + /* 80057038 */ EF_MUD_EFF(); + + /* 0x00 */ u8 field_0x0[4]; + /* 0x04 */ cXyz field_0x04; + /* 0x10 */ cXyz field_0x10; + /* 0x1C */ cXyz field_0x1c; + /* 0x28 */ u8 field_0x28[0x20]; +}; // Size: 0x48 + +class dKankyo_mud_Packet : public J3DPacket { +public: + virtual void draw(); + virtual ~dKankyo_mud_Packet(); + + /* 0x0010 */ int field_0x10; + /* 0x0014 */ u8* field_0x14; + /* 0x0018 */ EF_MUD_EFF field_0x18[100]; + /* 0x13C8 */ u8 field_0x13c8[8]; +}; + +struct EF_EVIL_EFF { + /* 8005706C */ ~EF_EVIL_EFF(); + /* 800570A8 */ EF_EVIL_EFF(); + + /* 0x00 */ u8 field_0x0[4]; + /* 0x04 */ cXyz field_0x04; + /* 0x10 */ cXyz field_0x10; + /* 0x1C */ csXyz field_0x1c; + /* 0x22 */ u8 field_0x22[0x22]; +}; // Size: 0x44 + +class dKankyo_evil_Packet : public J3DPacket { +public: + virtual void draw(); + virtual ~dKankyo_evil_Packet(); + + /* 0x00010 */ int field_0x10; + /* 0x00014 */ u8* field_0x14; + /* 0x00018 */ u8 field_0x18[4]; + /* 0x0001C */ EF_EVIL_EFF field_0x1c[2000]; + /* 0x2135C */ u8 field_0x2135c[8]; +}; #endif /* D_KANKYO_D_KANKYO_WETHER_H */ |
