diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/JSystem/J3DGraphBase/J3DMaterial.h | 2 | ||||
| -rw-r--r-- | include/d/d_kankyo.h | 528 | ||||
| -rw-r--r-- | include/d/d_kankyo_data.h | 18 | ||||
| -rw-r--r-- | include/d/d_kankyo_wether.h | 2 | ||||
| -rw-r--r-- | include/d/d_stage.h | 81 | ||||
| -rw-r--r-- | include/dolphin/dolphin.h | 1 | ||||
| -rw-r--r-- | include/dolphin/gf/GFPixel.h | 4 |
7 files changed, 324 insertions, 312 deletions
diff --git a/include/JSystem/J3DGraphBase/J3DMaterial.h b/include/JSystem/J3DGraphBase/J3DMaterial.h index 4113522218..e6b668d27f 100644 --- a/include/JSystem/J3DGraphBase/J3DMaterial.h +++ b/include/JSystem/J3DGraphBase/J3DMaterial.h @@ -82,6 +82,8 @@ public: void setTevColor(u32 i, const J3DGXColorS10* i_color) { mTevBlock->setTevColor(i, i_color); } void setTevKColor(u32 i, const J3DGXColor* i_color) { mTevBlock->setTevKColor(i, i_color); } + void setAmbColor(u32 i, const J3DGXColor* i_color) { mColorBlock->setAmbColor(i, i_color); } + void setLight(u32 i, J3DLightObj* i_lightobj) { mColorBlock->setLight(i, i_lightobj); } void setMaterialAnm(J3DMaterialAnm* i_anm) { mMaterialAnm = i_anm; } void setCullMode(u8 i_mode) { mColorBlock->setCullMode(i_mode); } void setTexMtx(u32 idx, J3DTexMtx* mtx) { mTexGenBlock->setTexMtx(idx, mtx); } diff --git a/include/d/d_kankyo.h b/include/d/d_kankyo.h index 0929c15577..6e0da0c62b 100644 --- a/include/d/d_kankyo.h +++ b/include/d/d_kankyo.h @@ -3,58 +3,13 @@ #include "JSystem/J3DGraphBase/J3DStruct.h" #include "d/d_kankyo_wether.h" -#include "m_Do/m_Do_ext.h" #include "f_pc/f_pc_base.h" +#include "m_Do/m_Do_ext.h" class JPABaseEmitter; class cBgS_PolyInfo; class color_RGB_class; -void dKy_set_nexttime(f32); -void dKy_itudemo_se(); -BOOL dKy_darkworld_spot_check(char const* stageName, int roomNo); -void dKy_darkworld_Area_set(char const* stageName, int roomNo); -void dKy_FiveSenses_fullthrottle_dark(); -s32 dKy_daynight_check(); -void dKy_clear_game_init(); -void dKy_setLight_init(); -u8 dKy_pol_sound_get(cBgS_PolyInfo const* param_0); -void dKy_depth_dist_set(void* param_0); -void dKy_instant_rainchg(); -void dKy_instant_timechg(f32); -static void dKy_set_vrboxsoracol_ratio(f32 ratio); -static void dKy_set_vrboxkumocol_ratio(f32 ratio); -void dKy_actor_addcol_set(s16 param_0, s16 param_1, s16 param_2, f32 param_3); -void dKy_fog_startendz_set(f32 param_0, f32 param_1, f32 param_2); -static void dKy_vrbox_addcol_set(s16 param_0, s16 param_1, s16 param_2, f32 param_3); -void dKy_GxFog_set(); -static void GxFog_set(); -static void GxXFog_set(); -u8 dKy_pol_argument_get(cBgS_PolyInfo const* i_poly); -void dKy_Sound_set(cXyz i_pos, int param_1, fpc_ProcID i_actorID, int param_3); -void dKy_bg_MAxx_proc(void* param_0); -void dKy_change_colpat(u8 colpat); -void dKy_BossLight_set(cXyz* param_0, _GXColor* param_1, f32 param_2, u8 param_3); -void dKy_custom_colset(u8 prevGather, u8 curGather, f32 blend); -void dKy_setLight(); -cXyz dKy_plight_near_pos(); -void dKy_BossSpotLight_set(cXyz* param_0, f32 param_1, f32 param_2, f32 param_3, _GXColor* param_4, - f32 param_5, u8 param_6, u8 param_7); -static void dKy_calc_color_set(_GXColorS10* param_0, color_RGB_class* param_1, - color_RGB_class* param_2, color_RGB_class* param_3, - color_RGB_class* param_4, f32 param_5, f32 param_6, - _GXColorS10 param_7, f32 param_8); -static void dKy_twilight_camelight_set(); -u8 dKy_shadow_mode_check(u8 mode); -void dKy_shadow_mode_set(u8 mode); -void dKy_shadow_mode_reset(u8 mode); -void dKy_Itemgetcol_chg_on(); -void dKy_actor_addcol_amb_set(s16 r, s16 g, s16 b, f32 factor); -void dKy_bg_addcol_amb_set(s16 r, s16 g, s16 b, f32 factor); -int dKy_WolfEyeLight_set(cXyz* param_0, f32 param_1, f32 param_2, f32 param_3, - GXColor* param_4, f32 param_5, u8 param_6, u8 param_7); -BOOL dKy_TeachWind_existence_chk(); - struct LIGHT_INFLUENCE { /* 0x00 */ cXyz mPosition; /* 0x0C */ GXColorS10 mColor; @@ -90,10 +45,10 @@ struct EFLIGHT_PROC { }; struct SND_INFLUENCE { - /* 0x00 */ cXyz field_0x0; + /* 0x00 */ cXyz position; /* 0x0C */ int field_0xc; - /* 0x10 */ int field_0x10; - /* 0x14 */ u32 field_0x14; + /* 0x10 */ int timer; + /* 0x14 */ fpc_ProcID actor_id; }; struct DALKMIST_INFLUENCE { @@ -151,16 +106,19 @@ struct EF_THUNDER { }; struct GB_MAPLE_COL_CHANGE { - /* 0x00 */ J3DLightObj field_0x0; + /* 0x00 */ J3DLightObj light_obj; }; // Size: 0x74 -// most of these members are guesses, fix later struct LightStatus { - /* 0x00 */ Vec field_0x0; + /* 0x00 */ Vec position; /* 0x0C */ Vec field_0xc; - /* 0x18 */ GXColor field_0x18; - /* 0x1C */ Vec field_0x1c; - /* 0x28 */ Vec field_0x28; + /* 0x18 */ GXColor color; + /* 0x1C */ int field_0x1c; + /* 0x20 */ f32 field_0x20; + /* 0x24 */ f32 field_0x24; + /* 0x28 */ f32 field_0x28; + /* 0x2C */ f32 field_0x2c; + /* 0x30 */ f32 field_0x30; /* 0x34 */ f32 field_0x34; /* 0x38 */ Vec mLightDir; /* 0x44 */ f32 mCutoff; @@ -184,39 +142,33 @@ class dKy_tevstr_c { public: // Supposedly exists but didn't work. Might be too big to inline. // See dPa_modelEcallBack::model_c::set. - //inline dKy_tevstr_c& operator=(const dKy_tevstr_c& b); - + // inline dKy_tevstr_c& operator=(const dKy_tevstr_c& b); + /* 0x000 */ J3DLightObj mLightObj; /* 0x074 */ J3DLightObj mLights[6]; - /* 0x32C */ cXyz field_0x32c; + /* 0x32C */ cXyz field_0x32c; // some light pos, unsure how it differs /* 0x338 */ cXyz mLightPosWorld; /* 0x344 */ f32 field_0x344; - /* 0x348 */ GXColorS10 mColorC0; - /* 0x350 */ GXColorS10 mColorK0; - /* 0x358 */ GXColorS10 mFogColor; - /* 0x360 */ u8 field_0x360; - /* 0x361 */ u8 field_0x361; - /* 0x362 */ u8 field_0x362; - /* 0x363 */ u8 field_0x363; - /* 0x364 */ u8 mLightInf; - /* 0x365 */ u8 field_0x365; - /* 0x366 */ u8 field_0x366; - /* 0x367 */ u8 field_0x367; + /* 0x348 */ GXColorS10 AmbCol; + /* 0x350 */ GXColorS10 FogCol; + /* 0x358 */ GXColorS10 TevColor; + /* 0x360 */ GXColor TevKColor; + /* 0x364 */ GXColor mLightInf; /* 0x368 */ f32 mFogStartZ; /* 0x36C */ f32 mFogEndZ; - /* 0x370 */ f32 mColpatBlend; + /* 0x370 */ f32 pat_ratio; /* 0x374 */ f32 field_0x374; - /* 0x378 */ u16 field_0x378; - /* 0x37A */ u8 field_0x37a; + /* 0x378 */ u16 Material_id; // Used for some sort of special material handling when non-0 + /* 0x37A */ u8 Type; /* 0x37B */ u8 mInitTimer; - /* 0x37C */ u8 mEnvrIdxCurr; - /* 0x37D */ u8 mEnvrIdxPrev; - /* 0x37E */ u8 mColpatCurr; - /* 0x37F */ u8 mColpatPrev; - /* 0x380 */ s8 mRoomNo; - /* 0x381 */ u8 mEnvrIdxOverride; + /* 0x37C */ u8 UseCol; + /* 0x37D */ u8 PrevCol; + /* 0x37E */ u8 wether_pat1; + /* 0x37F */ u8 wether_pat0; + /* 0x380 */ s8 room_no; // Room Color + /* 0x381 */ u8 YukaCol; // Floor (Poly) Color /* 0x382 */ u8 mLightMode; - /* 0x383 */ u8 mInitType; + /* 0x383 */ u8 Material_use_fg; /* 0x384 */ u8 field_0x384; /* 0x385 */ u8 field_0x385; }; // Size = 0x388 @@ -252,6 +204,13 @@ struct dKy_pol_sound_struct { u8 data[8]; }; +enum dKy_LIGHT_SIZE { + LIGHT_SIZE_S, + LIGHT_SIZE_M, + LIGHT_SIZE_L, + LIGHT_SIZE_LL, +}; + class dScnKy_env_light_c { public: /* 8019F2E8 */ dScnKy_env_light_c(); @@ -262,13 +221,13 @@ public: /* 8019FBD4 */ void setLight_palno_get(u8*, u8*, u8*, u8*, u8*, u8*, u8*, u8*, f32*, int*, int*, f32*, u8*); /* 801A040C */ void setLight(); - /* 801A133C */ void setLight_bg(dKy_tevstr_c*, _GXColorS10*, _GXColorS10*, f32*, f32*); - /* 801A16C0 */ void setLight_actor(dKy_tevstr_c*, _GXColorS10*, f32*, f32*); - /* 801A1D64 */ void settingTevStruct_colget_actor(cXyz*, dKy_tevstr_c*, _GXColorS10*, - _GXColorS10*, f32*, f32*); + /* 801A133C */ void setLight_bg(dKy_tevstr_c*, GXColorS10*, GXColorS10*, f32*, f32*); + /* 801A16C0 */ void setLight_actor(dKy_tevstr_c*, GXColorS10*, f32*, f32*); + /* 801A1D64 */ void settingTevStruct_colget_actor(cXyz*, dKy_tevstr_c*, GXColorS10*, + GXColorS10*, f32*, f32*); /* 801A1F58 */ void settingTevStruct_colget_player(dKy_tevstr_c*); - /* 801A2128 */ void settingTevStruct_plightcol_plus(cXyz*, dKy_tevstr_c*, _GXColorS10, - _GXColorS10, u8); + /* 801A2128 */ void settingTevStruct_plightcol_plus(cXyz*, dKy_tevstr_c*, GXColorS10, + GXColorS10, u8); /* 801A37C4 */ void settingTevStruct(int, cXyz*, dKy_tevstr_c*); /* 801A441C */ void setLightTevColorType(J3DModelData*, dKy_tevstr_c*); /* 801A4DA0 */ void setLightTevColorType_MAJI(J3DModelData*, dKy_tevstr_c*); @@ -281,55 +240,55 @@ public: /* 801ADBBC */ virtual ~dScnKy_env_light_c() {} - void setLightTevColorType(J3DModel* i_model, dKy_tevstr_c* tevstr) { - setLightTevColorType(i_model->getModelData(), tevstr); + void setLightTevColorType(J3DModel* model_p, dKy_tevstr_c* tevstr_p) { + setLightTevColorType(model_p->getModelData(), tevstr_p); } - void setLightTevColorType_MAJI(J3DModel* i_model, dKy_tevstr_c* tevstr) { - setLightTevColorType_MAJI(i_model->getModelData(), tevstr); + void setLightTevColorType_MAJI(J3DModel* model_p, dKy_tevstr_c* tevstr_p) { + setLightTevColorType_MAJI(model_p->getModelData(), tevstr_p); } public: /* 0x0000 */ // vtable - /* 0x0004 */ stage_palette_info_class* mpDmPalet; - /* 0x0008 */ stage_pselect_info_class* mpDmPselect; - /* 0x000C */ stage_envr_info_class* mpDmEnvr; - /* 0x0010 */ stage_vrboxcol_info_class* mpDmVrbox; - /* 0x0014 */ dKyd_lightSchejule* mpSchedule; - /* 0x0018 */ LIGHT_INFLUENCE mBaseLightInfluence; + /* 0x0004 */ stage_palette_info_class* stage_palette_info; + /* 0x0008 */ stage_pselect_info_class* stage_pselect_info; + /* 0x000C */ stage_envr_info_class* stage_envr_info; + /* 0x0010 */ stage_vrboxcol_info_class* stage_vrboxcol_info; + /* 0x0014 */ dKyd_lightSchejule* light_schedule; + /* 0x0018 */ LIGHT_INFLUENCE base_light; /* 0x0038 */ LIGHT_INFLUENCE mLightInfluence[30]; - /* 0x03F8 */ LIGHT_INFLUENCE* mPointLight[100]; - /* 0x0588 */ LIGHT_INFLUENCE* mEfPLight[5]; - /* 0x059C */ u8 field_0x59c[400]; - /* 0x072C */ LIGHT_INFLUENCE* field_0x72c[5]; - /* 0x0740 */ LIGHT_INFLUENCE field_0x740; - /* 0x0760 */ u8 field_0x760[4]; - /* 0x0764 */ LIGHT_INFLUENCE mBGpartsActiveLight[2]; - /* 0x07A4 */ EFLIGHT_PROC mSwordLight; - /* 0x07CC */ stage_plight_info_class* stagPlightInfo; // might be part of EFLIGHT_PROC - /* 0x07D0 */ WIND_INFLUENCE* mPntWind[30]; - /* 0x0848 */ WIND_INF_ENTITY mWindInfluenceEntity[5]; - /* 0x0974 */ SND_INFLUENCE mSound; - /* 0x098C */ u8 field_0x98c; // often set to room no - /* 0x0990 */ DALKMIST_INFLUENCE* mDalkmistInf[10]; - /* 0x09B8 */ DUNGEON_LIGHT mDungeonLights[8]; + /* 0x03F8 */ LIGHT_INFLUENCE* pointlight[100]; + /* 0x0588 */ LIGHT_INFLUENCE* efplight[5]; + /* 0x059C */ u8 unk_0x59c[0x72C - 0x59C]; + /* 0x072C */ LIGHT_INFLUENCE* unk_0x72c[5]; // only ever set to NULL in plight_init + /* 0x0740 */ LIGHT_INFLUENCE unk_0x740; + /* 0x0760 */ u8 unk_0x760[0x764 - 0x760]; + /* 0x0764 */ LIGHT_INFLUENCE bgparts_active_light[2]; + /* 0x07A4 */ EFLIGHT_PROC eflight; + /* 0x07CC */ stage_plight_info_class* stage_plight_info; + /* 0x07D0 */ WIND_INFLUENCE* pntwind[30]; + /* 0x0848 */ WIND_INF_ENTITY wind_inf_entity[5]; + /* 0x0974 */ SND_INFLUENCE sound_influence; + /* 0x098C */ u8 player_room_no; + /* 0x0990 */ DALKMIST_INFLUENCE* dalkmist_influence[10]; + /* 0x09B8 */ DUNGEON_LIGHT dungeonlight[8]; /* 0x0C18 */ BOSS_LIGHT field_0x0c18[8]; /* 0x0D58 */ BOSS_LIGHT field_0x0d58[6]; - /* 0x0E48 */ GB_WIND_INFLUENCE mWind; + /* 0x0E48 */ GB_WIND_INFLUENCE global_wind_influence; /* 0x0E5C */ f32 custom_windpower; - /* 0x0E60 */ f32 field_0xe60; - /* 0x0E64 */ u16 field_0xe64; - /* 0x0E66 */ u16 field_0xe66; - /* 0x0E68 */ s16 mEvtWindAngleX; - /* 0x0E6A */ s16 mEvtWindAngleY; - /* 0x0E6C */ u8 field_0xe6c; - /* 0x0E6D */ u8 mEvtWindSet; - /* 0x0E6E */ u8 mTeachWindExist; - /* 0x0E6F */ u8 field_0xe6f; + /* 0x0E60 */ f32 unk_0xe60; + /* 0x0E64 */ u16 unk_0xe64; + /* 0x0E66 */ u16 unk_0xe66; + /* 0x0E68 */ s16 evt_wind_angle_x; + /* 0x0E6A */ s16 evt_wind_angle_y; + /* 0x0E6C */ u8 unk_0xe6c; + /* 0x0E6D */ u8 evt_wind_go; + /* 0x0E6E */ u8 TeachWind_existence; + /* 0x0E6F */ u8 unk_0xe6f; /* 0x0E70 */ bool mSunInitialized; /* 0x0E74 */ dKankyo_sun_Packet* mpSunPacket; /* 0x0E78 */ dKankyo_sunlenz_Packet* mpSunLenzPacket; /* 0x0E7C */ bool mRainInitialized; - /* 0x0E80 */ int mRainCount; + /* 0x0E80 */ int raincnt; /* 0x0E84 */ dKankyo_rain_Packet* mpRainPacket; /* 0x0E88 */ bool mSnowInitialized; /* 0x0E8C */ int mSnowCount; @@ -362,16 +321,16 @@ public: /* 0x0F24 */ int field_0xf24; /* 0x0F28 */ dKankyo_odour_Packet* mpOdourPacket; /* 0x0F2C */ u8 field_0xf2c; - /* 0x0F30 */ J3DModel* mpUndwaterEfModel; + /* 0x0F30 */ J3DModel* undwater_ef_model; /* 0x0F34 */ f32 field_0xf34; - /* 0x0F38 */ JKRSolidHeap* mpUndwaterEfHeap; - /* 0x0F3C */ u8 field_0xf3c; - /* 0x0F3D */ u8 field_0xf3d; - /* 0x0F40 */ f32 field_0xf40; - /* 0x0F44 */ JPABaseEmitter* field_0xf44; - /* 0x0F48 */ JPABaseEmitter* field_0xf48; - /* 0x0F4C */ JPABaseEmitter* field_0xf4c; - /* 0x0F50 */ GB_MAPLE_COL_CHANGE field_0xf50[2]; + /* 0x0F38 */ JKRSolidHeap* undwater_ef_heap; + /* 0x0F3C */ u8 senses_mode; + /* 0x0F3D */ u8 now_senses_effect; + /* 0x0F40 */ f32 senses_effect_strength; + /* 0x0F44 */ JPABaseEmitter* senses_ef_emitter0; + /* 0x0F48 */ JPABaseEmitter* senses_ef_emitter1; + /* 0x0F4C */ JPABaseEmitter* senses_ef_emitter2; + /* 0x0F50 */ GB_MAPLE_COL_CHANGE global_maple_col_change[2]; /* 0x1038 */ u8 field_0x1038; /* 0x103C */ int field_0x103c; /* 0x1040 */ u8 field_0x1040[4]; @@ -382,147 +341,147 @@ public: /* 0x1051 */ u8 field_0x1051; /* 0x1054 */ int field_0x1054; /* 0x1058 */ dKankyo_evil_Packet* mpEvilPacket; - /* 0x105C */ mDoExt_btkAnm* mpUndwaterBtk; - /* 0x1060 */ kytag08_class* field_0x1060; - /* 0x1064 */ Vec field_0x1064; - /* 0x1070 */ cXyz mSunPos2; - /* 0x107C */ cXyz mPLightNearPos; - /* 0x1088 */ cXyz mSunPos; - /* 0x1094 */ cXyz mMoonPos; + /* 0x105C */ mDoExt_btkAnm* undwater_btk; + /* 0x1060 */ kytag08_class* fog_avoid_tag; + /* 0x1064 */ Vec field_0x1064; // some light direction + /* 0x1070 */ cXyz sun_light_pos; + /* 0x107C */ cXyz plight_near_pos; + /* 0x1088 */ cXyz sun_pos; + /* 0x1094 */ cXyz moon_pos; /* 0x10A0 */ cXyz field_0x10a0; /* 0x10AC */ GXFogAdjTable mXFogTbl; - /* 0x10C0 */ GXColorS10 mVrSkyCol; - /* 0x10C8 */ GXColorS10 mVrkumoCol; - /* 0x10D0 */ GXColorS10 mVrShitaGumoCol; - /* 0x10D8 */ GXColorS10 mVrShitaUneiCol; - /* 0x10E0 */ GXColorS10 mVrKasumiCol; - /* 0x10E8 */ GXColorS10 mVrOkuKasumiCol; + /* 0x10C0 */ GXColorS10 vrbox_sky_col; + /* 0x10C8 */ GXColorS10 vrbox_kumo_top_col; + /* 0x10D0 */ GXColorS10 vrbox_kumo_bottom_col; + /* 0x10D8 */ GXColorS10 vrbox_kumo_shadow_col; + /* 0x10E0 */ GXColorS10 vrbox_kasumi_outer_col; + /* 0x10E8 */ GXColorS10 vrbox_kasumi_inner_col; /* 0x10F0 */ GXColorS10 field_0x10f0; /* 0x10F8 */ GXColorS10 field_0x10f8; - /* 0x1100 */ GXColorS10 mActorAmbience; - /* 0x1108 */ GXColorS10 mTerrainAmbienceBG[4]; - /* 0x1128 */ GXColorS10 field_0x1128[6]; - /* 0x1158 */ GXColorS10 mFogColor; - /* 0x1160 */ GXColorS10 mActorAddColAmb; - /* 0x1168 */ u8 field_0x1168[8]; - /* 0x1170 */ GXColorS10 mBgAddColAmb; - /* 0x1178 */ u8 field_0x1178[8]; - /* 0x1180 */ GXColorS10 mBg1AddColAmb; - /* 0x1188 */ u8 field_0x1188[8]; - /* 0x1190 */ GXColorS10 mBg2AddColAmb; - /* 0x1198 */ u8 field_0x1198[8]; - /* 0x11A0 */ GXColorS10 mBg3AddColAmb; - /* 0x11A8 */ u8 field_0x11a8[8]; - /* 0x11B0 */ GXColorS10 mFogAddCol; - /* 0x11B8 */ GXColorS10 mVrboxAddcolSky0; - /* 0x11C0 */ GXColorS10 mVrboxAddcolKasumi; - /* 0x11C8 */ f32 field_0x11c8; - /* 0x11CC */ f32 field_0x11cc; - /* 0x11D0 */ f32 field_0x11d0; - /* 0x11D4 */ f32 mDiceWeatherChangeTime; - /* 0x11D8 */ f32 mDiceWeatherTime; - /* 0x11DC */ f32 mColPatBlend; + /* 0x1100 */ GXColorS10 actor_amb_col; + /* 0x1108 */ GXColorS10 bg_amb_col[4]; + /* 0x1128 */ GXColorS10 dungeonlight_col[6]; + /* 0x1158 */ GXColorS10 fog_col; + /* 0x1160 */ GXColorS10 actor_addcol_amb; + /* 0x1168 */ u8 unk_0x1168[8]; // probably unused GXColorS10 + /* 0x1170 */ GXColorS10 bg_addcol_amb; + /* 0x1178 */ u8 unk_0x1178[8]; // probably unused GXColorS10 + /* 0x1180 */ GXColorS10 bg1_addcol_amb; + /* 0x1188 */ u8 unk_0x1188[8]; // probably unused GXColorS10 + /* 0x1190 */ GXColorS10 bg2_addcol_amb; + /* 0x1198 */ u8 unk_0x1198[8]; // probably unused GXColorS10 + /* 0x11A0 */ GXColorS10 bg3_addcol_amb; + /* 0x11A8 */ u8 unk_0x11a8[8]; // probably unused GXColorS10 + /* 0x11B0 */ GXColorS10 addcol_fog; + /* 0x11B8 */ GXColorS10 vrbox_addcol_sky0; + /* 0x11C0 */ GXColorS10 vrbox_addcol_kasumi; + /* 0x11C8 */ f32 unk_0x11c8; // used as a ratio, but only ever set to 1.0 + /* 0x11CC */ f32 unk_0x11cc; // used as a ratio, but only ever set to 1.0 + /* 0x11D0 */ f32 unk_0x11d0; // used as a ratio, but only ever set to 1.0 + /* 0x11D4 */ f32 dice_wether_change_time; + /* 0x11D8 */ f32 dice_wether_time; + /* 0x11DC */ f32 pat_ratio; /* 0x11E0 */ f32 mColPatBlendGather; /* 0x11E4 */ f32 mFogNear; /* 0x11E8 */ f32 mFogFar; /* 0x11EC */ f32 field_0x11ec; /* 0x11F0 */ f32 field_0x11f0; /* 0x11F4 */ f32 field_0x11f4; - /* 0x11F8 */ f32 mColAllcolRatio; - /* 0x11FC */ f32 mColActColRatio; - /* 0x1200 */ f32 mColBgColRatio; - /* 0x1204 */ f32 mColFogColRatio; - /* 0x1208 */ f32 mColVrboxSoraColRatio; - /* 0x120C */ f32 mColVrboxKumocolRatio; + /* 0x11F8 */ f32 now_allcol_ratio; + /* 0x11FC */ f32 now_actcol_ratio; + /* 0x1200 */ f32 now_bgcol_ratio; + /* 0x1204 */ f32 now_fogcol_ratio; + /* 0x1208 */ f32 now_vrboxsoracol_ratio; + /* 0x120C */ f32 now_vrboxkumocol_ratio; /* 0x1210 */ f32 field_0x1210; - /* 0x1214 */ f32 mAllcolRatio; - /* 0x1218 */ f32 mActcolRatio; - /* 0x121C */ f32 mBgcolRatio; - /* 0x1220 */ f32 mFogcolRatio; - /* 0x1224 */ f32 mVrboxSoracolRatio; - /* 0x1228 */ f32 mVrboxKumocolRatio; + /* 0x1214 */ f32 allcol_ratio; + /* 0x1218 */ f32 actcol_ratio; + /* 0x121C */ f32 bgcol_ratio; + /* 0x1220 */ f32 fogcol_ratio; + /* 0x1224 */ f32 vrboxsoracol_ratio; + /* 0x1228 */ f32 vrboxkumocol_ratio; /* 0x122C */ f32 field_0x122c; /* 0x1230 */ f32 field_0x1230; /* 0x1234 */ f32 field_0x1234; /* 0x1238 */ f32 field_0x1238; /* 0x123C */ f32 field_0x123c; /* 0x1240 */ f32 field_0x1240; - /* 0x1244 */ f32 mDaytime; - /* 0x1248 */ f32 mNexttime; - /* 0x124C */ f32 mTimeSpeed; - /* 0x1250 */ f32 mDarkDaytime; + /* 0x1244 */ f32 daytime; + /* 0x1248 */ f32 nexttime; + /* 0x124C */ f32 time_change_rate; + /* 0x1250 */ f32 dark_daytime; /* 0x1254 */ f32 field_0x1254; /* 0x1258 */ f32 field_0x1258; - /* 0x125C */ f32 mPaletteTerrainLightEffect; - /* 0x1260 */ f32 mGrassLightEffectRate; + /* 0x125C */ f32 bg_light_influence; + /* 0x1260 */ f32 grass_light_inf_rate; /* 0x1264 */ f32 field_0x1264; /* 0x1268 */ f32 field_0x1268; /* 0x126C */ f32 field_0x126c; /* 0x1270 */ f32 mDemoAttentionPoint; - /* 0x1274 */ f32 mTime; // ? + /* 0x1274 */ f32 old_time; // saved time of day before entering twilight. time set back to this when leaving twilight /* 0x1278 */ f32 field_0x1278; /* 0x127C */ f32 field_0x127c; /* 0x1280 */ int field_0x1280; /* 0x1284 */ u8 field_0x1284[4]; - /* 0x1288 */ u32 mMoyaSE; - /* 0x128C */ u8 field_0x128c[12]; - /* 0x1298 */ int mDiceWeatherCounter; - /* 0x129C */ int mRainCountOrig; + /* 0x1288 */ u32 moya_se; + /* 0x128C */ u8 unk_0x128c[0x1298 - 0x128C]; + /* 0x1298 */ int dice_wether_counter; + /* 0x129C */ int base_raincnt; /* 0x12A0 */ int field_0x12a0; /* 0x12A4 */ int mPlayerPLightIdx; /* 0x12A8 */ int mPlayerEfLightIdx; - /* 0x12AC */ u8 field_0x12ac[4]; + /* 0x12AC */ u8 field_0x12ac[0x12B0 - 0x12AC]; /* 0x12B0 */ int field_0x12b0; - /* 0x12B4 */ int mSchbitTimer; - /* 0x12B8 */ u8 field_0x12b8[4]; + /* 0x12B4 */ int schbit_timer; + /* 0x12B8 */ u8 field_0x12b8[0x12BC - 0x12B8]; /* 0x12BC */ u16 mFogAdjCenter; /* 0x12BE */ u16 mDate; /* 0x12C0 */ s16 mActorLightEffect; - /* 0x12C2 */ u8 mColPatPrev; - /* 0x12C3 */ u8 mColPatCurr; + /* 0x12C2 */ u8 wether_pat0; + /* 0x12C3 */ u8 wether_pat1; /* 0x12C4 */ u8 mColpatPrevGather; /* 0x12C5 */ u8 mColpatCurrGather; - /* 0x12C6 */ u8 mEnvrIdxPrev; - /* 0x12C7 */ u8 mEnvrIdxCurr; + /* 0x12C6 */ u8 PrevCol; + /* 0x12C7 */ u8 UseCol; /* 0x12C8 */ u8 mColpatWeather; - /* 0x12C9 */ u8 mDiceWeatherMode; - /* 0x12CA */ u8 mDiceWeatherState; - /* 0x12CB */ u8 mDiceWeatherCurrPattern; + /* 0x12C9 */ u8 dice_wether_mode; + /* 0x12CA */ u8 dice_wether_state; + /* 0x12CB */ u8 dice_wether_pat; /* 0x12CC */ u8 field_0x12cc; /* 0x12CD */ u8 mColPatMode; /* 0x12CE */ u8 mColPatModeGather; /* 0x12CF */ u8 mFogAdjEnable; /* 0x12D0 */ u8 mFogAdjTableType; - /* 0x12D1 */ u8 mItemGetCol_chg; - /* 0x12D2 */ u8 mInitAnmTimer; - /* 0x12D3 */ u8 mSchBit; - /* 0x12D4 */ bool mVrboxInvisible; + /* 0x12D1 */ u8 Itemgetcol_chg; + /* 0x12D2 */ u8 light_init_timer; + /* 0x12D3 */ u8 schbit; + /* 0x12D4 */ bool hide_vrbox; /* 0x12D5 */ u8 mContrastFlag; /* 0x12D6 */ u8 field_0x12d6; - /* 0x12D7 */ u8 mShadowMode; - /* 0x12D8 */ u8 mCameraInWater; - /* 0x12DC */ dKy_pol_efftbl_struct* mResPolEfftbl; - /* 0x12E0 */ dKy_pol_effcol_struct* mResPolEffcol; - /* 0x12E4 */ dKy_pol_efftbl_struct* mResPolEfftbl2; - /* 0x12E8 */ dKy_pol_effcol_struct* mResPolEffcol2; - /* 0x12EC */ dKy_pol_sound_struct* mResPolSound; - /* 0x12F0 */ dKy_pol_arg_struct* mResPolArg; - /* 0x12F4 */ dKy_color_data_struct* mResColorDataTbl; + /* 0x12D7 */ u8 shadow_mode; + /* 0x12D8 */ u8 camera_water_in_status; + /* 0x12DC */ dKy_pol_efftbl_struct* pol_efftbl; + /* 0x12E0 */ dKy_pol_effcol_struct* pol_effcol; + /* 0x12E4 */ dKy_pol_efftbl_struct* pol_efftbl2; + /* 0x12E8 */ dKy_pol_effcol_struct* pol_effcol2; + /* 0x12EC */ dKy_pol_sound_struct* pol_sound; + /* 0x12F0 */ dKy_pol_arg_struct* pol_arg; + /* 0x12F4 */ dKy_color_data_struct* colordata_tbl; /* 0x12F8 */ u8 mFogDensity; /* 0x12F9 */ u8 field_0x12f9; - /* 0x12FA */ u8 mIsBlure; - /* 0x12FB */ u8 field_0x12fb; + /* 0x12FA */ u8 is_blure; + /* 0x12FB */ u8 using_time_control_tag; /* 0x12FC */ s8 field_0x12fc; - /* 0x12FD */ u8 mDarktimeWeek; - /* 0x12FE */ u8 mPondSeason; + /* 0x12FD */ u8 darktime_week; + /* 0x12FE */ u8 fishing_hole_season; /* 0x1300 */ s16 field_0x1300; /* 0x1302 */ s16 field_0x1302; /* 0x1304 */ f32 mWaterSurfaceShineRate; - /* 0x1308 */ u8 field_0x1308; - /* 0x1309 */ u8 field_0x1309; + /* 0x1308 */ u8 light_mask_type; + /* 0x1309 */ u8 light_size; /* 0x130A */ u8 field_0x130a; /* 0x130B */ u8 field_0x130b; - /* 0x130C */ u8 field_0x130c; + /* 0x130C */ u8 staffroll_next_timer; }; // Size: 0x1310 extern dScnKy_env_light_c g_env_light; @@ -551,65 +510,110 @@ enum dKy_dice_wether_state { DICE_STATE_NEXT_e, }; -u8 dKy_darkworld_stage_check(char const*, int); +void dKy_set_nexttime(f32 nexttime); +void dKy_itudemo_se(); +BOOL dKy_darkworld_spot_check(char const* stageName, int roomNo); +void dKy_darkworld_Area_set(char const* stageName, int roomNo); +void dKy_FiveSenses_fullthrottle_dark(); +BOOL dKy_daynight_check(); +void dKy_clear_game_init(); +void dKy_setLight_init(); +u8 dKy_pol_sound_get(const cBgS_PolyInfo* polyinfo_p); +void dKy_depth_dist_set(void* process_p); +void dKy_instant_rainchg(); +void dKy_instant_timechg(f32 time); +void dKy_set_vrboxsoracol_ratio(f32 ratio); +void dKy_set_vrboxkumocol_ratio(f32 ratio); +void dKy_actor_addcol_set(s16 r, s16 g, s16 b, f32 ratio); +void dKy_fog_startendz_set(f32 param_0, f32 param_1, f32 ratio); +void dKy_vrbox_addcol_set(s16 r, s16 g, s16 b, f32 ratio); +void dKy_GxFog_set(); +u8 dKy_pol_argument_get(const cBgS_PolyInfo* polyinfo_p); +void dKy_Sound_set(cXyz pos, int param_1, fpc_ProcID actor_id, int timer); +void dKy_bg_MAxx_proc(void* bg_model_p); +void dKy_change_colpat(u8 colpat); +int dKy_BossLight_set(cXyz* pos_p, GXColor* color_p, f32 ref_dist, u8 param_3); +void dKy_custom_colset(u8 prevGather, u8 curGather, f32 blend); +void dKy_setLight(); +cXyz dKy_plight_near_pos(); +int dKy_BossSpotLight_set(cXyz* pos_p, f32 angle_x, f32 angle_y, f32 cutoff, GXColor* color_p, + f32 ref_dist, u8 spot_type, u8 distattn_type); +void dKy_calc_color_set(GXColorS10* out_color_p, color_RGB_class* color_a_start_p, + color_RGB_class* color_b_start_p, color_RGB_class* color_a_end_p, + color_RGB_class* color_b_end_p, f32 color_ratio, f32 blend_ratio, + GXColorS10 add_col, f32 scale); +void dKy_twilight_camelight_set(); +u8 dKy_shadow_mode_check(u8 mode); +void dKy_shadow_mode_set(u8 mode); +void dKy_shadow_mode_reset(u8 mode); +void dKy_Itemgetcol_chg_on(); +void dKy_actor_addcol_amb_set(s16 r, s16 g, s16 b, f32 ratio); +void dKy_bg_addcol_amb_set(s16 r, s16 g, s16 b, f32 ratio); +int dKy_WolfEyeLight_set(cXyz* pos_p, f32 angle_x, f32 angle_y, f32 cutoff, GXColor* color_p, + f32 ref_dist, u8 spot_type, u8 distattn_type); +BOOL dKy_TeachWind_existence_chk(); +u8 dKy_darkworld_stage_check(char const* stageName, int roomNo); 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(); -s32 dKy_getDarktime_minute(); -s32 dKy_getDarktime_hour(); -static void dKy_Sound_init(); -void dKy_setLight_nowroom(char); -void dKy_setLight_nowroom_actor(dKy_tevstr_c*); +int dKy_Outdoor_check(); +int dKy_getdaytime_hour(); +int dKy_getdaytime_minute(); +int dKy_get_dayofweek(); +int dKy_getDarktime_minute(); +int dKy_getDarktime_hour(); +void dKy_Sound_init(); +void dKy_setLight_nowroom(char room_no); +void dKy_setLight_nowroom_actor(dKy_tevstr_c* tevstr_p); void dKy_setLight_again(); -void dKy_GxFog_tevstr_set(dKy_tevstr_c*); -void dKy_plight_set(LIGHT_INFLUENCE* param_0); -void dKy_plight_priority_set(LIGHT_INFLUENCE* param_0); -void dKy_efplight_set(LIGHT_INFLUENCE* param_0); -void dKy_efplight_cut(LIGHT_INFLUENCE* param_0); -void dKy_tevstr_init(dKy_tevstr_c* param_0, s8 param_1, u8 param_2); +void dKy_GxFog_tevstr_set(dKy_tevstr_c* tevstr_p); +void dKy_plight_set(LIGHT_INFLUENCE* light_inf_p); +void dKy_plight_priority_set(LIGHT_INFLUENCE* light_inf_p); +void dKy_efplight_set(LIGHT_INFLUENCE* light_inf_p); +void dKy_efplight_cut(LIGHT_INFLUENCE* light_inf_p); +void dKy_tevstr_init(dKy_tevstr_c* tevstr_p, s8 room_no, u8 floorCol); SND_INFLUENCE* dKy_Sound_get(); -void dKy_plight_cut(LIGHT_INFLUENCE* param_0); -void dKy_dalkmist_inf_set(DALKMIST_INFLUENCE*); -void dKy_dalkmist_inf_cut(DALKMIST_INFLUENCE*); +void dKy_plight_cut(LIGHT_INFLUENCE* light_inf_p); +void dKy_dalkmist_inf_set(DALKMIST_INFLUENCE* dalkmist_inf_p); +void dKy_dalkmist_inf_cut(DALKMIST_INFLUENCE* dalkmist_inf_p); int dKy_rain_check(); void dKy_set_allcol_ratio(f32 ratio); void dKy_set_actcol_ratio(f32 ratio); void dKy_set_bgcol_ratio(f32 ratio); void dKy_set_fogcol_ratio(f32 ratio); void dKy_set_vrboxcol_ratio(f32 ratio); -f32 dKy_get_parcent(f32 param_0, f32 param_1, f32 param_2); -void dKy_setLight_nowroom_grass(char param_0, f32 param_1); -void dKy_Global_amb_set(dKy_tevstr_c* i_tevstr); -u8 dKy_pol_eff_prim_get(cBgS_PolyInfo const* param_0, _GXColor* param_1); -void dKy_pol_eff_env_get(cBgS_PolyInfo const* param_0, _GXColor* param_1); -u8 dKy_pol_eff_alpha_get(cBgS_PolyInfo const* param_0); -f32 dKy_pol_eff_ratio_get(cBgS_PolyInfo const* param_0); -void dKy_pol_eff2_prim_get(cBgS_PolyInfo const* param_0, _GXColor* param_1); -void dKy_pol_eff2_env_get(cBgS_PolyInfo const* param_0, _GXColor* param_1); -u8 dKy_pol_eff2_alpha_get(cBgS_PolyInfo const* param_0); -f32 dKy_pol_eff2_ratio_get(cBgS_PolyInfo const* param_0); -u8 dKy_pol_efftype_get(cBgS_PolyInfo const* param_0); -u8 dKy_pol_efftype2_get(cBgS_PolyInfo const* param_0); -void dKy_ParticleColor_get_actor(cXyz* param_0, dKy_tevstr_c* param_1, _GXColor* param_2, - _GXColor* param_3, _GXColor* param_4, _GXColor* param_5, - f32 param_6); -void dKy_ParticleColor_get_bg(cXyz* param_0, dKy_tevstr_c* param_1, _GXColor* param_2, - _GXColor* param_3, _GXColor* param_4, _GXColor* param_5, - f32 param_6); -_GXColor dKy_light_influence_col(_GXColor* param_0, f32 param_1); -static void dKy_WaterIn_Light_set(); -void dKy_SordFlush_set(cXyz param_0, int param_1); +f32 dKy_get_parcent(f32 max, f32 min, f32 value); +void dKy_setLight_nowroom_grass(char room_no, f32 light_ratio); +void dKy_Global_amb_set(dKy_tevstr_c* tevstr_p); +u8 dKy_pol_eff_prim_get(const cBgS_PolyInfo* polyinfo_p, GXColor* out_color_p); +u8 dKy_pol_eff_env_get(const cBgS_PolyInfo* polyinfo_p, GXColor* out_color_p); +u8 dKy_pol_eff_alpha_get(const cBgS_PolyInfo* polyinfo_p); +f32 dKy_pol_eff_ratio_get(const cBgS_PolyInfo* polyinfo_p); +u8 dKy_pol_eff2_prim_get(const cBgS_PolyInfo* polyinfo_p, GXColor* out_color_p); +u8 dKy_pol_eff2_env_get(const cBgS_PolyInfo* polyinfo_p, GXColor* out_color_p); +u8 dKy_pol_eff2_alpha_get(const cBgS_PolyInfo* polyinfo_p); +f32 dKy_pol_eff2_ratio_get(const cBgS_PolyInfo* polyinfo_p); +u8 dKy_pol_efftype_get(const cBgS_PolyInfo* polyinfo_p); +u8 dKy_pol_efftype2_get(const cBgS_PolyInfo* polyinfo_p); +void dKy_ParticleColor_get_actor(cXyz* param_0, dKy_tevstr_c* tevstr_p, GXColor* param_2, + GXColor* param_3, GXColor* param_4, GXColor* param_5, f32 param_6); +void dKy_ParticleColor_get_bg(cXyz* param_0, dKy_tevstr_c* tevstr_p, GXColor* param_2, + GXColor* param_3, GXColor* param_4, GXColor* param_5, f32 param_6); +GXColor dKy_light_influence_col(GXColor* param_0, f32 param_1); +void dKy_WaterIn_Light_set(); +void dKy_SordFlush_set(cXyz light_pos, int light_type); void dKy_camera_water_in_status_set(u8 status); -void dKy_mock_light_every_set(LIGHT_INFLUENCE* param_0); -f32 dKy_move_room_ratio(dKy_tevstr_c* param_0, s8* param_1); +void dKy_mock_light_every_set(LIGHT_INFLUENCE* light_inf_p); +f32 dKy_move_room_ratio(dKy_tevstr_c* tevstr_p, s8* room_no_p); void dKy_bg1_addcol_amb_set(s16 r, s16 g, s16 b, f32 factor); void dKy_vrbox_addcol_sky0_set(s16 r, s16 g, s16 b, f32 factor); void dKy_vrbox_addcol_kasumi_set(s16 r, s16 g, s16 b, f32 factor); void dKy_addcol_fog_set(s16 r, s16 g, s16 b, f32 factor); +cXyz dKy_light_influence_pos(int light_id); +BOOL dKy_SunMoon_Light_Check(); +void dKy_bgparts_activelight_set(LIGHT_INFLUENCE* light_inf_p, int bgpart_id); +void dKy_bgparts_activelight_cut(int bgpart_id); +int dKy_Indoor_check(); #endif /* D_KANKYO_D_KANKYO_H */ diff --git a/include/d/d_kankyo_data.h b/include/d/d_kankyo_data.h index 47d94c53ea..748e13b3a2 100644 --- a/include/d/d_kankyo_data.h +++ b/include/d/d_kankyo_data.h @@ -11,12 +11,12 @@ struct color_RGB_class { // Invented name; Used as u8 `darkLv` in dKydata_darkworldInfo_c. enum dKyd_DARKLV { - FARON = 0, - ELDIN = 1, - LANAYRU = 2, - TEST = 5, // Only used with nonexistent test stages - UNCLEARABLE = 6, // Default. Palace of Twilight stages use this - ALWAYS_DARK = 8, // Unused. Forces Twilight + KY_DARKLV_FARON = 0, + KY_DARKLV_ELDIN = 1, + KY_DARKLV_LANAYRU = 2, + KY_DARKLV_TEST = 5, // Only used with nonexistent test stages + KY_DARKLV_UNCLEARABLE = 6, // Default. Palace of Twilight stages use this + KY_DARKLV_ALWAYS = 8, // Unused. Forces Twilight }; class dKydata_darkworldInfo_c { @@ -53,7 +53,7 @@ enum BloomType { }; #define BLOOMINFO_MAX 64 -class dkydata_bloomInfo_info_class { +class dKydata_BloomInfo_c { public: /* 0x0 */ u8 mType; /* 0x1 */ u8 mThreshold; @@ -76,10 +76,10 @@ void* dKyd_dmvrbox_getp(); dKyd_lightSchejule* dKyd_schejule_getp(); dKyd_lightSchejule* dKyd_schejule_boss_getp(); void dKyd_xfog_table_set(u8); -void* dKyd_maple_col_getp(); +color_RGB_class* dKyd_maple_col_getp(); 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_info_class* dKyd_BloomInf_tbl_getp(int); +dKydata_BloomInfo_c* dKyd_BloomInf_tbl_getp(int); #endif /* D_KANKYO_D_KANKYO_DATA_H */ diff --git a/include/d/d_kankyo_wether.h b/include/d/d_kankyo_wether.h index 30d35b37df..be03a14643 100644 --- a/include/d/d_kankyo_wether.h +++ b/include/d/d_kankyo_wether.h @@ -108,7 +108,7 @@ public: /* 0x0018 */ RAIN_EFF mRainEff[250]; /* 0x36C8 */ f32 field_0x36c8; /* 0x36CC */ f32 field_0x36cc; - /* 0x36D0 */ s16 mRainCount; + /* 0x36D0 */ s16 raincnt; /* 0x36D2 */ u8 field_0x36D2[6]; /* 0x36D8 */ cXyz mCamEyePos; /* 0x36E4 */ cXyz mCamCenterPos; diff --git a/include/d/d_stage.h b/include/d/d_stage.h index 93a30143db..0d5c81196f 100644 --- a/include/d/d_stage.h +++ b/include/d/d_stage.h @@ -10,12 +10,12 @@ class JKRExpHeap; struct stage_vrboxcol_info_class { - /* 0x00 */ color_RGB_class field_0x0; - /* 0x03 */ color_RGB_class field_0x3; - /* 0x06 */ color_RGB_class field_0x6; - /* 0x09 */ GXColor field_0x9; - /* 0x0D */ GXColor field_0xd; - /* 0x11 */ GXColor field_0x11; + /* 0x00 */ color_RGB_class sky_col; + /* 0x03 */ color_RGB_class kumo_top_col; + /* 0x06 */ color_RGB_class kumo_bottom_col; + /* 0x09 */ GXColor kumo_shadow_col; + /* 0x0D */ GXColor kasumi_outer_col; + /* 0x11 */ GXColor kasumi_inner_col; }; // Size: 0x18 // Virt @@ -90,48 +90,45 @@ struct stage_scls_info_dummy_class { struct stage_pure_lightvec_info_class { // LGT - /* 0x00 */ Vec m_position; - /* 0x0C */ f32 m_radius; - /* 0x10 */ f32 m_directionX; - /* 0x14 */ f32 m_directionY; - /* 0x18 */ f32 m_spotCutoff; - /* 0x1C */ u8 field_0x1c; - /* 0x1D */ u8 field_0x1d; - /* 0x1E */ u8 field_0x1e; - /* 0x1F */ u8 field_0x1f; + /* 0x00 */ Vec position; + /* 0x0C */ f32 radius; + /* 0x10 */ f32 directionX; + /* 0x14 */ f32 directionY; + /* 0x18 */ f32 spotCutoff; + /* 0x1C */ u8 spot_type; + /* 0x1D */ u8 dist_atten_type; + /* 0x1E */ u8 flags; + /* 0x1F */ u8 switch_no; }; // Size: 0x20 -// Col struct stage_pselect_info_class { - /* 0x0 */ u8 mPalIdx[8]; - /* 0x8 */ f32 mChangeRate; + /* 0x0 */ u8 palette_id[8]; + /* 0x8 */ f32 change_rate; }; // Size: 0xC struct stage_plight_info_class { - // LGHT - /* 0x00 */ Vec m_position; - /* 0x0C */ f32 m_radius; - /* 0x10 */ u8 field_0x10[0x18 - 0x10]; - /* 0x18 */ color_RGB_class m_color; - /* 0x1B */ u8 m_fluctuation; + /* 0x00 */ Vec position; + /* 0x0C */ f32 power; + /* 0x10 */ u8 unk_0x10[0x18 - 0x10]; + /* 0x18 */ color_RGB_class color; + /* 0x1B */ u8 fluctuation; }; // Size: 0x1C -// PALE struct stage_palette_info_class { - /* 0x00 */ color_RGB_class mActorAmbColor; - /* 0x03 */ color_RGB_class mBgAmbColor[4]; - /* 0x0F */ color_RGB_class mPlightColor[6]; - /* 0x21 */ color_RGB_class mFogColor; - /* 0x24 */ f32 mFogStartZ; - /* 0x28 */ f32 mFogEndZ; - /* 0x2C */ u8 mVirtIdx; - /* 0x2D */ u8 mTerrainLightInfluence; - /* 0x2E */ u8 mCloudShadowDensity; - /* 0x2F */ u8 field_0x2f; - /* 0x30 */ u8 mBloomTblIdx; - /* 0x31 */ u8 mBgAmbColor1A; - /* 0x32 */ u8 mBgAmbColor2A; - /* 0x33 */ u8 mBgAmbColor3A; + /* 0x00 */ color_RGB_class actor_amb_col; + /* 0x03 */ color_RGB_class bg_amb_col[4]; + /* 0x0F */ color_RGB_class plight_col[6]; + /* 0x21 */ color_RGB_class fog_col; + /* 0x24 */ f32 fog_start_z; + /* 0x28 */ f32 fog_end_z; + /* 0x2C */ u8 vrboxcol_id; + /* 0x2D */ u8 bg_light_influence; + /* 0x2E */ u8 cloud_shadow_density; + /* 0x2F */ u8 unk_0x2f; + /* 0x30 */ u8 bloom_tbl_id; + /* 0x31 */ u8 BG1_amb_alpha; + /* 0x32 */ u8 BG2_amb_alpha; + /* 0x33 */ u8 BG3_amb_alpha; }; // Size: 0x34 struct stage_map_info_class { @@ -146,7 +143,7 @@ struct stage_map_info_dummy_class { }; struct stage_envr_info_class { - /* 0x0 */ u8 m_pselectID[65]; + /* 0x0 */ u8 pselect_id[65]; }; // Size: 0x41 struct stage_camera2_data_class { @@ -1160,6 +1157,10 @@ inline u8 dStage_FileList_dt_GetDefaultCamera(dStage_FileList_dt_c* p_fList) { return p_fList->mDefaultCamera; } +inline u8 dStage_FileList_dt_GRASSLIGHT(dStage_FileList_dt_c* p_fList) { + return (p_fList->mParameters >> 7) & 0xFF; +} + inline f32 dStage_FileList2_dt_GetLeftRmX(dStage_FileList2_dt_c* p_fList2) { return p_fList2->mLeftRmX; } diff --git a/include/dolphin/dolphin.h b/include/dolphin/dolphin.h index 05d5c7f367..45beac4b57 100644 --- a/include/dolphin/dolphin.h +++ b/include/dolphin/dolphin.h @@ -6,6 +6,7 @@ #include <dolphin/dsp.h> #include <dolphin/dvd.h> #include <dolphin/gx.h> +#include <dolphin/gf/GFPixel.h> //#include <dolphin/hio.h> #include <dolphin/mtx.h> #include <dolphin/vi.h> diff --git a/include/dolphin/gf/GFPixel.h b/include/dolphin/gf/GFPixel.h index 7386c07ad5..bffbc6a7db 100644 --- a/include/dolphin/gf/GFPixel.h +++ b/include/dolphin/gf/GFPixel.h @@ -1,5 +1,9 @@ #ifndef GFPIXEL_H #define GFPIXEL_H +#include <dolphin/gx.h> + +void GFSetFog(GXFogType param_0, f32 param_1, f32 param_2, f32 param_3, f32 param_4, + GXColor param_5); #endif /* GFPIXEL_H */ |
