summaryrefslogtreecommitdiff
path: root/include/d/kankyo
diff options
context:
space:
mode:
authorTakaRikka <38417346+TakaRikka@users.noreply.github.com>2022-01-25 12:24:14 -0800
committerGitHub <noreply@github.com>2022-01-25 21:24:14 +0100
commit612f26c132280da43ecfa5fa8c8cc32966f06eb6 (patch)
treeac20d071712cf830ec526222c98d340d90721f77 /include/d/kankyo
parent6f4d068f1d7c5a9f25f1920e64e5b10dc29aea07 (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.h397
-rw-r--r--include/d/kankyo/d_kankyo_data.h46
-rw-r--r--include/d/kankyo/d_kankyo_rain.h37
-rw-r--r--include/d/kankyo/d_kankyo_wether.h256
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 */