From 6e14c772b2f2a4c6321c0f600ffd77252ec2021e Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Wed, 1 Apr 2020 23:18:32 +1000 Subject: [PATCH] Decompile snowConfigure --- src/game/game_01d770.c | 10 +++++----- src/game/game_131060.c | 33 ++++++++++++--------------------- src/include/constants.h | 3 +++ src/include/game/game_131060.h | 8 ++++---- src/include/types.h | 2 +- 5 files changed, 25 insertions(+), 31 deletions(-) diff --git a/src/game/game_01d770.c b/src/game/game_01d770.c index 7ff86ec82..e5181c8f9 100644 --- a/src/game/game_01d770.c +++ b/src/game/game_01d770.c @@ -24,12 +24,12 @@ void weatherTick(void) func0000db30("windspeed", &var80062950); if (var80062954) { - switch (g_WeatherData->unk20) { - case 0: - func0f131a30(g_WeatherData); + switch (g_WeatherData->type) { + case WEATHERTYPE_RAIN: + rainTick(g_WeatherData); break; - case 1: - func0f1321d0(g_WeatherData); + case WEATHERTYPE_SNOW: + snowTick(g_WeatherData); break; } } diff --git a/src/game/game_131060.c b/src/game/game_131060.c index 962a7a8cd..9dc0e8481 100644 --- a/src/game/game_131060.c +++ b/src/game/game_131060.c @@ -526,7 +526,7 @@ glabel func0f131678 ); GLOBAL_ASM( -glabel func0f13171c +glabel weatherSetIntensity .late_rodata glabel var7f1b56d0 .word 0x3a83126f @@ -756,7 +756,7 @@ glabel var7f1b56d8 ); GLOBAL_ASM( -glabel func0f131a30 +glabel rainTick .late_rodata glabel var7f1b56dc .word 0x46fffe00 @@ -1300,7 +1300,7 @@ glabel var7f1b56f4 ); GLOBAL_ASM( -glabel func0f1321d0 +glabel snowTick .late_rodata glabel var7f1b56f8 .word 0x3fc90fdb @@ -1885,27 +1885,18 @@ glabel var7f1b5734 void rainConfigure(u32 intensity) { if (g_WeatherData) { - g_WeatherData->unk20 = 0; - func0f13171c(intensity); + g_WeatherData->type = WEATHERTYPE_RAIN; + weatherSetIntensity(intensity); } } -GLOBAL_ASM( -glabel snowConfigure -/* f1329ec: 3c028008 */ lui $v0,%hi(g_WeatherData) -/* f1329f0: 8c42f0c0 */ lw $v0,%lo(g_WeatherData)($v0) -/* f1329f4: 27bdffe8 */ addiu $sp,$sp,-24 -/* f1329f8: afbf0014 */ sw $ra,0x14($sp) -/* f1329fc: 10400003 */ beqz $v0,.L0f132a0c -/* f132a00: 240e0001 */ addiu $t6,$zero,0x1 -/* f132a04: 0fc4c5c7 */ jal func0f13171c -/* f132a08: ac4e0020 */ sw $t6,0x20($v0) -.L0f132a0c: -/* f132a0c: 8fbf0014 */ lw $ra,0x14($sp) -/* f132a10: 27bd0018 */ addiu $sp,$sp,0x18 -/* f132a14: 03e00008 */ jr $ra -/* f132a18: 00000000 */ sll $zero,$zero,0x0 -); +void snowConfigure(u32 intensity) +{ + if (g_WeatherData) { + g_WeatherData->type = WEATHERTYPE_SNOW; + weatherSetIntensity(intensity); + } +} GLOBAL_ASM( glabel func0f132a1c diff --git a/src/include/constants.h b/src/include/constants.h index 65dddb541..44c03e2a8 100644 --- a/src/include/constants.h +++ b/src/include/constants.h @@ -2191,6 +2191,9 @@ #define WEAPONFLAG_DETERMINER_S_SOME 0x10000000 #define WEAPONFLAG_DETERMINER_F_SOME 0x20000000 +#define WEATHERTYPE_RAIN 0 +#define WEATHERTYPE_SNOW 1 + // Heads and bodies #define HEAD_RANDOM -1 #define BODY_DJBOND 0x00 diff --git a/src/include/game/game_131060.h b/src/include/game/game_131060.h index 80a2b710e..d1c4c36b5 100644 --- a/src/include/game/game_131060.h +++ b/src/include/game/game_131060.h @@ -8,11 +8,11 @@ u32 func0f1312d8(void); u32 func0f131334(void); u32 func0f131610(void); u32 func0f131678(void); -void func0f13171c(u32 intensity); -void func0f131a30(struct weatherdata *weather); -void func0f1321d0(struct weatherdata *weather); +void weatherSetIntensity(u32 intensity); +void rainTick(struct weatherdata *weather); +void snowTick(struct weatherdata *weather); void rainConfigure(u32 intensity); -void snowConfigure(u32 arg0); +void snowConfigure(u32 intensity); u32 func0f132a1c(void); u32 func0f132e28(void); u32 func0f1346b0(void); diff --git a/src/include/types.h b/src/include/types.h index e3ccdaaab..45189c96a 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -5789,7 +5789,7 @@ struct weatherdata { u32 unk14; u32 unk18; u32 unk1c; - u32 unk20; + u32 type; }; #endif