diff options
author | Diegoisawesome <Diegoisawesome@users.noreply.github.com> | 2018-08-11 16:37:06 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-11 16:37:06 -0700 |
commit | 73bdef2f67c2e5f836da8d634f383b807df8b91a (patch) | |
tree | b3cfd813c4b9af125612b9a79f99292cb28d0591 | |
parent | 94eef0bfa5b67a3ef3061b151e6ff113b45adc2e (diff) | |
parent | cf9518f2374dae7aa30fe8694e2c01d980efda3f (diff) |
Merge pull request #293 from Diegoisawesome/master
Decompile field_specials
104 files changed, 5216 insertions, 9200 deletions
diff --git a/asm/battle_frontier_2.s b/asm/battle_frontier_2.s index 2ab474037..38e0d2e62 100644 --- a/asm/battle_frontier_2.s +++ b/asm/battle_frontier_2.s @@ -11843,7 +11843,7 @@ sub_81A0784: @ 81A0784 movs r1, 0 adds r2, r4, 0 adds r3, r5, 0 - bl sub_8198A50 + bl CreateWindowTemplate ldr r0, [sp, 0x10] ldr r1, [sp, 0x14] str r0, [sp, 0x18] diff --git a/asm/contest.s b/asm/contest.s index 453ecb04c..978421c3d 100644 --- a/asm/contest.s +++ b/asm/contest.s @@ -102,7 +102,7 @@ LoadContestBgAfterMoveAnim: @ 80D7724 movs r4, 0 movs r5, 0xA0 _080D775E: - ldr r0, =0x0201a004 + ldr r0, =gHeap+0x1A004 adds r0, r5, r0 ldr r1, =gUnknown_02039F26 adds r1, r4, r1 @@ -576,7 +576,7 @@ _080D7B4E: ldr r1, =gReservedSpritePaletteCount movs r0, 0x4 strb r0, [r1] - ldr r0, =0x02000000 + ldr r0, =gHeap movs r1, 0xD0 lsls r1, 9 adds r0, r1 @@ -928,7 +928,7 @@ _080D7ED8: ldr r4, =0x06002000 adds r1, r4, 0 bl LZDecompressVram - ldr r3, =0x02018000 + ldr r3, =gHeap+0x18000 movs r5, 0x80 lsls r5, 6 ldr r1, =0x040000d4 @@ -976,7 +976,7 @@ _080D7F40: ldr r0, =gContestResources ldr r0, [r0] ldr r1, [r0, 0x2C] - ldr r2, =0x0201aa04 + ldr r2, =gHeap+0x1AA04 ldr r0, =0x040000d4 str r1, [r0] str r2, [r0, 0x4] @@ -1022,7 +1022,7 @@ _080D7F7C: mov r0, sp adds r2, r6, 0 bl CpuSet - ldr r1, =0x0201a004 + ldr r1, =gHeap+0x1A004 ldr r0, =0x040000d4 mov r2, r8 str r2, [r0] @@ -1393,7 +1393,7 @@ sub_80D833C: @ 80D833C strh r1, [r0] bl sub_80DCD48 ldr r1, =gPlttBufferUnfaded - ldr r2, =0x0201a204 + ldr r2, =gHeap+0x1A204 ldr r0, =0x040000d4 str r1, [r0] str r2, [r0, 0x4] @@ -2070,7 +2070,7 @@ _080D897C: movs r0, 0 bl sub_80DED60 ldr r1, =gPlttBufferFaded - ldr r0, =0x0201a604 + ldr r0, =gHeap+0x1A604 movs r2, 0x80 lsls r2, 3 ldr r4, =0x040000d4 @@ -5012,7 +5012,7 @@ _080DA33A: sub_80DA348: @ 80DA348 lsls r0, 24 lsrs r0, 24 - ldr r2, =0x0201a204 + ldr r2, =gHeap+0x1A204 ldr r3, =gPlttBufferUnfaded ldr r1, =0x040000d4 str r2, [r1] @@ -10211,7 +10211,7 @@ sub_80DCCD8: @ 80DCCD8 thumb_func_start sub_80DCD08 sub_80DCD08: @ 80DCD08 push {lr} - ldr r0, =0x02000000 + ldr r0, =gHeap movs r1, 0xD0 lsls r1, 9 adds r2, r0, r1 @@ -10250,7 +10250,7 @@ sub_80DCD48: @ 80DCD48 ldrb r0, [r0] cmp r0, 0 beq _080DCE44 - ldr r0, =0x02000000 + ldr r0, =gHeap movs r1, 0xD0 lsls r1, 9 adds r0, r1 @@ -10639,7 +10639,7 @@ sub_80DD04C: @ 80DD04C movs r4, 0 movs r5, 0xA0 _080DD052: - ldr r0, =0x0201a004 + ldr r0, =gHeap+0x1A004 adds r0, r5, r0 ldr r1, =gUnknown_02039F26 adds r1, r4, r1 @@ -12351,7 +12351,7 @@ sub_80DDE30: @ 80DDE30 ldrsh r0, [r4, r1] cmp r0, 0 bne _080DDE78 - ldr r0, =0x02019000 + ldr r0, =gHeap+0x19000 ldr r1, =0x06002000 movs r2, 0x80 lsls r2, 5 @@ -12360,7 +12360,7 @@ sub_80DDE30: @ 80DDE30 b _080DDE8C .pool _080DDE78: - ldr r0, =0x02018000 + ldr r0, =gHeap+0x18000 ldr r1, =0x06002000 movs r2, 0x80 lsls r2, 5 @@ -15417,7 +15417,7 @@ sub_80DF704: @ 80DF704 push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 - ldr r0, =0x02000000 + ldr r0, =gHeap movs r1, 0xD0 lsls r1, 9 adds r2, r0, r1 @@ -15468,7 +15468,7 @@ sub_80DF750: @ 80DF750 bne _080DF766 b _080DF924 _080DF766: - ldr r0, =0x02000000 + ldr r0, =gHeap movs r1, 0xD0 lsls r1, 9 adds r0, r1 @@ -15493,7 +15493,7 @@ _080DF784: lsrs r7, r0, 24 cmp r7, 0x3 bls _080DF784 - ldr r0, =0x02000000 + ldr r0, =gHeap movs r1, 0xD0 lsls r1, 9 adds r0, r1 diff --git a/asm/contest_link_80FC4F4.s b/asm/contest_link_80FC4F4.s index 621e26038..99fec9d99 100644 --- a/asm/contest_link_80FC4F4.s +++ b/asm/contest_link_80FC4F4.s @@ -11,7 +11,7 @@ sub_80FC4F4: @ 80FC4F4 adds r2, r0, 0 lsls r4, r1, 16 lsrs r4, 16 - ldr r5, =0x0201c000 + ldr r5, =gDecompressionBuffer adds r0, r5, 0 adds r1, r2, 0 adds r2, r4, 0 diff --git a/asm/field_specials.s b/asm/field_specials.s deleted file mode 100644 index cea228a2a..000000000 --- a/asm/field_specials.s +++ /dev/null @@ -1,8075 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start Special_ShowDiploma -Special_ShowDiploma: @ 8137CB4 - push {lr} - ldr r0, =CB2_ShowDiploma - bl SetMainCallback2 - bl ScriptContext2_Enable - pop {r0} - bx r0 - .pool - thumb_func_end Special_ShowDiploma - - thumb_func_start Special_ViewWallClock -Special_ViewWallClock: @ 8137CC8 - push {lr} - ldr r0, =gMain - ldr r1, =CB2_ReturnToField - str r1, [r0, 0x8] - ldr r0, =Cb2_ViewWallClock - bl SetMainCallback2 - bl ScriptContext2_Enable - pop {r0} - bx r0 - .pool - thumb_func_end Special_ViewWallClock - - thumb_func_start ResetCyclingRoadChallengeData -ResetCyclingRoadChallengeData: @ 8137CEC - ldr r0, =gBikeCyclingChallenge - movs r1, 0 - strb r1, [r0] - ldr r0, =0x0203ab55 - strb r1, [r0] - ldr r1, =gUnknown_0203AB58 - movs r0, 0 - str r0, [r1] - bx lr - .pool - thumb_func_end ResetCyclingRoadChallengeData - - thumb_func_start Special_BeginCyclingRoadChallenge -Special_BeginCyclingRoadChallenge: @ 8137D0C - ldr r1, =gBikeCyclingChallenge - movs r0, 0x1 - strb r0, [r1] - ldr r1, =0x0203ab55 - movs r0, 0 - strb r0, [r1] - ldr r1, =gUnknown_0203AB58 - ldr r0, =gMain - ldr r0, [r0, 0x20] - str r0, [r1] - bx lr - .pool - thumb_func_end Special_BeginCyclingRoadChallenge - - thumb_func_start GetPlayerAvatarBike -GetPlayerAvatarBike: @ 8137D34 - push {lr} - movs r0, 0x4 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - beq _08137D46 - movs r0, 0x1 - b _08137D58 -_08137D46: - movs r0, 0x2 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - bne _08137D56 - movs r0, 0 - b _08137D58 -_08137D56: - movs r0, 0x2 -_08137D58: - pop {r1} - bx r1 - thumb_func_end GetPlayerAvatarBike - - thumb_func_start DetermineCyclingRoadResults -DetermineCyclingRoadResults: @ 8137D5C - push {r4-r7,lr} - adds r7, r0, 0 - lsls r1, 24 - lsrs r6, r1, 24 - cmp r6, 0x63 - bhi _08137D88 - ldr r4, =gStringVar1 - adds r0, r4, 0 - adds r1, r6, 0 - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r1, =gText_SpaceTimes - adds r0, r4, 0 - bl StringAppend - b _08137D90 - .pool -_08137D88: - ldr r0, =gStringVar1 - ldr r1, =gText_99TimesPlus - bl StringCopy -_08137D90: - ldr r0, =0x00000e0f - cmp r7, r0 - bhi _08137DF0 - ldr r4, =gStringVar2 - adds r0, r7, 0 - movs r1, 0x3C - bl __udivsi3 - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - movs r0, 0xAD - strb r0, [r4, 0x2] - adds r5, r4, 0x3 - adds r0, r7, 0 - movs r1, 0x3C - bl __umodsi3 - movs r1, 0x64 - muls r0, r1 - movs r1, 0x3C - bl __udivsi3 - adds r1, r0, 0 - adds r0, r5, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r1, =gText_SpaceSeconds - adds r0, r4, 0 - bl StringAppend - b _08137DF8 - .pool -_08137DF0: - ldr r0, =gStringVar2 - ldr r1, =gText_1MinutePlus - bl StringCopy -_08137DF8: - movs r4, 0 - cmp r6, 0 - bne _08137E0C - movs r4, 0x5 - b _08137E2A - .pool -_08137E0C: - cmp r6, 0x3 - bhi _08137E14 - movs r4, 0x4 - b _08137E2A -_08137E14: - cmp r6, 0x9 - bhi _08137E1C - movs r4, 0x3 - b _08137E2A -_08137E1C: - cmp r6, 0x13 - bhi _08137E24 - movs r4, 0x2 - b _08137E2A -_08137E24: - cmp r6, 0x63 - bhi _08137E2A - movs r4, 0x1 -_08137E2A: - adds r0, r7, 0 - movs r1, 0x3C - bl __udivsi3 - cmp r0, 0xA - bhi _08137E3A - adds r0, r4, 0x5 - b _08137E58 -_08137E3A: - cmp r0, 0xF - bhi _08137E42 - adds r0, r4, 0x4 - b _08137E58 -_08137E42: - cmp r0, 0x14 - bhi _08137E4A - adds r0, r4, 0x3 - b _08137E58 -_08137E4A: - cmp r0, 0x28 - bhi _08137E52 - adds r0, r4, 0x2 - b _08137E58 -_08137E52: - cmp r0, 0x3B - bhi _08137E5C - adds r0, r4, 0x1 -_08137E58: - lsls r0, 24 - lsrs r4, r0, 24 -_08137E5C: - ldr r0, =gSpecialVar_Result - strh r4, [r0] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end DetermineCyclingRoadResults - - thumb_func_start FinishCyclingRoadChallenge -FinishCyclingRoadChallenge: @ 8137E6C - push {r4,r5,lr} - ldr r0, =gMain - ldr r1, =gUnknown_0203AB58 - ldr r4, [r0, 0x20] - ldr r0, [r1] - subs r4, r0 - ldr r5, =0x0203ab55 - ldrb r1, [r5] - adds r0, r4, 0 - bl DetermineCyclingRoadResults - ldrb r1, [r5] - adds r0, r4, 0 - bl RecordCyclingRoadResults - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end FinishCyclingRoadChallenge - - thumb_func_start RecordCyclingRoadResults -RecordCyclingRoadResults: @ 8137E9C - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - ldr r6, =0x00004028 - adds r0, r6, 0 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r7, =0x00004029 - adds r0, r7, 0 - bl VarGet - lsls r0, 16 - adds r4, r0 - cmp r4, r5 - bhi _08137ECC - cmp r4, 0 - bne _08137EE6 -_08137ECC: - lsls r1, r5, 16 - lsrs r1, 16 - adds r0, r6, 0 - bl VarSet - lsrs r1, r5, 16 - adds r0, r7, 0 - bl VarSet - ldr r0, =0x00004027 - mov r1, r8 - bl VarSet -_08137EE6: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end RecordCyclingRoadResults - - thumb_func_start GetRecordedCyclingRoadResults -GetRecordedCyclingRoadResults: @ 8137EFC - push {r4,lr} - ldr r0, =0x00004028 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, =0x00004029 - bl VarGet - lsls r0, 16 - adds r4, r0 - cmp r4, 0 - beq _08137F3C - ldr r0, =0x00004027 - bl VarGet - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl DetermineCyclingRoadResults - movs r0, 0x1 - b _08137F3E - .pool -_08137F3C: - movs r0, 0 -_08137F3E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetRecordedCyclingRoadResults - - thumb_func_start UpdateCyclingRoadState -UpdateCyclingRoadState: @ 8137F44 - push {r4,lr} - ldr r0, =gUnknown_020322DC - ldrh r1, [r0] - ldr r0, =0x00000c1d - cmp r1, r0 - beq _08137F7C - ldr r4, =0x000040a9 - adds r0, r4, 0 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2 - beq _08137F6E - adds r0, r4, 0 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x3 - bne _08137F7C -_08137F6E: - adds r0, r4, 0 - movs r1, 0 - bl VarSet - movs r0, 0 - bl Overworld_SetSavedMusic -_08137F7C: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end UpdateCyclingRoadState - - thumb_func_start SetSSTidalFlag -SetSSTidalFlag: @ 8137F90 - push {lr} - ldr r0, =0x0000088d - bl FlagSet - ldr r0, =0x0000404a - bl GetVarPointer - movs r1, 0 - strh r1, [r0] - pop {r0} - bx r0 - .pool - thumb_func_end SetSSTidalFlag - - thumb_func_start ResetSSTidalFlag -ResetSSTidalFlag: @ 8137FB0 - push {lr} - ldr r0, =0x0000088d - bl FlagClear - pop {r0} - bx r0 - .pool - thumb_func_end ResetSSTidalFlag - - thumb_func_start CountSSTidalStep -CountSSTidalStep: @ 8137FC0 - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, =0x0000088d - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _08137FE6 - ldr r0, =0x0000404a - bl GetVarPointer - ldrh r1, [r0] - adds r1, r4, r1 - strh r1, [r0] - lsls r1, 16 - lsrs r1, 16 - cmp r1, 0xCC - bhi _08137FF4 -_08137FE6: - movs r0, 0 - b _08137FF6 - .pool -_08137FF4: - movs r0, 0x1 -_08137FF6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end CountSSTidalStep - - thumb_func_start GetSSTidalLocation -GetSSTidalLocation: @ 8137FFC - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r0 - adds r5, r1, 0 - adds r6, r2, 0 - adds r7, r3, 0 - ldr r0, =0x0000404a - bl GetVarPointer - adds r4, r0, 0 - ldr r0, =0x000040b4 - bl GetVarPointer - ldrh r0, [r0] - subs r0, 0x1 - cmp r0, 0x9 - bhi _081380C2 - lsls r0, 2 - ldr r1, =_08138038 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08138038: - .4byte _08138060 - .4byte _08138070 - .4byte _08138064 - .4byte _08138068 - .4byte _08138068 - .4byte _0813806C - .4byte _08138098 - .4byte _08138060 - .4byte _08138064 - .4byte _0813806C -_08138060: - movs r0, 0x1 - b _081380CE -_08138064: - movs r0, 0x4 - b _081380CE -_08138068: - movs r0, 0x2 - b _081380CE -_0813806C: - movs r0, 0x3 - b _081380CE -_08138070: - ldrh r0, [r4] - cmp r0, 0x3B - bhi _08138080 - movs r0, 0x31 - strb r0, [r5] - ldrh r0, [r4] - adds r0, 0x13 - b _081380C0 -_08138080: - cmp r0, 0x8B - bhi _0813808E - movs r0, 0x30 - strb r0, [r5] - ldrh r0, [r4] - subs r0, 0x3C - b _081380C0 -_0813808E: - movs r0, 0x2F - strb r0, [r5] - ldrh r0, [r4] - subs r0, 0x8C - b _081380C0 -_08138098: - ldrh r0, [r4] - cmp r0, 0x41 - bhi _081380A8 - movs r0, 0x2F - strb r0, [r5] - ldrh r1, [r4] - movs r0, 0x41 - b _081380BE -_081380A8: - cmp r0, 0x91 - bhi _081380B6 - movs r0, 0x30 - strb r0, [r5] - ldrh r1, [r4] - movs r0, 0x91 - b _081380BE -_081380B6: - movs r0, 0x31 - strb r0, [r5] - ldrh r1, [r4] - movs r0, 0xE0 -_081380BE: - subs r0, r1 -_081380C0: - strh r0, [r6] -_081380C2: - movs r0, 0 - mov r1, r8 - strb r0, [r1] - movs r0, 0x14 - strh r0, [r7] - movs r0, 0 -_081380CE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end GetSSTidalLocation - - thumb_func_start is_tile_that_overrides_player_control -is_tile_that_overrides_player_control: @ 81380D8 - push {lr} - movs r0, 0x88 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0813810A - ldr r0, =gMapHeader - ldrb r0, [r0, 0x17] - cmp r0, 0x1 - blt _0813810A - cmp r0, 0x3 - ble _081380F6 - cmp r0, 0x6 - bne _0813810A -_081380F6: - ldr r0, =0x000040f2 - bl GetVarPointer - ldrh r1, [r0] - adds r1, 0x1 - strh r1, [r0] - lsls r1, 16 - lsrs r1, 16 - cmp r1, 0xF9 - bhi _08138118 -_0813810A: - movs r0, 0 - b _0813811A - .pool -_08138118: - movs r0, 0x1 -_0813811A: - pop {r1} - bx r1 - thumb_func_end is_tile_that_overrides_player_control - - thumb_func_start sub_8138120 -sub_8138120: @ 8138120 - push {lr} - movs r0, 0x8A - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _08138152 - ldr r0, =gMapHeader - ldrb r0, [r0, 0x17] - cmp r0, 0x1 - blt _08138152 - cmp r0, 0x3 - ble _0813813E - cmp r0, 0x6 - bne _08138152 -_0813813E: - ldr r0, =0x000040f3 - bl GetVarPointer - ldrh r1, [r0] - adds r1, 0x1 - strh r1, [r0] - lsls r1, 16 - lsrs r1, 16 - cmp r1, 0x9 - bhi _08138160 -_08138152: - movs r0, 0 - b _08138162 - .pool -_08138160: - movs r0, 0x1 -_08138162: - pop {r1} - bx r1 - thumb_func_end sub_8138120 - - thumb_func_start sub_8138168 -sub_8138168: @ 8138168 - push {lr} - movs r0, 0x72 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0813819A - ldr r0, =gMapHeader - ldrb r0, [r0, 0x17] - cmp r0, 0x1 - blt _0813819A - cmp r0, 0x3 - ble _08138186 - cmp r0, 0x6 - bne _0813819A -_08138186: - ldr r0, =0x000040f5 - bl GetVarPointer - ldrh r1, [r0] - adds r1, 0x1 - strh r1, [r0] - lsls r1, 16 - lsrs r1, 16 - cmp r1, 0x9 - bhi _081381A8 -_0813819A: - movs r0, 0 - b _081381AA - .pool -_081381A8: - movs r0, 0x1 -_081381AA: - pop {r1} - bx r1 - thumb_func_end sub_8138168 - - thumb_func_start sub_81381B0 -sub_81381B0: @ 81381B0 - push {lr} - movs r0, 0x80 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _081381E2 - ldr r0, =gMapHeader - ldrb r0, [r0, 0x17] - cmp r0, 0x1 - blt _081381E2 - cmp r0, 0x3 - ble _081381CE - cmp r0, 0x6 - bne _081381E2 -_081381CE: - ldr r0, =0x000040f4 - bl GetVarPointer - ldrh r1, [r0] - adds r1, 0x1 - strh r1, [r0] - lsls r1, 16 - lsrs r1, 16 - cmp r1, 0xF9 - bhi _081381F0 -_081381E2: - movs r0, 0 - b _081381F2 - .pool -_081381F0: - movs r0, 0x1 -_081381F2: - pop {r1} - bx r1 - thumb_func_end sub_81381B0 - - thumb_func_start sub_81381F8 -sub_81381F8: @ 81381F8 - push {lr} - movs r0, 0x75 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0813822A - ldr r0, =gMapHeader - ldrb r0, [r0, 0x17] - cmp r0, 0x1 - blt _0813822A - cmp r0, 0x3 - ble _08138216 - cmp r0, 0x6 - bne _0813822A -_08138216: - ldr r0, =0x000040f6 - bl GetVarPointer - ldrh r1, [r0] - adds r1, 0x1 - strh r1, [r0] - lsls r1, 16 - lsrs r1, 16 - cmp r1, 0xF9 - bhi _08138238 -_0813822A: - movs r0, 0 - b _0813823A - .pool -_08138238: - movs r0, 0x1 -_0813823A: - pop {r1} - bx r1 - thumb_func_end sub_81381F8 - - thumb_func_start GetLinkPartnerNames -GetLinkPartnerNames: @ 8138240 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r6, 0 - bl GetMultiplayerId - lsls r0, 24 - lsrs r7, r0, 24 - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - cmp r4, r5 - bcs _0813828A - ldr r0, =gTVStringVarPtrs - mov r8, r0 -_08138262: - cmp r7, r4 - beq _08138280 - lsls r0, r6, 2 - add r0, r8 - ldr r0, [r0] - lsls r1, r4, 3 - subs r1, r4 - lsls r1, 2 - ldr r2, =gLinkPlayers + 8 - adds r1, r2 - bl StringCopy - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_08138280: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _08138262 -_0813828A: - adds r0, r5, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end GetLinkPartnerNames - - thumb_func_start SpawnLinkPartnerEventObject -SpawnLinkPartnerEventObject: @ 81382A0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - movs r7, 0 - movs r0, 0 - mov r9, r0 - mov r8, r0 - ldr r1, =gUnknown_085B2B5C - add r0, sp, 0x8 - movs r2, 0x4 - bl memcpy - add r4, sp, 0xC - ldr r1, =gUnknown_085B2B60 - adds r0, r4, 0 - movs r2, 0x8 - bl memcpy - bl GetMultiplayerId - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - bl GetPlayerFacingDirection - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x2 - beq _08138310 - cmp r0, 0x2 - bgt _081382F4 - cmp r0, 0x1 - beq _0813833C - b _08138350 - .pool -_081382F4: - cmp r1, 0x3 - beq _081382FE - cmp r1, 0x4 - beq _08138324 - b _08138350 -_081382FE: - movs r7, 0x2 - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldrh r0, [r1] - subs r0, 0x1 - b _0813832C - .pool -_08138310: - movs r7, 0x1 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrh r1, [r0] - mov r9, r1 - ldrh r0, [r0, 0x2] - subs r0, 0x1 - b _0813834A - .pool -_08138324: - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldrh r0, [r1] - adds r0, 0x1 -_0813832C: - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - ldrh r1, [r1, 0x2] - mov r8, r1 - b _08138350 - .pool -_0813833C: - movs r7, 0x3 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrh r3, [r0] - mov r9, r3 - ldrh r0, [r0, 0x2] - adds r0, 0x1 -_0813834A: - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 -_08138350: - movs r6, 0 - b _08138410 - .pool -_08138358: - cmp r10, r6 - beq _0813840A - ldr r0, =gLinkPlayers - lsls r2, r6, 3 - subs r1, r2, r6 - lsls r1, 2 - adds r1, r0 - ldrb r3, [r1] - adds r4, r0, 0 - cmp r3, 0x1 - blt _0813838C - cmp r3, 0x2 - ble _0813837C - cmp r3, 0x3 - beq _08138388 - b _0813838C - .pool -_0813837C: - ldrb r0, [r1, 0x13] - movs r5, 0xEC - cmp r0, 0 - bne _0813839C - movs r5, 0xEB - b _0813839C -_08138388: - ldrb r0, [r1, 0x13] - b _08138394 -_0813838C: - subs r0, r2, r6 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x13] -_08138394: - movs r5, 0x69 - cmp r0, 0 - bne _0813839C - movs r5, 0x64 -_0813839C: - mov r0, sp - adds r0, r7 - adds r0, 0x8 - ldrb r1, [r0] - movs r4, 0xF0 - subs r4, r6 - lsls r4, 24 - lsrs r4, 24 - lsls r2, r7, 1 - mov r0, sp - adds r0, r2 - adds r0, 0xC - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - mov r3, r9 - lsls r3, 16 - asrs r3, 16 - mov r12, r3 - add r0, r12 - adds r3, r0, 0x7 - lsls r3, 16 - asrs r3, 16 - mov r12, r3 - mov r0, sp - adds r0, 0xD - adds r0, r2 - movs r2, 0 - ldrsb r2, [r0, r2] - mov r3, r8 - lsls r0, r3, 16 - asrs r0, 16 - adds r0, r2 - adds r0, 0x7 - lsls r0, 16 - asrs r0, 16 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - adds r0, r5, 0 - adds r2, r4, 0 - mov r3, r12 - bl SpawnSpecialEventObjectParameterized - adds r0, r5, 0 - adds r1, r4, 0 - adds r2, r6, 0 - bl sub_813842C - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x4 - bne _0813840A - movs r7, 0 -_0813840A: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_08138410: - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r6, r0 - bcc _08138358 - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end SpawnLinkPartnerEventObject - - thumb_func_start sub_813842C -sub_813842C: @ 813842C - push {r4,r5,lr} - lsls r0, 24 - lsls r1, 24 - lsrs r3, r1, 24 - lsls r2, 24 - movs r1, 0xC0 - lsls r1, 19 - adds r2, r1 - lsrs r5, r2, 24 - lsrs r4, r0, 24 - movs r2, 0xA8 - lsls r2, 21 - adds r0, r2 - lsrs r0, 24 - cmp r0, 0x1 - bls _08138454 - cmp r4, 0x64 - beq _08138454 - cmp r4, 0x69 - bne _081384E6 -_08138454: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrb r1, [r0, 0x5] - ldrb r2, [r0, 0x4] - adds r0, r3, 0 - bl GetEventObjectIdByLocalIdAndMap - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x10 - beq _081384E6 - ldr r1, =gEventObjects - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, =gSprites - adds r1, r0 - lsls r3, r5, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - cmp r4, 0x69 - beq _081384D8 - cmp r4, 0x69 - bgt _081384A8 - cmp r4, 0x64 - beq _081384C4 - b _081384E6 - .pool -_081384A8: - cmp r4, 0xEB - beq _081384B2 - cmp r4, 0xEC - beq _081384BC - b _081384E6 -_081384B2: - ldr r0, =gEventObjectPalette33 - b _081384C6 - .pool -_081384BC: - ldr r0, =gEventObjectPalette34 - b _081384C6 - .pool -_081384C4: - ldr r0, =gEventObjectPalette8 -_081384C6: - movs r2, 0x80 - lsls r2, 1 - adds r1, r3, r2 - movs r2, 0x20 - bl LoadPalette - b _081384E6 - .pool -_081384D8: - ldr r0, =gEventObjectPalette17 - movs r2, 0x80 - lsls r2, 1 - adds r1, r3, r2 - movs r2, 0x20 - bl LoadPalette -_081384E6: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813842C - - thumb_func_start MauvilleGymSpecial1 -MauvilleGymSpecial1: @ 81384F0 - push {r4,r5,lr} - movs r4, 0 - ldr r5, =gUnknown_085B2B68 -_081384F6: - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r4, r0 - bne _0813851C - lsls r1, r4, 2 - adds r1, r5 - ldrb r0, [r1] - ldrb r1, [r1, 0x1] - ldr r2, =0x00000206 - bl MapGridSetMetatileIdAt - b _0813852A - .pool -_0813851C: - lsls r1, r4, 2 - adds r1, r5 - ldrb r0, [r1] - ldrb r1, [r1, 0x1] - ldr r2, =0x00000205 - bl MapGridSetMetatileIdAt -_0813852A: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _081384F6 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end MauvilleGymSpecial1 - - thumb_func_start MauvilleGymSpecial2 -MauvilleGymSpecial2: @ 8138540 - push {r4-r6,lr} - movs r5, 0xC -_08138544: - movs r4, 0x7 - adds r6, r5, 0x1 -_08138548: - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridGetMetatileIdAt - ldr r1, =0xfffffde6 - adds r0, r1 - cmp r0, 0x37 - bls _0813855A - b _08138734 -_0813855A: - lsls r0, 2 - ldr r1, =_0813856C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0813856C: - .4byte _081386F2 - .4byte _08138734 - .4byte _08138734 - .4byte _08138734 - .4byte _08138734 - .4byte _08138734 - .4byte _0813864C - .4byte _08138652 - .4byte _0813868C - .4byte _08138694 - .4byte _08138734 - .4byte _08138734 - .4byte _08138734 - .4byte _08138734 - .4byte _0813865C - .4byte _08138662 - .4byte _0813869C - .4byte _081386A4 - .4byte _08138734 - .4byte _08138734 - .4byte _08138734 - .4byte _08138734 - .4byte _0813866C - .4byte _08138672 - .4byte _081386AC - .4byte _081386B4 - .4byte _08138734 - .4byte _08138734 - .4byte _08138734 - .4byte _08138734 - .4byte _0813867C - .4byte _08138684 - .4byte _081386BC - .4byte _081386C4 - .4byte _08138734 - .4byte _08138734 - .4byte _08138734 - .4byte _08138734 - .4byte _081386CC - .4byte _081386DC - .4byte _081386EC - .4byte _08138714 - .4byte _08138734 - .4byte _08138734 - .4byte _08138734 - .4byte _08138734 - .4byte _081386D4 - .4byte _081386E4 - .4byte _08138734 - .4byte _08138734 - .4byte _08138734 - .4byte _08138734 - .4byte _08138734 - .4byte _08138734 - .4byte _0813872A - .4byte _0813871C -_0813864C: - movs r2, 0x8C - lsls r2, 2 - b _08138720 -_08138652: - ldr r2, =0x00000231 - b _08138720 - .pool -_0813865C: - movs r2, 0x8E - lsls r2, 2 - b _08138720 -_08138662: - ldr r2, =0x00000239 - b _08138720 - .pool -_0813866C: - movs r2, 0x88 - lsls r2, 2 - b _08138720 -_08138672: - ldr r2, =0x00000221 - b _08138720 - .pool -_0813867C: - ldr r2, =0x00000e28 - b _08138720 - .pool -_08138684: - ldr r2, =0x00000e29 - b _08138720 - .pool -_0813868C: - ldr r2, =0x00000232 - b _08138720 - .pool -_08138694: - ldr r2, =0x00000233 - b _08138720 - .pool -_0813869C: - ldr r2, =0x0000023a - b _08138720 - .pool -_081386A4: - ldr r2, =0x0000023b - b _08138720 - .pool -_081386AC: - ldr r2, =0x00000222 - b _08138720 - .pool -_081386B4: - ldr r2, =0x00000223 - b _08138720 - .pool -_081386BC: - ldr r2, =0x00000e2a - b _08138720 - .pool -_081386C4: - ldr r2, =0x00000e2b - b _08138720 - .pool -_081386CC: - ldr r2, =0x00000e42 - b _08138720 - .pool -_081386D4: - ldr r2, =0x0000021a - b _08138720 - .pool -_081386DC: - ldr r2, =0x00000e43 - b _08138720 - .pool -_081386E4: - ldr r2, =0x0000021a - b _08138720 - .pool -_081386EC: - movs r2, 0xE4 - lsls r2, 4 - b _08138720 -_081386F2: - subs r1, r5, 0x1 - adds r0, r4, 0 - bl MapGridGetMetatileIdAt - movs r1, 0x90 - lsls r1, 2 - cmp r0, r1 - bne _0813870C - ldr r2, =0x00000e48 - b _08138720 - .pool -_0813870C: - ldr r2, =0x00000e49 - b _08138720 - .pool -_08138714: - ldr r2, =0x00000e41 - b _08138720 - .pool -_0813871C: - movs r2, 0xE5 - lsls r2, 4 -_08138720: - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridSetMetatileIdAt - b _08138734 -_0813872A: - ldr r2, =0x00000251 - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridSetMetatileIdAt -_08138734: - adds r4, 0x1 - cmp r4, 0xF - bgt _0813873C - b _08138548 -_0813873C: - adds r5, r6, 0 - cmp r5, 0x17 - bgt _08138744 - b _08138544 -_08138744: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end MauvilleGymSpecial2 - - thumb_func_start MauvilleGymSpecial3 -MauvilleGymSpecial3: @ 8138750 - push {r4-r6,lr} - ldr r4, =gUnknown_085B2B68 - movs r5, 0x3 -_08138756: - ldrb r0, [r4] - ldrb r1, [r4, 0x1] - ldr r2, =0x00000206 - bl MapGridSetMetatileIdAt - adds r4, 0x4 - subs r5, 0x1 - cmp r5, 0 - bge _08138756 - movs r5, 0xC -_0813876A: - movs r4, 0x7 - adds r6, r5, 0x1 -_0813876E: - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridGetMetatileIdAt - ldr r1, =0xfffffde0 - adds r0, r1 - cmp r0, 0x30 - bls _08138780 - b _081388CA -_08138780: - lsls r0, 2 - ldr r1, =_0813879C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0813879C: - .4byte _08138860 - .4byte _08138866 - .4byte _08138880 - .4byte _08138888 - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _08138870 - .4byte _08138876 - .4byte _08138890 - .4byte _08138898 - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388A0 - .4byte _081388A8 - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388B0 - .4byte _081388B0 - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388C0 -_08138860: - movs r2, 0x8C - lsls r2, 2 - b _081388B2 -_08138866: - ldr r2, =0x00000231 - b _081388B2 - .pool -_08138870: - movs r2, 0x8E - lsls r2, 2 - b _081388B2 -_08138876: - ldr r2, =0x00000239 - b _081388B2 - .pool -_08138880: - ldr r2, =0x00000232 - b _081388B2 - .pool -_08138888: - ldr r2, =0x00000233 - b _081388B2 - .pool -_08138890: - ldr r2, =0x0000023a - b _081388B2 - .pool -_08138898: - ldr r2, =0x0000023b - b _081388B2 - .pool -_081388A0: - ldr r2, =0x00000e42 - b _081388B2 - .pool -_081388A8: - ldr r2, =0x00000e43 - b _081388B2 - .pool -_081388B0: - ldr r2, =0x0000021a -_081388B2: - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridSetMetatileIdAt - b _081388CA - .pool -_081388C0: - ldr r2, =0x00000251 - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridSetMetatileIdAt -_081388CA: - adds r4, 0x1 - cmp r4, 0xF - bgt _081388D2 - b _0813876E -_081388D2: - adds r5, r6, 0 - cmp r5, 0x17 - bgt _081388DA - b _0813876A -_081388DA: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end MauvilleGymSpecial3 - - thumb_func_start PetalburgGymSpecial1 -PetalburgGymSpecial1: @ 81388E4 - push {lr} - ldr r0, =gUnknown_0203AB5C - movs r1, 0 - strb r1, [r0] - ldr r0, =gUnknown_0203AB5D - strb r1, [r0] - movs r0, 0x2C - bl PlaySE - ldr r0, =Task_PetalburgGym - movs r1, 0x8 - bl CreateTask - pop {r0} - bx r0 - .pool - thumb_func_end PetalburgGymSpecial1 - - thumb_func_start Task_PetalburgGym -Task_PetalburgGym: @ 8138910 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, =gUnknown_085B2B78 - ldr r5, =gUnknown_0203AB5D - ldrb r1, [r5] - adds r0, r1, r0 - ldr r4, =gUnknown_0203AB5C - ldrb r2, [r4] - ldrb r0, [r0] - cmp r0, r2 - bne _0813896C - ldr r0, =gSpecialVar_0x8004 - ldrb r0, [r0] - ldr r2, =gUnknown_085B2B7E - lsls r1, 1 - adds r1, r2 - ldrh r1, [r1] - bl PetalburgGymFunc - movs r0, 0 - strb r0, [r4] - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bne _08138970 - adds r0, r6, 0 - bl DestroyTask - bl EnableBothScriptContexts - b _08138970 - .pool -_0813896C: - adds r0, r2, 0x1 - strb r0, [r4] -_08138970: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end Task_PetalburgGym - - thumb_func_start PetalburgGymFunc -PetalburgGymFunc: @ 8138978 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r2, r1, 16 - movs r7, 0 - subs r0, 0x1 - cmp r0, 0x7 - bhi _08138A40 - lsls r0, 2 - ldr r1, =_081389A0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081389A0: - .4byte _081389C0 - .4byte _081389D2 - .4byte _081389E4 - .4byte _081389F6 - .4byte _08138A04 - .4byte _08138A1A - .4byte _08138A26 - .4byte _08138A34 -_081389C0: - movs r7, 0x2 - mov r1, sp - movs r0, 0x1 - strh r0, [r1] - movs r0, 0x7 - strh r0, [r1, 0x2] - add r1, sp, 0x8 - movs r0, 0x68 - b _08138A14 -_081389D2: - movs r7, 0x2 - mov r1, sp - movs r0, 0x1 - strh r0, [r1] - movs r0, 0x7 - strh r0, [r1, 0x2] - add r1, sp, 0x8 - movs r0, 0x4E - b _08138A14 -_081389E4: - movs r7, 0x2 - mov r1, sp - movs r0, 0x1 - strh r0, [r1] - movs r0, 0x7 - strh r0, [r1, 0x2] - add r1, sp, 0x8 - movs r0, 0x5B - b _08138A14 -_081389F6: - movs r7, 0x1 - mov r1, sp - movs r0, 0x7 - strh r0, [r1] - add r1, sp, 0x8 - movs r0, 0x27 - b _08138A3E -_08138A04: - movs r7, 0x2 - mov r1, sp - movs r0, 0x1 - strh r0, [r1] - movs r0, 0x7 - strh r0, [r1, 0x2] - add r1, sp, 0x8 - movs r0, 0x34 -_08138A14: - strh r0, [r1] - strh r0, [r1, 0x2] - b _08138A40 -_08138A1A: - movs r7, 0x1 - mov r0, sp - strh r7, [r0] - add r1, sp, 0x8 - movs r0, 0x41 - b _08138A3E -_08138A26: - movs r7, 0x1 - mov r1, sp - movs r0, 0x7 - strh r0, [r1] - add r1, sp, 0x8 - movs r0, 0xD - b _08138A3E -_08138A34: - movs r7, 0x1 - mov r0, sp - strh r7, [r0] - add r1, sp, 0x8 - movs r0, 0x1A -_08138A3E: - strh r0, [r1] -_08138A40: - movs r6, 0 - cmp r6, r7 - bcs _08138A92 - movs r1, 0xC0 - lsls r1, 4 - adds r0, r1, 0 - adds r1, r2, 0 - orrs r1, r0 - lsls r1, 16 - mov r9, r1 - adds r1, r2, 0 - adds r1, 0x8 - orrs r1, r0 - lsls r1, 16 - mov r8, r1 -_08138A5E: - lsls r1, r6, 1 - mov r3, sp - adds r5, r3, r1 - ldrh r0, [r5] - adds r0, 0x7 - add r4, sp, 0x8 - adds r4, r1 - ldrh r1, [r4] - adds r1, 0x7 - mov r3, r9 - lsrs r2, r3, 16 - bl MapGridSetMetatileIdAt - ldrh r0, [r5] - adds r0, 0x7 - ldrh r1, [r4] - adds r1, 0x8 - mov r3, r8 - lsrs r2, r3, 16 - bl MapGridSetMetatileIdAt - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, r7 - bcc _08138A5E -_08138A92: - bl DrawWholeMapView - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end PetalburgGymFunc - - thumb_func_start PetalburgGymSpecial2 -PetalburgGymSpecial2: @ 8138AA4 - push {lr} - ldr r0, =gSpecialVar_0x8004 - ldrb r0, [r0] - ldr r1, =gUnknown_085B2B7E - ldrh r1, [r1, 0x8] - bl PetalburgGymFunc - pop {r0} - bx r0 - .pool - thumb_func_end PetalburgGymSpecial2 - - thumb_func_start ShowFieldMessageStringVar4 -ShowFieldMessageStringVar4: @ 8138AC0 - push {lr} - ldr r0, =gStringVar4 - bl ShowFieldMessage - pop {r0} - bx r0 - .pool - thumb_func_end ShowFieldMessageStringVar4 - - thumb_func_start StorePlayerCoordsInVars -StorePlayerCoordsInVars: @ 8138AD0 - ldr r1, =gSpecialVar_0x8004 - ldr r0, =gSaveBlock1Ptr - ldr r2, [r0] - ldrh r0, [r2] - strh r0, [r1] - ldr r1, =gSpecialVar_0x8005 - ldrh r0, [r2, 0x2] - strh r0, [r1] - bx lr - .pool - thumb_func_end StorePlayerCoordsInVars - - thumb_func_start GetPlayerTrainerIdOnesDigit -GetPlayerTrainerIdOnesDigit: @ 8138AF0 - push {lr} - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r1, [r0, 0xB] - lsls r1, 8 - ldrb r0, [r0, 0xA] - orrs r0, r1 - movs r1, 0xA - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end GetPlayerTrainerIdOnesDigit - - thumb_func_start GetPlayerBigGuyGirlString -GetPlayerBigGuyGirlString: @ 8138B10 - push {lr} - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _08138B34 - ldr r0, =gStringVar1 - ldr r1, =gText_BigGuy - bl StringCopy - b _08138B3C - .pool -_08138B34: - ldr r0, =gStringVar1 - ldr r1, =gText_BigGirl - bl StringCopy -_08138B3C: - pop {r0} - bx r0 - .pool - thumb_func_end GetPlayerBigGuyGirlString - - thumb_func_start GetRivalSonDaughterString -GetRivalSonDaughterString: @ 8138B48 - push {lr} - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _08138B6C - ldr r0, =gStringVar1 - ldr r1, =gText_Daughter - bl StringCopy - b _08138B74 - .pool -_08138B6C: - ldr r0, =gStringVar1 - ldr r1, =gText_Son - bl StringCopy -_08138B74: - pop {r0} - bx r0 - .pool - thumb_func_end GetRivalSonDaughterString - - thumb_func_start sub_8138B80 -sub_8138B80: @ 8138B80 - ldr r0, =gBattleOutcome - ldrb r0, [r0] - bx lr - .pool - thumb_func_end sub_8138B80 - - thumb_func_start CableCarWarp -CableCarWarp: @ 8138B8C - push {lr} - sub sp, 0x4 - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r0, 0 - beq _08138BB0 - movs r2, 0x1 - negs r2, r2 - movs r0, 0x4 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r3, 0x6 - bl Overworld_SetWarpDestination - b _08138BC2 - .pool -_08138BB0: - movs r2, 0x1 - negs r2, r2 - movs r0, 0x4 - str r0, [sp] - movs r0, 0x13 - movs r1, 0x1 - movs r3, 0x6 - bl Overworld_SetWarpDestination -_08138BC2: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end CableCarWarp - - thumb_func_start SetFlagInVar -SetFlagInVar: @ 8138BC8 - push {lr} - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - bl FlagSet - pop {r0} - bx r0 - .pool - thumb_func_end SetFlagInVar - - thumb_func_start GetWeekCount -GetWeekCount: @ 8138BDC - push {lr} - ldr r0, =gLocalTime - movs r1, 0 - ldrsh r0, [r0, r1] - movs r1, 0x7 - bl __divsi3 - lsls r0, 16 - lsrs r0, 16 - ldr r1, =0x0000270f - cmp r0, r1 - bls _08138BF6 - adds r0, r1, 0 -_08138BF6: - pop {r1} - bx r1 - .pool - thumb_func_end GetWeekCount - - thumb_func_start GetLeadMonFriendshipScore -GetLeadMonFriendshipScore: @ 8138C04 - push {r4,lr} - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - cmp r0, 0xFF - bne _08138C2C - movs r0, 0x6 - b _08138C7E - .pool -_08138C2C: - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - cmp r0, 0xC7 - bls _08138C3C - movs r0, 0x5 - b _08138C7E -_08138C3C: - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - cmp r0, 0x95 - bls _08138C4C - movs r0, 0x4 - b _08138C7E -_08138C4C: - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - cmp r0, 0x63 - bls _08138C5C - movs r0, 0x3 - b _08138C7E -_08138C5C: - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - cmp r0, 0x31 - bls _08138C6C - movs r0, 0x2 - b _08138C7E -_08138C6C: - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - cmp r0, 0 - bne _08138C7C - movs r0, 0 - b _08138C7E -_08138C7C: - movs r0, 0x1 -_08138C7E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetLeadMonFriendshipScore - - thumb_func_start CB2_FieldShowRegionMap -CB2_FieldShowRegionMap: @ 8138C84 - push {lr} - ldr r0, =CB2_ReturnToFieldContinueScriptPlayMapMusic - bl sub_817018C - pop {r0} - bx r0 - .pool - thumb_func_end CB2_FieldShowRegionMap - - thumb_func_start FieldShowRegionMap -FieldShowRegionMap: @ 8138C94 - push {lr} - ldr r0, =CB2_FieldShowRegionMap - bl SetMainCallback2 - pop {r0} - bx r0 - .pool - thumb_func_end FieldShowRegionMap - - thumb_func_start DoPCTurnOnEffect -DoPCTurnOnEffect: @ 8138CA4 - push {r4,lr} - ldr r4, =Task_PCTurnOnEffect - adds r0, r4, 0 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08138CD8 - adds r0, r4, 0 - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0 - strh r2, [r1, 0x8] - strh r0, [r1, 0xA] - strh r2, [r1, 0xC] - strh r2, [r1, 0xE] - strh r2, [r1, 0x10] -_08138CD8: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end DoPCTurnOnEffect - - thumb_func_start Task_PCTurnOnEffect -Task_PCTurnOnEffect: @ 8138CE8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks - adds r1, r0 - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _08138D06 - adds r0, r1, 0 - bl PCTurnOnEffect_0 -_08138D06: - pop {r0} - bx r0 - .pool - thumb_func_end Task_PCTurnOnEffect - - thumb_func_start PCTurnOnEffect_0 -PCTurnOnEffect_0: @ 8138D10 - push {r4-r6,lr} - adds r4, r0, 0 - movs r6, 0 - movs r5, 0 - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0x6 - bne _08138D7C - strh r5, [r4, 0xE] - bl GetPlayerFacingDirection - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x3 - beq _08138D44 - cmp r0, 0x3 - bgt _08138D3A - cmp r0, 0x2 - beq _08138D40 - b _08138D4C -_08138D3A: - cmp r1, 0x4 - beq _08138D48 - b _08138D4C -_08138D40: - movs r6, 0 - b _08138D4A -_08138D44: - movs r6, 0xFF - b _08138D4A -_08138D48: - movs r6, 0x1 -_08138D4A: - movs r5, 0xFF -_08138D4C: - movs r1, 0x10 - ldrsh r0, [r4, r1] - lsls r1, r6, 24 - asrs r1, 24 - lsls r2, r5, 24 - asrs r2, 24 - bl PCTurnOnEffect_1 - bl DrawWholeMapView - ldrh r0, [r4, 0x10] - movs r1, 0x1 - eors r0, r1 - strh r0, [r4, 0x10] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - bne _08138D7C - ldrb r0, [r4, 0xA] - bl DestroyTask -_08138D7C: - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end PCTurnOnEffect_0 - - thumb_func_start PCTurnOnEffect_1 -PCTurnOnEffect_1: @ 8138D88 - push {r4,r5,lr} - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r4, r2, 24 - movs r3, 0 - lsls r0, 16 - cmp r0, 0 - beq _08138DC4 - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r0, 0 - bne _08138DAC - movs r3, 0x4 - b _08138DE6 - .pool -_08138DAC: - cmp r0, 0x1 - bne _08138DB8 - ldr r3, =0x0000025a - b _08138DE6 - .pool -_08138DB8: - cmp r0, 0x2 - bne _08138DE6 - ldr r3, =0x00000259 - b _08138DE6 - .pool -_08138DC4: - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r0, 0 - bne _08138DD4 - movs r3, 0x5 - b _08138DE6 - .pool -_08138DD4: - cmp r0, 0x1 - bne _08138DE0 - ldr r3, =0x0000027f - b _08138DE6 - .pool -_08138DE0: - cmp r0, 0x2 - bne _08138DE6 - ldr r3, =0x0000027e -_08138DE6: - ldr r0, =gSaveBlock1Ptr - ldr r2, [r0] - movs r5, 0 - ldrsh r0, [r2, r5] - lsls r1, 24 - asrs r1, 24 - adds r0, r1 - adds r0, 0x7 - movs r5, 0x2 - ldrsh r1, [r2, r5] - lsls r2, r4, 24 - asrs r2, 24 - adds r1, r2 - adds r1, 0x7 - movs r4, 0xC0 - lsls r4, 4 - adds r2, r4, 0 - orrs r3, r2 - adds r2, r3, 0 - bl MapGridSetMetatileIdAt - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end PCTurnOnEffect_1 - - thumb_func_start DoPCTurnOffEffect -DoPCTurnOffEffect: @ 8138E20 - push {lr} - bl PCTurnOffEffect - pop {r0} - bx r0 - thumb_func_end DoPCTurnOffEffect - - thumb_func_start PCTurnOffEffect -PCTurnOffEffect: @ 8138E2C - push {r4-r6,lr} - movs r6, 0 - movs r5, 0 - movs r4, 0 - bl GetPlayerFacingDirection - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x3 - beq _08138E56 - cmp r0, 0x3 - bgt _08138E4C - cmp r0, 0x2 - beq _08138E52 - b _08138E5E -_08138E4C: - cmp r1, 0x4 - beq _08138E5A - b _08138E5E -_08138E52: - movs r6, 0 - b _08138E5C -_08138E56: - movs r6, 0xFF - b _08138E5C -_08138E5A: - movs r6, 0x1 -_08138E5C: - movs r5, 0xFF -_08138E5E: - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r0, 0 - bne _08138E70 - movs r4, 0x4 - b _08138E82 - .pool -_08138E70: - cmp r0, 0x1 - bne _08138E7C - ldr r4, =0x0000025a - b _08138E82 - .pool -_08138E7C: - cmp r0, 0x2 - bne _08138E82 - ldr r4, =0x00000259 -_08138E82: - ldr r0, =gSaveBlock1Ptr - ldr r2, [r0] - movs r1, 0 - ldrsh r0, [r2, r1] - lsls r1, r6, 24 - asrs r1, 24 - adds r0, r1 - adds r0, 0x7 - movs r3, 0x2 - ldrsh r1, [r2, r3] - lsls r2, r5, 24 - asrs r2, 24 - adds r1, r2 - adds r1, 0x7 - movs r3, 0xC0 - lsls r3, 4 - adds r2, r3, 0 - orrs r4, r2 - adds r2, r4, 0 - bl MapGridSetMetatileIdAt - bl DrawWholeMapView - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end PCTurnOffEffect - - thumb_func_start DoLotteryCornerComputerEffect -DoLotteryCornerComputerEffect: @ 8138EC0 - push {r4,lr} - ldr r4, =Task_LotteryCornerComputerEffect - adds r0, r4, 0 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08138EF4 - adds r0, r4, 0 - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0 - strh r2, [r1, 0x8] - strh r0, [r1, 0xA] - strh r2, [r1, 0xC] - strh r2, [r1, 0xE] - strh r2, [r1, 0x10] -_08138EF4: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end DoLotteryCornerComputerEffect - - thumb_func_start Task_LotteryCornerComputerEffect -Task_LotteryCornerComputerEffect: @ 8138F04 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks - adds r1, r0 - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _08138F22 - adds r0, r1, 0 - bl LotteryCornerComputerEffect -_08138F22: - pop {r0} - bx r0 - .pool - thumb_func_end Task_LotteryCornerComputerEffect - - thumb_func_start LotteryCornerComputerEffect -LotteryCornerComputerEffect: @ 8138F2C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0x6 - bne _08138F9A - movs r0, 0 - strh r0, [r4, 0xE] - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _08138F64 - ldr r2, =0x00000e9d - movs r0, 0x12 - movs r1, 0x8 - bl MapGridSetMetatileIdAt - ldr r2, =0x00000ea5 - movs r0, 0x12 - movs r1, 0x9 - bl MapGridSetMetatileIdAt - b _08138F7A - .pool -_08138F64: - ldr r2, =0x00000e58 - movs r0, 0x12 - movs r1, 0x8 - bl MapGridSetMetatileIdAt - movs r2, 0xE6 - lsls r2, 4 - movs r0, 0x12 - movs r1, 0x9 - bl MapGridSetMetatileIdAt -_08138F7A: - bl DrawWholeMapView - ldrh r0, [r4, 0x10] - movs r1, 0x1 - eors r0, r1 - strh r0, [r4, 0x10] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - bne _08138F9A - ldrb r0, [r4, 0xA] - bl DestroyTask -_08138F9A: - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end LotteryCornerComputerEffect - - thumb_func_start EndLotteryCornerComputerEffect -EndLotteryCornerComputerEffect: @ 8138FAC - push {lr} - ldr r2, =0x00000e9d - movs r0, 0x12 - movs r1, 0x8 - bl MapGridSetMetatileIdAt - ldr r2, =0x00000ea5 - movs r0, 0x12 - movs r1, 0x9 - bl MapGridSetMetatileIdAt - bl DrawWholeMapView - pop {r0} - bx r0 - .pool - thumb_func_end EndLotteryCornerComputerEffect - - thumb_func_start SetTrickHouseEndRoomFlag -SetTrickHouseEndRoomFlag: @ 8138FD4 - push {lr} - ldr r1, =gSpecialVar_0x8004 - ldr r0, =0x000001f5 - strh r0, [r1] - bl FlagSet - pop {r0} - bx r0 - .pool - thumb_func_end SetTrickHouseEndRoomFlag - - thumb_func_start ResetTrickHouseEndRoomFlag -ResetTrickHouseEndRoomFlag: @ 8138FEC - push {lr} - ldr r1, =gSpecialVar_0x8004 - ldr r0, =0x000001f5 - strh r0, [r1] - bl FlagClear - pop {r0} - bx r0 - .pool - thumb_func_end ResetTrickHouseEndRoomFlag - - thumb_func_start CheckLeadMonCool -CheckLeadMonCool: @ 8139004 - push {lr} - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x16 - bl GetMonData - cmp r0, 0xC7 - bls _08139028 - movs r0, 0x1 - b _0813902A - .pool -_08139028: - movs r0, 0 -_0813902A: - pop {r1} - bx r1 - thumb_func_end CheckLeadMonCool - - thumb_func_start CheckLeadMonBeauty -CheckLeadMonBeauty: @ 8139030 - push {lr} - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x17 - bl GetMonData - cmp r0, 0xC7 - bls _08139054 - movs r0, 0x1 - b _08139056 - .pool -_08139054: - movs r0, 0 -_08139056: - pop {r1} - bx r1 - thumb_func_end CheckLeadMonBeauty - - thumb_func_start CheckLeadMonCute -CheckLeadMonCute: @ 813905C - push {lr} - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x18 - bl GetMonData - cmp r0, 0xC7 - bls _08139080 - movs r0, 0x1 - b _08139082 - .pool -_08139080: - movs r0, 0 -_08139082: - pop {r1} - bx r1 - thumb_func_end CheckLeadMonCute - - thumb_func_start CheckLeadMonSmart -CheckLeadMonSmart: @ 8139088 - push {lr} - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x21 - bl GetMonData - cmp r0, 0xC7 - bls _081390AC - movs r0, 0x1 - b _081390AE - .pool -_081390AC: - movs r0, 0 -_081390AE: - pop {r1} - bx r1 - thumb_func_end CheckLeadMonSmart - - thumb_func_start CheckLeadMonTough -CheckLeadMonTough: @ 81390B4 - push {lr} - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x2F - bl GetMonData - cmp r0, 0xC7 - bls _081390D8 - movs r0, 0x1 - b _081390DA - .pool -_081390D8: - movs r0, 0 -_081390DA: - pop {r1} - bx r1 - thumb_func_end CheckLeadMonTough - - thumb_func_start IsGrassTypeInParty -IsGrassTypeInParty: @ 81390E0 - push {r4-r6,lr} - movs r5, 0 - ldr r6, =gBaseStats -_081390E6: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x5 - bl GetMonData - cmp r0, 0 - beq _0813913C - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _0813913C - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r0, [r1, 0x6] - cmp r0, 0xC - beq _08139128 - ldrb r0, [r1, 0x7] - cmp r0, 0xC - bne _0813913C -_08139128: - ldr r1, =gSpecialVar_Result - movs r0, 0x1 - b _0813914A - .pool -_0813913C: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _081390E6 - ldr r1, =gSpecialVar_Result - movs r0, 0 -_0813914A: - strh r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end IsGrassTypeInParty - - thumb_func_start SpawnScriptEventObject -SpawnScriptEventObject: @ 8139158 - push {lr} - sub sp, 0x8 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrh r3, [r0] - adds r3, 0x7 - lsls r3, 16 - asrs r3, 16 - ldrh r0, [r0, 0x2] - adds r0, 0x7 - lsls r0, 16 - asrs r0, 16 - str r0, [sp] - movs r0, 0x3 - str r0, [sp, 0x4] - movs r0, 0x7 - movs r1, 0x8 - movs r2, 0x7F - bl SpawnSpecialEventObjectParameterized - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gEventObjects - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1, 0x1] - movs r2, 0x20 - orrs r0, r2 - strb r0, [r1, 0x1] - ldrb r0, [r1, 0x4] - bl CameraObjectSetFollowedObjectId - add sp, 0x8 - pop {r0} - bx r0 - .pool - thumb_func_end SpawnScriptEventObject - - thumb_func_start RemoveScriptEventObject -RemoveScriptEventObject: @ 81391AC - push {lr} - bl GetPlayerAvatarObjectId - lsls r0, 24 - lsrs r0, 24 - bl CameraObjectSetFollowedObjectId - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrb r1, [r0, 0x5] - ldrb r2, [r0, 0x4] - movs r0, 0x7F - bl RemoveEventObjectByLocalIdAndMap - pop {r0} - bx r0 - .pool - thumb_func_end RemoveScriptEventObject - - thumb_func_start GetPokeblockNameByMonNature -GetPokeblockNameByMonNature: @ 81391D0 - push {lr} - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - bl GetNature - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gStringVar1 - bl CopyMonFavoritePokeblockName - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end GetPokeblockNameByMonNature - - thumb_func_start GetSecretBaseNearbyMapName -GetSecretBaseNearbyMapName: @ 8139200 - push {r4,lr} - ldr r4, =gStringVar1 - ldr r0, =0x00004026 - bl VarGet - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - movs r2, 0 - bl GetMapName - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end GetSecretBaseNearbyMapName - - thumb_func_start sub_8139228 -sub_8139228: @ 8139228 - push {lr} - movs r0, 0x20 - bl GetGameStat - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_8139228 - - thumb_func_start sub_8139238 -sub_8139238: @ 8139238 - push {lr} - ldr r0, =gStringVar1 - bl GetEreaderTrainerName - pop {r0} - bx r0 - .pool - thumb_func_end sub_8139238 - - thumb_func_start sub_8139248 -sub_8139248: @ 8139248 - push {r4,r5,lr} - ldr r0, =gSaveBlock1Ptr - ldr r2, [r0] - ldr r1, =0x00002e68 - adds r0, r2, r1 - ldrb r1, [r0] - lsls r1, 25 - ldr r0, =0x00002e6a - adds r2, r0 - lsrs r1, 25 - ldrh r2, [r2] - adds r1, r2 - ldr r2, =gUnknown_085B2B88 - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - adds r0, r2 - ldrb r0, [r0] - adds r5, r1, r0 - movs r0, 0x2 - bl GetPriceReduction - lsls r0, 24 - cmp r0, 0 - bne _08139294 - ldr r4, =gUnknown_085B2B94 - b _08139296 - .pool -_08139294: - ldr r4, =gUnknown_085B2BA0 -_08139296: - adds r0, r5, 0 - movs r1, 0xC - bl __umodsi3 - adds r0, r4 - ldrb r0, [r0] - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8139248 - - thumb_func_start sub_81392AC -sub_81392AC: @ 81392AC - push {lr} - ldr r1, =gSpecialVar_0x8004 - ldr r0, =0x00000213 - strh r0, [r1] - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _081392CC - movs r0, 0x1 - b _081392CE - .pool -_081392CC: - movs r0, 0 -_081392CE: - pop {r1} - bx r1 - thumb_func_end sub_81392AC - - thumb_func_start sub_81392D4 -sub_81392D4: @ 81392D4 - push {lr} - ldr r1, =gSpecialVar_0x8004 - movs r0, 0x85 - lsls r0, 2 - strh r0, [r1] - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _081392F0 - movs r0, 0x1 - b _081392F2 - .pool -_081392F0: - movs r0, 0 -_081392F2: - pop {r1} - bx r1 - thumb_func_end sub_81392D4 - - thumb_func_start sub_81392F8 -sub_81392F8: @ 81392F8 - push {lr} - ldr r1, =gSpecialVar_0x8004 - ldr r0, =0x00000215 - strh r0, [r1] - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _08139318 - movs r0, 0x1 - b _0813931A - .pool -_08139318: - movs r0, 0 -_0813931A: - pop {r1} - bx r1 - thumb_func_end sub_81392F8 - - thumb_func_start sub_8139320 -sub_8139320: @ 8139320 - push {lr} - ldr r1, =gSpecialVar_0x8004 - ldr r0, =0x00000216 - strh r0, [r1] - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _08139340 - movs r0, 0x1 - b _08139342 - .pool -_08139340: - movs r0, 0 -_08139342: - pop {r1} - bx r1 - thumb_func_end sub_8139320 - - thumb_func_start LeadMonHasEffortRibbon -LeadMonHasEffortRibbon: @ 8139348 - push {lr} - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x47 - movs r2, 0 - bl GetMonData - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end LeadMonHasEffortRibbon - - thumb_func_start GiveLeadMonEffortRibbon -GiveLeadMonEffortRibbon: @ 8139370 - push {r4,lr} - sub sp, 0x4 - movs r0, 0x2A - bl IncrementGameStat - ldr r0, =0x0000089b - bl FlagSet - movs r1, 0x1 - mov r0, sp - strb r1, [r0] - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x47 - mov r2, sp - bl SetMonData - adds r0, r4, 0 - bl GetRibbonCount - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bls _081393B6 - adds r0, r4, 0 - movs r1, 0x47 - bl sub_80EE4DC -_081393B6: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end GiveLeadMonEffortRibbon - - thumb_func_start Special_AreLeadMonEVsMaxedOut -Special_AreLeadMonEVsMaxedOut: @ 81393C8 - push {lr} - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - bl GetMonEVCount - lsls r0, 16 - ldr r1, =0x01fd0000 - cmp r0, r1 - bhi _081393F4 - movs r0, 0 - b _081393F6 - .pool -_081393F4: - movs r0, 0x1 -_081393F6: - pop {r1} - bx r1 - thumb_func_end Special_AreLeadMonEVsMaxedOut - - thumb_func_start sub_81393FC -sub_81393FC: @ 81393FC - push {lr} - movs r0, 0xC7 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _08139454 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrh r1, [r0, 0x4] - movs r0, 0x83 - lsls r0, 3 - cmp r1, r0 - bne _08139454 - subs r0, 0x75 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _08139434 - ldr r0, =0x0000409a - movs r1, 0x4 - b _08139446 - .pool -_08139434: - movs r0, 0xE9 - lsls r0, 2 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _08139454 - ldr r0, =0x0000409a - movs r1, 0x5 -_08139446: - bl VarSet - movs r0, 0x1 - b _08139456 - .pool -_08139454: - movs r0, 0 -_08139456: - pop {r1} - bx r1 - thumb_func_end sub_81393FC - - thumb_func_start SetShoalItemFlag -SetShoalItemFlag: @ 813945C - push {lr} - ldr r0, =0x000008bf - bl FlagSet - pop {r0} - bx r0 - .pool - thumb_func_end SetShoalItemFlag - - thumb_func_start PutZigzagoonInPlayerParty -PutZigzagoonInPlayerParty: @ 813946C - push {r4,r5,lr} - sub sp, 0x14 - ldr r5, =gPlayerParty - movs r1, 0x90 - lsls r1, 1 - movs r4, 0 - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - adds r0, r5, 0 - movs r2, 0x7 - movs r3, 0x20 - bl CreateMon - movs r1, 0x1 - add r0, sp, 0x10 - strh r1, [r0] - adds r0, r5, 0 - movs r1, 0x2E - add r2, sp, 0x10 - bl SetMonData - add r1, sp, 0x10 - movs r0, 0x21 - strh r0, [r1] - adds r0, r5, 0 - movs r1, 0xD - add r2, sp, 0x10 - bl SetMonData - add r0, sp, 0x10 - strh r4, [r0] - adds r0, r5, 0 - movs r1, 0xE - add r2, sp, 0x10 - bl SetMonData - adds r0, r5, 0 - movs r1, 0xF - add r2, sp, 0x10 - bl SetMonData - adds r0, r5, 0 - movs r1, 0x10 - add r2, sp, 0x10 - bl SetMonData - add sp, 0x14 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end PutZigzagoonInPlayerParty - - thumb_func_start IsStarterInParty -IsStarterInParty: @ 81394D8 - push {r4-r6,lr} - ldr r0, =0x00004023 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - bl GetStarterPokemon - lsls r0, 16 - lsrs r6, r0, 16 - bl CalculatePlayerPartyCount - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - cmp r4, r5 - bcs _08139526 -_081394FA: - movs r0, 0x64 - muls r0, r4 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x41 - movs r2, 0 - bl GetMonData - cmp r0, r6 - bne _0813951C - movs r0, 0x1 - b _08139528 - .pool -_0813951C: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _081394FA -_08139526: - movs r0, 0 -_08139528: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end IsStarterInParty - - thumb_func_start ScriptCheckFreePokemonStorageSpace -ScriptCheckFreePokemonStorageSpace: @ 8139530 - push {lr} - bl CheckFreePokemonStorageSpace - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end ScriptCheckFreePokemonStorageSpace - - thumb_func_start IsPokerusInParty -IsPokerusInParty: @ 8139540 - push {lr} - ldr r0, =gPlayerParty - movs r1, 0x3F - bl CheckPartyPokerus - lsls r0, 24 - cmp r0, 0 - beq _08139558 - movs r0, 0x1 - b _0813955A - .pool -_08139558: - movs r0, 0 -_0813955A: - pop {r1} - bx r1 - thumb_func_end IsPokerusInParty - - thumb_func_start sub_8139560 -sub_8139560: @ 8139560 - push {lr} - ldr r0, =sub_81395BC - movs r1, 0x9 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, =gSpecialVar_0x8005 - ldrh r0, [r0] - movs r2, 0 - strh r0, [r1, 0x8] - strh r2, [r1, 0xA] - ldr r0, =gSpecialVar_0x8006 - ldrh r0, [r0] - strh r0, [r1, 0xC] - ldr r0, =gSpecialVar_0x8007 - ldrh r0, [r0] - strh r0, [r1, 0xE] - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - strh r0, [r1, 0x10] - movs r0, 0 - bl SetCameraPanningCallback - movs r0, 0xD6 - bl PlaySE - pop {r0} - bx r0 - .pool - thumb_func_end sub_8139560 - - thumb_func_start sub_81395BC -sub_81395BC: @ 81395BC - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - movs r1, 0x2 - ldrsh r0, [r4, r1] - movs r2, 0x6 - ldrsh r1, [r4, r2] - bl __modsi3 - cmp r0, 0 - bne _08139614 - strh r0, [r4, 0x2] - ldrh r0, [r4, 0x4] - subs r0, 0x1 - strh r0, [r4, 0x4] - ldrh r0, [r4] - negs r0, r0 - strh r0, [r4] - ldrh r0, [r4, 0x8] - negs r0, r0 - strh r0, [r4, 0x8] - movs r1, 0 - ldrsh r0, [r4, r1] - movs r2, 0x8 - ldrsh r1, [r4, r2] - bl SetCameraPanning - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08139614 - adds r0, r5, 0 - bl sub_8139620 - bl InstallCameraPanAheadCallback -_08139614: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81395BC - - thumb_func_start sub_8139620 -sub_8139620: @ 8139620 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - bl EnableBothScriptContexts - pop {r0} - bx r0 - thumb_func_end sub_8139620 - - thumb_func_start sub_8139634 -sub_8139634: @ 8139634 - push {lr} - movs r0, 0x95 - lsls r0, 2 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_8139634 - - thumb_func_start SetRoute119Weather -SetRoute119Weather: @ 8139648 - push {lr} - bl get_map_light_from_warp0 - lsls r0, 24 - lsrs r0, 24 - bl is_map_type_1_2_3_5_or_6 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08139664 - movs r0, 0x14 - bl SetSav1Weather -_08139664: - pop {r0} - bx r0 - thumb_func_end SetRoute119Weather - - thumb_func_start SetRoute123Weather -SetRoute123Weather: @ 8139668 - push {lr} - bl get_map_light_from_warp0 - lsls r0, 24 - lsrs r0, 24 - bl is_map_type_1_2_3_5_or_6 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08139684 - movs r0, 0x15 - bl SetSav1Weather -_08139684: - pop {r0} - bx r0 - thumb_func_end SetRoute123Weather - - thumb_func_start GetLeadMonIndex -GetLeadMonIndex: @ 8139688 - push {r4-r6,lr} - bl CalculatePlayerPartyCount - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 - cmp r5, r6 - bcs _081396D6 -_08139698: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x41 - movs r2, 0 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _081396CC - adds r0, r4, 0 - movs r1, 0x41 - movs r2, 0 - bl GetMonData - cmp r0, 0 - beq _081396CC - adds r0, r5, 0 - b _081396D8 - .pool -_081396CC: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, r6 - bcc _08139698 -_081396D6: - movs r0, 0 -_081396D8: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end GetLeadMonIndex - - thumb_func_start ScriptGetPartyMonSpecies -ScriptGetPartyMonSpecies: @ 81396E0 - push {lr} - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x41 - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - .pool - thumb_func_end ScriptGetPartyMonSpecies - - thumb_func_start nullsub_54 -nullsub_54: @ 8139708 - bx lr - thumb_func_end nullsub_54 - - thumb_func_start sub_813970C -sub_813970C: @ 813970C - push {r4,lr} - ldr r0, =0x000040c2 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - adds r3, r0, 0 - ldr r2, =gLocalTime - movs r1, 0 - ldrsh r0, [r2, r1] - subs r0, r3 - cmp r0, 0x6 - ble _08139734 - movs r0, 0 - b _0813974C - .pool -_08139734: - ldrh r1, [r2] - movs r4, 0 - ldrsh r0, [r2, r4] - cmp r0, 0 - blt _0813974A - subs r1, r3 - movs r0, 0x7 - subs r0, r1 - lsls r0, 16 - lsrs r0, 16 - b _0813974C -_0813974A: - movs r0, 0x8 -_0813974C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_813970C - - thumb_func_start sub_8139754 -sub_8139754: @ 8139754 - push {r4,lr} - ldr r0, =0x000040c2 - ldr r4, =gLocalTime - ldrh r1, [r4] - bl VarSet - ldrh r0, [r4] - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8139754 - - thumb_func_start sub_8139770 -sub_8139770: @ 8139770 - push {r4-r6,lr} - ldr r6, =gSpecialVar_0x8004 - ldrh r0, [r6] - movs r5, 0x64 - muls r0, r5 - ldr r4, =gPlayerParty - adds r0, r4 - movs r1, 0x3 - bl GetMonData - cmp r0, 0x2 - bne _081397A6 - ldrh r0, [r6] - muls r0, r5 - adds r0, r4 - ldr r4, =gStringVar1 - movs r1, 0x7 - adds r2, r4, 0 - bl GetMonData - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r1, r4, 0 - bl StringCompare - cmp r0, 0 - beq _081397BC -_081397A6: - movs r0, 0x1 - b _081397BE - .pool -_081397BC: - movs r0, 0 -_081397BE: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8139770 - - thumb_func_start sub_81397C4 -sub_81397C4: @ 81397C4 - push {r4,r5,lr} - ldr r2, =gSpecialVar_Result - ldrh r1, [r2] - ldr r0, =0x0000270f - cmp r1, r0 - bls _081397E0 - movs r0, 0 - bl TV_PrintIntToStringVar - b _08139862 - .pool -_081397E0: - ldr r0, =0x000003e7 - cmp r1, r0 - bls _081397F8 - ldr r4, =gStringVar1 - movs r0, 0xA1 - strb r0, [r4] - adds r4, 0x1 - b _0813981C - .pool -_081397F8: - cmp r1, 0x63 - bls _0813980C - ldr r4, =gStringVar1 - movs r0, 0xA1 - strb r0, [r4] - strb r0, [r4, 0x1] - adds r4, 0x2 - b _0813981C - .pool -_0813980C: - cmp r1, 0x9 - bls _0813983C - ldr r4, =gStringVar1 - movs r0, 0xA1 - strb r0, [r4] - strb r0, [r4, 0x1] - strb r0, [r4, 0x2] - adds r4, 0x3 -_0813981C: - ldrh r5, [r2] - adds r0, r5, 0 - bl CountDigits - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0 - bl ConvertIntToDecimalStringN - b _08139862 - .pool -_0813983C: - ldr r4, =gStringVar1 - movs r0, 0xA1 - strb r0, [r4] - strb r0, [r4, 0x1] - strb r0, [r4, 0x2] - strb r0, [r4, 0x3] - adds r4, 0x4 - ldrh r5, [r2] - adds r0, r5, 0 - bl CountDigits - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0 - bl ConvertIntToDecimalStringN -_08139862: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81397C4 - - thumb_func_start sub_813986C -sub_813986C: @ 813986C - push {lr} - ldr r0, =gSpecialVar_Result - ldrh r0, [r0] - cmp r0, 0x4 - bhi _081398B8 - lsls r0, 2 - ldr r1, =_08139888 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08139888: - .4byte _0813989C - .4byte _081398A0 - .4byte _081398A4 - .4byte _081398A8 - .4byte _081398AC -_0813989C: - movs r0, 0x3 - b _081398AE -_081398A0: - movs r0, 0x4 - b _081398AE -_081398A4: - movs r0, 0 - b _081398AE -_081398A8: - movs r0, 0x1 - b _081398AE -_081398AC: - movs r0, 0x2 -_081398AE: - bl mevent_081445C0 - lsls r0, 16 - lsrs r0, 16 - b _081398BA -_081398B8: - movs r0, 0 -_081398BA: - pop {r1} - bx r1 - thumb_func_end sub_813986C - - thumb_func_start sub_81398C0 -sub_81398C0: @ 81398C0 - push {r4,lr} - ldr r1, =gSpecialVar_0x8004 - ldr r2, =0xfffffedf - adds r0, r2, 0 - ldrh r2, [r1] - adds r0, r2 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x39 - bls _081398E0 - movs r0, 0 - b _081398FC - .pool -_081398E0: - ldr r4, =gStringVar2 - ldrh r0, [r1] - bl ItemIdToBattleMoveId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xD - muls r1, r0 - ldr r0, =gMoveNames - adds r1, r0 - adds r0, r4, 0 - bl StringCopy - movs r0, 0x1 -_081398FC: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81398C0 - - thumb_func_start sub_813990C -sub_813990C: @ 813990C - push {r4,r5,lr} - bl CalculatePlayerPartyCount - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - cmp r4, r5 - bcs _08139942 -_0813991C: - movs r0, 0x64 - muls r0, r4 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x4 - bl GetMonData - cmp r0, 0x1 - bne _08139938 - movs r0, 0x1 - b _08139944 - .pool -_08139938: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _0813991C -_08139942: - movs r0, 0 -_08139944: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_813990C - - thumb_func_start InMultiBattleRoom -InMultiBattleRoom: @ 813994C - push {lr} - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrh r1, [r0, 0x4] - ldr r0, =0x00000f1a - cmp r1, r0 - bne _08139978 - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2 - bne _08139978 - movs r0, 0x1 - b _0813997A - .pool -_08139978: - movs r0, 0 -_0813997A: - pop {r1} - bx r1 - thumb_func_end InMultiBattleRoom - - thumb_func_start sub_8139980 -sub_8139980: @ 8139980 - push {lr} - movs r0, 0 - bl SetCameraPanningCallback - movs r0, 0x8 - movs r1, 0 - bl SetCameraPanning - pop {r0} - bx r0 - thumb_func_end sub_8139980 - - thumb_func_start sub_8139994 -sub_8139994: @ 8139994 - push {lr} - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x15] - subs r0, 0x10 - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x5 - bhi _081399E4 - lsls r0, 2 - ldr r1, =_081399B8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081399B8: - .4byte _081399E4 - .4byte _081399D0 - .4byte _081399D4 - .4byte _081399D8 - .4byte _081399DC - .4byte _081399E0 -_081399D0: - movs r1, 0x5 - b _081399E6 -_081399D4: - movs r1, 0x6 - b _081399E6 -_081399D8: - movs r1, 0x7 - b _081399E6 -_081399DC: - movs r1, 0x8 - b _081399E6 -_081399E0: - movs r1, 0xF - b _081399E6 -_081399E4: - movs r1, 0x4 -_081399E6: - ldr r0, =0x00004043 - bl VarSet - pop {r0} - bx r0 - .pool - thumb_func_end sub_8139994 - - thumb_func_start sub_81399F4 -sub_81399F4: @ 81399F4 - push {r4,lr} - ldr r2, =gUnknown_0203AB60 - movs r0, 0 - strh r0, [r2] - ldr r1, =gUnknown_0203AB62 - strh r0, [r1] - ldr r0, =gSaveBlock1Ptr - ldr r3, [r0] - movs r0, 0x14 - ldrsb r0, [r3, r0] - adds r4, r1, 0 - cmp r0, 0xD - bne _08139A6E - ldrb r0, [r3, 0x15] - subs r0, 0x10 - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x4 - bhi _08139A6E - lsls r0, 2 - ldr r1, =_08139A34 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08139A34: - .4byte _08139A66 - .4byte _08139A5E - .4byte _08139A56 - .4byte _08139A4E - .4byte _08139A48 -_08139A48: - movs r0, 0 - strh r0, [r2] - b _08139A6C -_08139A4E: - movs r0, 0 - strh r0, [r2] - movs r0, 0x1 - b _08139A6C -_08139A56: - movs r0, 0 - strh r0, [r2] - movs r0, 0x2 - b _08139A6C -_08139A5E: - movs r0, 0 - strh r0, [r2] - movs r0, 0x3 - b _08139A6C -_08139A66: - movs r0, 0 - strh r0, [r2] - movs r0, 0x4 -_08139A6C: - strh r0, [r4] -_08139A6E: - ldrh r0, [r4] - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81399F4 - - thumb_func_start sub_8139A78 -sub_8139A78: @ 8139A78 - push {r4-r6,lr} - ldr r0, =sub_8139AF4 - movs r1, 0x9 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r4, r1, r0 - movs r3, 0 - strh r3, [r4, 0x2] - strh r3, [r4, 0x4] - movs r6, 0x1 - strh r6, [r4, 0x8] - ldr r0, =gSpecialVar_0x8005 - ldr r1, =gSpecialVar_0x8006 - ldrh r2, [r0] - ldrh r0, [r1] - cmp r2, r0 - bls _08139AC0 - subs r0, r2, r0 - lsls r0, 16 - lsrs r5, r0, 16 - strh r6, [r4, 0xC] - b _08139AC8 - .pool -_08139AC0: - subs r0, r2 - lsls r0, 16 - lsrs r5, r0, 16 - strh r3, [r4, 0xC] -_08139AC8: - cmp r5, 0x8 - bls _08139ACE - movs r5, 0x8 -_08139ACE: - ldr r0, =gUnknown_085B2C18 - adds r0, r5, r0 - ldrb r0, [r0] - strh r0, [r4, 0xA] - movs r0, 0 - bl SetCameraPanningCallback - ldrb r1, [r4, 0xC] - adds r0, r5, 0 - bl sub_8139C2C - movs r0, 0x59 - bl PlaySE - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8139A78 - - thumb_func_start sub_8139AF4 -sub_8139AF4: @ 8139AF4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - movs r1, 0x2 - ldrsh r0, [r4, r1] - movs r1, 0x3 - bl __modsi3 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bne _08139B54 - strh r0, [r4, 0x2] - ldrh r0, [r4, 0x4] - adds r0, 0x1 - strh r0, [r4, 0x4] - ldrh r0, [r4, 0x8] - negs r0, r0 - strh r0, [r4, 0x8] - movs r2, 0x8 - ldrsh r1, [r4, r2] - movs r0, 0 - bl SetCameraPanning - movs r0, 0x4 - ldrsh r1, [r4, r0] - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _08139B54 - movs r0, 0x49 - bl PlaySE - adds r0, r5, 0 - bl DestroyTask - bl EnableBothScriptContexts - bl InstallCameraPanAheadCallback -_08139B54: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8139AF4 - - thumb_func_start sub_8139B60 -sub_8139B60: @ 8139B60 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0xC - ldr r5, =gUnknown_0203AB5E - ldr r0, =gUnknown_085B2BAC - bl AddWindow - strb r0, [r5] - ldrb r0, [r5] - movs r1, 0 - bl SetStandardWindowBorderStyle - ldr r4, =gText_ElevatorNowOn - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x40 - bl GetStringCenterAlignXOffset - adds r3, r0, 0 - ldrb r0, [r5] - lsls r3, 24 - lsrs r3, 24 - movs r1, 0x1 - str r1, [sp] - movs r1, 0xFF - mov r9, r1 - str r1, [sp, 0x4] - movs r1, 0 - mov r8, r1 - str r1, [sp, 0x8] - movs r1, 0x1 - adds r2, r4, 0 - bl PrintTextOnWindow - ldr r6, =gElevatorFloorsTable - ldr r4, =gSpecialVar_0x8005 - ldrh r0, [r4] - lsls r0, 2 - adds r0, r6 - ldr r1, [r0] - movs r0, 0x1 - movs r2, 0x40 - bl GetStringCenterAlignXOffset - adds r3, r0, 0 - ldrb r0, [r5] - ldrh r1, [r4] - lsls r1, 2 - adds r1, r6 - ldr r2, [r1] - lsls r3, 24 - lsrs r3, 24 - movs r1, 0x11 - str r1, [sp] - mov r1, r9 - str r1, [sp, 0x4] - mov r1, r8 - str r1, [sp, 0x8] - movs r1, 0x1 - bl PrintTextOnWindow - ldrb r0, [r5] - bl PutWindowTilemap - ldrb r0, [r5] - movs r1, 0x3 - bl CopyWindowToVram - add sp, 0xC - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8139B60 - - thumb_func_start sub_8139C10 -sub_8139C10: @ 8139C10 - push {r4,lr} - ldr r4, =gUnknown_0203AB5E - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8198070 - ldrb r0, [r4] - bl RemoveWindow - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8139C10 - - thumb_func_start sub_8139C2C -sub_8139C2C: @ 8139C2C - push {r4-r6,lr} - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 24 - lsrs r5, r1, 24 - ldr r4, =sub_8139C80 - adds r0, r4, 0 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08139C6C - adds r0, r4, 0 - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0x8] - strh r0, [r1, 0xA] - strh r5, [r1, 0xC] - ldr r0, =gUnknown_085B2C21 - adds r0, r6, r0 - ldrb r0, [r0] - strh r0, [r1, 0xE] -_08139C6C: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8139C2C - - thumb_func_start sub_8139C80 -sub_8139C80: @ 8139C80 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - lsls r0, 2 - ldr r1, [sp] - adds r0, r1 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r6, r0, r1 - movs r2, 0x2 - ldrsh r0, [r6, r2] - cmp r0, 0x6 - bne _08139D7C - ldrh r0, [r6] - adds r0, 0x1 - strh r0, [r6] - movs r1, 0x4 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _08139D10 - movs r1, 0 - ldr r2, =gUnknown_085B2BF4 - mov r10, r2 -_08139CBA: - movs r5, 0 - adds r7, r1, 0x7 - lsls r0, r1, 1 - adds r2, r1, 0x1 - mov r8, r2 - adds r0, r1 - lsls r0, 1 - mov r9, r0 -_08139CCA: - adds r4, r5, 0 - adds r4, 0x8 - movs r1, 0 - ldrsh r0, [r6, r1] - movs r1, 0x3 - bl __modsi3 - lsls r0, 16 - asrs r0, 15 - add r0, r9 - add r0, r10 - ldrh r0, [r0] - movs r1, 0xC0 - lsls r1, 4 - adds r2, r1, 0 - orrs r2, r0 - adds r0, r4, 0 - adds r1, r7, 0 - bl MapGridSetMetatileIdAt - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _08139CCA - mov r2, r8 - lsls r0, r2, 24 - lsrs r1, r0, 24 - cmp r1, 0x2 - bls _08139CBA - b _08139D62 - .pool -_08139D10: - movs r1, 0 - ldr r0, =gUnknown_085B2C06 - mov r10, r0 -_08139D16: - movs r5, 0 - adds r7, r1, 0x7 - lsls r0, r1, 1 - adds r2, r1, 0x1 - mov r8, r2 - adds r0, r1 - lsls r0, 1 - mov r9, r0 -_08139D26: - adds r4, r5, 0 - adds r4, 0x8 - movs r1, 0 - ldrsh r0, [r6, r1] - movs r1, 0x3 - bl __modsi3 - lsls r0, 16 - asrs r0, 15 - add r0, r9 - add r0, r10 - ldrh r0, [r0] - movs r1, 0xC0 - lsls r1, 4 - adds r2, r1, 0 - orrs r2, r0 - adds r0, r4, 0 - adds r1, r7, 0 - bl MapGridSetMetatileIdAt - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _08139D26 - mov r2, r8 - lsls r0, r2, 24 - lsrs r1, r0, 24 - cmp r1, 0x2 - bls _08139D16 -_08139D62: - bl DrawWholeMapView - movs r0, 0 - strh r0, [r6, 0x2] - movs r0, 0 - ldrsh r1, [r6, r0] - movs r2, 0x6 - ldrsh r0, [r6, r2] - cmp r1, r0 - bne _08139D7C - ldr r0, [sp] - bl DestroyTask -_08139D7C: - ldrh r0, [r6, 0x2] - adds r0, 0x1 - strh r0, [r6, 0x2] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8139C80 - - thumb_func_start sub_8139D98 -sub_8139D98: @ 8139D98 - push {r4-r7,lr} - sub sp, 0x18 - ldr r6, =gSpecialVar_0x8004 - ldrh r0, [r6] - movs r5, 0x64 - muls r0, r5 - ldr r4, =gPlayerParty - adds r0, r4 - movs r1, 0x27 - bl GetMonData - str r0, [sp] - ldrh r0, [r6] - muls r0, r5 - adds r0, r4 - movs r1, 0x28 - bl GetMonData - str r0, [sp, 0x4] - ldrh r0, [r6] - muls r0, r5 - adds r0, r4 - movs r1, 0x29 - bl GetMonData - str r0, [sp, 0x8] - ldrh r0, [r6] - muls r0, r5 - adds r0, r4 - movs r1, 0x2A - bl GetMonData - str r0, [sp, 0xC] - ldrh r0, [r6] - muls r0, r5 - adds r0, r4 - movs r1, 0x2B - bl GetMonData - str r0, [sp, 0x10] - ldrh r0, [r6] - muls r0, r5 - adds r0, r4 - movs r1, 0x2C - bl GetMonData - str r0, [sp, 0x14] - ldr r1, =gSpecialVar_0x8005 - movs r0, 0 - strh r0, [r1] - movs r4, 0 - adds r2, r1, 0 -_08139E00: - lsls r0, r4, 2 - add r0, sp - ldr r1, [r0] - ldrh r0, [r2] - adds r0, r1 - strh r0, [r2] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _08139E00 - ldr r2, =gSpecialVar_0x8006 - movs r0, 0 - strh r0, [r2] - ldr r1, =gSpecialVar_0x8007 - ldr r0, [sp] - strh r0, [r1] - movs r4, 0x1 - adds r6, r2, 0 - adds r7, r1, 0 -_08139E28: - ldrh r0, [r6] - lsls r0, 2 - mov r2, sp - adds r1, r2, r0 - lsls r0, r4, 2 - adds r5, r2, r0 - ldr r1, [r1] - ldr r0, [r5] - cmp r1, r0 - bcs _08139E54 - strh r4, [r6] - b _08139E6C - .pool -_08139E54: - cmp r1, r0 - bne _08139E6E - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08139E6E - strh r4, [r6] - ldr r0, [r5] -_08139E6C: - strh r0, [r7] -_08139E6E: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _08139E28 - add sp, 0x18 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8139D98 - - thumb_func_start warp0_in_pokecenter -warp0_in_pokecenter: @ 8139E80 - push {r4,lr} - ldr r0, =gUnknown_020322DC - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r1, 8 - ldrb r0, [r0, 0x1] - lsls r0, 24 - asrs r0, 24 - adds r0, r1 - lsls r0, 16 - lsrs r3, r0, 16 - ldr r2, =gUnknown_085B2C2A - ldrh r0, [r2] - ldr r1, =0x0000ffff - cmp r0, r1 - beq _08139EC6 - adds r4, r1, 0 - adds r1, r2, 0 -_08139EA4: - ldrh r0, [r2] - cmp r0, r3 - bne _08139EBC - movs r0, 0x1 - b _08139EC8 - .pool -_08139EBC: - adds r1, 0x2 - adds r2, 0x2 - ldrh r0, [r1] - cmp r0, r4 - bne _08139EA4 -_08139EC6: - movs r0, 0 -_08139EC8: - pop {r4} - pop {r1} - bx r1 - thumb_func_end warp0_in_pokecenter - - thumb_func_start sub_8139ED0 -sub_8139ED0: @ 8139ED0 - push {lr} - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrh r1, [r0, 0x4] - ldr r0, =0x00003c1a - cmp r1, r0 - beq _08139EEC - movs r0, 0x1 - b _08139EEE - .pool -_08139EEC: - movs r0, 0 -_08139EEE: - pop {r1} - bx r1 - thumb_func_end sub_8139ED0 - - thumb_func_start UpdateFrontierManiac -UpdateFrontierManiac: @ 8139EF4 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, =0x0000402f - bl GetVarPointer - adds r5, r0, 0 - ldrh r0, [r5] - adds r4, r0 - strh r4, [r5] - ldrh r0, [r5] - movs r1, 0xA - bl __umodsi3 - strh r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end UpdateFrontierManiac - - thumb_func_start sub_8139F20 -sub_8139F20: @ 8139F20 - push {r4-r7,lr} - movs r4, 0 - ldr r0, =0x0000402f - bl VarGet - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x9 - bls _08139F34 - b _0813A03A -_08139F34: - lsls r0, r6, 2 - ldr r1, =_08139F48 - adds r1, r0, r1 - ldr r1, [r1] - adds r2, r0, 0 - mov pc, r1 - .pool - .align 2, 0 -_08139F48: - .4byte _08139F70 - .4byte _08139F70 - .4byte _08139F70 - .4byte _08139F70 - .4byte _08139F94 - .4byte _08139FB4 - .4byte _08139FCC - .4byte _08139FE4 - .4byte _08139FFC - .4byte _0813A014 -_08139F70: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - movs r3, 0xCE - lsls r3, 4 - adds r1, r0, r3 - adds r3, r1, r2 - ldr r1, =0x00000ce2 - adds r0, r1 - adds r1, r0, r2 - ldrh r0, [r3] - ldrh r2, [r1] - cmp r0, r2 - bcs _0813A028 - b _0813A038 - .pool -_08139F94: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r3, =0x00000d0c - adds r2, r0, r3 - adds r3, 0x2 -_08139F9E: - adds r1, r0, r3 - ldrh r0, [r2] - ldrh r3, [r1] - cmp r0, r3 - bcs _0813A028 - b _0813A038 - .pool -_08139FB4: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000de2 - adds r2, r0, r1 - ldr r3, =0x00000de4 - b _08139F9E - .pool -_08139FCC: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000dc8 - adds r2, r0, r1 - ldr r3, =0x00000dca - b _08139F9E - .pool -_08139FE4: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000dda - adds r2, r0, r1 - ldr r3, =0x00000ddc - b _08139F9E - .pool -_08139FFC: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000e04 - adds r2, r0, r1 - ldr r3, =0x00000e06 - b _08139F9E - .pool -_0813A014: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000e1a - adds r2, r0, r1 - ldr r3, =0x00000e1c - adds r1, r0, r3 - ldrh r0, [r2] - ldrh r3, [r1] - cmp r0, r3 - bcc _0813A038 -_0813A028: - adds r4, r0, 0 - b _0813A03A - .pool -_0813A038: - ldrh r4, [r1] -_0813A03A: - movs r2, 0 - ldr r5, =gUnknown_085B2CC8 - lsls r0, r6, 1 - adds r1, r0, r5 - ldrb r1, [r1] - adds r3, r0, 0 - ldr r7, =gUnknown_085B2C50 - cmp r1, r4 - bcs _0813A062 - adds r1, r3, 0 -_0813A04E: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x1 - bhi _0813A062 - adds r0, r2, r1 - adds r0, r5 - ldrb r0, [r0] - cmp r0, r4 - bcc _0813A04E -_0813A062: - adds r0, r3, r6 - adds r0, r2 - lsls r0, 2 - adds r0, r7 - ldr r0, [r0] - bl ShowFieldMessage - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8139F20 - - thumb_func_start sub_813A080 -sub_813A080: @ 813A080 - push {r4-r7,lr} - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 30 - lsrs r4, r0, 30 - cmp r5, 0x2 - bne _0813A0D8 - movs r0, 0xA9 - lsls r0, 1 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _0813A0D8 - ldr r1, =gSpecialVar_0x8005 - movs r0, 0x5 - strh r0, [r1] - ldr r1, =gSpecialVar_0x8006 - movs r0, 0x4 - strh r0, [r1] - b _0813A110 - .pool -_0813A0D0: - movs r0, 0x4 - strh r0, [r6] - adds r0, r3, 0x5 - b _0813A10E -_0813A0D8: - movs r3, 0 - ldr r6, =gSpecialVar_0x8005 - ldr r7, =gSpecialVar_0x8006 - lsls r1, r4, 1 - lsls r2, r5, 2 - ldr r4, =gUnknown_085B2CDC - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r1, r2 - movs r2, 0xCE - lsls r2, 4 - adds r0, r2 - adds r0, r1 - ldrh r1, [r0] -_0813A0F4: - lsls r0, r3, 1 - adds r0, r4 - ldrh r0, [r0] - cmp r0, r1 - bhi _0813A0D0 - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x8 - bls _0813A0F4 - movs r0, 0x4 - strh r0, [r6] - movs r0, 0xC -_0813A10E: - strh r0, [r7] -_0813A110: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813A080 - - thumb_func_start sub_813A128 -sub_813A128: @ 813A128 - push {r4,lr} - ldr r0, =sub_813A2DC - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, =gTasks - adds r3, r0, r1 - ldr r1, =gSpecialVar_0x8004 - ldrh r0, [r1] - strh r0, [r3, 0x1E] - ldrh r0, [r1] - cmp r0, 0xC - bls _0813A14E - b _0813A2C6 -_0813A14E: - lsls r0, 2 - ldr r1, =_0813A168 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0813A168: - .4byte _0813A19C - .4byte _0813A1AA - .4byte _0813A1C2 - .4byte _0813A1D6 - .4byte _0813A1F0 - .4byte _0813A208 - .4byte _0813A222 - .4byte _0813A23C - .4byte _0813A25A - .4byte _0813A274 - .4byte _0813A274 - .4byte _0813A28E - .4byte _0813A2A8 -_0813A19C: - movs r1, 0 - movs r0, 0x1 - strh r0, [r3, 0x8] - strh r0, [r3, 0xA] - strh r0, [r3, 0xC] - strh r0, [r3, 0xE] - b _0813A2BC -_0813A1AA: - movs r1, 0 - movs r0, 0x5 - strh r0, [r3, 0x8] - movs r0, 0x8 - strh r0, [r3, 0xA] - movs r0, 0x1 - strh r0, [r3, 0xC] - strh r0, [r3, 0xE] - movs r0, 0x9 - strh r0, [r3, 0x10] - movs r0, 0xA - b _0813A2BE -_0813A1C2: - movs r2, 0 - movs r0, 0x6 - strh r0, [r3, 0x8] - movs r1, 0xC - strh r1, [r3, 0xA] - movs r0, 0x1 - strh r0, [r3, 0xC] - strh r0, [r3, 0xE] - movs r0, 0x7 - b _0813A250 -_0813A1D6: - movs r1, 0 - movs r0, 0x6 - strh r0, [r3, 0x8] - movs r0, 0xB - strh r0, [r3, 0xA] - movs r0, 0xE - strh r0, [r3, 0xC] - movs r0, 0x1 - strh r0, [r3, 0xE] - movs r0, 0xF - strh r0, [r3, 0x10] - movs r0, 0xC - b _0813A2BE -_0813A1F0: - movs r1, 0 - movs r0, 0x6 - strh r0, [r3, 0x8] - strh r0, [r3, 0xA] - movs r0, 0xE - strh r0, [r3, 0xC] - movs r0, 0x1 - strh r0, [r3, 0xE] - movs r0, 0xF - strh r0, [r3, 0x10] - movs r0, 0xC - b _0813A2BE -_0813A208: - movs r1, 0 - movs r0, 0x6 - strh r0, [r3, 0x8] - movs r0, 0x7 - strh r0, [r3, 0xA] - movs r0, 0xE - strh r0, [r3, 0xC] - movs r0, 0x1 - strh r0, [r3, 0xE] - movs r0, 0xF - strh r0, [r3, 0x10] - movs r0, 0xC - b _0813A2BE -_0813A222: - movs r1, 0 - movs r0, 0x6 - strh r0, [r3, 0x8] - movs r0, 0xA - strh r0, [r3, 0xA] - movs r0, 0xE - strh r0, [r3, 0xC] - movs r0, 0x1 - strh r0, [r3, 0xE] - movs r0, 0xF - strh r0, [r3, 0x10] - movs r0, 0xC - b _0813A2BE -_0813A23C: - movs r2, 0 - movs r0, 0x6 - strh r0, [r3, 0x8] - movs r1, 0xC - strh r1, [r3, 0xA] - movs r0, 0xF - strh r0, [r3, 0xC] - movs r0, 0x1 - strh r0, [r3, 0xE] - movs r0, 0xE -_0813A250: - strh r0, [r3, 0x10] - strh r1, [r3, 0x12] - strh r2, [r3, 0x14] - strh r4, [r3, 0x26] - b _0813A2D2 -_0813A25A: - movs r1, 0 - movs r0, 0x6 - strh r0, [r3, 0x8] - movs r0, 0xA - strh r0, [r3, 0xA] - movs r0, 0x11 - strh r0, [r3, 0xC] - movs r0, 0x1 - strh r0, [r3, 0xE] - movs r0, 0xB - strh r0, [r3, 0x10] - movs r0, 0xC - b _0813A2BE -_0813A274: - movs r1, 0 - movs r0, 0x6 - strh r0, [r3, 0x8] - movs r0, 0xB - strh r0, [r3, 0xA] - movs r0, 0xF - strh r0, [r3, 0xC] - movs r0, 0x1 - strh r0, [r3, 0xE] - movs r0, 0xE - strh r0, [r3, 0x10] - movs r0, 0xC - b _0813A2BE -_0813A28E: - movs r1, 0 - movs r0, 0x6 - strh r0, [r3, 0x8] - movs r0, 0x7 - strh r0, [r3, 0xA] - movs r0, 0x13 - strh r0, [r3, 0xC] - movs r0, 0x1 - strh r0, [r3, 0xE] - movs r0, 0xA - strh r0, [r3, 0x10] - movs r0, 0xC - b _0813A2BE -_0813A2A8: - movs r1, 0 - movs r0, 0x6 - strh r0, [r3, 0x8] - movs r0, 0x7 - strh r0, [r3, 0xA] - movs r0, 0x11 - strh r0, [r3, 0xC] - movs r0, 0x1 - strh r0, [r3, 0xE] - movs r0, 0xC -_0813A2BC: - strh r0, [r3, 0x10] -_0813A2BE: - strh r0, [r3, 0x12] - strh r1, [r3, 0x14] - strh r4, [r3, 0x26] - b _0813A2D2 -_0813A2C6: - ldr r1, =gSpecialVar_Result - movs r0, 0x7F - strh r0, [r1] - adds r0, r4, 0 - bl DestroyTask -_0813A2D2: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813A128 - - thumb_func_start sub_813A2DC -sub_813A2DC: @ 813A2DC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x20 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - ldr r1, =gTasks - adds r6, r0, r1 - bl ScriptContext2_Enable - ldr r0, =gUnknown_0203AB68 - movs r5, 0 - strh r5, [r0] - ldr r1, =gUnknown_0203AB6C - movs r0, 0x40 - strb r0, [r1] - ldrh r0, [r6, 0x1E] - movs r1, 0 - bl sub_813AA60 - ldrb r0, [r6, 0x1E] - movs r1, 0 - bl sub_813ACE8 - ldr r4, =gUnknown_0203AB64 - movs r1, 0xA - ldrsh r0, [r6, r1] - lsls r0, 3 - bl AllocZeroed - str r0, [r4] - ldr r0, =gUnknown_0203AB6A - strh r5, [r0] - bl sub_813A42C - movs r3, 0 - movs r4, 0 - movs r2, 0xA - ldrsh r0, [r6, r2] - add r1, sp, 0x18 - mov r8, r1 - cmp r3, r0 - bge _0813A36A - ldr r5, =gUnknown_085B2CF0 -_0813A33A: - lsls r1, r4, 2 - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - lsls r0, 6 - adds r1, r0 - adds r1, r5 - ldr r0, [r1] - ldr r1, =gUnknown_0203AB64 - ldr r2, [r1] - lsls r1, r4, 3 - adds r1, r2 - str r0, [r1] - str r4, [r1, 0x4] - adds r1, r3, 0 - bl display_text_and_get_width - adds r3, r0, 0 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - movs r2, 0xA - ldrsh r0, [r6, r2] - cmp r4, r0 - blt _0813A33A -_0813A36A: - adds r0, r3, 0 - bl convert_pixel_width_to_tile_width - strh r0, [r6, 0x10] - movs r1, 0xC - ldrsh r0, [r6, r1] - movs r2, 0x10 - ldrsh r1, [r6, r2] - adds r0, r1 - cmp r0, 0x1D - ble _0813A38C - movs r0, 0x1D - subs r0, r1 - cmp r0, 0 - bge _0813A38A - movs r0, 0 -_0813A38A: - strh r0, [r6, 0xC] -_0813A38C: - ldrb r2, [r6, 0xC] - ldrb r3, [r6, 0xE] - ldrb r0, [r6, 0x10] - str r0, [sp] - ldrb r0, [r6, 0x12] - str r0, [sp, 0x4] - movs r0, 0xF - str r0, [sp, 0x8] - movs r0, 0x64 - str r0, [sp, 0xC] - add r0, sp, 0x10 - movs r1, 0 - bl sub_8198A50 - ldr r0, [sp, 0x10] - ldr r1, [sp, 0x14] - str r0, [sp, 0x18] - str r1, [sp, 0x1C] - mov r0, r8 - bl AddWindow - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x22] - movs r1, 0 - bl SetStandardWindowBorderStyle - ldr r4, =gUnknown_030061D0 - ldrh r0, [r6, 0xA] - strh r0, [r4, 0xC] - ldrh r0, [r6, 0x8] - strh r0, [r4, 0xE] - ldrh r0, [r6, 0x22] - strb r0, [r4, 0x10] - adds r0, r7, 0 - bl sub_813A694 - ldrh r1, [r6, 0x16] - ldrh r2, [r6, 0x18] - adds r0, r4, 0 - bl ListMenuInit - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x24] - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_813A4EC - str r1, [r0] - add sp, 0x20 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813A2DC - - thumb_func_start sub_813A42C -sub_813A42C: @ 813A42C - ldr r1, =gUnknown_030061D0 - ldr r0, =gUnknown_0203AB64 - ldr r0, [r0] - str r0, [r1] - ldr r0, =sub_813A46C - str r0, [r1, 0x4] - movs r0, 0 - str r0, [r1, 0x8] - movs r2, 0 - movs r0, 0x1 - strh r0, [r1, 0xC] - strh r0, [r1, 0xE] - strb r2, [r1, 0x10] - strb r2, [r1, 0x11] - movs r0, 0x8 - strb r0, [r1, 0x12] - strb r2, [r1, 0x13] - movs r0, 0x21 - strb r0, [r1, 0x14] - movs r0, 0x31 - strb r0, [r1, 0x15] - movs r0, 0 - strb r0, [r1, 0x16] - movs r0, 0x1 - strb r0, [r1, 0x17] - bx lr - .pool - thumb_func_end sub_813A42C - - thumb_func_start sub_813A46C -sub_813A46C: @ 813A46C - push {r4,r5,lr} - sub sp, 0x4 - movs r0, 0x5 - bl PlaySE - ldr r0, =sub_813A4EC - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _0813A4D4 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, =gTasks - adds r4, r0 - ldrh r0, [r4, 0x24] - lsls r0, 24 - lsrs r0, 24 - mov r1, sp - movs r2, 0 - bl ListMenuGetScrollAndRow - ldr r1, =gUnknown_0203AB68 - mov r0, sp - ldrh r0, [r0] - strh r0, [r1] - ldrh r0, [r4, 0x24] - lsls r0, 24 - lsrs r0, 24 - mov r1, sp - bl ListMenuGetCurrentItemArrayId - ldrh r0, [r4, 0x1E] - ldr r5, =gUnknown_0203AB6A - ldrh r1, [r5] - bl sub_813AC44 - ldrh r0, [r4, 0x1E] - mov r1, sp - ldrh r1, [r1] - bl sub_813AA60 - ldrb r0, [r4, 0x1E] - mov r1, sp - ldrh r1, [r1] - bl sub_813AD34 - mov r0, sp - ldrh r0, [r0] - strh r0, [r5] -_0813A4D4: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813A46C - - thumb_func_start sub_813A4EC -sub_813A4EC: @ 813A4EC - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks - adds r6, r0, r1 - ldrh r0, [r6, 0x24] - lsls r0, 24 - lsrs r0, 24 - bl ListMenuHandleInputGetItemId - adds r4, r0, 0 - movs r0, 0x2 - negs r0, r0 - cmp r4, r0 - beq _0813A51C - adds r0, 0x1 - cmp r4, r0 - bne _0813A530 - b _0813A566 - .pool -_0813A51C: - ldr r1, =gSpecialVar_Result - movs r0, 0x7F - strh r0, [r1] - movs r0, 0x5 - bl PlaySE - b _0813A54C - .pool -_0813A530: - ldr r0, =gSpecialVar_Result - strh r4, [r0] - movs r0, 0x5 - bl PlaySE - movs r1, 0x14 - ldrsh r0, [r6, r1] - cmp r0, 0 - beq _0813A54C - movs r1, 0xA - ldrsh r0, [r6, r1] - subs r0, 0x1 - cmp r4, r0 - bne _0813A558 -_0813A54C: - adds r0, r5, 0 - bl sub_813A570 - b _0813A566 - .pool -_0813A558: - adds r0, r5, 0 - bl sub_813A738 - ldr r0, =sub_813A600 - str r0, [r6] - bl EnableBothScriptContexts -_0813A566: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813A4EC - - thumb_func_start sub_813A570 -sub_813A570: @ 813A570 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, =gTasks - adds r4, r0 - ldrh r0, [r4, 0x24] - lsls r0, 24 - lsrs r0, 24 - mov r1, sp - bl ListMenuGetCurrentItemArrayId - ldrh r0, [r4, 0x1E] - mov r1, sp - ldrh r1, [r1] - bl sub_813AC44 - adds r0, r5, 0 - bl sub_813A738 - ldrh r0, [r4, 0x24] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - movs r2, 0 - bl DestroyListMenuTask - ldr r0, =gUnknown_0203AB64 - ldr r0, [r0] - bl Free - ldrh r0, [r4, 0x22] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - bl sub_8198070 - ldrh r0, [r4, 0x22] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl FillWindowPixelBuffer - ldrh r0, [r4, 0x22] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x2 - bl CopyWindowToVram - ldrh r0, [r4, 0x22] - lsls r0, 24 - lsrs r0, 24 - bl RemoveWindow - adds r0, r5, 0 - bl DestroyTask - bl EnableBothScriptContexts - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813A570 - - thumb_func_start sub_813A600 -sub_813A600: @ 813A600 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0x14 - ldrsh r0, [r1, r2] - cmp r0, 0x1 - beq _0813A624 - cmp r0, 0x2 - bne _0813A624 - movs r0, 0x1 - strh r0, [r1, 0x14] - ldr r0, =sub_813A664 - str r0, [r1] -_0813A624: - pop {r0} - bx r0 - .pool - thumb_func_end sub_813A600 - - thumb_func_start sub_813A630 -sub_813A630: @ 813A630 - push {lr} - ldr r0, =sub_813A600 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - bne _0813A64C - bl EnableBothScriptContexts - b _0813A65C - .pool -_0813A64C: - ldr r0, =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x14] - adds r0, 0x1 - strh r0, [r1, 0x14] -_0813A65C: - pop {r0} - bx r0 - .pool - thumb_func_end sub_813A630 - - thumb_func_start sub_813A664 -sub_813A664: @ 813A664 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl ScriptContext2_Enable - adds r0, r4, 0 - bl sub_813A694 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_813A4EC - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813A664 - - thumb_func_start sub_813A694 -sub_813A694: @ 813A694 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks - adds r4, r1, r0 - mov r1, sp - ldr r0, =gUnknown_085B3030 - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldr r0, [r0] - str r0, [r1] - movs r0, 0x8 - ldrsh r1, [r4, r0] - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r1, r0 - beq _0813A724 - mov r2, sp - movs r3, 0x10 - ldrsh r1, [r4, r3] - lsrs r0, r1, 31 - adds r1, r0 - asrs r1, 1 - lsls r1, 3 - adds r1, 0xC - movs r5, 0xC - ldrsh r0, [r4, r5] - subs r0, 0x1 - lsls r0, 3 - adds r1, r0 - movs r3, 0 - strb r1, [r2, 0x1] - mov r1, sp - movs r0, 0x8 - strb r0, [r1, 0x2] - movs r0, 0x10 - ldrsh r1, [r4, r0] - lsrs r0, r1, 31 - adds r1, r0 - asrs r1, 1 - lsls r1, 3 - adds r1, 0xC - movs r5, 0xC - ldrsh r0, [r4, r5] - subs r0, 0x1 - lsls r0, 3 - adds r1, r0 - strb r1, [r2, 0x4] - mov r1, sp - movs r2, 0x12 - ldrsh r0, [r4, r2] - lsls r0, 3 - adds r0, 0xA - strb r0, [r1, 0x5] - mov r0, sp - strh r3, [r0, 0x6] - mov r2, sp - ldrh r0, [r4, 0xA] - ldrh r1, [r4, 0x8] - subs r0, r1 - strh r0, [r2, 0x8] - ldr r1, =gUnknown_0203AB68 - mov r0, sp - bl AddScrollIndicatorArrowPair - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] -_0813A724: - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813A694 - - thumb_func_start sub_813A738 -sub_813A738: @ 813A738 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks - adds r2, r1, r0 - movs r0, 0x8 - ldrsh r1, [r2, r0] - movs r3, 0xA - ldrsh r0, [r2, r3] - cmp r1, r0 - beq _0813A75E - ldrh r0, [r2, 0x20] - lsls r0, 24 - lsrs r0, 24 - bl RemoveScrollIndicatorArrowPair -_0813A75E: - pop {r0} - bx r0 - .pool - thumb_func_end sub_813A738 - - thumb_func_start nullsub_55 -nullsub_55: @ 813A768 - bx lr - thumb_func_end nullsub_55 - - thumb_func_start sub_813A76C -sub_813A76C: @ 813A76C - push {r4-r6,lr} - movs r4, 0 - ldr r6, =gLinkPlayers - ldr r0, =0x0000401f - adds r5, r0, 0 -_0813A776: - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - adds r0, r6 - ldrb r0, [r0, 0x13] - cmp r0, 0 - bne _0813A79C - subs r0, r5, r4 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0 - bl VarSet - b _0813A7A8 - .pool -_0813A79C: - subs r0, r5, r4 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x69 - bl VarSet -_0813A7A8: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bls _0813A776 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_813A76C - - thumb_func_start sub_813A7B8 -sub_813A7B8: @ 813A7B8 - push {lr} - ldr r1, =gSpecialVar_0x8004 - ldrh r0, [r1] - cmp r0, 0x5 - bls _0813A7C6 - movs r0, 0 - strh r0, [r1] -_0813A7C6: - ldrh r1, [r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - bl GetNature - lsls r0, 24 - ldr r1, =gUnknown_085B3040 - lsrs r0, 22 - adds r0, r1 - ldr r0, [r0] - bl ShowFieldMessage - pop {r0} - bx r0 - .pool - thumb_func_end sub_813A7B8 - - thumb_func_start UpdateFrontierGambler -UpdateFrontierGambler: @ 813A7F4 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, =0x00004030 - bl GetVarPointer - adds r5, r0, 0 - ldrh r0, [r5] - adds r4, r0 - strh r4, [r5] - ldrh r0, [r5] - movs r1, 0xC - bl __umodsi3 - strh r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end UpdateFrontierGambler - - thumb_func_start sub_813A820 -sub_813A820: @ 813A820 - push {r4,lr} - ldr r0, =0x00004030 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r1, =gUnknown_085B30A4 - lsls r0, r4, 2 - adds r0, r1 - ldr r0, [r0] - bl ShowFieldMessage - ldr r0, =0x00004031 - adds r1, r4, 0 - bl VarSet - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813A820 - - thumb_func_start sub_813A854 -sub_813A854: @ 813A854 - push {r4,lr} - ldr r4, =gUnknown_085B30D4 - ldr r0, =0x00004031 - bl VarGet - lsls r0, 16 - lsrs r0, 14 - adds r0, r4 - ldr r0, [r0] - bl ShowFieldMessage - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813A854 - - thumb_func_start sub_813A878 -sub_813A878: @ 813A878 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r7, r0, 16 - ldr r0, =0x00004031 - bl VarGet - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, =0x000040cf - bl VarGet - lsls r0, 16 - lsrs r5, r0, 16 - ldr r4, =0x00004033 - adds r0, r4, 0 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bne _0813A8F0 - ldr r1, =gUnknown_085B3104 - lsls r0, r6, 1 - adds r0, r1 - ldrh r1, [r0] - lsls r0, r5, 8 - adds r0, r7 - cmp r1, r0 - bne _0813A8F0 - mov r0, r8 - cmp r0, 0 - beq _0813A8E8 - adds r0, r4, 0 - movs r1, 0x2 - bl VarSet - b _0813A8F0 - .pool -_0813A8E8: - adds r0, r4, 0 - movs r1, 0x3 - bl VarSet -_0813A8F0: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_813A878 - - thumb_func_start sub_813A8FC -sub_813A8FC: @ 813A8FC - push {lr} - sub sp, 0x2C - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000eb8 - adds r0, r1 - ldrh r1, [r0] - add r0, sp, 0xC - movs r2, 0x1 - movs r3, 0x4 - bl ConvertIntToDecimalStringN - ldr r1, =gText_BP - bl StringCopy - movs r0, 0x1 - add r1, sp, 0xC - movs r2, 0x30 - bl GetStringRightAlignXOffset - adds r3, r0, 0 - ldr r0, =gUnknown_0203AB6D - ldrb r0, [r0] - lsls r3, 24 - lsrs r3, 24 - movs r1, 0x1 - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - str r1, [sp, 0x8] - movs r1, 0x1 - add r2, sp, 0xC - bl PrintTextOnWindow - add sp, 0x2C - pop {r0} - bx r0 - .pool - thumb_func_end sub_813A8FC - - thumb_func_start sub_813A958 -sub_813A958: @ 813A958 - push {r4,lr} - ldr r4, =gUnknown_0203AB6D - ldr r0, =gUnknown_085B311C - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - movs r1, 0 - bl SetStandardWindowBorderStyle - bl sub_813A8FC - ldrb r0, [r4] - movs r1, 0x2 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813A958 - - thumb_func_start sub_813A988 -sub_813A988: @ 813A988 - push {r4,lr} - ldr r4, =gUnknown_0203AB6D - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8198070 - ldrb r0, [r4] - bl RemoveWindow - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813A988 - - thumb_func_start sub_813A9A4 -sub_813A9A4: @ 813A9A4 - push {lr} - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r2, =0x00000eb8 - adds r1, r0, r2 - ldr r0, =gSpecialVar_0x8004 - ldrh r2, [r1] - ldrh r0, [r0] - cmp r2, r0 - bcs _0813A9C8 - movs r0, 0 - b _0813A9CA - .pool -_0813A9C8: - subs r0, r2, r0 -_0813A9CA: - strh r0, [r1] - pop {r0} - bx r0 - thumb_func_end sub_813A9A4 - - thumb_func_start sub_813A9D0 -sub_813A9D0: @ 813A9D0 - push {lr} - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000eb8 - adds r2, r0, r1 - ldrh r1, [r2] - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - adds r1, r0 - ldr r0, =0x0000270f - cmp r1, r0 - ble _0813A9FC - strh r0, [r2] - b _0813A9FE - .pool -_0813A9FC: - strh r1, [r2] -_0813A9FE: - pop {r0} - bx r0 - thumb_func_end sub_813A9D0 - - thumb_func_start sub_813AA04 -sub_813AA04: @ 813AA04 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000eb8 - adds r0, r1 - ldrh r0, [r0] - bx lr - .pool - thumb_func_end sub_813AA04 - - thumb_func_start sub_813AA18 -sub_813AA18: @ 813AA18 - push {r4,lr} - ldr r4, =gUnknown_0203AB6E - ldr r0, =gUnknown_085B3124 - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - movs r1, 0 - bl SetStandardWindowBorderStyle - ldrb r0, [r4] - movs r1, 0x2 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813AA18 - - thumb_func_start sub_813AA44 -sub_813AA44: @ 813AA44 - push {r4,lr} - ldr r4, =gUnknown_0203AB6E - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8198070 - ldrb r0, [r4] - bl RemoveWindow - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813AA44 - - thumb_func_start sub_813AA60 -sub_813AA60: @ 813AA60 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 16 - lsls r1, 16 - lsrs r5, r1, 16 - lsrs r4, r0, 16 - ldr r1, =0xfffd0000 - adds r0, r1 - lsrs r0, 16 - cmp r0, 0x3 - bls _0813AA78 - b _0813ABC2 -_0813AA78: - movs r0, 0xD8 - str r0, [sp] - movs r0, 0x20 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x11 - movs r2, 0 - movs r3, 0 - bl FillWindowPixelRect - cmp r4, 0x4 - beq _0813AAE8 - cmp r4, 0x4 - bgt _0813AAA0 - cmp r4, 0x3 - beq _0813AAAA - b _0813ABC2 - .pool -_0813AAA0: - cmp r4, 0x5 - beq _0813AB5C - cmp r4, 0x6 - beq _0813AB94 - b _0813ABC2 -_0813AAAA: - ldr r1, =gUnknown_085B3170 - lsls r0, r5, 2 - adds r0, r1 - ldr r2, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - str r4, [sp, 0xC] - movs r0, 0 - movs r1, 0x1 - movs r3, 0 - bl AddTextPrinterParameterized - ldr r1, =gUnknown_085B312C - lsls r0, r5, 1 - adds r1, r0, r1 - ldrh r5, [r1] - ldr r0, =0x0000ffff - cmp r5, r0 - beq _0813AB18 - b _0813AB2C - .pool -_0813AAE8: - ldr r1, =gUnknown_085B319C - lsls r0, r5, 2 - adds r0, r1 - ldr r2, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x1 - movs r3, 0 - bl AddTextPrinterParameterized - ldr r1, =gUnknown_085B3142 - lsls r0, r5, 1 - adds r1, r0, r1 - ldrh r5, [r1] - ldr r0, =0x0000ffff - cmp r5, r0 - bne _0813AB2C -_0813AB18: - ldrh r0, [r1] - bl sub_813ABD4 - b _0813ABC2 - .pool -_0813AB2C: - ldr r4, =0x0000157c - adds r0, r4, 0 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl FreeSpritePaletteByTag - lsls r0, r5, 24 - lsrs r0, 24 - str r4, [sp] - str r4, [sp, 0x4] - movs r1, 0x21 - movs r2, 0x58 - movs r3, 0 - bl AddDecorationIconObject - ldr r1, =gUnknown_0203AB6C - strb r0, [r1] - b _0813ABC2 - .pool -_0813AB5C: - ldr r1, =gUnknown_085B31B4 - lsls r0, r5, 2 - adds r0, r1 - ldr r2, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x1 - movs r3, 0 - bl AddTextPrinterParameterized - ldr r1, =gUnknown_085B314E - lsls r0, r5, 1 - adds r0, r1 - ldrh r0, [r0] - bl sub_813ABD4 - b _0813ABC2 - .pool -_0813AB94: - ldr r1, =gUnknown_085B31D0 - lsls r0, r5, 2 - adds r0, r1 - ldr r2, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x1 - movs r3, 0 - bl AddTextPrinterParameterized - ldr r1, =gUnknown_085B315C - lsls r0, r5, 1 - adds r0, r1 - ldrh r0, [r0] - bl sub_813ABD4 -_0813ABC2: - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813AA60 - - thumb_func_start sub_813ABD4 -sub_813ABD4: @ 813ABD4 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - ldr r4, =0x0000157c - adds r0, r4, 0 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl FreeSpritePaletteByTag - adds r0, r4, 0 - adds r1, r4, 0 - adds r2, r5, 0 - bl AddItemIconSprite - ldr r4, =gUnknown_0203AB6C - strb r0, [r4] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _0813AC32 - ldr r3, =gSprites - ldrb r0, [r4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x5] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0x24 - strh r1, [r0, 0x20] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0x5C - strh r1, [r0, 0x22] -_0813AC32: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813ABD4 - - thumb_func_start sub_813AC44 -sub_813AC44: @ 813AC44 - push {lr} - lsls r0, 16 - lsrs r1, r0, 16 - ldr r2, =gUnknown_0203AB6C - ldrb r0, [r2] - cmp r0, 0x40 - beq _0813AC70 - cmp r1, 0x6 - bgt _0813AC6A - cmp r1, 0x3 - blt _0813AC6A - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - bl DestroySpriteAndFreeResources -_0813AC6A: - ldr r1, =gUnknown_0203AB6C - movs r0, 0x40 - strb r0, [r1] -_0813AC70: - pop {r0} - bx r0 - .pool - thumb_func_end sub_813AC44 - - thumb_func_start sub_813AC7C -sub_813AC7C: @ 813AC7C - push {lr} - ldr r0, =gSpecialVar_0x8005 - ldrh r0, [r0] - cmp r0, 0 - beq _0813ACB8 - ldr r0, =gStringVar1 - ldr r2, =gUnknown_085B320C - ldr r1, =gSpecialVar_0x8004 - ldrh r1, [r1] - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0xD - muls r1, r2 - ldr r2, =gMoveNames - adds r1, r2 - bl StringCopy - b _0813ACD2 - .pool -_0813ACB8: - ldr r0, =gStringVar1 - ldr r2, =gUnknown_085B31F8 - ldr r1, =gSpecialVar_0x8004 - ldrh r1, [r1] - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0xD - muls r1, r2 - ldr r2, =gMoveNames - adds r1, r2 - bl StringCopy -_0813ACD2: - pop {r0} - bx r0 - .pool - thumb_func_end sub_813AC7C - - thumb_func_start sub_813ACE8 -sub_813ACE8: @ 813ACE8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - lsls r1, 16 - lsrs r6, r1, 16 - subs r0, 0x9 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _0813AD20 - ldr r0, =gSpecialVar_0x8006 - ldrh r0, [r0] - cmp r0, 0 - bne _0813AD18 - ldr r4, =gUnknown_0203AB5E - ldr r0, =gUnknown_085B3220 - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - movs r1, 0 - bl SetStandardWindowBorderStyle -_0813AD18: - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_813AD34 -_0813AD20: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813ACE8 - - thumb_func_start sub_813AD34 -sub_813AD34: @ 813AD34 - push {r4-r7,lr} - sub sp, 0xC - lsls r0, 24 - lsls r1, 16 - lsrs r5, r1, 16 - adds r7, r5, 0 - lsrs r6, r0, 24 - movs r1, 0xF7 - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x1 - bhi _0813ADAC - ldr r4, =gUnknown_0203AB5E - ldrb r0, [r4] - movs r1, 0x60 - str r1, [sp] - movs r1, 0x30 - str r1, [sp, 0x4] - movs r1, 0x11 - movs r2, 0 - movs r3, 0 - bl FillWindowPixelRect - cmp r6, 0xA - bne _0813AD90 - ldrb r0, [r4] - ldr r2, =gUnknown_085B3254 - lsls r1, r5, 2 - adds r1, r2 - ldr r2, [r1] - movs r1, 0x1 - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - str r1, [sp, 0x8] - movs r1, 0x1 - movs r3, 0 - bl PrintTextOnWindow - b _0813ADAC - .pool -_0813AD90: - ldrb r0, [r4] - ldr r2, =gUnknown_085B3228 - lsls r1, r7, 2 - adds r1, r2 - ldr r2, [r1] - movs r1, 0x1 - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - str r1, [sp, 0x8] - movs r1, 0x1 - movs r3, 0 - bl PrintTextOnWindow -_0813ADAC: - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813AD34 - - thumb_func_start sub_813ADB8 -sub_813ADB8: @ 813ADB8 - push {r4,lr} - ldr r4, =gUnknown_0203AB5E - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8198070 - ldrb r0, [r4] - bl RemoveWindow - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813ADB8 - - thumb_func_start sub_813ADD4 -sub_813ADD4: @ 813ADD4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x18 - ldr r0, =sub_813A600 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xFF - beq _0813AE90 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, =gTasks - adds r6, r0, r1 - ldrh r0, [r6, 0x24] - lsls r0, 24 - lsrs r0, 24 - mov r4, sp - adds r4, 0x16 - add r1, sp, 0x14 - adds r2, r4, 0 - bl ListMenuGetScrollAndRow - ldrh r0, [r6, 0x22] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl SetStandardWindowBorderStyle - movs r5, 0 - mov r9, r4 - ldr r0, =gUnknown_085B2CF0 - mov r8, r0 - movs r4, 0 -_0813AE1E: - ldrh r0, [r6, 0x22] - lsls r0, 24 - lsrs r0, 24 - add r1, sp, 0x14 - ldrh r2, [r1] - adds r2, r5 - lsls r2, 2 - ldr r1, =gSpecialVar_0x8004 - ldrh r1, [r1] - lsls r1, 6 - adds r2, r1 - add r2, r8 - ldr r2, [r2] - lsls r1, r5, 28 - lsrs r1, 24 - str r1, [sp] - movs r7, 0xFF - str r7, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x1 - movs r3, 0xA - bl sub_8199F74 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _0813AE1E - ldrh r0, [r6, 0x22] - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gText_SelectorArrow - mov r3, r9 - ldrh r1, [r3] - lsls r1, 28 - lsrs r1, 24 - str r1, [sp] - str r7, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x1 - movs r3, 0 - bl PrintTextOnWindow - ldrh r0, [r6, 0x22] - lsls r0, 24 - lsrs r0, 24 - bl PutWindowTilemap - ldrh r0, [r6, 0x22] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x3 - bl CopyWindowToVram -_0813AE90: - add sp, 0x18 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813ADD4 - - thumb_func_start sub_813AEB4 -sub_813AEB4: @ 813AEB4 - push {r4,lr} - movs r1, 0 - ldr r0, =gSpecialVar_0x8005 - strh r1, [r0] - ldr r0, =0x0000400e - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, =0x0000400d - bl VarGet - lsls r0, 16 - lsrs r1, r0, 16 - cmp r4, 0 - beq _0813AF18 - movs r2, 0 - lsls r1, 1 - ldr r3, =gUnknown_0861500C - ldr r0, =gUnknown_085B320C - adds r0, r1, r0 - ldrh r1, [r0] -_0813AEE2: - lsls r0, r2, 1 - adds r0, r3 - ldrh r0, [r0] - cmp r0, r1 - beq _0813AF0C - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x1D - bls _0813AEE2 - b _0813AF38 - .pool -_0813AF0C: - ldr r0, =gSpecialVar_0x8005 - strh r2, [r0] - b _0813AF38 - .pool -_0813AF18: - movs r2, 0 - lsls r1, 1 - ldr r3, =gUnknown_0861500C - ldr r0, =gUnknown_085B31F8 - adds r0, r1, r0 - ldrh r1, [r0] -_0813AF24: - lsls r0, r2, 1 - adds r0, r3 - ldrh r0, [r0] - cmp r0, r1 - beq _0813AF0C - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x1D - bls _0813AF24 -_0813AF38: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813AEB4 - - thumb_func_start sub_813AF48 -sub_813AF48: @ 813AF48 - push {r4,r5,lr} - ldr r0, =sub_813A600 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xFF - beq _0813AFB6 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, =gTasks - adds r4, r0 - ldrh r0, [r4, 0x24] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - movs r2, 0 - bl DestroyListMenuTask - ldr r0, =gUnknown_0203AB64 - ldr r0, [r0] - bl Free - ldrh r0, [r4, 0x22] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - bl sub_8198070 - ldrh r0, [r4, 0x22] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl FillWindowPixelBuffer - ldrh r0, [r4, 0x22] - lsls r0, 24 - lsrs r0, 24 - bl ClearWindowTilemap - ldrh r0, [r4, 0x22] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x2 - bl CopyWindowToVram - ldrh r0, [r4, 0x22] - lsls r0, 24 - lsrs r0, 24 - bl RemoveWindow - adds r0, r5, 0 - bl DestroyTask -_0813AFB6: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813AF48 - - thumb_func_start sub_813AFC8 -sub_813AFC8: @ 813AFC8 - push {lr} - ldr r0, =task_deoxys_sound - movs r1, 0x8 - bl CreateTask - pop {r0} - bx r0 - .pool - thumb_func_end sub_813AFC8 - - thumb_func_start task_deoxys_sound -task_deoxys_sound: @ 813AFDC - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, =0x000008d4 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0813B004 - ldr r1, =gSpecialVar_Result - movs r0, 0x3 - b _0813B06A - .pool -_0813B004: - ldr r0, =0x00004035 - mov r8, r0 - bl VarGet - lsls r0, 16 - lsrs r5, r0, 16 - ldr r4, =0x00004034 - adds r0, r4, 0 - bl VarGet - lsls r0, 16 - lsrs r6, r0, 16 - adds r0, r4, 0 - movs r1, 0 - bl VarSet - cmp r5, 0 - beq _0813B05C - ldr r0, =gUnknown_085B33F6 - subs r1, r5, 0x1 - adds r1, r0 - ldrb r0, [r1] - cmp r0, r6 - bcs _0813B05C - movs r0, 0 - bl sub_813B0B4 - mov r0, r8 - movs r1, 0 - bl VarSet - ldr r1, =gSpecialVar_Result - movs r0, 0 - strh r0, [r1] - b _0813B070 - .pool -_0813B05C: - cmp r5, 0xA - bne _0813B080 - ldr r0, =0x000008d4 - bl FlagSet - ldr r1, =gSpecialVar_Result - movs r0, 0x2 -_0813B06A: - strh r0, [r1] - bl EnableBothScriptContexts -_0813B070: - adds r0, r7, 0 - bl DestroyTask - b _0813B0A2 - .pool -_0813B080: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - lsls r0, r5, 24 - lsrs r0, 24 - bl sub_813B0B4 - ldr r0, =0x00004035 - adds r1, r5, 0 - bl VarSet - ldr r1, =gSpecialVar_Result - movs r0, 0x1 - strh r0, [r1] - adds r0, r7, 0 - bl DestroyTask -_0813B0A2: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end task_deoxys_sound - - thumb_func_start sub_813B0B4 -sub_813B0B4: @ 813B0B4 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 5 - ldr r1, =gUnknown_085B3280 - adds r0, r1 - movs r1, 0xD0 - lsls r1, 1 - movs r2, 0x8 - bl LoadPalette - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrb r1, [r0, 0x5] - ldrb r2, [r0, 0x4] - movs r0, 0x1 - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - cmp r4, 0 - bne _0813B0F0 - movs r0, 0xC4 - bl PlaySE - b _0813B0F8 - .pool -_0813B0F0: - movs r0, 0x82 - lsls r0, 1 - bl PlaySE -_0813B0F8: - ldr r0, =sub_813B160 - movs r1, 0x8 - bl CreateTask - ldr r3, =gFieldEffectArguments - movs r0, 0x1 - str r0, [r3] - movs r0, 0x3A - str r0, [r3, 0x4] - movs r0, 0x1A - str r0, [r3, 0x8] - ldr r0, =gUnknown_085B33E0 - lsls r2, r4, 1 - adds r1, r2, r0 - ldrb r1, [r1] - str r1, [r3, 0xC] - adds r0, 0x1 - adds r0, r2, r0 - ldrb r0, [r0] - str r0, [r3, 0x10] - adds r5, r2, 0 - cmp r4, 0 - bne _0813B138 - movs r0, 0x3C - b _0813B13A - .pool -_0813B138: - movs r0, 0x5 -_0813B13A: - str r0, [r3, 0x14] - movs r0, 0x42 - bl FieldEffectStart - ldr r0, =gUnknown_085B33E0 - adds r1, r5, r0 - ldrb r1, [r1] - adds r0, 0x1 - adds r0, r5, r0 - ldrb r2, [r0] - movs r0, 0x1 - bl Overworld_SetEventObjTemplateCoords - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813B0B4 - - thumb_func_start sub_813B160 -sub_813B160: @ 813B160 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x42 - bl FieldEffectActiveListContains - lsls r0, 24 - cmp r0, 0 - bne _0813B17C - bl EnableBothScriptContexts - adds r0, r4, 0 - bl DestroyTask -_0813B17C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_813B160 - - thumb_func_start increment_var_x4026_on_birth_island_modulo_100 -increment_var_x4026_on_birth_island_modulo_100: @ 813B184 - push {r4,lr} - ldr r4, =0x00004034 - adds r0, r4, 0 - bl VarGet - lsls r0, 16 - lsrs r2, r0, 16 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrh r1, [r0, 0x4] - ldr r0, =0x00003a1a - cmp r1, r0 - bne _0813B1C8 - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x63 - bls _0813B1C0 - adds r0, r4, 0 - movs r1, 0 - bl VarSet - b _0813B1C8 - .pool -_0813B1C0: - adds r0, r4, 0 - adds r1, r2, 0 - bl VarSet -_0813B1C8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end increment_var_x4026_on_birth_island_modulo_100 - - thumb_func_start sub_813B1D0 -sub_813B1D0: @ 813B1D0 - push {lr} - ldr r0, =0x00004035 - bl VarGet - lsls r0, 24 - lsrs r0, 19 - ldr r1, =gUnknown_085B3280 - adds r0, r1 - movs r1, 0xD0 - lsls r1, 1 - movs r2, 0x8 - bl LoadPalette - movs r0, 0x80 - lsls r0, 19 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - pop {r0} - bx r0 - .pool - thumb_func_end sub_813B1D0 - - thumb_func_start set_unknown_box_id -@ void set_unknown_box_id(char id) -set_unknown_box_id: @ 813B204 - ldr r1, =gUnknown_0203AB6F - strb r0, [r1] - bx lr - .pool - thumb_func_end set_unknown_box_id - - thumb_func_start get_unknown_box_id -get_unknown_box_id: @ 813B210 - ldr r0, =gUnknown_0203AB6F - ldrb r0, [r0] - bx lr - .pool - thumb_func_end get_unknown_box_id - - thumb_func_start sub_813B21C -sub_813B21C: @ 813B21C - push {r4,r5,lr} - ldr r5, =0x000008d7 - adds r0, r5, 0 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _0813B258 - bl StorageGetCurrentBox - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =0x00004036 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r4, r0 - beq _0813B258 - adds r0, r5, 0 - bl FlagSet - movs r0, 0x1 - b _0813B25A - .pool -_0813B258: - movs r0, 0 -_0813B25A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_813B21C - - thumb_func_start sub_813B260 -sub_813B260: @ 813B260 - push {r4-r7,lr} - ldr r0, =0x00004036 - bl VarGet - lsls r0, 24 - lsrs r0, 24 - bl set_unknown_box_id - bl StorageGetCurrentBox - lsls r0, 24 - lsrs r4, r0, 24 -_0813B278: - movs r5, 0 - lsls r6, r4, 24 - lsls r7, r4, 16 -_0813B27E: - lsls r1, r5, 24 - lsrs r1, 24 - lsrs r0, r6, 24 - bl GetBoxedMonPtr - movs r1, 0xB - movs r2, 0 - bl GetBoxMonData - cmp r0, 0 - bne _0813B2C0 - bl get_unknown_box_id - lsls r0, 16 - lsrs r0, 16 - cmp r0, r4 - beq _0813B2A6 - ldr r0, =0x000008d7 - bl FlagClear -_0813B2A6: - ldr r0, =0x00004036 - lsrs r1, r7, 16 - bl VarSet - bl sub_813B21C - lsls r0, 24 - lsrs r0, 24 - b _0813B2DC - .pool -_0813B2C0: - adds r5, 0x1 - cmp r5, 0x1D - ble _0813B27E - adds r4, 0x1 - cmp r4, 0xE - bne _0813B2CE - movs r4, 0 -_0813B2CE: - bl StorageGetCurrentBox - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bne _0813B278 - movs r0, 0 -_0813B2DC: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_813B260 - - thumb_func_start sub_813B2E4 -sub_813B2E4: @ 813B2E4 - push {r4,lr} - bl Random - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, =0x00004038 - movs r1, 0 - bl VarSet - movs r0, 0xDF - lsls r0, 1 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0813B340 - ldr r0, =0x000001bf - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0813B330 - ldr r0, =0x00004037 - movs r1, 0x7 - ands r4, r1 - adds r1, r4, 0 - adds r1, 0x9 - bl VarSet - b _0813B36A - .pool -_0813B330: - movs r0, 0x1 - ands r4, r0 - cmp r4, 0 - bne _0813B354 - bl Random - lsls r0, 16 - lsrs r4, r0, 16 -_0813B340: - ldr r0, =0x00004037 - movs r1, 0x7 - ands r4, r1 - adds r1, r4, 0x1 - bl VarSet - b _0813B36A - .pool -_0813B354: - bl Random - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, =0x00004037 - movs r1, 0x7 - ands r4, r1 - adds r1, r4, 0 - adds r1, 0x9 - bl VarSet -_0813B36A: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813B2E4 - - thumb_func_start sub_813B374 -sub_813B374: @ 813B374 - push {r4,lr} - ldr r0, =0x00004037 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, =gStringVar1 - ldr r2, =gUnknown_085B3400 - subs r1, r4, 0x1 - adds r1, r2 - ldrb r1, [r1] - movs r2, 0 - bl GetMapName - cmp r4, 0x8 - bls _0813B3A8 - movs r0, 0x1 - b _0813B3AA - .pool -_0813B3A8: - movs r0, 0 -_0813B3AA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_813B374 - - thumb_func_start sub_813B3B0 -sub_813B3B0: @ 813B3B0 - push {r4-r6,lr} - ldr r5, =0x00004038 - adds r0, r5, 0 - bl VarGet - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, =0x00004037 - bl VarGet - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0 - beq _0813B47C - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, =0x000003e7 - cmp r4, r0 - bls _0813B474 - adds r0, r5, 0 - movs r1, 0 - bl VarSet - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - movs r0, 0x4 - ldrsb r0, [r1, r0] - cmp r0, 0x18 - bne _0813B414 - movs r0, 0x5 - ldrsb r0, [r1, r0] - cmp r0, 0x69 - bgt _0813B414 - cmp r0, 0x65 - blt _0813B414 - ldr r0, =0x00004039 - movs r1, 0x1 - b _0813B478 - .pool -_0813B414: - ldr r0, =gSaveBlock1Ptr - ldr r2, [r0] - movs r1, 0x4 - ldrsb r1, [r2, r1] - adds r3, r0, 0 - cmp r1, 0 - bne _0813B444 - movs r0, 0x5 - ldrsb r0, [r2, r0] - cmp r0, 0x34 - beq _0813B436 - cmp r0, 0x34 - blt _0813B444 - cmp r0, 0x38 - bgt _0813B444 - cmp r0, 0x36 - blt _0813B444 -_0813B436: - ldr r0, =0x00004039 - movs r1, 0x1 - b _0813B478 - .pool -_0813B444: - ldr r3, [r3] - movs r2, 0x5 - ldrsb r2, [r3, r2] - ldr r1, =gUnknown_085B3410 - subs r0, r6, 0x1 - adds r0, r1 - ldrb r0, [r0] - cmp r2, r0 - bne _0813B468 - movs r0, 0x4 - ldrsb r0, [r3, r0] - cmp r0, 0 - bne _0813B468 - movs r0, 0x1 - b _0813B47E - .pool -_0813B468: - ldr r0, =0x00004037 - movs r1, 0 - b _0813B478 - .pool -_0813B474: - adds r0, r5, 0 - adds r1, r4, 0 -_0813B478: - bl VarSet -_0813B47C: - movs r0, 0 -_0813B47E: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_813B3B0 - - thumb_func_start sub_813B484 -sub_813B484: @ 813B484 - push {lr} - movs r0, 0x2 - bl sub_80AB104 - pop {r0} - bx r0 - thumb_func_end sub_813B484 - - thumb_func_start sub_813B490 -sub_813B490: @ 813B490 - push {r4-r7,lr} - movs r3, 0 - ldr r0, =gSaveBlock1Ptr - ldr r4, [r0] - movs r6, 0x4 - ldrsb r6, [r4, r6] - ldr r5, =gUnknown_085B3420 - adds r0, r5, 0x2 - mov r12, r0 - adds r7, r5, 0x1 -_0813B4A4: - lsls r0, r3, 1 - adds r2, r0, r3 - adds r0, r2, r5 - ldrb r0, [r0] - cmp r6, r0 - bne _0813B4CC - movs r1, 0x5 - ldrsb r1, [r4, r1] - adds r0, r2, r7 - ldrb r0, [r0] - cmp r1, r0 - bne _0813B4CC - mov r1, r12 - adds r0, r2, r1 - ldrb r0, [r0] - b _0813B4D8 - .pool -_0813B4CC: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0xB - bls _0813B4A4 - movs r0, 0x1 -_0813B4D8: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_813B490 - - thumb_func_start sub_813B4E0 -sub_813B4E0: @ 813B4E0 - push {lr} - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - bl GetRematchIdxByTrainerIdx - cmp r0, 0 - blt _0813B50C - movs r1, 0xAE - lsls r1, 1 - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0813B50C - movs r0, 0x1 - b _0813B50E - .pool -_0813B50C: - movs r0, 0 -_0813B50E: - pop {r1} - bx r1 - thumb_func_end sub_813B4E0 - - thumb_func_start sub_813B514 -sub_813B514: @ 813B514 - push {lr} - ldr r0, =0x0000403f - bl VarGet - lsls r0, 16 - cmp r0, 0 - beq _0813B52C - movs r0, 0x1 - b _0813B52E - .pool -_0813B52C: - movs r0, 0 -_0813B52E: - pop {r1} - bx r1 - thumb_func_end sub_813B514 - - thumb_func_start sub_813B534 -sub_813B534: @ 813B534 - push {lr} - ldr r2, =gUnknown_0203AB70 - ldr r1, =gBattleTypeFlags - ldr r0, [r1] - str r0, [r2] - movs r0, 0 - str r0, [r1] - ldr r0, =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _0813B552 - ldr r0, =sub_80B3AF8 - movs r1, 0x5 - bl CreateTask -_0813B552: - pop {r0} - bx r0 - .pool - thumb_func_end sub_813B534 - - thumb_func_start sub_813B568 -sub_813B568: @ 813B568 - push {lr} - ldr r0, =sub_813B57C - movs r1, 0x5 - bl CreateTask - pop {r0} - bx r0 - .pool - thumb_func_end sub_813B568 - - thumb_func_start sub_813B57C -sub_813B57C: @ 813B57C - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0x8 - ldrsh r0, [r0, r1] - cmp r0, 0x9 - bls _0813B596 - b _0813B7C6 -_0813B596: - lsls r0, 2 - ldr r1, =_0813B5A8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0813B5A8: - .4byte _0813B5D0 - .4byte _0813B5E4 - .4byte _0813B614 - .4byte _0813B6B4 - .4byte _0813B6E4 - .4byte _0813B728 - .4byte _0813B764 - .4byte _0813B772 - .4byte _0813B784 - .4byte _0813B7A8 -_0813B5D0: - ldr r0, =sub_80B3AF8 - bl FuncIsActiveTask - lsls r0, 24 - cmp r0, 0 - beq _0813B5DE - b _0813B7C6 -_0813B5DE: - b _0813B790 - .pool -_0813B5E4: - bl sub_800A520 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0813B5F2 - b _0813B7C6 -_0813B5F2: - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - bne _0813B5FE - b _0813B790 -_0813B5FE: - bl bitmask_all_link_players_but_self - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gSpecialVar_0x8004 - movs r2, 0x2 - bl SendBlock - b _0813B708 - .pool -_0813B614: - bl GetBlockReceivedStatus - movs r1, 0x2 - ands r1, r0 - cmp r1, 0 - bne _0813B622 - b _0813B7C6 -_0813B622: - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - beq _0813B62E - b _0813B790 -_0813B62E: - ldr r5, =gSpecialVar_0x8005 - ldr r0, =gBlockRecvBuffer - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r5] - movs r0, 0x1 - bl ResetBlockReceivedFlag - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r0, 0x1 - bne _0813B668 - ldrh r1, [r5] - cmp r1, 0x1 - bne _0813B668 - ldr r0, =gSpecialVar_Result - strh r1, [r0] - b _0813B790 - .pool -_0813B668: - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - adds r2, r0, 0 - cmp r1, 0 - bne _0813B68C - ldr r0, =gSpecialVar_0x8005 - ldrh r0, [r0] - cmp r0, 0x1 - bne _0813B68C - ldr r1, =gSpecialVar_Result - movs r0, 0x2 - b _0813B6AC - .pool -_0813B68C: - ldrh r0, [r2] - cmp r0, 0x1 - bne _0813B6A8 - ldr r0, =gSpecialVar_0x8005 - ldrh r0, [r0] - cmp r0, 0 - bne _0813B6A8 - ldr r1, =gSpecialVar_Result - movs r0, 0x3 - b _0813B6AC - .pool -_0813B6A8: - ldr r1, =gSpecialVar_Result - movs r0, 0 -_0813B6AC: - strh r0, [r1] - b _0813B790 - .pool -_0813B6B4: - bl sub_800A520 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0813B6C2 - b _0813B7C6 -_0813B6C2: - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - bne _0813B790 - bl bitmask_all_link_players_but_self - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gSpecialVar_Result - movs r2, 0x2 - bl SendBlock - b _0813B708 - .pool -_0813B6E4: - bl GetBlockReceivedStatus - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _0813B7C6 - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - beq _0813B790 - ldr r1, =gSpecialVar_Result - ldr r0, =gBlockRecvBuffer - ldrh r0, [r0] - strh r0, [r1] - movs r0, 0 - bl ResetBlockReceivedFlag -_0813B708: - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - b _0813B7C6 - .pool -_0813B728: - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - bne _0813B74C - ldr r0, =gSpecialVar_Result - ldrh r0, [r0] - cmp r0, 0x2 - bne _0813B790 - ldr r0, =gText_YourPartnerHasRetired - bl ShowFieldAutoScrollMessage - b _0813B790 - .pool -_0813B74C: - ldr r0, =gSpecialVar_Result - ldrh r0, [r0] - cmp r0, 0x3 - bne _0813B790 - ldr r0, =gText_YourPartnerHasRetired - bl ShowFieldAutoScrollMessage - b _0813B790 - .pool -_0813B764: - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - cmp r0, 0 - bne _0813B7C6 - b _0813B790 -_0813B772: - bl sub_800A520 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0813B7C6 - bl sub_800ADF8 - b _0813B790 -_0813B784: - bl sub_800A520 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0813B7C6 -_0813B790: - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _0813B7C6 - .pool -_0813B7A8: - ldr r0, =gWirelessCommType - ldrb r0, [r0] - cmp r0, 0 - bne _0813B7B4 - bl sub_800AC34 -_0813B7B4: - ldr r0, =gBattleTypeFlags - ldr r1, =gUnknown_0203AB70 - ldr r1, [r1] - str r1, [r0] - bl EnableBothScriptContexts - adds r0, r4, 0 - bl DestroyTask -_0813B7C6: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813B57C - - thumb_func_start sub_813B7D8 -sub_813B7D8: @ 813B7D8 - push {lr} - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r0, 0 - bne _0813B7F8 - ldr r2, =CB2_ReturnToFieldContinueScriptPlayMapMusic - movs r0, 0 - movs r1, 0x1 - bl DoRayquazaScene - b _0813B802 - .pool -_0813B7F8: - ldr r2, =CB2_ReturnToFieldContinueScriptPlayMapMusic - movs r0, 0x1 - movs r1, 0 - bl DoRayquazaScene -_0813B802: - pop {r0} - bx r0 - .pool - thumb_func_end sub_813B7D8 - - thumb_func_start sub_813B80C -sub_813B80C: @ 813B80C - push {lr} - ldr r0, =sub_813B824 - movs r1, 0x8 - bl CreateTask - movs r0, 0x9D - bl PlaySE - pop {r0} - bx r0 - .pool - thumb_func_end sub_813B80C - - thumb_func_start sub_813B824 -sub_813B824: @ 813B824 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - movs r0, 0x2 - ldrsh r1, [r4, r0] - ldr r0, =gSpecialVar_0x8005 - ldrh r0, [r0] - cmp r1, r0 - bne _0813B858 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - movs r0, 0 - strh r0, [r4, 0x2] - movs r0, 0x9D - bl PlaySE -_0813B858: - movs r0, 0 - ldrsh r1, [r4, r0] - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - subs r0, 0x1 - cmp r1, r0 - bne _0813B86C - adds r0, r5, 0 - bl DestroyTask -_0813B86C: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813B824 - - thumb_func_start sub_813B880 -sub_813B880: @ 813B880 - push {lr} - ldr r0, =_fwalk - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0 - movs r0, 0x4 - strh r0, [r1, 0x8] - strh r0, [r1, 0xA] - strh r0, [r1, 0xC] - strh r2, [r1, 0xE] - pop {r0} - bx r0 - .pool - thumb_func_end sub_813B880 - - thumb_func_start _fwalk -_fwalk: @ 813B8B0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r0, 2 - add r0, r9 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r5, r0, r1 - movs r0, 0x6 - ldrsh r1, [r5, r0] - lsls r1, 1 - adds r1, r5 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - movs r1, 0x6 - ldrsh r0, [r5, r1] - lsls r0, 1 - adds r0, r5 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0 - bne _0813B94E - movs r6, 0 -_0813B8EA: - movs r4, 0 - lsls r3, r6, 3 - mov r10, r3 - adds r7, r6, 0x1 - mov r8, r7 -_0813B8F4: - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - movs r2, 0 - ldrsh r0, [r1, r2] - adds r0, r4 - adds r0, 0x6 - movs r3, 0x2 - ldrsh r1, [r1, r3] - adds r1, r6 - adds r1, 0x4 - ldr r7, =0x00000201 - adds r2, r4, r7 - add r2, r10 - movs r7, 0x6 - ldrsh r3, [r5, r7] - lsls r3, 5 - adds r2, r3 - lsls r2, 16 - lsrs r2, 16 - bl MapGridSetMetatileIdAt - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _0813B8F4 - mov r1, r8 - lsls r0, r1, 24 - lsrs r6, r0, 24 - cmp r6, 0x3 - bls _0813B8EA - bl DrawWholeMapView - ldrh r0, [r5, 0x6] - adds r0, 0x1 - strh r0, [r5, 0x6] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - bne _0813B94E - mov r0, r9 - bl DestroyTask - bl EnableBothScriptContexts -_0813B94E: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end _fwalk - - thumb_func_start sub_813B968 -sub_813B968: @ 813B968 - push {r4,r5,lr} - ldr r5, =gSpecialVar_Result - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - movs r1, 0x7 - bl __udivsi3 - strh r0, [r5] - ldrh r4, [r5] - adds r0, r4, 0 - movs r1, 0x14 - bl __udivsi3 - lsls r0, 16 - lsrs r0, 16 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - subs r4, r1 - strh r4, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813B968 - - thumb_func_start sub_813B9A0 -sub_813B9A0: @ 813B9A0 - push {lr} - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrh r1, [r0, 0x1C] - movs r0, 0xB0 - lsls r0, 4 - cmp r1, r0 - bne _0813B9B6 - movs r0, 0x3 - bl Overworld_SetHealLocationWarp -_0813B9B6: - pop {r0} - bx r0 - .pool - thumb_func_end sub_813B9A0 - - thumb_func_start sub_813B9C0 -sub_813B9C0: @ 813B9C0 - push {r4,lr} - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0x4 - ldrsb r1, [r0, r1] - lsls r1, 8 - ldrb r0, [r0, 0x5] - lsls r0, 24 - asrs r0, 24 - adds r0, r1 - lsls r0, 16 - lsrs r3, r0, 16 - ldr r2, =gUnknown_085B3444 - ldrh r0, [r2] - ldr r1, =0x0000ffff - cmp r0, r1 - beq _0813BA06 - adds r4, r1, 0 - adds r1, r2, 0 -_0813B9E6: - ldrh r0, [r2] - cmp r0, r3 - bne _0813B9FC - movs r0, 0x1 - b _0813BA08 - .pool -_0813B9FC: - adds r1, 0x2 - adds r2, 0x2 - ldrh r0, [r1] - cmp r0, r4 - bne _0813B9E6 -_0813BA06: - movs r0, 0 -_0813BA08: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_813B9C0 - - thumb_func_start ResetFanClub -ResetFanClub: @ 813BA10 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x0000141e - adds r1, r0, r2 - movs r2, 0 - strh r2, [r1] - movs r1, 0xA1 - lsls r1, 5 - adds r0, r1 - strh r2, [r0] - bx lr - .pool - thumb_func_end ResetFanClub - - thumb_func_start sub_813BA30 -sub_813BA30: @ 813BA30 - push {lr} - bl sub_813BF44 - lsls r0, 24 - cmp r0, 0 - beq _0813BA52 - bl sub_813BCE8 - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrh r0, [r0, 0xE] - movs r2, 0xA1 - lsls r2, 5 - adds r1, r2 - strh r0, [r1] -_0813BA52: - pop {r0} - bx r0 - .pool - thumb_func_end sub_813BA30 - - thumb_func_start sub_813BA60 -sub_813BA60: @ 813BA60 - push {r4,lr} - ldr r4, =gSaveBlock1Ptr - ldr r0, [r4] - ldr r1, =0x0000141e - adds r0, r1 - ldrh r0, [r0] - lsrs r0, 7 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0813BAB6 - bl sub_813BF60 - bl sub_813BD84 - ldr r1, [r4] - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrh r0, [r0, 0xE] - movs r2, 0xA1 - lsls r2, 5 - adds r1, r2 - strh r0, [r1] - ldr r0, =0x00000315 - bl FlagClear - ldr r0, =0x00000316 - bl FlagClear - ldr r0, =0x00000317 - bl FlagClear - movs r0, 0xC6 - lsls r0, 2 - bl FlagClear - ldr r0, =0x000002da - bl FlagClear - ldr r0, =0x00004095 - movs r1, 0x1 - bl VarSet -_0813BAB6: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813BA60 - - thumb_func_start sub_813BADC -sub_813BADC: @ 813BADC - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, =0x00004095 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2 - bne _0813BB58 - ldr r4, =gSaveBlock1Ptr - ldr r0, [r4] - ldr r5, =0x0000141e - adds r3, r0, r5 - ldrh r2, [r3] - movs r1, 0x7F - ands r1, r2 - ldr r0, =gUnknown_085B3470 - adds r0, r6, r0 - ldrb r0, [r0] - adds r1, r0 - cmp r1, 0x13 - ble _0813BB54 - bl sub_813BCA8 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2 - bhi _0813BB3C - bl sub_813BB74 - ldr r0, [r4] - adds r0, r5 - ldrh r2, [r0] - ldr r1, =0x0000ff80 - ands r1, r2 - strh r1, [r0] - b _0813BB58 - .pool -_0813BB3C: - ldr r2, [r4] - adds r2, r5 - ldrh r1, [r2] - ldr r0, =0x0000ff80 - ands r0, r1 - movs r1, 0x14 - orrs r0, r1 - strh r0, [r2] - b _0813BB58 - .pool -_0813BB54: - adds r0, r2, r0 - strh r0, [r3] -_0813BB58: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x0000141e - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x7F - ands r0, r1 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_813BADC - - thumb_func_start sub_813BB74 -sub_813BB74: @ 813BB74 - push {r4-r7,lr} - sub sp, 0x8 - movs r3, 0 - movs r5, 0 - ldr r7, =gSaveBlock1Ptr - ldr r2, =0x0000141e - movs r6, 0x1 -_0813BB82: - ldr r0, [r7] - adds r0, r2 - ldrh r1, [r0] - ldr r0, =gUnknown_085B3474 - adds r0, r5, r0 - ldrb r4, [r0] - asrs r1, r4 - ands r1, r6 - cmp r1, 0 - bne _0813BBC8 - adds r3, r5, 0 - str r2, [sp] - str r3, [sp, 0x4] - bl Random - adds r1, r6, 0 - ands r1, r0 - ldr r2, [sp] - ldr r3, [sp, 0x4] - cmp r1, 0 - beq _0813BBC8 - ldr r0, [r7] - adds r0, r2 - adds r1, r6, 0 - lsls r1, r4 - ldrh r2, [r0] - orrs r1, r2 - strh r1, [r0] - b _0813BBEA - .pool -_0813BBC8: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x7 - bls _0813BB82 - ldr r0, =gSaveBlock1Ptr - ldr r2, [r0] - ldr r0, =0x0000141e - adds r2, r0 - ldr r1, =gUnknown_085B3474 - adds r1, r3, r1 - movs r0, 0x1 - ldrb r1, [r1] - lsls r0, r1 - ldrh r1, [r2] - orrs r0, r1 - strh r0, [r2] -_0813BBEA: - adds r0, r3, 0 - add sp, 0x8 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_813BB74 - - thumb_func_start sub_813BC00 -sub_813BC00: @ 813BC00 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r0, 0 - mov r10, r0 - bl sub_813BCA8 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bne _0813BC2E - movs r0, 0 - b _0813BC8E -_0813BC1E: - mov r1, r8 - ldr r0, [r1] - add r0, r9 - lsls r4, r6 - ldrh r1, [r0] - eors r4, r1 - strh r4, [r0] - b _0813BC8C -_0813BC2E: - movs r5, 0 - ldr r2, =gSaveBlock1Ptr - mov r8, r2 - ldr r0, =0x0000141e - mov r9, r0 - movs r4, 0x1 -_0813BC3A: - mov r1, r8 - ldr r0, [r1] - add r0, r9 - ldrh r1, [r0] - ldr r7, =gUnknown_085B347C - adds r0, r5, r7 - ldrb r6, [r0] - asrs r1, r6 - ands r1, r4 - cmp r1, 0 - beq _0813BC5E - mov r10, r5 - bl Random - adds r1, r4, 0 - ands r1, r0 - cmp r1, 0 - bne _0813BC1E -_0813BC5E: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x7 - bls _0813BC3A - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x0000141e - adds r4, r0, r2 - ldrh r1, [r4] - mov r2, r10 - adds r0, r2, r7 - ldrb r2, [r0] - adds r0, r1, 0 - asrs r0, r2 - movs r3, 0x1 - ands r0, r3 - cmp r0, 0 - beq _0813BC8C - adds r0, r3, 0 - lsls r0, r2 - eors r1, r0 - strh r1, [r4] -_0813BC8C: - mov r0, r10 -_0813BC8E: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_813BC00 - - thumb_func_start sub_813BCA8 -sub_813BCA8: @ 813BCA8 - push {r4,r5,lr} - movs r3, 0 - movs r2, 0 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x0000141e - adds r0, r1 - ldrh r4, [r0] - movs r5, 0x1 -_0813BCBA: - adds r1, r2, 0 - adds r1, 0x8 - adds r0, r4, 0 - asrs r0, r1 - ands r0, r5 - cmp r0, 0 - beq _0813BCCE - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 -_0813BCCE: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x7 - bls _0813BCBA - adds r0, r3, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_813BCA8 - - thumb_func_start sub_813BCE8 -sub_813BCE8: @ 813BCE8 - push {r4-r6,lr} - movs r5, 0 - ldr r2, =gSaveBlock2Ptr - ldr r0, [r2] - ldrh r1, [r0, 0xE] - ldr r0, =0x000003e6 - cmp r1, r0 - bhi _0813BD58 - adds r6, r2, 0 - b _0813BD32 - .pool -_0813BD04: - ldr r0, [r6] - ldrh r1, [r0, 0xE] - ldr r4, =gSaveBlock1Ptr - ldr r0, [r4] - movs r2, 0xA1 - lsls r2, 5 - adds r0, r2 - ldrh r0, [r0] - subs r1, r0 - cmp r1, 0xB - ble _0813BD58 - bl sub_813BC00 - ldr r0, [r4] - movs r1, 0xA1 - lsls r1, 5 - adds r0, r1 - ldrh r1, [r0] - adds r1, 0xC - strh r1, [r0] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_0813BD32: - bl sub_813BCA8 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x4 - bhi _0813BD54 - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r0, [r6] - ldrh r0, [r0, 0xE] - movs r2, 0xA1 - lsls r2, 5 - adds r1, r2 - strh r0, [r1] - b _0813BD58 - .pool -_0813BD54: - cmp r5, 0x8 - bne _0813BD04 -_0813BD58: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_813BCE8 - - thumb_func_start sub_813BD60 -sub_813BD60: @ 813BD60 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x0000141e - adds r0, r1 - ldrh r0, [r0] - ldr r1, =gSpecialVar_0x8004 - ldrh r1, [r1] - asrs r0, r1 - movs r1, 0x1 - ands r0, r1 - bx lr - .pool - thumb_func_end sub_813BD60 - - thumb_func_start sub_813BD84 -sub_813BD84: @ 813BD84 - ldr r0, =gSaveBlock1Ptr - ldr r2, [r0] - ldr r0, =0x0000141e - adds r2, r0 - ldrh r1, [r2] - movs r3, 0x80 - lsls r3, 6 - adds r0, r3, 0 - orrs r0, r1 - movs r3, 0x80 - lsls r3, 1 - adds r1, r3, 0 - orrs r0, r1 - movs r3, 0x80 - lsls r3, 3 - adds r1, r3, 0 - orrs r0, r1 - strh r0, [r2] - bx lr - .pool - thumb_func_end sub_813BD84 - - thumb_func_start sub_813BDB4 -sub_813BDB4: @ 813BDB4 - push {lr} - movs r3, 0 - movs r2, 0 - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - subs r0, 0x8 - cmp r0, 0x7 - bhi _0813BE14 - lsls r0, 2 - ldr r1, =_0813BDD8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0813BDD8: - .4byte _0813BE14 - .4byte _0813BE14 - .4byte _0813BDF8 - .4byte _0813BDFE - .4byte _0813BE04 - .4byte _0813BE0A - .4byte _0813BE10 - .4byte _0813BE14 -_0813BDF8: - movs r3, 0 - movs r2, 0x3 - b _0813BE14 -_0813BDFE: - movs r3, 0 - movs r2, 0x1 - b _0813BE14 -_0813BE04: - movs r3, 0x1 - movs r2, 0 - b _0813BE14 -_0813BE0A: - movs r3, 0 - movs r2, 0x4 - b _0813BE14 -_0813BE10: - movs r3, 0x1 - movs r2, 0x5 -_0813BE14: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003150 - adds r0, r1 - adds r1, r3, 0 - bl sub_813BE30 - pop {r0} - bx r0 - .pool - thumb_func_end sub_813BDB4 - - thumb_func_start sub_813BE30 -sub_813BE30: @ 813BE30 - push {r4-r6,lr} - adds r6, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r0, r5, 4 - adds r1, r6, r0 - ldrb r0, [r1] - cmp r0, 0xFF - bne _0813BEE8 - cmp r2, 0x5 - bhi _0813BED4 - lsls r0, r2, 2 - ldr r1, =_0813BE58 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0813BE58: - .4byte _0813BED4 - .4byte _0813BE70 - .4byte _0813BE84 - .4byte _0813BE98 - .4byte _0813BEAC - .4byte _0813BEC0 -_0813BE70: - ldr r0, =gStringVar1 - ldr r1, =gText_Steven - bl StringCopy - b _0813BF04 - .pool -_0813BE84: - ldr r0, =gStringVar1 - ldr r1, =gText_Brawly - bl StringCopy - b _0813BF04 - .pool -_0813BE98: - ldr r0, =gStringVar1 - ldr r1, =gText_Winona - bl StringCopy - b _0813BF04 - .pool -_0813BEAC: - ldr r0, =gStringVar1 - ldr r1, =gText_Phoebe - bl StringCopy - b _0813BF04 - .pool -_0813BEC0: - ldr r0, =gStringVar1 - ldr r1, =gText_Glacia - bl StringCopy - b _0813BF04 - .pool -_0813BED4: - ldr r0, =gStringVar1 - ldr r1, =gText_Wallace - bl StringCopy - b _0813BF04 - .pool -_0813BEE8: - ldr r4, =gStringVar1 - adds r0, r4, 0 - movs r2, 0x7 - bl StringCopyN - movs r0, 0xFF - strb r0, [r4, 0x7] - adds r0, r6, 0 - adds r0, 0x50 - adds r0, r5 - ldrb r1, [r0] - adds r0, r4, 0 - bl ConvertInternationalString -_0813BF04: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813BE30 - - thumb_func_start sub_813BF10 -sub_813BF10: @ 813BF10 - push {lr} - ldr r0, =0x00004095 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2 - bne _0813BF40 - bl sub_813BA30 - ldr r0, =gBattleOutcome - ldrb r0, [r0] - cmp r0, 0x1 - bne _0813BF3C - bl sub_813BB74 - b _0813BF40 - .pool -_0813BF3C: - bl sub_813BC00 -_0813BF40: - pop {r0} - bx r0 - thumb_func_end sub_813BF10 - - thumb_func_start sub_813BF44 -sub_813BF44: @ 813BF44 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x0000141e - adds r0, r1 - ldrh r0, [r0] - lsrs r0, 7 - movs r1, 0x1 - ands r0, r1 - bx lr - .pool - thumb_func_end sub_813BF44 - - thumb_func_start sub_813BF60 -sub_813BF60: @ 813BF60 - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r0, =0x0000141e - adds r1, r0 - ldrh r2, [r1] - movs r0, 0x80 - orrs r0, r2 - strh r0, [r1] - bx lr - .pool - thumb_func_end sub_813BF60 - - thumb_func_start sub_813BF7C -sub_813BF7C: @ 813BF7C - push {lr} - ldr r0, =gSpecialVar_0x8004 - ldrb r0, [r0] - bl sub_813BADC - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end sub_813BF7C - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/pokenav.s b/asm/pokenav.s index dd2dbf4e0..c9fe787e0 100644 --- a/asm/pokenav.s +++ b/asm/pokenav.s @@ -1585,7 +1585,7 @@ sub_81C7E58: @ 81C7E58 adds r0, r4, 0 movs r2, 0x20 bl LoadPalette - ldr r4, =0x0201c000 + ldr r4, =gDecompressionBuffer mov r0, r8 adds r1, r4, 0 bl LZ77UnCompWram @@ -1667,7 +1667,7 @@ sub_81C7F24: @ 81C7F24 adds r0, r4, 0 movs r2, 0x20 bl LoadPalette - ldr r4, =0x0201d000 + ldr r4, =gDecompressionBuffer+0x1000 adds r0, r6, 0 adds r1, r4, 0 bl LZ77UnCompWram @@ -27036,7 +27036,7 @@ _081D4E1C: thumb_func_start sub_81D4E30 sub_81D4E30: @ 81D4E30 push {lr} - ldr r0, =0x0201c000 + ldr r0, =gDecompressionBuffer movs r2, 0x80 lsls r2, 6 movs r1, 0 @@ -27657,7 +27657,7 @@ _081D5386: strb r0, [r4, 0x8] b _081D548A _081D5390: - ldr r0, =0x0201c000 + ldr r0, =gDecompressionBuffer bl sub_81D3920 strb r0, [r4, 0xE] ldrb r0, [r4, 0xE] @@ -27683,7 +27683,7 @@ _081D53C0: strb r0, [r4, 0x8] b _081D548A _081D53C6: - ldr r0, =0x0201c000 + ldr r0, =gDecompressionBuffer bl sub_81D3AB0 cmp r0, 0 beq _081D53EC diff --git a/asm/rom_8011DC0.s b/asm/rom_8011DC0.s index fd2cccca3..61324b207 100644 --- a/asm/rom_8011DC0.s +++ b/asm/rom_8011DC0.s @@ -15650,7 +15650,7 @@ _0801D7D0: b _0801D804 .pool _0801D7F0: - ldr r0, =0x0201c000 + ldr r0, =gDecompressionBuffer ldr r1, [r4, 0x18] movs r2, 0x80 lsls r2, 3 @@ -15723,7 +15723,7 @@ _0801D858: sub_801D860: @ 801D860 push {r4,lr} adds r4, r0, 0 - ldr r3, =0x0201c000 + ldr r3, =gDecompressionBuffer adds r0, r4, 0x4 ldr r1, =gSaveBlock2Ptr ldr r1, [r1] @@ -25386,7 +25386,7 @@ sub_80226D0: @ 80226D0 adds r6, r0, 0 movs r5, 0 ldr r0, =gUnknown_08DE3FD4 - ldr r4, =0x0201c000 + ldr r4, =gDecompressionBuffer adds r1, r4, 0 bl LZ77UnCompWram b _0802271A diff --git a/asm/roulette.s b/asm/roulette.s index d3dd5fd9e..b0098daf6 100644 --- a/asm/roulette.s +++ b/asm/roulette.s @@ -4948,7 +4948,7 @@ sub_8142CD0: @ 8142CD0 sub sp, 0x8 ldr r4, =gUnknown_085B7488 ldr r0, [r4] - ldr r5, =0x0201c000 + ldr r5, =gDecompressionBuffer adds r1, r5, 0 bl LZ77UnCompWram str r5, [sp] @@ -5575,7 +5575,7 @@ sub_81431E4: @ 81431E4 sub sp, 0xC ldr r4, =gUnknown_085B741C ldr r0, [r4] - ldr r5, =0x0201c000 + ldr r5, =gDecompressionBuffer adds r1, r5, 0 bl LZ77UnCompWram str r5, [sp, 0x4] @@ -5720,7 +5720,7 @@ sub_8143314: @ 8143314 push {r7} sub sp, 0x8 movs r5, 0 - ldr r7, =0x0201c000 + ldr r7, =gDecompressionBuffer mov r6, sp _08143322: ldr r0, =gUnknown_085B7750 @@ -6448,7 +6448,7 @@ sub_814391C: @ 814391C sub sp, 0x8 ldr r4, =gUnknown_085B7948 ldr r0, [r4] - ldr r5, =0x0201c000 + ldr r5, =gDecompressionBuffer adds r1, r5, 0 bl LZ77UnCompWram str r5, [sp] diff --git a/asm/script_menu.s b/asm/script_menu.s index a2e2ec59e..670740a77 100644 --- a/asm/script_menu.s +++ b/asm/script_menu.s @@ -1498,7 +1498,7 @@ CreateWindowFromRect: @ 80E2A1C movs r1, 0 adds r2, r4, 0 adds r3, r5, 0 - bl sub_8198A50 + bl CreateWindowTemplate ldr r0, [sp, 0x10] ldr r1, [sp, 0x14] str r0, [sp, 0x18] diff --git a/asm/trade.s b/asm/trade.s index 911b56aec..763b1a9ec 100644 --- a/asm/trade.s +++ b/asm/trade.s @@ -7612,7 +7612,7 @@ sub_807B170: @ 807B170 bl copy_decompressed_tile_data_to_vram_autofree ldr r0, =gBattleTextboxTilemap mov r8, r0 - ldr r4, =0x0201c000 + ldr r4, =gDecompressionBuffer adds r1, r4, 0 bl LZDecompressWram movs r0, 0 diff --git a/common_syms/field_specials.txt b/common_syms/field_specials.txt new file mode 100644 index 000000000..25d874a65 --- /dev/null +++ b/common_syms/field_specials.txt @@ -0,0 +1 @@ +gUnknown_030061D0 diff --git a/data/event_scripts.s b/data/event_scripts.s index 0336c0c97..7dbe3fd01 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -1110,10 +1110,10 @@ EventScript_2715DE:: @ 82715DE setflag FLAG_0x2DE setflag FLAG_0x351 setflag FLAG_0x32F - setflag FLAG_0x315 - setflag FLAG_0x316 - setflag FLAG_0x317 - setflag FLAG_0x318 + setflag FLAG_HIDE_FANCLUB_OLD_LADY + setflag FLAG_HIDE_FANCLUB_BOY + setflag FLAG_HIDE_FANCLUB_LITTLE_BOY + setflag FLAG_HIDE_FANCLUB_LADY setflag FLAG_0x2DA setflag FLAG_0x31D setflag FLAG_0x31E @@ -2356,8 +2356,8 @@ RusturfTunnel_EventScript_272216:: @ 8272216 removeobject 10 clearflag FLAG_0x328 clearflag FLAG_0x3D8 - setvar VAR_0x409A, 6 - setflag FLAG_0x0C7 + setvar VAR_RUSTURF_TUNNEL_STATE, 6 + setflag FLAG_RUSTURF_TUNNEL_OPENED return EventScript_27222B:: @ 827222B @@ -2517,7 +2517,7 @@ Route119_EventScript_272365:: @ 8272365 setflag FLAG_SYS_CTRL_OBJ_DELETE dowildbattle clearflag FLAG_SYS_CTRL_OBJ_DELETE - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 1 goto_eq Route119_EventScript_2723C1 compare VAR_RESULT, 4 diff --git a/data/field_specials.s b/data/field_specials.s deleted file mode 100644 index 8f9734a01..000000000 --- a/data/field_specials.s +++ /dev/null @@ -1,547 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gUnknown_085B2B5C:: @ 85B2B5C - .byte 0x07, 0x09, 0x08, 0x0a - - .align 2 -gUnknown_085B2B60:: @ 85B2B60 - .byte 0x00, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0x00 - -gUnknown_085B2B68:: @ 85B2B68 - .byte 0x07, 0x16, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0a, 0x10, 0x00, 0x00, 0x0f, 0x10, 0x00, 0x00 - -gUnknown_085B2B78:: @ 85B2B78 - .byte 0x00, 0x01, 0x01, 0x01, 0x01, 0x00 - - .align 1 -gUnknown_085B2B7E:: @ 85B2B7E - .2byte 0x0218, 0x0219, 0x021a, 0x021b, 0x021c - -gUnknown_085B2B88:: @ 85B2B88 - .byte 0x0c, 0x02, 0x04, 0x05, 0x01, 0x08, 0x07, 0x0b, 0x03, 0x0a, 0x09, 0x06 - -gUnknown_085B2B94:: @ 85B2B94 - .byte 0x00, 0x01, 0x01, 0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x04, 0x04, 0x05 - -gUnknown_085B2BA0:: @ 85B2BA0 - .byte 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x04, 0x04, 0x04, 0x04, 0x05, 0x05 - - .align 2 -gUnknown_085B2BAC:: @ 85B2BAC - .byte 0x00, 0x15, 0x01, 0x08, 0x04, 0x0f, 0x08, 0x00 - - .align 2 -gElevatorFloorsTable:: @ 85B2BB4 - .4byte gText_B4F - .4byte gText_B3F - .4byte gText_B2F - .4byte gText_B1F - .4byte gText_1F - .4byte gText_2F - .4byte gText_3F - .4byte gText_4F - .4byte gText_5F - .4byte gText_6F - .4byte gText_7F - .4byte gText_8F - .4byte gText_9F - .4byte gText_10F - .4byte gText_11F - .4byte gText_Rooftop - - .align 1 -gUnknown_085B2BF4:: @ 85B2BF4 - .2byte 0x0329, 0x032a, 0x032b, 0x0331, 0x0332, 0x0333, 0x0339, 0x033a, 0x033b - - .align 1 -gUnknown_085B2C06:: @ 85B2C06 - .2byte 0x0329, 0x032b, 0x032a, 0x0331, 0x0333, 0x0332, 0x0339, 0x033b, 0x033a - -gUnknown_085B2C18:: @ 85B2C18 - .byte 0x08, 0x10, 0x18, 0x20, 0x26, 0x2e, 0x34, 0x38, 0x39 - -gUnknown_085B2C21:: @ 85B2C21 - .byte 0x03, 0x06, 0x09, 0x0c, 0x0f, 0x12, 0x15, 0x18, 0x1b - - .align 1 -gUnknown_085B2C2A:: @ 85B2C2A - .2byte 0x0202, 0x0301, 0x0405, 0x0504, 0x0604, 0x0700, 0x0804, 0x090b, 0x0a05, 0x0b05, 0x0c02, 0x0d06, 0x0e03, 0x0f02, 0x100c, 0x100a - .2byte 0x1a35, 0x193c, 0xffff - - .align 2 -gUnknown_085B2C50:: @ 85B2C50 - .4byte BattleFrontier_Lounge2_Text_260971 - .4byte BattleFrontier_Lounge2_Text_260A1E - .4byte BattleFrontier_Lounge2_Text_260AE7 - .4byte BattleFrontier_Lounge2_Text_2619AC - .4byte BattleFrontier_Lounge2_Text_261A91 - .4byte BattleFrontier_Lounge2_Text_261B0C - .4byte BattleFrontier_Lounge2_Text_261B95 - .4byte BattleFrontier_Lounge2_Text_261B95 - .4byte BattleFrontier_Lounge2_Text_261B95 - .4byte BattleFrontier_Lounge2_Text_261C1A - .4byte BattleFrontier_Lounge2_Text_261C1A - .4byte BattleFrontier_Lounge2_Text_261C1A - .4byte BattleFrontier_Lounge2_Text_260BC4 - .4byte BattleFrontier_Lounge2_Text_260C6D - .4byte BattleFrontier_Lounge2_Text_260D3A - .4byte BattleFrontier_Lounge2_Text_260E1E - .4byte BattleFrontier_Lounge2_Text_260EC7 - .4byte BattleFrontier_Lounge2_Text_260F74 - .4byte BattleFrontier_Lounge2_Text_2614E6 - .4byte BattleFrontier_Lounge2_Text_261591 - .4byte BattleFrontier_Lounge2_Text_26166F - .4byte BattleFrontier_Lounge2_Text_261282 - .4byte BattleFrontier_Lounge2_Text_261329 - .4byte BattleFrontier_Lounge2_Text_261403 - .4byte BattleFrontier_Lounge2_Text_261026 - .4byte BattleFrontier_Lounge2_Text_2610CC - .4byte BattleFrontier_Lounge2_Text_261194 - .4byte BattleFrontier_Lounge2_Text_26174D - .4byte BattleFrontier_Lounge2_Text_2617F9 - .4byte BattleFrontier_Lounge2_Text_2618C4 - -gUnknown_085B2CC8:: @ 85B2CC8 - .byte 0x15, 0x38, 0x15, 0x23, 0xff, 0xff, 0xff, 0xff, 0x02, 0x04, 0x07, 0x15, 0x07, 0x15, 0x0e, 0x1c, 0x0d, 0x70, 0x07, 0x38 - - .align 1 -gUnknown_085B2CDC:: @ 85B2CDC - .2byte 0x0007, 0x000e, 0x0015, 0x001c, 0x0023, 0x0031, 0x003f, 0x004d, 0x005b, 0x0000 - - .align 2 -gUnknown_085B2CF0:: @ 85B2CF0 - .4byte gText_Exit - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - - .4byte gText_BlueFlute - .4byte gText_YellowFlute - .4byte gText_RedFlute - .4byte gText_WhiteFlute - .4byte gText_BlackFlute - .4byte gText_PrettyChair - .4byte gText_PrettyDesk - .4byte gText_Exit - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - - .4byte gText_0Pts - .4byte gText_10Pts - .4byte gText_20Pts - .4byte gText_30Pts - .4byte gText_40Pts - .4byte gText_50Pts - .4byte gText_60Pts - .4byte gText_70Pts - .4byte gText_80Pts - .4byte gText_90Pts - .4byte gText_100Pts - .4byte gText_QuestionMark - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - - .4byte gText_KissPoster16BP - .4byte gText_KissCushion32BP - .4byte gText_SmoochumDoll32BP - .4byte gText_TogepiDoll48BP - .4byte gText_MeowthDoll48BP - .4byte gText_ClefairyDoll48BP - .4byte gText_DittoDoll48BP - .4byte gText_CyndaquilDoll80BP - .4byte gText_ChikoritaDoll80BP - .4byte gText_TotodileDoll80BP - .4byte gText_Exit - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - - .4byte gText_LaprasDoll128BP - .4byte gText_SnorlaxDoll128BP - .4byte gText_VenusaurDoll256BP - .4byte gText_CharizardDoll256BP - .4byte gText_BlastoiseDoll256BP - .4byte gText_Exit - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - - .4byte gText_Protein1BP - .4byte gText_Calcium1BP - .4byte gText_Iron1BP - .4byte gText_Zinc1BP - .4byte gText_Carbos1BP - .4byte gText_HpUp1BP - .4byte gText_Exit - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - - .4byte gText_Leftovers48BP - .4byte gText_WhiteHerb48BP - .4byte gText_QuickClaw48BP - .4byte gText_MentalHerb48BP - .4byte gText_BrightPowder64BP - .4byte gText_ChoiceBand64BP - .4byte gText_KingsRock64BP - .4byte gText_FocusBand64BP - .4byte gText_ScopeLens64BP - .4byte gText_Exit - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - - .4byte gText_EnergyPowder50 - .4byte gText_EnergyRoot80 - .4byte gText_HealPowder50 - .4byte gText_RevivalHerb300 - .4byte gText_Protein1000 - .4byte gText_Iron1000 - .4byte gText_Carbos1000 - .4byte gText_Calcium1000 - .4byte gText_Zinc1000 - .4byte gText_HPUp1000 - .4byte gText_PPUp3000 - .4byte gText_Exit - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - - .4byte gText_BattleTower2 - .4byte gText_BattleDome - .4byte gText_BattlePalace - .4byte gText_BattleArena - .4byte gText_BattleFactory - .4byte gText_BattlePike - .4byte gText_BattlePyramid - .4byte gText_RankingHall - .4byte gText_ExchangeService - .4byte gText_Exit - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - - .4byte gText_Softboiled16BP - .4byte gText_SeismicToss24BP - .4byte gText_DreamEater24BP - .4byte gText_MegaPunch24BP - .4byte gText_MegaKick48BP - .4byte gText_BodySlam48BP - .4byte gText_RockSlide48BP - .4byte gText_Counter48BP - .4byte gText_ThunderWave48BP - .4byte gText_SwordsDance48BP - .4byte gText_Exit - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - - .4byte gText_DefenseCurl16BP - .4byte gText_Snore24BP - .4byte gText_MudSlap24BP - .4byte gText_Swift24BP - .4byte gText_IcyWind24BP - .4byte gText_Endure48BP - .4byte gText_PsychUp48BP - .4byte gText_IcePunch48BP - .4byte gText_ThunderPunch48BP - .4byte gText_FirePunch48BP - .4byte gText_Exit - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - - .4byte gText_SlateportCity - .4byte gText_BattleFrontier - .4byte gText_SouthernIsland - .4byte gText_NavelRock - .4byte gText_BirthIsland - .4byte gText_FarawayIsland - .4byte gText_Exit - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - - .4byte gText_BattleTrainers - .4byte gText_BattleBasics - .4byte gText_PokemonNature - .4byte gText_PokemonMoves - .4byte gText_Underpowered - .4byte gText_WhenInDanger - .4byte gText_Exit - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - - .align 2 -gUnknown_085B3030:: @ 85B3030 - .4byte 0x03000002, 0x00000000, 0x07d00000, 0x00000064 - - .align 2 -gUnknown_085B3040:: @ 85B3040 - .4byte BattleFrontier_Lounge5_Text_26468D - .4byte BattleFrontier_Lounge5_Text_2646E5 - .4byte BattleFrontier_Lounge5_Text_264741 - .4byte BattleFrontier_Lounge5_Text_2647A4 - .4byte BattleFrontier_Lounge5_Text_2647FC - .4byte BattleFrontier_Lounge5_Text_264858 - .4byte BattleFrontier_Lounge5_Text_2648BE - .4byte BattleFrontier_Lounge5_Text_264916 - .4byte BattleFrontier_Lounge5_Text_264972 - .4byte BattleFrontier_Lounge5_Text_2649D5 - .4byte BattleFrontier_Lounge5_Text_264A3F - .4byte BattleFrontier_Lounge5_Text_264A9B - .4byte BattleFrontier_Lounge5_Text_264AF3 - .4byte BattleFrontier_Lounge5_Text_264B5D - .4byte BattleFrontier_Lounge5_Text_2648BE - .4byte BattleFrontier_Lounge5_Text_264BC3 - .4byte BattleFrontier_Lounge5_Text_264C36 - .4byte BattleFrontier_Lounge5_Text_2648BE - .4byte BattleFrontier_Lounge5_Text_264C95 - .4byte BattleFrontier_Lounge5_Text_264D01 - .4byte BattleFrontier_Lounge5_Text_264D6B - .4byte BattleFrontier_Lounge5_Text_264DD7 - .4byte BattleFrontier_Lounge5_Text_264E33 - .4byte BattleFrontier_Lounge5_Text_264E8F - .4byte BattleFrontier_Lounge5_Text_2648BE - - .align 2 -gUnknown_085B30A4:: @ 85B30A4 - .4byte BattleFrontier_Lounge3_Text_262261 - .4byte BattleFrontier_Lounge3_Text_26230D - .4byte BattleFrontier_Lounge3_Text_2623B9 - .4byte BattleFrontier_Lounge3_Text_262464 - .4byte BattleFrontier_Lounge3_Text_26250E - .4byte BattleFrontier_Lounge3_Text_2625B8 - .4byte BattleFrontier_Lounge3_Text_26266A - .4byte BattleFrontier_Lounge3_Text_26271C - .4byte BattleFrontier_Lounge3_Text_2627C9 - .4byte BattleFrontier_Lounge3_Text_262876 - .4byte BattleFrontier_Lounge3_Text_26291A - .4byte BattleFrontier_Lounge3_Text_2629BC - - .align 2 -gUnknown_085B30D4:: @ 85B30D4 - .4byte BattleFrontier_Lounge3_Text_262C04 - .4byte BattleFrontier_Lounge3_Text_262C90 - .4byte BattleFrontier_Lounge3_Text_262D1C - .4byte BattleFrontier_Lounge3_Text_262DA7 - .4byte BattleFrontier_Lounge3_Text_262E34 - .4byte BattleFrontier_Lounge3_Text_262EC1 - .4byte BattleFrontier_Lounge3_Text_262F56 - .4byte BattleFrontier_Lounge3_Text_262FEB - .4byte BattleFrontier_Lounge3_Text_263078 - .4byte BattleFrontier_Lounge3_Text_263105 - .4byte BattleFrontier_Lounge3_Text_26318C - .4byte BattleFrontier_Lounge3_Text_263211 - - .align 1 -gUnknown_085B3104:: @ 85B3104 - .2byte 0x0000, 0x0001, 0x0002, 0x0100, 0x0101, 0x0400, 0x0401, 0x0200, 0x0201, 0x0300, 0x0500, 0x0600 - - .align 2 -gUnknown_085B311C:: @ 85B311C - window_template 0x00, 0x01, 0x01, 0x06, 0x02, 0x0f, 0x0008 - - .align 2 -gUnknown_085B3124:: @ 85B3124 - window_template 0x00, 0x02, 0x09, 0x04, 0x04, 0x0f, 0x0014 - - .align 1 -gUnknown_085B312C:: @ 85B312C - .2byte 0x004b, 0x0067, 0x0057, 0x004f, 0x0054, 0x0055, 0x0056, 0x0050, 0x0051, 0x0052, 0xffff - - .align 1 -gUnknown_085B3142:: @ 85B3142 - .2byte 0x0071, 0x006f, 0x0072, 0x0073, 0x0074, 0xffff - - .align 1 -gUnknown_085B314E:: @ 85B314E - .2byte 0x0040, 0x0043, 0x0041, 0x0046, 0x0042, 0x003f, 0xffff - - .align 1 -gUnknown_085B315C:: @ 85B315C - .2byte 0x00c8, 0x00b4, 0x00b7, 0x00b9, 0x00b3, 0x00ba, 0x00bb, 0x00c4, 0x00c6, 0xffff - - .align 2 -gUnknown_085B3170:: @ 85B3170 - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_2601AA - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_2601D0 - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_260201 - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_26022F - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_26025B - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_260287 - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_2602B5 - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_2602E0 - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_26030F - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_26033E - .4byte gText_Exit - - .align 2 -gUnknown_085B319C:: @ 85B319C - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C - .4byte gText_Exit - - .align 2 -gUnknown_085B31B4:: @ 85B31B4 - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_260397 - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_2603BE - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_2603E6 - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_26040E - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_260436 - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_26045C - .4byte gText_Exit - - .align 2 -gUnknown_085B31D0:: @ 85B31D0 - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_26047A - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_2604AC - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_2604D8 - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_26050F - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_260542 - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_260575 - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_2605A8 - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_2605E2 - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_260613 - .4byte gText_Exit - - .align 1 -gUnknown_085B31F8:: @ 85B31F8 - .2byte 0x0087, 0x0045, 0x008a, 0x0005, 0x0019, 0x0022, 0x009d, 0x0044, 0x0056, 0x000e - - .align 1 -gUnknown_085B320C:: @ 85B320C - .2byte 0x006f, 0x00ad, 0x00bd, 0x0081, 0x00c4, 0x00cb, 0x00f4, 0x0008, 0x0009, 0x0007 - - .align 2 -gUnknown_085B3220:: @ 85B3220 - window_template 0x00, 0x01, 0x07, 0x0c, 0x06, 0x0f, 0x001c - - .align 2 -gUnknown_085B3228:: @ 85B3228 - .4byte BattleFrontier_Lounge7_Text_265E30 - .4byte BattleFrontier_Lounge7_Text_265E5B - .4byte BattleFrontier_Lounge7_Text_265E8A - .4byte BattleFrontier_Lounge7_Text_265EC0 - .4byte BattleFrontier_Lounge7_Text_265EED - .4byte BattleFrontier_Lounge7_Text_265F1C - .4byte BattleFrontier_Lounge7_Text_265F47 - .4byte BattleFrontier_Lounge7_Text_265F77 - .4byte BattleFrontier_Lounge7_Text_265FAA - .4byte BattleFrontier_Lounge7_Text_265FDD - .4byte gText_Exit - - .align 2 -gUnknown_085B3254:: @ 85B3254 - .4byte BattleFrontier_Lounge7_Text_26600A - .4byte BattleFrontier_Lounge7_Text_26603E - .4byte BattleFrontier_Lounge7_Text_266070 - .4byte BattleFrontier_Lounge7_Text_2660A6 - .4byte BattleFrontier_Lounge7_Text_2660D0 - .4byte BattleFrontier_Lounge7_Text_2660FF - .4byte BattleFrontier_Lounge7_Text_26612D - .4byte BattleFrontier_Lounge7_Text_26615F - .4byte BattleFrontier_Lounge7_Text_266185 - .4byte BattleFrontier_Lounge7_Text_2661B5 - .4byte gText_Exit - - .align 2 -gUnknown_085B3280:: @ 85B3280 - .incbin "graphics/unknown/unknown_5B3280.gbapal" - -gUnknown_085B33E0:: @ 85B33E0 - .byte 0x0f, 0x0c, 0x0b, 0x0e, 0x0f, 0x08, 0x13, 0x0e, 0x0c, 0x0b, 0x12, 0x0b, 0x0f, 0x0e, 0x0b, 0x0e, 0x13, 0x0e, 0x0f, 0x0f, 0x0f, 0x0a - -gUnknown_085B33F6:: @ 85B33F6 - .byte 0x04, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x06, 0x03, 0x03 - -gUnknown_085B3400:: @ 85B3400 - .byte 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c - -gUnknown_085B3410:: @ 85B3410 - .byte 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c - -gUnknown_085B3420:: @ 85B3420 - .byte 0x02, 0x04, 0x01, 0x04, 0x04, 0x01, 0x05, 0x00, 0x01, 0x06, 0x03, 0x01, 0x08, 0x06, 0x01, 0x09, 0x0d, 0x01, 0x0a, 0x07, 0x01, 0x0b, 0x07, 0x01, 0x0c, 0x04, 0x01, 0x0e, 0x05, 0x01, 0x0f, 0x04 - .byte 0x01, 0x1a, 0x37, 0x01 - - .align 1 -gUnknown_085B3444:: @ 85B3444 - .2byte 0x0202, 0x0301, 0x0405, 0x0504, 0x0604, 0x0700, 0x0804, 0x090b, 0x0a05, 0x0b05, 0x0c02, 0x0d06, 0x0e03, 0x0f02, 0x100c, 0x100a - .2byte 0x1a35, 0x1918, 0x1919, 0x191a, 0x191b, 0xffff - -gUnknown_085B3470:: @ 85B3470 - .byte 0x02, 0x01, 0x02, 0x01 - -gUnknown_085B3474:: @ 85B3474 - .byte 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f - -gUnknown_085B347C:: @ 85B347C - .byte 0x08, 0x0d, 0x0e, 0x0b, 0x0a, 0x0c, 0x0f, 0x09 - diff --git a/data/maps/AbandonedShip_HiddenFloorRooms/scripts.inc b/data/maps/AbandonedShip_HiddenFloorRooms/scripts.inc index 701b79fbf..628c9cece 100644 --- a/data/maps/AbandonedShip_HiddenFloorRooms/scripts.inc +++ b/data/maps/AbandonedShip_HiddenFloorRooms/scripts.inc @@ -43,7 +43,7 @@ AbandonedShip_HiddenFloorRooms_EventScript_238CE3:: @ 8238CE3 setfieldeffectargument 1, 10 setfieldeffectargument 2, 0 dofieldeffect 54 - specialvar VAR_RESULT, sub_81392F8 + specialvar VAR_RESULT, FoundAbandonedShipRoom4Key compare VAR_RESULT, 0 call_if 1, AbandonedShip_HiddenFloorRooms_EventScript_238DD3 waitfieldeffect 54 @@ -54,7 +54,7 @@ AbandonedShip_HiddenFloorRooms_EventScript_238D0C:: @ 8238D0C end AbandonedShip_HiddenFloorRooms_EventScript_238D0D:: @ 8238D0D - specialvar VAR_RESULT, sub_81392AC + specialvar VAR_RESULT, FoundAbandonedShipRoom1Key compare VAR_RESULT, 1 goto_eq AbandonedShip_HiddenFloorRooms_EventScript_238D32 delay 20 @@ -77,7 +77,7 @@ AbandonedShip_HiddenFloorRooms_EventScript_238D33:: @ 8238D33 setfieldeffectargument 1, 3 setfieldeffectargument 2, 0 dofieldeffect 54 - specialvar VAR_RESULT, sub_8139320 + specialvar VAR_RESULT, FoundAbandonedShipRoom6Key compare VAR_RESULT, 0 call_if 1, AbandonedShip_HiddenFloorRooms_EventScript_238DE3 waitfieldeffect 54 @@ -98,7 +98,7 @@ AbandonedShip_HiddenFloorRooms_EventScript_238D6B:: @ 8238D6B setfieldeffectargument 1, 6 setfieldeffectargument 2, 0 dofieldeffect 54 - specialvar VAR_RESULT, sub_81392D4 + specialvar VAR_RESULT, FoundAbandonedShipRoom2Key compare VAR_RESULT, 0 call_if 1, AbandonedShip_HiddenFloorRooms_EventScript_238DC3 waitfieldeffect 54 diff --git a/data/maps/AncientTomb/scripts.inc b/data/maps/AncientTomb/scripts.inc index 3cd0b9eff..9dbacfe8e 100644 --- a/data/maps/AncientTomb/scripts.inc +++ b/data/maps/AncientTomb/scripts.inc @@ -10,7 +10,7 @@ AncientTomb_MapScript1_238FC3: @ 8238FC3 end AncientTomb_EventScript_238FCD:: @ 8238FCD - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 7 goto_if 5, AncientTomb_EventScript_27374E removeobject VAR_LAST_TALKED @@ -75,7 +75,7 @@ AncientTomb_EventScript_23905A:: @ 823905A special StartRegiBattle waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 1 goto_eq AncientTomb_EventScript_2390A1 compare VAR_RESULT, 4 diff --git a/data/maps/AquaHideout_B1F/scripts.inc b/data/maps/AquaHideout_B1F/scripts.inc index cf59bdacc..12c25faac 100644 --- a/data/maps/AquaHideout_B1F/scripts.inc +++ b/data/maps/AquaHideout_B1F/scripts.inc @@ -9,7 +9,7 @@ AquaHideout_B1F_MapScript1_2339B2: @ 82339B2 end AquaHideout_B1F_EventScript_2339BC:: @ 82339BC - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 7 goto_if 5, AquaHideout_B1F_EventScript_27374E removeobject VAR_LAST_TALKED @@ -41,7 +41,7 @@ AquaHideout_B1F_EventScript_2339EB:: @ 82339EB setflag FLAG_SYS_CTRL_OBJ_DELETE dowildbattle clearflag FLAG_SYS_CTRL_OBJ_DELETE - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 1 goto_eq AquaHideout_B1F_EventScript_233A2F compare VAR_RESULT, 4 @@ -68,7 +68,7 @@ AquaHideout_B1F_EventScript_233A38:: @ 8233A38 setflag FLAG_SYS_CTRL_OBJ_DELETE dowildbattle clearflag FLAG_SYS_CTRL_OBJ_DELETE - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 1 goto_eq AquaHideout_B1F_EventScript_233A7C compare VAR_RESULT, 4 diff --git a/data/maps/BattleFrontier_BattleTowerElevator/scripts.inc b/data/maps/BattleFrontier_BattleTowerElevator/scripts.inc index 248c1f9ca..072d27137 100644 --- a/data/maps/BattleFrontier_BattleTowerElevator/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerElevator/scripts.inc @@ -14,7 +14,7 @@ BattleFrontier_BattleTowerElevator_EventScript_2419F0:: @ 82419F0 waitmovement 0 special sub_813A080 waitse - special sub_8139A78 + special ShakeScreenInElevator waitstate delay 48 applymovement 1, BattleFrontier_BattleTowerElevator_Movement_241A8E diff --git a/data/maps/BattleFrontier_OutsideEast/scripts.inc b/data/maps/BattleFrontier_OutsideEast/scripts.inc index dff56322a..0a3723acc 100644 --- a/data/maps/BattleFrontier_OutsideEast/scripts.inc +++ b/data/maps/BattleFrontier_OutsideEast/scripts.inc @@ -9,7 +9,7 @@ BattleFrontier_OutsideEast_MapScript1_242C0F: @ 8242C0F end BattleFrontier_OutsideEast_EventScript_242C19:: @ 8242C19 - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 7 goto_if 5, BattleFrontier_OutsideEast_EventScript_27374E removeobject VAR_LAST_TALKED @@ -134,7 +134,7 @@ BattleFrontier_OutsideEast_EventScript_242CFC:: @ 8242CFC setflag FLAG_SYS_CTRL_OBJ_DELETE dowildbattle clearflag FLAG_SYS_CTRL_OBJ_DELETE - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 1 goto_eq BattleFrontier_OutsideEast_EventScript_242D60 compare VAR_RESULT, 4 diff --git a/data/maps/BirthIsland_Exterior/scripts.inc b/data/maps/BirthIsland_Exterior/scripts.inc index b2427e95d..787230c60 100644 --- a/data/maps/BirthIsland_Exterior/scripts.inc +++ b/data/maps/BirthIsland_Exterior/scripts.inc @@ -37,7 +37,7 @@ BirthIsland_Exterior_MapScript1_267F65: @ 8267F65 end BirthIsland_Exterior_EventScript_267F6F:: @ 8267F6F - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 7 goto_if 5, BirthIsland_Exterior_EventScript_27374E removeobject 2 @@ -91,7 +91,7 @@ BirthIsland_Exterior_EventScript_267FC1:: @ 8267FC1 special BattleSetup_StartLegendaryBattle waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 1 goto_eq BirthIsland_Exterior_EventScript_26803B compare VAR_RESULT, 4 diff --git a/data/maps/DesertRuins/scripts.inc b/data/maps/DesertRuins/scripts.inc index 9137902f2..45d192c80 100644 --- a/data/maps/DesertRuins/scripts.inc +++ b/data/maps/DesertRuins/scripts.inc @@ -10,7 +10,7 @@ DesertRuins_MapScript1_22D96B: @ 822D96B end DesertRuins_EventScript_22D975:: @ 822D975 - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 7 goto_if 5, DesertRuins_EventScript_27374E removeobject VAR_LAST_TALKED @@ -75,7 +75,7 @@ DesertRuins_EventScript_22DA02:: @ 822DA02 special StartRegiBattle waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 1 goto_eq DesertRuins_EventScript_22DA49 compare VAR_RESULT, 4 diff --git a/data/maps/FarawayIsland_Interior/scripts.inc b/data/maps/FarawayIsland_Interior/scripts.inc index e7d67431d..70e41b42d 100644 --- a/data/maps/FarawayIsland_Interior/scripts.inc +++ b/data/maps/FarawayIsland_Interior/scripts.inc @@ -11,7 +11,7 @@ FarawayIsland_Interior_MapScript1_267D0F: @ 8267D0F end FarawayIsland_Interior_EventScript_267D19:: @ 8267D19 - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 1 goto_eq FarawayIsland_Interior_EventScript_267D4B compare VAR_RESULT, 4 @@ -33,7 +33,7 @@ FarawayIsland_Interior_MapScript1_267D54: @ 8267D54 end FarawayIsland_Interior_EventScript_267D5E:: @ 8267D5E - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 7 goto_if 5, FarawayIsland_Interior_EventScript_27374E removeobject VAR_LAST_TALKED @@ -148,7 +148,7 @@ FarawayIsland_Interior_EventScript_267DF2:: @ 8267DF2 special BattleSetup_StartLegendaryBattle waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 1 goto_eq FarawayIsland_Interior_EventScript_267E96 compare VAR_RESULT, 4 diff --git a/data/maps/IslandCave/scripts.inc b/data/maps/IslandCave/scripts.inc index a96d13902..b00b41d40 100644 --- a/data/maps/IslandCave/scripts.inc +++ b/data/maps/IslandCave/scripts.inc @@ -10,7 +10,7 @@ IslandCave_MapScript1_238E3A: @ 8238E3A end IslandCave_EventScript_238E44:: @ 8238E44 - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 7 goto_if 5, IslandCave_EventScript_27374E removeobject VAR_LAST_TALKED @@ -107,7 +107,7 @@ IslandCave_EventScript_238F58:: @ 8238F58 special StartRegiBattle waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 1 goto_eq IslandCave_EventScript_238F9F compare VAR_RESULT, 4 diff --git a/data/maps/LilycoveCity/scripts.inc b/data/maps/LilycoveCity/scripts.inc index 87a129620..70018b229 100644 --- a/data/maps/LilycoveCity/scripts.inc +++ b/data/maps/LilycoveCity/scripts.inc @@ -255,7 +255,7 @@ LilycoveCity_EventScript_1E2DF8:: @ 81E2DF8 compare VAR_RESULT, 0 goto_eq LilycoveCity_EventScript_1E2E5A msgbox LilycoveCity_Text_1E3234, 4 - switch VAR_FIRST_POKE + switch VAR_STARTER_MON case 0, LilycoveCity_EventScript_1E2EDE case 1, LilycoveCity_EventScript_1E2EEE case 2, LilycoveCity_EventScript_1E2EFE @@ -286,7 +286,7 @@ LilycoveCity_EventScript_1E2E6B:: @ 81E2E6B compare VAR_RESULT, 0 goto_eq LilycoveCity_EventScript_1E2ECD msgbox LilycoveCity_Text_1E373C, 4 - switch VAR_FIRST_POKE + switch VAR_STARTER_MON case 0, LilycoveCity_EventScript_1E2F0E case 1, LilycoveCity_EventScript_1E2F1E case 2, LilycoveCity_EventScript_1E2F2E diff --git a/data/maps/LilycoveCity_DepartmentStoreElevator/scripts.inc b/data/maps/LilycoveCity_DepartmentStoreElevator/scripts.inc index 234751910..372d16dae 100644 --- a/data/maps/LilycoveCity_DepartmentStoreElevator/scripts.inc +++ b/data/maps/LilycoveCity_DepartmentStoreElevator/scripts.inc @@ -118,12 +118,12 @@ LilycoveCity_DepartmentStoreElevator_EventScript_2207E5:: @ 82207E5 applymovement VAR_LAST_TALKED, LilycoveCity_DepartmentStoreElevator_Movement_2725AA waitmovement 0 waitse - special sub_8139A78 + special ShakeScreenInElevator waitstate setflag FLAG_0x002 return LilycoveCity_DepartmentStoreElevator_EventScript_2207FC:: @ 82207FC - special sub_8139994 + special SetDepartmentStoreFloorVar return diff --git a/data/maps/LilycoveCity_DepartmentStore_1F/scripts.inc b/data/maps/LilycoveCity_DepartmentStore_1F/scripts.inc index 8de2d5d6f..4a375cf5e 100644 --- a/data/maps/LilycoveCity_DepartmentStore_1F/scripts.inc +++ b/data/maps/LilycoveCity_DepartmentStore_1F/scripts.inc @@ -21,7 +21,7 @@ LilycoveCity_DepartmentStore_1F_EventScript_21F69C:: @ 821F69C waitmessage special RetrieveLotteryNumber copyvar VAR_0x8008, VAR_RESULT - special sub_81397C4 + special BufferLottoTicketNumber msgbox LilycoveCity_DepartmentStore_1F_Text_2A650B, 4 applymovement 2, LilycoveCity_DepartmentStore_1F_Movement_2725A8 waitmovement 0 diff --git a/data/maps/LilycoveCity_Harbor/scripts.inc b/data/maps/LilycoveCity_Harbor/scripts.inc index 1dfd9c29a..99ad20280 100644 --- a/data/maps/LilycoveCity_Harbor/scripts.inc +++ b/data/maps/LilycoveCity_Harbor/scripts.inc @@ -89,7 +89,7 @@ LilycoveCity_Harbor_EventScript_21E149:: @ 821E149 msgbox LilycoveCity_Harbor_Text_21E864, 5 compare VAR_RESULT, 0 goto_eq LilycoveCity_Harbor_EventScript_21E5C0 - setvar VAR_PORTHOLE, 5 + setvar VAR_PORTHOLE_STATE, 5 call LilycoveCity_Harbor_EventScript_21E5CC warp MAP_SS_TIDAL_CORRIDOR, 255, 1, 10 waitstate @@ -398,7 +398,7 @@ LilycoveCity_Harbor_EventScript_21E575:: @ 821E575 msgbox LilycoveCity_Harbor_Text_21E864, 5 compare VAR_RESULT, 0 goto_eq LilycoveCity_Harbor_EventScript_21E5C0 - setvar VAR_PORTHOLE, 5 + setvar VAR_PORTHOLE_STATE, 5 call LilycoveCity_Harbor_EventScript_21E5CC warp MAP_SS_TIDAL_CORRIDOR, 255, 1, 10 waitstate diff --git a/data/maps/LilycoveCity_PokemonTrainerFanClub/scripts.inc b/data/maps/LilycoveCity_PokemonTrainerFanClub/scripts.inc index 74146fc7e..9587bcae3 100644 --- a/data/maps/LilycoveCity_PokemonTrainerFanClub/scripts.inc +++ b/data/maps/LilycoveCity_PokemonTrainerFanClub/scripts.inc @@ -4,7 +4,7 @@ LilycoveCity_PokemonTrainerFanClub_MapScripts:: @ 821C785 .byte 0 LilycoveCity_PokemonTrainerFanClub_MapScript2_21C790: @ 821C790 - map_script_2 VAR_0x4095, 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C79A + map_script_2 VAR_LILYCOVE_FAN_CLUB_STATE, 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C79A .2byte 0 LilycoveCity_PokemonTrainerFanClub_EventScript_21C79A:: @ 821C79A @@ -24,7 +24,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21C79A:: @ 821C79A waitmovement 0 applymovement 4, LilycoveCity_PokemonTrainerFanClub_Movement_21C807 waitmovement 0 - setvar VAR_0x4095, 2 + setvar VAR_LILYCOVE_FAN_CLUB_STATE, 2 releaseall end @@ -62,45 +62,45 @@ LilycoveCity_PokemonTrainerFanClub_Movement_21C807: @ 821C807 LilycoveCity_PokemonTrainerFanClub_MapScript1_21C80D: @ 821C80D call LilycoveCity_PokemonTrainerFanClub_EventScript_21C8DA - compare VAR_0x4095, 1 + compare VAR_LILYCOVE_FAN_CLUB_STATE, 1 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21C9F8 - compare VAR_0x4095, 2 + compare VAR_LILYCOVE_FAN_CLUB_STATE, 2 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21C829 end LilycoveCity_PokemonTrainerFanClub_EventScript_21C829:: @ 821C829 - special sub_813BCE8 + special UpdateMovedLilycoveFanClubMembers call LilycoveCity_PokemonTrainerFanClub_EventScript_21C8F5 setvar VAR_0x8004, 8 - specialvar VAR_RESULT, sub_813BD60 + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 0 call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9B8 setvar VAR_0x8004, 9 - specialvar VAR_RESULT, sub_813BD60 + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 0 call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9C0 setvar VAR_0x8004, 10 - specialvar VAR_RESULT, sub_813BD60 + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 0 call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9C8 setvar VAR_0x8004, 11 - specialvar VAR_RESULT, sub_813BD60 + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 0 call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9D0 setvar VAR_0x8004, 12 - specialvar VAR_RESULT, sub_813BD60 + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 0 call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9D8 setvar VAR_0x8004, 13 - specialvar VAR_RESULT, sub_813BD60 + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 0 call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9E0 setvar VAR_0x8004, 14 - specialvar VAR_RESULT, sub_813BD60 + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 0 call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9E8 setvar VAR_0x8004, 15 - specialvar VAR_RESULT, sub_813BD60 + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 0 call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9F0 end @@ -120,35 +120,35 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21C8F1:: @ 821C8F1 LilycoveCity_PokemonTrainerFanClub_EventScript_21C8F5:: @ 821C8F5 setvar VAR_0x8005, 8 setvar VAR_0x8004, 8 - specialvar VAR_RESULT, sub_813BD60 + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 0 call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9AE setvar VAR_0x8004, 9 - specialvar VAR_RESULT, sub_813BD60 + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 0 call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9AE setvar VAR_0x8004, 10 - specialvar VAR_RESULT, sub_813BD60 + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 0 call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9AE setvar VAR_0x8004, 11 - specialvar VAR_RESULT, sub_813BD60 + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 0 call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9AE setvar VAR_0x8004, 12 - specialvar VAR_RESULT, sub_813BD60 + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 0 call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9AE setvar VAR_0x8004, 13 - specialvar VAR_RESULT, sub_813BD60 + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 0 call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9AE setvar VAR_0x8004, 14 - specialvar VAR_RESULT, sub_813BD60 + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 0 call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9AE setvar VAR_0x8004, 15 - specialvar VAR_RESULT, sub_813BD60 + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 0 call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9AE compare VAR_0x8005, 5 @@ -208,13 +208,13 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CA17:: @ 821CA17 lock faceplayer setvar VAR_0x8004, 13 - special sub_813BDB4 - compare VAR_0x4095, 0 + special BufferStreakTrainerText + compare VAR_LILYCOVE_FAN_CLUB_STATE, 0 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CA84 - specialvar VAR_RESULT, sub_813BD60 + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 1 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CA56 - specialvar VAR_RESULT, sub_813BCA8 + specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers compare VAR_RESULT, 7 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CA7A msgbox LilycoveCity_PokemonTrainerFanClub_Text_21D12A, 4 @@ -222,7 +222,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CA17:: @ 821CA17 end LilycoveCity_PokemonTrainerFanClub_EventScript_21CA56:: @ 821CA56 - specialvar VAR_RESULT, sub_813BCA8 + specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers compare VAR_RESULT, 1 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CA70 msgbox LilycoveCity_PokemonTrainerFanClub_Text_21D094, 4 @@ -248,13 +248,13 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CA8E:: @ 821CA8E lock faceplayer setvar VAR_0x8004, 8 - special sub_813BDB4 - compare VAR_0x4095, 0 + special BufferStreakTrainerText + compare VAR_LILYCOVE_FAN_CLUB_STATE, 0 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CAFB - specialvar VAR_RESULT, sub_813BD60 + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 1 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CACD - specialvar VAR_RESULT, sub_813BCA8 + specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers compare VAR_RESULT, 7 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CAF1 msgbox LilycoveCity_PokemonTrainerFanClub_Text_21D347, 4 @@ -262,7 +262,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CA8E:: @ 821CA8E end LilycoveCity_PokemonTrainerFanClub_EventScript_21CACD:: @ 821CACD - specialvar VAR_RESULT, sub_813BCA8 + specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers compare VAR_RESULT, 1 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CAE7 msgbox LilycoveCity_PokemonTrainerFanClub_Text_21D2A6, 4 @@ -288,13 +288,13 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CB05:: @ 821CB05 lock faceplayer setvar VAR_0x8004, 9 - special sub_813BDB4 - compare VAR_0x4095, 0 + special BufferStreakTrainerText + compare VAR_LILYCOVE_FAN_CLUB_STATE, 0 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CB72 - specialvar VAR_RESULT, sub_813BD60 + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 1 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CB44 - specialvar VAR_RESULT, sub_813BCA8 + specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers compare VAR_RESULT, 7 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CB68 msgbox LilycoveCity_PokemonTrainerFanClub_Text_21D52E, 4 @@ -302,7 +302,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CB05:: @ 821CB05 end LilycoveCity_PokemonTrainerFanClub_EventScript_21CB44:: @ 821CB44 - specialvar VAR_RESULT, sub_813BCA8 + specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers compare VAR_RESULT, 1 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CB5E msgbox LilycoveCity_PokemonTrainerFanClub_Text_21D438, 4 @@ -328,13 +328,13 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CB7C:: @ 821CB7C lock faceplayer setvar VAR_0x8004, 10 - special sub_813BDB4 - compare VAR_0x4095, 0 + special BufferStreakTrainerText + compare VAR_LILYCOVE_FAN_CLUB_STATE, 0 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CBE9 - specialvar VAR_RESULT, sub_813BD60 + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 1 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CBBB - specialvar VAR_RESULT, sub_813BCA8 + specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers compare VAR_RESULT, 7 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CBDF msgbox LilycoveCity_PokemonTrainerFanClub_Text_21D822, 4 @@ -342,7 +342,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CB7C:: @ 821CB7C end LilycoveCity_PokemonTrainerFanClub_EventScript_21CBBB:: @ 821CBBB - specialvar VAR_RESULT, sub_813BCA8 + specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers compare VAR_RESULT, 1 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CBD5 msgbox LilycoveCity_PokemonTrainerFanClub_Text_21D751, 4 @@ -368,11 +368,11 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CBF3:: @ 821CBF3 lock faceplayer setvar VAR_0x8004, 11 - special sub_813BDB4 - specialvar VAR_RESULT, sub_813BD60 + special BufferStreakTrainerText + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 1 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CC27 - specialvar VAR_RESULT, sub_813BCA8 + specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers compare VAR_RESULT, 7 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CC4B msgbox LilycoveCity_PokemonTrainerFanClub_Text_21D9D1, 4 @@ -380,7 +380,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CBF3:: @ 821CBF3 end LilycoveCity_PokemonTrainerFanClub_EventScript_21CC27:: @ 821CC27 - specialvar VAR_RESULT, sub_813BCA8 + specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers compare VAR_RESULT, 1 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CC41 msgbox LilycoveCity_PokemonTrainerFanClub_Text_21D921, 4 @@ -401,11 +401,11 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CC55:: @ 821CC55 lock faceplayer setvar VAR_0x8004, 12 - special sub_813BDB4 - specialvar VAR_RESULT, sub_813BD60 + special BufferStreakTrainerText + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 1 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CC89 - specialvar VAR_RESULT, sub_813BCA8 + specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers compare VAR_RESULT, 7 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CCAD msgbox LilycoveCity_PokemonTrainerFanClub_Text_21DB69, 4 @@ -413,7 +413,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CC55:: @ 821CC55 end LilycoveCity_PokemonTrainerFanClub_EventScript_21CC89:: @ 821CC89 - specialvar VAR_RESULT, sub_813BCA8 + specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers compare VAR_RESULT, 1 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CCA3 msgbox LilycoveCity_PokemonTrainerFanClub_Text_21DA73, 4 @@ -434,11 +434,11 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CCB7:: @ 821CCB7 lock faceplayer setvar VAR_0x8004, 14 - special sub_813BDB4 - specialvar VAR_RESULT, sub_813BD60 + special BufferStreakTrainerText + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 1 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CCEB - specialvar VAR_RESULT, sub_813BCA8 + specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers compare VAR_RESULT, 7 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CD0F msgbox LilycoveCity_PokemonTrainerFanClub_Text_21DD36, 4 @@ -446,7 +446,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CCB7:: @ 821CCB7 end LilycoveCity_PokemonTrainerFanClub_EventScript_21CCEB:: @ 821CCEB - specialvar VAR_RESULT, sub_813BCA8 + specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers compare VAR_RESULT, 1 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CD05 msgbox LilycoveCity_PokemonTrainerFanClub_Text_21DC68, 4 @@ -467,11 +467,11 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CD19:: @ 821CD19 lock faceplayer setvar VAR_0x8004, 15 - special sub_813BDB4 - specialvar VAR_RESULT, sub_813BD60 + special BufferStreakTrainerText + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 1 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CD4D - specialvar VAR_RESULT, sub_813BCA8 + specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers compare VAR_RESULT, 7 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CD71 msgbox LilycoveCity_PokemonTrainerFanClub_Text_21DEFF, 4 @@ -479,7 +479,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CD19:: @ 821CD19 end LilycoveCity_PokemonTrainerFanClub_EventScript_21CD4D:: @ 821CD4D - specialvar VAR_RESULT, sub_813BCA8 + specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers compare VAR_RESULT, 1 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CD67 msgbox LilycoveCity_PokemonTrainerFanClub_Text_21DE72, 4 @@ -512,7 +512,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CD90:: @ 821CD90 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CEFF copyvar VAR_0x800A, VAR_0x8006 setvar VAR_0x8004, 8 - special sub_813BDB4 + special BufferStreakTrainerText msgbox LilycoveCity_PokemonTrainerFanClub_Text_281BCB, 4 setvar VAR_0x8004, 14 copyvar VAR_0x8005, VAR_0x800A @@ -532,7 +532,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CDE0:: @ 821CDE0 LilycoveCity_PokemonTrainerFanClub_EventScript_21CDEE:: @ 821CDEE setvar VAR_0x8004, 8 - special sub_813BDB4 + special BufferStreakTrainerText msgbox LilycoveCity_PokemonTrainerFanClub_Text_281C3D, 5 compare VAR_RESULT, 1 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CEC6 @@ -542,7 +542,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CDEE:: @ 821CDEE LilycoveCity_PokemonTrainerFanClub_EventScript_21CE15:: @ 821CE15 setvar VAR_0x8004, 8 - special sub_813BDB4 + special BufferStreakTrainerText msgbox LilycoveCity_PokemonTrainerFanClub_Text_281C65, 4 setvar VAR_0x8004, 14 copyvar VAR_0x8005, VAR_0x800A @@ -557,7 +557,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CE15:: @ 821CE15 LilycoveCity_PokemonTrainerFanClub_EventScript_21CE4D:: @ 821CE4D setvar VAR_0x8004, 8 - special sub_813BDB4 + special BufferStreakTrainerText message LilycoveCity_PokemonTrainerFanClub_Text_281C95 waitmessage setvar VAR_0x8004, 2 @@ -568,7 +568,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CE4D:: @ 821CE4D case 11, LilycoveCity_PokemonTrainerFanClub_EventScript_21CE9F case 127, LilycoveCity_PokemonTrainerFanClub_EventScript_21CE9F setvar VAR_0x8004, 8 - special sub_813BDB4 + special BufferStreakTrainerText copyvar VAR_0x8006, VAR_0x800A copyvar VAR_0x8005, VAR_RESULT special PutFanClubSpecialOnTheAir @@ -577,7 +577,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CE4D:: @ 821CE4D LilycoveCity_PokemonTrainerFanClub_EventScript_21CE9F:: @ 821CE9F setvar VAR_0x8004, 8 - special sub_813BDB4 + special BufferStreakTrainerText msgbox LilycoveCity_PokemonTrainerFanClub_Text_281CCD, 5 compare VAR_RESULT, 1 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CEC6 @@ -587,14 +587,14 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CE9F:: @ 821CE9F LilycoveCity_PokemonTrainerFanClub_EventScript_21CEC6:: @ 821CEC6 setvar VAR_0x8004, 8 - special sub_813BDB4 + special BufferStreakTrainerText msgbox LilycoveCity_PokemonTrainerFanClub_Text_281CF5, 4 release end LilycoveCity_PokemonTrainerFanClub_EventScript_21CED8:: @ 821CED8 setvar VAR_0x8004, 8 - special sub_813BDB4 + special BufferStreakTrainerText msgbox LilycoveCity_PokemonTrainerFanClub_Text_281D40, 4 setflag FLAG_0x0D2 release @@ -602,7 +602,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CED8:: @ 821CED8 LilycoveCity_PokemonTrainerFanClub_EventScript_21CEED:: @ 821CEED setvar VAR_0x8004, 8 - special sub_813BDB4 + special BufferStreakTrainerText msgbox LilycoveCity_PokemonTrainerFanClub_Text_281DB4, 4 release end diff --git a/data/maps/MarineCave_End/scripts.inc b/data/maps/MarineCave_End/scripts.inc index 9c821e14f..d6b4bbd8d 100644 --- a/data/maps/MarineCave_End/scripts.inc +++ b/data/maps/MarineCave_End/scripts.inc @@ -9,7 +9,7 @@ MarineCave_End_MapScript1_23AFEA: @ 823AFEA end MarineCave_End_EventScript_23AFF4:: @ 823AFF4 - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 7 goto_if 5, MarineCave_End_EventScript_27374E removeobject 1 @@ -42,7 +42,7 @@ MarineCave_End_EventScript_23B01B:: @ 823B01B waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE setvar VAR_TEMP_1, 0 - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 1 goto_eq MarineCave_End_EventScript_23B084 compare VAR_RESULT, 4 diff --git a/data/maps/MauvilleCity_GameCorner/scripts.inc b/data/maps/MauvilleCity_GameCorner/scripts.inc index 400a24c24..733581b74 100644 --- a/data/maps/MauvilleCity_GameCorner/scripts.inc +++ b/data/maps/MauvilleCity_GameCorner/scripts.inc @@ -409,7 +409,7 @@ MauvilleCity_GameCorner_EventScript_210137:: @ 8210137 msgbox MauvilleCity_GameCorner_Text_210750, 5 compare VAR_RESULT, 0 goto_eq MauvilleCity_GameCorner_EventScript_210209 - switch VAR_FIRST_POKE + switch VAR_STARTER_MON case 0, MauvilleCity_GameCorner_EventScript_21017C case 1, MauvilleCity_GameCorner_EventScript_2101A6 case 2, MauvilleCity_GameCorner_EventScript_2101D0 @@ -540,7 +540,7 @@ MauvilleCity_GameCorner_EventScript_2102D6:: @ 82102D6 compare VAR_RESULT, 0 goto_eq MauvilleCity_GameCorner_EventScript_210456 setvar VAR_0x8004, 0 - specialvar VAR_RESULT, sub_8139248 + specialvar VAR_RESULT, GetSlotMachineId playslotmachine VAR_RESULT releaseall end @@ -551,7 +551,7 @@ MauvilleCity_GameCorner_EventScript_2102F6:: @ 82102F6 compare VAR_RESULT, 0 goto_eq MauvilleCity_GameCorner_EventScript_210456 setvar VAR_0x8004, 1 - specialvar VAR_RESULT, sub_8139248 + specialvar VAR_RESULT, GetSlotMachineId playslotmachine VAR_RESULT releaseall end @@ -562,7 +562,7 @@ MauvilleCity_GameCorner_EventScript_210316:: @ 8210316 compare VAR_RESULT, 0 goto_eq MauvilleCity_GameCorner_EventScript_210456 setvar VAR_0x8004, 2 - specialvar VAR_RESULT, sub_8139248 + specialvar VAR_RESULT, GetSlotMachineId playslotmachine VAR_RESULT releaseall end @@ -573,7 +573,7 @@ MauvilleCity_GameCorner_EventScript_210336:: @ 8210336 compare VAR_RESULT, 0 goto_eq MauvilleCity_GameCorner_EventScript_210456 setvar VAR_0x8004, 3 - specialvar VAR_RESULT, sub_8139248 + specialvar VAR_RESULT, GetSlotMachineId playslotmachine VAR_RESULT releaseall end @@ -584,7 +584,7 @@ MauvilleCity_GameCorner_EventScript_210356:: @ 8210356 compare VAR_RESULT, 0 goto_eq MauvilleCity_GameCorner_EventScript_210456 setvar VAR_0x8004, 4 - specialvar VAR_RESULT, sub_8139248 + specialvar VAR_RESULT, GetSlotMachineId playslotmachine VAR_RESULT releaseall end @@ -595,7 +595,7 @@ MauvilleCity_GameCorner_EventScript_210376:: @ 8210376 compare VAR_RESULT, 0 goto_eq MauvilleCity_GameCorner_EventScript_210456 setvar VAR_0x8004, 5 - specialvar VAR_RESULT, sub_8139248 + specialvar VAR_RESULT, GetSlotMachineId playslotmachine VAR_RESULT releaseall end @@ -606,7 +606,7 @@ MauvilleCity_GameCorner_EventScript_210396:: @ 8210396 compare VAR_RESULT, 0 goto_eq MauvilleCity_GameCorner_EventScript_210456 setvar VAR_0x8004, 6 - specialvar VAR_RESULT, sub_8139248 + specialvar VAR_RESULT, GetSlotMachineId playslotmachine VAR_RESULT releaseall end @@ -617,7 +617,7 @@ MauvilleCity_GameCorner_EventScript_2103B6:: @ 82103B6 compare VAR_RESULT, 0 goto_eq MauvilleCity_GameCorner_EventScript_210456 setvar VAR_0x8004, 7 - specialvar VAR_RESULT, sub_8139248 + specialvar VAR_RESULT, GetSlotMachineId playslotmachine VAR_RESULT releaseall end @@ -628,7 +628,7 @@ MauvilleCity_GameCorner_EventScript_2103D6:: @ 82103D6 compare VAR_RESULT, 0 goto_eq MauvilleCity_GameCorner_EventScript_210456 setvar VAR_0x8004, 8 - specialvar VAR_RESULT, sub_8139248 + specialvar VAR_RESULT, GetSlotMachineId playslotmachine VAR_RESULT releaseall end @@ -639,7 +639,7 @@ MauvilleCity_GameCorner_EventScript_2103F6:: @ 82103F6 compare VAR_RESULT, 0 goto_eq MauvilleCity_GameCorner_EventScript_210456 setvar VAR_0x8004, 9 - specialvar VAR_RESULT, sub_8139248 + specialvar VAR_RESULT, GetSlotMachineId playslotmachine VAR_RESULT releaseall end @@ -650,7 +650,7 @@ MauvilleCity_GameCorner_EventScript_210416:: @ 8210416 compare VAR_RESULT, 0 goto_eq MauvilleCity_GameCorner_EventScript_210456 setvar VAR_0x8004, 10 - specialvar VAR_RESULT, sub_8139248 + specialvar VAR_RESULT, GetSlotMachineId playslotmachine VAR_RESULT releaseall end @@ -661,7 +661,7 @@ MauvilleCity_GameCorner_EventScript_210436:: @ 8210436 compare VAR_RESULT, 0 goto_eq MauvilleCity_GameCorner_EventScript_210456 setvar VAR_0x8004, 11 - specialvar VAR_RESULT, sub_8139248 + specialvar VAR_RESULT, GetSlotMachineId playslotmachine VAR_RESULT releaseall end diff --git a/data/maps/NavelRock_Bottom/scripts.inc b/data/maps/NavelRock_Bottom/scripts.inc index cce93e624..febe106bf 100644 --- a/data/maps/NavelRock_Bottom/scripts.inc +++ b/data/maps/NavelRock_Bottom/scripts.inc @@ -26,7 +26,7 @@ NavelRock_Bottom_MapScript1_269284: @ 8269284 end NavelRock_Bottom_EventScript_26928E:: @ 826928E - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 7 goto_if 5, NavelRock_Bottom_EventScript_27374E removeobject 1 @@ -64,7 +64,7 @@ NavelRock_Bottom_EventScript_2692A2:: @ 82692A2 special BattleSetup_StartLegendaryBattle waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 1 goto_eq NavelRock_Bottom_EventScript_269336 compare VAR_RESULT, 4 diff --git a/data/maps/NavelRock_Top/scripts.inc b/data/maps/NavelRock_Top/scripts.inc index 67ddbc373..4310529dd 100644 --- a/data/maps/NavelRock_Top/scripts.inc +++ b/data/maps/NavelRock_Top/scripts.inc @@ -29,7 +29,7 @@ NavelRock_Top_MapScript1_269151: @ 8269151 end NavelRock_Top_EventScript_26915B:: @ 826915B - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 7 goto_if 5, NavelRock_Top_EventScript_27374E removeobject 1 @@ -69,7 +69,7 @@ NavelRock_Top_EventScript_26916F:: @ 826916F waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE setvar VAR_LAST_TALKED, 1 - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 1 goto_eq NavelRock_Top_EventScript_269217 compare VAR_RESULT, 4 diff --git a/data/maps/NewMauville_Inside/scripts.inc b/data/maps/NewMauville_Inside/scripts.inc index 81b21287d..e6d80c33d 100644 --- a/data/maps/NewMauville_Inside/scripts.inc +++ b/data/maps/NewMauville_Inside/scripts.inc @@ -14,7 +14,7 @@ NewMauville_Inside_MapScript1_2373E7: @ 82373E7 end NewMauville_Inside_EventScript_237407:: @ 8237407 - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 7 goto_if 5, NewMauville_Inside_EventScript_27374E removeobject VAR_LAST_TALKED @@ -193,7 +193,7 @@ NewMauville_Inside_EventScript_2377AF:: @ 82377AF setflag FLAG_SYS_CTRL_OBJ_DELETE dowildbattle clearflag FLAG_SYS_CTRL_OBJ_DELETE - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 1 goto_eq NewMauville_Inside_EventScript_2377F3 compare VAR_RESULT, 4 @@ -220,7 +220,7 @@ NewMauville_Inside_EventScript_2377FC:: @ 82377FC setflag FLAG_SYS_CTRL_OBJ_DELETE dowildbattle clearflag FLAG_SYS_CTRL_OBJ_DELETE - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 1 goto_eq NewMauville_Inside_EventScript_237840 compare VAR_RESULT, 4 @@ -247,7 +247,7 @@ NewMauville_Inside_EventScript_237849:: @ 8237849 setflag FLAG_SYS_CTRL_OBJ_DELETE dowildbattle clearflag FLAG_SYS_CTRL_OBJ_DELETE - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 1 goto_eq NewMauville_Inside_EventScript_23788D compare VAR_RESULT, 4 diff --git a/data/maps/PacifidlogTown_House2/scripts.inc b/data/maps/PacifidlogTown_House2/scripts.inc index 0e87677e6..21345242d 100644 --- a/data/maps/PacifidlogTown_House2/scripts.inc +++ b/data/maps/PacifidlogTown_House2/scripts.inc @@ -25,7 +25,7 @@ PacifidlogTown_House2_EventScript_203792:: @ 8203792 PacifidlogTown_House2_EventScript_2037DE:: @ 82037DE checkflag FLAG_0x12B goto_if 0, PacifidlogTown_House2_EventScript_27374E - specialvar VAR_RESULT, sub_813970C + specialvar VAR_RESULT, GetDaysUntilPacifidlogTMAvailable compare VAR_RESULT, 0 call_if 1, PacifidlogTown_House2_EventScript_203812 return @@ -49,7 +49,7 @@ PacifidlogTown_House2_EventScript_203816:: @ 8203816 compare VAR_RESULT, 0 goto_eq PacifidlogTown_House2_EventScript_272054 setflag FLAG_0x12B - special sub_8139754 + special SetPacifidlogTMReceivedDay msgbox PacifidlogTown_House2_Text_203A85, 4 release end @@ -65,13 +65,13 @@ PacifidlogTown_House2_EventScript_20384F:: @ 820384F compare VAR_RESULT, 0 goto_eq PacifidlogTown_House2_EventScript_272054 setflag FLAG_0x12B - special sub_8139754 + special SetPacifidlogTMReceivedDay msgbox PacifidlogTown_House2_Text_203A85, 4 release end PacifidlogTown_House2_EventScript_20387E:: @ 820387E - specialvar VAR_RESULT, sub_813970C + specialvar VAR_RESULT, GetDaysUntilPacifidlogTMAvailable buffernumberstring 0, VAR_RESULT msgbox PacifidlogTown_House2_Text_203AF4, 4 release diff --git a/data/maps/PetalburgCity_PokemonCenter_1F/scripts.inc b/data/maps/PetalburgCity_PokemonCenter_1F/scripts.inc index f4a31854e..fabc1f5a4 100644 --- a/data/maps/PetalburgCity_PokemonCenter_1F/scripts.inc +++ b/data/maps/PetalburgCity_PokemonCenter_1F/scripts.inc @@ -35,11 +35,11 @@ PetalburgCity_PokemonCenter_1F_EventScript_207A1C:: @ 8207A1C end PetalburgCity_PokemonCenter_1F_EventScript_207A38:: @ 8207A38 - compare VAR_FIRST_POKE, 0 + compare VAR_STARTER_MON, 0 call_if 1, PetalburgCity_PokemonCenter_1F_EventScript_207A5B - compare VAR_FIRST_POKE, 1 + compare VAR_STARTER_MON, 1 call_if 1, PetalburgCity_PokemonCenter_1F_EventScript_207A64 - compare VAR_FIRST_POKE, 2 + compare VAR_STARTER_MON, 2 call_if 1, PetalburgCity_PokemonCenter_1F_EventScript_207A6D release end diff --git a/data/maps/Route103/scripts.inc b/data/maps/Route103/scripts.inc index 14e119cd6..6674662f7 100644 --- a/data/maps/Route103/scripts.inc +++ b/data/maps/Route103/scripts.inc @@ -38,7 +38,7 @@ Route103_EventScript_1EC3DA:: @ 81EC3DA applymovement 2, Route103_Movement_27259A waitmovement 0 msgbox Route103_Text_1EC7DE, 4 - switch VAR_FIRST_POKE + switch VAR_STARTER_MON case 0, Route103_EventScript_1EC48E case 1, Route103_EventScript_1EC49E case 2, Route103_EventScript_1EC4AE @@ -55,7 +55,7 @@ Route103_EventScript_1EC434:: @ 81EC434 applymovement 2, Route103_Movement_27259A waitmovement 0 msgbox Route103_Text_1EC9CE, 4 - switch VAR_FIRST_POKE + switch VAR_STARTER_MON case 0, Route103_EventScript_1EC4BE case 1, Route103_EventScript_1EC4CE case 2, Route103_EventScript_1EC4DE diff --git a/data/maps/Route104/scripts.inc b/data/maps/Route104/scripts.inc index 4755494b6..9b45844f0 100644 --- a/data/maps/Route104/scripts.inc +++ b/data/maps/Route104/scripts.inc @@ -153,7 +153,7 @@ Route104_EventScript_1ECDD0:: @ 81ECDD0 Route104_EventScript_1ECDED:: @ 81ECDED msgbox Route104_Text_1EDDDB, 4 - switch VAR_FIRST_POKE + switch VAR_STARTER_MON case 0, Route104_EventScript_1ECE36 case 1, Route104_EventScript_1ECE49 case 2, Route104_EventScript_1ECE5C @@ -230,7 +230,7 @@ Route104_EventScript_1ECEEC:: @ 81ECEEC Route104_EventScript_1ECF09:: @ 81ECF09 msgbox Route104_Text_1EE0C7, 4 - switch VAR_FIRST_POKE + switch VAR_STARTER_MON case 0, Route104_EventScript_1ECF4D case 1, Route104_EventScript_1ECF60 case 2, Route104_EventScript_1ECF73 diff --git a/data/maps/Route110/events.inc b/data/maps/Route110/events.inc index 6e6d17d9a..f4875cc6c 100644 --- a/data/maps/Route110/events.inc +++ b/data/maps/Route110/events.inc @@ -45,8 +45,8 @@ Route110_MapWarps: @ 8529050 warp_def 19, 88, 0, 2, MAP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE Route110_MapCoordEvents: @ 8529080 - coord_event 28, 92, 3, VAR_0x40A9, 2, Route110_EventScript_1EF661 - coord_event 29, 92, 3, VAR_0x40A9, 2, Route110_EventScript_1EF661 + coord_event 28, 92, 3, VAR_CYCLING_CHALLENGE_STATE, 2, Route110_EventScript_1EF661 + coord_event 29, 92, 3, VAR_CYCLING_CHALLENGE_STATE, 2, Route110_EventScript_1EF661 coord_event 33, 56, 3, VAR_0x4069, 0, Route110_EventScript_1EF74D coord_event 34, 56, 3, VAR_0x4069, 0, Route110_EventScript_1EF758 coord_event 35, 56, 3, VAR_0x4069, 0, Route110_EventScript_1EF763 diff --git a/data/maps/Route110/scripts.inc b/data/maps/Route110/scripts.inc index 84d50b454..fe07de8dc 100644 --- a/data/maps/Route110/scripts.inc +++ b/data/maps/Route110/scripts.inc @@ -11,7 +11,7 @@ Route110_MapScript1_1EF279: @ 81EF279 Route110_MapScript1_1EF27D: @ 81EF27D call Route110_EventScript_271ED7 call Route110_EventScript_271EFB - compare VAR_0x40A9, 1 + compare VAR_CYCLING_CHALLENGE_STATE, 1 call_if 1, Route110_EventScript_1EF293 end @@ -20,12 +20,12 @@ Route110_EventScript_1EF293:: @ 81EF293 return Route110_MapScript2_1EF297: @ 81EF297 - map_script_2 VAR_0x40A9, 1, Route110_EventScript_1EF2A1 + map_script_2 VAR_CYCLING_CHALLENGE_STATE, 1, Route110_EventScript_1EF2A1 .2byte 0 Route110_EventScript_1EF2A1:: @ 81EF2A1 special Special_BeginCyclingRoadChallenge - setvar VAR_0x40A9, 2 + setvar VAR_CYCLING_CHALLENGE_STATE, 2 return Route110_EventScript_1EF2AA:: @ 81EF2AA @@ -148,7 +148,7 @@ Route110_EventScript_1EF3B7:: @ 81EF3B7 specialvar VAR_RESULT, GetPlayerAvatarBike compare VAR_RESULT, 1 goto_eq Route110_EventScript_1EF3E8 - compare VAR_0x40A9, 0 + compare VAR_CYCLING_CHALLENGE_STATE, 0 goto_eq Route110_EventScript_1EF3DE msgbox Route110_Text_1F06FB, 4 release @@ -368,7 +368,7 @@ Route110_EventScript_1EF735:: @ 81EF735 end Route110_EventScript_1EF743:: @ 81EF743 - setvar VAR_0x40A9, 3 + setvar VAR_CYCLING_CHALLENGE_STATE, 3 savebgm MUS_DUMMY fadedefaultbgm return @@ -426,7 +426,7 @@ Route110_EventScript_1EF7E6:: @ 81EF7E6 Route110_EventScript_1EF7EB:: @ 81EF7EB msgbox Route110_Text_1EFC48, 4 - switch VAR_FIRST_POKE + switch VAR_STARTER_MON case 0, Route110_EventScript_1EF81A case 1, Route110_EventScript_1EF82A case 2, Route110_EventScript_1EF83A @@ -456,7 +456,7 @@ Route110_EventScript_1EF84A:: @ 81EF84A Route110_EventScript_1EF865:: @ 81EF865 msgbox Route110_Text_1EFE3F, 4 - switch VAR_FIRST_POKE + switch VAR_STARTER_MON case 0, Route110_EventScript_1EF894 case 1, Route110_EventScript_1EF8A4 case 2, Route110_EventScript_1EF8B4 diff --git a/data/maps/Route110_SeasideCyclingRoadSouthEntrance/scripts.inc b/data/maps/Route110_SeasideCyclingRoadSouthEntrance/scripts.inc index 9f99cf44f..b38bbf896 100644 --- a/data/maps/Route110_SeasideCyclingRoadSouthEntrance/scripts.inc +++ b/data/maps/Route110_SeasideCyclingRoadSouthEntrance/scripts.inc @@ -3,14 +3,14 @@ Route110_SeasideCyclingRoadSouthEntrance_MapScripts:: @ 826EBA1 .byte 0 Route110_SeasideCyclingRoadSouthEntrance_MapScript1_26EBA7: @ 826EBA7 - compare VAR_0x40A9, 3 + compare VAR_CYCLING_CHALLENGE_STATE, 3 call_if 1, Route110_SeasideCyclingRoadSouthEntrance_EventScript_26EBBE - compare VAR_0x40A9, 2 + compare VAR_CYCLING_CHALLENGE_STATE, 2 call_if 1, Route110_SeasideCyclingRoadSouthEntrance_EventScript_26EBBE end Route110_SeasideCyclingRoadSouthEntrance_EventScript_26EBBE:: @ 826EBBE - setvar VAR_0x40A9, 1 + setvar VAR_CYCLING_CHALLENGE_STATE, 1 return Route110_SeasideCyclingRoadSouthEntrance_EventScript_26EBC4:: @ 826EBC4 @@ -33,7 +33,7 @@ Route110_SeasideCyclingRoadSouthEntrance_EventScript_26EBD0:: @ 826EBD0 end Route110_SeasideCyclingRoadSouthEntrance_EventScript_26EBF6:: @ 826EBF6 - setvar VAR_0x40A9, 1 + setvar VAR_CYCLING_CHALLENGE_STATE, 1 return Route110_SeasideCyclingRoadSouthEntrance_EventScript_26EBFC:: @ 826EBFC @@ -50,7 +50,7 @@ Route110_SeasideCyclingRoadSouthEntrance_Movement_26EC11: @ 826EC11 Route110_SeasideCyclingRoadSouthEntrance_EventScript_26EC13:: @ 826EC13 lockall - setvar VAR_0x40A9, 0 + setvar VAR_CYCLING_CHALLENGE_STATE, 0 clearflag FLAG_SYS_CYCLING_ROAD setvar VAR_TEMP_1, 0 releaseall diff --git a/data/maps/Route116/scripts.inc b/data/maps/Route116/scripts.inc index 854411ac1..769d254a5 100644 --- a/data/maps/Route116/scripts.inc +++ b/data/maps/Route116/scripts.inc @@ -169,7 +169,7 @@ Route116_EventScript_1F2DB6:: @ 81F2DB6 checkitem ITEM_BLACK_GLASSES, 1 compare VAR_RESULT, 1 goto_eq Route116_EventScript_1F2DF1 - specialvar VAR_RESULT, sub_8139634 + specialvar VAR_RESULT, FoundBlackGlasses compare VAR_RESULT, 1 goto_eq Route116_EventScript_1F2DE2 msgbox Route116_Text_1F3657, 4 @@ -185,7 +185,7 @@ Route116_EventScript_1F2DE2:: @ 81F2DE2 Route116_EventScript_1F2DF1:: @ 81F2DF1 msgbox Route116_Text_1F3657, 4 msgbox Route116_Text_1F3688, 4 - specialvar VAR_RESULT, sub_8139634 + specialvar VAR_RESULT, FoundBlackGlasses compare VAR_RESULT, 1 goto_eq Route116_EventScript_1F2E1B msgbox Route116_Text_1F375E, 4 diff --git a/data/maps/Route116_TunnelersRestHouse/scripts.inc b/data/maps/Route116_TunnelersRestHouse/scripts.inc index f9dbbd3f2..b2c009337 100644 --- a/data/maps/Route116_TunnelersRestHouse/scripts.inc +++ b/data/maps/Route116_TunnelersRestHouse/scripts.inc @@ -17,7 +17,7 @@ Route116_TunnelersRestHouse_EventScript_22B863:: @ 822B863 Route116_TunnelersRestHouse_EventScript_22B86C:: @ 822B86C lock faceplayer - checkflag FLAG_0x0C7 + checkflag FLAG_RUSTURF_TUNNEL_OPENED goto_eq Route116_TunnelersRestHouse_EventScript_22B881 msgbox Route116_TunnelersRestHouse_Text_22BAAF, 4 release diff --git a/data/maps/Route119/scripts.inc b/data/maps/Route119/scripts.inc index 778d925e6..f2e52d50c 100644 --- a/data/maps/Route119/scripts.inc +++ b/data/maps/Route119/scripts.inc @@ -9,7 +9,7 @@ Route119_MapScript1_1F442F: @ 81F442F end Route119_EventScript_1F4439:: @ 81F4439 - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 7 goto_if 5, Route119_EventScript_27374E removeobject VAR_LAST_TALKED @@ -80,7 +80,7 @@ Route119_EventScript_1F4506:: @ 81F4506 Route119_EventScript_1F450B:: @ 81F450B msgbox Route119_Text_1F49FD, 4 - switch VAR_FIRST_POKE + switch VAR_STARTER_MON case 0, Route119_EventScript_1F453A case 1, Route119_EventScript_1F454A case 2, Route119_EventScript_1F455A @@ -110,7 +110,7 @@ Route119_EventScript_1F456A:: @ 81F456A Route119_EventScript_1F4585:: @ 81F4585 msgbox Route119_Text_1F4C9A, 4 - switch VAR_FIRST_POKE + switch VAR_STARTER_MON case 0, Route119_EventScript_1F45B4 case 1, Route119_EventScript_1F45C4 case 2, Route119_EventScript_1F45D4 diff --git a/data/maps/Route120/scripts.inc b/data/maps/Route120/scripts.inc index 50e5742d1..0bcff1a93 100644 --- a/data/maps/Route120/scripts.inc +++ b/data/maps/Route120/scripts.inc @@ -25,7 +25,7 @@ Route120_EventScript_1F5406:: @ 81F5406 return Route120_EventScript_1F5449:: @ 81F5449 - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 7 goto_if 5, Route120_EventScript_27374E removeobject 30 @@ -33,7 +33,7 @@ Route120_EventScript_1F5449:: @ 81F5449 return Route120_EventScript_1F5460:: @ 81F5460 - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 7 goto_if 5, Route120_EventScript_27374E removeobject VAR_LAST_TALKED @@ -220,7 +220,7 @@ Route120_EventScript_1F568B:: @ 81F568B setflag FLAG_SYS_CTRL_OBJ_DELETE dowildbattle clearflag FLAG_SYS_CTRL_OBJ_DELETE - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 1 goto_eq Route120_EventScript_1F571C compare VAR_RESULT, 4 diff --git a/data/maps/RustboroCity/scripts.inc b/data/maps/RustboroCity/scripts.inc index 6eb8d48bc..f4c8d5434 100644 --- a/data/maps/RustboroCity/scripts.inc +++ b/data/maps/RustboroCity/scripts.inc @@ -306,7 +306,7 @@ RustboroCity_EventScript_1E09CD:: @ 81E09CD clearflag FLAG_0x2DC setflag FLAG_0x08E setvar VAR_0x405A, 2 - setvar VAR_0x409A, 2 + setvar VAR_RUSTURF_TUNNEL_STATE, 2 setvar VAR_0x406F, 1 clearflag FLAG_0x37B clearflag FLAG_0x370 @@ -869,7 +869,7 @@ RustboroCity_EventScript_1E1070:: @ 81E1070 RustboroCity_EventScript_1E1092:: @ 81E1092 msgbox RustboroCity_Text_1E1C84, 4 - switch VAR_FIRST_POKE + switch VAR_STARTER_MON case 0, RustboroCity_EventScript_1E10DB case 1, RustboroCity_EventScript_1E10EE case 2, RustboroCity_EventScript_1E1101 @@ -940,7 +940,7 @@ RustboroCity_EventScript_1E1174:: @ 81E1174 RustboroCity_EventScript_1E1191:: @ 81E1191 msgbox RustboroCity_Text_1E1FA9, 4 - switch VAR_FIRST_POKE + switch VAR_STARTER_MON case 0, RustboroCity_EventScript_1E11D5 case 1, RustboroCity_EventScript_1E11E8 case 2, RustboroCity_EventScript_1E11FB diff --git a/data/maps/RusturfTunnel/events.inc b/data/maps/RusturfTunnel/events.inc index d0d56e6fa..77b6f7a61 100644 --- a/data/maps/RusturfTunnel/events.inc +++ b/data/maps/RusturfTunnel/events.inc @@ -17,8 +17,8 @@ RusturfTunnel_MapWarps: @ 85342B4 RusturfTunnel_MapCoordEvents: @ 85342CC coord_event 23, 4, 3, 0, 0, RusturfTunnel_EventScript_22D071 - coord_event 9, 4, 3, VAR_0x409A, 2, RusturfTunnel_EventScript_22D083 - coord_event 9, 5, 3, VAR_0x409A, 2, RusturfTunnel_EventScript_22D083 + coord_event 9, 4, 3, VAR_RUSTURF_TUNNEL_STATE, 2, RusturfTunnel_EventScript_22D083 + coord_event 9, 5, 3, VAR_RUSTURF_TUNNEL_STATE, 2, RusturfTunnel_EventScript_22D083 coord_event 25, 4, 3, 0, 0, RusturfTunnel_EventScript_22D077 coord_event 25, 5, 3, 0, 0, RusturfTunnel_EventScript_22D07D diff --git a/data/maps/RusturfTunnel/scripts.inc b/data/maps/RusturfTunnel/scripts.inc index 5e42be78d..33e87bda5 100644 --- a/data/maps/RusturfTunnel/scripts.inc +++ b/data/maps/RusturfTunnel/scripts.inc @@ -4,12 +4,12 @@ RusturfTunnel_MapScripts:: @ 822CE27 .byte 0 RusturfTunnel_MapScript2_22CE32: @ 822CE32 - map_script_2 VAR_0x409A, 4, RusturfTunnel_EventScript_22CEAE - map_script_2 VAR_0x409A, 5, RusturfTunnel_EventScript_22CEAE + map_script_2 VAR_RUSTURF_TUNNEL_STATE, 4, RusturfTunnel_EventScript_22CEAE + map_script_2 VAR_RUSTURF_TUNNEL_STATE, 5, RusturfTunnel_EventScript_22CEAE .2byte 0 RusturfTunnel_MapScript1_22CE44: @ 822CE44 - compare VAR_0x409A, 2 + compare VAR_RUSTURF_TUNNEL_STATE, 2 call_if 1, RusturfTunnel_EventScript_22CE50 end @@ -288,7 +288,7 @@ RusturfTunnel_EventScript_22D083:: @ 822D083 waitmovement 0 moveobjectoffscreen 6 moveobjectoffscreen 7 - setvar VAR_0x409A, 3 + setvar VAR_RUSTURF_TUNNEL_STATE, 3 releaseall end diff --git a/data/maps/SSTidalCorridor/scripts.inc b/data/maps/SSTidalCorridor/scripts.inc index 2e1b4cfa4..e046d0273 100644 --- a/data/maps/SSTidalCorridor/scripts.inc +++ b/data/maps/SSTidalCorridor/scripts.inc @@ -4,15 +4,15 @@ SSTidalCorridor_MapScripts:: @ 823BFCF SSTidalCorridor_MapScript2_23BFD5: @ 823BFD5 map_script_2 VAR_0x40D4, 0, SSTidalCorridor_EventScript_23C219 - map_script_2 VAR_PORTHOLE, 1, SSTidalCorridor_EventScript_23BFFF - map_script_2 VAR_PORTHOLE, 5, SSTidalCorridor_EventScript_23C015 - map_script_2 VAR_PORTHOLE, 9, SSTidalCorridor_EventScript_23C067 - map_script_2 VAR_PORTHOLE, 10, SSTidalCorridor_EventScript_23C07D + map_script_2 VAR_PORTHOLE_STATE, 1, SSTidalCorridor_EventScript_23BFFF + map_script_2 VAR_PORTHOLE_STATE, 5, SSTidalCorridor_EventScript_23C015 + map_script_2 VAR_PORTHOLE_STATE, 9, SSTidalCorridor_EventScript_23C067 + map_script_2 VAR_PORTHOLE_STATE, 10, SSTidalCorridor_EventScript_23C07D .2byte 0 SSTidalCorridor_EventScript_23BFFF:: @ 823BFFF special SetSSTidalFlag - setvar VAR_PORTHOLE, 2 + setvar VAR_PORTHOLE_STATE, 2 lockall playse SE_PINPON msgbox SSTidalCorridor_Text_23C462, 4 @@ -20,7 +20,7 @@ SSTidalCorridor_EventScript_23BFFF:: @ 823BFFF end SSTidalCorridor_EventScript_23C015:: @ 823C015 - setvar VAR_PORTHOLE, 6 + setvar VAR_PORTHOLE_STATE, 6 lockall playse SE_PINPON msgbox SSTidalCorridor_Text_23C4E3, 4 @@ -29,28 +29,28 @@ SSTidalCorridor_EventScript_23C015:: @ 823C015 SSTidalRooms_EventScript_23C028:: @ 823C028 special SetSSTidalFlag - setvar VAR_PORTHOLE, 7 + setvar VAR_PORTHOLE_STATE, 7 playse SE_PINPON msgbox SSTidalRooms_Text_23C462, 4 return SSTidalRooms_EventScript_23C03C:: @ 823C03C special ResetSSTidalFlag - setvar VAR_PORTHOLE, 4 + setvar VAR_PORTHOLE_STATE, 4 playse SE_PINPON msgbox SSTidalRooms_Text_23C553, 4 return SSTidalCorridor_EventScript_23C050:: @ 823C050 - compare VAR_PORTHOLE, 2 + compare VAR_PORTHOLE_STATE, 2 goto_eq SSTidalCorridor_EventScript_23C067 - compare VAR_PORTHOLE, 7 + compare VAR_PORTHOLE_STATE, 7 goto_eq SSTidalCorridor_EventScript_23C07D end SSTidalCorridor_EventScript_23C067:: @ 823C067 special ResetSSTidalFlag - setvar VAR_PORTHOLE, 3 + setvar VAR_PORTHOLE_STATE, 3 lockall playse SE_PINPON msgbox SSTidalCorridor_Text_23C4E3, 4 @@ -59,7 +59,7 @@ SSTidalCorridor_EventScript_23C067:: @ 823C067 SSTidalCorridor_EventScript_23C07D:: @ 823C07D special ResetSSTidalFlag - setvar VAR_PORTHOLE, 8 + setvar VAR_PORTHOLE_STATE, 8 lockall playse SE_PINPON msgbox SSTidalCorridor_Text_23C50F, 4 @@ -68,13 +68,13 @@ SSTidalCorridor_EventScript_23C07D:: @ 823C07D SSTidalRooms_EventScript_23C093:: @ 823C093 special ResetSSTidalFlag - setvar VAR_PORTHOLE, 8 + setvar VAR_PORTHOLE_STATE, 8 playse SE_PINPON msgbox SSTidalRooms_Text_23C50F, 4 return SSTidalRooms_EventScript_23C0A7:: @ 823C0A7 - switch VAR_PORTHOLE + switch VAR_PORTHOLE_STATE case 2, SSTidalRooms_EventScript_23C03C case 3, SSTidalRooms_EventScript_23C03C case 6, SSTidalRooms_EventScript_23C028 @@ -114,9 +114,9 @@ SSTidalCorridor_EventScript_23C110:: @ 823C110 SSTidalCorridor_EventScript_23C119:: @ 823C119 lock faceplayer - compare VAR_PORTHOLE, 4 + compare VAR_PORTHOLE_STATE, 4 goto_eq SSTidalCorridor_EventScript_23C13B - compare VAR_PORTHOLE, 8 + compare VAR_PORTHOLE_STATE, 8 goto_eq SSTidalCorridor_EventScript_23C15A msgbox SSTidalCorridor_Text_23C596, 4 release @@ -148,9 +148,9 @@ SSTidalCorridor_EventScript_23C179:: @ 823C179 SSTidalCorridor_EventScript_23C17D:: @ 823C17D lockall - compare VAR_PORTHOLE, 2 + compare VAR_PORTHOLE_STATE, 2 goto_eq SSTidalCorridor_EventScript_23C19E - compare VAR_PORTHOLE, 7 + compare VAR_PORTHOLE_STATE, 7 goto_eq SSTidalCorridor_EventScript_23C19E msgbox SSTidalCorridor_Text_23C6C3, 4 releaseall diff --git a/data/maps/SkyPillar_Top/scripts.inc b/data/maps/SkyPillar_Top/scripts.inc index 334acc8ac..690464698 100644 --- a/data/maps/SkyPillar_Top/scripts.inc +++ b/data/maps/SkyPillar_Top/scripts.inc @@ -10,7 +10,7 @@ SkyPillar_Top_MapScript1_2396C8: @ 82396C8 end SkyPillar_Top_EventScript_2396D2:: @ 82396D2 - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 7 goto_if 5, SkyPillar_Top_EventScript_27374E removeobject VAR_LAST_TALKED @@ -56,7 +56,7 @@ SkyPillar_Top_EventScript_239722:: @ 8239722 special BattleSetup_StartLegendaryBattle waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 1 goto_eq SkyPillar_Top_EventScript_239768 compare VAR_RESULT, 4 diff --git a/data/maps/SlateportCity_Harbor/scripts.inc b/data/maps/SlateportCity_Harbor/scripts.inc index e1f373bb2..58c318d37 100644 --- a/data/maps/SlateportCity_Harbor/scripts.inc +++ b/data/maps/SlateportCity_Harbor/scripts.inc @@ -203,7 +203,7 @@ SlateportCity_Harbor_EventScript_20CB92:: @ 820CB92 msgbox SlateportCity_Harbor_Text_20CF93, 5 compare VAR_RESULT, 0 goto_eq SlateportCity_Harbor_EventScript_20CBDD - setvar VAR_PORTHOLE, 1 + setvar VAR_PORTHOLE_STATE, 1 call SlateportCity_Harbor_EventScript_20CBE9 warp MAP_SS_TIDAL_CORRIDOR, 255, 1, 10 waitstate diff --git a/data/maps/SlateportCity_House1/scripts.inc b/data/maps/SlateportCity_House1/scripts.inc index 8ecc859f7..745cc6627 100644 --- a/data/maps/SlateportCity_House1/scripts.inc +++ b/data/maps/SlateportCity_House1/scripts.inc @@ -34,7 +34,7 @@ SlateportCity_House1_EventScript_209AF3:: @ 8209AF3 special TV_CheckMonOTIDEqualsPlayerID compare VAR_RESULT, 1 goto_eq SlateportCity_House1_EventScript_209B50 - specialvar VAR_RESULT, sub_8139770 + specialvar VAR_RESULT, MonOTNameMatchesPlayer special TV_CopyNicknameToStringVar1AndEnsureTerminated compare VAR_RESULT, 1 goto_eq SlateportCity_House1_EventScript_209B50 diff --git a/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc b/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc index cdcf5866c..652ac791a 100644 --- a/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc +++ b/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc @@ -91,7 +91,7 @@ SootopolisCity_MysteryEventsHouse_1F_EventScript_227A4E:: @ 8227A4E SootopolisCity_MysteryEventsHouse_1F_EventScript_227A58:: @ 8227A58 special SavePlayerParty - special sub_8139238 + special BufferEReaderTrainerName msgbox SootopolisCity_MysteryEventsHouse_1F_Text_227BFC, 5 compare VAR_RESULT, 0 goto_eq SootopolisCity_MysteryEventsHouse_1F_EventScript_227AE2 diff --git a/data/maps/SouthernIsland_Interior/scripts.inc b/data/maps/SouthernIsland_Interior/scripts.inc index 432667cc9..3005e32d7 100644 --- a/data/maps/SouthernIsland_Interior/scripts.inc +++ b/data/maps/SouthernIsland_Interior/scripts.inc @@ -9,7 +9,7 @@ SouthernIsland_Interior_MapScript1_242A50: @ 8242A50 end SouthernIsland_Interior_EventScript_242A5A:: @ 8242A5A - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 7 goto_if 5, SouthernIsland_Interior_EventScript_27374E removeobject 2 @@ -90,7 +90,7 @@ SouthernIsland_Interior_EventScript_242AD0:: @ 8242AD0 special BattleSetup_StartLatiBattle waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 1 goto_eq SouthernIsland_Interior_EventScript_242B81 compare VAR_RESULT, 4 diff --git a/data/maps/TerraCave_End/scripts.inc b/data/maps/TerraCave_End/scripts.inc index 5152f85cf..d603f2274 100644 --- a/data/maps/TerraCave_End/scripts.inc +++ b/data/maps/TerraCave_End/scripts.inc @@ -9,7 +9,7 @@ TerraCave_End_MapScript1_23B0BB: @ 823B0BB end TerraCave_End_EventScript_23B0C5:: @ 823B0C5 - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 7 goto_if 5, TerraCave_End_EventScript_27374E removeobject 1 @@ -42,7 +42,7 @@ TerraCave_End_EventScript_23B0EC:: @ 823B0EC waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE setvar VAR_TEMP_1, 0 - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 1 goto_eq TerraCave_End_EventScript_23B155 compare VAR_RESULT, 4 diff --git a/data/maps/TrainerHill_Elevator/scripts.inc b/data/maps/TrainerHill_Elevator/scripts.inc index ac2d5c8a7..ff731393b 100644 --- a/data/maps/TrainerHill_Elevator/scripts.inc +++ b/data/maps/TrainerHill_Elevator/scripts.inc @@ -50,7 +50,7 @@ TrainerHill_Elevator_EventScript_2693D4:: @ 82693D4 TrainerHill_Elevator_EventScript_2693D9:: @ 82693D9 waitse - special sub_8139A78 + special ShakeScreenInElevator waitstate return diff --git a/data/maps/VerdanturfTown/scripts.inc b/data/maps/VerdanturfTown/scripts.inc index 2987a9a59..8cc8f6f4d 100644 --- a/data/maps/VerdanturfTown/scripts.inc +++ b/data/maps/VerdanturfTown/scripts.inc @@ -10,7 +10,7 @@ VerdanturfTown_MapScript1_1EB56C: @ 81EB56C VerdanturfTown_EventScript_1EB575:: @ 81EB575 lock faceplayer - checkflag FLAG_0x0C7 + checkflag FLAG_RUSTURF_TUNNEL_OPENED goto_eq VerdanturfTown_EventScript_1EB594 msgbox VerdanturfTown_Text_1EB5FD, 4 applymovement 2, VerdanturfTown_Movement_2725A2 @@ -36,7 +36,7 @@ VerdanturfTown_EventScript_1EB5B1:: @ 81EB5B1 VerdanturfTown_EventScript_1EB5BA:: @ 81EB5BA lock faceplayer - checkflag FLAG_0x0C7 + checkflag FLAG_RUSTURF_TUNNEL_OPENED goto_eq VerdanturfTown_EventScript_1EB5CF msgbox VerdanturfTown_Text_1EB854, 4 release diff --git a/data/maps/VerdanturfTown_WandasHouse/scripts.inc b/data/maps/VerdanturfTown_WandasHouse/scripts.inc index fabff6420..8184f4c21 100644 --- a/data/maps/VerdanturfTown_WandasHouse/scripts.inc +++ b/data/maps/VerdanturfTown_WandasHouse/scripts.inc @@ -69,7 +69,7 @@ VerdanturfTown_WandasHouse_EventScript_20294E:: @ 820294E goto_eq VerdanturfTown_WandasHouse_EventScript_202989 checkflag FLAG_0x4F3 goto_eq VerdanturfTown_WandasHouse_EventScript_20297F - checkflag FLAG_0x0C7 + checkflag FLAG_RUSTURF_TUNNEL_OPENED goto_eq VerdanturfTown_WandasHouse_EventScript_202975 msgbox VerdanturfTown_WandasHouse_Text_202E47, 4 release diff --git a/data/scripts/field_move_scripts.inc b/data/scripts/field_move_scripts.inc index df25056ea..d0936b9c1 100644 --- a/data/scripts/field_move_scripts.inc +++ b/data/scripts/field_move_scripts.inc @@ -113,7 +113,7 @@ Route111_EventScript_2907FB:: @ 82907FB applymovement VAR_LAST_TALKED, Route111_Movement_29082B waitmovement 0 removeobject VAR_LAST_TALKED - specialvar VAR_RESULT, sub_81393FC + specialvar VAR_RESULT, TryUpdateRusturfTunnelState compare VAR_RESULT, 1 goto_eq Route111_EventScript_290829 special RockSmashWildEncounter diff --git a/data/specials.inc b/data/specials.inc index 1020b1c80..86355f484 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -174,11 +174,11 @@ gSpecials:: @ 81DBA64 def_special GetFirstFreePokeblockSlot def_special DoBerryBlending def_special sub_8142BC8 - def_special sub_813BD60 - def_special sub_813BCA8 - def_special sub_813BDB4 + def_special ShouldMoveLilycoveFanClubMember + def_special GetNumMovedLilycoveFanClubMembers + def_special BufferStreakTrainerText def_special sub_813BA30 - def_special sub_813BCE8 + def_special UpdateMovedLilycoveFanClubMembers def_special sub_813BF60 def_special sub_813BA60 def_special sub_813BF7C @@ -191,7 +191,7 @@ gSpecials:: @ 81DBA64 def_special GabbyAndTyGetLastQuote def_special GabbyAndTyGetLastBattleTrivia def_special GabbyAndTySetScriptVarsToEventObjectLocalIds - def_special sub_8138B80 + def_special GetBattleOutcome def_special GetDaycareMonNicknames def_special GetDaycareState def_special RejectEggFromDayCare @@ -227,7 +227,7 @@ gSpecials:: @ 81DBA64 def_special ShowPokedexRatingMessage def_special DoPCTurnOnEffect def_special DoPCTurnOffEffect - def_special sub_8139994 + def_special SetDepartmentStoreFloorVar def_special DoLotteryCornerComputerEffect def_special EndLotteryCornerComputerEffect def_special sub_81B951C @@ -258,7 +258,7 @@ gSpecials:: @ 81DBA64 def_special sub_81B9D08 def_special sub_80F9490 def_special ValidateEReaderTrainer - def_special sub_8139228 + def_special GetBestBattleTowerStreak def_special sub_80F94E8 def_special BedroomPC def_special PlayerPC @@ -284,7 +284,7 @@ gSpecials:: @ 81DBA64 def_special sub_80FB7A4 def_special DoSoftReset def_special GameClear - def_special sub_8139A78 + def_special ShakeScreenInElevator def_special nullsub_55 def_special SpawnScriptEventObject def_special RemoveScriptEventObject @@ -295,20 +295,20 @@ gSpecials:: @ 81DBA64 def_special sub_80B0534 def_special sub_80B058C def_special WaitWeather - def_special sub_8139238 - def_special sub_8139248 + def_special BufferEReaderTrainerName + def_special GetSlotMachineId def_special GetPlayerFacingDirection - def_special sub_81392AC - def_special sub_81392D4 - def_special sub_81392F8 - def_special sub_8139320 + def_special FoundAbandonedShipRoom1Key + def_special FoundAbandonedShipRoom2Key + def_special FoundAbandonedShipRoom4Key + def_special FoundAbandonedShipRoom6Key def_special LeadMonHasEffortRibbon def_special GiveLeadMonEffortRibbon def_special Special_AreLeadMonEVsMaxedOut def_special sub_8098574 def_special sub_809859C def_special InitRoamer - def_special sub_81393FC + def_special TryUpdateRusturfTunnelState def_special IsGrassTypeInParty def_special sub_80AFC60 def_special PutZigzagoonInPlayerParty @@ -326,7 +326,7 @@ gSpecials:: @ 81DBA64 def_special StartRegiBattle def_special sub_80B16D8 def_special DoSealedChamberShakingEffect2 - def_special sub_8139634 + def_special FoundBlackGlasses def_special sub_80AC81C def_special sp13E_warp_to_last_warp def_special sp13F_fall_to_last_warp @@ -343,11 +343,11 @@ gSpecials:: @ 81DBA64 def_special sub_80E9B70 def_special LoadPlayerBag def_special sub_80B05B4 - def_special sub_8139754 - def_special sub_813970C + def_special SetPacifidlogTMReceivedDay + def_special GetDaysUntilPacifidlogTMAvailable def_special sub_80C08E4 - def_special sub_8139770 - def_special sub_81397C4 + def_special MonOTNameMatchesPlayer + def_special BufferLottoTicketNumber def_special sub_81653CC def_special sub_80F9370 def_special sub_80F8FE8 diff --git a/graphics/misc/deoxys1.pal b/graphics/misc/deoxys1.pal new file mode 100644 index 000000000..d90c4cb38 --- /dev/null +++ b/graphics/misc/deoxys1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +180 180 180 +148 148 148 +90 90 98 +57 57 74 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +222 222 222 +0 0 0 diff --git a/graphics/misc/deoxys10.pal b/graphics/misc/deoxys10.pal new file mode 100644 index 000000000..8bdd860fb --- /dev/null +++ b/graphics/misc/deoxys10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +246 197 156 +238 82 82 +189 32 32 +123 8 8 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/misc/deoxys11.pal b/graphics/misc/deoxys11.pal new file mode 100644 index 000000000..9a9ee2530 --- /dev/null +++ b/graphics/misc/deoxys11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 205 156 +255 82 82 +205 32 32 +131 8 8 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/misc/deoxys2.pal b/graphics/misc/deoxys2.pal new file mode 100644 index 000000000..38806db0f --- /dev/null +++ b/graphics/misc/deoxys2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +180 180 172 +156 139 139 +98 82 90 +57 49 65 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/misc/deoxys3.pal b/graphics/misc/deoxys3.pal new file mode 100644 index 000000000..24db0e343 --- /dev/null +++ b/graphics/misc/deoxys3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +189 180 172 +164 131 131 +106 74 82 +65 41 57 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/misc/deoxys4.pal b/graphics/misc/deoxys4.pal new file mode 100644 index 000000000..5db08f366 --- /dev/null +++ b/graphics/misc/deoxys4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +197 180 172 +172 123 123 +123 65 74 +74 41 49 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/misc/deoxys5.pal b/graphics/misc/deoxys5.pal new file mode 100644 index 000000000..25a62aae6 --- /dev/null +++ b/graphics/misc/deoxys5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +205 189 164 +189 115 115 +131 65 65 +82 32 41 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/misc/deoxys6.pal b/graphics/misc/deoxys6.pal new file mode 100644 index 000000000..0f636873e --- /dev/null +++ b/graphics/misc/deoxys6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +213 189 164 +197 115 115 +148 57 65 +90 32 41 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/misc/deoxys7.pal b/graphics/misc/deoxys7.pal new file mode 100644 index 000000000..2dba57eef --- /dev/null +++ b/graphics/misc/deoxys7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +222 189 164 +205 106 106 +156 49 57 +98 24 32 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/misc/deoxys8.pal b/graphics/misc/deoxys8.pal new file mode 100644 index 000000000..d46c26996 --- /dev/null +++ b/graphics/misc/deoxys8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +230 197 156 +222 98 98 +164 49 49 +106 16 24 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/misc/deoxys9.pal b/graphics/misc/deoxys9.pal new file mode 100644 index 000000000..f65fee065 --- /dev/null +++ b/graphics/misc/deoxys9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +238 197 156 +230 90 90 +180 41 41 +115 16 16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/unknown/unknown_5B3280.pal b/graphics/unknown/unknown_5B3280.pal deleted file mode 100644 index a23813afb..000000000 --- a/graphics/unknown/unknown_5B3280.pal +++ /dev/null @@ -1,179 +0,0 @@ -JASC-PAL -0100 -176 -115 197 164 -180 180 180 -148 148 148 -90 90 98 -57 57 74 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -222 222 222 -0 0 0 -115 197 164 -180 180 172 -156 139 139 -98 82 90 -57 49 65 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -115 197 164 -189 180 172 -164 131 131 -106 74 82 -65 41 57 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -115 197 164 -197 180 172 -172 123 123 -123 65 74 -74 41 49 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -115 197 164 -205 189 164 -189 115 115 -131 65 65 -82 32 41 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -115 197 164 -213 189 164 -197 115 115 -148 57 65 -90 32 41 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -115 197 164 -222 189 164 -205 106 106 -156 49 57 -98 24 32 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -115 197 164 -230 197 156 -222 98 98 -164 49 49 -106 16 24 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -115 197 164 -238 197 156 -230 90 90 -180 41 41 -115 16 16 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -115 197 164 -246 197 156 -238 82 82 -189 32 32 -123 8 8 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -115 197 164 -255 205 156 -255 82 82 -205 32 32 -131 8 8 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/include/battle_tower.h b/include/battle_tower.h index d8a3dc9a8..e1655f2c6 100644 --- a/include/battle_tower.h +++ b/include/battle_tower.h @@ -42,5 +42,6 @@ void sub_81628A0(union BattleTowerRecord *); void sub_8162614(u16 trainerId, u8); void ConvertBattleFrontierTrainerSpeechToString(u16 *words); void GetFrontierTrainerName(u8 *dest, u16 trainerIdx); +void GetEreaderTrainerName(u8 *dest); #endif //GUARD_BATTLE_TOWER_H diff --git a/include/cable_club.h b/include/cable_club.h index 734a4f070..8be376721 100644 --- a/include/cable_club.h +++ b/include/cable_club.h @@ -1,6 +1,8 @@ #ifndef GUARD_CABLE_CLUB_H #define GUARD_CABLE_CLUB_H +#include "task.h" + // Exported type declarations // Exported RAM declarations @@ -11,5 +13,6 @@ void sub_80B37D4(TaskFunc taskFunc); u8 sub_80B3050(void); void sub_80B360C(void); bool32 sub_80B2AF4(u16 *arg0, u16 *arg1); +void sub_80B3AF8(u8 taskId); #endif //GUARD_CABLE_CLUB_H diff --git a/include/constants/flags.h b/include/constants/flags.h index 641d74f19..6c1400410 100644 --- a/include/constants/flags.h +++ b/include/constants/flags.h @@ -199,7 +199,7 @@ #define FLAG_0x0C4 0xC4 #define FLAG_0x0C5 0xC5 #define FLAG_0x0C6 0xC6 -#define FLAG_0x0C7 0xC7 +#define FLAG_RUSTURF_TUNNEL_OPENED 0xC7 #define FLAG_0x0C8 0xC8 #define FLAG_0x0C9 0xC9 #define FLAG_0x0CA 0xCA @@ -532,10 +532,10 @@ #define FLAG_0x210 0x210 #define FLAG_0x211 0x211 #define FLAG_0x212 0x212 -#define FLAG_0x213 0x213 -#define FLAG_0x214 0x214 -#define FLAG_0x215 0x215 -#define FLAG_0x216 0x216 +#define FLAG_HIDDEN_ITEM_1F 0x213 +#define FLAG_HIDDEN_ITEM_20 0x214 +#define FLAG_HIDDEN_ITEM_21 0x215 +#define FLAG_HIDDEN_ITEM_22 0x216 #define FLAG_0x217 0x217 #define FLAG_0x218 0x218 #define FLAG_0x219 0x219 @@ -597,7 +597,7 @@ #define FLAG_0x251 0x251 #define FLAG_0x252 0x252 #define FLAG_0x253 0x253 -#define FLAG_0x254 0x254 +#define FLAG_HIDDEN_ITEM_BLACK_GLASSES 0x254 #define FLAG_0x255 0x255 #define FLAG_0x256 0x256 #define FLAG_0x257 0x257 @@ -790,10 +790,10 @@ #define FLAG_0x312 0x312 #define FLAG_0x313 0x313 #define FLAG_0x314 0x314 -#define FLAG_0x315 0x315 -#define FLAG_0x316 0x316 -#define FLAG_0x317 0x317 -#define FLAG_0x318 0x318 +#define FLAG_HIDE_FANCLUB_OLD_LADY 0x315 +#define FLAG_HIDE_FANCLUB_BOY 0x316 +#define FLAG_HIDE_FANCLUB_LITTLE_BOY 0x317 +#define FLAG_HIDE_FANCLUB_LADY 0x318 #define FLAG_0x319 0x319 #define FLAG_0x31A 0x31A #define FLAG_0x31B 0x31B @@ -932,8 +932,8 @@ #define FLAG_0x3A0 0x3A0 #define FLAG_0x3A1 0x3A1 #define FLAG_0x3A2 0x3A2 -#define FLAG_0x3A3 0x3A3 -#define FLAG_0x3A4 0x3A4 +#define FLAG_HIDE_RUSTURF_TUNNEL_ROCK_1 0x3A3 +#define FLAG_HIDE_RUSTURF_TUNNEL_ROCK_2 0x3A4 #define FLAG_0x3A5 0x3A5 #define FLAG_0x3A6 0x3A6 #define FLAG_0x3A7 0x3A7 diff --git a/include/constants/vars.h b/include/constants/vars.h index ed4a7797b..7cf232efe 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -49,13 +49,13 @@ #define VAR_RECYCLE_GOODS 0x4020 #define VAR_REPEL_STEP_COUNT 0x4021 #define VAR_ICE_STEP_COUNT 0x4022 -#define VAR_FIRST_POKE 0x4023 // 0=Treecko, 1=Torchic, 2=Mudkip +#define VAR_STARTER_MON 0x4023 // 0=Treecko, 1=Torchic, 2=Mudkip #define VAR_MIRAGE_RND_H 0x4024 #define VAR_MIRAGE_RND_L 0x4025 #define VAR_SECRET_BASE_MAP 0x4026 -#define VAR_0x4027 0x4027 -#define VAR_0x4028 0x4028 -#define VAR_0x4029 0x4029 +#define VAR_CYCLING_ROAD_RECORD_COLLISIONS 0x4027 +#define VAR_CYCLING_ROAD_RECORD_TIME_L 0x4028 +#define VAR_CYCLING_ROAD_RECORD_TIME_H 0x4029 #define VAR_HAPPINESS_STEP_COUNTER 0x402A #define VAR_POISON_STEP_COUNTER 0x402B #define VAR_RESET_RTC_ENABLE 0x402C @@ -81,8 +81,8 @@ #define VAR_ALTERING_CAVE_WILD_SET 0x403E #define VAR_0x403F 0x403F #define VAR_DAYS 0x4040 -#define VAR_0x4041 0x4041 -#define VAR_0x4042 0x4042 +#define VAR_FANCLUB_UNKNOWN_1 0x4041 +#define VAR_FANCLUB_UNKNOWN_2 0x4042 #define VAR_DEPT_STORE_FLOOR 0x4043 #define VAR_0x4044 0x4044 #define VAR_POKELOT_PRIZE 0x4045 @@ -165,12 +165,12 @@ #define VAR_0x4092 0x4092 #define VAR_0x4093 0x4093 #define VAR_0x4094 0x4094 -#define VAR_0x4095 0x4095 +#define VAR_LILYCOVE_FAN_CLUB_STATE 0x4095 #define VAR_0x4096 0x4096 #define VAR_0x4097 0x4097 #define VAR_0x4098 0x4098 #define VAR_0x4099 0x4099 -#define VAR_0x409A 0x409A +#define VAR_RUSTURF_TUNNEL_STATE 0x409A #define VAR_0x409B 0x409B #define VAR_0x409C 0x409C #define VAR_0x409D 0x409D @@ -185,7 +185,7 @@ #define VAR_0x40A6 0x40A6 #define VAR_0x40A7 0x40A7 #define VAR_0x40A8 0x40A8 -#define VAR_0x40A9 0x40A9 +#define VAR_CYCLING_CHALLENGE_STATE 0x40A9 #define VAR_0x40AA 0x40AA #define VAR_0x40AB 0x40AB #define VAR_0x40AC 0x40AC @@ -196,7 +196,7 @@ #define VAR_0x40B1 0x40B1 #define VAR_0x40B2 0x40B2 #define VAR_WEATHER_INSTITUTE_STATE 0x40B3 -#define VAR_PORTHOLE 0x40B4 +#define VAR_PORTHOLE_STATE 0x40B4 #define VAR_0x40B5 0x40B5 #define VAR_0x40B6 0x40B6 #define VAR_0x40B7 0x40B7 @@ -210,7 +210,7 @@ #define VAR_0x40BF 0x40BF #define VAR_0x40C0 0x40C0 #define VAR_0x40C1 0x40C1 -#define VAR_0x40C2 0x40C2 +#define VAR_PACIFIDLOG_TM_RECEIVED_DAY 0x40C2 #define VAR_0x40C3 0x40C3 #define VAR_0x40C4 0x40C4 #define VAR_0x40C5 0x40C5 diff --git a/include/decoration.h b/include/decoration.h index 76b2f2ec4..f613c25d2 100644 --- a/include/decoration.h +++ b/include/decoration.h @@ -73,5 +73,6 @@ void sub_8126B2C(u8 taskId); void sub_8127208(u8 taskId); void sub_8127250(u8 *dest, u8 decorCat); bool8 IsSelectedDecorInThePC(void); +u8 AddDecorationIconObject(u8 decor, s16 x, s16 y, u8 priority, u16 tilesTag, u16 paletteTag); #endif //GUARD_DECORATION_H diff --git a/include/event_object_movement.h b/include/event_object_movement.h index a8f5caa28..c382ae4d8 100644 --- a/include/event_object_movement.h +++ b/include/event_object_movement.h @@ -185,6 +185,7 @@ bool8 FreezeEventObject(struct EventObject *eventObject); u8 GetMoveDirectionFastAnimNum(u8); u8 GetMoveDirectionFasterAnimNum(u8); u8 GetMoveDirectionFastestAnimNum(u8); +void CameraObjectSetFollowedObjectId(u8 objectId); void MovementType_None(struct Sprite *); void MovementType_LookAround(struct Sprite *); diff --git a/include/field_effect.h b/include/field_effect.h index 9c9501bfa..cdabd5c99 100644 --- a/include/field_effect.h +++ b/include/field_effect.h @@ -74,7 +74,10 @@ enum FieldEffectScriptIdx FLDEFF_USE_FLY_ANCIENT_TOMB, FLDEFF_PCTURN_ON, FLDEFF_HALL_OF_FAME_RECORD, - FLDEFF_USE_TELEPORT + FLDEFF_USE_TELEPORT, + FLDEFF_64, + FLDEFF_65, + FLDEFF_66, }; extern s32 gFieldEffectArguments[8]; diff --git a/include/field_region_map.h b/include/field_region_map.h new file mode 100644 index 000000000..d50f1265c --- /dev/null +++ b/include/field_region_map.h @@ -0,0 +1,6 @@ +#ifndef GUARD_FIELD_REGION_MAP_H +#define GUARD_FIELD_REGION_MAP_H + +void FieldInitRegionMap(MainCallback callback); + +#endif // GUARD_FIELD_REGION_MAP_H diff --git a/include/field_screen.h b/include/field_screen.h index 268b9312e..bf1502405 100644 --- a/include/field_screen.h +++ b/include/field_screen.h @@ -15,5 +15,6 @@ void sub_80AC3D0(void); void sub_80AC3E4(void); void PreservePaletteInWeather(u8); void sub_80AF128(void); +void sub_80AB104(u8); #endif //GUARD_FIELD_SCREEN_H diff --git a/include/global.h b/include/global.h index 7153ef260..2015d47cc 100644 --- a/include/global.h +++ b/include/global.h @@ -163,6 +163,16 @@ enum OPTIONS_BATTLE_STYLE_SET }; +struct Coords8 { + s8 x; + s8 y; +}; + +struct UCoords8 { + u8 x; + u8 y; +}; + struct Coords16 { s16 x; @@ -344,7 +354,8 @@ struct BattleFrontier /*0xCA9*/ u8 field_CA9_f:1; // 0x80 /*0xCAA*/ u16 field_CAA[4]; /*0xCB2*/ u16 field_CB2; - /*0xCB4*/ u16 field_CB4[30]; + /*0xCB4*/ u16 field_CB4[22]; + /*0xCE0*/ u16 field_CE0[4][2]; /*0xCF0*/ u16 field_CF0[2]; /*0xCF4*/ u16 field_CF4[2]; /*0xCF8*/ u16 field_CF8[2]; @@ -355,24 +366,21 @@ struct BattleFrontier /*0xD09*/ u8 filler_D09; /*0xD0A*/ u8 filler_D0A; /*0xD0B*/ u8 filler_D0B; - /*0xD0C*/ u8 filler_D0C; - /*0xD0D*/ u8 filler_D0D; - /*0xD0E*/ u8 filler_D0E; - /*0xD0F*/ u8 filler_D0F; + /*0xD0C*/ u16 field_D0C[2]; /*0xD10*/ u8 filler_D10; /*0xD11*/ u8 filler_D11; /*0xD12*/ u8 filler_D12; /*0xD13*/ u8 filler_D13; /*0xD14*/ u16 field_D14[2]; - /*0xD18*/ u8 field_D18[0xB8]; + /*0xD18*/ u8 field_D18[0xB0]; + /*0xDC8*/ u16 field_DC8[2]; + /*0xDCC*/ u8 filler_DCC[4]; /*0xDD0*/ u16 field_DD0[2]; /*0xDD4*/ u16 field_DD4[2]; /*0xDD8*/ u16 field_DD8; - /*0xDDA*/ u16 field_DDA; - /*0xDDC*/ u16 field_DDC; + /*0xDDA*/ u16 field_DDA[2]; /*0xDDE*/ u16 field_DDE[2]; - /*0xDE2*/ u16 field_DE2; - /*0xDE4*/ u16 field_DE4; + /*0xDE2*/ u16 field_DE2[2]; /*0xDE6*/ u16 field_DE6; /*0xDE8*/ u16 field_DE8; /*0xDEA*/ u16 field_DEA[2]; @@ -387,11 +395,9 @@ struct BattleFrontier /*0xDFE*/ u16 field_DFE; /*0xE00*/ u16 field_E00; /*0xE02*/ u16 field_E02; - /*0xE04*/ u16 field_E04; - /*0xE06*/ u16 field_E06; + /*0xE04*/ u16 field_E04[2]; /*0xE08*/ u16 field_E08[9]; - /*0xE1A*/ u16 field_E1A; - /*0xE1C*/ u16 field_E1C; + /*0xE1A*/ u16 field_E1A[2]; /*0xE1E*/ u16 field_E1E[7]; /*0xE2C*/ struct PyramidBag pyramidBag; /*0xE58*/ u16 field_E58; diff --git a/include/match_call.h b/include/match_call.h index 9698e7cd3..1f431bfaf 100644 --- a/include/match_call.h +++ b/include/match_call.h @@ -10,4 +10,6 @@ enum { MATCH_CALL_TYPE_GYMLEADER_ELITEFOUR }; +s32 GetRematchIdxByTrainerIdx(s32 trainerIdx); + #endif //GUARD_MATCH_CALL_H diff --git a/include/menu.h b/include/menu.h index 888d898b6..4cc43dd4c 100644 --- a/include/menu.h +++ b/include/menu.h @@ -51,7 +51,7 @@ void blit_move_info_icon(u8 winId, u8 a2, u16 x, u16 y); void reset_temp_tile_data_buffers(void); void *decompress_and_copy_tile_data_to_vram(u8 bgId, const void *src, int size, u16 offset, u8 mode); bool8 free_temp_tile_data_buffers_if_possible(void); -struct WindowTemplate sub_8198A50(u8, u8, u8, u8, u8, u8, u16); +struct WindowTemplate CreateWindowTemplate(u8, u8, u8, u8, u8, u8, u16); void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos); void copy_decompressed_tile_data_to_vram_autofree(u8 bgId, const void *src, int size, u16 offset, u8 mode); s8 ProcessMenuInputNoWrap_(void); @@ -84,5 +84,6 @@ void sub_819A344(u8 a0, u8 *dest, u8 color); void RemoveMapNamePopUpWindow(void); u8 GetMapNamePopUpWindowId(void); u8 AddMapNamePopUpWindow(void); +void sub_8199F74(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 speed, void (*callback)(struct TextSubPrinter *, u16), u8 letterSpacing, u8 lineSpacing); #endif // GUARD_MENU_H diff --git a/include/party_menu.h b/include/party_menu.h index 6e1344213..cb2c38891 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -34,6 +34,8 @@ struct Struct203CEC8 extern struct Struct203CEC8 gUnknown_0203CEC8; +extern const u16 gUnknown_0861500C[]; + bool8 pokemon_has_move(struct Pokemon *, u16); void sub_81B58A8(void); void DoWallyTutorialBagMenu(void); @@ -54,5 +56,6 @@ void sub_81B8518(u8 unused); u8 sub_81B1360(void); void sub_81B8904(u8 arg0, void (*callback)(void)); void OpenPartyMenuInBattle(u8 caseId); +u16 ItemIdToBattleMoveId(u16 itemId); #endif // GUARD_PARTY_MENU_H diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 9fcfdba96..990331e86 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -9,5 +9,7 @@ struct BoxPokemon *GetBoxedMonPtr(u8, u8); void SetBoxMonNickFromAnyBox(u8, u8, u8 *); void CompactPartySlots(void); u32 GetBoxMonDataFromAnyBox(u8 boxId, u8 monPosition, u32 request); +bool8 CheckFreePokemonStorageSpace(void); +u8 StorageGetCurrentBox(void); #endif // GUARD_POKEMON_STORAGE_SYSTEM_H diff --git a/include/rom_8011DC0.h b/include/rom_8011DC0.h index fd8c35f56..f71e5d97d 100644 --- a/include/rom_8011DC0.h +++ b/include/rom_8011DC0.h @@ -8,5 +8,6 @@ // Exported ROM declarations void sub_8018438(void); +u16 mevent_081445C0(u8); #endif //GUARD_rom_8011DC0_H diff --git a/include/script_menu.h b/include/script_menu.h index 0555d0f78..c50bef00f 100644 --- a/include/script_menu.h +++ b/include/script_menu.h @@ -9,8 +9,9 @@ bool8 ScriptMenu_YesNo(u8 var1, u8 var2); bool8 ScriptMenu_MultichoiceGrid(u8 left, u8 top, u8 multichoiceId, u8 a4, u8 columnCount); bool8 ScriptMenu_ShowPokemonPic(u16 var1, u8 var2, u8 var3); bool8 (*ScriptMenu_GetPicboxWaitFunc(void))(void); -u8 convert_pixel_width_to_tile_width(s32); +s32 convert_pixel_width_to_tile_width(s32); u8 CreateWindowFromRect(u8, u8, u8, u8); void sub_80E2A78(u8); +u32 display_text_and_get_width(const u8*, u32); #endif //GUARD_SCRIPT_MENU_H diff --git a/include/strings.h b/include/strings.h index 4736fdc5d..528f70f69 100644 --- a/include/strings.h +++ b/include/strings.h @@ -462,4 +462,304 @@ extern const u8 gText_TotalRecordWLD[]; extern const u8 gText_PlayersBattleResults[]; extern const u8 gText_WinLoseDraw[]; +extern const u8 gText_99TimesPlus[]; +extern const u8 gText_1MinutePlus[]; +extern const u8 gText_SpaceSeconds[]; +extern const u8 gText_SpaceTimes[]; + +extern const u8 gText_BigGuy[]; +extern const u8 gText_BigGirl[]; +extern const u8 gText_Son[]; +extern const u8 gText_Daughter[]; + +extern const u8 gText_1F[]; +extern const u8 gText_2F[]; +extern const u8 gText_3F[]; +extern const u8 gText_4F[]; +extern const u8 gText_5F[]; +extern const u8 gText_6F[]; +extern const u8 gText_7F[]; +extern const u8 gText_8F[]; +extern const u8 gText_9F[]; +extern const u8 gText_10F[]; +extern const u8 gText_11F[]; +extern const u8 gText_B1F[]; +extern const u8 gText_B2F[]; +extern const u8 gText_B3F[]; +extern const u8 gText_B4F[]; +extern const u8 gText_Rooftop[]; +extern const u8 gText_ElevatorNowOn[]; + +extern const u8 gText_Exit[]; + +extern const u8 gText_BlueFlute[]; +extern const u8 gText_YellowFlute[]; +extern const u8 gText_RedFlute[]; +extern const u8 gText_WhiteFlute[]; +extern const u8 gText_BlackFlute[]; +extern const u8 gText_PrettyChair[]; +extern const u8 gText_PrettyDesk[]; +extern const u8 gText_Exit[]; + +extern const u8 gText_0Pts[]; +extern const u8 gText_10Pts[]; +extern const u8 gText_20Pts[]; +extern const u8 gText_30Pts[]; +extern const u8 gText_40Pts[]; +extern const u8 gText_50Pts[]; +extern const u8 gText_60Pts[]; +extern const u8 gText_70Pts[]; +extern const u8 gText_80Pts[]; +extern const u8 gText_90Pts[]; +extern const u8 gText_100Pts[]; +extern const u8 gText_QuestionMark[]; + +extern const u8 gText_KissPoster16BP[]; +extern const u8 gText_KissCushion32BP[]; +extern const u8 gText_SmoochumDoll32BP[]; +extern const u8 gText_TogepiDoll48BP[]; +extern const u8 gText_MeowthDoll48BP[]; +extern const u8 gText_ClefairyDoll48BP[]; +extern const u8 gText_DittoDoll48BP[]; +extern const u8 gText_CyndaquilDoll80BP[]; +extern const u8 gText_ChikoritaDoll80BP[]; +extern const u8 gText_TotodileDoll80BP[]; +extern const u8 gText_Exit[]; + +extern const u8 gText_LaprasDoll128BP[]; +extern const u8 gText_SnorlaxDoll128BP[]; +extern const u8 gText_VenusaurDoll256BP[]; +extern const u8 gText_CharizardDoll256BP[]; +extern const u8 gText_BlastoiseDoll256BP[]; +extern const u8 gText_Exit[]; + +extern const u8 gText_Protein1BP[]; +extern const u8 gText_Calcium1BP[]; +extern const u8 gText_Iron1BP[]; +extern const u8 gText_Zinc1BP[]; +extern const u8 gText_Carbos1BP[]; +extern const u8 gText_HpUp1BP[]; +extern const u8 gText_Exit[]; + +extern const u8 gText_Leftovers48BP[]; +extern const u8 gText_WhiteHerb48BP[]; +extern const u8 gText_QuickClaw48BP[]; +extern const u8 gText_MentalHerb48BP[]; +extern const u8 gText_BrightPowder64BP[]; +extern const u8 gText_ChoiceBand64BP[]; +extern const u8 gText_KingsRock64BP[]; +extern const u8 gText_FocusBand64BP[]; +extern const u8 gText_ScopeLens64BP[]; +extern const u8 gText_Exit[]; + +extern const u8 gText_EnergyPowder50[]; +extern const u8 gText_EnergyRoot80[]; +extern const u8 gText_HealPowder50[]; +extern const u8 gText_RevivalHerb300[]; +extern const u8 gText_Protein1000[]; +extern const u8 gText_Iron1000[]; +extern const u8 gText_Carbos1000[]; +extern const u8 gText_Calcium1000[]; +extern const u8 gText_Zinc1000[]; +extern const u8 gText_HPUp1000[]; +extern const u8 gText_PPUp3000[]; +extern const u8 gText_Exit[]; + +extern const u8 gText_BattleTower2[]; +extern const u8 gText_BattleDome[]; +extern const u8 gText_BattlePalace[]; +extern const u8 gText_BattleArena[]; +extern const u8 gText_BattleFactory[]; +extern const u8 gText_BattlePike[]; +extern const u8 gText_BattlePyramid[]; +extern const u8 gText_RankingHall[]; +extern const u8 gText_ExchangeService[]; +extern const u8 gText_Exit[]; + +extern const u8 gText_Softboiled16BP[]; +extern const u8 gText_SeismicToss24BP[]; +extern const u8 gText_DreamEater24BP[]; +extern const u8 gText_MegaPunch24BP[]; +extern const u8 gText_MegaKick48BP[]; +extern const u8 gText_BodySlam48BP[]; +extern const u8 gText_RockSlide48BP[]; +extern const u8 gText_Counter48BP[]; +extern const u8 gText_ThunderWave48BP[]; +extern const u8 gText_SwordsDance48BP[]; +extern const u8 gText_Exit[]; + +extern const u8 gText_DefenseCurl16BP[]; +extern const u8 gText_Snore24BP[]; +extern const u8 gText_MudSlap24BP[]; +extern const u8 gText_Swift24BP[]; +extern const u8 gText_IcyWind24BP[]; +extern const u8 gText_Endure48BP[]; +extern const u8 gText_PsychUp48BP[]; +extern const u8 gText_IcePunch48BP[]; +extern const u8 gText_ThunderPunch48BP[]; +extern const u8 gText_FirePunch48BP[]; +extern const u8 gText_Exit[]; + +extern const u8 gText_SlateportCity[]; +extern const u8 gText_BattleFrontier[]; +extern const u8 gText_SouthernIsland[]; +extern const u8 gText_NavelRock[]; +extern const u8 gText_BirthIsland[]; +extern const u8 gText_FarawayIsland[]; +extern const u8 gText_Exit[]; + +extern const u8 gText_BattleTrainers[]; +extern const u8 gText_BattleBasics[]; +extern const u8 gText_PokemonNature[]; +extern const u8 gText_PokemonMoves[]; +extern const u8 gText_Underpowered[]; +extern const u8 gText_WhenInDanger[]; +extern const u8 gText_Exit[]; + +extern const u8 BattleFrontier_Lounge2_Text_260971[]; +extern const u8 BattleFrontier_Lounge2_Text_260A1E[]; +extern const u8 BattleFrontier_Lounge2_Text_260AE7[]; +extern const u8 BattleFrontier_Lounge2_Text_2619AC[]; +extern const u8 BattleFrontier_Lounge2_Text_261A91[]; +extern const u8 BattleFrontier_Lounge2_Text_261B0C[]; +extern const u8 BattleFrontier_Lounge2_Text_261B95[]; +extern const u8 BattleFrontier_Lounge2_Text_261B95[]; +extern const u8 BattleFrontier_Lounge2_Text_261B95[]; +extern const u8 BattleFrontier_Lounge2_Text_261C1A[]; +extern const u8 BattleFrontier_Lounge2_Text_261C1A[]; +extern const u8 BattleFrontier_Lounge2_Text_261C1A[]; +extern const u8 BattleFrontier_Lounge2_Text_260BC4[]; +extern const u8 BattleFrontier_Lounge2_Text_260C6D[]; +extern const u8 BattleFrontier_Lounge2_Text_260D3A[]; +extern const u8 BattleFrontier_Lounge2_Text_260E1E[]; +extern const u8 BattleFrontier_Lounge2_Text_260EC7[]; +extern const u8 BattleFrontier_Lounge2_Text_260F74[]; +extern const u8 BattleFrontier_Lounge2_Text_2614E6[]; +extern const u8 BattleFrontier_Lounge2_Text_261591[]; +extern const u8 BattleFrontier_Lounge2_Text_26166F[]; +extern const u8 BattleFrontier_Lounge2_Text_261282[]; +extern const u8 BattleFrontier_Lounge2_Text_261329[]; +extern const u8 BattleFrontier_Lounge2_Text_261403[]; +extern const u8 BattleFrontier_Lounge2_Text_261026[]; +extern const u8 BattleFrontier_Lounge2_Text_2610CC[]; +extern const u8 BattleFrontier_Lounge2_Text_261194[]; +extern const u8 BattleFrontier_Lounge2_Text_26174D[]; +extern const u8 BattleFrontier_Lounge2_Text_2617F9[]; +extern const u8 BattleFrontier_Lounge2_Text_2618C4[]; + +extern const u8 BattleFrontier_Lounge5_Text_26468D[]; +extern const u8 BattleFrontier_Lounge5_Text_2646E5[]; +extern const u8 BattleFrontier_Lounge5_Text_264741[]; +extern const u8 BattleFrontier_Lounge5_Text_2647A4[]; +extern const u8 BattleFrontier_Lounge5_Text_2647FC[]; +extern const u8 BattleFrontier_Lounge5_Text_264858[]; +extern const u8 BattleFrontier_Lounge5_Text_2648BE[]; +extern const u8 BattleFrontier_Lounge5_Text_264916[]; +extern const u8 BattleFrontier_Lounge5_Text_264972[]; +extern const u8 BattleFrontier_Lounge5_Text_2649D5[]; +extern const u8 BattleFrontier_Lounge5_Text_264A3F[]; +extern const u8 BattleFrontier_Lounge5_Text_264A9B[]; +extern const u8 BattleFrontier_Lounge5_Text_264AF3[]; +extern const u8 BattleFrontier_Lounge5_Text_264B5D[]; +extern const u8 BattleFrontier_Lounge5_Text_2648BE[]; +extern const u8 BattleFrontier_Lounge5_Text_264BC3[]; +extern const u8 BattleFrontier_Lounge5_Text_264C36[]; +extern const u8 BattleFrontier_Lounge5_Text_2648BE[]; +extern const u8 BattleFrontier_Lounge5_Text_264C95[]; +extern const u8 BattleFrontier_Lounge5_Text_264D01[]; +extern const u8 BattleFrontier_Lounge5_Text_264D6B[]; +extern const u8 BattleFrontier_Lounge5_Text_264DD7[]; +extern const u8 BattleFrontier_Lounge5_Text_264E33[]; +extern const u8 BattleFrontier_Lounge5_Text_264E8F[]; +extern const u8 BattleFrontier_Lounge5_Text_2648BE[]; + +extern const u8 BattleFrontier_Lounge3_Text_262261[]; +extern const u8 BattleFrontier_Lounge3_Text_26230D[]; +extern const u8 BattleFrontier_Lounge3_Text_2623B9[]; +extern const u8 BattleFrontier_Lounge3_Text_262464[]; +extern const u8 BattleFrontier_Lounge3_Text_26250E[]; +extern const u8 BattleFrontier_Lounge3_Text_2625B8[]; +extern const u8 BattleFrontier_Lounge3_Text_26266A[]; +extern const u8 BattleFrontier_Lounge3_Text_26271C[]; +extern const u8 BattleFrontier_Lounge3_Text_2627C9[]; +extern const u8 BattleFrontier_Lounge3_Text_262876[]; +extern const u8 BattleFrontier_Lounge3_Text_26291A[]; +extern const u8 BattleFrontier_Lounge3_Text_2629BC[]; + +extern const u8 BattleFrontier_Lounge3_Text_262C04[]; +extern const u8 BattleFrontier_Lounge3_Text_262C90[]; +extern const u8 BattleFrontier_Lounge3_Text_262D1C[]; +extern const u8 BattleFrontier_Lounge3_Text_262DA7[]; +extern const u8 BattleFrontier_Lounge3_Text_262E34[]; +extern const u8 BattleFrontier_Lounge3_Text_262EC1[]; +extern const u8 BattleFrontier_Lounge3_Text_262F56[]; +extern const u8 BattleFrontier_Lounge3_Text_262FEB[]; +extern const u8 BattleFrontier_Lounge3_Text_263078[]; +extern const u8 BattleFrontier_Lounge3_Text_263105[]; +extern const u8 BattleFrontier_Lounge3_Text_26318C[]; +extern const u8 BattleFrontier_Lounge3_Text_263211[]; + +extern const u8 gText_BP[]; + +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2601AA[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2601D0[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_260201[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26022F[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26025B[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_260287[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2602B5[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2602E0[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26030F[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26033E[]; + +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C[]; + +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_260397[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2603BE[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2603E6[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26040E[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_260436[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26045C[]; + +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26047A[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2604AC[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2604D8[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26050F[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_260542[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_260575[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2605A8[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2605E2[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_260613[]; + +extern const u8 BattleFrontier_Lounge7_Text_265E30[]; +extern const u8 BattleFrontier_Lounge7_Text_265E5B[]; +extern const u8 BattleFrontier_Lounge7_Text_265E8A[]; +extern const u8 BattleFrontier_Lounge7_Text_265EC0[]; +extern const u8 BattleFrontier_Lounge7_Text_265EED[]; +extern const u8 BattleFrontier_Lounge7_Text_265F1C[]; +extern const u8 BattleFrontier_Lounge7_Text_265F47[]; +extern const u8 BattleFrontier_Lounge7_Text_265F77[]; +extern const u8 BattleFrontier_Lounge7_Text_265FAA[]; +extern const u8 BattleFrontier_Lounge7_Text_265FDD[]; + +extern const u8 BattleFrontier_Lounge7_Text_26600A[]; +extern const u8 BattleFrontier_Lounge7_Text_26603E[]; +extern const u8 BattleFrontier_Lounge7_Text_266070[]; +extern const u8 BattleFrontier_Lounge7_Text_2660A6[]; +extern const u8 BattleFrontier_Lounge7_Text_2660D0[]; +extern const u8 BattleFrontier_Lounge7_Text_2660FF[]; +extern const u8 BattleFrontier_Lounge7_Text_26612D[]; +extern const u8 BattleFrontier_Lounge7_Text_26615F[]; +extern const u8 BattleFrontier_Lounge7_Text_266185[]; +extern const u8 BattleFrontier_Lounge7_Text_2661B5[]; + +extern const u8 gText_YourPartnerHasRetired[]; + +extern const u8 gText_Wallace[]; +extern const u8 gText_Steven[]; +extern const u8 gText_Brawly[]; +extern const u8 gText_Winona[]; +extern const u8 gText_Phoebe[]; +extern const u8 gText_Glacia[]; + #endif //GUARD_STRINGS_H diff --git a/include/tv.h b/include/tv.h index 17be8c43c..554bbad85 100644 --- a/include/tv.h +++ b/include/tv.h @@ -48,5 +48,6 @@ void PutPokemonTodayCaughtOnAir(void); void TV_PutSecretBaseVisitOnTheAir(void); void PutBattleUpdateOnTheAir(u8 opponentLinkPlayerId, u16 move, u16 speciesPlayer, u16 speciesOpponent); void UpdateTVScreensOnMap(int, int); +void TV_PrintIntToStringVar(u8 varIdx, int value); #endif //GUARD_TV_H diff --git a/include/wallclock.h b/include/wallclock.h index 48697c19f..208af9324 100644 --- a/include/wallclock.h +++ b/include/wallclock.h @@ -1,6 +1,7 @@ #ifndef GUARD_WALLCLOCK_H #define GUARD_WALLCLOCK_H -void Cb2_StartWallClock(void); +void CB2_StartWallClock(void); +void CB2_ViewWallClock(void); #endif //GUARD_WALLCLOCK_H diff --git a/ld_script.txt b/ld_script.txt index fd6b4301b..ea17676bf 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -180,7 +180,7 @@ SECTIONS { src/time_events.o(.text); src/birch_pc.o(.text); src/hof_pc.o(.text); - asm/field_specials.o(.text); + src/field_specials.o(.text); src/battle_records.o(.text); asm/pokedex_area_screen.o(.text); src/evolution_scene.o(.text); @@ -469,7 +469,7 @@ SECTIONS { src/pokeblock.o(.rodata); src/fldeff_flash.o(.rodata); src/time_events.o(.rodata); - data/field_specials.o(.rodata); + src/field_specials.o(.rodata); src/battle_records.o(.rodata); data/pokedex_area_screen.o(.rodata); src/evolution_scene.o(.rodata); diff --git a/src/battle_setup.c b/src/battle_setup.c index e478af936..2955a33fc 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -900,7 +900,7 @@ static void CB2_GiveStarter(void) { u16 starterMon; - *GetVarPointer(VAR_FIRST_POKE) = gSpecialVar_Result; + *GetVarPointer(VAR_STARTER_MON) = gSpecialVar_Result; starterMon = GetStarterPokemon(gSpecialVar_Result); ScriptGiveMon(starterMon, 5, 0, 0, 0, 0); ResetTasks(); diff --git a/src/clock.c b/src/clock.c index ccbb0c24b..91eb5f16d 100644 --- a/src/clock.c +++ b/src/clock.c @@ -88,6 +88,6 @@ static void ReturnFromStartWallClock(void) void StartWallClock(void) { - SetMainCallback2(Cb2_StartWallClock); + SetMainCallback2(CB2_StartWallClock); gMain.savedCallback = ReturnFromStartWallClock; } diff --git a/src/credits.c b/src/credits.c index 168f3e8a3..a88e4b549 100644 --- a/src/credits.c +++ b/src/credits.c @@ -2285,7 +2285,7 @@ static void sub_81772B8(struct Sprite *sprite) static void sub_8177388(void) { - u16 starter = SpeciesToNationalPokedexNum(GetStarterPokemon(VarGet(VAR_FIRST_POKE))); + u16 starter = SpeciesToNationalPokedexNum(GetStarterPokemon(VarGet(VAR_STARTER_MON))); u16 page; u16 dexNum; u16 j; diff --git a/src/field_region_map.c b/src/field_region_map.c index 34b6089df..f56548068 100644 --- a/src/field_region_map.c +++ b/src/field_region_map.c @@ -63,7 +63,7 @@ static const struct WindowTemplate gUnknown_085E5070[] = { // .text -void sub_817018C(MainCallback callback) +void FieldInitRegionMap(MainCallback callback) { SetVBlankCallback(NULL); sFieldRegionMapHandler = malloc(sizeof(*sFieldRegionMapHandler)); diff --git a/src/field_special_scene.c b/src/field_special_scene.c index 39977808f..6f33b2c9b 100644 --- a/src/field_special_scene.c +++ b/src/field_special_scene.c @@ -272,7 +272,7 @@ bool8 sub_80FB59C(void) void Task_HandlePorthole(u8 taskId) { s16 *data = gTasks[taskId].data; - u16 *var = GetVarPointer(VAR_PORTHOLE); + u16 *var = GetVarPointer(VAR_PORTHOLE_STATE); struct WarpData *location = &gSaveBlock1Ptr->location; switch (data[0]) diff --git a/src/field_specials.c b/src/field_specials.c new file mode 100644 index 000000000..897bcc8d7 --- /dev/null +++ b/src/field_specials.c @@ -0,0 +1,4329 @@ +#include "global.h" +#include "main.h" +#include "battle.h" +#include "battle_tower.h" +#include "cable_club.h" +#include "data2.h" +#include "decoration.h" +#include "diploma.h" +#include "event_data.h" +#include "event_object_movement.h" +#include "fieldmap.h" +#include "field_camera.h" +#include "field_effect.h" +#include "field_message_box.h" +#include "field_player_avatar.h" +#include "field_region_map.h" +#include "field_screen.h" +#include "field_specials.h" +#include "field_weather.h" +#include "international_string_util.h" +#include "item_icon.h" +#include "link.h" +#include "list_menu.h" +#include "malloc.h" +#include "match_call.h" +#include "menu.h" +#include "overworld.h" +#include "party_menu.h" +#include "pokeblock.h" +#include "pokemon.h" +#include "pokemon_storage_system.h" +#include "random.h" +#include "rayquaza_scene.h" +#include "region_map.h" +#include "rom_8011DC0.h" +#include "rtc.h" +#include "script.h" +#include "script_menu.h" +#include "sound.h" +#include "starter_choose.h" +#include "string_util.h" +#include "strings.h" +#include "task.h" +#include "text.h" +#include "tv.h" +#include "wallclock.h" +#include "window.h" +#include "constants/event_objects.h" +#include "constants/items.h" +#include "constants/maps.h" +#include "constants/songs.h" +#include "constants/species.h" +#include "constants/moves.h" +#include "constants/vars.h" + +EWRAM_DATA bool8 gBikeCyclingChallenge = FALSE; +EWRAM_DATA u8 gBikeCollisions = 0; +EWRAM_DATA u32 gBikeCyclingTimer = 0; +EWRAM_DATA u8 gUnknown_0203AB5C = 0; +EWRAM_DATA u8 gUnknown_0203AB5D = 0; +EWRAM_DATA u8 gUnknown_0203AB5E = 0; +EWRAM_DATA u16 gUnknown_0203AB60 = 0; +EWRAM_DATA u16 gUnknown_0203AB62 = 0; +EWRAM_DATA struct ListMenuItem *gUnknown_0203AB64 = NULL; +EWRAM_DATA u16 gUnknown_0203AB68 = 0; +EWRAM_DATA u16 gUnknown_0203AB6A = 0; +EWRAM_DATA u8 gUnknown_0203AB6C = 0; +EWRAM_DATA u8 gUnknown_0203AB6D = 0; +EWRAM_DATA u8 gUnknown_0203AB6E = 0; +EWRAM_DATA u8 gUnknown_0203AB6F = 0; +EWRAM_DATA u32 gUnknown_0203AB70 = 0; + +struct ListMenuTemplate gUnknown_030061D0; + +extern const u16 gEventObjectPalette8[]; +extern const u16 gEventObjectPalette17[]; +extern const u16 gEventObjectPalette33[]; +extern const u16 gEventObjectPalette34[]; + +extern void LoadPalette(const void *src, u32 offset, u16 size); // incorrect signature, needed to match +extern void BlendPalettes(u32, u8, u16); + +void UpdateMovedLilycoveFanClubMembers(void); +void sub_813BF60(void); +u16 GetNumMovedLilycoveFanClubMembers(void); + +static void RecordCyclingRoadResults(u32, u8); +static void LoadLinkPartnerEventObjectSpritePalette(u8 graphicsId, u8 localEventId, u8 paletteNum); +static void Task_PetalburgGym(u8); +static void PetalburgGymFunc(u8, u16); +static void Task_PCTurnOnEffect(u8); +static void PCTurnOnEffect_0(struct Task *); +static void PCTurnOnEffect_1(s16, s8, s8); +static void PCTurnOffEffect(void); +static void Task_LotteryCornerComputerEffect(u8); +static void LotteryCornerComputerEffect(struct Task *); +static void sub_81395BC(u8 taskId); +static void sub_8139620(u8 taskId); +static void sub_8139AF4(u8 taskId); +static void sub_8139C2C(u16 a1, u8 a2); +static void sub_8139C80(u8 taskId); +static void sub_813A2DC(u8 taskId); +static void sub_813AA60(u16 a0, u16 a1); +static void sub_813ACE8(u8 a0, u16 a1); +static void sub_813A42C(void); +static void sub_813A4EC(u8 taskId); +static void sub_813A694(u8 taskId); +static void sub_813A46C(s32 itemIndex, bool8 onInit, struct ListMenu *list); +static void sub_813AC44(u16 a0, u16 a1); +static void sub_813AD34(u8 a0, u16 a1); +static void sub_813A570(u8 taskId); +static void sub_813A738(u8 taskId); +static void sub_813A600(u8 taskId); +static void sub_813A664(u8 taskId); +static void sub_813ABD4(u16 a0); +static void task_deoxys_sound(u8 taskId); +static void sub_813B0B4(u8 a0); +static void sub_813B160(u8 taskId); +static void sub_813B57C(u8 taskId); +static void sub_813B824(u8 taskId); +static void _fwalk(u8 taskId); +static u8 sub_813BF44(void); +static void sub_813BD84(void); +static u16 sub_813BB74(void); +static void sub_813BE30(struct LinkBattleRecords *linkRecords, u8 a, u8 b); + +void Special_ShowDiploma(void) +{ + SetMainCallback2(CB2_ShowDiploma); + ScriptContext2_Enable(); +} + +void Special_ViewWallClock(void) +{ + gMain.savedCallback = CB2_ReturnToField; + SetMainCallback2(CB2_ViewWallClock); + ScriptContext2_Enable(); +} + +void ResetCyclingRoadChallengeData(void) +{ + gBikeCyclingChallenge = FALSE; + gBikeCollisions = 0; + gBikeCyclingTimer = 0; +} + +void Special_BeginCyclingRoadChallenge(void) +{ + gBikeCyclingChallenge = TRUE; + gBikeCollisions = 0; + gBikeCyclingTimer = gMain.vblankCounter1; +} + +u16 GetPlayerAvatarBike(void) +{ + if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_ACRO_BIKE)) + return 1; + if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_MACH_BIKE)) + return 2; + return 0; +} + +static void DetermineCyclingRoadResults(u32 numFrames, u8 numBikeCollisions) +{ + u8 result; + + if (numBikeCollisions < 100) + { + ConvertIntToDecimalStringN(gStringVar1, numBikeCollisions, STR_CONV_MODE_LEFT_ALIGN, 2); + StringAppend(gStringVar1, gText_SpaceTimes); + } + else + { + StringCopy(gStringVar1, gText_99TimesPlus); + } + + if (numFrames < 3600) + { + ConvertIntToDecimalStringN(gStringVar2, numFrames / 60, STR_CONV_MODE_RIGHT_ALIGN, 2); + gStringVar2[2] = CHAR_PERIOD; + ConvertIntToDecimalStringN(&gStringVar2[3], ((numFrames % 60) * 100) / 60, STR_CONV_MODE_LEADING_ZEROS, 2); + StringAppend(gStringVar2, gText_SpaceSeconds); + } + else + { + StringCopy(gStringVar2, gText_1MinutePlus); + } + + result = 0; + if (numBikeCollisions == 0) + { + result = 5; + } + else if (numBikeCollisions < 4) + { + result = 4; + } + else if (numBikeCollisions < 10) + { + result = 3; + } + else if (numBikeCollisions < 20) + { + result = 2; + } + else if (numBikeCollisions < 100) + { + result = 1; + } + + if (numFrames / 60 <= 10) + { + result += 5; + } + else if (numFrames / 60 <= 15) + { + result += 4; + } + else if (numFrames / 60 <= 20) + { + result += 3; + } + else if (numFrames / 60 <= 40) + { + result += 2; + } + else if (numFrames / 60 < 60) + { + result += 1; + } + + + gSpecialVar_Result = result; +} + +void FinishCyclingRoadChallenge(void) { + const u32 numFrames = gMain.vblankCounter1 - gBikeCyclingTimer; + + DetermineCyclingRoadResults(numFrames, gBikeCollisions); + RecordCyclingRoadResults(numFrames, gBikeCollisions); +} + +static void RecordCyclingRoadResults(u32 numFrames, u8 numBikeCollisions) { + u16 low = VarGet(VAR_CYCLING_ROAD_RECORD_TIME_L); + u16 high = VarGet(VAR_CYCLING_ROAD_RECORD_TIME_H); + u32 framesRecord = low + (high << 16); + + if (framesRecord > numFrames || framesRecord == 0) + { + VarSet(VAR_CYCLING_ROAD_RECORD_TIME_L, numFrames); + VarSet(VAR_CYCLING_ROAD_RECORD_TIME_H, numFrames >> 16); + VarSet(VAR_CYCLING_ROAD_RECORD_COLLISIONS, numBikeCollisions); + } +} + +u16 GetRecordedCyclingRoadResults(void) { + u16 low = VarGet(VAR_CYCLING_ROAD_RECORD_TIME_L); + u16 high = VarGet(VAR_CYCLING_ROAD_RECORD_TIME_H); + u32 framesRecord = low + (high << 16); + + if (framesRecord == 0) + { + return FALSE; + } + + DetermineCyclingRoadResults(framesRecord, VarGet(VAR_CYCLING_ROAD_RECORD_COLLISIONS)); + return TRUE; +} + +void UpdateCyclingRoadState(void) { + if (gUnknown_020322DC.mapNum == MAP_NUM(ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE) && gUnknown_020322DC.mapGroup == MAP_GROUP(ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE)) + { + return; + } + + if (VarGet(VAR_CYCLING_CHALLENGE_STATE) == 2 || VarGet(VAR_CYCLING_CHALLENGE_STATE) == 3) + { + VarSet(VAR_CYCLING_CHALLENGE_STATE, 0); + Overworld_SetSavedMusic(MUS_DUMMY); + } +} + +void SetSSTidalFlag(void) +{ + FlagSet(FLAG_SYS_CRUISE_MODE); + *GetVarPointer(VAR_CRUISE_STEP_COUNT) = 0; +} + +void ResetSSTidalFlag(void) +{ + FlagClear(FLAG_SYS_CRUISE_MODE); +} + +bool32 CountSSTidalStep(u16 delta) +{ + if (!FlagGet(FLAG_SYS_CRUISE_MODE) || (*GetVarPointer(VAR_CRUISE_STEP_COUNT) += delta) <= 0xcc) + { + return FALSE; + } + return TRUE; +} + +u8 GetSSTidalLocation(s8 *mapGroup, s8 *mapNum, s16 *x, s16 *y) +{ + u16 *varCruiseStepCount = GetVarPointer(VAR_CRUISE_STEP_COUNT); + switch (*GetVarPointer(VAR_PORTHOLE_STATE)) + { + case 1: + case 8: + return 1; + case 3: + case 9: + return 4; + case 4: + case 5: + return 2; + case 6: + case 10: + return 3; + case 2: + if (*varCruiseStepCount < 60) + { + *mapNum = MAP_NUM(ROUTE134); + *x = *varCruiseStepCount + 19; + } + else if (*varCruiseStepCount < 140) + { + *mapNum = MAP_NUM(ROUTE133); + *x = *varCruiseStepCount - 60; + } + else + { + *mapNum = MAP_NUM(ROUTE132); + *x = *varCruiseStepCount - 140; + } + break; + case 7: + if (*varCruiseStepCount < 66) + { + *mapNum = MAP_NUM(ROUTE132); + *x = 65 - *varCruiseStepCount; + } + else if (*varCruiseStepCount < 146) { + *mapNum = MAP_NUM(ROUTE133); + *x = 145 - *varCruiseStepCount; + } + else + { + *mapNum = MAP_NUM(ROUTE134); + *x = 224 - *varCruiseStepCount; + } + break; + } + *mapGroup = MAP_GROUP(ROUTE132); + *y = 20; + return 0; +} + +bool32 is_tile_that_overrides_player_control(void) +{ + if (FlagGet(FLAG_0x088)) + { + switch (gMapHeader.mapType) + { + case 1: + case 2: + case 3: + case 6: + if (++(*GetVarPointer(VAR_0x40F2)) < 0xFA) + { + return FALSE; + } + break; + default: + return FALSE; + } + } + else + { + return FALSE; + } + + return TRUE; +} + +bool32 sub_8138120(void) +{ + if (FlagGet(FLAG_0x08A)) + { + switch (gMapHeader.mapType) + { + case 1: + case 2: + case 3: + case 6: + if (++(*GetVarPointer(VAR_0x40F3)) < 0xA) + { + return FALSE; + } + break; + default: + return FALSE; + } + } + else + { + return FALSE; + } + + return TRUE; +} + +bool32 sub_8138168(void) +{ + if (FlagGet(FLAG_0x072)) + { + switch (gMapHeader.mapType) + { + case 1: + case 2: + case 3: + case 6: + if (++(*GetVarPointer(VAR_0x40F5)) < 0xA) + { + return FALSE; + } + break; + default: + return FALSE; + } + } + else + { + return FALSE; + } + + return TRUE; +} + +bool32 sub_81381B0(void) +{ + if (FlagGet(FLAG_0x080)) + { + switch (gMapHeader.mapType) + { + case 1: + case 2: + case 3: + case 6: + if (++(*GetVarPointer(VAR_0x40F4)) < 0xFA) + { + return FALSE; + } + break; + default: + return FALSE; + } + } + else + { + return FALSE; + } + + return TRUE; +} + +bool32 sub_81381F8(void) +{ + if (FlagGet(FLAG_0x075)) + { + switch (gMapHeader.mapType) + { + case 1: + case 2: + case 3: + case 6: + if (++(*GetVarPointer(VAR_0x40F6)) < 0xFA) + { + return FALSE; + } + break; + default: + return FALSE; + } + } + else + { + return FALSE; + } + + return TRUE; +} + +u8 GetLinkPartnerNames(void) +{ + u8 i; + u8 j = 0; + u8 myLinkPlayerNumber = GetMultiplayerId(); + u8 nLinkPlayers = GetLinkPlayerCount(); + for (i = 0; i < nLinkPlayers; i++) + { + if (myLinkPlayerNumber != i) + { + StringCopy(gTVStringVarPtrs[j], gLinkPlayers[i].name); + j++; + } + } + return nLinkPlayers; +} + +void SpawnLinkPartnerEventObject(void) +{ + u8 j = 0; + s16 x = 0; + s16 y = 0; + u8 gUnknown_085B2B5C[] = {7, 9, 8, 10}; + s8 gUnknown_085B2B60[][2] = { + { 0, 1}, + { 1, 0}, + { 0, -1}, + {-1, 0} + }; + u8 myLinkPlayerNumber; + u8 playerFacingDirection; + u8 linkSpriteId; + u8 i; + + myLinkPlayerNumber = GetMultiplayerId(); + playerFacingDirection = GetPlayerFacingDirection(); + switch (playerFacingDirection) + { + case DIR_WEST: + j = 2; + x = gSaveBlock1Ptr->pos.x - 1; + y = gSaveBlock1Ptr->pos.y; + break; + case DIR_NORTH: + j = 1; + x = gSaveBlock1Ptr->pos.x; + y = gSaveBlock1Ptr->pos.y - 1; + break; + case DIR_EAST: + x = gSaveBlock1Ptr->pos.x + 1; + y = gSaveBlock1Ptr->pos.y; + break; + case DIR_SOUTH: + j = 3; + x = gSaveBlock1Ptr->pos.x; + y = gSaveBlock1Ptr->pos.y + 1; + } + for (i = 0; i < gSpecialVar_0x8004; i++) + { + if (myLinkPlayerNumber != i) + { + switch ((u8)gLinkPlayers[i].version) + { + case VERSION_RUBY: + case VERSION_SAPPHIRE: + if (gLinkPlayers[i].gender == 0) + linkSpriteId = EVENT_OBJ_GFX_LINK_RS_BRENDAN; + else + linkSpriteId = EVENT_OBJ_GFX_LINK_RS_MAY; + break; + case VERSION_EMERALD: + if (gLinkPlayers[i].gender == 0) + linkSpriteId = EVENT_OBJ_GFX_RIVAL_BRENDAN_NORMAL; + else + linkSpriteId = EVENT_OBJ_GFX_RIVAL_MAY_NORMAL; + break; + default: + if (gLinkPlayers[i].gender == 0) + linkSpriteId = EVENT_OBJ_GFX_RIVAL_BRENDAN_NORMAL; + else + linkSpriteId = EVENT_OBJ_GFX_RIVAL_MAY_NORMAL; + break; + } + SpawnSpecialEventObjectParameterized(linkSpriteId, gUnknown_085B2B5C[j], 0xf0 - i, gUnknown_085B2B60[j][0] + x + 7, gUnknown_085B2B60[j][1] + y + 7, 0); + LoadLinkPartnerEventObjectSpritePalette(linkSpriteId, 0xf0 - i, i); + j++; + if (j == 4) + { + j = 0; + } + } + } +} + +static void LoadLinkPartnerEventObjectSpritePalette(u8 graphicsId, u8 localEventId, u8 paletteNum) +{ + paletteNum += 6; + if (graphicsId == EVENT_OBJ_GFX_LINK_RS_BRENDAN || + graphicsId == EVENT_OBJ_GFX_LINK_RS_MAY || + graphicsId == EVENT_OBJ_GFX_RIVAL_BRENDAN_NORMAL || + graphicsId == EVENT_OBJ_GFX_RIVAL_MAY_NORMAL) + { + u8 obj = GetEventObjectIdByLocalIdAndMap(localEventId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); + if (obj != NUM_EVENT_OBJECTS) + { + u8 spriteId = gEventObjects[obj].spriteId; + struct Sprite *sprite = &gSprites[spriteId]; + sprite->oam.paletteNum = paletteNum; + + switch (graphicsId) + { + case EVENT_OBJ_GFX_LINK_RS_BRENDAN: + LoadPalette(gEventObjectPalette33, 0x100 + paletteNum * 16, 0x20); + break; + case EVENT_OBJ_GFX_LINK_RS_MAY: + LoadPalette(gEventObjectPalette34, 0x100 + paletteNum * 16, 0x20); + break; + case EVENT_OBJ_GFX_RIVAL_BRENDAN_NORMAL: + LoadPalette(gEventObjectPalette8, 0x100 + paletteNum * 16, 0x20); + break; + case EVENT_OBJ_GFX_RIVAL_MAY_NORMAL: + LoadPalette(gEventObjectPalette17, 0x100 + paletteNum * 16, 0x20); + break; + } + } + } +} + +static const struct UCoords8 gUnknown_085B2B68[] = { + { 7, 22}, + {11, 19}, + {10, 16}, + {15, 16} +}; + +void MauvilleGymSpecial1(void) +{ + u8 i; + for (i = 0; i < ARRAY_COUNT(gUnknown_085B2B68); i++) + { + if (i == gSpecialVar_0x8004) + { + MapGridSetMetatileIdAt(gUnknown_085B2B68[i].x, gUnknown_085B2B68[i].y, 0x206); + } + else + { + MapGridSetMetatileIdAt(gUnknown_085B2B68[i].x, gUnknown_085B2B68[i].y, 0x205); + } + } +} + +void MauvilleGymSpecial2(void) +{ + int x, y; + for (y = 12; y < 24; y++) + { + for (x = 7; x < 16; x++) + { + switch (MapGridGetMetatileIdAt(x, y)) + { + case 0x220: + MapGridSetMetatileIdAt(x, y, 0x230); + break; + case 0x221: + MapGridSetMetatileIdAt(x, y, 0x231); + break; + case 0x228: + MapGridSetMetatileIdAt(x, y, 0x238); + break; + case 0x229: + MapGridSetMetatileIdAt(x, y, 0x239); + break; + case 0x230: + MapGridSetMetatileIdAt(x, y, 0x220); + break; + case 0x231: + MapGridSetMetatileIdAt(x, y, 0x221); + break; + case 0x238: + MapGridSetMetatileIdAt(x, y, 0xe28); + break; + case 0x239: + MapGridSetMetatileIdAt(x, y, 0xe29); + break; + case 0x222: + MapGridSetMetatileIdAt(x, y, 0x232); + break; + case 0x223: + MapGridSetMetatileIdAt(x, y, 0x233); + break; + case 0x22a: + MapGridSetMetatileIdAt(x, y, 0x23a); + break; + case 0x22b: + MapGridSetMetatileIdAt(x, y, 0x23b); + break; + case 0x232: + MapGridSetMetatileIdAt(x, y, 0x222); + break; + case 0x233: + MapGridSetMetatileIdAt(x, y, 0x223); + break; + case 0x23a: + MapGridSetMetatileIdAt(x, y, 0xe2a); + break; + case 0x23b: + MapGridSetMetatileIdAt(x, y, 0xe2b); + break; + case 0x240: + MapGridSetMetatileIdAt(x, y, 0xe42); + break; + case 0x248: + MapGridSetMetatileIdAt(x, y, 0x21a); + break; + case 0x241: + MapGridSetMetatileIdAt(x, y, 0xe43); + break; + case 0x249: + MapGridSetMetatileIdAt(x, y, 0x21a); + break; + case 0x242: + MapGridSetMetatileIdAt(x, y, 0xe40); + break; + case 0x21a: + if (MapGridGetMetatileIdAt(x, y - 1) == 0x240) + { + MapGridSetMetatileIdAt(x, y, 0xe48); + } + else + { + MapGridSetMetatileIdAt(x, y, 0xe49); + } + break; + case 0x243: + MapGridSetMetatileIdAt(x, y, 0xe41); + break; + case 0x251: + MapGridSetMetatileIdAt(x, y, 0xe50); + break; + case 0x250: + MapGridSetMetatileIdAt(x, y, 0x251); + break; + } + } + } +} + +void MauvilleGymSpecial3(void) +{ + int i, x, y; + const struct UCoords8 *switchCoords = gUnknown_085B2B68; + for (i = ARRAY_COUNT(gUnknown_085B2B68) - 1; i >= 0; i--) + { + MapGridSetMetatileIdAt(switchCoords->x, switchCoords->y, 0x206); + switchCoords++; + } + for (y = 12; y < 24; y++) + { + for (x = 7; x < 16; x++) + { + switch (MapGridGetMetatileIdAt(x, y)) + { + case 0x220: + MapGridSetMetatileIdAt(x, y, 0x230); + break; + case 0x221: + MapGridSetMetatileIdAt(x, y, 0x231); + break; + case 0x228: + MapGridSetMetatileIdAt(x, y, 0x238); + break; + case 0x229: + MapGridSetMetatileIdAt(x, y, 0x239); + break; + case 0x222: + MapGridSetMetatileIdAt(x, y, 0x232); + break; + case 0x223: + MapGridSetMetatileIdAt(x, y, 0x233); + break; + case 0x22a: + MapGridSetMetatileIdAt(x, y, 0x23a); + break; + case 0x22b: + MapGridSetMetatileIdAt(x, y, 0x23b); + break; + case 0x240: + MapGridSetMetatileIdAt(x, y, 0xe42); + break; + case 0x241: + MapGridSetMetatileIdAt(x, y, 0xe43); + break; + case 0x248: + case 0x249: + MapGridSetMetatileIdAt(x, y, 0x21a); + break; + case 0x250: + MapGridSetMetatileIdAt(x, y, 0x251); + break; + } + } + } +} + +static const u8 gUnknown_085B2B78[] = {0, 1, 1, 1, 1}; +static const u16 gUnknown_085B2B7E[] = {0x218, 0x219, 0x21a, 0x21b, 0x21c}; + +void PetalburgGymSpecial1(void) +{ + gUnknown_0203AB5C = 0; + gUnknown_0203AB5D = 0; + PlaySE(SE_KI_GASYAN); + CreateTask(Task_PetalburgGym, 8); +} + +static void Task_PetalburgGym(u8 taskId) +{ + if (gUnknown_085B2B78[gUnknown_0203AB5D] == gUnknown_0203AB5C) + { + PetalburgGymFunc(gSpecialVar_0x8004, gUnknown_085B2B7E[gUnknown_0203AB5D]); + gUnknown_0203AB5C = 0; + if ((++gUnknown_0203AB5D) == 5) + { + DestroyTask(taskId); + EnableBothScriptContexts(); + } + } + else + { + gUnknown_0203AB5C++; + } +} + +static void PetalburgGymFunc(u8 a0, u16 a1) +{ + u16 x[4]; + u16 y[4]; + u8 i; + u8 nDoors = 0; + switch (a0) + { + case 1: + nDoors = 2; + x[0] = 1; + x[1] = 7; + y[0] = 0x68; + y[1] = 0x68; + break; + case 2: + nDoors = 2; + x[0] = 1; + x[1] = 7; + y[0] = 0x4e; + y[1] = 0x4e; + break; + case 3: + nDoors = 2; + x[0] = 1; + x[1] = 7; + y[0] = 0x5b; + y[1] = 0x5b; + break; + case 4: + nDoors = 1; + x[0] = 7; + y[0] = 0x27; + break; + case 5: + nDoors = 2; + x[0] = 1; + x[1] = 7; + y[0] = 0x34; + y[1] = 0x34; + break; + case 6: + nDoors = 1; + x[0] = 1; + y[0] = 0x41; + break; + case 7: + nDoors = 1; + x[0] = 7; + y[0] = 0xd; + break; + case 8: + nDoors = 1; + x[0] = 1; + y[0] = 0x1a; + break; + } + for (i = 0; i < nDoors; i++) + { + MapGridSetMetatileIdAt(x[i] + 7, y[i] + 7, a1 | 0xc00); + MapGridSetMetatileIdAt(x[i] + 7, y[i] + 8, (a1 + 8) | 0xc00); + } + DrawWholeMapView(); +} + +void PetalburgGymSpecial2(void) +{ + PetalburgGymFunc(gSpecialVar_0x8004, gUnknown_085B2B7E[4]); +} + +void ShowFieldMessageStringVar4(void) +{ + ShowFieldMessage(gStringVar4); +} + +void StorePlayerCoordsInVars(void) +{ + gSpecialVar_0x8004 = gSaveBlock1Ptr->pos.x; + gSpecialVar_0x8005 = gSaveBlock1Ptr->pos.y; +} + +u8 GetPlayerTrainerIdOnesDigit(void) +{ + return (u16)((gSaveBlock2Ptr->playerTrainerId[1] << 8) | gSaveBlock2Ptr->playerTrainerId[0]) % 10; +} + +void GetPlayerBigGuyGirlString(void) +{ + if (gSaveBlock2Ptr->playerGender == MALE) + { + StringCopy(gStringVar1, gText_BigGuy); + } + else + { + StringCopy(gStringVar1, gText_BigGirl); + } +} + +void GetRivalSonDaughterString(void) +{ + if (gSaveBlock2Ptr->playerGender == MALE) + { + StringCopy(gStringVar1, gText_Daughter); + } + else + { + StringCopy(gStringVar1, gText_Son); + } +} + +u8 GetBattleOutcome(void) +{ + return gBattleOutcome; +} + +void CableCarWarp(void) +{ + if (gSpecialVar_0x8004 != 0) + { + Overworld_SetWarpDestination(MAP_GROUP(ROUTE112_CABLE_CAR_STATION), MAP_NUM(ROUTE112_CABLE_CAR_STATION), -1, 6, 4); + } + else + { + Overworld_SetWarpDestination(MAP_GROUP(MT_CHIMNEY_CABLE_CAR_STATION), MAP_NUM(MT_CHIMNEY_CABLE_CAR_STATION), -1, 6, 4); + } +} + +void SetFlagInVar(void) +{ + FlagSet(gSpecialVar_0x8004); +} + +u16 GetWeekCount(void) +{ + u16 weekCount = gLocalTime.days / 7; + if (weekCount > 9999) + { + weekCount = 9999; + } + return weekCount; +} + +u8 GetLeadMonFriendshipScore(void) +{ + struct Pokemon *pokemon = &gPlayerParty[GetLeadMonIndex()]; + if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) == 255) + { + return 6; + } + if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 200) + { + return 5; + } + if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 150) + { + return 4; + } + if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 100) + { + return 3; + } + if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 50) + { + return 2; + } + if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 1) + { + return 1; + } + return 0; +} + +static void CB2_FieldShowRegionMap(void) +{ + FieldInitRegionMap(CB2_ReturnToFieldContinueScriptPlayMapMusic); +} + +void FieldShowRegionMap(void) +{ + SetMainCallback2(CB2_FieldShowRegionMap); +} + +void DoPCTurnOnEffect(void) +{ + if (FuncIsActiveTask(Task_PCTurnOnEffect) != TRUE) + { + u8 taskId = CreateTask(Task_PCTurnOnEffect, 8); + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[1] = taskId; + gTasks[taskId].data[2] = 0; + gTasks[taskId].data[3] = 0; + gTasks[taskId].data[4] = 0; + } +} + +static void Task_PCTurnOnEffect(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + if (task->data[0] == 0) + { + PCTurnOnEffect_0(task); + } +} + +static void PCTurnOnEffect_0(struct Task *task) +{ + u8 playerDirection; + s8 dx = 0; + s8 dy = 0; + if (task->data[3] == 6) + { + task->data[3] = 0; + playerDirection = GetPlayerFacingDirection(); + switch (playerDirection) + { + case DIR_NORTH: + dx = 0; + dy = -1; + break; + case DIR_WEST: + dx = -1; + dy = -1; + break; + case DIR_EAST: + dx = 1; + dy = -1; + break; + } + PCTurnOnEffect_1(task->data[4], dx, dy); + DrawWholeMapView(); + task->data[4] ^= 1; + if ((++task->data[2]) == 5) + { + DestroyTask(task->data[1]); + } + } + task->data[3]++; +} + +static void PCTurnOnEffect_1(s16 flag, s8 dx, s8 dy) +{ + u16 tileId = 0; + if (flag != 0) + { + if (gSpecialVar_0x8004 == 0) + { + tileId = 0x4; + } + else if (gSpecialVar_0x8004 == 1) + { + tileId = 0x25a; + } + else if (gSpecialVar_0x8004 == 2) + { + tileId = 0x259; + } + } + else + { + if (gSpecialVar_0x8004 == 0) + { + tileId = 0x5; + } + else if (gSpecialVar_0x8004 == 1) + { + tileId = 0x27f; + } + else if (gSpecialVar_0x8004 == 2) + { + tileId = 0x27e; + } + } + MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + dx + 7, gSaveBlock1Ptr->pos.y + dy + 7, tileId | 0xc00); +} + +void DoPCTurnOffEffect(void) +{ + PCTurnOffEffect(); +} + +static void PCTurnOffEffect(void) +{ + s8 dx = 0; + s8 dy = 0; + u16 tileId = 0; + u8 playerDirection = GetPlayerFacingDirection(); + switch (playerDirection) + { + case DIR_NORTH: + dx = 0; + dy = -1; + break; + case DIR_WEST: + dx = -1; + dy = -1; + break; + case DIR_EAST: + dx = 1; + dy = -1; + break; + } + if (gSpecialVar_0x8004 == 0) + { + tileId = 0x4; + } + else if (gSpecialVar_0x8004 == 1) + { + tileId = 0x25a; + } + else if (gSpecialVar_0x8004 == 2) + { + tileId = 0x259; + } + MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + dx + 7, gSaveBlock1Ptr->pos.y + dy + 7, tileId | 0xc00); + DrawWholeMapView(); +} + +void DoLotteryCornerComputerEffect(void) +{ + if (FuncIsActiveTask(Task_LotteryCornerComputerEffect) != TRUE) + { + u8 taskId = CreateTask(Task_LotteryCornerComputerEffect, 8); + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[1] = taskId; + gTasks[taskId].data[2] = 0; + gTasks[taskId].data[3] = 0; + gTasks[taskId].data[4] = 0; + } +} + +static void Task_LotteryCornerComputerEffect(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + if (task->data[0] == 0) + { + LotteryCornerComputerEffect(task); + } +} + +static void LotteryCornerComputerEffect(struct Task *task) +{ + if (task->data[3] == 6) + { + task->data[3] = 0; + if (task->data[4] != 0) + { + MapGridSetMetatileIdAt(18, 8, 0xe9d); + MapGridSetMetatileIdAt(18, 9, 0xea5); + } + else + { + MapGridSetMetatileIdAt(18, 8, 0xe58); + MapGridSetMetatileIdAt(18, 9, 0xe60); + } + DrawWholeMapView(); + task->data[4] ^= 1; + if ((++task->data[2]) == 5) + { + DestroyTask(task->data[1]); + } + } + task->data[3]++; +} + +void EndLotteryCornerComputerEffect(void) +{ + MapGridSetMetatileIdAt(18, 8, 0xe9d); + MapGridSetMetatileIdAt(18, 9, 0xea5); + DrawWholeMapView(); +} + +void SetTrickHouseEndRoomFlag(void) +{ + u16 *specVar = &gSpecialVar_0x8004; + u16 flag = FLAG_0x1F5; + *specVar = flag; + FlagSet(flag); +} + +void ResetTrickHouseEndRoomFlag(void) +{ + u16 *specVar = &gSpecialVar_0x8004; + u16 flag = FLAG_0x1F5; + *specVar = flag; + FlagClear(flag); +} + +bool8 CheckLeadMonCool(void) +{ + if (GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_COOL) < 200) + { + return FALSE; + } + return TRUE; +} + +bool8 CheckLeadMonBeauty(void) +{ + if (GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_BEAUTY) < 200) + { + return FALSE; + } + return TRUE; +} + +bool8 CheckLeadMonCute(void) +{ + if (GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_CUTE) < 200) + { + return FALSE; + } + return TRUE; +} + +bool8 CheckLeadMonSmart(void) +{ + if (GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SMART) < 200) + { + return FALSE; + } + return TRUE; +} + +bool8 CheckLeadMonTough(void) +{ + if (GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_TOUGH) < 200) + { + return FALSE; + } + return TRUE; +} + +void IsGrassTypeInParty(void) +{ + u8 i; + u16 species; + struct Pokemon *pokemon; + for (i = 0; i < PARTY_SIZE; i++) + { + pokemon = &gPlayerParty[i]; + if (GetMonData(pokemon, MON_DATA_SANITY_BIT2) && !GetMonData(pokemon, MON_DATA_IS_EGG)) + { + species = GetMonData(pokemon, MON_DATA_SPECIES); + if (gBaseStats[species].type1 == TYPE_GRASS || gBaseStats[species].type2 == TYPE_GRASS) + { + gSpecialVar_Result = TRUE; + return; + } + } + } + gSpecialVar_Result = FALSE; +} + +void SpawnScriptEventObject(void) +{ + u8 obj = SpawnSpecialEventObjectParameterized(EVENT_OBJ_GFX_BOY_1, 8, 0x7F, gSaveBlock1Ptr->pos.x + 7, gSaveBlock1Ptr->pos.y + 7, 3); + gEventObjects[obj].invisible = TRUE; + CameraObjectSetFollowedObjectId(gEventObjects[obj].spriteId); +} + +void RemoveScriptEventObject(void) +{ + CameraObjectSetFollowedObjectId(GetPlayerAvatarObjectId()); + RemoveEventObjectByLocalIdAndMap(0x7F, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); +} + +u8 GetPokeblockNameByMonNature(void) +{ + return CopyMonFavoritePokeblockName(GetNature(&gPlayerParty[GetLeadMonIndex()]), gStringVar1); +} + +void GetSecretBaseNearbyMapName(void) +{ + GetMapName(gStringVar1, VarGet(VAR_SECRET_BASE_MAP), 0); +} + +u16 GetBestBattleTowerStreak(void) +{ + return GetGameStat(GAME_STAT_BATTLE_TOWER_BEST_STREAK); +} + +void BufferEReaderTrainerName(void) +{ + GetEreaderTrainerName(gStringVar1); +} + +u16 GetSlotMachineId(void) +{ + static const u8 gUnknown_085B2B88[] = {12, 2, 4, 5, 1, 8, 7, 11, 3, 10, 9, 6}; + static const u8 gUnknown_085B2B94[] = {0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5}; + static const u8 gUnknown_085B2BA0[] = {3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5}; + + u32 v0 = gSaveBlock1Ptr->easyChatPairs[0].unk0_0 + gSaveBlock1Ptr->easyChatPairs[0].unk2 + gUnknown_085B2B88[gSpecialVar_0x8004]; + if (GetPriceReduction(2)) + { + return gUnknown_085B2BA0[v0 % 12]; + } + return gUnknown_085B2B94[v0 % 12]; +} + +bool8 FoundAbandonedShipRoom1Key(void) +{ + u16 *specVar = &gSpecialVar_0x8004; + u16 flag = FLAG_HIDDEN_ITEM_1F; + *specVar = flag; + if (!FlagGet(flag)) + { + return FALSE; + } + return TRUE; +} + +bool8 FoundAbandonedShipRoom2Key(void) +{ + u16 *specVar = &gSpecialVar_0x8004; + u16 flag = FLAG_HIDDEN_ITEM_20; + *specVar = flag; + if (!FlagGet(flag)) + { + return FALSE; + } + return TRUE; +} + +bool8 FoundAbandonedShipRoom4Key(void) +{ + u16 *specVar = &gSpecialVar_0x8004; + u16 flag = FLAG_HIDDEN_ITEM_21; + *specVar = flag; + if (!FlagGet(flag)) + { + return FALSE; + } + return TRUE; +} + +bool8 FoundAbandonedShipRoom6Key(void) +{ + u16 *specVar = &gSpecialVar_0x8004; + u16 flag = FLAG_HIDDEN_ITEM_22; + *specVar = flag; + if (!FlagGet(flag)) + { + return FALSE; + } + return TRUE; +} + +bool8 LeadMonHasEffortRibbon(void) +{ + return GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_EFFORT_RIBBON, NULL); +} + +void GiveLeadMonEffortRibbon(void) +{ + bool8 ribbonSet; + struct Pokemon *leadMon; + IncrementGameStat(GAME_STAT_RECEIVED_RIBBONS); + FlagSet(FLAG_SYS_RIBBON_GET); + ribbonSet = TRUE; + leadMon = &gPlayerParty[GetLeadMonIndex()]; + SetMonData(leadMon, MON_DATA_EFFORT_RIBBON, &ribbonSet); + if (GetRibbonCount(leadMon) > 4) + { + sub_80EE4DC(leadMon, 0x47); + } +} + +bool8 Special_AreLeadMonEVsMaxedOut(void) +{ + if (GetMonEVCount(&gPlayerParty[GetLeadMonIndex()]) >= 510) + { + return TRUE; + } + return FALSE; +} + +u8 TryUpdateRusturfTunnelState(void) +{ + if (!FlagGet(FLAG_RUSTURF_TUNNEL_OPENED) && gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(RUSTURF_TUNNEL) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(RUSTURF_TUNNEL)) + { + if (FlagGet(FLAG_HIDE_RUSTURF_TUNNEL_ROCK_1)) + { + VarSet(VAR_RUSTURF_TUNNEL_STATE, 4); + return TRUE; + } + else if (FlagGet(FLAG_HIDE_RUSTURF_TUNNEL_ROCK_2)) + { + VarSet(VAR_RUSTURF_TUNNEL_STATE, 5); + return TRUE; + } + } + return FALSE; +} + +void SetShoalItemFlag(u16 v0) +{ + FlagSet(FLAG_SYS_SHOAL_ITEM); +} + +void PutZigzagoonInPlayerParty(void) +{ + u16 monData; + CreateMon(&gPlayerParty[0], SPECIES_ZIGZAGOON, 7, 0x20, FALSE, 0, FALSE, 0); + monData = TRUE; + SetMonData(&gPlayerParty[0], MON_DATA_ALT_ABILITY, &monData); + monData = MOVE_TACKLE; + SetMonData(&gPlayerParty[0], MON_DATA_MOVE1, &monData); + monData = MOVE_NONE; + SetMonData(&gPlayerParty[0], MON_DATA_MOVE2, &monData); + SetMonData(&gPlayerParty[0], MON_DATA_MOVE3, &monData); + SetMonData(&gPlayerParty[0], MON_DATA_MOVE4, &monData); +} + +bool8 IsStarterInParty(void) +{ + u8 i; + u16 starter = GetStarterPokemon(VarGet(VAR_STARTER_MON)); + u8 partyCount = CalculatePlayerPartyCount(); + for (i = 0; i < partyCount; i++) + { + if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2, NULL) == starter) + { + return TRUE; + } + } + return FALSE; +} + +bool8 ScriptCheckFreePokemonStorageSpace(void) +{ + return CheckFreePokemonStorageSpace(); +} + +bool8 IsPokerusInParty(void) +{ + if (!CheckPartyPokerus(gPlayerParty, 0x3f)) + { + return FALSE; + } + return TRUE; +} + +void sub_8139560(void) +{ + u8 taskId = CreateTask(sub_81395BC, 9); + gTasks[taskId].data[0] = gSpecialVar_0x8005; + gTasks[taskId].data[1] = 0; + gTasks[taskId].data[2] = gSpecialVar_0x8006; + gTasks[taskId].data[3] = gSpecialVar_0x8007; + gTasks[taskId].data[4] = gSpecialVar_0x8004; + SetCameraPanningCallback(NULL); + PlaySE(SE_W070); +} + +static void sub_81395BC(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + + data[1]++; + if (data[1] % data[3] == 0) + { + data[1] = 0; + data[2]--; + data[0] = -data[0]; + data[4] = -data[4]; + SetCameraPanning(data[0], data[4]); + if (data[2] == 0) + { + sub_8139620(taskId); + InstallCameraPanAheadCallback(); + } + } +} + +static void sub_8139620(u8 taskId) +{ + DestroyTask(taskId); + EnableBothScriptContexts(); +} + +bool8 FoundBlackGlasses(void) +{ + return FlagGet(FLAG_HIDDEN_ITEM_BLACK_GLASSES); +} + +void SetRoute119Weather(void) +{ + if (is_map_type_1_2_3_5_or_6(get_map_light_from_warp0()) != TRUE) + { + SetSav1Weather(20); + } +} + +void SetRoute123Weather(void) +{ + if (is_map_type_1_2_3_5_or_6(get_map_light_from_warp0()) != TRUE) + { + SetSav1Weather(21); + } +} + +u8 GetLeadMonIndex(void) +{ + u8 i; + u8 partyCount = CalculatePlayerPartyCount(); + for (i = 0; i < partyCount; i++) + { + if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2, NULL) != SPECIES_EGG && GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2, NULL) != 0) + { + return i; + } + } + return 0; +} + +u16 ScriptGetPartyMonSpecies(void) +{ + return GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPECIES2, NULL); +} + +void nullsub_54(void) +{ + +} + +u16 GetDaysUntilPacifidlogTMAvailable(void) +{ + u16 tmReceivedDay = VarGet(VAR_PACIFIDLOG_TM_RECEIVED_DAY); + if (gLocalTime.days - tmReceivedDay >= 7) + { + return 0; + } + else if (gLocalTime.days < 0) + { + return 8; + } + return 7 - (gLocalTime.days - tmReceivedDay); +} + +u16 SetPacifidlogTMReceivedDay(void) +{ + VarSet(VAR_PACIFIDLOG_TM_RECEIVED_DAY, gLocalTime.days); + return gLocalTime.days; +} + +bool8 MonOTNameMatchesPlayer(void) +{ + if (GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_LANGUAGE) != GAME_LANGUAGE) + { + return TRUE; // huh? + } + + GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_OT_NAME, gStringVar1); + if (!StringCompare(gSaveBlock2Ptr->playerName, gStringVar1)) + { + return FALSE; + } + return TRUE; +} + +void BufferLottoTicketNumber(void) +{ + if (gSpecialVar_Result >= 10000) + { + TV_PrintIntToStringVar(0, gSpecialVar_Result); + } + else if (gSpecialVar_Result >= 1000) + { + gStringVar1[0] = CHAR_0; + ConvertIntToDecimalStringN(gStringVar1 + 1, gSpecialVar_Result, 0, CountDigits(gSpecialVar_Result)); + } + else if (gSpecialVar_Result >= 100) + { + gStringVar1[0] = CHAR_0; + gStringVar1[1] = CHAR_0; + ConvertIntToDecimalStringN(gStringVar1 + 2, gSpecialVar_Result, 0, CountDigits(gSpecialVar_Result)); + } + else if (gSpecialVar_Result >= 10) + { + gStringVar1[0] = CHAR_0; + gStringVar1[1] = CHAR_0; + gStringVar1[2] = CHAR_0; + ConvertIntToDecimalStringN(gStringVar1 + 3, gSpecialVar_Result, 0, CountDigits(gSpecialVar_Result)); + } + else + { + gStringVar1[0] = CHAR_0; + gStringVar1[1] = CHAR_0; + gStringVar1[2] = CHAR_0; + gStringVar1[3] = CHAR_0; + ConvertIntToDecimalStringN(gStringVar1 + 4, gSpecialVar_Result, 0, CountDigits(gSpecialVar_Result)); + } +} + +u16 sub_813986C(void) +{ + switch (gSpecialVar_Result) + { + case 0: + return mevent_081445C0(3); + case 1: + return mevent_081445C0(4); + case 2: + return mevent_081445C0(0); + case 3: + return mevent_081445C0(1); + case 4: + return mevent_081445C0(2); + default: + return 0; + } +} + +bool8 sub_81398C0(void) +{ + if (gSpecialVar_0x8004 >= ITEM_TM01 && gSpecialVar_0x8004 <= ITEM_HM08) + { + StringCopy(gStringVar2, gMoveNames[ItemIdToBattleMoveId(gSpecialVar_0x8004)]); + return TRUE; + } + + return FALSE; +} + +bool8 sub_813990C(void) +{ + u8 partyCount = CalculatePlayerPartyCount(); + u8 i; + + for (i = 0; i < partyCount; i++) + { + if (GetMonData(&gPlayerParty[i], MON_DATA_SANITY_BIT1) == 1) + return TRUE; + } + + return FALSE; +} + +bool8 InMultiBattleRoom(void) +{ + if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM) + && gSaveBlock1Ptr->location.mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM) && + VarGet(VAR_0x40CE) == 2) + return TRUE; + return FALSE; +} + +void sub_8139980(void) +{ + SetCameraPanningCallback(NULL); + SetCameraPanning(8, 0); +} + +const struct WindowTemplate gUnknown_085B2BAC = { + .priority = 0, + .tilemapLeft = 21, + .tilemapTop = 1, + .width = 8, + .height = 4, + .paletteNum = 15, + .baseBlock = 8, +}; + +const u8 *const gElevatorFloorsTable[] = { + gText_B4F, + gText_B3F, + gText_B2F, + gText_B1F, + gText_1F, + gText_2F, + gText_3F, + gText_4F, + gText_5F, + gText_6F, + gText_7F, + gText_8F, + gText_9F, + gText_10F, + gText_11F, + gText_Rooftop +}; + +const u16 gUnknown_085B2BF4[] = { 0x0329, 0x032a, 0x032b, 0x0331, 0x0332, 0x0333, 0x0339, 0x033a, 0x033b }; +const u16 gUnknown_085B2C06[] = { 0x0329, 0x032b, 0x032a, 0x0331, 0x0333, 0x0332, 0x0339, 0x033b, 0x033a }; + +void SetDepartmentStoreFloorVar(void) +{ + u8 deptStoreFloor; + switch (gSaveBlock1Ptr->warp2.mapNum) + { + case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_1F): + deptStoreFloor = 4; + break; + case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_2F): + deptStoreFloor = 5; + break; + case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_3F): + deptStoreFloor = 6; + break; + case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_4F): + deptStoreFloor = 7; + break; + case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_5F): + deptStoreFloor = 8; + break; + case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP): + deptStoreFloor = 15; + break; + default: + deptStoreFloor = 4; + break; + } + VarSet(VAR_DEPT_STORE_FLOOR, deptStoreFloor); +} + +u16 sub_81399F4(void) +{ + gUnknown_0203AB60 = 0; + gUnknown_0203AB62 = 0; + + if (gSaveBlock1Ptr->warp2.mapGroup == 13) + { + switch (gSaveBlock1Ptr->warp2.mapNum) + { + case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_5F): + gUnknown_0203AB60 = 0; + gUnknown_0203AB62 = 0; + break; + case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_4F): + gUnknown_0203AB60 = 0; + gUnknown_0203AB62 = 1; + break; + case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_3F): + gUnknown_0203AB60 = 0; + gUnknown_0203AB62 = 2; + break; + case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_2F): + gUnknown_0203AB60 = 0; + gUnknown_0203AB62 = 3; + break; + case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_1F): + gUnknown_0203AB60 = 0; + gUnknown_0203AB62 = 4; + break; + } + } + + return gUnknown_0203AB62; +} + +void ShakeScreenInElevator(void) +{ + static const u8 gUnknown_085B2C18[] = { 0x08, 0x10, 0x18, 0x20, 0x26, 0x2e, 0x34, 0x38, 0x39 }; + + s16 *data = gTasks[CreateTask(sub_8139AF4, 9)].data; + u16 floorDelta; + + data[1] = 0; + data[2] = 0; + data[4] = 1; + + if (gSpecialVar_0x8005 > gSpecialVar_0x8006) + { + floorDelta = gSpecialVar_0x8005 - gSpecialVar_0x8006; + data[6] = 1; + } + else + { + floorDelta = gSpecialVar_0x8006 - gSpecialVar_0x8005; + data[6] = 0; + } + + if (floorDelta > 8) + floorDelta = 8; + + data[5] = gUnknown_085B2C18[floorDelta]; + + SetCameraPanningCallback(NULL); + sub_8139C2C(floorDelta, data[6]); + PlaySE(SE_ELEBETA); +} + +static void sub_8139AF4(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + data[1]++; + if (data[1] % 3 == 0) + { + data[1] = 0; + data[2]++; + data[4] = -data[4]; + SetCameraPanning(0, data[4]); + if (data[2] == data[5]) + { + PlaySE(SE_PINPON); + DestroyTask(taskId); + EnableBothScriptContexts(); + InstallCameraPanAheadCallback(); + } + } +} + +void sub_8139B60(void) +{ + int xPos; + + gUnknown_0203AB5E = AddWindow(&gUnknown_085B2BAC); + SetStandardWindowBorderStyle(gUnknown_0203AB5E, 0); + + xPos = GetStringCenterAlignXOffset(1, gText_ElevatorNowOn, 64); + PrintTextOnWindow(gUnknown_0203AB5E, 1, gText_ElevatorNowOn, xPos, 1, TEXT_SPEED_FF, NULL); + + xPos = GetStringCenterAlignXOffset(1, gElevatorFloorsTable[gSpecialVar_0x8005], 64); + PrintTextOnWindow(gUnknown_0203AB5E, 1, gElevatorFloorsTable[gSpecialVar_0x8005], xPos, 17, TEXT_SPEED_FF, NULL); + + PutWindowTilemap(gUnknown_0203AB5E); + CopyWindowToVram(gUnknown_0203AB5E, 3); +} + +void sub_8139C10(void) +{ + sub_8198070(gUnknown_0203AB5E, TRUE); + RemoveWindow(gUnknown_0203AB5E); +} + +static void sub_8139C2C(u16 a1, u8 a2) +{ + static const u8 gUnknown_085B2C21[] = { 0x03, 0x06, 0x09, 0x0c, 0x0f, 0x12, 0x15, 0x18, 0x1b }; + + if (FuncIsActiveTask(sub_8139C80) != TRUE) + { + u8 taskId = CreateTask(sub_8139C80, 8); + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[1] = 0; + gTasks[taskId].data[2] = a2; + gTasks[taskId].data[3] = gUnknown_085B2C21[a1]; + } +} + +// Annoyingly close but compiler wants to add all the parts of the index into the arrays +// first and then shift by one, whereas we need each individual part to shift and then be added. +#ifdef NONMATCHING +static void sub_8139C80(u8 taskId) +{ + u8 x, y; + s16 *data = gTasks[taskId].data; + + if (data[1] == 6) + { + data[0]++; + if (data[2] == 0) + { + for (y = 0; y < 3; y++) + { + for (x = 0; x < 3; x++) + { + MapGridSetMetatileIdAt(x + 8, y + 7, gUnknown_085B2BF4[y * 3 + data[0] % 3] | 0xC00); + } + } + } + else + { + for (y = 0; y < 3; y++) + { + for (x = 0; x < 3; x++) + { + MapGridSetMetatileIdAt(x + 8, y + 7, gUnknown_085B2C06[y * 3 + data[0] % 3] | 0xC00); + } + } + } + DrawWholeMapView(); + data[1] = 0; + if (data[0] == data[3]) + { + DestroyTask(taskId); + } + } + data[1]++; +} +#else +NAKED +static void sub_8139C80(u8 taskId) +{ + asm_unified("push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x4\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + str r0, [sp]\n\ + lsls r0, 2\n\ + ldr r1, [sp]\n\ + adds r0, r1\n\ + lsls r0, 3\n\ + ldr r1, =gTasks + 0x8\n\ + adds r6, r0, r1\n\ + movs r2, 0x2\n\ + ldrsh r0, [r6, r2]\n\ + cmp r0, 0x6\n\ + bne _08139D7C\n\ + ldrh r0, [r6]\n\ + adds r0, 0x1\n\ + strh r0, [r6]\n\ + movs r1, 0x4\n\ + ldrsh r0, [r6, r1]\n\ + cmp r0, 0\n\ + bne _08139D10\n\ + movs r1, 0\n\ + ldr r2, =gUnknown_085B2BF4\n\ + mov r10, r2\n\ +_08139CBA:\n\ + movs r5, 0\n\ + adds r7, r1, 0x7\n\ + lsls r0, r1, 1\n\ + adds r2, r1, 0x1\n\ + mov r8, r2\n\ + adds r0, r1\n\ + lsls r0, 1\n\ + mov r9, r0\n\ +_08139CCA:\n\ + adds r4, r5, 0\n\ + adds r4, 0x8\n\ + movs r1, 0\n\ + ldrsh r0, [r6, r1]\n\ + movs r1, 0x3\n\ + bl __modsi3\n\ + lsls r0, 16\n\ + asrs r0, 15\n\ + add r0, r9\n\ + add r0, r10\n\ + ldrh r0, [r0]\n\ + movs r1, 0xC0\n\ + lsls r1, 4\n\ + adds r2, r1, 0\n\ + orrs r2, r0\n\ + adds r0, r4, 0\n\ + adds r1, r7, 0\n\ + bl MapGridSetMetatileIdAt\n\ + adds r0, r5, 0x1\n\ + lsls r0, 24\n\ + lsrs r5, r0, 24\n\ + cmp r5, 0x2\n\ + bls _08139CCA\n\ + mov r2, r8\n\ + lsls r0, r2, 24\n\ + lsrs r1, r0, 24\n\ + cmp r1, 0x2\n\ + bls _08139CBA\n\ + b _08139D62\n\ + .pool\n\ +_08139D10:\n\ + movs r1, 0\n\ + ldr r0, =gUnknown_085B2C06\n\ + mov r10, r0\n\ +_08139D16:\n\ + movs r5, 0\n\ + adds r7, r1, 0x7\n\ + lsls r0, r1, 1\n\ + adds r2, r1, 0x1\n\ + mov r8, r2\n\ + adds r0, r1\n\ + lsls r0, 1\n\ + mov r9, r0\n\ +_08139D26:\n\ + adds r4, r5, 0\n\ + adds r4, 0x8\n\ + movs r1, 0\n\ + ldrsh r0, [r6, r1]\n\ + movs r1, 0x3\n\ + bl __modsi3\n\ + lsls r0, 16\n\ + asrs r0, 15\n\ + add r0, r9\n\ + add r0, r10\n\ + ldrh r0, [r0]\n\ + movs r1, 0xC0\n\ + lsls r1, 4\n\ + adds r2, r1, 0\n\ + orrs r2, r0\n\ + adds r0, r4, 0\n\ + adds r1, r7, 0\n\ + bl MapGridSetMetatileIdAt\n\ + adds r0, r5, 0x1\n\ + lsls r0, 24\n\ + lsrs r5, r0, 24\n\ + cmp r5, 0x2\n\ + bls _08139D26\n\ + mov r2, r8\n\ + lsls r0, r2, 24\n\ + lsrs r1, r0, 24\n\ + cmp r1, 0x2\n\ + bls _08139D16\n\ +_08139D62:\n\ + bl DrawWholeMapView\n\ + movs r0, 0\n\ + strh r0, [r6, 0x2]\n\ + movs r0, 0\n\ + ldrsh r1, [r6, r0]\n\ + movs r2, 0x6\n\ + ldrsh r0, [r6, r2]\n\ + cmp r1, r0\n\ + bne _08139D7C\n\ + ldr r0, [sp]\n\ + bl DestroyTask\n\ +_08139D7C:\n\ + ldrh r0, [r6, 0x2]\n\ + adds r0, 0x1\n\ + strh r0, [r6, 0x2]\n\ + add sp, 0x4\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool"); +} +#endif // NAKED + +void sub_8139D98(void) +{ + u8 i; + u32 ivStorage[6]; + + ivStorage[0] = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_HP_IV); + ivStorage[1] = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_ATK_IV); + ivStorage[2] = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_DEF_IV); + ivStorage[3] = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPEED_IV); + ivStorage[4] = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPATK_IV); + ivStorage[5] = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPDEF_IV); + + gSpecialVar_0x8005 = 0; + + for (i = 0; i < ARRAY_COUNT(ivStorage); i++) + { + gSpecialVar_0x8005 += ivStorage[i]; + } + + gSpecialVar_0x8006 = 0; + gSpecialVar_0x8007 = ivStorage[0]; // HP IV + + for (i = 1; i < 6; i++) + { + if (ivStorage[gSpecialVar_0x8006] < ivStorage[i]) + { + gSpecialVar_0x8006 = i; + gSpecialVar_0x8007 = ivStorage[i]; + } + else if (ivStorage[gSpecialVar_0x8006] == ivStorage[i]) + { + u16 randomNumber = Random(); + if ((randomNumber & 1) != 0) + { + gSpecialVar_0x8006 = i; + gSpecialVar_0x8007 = ivStorage[i]; + } + } + } +} + +bool32 warp0_in_pokecenter(void) +{ + static const u16 gUnknown_085B2C2A[] = { 0x0202, 0x0301, 0x0405, 0x0504, 0x0604, 0x0700, 0x0804, 0x090b, 0x0a05, 0x0b05, 0x0c02, 0x0d06, 0x0e03, 0x0f02, 0x100c, 0x100a, 0x1a35, 0x193c, 0xffff }; + + int i; + u16 map = (gUnknown_020322DC.mapGroup << 8) + gUnknown_020322DC.mapNum; + + for (i = 0; gUnknown_085B2C2A[i] != 0xFFFF; i++) + { + if (gUnknown_085B2C2A[i] == map) + return TRUE; + } + + return FALSE; +} + +bool32 sub_8139ED0(void) +{ + if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(TRAINER_HILL_ENTRANCE) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(TRAINER_HILL_ENTRANCE)) + { + return FALSE; + } + return TRUE; +} + +void UpdateFrontierManiac(u16 a0) +{ + u16 *var = GetVarPointer(VAR_FRONTIER_MANIAC_FACILITY); + *var += a0; + *var %= 10; +} + +void sub_8139F20(void) +{ + static const u8 *const gUnknown_085B2C50[][3] = { + { BattleFrontier_Lounge2_Text_260971, BattleFrontier_Lounge2_Text_260A1E, BattleFrontier_Lounge2_Text_260AE7 }, + { BattleFrontier_Lounge2_Text_2619AC, BattleFrontier_Lounge2_Text_261A91, BattleFrontier_Lounge2_Text_261B0C }, + { BattleFrontier_Lounge2_Text_261B95, BattleFrontier_Lounge2_Text_261B95, BattleFrontier_Lounge2_Text_261B95 }, + { BattleFrontier_Lounge2_Text_261C1A, BattleFrontier_Lounge2_Text_261C1A, BattleFrontier_Lounge2_Text_261C1A }, + { BattleFrontier_Lounge2_Text_260BC4, BattleFrontier_Lounge2_Text_260C6D, BattleFrontier_Lounge2_Text_260D3A }, + { BattleFrontier_Lounge2_Text_260E1E, BattleFrontier_Lounge2_Text_260EC7, BattleFrontier_Lounge2_Text_260F74 }, + { BattleFrontier_Lounge2_Text_2614E6, BattleFrontier_Lounge2_Text_261591, BattleFrontier_Lounge2_Text_26166F }, + { BattleFrontier_Lounge2_Text_261282, BattleFrontier_Lounge2_Text_261329, BattleFrontier_Lounge2_Text_261403 }, + { BattleFrontier_Lounge2_Text_261026, BattleFrontier_Lounge2_Text_2610CC, BattleFrontier_Lounge2_Text_261194 }, + { BattleFrontier_Lounge2_Text_26174D, BattleFrontier_Lounge2_Text_2617F9, BattleFrontier_Lounge2_Text_2618C4 }, + }; + + static const u8 gUnknown_085B2CC8[][2] = { + { 0x15, 0x38 }, + { 0x15, 0x23 }, + { 0xff, 0xff }, + { 0xff, 0xff }, + { 0x02, 0x04 }, + { 0x07, 0x15 }, + { 0x07, 0x15 }, + { 0x0e, 0x1c }, + { 0x0d, 0x70 }, + { 0x07, 0x38 } + }; + + u8 i; + u16 unk = 0; + u16 var = VarGet(VAR_FRONTIER_MANIAC_FACILITY); + switch (var) + { + case 0: + case 1: + case 2: + case 3: + if (gSaveBlock2Ptr->frontier.field_CE0[var][0] >= gSaveBlock2Ptr->frontier.field_CE0[var][1]) + { + unk = gSaveBlock2Ptr->frontier.field_CE0[var][0]; + } + else + { + unk = gSaveBlock2Ptr->frontier.field_CE0[var][1]; + } + break; + case 4: + if (gSaveBlock2Ptr->frontier.field_D0C[0] >= gSaveBlock2Ptr->frontier.field_D0C[1]) + { + unk = gSaveBlock2Ptr->frontier.field_D0C[0]; + } + else + { + unk = gSaveBlock2Ptr->frontier.field_D0C[1]; + } + break; + case 5: + if (gSaveBlock2Ptr->frontier.field_DE2[0] >= gSaveBlock2Ptr->frontier.field_DE2[1]) + { + unk = gSaveBlock2Ptr->frontier.field_DE2[0]; + } + else + { + unk = gSaveBlock2Ptr->frontier.field_DE2[1]; + } + break; + case 6: + if (gSaveBlock2Ptr->frontier.field_DC8[0] >= gSaveBlock2Ptr->frontier.field_DC8[1]) + { + unk = gSaveBlock2Ptr->frontier.field_DC8[0]; + } + else + { + unk = gSaveBlock2Ptr->frontier.field_DC8[1]; + } + break; + case 7: + if (gSaveBlock2Ptr->frontier.field_DDA[0] >= gSaveBlock2Ptr->frontier.field_DDA[1]) + { + unk = gSaveBlock2Ptr->frontier.field_DDA[0]; + } + else + { + unk = gSaveBlock2Ptr->frontier.field_DDA[1]; + } + break; + case 8: + if (gSaveBlock2Ptr->frontier.field_E04[0] >= gSaveBlock2Ptr->frontier.field_E04[1]) + { + unk = gSaveBlock2Ptr->frontier.field_E04[0]; + } + else + { + unk = gSaveBlock2Ptr->frontier.field_E04[1]; + } + break; + case 9: + if (gSaveBlock2Ptr->frontier.field_E1A[0] >= gSaveBlock2Ptr->frontier.field_E1A[1]) + { + unk = gSaveBlock2Ptr->frontier.field_E1A[0]; + } + else + { + unk = gSaveBlock2Ptr->frontier.field_E1A[1]; + } + break; + } + + for (i = 0; i < 2 && gUnknown_085B2CC8[var][i] < unk; i++); + + ShowFieldMessage(gUnknown_085B2C50[var][i]); +} + +void sub_813A080(void) +{ + static const u16 gUnknown_085B2CDC[] = { + 0x0007, 0x000e, 0x0015, 0x001c, 0x0023, 0x0031, 0x003f, 0x004d, 0x005b, 0x0000 + }; + + u8 i; + u16 var = VarGet(VAR_0x40CE); + u8 chosenLevel = gSaveBlock2Ptr->frontier.chosenLvl; + + if (var == 2 && !FlagGet(FLAG_0x152)) + { + gSpecialVar_0x8005 = 5; + gSpecialVar_0x8006 = 4; + return; + } + + for (i = 0; i < 9; i++) + { + if (gUnknown_085B2CDC[i] > gSaveBlock2Ptr->frontier.field_CE0[var][chosenLevel]) + { + gSpecialVar_0x8005 = 4; + gSpecialVar_0x8006 = i + 5; + return; + } + } + + gSpecialVar_0x8005 = 4; + gSpecialVar_0x8006 = 12; +} + +void sub_813A128(void) +{ + u8 taskId = CreateTask(sub_813A2DC, 8); + struct Task *task = &gTasks[taskId]; + task->data[11] = gSpecialVar_0x8004; + + switch (gSpecialVar_0x8004) + { + case 0: + task->data[0] = 1; + task->data[1] = 1; + task->data[2] = 1; + task->data[3] = 1; + task->data[4] = 1; + task->data[5] = 1; + task->data[6] = 0; + task->data[15] = taskId; + break; + case 1: + task->data[0] = 5; + task->data[1] = 8; + task->data[2] = 1; + task->data[3] = 1; + task->data[4] = 9; + task->data[5] = 10; + task->data[6] = 0; + task->data[15] = taskId; + break; + case 2: + task->data[0] = 6; + task->data[1] = 12; + task->data[2] = 1; + task->data[3] = 1; + task->data[4] = 7; + task->data[5] = 12; + task->data[6] = 0; + task->data[15] = taskId; + break; + case 3: + task->data[0] = 6; + task->data[1] = 11; + task->data[2] = 14; + task->data[3] = 1; + task->data[4] = 15; + task->data[5] = 12; + task->data[6] = 0; + task->data[15] = taskId; + break; + case 4: + task->data[0] = 6; + task->data[1] = 6; + task->data[2] = 14; + task->data[3] = 1; + task->data[4] = 15; + task->data[5] = 12; + task->data[6] = 0; + task->data[15] = taskId; + break; + case 5: + task->data[0] = 6; + task->data[1] = 7; + task->data[2] = 14; + task->data[3] = 1; + task->data[4] = 15; + task->data[5] = 12; + task->data[6] = 0; + task->data[15] = taskId; + break; + case 6: + task->data[0] = 6; + task->data[1] = 10; + task->data[2] = 14; + task->data[3] = 1; + task->data[4] = 15; + task->data[5] = 12; + task->data[6] = 0; + task->data[15] = taskId; + break; + case 7: + task->data[0] = 6; + task->data[1] = 12; + task->data[2] = 15; + task->data[3] = 1; + task->data[4] = 14; + task->data[5] = 12; + task->data[6] = 0; + task->data[15] = taskId; + break; + case 8: + task->data[0] = 6; + task->data[1] = 10; + task->data[2] = 17; + task->data[3] = 1; + task->data[4] = 11; + task->data[5] = 12; + task->data[6] = 0; + task->data[15] = taskId; + break; + case 9: + case 10: + task->data[0] = 6; + task->data[1] = 11; + task->data[2] = 15; + task->data[3] = 1; + task->data[4] = 14; + task->data[5] = 12; + task->data[6] = 0; + task->data[15] = taskId; + break; + case 11: + task->data[0] = 6; + task->data[1] = 7; + task->data[2] = 19; + task->data[3] = 1; + task->data[4] = 10; + task->data[5] = 12; + task->data[6] = 0; + task->data[15] = taskId; + break; + case 12: + task->data[0] = 6; + task->data[1] = 7; + task->data[2] = 17; + task->data[3] = 1; + task->data[4] = 12; + task->data[5] = 12; + task->data[6] = 0; + task->data[15] = taskId; + break; + default: + gSpecialVar_Result = 0x7F; + DestroyTask(taskId); + break; + } +} + +static const u8 *const gUnknown_085B2CF0[][16] = { + { + gText_Exit, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + }, + { + gText_BlueFlute, + gText_YellowFlute, + gText_RedFlute, + gText_WhiteFlute, + gText_BlackFlute, + gText_PrettyChair, + gText_PrettyDesk, + gText_Exit, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + }, + { + gText_0Pts, + gText_10Pts, + gText_20Pts, + gText_30Pts, + gText_40Pts, + gText_50Pts, + gText_60Pts, + gText_70Pts, + gText_80Pts, + gText_90Pts, + gText_100Pts, + gText_QuestionMark, + NULL, + NULL, + NULL, + NULL + }, + { + gText_KissPoster16BP, + gText_KissCushion32BP, + gText_SmoochumDoll32BP, + gText_TogepiDoll48BP, + gText_MeowthDoll48BP, + gText_ClefairyDoll48BP, + gText_DittoDoll48BP, + gText_CyndaquilDoll80BP, + gText_ChikoritaDoll80BP, + gText_TotodileDoll80BP, + gText_Exit, + NULL, + NULL, + NULL, + NULL, + NULL + }, + { + gText_LaprasDoll128BP, + gText_SnorlaxDoll128BP, + gText_VenusaurDoll256BP, + gText_CharizardDoll256BP, + gText_BlastoiseDoll256BP, + gText_Exit, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + }, + { + gText_Protein1BP, + gText_Calcium1BP, + gText_Iron1BP, + gText_Zinc1BP, + gText_Carbos1BP, + gText_HpUp1BP, + gText_Exit, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + }, + { + gText_Leftovers48BP, + gText_WhiteHerb48BP, + gText_QuickClaw48BP, + gText_MentalHerb48BP, + gText_BrightPowder64BP, + gText_ChoiceBand64BP, + gText_KingsRock64BP, + gText_FocusBand64BP, + gText_ScopeLens64BP, + gText_Exit, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + }, + { + gText_EnergyPowder50, + gText_EnergyRoot80, + gText_HealPowder50, + gText_RevivalHerb300, + gText_Protein1000, + gText_Iron1000, + gText_Carbos1000, + gText_Calcium1000, + gText_Zinc1000, + gText_HPUp1000, + gText_PPUp3000, + gText_Exit, + NULL, + NULL, + NULL, + NULL + }, + { + gText_BattleTower2, + gText_BattleDome, + gText_BattlePalace, + gText_BattleArena, + gText_BattleFactory, + gText_BattlePike, + gText_BattlePyramid, + gText_RankingHall, + gText_ExchangeService, + gText_Exit, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + }, + { + gText_Softboiled16BP, + gText_SeismicToss24BP, + gText_DreamEater24BP, + gText_MegaPunch24BP, + gText_MegaKick48BP, + gText_BodySlam48BP, + gText_RockSlide48BP, + gText_Counter48BP, + gText_ThunderWave48BP, + gText_SwordsDance48BP, + gText_Exit, + NULL, + NULL, + NULL, + NULL, + NULL + }, + { + gText_DefenseCurl16BP, + gText_Snore24BP, + gText_MudSlap24BP, + gText_Swift24BP, + gText_IcyWind24BP, + gText_Endure48BP, + gText_PsychUp48BP, + gText_IcePunch48BP, + gText_ThunderPunch48BP, + gText_FirePunch48BP, + gText_Exit, + NULL, + NULL, + NULL, + NULL, + NULL + }, + { + gText_SlateportCity, + gText_BattleFrontier, + gText_SouthernIsland, + gText_NavelRock, + gText_BirthIsland, + gText_FarawayIsland, + gText_Exit, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + }, + { + gText_BattleTrainers, + gText_BattleBasics, + gText_PokemonNature, + gText_PokemonMoves, + gText_Underpowered, + gText_WhenInDanger, + gText_Exit, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + } +}; + +static void sub_813A2DC(u8 taskId) +{ + u32 unk1; + u8 i, windowId; + struct WindowTemplate template; + struct Task *task = &gTasks[taskId]; + + ScriptContext2_Enable(); + gUnknown_0203AB68 = 0; + gUnknown_0203AB6C = 0x40; + sub_813AA60(task->data[11], 0); + sub_813ACE8(task->data[11], 0); + gUnknown_0203AB64 = AllocZeroed(task->data[1] * 8); + gUnknown_0203AB6A = 0; + sub_813A42C(); + + for (unk1 = 0, i = 0; i < task->data[1]; i++) + { + const u8 *text = gUnknown_085B2CF0[gSpecialVar_0x8004][i]; + gUnknown_0203AB64[i].name = text; + gUnknown_0203AB64[i].id = i; + unk1 = display_text_and_get_width(text, unk1); + } + + task->data[4] = convert_pixel_width_to_tile_width(unk1); + + if (task->data[2] + task->data[4] > 0x1D) + { + int unk2 = 0x1D - task->data[4]; + if (unk2 < 0) + { + task->data[2] = 0; + } + else + { + task->data[2] = unk2; + } + } + + template = CreateWindowTemplate(0, task->data[2], task->data[3], task->data[4], task->data[5], 0xF, 0x64); + windowId = AddWindow(&template); + task->data[13] = windowId; + SetStandardWindowBorderStyle(windowId, 0); + + gUnknown_030061D0.totalItems = task->data[1]; + gUnknown_030061D0.maxShowed = task->data[0]; + gUnknown_030061D0.windowId = task->data[13]; + + sub_813A694(taskId); + task->data[14] = ListMenuInit(&gUnknown_030061D0, task->data[7], task->data[8]); + schedule_bg_copy_tilemap_to_vram(0); + gTasks[taskId].func = sub_813A4EC; +} + +static void sub_813A42C(void) +{ + gUnknown_030061D0.items = gUnknown_0203AB64; + gUnknown_030061D0.moveCursorFunc = sub_813A46C; + gUnknown_030061D0.itemPrintFunc = NULL; + gUnknown_030061D0.totalItems = 1; + gUnknown_030061D0.maxShowed = 1; + gUnknown_030061D0.windowId = 0; + gUnknown_030061D0.header_X = 0; + gUnknown_030061D0.item_X = 8; + gUnknown_030061D0.cursor_X = 0; + gUnknown_030061D0.upText_Y = 1; + gUnknown_030061D0.cursorPal = 2; + gUnknown_030061D0.fillValue = 1; + gUnknown_030061D0.cursorShadowPal = 3; + gUnknown_030061D0.lettersSpacing = 0; + gUnknown_030061D0.itemVerticalPadding = 0; + gUnknown_030061D0.scrollMultiple = 0; + gUnknown_030061D0.fontId = 1; + gUnknown_030061D0.cursorKind = 0; +} + +static void sub_813A46C(s32 itemIndex, bool8 onInit, struct ListMenu *list) +{ + u8 taskId; + PlaySE(SE_SELECT); + taskId = FindTaskIdByFunc(sub_813A4EC); + if (taskId != 0xFF) + { + u16 misc; + struct Task *task = &gTasks[taskId]; + ListMenuGetScrollAndRow(task->data[14], &misc, NULL); + gUnknown_0203AB68 = misc; + ListMenuGetCurrentItemArrayId(task->data[14], &misc); + sub_813AC44(task->data[11], gUnknown_0203AB6A); + sub_813AA60(task->data[11], misc); + sub_813AD34(task->data[11], misc); + gUnknown_0203AB6A = misc; + } +} + +// stupid r5<->r6 swap +#ifdef NONMATCHING +static void sub_813A4EC(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + s32 itemId = ListMenuHandleInputGetItemId(task->data[14]); + + switch (itemId) + { + case LIST_NOTHING_CHOSEN: + break; + case LIST_B_PRESSED: + gSpecialVar_Result = 0x7F; + PlaySE(SE_SELECT); + sub_813A570(taskId); + break; + default: + gSpecialVar_Result = itemId; + PlaySE(SE_SELECT); + if (!task->data[6] || itemId == task->data[1] - 1) + { + sub_813A570(taskId); + } + else + { + sub_813A738(taskId); + task->func = sub_813A600; + EnableBothScriptContexts(); + } + break; + } +} +#else +NAKED +static void sub_813A4EC(u8 taskId) +{ + asm_unified("push {r4-r6,lr}\n\ + lsls r0, 24\n\ + lsrs r5, r0, 24\n\ + lsls r0, r5, 2\n\ + adds r0, r5\n\ + lsls r0, 3\n\ + ldr r1, =gTasks\n\ + adds r6, r0, r1\n\ + ldrh r0, [r6, 0x24]\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + bl ListMenuHandleInputGetItemId\n\ + adds r4, r0, 0\n\ + movs r0, 0x2\n\ + negs r0, r0\n\ + cmp r4, r0\n\ + beq _0813A51C\n\ + adds r0, 0x1\n\ + cmp r4, r0\n\ + bne _0813A530\n\ + b _0813A566\n\ + .pool\n\ +_0813A51C:\n\ + ldr r1, =gSpecialVar_Result\n\ + movs r0, 0x7F\n\ + strh r0, [r1]\n\ + movs r0, 0x5\n\ + bl PlaySE\n\ + b _0813A54C\n\ + .pool\n\ +_0813A530:\n\ + ldr r0, =gSpecialVar_Result\n\ + strh r4, [r0]\n\ + movs r0, 0x5\n\ + bl PlaySE\n\ + movs r1, 0x14\n\ + ldrsh r0, [r6, r1]\n\ + cmp r0, 0\n\ + beq _0813A54C\n\ + movs r1, 0xA\n\ + ldrsh r0, [r6, r1]\n\ + subs r0, 0x1\n\ + cmp r4, r0\n\ + bne _0813A558\n\ +_0813A54C:\n\ + adds r0, r5, 0\n\ + bl sub_813A570\n\ + b _0813A566\n\ + .pool\n\ +_0813A558:\n\ + adds r0, r5, 0\n\ + bl sub_813A738\n\ + ldr r0, =sub_813A600\n\ + str r0, [r6]\n\ + bl EnableBothScriptContexts\n\ +_0813A566:\n\ + pop {r4-r6}\n\ + pop {r0}\n\ + bx r0\n\ + .pool"); +} +#endif // NONMATCHING + +static void sub_813A570(u8 taskId) +{ + u16 array; + struct Task *task = &gTasks[taskId]; + ListMenuGetCurrentItemArrayId(task->data[14], &array); + sub_813AC44(task->data[11], array); + sub_813A738(taskId); + DestroyListMenuTask(task->data[14], NULL, NULL); + Free(gUnknown_0203AB64); + sub_8198070(task->data[13], 1); + FillWindowPixelBuffer(task->data[13], 0); + CopyWindowToVram(task->data[13], 2); + RemoveWindow(task->data[13]); + DestroyTask(taskId); + EnableBothScriptContexts(); +} + +static void sub_813A600(u8 taskId) +{ + switch (gTasks[taskId].data[6]) + { + case 1: + default: + break; + case 2: + gTasks[taskId].data[6] = 1; + gTasks[taskId].func = sub_813A664; + break; + } +} + +void sub_813A630(void) +{ + u8 taskId = FindTaskIdByFunc(sub_813A600); + if (taskId == 0xFF) + { + EnableBothScriptContexts(); + } + else + { + gTasks[taskId].data[6]++; + } +} + +static void sub_813A664(u8 taskId) +{ + ScriptContext2_Enable(); + sub_813A694(taskId); + gTasks[taskId].func = sub_813A4EC; +} + +static void sub_813A694(u8 taskId) +{ + static const struct ScrollArrowsTemplate gUnknown_085B3030 = { + .firstArrowType = 2, + .firstX = 0, + .firstY = 0, + .secondArrowType = 3, + .secondX = 0, + .secondY = 0, + .fullyUpThreshold = 0, + .fullyDownThreshold = 0, + .tileTag = 2000, + .palTag = 100, + .palNum = 0 + }; + + struct Task *task = &gTasks[taskId]; + struct ScrollArrowsTemplate template = gUnknown_085B3030; + if (task->data[0] != task->data[1]) + { + template.firstX = (task->data[4] / 2) * 8 + 12 + (task->data[2] - 1) * 8; + template.firstY = 8; + template.secondX = (task->data[4] / 2) * 8 + 12 + (task->data[2] - 1) * 8; + template.secondY = task->data[5] * 8 + 10; + template.fullyUpThreshold = 0; + template.fullyDownThreshold = task->data[1] - task->data[0]; + task->data[12] = AddScrollIndicatorArrowPair(&template, &gUnknown_0203AB68); + } +} + +static void sub_813A738(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + if (task->data[0] != task->data[1]) + { + RemoveScrollIndicatorArrowPair(task->data[12]); + } +} + +void nullsub_55(void) +{ + +} + +void sub_813A76C(void) +{ + u8 i; + for (i = 0; i < 2; i++) + { + if (gLinkPlayers[i].gender == MALE) + { + VarSet(VAR_OBJ_GFX_ID_F - i, EVENT_OBJ_GFX_BRENDAN_NORMAL); + } + else + { + VarSet(VAR_OBJ_GFX_ID_F - i, EVENT_OBJ_GFX_RIVAL_MAY_NORMAL); + } + } +} + +void sub_813A7B8(void) +{ + static const u8 *const gUnknown_085B3040[] = { + BattleFrontier_Lounge5_Text_26468D, + BattleFrontier_Lounge5_Text_2646E5, + BattleFrontier_Lounge5_Text_264741, + BattleFrontier_Lounge5_Text_2647A4, + BattleFrontier_Lounge5_Text_2647FC, + BattleFrontier_Lounge5_Text_264858, + BattleFrontier_Lounge5_Text_2648BE, + BattleFrontier_Lounge5_Text_264916, + BattleFrontier_Lounge5_Text_264972, + BattleFrontier_Lounge5_Text_2649D5, + BattleFrontier_Lounge5_Text_264A3F, + BattleFrontier_Lounge5_Text_264A9B, + BattleFrontier_Lounge5_Text_264AF3, + BattleFrontier_Lounge5_Text_264B5D, + BattleFrontier_Lounge5_Text_2648BE, + BattleFrontier_Lounge5_Text_264BC3, + BattleFrontier_Lounge5_Text_264C36, + BattleFrontier_Lounge5_Text_2648BE, + BattleFrontier_Lounge5_Text_264C95, + BattleFrontier_Lounge5_Text_264D01, + BattleFrontier_Lounge5_Text_264D6B, + BattleFrontier_Lounge5_Text_264DD7, + BattleFrontier_Lounge5_Text_264E33, + BattleFrontier_Lounge5_Text_264E8F, + BattleFrontier_Lounge5_Text_2648BE, + }; + + u8 nature; + + if (gSpecialVar_0x8004 >= PARTY_SIZE) + { + gSpecialVar_0x8004 = 0; + } + + nature = GetNature(&gPlayerParty[gSpecialVar_0x8004]); + ShowFieldMessage(gUnknown_085B3040[nature]); +} + +void UpdateFrontierGambler(u16 a0) +{ + u16 *var = GetVarPointer(VAR_FRONTIER_GAMBLER_FACILITY); + *var += a0; + *var %= 12; +} + +void sub_813A820(void) +{ + static const u8 *const gUnknown_085B30A4[] = { + BattleFrontier_Lounge3_Text_262261, + BattleFrontier_Lounge3_Text_26230D, + BattleFrontier_Lounge3_Text_2623B9, + BattleFrontier_Lounge3_Text_262464, + BattleFrontier_Lounge3_Text_26250E, + BattleFrontier_Lounge3_Text_2625B8, + BattleFrontier_Lounge3_Text_26266A, + BattleFrontier_Lounge3_Text_26271C, + BattleFrontier_Lounge3_Text_2627C9, + BattleFrontier_Lounge3_Text_262876, + BattleFrontier_Lounge3_Text_26291A, + BattleFrontier_Lounge3_Text_2629BC, + }; + + u16 var = VarGet(VAR_FRONTIER_GAMBLER_FACILITY); + ShowFieldMessage(gUnknown_085B30A4[var]); + VarSet(VAR_FRONTIER_GAMBLER_SET_FACILITY_F, var); +} + +void sub_813A854(void) +{ + static const u8 *const gUnknown_085B30D4[] = { + BattleFrontier_Lounge3_Text_262C04, + BattleFrontier_Lounge3_Text_262C90, + BattleFrontier_Lounge3_Text_262D1C, + BattleFrontier_Lounge3_Text_262DA7, + BattleFrontier_Lounge3_Text_262E34, + BattleFrontier_Lounge3_Text_262EC1, + BattleFrontier_Lounge3_Text_262F56, + BattleFrontier_Lounge3_Text_262FEB, + BattleFrontier_Lounge3_Text_263078, + BattleFrontier_Lounge3_Text_263105, + BattleFrontier_Lounge3_Text_26318C, + BattleFrontier_Lounge3_Text_263211, + }; + + ShowFieldMessage(gUnknown_085B30D4[VarGet(VAR_FRONTIER_GAMBLER_SET_FACILITY_F)]); +} + +void sub_813A878(u8 a0) +{ + static const u16 gUnknown_085B3104[] = {0x0000, 0x0001, 0x0002, 0x0100, 0x0101, 0x0400, 0x0401, 0x0200, 0x0201, 0x0300, 0x0500, 0x0600}; + + u16 var1 = VarGet(VAR_0x40CE); + u16 var2 = VarGet(VAR_FRONTIER_GAMBLER_SET_FACILITY_F); + u16 var3 = VarGet(VAR_FRONTIER_FACILITY); + + if (VarGet(VAR_FRONTIER_GAMBLER_PLACED_BET_F) == 1) + { + if (gUnknown_085B3104[var2] == (var3 << 8) + var1) + { + if (a0 != 0) + { + VarSet(VAR_FRONTIER_GAMBLER_PLACED_BET_F, 2); + } + else + { + VarSet(VAR_FRONTIER_GAMBLER_PLACED_BET_F, 3); + } + } + } +} + +void sub_813A8FC(void) +{ + u8 string[32]; + u32 x; + StringCopy(ConvertIntToDecimalStringN(string, gSaveBlock2Ptr->frontier.frontierBattlePoints, STR_CONV_MODE_RIGHT_ALIGN, 4), gText_BP); + x = GetStringRightAlignXOffset(1, string, 48); + PrintTextOnWindow(gUnknown_0203AB6D, 1, string, x, 1, 0, NULL); +} + +void sub_813A958(void) +{ + static const struct WindowTemplate gUnknown_085B311C = { + .priority = 0, + .tilemapLeft = 1, + .tilemapTop = 1, + .width = 6, + .height = 2, + .paletteNum = 15, + .baseBlock = 8, + }; + + gUnknown_0203AB6D = AddWindow(&gUnknown_085B311C); + SetStandardWindowBorderStyle(gUnknown_0203AB6D, 0); + sub_813A8FC(); + CopyWindowToVram(gUnknown_0203AB6D, 2); +} + +void sub_813A988(void) +{ + sub_8198070(gUnknown_0203AB6D, TRUE); + RemoveWindow(gUnknown_0203AB6D); +} + +void sub_813A9A4(void) +{ + if (gSaveBlock2Ptr->frontier.frontierBattlePoints < gSpecialVar_0x8004) + { + gSaveBlock2Ptr->frontier.frontierBattlePoints = 0; + } + else + { + gSaveBlock2Ptr->frontier.frontierBattlePoints -= gSpecialVar_0x8004; + } +} + +void sub_813A9D0(void) +{ + if (gSaveBlock2Ptr->frontier.frontierBattlePoints + gSpecialVar_0x8004 > 0x270F) + { + gSaveBlock2Ptr->frontier.frontierBattlePoints = 0x270f; + } + else + { + gSaveBlock2Ptr->frontier.frontierBattlePoints = gSaveBlock2Ptr->frontier.frontierBattlePoints + gSpecialVar_0x8004; + } +} + +u16 sub_813AA04(void) +{ + return gSaveBlock2Ptr->frontier.frontierBattlePoints; +} + +void sub_813AA18(void) +{ + static const struct WindowTemplate gUnknown_085B3124 = { + .priority = 0, + .tilemapLeft = 2, + .tilemapTop = 9, + .width = 4, + .height = 4, + .paletteNum = 15, + .baseBlock = 20, + }; + + gUnknown_0203AB6E = AddWindow(&gUnknown_085B3124); + SetStandardWindowBorderStyle(gUnknown_0203AB6E, 0); + CopyWindowToVram(gUnknown_0203AB6E, 2); +} + +void sub_813AA44(void) +{ + sub_8198070(gUnknown_0203AB6E, TRUE); + RemoveWindow(gUnknown_0203AB6E); +} + +static void sub_813AA60(u16 a0, u16 a1) +{ + static const u16 gUnknown_085B312C[] = { 0x004b, 0x0067, 0x0057, 0x004f, 0x0054, 0x0055, 0x0056, 0x0050, 0x0051, 0x0052, 0xffff }; + static const u16 gUnknown_085B3142[] = { 0x0071, 0x006f, 0x0072, 0x0073, 0x0074, 0xffff }; + static const u16 gUnknown_085B314E[] = { 0x0040, 0x0043, 0x0041, 0x0046, 0x0042, 0x003f, 0xffff }; + static const u16 gUnknown_085B315C[] = { 0x00c8, 0x00b4, 0x00b7, 0x00b9, 0x00b3, 0x00ba, 0x00bb, 0x00c4, 0x00c6, 0xffff }; + + static const u8 *const gUnknown_085B3170[] = { + BattleFrontier_BattlePointExchangeServiceCorner_Text_2601AA, + BattleFrontier_BattlePointExchangeServiceCorner_Text_2601D0, + BattleFrontier_BattlePointExchangeServiceCorner_Text_260201, + BattleFrontier_BattlePointExchangeServiceCorner_Text_26022F, + BattleFrontier_BattlePointExchangeServiceCorner_Text_26025B, + BattleFrontier_BattlePointExchangeServiceCorner_Text_260287, + BattleFrontier_BattlePointExchangeServiceCorner_Text_2602B5, + BattleFrontier_BattlePointExchangeServiceCorner_Text_2602E0, + BattleFrontier_BattlePointExchangeServiceCorner_Text_26030F, + BattleFrontier_BattlePointExchangeServiceCorner_Text_26033E, + gText_Exit, + }; + + static const u8 *const gUnknown_085B319C[] = { + BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C, + BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C, + BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C, + BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C, + BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C, + gText_Exit + }; + + static const u8 *const gUnknown_085B31B4[] = { + BattleFrontier_BattlePointExchangeServiceCorner_Text_260397, + BattleFrontier_BattlePointExchangeServiceCorner_Text_2603BE, + BattleFrontier_BattlePointExchangeServiceCorner_Text_2603E6, + BattleFrontier_BattlePointExchangeServiceCorner_Text_26040E, + BattleFrontier_BattlePointExchangeServiceCorner_Text_260436, + BattleFrontier_BattlePointExchangeServiceCorner_Text_26045C, + gText_Exit + }; + + static const u8 *const gUnknown_085B31D0[] = { + BattleFrontier_BattlePointExchangeServiceCorner_Text_26047A, + BattleFrontier_BattlePointExchangeServiceCorner_Text_2604AC, + BattleFrontier_BattlePointExchangeServiceCorner_Text_2604D8, + BattleFrontier_BattlePointExchangeServiceCorner_Text_26050F, + BattleFrontier_BattlePointExchangeServiceCorner_Text_260542, + BattleFrontier_BattlePointExchangeServiceCorner_Text_260575, + BattleFrontier_BattlePointExchangeServiceCorner_Text_2605A8, + BattleFrontier_BattlePointExchangeServiceCorner_Text_2605E2, + BattleFrontier_BattlePointExchangeServiceCorner_Text_260613, + gText_Exit + }; + + if (a0 > 2 && a0 < 7) + { + FillWindowPixelRect(0, 0x11, 0, 0, 216, 32); + switch (a0) + { + case 3: + AddTextPrinterParameterized(0, 1, gUnknown_085B3170[a1], 0, NULL, 2, 1, 3); + if (gUnknown_085B312C[a1] == 0xFFFF) + { + sub_813ABD4(gUnknown_085B312C[a1]); + } + else + { + FreeSpriteTilesByTag(5500); + FreeSpritePaletteByTag(5500); + gUnknown_0203AB6C = AddDecorationIconObject(gUnknown_085B312C[a1], 33, 88, 0, 5500, 5500); + } + break; + case 4: + AddTextPrinterParameterized(0, 1, gUnknown_085B319C[a1], 0, NULL, 2, 1, 3); + if (gUnknown_085B3142[a1] == 0xFFFF) + { + sub_813ABD4(gUnknown_085B3142[a1]); + } + else + { + FreeSpriteTilesByTag(5500); + FreeSpritePaletteByTag(5500); + gUnknown_0203AB6C = AddDecorationIconObject(gUnknown_085B3142[a1], 33, 88, 0, 5500, 5500); + } + break; + case 5: + AddTextPrinterParameterized(0, 1, gUnknown_085B31B4[a1], 0, NULL, 2, 1, 3); + sub_813ABD4(gUnknown_085B314E[a1]); + break; + case 6: + AddTextPrinterParameterized(0, 1, gUnknown_085B31D0[a1], 0, NULL, 2, 1, 3); + sub_813ABD4(gUnknown_085B315C[a1]); + break; + } + } +} + +static void sub_813ABD4(u16 a0) +{ + FreeSpriteTilesByTag(5500); + FreeSpritePaletteByTag(5500); + gUnknown_0203AB6C = AddItemIconSprite(5500, 5500, a0); + + if (gUnknown_0203AB6C != MAX_SPRITES) + { + gSprites[gUnknown_0203AB6C].oam.priority = 0; + gSprites[gUnknown_0203AB6C].pos1.x = 36; + gSprites[gUnknown_0203AB6C].pos1.y = 92; + } +} + +static void sub_813AC44(u16 a0, u16 unused) +{ + if (gUnknown_0203AB6C != MAX_SPRITES) + { + switch (a0) + { + case 3 ... 6: + DestroySpriteAndFreeResources(&gSprites[gUnknown_0203AB6C]); + break; + } + gUnknown_0203AB6C = MAX_SPRITES; + } +} + +static const u16 gUnknown_085B31F8[] = { 0x0087, 0x0045, 0x008a, 0x0005, 0x0019, 0x0022, 0x009d, 0x0044, 0x0056, 0x000e }; +static const u16 gUnknown_085B320C[] = { 0x006f, 0x00ad, 0x00bd, 0x0081, 0x00c4, 0x00cb, 0x00f4, 0x0008, 0x0009, 0x0007 }; + +void sub_813AC7C(void) +{ + if (gSpecialVar_0x8005 != 0) + { + StringCopy(gStringVar1, gMoveNames[gUnknown_085B320C[gSpecialVar_0x8004]]); + } + else + { + StringCopy(gStringVar1, gMoveNames[gUnknown_085B31F8[gSpecialVar_0x8004]]); + } +} + +static void sub_813ACE8(u8 a0, u16 a1) +{ + static const struct WindowTemplate gUnknown_085B3220 = { + .priority = 0, + .tilemapLeft = 1, + .tilemapTop = 7, + .width = 12, + .height = 6, + .paletteNum = 15, + .baseBlock = 28, + }; + + if (a0 == 9 || a0 == 10) + { + if (gSpecialVar_0x8006 == 0) + { + gUnknown_0203AB5E = AddWindow(&gUnknown_085B3220); + SetStandardWindowBorderStyle(gUnknown_0203AB5E, 0); + } + sub_813AD34(a0, a1); + } +} + +static void sub_813AD34(u8 a0, u16 a1) +{ + static const u8 *const gUnknown_085B3228[] = { + BattleFrontier_Lounge7_Text_265E30, + BattleFrontier_Lounge7_Text_265E5B, + BattleFrontier_Lounge7_Text_265E8A, + BattleFrontier_Lounge7_Text_265EC0, + BattleFrontier_Lounge7_Text_265EED, + BattleFrontier_Lounge7_Text_265F1C, + BattleFrontier_Lounge7_Text_265F47, + BattleFrontier_Lounge7_Text_265F77, + BattleFrontier_Lounge7_Text_265FAA, + BattleFrontier_Lounge7_Text_265FDD, + gText_Exit, + }; + + static const u8 *const gUnknown_085B3254[] = { + BattleFrontier_Lounge7_Text_26600A, + BattleFrontier_Lounge7_Text_26603E, + BattleFrontier_Lounge7_Text_266070, + BattleFrontier_Lounge7_Text_2660A6, + BattleFrontier_Lounge7_Text_2660D0, + BattleFrontier_Lounge7_Text_2660FF, + BattleFrontier_Lounge7_Text_26612D, + BattleFrontier_Lounge7_Text_26615F, + BattleFrontier_Lounge7_Text_266185, + BattleFrontier_Lounge7_Text_2661B5, + gText_Exit, + }; + + if (a0 == 9 || a0 == 10) + { + FillWindowPixelRect(gUnknown_0203AB5E, 0x11, 0, 0, 96, 48); + if (a0 == 10) + { + PrintTextOnWindow(gUnknown_0203AB5E, 1, gUnknown_085B3254[a1], 0, 1, 0, NULL); + } + else + { + PrintTextOnWindow(gUnknown_0203AB5E, 1, gUnknown_085B3228[a1], 0, 1, 0, NULL); + } + } +} + +void sub_813ADB8(void) +{ + sub_8198070(gUnknown_0203AB5E, TRUE); + RemoveWindow(gUnknown_0203AB5E); +} + +void sub_813ADD4(void) +{ + u16 scrollOffset, selectedRow; + u8 i; + u8 taskId = FindTaskIdByFunc(sub_813A600); + if (taskId != 0xFF) + { + struct Task *task = &gTasks[taskId]; + ListMenuGetScrollAndRow(task->data[14], &scrollOffset, &selectedRow); + SetStandardWindowBorderStyle(task->data[13], 0); + + for (i = 0; i < 6; i++) + { + sub_8199F74(task->data[13], 1, gUnknown_085B2CF0[gSpecialVar_0x8004][scrollOffset + i], 10, i * 16, TEXT_SPEED_FF, NULL, 0, 0); + } + + PrintTextOnWindow(task->data[13], 1, gText_SelectorArrow, 0, selectedRow * 16, TEXT_SPEED_FF, NULL); + PutWindowTilemap(task->data[13]); + CopyWindowToVram(task->data[13], 3); + } +} + +void sub_813AEB4(void) +{ + u8 i; + u16 temp1 = 0; + u16 temp2 = 0; + gSpecialVar_0x8005 = 0; + + temp1 = VarGet(VAR_TEMP_E); + temp2 = VarGet(VAR_TEMP_D); + + if (temp1 != 0) + { + i = 0; + do + { + if (gUnknown_0861500C[i] == gUnknown_085B320C[temp2]) + { + gSpecialVar_0x8005 = i; + break; + } + i++; + } while (i < 30); + } + else + { + i = 0; + do + { + if (gUnknown_0861500C[i] == gUnknown_085B31F8[temp2]) + { + gSpecialVar_0x8005 = i; + break; + } + i++; + } while (i < 30); + } +} + +void sub_813AF48(void) +{ + u8 taskId = FindTaskIdByFunc(sub_813A600); + if (taskId != 0xFF) + { + struct Task *task = &gTasks[taskId]; + DestroyListMenuTask(task->data[14], NULL, NULL); + Free(gUnknown_0203AB64); + sub_8198070(task->data[13], TRUE); + FillWindowPixelBuffer(task->data[13], 0); + ClearWindowTilemap(task->data[13]); + CopyWindowToVram(task->data[13], 2); + RemoveWindow(task->data[13]); + DestroyTask(taskId); + } +} + +void sub_813AFC8(void) +{ + CreateTask(task_deoxys_sound, 8); +} + +static const u16 gUnknown_085B3280[][16] = { + INCBIN_U16("graphics/misc/deoxys1.gbapal"), + INCBIN_U16("graphics/misc/deoxys2.gbapal"), + INCBIN_U16("graphics/misc/deoxys3.gbapal"), + INCBIN_U16("graphics/misc/deoxys4.gbapal"), + INCBIN_U16("graphics/misc/deoxys5.gbapal"), + INCBIN_U16("graphics/misc/deoxys6.gbapal"), + INCBIN_U16("graphics/misc/deoxys7.gbapal"), + INCBIN_U16("graphics/misc/deoxys8.gbapal"), + INCBIN_U16("graphics/misc/deoxys9.gbapal"), + INCBIN_U16("graphics/misc/deoxys10.gbapal"), + INCBIN_U16("graphics/misc/deoxys11.gbapal"), +}; + +static const u8 gUnknown_085B33E0[][2] = { + { 0x0f, 0x0c }, + { 0x0b, 0x0e }, + { 0x0f, 0x08 }, + { 0x13, 0x0e }, + { 0x0c, 0x0b }, + { 0x12, 0x0b }, + { 0x0f, 0x0e }, + { 0x0b, 0x0e }, + { 0x13, 0x0e }, + { 0x0f, 0x0f }, + { 0x0f, 0x0a }, +}; + +static void task_deoxys_sound(u8 taskId) +{ + static const u8 gUnknown_085B33F6[] = { 0x04, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x06, 0x03, 0x03 }; + + if (FlagGet(FLAG_0x8D4) == TRUE) + { + gSpecialVar_Result = 3; + EnableBothScriptContexts(); + DestroyTask(taskId); + } + else + { + u16 temp1 = VarGet(VAR_0x4035); + u16 temp2 = VarGet(VAR_0x4034); + + VarSet(VAR_0x4034, 0); + if (temp1 != 0 && gUnknown_085B33F6[temp1 - 1] < temp2) + { + sub_813B0B4(0); + VarSet(VAR_0x4035, 0); + gSpecialVar_Result = 0; + DestroyTask(taskId); + } + else if (temp1 == 10) + { + FlagSet(FLAG_0x8D4); + gSpecialVar_Result = 2; + EnableBothScriptContexts(); + DestroyTask(taskId); + } + else + { + temp1++; + sub_813B0B4(temp1); + VarSet(VAR_0x4035, temp1); + gSpecialVar_Result = 1; + DestroyTask(taskId); + } + } +} + +static void sub_813B0B4(u8 a0) +{ + u8 eventObjectId; + LoadPalette(&gUnknown_085B3280[a0], 0x1A0, 8); + TryGetEventObjectIdByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &eventObjectId); + + if (a0 == 0) + { + PlaySE(SE_W109); + } + else + { + PlaySE(SE_RG_DEOMOV); + } + + CreateTask(sub_813B160, 8); + + gFieldEffectArguments[0] = 1; + gFieldEffectArguments[1] = 58; + gFieldEffectArguments[2] = 26; + gFieldEffectArguments[3] = gUnknown_085B33E0[a0][0]; + gFieldEffectArguments[4] = gUnknown_085B33E0[a0][1]; + + if (a0 == 0) + { + gFieldEffectArguments[5] = 60; + } + else + { + gFieldEffectArguments[5] = 5; + } + + FieldEffectStart(FLDEFF_66); + Overworld_SetEventObjTemplateCoords(1, gUnknown_085B33E0[a0][0], gUnknown_085B33E0[a0][1]); +} + +static void sub_813B160(u8 taskId) +{ + if (FieldEffectActiveListContains(FLDEFF_66) == FALSE) + { + EnableBothScriptContexts(); + DestroyTask(taskId); + } +} + +void increment_var_x4026_on_birth_island_modulo_100(void) +{ + u16 var = VarGet(VAR_0x4034); + if (gSaveBlock1Ptr->location.mapNum == MAP_NUM(BIRTH_ISLAND_EXTERIOR) && gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(BIRTH_ISLAND_EXTERIOR)) + { + var++; + if (var > 99) + { + VarSet(VAR_0x4034, 0); + } + else + { + VarSet(VAR_0x4034, var); + } + } +} + +void sub_813B1D0(void) +{ + LoadPalette(&gUnknown_085B3280[(u8)VarGet(VAR_0x4035)], 0x1A0, 8); + BlendPalettes(0x04000000, 16, 0); +} + +void set_unknown_box_id(u8 id) +{ + gUnknown_0203AB6F = id; +} + +u16 get_unknown_box_id(void) +{ + return gUnknown_0203AB6F; +} + +bool32 sub_813B21C(void) +{ + if (FlagGet(FLAG_SYS_STORAGE_UNKNOWN_FLAG) == FALSE) + { + if (StorageGetCurrentBox() != VarGet(VAR_STORAGE_UNKNOWN)) + { + FlagSet(FLAG_SYS_STORAGE_UNKNOWN_FLAG); + return TRUE; + } + } + return FALSE; +} + +bool8 sub_813B260(void) +{ + int box; + int i; + set_unknown_box_id(VarGet(VAR_STORAGE_UNKNOWN)); + box = StorageGetCurrentBox(); + do + { + for (i = 0; i < IN_BOX_COUNT; i++) + { + if (GetBoxMonData(GetBoxedMonPtr(box, i), MON_DATA_SPECIES, 0) == 0) + { + if (get_unknown_box_id() != box) + { + FlagClear(FLAG_SYS_STORAGE_UNKNOWN_FLAG); + } + VarSet(VAR_STORAGE_UNKNOWN, box); + return sub_813B21C(); + } + } + + if (++box == TOTAL_BOXES_COUNT) + { + box = 0; + } + } while (box != StorageGetCurrentBox()); + return FALSE; +} + +void sub_813B2E4(void) +{ + u16 randomValue = Random(); + VarSet(VAR_0x4038, 0); + + if (FlagGet(FLAG_0x1BE) == TRUE) + { + VarSet(VAR_0x4037, (randomValue & 7) + 1); + } + else if (FlagGet(FLAG_0x1BF) == TRUE) + { + VarSet(VAR_0x4037, (randomValue & 7) + 9); + } + else if ((randomValue & 1) == 0) + { + randomValue = Random(); + VarSet(VAR_0x4037, (randomValue & 7) + 1); + } + else + { + randomValue = Random(); + VarSet(VAR_0x4037, (randomValue & 7) + 9); + } +} + +bool32 sub_813B374(void) +{ + static const u8 gUnknown_085B3400[] = { 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c }; + + u16 var = VarGet(VAR_0x4037); + + GetMapName(gStringVar1, gUnknown_085B3400[var - 1], 0); + + if (var < 9) + { + return FALSE; + } + else + { + return TRUE; + } +} + +bool32 sub_813B3B0(void) +{ + static const u8 gUnknown_085B3410[] = { 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c }; + + u16 var1 = VarGet(VAR_0x4038); + u16 var2 = VarGet(VAR_0x4037); + + if (!var2) + { + return FALSE; + } + + if (++var1 > 999) + { + VarSet(VAR_0x4038, 0); + if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(UNDERWATER_MARINE_CAVE)) + { + switch (gSaveBlock1Ptr->location.mapNum) + { + case MAP_NUM(UNDERWATER_MARINE_CAVE): + case MAP_NUM(MARINE_CAVE_ENTRANCE): + case MAP_NUM(MARINE_CAVE_END): + case MAP_NUM(TERRA_CAVE_ENTRANCE): + case MAP_NUM(TERRA_CAVE_END): + VarSet(VAR_0x4039, 1); + return FALSE; + default: + break; + } + } + + if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(UNDERWATER3)) + { + switch (gSaveBlock1Ptr->location.mapNum) + { + case MAP_NUM(UNDERWATER3): + case MAP_NUM(UNDERWATER5): + case MAP_NUM(UNDERWATER6): + case MAP_NUM(UNDERWATER7): + VarSet(VAR_0x4039, 1); + return FALSE; + default: + break; + } + } + + if (gSaveBlock1Ptr->location.mapNum == gUnknown_085B3410[var2 - 1] && + gSaveBlock1Ptr->location.mapGroup == 0) + { + return TRUE; + } + else + { + VarSet(VAR_0x4037, 0); + return FALSE; + } + } + else + { + VarSet(VAR_0x4038, var1); + return FALSE; + } +} + +void sub_813B484(void) +{ + sub_80AB104(2); +} + +bool32 sub_813B490(void) +{ + static const u8 gUnknown_085B3420[][3] = { + { 0x02, 0x04, 0x01 }, + { 0x04, 0x04, 0x01 }, + { 0x05, 0x00, 0x01 }, + { 0x06, 0x03, 0x01 }, + { 0x08, 0x06, 0x01 }, + { 0x09, 0x0d, 0x01 }, + { 0x0a, 0x07, 0x01 }, + { 0x0b, 0x07, 0x01 }, + { 0x0c, 0x04, 0x01 }, + { 0x0e, 0x05, 0x01 }, + { 0x0f, 0x04, 0x01 }, + { 0x1a, 0x37, 0x01 } + }; + + u8 i; + for (i = 0; i < 12; i++) + { + if (gSaveBlock1Ptr->location.mapGroup == gUnknown_085B3420[i][0]) + { + if (gSaveBlock1Ptr->location.mapNum == gUnknown_085B3420[i][1]) + { + return gUnknown_085B3420[i][2]; + } + } + } + return TRUE; +} + +bool32 sub_813B4E0(void) +{ + int index = GetRematchIdxByTrainerIdx(gSpecialVar_0x8004); + if (index >= 0) + { + if (FlagGet(FLAG_MATCH_CALL_REGISTERED + index) == TRUE) + return TRUE; + } + return FALSE; +} + +bool32 sub_813B514(void) +{ + if (!VarGet(VAR_0x403F)) + { + return FALSE; + } + return TRUE; +} + +void sub_813B534(void) +{ + gUnknown_0203AB70 = gBattleTypeFlags; + gBattleTypeFlags = 0; + if (!gReceivedRemoteLinkPlayers) + { + CreateTask(sub_80B3AF8, 5); + } +} + +void sub_813B568(void) +{ + CreateTask(sub_813B57C, 5); +} + +static void sub_813B57C(u8 taskId) +{ + switch (gTasks[taskId].data[0]) + { + case 0: + if (!FuncIsActiveTask(sub_80B3AF8)) + { + gTasks[taskId].data[0]++; + } + break; + case 1: + if (sub_800A520() == TRUE) + { + if (GetMultiplayerId() == 0) + { + gTasks[taskId].data[0]++; + } + else + { + SendBlock(bitmask_all_link_players_but_self(), &gSpecialVar_0x8004, 2); + gTasks[taskId].data[0]++; + } + } + break; + case 2: + if ((GetBlockReceivedStatus() & 2) != 0) + { + if (GetMultiplayerId() == 0) + { + gSpecialVar_0x8005 = gBlockRecvBuffer[1][0]; + ResetBlockReceivedFlag(1); + if (gSpecialVar_0x8004 == 1 && gSpecialVar_0x8005 == 1) + { + gSpecialVar_Result = 1; + } + else if (gSpecialVar_0x8004 == 0 && gSpecialVar_0x8005 == 1) + { + gSpecialVar_Result = 2; + } + else if (gSpecialVar_0x8004 == 1 && gSpecialVar_0x8005 == 0) + { + gSpecialVar_Result = 3; + } + else + { + gSpecialVar_Result = 0; + } + } + gTasks[taskId].data[0]++; + } + break; + case 3: + if (sub_800A520() == TRUE) + { + if (GetMultiplayerId() != 0) + { + gTasks[taskId].data[0]++; + } + else + { + SendBlock(bitmask_all_link_players_but_self(), &gSpecialVar_Result, 2); + gTasks[taskId].data[0]++; + } + } + break; + case 4: + if ((GetBlockReceivedStatus() & 1) != 0) + { + if (GetMultiplayerId() != 0) + { + gSpecialVar_Result = gBlockRecvBuffer[0][0]; + ResetBlockReceivedFlag(0); + gTasks[taskId].data[0]++; + } + else + { + gTasks[taskId].data[0]++; + } + } + break; + case 5: + if (GetMultiplayerId() == 0) + { + if (gSpecialVar_Result == 2) + { + ShowFieldAutoScrollMessage(gText_YourPartnerHasRetired); + } + } + else + { + if (gSpecialVar_Result == 3) + { + ShowFieldAutoScrollMessage(gText_YourPartnerHasRetired); + } + } + gTasks[taskId].data[0]++; + break; + case 6: + if (!IsTextPrinterActive(0)) + { + gTasks[taskId].data[0]++; + } + break; + case 7: + if (sub_800A520() == 1) + { + sub_800ADF8(); + gTasks[taskId].data[0]++; + } + break; + case 8: + if (sub_800A520() == 1) + { + gTasks[taskId].data[0]++; + } + break; + case 9: + if (gWirelessCommType == 0) + { + sub_800AC34(); + } + gBattleTypeFlags = gUnknown_0203AB70; + EnableBothScriptContexts(); + DestroyTask(taskId); + break; + } +} + +void sub_813B7D8(void) +{ + if (gSpecialVar_0x8004 == 0) + { + DoRayquazaScene(0, TRUE, CB2_ReturnToFieldContinueScriptPlayMapMusic); + } + else + { + DoRayquazaScene(1, FALSE, CB2_ReturnToFieldContinueScriptPlayMapMusic); + } +} + +void sub_813B80C(void) +{ + CreateTask(sub_813B824, 8); + PlaySE(SE_W017); +} + +static void sub_813B824(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + + data[1]++; + if (data[1] == gSpecialVar_0x8005) + { + data[0]++; + data[1] = 0; + PlaySE(SE_W017); + } + + if (data[0] == gSpecialVar_0x8004 - 1) + { + DestroyTask(taskId); + } +} + +void sub_813B880(void) +{ + u8 taskId = CreateTask(_fwalk, 8); + gTasks[taskId].data[0] = 4; + gTasks[taskId].data[1] = 4; + gTasks[taskId].data[2] = 4; + gTasks[taskId].data[3] = 0; +} + +static void _fwalk(u8 taskId) +{ + u8 x, y; + s16 *data = gTasks[taskId].data; + + data[data[3]]--; + if (data[data[3]] == 0) + { + for (y = 0; y < 4; y++) + { + for (x = 0; x < 3; x++) + { + MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + x + 6, gSaveBlock1Ptr->pos.y + y + 4, x + 0x201 + y * 8 + data[3] * 32); + } + } + DrawWholeMapView(); + data[3]++; + if (data[3] == 3) + { + DestroyTask(taskId); + EnableBothScriptContexts(); + } + } +} + +void sub_813B968(void) +{ + gSpecialVar_Result = gSpecialVar_0x8004 / 7; + gSpecialVar_Result -= (gSpecialVar_Result / 20) * 20; +} + +void sub_813B9A0(void) +{ + if (gSaveBlock1Ptr->lastHealLocation.mapGroup == MAP_GROUP(DEWFORD_TOWN) && gSaveBlock1Ptr->lastHealLocation.mapNum == MAP_NUM(DEWFORD_TOWN)) + { + Overworld_SetHealLocationWarp(3); + } +} + +bool32 sub_813B9C0(void) +{ + static const u16 gUnknown_085B3444[] = { + MAP_OLDALE_TOWN_POKEMON_CENTER_1F, + MAP_DEWFORD_TOWN_POKEMON_CENTER_1F, + MAP_LAVARIDGE_TOWN_POKEMON_CENTER_1F, + MAP_FALLARBOR_TOWN_POKEMON_CENTER_1F, + MAP_VERDANTURF_TOWN_POKEMON_CENTER_1F, + MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_1F, + MAP_PETALBURG_CITY_POKEMON_CENTER_1F, + MAP_SLATEPORT_CITY_POKEMON_CENTER_1F, + MAP_MAUVILLE_CITY_POKEMON_CENTER_1F, + MAP_RUSTBORO_CITY_POKEMON_CENTER_1F, + MAP_FORTREE_CITY_POKEMON_CENTER_1F, + MAP_LILYCOVE_CITY_POKEMON_CENTER_1F, + MAP_MOSSDEEP_CITY_POKEMON_CENTER_1F, + MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_1F, + MAP_EVER_GRANDE_CITY_POKEMON_CENTER_1F, + MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE_1F, + MAP_BATTLE_FRONTIER_POKEMON_CENTER_1F, + MAP_SINGLE_BATTLE_COLOSSEUM, + MAP_TRADE_CENTER, + MAP_RECORD_CORNER, + MAP_DOUBLE_BATTLE_COLOSSEUM, + 0xffff + }; + + int i; + u16 map = (gSaveBlock1Ptr->location.mapGroup << 8) + gSaveBlock1Ptr->location.mapNum; + + for (i = 0; gUnknown_085B3444[i] != 0xFFFF; i++) + { + if (gUnknown_085B3444[i] == map) + { + return TRUE; + } + } + return FALSE; +} + +void ResetFanClub(void) +{ + gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] = 0; + gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_2 - VARS_START] = 0; +} + +void sub_813BA30(void) +{ + if (sub_813BF44() != 0) + { + UpdateMovedLilycoveFanClubMembers(); + gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_2 - VARS_START] = gSaveBlock2Ptr->playTimeHours; + } +} + +void sub_813BA60(void) +{ + if (!((gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] >> 7) & 1)) + { + sub_813BF60(); + sub_813BD84(); + gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_2 - VARS_START] = gSaveBlock2Ptr->playTimeHours; + FlagClear(FLAG_HIDE_FANCLUB_OLD_LADY); + FlagClear(FLAG_HIDE_FANCLUB_BOY); + FlagClear(FLAG_HIDE_FANCLUB_LITTLE_BOY); + FlagClear(FLAG_HIDE_FANCLUB_LADY); + FlagClear(FLAG_0x2DA); + VarSet(VAR_LILYCOVE_FAN_CLUB_STATE, 1); + } +} + +u8 sub_813BADC(u8 a0) +{ + static const u8 gUnknown_085B3470[] = { 0x02, 0x01, 0x02, 0x01 }; + + if (VarGet(VAR_LILYCOVE_FAN_CLUB_STATE) == 2) + { + if ((gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] & 0x7F) + gUnknown_085B3470[a0] > 19) + { + if (GetNumMovedLilycoveFanClubMembers() < 3) + { + sub_813BB74(); + gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] &= 0xFF80; + } + else + { + gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] = (gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] & 0xFF80) | 0x14; + } + } + else + { + gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] += gUnknown_085B3470[a0]; + } + } + + return gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] & 0x7F; +} + +static u16 sub_813BB74(void) +{ + static const u8 gUnknown_085B3474[] = { 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }; + + u8 i; + u8 retVal = 0; + + for (i = 0; i < 8; i++) + { + if (!((gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] >> gUnknown_085B3474[i]) & 1)) + { + retVal = i; + if ((Random() & 1) != 0) + { + gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] |= 1 << gUnknown_085B3474[retVal]; + return retVal; + } + } + } + gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] |= 1 << gUnknown_085B3474[retVal]; + return retVal; +} + +static u16 sub_813BC00(void) +{ + static const u8 gUnknown_085B347C[] = { 0x08, 0x0d, 0x0e, 0x0b, 0x0a, 0x0c, 0x0f, 0x09 }; + + u8 i; + u8 retVal = 0; + + if (GetNumMovedLilycoveFanClubMembers() == 1) + { + return 0; + } + + for (i = 0; i < 8; i++) + { + if (((gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] >> gUnknown_085B347C[i]) & 1) != 0) + { + retVal = i; + if ((Random() & 1) != 0) + { + gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] ^= 1 << gUnknown_085B347C[retVal]; + return retVal; + } + } + } + + if (((gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] >> gUnknown_085B347C[retVal]) & 1)) + { + gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] ^= 1 << gUnknown_085B347C[retVal]; + } + + return retVal; +} + +u16 GetNumMovedLilycoveFanClubMembers(void) +{ + u8 i; + u8 retVal = 0; + + for (i = 0; i < 8; i++) + { + if (((gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] >> (i + 8)) & 1) != 0) + { + retVal++; + } + } + + return retVal; +} + +void UpdateMovedLilycoveFanClubMembers(void) +{ + u8 i = 0; + if (gSaveBlock2Ptr->playTimeHours < 999) + { + while (TRUE) + { + if (GetNumMovedLilycoveFanClubMembers() < 5) + { + gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_2 - VARS_START] = gSaveBlock2Ptr->playTimeHours; + break; + } + else if (i == 8) + { + break; + } + else if (gSaveBlock2Ptr->playTimeHours - gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_2 - VARS_START] < 12) + { + return; + } + sub_813BC00(); + gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_2 - VARS_START] += 12; + i++; + } + } +} + +bool8 ShouldMoveLilycoveFanClubMember(void) +{ + return (gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] >> gSpecialVar_0x8004) & 1; +} + +static void sub_813BD84(void) +{ + gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] |= 0x2000; + gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] |= 0x100; + gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] |= 0x400; +} + +void BufferStreakTrainerText(void) +{ + u8 a = 0; + u8 b = 0; + switch (gSpecialVar_0x8004) + { + case 8: + break; + case 9: + break; + case 10: + a = 0; + b = 3; + break; + case 11: + a = 0; + b = 1; + break; + case 12: + a = 1; + b = 0; + break; + case 13: + a = 0; + b = 4; + break; + case 14: + a = 1; + b = 5; + break; + case 15: + break; + } + sub_813BE30(&gSaveBlock1Ptr->linkBattleRecords, a, b); +} + +static void sub_813BE30(struct LinkBattleRecords *linkRecords, u8 a, u8 b) +{ + struct LinkBattleRecord *record = &linkRecords->entries[a]; + if (record->name[0] == EOS) + { + switch (b) + { + case 0: + StringCopy(gStringVar1, gText_Wallace); + break; + case 1: + StringCopy(gStringVar1, gText_Steven); + break; + case 2: + StringCopy(gStringVar1, gText_Brawly); + break; + case 3: + StringCopy(gStringVar1, gText_Winona); + break; + case 4: + StringCopy(gStringVar1, gText_Phoebe); + break; + case 5: + StringCopy(gStringVar1, gText_Glacia); + break; + default: + StringCopy(gStringVar1, gText_Wallace); + break; + } + } + else + { + StringCopyN(gStringVar1, record->name, 7); + gStringVar1[7] = EOS; + ConvertInternationalString(gStringVar1, linkRecords->languages[a]); + } +} + +void sub_813BF10(void) +{ + if (VarGet(VAR_LILYCOVE_FAN_CLUB_STATE) == 2) + { + sub_813BA30(); + if (gBattleOutcome == 1) + { + sub_813BB74(); + } + else + { + sub_813BC00(); + } + } +} + +static bool8 sub_813BF44(void) +{ + return (gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] >> 7) & 1; +} + +void sub_813BF60(void) +{ + gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] |= 0x80; +} + +u8 sub_813BF7C(void) +{ + return sub_813BADC(gSpecialVar_0x8004); +} diff --git a/src/main_menu.c b/src/main_menu.c index 87673c9b2..3afe1abe5 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -1965,7 +1965,7 @@ void sub_80323CC(u8 a, u8 b, u16 c, u16 d, u8 e, u8 f) { struct WindowTemplate sp; - sp = sub_8198A50(0, a + 1, b + 1, 5, 4, f, d); + sp = CreateWindowTemplate(0, a + 1, b + 1, 5, 4, f, d); CreateYesNoMenu(&sp, c, e, 0); } diff --git a/src/match_call.c b/src/match_call.c index aa6945161..99eb6d65a 100644 --- a/src/match_call.c +++ b/src/match_call.c @@ -360,7 +360,7 @@ MATCHCALLDEF(sMomMatchCallHeader, 0, 0, FLAG_0x0D8, gMomMatchCallDesc, gMomMatch static const match_call_text_data_t sStevenTextScripts[] = { { gText_Steven_Pokenav_2B5B95, 0xffff, 0xffff }, - { gText_Steven_Pokenav_2B5C53, FLAG_0x0C7, 0xffff }, + { gText_Steven_Pokenav_2B5C53, FLAG_RUSTURF_TUNNEL_OPENED, 0xffff }, { gText_Steven_Pokenav_2B5CC9, FLAG_0x0D4, 0xffff }, { gText_Steven_Pokenav_2B5DB4, FLAG_0x070, 0xffff }, { gText_Steven_Pokenav_2B5E26, FLAG_0x4F6, 0xffff }, @@ -415,7 +415,7 @@ MATCHCALLDEF(sBrendanMatchCallHeader, 4, FEMALE, FLAG_0x0FD, gMayBrendanMatchCal static const match_call_text_data_t sWallyTextScripts[] = { { gText_Wally_Pokenav_2B4DE2, 0xFFFF, 0xFFFF }, - { gText_Wally_Pokenav_2B4E57, FLAG_0x0C7, 0xFFFF }, + { gText_Wally_Pokenav_2B4E57, FLAG_RUSTURF_TUNNEL_OPENED, 0xFFFF }, { gText_Wally_Pokenav_2B4EA5, FLAG_0x4F3, 0xFFFF }, { gText_Wally_Pokenav_2B4F41, FLAG_0x097, 0xFFFF }, { gText_Wally_Pokenav_2B4FF3, FLAG_0x06F, 0xFFFF }, diff --git a/src/menu.c b/src/menu.c index 96dda3075..f4ffec023 100644 --- a/src/menu.c +++ b/src/menu.c @@ -120,7 +120,6 @@ extern void DrawWindowBorder(u8, u8, u8, u8, u8, u8); extern void sub_81980A8(u8, u8, u8, u8, u8, u8); extern u8 MoveMenuCursor(s8); extern u8 sub_8199134(s8, s8); -extern void sub_8199F74(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 speed, void (*callback)(struct TextSubPrinter *, u16), u8 letterSpacing, u8 lineSpacing); extern void sub_8198C78(void); extern void task_free_buf_after_copying_tile_data_to_vram(u8 taskId); @@ -1143,7 +1142,7 @@ void SetWindowTemplateFields(struct WindowTemplate *template, u8 bg, u8 left, u8 template->baseBlock = baseBlock; } -struct WindowTemplate sub_8198A50(u8 bg, u8 left, u8 top, u8 width, u8 height, u8 paletteNum, u16 baseBlock) +struct WindowTemplate CreateWindowTemplate(u8 bg, u8 left, u8 top, u8 width, u8 height, u8 paletteNum, u16 baseBlock) { struct WindowTemplate template; SetWindowTemplateFields(&template, bg, left, top, width, height, paletteNum, baseBlock); diff --git a/src/region_map.c b/src/region_map.c index 5176d4996..4ed856c09 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -52,7 +52,7 @@ static EWRAM_DATA struct { /*0x88c*/ u8 unk_88c[0x1c0]; /*0xa4c*/ u8 unk_a4c[0x26]; /*0xa72*/ bool8 unk_a72; -} *gUnknown_0203A148 = NULL; // a74 +} *sFlyMap = NULL; // a74 static bool32 gUnknown_03001180; static bool32 gUnknown_03001184; @@ -1578,8 +1578,8 @@ void MCB2_FlyMap(void) SetGpuReg(REG_OFFSET_BG2HOFS, 0); SetGpuReg(REG_OFFSET_BG3HOFS, 0); SetGpuReg(REG_OFFSET_BG3VOFS, 0); - gUnknown_0203A148 = malloc(sizeof(*gUnknown_0203A148)); - if (gUnknown_0203A148 == NULL) + sFlyMap = malloc(sizeof(*sFlyMap)); + if (sFlyMap == NULL) { SetMainCallback2(CB2_ReturnToFieldWithOpenMenu); } @@ -1608,11 +1608,11 @@ void MCB2_FlyMap(void) gMain.state++; break; case 4: - InitRegionMap(&gUnknown_0203A148->regionMap, FALSE); + InitRegionMap(&sFlyMap->regionMap, FALSE); CreateRegionMapCursor(0, 0); CreateRegionMapPlayerIcon(1, 1); - gUnknown_0203A148->mapSecId = gUnknown_0203A148->regionMap.mapSecId; - StringFill(gUnknown_0203A148->unk_a4c, CHAR_SPACE, 16); + sFlyMap->mapSecId = sFlyMap->regionMap.mapSecId; + StringFill(sFlyMap->unk_a4c, CHAR_SPACE, 16); gUnknown_03001180 = TRUE; sub_8124904(); gMain.state++; @@ -1664,7 +1664,7 @@ static void sub_81248C0(void) static void sub_81248D4(void) { - gUnknown_0203A148->unk_000(); + sFlyMap->unk_000(); AnimateSprites(); BuildOamBuffer(); do_scheduled_bg_tilemap_copies_to_vram(); @@ -1672,8 +1672,8 @@ static void sub_81248D4(void) static void sub_81248F4(void callback(void)) { - gUnknown_0203A148->unk_000 = callback; - gUnknown_0203A148->unk_004 = 0; + sFlyMap->unk_000 = callback; + sFlyMap->unk_004 = 0; } static void sub_8124904(void) @@ -1682,21 +1682,21 @@ static void sub_8124904(void) bool32 flag; const u8 *name; - if (gUnknown_0203A148->regionMap.iconDrawType > MAPSECTYPE_NONE && gUnknown_0203A148->regionMap.iconDrawType <= MAPSECTYPE_BATTLE_FRONTIER) + if (sFlyMap->regionMap.iconDrawType > MAPSECTYPE_NONE && sFlyMap->regionMap.iconDrawType <= MAPSECTYPE_BATTLE_FRONTIER) { flag = FALSE; for (i = 0; i < 1; i++) { - if (gUnknown_0203A148->regionMap.mapSecId == gUnknown_085A1EDC[i].mapSecId) + if (sFlyMap->regionMap.mapSecId == gUnknown_085A1EDC[i].mapSecId) { if (FlagGet(gUnknown_085A1EDC[i].flag)) { - StringLength(gUnknown_085A1EDC[i].name[gUnknown_0203A148->regionMap.posWithinMapSec]); + StringLength(gUnknown_085A1EDC[i].name[sFlyMap->regionMap.posWithinMapSec]); flag = TRUE; sub_8198070(0, FALSE); SetWindowBorderStyle(1, FALSE, 0x65, 0x0d); - PrintTextOnWindow(1, 1, gUnknown_0203A148->regionMap.mapSecName, 0, 1, 0, NULL); - name = gUnknown_085A1EDC[i].name[gUnknown_0203A148->regionMap.posWithinMapSec]; + PrintTextOnWindow(1, 1, sFlyMap->regionMap.mapSecName, 0, 1, 0, NULL); + name = gUnknown_085A1EDC[i].name[sFlyMap->regionMap.posWithinMapSec]; PrintTextOnWindow(1, 1, name, GetStringRightAlignXOffset(1, name, 0x60), 0x11, 0, NULL); schedule_bg_copy_tilemap_to_vram(0); gUnknown_03001180 = TRUE; @@ -1715,7 +1715,7 @@ static void sub_8124904(void) { FillWindowPixelBuffer(0, 0x11); } - PrintTextOnWindow(0, 1, gUnknown_0203A148->regionMap.mapSecName, 0, 1, 0, NULL); + PrintTextOnWindow(0, 1, sFlyMap->regionMap.mapSecName, 0, 1, 0, NULL); schedule_bg_copy_tilemap_to_vram(0); gUnknown_03001180 = FALSE; } @@ -1739,8 +1739,8 @@ static void sub_8124A70(void) { struct SpriteSheet sheet; - LZ77UnCompWram(sUnknown_085A1D68, gUnknown_0203A148->unk_88c); - sheet.data = gUnknown_0203A148->unk_88c; + LZ77UnCompWram(sUnknown_085A1D68, sFlyMap->unk_88c); + sheet.data = sFlyMap->unk_88c; sheet.size = 0x1c0; sheet.tag = 2; LoadSpriteSheet(&sheet); @@ -1829,7 +1829,7 @@ static void sub_8124BE4(void) static void sub_8124CBC(struct Sprite *sprite) { - if (gUnknown_0203A148->regionMap.mapSecId == sprite->data[0]) + if (sFlyMap->regionMap.mapSecId == sprite->data[0]) { if (++sprite->data[1] > 16) { @@ -1846,11 +1846,11 @@ static void sub_8124CBC(struct Sprite *sprite) static void sub_8124D14(void) { - switch (gUnknown_0203A148->unk_004) + switch (sFlyMap->unk_004) { case 0: BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); - gUnknown_0203A148->unk_004++; + sFlyMap->unk_004++; break; case 1: if (!UpdatePaletteFade()) @@ -1863,7 +1863,7 @@ static void sub_8124D14(void) static void sub_8124D64(void) { - if (gUnknown_0203A148->unk_004 == 0) + if (sFlyMap->unk_004 == 0) { switch (sub_81230AC()) { @@ -1875,16 +1875,16 @@ static void sub_8124D64(void) sub_8124904(); break; case INPUT_EVENT_A_BUTTON: - if (gUnknown_0203A148->regionMap.iconDrawType == MAPSECTYPE_CITY_CANFLY || gUnknown_0203A148->regionMap.iconDrawType == MAPSECTYPE_BATTLE_FRONTIER) + if (sFlyMap->regionMap.iconDrawType == MAPSECTYPE_CITY_CANFLY || sFlyMap->regionMap.iconDrawType == MAPSECTYPE_BATTLE_FRONTIER) { m4aSongNumStart(SE_SELECT); - gUnknown_0203A148->unk_a72 = TRUE; + sFlyMap->unk_a72 = TRUE; sub_81248F4(sub_8124E0C); } break; case INPUT_EVENT_B_BUTTON: m4aSongNumStart(SE_SELECT); - gUnknown_0203A148->unk_a72 = FALSE; + sFlyMap->unk_a72 = FALSE; sub_81248F4(sub_8124E0C); break; } @@ -1893,19 +1893,19 @@ static void sub_8124D64(void) static void sub_8124E0C(void) { - switch (gUnknown_0203A148->unk_004) + switch (sFlyMap->unk_004) { case 0: BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); - gUnknown_0203A148->unk_004++; + sFlyMap->unk_004++; break; case 1: if (!UpdatePaletteFade()) { FreeRegionMapIconResources(); - if (gUnknown_0203A148->unk_a72) + if (sFlyMap->unk_a72) { - switch (gUnknown_0203A148->regionMap.mapSecId) + switch (sFlyMap->regionMap.mapSecId) { case MAPSEC_SOUTHERN_ISLAND: sub_8084CCC(0x15); @@ -1917,16 +1917,16 @@ static void sub_8124E0C(void) sub_8084CCC(gSaveBlock2Ptr->playerGender == MALE ? 0x0C : 0x0D); break; case MAPSEC_EVER_GRANDE_CITY: - sub_8084CCC(FlagGet(FLAG_LANDMARK_POKEMON_LEAGUE) && gUnknown_0203A148->regionMap.posWithinMapSec == 0 ? 0x14 : 0x0B); + sub_8084CCC(FlagGet(FLAG_LANDMARK_POKEMON_LEAGUE) && sFlyMap->regionMap.posWithinMapSec == 0 ? 0x14 : 0x0B); break; default: - if (sUnknown_085A1E3C[gUnknown_0203A148->regionMap.mapSecId][2] != 0) + if (sUnknown_085A1E3C[sFlyMap->regionMap.mapSecId][2] != 0) { - sub_8084CCC(sUnknown_085A1E3C[gUnknown_0203A148->regionMap.mapSecId][2]); + sub_8084CCC(sUnknown_085A1E3C[sFlyMap->regionMap.mapSecId][2]); } else { - warp1_set_2(sUnknown_085A1E3C[gUnknown_0203A148->regionMap.mapSecId][0], sUnknown_085A1E3C[gUnknown_0203A148->regionMap.mapSecId][1], -1); + warp1_set_2(sUnknown_085A1E3C[sFlyMap->regionMap.mapSecId][0], sUnknown_085A1E3C[sFlyMap->regionMap.mapSecId][1], -1); } break; } @@ -1936,10 +1936,10 @@ static void sub_8124E0C(void) { SetMainCallback2(sub_81B58A8); } - if (gUnknown_0203A148 != NULL) + if (sFlyMap != NULL) { - free(gUnknown_0203A148); - gUnknown_0203A148 = NULL; + free(sFlyMap); + sFlyMap = NULL; } FreeAllWindowBuffers(); } diff --git a/src/rotating_gate.c b/src/rotating_gate.c index 1f5ef165f..fcced6c8c 100644 --- a/src/rotating_gate.c +++ b/src/rotating_gate.c @@ -189,12 +189,6 @@ struct RotatingGatePuzzle u8 orientation; }; -struct Coords8 -{ - s8 deltaX; - s8 deltaY; -}; - // .rodata // Fortree static const struct RotatingGatePuzzle sRotatingGate_FortreePuzzleConfig[] = diff --git a/src/scrcmd.c b/src/scrcmd.c index a15ad666c..01d04704a 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -1515,7 +1515,7 @@ bool8 ScrCmd_braillemessage(struct ScriptContext *ctx) xText = (xWindow - xText - 1) * 8 + 3; yText = (yText - yWindow - 1) * 8; - winTemplate = sub_8198A50(0, xWindow, yWindow + 1, width, height, 0xF, 0x1); + winTemplate = CreateWindowTemplate(0, xWindow, yWindow + 1, width, height, 0xF, 0x1); gUnknown_03000F30 = AddWindow(&winTemplate); LoadUserWindowBorderGfx(gUnknown_03000F30, 0x214, 0xE0); NewMenuHelpers_DrawStdWindowFrame(gUnknown_03000F30, 0); diff --git a/src/wallclock.c b/src/wallclock.c index 9b96d416c..3d95d75ac 100644 --- a/src/wallclock.c +++ b/src/wallclock.c @@ -602,7 +602,7 @@ static void WallClockInit(void) ShowBg(3); } -void Cb2_StartWallClock(void) +void CB2_StartWallClock(void) { u8 taskId; u8 spriteId; @@ -644,7 +644,7 @@ void Cb2_StartWallClock(void) schedule_bg_copy_tilemap_to_vram(2); } -void Cb2_ViewWallClock(void) +void CB2_ViewWallClock(void) { u8 taskId; u8 spriteId; diff --git a/sym_common.txt b/sym_common.txt index 3fa302968..0158b7615 100644 --- a/sym_common.txt +++ b/sym_common.txt @@ -91,8 +91,7 @@ gUnknown_030061C0: @ 30061C0 gUnknown_030061C4: @ 30061C4 .space 0xC -gUnknown_030061D0: @ 30061D0 - .space 0x18 + .include "field_specials.o" gCB2_AfterEvolution: @ 30061E8 .space 0x4 diff --git a/sym_ewram.txt b/sym_ewram.txt index 9a08597a8..37a34b19a 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -603,55 +603,7 @@ gPlayerFacingPosition: @ 203AB40 .space 0x8 .include "src/pokeblock.o" - -gBikeCyclingChallenge: @ 203AB54 - .space 0x1 - -gBikeCollisions: @ 203AB55 - .space 0x3 - -gUnknown_0203AB58: @ 203AB58 - .space 0x4 - -gUnknown_0203AB5C: @ 203AB5C - .space 0x1 - -gUnknown_0203AB5D: @ 203AB5D - .space 0x1 - -gUnknown_0203AB5E: @ 203AB5E - .space 0x2 - -gUnknown_0203AB60: @ 203AB60 - .space 0x2 - -gUnknown_0203AB62: @ 203AB62 - .space 0x2 - -gUnknown_0203AB64: @ 203AB64 - .space 0x4 - -gUnknown_0203AB68: @ 203AB68 - .space 0x2 - -gUnknown_0203AB6A: @ 203AB6A - .space 0x2 - -gUnknown_0203AB6C: @ 203AB6C - .space 0x1 - -gUnknown_0203AB6D: @ 203AB6D - .space 0x1 - -gUnknown_0203AB6E: @ 203AB6E - .space 0x1 - -gUnknown_0203AB6F: @ 203AB6F - .space 0x1 - -gUnknown_0203AB70: @ 203AB70 - .space 0x4 - + .include "src/field_specials.o" .include "src/battle_records.o" gUnknown_0203AB7C: @ 203AB7C |