diff options
-rw-r--r-- | asm/clock.s | 176 | ||||
-rw-r--r-- | asm/coord_event_weather.s | 158 | ||||
-rw-r--r-- | asm/field_tasks.s (renamed from asm/rom_806936C.s) | 420 | ||||
-rw-r--r-- | asm/rom_8065394.s | 2 | ||||
-rw-r--r-- | asm/weather.s | 38 | ||||
-rw-r--r-- | data/data_83760F0.s | 40 | ||||
-rw-r--r-- | include/asm.inc.h | 6 | ||||
-rw-r--r-- | include/weather.h | 2 | ||||
-rw-r--r-- | ld_script.txt | 4 | ||||
-rw-r--r-- | src/rom4.c | 6 | ||||
-rw-r--r-- | src/scrcmd.c | 4 |
11 files changed, 438 insertions, 418 deletions
diff --git a/asm/clock.s b/asm/clock.s new file mode 100644 index 000000000..5cf6f537e --- /dev/null +++ b/asm/clock.s @@ -0,0 +1,176 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_806A328 +sub_806A328: @ 806A328 + push {lr} + ldr r0, _0806A350 @ =0x00000835 + bl FlagSet + bl RtcCalcLocalTime + ldr r2, _0806A354 @ =gSaveBlock2 + adds r2, 0xA0 + ldr r3, _0806A358 @ =gLocalTime + ldr r0, [r3] + ldr r1, [r3, 0x4] + str r0, [r2] + str r1, [r2, 0x4] + ldr r0, _0806A35C @ =0x00004040 + ldrh r1, [r3] + bl VarSet + pop {r0} + bx r0 + .align 2, 0 +_0806A350: .4byte 0x00000835 +_0806A354: .4byte gSaveBlock2 +_0806A358: .4byte gLocalTime +_0806A35C: .4byte 0x00004040 + thumb_func_end sub_806A328 + + thumb_func_start DoTimeBasedEvents +DoTimeBasedEvents: @ 806A360 + push {r4,lr} + ldr r0, _0806A388 @ =0x00000835 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _0806A380 + bl RtcCalcLocalTime + ldr r4, _0806A38C @ =gLocalTime + adds r0, r4, 0 + bl sub_806A390 + adds r0, r4, 0 + bl sub_806A3F4 +_0806A380: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0806A388: .4byte 0x00000835 +_0806A38C: .4byte gLocalTime + thumb_func_end DoTimeBasedEvents + + thumb_func_start sub_806A390 +sub_806A390: @ 806A390 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r0, _0806A3F0 @ =0x00004040 + bl GetVarPointer + adds r6, r0, 0 + ldrh r0, [r6] + movs r2, 0 + ldrsh r1, [r5, r2] + cmp r0, r1 + beq _0806A3EA + cmp r0, r1 + bgt _0806A3EA + ldrh r4, [r5] + subs r4, r0 + lsls r4, 16 + lsrs r4, 16 + bl sub_80690B4 + adds r0, r4, 0 + bl sub_80FA220 + adds r0, r4, 0 + bl sub_80BE8C4 + adds r0, r4, 0 + bl sub_8080834 + adds r0, r4, 0 + bl UpdatePartyPokerusTime + adds r0, r4, 0 + bl sub_810D2F4 + adds r0, r4, 0 + bl UpdateBirchState + adds r0, r4, 0 + bl sub_810F618 + adds r0, r4, 0 + bl sub_8145AA4 + ldrh r0, [r5] + strh r0, [r6] +_0806A3EA: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0806A3F0: .4byte 0x00004040 + thumb_func_end sub_806A390 + + thumb_func_start sub_806A3F4 +sub_806A3F4: @ 806A3F4 + push {r4-r6,lr} + sub sp, 0x8 + adds r5, r0, 0 + mov r4, sp + ldr r6, _0806A448 @ =gSaveBlock2 + 0xA0 + mov r0, sp + adds r1, r6, 0 + adds r2, r5, 0 + bl CalcTimeDifference + mov r0, sp + movs r2, 0 + ldrsh r1, [r0, r2] + lsls r0, r1, 1 + adds r0, r1 + lsls r1, r0, 4 + subs r1, r0 + lsls r1, 5 + movs r2, 0x2 + ldrsb r2, [r4, r2] + lsls r0, r2, 4 + subs r0, r2 + lsls r0, 2 + adds r1, r0 + movs r0, 0x3 + ldrsb r0, [r4, r0] + adds r0, r1, r0 + cmp r0, 0 + beq _0806A43E + cmp r0, 0 + blt _0806A43E + bl BerryTreeTimeUpdate + ldr r0, [r5] + ldr r1, [r5, 0x4] + str r0, [r6] + str r1, [r6, 0x4] +_0806A43E: + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0806A448: .4byte gSaveBlock2 + 0xA0 + thumb_func_end sub_806A3F4 + + thumb_func_start sub_806A44C +sub_806A44C: @ 806A44C + push {lr} + bl sub_806A328 + ldr r0, _0806A45C @ =c2_exit_to_overworld_1_continue_scripts_restart_music + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_0806A45C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music + thumb_func_end sub_806A44C + + thumb_func_start sub_806A460 +sub_806A460: @ 806A460 + push {lr} + ldr r0, _0806A474 @ =Cb2_StartWallClock + bl SetMainCallback2 + ldr r1, _0806A478 @ =gMain + ldr r0, _0806A47C @ =sub_806A44C + str r0, [r1, 0x8] + pop {r0} + bx r0 + .align 2, 0 +_0806A474: .4byte Cb2_StartWallClock +_0806A478: .4byte gMain +_0806A47C: .4byte sub_806A44C + thumb_func_end sub_806A460 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/coord_event_weather.s b/asm/coord_event_weather.s new file mode 100644 index 000000000..b43311848 --- /dev/null +++ b/asm/coord_event_weather.s @@ -0,0 +1,158 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start CoordEventWeather_Indoor +CoordEventWeather_Indoor: @ 806936C + push {lr} + movs r0, 0x1 + bl SetWeather + pop {r0} + bx r0 + thumb_func_end CoordEventWeather_Indoor + + thumb_func_start CoordEventWeather_Sunny +CoordEventWeather_Sunny: @ 8069378 + push {lr} + movs r0, 0x2 + bl SetWeather + pop {r0} + bx r0 + thumb_func_end CoordEventWeather_Sunny + + thumb_func_start CoordEventWeather_Rain +CoordEventWeather_Rain: @ 8069384 + push {lr} + movs r0, 0x3 + bl SetWeather + pop {r0} + bx r0 + thumb_func_end CoordEventWeather_Rain + + thumb_func_start CoordEventWeather_Snowflakes +CoordEventWeather_Snowflakes: @ 8069390 + push {lr} + movs r0, 0x4 + bl SetWeather + pop {r0} + bx r0 + thumb_func_end CoordEventWeather_Snowflakes + + thumb_func_start CoordEventWeather_Thunderstorm +CoordEventWeather_Thunderstorm: @ 806939C + push {lr} + movs r0, 0x5 + bl SetWeather + pop {r0} + bx r0 + thumb_func_end CoordEventWeather_Thunderstorm + + thumb_func_start CoordEventWeather_Fog +CoordEventWeather_Fog: @ 80693A8 + push {lr} + movs r0, 0x6 + bl SetWeather + pop {r0} + bx r0 + thumb_func_end CoordEventWeather_Fog + + thumb_func_start CoordEventWeather_DiagonalFog +CoordEventWeather_DiagonalFog: @ 80693B4 + push {lr} + movs r0, 0x9 + bl SetWeather + pop {r0} + bx r0 + thumb_func_end CoordEventWeather_DiagonalFog + + thumb_func_start CoordEventWeather_Snow +CoordEventWeather_Snow: @ 80693C0 + push {lr} + movs r0, 0x7 + bl SetWeather + pop {r0} + bx r0 + thumb_func_end CoordEventWeather_Snow + + thumb_func_start CoordEventWeather_Sandstorm +CoordEventWeather_Sandstorm: @ 80693CC + push {lr} + movs r0, 0x8 + bl SetWeather + pop {r0} + bx r0 + thumb_func_end CoordEventWeather_Sandstorm + + thumb_func_start CoordEventWeather_Cloudy +CoordEventWeather_Cloudy: @ 80693D8 + push {lr} + movs r0, 0xB + bl SetWeather + pop {r0} + bx r0 + thumb_func_end CoordEventWeather_Cloudy + + thumb_func_start CoordEventWeather_Drought +CoordEventWeather_Drought: @ 80693E4 + push {lr} + movs r0, 0xC + bl SetWeather + pop {r0} + bx r0 + thumb_func_end CoordEventWeather_Drought + + thumb_func_start CoordEventWeather_UnderwaterFog +CoordEventWeather_UnderwaterFog: @ 80693F0 + push {lr} + movs r0, 0x14 + bl SetWeather + pop {r0} + bx r0 + thumb_func_end CoordEventWeather_UnderwaterFog + + thumb_func_start CoordEventWeather_UnderwaterBubbles +CoordEventWeather_UnderwaterBubbles: @ 80693FC + push {lr} + movs r0, 0x15 + bl SetWeather + pop {r0} + bx r0 + thumb_func_end CoordEventWeather_UnderwaterBubbles + + thumb_func_start DoCoordEventWeather +DoCoordEventWeather: @ 8069408 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + movs r2, 0 + ldr r3, _08069428 @ =gCoordEventWeatherFuncs +_08069412: + lsls r1, r2, 3 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r4 + bne _0806942C + adds r0, r3, 0x4 + adds r0, r1, r0 + ldr r0, [r0] + bl _call_via_r0 + b _08069436 + .align 2, 0 +_08069428: .4byte gCoordEventWeatherFuncs +_0806942C: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xC + bls _08069412 +_08069436: + pop {r4} + pop {r0} + bx r0 + thumb_func_end DoCoordEventWeather + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom_806936C.s b/asm/field_tasks.s index 47a91f0a4..738b02f3e 100644 --- a/asm/rom_806936C.s +++ b/asm/field_tasks.s @@ -6,157 +6,8 @@ .text - thumb_func_start sub_806936C -sub_806936C: @ 806936C - push {lr} - movs r0, 0x1 - bl sub_808070C - pop {r0} - bx r0 - thumb_func_end sub_806936C - - thumb_func_start sub_8069378 -sub_8069378: @ 8069378 - push {lr} - movs r0, 0x2 - bl sub_808070C - pop {r0} - bx r0 - thumb_func_end sub_8069378 - - thumb_func_start sub_8069384 -sub_8069384: @ 8069384 - push {lr} - movs r0, 0x3 - bl sub_808070C - pop {r0} - bx r0 - thumb_func_end sub_8069384 - - thumb_func_start sub_8069390 -sub_8069390: @ 8069390 - push {lr} - movs r0, 0x4 - bl sub_808070C - pop {r0} - bx r0 - thumb_func_end sub_8069390 - - thumb_func_start sub_806939C -sub_806939C: @ 806939C - push {lr} - movs r0, 0x5 - bl sub_808070C - pop {r0} - bx r0 - thumb_func_end sub_806939C - - thumb_func_start sub_80693A8 -sub_80693A8: @ 80693A8 - push {lr} - movs r0, 0x6 - bl sub_808070C - pop {r0} - bx r0 - thumb_func_end sub_80693A8 - - thumb_func_start sub_80693B4 -sub_80693B4: @ 80693B4 - push {lr} - movs r0, 0x9 - bl sub_808070C - pop {r0} - bx r0 - thumb_func_end sub_80693B4 - - thumb_func_start sub_80693C0 -sub_80693C0: @ 80693C0 - push {lr} - movs r0, 0x7 - bl sub_808070C - pop {r0} - bx r0 - thumb_func_end sub_80693C0 - - thumb_func_start sub_80693CC -sub_80693CC: @ 80693CC - push {lr} - movs r0, 0x8 - bl sub_808070C - pop {r0} - bx r0 - thumb_func_end sub_80693CC - - thumb_func_start sub_80693D8 -sub_80693D8: @ 80693D8 - push {lr} - movs r0, 0xB - bl sub_808070C - pop {r0} - bx r0 - thumb_func_end sub_80693D8 - - thumb_func_start sub_80693E4 -sub_80693E4: @ 80693E4 - push {lr} - movs r0, 0xC - bl sub_808070C - pop {r0} - bx r0 - thumb_func_end sub_80693E4 - - thumb_func_start sub_80693F0 -sub_80693F0: @ 80693F0 - push {lr} - movs r0, 0x14 - bl sub_808070C - pop {r0} - bx r0 - thumb_func_end sub_80693F0 - - thumb_func_start sub_80693FC -sub_80693FC: @ 80693FC - push {lr} - movs r0, 0x15 - bl sub_808070C - pop {r0} - bx r0 - thumb_func_end sub_80693FC - - thumb_func_start sub_8069408 -sub_8069408: @ 8069408 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r2, 0 - ldr r3, _08069428 @ =gUnknown_083762FC -_08069412: - lsls r1, r2, 3 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r4 - bne _0806942C - adds r0, r3, 0x4 - adds r0, r1, r0 - ldr r0, [r0] - bl _call_via_r0 - b _08069436 - .align 2, 0 -_08069428: .4byte gUnknown_083762FC -_0806942C: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xC - bls _08069412 -_08069436: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8069408 - - thumb_func_start task_per_step_callback_manager -task_per_step_callback_manager: @ 806943C + thumb_func_start Task_RunPerStepCallback +Task_RunPerStepCallback: @ 806943C push {lr} lsls r0, 24 lsrs r0, 24 @@ -177,10 +28,10 @@ task_per_step_callback_manager: @ 806943C .align 2, 0 _08069460: .4byte gTasks _08069464: .4byte gUnknown_08376364 - thumb_func_end task_per_step_callback_manager + thumb_func_end Task_RunPerStepCallback - thumb_func_start sub_8069468 -sub_8069468: @ 8069468 + thumb_func_start RunTimeBasedEvents +RunTimeBasedEvents: @ 8069468 push {r4,lr} adds r4, r0, 0 movs r1, 0 @@ -222,10 +73,10 @@ _080694AC: bx r0 .align 2, 0 _080694B4: .4byte gMain - thumb_func_end sub_8069468 + thumb_func_end RunTimeBasedEvents - thumb_func_start sub_80694B8 -sub_80694B8: @ 80694B8 + thumb_func_start Task_RunTimeBasedEvents +Task_RunTimeBasedEvents: @ 80694B8 push {r4,lr} lsls r0, 24 lsrs r0, 24 @@ -239,7 +90,7 @@ sub_80694B8: @ 80694B8 cmp r0, 0 bne _080694E0 adds r0, r4, 0 - bl sub_8069468 + bl RunTimeBasedEvents adds r0, r4, 0x2 adds r1, r4, 0x4 bl sub_80540D0 @@ -249,12 +100,12 @@ _080694E0: bx r0 .align 2, 0 _080694E8: .4byte gTasks + 0x8 - thumb_func_end sub_80694B8 + thumb_func_end Task_RunTimeBasedEvents - thumb_func_start overworld_ensure_per_step_coros_running -overworld_ensure_per_step_coros_running: @ 80694EC + thumb_func_start SetUpFieldTasks +SetUpFieldTasks: @ 80694EC push {r4,r5,lr} - ldr r5, _08069548 @ =task_per_step_callback_manager + ldr r5, _08069548 @ =Task_RunPerStepCallback adds r0, r5, 0 bl FuncIsActiveTask lsls r0, 24 @@ -273,7 +124,7 @@ overworld_ensure_per_step_coros_running: @ 80694EC adds r1, r2 strh r4, [r1, 0x8] _08069516: - ldr r4, _08069550 @ =sub_806A1E8 + ldr r4, _08069550 @ =Task_MuddySlope adds r0, r4, 0 bl FuncIsActiveTask lsls r0, 24 @@ -283,7 +134,7 @@ _08069516: movs r1, 0x50 bl CreateTask _0806952C: - ldr r4, _08069554 @ =sub_80694B8 + ldr r4, _08069554 @ =Task_RunTimeBasedEvents adds r0, r4, 0 bl FuncIsActiveTask lsls r0, 24 @@ -297,18 +148,18 @@ _08069542: pop {r0} bx r0 .align 2, 0 -_08069548: .4byte task_per_step_callback_manager +_08069548: .4byte Task_RunPerStepCallback _0806954C: .4byte gTasks -_08069550: .4byte sub_806A1E8 -_08069554: .4byte sub_80694B8 - thumb_func_end overworld_ensure_per_step_coros_running +_08069550: .4byte Task_MuddySlope +_08069554: .4byte Task_RunTimeBasedEvents + thumb_func_end SetUpFieldTasks - thumb_func_start activate_per_step_callback -activate_per_step_callback: @ 8069558 + thumb_func_start ActivatePerStepCallback +ActivatePerStepCallback: @ 8069558 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r0, _08069590 @ =task_per_step_callback_manager + ldr r0, _08069590 @ =Task_RunPerStepCallback bl FindTaskIdByFunc lsls r0, 24 lsrs r1, r0, 24 @@ -333,7 +184,7 @@ _0806957C: strh r0, [r1] b _0806959A .align 2, 0 -_08069590: .4byte task_per_step_callback_manager +_08069590: .4byte Task_RunPerStepCallback _08069594: .4byte gTasks + 0x8 _08069598: strh r4, [r1] @@ -341,16 +192,16 @@ _0806959A: pop {r4} pop {r0} bx r0 - thumb_func_end activate_per_step_callback + thumb_func_end ActivatePerStepCallback - thumb_func_start wild_encounter_reset_coro_args -wild_encounter_reset_coro_args: @ 80695A0 + thumb_func_start ResetFieldTasksArgs +ResetFieldTasksArgs: @ 80695A0 push {lr} - ldr r0, _080695D0 @ =task_per_step_callback_manager + ldr r0, _080695D0 @ =Task_RunPerStepCallback bl FindTaskIdByFunc lsls r0, 24 lsrs r1, r0, 24 - ldr r0, _080695D4 @ =sub_80694B8 + ldr r0, _080695D4 @ =Task_RunTimeBasedEvents bl FindTaskIdByFunc lsls r0, 24 lsrs r1, r0, 24 @@ -368,15 +219,15 @@ _080695CA: pop {r0} bx r0 .align 2, 0 -_080695D0: .4byte task_per_step_callback_manager -_080695D4: .4byte sub_80694B8 +_080695D0: .4byte Task_RunPerStepCallback +_080695D4: .4byte Task_RunTimeBasedEvents _080695D8: .4byte gTasks + 0x8 - thumb_func_end wild_encounter_reset_coro_args + thumb_func_end ResetFieldTasksArgs - thumb_func_start nullsub_51 -nullsub_51: @ 80695DC + thumb_func_start DummyPerStepCallback +DummyPerStepCallback: @ 80695DC bx lr - thumb_func_end nullsub_51 + thumb_func_end DummyPerStepCallback thumb_func_start sub_80695E0 sub_80695E0: @ 80695E0 @@ -721,8 +572,8 @@ _08069854: bx r1 thumb_func_end sub_80697C8 - thumb_func_start sub_8069864 -sub_8069864: @ 8069864 + thumb_func_start PerStepCallback_8069864 +PerStepCallback_8069864: @ 8069864 push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 @@ -905,7 +756,7 @@ _080699CE: pop {r4-r7} pop {r0} bx r0 - thumb_func_end sub_8069864 + thumb_func_end PerStepCallback_8069864 thumb_func_start sub_80699D8 sub_80699D8: @ 80699D8 @@ -1011,8 +862,8 @@ _08069A96: _08069A9C: .4byte 0x00000256 thumb_func_end sub_8069A3C - thumb_func_start sub_8069AA0 -sub_8069AA0: @ 8069AA0 + thumb_func_start PerStepCallback_8069AA0 +PerStepCallback_8069AA0: @ 8069AA0 push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -1268,7 +1119,7 @@ _08069CA6: pop {r4-r7} pop {r0} bx r0 - thumb_func_end sub_8069AA0 + thumb_func_end PerStepCallback_8069AA0 thumb_func_start sub_8069CB8 sub_8069CB8: @ 8069CB8 @@ -1428,8 +1279,8 @@ _08069DCC: .4byte gMapHeader _08069DD0: .4byte 0x0000020e thumb_func_end sub_8069D78 - thumb_func_start sub_8069DD4 -sub_8069DD4: @ 8069DD4 + thumb_func_start PerStepCallback_8069DD4 +PerStepCallback_8069DD4: @ 8069DD4 push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 @@ -1628,10 +1479,10 @@ _08069F56: bx r0 .align 2, 0 _08069F60: .4byte 0x00000206 - thumb_func_end sub_8069DD4 + thumb_func_end PerStepCallback_8069DD4 - thumb_func_start sub_8069F64 -sub_8069F64: @ 8069F64 + thumb_func_start PerStepCallback_8069F64 +PerStepCallback_8069F64: @ 8069F64 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 @@ -1733,7 +1584,7 @@ _0806A02A: _0806A034: .4byte 0x00000206 _0806A038: .4byte 0x00004048 _0806A03C: .4byte 0x0000270e - thumb_func_end sub_8069F64 + thumb_func_end PerStepCallback_8069F64 thumb_func_start sub_806A040 sub_806A040: @ 806A040 @@ -1765,8 +1616,8 @@ _0806A074: .4byte 0x0000022f _0806A078: .4byte 0x00000237 thumb_func_end sub_806A040 - thumb_func_start sub_806A07C -sub_806A07C: @ 806A07C + thumb_func_start PerStepCallback_806A07C +PerStepCallback_806A07C: @ 806A07C push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 @@ -1898,7 +1749,7 @@ _0806A182: pop {r4-r7} pop {r0} bx r0 - thumb_func_end sub_806A07C + thumb_func_end PerStepCallback_806A07C thumb_func_start sub_806A18C sub_806A18C: @ 806A18C @@ -1950,8 +1801,8 @@ _0806A1BC: _0806A1E4: .4byte gUnknown_08376418 thumb_func_end sub_806A18C - thumb_func_start sub_806A1E8 -sub_806A1E8: @ 806A1E8 + thumb_func_start Task_MuddySlope +Task_MuddySlope: @ 806A1E8 push {r4-r7,lr} mov r7, r8 push {r7} @@ -2116,173 +1967,6 @@ _0806A312: pop {r4-r7} pop {r0} bx r0 - thumb_func_end sub_806A1E8 - - thumb_func_start sub_806A328 -sub_806A328: @ 806A328 - push {lr} - ldr r0, _0806A350 @ =0x00000835 - bl FlagSet - bl RtcCalcLocalTime - ldr r2, _0806A354 @ =gSaveBlock2 - adds r2, 0xA0 - ldr r3, _0806A358 @ =gLocalTime - ldr r0, [r3] - ldr r1, [r3, 0x4] - str r0, [r2] - str r1, [r2, 0x4] - ldr r0, _0806A35C @ =0x00004040 - ldrh r1, [r3] - bl VarSet - pop {r0} - bx r0 - .align 2, 0 -_0806A350: .4byte 0x00000835 -_0806A354: .4byte gSaveBlock2 -_0806A358: .4byte gLocalTime -_0806A35C: .4byte 0x00004040 - thumb_func_end sub_806A328 - - thumb_func_start DoTimeBasedEvents -DoTimeBasedEvents: @ 806A360 - push {r4,lr} - ldr r0, _0806A388 @ =0x00000835 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0806A380 - bl RtcCalcLocalTime - ldr r4, _0806A38C @ =gLocalTime - adds r0, r4, 0 - bl sub_806A390 - adds r0, r4, 0 - bl sub_806A3F4 -_0806A380: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0806A388: .4byte 0x00000835 -_0806A38C: .4byte gLocalTime - thumb_func_end DoTimeBasedEvents - - thumb_func_start sub_806A390 -sub_806A390: @ 806A390 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r0, _0806A3F0 @ =0x00004040 - bl GetVarPointer - adds r6, r0, 0 - ldrh r0, [r6] - movs r2, 0 - ldrsh r1, [r5, r2] - cmp r0, r1 - beq _0806A3EA - cmp r0, r1 - bgt _0806A3EA - ldrh r4, [r5] - subs r4, r0 - lsls r4, 16 - lsrs r4, 16 - bl sub_80690B4 - adds r0, r4, 0 - bl sub_80FA220 - adds r0, r4, 0 - bl sub_80BE8C4 - adds r0, r4, 0 - bl sub_8080834 - adds r0, r4, 0 - bl UpdatePartyPokerusTime - adds r0, r4, 0 - bl sub_810D2F4 - adds r0, r4, 0 - bl UpdateBirchState - adds r0, r4, 0 - bl sub_810F618 - adds r0, r4, 0 - bl sub_8145AA4 - ldrh r0, [r5] - strh r0, [r6] -_0806A3EA: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0806A3F0: .4byte 0x00004040 - thumb_func_end sub_806A390 - - thumb_func_start sub_806A3F4 -sub_806A3F4: @ 806A3F4 - push {r4-r6,lr} - sub sp, 0x8 - adds r5, r0, 0 - mov r4, sp - ldr r6, _0806A448 @ =gSaveBlock2 + 0xA0 - mov r0, sp - adds r1, r6, 0 - adds r2, r5, 0 - bl CalcTimeDifference - mov r0, sp - movs r2, 0 - ldrsh r1, [r0, r2] - lsls r0, r1, 1 - adds r0, r1 - lsls r1, r0, 4 - subs r1, r0 - lsls r1, 5 - movs r2, 0x2 - ldrsb r2, [r4, r2] - lsls r0, r2, 4 - subs r0, r2 - lsls r0, 2 - adds r1, r0 - movs r0, 0x3 - ldrsb r0, [r4, r0] - adds r0, r1, r0 - cmp r0, 0 - beq _0806A43E - cmp r0, 0 - blt _0806A43E - bl BerryTreeTimeUpdate - ldr r0, [r5] - ldr r1, [r5, 0x4] - str r0, [r6] - str r1, [r6, 0x4] -_0806A43E: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0806A448: .4byte gSaveBlock2 + 0xA0 - thumb_func_end sub_806A3F4 - - thumb_func_start sub_806A44C -sub_806A44C: @ 806A44C - push {lr} - bl sub_806A328 - ldr r0, _0806A45C @ =c2_exit_to_overworld_1_continue_scripts_restart_music - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_0806A45C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music - thumb_func_end sub_806A44C - - thumb_func_start sub_806A460 -sub_806A460: @ 806A460 - push {lr} - ldr r0, _0806A474 @ =Cb2_StartWallClock - bl SetMainCallback2 - ldr r1, _0806A478 @ =gMain - ldr r0, _0806A47C @ =sub_806A44C - str r0, [r1, 0x8] - pop {r0} - bx r0 - .align 2, 0 -_0806A474: .4byte Cb2_StartWallClock -_0806A478: .4byte gMain -_0806A47C: .4byte sub_806A44C - thumb_func_end sub_806A460 + thumb_func_end Task_MuddySlope .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom_8065394.s b/asm/rom_8065394.s index 7c5ba6a63..121592be8 100644 --- a/asm/rom_8065394.s +++ b/asm/rom_8065394.s @@ -1914,7 +1914,7 @@ trigger_activate: @ 8068D7C cmp r1, 0 bne _08068D92 ldrb r0, [r4, 0x6] - bl sub_8069408 + bl DoCoordEventWeather b _08068DB2 _08068D92: ldrh r0, [r4, 0x6] diff --git a/asm/weather.s b/asm/weather.s index cd0a646a7..7ede8e818 100644 --- a/asm/weather.s +++ b/asm/weather.s @@ -1880,43 +1880,43 @@ _0807DCD0: .4byte _0807DD40 _0807DCF8: movs r0, 0x1 - bl sub_808070C + bl SetWeather b _0807DD46 _0807DD00: movs r0, 0x2 - bl sub_808070C + bl SetWeather b _0807DD46 _0807DD08: movs r0, 0x3 - bl sub_808070C + bl SetWeather b _0807DD46 _0807DD10: movs r0, 0x4 - bl sub_808070C + bl SetWeather b _0807DD46 _0807DD18: movs r0, 0x5 - bl sub_808070C + bl SetWeather b _0807DD46 _0807DD20: movs r0, 0x6 - bl sub_808070C + bl SetWeather b _0807DD46 _0807DD28: movs r0, 0x9 - bl sub_808070C + bl SetWeather b _0807DD46 _0807DD30: movs r0, 0x7 - bl sub_808070C + bl SetWeather b _0807DD46 _0807DD38: movs r0, 0x8 - bl sub_808070C + bl SetWeather b _0807DD46 _0807DD40: movs r0, 0xB - bl sub_808070C + bl SetWeather _0807DD46: pop {r0} bx r0 @@ -7387,8 +7387,8 @@ _08080704: .4byte gSaveBlock1 _08080708: .4byte gMapHeader thumb_func_end sub_80806E4 - thumb_func_start sub_808070C -sub_808070C: @ 808070C + thumb_func_start SetWeather +SetWeather: @ 808070C push {lr} bl SetSav1Weather bl GetSav1Weather @@ -7397,10 +7397,10 @@ sub_808070C: @ 808070C bl DoWeatherEffect pop {r0} bx r0 - thumb_func_end sub_808070C + thumb_func_end SetWeather - thumb_func_start sub_8080724 -sub_8080724: @ 8080724 + thumb_func_start SetWeather_Unused +SetWeather_Unused: @ 8080724 push {lr} bl SetSav1Weather bl GetSav1Weather @@ -7409,10 +7409,10 @@ sub_8080724: @ 8080724 bl sub_807C988 pop {r0} bx r0 - thumb_func_end sub_8080724 + thumb_func_end SetWeather_Unused - thumb_func_start sub_808073C -sub_808073C: @ 808073C + thumb_func_start DoCurrentWeather +DoCurrentWeather: @ 808073C push {lr} bl GetSav1Weather lsls r0, 24 @@ -7420,7 +7420,7 @@ sub_808073C: @ 808073C bl DoWeatherEffect pop {r0} bx r0 - thumb_func_end sub_808073C + thumb_func_end DoCurrentWeather thumb_func_start sub_8080750 sub_8080750: @ 8080750 diff --git a/data/data_83760F0.s b/data/data_83760F0.s index 446cba419..47fb12384 100644 --- a/data/data_83760F0.s +++ b/data/data_83760F0.s @@ -139,31 +139,31 @@ gUnknown_083762F0:: @ 83762F0 .4byte gStringVar3 .align 2 -gUnknown_083762FC:: @ 83762FC - .4byte 0x1, sub_806936C - .4byte 0x2, sub_8069378 - .4byte 0x3, sub_8069384 - .4byte 0x4, sub_8069390 - .4byte 0x5, sub_806939C - .4byte 0x6, sub_80693A8 - .4byte 0x7, sub_80693B4 - .4byte 0x8, sub_80693C0 - .4byte 0x9, sub_80693CC - .4byte 0xa, sub_80693D8 - .4byte 0xb, sub_80693E4 - .4byte 0x14, sub_80693F0 - .4byte 0x15, sub_80693FC +gCoordEventWeatherFuncs:: @ 83762FC + .4byte 0x1, CoordEventWeather_Indoor + .4byte 0x2, CoordEventWeather_Sunny + .4byte 0x3, CoordEventWeather_Rain + .4byte 0x4, CoordEventWeather_Snowflakes + .4byte 0x5, CoordEventWeather_Thunderstorm + .4byte 0x6, CoordEventWeather_Fog + .4byte 0x7, CoordEventWeather_DiagonalFog + .4byte 0x8, CoordEventWeather_Snow + .4byte 0x9, CoordEventWeather_Sandstorm + .4byte 0xa, CoordEventWeather_Cloudy + .4byte 0xb, CoordEventWeather_Drought + .4byte 0x14, CoordEventWeather_UnderwaterFog + .4byte 0x15, CoordEventWeather_UnderwaterBubbles .align 2 gUnknown_08376364:: @ 8376364 - .4byte nullsub_51 - .4byte sub_8069F64 - .4byte sub_8069AA0 - .4byte sub_8069864 - .4byte sub_8069DD4 + .4byte DummyPerStepCallback + .4byte PerStepCallback_8069F64 + .4byte PerStepCallback_8069AA0 + .4byte PerStepCallback_8069864 + .4byte PerStepCallback_8069DD4 .4byte EndTruckSequence .4byte sub_80BCF1C - .4byte sub_806A07C + .4byte PerStepCallback_806A07C gUnknown_08376384:: @ 8376384 .incbin "baserom.gba", 0x00376384, 0x20 diff --git a/include/asm.inc.h b/include/asm.inc.h index cea5325c6..76cf9e837 100644 --- a/include/asm.inc.h +++ b/include/asm.inc.h @@ -158,9 +158,9 @@ bool32 IsMysteryGiftAvailable(void); int sub_80691DC(void); // asm/rom_806936C.o -void overworld_ensure_per_step_coros_running(); -void activate_per_step_callback(u8); -void wild_encounter_reset_coro_args(void); +void SetUpFieldTasks(); +void ActivatePerStepCallback(u8); +void ResetFieldTasksArgs(void); void DoTimeBasedEvents(void); // asm/reset_rtc_screen.o diff --git a/include/weather.h b/include/weather.h index a24a6d51f..af07c970d 100644 --- a/include/weather.h +++ b/include/weather.h @@ -37,7 +37,7 @@ void SetSav1Weather(u32); u8 GetSav1Weather(void); void sub_80806E4(void); // ... -void sub_808073C(void); +void DoCurrentWeather(void); void sub_8080750(); #endif // GUARD_WEATHER_H diff --git a/ld_script.txt b/ld_script.txt index 035235051..efe3235e3 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -87,7 +87,9 @@ SECTIONS { asm/rom_8065394.o(.text); src/var.o(.text); src/flag.o(.text); - asm/rom_806936C.o(.text); + asm/coord_event_weather.o(.text); + asm/field_tasks.o(.text); + asm/clock.o(.text); asm/reset_rtc_screen.o(.text); asm/party_menu.o(.text); src/start_menu.o(.text); diff --git a/src/rom4.c b/src/rom4.c index bd5a9d285..2f7d1fc5c 100644 --- a/src/rom4.c +++ b/src/rom4.c @@ -536,8 +536,8 @@ void sub_80538F0(u8 mapGroup, u8 mapNum) sub_8072ED0(); mapnumbers_history_shift_sav1_0_2_4_out(); sub_8134394(); - sub_808073C(); - wild_encounter_reset_coro_args(); + DoCurrentWeather(); + ResetFieldTasksArgs(); mapheader_run_script_with_tag_x5(); AddMapNamePopUpWindowTask(); } @@ -1629,7 +1629,7 @@ void sub_8054D4C(u32 a1) sub_807C828(); sub_8080750(); if (!a1) - overworld_ensure_per_step_coros_running(); + SetUpFieldTasks(); mapheader_run_script_with_tag_x5(); } diff --git a/src/scrcmd.c b/src/scrcmd.c index a8567a2bb..e34ba0b7f 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -621,13 +621,13 @@ bool8 ScrCmd_resetweather(struct ScriptContext *ctx) bool8 ScrCmd_doweather(struct ScriptContext *ctx) { - sub_808073C(); + DoCurrentWeather(); return FALSE; } bool8 ScrCmd_tileeffect(struct ScriptContext *ctx) { - activate_per_step_callback(ScriptReadByte(ctx)); + ActivatePerStepCallback(ScriptReadByte(ctx)); return FALSE; } |