Port field_weather from Emerald

This commit is contained in:
PikalaxALT
2020-03-16 20:12:37 -04:00
parent f8915246a7
commit 6e00e82210
12 changed files with 1872 additions and 3402 deletions
-3016
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+295
View File
@@ -0,0 +1,295 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_807B0C4
sub_807B0C4: @ 807B0C4
push {lr}
adds r1, r0, 0
adds r3, r2, 0
ldr r0, _0807B0E8 @ =gWeather
movs r2, 0xDA
lsls r2, 3
adds r0, r2
ldrb r0, [r0]
cmp r0, 0xB
beq _0807B0F0
cmp r0, 0xB
bgt _0807B0EC
cmp r0, 0x5
bgt _0807B0FA
cmp r0, 0x3
blt _0807B0FA
b _0807B0F0
.align 2, 0
_0807B0E8: .4byte gWeather
_0807B0EC:
cmp r0, 0xD
bne _0807B0FA
_0807B0F0:
adds r0, r1, 0
movs r1, 0
movs r2, 0x3
bl sub_8045314
_0807B0FA:
pop {r0}
bx r0
thumb_func_end sub_807B0C4
thumb_func_start SetSav1Weather
SetSav1Weather: @ 807B100
push {r4,r5,lr}
ldr r4, _0807B12C @ =gSaveBlock1Ptr
ldr r1, [r4]
adds r1, 0x2E
ldrb r5, [r1]
lsls r0, 24
lsrs r0, 24
bl TranslateWeatherNum
ldr r1, [r4]
adds r1, 0x2E
strb r0, [r1]
ldr r0, [r4]
adds r0, 0x2E
ldrb r0, [r0]
adds r1, r5, 0
bl UpdateRainCounter
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0807B12C: .4byte gSaveBlock1Ptr
thumb_func_end SetSav1Weather
thumb_func_start sav1_get_weather_probably
sav1_get_weather_probably: @ 807B130
ldr r0, _0807B13C @ =gSaveBlock1Ptr
ldr r0, [r0]
adds r0, 0x2E
ldrb r0, [r0]
bx lr
.align 2, 0
_0807B13C: .4byte gSaveBlock1Ptr
thumb_func_end sav1_get_weather_probably
thumb_func_start SetSav1WeatherFromCurrMapHeader
SetSav1WeatherFromCurrMapHeader: @ 807B140
push {r4,r5,lr}
ldr r4, _0807B16C @ =gSaveBlock1Ptr
ldr r0, [r4]
adds r0, 0x2E
ldrb r5, [r0]
ldr r0, _0807B170 @ =gMapHeader
ldrb r0, [r0, 0x16]
bl TranslateWeatherNum
ldr r1, [r4]
adds r1, 0x2E
strb r0, [r1]
ldr r0, [r4]
adds r0, 0x2E
ldrb r0, [r0]
adds r1, r5, 0
bl UpdateRainCounter
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0807B16C: .4byte gSaveBlock1Ptr
_0807B170: .4byte gMapHeader
thumb_func_end SetSav1WeatherFromCurrMapHeader
thumb_func_start SetWeather
SetWeather: @ 807B174
push {lr}
bl SetSav1Weather
bl sav1_get_weather_probably
lsls r0, 24
lsrs r0, 24
bl SetNextWeather
pop {r0}
bx r0
thumb_func_end SetWeather
thumb_func_start sub_807B18C
sub_807B18C: @ 807B18C
push {lr}
bl SetSav1Weather
bl sav1_get_weather_probably
lsls r0, 24
lsrs r0, 24
bl SetCurrentAndNextWeather
pop {r0}
bx r0
thumb_func_end sub_807B18C
thumb_func_start DoCurrentWeather
DoCurrentWeather: @ 807B1A4
push {lr}
bl sav1_get_weather_probably
lsls r0, 24
lsrs r0, 24
bl SetNextWeather
pop {r0}
bx r0
thumb_func_end DoCurrentWeather
thumb_func_start sub_807B1B8
sub_807B1B8: @ 807B1B8
push {lr}
bl sav1_get_weather_probably
lsls r0, 24
lsrs r0, 24
bl SetCurrentAndNextWeather
pop {r0}
bx r0
thumb_func_end sub_807B1B8
thumb_func_start TranslateWeatherNum
TranslateWeatherNum: @ 807B1CC
push {lr}
lsls r0, 24
lsrs r0, 24
cmp r0, 0x15
bhi _0807B294
lsls r0, 2
ldr r1, _0807B1E0 @ =_0807B1E4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0807B1E0: .4byte _0807B1E4
.align 2, 0
_0807B1E4:
.4byte _0807B294
.4byte _0807B23C
.4byte _0807B240
.4byte _0807B244
.4byte _0807B248
.4byte _0807B24C
.4byte _0807B250
.4byte _0807B254
.4byte _0807B258
.4byte _0807B25C
.4byte _0807B260
.4byte _0807B264
.4byte _0807B268
.4byte _0807B26C
.4byte _0807B270
.4byte _0807B294
.4byte _0807B294
.4byte _0807B294
.4byte _0807B294
.4byte _0807B294
.4byte _0807B274
.4byte _0807B27C
_0807B23C:
movs r0, 0x1
b _0807B296
_0807B240:
movs r0, 0x2
b _0807B296
_0807B244:
movs r0, 0x3
b _0807B296
_0807B248:
movs r0, 0x4
b _0807B296
_0807B24C:
movs r0, 0x5
b _0807B296
_0807B250:
movs r0, 0x6
b _0807B296
_0807B254:
movs r0, 0x7
b _0807B296
_0807B258:
movs r0, 0x8
b _0807B296
_0807B25C:
movs r0, 0x9
b _0807B296
_0807B260:
movs r0, 0xA
b _0807B296
_0807B264:
movs r0, 0xB
b _0807B296
_0807B268:
movs r0, 0xC
b _0807B296
_0807B26C:
movs r0, 0xD
b _0807B296
_0807B270:
movs r0, 0xE
b _0807B296
_0807B274:
ldr r1, _0807B278 @ =gUnknown_83C65C0
b _0807B27E
.align 2, 0
_0807B278: .4byte gUnknown_83C65C0
_0807B27C:
ldr r1, _0807B28C @ =gUnknown_83C65C4
_0807B27E:
ldr r0, _0807B290 @ =gSaveBlock1Ptr
ldr r0, [r0]
adds r0, 0x2F
ldrb r0, [r0]
adds r0, r1
ldrb r0, [r0]
b _0807B296
.align 2, 0
_0807B28C: .4byte gUnknown_83C65C4
_0807B290: .4byte gSaveBlock1Ptr
_0807B294:
movs r0, 0
_0807B296:
pop {r1}
bx r1
thumb_func_end TranslateWeatherNum
thumb_func_start UpdateWeatherPerDay
UpdateWeatherPerDay: @ 807B29C
lsls r0, 16
ldr r1, _0807B2B8 @ =gSaveBlock1Ptr
ldr r2, [r1]
adds r2, 0x2F
lsrs r0, 16
ldrb r1, [r2]
adds r0, r1
lsls r0, 16
movs r1, 0xC0
lsls r1, 10
ands r1, r0
lsrs r1, 16
strb r1, [r2]
bx lr
.align 2, 0
_0807B2B8: .4byte gSaveBlock1Ptr
thumb_func_end UpdateWeatherPerDay
thumb_func_start UpdateRainCounter
UpdateRainCounter: @ 807B2BC
push {lr}
lsls r0, 24
lsls r1, 24
lsrs r2, r0, 24
cmp r0, r1
beq _0807B2D6
cmp r2, 0x3
beq _0807B2D0
cmp r2, 0x5
bne _0807B2D6
_0807B2D0:
movs r0, 0x28
bl IncrementGameStat
_0807B2D6:
pop {r0}
bx r0
thumb_func_end UpdateRainCounter
.align 2, 0 @ Don't pad with nop
+4 -4
View File
@@ -1728,7 +1728,7 @@ sub_8055864: @ 8055864
_080558D4:
lsls r0, r4, 24
lsrs r0, 24
bl sub_807AB74
bl ApplyWeatherGammaShiftToPal
adds r4, 0x1
cmp r4, 0xC
ble _080558D4
@@ -4644,7 +4644,7 @@ _08057050:
bl InitObjectEventPalettes
_08057056:
bl FieldEffectActiveListClear
bl sub_8079C08
bl StartWeather
bl sub_807B1B8
cmp r4, 0
bne _0805706A
@@ -5400,7 +5400,7 @@ _0805769C:
bl ResetCameraUpdateInfo
bl InstallCameraPanAheadCallback
bl FieldEffectActiveListClear
bl sub_8079C08
bl StartWeather
bl sub_807B1B8
bl SetUpFieldTasks
bl mapheader_run_script_with_tag_x5
@@ -5451,7 +5451,7 @@ _08057712:
ldr r2, _08057738 @ =0x3fffffff
movs r0, 0
movs r1, 0
bl FieldWeather_StartFadingOutCreditsMap
bl FadeSelectedPals
_0805772A:
ldrb r0, [r4]
adds r0, 0x1
-133
View File
@@ -7,139 +7,6 @@
.section .rodata
.align 2
gUnknown_83BFBE4:: @ 83BFBE4
.incbin "graphics/field_effects/unk_83BFBE4.bin.lz"
gUnknown_83C0408::
.incbin "graphics/field_effects/unk_83C0408.bin.lz"
gUnknown_83C0C00::
.incbin "graphics/field_effects/unk_83C0C00.bin.lz"
gUnknown_83C139C::
.incbin "graphics/field_effects/unk_83C139C.bin.lz"
gUnknown_83C1BB8::
.incbin "graphics/field_effects/unk_83C1BB8.bin.lz"
gUnknown_83C2380::
.incbin "graphics/field_effects/unk_83C2380.bin.lz"
gUnknown_83C2BA4::
.4byte gUnknown_83BFBE4
.4byte gUnknown_83C0408
.4byte gUnknown_83C0C00
.4byte gUnknown_83C139C
.4byte gUnknown_83C1BB8
.4byte gUnknown_83C2380
gUnknown_83C2BBC:: @ 83C2BBC
.4byte gUnknown_2037F34
gUnknown_83C2BC0:: @ 83C2BC0
.4byte sub_8079EC0
.4byte nullsub_45
.4byte sub_8079EC0
.4byte sub_8079EE4
.4byte Clouds_InitVars
.4byte Clouds_Main
.4byte Clouds_InitAll
.4byte Clouds_Finish
.4byte Weather2_InitVars
.4byte nullsub_48
.4byte Weather2_InitAll
.4byte sub_807B434
.4byte LightRain_InitVars
.4byte LightRain_Main
.4byte LightRain_InitAll
.4byte LightRain_Finish
.4byte Snow_InitVars
.4byte snowflakes_progress2
.4byte Snow_InitAll
.4byte Snow_Finish
.4byte sub_807C2E4
.4byte Rain_Main
.4byte sub_807C358
.4byte Rain_Finish
.4byte Fog1_InitVars
.4byte Fog1_Main
.4byte Fog1_InitAll
.4byte Fog1_Finish
.4byte Ash_InitVars
.4byte Ash_Main
.4byte Ash_InitAll
.4byte Ash_Finish
.4byte Sandstorm_InitVars
.4byte Sandstorm_Main
.4byte Sandstorm_InitAll
.4byte Sandstorm_Finish
.4byte Fog2_InitVars
.4byte Fog2_Main
.4byte Fog2_InitAll
.4byte Fog2_Finish
.4byte Fog1_InitVars
.4byte Fog1_Main
.4byte Fog1_InitAll
.4byte Fog1_Finish
.4byte Weather11_InitVars
.4byte nullsub_49
.4byte Weather11_InitAll
.4byte sub_807D8D0
.4byte Drought_InitVars
.4byte Drought_Main
.4byte Drought_InitAll
.4byte sub_807B6BC
.4byte sub_807C388
.4byte Rain_Main
.4byte sub_807C3F4
.4byte Rain_Finish
.4byte Bubbles_InitVars
.4byte Bubbles_Main
.4byte Bubbles_InitAll
.4byte Bubbles_Finish
gUnknown_83C2CB0:: @ 83C2CB0
.4byte sub_8079FFC
.4byte sub_807A084
.4byte nullsub_46
.4byte nullsub_46
gUnknown_83C2CC0:: @ 83C2CC0
.byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x02, 0x01, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01
gUnknown_83C2CE0:: @ 83C2CE0
.incbin "graphics/field_effects/unk_83C2CE0.gbapal"
gUnknown_83C2D00:: @ 83C2D00
.incbin "graphics/field_effects/unk_83C2D00.gbapal"
gUnknown_83C2D20:: @ 83C2D20
.incbin "graphics/field_effects/unk_83C2D20.gbapal"
gUnknown_83C2D40::
.incbin "graphics/field_effects/unk_83C2D40.4bpp"
gWeatherFog1Tiles:: @ 83C3540
.incbin "graphics/field_effects/unk_83C3540.4bpp"
gUnknown_83C3D40::
.incbin "graphics/field_effects/unk_83C3D40.4bpp"
gUnknown_83C4540::
.incbin "graphics/field_effects/unk_83C4540.4bpp"
gUnknown_83C4580::
.incbin "graphics/field_effects/unk_83C4580.4bpp"
gUnknown_83C45C0::
.incbin "graphics/field_effects/unk_83C45C0.4bpp"
gUnknown_83C55C0::
.incbin "graphics/field_effects/unk_83C55C0.4bpp"
gUnknown_83C5BC0::
.incbin "graphics/field_effects/unk_83C5BC0.4bpp"
gUnknown_83C65C0:: @ 83C65C0
.byte 0x02, 0x03, 0x05, 0x03
+1 -1
View File
@@ -17,7 +17,7 @@ bool8 IsWeatherNotFadingIn(void);
void SetWeatherScreenFadeOut(void);
void sub_807B070(void);
u8 GetCurrentWeather(void);
void FieldWeather_StartFadingOutCreditsMap(u8, u8, u32);
void delay(u8, u8, u32);
void UpdateSpritePaletteWithWeather(u8 palIdx);
void ResetPreservedPalettesInWeather(void);
void PreservePaletteInWeather(u8 palIdx);
+6
View File
@@ -0,0 +1,6 @@
#ifndef GUARD_FIELD_WEATHER_UTIL_H
#define GUARD_FIELD_WEATHER_UTIL_H
void SetWeather(u8 weather);
#endif //GUARD_FIELD_WEATHER_UTIL_H
+5
View File
@@ -114,7 +114,10 @@ SECTIONS {
src/battle_anim_status_effects.o(.text);
src/title_screen.o(.text);
src/reset_save_heap.o(.text);
src/field_weather.o(.text);
asm/field_weather.o(.text);
src/field_weather_util.o(.text);
asm/field_weather_util.o(.text);
asm/field_weather_effects.o(.text);
src/field_fadetransition.o(.text);
src/field_screen_effect.o(.text);
@@ -446,6 +449,8 @@ SECTIONS {
data/map_events.o(.rodata);
src/battle_anim_status_effects.o(.rodata);
src/title_screen.o(.rodata);
src/field_weather.o(.rodata);
src/field_weather_util.o(.rodata);
data/field_weather.o(.rodata);
src/field_screen_effect.o(.rodata);
src/battle_setup.o(.rodata);
+2 -2
View File
@@ -910,7 +910,7 @@ static s32 RollCredits(void)
case CREDITSSCRCMD_MAPNEXT:
sCreditsMgr->mainseqno = CREDITSSCENE_MAPNEXT_DESTROYWINDOW;
sCreditsMgr->whichMon = sCreditsScript[sCreditsMgr->scrcmdidx].param;
FieldWeather_StartFadingOutCreditsMap(1, 0, 0x3FFFFFFF);
FadeSelectedPals(1, 0, 0x3FFFFFFF);
break;
case CREDITSSCRCMD_MAP:
sCreditsMgr->mainseqno = CREDITSSCENE_MAP_LOADMAP_CREATESPRITES;
@@ -1305,7 +1305,7 @@ static s32 RollCredits(void)
"\tldr r2, _080F3E0C @ =0x3fffffff\n"
"\tmovs r0, 0x1\n"
"\tmovs r1, 0\n"
"\tbl FieldWeather_StartFadingOutCreditsMap\n"
"\tbl FadeSelectedPals\n"
"\tb _080F3E94\n"
"\t.align 2, 0\n"
"_080F3E04: .4byte sCreditsMgr\n"
+1320
View File
File diff suppressed because it is too large Load Diff
+12
View File
@@ -0,0 +1,12 @@
#include "global.h"
const u16 gUnknown_83C2D00[] = INCBIN_U16("graphics/field_effects/unk_83C2D00.gbapal");
const u16 gUnknown_83C2D20[] = INCBIN_U16("graphics/field_effects/unk_83C2D20.gbapal");
const u16 gUnknown_83C2D40[] = INCBIN_U16("graphics/field_effects/unk_83C2D40.4bpp");
const u16 gWeatherFog1Tiles[] = INCBIN_U16("graphics/field_effects/unk_83C3540.4bpp");
const u16 gUnknown_83C3D40[] = INCBIN_U16("graphics/field_effects/unk_83C3D40.4bpp");
const u16 gUnknown_83C4540[] = INCBIN_U16("graphics/field_effects/unk_83C4540.4bpp");
const u16 gUnknown_83C4580[] = INCBIN_U16("graphics/field_effects/unk_83C4580.4bpp");
const u16 gUnknown_83C45C0[] = INCBIN_U16("graphics/field_effects/unk_83C45C0.4bpp");
const u16 gUnknown_83C55C0[] = INCBIN_U16("graphics/field_effects/unk_83C55C0.4bpp");
const u16 gUnknown_83C5BC0[] = INCBIN_U16("graphics/field_effects/unk_83C5BC0.4bpp");
+1 -20
View File
@@ -117,27 +117,8 @@ gPlayerAvatar: @ 2037078
.include "src/battle_anim_mons.o"
.align 2
.include "src/title_screen.o"
.align 2
@ .include "src/field_weather.o"
gUnknown_2037F34: @ 2037F34
.space 0x200
gUnknown_2038134: @ 2038134
.space 0x260
gUnknown_2038394: @ 2038394
.space 0x2F0
gUnknown_2038684: @ 2038684
.space 0x20
gUnknown_20386A4: @ 20386A4
.space 0x4
gUnknown_20386A8: @ 20386A8
.space 0x4
.include "src/field_weather.o"
.align 2
.include "src/battle_setup.o"
.align 2