From f472e9b05f6337c6c9827444ebb2987f1cf76359 Mon Sep 17 00:00:00 2001 From: Prakxo Date: Mon, 6 Nov 2023 23:35:24 +0100 Subject: [PATCH] link ac_weather_snow --- config/rel_slices.yml | 4 + include/ac_weather.h | 10 +- rel/ac_weather.c | 21 ++-- rel/ac_weather_rain.c | 31 +++--- rel/ac_weather_snow.c | 221 ++++++++++++++++++++++++++++++++++++++++++ tools/yaz0 | Bin 49672 -> 42784 bytes 6 files changed, 258 insertions(+), 29 deletions(-) create mode 100644 rel/ac_weather_snow.c mode change 100644 => 100755 tools/yaz0 diff --git a/config/rel_slices.yml b/config/rel_slices.yml index 4e295d3a..92bf2e3b 100644 --- a/config/rel_slices.yml +++ b/config/rel_slices.yml @@ -556,6 +556,10 @@ ac_weather_rain.c: .text: [0x80602E70, 0x80603494] .rodata: [0x8064BB08,0x8064BB30] .data: [0x806D1DB8, 0x806D1DF8] +ac_weather_snow.c: + .text: [0x80603494, 0x80603B44] + .rodata: [0x8064BB30, 0x8064BB88] + .data: [0x806D1DF8, 0x806D1E10] m_select.c: .text: [0x80627F88, 0x80629CA8] .rodata: [0x8064D1B0, 0x8064D1B8] diff --git a/include/ac_weather.h b/include/ac_weather.h index fdd3e0aa..5f11a135 100644 --- a/include/ac_weather.h +++ b/include/ac_weather.h @@ -15,7 +15,7 @@ extern ACTOR_PROFILE Weather_Profile; typedef struct ac_weather_priv_s{ xyz_t pos; xyz_t speed; - f32 unk18; + f32 currentY; f32 unk1C; s16 timer; s16 work[5]; @@ -26,10 +26,10 @@ typedef struct ac_weather_priv_s{ typedef struct weather_actor_s WEATHER_ACTOR; -typedef void (*CHANGE_WEATHER_PROC)(WEATHER_ACTOR* weather, s16 status, s16 level); -typedef int (*GET_WEATHER_PRV_NUM)(WEATHER_ACTOR* weather); -typedef void (*REMOVE_WEATHER_PRV)(WEATHER_ACTOR* weather, int id); -typedef aWeather_Priv* (*GET_WEATHER_PRV)(u8 status, s16 timer, xyz_t* pos, xyz_t* speed, WEATHER_ACTOR* weather, int id); +typedef void (*CHANGE_WEATHER_PROC)(ACTOR* weather, s16 status, s16 level); +typedef int (*GET_WEATHER_PRV_NUM)(ACTOR* weather); +typedef void (*REMOVE_WEATHER_PRV)(ACTOR* weather, int id); +typedef aWeather_Priv* (*GET_WEATHER_PRV)(u8 status, s16 timer, xyz_t* pos, xyz_t* speed, ACTOR* weather, int id); typedef int (*WEATHER_SOUND_EFFECT)(); typedef void (*CHANGE_WEATER_INSTANCE_PROC)(WEATHER_ACTOR* weather, s16 status, s16 level); diff --git a/rel/ac_weather.c b/rel/ac_weather.c index d4033768..6f39a12b 100644 --- a/rel/ac_weather.c +++ b/rel/ac_weather.c @@ -86,8 +86,8 @@ static void aWeather_weatherinfo_CommonSet(s16 type, s16 intensity){ Common_Set(weather_intensity, intensity); } -static void aWeather_RequestChangeWeather(WEATHER_ACTOR* weather, s16 status, s16 level){ - +static void aWeather_RequestChangeWeather(ACTOR* actor, s16 status, s16 level){ + WEATHER_ACTOR* weather = (WEATHER_ACTOR*)actor; if(mEnv_ReqeustChangeWeatherEnviroment(weather->current_status, status) != 0){ if(status != weather->current_status){ weather->next_status = status; @@ -102,14 +102,15 @@ static void aWeather_RequestChangeWeather(WEATHER_ACTOR* weather, s16 status, s1 } void aWeather_RequestChangeWeatherToIsland(){ - aWeather_RequestChangeWeather(Common_Get(clip.weather_clip)->actor,Common_Get(island_weather),Common_Get(island_weather_intensity)); + aWeather_RequestChangeWeather(&Common_Get(clip.weather_clip)->actor->actor_class,Common_Get(island_weather),Common_Get(island_weather_intensity)); } void aWeather_RequestChangeWeatherFromIsland(){ - aWeather_RequestChangeWeather(Common_Get(clip.weather_clip)->actor, mEnv_SAVE_GET_WEATHER_TYPE(Save_Get(weather)) , mEnv_SAVE_GET_WEATHER_INTENSITY(Save_Get(weather))); + aWeather_RequestChangeWeather(&Common_Get(clip.weather_clip)->actor->actor_class, mEnv_SAVE_GET_WEATHER_TYPE(Save_Get(weather)) , mEnv_SAVE_GET_WEATHER_INTENSITY(Save_Get(weather))); } -int aWeather_GetWeatherPrvNum(WEATHER_ACTOR* weather){ +int aWeather_GetWeatherPrvNum(ACTOR* actor){ + WEATHER_ACTOR* weather = (WEATHER_ACTOR*)actor; aWeather_Priv* priv = weather->priv; int i; int num = 0; @@ -124,7 +125,8 @@ int aWeather_GetWeatherPrvNum(WEATHER_ACTOR* weather){ } -void aWeather_AbolishPrivate(WEATHER_ACTOR* weather, int num){ +void aWeather_AbolishPrivate(ACTOR* actor, int num){ + WEATHER_ACTOR* weather = (WEATHER_ACTOR*)actor; aWeather_Priv* priv = weather->priv; if(priv != NULL){ @@ -135,7 +137,8 @@ void aWeather_AbolishPrivate(WEATHER_ACTOR* weather, int num){ } } -aWeather_Priv* aWeather_GetWeatherPrv(u8 status, s16 timer, xyz_t* pos, xyz_t* speed, WEATHER_ACTOR* weather, int id){ +aWeather_Priv* aWeather_GetWeatherPrv(u8 status, s16 timer, xyz_t* pos, xyz_t* speed, ACTOR* actor, int id){ + WEATHER_ACTOR* weather = (WEATHER_ACTOR*)actor; aWeather_Priv* priv = weather->priv; if((id != -1) && (id < 100)){ @@ -517,7 +520,7 @@ static void aWeather_MoveWeatherPrv(WEATHER_ACTOR* weather, GAME* game){ if(priv->timer != -100){ priv->timer--; if(priv->timer <= 0){ - aWeather_AbolishPrivate(weather, i); + aWeather_AbolishPrivate(&weather->actor_class, i); } } } @@ -622,7 +625,7 @@ static void aWeather_ChangeWeatherTime0(WEATHER_ACTOR* weather){ if(((mEv_CheckTitleDemo(rndIntensity) != -9) || ( weather->sound_flag != 1)) && (mFI_CheckInIsland() == 0)){ - aWeather_RequestChangeWeather(weather, rndWeather, rndIntensity); + aWeather_RequestChangeWeather(&weather->actor_class, rndWeather, rndIntensity); } Common_Set(weather_time, Common_Get(time.rtc_time)); } diff --git a/rel/ac_weather_rain.c b/rel/ac_weather_rain.c index 30ebe0f7..dbd4148c 100644 --- a/rel/ac_weather_rain.c +++ b/rel/ac_weather_rain.c @@ -36,7 +36,8 @@ aWeather_Profile_c iam_weather_rain = { aWeatherRain_draw, }; -static int aWeatherRain_DecideMakeRainCount(WEATHER_ACTOR* weather){ +static int aWeatherRain_DecideMakeRainCount(ACTOR* actor){ + WEATHER_ACTOR* weather = (WEATHER_ACTOR*)actor; if(weather->current_level == 1){ return 1; @@ -46,24 +47,24 @@ static int aWeatherRain_DecideMakeRainCount(WEATHER_ACTOR* weather){ } static void aWeatherRain_make(ACTOR* actor, GAME* game){ - int i; - int priv_num; - GAME_PLAY* play = (GAME_PLAY*)game; - WEATHER_ACTOR* weather = (WEATHER_ACTOR*)actor; - aWeather_Priv* priv; xyz_t pos; xyz_t pos_mod; xyz_t speed; int count; - f32 x,y,z; + int i; + int priv_num; + GAME_PLAY* play = (GAME_PLAY*)game; + WEATHER_ACTOR* weather = (WEATHER_ACTOR*)actor; - count = aWeatherRain_DecideMakeRainCount(weather); + f32 x,y,z; + + count = aWeatherRain_DecideMakeRainCount(actor); pos = weather->pos; for(i = 0; i < count; i++){ - priv_num = Common_Get(clip.weather_clip)->get_priv_num(weather); + priv_num = Common_Get(clip.weather_clip)->get_priv_num(&weather->actor_class); if (priv_num != -1){ x = -130.0f + (RANDOM_F(260.0f)); z = -200.0f + (RANDOM_F(360.0f)); @@ -86,7 +87,7 @@ static void aWeatherRain_make(ACTOR* actor, GAME* game){ pos_mod.y = 70.0f + (120.0f + mCoBG_GetBgY_OnlyCenter_FromWpos(pos_mod, 0.0f)); } - priv = Common_Get(clip.weather_clip)->get_priv(1, 1000, &pos_mod, &speed, (WEATHER_ACTOR*)actor, priv_num); + priv = Common_Get(clip.weather_clip)->get_priv(1, 1000, &pos_mod, &speed, actor, priv_num); if(priv != NULL){ aWeatherRain_ct(priv,game); priv->work[0] = 0; @@ -108,8 +109,8 @@ static void aWeatherRain_MoveRain(aWeather_Priv* priv){ } -static void aWeatherRain_MakePicha(WEATHER_ACTOR* weather, GAME* game, xyz_t pos){ - int priv_num = Common_Get(clip.weather_clip)->get_priv_num(weather); +static void aWeatherRain_MakePicha(ACTOR* actor, GAME* game, xyz_t pos){ + int priv_num = Common_Get(clip.weather_clip)->get_priv_num(actor); GAME_PLAY* play = (GAME_PLAY*)game; aWeather_Priv* priv; f32 y; @@ -125,7 +126,7 @@ static void aWeatherRain_MakePicha(WEATHER_ACTOR* weather, GAME* game, xyz_t pos y = mCoBG_GetBgY_OnlyCenter_FromWpos(pos, 0.0f); pos.y = y; } - priv = Common_Get(clip.weather_clip)->get_priv(1, 8, &pos, NULL, weather,priv_num); + priv = Common_Get(clip.weather_clip)->get_priv(1, 8, &pos, NULL, actor, priv_num); if(priv != NULL){ aWeatherRain_ct(priv,game); priv->work[0] = 1; @@ -155,8 +156,8 @@ static void aWeatherRain_move(aWeather_Priv* priv, GAME* game){ if((timer >= 10) && (Common_Get(clip.weather_clip) != NULL)){ weather = Common_Get(clip.weather_clip)->actor; if(weather != NULL){ - (Common_Get(clip.weather_clip)->remove_priv(weather, priv->id)); - aWeatherRain_MakePicha(weather, game, priv->pos); + (Common_Get(clip.weather_clip)->remove_priv(&weather->actor_class, priv->id)); + aWeatherRain_MakePicha(&weather->actor_class, game, priv->pos); } } } diff --git a/rel/ac_weather_snow.c b/rel/ac_weather_snow.c new file mode 100644 index 00000000..83fac43c --- /dev/null +++ b/rel/ac_weather_snow.c @@ -0,0 +1,221 @@ +#include "ac_weather_snow.h" + +#include "main.h" +#include "m_common_data.h" +#include "m_rcp.h" +#include "m_field_info.h" +#include "m_malloc.h" +#include "m_player_lib.h" +#include "sys_matrix.h" + +extern Gfx ef_yuki01_setmode[]; + +extern Gfx ef_yuki01_00_model[]; + +static void aWeatherSnow_make(ACTOR*, GAME*); +static void aWeatherSnow_ct(aWeather_Priv*, GAME*); +static void aWeatherSnow_move(aWeather_Priv*, GAME*); +static void aWeatherSnow_set(GAME*); +static void aWeatherSnow_draw(aWeather_Priv*, GAME*); + +aWeather_Profile_c iam_weather_snow = { + aWeatherSnow_make, + aWeatherSnow_ct, + aWeatherSnow_move, + aWeatherSnow_set, + aWeatherSnow_draw, +}; + +static int aWeatherSnow_DecideMakeSnowCount(ACTOR* actor, GAME* game){ + WEATHER_ACTOR* weather = (WEATHER_ACTOR*)actor; + + if(weather->current_level == 1){ + return (game->frame_counter & 7) == 0; + } + else if(weather->current_level == 2){ + return (game->frame_counter & 3) == 0; + } + return (game->frame_counter & 1); +} + +static void aWeatherSnow_make(ACTOR* actor, GAME* game){ + WEATHER_ACTOR* weather = (WEATHER_ACTOR*)actor; + GAME_PLAY* play = (GAME_PLAY*)game; + + aWeather_Priv* priv; + f32 x,z; + xyz_t pos = weather->pos; + f32 y = 230.0f + pos.y; + int count = Common_Get(clip.weather_clip)->get_priv_num(actor); + xyz_t base = {0.0f, 0.0f, 0.0f}; + xyz_t mod_pos; + + if(aWeatherSnow_DecideMakeSnowCount(actor, game) != 0){ + base.y = -0.5f + (RANDOM_F(-2.0f)); + if(count != -1){ + x = -100.0f + (RANDOM_F(200.0f)); + z = -200.0f + (RANDOM_F(380.0f)); + + mod_pos = pos; + + mod_pos.x += x; + mod_pos.z += z; + mod_pos.y = y; + + priv = Common_Get(clip.weather_clip)->get_priv(2, 280, &mod_pos, &base, actor, count); + if(priv != NULL){ + aWeatherSnow_ct(priv, game); + priv->work[0]= 0; + priv->work[1] = 156.5f + (RANDOM_F(260.5)); + priv->currentY = y; + } + } + } +} + + +static void aWeatherSnow_ct(aWeather_Priv*, GAME*){ + +} + + +static int aWeatherSnow_CheckSnowBorder(aWeather_Priv* priv, GAME_PLAY* play){ + WEATHER_ACTOR* weather = Common_Get(clip.weather_clip)->actor; + int ret = 0; + f32 wtemp, ptemp; + if(weather != NULL){ + wtemp = weather->pos.x; + ptemp =priv->pos.x; + + if(ptemp < (-100.0f + wtemp)){ + ret |= 2; + } + if(ptemp > (100.0f + wtemp)){ + ret |= 8; + } + wtemp = weather->pos.z; + ptemp =priv->pos.z; + + if(ptemp > (180.0f + wtemp)){ + ret |= 4; + } + if(ptemp < (-200.0f + wtemp)){ + ret |= 1; + } + } + + return ret; +} + +static void aWeatherSnow_CheckSnowScroll(aWeather_Priv* priv, GAME_PLAY* play){ + int border = aWeatherSnow_CheckSnowBorder(priv,play); + PLAYER_ACTOR* player = get_player_actor_withoutCheck(play); + + if(border != 0){ + if((border >> 1) & 1){ + priv->pos.x += 200.0f; + } + if((border >> 3) & 1){ + priv->pos.x -= 200.0f; + } + if((border >> 2) & 1){ + priv->pos.z -= 380.0f; + } + if(border & 1){ + priv->pos.z += 380.0f; + } + } + + if(Common_Get(clip.weather_clip) != NULL){ + f32 y; + WEATHER_ACTOR* weather = Common_Get(clip.weather_clip)->actor; + + if(weather != NULL){ + y = 230.0f + weather->pos.y; + if(priv->pos.y < (40.0f + player->actor_class.world.position.y)){ + priv->pos.y = (y + (priv->pos.y - priv->currentY)); + priv->currentY = y; + } + } + } +} + +static void aWeatherSnow_SetWind2Snow(aWeather_Priv* priv){ + + if(Common_Get(clip.weather_clip) != NULL){ + WEATHER_ACTOR* weather = Common_Get(clip.weather_clip)->actor; + if(weather != NULL){ + priv->pos.x += weather->wind_info.x; + priv->pos.y += weather->wind_info.y; + priv->pos.z += weather->wind_info.z; + } + } +} + +static void aWeatherSnow_move(aWeather_Priv* priv, GAME* game){ + GAME_PLAY* play = (GAME_PLAY*) game; + + xyz_t_add(&priv->pos,&priv->speed, &priv->pos); + priv->work[0] += priv->work[1]; + aWeatherSnow_SetWind2Snow(priv); + aWeatherSnow_CheckSnowScroll(priv,play); +} + +static void aWeatherSnow_set(GAME* game){ + + _texture_z_light_fog_prim_xlu(game->graph); + + OPEN_DISP(game->graph); + + gSPDisplayList(NEXT_POLY_XLU_DISP, ef_yuki01_setmode); + + + CLOSE_DISP(game->graph); +} + +void aWeatherSnow_draw(aWeather_Priv* priv, GAME* game){ + GAME_PLAY* play = (GAME_PLAY*) game; + PLAYER_ACTOR* player = get_player_actor_withoutCheck(play); + + xyz_t pos; + xyz_t screen_pos; + Mtx* work; + f32 scale; + f32 min; + + pos.x = priv->pos.x + (6.0f * sin_s(priv->work[0])); + pos.y = priv->pos.y; + pos.z = priv->pos.z + (6.0f * cos_s(priv->work[0])); + + Game_play_Projection_Trans(play, &pos, &screen_pos); + + if((0.0f <= screen_pos.x) && (screen_pos.x < SCREEN_WIDTH_F) && (0.0f <= screen_pos.y) && (screen_pos.y < SCREEN_HEIGHT_F)){ + + work = GRAPH_ALLOC_TYPE(game->graph, Mtx, 1); + + min = pos.y - (40.0f + player->actor_class.world.position.y); + + if(min < 0.0f){ + min = 0.0f; + } + + scale = min / 20.0f; + + if(scale > 1.0f){ + scale = 1.0f; + } + + OPEN_DISP(game->graph); + + suMtxMakeTS(work, 0.00195999979042f * scale, 0.00195999979042f * scale, 0.00195999979042f * scale, pos.x, pos.y, pos.z); + + gSPMatrix(NEXT_POLY_XLU_DISP, work, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + + gSPMatrix(NEXT_POLY_XLU_DISP, play->_208C,G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW); + + gSPDisplayList(NEXT_POLY_XLU_DISP, ef_yuki01_00_model); + + CLOSE_DISP( game->graph); + + } +} diff --git a/tools/yaz0 b/tools/yaz0 old mode 100644 new mode 100755 index 0298c7263db10bdb5240956aae3b3bdc349a872d..372c7633cee54dbf4b9a75471daa0372201ec0a9 GIT binary patch literal 42784 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