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
This commit is contained in:
TakaRikka
2022-01-25 12:24:14 -08:00
committed by GitHub
parent 6f4d068f1d
commit 612f26c132
241 changed files with 3715 additions and 9755 deletions
+108 -289
View File
@@ -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 */
+37 -9
View File
@@ -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 */
+37
View File
@@ -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 */
+256
View File
@@ -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 */