link ef_room_sunshine

This commit is contained in:
Prakxo
2023-10-07 19:48:06 +02:00
parent a4ab44bd66
commit 722e71e5b7
9 changed files with 267 additions and 12 deletions
+5
View File
@@ -10,6 +10,11 @@ extern "C" {
extern ACTOR_PROFILE Room_Sunshine_Profile;
typedef struct effect_room_sunshine_s{
ACTOR actor_class;
u8 unk_174;
} ROOMSUNSHINE_ACTOR;
#ifdef __cplusplus
}
#endif
+1
View File
@@ -33,6 +33,7 @@ typedef void (*mActor_proc)(ACTOR*, GAME*);
#define ACTOR_OBJ_BANK_NONE 0
#define ACTOR_OBJ_BANK_3 3 /* TODO: rename, also likely an enum */
#define ACTOR_OBJ_BANK_5 5
#define ACTOR_OBJ_BANK_6 6
#define ACTOR_OBJ_BANK_7 7
#define ACTOR_OBJ_BANK_10 10
+1
View File
@@ -154,6 +154,7 @@ extern f32 mCoBG_GetBgY_AngleS_FromWpos(s_xyz* angle_to_ground, xyz_t wpos, f32
extern f32 mCoBG_GetShadowBgY_AngleS_FromWpos(f32, s_xyz*, xyz_t);
extern int mCoBG_CheckWaterAttribute_OutOfSea(u32 attribute);
extern int mCoBG_CheckHole_OrgAttr(u32 attribute);
extern f32 mCoBG_GetBgY_OnlyCenter_FromWpos(f32 dist, xyz_t* wpos);
extern f32 mCoBG_GetBgY_OnlyCenter_FromWpos2(xyz_t wpos, f32 foot_dist);
extern int mCoBG_Attribute2CheckPlant(u32 attribute, const xyz_t* wpos);
extern void mCoBG_BgCheckControll(xyz_t* reverse_pos, ACTOR* actor, f32 check_range, f32 offset_y, s16 wall_attr_check, s16 no_reverse, s16 check_type);
+36 -8
View File
@@ -31,6 +31,30 @@ enum weather_intensity {
#define mEnv_SAVE_GET_WEATHER_TYPE(w) (((w) & 0xF0) >> 4)
#define mEnv_SAVE_GET_WEATHER_INTENSITY(w) ((w) & 0xF)
typedef struct base_light_s {
u8 ambient_color[3];
s8 sun_dir[3];
u8 sun_color[3];
s8 moon_dir[3];
u8 moon_color[3];
u8 fog_color[3];
s16 fog_near;
s16 fog_far;
u8 shadow_color[3];
u8 room_color[3];
u8 sun_color_window[3];
u8 moon_color_window[3];
u8 background_color[3];
} BaseLight;
typedef struct add_light_info_s {
s16 ambient_color[3];
s16 diffuse_color[3];
s16 fog_color[3];
s16 fog_near;
s16 fog_far;
} AddLightInfo;
typedef void (*NATURE_PROC)(ACTOR*);
typedef struct nature_s {
@@ -38,16 +62,19 @@ typedef struct nature_s {
void* arg;
} Nature;
typedef struct kankyo_s {
/* 0x00 */ Lights sun_light;
/* 0x0E */ u8 pad[0x1C - 0x0E];
/* 0x1C */ Lights* lights_p;
/* 0x20 */ u8 pad3[0x9A - 0x20];
/* 0x9A */ u8 ambientColor[3];
/* 0x9E */ u8 pad2[0xC0 - 0x9E];
/* 0xC0 */ f32 unkC0;
/* 0xC4 */ u8 unkC4;
/* 0x0E */ Lights moon_light;
/* 0x1C */ Lights* lamp_light;
/* 0x20 */ Lights point_light;
/* 0x2E */ u8 _2E[0x78 - 0x2e];
/* 0x78 */ AddLightInfo add_light_info; /* extra values added to specific light parameters */
/* 0x90 */ int _90;
/* 0x94 */ BaseLight base_light;
/* 0xBA */ u8 _BA[0xC0 - 0xBA];
/* 0xC0 */ f32 shadow_pos;
/* 0xC4 */ u8 shadow_alpha;
/* 0xC5 */ u8 countdown_timer;
/* 0xC8 */ Nature nature;
} Kankyo;
@@ -57,6 +84,7 @@ extern int mEnv_WindMove();
extern void mEnv_ManagePointLight(GAME_PLAY*, Kankyo*, Global_light*);
extern void Global_kankyo_set(GAME_PLAY*, Kankyo*, Global_light*);
extern void mEnv_GetShadowPrimColor_Light(u8*,u8*,u8*,GAME*);
extern f32 mKK_windowlight_alpha_get();
#ifdef __cplusplus
}
#endif