diff --git a/.gitattributes b/.gitattributes index 18a043001..96c1c1231 100644 --- a/.gitattributes +++ b/.gitattributes @@ -12,3 +12,6 @@ Makefile text eol=lf *.png binary *.bin binary + +*.h linguist-language=C +*.inc linguist-language=Assembly diff --git a/.gitignore b/.gitignore index f450c83f7..e1600820c 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,4 @@ tools/* *.sa* Thumbs.db .DS_Store +*.ddump diff --git a/asm/battle_1.s b/asm/battle_1.s index 8b0c99138..636bafbea 100644 --- a/asm/battle_1.s +++ b/asm/battle_1.s @@ -1548,7 +1548,7 @@ _080358E0: .4byte _08035A70 _08035904: ldr r4, =gUnknown_0831ABA8 - ldr r5, =gUnknown_02022FF0 + ldr r5, =gBattleTerrain ldrb r1, [r5] lsls r0, r1, 2 adds r0, r1 @@ -1886,9 +1886,9 @@ sub_8035C4C: @ 8035C4C ldrb r2, [r0] cmp r2, 0x3 bne _08035C68 - ldr r0, =gUnknown_085CCBAD + ldr r0, =gText_Draw movs r1, 0x15 - bl battle_show_message_maybe + bl sub_814F9EC b _08035D68 .pool _08035C68: @@ -1962,12 +1962,12 @@ _08035CE2: cmp r0, 0 beq _08035D36 _08035CFC: - ldr r0, =gUnknown_085CCB9E + ldr r0, =gText_Win movs r1, 0x17 - bl battle_show_message_maybe - ldr r0, =gUnknown_085CCBA5 + bl sub_814F9EC + ldr r0, =gText_Loss movs r1, 0x16 - bl battle_show_message_maybe + bl sub_814F9EC b _08035D68 .pool _08035D20: @@ -1983,21 +1983,21 @@ _08035D20: cmp r0, 0 beq _08035D58 _08035D36: - ldr r0, =gUnknown_085CCB9E + ldr r0, =gText_Win movs r1, 0x16 - bl battle_show_message_maybe - ldr r0, =gUnknown_085CCBA5 + bl sub_814F9EC + ldr r0, =gText_Loss movs r1, 0x17 - bl battle_show_message_maybe + bl sub_814F9EC b _08035D68 .pool _08035D58: - ldr r0, =gUnknown_085CCB9E + ldr r0, =gText_Win movs r1, 0x17 - bl battle_show_message_maybe - ldr r0, =gUnknown_085CCBA5 + bl sub_814F9EC + ldr r0, =gText_Loss movs r1, 0x16 - bl battle_show_message_maybe + bl sub_814F9EC _08035D68: pop {r0} bx r0 @@ -2068,14 +2068,14 @@ _08035DDC: _08035DE6: adds r0, r1, 0 movs r1, 0x11 - bl battle_show_message_maybe + bl sub_814F9EC ldrb r1, [r4, 0x18] movs r0, 0x4 b _08035E14 _08035DF4: adds r0, r1, 0 movs r1, 0x12 - bl battle_show_message_maybe + bl sub_814F9EC ldrb r1, [r4, 0x18] movs r0, 0x4 str r0, [sp] @@ -2085,7 +2085,7 @@ _08035DF4: _08035E08: adds r0, r1, 0 movs r1, 0x13 - bl battle_show_message_maybe + bl sub_814F9EC ldrb r1, [r4, 0x18] movs r0, 0x8 _08035E14: @@ -2099,7 +2099,7 @@ _08035E1A: _08035E22: adds r0, r1, 0 movs r1, 0x14 - bl battle_show_message_maybe + bl sub_814F9EC ldrb r1, [r4, 0x18] movs r0, 0x8 str r0, [sp] @@ -2139,14 +2139,14 @@ _08035E66: adds r1, r0, r4 adds r0, r1, 0 movs r1, 0xF - bl battle_show_message_maybe + bl sub_814F9EC lsls r0, r6, 3 subs r0, r6 lsls r0, 2 adds r1, r0, r4 adds r0, r1, 0 movs r1, 0x10 - bl battle_show_message_maybe + bl sub_814F9EC movs r4, 0x7 str r4, [sp] adds r0, r7, 0 @@ -2236,7 +2236,7 @@ _08035F64: ldrsh r0, [r5, r1] cmp r0, 0 beq _08035FCC - ldr r4, =gUnknown_02022E18 + ldr r4, =gBattle_BG1_X ldrh r0, [r5, 0xA] bl Sin2 lsls r0, 16 @@ -2251,7 +2251,7 @@ _08035F7E: adds r0, r2, 0 subs r0, r1 strh r0, [r4] - ldr r4, =gUnknown_02022E1C + ldr r4, =gBattle_BG2_X ldrh r0, [r5, 0xC] bl Sin2 lsls r0, 16 @@ -2266,16 +2266,16 @@ _08035F9C: adds r0, r3, 0 subs r0, r1 strh r0, [r4] - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y ldr r2, =0x0000ffdc adds r1, r2, 0 strh r1, [r0] - ldr r0, =gUnknown_02022E1E + ldr r0, =gBattle_BG2_Y strh r1, [r0] b _08036038 .pool _08035FCC: - ldr r4, =gUnknown_02022E18 + ldr r4, =gBattle_BG1_X ldrh r0, [r5, 0xA] bl Sin2 lsls r0, 16 @@ -2290,7 +2290,7 @@ _08035FDE: adds r0, r3, 0 subs r0, r1 strh r0, [r4] - ldr r4, =gUnknown_02022E1A + ldr r4, =gBattle_BG1_Y ldrh r0, [r5, 0xA] bl Cos2 lsls r0, 16 @@ -2302,7 +2302,7 @@ _08035FFC: asrs r0, 5 subs r0, 0xA4 strh r0, [r4] - ldr r4, =gUnknown_02022E1C + ldr r4, =gBattle_BG2_X ldrh r0, [r5, 0xC] bl Sin2 lsls r0, 16 @@ -2317,7 +2317,7 @@ _08036014: adds r0, r2, 0 subs r0, r1 strh r0, [r4] - ldr r4, =gUnknown_02022E1E + ldr r4, =gBattle_BG2_Y ldrh r0, [r5, 0xC] bl Cos2 lsls r0, 16 @@ -2504,11 +2504,11 @@ sub_8036154: @ 8036154 movs r0, 0x4A movs r1, 0x36 bl SetGpuReg - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y ldr r2, =0x0000ff5c adds r1, r2, 0 strh r1, [r0] - ldr r0, =gUnknown_02022E1E + ldr r0, =gBattle_BG2_Y strh r1, [r0] ldr r0, =gUnknown_0831AA00 bl LoadCompressedObjectPicUsingHeap @@ -2633,7 +2633,7 @@ _08036350: cmp r0, 0 bne _0803639C ldr r4, =gUnknown_0831ABA8 - ldr r5, =gUnknown_02022FF0 + ldr r5, =gBattleTerrain ldrb r1, [r5] lsls r0, r1, 2 adds r0, r1 @@ -2779,7 +2779,7 @@ _080364A8: .4byte _08036518 _080364CC: ldr r2, =gUnknown_0831ABA8 - ldr r0, =gUnknown_02022FF0 + ldr r0, =gBattleTerrain ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 @@ -2889,7 +2889,7 @@ _080365B4: .4byte _08036624 _080365D8: ldr r2, =gUnknown_0831ABA8 - ldr r0, =gUnknown_02022FF0 + ldr r0, =gBattleTerrain ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 @@ -3004,7 +3004,7 @@ _080366C8: .4byte _08036740 _080366EC: ldr r2, =gUnknown_0831ABA8 - ldr r0, =gUnknown_02022FF0 + ldr r0, =gBattleTerrain ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 diff --git a/asm/battle_2.s b/asm/battle_2.s index dd3e6d38c..996579313 100644 --- a/asm/battle_2.s +++ b/asm/battle_2.s @@ -157,20 +157,20 @@ _080368BE: strh r1, [r0] ldr r0, =gUnknown_02022E16 strh r1, [r0] - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X strh r1, [r0] - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y strh r1, [r0] - ldr r0, =gUnknown_02022E1C + ldr r0, =gBattle_BG2_X strh r1, [r0] - ldr r0, =gUnknown_02022E1E + ldr r0, =gBattle_BG2_Y strh r1, [r0] - ldr r0, =gUnknown_02022E20 + ldr r0, =gBattle_BG3_X strh r1, [r0] ldr r0, =gUnknown_02022E22 strh r1, [r0] bl sub_80B0BD0 - ldr r2, =gUnknown_02022FF0 + ldr r2, =gBattleTerrain strb r0, [r2] ldr r4, =gBattleTypeFlags ldr r0, [r4] @@ -191,7 +191,7 @@ _080368FE: ldr r1, =gReservedSpritePaletteCount movs r0, 0x4 strb r0, [r1] - ldr r0, =vblank_cb_08078BB4 + ldr r0, =VBlankCB_Battle bl SetVBlankCallback bl sub_803269C ldr r2, [r4] @@ -1399,7 +1399,7 @@ _080373E0: str r0, [r2] ldr r0, =sub_8039EF0 str r0, [r1] - ldr r0, =sub_8038420 + ldr r0, =BattleMainCB2 bl SetMainCallback2 ldr r2, =gBattleTypeFlags ldr r1, [r2] @@ -1999,7 +1999,7 @@ _080379A0: str r0, [r2] ldr r0, =sub_8039EF0 str r0, [r1] - ldr r0, =sub_8038420 + ldr r0, =BattleMainCB2 bl SetMainCallback2 ldr r2, =gBattleTypeFlags ldr r1, [r2] @@ -3130,7 +3130,7 @@ _080383BC: str r0, [r2] ldr r0, =sub_8039EF0 str r0, [r1] - ldr r0, =sub_8038420 + ldr r0, =BattleMainCB2 bl SetMainCallback2 ldr r3, =gBattleTypeFlags ldr r2, [r3] @@ -3156,8 +3156,8 @@ _080383F8: .pool thumb_func_end sub_8037DF4 - thumb_func_start sub_8038420 -sub_8038420: @ 8038420 + thumb_func_start BattleMainCB2 +BattleMainCB2: @ 8038420 push {lr} sub sp, 0x4 bl AnimateSprites @@ -3203,7 +3203,7 @@ _08038482: pop {r0} bx r0 .pool - thumb_func_end sub_8038420 + thumb_func_end BattleMainCB2 thumb_func_start sub_803849C sub_803849C: @ 803849C @@ -3906,8 +3906,8 @@ _08038A1E: .pool thumb_func_end sub_8038A04 - thumb_func_start vblank_cb_08078BB4 -vblank_cb_08078BB4: @ 8038A28 + thumb_func_start VBlankCB_Battle +VBlankCB_Battle: @ 8038A28 push {lr} ldr r0, =gBattleTypeFlags ldr r0, [r0] @@ -3925,23 +3925,23 @@ _08038A3A: ldrh r1, [r0] movs r0, 0x12 bl SetGpuReg - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X ldrh r1, [r0] movs r0, 0x14 bl SetGpuReg - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y ldrh r1, [r0] movs r0, 0x16 bl SetGpuReg - ldr r0, =gUnknown_02022E1C + ldr r0, =gBattle_BG2_X ldrh r1, [r0] movs r0, 0x18 bl SetGpuReg - ldr r0, =gUnknown_02022E1E + ldr r0, =gBattle_BG2_Y ldrh r1, [r0] movs r0, 0x1A bl SetGpuReg - ldr r0, =gUnknown_02022E20 + ldr r0, =gBattle_BG3_X ldrh r1, [r0] movs r0, 0x1C bl SetGpuReg @@ -3972,7 +3972,7 @@ _08038A3A: pop {r0} bx r0 .pool - thumb_func_end vblank_cb_08078BB4 + thumb_func_end VBlankCB_Battle thumb_func_start nullsub_17 nullsub_17: @ 8038B00 @@ -4371,15 +4371,15 @@ _08038E1A: strh r4, [r0] ldr r0, =gUnknown_02022E16 strh r4, [r0] - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X strh r4, [r0] - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y strh r4, [r0] - ldr r0, =gUnknown_02022E1C + ldr r0, =gBattle_BG2_X strh r4, [r0] - ldr r0, =gUnknown_02022E1E + ldr r0, =gBattle_BG2_Y strh r4, [r0] - ldr r0, =gUnknown_02022E20 + ldr r0, =gBattle_BG3_X strh r4, [r0] ldr r0, =gUnknown_02022E22 strh r4, [r0] @@ -4399,7 +4399,7 @@ _08038E1A: ldr r1, =gReservedSpritePaletteCount movs r0, 0x4 strb r0, [r1] - ldr r0, =vblank_cb_08078BB4 + ldr r0, =VBlankCB_Battle bl SetVBlankCallback ldr r0, =task00_0800F6FC movs r1, 0 @@ -4662,7 +4662,7 @@ _0803912C: bl sub_800ADF8 ldr r0, =gUnknown_0824978D movs r1, 0 - bl battle_show_message_maybe + bl sub_814F9EC b _08039172 .pool _0803914C: @@ -4842,15 +4842,15 @@ sub_80392A8: @ 80392A8 strh r4, [r0] ldr r0, =gUnknown_02022E16 strh r4, [r0] - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X strh r4, [r0] - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y strh r4, [r0] - ldr r0, =gUnknown_02022E1C + ldr r0, =gBattle_BG2_X strh r4, [r0] - ldr r0, =gUnknown_02022E1E + ldr r0, =gBattle_BG2_Y strh r4, [r0] - ldr r0, =gUnknown_02022E20 + ldr r0, =gBattle_BG3_X strh r4, [r0] ldr r0, =gUnknown_02022E22 strh r4, [r0] @@ -4873,7 +4873,7 @@ _080392FE: ldr r1, =gReservedSpritePaletteCount movs r0, 0x4 strb r0, [r1] - ldr r0, =vblank_cb_08078BB4 + ldr r0, =VBlankCB_Battle bl SetVBlankCallback ldr r0, =sub_803937C bl SetMainCallback2 @@ -4995,9 +4995,9 @@ _08039470: beq _0803947E b _0803975E _0803947E: - ldr r0, =gUnknown_085CD28F + ldr r0, =gText_RecordBattleToPass movs r1, 0 - bl battle_show_message_maybe + bl sub_814F9EC ldr r1, =gBattleCommunication ldrb r0, [r1] adds r0, 0x1 @@ -5018,13 +5018,13 @@ _080394AC: movs r2, 0x1D movs r3, 0xD bl sub_8056A3C - ldr r0, =gUnknown_085CCABB + ldr r0, =gText_BattleYesNoChoice movs r1, 0xC - bl battle_show_message_maybe + bl sub_814F9EC ldr r4, =gBattleCommunication movs r0, 0x1 strb r0, [r4, 0x1] - bl sub_8056B74 + bl BattleCreateCursorAt b _080396EA .pool _080394D8: @@ -5042,7 +5042,7 @@ _080394EC: movs r0, 0x5 bl PlaySE ldrb r0, [r4, 0x1] - bl sub_8056BAC + bl BattleDestroyCursorAt movs r0, 0 b _0803951E .pool @@ -5059,11 +5059,11 @@ _08039510: movs r0, 0x5 bl PlaySE ldrb r0, [r4, 0x1] - bl sub_8056BAC + bl BattleDestroyCursorAt movs r0, 0x1 _0803951E: strb r0, [r4, 0x1] - bl sub_8056B74 + bl BattleCreateCursorAt b _0803975E _08039526: movs r5, 0x1 @@ -5130,7 +5130,7 @@ _0803958A: bl sub_800ADF8 ldr r0, =gUnknown_0824978D movs r1, 0 - bl battle_show_message_maybe + bl sub_814F9EC _080395B4: ldr r1, =gBattleCommunication ldrb r0, [r1] @@ -5213,12 +5213,12 @@ _08039678: bne _080396A0 movs r0, 0x37 bl PlaySE - ldr r0, =gUnknown_085CD2CB + ldr r0, =gText_BattleRecordedOnPass _08039686: - bl StrCpyDecodeToDisplayedStringBattle + bl BattleStringExpandPlaceholdersToDisplayedString ldr r0, =gDisplayedStringBattle movs r1, 0 - bl battle_show_message_maybe + bl sub_814F9EC movs r0, 0x80 strb r0, [r4, 0x1] b _080396EA @@ -5256,7 +5256,7 @@ _080396A8: bl sub_800ADF8 ldr r0, =gUnknown_0824978D movs r1, 0 - bl battle_show_message_maybe + bl sub_814F9EC _080396EA: ldrb r0, [r4] adds r0, 0x1 @@ -6357,8 +6357,8 @@ sub_8039F40: @ 8039F40 mov r12, r1 ldr r5, =gDisableStructs movs r4, 0 - ldr r7, =gUnknown_02024240 - ldr r6, =gUnknown_02024268 + ldr r7, =gUnknownMovesUsedByBanks + ldr r6, =gLockedMoves _08039F70: ldr r0, =gStatuses3 adds r0, r4, r0 @@ -6434,7 +6434,7 @@ _08039FDC: strb r1, [r0] ldr r2, =gBattleWeather strh r1, [r2] - ldr r1, =gUnknown_020243D0 + ldr r1, =gWishFutureKnock movs r2, 0 movs r3, 0 _0803A004: @@ -6492,13 +6492,13 @@ _0803A0AE: lsrs r0, 31 movs r1, 0 strb r0, [r3, 0x1D] - ldr r0, =gUnknown_02024212 + ldr r0, =gMultiHitCounter strb r1, [r0] ldr r0, =gBattleOutcome strb r1, [r0] ldr r0, =gBattleExecBuffer str r1, [r0] - ldr r0, =gUnknown_0202432E + ldr r0, =gPaydayMoney movs r2, 0 strh r1, [r0] ldr r1, =gBattleResources @@ -6510,10 +6510,10 @@ _0803A0AE: ldr r0, [r0, 0xC] adds r0, 0x20 strb r2, [r0] - ldr r5, =gUnknown_0202432C + ldr r5, =gPauseCounterBattle ldr r6, =gBattleMoveDamage ldr r7, =gUnknown_020243FC - ldr r0, =gUnknown_03005D54 + ldr r0, =gLeveledUpInBattle mov r8, r0 ldr r1, =gAbsentBankFlags mov r9, r1 @@ -6678,8 +6678,8 @@ _0803A1E4: .pool thumb_func_end sub_8039F40 - thumb_func_start sub_803A284 -sub_803A284: @ 803A284 + thumb_func_start SwitchInClearStructs +SwitchInClearStructs: @ 803A284 push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -7073,7 +7073,7 @@ _0803A540: mov r1, r9 ldrb r0, [r1] lsls r0, 1 - ldr r3, =gUnknown_02024240 + ldr r3, =gUnknownMovesUsedByBanks adds r0, r3 strh r4, [r0] ldrb r0, [r1] @@ -7254,10 +7254,10 @@ _0803A6B4: pop {r0} bx r0 .pool - thumb_func_end sub_803A284 + thumb_func_end SwitchInClearStructs - thumb_func_start sub_803A75C -sub_803A75C: @ 803A75C + thumb_func_start UndoEffectsAfterFainting +UndoEffectsAfterFainting: @ 803A75C push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -7584,7 +7584,7 @@ _0803A852: strh r2, [r0] ldrb r0, [r1] lsls r0, 1 - ldr r1, =gUnknown_02024240 + ldr r1, =gUnknownMovesUsedByBanks adds r0, r1 strh r2, [r0] ldr r2, =gActiveBank @@ -7786,7 +7786,7 @@ _0803AB6C: pop {r0} bx r0 .pool - thumb_func_end sub_803A75C + thumb_func_end UndoEffectsAfterFainting thumb_func_start bc_8012FAC bc_8012FAC: @ 803ABC0 @@ -7806,9 +7806,9 @@ _0803ABD4: movs r0, 0 movs r1, 0 movs r2, 0 - bl dp01_build_cmdbuf_x00_a_b_0 + bl EmitGetMonData ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] @@ -7849,15 +7849,15 @@ bc_load_battlefield: @ 803AC34 cmp r5, 0 bne _0803AC64 movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r4, =gActiveBank strb r0, [r4] - ldr r0, =gUnknown_02022FF0 + ldr r0, =gBattleTerrain ldrb r1, [r0] movs r0, 0 bl dp01_build_cmdbuf_x2E_a ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution ldr r1, =gBattleMainFunc ldr r0, =sub_803AC84 str r0, [r1] @@ -8040,7 +8040,7 @@ _0803ADCA: movs r0, 0 bl dp01_build_cmdbuf_x07_7_7_7 ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution _0803ADE4: ldr r5, =gBattleTypeFlags ldr r0, [r5] @@ -8057,7 +8057,7 @@ _0803ADE4: movs r0, 0 bl dp01_build_cmdbuf_x07_7_7_7 ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution _0803AE0A: ldrb r0, [r4] bl GetBankSide @@ -8114,7 +8114,7 @@ _0803AE96: movs r0, 0 bl dp01_build_cmdbuf_x04_4_4_4 ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution ldr r1, =gBattlePartyID ldrb r0, [r4] lsls r0, 1 @@ -8153,7 +8153,7 @@ _0803AEEA: movs r0, 0 bl dp01_build_cmdbuf_x07_7_7_7 ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution _0803AEF6: ldr r0, =gBattleTypeFlags ldr r0, [r0] @@ -8172,7 +8172,7 @@ _0803AEF6: movs r0, 0 bl dp01_build_cmdbuf_x07_7_7_7 ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution _0803AF20: ldr r0, =gBattleTypeFlags ldr r0, [r0] @@ -8274,15 +8274,15 @@ _0803AFFA: cmp r7, 0x5 ble _0803AFAA movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r4, =gActiveBank strb r0, [r4] movs r0, 0 mov r1, sp movs r2, 0x80 - bl dp01_build_cmdbuf_x30_TODO + bl EmitCmd48 ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution movs r7, 0 mov r6, r8 mov r5, sp @@ -8326,15 +8326,15 @@ _0803B072: cmp r7, 0x5 ble _0803B026 movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r4, =gActiveBank strb r0, [r4] movs r0, 0 mov r1, sp movs r2, 0x80 - bl dp01_build_cmdbuf_x30_TODO + bl EmitCmd48 ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution ldr r1, =gBattleMainFunc ldr r0, =bc_battle_begin_message b _0803B10A @@ -8404,12 +8404,12 @@ bc_battle_begin_message: @ 803B120 cmp r0, 0 bne _0803B142 movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, =gActiveBank strb r0, [r1] ldrb r1, [r1] movs r0, 0 - bl b_std_message + bl PrepareStringBattle ldr r1, =gBattleMainFunc ldr r0, =sub_803B180 str r0, [r1] @@ -8431,7 +8431,7 @@ bc_8013568: @ 803B158 str r0, [r1] movs r0, 0 movs r1, 0 - bl b_std_message + bl PrepareStringBattle _0803B170: pop {r0} bx r0 @@ -8468,12 +8468,12 @@ sub_803B180: @ 803B180 _0803B1B8: movs r0, 0x1 _0803B1BA: - bl GetBankByPlayerAI + bl GetBankByIdentity adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 movs r0, 0x1 - bl b_std_message + bl PrepareStringBattle ldr r1, =gBattleMainFunc ldr r0, =sub_803B25C str r0, [r1] @@ -8522,7 +8522,7 @@ _0803B20E: movs r0, 0 bl dp01_build_cmdbuf_x2F_2F_2F_2F ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution _0803B228: ldrb r0, [r4] adds r0, 0x1 @@ -8596,7 +8596,7 @@ _0803B2B2: movs r0, 0 bl dp01_build_cmdbuf_x2F_2F_2F_2F ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution ldr r0, =gBattleTypeFlags ldr r0, [r0] ldr r1, =0x00008040 @@ -8738,12 +8738,12 @@ _0803B3F6: cmp r0, 0 bne _0803B412 adds r0, r3, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 movs r0, 0x1 - bl b_std_message + bl PrepareStringBattle _0803B412: ldr r1, =gBattleMainFunc ldr r0, =sub_803B4C8 @@ -8793,7 +8793,7 @@ _0803B45E: movs r0, 0 bl dp01_build_cmdbuf_x2F_2F_2F_2F ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution _0803B478: ldrb r0, [r4] adds r0, 0x1 @@ -8877,7 +8877,7 @@ _0803B51A: movs r0, 0 bl dp01_build_cmdbuf_x2F_2F_2F_2F ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x40 @@ -8947,9 +8947,9 @@ _0803B5B2: ldrb r1, [r0] movs r0, 0 movs r2, 0 - bl dp01_build_cmdbuf_x05_a_b_c + bl EmitSwitchInAnim ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution _0803B5D4: ldrb r0, [r4] adds r0, 0x1 @@ -9177,7 +9177,7 @@ _0803B79A: ldrb r1, [r0] movs r0, 0 movs r2, 0 - bl berry_effects_maybe + bl ItemBattleEffects lsls r0, 24 cmp r0, 0 beq _0803B7BC @@ -9207,8 +9207,8 @@ _0803B7DA: ldr r1, =gBattleStruct mov r8, r1 movs r7, 0x6 - ldr r6, =gUnknown_0202421C - ldr r2, =gUnknown_02024274 + ldr r6, =gActionForBanks + ldr r2, =gChosenMovesByBanks movs r4, 0xFF movs r3, 0 _0803B7EA: @@ -9235,13 +9235,13 @@ _0803B7EA: ldr r1, =gAbsentBankFlags ldrb r1, [r1] strb r1, [r0] - ldr r0, =gUnknown_085CC23E + ldr r0, =gText_EmptyString3 movs r1, 0 - bl battle_show_message_maybe + bl sub_814F9EC ldr r1, =gBattleMainFunc ldr r0, =sub_803BE74 str r0, [r1] - bl sub_803F988 + bl ResetSentPokesToOpponentValue ldr r1, =gBattleCommunication movs r2, 0 adds r0, r1, 0x7 @@ -9307,7 +9307,7 @@ _0803B866: beq _0803B8B2 bl StopCryAndClearCrySongs ldr r0, =gUnknown_082DB8BE - bl b_call_bc_move_exec + bl BattleScriptExecute _0803B8B2: add sp, 0x4 pop {r3-r5} @@ -9328,7 +9328,7 @@ bc_8013B1C: @ 803B904 cmp r0, 0 bne _0803B994 ldr r1, =gBattleMainFunc - ldr r0, =sub_803B9BC + ldr r0, =BattleTurnPassed str r0, [r1] ldr r3, =gNoOfAllBanks ldr r1, =gBattleCommunication @@ -9404,8 +9404,8 @@ _0803B994: .pool thumb_func_end bc_8013B1C - thumb_func_start sub_803B9BC -sub_803B9BC: @ 803B9BC + thumb_func_start BattleTurnPassed +BattleTurnPassed: @ 803B9BC push {r4-r7,lr} mov r7, r9 mov r6, r8 @@ -9416,13 +9416,13 @@ sub_803B9BC: @ 803B9BC ldrb r0, [r0] cmp r0, 0 bne _0803B9EA - bl sub_80401D0 + bl UpdateTurnCounters lsls r0, 24 cmp r0, 0 beq _0803B9DE b _0803BB78 _0803B9DE: - bl sub_8040924 + bl TurnBasedEffects lsls r0, 24 cmp r0, 0 beq _0803B9EA @@ -9506,15 +9506,15 @@ _0803BAB2: ldr r4, =gNoOfAllBanks ldr r0, =gAbsentBankFlags mov r12, r0 - ldr r1, =gUnknown_085CC23E + ldr r1, =gText_EmptyString3 mov r9, r1 ldrb r0, [r4] cmp r2, r0 bge _0803BAE0 - ldr r7, =gUnknown_0202421C + ldr r7, =gActionForBanks movs r6, 0xFF movs r5, 0 - ldr r3, =gUnknown_02024274 + ldr r3, =gChosenMovesByBanks _0803BACC: adds r1, r2, r7 ldrb r0, [r1] @@ -9546,7 +9546,7 @@ _0803BAE6: strb r1, [r0] mov r0, r9 movs r1, 0 - bl battle_show_message_maybe + bl sub_814F9EC ldr r1, =gBattleMainFunc ldr r0, =sub_803BE74 str r0, [r1] @@ -9561,7 +9561,7 @@ _0803BAE6: cmp r0, 0 beq _0803BB5C ldr r0, =gUnknown_082DB881 - bl b_call_bc_move_exec + bl BattleScriptExecute b _0803BB78 .pool _0803BB5C: @@ -9577,7 +9577,7 @@ _0803BB5C: cmp r0, 0 bne _0803BB78 ldr r0, =gUnknown_082DB8BE - bl b_call_bc_move_exec + bl BattleScriptExecute _0803BB78: pop {r3,r4} mov r8, r3 @@ -9586,10 +9586,10 @@ _0803BB78: pop {r0} bx r0 .pool - thumb_func_end sub_803B9BC + thumb_func_end BattleTurnPassed - thumb_func_start sub_803BB88 -sub_803BB88: @ 803BB88 + thumb_func_start IsRunningFromBattleImpossible +IsRunningFromBattleImpossible: @ 803BB88 push {r4-r7,lr} sub sp, 0x4 ldr r1, =gBattleMons @@ -9830,7 +9830,7 @@ _0803BD92: pop {r1} bx r1 .pool - thumb_func_end sub_803BB88 + thumb_func_end IsRunningFromBattleImpossible thumb_func_start sub_803BDA0 sub_803BDA0: @ 803BDA0 @@ -10013,7 +10013,7 @@ _0803BF0C: beq _0803BF68 eors r5, r1 adds r0, r5, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, [r4] adds r1, 0x91 ldrb r1, [r1] @@ -10027,7 +10027,7 @@ _0803BF0C: bne _0803BF68 ldr r4, =gBattleCommunication adds r0, r5, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 adds r0, r4 @@ -10049,7 +10049,7 @@ _0803BF68: ands r3, r0 cmp r3, 0 beq _0803BFD0 - ldr r0, =gUnknown_0202421C + ldr r0, =gActionForBanks adds r0, r2, r0 movs r1, 0xD strb r1, [r0] @@ -10092,7 +10092,7 @@ _0803BFD0: cmp r1, 0 beq _0803C00C _0803BFF0: - ldr r0, =gUnknown_0202421C + ldr r0, =gActionForBanks adds r0, r2, r0 strb r3, [r0] ldr r1, =gBattleCommunication @@ -10100,7 +10100,7 @@ _0803BFF0: bl _0803CC72 .pool _0803C00C: - ldr r0, =gUnknown_0202421C + ldr r0, =gActionForBanks ldrb r1, [r0] ldr r0, =gBattleBufferB ldrb r2, [r0, 0x1] @@ -10140,8 +10140,8 @@ _0803C058: adds r0, r4 ldrb r1, [r0] adds r0, r5, 0 - bl sub_8184FBC - ldr r1, =gUnknown_0202421C + bl RecordedBattle_SetBankAction + ldr r1, =gActionForBanks ldrb r0, [r6] adds r1, r0, r1 lsls r0, 9 @@ -10178,7 +10178,7 @@ _0803C0A8: .4byte _0803C6C4 .4byte _0803C4B4 _0803C0DC: - bl sub_80400C8 + bl AreAllMovesUnusable lsls r0, 24 cmp r0, 0 beq _0803C134 @@ -10223,7 +10223,7 @@ _0803C134: ldrh r2, [r0, 0x6] cmp r2, 0 beq _0803C188 - ldr r1, =gUnknown_02024274 + ldr r1, =gChosenMovesByBanks lsls r0, r4, 1 adds r0, r1 strh r2, [r0] @@ -10488,7 +10488,7 @@ _0803C374: str r0, [sp] movs r0, 0 movs r2, 0x6 - bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f + bl EmitChoosePokemon b _0803C42E .pool _0803C3B0: @@ -10497,7 +10497,7 @@ _0803C3B0: adds r4, r0, 0 cmp r1, 0x2 bne _0803C3D8 - ldr r0, =gUnknown_0202421C + ldr r0, =gActionForBanks ldrb r0, [r0] cmp r0, 0x2 bne _0803C3D8 @@ -10511,7 +10511,7 @@ _0803C3D8: ldrb r0, [r4] cmp r0, 0x3 bne _0803C410 - ldr r0, =gUnknown_0202421C + ldr r0, =gActionForBanks ldrb r0, [r0, 0x1] cmp r0, 0x2 bne _0803C410 @@ -10531,7 +10531,7 @@ _0803C3EE: movs r1, 0 _0803C400: movs r3, 0 - bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f + bl EmitChoosePokemon b _0803C42E .pool _0803C410: @@ -10548,11 +10548,11 @@ _0803C410: movs r1, 0 movs r2, 0x6 movs r3, 0 - bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f + bl EmitChoosePokemon _0803C42E: ldr r0, =gActiveBank ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution b _0803C6C4 .pool _0803C440: @@ -10596,7 +10596,7 @@ _0803C48C: movs r0, 0 bl sub_8033E6C ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution b _0803C6C4 .pool _0803C4B4: @@ -10612,7 +10612,7 @@ _0803C4B4: eors r0, r6 lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 adds r0, r4 @@ -10625,7 +10625,7 @@ _0803C4B4: eors r0, r6 lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, =gBattleMons lsls r0, 24 lsrs r0, 24 @@ -10645,7 +10645,7 @@ _0803C4B4: eors r0, r6 lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 muls r0, r7 @@ -10660,17 +10660,17 @@ _0803C532: movs r0, 0 bl dp01_build_cmdbuf_x32_32_32_32 ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution bl _0803CD70 .pool _0803C550: - ldr r4, =gUnknown_0202421C + ldr r4, =gActionForBanks ldrb r0, [r5] bl GetBankIdentity eors r0, r6 lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 adds r0, r4 @@ -10682,7 +10682,7 @@ _0803C550: eors r0, r6 lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 movs r1, 0x2 @@ -10695,7 +10695,7 @@ _0803C590: eors r0, r6 lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 adds r0, r4 @@ -10712,7 +10712,7 @@ _0803C5B6: eors r0, r6 lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 adds r0, r4 @@ -10725,7 +10725,7 @@ _0803C5B6: eors r0, r6 lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 20 adds r0, r4 @@ -10739,7 +10739,7 @@ _0803C5B6: eors r0, r6 lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 @@ -10763,7 +10763,7 @@ _0803C628: ands r0, r1 cmp r0, 0 beq _0803C690 - ldr r4, =gUnknown_0202421C + ldr r4, =gActionForBanks ldr r6, =gActiveBank ldrb r0, [r6] bl GetBankIdentity @@ -10771,7 +10771,7 @@ _0803C628: eors r0, r5 lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 adds r0, r4 @@ -10788,7 +10788,7 @@ _0803C628: _0803C668: lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 movs r1, 0x1 @@ -10803,7 +10803,7 @@ _0803C690: eors r0, r1 lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 movs r1, 0x3 @@ -10813,7 +10813,7 @@ _0803C6AE: bl dp01_build_cmdbuf_x32_32_32_32 ldr r0, =gActiveBank ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution b _0803CD70 .pool _0803C6C4: @@ -10866,14 +10866,14 @@ _0803C720: cmp r0, 0x3 bne _0803C760 ldr r0, =gUnknown_082DAAFE - bl b_call_bc_move_exec + bl BattleScriptExecute ldr r1, =gBattleCommunication ldrb r0, [r4] adds r0, r1 b _0803CC20 .pool _0803C760: - bl sub_803BB88 + bl IsRunningFromBattleImpossible lsls r0, 24 cmp r0, 0 beq _0803C7C4 @@ -10945,7 +10945,7 @@ _0803C7D8: beq _0803C804 b _0803CD04 _0803C804: - ldr r1, =gUnknown_0202421C + ldr r1, =gActionForBanks adds r0, r5, r1 ldrb r0, [r0] adds r2, r1, 0 @@ -11067,12 +11067,12 @@ _0803C91C: lsls r1, r0, 9 adds r1, r5 ldrb r1, [r1] - bl sub_8184FBC + bl RecordedBattle_SetBankAction ldrb r0, [r6] lsls r1, r0, 9 adds r1, r7 ldrb r1, [r1] - bl sub_8184FBC + bl RecordedBattle_SetBankAction _0803C942: ldrb r0, [r6] ldr r4, =gBattleStruct @@ -11083,7 +11083,7 @@ _0803C942: adds r0, r5 ldrb r0, [r0] strb r0, [r1] - ldr r0, =gUnknown_02024274 + ldr r0, =gChosenMovesByBanks ldrb r2, [r6] lsls r5, r2, 1 adds r5, r0 @@ -11271,7 +11271,7 @@ _0803CAFA: bne _0803CB3C adds r0, r5, 0 eors r0, r1 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, =gBattleStruct ldr r1, [r1] adds r1, 0x91 @@ -11287,19 +11287,19 @@ _0803CB3C: movs r0, 0 movs r1, 0 adds r2, r4, 0 - bl sub_8034464 + bl EmitLinkStandbyMsg b _0803CB66 .pool _0803CB5C: movs r0, 0 movs r1, 0x1 adds r2, r4, 0 - bl sub_8034464 + bl EmitLinkStandbyMsg _0803CB66: ldr r4, =gActiveBank _0803CB68: ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution _0803CB6E: ldr r0, =gBattleCommunication ldrb r1, [r4] @@ -11410,7 +11410,7 @@ _0803CC38: lsls r1, 8 orrs r0, r1 str r0, [r2] - ldr r1, =gUnknown_0202421C + ldr r1, =gActionForBanks ldrb r0, [r5] adds r0, r1 movs r1, 0x3 @@ -11515,7 +11515,7 @@ _0803CD1E: cmp r4, r5 bge _0803CD70 _0803CD4A: - ldr r0, =gUnknown_0202421C + ldr r0, =gActionForBanks adds r0, r4, r0 ldrb r0, [r0] cmp r0, 0x2 @@ -11602,7 +11602,7 @@ sub_803CDF8: @ 803CDF8 lsls r1, r0, 9 adds r1, r2 ldrb r1, [r1] - bl sub_8184FBC + bl RecordedBattle_SetBankAction ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x42 @@ -12033,7 +12033,7 @@ _0803D198: b _0803D254 .pool _0803D1B8: - ldr r0, =gUnknown_0202421C + ldr r0, =gActionForBanks mov r3, r9 adds r1, r3, r0 ldrb r1, [r1] @@ -12209,7 +12209,7 @@ sub_803D2E8: @ 803D2E8 b _0803D54A _0803D310: ldr r7, =gUnknown_0202407A - ldr r6, =gUnknown_0202421C + ldr r6, =gActionForBanks mov r2, r8 ldr r5, =gTurnOrder _0803D318: @@ -12245,7 +12245,7 @@ _0803D354: ldrb r2, [r2] cmp r3, r2 bcs _0803D3C0 - ldr r0, =gUnknown_0202421C + ldr r0, =gActionForBanks ldrb r1, [r0] adds r4, r0, 0 cmp r1, 0x3 @@ -12269,7 +12269,7 @@ _0803D376: b _0803D3BE .pool _0803D3A4: - ldr r1, =gUnknown_0202421C + ldr r1, =gActionForBanks ldrb r0, [r1] ldr r4, =gActiveBank mov r8, r4 @@ -12289,7 +12289,7 @@ _0803D3C0: cmp r3, 0x5 bne _0803D448 ldr r6, =gUnknown_0202407A - ldr r1, =gUnknown_0202421C + ldr r1, =gActionForBanks mov r2, r8 ldrb r0, [r2] adds r0, r1 @@ -12349,7 +12349,7 @@ _0803D448: ldrb r0, [r1] cmp r0, 0 beq _0803D48E - ldr r6, =gUnknown_0202421C + ldr r6, =gActionForBanks mov r2, r8 ldr r5, =gUnknown_0202407A ldr r4, =gTurnOrder @@ -12387,7 +12387,7 @@ _0803D48E: ldrb r0, [r4] cmp r0, 0 beq _0803D4D2 - ldr r6, =gUnknown_0202421C + ldr r6, =gActionForBanks ldr r5, =gUnknown_0202407A ldr r4, =gTurnOrder _0803D4A2: @@ -12704,7 +12704,7 @@ _0803D71C: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] - ldr r1, =gUnknown_02024274 + ldr r1, =gChosenMovesByBanks ldrb r3, [r5] lsls r0, r3, 1 adds r0, r1 @@ -12739,7 +12739,7 @@ _0803D71C: cmp r0, 0 blt _0803D7A0 ldr r0, =gUnknown_082DB1FF - bl b_call_bc_move_exec + bl BattleScriptExecute b _0803D7E8 .pool _0803D7A0: @@ -12752,7 +12752,7 @@ _0803D7A0: bcc _0803D71C _0803D7AE: bl b_clear_atk_up_if_hit_flag_unless_enraged - ldr r1, =gUnknown_02024082 + ldr r1, =gCurrentMoveTurn movs r0, 0 strb r0, [r1] ldr r1, =gFightStateTracker @@ -12800,7 +12800,7 @@ _0803D828: ldr r5, =gBattleStruct ldr r0, [r5] adds r0, 0x4B - ldr r4, =gUnknown_02024082 + ldr r4, =gCurrentMoveTurn ldrb r1, [r4] strb r1, [r0] ldr r1, =gUnknown_0831BC0C @@ -12870,7 +12870,7 @@ sub_803D8C0: @ 803D8C0 ldrb r0, [r4] strb r0, [r1] movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, =gBankAttacker strb r0, [r1] ldr r1, =gBattlescriptCurrInstr @@ -12891,7 +12891,7 @@ _0803D920: ands r2, r0 cmp r2, 0 beq _0803D95C - bl sub_805EA60 + bl BattleMusicStop ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DAA87 str r0, [r1] @@ -12912,7 +12912,7 @@ _0803D95C: beq _0803D968 b _0803DA9E _0803D968: - bl sub_805EA60 + bl BattleMusicStop ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DA92D str r0, [r1] @@ -13075,7 +13075,7 @@ _0803DB44: ldrb r0, [r4] strb r0, [r1] movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, =gBankAttacker strb r0, [r1] ldr r1, =gBattlescriptCurrInstr @@ -13335,7 +13335,7 @@ _0803DDD2: ldr r0, =sub_803DE40 str r0, [r1] ldr r1, =gUnknown_030061E8 - ldr r0, =sub_8038420 + ldr r0, =BattleMainCB2 str r0, [r1] b _0803DE2A .pool @@ -13371,7 +13371,7 @@ sub_803DE40: @ 803DE40 cmp r0, 0 bne _0803DE86 bl ResetSpriteData - ldr r0, =gUnknown_03005D54 + ldr r0, =gLeveledUpInBattle ldrb r0, [r0] cmp r0, 0 beq _0803DE62 @@ -13409,7 +13409,7 @@ _0803DEA2: thumb_func_start bc_evolution_cutscene bc_evolution_cutscene: @ 803DEB4 push {r4-r6,lr} - ldr r0, =gUnknown_03005D54 + ldr r0, =gLeveledUpInBattle ldrb r1, [r0] adds r3, r0, 0 cmp r1, 0 @@ -13454,7 +13454,7 @@ _0803DEC2: .pool _0803DF20: adds r6, 0x1 - ldr r3, =gUnknown_03005D54 + ldr r3, =gLeveledUpInBattle cmp r6, 0x5 ble _0803DEC2 ldrb r0, [r3] @@ -13476,7 +13476,7 @@ sub_803DF48: @ 803DF48 push {lr} ldr r0, =gMain ldr r1, [r0, 0x4] - ldr r0, =sub_8038420 + ldr r0, =BattleMainCB2 cmp r1, r0 bne _0803DF5A ldr r1, =gBattleMainFunc @@ -13642,7 +13642,7 @@ sub_803E0B8: @ 803E0B8 str r0, [sp] ldr r6, =gBankAttacker ldr r1, =gTurnOrder - ldr r0, =gUnknown_02024082 + ldr r0, =gCurrentMoveTurn ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] @@ -13676,7 +13676,7 @@ _0803E110: strb r2, [r0] ldr r0, =gBattleMoveFlags strb r2, [r0] - ldr r0, =gUnknown_02024212 + ldr r0, =gMultiHitCounter strb r2, [r0] ldr r0, =gBattleCommunication strb r2, [r0, 0x6] @@ -13706,7 +13706,7 @@ _0803E110: ands r0, r1 strb r0, [r3] ldr r2, =gCurrentMove - ldr r1, =gUnknown_020241EC + ldr r1, =gLastUsedMove movs r0, 0xA5 strh r0, [r1] strh r0, [r2] @@ -13746,8 +13746,8 @@ _0803E1BC: beq _0803E204 _0803E1E2: ldr r3, =gCurrentMove - ldr r2, =gUnknown_020241EC - ldr r1, =gUnknown_02024268 + ldr r2, =gLastUsedMove + ldr r1, =gLockedMoves lsls r0, r4, 1 adds r0, r1 ldrh r0, [r0] @@ -13776,7 +13776,7 @@ _0803E204: cmp r1, r0 bne _0803E268 ldr r2, =gCurrentMove - ldr r0, =gUnknown_020241EC + ldr r0, =gLastUsedMove strh r3, [r0] strh r3, [r2] ldrb r1, [r6] @@ -13807,7 +13807,7 @@ _0803E268: mov r0, r8 strb r2, [r0] ldr r3, =gCurrentMove - ldr r2, =gUnknown_020241EC + ldr r2, =gLastUsedMove ldrb r0, [r0] lsls r0, 1 ldrb r1, [r6] @@ -13861,7 +13861,7 @@ _0803E2DC: adds r0, r1 adds r3, 0xC adds r0, r3 - ldr r1, =gUnknown_02024274 + ldr r1, =gChosenMovesByBanks lsls r2, 1 adds r2, r1 ldrh r3, [r0] @@ -13869,7 +13869,7 @@ _0803E2DC: cmp r3, r2 beq _0803E334 ldr r1, =gCurrentMove - ldr r0, =gUnknown_020241EC + ldr r0, =gLastUsedMove strh r3, [r0] strh r3, [r1] ldrh r0, [r1] @@ -13885,7 +13885,7 @@ _0803E316: .pool _0803E334: ldr r1, =gCurrentMove - ldr r0, =gUnknown_020241EC + ldr r0, =gLastUsedMove strh r3, [r0] strh r3, [r1] _0803E33C: @@ -14058,14 +14058,14 @@ _0803E480: cmp r0, 0x1F bne _0803E4CE adds r0, r2, 0 - bl sub_8048728 + bl BankGetTurnOrder lsls r0, 24 lsrs r0, 24 ldr r3, [sp] cmp r0, r3 bcs _0803E4CE ldrb r0, [r4] - bl sub_8048728 + bl BankGetTurnOrder lsls r0, 24 lsrs r0, 24 str r0, [sp] @@ -14086,7 +14086,7 @@ _0803E4E0: b _0803E5E2 _0803E4E8: ldr r2, =gBattleMoves - ldr r0, =gUnknown_020241EC + ldr r0, =gLastUsedMove ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -14124,7 +14124,7 @@ _0803E548: _0803E558: movs r0, 0x2 _0803E55A: - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, =gBankTarget strb r0, [r1] b _0803E578 @@ -14173,7 +14173,7 @@ _0803E5C4: eors r0, r1 lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity strb r0, [r5] ldrb r1, [r7] ldrb r2, [r5] @@ -14218,7 +14218,7 @@ _0803E630: cmp r0, 0 beq _0803E6E0 ldr r2, =gBattleMoves - ldr r0, =gUnknown_020241EC + ldr r0, =gLastUsedMove ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -14257,7 +14257,7 @@ _0803E684: _0803E694: movs r0, 0x2 _0803E696: - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, =gBankTarget strb r0, [r1] ldr r0, =gAbsentBankFlags @@ -14323,7 +14323,7 @@ _0803E730: eors r0, r1 lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity strb r0, [r5] ldrb r1, [r6] ldrb r2, [r5] @@ -14341,7 +14341,7 @@ _0803E758: eors r0, r1 lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity strb r0, [r5] _0803E76A: ldr r0, =gBattleTypeFlags @@ -14400,13 +14400,13 @@ _0803E7EC: movs r0, 0x4 strb r0, [r1, 0x5] ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB6AD + ldr r0, =BattleScript_MoveUsedLoafingAround str r0, [r1] b _0803E824 .pool _0803E808: ldr r4, =gBattlescriptCurrInstr - ldr r3, =gUnknown_082D86A8 + ldr r3, =gBattleScriptsForMoveEffects ldr r2, =gBattleMoves ldr r0, =gCurrentMove ldrh r1, [r0] @@ -14450,7 +14450,7 @@ bs2_8016374: @ 803E868 push {r4,lr} ldr r3, =gBankAttacker ldr r1, =gTurnOrder - ldr r0, =gUnknown_02024082 + ldr r0, =gCurrentMoveTurn ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] @@ -14515,7 +14515,7 @@ sub_803E90C: @ 803E90C ldr r4, =gBankAttacker ldr r2, =gBankTarget ldr r1, =gTurnOrder - ldr r0, =gUnknown_02024082 + ldr r0, =gCurrentMoveTurn ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] @@ -14823,8 +14823,8 @@ _0803EBF6: .pool thumb_func_end sub_803E90C - thumb_func_start sub_803EC20 -sub_803EC20: @ 803EC20 + thumb_func_start CanRunFromBattle +CanRunFromBattle: @ 803EC20 push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -15052,7 +15052,7 @@ _0803EE06: _0803EE12: cmp r7, 0 beq _0803EE24 - ldr r1, =gUnknown_02024082 + ldr r1, =gCurrentMoveTurn ldr r0, =gNoOfAllBanks ldrb r0, [r0] strb r0, [r1] @@ -15069,14 +15069,14 @@ _0803EE24: pop {r1} bx r1 .pool - thumb_func_end sub_803EC20 + thumb_func_end CanRunFromBattle thumb_func_start sub_803EE48 sub_803EE48: @ 803EE48 push {r4-r6,lr} ldr r4, =gBankAttacker ldr r1, =gTurnOrder - ldr r5, =gUnknown_02024082 + ldr r5, =gCurrentMoveTurn ldrb r0, [r5] adds r0, r1 ldrb r0, [r0] @@ -15097,7 +15097,7 @@ sub_803EE48: @ 803EE48 cmp r1, 0 beq _0803EEE0 adds r4, r2, 0 - ldr r6, =gUnknown_0202421C + ldr r6, =gActionForBanks ldr r5, =gBattleOutcome _0803EE7C: ldrb r0, [r4] @@ -15157,7 +15157,7 @@ _0803EF0C: cmp r0, 0 bne _0803EF4C ldrb r0, [r4] - bl sub_803EC20 + bl CanRunFromBattle lsls r0, 24 cmp r0, 0 bne _0803EF98 @@ -15214,7 +15214,7 @@ _0803EF98: sub_803EFA8: @ 803EFA8 ldr r2, =gBankAttacker ldr r1, =gTurnOrder - ldr r0, =gUnknown_02024082 + ldr r0, =gCurrentMoveTurn ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] @@ -15239,7 +15239,7 @@ sub_803EFA8: @ 803EFA8 bs5_8016AC0: @ 803EFF0 ldr r2, =gBankAttacker ldr r1, =gTurnOrder - ldr r0, =gUnknown_02024082 + ldr r0, =gCurrentMoveTurn ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] @@ -15272,7 +15272,7 @@ sub_803F050: @ 803F050 push {r4-r6,lr} ldr r3, =gBankAttacker ldr r1, =gTurnOrder - ldr r0, =gUnknown_02024082 + ldr r0, =gCurrentMoveTurn ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] @@ -15359,7 +15359,7 @@ sub_803F120: @ 803F120 push {r4,lr} ldr r2, =gBankAttacker ldr r1, =gTurnOrder - ldr r0, =gUnknown_02024082 + ldr r0, =gCurrentMoveTurn ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] @@ -15445,7 +15445,7 @@ bs8_exit_by_flight: @ 803F1F0 push {r4,lr} ldr r2, =gBankAttacker ldr r1, =gTurnOrder - ldr r4, =gUnknown_02024082 + ldr r4, =gCurrentMoveTurn ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] @@ -15468,7 +15468,7 @@ bs8_exit_by_flight: @ 803F1F0 bs9_8016C9C: @ 803F22C ldr r3, =gBankAttacker ldr r1, =gTurnOrder - ldr r0, =gUnknown_02024082 + ldr r0, =gCurrentMoveTurn ldrb r0, [r0] adds r0, r1 ldrb r2, [r0] @@ -15529,7 +15529,7 @@ _0803F2C0: thumb_func_start bsD_proceed bsD_proceed: @ 803F2CC - ldr r1, =gUnknown_02024082 + ldr r1, =gCurrentMoveTurn ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] @@ -15552,7 +15552,7 @@ bsD_proceed: @ 803F2CC bsC_8016D70: @ 803F300 push {r4-r6,lr} ldr r1, =gTurnOrder - ldr r2, =gUnknown_02024082 + ldr r2, =gCurrentMoveTurn ldrb r0, [r2] adds r0, r1 ldrb r0, [r0] @@ -15619,8 +15619,8 @@ bsC_8016D70: @ 803F300 .pool thumb_func_end bsC_8016D70 - thumb_func_start get_battle_side_of_something -get_battle_side_of_something: @ 803F3CC + thumb_func_start GetBattleBank +GetBattleBank: @ 803F3CC push {lr} lsls r0, 24 lsrs r1, r0, 24 @@ -15661,7 +15661,7 @@ _0803F430: b _0803F47A .pool _0803F43C: - ldr r0, =gUnknown_0202420E + ldr r0, =gEffectBank ldrb r0, [r0] b _0803F47A .pool @@ -15674,7 +15674,7 @@ _0803F44C: b _0803F47A .pool _0803F458: - ldr r0, =gUnknown_0202420D + ldr r0, =gBank1 ldrb r0, [r0] b _0803F47A .pool @@ -15690,16 +15690,16 @@ _0803F46C: _0803F470: movs r0, 0x3 _0803F472: - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 _0803F47A: pop {r1} bx r1 - thumb_func_end get_battle_side_of_something + thumb_func_end GetBattleBank - thumb_func_start sub_803F480 -sub_803F480: @ 803F480 + thumb_func_start PressurePPLose +PressurePPLose: @ 803F480 push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 @@ -15786,19 +15786,19 @@ _0803F4DE: movs r0, 0 movs r2, 0 movs r3, 0x1 - bl dp01_build_cmdbuf_x02_a_b_varargs + bl EmitSetMonData ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution _0803F532: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .pool - thumb_func_end sub_803F480 + thumb_func_end PressurePPLose - thumb_func_start sub_803F548 -sub_803F548: @ 803F548 + thumb_func_start PressurePPLoseOnUsingImprision +PressurePPLoseOnUsingImprision: @ 803F548 push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -15933,9 +15933,9 @@ _0803F5F0: movs r0, 0 movs r2, 0 movs r3, 0x1 - bl dp01_build_cmdbuf_x02_a_b_varargs + bl EmitSetMonData ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution _0803F658: add sp, 0x4 pop {r3-r5} @@ -15946,10 +15946,10 @@ _0803F658: pop {r0} bx r0 .pool - thumb_func_end sub_803F548 + thumb_func_end PressurePPLoseOnUsingImprision - thumb_func_start sub_803F67C -sub_803F67C: @ 803F67C + thumb_func_start PressurePPLoseOnUsingPerishSong +PressurePPLoseOnUsingPerishSong: @ 803F67C push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -16065,9 +16065,9 @@ _0803F6FE: movs r0, 0 movs r2, 0 movs r3, 0x1 - bl dp01_build_cmdbuf_x02_a_b_varargs + bl EmitSetMonData ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution _0803F762: add sp, 0x4 pop {r3-r5} @@ -16078,7 +16078,7 @@ _0803F762: pop {r0} bx r0 .pool - thumb_func_end sub_803F67C + thumb_func_end PressurePPLoseOnUsingPerishSong thumb_func_start sub_803F790 sub_803F790: @ 803F790 @@ -16132,8 +16132,8 @@ _0803F7EE: .pool thumb_func_end sub_803F790 - thumb_func_start dp01_battle_side_mark_buffer_for_execution -dp01_battle_side_mark_buffer_for_execution: @ 803F800 + thumb_func_start MarkBufferBankForExecution +MarkBufferBankForExecution: @ 803F800 push {lr} lsls r0, 24 lsrs r3, r0, 24 @@ -16167,7 +16167,7 @@ _0803F844: pop {r0} bx r0 .pool - thumb_func_end dp01_battle_side_mark_buffer_for_execution + thumb_func_end MarkBufferBankForExecution thumb_func_start sub_803F850 sub_803F850: @ 803F850 @@ -16252,8 +16252,8 @@ CancelMultiTurnMoves: @ 803F8A0 .pool thumb_func_end CancelMultiTurnMoves - thumb_func_start sub_803F90C -sub_803F90C: @ 803F90C + thumb_func_start HasMoveFailed +HasMoveFailed: @ 803F90C push {lr} lsls r0, 24 ldr r1, =gProtectStructs @@ -16298,10 +16298,10 @@ _0803F95C: _0803F95E: pop {r1} bx r1 - thumb_func_end sub_803F90C + thumb_func_end HasMoveFailed - thumb_func_start b_std_message -b_std_message: @ 803F964 + thumb_func_start PrepareStringBattle +PrepareStringBattle: @ 803F964 push {r4,lr} adds r2, r0, 0 lsls r2, 16 @@ -16312,18 +16312,18 @@ b_std_message: @ 803F964 adds r1, r2, 0 bl dp01_build_cmdbuf_x10_TODO ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution pop {r4} pop {r0} bx r0 .pool - thumb_func_end b_std_message + thumb_func_end PrepareStringBattle - thumb_func_start sub_803F988 -sub_803F988: @ 803F988 + thumb_func_start ResetSentPokesToOpponentValue +ResetSentPokesToOpponentValue: @ 803F988 push {r4-r6,lr} movs r3, 0 - ldr r0, =gUnknown_020243FE + ldr r0, =gSentPokesToOpponent strb r3, [r0] strb r3, [r0, 0x1] movs r1, 0 @@ -16351,7 +16351,7 @@ _0803F9B6: ldrb r0, [r2] cmp r1, r0 bge _0803F9D6 - ldr r5, =gUnknown_020243FE + ldr r5, =gSentPokesToOpponent movs r4, 0x2 _0803F9C4: adds r0, r1, 0 @@ -16368,7 +16368,7 @@ _0803F9D6: pop {r0} bx r0 .pool - thumb_func_end sub_803F988 + thumb_func_end ResetSentPokesToOpponentValue thumb_func_start sub_803F9EC sub_803F9EC: @ 803F9EC @@ -16389,7 +16389,7 @@ sub_803F9EC: @ 803F9EC lsls r0, 24 lsrs r0, 25 mov r12, r0 - ldr r1, =gUnknown_020243FE + ldr r1, =gSentPokesToOpponent adds r0, r1 strb r4, [r0] adds r5, r4, 0 @@ -16453,7 +16453,7 @@ _0803FA8C: ldrb r0, [r5] cmp r3, r0 bge _0803FAC2 - ldr r0, =gUnknown_020243FE + ldr r0, =gSentPokesToOpponent mov r12, r0 movs r7, 0x2 ldr r6, =gBitTable diff --git a/asm/battle_3.s b/asm/battle_3.s deleted file mode 100644 index f2e384c86..000000000 --- a/asm/battle_3.s +++ /dev/null @@ -1,11164 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start b_movescr_stack_push -b_movescr_stack_push: @ 803FAD8 - push {r4,lr} - ldr r1, =gBattleResources - ldr r1, [r1] - ldr r3, [r1, 0x8] - adds r4, r3, 0 - adds r4, 0x20 - ldrb r1, [r4] - adds r2, r1, 0x1 - strb r2, [r4] - lsls r1, 24 - lsrs r1, 22 - adds r3, r1 - str r0, [r3] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end b_movescr_stack_push - - thumb_func_start b_movescr_stack_push_cursor -b_movescr_stack_push_cursor: @ 803FAFC - ldr r0, =gBattleResources - ldr r0, [r0] - ldr r2, [r0, 0x8] - adds r3, r2, 0 - adds r3, 0x20 - ldrb r0, [r3] - adds r1, r0, 0x1 - strb r1, [r3] - lsls r0, 24 - lsrs r0, 22 - adds r2, r0 - ldr r0, =gBattlescriptCurrInstr - ldr r0, [r0] - str r0, [r2] - bx lr - .pool - thumb_func_end b_movescr_stack_push_cursor - - thumb_func_start b_movescr_stack_pop_cursor -b_movescr_stack_pop_cursor: @ 803FB24 - ldr r3, =gBattlescriptCurrInstr - ldr r0, =gBattleResources - ldr r0, [r0] - ldr r1, [r0, 0x8] - adds r2, r1, 0 - adds r2, 0x20 - ldrb r0, [r2] - subs r0, 0x1 - strb r0, [r2] - lsls r0, 24 - lsrs r0, 22 - adds r1, r0 - ldr r0, [r1] - str r0, [r3] - bx lr - .pool - thumb_func_end b_movescr_stack_pop_cursor - - thumb_func_start sub_803FB4C -sub_803FB4C: @ 803FB4C - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r6, 0 - ldr r2, =gBattleMons - ldr r1, =gBattleBufferB - ldr r3, =gActiveBank - ldrb r4, [r3] - lsls r0, r4, 9 - adds r1, 0x2 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 1 - movs r1, 0x58 - muls r1, r4 - adds r0, r1 - adds r2, 0xC - adds r0, r2 - ldrh r5, [r0] - ldr r1, =gBattleStruct - lsls r0, r4, 1 - adds r0, 0xC8 - ldr r1, [r1] - adds r1, r0 - mov r8, r1 - ldr r1, =gDisableStructs - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0, 0x4] - adds r7, r3, 0 - adds r3, r1, 0 - cmp r0, r5 - bne _0803FC06 - cmp r5, 0 - beq _0803FC06 - ldr r0, =gBattleScripting - strb r4, [r0, 0x17] - ldr r0, =gCurrentMove - strh r5, [r0] - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 10 - ands r0, r1 - cmp r0, 0 - beq _0803FBF8 - ldr r1, =gUnknown_02024230 - ldrb r0, [r7] - lsls r0, 2 - adds r0, r1 - ldr r1, =gUnknown_082DAE2A - str r1, [r0] - ldr r0, =gProtectStructs - ldrb r1, [r7] - lsls r1, 4 - adds r1, r0 - ldrb r0, [r1, 0x2] - movs r2, 0x10 - orrs r0, r2 - strb r0, [r1, 0x2] - b _0803FC06 - .pool -_0803FBF8: - ldr r0, =gUnknown_02024220 - ldrb r1, [r7] - lsls r1, 2 - adds r1, r0 - ldr r0, =gUnknown_082DAE1F - str r0, [r1] - movs r6, 0x1 -_0803FC06: - ldr r1, =gLastUsedMovesByBanks - ldrb r2, [r7] - lsls r0, r2, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r5, r0 - bne _0803FC90 - cmp r5, 0xA5 - beq _0803FC90 - ldr r1, =gBattleMons - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - cmp r0, 0 - bge _0803FC90 - adds r0, r2, 0 - bl CancelMultiTurnMoves - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 10 - ands r0, r1 - cmp r0, 0 - beq _0803FC7C - ldr r1, =gUnknown_02024230 - ldrb r0, [r7] - lsls r0, 2 - adds r0, r1 - ldr r1, =gUnknown_082DB098 - str r1, [r0] - ldr r0, =gProtectStructs - ldrb r1, [r7] - lsls r1, 4 - adds r1, r0 - ldrb r0, [r1, 0x2] - movs r2, 0x10 - orrs r0, r2 - strb r0, [r1, 0x2] - b _0803FC8E - .pool -_0803FC7C: - ldr r1, =gUnknown_02024220 - ldrb r0, [r7] - lsls r0, 2 - adds r0, r1 - ldr r1, =gUnknown_082DB089 - str r1, [r0] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_0803FC8E: - ldr r3, =gDisableStructs -_0803FC90: - ldrb r0, [r7] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r0, [r1, 0x13] - lsls r0, 28 - cmp r0, 0 - beq _0803FD1A - ldr r0, =gBattleMoves - lsls r1, r5, 1 - adds r1, r5 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - cmp r0, 0 - bne _0803FD1A - ldr r0, =gCurrentMove - strh r5, [r0] - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 10 - ands r0, r1 - cmp r0, 0 - beq _0803FD08 - ldr r1, =gUnknown_02024230 - ldrb r0, [r7] - lsls r0, 2 - adds r0, r1 - ldr r1, =gUnknown_082DB0AF - str r1, [r0] - ldr r0, =gProtectStructs - ldrb r1, [r7] - lsls r1, 4 - adds r1, r0 - ldrb r0, [r1, 0x2] - movs r2, 0x10 - orrs r0, r2 - strb r0, [r1, 0x2] - b _0803FD1A - .pool -_0803FD08: - ldr r1, =gUnknown_02024220 - ldrb r0, [r7] - lsls r0, 2 - adds r0, r1 - ldr r1, =gUnknown_082DB0A0 - str r1, [r0] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_0803FD1A: - ldr r4, =gActiveBank - ldrb r0, [r4] - adds r1, r5, 0 - bl sub_8040130 - lsls r0, 24 - cmp r0, 0 - beq _0803FD8E - ldr r0, =gCurrentMove - strh r5, [r0] - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 10 - ands r0, r1 - cmp r0, 0 - beq _0803FD7C - ldr r1, =gUnknown_02024230 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =gUnknown_082DB185 - str r1, [r0] - ldr r0, =gProtectStructs - ldrb r1, [r4] - lsls r1, 4 - adds r1, r0 - ldrb r0, [r1, 0x2] - movs r2, 0x10 - orrs r0, r2 - strb r0, [r1, 0x2] - b _0803FD8E - .pool -_0803FD7C: - ldr r1, =gUnknown_02024220 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =gUnknown_082DB181 - str r1, [r0] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_0803FD8E: - ldr r1, =gBattleMons - ldr r0, =gActiveBank - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r1, r0, r1 - ldrh r0, [r1, 0x2E] - cmp r0, 0xAF - bne _0803FDC4 - ldr r1, =gEnigmaBerries - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r4, [r0, 0x7] - b _0803FDCE - .pool -_0803FDC4: - ldrh r0, [r1, 0x2E] - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r4, r0, 24 -_0803FDCE: - ldr r2, =gStringBank - ldr r1, =gActiveBank - ldrb r0, [r1] - strb r0, [r2] - ldr r0, =gBattleMons - mov r12, r0 - adds r7, r1, 0 - cmp r4, 0x1D - bne _0803FE58 - mov r0, r8 - ldrh r1, [r0] - adds r2, r1, 0 - cmp r2, 0 - beq _0803FE58 - ldr r0, =0x0000ffff - cmp r2, r0 - beq _0803FE58 - cmp r2, r5 - beq _0803FE58 - ldr r0, =gCurrentMove - strh r1, [r0] - ldr r2, =gLastUsedItem - ldrb r1, [r7] - movs r0, 0x58 - muls r0, r1 - add r0, r12 - ldrh r0, [r0, 0x2E] - strh r0, [r2] - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 10 - ands r1, r0 - ldrb r2, [r7] - cmp r1, 0 - beq _0803FE48 - ldr r0, =gProtectStructs - lsls r1, r2, 4 - adds r1, r0 - ldrb r0, [r1, 0x2] - movs r2, 0x10 - orrs r0, r2 - strb r0, [r1, 0x2] - b _0803FE58 - .pool -_0803FE48: - ldr r1, =gUnknown_02024220 - lsls r0, r2, 2 - adds r0, r1 - ldr r1, =gUnknown_082DB812 - str r1, [r0] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_0803FE58: - ldr r0, =gBattleBufferB - ldrb r3, [r7] - lsls r1, r3, 9 - adds r0, 0x2 - adds r1, r0 - movs r0, 0x58 - muls r0, r3 - ldrb r1, [r1] - adds r0, r1 - mov r1, r12 - adds r1, 0x24 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _0803FEB8 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 10 - ands r0, r1 - cmp r0, 0 - beq _0803FEA8 - ldr r0, =gProtectStructs - lsls r1, r3, 4 - adds r1, r0 - ldrb r0, [r1, 0x2] - movs r2, 0x10 - orrs r0, r2 - strb r0, [r1, 0x2] - b _0803FEB8 - .pool -_0803FEA8: - ldr r1, =gUnknown_02024220 - lsls r0, r3, 2 - adds r0, r1 - ldr r1, =gUnknown_082DB076 - str r1, [r0] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_0803FEB8: - adds r0, r6, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_803FB4C - - thumb_func_start CheckMoveLimitations -CheckMoveLimitations: @ 803FECC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - lsls r0, 24 - lsrs r7, r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - lsls r2, 24 - lsrs r3, r2, 24 - ldr r1, =gBattleStruct - lsls r0, r7, 1 - adds r0, 0xC8 - ldr r1, [r1] - adds r1, r0 - str r1, [sp, 0x4] - ldr r1, =gBattleMons - movs r0, 0x58 - muls r0, r7 - adds r1, r0, r1 - ldrh r0, [r1, 0x2E] - cmp r0, 0xAF - bne _0803FF1C - ldr r2, =gEnigmaBerries - lsls r1, r7, 3 - subs r0, r1, r7 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x7] - str r0, [sp] - b _0803FF2E - .pool -_0803FF1C: - ldrh r0, [r1, 0x2E] - str r3, [sp, 0x14] - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - lsls r1, r7, 3 - ldr r3, [sp, 0x14] -_0803FF2E: - ldr r0, =gStringBank - strb r7, [r0] - movs r0, 0 - mov r9, r0 - lsls r2, r7, 1 - str r2, [sp, 0xC] - ldr r5, =gDisableStructs - mov r12, r5 - ldr r0, =gBattleMons - movs r2, 0x58 - adds r6, r7, 0 - muls r6, r2 - str r6, [sp, 0x8] - ldr r2, =gBattleMons + 0xC - adds r5, r6, r2 - movs r6, 0 - str r6, [sp, 0x10] - mov r10, r0 - subs r0, r1, r7 - lsls r0, 2 - mov r8, r0 - ldr r6, =gBitTable -_0803FF5A: - ldrh r0, [r5] - cmp r0, 0 - bne _0803FF70 - movs r0, 0x1 - ands r0, r3 - cmp r0, 0 - beq _0803FF70 - ldr r0, [r6] - orrs r4, r0 - lsls r0, r4, 24 - lsrs r4, r0, 24 -_0803FF70: - ldr r0, [sp, 0x8] - add r0, r9 - mov r1, r10 - adds r1, 0x24 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _0803FF90 - movs r0, 0x2 - ands r0, r3 - cmp r0, 0 - beq _0803FF90 - ldr r0, [r6] - orrs r4, r0 - lsls r0, r4, 24 - lsrs r4, r0, 24 -_0803FF90: - mov r1, r8 - add r1, r12 - ldrh r0, [r5] - ldrh r1, [r1, 0x4] - cmp r0, r1 - bne _0803FFAC - movs r0, 0x4 - ands r0, r3 - cmp r0, 0 - beq _0803FFAC - ldr r0, [r6] - orrs r4, r0 - lsls r0, r4, 24 - lsrs r4, r0, 24 -_0803FFAC: - movs r0, 0x58 - adds r2, r7, 0 - muls r2, r0 - ldr r1, [sp, 0x10] - adds r0, r1, r2 - ldr r1, =gBattleMons + 0xC - adds r0, r1 - mov r12, r0 - ldr r1, =gLastUsedMovesByBanks - ldr r0, [sp, 0xC] - adds r1, r0, r1 - str r1, [sp, 0x18] - mov r1, r12 - ldrh r1, [r1] - mov r12, r1 - ldr r0, [sp, 0x18] - ldrh r0, [r0] - cmp r12, r0 - bne _0803FFEE - movs r0, 0x8 - ands r0, r3 - cmp r0, 0 - beq _0803FFEE - mov r0, r10 - adds r0, 0x50 - adds r0, r2, r0 - ldr r0, [r0] - cmp r0, 0 - bge _0803FFEE - ldr r0, [r6] - orrs r4, r0 - lsls r0, r4, 24 - lsrs r4, r0, 24 -_0803FFEE: - ldr r0, =gDisableStructs - add r0, r8 - ldrb r0, [r0, 0x13] - lsls r0, 28 - cmp r0, 0 - beq _0804001C - movs r0, 0x10 - ands r0, r3 - cmp r0, 0 - beq _0804001C - ldr r2, =gBattleMoves - ldrh r1, [r5] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - cmp r0, 0 - bne _0804001C - ldr r0, [r6] - orrs r4, r0 - lsls r0, r4, 24 - lsrs r4, r0, 24 -_0804001C: - ldrh r1, [r5] - adds r0, r7, 0 - str r3, [sp, 0x14] - bl sub_8040130 - lsls r0, 24 - ldr r3, [sp, 0x14] - cmp r0, 0 - beq _0804003E - movs r0, 0x20 - ands r0, r3 - cmp r0, 0 - beq _0804003E - ldr r0, [r6] - orrs r4, r0 - lsls r0, r4, 24 - lsrs r4, r0, 24 -_0804003E: - ldr r1, =gDisableStructs - mov r0, r8 - adds r2, r0, r1 - ldrb r0, [r2, 0xE] - lsls r0, 28 - mov r12, r1 - cmp r0, 0 - beq _0804005E - ldrh r0, [r2, 0x6] - ldrh r1, [r5] - cmp r0, r1 - beq _0804005E - ldr r0, [r6] - orrs r4, r0 - lsls r0, r4, 24 - lsrs r4, r0, 24 -_0804005E: - ldr r2, [sp] - cmp r2, 0x1D - bne _08040080 - ldr r0, [sp, 0x4] - ldrh r1, [r0] - cmp r1, 0 - beq _08040080 - ldr r0, =0x0000ffff - cmp r1, r0 - beq _08040080 - ldrh r2, [r5] - cmp r1, r2 - beq _08040080 - ldr r0, [r6] - orrs r4, r0 - lsls r0, r4, 24 - lsrs r4, r0, 24 -_08040080: - adds r6, 0x4 - adds r5, 0x2 - ldr r0, [sp, 0x10] - adds r0, 0x2 - str r0, [sp, 0x10] - movs r1, 0x1 - add r9, r1 - mov r2, r9 - cmp r2, 0x3 - bgt _08040096 - b _0803FF5A -_08040096: - adds r0, r4, 0 - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end CheckMoveLimitations - - thumb_func_start sub_80400C8 -sub_80400C8: @ 80400C8 - push {r4,lr} - ldr r4, =gActiveBank - ldrb r0, [r4] - movs r1, 0 - movs r2, 0xFF - bl CheckMoveLimitations - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0xF - bne _0804010C - ldr r0, =gProtectStructs - ldrb r1, [r4] - lsls r1, 4 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - ldr r1, =gUnknown_02024220 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =gUnknown_082DB072 - str r1, [r0] - b _0804011E - .pool -_0804010C: - ldr r0, =gProtectStructs - ldrb r1, [r4] - lsls r1, 4 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] -_0804011E: - movs r0, 0 - cmp r3, 0xF - bne _08040126 - movs r0, 0x1 -_08040126: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80400C8 - - thumb_func_start sub_8040130 -sub_8040130: @ 8040130 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r5, r1, 16 - movs r6, 0 - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - movs r4, 0 - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r6, r0 - bge _080401B4 - ldr r7, =gBattleMons + 0xC - mov r8, r7 -_0804015A: - lsls r0, r4, 24 - lsrs r0, 24 - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - adds r3, r4, 0x1 - cmp r9, r0 - beq _080401AA - ldr r1, =gStatuses3 - lsls r0, r4, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 6 - ands r0, r1 - cmp r0, 0 - beq _080401AA - movs r2, 0 - movs r0, 0x58 - adds r1, r4, 0 - muls r1, r0 - adds r0, r1, r7 - ldrh r0, [r0] - cmp r5, r0 - beq _080401A0 - mov r4, r8 - adds r0, r1, r4 -_08040192: - adds r0, 0x2 - adds r2, 0x1 - cmp r2, 0x3 - bgt _080401AA - ldrh r1, [r0] - cmp r5, r1 - bne _08040192 -_080401A0: - cmp r2, 0x3 - bgt _080401AA - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_080401AA: - adds r4, r3, 0 - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r4, r0 - blt _0804015A -_080401B4: - adds r0, r6, 0 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8040130 - - thumb_func_start sub_80401D0 -sub_80401D0: @ 80401D0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r0, 0 - mov r9, r0 - ldr r1, =gBankAttacker - mov r2, r9 - strb r2, [r1] - ldr r0, =gNoOfAllBanks - ldrb r4, [r0] - adds r6, r1, 0 - mov r10, r0 - ldr r7, =gBankTarget - ldr r3, =gBattleStruct - mov r12, r3 - cmp r9, r4 - bcs _08040224 - ldr r2, =gAbsentBankFlags - ldrb r1, [r2] - ldr r5, =gBitTable - ldr r0, [r5] - ands r1, r0 - cmp r1, 0 - beq _08040224 - adds r3, r6, 0 -_08040206: - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] - lsls r0, 24 - lsrs r0, 24 - cmp r0, r4 - bcs _08040224 - ldrb r0, [r2] - ldrb r1, [r6] - lsls r1, 2 - adds r1, r5 - ldr r1, [r1] - ands r0, r1 - cmp r0, 0 - bne _08040206 -_08040224: - movs r0, 0 - strb r0, [r7] - mov r0, r10 - ldrb r4, [r0] - cmp r4, 0 - beq _0804025E - ldr r2, =gAbsentBankFlags - ldrb r1, [r2] - ldr r5, =gBitTable - ldr r0, [r5] - ands r1, r0 - cmp r1, 0 - beq _0804025E - adds r3, r7, 0 -_08040240: - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] - lsls r0, 24 - lsrs r0, 24 - cmp r0, r4 - bcs _0804025E - ldrb r0, [r2] - ldrb r1, [r7] - lsls r1, 2 - adds r1, r5 - ldr r1, [r1] - ands r0, r1 - cmp r0, 0 - bne _08040240 -_0804025E: - mov r1, r12 - ldr r0, [r1] - ldrb r0, [r0, 0x3] - cmp r0, 0xA - bls _0804026A - b _080408F6 -_0804026A: - lsls r0, 2 - ldr r1, =_08040290 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08040290: - .4byte _080402BC - .4byte _08040342 - .4byte _08040408 - .4byte _080404D4 - .4byte _080405B0 - .4byte _08040668 - .4byte _0804071C - .4byte _080407A0 - .4byte _08040810 - .4byte _08040868 - .4byte _080408EC -_080402BC: - movs r5, 0 - ldr r1, =gNoOfAllBanks - mov r10, r1 - ldrb r2, [r1] - cmp r5, r2 - bge _080402D6 - ldr r2, =gTurnOrder -_080402CA: - adds r0, r5, r2 - strb r5, [r0] - adds r5, 0x1 - ldrb r3, [r1] - cmp r5, r3 - blt _080402CA -_080402D6: - movs r5, 0 - b _08040324 - .pool -_080402E4: - adds r4, r5, 0x1 - adds r6, r4, 0 - ldrb r1, [r1] - cmp r6, r1 - bge _08040322 - ldr r7, =gTurnOrder - ldr r0, =gNoOfAllBanks - mov r10, r0 - lsls r1, r5, 24 - mov r8, r1 -_080402F8: - adds r0, r5, r7 - ldrb r0, [r0] - adds r1, r4, r7 - ldrb r1, [r1] - movs r2, 0 - bl b_first_side - lsls r0, 24 - cmp r0, 0 - beq _08040318 - lsls r1, r4, 24 - lsrs r1, 24 - mov r2, r8 - lsrs r0, r2, 24 - bl sub_803CEDC -_08040318: - adds r4, 0x1 - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r4, r0 - blt _080402F8 -_08040322: - adds r5, r6, 0 -_08040324: - mov r1, r10 - ldrb r0, [r1] - subs r0, 0x1 - cmp r5, r0 - blt _080402E4 - ldr r2, =gBattleStruct - ldr r1, [r2] - ldrb r0, [r1, 0x3] - adds r0, 0x1 - strb r0, [r1, 0x3] - ldr r0, [r2] - adds r0, 0xDB - movs r1, 0 - strb r1, [r0] - mov r12, r2 -_08040342: - mov r1, r12 - ldr r0, [r1] - adds r0, 0xDB - ldrb r0, [r0] - cmp r0, 0x1 - bls _08040350 - b _0804062C -_08040350: - ldr r3, =gActiveBank - mov r8, r3 - movs r7, 0 - ldr r6, =gBankAttacker - ldr r5, =gBattleTextBuff1 -_0804035A: - ldr r0, [r1] - adds r0, 0xDB - ldrb r4, [r0] - ldr r2, =gSideTimers - lsls r1, r4, 1 - adds r0, r1, r4 - lsls r0, 2 - adds r2, r0, r2 - ldrb r0, [r2, 0x1] - strb r0, [r6] - mov r3, r8 - strb r0, [r3] - ldr r0, =gSideAffecting - adds r3, r1, r0 - ldrh r1, [r3] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080403BC - ldrb r0, [r2] - subs r0, 0x1 - strb r0, [r2] - movs r4, 0xFF - lsls r0, 24 - cmp r0, 0 - bne _080403BC - ldrh r0, [r3] - ldr r2, =0x0000fffe - adds r1, r2, 0 - ands r0, r1 - strh r0, [r3] - ldr r0, =gUnknown_082DACFA - bl b_call_bc_move_exec - movs r0, 0xFD - strb r0, [r5] - movs r0, 0x2 - strb r0, [r5, 0x1] - movs r0, 0x73 - strb r0, [r5, 0x2] - strb r7, [r5, 0x3] - ldrb r0, [r5, 0x4] - orrs r0, r4 - strb r0, [r5, 0x4] - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_080403BC: - ldr r2, =gBattleStruct - ldr r1, [r2] - adds r1, 0xDB - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - mov r12, r2 - mov r3, r9 - cmp r3, 0 - beq _080403D2 - b _080408FE -_080403D2: - mov r1, r12 - ldr r0, [r1] - adds r0, 0xDB - ldrb r0, [r0] - cmp r0, 0x1 - bls _0804035A - b _0804062C - .pool -_08040408: - mov r1, r12 - ldr r0, [r1] - adds r0, 0xDB - ldrb r0, [r0] - cmp r0, 0x1 - bls _08040416 - b _08040570 -_08040416: - movs r0, 0x2 - mov r10, r0 - movs r2, 0 - mov r8, r2 - ldr r7, =gBankAttacker - ldr r5, =gBattleTextBuff1 -_08040422: - ldr r0, [r1] - adds r0, 0xDB - ldrb r4, [r0] - ldr r2, =gSideTimers - lsls r1, r4, 1 - adds r0, r1, r4 - lsls r0, 2 - adds r2, r0, r2 - ldrb r0, [r2, 0x3] - strb r0, [r7] - ldr r3, =gActiveBank - strb r0, [r3] - ldr r0, =gSideAffecting - adds r3, r1, r0 - ldrh r1, [r3] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0804048A - ldrb r0, [r2, 0x2] - subs r0, 0x1 - strb r0, [r2, 0x2] - movs r6, 0xFF - lsls r0, 24 - cmp r0, 0 - bne _0804048A - ldrh r0, [r3] - ldr r2, =0x0000fffd - adds r1, r2, 0 - ands r0, r1 - strh r0, [r3] - ldr r0, =gUnknown_082DACFA - bl b_call_bc_move_exec - ldr r0, =gBattleCommunication - strb r4, [r0, 0x5] - movs r0, 0xFD - strb r0, [r5] - mov r3, r10 - strb r3, [r5, 0x1] - movs r0, 0x71 - strb r0, [r5, 0x2] - mov r0, r8 - strb r0, [r5, 0x3] - ldrb r0, [r5, 0x4] - orrs r0, r6 - strb r0, [r5, 0x4] - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_0804048A: - ldr r2, =gBattleStruct - ldr r1, [r2] - adds r1, 0xDB - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - mov r12, r2 - mov r1, r9 - cmp r1, 0 - beq _080404A0 - b _080408FE -_080404A0: - mov r1, r12 - ldr r0, [r1] - adds r0, 0xDB - ldrb r0, [r0] - cmp r0, 0x1 - bls _08040422 - b _08040570 - .pool -_080404D4: - mov r1, r12 - ldr r0, [r1] - adds r0, 0xDB - ldrb r0, [r0] - cmp r0, 0x1 - bhi _08040570 - ldr r0, =gActiveBank - mov r10, r0 - movs r2, 0 - mov r8, r2 - ldr r7, =gBankAttacker - ldr r5, =gBattleTextBuff1 -_080404EC: - ldr r0, [r1] - adds r0, 0xDB - ldrb r4, [r0] - ldr r1, =gSideTimers - lsls r3, r4, 1 - adds r0, r3, r4 - lsls r0, 2 - adds r1, r0, r1 - ldrb r0, [r1, 0x5] - strb r0, [r7] - mov r2, r10 - strb r0, [r2] - ldrb r0, [r1, 0x4] - cmp r0, 0 - beq _0804054E - subs r0, 0x1 - strb r0, [r1, 0x4] - movs r6, 0xFF - lsls r0, 24 - cmp r0, 0 - bne _0804054E - ldr r2, =gSideAffecting - adds r2, r3, r2 - ldrh r0, [r2] - ldr r3, =0x0000feff - adds r1, r3, 0 - ands r0, r1 - strh r0, [r2] - ldr r0, =gUnknown_082DACFA - bl b_call_bc_move_exec - ldr r0, =gBattleCommunication - strb r4, [r0, 0x5] - movs r0, 0xFD - strb r0, [r5] - movs r0, 0x2 - strb r0, [r5, 0x1] - movs r0, 0x36 - strb r0, [r5, 0x2] - mov r0, r8 - strb r0, [r5, 0x3] - ldrb r0, [r5, 0x4] - orrs r0, r6 - strb r0, [r5, 0x4] - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_0804054E: - ldr r2, =gBattleStruct - ldr r1, [r2] - adds r1, 0xDB - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - mov r12, r2 - mov r1, r9 - cmp r1, 0 - beq _08040564 - b _080408FE -_08040564: - mov r1, r12 - ldr r0, [r1] - adds r0, 0xDB - ldrb r0, [r0] - cmp r0, 0x1 - bls _080404EC -_08040570: - mov r2, r9 - cmp r2, 0 - beq _08040578 - b _080408FE -_08040578: - mov r3, r12 - ldr r0, [r3] - ldrb r1, [r0, 0x3] - adds r1, 0x1 - strb r1, [r0, 0x3] - ldr r0, [r3] - adds r0, 0xDB - strb r2, [r0] - b _080408F6 - .pool -_080405B0: - mov r1, r12 - ldr r0, [r1] - adds r0, 0xDB - ldrb r0, [r0] - cmp r0, 0x1 - bhi _0804062C - ldr r6, =gActiveBank - ldr r5, =gBankAttacker -_080405C0: - ldr r0, [r1] - adds r0, 0xDB - ldrb r4, [r0] - ldr r2, =gSideTimers - lsls r1, r4, 1 - adds r0, r1, r4 - lsls r0, 2 - adds r2, r0, r2 - ldrb r0, [r2, 0x7] - strb r0, [r5] - strb r0, [r6] - ldr r0, =gSideAffecting - adds r3, r1, r0 - ldrh r1, [r3] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0804060A - ldrb r0, [r2, 0x6] - subs r0, 0x1 - strb r0, [r2, 0x6] - lsls r0, 24 - cmp r0, 0 - bne _0804060A - ldrh r0, [r3] - ldr r2, =0x0000ffdf - adds r1, r2, 0 - ands r0, r1 - strh r0, [r3] - ldr r0, =gUnknown_082DAD0B - bl b_call_bc_move_exec - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_0804060A: - ldr r2, =gBattleStruct - ldr r1, [r2] - adds r1, 0xDB - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - mov r12, r2 - mov r3, r9 - cmp r3, 0 - beq _08040620 - b _080408FE -_08040620: - mov r1, r12 - ldr r0, [r1] - adds r0, 0xDB - ldrb r0, [r0] - cmp r0, 0x1 - bls _080405C0 -_0804062C: - mov r0, r9 - cmp r0, 0 - beq _08040634 - b _080408FE -_08040634: - mov r1, r12 - ldr r0, [r1] - ldrb r1, [r0, 0x3] - adds r1, 0x1 - strb r1, [r0, 0x3] - mov r2, r12 - ldr r0, [r2] - adds r0, 0xDB - mov r3, r9 - strb r3, [r0] - b _080408F6 - .pool -_08040668: - mov r2, r12 - ldr r0, [r2] - adds r0, 0xDB - ldr r1, =gNoOfAllBanks - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bcs _080406E8 - ldr r4, =gActiveBank - ldr r5, =gTurnOrder -_0804067C: - ldr r0, [r2] - adds r0, 0xDB - ldrb r0, [r0] - adds r0, r5 - ldrb r0, [r0] - strb r0, [r4] - ldr r0, =gUnknown_020243D0 - adds r0, 0x20 - ldrb r2, [r4] - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0 - beq _080406C4 - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bne _080406C4 - ldr r1, =gBattleMons - ldrb r2, [r4] - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _080406C4 - ldr r0, =gBankTarget - strb r2, [r0] - ldr r0, =gUnknown_082DB0B7 - bl b_call_bc_move_exec - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_080406C4: - ldr r2, =gBattleStruct - ldr r1, [r2] - adds r1, 0xDB - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - mov r12, r2 - mov r3, r9 - cmp r3, 0 - beq _080406DA - b _080408FE -_080406DA: - ldr r0, [r2] - adds r0, 0xDB - ldr r1, =gNoOfAllBanks - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bcc _0804067C -_080406E8: - mov r0, r9 - cmp r0, 0 - beq _080406F0 - b _080408FE -_080406F0: - mov r2, r12 - ldr r1, [r2] - ldrb r0, [r1, 0x3] - adds r0, 0x1 - strb r0, [r1, 0x3] - b _080408F6 - .pool -_0804071C: - ldr r3, =gBattleWeather - ldrh r2, [r3] - movs r0, 0x7 - ands r0, r2 - cmp r0, 0 - bne _0804072A - b _080408C8 -_0804072A: - movs r0, 0x4 - ands r0, r2 - cmp r0, 0 - bne _08040776 - ldr r1, =gUnknown_020243D0 - adds r1, 0x28 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bne _08040768 - ldr r0, =0x0000fffe - ands r0, r2 - ldr r1, =0x0000fffd - ands r0, r1 - strh r0, [r3] - ldr r1, =gBattleCommunication - movs r0, 0x2 - strb r0, [r1, 0x5] - b _08040794 - .pool -_08040768: - movs r0, 0x2 - ands r0, r2 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - bne _08040782 - b _08040790 -_08040776: - movs r0, 0x2 - ands r0, r2 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - beq _08040790 -_08040782: - ldr r1, =gBattleCommunication - movs r0, 0x1 - strb r0, [r1, 0x5] - b _08040794 - .pool -_08040790: - ldr r0, =gBattleCommunication - strb r1, [r0, 0x5] -_08040794: - ldr r0, =gUnknown_082DAC2C - b _080408BA - .pool -_080407A0: - ldr r3, =gBattleWeather - ldrh r2, [r3] - movs r0, 0x18 - ands r0, r2 - cmp r0, 0 - bne _080407AE - b _080408C8 -_080407AE: - movs r0, 0x10 - ands r0, r2 - cmp r0, 0 - bne _080407E8 - ldr r1, =gUnknown_020243D0 - adds r1, 0x28 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bne _080407E8 - ldr r0, =0x0000fff7 - ands r0, r2 - strh r0, [r3] - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DACC9 - b _080407EC - .pool -_080407E8: - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DAC47 -_080407EC: - str r0, [r1] - adds r3, r1, 0 - ldr r1, =gBattleScripting - movs r2, 0 - movs r0, 0xC - strb r0, [r1, 0x10] - ldr r0, =gBattleCommunication - strb r2, [r0, 0x5] - b _080408B8 - .pool -_08040810: - ldr r3, =gBattleWeather - ldrh r2, [r3] - movs r0, 0x60 - ands r0, r2 - cmp r0, 0 - beq _080408C8 - movs r0, 0x40 - ands r0, r2 - cmp r0, 0 - bne _08040854 - ldr r1, =gUnknown_020243D0 - adds r1, 0x28 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bne _08040854 - ldr r0, =0x0000ffdf - ands r0, r2 - strh r0, [r3] - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DACE0 - b _08040858 - .pool -_08040854: - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DACD2 -_08040858: - str r0, [r1] - adds r3, r1, 0 - b _080408B8 - .pool -_08040868: - ldr r3, =gBattleWeather - ldrh r2, [r3] - movs r0, 0x80 - ands r0, r2 - cmp r0, 0 - beq _080408C8 - ldr r1, =gUnknown_020243D0 - adds r1, 0x28 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bne _080408A4 - ldr r0, =0x0000ff7f - ands r0, r2 - strh r0, [r3] - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DACC9 - b _080408A8 - .pool -_080408A4: - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DAC47 -_080408A8: - str r0, [r1] - adds r3, r1, 0 - ldr r1, =gBattleScripting - movs r0, 0xD - strb r0, [r1, 0x10] - ldr r1, =gBattleCommunication - movs r0, 0x1 - strb r0, [r1, 0x5] -_080408B8: - ldr r0, [r3] -_080408BA: - bl b_call_bc_move_exec - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_080408C8: - ldr r2, =gBattleStruct - ldr r1, [r2] - ldrb r0, [r1, 0x3] - adds r0, 0x1 - strb r0, [r1, 0x3] - mov r12, r2 - b _080408F6 - .pool -_080408EC: - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_080408F6: - mov r3, r9 - cmp r3, 0 - bne _080408FE - b _0804025E -_080408FE: - ldr r0, =gBattleMainFunc - ldr r1, [r0] - ldr r0, =sub_803B9BC - eors r1, r0 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80401D0 - - thumb_func_start sub_8040924 -sub_8040924: @ 8040924 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - movs r0, 0 - mov r9, r0 - ldr r2, =gHitMarker - ldr r0, [r2] - ldr r1, =0x01000020 - orrs r0, r1 - str r0, [r2] - ldr r5, =gBattleStruct - ldr r2, [r5] - ldr r0, =gNoOfAllBanks - ldrb r1, [r2, 0x1] - adds r7, r5, 0 - mov r8, r0 - ldrb r3, [r0] - cmp r1, r3 - bcc _08040954 - bl _08041338 -_08040954: - bl _0804132E - .pool -_08040968: - ldr r3, =gActiveBank - ldr r4, =gBankAttacker - ldr r1, =gTurnOrder - ldr r5, [r5] - ldrb r0, [r5, 0x1] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r4] - strb r0, [r3] - ldr r0, =gAbsentBankFlags - ldrb r1, [r0] - ldr r2, =gBitTable - ldrb r0, [r3] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - adds r6, r3, 0 - cmp r1, 0 - beq _080409B0 - ldrb r0, [r5, 0x1] - adds r0, 0x1 - strb r0, [r5, 0x1] - bl _0804131C - .pool -_080409B0: - ldrb r0, [r5] - cmp r0, 0x13 - bls _080409BA - bl _08041312 -_080409BA: - lsls r0, 2 - ldr r1, =_080409C8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080409C8: - .4byte _08040A18 - .4byte _08040A78 - .4byte _08040A96 - .4byte _08040AC6 - .4byte _08040B44 - .4byte _08040B8C - .4byte _08040C0C - .4byte _08040C54 - .4byte _08040CB8 - .4byte _08040D00 - .4byte _08040E60 - .4byte _08040F7C - .4byte _08041024 - .4byte _080410E8 - .4byte _0804119C - .4byte _080411BC - .4byte _08041208 - .4byte _08041238 - .4byte _08040AAE - .4byte _08041304 -_08040A18: - ldr r1, =gStatuses3 - ldrb r3, [r6] - lsls r0, r3, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 3 - ands r0, r1 - cmp r0, 0 - bne _08040A30 - bl _080412DE -_08040A30: - ldr r0, =gBattleMons - movs r1, 0x58 - muls r1, r3 - adds r0, r1, r0 - ldrh r2, [r0, 0x28] - ldrh r5, [r0, 0x2C] - cmp r2, r5 - bne _08040A44 - bl _080412DE -_08040A44: - cmp r2, 0 - bne _08040A4C - bl _080412DE -_08040A4C: - ldr r1, =gBattleMoveDamage - ldrh r0, [r0, 0x2C] - lsrs r0, 4 - str r0, [r1] - cmp r0, 0 - bne _08040A5C - movs r0, 0x1 - str r0, [r1] -_08040A5C: - ldr r0, [r1] - negs r0, r0 - str r0, [r1] - ldr r0, =gUnknown_082DB0EE - bl _080412D0 - .pool -_08040A78: - ldrb r1, [r6] - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - cmp r0, 0 - bne _08040A92 - bl _080412DE -_08040A92: - bl _080412D4 -_08040A96: - ldrb r1, [r6] - movs r0, 0x1 - movs r2, 0 - bl berry_effects_maybe - lsls r0, 24 - cmp r0, 0 - bne _08040AAA - bl _080412DE -_08040AAA: - bl _080412D4 -_08040AAE: - ldrb r1, [r6] - movs r0, 0x1 - movs r2, 0x1 - bl berry_effects_maybe - lsls r0, 24 - cmp r0, 0 - bne _08040AC2 - bl _080412DE -_08040AC2: - bl _080412D4 -_08040AC6: - ldr r0, =gStatuses3 - ldrb r2, [r6] - lsls r1, r2, 2 - adds r1, r0 - ldr r1, [r1] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - bne _08040ADC - bl _080412DE -_08040ADC: - ldr r3, =gBattleMons - movs r5, 0x3 - ands r5, r1 - movs r1, 0x58 - adds r0, r5, 0 - muls r0, r1 - adds r0, r3 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _08040AF4 - bl _080412DE -_08040AF4: - adds r0, r2, 0 - muls r0, r1 - adds r0, r3 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _08040B04 - bl _080412DE -_08040B04: - ldr r0, =gBankTarget - strb r5, [r0] - ldr r2, =gBattleMoveDamage - ldrb r0, [r6] - muls r0, r1 - adds r0, r3 - ldrh r0, [r0, 0x2C] - lsrs r0, 3 - str r0, [r2] - cmp r0, 0 - bne _08040B1E - movs r0, 0x1 - str r0, [r2] -_08040B1E: - ldr r1, =gBattleScripting - strb r5, [r1, 0x10] - ldrb r0, [r4] - strb r0, [r1, 0x11] - ldr r0, =gUnknown_082DAD15 - b _080412D0 - .pool -_08040B44: - ldr r2, =gBattleMons - ldrb r1, [r6] - movs r0, 0x58 - adds r3, r1, 0 - muls r3, r0 - adds r0, r2, 0 - adds r0, 0x4C - adds r0, r3, r0 - ldr r0, [r0] - movs r1, 0x8 - ands r0, r1 - cmp r0, 0 - bne _08040B60 - b _080412DE -_08040B60: - adds r1, r3, r2 - ldrh r0, [r1, 0x28] - cmp r0, 0 - bne _08040B6A - b _080412DE -_08040B6A: - ldr r2, =gBattleMoveDamage - ldrh r0, [r1, 0x2C] - lsrs r0, 3 - str r0, [r2] - cmp r0, 0 - bne _08040B7A - movs r0, 0x1 - str r0, [r2] -_08040B7A: - ldr r0, =gUnknown_082DB23D - b _080412D0 - .pool -_08040B8C: - ldr r4, =gBattleMons - ldrb r0, [r6] - movs r7, 0x58 - mov r8, r7 - mov r2, r8 - muls r2, r0 - adds r3, r4, 0 - adds r3, 0x4C - adds r0, r2, r3 - ldr r0, [r0] - movs r1, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08040BAA - b _080412DE -_08040BAA: - adds r1, r2, r4 - ldrh r0, [r1, 0x28] - cmp r0, 0 - bne _08040BB4 - b _080412DE -_08040BB4: - ldr r5, =gBattleMoveDamage - ldrh r0, [r1, 0x2C] - lsrs r0, 4 - str r0, [r5] - cmp r0, 0 - bne _08040BC4 - movs r0, 0x1 - str r0, [r5] -_08040BC4: - ldrb r0, [r6] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r2, r0, r3 - ldr r1, [r2] - movs r4, 0xF0 - lsls r4, 4 - adds r0, r1, 0 - ands r0, r4 - cmp r0, r4 - beq _08040BE4 - movs r7, 0x80 - lsls r7, 1 - adds r0, r1, r7 - str r0, [r2] -_08040BE4: - ldrb r0, [r6] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r3 - ldr r0, [r0] - ands r0, r4 - lsrs r0, 8 - ldr r1, [r5] - muls r0, r1 - str r0, [r5] - ldr r0, =gUnknown_082DB23D - b _080412D0 - .pool -_08040C0C: - ldr r2, =gBattleMons - ldrb r1, [r6] - movs r0, 0x58 - adds r3, r1, 0 - muls r3, r0 - adds r0, r2, 0 - adds r0, 0x4C - adds r0, r3, r0 - ldr r0, [r0] - movs r1, 0x10 - ands r0, r1 - cmp r0, 0 - bne _08040C28 - b _080412DE -_08040C28: - adds r1, r3, r2 - ldrh r0, [r1, 0x28] - cmp r0, 0 - bne _08040C32 - b _080412DE -_08040C32: - ldr r2, =gBattleMoveDamage - ldrh r0, [r1, 0x2C] - lsrs r0, 3 - str r0, [r2] - cmp r0, 0 - bne _08040C42 - movs r0, 0x1 - str r0, [r2] -_08040C42: - ldr r0, =gUnknown_082DB25F - b _080412D0 - .pool -_08040C54: - ldr r4, =gBattleMons - ldrb r1, [r6] - movs r0, 0x58 - muls r1, r0 - adds r0, r4, 0 - adds r0, 0x50 - adds r5, r1, r0 - ldr r2, [r5] - movs r0, 0x80 - lsls r0, 20 - ands r0, r2 - cmp r0, 0 - bne _08040C70 - b _080412DE -_08040C70: - adds r3, r1, r4 - ldrh r0, [r3, 0x28] - cmp r0, 0 - bne _08040C7A - b _080412DE -_08040C7A: - adds r0, r4, 0 - adds r0, 0x4C - adds r0, r1, r0 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - beq _08040CAC - ldr r1, =gBattleMoveDamage - ldrh r0, [r3, 0x2C] - lsrs r0, 2 - str r0, [r1] - cmp r0, 0 - bne _08040C9A - movs r0, 0x1 - str r0, [r1] -_08040C9A: - ldr r0, =gUnknown_082DB33F - b _080412D0 - .pool -_08040CAC: - ldr r0, =0xf7ffffff - ands r2, r0 - str r2, [r5] - b _080412DE - .pool -_08040CB8: - ldr r2, =gBattleMons - ldrb r1, [r6] - movs r0, 0x58 - adds r3, r1, 0 - muls r3, r0 - adds r0, r2, 0 - adds r0, 0x50 - adds r0, r3, r0 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 21 - ands r0, r1 - cmp r0, 0 - bne _08040CD6 - b _080412DE -_08040CD6: - adds r1, r3, r2 - ldrh r0, [r1, 0x28] - cmp r0, 0 - bne _08040CE0 - b _080412DE -_08040CE0: - ldr r2, =gBattleMoveDamage - ldrh r0, [r1, 0x2C] - lsrs r0, 2 - str r0, [r2] - cmp r0, 0 - bne _08040CF0 - movs r0, 0x1 - str r0, [r2] -_08040CF0: - ldr r0, =gUnknown_082DB350 - b _080412D0 - .pool -_08040D00: - ldr r3, =gBattleMons - mov r8, r3 - ldrb r0, [r6] - movs r3, 0x58 - adds r1, r0, 0 - muls r1, r3 - movs r5, 0x50 - add r5, r8 - mov r10, r5 - adds r4, r1, r5 - ldr r2, [r4] - movs r5, 0xE0 - lsls r5, 8 - adds r0, r2, 0 - ands r0, r5 - cmp r0, 0 - bne _08040D24 - b _080412DE -_08040D24: - mov r7, r8 - adds r0, r1, r7 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _08040D30 - b _080412DE -_08040D30: - ldr r1, =0xffffe000 - adds r0, r2, r1 - str r0, [r4] - ldrb r4, [r6] - adds r0, r4, 0 - muls r0, r3 - add r0, r10 - ldr r0, [r0] - ands r0, r5 - cmp r0, 0 - beq _08040DC0 - ldr r1, =gBattleScripting - ldr r0, =gBattleStruct - ldr r2, [r0] - lsls r0, r4, 1 - adds r0, r2 - ldrb r0, [r0, 0x4] - strb r0, [r1, 0x10] - ldrb r0, [r6] - lsls r0, 1 - adds r0, r2 - ldrb r0, [r0, 0x5] - strb r0, [r1, 0x11] - ldr r1, =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x2 - strb r0, [r1, 0x1] - ldrb r0, [r6] - lsls r0, 1 - adds r0, r2 - ldrb r0, [r0, 0x4] - strb r0, [r1, 0x2] - ldrb r0, [r6] - lsls r0, 1 - adds r0, r2 - ldrb r0, [r0, 0x5] - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB30E - str r0, [r1] - ldr r2, =gBattleMoveDamage - ldrb r0, [r6] - muls r0, r3 - add r0, r8 - ldrh r0, [r0, 0x2C] - lsrs r0, 4 - str r0, [r2] - cmp r0, 0 - bne _08040DEC - movs r0, 0x1 - str r0, [r2] - b _08040DEC - .pool -_08040DC0: - ldr r2, =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r2] - movs r0, 0x2 - strb r0, [r2, 0x1] - ldrb r1, [r6] - ldr r0, =gBattleStruct - ldr r3, [r0] - lsls r1, 1 - adds r1, r3 - ldrb r0, [r1, 0x4] - strb r0, [r2, 0x2] - ldrb r0, [r6] - lsls r0, 1 - adds r0, r3 - ldrb r0, [r0, 0x5] - strb r0, [r2, 0x3] - movs r0, 0xFF - strb r0, [r2, 0x4] - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB320 - str r0, [r1] -_08040DEC: - ldr r0, [r1] - b _080412D0 - .pool -_08040E00: - movs r0, 0x8 - negs r0, r0 - ands r3, r0 - str r3, [r2] - ldrb r0, [r6] - mov r2, r8 - muls r2, r0 - mov r0, r10 - adds r0, 0x50 - adds r2, r0 - ldr r0, [r2] - ldr r1, =0xf7ffffff - ands r0, r1 - str r0, [r2] - ldr r1, =gBattleCommunication - movs r0, 0x1 - strb r0, [r1, 0x5] - ldr r0, =gUnknown_082DB234 - bl b_call_bc_move_exec - ldr r4, =gActiveBank - ldrb r0, [r6] - strb r0, [r4] - ldrb r0, [r4] - mov r3, r8 - muls r3, r0 - adds r0, r3, 0 - add r0, r9 - str r0, [sp] - movs r0, 0 - movs r1, 0x28 - movs r2, 0 - movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - b _08040EC8 - .pool -_08040E60: - ldr r2, =gBattleMons - ldrb r1, [r6] - movs r0, 0x58 - muls r0, r1 - adds r1, r2, 0 - adds r1, 0x50 - adds r0, r1 - ldr r1, [r0] - movs r0, 0x70 - ands r1, r0 - adds r7, r2, 0 - cmp r1, 0 - beq _08040F6A - movs r0, 0 - strb r0, [r4] - mov r5, r8 - ldrb r0, [r5] - cmp r0, 0 - beq _08040EC8 - mov r10, r7 - adds r6, r4, 0 - movs r1, 0x58 - mov r8, r1 - movs r3, 0x4C - adds r3, r7 - mov r9, r3 - str r0, [sp, 0x4] - movs r5, 0x7 - mov r12, r5 -_08040E9A: - ldrb r4, [r6] - mov r1, r8 - muls r1, r4 - mov r0, r9 - adds r2, r1, r0 - ldr r3, [r2] - adds r0, r3, 0 - mov r5, r12 - ands r0, r5 - cmp r0, 0 - beq _08040EBA - adds r0, r1, r7 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x2B - bne _08040E00 -_08040EBA: - adds r0, r4, 0x1 - strb r0, [r6] - lsls r0, 24 - lsrs r0, 24 - ldr r1, [sp, 0x4] - cmp r0, r1 - bcc _08040E9A -_08040EC8: - ldr r2, =gBankAttacker - ldr r1, =gNoOfAllBanks - ldrb r0, [r2] - ldrb r1, [r1] - cmp r0, r1 - beq _08040EE8 - movs r3, 0x2 - mov r9, r3 - b _08041318 - .pool -_08040EE8: - ldr r5, =gActiveBank - ldrb r0, [r5] - strb r0, [r2] - ldr r2, =gBattleMons - ldrb r0, [r5] - movs r7, 0x58 - adds r1, r0, 0 - muls r1, r7 - adds r6, r2, 0 - adds r6, 0x50 - adds r1, r6 - ldr r0, [r1] - subs r0, 0x10 - str r0, [r1] - ldrb r0, [r5] - bl sub_803F90C - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _08040F2C - ldrb r0, [r5] - bl CancelMultiTurnMoves - ldr r1, =gBattleCommunication - movs r0, 0x1 - strb r0, [r1, 0x5] - b _08040F60 - .pool -_08040F2C: - ldrb r3, [r5] - adds r0, r3, 0 - muls r0, r7 - adds r2, r0, r6 - ldr r0, [r2] - movs r1, 0x70 - ands r0, r1 - cmp r0, 0 - beq _08040F54 - ldr r0, =gBattleCommunication - strb r4, [r0, 0x5] - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 5 - orrs r0, r1 - str r0, [r2] - b _08040F60 - .pool -_08040F54: - ldr r1, =gBattleCommunication - movs r0, 0x1 - strb r0, [r1, 0x5] - adds r0, r3, 0 - bl CancelMultiTurnMoves -_08040F60: - ldr r0, =gUnknown_082DB2A6 - bl b_call_bc_move_exec - movs r5, 0x1 - mov r9, r5 -_08040F6A: - mov r7, r9 - cmp r7, 0x2 - bne _08040F72 - b _08041312 -_08040F72: - b _080412DE - .pool -_08040F7C: - ldr r1, =gBattleMons - ldrb r0, [r6] - movs r7, 0x58 - muls r0, r7 - adds r5, r1, 0 - adds r5, 0x50 - adds r2, r0, r5 - ldr r1, [r2] - movs r4, 0xC0 - lsls r4, 4 - adds r0, r1, 0 - ands r0, r4 - cmp r0, 0 - bne _08040F9A - b _080412DE -_08040F9A: - ldr r3, =0xfffffc00 - adds r0, r1, r3 - str r0, [r2] - ldrb r0, [r6] - bl sub_803F90C - lsls r0, 24 - cmp r0, 0 - beq _08040FBC - ldrb r0, [r6] - bl CancelMultiTurnMoves - b _080412DE - .pool -_08040FBC: - ldrb r0, [r6] - muls r0, r7 - adds r2, r0, r5 - ldr r1, [r2] - adds r0, r1, 0 - ands r0, r4 - cmp r0, 0 - beq _08040FCE - b _080412DE -_08040FCE: - movs r0, 0x80 - lsls r0, 5 - ands r0, r1 - cmp r0, 0 - bne _08040FDA - b _080412DE -_08040FDA: - ldr r0, =0xffffefff - ands r1, r0 - str r1, [r2] - ldrb r0, [r6] - muls r0, r7 - adds r0, r5 - ldr r0, [r0] - movs r4, 0x7 - ands r0, r4 - cmp r0, 0 - beq _08040FF2 - b _080412DE -_08040FF2: - ldr r1, =gBattleCommunication - movs r0, 0x47 - strb r0, [r1, 0x3] - movs r0, 0x1 - movs r1, 0 - bl sub_8048760 - ldrb r0, [r6] - muls r0, r7 - adds r0, r5 - ldr r0, [r0] - ands r0, r4 - cmp r0, 0 - bne _08041010 - b _080412D4 -_08041010: - ldr r0, =gUnknown_082DB2AF - bl b_call_bc_move_exec - b _080412D4 - .pool -_08041024: - ldr r0, =gDisableStructs - ldrb r3, [r6] - lsls r1, r3, 3 - subs r1, r3 - lsls r1, 2 - adds r5, r1, r0 - ldrb r1, [r5, 0xB] - lsls r1, 28 - adds r7, r0, 0 - cmp r1, 0 - bne _0804103C - b _080412DE -_0804103C: - movs r4, 0 - ldr r2, =gBattleMons - movs r0, 0x58 - adds r1, r3, 0 - muls r1, r0 - adds r2, 0xC - adds r1, r2 - ldrh r0, [r5, 0x4] - ldrh r1, [r1] - cmp r0, r1 - beq _0804107A - mov r12, r7 - mov r8, r2 - adds r5, r6, 0 - movs r3, 0x58 -_0804105A: - adds r4, 0x1 - cmp r4, 0x3 - bgt _0804107A - ldrb r2, [r5] - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - add r1, r12 - lsls r0, r4, 1 - muls r2, r3 - adds r0, r2 - add r0, r8 - ldrh r1, [r1, 0x4] - ldrh r0, [r0] - cmp r1, r0 - bne _0804105A -_0804107A: - cmp r4, 0x4 - bne _080410AC - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r7 - movs r1, 0 - strh r1, [r0, 0x4] - ldrb r0, [r6] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r7 - ldrb r2, [r1, 0xB] - movs r0, 0x10 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0xB] - b _080412DE - .pool -_080410AC: - ldrb r0, [r6] - lsls r2, r0, 3 - subs r2, r0 - lsls r2, 2 - adds r2, r7 - ldrb r3, [r2, 0xB] - lsls r1, r3, 28 - lsrs r1, 28 - subs r1, 0x1 - movs r0, 0xF - ands r1, r0 - movs r0, 0x10 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0xB] - adds r2, r1, 0 - cmp r2, 0 - beq _080410D4 - b _080412DE -_080410D4: - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x4] - ldr r0, =gUnknown_082DAE23 - b _080412D0 - .pool -_080410E8: - ldr r3, =gDisableStructs - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r2, r0, r3 - ldrb r5, [r2, 0xE] - lsls r4, r5, 28 - cmp r4, 0 - bne _080410FE - b _080412DE -_080410FE: - ldr r7, =gBattleMons - mov r8, r7 - ldrb r0, [r2, 0xC] - lsls r0, 1 - movs r7, 0x58 - muls r1, r7 - adds r0, r1 - mov r1, r8 - adds r1, 0xC - adds r0, r1 - ldrh r0, [r0] - ldrh r1, [r2, 0x6] - cmp r0, r1 - beq _0804113C - movs r0, 0 - strh r0, [r2, 0x6] - ldrb r0, [r6] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r2, [r1, 0xE] - movs r0, 0x10 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0xE] - b _080412DE - .pool -_0804113C: - lsrs r1, r4, 28 - subs r1, 0x1 - movs r0, 0xF - ands r1, r0 - movs r4, 0x10 - negs r4, r4 - adds r0, r4, 0 - ands r0, r5 - orrs r0, r1 - strb r0, [r2, 0xE] - cmp r1, 0 - beq _08041172 - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r3 - muls r1, r7 - ldrb r0, [r0, 0xC] - adds r1, r0 - mov r0, r8 - adds r0, 0x24 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _08041172 - b _080412DE -_08041172: - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0 - strh r1, [r0, 0x6] - ldrb r0, [r6] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r2, [r1, 0xE] - adds r0, r4, 0 - ands r0, r2 - strb r0, [r1, 0xE] - ldr r0, =gUnknown_082DAE37 - b _080412D0 - .pool -_0804119C: - ldr r0, =gStatuses3 - ldrb r1, [r6] - lsls r1, 2 - adds r1, r0 - ldr r2, [r1] - movs r0, 0x18 - ands r0, r2 - cmp r0, 0 - beq _080411B4 - adds r0, r2, 0 - subs r0, 0x8 - str r0, [r1] -_080411B4: - ldr r1, [r7] - b _080412E2 - .pool -_080411BC: - ldr r2, =gDisableStructs - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r3, r0, r2 - ldrb r2, [r3, 0x12] - lsls r1, r2, 28 - cmp r1, 0 - beq _080411F6 - lsrs r1, 28 - subs r1, 0x1 - movs r0, 0xF - ands r1, r0 - movs r0, 0x10 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x12] - cmp r1, 0 - bne _080411F6 - ldr r0, =gStatuses3 - ldrb r2, [r6] - lsls r2, 2 - adds r2, r0 - ldr r0, [r2] - ldr r1, =0xfffffdff - ands r0, r1 - str r0, [r2] -_080411F6: - ldr r1, [r7] - b _080412E2 - .pool -_08041208: - ldr r2, =gDisableStructs - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r3, r0, r2 - ldrb r2, [r3, 0x13] - lsls r1, r2, 28 - cmp r1, 0 - beq _0804122E - lsrs r1, 28 - subs r1, 0x1 - movs r0, 0xF - ands r1, r0 - movs r0, 0x10 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x13] -_0804122E: - ldr r1, [r7] - b _080412E2 - .pool -_08041238: - ldr r4, =gStatuses3 - ldrb r0, [r6] - lsls r0, 2 - adds r2, r0, r4 - ldr r1, [r2] - movs r3, 0xC0 - lsls r3, 5 - adds r0, r1, 0 - ands r0, r3 - cmp r0, 0 - beq _080412DE - ldr r5, =0xfffff800 - adds r0, r1, r5 - str r0, [r2] - ldrb r2, [r6] - lsls r0, r2, 2 - adds r0, r4 - ldr r0, [r0] - ands r0, r3 - cmp r0, 0 - bne _080412DE - ldr r3, =gBattleMons - movs r5, 0x58 - adds r1, r2, 0 - muls r1, r5 - adds r4, r3, 0 - adds r4, 0x4C - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, 0 - bne _080412DE - adds r0, r1, r3 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x48 - beq _080412DE - cmp r0, 0xF - beq _080412DE - adds r0, r2, 0 - bl sub_8050650 - lsls r0, 24 - cmp r0, 0 - bne _080412DE - ldrb r0, [r6] - bl CancelMultiTurnMoves - bl Random - ldrb r1, [r6] - adds r2, r1, 0 - muls r2, r5 - adds r2, r4 - movs r1, 0x3 - ands r1, r0 - adds r1, 0x2 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - ldrb r0, [r6] - muls r0, r5 - adds r0, r4 - str r0, [sp] - movs r0, 0 - movs r1, 0x28 - movs r2, 0 - movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r6] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, =gUnknown_0202420E - ldrb r0, [r6] - strb r0, [r1] - ldr r0, =gUnknown_082DB378 -_080412D0: - bl b_call_bc_move_exec -_080412D4: - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_080412DE: - ldr r0, =gBattleStruct - ldr r1, [r0] -_080412E2: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08041312 - .pool -_08041304: - ldr r1, [r7] - movs r0, 0 - strb r0, [r1] - ldr r1, [r7] - ldrb r0, [r1, 0x1] - adds r0, 0x1 - strb r0, [r1, 0x1] -_08041312: - mov r7, r9 - cmp r7, 0 - beq _0804131C -_08041318: - mov r0, r9 - b _08041344 -_0804131C: - ldr r5, =gBattleStruct - ldr r2, [r5] - ldr r0, =gNoOfAllBanks - ldrb r1, [r2, 0x1] - adds r7, r5, 0 - mov r8, r0 - ldrb r0, [r0] - cmp r1, r0 - bcs _08041338 -_0804132E: - ldrb r0, [r2] - cmp r0, 0x13 - bhi _08041338 - bl _08040968 -_08041338: - ldr r0, =gHitMarker - ldr r1, [r0] - ldr r2, =0xfeffffdf - ands r1, r2 - str r1, [r0] - movs r0, 0 -_08041344: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8040924 - - thumb_func_start sub_8041364 -sub_8041364: @ 8041364 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r2, =gHitMarker - ldr r0, [r2] - ldr r1, =0x01000020 - orrs r0, r1 - str r0, [r2] - ldr r1, =gBattleStruct - ldr r3, [r1] - movs r4, 0xD0 - lsls r4, 1 - adds r0, r3, r4 - ldrb r0, [r0] - mov r10, r2 - adds r6, r1, 0 - cmp r0, 0x1 - bne _0804138E - b _08041548 -_0804138E: - cmp r0, 0x1 - bgt _080413A4 - cmp r0, 0 - beq _080413AC - b _08041708 - .pool -_080413A4: - cmp r0, 0x2 - bne _080413AA - b _0804169A -_080413AA: - b _08041708 -_080413AC: - ldr r2, =0x000001a1 - adds r0, r3, r2 - ldr r1, =gNoOfAllBanks - ldrb r0, [r0] - mov r8, r1 - ldrb r7, [r1] - cmp r0, r7 - bcc _080413BE - b _08041532 -_080413BE: - ldr r4, =gActiveBank - ldr r5, =gBattleTextBuff1 - ldr r7, =gUnknown_020243D0 - movs r0, 0x18 - adds r0, r7 - mov r12, r0 -_080413CA: - ldr r0, [r6] - adds r3, r0, r2 - ldrb r0, [r3] - strb r0, [r4] - ldr r0, =gAbsentBankFlags - ldrb r1, [r0] - ldr r2, =gBitTable - ldrb r0, [r4] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _0804140C - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] - b _08041520 - .pool -_0804140C: - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] - ldr r1, =gUnknown_020243D0 - ldrb r0, [r4] - adds r2, r0, r1 - ldrb r0, [r2] - mov r9, r1 - cmp r0, 0 - bne _08041422 - b _08041520 -_08041422: - subs r0, 0x1 - strb r0, [r2] - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - bne _08041520 - ldr r1, =gBattleMons - ldrb r2, [r4] - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _08041520 - lsls r0, r2, 1 - add r0, r12 - ldrh r0, [r0] - cmp r0, 0xF8 - bne _0804145C - ldr r0, =gBattleCommunication - strb r3, [r0, 0x5] - b _08041462 - .pool -_0804145C: - ldr r1, =gBattleCommunication - movs r0, 0x1 - strb r0, [r1, 0x5] -_08041462: - movs r0, 0xFD - strb r0, [r5] - movs r6, 0x2 - movs r0, 0x2 - strb r0, [r5, 0x1] - ldrb r0, [r4] - lsls r0, 1 - add r0, r12 - ldrh r0, [r0] - strb r0, [r5, 0x2] - ldrb r0, [r4] - lsls r0, 1 - add r0, r12 - ldrh r0, [r0] - lsrs r0, 8 - strb r0, [r5, 0x3] - movs r0, 0xFF - strb r0, [r5, 0x4] - ldr r5, =gBankTarget - ldrb r0, [r4] - strb r0, [r5] - ldr r1, =gBankAttacker - adds r0, r7, 0x4 - ldrb r2, [r4] - adds r0, r2 - ldrb r0, [r0] - strb r0, [r1] - ldr r2, =gBattleMoveDamage - ldrb r0, [r4] - lsls r0, 2 - adds r1, r7, 0 - adds r1, 0x8 - adds r0, r1 - ldr r0, [r0] - str r0, [r2] - ldr r2, =gSpecialStatuses - ldrb r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r2, 0x4 - adds r0, r2 - ldr r1, =0x0000ffff - str r1, [r0] - ldr r0, =gUnknown_082DAFE4 - bl b_call_bc_move_exec - ldrb r1, [r4] - adds r0, r1, r7 - ldrb r0, [r0] - cmp r0, 0 - beq _080414CC - b _08041664 -_080414CC: - eors r1, r6 - mov r3, r9 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, 0 - beq _080414DA - b _08041664 -_080414DA: - ldrb r0, [r5] - bl GetBankIdentity - ldr r2, =gSideAffecting - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - ands r0, r1 - lsls r0, 1 - adds r0, r2 - ldrh r1, [r0] - ldr r4, =0x0000ffbf - adds r2, r4, 0 - ands r1, r2 - strh r1, [r0] - b _08041664 - .pool -_08041520: - ldr r0, [r6] - ldr r2, =0x000001a1 - adds r0, r2 - ldrb r0, [r0] - mov r1, r8 - ldrb r1, [r1] - cmp r0, r1 - bcs _08041532 - b _080413CA -_08041532: - ldr r0, [r6] - movs r2, 0xD0 - lsls r2, 1 - adds r0, r2 - movs r1, 0x1 - strb r1, [r0] - ldr r0, [r6] - ldr r3, =0x000001a1 - adds r1, r0, r3 - movs r0, 0 - strb r0, [r1] -_08041548: - adds r3, r6, 0 - ldr r0, [r6] - ldr r2, =0x000001a1 - adds r0, r2 - ldr r1, =gNoOfAllBanks - ldrb r0, [r0] - mov r8, r1 - ldrb r4, [r1] - cmp r0, r4 - bcc _0804155E - b _08041684 -_0804155E: - ldr r5, =gActiveBank - ldr r4, =gBattleTextBuff1 - ldr r7, =gDisableStructs - mov r12, r7 - ldr r0, =gBankAttacker - mov r9, r0 -_0804156A: - ldr r1, =gTurnOrder - ldr r0, [r3] - adds r3, r0, r2 - ldrb r0, [r3] - adds r0, r1 - ldrb r0, [r0] - mov r1, r9 - strb r0, [r1] - strb r0, [r5] - ldr r0, =gAbsentBankFlags - ldrb r1, [r0] - ldr r2, =gBitTable - ldrb r0, [r5] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _080415BC - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] - b _08041670 - .pool -_080415BC: - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] - ldr r7, =gStatuses3 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r7 - ldr r0, [r0] - movs r1, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08041670 - movs r0, 0xFD - strb r0, [r4] - movs r0, 0x1 - strb r0, [r4, 0x1] - strb r0, [r4, 0x2] - strb r0, [r4, 0x3] - ldrb r1, [r5] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r12 - ldrb r0, [r0, 0xF] - lsls r0, 28 - lsrs r0, 28 - strb r0, [r4, 0x4] - movs r0, 0xFF - strb r0, [r4, 0x5] - ldrb r2, [r5] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - mov r3, r12 - adds r4, r0, r3 - ldrb r3, [r4, 0xF] - lsls r1, r3, 28 - cmp r1, 0 - bne _08041644 - lsls r2, 2 - adds r2, r7 - ldr r0, [r2] - movs r1, 0x21 - negs r1, r1 - ands r0, r1 - str r0, [r2] - ldr r3, =gBattleMoveDamage - ldr r2, =gBattleMons - ldrb r1, [r5] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r0, [r0, 0x28] - str r0, [r3] - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DAF05 - b _0804165C - .pool -_08041644: - lsrs r1, 28 - subs r1, 0x1 - movs r0, 0xF - ands r1, r0 - movs r7, 0x10 - negs r7, r7 - adds r0, r7, 0 - ands r0, r3 - orrs r0, r1 - strb r0, [r4, 0xF] - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DAF20 -_0804165C: - str r0, [r1] - ldr r0, [r1] - bl b_call_bc_move_exec -_08041664: - movs r0, 0x1 - b _08041714 - .pool -_08041670: - adds r3, r6, 0 - ldr r0, [r6] - ldr r2, =0x000001a1 - adds r0, r2 - ldrb r0, [r0] - mov r1, r8 - ldrb r1, [r1] - cmp r0, r1 - bcs _08041684 - b _0804156A -_08041684: - ldr r0, [r6] - movs r2, 0xD0 - lsls r2, 1 - adds r0, r2 - movs r1, 0x2 - strb r1, [r0] - ldr r0, [r6] - ldr r3, =0x000001a1 - adds r1, r0, r3 - movs r0, 0 - strb r0, [r1] -_0804169A: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 11 - ands r0, r1 - cmp r0, 0 - beq _08041708 - ldr r0, [r6] - adds r0, 0xDA - ldrb r0, [r0] - cmp r0, 0x2 - bne _08041708 - ldr r1, =gBattleMons - ldrh r0, [r1, 0x28] - cmp r0, 0 - beq _08041708 - adds r0, r1, 0 - adds r0, 0x80 - ldrh r0, [r0] - cmp r0, 0 - beq _08041708 - movs r4, 0 -_080416C6: - lsls r0, r4, 24 - lsrs r0, 24 - bl CancelMultiTurnMoves - adds r4, 0x1 - cmp r4, 0x1 - ble _080416C6 - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB8F3 - str r0, [r1] - bl b_call_bc_move_exec - ldr r0, =gBattleStruct - ldr r1, [r0] - movs r4, 0xD0 - lsls r4, 1 - adds r1, r4 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08041664 - .pool -_08041708: - mov r7, r10 - ldr r0, [r7] - ldr r1, =0xfeffffdf - ands r0, r1 - str r0, [r7] - movs r0, 0 -_08041714: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8041364 - - thumb_func_start sub_8041728 -sub_8041728: @ 8041728 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08041770 - b _08041A0A - .pool -_08041744: - ldr r0, =gUnknown_082DA7C4 - bl b_call_bc_move_exec - ldr r0, [r5] - adds r0, 0x4D - movs r1, 0x2 - b _08041764 - .pool -_08041758: - ldr r0, =gUnknown_082DA7CD - bl b_call_bc_move_exec - ldr r0, [r5] - adds r0, 0x4D - movs r1, 0x5 -_08041764: - strb r1, [r0] -_08041766: - movs r0, 0x1 - b _08041A0C - .pool -_08041770: - ldr r0, =gBattleStruct - mov r8, r0 -_08041774: - mov r1, r8 - ldr r0, [r1] - adds r0, 0x4D - ldrb r0, [r0] - cmp r0, 0x7 - bls _08041782 - b _080419FC -_08041782: - lsls r0, 2 - ldr r1, =_08041794 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08041794: - .4byte _080417B4 - .4byte _08041806 - .4byte _080418A0 - .4byte _080418E2 - .4byte _080418F6 - .4byte _08041960 - .4byte _08041994 - .4byte _080419FC -_080417B4: - mov r4, r8 - ldr r0, [r4] - adds r0, 0x4E - movs r1, 0 - strb r1, [r0] - ldr r1, [r4] - adds r1, 0x4D - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r5, 0 - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r5, r0 - bge _08041806 - ldr r6, =gAbsentBankFlags -_080417D4: - ldrb r0, [r6] - ldr r2, =gBitTable - lsls r1, r5, 2 - adds r1, r2 - ldr r4, [r1] - ands r0, r4 - cmp r0, 0 - beq _080417FC - lsls r0, r5, 24 - lsrs r0, 24 - movs r1, 0x6 - movs r2, 0x6 - bl sub_80423F4 - lsls r0, 24 - cmp r0, 0 - bne _080417FC - ldrb r0, [r6] - bics r0, r4 - strb r0, [r6] -_080417FC: - adds r5, 0x1 - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r5, r0 - blt _080417D4 -_08041806: - ldr r0, =gBattleStruct - mov r8, r0 - ldr r1, =gUnknown_0202420D - mov r12, r1 - ldr r2, =gBankTarget - mov r5, r8 - ldr r7, =gBattleMons - ldr r6, =gBattlePartyID -_08041816: - ldr r3, [r5] - adds r1, r3, 0 - adds r1, 0x4E - ldrb r0, [r1] - strb r0, [r2] - mov r4, r12 - strb r0, [r4] - ldrb r4, [r1] - movs r0, 0x58 - muls r0, r4 - adds r0, r7 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _0804185E - adds r0, r3, 0 - adds r0, 0xDF - ldrb r1, [r0] - ldr r3, =gBitTable - lsls r0, r4, 1 - adds r0, r6 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _0804185E - ldr r0, =gAbsentBankFlags - ldrb r1, [r0] - lsls r0, r4, 2 - adds r0, r3 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _0804185E - b _08041744 -_0804185E: - ldr r0, [r5] - adds r0, 0x4E - ldrb r1, [r0] - adds r1, 0x1 - strb r1, [r0] - ldr r0, =gNoOfAllBanks - lsls r1, 24 - lsrs r1, 24 - ldrb r0, [r0] - cmp r1, r0 - bne _08041816 - mov r1, r8 - ldr r0, [r1] - adds r0, 0x4D - movs r1, 0x3 - strb r1, [r0] - b _080419FC - .pool -_080418A0: - ldr r0, =gUnknown_0202420D - ldrb r0, [r0] - bl sub_803F9EC - ldr r2, =gBattleStruct - ldr r1, [r2] - adds r1, 0x4E - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r1, =gNoOfAllBanks - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bne _080418D8 - ldr r0, [r2] - adds r0, 0x4D - movs r1, 0x3 - strb r1, [r0] - b _080419FA - .pool -_080418D8: - ldr r0, [r2] - adds r0, 0x4D - movs r1, 0x1 - strb r1, [r0] - b _080419FA -_080418E2: - mov r4, r8 - ldr r0, [r4] - adds r0, 0x4E - movs r1, 0 - strb r1, [r0] - ldr r1, [r4] - adds r1, 0x4D - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080418F6: - ldr r0, =gUnknown_0202420D - mov r12, r0 - ldr r7, =gBankTarget - ldr r5, =gBattleStruct - ldr r2, =gBattleMons - ldr r6, =gBitTable -_08041902: - ldr r0, [r5] - adds r4, r0, 0 - adds r4, 0x4E - ldrb r0, [r4] - strb r0, [r7] - mov r1, r12 - strb r0, [r1] - ldrb r3, [r4] - movs r0, 0x58 - muls r0, r3 - adds r0, r2 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _08041930 - ldr r0, =gAbsentBankFlags - ldrb r1, [r0] - lsls r0, r3, 2 - adds r0, r6 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _08041930 - b _08041758 -_08041930: - adds r0, r3, 0x1 - strb r0, [r4] - ldr r1, =gNoOfAllBanks - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bne _08041902 - b _08041978 - .pool -_08041960: - mov r1, r8 - ldr r0, [r1] - adds r0, 0x4E - ldrb r1, [r0] - adds r1, 0x1 - strb r1, [r0] - ldr r0, =gNoOfAllBanks - lsls r1, 24 - lsrs r1, 24 - ldrb r0, [r0] - cmp r1, r0 - bne _08041988 -_08041978: - mov r4, r8 - ldr r0, [r4] - adds r0, 0x4D - movs r1, 0x6 - strb r1, [r0] - b _080419FC - .pool -_08041988: - mov r1, r8 - ldr r0, [r1] - adds r0, 0x4D - movs r1, 0x4 - strb r1, [r0] - b _080419FC -_08041994: - movs r0, 0 - str r0, [sp] - movs r0, 0x9 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _080419AE - b _08041766 -_080419AE: - str r0, [sp] - movs r0, 0xB - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - cmp r0, 0 - beq _080419C4 - b _08041766 -_080419C4: - movs r0, 0x1 - movs r1, 0 - movs r2, 0x1 - bl berry_effects_maybe - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _080419D8 - b _08041766 -_080419D8: - str r0, [sp] - movs r0, 0x6 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - cmp r0, 0 - beq _080419EE - b _08041766 -_080419EE: - ldr r2, =gBattleStruct - ldr r1, [r2] - adds r1, 0x4D - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080419FA: - mov r8, r2 -_080419FC: - mov r4, r8 - ldr r0, [r4] - adds r0, 0x4D - ldrb r0, [r0] - cmp r0, 0x7 - beq _08041A0A - b _08041774 -_08041A0A: - movs r0, 0 -_08041A0C: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8041728 - - thumb_func_start b_clear_atk_up_if_hit_flag_unless_enraged -b_clear_atk_up_if_hit_flag_unless_enraged: @ 8041A1C - push {r4-r6,lr} - movs r3, 0 - ldr r0, =gNoOfAllBanks - adds r5, r0, 0 - ldrb r0, [r5] - cmp r3, r0 - bge _08041A54 - ldr r4, =gUnknown_02024274 - movs r6, 0x80 - lsls r6, 16 - ldr r2, =gBattleMons + 0x50 -_08041A32: - ldr r1, [r2] - adds r0, r1, 0 - ands r0, r6 - cmp r0, 0 - beq _08041A48 - ldrh r0, [r4] - cmp r0, 0x63 - beq _08041A48 - ldr r0, =0xff7fffff - ands r1, r0 - str r1, [r2] -_08041A48: - adds r4, 0x2 - adds r2, 0x58 - adds r3, 0x1 - ldrb r0, [r5] - cmp r3, r0 - blt _08041A32 -_08041A54: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end b_clear_atk_up_if_hit_flag_unless_enraged - - thumb_func_start sub_8041A6C -sub_8041A6C: @ 8041A6C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - movs r0, 0 - mov r9, r0 - ldr r1, =gBattleScripting + 4 - mov r10, r1 - ldr r2, =gBattleStruct - mov r8, r2 - b _08041A9A - .pool -_08041A90: - mov r3, r9 - cmp r3, 0 - beq _08041A9A - bl _08042388 -_08041A9A: - mov r4, r8 - ldr r0, [r4] - ldr r7, =0x000001a3 - adds r0, r7 - ldrb r0, [r0] - cmp r0, 0xE - bls _08041AAC - bl _08042376 -_08041AAC: - lsls r0, 2 - ldr r1, =_08041AC0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08041AC0: - .4byte _08041AFC - .4byte _08041B48 - .4byte _08041C90 - .4byte _08041D50 - .4byte _08041DC4 - .4byte _08041E40 - .4byte _08041EB8 - .4byte _08041F38 - .4byte _08041FC0 - .4byte _08042028 - .4byte _08042114 - .4byte _08042194 - .4byte _08042234 - .4byte _0804231C - .4byte _08042376 -_08041AFC: - ldr r1, =gBattleMons - ldr r3, =gBankAttacker - ldrb r2, [r3] - movs r0, 0x58 - muls r2, r0 - adds r1, 0x50 - adds r2, r1 - ldr r0, [r2] - ldr r1, =0xfdffffff - ands r0, r1 - str r0, [r2] - ldr r0, =gStatuses3 - ldrb r2, [r3] - lsls r2, 2 - adds r2, r0 - ldr r0, [r2] - ldr r1, =0xffffbfff - ands r0, r1 - str r0, [r2] - mov r1, r8 - ldr r0, [r1] - ldr r2, =0x000001a3 - adds r1, r0, r2 - bl _08042370 - .pool -_08041B48: - ldr r7, =gBattleMons - ldr r4, =gBankAttacker - ldrb r1, [r4] - movs r5, 0x58 - adds r0, r1, 0 - muls r0, r5 - adds r6, r7, 0 - adds r6, 0x4C - adds r0, r6 - ldr r0, [r0] - movs r3, 0x7 - mov r8, r3 - ands r0, r3 - cmp r0, 0 - bne _08041B68 - b _08041C6E -_08041B68: - adds r0, r1, 0 - bl sub_8050650 - lsls r0, 24 - cmp r0, 0 - beq _08041BC8 - ldrb r0, [r4] - adds r2, r0, 0 - muls r2, r5 - adds r2, r6 - ldr r0, [r2] - movs r1, 0x8 - negs r1, r1 - ands r0, r1 - str r0, [r2] - ldrb r0, [r4] - adds r2, r0, 0 - muls r2, r5 - adds r0, r7, 0 - adds r0, 0x50 - adds r2, r0 - ldr r0, [r2] - ldr r1, =0xf7ffffff - ands r0, r1 - str r0, [r2] - bl b_movescr_stack_push_cursor - ldr r1, =gBattleCommunication - movs r0, 0x1 - strb r0, [r1, 0x5] - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB220 - str r0, [r1] - movs r4, 0x2 - mov r9, r4 - b _08041C6E - .pool -_08041BC8: - ldrb r0, [r4] - adds r1, r0, 0 - muls r1, r5 - adds r0, r1, r7 - adds r0, 0x20 - ldrb r0, [r0] - movs r3, 0x1 - cmp r0, 0x30 - bne _08041BDC - movs r3, 0x2 -_08041BDC: - adds r2, r1, r6 - ldr r1, [r2] - adds r0, r1, 0 - mov r7, r8 - ands r0, r7 - cmp r0, r3 - bcs _08041BF4 - movs r0, 0x8 - negs r0, r0 - ands r1, r0 - str r1, [r2] - b _08041BF8 -_08041BF4: - subs r0, r1, r3 - str r0, [r2] -_08041BF8: - ldr r2, =gBattleMons - ldr r0, =gBankAttacker - ldrb r1, [r0] - movs r0, 0x58 - muls r1, r0 - adds r0, r2, 0 - adds r0, 0x4C - adds r0, r1, r0 - ldr r4, [r0] - movs r0, 0x7 - ands r4, r0 - cmp r4, 0 - beq _08041C50 - ldr r0, =gCurrentMove - ldrh r0, [r0] - cmp r0, 0xAD - beq _08041C6E - cmp r0, 0xD6 - beq _08041C6E - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB213 - str r0, [r1] - ldr r2, =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 12 - orrs r0, r1 - str r0, [r2] - movs r0, 0x2 - mov r9, r0 - b _08041C6E - .pool -_08041C50: - adds r2, 0x50 - adds r2, r1, r2 - ldr r0, [r2] - ldr r1, =0xf7ffffff - ands r0, r1 - str r0, [r2] - bl b_movescr_stack_push_cursor - ldr r0, =gBattleCommunication - strb r4, [r0, 0x5] - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB220 - str r0, [r1] - movs r1, 0x2 - mov r9, r1 -_08041C6E: - ldr r1, =gBattleStruct - ldr r0, [r1] - ldr r3, =0x000001a3 - adds r2, r0, r3 - b _0804216A - .pool -_08041C90: - ldr r1, =gBattleMons - ldr r7, =gBankAttacker - ldrb r0, [r7] - movs r6, 0x58 - muls r0, r6 - adds r5, r1, 0 - adds r5, 0x4C - adds r0, r5 - ldr r0, [r0] - movs r1, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08041D30 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x5 - bl __umodsi3 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - beq _08041D08 - ldr r2, =gBattleMoves - ldr r0, =gCurrentMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0x7D - bne _08041CD6 - b _08042162 -_08041CD6: - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB26A - str r0, [r1] - ldr r2, =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 2 - orrs r0, r1 - str r0, [r2] - b _08041D28 - .pool -_08041D08: - ldrb r0, [r7] - adds r2, r0, 0 - muls r2, r6 - adds r2, r5 - ldr r0, [r2] - movs r1, 0x21 - negs r1, r1 - ands r0, r1 - str r0, [r2] - bl b_movescr_stack_push_cursor - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB277 - str r0, [r1] - ldr r0, =gBattleCommunication - strb r4, [r0, 0x5] -_08041D28: - movs r7, 0x2 - mov r9, r7 - ldr r0, =gBattleStruct - mov r8, r0 -_08041D30: - mov r1, r8 - ldr r0, [r1] - ldr r2, =0x000001a3 - adds r1, r0, r2 - b _08042370 - .pool -_08041D50: - ldr r1, =gBattleMons - ldr r0, =gBankAttacker - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x36 - beq _08041D66 - b _08042162 -_08041D66: - ldr r0, =gDisableStructs - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x18] - lsls r0, 31 - cmp r0, 0 - bne _08041D7A - b _08042162 -_08041D7A: - adds r0, r2, 0 - bl CancelMultiTurnMoves - ldr r2, =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 12 - orrs r0, r1 - str r0, [r2] - ldr r1, =gBattleCommunication - movs r0, 0 - strb r0, [r1, 0x5] - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB6AD - str r0, [r1] - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - b _0804215E - .pool -_08041DC4: - ldr r1, =gBattleMons - ldr r3, =gBankAttacker - ldrb r2, [r3] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r2, r0, r1 - ldr r1, [r2] - movs r0, 0x80 - lsls r0, 15 - ands r0, r1 - cmp r0, 0 - beq _08041E10 - ldr r0, =0xffbfffff - ands r1, r0 - str r1, [r2] - ldr r2, =gDisableStructs - ldrb r1, [r3] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strb r1, [r0, 0x19] - ldrb r0, [r3] - bl CancelMultiTurnMoves - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082D9462 - str r0, [r1] - ldr r2, =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 12 - orrs r0, r1 - str r0, [r2] - movs r7, 0x1 - mov r9, r7 -_08041E10: - ldr r1, =gBattleStruct - ldr r0, [r1] - ldr r3, =0x000001a3 - adds r2, r0, r3 - b _0804216A - .pool -_08041E40: - ldr r1, =gBattleMons - ldr r3, =gBankAttacker - ldrb r2, [r3] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r2, r0, r1 - ldr r1, [r2] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08041E8C - movs r0, 0x9 - negs r0, r0 - ands r1, r0 - str r1, [r2] - ldr r0, =gProtectStructs - ldrb r2, [r3] - lsls r2, 4 - adds r2, r0 - ldrb r0, [r2, 0x2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2, 0x2] - ldrb r0, [r3] - bl CancelMultiTurnMoves - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB29B - str r0, [r1] - ldr r2, =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 12 - orrs r0, r1 - str r0, [r2] - movs r4, 0x1 - mov r9, r4 -_08041E8C: - ldr r1, =gBattleStruct - ldr r0, [r1] - ldr r7, =0x000001a3 - adds r2, r0, r7 - b _0804216A - .pool -_08041EB8: - ldr r0, =gDisableStructs - ldr r3, =gBankAttacker - ldrb r2, [r3] - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r0 - ldr r0, =gCurrentMove - ldrh r1, [r1, 0x4] - ldrh r0, [r0] - cmp r1, r0 - bne _08041F04 - cmp r1, 0 - beq _08041F04 - ldr r0, =gProtectStructs - lsls r2, 4 - adds r2, r0 - ldrb r0, [r2, 0x1] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x1] - ldr r1, =gBattleScripting - ldrb r0, [r3] - strb r0, [r1, 0x17] - ldrb r0, [r3] - bl CancelMultiTurnMoves - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DAE14 - str r0, [r1] - ldr r2, =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 12 - orrs r0, r1 - str r0, [r2] - movs r0, 0x1 - mov r9, r0 -_08041F04: - ldr r1, =gBattleStruct - ldr r0, [r1] - ldr r3, =0x000001a3 - adds r2, r0, r3 - b _0804216A - .pool -_08041F38: - ldr r0, =gDisableStructs - ldr r4, =gBankAttacker - ldrb r3, [r4] - lsls r1, r3, 3 - subs r1, r3 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x13] - lsls r0, 28 - cmp r0, 0 - beq _08041F8C - ldr r2, =gBattleMoves - ldr r0, =gCurrentMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - cmp r0, 0 - bne _08041F8C - ldr r0, =gProtectStructs - lsls r2, r3, 4 - adds r2, r0 - ldrb r0, [r2, 0x2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2, 0x2] - ldrb r0, [r4] - bl CancelMultiTurnMoves - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB0A4 - str r0, [r1] - ldr r2, =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 12 - orrs r0, r1 - str r0, [r2] - movs r4, 0x1 - mov r9, r4 -_08041F8C: - ldr r1, =gBattleStruct - ldr r0, [r1] - ldr r7, =0x000001a3 - adds r2, r0, r7 - b _0804216A - .pool -_08041FC0: - ldr r4, =gBankAttacker - ldrb r0, [r4] - ldr r1, =gCurrentMove - ldrh r1, [r1] - bl sub_8040130 - lsls r0, 24 - cmp r0, 0 - beq _08041FFE - ldr r0, =gProtectStructs - ldrb r2, [r4] - lsls r2, 4 - adds r2, r0 - ldrb r0, [r2, 0x1] - movs r1, 0x20 - orrs r0, r1 - strb r0, [r2, 0x1] - ldrb r0, [r4] - bl CancelMultiTurnMoves - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB176 - str r0, [r1] - ldr r2, =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 12 - orrs r0, r1 - str r0, [r2] - movs r0, 0x1 - mov r9, r0 -_08041FFE: - ldr r1, =gBattleStruct - ldr r0, [r1] - ldr r3, =0x000001a3 - adds r2, r0, r3 - b _0804216A - .pool -_08042028: - ldr r7, =gBattleMons - ldr r5, =gBankAttacker - ldrb r0, [r5] - movs r6, 0x58 - muls r0, r6 - adds r4, r7, 0 - adds r4, 0x50 - adds r2, r0, r4 - ldr r1, [r2] - movs r3, 0x7 - adds r0, r1, 0 - ands r0, r3 - cmp r0, 0 - beq _080420FA - subs r0, r1, 0x1 - str r0, [r2] - ldrb r0, [r5] - muls r0, r6 - adds r0, r4 - ldr r0, [r0] - ands r0, r3 - cmp r0, 0 - beq _080420E8 - bl Random - movs r1, 0x1 - movs r2, 0x1 - ands r2, r0 - cmp r2, 0 - beq _0804207C - ldr r1, =gBattleCommunication - movs r0, 0 - strb r0, [r1, 0x5] - bl b_movescr_stack_push_cursor - b _080420C6 - .pool -_0804207C: - ldr r0, =gBattleCommunication - movs r4, 0x1 - strb r1, [r0, 0x5] - ldr r1, =gBankTarget - ldrb r0, [r5] - strb r0, [r1] - ldrb r0, [r5] - adds r1, r0, 0 - muls r1, r6 - adds r1, r7 - movs r0, 0x28 - str r0, [sp] - str r2, [sp, 0x4] - ldrb r0, [r5] - str r0, [sp, 0x8] - ldrb r0, [r5] - str r0, [sp, 0xC] - adds r0, r1, 0 - movs r2, 0x1 - movs r3, 0 - bl CalculateBaseDamage - ldr r1, =gBattleMoveDamage - str r0, [r1] - ldr r0, =gProtectStructs - ldrb r1, [r5] - lsls r1, 4 - adds r1, r0 - ldrb r0, [r1, 0x1] - orrs r0, r4 - strb r0, [r1, 0x1] - ldr r2, =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 12 - orrs r0, r1 - str r0, [r2] -_080420C6: - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB2BD - b _080420F0 - .pool -_080420E8: - bl b_movescr_stack_push_cursor - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB300 -_080420F0: - str r0, [r1] - movs r4, 0x1 - mov r9, r4 - ldr r7, =gBattleStruct - mov r8, r7 -_080420FA: - mov r1, r8 - ldr r0, [r1] - ldr r2, =0x000001a3 - adds r1, r0, r2 - b _08042370 - .pool -_08042114: - ldr r1, =gBattleMons - ldr r4, =gBankAttacker - ldrb r2, [r4] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08042162 - bl Random - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r0 - cmp r1, 0 - bne _08042162 - ldr r0, =gProtectStructs - ldrb r2, [r4] - lsls r2, 4 - adds r2, r0 - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB28B - str r0, [r1] - ldr r2, =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 12 - orrs r0, r1 - str r0, [r2] -_0804215E: - movs r3, 0x1 - mov r9, r3 -_08042162: - ldr r1, =gBattleStruct - ldr r0, [r1] - ldr r4, =0x000001a3 - adds r2, r0, r4 -_0804216A: - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - mov r8, r1 - b _08042376 - .pool -_08042194: - ldr r1, =gBattleMons - ldr r4, =gBankAttacker - ldrb r2, [r4] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r1, [r0] - movs r0, 0xF0 - lsls r0, 12 - ands r1, r0 - cmp r1, 0 - beq _0804220E - lsrs r0, r1, 16 - bl CountTrailingZeroBits - ldr r1, =gBattleScripting - strb r0, [r1, 0x17] - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _080421D8 - bl b_movescr_stack_push_cursor - b _08042200 - .pool -_080421D8: - ldr r0, =gUnknown_082DB334 - bl b_movescr_stack_push - ldr r2, =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 12 - orrs r0, r1 - str r0, [r2] - ldr r0, =gProtectStructs - ldrb r2, [r4] - lsls r2, 4 - adds r2, r0 - ldrb r0, [r2, 0x1] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2, 0x1] - ldrb r0, [r4] - bl CancelMultiTurnMoves -_08042200: - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB327 - str r0, [r1] - movs r7, 0x1 - mov r9, r7 - ldr r0, =gBattleStruct - mov r8, r0 -_0804220E: - mov r1, r8 - ldr r0, [r1] - ldr r2, =0x000001a3 - adds r1, r0, r2 - b _08042370 - .pool -_08042234: - ldr r1, =gBattleMons - ldr r6, =gBankAttacker - ldrb r0, [r6] - movs r5, 0x58 - muls r0, r5 - adds r1, 0x50 - adds r3, r0, r1 - ldr r2, [r3] - movs r4, 0xC0 - lsls r4, 2 - adds r0, r2, 0 - ands r0, r4 - cmp r0, 0 - beq _08042306 - ldr r7, =0xffffff00 - adds r0, r2, r7 - str r0, [r3] - ldrb r2, [r6] - adds r0, r2, 0 - muls r0, r5 - adds r0, r1 - ldr r0, [r0] - ands r0, r4 - cmp r0, 0 - beq _08042280 - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DAD71 - b _08042300 - .pool -_08042280: - ldr r3, =gUnknown_020241F8 - lsls r0, r2, 2 - adds r0, r3 - ldr r0, [r0] - cmp r0, 0 - beq _080422FC - ldr r1, =gCurrentMove - movs r0, 0x75 - strh r0, [r1] - ldrb r0, [r6] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - lsls r0, 1 - mov r1, r10 - str r0, [r1] - ldr r4, =gBankTarget - ldr r1, =gUnknown_02024288 - ldrb r0, [r6] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r4] - ldr r0, =gAbsentBankFlags - ldrb r1, [r0] - ldr r2, =gBitTable - ldrb r0, [r4] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _080422CA - movs r0, 0x75 - movs r1, 0x1 - bl GetMoveTarget - strb r0, [r4] -_080422CA: - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DAD7C - str r0, [r1] - ldr r2, =gBattleStruct - mov r8, r2 - b _08042302 - .pool -_080422FC: - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DADC4 -_08042300: - str r0, [r1] -_08042302: - movs r3, 0x1 - mov r9, r3 -_08042306: - mov r4, r8 - ldr r0, [r4] - ldr r7, =0x000001a3 - adds r1, r0, r7 - b _08042370 - .pool -_0804231C: - ldr r1, =gBattleMons - ldr r0, =gBankAttacker - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x4C - adds r4, r0, r1 - ldr r3, [r4] - movs r0, 0x20 - ands r0, r3 - cmp r0, 0 - beq _08042368 - ldr r2, =gBattleMoves - ldr r0, =gCurrentMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0x7D - bne _08042360 - movs r0, 0x21 - negs r0, r0 - ands r3, r0 - str r3, [r4] - bl b_movescr_stack_push_cursor - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB277 - str r0, [r1] - ldr r1, =gBattleCommunication - movs r0, 0x1 - strb r0, [r1, 0x5] -_08042360: - movs r0, 0x2 - mov r9, r0 - ldr r1, =gBattleStruct - mov r8, r1 -_08042368: - mov r2, r8 - ldr r0, [r2] - ldr r3, =0x000001a3 - adds r1, r0, r3 -_08042370: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08042376: - mov r4, r8 - ldr r0, [r4] - ldr r7, =0x000001a3 - adds r0, r7 - ldrb r0, [r0] - cmp r0, 0xE - beq _08042388 - bl _08041A90 -_08042388: - mov r0, r9 - cmp r0, 0x2 - bne _080423B4 - ldr r4, =gActiveBank - ldr r0, =gBankAttacker - ldrb r0, [r0] - strb r0, [r4] - ldrb r1, [r4] - movs r0, 0x58 - muls r0, r1 - ldr r1, =gBattleMons + 0x4C - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0x28 - movs r2, 0 - movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_080423B4: - mov r0, r9 - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8041A6C - - thumb_func_start sub_80423F4 -sub_80423F4: @ 80423F4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r10, r1 - lsls r2, 24 - lsrs r2, 24 - mov r9, r2 - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08042424 - movs r0, 0 - b _080426A0 - .pool -_08042424: - movs r0, 0x80 - lsls r0, 15 - ands r0, r1 - cmp r0, 0 - beq _0804249C - adds r0, r4, 0 - bl GetBankSide - lsls r0, 24 - ldr r1, =gEnemyParty - mov r8, r1 - cmp r0, 0 - bne _08042442 - ldr r2, =gPlayerParty - mov r8, r2 -_08042442: - movs r0, 0x2 - ands r0, r4 - lsls r0, 24 - lsrs r6, r0, 25 - lsls r0, r6, 1 - adds r4, r0, r6 - adds r0, r4, 0x3 - cmp r4, r0 - bge _0804248C - adds r7, r0, 0 -_08042456: - movs r0, 0x64 - muls r0, r4 - mov r1, r8 - adds r5, r1, r0 - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _08042486 - adds r0, r5, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _08042486 - adds r0, r5, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - bne _0804248C -_08042486: - adds r4, 0x1 - cmp r4, r7 - blt _08042456 -_0804248C: - movs r1, 0 - lsls r0, r6, 1 - adds r0, r6 - b _08042556 - .pool -_0804249C: - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0804256C - movs r0, 0x80 - lsls r0, 16 - ands r1, r0 - cmp r1, 0 - beq _080424E4 - adds r0, r4, 0 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _080424D0 - ldr r2, =gPlayerParty - mov r8, r2 - adds r0, r4, 0 - bl sub_806D864 - lsls r0, 24 - lsrs r7, r0, 24 - b _08042502 - .pool -_080424D0: - ldr r0, =gEnemyParty - mov r8, r0 - movs r1, 0x1 - eors r1, r4 - negs r0, r1 - orrs r0, r1 - lsrs r6, r0, 31 - b _0804250C - .pool -_080424E4: - adds r0, r4, 0 - bl sub_806D864 - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r4, 0 - bl GetBankSide - lsls r0, 24 - ldr r1, =gEnemyParty - mov r8, r1 - cmp r0, 0 - bne _08042502 - ldr r2, =gPlayerParty - mov r8, r2 -_08042502: - adds r0, r7, 0 - bl sub_806D82C - lsls r0, 24 - lsrs r6, r0, 24 -_0804250C: - lsls r0, r6, 1 - adds r4, r0, r6 - adds r1, r4, 0x3 - mov r9, r0 - cmp r4, r1 - bge _08042550 - adds r7, r1, 0 -_0804251A: - movs r0, 0x64 - muls r0, r4 - mov r1, r8 - adds r5, r1, r0 - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _0804254A - adds r0, r5, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _0804254A - adds r0, r5, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - bne _08042550 -_0804254A: - adds r4, 0x1 - cmp r4, r7 - blt _0804251A -_08042550: - movs r1, 0 - mov r2, r9 - adds r0, r2, r6 -_08042556: - adds r0, 0x3 - cmp r4, r0 - bne _0804255E - movs r1, 0x1 -_0804255E: - adds r0, r1, 0 - b _080426A0 - .pool -_0804256C: - movs r0, 0x80 - lsls r0, 8 - ands r1, r0 - cmp r1, 0 - beq _080425DA - adds r0, r4, 0 - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080425DA - ldr r0, =gEnemyParty - mov r8, r0 - movs r6, 0x3 - cmp r4, 0x1 - bne _08042590 - movs r6, 0 -_08042590: - adds r4, r6, 0 - adds r6, r4, 0x3 - b _0804259E - .pool -_0804259C: - adds r4, 0x1 -_0804259E: - cmp r4, r6 - bge _080425D2 - movs r0, 0x64 - muls r0, r4 - mov r1, r8 - adds r5, r1, r0 - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _0804259C - adds r0, r5, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _0804259C - adds r0, r5, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _0804259C -_080425D2: - movs r0, 0 - cmp r4, r6 - bne _080426A0 - b _0804269E -_080425DA: - adds r0, r4, 0 - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08042608 - movs r0, 0x1 - bl GetBankByPlayerAI - lsls r0, 24 - lsrs r7, r0, 24 - movs r0, 0x3 - bl GetBankByPlayerAI - lsls r0, 24 - lsrs r6, r0, 24 - ldr r2, =gEnemyParty - mov r8, r2 - b _08042620 - .pool -_08042608: - movs r0, 0 - bl GetBankByPlayerAI - lsls r0, 24 - lsrs r7, r0, 24 - movs r0, 0x2 - bl GetBankByPlayerAI - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, =gPlayerParty - mov r8, r0 -_08042620: - mov r1, r10 - cmp r1, 0x6 - bne _08042630 - ldr r1, =gBattlePartyID - lsls r0, r7, 1 - adds r0, r1 - ldrb r0, [r0] - mov r10, r0 -_08042630: - mov r2, r9 - cmp r2, 0x6 - bne _08042640 - ldr r1, =gBattlePartyID - lsls r0, r6, 1 - adds r0, r1 - ldrb r0, [r0] - mov r9, r0 -_08042640: - movs r4, 0 -_08042642: - movs r0, 0x64 - muls r0, r4 - mov r1, r8 - adds r5, r1, r0 - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _08042692 - adds r0, r5, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _08042692 - adds r0, r5, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _08042692 - cmp r4, r10 - beq _08042692 - cmp r4, r9 - beq _08042692 - ldr r0, =gBattleStruct - ldr r1, [r0] - adds r0, r7, r1 - adds r0, 0x5C - ldrb r0, [r0] - cmp r4, r0 - beq _08042692 - adds r0, r6, r1 - adds r0, 0x5C - ldrb r0, [r0] - cmp r4, r0 - bne _08042698 -_08042692: - adds r4, 0x1 - cmp r4, 0x5 - ble _08042642 -_08042698: - movs r0, 0 - cmp r4, 0x6 - bne _080426A0 -_0804269E: - movs r0, 0x1 -_080426A0: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80423F4 - - thumb_func_start castform_switch -castform_switch: @ 80426BC - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 - ldr r1, =gBattleMons - movs r0, 0x58 - muls r0, r6 - adds r4, r0, r1 - ldrh r1, [r4] - ldr r0, =0x00000181 - cmp r1, r0 - bne _08042760 - adds r0, r4, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x3B - bne _08042760 - ldrh r0, [r4, 0x28] - cmp r0, 0 - beq _08042760 - str r5, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0xD - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - cmp r0, 0 - bne _0804270E - str r5, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0x4D - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - cmp r0, 0 - beq _08042734 -_0804270E: - adds r2, r4, 0 - adds r2, 0x21 - ldrb r0, [r2] - cmp r0, 0 - beq _08042734 - adds r1, r4, 0 - adds r1, 0x22 - ldrb r0, [r1] - cmp r0, 0 - beq _08042734 - strb r5, [r2] - strb r5, [r1] - movs r0, 0x1 - b _08042818 - .pool -_08042734: - movs r0, 0 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0xD - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _08042760 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0x4D - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - cmp r0, 0 - beq _08042764 -_08042760: - movs r0, 0 - b _08042818 -_08042764: - ldr r1, =gBattleWeather - ldrh r0, [r1] - movs r2, 0xE7 - ands r2, r0 - adds r4, r1, 0 - cmp r2, 0 - bne _08042792 - ldr r1, =gBattleMons - movs r0, 0x58 - muls r0, r6 - adds r1, r0, r1 - adds r3, r1, 0 - adds r3, 0x21 - ldrb r0, [r3] - cmp r0, 0 - beq _08042792 - adds r1, 0x22 - ldrb r0, [r1] - cmp r0, 0 - beq _08042792 - strb r2, [r3] - strb r2, [r1] - movs r5, 0x1 -_08042792: - ldrh r1, [r4] - movs r0, 0x60 - ands r0, r1 - cmp r0, 0 - beq _080427BE - ldr r1, =gBattleMons - movs r0, 0x58 - muls r0, r6 - adds r1, r0, r1 - adds r2, r1, 0 - adds r2, 0x21 - ldrb r0, [r2] - cmp r0, 0xA - beq _080427BE - adds r1, 0x22 - ldrb r0, [r1] - cmp r0, 0xA - beq _080427BE - movs r0, 0xA - strb r0, [r2] - strb r0, [r1] - movs r5, 0x2 -_080427BE: - ldrh r1, [r4] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - beq _080427EA - ldr r1, =gBattleMons - movs r0, 0x58 - muls r0, r6 - adds r1, r0, r1 - adds r2, r1, 0 - adds r2, 0x21 - ldrb r0, [r2] - cmp r0, 0xB - beq _080427EA - adds r1, 0x22 - ldrb r0, [r1] - cmp r0, 0xB - beq _080427EA - movs r0, 0xB - strb r0, [r2] - strb r0, [r1] - movs r5, 0x3 -_080427EA: - ldrh r1, [r4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08042816 - ldr r1, =gBattleMons - movs r0, 0x58 - muls r0, r6 - adds r1, r0, r1 - adds r2, r1, 0 - adds r2, 0x21 - ldrb r0, [r2] - cmp r0, 0xF - beq _08042816 - adds r1, 0x22 - ldrb r0, [r1] - cmp r0, 0xF - beq _08042816 - movs r0, 0xF - strb r0, [r2] - strb r0, [r1] - movs r5, 0x4 -_08042816: - adds r0, r5, 0 -_08042818: - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end castform_switch - - thumb_func_start AbilityBattleEffects -AbilityBattleEffects: @ 8042828 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x28 - ldr r4, [sp, 0x48] - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - lsls r1, 24 - lsrs r1, 24 - mov r10, r1 - lsls r2, 24 - lsrs r6, r2, 24 - lsls r3, 24 - lsrs r3, 24 - mov r8, r3 - lsls r4, 16 - lsrs r4, 16 - movs r0, 0 - mov r9, r0 - ldr r5, =gBankAttacker - ldr r1, =gNoOfAllBanks - ldrb r0, [r5] - ldrb r1, [r1] - cmp r0, r1 - bcc _08042864 - mov r1, r10 - strb r1, [r5] -_08042864: - ldrb r0, [r5] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _08042894 - ldr r1, =gBattlePartyID - ldrb r0, [r5] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - b _080428A4 - .pool -_08042894: - ldr r1, =gBattlePartyID - ldrb r0, [r5] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gEnemyParty -_080428A4: - adds r7, r1, r0 - ldr r5, =gBankTarget - ldr r1, =gNoOfAllBanks - ldrb r0, [r5] - ldrb r1, [r1] - cmp r0, r1 - bcc _080428B6 - mov r2, r10 - strb r2, [r5] -_080428B6: - ldrb r0, [r5] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _080428E8 - ldr r1, =gBattlePartyID - ldrb r0, [r5] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - b _080428F8 - .pool -_080428E8: - ldr r1, =gBattlePartyID - ldrb r0, [r5] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gEnemyParty -_080428F8: - adds r5, r1, r0 - adds r0, r7, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x8] - adds r0, r7, 0 - movs r1, 0 - bl GetMonData - str r0, [sp, 0x10] - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0xC] - adds r0, r5, 0 - movs r1, 0 - bl GetMonData - str r0, [sp, 0x14] - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0804293A - bl _0804443A -_0804293A: - mov r3, r8 - cmp r3, 0 - beq _08042958 - ldr r0, =gLastUsedAbility - strb r3, [r0] - adds r7, r0, 0 - b _0804296E - .pool -_08042958: - ldr r2, =gLastUsedAbility - ldr r1, =gBattleMons - movs r0, 0x58 - mov r5, r10 - muls r5, r0 - adds r0, r5, 0 - adds r0, r1 - adds r0, 0x20 - ldrb r0, [r0] - strb r0, [r2] - adds r7, r2, 0 -_0804296E: - cmp r4, 0 - beq _08042980 - adds r5, r4, 0 - b _08042984 - .pool -_08042980: - ldr r0, =gCurrentMove - ldrh r5, [r0] -_08042984: - ldr r1, =gBattleStruct - ldr r0, [r1] - ldrb r0, [r0, 0x13] - mov r8, r1 - cmp r0, 0 - beq _080429A0 - movs r3, 0x3F - ands r3, r0 - b _080429AC - .pool -_080429A0: - ldr r1, =gBattleMoves - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 2 - adds r0, r1 - ldrb r3, [r0, 0x2] -_080429AC: - ldr r0, [sp, 0x4] - cmp r0, 0x13 - bls _080429B6 - bl _0804441E -_080429B6: - lsls r0, 2 - ldr r1, =_080429C8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080429C8: - .4byte _08042A18 - .4byte _08042CDC - .4byte _08042EF8 - .4byte _08042F8C - .4byte _080431AC - .4byte _08043908 - .4byte _08043C6C - .4byte _08043CBC - .4byte _08043D40 - .4byte _08043DC4 - .4byte _08043FE4 - .4byte _08043E08 - .4byte _08044028 - .4byte _08044084 - .4byte _080440E0 - .4byte _080441DC - .4byte _08044220 - .4byte _0804427C - .4byte _080443EC - .4byte _08044196 -_08042A18: - ldr r2, =gBankAttacker - ldr r0, =gNoOfAllBanks - ldrb r1, [r2] - adds r5, r0, 0 - ldrb r3, [r5] - cmp r1, r3 - bcc _08042A2A - mov r0, r10 - strb r0, [r2] -_08042A2A: - ldrb r0, [r7] - cmp r0, 0x2D - bne _08042A32 - b _08042BA8 -_08042A32: - cmp r0, 0x2D - bgt _08042A64 - cmp r0, 0xD - bne _08042A3C - b _08042CA4 -_08042A3C: - cmp r0, 0xD - bgt _08042A54 - cmp r0, 0x2 - bne _08042A46 - b _08042B78 -_08042A46: - bl _0804441E - .pool -_08042A54: - cmp r0, 0x16 - bne _08042A5A - b _08042C08 -_08042A5A: - cmp r0, 0x24 - bne _08042A60 - b _08042C68 -_08042A60: - bl _0804441E -_08042A64: - cmp r0, 0x46 - bne _08042A6A - b _08042BD8 -_08042A6A: - cmp r0, 0x46 - bgt _08042A78 - cmp r0, 0x3B - bne _08042A74 - b _08042C3C -_08042A74: - bl _0804441E -_08042A78: - cmp r0, 0x4D - bne _08042A7E - b _08042CA4 -_08042A7E: - cmp r0, 0xFF - beq _08042A86 - bl _0804441E -_08042A86: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - cmp r0, 0 - bne _08042B4C - bl weather_get_current - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x3 - cmp r0, 0xA - bhi _08042B4C - lsls r0, 2 - ldr r1, =_08042AB4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08042AB4: - .4byte _08042AE0 - .4byte _08042B4C - .4byte _08042AE0 - .4byte _08042B4C - .4byte _08042B4C - .4byte _08042B04 - .4byte _08042B4C - .4byte _08042B4C - .4byte _08042B4C - .4byte _08042B28 - .4byte _08042AE0 -_08042AE0: - ldr r2, =gBattleWeather - ldrh r1, [r2] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - bne _08042B4C - movs r0, 0x5 - strh r0, [r2] - ldr r1, =gBattleScripting - movs r0, 0xA - strb r0, [r1, 0x10] - mov r2, r10 - strb r2, [r1, 0x17] - b _08042B42 - .pool -_08042B04: - ldr r3, =gBattleWeather - ldrh r1, [r3] - movs r2, 0x18 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _08042B4C - strh r2, [r3] - ldr r1, =gBattleScripting - movs r0, 0xC - strb r0, [r1, 0x10] - mov r3, r10 - strb r3, [r1, 0x17] - b _08042B42 - .pool -_08042B28: - ldr r3, =gBattleWeather - ldrh r1, [r3] - movs r2, 0x60 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _08042B4C - strh r2, [r3] - ldr r1, =gBattleScripting - movs r0, 0xB - strb r0, [r1, 0x10] - mov r5, r10 - strb r5, [r1, 0x17] -_08042B42: - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_08042B4C: - mov r0, r9 - cmp r0, 0 - bne _08042B56 - bl _0804443A -_08042B56: - bl weather_get_current - ldr r1, =gBattleCommunication - strb r0, [r1, 0x5] - ldr r0, =gUnknown_082DACE7 - bl b_push_move_exec - bl _0804441E - .pool -_08042B78: - ldr r2, =gBattleWeather - ldrh r1, [r2] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08042B88 - bl _0804441E -_08042B88: - movs r0, 0x5 - strh r0, [r2] - ldr r0, =gUnknown_082DB430 - bl b_push_move_exec - ldr r0, =gBattleScripting - mov r1, r10 - strb r1, [r0, 0x17] - bl _080443D0 - .pool -_08042BA8: - ldr r2, =gBattleWeather - ldrh r1, [r2] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08042BB8 - bl _0804441E -_08042BB8: - movs r0, 0x18 - strh r0, [r2] - ldr r0, =gUnknown_082DB470 - bl b_push_move_exec - ldr r0, =gBattleScripting - mov r2, r10 - strb r2, [r0, 0x17] - bl _080443D0 - .pool -_08042BD8: - ldr r2, =gBattleWeather - ldrh r1, [r2] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08042BE8 - bl _0804441E -_08042BE8: - movs r0, 0x60 - strh r0, [r2] - ldr r0, =gUnknown_082DB52A - bl b_push_move_exec - ldr r0, =gBattleScripting - mov r3, r10 - strb r3, [r0, 0x17] - bl _080443D0 - .pool -_08042C08: - ldr r0, =gSpecialStatuses - mov r5, r10 - lsls r2, r5, 2 - adds r1, r2, r5 - lsls r1, 2 - adds r3, r1, r0 - ldrb r0, [r3] - lsls r0, 28 - cmp r0, 0 - bge _08042C20 - bl _0804441E -_08042C20: - ldr r1, =gStatuses3 - adds r1, r2, r1 - ldr r0, [r1] - movs r2, 0x80 - lsls r2, 12 - orrs r0, r2 - str r0, [r1] - ldrb r0, [r3] - movs r1, 0x8 - b _08042C92 - .pool -_08042C3C: - mov r0, r10 - bl castform_switch - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - cmp r0, 0 - bne _08042C50 - bl _0804443A -_08042C50: - ldr r0, =gUnknown_082DB4A9 - bl b_push_move_exec - ldr r0, =gBattleScripting - mov r1, r10 - strb r1, [r0, 0x17] - bl _080442E2 - .pool -_08042C68: - ldr r0, =gSpecialStatuses - mov r3, r10 - lsls r2, r3, 2 - adds r1, r2, r3 - lsls r1, 2 - adds r3, r1, r0 - ldrb r0, [r3] - lsls r0, 27 - cmp r0, 0 - bge _08042C80 - bl _0804441E -_08042C80: - ldr r1, =gStatuses3 - adds r1, r2, r1 - ldr r0, [r1] - movs r2, 0x80 - lsls r2, 13 - orrs r0, r2 - str r0, [r1] - ldrb r0, [r3] - movs r1, 0x10 -_08042C92: - orrs r0, r1 - strb r0, [r3] - bl _0804441E - .pool -_08042CA4: - movs r6, 0 - ldrb r5, [r5] - cmp r6, r5 - bcc _08042CB0 - bl _0804441E -_08042CB0: - adds r0, r6, 0 - bl castform_switch - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - cmp r0, 0 - beq _08042CC4 - bl _080442D8 -_08042CC4: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r6, r0 - bcc _08042CB0 - bl _0804441E - .pool -_08042CDC: - ldr r5, =gBattleMons - mov r8, r5 - movs r0, 0x58 - mov r6, r10 - muls r6, r0 - adds r4, r6, r5 - ldrh r0, [r4, 0x28] - cmp r0, 0 - bne _08042CF2 - bl _0804441E -_08042CF2: - ldr r0, =gBankAttacker - mov r1, r10 - strb r1, [r0] - ldrb r5, [r7] - cmp r5, 0x2C - beq _08042D22 - cmp r5, 0x2C - bgt _08042D14 - cmp r5, 0x3 - bne _08042D08 - b _08042E84 -_08042D08: - bl _0804441E - .pool -_08042D14: - cmp r5, 0x36 - bne _08042D1A - b _08042ED0 -_08042D1A: - cmp r5, 0x3D - beq _08042DA0 - bl _0804441E -_08042D22: - movs r0, 0 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0xD - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _08042D3E - bl _0804441E -_08042D3E: - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0x4D - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - cmp r0, 0 - beq _08042D56 - bl _0804441E -_08042D56: - ldr r0, =gBattleWeather - ldrh r1, [r0] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - bne _08042D66 - bl _0804441E -_08042D66: - ldrh r0, [r4, 0x2C] - ldrh r2, [r4, 0x28] - cmp r0, r2 - bhi _08042D72 - bl _0804441E -_08042D72: - strb r5, [r7] - ldr r0, =gUnknown_082DB45C - bl b_push_move_exec - ldr r1, =gBattleMoveDamage - ldrh r0, [r4, 0x2C] - lsrs r0, 4 - str r0, [r1] - cmp r0, 0 - bne _08042D8A - movs r0, 0x1 - str r0, [r1] -_08042D8A: - ldr r0, [r1] - negs r0, r0 - str r0, [r1] - bl _080443D0 - .pool -_08042DA0: - mov r0, r8 - adds r0, 0x4C - adds r5, r6, r0 - ldrb r0, [r5] - cmp r0, 0 - bne _08042DB0 - bl _0804441E -_08042DB0: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - beq _08042DCA - bl _0804441E -_08042DCA: - ldr r0, [r5] - movs r1, 0x88 - ands r0, r1 - cmp r0, 0 - beq _08042DDC - ldr r0, =gBattleTextBuff1 - ldr r1, =gUnknown_0831BC70 - bl StringCopy -_08042DDC: - ldr r0, [r5] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - beq _08042DEE - ldr r0, =gBattleTextBuff1 - ldr r1, =gUnknown_0831BC78 - bl StringCopy -_08042DEE: - ldr r0, [r5] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08042E00 - ldr r0, =gBattleTextBuff1 - ldr r1, =gUnknown_0831BC80 - bl StringCopy -_08042E00: - ldr r0, [r5] - movs r1, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08042E12 - ldr r0, =gBattleTextBuff1 - ldr r1, =gUnknown_0831BC88 - bl StringCopy -_08042E12: - ldr r0, [r5] - movs r1, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08042E24 - ldr r0, =gBattleTextBuff1 - ldr r1, =gUnknown_0831BC90 - bl StringCopy -_08042E24: - str r4, [r5] - mov r1, r8 - adds r1, 0x50 - adds r1, r6, r1 - ldr r0, [r1] - ldr r2, =0xf7ffffff - ands r0, r2 - str r0, [r1] - ldr r0, =gBattleScripting - ldr r4, =gActiveBank - mov r3, r10 - strb r3, [r4] - strb r3, [r0, 0x17] - ldr r0, =gUnknown_082DB484 - bl b_push_move_exec - str r5, [sp] - movs r0, 0 - movs r1, 0x28 - movs r2, 0 - movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - bl _080443D0 - .pool -_08042E84: - ldrb r2, [r4, 0x1B] - movs r0, 0x1B - ldrsb r0, [r4, r0] - cmp r0, 0xB - ble _08042E92 - bl _0804441E -_08042E92: - ldr r0, =gDisableStructs - mov r5, r10 - lsls r1, r5, 3 - subs r1, r5 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x16] - cmp r0, 0x2 - bne _08042EA8 - bl _0804441E -_08042EA8: - adds r0, r2, 0x1 - movs r1, 0 - strb r0, [r4, 0x1B] - ldr r4, =gBattleScripting - movs r0, 0x11 - strb r0, [r4, 0x10] - strb r1, [r4, 0x11] - ldr r0, =gUnknown_082DB444 - bl b_push_move_exec - strb r5, [r4, 0x17] - bl _080443D0 - .pool -_08042ED0: - ldr r2, =gDisableStructs - ldrb r0, [r0] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r3, [r1, 0x18] - lsls r0, r3, 31 - lsrs r0, 31 - movs r2, 0x1 - eors r2, r0 - movs r0, 0x2 - negs r0, r0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0x18] - bl _0804441E - .pool -_08042EF8: - ldrb r0, [r7] - cmp r0, 0x2B - beq _08042F02 - bl _0804441E -_08042F02: - movs r4, 0 - ldr r0, =gUnknown_0831BCF8 - ldrh r2, [r0] - ldr r3, =0x0000ffff - adds r1, r0, 0 - cmp r2, r3 - bne _08042F14 - bl _0804441E -_08042F14: - cmp r2, r5 - beq _08042F2C - adds r2, r1, 0 -_08042F1A: - adds r2, 0x2 - adds r4, 0x1 - ldrh r0, [r2] - cmp r0, r3 - bne _08042F28 - bl _0804441E -_08042F28: - cmp r0, r5 - bne _08042F1A -_08042F2C: - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - ldr r0, =0x0000ffff - cmp r1, r0 - bne _08042F3C - bl _0804441E -_08042F3C: - ldr r1, =gBattleMons - ldr r0, =gBankAttacker - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 5 - ands r0, r1 - cmp r0, 0 - beq _08042F62 - ldr r0, =gHitMarker - ldr r1, [r0] - movs r2, 0x80 - lsls r2, 4 - orrs r1, r2 - str r1, [r0] -_08042F62: - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB61F - str r0, [r1] - movs r0, 0x1 - mov r9, r0 - bl _08044424 - .pool -_08042F8C: - cmp r5, 0 - bne _08042F94 - bl _0804441E -_08042F94: - ldrb r0, [r7] - cmp r0, 0xB - beq _08043004 - cmp r0, 0xB - bgt _08042FA4 - cmp r0, 0xA - beq _08042FAA - b _08043126 -_08042FA4: - cmp r0, 0x12 - beq _0804305C - b _08043126 -_08042FAA: - cmp r3, 0xD - beq _08042FB0 - b _08043126 -_08042FB0: - ldr r0, =gBattleMoves - lsls r1, r5, 1 - adds r1, r5 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - cmp r0, 0 - bne _08042FC2 - b _08043126 -_08042FC2: - ldr r1, =gProtectStructs - ldr r0, =gBankAttacker - ldrb r0, [r0] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0, 0x2] - lsls r0, 28 - cmp r0, 0 - bge _08042FF0 - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB56F - b _08042FF4 - .pool -_08042FF0: - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB56E -_08042FF4: - str r0, [r1] - movs r1, 0x1 - b _08043124 - .pool -_08043004: - cmp r3, 0xB - beq _0804300A - b _08043126 -_0804300A: - ldr r0, =gBattleMoves - lsls r1, r5, 1 - adds r1, r5 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - cmp r0, 0 - bne _0804301C - b _08043126 -_0804301C: - ldr r1, =gProtectStructs - ldr r0, =gBankAttacker - ldrb r0, [r0] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0, 0x2] - lsls r0, 28 - cmp r0, 0 - bge _08043048 - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB56F - b _0804304C - .pool -_08043048: - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB56E -_0804304C: - str r0, [r1] - movs r2, 0x1 - mov r9, r2 - b _08043126 - .pool -_0804305C: - cmp r3, 0xA - bne _08043126 - ldr r1, =gBattleMons - movs r0, 0x58 - mov r3, r10 - muls r3, r0 - adds r0, r3, 0 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x20 - ands r0, r1 - cmp r0, 0 - bne _08043126 - ldr r2, =gBattleResources - ldr r0, [r2] - ldr r0, [r0, 0x4] - mov r5, r10 - lsls r1, r5, 2 - adds r0, r1 - ldr r3, [r0] - movs r4, 0x1 - ands r3, r4 - adds r5, r1, 0 - cmp r3, 0 - bne _080430EC - ldr r0, =gBattleCommunication - strb r3, [r0, 0x5] - ldr r1, =gProtectStructs - ldr r0, =gBankAttacker - ldrb r0, [r0] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0, 0x2] - lsls r0, 28 - cmp r0, 0 - bge _080430C8 - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB5A8 - b _080430CC - .pool -_080430C8: - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB5A7 -_080430CC: - str r0, [r1] - ldr r0, [r2] - ldr r1, [r0, 0x4] - adds r1, r5 - ldr r0, [r1] - movs r2, 0x1 - orrs r0, r2 - str r0, [r1] - movs r0, 0x2 - mov r9, r0 - b _08043126 - .pool -_080430EC: - ldr r0, =gBattleCommunication - strb r4, [r0, 0x5] - ldr r1, =gProtectStructs - ldr r0, =gBankAttacker - ldrb r0, [r0] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0, 0x2] - lsls r0, 28 - cmp r0, 0 - bge _0804311C - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB5A8 - b _08043120 - .pool -_0804311C: - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB5A7 -_08043120: - str r0, [r1] - movs r1, 0x2 -_08043124: - mov r9, r1 -_08043126: - mov r2, r9 - cmp r2, 0x1 - beq _08043130 - bl _0804441E -_08043130: - ldr r1, =gBattleMons - movs r0, 0x58 - mov r3, r10 - muls r3, r0 - adds r0, r3, 0 - adds r1, r0, r1 - ldrh r0, [r1, 0x2C] - ldrh r5, [r1, 0x28] - cmp r0, r5 - bne _0804318C - ldr r1, =gProtectStructs - ldr r0, =gBankAttacker - ldrb r0, [r0] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0, 0x2] - lsls r0, 28 - cmp r0, 0 - bge _08043178 - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB592 - str r0, [r1] - bl _0804441E - .pool -_08043178: - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB591 - str r0, [r1] - bl _0804441E - .pool -_0804318C: - ldr r2, =gBattleMoveDamage - ldrh r0, [r1, 0x2C] - lsrs r0, 2 - str r0, [r2] - cmp r0, 0 - bne _0804319C - mov r0, r9 - str r0, [r2] -_0804319C: - ldr r0, [r2] - negs r0, r0 - str r0, [r2] - bl _0804441E - .pool -_080431AC: - ldrb r0, [r7] - subs r0, 0x9 - cmp r0, 0x2F - bls _080431B8 - bl _0804441E -_080431B8: - lsls r0, 2 - ldr r1, =_080431C8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080431C8: - .4byte _080435E4 - .4byte _0804441E - .4byte _0804441E - .4byte _0804441E - .4byte _0804441E - .4byte _0804441E - .4byte _0804441E - .4byte _08043288 - .4byte _0804441E - .4byte _0804441E - .4byte _0804441E - .4byte _0804441E - .4byte _0804441E - .4byte _0804441E - .4byte _0804441E - .4byte _08043350 - .4byte _0804441E - .4byte _0804441E - .4byte _08043410 - .4byte _0804441E - .4byte _0804441E - .4byte _0804441E - .4byte _0804441E - .4byte _0804441E - .4byte _0804441E - .4byte _0804441E - .4byte _0804441E - .4byte _0804441E - .4byte _0804441E - .4byte _08043508 - .4byte _0804441E - .4byte _0804441E - .4byte _0804441E - .4byte _0804441E - .4byte _0804441E - .4byte _0804441E - .4byte _0804441E - .4byte _0804441E - .4byte _0804441E - .4byte _0804441E - .4byte _080436C0 - .4byte _0804441E - .4byte _0804441E - .4byte _0804441E - .4byte _0804441E - .4byte _0804441E - .4byte _0804441E - .4byte _0804379C -_08043288: - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _08043298 - bl _0804441E -_08043298: - cmp r5, 0xA5 - bne _080432A0 - bl _0804441E -_080432A0: - ldr r0, =gBattleMoves - lsls r1, r5, 1 - adds r1, r5 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - cmp r0, 0 - bne _080432B4 - bl _0804441E -_080432B4: - ldr r2, =gSpecialStatuses - ldr r0, =gBankTarget - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r1, r0, 2 - adds r0, r2, 0 - adds r0, 0x8 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _080432DC - adds r0, r2, 0 - adds r0, 0xC - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _080432DC - bl _0804441E -_080432DC: - ldr r1, =gBattleMons - movs r0, 0x58 - mov r2, r10 - muls r2, r0 - adds r0, r2, 0 - adds r1, r0, r1 - adds r4, r1, 0 - adds r4, 0x21 - ldrb r0, [r4] - cmp r0, r3 - bne _080432F6 - bl _0804441E -_080432F6: - adds r2, r1, 0 - adds r2, 0x22 - ldrb r0, [r2] - cmp r0, r3 - bne _08043304 - bl _0804441E -_08043304: - ldrh r0, [r1, 0x28] - cmp r0, 0 - bne _0804330E - bl _0804441E -_0804330E: - strb r3, [r4] - strb r3, [r2] - ldr r1, =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x3 - strb r0, [r1, 0x1] - strb r3, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - bl b_movescr_stack_push_cursor - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB64D - str r0, [r1] - bl _080443D0 - .pool -_08043350: - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _08043360 - bl _0804441E -_08043360: - ldr r1, =gBattleMons - ldr r0, =gBankAttacker - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r3, r0, r1 - ldrh r0, [r3, 0x28] - cmp r0, 0 - bne _08043376 - bl _0804441E -_08043376: - ldr r0, =gProtectStructs - lsls r1, r2, 4 - adds r1, r0 - ldrb r0, [r1, 0x1] - lsls r0, 31 - cmp r0, 0 - beq _08043388 - bl _0804441E -_08043388: - ldr r2, =gSpecialStatuses - ldr r0, =gBankTarget - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r1, r0, 2 - adds r0, r2, 0 - adds r0, 0x8 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _080433B0 - adds r0, r2, 0 - adds r0, 0xC - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _080433B0 - bl _0804441E -_080433B0: - ldr r1, =gBattleMoves - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x8] - movs r2, 0x1 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _080433CA - bl _0804441E -_080433CA: - ldr r1, =gBattleMoveDamage - ldrh r0, [r3, 0x2C] - lsrs r0, 4 - str r0, [r1] - cmp r0, 0 - bne _080433D8 - str r2, [r1] -_080433D8: - bl b_movescr_stack_push_cursor - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB654 - str r0, [r1] - bl _080443D0 - .pool -_08043410: - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _08043420 - bl _0804441E -_08043420: - ldr r1, =gBattleMons - ldr r0, =gBankAttacker - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _08043436 - bl _0804441E -_08043436: - ldr r0, =gProtectStructs - lsls r1, r2, 4 - adds r1, r0 - ldrb r0, [r1, 0x1] - lsls r0, 31 - cmp r0, 0 - beq _08043448 - bl _0804441E -_08043448: - ldr r2, =gSpecialStatuses - ldr r0, =gBankTarget - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r1, r0, 2 - adds r0, r2, 0 - adds r0, 0x8 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _08043470 - adds r0, r2, 0 - adds r0, 0xC - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _08043470 - bl _0804441E -_08043470: - ldr r1, =gBattleMoves - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x8] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08043488 - bl _0804441E -_08043488: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - beq _080434A0 - bl _0804441E -_080434A0: - ldr r5, =gBattleCommunication - movs r4, 0x3 -_080434A4: - bl Random - ands r0, r4 - strb r0, [r5, 0x3] - cmp r0, 0 - beq _080434A4 - ldr r1, =gBattleCommunication - ldrb r0, [r1, 0x3] - cmp r0, 0x3 - bne _080434BC - adds r0, 0x2 - strb r0, [r1, 0x3] -_080434BC: - ldrb r0, [r1, 0x3] - adds r0, 0x40 - strb r0, [r1, 0x3] - bl b_movescr_stack_push_cursor - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB67C - str r0, [r1] - ldr r2, =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 6 - orrs r0, r1 - str r0, [r2] - bl _080443D0 - .pool -_08043508: - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _08043518 - bl _0804441E -_08043518: - ldr r1, =gBattleMons - ldr r0, =gBankAttacker - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _0804352E - bl _0804441E -_0804352E: - ldr r0, =gProtectStructs - lsls r1, r2, 4 - adds r1, r0 - ldrb r0, [r1, 0x1] - lsls r0, 31 - cmp r0, 0 - beq _08043540 - bl _0804441E -_08043540: - ldr r2, =gSpecialStatuses - ldr r0, =gBankTarget - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r1, r0, 2 - adds r0, r2, 0 - adds r0, 0x8 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _08043568 - adds r0, r2, 0 - adds r0, 0xC - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _08043568 - bl _0804441E -_08043568: - ldr r1, =gBattleMoves - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x8] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08043580 - bl _0804441E -_08043580: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - beq _08043598 - bl _0804441E -_08043598: - ldr r1, =gBattleCommunication - movs r0, 0x42 - strb r0, [r1, 0x3] - bl b_movescr_stack_push_cursor - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB67C - str r0, [r1] - ldr r2, =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 6 - orrs r0, r1 - str r0, [r2] - bl _080443D0 - .pool -_080435E4: - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _080435F4 - bl _0804441E -_080435F4: - ldr r1, =gBattleMons - ldr r0, =gBankAttacker - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _0804360A - bl _0804441E -_0804360A: - ldr r0, =gProtectStructs - lsls r1, r2, 4 - adds r1, r0 - ldrb r0, [r1, 0x1] - lsls r0, 31 - cmp r0, 0 - beq _0804361C - bl _0804441E -_0804361C: - ldr r2, =gSpecialStatuses - ldr r0, =gBankTarget - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r1, r0, 2 - adds r0, r2, 0 - adds r0, 0x8 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _08043644 - adds r0, r2, 0 - adds r0, 0xC - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _08043644 - bl _0804441E -_08043644: - ldr r1, =gBattleMoves - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x8] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0804365C - bl _0804441E -_0804365C: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - beq _08043674 - bl _0804441E -_08043674: - ldr r1, =gBattleCommunication - movs r0, 0x45 - strb r0, [r1, 0x3] - bl b_movescr_stack_push_cursor - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB67C - str r0, [r1] - ldr r2, =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 6 - orrs r0, r1 - str r0, [r2] - bl _080443D0 - .pool -_080436C0: - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _080436D0 - bl _0804441E -_080436D0: - ldr r1, =gBattleMons - ldr r0, =gBankAttacker - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _080436E6 - bl _0804441E -_080436E6: - ldr r0, =gProtectStructs - lsls r1, r2, 4 - adds r1, r0 - ldrb r0, [r1, 0x1] - lsls r0, 31 - cmp r0, 0 - beq _080436F8 - bl _0804441E -_080436F8: - ldr r1, =gBattleMoves - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x8] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08043710 - bl _0804441E -_08043710: - ldr r2, =gSpecialStatuses - ldr r0, =gBankTarget - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r1, r0, 2 - adds r0, r2, 0 - adds r0, 0x8 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _08043738 - adds r0, r2, 0 - adds r0, 0xC - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _08043738 - bl _0804441E -_08043738: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - beq _08043750 - bl _0804441E -_08043750: - ldr r1, =gBattleCommunication - movs r0, 0x43 - strb r0, [r1, 0x3] - bl b_movescr_stack_push_cursor - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB67C - str r0, [r1] - ldr r2, =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 6 - orrs r0, r1 - str r0, [r2] - bl _080443D0 - .pool -_0804379C: - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _080437AC - bl _0804441E -_080437AC: - ldr r6, =gBattleMons - ldr r3, =gBankAttacker - mov r8, r3 - ldrb r1, [r3] - movs r7, 0x58 - adds r0, r1, 0 - muls r0, r7 - adds r0, r6 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _080437C6 - bl _0804441E -_080437C6: - ldr r0, =gProtectStructs - lsls r1, 4 - adds r1, r0 - ldrb r0, [r1, 0x1] - lsls r0, 31 - cmp r0, 0 - beq _080437D8 - bl _0804441E -_080437D8: - ldr r1, =gBattleMoves - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x8] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080437F0 - bl _0804441E -_080437F0: - ldr r3, =gSpecialStatuses - ldr r5, =gBankTarget - ldrb r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r2, r0, 2 - adds r0, r3, 0 - adds r0, 0x8 - adds r0, r2, r0 - ldr r0, [r0] - cmp r0, 0 - bne _08043818 - adds r0, r3, 0 - adds r0, 0xC - adds r0, r2, r0 - ldr r0, [r0] - cmp r0, 0 - bne _08043818 - bl _0804441E -_08043818: - adds r0, r1, 0 - muls r0, r7 - adds r0, r6 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _08043828 - bl _0804441E -_08043828: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - beq _08043840 - bl _0804441E -_08043840: - mov r1, r8 - ldrb r0, [r1] - muls r0, r7 - adds r0, r6 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0xC - bne _08043854 - bl _0804441E -_08043854: - ldr r0, [sp, 0x8] - ldr r1, [sp, 0x10] - bl GetGenderFromSpeciesAndPersonality - adds r4, r0, 0 - ldr r0, [sp, 0xC] - ldr r1, [sp, 0x14] - bl GetGenderFromSpeciesAndPersonality - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _08043872 - bl _0804441E -_08043872: - mov r2, r8 - ldrb r0, [r2] - muls r0, r7 - adds r4, r6, 0 - adds r4, 0x50 - adds r0, r4 - ldr r0, [r0] - movs r1, 0xF0 - lsls r1, 12 - ands r0, r1 - cmp r0, 0 - beq _0804388E - bl _0804441E -_0804388E: - ldr r0, [sp, 0x8] - ldr r1, [sp, 0x10] - bl GetGenderFromSpeciesAndPersonality - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _080438A2 - bl _0804441E -_080438A2: - ldr r0, [sp, 0xC] - ldr r1, [sp, 0x14] - bl GetGenderFromSpeciesAndPersonality - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _080438B6 - bl _0804441E -_080438B6: - mov r3, r8 - ldrb r0, [r3] - adds r2, r0, 0 - muls r2, r7 - adds r2, r4 - ldr r1, =gBitTable - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - lsls r1, 16 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - bl b_movescr_stack_push_cursor - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB66F - str r0, [r1] - bl _080443D0 - .pool -_08043908: - movs r5, 0 - mov r10, r5 - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r10, r0 - bcc _08043918 - bl _0804441E -_08043918: - ldr r1, =gBattleMons - movs r0, 0x58 - mov r2, r10 - muls r2, r0 - adds r0, r2, 0 - adds r0, r1 - adds r0, 0x20 - ldrb r0, [r0] - subs r0, 0x7 - adds r2, r1, 0 - cmp r0, 0x41 - bls _08043932 - b _08043B96 -_08043932: - lsls r0, 2 - ldr r1, =_08043948 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08043948: - .4byte _08043AAC - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B70 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043AD4 - .4byte _08043B96 - .4byte _08043A50 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043A7C - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B40 - .4byte _08043B10 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043B96 - .4byte _08043AD4 -_08043A50: - movs r0, 0x58 - mov r3, r10 - muls r3, r0 - adds r0, r3, 0 - adds r1, r2, 0 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - ldr r1, =0x00000f88 - ands r0, r1 - cmp r0, 0 - bne _08043A6A - b _08043B96 -_08043A6A: - ldr r0, =gBattleTextBuff1 - ldr r1, =gUnknown_0831BC70 - b _08043B5C - .pool -_08043A7C: - movs r0, 0x58 - mov r1, r10 - muls r1, r0 - adds r0, r1, 0 - adds r1, r2, 0 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - bne _08043A96 - b _08043B96 -_08043A96: - ldr r0, =gBattleTextBuff1 - ldr r1, =gUnknown_0831BC98 - bl StringCopy - movs r2, 0x2 - mov r9, r2 - b _08043B9C - .pool -_08043AAC: - movs r0, 0x58 - mov r3, r10 - muls r3, r0 - adds r0, r3, 0 - adds r1, r2, 0 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08043B96 - ldr r0, =gBattleTextBuff1 - ldr r1, =gUnknown_0831BC80 - b _08043B5C - .pool -_08043AD4: - movs r0, 0x58 - mov r3, r10 - muls r3, r0 - adds r0, r2, 0 - adds r0, 0x4C - adds r0, r3, r0 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - beq _08043B96 - adds r2, 0x50 - adds r2, r3, r2 - ldr r0, [r2] - ldr r1, =0xf7ffffff - ands r0, r1 - str r0, [r2] - ldr r0, =gBattleTextBuff1 - ldr r1, =gUnknown_0831BC78 - bl StringCopy - movs r0, 0x1 - mov r9, r0 - b _08043B9C - .pool -_08043B10: - movs r0, 0x58 - mov r1, r10 - muls r1, r0 - adds r0, r1, 0 - adds r1, r2, 0 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08043B96 - ldr r0, =gBattleTextBuff1 - ldr r1, =gUnknown_0831BC88 - bl StringCopy - movs r2, 0x1 - mov r9, r2 - b _08043B9C - .pool -_08043B40: - movs r0, 0x58 - mov r3, r10 - muls r3, r0 - adds r0, r3, 0 - adds r1, r2, 0 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08043B96 - ldr r0, =gBattleTextBuff1 - ldr r1, =gUnknown_0831BC90 -_08043B5C: - bl StringCopy - movs r5, 0x1 - mov r9, r5 - b _08043B9C - .pool -_08043B70: - movs r0, 0x58 - mov r1, r10 - muls r1, r0 - adds r0, r1, 0 - adds r1, r2, 0 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0xF0 - lsls r1, 12 - ands r0, r1 - cmp r0, 0 - beq _08043B96 - ldr r0, =gBattleTextBuff1 - ldr r1, =gUnknown_0831BCA0 - bl StringCopy - movs r2, 0x3 - mov r9, r2 -_08043B96: - mov r3, r9 - cmp r3, 0 - beq _08043C50 -_08043B9C: - mov r5, r9 - cmp r5, 0x2 - beq _08043BD0 - cmp r5, 0x2 - bgt _08043BB4 - cmp r5, 0x1 - beq _08043BBC - b _08043BFC - .pool -_08043BB4: - mov r0, r9 - cmp r0, 0x3 - beq _08043BE8 - b _08043BFC -_08043BBC: - ldr r1, =gBattleMons - movs r0, 0x58 - mov r2, r10 - muls r2, r0 - adds r1, 0x4C - adds r2, r1 - movs r0, 0 - b _08043BFA - .pool -_08043BD0: - ldr r1, =gBattleMons - movs r0, 0x58 - mov r2, r10 - muls r2, r0 - adds r1, 0x50 - adds r2, r1 - ldr r0, [r2] - movs r1, 0x8 - negs r1, r1 - b _08043BF8 - .pool -_08043BE8: - ldr r1, =gBattleMons - movs r0, 0x58 - mov r2, r10 - muls r2, r0 - adds r1, 0x50 - adds r2, r1 - ldr r0, [r2] - ldr r1, =0xfff0ffff -_08043BF8: - ands r0, r1 -_08043BFA: - str r0, [r2] -_08043BFC: - bl b_movescr_stack_push_cursor - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB68C - str r0, [r1] - ldr r0, =gBattleScripting - mov r1, r10 - strb r1, [r0, 0x17] - ldr r4, =gActiveBank - strb r1, [r4] - ldrb r1, [r4] - movs r0, 0x58 - muls r0, r1 - ldr r1, =gBattleMons + 0x4C - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0x28 - movs r2, 0 - movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - bl _0804443A - .pool -_08043C50: - mov r0, r10 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r10, r0 - bcs _08043C64 - b _08043918 -_08043C64: - bl _0804441E - .pool -_08043C6C: - movs r2, 0 - mov r10, r2 - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r10, r0 - bcc _08043C7A - b _0804441E -_08043C7A: - ldr r4, =gBattleMons -_08043C7C: - movs r0, 0x58 - mov r3, r10 - muls r3, r0 - adds r0, r3, 0 - adds r0, r4 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x3B - bne _08043CA0 - mov r0, r10 - bl castform_switch - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - cmp r0, 0 - beq _08043CA0 - b _080442FC -_08043CA0: - mov r0, r10 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r10, r0 - bcc _08043C7C - b _0804441E - .pool -_08043CBC: - ldrb r0, [r7] - cmp r0, 0x1C - beq _08043CC4 - b _0804441E -_08043CC4: - ldr r4, =gHitMarker - ldr r1, [r4] - movs r0, 0x80 - lsls r0, 7 - ands r0, r1 - cmp r0, 0 - bne _08043CD4 - b _0804441E -_08043CD4: - ldr r0, =0xffffbfff - ands r1, r0 - str r1, [r4] - mov r5, r8 - ldr r1, [r5] - adds r1, 0xB2 - ldrb r2, [r1] - movs r0, 0x3F - ands r0, r2 - strb r0, [r1] - ldr r0, [r5] - adds r1, r0, 0 - adds r1, 0xB2 - ldrb r0, [r1] - cmp r0, 0x6 - bne _08043CF8 - movs r0, 0x2 - strb r0, [r1] -_08043CF8: - ldr r1, =gBattleCommunication - mov r2, r8 - ldr r0, [r2] - adds r0, 0xB2 - ldrb r0, [r0] - adds r0, 0x40 - strb r0, [r1, 0x3] - ldr r1, =gBattleScripting - ldr r0, =gBankTarget - ldrb r0, [r0] - strb r0, [r1, 0x17] - bl b_movescr_stack_push_cursor - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB67F - str r0, [r1] - ldr r0, [r4] - movs r1, 0x80 - lsls r1, 6 - orrs r0, r1 - str r0, [r4] - b _080443D0 - .pool -_08043D40: - ldrb r0, [r7] - cmp r0, 0x1C - beq _08043D48 - b _0804441E -_08043D48: - ldr r4, =gHitMarker - ldr r1, [r4] - movs r0, 0x80 - lsls r0, 7 - ands r0, r1 - cmp r0, 0 - bne _08043D58 - b _0804441E -_08043D58: - ldr r0, =0xffffbfff - ands r1, r0 - str r1, [r4] - mov r3, r8 - ldr r1, [r3] - adds r1, 0xB2 - ldrb r2, [r1] - movs r0, 0x3F - ands r0, r2 - strb r0, [r1] - ldr r0, [r3] - adds r1, r0, 0 - adds r1, 0xB2 - ldrb r0, [r1] - cmp r0, 0x6 - bne _08043D7C - movs r0, 0x2 - strb r0, [r1] -_08043D7C: - ldr r1, =gBattleCommunication - mov r3, r8 - ldr r0, [r3] - adds r0, 0xB2 - ldrb r0, [r0] - strb r0, [r1, 0x3] - ldr r1, =gBattleScripting - ldr r0, =gBankAttacker - ldrb r0, [r0] - strb r0, [r1, 0x17] - bl b_movescr_stack_push_cursor - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB67F - str r0, [r1] - ldr r0, [r4] - movs r1, 0x80 - lsls r1, 6 - orrs r0, r1 - str r0, [r4] - b _080443D0 - .pool -_08043DC4: - movs r4, 0 - ldr r0, =gNoOfAllBanks - ldrb r1, [r0] - cmp r4, r1 - blt _08043DD0 - b _0804441E -_08043DD0: - ldr r0, =gBattleMons - adds r5, r1, 0 - ldr r2, =gStatuses3 - adds r3, r0, 0 - adds r3, 0x20 - movs r6, 0x80 - lsls r6, 12 -_08043DDE: - ldrb r1, [r3] - cmp r1, 0x16 - bne _08043DEE - ldr r0, [r2] - ands r0, r6 - cmp r0, 0 - beq _08043DEE - b _08044324 -_08043DEE: - adds r2, 0x4 - adds r3, 0x58 - adds r4, 0x1 - cmp r4, r5 - blt _08043DDE - b _0804441E - .pool -_08043E08: - movs r4, 0 - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r4, r0 - blt _08043E14 - b _0804441E -_08043E14: - ldr r5, =gActiveBank - mov r8, r5 - ldr r0, =gBattleMons - adds r0, 0x20 - str r0, [sp, 0x1C] - movs r1, 0 - str r1, [sp, 0x20] -_08043E22: - ldr r2, [sp, 0x1C] - ldrb r0, [r2] - cmp r0, 0x24 - beq _08043E2C - b _08043FBE -_08043E2C: - ldr r0, =gStatuses3 - ldr r3, [sp, 0x20] - adds r0, r3, r0 - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 13 - ands r1, r0 - str r3, [sp, 0x18] - cmp r1, 0 - bne _08043E42 - b _08043FBE -_08043E42: - lsls r0, r4, 24 - lsrs r0, 24 - bl GetBankIdentity - movs r1, 0x1 - adds r5, r0, 0 - eors r5, r1 - ands r5, r1 - adds r0, r5, 0 - bl GetBankByPlayerAI - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r5, 0x2 - bl GetBankByPlayerAI - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r2, 0x1 - ands r0, r2 - cmp r0, 0 - bne _08043E74 - b _08043F84 -_08043E74: - movs r1, 0x58 - adds r0, r6, 0 - muls r0, r1 - ldr r3, =gBattleMons - adds r1, r0, r3 - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0 - beq _08043F40 - ldrh r0, [r1, 0x28] - cmp r0, 0 - beq _08043EFC - movs r1, 0x58 - adds r0, r7, 0 - muls r0, r1 - adds r1, r0, r3 - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0 - beq _08043EFC - ldrh r0, [r1, 0x28] - cmp r0, 0 - beq _08043EFC - str r2, [sp, 0x24] - bl Random - ldr r2, [sp, 0x24] - adds r1, r2, 0 - ands r1, r0 - lsls r1, 1 - orrs r5, r1 - adds r0, r5, 0 - bl GetBankByPlayerAI - mov r2, r8 - strb r0, [r2] - ldrb r0, [r2] - movs r3, 0x58 - muls r0, r3 - ldr r5, =gBattleMons - adds r0, r5 - adds r0, 0x20 - ldrb r0, [r0] - ldr r1, [sp, 0x1C] - strb r0, [r1] - ldrb r0, [r2] - muls r0, r3 - adds r0, r5 - adds r0, 0x20 - ldrb r0, [r0] - ldr r2, =gLastUsedAbility - strb r0, [r2] - b _08043FAC - .pool -_08043EFC: - ldr r3, =gBattleMons - movs r2, 0x58 - adds r0, r6, 0 - muls r0, r2 - adds r1, r0, r3 - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0 - beq _08043F40 - ldrh r0, [r1, 0x28] - cmp r0, 0 - beq _08043F40 - mov r5, r8 - strb r6, [r5] - adds r1, r4, 0 - muls r1, r2 - adds r1, r3 - ldrb r0, [r5] - muls r0, r2 - adds r0, r3 - adds r0, 0x20 - ldrb r0, [r0] - adds r1, 0x20 - strb r0, [r1] - ldrb r0, [r5] - muls r0, r2 - adds r0, r3 - adds r0, 0x20 - ldrb r0, [r0] - b _08043FA8 - .pool -_08043F40: - ldr r3, =gBattleMons - movs r2, 0x58 - adds r0, r7, 0 - muls r0, r2 - adds r1, r0, r3 - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0 - beq _08043FB6 - ldrh r0, [r1, 0x28] - cmp r0, 0 - beq _08043FB6 - mov r5, r8 - strb r7, [r5] - adds r1, r4, 0 - muls r1, r2 - adds r1, r3 - ldrb r0, [r5] - muls r0, r2 - adds r0, r3 - adds r0, 0x20 - ldrb r0, [r0] - adds r1, 0x20 - strb r0, [r1] - ldrb r0, [r5] - muls r0, r2 - adds r0, r3 - adds r0, 0x20 - ldrb r0, [r0] - b _08043FA8 - .pool -_08043F84: - mov r2, r8 - strb r6, [r2] - movs r3, 0x58 - adds r0, r6, 0 - muls r0, r3 - ldr r5, =gBattleMons - adds r0, r5 - adds r2, r0, 0 - adds r2, 0x20 - ldrb r1, [r2] - cmp r1, 0 - beq _08043FB6 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _08043FB6 - ldr r0, [sp, 0x1C] - strb r1, [r0] - ldrb r0, [r2] -_08043FA8: - ldr r1, =gLastUsedAbility - strb r0, [r1] -_08043FAC: - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_08043FB6: - mov r2, r9 - cmp r2, 0 - beq _08043FBE - b _08044340 -_08043FBE: - ldr r3, [sp, 0x1C] - adds r3, 0x58 - str r3, [sp, 0x1C] - ldr r5, [sp, 0x20] - adds r5, 0x4 - str r5, [sp, 0x20] - adds r4, 0x1 - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r4, r0 - bge _08043FD6 - b _08043E22 -_08043FD6: - b _0804441E - .pool -_08043FE4: - movs r4, 0 - ldr r0, =gNoOfAllBanks - ldrb r1, [r0] - cmp r4, r1 - blt _08043FF0 - b _0804441E -_08043FF0: - ldr r0, =gBattleMons - adds r5, r1, 0 - ldr r2, =gStatuses3 - adds r3, r0, 0 - adds r3, 0x20 - movs r6, 0x80 - lsls r6, 12 -_08043FFE: - ldrb r1, [r3] - cmp r1, 0x16 - bne _0804400E - ldr r0, [r2] - ands r0, r6 - cmp r0, 0 - beq _0804400E - b _080443B4 -_0804400E: - adds r2, 0x4 - adds r3, 0x58 - adds r4, 0x1 - cmp r4, r5 - blt _08043FFE - b _0804441E - .pool -_08044028: - mov r0, r10 - bl GetBankSide - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r4, r0 - blt _0804403E - b _0804441E -_0804403E: - ldr r7, =gBattleMons -_08044040: - lsls r0, r4, 24 - lsrs r0, 24 - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - adds r3, r4, 0x1 - cmp r0, r5 - beq _0804406A - movs r0, 0x58 - muls r0, r4 - adds r0, r7 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, r6 - bne _0804406A - ldr r0, =gLastUsedAbility - strb r6, [r0] - lsls r0, r3, 24 - lsrs r0, 24 - mov r9, r0 -_0804406A: - adds r4, r3, 0 - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r4, r0 - blt _08044040 - b _0804441E - .pool -_08044084: - mov r0, r10 - bl GetBankSide - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r4, r0 - blt _0804409A - b _0804441E -_0804409A: - ldr r7, =gBattleMons -_0804409C: - lsls r0, r4, 24 - lsrs r0, 24 - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - adds r3, r4, 0x1 - cmp r0, r5 - bne _080440C6 - movs r0, 0x58 - muls r0, r4 - adds r0, r7 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, r6 - bne _080440C6 - ldr r0, =gLastUsedAbility - strb r6, [r0] - lsls r0, r3, 24 - lsrs r0, 24 - mov r9, r0 -_080440C6: - adds r4, r3, 0 - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r4, r0 - blt _0804409C - b _0804441E - .pool -_080440E0: - ldrb r0, [r7] - cmp r0, 0xFD - beq _08044104 - cmp r0, 0xFE - beq _0804413C - movs r4, 0 - ldr r0, =gNoOfAllBanks - adds r5, r0, 0 - ldrb r0, [r5] - cmp r4, r0 - blt _080440F8 - b _0804441E -_080440F8: - ldr r2, =gBattleMons - b _08044174 - .pool -_08044104: - movs r4, 0 - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r4, r0 - blt _08044110 - b _0804441E -_08044110: - ldr r5, =gStatuses3 - movs r2, 0x80 - lsls r2, 9 - adds r1, r0, 0 -_08044118: - lsls r0, r4, 2 - adds r0, r5 - ldr r0, [r0] - ands r0, r2 - adds r3, r4, 0x1 - cmp r0, 0 - beq _0804412C - lsls r0, r3, 24 - lsrs r0, 24 - mov r9, r0 -_0804412C: - adds r4, r3, 0 - cmp r4, r1 - blt _08044118 - b _0804441E - .pool -_0804413C: - movs r4, 0 - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r4, r0 - blt _08044148 - b _0804441E -_08044148: - ldr r5, =gStatuses3 - movs r2, 0x80 - lsls r2, 10 - adds r1, r0, 0 -_08044150: - lsls r0, r4, 2 - adds r0, r5 - ldr r0, [r0] - ands r0, r2 - adds r3, r4, 0x1 - cmp r0, 0 - beq _08044164 - lsls r0, r3, 24 - lsrs r0, 24 - mov r9, r0 -_08044164: - adds r4, r3, 0 - cmp r4, r1 - blt _08044150 - b _0804441E - .pool -_08044174: - movs r0, 0x58 - muls r0, r4 - adds r0, r2 - adds r0, 0x20 - ldrb r0, [r0] - adds r3, r4, 0x1 - cmp r0, r6 - bne _0804418C - strb r6, [r7] - lsls r0, r3, 24 - lsrs r0, 24 - mov r9, r0 -_0804418C: - adds r4, r3, 0 - ldrb r1, [r5] - cmp r4, r1 - blt _08044174 - b _0804441E -_08044196: - movs r4, 0 - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r4, r0 - blt _080441A2 - b _0804441E -_080441A2: - ldr r2, =gBattleMons - mov r8, r2 - adds r2, r0, 0 - movs r5, 0x58 -_080441AA: - adds r0, r4, 0 - muls r0, r5 - mov r3, r8 - adds r1, r0, r3 - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - adds r3, r4, 0x1 - cmp r0, r6 - bne _080441CC - ldrh r0, [r1, 0x28] - cmp r0, 0 - beq _080441CC - strb r6, [r7] - lsls r0, r3, 24 - lsrs r0, 24 - mov r9, r0 -_080441CC: - adds r4, r3, 0 - cmp r4, r2 - blt _080441AA - b _0804441E - .pool -_080441DC: - movs r4, 0 - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r4, r0 - blt _080441E8 - b _0804441E -_080441E8: - ldr r7, =gBattleMons - adds r1, r0, 0 - movs r5, 0x58 - ldr r2, =gLastUsedAbility -_080441F0: - adds r0, r4, 0 - muls r0, r5 - adds r0, r7 - adds r0, 0x20 - ldrb r0, [r0] - adds r3, r4, 0x1 - cmp r0, r6 - bne _0804420C - cmp r4, r10 - beq _0804420C - strb r6, [r2] - lsls r0, r3, 24 - lsrs r0, 24 - mov r9, r0 -_0804420C: - adds r4, r3, 0 - cmp r4, r1 - blt _080441F0 - b _0804441E - .pool -_08044220: - mov r0, r10 - bl GetBankSide - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r4, r0 - blt _08044236 - b _0804441E -_08044236: - ldr r7, =gBattleMons -_08044238: - lsls r0, r4, 24 - lsrs r0, 24 - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, r5 - beq _08044264 - movs r0, 0x58 - muls r0, r4 - adds r0, r7 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, r6 - bne _08044264 - ldr r0, =gLastUsedAbility - strb r6, [r0] - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_08044264: - adds r4, 0x1 - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r4, r0 - blt _08044238 - b _0804441E - .pool -_0804427C: - mov r0, r10 - bl GetBankSide - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r4, r0 - blt _08044292 - b _0804441E -_08044292: - ldr r7, =gBattleMons -_08044294: - lsls r0, r4, 24 - lsrs r0, 24 - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, r5 - bne _080442C0 - movs r0, 0x58 - muls r0, r4 - adds r0, r7 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, r6 - bne _080442C0 - ldr r0, =gLastUsedAbility - strb r6, [r0] - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_080442C0: - adds r4, 0x1 - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r4, r0 - blt _08044294 - b _0804441E - .pool -_080442D8: - ldr r0, =gUnknown_082DB4A9 - bl b_push_move_exec - ldr r0, =gBattleScripting - strb r6, [r0, 0x17] -_080442E2: - ldr r0, =gBattleStruct - ldr r0, [r0] - adds r0, 0x7F - mov r1, r9 - subs r1, 0x1 - strb r1, [r0] - b _0804441E - .pool -_080442FC: - ldr r0, =gUnknown_082DB4A9 - bl b_push_move_exec - ldr r0, =gBattleScripting - mov r5, r10 - strb r5, [r0, 0x17] - ldr r0, =gBattleStruct - ldr r0, [r0] - adds r0, 0x7F - mov r1, r9 - subs r1, 0x1 - strb r1, [r0] - b _0804443A - .pool -_08044324: - strb r1, [r7] - ldr r0, [r2] - ldr r1, =0xfff7ffff - ands r0, r1 - str r0, [r2] - ldr r0, =gUnknown_082DB4B8 - bl b_push_move_exec - b _080443C8 - .pool -_08044340: - ldr r0, =gUnknown_082DB452 - bl b_push_move_exec - ldr r1, =gStatuses3 - ldr r0, [sp, 0x18] - adds r1, r0, r1 - ldr r0, [r1] - ldr r2, =0xffefffff - ands r0, r2 - str r0, [r1] - ldr r0, =gBattleScripting - strb r4, [r0, 0x17] - ldr r1, =gBattleTextBuff1 - movs r4, 0xFD - strb r4, [r1] - movs r0, 0x4 - strb r0, [r1, 0x1] - ldr r2, =gActiveBank - ldrb r0, [r2] - strb r0, [r1, 0x2] - ldr r3, =gBattlePartyID - ldrb r0, [r2] - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r1, =gBattleTextBuff2 - strb r4, [r1] - movs r0, 0x9 - strb r0, [r1, 0x1] - ldr r0, =gLastUsedAbility - ldrb r0, [r0] - strb r0, [r1, 0x2] - movs r0, 0x1 - negs r0, r0 - strb r0, [r1, 0x3] - b _0804441E - .pool -_080443B4: - strb r1, [r7] - ldr r0, [r2] - ldr r1, =0xfff7ffff - ands r0, r1 - str r0, [r2] - bl b_movescr_stack_push_cursor - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB4C1 - str r0, [r1] -_080443C8: - ldr r0, =gBattleStruct - ldr r0, [r0] - adds r0, 0xD8 - strb r4, [r0] -_080443D0: - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - b _0804441E - .pool -_080443EC: - movs r4, 0 - ldr r0, =gNoOfAllBanks - ldrb r1, [r0] - cmp r4, r1 - bge _0804441E - ldr r0, =gBattleMons - adds r2, r1, 0 - adds r1, r0, 0 - adds r1, 0x20 - ldr r3, =gLastUsedAbility -_08044400: - ldrb r0, [r1] - cmp r0, r6 - bne _08044416 - cmp r4, r10 - beq _08044416 - strb r6, [r3] - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_08044416: - adds r1, 0x58 - adds r4, 0x1 - cmp r4, r2 - blt _08044400 -_0804441E: - mov r1, r9 - cmp r1, 0 - beq _0804443A -_08044424: - ldr r2, [sp, 0x4] - cmp r2, 0xB - bhi _0804443A - ldr r1, =gLastUsedAbility - ldrb r0, [r1] - cmp r0, 0xFF - beq _0804443A - adds r1, r0, 0 - mov r0, r10 - bl RecordAbilityBattle -_0804443A: - mov r0, r9 - add sp, 0x28 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end AbilityBattleEffects - - thumb_func_start b_call_bc_move_exec -b_call_bc_move_exec: @ 8044458 - ldr r1, =gBattlescriptCurrInstr - str r0, [r1] - ldr r0, =gBattleResources - ldr r0, [r0] - ldr r2, [r0, 0xC] - adds r3, r2, 0 - adds r3, 0x20 - ldrb r0, [r3] - adds r1, r0, 0x1 - strb r1, [r3] - lsls r0, 24 - lsrs r0, 22 - adds r2, r0 - ldr r1, =gBattleMainFunc - ldr r0, [r1] - str r0, [r2] - ldr r0, =bc_move_exec_returning - str r0, [r1] - ldr r1, =gFightStateTracker - movs r0, 0 - strb r0, [r1] - bx lr - .pool - thumb_func_end b_call_bc_move_exec - - thumb_func_start b_push_move_exec -b_push_move_exec: @ 8044498 - push {r4,lr} - adds r4, r0, 0 - bl b_movescr_stack_push_cursor - ldr r0, =gBattlescriptCurrInstr - str r4, [r0] - ldr r0, =gBattleResources - ldr r0, [r0] - ldr r2, [r0, 0xC] - adds r3, r2, 0 - adds r3, 0x20 - ldrb r0, [r3] - adds r1, r0, 0x1 - strb r1, [r3] - lsls r0, 24 - lsrs r0, 22 - adds r2, r0 - ldr r1, =gBattleMainFunc - ldr r0, [r1] - str r0, [r2] - ldr r0, =sub_803E08C - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end b_push_move_exec - - thumb_func_start berry_effects_maybe -berry_effects_maybe: @ 80444DC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x2C - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x8] - lsls r1, 24 - lsrs r7, r1, 24 - lsls r2, 24 - lsrs r6, r2, 24 - movs r0, 0 - mov r10, r0 - movs r1, 0 - str r1, [sp, 0xC] - add r0, sp, 0x4 - strb r1, [r0] - ldr r4, =gLastUsedItem - ldr r1, =gBattleMons - movs r0, 0x58 - muls r0, r7 - adds r0, r1 - ldrh r0, [r0, 0x2E] - strh r0, [r4] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xAF - bne _08044534 - ldr r1, =gEnigmaBerries - lsls r0, r7, 3 - subs r0, r7 - lsls r0, 2 - adds r0, r1 - ldrb r5, [r0, 0x7] - ldrb r0, [r0, 0x1A] - b _08044548 - .pool -_08044534: - ldrh r0, [r4] - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r5, r0, 24 - ldrh r0, [r4] - bl ItemId_GetHoldEffectParam - lsls r0, 24 - lsrs r0, 24 -_08044548: - mov r9, r0 - ldr r1, =gBattleMons - ldr r0, =gBankAttacker - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - ldrh r0, [r0, 0x2E] - str r0, [sp, 0x14] - cmp r0, 0xAF - bne _0804457C - ldr r1, =gEnigmaBerries - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r3, [r0, 0x7] - mov r8, r3 - ldrb r0, [r0, 0x1A] - b _08044592 - .pool -_0804457C: - ldr r0, [sp, 0x14] - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, [sp, 0x14] - bl ItemId_GetHoldEffectParam - lsls r0, 24 - lsrs r0, 24 -_08044592: - str r0, [sp, 0x10] - ldr r2, =gBattleMons - ldr r0, =gBankTarget - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r4, [r0, 0x2E] - cmp r4, 0xAF - beq _080445B2 - adds r0, r4, 0 - bl ItemId_GetHoldEffect - adds r0, r4, 0 - bl ItemId_GetHoldEffectParam -_080445B2: - ldr r0, [sp, 0x8] - cmp r0, 0x4 - bls _080445BC - bl _0804582A -_080445BC: - lsls r0, 2 - ldr r1, =_080445D4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080445D4: - .4byte _080445E8 - .4byte _08044688 - .4byte _0804582A - .4byte _08045280 - .4byte _080456D0 -_080445E8: - cmp r5, 0x17 - beq _08044618 - cmp r5, 0x20 - beq _080445F4 - bl _0804582A -_080445F4: - adds r0, r7, 0 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _08044604 - bl _0804582A -_08044604: - ldr r0, =gBattleStruct - ldr r0, [r0] - adds r0, 0x4A - movs r1, 0x2 - strb r1, [r0] - bl _0804582A - .pool -_08044618: - ldr r1, =gBattleMons - mov r8, r1 - movs r0, 0x58 - adds r1, r7, 0 - muls r1, r0 - mov r0, r8 - adds r0, 0x18 - adds r1, r0 - movs r2, 0x6 - movs r3, 0x7 - mov r10, r3 -_0804462E: - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0x5 - bgt _0804463C - strb r2, [r1] - movs r5, 0x5 - str r5, [sp, 0xC] -_0804463C: - adds r1, 0x1 - movs r0, 0x1 - negs r0, r0 - add r10, r0 - mov r3, r10 - cmp r3, 0 - bge _0804462E - ldr r5, [sp, 0xC] - cmp r5, 0 - bne _08044654 - bl _0804582A -_08044654: - ldr r0, =gBattleScripting - strb r7, [r0, 0x17] - ldr r0, =gStringBank - strb r7, [r0] - ldr r1, =gActiveBank - ldr r0, =gBankAttacker - strb r7, [r0] - strb r7, [r1] - ldr r0, =gUnknown_082DB7AE - bl b_call_bc_move_exec - bl _0804582A - .pool -_08044688: - ldr r1, =gBattleMons - movs r0, 0x58 - muls r0, r7 - adds r0, r1 - ldrh r0, [r0, 0x28] - mov r8, r1 - cmp r0, 0 - bne _0804469C - bl _0804582A -_0804469C: - subs r0, r5, 0x1 - cmp r0, 0x2A - bls _080446A6 - bl _080451D6 -_080446A6: - lsls r0, 2 - ldr r1, =_080446B8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080446B8: - .4byte _08044764 - .4byte _08044F44 - .4byte _08045008 - .4byte _08044F74 - .4byte _08044FA8 - .4byte _08044FD8 - .4byte _080447B0 - .4byte _08045044 - .4byte _08045074 - .4byte _0804497C - .4byte _080449FC - .4byte _08044A78 - .4byte _08044B0C - .4byte _08044BA0 - .4byte _08044C34 - .4byte _08044C9C - .4byte _08044CF0 - .4byte _08044D44 - .4byte _08044DAC - .4byte _08044E10 - .4byte _08044E5C - .4byte _080451D6 - .4byte _080448B0 - .4byte _080451D6 - .4byte _080451D6 - .4byte _080451D6 - .4byte _080451D6 - .4byte _080451A0 - .4byte _080451D6 - .4byte _080451D6 - .4byte _080451D6 - .4byte _080451D6 - .4byte _080451D6 - .4byte _080451D6 - .4byte _080451D6 - .4byte _080451D6 - .4byte _080451D6 - .4byte _080451D6 - .4byte _080451D6 - .4byte _080451D6 - .4byte _080451D6 - .4byte _080451D6 - .4byte _0804491C -_08044764: - movs r0, 0x58 - muls r0, r7 - mov r1, r8 - adds r2, r0, r1 - ldrh r0, [r2, 0x2C] - ldrh r1, [r2, 0x28] - lsrs r0, 1 - cmp r1, r0 - bls _0804477A - bl _080451D6 -_0804477A: - cmp r6, 0 - beq _08044782 - bl _080451D6 -_08044782: - ldr r4, =gBattleMoveDamage - mov r3, r9 - str r3, [r4] - ldrh r3, [r2, 0x28] - mov r5, r9 - adds r0, r3, r5 - ldrh r1, [r2, 0x2C] - cmp r0, r1 - ble _08044798 - subs r0, r1, r3 - str r0, [r4] -_08044798: - ldr r0, [r4] - negs r0, r0 - str r0, [r4] - ldr r0, =gUnknown_082DB7C4 - bl b_call_bc_move_exec - b _08044B02 - .pool -_080447B0: - cmp r6, 0 - beq _080447B8 - bl _080451D6 -_080447B8: - adds r0, r7, 0 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _080447DC - ldr r1, =gBattlePartyID - lsls r0, r7, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - b _080447EA - .pool -_080447DC: - ldr r1, =gBattlePartyID - lsls r0, r7, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gEnemyParty -_080447EA: - adds r4, r1, r0 - movs r1, 0 - mov r10, r1 - add r5, sp, 0x4 -_080447F2: - mov r1, r10 - adds r1, 0xD - adds r0, r4, 0 - bl GetMonData - lsls r0, 16 - lsrs r6, r0, 16 - mov r1, r10 - adds r1, 0x11 - adds r0, r4, 0 - bl GetMonData - strb r0, [r5] - adds r0, r4, 0 - movs r1, 0x15 - bl GetMonData - lsls r0, 24 - lsrs r1, r0, 24 - cmp r6, 0 - beq _08044822 - ldrb r0, [r5] - cmp r0, 0 - beq _0804482C -_08044822: - movs r2, 0x1 - add r10, r2 - mov r3, r10 - cmp r3, 0x3 - ble _080447F2 -_0804482C: - mov r5, r10 - cmp r5, 0x4 - bne _08044836 - bl _080451D6 -_08044836: - lsls r2, r5, 24 - lsrs r2, 24 - adds r0, r6, 0 - bl CalculatePPWithBonus - lsls r0, 24 - lsrs r2, r0, 24 - add r0, sp, 0x4 - ldrb r0, [r0] - mov r3, r9 - adds r1, r0, r3 - cmp r1, r2 - ble _08044860 - add r0, sp, 0x4 - strb r2, [r0] - b _08044864 - .pool -_08044860: - add r0, sp, 0x4 - strb r1, [r0] -_08044864: - ldr r1, =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x2 - strb r0, [r1, 0x1] - strb r6, [r1, 0x2] - lsrs r0, r6, 8 - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r0, =gUnknown_082DB7E1 - bl b_call_bc_move_exec - mov r1, r10 - adds r1, 0x9 - lsls r1, 24 - lsrs r1, 24 - add r5, sp, 0x4 - str r5, [sp] - movs r0, 0 - movs r2, 0 - movs r3, 0x1 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldr r0, =gActiveBank - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - movs r0, 0x3 - str r0, [sp, 0xC] - bl _080451DE - .pool -_080448B0: - ldr r0, =gBattleMons - movs r1, 0x58 - muls r1, r7 - adds r0, 0x18 - adds r1, r0 - movs r2, 0x6 - movs r3, 0x7 - mov r10, r3 -_080448C0: - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0x5 - bgt _080448CE - strb r2, [r1] - movs r5, 0x5 - str r5, [sp, 0xC] -_080448CE: - adds r1, 0x1 - movs r0, 0x1 - negs r0, r0 - add r10, r0 - mov r3, r10 - cmp r3, 0 - bge _080448C0 - movs r5, 0x8 - mov r10, r5 - ldr r0, [sp, 0xC] - cmp r0, 0 - bne _080448EA - bl _0804582A -_080448EA: - ldr r0, =gBattleScripting - strb r7, [r0, 0x17] - ldr r0, =gStringBank - strb r7, [r0] - ldr r1, =gActiveBank - ldr r0, =gBankAttacker - strb r7, [r0] - strb r7, [r1] - ldr r0, =gUnknown_082DB7AE - bl b_call_bc_move_exec - bl _080451D6 - .pool -_0804491C: - movs r0, 0x58 - muls r0, r7 - mov r2, r8 - adds r1, r0, r2 - ldrh r0, [r1, 0x28] - ldrh r3, [r1, 0x2C] - cmp r0, r3 - bcc _08044930 - bl _080451D6 -_08044930: - cmp r6, 0 - beq _08044938 - bl _080451D6 -_08044938: - ldr r3, =gBattleMoveDamage - ldrh r0, [r1, 0x2C] - lsrs r0, 4 - str r0, [r3] - cmp r0, 0 - bne _08044948 - movs r0, 0x1 - str r0, [r3] -_08044948: - ldrh r2, [r1, 0x28] - ldr r0, [r3] - adds r0, r2, r0 - ldrh r1, [r1, 0x2C] - cmp r0, r1 - ble _08044958 - subs r0, r1, r2 - str r0, [r3] -_08044958: - ldr r0, [r3] - negs r0, r0 - str r0, [r3] - ldr r0, =gUnknown_082DB7F1 - bl b_call_bc_move_exec - movs r0, 0x4 - str r0, [sp, 0xC] - adds r0, r7, 0 - adds r1, r5, 0 - bl RecordItemEffectBattle - bl _080451D6 - .pool -_0804497C: - movs r0, 0x58 - adds r1, r7, 0 - muls r1, r0 - str r1, [sp, 0x18] - adds r4, r1, 0 - add r4, r8 - ldrh r0, [r4, 0x2C] - ldrh r1, [r4, 0x28] - lsrs r0, 1 - cmp r1, r0 - bls _08044996 - bl _080451D6 -_08044996: - cmp r6, 0 - beq _0804499E - bl _080451D6 -_0804499E: - ldr r1, =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x8 - strb r0, [r1, 0x1] - strb r6, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - ldr r5, =gBattleMoveDamage - ldrh r0, [r4, 0x2C] - mov r1, r9 - bl __divsi3 - str r0, [r5] - cmp r0, 0 - bne _080449C2 - movs r0, 0x1 - str r0, [r5] -_080449C2: - ldrh r2, [r4, 0x28] - ldr r0, [r5] - adds r0, r2, r0 - ldrh r1, [r4, 0x2C] - cmp r0, r1 - ble _080449D2 - subs r0, r1, r2 - str r0, [r5] -_080449D2: - ldr r0, [r5] - negs r0, r0 - str r0, [r5] - mov r0, r8 - adds r0, 0x48 - ldr r2, [sp, 0x18] - adds r0, r2, r0 - ldr r0, [r0] - movs r1, 0 - bl GetFlavourRelationByPersonality - lsls r0, 24 - cmp r0, 0 - bge _080449F0 - b _08044B7C -_080449F0: - b _08044B90 - .pool -_080449FC: - movs r0, 0x58 - adds r5, r7, 0 - muls r5, r0 - str r5, [sp, 0x1C] - add r5, r8 - ldrh r0, [r5, 0x2C] - ldrh r1, [r5, 0x28] - lsrs r0, 1 - cmp r1, r0 - bls _08044A14 - bl _080451D6 -_08044A14: - cmp r6, 0 - beq _08044A1C - bl _080451D6 -_08044A1C: - ldr r1, =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x8 - strb r0, [r1, 0x1] - movs r6, 0x1 - strb r6, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - ldr r4, =gBattleMoveDamage - ldrh r0, [r5, 0x2C] - mov r1, r9 - bl __divsi3 - str r0, [r4] - cmp r0, 0 - bne _08044A40 - str r6, [r4] -_08044A40: - ldrh r2, [r5, 0x28] - ldr r0, [r4] - adds r0, r2, r0 - ldrh r1, [r5, 0x2C] - cmp r0, r1 - ble _08044A50 - subs r0, r1, r2 - str r0, [r4] -_08044A50: - ldr r0, [r4] - negs r0, r0 - str r0, [r4] - mov r0, r8 - adds r0, 0x48 - ldr r1, [sp, 0x1C] - adds r0, r1, r0 - ldr r0, [r0] - movs r1, 0x1 - bl GetFlavourRelationByPersonality - lsls r0, 24 - cmp r0, 0 - bge _08044A6E - b _08044C0E -_08044A6E: - b _08044C24 - .pool -_08044A78: - movs r0, 0x58 - adds r3, r7, 0 - muls r3, r0 - str r3, [sp, 0x20] - adds r5, r3, 0 - add r5, r8 - ldrh r0, [r5, 0x2C] - ldrh r1, [r5, 0x28] - lsrs r0, 1 - cmp r1, r0 - bls _08044A90 - b _080451D6 -_08044A90: - cmp r6, 0 - beq _08044A96 - b _080451D6 -_08044A96: - ldr r1, =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x8 - strb r0, [r1, 0x1] - movs r0, 0x2 - strb r0, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - ldr r4, =gBattleMoveDamage - ldrh r0, [r5, 0x2C] - mov r1, r9 - bl __divsi3 - str r0, [r4] - cmp r0, 0 - bne _08044ABC - movs r0, 0x1 - str r0, [r4] -_08044ABC: - ldrh r2, [r5, 0x28] - ldr r0, [r4] - adds r0, r2, r0 - ldrh r1, [r5, 0x2C] - cmp r0, r1 - ble _08044ACC - subs r0, r1, r2 - str r0, [r4] -_08044ACC: - ldr r0, [r4] - negs r0, r0 - str r0, [r4] - mov r0, r8 - adds r0, 0x48 - ldr r5, [sp, 0x20] - adds r0, r5, r0 - ldr r0, [r0] - movs r1, 0x2 - bl GetFlavourRelationByPersonality - lsls r0, 24 - cmp r0, 0 - bge _08044AFC - ldr r0, =gUnknown_082DB824 - bl b_call_bc_move_exec - b _08044B02 - .pool -_08044AFC: - ldr r0, =gUnknown_082DB7C4 - bl b_call_bc_move_exec -_08044B02: - movs r0, 0x4 - str r0, [sp, 0xC] - b _080451DE - .pool -_08044B0C: - movs r0, 0x58 - adds r1, r7, 0 - muls r1, r0 - str r1, [sp, 0x24] - adds r5, r1, 0 - add r5, r8 - ldrh r0, [r5, 0x2C] - ldrh r1, [r5, 0x28] - lsrs r0, 1 - cmp r1, r0 - bls _08044B24 - b _080451D6 -_08044B24: - cmp r6, 0 - beq _08044B2A - b _080451D6 -_08044B2A: - ldr r1, =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x8 - strb r0, [r1, 0x1] - movs r0, 0x3 - strb r0, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - ldr r4, =gBattleMoveDamage - ldrh r0, [r5, 0x2C] - mov r1, r9 - bl __divsi3 - str r0, [r4] - cmp r0, 0 - bne _08044B50 - movs r0, 0x1 - str r0, [r4] -_08044B50: - ldrh r2, [r5, 0x28] - ldr r0, [r4] - adds r0, r2, r0 - ldrh r1, [r5, 0x2C] - cmp r0, r1 - ble _08044B60 - subs r0, r1, r2 - str r0, [r4] -_08044B60: - ldr r0, [r4] - negs r0, r0 - str r0, [r4] - mov r0, r8 - adds r0, 0x48 - ldr r2, [sp, 0x24] - adds r0, r2, r0 - ldr r0, [r0] - movs r1, 0x3 - bl GetFlavourRelationByPersonality - lsls r0, 24 - cmp r0, 0 - bge _08044B90 -_08044B7C: - ldr r0, =gUnknown_082DB824 - bl b_call_bc_move_exec - b _08044B96 - .pool -_08044B90: - ldr r0, =gUnknown_082DB7C4 - bl b_call_bc_move_exec -_08044B96: - movs r3, 0x4 - str r3, [sp, 0xC] - b _080451DE - .pool -_08044BA0: - movs r0, 0x58 - adds r5, r7, 0 - muls r5, r0 - str r5, [sp, 0x28] - add r5, r8 - ldrh r0, [r5, 0x2C] - ldrh r1, [r5, 0x28] - lsrs r0, 1 - cmp r1, r0 - bls _08044BB6 - b _080451D6 -_08044BB6: - cmp r6, 0 - beq _08044BBC - b _080451D6 -_08044BBC: - ldr r1, =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x8 - strb r0, [r1, 0x1] - movs r0, 0x4 - strb r0, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - ldr r4, =gBattleMoveDamage - ldrh r0, [r5, 0x2C] - mov r1, r9 - bl __divsi3 - str r0, [r4] - cmp r0, 0 - bne _08044BE2 - movs r0, 0x1 - str r0, [r4] -_08044BE2: - ldrh r2, [r5, 0x28] - ldr r0, [r4] - adds r0, r2, r0 - ldrh r1, [r5, 0x2C] - cmp r0, r1 - ble _08044BF2 - subs r0, r1, r2 - str r0, [r4] -_08044BF2: - ldr r0, [r4] - negs r0, r0 - str r0, [r4] - mov r0, r8 - adds r0, 0x48 - ldr r1, [sp, 0x28] - adds r0, r1, r0 - ldr r0, [r0] - movs r1, 0x4 - bl GetFlavourRelationByPersonality - lsls r0, 24 - cmp r0, 0 - bge _08044C24 -_08044C0E: - ldr r0, =gUnknown_082DB824 - bl b_call_bc_move_exec - b _08044C2A - .pool -_08044C24: - ldr r0, =gUnknown_082DB7C4 - bl b_call_bc_move_exec -_08044C2A: - movs r2, 0x4 - str r2, [sp, 0xC] - b _080451DE - .pool -_08044C34: - movs r0, 0x58 - muls r0, r7 - mov r3, r8 - adds r5, r0, r3 - ldrh r4, [r5, 0x28] - ldrh r0, [r5, 0x2C] - mov r1, r9 - bl __divsi3 - cmp r4, r0 - ble _08044C4C - b _080451D6 -_08044C4C: - cmp r6, 0 - beq _08044C52 - b _080451D6 -_08044C52: - movs r0, 0x19 - ldrsb r0, [r5, r0] - cmp r0, 0xB - ble _08044C5C - b _080451D6 -_08044C5C: - ldr r1, =gBattleTextBuff1 - movs r2, 0xFD - strb r2, [r1] - movs r0, 0x5 - strb r0, [r1, 0x1] - movs r0, 0x1 - strb r0, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - ldr r1, =gBattleTextBuff2 - strb r2, [r1] - strb r6, [r1, 0x1] - movs r0, 0xD2 - strb r0, [r1, 0x2] - strb r6, [r1, 0x3] - subs r0, 0xD3 - strb r0, [r1, 0x4] - ldr r0, =gUnknown_0202420E - strb r7, [r0] - ldr r1, =gBattleScripting - movs r0, 0x11 - strb r0, [r1, 0x1A] - movs r0, 0xF - b _08044DF0 - .pool -_08044C9C: - movs r0, 0x58 - muls r0, r7 - mov r1, r8 - adds r5, r0, r1 - ldrh r4, [r5, 0x28] - ldrh r0, [r5, 0x2C] - mov r1, r9 - bl __divsi3 - cmp r4, r0 - ble _08044CB4 - b _080451D6 -_08044CB4: - cmp r6, 0 - beq _08044CBA - b _080451D6 -_08044CBA: - movs r0, 0x1A - ldrsb r0, [r5, r0] - cmp r0, 0xB - ble _08044CC4 - b _080451D6 -_08044CC4: - ldr r1, =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x5 - strb r0, [r1, 0x1] - movs r0, 0x2 - strb r0, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - ldr r0, =gUnknown_0202420E - strb r7, [r0] - ldr r1, =gBattleScripting - movs r0, 0x12 - strb r0, [r1, 0x1A] - movs r0, 0x10 - b _08044D8A - .pool -_08044CF0: - movs r0, 0x58 - muls r0, r7 - mov r3, r8 - adds r5, r0, r3 - ldrh r4, [r5, 0x28] - ldrh r0, [r5, 0x2C] - mov r1, r9 - bl __divsi3 - cmp r4, r0 - ble _08044D08 - b _080451D6 -_08044D08: - cmp r6, 0 - beq _08044D0E - b _080451D6 -_08044D0E: - movs r0, 0x1B - ldrsb r0, [r5, r0] - cmp r0, 0xB - ble _08044D18 - b _080451D6 -_08044D18: - ldr r1, =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x5 - strb r0, [r1, 0x1] - movs r0, 0x3 - strb r0, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - ldr r0, =gUnknown_0202420E - strb r7, [r0] - ldr r1, =gBattleScripting - movs r0, 0x13 - strb r0, [r1, 0x1A] - movs r0, 0x11 - b _08044DF0 - .pool -_08044D44: - movs r0, 0x58 - muls r0, r7 - mov r1, r8 - adds r5, r0, r1 - ldrh r4, [r5, 0x28] - ldrh r0, [r5, 0x2C] - mov r1, r9 - bl __divsi3 - cmp r4, r0 - ble _08044D5C - b _080451D6 -_08044D5C: - cmp r6, 0 - beq _08044D62 - b _080451D6 -_08044D62: - movs r0, 0x1C - ldrsb r0, [r5, r0] - cmp r0, 0xB - ble _08044D6C - b _080451D6 -_08044D6C: - ldr r1, =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x5 - strb r0, [r1, 0x1] - movs r0, 0x4 - strb r0, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - ldr r0, =gUnknown_0202420E - strb r7, [r0] - ldr r1, =gBattleScripting - movs r0, 0x14 - strb r0, [r1, 0x1A] - movs r0, 0x12 -_08044D8A: - strb r0, [r1, 0x10] - strb r6, [r1, 0x11] - ldr r0, =gUnknown_082DB84E - bl b_call_bc_move_exec - movs r2, 0x5 - str r2, [sp, 0xC] - b _080451DE - .pool -_08044DAC: - movs r0, 0x58 - muls r0, r7 - mov r3, r8 - adds r5, r0, r3 - ldrh r4, [r5, 0x28] - ldrh r0, [r5, 0x2C] - mov r1, r9 - bl __divsi3 - cmp r4, r0 - ble _08044DC4 - b _080451D6 -_08044DC4: - cmp r6, 0 - beq _08044DCA - b _080451D6 -_08044DCA: - movs r0, 0x1D - ldrsb r0, [r5, r0] - cmp r0, 0xB - ble _08044DD4 - b _080451D6 -_08044DD4: - ldr r1, =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x5 - strb r0, [r1, 0x1] - strb r0, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - ldr r0, =gUnknown_0202420E - strb r7, [r0] - ldr r1, =gBattleScripting - movs r0, 0x15 - strb r0, [r1, 0x1A] - movs r0, 0x13 -_08044DF0: - strb r0, [r1, 0x10] - strb r6, [r1, 0x11] - ldr r0, =gUnknown_082DB84E - bl b_call_bc_move_exec - movs r5, 0x5 - str r5, [sp, 0xC] - b _080451DE - .pool -_08044E10: - movs r0, 0x58 - adds r5, r7, 0 - muls r5, r0 - mov r1, r8 - adds r0, r5, r1 - ldrh r4, [r0, 0x28] - ldrh r0, [r0, 0x2C] - mov r1, r9 - bl __divsi3 - cmp r4, r0 - ble _08044E2A - b _080451D6 -_08044E2A: - cmp r6, 0 - beq _08044E30 - b _080451D6 -_08044E30: - mov r0, r8 - adds r0, 0x50 - adds r1, r5, r0 - ldr r2, [r1] - movs r3, 0x80 - lsls r3, 13 - adds r0, r2, 0 - ands r0, r3 - cmp r0, 0 - beq _08044E46 - b _080451D6 -_08044E46: - orrs r2, r3 - str r2, [r1] - ldr r0, =gUnknown_082DB869 - bl b_call_bc_move_exec - movs r2, 0x2 - str r2, [sp, 0xC] - b _080451DE - .pool -_08044E5C: - cmp r6, 0 - beq _08044E62 - b _080451D6 -_08044E62: - movs r0, 0x58 - adds r5, r7, 0 - muls r5, r0 - mov r3, r8 - adds r0, r5, r3 - ldrh r4, [r0, 0x28] - ldrh r0, [r0, 0x2C] - mov r1, r9 - bl __divsi3 - cmp r4, r0 - ble _08044E7C - b _080451D6 -_08044E7C: - movs r0, 0 - mov r10, r0 - adds r0, r5, 0x1 - mov r1, r8 - adds r1, 0x18 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0xB - ble _08044EAC - mov r0, r8 - adds r0, 0x19 - adds r1, r5, r0 -_08044E98: - adds r1, 0x1 - movs r2, 0x1 - add r10, r2 - mov r3, r10 - cmp r3, 0x4 - bgt _08044EAC - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0xB - bgt _08044E98 -_08044EAC: - mov r5, r10 - cmp r5, 0x5 - bne _08044EB4 - b _080451D6 -_08044EB4: - movs r0, 0x58 - muls r0, r7 - adds r4, r0, 0x1 - ldr r5, =gBattleMons + 0x18 -_08044EBC: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x5 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - adds r0, r4 - adds r0, r5 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0xC - beq _08044EBC - ldr r1, =gBattleTextBuff1 - movs r2, 0 - movs r3, 0xFD - strb r3, [r1] - movs r0, 0x5 - strb r0, [r1, 0x1] - mov r0, r10 - adds r0, 0x1 - strb r0, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - ldr r0, =gBattleTextBuff2 - strb r3, [r0] - strb r2, [r0, 0x1] - movs r1, 0xD1 - strb r1, [r0, 0x2] - strb r2, [r0, 0x3] - strb r2, [r0, 0x4] - movs r1, 0xD2 - strb r1, [r0, 0x5] - strb r2, [r0, 0x6] - subs r1, 0xD3 - strb r1, [r0, 0x7] - ldr r0, =gUnknown_0202420E - strb r7, [r0] - ldr r1, =gBattleScripting - mov r0, r10 - adds r0, 0x21 - strb r0, [r1, 0x1A] - adds r0, 0x6 - strb r0, [r1, 0x10] - strb r2, [r1, 0x11] - ldr r0, =gUnknown_082DB84E - bl b_call_bc_move_exec - movs r0, 0x5 - str r0, [sp, 0xC] - b _080451DE - .pool -_08044F44: - movs r0, 0x58 - adds r1, r7, 0 - muls r1, r0 - mov r0, r8 - adds r0, 0x4C - adds r1, r0 - ldr r2, [r1] - movs r0, 0x40 - ands r0, r2 - cmp r0, 0 - bne _08044F5C - b _080451D6 -_08044F5C: - movs r0, 0x41 - negs r0, r0 - ands r2, r0 - str r2, [r1] - ldr r0, =gUnknown_082DB706 - bl b_call_bc_move_exec - movs r1, 0x1 - str r1, [sp, 0xC] - b _080451DE - .pool -_08044F74: - movs r0, 0x58 - adds r1, r7, 0 - muls r1, r0 - mov r0, r8 - adds r0, 0x4C - adds r1, r0 - ldr r2, [r1] - movs r0, 0x88 - ands r0, r2 - cmp r0, 0 - bne _08044F8C - b _080451D6 -_08044F8C: - ldr r0, =0xfffff077 - ands r2, r0 - str r2, [r1] - ldr r0, =gUnknown_082DB71E - bl b_call_bc_move_exec - movs r2, 0x1 - str r2, [sp, 0xC] - b _080451DE - .pool -_08044FA8: - movs r0, 0x58 - adds r1, r7, 0 - muls r1, r0 - mov r0, r8 - adds r0, 0x4C - adds r1, r0 - ldr r2, [r1] - movs r0, 0x10 - ands r0, r2 - cmp r0, 0 - bne _08044FC0 - b _080451D6 -_08044FC0: - movs r0, 0x11 - negs r0, r0 - ands r2, r0 - str r2, [r1] - ldr r0, =gUnknown_082DB736 - bl b_call_bc_move_exec - movs r3, 0x1 - str r3, [sp, 0xC] - b _080451DE - .pool -_08044FD8: - movs r0, 0x58 - adds r1, r7, 0 - muls r1, r0 - mov r0, r8 - adds r0, 0x4C - adds r1, r0 - ldr r2, [r1] - movs r0, 0x20 - ands r0, r2 - cmp r0, 0 - bne _08044FF0 - b _080451D6 -_08044FF0: - movs r0, 0x21 - negs r0, r0 - ands r2, r0 - str r2, [r1] - ldr r0, =gUnknown_082DB74E - bl b_call_bc_move_exec - movs r5, 0x1 - str r5, [sp, 0xC] - b _080451DE - .pool -_08045008: - movs r0, 0x58 - adds r3, r7, 0 - muls r3, r0 - mov r0, r8 - adds r0, 0x4C - adds r2, r3, r0 - ldr r1, [r2] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - bne _08045020 - b _080451D6 -_08045020: - movs r0, 0x8 - negs r0, r0 - ands r1, r0 - str r1, [r2] - mov r1, r8 - adds r1, 0x50 - adds r1, r3, r1 - ldr r0, [r1] - ldr r2, =0xf7ffffff - ands r0, r2 - str r0, [r1] - ldr r0, =gUnknown_082DB766 - b _0804518A - .pool -_08045044: - movs r0, 0x58 - adds r1, r7, 0 - muls r1, r0 - mov r0, r8 - adds r0, 0x50 - adds r1, r0 - ldr r2, [r1] - movs r0, 0x7 - ands r0, r2 - cmp r0, 0 - bne _0804505C - b _080451D6 -_0804505C: - movs r0, 0x8 - negs r0, r0 - ands r2, r0 - str r2, [r1] - ldr r0, =gUnknown_082DB77E - bl b_call_bc_move_exec - movs r1, 0x2 - str r1, [sp, 0xC] - b _080451DE - .pool -_08045074: - movs r0, 0x58 - adds r5, r7, 0 - muls r5, r0 - mov r0, r8 - adds r0, 0x4C - adds r4, r5, r0 - ldr r2, [r4] - ldrb r0, [r4] - cmp r0, 0 - bne _0804509A - mov r0, r8 - adds r0, 0x50 - adds r0, r5, r0 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - bne _0804509A - b _080451D6 -_0804509A: - movs r3, 0 - mov r10, r3 - movs r0, 0x88 - ands r2, r0 - cmp r2, 0 - beq _080450B2 - ldr r0, =gBattleTextBuff1 - ldr r1, =gUnknown_0831BC70 - bl StringCopy - movs r0, 0x1 - mov r10, r0 -_080450B2: - ldr r0, [r4] - movs r1, 0x7 - mov r9, r1 - ands r0, r1 - mov r6, r8 - adds r6, 0x50 - cmp r0, 0 - beq _080450D8 - adds r2, r5, r6 - ldr r0, [r2] - ldr r1, =0xf7ffffff - ands r0, r1 - str r0, [r2] - ldr r0, =gBattleTextBuff1 - ldr r1, =gUnknown_0831BC78 - bl StringCopy - movs r2, 0x1 - add r10, r2 -_080450D8: - ldr r0, [r4] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080450EE - ldr r0, =gBattleTextBuff1 - ldr r1, =gUnknown_0831BC80 - bl StringCopy - movs r3, 0x1 - add r10, r3 -_080450EE: - ldr r0, [r4] - movs r1, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08045104 - ldr r0, =gBattleTextBuff1 - ldr r1, =gUnknown_0831BC88 - bl StringCopy - movs r0, 0x1 - add r10, r0 -_08045104: - ldr r0, [r4] - movs r1, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0804511A - ldr r0, =gBattleTextBuff1 - ldr r1, =gUnknown_0831BC90 - bl StringCopy - movs r1, 0x1 - add r10, r1 -_0804511A: - adds r0, r5, r6 - ldr r0, [r0] - mov r2, r9 - ands r0, r2 - cmp r0, 0 - beq _08045132 - ldr r0, =gBattleTextBuff1 - ldr r1, =gUnknown_0831BC98 - bl StringCopy - movs r3, 0x1 - add r10, r3 -_08045132: - mov r5, r10 - cmp r5, 0x1 - bgt _08045164 - ldr r1, =gBattleCommunication - movs r0, 0 - b _08045168 - .pool -_08045164: - ldr r1, =gBattleCommunication - movs r0, 0x1 -_08045168: - strb r0, [r1, 0x5] - ldr r2, =gBattleMons - movs r0, 0x58 - adds r3, r7, 0 - muls r3, r0 - adds r0, r2, 0 - adds r0, 0x4C - adds r0, r3, r0 - movs r1, 0 - str r1, [r0] - adds r2, 0x50 - adds r3, r2 - ldr r0, [r3] - subs r1, 0x8 - ands r0, r1 - str r0, [r3] - ldr r0, =gUnknown_082DB794 -_0804518A: - bl b_call_bc_move_exec - movs r0, 0x1 - str r0, [sp, 0xC] - b _080451DE - .pool -_080451A0: - movs r0, 0x58 - adds r1, r7, 0 - muls r1, r0 - mov r0, r8 - adds r0, 0x50 - adds r1, r0 - ldr r2, [r1] - movs r0, 0xF0 - lsls r0, 12 - ands r0, r2 - cmp r0, 0 - beq _080451D6 - ldr r0, =0xfff0ffff - ands r2, r0 - str r2, [r1] - ldr r0, =gBattleTextBuff1 - ldr r1, =gUnknown_0831BCA0 - bl StringCopy - ldr r0, =gUnknown_082DB794 - bl b_call_bc_move_exec - ldr r1, =gBattleCommunication - movs r0, 0 - strb r0, [r1, 0x5] - movs r1, 0x2 - str r1, [sp, 0xC] -_080451D6: - ldr r2, [sp, 0xC] - cmp r2, 0 - bne _080451DE - b _0804582A -_080451DE: - ldr r0, =gBattleScripting - strb r7, [r0, 0x17] - ldr r0, =gStringBank - strb r7, [r0] - ldr r4, =gActiveBank - ldr r0, =gBankAttacker - strb r7, [r0] - strb r7, [r4] - ldr r3, [sp, 0xC] - cmp r3, 0x1 - beq _08045220 - cmp r3, 0x3 - beq _08045226 - b _0804582A - .pool -_08045220: - movs r0, 0x58 - muls r0, r7 - b _0804568C -_08045226: - ldr r4, =gBattleMons - movs r0, 0x58 - adds r3, r7, 0 - muls r3, r0 - adds r0, r4, 0 - adds r0, 0x50 - adds r0, r3, r0 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 14 - ands r0, r1 - cmp r0, 0 - beq _08045242 - b _0804582A -_08045242: - ldr r1, =gDisableStructs - lsls r0, r7, 3 - subs r0, r7 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x18] - lsrs r1, 4 - ldr r2, =gBitTable - mov r5, r10 - lsls r0, r5, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08045262 - b _0804582A -_08045262: - adds r1, r5, r3 - adds r0, r4, 0 - adds r0, 0x24 - adds r1, r0 - add r0, sp, 0x4 - ldrb r0, [r0] - strb r0, [r1] - b _0804582A - .pool -_08045280: - movs r7, 0 - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r7, r0 - bcc _0804528C - b _0804582A -_0804528C: - ldr r4, =gLastUsedItem - ldr r1, =gBattleMons - movs r0, 0x58 - muls r0, r7 - adds r0, r1 - ldrh r0, [r0, 0x2E] - strh r0, [r4] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xAF - bne _080452C0 - ldr r1, =gEnigmaBerries - lsls r0, r7, 3 - subs r0, r7 - lsls r0, 2 - adds r0, r1 - ldrb r5, [r0, 0x7] - b _080452D0 - .pool -_080452C0: - ldrh r0, [r4] - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r5, r0, 24 - ldrh r0, [r4] - bl ItemId_GetHoldEffectParam -_080452D0: - subs r0, r5, 0x2 - cmp r0, 0x1A - bls _080452D8 - b _08045674 -_080452D8: - lsls r0, 2 - ldr r1, =_080452E8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080452E8: - .4byte _08045354 - .4byte _08045444 - .4byte _08045390 - .4byte _080453CC - .4byte _08045408 - .4byte _08045674 - .4byte _0804548C - .4byte _08045520 - .4byte _08045674 - .4byte _08045674 - .4byte _08045674 - .4byte _08045674 - .4byte _08045674 - .4byte _08045674 - .4byte _08045674 - .4byte _08045674 - .4byte _08045674 - .4byte _08045674 - .4byte _08045674 - .4byte _08045674 - .4byte _08045674 - .4byte _08045614 - .4byte _08045674 - .4byte _08045674 - .4byte _08045674 - .4byte _08045674 - .4byte _080454C8 -_08045354: - ldr r1, =gBattleMons - movs r0, 0x58 - muls r0, r7 - adds r1, 0x4C - adds r2, r0, r1 - ldr r1, [r2] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _0804536A - b _08045674 -_0804536A: - movs r0, 0x41 - negs r0, r0 - ands r1, r0 - str r1, [r2] - bl b_movescr_stack_push_cursor - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB70C - str r0, [r1] - movs r0, 0x1 - str r0, [sp, 0xC] - b _0804567A - .pool -_08045390: - ldr r1, =gBattleMons - movs r0, 0x58 - muls r0, r7 - adds r1, 0x4C - adds r2, r0, r1 - ldr r1, [r2] - movs r0, 0x88 - ands r0, r1 - cmp r0, 0 - bne _080453A6 - b _08045674 -_080453A6: - ldr r0, =0xfffff077 - ands r1, r0 - str r1, [r2] - bl b_movescr_stack_push_cursor - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB724 - str r0, [r1] - movs r1, 0x1 - str r1, [sp, 0xC] - b _0804567A - .pool -_080453CC: - ldr r1, =gBattleMons - movs r0, 0x58 - muls r0, r7 - adds r1, 0x4C - adds r2, r0, r1 - ldr r1, [r2] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _080453E2 - b _08045674 -_080453E2: - movs r0, 0x11 - negs r0, r0 - ands r1, r0 - str r1, [r2] - bl b_movescr_stack_push_cursor - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB73C - str r0, [r1] - movs r2, 0x1 - str r2, [sp, 0xC] - b _0804567A - .pool -_08045408: - ldr r1, =gBattleMons - movs r0, 0x58 - muls r0, r7 - adds r1, 0x4C - adds r2, r0, r1 - ldr r1, [r2] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _0804541E - b _08045674 -_0804541E: - movs r0, 0x21 - negs r0, r0 - ands r1, r0 - str r1, [r2] - bl b_movescr_stack_push_cursor - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB754 - str r0, [r1] - movs r3, 0x1 - str r3, [sp, 0xC] - b _0804567A - .pool -_08045444: - ldr r2, =gBattleMons - movs r0, 0x58 - adds r4, r7, 0 - muls r4, r0 - adds r0, r2, 0 - adds r0, 0x4C - adds r3, r4, r0 - ldr r1, [r3] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - bne _0804545E - b _08045674 -_0804545E: - movs r0, 0x8 - negs r0, r0 - ands r1, r0 - str r1, [r3] - adds r2, 0x50 - adds r2, r4, r2 - ldr r0, [r2] - ldr r1, =0xf7ffffff - ands r0, r1 - str r0, [r2] - bl b_movescr_stack_push_cursor - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB76C - b _080455DC - .pool -_0804548C: - ldr r1, =gBattleMons - movs r0, 0x58 - muls r0, r7 - adds r1, 0x50 - adds r2, r0, r1 - ldr r1, [r2] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - bne _080454A2 - b _08045674 -_080454A2: - movs r0, 0x8 - negs r0, r0 - ands r1, r0 - str r1, [r2] - bl b_movescr_stack_push_cursor - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB784 - str r0, [r1] - movs r0, 0x2 - str r0, [sp, 0xC] - b _0804567A - .pool -_080454C8: - ldr r1, =gBattleMons - movs r0, 0x58 - muls r0, r7 - adds r1, 0x50 - adds r2, r0, r1 - ldr r1, [r2] - movs r0, 0xF0 - lsls r0, 12 - ands r0, r1 - cmp r0, 0 - bne _080454E0 - b _08045674 -_080454E0: - ldr r0, =0xfff0ffff - ands r1, r0 - str r1, [r2] - ldr r0, =gBattleTextBuff1 - ldr r1, =gUnknown_0831BCA0 - bl StringCopy - bl b_movescr_stack_push_cursor - ldr r1, =gBattleCommunication - movs r0, 0 - strb r0, [r1, 0x5] - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB79A - str r0, [r1] - movs r1, 0x2 - str r1, [sp, 0xC] - b _0804567A - .pool -_08045520: - ldr r4, =gBattleMons - movs r0, 0x58 - adds r5, r7, 0 - muls r5, r0 - adds r0, r4, 0 - adds r0, 0x4C - adds r6, r5, r0 - ldr r2, [r6] - ldrb r0, [r6] - cmp r0, 0 - bne _08045548 - adds r0, r4, 0 - adds r0, 0x50 - adds r0, r5, r0 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - bne _08045548 - b _08045674 -_08045548: - movs r0, 0x88 - ands r2, r0 - cmp r2, 0 - beq _08045558 - ldr r0, =gBattleTextBuff1 - ldr r1, =gUnknown_0831BC70 - bl StringCopy -_08045558: - ldr r0, [r6] - movs r2, 0x7 - mov r8, r2 - ands r0, r2 - adds r4, 0x50 - cmp r0, 0 - beq _08045578 - adds r2, r5, r4 - ldr r0, [r2] - ldr r1, =0xf7ffffff - ands r0, r1 - str r0, [r2] - ldr r0, =gBattleTextBuff1 - ldr r1, =gUnknown_0831BC78 - bl StringCopy -_08045578: - ldr r0, [r6] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0804558A - ldr r0, =gBattleTextBuff1 - ldr r1, =gUnknown_0831BC80 - bl StringCopy -_0804558A: - ldr r0, [r6] - movs r1, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0804559C - ldr r0, =gBattleTextBuff1 - ldr r1, =gUnknown_0831BC88 - bl StringCopy -_0804559C: - ldr r0, [r6] - movs r1, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080455AE - ldr r0, =gBattleTextBuff1 - ldr r1, =gUnknown_0831BC90 - bl StringCopy -_080455AE: - adds r5, r4 - ldr r0, [r5] - mov r3, r8 - ands r0, r3 - cmp r0, 0 - beq _080455C2 - ldr r0, =gBattleTextBuff1 - ldr r1, =gUnknown_0831BC98 - bl StringCopy -_080455C2: - movs r4, 0 - str r4, [r6] - ldr r0, [r5] - movs r1, 0x8 - negs r1, r1 - ands r0, r1 - str r0, [r5] - bl b_movescr_stack_push_cursor - ldr r0, =gBattleCommunication - strb r4, [r0, 0x5] - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB79A -_080455DC: - str r0, [r1] - movs r5, 0x1 - str r5, [sp, 0xC] - b _0804567A - .pool -_08045614: - ldr r0, =gBattleMons - mov r8, r0 - movs r0, 0x58 - adds r1, r7, 0 - muls r1, r0 - mov r0, r8 - adds r0, 0x18 - adds r1, r0 - movs r2, 0x6 - movs r3, 0x7 - mov r10, r3 -_0804562A: - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0x5 - bgt _08045638 - strb r2, [r1] - movs r5, 0x5 - str r5, [sp, 0xC] -_08045638: - adds r1, 0x1 - movs r0, 0x1 - negs r0, r0 - add r10, r0 - mov r3, r10 - cmp r3, 0 - bge _0804562A - ldr r5, [sp, 0xC] - cmp r5, 0 - beq _080456B8 - ldr r0, =gBattleScripting - strb r7, [r0, 0x17] - ldr r0, =gStringBank - strb r7, [r0] - bl b_movescr_stack_push_cursor - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB7B4 - str r0, [r1] - b _0804582A - .pool -_08045674: - ldr r0, [sp, 0xC] - cmp r0, 0 - beq _080456B8 -_0804567A: - ldr r0, =gBattleScripting - strb r7, [r0, 0x17] - ldr r0, =gStringBank - strb r7, [r0] - ldr r4, =gActiveBank - strb r7, [r4] - ldrb r1, [r4] - movs r0, 0x58 - muls r0, r1 -_0804568C: - ldr r1, =gBattleMons + 0x4C - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0x28 - movs r2, 0 - movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - b _0804582A - .pool -_080456B8: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r7, r0 - bcs _080456C8 - b _0804528C -_080456C8: - b _0804582A - .pool -_080456D0: - ldr r7, =gBattleMoveDamage - ldr r0, [r7] - cmp r0, 0 - bne _080456DA - b _0804582A -_080456DA: - mov r1, r8 - cmp r1, 0x1E - beq _080456EC - cmp r1, 0x3E - beq _08045794 - b _0804582A - .pool -_080456EC: - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _080456FA - b _0804582A -_080456FA: - ldr r2, =gSpecialStatuses - ldr r4, =gBankTarget - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r1, r0, 2 - adds r0, r2, 0 - adds r0, 0x8 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _08045720 - adds r0, r2, 0 - adds r0, 0xC - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _08045720 - b _0804582A -_08045720: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - ldr r2, [sp, 0x10] - cmp r0, r2 - bcs _0804582A - ldr r2, =gBattleMoves - ldr r0, =gCurrentMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x8] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0804582A - ldr r2, =gBattleMons - ldrb r1, [r4] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _0804582A - ldr r1, =gBattleCommunication - movs r0, 0x8 - strb r0, [r1, 0x3] - bl b_movescr_stack_push_cursor - movs r0, 0 - movs r1, 0 - bl sub_8048760 - bl b_movescr_stack_pop_cursor - b _0804582A - .pool -_08045794: - ldr r0, =gBattleMoveFlags - ldrb r0, [r0] - movs r5, 0x29 - ands r5, r0 - cmp r5, 0 - bne _0804582A - ldr r1, =gSpecialStatuses - ldr r4, =gBankTarget - ldrb r2, [r4] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 2 - adds r6, r1, 0x4 - adds r0, r6 - ldr r1, [r0] - cmp r1, 0 - beq _0804582A - ldr r0, =0x0000ffff - cmp r1, r0 - beq _0804582A - ldr r0, =gBankAttacker - ldrb r3, [r0] - cmp r3, r2 - beq _0804582A - ldr r2, =gBattleMons - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r1, [r0, 0x28] - ldrh r0, [r0, 0x2C] - cmp r1, r0 - beq _0804582A - cmp r1, 0 - beq _0804582A - ldr r0, =gLastUsedItem - mov r1, sp - ldrh r1, [r1, 0x14] - strh r1, [r0] - ldr r0, =gStringBank - strb r3, [r0] - ldr r0, =gBattleScripting - strb r3, [r0, 0x17] - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - ldr r1, [sp, 0x10] - bl __divsi3 - negs r0, r0 - str r0, [r7] - ldrb r1, [r4] - cmp r0, 0 - bne _0804580C - movs r0, 0x1 - negs r0, r0 - str r0, [r7] -_0804580C: - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - str r5, [r0] - bl b_movescr_stack_push_cursor - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB7F7 - str r0, [r1] - ldr r0, [sp, 0xC] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0xC] -_0804582A: - ldr r0, [sp, 0xC] - add sp, 0x2C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end berry_effects_maybe - - thumb_func_start sub_8045868 -sub_8045868: @ 8045868 - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gDisableStructs - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r2 - movs r2, 0 - strb r2, [r1, 0x10] - ldr r1, =gBattleMons - movs r2, 0x58 - adds r3, r0, 0 - muls r3, r2 - adds r1, 0x50 - adds r3, r1 - ldr r1, [r3] - ldr r2, =0xfdffffff - ands r1, r2 - str r1, [r3] - ldr r1, =gStatuses3 - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - ldr r2, =0xffffbfff - ands r1, r2 - str r1, [r0] - bx lr - .pool - thumb_func_end sub_8045868 - - thumb_func_start sub_80458B4 -sub_80458B4: @ 80458B4 - push {lr} - ldr r0, =gBattleExecBuffer - ldr r0, [r0] - cmp r0, 0 - bne _080458D0 - ldr r1, =gBattleScriptingCommandsTable - ldr r0, =gBattlescriptCurrInstr - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 -_080458D0: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80458B4 - - thumb_func_start GetMoveTarget -GetMoveTarget: @ 80458E0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 16 - lsrs r7, r0, 16 - lsls r1, 24 - lsrs r0, r1, 24 - movs r5, 0 - cmp r0, 0 - beq _080458FE - subs r0, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - b _0804590A -_080458FE: - ldr r1, =gBattleMoves - lsls r0, r7, 1 - adds r0, r7 - lsls r0, 2 - adds r0, r1 - ldrb r6, [r0, 0x6] -_0804590A: - cmp r6, 0x40 - bls _08045910 - b _08045C20 -_08045910: - lsls r0, r6, 2 - ldr r1, =_08045924 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08045924: - .4byte _08045A28 - .4byte _08045B28 - .4byte _08045C1C - .4byte _08045C20 - .4byte _08045B40 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045B28 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C1C - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045B28 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045C20 - .4byte _08045B28 -_08045A28: - ldr r0, =gBankAttacker - ldrb r0, [r0] - bl GetBankSide - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gSideTimers - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r2, r0, r1 - ldrb r0, [r2, 0x8] - cmp r0, 0 - beq _08045A5A - ldr r1, =gBattleMons - ldrb r4, [r2, 0x9] - movs r0, 0x58 - muls r0, r4 - adds r0, r1 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _08045A5A - b _08045B70 -_08045A5A: - ldr r0, =gBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r7, 1 - mov r8, r0 -_08045A6A: - bl Random - lsls r0, 16 - lsrs r0, 16 - ldr r1, =gNoOfAllBanks - ldrb r1, [r1] - bl __modsi3 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r6, =gBankAttacker - ldrb r3, [r6] - cmp r5, r3 - beq _08045A6A - adds r0, r5, 0 - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - beq _08045A6A - ldr r0, =gAbsentBankFlags - ldrb r2, [r0] - ldr r1, =gBitTable - lsls r0, r5, 2 - adds r0, r1 - ldr r0, [r0] - ands r2, r0 - cmp r2, 0 - bne _08045A6A - ldr r0, =gBattleMoves - mov r3, r8 - adds r1, r3, r7 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x2] - cmp r0, 0xD - beq _08045AB8 - b _08045C20 -_08045AB8: - ldrb r1, [r6] - str r2, [sp] - movs r0, 0x10 - movs r2, 0x1F - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - cmp r0, 0 - bne _08045ACE - b _08045C20 -_08045ACE: - ldr r2, =gBattleMons - movs r1, 0x58 - adds r0, r5, 0 - muls r0, r1 - adds r0, r2 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x1F - bne _08045AE2 - b _08045C20 -_08045AE2: - movs r4, 0x2 - eors r5, r4 - adds r0, r5, 0 - muls r0, r1 - adds r0, r2 - adds r0, 0x20 - ldrb r1, [r0] - adds r0, r5, 0 - bl RecordAbilityBattle - ldr r1, =gSpecialStatuses - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - orrs r1, r4 - strb r1, [r0] - b _08045C20 - .pool -_08045B28: - ldr r0, =gBankAttacker - ldrb r0, [r0] - bl GetBankIdentity - adds r1, r0, 0 - movs r2, 0x1 - movs r0, 0x1 - ands r0, r1 - eors r0, r2 - b _08045BD2 - .pool -_08045B40: - ldr r0, =gBankAttacker - ldrb r0, [r0] - bl GetBankSide - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gSideTimers - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r2, r0, r1 - ldrb r0, [r2, 0x8] - cmp r0, 0 - beq _08045B80 - ldr r1, =gBattleMons - ldrb r4, [r2, 0x9] - movs r0, 0x58 - muls r0, r4 - adds r0, r1 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _08045B80 -_08045B70: - adds r5, r4, 0 - b _08045C20 - .pool -_08045B80: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r4, 0x1 - ands r0, r4 - cmp r0, 0 - beq _08045BFC - movs r0, 0x4 - ands r6, r0 - cmp r6, 0 - beq _08045BFC - ldr r0, =gBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _08045BC0 - bl Random - adds r1, r4, 0 - ands r1, r0 - cmp r1, 0 - beq _08045BBC - movs r0, 0x1 - b _08045BD2 - .pool -_08045BBC: - movs r0, 0x3 - b _08045BD2 -_08045BC0: - bl Random - adds r1, r4, 0 - ands r1, r0 - cmp r1, 0 - beq _08045BD0 - movs r0, 0 - b _08045BD2 -_08045BD0: - movs r0, 0x2 -_08045BD2: - bl GetBankByPlayerAI - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gAbsentBankFlags - ldrb r1, [r0] - ldr r2, =gBitTable - lsls r0, r5, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08045C20 - movs r0, 0x2 - eors r5, r0 - b _08045C20 - .pool -_08045BFC: - ldr r0, =gBankAttacker - ldrb r0, [r0] - bl GetBankIdentity - adds r1, r0, 0 - movs r2, 0x1 - movs r0, 0x1 - ands r0, r1 - eors r0, r2 - bl GetBankByPlayerAI - lsls r0, 24 - lsrs r5, r0, 24 - b _08045C20 - .pool -_08045C1C: - ldr r0, =gBankAttacker - ldrb r5, [r0] -_08045C20: - ldr r0, =gBankAttacker - ldrb r0, [r0] - ldr r1, =gBattleStruct - ldr r1, [r1] - adds r0, r1 - strb r5, [r0, 0xC] - adds r0, r5, 0 - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end GetMoveTarget - - thumb_func_start sub_8045C44 -sub_8045C44: @ 8045C44 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08045C8A - ldr r0, =gBattlePartyID - lsls r4, 1 - adds r5, r4, r0 - ldrh r0, [r5] - movs r7, 0x64 - muls r0, r7 - ldr r6, =gPlayerParty - adds r0, r6 - movs r1, 0xB - movs r2, 0 - bl GetMonData - movs r1, 0xCD - lsls r1, 1 - cmp r0, r1 - beq _08045C98 - ldrh r0, [r5] - muls r0, r7 - adds r0, r6 - movs r1, 0xB - movs r2, 0 - bl GetMonData - cmp r0, 0x97 - beq _08045C98 -_08045C8A: - movs r0, 0x1 - b _08045CAE - .pool -_08045C98: - ldr r0, =gBattlePartyID - adds r0, r4, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x50 - movs r2, 0 - bl GetMonData -_08045CAE: - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8045C44 - - thumb_func_start sub_8045CBC -sub_8045CBC: @ 8045CBC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x10 - movs r6, 0 - ldr r5, =gBattleTypeFlags - ldr r0, [r5] - ldr r1, =0x02000002 - ands r0, r1 - cmp r0, 0 - bne _08045DAC - ldr r4, =gBankAttacker - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08045DAC - ldrb r0, [r4] - bl sub_8045C44 - cmp r0, 0 - beq _08045D76 - ldr r0, [r5] - movs r1, 0x80 - lsls r1, 15 - ands r0, r1 - cmp r0, 0 - beq _08045D08 - ldrb r0, [r4] - bl GetBankIdentity - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - beq _08045DAC -_08045D08: - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - ldr r0, =0x003f0100 - ands r0, r1 - cmp r0, 0 - bne _08045DAC - movs r0, 0x80 - lsls r0, 17 - ands r1, r0 - cmp r1, 0 - bne _08045DAC - ldr r2, =gBattleMons - ldr r0, =gBankAttacker - ldrb r1, [r0] - movs r0, 0x58 - muls r1, r0 - adds r0, r2, 0 - adds r0, 0x54 - adds r0, r1, r0 - ldr r0, [r0] - adds r2, 0x3C - adds r1, r2 - bl IsOtherTrainer - lsls r0, 24 - cmp r0, 0 - beq _08045DAC - ldr r0, =0x0000086e - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _08045DAC - movs r6, 0xA - ldr r0, =0x00000868 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _08045D5A - movs r6, 0x1E -_08045D5A: - ldr r0, =0x0000086a - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _08045D68 - movs r6, 0x32 -_08045D68: - ldr r0, =0x0000086c - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _08045D76 - movs r6, 0x46 -_08045D76: - ldr r5, =gBattleMons - ldr r0, =gBankAttacker - mov r8, r0 - ldrb r0, [r0] - movs r7, 0x58 - muls r0, r7 - adds r0, r5 - adds r0, 0x2A - ldrb r0, [r0] - cmp r0, r6 - bls _08045DAC - bl Random - movs r1, 0xFF - ands r1, r0 - mov r2, r8 - ldrb r0, [r2] - adds r2, r0, 0 - muls r2, r7 - adds r0, r2, r5 - adds r0, 0x2A - ldrb r0, [r0] - adds r0, r6 - muls r0, r1 - asrs r4, r0, 8 - cmp r4, r6 - bge _08045DD4 -_08045DAC: - movs r0, 0 - b _08045FD0 - .pool -_08045DD4: - ldr r3, =gCurrentMove - ldrh r0, [r3] - cmp r0, 0x63 - bne _08045DEA - adds r0, r5, 0 - adds r0, 0x50 - adds r0, r2, r0 - ldr r1, [r0] - ldr r2, =0xff7fffff - ands r1, r2 - str r1, [r0] -_08045DEA: - mov r1, r8 - ldrb r0, [r1] - muls r0, r7 - adds r1, r5, 0 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - beq _08045E20 - ldrh r0, [r3] - cmp r0, 0xAD - beq _08045E0A - cmp r0, 0xD6 - bne _08045E20 -_08045E0A: - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB695 - b _08045F7A - .pool -_08045E20: - bl Random - movs r5, 0xFF - adds r1, r5, 0 - ands r1, r0 - ldr r7, =gBattleMons - ldr r2, =gBankAttacker - mov r9, r2 - ldrb r3, [r2] - movs r0, 0x58 - mov r8, r0 - mov r0, r8 - muls r0, r3 - adds r0, r7 - adds r0, 0x2A - ldrb r2, [r0] - adds r0, r2, r6 - muls r0, r1 - asrs r4, r0, 8 - cmp r4, r6 - bge _08045EE8 - ldr r6, =gBitTable - ldr r5, =gCurrMovePos - ldrb r0, [r5] - lsls r0, 2 - adds r0, r6 - ldrb r1, [r0] - adds r0, r3, 0 - movs r2, 0xFF - bl CheckMoveLimitations - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bne _08045E68 - b _08045F6A -_08045E68: - ldr r1, =gUnknown_020241E9 - mov r8, r1 - movs r7, 0x3 -_08045E6E: - bl Random - ands r0, r7 - mov r2, r8 - strb r0, [r2] - strb r0, [r5] - ldrb r0, [r5] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - ands r0, r4 - cmp r0, 0 - bne _08045E6E - ldr r4, =gRandomMove - ldr r3, =gBattleMons - ldr r0, =gCurrMovePos - ldrb r0, [r0] - lsls r0, 1 - ldr r1, =gBankAttacker - ldrb r2, [r1] - movs r1, 0x58 - muls r1, r2 - adds r0, r1 - adds r3, 0xC - adds r0, r3 - ldrh r0, [r0] - strh r0, [r4] - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB6A5 - str r0, [r1] - ldrh r0, [r4] - movs r1, 0 - bl GetMoveTarget - ldr r1, =gBankTarget - strb r0, [r1] - ldr r2, =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 14 - b _08045FCA - .pool -_08045EE8: - subs r0, r2, r6 - lsls r0, 24 - lsrs r6, r0, 24 - bl Random - adds r4, r5, 0 - ands r4, r0 - cmp r4, r6 - bge _08045F64 - mov r1, r9 - ldrb r0, [r1] - mov r1, r8 - muls r1, r0 - adds r0, r7, 0 - adds r0, 0x4C - adds r0, r1, r0 - ldr r0, [r0] - ands r0, r5 - cmp r0, 0 - bne _08045F64 - adds r0, r1, r7 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x48 - beq _08045F64 - cmp r0, 0xF - beq _08045F64 - movs r2, 0 - ldr r0, =gNoOfAllBanks - ldrb r3, [r0] - mov r8, r0 - cmp r2, r3 - bge _08045F4A - ldr r0, [r7, 0x50] - movs r1, 0x70 - ands r0, r1 - cmp r0, 0 - bne _08045F4A - adds r1, r7, 0 - adds r1, 0x50 - movs r5, 0x70 -_08045F3A: - adds r1, 0x58 - adds r2, 0x1 - cmp r2, r3 - bge _08045F4A - ldr r0, [r1] - ands r0, r5 - cmp r0, 0 - beq _08045F3A -_08045F4A: - mov r0, r8 - ldrb r0, [r0] - cmp r2, r0 - bne _08045F64 - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB6D9 - b _08045F7A - .pool -_08045F64: - subs r4, r6 - cmp r4, r6 - blt _08045F8C -_08045F6A: - bl Random - ldr r2, =gBattleCommunication - movs r1, 0x3 - ands r1, r0 - strb r1, [r2, 0x5] - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB6AD -_08045F7A: - str r0, [r1] - movs r0, 0x1 - b _08045FD0 - .pool -_08045F8C: - ldr r4, =gBankAttacker - ldrb r1, [r4] - movs r0, 0x58 - muls r1, r0 - ldr r0, =gBattleMons - adds r1, r0 - movs r0, 0x28 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - ldrb r0, [r4] - str r0, [sp, 0x8] - ldrb r0, [r4] - str r0, [sp, 0xC] - adds r0, r1, 0 - movs r2, 0x1 - movs r3, 0 - bl CalculateBaseDamage - ldr r1, =gBattleMoveDamage - str r0, [r1] - ldr r1, =gBankTarget - ldrb r0, [r4] - strb r0, [r1] - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB6F0 - str r0, [r1] - ldr r2, =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 12 -_08045FCA: - orrs r0, r1 - str r0, [r2] - movs r0, 0x2 -_08045FD0: - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8045CBC - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_4.s b/asm/battle_4.s deleted file mode 100644 index 8651b9724..000000000 --- a/asm/battle_4.s +++ /dev/null @@ -1,31160 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start atk00_attackcanceler -atk00_attackcanceler: @ 8045FFC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - ldr r0, =gBattleOutcome - ldrb r0, [r0] - cmp r0, 0 - beq _08046020 - ldr r1, =gFightStateTracker - movs r0, 0xC - strb r0, [r1] - b _08046398 - .pool -_08046020: - ldr r2, =gBattleMons - ldr r0, =gBankAttacker - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _08046064 - ldr r2, =gHitMarker - ldr r1, [r2] - movs r0, 0x80 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - bne _08046064 - movs r0, 0x80 - lsls r0, 12 - orrs r1, r0 - str r1, [r2] - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082D8A4E - b _08046396 - .pool -_08046064: - bl sub_8041A6C - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _08046072 - b _08046398 -_08046072: - ldr r0, =gBankTarget - ldrb r1, [r0] - str r2, [sp] - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - cmp r0, 0 - beq _0804608A - b _08046398 -_0804608A: - ldr r4, =gBattleMons - ldr r0, =gCurrMovePos - ldrb r1, [r0] - ldr r3, =gBankAttacker - ldrb r2, [r3] - movs r0, 0x58 - muls r2, r0 - adds r1, r2 - adds r0, r4, 0 - adds r0, 0x24 - adds r1, r0 - ldrb r0, [r1] - ldr r5, =gHitMarker - cmp r0, 0 - bne _08046108 - ldr r0, =gCurrentMove - ldrh r0, [r0] - cmp r0, 0xA5 - beq _08046108 - ldr r0, [r5] - ldr r1, =0x00800200 - ands r0, r1 - cmp r0, 0 - bne _08046108 - adds r0, r4, 0 - adds r0, 0x50 - adds r0, r2, r0 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 5 - ands r0, r1 - cmp r0, 0 - bne _08046108 - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB07A - str r0, [r1] - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - b _08046398 - .pool -_08046108: - ldr r0, [r5] - ldr r1, =0xff7fffff - ands r0, r1 - str r0, [r5] - movs r6, 0x80 - lsls r6, 18 - ands r0, r6 - cmp r0, 0 - bne _08046160 - ldrb r1, [r3] - movs r0, 0x58 - muls r0, r1 - adds r1, r4, 0 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 5 - ands r0, r1 - cmp r0, 0 - bne _08046160 - bl sub_8045CBC - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _08046160 - cmp r2, 0x2 - bne _08046150 - ldr r0, [r5] - orrs r0, r6 - str r0, [r5] - b _08046398 - .pool -_08046150: - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] - b _08046398 - .pool -_08046160: - ldr r2, =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 18 - orrs r0, r1 - str r0, [r2] - ldr r2, =gProtectStructs - ldr r1, =gBankTarget - ldrb r3, [r1] - lsls r0, r3, 4 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 27 - mov r8, r1 - mov r9, r2 - cmp r0, 0 - bge _080461E8 - ldr r2, =gBattleMoves - ldr r0, =gCurrentMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x8] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080461E8 - ldr r0, =gBankAttacker - ldrb r0, [r0] - ldr r2, =0x00000115 - adds r1, r3, 0 - bl sub_803F480 - mov r0, r8 - ldrb r1, [r0] - lsls r1, 4 - add r1, r9 - ldrb r2, [r1] - movs r0, 0x11 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - bl b_movescr_stack_push_cursor - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB194 - b _08046396 - .pool -_080461E8: - movs r2, 0 - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r2, r0 - bge _0804622A - ldr r6, =gProtectStructs - ldr r1, =gBattleMoves - mov r12, r1 - adds r5, r0, 0 - ldr r7, =gTurnOrder -_080461FC: - adds r4, r2, r7 - ldrb r3, [r4] - lsls r0, r3, 4 - adds r0, r6 - ldrb r0, [r0] - lsls r0, 26 - cmp r0, 0 - bge _08046224 - ldr r0, =gCurrentMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - add r0, r12 - ldrb r1, [r0, 0x8] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08046224 - b _08046350 -_08046224: - adds r2, 0x1 - cmp r2, r5 - blt _080461FC -_0804622A: - ldr r0, =gSpecialStatuses - mov r1, r8 - ldrb r2, [r1] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r3, [r1] - lsls r0, r3, 30 - cmp r0, 0 - bge _08046288 - movs r0, 0x3 - negs r0, r0 - ands r0, r3 - strb r0, [r1] - ldr r4, =gLastUsedAbility - movs r0, 0x1F - strb r0, [r4] - bl b_movescr_stack_push_cursor - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB53E - str r0, [r1] - mov r1, r8 - ldrb r0, [r1] - ldrb r1, [r4] - bl RecordAbilityBattle - b _08046398 - .pool -_08046288: - lsls r0, r2, 4 - add r0, r9 - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - bne _08046296 - b _08046390 -_08046296: - ldr r1, =gBattleMoves - ldr r2, =gCurrentMove - ldrh r3, [r2] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x8] - movs r0, 0x2 - ands r0, r1 - adds r4, r2, 0 - cmp r0, 0 - beq _08046390 - cmp r3, 0xAE - bne _080462D4 - ldr r2, =gBattleMons - ldr r0, =gBankAttacker - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r1, r0, r2 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0x7 - beq _080462D4 - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0x7 - bne _08046390 -_080462D4: - ldrh r0, [r4] - bl sub_8052F48 - lsls r0, 24 - cmp r0, 0 - beq _080462FA - ldr r1, =gBattleMons - ldr r0, =gBankAttacker - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 5 - ands r0, r1 - cmp r0, 0 - beq _08046390 -_080462FA: - ldr r0, =gBankAttacker - ldrb r0, [r0] - bl CancelMultiTurnMoves - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gUnknown_02024250 - ldr r3, =gBankTarget - ldrb r0, [r3] - lsls r0, 1 - adds r0, r1 - movs r2, 0 - strh r2, [r0] - ldr r1, =gUnknown_02024258 - ldrb r0, [r3] - lsls r0, 1 - adds r0, r1 - strh r2, [r0] - ldr r1, =gBattleCommunication - movs r0, 0x1 - strb r0, [r1, 0x6] - b _08046390 - .pool -_08046350: - ldr r0, =gBankAttacker - ldrb r0, [r0] - ldr r2, =0x00000121 - adds r1, r3, 0 - bl sub_803F480 - ldrb r1, [r4] - lsls r1, 4 - adds r1, r6 - ldrb r2, [r1] - movs r0, 0x21 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r1, =gBattleScripting - ldrb r0, [r4] - strb r0, [r1, 0x17] - bl b_movescr_stack_push_cursor - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB1AC - b _08046396 - .pool -_08046390: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 -_08046396: - str r0, [r1] -_08046398: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk00_attackcanceler - - thumb_func_start mcmd_jump_if_move_not_executed -mcmd_jump_if_move_not_executed: @ 80463AC - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r6, r1, 16 - ldr r1, =gBattlescriptCurrInstr - ldr r5, [r1] - adds r4, r5, r0 - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _0804640C - ldr r1, =gUnknown_02024250 - ldr r3, =gBankTarget - ldrb r0, [r3] - lsls r0, 1 - adds r0, r1 - movs r2, 0 - strh r2, [r0] - ldr r1, =gUnknown_02024258 - ldrb r0, [r3] - lsls r0, 1 - adds r0, r1 - strh r2, [r0] - ldrb r4, [r5, 0x1] - ldrb r0, [r5, 0x2] - lsls r0, 8 - orrs r4, r0 - ldrb r0, [r5, 0x3] - lsls r0, 16 - orrs r4, r0 - ldrb r0, [r5, 0x4] - lsls r0, 24 - orrs r4, r0 - b _08046426 - .pool -_0804640C: - bl b_feature_update_destiny_bond - ldr r0, =gBankTarget - ldrb r1, [r0] - str r6, [sp] - movs r0, 0x3 - movs r2, 0 - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - cmp r0, 0 - bne _0804642A -_08046426: - ldr r0, =gBattlescriptCurrInstr - str r4, [r0] -_0804642A: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end mcmd_jump_if_move_not_executed - - thumb_func_start atk40_jump_if_move_affected_by_protect -atk40_jump_if_move_affected_by_protect: @ 804643C - push {lr} - ldr r1, =gProtectStructs - ldr r0, =gBankTarget - ldrb r0, [r0] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - beq _0804649C - ldr r2, =gBattleMoves - ldr r0, =gCurrentMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x8] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0804649C - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x5 - movs r1, 0 - bl mcmd_jump_if_move_not_executed - ldr r1, =gBattleCommunication - movs r0, 0x1 - strb r0, [r1, 0x6] - b _080464A4 - .pool -_0804649C: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_080464A4: - pop {r0} - bx r0 - .pool - thumb_func_end atk40_jump_if_move_affected_by_protect - - thumb_func_start sub_80464AC -sub_80464AC: @ 80464AC - push {r4,lr} - lsls r0, 16 - lsrs r3, r0, 16 - movs r4, 0 - ldr r1, =gProtectStructs - ldr r0, =gBankTarget - ldrb r0, [r0] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - beq _080464F8 - ldr r2, =gBattleMoves - ldr r0, =gCurrentMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x8] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080464F8 - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x7 - adds r1, r3, 0 - bl mcmd_jump_if_move_not_executed - ldr r1, =gBattleCommunication - movs r0, 0x1 - strb r0, [r1, 0x6] - movs r4, 0x1 -_080464F8: - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80464AC - - thumb_func_start sub_8046518 -sub_8046518: @ 8046518 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r2, =gStatuses3 - ldr r3, =gBankTarget - ldrb r4, [r3] - lsls r0, r4, 2 - adds r0, r2 - ldr r1, [r0] - movs r0, 0x18 - ands r1, r0 - adds r6, r2, 0 - cmp r1, 0 - beq _0804654A - ldr r1, =gDisableStructs - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - adds r0, r1 - ldr r1, =gBankAttacker - ldrb r0, [r0, 0x15] - ldrb r1, [r1] - cmp r0, r1 - beq _08046634 -_0804654A: - ldr r0, =gHitMarker - ldr r1, [r0] - movs r2, 0x80 - lsls r2, 9 - ands r1, r2 - adds r2, r0, 0 - cmp r1, 0 - bne _08046590 - ldrb r0, [r3] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08046590 -_0804656A: - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] - b _08046634 - .pool -_08046590: - ldr r0, [r2] - ldr r1, =0xfffeffff - ands r0, r1 - str r0, [r2] - movs r1, 0x80 - lsls r1, 10 - ands r0, r1 - cmp r0, 0 - bne _080465B2 - ldrb r0, [r3] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - movs r1, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0804656A -_080465B2: - ldr r0, [r2] - ldr r1, =0xfffdffff - ands r0, r1 - str r0, [r2] - movs r1, 0x80 - lsls r1, 11 - ands r0, r1 - cmp r0, 0 - bne _080465D2 - ldrb r0, [r3] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - ands r0, r1 - cmp r0, 0 - bne _0804656A -_080465D2: - ldr r0, [r2] - ldr r1, =0xfffbffff - ands r0, r1 - str r0, [r2] - movs r0, 0 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0xD - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - lsrs r0, 24 - lsls r4, r5, 1 - cmp r0, 0 - bne _08046622 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0x4D - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - cmp r0, 0 - bne _08046622 - ldr r0, =gBattleWeather - ldrh r1, [r0] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - beq _08046622 - ldr r0, =gBattleMoves - adds r1, r4, r5 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0x98 - beq _08046634 -_08046622: - ldr r1, =gBattleMoves - adds r0, r4, r5 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x11 - beq _08046634 - cmp r0, 0x4E - bne _08046654 -_08046634: - movs r0, 0x7 - adds r1, r5, 0 - bl mcmd_jump_if_move_not_executed - movs r0, 0x1 - b _08046656 - .pool -_08046654: - movs r0, 0 -_08046656: - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8046518 - - thumb_func_start atk01_accuracycheck -atk01_accuracycheck: @ 8046660 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - ldr r0, =gBattlescriptCurrInstr - ldr r5, [r0] - ldrb r6, [r5, 0x5] - ldrb r1, [r5, 0x6] - lsls r1, 8 - orrs r6, r1 - adds r1, r6, 0x2 - lsls r1, 16 - lsrs r1, 16 - adds r7, r0, 0 - cmp r1, 0x1 - bhi _0804671C - ldr r2, =gStatuses3 - ldr r3, =gBankTarget - ldrb r4, [r3] - lsls r0, r4, 2 - adds r0, r2 - ldr r1, [r0] - movs r0, 0x18 - ands r1, r0 - cmp r1, 0 - beq _080466D0 - ldr r0, =0x0000ffff - cmp r6, r0 - bne _080466D0 - ldr r1, =gDisableStructs - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - adds r0, r1 - ldr r1, =gBankAttacker - ldrb r0, [r0, 0x15] - ldrb r1, [r1] - cmp r0, r1 - bne _080466D0 - adds r0, r5, 0x7 - str r0, [r7] - b _080469D2 - .pool -_080466D0: - ldrb r0, [r3] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - ldr r1, =0x000400c0 - ands r0, r1 - cmp r0, 0 - beq _08046700 - ldr r2, [r7] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r7] - b _080469D2 - .pool -_08046700: - movs r0, 0 - bl sub_80464AC - lsls r0, 24 - cmp r0, 0 - beq _0804670E - b _080469D2 -_0804670E: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x7 - str r0, [r1] - b _080469D2 - .pool -_0804671C: - cmp r6, 0 - bne _08046724 - ldr r0, =gCurrentMove - ldrh r6, [r0] -_08046724: - ldr r0, =gBattleStruct - ldr r0, [r0] - ldrb r0, [r0, 0x13] - cmp r0, 0 - beq _08046744 - movs r1, 0x3F - mov r10, r1 - mov r2, r10 - ands r2, r0 - mov r10, r2 - b _08046752 - .pool -_08046744: - ldr r1, =gBattleMoves - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x2] - mov r10, r0 -_08046752: - adds r0, r6, 0 - bl sub_80464AC - lsls r0, 24 - cmp r0, 0 - beq _08046760 - b _080469D2 -_08046760: - adds r0, r6, 0 - bl sub_8046518 - lsls r0, 24 - cmp r0, 0 - beq _0804676E - b _080469D2 -_0804676E: - ldr r3, =gBattleMons - ldr r0, =gBankTarget - ldrb r0, [r0] - movs r2, 0x58 - adds r4, r0, 0 - muls r4, r2 - adds r0, r3, 0 - adds r0, 0x50 - adds r0, r4, r0 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 22 - ands r0, r1 - cmp r0, 0 - beq _080467A8 - ldr r0, =gBankAttacker - ldrb r0, [r0] - muls r0, r2 - adds r0, r3 - ldrb r5, [r0, 0x1E] - b _080467BE - .pool -_080467A8: - ldr r0, =gBankAttacker - ldrb r0, [r0] - muls r0, r2 - adds r0, r3 - ldrb r0, [r0, 0x1E] - adds r0, 0x6 - adds r1, r4, r3 - ldrb r1, [r1, 0x1F] - subs r0, r1 - lsls r0, 24 - lsrs r5, r0, 24 -_080467BE: - lsls r0, r5, 24 - cmp r0, 0 - bge _080467C6 - movs r5, 0 -_080467C6: - lsls r0, r5, 24 - asrs r0, 24 - cmp r0, 0xC - ble _080467D0 - movs r5, 0xC -_080467D0: - ldr r1, =gBattleMoves - lsls r4, r6, 1 - adds r0, r4, r6 - lsls r0, 2 - adds r7, r0, r1 - ldrb r3, [r7, 0x3] - mov r8, r3 - movs r0, 0 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0xD - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - lsrs r0, 24 - str r4, [sp, 0x4] - cmp r0, 0 - bne _08046822 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0x4D - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - cmp r0, 0 - bne _08046822 - ldr r0, =gBattleWeather - ldrh r1, [r0] - movs r0, 0x60 - ands r0, r1 - cmp r0, 0 - beq _08046822 - ldrb r0, [r7] - cmp r0, 0x98 - bne _08046822 - movs r0, 0x32 - mov r8, r0 -_08046822: - ldr r1, =gAccuracyStageRatios - lsls r0, r5, 24 - asrs r0, 22 - adds r0, r1 - ldrb r1, [r0] - mov r4, r8 - muls r4, r1 - ldrb r1, [r0, 0x1] - adds r0, r4, 0 - bl __divsi3 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r7, =gBattleMons - ldr r0, =gBankAttacker - ldrb r0, [r0] - movs r5, 0x58 - muls r0, r5 - adds r0, r7 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0xE - bne _08046860 - lsls r0, r4, 6 - adds r0, r4 - lsls r0, 1 - movs r1, 0x64 - bl __divsi3 - lsls r0, 16 - lsrs r4, r0, 16 -_08046860: - movs r0, 0 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0xD - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _080468B8 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0x4D - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - cmp r0, 0 - bne _080468B8 - ldr r0, =gBankTarget - ldrb r0, [r0] - muls r0, r5 - adds r0, r7 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x8 - bne _080468B8 - ldr r0, =gBattleWeather - ldrh r1, [r0] - movs r0, 0x18 - ands r0, r1 - cmp r0, 0 - beq _080468B8 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 4 - movs r1, 0x64 - bl __divsi3 - lsls r0, 16 - lsrs r4, r0, 16 -_080468B8: - ldr r2, =gBattleMons - ldr r0, =gBankAttacker - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x20 - ldrb r0, [r0] - mov r9, r2 - cmp r0, 0x37 - bne _080468E4 - mov r1, r10 - cmp r1, 0x8 - bhi _080468E4 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 4 - movs r1, 0x64 - bl __divsi3 - lsls r0, 16 - lsrs r4, r0, 16 -_080468E4: - ldr r2, =gBankTarget - mov r8, r2 - ldrb r2, [r2] - movs r7, 0x58 - adds r0, r2, 0 - muls r0, r7 - mov r3, r9 - adds r1, r0, r3 - ldrh r0, [r1, 0x2E] - cmp r0, 0xAF - bne _08046928 - ldr r1, =gEnigmaBerries - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r5, [r0, 0x7] - ldrb r2, [r0, 0x1A] - b _08046944 - .pool -_08046928: - ldrh r0, [r1, 0x2E] - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r5, r0, 24 - mov r1, r8 - ldrb r0, [r1] - muls r0, r7 - add r0, r9 - ldrh r0, [r0, 0x2E] - bl ItemId_GetHoldEffectParam - lsls r0, 24 - lsrs r2, r0, 24 -_08046944: - ldr r0, =gStringBank - ldr r1, =gBankTarget - ldrb r1, [r1] - strb r1, [r0] - cmp r5, 0x16 - bne _08046960 - movs r0, 0x64 - subs r0, r2 - muls r0, r4 - movs r1, 0x64 - bl __divsi3 - lsls r0, 16 - lsrs r4, r0, 16 -_08046960: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - adds r0, 0x1 - cmp r0, r4 - ble _080469CA - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080469C0 - ldr r1, =gBattleMoves - ldr r2, [sp, 0x4] - adds r0, r2, r6 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x6] - cmp r0, 0x8 - beq _080469A2 - cmp r0, 0x20 - bne _080469C0 -_080469A2: - ldr r1, =gBattleCommunication - movs r0, 0x2 - b _080469C4 - .pool -_080469C0: - ldr r1, =gBattleCommunication - movs r0, 0 -_080469C4: - strb r0, [r1, 0x6] - bl b_wonderguard_and_levitate -_080469CA: - movs r0, 0x7 - adds r1, r6, 0 - bl mcmd_jump_if_move_not_executed -_080469D2: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk01_accuracycheck - - thumb_func_start atk02_attackstring -atk02_attackstring: @ 80469E8 - push {r4,r5,lr} - ldr r0, =gBattleExecBuffer - ldr r5, [r0] - cmp r5, 0 - bne _08046A20 - ldr r4, =gHitMarker - ldr r0, [r4] - movs r1, 0xC0 - lsls r1, 3 - ands r0, r1 - cmp r0, 0 - bne _08046A14 - ldr r0, =gBankAttacker - ldrb r1, [r0] - movs r0, 0x4 - bl b_std_message - ldr r0, [r4] - movs r1, 0x80 - lsls r1, 3 - orrs r0, r1 - str r0, [r4] -_08046A14: - ldr r0, =gBattlescriptCurrInstr - ldr r1, [r0] - adds r1, 0x1 - str r1, [r0] - ldr r0, =gBattleCommunication - strb r5, [r0, 0x7] -_08046A20: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk02_attackstring - - thumb_func_start atk03_ppreduce -atk03_ppreduce: @ 8046A3C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - movs r6, 0x1 - ldr r0, =gBattleExecBuffer - ldr r0, [r0] - cmp r0, 0 - beq _08046A54 - b _08046BEE -_08046A54: - ldr r1, =gSpecialStatuses - ldr r2, =gBankAttacker - ldrb r3, [r2] - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 26 - lsrs r4, r0, 31 - mov r9, r2 - cmp r4, 0 - bne _08046AF6 - ldr r2, =gBattleMoves - ldr r0, =gCurrentMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x6] - cmp r0, 0x20 - beq _08046AA6 - cmp r0, 0x20 - bgt _08046AA0 - cmp r0, 0x8 - beq _08046ABC - b _08046AD6 - .pool -_08046AA0: - cmp r0, 0x40 - beq _08046ABC - b _08046AD6 -_08046AA6: - str r4, [sp] - movs r0, 0x12 - adds r1, r3, 0 - movs r2, 0x2E - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0x1 - b _08046AF6 -_08046ABC: - mov r0, r9 - ldrb r1, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0x10 - movs r2, 0x2E - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - lsrs r0, 24 - adds r6, r0 - b _08046AF6 -_08046AD6: - ldr r1, =gBankTarget - mov r2, r9 - ldrb r0, [r2] - ldrb r7, [r1] - cmp r0, r7 - beq _08046AF6 - ldr r2, =gBattleMons - ldrb r1, [r1] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x2E - bne _08046AF6 - adds r6, 0x1 -_08046AF6: - ldr r0, =gHitMarker - ldr r4, [r0] - movs r0, 0xA0 - lsls r0, 4 - ands r4, r0 - cmp r4, 0 - bne _08046BDC - ldr r2, =gBattleMons - ldr r3, =gCurrMovePos - ldr r1, =gBankAttacker - ldrb r5, [r1] - movs r0, 0x58 - mov r8, r0 - mov r0, r8 - muls r0, r5 - ldrb r7, [r3] - adds r0, r7 - movs r7, 0x24 - adds r7, r2 - mov r12, r7 - add r0, r12 - ldrb r0, [r0] - mov r9, r1 - mov r10, r2 - adds r7, r3, 0 - cmp r0, 0 - beq _08046BDC - ldr r0, =gProtectStructs - lsls r1, r5, 4 - adds r1, r0 - ldrb r0, [r1, 0x2] - movs r2, 0x8 - orrs r0, r2 - strb r0, [r1, 0x2] - mov r1, r9 - ldrb r0, [r1] - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - ldrb r1, [r7] - adds r0, r1 - mov r1, r12 - adds r2, r0, r1 - ldrb r0, [r2] - cmp r0, r6 - ble _08046B70 - subs r0, r6 - strb r0, [r2] - b _08046B72 - .pool -_08046B70: - strb r4, [r2] -_08046B72: - mov r2, r9 - ldrb r3, [r2] - movs r4, 0x58 - adds r0, r3, 0 - muls r0, r4 - mov r1, r10 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 14 - ands r0, r1 - cmp r0, 0 - bne _08046BDC - ldr r1, =gDisableStructs - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x18] - lsrs r1, 4 - ldr r2, =gBitTable - ldrb r0, [r7] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _08046BDC - ldr r0, =gActiveBank - strb r3, [r0] - ldrb r1, [r7] - adds r1, 0x9 - lsls r1, 24 - lsrs r1, 24 - mov r2, r9 - ldrb r0, [r2] - muls r0, r4 - mov r2, r10 - adds r2, 0x24 - adds r0, r2 - ldrb r7, [r7] - adds r0, r7 - str r0, [sp] - movs r0, 0 - movs r2, 0 - movs r3, 0x1 - bl dp01_build_cmdbuf_x02_a_b_varargs - mov r7, r9 - ldrb r0, [r7] - bl dp01_battle_side_mark_buffer_for_execution -_08046BDC: - ldr r2, =gHitMarker - ldr r0, [r2] - ldr r1, =0xfffff7ff - ands r0, r1 - str r0, [r2] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] -_08046BEE: - 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 atk03_ppreduce - - thumb_func_start atk04_critcalc -atk04_critcalc: @ 8046C18 - push {r4-r7,lr} - ldr r1, =gBattleMons - ldr r0, =gBankAttacker - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - ldrh r0, [r0, 0x2E] - cmp r0, 0xAF - bne _08046C48 - ldr r1, =gEnigmaBerries - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r6, [r0, 0x7] - b _08046C50 - .pool -_08046C48: - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r6, r0, 24 -_08046C50: - ldr r1, =gStringBank - ldr r3, =gBankAttacker - ldrb r0, [r3] - strb r0, [r1] - ldr r4, =gBattleMons - ldrb r1, [r3] - movs r0, 0x58 - adds r7, r1, 0 - muls r7, r0 - adds r0, r4, 0 - adds r0, 0x50 - adds r0, r7, r0 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 13 - ands r0, r1 - negs r0, r0 - asrs r5, r0, 31 - movs r0, 0x2 - ands r5, r0 - ldr r2, =gBattleMoves - ldr r0, =gCurrentMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - mov r12, r3 - cmp r1, 0x2B - bne _08046C90 - adds r5, 0x1 -_08046C90: - adds r0, r5, 0 - cmp r1, 0x4B - bne _08046C98 - adds r0, 0x1 -_08046C98: - cmp r1, 0xC8 - bne _08046C9E - adds r0, 0x1 -_08046C9E: - adds r2, r0, 0 - cmp r1, 0xD1 - bne _08046CA6 - adds r2, 0x1 -_08046CA6: - movs r1, 0 - cmp r6, 0x3F - bne _08046CB6 - adds r0, r7, r4 - ldrh r0, [r0] - cmp r0, 0x71 - bne _08046CB6 - movs r1, 0x1 -_08046CB6: - lsls r5, r1, 1 - movs r3, 0 - cmp r6, 0x42 - bne _08046CD0 - mov r0, r12 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r4 - ldrh r0, [r0] - cmp r0, 0x53 - bne _08046CD0 - movs r3, 0x1 -_08046CD0: - lsls r1, r3, 1 - cmp r6, 0x29 - bne _08046CF0 - adds r0, r5, 0x1 - adds r0, r2, r0 - b _08046CF2 - .pool -_08046CF0: - adds r0, r2, r5 -_08046CF2: - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - adds r5, r0, 0 - cmp r5, 0x4 - bls _08046D00 - movs r5, 0x4 -_08046D00: - ldr r0, =gBankTarget - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r4 - adds r0, 0x20 - ldrb r4, [r0] - cmp r4, 0x4 - beq _08046D70 - cmp r4, 0x4B - beq _08046D70 - ldr r1, =gStatuses3 - mov r2, r12 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - bne _08046D70 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x84 - lsls r1, 2 - ands r0, r1 - cmp r0, 0 - bne _08046D70 - bl Random - ldr r2, =gCriticalHitChance - lsls r1, r5, 1 - adds r1, r2 - lsls r0, 16 - lsrs r0, 16 - ldrh r1, [r1] - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - bne _08046D70 - ldr r1, =gCritMultiplier - movs r0, 0x2 - b _08046D74 - .pool -_08046D70: - ldr r1, =gCritMultiplier - movs r0, 0x1 -_08046D74: - strb r0, [r1] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk04_critcalc - - thumb_func_start atk05_damagecalc1 -atk05_damagecalc1: @ 8046D8C - push {r4-r7,lr} - sub sp, 0x10 - ldr r4, =gSideAffecting - ldr r5, =gBankTarget - ldrb r0, [r5] - bl GetBankIdentity - movs r1, 0x1 - ands r1, r0 - lsls r1, 1 - adds r1, r4 - ldrh r3, [r1] - ldr r6, =gBankAttacker - ldrb r0, [r6] - movs r4, 0x58 - muls r0, r4 - ldr r2, =gBattleMons - adds r0, r2 - ldrb r1, [r5] - muls r1, r4 - adds r1, r2 - ldr r7, =gCurrentMove - ldrh r2, [r7] - ldr r4, =gDynamicBasePower - ldrh r4, [r4] - str r4, [sp] - ldr r4, =gBattleStruct - ldr r4, [r4] - ldrb r4, [r4, 0x13] - str r4, [sp, 0x4] - ldrb r4, [r6] - str r4, [sp, 0x8] - ldrb r4, [r5] - str r4, [sp, 0xC] - bl CalculateBaseDamage - ldr r4, =gBattleMoveDamage - ldr r1, =gCritMultiplier - ldrb r1, [r1] - muls r1, r0 - ldr r0, =gBattleScripting - ldrb r0, [r0, 0xE] - adds r3, r1, 0 - muls r3, r0 - str r3, [r4] - ldr r1, =gStatuses3 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 2 - ands r0, r1 - cmp r0, 0 - beq _08046E10 - ldr r2, =gBattleMoves - ldrh r1, [r7] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x2] - cmp r0, 0xD - bne _08046E10 - lsls r0, r3, 1 - str r0, [r4] -_08046E10: - ldr r1, =gProtectStructs - ldr r0, =gBankAttacker - ldrb r0, [r0] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 28 - cmp r0, 0 - bge _08046E32 - ldr r4, =gBattleMoveDamage - ldr r1, [r4] - lsls r0, r1, 4 - subs r0, r1 - movs r1, 0xA - bl __divsi3 - str r0, [r4] -_08046E32: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk05_damagecalc1 - - thumb_func_start AI_CalcDmg -AI_CalcDmg: @ 8046E7C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - adds r5, r1, 0 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r5, 24 - lsrs r5, 24 - ldr r4, =gSideAffecting - adds r0, r5, 0 - bl GetBankIdentity - movs r1, 0x1 - ands r1, r0 - lsls r1, 1 - adds r1, r4 - ldrh r3, [r1] - movs r1, 0x58 - adds r0, r7, 0 - muls r0, r1 - ldr r2, =gBattleMons - adds r0, r2 - muls r1, r5 - adds r1, r2 - ldr r2, =gCurrentMove - mov r8, r2 - ldrh r2, [r2] - ldr r6, =gDynamicBasePower - ldrh r4, [r6] - str r4, [sp] - ldr r4, =gBattleStruct - ldr r4, [r4] - ldrb r4, [r4, 0x13] - str r4, [sp, 0x4] - str r7, [sp, 0x8] - str r5, [sp, 0xC] - bl CalculateBaseDamage - ldr r4, =gBattleMoveDamage - movs r1, 0 - strh r1, [r6] - ldr r1, =gCritMultiplier - ldrb r1, [r1] - muls r1, r0 - ldr r0, =gBattleScripting - ldrb r0, [r0, 0xE] - adds r3, r1, 0 - muls r3, r0 - str r3, [r4] - ldr r1, =gStatuses3 - lsls r0, r7, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 2 - ands r0, r1 - cmp r0, 0 - beq _08046F0A - ldr r2, =gBattleMoves - mov r0, r8 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x2] - cmp r0, 0xD - bne _08046F0A - lsls r0, r3, 1 - str r0, [r4] -_08046F0A: - ldr r0, =gProtectStructs - lsls r1, r7, 4 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 28 - cmp r0, 0 - bge _08046F28 - ldr r4, =gBattleMoveDamage - ldr r1, [r4] - lsls r0, r1, 4 - subs r0, r1 - movs r1, 0xA - bl __divsi3 - str r0, [r4] -_08046F28: - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end AI_CalcDmg - - thumb_func_start battle_attack_damage_modulate_by_effectivity -battle_attack_damage_modulate_by_effectivity: @ 8046F60 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r5, =gBattleMoveDamage - ldr r0, [r5] - muls r0, r4 - movs r1, 0xA - bl __divsi3 - str r0, [r5] - cmp r0, 0 - bne _08046F80 - cmp r4, 0 - beq _08046F80 - movs r0, 0x1 - str r0, [r5] -_08046F80: - cmp r4, 0x5 - beq _08046FB0 - cmp r4, 0x5 - bgt _08046F94 - cmp r4, 0 - beq _08046F9A - b _08047032 - .pool -_08046F94: - cmp r4, 0x14 - beq _08046FF0 - b _08047032 -_08046F9A: - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x8 - orrs r0, r1 - movs r1, 0xFB - ands r0, r1 - movs r1, 0xFD - ands r0, r1 - b _08047030 - .pool -_08046FB0: - ldr r2, =gBattleMoves - ldr r0, =gCurrentMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - cmp r0, 0 - beq _08047032 - ldr r2, =gBattleMoveFlags - ldrb r1, [r2] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - bne _08047032 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08046FEC - movs r0, 0xFD - ands r0, r1 - b _08047030 - .pool -_08046FEC: - movs r0, 0x4 - b _0804702E -_08046FF0: - ldr r2, =gBattleMoves - ldr r0, =gCurrentMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - cmp r0, 0 - beq _08047032 - ldr r2, =gBattleMoveFlags - ldrb r1, [r2] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - bne _08047032 - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0804702C - movs r0, 0xFB - ands r0, r1 - b _08047030 - .pool -_0804702C: - movs r0, 0x2 -_0804702E: - orrs r0, r1 -_08047030: - strb r0, [r2] -_08047032: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end battle_attack_damage_modulate_by_effectivity - - thumb_func_start atk06_typecalc -atk06_typecalc: @ 8047038 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - movs r3, 0 - ldr r1, =gCurrentMove - ldrh r0, [r1] - cmp r0, 0xA5 - bne _0804704C - b _08047260 -_0804704C: - ldr r0, =gBattleStruct - ldr r0, [r0] - ldrb r0, [r0, 0x13] - cmp r0, 0 - beq _08047068 - movs r1, 0x3F - mov r8, r1 - ands r1, r0 - mov r8, r1 - b _08047078 - .pool -_08047068: - ldr r2, =gBattleMoves - ldrh r1, [r1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x2] - mov r8, r0 -_08047078: - ldr r2, =gBattleMons - ldr r0, =gBankAttacker - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r1, r0, r2 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - adds r5, r2, 0 - cmp r0, r8 - beq _0804709A - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, r8 - bne _080470B0 -_0804709A: - ldr r4, =gBattleMoveDamage - ldr r1, [r4] - lsls r0, r1, 4 - subs r0, r1 - str r0, [r4] - movs r1, 0xA - str r3, [sp, 0x4] - bl __divsi3 - str r0, [r4] - ldr r3, [sp, 0x4] -_080470B0: - ldr r2, =gBankTarget - ldrb r1, [r2] - movs r0, 0x58 - muls r0, r1 - adds r0, r5 - adds r0, 0x20 - ldrb r0, [r0] - adds r4, r2, 0 - cmp r0, 0x1A - bne _08047128 - mov r1, r8 - cmp r1, 0x4 - bne _08047128 - ldr r3, =gLastUsedAbility - strb r0, [r3] - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x9 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gUnknown_02024250 - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - movs r2, 0 - strh r2, [r0] - ldr r1, =gUnknown_02024258 - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - strh r2, [r0] - ldr r0, =gBattleCommunication - mov r1, r8 - strb r1, [r0, 0x6] - ldrb r0, [r4] - ldrb r1, [r3] - bl RecordAbilityBattle - b _080471C4 - .pool -_08047128: - ldr r1, =gUnknown_0831ACE8 - adds r0, r3, r1 - ldrb r0, [r0] - adds r2, r1, 0 - b _080471A4 - .pool -_08047138: - adds r3, 0x3 - b _080471A0 -_0804713C: - ldr r5, =gUnknown_0831ACE8 - adds r0, r3, r5 - ldrb r0, [r0] - cmp r0, r8 - bne _08047198 - adds r1, r3, 0x1 - adds r1, r5 - ldr r2, =gBattleMons - ldr r7, =gBankTarget - ldrb r0, [r7] - movs r6, 0x58 - muls r0, r6 - adds r0, r2 - adds r0, 0x21 - ldrb r4, [r1] - ldrb r0, [r0] - cmp r4, r0 - bne _08047172 - adds r0, r3, 0x2 - adds r0, r5 - ldrb r0, [r0] - str r2, [sp] - str r3, [sp, 0x4] - bl battle_attack_damage_modulate_by_effectivity - ldr r3, [sp, 0x4] - ldr r2, [sp] -_08047172: - ldrb r0, [r7] - muls r0, r6 - adds r0, r2 - adds r1, r0, 0 - adds r1, 0x22 - ldrb r1, [r1] - cmp r4, r1 - bne _08047198 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, r4 - beq _08047198 - adds r0, r3, 0x2 - adds r0, r5 - ldrb r0, [r0] - str r3, [sp, 0x4] - bl battle_attack_damage_modulate_by_effectivity - ldr r3, [sp, 0x4] -_08047198: - adds r3, 0x3 - ldr r5, =gBattleMons - ldr r4, =gBankTarget - ldr r2, =gUnknown_0831ACE8 -_080471A0: - adds r0, r3, r2 - ldrb r0, [r0] -_080471A4: - cmp r0, 0xFF - beq _080471C4 - cmp r0, 0xFE - bne _0804713C - ldrb r1, [r4] - movs r0, 0x58 - muls r0, r1 - adds r1, r5, 0 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 22 - ands r0, r1 - cmp r0, 0 - beq _08047138 -_080471C4: - ldr r2, =gBattleMons - ldr r5, =gBankTarget - ldrb r1, [r5] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x20 - ldrb r6, [r0] - cmp r6, 0x19 - bne _08047242 - ldr r0, =gBankAttacker - ldrb r0, [r0] - ldr r7, =gCurrentMove - ldrh r1, [r7] - bl move_weather_interaction - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _08047242 - ldr r1, =gBattleMoveFlags - mov r8, r1 - ldrb r4, [r1] - ands r0, r4 - cmp r0, 0 - beq _08047200 - movs r0, 0x6 - ands r0, r4 - cmp r0, 0x6 - bne _08047242 -_08047200: - ldr r2, =gBattleMoves - ldrh r1, [r7] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - cmp r0, 0 - beq _08047242 - ldr r3, =gLastUsedAbility - strb r6, [r3] - movs r0, 0x1 - orrs r0, r4 - mov r1, r8 - strb r0, [r1] - ldr r1, =gUnknown_02024250 - ldrb r0, [r5] - lsls r0, 1 - adds r0, r1 - movs r2, 0 - strh r2, [r0] - ldr r1, =gUnknown_02024258 - ldrb r0, [r5] - lsls r0, 1 - adds r0, r1 - strh r2, [r0] - ldr r1, =gBattleCommunication - movs r0, 0x3 - strb r0, [r1, 0x6] - ldrb r0, [r5] - ldrb r1, [r3] - bl RecordAbilityBattle -_08047242: - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08047260 - ldr r2, =gProtectStructs - ldr r0, =gBankAttacker - ldrb r1, [r0] - lsls r1, 4 - adds r1, r2 - ldrb r0, [r1, 0x1] - movs r2, 0x2 - orrs r0, r2 - strb r0, [r1, 0x1] -_08047260: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk06_typecalc - - thumb_func_start b_wonderguard_and_levitate -b_wonderguard_and_levitate: @ 80472A8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r6, 0 - movs r5, 0 - ldr r0, =gCurrentMove - ldrh r1, [r0] - mov r9, r0 - cmp r1, 0xA5 - bne _080472C0 - b _08047508 -_080472C0: - ldr r2, =gBattleMoves - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r2 - ldrb r0, [r1, 0x1] - cmp r0, 0 - bne _080472D2 - b _08047508 -_080472D2: - ldr r0, =gBattleStruct - ldr r0, [r0] - ldrb r0, [r0, 0x13] - cmp r0, 0 - beq _080472F4 - movs r1, 0x3F - mov r12, r1 - mov r2, r12 - ands r2, r0 - mov r12, r2 - b _080472F8 - .pool -_080472F4: - ldrb r1, [r1, 0x2] - mov r12, r1 -_080472F8: - ldr r2, =gBattleMons - ldr r3, =gBankTarget - ldrb r1, [r3] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x20 - ldrb r1, [r0] - adds r7, r2, 0 - mov r8, r3 - cmp r1, 0x1A - bne _0804733C - mov r0, r12 - cmp r0, 0x4 - bne _0804733C - ldr r0, =gLastUsedAbility - strb r1, [r0] - ldr r0, =gBattleCommunication - mov r1, r12 - strb r1, [r0, 0x6] - ldrb r0, [r3] - movs r1, 0x1A - bl RecordAbilityBattle - b _08047508 - .pool -_0804733C: - ldr r1, =gUnknown_0831ACE8 - adds r0, r5, r1 - ldrb r0, [r0] - adds r4, r1, 0 - b _0804748E - .pool -_0804734C: - adds r0, r5, r4 - ldrb r0, [r0] - cmp r0, r12 - beq _08047356 - b _08047488 -_08047356: - adds r2, r5, 0x1 - adds r3, r2, r4 - mov r0, r8 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r7 - adds r0, 0x21 - ldrb r1, [r3] - adds r3, r2, 0 - ldrb r0, [r0] - cmp r1, r0 - bne _08047396 - adds r0, r5, 0x2 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - bne _08047396 - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x8 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gProtectStructs - ldr r0, =gBankAttacker - ldrb r2, [r0] - lsls r2, 4 - adds r2, r1 - ldrb r0, [r2, 0x1] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2, 0x1] -_08047396: - adds r2, r3, r4 - mov r0, r8 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r7 - adds r1, r0, 0 - adds r1, 0x22 - ldrb r2, [r2] - ldrb r1, [r1] - cmp r2, r1 - bne _080473DC - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, r2 - beq _080473DC - adds r0, r5, 0x2 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - bne _080473DC - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x8 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gProtectStructs - ldr r0, =gBankAttacker - ldrb r2, [r0] - lsls r2, 4 - adds r2, r1 - ldrb r0, [r2, 0x1] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2, 0x1] -_080473DC: - adds r2, r3, r4 - mov r0, r8 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r7 - adds r0, 0x21 - ldrb r1, [r2] - ldrb r0, [r0] - cmp r1, r0 - bne _08047400 - adds r0, r5, 0x2 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0x14 - bne _08047400 - movs r0, 0x1 - orrs r6, r0 -_08047400: - adds r2, r3, r4 - mov r0, r8 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r7 - adds r1, r0, 0 - adds r1, 0x22 - ldrb r2, [r2] - ldrb r1, [r1] - cmp r2, r1 - bne _0804742E - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, r2 - beq _0804742E - adds r0, r5, 0x2 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0x14 - bne _0804742E - movs r0, 0x1 - orrs r6, r0 -_0804742E: - adds r2, r3, r4 - mov r0, r8 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r7 - adds r0, 0x21 - ldrb r1, [r2] - ldrb r0, [r0] - cmp r1, r0 - bne _08047456 - adds r0, r5, 0x2 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0x5 - bne _08047456 - movs r0, 0x2 - orrs r6, r0 - lsls r0, r6, 24 - lsrs r6, r0, 24 -_08047456: - adds r2, r3, r4 - mov r0, r8 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r7 - adds r1, r0, 0 - adds r1, 0x22 - ldrb r2, [r2] - ldrb r1, [r1] - cmp r2, r1 - bne _08047488 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, r2 - beq _08047488 - adds r0, r5, 0x2 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0x5 - bne _08047488 - movs r0, 0x2 - orrs r6, r0 - lsls r0, r6, 24 - lsrs r6, r0, 24 -_08047488: - adds r5, 0x3 - adds r0, r5, r4 - ldrb r0, [r0] -_0804748E: - cmp r0, 0xFF - beq _080474B2 - cmp r0, 0xFE - beq _08047498 - b _0804734C -_08047498: - mov r2, r8 - ldrb r1, [r2] - movs r0, 0x58 - muls r0, r1 - adds r1, r7, 0 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 22 - ands r0, r1 - cmp r0, 0 - beq _08047488 -_080474B2: - mov r0, r8 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r7 - adds r0, 0x20 - ldrb r4, [r0] - cmp r4, 0x19 - bne _08047508 - ldr r0, =gBankAttacker - ldrb r0, [r0] - mov r2, r9 - ldrh r1, [r2] - bl move_weather_interaction - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _08047508 - movs r0, 0x3 - ands r6, r0 - cmp r6, 0x1 - beq _08047508 - ldr r2, =gBattleMoves - mov r0, r9 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - cmp r0, 0 - beq _08047508 - ldr r0, =gLastUsedAbility - strb r4, [r0] - ldr r1, =gBattleCommunication - movs r0, 0x3 - strb r0, [r1, 0x6] - mov r1, r8 - ldrb r0, [r1] - movs r1, 0x19 - bl RecordAbilityBattle -_08047508: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end b_wonderguard_and_levitate - - thumb_func_start b_attack_effectivity_adapt -b_attack_effectivity_adapt: @ 804752C - push {r4-r7,lr} - adds r6, r2, 0 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 16 - lsrs r5, r1, 16 - ldr r7, =gBattleMoveDamage - ldr r0, [r7] - muls r0, r4 - movs r1, 0xA - bl __divsi3 - str r0, [r7] - cmp r0, 0 - bne _08047552 - cmp r4, 0 - beq _08047552 - movs r0, 0x1 - str r0, [r7] -_08047552: - cmp r4, 0x5 - beq _0804757A - cmp r4, 0x5 - bgt _08047564 - cmp r4, 0 - beq _0804756A - b _080475DE - .pool -_08047564: - cmp r4, 0x14 - beq _080475AC - b _080475DE -_0804756A: - ldrb r0, [r6] - movs r1, 0x8 - orrs r0, r1 - movs r1, 0xFB - ands r0, r1 - movs r1, 0xFD - ands r0, r1 - b _080475DC -_0804757A: - ldr r0, =gBattleMoves - lsls r1, r5, 1 - adds r1, r5 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - cmp r0, 0 - beq _080475DE - ldrb r1, [r6] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - bne _080475DE - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080475A8 - movs r0, 0xFD - ands r0, r1 - b _080475DC - .pool -_080475A8: - movs r0, 0x4 - b _080475DA -_080475AC: - ldr r0, =gBattleMoves - lsls r1, r5, 1 - adds r1, r5 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - cmp r0, 0 - beq _080475DE - ldrb r1, [r6] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - bne _080475DE - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080475D8 - movs r0, 0xFB - ands r0, r1 - b _080475DC - .pool -_080475D8: - movs r0, 0x2 -_080475DA: - orrs r0, r1 -_080475DC: - strb r0, [r6] -_080475DE: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end b_attack_effectivity_adapt - - thumb_func_start TypeCalc -TypeCalc: @ 80475E4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp, 0x4] - lsls r2, 24 - lsrs r2, 24 - mov r9, r2 - movs r0, 0 - mov r8, r0 - mov r0, sp - mov r1, r8 - strb r1, [r0] - mov r2, r10 - cmp r2, 0xA5 - bne _08047616 - movs r0, 0 - b _0804779E -_08047616: - ldr r1, =gBattleMoves - mov r3, r10 - lsls r2, r3, 1 - adds r0, r2, r3 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x2] - str r0, [sp, 0x8] - ldr r1, =gBattleMons - movs r0, 0x58 - ldr r3, [sp, 0x4] - muls r0, r3 - adds r3, r0, r1 - adds r0, r3, 0 - adds r0, 0x21 - ldrb r0, [r0] - str r2, [sp, 0xC] - adds r5, r1, 0 - ldr r1, [sp, 0x8] - cmp r0, r1 - beq _0804764A - adds r0, r3, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, r1 - bne _0804765C -_0804764A: - ldr r4, =gBattleMoveDamage - ldr r1, [r4] - lsls r0, r1, 4 - subs r0, r1 - str r0, [r4] - movs r1, 0xA - bl __divsi3 - str r0, [r4] -_0804765C: - movs r0, 0x58 - mov r2, r9 - muls r2, r0 - adds r0, r2, 0 - adds r0, r5 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x1A - bne _08047690 - ldr r3, [sp, 0x8] - cmp r3, 0x4 - bne _08047690 - movs r1, 0x9 - mov r0, sp - ldrb r0, [r0] - orrs r0, r1 - mov r1, sp - strb r0, [r1] - b _08047740 - .pool -_08047690: - ldr r1, =gUnknown_0831ACE8 - mov r2, r8 - adds r0, r2, r1 - ldrb r0, [r0] - adds r2, r1, 0 - cmp r0, 0xFF - beq _08047740 - cmp r0, 0xFE - bne _080476B6 - movs r0, 0x58 - mov r3, r9 - muls r3, r0 - adds r0, r3, 0 - b _0804772E - .pool -_080476B0: - movs r0, 0x3 - add r8, r0 - b _08047718 -_080476B6: - ldr r7, =gUnknown_0831ACE8 - mov r1, r8 - adds r0, r1, r7 - ldrb r0, [r0] - ldr r2, [sp, 0x8] - cmp r0, r2 - bne _08047710 - adds r1, 0x1 - adds r1, r7 - ldr r2, =gBattleMons - movs r0, 0x58 - mov r3, r9 - muls r3, r0 - adds r0, r3, 0 - adds r5, r0, r2 - adds r6, r5, 0 - adds r6, 0x21 - ldrb r4, [r1] - ldrb r0, [r6] - cmp r4, r0 - bne _080476F0 - mov r0, r8 - adds r0, 0x2 - adds r0, r7 - ldrb r0, [r0] - mov r1, r10 - mov r2, sp - bl b_attack_effectivity_adapt -_080476F0: - adds r0, r5, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r4, r0 - bne _08047710 - ldrb r0, [r6] - cmp r0, r4 - beq _08047710 - mov r0, r8 - adds r0, 0x2 - adds r0, r7 - ldrb r0, [r0] - mov r1, r10 - mov r2, sp - bl b_attack_effectivity_adapt -_08047710: - movs r1, 0x3 - add r8, r1 - ldr r5, =gBattleMons - ldr r2, =gUnknown_0831ACE8 -_08047718: - mov r3, r8 - adds r0, r3, r2 - ldrb r0, [r0] - cmp r0, 0xFF - beq _08047740 - cmp r0, 0xFE - bne _080476B6 - movs r0, 0x58 - mov r1, r9 - muls r1, r0 - adds r0, r1, 0 -_0804772E: - adds r1, r5, 0 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 22 - ands r0, r1 - cmp r0, 0 - beq _080476B0 -_08047740: - movs r0, 0x58 - mov r2, r9 - muls r2, r0 - adds r0, r2, 0 - adds r0, r5 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x19 - bne _0804779A - mov r0, sp - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0804779A - ldr r0, [sp, 0x4] - mov r1, r10 - bl move_weather_interaction - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x2 - bne _0804779A - mov r0, sp - ldrb r3, [r0] - adds r0, r1, 0 - ands r0, r3 - cmp r0, 0 - beq _08047782 - movs r0, 0x6 - ands r0, r3 - cmp r0, 0x6 - bne _0804779A -_08047782: - ldr r0, =gBattleMoves - ldr r1, [sp, 0xC] - add r1, r10 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - cmp r0, 0 - beq _0804779A - mov r0, sp - movs r1, 0x1 - orrs r1, r3 - strb r1, [r0] -_0804779A: - mov r0, sp - ldrb r0, [r0] -_0804779E: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end TypeCalc - - thumb_func_start ai_rate_move -ai_rate_move: @ 80477BC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 16 - lsrs r1, 16 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x4] - movs r7, 0 - mov r0, sp - strb r7, [r0] - ldr r2, =gBaseStats - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x6] - mov r9, r1 - ldrb r0, [r0, 0x7] - mov r8, r0 - cmp r6, 0xA5 - bne _080477FC - movs r0, 0 - b _080478A0 - .pool -_080477FC: - ldr r2, =gBattleMoves - lsls r1, r6, 1 - adds r0, r1, r6 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x2] - mov r10, r0 - str r1, [sp, 0x8] - ldr r3, [sp, 0x4] - cmp r3, 0x1A - bne _08047824 - cmp r0, 0x4 - bne _08047824 - movs r1, 0x9 - mov r0, sp - strb r1, [r0] - b _0804786A - .pool -_08047824: - ldr r0, =gUnknown_0831ACE8 - adds r1, r7, r0 - ldrb r0, [r1] - cmp r0, 0xFF - beq _0804786A - adds r4, r1, 0 -_08047830: - ldrb r0, [r4] - cmp r0, 0xFE - beq _0804785C - cmp r0, r10 - bne _0804785C - ldrb r5, [r4, 0x1] - cmp r5, r9 - bne _0804784A - ldrb r0, [r4, 0x2] - adds r1, r6, 0 - mov r2, sp - bl b_attack_effectivity_adapt -_0804784A: - cmp r5, r8 - bne _0804785C - cmp r9, r8 - beq _0804785C - ldrb r0, [r4, 0x2] - adds r1, r6, 0 - mov r2, sp - bl b_attack_effectivity_adapt -_0804785C: - adds r4, 0x3 - adds r7, 0x3 - ldr r1, =gUnknown_0831ACE8 - adds r0, r7, r1 - ldrb r0, [r0] - cmp r0, 0xFF - bne _08047830 -_0804786A: - ldr r3, [sp, 0x4] - cmp r3, 0x19 - bne _0804789C - mov r0, sp - ldrb r2, [r0] - movs r0, 0x2 - ands r0, r2 - cmp r0, 0 - beq _08047884 - movs r0, 0x6 - ands r0, r2 - cmp r0, 0x6 - bne _0804789C -_08047884: - ldr r0, =gBattleMoves - ldr r3, [sp, 0x8] - adds r1, r3, r6 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - cmp r0, 0 - beq _0804789C - mov r0, sp - movs r1, 0x8 - orrs r1, r2 - strb r1, [r0] -_0804789C: - mov r0, sp - ldrb r0, [r0] -_080478A0: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end ai_rate_move - - thumb_func_start sub_80478B8 -sub_80478B8: @ 80478B8 - push {r4,lr} - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xF - ands r0, r1 - movs r1, 0x64 - subs r1, r0 - lsls r1, 16 - lsrs r1, 16 - ldr r4, =gBattleMoveDamage - ldr r0, [r4] - cmp r0, 0 - beq _080478EA - muls r0, r1 - str r0, [r4] - movs r1, 0x64 - bl __divsi3 - str r0, [r4] - cmp r0, 0 - bne _080478EA - movs r0, 0x1 - str r0, [r4] -_080478EA: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80478B8 - - thumb_func_start atk07_dmg_adjustment -atk07_dmg_adjustment: @ 80478F4 - push {r4-r7,lr} - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xF - ands r0, r1 - movs r1, 0x64 - subs r1, r0 - lsls r1, 16 - lsrs r1, 16 - ldr r4, =gBattleMoveDamage - ldr r0, [r4] - cmp r0, 0 - beq _08047926 - muls r0, r1 - str r0, [r4] - movs r1, 0x64 - bl __divsi3 - str r0, [r4] - cmp r0, 0 - bne _08047926 - movs r0, 0x1 - str r0, [r4] -_08047926: - ldr r7, =gBattleMons - ldr r6, =gBankTarget - ldrb r2, [r6] - movs r5, 0x58 - adds r0, r2, 0 - muls r0, r5 - adds r1, r0, r7 - ldrh r0, [r1, 0x2E] - cmp r0, 0xAF - bne _0804795C - ldr r1, =gEnigmaBerries - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r4, [r0, 0x7] - ldrb r6, [r0, 0x1A] - b _08047976 - .pool -_0804795C: - ldrh r0, [r1, 0x2E] - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r4, r0, 24 - ldrb r0, [r6] - muls r0, r5 - adds r0, r7 - ldrh r0, [r0, 0x2E] - bl ItemId_GetHoldEffectParam - lsls r0, 24 - lsrs r6, r0, 24 -_08047976: - ldr r1, =gStringBank - ldr r5, =gBankTarget - ldrb r0, [r5] - strb r0, [r1] - cmp r4, 0x27 - bne _080479B4 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, r6 - bcs _080479B4 - ldrb r0, [r5] - movs r1, 0x27 - bl RecordItemEffectBattle - ldr r2, =gSpecialStatuses - ldrb r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] -_080479B4: - ldr r2, =gBattleMons - ldr r3, =gBankTarget - ldrb r4, [r3] - movs r0, 0x58 - muls r0, r4 - adds r1, r2, 0 - adds r1, 0x50 - adds r0, r1 - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 17 - ands r1, r0 - adds r5, r2, 0 - cmp r1, 0 - bne _08047A84 - ldr r2, =gBattleMoves - ldr r0, =gCurrentMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0x65 - beq _08047A06 - ldr r0, =gProtectStructs - lsls r1, r4, 4 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 30 - cmp r0, 0 - blt _08047A06 - ldr r0, =gSpecialStatuses - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1] - lsrs r0, 7 - cmp r0, 0 - beq _08047A84 -_08047A06: - ldrb r0, [r3] - movs r4, 0x58 - muls r0, r4 - adds r0, r5 - ldrh r1, [r0, 0x28] - ldr r2, =gBattleMoveDamage - ldr r0, [r2] - cmp r1, r0 - bgt _08047A84 - subs r0, r1, 0x1 - str r0, [r2] - ldr r1, =gProtectStructs - ldrb r3, [r3] - lsls r0, r3, 4 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 30 - cmp r0, 0 - bge _08047A5C - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - b _08047A84 - .pool -_08047A5C: - ldr r0, =gSpecialStatuses - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1] - lsrs r0, 7 - cmp r0, 0 - beq _08047A84 - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gLastUsedItem - adds r0, r3, 0 - muls r0, r4 - adds r0, r5 - ldrh r0, [r0, 0x2E] - strh r0, [r1] -_08047A84: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk07_dmg_adjustment - - thumb_func_start atk08_dmg_adjustment2 -atk08_dmg_adjustment2: @ 8047AA4 - push {r4-r7,lr} - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xF - ands r0, r1 - movs r1, 0x64 - subs r1, r0 - lsls r1, 16 - lsrs r1, 16 - ldr r4, =gBattleMoveDamage - ldr r0, [r4] - cmp r0, 0 - beq _08047AD6 - muls r0, r1 - str r0, [r4] - movs r1, 0x64 - bl __divsi3 - str r0, [r4] - cmp r0, 0 - bne _08047AD6 - movs r0, 0x1 - str r0, [r4] -_08047AD6: - ldr r7, =gBattleMons - ldr r6, =gBankTarget - ldrb r2, [r6] - movs r5, 0x58 - adds r0, r2, 0 - muls r0, r5 - adds r1, r0, r7 - ldrh r0, [r1, 0x2E] - cmp r0, 0xAF - bne _08047B0C - ldr r1, =gEnigmaBerries - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r4, [r0, 0x7] - ldrb r6, [r0, 0x1A] - b _08047B26 - .pool -_08047B0C: - ldrh r0, [r1, 0x2E] - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r4, r0, 24 - ldrb r0, [r6] - muls r0, r5 - adds r0, r7 - ldrh r0, [r0, 0x2E] - bl ItemId_GetHoldEffectParam - lsls r0, 24 - lsrs r6, r0, 24 -_08047B26: - ldr r1, =gStringBank - ldr r5, =gBankTarget - ldrb r0, [r5] - strb r0, [r1] - cmp r4, 0x27 - bne _08047B64 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, r6 - bcs _08047B64 - ldrb r0, [r5] - movs r1, 0x27 - bl RecordItemEffectBattle - ldr r2, =gSpecialStatuses - ldrb r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] -_08047B64: - ldr r4, =gBattleMons - ldr r6, =gBankTarget - ldrb r2, [r6] - movs r7, 0x58 - adds r3, r2, 0 - muls r3, r7 - adds r0, r4, 0 - adds r0, 0x50 - adds r0, r3, r0 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - cmp r0, 0 - bne _08047C10 - ldr r5, =gProtectStructs - lsls r0, r2, 4 - adds r0, r5 - ldrb r0, [r0] - lsls r0, 30 - cmp r0, 0 - blt _08047BA2 - ldr r0, =gSpecialStatuses - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1] - lsrs r0, 7 - cmp r0, 0 - beq _08047C10 -_08047BA2: - adds r0, r3, r4 - ldrh r1, [r0, 0x28] - ldr r2, =gBattleMoveDamage - ldr r0, [r2] - cmp r1, r0 - bgt _08047C10 - subs r0, r1, 0x1 - str r0, [r2] - ldrb r3, [r6] - lsls r0, r3, 4 - adds r0, r5 - ldrb r0, [r0] - lsls r0, 30 - cmp r0, 0 - bge _08047BE8 - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - b _08047C10 - .pool -_08047BE8: - ldr r0, =gSpecialStatuses - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1] - lsrs r0, 7 - cmp r0, 0 - beq _08047C10 - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gLastUsedItem - adds r0, r3, 0 - muls r0, r7 - adds r0, r4 - ldrh r0, [r0, 0x2E] - strh r0, [r1] -_08047C10: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk08_dmg_adjustment2 - - thumb_func_start atk09_attackanimation -atk09_attackanimation: @ 8047C30 - push {r4-r7,lr} - sub sp, 0x10 - ldr r0, =gBattleExecBuffer - ldr r0, [r0] - cmp r0, 0 - beq _08047C3E - b _08047DB6 -_08047C3E: - ldr r0, =gHitMarker - ldr r0, [r0] - movs r1, 0x80 - ands r0, r1 - ldr r5, =gCurrentMove - cmp r0, 0 - beq _08047C8C - ldrh r0, [r5] - cmp r0, 0x90 - beq _08047C8C - cmp r0, 0xA4 - beq _08047C8C - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, =gUnknown_082DABB9 - str r0, [r4] - ldr r1, =gBattleScripting - ldrb r0, [r1, 0x18] - adds r0, 0x1 - strb r0, [r1, 0x18] - ldrb r0, [r1, 0x19] - adds r0, 0x1 - strb r0, [r1, 0x19] - b _08047DB6 - .pool -_08047C8C: - ldr r2, =gBattleMoves - ldrh r1, [r5] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x6] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _08047CB2 - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _08047CB2 - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08047CBA -_08047CB2: - ldr r0, =gBattleScripting - ldrb r0, [r0, 0x19] - cmp r0, 0 - bne _08047D88 -_08047CBA: - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - bne _08047DA8 - ldr r1, =gActiveBank - ldr r3, =gBankAttacker - ldrb r0, [r3] - strb r0, [r1] - ldr r2, =gBattleMons - ldr r0, =gBankTarget - ldrb r1, [r0] - movs r0, 0x58 - adds r4, r1, 0 - muls r4, r0 - adds r0, r2, 0 - adds r0, 0x50 - adds r0, r4, r0 - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 17 - ands r1, r0 - adds r7, r3, 0 - mov r12, r2 - cmp r1, 0 - beq _08047D18 - ldr r0, =gUnknown_02024212 - ldrb r6, [r0] - b _08047D42 - .pool -_08047D18: - ldr r3, =gUnknown_02024212 - ldrb r0, [r3] - cmp r0, 0x1 - bls _08047D40 - mov r1, r12 - adds r0, r4, r1 - ldrh r2, [r0, 0x28] - ldr r0, =gBattleMoveDamage - ldr r1, [r0] - movs r6, 0x1 - adds r4, r0, 0 - cmp r2, r1 - ble _08047D44 - ldrb r6, [r3] - b _08047D44 - .pool -_08047D40: - ldrb r6, [r3] -_08047D42: - ldr r4, =gBattleMoveDamage -_08047D44: - ldrh r1, [r5] - ldr r5, =gBattleScripting - ldrb r2, [r5, 0x18] - ldr r0, =gBattleMovePower - ldrh r3, [r0] - ldr r0, [r4] - str r0, [sp] - ldrb r4, [r7] - movs r0, 0x58 - muls r0, r4 - add r0, r12 - adds r0, 0x2B - ldrb r0, [r0] - str r0, [sp, 0x4] - ldrb r4, [r7] - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - ldr r4, =gDisableStructs - adds r0, r4 - str r0, [sp, 0x8] - str r6, [sp, 0xC] - movs r0, 0 - bl dp01_build_cmdbuf_x0F_aa_b_cc_dddd_e_mlc_weather_00_x1Cbytes - ldrb r0, [r5, 0x18] - adds r0, 0x1 - strb r0, [r5, 0x18] - ldrb r0, [r5, 0x19] - adds r0, 0x1 - strb r0, [r5, 0x19] - ldrb r0, [r7] - bl dp01_battle_side_mark_buffer_for_execution -_08047D88: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - b _08047DB6 - .pool -_08047DA8: - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, =gUnknown_082DABB9 - str r0, [r4] -_08047DB6: - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk09_attackanimation - - thumb_func_start atk0A_waitanimation -atk0A_waitanimation: @ 8047DC8 - push {lr} - ldr r0, =gBattleExecBuffer - ldr r0, [r0] - cmp r0, 0 - bne _08047DDA - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] -_08047DDA: - pop {r0} - bx r0 - .pool - thumb_func_end atk0A_waitanimation - - thumb_func_start atk0B_healthbarupdate -atk0B_healthbarupdate: @ 8047DE8 - push {r4,lr} - ldr r0, =gBattleExecBuffer - ldr r0, [r0] - cmp r0, 0 - bne _08047EAA - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - bne _08047EA2 - ldr r0, =gBattlescriptCurrInstr - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r2, =gActiveBank - strb r0, [r2] - ldr r1, =gBattleMons - ldrb r2, [r2] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - cmp r0, 0 - beq _08047E68 - ldr r0, =gDisableStructs - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0xA] - cmp r0, 0 - beq _08047E68 - ldr r0, =gHitMarker - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 1 - ands r0, r1 - cmp r0, 0 - bne _08047E68 - movs r0, 0x80 - adds r1, r2, 0 - bl b_std_message - b _08047EA2 - .pool -_08047E68: - ldr r0, =gBattleMoveDamage - ldr r0, [r0] - ldr r1, =0x00002710 - cmp r0, r1 - bgt _08047E76 - lsls r0, 16 - lsrs r1, r0, 16 -_08047E76: - movs r0, 0 - bl dp01_build_cmdbuf_x18_0_aa_health_bar_update - ldr r4, =gActiveBank - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _08047EA2 - ldr r0, =gBattleMoveDamage - ldr r0, [r0] - cmp r0, 0 - ble _08047EA2 - ldr r0, =gBattleResults - ldrb r1, [r0, 0x5] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0, 0x5] -_08047EA2: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] -_08047EAA: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atk0B_healthbarupdate - - thumb_func_start atk0C_datahpupdate -atk0C_datahpupdate: @ 8047EC4 - push {r4-r7,lr} - sub sp, 0x4 - ldr r0, =gBattleExecBuffer - ldr r0, [r0] - cmp r0, 0 - beq _08047ED2 - b _080482A2 -_08047ED2: - ldr r0, =gBattleStruct - ldr r0, [r0] - ldrb r1, [r0, 0x13] - cmp r1, 0 - beq _08047EF4 - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08047EF4 - movs r6, 0x3F - ands r6, r1 - b _08047F04 - .pool -_08047EF4: - ldr r2, =gBattleMoves - ldr r0, =gCurrentMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r6, [r0, 0x2] -_08047F04: - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _08047F12 - b _08048274 -_08047F12: - ldr r0, =gBattlescriptCurrInstr - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r7, =gActiveBank - strb r0, [r7] - ldr r1, =gBattleMons - ldrb r2, [r7] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - cmp r0, 0 - beq _08048028 - ldr r0, =gDisableStructs - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r4, r1, r0 - ldrb r1, [r4, 0xA] - mov r12, r0 - cmp r1, 0 - beq _08048028 - ldr r0, =gHitMarker - ldr r3, [r0] - movs r0, 0x80 - lsls r0, 1 - ands r3, r0 - cmp r3, 0 - bne _08048028 - adds r5, r1, 0 - ldr r6, =gBattleMoveDamage - ldr r4, [r6] - cmp r5, r4 - blt _08047FBC - ldr r0, =gSpecialStatuses - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 2 - adds r0, 0x4 - adds r1, r0 - ldr r0, [r1] - cmp r0, 0 - bne _08047F76 - str r4, [r1] -_08047F76: - ldrb r0, [r7] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - add r1, r12 - ldr r2, [r6] - ldrb r0, [r1, 0xA] - subs r0, r2 - strb r0, [r1, 0xA] - ldr r1, =gUnknown_020241F4 - ldr r0, [r6] - str r0, [r1] - b _08047FEC - .pool -_08047FBC: - ldr r0, =gSpecialStatuses - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 2 - adds r0, 0x4 - adds r1, r0 - ldr r0, [r1] - cmp r0, 0 - bne _08047FD0 - str r5, [r1] -_08047FD0: - ldr r2, =gUnknown_020241F4 - ldrb r1, [r7] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r12 - ldrb r0, [r0, 0xA] - str r0, [r2] - ldrb r1, [r7] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r12 - strb r3, [r0, 0xA] -_08047FEC: - ldr r0, =gActiveBank - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r12 - ldrb r0, [r0, 0xA] - cmp r0, 0 - beq _08048000 - b _0804829A -_08048000: - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - adds r0, 0x2 - str r0, [r4] - bl b_movescr_stack_push_cursor - ldr r0, =gUnknown_082DB6FB - str r0, [r4] - b _080482A2 - .pool -_08048028: - ldr r0, =gHitMarker - ldr r2, [r0] - ldr r1, =0xfffffeff - ands r2, r1 - str r2, [r0] - ldr r1, =gBattleMoveDamage - ldr r5, [r1] - mov r12, r0 - adds r7, r1, 0 - cmp r5, 0 - bge _0804807C - ldr r4, =gBattleMons - ldr r2, =gActiveBank - ldrb r0, [r2] - movs r3, 0x58 - adds r1, r0, 0 - muls r1, r3 - adds r1, r4 - ldrh r0, [r1, 0x28] - subs r0, r5 - strh r0, [r1, 0x28] - ldrb r0, [r2] - muls r0, r3 - adds r1, r0, r4 - ldrh r3, [r1, 0x2C] - ldrh r0, [r1, 0x28] - adds r5, r2, 0 - cmp r0, r3 - bhi _08048064 - b _0804823A -_08048064: - strh r3, [r1, 0x28] - b _0804823A - .pool -_0804807C: - movs r0, 0x20 - ands r0, r2 - cmp r0, 0 - beq _08048098 - movs r0, 0x21 - negs r0, r0 - ands r2, r0 - mov r0, r12 - str r2, [r0] - ldr r5, =gActiveBank - b _080480E0 - .pool -_08048098: - ldr r0, =gUnknown_020241F8 - ldr r2, =gActiveBank - ldrb r1, [r2] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - adds r0, r5 - str r0, [r1] - ldr r0, =gBattlescriptCurrInstr - ldr r0, [r0] - ldrb r0, [r0, 0x1] - adds r5, r2, 0 - cmp r0, 0 - bne _080480D4 - ldr r1, =gUnknown_02024288 - ldrb r0, [r5] - adds r0, r1 - ldr r1, =gBankAttacker - b _080480DC - .pool -_080480D4: - ldr r1, =gUnknown_02024288 - ldrb r0, [r5] - adds r0, r1 - ldr r1, =gBankTarget -_080480DC: - ldrb r1, [r1] - strb r1, [r0] -_080480E0: - ldr r4, =gBattleMons - ldrb r0, [r5] - movs r3, 0x58 - muls r0, r3 - adds r2, r0, r4 - ldrh r0, [r2, 0x28] - ldr r1, [r7] - cmp r0, r1 - ble _08048110 - subs r0, r1 - strh r0, [r2, 0x28] - ldr r0, =gUnknown_020241F4 - str r1, [r0] - adds r7, r0, 0 - b _08048120 - .pool -_08048110: - ldr r2, =gUnknown_020241F4 - str r0, [r2] - ldrb r0, [r5] - muls r0, r3 - adds r0, r4 - movs r1, 0 - strh r1, [r0, 0x28] - adds r7, r2, 0 -_08048120: - ldr r2, =gSpecialStatuses - ldrb r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r1, r2, 0x4 - adds r3, r0, r1 - ldr r0, [r3] - adds r4, r2, 0 - cmp r0, 0 - bne _08048148 - mov r1, r12 - ldr r0, [r1] - movs r1, 0x80 - lsls r1, 13 - ands r0, r1 - cmp r0, 0 - bne _08048148 - ldr r0, [r7] - str r0, [r3] -_08048148: - cmp r6, 0x8 - bhi _080481D0 - mov r1, r12 - ldr r0, [r1] - movs r1, 0x80 - lsls r1, 13 - ands r0, r1 - cmp r0, 0 - bne _080481CC - ldr r0, =gCurrentMove - ldrh r0, [r0] - cmp r0, 0xDC - beq _080481CC - ldr r3, =gProtectStructs - ldrb r0, [r5] - lsls r0, 4 - adds r1, r3, 0x4 - adds r0, r1 - ldr r2, [r7] - str r2, [r0] - ldrb r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r1, r4, 0 - adds r1, 0x8 - adds r0, r1 - str r2, [r0] - ldr r0, =gBattlescriptCurrInstr - ldr r0, [r0] - ldrb r0, [r0, 0x1] - cmp r0, 0 - bne _080481AC - ldrb r0, [r5] - lsls r0, 4 - adds r0, r3 - ldr r2, =gBankAttacker - b _080481B4 - .pool -_080481AC: - ldrb r0, [r5] - lsls r0, 4 - adds r0, r3 - ldr r2, =gBankTarget -_080481B4: - ldrb r1, [r2] - strb r1, [r0, 0xC] - ldrb r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r2] - strb r1, [r0, 0x10] - b _0804823A - .pool -_080481CC: - cmp r6, 0x8 - bls _0804823A -_080481D0: - mov r1, r12 - ldr r0, [r1] - movs r1, 0x80 - lsls r1, 13 - ands r0, r1 - cmp r0, 0 - bne _0804823A - ldr r3, =gProtectStructs - ldrb r0, [r5] - lsls r0, 4 - adds r1, r3, 0 - adds r1, 0x8 - adds r0, r1 - ldr r2, [r7] - str r2, [r0] - ldrb r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r1, r4, 0 - adds r1, 0xC - adds r0, r1 - str r2, [r0] - ldr r0, =gBattlescriptCurrInstr - ldr r0, [r0] - ldrb r0, [r0, 0x1] - cmp r0, 0 - bne _08048220 - ldrb r0, [r5] - lsls r0, 4 - adds r0, r3 - ldr r2, =gBankAttacker - b _08048228 - .pool -_08048220: - ldrb r0, [r5] - lsls r0, 4 - adds r0, r3 - ldr r2, =gBankTarget -_08048228: - ldrb r1, [r2] - strb r1, [r0, 0xD] - ldrb r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r2] - strb r1, [r0, 0x11] -_0804823A: - mov r1, r12 - ldr r0, [r1] - ldr r1, =0xffefffff - ands r0, r1 - mov r1, r12 - str r0, [r1] - ldrb r1, [r5] - movs r0, 0x58 - muls r0, r1 - ldr r1, =gBattleMons + 0x28 - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0x2A - movs r2, 0 - movs r3, 0x2 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution - b _0804829A - .pool -_08048274: - ldr r0, =gBattlescriptCurrInstr - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r1, =gActiveBank - strb r0, [r1] - ldr r2, =gSpecialStatuses - ldrb r1, [r1] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r2, 0x4 - adds r1, r0, r2 - ldr r0, [r1] - cmp r0, 0 - bne _0804829A - ldr r0, =0x0000ffff - str r0, [r1] -_0804829A: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] -_080482A2: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk0C_datahpupdate - - thumb_func_start atk0D_critmessage -atk0D_critmessage: @ 80482BC - push {lr} - ldr r0, =gBattleExecBuffer - ldr r0, [r0] - cmp r0, 0 - bne _080482F2 - ldr r0, =gCritMultiplier - ldrb r0, [r0] - cmp r0, 0x2 - bne _080482EA - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - bne _080482EA - ldr r0, =gBankAttacker - ldrb r1, [r0] - movs r0, 0xD9 - bl b_std_message - ldr r1, =gBattleCommunication - movs r0, 0x1 - strb r0, [r1, 0x7] -_080482EA: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] -_080482F2: - pop {r0} - bx r0 - .pool - thumb_func_end atk0D_critmessage - - thumb_func_start atk0E_effectiveness_sound -atk0E_effectiveness_sound: @ 8048310 - push {r4,lr} - ldr r0, =gBattleExecBuffer - ldr r0, [r0] - cmp r0, 0 - bne _080483D0 - ldr r4, =gActiveBank - ldr r0, =gBankTarget - ldrb r0, [r0] - strb r0, [r4] - ldr r1, =gBattleMoveFlags - ldrb r2, [r1] - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - bne _080483C8 - movs r0, 0xFE - ands r0, r2 - cmp r0, 0x10 - beq _08048382 - cmp r0, 0x10 - bgt _0804835E - cmp r0, 0x4 - beq _08048372 - cmp r0, 0x4 - bgt _08048358 - cmp r0, 0x2 - beq _0804836C - b _08048382 - .pool -_08048358: - cmp r0, 0x8 - beq _080483C8 - b _08048382 -_0804835E: - cmp r0, 0x40 - beq _08048382 - cmp r0, 0x40 - bgt _08048382 - cmp r0, 0x20 - beq _080483C8 - b _08048382 -_0804836C: - movs r0, 0 - movs r1, 0xE - b _08048376 -_08048372: - movs r0, 0 - movs r1, 0xC -_08048376: - bl dp01_build_cmdbuf_x2B_aa_0 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - b _080483C8 -_08048382: - ldrb r1, [r1] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08048392 - movs r0, 0 - movs r1, 0xE - b _0804839E -_08048392: - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080483B0 - movs r0, 0 - movs r1, 0xC -_0804839E: - bl dp01_build_cmdbuf_x2B_aa_0 - ldr r0, =gActiveBank - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - b _080483C8 - .pool -_080483B0: - movs r0, 0x28 - ands r0, r1 - cmp r0, 0 - bne _080483C8 - movs r0, 0 - movs r1, 0xD - bl dp01_build_cmdbuf_x2B_aa_0 - ldr r0, =gActiveBank - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution -_080483C8: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] -_080483D0: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atk0E_effectiveness_sound - - thumb_func_start atk0F_resultmessage -atk0F_resultmessage: @ 80483E0 - push {r4-r7,lr} - movs r3, 0 - ldr r0, =gBattleExecBuffer - ldr r0, [r0] - cmp r0, 0 - beq _080483EE - b _08048580 -_080483EE: - ldr r1, =gBattleMoveFlags - ldrb r2, [r1] - movs r4, 0x1 - adds r0, r4, 0 - ands r0, r2 - adds r6, r1, 0 - ldr r7, =gBattleCommunication - cmp r0, 0 - beq _0804842C - movs r0, 0x8 - ands r0, r2 - cmp r0, 0 - beq _0804840E - ldrb r0, [r7, 0x6] - cmp r0, 0x2 - bls _0804842C -_0804840E: - ldr r1, =gUnknown_085CC834 - ldrb r0, [r7, 0x6] - lsls r0, 1 - adds r0, r1 - ldrh r3, [r0] - strb r4, [r7, 0x7] - b _0804856A - .pool -_0804842C: - movs r0, 0x1 - strb r0, [r7, 0x7] - ldrb r5, [r6] - movs r0, 0xFE - ands r0, r5 - cmp r0, 0x10 - beq _08048470 - cmp r0, 0x10 - bgt _08048452 - cmp r0, 0x4 - beq _0804846C - cmp r0, 0x4 - bgt _0804844C - cmp r0, 0x2 - beq _08048468 - b _080484B8 -_0804844C: - cmp r0, 0x8 - beq _080484C4 - b _080484B8 -_08048452: - cmp r0, 0x40 - beq _08048474 - cmp r0, 0x40 - bgt _08048462 - cmp r0, 0x20 - bne _08048460 - b _08048564 -_08048460: - b _080484B8 -_08048462: - cmp r0, 0x80 - beq _08048478 - b _080484B8 -_08048468: - movs r3, 0xDE - b _0804856E -_0804846C: - movs r3, 0xDD - b _0804856E -_08048470: - movs r3, 0xDA - b _0804856E -_08048474: - movs r3, 0x99 - b _0804856E -_08048478: - ldr r4, =gLastUsedItem - ldr r2, =gBattleMons - ldr r3, =gBankTarget - ldrb r1, [r3] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r0, [r0, 0x2E] - strh r0, [r4] - ldr r1, =gStringBank - ldrb r0, [r3] - strb r0, [r1] - movs r0, 0x3F - ands r0, r5 - strb r0, [r6] - bl b_movescr_stack_push_cursor - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB816 - b _0804857E - .pool -_080484B8: - adds r2, r6, 0 - ldrb r5, [r2] - movs r0, 0x8 - ands r0, r5 - cmp r0, 0 - beq _080484C8 -_080484C4: - movs r3, 0x1B - b _0804856E -_080484C8: - movs r0, 0x10 - ands r0, r5 - cmp r0, 0 - beq _080484F0 - movs r0, 0xEF - ands r0, r5 - movs r1, 0xFD - ands r0, r1 - movs r1, 0xFB - ands r0, r1 - strb r0, [r2] - bl b_movescr_stack_push_cursor - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB1CE - b _0804857E - .pool -_080484F0: - movs r0, 0x40 - ands r0, r5 - cmp r0, 0 - beq _08048510 - movs r0, 0x3F - ands r0, r5 - strb r0, [r2] - bl b_movescr_stack_push_cursor - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB1C7 - b _0804857E - .pool -_08048510: - movs r0, 0x80 - ands r0, r5 - cmp r0, 0 - beq _08048558 - ldr r4, =gLastUsedItem - ldr r2, =gBattleMons - ldr r3, =gBankTarget - ldrb r1, [r3] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r0, [r0, 0x2E] - strh r0, [r4] - ldr r1, =gStringBank - ldrb r0, [r3] - strb r0, [r1] - movs r0, 0x3F - ands r0, r5 - strb r0, [r6] - bl b_movescr_stack_push_cursor - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB816 - b _0804857E - .pool -_08048558: - movs r0, 0x20 - ands r0, r5 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _08048568 -_08048564: - movs r3, 0xE5 - b _0804856E -_08048568: - strb r0, [r7, 0x7] -_0804856A: - cmp r3, 0 - beq _08048578 -_0804856E: - adds r0, r3, 0 - ldr r1, =gBankAttacker - ldrb r1, [r1] - bl b_std_message -_08048578: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 -_0804857E: - str r0, [r1] -_08048580: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk0F_resultmessage - - thumb_func_start atk10_printstring -atk10_printstring: @ 8048590 - push {r4,lr} - ldr r0, =gBattleExecBuffer - ldr r0, [r0] - cmp r0, 0 - bne _080485BA - ldr r4, =gBattlescriptCurrInstr - ldr r1, [r4] - ldrb r0, [r1, 0x1] - ldrb r1, [r1, 0x2] - lsls r1, 8 - orrs r0, r1 - ldr r1, =gBankAttacker - ldrb r1, [r1] - bl b_std_message - ldr r0, [r4] - adds r0, 0x3 - str r0, [r4] - ldr r1, =gBattleCommunication - movs r0, 0x1 - strb r0, [r1, 0x7] -_080485BA: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atk10_printstring - - thumb_func_start atk11_printstring_playeronly -atk11_printstring_playeronly: @ 80485D0 - push {r4,r5,lr} - ldr r5, =gActiveBank - ldr r0, =gBankAttacker - ldrb r0, [r0] - strb r0, [r5] - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - ldrb r1, [r0, 0x1] - ldrb r0, [r0, 0x2] - lsls r0, 8 - orrs r1, r0 - movs r0, 0 - bl dp01_build_cmdbuf_x11_TODO - ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r4] - adds r0, 0x3 - str r0, [r4] - ldr r1, =gBattleCommunication - movs r0, 0x1 - strb r0, [r1, 0x7] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk11_printstring_playeronly - - thumb_func_start atk12_waitmessage -atk12_waitmessage: @ 8048614 - push {r4-r6,lr} - ldr r0, =gBattleExecBuffer - ldr r4, [r0] - cmp r4, 0 - bne _08048662 - ldr r6, =gBattleCommunication - ldrb r0, [r6, 0x7] - cmp r0, 0 - bne _0804863C - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x3 - str r0, [r1] - b _08048662 - .pool -_0804863C: - ldr r5, =gBattlescriptCurrInstr - ldr r2, [r5] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldr r3, =gUnknown_0202432C - ldrh r0, [r3] - adds r0, 0x1 - strh r0, [r3] - lsls r0, 16 - lsrs r0, 16 - cmp r0, r1 - bcc _08048662 - movs r1, 0 - strh r4, [r3] - adds r0, r2, 0x3 - str r0, [r5] - strb r1, [r6, 0x7] -_08048662: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end atk12_waitmessage - - thumb_func_start atk13_printfromtable -atk13_printfromtable: @ 8048670 - push {r4,r5,lr} - ldr r0, =gBattleExecBuffer - ldr r0, [r0] - cmp r0, 0 - bne _080486AE - ldr r4, =gBattlescriptCurrInstr - ldr r2, [r4] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - ldr r5, =gBattleCommunication - ldrb r0, [r5, 0x5] - lsls r0, 1 - adds r1, r0 - ldrh r0, [r1] - ldr r1, =gBankAttacker - ldrb r1, [r1] - bl b_std_message - ldr r0, [r4] - adds r0, 0x5 - str r0, [r4] - movs r0, 0x1 - strb r0, [r5, 0x7] -_080486AE: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk13_printfromtable - - thumb_func_start atk14_printfromtable_playeronly -atk14_printfromtable_playeronly: @ 80486C4 - push {r4-r6,lr} - ldr r0, =gBattleExecBuffer - ldr r0, [r0] - cmp r0, 0 - bne _0804870E - ldr r5, =gBattlescriptCurrInstr - ldr r2, [r5] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - ldr r6, =gBattleCommunication - ldrb r0, [r6, 0x5] - lsls r0, 1 - adds r1, r0 - ldr r4, =gActiveBank - ldr r0, =gBankAttacker - ldrb r0, [r0] - strb r0, [r4] - ldrh r1, [r1] - movs r0, 0 - bl dp01_build_cmdbuf_x11_TODO - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r5] - adds r0, 0x5 - str r0, [r5] - movs r0, 0x1 - strb r0, [r6, 0x7] -_0804870E: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end atk14_printfromtable_playeronly - - thumb_func_start sub_8048728 -sub_8048728: @ 8048728 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - movs r1, 0 - ldr r0, =gNoOfAllBanks - ldrb r3, [r0] - cmp r1, r3 - bge _0804874E - ldr r4, =gTurnOrder - ldrb r0, [r4] - cmp r0, r2 - beq _0804874E -_08048740: - adds r1, 0x1 - cmp r1, r3 - bge _0804874E - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, r2 - bne _08048740 -_0804874E: - lsls r0, r1, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8048728 - - thumb_func_start sub_8048760 -sub_8048760: @ 8048760 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - movs r0, 0 - mov r10, r0 - movs r7, 0 - movs r1, 0x1 - str r1, [sp, 0x4] - ldr r1, =gBattleCommunication - ldrb r3, [r1, 0x3] - movs r0, 0x40 - ands r0, r3 - cmp r0, 0 - beq _080487B8 - ldr r2, =gUnknown_0202420E - ldr r0, =gBankAttacker - ldrb r0, [r0] - strb r0, [r2] - movs r0, 0xBF - ands r0, r3 - adds r3, r1, 0 - strb r0, [r3, 0x3] - movs r7, 0x40 - ldr r1, =gBattleScripting - ldr r0, =gBankTarget - b _080487C4 - .pool -_080487B8: - ldr r2, =gUnknown_0202420E - ldr r0, =gBankTarget - ldrb r0, [r0] - strb r0, [r2] - ldr r1, =gBattleScripting - ldr r0, =gBankAttacker -_080487C4: - ldrb r0, [r0] - strb r0, [r1, 0x17] - mov r9, r2 - ldr r2, =gBattleMons - mov r4, r9 - ldrb r1, [r4] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x13 - bne _08048828 - ldr r0, =gHitMarker - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 6 - ands r0, r1 - cmp r0, 0 - bne _08048828 - cmp r5, 0 - bne _08048828 - ldr r1, =gBattleCommunication - ldrb r0, [r1, 0x3] - cmp r0, 0x9 - bhi _08048828 - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - ldr r2, =gBattleCommunication - strb r5, [r2, 0x3] - bl _080499B8 - .pool -_08048828: - mov r3, r9 - ldrb r0, [r3] - bl GetBankIdentity - ldr r2, =gSideAffecting - movs r1, 0x1 - ands r1, r0 - lsls r1, 1 - adds r1, r2 - ldrh r1, [r1] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08048880 - ldr r0, =gHitMarker - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 6 - ands r0, r1 - cmp r0, 0 - bne _08048880 - cmp r5, 0 - bne _08048880 - ldr r0, =gBattleCommunication - ldrb r1, [r0, 0x3] - cmp r1, 0x7 - bhi _08048880 - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - ldr r4, =gBattleCommunication - strb r5, [r4, 0x3] - bl _080499B8 - .pool -_08048880: - ldr r3, =gBattleMons - ldr r2, =gUnknown_0202420E - ldrb r1, [r2] - movs r0, 0x58 - muls r0, r1 - adds r0, r3 - ldrh r4, [r0, 0x28] - mov r9, r2 - mov r8, r3 - cmp r4, 0 - bne _080488C4 - ldr r1, =gBattleCommunication - ldrb r0, [r1, 0x3] - cmp r0, 0xB - beq _080488C4 - cmp r0, 0x1F - beq _080488C4 - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - ldr r2, =gBattleCommunication - strb r4, [r2, 0x3] - bl _080499B8 - .pool -_080488C4: - mov r3, r9 - ldrb r1, [r3] - movs r0, 0x58 - muls r0, r1 - mov r1, r8 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - cmp r0, 0 - beq _080488FC - cmp r7, 0x40 - beq _080488FC - ldr r0, =gBattlescriptCurrInstr - ldr r1, [r0] - adds r1, 0x1 - str r1, [r0] - movs r0, 0 - ldr r4, =gBattleCommunication - strb r0, [r4, 0x3] - bl _080499B8 - .pool -_080488FC: - ldr r1, =gBattleCommunication - ldrb r0, [r1, 0x3] - cmp r0, 0x6 - bls _08048906 - b _08048F40 -_08048906: - ldr r1, =gStatusFlagsForMoveEffects - ldr r2, =gBattleCommunication - ldrb r0, [r2, 0x3] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - cmp r0, 0x10 - bne _08048918 - b _08048AFC -_08048918: - cmp r0, 0x10 - bhi _08048930 - cmp r0, 0x7 - beq _0804894A - cmp r0, 0x8 - beq _08048A00 - b _08048DF4 - .pool -_08048930: - cmp r0, 0x40 - bne _08048936 - b _08048C84 -_08048936: - cmp r0, 0x40 - bhi _08048942 - cmp r0, 0x20 - bne _08048940 - b _08048BEA -_08048940: - b _08048DF4 -_08048942: - cmp r0, 0x80 - bne _08048948 - b _08048D02 -_08048948: - b _08048DF4 -_0804894A: - mov r3, r9 - ldrb r1, [r3] - movs r0, 0x58 - muls r0, r1 - add r0, r8 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x2B - beq _080489AC - ldr r0, =gActiveBank - movs r1, 0 - strb r1, [r0] - ldr r1, =gNoOfAllBanks - ldrb r3, [r1] - adds r7, r0, 0 - mov r12, r1 - cmp r3, 0 - beq _080489B8 - mov r4, r8 - ldr r0, [r4, 0x50] - movs r1, 0x70 - ands r0, r1 - cmp r0, 0 - bne _080489B8 - adds r1, r7, 0 - mov r6, r8 - adds r6, 0x50 - movs r5, 0x58 - movs r4, 0x70 -_08048984: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, r3 - bcs _080489B8 - ldrb r0, [r7] - muls r0, r5 - adds r0, r6 - ldr r0, [r0] - ands r0, r4 - cmp r0, 0 - beq _08048984 - b _080489B8 - .pool -_080489AC: - ldr r0, =gActiveBank - ldr r2, =gNoOfAllBanks - ldrb r1, [r2] - strb r1, [r0] - adds r7, r0, 0 - mov r12, r2 -_080489B8: - mov r0, r9 - ldrb r2, [r0] - movs r0, 0x58 - adds r1, r2, 0 - muls r1, r0 - mov r0, r8 - adds r0, 0x4C - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - beq _080489D0 - b _08048DF4 -_080489D0: - ldrb r0, [r7] - mov r3, r12 - ldrb r3, [r3] - cmp r0, r3 - beq _080489DC - b _08048DF4 -_080489DC: - mov r4, r8 - adds r0, r1, r4 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x48 - bne _080489EA - b _08048DF4 -_080489EA: - cmp r0, 0xF - bne _080489F0 - b _08048DF4 -_080489F0: - adds r0, r2, 0 - bl CancelMultiTurnMoves - b _08048DE4 - .pool -_08048A00: - mov r2, r9 - ldrb r1, [r2] - movs r0, 0x58 - muls r0, r1 - add r0, r8 - adds r0, 0x20 - ldrb r1, [r0] - cmp r1, 0x11 - bne _08048A70 - cmp r5, 0x1 - beq _08048A1A - cmp r6, 0x80 - bne _08048A70 -_08048A1A: - ldr r0, =gLastUsedAbility - strb r1, [r0] - mov r3, r9 - ldrb r0, [r3] - movs r1, 0x11 - bl RecordAbilityBattle - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, =gUnknown_082DB5E9 - str r0, [r4] - ldr r2, =gHitMarker - ldr r1, [r2] - movs r0, 0x80 - lsls r0, 6 - ands r0, r1 - cmp r0, 0 - bne _08048A46 - b _08048D20 -_08048A46: - movs r0, 0x1 - ldr r4, =gBattleCommunication - strb r0, [r4, 0x5] -_08048A4C: - ldr r0, =0xffffdfff - ands r1, r0 - str r1, [r2] - bl _080499B2 - .pool -_08048A70: - mov r2, r9 - ldrb r0, [r2] - movs r1, 0x58 - muls r0, r1 - add r0, r8 - adds r1, r0, 0 - adds r1, 0x21 - ldrb r1, [r1] - cmp r1, 0x3 - beq _08048A94 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0x3 - beq _08048A94 - cmp r1, 0x8 - beq _08048A94 - cmp r0, 0x8 - bne _08048AAE -_08048A94: - ldr r0, =gHitMarker - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 6 - ands r0, r1 - cmp r0, 0 - beq _08048AAE - cmp r5, 0x1 - bne _08048AA8 - b _08048D66 -_08048AA8: - cmp r6, 0x80 - bne _08048AAE - b _08048D66 -_08048AAE: - mov r3, r9 - ldrb r1, [r3] - movs r0, 0x58 - muls r1, r0 - mov r4, r8 - adds r3, r1, r4 - adds r0, r3, 0 - adds r0, 0x21 - ldrb r4, [r0] - cmp r4, 0x3 - bne _08048AC6 - b _08048DF4 -_08048AC6: - adds r0, 0x1 - ldrb r0, [r0] - cmp r0, 0x3 - bne _08048AD0 - b _08048DF4 -_08048AD0: - cmp r4, 0x8 - bne _08048AD6 - b _08048DF4 -_08048AD6: - cmp r0, 0x8 - bne _08048ADC - b _08048DF4 -_08048ADC: - mov r0, r8 - adds r0, 0x4C - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - beq _08048AEA - b _08048DF4 -_08048AEA: - adds r0, r3, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x11 - bne _08048AF6 - b _08048DF4 -_08048AF6: - b _08048DE4 - .pool -_08048AFC: - mov r2, r9 - ldrb r1, [r2] - movs r0, 0x58 - muls r0, r1 - add r0, r8 - adds r0, 0x20 - ldrb r1, [r0] - cmp r1, 0x29 - bne _08048B54 - cmp r5, 0x1 - beq _08048B16 - cmp r6, 0x80 - bne _08048B54 -_08048B16: - ldr r0, =gLastUsedAbility - strb r1, [r0] - mov r3, r9 - ldrb r0, [r3] - movs r1, 0x29 - bl RecordAbilityBattle - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, =gUnknown_082DB5D1 - str r0, [r4] - ldr r2, =gHitMarker - ldr r1, [r2] - movs r0, 0x80 - lsls r0, 6 - ands r0, r1 - cmp r0, 0 - beq _08048B42 - b _08048A46 -_08048B42: - b _08048D20 - .pool -_08048B54: - mov r2, r9 - ldrb r1, [r2] - movs r0, 0x58 - muls r0, r1 - mov r3, r8 - adds r1, r0, r3 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0xA - beq _08048B74 - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0xA - bne _08048BA4 -_08048B74: - ldr r0, =gHitMarker - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 6 - ands r0, r1 - cmp r0, 0 - beq _08048BA4 - cmp r5, 0x1 - beq _08048B8A - cmp r6, 0x80 - bne _08048BA4 -_08048B8A: - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, =gUnknown_082DB5D1 - b _08048D72 - .pool -_08048BA4: - mov r4, r9 - ldrb r0, [r4] - movs r1, 0x58 - adds r2, r0, 0 - muls r2, r1 - mov r0, r8 - adds r1, r2, r0 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0xA - bne _08048BBE - b _08048DF4 -_08048BBE: - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0xA - bne _08048BCA - b _08048DF4 -_08048BCA: - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x29 - bne _08048BD6 - b _08048DF4 -_08048BD6: - mov r0, r8 - adds r0, 0x4C - adds r0, r2, r0 - ldr r0, [r0] - cmp r0, 0 - beq _08048BE4 - b _08048DF4 -_08048BE4: - movs r1, 0x1 - mov r10, r1 - b _08048DF4 -_08048BEA: - movs r0, 0 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0xD - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _08048C26 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0x4D - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - cmp r0, 0 - bne _08048C26 - ldr r0, =gBattleWeather - ldrh r1, [r0] - movs r0, 0x60 - ands r0, r1 - cmp r0, 0 - beq _08048C26 - movs r2, 0 - str r2, [sp, 0x4] -_08048C26: - ldr r4, =gBattleMons - ldr r0, =gUnknown_0202420E - ldrb r3, [r0] - movs r0, 0x58 - adds r2, r3, 0 - muls r2, r0 - adds r1, r2, r4 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0xF - bne _08048C40 - b _08048DF4 -_08048C40: - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0xF - bne _08048C4C - b _08048DF4 -_08048C4C: - adds r0, r4, 0 - adds r0, 0x4C - adds r0, r2, r0 - ldr r0, [r0] - cmp r0, 0 - beq _08048C5A - b _08048DF4 -_08048C5A: - ldr r4, [sp, 0x4] - cmp r4, 0 - bne _08048C62 - b _08048DF4 -_08048C62: - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x28 - bne _08048C6E - b _08048DF4 -_08048C6E: - adds r0, r3, 0 - bl CancelMultiTurnMoves - b _08048DE4 - .pool -_08048C84: - mov r2, r9 - ldrb r1, [r2] - movs r0, 0x58 - muls r1, r0 - mov r3, r8 - adds r0, r1, r3 - adds r0, 0x20 - ldrb r2, [r0] - cmp r2, 0x7 - bne _08048CF4 - cmp r5, 0x1 - beq _08048CA2 - cmp r6, 0x80 - beq _08048CA2 - b _08048DF4 -_08048CA2: - ldr r0, =gLastUsedAbility - strb r2, [r0] - mov r4, r9 - ldrb r0, [r4] - movs r1, 0x7 - bl RecordAbilityBattle - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, =gUnknown_082DB5DD - str r0, [r4] - ldr r2, =gHitMarker - ldr r1, [r2] - movs r0, 0x80 - lsls r0, 6 - ands r0, r1 - cmp r0, 0 - beq _08048CE8 - movs r0, 0x1 - ldr r3, =gBattleCommunication - strb r0, [r3, 0x5] - b _08048A4C - .pool -_08048CE8: - ldr r4, =gBattleCommunication - strb r0, [r4, 0x5] - bl _080499B2 - .pool -_08048CF4: - mov r0, r8 - adds r0, 0x4C - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _08048DF4 - b _08048DE4 -_08048D02: - mov r2, r9 - ldrb r1, [r2] - movs r0, 0x58 - muls r0, r1 - add r0, r8 - adds r0, 0x20 - ldrb r1, [r0] - cmp r1, 0x11 - bne _08048D2C - cmp r5, 0x1 - bne _08048D1A - b _08048A1A -_08048D1A: - cmp r6, 0x80 - bne _08048D2C - b _08048A1A -_08048D20: - ldr r1, =gBattleCommunication - strb r0, [r1, 0x5] - bl _080499B2 - .pool -_08048D2C: - mov r2, r9 - ldrb r0, [r2] - movs r1, 0x58 - muls r0, r1 - add r0, r8 - adds r1, r0, 0 - adds r1, 0x21 - ldrb r1, [r1] - cmp r1, 0x3 - beq _08048D50 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0x3 - beq _08048D50 - cmp r1, 0x8 - beq _08048D50 - cmp r0, 0x8 - bne _08048D94 -_08048D50: - ldr r0, =gHitMarker - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 6 - ands r0, r1 - cmp r0, 0 - beq _08048D94 - cmp r5, 0x1 - beq _08048D66 - cmp r6, 0x80 - bne _08048D94 -_08048D66: - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, =gUnknown_082DB5E9 -_08048D72: - str r0, [r4] - ldr r1, =gBattleCommunication - movs r2, 0 - movs r0, 0x2 - strb r0, [r1, 0x5] - strb r2, [r1, 0x3] - bl _080499B8 - .pool -_08048D94: - mov r3, r9 - ldrb r0, [r3] - movs r6, 0x58 - muls r0, r6 - mov r2, r8 - adds r2, 0x4C - adds r5, r0, r2 - ldr r4, [r5] - cmp r4, 0 - bne _08048DF4 - mov r3, r8 - adds r1, r0, r3 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r3, [r0] - cmp r3, 0x3 - beq _08048DEA - adds r0, 0x1 - ldrb r0, [r0] - cmp r0, 0x3 - beq _08048DEA - cmp r3, 0x8 - beq _08048DEA - cmp r0, 0x8 - beq _08048DEA - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x11 - beq _08048DF4 - mov r4, r9 - ldrb r0, [r4] - adds r1, r0, 0 - muls r1, r6 - adds r1, r2 - ldr r0, [r1] - movs r2, 0x9 - negs r2, r2 - ands r0, r2 - str r0, [r1] -_08048DE4: - movs r0, 0x1 - mov r10, r0 - b _08048DF4 -_08048DEA: - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0] -_08048DF4: - mov r1, r10 - cmp r1, 0x1 - beq _08048DFC - b _08048F1C -_08048DFC: - ldr r0, =gBattlescriptCurrInstr - ldr r0, [r0] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r1, =gStatusFlagsForMoveEffects - ldr r0, =gBattleCommunication - ldrb r0, [r0, 0x3] - lsls r0, 2 - adds r0, r1 - ldr r3, [r0] - cmp r3, 0x7 - bne _08048E50 - bl Random - ldr r2, =gBattleMons - ldr r1, =gUnknown_0202420E - ldrb r3, [r1] - movs r1, 0x58 - muls r3, r1 - adds r2, 0x4C - adds r3, r2 - movs r1, 0x3 - ands r1, r0 - adds r1, 0x2 - ldr r0, [r3] - orrs r0, r1 - str r0, [r3] - b _08048E64 - .pool -_08048E50: - ldr r2, =gBattleMons - ldr r0, =gUnknown_0202420E - ldrb r1, [r0] - movs r0, 0x58 - muls r1, r0 - adds r2, 0x4C - adds r1, r2 - ldr r0, [r1] - orrs r0, r3 - str r0, [r1] -_08048E64: - ldr r2, =gBattlescriptCurrInstr - ldr r1, =gMoveEffectBS_Ptrs - ldr r5, =gBattleCommunication - ldrb r0, [r5, 0x3] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - str r0, [r2] - ldr r4, =gActiveBank - ldr r1, =gUnknown_0202420E - ldrb r0, [r1] - strb r0, [r4] - ldrb r1, [r1] - movs r0, 0x58 - muls r0, r1 - ldr r1, =gBattleMons + 0x4C - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0x28 - movs r2, 0 - movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r2, =gHitMarker - ldr r1, [r2] - movs r0, 0x80 - lsls r0, 6 - ands r0, r1 - cmp r0, 0 - beq _08048ED8 - movs r0, 0x1 - strb r0, [r5, 0x5] - ldr r0, =0xffffdfff - ands r1, r0 - str r1, [r2] - b _08048EDA - .pool -_08048ED8: - strb r0, [r5, 0x5] -_08048EDA: - ldr r0, =gBattleCommunication - ldrb r2, [r0, 0x3] - cmp r2, 0x2 - beq _08048EF2 - cmp r2, 0x6 - beq _08048EF2 - cmp r2, 0x5 - beq _08048EF2 - cmp r2, 0x3 - beq _08048EF2 - bl _080499B8 -_08048EF2: - ldr r0, =gBattleStruct - ldr r0, [r0] - adds r0, 0xB2 - ldr r2, =gBattleCommunication - ldrb r1, [r2, 0x3] - strb r1, [r0] - ldr r2, =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 7 - orrs r0, r1 - str r0, [r2] - bl _080499B8 - .pool -_08048F1C: - mov r3, r10 - cmp r3, 0 - beq _08048F26 - bl _080499B8 -_08048F26: - ldr r0, =gBattleCommunication - strb r3, [r0, 0x3] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bl _080499B8 - .pool -_08048F40: - mov r4, r9 - ldrb r1, [r4] - movs r0, 0x58 - muls r1, r0 - mov r0, r8 - adds r0, 0x50 - adds r1, r0 - ldr r2, =gStatusFlagsForMoveEffects - ldr r0, =gBattleCommunication - ldrb r3, [r0, 0x3] - lsls r0, r3, 2 - adds r0, r2 - ldr r1, [r1] - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08048F66 - bl _08049994 -_08048F66: - subs r0, r3, 0x7 - cmp r0, 0x34 - bls _08048F70 - bl _080499B2 -_08048F70: - lsls r0, 2 - ldr r1, =_08048F88 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08048F88: - .4byte _0804905C - .4byte _080490D0 - .4byte _08049244 - .4byte _0804915C - .4byte _080491D8 - .4byte _0804927C - .4byte _080492C4 - .4byte _08049390 - .4byte _080493D4 - .4byte _080493D4 - .4byte _080493D4 - .4byte _080493D4 - .4byte _080493D4 - .4byte _080493D4 - .4byte _080493D4 - .4byte _0804941C - .4byte _0804941C - .4byte _0804941C - .4byte _0804941C - .4byte _0804941C - .4byte _0804941C - .4byte _0804941C - .4byte _080494FC - .4byte _08049544 - .4byte _08049564 - .4byte _08049720 - .4byte _0804975C - .4byte _08049778 - .4byte _08049790 - .4byte _080497A8 - .4byte _08049808 - .4byte _08049820 - .4byte _08049468 - .4byte _08049468 - .4byte _08049468 - .4byte _08049468 - .4byte _08049468 - .4byte _08049468 - .4byte _08049468 - .4byte _080494B0 - .4byte _080494B0 - .4byte _080494B0 - .4byte _080494B0 - .4byte _080494B0 - .4byte _080494B0 - .4byte _080494B0 - .4byte _08049864 - .4byte _080498C0 - .4byte _080499B2 - .4byte _080499B2 - .4byte _080499B2 - .4byte _080499B2 - .4byte _080499A4 -_0804905C: - mov r1, r9 - ldrb r0, [r1] - movs r5, 0x58 - adds r1, r0, 0 - muls r1, r5 - mov r2, r8 - adds r0, r1, r2 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x14 - bne _08049076 - bl _08049994 -_08049076: - mov r4, r8 - adds r4, 0x50 - adds r0, r1, r4 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - beq _0804908A - bl _08049994 -_0804908A: - bl Random - mov r3, r9 - ldrb r1, [r3] - adds r2, r1, 0 - muls r2, r5 - adds r2, r4 - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r0 - lsrs r1, 16 - adds r1, 0x2 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r1, =gMoveEffectBS_Ptrs - ldr r0, =gBattleCommunication - ldrb r0, [r0, 0x3] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _080499B0 - .pool -_080490D0: - mov r4, r9 - ldrb r2, [r4] - movs r4, 0x58 - adds r0, r2, 0 - muls r0, r4 - add r0, r8 - adds r0, 0x20 - ldrb r1, [r0] - cmp r1, 0x27 - bne _08049114 - cmp r5, 0x1 - beq _080490F0 - cmp r6, 0x80 - beq _080490F0 - bl _08049994 -_080490F0: - ldr r0, =gLastUsedAbility - strb r1, [r0] - mov r1, r9 - ldrb r0, [r1] - movs r1, 0x27 - bl RecordAbilityBattle - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB603 - str r0, [r1] - bl _080499B2 - .pool -_08049114: - adds r0, r2, 0 - bl sub_8048728 - ldr r1, =gUnknown_02024082 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bhi _0804912A - bl _08049994 -_0804912A: - mov r2, r9 - ldrb r0, [r2] - adds r2, r0, 0 - muls r2, r4 - mov r0, r8 - adds r0, 0x50 - adds r2, r0 - ldr r1, =gStatusFlagsForMoveEffects - ldr r0, =gBattleCommunication - ldrb r0, [r0, 0x3] - lsls r0, 2 - adds r0, r1 - ldr r1, [r2] - ldr r0, [r0] - orrs r1, r0 - str r1, [r2] - bl _08049994 - .pool -_0804915C: - mov r3, r9 - ldrb r0, [r3] - movs r5, 0x58 - muls r0, r5 - mov r4, r8 - adds r4, 0x50 - adds r2, r0, r4 - ldr r1, [r2] - movs r0, 0x70 - ands r0, r1 - cmp r0, 0 - beq _08049178 - bl _08049994 -_08049178: - movs r0, 0x80 - lsls r0, 5 - orrs r1, r0 - str r1, [r2] - ldr r1, =gUnknown_02024268 - ldrb r0, [r3] - lsls r0, 1 - adds r0, r1 - ldr r1, =gCurrentMove - ldrh r1, [r1] - strh r1, [r0] - bl Random - mov r2, r9 - ldrb r1, [r2] - adds r2, r1, 0 - muls r2, r5 - adds r2, r4 - movs r1, 0x3 - ands r1, r0 - adds r1, 0x2 - lsls r1, 4 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r1, =gMoveEffectBS_Ptrs - ldr r0, =gBattleCommunication - ldrb r0, [r0, 0x3] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _080499B0 - .pool -_080491D8: - ldr r5, =gBankAttacker - ldrb r0, [r5] - bl GetBankIdentity - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - bne _08049210 - ldr r4, =gUnknown_0202432E - ldrh r3, [r4] - ldr r2, =gBattleMons - ldrb r1, [r5] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x2A - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - adds r0, r3, r0 - strh r0, [r4] - lsls r0, 16 - lsrs r0, 16 - cmp r3, r0 - bls _08049210 - ldr r3, =0x0000ffff - adds r0, r3, 0 - strh r0, [r4] -_08049210: - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r1, =gMoveEffectBS_Ptrs - ldr r0, =gBattleCommunication - ldrb r0, [r0, 0x3] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - b _080499B0 - .pool -_08049244: - mov r4, r9 - ldrb r1, [r4] - movs r0, 0x58 - muls r0, r1 - mov r1, r8 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - cmp r0, 0 - beq _0804925A - b _08049994 -_0804925A: - bl Random - ldr r4, =gBattleCommunication - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - adds r0, 0x3 - strb r0, [r4, 0x3] - movs r0, 0 - movs r1, 0 - bl sub_8048760 - b _080499B2 - .pool -_0804927C: - mov r0, r9 - ldrb r1, [r0] - movs r0, 0x58 - adds r2, r1, 0 - muls r2, r0 - mov r0, r8 - adds r0, 0x50 - adds r2, r0 - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 5 - orrs r0, r1 - str r0, [r2] - ldr r1, =gUnknown_02024268 - mov r2, r9 - ldrb r0, [r2] - lsls r0, 1 - adds r0, r1 - ldr r1, =gCurrentMove - ldrh r1, [r1] - strh r1, [r0] - ldr r0, =gProtectStructs - ldrb r1, [r2] - lsls r1, 4 - adds r1, r0 - ldrb r0, [r1, 0x1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1, 0x1] - b _08049994 - .pool -_080492C4: - mov r3, r9 - ldrb r0, [r3] - movs r6, 0x58 - muls r0, r6 - mov r4, r8 - adds r4, 0x50 - adds r0, r4 - ldr r5, [r0] - movs r0, 0xE0 - lsls r0, 8 - ands r5, r0 - cmp r5, 0 - beq _080492E0 - b _08049994 -_080492E0: - bl Random - mov r2, r9 - ldrb r1, [r2] - adds r2, r1, 0 - muls r2, r6 - adds r2, r4 - movs r1, 0x3 - ands r1, r0 - adds r1, 0x3 - lsls r1, 13 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - mov r3, r9 - ldrb r1, [r3] - ldr r2, =gBattleStruct - ldr r0, [r2] - lsls r1, 1 - adds r1, r0 - ldr r6, =gCurrentMove - ldrh r0, [r6] - strb r0, [r1, 0x4] - ldrb r1, [r3] - ldr r0, [r2] - lsls r1, 1 - adds r1, r0 - ldrh r0, [r6] - lsrs r0, 8 - strb r0, [r1, 0x5] - ldrb r1, [r3] - ldr r0, [r2] - adds r1, r0 - ldr r0, =gBankAttacker - ldrb r0, [r0] - strb r0, [r1, 0x14] - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r1, =gMoveEffectBS_Ptrs - ldr r2, =gBattleCommunication - ldrb r0, [r2, 0x3] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - str r0, [r4] - strb r5, [r2, 0x5] - ldr r3, =gUnknown_085CC982 - ldrh r0, [r3] - ldrh r4, [r6] - cmp r0, r4 - bne _0804934E - b _080499B2 -_0804934E: - adds r1, r2, 0 - adds r2, r6, 0 -_08049352: - ldrb r0, [r1, 0x5] - adds r0, 0x1 - strb r0, [r1, 0x5] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bls _08049362 - b _080499B2 -_08049362: - ldrb r0, [r1, 0x5] - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - ldrh r4, [r2] - cmp r0, r4 - bne _08049352 - b _080499B2 - .pool -_08049390: - ldr r1, =gBattleMoveDamage - ldr r0, =gUnknown_020241F4 - ldr r0, [r0] - cmp r0, 0 - bge _0804939C - adds r0, 0x3 -_0804939C: - asrs r0, 2 - str r0, [r1] - cmp r0, 0 - bne _080493A8 - movs r0, 0x1 - str r0, [r1] -_080493A8: - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r1, =gMoveEffectBS_Ptrs - ldr r0, =gBattleCommunication - ldrb r0, [r0, 0x3] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - b _080499B0 - .pool -_080493D4: - ldr r4, =gBattleCommunication - ldrb r1, [r4, 0x3] - adds r1, 0xF2 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x10 - adds r2, r7, 0 - movs r3, 0 - bl sub_8050A1C - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - beq _080493F2 - b _08049994 -_080493F2: - ldr r2, =gBattleScripting - ldrb r1, [r4, 0x3] - movs r0, 0x3F - ands r0, r1 - strb r0, [r2, 0x10] - strb r3, [r2, 0x11] - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, =gUnknown_082D8CD4 - b _080499B0 - .pool -_0804941C: - movs r0, 0x70 - negs r0, r0 - ldr r4, =gBattleCommunication - ldrb r1, [r4, 0x3] - adds r1, 0xEB - lsls r1, 24 - lsrs r1, 24 - adds r2, r7, 0 - movs r3, 0 - bl sub_8050A1C - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - beq _0804943C - b _08049994 -_0804943C: - ldr r2, =gBattleScripting - ldrb r1, [r4, 0x3] - movs r0, 0x3F - ands r0, r1 - strb r0, [r2, 0x10] - strb r3, [r2, 0x11] - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, =gUnknown_082D8D65 - b _080499B0 - .pool -_08049468: - ldr r4, =gBattleCommunication - ldrb r1, [r4, 0x3] - adds r1, 0xDA - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x20 - adds r2, r7, 0 - movs r3, 0 - bl sub_8050A1C - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - beq _08049486 - b _08049994 -_08049486: - ldr r2, =gBattleScripting - ldrb r1, [r4, 0x3] - movs r0, 0x3F - ands r0, r1 - strb r0, [r2, 0x10] - strb r3, [r2, 0x11] - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, =gUnknown_082D8CD4 - b _080499B0 - .pool -_080494B0: - movs r0, 0x60 - negs r0, r0 - ldr r4, =gBattleCommunication - ldrb r1, [r4, 0x3] - adds r1, 0xD3 - lsls r1, 24 - lsrs r1, 24 - adds r2, r7, 0 - movs r3, 0 - bl sub_8050A1C - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - beq _080494D0 - b _08049994 -_080494D0: - ldr r2, =gBattleScripting - ldrb r1, [r4, 0x3] - movs r0, 0x3F - ands r0, r1 - strb r0, [r2, 0x10] - strb r3, [r2, 0x11] - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, =gUnknown_082D8D65 - b _080499B0 - .pool -_080494FC: - mov r0, r9 - ldrb r1, [r0] - movs r0, 0x58 - adds r2, r1, 0 - muls r2, r0 - mov r0, r8 - adds r0, 0x50 - adds r2, r0 - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 15 - orrs r0, r1 - str r0, [r2] - ldr r2, =gDisableStructs - mov r3, r9 - ldrb r1, [r3] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x2 - strb r1, [r0, 0x19] - ldr r1, =gUnknown_02024268 - ldrb r0, [r3] - lsls r0, 1 - adds r0, r1 - ldr r1, =gCurrentMove - ldrh r1, [r1] - strh r1, [r0] - b _08049994 - .pool -_08049544: - ldr r0, =gBankAttacker - ldrb r1, [r0] - movs r0, 0x58 - adds r2, r1, 0 - muls r2, r0 - mov r0, r8 - adds r0, 0x50 - adds r2, r0 - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 16 -_0804955A: - orrs r0, r1 - str r0, [r2] - b _08049994 - .pool -_08049564: - ldr r5, =gBattleTypeFlags - ldr r0, [r5] - movs r1, 0x80 - lsls r1, 19 - ands r0, r1 - cmp r0, 0 - beq _08049574 - b _08049994 -_08049574: - ldr r6, =gBankAttacker - ldrb r0, [r6] - bl GetBankSide - lsls r0, 24 - lsrs r4, r0, 24 - ldrb r0, [r6] - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080495A8 - ldr r0, [r5] - ldr r1, =0x0a3f0902 - ands r0, r1 - cmp r0, 0 - bne _080495D4 - b _08049994 - .pool -_080495A8: - ldr r0, [r5] - ldr r1, =0x0a3f0902 - ands r0, r1 - cmp r0, 0 - bne _080495D4 - ldr r0, =gUnknown_020243D0 - adds r0, 0x29 - adds r0, r4, r0 - ldrb r1, [r0] - ldr r3, =gBitTable - ldr r2, =gBattlePartyID - ldrb r0, [r6] - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _080495D4 - b _08049994 -_080495D4: - ldr r2, =gBattleMons - ldr r1, =gBankTarget - ldrb r0, [r1] - movs r5, 0x58 - muls r0, r5 - adds r4, r0, r2 - ldrh r0, [r4, 0x2E] - adds r7, r1, 0 - mov r8, r2 - cmp r0, 0 - beq _0804963C - adds r0, r4, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x3C - bne _0804963C - bl b_movescr_stack_push_cursor - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB682 - str r0, [r1] - ldr r1, =gLastUsedAbility - ldrb r0, [r7] - muls r0, r5 - add r0, r8 - adds r0, 0x20 - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - ldrb r1, [r1] - bl RecordAbilityBattle - b _080499B2 - .pool -_0804963C: - ldr r4, =gBankAttacker - mov r10, r4 - ldrb r2, [r4] - movs r0, 0x58 - mov r9, r0 - mov r0, r9 - muls r0, r2 - add r0, r8 - ldrh r4, [r0, 0x2E] - cmp r4, 0 - beq _08049654 - b _08049994 -_08049654: - ldrb r0, [r7] - mov r1, r9 - muls r1, r0 - adds r0, r1, 0 - add r0, r8 - ldrh r3, [r0, 0x2E] - adds r1, r3, 0 - cmp r1, 0xAF - bne _08049668 - b _08049994 -_08049668: - adds r0, r3, 0 - subs r0, 0x79 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xB - bhi _08049676 - b _08049994 -_08049676: - cmp r1, 0 - bne _0804967C - b _08049994 -_0804967C: - ldr r5, =gBattleStruct - lsls r0, r2, 1 - adds r0, 0xD0 - ldr r1, [r5] - adds r1, r0 - ldr r2, =gLastUsedItem - strh r3, [r1] - strh r3, [r2] - ldrb r0, [r7] - mov r3, r9 - muls r3, r0 - adds r0, r3, 0 - add r0, r8 - movs r6, 0 - strh r4, [r0, 0x2E] - ldr r4, =gActiveBank - mov r1, r10 - ldrb r0, [r1] - strb r0, [r4] - str r2, [sp] - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x2 - bl dp01_build_cmdbuf_x02_a_b_varargs - mov r2, r10 - ldrb r0, [r2] - bl dp01_battle_side_mark_buffer_for_execution - ldrb r0, [r7] - strb r0, [r4] - ldrb r0, [r7] - mov r3, r9 - muls r3, r0 - adds r0, r3, 0 - mov r1, r8 - adds r1, 0x2E - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x2 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r7] - bl dp01_battle_side_mark_buffer_for_execution - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, =gUnknown_082DB422 - str r0, [r4] - ldrb r0, [r7] - ldr r1, [r5] - lsls r0, 1 - adds r0, r1 - adds r0, 0xC8 - strb r6, [r0] - ldrb r0, [r7] - ldr r1, [r5] - lsls r0, 1 - adds r0, r1 - adds r0, 0xC9 - strb r6, [r0] - b _080499B2 - .pool -_08049720: - ldr r3, =gBankTarget - ldrb r1, [r3] - movs r0, 0x58 - adds r2, r1, 0 - muls r2, r0 - mov r0, r8 - adds r0, 0x50 - adds r2, r0 - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 19 - orrs r0, r1 - str r0, [r2] - ldr r2, =gDisableStructs - ldrb r1, [r3] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, =gBankAttacker - ldrb r1, [r1] - strb r1, [r0, 0x14] - b _08049994 - .pool -_0804975C: - ldr r0, =gBankTarget - ldrb r1, [r0] - movs r0, 0x58 - adds r2, r1, 0 - muls r2, r0 - mov r0, r8 - adds r0, 0x50 - adds r2, r0 - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 20 - b _0804955A - .pool -_08049778: - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, =gUnknown_082DAF27 - b _080499B0 - .pool -_08049790: - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, =gUnknown_082DAFC3 - b _080499B0 - .pool -_080497A8: - ldr r6, =gBankTarget - ldrb r0, [r6] - movs r2, 0x58 - muls r0, r2 - mov r1, r8 - adds r1, 0x4C - adds r5, r0, r1 - ldr r4, [r5] - movs r0, 0x40 - ands r0, r4 - cmp r0, 0 - bne _080497C2 - b _08049994 -_080497C2: - movs r0, 0x41 - negs r0, r0 - ands r4, r0 - str r4, [r5] - ldr r4, =gActiveBank - ldrb r0, [r6] - strb r0, [r4] - ldrb r0, [r4] - muls r0, r2 - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0x28 - movs r2, 0 - movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, =gUnknown_082DB361 - b _080499B0 - .pool -_08049808: - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, =gUnknown_082DB117 - b _080499B0 - .pool -_08049820: - ldr r4, =gBattleMoveDamage - ldr r0, =gUnknown_020241F4 - ldr r0, [r0] - movs r1, 0x3 - bl __divsi3 - str r0, [r4] - cmp r0, 0 - bne _08049836 - movs r0, 0x1 - str r0, [r4] -_08049836: - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r1, =gMoveEffectBS_Ptrs - ldr r0, =gBattleCommunication - ldrb r0, [r0, 0x3] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - b _080499B0 - .pool -_08049864: - mov r4, r9 - ldrb r0, [r4] - movs r5, 0x58 - muls r0, r5 - mov r4, r8 - adds r4, 0x50 - adds r2, r0, r4 - ldr r1, [r2] - movs r0, 0xC0 - lsls r0, 4 - ands r0, r1 - cmp r0, 0 - beq _08049880 - b _08049994 -_08049880: - movs r0, 0x80 - lsls r0, 5 - orrs r1, r0 - str r1, [r2] - ldr r1, =gUnknown_02024268 - mov r2, r9 - ldrb r0, [r2] - lsls r0, 1 - adds r0, r1 - ldr r1, =gCurrentMove - ldrh r1, [r1] - strh r1, [r0] - bl Random - mov r3, r9 - ldrb r1, [r3] - adds r2, r1, 0 - muls r2, r5 - adds r2, r4 - movs r1, 0x1 - ands r1, r0 - adds r1, 0x2 - lsls r1, 10 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - b _080499B2 - .pool -_080498C0: - mov r4, r9 - ldrb r3, [r4] - movs r5, 0x58 - adds r0, r3, 0 - muls r0, r5 - mov r2, r8 - adds r1, r0, r2 - adds r0, r1, 0 - adds r0, 0x20 - ldrb r2, [r0] - cmp r2, 0x3C - bne _08049900 - ldrh r0, [r1, 0x2E] - cmp r0, 0 - beq _08049994 - ldr r0, =gLastUsedAbility - strb r2, [r0] - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB63F - str r0, [r1] - ldrb r0, [r4] - movs r1, 0x3C - bl RecordAbilityBattle - b _080499B2 - .pool -_08049900: - ldrh r0, [r1, 0x2E] - cmp r0, 0 - beq _08049994 - adds r0, r3, 0 - bl GetBankSide - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gLastUsedItem - mov r3, r9 - ldrb r0, [r3] - muls r0, r5 - add r0, r8 - ldrh r0, [r0, 0x2E] - strh r0, [r1] - ldrb r0, [r3] - muls r0, r5 - add r0, r8 - movs r5, 0 - movs r1, 0 - strh r1, [r0, 0x2E] - ldr r2, =gUnknown_020243D0 - adds r2, 0x29 - adds r2, r4, r2 - ldr r3, =gBitTable - ldr r1, =gBattlePartyID - mov r4, r9 - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, =gUnknown_082DB168 - str r0, [r4] - mov r1, r9 - ldrb r0, [r1] - ldr r2, =gBattleStruct - ldr r1, [r2] - lsls r0, 1 - adds r0, r1 - adds r0, 0xC8 - strb r5, [r0] - mov r3, r9 - ldrb r0, [r3] - ldr r1, [r2] - lsls r0, 1 - adds r0, r1 - adds r0, 0xC9 - strb r5, [r0] - b _080499B2 - .pool -_08049994: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - b _080499B2 - .pool -_080499A4: - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, =gUnknown_082DB1D5 -_080499B0: - str r0, [r4] -_080499B2: - ldr r1, =gBattleCommunication - movs r0, 0 - strb r0, [r1, 0x3] -_080499B8: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8048760 - - thumb_func_start atk15_seteffectwithchancetarget -atk15_seteffectwithchancetarget: @ 80499D4 - push {r4,lr} - ldr r2, =gBattleMons - ldr r0, =gBankAttacker - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x20 - bne _08049A10 - ldr r2, =gBattleMoves - ldr r0, =gCurrentMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x5] - lsls r4, r0, 1 - b _08049A20 - .pool -_08049A10: - ldr r2, =gBattleMoves - ldr r0, =gCurrentMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r4, [r0, 0x5] -_08049A20: - ldr r3, =gBattleCommunication - ldrb r2, [r3, 0x3] - movs r0, 0x80 - ands r0, r2 - cmp r0, 0 - beq _08049A50 - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - bne _08049A50 - movs r0, 0x7F - ands r0, r2 - strb r0, [r3, 0x3] - b _08049A7E - .pool -_08049A50: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, r4 - bcs _08049A9A - ldr r0, =gBattleCommunication - ldrb r0, [r0, 0x3] - cmp r0, 0 - beq _08049A9A - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - bne _08049A9A - cmp r4, 0x63 - bls _08049A90 -_08049A7E: - movs r0, 0 - movs r1, 0x80 - bl sub_8048760 - b _08049AA2 - .pool -_08049A90: - movs r0, 0 - movs r1, 0 - bl sub_8048760 - b _08049AA2 -_08049A9A: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] -_08049AA2: - ldr r0, =gBattleCommunication - movs r1, 0 - strb r1, [r0, 0x3] - ldr r0, =gBattleScripting - strb r1, [r0, 0x16] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atk15_seteffectwithchancetarget - - thumb_func_start atk16_seteffectprimary -atk16_seteffectprimary: @ 8049AC0 - push {lr} - movs r0, 0x1 - movs r1, 0 - bl sub_8048760 - pop {r0} - bx r0 - thumb_func_end atk16_seteffectprimary - - thumb_func_start atk17_seteffectsecondary -atk17_seteffectsecondary: @ 8049AD0 - push {lr} - movs r0, 0 - movs r1, 0 - bl sub_8048760 - pop {r0} - bx r0 - thumb_func_end atk17_seteffectsecondary - - thumb_func_start atk18_status_effect_clear -atk18_status_effect_clear: @ 8049AE0 - push {lr} - ldr r0, =gBattlescriptCurrInstr - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r2, =gActiveBank - strb r0, [r2] - ldr r3, =gBattleCommunication - ldrb r0, [r3, 0x3] - cmp r0, 0x6 - bhi _08049B14 - ldr r1, =gBattleMons - ldrb r2, [r2] - movs r0, 0x58 - muls r2, r0 - adds r1, 0x4C - b _08049B1E - .pool -_08049B14: - ldr r1, =gBattleMons - ldrb r2, [r2] - movs r0, 0x58 - muls r2, r0 - adds r1, 0x50 -_08049B1E: - adds r2, r1 - ldr r1, =gStatusFlagsForMoveEffects - ldrb r0, [r3, 0x3] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - ldr r0, [r2] - bics r0, r1 - str r0, [r2] - ldr r0, =gBattleCommunication - movs r2, 0 - strb r2, [r0, 0x3] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] - ldr r0, =gBattleScripting - strb r2, [r0, 0x16] - pop {r0} - bx r0 - .pool - thumb_func_end atk18_status_effect_clear - - thumb_func_start atk19_faint_pokemon -atk19_faint_pokemon: @ 8049B5C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - ldr r0, =gBattlescriptCurrInstr - ldr r2, [r0] - ldrb r1, [r2, 0x2] - adds r6, r0, 0 - cmp r1, 0 - beq _08049BE0 - ldrb r0, [r2, 0x1] - bl get_battle_side_of_something - ldr r5, =gActiveBank - strb r0, [r5] - ldr r2, =gHitMarker - ldr r1, =gBitTable - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - lsls r1, 28 - ldr r0, [r2] - ands r0, r1 - cmp r0, 0 - bne _08049B94 - b _08049E2C -_08049B94: - ldr r1, [r6] - ldrb r4, [r1, 0x3] - ldrb r0, [r1, 0x4] - lsls r0, 8 - orrs r4, r0 - ldrb r0, [r1, 0x5] - lsls r0, 16 - orrs r4, r0 - ldrb r0, [r1, 0x6] - lsls r0, 24 - orrs r4, r0 - bl b_movescr_stack_pop_cursor - str r4, [r6] - ldrb r0, [r5] - bl GetBankSide - ldr r1, =gSideAffecting - lsls r0, 24 - lsrs r0, 23 - adds r0, r1 - ldrh r2, [r0] - ldr r1, =0x0000fdff - ands r1, r2 - strh r1, [r0] - b _08049E32 - .pool -_08049BE0: - ldrb r0, [r2, 0x1] - cmp r0, 0x1 - bne _08049C08 - ldr r1, =gActiveBank - ldr r0, =gBankAttacker - ldrb r0, [r0] - strb r0, [r1] - ldr r0, =gBankTarget - ldrb r0, [r0] - mov r9, r0 - ldr r4, =gUnknown_082DA7AA - b _08049C18 - .pool -_08049C08: - ldr r1, =gActiveBank - ldr r0, =gBankTarget - ldrb r0, [r0] - strb r0, [r1] - ldr r0, =gBankAttacker - ldrb r0, [r0] - mov r9, r0 - ldr r4, =gUnknown_082DA7B7 -_08049C18: - mov r8, r1 - ldr r0, =gAbsentBankFlags - ldrb r1, [r0] - ldr r2, =gBitTable - mov r7, r8 - ldrb r3, [r7] - lsls r0, r3, 2 - adds r0, r2 - ldr r2, [r0] - ands r1, r2 - cmp r1, 0 - beq _08049C32 - b _08049E2C -_08049C32: - ldr r1, =gBattleMons - movs r0, 0x58 - muls r0, r3 - adds r0, r1 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _08049C42 - b _08049E2C -_08049C42: - ldr r5, =gHitMarker - lsls r1, r2, 28 - ldr r0, [r5] - orrs r0, r1 - str r0, [r5] - ldr r0, [r6] - adds r0, 0x7 - bl b_movescr_stack_push - str r4, [r6] - ldrb r0, [r7] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _08049CA4 - ldr r0, [r5] - movs r1, 0x80 - lsls r1, 15 - orrs r0, r1 - str r0, [r5] - ldr r1, =gBattleResults - ldrb r0, [r1] - cmp r0, 0xFE - bhi _08049C78 - adds r0, 0x1 - strb r0, [r1] -_08049C78: - ldrb r0, [r7] - bl sub_80570F4 - b _08049CCE - .pool -_08049CA4: - ldr r4, =gBattleResults - ldrb r0, [r4, 0x1] - cmp r0, 0xFE - bhi _08049CB0 - adds r0, 0x1 - strb r0, [r4, 0x1] -_08049CB0: - ldr r1, =gBattlePartyID - mov r2, r8 - ldrb r0, [r2] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0xB - movs r2, 0 - bl GetMonData - strh r0, [r4, 0x20] -_08049CCE: - ldr r2, =gHitMarker - ldr r1, [r2] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08049D0C - ldr r6, =gBattleMons - ldr r0, =gBankAttacker - ldrb r0, [r0] - movs r5, 0x58 - muls r0, r5 - adds r0, r6 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _08049D0C - movs r0, 0x41 - negs r0, r0 - ands r1, r0 - str r1, [r2] - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - bl b_movescr_stack_push - ldr r1, =gBattleMoveDamage - mov r0, r9 - muls r0, r5 - adds r0, r6 - ldrh r0, [r0, 0x28] - str r0, [r1] - ldr r0, =gUnknown_082DAE3E - str r0, [r4] -_08049D0C: - ldr r1, =gStatuses3 - ldr r6, =gBankTarget - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 7 - ands r0, r1 - cmp r0, 0 - bne _08049D24 - b _08049E32 -_08049D24: - ldr r0, =gHitMarker - ldr r5, [r0] - movs r0, 0x80 - lsls r0, 17 - ands r5, r0 - cmp r5, 0 - beq _08049D34 - b _08049E32 -_08049D34: - ldr r3, =gBankAttacker - mov r8, r3 - ldrb r0, [r3] - bl GetBankSide - adds r4, r0, 0 - ldrb r0, [r6] - bl GetBankSide - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - beq _08049E32 - ldr r0, =gBattleMons - mov r9, r0 - mov r2, r8 - ldrb r1, [r2] - movs r7, 0x58 - adds r2, r1, 0 - muls r2, r7 - adds r0, r2, r0 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _08049E32 - ldr r0, =gCurrentMove - ldrh r0, [r0] - cmp r0, 0xA5 - beq _08049E32 - ldr r0, =gBattleStruct - ldr r0, [r0] - adds r0, r1, r0 - adds r0, 0x80 - ldrb r4, [r0] - adds r0, r4, r2 - mov r6, r9 - adds r6, 0x24 - adds r0, r6 - strb r5, [r0] - ldr r5, =gBattlescriptCurrInstr - ldr r0, [r5] - bl b_movescr_stack_push - ldr r0, =gUnknown_082DB18D - str r0, [r5] - ldr r5, =gActiveBank - mov r3, r8 - ldrb r0, [r3] - strb r0, [r5] - adds r1, r4, 0 - adds r1, 0x9 - lsls r1, 24 - lsrs r1, 24 - ldrb r0, [r5] - muls r0, r7 - adds r0, r6 - adds r0, r4 - str r0, [sp] - movs r0, 0 - movs r2, 0 - movs r3, 0x1 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x2 - strb r0, [r1, 0x1] - lsls r4, 1 - mov r2, r8 - ldrb r0, [r2] - muls r0, r7 - adds r0, r4, r0 - mov r2, r9 - adds r2, 0xC - adds r0, r2 - ldrh r0, [r0] - strb r0, [r1, 0x2] - mov r3, r8 - ldrb r0, [r3] - muls r0, r7 - adds r4, r0 - adds r4, r2 - ldrh r0, [r4] - lsrs r0, 8 - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - b _08049E32 - .pool -_08049E2C: - ldr r0, [r6] - adds r0, 0x7 - str r0, [r6] -_08049E32: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end atk19_faint_pokemon - - thumb_func_start atk1A_faint_animation -atk1A_faint_animation: @ 8049E40 - push {r4,r5,lr} - ldr r0, =gBattleExecBuffer - ldr r0, [r0] - cmp r0, 0 - bne _08049E6A - ldr r5, =gBattlescriptCurrInstr - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r4, =gActiveBank - strb r0, [r4] - movs r0, 0 - bl dp01_build_cmdbuf_x0A_A_A_A - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r5] - adds r0, 0x2 - str r0, [r5] -_08049E6A: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk1A_faint_animation - - thumb_func_start atk1B_faint_effects_clear -atk1B_faint_effects_clear: @ 8049E7C - push {r4,r5,lr} - sub sp, 0x4 - ldr r0, =gBattleExecBuffer - ldr r5, [r0] - cmp r5, 0 - bne _08049EE8 - ldr r0, =gBattlescriptCurrInstr - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r4, =gActiveBank - strb r0, [r4] - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 11 - ands r0, r1 - cmp r0, 0 - beq _08049EB4 - ldr r2, =gBattleMons - ldrb r1, [r4] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _08049EDC -_08049EB4: - ldr r1, =gBattleMons - ldrb r0, [r4] - movs r2, 0x58 - muls r0, r2 - adds r1, 0x4C - adds r0, r1 - str r5, [r0] - ldrb r0, [r4] - muls r0, r2 - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0x28 - movs r2, 0 - movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_08049EDC: - bl sub_803A75C - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] -_08049EE8: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk1B_faint_effects_clear - - thumb_func_start atk1C_jumpifstatus -atk1C_jumpifstatus: @ 8049F04 - push {r4,r5,lr} - ldr r5, =gBattlescriptCurrInstr - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - lsls r0, 24 - lsrs r0, 24 - ldr r2, [r5] - ldrb r4, [r2, 0x2] - ldrb r1, [r2, 0x3] - lsls r1, 8 - adds r4, r1 - ldrb r1, [r2, 0x4] - lsls r1, 16 - adds r4, r1 - ldrb r1, [r2, 0x5] - lsls r1, 24 - adds r4, r1 - ldrb r3, [r2, 0x6] - ldrb r1, [r2, 0x7] - lsls r1, 8 - adds r3, r1 - ldrb r1, [r2, 0x8] - lsls r1, 16 - adds r3, r1 - ldrb r1, [r2, 0x9] - lsls r1, 24 - adds r3, r1 - ldr r2, =gBattleMons - movs r1, 0x58 - muls r1, r0 - adds r0, r2, 0 - adds r0, 0x4C - adds r0, r1, r0 - ldr r0, [r0] - ands r0, r4 - cmp r0, 0 - beq _08049F68 - adds r0, r1, r2 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _08049F68 - str r3, [r5] - b _08049F70 - .pool -_08049F68: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0xA - str r0, [r1] -_08049F70: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk1C_jumpifstatus - - thumb_func_start atk1D_jumpifstatus2 -atk1D_jumpifstatus2: @ 8049F7C - push {r4,r5,lr} - ldr r5, =gBattlescriptCurrInstr - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - lsls r0, 24 - lsrs r0, 24 - ldr r2, [r5] - ldrb r4, [r2, 0x2] - ldrb r1, [r2, 0x3] - lsls r1, 8 - adds r4, r1 - ldrb r1, [r2, 0x4] - lsls r1, 16 - adds r4, r1 - ldrb r1, [r2, 0x5] - lsls r1, 24 - adds r4, r1 - ldrb r3, [r2, 0x6] - ldrb r1, [r2, 0x7] - lsls r1, 8 - adds r3, r1 - ldrb r1, [r2, 0x8] - lsls r1, 16 - adds r3, r1 - ldrb r1, [r2, 0x9] - lsls r1, 24 - adds r3, r1 - ldr r2, =gBattleMons - movs r1, 0x58 - muls r1, r0 - adds r0, r2, 0 - adds r0, 0x50 - adds r0, r1, r0 - ldr r0, [r0] - ands r0, r4 - cmp r0, 0 - beq _08049FE0 - adds r0, r1, r2 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _08049FE0 - str r3, [r5] - b _08049FE8 - .pool -_08049FE0: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0xA - str r0, [r1] -_08049FE8: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk1D_jumpifstatus2 - - thumb_func_start atk1E_jumpifability -atk1E_jumpifability: @ 8049FF4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - ldr r6, =gBattlescriptCurrInstr - ldr r2, [r6] - ldrb r5, [r2, 0x2] - mov r8, r5 - ldrb r1, [r2, 0x3] - ldrb r0, [r2, 0x4] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x6] - lsls r0, 24 - adds r7, r1, r0 - ldrb r0, [r2, 0x1] - cmp r0, 0x8 - bne _0804A054 - ldr r0, =gBankAttacker - ldrb r1, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0xD - adds r2, r5, 0 - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _0804A0C8 - ldr r1, =gLastUsedAbility - strb r5, [r1] - str r7, [r6] - subs r4, 0x1 - lsls r0, r4, 24 - lsrs r0, 24 - ldrb r1, [r1] - b _0804A0B0 - .pool -_0804A054: - cmp r0, 0x9 - bne _0804A08C - ldr r0, =gBankAttacker - ldrb r1, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0xC - adds r2, r5, 0 - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _0804A0C8 - ldr r1, =gLastUsedAbility - strb r5, [r1] - str r7, [r6] - subs r4, 0x1 - lsls r0, r4, 24 - lsrs r0, 24 - ldrb r1, [r1] - b _0804A0B0 - .pool -_0804A08C: - ldrb r0, [r2, 0x1] - bl get_battle_side_of_something - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gBattleMons - movs r0, 0x58 - muls r0, r4 - adds r0, r1 - adds r0, 0x20 - ldrb r1, [r0] - cmp r1, r8 - bne _0804A0C8 - ldr r0, =gLastUsedAbility - strb r1, [r0] - str r7, [r6] - ldrb r1, [r0] - adds r0, r4, 0 -_0804A0B0: - bl RecordAbilityBattle - ldr r0, =gBattleScripting - strb r4, [r0, 0x15] - b _0804A0CE - .pool -_0804A0C8: - ldr r0, [r6] - adds r0, 0x7 - str r0, [r6] -_0804A0CE: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end atk1E_jumpifability - - thumb_func_start atk1F_jumpifsideaffecting -atk1F_jumpifsideaffecting: @ 804A0DC - push {r4-r6,lr} - ldr r0, =gBattlescriptCurrInstr - ldr r0, [r0] - ldrb r4, [r0, 0x1] - cmp r4, 0x1 - bne _0804A0FC - ldr r0, =gBankAttacker - ldrb r0, [r0] - bl GetBankIdentity - b _0804A106 - .pool -_0804A0FC: - ldr r0, =gBankTarget - ldrb r0, [r0] - bl GetBankIdentity - movs r4, 0x1 -_0804A106: - ands r4, r0 - ldr r6, =gBattlescriptCurrInstr - ldr r3, [r6] - ldrb r2, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r2, r0 - ldrb r1, [r3, 0x4] - ldrb r0, [r3, 0x5] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r3, 0x6] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r3, 0x7] - lsls r0, 24 - adds r5, r1, r0 - ldr r1, =gSideAffecting - lsls r0, r4, 1 - adds r0, r1 - ldrh r0, [r0] - ands r2, r0 - cmp r2, 0 - beq _0804A148 - str r5, [r6] - b _0804A14E - .pool -_0804A148: - adds r0, r3, 0 - adds r0, 0x8 - str r0, [r6] -_0804A14E: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end atk1F_jumpifsideaffecting - - thumb_func_start atk20_jumpifstat -atk20_jumpifstat: @ 804A154 - push {r4,r5,lr} - movs r5, 0 - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gBattleMons - ldr r3, [r4] - movs r1, 0x58 - muls r0, r1 - ldrb r1, [r3, 0x3] - adds r0, r1 - adds r2, 0x18 - adds r0, r2 - ldrb r2, [r0] - ldrb r0, [r3, 0x2] - cmp r0, 0x5 - bhi _0804A212 - lsls r0, 2 - ldr r1, =_0804A194 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0804A194: - .4byte _0804A1AC - .4byte _0804A1BC - .4byte _0804A1CC - .4byte _0804A1DC - .4byte _0804A1EC - .4byte _0804A200 -_0804A1AC: - ldr r0, =gBattlescriptCurrInstr - ldr r0, [r0] - ldrb r0, [r0, 0x4] - cmp r2, r0 - bne _0804A212 - b _0804A20C - .pool -_0804A1BC: - ldr r0, =gBattlescriptCurrInstr - ldr r0, [r0] - ldrb r0, [r0, 0x4] - cmp r2, r0 - beq _0804A212 - b _0804A20C - .pool -_0804A1CC: - ldr r0, =gBattlescriptCurrInstr - ldr r0, [r0] - ldrb r0, [r0, 0x4] - cmp r2, r0 - bls _0804A212 - b _0804A20C - .pool -_0804A1DC: - ldr r0, =gBattlescriptCurrInstr - ldr r0, [r0] - ldrb r0, [r0, 0x4] - cmp r2, r0 - bcs _0804A212 - b _0804A20C - .pool -_0804A1EC: - ldr r0, =gBattlescriptCurrInstr - ldr r0, [r0] - ldrb r0, [r0, 0x4] - ands r2, r0 - cmp r2, 0 - beq _0804A212 - b _0804A20C - .pool -_0804A200: - ldr r0, =gBattlescriptCurrInstr - ldr r0, [r0] - ldrb r0, [r0, 0x4] - ands r2, r0 - cmp r2, 0 - bne _0804A212 -_0804A20C: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_0804A212: - cmp r5, 0 - beq _0804A238 - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x5] - ldrb r0, [r2, 0x6] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x7] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x8] - lsls r0, 24 - adds r1, r0 - str r1, [r3] - b _0804A240 - .pool -_0804A238: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x9 - str r0, [r1] -_0804A240: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk20_jumpifstat - - thumb_func_start atk21_jumpifstatus3 -atk21_jumpifstatus3: @ 804A24C - push {r4-r6,lr} - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r5, =gActiveBank - strb r0, [r5] - ldr r2, [r4] - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - adds r6, r1, r0 - ldrb r1, [r2, 0x7] - ldrb r0, [r2, 0x8] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x9] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0xA] - lsls r0, 24 - adds r3, r1, r0 - ldrb r0, [r2, 0x6] - cmp r0, 0 - beq _0804A2AC - ldr r0, =gStatuses3 - ldrb r1, [r5] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - ands r0, r6 - cmp r0, 0 - bne _0804A2C4 - b _0804A2BC - .pool -_0804A2AC: - ldr r0, =gStatuses3 - ldrb r1, [r5] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - ands r0, r6 - cmp r0, 0 - beq _0804A2C4 -_0804A2BC: - str r3, [r4] - b _0804A2CA - .pool -_0804A2C4: - adds r0, r2, 0 - adds r0, 0xB - str r0, [r4] -_0804A2CA: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end atk21_jumpifstatus3 - - thumb_func_start atk22_jumpiftype -atk22_jumpiftype: @ 804A2D0 - push {r4-r6,lr} - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - lsls r0, 24 - lsrs r0, 24 - ldr r3, [r4] - ldrb r5, [r3, 0x2] - ldrb r2, [r3, 0x3] - ldrb r1, [r3, 0x4] - lsls r1, 8 - adds r2, r1 - ldrb r1, [r3, 0x5] - lsls r1, 16 - adds r2, r1 - ldrb r1, [r3, 0x6] - lsls r1, 24 - adds r6, r2, r1 - ldr r2, =gBattleMons - movs r1, 0x58 - muls r0, r1 - adds r1, r0, r2 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, r5 - beq _0804A314 - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, r5 - bne _0804A320 -_0804A314: - str r6, [r4] - b _0804A324 - .pool -_0804A320: - adds r0, r3, 0x7 - str r0, [r4] -_0804A324: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end atk22_jumpiftype - - thumb_func_start atk23_getexp -atk23_getexp: @ 804A32C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r6, 0 - ldr r0, =gBattleStruct - ldr r0, [r0] - adds r0, 0x50 - mov r9, r0 - ldr r0, =gBattlescriptCurrInstr - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r1, =gUnknown_0202420D - strb r0, [r1] - ldr r2, =gUnknown_020243FE - movs r1, 0x2 - ands r1, r0 - lsls r1, 24 - lsrs r1, 25 - adds r1, r2 - ldrb r1, [r1] - mov r8, r1 - ldr r0, =gBattleScripting - ldrb r0, [r0, 0x1C] - cmp r0, 0x6 - bls _0804A368 - bl _0804ACB2 -_0804A368: - lsls r0, 2 - ldr r1, =_0804A38C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0804A38C: - .4byte _0804A3A8 - .4byte _0804A414 - .4byte _0804A52E - .4byte _0804A850 - .4byte _0804A954 - .4byte _0804AC40 - .4byte _0804AC88 -_0804A3A8: - ldr r4, =gUnknown_0202420D - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0804A3BC - bl _0804AC7C -_0804A3BC: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - ldr r1, =0x063f0982 - ands r0, r1 - cmp r0, 0 - beq _0804A3CC - bl _0804AC7C -_0804A3CC: - ldr r1, =gBattleScripting - ldrb r0, [r1, 0x1C] - adds r0, 0x1 - strb r0, [r1, 0x1C] - ldr r0, =gBattleStruct - ldr r2, [r0] - adds r2, 0xDF - ldr r3, =gBitTable - ldr r1, =gBattlePartyID - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - bl _0804ACB2 - .pool -_0804A414: - movs r5, 0 - movs r7, 0 -_0804A418: - movs r0, 0x64 - adds r1, r7, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _0804A486 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _0804A486 - ldr r0, =gBitTable - lsls r1, r7, 2 - adds r1, r0 - ldr r0, [r1] - mov r1, r8 - ands r0, r1 - cmp r0, 0 - beq _0804A44C - adds r5, 0x1 -_0804A44C: - adds r0, r4, 0 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xAF - bne _0804A478 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003226 - adds r0, r2 - ldrb r4, [r0] - b _0804A480 - .pool -_0804A478: - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r4, r0, 24 -_0804A480: - cmp r4, 0x19 - bne _0804A486 - adds r6, 0x1 -_0804A486: - adds r7, 0x1 - cmp r7, 0x5 - ble _0804A418 - ldr r3, =gBaseStats - ldr r2, =gBattleMons - ldr r0, =gUnknown_0202420D - ldrb r1, [r0] - movs r0, 0x58 - muls r1, r0 - adds r1, r2 - ldrh r2, [r1] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r3 - ldrb r2, [r0, 0x9] - adds r1, 0x2A - ldrb r0, [r1] - muls r0, r2 - movs r1, 0x7 - bl __divsi3 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r6, 0 - beq _0804A4FC - lsrs r4, r0, 17 - adds r0, r4, 0 - adds r1, r5, 0 - bl __divsi3 - mov r1, r9 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - bne _0804A4D2 - movs r0, 0x1 - strh r0, [r1] -_0804A4D2: - ldr r5, =gUnknown_02024402 - adds r0, r4, 0 - adds r1, r6, 0 - bl __divsi3 - strh r0, [r5] - lsls r0, 16 - cmp r0, 0 - bne _0804A516 - movs r0, 0x1 - strh r0, [r5] - b _0804A516 - .pool -_0804A4FC: - adds r0, r1, 0 - adds r1, r5, 0 - bl __divsi3 - mov r2, r9 - strh r0, [r2] - lsls r0, 16 - cmp r0, 0 - bne _0804A512 - movs r0, 0x1 - strh r0, [r2] -_0804A512: - ldr r0, =gUnknown_02024402 - strh r6, [r0] -_0804A516: - ldr r1, =gBattleScripting - ldrb r0, [r1, 0x1C] - adds r0, 0x1 - movs r2, 0 - strb r0, [r1, 0x1C] - ldr r1, =gBattleStruct - ldr r0, [r1] - strb r2, [r0, 0x10] - ldr r0, [r1] - adds r0, 0x53 - mov r4, r8 - strb r4, [r0] -_0804A52E: - ldr r0, =gBattleExecBuffer - ldr r0, [r0] - cmp r0, 0 - beq _0804A538 - b _0804ACB2 -_0804A538: - ldr r0, =gBattleStruct - ldr r0, [r0] - ldrb r1, [r0, 0x10] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xAF - bne _0804A57C - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003226 - adds r0, r1 - ldrb r4, [r0] - b _0804A584 - .pool -_0804A57C: - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r4, r0, 24 -_0804A584: - ldr r5, =gBattleStruct - cmp r4, 0x19 - beq _0804A5AC - ldr r0, [r5] - adds r1, r0, 0 - adds r1, 0x53 - ldrb r0, [r1] - movs r2, 0x1 - ands r2, r0 - cmp r2, 0 - bne _0804A5AC - lsrs r0, 1 - strb r0, [r1] - ldr r1, =gBattleScripting - b _0804A5D0 - .pool -_0804A5AC: - ldr r0, [r5] - ldrb r1, [r0, 0x10] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x38 - bl GetMonData - cmp r0, 0x64 - bne _0804A5E8 - ldr r1, [r5] - adds r1, 0x53 - ldrb r0, [r1] - lsrs r0, 1 - strb r0, [r1] - ldr r1, =gBattleScripting - movs r2, 0 -_0804A5D0: - movs r0, 0x5 - strb r0, [r1, 0x1C] - ldr r0, =gBattleMoveDamage - str r2, [r0] - b _0804ACB2 - .pool -_0804A5E8: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x8 - ands r0, r1 - cmp r0, 0 - bne _0804A616 - ldr r0, =gBattleMons - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _0804A616 - ldr r0, [r5] - ldrb r0, [r0, 0x12] - cmp r0, 0 - bne _0804A616 - bl sub_805EA60 - ldr r0, =0x00000161 - bl PlayBGM - ldr r1, [r5] - ldrb r0, [r1, 0x12] - adds r0, 0x1 - strb r0, [r1, 0x12] -_0804A616: - ldr r5, =gBattleStruct - ldr r0, [r5] - ldrb r1, [r0, 0x10] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - bne _0804A630 - b _0804A824 -_0804A630: - ldr r0, [r5] - adds r0, 0x53 - ldrb r0, [r0] - movs r3, 0x1 - ands r3, r0 - cmp r3, 0 - beq _0804A664 - ldr r1, =gBattleMoveDamage - mov r2, r9 - ldrh r0, [r2] - str r0, [r1] - mov r9, r1 - b _0804A66A - .pool -_0804A664: - ldr r0, =gBattleMoveDamage - str r3, [r0] - mov r9, r0 -_0804A66A: - cmp r4, 0x19 - bne _0804A67A - ldr r0, =gUnknown_02024402 - ldrh r1, [r0] - mov r2, r9 - ldr r0, [r2] - adds r0, r1 - str r0, [r2] -_0804A67A: - cmp r4, 0x28 - bne _0804A68E - mov r4, r9 - ldr r1, [r4] - movs r0, 0x96 - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - str r0, [r4] -_0804A68E: - ldr r5, =gBattleTypeFlags - ldr r0, [r5] - movs r1, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0804A6AA - ldr r4, =gBattleMoveDamage - ldr r1, [r4] - movs r0, 0x96 - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - str r0, [r4] -_0804A6AA: - ldr r4, =gBattleStruct - ldr r0, [r4] - ldrb r1, [r0, 0x10] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - bl IsTradedMon - lsls r0, 24 - cmp r0, 0 - beq _0804A714 - ldr r0, [r5] - movs r1, 0x80 - lsls r1, 15 - ands r0, r1 - cmp r0, 0 - beq _0804A6F8 - ldr r0, [r4] - ldrb r0, [r0, 0x10] - cmp r0, 0x2 - bls _0804A6F8 - ldr r7, =0x00000149 - ldr r0, =gBattleMoveDamage - mov r9, r0 - b _0804A71A - .pool -_0804A6F8: - ldr r4, =gBattleMoveDamage - ldr r1, [r4] - movs r0, 0x96 - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - str r0, [r4] - movs r7, 0xA5 - lsls r7, 1 - mov r9, r4 - b _0804A71A - .pool -_0804A714: - ldr r7, =0x00000149 - ldr r1, =gBattleMoveDamage - mov r9, r1 -_0804A71A: - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x1 - ands r1, r0 - cmp r1, 0 - beq _0804A786 - ldr r0, =gBattlePartyID - ldr r1, =gBattleStruct - ldr r4, [r1] - ldrh r0, [r0, 0x4] - adds r5, r1, 0 - ldr r3, =gBitTable - ldr r2, =gAbsentBankFlags - ldrb r1, [r4, 0x10] - cmp r0, r1 - bne _0804A76C - ldrb r1, [r2] - ldr r0, [r3, 0x8] - ands r1, r0 - cmp r1, 0 - bne _0804A76C - adds r1, r4, 0 - adds r1, 0x8F - movs r0, 0x2 - strb r0, [r1] - b _0804A78E - .pool -_0804A76C: - ldrb r2, [r2] - ldr r0, [r3] - ands r2, r0 - cmp r2, 0 - bne _0804A77E - ldr r0, [r5] - adds r0, 0x8F - strb r2, [r0] - b _0804A78E -_0804A77E: - ldr r0, [r5] - adds r0, 0x8F - movs r1, 0x2 - b _0804A78C -_0804A786: - ldr r0, =gBattleStruct - ldr r0, [r0] - adds r0, 0x8F -_0804A78C: - strb r1, [r0] -_0804A78E: - ldr r1, =gBattleTextBuff1 - movs r2, 0 - mov r12, r2 - movs r3, 0xFD - strb r3, [r1] - movs r5, 0x4 - strb r5, [r1, 0x1] - ldr r6, =gBattleStruct - ldr r2, [r6] - movs r4, 0x8F - adds r4, r2 - mov r8, r4 - ldrb r0, [r4] - strb r0, [r1, 0x2] - ldrb r0, [r2, 0x10] - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r1, =gBattleTextBuff2 - strb r3, [r1] - mov r0, r12 - strb r0, [r1, 0x1] - strb r7, [r1, 0x2] - movs r4, 0xFF - lsls r4, 8 - ands r7, r4 - asrs r0, r7, 8 - strb r0, [r1, 0x3] - movs r0, 0x1 - negs r0, r0 - strb r0, [r1, 0x4] - ldr r1, =gBattleTextBuff3 - strb r3, [r1] - movs r0, 0x1 - strb r0, [r1, 0x1] - strb r5, [r1, 0x2] - movs r0, 0x5 - strb r0, [r1, 0x3] - mov r0, r9 - ldr r2, [r0] - strb r2, [r1, 0x4] - adds r0, r2, 0 - ands r0, r4 - asrs r0, 8 - strb r0, [r1, 0x5] - movs r0, 0xFF - lsls r0, 16 - ands r0, r2 - asrs r0, 16 - strb r0, [r1, 0x6] - lsrs r2, 24 - strb r2, [r1, 0x7] - movs r0, 0x1 - negs r0, r0 - strb r0, [r1, 0x8] - mov r2, r8 - ldrb r1, [r2] - movs r0, 0xD - bl b_std_message - ldr r0, [r6] - ldrb r1, [r0, 0x10] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r3, =gBattleMons - ldr r1, =gUnknown_0202420D - ldrb r2, [r1] - movs r1, 0x58 - muls r1, r2 - adds r1, r3 - ldrh r1, [r1] - bl MonGainEVs -_0804A824: - ldr r0, =gBattleStruct - ldr r1, [r0] - adds r1, 0x53 - ldrb r0, [r1] - lsrs r0, 1 - strb r0, [r1] - b _0804A92A - .pool -_0804A850: - ldr r0, =gBattleExecBuffer - ldr r2, [r0] - cmp r2, 0 - beq _0804A85A - b _0804ACB2 -_0804A85A: - ldr r1, =gBattleBufferB - ldr r7, =gBattleStruct - ldr r0, [r7] - adds r0, 0x8F - ldrb r0, [r0] - lsls r0, 9 - adds r0, r1 - strb r2, [r0] - ldr r0, [r7] - ldrb r0, [r0, 0x10] - movs r6, 0x64 - muls r0, r6 - ldr r5, =gPlayerParty - adds r0, r5 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _0804A92A - ldr r0, [r7] - ldrb r0, [r0, 0x10] - muls r0, r6 - adds r0, r5 - movs r1, 0x38 - bl GetMonData - cmp r0, 0x64 - beq _0804A92A - ldr r0, [r7] - ldrb r0, [r0, 0x10] - muls r0, r6 - adds r0, r5 - movs r1, 0x3A - bl GetMonData - ldr r4, =gBattleResources - ldr r1, [r4] - ldr r1, [r1, 0x10] - strh r0, [r1] - ldr r0, [r7] - ldrb r0, [r0, 0x10] - muls r0, r6 - adds r0, r5 - movs r1, 0x3B - bl GetMonData - ldr r1, [r4] - ldr r1, [r1, 0x10] - strh r0, [r1, 0x2] - ldr r0, [r7] - ldrb r0, [r0, 0x10] - muls r0, r6 - adds r0, r5 - movs r1, 0x3C - bl GetMonData - ldr r1, [r4] - ldr r1, [r1, 0x10] - strh r0, [r1, 0x4] - ldr r0, [r7] - ldrb r0, [r0, 0x10] - muls r0, r6 - adds r0, r5 - movs r1, 0x3D - bl GetMonData - ldr r1, [r4] - ldr r1, [r1, 0x10] - strh r0, [r1, 0x6] - ldr r0, [r7] - ldrb r0, [r0, 0x10] - muls r0, r6 - adds r0, r5 - movs r1, 0x3E - bl GetMonData - ldr r1, [r4] - ldr r1, [r1, 0x10] - strh r0, [r1, 0x8] - ldr r0, [r7] - ldrb r0, [r0, 0x10] - muls r0, r6 - adds r0, r5 - movs r1, 0x3F - bl GetMonData - ldr r1, [r4] - ldr r1, [r1, 0x10] - strh r0, [r1, 0xA] - ldr r4, =gActiveBank - ldr r1, [r7] - adds r0, r1, 0 - adds r0, 0x8F - ldrb r0, [r0] - strb r0, [r4] - ldrb r1, [r1, 0x10] - ldr r0, =gBattleMoveDamage - ldrh r2, [r0] - movs r0, 0 - bl dp01_build_cmdbuf_x19_a_bb - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_0804A92A: - ldr r1, =gBattleScripting - ldrb r0, [r1, 0x1C] - adds r0, 0x1 - strb r0, [r1, 0x1C] - b _0804ACB2 - .pool -_0804A954: - ldr r0, =gBattleExecBuffer - ldr r0, [r0] - cmp r0, 0 - beq _0804A95E - b _0804ACB2 -_0804A95E: - ldr r1, =gActiveBank - ldr r0, =gBattleStruct - ldr r4, [r0] - adds r0, r4, 0 - adds r0, 0x8F - ldrb r0, [r0] - strb r0, [r1] - ldr r3, =gBattleBufferB - ldrb r2, [r1] - lsls r1, r2, 9 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, 0x21 - beq _0804A97C - b _0804AC28 -_0804A97C: - adds r0, r3, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - cmp r0, 0xB - beq _0804A988 - b _0804AC28 -_0804A988: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0804A9B2 - ldr r0, =gBattlePartyID - lsls r1, r2, 1 - adds r1, r0 - ldrh r0, [r1] - ldrb r4, [r4, 0x10] - cmp r0, r4 - bne _0804A9B2 - adds r1, r0, 0 - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - adds r1, r2, 0 - bl sub_805E990 -_0804A9B2: - ldr r1, =gBattleTextBuff1 - movs r3, 0xFD - strb r3, [r1] - movs r0, 0x4 - strb r0, [r1, 0x1] - ldr r6, =gActiveBank - ldrb r0, [r6] - strb r0, [r1, 0x2] - ldr r4, =gBattleStruct - mov r9, r4 - ldr r2, [r4] - ldrb r0, [r2, 0x10] - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r4, =gBattleTextBuff2 - strb r3, [r4] - movs r0, 0x1 - strb r0, [r4, 0x1] - strb r0, [r4, 0x2] - movs r0, 0x3 - strb r0, [r4, 0x3] - ldrb r0, [r2, 0x10] - movs r1, 0x64 - mov r8, r1 - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - ldr r7, =gPlayerParty - adds r0, r7 - movs r1, 0x38 - bl GetMonData - strb r0, [r4, 0x4] - movs r0, 0x1 - negs r0, r0 - strb r0, [r4, 0x5] - bl b_movescr_stack_push_cursor - ldr r2, =gUnknown_03005D54 - ldr r1, =gBitTable - mov r4, r9 - ldr r5, [r4] - ldrb r0, [r5, 0x10] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DABBD - str r0, [r1] - ldr r4, =gBattleMoveDamage - ldr r2, =gBattleBufferB - ldrb r1, [r6] - lsls r1, 9 - adds r0, r2, 0x2 - adds r0, r1, r0 - ldrb r3, [r0] - adds r2, 0x3 - adds r1, r2 - ldrb r0, [r1] - lsls r0, 8 - orrs r3, r0 - str r3, [r4] - ldrb r0, [r5, 0x10] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r7 - movs r1, 0 - bl AdjustFriendship - ldr r1, =gBattlePartyID - mov r2, r9 - ldr r0, [r2] - ldrb r2, [r0, 0x10] - ldrh r0, [r1] - cmp r0, r2 - bne _0804AB1E - ldr r4, =gBattleMons - ldrh r0, [r4, 0x28] - cmp r0, 0 - beq _0804AB1E - mov r0, r8 - muls r0, r2 - adds r0, r7 - movs r1, 0x38 - bl GetMonData - adds r1, r4, 0 - adds r1, 0x2A - strb r0, [r1] - mov r1, r9 - ldr r0, [r1] - ldrb r0, [r0, 0x10] - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - adds r0, r7 - movs r1, 0x39 - bl GetMonData - strh r0, [r4, 0x28] - mov r1, r9 - ldr r0, [r1] - ldrb r0, [r0, 0x10] - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - adds r0, r7 - movs r1, 0x3A - bl GetMonData - strh r0, [r4, 0x2C] - mov r1, r9 - ldr r0, [r1] - ldrb r0, [r0, 0x10] - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - adds r0, r7 - movs r1, 0x3B - bl GetMonData - strh r0, [r4, 0x2] - mov r1, r9 - ldr r0, [r1] - ldrb r0, [r0, 0x10] - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - adds r0, r7 - movs r1, 0x3C - bl GetMonData - strh r0, [r4, 0x4] - mov r1, r9 - ldr r0, [r1] - ldrb r0, [r0, 0x10] - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - adds r0, r7 - movs r1, 0x3D - bl GetMonData - strh r0, [r4, 0x6] - mov r1, r9 - ldr r0, [r1] - ldrb r0, [r0, 0x10] - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - adds r0, r7 - movs r1, 0x3D - bl GetMonData - strh r0, [r4, 0x6] - mov r1, r9 - ldr r0, [r1] - ldrb r0, [r0, 0x10] - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - adds r0, r7 - movs r1, 0x3E - bl GetMonData - strh r0, [r4, 0x8] - mov r1, r9 - ldr r0, [r1] - ldrb r0, [r0, 0x10] - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - adds r0, r7 - movs r1, 0x3F - bl GetMonData - strh r0, [r4, 0xA] -_0804AB1E: - ldr r0, =gBattlePartyID - ldr r7, =gBattleStruct - ldr r1, [r7] - ldrb r2, [r1, 0x10] - ldrh r0, [r0, 0x4] - cmp r0, r2 - beq _0804AB2E - b _0804AC2E -_0804AB2E: - ldr r6, =gBattleMons - movs r4, 0xD8 - adds r4, r6 - mov r8, r4 - ldrh r0, [r4] - cmp r0, 0 - beq _0804AC2E - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0804AC2E - movs r5, 0x64 - adds r0, r2, 0 - muls r0, r5 - ldr r4, =gPlayerParty - adds r0, r4 - movs r1, 0x38 - bl GetMonData - adds r1, r6, 0 - adds r1, 0xDA - strb r0, [r1] - ldr r0, [r7] - ldrb r0, [r0, 0x10] - muls r0, r5 - adds r0, r4 - movs r1, 0x39 - bl GetMonData - mov r1, r8 - strh r0, [r1] - ldr r0, [r7] - ldrb r0, [r0, 0x10] - muls r0, r5 - adds r0, r4 - movs r1, 0x3A - bl GetMonData - adds r1, r6, 0 - adds r1, 0xDC - strh r0, [r1] - ldr r0, [r7] - ldrb r0, [r0, 0x10] - muls r0, r5 - adds r0, r4 - movs r1, 0x3B - bl GetMonData - adds r1, r6, 0 - adds r1, 0xB2 - strh r0, [r1] - ldr r0, [r7] - ldrb r0, [r0, 0x10] - muls r0, r5 - adds r0, r4 - movs r1, 0x3C - bl GetMonData - adds r1, r6, 0 - adds r1, 0xB4 - strh r0, [r1] - ldr r0, [r7] - ldrb r0, [r0, 0x10] - muls r0, r5 - adds r0, r4 - movs r1, 0x3D - bl GetMonData - movs r2, 0xB6 - adds r2, r6 - mov r8, r2 - strh r0, [r2] - ldr r0, [r7] - ldrb r0, [r0, 0x10] - muls r0, r5 - adds r0, r4 - movs r1, 0x3D - bl GetMonData - mov r1, r8 - strh r0, [r1] - ldr r0, [r7] - ldrb r0, [r0, 0x10] - muls r0, r5 - adds r0, r4 - movs r1, 0x3E - bl GetMonData - adds r1, r6, 0 - adds r1, 0xB8 - strh r0, [r1] - b _0804AC2E - .pool -_0804AC28: - ldr r1, =gBattleMoveDamage - movs r0, 0 - str r0, [r1] -_0804AC2E: - ldr r1, =gBattleScripting - movs r0, 0x5 - strb r0, [r1, 0x1C] - b _0804ACB2 - .pool -_0804AC40: - ldr r0, =gBattleMoveDamage - ldr r0, [r0] - cmp r0, 0 - beq _0804AC58 - ldr r1, =gBattleScripting - movs r0, 0x3 - strb r0, [r1, 0x1C] - b _0804ACB2 - .pool -_0804AC58: - ldr r2, =gBattleStruct - ldr r1, [r2] - ldrb r0, [r1, 0x10] - adds r0, 0x1 - strb r0, [r1, 0x10] - ldr r0, [r2] - ldrb r0, [r0, 0x10] - cmp r0, 0x5 - bhi _0804AC7C - ldr r1, =gBattleScripting - movs r0, 0x2 - strb r0, [r1, 0x1C] - b _0804ACB2 - .pool -_0804AC7C: - ldr r1, =gBattleScripting - movs r0, 0x6 - strb r0, [r1, 0x1C] - b _0804ACB2 - .pool -_0804AC88: - ldr r0, =gBattleExecBuffer - ldr r5, [r0] - cmp r5, 0 - bne _0804ACB2 - ldr r4, =gBattleMons - ldr r2, =gUnknown_0202420D - ldrb r0, [r2] - movs r1, 0x58 - muls r0, r1 - adds r0, r4 - movs r3, 0 - strh r5, [r0, 0x2E] - ldrb r0, [r2] - muls r0, r1 - adds r0, r4 - adds r0, 0x20 - strb r3, [r0] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] -_0804ACB2: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk23_getexp - - thumb_func_start atk24 -atk24: @ 804ACD0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r6, 0 - ldr r0, =gBattleExecBuffer - ldr r0, [r0] - cmp r0, 0 - beq _0804ACE2 - b _0804AF22 -_0804ACE2: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 15 - ands r0, r1 - cmp r0, 0 - beq _0804AD48 - ldr r0, =gPartnerTrainerId - ldrh r1, [r0] - ldr r0, =0x00000c03 - cmp r1, r0 - bne _0804AD48 - movs r5, 0 -_0804ACFC: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _0804AD2C - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _0804AD2C - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - adds r0, r6, r0 - lsls r0, 16 - lsrs r6, r0, 16 -_0804AD2C: - adds r5, 0x1 - cmp r5, 0x2 - ble _0804ACFC - b _0804ADA8 - .pool -_0804AD48: - movs r5, 0 -_0804AD4A: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _0804ADA2 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _0804ADA2 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 11 - ands r0, r1 - cmp r0, 0 - beq _0804AD94 - ldr r0, =gBattleStruct - ldr r0, [r0] - movs r1, 0xA8 - lsls r1, 2 - adds r0, r1 - ldrb r1, [r0] - ldr r2, =gBitTable - lsls r0, r5, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _0804ADA2 -_0804AD94: - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - adds r0, r6, r0 - lsls r0, 16 - lsrs r6, r0, 16 -_0804ADA2: - adds r5, 0x1 - cmp r5, 0x5 - ble _0804AD4A -_0804ADA8: - cmp r6, 0 - bne _0804ADB6 - ldr r0, =gBattleOutcome - ldrb r1, [r0] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r0] -_0804ADB6: - movs r6, 0 - movs r5, 0 -_0804ADBA: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gEnemyParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _0804AE10 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _0804AE10 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 11 - ands r0, r1 - cmp r0, 0 - beq _0804AE02 - ldr r0, =gBattleStruct - ldr r0, [r0] - ldr r1, =0x000002a1 - adds r0, r1 - ldrb r1, [r0] - ldr r2, =gBitTable - lsls r0, r5, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _0804AE10 -_0804AE02: - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - adds r0, r6, r0 - lsls r0, 16 - lsrs r6, r0, 16 -_0804AE10: - adds r5, 0x1 - cmp r5, 0x5 - ble _0804ADBA - ldr r2, =gBattleOutcome - cmp r6, 0 - bne _0804AE24 - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] -_0804AE24: - ldrb r0, [r2] - cmp r0, 0 - bne _0804AF1A - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - ldr r2, =0x02000002 - ands r1, r2 - mov r8, r0 - cmp r1, 0 - beq _0804AF1A - movs r3, 0 - movs r5, 0 - ldr r0, =gNoOfAllBanks - ldrb r1, [r0] - mov r12, r0 - ldr r7, =gBattlescriptCurrInstr - cmp r3, r1 - bge _0804AE70 - ldr r0, =gHitMarker - movs r6, 0x80 - lsls r6, 21 - ldr r4, [r0] - adds r2, r1, 0 - ldr r1, =gSpecialStatuses -_0804AE54: - adds r0, r6, 0 - lsls r0, r5 - ands r0, r4 - cmp r0, 0 - beq _0804AE68 - ldrb r0, [r1] - lsls r0, 25 - cmp r0, 0 - blt _0804AE68 - adds r3, 0x1 -_0804AE68: - adds r1, 0x28 - adds r5, 0x2 - cmp r5, r2 - blt _0804AE54 -_0804AE70: - movs r2, 0 - movs r5, 0x1 - mov r4, r12 - ldrb r1, [r4] - cmp r5, r1 - bge _0804AEAA - ldr r0, =gHitMarker - movs r4, 0x80 - lsls r4, 21 - mov r12, r4 - ldr r6, [r0] - ldr r0, =gSpecialStatuses - adds r4, r1, 0 - adds r1, r0, 0 - adds r1, 0x14 -_0804AE8E: - mov r0, r12 - lsls r0, r5 - ands r0, r6 - cmp r0, 0 - beq _0804AEA2 - ldrb r0, [r1] - lsls r0, 25 - cmp r0, 0 - blt _0804AEA2 - adds r2, 0x1 -_0804AEA2: - adds r1, 0x28 - adds r5, 0x2 - cmp r5, r4 - blt _0804AE8E -_0804AEAA: - mov r1, r8 - ldr r0, [r1] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0804AEF0 - adds r0, r2, r3 - cmp r0, 0x1 - bgt _0804AEF8 - b _0804AF12 - .pool -_0804AEF0: - cmp r2, 0 - beq _0804AF12 - cmp r3, 0 - beq _0804AF12 -_0804AEF8: - ldr r2, [r7] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - adds r1, r0 - str r1, [r7] - b _0804AF22 -_0804AF12: - ldr r0, [r7] - adds r0, 0x5 - str r0, [r7] - b _0804AF22 -_0804AF1A: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_0804AF22: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk24 - - thumb_func_start sub_804AF30 -sub_804AF30: @ 804AF30 - ldr r1, =gBattleMoveFlags - movs r0, 0 - strb r0, [r1] - ldr r0, =gBattleScripting - movs r2, 0 - movs r1, 0x1 - strb r1, [r0, 0xE] - ldr r0, =gCritMultiplier - strb r1, [r0] - ldr r0, =gBattleCommunication - strb r2, [r0, 0x3] - strb r2, [r0, 0x6] - ldr r2, =gHitMarker - ldr r0, [r2] - subs r1, 0x42 - ands r0, r1 - ldr r1, =0xffffbfff - ands r0, r1 - str r0, [r2] - bx lr - .pool - thumb_func_end sub_804AF30 - - thumb_func_start atk25_move_values_cleanup -atk25_move_values_cleanup: @ 804AF70 - push {lr} - bl sub_804AF30 - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end atk25_move_values_cleanup - - thumb_func_start atk26_set_multihit -atk26_set_multihit: @ 804AF88 - ldr r3, =gUnknown_02024212 - ldr r2, =gBattlescriptCurrInstr - ldr r0, [r2] - ldrb r1, [r0, 0x1] - strb r1, [r3] - adds r0, 0x2 - str r0, [r2] - bx lr - .pool - thumb_func_end atk26_set_multihit - - thumb_func_start atk27_decrement_multihit -atk27_decrement_multihit: @ 804AFA0 - push {lr} - ldr r1, =gUnknown_02024212 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bne _0804AFC4 - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _0804AFDE - .pool -_0804AFC4: - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - adds r1, r0 - str r1, [r3] -_0804AFDE: - pop {r0} - bx r0 - .pool - thumb_func_end atk27_decrement_multihit - - thumb_func_start atk28_goto -atk28_goto: @ 804AFE8 - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - adds r1, r0 - str r1, [r3] - bx lr - .pool - thumb_func_end atk28_goto - - thumb_func_start atk29_jumpifbyte -atk29_jumpifbyte: @ 804B008 - push {r4-r6,lr} - ldr r3, =gBattlescriptCurrInstr - ldr r1, [r3] - ldrb r6, [r1, 0x1] - ldrb r2, [r1, 0x2] - ldrb r0, [r1, 0x3] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r1, 0x4] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r1, 0x5] - lsls r0, 24 - adds r5, r2, r0 - ldrb r4, [r1, 0x6] - ldrb r2, [r1, 0x7] - ldrb r0, [r1, 0x8] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r1, 0x9] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r1, 0xA] - lsls r0, 24 - adds r2, r0 - adds r1, 0xB - str r1, [r3] - cmp r6, 0x5 - bhi _0804B0A0 - lsls r0, r6, 2 - ldr r1, =_0804B054 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0804B054: - .4byte _0804B06C - .4byte _0804B074 - .4byte _0804B07C - .4byte _0804B084 - .4byte _0804B08C - .4byte _0804B096 -_0804B06C: - ldrb r0, [r5] - cmp r0, r4 - bne _0804B0A0 - b _0804B09E -_0804B074: - ldrb r0, [r5] - cmp r0, r4 - beq _0804B0A0 - b _0804B09E -_0804B07C: - ldrb r0, [r5] - cmp r0, r4 - bls _0804B0A0 - b _0804B09E -_0804B084: - ldrb r0, [r5] - cmp r0, r4 - bcs _0804B0A0 - b _0804B09E -_0804B08C: - ldrb r0, [r5] - ands r4, r0 - cmp r4, 0 - beq _0804B0A0 - b _0804B09E -_0804B096: - ldrb r0, [r5] - ands r4, r0 - cmp r4, 0 - bne _0804B0A0 -_0804B09E: - str r2, [r3] -_0804B0A0: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end atk29_jumpifbyte - - thumb_func_start atk2A_jumpifhalfword -atk2A_jumpifhalfword: @ 804B0A8 - push {r4-r6,lr} - ldr r3, =gBattlescriptCurrInstr - ldr r1, [r3] - ldrb r6, [r1, 0x1] - ldrb r2, [r1, 0x2] - ldrb r0, [r1, 0x3] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r1, 0x4] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r1, 0x5] - lsls r0, 24 - adds r5, r2, r0 - ldrb r4, [r1, 0x6] - ldrb r0, [r1, 0x7] - lsls r0, 8 - orrs r4, r0 - ldrb r2, [r1, 0x8] - ldrb r0, [r1, 0x9] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r1, 0xA] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r1, 0xB] - lsls r0, 24 - adds r2, r0 - adds r1, 0xC - str r1, [r3] - cmp r6, 0x5 - bhi _0804B148 - lsls r0, r6, 2 - ldr r1, =_0804B0FC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0804B0FC: - .4byte _0804B114 - .4byte _0804B11C - .4byte _0804B124 - .4byte _0804B12C - .4byte _0804B134 - .4byte _0804B13E -_0804B114: - ldrh r0, [r5] - cmp r0, r4 - bne _0804B148 - b _0804B146 -_0804B11C: - ldrh r0, [r5] - cmp r0, r4 - beq _0804B148 - b _0804B146 -_0804B124: - ldrh r0, [r5] - cmp r0, r4 - bls _0804B148 - b _0804B146 -_0804B12C: - ldrh r0, [r5] - cmp r0, r4 - bcs _0804B148 - b _0804B146 -_0804B134: - ldrh r0, [r5] - ands r4, r0 - cmp r4, 0 - beq _0804B148 - b _0804B146 -_0804B13E: - ldrh r0, [r5] - ands r4, r0 - cmp r4, 0 - bne _0804B148 -_0804B146: - str r2, [r3] -_0804B148: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end atk2A_jumpifhalfword - - thumb_func_start atk2B_jumpifword -atk2B_jumpifword: @ 804B150 - push {r4-r6,lr} - ldr r3, =gBattlescriptCurrInstr - ldr r1, [r3] - ldrb r6, [r1, 0x1] - ldrb r2, [r1, 0x2] - ldrb r0, [r1, 0x3] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r1, 0x4] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r1, 0x5] - lsls r0, 24 - adds r5, r2, r0 - ldrb r4, [r1, 0x6] - ldrb r0, [r1, 0x7] - lsls r0, 8 - orrs r4, r0 - ldrb r0, [r1, 0x8] - lsls r0, 16 - orrs r4, r0 - ldrb r0, [r1, 0x9] - lsls r0, 24 - orrs r4, r0 - ldrb r2, [r1, 0xA] - ldrb r0, [r1, 0xB] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r1, 0xC] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r1, 0xD] - lsls r0, 24 - adds r2, r0 - adds r1, 0xE - str r1, [r3] - cmp r6, 0x5 - bhi _0804B1FC - lsls r0, r6, 2 - ldr r1, =_0804B1B0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0804B1B0: - .4byte _0804B1C8 - .4byte _0804B1D0 - .4byte _0804B1D8 - .4byte _0804B1E0 - .4byte _0804B1E8 - .4byte _0804B1F2 -_0804B1C8: - ldr r0, [r5] - cmp r0, r4 - bne _0804B1FC - b _0804B1FA -_0804B1D0: - ldr r0, [r5] - cmp r0, r4 - beq _0804B1FC - b _0804B1FA -_0804B1D8: - ldr r0, [r5] - cmp r0, r4 - bls _0804B1FC - b _0804B1FA -_0804B1E0: - ldr r0, [r5] - cmp r0, r4 - bcs _0804B1FC - b _0804B1FA -_0804B1E8: - ldr r0, [r5] - ands r0, r4 - cmp r0, 0 - beq _0804B1FC - b _0804B1FA -_0804B1F2: - ldr r0, [r5] - ands r0, r4 - cmp r0, 0 - bne _0804B1FC -_0804B1FA: - str r2, [r3] -_0804B1FC: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end atk2B_jumpifword - - thumb_func_start atk2C_jumpifarrayequal -atk2C_jumpifarrayequal: @ 804B204 - push {r4-r7,lr} - ldr r2, =gBattlescriptCurrInstr - ldr r3, [r2] - ldrb r1, [r3, 0x1] - ldrb r0, [r3, 0x2] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r3, 0x3] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r3, 0x4] - lsls r0, 24 - adds r5, r1, r0 - ldrb r1, [r3, 0x5] - ldrb r0, [r3, 0x6] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r3, 0x7] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r3, 0x8] - lsls r0, 24 - adds r4, r1, r0 - ldrb r6, [r3, 0x9] - ldrb r1, [r3, 0xA] - ldrb r0, [r3, 0xB] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r3, 0xC] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r3, 0xD] - lsls r0, 24 - adds r1, r0 - mov r12, r1 - movs r1, 0 - cmp r1, r6 - bcs _0804B27C - ldrb r0, [r5] - ldrb r7, [r4] - cmp r0, r7 - beq _0804B260 - adds r0, r3, 0 - b _0804B278 - .pool -_0804B260: - adds r5, 0x1 - adds r4, 0x1 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, r6 - bcs _0804B27C - ldrb r0, [r5] - ldrb r3, [r4] - cmp r0, r3 - beq _0804B260 - ldr r0, [r2] -_0804B278: - adds r0, 0xE - str r0, [r2] -_0804B27C: - cmp r1, r6 - bne _0804B284 - mov r7, r12 - str r7, [r2] -_0804B284: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end atk2C_jumpifarrayequal - - thumb_func_start atk2D_jumpifarraynotequal -atk2D_jumpifarraynotequal: @ 804B28C - push {r4-r7,lr} - movs r7, 0 - ldr r3, =gBattlescriptCurrInstr - ldr r1, [r3] - ldrb r2, [r1, 0x1] - ldrb r0, [r1, 0x2] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r1, 0x3] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r1, 0x4] - lsls r0, 24 - adds r5, r2, r0 - ldrb r2, [r1, 0x5] - ldrb r0, [r1, 0x6] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r1, 0x7] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r1, 0x8] - lsls r0, 24 - adds r4, r2, r0 - ldrb r6, [r1, 0x9] - ldrb r2, [r1, 0xA] - ldrb r0, [r1, 0xB] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r1, 0xC] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r1, 0xD] - lsls r0, 24 - adds r2, r0 - mov r12, r2 - movs r1, 0 - cmp r7, r6 - bcs _0804B2F6 -_0804B2DA: - ldrb r0, [r5] - ldrb r2, [r4] - cmp r0, r2 - bne _0804B2E8 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 -_0804B2E8: - adds r5, 0x1 - adds r4, 0x1 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, r6 - bcc _0804B2DA -_0804B2F6: - cmp r7, r6 - beq _0804B304 - mov r0, r12 - b _0804B308 - .pool -_0804B304: - ldr r0, [r3] - adds r0, 0xE -_0804B308: - str r0, [r3] - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end atk2D_jumpifarraynotequal - - thumb_func_start atk2E_setbyte -atk2E_setbyte: @ 804B310 - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - adds r1, r0 - ldrb r0, [r2, 0x5] - strb r0, [r1] - ldr r0, [r3] - adds r0, 0x6 - str r0, [r3] - bx lr - .pool - thumb_func_end atk2E_setbyte - - thumb_func_start atk2F_addbyte -atk2F_addbyte: @ 804B338 - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - adds r1, r0 - ldrb r0, [r2, 0x5] - ldrb r2, [r1] - adds r0, r2 - strb r0, [r1] - ldr r0, [r3] - adds r0, 0x6 - str r0, [r3] - bx lr - .pool - thumb_func_end atk2F_addbyte - - thumb_func_start atk30_subbyte -atk30_subbyte: @ 804B364 - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - adds r1, r0 - ldrb r0, [r1] - ldrb r2, [r2, 0x5] - subs r0, r2 - strb r0, [r1] - ldr r0, [r3] - adds r0, 0x6 - str r0, [r3] - bx lr - .pool - thumb_func_end atk30_subbyte - - thumb_func_start atk31_copyarray -atk31_copyarray: @ 804B390 - push {r4-r6,lr} - ldr r3, =gBattlescriptCurrInstr - ldr r1, [r3] - ldrb r2, [r1, 0x1] - ldrb r0, [r1, 0x2] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r1, 0x3] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r1, 0x4] - lsls r0, 24 - adds r6, r2, r0 - ldrb r2, [r1, 0x5] - ldrb r0, [r1, 0x6] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r1, 0x7] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r1, 0x8] - lsls r0, 24 - adds r5, r2, r0 - ldrb r4, [r1, 0x9] - movs r2, 0 - cmp r2, r4 - bge _0804B3D4 -_0804B3C6: - adds r0, r6, r2 - adds r1, r5, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, r4 - blt _0804B3C6 -_0804B3D4: - ldr r0, [r3] - adds r0, 0xA - str r0, [r3] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end atk31_copyarray - - thumb_func_start atk32_copyarray_withindex -atk32_copyarray_withindex: @ 804B3E4 - push {r4-r7,lr} - ldr r3, =gBattlescriptCurrInstr - ldr r1, [r3] - ldrb r2, [r1, 0x1] - ldrb r0, [r1, 0x2] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r1, 0x3] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r1, 0x4] - lsls r0, 24 - adds r7, r2, r0 - ldrb r2, [r1, 0x5] - ldrb r0, [r1, 0x6] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r1, 0x7] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r1, 0x8] - lsls r0, 24 - adds r6, r2, r0 - ldrb r2, [r1, 0x9] - ldrb r0, [r1, 0xA] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r1, 0xB] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r1, 0xC] - lsls r0, 24 - adds r5, r2, r0 - ldrb r4, [r1, 0xD] - movs r2, 0 - cmp r2, r4 - bge _0804B440 -_0804B42E: - adds r0, r7, r2 - ldrb r1, [r5] - adds r1, r2, r1 - adds r1, r6, r1 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, r4 - blt _0804B42E -_0804B440: - ldr r0, [r3] - adds r0, 0xE - str r0, [r3] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk32_copyarray_withindex - - thumb_func_start atk33_orbyte -atk33_orbyte: @ 804B450 - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - adds r1, r0 - ldrb r0, [r1] - ldrb r2, [r2, 0x5] - orrs r0, r2 - strb r0, [r1] - ldr r0, [r3] - adds r0, 0x6 - str r0, [r3] - bx lr - .pool - thumb_func_end atk33_orbyte - - thumb_func_start atk34_orhalfword -atk34_orhalfword: @ 804B47C - push {r4,lr} - ldr r4, =gBattlescriptCurrInstr - ldr r3, [r4] - ldrb r2, [r3, 0x1] - ldrb r0, [r3, 0x2] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r3, 0x3] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r3, 0x4] - lsls r0, 24 - adds r2, r0 - ldrb r1, [r3, 0x5] - ldrb r0, [r3, 0x6] - lsls r0, 8 - orrs r1, r0 - ldrh r0, [r2] - orrs r1, r0 - strh r1, [r2] - ldr r0, [r4] - adds r0, 0x7 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atk34_orhalfword - - thumb_func_start atk35_orword -atk35_orword: @ 804B4B4 - push {r4,lr} - ldr r4, =gBattlescriptCurrInstr - ldr r2, [r4] - ldrb r3, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - adds r3, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - adds r3, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - adds r3, r0 - ldrb r1, [r2, 0x5] - ldrb r0, [r2, 0x6] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x7] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x8] - lsls r0, 24 - adds r1, r0 - ldr r0, [r3] - orrs r0, r1 - str r0, [r3] - ldr r0, [r4] - adds r0, 0x9 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atk35_orword - - thumb_func_start atk36_bicbyte -atk36_bicbyte: @ 804B4F8 - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - adds r1, r0 - ldrb r2, [r2, 0x5] - ldrb r0, [r1] - bics r0, r2 - strb r0, [r1] - ldr r0, [r3] - adds r0, 0x6 - str r0, [r3] - bx lr - .pool - thumb_func_end atk36_bicbyte - - thumb_func_start atk37_bichalfword -atk37_bichalfword: @ 804B524 - push {r4,lr} - ldr r4, =gBattlescriptCurrInstr - ldr r3, [r4] - ldrb r1, [r3, 0x1] - ldrb r0, [r3, 0x2] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r3, 0x3] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r3, 0x4] - lsls r0, 24 - adds r1, r0 - ldrb r2, [r3, 0x5] - ldrb r0, [r3, 0x6] - lsls r0, 8 - orrs r2, r0 - ldrh r0, [r1] - bics r0, r2 - strh r0, [r1] - ldr r0, [r4] - adds r0, 0x7 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atk37_bichalfword - - thumb_func_start atk38_bicword -atk38_bicword: @ 804B55C - push {r4,lr} - ldr r4, =gBattlescriptCurrInstr - ldr r2, [r4] - ldrb r3, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - adds r3, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - adds r3, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - adds r3, r0 - ldrb r1, [r2, 0x5] - ldrb r0, [r2, 0x6] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x7] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x8] - lsls r0, 24 - adds r1, r0 - ldr r0, [r3] - bics r0, r1 - str r0, [r3] - ldr r0, [r4] - adds r0, 0x9 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atk38_bicword - - thumb_func_start atk39_pause -atk39_pause: @ 804B5A0 - push {r4,r5,lr} - ldr r0, =gBattleExecBuffer - ldr r4, [r0] - cmp r4, 0 - bne _0804B5CC - ldr r5, =gBattlescriptCurrInstr - ldr r2, [r5] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldr r3, =gUnknown_0202432C - ldrh r0, [r3] - adds r0, 0x1 - strh r0, [r3] - lsls r0, 16 - lsrs r0, 16 - cmp r0, r1 - bcc _0804B5CC - strh r4, [r3] - adds r0, r2, 0x3 - str r0, [r5] -_0804B5CC: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk39_pause - - thumb_func_start atk3A_waitstate -atk3A_waitstate: @ 804B5E0 - push {lr} - ldr r0, =gBattleExecBuffer - ldr r0, [r0] - cmp r0, 0 - bne _0804B5F2 - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] -_0804B5F2: - pop {r0} - bx r0 - .pool - thumb_func_end atk3A_waitstate - - thumb_func_start atk3B_healthbar_update -atk3B_healthbar_update: @ 804B600 - push {lr} - ldr r0, =gBattlescriptCurrInstr - ldr r0, [r0] - ldrb r0, [r0, 0x1] - cmp r0, 0 - bne _0804B620 - ldr r0, =gActiveBank - ldr r1, =gBankTarget - b _0804B624 - .pool -_0804B620: - ldr r0, =gActiveBank - ldr r1, =gBankAttacker -_0804B624: - ldrb r1, [r1] - strb r1, [r0] - ldr r0, =gBattleMoveDamage - ldrh r1, [r0] - movs r0, 0 - bl dp01_build_cmdbuf_x18_0_aa_health_bar_update - ldr r0, =gActiveBank - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end atk3B_healthbar_update - - thumb_func_start atk3C_return -atk3C_return: @ 804B658 - push {lr} - bl b_movescr_stack_pop_cursor - pop {r0} - bx r0 - thumb_func_end atk3C_return - - thumb_func_start atk3D_end -atk3D_end: @ 804B664 - push {lr} - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 11 - ands r0, r1 - cmp r0, 0 - beq _0804B67C - ldr r0, =gBankAttacker - ldrb r0, [r0] - bl sub_81A5718 -_0804B67C: - ldr r0, =gBattleMoveFlags - movs r1, 0 - strb r1, [r0] - ldr r0, =gActiveBank - strb r1, [r0] - ldr r1, =gFightStateTracker - movs r0, 0xB - strb r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end atk3D_end - - thumb_func_start atk3E_end2 -atk3E_end2: @ 804B6A4 - ldr r1, =gActiveBank - movs r0, 0 - strb r0, [r1] - ldr r1, =gFightStateTracker - movs r0, 0xB - strb r0, [r1] - bx lr - .pool - thumb_func_end atk3E_end2 - - thumb_func_start atk3F_end3 -atk3F_end3: @ 804B6BC - push {lr} - bl b_movescr_stack_pop_cursor - ldr r3, =gBattleResources - ldr r0, [r3] - ldr r0, [r0, 0xC] - adds r1, r0, 0 - adds r1, 0x20 - ldrb r0, [r1] - cmp r0, 0 - beq _0804B6D6 - subs r0, 0x1 - strb r0, [r1] -_0804B6D6: - ldr r2, =gBattleMainFunc - ldr r0, [r3] - ldr r1, [r0, 0xC] - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - lsls r0, 2 - adds r1, r0 - ldr r0, [r1] - str r0, [r2] - pop {r0} - bx r0 - .pool - thumb_func_end atk3F_end3 - - thumb_func_start atk41_call -atk41_call: @ 804B6F8 - push {r4,lr} - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - adds r0, 0x5 - bl b_movescr_stack_push - ldr r2, [r4] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atk41_call - - thumb_func_start atk42_jumpiftype2 -atk42_jumpiftype2: @ 804B728 - push {r4,lr} - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - lsls r0, 24 - lsrs r0, 24 - ldr r3, [r4] - ldr r2, =gBattleMons - movs r1, 0x58 - muls r0, r1 - adds r0, r2 - adds r1, r0, 0 - adds r1, 0x21 - ldrb r2, [r3, 0x2] - ldrb r1, [r1] - cmp r2, r1 - beq _0804B756 - adds r0, 0x22 - ldrb r0, [r0] - cmp r2, r0 - bne _0804B778 -_0804B756: - ldrb r1, [r3, 0x3] - ldrb r0, [r3, 0x4] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x6] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _0804B77C - .pool -_0804B778: - adds r0, r3, 0x7 - str r0, [r4] -_0804B77C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end atk42_jumpiftype2 - - thumb_func_start atk43_jumpifabilitypresent -atk43_jumpifabilitypresent: @ 804B784 - push {r4,lr} - sub sp, 0x4 - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - ldrb r2, [r0, 0x1] - movs r0, 0 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - cmp r0, 0 - beq _0804B7C0 - ldr r2, [r4] - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _0804B7C6 - .pool -_0804B7C0: - ldr r0, [r4] - adds r0, 0x6 - str r0, [r4] -_0804B7C6: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end atk43_jumpifabilitypresent - - thumb_func_start atk44 -atk44: @ 804B7D0 - ldr r0, =gBankAttacker - ldrb r0, [r0] - ldr r1, =gBattleStruct - ldr r1, [r1] - adds r0, r1 - adds r0, 0x54 - movs r1, 0x1 - strb r1, [r0] - bx lr - .pool - thumb_func_end atk44 - - thumb_func_start atk45_playanimation -atk45_playanimation: @ 804B7EC - push {r4-r6,lr} - ldr r5, =gBattlescriptCurrInstr - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r6, =gActiveBank - strb r0, [r6] - ldr r2, [r5] - ldrb r1, [r2, 0x3] - ldrb r0, [r2, 0x4] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x6] - lsls r0, 24 - adds r3, r1, r0 - ldrb r4, [r2, 0x2] - adds r0, r4, 0 - cmp r0, 0x1 - beq _0804B822 - cmp r0, 0x11 - beq _0804B822 - cmp r0, 0x2 - bne _0804B848 -_0804B822: - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - ldrb r1, [r0, 0x2] - ldrh r2, [r3] - movs r0, 0 - bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim - ldr r0, =gActiveBank - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r4] - adds r0, 0x7 - str r0, [r4] - b _0804B8AA - .pool -_0804B848: - ldr r0, =gHitMarker - ldr r0, [r0] - movs r1, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0804B868 - adds r0, r2, 0x7 - bl b_movescr_stack_push - ldr r0, =gUnknown_082DABB9 - b _0804B8A8 - .pool -_0804B868: - adds r0, r4, 0 - subs r0, 0xA - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bls _0804B894 - ldr r1, =gStatuses3 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, =0x000400c0 - ands r0, r1 - cmp r0, 0 - beq _0804B894 - adds r0, r2, 0x7 - b _0804B8A8 - .pool -_0804B894: - ldrb r1, [r2, 0x2] - ldrh r2, [r3] - movs r0, 0 - bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim - ldrb r0, [r6] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r5] - adds r0, 0x7 -_0804B8A8: - str r0, [r5] -_0804B8AA: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end atk45_playanimation - - thumb_func_start atk46_playanimation2 -atk46_playanimation2: @ 804B8B0 - push {r4-r7,lr} - ldr r6, =gBattlescriptCurrInstr - ldr r0, [r6] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r7, =gActiveBank - strb r0, [r7] - ldr r2, [r6] - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - adds r3, r1, r0 - ldrb r1, [r2, 0x6] - ldrb r0, [r2, 0x7] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x8] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x9] - lsls r0, 24 - adds r4, r1, r0 - ldrb r5, [r3] - adds r0, r5, 0 - cmp r0, 0x1 - beq _0804B8FA - cmp r0, 0x11 - beq _0804B8FA - cmp r0, 0x2 - bne _0804B920 -_0804B8FA: - ldrb r1, [r3] - ldrh r2, [r4] - movs r0, 0 - bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim - ldr r0, =gActiveBank - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0xA - str r0, [r1] - b _0804B976 - .pool -_0804B920: - ldr r0, =gHitMarker - ldr r0, [r0] - movs r1, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0804B934 - adds r0, r2, 0 - b _0804B972 - .pool -_0804B934: - adds r0, r5, 0 - subs r0, 0xA - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bls _0804B960 - ldr r1, =gStatuses3 - ldrb r0, [r7] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, =0x000400c0 - ands r0, r1 - cmp r0, 0 - beq _0804B960 - adds r0, r2, 0 - b _0804B972 - .pool -_0804B960: - ldrb r1, [r3] - ldrh r2, [r4] - movs r0, 0 - bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim - ldrb r0, [r7] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r6] -_0804B972: - adds r0, 0xA - str r0, [r6] -_0804B976: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end atk46_playanimation2 - - thumb_func_start atk47_setgraphicalstatchangevalues -atk47_setgraphicalstatchangevalues: @ 804B97C - push {r4,lr} - movs r3, 0 - ldr r1, =gBattleScripting - ldrb r0, [r1, 0x1A] - movs r2, 0xF0 - ands r2, r0 - adds r4, r1, 0 - cmp r2, 0x20 - beq _0804B9AA - cmp r2, 0x20 - bgt _0804B99C - cmp r2, 0x10 - beq _0804B9A6 - b _0804B9B4 - .pool -_0804B99C: - cmp r2, 0x90 - beq _0804B9AE - cmp r2, 0xA0 - beq _0804B9B2 - b _0804B9B4 -_0804B9A6: - movs r3, 0xF - b _0804B9B4 -_0804B9AA: - movs r3, 0x27 - b _0804B9B4 -_0804B9AE: - movs r3, 0x16 - b _0804B9B4 -_0804B9B2: - movs r3, 0x2E -_0804B9B4: - ldrb r1, [r4, 0x1A] - movs r0, 0xF - ands r0, r1 - adds r0, r3, r0 - subs r0, 0x1 - movs r1, 0 - strb r0, [r4, 0x10] - strb r1, [r4, 0x11] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atk47_setgraphicalstatchangevalues - - thumb_func_start atk48_playstatchangeanimation -atk48_playstatchangeanimation: @ 804B9D8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - movs r7, 0 - movs r0, 0 - mov r8, r0 - movs r3, 0 - ldr r5, =gBattlescriptCurrInstr - ldr r0, [r5] - ldrb r0, [r0, 0x1] - str r3, [sp] - bl get_battle_side_of_something - ldr r2, =gActiveBank - strb r0, [r2] - ldr r0, [r5] - ldrb r4, [r0, 0x2] - ldrb r1, [r0, 0x3] - movs r0, 0x1 - ands r0, r1 - ldr r3, [sp] - cmp r0, 0 - beq _0804BAEC - movs r0, 0x2 - ands r0, r1 - movs r1, 0x15 - cmp r0, 0 - beq _0804BA18 - movs r1, 0x2D -_0804BA18: - cmp r4, 0 - beq _0804BAC0 - movs r0, 0x1 - mov r10, r0 - ldr r0, =gBattleMons + 0x18 - mov r9, r0 - lsls r5, r1, 16 -_0804BA26: - adds r0, r4, 0 - mov r1, r10 - ands r0, r1 - cmp r0, 0 - beq _0804BAB2 - ldr r0, =gBattlescriptCurrInstr - ldr r0, [r0] - ldrb r1, [r0, 0x3] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0804BA58 - ldr r0, =gActiveBank - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r7, r0 - b _0804BAA0 - .pool -_0804BA58: - ldr r6, =gActiveBank - ldrb r0, [r6] - str r3, [sp] - bl GetBankIdentity - mov r1, r10 - ands r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSideTimers - adds r0, r1 - ldrb r0, [r0, 0x4] - ldr r3, [sp] - cmp r0, 0 - bne _0804BAB2 - ldr r0, =gBattleMons - ldrb r2, [r6] - movs r1, 0x58 - muls r2, r1 - adds r0, r2, r0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x1D - beq _0804BAB2 - cmp r0, 0x49 - beq _0804BAB2 - cmp r0, 0x33 - bne _0804BA96 - cmp r7, 0x6 - beq _0804BAB2 -_0804BA96: - cmp r0, 0x34 - bne _0804BA9E - cmp r7, 0x1 - beq _0804BAB2 -_0804BA9E: - adds r0, r7, r2 -_0804BAA0: - add r0, r9 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - ble _0804BAB2 - lsrs r0, r5, 16 - mov r8, r0 - adds r3, 0x1 -_0804BAB2: - lsrs r4, 1 - movs r1, 0x80 - lsls r1, 9 - adds r5, r1 - adds r7, 0x1 - cmp r4, 0 - bne _0804BA26 -_0804BAC0: - ldr r0, =gBattlescriptCurrInstr - mov r9, r0 - cmp r3, 0x1 - ble _0804BB4E - ldr r0, [r0] - ldrb r1, [r0, 0x3] - movs r0, 0x2 - ands r0, r1 - movs r1, 0x39 - mov r8, r1 - cmp r0, 0 - beq _0804BB4E - movs r0, 0x3A - b _0804BB4C - .pool -_0804BAEC: - movs r0, 0x2 - ands r0, r1 - movs r1, 0xE - cmp r0, 0 - beq _0804BAF8 - movs r1, 0x26 -_0804BAF8: - mov r9, r5 - cmp r4, 0 - beq _0804BB34 - ldr r6, =gBattleMons + 0x18 - adds r5, r2, 0 - lsls r2, r1, 16 -_0804BB04: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _0804BB26 - ldrb r1, [r5] - movs r0, 0x58 - muls r0, r1 - adds r0, r7, r0 - adds r0, r6 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0xB - bgt _0804BB26 - lsrs r1, r2, 16 - mov r8, r1 - adds r3, 0x1 -_0804BB26: - lsrs r4, 1 - movs r0, 0x80 - lsls r0, 9 - adds r2, r0 - adds r7, 0x1 - cmp r4, 0 - bne _0804BB04 -_0804BB34: - cmp r3, 0x1 - ble _0804BB4E - mov r1, r9 - ldr r0, [r1] - ldrb r1, [r0, 0x3] - movs r0, 0x2 - ands r0, r1 - movs r1, 0x37 - mov r8, r1 - cmp r0, 0 - beq _0804BB4E - movs r0, 0x38 -_0804BB4C: - mov r8, r0 -_0804BB4E: - mov r1, r9 - ldr r2, [r1] - ldrb r1, [r2, 0x3] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0804BB6C - cmp r3, 0x1 - bgt _0804BB6C - adds r0, r2, 0x4 - mov r1, r9 - b _0804BBBA - .pool -_0804BB6C: - cmp r3, 0 - beq _0804BBB4 - ldr r4, =gBattleScripting - ldrb r0, [r4, 0x1B] - cmp r0, 0 - bne _0804BBB4 - movs r0, 0 - movs r1, 0x1 - mov r2, r8 - str r3, [sp] - bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim - ldr r0, =gActiveBank - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, =gBattlescriptCurrInstr - ldr r0, [r0] - ldrb r1, [r0, 0x3] - movs r0, 0x4 - ands r0, r1 - ldr r3, [sp] - cmp r0, 0 - beq _0804BBA4 - cmp r3, 0x1 - ble _0804BBA4 - movs r0, 0x1 - strb r0, [r4, 0x1B] -_0804BBA4: - ldr r1, =gBattlescriptCurrInstr - b _0804BBB6 - .pool -_0804BBB4: - mov r1, r9 -_0804BBB6: - ldr r0, [r1] - adds r0, 0x4 -_0804BBBA: - str r0, [r1] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end atk48_playstatchangeanimation - - thumb_func_start atk49_moveendturn -atk49_moveendturn: @ 804BBCC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - movs r0, 0 - mov r10, r0 - ldr r2, =gUnknown_020241EC - ldrh r1, [r2] - ldr r0, =0x0000ffff - movs r3, 0 - str r3, [sp, 0x18] - cmp r1, r0 - beq _0804BBEE - ldrh r2, [r2] - str r2, [sp, 0x18] -_0804BBEE: - ldr r0, =gBattlescriptCurrInstr - ldr r0, [r0] - ldrb r4, [r0, 0x1] - str r4, [sp, 0x10] - ldrb r0, [r0, 0x2] - str r0, [sp, 0x14] - ldr r1, =gBattleMons - ldr r0, =gBankAttacker - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r1, r0, r1 - ldrh r0, [r1, 0x2E] - cmp r0, 0xAF - bne _0804BC34 - ldr r1, =gEnigmaBerries - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x7] - b _0804BC3E - .pool -_0804BC34: - ldrh r0, [r1, 0x2E] - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r0, 24 -_0804BC3E: - str r0, [sp, 0x8] - ldr r1, =gBattleStruct - ldr r0, =gBankAttacker - ldrb r0, [r0] - lsls r0, 1 - adds r0, 0xC8 - ldr r1, [r1] - adds r0, r1, r0 - str r0, [sp, 0xC] - ldrb r0, [r1, 0x13] - cmp r0, 0 - beq _0804BCF0 - movs r5, 0x3F - ands r5, r0 - str r5, [sp, 0x4] - b _0804BD02 - .pool -_0804BC68: - ldr r4, =gActiveBank - strb r2, [r4] - movs r0, 0 - movs r1, 0x1 - bl dp01_build_cmdbuf_x33_a_33_33 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - b _0804C15A - .pool -_0804BC80: - ldr r4, =gActiveBank - strb r2, [r4] - movs r0, 0 - movs r1, 0 - bl dp01_build_cmdbuf_x33_a_33_33 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldrb r1, [r6] - lsls r1, 2 - adds r1, r5 - ldr r0, [r1] - ldr r2, =0xfffbff3f - ands r0, r2 - str r0, [r1] - b _0804C15A - .pool -_0804BCAC: - strb r2, [r7] - ldr r0, [r5] - orrs r0, r6 - str r0, [r5] - ldr r0, =gBattleScripting - strb r4, [r0, 0x14] - bl sub_804AF30 - ldr r2, =gUnknown_082D86A8 - mov r0, r8 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - add r0, r9 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - bl b_movescr_stack_push - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB87D - bl _0804C5B8 - .pool -_0804BCF0: - ldr r2, =gBattleMoves - ldr r0, =gCurrentMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x2] - str r0, [sp, 0x4] -_0804BD02: - ldr r1, =gBattleScripting - mov r12, r1 - b _0804BD1E - .pool -_0804BD14: - mov r2, r10 - cmp r2, 0 - beq _0804BD1E - bl _0804C5A4 -_0804BD1E: - mov r3, r12 - ldrb r0, [r3, 0x14] - cmp r0, 0x11 - bls _0804BD2A - bl _0804C570 -_0804BD2A: - lsls r0, 2 - ldr r1, =_0804BD38 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0804BD38: - .4byte _0804BD80 - .4byte _0804BE5C - .4byte _0804BF18 - .4byte _0804BF3C - .4byte _0804BF54 - .4byte _0804BF7C - .4byte _0804BFA0 - .4byte _0804C048 - .4byte _0804C0BE - .4byte _0804C0F4 - .4byte _0804C194 - .4byte _0804C088 - .4byte _0804C0A8 - .4byte _0804C1D8 - .4byte _0804C21C - .4byte _0804C3FC - .4byte _0804C4E4 - .4byte _0804C570 -_0804BD80: - ldr r6, =gBattleMons - ldr r5, =gBankTarget - ldrb r3, [r5] - movs r7, 0x58 - adds r2, r3, 0 - muls r2, r7 - adds r0, r6, 0 - adds r0, 0x50 - adds r0, r2, r0 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 16 - ands r0, r1 - cmp r0, 0 - bne _0804BDA0 - b _0804C184 -_0804BDA0: - adds r0, r2, r6 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _0804BDAA - b _0804C184 -_0804BDAA: - ldr r0, =gBankAttacker - ldrb r1, [r0] - cmp r1, r3 - bne _0804BDB4 - b _0804C184 -_0804BDB4: - adds r0, r1, 0 - bl GetBankSide - adds r4, r0, 0 - ldrb r0, [r5] - bl GetBankSide - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _0804BDCC - b _0804C184 -_0804BDCC: - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _0804BDDA - b _0804C184 -_0804BDDA: - ldr r2, =gSpecialStatuses - ldrb r3, [r5] - lsls r0, r3, 2 - adds r0, r3 - lsls r1, r0, 2 - adds r0, r2, 0 - adds r0, 0x8 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _0804BDFE - adds r0, r2, 0 - adds r0, 0xC - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _0804BDFE - b _0804C184 -_0804BDFE: - ldr r2, =gBattleMoves - ldr r0, =gCurrentMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - cmp r0, 0 - bne _0804BE14 - b _0804C184 -_0804BE14: - adds r0, r3, 0 - muls r0, r7 - adds r1, r0, r6 - ldrb r2, [r1, 0x19] - movs r0, 0x19 - ldrsb r0, [r1, r0] - cmp r0, 0xB - ble _0804BE26 - b _0804C184 -_0804BE26: - adds r0, r2, 0x1 - strb r0, [r1, 0x19] - bl b_movescr_stack_push_cursor - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DAE0D - str r0, [r1] - b _0804C0B8 - .pool -_0804BE5C: - ldr r4, =gBattleMons - ldr r6, =gBankTarget - ldrb r2, [r6] - movs r5, 0x58 - mov r12, r5 - mov r1, r12 - muls r1, r2 - adds r7, r4, 0 - adds r7, 0x4C - adds r5, r1, r7 - ldr r3, [r5] - movs r0, 0x20 - ands r0, r3 - cmp r0, 0 - bne _0804BE7C - b _0804C184 -_0804BE7C: - adds r0, r1, r4 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _0804BE86 - b _0804C184 -_0804BE86: - ldr r0, =gBankAttacker - ldrb r0, [r0] - cmp r0, r2 - bne _0804BE90 - b _0804C184 -_0804BE90: - ldr r0, =gSpecialStatuses - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 2 - adds r0, 0xC - adds r1, r0 - ldr r0, [r1] - cmp r0, 0 - bne _0804BEA4 - b _0804C184 -_0804BEA4: - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _0804BEB2 - b _0804C184 -_0804BEB2: - ldr r0, [sp, 0x4] - cmp r0, 0xA - beq _0804BEBA - b _0804C184 -_0804BEBA: - movs r0, 0x21 - negs r0, r0 - ands r3, r0 - str r3, [r5] - ldr r4, =gActiveBank - ldrb r0, [r6] - strb r0, [r4] - ldrb r0, [r6] - mov r1, r12 - muls r1, r0 - adds r0, r1, 0 - adds r0, r7 - str r0, [sp] - movs r0, 0 - movs r1, 0x28 - movs r2, 0 - movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - bl b_movescr_stack_push_cursor - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB282 - str r0, [r1] - movs r2, 0x1 - mov r10, r2 - b _0804C184 - .pool -_0804BF18: - ldr r0, =gBankTarget - ldrb r1, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0x7 - movs r2, 0 - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - cmp r0, 0 - bne _0804BF32 - b _0804C184 -_0804BF32: - movs r3, 0x1 - mov r10, r3 - b _0804C184 - .pool -_0804BF3C: - ldr r0, =gBankTarget - ldrb r1, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0x4 - movs r2, 0 - movs r3, 0 - bl AbilityBattleEffects - b _0804C0B2 - .pool -_0804BF54: - movs r0, 0 - str r0, [sp] - movs r0, 0x5 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - cmp r0, 0 - bne _0804BF6C - b _0804C184 -_0804BF6C: - movs r5, 0x1 - mov r10, r5 - ldr r0, =gBattleScripting - mov r12, r0 - b _0804C570 - .pool -_0804BF7C: - ldr r0, =gBankAttacker - ldrb r1, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0x8 - movs r2, 0 - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - cmp r0, 0 - bne _0804BF96 - b _0804C184 -_0804BF96: - movs r1, 0x1 - mov r10, r1 - b _0804C184 - .pool -_0804BFA0: - ldr r0, =gHitMarker - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 18 - ands r0, r1 - cmp r0, 0 - beq _0804BFE4 - ldr r2, [sp, 0x8] - cmp r2, 0x1D - bne _0804BFE4 - ldr r0, =gUnknown_020241EC - ldrh r2, [r0] - adds r3, r0, 0 - cmp r2, 0xA5 - beq _0804BFE4 - ldr r4, [sp, 0xC] - ldrh r1, [r4] - cmp r1, 0 - beq _0804BFCC - ldr r0, =0x0000ffff - cmp r1, r0 - bne _0804BFE4 -_0804BFCC: - cmp r2, 0xE2 - bne _0804BFDE - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _0804BFDE - b _0804C4B6 -_0804BFDE: - ldrh r0, [r3] - ldr r1, [sp, 0xC] - strh r0, [r1] -_0804BFE4: - movs r4, 0 - ldr r2, =gBattleMons - ldr r3, =gBankAttacker - ldrb r1, [r3] - movs r0, 0x58 - muls r0, r1 - adds r2, 0xC - adds r0, r2 - ldrh r0, [r0] - ldr r5, [sp, 0xC] - ldrh r1, [r5] - mov r9, r3 - cmp r0, r1 - beq _0804C01C - mov r6, r9 - movs r3, 0x58 - adds r5, r1, 0 -_0804C006: - adds r4, 0x1 - cmp r4, 0x3 - bgt _0804C01C - lsls r0, r4, 1 - ldrb r1, [r6] - muls r1, r3 - adds r0, r1 - adds r0, r2 - ldrh r0, [r0] - cmp r0, r5 - bne _0804C006 -_0804C01C: - cmp r4, 0x4 - bne _0804C026 - movs r0, 0 - ldr r1, [sp, 0xC] - strh r0, [r1] -_0804C026: - mov r2, r12 - ldrb r0, [r2, 0x14] - adds r0, 0x1 - strb r0, [r2, 0x14] - b _0804C570 - .pool -_0804C048: - movs r4, 0 - ldr r0, =gNoOfAllBanks - ldrb r3, [r0] - cmp r4, r3 - blt _0804C054 - b _0804C202 -_0804C054: - ldr r7, =gBattleStruct - movs r6, 0 - movs r3, 0xD0 - adds r5, r0, 0 - ldr r2, =gBattleMons -_0804C05E: - ldr r0, [r7] - adds r0, r3 - ldrh r1, [r0] - cmp r1, 0 - beq _0804C06C - strh r1, [r2, 0x2E] - strh r6, [r0] -_0804C06C: - adds r3, 0x2 - adds r2, 0x58 - adds r4, 0x1 - ldrb r0, [r5] - cmp r4, r0 - blt _0804C05E - b _0804C202 - .pool -_0804C088: - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl berry_effects_maybe - lsls r0, 24 - cmp r0, 0 - beq _0804C184 - movs r2, 0x1 - mov r10, r2 - ldr r3, =gBattleScripting - mov r12, r3 - b _0804C570 - .pool -_0804C0A8: - movs r0, 0x4 - movs r1, 0 - movs r2, 0 - bl berry_effects_maybe -_0804C0B2: - lsls r0, 24 - cmp r0, 0 - beq _0804C184 -_0804C0B8: - movs r4, 0x1 - mov r10, r4 - b _0804C184 -_0804C0BE: - ldr r1, =gStatuses3 - ldr r0, =gBankAttacker - ldrb r2, [r0] - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, =0x000400c0 - ands r0, r1 - cmp r0, 0 - bne _0804C0D4 - b _0804C4B6 -_0804C0D4: - ldr r0, =gHitMarker - ldr r0, [r0] - movs r1, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0804C0E2 - b _0804BC68 -_0804C0E2: - b _0804C4B6 - .pool -_0804C0F4: - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - bne _0804C120 - ldr r1, =gStatuses3 - ldr r0, =gBankAttacker - ldrb r2, [r0] - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, =0x000400c0 - ands r0, r1 - cmp r0, 0 - beq _0804C120 - adds r0, r2, 0 - bl sub_803F90C - lsls r0, 24 - cmp r0, 0 - beq _0804C184 -_0804C120: - ldr r4, =gActiveBank - ldr r5, =gBankAttacker - ldrb r0, [r5] - strb r0, [r4] - movs r0, 0 - movs r1, 0 - bl dp01_build_cmdbuf_x33_a_33_33 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, =gStatuses3 - ldrb r2, [r5] - lsls r2, 2 - adds r2, r0 - ldr r0, [r2] - ldr r1, =0xfffbff3f - ands r0, r1 - str r0, [r2] - ldr r2, =gSpecialStatuses - ldrb r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_0804C15A: - ldr r1, =gBattleScripting - ldrb r0, [r1, 0x14] - adds r0, 0x1 - strb r0, [r1, 0x14] - b _0804C5BA - .pool -_0804C184: - ldr r1, =gBattleScripting - ldrb r0, [r1, 0x14] - adds r0, 0x1 - strb r0, [r1, 0x14] - mov r12, r1 - b _0804C570 - .pool -_0804C194: - ldr r0, =gSpecialStatuses - ldr r6, =gBankTarget - ldrb r2, [r6] - lsls r3, r2, 2 - adds r1, r3, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 29 - cmp r0, 0 - blt _0804C202 - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r2, r0 - bcs _0804C202 - ldr r5, =gStatuses3 - adds r0, r3, r5 - ldr r0, [r0] - ldr r1, =0x000400c0 - ands r0, r1 - cmp r0, 0 - bne _0804C1C2 - b _0804BC80 -_0804C1C2: - b _0804C202 - .pool -_0804C1D8: - movs r4, 0 - ldr r0, =gNoOfAllBanks - ldrb r2, [r0] - cmp r4, r2 - bge _0804C202 - ldr r2, =gDisableStructs - ldr r5, =0xfeffffff - adds r3, r0, 0 - ldr r1, =gBattleMons + 0x50 -_0804C1EA: - ldrb r0, [r2, 0xA] - cmp r0, 0 - bne _0804C1F6 - ldr r0, [r1] - ands r0, r5 - str r0, [r1] -_0804C1F6: - adds r2, 0x1C - adds r1, 0x58 - adds r4, 0x1 - ldrb r0, [r3] - cmp r4, r0 - blt _0804C1EA -_0804C202: - mov r1, r12 - ldrb r0, [r1, 0x14] - adds r0, 0x1 - strb r0, [r1, 0x14] - b _0804C570 - .pool -_0804C21C: - ldr r1, =gHitMarker - ldr r3, [r1] - movs r0, 0x80 - lsls r0, 5 - ands r0, r3 - ldr r2, =gBankAttacker - mov r9, r2 - adds r5, r1, 0 - cmp r0, 0 - beq _0804C246 - ldr r0, =gActiveBank - ldrb r2, [r2] - strb r2, [r0] - ldr r1, =gBankTarget - ldrb r0, [r1] - mov r4, r9 - strb r0, [r4] - strb r2, [r1] - ldr r0, =0xffffefff - ands r3, r0 - str r3, [r5] -_0804C246: - ldr r0, [r5] - movs r1, 0x80 - lsls r1, 3 - ands r0, r1 - cmp r0, 0 - beq _0804C262 - ldr r0, =gUnknown_02024240 - mov r2, r9 - ldrb r1, [r2] - lsls r1, 1 - adds r1, r0 - ldr r0, =gUnknown_020241EC - ldrh r0, [r0] - strh r0, [r1] -_0804C262: - ldr r0, =gAbsentBankFlags - ldrb r1, [r0] - ldr r2, =gBitTable - mov r3, r9 - ldrb r4, [r3] - lsls r0, r4, 2 - adds r0, r2 - ldr r3, [r0] - ands r1, r3 - adds r6, r2, 0 - cmp r1, 0 - beq _0804C27C - b _0804C3E8 -_0804C27C: - ldr r0, =gBattleStruct - ldr r1, [r0] - adds r1, 0x91 - ldrb r1, [r1] - ands r1, r3 - adds r7, r0, 0 - cmp r1, 0 - beq _0804C28E - b _0804C3E8 -_0804C28E: - ldr r0, =gBattleMoves - ldr r2, [sp, 0x18] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r1, [r1] - mov r8, r0 - cmp r1, 0x7F - bne _0804C2A4 - b _0804C3E8 -_0804C2A4: - ldr r0, [r5] - movs r1, 0x80 - lsls r1, 18 - ands r0, r1 - cmp r0, 0 - beq _0804C308 - ldr r0, =gLastUsedMovesByBanks - lsls r1, r4, 1 - adds r1, r0 - ldr r0, =gUnknown_020241EC - ldrh r0, [r0] - strh r0, [r1] - ldr r0, =gUnknown_02024260 - mov r3, r9 - ldrb r1, [r3] - lsls r1, 1 - adds r1, r0 - ldr r0, =gCurrentMove - ldrh r0, [r0] - strh r0, [r1] - b _0804C322 - .pool -_0804C308: - ldr r1, =gLastUsedMovesByBanks - lsls r0, r4, 1 - adds r0, r1 - ldr r1, =0x0000ffff - strh r1, [r0] - ldr r1, =gUnknown_02024260 - mov r4, r9 - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - movs r1, 0x1 - negs r1, r1 - strh r1, [r0] -_0804C322: - ldr r2, =gBankTarget - ldrb r3, [r2] - lsls r0, r3, 2 - adds r0, r6 - ldr r0, [r0] - lsls r0, 28 - ldr r1, [r5] - ands r1, r0 - cmp r1, 0 - bne _0804C340 - ldr r0, =gUnknown_02024270 - adds r0, r3, r0 - mov r3, r9 - ldrb r1, [r3] - strb r1, [r0] -_0804C340: - ldr r0, [r5] - movs r1, 0x80 - lsls r1, 18 - ands r0, r1 - cmp r0, 0 - beq _0804C3DC - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - bne _0804C3DC - ldr r0, =gUnknown_020241EC - ldrh r3, [r0] - ldr r0, =0x0000ffff - cmp r3, r0 - bne _0804C390 - ldr r1, =gUnknown_02024250 - ldrb r0, [r2] - lsls r0, 1 - adds r0, r1 - strh r3, [r0] - b _0804C3E8 - .pool -_0804C390: - ldr r0, =gUnknown_02024250 - ldrb r1, [r2] - lsls r1, 1 - adds r1, r0 - ldr r4, =gCurrentMove - ldrh r0, [r4] - strh r0, [r1] - ldr r0, [r7] - ldrb r3, [r0, 0x13] - cmp r3, 0 - beq _0804C3C0 - ldr r0, =gUnknown_02024258 - ldrb r1, [r2] - lsls r1, 1 - adds r1, r0 - movs r0, 0x3F - ands r0, r3 - b _0804C3E6 - .pool -_0804C3C0: - ldr r0, =gUnknown_02024258 - ldrb r2, [r2] - lsls r2, 1 - adds r2, r0 - ldrh r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - add r0, r8 - ldrb r0, [r0, 0x2] - strh r0, [r2] - b _0804C3E8 - .pool -_0804C3DC: - ldr r0, =gUnknown_02024250 - ldrb r1, [r2] - lsls r1, 1 - adds r1, r0 - ldr r0, =0x0000ffff -_0804C3E6: - strh r0, [r1] -_0804C3E8: - mov r4, r12 - ldrb r0, [r4, 0x14] - adds r0, 0x1 - strb r0, [r4, 0x14] - b _0804C570 - .pool -_0804C3FC: - ldr r0, =gAbsentBankFlags - ldrb r1, [r0] - ldr r7, =gBitTable - ldr r2, =gBankAttacker - ldrb r3, [r2] - lsls r0, r3, 2 - adds r0, r7 - ldr r4, [r0] - ands r1, r4 - mov r9, r2 - cmp r1, 0 - bne _0804C4B6 - ldr r6, =gBattleStruct - ldr r5, [r6] - adds r0, r5, 0 - adds r0, 0x91 - ldrb r0, [r0] - ands r0, r4 - cmp r0, 0 - bne _0804C4B6 - ldr r1, =gBattleMoves - ldr r2, [sp, 0x18] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x8] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0804C4B6 - ldr r0, =gHitMarker - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 18 - ands r0, r1 - cmp r0, 0 - beq _0804C4B6 - ldr r4, =gBankTarget - ldrb r0, [r4] - cmp r3, r0 - beq _0804C4B6 - ldrb r2, [r4] - lsls r0, r2, 2 - adds r0, r7 - ldr r0, [r0] - lsls r0, 28 - ands r1, r0 - cmp r1, 0 - bne _0804C4B6 - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - bne _0804C4B6 - lsls r1, r2, 1 - adds r1, r5 - adds r1, 0x98 - ldr r3, =gUnknown_020241EC - ldrh r0, [r3] - strb r0, [r1] - ldrb r1, [r4] - ldr r0, [r6] - lsls r1, 1 - adds r1, r0 - adds r1, 0x99 - ldrh r0, [r3] - lsrs r0, 8 - strb r0, [r1] - ldrb r0, [r4] - mov r2, r9 - ldrb r1, [r2] - ldr r2, [r6] - lsls r0, 3 - lsls r1, 1 - adds r0, r1 - adds r0, r2 - adds r0, 0xE0 - ldrh r1, [r3] - strb r1, [r0] - ldrb r1, [r4] - mov r4, r9 - ldrb r0, [r4] - ldr r2, [r6] - lsls r1, 3 - lsls r0, 1 - adds r1, r0 - adds r1, r2 - adds r1, 0xE1 - ldrh r0, [r3] - lsrs r0, 8 - strb r0, [r1] -_0804C4B6: - mov r5, r12 - ldrb r0, [r5, 0x14] - adds r0, 0x1 - strb r0, [r5, 0x14] - b _0804C570 - .pool -_0804C4E4: - ldr r5, =gHitMarker - ldr r2, [r5] - movs r0, 0x80 - lsls r0, 12 - ands r0, r2 - cmp r0, 0 - bne _0804C568 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0804C568 - ldr r1, =gProtectStructs - ldr r0, =gBankAttacker - ldrb r0, [r0] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0, 0x1] - lsls r0, 29 - cmp r0, 0 - blt _0804C568 - ldr r0, =gBattleMoves - mov r9, r0 - ldr r1, =gCurrentMove - mov r8, r1 - ldrh r0, [r1] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - add r1, r9 - ldrb r0, [r1, 0x6] - cmp r0, 0x8 - bne _0804C568 - movs r6, 0x80 - lsls r6, 2 - adds r4, r6, 0 - ands r4, r2 - cmp r4, 0 - bne _0804C568 - ldr r7, =gBankTarget - ldrb r0, [r7] - bl GetBankIdentity - movs r1, 0x2 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl GetBankByPlayerAI - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, =gBattleMons - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _0804C55E - bl _0804BCAC -_0804C55E: - ldr r0, [r5] - orrs r0, r6 - str r0, [r5] - ldr r2, =gBattleScripting - mov r12, r2 -_0804C568: - mov r3, r12 - ldrb r0, [r3, 0x14] - adds r0, 0x1 - strb r0, [r3, 0x14] -_0804C570: - ldr r4, [sp, 0x10] - cmp r4, 0x1 - bne _0804C582 - mov r5, r10 - cmp r5, 0 - bne _0804C582 - movs r0, 0x11 - mov r1, r12 - strb r0, [r1, 0x14] -_0804C582: - ldr r2, [sp, 0x10] - cmp r2, 0x2 - bne _0804C598 - ldr r4, [sp, 0x14] - mov r3, r12 - ldrb r3, [r3, 0x14] - cmp r4, r3 - bne _0804C598 - movs r0, 0x11 - mov r4, r12 - strb r0, [r4, 0x14] -_0804C598: - mov r5, r12 - ldrb r0, [r5, 0x14] - cmp r0, 0x11 - beq _0804C5A4 - bl _0804BD14 -_0804C5A4: - mov r1, r12 - ldrb r0, [r1, 0x14] - cmp r0, 0x11 - bne _0804C5BA - mov r2, r10 - cmp r2, 0 - bne _0804C5BA - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x3 -_0804C5B8: - str r0, [r1] -_0804C5BA: - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk49_moveendturn - - thumb_func_start atk4A_typecalc2 -atk4A_typecalc2: @ 804C5F4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r4, 0 - movs r5, 0 - ldr r2, =gBattleMoves - ldr r0, =gCurrentMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x2] - mov r8, r0 - ldr r2, =gBattleMons - ldr r3, =gBankTarget - ldrb r1, [r3] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x20 - ldrb r0, [r0] - mov r12, r2 - adds r7, r3, 0 - cmp r0, 0x1A - bne _0804C688 - mov r1, r8 - cmp r1, 0x4 - bne _0804C688 - ldr r3, =gLastUsedAbility - strb r0, [r3] - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x9 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gUnknown_02024250 - ldrb r0, [r7] - lsls r0, 1 - adds r0, r1 - strh r4, [r0] - ldr r0, =gBattleCommunication - mov r2, r8 - strb r2, [r0, 0x6] - ldrb r0, [r7] - ldrb r1, [r3] - bl RecordAbilityBattle - b _0804C76A - .pool -_0804C678: - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0] - b _0804C76A - .pool -_0804C688: - ldr r1, =gUnknown_0831ACE8 - adds r0, r5, r1 - ldrb r0, [r0] - adds r6, r1, 0 - b _0804C74A - .pool -_0804C698: - adds r0, r5, r6 - ldrb r0, [r0] - cmp r0, r8 - bne _0804C744 - adds r2, r5, 0x1 - adds r3, r2, r6 - ldrb r1, [r7] - movs r0, 0x58 - muls r0, r1 - add r0, r12 - adds r0, 0x21 - ldrb r1, [r3] - adds r3, r2, 0 - ldrb r0, [r0] - cmp r1, r0 - bne _0804C6D6 - adds r0, r5, 0x2 - adds r0, r6 - ldrb r1, [r0] - cmp r1, 0 - beq _0804C678 - cmp r1, 0x5 - bne _0804C6CA - movs r0, 0x4 - orrs r4, r0 -_0804C6CA: - cmp r1, 0x14 - bne _0804C6D6 - movs r0, 0x2 - orrs r4, r0 - lsls r0, r4, 24 - lsrs r4, r0, 24 -_0804C6D6: - adds r2, r3, r6 - ldrb r1, [r7] - movs r0, 0x58 - muls r0, r1 - add r0, r12 - adds r1, r0, 0 - adds r1, 0x22 - ldrb r2, [r2] - ldrb r1, [r1] - cmp r2, r1 - bne _0804C744 - adds r0, 0x21 - ldrb r1, [r0] - cmp r1, r2 - beq _0804C6FE - adds r0, r5, 0x2 - adds r0, r6 - ldrb r0, [r0] - cmp r0, 0 - beq _0804C678 -_0804C6FE: - cmp r1, r2 - beq _0804C714 - adds r0, r5, 0x2 - adds r0, r6 - ldrb r0, [r0] - cmp r0, 0x5 - bne _0804C714 - movs r0, 0x4 - orrs r4, r0 - lsls r0, r4, 24 - lsrs r4, r0, 24 -_0804C714: - adds r2, r3, r6 - ldrb r1, [r7] - movs r0, 0x58 - muls r0, r1 - add r0, r12 - adds r1, r0, 0 - adds r1, 0x22 - ldrb r2, [r2] - ldrb r1, [r1] - cmp r2, r1 - bne _0804C744 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, r2 - beq _0804C744 - adds r0, r5, 0x2 - adds r0, r6 - ldrb r0, [r0] - cmp r0, 0x14 - bne _0804C744 - movs r0, 0x2 - orrs r4, r0 - lsls r0, r4, 24 - lsrs r4, r0, 24 -_0804C744: - adds r5, 0x3 - adds r0, r5, r6 - ldrb r0, [r0] -_0804C74A: - cmp r0, 0xFF - beq _0804C76A - cmp r0, 0xFE - bne _0804C698 - ldrb r1, [r7] - movs r0, 0x58 - muls r0, r1 - mov r1, r12 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 22 - ands r0, r1 - cmp r0, 0 - beq _0804C744 -_0804C76A: - ldr r2, =gBattleMons - ldr r0, =gBankTarget - mov r8, r0 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x20 - ldrb r6, [r0] - cmp r6, 0x19 - bne _0804C7E6 - movs r5, 0x29 - ands r5, r4 - cmp r5, 0 - bne _0804C7E6 - ldr r0, =gBankAttacker - ldrb r0, [r0] - ldr r7, =gCurrentMove - ldrh r1, [r7] - bl move_weather_interaction - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x2 - bne _0804C7E6 - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - beq _0804C7AC - movs r0, 0x6 - ands r4, r0 - cmp r4, 0x6 - bne _0804C7E6 -_0804C7AC: - ldr r2, =gBattleMoves - ldrh r1, [r7] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - cmp r0, 0 - beq _0804C7E6 - ldr r3, =gLastUsedAbility - strb r6, [r3] - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gUnknown_02024250 - mov r2, r8 - ldrb r0, [r2] - lsls r0, 1 - adds r0, r1 - strh r5, [r0] - ldr r1, =gBattleCommunication - movs r0, 0x3 - strb r0, [r1, 0x6] - ldrb r0, [r2] - ldrb r1, [r3] - bl RecordAbilityBattle -_0804C7E6: - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0804C804 - ldr r2, =gProtectStructs - ldr r0, =gBankAttacker - ldrb r1, [r0] - lsls r1, 4 - adds r1, r2 - ldrb r0, [r1, 0x1] - movs r2, 0x2 - orrs r0, r2 - strb r0, [r1, 0x1] -_0804C804: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk4A_typecalc2 - - thumb_func_start atk4B_return_atk_to_ball -atk4B_return_atk_to_ball: @ 804C844 - push {r4,lr} - ldr r4, =gActiveBank - ldr r0, =gBankAttacker - ldrb r0, [r0] - strb r0, [r4] - ldr r2, =gHitMarker - ldr r1, =gBitTable - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - lsls r1, 28 - ldr r0, [r2] - ands r0, r1 - cmp r0, 0 - bne _0804C872 - movs r0, 0 - movs r1, 0 - bl dp01_build_cmdbuf_x06_a - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_0804C872: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atk4B_return_atk_to_ball - - thumb_func_start atk4C_copy_poke_data -atk4C_copy_poke_data: @ 804C894 - push {r4,r5,lr} - ldr r0, =gBattleExecBuffer - ldr r0, [r0] - cmp r0, 0 - bne _0804C8E4 - ldr r5, =gBattlescriptCurrInstr - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r4, =gActiveBank - strb r0, [r4] - ldr r3, =gBattlePartyID - ldrb r0, [r4] - lsls r2, r0, 1 - adds r2, r3 - ldr r1, =gBattleStruct - ldr r1, [r1] - adds r0, r1 - adds r0, 0x5C - ldrb r0, [r0] - strh r0, [r2] - ldr r1, =gBitTable - ldrb r0, [r4] - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0] - movs r0, 0 - movs r1, 0 - bl dp01_build_cmdbuf_x00_a_b_0 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r5] - adds r0, 0x2 - str r0, [r5] -_0804C8E4: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk4C_copy_poke_data - - thumb_func_start atk4D_switch_data_update -atk4D_switch_data_update: @ 804C904 - push {r4-r7,lr} - sub sp, 0x58 - ldr r0, =gBattleExecBuffer - ldr r0, [r0] - cmp r0, 0 - beq _0804C912 - b _0804CAA4 -_0804C912: - ldr r0, =gBattlescriptCurrInstr - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r4, =gActiveBank - strb r0, [r4] - ldr r6, =gBattleMons - ldrb r0, [r4] - movs r5, 0x58 - adds r1, r0, 0 - muls r1, r5 - adds r1, r6 - mov r0, sp - movs r2, 0x58 - bl memcpy - ldrb r0, [r4] - muls r0, r5 - adds r3, r0, r6 - movs r2, 0 - ldr r5, =gBattleBufferB -_0804C93E: - adds r0, r3, r2 - ldrb r1, [r4] - lsls r1, 9 - adds r1, 0x4 - adds r1, r2, r1 - adds r1, r5 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x57 - bls _0804C93E - ldr r4, =gBattleMons - ldr r6, =gActiveBank - ldrb r0, [r6] - movs r7, 0x58 - adds r2, r0, 0 - muls r2, r7 - adds r2, r4 - ldr r3, =gBaseStats - ldrh r1, [r2] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x6] - adds r2, 0x21 - strb r0, [r2] - ldrb r0, [r6] - adds r1, r0, 0 - muls r1, r7 - adds r1, r4 - ldrh r2, [r1] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x7] - adds r1, 0x22 - strb r0, [r1] - ldrb r0, [r6] - adds r1, r0, 0 - muls r1, r7 - adds r1, r4 - ldrh r0, [r1] - ldrb r1, [r1, 0x17] - lsrs r1, 7 - bl GetAbilityBySpecies - ldrb r1, [r6] - muls r1, r7 - adds r1, r4 - adds r1, 0x20 - strb r0, [r1] - ldrb r0, [r6] - bl GetBankSide - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, =gUnknown_020243D0 - adds r0, 0x29 - adds r0, r2, r0 - ldrb r1, [r0] - ldr r3, =gBitTable - ldr r2, =gBattlePartyID - ldrb r5, [r6] - lsls r0, r5, 1 - adds r0, r2 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - ands r1, r0 - mov r12, r4 - cmp r1, 0 - beq _0804C9DE - adds r0, r5, 0 - muls r0, r7 - add r0, r12 - movs r1, 0 - strh r1, [r0, 0x2E] -_0804C9DE: - ldr r2, =gBattleMoves - ldr r0, =gCurrentMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0x7F - bne _0804CA26 - movs r2, 0 - adds r4, r6, 0 - movs r6, 0x58 - mov r5, r12 - adds r5, 0x18 - add r3, sp, 0x18 -_0804C9FE: - ldrb r0, [r4] - adds r1, r0, 0 - muls r1, r6 - adds r1, r2, r1 - adds r1, r5 - adds r0, r3, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r2, 0x1 - cmp r2, 0x7 - ble _0804C9FE - ldr r0, =gActiveBank - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - mov r1, r12 - adds r1, 0x50 - adds r0, r1 - ldr r1, [sp, 0x50] - str r1, [r0] -_0804CA26: - bl sub_803A284 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 10 - ands r0, r1 - cmp r0, 0 - beq _0804CA78 - ldr r4, =gBattleMons - ldr r0, =gActiveBank - ldrb r3, [r0] - movs r0, 0x58 - adds r2, r3, 0 - muls r2, r0 - adds r1, r2, r4 - ldrh r0, [r1, 0x2C] - lsrs r0, 1 - ldrh r1, [r1, 0x28] - cmp r0, r1 - bcc _0804CA78 - cmp r1, 0 - beq _0804CA78 - adds r0, r4, 0 - adds r0, 0x4C - adds r0, r2, r0 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - bne _0804CA78 - ldr r0, =gBattleStruct - ldr r2, [r0] - adds r2, 0x92 - ldr r1, =gBitTable - lsls r0, r3, 2 - adds r0, r1 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] -_0804CA78: - ldr r0, =gBattleScripting - ldr r3, =gActiveBank - ldrb r2, [r3] - strb r2, [r0, 0x17] - ldr r1, =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x7 - strb r0, [r1, 0x1] - strb r2, [r1, 0x2] - ldr r2, =gBattlePartyID - ldrb r0, [r3] - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] -_0804CAA4: - add sp, 0x58 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk4D_switch_data_update - - thumb_func_start atk4E_switchin_anim -atk4E_switchin_anim: @ 804CAE8 - push {r4-r6,lr} - ldr r0, =gBattleExecBuffer - ldr r0, [r0] - cmp r0, 0 - bne _0804CB86 - ldr r0, =gBattlescriptCurrInstr - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r6, =gActiveBank - strb r0, [r6] - ldrb r0, [r6] - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0804CB3E - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - ldr r1, =0x063f0902 - ands r0, r1 - cmp r0, 0 - bne _0804CB3E - ldr r4, =gBattleMons - ldrb r0, [r6] - movs r5, 0x58 - muls r0, r5 - adds r0, r4 - ldrh r0, [r0] - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - ldrb r1, [r6] - muls r1, r5 - adds r4, 0x48 - adds r1, r4 - ldr r2, [r1] - movs r1, 0x2 - bl HandleSetPokedexFlag -_0804CB3E: - ldr r2, =gAbsentBankFlags - ldr r1, =gBitTable - ldr r5, =gActiveBank - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - ldrb r0, [r2] - bics r0, r1 - strb r0, [r2] - ldr r1, =gBattlePartyID - ldrb r0, [r5] - lsls r0, 1 - adds r0, r1 - ldrb r1, [r0] - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - ldrb r2, [r0, 0x2] - movs r0, 0 - bl dp01_build_cmdbuf_x05_a_b_c - ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r4] - adds r0, 0x3 - str r0, [r4] - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 11 - ands r0, r1 - cmp r0, 0 - beq _0804CB86 - bl sub_81A56B4 -_0804CB86: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end atk4E_switchin_anim - - thumb_func_start atk4F_jump_if_cannot_switch -atk4F_jump_if_cannot_switch: @ 804CBB0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - ldrb r1, [r0, 0x1] - movs r0, 0x7F - ands r0, r1 - bl get_battle_side_of_something - ldr r3, =gActiveBank - strb r0, [r3] - ldr r2, [r4] - ldrb r1, [r2, 0x1] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0804CC28 - ldr r1, =gBattleMons - ldrb r3, [r3] - movs r0, 0x58 - muls r0, r3 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - ldr r1, =0x0400e000 - ands r0, r1 - cmp r0, 0 - bne _0804CBFC - ldr r1, =gStatuses3 - lsls r0, r3, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 3 - ands r0, r1 - cmp r0, 0 - beq _0804CC28 -_0804CBFC: - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _0804CF00 - .pool -_0804CC28: - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 15 - ands r0, r1 - cmp r0, 0 - beq _0804CCC0 - ldr r5, =gActiveBank - ldrb r0, [r5] - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gPlayerParty - mov r8, r1 - cmp r0, 0x1 - bne _0804CC4E - ldr r0, =gEnemyParty - mov r8, r0 -_0804CC4E: - movs r4, 0 - ldrb r1, [r5] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0804CC5C - movs r4, 0x3 -_0804CC5C: - adds r6, r4, 0x3 - cmp r4, r6 - bge _0804CCA4 - ldr r7, =gBattlePartyID -_0804CC64: - movs r0, 0x64 - muls r0, r4 - mov r1, r8 - adds r5, r1, r0 - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _0804CC9E - adds r0, r5, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _0804CC9E - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _0804CC9E - ldr r0, =gActiveBank - ldrb r0, [r0] - lsls r0, 1 - adds r0, r7 - ldrh r0, [r0] - cmp r0, r4 - bne _0804CCA4 -_0804CC9E: - adds r4, 0x1 - cmp r4, r6 - blt _0804CC64 -_0804CCA4: - cmp r4, r6 - bne _0804CCAA - b _0804CED0 -_0804CCAA: - b _0804CEF8 - .pool -_0804CCC0: - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0804CD8C - movs r0, 0x80 - lsls r0, 16 - ands r1, r0 - cmp r1, 0 - beq _0804CD00 - ldr r5, =gActiveBank - ldrb r0, [r5] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _0804CCEC - ldr r0, =gPlayerParty - b _0804CD16 - .pool -_0804CCEC: - ldr r1, =gEnemyParty - mov r8, r1 - ldrb r0, [r5] - movs r4, 0x3 - cmp r0, 0x1 - bne _0804CD32 - movs r4, 0 - b _0804CD32 - .pool -_0804CD00: - ldr r5, =gActiveBank - ldrb r0, [r5] - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gPlayerParty - mov r8, r1 - cmp r0, 0x1 - bne _0804CD18 - ldr r0, =gEnemyParty -_0804CD16: - mov r8, r0 -_0804CD18: - movs r4, 0 - ldrb r0, [r5] - bl sub_806D864 - lsls r0, 24 - lsrs r0, 24 - bl sub_806D82C - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bne _0804CD32 - movs r4, 0x3 -_0804CD32: - adds r6, r4, 0x3 - cmp r4, r6 - bge _0804CCA4 - ldr r7, =gBattlePartyID -_0804CD3A: - movs r0, 0x64 - muls r0, r4 - mov r1, r8 - adds r5, r1, r0 - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _0804CD74 - adds r0, r5, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _0804CD74 - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _0804CD74 - ldr r0, =gActiveBank - ldrb r0, [r0] - lsls r0, 1 - adds r0, r7 - ldrh r0, [r0] - cmp r0, r4 - bne _0804CCA4 -_0804CD74: - adds r4, 0x1 - cmp r4, r6 - blt _0804CD3A - b _0804CCA4 - .pool -_0804CD8C: - movs r0, 0x80 - lsls r0, 8 - ands r1, r0 - cmp r1, 0 - beq _0804CE10 - ldr r5, =gActiveBank - ldrb r0, [r5] - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0804CE10 - ldr r0, =gEnemyParty - mov r8, r0 - movs r4, 0 - ldrb r0, [r5] - cmp r0, 0x3 - bne _0804CDB4 - movs r4, 0x3 -_0804CDB4: - adds r6, r4, 0x3 - cmp r4, r6 - blt _0804CDBC - b _0804CCA4 -_0804CDBC: - ldr r7, =gBattlePartyID -_0804CDBE: - movs r0, 0x64 - muls r0, r4 - mov r1, r8 - adds r5, r1, r0 - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _0804CDFA - adds r0, r5, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _0804CDFA - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _0804CDFA - ldr r0, =gActiveBank - ldrb r0, [r0] - lsls r0, 1 - adds r0, r7 - ldrh r0, [r0] - cmp r0, r4 - beq _0804CDFA - b _0804CCA4 -_0804CDFA: - adds r4, 0x1 - cmp r4, r6 - blt _0804CDBE - b _0804CCA4 - .pool -_0804CE10: - ldr r0, =gActiveBank - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bne _0804CE54 - movs r0, 0x1 - bl GetBankByPlayerAI - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - ands r0, r4 - cmp r0, 0 - beq _0804CE48 - movs r0, 0x3 - bl GetBankByPlayerAI - lsls r0, 24 - lsrs r6, r0, 24 - b _0804CE4A - .pool -_0804CE48: - adds r6, r7, 0 -_0804CE4A: - ldr r0, =gEnemyParty - mov r8, r0 - b _0804CE82 - .pool -_0804CE54: - movs r0, 0 - bl GetBankByPlayerAI - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0804CE7C - movs r0, 0x2 - bl GetBankByPlayerAI - lsls r0, 24 - lsrs r6, r0, 24 - b _0804CE7E - .pool -_0804CE7C: - adds r6, r7, 0 -_0804CE7E: - ldr r1, =gPlayerParty - mov r8, r1 -_0804CE82: - movs r4, 0 -_0804CE84: - movs r0, 0x64 - muls r0, r4 - mov r1, r8 - adds r5, r1, r0 - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _0804CEC6 - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _0804CEC6 - adds r0, r5, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _0804CEC6 - ldr r1, =gBattlePartyID - lsls r0, r7, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r4, r0 - beq _0804CEC6 - lsls r0, r6, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r4, r0 - bne _0804CECC -_0804CEC6: - adds r4, 0x1 - cmp r4, 0x5 - ble _0804CE84 -_0804CECC: - cmp r4, 0x6 - bne _0804CEF8 -_0804CED0: - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0804CF00 - .pool -_0804CEF8: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x6 - str r0, [r1] -_0804CF00: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk4F_jump_if_cannot_switch - - thumb_func_start sub_804CF10 -sub_804CF10: @ 804CF10 - push {r4,r5,lr} - sub sp, 0x4 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - ldr r5, =gActiveBank - ldrb r0, [r5] - ldr r4, =gBattleStruct - ldr r1, [r4] - adds r1, r0, r1 - adds r1, 0x58 - ldr r3, =gBattlePartyID - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - strb r0, [r1] - ldrb r0, [r5] - ldr r1, [r4] - adds r0, r1 - adds r0, 0x5C - movs r1, 0x6 - strb r1, [r0] - ldr r1, [r4] - adds r1, 0x93 - ldr r3, =gBitTable - ldrb r0, [r5] - lsls r0, 2 - adds r0, r3 - ldr r3, [r0] - ldrb r0, [r1] - bics r0, r3 - strb r0, [r1] - ldrb r0, [r5] - lsls r1, r0, 1 - adds r1, r0 - adds r1, 0x60 - ldr r0, [r4] - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0x1 - movs r3, 0 - bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f - ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_804CF10 - - thumb_func_start atk50_openpartyscreen -atk50_openpartyscreen: @ 804CF88 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - movs r7, 0 - movs r0, 0 - mov r9, r0 - ldr r6, =gBattlescriptCurrInstr - ldr r2, [r6] - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r1, r0 - mov r8, r1 - ldrb r1, [r2, 0x1] - adds r0, r1, 0 - mov r12, r6 - cmp r0, 0x5 - beq _0804CFBE - b _0804D464 -_0804CFBE: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x41 - ands r1, r0 - cmp r1, 0x1 - beq _0804D0B0 - ldr r1, =gActiveBank - strb r7, [r1] - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r7, r0 - bcc _0804CFD8 - b _0804D450 -_0804CFD8: - ldr r7, =gHitMarker - ldr r6, =gBitTable - adds r4, r1, 0 - ldr r2, =gAbsentBankFlags - mov r8, r2 -_0804CFE2: - ldrb r2, [r4] - lsls r0, r2, 2 - adds r0, r6 - ldr r1, [r0] - lsls r1, 28 - ldr r0, [r7] - ands r0, r1 - cmp r0, 0 - beq _0804D088 - adds r0, r2, 0 - movs r1, 0x6 - movs r2, 0x6 - bl sub_80423F4 - lsls r0, 24 - cmp r0, 0 - beq _0804D054 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - mov r2, r8 - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4] - lsls r0, 2 - adds r0, r6 - ldr r1, [r0] - lsls r1, 28 - ldr r0, [r7] - bics r0, r1 - str r0, [r7] - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - bl sub_8034464 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - b _0804D098 - .pool -_0804D054: - ldr r5, =gSpecialStatuses - ldrb r0, [r4] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r0, [r1] - lsls r0, 25 - cmp r0, 0 - blt _0804D098 - movs r0, 0x6 - bl sub_804CF10 - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - b _0804D098 - .pool -_0804D088: - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - bl sub_8034464 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_0804D098: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r1, =gNoOfAllBanks - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bcc _0804CFE2 - b _0804D450 - .pool -_0804D0B0: - ands r0, r1 - cmp r0, 0 - bne _0804D0B8 - b _0804D450 -_0804D0B8: - ldr r0, =gHitMarker - mov r8, r0 - ldr r0, [r0] - lsrs r5, r0, 28 - ldr r6, =gBitTable - ldr r0, [r6] - ands r0, r5 - cmp r0, 0 - beq _0804D170 - ldr r4, =gActiveBank - strb r7, [r4] - movs r0, 0 - movs r1, 0x6 - movs r2, 0x6 - bl sub_80423F4 - lsls r0, 24 - cmp r0, 0 - beq _0804D120 - ldr r2, =gAbsentBankFlags - ldrb r0, [r4] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4] - lsls r0, 2 - adds r0, r6 - ldr r1, [r0] - lsls r1, 28 - mov r2, r8 - ldr r0, [r2] - bics r0, r1 - str r0, [r2] - movs r0, 0 - bl dp01_build_cmdbuf_x2A_2A_2A_2A - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - b _0804D170 - .pool -_0804D120: - ldr r6, =gSpecialStatuses - ldrb r0, [r4] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r0, [r1] - lsls r0, 25 - cmp r0, 0 - blt _0804D15C - ldr r0, =gBattleStruct - ldr r0, [r0] - adds r0, 0x5E - ldrb r0, [r0] - bl sub_804CF10 - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - b _0804D170 - .pool -_0804D15C: - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - bl sub_8034464 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - movs r0, 0x1 - mov r9, r0 -_0804D170: - ldr r6, =gBitTable - ldr r0, [r6, 0x8] - ands r0, r5 - cmp r0, 0 - beq _0804D22E - ldr r0, [r6] - ands r0, r5 - cmp r0, 0 - bne _0804D22E - ldr r4, =gActiveBank - movs r0, 0x2 - strb r0, [r4] - movs r0, 0x2 - movs r1, 0x6 - movs r2, 0x6 - bl sub_80423F4 - lsls r0, 24 - cmp r0, 0 - beq _0804D1D8 - ldr r2, =gAbsentBankFlags - ldrb r0, [r4] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldr r2, =gHitMarker - ldrb r0, [r4] - lsls r0, 2 - adds r0, r6 - ldr r1, [r0] - lsls r1, 28 - ldr r0, [r2] - bics r0, r1 - str r0, [r2] - movs r0, 0 - bl dp01_build_cmdbuf_x2A_2A_2A_2A - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - b _0804D22E - .pool -_0804D1D8: - ldr r6, =gSpecialStatuses - ldrb r0, [r4] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r0, [r1] - lsls r0, 25 - cmp r0, 0 - blt _0804D214 - ldr r0, =gBattleStruct - ldr r0, [r0] - adds r0, 0x5C - ldrb r0, [r0] - bl sub_804CF10 - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - b _0804D22E - .pool -_0804D214: - movs r0, 0x1 - mov r1, r9 - ands r0, r1 - cmp r0, 0 - bne _0804D22E - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - bl sub_8034464 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_0804D22E: - ldr r6, =gBitTable - ldr r0, [r6, 0x4] - ands r0, r5 - cmp r0, 0 - beq _0804D2E4 - ldr r4, =gActiveBank - movs r0, 0x1 - strb r0, [r4] - movs r0, 0x1 - movs r1, 0x6 - movs r2, 0x6 - bl sub_80423F4 - lsls r0, 24 - cmp r0, 0 - beq _0804D290 - ldr r2, =gAbsentBankFlags - ldrb r0, [r4] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldr r2, =gHitMarker - ldrb r0, [r4] - lsls r0, 2 - adds r0, r6 - ldr r1, [r0] - lsls r1, 28 - ldr r0, [r2] - bics r0, r1 - str r0, [r2] - movs r0, 0 - bl dp01_build_cmdbuf_x2A_2A_2A_2A - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - b _0804D2E4 - .pool -_0804D290: - ldr r6, =gSpecialStatuses - ldrb r0, [r4] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r0, [r1] - lsls r0, 25 - cmp r0, 0 - blt _0804D2CC - ldr r0, =gBattleStruct - ldr r0, [r0] - adds r0, 0x5F - ldrb r0, [r0] - bl sub_804CF10 - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - b _0804D2E4 - .pool -_0804D2CC: - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - bl sub_8034464 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - movs r0, 0x2 - mov r2, r9 - orrs r2, r0 - mov r9, r2 -_0804D2E4: - ldr r6, =gBitTable - ldr r0, [r6, 0xC] - ands r0, r5 - cmp r0, 0 - beq _0804D3A2 - ldr r0, [r6, 0x4] - ands r0, r5 - cmp r0, 0 - bne _0804D3A2 - ldr r4, =gActiveBank - movs r0, 0x3 - strb r0, [r4] - movs r0, 0x3 - movs r1, 0x6 - movs r2, 0x6 - bl sub_80423F4 - lsls r0, 24 - cmp r0, 0 - beq _0804D34C - ldr r2, =gAbsentBankFlags - ldrb r0, [r4] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldr r2, =gHitMarker - ldrb r0, [r4] - lsls r0, 2 - adds r0, r6 - ldr r1, [r0] - lsls r1, 28 - ldr r0, [r2] - bics r0, r1 - str r0, [r2] - movs r0, 0 - bl dp01_build_cmdbuf_x2A_2A_2A_2A - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - b _0804D3A2 - .pool -_0804D34C: - ldr r6, =gSpecialStatuses - ldrb r0, [r4] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r0, [r1] - lsls r0, 25 - cmp r0, 0 - blt _0804D388 - ldr r0, =gBattleStruct - ldr r0, [r0] - adds r0, 0x5D - ldrb r0, [r0] - bl sub_804CF10 - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - b _0804D3A2 - .pool -_0804D388: - movs r0, 0x2 - mov r1, r9 - ands r1, r0 - cmp r1, 0 - bne _0804D3A2 - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - bl sub_8034464 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_0804D3A2: - ldr r1, =gSpecialStatuses - ldrb r0, [r1] - lsls r0, 25 - cmp r0, 0 - blt _0804D3FA - adds r0, r1, 0 - adds r0, 0x28 - ldrb r0, [r0] - lsls r0, 25 - cmp r0, 0 - blt _0804D3FA - cmp r5, 0 - beq _0804D3FA - ldr r0, =gAbsentBankFlags - ldrb r1, [r0] - ldr r0, =gBitTable - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _0804D3E4 - ldr r1, =gActiveBank - movs r0, 0x2 - strb r0, [r1] - b _0804D3E8 - .pool -_0804D3E4: - ldr r0, =gActiveBank - strb r1, [r0] -_0804D3E8: - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - bl sub_8034464 - ldr r0, =gActiveBank - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution -_0804D3FA: - ldr r1, =gSpecialStatuses - ldrb r0, [r1, 0x14] - lsls r0, 25 - cmp r0, 0 - blt _0804D450 - adds r0, r1, 0 - adds r0, 0x3C - ldrb r0, [r0] - lsls r0, 25 - cmp r0, 0 - blt _0804D450 - cmp r5, 0 - beq _0804D450 - ldr r0, =gAbsentBankFlags - ldrb r0, [r0] - ldr r1, =gBitTable - ldr r1, [r1, 0x4] - ands r0, r1 - cmp r0, 0 - beq _0804D438 - ldr r1, =gActiveBank - movs r0, 0x3 - b _0804D43C - .pool -_0804D438: - ldr r1, =gActiveBank - movs r0, 0x1 -_0804D43C: - strb r0, [r1] - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - bl sub_8034464 - ldr r0, =gActiveBank - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution -_0804D450: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x6 - str r0, [r1] - b _0804D804 - .pool -_0804D464: - cmp r0, 0x6 - beq _0804D46A - b _0804D658 -_0804D46A: - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0804D478 - b _0804D5F4 -_0804D478: - movs r0, 0x1 - ands r1, r0 - cmp r1, 0 - bne _0804D482 - b _0804D5F4 -_0804D482: - ldr r7, =gHitMarker - ldr r0, [r7] - lsrs r5, r0, 28 - ldr r4, =gBitTable - ldr r0, [r4, 0x8] - ands r0, r5 - cmp r0, 0 - beq _0804D52A - ldr r0, [r4] - ands r0, r5 - cmp r0, 0 - beq _0804D52A - ldr r6, =gActiveBank - movs r0, 0x2 - strb r0, [r6] - ldr r0, =gBattleBufferB - ldrb r1, [r0, 0x1] - movs r0, 0x2 - movs r2, 0x6 - bl sub_80423F4 - lsls r0, 24 - cmp r0, 0 - beq _0804D4F8 - ldr r2, =gAbsentBankFlags - ldrb r0, [r6] - lsls r0, 2 - adds r0, r4 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r6] - lsls r0, 2 - adds r0, r4 - ldr r1, [r0] - lsls r1, 28 - ldr r0, [r7] - bics r0, r1 - str r0, [r7] - movs r0, 0 - bl dp01_build_cmdbuf_x2A_2A_2A_2A - ldrb r0, [r6] - bl dp01_battle_side_mark_buffer_for_execution - b _0804D52A - .pool -_0804D4F8: - ldr r4, =gSpecialStatuses - ldrb r0, [r6] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r0, [r1] - lsls r0, 25 - cmp r0, 0 - blt _0804D52A - ldr r0, =gBattleStruct - ldr r0, [r0] - adds r0, 0x5C - ldrb r0, [r0] - bl sub_804CF10 - ldrb r1, [r6] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] -_0804D52A: - ldr r4, =gBitTable - ldr r0, [r4, 0xC] - ands r0, r5 - cmp r0, 0 - beq _0804D5DA - ldr r0, [r4, 0x4] - ands r5, r0 - cmp r5, 0 - beq _0804D5DA - ldr r5, =gActiveBank - movs r0, 0x3 - strb r0, [r5] - ldr r0, =gBattleBufferB - ldr r2, =0x00000201 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x3 - movs r2, 0x6 - bl sub_80423F4 - lsls r0, 24 - cmp r0, 0 - beq _0804D5A8 - ldr r2, =gAbsentBankFlags - ldrb r0, [r5] - lsls r0, 2 - adds r0, r4 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldr r2, =gHitMarker - ldrb r0, [r5] - lsls r0, 2 - adds r0, r4 - ldr r1, [r0] - lsls r1, 28 - ldr r0, [r2] - bics r0, r1 - str r0, [r2] - movs r0, 0 - bl dp01_build_cmdbuf_x2A_2A_2A_2A - ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution - b _0804D5DA - .pool -_0804D5A8: - ldr r4, =gSpecialStatuses - ldrb r0, [r5] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r0, [r1] - lsls r0, 25 - cmp r0, 0 - blt _0804D5DA - ldr r0, =gBattleStruct - ldr r0, [r0] - adds r0, 0x5D - ldrb r0, [r0] - bl sub_804CF10 - ldrb r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] -_0804D5DA: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x6 - str r0, [r1] - mov r12, r1 - b _0804D5F8 - .pool -_0804D5F4: - adds r0, r2, 0x6 - str r0, [r6] -_0804D5F8: - ldr r0, =gHitMarker - ldr r0, [r0] - lsrs r5, r0, 28 - ldr r1, =gUnknown_0202420D - movs r0, 0 - strb r0, [r1] - ldr r4, =gBitTable - ldr r2, [r4] - ands r2, r5 - ldr r6, =gNoOfAllBanks - cmp r2, 0 - bne _0804D634 - adds r7, r6, 0 - ldrb r0, [r6] - cmp r2, r0 - bcs _0804D634 - adds r3, r1, 0 -_0804D61A: - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] - ldrb r2, [r3] - lsls r0, r2, 2 - adds r0, r4 - ldr r0, [r0] - ands r0, r5 - cmp r0, 0 - bne _0804D634 - ldrb r0, [r7] - cmp r2, r0 - bcc _0804D61A -_0804D634: - ldrb r0, [r1] - ldrb r6, [r6] - cmp r0, r6 - beq _0804D63E - b _0804D804 -_0804D63E: - mov r1, r8 - mov r2, r12 - str r1, [r2] - b _0804D804 - .pool -_0804D658: - movs r0, 0x80 - ands r0, r1 - movs r5, 0x1 - cmp r0, 0 - beq _0804D664 - movs r5, 0 -_0804D664: - movs r0, 0x7F - ands r0, r1 - bl get_battle_side_of_something - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, =gSpecialStatuses - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 25 - cmp r0, 0 - bge _0804D690 - ldr r0, [r6] - adds r0, 0x6 - str r0, [r6] - b _0804D804 - .pool -_0804D690: - adds r0, r7, 0 - movs r1, 0x6 - movs r2, 0x6 - bl sub_80423F4 - lsls r0, 24 - cmp r0, 0 - beq _0804D6E0 - ldr r2, =gActiveBank - strb r7, [r2] - ldr r3, =gAbsentBankFlags - ldr r4, =gBitTable - ldrb r0, [r2] - lsls r0, 2 - adds r0, r4 - ldr r0, [r0] - ldrb r1, [r3] - orrs r0, r1 - strb r0, [r3] - ldr r3, =gHitMarker - ldrb r0, [r2] - lsls r0, 2 - adds r0, r4 - ldr r1, [r0] - lsls r1, 28 - ldr r0, [r3] - bics r0, r1 - str r0, [r3] - mov r0, r8 - str r0, [r6] - b _0804D804 - .pool -_0804D6E0: - ldr r4, =gActiveBank - strb r7, [r4] - ldrb r0, [r4] - ldr r3, =gBattleStruct - ldr r1, [r3] - adds r1, r0, r1 - adds r1, 0x58 - ldr r2, =gBattlePartyID - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - strb r0, [r1] - ldrb r0, [r4] - ldr r1, [r3] - adds r0, r1 - adds r0, 0x5C - movs r1, 0x6 - strb r1, [r0] - ldr r1, [r3] - adds r1, 0x93 - ldr r2, =gBitTable - ldrb r0, [r4] - lsls r0, 2 - adds r0, r2 - ldr r2, [r0] - ldrb r0, [r1] - bics r0, r2 - strb r0, [r1] - ldrb r1, [r4] - movs r0, 0x2 - eors r0, r1 - ldr r3, [r3] - adds r0, r3 - adds r0, 0x5C - ldrb r2, [r0] - ldrb r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - adds r0, 0x60 - adds r3, r0 - str r3, [sp] - movs r0, 0 - adds r1, r5, 0 - movs r3, 0 - bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r6] - adds r0, 0x6 - str r0, [r6] - ldrb r0, [r4] - bl GetBankIdentity - lsls r0, 24 - cmp r0, 0 - bne _0804D760 - ldr r1, =gBattleResults - ldrb r0, [r1, 0x2] - cmp r0, 0xFE - bhi _0804D760 - adds r0, 0x1 - strb r0, [r1, 0x2] -_0804D760: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0804D7C4 - ldr r1, =gActiveBank - movs r0, 0 - strb r0, [r1] - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r0, 0 - beq _0804D804 - adds r4, r1, 0 -_0804D77C: - ldrb r0, [r4] - cmp r0, r7 - beq _0804D792 - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - bl sub_8034464 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_0804D792: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r1, =gNoOfAllBanks - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bcc _0804D77C - b _0804D804 - .pool -_0804D7C4: - adds r0, r7, 0 - bl GetBankIdentity - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl GetBankByPlayerAI - ldr r4, =gActiveBank - strb r0, [r4] - ldr r0, =gAbsentBankFlags - ldrb r1, [r0] - ldr r2, =gBitTable - ldrb r3, [r4] - lsls r0, r3, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _0804D7F4 - movs r0, 0x2 - eors r3, r0 - strb r3, [r4] -_0804D7F4: - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - bl sub_8034464 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_0804D804: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk50_openpartyscreen - - thumb_func_start atk51_switch_handle_order -atk51_switch_handle_order: @ 804D820 - push {r4-r7,lr} - ldr r0, =gBattleExecBuffer - ldr r0, [r0] - cmp r0, 0 - beq _0804D82C - b _0804DA8A -_0804D82C: - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r5, =gActiveBank - strb r0, [r5] - ldr r0, [r4] - ldrb r0, [r0, 0x2] - cmp r0, 0x1 - beq _0804D8CC - cmp r0, 0x1 - bgt _0804D858 - cmp r0, 0 - beq _0804D862 - b _0804DA82 - .pool -_0804D858: - cmp r0, 0x2 - beq _0804D8E8 - cmp r0, 0x3 - beq _0804D922 - b _0804DA82 -_0804D862: - movs r6, 0 - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r6, r0 - blt _0804D86E - b _0804DA82 -_0804D86E: - ldr r7, =gBattleBufferB -_0804D870: - ldrb r0, [r7] - cmp r0, 0x22 - bne _0804D8AA - ldr r5, =gBattleStruct - ldr r0, [r5] - adds r0, r6, r0 - adds r0, 0x5C - ldrb r1, [r7, 0x1] - strb r1, [r0] - ldr r0, [r5] - adds r0, 0x93 - ldrb r1, [r0] - ldr r2, =gBitTable - lsls r0, r6, 2 - adds r0, r2 - ldr r4, [r0] - ands r1, r4 - cmp r1, 0 - bne _0804D8AA - lsls r0, r6, 24 - lsrs r0, 24 - ldrb r1, [r7, 0x1] - bl sub_8184FBC - ldr r1, [r5] - adds r1, 0x93 - ldrb r0, [r1] - orrs r4, r0 - strb r4, [r1] -_0804D8AA: - movs r0, 0x80 - lsls r0, 2 - adds r7, r0 - adds r6, 0x1 - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r6, r0 - blt _0804D870 - b _0804DA82 - .pool -_0804D8CC: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0804D8DA - b _0804DA82 -_0804D8DA: - ldrb r0, [r5] - bl sub_803BDA0 - b _0804DA82 - .pool -_0804D8E8: - ldr r4, =gBattleStruct - ldr r0, [r4] - adds r0, 0x93 - ldrb r1, [r0] - ldr r6, =gBitTable - ldrb r2, [r5] - lsls r0, r2, 2 - adds r0, r6 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _0804D922 - ldr r0, =gBattleBufferB - lsls r1, r2, 9 - adds r0, 0x1 - adds r1, r0 - ldrb r1, [r1] - adds r0, r2, 0 - bl sub_8184FBC - ldr r2, [r4] - adds r2, 0x93 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] -_0804D922: - ldr r1, =gBattleCommunication - ldr r6, =gBattleBufferB - ldr r7, =gActiveBank - ldrb r0, [r7] - lsls r0, 9 - adds r2, r6, 0x1 - adds r0, r2 - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - ldr r1, =gBattleStruct - mov r12, r1 - ldr r1, [r1] - adds r1, r0, r1 - adds r1, 0x5C - lsls r0, 9 - adds r0, r2 - ldrb r0, [r0] - strb r0, [r1] - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x42 - ands r0, r1 - cmp r0, 0x42 - bne _0804DA14 - ldrb r0, [r7] - mov r3, r12 - ldr r2, [r3] - lsls r1, r0, 1 - adds r1, r0 - adds r1, r2 - adds r1, 0x60 - ldrb r2, [r1] - movs r0, 0xF - ands r0, r2 - strb r0, [r1] - ldrb r0, [r7] - ldr r2, [r3] - lsls r1, r0, 1 - adds r1, r0 - adds r1, r2 - adds r1, 0x60 - lsls r0, 9 - adds r5, r6, 0x2 - adds r0, r5 - ldrb r2, [r0] - movs r3, 0xF0 - adds r0, r3, 0 - ands r0, r2 - ldrb r2, [r1] - orrs r0, r2 - strb r0, [r1] - ldrb r1, [r7] - mov r0, r12 - ldr r2, [r0] - lsls r0, r1, 1 - adds r0, r1 - adds r0, r2 - adds r0, 0x61 - lsls r1, 9 - adds r6, 0x3 - adds r1, r6 - ldrb r1, [r1] - strb r1, [r0] - ldrb r0, [r7] - movs r4, 0x2 - eors r0, r4 - mov r1, r12 - ldr r2, [r1] - lsls r1, r0, 1 - adds r1, r0 - adds r1, r2 - adds r1, 0x60 - ldrb r2, [r1] - adds r0, r3, 0 - ands r0, r2 - strb r0, [r1] - ldrb r0, [r7] - eors r0, r4 - mov r1, r12 - ldr r2, [r1] - lsls r1, r0, 1 - adds r1, r0 - adds r1, r2 - adds r1, 0x60 - ldrb r0, [r7] - lsls r0, 9 - adds r0, r5 - ldrb r0, [r0] - ands r3, r0 - lsrs r3, 4 - ldrb r0, [r1] - orrs r3, r0 - strb r3, [r1] - ldrb r0, [r7] - eors r4, r0 - mov r2, r12 - ldr r0, [r2] - lsls r1, r4, 1 - adds r1, r4 - adds r1, r0 - adds r1, 0x62 - ldrb r0, [r7] - lsls r0, 9 - adds r0, r6 - ldrb r0, [r0] - strb r0, [r1] - b _0804DA36 - .pool -_0804DA14: - movs r0, 0x80 - lsls r0, 15 - ands r1, r0 - cmp r1, 0 - beq _0804DA30 - ldrb r0, [r7] - mov r3, r12 - ldr r1, [r3] - adds r1, r0, r1 - adds r1, 0x5C - ldrb r1, [r1] - bl sub_80571DC - b _0804DA36 -_0804DA30: - ldrb r0, [r7] - bl sub_803BDA0 -_0804DA36: - ldr r1, =gBattleTextBuff1 - movs r5, 0xFD - strb r5, [r1] - movs r0, 0x6 - strb r0, [r1, 0x1] - ldr r4, =gBattleMons - ldr r3, =gBankAttacker - ldrb r0, [r3] - movs r2, 0x58 - muls r0, r2 - adds r0, r4 - ldrh r0, [r0] - strb r0, [r1, 0x2] - ldrb r0, [r3] - muls r0, r2 - adds r0, r4 - ldrh r0, [r0] - lsrs r0, 8 - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r2, =gBattleTextBuff2 - strb r5, [r2] - movs r0, 0x7 - strb r0, [r2, 0x1] - ldr r3, =gActiveBank - ldrb r0, [r3] - strb r0, [r2, 0x2] - ldr r1, =gBattleBufferB - ldrb r0, [r3] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2, 0x3] - movs r0, 0x1 - negs r0, r0 - strb r0, [r2, 0x4] -_0804DA82: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x3 - str r0, [r1] -_0804DA8A: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk51_switch_handle_order - - thumb_func_start atk52_switch_in_effects -atk52_switch_in_effects: @ 804DAAC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r0, =gBattlescriptCurrInstr - mov r9, r0 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r4, =gActiveBank - strb r0, [r4] - ldrb r0, [r4] - bl sub_803FA70 - ldr r1, =gHitMarker - mov r8, r1 - ldr r1, =gBitTable - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - lsls r1, 28 - mov r2, r8 - ldr r0, [r2] - bics r0, r1 - str r0, [r2] - ldr r2, =gSpecialStatuses - ldrb r0, [r4] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r2, [r1] - movs r0, 0x41 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldrb r0, [r4] - bl GetBankSide - ldr r5, =gSideAffecting - lsls r0, 24 - lsrs r0, 23 - adds r0, r5 - ldrh r1, [r0] - movs r7, 0x80 - lsls r7, 2 - mov r10, r7 - mov r0, r10 - ands r0, r1 - cmp r0, 0 - beq _0804DB1C - b _0804DC30 -_0804DB1C: - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - lsrs r0, 23 - adds r0, r5 - ldrh r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _0804DB34 - b _0804DC30 -_0804DB34: - ldr r7, =gBattleMons - ldrb r2, [r4] - movs r6, 0x58 - adds r0, r2, 0 - muls r0, r6 - adds r1, r0, r7 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0x2 - beq _0804DC30 - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0x2 - beq _0804DC30 - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x1A - beq _0804DC30 - adds r0, r2, 0 - bl GetBankSide - lsls r0, 24 - lsrs r0, 23 - adds r0, r5 - ldrh r2, [r0] - mov r1, r10 - orrs r1, r2 - strh r1, [r0] - ldrb r0, [r4] - adds r2, r0, 0 - muls r2, r6 - adds r0, r7, 0 - adds r0, 0x50 - adds r2, r0 - ldr r0, [r2] - ldr r1, =0xfdffffff - ands r0, r1 - str r0, [r2] - mov r1, r8 - ldr r0, [r1] - movs r2, 0x41 - negs r2, r2 - ands r0, r2 - str r0, [r1] - ldrb r0, [r4] - bl GetBankSide - ldr r2, =gSideTimers - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1, 0xA] - movs r1, 0x5 - subs r1, r0 - lsls r1, 25 - lsrs r1, 24 - ldr r5, =gBattleMoveDamage - ldrb r0, [r4] - muls r0, r6 - adds r0, r7 - ldrh r0, [r0, 0x2C] - bl __divsi3 - str r0, [r5] - cmp r0, 0 - bne _0804DBC8 - movs r0, 0x1 - str r0, [r5] -_0804DBC8: - ldr r0, =gBattleScripting - ldrb r1, [r4] - strb r1, [r0, 0x17] - bl b_movescr_stack_push_cursor - mov r7, r9 - ldr r0, [r7] - ldrb r0, [r0, 0x1] - cmp r0, 0 - bne _0804DC14 - ldr r0, =gUnknown_082DAE90 - str r0, [r7] - b _0804DD8E - .pool -_0804DC14: - cmp r0, 0x1 - bne _0804DC24 - ldr r0, =gUnknown_082DAE59 - mov r1, r9 - str r0, [r1] - b _0804DD8E - .pool -_0804DC24: - ldr r0, =gUnknown_082DAEC7 - mov r2, r9 - str r0, [r2] - b _0804DD8E - .pool -_0804DC30: - ldr r2, =gBattleMons - ldr r1, =gActiveBank - ldrb r3, [r1] - movs r0, 0x58 - muls r0, r3 - adds r0, r2 - adds r0, 0x20 - ldrb r0, [r0] - adds r5, r1, 0 - ldr r4, =gDisableStructs - cmp r0, 0x36 - bne _0804DC5E - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - adds r2, r0, r4 - ldrb r1, [r2, 0x18] - lsls r0, r1, 30 - cmp r0, 0 - blt _0804DC5E - movs r0, 0x1 - orrs r0, r1 - strb r0, [r2, 0x18] -_0804DC5E: - ldrb r0, [r5] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r2, [r1, 0x18] - movs r0, 0x3 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x18] - ldrb r1, [r5] - movs r0, 0 - str r0, [sp] - movs r2, 0 - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - cmp r0, 0 - beq _0804DC88 - b _0804DD8E -_0804DC88: - ldrb r1, [r5] - movs r0, 0 - movs r2, 0 - bl berry_effects_maybe - lsls r0, 24 - cmp r0, 0 - bne _0804DD8E - ldrb r0, [r5] - bl GetBankSide - ldr r1, =gSideAffecting - lsls r0, 24 - lsrs r0, 23 - adds r0, r1 - ldrh r2, [r0] - ldr r1, =0x0000fdff - ands r1, r2 - strh r1, [r0] - movs r4, 0 - ldr r0, =gNoOfAllBanks - ldrb r7, [r0] - cmp r4, r7 - bge _0804DCD8 - ldr r6, =gTurnOrder - adds r1, r5, 0 - ldr r5, =gUnknown_0202407A - movs r3, 0xC - adds r2, r0, 0 -_0804DCC2: - adds r0, r4, r6 - ldrb r0, [r0] - ldrb r7, [r1] - cmp r0, r7 - bne _0804DCD0 - adds r0, r4, r5 - strb r3, [r0] -_0804DCD0: - adds r4, 0x1 - ldrb r0, [r2] - cmp r4, r0 - blt _0804DCC2 -_0804DCD8: - movs r4, 0 - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r4, r0 - bge _0804DD0C - ldr r6, =gBattleStruct - ldr r5, =gBattleMons -_0804DCE6: - lsls r0, r4, 24 - lsrs r0, 24 - bl GetBankSide - lsls r0, 24 - lsrs r0, 23 - adds r0, 0xA8 - ldr r1, [r6] - adds r1, r0 - movs r0, 0x58 - muls r0, r4 - adds r0, r5 - ldrh r0, [r0, 0x28] - strh r0, [r1] - adds r4, 0x1 - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r4, r0 - blt _0804DCE6 -_0804DD0C: - ldr r0, =gBattlescriptCurrInstr - ldr r1, [r0] - ldrb r1, [r1, 0x1] - adds r5, r0, 0 - cmp r1, 0x5 - bne _0804DD88 - ldr r0, =gHitMarker - ldr r0, [r0] - lsrs r4, r0, 28 - ldr r1, =gUnknown_0202420D - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r2, =gBitTable - b _0804DD6E - .pool -_0804DD60: - ldr r0, =gNoOfAllBanks - ldrb r3, [r1] - ldrb r0, [r0] - cmp r3, r0 - bcs _0804DD88 - adds r0, r3, 0x1 - strb r0, [r1] -_0804DD6E: - ldrb r0, [r1] - lsls r0, 2 - adds r0, r2 - ldr r3, [r0] - adds r0, r4, 0 - ands r0, r3 - cmp r0, 0 - beq _0804DD60 - ldr r0, =gAbsentBankFlags - ldrb r0, [r0] - ands r0, r3 - cmp r0, 0 - bne _0804DD60 -_0804DD88: - ldr r0, [r5] - adds r0, 0x2 - str r0, [r5] -_0804DD8E: - 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 atk52_switch_in_effects - - thumb_func_start atk53_trainer_slide -atk53_trainer_slide: @ 804DDA8 - push {r4,r5,lr} - ldr r5, =gBattlescriptCurrInstr - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl GetBankByPlayerAI - ldr r4, =gActiveBank - strb r0, [r4] - movs r0, 0 - bl dp01_build_cmdbuf_x08_8_8_8 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r5] - adds r0, 0x2 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk53_trainer_slide - - thumb_func_start atk54_effectiveness_sound -atk54_effectiveness_sound: @ 804DDD8 - push {r4,r5,lr} - ldr r5, =gActiveBank - ldr r0, =gBankAttacker - ldrb r0, [r0] - strb r0, [r5] - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - ldrb r1, [r0, 0x1] - ldrb r0, [r0, 0x2] - lsls r0, 8 - orrs r1, r0 - movs r0, 0 - bl dp01_build_cmdbuf_x2B_aa_0 - ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r4] - adds r0, 0x3 - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk54_effectiveness_sound - - thumb_func_start atk55_play_sound -atk55_play_sound: @ 804DE14 - push {r4,r5,lr} - ldr r5, =gActiveBank - ldr r0, =gBankAttacker - ldrb r0, [r0] - strb r0, [r5] - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - ldrb r1, [r0, 0x1] - ldrb r0, [r0, 0x2] - lsls r0, 8 - orrs r1, r0 - movs r0, 0 - movs r2, 0 - bl sub_8034300 - ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r4] - adds r0, 0x3 - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk55_play_sound - - thumb_func_start atk56_fainting_cry -atk56_fainting_cry: @ 804DE50 - push {r4,r5,lr} - ldr r5, =gBattlescriptCurrInstr - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r4, =gActiveBank - strb r0, [r4] - movs r0, 0 - bl dp01_build_cmdbuf_x2D_2D_2D_2D - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r5] - adds r0, 0x2 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk56_fainting_cry - - thumb_func_start atk57 -atk57: @ 804DE80 - push {r4,lr} - movs r0, 0 - bl GetBankByPlayerAI - ldr r4, =gActiveBank - strb r0, [r4] - ldr r0, =gBattleOutcome - ldrb r1, [r0] - movs r0, 0 - bl dp01_build_cmdbuf_x37_a - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atk57 - - thumb_func_start atk58_return_to_ball -atk58_return_to_ball: @ 804DEB8 - push {r4,r5,lr} - ldr r5, =gBattlescriptCurrInstr - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r4, =gActiveBank - strb r0, [r4] - movs r0, 0 - movs r1, 0x1 - bl dp01_build_cmdbuf_x06_a - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r5] - adds r0, 0x2 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk58_return_to_ball - - thumb_func_start atk59_learnmove_inbattle -atk59_learnmove_inbattle: @ 804DEEC - push {r4-r7,lr} - ldr r0, =gBattlescriptCurrInstr - ldr r2, [r0] - ldrb r6, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r6, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r6, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r6, r0 - ldrb r4, [r2, 0x5] - ldrb r0, [r2, 0x6] - lsls r0, 8 - orrs r4, r0 - ldrb r0, [r2, 0x7] - lsls r0, 16 - orrs r4, r0 - ldrb r0, [r2, 0x8] - lsls r0, 24 - orrs r4, r0 - ldr r0, =gBattleStruct - ldr r0, [r0] - ldrb r1, [r0, 0x10] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - ldrb r1, [r2, 0x9] - bl MonTryLearningNewMove - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, =0x0000fffe - cmp r5, r0 - bne _0804DF56 - adds r7, r5, 0 -_0804DF3A: - ldr r0, =gBattleStruct - ldr r0, [r0] - ldrb r1, [r0, 0x10] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0 - bl MonTryLearningNewMove - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, r7 - beq _0804DF3A -_0804DF56: - cmp r5, 0 - bne _0804DF70 - ldr r0, =gBattlescriptCurrInstr - str r4, [r0] - b _0804E018 - .pool -_0804DF70: - ldr r0, =0x0000ffff - cmp r5, r0 - bne _0804DF88 - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0xA - str r0, [r1] - b _0804E018 - .pool -_0804DF88: - movs r0, 0 - bl GetBankByPlayerAI - ldr r1, =gActiveBank - strb r0, [r1] - ldr r2, =gBattlePartyID - ldrb r3, [r1] - lsls r0, r3, 1 - adds r0, r2 - ldr r1, =gBattleStruct - ldr r1, [r1] - ldrh r0, [r0] - ldrb r1, [r1, 0x10] - cmp r0, r1 - bne _0804DFC8 - ldr r4, =gBattleMons - movs r0, 0x58 - adds r2, r3, 0 - muls r2, r0 - adds r0, r4, 0 - adds r0, 0x50 - adds r0, r2, r0 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 14 - ands r0, r1 - cmp r0, 0 - bne _0804DFC8 - adds r0, r2, r4 - adds r1, r5, 0 - bl GiveMoveToBattleMon -_0804DFC8: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0804E014 - movs r0, 0x2 - bl GetBankByPlayerAI - ldr r1, =gActiveBank - strb r0, [r1] - ldr r2, =gBattlePartyID - ldrb r3, [r1] - lsls r0, r3, 1 - adds r0, r2 - ldr r1, =gBattleStruct - ldr r1, [r1] - ldrh r0, [r0] - ldrb r1, [r1, 0x10] - cmp r0, r1 - bne _0804E014 - ldr r4, =gBattleMons - movs r0, 0x58 - adds r2, r3, 0 - muls r2, r0 - adds r0, r4, 0 - adds r0, 0x50 - adds r0, r2, r0 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 14 - ands r0, r1 - cmp r0, 0 - bne _0804E014 - adds r0, r2, r4 - adds r1, r5, 0 - bl GiveMoveToBattleMon -_0804E014: - ldr r0, =gBattlescriptCurrInstr - str r6, [r0] -_0804E018: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk59_learnmove_inbattle - - thumb_func_start atk5A -atk5A: @ 804E038 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - ldr r0, =gActiveBank - movs r1, 0 - strb r1, [r0] - ldr r0, =gBattleScripting - ldrb r1, [r0, 0x1F] - adds r2, r0, 0 - cmp r1, 0x6 - bls _0804E052 - b _0804E3B8 -_0804E052: - lsls r0, r1, 2 - ldr r1, =_0804E068 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0804E068: - .4byte _0804E084 - .4byte _0804E0BC - .4byte _0804E162 - .4byte _0804E1B8 - .4byte _0804E1E4 - .4byte _0804E38C - .4byte _0804E3AC -_0804E084: - movs r4, 0 - str r4, [sp] - movs r0, 0x18 - movs r1, 0x8 - movs r2, 0x1D - movs r3, 0xD - bl sub_8056A3C - ldr r0, =gUnknown_085CCABB - movs r1, 0xC - bl battle_show_message_maybe - ldr r1, =gBattleScripting - ldrb r0, [r1, 0x1F] - adds r0, 0x1 - strb r0, [r1, 0x1F] - ldr r0, =gBattleCommunication - strb r4, [r0, 0x1] - movs r0, 0 - bl sub_8056B74 - b _0804E3B8 - .pool -_0804E0BC: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0804E0E4 - ldr r4, =gBattleCommunication - ldrb r0, [r4, 0x1] - cmp r0, 0 - beq _0804E0E4 - movs r0, 0x5 - bl PlaySE - ldrb r0, [r4, 0x1] - bl sub_8056BAC - movs r0, 0 - strb r0, [r4, 0x1] - bl sub_8056B74 -_0804E0E4: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0804E10C - ldr r4, =gBattleCommunication - ldrb r0, [r4, 0x1] - cmp r0, 0 - bne _0804E10C - movs r0, 0x5 - bl PlaySE - ldrb r0, [r4, 0x1] - bl sub_8056BAC - movs r0, 0x1 - strb r0, [r4, 0x1] - bl sub_8056B74 -_0804E10C: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r5, 0x1 - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _0804E150 - movs r0, 0x5 - bl PlaySE - ldr r0, =gBattleCommunication - ldrb r4, [r0, 0x1] - cmp r4, 0 - bne _0804E20A - str r5, [sp] - movs r0, 0x18 - movs r1, 0x8 - movs r2, 0x1D - movs r3, 0xD - bl sub_8056A3C - movs r0, 0x1 - negs r0, r0 - str r4, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _0804E192 - .pool -_0804E150: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _0804E15A - b _0804E3B8 -_0804E15A: - movs r0, 0x5 - bl PlaySE - b _0804E20A -_0804E162: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0804E170 - b _0804E3B8 -_0804E170: - bl FreeAllWindowBuffers - ldr r0, =gPlayerParty - ldr r1, =gBattleStruct - ldr r1, [r1] - ldrb r1, [r1, 0x10] - ldr r2, =gPlayerPartyCount - ldrb r2, [r2] - subs r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - ldr r3, =sub_80A92F8 - ldr r4, =gMoveToLearn - ldrh r4, [r4] - str r4, [sp] - bl sub_81BFA38 -_0804E192: - ldr r1, =gBattleScripting - ldrb r0, [r1, 0x1F] - adds r0, 0x1 - strb r0, [r1, 0x1F] - b _0804E3B8 - .pool -_0804E1B8: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0804E1C6 - b _0804E3B8 -_0804E1C6: - ldr r0, =gMain - ldr r1, [r0, 0x4] - ldr r0, =sub_8038420 - cmp r1, r0 - beq _0804E1D2 - b _0804E3B8 -_0804E1D2: - ldrb r0, [r2, 0x1F] - adds r0, 0x1 - b _0804E3B6 - .pool -_0804E1E4: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0804E1F2 - b _0804E3B8 -_0804E1F2: - ldr r0, =gMain - ldr r1, [r0, 0x4] - ldr r0, =sub_8038420 - cmp r1, r0 - beq _0804E1FE - b _0804E3B8 -_0804E1FE: - bl sub_81C1B94 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x4 - bne _0804E224 -_0804E20A: - ldr r1, =gBattleScripting - movs r0, 0x5 - strb r0, [r1, 0x1F] - b _0804E3B8 - .pool -_0804E224: - ldr r6, =gBattleStruct - ldr r0, [r6] - ldrb r0, [r0, 0x10] - movs r1, 0x64 - mov r8, r1 - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - ldr r7, =gPlayerParty - adds r0, r7 - adds r1, r5, 0 - adds r1, 0xD - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - bl IsHMMove2 - cmp r0, 0 - beq _0804E274 - ldr r0, =0x0000013f - ldr r1, =gActiveBank - ldrb r1, [r1] - bl b_std_message - ldr r1, =gBattleScripting - movs r0, 0x6 - strb r0, [r1, 0x1F] - b _0804E3B8 - .pool -_0804E274: - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - ldr r1, =gBattleTextBuff2 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x2 - strb r0, [r1, 0x1] - strb r4, [r1, 0x2] - lsrs r0, r4, 8 - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r0, [r6] - ldrb r0, [r0, 0x10] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r7 - adds r1, r5, 0 - bl RemoveMonPPBonus - ldr r0, [r6] - ldrb r0, [r0, 0x10] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r7 - ldr r7, =gMoveToLearn - ldrh r1, [r7] - adds r2, r5, 0 - bl SetMonMoveSlot - ldr r0, =gBattlePartyID - ldr r1, [r6] - ldrh r0, [r0] - ldrb r1, [r1, 0x10] - cmp r0, r1 - bne _0804E30A - ldr r4, =gBattleMons - ldr r0, [r4, 0x50] - movs r1, 0x80 - lsls r1, 14 - ands r0, r1 - cmp r0, 0 - bne _0804E30A - ldr r0, =gDisableStructs - ldrb r1, [r0, 0x18] - lsrs r1, 4 - ldr r2, =gBitTable - lsls r0, r5, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _0804E30A - adds r0, r4, 0 - adds r1, r5, 0 - bl RemoveBattleMonPPBonus - ldrh r1, [r7] - adds r0, r4, 0 - adds r2, r5, 0 - bl SetBattleMonMoveSlot -_0804E30A: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0804E3B8 - ldr r2, =gBattlePartyID - ldr r0, =gBattleStruct - ldr r1, [r0] - ldrh r0, [r2, 0x4] - ldrb r1, [r1, 0x10] - cmp r0, r1 - bne _0804E3B8 - ldr r4, =gBattleMons - movs r1, 0x80 - lsls r1, 1 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 14 - ands r0, r1 - cmp r0, 0 - bne _0804E3B8 - ldr r0, =gDisableStructs - adds r0, 0x50 - ldrb r1, [r0] - lsrs r1, 4 - ldr r2, =gBitTable - lsls r0, r5, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _0804E3B8 - adds r4, 0xB0 - adds r0, r4, 0 - adds r1, r5, 0 - bl RemoveBattleMonPPBonus - ldr r0, =gMoveToLearn - ldrh r1, [r0] - adds r0, r4, 0 - adds r2, r5, 0 - bl SetBattleMonMoveSlot - b _0804E3B8 - .pool -_0804E38C: - movs r0, 0x1 - str r0, [sp] - movs r0, 0x18 - movs r1, 0x8 - movs r2, 0x1D - movs r3, 0xD - bl sub_8056A3C - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _0804E3B8 - .pool -_0804E3AC: - ldr r0, =gBattleExecBuffer - ldr r0, [r0] - cmp r0, 0 - bne _0804E3B8 - movs r0, 0x2 -_0804E3B6: - strb r0, [r2, 0x1F] -_0804E3B8: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk5A - - thumb_func_start atk5B_80256E0 -atk5B_80256E0: @ 804E3C8 - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, =gBattleScripting - ldrb r4, [r5, 0x1F] - cmp r4, 0 - beq _0804E3E0 - cmp r4, 0x1 - beq _0804E410 - b _0804E4FA - .pool -_0804E3E0: - str r4, [sp] - movs r0, 0x18 - movs r1, 0x8 - movs r2, 0x1D - movs r3, 0xD - bl sub_8056A3C - ldr r0, =gUnknown_085CCABB - movs r1, 0xC - bl battle_show_message_maybe - ldrb r0, [r5, 0x1F] - adds r0, 0x1 - strb r0, [r5, 0x1F] - ldr r0, =gBattleCommunication - strb r4, [r0, 0x1] - movs r0, 0 - bl sub_8056B74 - b _0804E4FA - .pool -_0804E410: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0804E438 - ldr r4, =gBattleCommunication - ldrb r0, [r4, 0x1] - cmp r0, 0 - beq _0804E438 - movs r0, 0x5 - bl PlaySE - ldrb r0, [r4, 0x1] - bl sub_8056BAC - movs r0, 0 - strb r0, [r4, 0x1] - bl sub_8056B74 -_0804E438: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0804E460 - ldr r4, =gBattleCommunication - ldrb r0, [r4, 0x1] - cmp r0, 0 - bne _0804E460 - movs r0, 0x5 - bl PlaySE - ldrb r0, [r4, 0x1] - bl sub_8056BAC - movs r0, 0x1 - strb r0, [r4, 0x1] - bl sub_8056B74 -_0804E460: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r4, 0x1 - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - beq _0804E4C4 - movs r0, 0x5 - bl PlaySE - ldr r0, =gBattleCommunication - ldrb r0, [r0, 0x1] - cmp r0, 0 - beq _0804E4A4 - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0804E4AC - .pool -_0804E4A4: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_0804E4AC: - movs r0, 0x1 - str r0, [sp] - movs r0, 0x18 - movs r1, 0x8 - movs r2, 0x1D - movs r3, 0xD - bl sub_8056A3C - b _0804E4FA - .pool -_0804E4C4: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0804E4FA - movs r0, 0x5 - bl PlaySE - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - str r4, [sp] - movs r0, 0x18 - movs r1, 0x8 - movs r2, 0x1D - movs r3, 0xD - bl sub_8056A3C -_0804E4FA: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk5B_80256E0 - - thumb_func_start atk5C_hitanimation -atk5C_hitanimation: @ 804E508 - push {r4,lr} - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r2, =gActiveBank - strb r0, [r2] - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - bne _0804E58C - ldr r0, =gHitMarker - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 1 - ands r0, r1 - cmp r0, 0 - beq _0804E55A - ldr r1, =gBattleMons - ldrb r2, [r2] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - cmp r0, 0 - beq _0804E55A - ldr r0, =gDisableStructs - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0xA] - cmp r0, 0 - bne _0804E58C -_0804E55A: - movs r0, 0 - bl dp01_build_cmdbuf_x29_29_29_29 - ldr r0, =gActiveBank - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] - b _0804E592 - .pool -_0804E58C: - ldr r0, [r4] - adds r0, 0x2 - str r0, [r4] -_0804E592: - pop {r4} - pop {r0} - bx r0 - thumb_func_end atk5C_hitanimation - - thumb_func_start sub_804E598 -sub_804E598: @ 804E598 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 16 - lsrs r6, r0, 16 - movs r7, 0 - movs r5, 0 - movs r0, 0x80 - lsls r0, 3 - cmp r6, r0 - bne _0804E5D8 - ldr r0, =gBattleResources - ldr r0, [r0] - ldr r0, [r0] - adds r0, 0x94 - ldrb r2, [r0] - ldr r0, =gBattleStruct - ldr r0, [r0] - adds r0, 0x4A - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - muls r0, r2 - b _0804E6CA - .pool -_0804E5D8: - ldr r0, =gTrainers - lsls r2, r6, 2 - adds r1, r2, r6 - lsls r1, 3 - adds r4, r1, r0 - ldrb r3, [r4] - mov r12, r0 - cmp r3, 0x1 - beq _0804E62E - cmp r3, 0x1 - bgt _0804E5F8 - cmp r3, 0 - beq _0804E602 - b _0804E644 - .pool -_0804E5F8: - cmp r3, 0x2 - beq _0804E618 - cmp r3, 0x3 - beq _0804E62E - b _0804E644 -_0804E602: - mov r0, r12 - adds r0, 0x24 - adds r0, r1, r0 - ldr r1, [r0] - adds r0, r4, 0 - adds r0, 0x20 - ldrb r0, [r0] - lsls r0, 3 - adds r0, r1 - subs r0, 0x8 - b _0804E642 -_0804E618: - mov r0, r12 - adds r0, 0x24 - adds r0, r1, r0 - ldr r1, [r0] - adds r0, r4, 0 - adds r0, 0x20 - ldrb r0, [r0] - lsls r0, 3 - adds r0, r1 - subs r0, 0x8 - b _0804E642 -_0804E62E: - mov r0, r12 - adds r0, 0x24 - adds r0, r1, r0 - ldr r1, [r0] - adds r0, r4, 0 - adds r0, 0x20 - ldrb r0, [r0] - lsls r0, 4 - adds r0, r1 - subs r0, 0x10 -_0804E642: - ldrb r5, [r0, 0x2] -_0804E644: - ldr r1, =gUnknown_0831AEB8 - lsls r0, r7, 2 - adds r4, r0, r1 - ldrb r3, [r4] - ldr r0, =gBattleStruct - mov r8, r0 - mov r9, r1 - ldr r1, =gBattleTypeFlags - mov r10, r1 - cmp r3, 0xFF - beq _0804E67A - adds r0, r2, r6 - lsls r0, 3 - add r0, r12 - ldrb r1, [r0, 0x1] - cmp r3, r1 - beq _0804E67A - adds r2, r0, 0 - adds r0, r4, 0 -_0804E66A: - adds r0, 0x4 - adds r7, 0x1 - ldrb r1, [r0] - cmp r1, 0xFF - beq _0804E67A - ldrb r3, [r2, 0x1] - cmp r1, r3 - bne _0804E66A -_0804E67A: - mov r0, r10 - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - bne _0804E6B4 - movs r0, 0x1 - ands r1, r0 - cmp r1, 0 - beq _0804E6B4 - mov r3, r8 - ldr r0, [r3] - adds r0, 0x4A - ldrb r0, [r0] - lsls r0, 2 - adds r1, r5, 0 - muls r1, r0 - lsls r0, r7, 2 - add r0, r9 - ldrb r0, [r0, 0x1] - lsls r0, 1 - b _0804E6C8 - .pool -_0804E6B4: - mov r1, r8 - ldr r0, [r1] - adds r0, 0x4A - ldrb r0, [r0] - lsls r0, 2 - adds r1, r5, 0 - muls r1, r0 - lsls r0, r7, 2 - add r0, r9 - ldrb r0, [r0, 0x1] -_0804E6C8: - muls r0, r1 -_0804E6CA: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_804E598 - - thumb_func_start atk5D_getmoneyreward -atk5D_getmoneyreward: @ 804E6D8 - push {r4,lr} - ldr r0, =gTrainerBattleOpponent_A - ldrh r0, [r0] - bl sub_804E598 - adds r4, r0, 0 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - beq _0804E6FC - ldr r0, =gTrainerBattleOpponent_B - ldrh r0, [r0] - bl sub_804E598 - adds r4, r0 -_0804E6FC: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0x92 - lsls r1, 3 - adds r0, r1 - adds r1, r4, 0 - bl AddMoney - ldr r1, =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x1 - strb r0, [r1, 0x1] - movs r0, 0x4 - strb r0, [r1, 0x2] - movs r0, 0x5 - strb r0, [r1, 0x3] - strb r4, [r1, 0x4] - movs r0, 0xFF - lsls r0, 8 - ands r0, r4 - lsrs r0, 8 - strb r0, [r1, 0x5] - movs r0, 0xFF - lsls r0, 16 - ands r0, r4 - lsrs r0, 16 - strb r0, [r1, 0x6] - lsrs r0, r4, 24 - strb r0, [r1, 0x7] - movs r0, 0xFF - strb r0, [r1, 0x8] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atk5D_getmoneyreward - - thumb_func_start atk5E_8025A70 -atk5E_8025A70: @ 804E764 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r6, =gActiveBank - strb r0, [r6] - ldr r5, =gBattleCommunication - ldrb r0, [r5] - mov r8, r4 - cmp r0, 0 - beq _0804E794 - cmp r0, 0x1 - beq _0804E7AC - b _0804E800 - .pool -_0804E794: - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl dp01_build_cmdbuf_x00_a_b_0 - ldrb r0, [r6] - bl dp01_battle_side_mark_buffer_for_execution - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - b _0804E800 -_0804E7AC: - ldr r0, =gBattleExecBuffer - ldr r0, [r0] - cmp r0, 0 - bne _0804E800 - ldrb r0, [r6] - lsls r0, 9 - ldr r1, =gBattleBufferB + 4 - adds r0, r1 - mov r12, r0 - movs r2, 0 - adds r4, r6, 0 - movs r5, 0x58 - ldr r6, =gBattleMons + 0x24 - adds r7, r6, 0 - subs r7, 0x18 - mov r3, r12 - adds r3, 0xC -_0804E7CE: - lsls r1, r2, 1 - ldrb r0, [r4] - muls r0, r5 - adds r1, r0 - adds r1, r7 - ldrh r0, [r3] - strh r0, [r1] - ldrb r0, [r4] - adds r1, r0, 0 - muls r1, r5 - adds r1, r2, r1 - adds r1, r6 - mov r0, r12 - adds r0, 0x24 - adds r0, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r3, 0x2 - adds r2, 0x1 - cmp r2, 0x3 - ble _0804E7CE - mov r1, r8 - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] -_0804E800: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk5E_8025A70 - - thumb_func_start atk5F_8025B24 -atk5F_8025B24: @ 804E818 - push {lr} - ldr r0, =gActiveBank - ldr r2, =gBankAttacker - ldrb r3, [r2] - strb r3, [r0] - ldr r1, =gBankTarget - ldrb r0, [r1] - strb r0, [r2] - strb r3, [r1] - ldr r2, =gHitMarker - ldr r1, [r2] - movs r3, 0x80 - lsls r3, 5 - adds r0, r1, 0 - ands r0, r3 - cmp r0, 0 - beq _0804E854 - ldr r0, =0xffffefff - ands r1, r0 - b _0804E856 - .pool -_0804E854: - orrs r1, r3 -_0804E856: - str r1, [r2] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end atk5F_8025B24 - - thumb_func_start atk60_increment_gamestat -atk60_increment_gamestat: @ 804E868 - push {lr} - ldr r0, =gBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _0804E882 - ldr r0, =gBattlescriptCurrInstr - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl IncrementGameStat -_0804E882: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end atk60_increment_gamestat - - thumb_func_start atk61_8025BA4 -atk61_8025BA4: @ 804E898 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x30 - ldr r0, =gBattleExecBuffer - ldr r0, [r0] - cmp r0, 0 - bne _0804E94C - ldr r0, =gBattlescriptCurrInstr - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r1, =gActiveBank - strb r0, [r1] - ldrb r0, [r1] - bl GetBankSide - lsls r0, 24 - ldr r1, =gEnemyParty - mov r8, r1 - cmp r0, 0 - bne _0804E8CA - ldr r0, =gPlayerParty - mov r8, r0 -_0804E8CA: - movs r7, 0 - add r6, sp, 0x4 - mov r5, sp -_0804E8D0: - movs r0, 0x64 - muls r0, r7 - mov r1, r8 - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _0804E8F4 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - bne _0804E914 -_0804E8F4: - ldr r0, =0x0000ffff - strh r0, [r5] - movs r0, 0 - b _0804E926 - .pool -_0804E914: - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - strh r0, [r5] - adds r0, r4, 0 - movs r1, 0x37 - bl GetMonData -_0804E926: - str r0, [r6] - adds r6, 0x8 - adds r5, 0x8 - adds r7, 0x1 - cmp r7, 0x5 - ble _0804E8D0 - movs r0, 0 - mov r1, sp - movs r2, 0x1 - bl dp01_build_cmdbuf_x30_TODO - ldr r0, =gActiveBank - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] -_0804E94C: - add sp, 0x30 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk61_8025BA4 - - thumb_func_start atk62_08025C6C -atk62_08025C6C: @ 804E960 - push {r4,r5,lr} - ldr r5, =gBattlescriptCurrInstr - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r4, =gActiveBank - strb r0, [r4] - movs r0, 0 - bl dp01_build_cmdbuf_x31_31_31_31 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r5] - adds r0, 0x2 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk62_08025C6C - - thumb_func_start atk63_jumptorandomattack -atk63_jumptorandomattack: @ 804E990 - push {r4,lr} - ldr r0, =gBattlescriptCurrInstr - ldr r1, [r0] - ldrb r1, [r1, 0x1] - adds r4, r0, 0 - cmp r1, 0 - beq _0804E9B4 - ldr r0, =gCurrentMove - ldr r1, =gRandomMove - ldrh r1, [r1] - strh r1, [r0] - b _0804E9C2 - .pool -_0804E9B4: - ldr r2, =gUnknown_020241EC - ldr r1, =gCurrentMove - ldr r0, =gRandomMove - ldrh r0, [r0] - strh r0, [r1] - strh r0, [r2] - adds r0, r1, 0 -_0804E9C2: - ldr r3, =gUnknown_082D86A8 - ldr r2, =gBattleMoves - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atk63_jumptorandomattack - - thumb_func_start atk64_statusanimation -atk64_statusanimation: @ 804E9F4 - push {r4,lr} - ldr r0, =gBattleExecBuffer - ldr r0, [r0] - cmp r0, 0 - bne _0804EA5C - ldr r0, =gBattlescriptCurrInstr - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r4, =gActiveBank - strb r0, [r4] - ldr r1, =gStatuses3 - ldrb r2, [r4] - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, =0x000400c0 - ands r0, r1 - cmp r0, 0 - bne _0804EA54 - ldr r0, =gDisableStructs - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0xA] - cmp r0, 0 - bne _0804EA54 - ldr r0, =gHitMarker - ldr r0, [r0] - movs r1, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0804EA54 - ldr r1, =gBattleMons - movs r0, 0x58 - muls r0, r2 - adds r1, 0x4C - adds r0, r1 - ldr r2, [r0] - movs r0, 0 - movs r1, 0 - bl dp01_build_cmdbuf_x1B_aaaa_b - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_0804EA54: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] -_0804EA5C: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atk64_statusanimation - - thumb_func_start atk65_status2animation -atk65_status2animation: @ 804EA84 - push {r4,r5,lr} - ldr r0, =gBattleExecBuffer - ldr r0, [r0] - cmp r0, 0 - bne _0804EB04 - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r5, =gActiveBank - strb r0, [r5] - ldr r1, [r4] - ldrb r3, [r1, 0x2] - ldrb r0, [r1, 0x3] - lsls r0, 8 - orrs r3, r0 - ldrb r0, [r1, 0x4] - lsls r0, 16 - orrs r3, r0 - ldrb r0, [r1, 0x5] - lsls r0, 24 - orrs r3, r0 - ldr r1, =gStatuses3 - ldrb r2, [r5] - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, =0x000400c0 - ands r0, r1 - cmp r0, 0 - bne _0804EAFC - ldr r0, =gDisableStructs - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0xA] - cmp r0, 0 - bne _0804EAFC - ldr r0, =gHitMarker - ldr r0, [r0] - movs r1, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0804EAFC - ldr r1, =gBattleMons - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r2, [r0] - ands r2, r3 - movs r0, 0 - movs r1, 0x1 - bl dp01_build_cmdbuf_x1B_aaaa_b - ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution -_0804EAFC: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x6 - str r0, [r1] -_0804EB04: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk65_status2animation - - thumb_func_start atk66_chosenstatusanimation -atk66_chosenstatusanimation: @ 804EB2C - push {r4,r5,lr} - ldr r0, =gBattleExecBuffer - ldr r0, [r0] - cmp r0, 0 - bne _0804EB9E - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r5, =gActiveBank - strb r0, [r5] - ldr r4, [r4] - ldrb r2, [r4, 0x3] - ldrb r0, [r4, 0x4] - lsls r0, 8 - orrs r2, r0 - ldrb r0, [r4, 0x5] - lsls r0, 16 - orrs r2, r0 - ldrb r0, [r4, 0x6] - lsls r0, 24 - orrs r2, r0 - ldr r1, =gStatuses3 - ldrb r3, [r5] - lsls r0, r3, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, =0x000400c0 - ands r0, r1 - cmp r0, 0 - bne _0804EB96 - ldr r0, =gDisableStructs - lsls r1, r3, 3 - subs r1, r3 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0xA] - cmp r0, 0 - bne _0804EB96 - ldr r0, =gHitMarker - ldr r0, [r0] - movs r1, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0804EB96 - ldrb r1, [r4, 0x2] - movs r0, 0 - bl dp01_build_cmdbuf_x1B_aaaa_b - ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution -_0804EB96: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x7 - str r0, [r1] -_0804EB9E: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk66_chosenstatusanimation - - thumb_func_start atk67_8025ECC -atk67_8025ECC: @ 804EBC0 - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, =gBattleCommunication - ldrb r4, [r5] - cmp r4, 0 - beq _0804EBD8 - cmp r4, 0x1 - beq _0804EC04 - b _0804EC96 - .pool -_0804EBD8: - str r4, [sp] - movs r0, 0x18 - movs r1, 0x8 - movs r2, 0x1D - movs r3, 0xD - bl sub_8056A3C - ldr r0, =gUnknown_085CCABB - movs r1, 0xC - bl battle_show_message_maybe - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - strb r4, [r5, 0x1] - movs r0, 0 - bl sub_8056B74 - b _0804EC96 - .pool -_0804EC04: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0804EC2A - ldrb r0, [r5, 0x1] - cmp r0, 0 - beq _0804EC2A - movs r0, 0x5 - bl PlaySE - ldrb r0, [r5, 0x1] - bl sub_8056BAC - movs r0, 0 - strb r0, [r5, 0x1] - bl sub_8056B74 -_0804EC2A: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0804EC52 - ldr r4, =gBattleCommunication - ldrb r0, [r4, 0x1] - cmp r0, 0 - bne _0804EC52 - movs r0, 0x5 - bl PlaySE - ldrb r0, [r4, 0x1] - bl sub_8056BAC - movs r0, 0x1 - strb r0, [r4, 0x1] - bl sub_8056B74 -_0804EC52: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0804EC70 - ldr r0, =gBattleCommunication - movs r4, 0x1 - strb r4, [r0, 0x1] - b _0804EC7A - .pool -_0804EC70: - movs r4, 0x1 - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - beq _0804EC96 -_0804EC7A: - movs r0, 0x5 - bl PlaySE - str r4, [sp] - movs r0, 0x18 - movs r1, 0x8 - movs r2, 0x1D - movs r3, 0xD - bl sub_8056A3C - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] -_0804EC96: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk67_8025ECC - - thumb_func_start atk68_80246A0 -atk68_80246A0: @ 804ECA4 - push {r4,r5,lr} - movs r1, 0 - ldr r2, =gNoOfAllBanks - ldr r5, =gBattlescriptCurrInstr - ldrb r0, [r2] - cmp r1, r0 - bge _0804ECC2 - ldr r4, =gUnknown_0202407A - movs r3, 0xC -_0804ECB6: - adds r0, r1, r4 - strb r3, [r0] - adds r1, 0x1 - ldrb r0, [r2] - cmp r1, r0 - blt _0804ECB6 -_0804ECC2: - ldr r0, [r5] - adds r0, 0x1 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk68_80246A0 - - thumb_func_start atk69_dmg_adjustment2 -atk69_dmg_adjustment2: @ 804ECDC - push {r4-r7,lr} - ldr r7, =gBattleMons - ldr r6, =gBankTarget - ldrb r2, [r6] - movs r5, 0x58 - adds r0, r2, 0 - muls r0, r5 - adds r1, r0, r7 - ldrh r0, [r1, 0x2E] - cmp r0, 0xAF - bne _0804ED10 - ldr r1, =gEnigmaBerries - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r4, [r0, 0x7] - ldrb r6, [r0, 0x1A] - b _0804ED2A - .pool -_0804ED10: - ldrh r0, [r1, 0x2E] - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r4, r0, 24 - ldrb r0, [r6] - muls r0, r5 - adds r0, r7 - ldrh r0, [r0, 0x2E] - bl ItemId_GetHoldEffectParam - lsls r0, 24 - lsrs r6, r0, 24 -_0804ED2A: - ldr r1, =gStringBank - ldr r5, =gBankTarget - ldrb r0, [r5] - strb r0, [r1] - cmp r4, 0x27 - bne _0804ED68 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, r6 - bcs _0804ED68 - ldrb r0, [r5] - movs r1, 0x27 - bl RecordItemEffectBattle - ldr r2, =gSpecialStatuses - ldrb r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] -_0804ED68: - ldr r2, =gBattleMons - ldr r3, =gBankTarget - ldrb r4, [r3] - movs r0, 0x58 - muls r0, r4 - adds r1, r2, 0 - adds r1, 0x50 - adds r0, r1 - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 17 - ands r1, r0 - adds r5, r2, 0 - cmp r1, 0 - bne _0804EE38 - ldr r2, =gBattleMoves - ldr r0, =gCurrentMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0x65 - beq _0804EDBA - ldr r0, =gProtectStructs - lsls r1, r4, 4 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 30 - cmp r0, 0 - blt _0804EDBA - ldr r0, =gSpecialStatuses - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1] - lsrs r0, 7 - cmp r0, 0 - beq _0804EE38 -_0804EDBA: - ldrb r0, [r3] - movs r4, 0x58 - muls r0, r4 - adds r0, r5 - ldrh r1, [r0, 0x28] - ldr r2, =gBattleMoveDamage - ldr r0, [r2] - cmp r1, r0 - bgt _0804EE38 - subs r0, r1, 0x1 - str r0, [r2] - ldr r1, =gProtectStructs - ldrb r3, [r3] - lsls r0, r3, 4 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 30 - cmp r0, 0 - bge _0804EE10 - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - b _0804EE38 - .pool -_0804EE10: - ldr r0, =gSpecialStatuses - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1] - lsrs r0, 7 - cmp r0, 0 - beq _0804EE38 - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gLastUsedItem - adds r0, r3, 0 - muls r0, r4 - adds r0, r5 - ldrh r0, [r0, 0x2E] - strh r0, [r1] -_0804EE38: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk69_dmg_adjustment2 - - thumb_func_start atk6A_removeitem -atk6A_removeitem: @ 804EE58 - push {r4-r6,lr} - sub sp, 0x4 - ldr r6, =gBattlescriptCurrInstr - ldr r0, [r6] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r5, =gActiveBank - strb r0, [r5] - ldr r1, =gBattleStruct - ldrb r4, [r5] - lsls r0, r4, 1 - adds r0, 0xB8 - ldr r1, [r1] - adds r1, r0 - ldr r2, =gBattleMons - movs r3, 0x58 - adds r0, r4, 0 - muls r0, r3 - adds r0, r2 - ldrh r0, [r0, 0x2E] - strh r0, [r1] - ldrb r0, [r5] - muls r0, r3 - adds r0, r2 - movs r1, 0 - strh r1, [r0, 0x2E] - ldrb r0, [r5] - muls r0, r3 - adds r2, 0x2E - adds r0, r2 - str r0, [sp] - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x2 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r6] - adds r0, 0x2 - str r0, [r6] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end atk6A_removeitem - - thumb_func_start atk6B_atknameinbuff1 -atk6B_atknameinbuff1: @ 804EEC8 - ldr r1, =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x7 - strb r0, [r1, 0x1] - ldr r2, =gBankAttacker - ldrb r0, [r2] - strb r0, [r1, 0x2] - ldr r3, =gBattlePartyID - ldrb r0, [r2] - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .pool - thumb_func_end atk6B_atknameinbuff1 - - thumb_func_start atk6C_lvlbox_display -atk6C_lvlbox_display: @ 804EF04 - push {r4,lr} - sub sp, 0x4 - ldr r0, =gBattleScripting - ldrb r1, [r0, 0x1E] - adds r4, r0, 0 - cmp r1, 0 - bne _0804EF28 - bl sub_804F498 - cmp r0, 0 - beq _0804EF24 - movs r0, 0x3 - b _0804EF26 - .pool -_0804EF24: - movs r0, 0x1 -_0804EF26: - strb r0, [r4, 0x1E] -_0804EF28: - ldrb r0, [r4, 0x1E] - subs r0, 0x1 - cmp r0, 0x9 - bls _0804EF32 - b _0804F0F2 -_0804EF32: - lsls r0, 2 - ldr r1, =_0804EF40 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0804EF40: - .4byte _0804EF68 - .4byte _0804EF94 - .4byte _0804EFAC - .4byte _0804F000 - .4byte _0804F014 - .4byte _0804F02C - .4byte _0804F014 - .4byte _0804F04C - .4byte _0804F07C - .4byte _0804F0C0 -_0804EF68: - ldr r1, =gUnknown_02022E1E - movs r0, 0x60 - strh r0, [r1] - movs r0, 0x2 - movs r1, 0x7 - movs r2, 0 - bl SetBgAttribute - movs r0, 0x2 - bl ShowBg - bl sub_804F17C - ldr r1, =gBattleScripting - movs r0, 0x2 - strb r0, [r1, 0x1E] - b _0804F0F2 - .pool -_0804EF94: - bl sub_804F1CC - lsls r0, 24 - cmp r0, 0 - beq _0804EFA0 - b _0804F0F2 -_0804EFA0: - ldr r1, =gBattleScripting - movs r0, 0x3 - strb r0, [r1, 0x1E] - b _0804F0F2 - .pool -_0804EFAC: - ldr r1, =gUnknown_02022E18 - movs r0, 0 - strh r0, [r1] - ldr r1, =gUnknown_02022E1A - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r1] - movs r0, 0 - movs r1, 0x7 - movs r2, 0x1 - bl SetBgAttribute - movs r0, 0x1 - movs r1, 0x7 - movs r2, 0 - bl SetBgAttribute - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x80 - str r0, [sp] - movs r0, 0x12 - movs r1, 0x7 - movs r2, 0x1D - movs r3, 0x13 - bl sub_8056A3C - ldr r1, =gBattleScripting - movs r0, 0x4 - strb r0, [r1, 0x1E] - b _0804F0F2 - .pool -_0804F000: - bl sub_804F100 - movs r0, 0xD - bl PutWindowTilemap - movs r0, 0xD - movs r1, 0x3 - bl CopyWindowToVram - b _0804F06A -_0804F014: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _0804F0F2 - ldr r0, =gUnknown_02022E1A - strh r1, [r0] - b _0804F06A - .pool -_0804F02C: - ldr r0, =gMain - ldrh r0, [r0, 0x2E] - cmp r0, 0 - beq _0804F0F2 - movs r0, 0x5 - bl PlaySE - bl sub_804F144 - movs r0, 0xD - movs r1, 0x2 - bl CopyWindowToVram - b _0804F06A - .pool -_0804F04C: - ldr r0, =gMain - ldrh r0, [r0, 0x2E] - cmp r0, 0 - beq _0804F0F2 - movs r0, 0x5 - bl PlaySE - movs r0, 0x81 - str r0, [sp] - movs r0, 0x12 - movs r1, 0x7 - movs r2, 0x1D - movs r3, 0x13 - bl sub_8056A3C -_0804F06A: - ldr r1, =gBattleScripting - ldrb r0, [r1, 0x1E] - adds r0, 0x1 - strb r0, [r1, 0x1E] - b _0804F0F2 - .pool -_0804F07C: - bl sub_804F344 - lsls r0, 24 - cmp r0, 0 - bne _0804F0F2 - movs r0, 0xE - bl ClearWindowTilemap - movs r0, 0xE - movs r1, 0x1 - bl CopyWindowToVram - movs r0, 0xD - bl ClearWindowTilemap - movs r0, 0xD - movs r1, 0x1 - bl CopyWindowToVram - movs r0, 0x2 - movs r1, 0x7 - movs r2, 0x2 - bl SetBgAttribute - movs r0, 0x2 - bl ShowBg - ldr r1, =gBattleScripting - movs r0, 0xA - strb r0, [r1, 0x1E] - b _0804F0F2 - .pool -_0804F0C0: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _0804F0F2 - movs r0, 0 - movs r1, 0x7 - movs r2, 0 - bl SetBgAttribute - movs r0, 0x1 - movs r1, 0x7 - movs r2, 0x1 - bl SetBgAttribute - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] -_0804F0F2: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atk6C_lvlbox_display - - thumb_func_start sub_804F100 -sub_804F100: @ 804F100 - push {lr} - sub sp, 0x14 - ldr r0, =gBattleStruct - ldr r0, [r0] - ldrb r1, [r0, 0x10] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - add r1, sp, 0x8 - bl sub_81D388C - ldr r0, =gBattleResources - ldr r0, [r0] - ldr r1, [r0, 0x10] - movs r0, 0xD - str r0, [sp] - movs r0, 0xF - str r0, [sp, 0x4] - movs r0, 0xD - add r2, sp, 0x8 - movs r3, 0xE - bl sub_81D3640 - add sp, 0x14 - pop {r0} - bx r0 - .pool - thumb_func_end sub_804F100 - - thumb_func_start sub_804F144 -sub_804F144: @ 804F144 - push {lr} - sub sp, 0x10 - ldr r0, =gBattleStruct - ldr r0, [r0] - ldrb r1, [r0, 0x10] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - add r1, sp, 0x4 - bl sub_81D388C - movs r0, 0xF - str r0, [sp] - movs r0, 0xD - add r1, sp, 0x4 - movs r2, 0xE - movs r3, 0xD - bl sub_81D3784 - add sp, 0x10 - pop {r0} - bx r0 - .pool - thumb_func_end sub_804F144 - - thumb_func_start sub_804F17C -sub_804F17C: @ 804F17C - push {lr} - ldr r1, =gUnknown_02022E1E - movs r0, 0 - strh r0, [r1] - ldr r1, =gUnknown_02022E1C - movs r2, 0xD0 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, =gUnknown_0831C2C8 - movs r1, 0x60 - movs r2, 0x20 - bl LoadPalette - ldr r1, =gUnknown_0831C2E8 - movs r0, 0xE - movs r2, 0 - movs r3, 0 - bl CopyToWindowPixelBuffer - movs r0, 0xE - bl PutWindowTilemap - movs r0, 0xE - movs r1, 0x3 - bl CopyWindowToVram - bl sub_804F384 - pop {r0} - bx r0 - .pool - thumb_func_end sub_804F17C - - thumb_func_start sub_804F1CC -sub_804F1CC: @ 804F1CC - push {r4,r5,lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _0804F1DC - movs r0, 0x1 - b _0804F216 -_0804F1DC: - ldr r4, =gUnknown_02022E1C - ldrh r1, [r4] - movs r5, 0x80 - lsls r5, 2 - cmp r1, r5 - bne _0804F1F0 - movs r0, 0 - b _0804F216 - .pool -_0804F1F0: - movs r0, 0xD0 - lsls r0, 1 - cmp r1, r0 - bne _0804F1FC - bl sub_804F220 -_0804F1FC: - ldrh r0, [r4] - adds r0, 0x8 - strh r0, [r4] - lsls r0, 16 - ldr r1, =0x01ff0000 - cmp r0, r1 - bls _0804F20C - strh r5, [r4] -_0804F20C: - ldrh r1, [r4] - eors r1, r5 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 -_0804F216: - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_804F1CC - - thumb_func_start sub_804F220 -sub_804F220: @ 804F220 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - ldr r6, =gBattleStruct - ldr r0, [r6] - ldrb r0, [r0, 0x10] - movs r5, 0x64 - muls r0, r5 - ldr r4, =gPlayerParty - adds r0, r4 - movs r1, 0x38 - bl GetMonData - mov r8, r0 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r0, [r6] - ldrb r0, [r0, 0x10] - muls r0, r5 - adds r0, r4 - bl GetMonGender - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, [r6] - ldrb r0, [r0, 0x10] - muls r0, r5 - adds r0, r4 - ldr r5, =gStringVar4 - adds r1, r5, 0 - bl GetMonNickname - str r5, [sp] - mov r2, sp - movs r1, 0 - movs r0, 0xE - strb r0, [r2, 0x4] - mov r0, sp - strb r1, [r0, 0x5] - movs r4, 0x20 - strb r4, [r0, 0x6] - strb r1, [r0, 0x7] - strb r4, [r0, 0x8] - strb r1, [r0, 0x9] - strb r1, [r0, 0xA] - strb r1, [r0, 0xB] - mov r3, sp - ldrb r2, [r3, 0xC] - subs r1, 0x10 - adds r0, r1, 0 - ands r0, r2 - strb r0, [r3, 0xC] - mov r2, sp - movs r0, 0x10 - strb r0, [r2, 0xC] - ldrb r0, [r2, 0xD] - ands r1, r0 - strb r1, [r2, 0xD] - mov r0, sp - strb r4, [r0, 0xD] - movs r1, 0xFF - movs r2, 0 - bl AddTextPrinter - movs r0, 0xF9 - strb r0, [r5] - adds r5, 0x1 - movs r0, 0x5 - strb r0, [r5] - adds r5, 0x1 - adds r4, r5, 0 - adds r0, r4, 0 - mov r1, r8 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r5, r0, 0 - subs r4, r5, r4 - movs r2, 0x4 - subs r2, r4 - lsls r2, 16 - lsrs r2, 16 - movs r1, 0x77 - bl StringFill - adds r5, r0, 0 - cmp r7, 0xFF - beq _0804F320 - cmp r7, 0 - bne _0804F300 - movs r1, 0 - movs r2, 0xC - bl WriteColorChangeControlCode - adds r5, r0, 0 - movs r1, 0x1 - movs r2, 0xD - bl WriteColorChangeControlCode - adds r5, r0, 0 - movs r0, 0xB5 - b _0804F318 - .pool -_0804F300: - adds r0, r5, 0 - movs r1, 0 - movs r2, 0xE - bl WriteColorChangeControlCode - adds r5, r0, 0 - movs r1, 0x1 - movs r2, 0xF - bl WriteColorChangeControlCode - adds r5, r0, 0 - movs r0, 0xB6 -_0804F318: - strb r0, [r5] - adds r5, 0x1 - movs r0, 0xFF - strb r0, [r5] -_0804F320: - mov r0, sp - movs r1, 0xA - strb r1, [r0, 0x7] - strb r1, [r0, 0x9] - movs r1, 0xFF - movs r2, 0 - bl AddTextPrinter - movs r0, 0xE - movs r1, 0x2 - bl CopyWindowToVram - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_804F220 - - thumb_func_start sub_804F344 -sub_804F344: @ 804F344 - push {lr} - ldr r0, =gUnknown_02022E1C - ldrh r1, [r0] - movs r3, 0xD0 - lsls r3, 1 - adds r2, r0, 0 - cmp r1, r3 - bne _0804F35C - movs r0, 0 - b _0804F380 - .pool -_0804F35C: - ldrh r0, [r2] - adds r1, r0, 0 - subs r1, 0x10 - ldr r0, =0x0000019f - cmp r1, r0 - bgt _0804F370 - strh r3, [r2] - b _0804F372 - .pool -_0804F370: - strh r1, [r2] -_0804F372: - ldrh r1, [r2] - movs r0, 0xD0 - lsls r0, 1 - eors r1, r0 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 -_0804F380: - pop {r1} - bx r1 - thumb_func_end sub_804F344 - - thumb_func_start sub_804F384 -sub_804F384: @ 804F384 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x10 - ldr r0, =gBattleStruct - mov r8, r0 - ldr r0, [r0] - ldrb r0, [r0, 0x10] - movs r6, 0x64 - muls r0, r6 - ldr r5, =gPlayerParty - adds r0, r5 - movs r1, 0xB - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - mov r1, r8 - ldr r0, [r1] - ldrb r0, [r0, 0x10] - muls r0, r6 - adds r0, r5 - movs r1, 0 - bl GetMonData - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0x1 - bl sub_80D2EDC - str r0, [sp] - ldr r5, =0xffff0000 - ldr r0, [sp, 0x4] - ands r0, r5 - movs r1, 0x80 - lsls r1, 2 - orrs r0, r1 - ldr r1, =0x0000ffff - ands r0, r1 - ldr r1, =0xd75a0000 - orrs r0, r1 - str r0, [sp, 0x4] - adds r0, r4, 0 - bl sub_80D30B0 - str r0, [sp, 0x8] - add r4, sp, 0x8 - ldr r0, [r4, 0x4] - ands r0, r5 - ldr r1, =0x0000d75a - orrs r0, r1 - str r0, [r4, 0x4] - mov r0, sp - bl LoadSpriteSheet - adds r0, r4, 0 - bl LoadSpritePalette - ldr r0, =gUnknown_0831C3C0 - movs r1, 0x80 - lsls r1, 1 - movs r2, 0xA - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0x2E] - ldr r0, =gUnknown_02022E1C - ldrh r0, [r0] - strh r0, [r1, 0x30] - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_804F384 - - thumb_func_start sub_804F450 -sub_804F450: @ 804F450 - push {r4,lr} - adds r2, r0, 0 - ldr r0, =gUnknown_02022E1C - ldrh r1, [r2, 0x30] - ldrh r0, [r0] - subs r1, r0 - strh r1, [r2, 0x24] - lsls r1, 16 - cmp r1, 0 - beq _0804F470 - movs r0, 0x1 - strh r0, [r2, 0x2E] - b _0804F48C - .pool -_0804F470: - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0 - beq _0804F48C - adds r0, r2, 0 - bl DestroySprite - ldr r4, =0x0000d75a - adds r0, r4, 0 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl FreeSpritePaletteByTag -_0804F48C: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_804F450 - - thumb_func_start sub_804F498 -sub_804F498: @ 804F498 - push {lr} - ldr r3, =gBattlePartyID - ldr r0, =gBattleStruct - ldr r0, [r0] - ldrh r1, [r3] - ldrb r2, [r0, 0x10] - cmp r1, r2 - beq _0804F4BA - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0804F4CC - ldrh r0, [r3, 0x4] - cmp r0, r2 - bne _0804F4CC -_0804F4BA: - movs r0, 0x1 - b _0804F4CE - .pool -_0804F4CC: - movs r0, 0 -_0804F4CE: - pop {r1} - bx r1 - thumb_func_end sub_804F498 - - thumb_func_start atk6D_set_sentpokes_values -atk6D_set_sentpokes_values: @ 804F4D4 - push {lr} - bl sub_803F988 - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end atk6D_set_sentpokes_values - - thumb_func_start atk6E_set_atk_to_player0 -atk6E_set_atk_to_player0: @ 804F4EC - push {lr} - movs r0, 0 - bl GetBankByPlayerAI - ldr r1, =gBankAttacker - strb r0, [r1] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end atk6E_set_atk_to_player0 - - thumb_func_start atk6F_set_visible -atk6F_set_visible: @ 804F50C - push {r4,r5,lr} - ldr r5, =gBattlescriptCurrInstr - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r4, =gActiveBank - strb r0, [r4] - movs r0, 0 - movs r1, 0 - bl dp01_build_cmdbuf_x33_a_33_33 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r5] - adds r0, 0x2 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk6F_set_visible - - thumb_func_start atk70_record_ability -atk70_record_ability: @ 804F540 - push {r4,lr} - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r1, =gActiveBank - strb r0, [r1] - ldrb r0, [r1] - ldr r1, =gLastUsedAbility - ldrb r1, [r1] - bl RecordAbilityBattle - ldr r0, [r4] - adds r0, 0x1 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atk70_record_ability - - thumb_func_start sub_804F574 -sub_804F574: @ 804F574 - ldr r2, =gBattleTextBuff2 - movs r0, 0xFD - strb r0, [r2] - movs r0, 0x2 - strb r0, [r2, 0x1] - ldr r0, =gMoveToLearn - ldrh r1, [r0] - strb r1, [r2, 0x2] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - lsrs r0, 8 - strb r0, [r2, 0x3] - movs r0, 0xFF - strb r0, [r2, 0x4] - bx lr - .pool - thumb_func_end sub_804F574 - - thumb_func_start atk71_buffer_move_to_learn -atk71_buffer_move_to_learn: @ 804F59C - push {lr} - bl sub_804F574 - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end atk71_buffer_move_to_learn - - thumb_func_start atk72_jump_if_can_run_frombattle -atk72_jump_if_can_run_frombattle: @ 804F5B4 - push {lr} - ldr r0, =gUnknown_0202420D - ldrb r0, [r0] - bl sub_803EC20 - lsls r0, 24 - cmp r0, 0 - beq _0804F5E8 - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0804F5F0 - .pool -_0804F5E8: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_0804F5F0: - pop {r0} - bx r0 - .pool - thumb_func_end atk72_jump_if_can_run_frombattle - - thumb_func_start atk73_hp_thresholds -atk73_hp_thresholds: @ 804F5F8 - push {r4-r6,lr} - ldr r0, =gBattleTypeFlags - ldr r4, [r0] - movs r6, 0x1 - ands r4, r6 - cmp r4, 0 - bne _0804F68E - ldr r0, =gBattlescriptCurrInstr - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r1, =gActiveBank - strb r0, [r1] - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gBattleMons - movs r1, 0x58 - muls r1, r0 - adds r1, r2 - ldrh r5, [r1, 0x28] - movs r0, 0x64 - muls r0, r5 - ldrh r1, [r1, 0x2C] - bl __divsi3 - cmp r0, 0 - bne _0804F636 - movs r0, 0x1 -_0804F636: - cmp r0, 0x45 - bgt _0804F63E - cmp r5, 0 - bne _0804F65C -_0804F63E: - ldr r0, =gBattleStruct - ldr r0, [r0] - adds r0, 0xB1 - strb r4, [r0] - b _0804F68E - .pool -_0804F65C: - cmp r0, 0x27 - ble _0804F670 - ldr r0, =gBattleStruct - ldr r0, [r0] - adds r0, 0xB1 - strb r6, [r0] - b _0804F68E - .pool -_0804F670: - cmp r0, 0x9 - ble _0804F684 - ldr r0, =gBattleStruct - ldr r0, [r0] - adds r0, 0xB1 - movs r1, 0x2 - b _0804F68C - .pool -_0804F684: - ldr r0, =gBattleStruct - ldr r0, [r0] - adds r0, 0xB1 - movs r1, 0x3 -_0804F68C: - strb r1, [r0] -_0804F68E: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end atk73_hp_thresholds - - thumb_func_start atk74_hp_thresholds2 -atk74_hp_thresholds2: @ 804F6A4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, =gBattleTypeFlags - ldr r7, [r0] - movs r0, 0x1 - mov r8, r0 - ands r7, r0 - cmp r7, 0 - bne _0804F73E - ldr r0, =gBattlescriptCurrInstr - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - adds r4, r0, 0 - ldr r0, =gActiveBank - strb r4, [r0] - movs r0, 0x1 - eors r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl GetBankSide - lsls r0, 24 - ldr r1, =gBattleStruct - ldr r6, [r1] - lsrs r0, 23 - adds r0, r6 - adds r0, 0xA8 - ldrb r5, [r0] - ldr r1, =gBattleMons - movs r0, 0x58 - muls r0, r4 - adds r0, r1 - ldrh r4, [r0, 0x28] - subs r1, r5, r4 - movs r0, 0x64 - muls r0, r1 - adds r1, r5, 0 - bl __divsi3 - adds r1, r0, 0 - cmp r4, r5 - bcc _0804F71C - adds r0, r6, 0 - adds r0, 0xB1 - strb r7, [r0] - b _0804F73E - .pool -_0804F71C: - cmp r0, 0x1D - bgt _0804F72A - adds r0, r6, 0 - adds r0, 0xB1 - mov r1, r8 - strb r1, [r0] - b _0804F73E -_0804F72A: - cmp r1, 0x45 - bgt _0804F736 - adds r1, r6, 0 - adds r1, 0xB1 - movs r0, 0x2 - b _0804F73C -_0804F736: - adds r1, r6, 0 - adds r1, 0xB1 - movs r0, 0x3 -_0804F73C: - strb r0, [r1] -_0804F73E: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk74_hp_thresholds2 - - thumb_func_start atk75_8026A58 -atk75_8026A58: @ 804F754 - push {lr} - sub sp, 0x4 - ldr r2, =gBankInMenu - ldr r1, =gBankAttacker - ldrb r0, [r1] - strb r0, [r2] - ldr r2, =gBattlePartyID - ldrb r0, [r1] - lsls r0, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r1, =gEnemyParty - adds r0, r1 - ldr r1, =gLastUsedItem - ldrh r1, [r1] - lsls r2, 24 - lsrs r2, 24 - movs r3, 0x1 - str r3, [sp] - movs r3, 0 - bl ExecuteTableBasedItemEffect - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - add sp, 0x4 - pop {r0} - bx r0 - .pool - thumb_func_end atk75_8026A58 - - thumb_func_start atk76_various -atk76_various: @ 804F7AC - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r1, =gActiveBank - strb r0, [r1] - ldr r0, [r4] - ldrb r0, [r0, 0x2] - cmp r0, 0x1A - bls _0804F7CA - b _0804FD70 -_0804F7CA: - lsls r0, 2 - ldr r1, =_0804F7E0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0804F7E0: - .4byte _0804F84C - .4byte _0804F85C - .4byte _0804F8BC - .4byte _0804F8CC - .4byte _0804F8E4 - .4byte _0804F920 - .4byte _0804F958 - .4byte _0804F9E0 - .4byte _0804FA20 - .4byte _0804FACC - .4byte _0804FAE8 - .4byte _0804FB3C - .4byte _0804FB94 - .4byte _0804FC18 - .4byte _0804FC2C - .4byte _0804FC32 - .4byte _0804FC38 - .4byte _0804FC60 - .4byte _0804FC6A - .4byte _0804FC78 - .4byte _0804FC8C - .4byte _0804FCC4 - .4byte _0804FCD8 - .4byte _0804FCF0 - .4byte _0804FD1C - .4byte _0804FD30 - .4byte _0804FD5C -_0804F84C: - ldr r0, =gActiveBank - ldrb r0, [r0] - bl CancelMultiTurnMoves - b _0804FD70 - .pool -_0804F85C: - ldr r1, =gBankAttacker - ldr r4, =gBankTarget - ldrb r0, [r4] - strb r0, [r1] - ldrb r0, [r1] - bl GetBankSide - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gSideTimers - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r2, r1, r2 - ldrb r0, [r2, 0x8] - cmp r0, 0 - beq _0804F8A8 - ldr r1, =gBattleMons - ldrb r2, [r2, 0x9] - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _0804F8A8 - strb r2, [r4] - b _0804FD70 - .pool -_0804F8A8: - ldr r0, =gBankTarget - ldr r1, =gActiveBank - ldrb r1, [r1] - strb r1, [r0] - b _0804FD70 - .pool -_0804F8BC: - bl sub_803BB88 - ldr r1, =gBattleCommunication - strb r0, [r1] - b _0804FD70 - .pool -_0804F8CC: - ldr r0, =gCurrentMove - ldrh r0, [r0] - movs r1, 0 - bl GetMoveTarget - ldr r1, =gBankTarget - strb r0, [r1] - b _0804FD70 - .pool -_0804F8E4: - ldr r2, =gHitMarker - ldr r1, =gBitTable - ldr r0, =gActiveBank - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - lsls r0, 28 - ldr r2, [r2] - ands r2, r0 - cmp r2, 0 - beq _0804F914 - ldr r1, =gBattleCommunication - movs r0, 0x1 - strb r0, [r1] - b _0804FD70 - .pool -_0804F914: - ldr r0, =gBattleCommunication - strb r2, [r0] - b _0804FD70 - .pool -_0804F920: - ldr r4, =gSpecialStatuses - ldr r3, =gActiveBank - ldrb r0, [r3] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r2, [r1] - movs r0, 0x9 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldrb r0, [r3] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r2, [r1] - movs r0, 0x11 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - b _0804FD70 - .pool -_0804F958: - ldr r4, =gBattlePartyID - ldr r1, =gBattleStruct - ldr r0, [r1] - ldrh r3, [r4] - ldrb r2, [r0, 0x10] - adds r6, r1, 0 - cmp r3, r2 - beq _0804F974 - ldrh r0, [r4, 0x4] - cmp r0, r2 - beq _0804F970 - b _0804FD70 -_0804F970: - cmp r3, r0 - bne _0804F988 -_0804F974: - ldr r1, =gActiveBank - movs r0, 0 - b _0804F98C - .pool -_0804F988: - ldr r1, =gActiveBank - movs r0, 0x2 -_0804F98C: - strb r0, [r1] - adds r5, r1, 0 - ldrb r2, [r5] - lsls r0, r2, 1 - adds r0, 0xC8 - ldr r1, [r6] - adds r4, r1, r0 - movs r3, 0 - ldr r1, =gBattleMons - movs r0, 0x58 - muls r0, r2 - adds r1, 0xC - adds r0, r1 - ldrh r0, [r0] - ldrh r2, [r4] - cmp r0, r2 - beq _0804F9CC - adds r6, r5, 0 - movs r5, 0x58 - adds r2, r1, 0 -_0804F9B4: - adds r3, 0x1 - cmp r3, 0x3 - bgt _0804F9CC - lsls r1, r3, 1 - ldrb r0, [r6] - muls r0, r5 - adds r1, r0 - adds r1, r2 - ldrh r0, [r1] - ldrh r1, [r4] - cmp r0, r1 - bne _0804F9B4 -_0804F9CC: - cmp r3, 0x4 - beq _0804F9D2 - b _0804FD70 -_0804F9D2: - movs r0, 0 - strh r0, [r4] - b _0804FD70 - .pool -_0804F9E0: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0xB - ands r0, r1 - cmp r0, 0x8 - beq _0804F9EE - b _0804FD70 -_0804F9EE: - ldr r1, =gBattleMons - ldrh r0, [r1, 0x28] - cmp r0, 0 - bne _0804F9F8 - b _0804FD70 -_0804F9F8: - adds r0, r1, 0 - adds r0, 0x80 - ldrh r0, [r0] - cmp r0, 0 - bne _0804FA04 - b _0804FD70 -_0804FA04: - ldr r0, =gHitMarker - ldr r1, [r0] - ldr r2, =0xffbfffff - ands r1, r2 - str r1, [r0] - b _0804FD70 - .pool -_0804FA20: - ldr r2, =gBattleCommunication - mov r8, r2 - movs r0, 0 - strb r0, [r2] - ldr r1, =gBattleScripting - ldr r6, =gActiveBank - ldrb r0, [r2, 0x1] - strb r0, [r6] - strb r0, [r1, 0x17] - ldr r0, =gBattleStruct - ldr r0, [r0] - adds r7, r0, 0 - adds r7, 0x92 - ldrb r3, [r7] - ldr r1, =gBitTable - ldrb r2, [r6] - lsls r0, r2, 2 - adds r0, r1 - ldr r5, [r0] - adds r0, r3, 0 - ands r0, r5 - cmp r0, 0 - beq _0804FA50 - b _0804FD70 -_0804FA50: - ldr r4, =gBattleMons - movs r0, 0x58 - mov r12, r0 - mov r1, r12 - muls r1, r2 - adds r2, r1, 0 - adds r1, r2, r4 - ldrh r0, [r1, 0x2C] - lsrs r0, 1 - ldrh r1, [r1, 0x28] - cmp r0, r1 - bcs _0804FA6A - b _0804FD70 -_0804FA6A: - cmp r1, 0 - bne _0804FA70 - b _0804FD70 -_0804FA70: - adds r0, r4, 0 - adds r0, 0x4C - adds r0, r2, r0 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - beq _0804FA82 - b _0804FD70 -_0804FA82: - orrs r3, r5 - strb r3, [r7] - movs r0, 0x1 - mov r2, r8 - strb r0, [r2] - ldrb r0, [r6] - mov r1, r12 - muls r1, r0 - adds r0, r1, 0 - adds r1, r4, 0 - adds r1, 0x48 - adds r0, r1 - ldr r0, [r0] - bl GetNatureFromPersonality - ldr r1, =gUnknown_0831C4F8 - lsls r0, 24 - lsrs r0, 24 - adds r0, r1 - ldrb r0, [r0] - mov r2, r8 - strb r0, [r2, 0x5] - b _0804FD70 - .pool -_0804FACC: - ldr r4, =gBattleCommunication - adds r0, r4, 0 - bl sub_81A5258 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - bne _0804FADE - b _0804FD78 -_0804FADE: - strb r3, [r4, 0x1] - b _0804FD70 - .pool -_0804FAE8: - ldr r0, =gBattleMons - adds r0, 0x80 - movs r1, 0 - strh r1, [r0] - ldr r2, =gHitMarker - ldr r3, =gBitTable - ldr r1, [r3, 0x4] - lsls r1, 28 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - ldr r0, =gBattleStruct - ldr r2, [r0] - ldr r0, =0x000002a1 - adds r2, r0 - ldr r0, =gBattlePartyID - ldrh r0, [r0, 0x2] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldr r1, =gDisableStructs - adds r1, 0x34 - ldrb r0, [r1] - movs r2, 0x2 - b _0804FBF4 - .pool -_0804FB3C: - ldr r1, =gBattleMons - movs r0, 0 - strh r0, [r1, 0x28] - ldr r2, =gHitMarker - ldr r3, =gBitTable - ldr r1, [r3] - lsls r1, 28 - ldr r0, [r2] - orrs r0, r1 - movs r1, 0x80 - lsls r1, 15 - orrs r0, r1 - str r0, [r2] - ldr r0, =gBattleStruct - ldr r2, [r0] - movs r1, 0xA8 - lsls r1, 2 - adds r2, r1 - ldr r0, =gBattlePartyID - ldrh r0, [r0] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldr r2, =gDisableStructs - ldrb r0, [r2, 0x18] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2, 0x18] - b _0804FD70 - .pool -_0804FB94: - ldr r0, =gBattleMons - movs r1, 0 - strh r1, [r0, 0x28] - adds r0, 0x80 - strh r1, [r0] - ldr r2, =gHitMarker - ldr r3, =gBitTable - ldr r0, [r3] - lsls r0, 28 - ldr r1, [r2] - orrs r1, r0 - ldr r0, [r3, 0x4] - lsls r0, 28 - orrs r1, r0 - movs r0, 0x80 - lsls r0, 15 - orrs r1, r0 - str r1, [r2] - ldr r5, =gBattleStruct - ldr r2, [r5] - movs r0, 0xA8 - lsls r0, 2 - adds r2, r0 - ldr r4, =gBattlePartyID - ldrh r0, [r4] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldr r2, [r5] - ldr r1, =0x000002a1 - adds r2, r1 - ldrh r0, [r4, 0x2] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldr r1, =gDisableStructs - ldrb r0, [r1, 0x18] - movs r2, 0x2 - orrs r0, r2 - strb r0, [r1, 0x18] - adds r1, 0x34 - ldrb r0, [r1] -_0804FBF4: - orrs r0, r2 - strb r0, [r1] - b _0804FD70 - .pool -_0804FC18: - movs r0, 0 - bl sub_8033E10 - ldr r0, =gActiveBank - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - b _0804FD70 - .pool -_0804FC2C: - bl sub_81A5BF8 - b _0804FD70 -_0804FC32: - bl sub_81A5D44 - b _0804FD70 -_0804FC38: - ldr r1, =gUnknown_085CD1C8 - ldr r0, =gBattlescriptCurrInstr - ldr r0, [r0] - ldrb r0, [r0, 0x1] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl StrCpyDecodeToDisplayedStringBattle - ldr r0, =gDisplayedStringBattle - movs r1, 0x16 - bl battle_show_message_maybe - b _0804FD70 - .pool -_0804FC60: - movs r0, 0x16 - bl IsTextPrinterActive - lsls r0, 16 - b _0804FD24 -_0804FC6A: - bl IsCryFinished - lsls r0, 24 - cmp r0, 0 - bne _0804FC76 - b _0804FD78 -_0804FC76: - b _0804FD70 -_0804FC78: - ldr r4, =gActiveBank - movs r0, 0x1 - strb r0, [r4] - ldr r0, =gBattleMons - adds r0, 0x58 - b _0804FCA2 - .pool -_0804FC8C: - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r0, 0x3 - bls _0804FD70 - ldr r4, =gActiveBank - movs r0, 0x3 - strb r0, [r4] - ldr r0, =gBattleMons - movs r2, 0x84 - lsls r2, 1 - adds r0, r2 -_0804FCA2: - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _0804FD70 - movs r0, 0 - movs r1, 0 - bl dp01_build_cmdbuf_x06_a - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - b _0804FD70 - .pool -_0804FCC4: - ldr r0, =gMPlay_BGM - ldr r1, =0x0000ffff - movs r2, 0x55 - bl m4aMPlayVolumeControl - b _0804FD70 - .pool -_0804FCD8: - ldr r0, =gMPlay_BGM - ldr r1, =0x0000ffff - movs r2, 0x80 - lsls r2, 1 - bl m4aMPlayVolumeControl - b _0804FD70 - .pool -_0804FCF0: - ldr r0, =gBattleStruct - ldr r2, [r0] - ldr r0, =0x000002a2 - adds r2, r0 - ldr r1, =gBitTable - ldr r0, =gActiveBank - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - b _0804FD70 - .pool -_0804FD1C: - ldr r0, =gActiveBank - ldrb r0, [r0] - bl sub_805725C -_0804FD24: - cmp r0, 0 - bne _0804FD78 - b _0804FD70 - .pool -_0804FD30: - ldr r0, =gActiveBank - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _0804FD50 - ldr r1, =gBattleOutcome - movs r0, 0x5 - strb r0, [r1] - b _0804FD70 - .pool -_0804FD50: - ldr r1, =gBattleOutcome - movs r0, 0xA - strb r0, [r1] - b _0804FD70 - .pool -_0804FD5C: - movs r1, 0xCE - lsls r1, 1 - movs r0, 0 - movs r2, 0x1 - bl sub_8034300 - ldr r0, =gActiveBank - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution -_0804FD70: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x3 - str r0, [r1] -_0804FD78: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk76_various - - thumb_func_start atk77_setprotect -atk77_setprotect: @ 804FD8C - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r6, 0x1 - ldr r2, =gUnknown_02024260 - ldr r1, =gBankAttacker - ldrb r3, [r1] - lsls r0, r3, 1 - adds r0, r2 - ldrh r0, [r0] - mov r8, r1 - ldr r7, =gDisableStructs - cmp r0, 0xB6 - beq _0804FDBC - cmp r0, 0xC5 - beq _0804FDBC - cmp r0, 0xCB - beq _0804FDBC - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - adds r0, r7 - movs r1, 0 - strb r1, [r0, 0x8] -_0804FDBC: - ldr r0, =gUnknown_02024082 - ldrb r1, [r0] - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - subs r0, 0x1 - cmp r1, r0 - bne _0804FDCC - movs r6, 0 -_0804FDCC: - ldr r2, =sProtectSuccessRates - mov r5, r8 - ldrb r1, [r5] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r7 - ldrb r4, [r0, 0x8] - lsls r4, 1 - adds r4, r2 - bl Random - ldrh r1, [r4] - lsls r0, 16 - lsrs r0, 16 - cmp r1, r0 - bcc _0804FE80 - cmp r6, 0 - beq _0804FE80 - ldr r4, =gBattleMoves - ldr r3, =gCurrentMove - ldrh r0, [r3] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r0, [r1] - cmp r0, 0x6F - bne _0804FE1C - ldr r0, =gProtectStructs - ldrb r1, [r5] - lsls r1, 4 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x1 - orrs r0, r2 - strb r0, [r1] - ldr r1, =gBattleCommunication - movs r0, 0 - strb r0, [r1, 0x5] -_0804FE1C: - ldrh r0, [r3] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r0, [r1] - cmp r0, 0x74 - bne _0804FE42 - ldr r0, =gProtectStructs - ldrb r1, [r5] - lsls r1, 4 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x2 - orrs r0, r2 - strb r0, [r1] - ldr r1, =gBattleCommunication - movs r0, 0x1 - strb r0, [r1, 0x5] -_0804FE42: - mov r1, r8 - ldrb r0, [r1] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r7 - ldrb r0, [r1, 0x8] - adds r0, 0x1 - strb r0, [r1, 0x8] - b _0804FEA2 - .pool -_0804FE80: - ldr r2, =gDisableStructs - ldr r0, =gBankAttacker - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strb r1, [r0, 0x8] - ldr r1, =gBattleCommunication - movs r0, 0x2 - strb r0, [r1, 0x5] - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] -_0804FEA2: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk77_setprotect - - thumb_func_start atk78_faintifabilitynotdamp -atk78_faintifabilitynotdamp: @ 804FEC8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, =gBattleExecBuffer - ldr r2, [r0] - cmp r2, 0 - bne _0804FFCC - ldr r1, =gBankTarget - strb r2, [r1] - ldr r0, =gNoOfAllBanks - ldrb r3, [r0] - adds r5, r1, 0 - mov r8, r0 - ldr r6, =gBattleMons - cmp r2, r3 - bcs _0804FF14 - adds r0, r6, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x6 - beq _0804FF14 - adds r2, r3, 0 - adds r4, r6, 0 - movs r3, 0x58 -_0804FEF8: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, r2 - bcs _0804FF14 - ldrb r0, [r5] - muls r0, r3 - adds r0, r4 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x6 - bne _0804FEF8 -_0804FF14: - ldrb r0, [r5] - mov r1, r8 - ldrb r1, [r1] - cmp r0, r1 - bne _0804FFB0 - ldr r4, =gActiveBank - ldr r7, =gBankAttacker - ldrb r0, [r7] - strb r0, [r4] - ldr r2, =gBattleMoveDamage - ldrb r1, [r4] - movs r0, 0x58 - muls r0, r1 - adds r0, r6 - ldrh r0, [r0, 0x28] - str r0, [r2] - ldr r1, =0x00007fff - movs r0, 0 - bl dp01_build_cmdbuf_x18_0_aa_health_bar_update - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - movs r0, 0 - strb r0, [r5] - mov r2, r8 - ldrb r0, [r2] - cmp r0, 0 - beq _0804FFCC - adds r3, r5, 0 - ldrb r5, [r7] - ldr r7, =gBitTable - adds r4, r0, 0 - ldr r6, =gAbsentBankFlags -_0804FF60: - ldrb r2, [r3] - cmp r2, r5 - beq _0804FF76 - ldrb r0, [r6] - ldrb r1, [r3] - lsls r1, 2 - adds r1, r7 - ldr r1, [r1] - ands r0, r1 - cmp r0, 0 - beq _0804FFCC -_0804FF76: - adds r0, r2, 0x1 - strb r0, [r3] - lsls r0, 24 - lsrs r0, 24 - cmp r0, r4 - bcc _0804FF60 - b _0804FFCC - .pool -_0804FFB0: - ldr r1, =gLastUsedAbility - movs r0, 0x6 - strb r0, [r1] - ldrb r0, [r5] - movs r1, 0x58 - muls r1, r0 - adds r1, r6 - adds r1, 0x20 - ldrb r1, [r1] - bl RecordAbilityBattle - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB560 - str r0, [r1] -_0804FFCC: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk78_faintifabilitynotdamp - - thumb_func_start atk79_setatkhptozero -atk79_setatkhptozero: @ 804FFE4 - push {r4,lr} - sub sp, 0x4 - ldr r0, =gBattleExecBuffer - ldr r3, [r0] - cmp r3, 0 - bne _08050028 - ldr r4, =gActiveBank - ldr r0, =gBankAttacker - ldrb r0, [r0] - strb r0, [r4] - ldr r1, =gBattleMons - ldrb r0, [r4] - movs r2, 0x58 - muls r0, r2 - adds r0, r1 - strh r3, [r0, 0x28] - ldrb r0, [r4] - muls r0, r2 - adds r1, 0x28 - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0x2A - movs r2, 0 - movs r3, 0x2 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] -_08050028: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atk79_setatkhptozero - - thumb_func_start atk7A_jumpwhiletargetvalid -atk7A_jumpwhiletargetvalid: @ 8050044 - push {r4-r7,lr} - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r4, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r4, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r4, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r4, r0 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - adds r7, r3, 0 - cmp r0, 0 - beq _080500DC - ldr r0, =gBankTarget - ldrb r1, [r0] - adds r1, 0x1 - strb r1, [r0] - ldr r2, =gBankAttacker - lsls r1, 24 - lsrs r1, 24 - adds r3, r0, 0 - ldr r6, =gAbsentBankFlags - ldr r5, =gBitTable - ldr r0, =gNoOfAllBanks - mov r12, r0 - ldrb r0, [r2] - cmp r1, r0 - bne _0805009A -_0805008A: - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r2] - cmp r0, r1 - beq _0805008A -_0805009A: - ldrb r0, [r6] - ldrb r1, [r3] - lsls r1, 2 - adds r1, r5 - ldr r1, [r1] - ands r0, r1 - cmp r0, 0 - bne _0805008A - ldrb r0, [r3] - mov r2, r12 - ldrb r2, [r2] - cmp r0, r2 - bcc _080500D8 - ldr r0, [r7] - adds r0, 0x5 - str r0, [r7] - b _080500E0 - .pool -_080500D8: - str r4, [r7] - b _080500E0 -_080500DC: - adds r0, r2, 0x5 - str r0, [r3] -_080500E0: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end atk7A_jumpwhiletargetvalid - - thumb_func_start atk7B_healhalfHP_if_possible -atk7B_healhalfHP_if_possible: @ 80500E8 - push {r4-r6,lr} - ldr r4, =gBattlescriptCurrInstr - ldr r1, [r4] - ldrb r2, [r1, 0x1] - ldrb r0, [r1, 0x2] - lsls r0, 8 - orrs r2, r0 - ldrb r0, [r1, 0x3] - lsls r0, 16 - orrs r2, r0 - ldrb r0, [r1, 0x4] - lsls r0, 24 - orrs r2, r0 - ldrb r0, [r1, 0x5] - ldr r3, =gBankTarget - cmp r0, 0x1 - bne _08050110 - ldr r0, =gBankAttacker - ldrb r0, [r0] - strb r0, [r3] -_08050110: - ldr r1, =gBattleMoveDamage - ldr r6, =gBattleMons - ldrb r0, [r3] - movs r5, 0x58 - muls r0, r5 - adds r0, r6 - ldrh r0, [r0, 0x2C] - lsrs r0, 1 - str r0, [r1] - cmp r0, 0 - bne _0805012A - movs r0, 0x1 - str r0, [r1] -_0805012A: - ldr r0, [r1] - negs r0, r0 - str r0, [r1] - ldrb r0, [r3] - muls r0, r5 - adds r0, r6 - ldrh r1, [r0, 0x28] - ldrh r0, [r0, 0x2C] - cmp r1, r0 - bne _08050158 - str r2, [r4] - b _0805015E - .pool -_08050158: - ldr r0, [r4] - adds r0, 0x6 - str r0, [r4] -_0805015E: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end atk7B_healhalfHP_if_possible - - thumb_func_start atk7C_8025508 -atk7C_8025508: @ 8050164 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - ldr r2, =gNoOfAllBanks - ldr r0, =gBankAttacker - mov r10, r0 - movs r1, 0 - add r0, sp, 0x4 -_0805017A: - strh r1, [r0] - subs r0, 0x2 - cmp r0, sp - bge _0805017A - movs r1, 0 - mov r8, r1 - movs r5, 0 - ldrb r1, [r2] - cmp r5, r1 - bge _080501D0 - ldr r0, =gBankAttacker - ldrb r6, [r0] - ldr r2, =0x0000ffff - mov r9, r2 - lsls r4, r6, 3 - mov r2, sp - ldr r0, =gBattleStruct - mov r12, r0 - adds r7, r1, 0 -_080501A0: - cmp r5, r6 - beq _080501C8 - mov r1, r12 - ldr r0, [r1] - adds r0, r4, r0 - adds r1, r0, 0 - adds r1, 0xE0 - ldrb r3, [r1] - adds r0, 0xE1 - ldrb r0, [r0] - lsls r0, 8 - orrs r3, r0 - cmp r3, 0 - beq _080501C8 - cmp r3, r9 - beq _080501C8 - strh r3, [r2] - adds r2, 0x2 - movs r0, 0x1 - add r8, r0 -_080501C8: - adds r4, 0x2 - adds r5, 0x1 - cmp r5, r7 - blt _080501A0 -_080501D0: - mov r1, r10 - ldrb r0, [r1] - ldr r2, =gBattleStruct - ldr r1, [r2] - lsls r0, 1 - adds r0, r1 - adds r1, r0, 0 - adds r1, 0x98 - ldrb r3, [r1] - adds r0, 0x99 - ldrb r0, [r0] - lsls r0, 8 - orrs r3, r0 - cmp r3, 0 - beq _08050220 - ldr r0, =0x0000ffff - cmp r3, r0 - beq _08050220 - ldr r2, =gHitMarker - ldr r0, [r2] - ldr r1, =0xfffffbff - ands r0, r1 - str r0, [r2] - ldr r4, =gCurrentMove - strh r3, [r4] - b _0805024A - .pool -_08050220: - mov r0, r8 - cmp r0, 0 - beq _08050290 - ldr r2, =gHitMarker - ldr r0, [r2] - ldr r1, =0xfffffbff - ands r0, r1 - str r0, [r2] - bl Random - lsls r0, 16 - lsrs r0, 16 - mov r1, r8 - bl __modsi3 - adds r5, r0, 0 - ldr r4, =gCurrentMove - lsls r0, r5, 1 - add r0, sp - ldrh r0, [r0] - strh r0, [r4] -_0805024A: - ldrh r0, [r4] - movs r1, 0 - bl GetMoveTarget - ldr r1, =gBankTarget - strb r0, [r1] - ldr r5, =gBattlescriptCurrInstr - ldr r3, =gUnknown_082D86A8 - ldr r2, =gBattleMoves - ldrh r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - str r0, [r5] - b _080502AE - .pool -_08050290: - ldr r2, =gSpecialStatuses - mov r0, r10 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] -_080502AE: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk7C_8025508 - - thumb_func_start atk7D_set_rain -atk7D_set_rain: @ 80502C8 - push {lr} - ldr r2, =gBattleWeather - ldrh r0, [r2] - movs r1, 0x7 - ands r1, r0 - cmp r1, 0 - beq _080502F4 - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gBattleCommunication - movs r0, 0x2 - strb r0, [r1, 0x5] - b _08050304 - .pool -_080502F4: - movs r0, 0x1 - strh r0, [r2] - ldr r0, =gBattleCommunication - strb r1, [r0, 0x5] - ldr r0, =gUnknown_020243D0 - adds r0, 0x28 - movs r1, 0x5 - strb r1, [r0] -_08050304: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end atk7D_set_rain - - thumb_func_start atk7E_setreflect -atk7E_setreflect: @ 805031C - push {r4-r6,lr} - ldr r6, =gBankAttacker - ldrb r0, [r6] - bl GetBankIdentity - ldr r4, =gSideAffecting - movs r5, 0x1 - adds r1, r5, 0 - ands r1, r0 - lsls r1, 1 - adds r1, r4 - ldrh r1, [r1] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _0805035C - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gBattleCommunication - movs r0, 0 - b _080503D0 - .pool -_0805035C: - ldrb r0, [r6] - bl GetBankIdentity - adds r1, r5, 0 - ands r1, r0 - lsls r1, 1 - adds r1, r4 - ldrh r0, [r1] - movs r2, 0x1 - orrs r0, r2 - strh r0, [r1] - ldrb r0, [r6] - bl GetBankIdentity - ldr r4, =gSideTimers - adds r1, r5, 0 - ands r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x5 - strb r1, [r0] - ldrb r0, [r6] - bl GetBankIdentity - adds r1, r5, 0 - ands r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r6] - strb r1, [r0, 0x1] - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - ands r0, r5 - cmp r0, 0 - beq _080503CC - movs r0, 0x1 - bl CountAliveMonsInBattle - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x2 - bne _080503CC - ldr r0, =gBattleCommunication - strb r1, [r0, 0x5] - b _080503D2 - .pool -_080503CC: - ldr r1, =gBattleCommunication - movs r0, 0x1 -_080503D0: - strb r0, [r1, 0x5] -_080503D2: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end atk7E_setreflect - - thumb_func_start atk7F_setseeded -atk7F_setseeded: @ 80503E8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r7, =gBattleMoveFlags - ldrb r5, [r7] - movs r0, 0x29 - ands r0, r5 - cmp r0, 0 - bne _0805041A - ldr r0, =gStatuses3 - mov r9, r0 - ldr r1, =gBankTarget - mov r8, r1 - ldrb r4, [r1] - lsls r0, r4, 2 - mov r2, r9 - adds r6, r0, r2 - ldr r2, [r6] - movs r0, 0x4 - mov r12, r0 - adds r3, r2, 0 - ands r3, r0 - cmp r3, 0 - beq _08050438 -_0805041A: - movs r0, 0x1 - orrs r0, r5 - strb r0, [r7] - ldr r1, =gBattleCommunication - movs r0, 0x1 - strb r0, [r1, 0x5] - b _08050488 - .pool -_08050438: - ldr r1, =gBattleMons - movs r0, 0x58 - muls r0, r4 - adds r1, r0, r1 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0xC - beq _08050454 - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0xC - bne _0805046C -_08050454: - movs r0, 0x1 - orrs r0, r5 - strb r0, [r7] - ldr r1, =gBattleCommunication - movs r0, 0x2 - strb r0, [r1, 0x5] - b _08050488 - .pool -_0805046C: - ldr r0, =gBankAttacker - ldrb r0, [r0] - orrs r2, r0 - str r2, [r6] - mov r2, r8 - ldrb r1, [r2] - lsls r1, 2 - add r1, r9 - ldr r0, [r1] - mov r2, r12 - orrs r0, r2 - str r0, [r1] - ldr r0, =gBattleCommunication - strb r3, [r0, 0x5] -_08050488: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk7F_setseeded - - thumb_func_start atk80_manipulatedamage -atk80_manipulatedamage: @ 80504A8 - push {r4,lr} - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - ldrb r2, [r0, 0x1] - adds r4, r1, 0 - cmp r2, 0x1 - beq _080504D8 - cmp r2, 0x1 - bgt _080504C4 - cmp r2, 0 - beq _080504CA - b _08050518 - .pool -_080504C4: - cmp r2, 0x2 - beq _08050510 - b _08050518 -_080504CA: - ldr r1, =gBattleMoveDamage - ldr r0, [r1] - negs r0, r0 - b _08050516 - .pool -_080504D8: - ldr r3, =gBattleMoveDamage - ldr r0, [r3] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - str r0, [r3] - cmp r0, 0 - bne _080504EA - str r2, [r3] -_080504EA: - ldr r2, =gBattleMons - ldr r0, =gBankTarget - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r0, [r0, 0x2C] - lsrs r1, r0, 1 - ldr r0, [r3] - cmp r1, r0 - bge _08050518 - str r1, [r3] - b _08050518 - .pool -_08050510: - ldr r1, =gBattleMoveDamage - ldr r0, [r1] - lsls r0, 1 -_08050516: - str r0, [r1] -_08050518: - ldr r0, [r4] - adds r0, 0x2 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atk80_manipulatedamage - - thumb_func_start atk81_setrest -atk81_setrest: @ 8050528 - push {r4-r7,lr} - sub sp, 0x4 - ldr r0, =gBattlescriptCurrInstr - mov r12, r0 - ldr r1, [r0] - ldrb r6, [r1, 0x1] - ldrb r0, [r1, 0x2] - lsls r0, 8 - orrs r6, r0 - ldrb r0, [r1, 0x3] - lsls r0, 16 - orrs r6, r0 - ldrb r0, [r1, 0x4] - lsls r0, 24 - orrs r6, r0 - ldr r5, =gActiveBank - ldr r2, =gBankTarget - ldr r0, =gBankAttacker - ldrb r0, [r0] - strb r0, [r2] - strb r0, [r5] - ldr r4, =gBattleMoveDamage - ldr r1, =gBattleMons - ldrb r0, [r2] - movs r3, 0x58 - muls r0, r3 - adds r0, r1 - ldrh r0, [r0, 0x2C] - negs r0, r0 - str r0, [r4] - ldrb r0, [r2] - adds r4, r0, 0 - muls r4, r3 - adds r0, r4, r1 - ldrh r3, [r0, 0x28] - adds r7, r5, 0 - adds r5, r2, 0 - adds r2, r1, 0 - ldrh r0, [r0, 0x2C] - cmp r3, r0 - bne _08050598 - mov r0, r12 - str r6, [r0] - b _080505E8 - .pool -_08050598: - adds r0, r2, 0 - adds r0, 0x4C - adds r0, r4, r0 - ldr r1, [r0] - movs r0, 0xF8 - ands r1, r0 - cmp r1, 0 - beq _080505B4 - ldr r1, =gBattleCommunication - movs r0, 0x1 - strb r0, [r1, 0x5] - b _080505B8 - .pool -_080505B4: - ldr r0, =gBattleCommunication - strb r1, [r0, 0x5] -_080505B8: - ldrb r0, [r5] - movs r3, 0x58 - muls r0, r3 - adds r2, 0x4C - adds r0, r2 - movs r1, 0x3 - str r1, [r0] - ldrb r0, [r7] - muls r0, r3 - adds r0, r2 - str r0, [sp] - movs r0, 0 - movs r1, 0x28 - movs r2, 0 - movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r7] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_080505E8: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk81_setrest - - thumb_func_start atk82_jumpifnotfirstturn -atk82_jumpifnotfirstturn: @ 80505F8 - push {r4,r5,lr} - ldr r5, =gBattlescriptCurrInstr - ldr r4, [r5] - ldrb r3, [r4, 0x1] - ldrb r0, [r4, 0x2] - lsls r0, 8 - orrs r3, r0 - ldrb r0, [r4, 0x3] - lsls r0, 16 - orrs r3, r0 - ldrb r0, [r4, 0x4] - lsls r0, 24 - orrs r3, r0 - ldr r2, =gDisableStructs - ldr r0, =gBankAttacker - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x16] - cmp r0, 0 - beq _08050638 - adds r0, r4, 0x5 - str r0, [r5] - b _0805063A - .pool -_08050638: - str r3, [r5] -_0805063A: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end atk82_jumpifnotfirstturn - - thumb_func_start atk83_nop -atk83_nop: @ 8050640 - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .pool - thumb_func_end atk83_nop - - thumb_func_start sub_8050650 -sub_8050650: @ 8050650 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r3, r0, 24 - movs r2, 0 - ldr r0, =gNoOfAllBanks - ldrb r1, [r0] - mov r8, r0 - cmp r2, r1 - bge _080506C4 - ldr r0, =gBattleMons - mov r12, r0 - movs r0, 0x58 - muls r0, r3 - add r0, r12 - adds r5, r0, 0 - adds r5, 0x20 - adds r4, r1, 0 - movs r3, 0 - ldr r6, =gBattleScripting - ldr r7, =gBattleCommunication -_0805067C: - mov r0, r12 - adds r0, 0x50 - adds r0, r3, r0 - ldr r0, [r0] - movs r1, 0x70 - ands r0, r1 - cmp r0, 0 - beq _080506BC - ldrb r0, [r5] - cmp r0, 0x2B - beq _080506BC - movs r3, 0 - strb r2, [r6, 0x17] - ldr r1, =gBankTarget - ldrb r0, [r1] - cmp r0, 0xFF - beq _080506DC - cmp r0, r2 - beq _080506D0 - movs r0, 0x1 - strb r0, [r7, 0x5] - b _080506C4 - .pool -_080506BC: - adds r3, 0x58 - adds r2, 0x1 - cmp r2, r4 - blt _0805067C -_080506C4: - mov r1, r8 - ldrb r1, [r1] - cmp r2, r1 - beq _080506E0 - movs r0, 0x1 - b _080506E2 -_080506D0: - ldr r0, =gBattleCommunication - strb r3, [r0, 0x5] - b _080506C4 - .pool -_080506DC: - strb r2, [r1] - b _080506C4 -_080506E0: - movs r0, 0 -_080506E2: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8050650 - - thumb_func_start atk84_jump_if_cant_sleep -atk84_jump_if_cant_sleep: @ 80506EC - push {r4-r6,lr} - ldr r5, =gBattlescriptCurrInstr - ldr r1, [r5] - ldrb r4, [r1, 0x1] - ldrb r0, [r1, 0x2] - lsls r0, 8 - orrs r4, r0 - ldrb r0, [r1, 0x3] - lsls r0, 16 - orrs r4, r0 - ldrb r0, [r1, 0x4] - lsls r0, 24 - orrs r4, r0 - ldr r6, =gBankTarget - ldrb r0, [r6] - bl sub_8050650 - lsls r0, 24 - cmp r0, 0 - beq _08050720 - str r4, [r5] - b _08050762 - .pool -_08050720: - ldr r1, =gBattleMons - ldrb r3, [r6] - movs r0, 0x58 - muls r0, r3 - adds r0, r1 - adds r0, 0x20 - ldrb r0, [r0] - adds r1, r0, 0 - cmp r1, 0xF - beq _08050738 - cmp r1, 0x48 - bne _0805075C -_08050738: - ldr r2, =gLastUsedAbility - strb r0, [r2] - ldr r1, =gBattleCommunication - movs r0, 0x2 - strb r0, [r1, 0x5] - str r4, [r5] - ldrb r1, [r2] - adds r0, r3, 0 - bl RecordAbilityBattle - b _08050762 - .pool -_0805075C: - ldr r0, [r5] - adds r0, 0x5 - str r0, [r5] -_08050762: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end atk84_jump_if_cant_sleep - - thumb_func_start atk85_stockpile -atk85_stockpile: @ 8050768 - push {r4,r5,lr} - ldr r5, =gDisableStructs - ldr r4, =gBankAttacker - ldrb r1, [r4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r0, r5 - ldrb r0, [r1, 0x9] - cmp r0, 0x3 - bne _080507A0 - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gBattleCommunication - movs r0, 0x1 - strb r0, [r1, 0x5] - b _080507CA - .pool -_080507A0: - adds r0, 0x1 - movs r3, 0 - strb r0, [r1, 0x9] - ldr r2, =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r2] - movs r0, 0x1 - strb r0, [r2, 0x1] - strb r0, [r2, 0x2] - strb r0, [r2, 0x3] - ldrb r1, [r4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r0, [r0, 0x9] - strb r0, [r2, 0x4] - movs r0, 0xFF - strb r0, [r2, 0x5] - ldr r0, =gBattleCommunication - strb r3, [r0, 0x5] -_080507CA: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk85_stockpile - - thumb_func_start atk86_stockpiletobasedamage -atk86_stockpiletobasedamage: @ 80507E4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - ldr r3, =gBattlescriptCurrInstr - ldr r1, [r3] - ldrb r2, [r1, 0x1] - ldrb r0, [r1, 0x2] - lsls r0, 8 - orrs r2, r0 - ldrb r0, [r1, 0x3] - lsls r0, 16 - orrs r2, r0 - ldrb r0, [r1, 0x4] - lsls r0, 24 - orrs r2, r0 - ldr r7, =gDisableStructs - ldr r6, =gBankAttacker - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r7 - ldrb r0, [r0, 0x9] - cmp r0, 0 - bne _08050828 - str r2, [r3] - b _080508CA - .pool -_08050828: - ldr r0, =gBattleCommunication - ldrb r0, [r0, 0x6] - cmp r0, 0x1 - beq _080508B0 - ldr r0, =gBattleMoveDamage - mov r8, r0 - ldr r4, =gSideAffecting - ldr r5, =gBankTarget - ldrb r0, [r5] - bl GetBankIdentity - movs r1, 0x1 - ands r1, r0 - lsls r1, 1 - adds r1, r4 - ldrh r3, [r1] - ldrb r0, [r6] - movs r4, 0x58 - muls r0, r4 - ldr r2, =gBattleMons - adds r0, r2 - ldrb r1, [r5] - muls r1, r4 - adds r1, r2 - ldr r2, =gCurrentMove - ldrh r2, [r2] - movs r4, 0 - str r4, [sp] - str r4, [sp, 0x4] - ldrb r4, [r6] - str r4, [sp, 0x8] - ldrb r4, [r5] - str r4, [sp, 0xC] - bl CalculateBaseDamage - ldrb r2, [r6] - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r7 - ldrb r1, [r1, 0x9] - adds r3, r0, 0 - muls r3, r1 - mov r1, r8 - str r3, [r1] - ldr r2, =gBattleScripting - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r7 - ldrb r0, [r0, 0x9] - strb r0, [r2, 0x18] - ldr r1, =gProtectStructs - ldrb r0, [r6] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 28 - cmp r0, 0 - bge _080508B0 - lsls r0, r3, 4 - subs r0, r3 - movs r1, 0xA - bl __divsi3 - mov r1, r8 - str r0, [r1] -_080508B0: - ldr r2, =gDisableStructs - ldr r0, =gBankAttacker - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strb r1, [r0, 0x9] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_080508CA: - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk86_stockpiletobasedamage - - thumb_func_start atk87_stockpiletohpheal -atk87_stockpiletohpheal: @ 8050904 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r7, =gBattlescriptCurrInstr - ldr r1, [r7] - ldrb r2, [r1, 0x1] - ldrb r0, [r1, 0x2] - lsls r0, 8 - orrs r2, r0 - ldrb r0, [r1, 0x3] - lsls r0, 16 - orrs r2, r0 - ldrb r0, [r1, 0x4] - lsls r0, 24 - orrs r2, r0 - ldr r0, =gDisableStructs - mov r8, r0 - ldr r6, =gBankAttacker - ldrb r3, [r6] - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - mov r1, r8 - adds r4, r0, r1 - ldrb r1, [r4, 0x9] - cmp r1, 0 - bne _08050954 - str r2, [r7] - ldr r0, =gBattleCommunication - strb r1, [r0, 0x5] - b _080509D0 - .pool -_08050954: - ldr r1, =gBattleMons - movs r0, 0x58 - muls r0, r3 - adds r1, r0, r1 - ldrh r0, [r1, 0x2C] - ldrh r3, [r1, 0x28] - cmp r0, r3 - bne _08050984 - movs r0, 0 - strb r0, [r4, 0x9] - str r2, [r7] - ldr r1, =gBankTarget - ldrb r0, [r6] - strb r0, [r1] - ldr r1, =gBattleCommunication - movs r0, 0x1 - strb r0, [r1, 0x5] - b _080509D0 - .pool -_08050984: - ldr r5, =gBattleMoveDamage - ldrh r0, [r1, 0x2C] - ldrb r1, [r4, 0x9] - movs r2, 0x3 - subs r2, r1 - movs r4, 0x1 - adds r1, r4, 0 - lsls r1, r2 - bl __divsi3 - str r0, [r5] - cmp r0, 0 - bne _080509A0 - str r4, [r5] -_080509A0: - ldr r0, [r5] - negs r0, r0 - str r0, [r5] - ldr r3, =gBattleScripting - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r8 - ldrb r0, [r0, 0x9] - movs r2, 0 - strb r0, [r3, 0x18] - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r8 - strb r2, [r0, 0x9] - ldr r0, [r7] - adds r0, 0x5 - str r0, [r7] - ldr r1, =gBankTarget - ldrb r0, [r6] - strb r0, [r1] -_080509D0: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk87_stockpiletohpheal - - thumb_func_start atk88_negativedamage -atk88_negativedamage: @ 80509E8 - push {lr} - ldr r2, =gBattleMoveDamage - ldr r0, =gUnknown_020241F4 - ldr r0, [r0] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - negs r0, r0 - str r0, [r2] - cmp r0, 0 - bne _08050A04 - movs r0, 0x1 - negs r0, r0 - str r0, [r2] -_08050A04: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end atk88_negativedamage - - thumb_func_start sub_8050A1C -sub_8050A1C: @ 8050A1C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r8, r3 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r2, 24 - lsrs r5, r2, 24 - movs r0, 0 - mov r9, r0 - mov r10, r0 - movs r0, 0x40 - ands r0, r5 - cmp r0, 0 - beq _08050A50 - ldr r0, =gActiveBank - ldr r1, =gBankAttacker - b _08050A54 - .pool -_08050A50: - ldr r0, =gActiveBank - ldr r1, =gBankTarget -_08050A54: - ldrb r1, [r1] - strb r1, [r0] - movs r0, 0xBF - ands r5, r0 - movs r0, 0x80 - ands r0, r5 - cmp r0, 0 - beq _08050A6E - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_08050A6E: - movs r0, 0x7F - ands r5, r0 - movs r0, 0x20 - ands r0, r5 - cmp r0, 0 - beq _08050A84 - mov r0, r10 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 -_08050A84: - movs r0, 0xDF - ands r5, r0 - ldr r1, =gBattleTextBuff1 - movs r4, 0 - movs r2, 0xFD - strb r2, [r1] - movs r0, 0x5 - strb r0, [r1, 0x1] - strb r7, [r1, 0x2] - movs r3, 0x1 - negs r3, r3 - mov r12, r3 - movs r0, 0xFF - strb r0, [r1, 0x3] - lsls r0, r6, 24 - cmp r0, 0 - blt _08050AA8 - b _08050D8C -_08050AA8: - ldr r4, =gSideTimers - ldr r1, =gActiveBank - ldrb r0, [r1] - bl GetBankIdentity - movs r1, 0x1 - ands r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x4] - cmp r0, 0 - beq _08050B48 - mov r2, r9 - cmp r2, 0 - bne _08050B48 - ldr r0, =gCurrentMove - ldrh r0, [r0] - cmp r0, 0xAE - beq _08050B78 - cmp r5, 0x1 - bne _08050B68 - ldr r4, =gSpecialStatuses - ldr r3, =gActiveBank - ldrb r0, [r3] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r0, [r1] - lsls r0, 31 - cmp r0, 0 - beq _08050B10 - ldr r0, =gBattlescriptCurrInstr - mov r4, r8 - str r4, [r0] - b _08050B68 - .pool -_08050B10: - mov r0, r8 - bl b_movescr_stack_push - ldr r1, =gBattleScripting - ldr r6, =gActiveBank - ldrb r0, [r6] - strb r0, [r1, 0x17] - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DAE03 - str r0, [r1] - ldrb r1, [r6] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] - b _08050B68 - .pool -_08050B48: - ldr r0, =gCurrentMove - ldrh r0, [r0] - cmp r0, 0xAE - beq _08050B78 - mov r0, r10 - cmp r0, 0x1 - beq _08050B78 - movs r0, 0 - bl sub_80464AC - lsls r0, 24 - cmp r0, 0 - beq _08050B78 - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082D9F1C - str r0, [r1] -_08050B68: - movs r0, 0x1 - b _08050E80 - .pool -_08050B78: - ldr r2, =gBattleMons - ldr r1, =gActiveBank - ldrb r3, [r1] - movs r4, 0x58 - adds r0, r3, 0 - muls r0, r4 - adds r0, r2 - adds r0, 0x20 - ldrb r0, [r0] - mov r10, r2 - cmp r0, 0x1D - beq _08050B94 - cmp r0, 0x49 - bne _08050C2C -_08050B94: - mov r0, r9 - cmp r0, 0 - bne _08050C2C - ldr r0, =gCurrentMove - ldrh r0, [r0] - cmp r0, 0xAE - beq _08050C2C - cmp r5, 0x1 - bne _08050B68 - ldr r4, =gSpecialStatuses - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - beq _08050BD4 - ldr r0, =gBattlescriptCurrInstr - mov r1, r8 - str r1, [r0] - b _08050B68 - .pool -_08050BD4: - mov r0, r8 - bl b_movescr_stack_push - ldr r1, =gBattleScripting - ldr r2, =gActiveBank - ldrb r0, [r2] - strb r0, [r1, 0x17] - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB5C7 - str r0, [r1] - ldr r1, =gLastUsedAbility - ldrb r0, [r2] - movs r3, 0x58 - muls r0, r3 - add r0, r10 - adds r0, 0x20 - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r2] - ldrb r1, [r1] - bl RecordAbilityBattle - ldr r6, =gActiveBank - ldrb r1, [r6] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] - b _08050B68 - .pool -_08050C2C: - ldr r1, =gActiveBank - ldrb r0, [r1] - movs r4, 0x58 - muls r0, r4 - add r0, r10 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x33 - bne _08050C8C - mov r2, r9 - cmp r2, 0 - bne _08050C8C - cmp r7, 0x6 - bne _08050C8C - cmp r5, 0x1 - bne _08050B68 - mov r0, r8 - bl b_movescr_stack_push - ldr r1, =gBattleScripting - ldr r3, =gActiveBank - ldrb r0, [r3] - strb r0, [r1, 0x17] - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB62F - str r0, [r1] - ldr r1, =gLastUsedAbility - ldrb r0, [r3] - muls r0, r4 - add r0, r10 - adds r0, 0x20 - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r3] - ldrb r1, [r1] - bl RecordAbilityBattle - b _08050B68 - .pool -_08050C8C: - ldr r4, =gActiveBank - ldrb r0, [r4] - movs r4, 0x58 - muls r0, r4 - add r0, r10 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x34 - bne _08050CF0 - mov r0, r9 - cmp r0, 0 - bne _08050CF0 - cmp r7, 0x1 - bne _08050CF0 - cmp r5, 0x1 - beq _08050CAE - b _08050B68 -_08050CAE: - mov r0, r8 - bl b_movescr_stack_push - ldr r1, =gBattleScripting - ldr r2, =gActiveBank - ldrb r0, [r2] - strb r0, [r1, 0x17] - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB62F - str r0, [r1] - ldr r1, =gLastUsedAbility - ldrb r0, [r2] - muls r0, r4 - add r0, r10 - adds r0, 0x20 - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r2] - ldrb r1, [r1] - bl RecordAbilityBattle - b _08050B68 - .pool -_08050CF0: - ldr r3, =gActiveBank - ldrb r1, [r3] - movs r0, 0x58 - muls r0, r1 - add r0, r10 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x13 - bne _08050D08 - cmp r5, 0 - bne _08050D08 - b _08050B68 -_08050D08: - lsls r0, r6, 24 - asrs r0, 28 - movs r1, 0x7 - ands r0, r1 - negs r0, r0 - lsls r0, 24 - ldr r3, =gBattleTextBuff2 - movs r4, 0 - movs r1, 0xFD - strb r1, [r3] - movs r2, 0x1 - lsrs r6, r0, 24 - asrs r0, 24 - subs r1, 0xFF - cmp r0, r1 - bne _08050D32 - strb r4, [r3, 0x1] - movs r0, 0xD3 - strb r0, [r3, 0x2] - strb r4, [r3, 0x3] - movs r2, 0x4 -_08050D32: - adds r0, r2, r3 - strb r4, [r0] - adds r2, 0x1 - adds r1, r2, r3 - movs r0, 0xD4 - strb r0, [r1] - adds r2, 0x1 - adds r0, r2, r3 - strb r4, [r0] - adds r2, 0x1 - adds r1, r2, r3 - movs r0, 0xFF - strb r0, [r1] - ldr r4, =gActiveBank - ldrb r2, [r4] - movs r0, 0x58 - muls r0, r2 - adds r0, r7, r0 - mov r1, r10 - adds r1, 0x18 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _08050DE2 - movs r1, 0 - ldr r0, =gBankTarget - ldrb r0, [r0] - ldr r3, =gBattleCommunication - mov r8, r3 - cmp r0, r2 - bne _08050D76 - movs r1, 0x1 -_08050D76: - mov r4, r8 - strb r1, [r4, 0x5] - b _08050E10 - .pool -_08050D8C: - asrs r6, r0, 28 - movs r0, 0x7 - ands r6, r0 - ldr r3, =gBattleTextBuff2 - strb r2, [r3] - movs r2, 0x1 - cmp r6, 0x2 - bne _08050DA6 - strb r4, [r3, 0x1] - movs r0, 0xD1 - strb r0, [r3, 0x2] - strb r4, [r3, 0x3] - movs r2, 0x4 -_08050DA6: - adds r0, r2, r3 - strb r4, [r0] - adds r2, 0x1 - adds r1, r2, r3 - movs r0, 0xD2 - strb r0, [r1] - adds r2, 0x1 - adds r0, r2, r3 - strb r4, [r0] - adds r2, 0x1 - adds r1, r2, r3 - ldrb r0, [r1] - mov r2, r12 - orrs r0, r2 - strb r0, [r1] - ldr r2, =gBattleMons - ldr r4, =gActiveBank - ldrb r3, [r4] - movs r0, 0x58 - muls r0, r3 - adds r0, r7, r0 - adds r1, r2, 0 - adds r1, 0x18 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - mov r10, r2 - cmp r0, 0xC - bne _08050DFC -_08050DE2: - ldr r1, =gBattleCommunication - movs r0, 0x2 - strb r0, [r1, 0x5] - mov r8, r1 - b _08050E10 - .pool -_08050DFC: - movs r1, 0 - ldr r0, =gBankTarget - ldrb r0, [r0] - ldr r2, =gBattleCommunication - mov r8, r2 - cmp r0, r3 - bne _08050E0C - movs r1, 0x1 -_08050E0C: - mov r3, r8 - strb r1, [r3, 0x5] -_08050E10: - ldr r2, =gActiveBank - ldrb r0, [r2] - movs r4, 0x58 - adds r1, r0, 0 - muls r1, r4 - adds r1, r7, r1 - mov r3, r10 - adds r3, 0x18 - adds r1, r3 - lsls r0, r6, 24 - asrs r0, 24 - ldrb r6, [r1] - adds r0, r6 - strb r0, [r1] - ldrb r0, [r2] - muls r0, r4 - adds r0, r7, r0 - adds r1, r0, r3 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0 - bge _08050E40 - movs r0, 0 - strb r0, [r1] -_08050E40: - ldr r1, =gActiveBank - ldrb r0, [r1] - muls r0, r4 - adds r0, r7, r0 - adds r1, r0, r3 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0xC - ble _08050E56 - movs r0, 0xC - strb r0, [r1] -_08050E56: - mov r2, r8 - ldrb r0, [r2, 0x5] - cmp r0, 0x2 - bne _08050E7E - movs r3, 0x1 - ands r3, r5 - cmp r3, 0 - beq _08050E70 - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] -_08050E70: - mov r4, r8 - ldrb r0, [r4, 0x5] - cmp r0, 0x2 - bne _08050E7E - cmp r3, 0 - bne _08050E7E - b _08050B68 -_08050E7E: - movs r0, 0 -_08050E80: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8050A1C - - thumb_func_start atk89_statbuffchange -atk89_statbuffchange: @ 8050EA0 - push {r4,r5,lr} - ldr r5, =gBattlescriptCurrInstr - ldr r2, [r5] - ldrb r3, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r3, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r3, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r3, r0 - ldr r0, =gBattleScripting - ldrb r4, [r0, 0x1A] - movs r0, 0xF0 - ands r0, r4 - lsls r0, 24 - asrs r0, 24 - movs r1, 0xF - ands r1, r4 - ldrb r2, [r2, 0x1] - bl sub_8050A1C - lsls r0, 24 - cmp r0, 0 - bne _08050EDC - ldr r0, [r5] - adds r0, 0x6 - str r0, [r5] -_08050EDC: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk89_statbuffchange - - thumb_func_start atk8A_normalisebuffs -atk8A_normalisebuffs: @ 8050EEC - push {r4-r7,lr} - movs r2, 0 - ldr r0, =gNoOfAllBanks - ldrb r1, [r0] - ldr r0, =gBattlescriptCurrInstr - mov r12, r0 - cmp r2, r1 - bge _08050F24 - ldr r0, =gBattleMons - movs r4, 0x6 - adds r5, r1, 0 - movs r7, 0x58 - adds r6, r0, 0 - adds r6, 0x18 -_08050F08: - adds r3, r2, 0x1 - movs r1, 0x7 - adds r0, r2, 0 - muls r0, r7 - adds r0, r6 - adds r0, 0x7 -_08050F14: - strb r4, [r0] - subs r0, 0x1 - subs r1, 0x1 - cmp r1, 0 - bge _08050F14 - adds r2, r3, 0 - cmp r2, r5 - blt _08050F08 -_08050F24: - mov r1, r12 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk8A_normalisebuffs - - thumb_func_start atk8B_setbide -atk8B_setbide: @ 8050F40 - push {r4,r5,lr} - ldr r4, =gBattleMons - ldr r3, =gBankAttacker - ldrb r0, [r3] - movs r5, 0x58 - adds r2, r0, 0 - muls r2, r5 - adds r4, 0x50 - adds r2, r4 - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 5 - orrs r0, r1 - str r0, [r2] - ldr r1, =gUnknown_02024268 - ldrb r0, [r3] - lsls r0, 1 - adds r0, r1 - ldr r1, =gCurrentMove - ldrh r1, [r1] - movs r2, 0 - strh r1, [r0] - ldr r1, =gUnknown_020241F8 - ldrb r0, [r3] - lsls r0, 2 - adds r0, r1 - str r2, [r0] - ldrb r0, [r3] - adds r1, r0, 0 - muls r1, r5 - adds r1, r4 - ldr r0, [r1] - movs r2, 0x80 - lsls r2, 2 - orrs r0, r2 - str r0, [r1] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk8B_setbide - - thumb_func_start atk8C_confuseifrepeatingattackends -atk8C_confuseifrepeatingattackends: @ 8050FB0 - push {lr} - ldr r1, =gBattleMons - ldr r0, =gBankAttacker - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0xC0 - lsls r1, 4 - ands r0, r1 - cmp r0, 0 - bne _08050FD2 - ldr r1, =gBattleCommunication - movs r0, 0x75 - strb r0, [r1, 0x3] -_08050FD2: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end atk8C_confuseifrepeatingattackends - - thumb_func_start atk8D_setmultihit_counter -atk8D_setmultihit_counter: @ 8050FF0 - push {r4,r5,lr} - ldr r0, =gBattlescriptCurrInstr - ldr r0, [r0] - ldrb r1, [r0, 0x1] - cmp r1, 0 - beq _0805100C - ldr r0, =gUnknown_02024212 - strb r1, [r0] - b _08051026 - .pool -_0805100C: - ldr r4, =gUnknown_02024212 - bl Random - movs r5, 0x3 - ands r0, r5 - strb r0, [r4] - cmp r0, 0x1 - bls _08051022 - bl Random - ands r0, r5 -_08051022: - adds r0, 0x2 - strb r0, [r4] -_08051026: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk8D_setmultihit_counter - - thumb_func_start atk8E_prepare_multihit -atk8E_prepare_multihit: @ 805103C - ldr r1, =gBattleScripting - movs r2, 0 - movs r0, 0xFD - strb r0, [r1, 0x8] - movs r0, 0x1 - strb r0, [r1, 0x9] - strb r0, [r1, 0xA] - strb r0, [r1, 0xB] - strb r2, [r1, 0xC] - movs r0, 0xFF - strb r0, [r1, 0xD] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .pool - thumb_func_end atk8E_prepare_multihit - - thumb_func_start sub_8051064 -sub_8051064: @ 8051064 - push {r4-r7,lr} - ldr r6, =gBattleMons - ldr r7, =gBankAttacker - ldrb r0, [r7] - movs r5, 0x58 - adds r1, r0, 0 - muls r1, r5 - adds r1, r6 - adds r1, 0x2A - ldr r4, =gBankTarget - ldrb r3, [r4] - adds r0, r3, 0 - muls r0, r5 - adds r0, r6 - adds r0, 0x2A - ldrb r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - bcc _080510AC - ldr r0, =gBattleStruct - ldr r1, [r0] - adds r1, r3, r1 - adds r1, 0x58 - ldr r2, =gBattlePartyID - lsls r0, r3, 1 - b _08051108 - .pool -_080510AC: - bl Random - movs r3, 0xFF - ands r3, r0 - ldrb r0, [r7] - muls r0, r5 - adds r0, r6 - adds r0, 0x2A - ldrb r2, [r0] - ldrb r4, [r4] - adds r0, r4, 0 - muls r0, r5 - adds r0, r6 - adds r0, 0x2A - ldrb r1, [r0] - adds r2, r1 - adds r0, r3, 0 - muls r0, r2 - asrs r0, 8 - adds r0, 0x1 - lsrs r1, 2 - cmp r0, r1 - bhi _080510FC - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - movs r0, 0 - b _08051116 - .pool -_080510FC: - ldr r0, =gBattleStruct - ldr r1, [r0] - adds r1, r4, r1 - adds r1, 0x58 - ldr r2, =gBattlePartyID - lsls r0, r4, 1 -_08051108: - adds r0, r2 - ldrh r0, [r0] - strb r0, [r1] - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DADD8 - str r0, [r1] - movs r0, 0x1 -_08051116: - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8051064 - - thumb_func_start atk8F_forcerandomswitch -atk8F_forcerandomswitch: @ 805112C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - movs r0, 0 - str r0, [sp, 0x4] - ldr r5, =gBattleTypeFlags - ldr r0, [r5] - movs r1, 0x8 - ands r0, r1 - cmp r0, 0 - bne _0805114A - b _08051410 -_0805114A: - ldr r4, =gBankTarget - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - ldr r1, =gEnemyParty - str r1, [sp] - cmp r0, 0 - bne _08051160 - ldr r0, =gPlayerParty - str r0, [sp] -_08051160: - ldr r2, [r5] - movs r1, 0x81 - lsls r1, 1 - adds r0, r2, 0 - ands r0, r1 - cmp r0, r1 - beq _08051182 - ldr r1, =0x02000100 - adds r0, r2, 0 - ands r0, r1 - cmp r0, r1 - beq _08051182 - movs r0, 0x80 - lsls r0, 15 - ands r0, r2 - cmp r0, 0 - beq _080511C8 -_08051182: - ldr r2, =gBankTarget - ldrb r1, [r2] - movs r0, 0x2 - ands r0, r1 - adds r1, r2, 0 - cmp r0, 0 - beq _080511AC - movs r0, 0x3 - mov r9, r0 - movs r0, 0x6 - b _080511B2 - .pool -_080511AC: - movs r0, 0 - mov r9, r0 - movs r0, 0x3 -_080511B2: - mov r8, r0 - movs r0, 0x3 - mov r10, r0 - movs r0, 0x1 - str r0, [sp, 0x8] - ldr r2, =gBattlePartyID - ldrb r1, [r1] - b _0805128E - .pool -_080511C8: - movs r0, 0x42 - ands r0, r2 - cmp r0, 0x42 - beq _080511DA - ldr r1, =0x02000040 - adds r0, r2, 0 - ands r0, r1 - cmp r0, r1 - bne _0805121C -_080511DA: - ldrb r0, [r4] - bl sub_806D864 - lsls r0, 24 - lsrs r0, 24 - bl sub_806D82C - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bne _080511FC - movs r1, 0x3 - mov r9, r1 - movs r0, 0x6 - b _08051202 - .pool -_080511FC: - movs r1, 0 - mov r9, r1 - movs r0, 0x3 -_08051202: - mov r8, r0 - movs r1, 0x3 - mov r10, r1 - movs r0, 0x1 - str r0, [sp, 0x8] - ldr r2, =gBattlePartyID - ldr r0, =gBankTarget - ldrb r1, [r0] - b _0805128E - .pool -_0805121C: - movs r0, 0x80 - lsls r0, 8 - ands r0, r2 - cmp r0, 0 - beq _08051274 - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _08051240 - movs r1, 0 - mov r9, r1 - movs r0, 0x6 - mov r8, r0 - mov r10, r0 - movs r1, 0x2 - b _08051260 -_08051240: - ldrb r1, [r4] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08051252 - movs r0, 0x3 - mov r9, r0 - movs r1, 0x6 - b _08051258 -_08051252: - movs r0, 0 - mov r9, r0 - movs r1, 0x3 -_08051258: - mov r8, r1 - movs r0, 0x3 - mov r10, r0 - movs r1, 0x1 -_08051260: - str r1, [sp, 0x8] - ldr r2, =gBattlePartyID - ldr r0, =gBankTarget - ldrb r1, [r0] - b _0805128E - .pool -_08051274: - movs r0, 0x1 - ands r2, r0 - cmp r2, 0 - beq _080512A4 - movs r0, 0 - mov r9, r0 - movs r1, 0x6 - mov r8, r1 - mov r10, r1 - movs r0, 0x2 - str r0, [sp, 0x8] - ldr r2, =gBattlePartyID - ldrb r1, [r4] -_0805128E: - lsls r0, r1, 1 - adds r0, r2 - ldrh r7, [r0] - movs r0, 0x2 - eors r1, r0 - lsls r1, 1 - adds r1, r2 - ldrh r5, [r1] - b _080512BE - .pool -_080512A4: - movs r1, 0 - mov r9, r1 - movs r0, 0x6 - mov r8, r0 - mov r10, r0 - movs r1, 0x1 - str r1, [sp, 0x8] - ldr r1, =gBattlePartyID - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r5, [r0] - adds r7, r5, 0 -_080512BE: - mov r6, r9 - cmp r6, r8 - bge _080512FC -_080512C4: - movs r0, 0x64 - muls r0, r6 - ldr r1, [sp] - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _080512F6 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _080512F6 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _080512F6 - ldr r0, [sp, 0x4] - adds r0, 0x1 - str r0, [sp, 0x4] -_080512F6: - adds r6, 0x1 - cmp r6, r8 - blt _080512C4 -_080512FC: - ldr r1, [sp, 0x4] - ldr r0, [sp, 0x8] - cmp r1, r0 - bgt _08051328 - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08051414 - .pool -_08051328: - bl sub_8051064 - lsls r0, 24 - cmp r0, 0 - beq _08051378 -_08051332: - bl Random - lsls r0, 16 - lsrs r0, 16 - mov r1, r10 - bl __modsi3 - adds r6, r0, 0 - add r6, r9 - cmp r6, r7 - beq _08051332 - cmp r6, r5 - beq _08051332 - movs r0, 0x64 - muls r0, r6 - ldr r1, [sp] - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _08051332 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0x1 - beq _08051332 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _08051332 -_08051378: - ldr r4, =gBankTarget - ldrb r0, [r4] - ldr r1, =gBattleStruct - ldr r1, [r1] - adds r0, r1 - adds r0, 0x5C - strb r6, [r0] - bl sub_81B1250 - lsls r0, 24 - cmp r0, 0 - bne _08051396 - ldrb r0, [r4] - bl sub_803BDA0 -_08051396: - ldr r0, =gBattleTypeFlags - ldr r2, [r0] - movs r1, 0x81 - lsls r1, 1 - adds r0, r2, 0 - ands r0, r1 - cmp r0, r1 - beq _080513C0 - movs r0, 0x42 - ands r0, r2 - cmp r0, 0x42 - beq _080513C0 - ldr r1, =0x02000100 - adds r0, r2, 0 - ands r0, r1 - cmp r0, r1 - beq _080513C0 - ldr r0, =0x02000040 - ands r2, r0 - cmp r2, r0 - bne _080513DE -_080513C0: - ldr r5, =gBankTarget - ldrb r0, [r5] - lsls r4, r6, 24 - lsrs r4, 24 - adds r1, r4, 0 - movs r2, 0 - bl sub_81B8E80 - ldrb r1, [r5] - movs r0, 0x2 - eors r0, r1 - adds r1, r4, 0 - movs r2, 0x1 - bl sub_81B8E80 -_080513DE: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 15 - ands r0, r1 - cmp r0, 0 - beq _08051414 - ldr r0, =gBankTarget - ldrb r0, [r0] - lsls r1, r6, 24 - lsrs r1, 24 - bl sub_80571DC - b _08051414 - .pool -_08051410: - bl sub_8051064 -_08051414: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end atk8F_forcerandomswitch - - thumb_func_start atk90_conversion_type_change -atk90_conversion_type_change: @ 8051424 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r6, 0 - ldr r2, =gBattleMons - ldr r3, =gBankAttacker - ldrb r1, [r3] - movs r0, 0x58 - muls r0, r1 - adds r1, r2, 0 - adds r1, 0xC - adds r0, r1 - ldrh r0, [r0] - mov r8, r2 - cmp r0, 0 - beq _08051466 - movs r5, 0x58 - adds r2, r1, 0 -_0805144C: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x3 - bhi _08051466 - lsls r1, r6, 1 - ldrb r0, [r3] - muls r0, r5 - adds r1, r0 - adds r1, r2 - ldrh r0, [r1] - cmp r0, 0 - bne _0805144C -_08051466: - movs r3, 0 - cmp r3, r6 - bcs _080514E8 - ldr r0, =gBattleMoves - mov r10, r0 - ldr r5, =gBattleMons - mov r12, r5 - ldr r7, =gBankAttacker - ldrb r0, [r7] - movs r4, 0x58 - adds r5, r0, 0 - muls r5, r4 - movs r0, 0xC - add r0, r12 - mov r9, r0 -_08051484: - lsls r0, r3, 1 - adds r0, r5 - add r0, r9 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - add r0, r10 - ldrb r2, [r0, 0x2] - cmp r2, 0x9 - bne _080514C6 - mov r0, r8 - adds r1, r5, r0 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0x7 - beq _080514B2 - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0x7 - bne _080514C4 -_080514B2: - movs r2, 0x7 - b _080514C6 - .pool -_080514C4: - movs r2, 0 -_080514C6: - ldrb r0, [r7] - muls r0, r4 - add r0, r12 - adds r1, r0, 0 - adds r1, 0x21 - ldrb r1, [r1] - cmp r2, r1 - beq _080514DE - adds r0, 0x22 - ldrb r0, [r0] - cmp r2, r0 - bne _080514E8 -_080514DE: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, r6 - bcc _08051484 -_080514E8: - cmp r3, r6 - bne _0805150C - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _080515B0 - .pool -_0805150C: - movs r7, 0x3 - ldr r5, =gBattleMoves - mov r9, r5 -_08051512: - bl Random - adds r3, r0, 0 - ands r3, r7 - cmp r3, r6 - bcs _08051512 - ldr r4, =gBattleMons - lsls r1, r3, 1 - ldr r3, =gBankAttacker - ldrb r2, [r3] - movs r0, 0x58 - adds r5, r2, 0 - muls r5, r0 - adds r1, r5 - adds r0, r4, 0 - adds r0, 0xC - adds r1, r0 - ldrh r1, [r1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - add r0, r9 - ldrb r2, [r0, 0x2] - mov r8, r4 - adds r4, r3, 0 - cmp r2, 0x9 - bne _08051572 - mov r0, r8 - adds r2, r5, r0 - adds r0, r2, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0x7 - beq _08051560 - adds r0, r2, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0x7 - bne _08051570 -_08051560: - movs r2, 0x7 - b _08051572 - .pool -_08051570: - movs r2, 0 -_08051572: - ldrb r0, [r4] - movs r3, 0x58 - muls r0, r3 - add r0, r8 - adds r1, r0, 0 - adds r1, 0x21 - ldrb r5, [r1] - cmp r2, r5 - beq _08051512 - adds r0, 0x22 - ldrb r0, [r0] - cmp r2, r0 - beq _08051512 - strb r2, [r1] - ldrb r0, [r4] - muls r0, r3 - add r0, r8 - adds r0, 0x22 - strb r2, [r0] - ldr r1, =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x3 - strb r0, [r1, 0x1] - strb r2, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_080515B0: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk90_conversion_type_change - - thumb_func_start atk91_givepaydaymoney -atk91_givepaydaymoney: @ 80515C8 - push {r4,lr} - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - ldr r1, =0x02000002 - ands r0, r1 - cmp r0, 0 - bne _08051650 - ldr r1, =gUnknown_0202432E - ldrh r0, [r1] - cmp r0, 0 - beq _08051650 - adds r1, r0, 0 - ldr r0, =gBattleStruct - ldr r0, [r0] - adds r0, 0x4A - ldrb r0, [r0] - adds r4, r1, 0 - muls r4, r0 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0x92 - lsls r1, 3 - adds r0, r1 - adds r1, r4, 0 - bl AddMoney - ldr r1, =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x1 - strb r0, [r1, 0x1] - movs r0, 0x2 - strb r0, [r1, 0x2] - movs r0, 0x5 - strb r0, [r1, 0x3] - strb r4, [r1, 0x4] - movs r0, 0xFF - lsls r0, 8 - ands r4, r0 - lsrs r4, 8 - strb r4, [r1, 0x5] - movs r0, 0xFF - strb r0, [r1, 0x6] - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, =gUnknown_082DB307 - str r0, [r4] - b _08051658 - .pool -_08051650: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] -_08051658: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atk91_givepaydaymoney - - thumb_func_start atk92_setlightscreen -atk92_setlightscreen: @ 8051664 - push {r4-r6,lr} - ldr r5, =gBankAttacker - ldrb r0, [r5] - bl GetBankIdentity - ldr r4, =gSideAffecting - movs r6, 0x1 - adds r1, r6, 0 - ands r1, r0 - lsls r1, 1 - adds r1, r4 - ldrh r1, [r1] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080516A4 - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gBattleCommunication - movs r0, 0 - b _08051718 - .pool -_080516A4: - ldrb r0, [r5] - bl GetBankIdentity - adds r1, r6, 0 - ands r1, r0 - lsls r1, 1 - adds r1, r4 - ldrh r0, [r1] - movs r2, 0x2 - orrs r0, r2 - strh r0, [r1] - ldrb r0, [r5] - bl GetBankIdentity - ldr r4, =gSideTimers - adds r1, r6, 0 - ands r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x5 - strb r1, [r0, 0x2] - ldrb r0, [r5] - bl GetBankIdentity - adds r1, r6, 0 - ands r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r5] - strb r1, [r0, 0x3] - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - ands r0, r6 - cmp r0, 0 - beq _08051714 - movs r0, 0x1 - bl CountAliveMonsInBattle - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _08051714 - ldr r1, =gBattleCommunication - movs r0, 0x4 - b _08051718 - .pool -_08051714: - ldr r1, =gBattleCommunication - movs r0, 0x3 -_08051718: - strb r0, [r1, 0x5] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end atk92_setlightscreen - - thumb_func_start atk93_ko_move -atk93_ko_move: @ 8051730 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r7, =gBattleMons - ldr r6, =gBankTarget - ldrb r2, [r6] - movs r5, 0x58 - adds r0, r2, 0 - muls r0, r5 - adds r1, r0, r7 - ldrh r0, [r1, 0x2E] - cmp r0, 0xAF - bne _08051768 - ldr r1, =gEnigmaBerries - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r4, [r0, 0x7] - ldrb r6, [r0, 0x1A] - b _08051782 - .pool -_08051768: - ldrh r0, [r1, 0x2E] - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r4, r0, 24 - ldrb r0, [r6] - muls r0, r5 - adds r0, r7 - ldrh r0, [r0, 0x2E] - bl ItemId_GetHoldEffectParam - lsls r0, 24 - lsrs r6, r0, 24 -_08051782: - ldr r1, =gStringBank - ldr r5, =gBankTarget - ldrb r0, [r5] - strb r0, [r1] - cmp r4, 0x27 - bne _080517C0 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, r6 - bcs _080517C0 - ldrb r0, [r5] - movs r1, 0x27 - bl RecordItemEffectBattle - ldr r2, =gSpecialStatuses - ldrb r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] -_080517C0: - ldr r1, =gBattleMons - ldr r2, =gBankTarget - ldrb r3, [r2] - movs r6, 0x58 - adds r0, r3, 0 - muls r0, r6 - adds r5, r0, r1 - adds r0, r5, 0 - adds r0, 0x20 - ldrb r4, [r0] - mov r8, r1 - mov r9, r2 - cmp r4, 0x5 - bne _0805181C - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r0, =gLastUsedAbility - strb r4, [r0] - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB552 - str r0, [r1] - mov r1, r9 - ldrb r0, [r1] - movs r1, 0x5 - bl RecordAbilityBattle - b _08051A70 - .pool -_0805181C: - ldr r1, =gStatuses3 - lsls r0, r3, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x18 - ands r0, r1 - cmp r0, 0 - bne _080518A0 - ldr r1, =gBattleMoves - ldr r0, =gCurrentMove - ldrh r0, [r0] - lsls r2, r0, 1 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - ldr r7, =gBankAttacker - ldrb r0, [r7] - muls r0, r6 - add r0, r8 - adds r0, 0x2A - ldrb r0, [r0] - adds r1, r5, 0 - adds r1, 0x2A - ldrb r1, [r1] - subs r0, r1 - ldrb r2, [r2, 0x3] - adds r0, r2 - lsls r0, 16 - lsrs r4, r0, 16 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - adds r0, 0x1 - cmp r0, r4 - blt _08051870 - b _08051A08 -_08051870: - ldrb r0, [r7] - adds r1, r0, 0 - muls r1, r6 - add r1, r8 - adds r1, 0x2A - mov r2, r9 - ldrb r0, [r2] - muls r0, r6 - add r0, r8 - adds r0, 0x2A - ldrb r1, [r1] - movs r4, 0x1 - ldrb r0, [r0] - cmp r1, r0 - bcs _08051936 - b _08051A08 - .pool -_080518A0: - ldr r1, =gDisableStructs - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - adds r0, r1 - ldr r1, =gBankAttacker - ldrb r0, [r0, 0x15] - adds r7, r1, 0 - ldrb r3, [r7] - cmp r0, r3 - bne _080518CA - ldrb r0, [r7] - muls r0, r6 - add r0, r8 - adds r0, 0x2A - adds r1, r5, 0 - adds r1, 0x2A - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bcs _08051942 -_080518CA: - ldr r1, =gBattleMoves - ldr r0, =gCurrentMove - ldrh r0, [r0] - lsls r2, r0, 1 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - ldr r6, =gBattleMons - ldrb r0, [r7] - movs r5, 0x58 - muls r0, r5 - adds r0, r6 - adds r0, 0x2A - ldrb r1, [r0] - ldr r0, =gBankTarget - mov r8, r0 - ldrb r0, [r0] - muls r0, r5 - adds r0, r6 - adds r0, 0x2A - ldrb r0, [r0] - subs r1, r0 - ldrb r2, [r2, 0x3] - adds r1, r2 - lsls r1, 16 - lsrs r4, r1, 16 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - adds r0, 0x1 - cmp r0, r4 - bge _08051934 - ldrb r0, [r7] - adds r1, r0, 0 - muls r1, r5 - adds r1, r6 - adds r1, 0x2A - mov r2, r8 - ldrb r0, [r2] - muls r0, r5 - adds r0, r6 - adds r0, 0x2A - ldrb r1, [r1] - movs r4, 0x1 - ldrb r0, [r0] - cmp r1, r0 - bcs _08051936 -_08051934: - movs r4, 0 -_08051936: - ldr r3, =gBattleMons - mov r8, r3 - ldr r0, =gBankTarget - mov r9, r0 - cmp r4, 0 - beq _08051A08 -_08051942: - ldr r0, =gProtectStructs - mov r1, r9 - ldrb r2, [r1] - lsls r1, r2, 4 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 30 - cmp r0, 0 - bge _08051990 - ldr r1, =gBattleMoveDamage - movs r0, 0x58 - muls r0, r2 - add r0, r8 - ldrh r0, [r0, 0x28] - subs r0, 0x1 - str r0, [r1] - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x40 - b _080519EE - .pool -_08051990: - ldr r0, =gSpecialStatuses - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1] - lsrs r0, 7 - cmp r0, 0 - beq _080519DC - ldr r1, =gBattleMoveDamage - movs r3, 0x58 - adds r0, r2, 0 - muls r0, r3 - add r0, r8 - ldrh r0, [r0, 0x28] - subs r0, 0x1 - str r0, [r1] - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gLastUsedItem - mov r2, r9 - ldrb r0, [r2] - muls r0, r3 - add r0, r8 - ldrh r0, [r0, 0x2E] - strh r0, [r1] - b _080519F2 - .pool -_080519DC: - ldr r1, =gBattleMoveDamage - movs r0, 0x58 - muls r0, r2 - add r0, r8 - ldrh r0, [r0, 0x28] - str r0, [r1] - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x10 -_080519EE: - orrs r0, r1 - strb r0, [r2] -_080519F2: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _08051A70 - .pool -_08051A08: - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r3, =gBattleMons - ldr r0, =gBankAttacker - ldrb r0, [r0] - movs r2, 0x58 - adds r1, r0, 0 - muls r1, r2 - adds r1, r3 - adds r1, 0x2A - ldr r0, =gBankTarget - ldrb r0, [r0] - muls r0, r2 - adds r0, r3 - adds r0, 0x2A - ldrb r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - bcc _08051A50 - ldr r1, =gBattleCommunication - movs r0, 0 - b _08051A54 - .pool -_08051A50: - ldr r1, =gBattleCommunication - movs r0, 0x1 -_08051A54: - strb r0, [r1, 0x5] - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_08051A70: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk93_ko_move - - thumb_func_start atk94_gethalfcurrentenemyhp -atk94_gethalfcurrentenemyhp: @ 8051A84 - push {lr} - ldr r3, =gBattleMoveDamage - ldr r2, =gBattleMons - ldr r0, =gBankTarget - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r0, [r0, 0x28] - lsrs r0, 1 - str r0, [r3] - cmp r0, 0 - bne _08051AA2 - movs r0, 0x1 - str r0, [r3] -_08051AA2: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end atk94_gethalfcurrentenemyhp - - thumb_func_start atk95_setsandstorm -atk95_setsandstorm: @ 8051AC0 - push {lr} - ldr r2, =gBattleWeather - ldrh r1, [r2] - movs r0, 0x18 - ands r0, r1 - cmp r0, 0 - beq _08051AEC - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gBattleCommunication - movs r0, 0x2 - strb r0, [r1, 0x5] - b _08051AFE - .pool -_08051AEC: - movs r0, 0x8 - strh r0, [r2] - ldr r1, =gBattleCommunication - movs r0, 0x3 - strb r0, [r1, 0x5] - ldr r0, =gUnknown_020243D0 - adds r0, 0x28 - movs r1, 0x5 - strb r1, [r0] -_08051AFE: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end atk95_setsandstorm - - thumb_func_start atk96_weatherdamage -atk96_weatherdamage: @ 8051B18 - push {r4,r5,lr} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0xD - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _08051B36 - b _08051C48 -_08051B36: - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0x4D - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - cmp r0, 0 - beq _08051B4C - b _08051C48 -_08051B4C: - ldr r2, =gBattleWeather - ldrh r1, [r2] - movs r0, 0x18 - ands r0, r1 - adds r4, r2, 0 - ldr r5, =gBankAttacker - cmp r0, 0 - beq _08051BDA - ldr r0, =gBattleMons - ldrb r2, [r5] - movs r1, 0x58 - muls r1, r2 - adds r3, r1, r0 - adds r0, r3, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0x5 - beq _08051BD4 - cmp r0, 0x8 - beq _08051BD4 - cmp r0, 0x4 - beq _08051BD4 - adds r0, r3, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0x5 - beq _08051BD4 - cmp r0, 0x8 - beq _08051BD4 - cmp r0, 0x4 - beq _08051BD4 - adds r0, r3, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x8 - beq _08051BD4 - ldr r0, =gStatuses3 - lsls r1, r2, 2 - adds r1, r0 - ldr r1, [r1] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08051BD4 - movs r0, 0x80 - lsls r0, 11 - ands r1, r0 - cmp r1, 0 - bne _08051BD4 - ldr r1, =gBattleMoveDamage - ldrh r0, [r3, 0x2C] - lsrs r0, 4 - str r0, [r1] - cmp r0, 0 - bne _08051BDA - movs r0, 0x1 - b _08051BD8 - .pool -_08051BD4: - ldr r1, =gBattleMoveDamage - movs r0, 0 -_08051BD8: - str r0, [r1] -_08051BDA: - ldrh r1, [r4] - movs r4, 0x80 - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - beq _08051C50 - ldr r1, =gBattleMons - ldrb r3, [r5] - movs r0, 0x58 - muls r0, r3 - adds r2, r0, r1 - adds r0, r2, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0xF - beq _08051C3C - adds r0, r2, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0xF - beq _08051C3C - ldr r0, =gStatuses3 - lsls r1, r3, 2 - adds r1, r0 - ldr r1, [r1] - adds r0, r1, 0 - ands r0, r4 - cmp r0, 0 - bne _08051C3C - movs r0, 0x80 - lsls r0, 11 - ands r1, r0 - cmp r1, 0 - bne _08051C3C - ldr r1, =gBattleMoveDamage - ldrh r0, [r2, 0x2C] - lsrs r0, 4 - str r0, [r1] - cmp r0, 0 - bne _08051C50 - movs r0, 0x1 - str r0, [r1] - b _08051C50 - .pool -_08051C3C: - ldr r1, =gBattleMoveDamage - movs r0, 0 - str r0, [r1] - b _08051C50 - .pool -_08051C48: - ldr r1, =gBattleMoveDamage - movs r0, 0 - str r0, [r1] - ldr r5, =gBankAttacker -_08051C50: - ldr r0, =gAbsentBankFlags - ldrb r1, [r0] - ldr r2, =gBitTable - ldrb r0, [r5] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08051C6A - ldr r1, =gBattleMoveDamage - movs r0, 0 - str r0, [r1] -_08051C6A: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk96_weatherdamage - - thumb_func_start atk97_try_infatuation -atk97_try_infatuation: @ 8051C90 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r4, =gBankAttacker - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _08051CC8 - ldr r1, =gBattlePartyID - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - b _08051CD8 - .pool -_08051CC8: - ldr r1, =gBattlePartyID - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gEnemyParty -_08051CD8: - adds r5, r1, r0 - ldr r4, =gBankTarget - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _08051D0C - ldr r1, =gBattlePartyID - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - b _08051D1C - .pool -_08051D0C: - ldr r1, =gBattlePartyID - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gEnemyParty -_08051D1C: - adds r4, r1, r0 - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - adds r0, r5, 0 - movs r1, 0 - bl GetMonData - mov r9, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - adds r7, r0, 0 - ldr r5, =gBankTarget - ldrb r0, [r5] - movs r6, 0x58 - muls r0, r6 - ldr r1, =gBattleMons - adds r0, r1 - adds r0, 0x20 - ldrb r2, [r0] - cmp r2, 0xC - bne _08051D94 - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB5F5 - str r0, [r1] - ldr r0, =gLastUsedAbility - strb r2, [r0] - ldrb r0, [r5] - movs r1, 0xC - bl RecordAbilityBattle - b _08051E2C - .pool -_08051D94: - mov r0, r10 - mov r1, r9 - bl GetGenderFromSpeciesAndPersonality - adds r4, r0, 0 - mov r0, r8 - adds r1, r7, 0 - bl GetGenderFromSpeciesAndPersonality - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - beq _08051DE4 - ldrb r0, [r5] - muls r0, r6 - ldr r4, =gBattleMons - adds r4, 0x50 - adds r0, r4 - ldr r0, [r0] - movs r1, 0xF0 - lsls r1, 12 - ands r0, r1 - cmp r0, 0 - bne _08051DE4 - mov r0, r10 - mov r1, r9 - bl GetGenderFromSpeciesAndPersonality - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _08051DE4 - mov r0, r8 - adds r1, r7, 0 - bl GetGenderFromSpeciesAndPersonality - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _08051E08 -_08051DE4: - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08051E2C - .pool -_08051E08: - ldrb r0, [r5] - adds r2, r0, 0 - muls r2, r6 - adds r2, r4 - ldr r1, =gBitTable - ldr r0, =gBankAttacker - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - lsls r1, 16 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_08051E2C: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk97_try_infatuation - - thumb_func_start atk98_status_icon_update -atk98_status_icon_update: @ 8051E48 - push {r4-r7,lr} - ldr r0, =gBattleExecBuffer - ldr r0, [r0] - cmp r0, 0 - bne _08051F34 - ldr r5, =gBattlescriptCurrInstr - ldr r1, [r5] - ldrb r0, [r1, 0x1] - cmp r0, 0x4 - beq _08051EA0 - bl get_battle_side_of_something - ldr r4, =gActiveBank - strb r0, [r4] - ldr r3, =gBattleMons - ldrb r1, [r4] - movs r0, 0x58 - adds r2, r1, 0 - muls r2, r0 - adds r0, r3, 0 - adds r0, 0x4C - adds r0, r2, r0 - ldr r1, [r0] - adds r3, 0x50 - adds r2, r3 - ldr r2, [r2] - movs r0, 0 - bl dp01_build_cmdbuf_x1A_aaaa_bbbb - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r5] - adds r0, 0x2 - str r0, [r5] - b _08051F34 - .pool -_08051EA0: - ldr r4, =gActiveBank - ldr r5, =gBankAttacker - ldrb r0, [r5] - strb r0, [r4] - ldr r6, =gAbsentBankFlags - ldrb r1, [r6] - ldr r7, =gBitTable - ldrb r2, [r4] - lsls r0, r2, 2 - adds r0, r7 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _08051EDC - ldr r3, =gBattleMons - movs r0, 0x58 - muls r2, r0 - adds r0, r3, 0 - adds r0, 0x4C - adds r0, r2, r0 - ldr r1, [r0] - adds r3, 0x50 - adds r2, r3 - ldr r2, [r2] - movs r0, 0 - bl dp01_build_cmdbuf_x1A_aaaa_bbbb - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_08051EDC: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08051F2C - ldrb r0, [r5] - bl GetBankIdentity - movs r1, 0x2 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl GetBankByPlayerAI - strb r0, [r4] - ldrb r1, [r6] - ldrb r2, [r4] - lsls r0, r2, 2 - adds r0, r7 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _08051F2C - ldr r3, =gBattleMons - movs r0, 0x58 - muls r2, r0 - adds r0, r3, 0 - adds r0, 0x4C - adds r0, r2, r0 - ldr r1, [r0] - adds r3, 0x50 - adds r2, r3 - ldr r2, [r2] - movs r0, 0 - bl dp01_build_cmdbuf_x1A_aaaa_bbbb - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_08051F2C: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] -_08051F34: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk98_status_icon_update - - thumb_func_start atk99_setmist -atk99_setmist: @ 8051F58 - push {r4-r6,lr} - ldr r6, =gSideTimers - ldr r4, =gBankAttacker - ldrb r0, [r4] - bl GetBankIdentity - movs r5, 0x1 - adds r1, r5, 0 - ands r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r0, [r0, 0x4] - cmp r0, 0 - beq _08051F98 - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x20 - orrs r0, r1 - strb r0, [r2] - ldr r0, =gBattleCommunication - strb r5, [r0, 0x5] - b _08051FE6 - .pool -_08051F98: - ldrb r0, [r4] - bl GetBankIdentity - adds r1, r5, 0 - ands r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x5 - strb r1, [r0, 0x4] - ldrb r0, [r4] - bl GetBankIdentity - adds r1, r5, 0 - ands r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r1, [r4] - strb r1, [r0, 0x5] - ldrb r0, [r4] - bl GetBankIdentity - ldr r2, =gSideAffecting - adds r1, r5, 0 - ands r1, r0 - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r3, 0x80 - lsls r3, 1 - adds r0, r3, 0 - movs r3, 0 - orrs r0, r2 - strh r0, [r1] - ldr r0, =gBattleCommunication - strb r3, [r0, 0x5] -_08051FE6: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end atk99_setmist - - thumb_func_start atk9A_set_focusenergy -atk9A_set_focusenergy: @ 8052000 - push {lr} - ldr r1, =gBattleMons - ldr r0, =gBankAttacker - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r1, [r0] - movs r3, 0x80 - lsls r3, 13 - adds r2, r1, 0 - ands r2, r3 - cmp r2, 0 - beq _08052040 - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x20 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gBattleCommunication - movs r0, 0x1 - strb r0, [r1, 0x5] - b _08052048 - .pool -_08052040: - orrs r1, r3 - str r1, [r0] - ldr r0, =gBattleCommunication - strb r2, [r0, 0x5] -_08052048: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end atk9A_set_focusenergy - - thumb_func_start atk9B_transformdataexecution -atk9B_transformdataexecution: @ 805205C - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r1, =gUnknown_020241EC - ldr r2, =0x0000ffff - adds r0, r2, 0 - strh r0, [r1] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - ldr r7, =gBattleMons - ldr r0, =gBankTarget - mov r12, r0 - ldrb r1, [r0] - movs r6, 0x58 - adds r0, r1, 0 - muls r0, r6 - adds r5, r7, 0 - adds r5, 0x50 - adds r0, r5 - ldr r0, [r0] - movs r4, 0x80 - lsls r4, 14 - ands r0, r4 - cmp r0, 0 - bne _080520A2 - ldr r0, =gStatuses3 - lsls r1, 2 - adds r1, r0 - ldr r2, [r1] - ldr r0, =0x000400c0 - ands r2, r0 - cmp r2, 0 - beq _080520D8 -_080520A2: - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x20 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gBattleCommunication - movs r0, 0x1 - b _080521EC - .pool -_080520D8: - ldr r3, =gBankAttacker - ldrb r0, [r3] - adds r1, r0, 0 - muls r1, r6 - adds r1, r5 - ldr r0, [r1] - orrs r0, r4 - str r0, [r1] - ldr r4, =gDisableStructs - ldrb r1, [r3] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r4 - strh r2, [r0, 0x4] - ldrb r0, [r3] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r2, [r1, 0xB] - movs r0, 0x10 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0xB] - ldrb r1, [r3] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r4 - mov r2, r12 - ldrb r1, [r2] - muls r1, r6 - adds r2, r7, 0 - adds r2, 0x48 - adds r1, r2 - ldr r1, [r1] - str r1, [r0] - ldrb r0, [r3] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r2, [r1, 0x18] - movs r0, 0xF - ands r0, r2 - strb r0, [r1, 0x18] - ldr r1, =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x6 - strb r0, [r1, 0x1] - mov r2, r12 - ldrb r0, [r2] - muls r0, r6 - adds r0, r7 - ldrh r0, [r0] - strb r0, [r1, 0x2] - ldrb r0, [r2] - muls r0, r6 - adds r0, r7 - ldrh r0, [r0] - lsrs r0, 8 - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldrb r0, [r3] - muls r0, r6 - adds r5, r0, r7 - ldrb r0, [r2] - muls r0, r6 - adds r2, r0, r7 - movs r4, 0 - adds r6, r3, 0 - ldr r0, =gActiveBank - mov r8, r0 -_08052170: - adds r0, r5, r4 - adds r1, r2, r4 - ldrb r1, [r1] - strb r1, [r0] - adds r4, 0x1 - cmp r4, 0x23 - bls _08052170 - movs r4, 0 - ldr r7, =gBattleMoves - ldr r3, =gBattleMons + 0xC - adds r5, r3, 0 - adds r5, 0x18 -_08052188: - lsls r1, r4, 1 - ldrb r2, [r6] - movs r0, 0x58 - muls r2, r0 - adds r1, r2 - adds r1, r3 - ldrh r1, [r1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrb r1, [r0, 0x4] - cmp r1, 0x4 - bhi _080521C4 - adds r0, r4, r2 - adds r0, r5 - b _080521CA - .pool -_080521C4: - adds r0, r4, r2 - adds r0, r5 - movs r1, 0x5 -_080521CA: - strb r1, [r0] - adds r4, 0x1 - cmp r4, 0x3 - ble _08052188 - ldrb r0, [r6] - mov r1, r8 - strb r0, [r1] - movs r0, 0 - movs r1, 0x2 - bl dp01_build_cmdbuf_x38_a - mov r2, r8 - ldrb r0, [r2] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, =gBattleCommunication - movs r0, 0 -_080521EC: - strb r0, [r1, 0x5] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk9B_transformdataexecution - - thumb_func_start atk9C_set_substitute -atk9C_set_substitute: @ 80521FC - push {r4-r7,lr} - ldr r7, =gBattleMons - ldr r6, =gBankAttacker - ldrb r0, [r6] - movs r5, 0x58 - muls r0, r5 - adds r3, r0, r7 - ldrh r0, [r3, 0x2C] - lsrs r1, r0, 2 - adds r2, r1, 0 - cmp r1, 0 - bne _08052216 - movs r2, 0x1 -_08052216: - ldrh r0, [r3, 0x28] - cmp r0, r2 - bhi _0805223C - ldr r1, =gBattleMoveDamage - movs r0, 0 - str r0, [r1] - ldr r1, =gBattleCommunication - movs r0, 0x1 - strb r0, [r1, 0x5] - b _08052290 - .pool -_0805223C: - ldr r4, =gBattleMoveDamage - str r1, [r4] - cmp r1, 0 - bne _08052248 - movs r0, 0x1 - str r0, [r4] -_08052248: - ldrb r0, [r6] - adds r2, r0, 0 - muls r2, r5 - adds r3, r7, 0 - adds r3, 0x50 - adds r2, r3 - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 17 - orrs r0, r1 - str r0, [r2] - ldrb r0, [r6] - adds r1, r0, 0 - muls r1, r5 - adds r1, r3 - ldr r0, [r1] - ldr r2, =0xffff1fff - ands r0, r2 - str r0, [r1] - ldr r2, =gDisableStructs - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, [r4] - movs r2, 0 - strb r1, [r0, 0xA] - ldr r0, =gBattleCommunication - strb r2, [r0, 0x5] - ldr r2, =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 1 - orrs r0, r1 - str r0, [r2] -_08052290: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk9C_set_substitute - - thumb_func_start sub_80522B8 -sub_80522B8: @ 80522B8 - push {r4,r5,lr} - lsls r0, 16 - lsrs r2, r0, 16 - movs r3, 0 - ldr r0, =gUnknown_0831C3E0 - ldrh r1, [r0] - ldr r4, =0x0000fffe - adds r5, r0, 0 - cmp r1, r4 - beq _080522E0 - cmp r1, r2 - beq _080522E0 - adds r1, r5, 0 -_080522D2: - adds r1, 0x2 - adds r3, 0x1 - ldrh r0, [r1] - cmp r0, r4 - beq _080522E0 - cmp r0, r2 - bne _080522D2 -_080522E0: - lsls r0, r3, 1 - adds r0, r5 - ldrh r1, [r0] - ldr r0, =0x0000fffe - eors r1, r0 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80522B8 - - thumb_func_start atk9D_copyattack -atk9D_copyattack: @ 8052300 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, =gUnknown_020241EC - ldr r1, =0x0000ffff - adds r7, r1, 0 - strh r7, [r0] - ldr r5, =gLastUsedMovesByBanks - ldr r6, =gBankTarget - ldrb r0, [r6] - lsls r0, 1 - adds r0, r5 - ldrh r0, [r0] - bl sub_80522B8 - lsls r0, 24 - cmp r0, 0 - bne _0805235A - ldr r3, =gBattleMons - ldr r2, =gBankAttacker - ldrb r1, [r2] - movs r0, 0x58 - adds r4, r1, 0 - muls r4, r0 - adds r0, r3, 0 - adds r0, 0x50 - adds r0, r4, r0 - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 14 - ands r1, r0 - mov r12, r3 - mov r9, r2 - cmp r1, 0 - bne _0805235A - ldrb r0, [r6] - lsls r0, 1 - adds r0, r5 - ldrh r1, [r0] - cmp r1, 0 - beq _0805235A - cmp r1, r7 - bne _08052394 -_0805235A: - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _080524CC - .pool -_08052394: - movs r2, 0 - mov r3, r12 - adds r3, 0xC - adds r0, r4, r3 - ldrh r0, [r0] - ldr r4, =gBattlescriptCurrInstr - mov r10, r4 - cmp r0, r1 - beq _080523CE - mov r8, r3 - adds r7, r5, 0 - adds r5, r6, 0 - mov r4, r9 - movs r3, 0x58 -_080523B0: - adds r2, 0x1 - cmp r2, 0x3 - bgt _080523CE - lsls r1, r2, 1 - ldrb r0, [r4] - muls r0, r3 - adds r1, r0 - add r1, r8 - ldrb r0, [r5] - lsls r0, 1 - adds r0, r7 - ldrh r1, [r1] - ldrh r0, [r0] - cmp r1, r0 - bne _080523B0 -_080523CE: - cmp r2, 0x4 - bne _080524B0 - ldr r5, =gCurrMovePos - ldrb r1, [r5] - lsls r1, 1 - mov r2, r9 - ldrb r0, [r2] - movs r6, 0x58 - muls r0, r6 - adds r1, r0 - mov r0, r12 - adds r0, 0xC - adds r1, r0 - ldr r2, =gLastUsedMovesByBanks - ldr r3, =gBankTarget - ldrb r0, [r3] - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - strh r0, [r1] - ldr r4, =gBattleMoves - ldrb r0, [r3] - lsls r0, 1 - adds r0, r2 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r4, [r0, 0x4] - cmp r4, 0x4 - bhi _08052438 - mov r1, r9 - ldrb r0, [r1] - muls r0, r6 - ldrb r1, [r5] - adds r0, r1 - mov r1, r12 - adds r1, 0x24 - adds r0, r1 - strb r4, [r0] - b _0805244C - .pool -_08052438: - mov r4, r9 - ldrb r0, [r4] - muls r0, r6 - ldrb r1, [r5] - adds r0, r1 - mov r1, r12 - adds r1, 0x24 - adds r0, r1 - movs r1, 0x5 - strb r1, [r0] -_0805244C: - ldr r1, =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x2 - strb r0, [r1, 0x1] - ldrb r0, [r3] - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - strb r0, [r1, 0x2] - ldrb r0, [r3] - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - lsrs r0, 8 - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r1, =gDisableStructs - mov r2, r9 - ldrb r0, [r2] - lsls r2, r0, 3 - subs r2, r0 - lsls r2, 2 - adds r2, r1 - ldrb r4, [r2, 0x18] - lsrs r3, r4, 4 - ldr r1, =gBitTable - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - orrs r1, r3 - lsls r1, 4 - movs r0, 0xF - ands r0, r4 - orrs r0, r1 - strb r0, [r2, 0x18] - mov r4, r10 - ldr r0, [r4] - adds r0, 0x5 - str r0, [r4] - b _080524CC - .pool -_080524B0: - mov r0, r10 - ldr r2, [r0] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - mov r2, r10 - str r1, [r2] -_080524CC: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end atk9D_copyattack - - thumb_func_start atk9E_metronome -atk9E_metronome: @ 80524DC - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r7, =gCurrentMove - movs r6, 0xB1 - lsls r6, 1 - ldr r5, =gUnknown_0831C3E0 - ldr r0, =gBattlescriptCurrInstr - mov r8, r0 -_080524EE: - bl Random - ldr r2, =0x000001ff - adds r1, r2, 0 - ands r0, r1 - adds r0, 0x1 - strh r0, [r7] - cmp r0, r6 - bhi _080524EE - movs r0, 0x3 -_08052502: - subs r0, 0x1 - cmp r0, 0 - bge _08052502 - ldr r4, =gCurrentMove - ldrh r2, [r4] - ldr r3, =0x0000ffff - subs r0, r5, 0x2 -_08052510: - adds r0, 0x2 - ldrh r1, [r0] - cmp r1, r2 - beq _0805251C - cmp r1, r3 - bne _08052510 -_0805251C: - ldr r0, =0x0000ffff - cmp r1, r0 - bne _080524EE - ldr r2, =gHitMarker - ldr r0, [r2] - ldr r1, =0xfffffbff - ands r0, r1 - str r0, [r2] - ldr r3, =gUnknown_082D86A8 - ldr r2, =gBattleMoves - ldrh r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - mov r1, r8 - str r0, [r1] - ldrh r0, [r4] - movs r1, 0 - bl GetMoveTarget - ldr r1, =gBankTarget - strb r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk9E_metronome - - thumb_func_start atk9F_dmgtolevel -atk9F_dmgtolevel: @ 8052584 - ldr r3, =gBattleMoveDamage - ldr r2, =gBattleMons - ldr r0, =gBankAttacker - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x2A - ldrb r0, [r0] - str r0, [r3] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .pool - thumb_func_end atk9F_dmgtolevel - - thumb_func_start atkA0_psywavedamageeffect -atkA0_psywavedamageeffect: @ 80525B4 - push {r4,lr} - movs r4, 0xF -_080525B8: - bl Random - adds r3, r4, 0 - ands r3, r0 - cmp r3, 0xA - bgt _080525B8 - lsls r0, r3, 2 - adds r0, r3 - lsls r3, r0, 1 - ldr r4, =gBattleMoveDamage - ldr r2, =gBattleMons - ldr r0, =gBankAttacker - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x2A - ldrb r1, [r0] - adds r0, r3, 0 - adds r0, 0x32 - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - str r0, [r4] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atkA0_psywavedamageeffect - - thumb_func_start atkA1_counterdamagecalculator -atkA1_counterdamagecalculator: @ 8052608 - push {r4-r6,lr} - ldr r4, =gBankAttacker - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - lsrs r6, r0, 24 - ldr r5, =gProtectStructs - ldrb r0, [r4] - lsls r0, 4 - adds r0, r5 - ldrb r0, [r0, 0xC] - bl GetBankSide - lsls r0, 24 - lsrs r2, r0, 24 - ldrb r0, [r4] - lsls r1, r0, 4 - adds r0, r5, 0x4 - adds r0, r1, r0 - ldr r3, [r0] - cmp r3, 0 - beq _080526BC - cmp r6, r2 - beq _080526BC - ldr r6, =gBattleMons - adds r0, r1, r5 - ldrb r0, [r0, 0xC] - movs r4, 0x58 - muls r0, r4 - adds r0, r6 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _080526BC - ldr r1, =gBattleMoveDamage - lsls r0, r3, 1 - str r0, [r1] - ldr r1, =gSideTimers - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0, r1 - ldrb r0, [r1, 0x8] - cmp r0, 0 - beq _08052690 - ldrb r1, [r1, 0x9] - adds r0, r1, 0 - muls r0, r4 - adds r0, r6 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _08052690 - ldr r0, =gBankTarget - strb r1, [r0] - b _080526A0 - .pool -_08052690: - ldr r2, =gBankTarget - ldr r1, =gProtectStructs - ldr r0, =gBankAttacker - ldrb r0, [r0] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0, 0xC] - strb r0, [r2] -_080526A0: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _080526EC - .pool -_080526BC: - ldr r2, =gSpecialStatuses - ldr r0, =gBankAttacker - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0] - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_080526EC: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end atkA1_counterdamagecalculator - - thumb_func_start atkA2_mirrorcoatdamagecalculator -atkA2_mirrorcoatdamagecalculator: @ 8052700 - push {r4-r6,lr} - ldr r4, =gBankAttacker - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - lsrs r6, r0, 24 - ldr r5, =gProtectStructs - ldrb r0, [r4] - lsls r0, 4 - adds r0, r5 - ldrb r0, [r0, 0xD] - bl GetBankSide - lsls r0, 24 - lsrs r2, r0, 24 - ldrb r0, [r4] - lsls r1, r0, 4 - adds r0, r5, 0 - adds r0, 0x8 - adds r0, r1, r0 - ldr r3, [r0] - cmp r3, 0 - beq _080527B4 - cmp r6, r2 - beq _080527B4 - ldr r6, =gBattleMons - adds r0, r1, r5 - ldrb r0, [r0, 0xD] - movs r4, 0x58 - muls r0, r4 - adds r0, r6 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _080527B4 - ldr r1, =gBattleMoveDamage - lsls r0, r3, 1 - str r0, [r1] - ldr r1, =gSideTimers - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0, r1 - ldrb r0, [r1, 0x8] - cmp r0, 0 - beq _08052788 - ldrb r1, [r1, 0x9] - adds r0, r1, 0 - muls r0, r4 - adds r0, r6 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _08052788 - ldr r0, =gBankTarget - strb r1, [r0] - b _08052798 - .pool -_08052788: - ldr r2, =gBankTarget - ldr r1, =gProtectStructs - ldr r0, =gBankAttacker - ldrb r0, [r0] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0, 0xD] - strb r0, [r2] -_08052798: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _080527E4 - .pool -_080527B4: - ldr r2, =gSpecialStatuses - ldr r0, =gBankAttacker - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0] - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_080527E4: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end atkA2_mirrorcoatdamagecalculator - - thumb_func_start atkA3_disablelastusedattack -atkA3_disablelastusedattack: @ 80527F8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r4, 0 - ldr r2, =gBattleMons - ldr r3, =gBankTarget - ldrb r1, [r3] - movs r0, 0x58 - muls r0, r1 - adds r7, r2, 0 - adds r7, 0xC - adds r0, r7 - ldr r5, =gLastUsedMovesByBanks - lsls r1, 1 - adds r1, r5 - ldrh r0, [r0] - mov r9, r2 - adds r6, r3, 0 - ldr r2, =gDisableStructs - mov r8, r2 - ldrh r1, [r1] - cmp r0, r1 - beq _0805284C - mov r12, r6 - movs r3, 0x58 -_0805282C: - adds r4, 0x1 - cmp r4, 0x3 - bgt _0805284C - lsls r2, r4, 1 - mov r0, r12 - ldrb r1, [r0] - adds r0, r1, 0 - muls r0, r3 - adds r2, r0 - adds r2, r7 - lsls r1, 1 - adds r1, r5 - ldrh r0, [r2] - ldrh r1, [r1] - cmp r0, r1 - bne _0805282C -_0805284C: - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r8 - ldrh r0, [r0, 0x4] - cmp r0, 0 - bne _08052910 - cmp r4, 0x4 - beq _08052910 - movs r5, 0x58 - adds r0, r1, 0 - muls r0, r5 - adds r0, r4, r0 - mov r1, r9 - adds r1, 0x24 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08052910 - ldr r1, =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x2 - strb r0, [r1, 0x1] - lsls r2, r4, 1 - ldrb r0, [r6] - muls r0, r5 - adds r0, r2, r0 - mov r3, r9 - adds r3, 0xC - adds r0, r3 - ldrh r0, [r0] - strb r0, [r1, 0x2] - ldrb r0, [r6] - muls r0, r5 - adds r0, r2, r0 - adds r0, r3 - ldrh r0, [r0] - lsrs r0, 8 - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r8 - muls r1, r5 - adds r2, r1 - adds r2, r3 - ldrh r1, [r2] - strh r1, [r0, 0x4] - bl Random - ldrb r2, [r6] - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - add r1, r8 - movs r2, 0x3 - ands r2, r0 - adds r2, 0x2 - ldrb r3, [r1, 0xB] - movs r0, 0x10 - negs r0, r0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0xB] - ldrb r0, [r6] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - add r1, r8 - ldrb r3, [r1, 0xB] - lsls r2, r3, 28 - lsrs r2, 24 - movs r0, 0xF - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0xB] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _0805292A - .pool -_08052910: - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_0805292A: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkA3_disablelastusedattack - - thumb_func_start atkA4_setencore -atkA4_setencore: @ 805293C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r5, 0 - ldr r3, =gBattleMons - ldr r4, =gBankTarget - ldrb r1, [r4] - movs r0, 0x58 - muls r0, r1 - adds r6, r3, 0 - adds r6, 0xC - adds r0, r6 - ldr r2, =gLastUsedMovesByBanks - lsls r1, 1 - adds r1, r2 - ldrh r0, [r0] - mov r10, r3 - mov r8, r2 - ldr r2, =gDisableStructs - mov r9, r2 - ldrh r1, [r1] - cmp r0, r1 - beq _08052996 - mov r12, r4 - adds r7, r6, 0 - mov r6, r8 - movs r3, 0x58 -_08052976: - adds r5, 0x1 - cmp r5, 0x3 - bgt _08052996 - lsls r2, r5, 1 - mov r0, r12 - ldrb r1, [r0] - adds r0, r1, 0 - muls r0, r3 - adds r2, r0 - adds r2, r7 - lsls r1, 1 - adds r1, r6 - ldrh r0, [r2] - ldrh r1, [r1] - cmp r0, r1 - bne _08052976 -_08052996: - ldrb r0, [r4] - lsls r0, 1 - add r0, r8 - ldrh r2, [r0] - cmp r2, 0xA5 - beq _080529AA - cmp r2, 0xE3 - beq _080529AA - cmp r2, 0x77 - bne _080529AC -_080529AA: - movs r5, 0x4 -_080529AC: - ldrb r1, [r4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - mov r2, r9 - adds r3, r0, r2 - ldrh r0, [r3, 0x6] - cmp r0, 0 - bne _08052A44 - cmp r5, 0x4 - beq _08052A44 - movs r0, 0x58 - adds r2, r1, 0 - muls r2, r0 - adds r0, r5, r2 - mov r1, r10 - adds r1, 0x24 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08052A44 - lsls r0, r5, 1 - adds r0, r2 - subs r1, 0x18 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r3, 0x6] - ldrb r1, [r4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r9 - strb r5, [r0, 0xC] - bl Random - ldrb r2, [r4] - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - add r1, r9 - movs r2, 0x3 - ands r2, r0 - adds r2, 0x3 - ldrb r3, [r1, 0xE] - movs r0, 0x10 - negs r0, r0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0xE] - ldrb r0, [r4] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - add r1, r9 - ldrb r3, [r1, 0xE] - lsls r2, r3, 28 - lsrs r2, 24 - movs r0, 0xF - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0xE] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _08052A5E - .pool -_08052A44: - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_08052A5E: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkA4_setencore - - thumb_func_start atkA5_painsplitdmgcalc -atkA5_painsplitdmgcalc: @ 8052A70 - push {r4-r7,lr} - ldr r6, =gBattleMons - ldr r0, =gBankTarget - mov r12, r0 - ldrb r0, [r0] - movs r7, 0x58 - adds r2, r0, 0 - muls r2, r7 - adds r0, r6, 0 - adds r0, 0x50 - adds r0, r2, r0 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - cmp r0, 0 - bne _08052B10 - ldr r5, =gBankAttacker - ldrb r0, [r5] - muls r0, r7 - adds r0, r6 - ldrh r3, [r0, 0x28] - adds r0, r2, r6 - ldrh r1, [r0, 0x28] - adds r3, r1 - asrs r3, 1 - ldr r4, =gBattleMoveDamage - subs r1, r3 - str r1, [r4] - ldr r2, =gBattleScripting - strb r1, [r2] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - asrs r0, 8 - strb r0, [r2, 0x1] - movs r0, 0xFF - lsls r0, 16 - ands r0, r1 - asrs r0, 16 - strb r0, [r2, 0x2] - lsrs r1, 24 - strb r1, [r2, 0x3] - ldrb r0, [r5] - muls r0, r7 - adds r0, r6 - ldrh r0, [r0, 0x28] - subs r0, r3 - str r0, [r4] - ldr r2, =gSpecialStatuses - mov r0, r12 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r2, 0x4 - adds r0, r2 - ldr r1, =0x0000ffff - str r1, [r0] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _08052B2A - .pool -_08052B10: - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_08052B2A: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkA5_painsplitdmgcalc - - thumb_func_start atkA6_settypetorandomresistance -atkA6_settypetorandomresistance: @ 8052B34 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r1, =gUnknown_02024250 - ldr r4, =gBankAttacker - ldrb r0, [r4] - lsls r0, 1 - adds r2, r0, r1 - ldrh r1, [r2] - cmp r1, 0 - beq _08052B7E - ldr r0, =0x0000ffff - cmp r1, r0 - beq _08052B7E - ldrh r0, [r2] - bl sub_8052F48 - lsls r0, 24 - cmp r0, 0 - beq _08052C1C - ldr r1, =gBattleMons - ldr r2, =gUnknown_02024270 - ldrb r0, [r4] - adds r0, r2 - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 5 - ands r0, r1 - cmp r0, 0 - beq _08052C1C -_08052B7E: - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08052D08 - .pool -_08052BB4: - mov r0, r12 - strb r5, [r0] - mov r1, r10 - ldrb r0, [r1] - muls r0, r2 - adds r0, r7 - adds r0, 0x22 - strb r5, [r0] - ldr r1, =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x3 - strb r0, [r1, 0x1] - strb r5, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - ldr r1, =gBattlescriptCurrInstr - b _08052C0A - .pool -_08052BE0: - mov r0, r8 - adds r0, 0x1 - adds r0, r3 - ldrb r2, [r0] - strb r2, [r4] - mov r4, r10 - ldrb r0, [r4] - muls r0, r6 - ldr r7, =gBattleMons - adds r0, r7 - adds r0, 0x22 - strb r2, [r0] - ldr r1, =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x3 - strb r0, [r1, 0x1] - strb r2, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - mov r1, r12 -_08052C0A: - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _08052D08 - .pool -_08052C1C: - movs r4, 0 - mov r8, r4 - movs r7, 0x7F - mov r9, r7 -_08052C24: - bl Random - mov r4, r9 - ands r4, r0 - cmp r4, 0x70 - bhi _08052C24 - lsls r0, r4, 1 - adds r4, r0, r4 - ldr r6, =gUnknown_0831ACE8 - adds r3, r4, r6 - ldr r1, =gUnknown_02024258 - ldr r2, =gBankAttacker - ldrb r5, [r2] - lsls r0, r5, 1 - adds r0, r1 - ldrb r1, [r3] - mov r10, r2 - ldrh r0, [r0] - cmp r1, r0 - bne _08052C80 - adds r0, r4, 0x2 - adds r0, r6 - ldrb r0, [r0] - cmp r0, 0x5 - bhi _08052C80 - ldr r7, =gBattleMons - movs r2, 0x58 - adds r0, r5, 0 - muls r0, r2 - adds r3, r0, r7 - movs r0, 0x21 - adds r0, r3 - mov r12, r0 - adds r0, r4, 0x1 - adds r0, r6 - ldrb r5, [r0] - mov r1, r12 - ldrb r0, [r1] - adds r1, r5, 0 - cmp r0, r1 - beq _08052C80 - adds r0, r3, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, r1 - bne _08052BB4 -_08052C80: - movs r7, 0x1 - add r8, r7 - ldr r0, =0x000003e7 - cmp r8, r0 - ble _08052C24 - movs r0, 0 - mov r8, r0 - ldr r1, =gBattlescriptCurrInstr - mov r12, r1 - ldr r3, =gUnknown_0831ACE8 - adds r0, r4, 0x1 - adds r0, r3 - mov r9, r0 - adds r5, r3, 0 -_08052C9C: - ldrb r1, [r5] - cmp r1, 0xFF - bgt _08052CA6 - cmp r1, 0xFE - bge _08052CE0 -_08052CA6: - mov r4, r10 - ldrb r2, [r4] - lsls r0, r2, 1 - ldr r7, =gUnknown_02024258 - adds r0, r7 - ldrh r0, [r0] - cmp r1, r0 - bne _08052CE0 - ldrb r0, [r5, 0x2] - cmp r0, 0x5 - bhi _08052CE0 - movs r6, 0x58 - adds r0, r2, 0 - muls r0, r6 - ldr r1, =gBattleMons - adds r2, r0, r1 - adds r4, r2, 0 - adds r4, 0x21 - ldrb r0, [r4] - mov r7, r9 - ldrb r1, [r7] - cmp r0, r1 - beq _08052CE0 - adds r0, r2, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, r1 - beq _08052CE0 - b _08052BE0 -_08052CE0: - adds r5, 0x3 - movs r0, 0x3 - add r8, r0 - ldr r0, =0x0000014f - cmp r8, r0 - bls _08052C9C - mov r1, r12 - ldr r2, [r1] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - mov r4, r12 - str r1, [r4] -_08052D08: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkA6_settypetorandomresistance - - thumb_func_start atkA7_setalwayshitflag -atkA7_setalwayshitflag: @ 8052D34 - push {r4,lr} - ldr r4, =gStatuses3 - ldr r3, =gBankTarget - ldrb r1, [r3] - lsls r1, 2 - adds r1, r4 - ldr r0, [r1] - movs r2, 0x19 - negs r2, r2 - ands r0, r2 - str r0, [r1] - ldrb r1, [r3] - lsls r1, 2 - adds r1, r4 - ldr r0, [r1] - movs r2, 0x10 - orrs r0, r2 - str r0, [r1] - ldr r2, =gDisableStructs - ldrb r1, [r3] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, =gBankAttacker - ldrb r1, [r1] - strb r1, [r0, 0x15] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atkA7_setalwayshitflag - - thumb_func_start atkA8_copymovepermanently -atkA8_copymovepermanently: @ 8052D8C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - ldr r0, =gUnknown_020241EC - ldr r1, =0x0000ffff - adds r5, r1, 0 - strh r5, [r0] - ldr r3, =gBattleMons - ldr r2, =gBankAttacker - ldrb r1, [r2] - movs r0, 0x58 - adds r4, r1, 0 - muls r4, r0 - adds r0, r3, 0 - adds r0, 0x50 - adds r0, r4, r0 - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 14 - ands r1, r0 - mov r12, r3 - mov r10, r2 - cmp r1, 0 - beq _08052DC4 - b _08052F18 -_08052DC4: - ldr r0, =gUnknown_02024240 - ldr r2, =gBankTarget - ldrb r1, [r2] - lsls r1, 1 - adds r1, r0 - ldrh r1, [r1] - mov r9, r0 - mov r8, r2 - cmp r1, 0xA5 - bne _08052DDA - b _08052F18 -_08052DDA: - cmp r1, 0 - bne _08052DE0 - b _08052F18 -_08052DE0: - cmp r1, r5 - bne _08052DE6 - b _08052F18 -_08052DE6: - cmp r1, 0xA6 - bne _08052DEC - b _08052F18 -_08052DEC: - movs r7, 0 - mov r5, r9 - mov r0, r12 - adds r0, 0xC - adds r1, r4, r0 - mov r3, r8 -_08052DF8: - ldrh r2, [r1] - cmp r2, 0xA6 - beq _08052E0A - ldrb r0, [r3] - lsls r0, 1 - adds r0, r5 - ldrh r0, [r0] - cmp r2, r0 - beq _08052E12 -_08052E0A: - adds r1, 0x2 - adds r7, 0x1 - cmp r7, 0x3 - ble _08052DF8 -_08052E12: - cmp r7, 0x4 - beq _08052E18 - b _08052F18 -_08052E18: - ldr r4, =gCurrMovePos - ldrb r1, [r4] - lsls r1, 1 - mov r2, r10 - ldrb r0, [r2] - movs r3, 0x58 - muls r0, r3 - adds r1, r0 - mov r6, r12 - adds r6, 0xC - adds r1, r6 - mov r2, r8 - ldrb r0, [r2] - lsls r0, 1 - add r0, r9 - ldrh r0, [r0] - strh r0, [r1] - mov r1, r10 - ldrb r0, [r1] - adds r2, r0, 0 - muls r2, r3 - ldrb r4, [r4] - adds r2, r4 - mov r5, r12 - adds r5, 0x24 - adds r2, r5 - ldr r4, =gBattleMoves - mov r1, r8 - ldrb r0, [r1] - lsls r0, 1 - add r0, r9 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x4] - strb r0, [r2] - ldr r1, =gActiveBank - mov r2, r10 - ldrb r0, [r2] - strb r0, [r1] - movs r7, 0 - ldrb r0, [r2] - muls r0, r3 - adds r4, r0, r5 - adds r3, r0, 0 - add r2, sp, 0x4 - add r5, sp, 0xC -_08052E7A: - adds r0, r3, r6 - ldrh r0, [r0] - strh r0, [r2] - adds r1, r5, r7 - ldrb r0, [r4] - strb r0, [r1] - adds r4, 0x1 - adds r3, 0x2 - adds r2, 0x2 - adds r7, 0x1 - cmp r7, 0x3 - ble _08052E7A - add r2, sp, 0x4 - mov r0, r10 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - add r0, r12 - adds r0, 0x3B - ldrb r0, [r0] - strb r0, [r2, 0xC] - str r2, [sp] - movs r0, 0 - movs r1, 0x3 - movs r2, 0 - movs r3, 0x10 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldr r0, =gActiveBank - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x2 - strb r0, [r1, 0x1] - ldr r3, =gUnknown_02024240 - ldr r2, =gBankTarget - ldrb r0, [r2] - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - strb r0, [r1, 0x2] - ldrb r0, [r2] - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - lsrs r0, 8 - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _08052F32 - .pool -_08052F18: - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_08052F32: - 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 atkA8_copymovepermanently - - thumb_func_start sub_8052F48 -sub_8052F48: @ 8052F48 - push {lr} - lsls r0, 16 - lsrs r0, 16 - ldr r2, =gBattleMoves - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1] - cmp r0, 0x91 - beq _08052F72 - cmp r0, 0x27 - beq _08052F72 - cmp r0, 0x4B - beq _08052F72 - cmp r0, 0x97 - beq _08052F72 - cmp r0, 0x9B - beq _08052F72 - cmp r0, 0x1A - bne _08052F7C -_08052F72: - movs r0, 0x1 - b _08052F7E - .pool -_08052F7C: - movs r0, 0 -_08052F7E: - pop {r1} - bx r1 - thumb_func_end sub_8052F48 - - thumb_func_start sub_8052F84 -sub_8052F84: @ 8052F84 - push {lr} - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - beq _08052FA2 - cmp r1, 0xD6 - beq _08052FA2 - movs r0, 0x89 - lsls r0, 1 - cmp r1, r0 - beq _08052FA2 - cmp r1, 0x77 - beq _08052FA2 - cmp r1, 0x76 - bne _08052FA6 -_08052FA2: - movs r0, 0x1 - b _08052FA8 -_08052FA6: - movs r0, 0 -_08052FA8: - pop {r1} - bx r1 - thumb_func_end sub_8052F84 - - thumb_func_start move_weather_interaction -move_weather_interaction: @ 8052FAC - push {lr} - lsls r1, 16 - lsrs r2, r1, 16 - ldr r1, =gBattleMoves - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0] - adds r3, r1, 0 - cmp r0, 0x97 - bne _08052FD0 - ldr r0, =gBattleWeather - ldrh r1, [r0] - movs r0, 0x60 - ands r0, r1 - cmp r0, 0 - bne _08053010 -_08052FD0: - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0] - cmp r0, 0x91 - beq _08052FF2 - cmp r0, 0x27 - beq _08052FF2 - cmp r0, 0x4B - beq _08052FF2 - cmp r0, 0x97 - beq _08052FF2 - cmp r0, 0x9B - beq _08052FF2 - cmp r0, 0x1A - bne _08053010 -_08052FF2: - ldr r0, =gHitMarker - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 20 - ands r0, r1 - cmp r0, 0 - beq _08053010 - movs r0, 0x1 - b _08053012 - .pool -_08053010: - movs r0, 0x2 -_08053012: - pop {r1} - bx r1 - thumb_func_end move_weather_interaction - - thumb_func_start atkA9_sleeptalk_choose_move -atkA9_sleeptalk_choose_move: @ 8053018 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r6, 0 - movs r5, 0 - ldr r0, =gBankAttacker - mov r9, r0 - movs r1, 0x58 - mov r8, r1 - ldr r7, =gBattleMons + 0xC - movs r0, 0x84 - lsls r0, 1 - mov r10, r0 -_08053036: - lsls r4, r5, 1 - mov r1, r9 - ldrb r0, [r1] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r4, r0 - adds r0, r7 - ldrh r0, [r0] - bl sub_8052F84 - lsls r0, 24 - cmp r0, 0 - bne _08053076 - mov r1, r9 - ldrb r0, [r1] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r4, r0 - adds r0, r7 - ldrh r1, [r0] - cmp r1, r10 - beq _08053076 - cmp r1, 0xFD - beq _08053076 - adds r0, r1, 0 - bl sub_8052F48 - lsls r0, 24 - cmp r0, 0 - beq _08053084 -_08053076: - ldr r1, =gBitTable - lsls r0, r5, 2 - adds r0, r1 - ldr r0, [r0] - orrs r6, r0 - lsls r0, r6, 24 - lsrs r6, r0, 24 -_08053084: - adds r5, 0x1 - cmp r5, 0x3 - ble _08053036 - ldr r0, =gBankAttacker - ldrb r0, [r0] - adds r1, r6, 0 - movs r2, 0xFD - bl CheckMoveLimitations - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0xF - bne _080530B8 - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _0805311C - .pool -_080530B8: - movs r7, 0x3 - ldr r4, =gBitTable -_080530BC: - bl Random - adds r5, r7, 0 - ands r5, r0 - lsls r0, r5, 2 - adds r0, r4 - ldr r0, [r0] - ands r0, r6 - cmp r0, 0 - bne _080530BC - ldr r4, =gRandomMove - ldr r2, =gBattleMons - lsls r1, r5, 1 - ldr r0, =gBankAttacker - ldrb r3, [r0] - movs r0, 0x58 - muls r0, r3 - adds r1, r0 - adds r2, 0xC - adds r1, r2 - ldrh r0, [r1] - strh r0, [r4] - ldr r0, =gCurrMovePos - strb r5, [r0] - ldr r2, =gHitMarker - ldr r0, [r2] - ldr r1, =0xfffffbff - ands r0, r1 - str r0, [r2] - ldrh r0, [r4] - movs r1, 0 - bl GetMoveTarget - ldr r1, =gBankTarget - strb r0, [r1] - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_0805311C: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkA9_sleeptalk_choose_move - - thumb_func_start atkAA_set_destinybond -atkAA_set_destinybond: @ 8053150 - ldr r1, =gBattleMons - ldr r0, =gBankAttacker - ldrb r2, [r0] - movs r0, 0x58 - muls r2, r0 - adds r1, 0x50 - adds r2, r1 - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 18 - orrs r0, r1 - str r0, [r2] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .pool - thumb_func_end atkAA_set_destinybond - - thumb_func_start b_feature_update_destiny_bond -b_feature_update_destiny_bond: @ 8053180 - push {r4,r5,lr} - ldr r0, =gBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, =gBankTarget - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - lsrs r3, r0, 24 - ldr r1, =gBattleMons - ldrb r2, [r4] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 18 - ands r0, r1 - cmp r0, 0 - beq _080531CA - cmp r5, r3 - beq _080531CA - ldr r2, =gHitMarker - ldr r1, [r2] - movs r0, 0x80 - lsls r0, 17 - ands r0, r1 - cmp r0, 0 - bne _080531CA - movs r0, 0x40 - orrs r1, r0 - str r1, [r2] -_080531CA: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end b_feature_update_destiny_bond - - thumb_func_start atkAB_DestinyBondFlagUpdate -atkAB_DestinyBondFlagUpdate: @ 80531E0 - push {lr} - bl b_feature_update_destiny_bond - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end atkAB_DestinyBondFlagUpdate - - thumb_func_start atkAC_remaininghptopower -atkAC_remaininghptopower: @ 80531F8 - push {lr} - ldr r2, =gBattleMons - ldr r0, =gBankAttacker - ldrb r1, [r0] - movs r0, 0x58 - muls r1, r0 - adds r1, r2 - movs r2, 0x28 - ldrsh r0, [r1, r2] - movs r2, 0x2C - ldrsh r1, [r1, r2] - movs r2, 0x30 - bl sub_8075034 - lsls r0, 24 - lsrs r1, r0, 24 - movs r3, 0 - ldr r0, =gUnknown_0831C408 - ldrb r2, [r0] - cmp r1, r2 - ble _08053232 - adds r2, r0, 0 -_08053224: - adds r3, 0x2 - cmp r3, 0xB - bgt _08053232 - adds r0, r3, r2 - ldrb r0, [r0] - cmp r1, r0 - bgt _08053224 -_08053232: - ldr r2, =gDynamicBasePower - ldr r1, =gUnknown_0831C408 - adds r0, r3, 0x1 - adds r0, r1 - ldrb r0, [r0] - strh r0, [r2] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end atkAC_remaininghptopower - - thumb_func_start atkAD_spite_ppreduce -atkAD_spite_ppreduce: @ 8053260 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r4, =gLastUsedMovesByBanks - ldr r1, =gBankTarget - ldrb r3, [r1] - lsls r0, r3, 1 - adds r0, r4 - ldrh r2, [r0] - mov r8, r1 - cmp r2, 0 - bne _08053280 - b _08053408 -_08053280: - ldr r0, =0x0000ffff - cmp r2, r0 - bne _08053288 - b _08053408 -_08053288: - movs r7, 0 - ldr r0, =gBattleMons - movs r1, 0x58 - muls r1, r3 - adds r3, r0, 0 - adds r3, 0xC - adds r1, r3 - ldrh r1, [r1] - cmp r2, r1 - beq _080532C0 - adds r6, r4, 0 - mov r5, r8 - adds r4, r3, 0 - movs r3, 0x58 -_080532A4: - adds r7, 0x1 - cmp r7, 0x3 - bgt _080532C0 - ldrb r0, [r5] - lsls r2, r0, 1 - adds r2, r6 - lsls r1, r7, 1 - muls r0, r3 - adds r1, r0 - adds r1, r4 - ldrh r0, [r2] - ldrh r1, [r1] - cmp r0, r1 - bne _080532A4 -_080532C0: - cmp r7, 0x4 - bne _080532C6 - b _08053408 -_080532C6: - mov r4, r8 - ldrb r0, [r4] - movs r1, 0x58 - mov r9, r1 - mov r3, r9 - muls r3, r0 - adds r0, r3, 0 - adds r0, r7, r0 - ldr r1, =gBattleMons - adds r1, 0x24 - mov r10, r1 - add r0, r10 - ldrb r0, [r0] - cmp r0, 0x1 - bhi _080532E6 - b _08053408 -_080532E6: - bl Random - movs r1, 0x3 - ands r1, r0 - adds r6, r1, 0x2 - ldrb r0, [r4] - mov r3, r9 - muls r3, r0 - adds r0, r3, 0 - adds r0, r7, r0 - add r0, r10 - ldrb r0, [r0] - cmp r0, r6 - bge _08053304 - adds r6, r0, 0 -_08053304: - ldr r1, =gBattleTextBuff1 - movs r5, 0xFD - strb r5, [r1] - movs r0, 0x2 - strb r0, [r1, 0x1] - ldr r2, =gLastUsedMovesByBanks - mov r3, r8 - ldrb r0, [r3] - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - strb r0, [r1, 0x2] - ldrb r0, [r3] - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - lsrs r0, 8 - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r4, =gBattleTextBuff2 - adds r0, r4, 0 - adds r1, r6, 0 - movs r2, 0 - movs r3, 0x1 - bl ConvertIntToDecimalStringN - strb r5, [r4] - movs r0, 0x1 - strb r0, [r4, 0x1] - strb r0, [r4, 0x2] - strb r0, [r4, 0x3] - strb r6, [r4, 0x4] - subs r0, 0x2 - strb r0, [r4, 0x5] - mov r1, r8 - ldrb r0, [r1] - mov r1, r9 - muls r1, r0 - adds r1, r7, r1 - add r1, r10 - ldrb r0, [r1] - subs r0, r6 - strb r0, [r1] - ldr r4, =gActiveBank - mov r3, r8 - ldrb r0, [r3] - strb r0, [r4] - ldr r1, =gDisableStructs - ldrb r3, [r4] - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x18] - lsrs r1, 4 - ldr r2, =gBitTable - lsls r0, r7, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _080533B8 - mov r2, r9 - muls r2, r3 - ldr r0, =gBattleMons - adds r0, 0x50 - adds r0, r2, r0 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 14 - ands r0, r1 - cmp r0, 0 - bne _080533B8 - adds r1, r7, 0 - adds r1, 0x9 - lsls r1, 24 - lsrs r1, 24 - mov r3, r10 - adds r0, r2, r3 - adds r0, r7 - str r0, [sp] - movs r0, 0 - movs r2, 0 - movs r3, 0x1 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_080533B8: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - ldr r1, =gBattleMons - ldr r0, =gBankTarget - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r0, r7, r0 - adds r1, 0x24 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _08053422 - adds r0, r2, 0 - bl CancelMultiTurnMoves - b _08053422 - .pool -_08053408: - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_08053422: - 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 atkAD_spite_ppreduce - - thumb_func_start atkAE_heal_party_status -atkAE_heal_party_status: @ 8053438 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - movs r4, 0 - str r4, [sp, 0x4] - mov r8, r4 - ldr r0, =gCurrentMove - ldrh r0, [r0] - cmp r0, 0xD7 - beq _08053454 - b _0805363E -_08053454: - ldr r6, =gBattleCommunication - mov r0, r8 - strb r0, [r6, 0x5] - ldr r5, =gBankAttacker - ldrb r0, [r5] - bl GetBankSide - lsls r0, 24 - ldr r1, =gEnemyParty - mov r10, r1 - cmp r0, 0 - bne _08053470 - ldr r2, =gPlayerParty - mov r10, r2 -_08053470: - ldr r4, =gBattleMons - ldrb r3, [r5] - movs r7, 0x58 - adds r2, r3, 0 - muls r2, r7 - adds r0, r2, r4 - adds r1, r0, 0 - adds r1, 0x20 - ldrb r0, [r1] - cmp r0, 0x2B - beq _080534C4 - adds r0, r4, 0 - adds r0, 0x4C - adds r0, r2, r0 - mov r1, r8 - str r1, [r0] - ldrb r0, [r5] - adds r2, r0, 0 - muls r2, r7 - adds r0, r4, 0 - adds r0, 0x50 - adds r2, r0 - ldr r0, [r2] - ldr r1, =0xf7ffffff - ands r0, r1 - str r0, [r2] - b _080534D4 - .pool -_080534C4: - ldrb r1, [r1] - adds r0, r3, 0 - bl RecordAbilityBattle - ldrb r0, [r6, 0x5] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r6, 0x5] -_080534D4: - ldr r7, =gActiveBank - ldr r0, =gBankAttacker - ldrb r0, [r0] - bl GetBankIdentity - movs r2, 0x2 - mov r9, r2 - mov r1, r9 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl GetBankByPlayerAI - ldr r1, =gBattleScripting - strb r0, [r1, 0x17] - strb r0, [r7] - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0805357A - ldr r0, =gAbsentBankFlags - ldrb r2, [r0] - ldr r1, =gBitTable - ldrb r3, [r7] - lsls r0, r3, 2 - adds r0, r1 - ldr r0, [r0] - ands r2, r0 - cmp r2, 0 - bne _0805357A - ldr r5, =gBattleMons - movs r6, 0x58 - adds r4, r3, 0 - muls r4, r6 - adds r0, r4, r5 - adds r1, r0, 0 - adds r1, 0x20 - ldrb r0, [r1] - cmp r0, 0x2B - beq _08053568 - adds r0, r5, 0 - adds r0, 0x4C - adds r0, r4, r0 - str r2, [r0] - ldrb r0, [r7] - adds r2, r0, 0 - muls r2, r6 - adds r0, r5, 0 - adds r0, 0x50 - adds r2, r0 - ldr r0, [r2] - ldr r1, =0xf7ffffff - ands r0, r1 - str r0, [r2] - b _0805357A - .pool -_08053568: - ldrb r1, [r1] - adds r0, r3, 0 - bl RecordAbilityBattle - ldr r1, =gBattleCommunication - ldrb r0, [r1, 0x5] - mov r2, r9 - orrs r0, r2 - strb r0, [r1, 0x5] -_0805357A: - movs r6, 0 - ldr r7, =gBattleMons -_0805357E: - movs r0, 0x64 - adds r4, r6, 0 - muls r4, r0 - add r4, r10 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0 - movs r1, 0x2E - bl GetMonData - lsls r0, 24 - lsrs r4, r0, 24 - cmp r5, 0 - beq _08053636 - movs r0, 0xCE - lsls r0, 1 - cmp r5, r0 - beq _08053636 - ldr r2, =gBattlePartyID - ldr r0, =gBankAttacker - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r2 - ldrh r0, [r0] - cmp r0, r6 - bne _080535D0 - movs r0, 0x58 - muls r0, r1 - b _08053600 - .pool -_080535D0: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08053618 - ldr r0, =gActiveBank - ldrb r3, [r0] - lsls r0, r3, 1 - adds r0, r2 - ldrh r0, [r0] - cmp r0, r6 - bne _08053618 - ldr r0, =gAbsentBankFlags - ldrb r1, [r0] - ldr r2, =gBitTable - lsls r0, r3, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _08053618 - movs r0, 0x58 - muls r0, r3 -_08053600: - adds r0, r7 - adds r0, 0x20 - ldrb r0, [r0] - b _08053624 - .pool -_08053618: - adds r0, r5, 0 - adds r1, r4, 0 - bl GetAbilityBySpecies - lsls r0, 24 - lsrs r0, 24 -_08053624: - cmp r0, 0x2B - beq _08053636 - movs r0, 0x1 - lsls r0, r6 - mov r1, r8 - orrs r1, r0 - lsls r0, r1, 24 - lsrs r0, 24 - mov r8, r0 -_08053636: - adds r6, 0x1 - cmp r6, 0x5 - ble _0805357E - b _080536BC -_0805363E: - ldr r1, =gBattleCommunication - movs r0, 0x4 - strb r0, [r1, 0x5] - movs r2, 0x3F - mov r8, r2 - ldr r3, =gBattleMons - ldr r2, =gBankAttacker - ldrb r0, [r2] - movs r5, 0x58 - muls r0, r5 - movs r1, 0x4C - adds r1, r3 - mov r9, r1 - add r0, r9 - str r4, [r0] - ldrb r0, [r2] - adds r1, r0, 0 - muls r1, r5 - adds r7, r3, 0 - adds r7, 0x50 - adds r1, r7 - ldr r0, [r1] - ldr r6, =0xf7ffffff - ands r0, r6 - str r0, [r1] - ldrb r0, [r2] - bl GetBankIdentity - movs r1, 0x2 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl GetBankByPlayerAI - ldr r4, =gActiveBank - strb r0, [r4] - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080536BC - ldr r0, =gAbsentBankFlags - ldrb r2, [r0] - ldr r1, =gBitTable - ldrb r3, [r4] - lsls r0, r3, 2 - adds r0, r1 - ldr r0, [r0] - ands r2, r0 - cmp r2, 0 - bne _080536BC - adds r0, r3, 0 - muls r0, r5 - add r0, r9 - str r2, [r0] - ldrb r0, [r4] - adds r1, r0, 0 - muls r1, r5 - adds r1, r7 - ldr r0, [r1] - ands r0, r6 - str r0, [r1] -_080536BC: - mov r2, r8 - cmp r2, 0 - beq _080536DE - ldr r4, =gActiveBank - ldr r0, =gBankAttacker - ldrb r0, [r0] - strb r0, [r4] - add r0, sp, 0x4 - str r0, [sp] - movs r0, 0 - movs r1, 0x28 - movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_080536DE: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkAE_heal_party_status - - thumb_func_start atkAF_cursetarget -atkAF_cursetarget: @ 805371C - push {r4,r5,lr} - ldr r5, =gBattleMons - ldr r0, =gBankTarget - ldrb r0, [r0] - movs r4, 0x58 - adds r1, r0, 0 - muls r1, r4 - adds r0, r5, 0 - adds r0, 0x50 - adds r1, r0 - ldr r2, [r1] - movs r3, 0x80 - lsls r3, 21 - adds r0, r2, 0 - ands r0, r3 - cmp r0, 0 - beq _08053768 - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0805378C - .pool -_08053768: - orrs r2, r3 - str r2, [r1] - ldr r1, =gBattleMoveDamage - ldr r0, =gBankAttacker - ldrb r0, [r0] - muls r0, r4 - adds r0, r5 - ldrh r0, [r0, 0x2C] - lsrs r0, 1 - str r0, [r1] - cmp r0, 0 - bne _08053784 - movs r0, 0x1 - str r0, [r1] -_08053784: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_0805378C: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atkAF_cursetarget - - thumb_func_start atkB0_set_spikes -atkB0_set_spikes: @ 80537A0 - push {r4,lr} - ldr r4, =gBankAttacker - ldrb r0, [r4] - bl GetBankSide - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gSideTimers - lsls r2, r0, 1 - adds r0, r2, r0 - lsls r0, 2 - adds r3, r0, r1 - ldrb r0, [r3, 0xA] - cmp r0, 0x3 - bne _08053804 - ldr r2, =gSpecialStatuses - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0] - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0805381E - .pool -_08053804: - ldr r1, =gSideAffecting - adds r1, r2, r1 - ldrh r2, [r1] - movs r0, 0x10 - orrs r0, r2 - strh r0, [r1] - ldrb r0, [r3, 0xA] - adds r0, 0x1 - strb r0, [r3, 0xA] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_0805381E: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atkB0_set_spikes - - thumb_func_start atkB1_set_foresight -atkB1_set_foresight: @ 805382C - ldr r1, =gBattleMons - ldr r0, =gBankTarget - ldrb r2, [r0] - movs r0, 0x58 - muls r2, r0 - adds r1, 0x50 - adds r2, r1 - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 22 - orrs r0, r1 - str r0, [r2] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .pool - thumb_func_end atkB1_set_foresight - - thumb_func_start atkB2_setperishsong -atkB2_setperishsong: @ 805385C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r6, 0 - movs r3, 0 - ldr r0, =gNoOfAllBanks - adds r7, r0, 0 - ldr r0, =gBankAttacker - mov r8, r0 - ldrb r1, [r7] - cmp r6, r1 - bge _080538C8 - movs r5, 0x20 - ldr r0, =gBattleMons - mov r12, r0 - ldr r0, =gDisableStructs - adds r4, r0, 0 - adds r4, 0xF - ldr r2, =gStatuses3 -_08053884: - ldr r1, [r2] - adds r0, r1, 0 - ands r0, r5 - cmp r0, 0 - bne _0805389C - movs r0, 0x58 - muls r0, r3 - add r0, r12 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x2B - bne _080538B4 -_0805389C: - adds r6, 0x1 - b _080538BC - .pool -_080538B4: - orrs r1, r5 - str r1, [r2] - movs r0, 0x33 - strb r0, [r4] -_080538BC: - adds r4, 0x1C - adds r2, 0x4 - adds r3, 0x1 - ldrb r0, [r7] - cmp r3, r0 - blt _08053884 -_080538C8: - mov r1, r8 - ldrb r0, [r1] - bl sub_803F67C - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r6, r0 - bne _080538FC - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08053904 - .pool -_080538FC: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_08053904: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkB2_setperishsong - - thumb_func_start atkB3_rolloutdamagecalculation -atkB3_rolloutdamagecalculation: @ 8053914 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _08053948 - ldr r0, =gBankAttacker - ldrb r0, [r0] - bl CancelMultiTurnMoves - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082D8A60 - str r0, [r1] - b _08053A60 - .pool -_08053948: - ldr r2, =gBattleMons - ldr r1, =gBankAttacker - ldrb r3, [r1] - movs r5, 0x58 - adds r0, r3, 0 - muls r0, r5 - adds r4, r2, 0 - adds r4, 0x50 - adds r0, r4 - ldr r0, [r0] - movs r7, 0x80 - lsls r7, 5 - ands r0, r7 - adds r6, r1, 0 - mov r9, r2 - ldr r1, =gDisableStructs - mov r12, r1 - ldr r2, =gCurrentMove - mov r8, r2 - cmp r0, 0 - bne _080539BA - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - add r0, r12 - ldrb r2, [r0, 0x11] - movs r1, 0x10 - negs r1, r1 - ands r1, r2 - movs r2, 0x5 - orrs r1, r2 - strb r1, [r0, 0x11] - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r12 - ldrb r2, [r0, 0x11] - movs r1, 0xF - ands r1, r2 - movs r2, 0x50 - orrs r1, r2 - strb r1, [r0, 0x11] - ldrb r0, [r6] - adds r1, r0, 0 - muls r1, r5 - adds r1, r4 - ldr r0, [r1] - orrs r0, r7 - str r0, [r1] - ldr r1, =gUnknown_02024268 - ldrb r0, [r6] - lsls r0, 1 - adds r0, r1 - mov r2, r8 - ldrh r1, [r2] - strh r1, [r0] -_080539BA: - ldrb r0, [r6] - lsls r2, r0, 3 - subs r2, r0 - lsls r2, 2 - add r2, r12 - ldrb r3, [r2, 0x11] - lsls r1, r3, 28 - lsrs r1, 28 - subs r1, 0x1 - movs r0, 0xF - ands r1, r0 - movs r0, 0x10 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x11] - cmp r1, 0 - bne _080539EE - ldrb r0, [r6] - adds r1, r0, 0 - muls r1, r5 - adds r1, r4 - ldr r0, [r1] - ldr r2, =0xffffefff - ands r0, r2 - str r0, [r1] -_080539EE: - ldr r3, =gDynamicBasePower - ldr r2, =gBattleMoves - mov r0, r8 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - strh r0, [r3] - movs r2, 0x1 - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - mov r1, r12 - adds r4, r0, r1 - ldrb r0, [r4, 0x11] - lsls r0, 28 - lsrs r0, 28 - movs r1, 0x5 - subs r1, r0 - ldr r7, =gBattlescriptCurrInstr - adds r5, r3, 0 - cmp r2, r1 - bge _08053A3C - adds r1, r5, 0 - adds r3, r4, 0 - movs r4, 0x5 -_08053A28: - ldrh r0, [r1] - lsls r0, 1 - strh r0, [r1] - adds r2, 0x1 - ldrb r0, [r3, 0x11] - lsls r0, 28 - lsrs r0, 28 - subs r0, r4, r0 - cmp r2, r0 - blt _08053A28 -_08053A3C: - ldrb r1, [r6] - movs r0, 0x58 - muls r0, r1 - mov r1, r9 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 23 - ands r0, r1 - cmp r0, 0 - beq _08053A5A - ldrh r0, [r5] - lsls r0, 1 - strh r0, [r5] -_08053A5A: - ldr r0, [r7] - adds r0, 0x1 - str r0, [r7] -_08053A60: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkB3_rolloutdamagecalculation - - thumb_func_start atkB4_jumpifconfusedandstatmaxed -atkB4_jumpifconfusedandstatmaxed: @ 8053A90 - push {r4,r5,lr} - ldr r5, =gBattleMons - ldr r0, =gBankTarget - ldrb r1, [r0] - movs r0, 0x58 - adds r3, r1, 0 - muls r3, r0 - adds r0, r5, 0 - adds r0, 0x50 - adds r0, r3, r0 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - ldr r4, =gBattlescriptCurrInstr - cmp r0, 0 - beq _08053AEC - ldr r2, [r4] - ldrb r0, [r2, 0x1] - adds r0, r3 - adds r1, r5, 0 - adds r1, 0x18 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0xC - bne _08053AEC - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _08053AF2 - .pool -_08053AEC: - ldr r0, [r4] - adds r0, 0x6 - str r0, [r4] -_08053AF2: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end atkB4_jumpifconfusedandstatmaxed - - thumb_func_start atkB5_furycuttercalc -atkB5_furycuttercalc: @ 8053AF8 - push {r4,r5,lr} - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _08053B34 - ldr r2, =gDisableStructs - ldr r0, =gBankAttacker - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strb r1, [r0, 0x10] - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082D8A60 - str r0, [r1] - b _08053B8C - .pool -_08053B34: - ldr r5, =gDisableStructs - ldr r4, =gBankAttacker - ldrb r1, [r4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r0, r5 - ldrb r0, [r1, 0x10] - cmp r0, 0x5 - beq _08053B4C - adds r0, 0x1 - strb r0, [r1, 0x10] -_08053B4C: - ldr r3, =gDynamicBasePower - ldr r2, =gBattleMoves - ldr r0, =gCurrentMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - strh r0, [r3] - movs r2, 0x1 - ldrb r1, [r4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r4, =gBattlescriptCurrInstr - ldrb r1, [r0, 0x10] - cmp r2, r1 - bge _08053B86 - adds r1, r3, 0 - adds r3, r0, 0 -_08053B78: - ldrh r0, [r1] - lsls r0, 1 - strh r0, [r1] - adds r2, 0x1 - ldrb r0, [r3, 0x10] - cmp r2, r0 - blt _08053B78 -_08053B86: - ldr r0, [r4] - adds r0, 0x1 - str r0, [r4] -_08053B8C: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atkB5_furycuttercalc - - thumb_func_start atkB6_happinesstodamagecalculation -atkB6_happinesstodamagecalculation: @ 8053BAC - push {r4,lr} - ldr r2, =gBattleMoves - ldr r0, =gCurrentMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0x79 - bne _08053BEC - ldr r4, =gDynamicBasePower - ldr r2, =gBattleMons - ldr r0, =gBankAttacker - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x2B - ldrb r1, [r0] - b _08053C02 - .pool -_08053BEC: - ldr r4, =gDynamicBasePower - ldr r2, =gBattleMons - ldr r0, =gBankAttacker - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x2B - ldrb r0, [r0] - movs r1, 0xFF - subs r1, r0 -_08053C02: - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 1 - movs r1, 0x19 - bl __divsi3 - strh r0, [r4] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atkB6_happinesstodamagecalculation - - thumb_func_start atkB7_presentdamagecalculation -atkB7_presentdamagecalculation: @ 8053C30 - push {r4,lr} - bl Random - movs r4, 0xFF - ands r4, r0 - cmp r4, 0x65 - bgt _08053C4C - ldr r1, =gDynamicBasePower - movs r0, 0x28 - strh r0, [r1] - b _08053C8E - .pool -_08053C4C: - cmp r4, 0xB1 - bgt _08053C5C - ldr r1, =gDynamicBasePower - movs r0, 0x50 - strh r0, [r1] - b _08053C8E - .pool -_08053C5C: - cmp r4, 0xCB - bgt _08053C6C - ldr r1, =gDynamicBasePower - movs r0, 0x78 - strh r0, [r1] - b _08053C8E - .pool -_08053C6C: - ldr r3, =gBattleMoveDamage - ldr r2, =gBattleMons - ldr r0, =gBankTarget - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r0, [r0, 0x2C] - lsrs r0, 2 - str r0, [r3] - cmp r0, 0 - bne _08053C88 - movs r0, 0x1 - str r0, [r3] -_08053C88: - ldr r0, [r3] - negs r0, r0 - str r0, [r3] -_08053C8E: - cmp r4, 0xCB - bgt _08053CAC - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082D8A30 - b _08053CE6 - .pool -_08053CAC: - ldr r2, =gBattleMons - ldr r0, =gBankTarget - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r1, [r0, 0x2C] - ldrh r0, [r0, 0x28] - cmp r1, r0 - bne _08053CD8 - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082D9EFB - b _08053CE6 - .pool -_08053CD8: - ldr r2, =gBattleMoveFlags - ldrb r1, [r2] - movs r0, 0xF7 - ands r0, r1 - strb r0, [r2] - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082D9EE1 -_08053CE6: - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atkB7_presentdamagecalculation - - thumb_func_start atkB8_set_safeguard -atkB8_set_safeguard: @ 8053CFC - push {r4-r7,lr} - ldr r7, =gBankAttacker - ldrb r0, [r7] - bl GetBankIdentity - ldr r4, =gSideAffecting - movs r6, 0x1 - adds r1, r6, 0 - ands r1, r0 - lsls r1, 1 - adds r1, r4 - ldrh r1, [r1] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08053D40 - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gBattleCommunication - movs r0, 0 - strb r0, [r1, 0x5] - b _08053D88 - .pool -_08053D40: - ldrb r0, [r7] - bl GetBankIdentity - adds r1, r6, 0 - ands r1, r0 - lsls r1, 1 - adds r1, r4 - ldrh r0, [r1] - movs r2, 0x20 - orrs r0, r2 - strh r0, [r1] - ldrb r0, [r7] - bl GetBankIdentity - ldr r5, =gSideTimers - adds r1, r6, 0 - ands r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r4, 0x5 - strb r4, [r0, 0x6] - ldrb r0, [r7] - bl GetBankIdentity - adds r1, r6, 0 - ands r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r7] - strb r1, [r0, 0x7] - ldr r0, =gBattleCommunication - strb r4, [r0, 0x5] -_08053D88: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkB8_set_safeguard - - thumb_func_start atkB9_magnitudedamagecalculation -atkB9_magnitudedamagecalculation: @ 8053DA4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x4 - bgt _08053DD0 - ldr r1, =gDynamicBasePower - movs r0, 0xA - strh r0, [r1] - movs r3, 0x4 - b _08053E3C - .pool -_08053DD0: - cmp r3, 0xE - bgt _08053DE4 - ldr r1, =gDynamicBasePower - movs r0, 0x1E - strh r0, [r1] - movs r3, 0x5 - b _08053E3C - .pool -_08053DE4: - cmp r3, 0x22 - bgt _08053DF8 - ldr r1, =gDynamicBasePower - movs r0, 0x32 - strh r0, [r1] - movs r3, 0x6 - b _08053E3C - .pool -_08053DF8: - cmp r3, 0x40 - bgt _08053E0C - ldr r1, =gDynamicBasePower - movs r0, 0x46 - strh r0, [r1] - movs r3, 0x7 - b _08053E3C - .pool -_08053E0C: - cmp r3, 0x54 - bgt _08053E20 - ldr r1, =gDynamicBasePower - movs r0, 0x5A - strh r0, [r1] - movs r3, 0x8 - b _08053E3C - .pool -_08053E20: - cmp r3, 0x5E - bgt _08053E34 - ldr r1, =gDynamicBasePower - movs r0, 0x6E - strh r0, [r1] - movs r3, 0x9 - b _08053E3C - .pool -_08053E34: - ldr r1, =gDynamicBasePower - movs r0, 0x96 - strh r0, [r1] - movs r3, 0xA -_08053E3C: - ldr r1, =gBattleTextBuff1 - movs r2, 0 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x1 - strb r0, [r1, 0x1] - strb r0, [r1, 0x2] - movs r0, 0x2 - strb r0, [r1, 0x3] - strb r3, [r1, 0x4] - movs r0, 0xFF - strb r0, [r1, 0x5] - ldr r1, =gBankTarget - strb r2, [r1] - ldr r0, =gNoOfAllBanks - ldrb r3, [r0] - adds r6, r1, 0 - ldr r0, =gBattlescriptCurrInstr - mov r8, r0 - cmp r2, r3 - bcs _08053E94 - adds r4, r6, 0 - ldr r0, =gBankAttacker - ldrb r5, [r0] - ldr r1, =gBitTable - mov r12, r1 - ldr r7, =gAbsentBankFlags -_08053E72: - ldrb r2, [r4] - cmp r2, r5 - beq _08053E88 - ldrb r0, [r7] - ldrb r1, [r6] - lsls r1, 2 - add r1, r12 - ldr r1, [r1] - ands r0, r1 - cmp r0, 0 - beq _08053E94 -_08053E88: - adds r0, r2, 0x1 - strb r0, [r4] - lsls r0, 24 - lsrs r0, 24 - cmp r0, r3 - bcc _08053E72 -_08053E94: - mov r1, r8 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkB9_magnitudedamagecalculation - - thumb_func_start atkBA_jumpifnopursuitswitchdmg -atkBA_jumpifnopursuitswitchdmg: @ 8053EC8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, =gUnknown_02024212 - ldrb r0, [r0] - cmp r0, 0x1 - bne _08053EF8 - ldr r0, =gBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _08053EF4 - movs r0, 0x1 - b _08053F12 - .pool -_08053EF4: - movs r0, 0 - b _08053F12 -_08053EF8: - ldr r0, =gBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _08053F10 - movs r0, 0x3 - b _08053F12 - .pool -_08053F10: - movs r0, 0x2 -_08053F12: - bl GetBankByPlayerAI - ldr r1, =gBankTarget - strb r0, [r1] - ldr r0, =gUnknown_0202421C - ldr r1, =gBankTarget - ldrb r3, [r1] - adds r0, r3, r0 - ldrb r0, [r0] - cmp r0, 0 - beq _08053F2A - b _08054030 -_08053F2A: - ldr r5, =gBankAttacker - ldr r0, =gBattleStruct - ldr r1, [r0] - adds r1, r3, r1 - ldrb r2, [r5] - ldrb r1, [r1, 0xC] - cmp r2, r1 - bne _08054030 - ldr r4, =gBattleMons - movs r2, 0x58 - adds r0, r3, 0 - muls r0, r2 - adds r1, r4, 0 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x27 - ands r0, r1 - cmp r0, 0 - bne _08054030 - ldrb r0, [r5] - muls r0, r2 - adds r0, r4 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _08054030 - ldr r0, =gDisableStructs - lsls r1, r3, 3 - subs r1, r3 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x18] - lsls r0, 31 - cmp r0, 0 - bne _08054030 - ldr r0, =gUnknown_02024274 - lsls r1, r3, 1 - adds r1, r0 - ldrh r0, [r1] - cmp r0, 0xE4 - bne _08054030 - movs r1, 0 - ldr r0, =gNoOfAllBanks - ldr r2, =gCurrentMove - mov r8, r2 - ldr r7, =gCurrMovePos - mov r10, r7 - ldr r2, =gUnknown_020241E9 - mov r9, r2 - ldr r7, =gHitMarker - mov r12, r7 - ldrb r2, [r0] - cmp r1, r2 - bge _08053FB6 - ldr r6, =gTurnOrder - ldr r5, =gBankTarget - ldr r4, =gUnknown_0202407A - movs r3, 0xB - adds r2, r0, 0 -_08053FA0: - adds r0, r1, r6 - ldrb r0, [r0] - ldrb r7, [r5] - cmp r0, r7 - bne _08053FAE - adds r0, r1, r4 - strb r3, [r0] -_08053FAE: - adds r1, 0x1 - ldrb r0, [r2] - cmp r1, r0 - blt _08053FA0 -_08053FB6: - movs r0, 0xE4 - mov r1, r8 - strh r0, [r1] - ldr r2, =gBankTarget - ldrb r0, [r2] - ldr r7, =gBattleStruct - ldr r1, [r7] - adds r0, r1 - adds r0, 0x80 - ldrb r0, [r0] - mov r1, r9 - strb r0, [r1] - mov r2, r10 - strb r0, [r2] - ldr r7, =gBattlescriptCurrInstr - ldr r0, [r7] - adds r0, 0x5 - str r0, [r7] - movs r0, 0x1 - ldr r1, =gBattleScripting - strb r0, [r1, 0x18] - mov r2, r12 - ldr r0, [r2] - ldr r1, =0xfffffbff - ands r0, r1 - str r0, [r2] - b _0805404A - .pool -_08054030: - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_0805404A: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkBA_jumpifnopursuitswitchdmg - - thumb_func_start atkBB_setsunny -atkBB_setsunny: @ 805405C - push {lr} - ldr r2, =gBattleWeather - ldrh r1, [r2] - movs r0, 0x60 - ands r0, r1 - cmp r0, 0 - beq _08054088 - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gBattleCommunication - movs r0, 0x2 - strb r0, [r1, 0x5] - b _0805409A - .pool -_08054088: - movs r0, 0x20 - strh r0, [r2] - ldr r1, =gBattleCommunication - movs r0, 0x4 - strb r0, [r1, 0x5] - ldr r0, =gUnknown_020243D0 - adds r0, 0x28 - movs r1, 0x5 - strb r1, [r0] -_0805409A: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end atkBB_setsunny - - thumb_func_start atkBC_maxattackhalvehp -atkBC_maxattackhalvehp: @ 80540B4 - push {r4,r5,lr} - ldr r5, =gBattleMons - ldr r4, =gBankAttacker - ldrb r0, [r4] - movs r3, 0x58 - muls r0, r3 - adds r2, r0, r5 - ldrh r0, [r2, 0x2C] - lsrs r1, r0, 1 - cmp r1, 0 - bne _080540CC - movs r1, 0x1 -_080540CC: - movs r0, 0x19 - ldrsb r0, [r2, r0] - cmp r0, 0xB - bgt _08054110 - ldrh r0, [r2, 0x28] - cmp r0, r1 - bls _08054110 - movs r0, 0xC - strb r0, [r2, 0x19] - ldr r1, =gBattleMoveDamage - ldrb r0, [r4] - muls r0, r3 - adds r0, r5 - ldrh r0, [r0, 0x2C] - lsrs r0, 1 - str r0, [r1] - cmp r0, 0 - bne _080540F4 - movs r0, 0x1 - str r0, [r1] -_080540F4: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _0805412A - .pool -_08054110: - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_0805412A: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atkBC_maxattackhalvehp - - thumb_func_start atkBD_copyfoestats -atkBD_copyfoestats: @ 8054134 - push {r4-r7,lr} - movs r2, 0 - ldr r7, =gBattlescriptCurrInstr - ldr r6, =gBankAttacker - movs r4, 0x58 - ldr r3, =gBattleMons + 0x18 - ldr r5, =gBankTarget -_08054142: - ldrb r0, [r6] - adds r1, r0, 0 - muls r1, r4 - adds r1, r2, r1 - adds r1, r3 - ldrb r0, [r5] - muls r0, r4 - adds r0, r2, r0 - adds r0, r3 - ldrb r0, [r0] - strb r0, [r1] - adds r2, 0x1 - cmp r2, 0x7 - ble _08054142 - ldr r0, [r7] - adds r0, 0x5 - str r0, [r7] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkBD_copyfoestats - - thumb_func_start atkBE_breakfree -atkBE_breakfree: @ 805417C - push {r4-r6,lr} - ldr r1, =gBattleMons - ldr r5, =gBankAttacker - ldrb r2, [r5] - movs r6, 0x58 - adds r0, r2, 0 - muls r0, r6 - adds r4, r1, 0 - adds r4, 0x50 - adds r0, r4 - ldr r0, [r0] - movs r1, 0xE0 - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - beq _08054210 - ldr r1, =gBattleScripting - ldr r3, =gBankTarget - ldrb r0, [r3] - strb r0, [r1, 0x17] - ldrb r0, [r5] - adds r1, r0, 0 - muls r1, r6 - adds r1, r4 - ldr r0, [r1] - ldr r2, =0xffff1fff - ands r0, r2 - str r0, [r1] - ldrb r0, [r5] - ldr r1, =gBattleStruct - ldr r2, [r1] - adds r0, r2 - ldrb r0, [r0, 0x14] - strb r0, [r3] - ldr r1, =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x2 - strb r0, [r1, 0x1] - ldrb r0, [r5] - lsls r0, 1 - adds r0, r2 - ldrb r0, [r0, 0x4] - strb r0, [r1, 0x2] - ldrb r0, [r5] - lsls r0, 1 - adds r0, r2 - ldrb r0, [r0, 0x5] - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - bl b_movescr_stack_push_cursor - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DAFC5 - b _080542BA - .pool -_08054210: - ldr r4, =gStatuses3 - lsls r0, r2, 2 - adds r3, r0, r4 - ldr r1, [r3] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08054250 - movs r0, 0x5 - negs r0, r0 - ands r1, r0 - str r1, [r3] - ldrb r1, [r5] - lsls r1, 2 - adds r1, r4 - ldr r0, [r1] - movs r2, 0x4 - negs r2, r2 - ands r0, r2 - str r0, [r1] - bl b_movescr_stack_push_cursor - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DAFD6 - b _080542BA - .pool -_08054250: - adds r0, r2, 0 - bl GetBankSide - ldr r4, =gSideAffecting - lsls r0, 24 - lsrs r0, 23 - adds r0, r4 - ldrh r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080542B4 - ldrb r0, [r5] - bl GetBankSide - lsls r0, 24 - lsrs r0, 23 - adds r0, r4 - ldrh r2, [r0] - ldr r1, =0x0000ffef - ands r1, r2 - movs r4, 0 - strh r1, [r0] - ldrb r0, [r5] - bl GetBankSide - ldr r2, =gSideTimers - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - strb r4, [r1, 0xA] - bl b_movescr_stack_push_cursor - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DAFDD - b _080542BA - .pool -_080542B4: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 -_080542BA: - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end atkBE_breakfree - - thumb_func_start atkBF_set_defense_curl -atkBF_set_defense_curl: @ 80542C8 - ldr r1, =gBattleMons - ldr r0, =gBankAttacker - ldrb r2, [r0] - movs r0, 0x58 - muls r2, r0 - adds r1, 0x50 - adds r2, r1 - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 23 - orrs r0, r1 - str r0, [r2] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .pool - thumb_func_end atkBF_set_defense_curl - - thumb_func_start atkC0_recoverbasedonsunlight -atkC0_recoverbasedonsunlight: @ 80542F8 - push {r4-r7,lr} - sub sp, 0x4 - ldr r1, =gBankTarget - ldr r5, =gBankAttacker - ldrb r0, [r5] - strb r0, [r1] - ldr r7, =gBattleMons - ldrb r0, [r5] - movs r6, 0x58 - muls r0, r6 - adds r0, r7 - ldrh r1, [r0, 0x28] - ldrh r0, [r0, 0x2C] - cmp r1, r0 - beq _080543D8 - ldr r4, =gBattleWeather - ldrh r0, [r4] - cmp r0, 0 - beq _0805434A - movs r0, 0 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0xD - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _0805434A - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0x4D - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - cmp r0, 0 - beq _08054378 -_0805434A: - ldr r3, =gBattleMoveDamage - ldr r2, =gBattleMons - ldr r0, =gBankAttacker - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r0, [r0, 0x2C] - lsrs r0, 1 - str r0, [r3] - adds r1, r3, 0 - b _080543B2 - .pool -_08054378: - ldrh r1, [r4] - movs r0, 0x60 - ands r0, r1 - cmp r0, 0 - beq _080543A4 - ldr r4, =gBattleMoveDamage - ldrb r0, [r5] - muls r0, r6 - adds r0, r7 - ldrh r1, [r0, 0x2C] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - movs r1, 0x1E - bl __divsi3 - str r0, [r4] - adds r1, r4, 0 - b _080543B2 - .pool -_080543A4: - ldr r1, =gBattleMoveDamage - ldrb r0, [r5] - muls r0, r6 - adds r0, r7 - ldrh r0, [r0, 0x2C] - lsrs r0, 2 - str r0, [r1] -_080543B2: - adds r2, r1, 0 - ldr r0, [r2] - cmp r0, 0 - bne _080543BE - movs r0, 0x1 - str r0, [r2] -_080543BE: - ldr r0, [r1] - negs r0, r0 - str r0, [r1] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _080543F2 - .pool -_080543D8: - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_080543F2: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkC0_recoverbasedonsunlight - - thumb_func_start atkC1_hidden_power -atkC1_hidden_power: @ 8054400 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r2, =gBattleMons - ldr r0, =gBankAttacker - ldrb r1, [r0] - movs r0, 0x58 - adds r4, r1, 0 - muls r4, r0 - adds r4, r2 - ldrb r0, [r4, 0x14] - mov r10, r0 - mov r7, r10 - lsls r7, 27 - adds r0, r7, 0 - lsrs r0, 27 - mov r10, r0 - movs r1, 0x2 - mov r2, r10 - ands r2, r1 - asrs r2, 1 - ldrh r7, [r4, 0x14] - mov r9, r7 - mov r0, r9 - lsls r0, 22 - mov r9, r0 - lsrs r3, r0, 27 - adds r0, r1, 0 - ands r0, r3 - orrs r2, r0 - ldrb r7, [r4, 0x15] - mov r8, r7 - mov r0, r8 - lsls r0, 25 - mov r8, r0 - lsrs r3, r0, 27 - adds r0, r1, 0 - ands r0, r3 - lsls r0, 1 - orrs r2, r0 - ldr r6, [r4, 0x14] - lsls r6, 12 - lsrs r3, r6, 27 - adds r0, r1, 0 - ands r0, r3 - lsls r0, 2 - orrs r2, r0 - ldrh r5, [r4, 0x16] - lsls r5, 23 - lsrs r3, r5, 27 - adds r0, r1, 0 - ands r0, r3 - lsls r0, 3 - orrs r2, r0 - ldrb r3, [r4, 0x17] - lsls r3, 26 - lsrs r0, r3, 27 - ands r1, r0 - lsls r1, 4 - orrs r2, r1 - movs r1, 0x1 - adds r4, r1, 0 - mov r7, r10 - ands r4, r7 - mov r0, r9 - lsrs r0, 27 - mov r9, r0 - adds r0, r1, 0 - mov r7, r9 - ands r0, r7 - lsls r0, 1 - orrs r4, r0 - mov r0, r8 - lsrs r0, 27 - mov r8, r0 - adds r0, r1, 0 - mov r7, r8 - ands r0, r7 - lsls r0, 2 - orrs r4, r0 - lsrs r6, 27 - adds r0, r1, 0 - ands r0, r6 - lsls r0, 3 - orrs r4, r0 - lsrs r5, 27 - adds r0, r1, 0 - ands r0, r5 - lsls r0, 4 - orrs r4, r0 - lsrs r3, 27 - ands r1, r3 - lsls r1, 5 - orrs r4, r1 - ldr r5, =gDynamicBasePower - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - movs r1, 0x3F - bl __divsi3 - adds r0, 0x1E - strh r0, [r5] - ldr r6, =gBattleStruct - ldr r5, [r6] - lsls r0, r4, 4 - subs r0, r4 - movs r1, 0x3F - bl __divsi3 - adds r0, 0x1 - strb r0, [r5, 0x13] - ldr r1, [r6] - ldrb r0, [r1, 0x13] - cmp r0, 0x8 - bls _080544F0 - adds r0, 0x1 - strb r0, [r1, 0x13] -_080544F0: - ldr r2, [r6] - ldrb r0, [r2, 0x13] - movs r1, 0xC0 - orrs r0, r1 - strb r0, [r2, 0x13] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkC1_hidden_power - - thumb_func_start atkC2_selectnexttarget -atkC2_selectnexttarget: @ 8054524 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, =gBankTarget - movs r1, 0 - strb r1, [r0] - ldr r1, =gNoOfAllBanks - ldrb r1, [r1] - adds r6, r0, 0 - ldr r0, =gBattlescriptCurrInstr - mov r8, r0 - cmp r1, 0 - beq _0805456E - adds r3, r6, 0 - ldr r0, =gBankAttacker - ldrb r5, [r0] - ldr r0, =gBitTable - mov r12, r0 - adds r4, r1, 0 - ldr r7, =gAbsentBankFlags -_0805454C: - ldrb r2, [r3] - cmp r2, r5 - beq _08054562 - ldrb r0, [r7] - ldrb r1, [r6] - lsls r1, 2 - add r1, r12 - ldr r1, [r1] - ands r0, r1 - cmp r0, 0 - beq _0805456E -_08054562: - adds r0, r2, 0x1 - strb r0, [r3] - lsls r0, 24 - lsrs r0, 24 - cmp r0, r4 - bcc _0805454C -_0805456E: - mov r1, r8 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkC2_selectnexttarget - - thumb_func_start atkC3_setfutureattack -atkC3_setfutureattack: @ 8054598 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - ldr r0, =gUnknown_020243D0 - mov r8, r0 - ldr r6, =gBankTarget - ldrb r1, [r6] - adds r0, r1, r0 - ldrb r7, [r0] - cmp r7, 0 - beq _080545DC - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _080546CC - .pool -_080545DC: - adds r0, r1, 0 - bl GetBankIdentity - ldr r4, =gSideAffecting - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - mov r10, r1 - ands r0, r1 - lsls r0, 1 - adds r0, r4 - ldrh r2, [r0] - movs r1, 0x40 - movs r5, 0 - mov r3, sp - strh r5, [r3, 0x10] - orrs r1, r2 - strh r1, [r0] - ldrb r0, [r6] - lsls r0, 1 - mov r1, r8 - adds r1, 0x18 - adds r0, r1 - ldr r1, =gCurrentMove - mov r9, r1 - ldrh r1, [r1] - strh r1, [r0] - mov r0, r8 - adds r0, 0x4 - ldrb r2, [r6] - adds r0, r2 - ldr r5, =gBankAttacker - ldrb r1, [r5] - strb r1, [r0] - ldrb r0, [r6] - add r0, r8 - movs r1, 0x3 - strb r1, [r0] - ldrb r0, [r6] - bl GetBankIdentity - mov r1, r10 - ands r1, r0 - lsls r1, 1 - adds r1, r4 - ldrh r3, [r1] - ldrb r0, [r5] - movs r4, 0x58 - muls r0, r4 - ldr r2, =gBattleMons - adds r0, r2 - ldrb r1, [r6] - muls r1, r4 - adds r1, r2 - mov r4, r9 - ldrh r2, [r4] - str r7, [sp] - str r7, [sp, 0x4] - ldrb r4, [r5] - str r4, [sp, 0x8] - ldrb r4, [r6] - str r4, [sp, 0xC] - bl CalculateBaseDamage - ldrb r1, [r6] - lsls r1, 2 - mov r2, r8 - adds r2, 0x8 - adds r1, r2 - str r0, [r1] - ldr r1, =gProtectStructs - ldrb r0, [r5] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 28 - cmp r0, 0 - bge _0805468C - ldrb r4, [r6] - lsls r4, 2 - adds r4, r2 - ldr r1, [r4] - lsls r0, r1, 4 - subs r0, r1 - movs r1, 0xA - bl __divsi3 - str r0, [r4] -_0805468C: - mov r5, r9 - ldrh r1, [r5] - ldr r0, =0x00000161 - cmp r1, r0 - bne _080546BC - ldr r0, =gBattleCommunication - mov r1, r10 - strb r1, [r0, 0x5] - b _080546C4 - .pool -_080546BC: - ldr r0, =gBattleCommunication - mov r2, sp - ldrb r2, [r2, 0x10] - strb r2, [r0, 0x5] -_080546C4: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_080546CC: - 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 atkC3_setfutureattack - - thumb_func_start atkC4_beat_up -atkC4_beat_up: @ 80546E4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, =gBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - ldr r7, =gEnemyParty - cmp r0, 0 - bne _080546FE - ldr r7, =gPlayerParty -_080546FE: - ldr r2, =gBattleMons - ldr r0, =gBankTarget - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _08054740 - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - b _080548DC - .pool -_08054740: - ldr r6, =gBattleCommunication - ldrb r0, [r6] - mov r8, r0 - cmp r0, 0x5 - bls _0805474C - b _080548A8 -_0805474C: - adds r4, r6, 0 - movs r5, 0x64 -_08054750: - ldrb r0, [r4] - muls r0, r5 - adds r0, r7, r0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _08054794 - ldrb r0, [r6] - muls r0, r5 - adds r0, r7, r0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _08054794 - ldrb r0, [r4] - muls r0, r5 - adds r0, r7, r0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _08054794 - ldrb r0, [r4] - muls r0, r5 - adds r0, r7, r0 - movs r1, 0x37 - bl GetMonData - cmp r0, 0 - beq _080547A4 -_08054794: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - adds r6, r4, 0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bls _08054750 -_080547A4: - ldr r1, =gBattleCommunication - mov r9, r1 - ldrb r2, [r1] - cmp r2, 0x5 - bhi _080548A8 - ldr r1, =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x4 - strb r0, [r1, 0x1] - ldr r6, =gBankAttacker - ldrb r0, [r6] - strb r0, [r1, 0x2] - strb r2, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x9 - str r0, [r1] - ldr r2, =gBattleMoveDamage - mov r8, r2 - ldr r5, =gBaseStats - mov r1, r9 - ldrb r0, [r1] - movs r4, 0x64 - muls r0, r4 - adds r0, r7, r0 - movs r1, 0xB - bl GetMonData - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r3, [r1, 0x1] - mov r2, r8 - str r3, [r2] - ldr r2, =gBattleMoves - ldr r0, =gCurrentMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - muls r0, r3 - mov r1, r8 - str r0, [r1] - mov r2, r9 - ldrb r0, [r2] - muls r0, r4 - adds r0, r7, r0 - movs r1, 0x38 - bl GetMonData - lsls r0, 1 - movs r1, 0x5 - bl __udivsi3 - adds r0, 0x2 - mov r2, r8 - ldr r1, [r2] - muls r0, r1 - str r0, [r2] - ldr r3, =gBattleMons - ldr r1, =gBankTarget - ldrb r2, [r1] - movs r1, 0x58 - muls r1, r2 - adds r1, r3 - ldrh r2, [r1] - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r5 - ldrb r1, [r1, 0x2] - bl __divsi3 - mov r1, r8 - str r0, [r1] - movs r1, 0x32 - bl __divsi3 - adds r2, r0, 0x2 - mov r0, r8 - str r2, [r0] - ldr r1, =gProtectStructs - ldrb r0, [r6] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 28 - cmp r0, 0 - bge _08054870 - lsls r0, r2, 4 - subs r0, r2 - movs r1, 0xA - bl __divsi3 - mov r1, r8 - str r0, [r1] -_08054870: - mov r2, r9 - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - b _080548E2 - .pool -_080548A8: - mov r0, r8 - cmp r0, 0 - beq _080548C8 - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - b _080548DC - .pool -_080548C8: - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x5] - ldrb r0, [r2, 0x6] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x7] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x8] -_080548DC: - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_080548E2: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkC4_beat_up - - thumb_func_start atkC5_hidepreattack -atkC5_hidepreattack: @ 80548F4 - push {lr} - ldr r0, =gCurrentMove - ldrh r1, [r0] - cmp r1, 0x5B - beq _08054934 - cmp r1, 0x5B - bgt _0805490C - cmp r1, 0x13 - beq _08054918 - b _08054960 - .pool -_0805490C: - ldr r0, =0x00000123 - cmp r1, r0 - beq _0805494C - adds r0, 0x31 - cmp r1, r0 - bne _08054960 -_08054918: - ldr r2, =gStatuses3 - ldr r0, =gBankAttacker - ldrb r1, [r0] - lsls r1, 2 - adds r1, r2 - ldr r0, [r1] - movs r2, 0x40 - b _0805495C - .pool -_08054934: - ldr r2, =gStatuses3 - ldr r0, =gBankAttacker - ldrb r1, [r0] - lsls r1, 2 - adds r1, r2 - ldr r0, [r1] - movs r2, 0x80 - b _0805495C - .pool -_0805494C: - ldr r2, =gStatuses3 - ldr r0, =gBankAttacker - ldrb r1, [r0] - lsls r1, 2 - adds r1, r2 - ldr r0, [r1] - movs r2, 0x80 - lsls r2, 11 -_0805495C: - orrs r0, r2 - str r0, [r1] -_08054960: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end atkC5_hidepreattack - - thumb_func_start atkC6_unhidepostattack -atkC6_unhidepostattack: @ 8054978 - push {lr} - ldr r0, =gCurrentMove - ldrh r1, [r0] - cmp r1, 0x5B - beq _080549BC - cmp r1, 0x5B - bgt _08054990 - cmp r1, 0x13 - beq _0805499C - b _080549EA - .pool -_08054990: - ldr r0, =0x00000123 - cmp r1, r0 - beq _080549D8 - adds r0, 0x31 - cmp r1, r0 - bne _080549EA -_0805499C: - ldr r2, =gStatuses3 - ldr r0, =gBankAttacker - ldrb r1, [r0] - lsls r1, 2 - adds r1, r2 - ldr r0, [r1] - movs r2, 0x41 - negs r2, r2 - b _080549E6 - .pool -_080549BC: - ldr r2, =gStatuses3 - ldr r0, =gBankAttacker - ldrb r1, [r0] - lsls r1, 2 - adds r1, r2 - ldr r0, [r1] - movs r2, 0x81 - negs r2, r2 - b _080549E6 - .pool -_080549D8: - ldr r2, =gStatuses3 - ldr r0, =gBankAttacker - ldrb r1, [r0] - lsls r1, 2 - adds r1, r2 - ldr r0, [r1] - ldr r2, =0xfffbffff -_080549E6: - ands r0, r2 - str r0, [r1] -_080549EA: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end atkC6_unhidepostattack - - thumb_func_start atkC7_setminimize -atkC7_setminimize: @ 8054A08 - push {lr} - ldr r0, =gHitMarker - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 18 - ands r0, r1 - cmp r0, 0 - beq _08054A2C - ldr r2, =gStatuses3 - ldr r0, =gBankAttacker - ldrb r1, [r0] - lsls r1, 2 - adds r1, r2 - ldr r0, [r1] - movs r2, 0x80 - lsls r2, 1 - orrs r0, r2 - str r0, [r1] -_08054A2C: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end atkC7_setminimize - - thumb_func_start atkC8_sethail -atkC8_sethail: @ 8054A48 - push {lr} - ldr r3, =gBattleWeather - ldrh r1, [r3] - movs r2, 0x80 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _08054A78 - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gBattleCommunication - movs r0, 0x2 - strb r0, [r1, 0x5] - b _08054A86 - .pool -_08054A78: - strh r2, [r3] - ldr r0, =gBattleCommunication - movs r1, 0x5 - strb r1, [r0, 0x5] - ldr r0, =gUnknown_020243D0 - adds r0, 0x28 - strb r1, [r0] -_08054A86: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end atkC8_sethail - - thumb_func_start atkC9_jumpifattackandspecialattackcannotfall -atkC9_jumpifattackandspecialattackcannotfall: @ 8054AA0 - push {r4,lr} - ldr r2, =gBattleMons - ldr r0, =gBankTarget - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r1, r0, r2 - movs r0, 0x19 - ldrsb r0, [r1, r0] - adds r3, r2, 0 - cmp r0, 0 - bne _08054AF4 - movs r0, 0x1C - ldrsb r0, [r1, r0] - cmp r0, 0 - bne _08054AF4 - ldr r0, =gBattleCommunication - ldrb r0, [r0, 0x6] - cmp r0, 0x1 - beq _08054AF4 - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08054B20 - .pool -_08054AF4: - ldr r4, =gActiveBank - ldr r0, =gBankAttacker - ldrb r0, [r0] - strb r0, [r4] - ldr r2, =gBattleMoveDamage - ldrb r1, [r4] - movs r0, 0x58 - muls r0, r1 - adds r0, r3 - ldrh r0, [r0, 0x28] - str r0, [r2] - ldr r1, =0x00007fff - movs r0, 0 - bl dp01_build_cmdbuf_x18_0_aa_health_bar_update - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_08054B20: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atkC9_jumpifattackandspecialattackcannotfall - - thumb_func_start atkCA_setforcedtarget -atkCA_setforcedtarget: @ 8054B3C - push {r4,r5,lr} - ldr r4, =gBankAttacker - ldrb r0, [r4] - bl GetBankSide - ldr r5, =gSideTimers - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - movs r0, 0x1 - strb r0, [r1, 0x8] - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r0, [r4] - strb r0, [r1, 0x9] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atkCA_setforcedtarget - - thumb_func_start atkCB_setcharge -atkCB_setcharge: @ 8054B88 - push {r4,lr} - ldr r0, =gStatuses3 - ldr r3, =gBankAttacker - ldrb r1, [r3] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - movs r2, 0x80 - lsls r2, 2 - orrs r0, r2 - str r0, [r1] - ldr r4, =gDisableStructs - ldrb r1, [r3] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r2, [r0, 0x12] - movs r1, 0x10 - negs r1, r1 - ands r1, r2 - movs r2, 0x2 - orrs r1, r2 - strb r1, [r0, 0x12] - ldrb r1, [r3] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r2, [r0, 0x12] - movs r1, 0xF - ands r1, r2 - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0, 0x12] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atkCB_setcharge - - thumb_func_start atkCC_callterrainattack -atkCC_callterrainattack: @ 8054BEC - push {r4,lr} - ldr r2, =gHitMarker - ldr r0, [r2] - ldr r1, =0xfffffbff - ands r0, r1 - str r0, [r2] - ldr r4, =gCurrentMove - ldr r1, =gUnknown_0831C414 - ldr r0, =gUnknown_02022FF0 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r4] - ldrh r0, [r4] - movs r1, 0 - bl GetMoveTarget - ldr r1, =gBankTarget - strb r0, [r1] - ldr r3, =gUnknown_082D86A8 - ldr r2, =gBattleMoves - ldrh r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - bl b_movescr_stack_push - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atkCC_callterrainattack - - thumb_func_start atkCD_cureifburnedparalysedorpoisoned -atkCD_cureifburnedparalysedorpoisoned: @ 8054C60 - push {r4-r6,lr} - sub sp, 0x4 - ldr r1, =gBattleMons - ldr r3, =gBankAttacker - ldrb r0, [r3] - movs r6, 0x58 - muls r0, r6 - adds r5, r1, 0 - adds r5, 0x4C - adds r2, r0, r5 - ldr r0, [r2] - movs r1, 0xD8 - ands r0, r1 - cmp r0, 0 - beq _08054CBC - movs r0, 0 - str r0, [r2] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - ldr r4, =gActiveBank - ldrb r0, [r3] - strb r0, [r4] - ldrb r0, [r4] - muls r0, r6 - adds r0, r5 - str r0, [sp] - movs r0, 0 - movs r1, 0x28 - movs r2, 0 - movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - b _08054CD6 - .pool -_08054CBC: - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_08054CD6: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end atkCD_cureifburnedparalysedorpoisoned - - thumb_func_start atkCE_settorment -atkCE_settorment: @ 8054CE4 - push {lr} - ldr r1, =gBattleMons - ldr r0, =gBankTarget - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r1, [r0] - movs r2, 0x80 - lsls r2, 24 - cmp r1, 0 - bge _08054D28 - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08054D34 - .pool -_08054D28: - orrs r1, r2 - str r1, [r0] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_08054D34: - pop {r0} - bx r0 - .pool - thumb_func_end atkCE_settorment - - thumb_func_start atkCF_jumpifnodamage -atkCF_jumpifnodamage: @ 8054D3C - push {lr} - ldr r2, =gProtectStructs - ldr r0, =gBankAttacker - ldrb r0, [r0] - lsls r1, r0, 4 - adds r0, r2, 0x4 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _08054D5C - adds r0, r2, 0 - adds r0, 0x8 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - beq _08054D74 -_08054D5C: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _08054D8E - .pool -_08054D74: - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_08054D8E: - pop {r0} - bx r0 - .pool - thumb_func_end atkCF_jumpifnodamage - - thumb_func_start atkD0_settaunt -atkD0_settaunt: @ 8054D98 - push {r4,lr} - ldr r4, =gDisableStructs - ldr r3, =gBankTarget - ldrb r0, [r3] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r2, r1, r4 - ldrb r1, [r2, 0x13] - lsls r0, r1, 28 - cmp r0, 0 - bne _08054DE8 - movs r0, 0x10 - negs r0, r0 - ands r0, r1 - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2, 0x13] - ldrb r1, [r3] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r2, [r0, 0x13] - movs r1, 0xF - ands r1, r2 - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0, 0x13] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _08054E02 - .pool -_08054DE8: - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_08054E02: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atkD0_settaunt - - thumb_func_start atkD1_set_helpinghand -atkD1_set_helpinghand: @ 8054E0C - push {r4,lr} - ldr r4, =gBankAttacker - ldrb r0, [r4] - bl GetBankIdentity - movs r1, 0x2 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl GetBankByPlayerAI - ldr r3, =gBankTarget - strb r0, [r3] - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08054E90 - ldr r0, =gAbsentBankFlags - ldrb r1, [r0] - ldr r2, =gBitTable - ldrb r3, [r3] - lsls r0, r3, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _08054E90 - ldr r1, =gProtectStructs - ldrb r0, [r4] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 28 - cmp r0, 0 - blt _08054E90 - lsls r0, r3, 4 - adds r2, r0, r1 - ldrb r1, [r2] - lsls r0, r1, 28 - cmp r0, 0 - blt _08054E90 - movs r0, 0x8 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _08054EAA - .pool -_08054E90: - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_08054EAA: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atkD1_set_helpinghand - - thumb_func_start atkD2_swap_items -atkD2_swap_items: @ 8054EB4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r4, =gBattleTypeFlags - ldr r0, [r4] - movs r1, 0x80 - lsls r1, 19 - ands r0, r1 - cmp r0, 0 - bne _08054F9A - ldr r0, =gBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08054EE8 - ldr r0, [r4] - ldr r1, =0x0a3f0902 - ands r0, r1 - cmp r0, 0 - beq _08054F9A -_08054EE8: - ldr r6, =gBankAttacker - ldrb r0, [r6] - bl GetBankSide - lsls r0, 24 - lsrs r4, r0, 24 - ldr r7, =gBankTarget - ldrb r0, [r7] - bl GetBankSide - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - ldr r1, =0x0a3f0902 - ands r0, r1 - cmp r0, 0 - bne _08054F46 - ldr r0, =gUnknown_020243D0 - adds r2, r0, 0 - adds r2, 0x29 - adds r0, r4, r2 - ldrb r1, [r0] - ldr r4, =gBitTable - ldr r3, =gBattlePartyID - ldrb r0, [r6] - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r4 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _08054F9A - adds r0, r5, r2 - ldrb r1, [r0] - ldrb r0, [r7] - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r4 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _08054F9A -_08054F46: - ldr r0, =gBattleMons - mov r8, r0 - ldr r1, =gBankAttacker - ldrb r4, [r1] - movs r5, 0x58 - adds r0, r4, 0 - muls r0, r5 - add r0, r8 - mov r9, r0 - ldrh r3, [r0, 0x2E] - adds r1, r3, 0 - cmp r1, 0 - bne _08054F6E - ldr r0, =gBankTarget - ldrb r0, [r0] - muls r0, r5 - add r0, r8 - ldrh r0, [r0, 0x2E] - cmp r0, 0 - beq _08054F9A -_08054F6E: - cmp r1, 0xAF - beq _08054F9A - ldr r7, =gBankTarget - ldrb r0, [r7] - muls r0, r5 - mov r2, r8 - adds r1, r0, r2 - ldrh r2, [r1, 0x2E] - cmp r2, 0xAF - beq _08054F9A - adds r0, r3, 0 - subs r0, 0x79 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xB - bls _08054F9A - adds r0, r2, 0 - subs r0, 0x79 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xB - bhi _08054FDC -_08054F9A: - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08055132 - .pool -_08054FDC: - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x3C - bne _08055010 - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB63F - str r0, [r1] - ldr r1, =gLastUsedAbility - ldrb r0, [r7] - muls r0, r5 - add r0, r8 - adds r0, 0x20 - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - ldrb r1, [r1] - bl RecordAbilityBattle - b _08055132 - .pool -_08055010: - ldr r3, =gBattleStruct - mov r10, r3 - lsls r0, r4, 1 - adds r0, 0xD0 - ldr r1, [r3] - adds r6, r1, r0 - mov r0, r9 - ldrh r0, [r0, 0x2E] - mov r9, r0 - strh r2, [r6] - ldr r1, =gBankAttacker - ldrb r0, [r1] - muls r0, r5 - add r0, r8 - movs r1, 0 - strh r1, [r0, 0x2E] - ldrb r0, [r7] - muls r0, r5 - add r0, r8 - mov r2, r9 - strh r2, [r0, 0x2E] - ldr r4, =gActiveBank - ldr r3, =gBankAttacker - ldrb r0, [r3] - strb r0, [r4] - str r6, [sp] - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x2 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldr r1, =gBankAttacker - ldrb r0, [r1] - bl dp01_battle_side_mark_buffer_for_execution - ldrb r0, [r7] - strb r0, [r4] - ldrb r0, [r7] - muls r0, r5 - mov r1, r8 - adds r1, 0x2E - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x2 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r7] - bl dp01_battle_side_mark_buffer_for_execution - ldrb r0, [r7] - mov r2, r10 - ldr r1, [r2] - lsls r0, 1 - adds r0, r1 - adds r0, 0xC8 - movs r3, 0 - strb r3, [r0] - ldrb r0, [r7] - ldr r1, [r2] - lsls r0, 1 - adds r0, r1 - adds r0, 0xC9 - strb r3, [r0] - ldr r1, =gBankAttacker - ldrb r0, [r1] - ldr r1, [r2] - lsls r0, 1 - adds r0, r1 - adds r0, 0xC8 - strb r3, [r0] - ldr r2, =gBankAttacker - ldrb r0, [r2] - mov r3, r10 - ldr r1, [r3] - lsls r0, 1 - adds r0, r1 - adds r0, 0xC9 - movs r1, 0 - strb r1, [r0] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - ldr r1, =gBattleTextBuff1 - movs r3, 0xFD - strb r3, [r1] - movs r2, 0xA - strb r2, [r1, 0x1] - ldrh r0, [r6] - strb r0, [r1, 0x2] - ldrh r0, [r6] - lsrs r0, 8 - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r1, =gBattleTextBuff2 - strb r3, [r1] - strb r2, [r1, 0x1] - mov r2, r9 - strb r2, [r1, 0x2] - mov r3, r9 - lsrs r0, r3, 8 - strb r0, [r1, 0x3] - movs r0, 0x1 - negs r0, r0 - strb r0, [r1, 0x4] - cmp r3, 0 - beq _08055118 - ldrh r0, [r6] - cmp r0, 0 - beq _0805512C - ldr r1, =gBattleCommunication - movs r0, 0x2 - b _08055130 - .pool -_08055118: - ldrh r0, [r6] - cmp r0, 0 - beq _0805512C - ldr r0, =gBattleCommunication - movs r1, 0 - strb r1, [r0, 0x5] - b _08055132 - .pool -_0805512C: - ldr r1, =gBattleCommunication - movs r0, 0x1 -_08055130: - strb r0, [r1, 0x5] -_08055132: - 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 atkD2_swap_items - - thumb_func_start atkD3_copy_ability -atkD3_copy_ability: @ 8055148 - push {r4,lr} - ldr r3, =gBattleMons - ldr r4, =gBankTarget - ldrb r0, [r4] - movs r2, 0x58 - muls r0, r2 - adds r0, r3 - adds r0, 0x20 - ldrb r1, [r0] - adds r0, r1, 0 - cmp r0, 0 - beq _0805519C - cmp r0, 0x19 - beq _0805519C - ldr r0, =gBankAttacker - ldrb r0, [r0] - muls r0, r2 - adds r0, r3 - adds r0, 0x20 - strb r1, [r0] - ldr r1, =gLastUsedAbility - ldrb r0, [r4] - muls r0, r2 - adds r0, r3 - adds r0, 0x20 - ldrb r0, [r0] - strb r0, [r1] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _080551B6 - .pool -_0805519C: - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_080551B6: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atkD3_copy_ability - - thumb_func_start atkD4_wish_effect -atkD4_wish_effect: @ 80551C0 - push {r4-r7,lr} - ldr r7, =gBattlescriptCurrInstr - ldr r2, [r7] - ldrb r3, [r2, 0x1] - cmp r3, 0 - beq _080551D8 - cmp r3, 0x1 - beq _08055210 - b _0805528C - .pool -_080551D8: - ldr r1, =gUnknown_020243D0 - ldr r4, =gBankAttacker - adds r0, r1, 0 - adds r0, 0x20 - ldrb r5, [r4] - adds r3, r0, r5 - ldrb r0, [r3] - cmp r0, 0 - bne _0805525C - movs r0, 0x2 - strb r0, [r3] - ldrb r0, [r4] - adds r1, 0x24 - adds r1, r0, r1 - ldr r2, =gBattlePartyID - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - strb r0, [r1] - ldr r0, [r7] - adds r0, 0x6 - b _0805528A - .pool -_08055210: - ldr r1, =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x4 - strb r0, [r1, 0x1] - ldr r4, =gBankTarget - ldrb r0, [r4] - strb r0, [r1, 0x2] - ldr r0, =gUnknown_020243D0 - adds r0, 0x24 - ldrb r5, [r4] - adds r0, r5 - ldrb r0, [r0] - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r1, =gBattleMoveDamage - ldr r6, =gBattleMons - ldrb r0, [r4] - movs r5, 0x58 - muls r0, r5 - adds r0, r6 - ldrh r0, [r0, 0x2C] - lsrs r0, 1 - str r0, [r1] - cmp r0, 0 - bne _08055248 - str r3, [r1] -_08055248: - ldr r0, [r1] - negs r0, r0 - str r0, [r1] - ldrb r0, [r4] - muls r0, r5 - adds r0, r6 - ldrh r1, [r0, 0x28] - ldrh r0, [r0, 0x2C] - cmp r1, r0 - bne _08055288 -_0805525C: - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r7] - b _0805528C - .pool -_08055288: - adds r0, r2, 0x6 -_0805528A: - str r0, [r7] -_0805528C: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end atkD4_wish_effect - - thumb_func_start atkD5_setroots -atkD5_setroots: @ 8055294 - push {lr} - ldr r1, =gStatuses3 - ldr r0, =gBankAttacker - ldrb r0, [r0] - lsls r0, 2 - adds r2, r0, r1 - ldr r1, [r2] - movs r3, 0x80 - lsls r3, 3 - adds r0, r1, 0 - ands r0, r3 - cmp r0, 0 - beq _080552D8 - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _080552E4 - .pool -_080552D8: - orrs r1, r3 - str r1, [r2] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_080552E4: - pop {r0} - bx r0 - .pool - thumb_func_end atkD5_setroots - - thumb_func_start atkD6_doubledamagedealtifdamaged -atkD6_doubledamagedealtifdamaged: @ 80552EC - push {lr} - ldr r3, =gProtectStructs - ldr r0, =gBankAttacker - ldrb r0, [r0] - lsls r2, r0, 4 - adds r0, r3, 0x4 - adds r0, r2, r0 - ldr r0, [r0] - cmp r0, 0 - beq _0805530C - adds r0, r2, r3 - ldr r1, =gBankTarget - ldrb r0, [r0, 0xC] - ldrb r1, [r1] - cmp r0, r1 - beq _08055324 -_0805530C: - adds r0, r3, 0 - adds r0, 0x8 - adds r0, r2, r0 - ldr r0, [r0] - cmp r0, 0 - beq _0805532A - adds r0, r2, r3 - ldr r1, =gBankTarget - ldrb r0, [r0, 0xD] - ldrb r1, [r1] - cmp r0, r1 - bne _0805532A -_08055324: - ldr r1, =gBattleScripting - movs r0, 0x2 - strb r0, [r1, 0xE] -_0805532A: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end atkD6_doubledamagedealtifdamaged - - thumb_func_start atkD7_setyawn -atkD7_setyawn: @ 805534C - push {r4,lr} - ldr r1, =gStatuses3 - ldr r0, =gBankTarget - ldrb r3, [r0] - lsls r0, r3, 2 - adds r4, r0, r1 - ldr r2, [r4] - movs r0, 0xC0 - lsls r0, 5 - ands r0, r2 - cmp r0, 0 - bne _08055374 - ldr r1, =gBattleMons - movs r0, 0x58 - muls r0, r3 - adds r1, 0x4C - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080553A0 -_08055374: - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _080553B0 - .pool -_080553A0: - movs r0, 0x80 - lsls r0, 5 - orrs r2, r0 - str r2, [r4] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_080553B0: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atkD7_setyawn - - thumb_func_start atkD8_setdamagetohealthdifference -atkD8_setdamagetohealthdifference: @ 80553BC - push {lr} - ldr r2, =gBattleMons - ldr r0, =gBankTarget - ldrb r0, [r0] - movs r1, 0x58 - muls r0, r1 - adds r3, r0, r2 - ldr r0, =gBankAttacker - ldrb r0, [r0] - muls r0, r1 - adds r1, r0, r2 - ldrh r0, [r3, 0x28] - ldrh r2, [r1, 0x28] - cmp r0, r2 - bhi _08055408 - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0805541A - .pool -_08055408: - ldr r2, =gBattleMoveDamage - ldrh r0, [r3, 0x28] - ldrh r1, [r1, 0x28] - subs r0, r1 - str r0, [r2] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_0805541A: - pop {r0} - bx r0 - .pool - thumb_func_end atkD8_setdamagetohealthdifference - - thumb_func_start atkD9_scaledamagebyhealthratio -atkD9_scaledamagebyhealthratio: @ 8055428 - push {r4,lr} - ldr r4, =gDynamicBasePower - ldrh r0, [r4] - cmp r0, 0 - bne _08055464 - ldr r2, =gBattleMoves - ldr r0, =gCurrentMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r3, [r0, 0x1] - ldr r2, =gBattleMons - ldr r0, =gBankAttacker - ldrb r1, [r0] - movs r0, 0x58 - muls r1, r0 - adds r1, r2 - ldrh r0, [r1, 0x28] - muls r0, r3 - ldrh r1, [r1, 0x2C] - bl __divsi3 - strh r0, [r4] - lsls r0, 16 - cmp r0, 0 - bne _08055464 - movs r0, 0x1 - strh r0, [r4] -_08055464: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atkD9_scaledamagebyhealthratio - - thumb_func_start atkDA_abilityswap -atkDA_abilityswap: @ 805548C - push {r4-r6,lr} - ldr r5, =gBattleMons - ldr r0, =gBankAttacker - ldrb r0, [r0] - movs r4, 0x58 - muls r0, r4 - adds r0, r5 - adds r2, r0, 0 - adds r2, 0x20 - ldrb r1, [r2] - cmp r1, 0 - bne _080554B4 - ldr r0, =gBankTarget - ldrb r0, [r0] - muls r0, r4 - adds r0, r5 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0 - beq _080554D4 -_080554B4: - cmp r1, 0x19 - beq _080554D4 - ldr r6, =gBankTarget - ldrb r0, [r6] - muls r0, r4 - adds r0, r5 - adds r0, 0x20 - ldrb r3, [r0] - cmp r3, 0x19 - beq _080554D4 - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _08055504 -_080554D4: - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0805551A - .pool -_08055504: - ldrb r1, [r2] - strb r3, [r2] - ldrb r0, [r6] - muls r0, r4 - adds r0, r5 - adds r0, 0x20 - strb r1, [r0] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_0805551A: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end atkDA_abilityswap - - thumb_func_start atkDB_imprisoneffect -atkDB_imprisoneffect: @ 8055524 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r1, =gStatuses3 - ldr r4, =gBankAttacker - ldrb r2, [r4] - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 6 - ands r0, r1 - cmp r0, 0 - beq _08055574 - b _080555F6 - .pool -_0805554C: - ldr r0, =gStatuses3 - mov r2, r9 - ldrb r1, [r2] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - movs r2, 0x80 - lsls r2, 6 - orrs r0, r2 - str r0, [r1] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _080555EE - .pool -_08055574: - adds r0, r2, 0 - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldrb r0, [r4] - bl sub_803F548 - movs r6, 0 - b _080555E6 -_0805558A: - adds r0, r6, 0 - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - cmp r8, r0 - beq _080555E0 - movs r4, 0 - ldr r7, =gBankAttacker - mov r9, r7 - ldr r0, =gBattleMons - mov r12, r0 - mov r1, r9 - ldrb r0, [r1] - mov r2, r12 - adds r2, 0xC - movs r1, 0x58 - muls r0, r1 - adds r3, r0, r2 - adds r5, r6, 0 - muls r5, r1 -_080555B4: - movs r2, 0 - ldrh r1, [r3] - mov r0, r12 - adds r0, 0xC - adds r0, r5, r0 -_080555BE: - ldrh r7, [r0] - cmp r1, r7 - bne _080555C8 - cmp r1, 0 - bne _080555D0 -_080555C8: - adds r0, 0x2 - adds r2, 0x1 - cmp r2, 0x3 - ble _080555BE -_080555D0: - cmp r2, 0x4 - bne _080555DC - adds r3, 0x2 - adds r4, 0x1 - cmp r4, 0x3 - ble _080555B4 -_080555DC: - cmp r4, 0x4 - bne _0805554C -_080555E0: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_080555E6: - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r6, r0 - bcc _0805558A -_080555EE: - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r6, r0 - bne _08055610 -_080555F6: - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_08055610: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkDB_imprisoneffect - - thumb_func_start atkDC_setgrudge -atkDC_setgrudge: @ 805562C - push {lr} - ldr r1, =gStatuses3 - ldr r0, =gBankAttacker - ldrb r0, [r0] - lsls r0, 2 - adds r2, r0, r1 - ldr r1, [r2] - movs r3, 0x80 - lsls r3, 7 - adds r0, r1, 0 - ands r0, r3 - cmp r0, 0 - beq _08055670 - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0805567C - .pool -_08055670: - orrs r1, r3 - str r1, [r2] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_0805567C: - pop {r0} - bx r0 - .pool - thumb_func_end atkDC_setgrudge - - thumb_func_start atkDD_weightdamagecalculation -atkDD_weightdamagecalculation: @ 8055684 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r5, 0 - ldr r2, =gUnknown_0831C428 - ldrh r0, [r2] - ldr r1, =0x0000ffff - cmp r0, r1 - beq _080556FC - adds r6, r2, 0 - ldr r0, =gBattleMons - mov r8, r0 - adds r7, r1, 0 - adds r4, r6, 0 -_080556A0: - ldr r0, =gBankTarget - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - add r0, r8 - ldrh r0, [r0] - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - bl GetPokedexHeightWeight - ldrh r1, [r4] - lsls r0, 16 - lsrs r0, 16 - cmp r1, r0 - bhi _080556CE - adds r4, 0x4 - adds r5, 0x2 - ldrh r0, [r4] - cmp r0, r7 - bne _080556A0 -_080556CE: - lsls r0, r5, 1 - adds r0, r6 - ldrh r1, [r0] - ldr r0, =0x0000ffff - cmp r1, r0 - beq _080556FC - ldr r0, =gDynamicBasePower - adds r1, r5, 0x1 - lsls r1, 1 - adds r1, r6 - ldrh r1, [r1] - strh r1, [r0] - b _08055702 - .pool -_080556FC: - ldr r1, =gDynamicBasePower - movs r0, 0x78 - strh r0, [r1] -_08055702: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkDD_weightdamagecalculation - - thumb_func_start atkDE_asistattackselect -atkDE_asistattackselect: @ 805571C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - movs r0, 0 - mov r10, r0 - ldr r0, =gBattleStruct - ldr r0, [r0] - adds r0, 0x18 - str r0, [sp, 0x4] - ldr r0, =gBankAttacker - ldrb r0, [r0] - bl GetBankIdentity - movs r1, 0x1 - ands r1, r0 - ldr r0, =gPlayerParty - str r0, [sp] - cmp r1, 0 - beq _0805574C - ldr r1, =gEnemyParty - str r1, [sp] -_0805574C: - movs r2, 0 -_0805574E: - ldr r1, =gBattlePartyID - ldr r0, =gBankAttacker - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - adds r1, r2, 0x1 - str r1, [sp, 0x8] - ldrh r0, [r0] - cmp r2, r0 - beq _080557F4 - movs r0, 0x64 - adds r6, r2, 0 - muls r6, r0 - ldr r0, [sp] - adds r4, r0, r6 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _080557F4 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _080557F4 - movs r5, 0 - ldr r1, =0x0000ffff - mov r8, r1 - mov r9, r6 - mov r1, r10 - lsls r0, r1, 1 - ldr r1, [sp, 0x4] - adds r6, r0, r1 -_08055798: - movs r7, 0 - adds r1, r5, 0 - adds r1, 0xD - ldr r0, [sp] - add r0, r9 - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - bl sub_8052F84 - lsls r0, 24 - adds r1, r5, 0x1 - cmp r0, 0 - bne _080557EE - ldr r0, =gUnknown_0831C3E0 - ldrh r2, [r0] - adds r3, r0, 0 - cmp r2, r8 - beq _080557E2 - cmp r4, r2 - beq _080557D8 - ldr r5, =0x0000ffff - adds r2, r3, 0 -_080557CA: - adds r2, 0x2 - adds r7, 0x1 - ldrh r0, [r2] - cmp r0, r5 - beq _080557E2 - cmp r4, r0 - bne _080557CA -_080557D8: - lsls r0, r7, 1 - adds r0, r3 - ldrh r0, [r0] - cmp r0, r8 - bne _080557EE -_080557E2: - cmp r4, 0 - beq _080557EE - strh r4, [r6] - adds r6, 0x2 - movs r0, 0x1 - add r10, r0 -_080557EE: - adds r5, r1, 0 - cmp r5, 0x3 - ble _08055798 -_080557F4: - ldr r2, [sp, 0x8] - cmp r2, 0x5 - ble _0805574E - mov r1, r10 - cmp r1, 0 - beq _0805586C - ldr r2, =gHitMarker - ldr r0, [r2] - ldr r1, =0xfffffbff - ands r0, r1 - str r0, [r2] - ldr r4, =gRandomMove - bl Random - movs r1, 0xFF - ands r1, r0 - mov r0, r10 - muls r0, r1 - asrs r0, 8 - lsls r0, 1 - ldr r1, [sp, 0x4] - adds r0, r1 - ldrh r0, [r0] - strh r0, [r4] - ldrh r0, [r4] - movs r1, 0 - bl GetMoveTarget - ldr r1, =gBankTarget - strb r0, [r1] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _08055886 - .pool -_0805586C: - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_08055886: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkDE_asistattackselect - - thumb_func_start atkDF_setmagiccoat -atkDF_setmagiccoat: @ 805589C - push {lr} - ldr r1, =gBankTarget - ldr r3, =gBankAttacker - ldrb r0, [r3] - strb r0, [r1] - ldr r2, =gSpecialStatuses - ldrb r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0] - ldr r0, =gUnknown_02024082 - ldrb r1, [r0] - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - subs r0, 0x1 - cmp r1, r0 - bne _080558FC - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08055914 - .pool -_080558FC: - ldr r0, =gProtectStructs - ldrb r1, [r3] - lsls r1, 4 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x10 - orrs r0, r2 - strb r0, [r1] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_08055914: - pop {r0} - bx r0 - .pool - thumb_func_end atkDF_setmagiccoat - - thumb_func_start atkE0_setstealstatchange -atkE0_setstealstatchange: @ 8055920 - push {lr} - ldr r2, =gSpecialStatuses - ldr r3, =gBankAttacker - ldrb r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0] - ldr r0, =gUnknown_02024082 - ldrb r1, [r0] - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - subs r0, 0x1 - cmp r1, r0 - bne _08055978 - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0805598E - .pool -_08055978: - ldr r0, =gProtectStructs - ldrb r1, [r3] - lsls r1, 4 - adds r1, r0 - ldrb r0, [r1] - orrs r0, r2 - strb r0, [r1] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_0805598E: - pop {r0} - bx r0 - .pool - thumb_func_end atkE0_setstealstatchange - - thumb_func_start atkE1_intimidate_string_loader -atkE1_intimidate_string_loader: @ 805599C - push {r4-r6,lr} - ldr r4, =gBattleScripting - ldr r0, =gBattleStruct - ldr r0, [r0] - adds r0, 0xD8 - ldrb r0, [r0] - strb r0, [r4, 0x17] - ldrb r0, [r4, 0x17] - bl GetBankSide - lsls r0, 24 - lsrs r5, r0, 24 - ldr r2, =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r2] - movs r0, 0x9 - strb r0, [r2, 0x1] - ldr r3, =gBattleMons - ldrb r1, [r4, 0x17] - movs r0, 0x58 - muls r0, r1 - adds r0, r3 - adds r0, 0x20 - ldrb r0, [r0] - strb r0, [r2, 0x2] - movs r0, 0xFF - strb r0, [r2, 0x3] - ldr r2, =gBankTarget - ldr r1, =gNoOfAllBanks - ldrb r0, [r2] - ldrb r1, [r1] - cmp r0, r1 - bcs _08055A22 - adds r4, r2, 0 - ldr r6, =gBitTable -_080559E2: - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, r5 - beq _08055A04 - ldr r0, =gAbsentBankFlags - ldrb r1, [r0] - ldrb r0, [r4] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - ands r1, r0 - ldr r2, =gNoOfAllBanks - cmp r1, 0 - beq _08055A18 -_08055A04: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r1, =gNoOfAllBanks - lsls r0, 24 - lsrs r0, 24 - adds r2, r1, 0 - ldrb r1, [r2] - cmp r0, r1 - bcc _080559E2 -_08055A18: - ldr r0, =gBankTarget - ldrb r0, [r0] - ldrb r2, [r2] - cmp r0, r2 - bcc _08055A64 -_08055A22: - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08055A6C - .pool -_08055A64: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_08055A6C: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end atkE1_intimidate_string_loader - - thumb_func_start atkE2_switchout_abilities -atkE2_switchout_abilities: @ 8055A78 - push {r4-r6,lr} - sub sp, 0x4 - ldr r5, =gBattlescriptCurrInstr - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r4, =gActiveBank - strb r0, [r4] - ldr r3, =gBattleMons - ldrb r0, [r4] - movs r6, 0x58 - adds r1, r0, 0 - muls r1, r6 - adds r0, r1, r3 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x1E - bne _08055AD2 - adds r3, 0x4C - adds r1, r3 - movs r0, 0 - str r0, [r1] - ldr r2, =gBitTable - ldrb r1, [r4] - ldr r0, =gBattleStruct - ldr r0, [r0] - adds r0, r1, r0 - adds r0, 0x58 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r2 - ldrb r2, [r0] - adds r0, r1, 0 - muls r0, r6 - adds r0, r3 - str r0, [sp] - movs r0, 0 - movs r1, 0x28 - movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_08055AD2: - ldr r0, [r5] - adds r0, 0x2 - str r0, [r5] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end atkE2_switchout_abilities - - thumb_func_start atkE3_jumpiffainted -atkE3_jumpiffainted: @ 8055AF4 - push {r4,lr} - ldr r4, =gBattlescriptCurrInstr - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r1, =gActiveBank - strb r0, [r1] - ldr r2, =gBattleMons - ldrb r1, [r1] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _08055B3C - ldr r2, [r4] - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _08055B42 - .pool -_08055B3C: - ldr r0, [r4] - adds r0, 0x6 - str r0, [r4] -_08055B42: - pop {r4} - pop {r0} - bx r0 - thumb_func_end atkE3_jumpiffainted - - thumb_func_start atkE4_getsecretpowereffect -atkE4_getsecretpowereffect: @ 8055B48 - push {lr} - ldr r0, =gUnknown_02022FF0 - ldrb r0, [r0] - cmp r0, 0x7 - bhi _08055BE4 - lsls r0, 2 - ldr r1, =_08055B64 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08055B64: - .4byte _08055B84 - .4byte _08055B90 - .4byte _08055B9C - .4byte _08055BA8 - .4byte _08055BB4 - .4byte _08055BC0 - .4byte _08055BCC - .4byte _08055BD8 -_08055B84: - ldr r1, =gBattleCommunication - movs r0, 0x2 - b _08055BE8 - .pool -_08055B90: - ldr r1, =gBattleCommunication - movs r0, 0x1 - b _08055BE8 - .pool -_08055B9C: - ldr r1, =gBattleCommunication - movs r0, 0x1B - b _08055BE8 - .pool -_08055BA8: - ldr r1, =gBattleCommunication - movs r0, 0x17 - b _08055BE8 - .pool -_08055BB4: - ldr r1, =gBattleCommunication - movs r0, 0x16 - b _08055BE8 - .pool -_08055BC0: - ldr r1, =gBattleCommunication - movs r0, 0x18 - b _08055BE8 - .pool -_08055BCC: - ldr r1, =gBattleCommunication - movs r0, 0x7 - b _08055BE8 - .pool -_08055BD8: - ldr r1, =gBattleCommunication - movs r0, 0x8 - b _08055BE8 - .pool -_08055BE4: - ldr r1, =gBattleCommunication - movs r0, 0x5 -_08055BE8: - strb r0, [r1, 0x3] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end atkE4_getsecretpowereffect - - thumb_func_start atkE5_pickup -atkE5_pickup: @ 8055C00 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - bl InBattlePike - lsls r0, 24 - cmp r0, 0 - beq _08055C18 - b _08055DD8 -_08055C18: - bl InBattlePyramid - lsls r0, 24 - cmp r0, 0 - beq _08055CC4 - movs r6, 0 - mov r7, sp - ldr r0, =gBaseStats - mov r8, r0 -_08055C2A: - movs r0, 0x64 - adds r4, r6, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0 - movs r1, 0xC - bl GetMonData - strh r0, [r7] - adds r0, r4, 0 - movs r1, 0x2E - bl GetMonData - cmp r0, 0 - beq _08055C6C - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - add r0, r8 - ldrb r0, [r0, 0x17] - b _08055C76 - .pool -_08055C6C: - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - add r0, r8 - ldrb r0, [r0, 0x16] -_08055C76: - cmp r0, 0x35 - bne _08055CB6 - cmp r5, 0 - beq _08055CB6 - movs r0, 0xCE - lsls r0, 1 - cmp r5, r0 - beq _08055CB6 - ldrh r0, [r7] - cmp r0, 0 - bne _08055CB6 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - bne _08055CB6 - bl CalculateBattlePyramidPickupItemId - strh r0, [r7] - movs r0, 0x64 - muls r0, r6 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xC - mov r2, sp - bl SetMonData -_08055CB6: - adds r6, 0x1 - cmp r6, 0x5 - ble _08055C2A - b _08055DD8 - .pool -_08055CC4: - movs r6, 0 - movs r1, 0x64 - mov r8, r1 - ldr r7, =gPlayerParty - mov r10, sp -_08055CCE: - mov r4, r8 - muls r4, r6 - adds r4, r7 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0 - movs r1, 0xC - bl GetMonData - mov r1, r10 - strh r0, [r1] - adds r0, r4, 0 - movs r1, 0x2E - bl GetMonData - cmp r0, 0 - beq _08055D30 - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - ldr r1, =gBaseStats - adds r0, r1 - ldrb r0, [r0, 0x17] - b _08055D3C - .pool -_08055D10: - mov r0, r8 - muls r0, r6 - adds r0, r7 - adds r2, r1, 0 - adds r2, 0x63 - subs r2, r4 - lsls r2, 1 - ldr r1, =gRarePickupItems - adds r2, r1 - movs r1, 0xC - bl SetMonData - b _08055DD0 - .pool -_08055D30: - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - ldr r1, =gBaseStats - adds r0, r1 - ldrb r0, [r0, 0x16] -_08055D3C: - adds r1, r6, 0x1 - mov r9, r1 - cmp r0, 0x35 - bne _08055DD0 - cmp r5, 0 - beq _08055DD0 - movs r0, 0xCE - lsls r0, 1 - cmp r5, r0 - beq _08055DD0 - mov r1, r10 - ldrh r0, [r1] - cmp r0, 0 - bne _08055DD0 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - bne _08055DD0 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r4, r0, 16 - mov r0, r8 - muls r0, r6 - adds r0, r7 - movs r1, 0x38 - bl GetMonData - subs r0, 0x1 - movs r1, 0xA - bl __udivsi3 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x9 - bls _08055D9C - movs r1, 0x9 -_08055D9C: - movs r2, 0 - b _08055DAE - .pool -_08055DA4: - adds r0, r4, 0 - subs r0, 0x62 - cmp r0, 0x1 - bls _08055D10 - adds r2, 0x1 -_08055DAE: - cmp r2, 0x8 - bgt _08055DD0 - ldr r0, =gPickupProbabilities - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, r4 - ble _08055DA4 - mov r0, r8 - muls r0, r6 - adds r0, r7 - adds r2, r1, r2 - lsls r2, 1 - ldr r1, =gPickupItems - adds r2, r1 - movs r1, 0xC - bl SetMonData -_08055DD0: - mov r6, r9 - cmp r6, 0x5 - bgt _08055DD8 - b _08055CCE -_08055DD8: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - 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 atkE5_pickup - - thumb_func_start atkE6_castform_change_animation -atkE6_castform_change_animation: @ 8055DFC - push {r4,lr} - ldr r4, =gActiveBank - ldr r0, =gBattleScripting - ldrb r0, [r0, 0x17] - strb r0, [r4] - ldr r1, =gBattleMons - ldrb r2, [r4] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - ldr r3, =gBattleStruct - cmp r0, 0 - beq _08055E2C - ldr r0, [r3] - adds r0, 0x7F - ldrb r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] -_08055E2C: - ldr r0, [r3] - adds r0, 0x7F - ldrb r2, [r0] - movs r0, 0 - movs r1, 0 - bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atkE6_castform_change_animation - - thumb_func_start atkE7_castform_data_change -atkE7_castform_data_change: @ 8055E64 - push {r4,lr} - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - ldr r0, =gBattleScripting - ldrb r0, [r0, 0x17] - bl castform_switch - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _08055E8E - ldr r0, =gUnknown_082DB4A9 - bl b_push_move_exec - ldr r0, =gBattleStruct - ldr r0, [r0] - adds r0, 0x7F - subs r1, r4, 0x1 - strb r1, [r0] -_08055E8E: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atkE7_castform_data_change - - thumb_func_start atkE8_settypebasedhalvers -atkE8_settypebasedhalvers: @ 8055EA4 - push {r4,lr} - movs r4, 0 - ldr r2, =gBattleMoves - ldr r0, =gCurrentMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0xC9 - bne _08055EF4 - ldr r1, =gStatuses3 - ldr r0, =gBankAttacker - ldrb r0, [r0] - lsls r0, 2 - adds r2, r0, r1 - ldr r1, [r2] - movs r3, 0x80 - lsls r3, 9 - adds r0, r1, 0 - ands r0, r3 - cmp r0, 0 - bne _08055F18 - orrs r1, r3 - str r1, [r2] - ldr r0, =gBattleCommunication - strb r4, [r0, 0x5] - b _08055F1C - .pool -_08055EF4: - ldr r1, =gStatuses3 - ldr r0, =gBankAttacker - ldrb r0, [r0] - lsls r0, 2 - adds r2, r0, r1 - ldr r1, [r2] - movs r3, 0x80 - lsls r3, 10 - adds r0, r1, 0 - ands r0, r3 - cmp r0, 0 - bne _08055F18 - orrs r1, r3 - str r1, [r2] - ldr r1, =gBattleCommunication - movs r0, 0x1 - strb r0, [r1, 0x5] - movs r4, 0x1 -_08055F18: - cmp r4, 0 - beq _08055F38 -_08055F1C: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _08055F52 - .pool -_08055F38: - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_08055F52: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atkE8_settypebasedhalvers - - thumb_func_start atkE9_setweatherballtype -atkE9_setweatherballtype: @ 8055F5C - push {lr} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0xD - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _08055FFC - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0x4D - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - cmp r0, 0 - bne _08055FFC - ldr r2, =gBattleWeather - ldrb r0, [r2] - cmp r0, 0 - beq _08055F9A - ldr r1, =gBattleScripting - movs r0, 0x2 - strb r0, [r1, 0xE] -_08055F9A: - ldrh r1, [r2] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - beq _08055FB8 - ldr r0, =gBattleStruct - ldr r1, [r0] - movs r0, 0x8B - b _08055FFA - .pool -_08055FB8: - movs r0, 0x18 - ands r0, r1 - cmp r0, 0 - beq _08055FCC - ldr r0, =gBattleStruct - ldr r1, [r0] - movs r0, 0x85 - b _08055FFA - .pool -_08055FCC: - movs r0, 0x60 - ands r0, r1 - cmp r0, 0 - beq _08055FE0 - ldr r0, =gBattleStruct - ldr r1, [r0] - movs r0, 0x8A - b _08055FFA - .pool -_08055FE0: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08055FF4 - ldr r0, =gBattleStruct - ldr r1, [r0] - movs r0, 0x8F - b _08055FFA - .pool -_08055FF4: - ldr r0, =gBattleStruct - ldr r1, [r0] - movs r0, 0x80 -_08055FFA: - strb r0, [r1, 0x13] -_08055FFC: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - add sp, 0x4 - pop {r0} - bx r0 - .pool - thumb_func_end atkE9_setweatherballtype - - thumb_func_start atkEA_recycleitem -atkEA_recycleitem: @ 8056014 - push {r4-r7,lr} - sub sp, 0x4 - ldr r7, =gActiveBank - ldr r0, =gBankAttacker - ldrb r0, [r0] - strb r0, [r7] - ldr r1, =gBattleStruct - ldrb r2, [r7] - lsls r0, r2, 1 - adds r0, 0xB8 - ldr r1, [r1] - adds r6, r1, r0 - ldrh r5, [r6] - cmp r5, 0 - beq _08056094 - ldr r4, =gBattleMons - movs r3, 0x58 - adds r0, r2, 0 - muls r0, r3 - adds r0, r4 - ldrh r0, [r0, 0x2E] - cmp r0, 0 - bne _08056094 - ldr r1, =gLastUsedItem - strh r5, [r1] - strh r0, [r6] - ldrb r0, [r7] - muls r0, r3 - adds r0, r4 - ldrh r1, [r1] - strh r1, [r0, 0x2E] - ldrb r0, [r7] - muls r0, r3 - adds r1, r4, 0 - adds r1, 0x2E - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x2 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r7] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _080560AE - .pool -_08056094: - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_080560AE: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkEA_recycleitem - - thumb_func_start atkEB_settypetoterrain -atkEB_settypetoterrain: @ 80560BC - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, =gBattleMons - mov r8, r0 - ldr r7, =gBankAttacker - ldrb r0, [r7] - movs r6, 0x58 - muls r0, r6 - mov r1, r8 - adds r3, r0, r1 - movs r0, 0x21 - adds r0, r3 - mov r12, r0 - ldr r5, =sTerrainToType - ldr r4, =gUnknown_02022FF0 - ldrb r0, [r4] - adds r0, r5 - ldrb r2, [r0] - mov r1, r12 - ldrb r0, [r1] - adds r1, r2, 0 - cmp r0, r1 - beq _08056144 - adds r0, r3, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, r1 - beq _08056144 - mov r0, r12 - strb r2, [r0] - ldrb r0, [r7] - adds r1, r0, 0 - muls r1, r6 - add r1, r8 - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - adds r1, 0x22 - strb r0, [r1] - ldr r1, =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x3 - strb r0, [r1, 0x1] - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - strb r0, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _0805615E - .pool -_08056144: - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_0805615E: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkEB_settypetoterrain - - thumb_func_start atkEC_pursuit_sth -atkEC_pursuit_sth: @ 805616C - push {r4-r6,lr} - ldr r5, =gBankAttacker - ldrb r0, [r5] - bl GetBankIdentity - movs r1, 0x2 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl GetBankByPlayerAI - ldr r4, =gActiveBank - strb r0, [r4] - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r6, 0x1 - ands r0, r6 - cmp r0, 0 - beq _0805620C - ldr r0, =gAbsentBankFlags - ldrb r1, [r0] - ldr r2, =gBitTable - ldrb r3, [r4] - lsls r0, r3, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _0805620C - ldr r0, =gUnknown_0202421C - adds r0, r3, r0 - ldrb r0, [r0] - cmp r0, 0 - bne _0805620C - ldr r1, =gUnknown_02024274 - lsls r0, r3, 1 - adds r0, r1 - ldrh r2, [r0] - cmp r2, 0xE4 - bne _0805620C - ldr r0, =gUnknown_0202407A - adds r0, r3, r0 - movs r1, 0xB - strb r1, [r0] - ldr r0, =gCurrentMove - strh r2, [r0] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - ldr r0, =gBattleScripting - strb r6, [r0, 0x18] - ldrb r1, [r5] - adds r0, 0x20 - strb r1, [r0] - ldrb r0, [r4] - strb r0, [r5] - b _08056226 - .pool -_0805620C: - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_08056226: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end atkEC_pursuit_sth - - thumb_func_start atkED_802B4B4 -atkED_802B4B4: @ 8056230 - push {r4,lr} - ldr r1, =gUnknown_0202420E - ldr r3, =gBankAttacker - ldrb r0, [r3] - strb r0, [r1] - ldr r2, =gBankTarget - lsls r0, 24 - lsrs r0, 24 - adds r4, r1, 0 - ldrb r1, [r2] - cmp r0, r1 - bne _08056264 - ldr r1, =gBattleScripting - ldrb r0, [r1, 0x17] - strb r0, [r2] - strb r0, [r3] - b _0805626A - .pool -_08056264: - ldr r1, =gBattleScripting - ldrb r0, [r1, 0x17] - strb r0, [r2] -_0805626A: - ldrb r0, [r4] - strb r0, [r1, 0x17] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atkED_802B4B4 - - thumb_func_start atkEE_removelightscreenreflect -atkEE_removelightscreenreflect: @ 8056284 - push {r4,lr} - ldr r0, =gBankAttacker - ldrb r0, [r0] - bl GetBankSide - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gSideTimers - lsls r3, r0, 1 - adds r0, r3, r0 - lsls r0, 2 - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, 0 - bne _080562AC - ldrb r1, [r4, 0x2] - cmp r1, 0 - beq _080562E4 -_080562AC: - ldr r2, =gSideAffecting - adds r2, r3, r2 - ldrh r1, [r2] - ldr r0, =0x0000fffe - ands r0, r1 - movs r3, 0 - ldr r1, =0x0000fffd - ands r0, r1 - strh r0, [r2] - strb r3, [r4] - strb r3, [r4, 0x2] - ldr r1, =gBattleScripting - movs r0, 0x1 - strb r0, [r1, 0x18] - strb r0, [r1, 0x19] - b _080562EA - .pool -_080562E4: - ldr r0, =gBattleScripting - strb r1, [r0, 0x18] - strb r1, [r0, 0x19] -_080562EA: - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atkEE_removelightscreenreflect - - thumb_func_start atkEF_pokeball_catch_calculation -atkEF_pokeball_catch_calculation: @ 8056300 - push {r4-r6,lr} - movs r4, 0 - ldr r0, =gBattleExecBuffer - ldr r0, [r0] - cmp r0, 0 - beq _0805630E - b _08056696 -_0805630E: - ldr r5, =gActiveBank - ldr r0, =gBankAttacker - ldrb r0, [r0] - strb r0, [r5] - ldr r6, =gBankTarget - movs r1, 0x1 - eors r0, r1 - strb r0, [r6] - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0805635C - movs r0, 0 - movs r1, 0x5 - bl dp01_build_cmdbuf_x0D_a - ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DBE02 - b _08056694 - .pool -_0805635C: - movs r0, 0x80 - lsls r0, 2 - ands r1, r0 - cmp r1, 0 - beq _08056384 - movs r0, 0 - movs r1, 0x4 - bl dp01_build_cmdbuf_x0D_a - ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DBDCA - b _08056694 - .pool -_08056384: - ldr r0, =gLastUsedItem - ldrh r0, [r0] - cmp r0, 0x5 - bne _080563B0 - ldr r0, =gBattleStruct - ldr r0, [r0] - adds r0, 0x7C - ldrb r0, [r0] - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 8 - subs r0, r1 - movs r1, 0x64 - bl __divsi3 - lsls r0, 24 - lsrs r5, r0, 24 - b _080563C8 - .pool -_080563B0: - ldr r3, =gBaseStats - ldr r2, =gBattleMons - ldrb r1, [r6] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r5, [r0, 0x8] -_080563C8: - ldr r2, =gLastUsedItem - ldrh r0, [r2] - cmp r0, 0x5 - bhi _080563D2 - b _080564C8 -_080563D2: - subs r0, 0x6 - cmp r0, 0x6 - bls _080563DA - b _080564D2 -_080563DA: - lsls r0, 2 - ldr r1, =_080563F4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080563F4: - .4byte _08056410 - .4byte _08056440 - .4byte _08056452 - .4byte _08056480 - .4byte _080564B0 - .4byte _08056472 - .4byte _08056472 -_08056410: - ldr r2, =gBattleMons - ldr r0, =gBankTarget - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r1, r0, 0 - adds r1, 0x21 - ldrb r1, [r1] - cmp r1, 0xB - beq _080564A4 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0xB - beq _080564A4 - cmp r1, 0x6 - beq _080564A4 - cmp r0, 0x6 - beq _080564A4 - b _08056472 - .pool -_08056440: - bl sav1_map_get_light_level - lsls r0, 24 - lsrs r0, 24 - movs r4, 0xA - cmp r0, 0x5 - bne _080564D2 - movs r4, 0x23 - b _080564D2 -_08056452: - ldr r2, =gBattleMons - ldr r0, =gBankTarget - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x2A - ldrb r1, [r0] - cmp r1, 0x27 - bhi _08056472 - movs r0, 0x28 - subs r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x9 - bhi _080564D2 -_08056472: - movs r4, 0xA - b _080564D2 - .pool -_08056480: - ldr r2, =gBattleMons - ldr r0, =gBankTarget - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r0, [r0] - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - bl GetSetPokedexFlag - lsls r0, 24 - movs r4, 0xA - cmp r0, 0 - beq _080564D2 -_080564A4: - movs r4, 0x1E - b _080564D2 - .pool -_080564B0: - ldr r0, =gBattleResults - ldrb r0, [r0, 0x13] - adds r0, 0xA - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x28 - bls _080564D2 - movs r4, 0x28 - b _080564D2 - .pool -_080564C8: - ldr r1, =sBallCatchBonuses - ldrh r0, [r2] - subs r0, 0x2 - adds r0, r1 - ldrb r4, [r0] -_080564D2: - adds r0, r5, 0 - muls r0, r4 - movs r1, 0xA - bl __divsi3 - ldr r5, =gBattleMons - ldr r1, =gBankTarget - ldrb r2, [r1] - movs r1, 0x58 - adds r4, r2, 0 - muls r4, r1 - adds r3, r4, r5 - ldrh r2, [r3, 0x2C] - lsls r1, r2, 1 - adds r1, r2 - ldrh r2, [r3, 0x28] - lsls r2, 1 - subs r2, r1, r2 - muls r0, r2 - bl __divsi3 - adds r6, r0, 0 - adds r5, 0x4C - adds r4, r5 - ldr r4, [r4] - movs r0, 0x27 - ands r0, r4 - cmp r0, 0 - beq _0805650E - lsls r6, 1 -_0805650E: - movs r0, 0xD8 - ands r4, r0 - cmp r4, 0 - beq _08056522 - lsls r0, r6, 4 - subs r0, r6 - movs r1, 0xA - bl __udivsi3 - adds r6, r0, 0 -_08056522: - ldr r1, =gLastUsedItem - ldrh r0, [r1] - cmp r0, 0x5 - beq _08056564 - cmp r0, 0x1 - bne _08056550 - ldr r0, =gBattleResults - ldrb r1, [r0, 0x5] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r0, 0x5] - b _08056564 - .pool -_08056550: - ldr r0, =gBattleResults - ldrh r1, [r1] - adds r0, r1 - adds r1, r0, 0 - adds r1, 0x34 - ldrb r0, [r1] - cmp r0, 0xFE - bhi _08056564 - adds r0, 0x1 - strb r0, [r1] -_08056564: - cmp r6, 0xFE - bls _080565C8 - movs r0, 0 - movs r1, 0x4 - bl dp01_build_cmdbuf_x0D_a - ldr r0, =gActiveBank - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DBD84 - str r0, [r1] - ldr r1, =gBattlePartyID - ldr r0, =gBankTarget - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - ldr r2, =gLastUsedItem - movs r1, 0x26 - bl SetMonData - bl CalculatePlayerPartyCount - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x6 - beq _08056656 - b _08056680 - .pool -_080565C8: - movs r0, 0xFF - lsls r0, 16 - adds r1, r6, 0 - bl __udivsi3 - bl Sqrt - lsls r0, 16 - lsrs r0, 16 - bl Sqrt - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, =0x000ffff0 - adds r1, r6, 0 - bl __udivsi3 - adds r6, r0, 0 - movs r4, 0 - b _080565FA - .pool -_080565F4: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_080565FA: - cmp r4, 0x3 - bhi _0805660A - bl Random - lsls r0, 16 - lsrs r0, 16 - cmp r0, r6 - bcc _080565F4 -_0805660A: - ldr r5, =gLastUsedItem - ldrh r0, [r5] - cmp r0, 0x1 - bne _08056614 - movs r4, 0x4 -_08056614: - movs r0, 0 - adds r1, r4, 0 - bl dp01_build_cmdbuf_x0D_a - ldr r0, =gActiveBank - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - cmp r4, 0x4 - bne _0805668C - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DBD84 - str r0, [r1] - ldr r1, =gBattlePartyID - ldr r0, =gBankTarget - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x26 - adds r2, r5, 0 - bl SetMonData - bl CalculatePlayerPartyCount - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x6 - bne _08056680 -_08056656: - ldr r1, =gBattleCommunication - movs r0, 0 - strb r0, [r1, 0x5] - b _08056696 - .pool -_08056680: - ldr r1, =gBattleCommunication - movs r0, 0x1 - strb r0, [r1, 0x5] - b _08056696 - .pool -_0805668C: - ldr r0, =gBattleCommunication - strb r4, [r0, 0x5] - ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DBDD4 -_08056694: - str r0, [r1] -_08056696: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end atkEF_pokeball_catch_calculation - - thumb_func_start atkF0_copy_caught_poke -atkF0_copy_caught_poke: @ 80566A8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, =gBattlePartyID - mov r9, r0 - ldr r5, =gBankAttacker - ldrb r0, [r5] - movs r6, 0x1 - eors r0, r6 - lsls r0, 1 - add r0, r9 - ldrh r0, [r0] - movs r7, 0x64 - muls r0, r7 - ldr r1, =gEnemyParty - mov r8, r1 - add r0, r8 - bl GiveMonToPlayer - lsls r0, 24 - cmp r0, 0 - beq _08056792 - bl sub_813B21C - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _08056734 - ldr r0, =gBattleCommunication - strb r1, [r0, 0x5] - ldr r4, =gStringVar1 - ldr r0, =0x00004036 - bl VarGet - lsls r0, 24 - lsrs r0, 24 - bl sav3_get_box_name - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldrb r0, [r5] - eors r0, r6 - lsls r0, 1 - add r0, r9 - ldrh r0, [r0] - muls r0, r7 - add r0, r8 - ldr r2, =gStringVar2 - movs r1, 0x2 - bl GetMonData - b _0805677E - .pool -_08056734: - ldr r4, =gStringVar1 - ldr r0, =0x00004036 - bl VarGet - lsls r0, 24 - lsrs r0, 24 - bl sav3_get_box_name - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldrb r0, [r5] - eors r0, r6 - lsls r0, 1 - add r0, r9 - ldrh r0, [r0] - muls r0, r7 - add r0, r8 - ldr r2, =gStringVar2 - movs r1, 0x2 - bl GetMonData - ldr r4, =gStringVar3 - bl get_unknown_box_id - lsls r0, 24 - lsrs r0, 24 - bl sav3_get_box_name - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldr r1, =gBattleCommunication - movs r0, 0x2 - strb r0, [r1, 0x5] -_0805677E: - ldr r0, =0x000008ab - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _08056792 - ldr r1, =gBattleCommunication - ldrb r0, [r1, 0x5] - adds r0, 0x1 - strb r0, [r1, 0x5] -_08056792: - ldr r0, =gBattlePartyID - mov r10, r0 - ldr r1, =gBankAttacker - mov r9, r1 - ldrb r0, [r1] - movs r4, 0x1 - eors r0, r4 - lsls r0, 1 - add r0, r10 - ldrh r0, [r0] - movs r1, 0x64 - mov r8, r1 - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - ldr r6, =gEnemyParty - adds r0, r6 - movs r1, 0xB - movs r2, 0 - bl GetMonData - ldr r5, =gBattleResults - strh r0, [r5, 0x28] - mov r1, r9 - ldrb r0, [r1] - eors r0, r4 - lsls r0, 1 - add r0, r10 - ldrh r0, [r0] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r6 - adds r2, r5, 0 - adds r2, 0x2A - movs r1, 0x2 - bl GetMonData - mov r1, r9 - ldrb r0, [r1] - eors r4, r0 - lsls r4, 1 - add r4, r10 - ldrh r0, [r4] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r6 - movs r1, 0x26 - movs r2, 0 - bl GetMonData - movs r1, 0xF - ands r0, r1 - lsls r0, 2 - ldrb r2, [r5, 0x5] - movs r1, 0x3D - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0x5] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkF0_copy_caught_poke - - thumb_func_start atkF1_setpoke_as_caught -atkF1_setpoke_as_caught: @ 8056850 - push {r4,r5,lr} - ldr r4, =gEnemyParty - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - adds r0, r5, 0 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - bl GetSetPokedexFlag - lsls r0, 24 - cmp r0, 0 - beq _080568A8 - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _080568C2 - .pool -_080568A8: - adds r0, r5, 0 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - adds r2, r4, 0 - bl HandleSetPokedexFlag - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_080568C2: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atkF1_setpoke_as_caught - - thumb_func_start atkF2_display_dex_info -atkF2_display_dex_info: @ 80568CC - push {r4,lr} - sub sp, 0x4 - ldr r0, =gEnemyParty - movs r1, 0xB - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, =gBattleCommunication - ldrb r0, [r0] - cmp r0, 0x5 - bls _080568E8 - b _08056A2C -_080568E8: - lsls r0, 2 - ldr r1, =_08056900 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08056900: - .4byte _08056918 - .4byte _0805692A - .4byte _08056978 - .4byte _080569C8 - .4byte _080569E0 - .4byte _08056A18 -_08056918: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _08056A06 -_0805692A: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08056938 - b _08056A2C -_08056938: - bl FreeAllWindowBuffers - adds r0, r4, 0 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - ldr r3, =gBattleMons - ldr r1, =gBankTarget - ldrb r2, [r1] - movs r1, 0x58 - muls r2, r1 - adds r1, r3, 0 - adds r1, 0x54 - adds r1, r2, r1 - ldr r1, [r1] - adds r3, 0x48 - adds r2, r3 - ldr r2, [r2] - bl sub_80BFDF4 - ldr r1, =gBattleCommunication - strb r0, [r1, 0x1] - b _08056A08 - .pool -_08056978: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08056A2C - ldr r0, =gMain - ldr r1, [r0, 0x4] - ldr r0, =sub_8038420 - cmp r1, r0 - bne _08056A2C - ldr r2, =gTasks - ldr r4, =gBattleCommunication - ldrb r1, [r4, 0x1] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r0, [r0, 0x4] - cmp r0, 0 - bne _08056A2C - ldr r0, =vblank_cb_08078BB4 - bl SetVBlankCallback - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _08056A2C - .pool -_080569C8: - bl c2_berry_program_update_menu - bl sub_8035AA4 - ldr r1, =gUnknown_02022E20 - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r1] - b _08056A06 - .pool -_080569E0: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _08056A2C - ldr r0, =0x0000ffff - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - movs r0, 0 - bl ShowBg - movs r0, 0x3 - bl ShowBg -_08056A06: - ldr r1, =gBattleCommunication -_08056A08: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08056A2C - .pool -_08056A18: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08056A2C - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] -_08056A2C: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atkF2_display_dex_info - - thumb_func_start sub_8056A3C -sub_8056A3C: @ 8056A3C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - ldr r4, [sp, 0x40] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp, 0x10] - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x1C] - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0x14] - lsls r4, 24 - lsrs r4, 24 - mov r10, r4 - movs r1, 0 - add r0, sp, 0xC - strh r1, [r0] - ldr r6, [sp, 0x10] - cmp r6, r3 - ble _08056A76 - b _08056B62 -_08056A76: - mov r4, r8 - adds r0, r6, 0x1 - str r0, [sp, 0x18] - ldr r2, [sp, 0x1C] - cmp r4, r2 - bgt _08056B58 - add r5, sp, 0xC - lsls r7, r6, 24 - mov r9, r7 -_08056A88: - ldr r0, [sp, 0x10] - cmp r6, r0 - bne _08056AB4 - cmp r4, r8 - bne _08056A9C - ldr r0, =0x00001022 - b _08056AFE - .pool -_08056A9C: - ldr r2, [sp, 0x1C] - cmp r4, r2 - bne _08056AAC - ldr r0, =0x00001024 - b _08056AFE - .pool -_08056AAC: - ldr r0, =0x00001023 - b _08056AFE - .pool -_08056AB4: - ldr r7, [sp, 0x14] - cmp r6, r7 - bne _08056AE0 - cmp r4, r8 - bne _08056AC8 - ldr r0, =0x00001028 - b _08056AFE - .pool -_08056AC8: - ldr r0, [sp, 0x1C] - cmp r4, r0 - bne _08056AD8 - ldr r0, =0x0000102a - b _08056AFE - .pool -_08056AD8: - ldr r0, =0x00001029 - b _08056AFE - .pool -_08056AE0: - cmp r4, r8 - bne _08056AEC - ldr r0, =0x00001025 - b _08056AFE - .pool -_08056AEC: - ldr r2, [sp, 0x1C] - cmp r4, r2 - bne _08056AFC - ldr r0, =0x00001027 - b _08056AFE - .pool -_08056AFC: - ldr r0, =0x00001026 -_08056AFE: - strh r0, [r5] - movs r1, 0x1 - mov r0, r10 - ands r0, r1 - cmp r0, 0 - beq _08056B0E - movs r0, 0 - strh r0, [r5] -_08056B0E: - movs r0, 0x80 - mov r7, r10 - ands r0, r7 - cmp r0, 0 - beq _08056B38 - lsls r2, r4, 24 - lsrs r2, 24 - str r1, [sp] - str r1, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0x1 - add r1, sp, 0xC - mov r7, r9 - lsrs r3, r7, 24 - bl CopyToBgTilemapBufferRect_ChangePalette - b _08056B50 - .pool -_08056B38: - lsls r2, r4, 24 - lsrs r2, 24 - str r1, [sp] - str r1, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0 - add r1, sp, 0xC - mov r7, r9 - lsrs r3, r7, 24 - bl CopyToBgTilemapBufferRect_ChangePalette -_08056B50: - adds r4, 0x1 - ldr r0, [sp, 0x1C] - cmp r4, r0 - ble _08056A88 -_08056B58: - ldr r6, [sp, 0x18] - ldr r2, [sp, 0x14] - cmp r6, r2 - bgt _08056B62 - b _08056A76 -_08056B62: - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8056A3C - - thumb_func_start sub_8056B74 -sub_8056B74: @ 8056B74 - push {lr} - sub sp, 0x10 - adds r3, r0, 0 - add r0, sp, 0xC - movs r2, 0x1 - strh r2, [r0] - movs r1, 0x2 - strh r1, [r0, 0x2] - lsls r3, 25 - movs r0, 0x90 - lsls r0, 20 - adds r3, r0 - lsrs r3, 24 - str r2, [sp] - str r1, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0 - add r1, sp, 0xC - movs r2, 0x19 - bl CopyToBgTilemapBufferRect_ChangePalette - movs r0, 0 - bl CopyBgTilemapBufferToVram - add sp, 0x10 - pop {r0} - bx r0 - thumb_func_end sub_8056B74 - - thumb_func_start sub_8056BAC -sub_8056BAC: @ 8056BAC - push {lr} - sub sp, 0x10 - adds r3, r0, 0 - add r0, sp, 0xC - ldr r1, =0x00001016 - strh r1, [r0] - strh r1, [r0, 0x2] - lsls r3, 25 - movs r0, 0x90 - lsls r0, 20 - adds r3, r0 - lsrs r3, 24 - movs r0, 0x1 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0 - add r1, sp, 0xC - movs r2, 0x19 - bl CopyToBgTilemapBufferRect_ChangePalette - movs r0, 0 - bl CopyBgTilemapBufferToVram - add sp, 0x10 - pop {r0} - bx r0 - .pool - thumb_func_end sub_8056BAC - - thumb_func_start atkF3_nickname_caught_poke -atkF3_nickname_caught_poke: @ 8056BEC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - ldr r0, =gBattleCommunication - ldrb r1, [r0] - adds r4, r0, 0 - cmp r1, 0x4 - bls _08056C04 - b _08056E62 -_08056C04: - lsls r0, r1, 2 - ldr r1, =_08056C18 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08056C18: - .4byte _08056C2C - .4byte _08056C60 - .4byte _08056CFC - .4byte _08056DD4 - .4byte _08056E2C -_08056C2C: - movs r4, 0 - str r4, [sp] - movs r0, 0x18 - movs r1, 0x8 - movs r2, 0x1D - movs r3, 0xD - bl sub_8056A3C - ldr r0, =gUnknown_085CCABB - movs r1, 0xC - bl battle_show_message_maybe - ldr r1, =gBattleCommunication - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - strb r4, [r1, 0x1] - movs r0, 0 - bl sub_8056B74 - b _08056E62 - .pool -_08056C60: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08056C86 - ldrb r0, [r4, 0x1] - cmp r0, 0 - beq _08056C86 - movs r0, 0x5 - bl PlaySE - ldrb r0, [r4, 0x1] - bl sub_8056BAC - movs r0, 0 - strb r0, [r4, 0x1] - bl sub_8056B74 -_08056C86: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08056CAE - ldr r4, =gBattleCommunication - ldrb r0, [r4, 0x1] - cmp r0, 0 - bne _08056CAE - movs r0, 0x5 - bl PlaySE - ldrb r0, [r4, 0x1] - bl sub_8056BAC - movs r0, 0x1 - strb r0, [r4, 0x1] - bl sub_8056B74 -_08056CAE: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08056CE0 - movs r0, 0x5 - bl PlaySE - ldr r1, =gBattleCommunication - ldrb r0, [r1, 0x1] - cmp r0, 0 - bne _08056CF2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r0, 0x3 - bl BeginFastPaletteFade - b _08056E62 - .pool -_08056CE0: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08056CEA - b _08056E62 -_08056CEA: - movs r0, 0x5 - bl PlaySE - ldr r1, =gBattleCommunication -_08056CF2: - movs r0, 0x4 - strb r0, [r1] - b _08056E62 - .pool -_08056CFC: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08056D0A - b _08056E62 -_08056D0A: - ldr r7, =gBattlePartyID - ldr r0, =gBankAttacker - mov r10, r0 - ldrb r0, [r0] - movs r4, 0x1 - eors r0, r4 - lsls r0, 1 - adds r0, r7 - ldrh r0, [r0] - movs r1, 0x64 - mov r9, r1 - mov r2, r9 - muls r2, r0 - adds r0, r2, 0 - ldr r1, =gEnemyParty - mov r8, r1 - add r0, r8 - ldr r1, =gBattleStruct - ldr r2, [r1] - adds r2, 0x6D - movs r1, 0x2 - bl GetMonData - bl FreeAllWindowBuffers - mov r2, r10 - ldrb r0, [r2] - eors r0, r4 - lsls r0, 1 - adds r0, r7 - ldrh r0, [r0] - mov r1, r9 - muls r1, r0 - adds r0, r1, 0 - add r0, r8 - movs r1, 0xB - bl GetMonData - adds r6, r0, 0 - lsls r6, 16 - lsrs r6, 16 - mov r2, r10 - ldrb r0, [r2] - eors r0, r4 - lsls r0, 1 - adds r0, r7 - ldrh r0, [r0] - mov r1, r9 - muls r1, r0 - adds r0, r1, 0 - add r0, r8 - bl GetMonGender - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - mov r2, r10 - ldrb r0, [r2] - eors r4, r0 - lsls r4, 1 - adds r4, r7 - ldrh r0, [r4] - mov r1, r9 - muls r1, r0 - adds r0, r1, 0 - add r0, r8 - movs r1, 0 - movs r2, 0 - bl GetMonData - ldr r2, =gBattleStruct - ldr r1, [r2] - adds r1, 0x6D - str r0, [sp] - ldr r0, =sub_8038420 - str r0, [sp, 0x4] - movs r0, 0x2 - adds r2, r6, 0 - adds r3, r5, 0 - bl do_choose_name_or_words_screen - ldr r1, =gBattleCommunication - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08056E62 - .pool -_08056DD4: - ldr r0, =gMain - ldr r1, [r0, 0x4] - ldr r0, =sub_8038420 - cmp r1, r0 - bne _08056E62 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08056E62 - ldr r2, =gBattlePartyID - ldr r0, =gBankAttacker - ldrb r1, [r0] - movs r0, 0x1 - eors r0, r1 - lsls r0, 1 - adds r0, r2 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - ldr r1, =gBattleStruct - ldr r2, [r1] - adds r2, 0x6D - movs r1, 0x2 - bl SetMonData - b _08056E48 - .pool -_08056E2C: - bl CalculatePlayerPartyCount - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x6 - bne _08056E48 - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _08056E62 - .pool -_08056E48: - ldr r3, =gBattlescriptCurrInstr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_08056E62: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkF3_nickname_caught_poke - - thumb_func_start atkF4_802BEF0 -atkF4_802BEF0: @ 8056E78 - ldr r2, =gBattleMons - ldr r0, =gBankAttacker - ldrb r1, [r0] - movs r0, 0x58 - muls r1, r0 - adds r1, r2 - ldr r0, =gBattleMoveDamage - ldr r2, [r0] - ldrh r0, [r1, 0x28] - subs r0, r2 - strh r0, [r1, 0x28] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .pool - thumb_func_end atkF4_802BEF0 - - thumb_func_start atkF5_removeattackerstatus1 -atkF5_removeattackerstatus1: @ 8056EA8 - ldr r1, =gBattleMons - ldr r0, =gBankAttacker - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x4C - adds r0, r1 - movs r1, 0 - str r1, [r0] - ldr r1, =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .pool - thumb_func_end atkF5_removeattackerstatus1 - - thumb_func_start atkF6_802BF48 -atkF6_802BF48: @ 8056ED0 - ldr r1, =gFightStateTracker - movs r0, 0xC - strb r0, [r1] - bx lr - .pool - thumb_func_end atkF6_802BF48 - - thumb_func_start atkF7_802BF54 -atkF7_802BF54: @ 8056EDC - ldr r1, =gFightStateTracker - movs r0, 0xC - strb r0, [r1] - ldr r1, =gUnknown_02024082 - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - strb r0, [r1] - bx lr - .pool - thumb_func_end atkF7_802BF54 - - thumb_func_start sub_8056EF8 -sub_8056EF8: @ 8056EF8 - push {r4,r5,lr} - ldr r5, =gBattlescriptCurrInstr - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl GetBankByPlayerAI - ldr r4, =gActiveBank - strb r0, [r4] - movs r0, 0 - bl dp01_build_cmdbuf_x09_9_9_9 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r5] - adds r0, 0x2 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8056EF8 - - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_5.s b/asm/battle_5.s index 064171dd8..bb5b406e5 100644 --- a/asm/battle_5.s +++ b/asm/battle_5.s @@ -183,8 +183,8 @@ _080570D0: .pool thumb_func_end sub_8057028 - thumb_func_start sub_80570F4 -sub_80570F4: @ 80570F4 + thumb_func_start AdjustFriendshipOnBattleFaint +AdjustFriendshipOnBattleFaint: @ 80570F4 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 @@ -195,11 +195,11 @@ sub_80570F4: @ 80570F4 cmp r0, 0 beq _08057140 movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x3 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r3, r0, 24 ldr r2, =gBattleMons @@ -220,7 +220,7 @@ sub_80570F4: @ 80570F4 .pool _08057140: movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r4, r0, 24 _0805714A: @@ -285,7 +285,7 @@ _080571CE: pop {r0} bx r0 .pool - thumb_func_end sub_80570F4 + thumb_func_end AdjustFriendshipOnBattleFaint thumb_func_start sub_80571DC sub_80571DC: @ 80571DC @@ -398,7 +398,7 @@ _0805729A: cmp r0, 0 beq _08057372 mov r0, r9 - bl sub_8050650 + bl UproarWakeUpCheck lsls r0, 24 cmp r0, 0 beq _080572FC @@ -414,12 +414,12 @@ _0805729A: ldr r1, =0xf7ffffff ands r0, r1 str r0, [r2] - bl b_movescr_stack_push_cursor + bl BattleScriptPushCursor movs r0, 0x1 mov r2, r10 strb r0, [r2, 0x5] ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB220 + ldr r0, =BattleScript_MoveUsedWokeUp str r0, [r1] movs r0, 0x2 mov r8, r0 @@ -461,7 +461,7 @@ _08057322: cmp r4, 0 beq _08057354 ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB213 + ldr r0, =BattleScript_MoveUsedIsAsleep str r0, [r1] movs r1, 0x2 mov r8, r1 @@ -474,11 +474,11 @@ _08057354: ldr r1, =0xf7ffffff ands r0, r1 str r0, [r2] - bl b_movescr_stack_push_cursor + bl BattleScriptPushCursor ldr r0, =gBattleCommunication strb r4, [r0, 0x5] ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB220 + ldr r0, =BattleScript_MoveUsedWokeUp str r0, [r1] movs r2, 0x2 mov r8, r2 @@ -513,7 +513,7 @@ _08057390: cmp r5, 0 beq _080573D4 ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB26A + ldr r0, =BattleScript_MoveUsedIsFrozen str r0, [r1] b _080573EC .pool @@ -523,9 +523,9 @@ _080573D4: negs r1, r1 ands r0, r1 str r0, [r4] - bl b_movescr_stack_push_cursor + bl BattleScriptPushCursor ldr r1, =gBattlescriptCurrInstr - ldr r0, =gUnknown_082DB277 + ldr r0, =BattleScript_MoveUsedUnfroze str r0, [r1] mov r0, r10 strb r5, [r0, 0x5] @@ -562,9 +562,9 @@ _08057406: movs r1, 0x28 movs r2, 0 movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs + bl EmitSetMonData ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution _08057430: mov r0, r8 add sp, 0x4 diff --git a/asm/battle_7.s b/asm/battle_7.s index fd8c3b4a5..011559819 100644 --- a/asm/battle_7.s +++ b/asm/battle_7.s @@ -428,7 +428,7 @@ _0805D470: movs r0, 0x1 ands r0, r1 eors r0, r2 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 16 _0805D48A: @@ -579,7 +579,7 @@ sub_805D5F4: @ 805D5F4 cmp r0, 0 bne _0805D630 movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 mov r8, r0 @@ -588,13 +588,13 @@ sub_805D5F4: @ 805D5F4 .pool _0805D630: movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r0, 0x2 _0805D63E: - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r7, r0, 24 ldr r1, =gBattleMons @@ -2937,11 +2937,11 @@ _0805EA5A: bx r0 thumb_func_end sub_805E990 - thumb_func_start sub_805EA60 -sub_805EA60: @ 805EA60 + thumb_func_start BattleMusicStop +BattleMusicStop: @ 805EA60 push {r4-r6,lr} movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r4, r0, 24 ldr r5, =gUnknown_020244D0 @@ -2977,7 +2977,7 @@ _0805EAA2: pop {r0} bx r0 .pool - thumb_func_end sub_805EA60 + thumb_func_end BattleMusicStop thumb_func_start sub_805EAB4 sub_805EAB4: @ 805EAB4 @@ -3020,12 +3020,12 @@ sub_805EAE8: @ 805EAE8 cmp r0, 0 beq _0805EB7E movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r0, 0x2 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 mov r9, r0 @@ -3203,7 +3203,7 @@ sub_805EC84: @ 805EC84 ldr r0, =gUnknown_0831C6A0 bl LoadCompressedObjectPic movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 @@ -3252,7 +3252,7 @@ sub_805EC84: @ 805EC84 cmp r0, 0 beq _0805ED56 movs r0, 0x3 - bl GetBankByPlayerAI + bl GetBankByIdentity adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 diff --git a/asm/battle_9.s b/asm/battle_9.s index f1811e1af..0dfc105ec 100644 --- a/asm/battle_9.s +++ b/asm/battle_9.s @@ -74,7 +74,7 @@ _08062C72: lsrs r0, 24 mov r10, r0 ldr r4, =gBattleMons - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 movs r1, 0x58 @@ -87,7 +87,7 @@ _08062C72: b _08062E2C _08062C9E: mov r0, r10 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r2, r0, 24 movs r6, 0 @@ -114,7 +114,7 @@ _08062CBA: ldrh r1, [r4] mov r3, r9 ldrb r2, [r3] - bl ai_rate_move + bl AI_TypeCalc lsls r0, 24 lsrs r1, r0, 24 movs r0, 0x2 @@ -223,7 +223,7 @@ _08062D74: movs r1, 0x2E bl GetMonData mov r0, r10 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r2, r0, 24 movs r4, 0 @@ -246,7 +246,7 @@ _08062DE0: beq _08062E1E ldrh r1, [r5] ldrb r2, [r7] - bl ai_rate_move + bl AI_TypeCalc lsls r0, 24 lsrs r1, r0, 24 movs r0, 0x2 @@ -347,7 +347,7 @@ _08062EB0: eors r0, r4 lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, =gAbsentBankFlags ldrb r1, [r1] ldr r2, =gBitTable @@ -367,7 +367,7 @@ _08062F04: eors r0, r4 lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r7, r0, 24 b _08062F1E @@ -705,7 +705,7 @@ ai_has_super_effective_move_on_field: @ 80631BC lsls r0, 24 lsrs r0, 24 mov r10, r0 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r3, r0, 24 ldr r0, =gAbsentBankFlags @@ -741,7 +741,7 @@ _0806320A: ldrh r1, [r5] mov r3, r8 ldrb r2, [r3] - bl ai_rate_move + bl AI_TypeCalc lsls r0, 24 lsrs r1, r0, 24 movs r0, 0x2 @@ -779,7 +779,7 @@ _0806327C: movs r1, 0x2 mov r0, r10 eors r0, r1 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r3, r0, 24 ldr r0, =gAbsentBankFlags @@ -815,7 +815,7 @@ _080632AE: ldrh r1, [r5] mov r3, r8 ldrb r2, [r3] - bl ai_rate_move + bl AI_TypeCalc lsls r0, 24 lsrs r1, r0, 24 movs r0, 0x2 @@ -951,7 +951,7 @@ _080633B8: eors r0, r4 lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, =gAbsentBankFlags ldrb r1, [r1] ldr r2, =gBitTable @@ -972,7 +972,7 @@ _08063414: eors r0, r4 lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 mov r10, r0 @@ -1126,7 +1126,7 @@ _08063564: adds r0, r1 ldrh r0, [r0] adds r1, r4, 0 - bl ai_rate_move + bl AI_TypeCalc ldr r1, [sp] ands r1, r0 cmp r1, 0 @@ -1161,7 +1161,7 @@ _080635A2: beq _080635DE ldrh r1, [r5] ldrb r2, [r7] - bl ai_rate_move + bl AI_TypeCalc lsls r0, 24 lsrs r1, r0, 24 movs r0, 0x2 @@ -1308,7 +1308,7 @@ _080636C4: eors r0, r5 lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, =gAbsentBankFlags ldrb r1, [r1] ldr r2, =gBitTable @@ -1328,7 +1328,7 @@ _08063718: eors r0, r5 lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r6, r0, 24 b _08063732 @@ -1542,7 +1542,7 @@ _080638C2: cmp r0, 0 bne _08063910 adds r0, r6, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r5, r0, 24 adds r6, r5, 0 @@ -1550,13 +1550,13 @@ _080638C2: .pool _08063910: adds r0, r5, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r6, r0, 24 movs r0, 0x2 eors r5, r0 adds r0, r5, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r5, r0, 24 _08063928: @@ -1688,7 +1688,7 @@ sub_8063A08: @ 8063A08 lsrs r2, 24 mov r8, r2 movs r7, 0 - ldr r0, =gUnknown_0831ACE8 + ldr r0, =gTypeEffectiveness mov r10, r0 ldrb r0, [r0] cmp r0, 0xFF @@ -1789,7 +1789,7 @@ _08063AE0: eors r0, r5 lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, =gAbsentBankFlags ldrb r1, [r1] ldr r2, =gBitTable @@ -1810,7 +1810,7 @@ _08063B20: eors r0, r5 lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x14] @@ -1844,7 +1844,7 @@ _08063B6C: eors r0, r1 lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] diff --git a/asm/battle_anim.s b/asm/battle_anim.s index 639be6b7d..ee85f5565 100644 --- a/asm/battle_anim.s +++ b/asm/battle_anim.s @@ -449,10 +449,10 @@ ma00_load_graphics: @ 80A3D24 lsls r0, 8 orrs r4, r0 lsls r5, r4, 3 - ldr r0, =gUnknown_085112C4 + ldr r0, =gUnknown_085112B4 + 0x10 adds r0, r5, r0 bl LoadCompressedObjectPicUsingHeap - ldr r0, =gUnknown_08511BCC + ldr r0, =gUnknown_08511A34 + 0x198 adds r5, r0 adds r0, r5, 0 bl LoadCompressedObjectPaletteUsingHeap @@ -949,17 +949,17 @@ _080A4148: ldrsh r0, [r6, r3] cmp r0, 0 bne _080A4190 - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X ldrh r0, [r0] strh r0, [r1, 0xE] - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y b _080A4198 .pool _080A4190: - ldr r0, =gUnknown_02022E1C + ldr r0, =gBattle_BG2_X ldrh r0, [r0] strh r0, [r1, 0xE] - ldr r0, =gUnknown_02022E1E + ldr r0, =gBattle_BG2_Y _080A4198: ldrh r0, [r0] strh r0, [r1, 0x10] @@ -1266,7 +1266,7 @@ _080A43F8: ldr r0, =gBankSpriteIds adds r0, r6, r0 ldrb r4, [r0] - ldr r5, =gUnknown_02022E18 + ldr r5, =gBattle_BG1_X ldr r0, =gSprites lsls r1, r4, 4 adds r1, r4 @@ -1294,7 +1294,7 @@ _080A43F8: subs r0, 0x1 strh r0, [r5] _080A447A: - ldr r5, =gUnknown_02022E1A + ldr r5, =gBattle_BG1_Y ldr r2, =gSprites lsls r1, r4, 4 adds r1, r4 @@ -1322,7 +1322,7 @@ _080A447A: orrs r1, r2 strb r1, [r0] _080A44B0: - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X ldrh r1, [r0] movs r0, 0x14 bl SetGpuReg @@ -1431,7 +1431,7 @@ _080A455E: ldr r0, =gBankSpriteIds adds r2, r5, r0 ldrb r4, [r2] - ldr r5, =gUnknown_02022E1C + ldr r5, =gBattle_BG2_X ldr r3, =gSprites lsls r1, r4, 4 adds r1, r4 @@ -1443,7 +1443,7 @@ _080A455E: negs r0, r0 adds r0, 0x20 strh r0, [r5] - ldr r4, =gUnknown_02022E1E + ldr r4, =gBattle_BG2_Y ldrh r0, [r1, 0x26] ldrh r1, [r1, 0x22] adds r0, r1 @@ -1653,19 +1653,19 @@ sub_80A477C: @ 80A477C _080A479C: movs r0, 0x1 bl sub_80A6C68 - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X movs r1, 0 strh r1, [r0] - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y strh r1, [r0] b _080A47C6 .pool _080A47B8: movs r0, 0x2 bl sub_80A6C68 - ldr r0, =gUnknown_02022E1C + ldr r0, =gBattle_BG2_X strh r4, [r0] - ldr r0, =gUnknown_02022E1E + ldr r0, =gBattle_BG2_Y strh r4, [r0] _080A47C6: add sp, 0x10 @@ -1714,13 +1714,13 @@ task_pA_ma0A_obj_to_bg_pal: @ 80A47D8 ldrsh r0, [r5, r1] cmp r0, 0 bne _080A4870 - ldr r1, =gUnknown_02022E18 + ldr r1, =gBattle_BG1_X lsls r0, r3, 16 asrs r0, 16 ldrh r3, [r5, 0xE] adds r0, r3 strh r0, [r1] - ldr r1, =gUnknown_02022E1A + ldr r1, =gBattle_BG1_Y lsls r0, r2, 16 asrs r0, 16 ldrh r5, [r5, 0x10] @@ -1740,13 +1740,13 @@ task_pA_ma0A_obj_to_bg_pal: @ 80A47D8 b _080A4896 .pool _080A4870: - ldr r1, =gUnknown_02022E1C + ldr r1, =gBattle_BG2_X lsls r0, r3, 16 asrs r0, 16 ldrh r3, [r5, 0xE] adds r0, r3 strh r0, [r1] - ldr r1, =gUnknown_02022E1E + ldr r1, =gBattle_BG2_Y lsls r0, r2, 16 asrs r0, 16 ldrh r5, [r5, 0x10] diff --git a/asm/battle_anim_80D51AC.s b/asm/battle_anim_80D51AC.s index c2ea27485..52b599c4c 100755 --- a/asm/battle_anim_80D51AC.s +++ b/asm/battle_anim_80D51AC.s @@ -200,7 +200,7 @@ _080D5320: _080D5324: movs r0, 0x3 _080D5326: - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 diff --git a/asm/battle_anim_80FE840.s b/asm/battle_anim_80FE840.s index fc2c36fc8..860f1a6cb 100644 --- a/asm/battle_anim_80FE840.s +++ b/asm/battle_anim_80FE840.s @@ -12782,14 +12782,14 @@ sub_8104E74: @ 8104E74 lsrs r0, 24 cmp r0, 0x1 bne _08104ED4 - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X ldrh r0, [r0] strh r0, [r5, 0x14] ldr r0, =0x04000014 b _08104EDC .pool _08104ED4: - ldr r0, =gUnknown_02022E1C + ldr r0, =gBattle_BG2_X ldrh r0, [r0] strh r0, [r5, 0x14] ldr r0, =0x04000018 @@ -15305,10 +15305,10 @@ sub_81062E8: @ 81062E8 movs r2, 0x1 bl lcd_bg_operations _0810632A: - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X movs r1, 0 strh r1, [r0] - ldr r4, =gUnknown_02022E1A + ldr r4, =gBattle_BG1_Y strh r1, [r4] movs r0, 0x14 movs r1, 0 @@ -15540,10 +15540,10 @@ sub_81064F8: @ 81064F8 movs r2, 0x1 bl lcd_bg_operations _0810653A: - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X movs r1, 0 strh r1, [r0] - ldr r4, =gUnknown_02022E1A + ldr r4, =gBattle_BG1_Y strh r1, [r4] movs r0, 0x14 movs r1, 0 @@ -18159,11 +18159,11 @@ _08107A32: beq _08107AB4 ldr r1, =0x0000ffb0 adds r0, r1, 0 - ldr r2, =gUnknown_02022E18 + ldr r2, =gBattle_BG1_X strh r0, [r2] adds r1, 0x20 adds r0, r1, 0 - ldr r2, =gUnknown_02022E1A + ldr r2, =gBattle_BG1_Y strh r0, [r2] movs r0, 0x2 strh r0, [r6, 0x8] @@ -18183,12 +18183,12 @@ _08107AB4: bne _08107AF8 ldr r2, =0x0000ff20 adds r0, r2, 0 - ldr r2, =gUnknown_02022E18 + ldr r2, =gBattle_BG1_X strh r0, [r2] movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 - ldr r2, =gUnknown_02022E1A + ldr r2, =gBattle_BG1_Y strh r0, [r2] movs r0, 0x2 strh r0, [r6, 0x8] @@ -18198,11 +18198,11 @@ _08107AB4: b _08107B0E .pool _08107AF8: - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X strh r4, [r0] ldr r1, =0x0000ffd0 adds r0, r1, 0 - ldr r2, =gUnknown_02022E1A + ldr r2, =gBattle_BG1_Y strh r0, [r2] ldr r0, =0x0000fffe strh r0, [r6, 0x8] @@ -18210,11 +18210,11 @@ _08107AF8: strh r0, [r6, 0xA] strh r4, [r7, 0xE] _08107B0E: - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X ldrh r1, [r0] movs r0, 0x14 bl SetGpuReg - ldr r2, =gUnknown_02022E1A + ldr r2, =gBattle_BG1_Y ldrh r1, [r2] movs r0, 0x16 bl SetGpuReg @@ -18264,8 +18264,8 @@ sub_8107B84: @ 8107B84 sub sp, 0x10 lsls r0, 24 lsrs r5, r0, 24 - ldr r1, =gUnknown_02022E18 - ldr r2, =gUnknown_02022E1A + ldr r1, =gBattle_BG1_X + ldr r2, =gBattle_BG1_Y ldr r0, =gTasks lsls r4, r5, 2 adds r4, r5 @@ -18425,8 +18425,8 @@ sub_8107CC4: @ 8107CC4 lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 - ldr r7, =gUnknown_02022E18 - ldr r0, =gUnknown_02022E1A + ldr r7, =gBattle_BG1_X + ldr r0, =gBattle_BG1_Y mov r8, r0 ldr r6, =gTasks lsls r0, r5, 2 @@ -21049,14 +21049,14 @@ sub_8109198: @ 8109198 cmp r4, r0 bne _081091DE movs r0, 0x2 - bl GetBankByPlayerAI + bl GetBankByIdentity ldrb r1, [r5] lsls r0, 24 lsrs r0, 24 cmp r1, r0 beq _081091D6 movs r0, 0x3 - bl GetBankByPlayerAI + bl GetBankByIdentity ldrb r1, [r5] lsls r0, 24 lsrs r0, 24 @@ -21902,7 +21902,7 @@ _0810987E: muls r1, r3 lsls r1, 16 asrs r1, 16 - ldr r0, =gUnknown_085955CE + ldr r0, =gUnknown_085955CC+2 adds r2, r0 movs r3, 0 ldrsh r2, [r2, r3] @@ -26948,10 +26948,10 @@ sub_810C0A0: @ 810C0A0 movs r2, 0x1 bl lcd_bg_operations _0810C0E2: - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X movs r1, 0 strh r1, [r0] - ldr r4, =gUnknown_02022E1A + ldr r4, =gBattle_BG1_Y strh r1, [r4] movs r0, 0x14 movs r1, 0 @@ -26999,7 +26999,7 @@ sub_810C164: @ 810C164 sub sp, 0x10 lsls r0, 24 lsrs r4, r0, 24 - ldr r1, =gUnknown_02022E18 + ldr r1, =gBattle_BG1_X ldr r2, =0x0000ffff adds r0, r2, 0 ldrh r2, [r1] @@ -27150,10 +27150,10 @@ _0810C29C: movs r2, 0 bl lcd_bg_operations _0810C2B0: - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X movs r1, 0 strh r1, [r0] - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y strh r1, [r0] movs r0, 0x50 movs r1, 0 @@ -27230,10 +27230,10 @@ sub_810C324: @ 810C324 movs r2, 0x1 bl lcd_bg_operations _0810C366: - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X movs r1, 0 strh r1, [r0] - ldr r4, =gUnknown_02022E1A + ldr r4, =gBattle_BG1_Y strh r1, [r4] movs r0, 0x14 movs r1, 0 @@ -27283,7 +27283,7 @@ sub_810C3F0: @ 810C3F0 sub sp, 0x10 lsls r0, 24 lsrs r4, r0, 24 - ldr r2, =gUnknown_02022E18 + ldr r2, =gBattle_BG1_X ldr r3, =gTasks lsls r1, r4, 2 adds r1, r4 @@ -27422,10 +27422,10 @@ _0810C50C: movs r2, 0 bl lcd_bg_operations _0810C520: - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X movs r1, 0 strh r1, [r0] - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y strh r1, [r0] movs r0, 0x50 movs r1, 0 @@ -28050,7 +28050,7 @@ sub_810C9E4: @ 810C9E4 ldrh r0, [r4, 0x2] lsls r0, 20 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r5, r0, 24 adds r0, r5, 0 @@ -30134,7 +30134,7 @@ _0810DB1A: lsls r0, 24 cmp r0, 0 bne _0810DB50 - ldr r1, =gUnknown_02022E20 + ldr r1, =gBattle_BG3_X ldrh r0, [r4, 0x1A] lsls r0, 16 asrs r0, 24 @@ -30145,7 +30145,7 @@ _0810DB1A: b _0810DB60 .pool _0810DB50: - ldr r2, =gUnknown_02022E20 + ldr r2, =gBattle_BG3_X ldrh r1, [r4, 0x1A] lsls r1, 16 asrs r1, 24 @@ -33064,7 +33064,7 @@ _0810F212: bne _0810F2B8 _0810F22E: movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r4, r0, 24 adds r7, r4, 0 @@ -33193,7 +33193,7 @@ sub_810F340: @ 810F340 push {r4,r5,lr} adds r5, r0, 0 movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r4, r0, 24 movs r1, 0x3C @@ -33370,7 +33370,7 @@ sub_810F46C: @ 810F46C cmp r0, 0 bne _0810F502 movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r4, r0, 24 adds r6, r4, 0 @@ -33441,7 +33441,7 @@ sub_810F524: @ 810F524 cmp r0, 0 bne _0810F57C movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 @@ -34597,14 +34597,14 @@ _0810FE92: lsrs r0, 24 cmp r0, 0x1 bne _0810FEB8 - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X ldrh r0, [r0] strh r0, [r4, 0x1C] ldr r0, =0x04000014 b _0810FEC0 .pool _0810FEB8: - ldr r0, =gUnknown_02022E1C + ldr r0, =gBattle_BG2_X ldrh r0, [r0] strh r0, [r4, 0x1C] ldr r0, =0x04000018 @@ -36221,9 +36221,9 @@ sub_8110BCC: @ 8110BCC movs r2, 0x1 bl lcd_bg_operations _08110C10: - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X strh r5, [r0] - ldr r4, =gUnknown_02022E1A + ldr r4, =gBattle_BG1_Y strh r5, [r4] movs r0, 0x14 movs r1, 0 @@ -36293,7 +36293,7 @@ sub_8110CB0: @ 8110CB0 adds r2, r1, 0 cmp r0, 0 bne _08110CE4 - ldr r1, =gUnknown_02022E18 + ldr r1, =gBattle_BG1_X ldr r3, =0x0000fffa adds r0, r3, 0 ldrh r3, [r1] @@ -36301,12 +36301,12 @@ sub_8110CB0: @ 8110CB0 b _08110CEA .pool _08110CE4: - ldr r1, =gUnknown_02022E18 + ldr r1, =gBattle_BG1_X ldrh r0, [r1] adds r0, 0x6 _08110CEA: strh r0, [r1] - ldr r1, =gUnknown_02022E1A + ldr r1, =gBattle_BG1_Y ldr r3, =0x0000ffff adds r0, r3, 0 ldrh r3, [r1] @@ -36442,10 +36442,10 @@ _08110DFC: movs r2, 0 bl lcd_bg_operations _08110E10: - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X movs r1, 0 strh r1, [r0] - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y strh r1, [r0] movs r0, 0x50 movs r1, 0 @@ -41115,13 +41115,13 @@ sub_81133E8: @ 81133E8 bne _08113424 ldr r0, =0x04000014 str r0, [sp] - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X b _0811342A .pool _08113424: ldr r0, =0x04000018 str r0, [sp] - ldr r0, =gUnknown_02022E1C + ldr r0, =gBattle_BG2_X _0811342A: ldrh r0, [r0] strh r0, [r4, 0xC] @@ -42107,7 +42107,7 @@ _08113C1E: add r4, sp, 0xC adds r0, r4, 0 bl sub_80A6B30 - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y ldrh r0, [r0] strh r0, [r5, 0x1C] ldr r1, =0x00003f42 @@ -42125,11 +42125,11 @@ _08113C1E: lsls r0, 24 cmp r0, 0 bne _08113CB0 - ldr r1, =gUnknown_02022E1C + ldr r1, =gBattle_BG2_X b _08113CAA .pool _08113C80: - ldr r0, =gUnknown_02022E1E + ldr r0, =gBattle_BG2_Y ldrh r0, [r0] strh r0, [r5, 0x1C] ldr r1, =0x00003f44 @@ -42146,7 +42146,7 @@ _08113C80: lsls r0, 24 cmp r0, 0 bne _08113CB0 - ldr r1, =gUnknown_02022E18 + ldr r1, =gBattle_BG1_X _08113CAA: ldrh r0, [r1] adds r0, 0xF0 @@ -42426,14 +42426,14 @@ _08113EF8: ldr r1, =0x00003f42 movs r0, 0x50 bl SetGpuReg - ldr r1, =gUnknown_02022E1C + ldr r1, =gBattle_BG2_X b _08113F2E .pool _08113F24: ldr r1, =0x00003f44 movs r0, 0x50 bl SetGpuReg - ldr r1, =gUnknown_02022E18 + ldr r1, =gBattle_BG1_X _08113F2E: ldrh r0, [r1] adds r0, 0xF0 @@ -42447,7 +42447,7 @@ _08113F40: bne _08113F68 mov r0, sp bl sub_80A6B30 - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y ldrh r0, [r0] strh r0, [r5, 0x1C] mov r0, sp @@ -42459,7 +42459,7 @@ _08113F40: b _08113F78 .pool _08113F68: - ldr r0, =gUnknown_02022E1E + ldr r0, =gBattle_BG2_Y ldrh r0, [r0] strh r0, [r5, 0x1C] movs r0, 0 @@ -43324,7 +43324,7 @@ _0811465C: lsls r1, 4 movs r2, 0x20 bl LoadCompressedPalette - ldr r2, =gUnknown_02022E18 + ldr r2, =gBattle_BG1_X ldr r0, =gSprites lsls r1, r4, 4 adds r1, r4 @@ -43334,7 +43334,7 @@ _0811465C: negs r0, r0 adds r0, 0x60 strh r0, [r2] - ldr r2, =gUnknown_02022E1A + ldr r2, =gBattle_BG1_Y ldrh r0, [r1, 0x22] negs r0, r0 adds r0, 0x20 @@ -43399,7 +43399,7 @@ sub_8114748: @ 8114748 adds r0, 0x4 movs r5, 0 strh r0, [r4, 0x1C] - ldr r2, =gUnknown_02022E18 + ldr r2, =gBattle_BG1_X ldrh r3, [r2] subs r1, r3, 0x4 strh r1, [r2] @@ -43586,7 +43586,7 @@ _08114902: beq _0811492E _08114908: adds r0, r4, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 @@ -44104,17 +44104,17 @@ _08114D3C: strh r0, [r4, 0x1E] cmp r0, 0x1 bne _08114D70 - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X ldrh r0, [r0] strh r0, [r4, 0x20] - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y b _08114D78 .pool _08114D70: - ldr r0, =gUnknown_02022E1C + ldr r0, =gBattle_BG2_X ldrh r0, [r0] strh r0, [r4, 0x20] - ldr r0, =gUnknown_02022E1E + ldr r0, =gBattle_BG2_Y _08114D78: ldrh r0, [r0] strh r0, [r4, 0x22] @@ -44189,11 +44189,11 @@ _08114DF6: ldrsh r0, [r4, r1] cmp r0, 0x1 bne _08114E20 - ldr r1, =gUnknown_02022E1A + ldr r1, =gBattle_BG1_Y b _08114E22 .pool _08114E20: - ldr r1, =gUnknown_02022E1E + ldr r1, =gBattle_BG2_Y _08114E22: ldrh r0, [r4, 0x22] subs r0, r2 @@ -44210,11 +44210,11 @@ _08114E22: ldrsh r0, [r4, r3] cmp r0, 0x1 bne _08114E4C - ldr r1, =gUnknown_02022E1A + ldr r1, =gBattle_BG1_Y b _08114E4E .pool _08114E4C: - ldr r1, =gUnknown_02022E1E + ldr r1, =gBattle_BG2_Y _08114E4E: ldrh r0, [r4, 0x22] subs r0, r2 @@ -44296,11 +44296,11 @@ sub_8114EB4: @ 8114EB4 lsrs r0, 24 cmp r0, 0x1 bne _08114F00 - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y b _08114F02 .pool _08114F00: - ldr r0, =gUnknown_02022E1E + ldr r0, =gBattle_BG2_Y _08114F02: strh r4, [r0] adds r0, r5, 0 @@ -44450,11 +44450,11 @@ _08115018: strh r0, [r4, 0x1E] cmp r0, 0x1 bne _08115044 - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X b _08115046 .pool _08115044: - ldr r0, =gUnknown_02022E1C + ldr r0, =gBattle_BG2_X _08115046: ldrh r0, [r0] strh r0, [r4, 0x20] @@ -44540,13 +44540,13 @@ sub_81150E0: @ 81150E0 lsrs r4, r2, 16 cmp r0, 0x1 bne _08115104 - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X ldrh r3, [r0] ldr r0, =0x04000014 b _0811510A .pool _08115104: - ldr r0, =gUnknown_02022E1C + ldr r0, =gBattle_BG2_X ldrh r3, [r0] ldr r0, =0x04000018 _0811510A: @@ -44805,7 +44805,7 @@ _08115314: beq _08115340 cmp r0, 0x5 bne _08115380 - ldr r0, =gUnknown_02022E20 + ldr r0, =gBattle_BG3_X ldrh r0, [r0] strh r0, [r4, 0x22] ldr r0, =sub_81153AC @@ -44907,7 +44907,7 @@ _081153DA: ands r0, r1 cmp r0, 0 bne _08115404 - ldr r1, =gUnknown_02022E20 + ldr r1, =gBattle_BG3_X ldrh r0, [r3, 0x26] ldrh r2, [r3, 0x22] adds r0, r2 @@ -44915,7 +44915,7 @@ _081153DA: b _0811540E .pool _08115404: - ldr r0, =gUnknown_02022E20 + ldr r0, =gBattle_BG3_X ldrh r1, [r3, 0x22] ldrh r2, [r3, 0x26] subs r1, r2 @@ -44951,7 +44951,7 @@ _08115430: ands r1, r0 cmp r1, 0 bne _0811545C - ldr r1, =gUnknown_02022E20 + ldr r1, =gBattle_BG3_X ldrh r0, [r3, 0x24] ldrh r2, [r3, 0x22] adds r0, r2 @@ -44959,7 +44959,7 @@ _08115430: b _08115466 .pool _0811545C: - ldr r0, =gUnknown_02022E20 + ldr r0, =gBattle_BG3_X ldrh r1, [r3, 0x22] ldrh r2, [r3, 0x24] subs r1, r2 @@ -44987,7 +44987,7 @@ _08115484: b _0811549C .pool _08115490: - ldr r1, =gUnknown_02022E20 + ldr r1, =gBattle_BG3_X ldrh r0, [r3, 0x22] strh r0, [r1] adds r0, r2, 0 @@ -45263,7 +45263,7 @@ _0811565A: movs r0, 0xFF ands r1, r0 strh r1, [r4, 0xC] - ldr r2, =gUnknown_02022E20 + ldr r2, =gBattle_BG3_X ldrh r0, [r4, 0xA] strh r0, [r2] ldr r0, =gUnknown_02022E22 @@ -45295,7 +45295,7 @@ sub_81156D0: @ 81156D0 ldrsh r0, [r2, r4] cmp r1, r0 bne _08115710 - ldr r0, =gUnknown_02022E20 + ldr r0, =gBattle_BG3_X movs r1, 0 strh r1, [r0] ldr r0, =gUnknown_02022E22 @@ -45305,7 +45305,7 @@ sub_81156D0: @ 81156D0 b _0811571C .pool _08115710: - ldr r1, =gUnknown_02022E20 + ldr r1, =gBattle_BG3_X ldrh r0, [r2, 0xA] strh r0, [r1] ldr r1, =gUnknown_02022E22 @@ -46553,7 +46553,7 @@ _081160DC: beq _081160F4 b _08116104 _081160E2: - ldr r1, =gUnknown_02022E20 + ldr r1, =gBattle_BG3_X b _081160F6 .pool _081160EC: @@ -46793,7 +46793,7 @@ sub_81162A4: @ 81162A4 strh r1, [r2, 0xE] ldrh r1, [r3, 0x6] strh r1, [r2, 0x18] - ldr r4, =gUnknown_02022E20 + ldr r4, =gBattle_BG3_X ldrh r1, [r3] strh r1, [r4] ldr r4, =gUnknown_02022E22 @@ -46824,7 +46824,7 @@ sub_81162F8: @ 81162F8 mov r12, r1 cmp r0, 0 bne _0811637E - ldr r0, =gUnknown_02022E20 + ldr r0, =gBattle_BG3_X ldrh r2, [r0] movs r7, 0x8 ldrsh r1, [r3, r7] @@ -47348,7 +47348,7 @@ sub_811675C: @ 811675C ldrsh r0, [r0, r1] bl sub_811583C adds r2, r0, 0 - ldr r0, =gUnknown_02022FF0 + ldr r0, =gBattleTerrain ldrb r0, [r0] cmp r0, 0x9 bhi _08116832 @@ -47996,7 +47996,7 @@ _08116CAC: adds r1, 0x1 movs r2, 0x2 bl LoadPalette - ldr r2, =gUnknown_02022E18 + ldr r2, =gBattle_BG1_X ldr r0, =gSprites lsls r1, r4, 4 adds r1, r4 @@ -48006,7 +48006,7 @@ _08116CAC: negs r0, r0 adds r0, 0x20 strh r0, [r2] - ldr r2, =gUnknown_02022E1A + ldr r2, =gBattle_BG1_Y ldrh r0, [r1, 0x22] negs r0, r0 adds r0, 0x20 @@ -48050,7 +48050,7 @@ sub_8116D64: @ 8116D64 movs r1, 0 mov r8, r1 strh r0, [r5, 0x1C] - ldr r7, =gUnknown_02022E1A + ldr r7, =gBattle_BG1_Y ldrh r2, [r7] subs r1, r2, 0x4 strh r1, [r7] @@ -48537,10 +48537,10 @@ _081171F8: movs r2, 0x20 bl LoadCompressedPalette _08117206: - ldr r3, =gUnknown_02022E18 + ldr r3, =gBattle_BG1_X movs r2, 0 strh r2, [r3] - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y strh r2, [r0] ldr r1, =gUnknown_0203A110 ldr r0, [r1] @@ -48645,7 +48645,7 @@ sub_81172EC: @ 81172EC push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 - ldr r2, =gUnknown_02022E1A + ldr r2, =gBattle_BG1_Y ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 @@ -49152,7 +49152,7 @@ sub_81176D8: @ 81176D8 ldrh r7, [r1, 0x1E] adds r2, r7 strh r2, [r1, 0x1E] - ldr r6, =gUnknown_02022E20 + ldr r6, =gBattle_BG3_X lsls r0, r3, 16 asrs r0, 24 ldrh r4, [r6] @@ -49497,10 +49497,10 @@ _081179CC: ldr r0, [sp, 0x5C] movs r2, 0x20 bl LoadCompressedPalette - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X movs r1, 0 strh r1, [r0] - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y strh r1, [r0] ldr r1, =gTasks mov r2, r9 @@ -49563,7 +49563,7 @@ _08117A7E: ldrsh r0, [r3, r1] cmp r0, 0 bge _08117AA4 - ldr r2, =gUnknown_02022E1A + ldr r2, =gBattle_BG1_Y lsls r1, r4, 16 asrs r1, 24 ldrh r0, [r2] @@ -49572,7 +49572,7 @@ _08117A7E: b _08117AB0 .pool _08117AA4: - ldr r1, =gUnknown_02022E1A + ldr r1, =gBattle_BG1_Y lsls r0, r4, 16 asrs r0, 24 ldrh r2, [r1] @@ -49759,7 +49759,7 @@ sub_8117C24: @ 8117C24 lsls r0, 24 lsrs r0, 24 ldr r2, =gBattleAnimArgs - ldr r1, =gUnknown_02022FF0 + ldr r1, =gBattleTerrain ldrb r1, [r1] strh r1, [r2] bl move_anim_task_del @@ -50069,7 +50069,7 @@ sub_8117E94: @ 8117E94 ldrb r1, [r1] strb r1, [r2] ldr r2, =gAnimationBankTarget - ldr r1, =gUnknown_0202420E + ldr r1, =gEffectBank ldrb r1, [r1] strb r1, [r2] bl move_anim_task_del @@ -50136,7 +50136,7 @@ sub_8117F30: @ 8117F30 ldrb r1, [r1] strb r1, [r2] ldr r2, =gAnimationBankTarget - ldr r1, =gUnknown_0202420E + ldr r1, =gEffectBank ldrb r1, [r1] strb r1, [r2] bl move_anim_task_del @@ -50529,14 +50529,14 @@ sub_811828C: @ 811828C lsls r0, 24 lsrs r0, 24 bl DestroyTask - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X movs r1, 0 strh r1, [r0] - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y strh r1, [r0] - ldr r0, =gUnknown_02022E1C + ldr r0, =gBattle_BG2_X strh r1, [r0] - ldr r0, =gUnknown_02022E1E + ldr r0, =gBattle_BG2_Y strh r1, [r0] movs r0, 0x50 movs r1, 0 @@ -50569,7 +50569,7 @@ task_battle_intro_80BC47C: @ 81182EC sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 - ldr r1, =gUnknown_02022E18 + ldr r1, =gBattle_BG1_X ldrh r0, [r1] adds r0, 0x6 strh r0, [r1] @@ -50697,7 +50697,7 @@ _08118400: ldrsh r0, [r2, r1] cmp r0, 0x1 bne _08118420 - ldr r2, =gUnknown_02022E1A + ldr r2, =gBattle_BG1_Y ldrh r1, [r2] ldr r0, =0x0000ffb0 cmp r1, r0 @@ -50706,7 +50706,7 @@ _08118400: b _0811842C .pool _08118420: - ldr r2, =gUnknown_02022E1A + ldr r2, =gBattle_BG1_Y ldrh r1, [r2] ldr r0, =0x0000ffc8 cmp r1, r0 @@ -50861,13 +50861,13 @@ _08118568: cmp r0, 0x4 bne _08118580 _0811856C: - ldr r1, =gUnknown_02022E18 + ldr r1, =gBattle_BG1_X ldrh r0, [r1] adds r0, 0x8 b _0811857E .pool _08118578: - ldr r1, =gUnknown_02022E18 + ldr r1, =gBattle_BG1_X ldrh r0, [r1] adds r0, 0x6 _0811857E: @@ -50882,7 +50882,7 @@ _08118580: adds r6, r0, 0 cmp r1, 0x4 bne _081185E4 - ldr r7, =gUnknown_02022E1A + ldr r7, =gBattle_BG1_Y ldrh r0, [r4, 0x14] bl Cos2 lsls r0, 16 @@ -51202,7 +51202,7 @@ task_battle_intro_anim: @ 8118844 sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 - ldr r1, =gUnknown_02022E18 + ldr r1, =gBattle_BG1_X ldrh r0, [r1] adds r0, 0x8 strh r0, [r1] @@ -51505,7 +51505,7 @@ task00_battle_intro_wireless: @ 8118AC0 ldrsh r0, [r7, r2] cmp r0, 0 bne _08118B36 - ldr r2, =gUnknown_02022E18 + ldr r2, =gBattle_BG1_X ldrh r1, [r2] movs r0, 0x80 lsls r0, 8 @@ -51519,7 +51519,7 @@ task00_battle_intro_wireless: @ 8118AC0 _08118AFE: adds r0, r1, 0x3 strh r0, [r2] - ldr r1, =gUnknown_02022E1C + ldr r1, =gBattle_BG2_X ldrh r0, [r1] subs r0, 0x3 strh r0, [r1] @@ -51878,10 +51878,10 @@ _08118DD4: ldr r2, =0x0000ffd0 adds r0, r2, 0 strh r0, [r1] - ldr r1, =gUnknown_02022E18 + ldr r1, =gBattle_BG1_X movs r0, 0xF0 strh r0, [r1] - ldr r1, =gUnknown_02022E1C + ldr r1, =gBattle_BG2_X subs r2, 0xC0 adds r0, r2, 0 strh r0, [r1] @@ -51958,10 +51958,10 @@ _08118EC2: subs r0, r1, 0x2 strh r0, [r3, 0xC] _08118ED8: - ldr r1, =gUnknown_02022E18 + ldr r1, =gBattle_BG1_X ldrh r0, [r3, 0xC] strh r0, [r1] - ldr r2, =gUnknown_02022E1C + ldr r2, =gBattle_BG2_X negs r1, r0 strh r1, [r2] lsls r0, 16 @@ -51977,7 +51977,7 @@ _08118F00: ldrh r0, [r1] adds r3, r0, 0x2 strh r3, [r1] - ldr r1, =gUnknown_02022E1E + ldr r1, =gBattle_BG2_Y ldrh r0, [r1] adds r0, 0x2 strh r0, [r1] @@ -52078,7 +52078,7 @@ sub_8118FBC: @ 8118FBC lsls r5, 16 lsrs r5, 16 adds r0, r4, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 ldr r1, =gBattleSpritesGfx diff --git a/asm/battle_anim_815A0D4.s b/asm/battle_anim_815A0D4.s index 46b09081d..f219c6988 100755 --- a/asm/battle_anim_815A0D4.s +++ b/asm/battle_anim_815A0D4.s @@ -1655,11 +1655,11 @@ _0815AE08: strh r2, [r5, 0x16] cmp r7, 0x1 bne _0815AE30 - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X b _0815AE32 .pool _0815AE30: - ldr r0, =gUnknown_02022E1C + ldr r0, =gBattle_BG2_X _0815AE32: ldrh r2, [r0] strh r2, [r5, 0x18] @@ -3385,7 +3385,7 @@ _0815BC02: lsls r0, 24 cmp r0, 0 beq _0815BC34 - ldr r1, =gUnknown_02022E18 + ldr r1, =gBattle_BG1_X ldr r3, =0x0000ffc8 b _0815BC5C .pool @@ -3396,19 +3396,19 @@ _0815BC34: lsls r0, 24 cmp r0, 0 beq _0815BC58 - ldr r1, =gUnknown_02022E18 + ldr r1, =gBattle_BG1_X ldr r2, =0x0000ff79 adds r0, r2, 0 b _0815BC5E .pool _0815BC58: - ldr r1, =gUnknown_02022E18 + ldr r1, =gBattle_BG1_X ldr r3, =0x0000fff6 _0815BC5C: adds r0, r3, 0 _0815BC5E: strh r0, [r1] - ldr r1, =gUnknown_02022E1A + ldr r1, =gBattle_BG1_Y movs r0, 0 strh r0, [r1] mov r0, sp @@ -3428,10 +3428,10 @@ _0815BC5E: adds r1, r4 lsls r1, 3 adds r1, r0 - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X ldrh r0, [r0] strh r0, [r1, 0x1C] - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y ldrh r0, [r0] strh r0, [r1, 0x1E] ldrh r0, [r1, 0x8] @@ -3507,7 +3507,7 @@ _0815BD20: ldrsh r0, [r4, r2] cmp r0, 0 bne _0815BDF2 - ldr r2, =gUnknown_02022E18 + ldr r2, =gBattle_BG1_X ldr r1, =gUnknown_085CE460 movs r3, 0xC ldrsh r0, [r4, r3] @@ -3577,10 +3577,10 @@ _0815BDC8: movs r1, 0x4 movs r2, 0x1 bl lcd_bg_operations - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X movs r1, 0 strh r1, [r0] - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y strh r1, [r0] movs r0, 0x50 movs r1, 0 @@ -3990,7 +3990,7 @@ _0815C124: lsls r0, 24 cmp r0, 0 beq _0815C15C - ldr r1, =gUnknown_02022E18 + ldr r1, =gBattle_BG1_X ldr r3, =0x0000ffc8 adds r0, r3, 0 b _0815C1CA @@ -4008,48 +4008,48 @@ _0815C15C: bne _0815C1B4 cmp r4, 0x1 bne _0815C180 - ldr r1, =gUnknown_02022E18 + ldr r1, =gBattle_BG1_X ldr r2, =0x0000ff65 adds r0, r2, 0 strh r0, [r1] _0815C180: cmp r4, 0x3 bne _0815C18C - ldr r1, =gUnknown_02022E18 + ldr r1, =gBattle_BG1_X ldr r3, =0x0000ff8d adds r0, r3, 0 strh r0, [r1] _0815C18C: cmp r4, 0 bne _0815C196 - ldr r1, =gUnknown_02022E18 + ldr r1, =gBattle_BG1_X movs r0, 0xE strh r0, [r1] _0815C196: cmp r4, 0x2 bne _0815C1CC - ldr r1, =gUnknown_02022E18 + ldr r1, =gBattle_BG1_X ldr r2, =0x0000ffec b _0815C1C8 .pool _0815C1B4: cmp r4, 0x1 bne _0815C1C0 - ldr r1, =gUnknown_02022E18 + ldr r1, =gBattle_BG1_X ldr r3, =0x0000ff79 adds r0, r3, 0 strh r0, [r1] _0815C1C0: cmp r4, 0 bne _0815C1CC - ldr r1, =gUnknown_02022E18 + ldr r1, =gBattle_BG1_X ldr r2, =0x0000fff6 _0815C1C8: adds r0, r2, 0 _0815C1CA: strh r0, [r1] _0815C1CC: - ldr r1, =gUnknown_02022E1A + ldr r1, =gBattle_BG1_Y movs r0, 0 strh r0, [r1] mov r0, sp @@ -4069,10 +4069,10 @@ _0815C1CC: adds r1, r6 lsls r1, 3 adds r1, r0 - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X ldrh r0, [r0] strh r0, [r1, 0x1C] - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y ldrh r0, [r0] strh r0, [r1, 0x1E] b _0815C2A4 @@ -4092,7 +4092,7 @@ _0815C224: lsrs r0, 24 cmp r0, 0x1 bne _0815C268 - ldr r2, =gUnknown_02022E18 + ldr r2, =gBattle_BG1_X ldr r1, =gUnknown_085CE4A4 movs r3, 0xC ldrsh r0, [r5, r3] @@ -4105,7 +4105,7 @@ _0815C224: b _0815C27A .pool _0815C268: - ldr r2, =gUnknown_02022E18 + ldr r2, =gBattle_BG1_X ldr r1, =gUnknown_085CE4A4 movs r3, 0xC ldrsh r0, [r5, r3] @@ -4235,10 +4235,10 @@ _0815C36C: movs r1, 0x4 movs r2, 0x1 bl lcd_bg_operations - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X movs r1, 0 strh r1, [r0] - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y strh r1, [r0] movs r0, 0x50 movs r1, 0 @@ -6133,9 +6133,9 @@ _0815D2B4: ldr r1, =0x00003f42 movs r0, 0x50 bl SetGpuReg - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X ldrh r5, [r0] - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y b _0815D316 .pool _0815D304: @@ -6144,9 +6144,9 @@ _0815D304: ldr r1, =0x00003f44 movs r0, 0x50 bl SetGpuReg - ldr r0, =gUnknown_02022E1C + ldr r0, =gBattle_BG2_X ldrh r5, [r0] - ldr r0, =gUnknown_02022E1E + ldr r0, =gBattle_BG2_Y _0815D316: ldrh r3, [r0] movs r7, 0 @@ -6223,17 +6223,17 @@ sub_815D398: @ 815D398 lsrs r0, 24 cmp r0, 0x1 bne _0815D3D8 - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X ldrh r0, [r0] str r0, [sp, 0x4] - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y b _0815D3E0 .pool _0815D3D8: - ldr r0, =gUnknown_02022E1C + ldr r0, =gBattle_BG2_X ldrh r0, [r0] str r0, [sp, 0x4] - ldr r0, =gUnknown_02022E1E + ldr r0, =gBattle_BG2_Y _0815D3E0: ldrh r0, [r0] str r0, [sp, 0x8] diff --git a/asm/battle_anim_8170478.s b/asm/battle_anim_8170478.s index c64dd69e5..85f94c20e 100644 --- a/asm/battle_anim_8170478.s +++ b/asm/battle_anim_8170478.s @@ -168,12 +168,12 @@ sub_8170478: @ 8170478 lsls r1, 4 movs r2, 0x20 bl LoadCompressedPalette - ldr r1, =gUnknown_02022E18 + ldr r1, =gBattle_BG1_X ldrh r0, [r7, 0x20] negs r0, r0 adds r0, 0x20 strh r0, [r1] - ldr r1, =gUnknown_02022E1A + ldr r1, =gBattle_BG1_Y ldrh r0, [r7, 0x22] negs r0, r0 subs r0, 0x20 @@ -225,7 +225,7 @@ sub_8170660: @ 8170660 adds r1, r0 movs r3, 0 strh r1, [r5, 0x22] - ldr r2, =gUnknown_02022E1A + ldr r2, =gBattle_BG1_Y lsls r0, r1, 16 lsrs r0, 24 ldrh r4, [r2] @@ -1283,7 +1283,7 @@ _08170F54: lsls r4, 24 lsrs r4, 24 movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 bl sub_80A82E4 @@ -1335,7 +1335,7 @@ _08170F54: ldr r0, =SpriteCallbackDummy str r0, [r4] movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, =gBankSpriteIds lsls r0, 24 lsrs r0, 24 @@ -1371,7 +1371,7 @@ sub_8171030: @ 8171030 lsrs r5, r0, 24 ldr r6, =gSprites movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, =gBankSpriteIds lsls r0, 24 lsrs r0, 24 @@ -1422,7 +1422,7 @@ sub_81710A8: @ 81710A8 lsrs r5, r0, 24 ldr r6, =gSprites movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r4, =gBankSpriteIds lsls r0, 24 lsrs r0, 24 @@ -1438,7 +1438,7 @@ sub_81710A8: @ 81710A8 cmp r0, 0 bge _081710F4 movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 adds r0, r4 @@ -5069,7 +5069,7 @@ sub_8172ED0: @ 8172ED0 lsls r0, 24 lsrs r0, 24 ldr r2, =gAnimationBankTarget - ldr r1, =gUnknown_0202420E + ldr r1, =gEffectBank ldrb r1, [r1] strb r1, [r2] bl move_anim_task_del @@ -5575,7 +5575,7 @@ sub_817330C: @ 817330C movs r0, 0x1E strh r0, [r4, 0x2E] movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 movs r1, 0 @@ -5587,7 +5587,7 @@ sub_817330C: @ 817330C adds r0, r1 strh r0, [r4, 0x32] movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 movs r1, 0x1 @@ -5732,7 +5732,7 @@ sub_817345C: @ 817345C .pool _08173478: movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, =gAnimationBankAttacker strb r0, [r1] movs r0, 0x1 @@ -5740,12 +5740,12 @@ _08173478: .pool _0817348C: movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, =gAnimationBankAttacker strb r0, [r1] movs r0, 0 _08173498: - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, =gAnimationBankTarget strb r0, [r1] _081734A0: diff --git a/asm/battle_controller_linkopponent.s b/asm/battle_controller_linkopponent.s index d28823a8b..5a762a174 100644 --- a/asm/battle_controller_linkopponent.s +++ b/asm/battle_controller_linkopponent.s @@ -5045,7 +5045,7 @@ sub_8066FF4: @ 8066FF4 bl BufferStringBattle ldr r0, =gDisplayedStringBattle movs r1, 0 - bl battle_show_message_maybe + bl sub_814F9EC ldr r1, =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 @@ -5565,7 +5565,7 @@ sub_806743C: @ 806743C ldrb r0, [r0] cmp r0, 0 beq _08067478 - bl sub_805EA60 + bl BattleMusicStop ldrb r1, [r5] lsls r1, 9 adds r0, r4, 0x1 diff --git a/asm/battle_controller_linkpartner.s b/asm/battle_controller_linkpartner.s index 881228279..3a1b21ed7 100644 --- a/asm/battle_controller_linkpartner.s +++ b/asm/battle_controller_linkpartner.s @@ -4354,7 +4354,7 @@ sub_814D590: @ 814D590 bl BufferStringBattle ldr r0, =gDisplayedStringBattle movs r1, 0 - bl battle_show_message_maybe + bl sub_814F9EC ldr r1, =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 @@ -4874,7 +4874,7 @@ sub_814D9D8: @ 814D9D8 ldrb r0, [r0] cmp r0, 0 beq _0814DA14 - bl sub_805EA60 + bl BattleMusicStop ldrb r1, [r5] lsls r1, 9 adds r0, r4, 0x1 diff --git a/asm/battle_controller_opponent.s b/asm/battle_controller_opponent.s index 639ef0ce6..69d4776d4 100644 --- a/asm/battle_controller_opponent.s +++ b/asm/battle_controller_opponent.s @@ -5185,7 +5185,7 @@ sub_8061F34: @ 8061F34 bl BufferStringBattle ldr r0, =gDisplayedStringBattle movs r1, 0 - bl battle_show_message_maybe + bl sub_814F9EC ldr r1, =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 @@ -5323,7 +5323,7 @@ _08062062: cmp r0, 0 beq _0806209C movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r5, =gBankTarget strb r0, [r5] ldr r0, =gAbsentBankFlags @@ -5337,7 +5337,7 @@ _08062062: cmp r1, 0 beq _0806209C movs r0, 0x2 - bl GetBankByPlayerAI + bl GetBankByIdentity strb r0, [r5] _0806209C: ldr r0, =gBankTarget @@ -5394,7 +5394,7 @@ _08062108: lsls r1, 24 lsrs r1, 24 adds r0, r1, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity adds r2, r0, 0 lsls r2, 24 lsrs r2, 16 @@ -5406,7 +5406,7 @@ _08062108: .pool _0806213C: movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity adds r2, r0, 0 lsls r2, 24 lsrs r2, 16 @@ -5468,7 +5468,7 @@ sub_8062188: @ 8062188 cmp r0, 0 bne _080621D4 movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r5, r0, 24 adds r7, r5, 0 @@ -5476,11 +5476,11 @@ sub_8062188: @ 8062188 .pool _080621D4: movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r7, r0, 24 movs r0, 0x3 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r5, r0, 24 _080621E8: @@ -6015,7 +6015,7 @@ sub_8062630: @ 8062630 ldrb r0, [r0] cmp r0, 0 beq _0806266C - bl sub_805EA60 + bl BattleMusicStop ldrb r1, [r5] lsls r1, 9 adds r0, r4, 0x1 diff --git a/asm/battle_controller_player.s b/asm/battle_controller_player.s index 0e9318dc9..5f7e1b954 100644 --- a/asm/battle_controller_player.s +++ b/asm/battle_controller_player.s @@ -358,7 +358,7 @@ _0805775A: cmp r0, 0x2 bne _080577E8 movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, =gAbsentBankFlags ldrb r1, [r1] ldr r2, =gBitTable @@ -622,7 +622,7 @@ _080579F0: mov r1, sp adds r0, r1, r4 ldrb r0, [r0] - bl GetBankByPlayerAI + bl GetBankByIdentity strb r0, [r5] ldr r1, =gNoOfAllBanks lsls r0, 24 @@ -750,7 +750,7 @@ _08057B14: mov r1, sp adds r0, r1, r4 ldrb r0, [r0] - bl GetBankByPlayerAI + bl GetBankByIdentity strb r0, [r5] ldr r1, =gNoOfAllBanks lsls r0, 24 @@ -942,7 +942,7 @@ _08057CC4: movs r0, 0x1 ands r0, r1 eors r0, r2 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, =gUnknown_03005D74 strb r0, [r1] _08057CDE: @@ -1035,7 +1035,7 @@ _08057D80: .pool _08057DA8: movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, =gAbsentBankFlags ldrb r1, [r1] ldr r2, =gBitTable @@ -1052,7 +1052,7 @@ _08057DA8: _08057DD0: movs r0, 0x1 _08057DD2: - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, =gUnknown_03005D74 _08057DD8: strb r0, [r1] @@ -1245,9 +1245,9 @@ _08057F80: ldrb r0, [r0] movs r1, 0x1B bl battle_menu_cursor_related_2 - ldr r0, =gUnknown_085CCACA + ldr r0, =gText_BattleSwitchWhich movs r1, 0xB - bl battle_show_message_maybe + bl sub_814F9EC ldr r1, =gBattleBankFunc ldr r0, =gActiveBank ldrb r0, [r0] @@ -4042,7 +4042,7 @@ sub_8059828: @ 8059828 push {lr} ldr r0, =gMain ldr r1, [r0, 0x4] - ldr r0, =sub_8038420 + ldr r0, =BattleMainCB2 cmp r1, r0 bne _08059898 ldr r0, =gPaletteFade @@ -4118,7 +4118,7 @@ sub_80598E0: @ 80598E0 push {lr} ldr r0, =gMain ldr r1, [r0, 0x4] - ldr r0, =sub_8038420 + ldr r0, =BattleMainCB2 cmp r1, r0 bne _08059906 ldr r0, =gPaletteFade @@ -4244,11 +4244,11 @@ sub_80599D4: @ 80599D4 movs r0, 0x5 bl PlaySE ldrb r0, [r4] - bl sub_8056BAC + bl BattleDestroyCursorAt movs r0, 0 strb r0, [r4] movs r0, 0 - bl sub_8056B74 + bl BattleCreateCursorAt _08059A02: ldr r0, =gMain ldrh r1, [r0, 0x2E] @@ -4263,11 +4263,11 @@ _08059A02: movs r0, 0x5 bl PlaySE ldrb r0, [r4] - bl sub_8056BAC + bl BattleDestroyCursorAt movs r0, 0x1 strb r0, [r4] movs r0, 0x1 - bl sub_8056B74 + bl BattleCreateCursorAt _08059A2C: ldr r0, =gMain ldrh r1, [r0, 0x2E] @@ -4355,7 +4355,7 @@ _08059AC4: lsls r1, 24 lsrs r1, 24 adds r0, r7, 0 - bl battle_show_message_maybe + bl sub_814F9EC ldrh r0, [r4] cmp r0, 0 beq _08059AF4 @@ -4377,12 +4377,12 @@ _08059AF4: sub_8059B18: @ 8059B18 push {r4,lr} ldr r4, =gDisplayedStringBattle - ldr r1, =gUnknown_085CCA6F + ldr r1, =gText_MoveInterfacePP adds r0, r4, 0 bl StringCopy adds r0, r4, 0 movs r1, 0x7 - bl battle_show_message_maybe + bl sub_814F9EC pop {r4} pop {r0} bx r0 @@ -4432,7 +4432,7 @@ sub_8059B3C: @ 8059B3C bl ConvertIntToDecimalStringN adds r0, r6, 0 movs r1, 0x9 - bl battle_show_message_maybe + bl sub_814F9EC _08059B98: pop {r4-r7} pop {r0} @@ -4449,7 +4449,7 @@ sub_8059BB0: @ 8059BB0 ldr r0, =gBattleBufferA + 4 adds r4, r0 ldr r6, =gDisplayedStringBattle - ldr r1, =gUnknown_085CCA73 + ldr r1, =gText_MoveInterfaceType adds r0, r6, 0 bl StringCopy movs r1, 0xFC @@ -4481,7 +4481,7 @@ sub_8059BB0: @ 8059BB0 bl StringCopy adds r0, r6, 0 movs r1, 0xA - bl battle_show_message_maybe + bl sub_814F9EC pop {r4-r6} pop {r0} bx r0 @@ -4637,7 +4637,7 @@ sub_8059CF8: @ 8059CF8 thumb_func_start sub_8059D40 sub_8059D40: @ 8059D40 push {lr} - ldr r0, =sub_80A92F8 + ldr r0, =ReshowBattleScreenAfterMenu bl SetMainCallback2 pop {r0} bx r0 @@ -4647,7 +4647,7 @@ sub_8059D40: @ 8059D40 thumb_func_start sub_8059D50 sub_8059D50: @ 8059D50 push {lr} - ldr r0, =sub_80A92F8 + ldr r0, =ReshowBattleScreenAfterMenu bl SetMainCallback2 pop {r0} bx r0 @@ -4716,9 +4716,9 @@ b_link_standby_message: @ 8059DC0 strh r1, [r0] ldr r0, =gUnknown_02022E16 strh r1, [r0] - ldr r0, =gUnknown_085CCA29 + ldr r0, =gText_LinkStandby movs r1, 0 - bl battle_show_message_maybe + bl sub_814F9EC _08059DE0: pop {r0} bx r0 @@ -8024,7 +8024,7 @@ sub_805BBC4: @ 805BBC4 ldr r5, =gActiveBank ldrb r4, [r5] movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 @@ -8063,7 +8063,7 @@ sub_805BC18: @ 805BC18 strb r0, [r1] ldrb r4, [r5] movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 @@ -8458,7 +8458,7 @@ sub_805BF80: @ 805BF80 bl BufferStringBattle ldr r0, =gDisplayedStringBattle movs r1, 0 - bl battle_show_message_maybe + bl sub_814F9EC ldr r1, =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 @@ -8532,9 +8532,9 @@ dp01t_12_6_battle_menu: @ 805C044 ldr r1, =sub_805C004 str r1, [r0] bl sub_817F2A8 - ldr r0, =gUnknown_085CCA3A + ldr r0, =gText_BattleMenu movs r1, 0x2 - bl battle_show_message_maybe + bl sub_814F9EC movs r4, 0 _0805C062: lsls r0, r4, 24 @@ -8550,11 +8550,11 @@ _0805C062: ldrb r0, [r0] movs r1, 0 bl sub_8059CB4 - ldr r0, =gUnknown_085CC9F3 - bl StrCpyDecodeToDisplayedStringBattle + ldr r0, =gText_WhatWillPkmnDo + bl BattleStringExpandPlaceholdersToDisplayedString ldr r0, =gDisplayedStringBattle movs r1, 0x1 - bl battle_show_message_maybe + bl sub_814F9EC pop {r4} pop {r0} bx r0 @@ -8578,14 +8578,14 @@ sub_805C0B0: @ 805C0B0 movs r2, 0x1D movs r3, 0xD bl sub_8056A3C - ldr r0, =gUnknown_085CCABB + ldr r0, =gText_BattleYesNoChoice movs r1, 0xC - bl battle_show_message_maybe + bl sub_814F9EC ldr r1, =gUnknown_03005D74 movs r0, 0x1 strb r0, [r1] movs r0, 0x1 - bl sub_8056B74 + bl BattleCreateCursorAt ldr r1, =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 @@ -8913,7 +8913,7 @@ _0805C3BC: sub_805C3EC: @ 805C3EC push {lr} sub sp, 0x4 - bl sub_805EA60 + bl BattleMusicStop movs r0, 0x1 negs r0, r0 movs r1, 0 @@ -9595,7 +9595,7 @@ sub_805C9B0: @ 805C9B0 ldrb r0, [r0] cmp r0, 0 beq _0805C9EC - bl sub_805EA60 + bl BattleMusicStop ldrb r1, [r5] lsls r1, 9 adds r0, r4, 0x1 diff --git a/asm/battle_controller_player_partner.s b/asm/battle_controller_player_partner.s index 6b5a14f95..784eacab1 100644 --- a/asm/battle_controller_player_partner.s +++ b/asm/battle_controller_player_partner.s @@ -4966,7 +4966,7 @@ sub_81BDA4C: @ 81BDA4C bl BufferStringBattle ldr r0, =gDisplayedStringBattle movs r1, 0 - bl battle_show_message_maybe + bl sub_814F9EC ldr r1, =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 @@ -5045,7 +5045,7 @@ _081BDB02: cmp r0, 0 beq _081BDB3C movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r4, =gBankTarget strb r0, [r4] ldr r0, =gAbsentBankFlags @@ -5059,7 +5059,7 @@ _081BDB02: cmp r1, 0 beq _081BDB3C movs r0, 0x3 - bl GetBankByPlayerAI + bl GetBankByIdentity strb r0, [r4] _081BDB3C: ldr r0, =gBankTarget @@ -5093,11 +5093,11 @@ sub_81BDB7C: @ 81BDB7C cmp r4, 0x6 bne _081BDBD0 movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r6, r0, 24 movs r0, 0x2 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r5, r0, 24 movs r4, 0x3 @@ -5661,7 +5661,7 @@ sub_81BE03C: @ 81BE03C ldrb r0, [r0] cmp r0, 0 beq _081BE078 - bl sub_805EA60 + bl BattleMusicStop ldrb r1, [r5] lsls r1, 9 adds r0, r4, 0x1 diff --git a/asm/battle_controller_recorded_opponent.s b/asm/battle_controller_recorded_opponent.s index dc7fe7de5..90928e7d4 100644 --- a/asm/battle_controller_recorded_opponent.s +++ b/asm/battle_controller_recorded_opponent.s @@ -4722,7 +4722,7 @@ sub_8188E90: @ 8188E90 bl BufferStringBattle ldr r0, =gDisplayedStringBattle movs r1, 0 - bl battle_show_message_maybe + bl sub_814F9EC ldr r1, =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 @@ -5304,7 +5304,7 @@ sub_818936C: @ 818936C ldrb r0, [r0] cmp r0, 0 beq _081893A8 - bl sub_805EA60 + bl BattleMusicStop ldrb r1, [r5] lsls r1, 9 adds r0, r4, 0x1 diff --git a/asm/battle_controller_recorded_player.s b/asm/battle_controller_recorded_player.s index b2769671c..534f34068 100644 --- a/asm/battle_controller_recorded_player.s +++ b/asm/battle_controller_recorded_player.s @@ -4822,7 +4822,7 @@ sub_818C43C: @ 818C43C bl BufferStringBattle ldr r0, =gDisplayedStringBattle movs r1, 0 - bl battle_show_message_maybe + bl sub_814F9EC ldr r1, =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 @@ -5455,7 +5455,7 @@ sub_818C994: @ 818C994 ldrb r0, [r0] cmp r0, 0 beq _0818C9D0 - bl sub_805EA60 + bl BattleMusicStop ldrb r1, [r5] lsls r1, 9 adds r0, r4, 0x1 diff --git a/asm/battle_controller_safari.s b/asm/battle_controller_safari.s index 1aff72176..cc149ea4f 100644 --- a/asm/battle_controller_safari.s +++ b/asm/battle_controller_safari.s @@ -387,7 +387,7 @@ sub_8159698: @ 8159698 push {lr} ldr r0, =gMain ldr r1, [r0, 0x4] - ldr r0, =sub_8038420 + ldr r0, =BattleMainCB2 cmp r1, r0 bne _081596BE ldr r0, =gPaletteFade @@ -700,7 +700,7 @@ sub_8159910: @ 8159910 ldr r5, =gActiveBank ldrb r4, [r5] movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 @@ -739,7 +739,7 @@ sub_8159964: @ 8159964 strb r0, [r1] ldrb r4, [r5] movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 @@ -792,7 +792,7 @@ dp01t_10_6_message: @ 81599DC bl BufferStringBattle ldr r0, =gDisplayedStringBattle movs r1, 0 - bl battle_show_message_maybe + bl sub_814F9EC ldr r1, =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 @@ -860,9 +860,9 @@ sub_8159A94: @ 8159A94 adds r0, r1 ldr r1, =sub_8159A54 str r1, [r0] - ldr r0, =gUnknown_085CCA54 + ldr r0, =gText_SafariZoneMenu movs r1, 0x2 - bl battle_show_message_maybe + bl sub_814F9EC movs r4, 0 _08159AAE: lsls r0, r4, 24 @@ -878,11 +878,11 @@ _08159AAE: ldrb r0, [r0] movs r1, 0 bl sub_8059CB4 - ldr r0, =gUnknown_085CCA04 - bl StrCpyDecodeToDisplayedStringBattle + ldr r0, =gText_WhatWillPkmnDo2 + bl BattleStringExpandPlaceholdersToDisplayedString ldr r0, =gDisplayedStringBattle movs r1, 0x1 - bl battle_show_message_maybe + bl sub_814F9EC pop {r4} pop {r0} bx r0 @@ -1161,7 +1161,7 @@ dp01t_34_6_move_anim_start_t3: @ 8159CC4 ldrb r0, [r0] cmp r0, 0 beq _08159D00 - bl sub_805EA60 + bl BattleMusicStop ldrb r1, [r5] lsls r1, 9 adds r0, r4, 0x1 diff --git a/asm/battle_controller_wally.s b/asm/battle_controller_wally.s index ddb97f927..eab717466 100644 --- a/asm/battle_controller_wally.s +++ b/asm/battle_controller_wally.s @@ -299,7 +299,7 @@ sub_8168610: @ 8168610 push {lr} ldr r0, =gMain ldr r1, [r0, 0x4] - ldr r0, =sub_8038420 + ldr r0, =BattleMainCB2 cmp r1, r0 bne _08168636 ldr r0, =gPaletteFade @@ -3232,7 +3232,7 @@ sub_816A084: @ 816A084 ldr r5, =gActiveBank ldrb r4, [r5] movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 @@ -3271,7 +3271,7 @@ sub_816A0D8: @ 816A0D8 strb r0, [r1] ldrb r4, [r5] movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 @@ -3606,7 +3606,7 @@ sub_816A3B8: @ 816A3B8 bl BufferStringBattle ldr r0, =gDisplayedStringBattle movs r1, 0 - bl battle_show_message_maybe + bl sub_814F9EC ldr r1, =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 @@ -3674,9 +3674,9 @@ dp01t_12_1_battle_menu: @ 816A470 adds r0, r1 ldr r1, =sub_816A430 str r1, [r0] - ldr r0, =gUnknown_085CCA3A + ldr r0, =gText_BattleMenu movs r1, 0x2 - bl battle_show_message_maybe + bl sub_814F9EC movs r4, 0 _0816A48A: lsls r0, r4, 24 @@ -3692,11 +3692,11 @@ _0816A48A: ldrb r0, [r0] movs r1, 0 bl sub_8059CB4 - ldr r0, =gUnknown_085CCA15 - bl StrCpyDecodeToDisplayedStringBattle + ldr r0, =gText_WhatWillWallyDo + bl BattleStringExpandPlaceholdersToDisplayedString ldr r0, =gDisplayedStringBattle movs r1, 0x1 - bl battle_show_message_maybe + bl sub_814F9EC pop {r4} pop {r0} bx r0 @@ -4150,7 +4150,7 @@ sub_816A840: @ 816A840 ldrb r0, [r0] cmp r0, 0 beq _0816A87C - bl sub_805EA60 + bl BattleMusicStop ldrb r1, [r5] lsls r1, 9 adds r0, r4, 0x1 diff --git a/asm/battle_dome_cards.s b/asm/battle_dome_cards.s deleted file mode 100644 index 8bb1971c4..000000000 --- a/asm/battle_dome_cards.s +++ /dev/null @@ -1,1281 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start nullsub_122 -nullsub_122: @ 818CFC8 - bx lr - thumb_func_end nullsub_122 - - thumb_func_start dp13_810BB8C -dp13_810BB8C: @ 818CFCC - push {r4-r7,lr} - ldr r4, =gUnknown_0860B058 - ldr r3, =gUnknown_0203CD04 - movs r2, 0x7 -_0818CFD4: - adds r1, r3, 0 - adds r0, r4, 0 - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - adds r3, 0xC - subs r2, 0x1 - cmp r2, 0 - bge _0818CFD4 - movs r0, 0 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end dp13_810BB8C - - thumb_func_start load_pokemon_image_TODO -@ int load_pokemon_image_TODO(int species_num, unsigned int a2, u8 a3, void *a4, int a5, u8 a6) -load_pokemon_image_TODO: @ 818CFF4 - push {r4-r7,lr} - sub sp, 0x4 - adds r6, r1, 0 - adds r5, r3, 0 - ldr r3, [sp, 0x18] - ldr r1, [sp, 0x1C] - lsls r0, 16 - lsrs r4, r0, 16 - adds r7, r4, 0 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsls r1, 24 - lsrs r1, 24 - adds r0, r1, 0 - cmp r3, 0 - bne _0818D068 - cmp r2, 0 - beq _0818D034 - cmp r1, 0 - bne _0818D028 - lsls r0, r4, 3 - ldr r1, =gMonFrontPicTable - b _0818D03C - .pool -_0818D028: - lsls r0, r4, 3 - ldr r1, =gMonFrontPicTable - b _0818D054 - .pool -_0818D034: - cmp r0, 0 - bne _0818D050 - lsls r0, r4, 3 - ldr r1, =gMonBackPicTable -_0818D03C: - adds r0, r1 - str r2, [sp] - adds r1, r5, 0 - adds r2, r4, 0 - adds r3, r6, 0 - bl LoadSpecialPokePic - b _0818D08E - .pool -_0818D050: - lsls r0, r4, 3 - ldr r1, =gMonBackPicTable -_0818D054: - adds r0, r1 - str r2, [sp] - adds r1, r5, 0 - adds r2, r4, 0 - adds r3, r6, 0 - bl LoadSpecialPokePic_DontHandleDeoxys - b _0818D08E - .pool -_0818D068: - cmp r2, 0 - beq _0818D080 - lsls r0, r4, 3 - ldr r1, =gTrainerFrontPicTable - adds r0, r1 - adds r1, r5, 0 - adds r2, r4, 0 - bl DecompressPicFromTable - b _0818D08E - .pool -_0818D080: - lsls r0, r7, 3 - ldr r1, =gTrainerBackPicTable - adds r0, r1 - adds r1, r5, 0 - adds r2, r7, 0 - bl DecompressPicFromTable -_0818D08E: - movs r0, 0 - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end load_pokemon_image_TODO - - thumb_func_start sub_818D09C -sub_818D09C: @ 818D09C - push {r4,lr} - sub sp, 0x8 - ldr r4, [sp, 0x10] - lsls r0, 16 - lsrs r0, 16 - lsls r2, 24 - lsrs r2, 24 - lsls r4, 24 - lsrs r4, 24 - str r4, [sp] - movs r4, 0 - str r4, [sp, 0x4] - bl load_pokemon_image_TODO - lsls r0, 16 - lsrs r0, 16 - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_818D09C - - thumb_func_start sub_818D0C4 -sub_818D0C4: @ 818D0C4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r1, 0 - mov r8, r2 - ldr r1, [sp, 0x18] - ldr r2, [sp, 0x1C] - lsls r0, 16 - lsrs r4, r0, 16 - adds r6, r4, 0 - lsls r3, 24 - lsrs r5, r3, 24 - mov r12, r5 - lsls r1, 16 - lsrs r3, r1, 16 - adds r1, r3, 0 - lsls r2, 24 - cmp r2, 0 - bne _0818D128 - ldr r0, =0x0000ffff - cmp r3, r0 - bne _0818D110 - ldr r2, =gUnknown_0203CCEC - ldrh r1, [r2, 0x2] - adds r0, r3, 0 - orrs r0, r1 - strh r0, [r2, 0x2] - adds r0, r4, 0 - adds r1, r7, 0 - mov r2, r8 - bl species_and_otid_get_pal - lsls r1, r5, 20 - b _0818D144 - .pool -_0818D110: - ldr r0, =gUnknown_0203CCEC - strh r3, [r0, 0x2] - adds r0, r4, 0 - adds r1, r7, 0 - mov r2, r8 - bl sub_806E7CC - bl LoadCompressedObjectPalette - b _0818D16E - .pool -_0818D128: - ldr r0, =0x0000ffff - cmp r3, r0 - bne _0818D160 - ldr r2, =gUnknown_0203CCEC - ldrh r1, [r2, 0x2] - adds r0, r3, 0 - orrs r0, r1 - strh r0, [r2, 0x2] - ldr r1, =gTrainerFrontPicPaletteTable - lsls r0, r4, 3 - adds r0, r1 - ldr r0, [r0] - mov r2, r12 - lsls r1, r2, 20 -_0818D144: - movs r2, 0x80 - lsls r2, 17 - adds r1, r2 - lsrs r1, 16 - movs r2, 0x20 - bl LoadCompressedPalette - b _0818D16E - .pool -_0818D160: - ldr r0, =gUnknown_0203CCEC - strh r1, [r0, 0x2] - lsls r0, r6, 3 - ldr r1, =gTrainerFrontPicPaletteTable - adds r0, r1 - bl LoadCompressedObjectPalette -_0818D16E: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818D0C4 - - thumb_func_start sub_818D180 -sub_818D180: @ 818D180 - push {r4,r5,lr} - adds r5, r1, 0 - ldr r1, [sp, 0xC] - lsls r0, 16 - lsrs r0, 16 - lsls r3, 24 - lsrs r4, r3, 24 - lsls r1, 24 - cmp r1, 0 - bne _0818D1A4 - adds r1, r5, 0 - bl species_and_otid_get_pal - lsls r1, r4, 4 - movs r2, 0x20 - bl LoadCompressedPalette - b _0818D1B4 -_0818D1A4: - ldr r1, =gTrainerFrontPicPaletteTable - lsls r0, 3 - adds r0, r1 - ldr r0, [r0] - lsls r1, r4, 4 - movs r2, 0x20 - bl LoadCompressedPalette -_0818D1B4: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818D180 - - thumb_func_start uns_builder_assign_animtable1 -uns_builder_assign_animtable1: @ 818D1C0 - push {lr} - lsls r0, 24 - cmp r0, 0 - bne _0818D1D8 - ldr r1, =gUnknown_0203CCEC - ldr r0, =gUnknown_082FF70C - str r0, [r1, 0x8] - b _0818D1E0 - .pool -_0818D1D8: - ldr r0, =gUnknown_0203CCEC - ldr r1, =gUnknown_0830536C - ldr r1, [r1] - str r1, [r0, 0x8] -_0818D1E0: - pop {r0} - bx r0 - .pool - thumb_func_end uns_builder_assign_animtable1 - - thumb_func_start oamt_spawn_poke_or_trainer_picture -oamt_spawn_poke_or_trainer_picture: @ 818D1EC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x30 - str r1, [sp, 0xC] - str r2, [sp, 0x10] - ldr r1, [sp, 0x50] - ldr r2, [sp, 0x54] - ldr r4, [sp, 0x58] - ldr r5, [sp, 0x5C] - ldr r6, [sp, 0x60] - ldr r7, [sp, 0x64] - mov r8, r7 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x8] - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0x14] - lsls r1, 16 - lsrs r1, 16 - str r1, [sp, 0x18] - lsls r2, 16 - lsrs r2, 16 - str r2, [sp, 0x1C] - lsls r4, 24 - lsrs r4, 24 - str r4, [sp, 0x20] - lsls r5, 16 - lsrs r5, 16 - mov r10, r5 - lsls r6, 24 - lsrs r6, 24 - mov r9, r6 - mov r0, r8 - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r1, =gUnknown_0203CD04 - ldrb r0, [r1, 0xB] - cmp r0, 0 - beq _0818D25C -_0818D244: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bhi _0818D25C - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0xB] - cmp r0, 0 - bne _0818D244 -_0818D25C: - cmp r4, 0x8 - beq _0818D280 - movs r0, 0x80 - lsls r0, 6 - bl Alloc - adds r7, r0, 0 - cmp r7, 0 - beq _0818D280 - movs r0, 0x20 - bl Alloc - mov r8, r0 - cmp r0, 0 - bne _0818D28C - adds r0, r7, 0 - bl Free -_0818D280: - ldr r0, =0x0000ffff - b _0818D356 - .pool -_0818D28C: - mov r1, r9 - str r1, [sp] - str r5, [sp, 0x4] - ldr r0, [sp, 0x8] - ldr r1, [sp, 0x10] - ldr r2, [sp, 0x14] - adds r3, r7, 0 - bl load_pokemon_image_TODO - lsls r0, 16 - cmp r0, 0 - bne _0818D280 - lsls r2, r4, 1 - str r2, [sp, 0x2C] - ldr r5, =gUnknown_0203CCEC - ldr r0, =gUnknown_0860B064 - mov r12, r0 - ldr r1, [sp, 0x18] - lsls r1, 16 - str r1, [sp, 0x24] - ldr r2, [sp, 0x1C] - lsls r2, 16 - str r2, [sp, 0x28] - movs r3, 0x80 - lsls r3, 4 - mov r0, r8 - adds r1, r7, 0 - adds r6, r3, 0 - movs r2, 0x3 -_0818D2C6: - str r1, [r0] - strh r3, [r0, 0x4] - adds r0, 0x8 - adds r1, r6 - subs r2, 0x1 - cmp r2, 0 - bge _0818D2C6 - ldr r0, =0x0000ffff - strh r0, [r5] - mov r0, r12 - str r0, [r5, 0x4] - mov r0, r9 - bl uns_builder_assign_animtable1 - mov r1, r8 - str r1, [r5, 0xC] - ldr r0, =gDummySpriteAffineAnimTable - str r0, [r5, 0x10] - ldr r0, =nullsub_122 - str r0, [r5, 0x14] - mov r2, r10 - str r2, [sp] - mov r0, r9 - str r0, [sp, 0x4] - ldr r0, [sp, 0x8] - ldr r1, [sp, 0xC] - ldr r2, [sp, 0x10] - ldr r3, [sp, 0x20] - bl sub_818D0C4 - ldr r2, [sp, 0x24] - asrs r1, r2, 16 - ldr r0, [sp, 0x28] - asrs r2, r0, 16 - adds r0, r5, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - adds r6, r2, 0 - ldr r0, =0x0000ffff - cmp r10, r0 - bne _0818D336 - ldr r0, =gSprites - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldr r2, [sp, 0x20] - lsls r3, r2, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] -_0818D336: - ldr r1, =gUnknown_0203CD04 - ldr r2, [sp, 0x2C] - adds r0, r2, r4 - lsls r0, 2 - adds r2, r0, r1 - str r7, [r2] - adds r1, 0x4 - adds r0, r1 - mov r7, r8 - str r7, [r0] - mov r0, r10 - strh r0, [r2, 0x8] - strb r6, [r2, 0xA] - movs r0, 0x1 - strb r0, [r2, 0xB] - adds r0, r6, 0 -_0818D356: - add sp, 0x30 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end oamt_spawn_poke_or_trainer_picture - - thumb_func_start sub_818D384 -sub_818D384: @ 818D384 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x18 - ldr r4, [sp, 0x34] - ldr r5, [sp, 0x38] - ldr r6, [sp, 0x3C] - ldr r7, [sp, 0x40] - mov r8, r7 - ldr r7, [sp, 0x44] - mov r9, r7 - lsls r0, 16 - lsrs r0, 16 - lsls r3, 24 - lsrs r3, 24 - lsls r6, 24 - lsrs r6, 24 - mov r7, r8 - lsls r7, 16 - lsrs r7, 16 - mov r8, r7 - mov r7, r9 - lsls r7, 24 - lsrs r7, 24 - lsls r4, 16 - asrs r4, 16 - str r4, [sp] - lsls r5, 16 - asrs r5, 16 - str r5, [sp, 0x4] - str r6, [sp, 0x8] - mov r4, r8 - str r4, [sp, 0xC] - str r7, [sp, 0x10] - movs r4, 0 - str r4, [sp, 0x14] - bl oamt_spawn_poke_or_trainer_picture - lsls r0, 16 - lsrs r0, 16 - add sp, 0x18 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_818D384 - - thumb_func_start sub_818D3E4 -sub_818D3E4: @ 818D3E4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x2C - str r1, [sp, 0x8] - str r2, [sp, 0xC] - ldr r1, [sp, 0x4C] - ldr r2, [sp, 0x50] - ldr r4, [sp, 0x54] - ldr r5, [sp, 0x58] - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - lsls r3, 24 - lsrs r6, r3, 24 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp, 0x10] - lsls r2, 16 - lsrs r2, 16 - str r2, [sp, 0x14] - lsls r4, 24 - lsrs r4, 24 - str r4, [sp, 0x18] - lsls r5, 16 - lsrs r5, 16 - str r5, [sp, 0x1C] - movs r5, 0 - ldr r1, =gUnknown_0203CD04 - ldrb r0, [r1, 0xB] - cmp r0, 0 - beq _0818D440 -_0818D428: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x7 - bhi _0818D440 - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0xB] - cmp r0, 0 - bne _0818D428 -_0818D440: - cmp r5, 0x8 - beq _0818D47C - movs r0, 0x80 - lsls r0, 6 - bl Alloc - adds r7, r0, 0 - cmp r7, 0 - beq _0818D47C - movs r0, 0x80 - ands r0, r6 - cmp r0, 0 - beq _0818D468 - movs r0, 0x7F - ands r6, r0 - movs r0, 0x3 - mov r9, r0 - b _0818D46A - .pool -_0818D468: - mov r9, r6 -_0818D46A: - movs r0, 0x20 - bl Alloc - mov r8, r0 - cmp r0, 0 - bne _0818D484 - adds r0, r7, 0 - bl Free -_0818D47C: - ldr r0, =0x0000ffff - b _0818D588 - .pool -_0818D484: - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - mov r0, r10 - ldr r1, [sp, 0xC] - adds r2, r6, 0 - adds r3, r7, 0 - bl load_pokemon_image_TODO - lsls r0, 16 - cmp r0, 0 - bne _0818D47C - lsls r1, r5, 1 - str r1, [sp, 0x28] - ldr r4, =gUnknown_0203CCEC - mov r2, r10 - lsls r2, 2 - mov r12, r2 - ldr r0, [sp, 0x10] - lsls r0, 16 - str r0, [sp, 0x20] - ldr r1, [sp, 0x14] - lsls r1, 16 - str r1, [sp, 0x24] - movs r3, 0x80 - lsls r3, 4 - mov r0, r8 - adds r1, r7, 0 - adds r6, r3, 0 - movs r2, 0x3 -_0818D4C0: - str r1, [r0] - strh r3, [r0, 0x4] - adds r0, 0x8 - adds r1, r6 - subs r2, 0x1 - cmp r2, 0 - bge _0818D4C0 - ldr r0, =0x0000ffff - strh r0, [r4] - ldr r0, =gUnknown_08309AAC - add r0, r12 - ldr r0, [r0] - str r0, [r4, 0x8] - mov r2, r8 - str r2, [r4, 0xC] - mov r0, r9 - cmp r0, 0x1 - bne _0818D4F8 - ldr r0, =gUnknown_082FF694 - b _0818D500 - .pool -_0818D4F8: - mov r1, r9 - cmp r1, 0 - bne _0818D510 - ldr r0, =gUnknown_082FF618 -_0818D500: - str r0, [r4, 0x10] - ldr r0, =gUnknown_0860B06C - str r0, [r4, 0x4] - b _0818D518 - .pool -_0818D510: - ldr r0, =gUnknown_0860B064 - str r0, [r4, 0x4] - ldr r0, =gDummySpriteAffineAnimTable - str r0, [r4, 0x10] -_0818D518: - ldr r2, =nullsub_122 - str r2, [r4, 0x14] - ldr r0, [sp, 0x1C] - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - mov r0, r10 - ldr r1, [sp, 0x8] - ldr r2, [sp, 0xC] - ldr r3, [sp, 0x18] - bl sub_818D0C4 - ldr r2, [sp, 0x20] - asrs r1, r2, 16 - ldr r0, [sp, 0x24] - asrs r2, r0, 16 - adds r0, r4, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - adds r6, r2, 0 - ldr r0, =0x0000ffff - ldr r1, [sp, 0x1C] - cmp r1, r0 - bne _0818D566 - ldr r0, =gSprites - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldr r2, [sp, 0x18] - lsls r3, r2, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] -_0818D566: - ldr r1, =gUnknown_0203CD04 - ldr r2, [sp, 0x28] - adds r0, r2, r5 - lsls r0, 2 - adds r2, r0, r1 - str r7, [r2] - adds r1, 0x4 - adds r0, r1 - mov r1, r8 - str r1, [r0] - mov r0, sp - ldrh r0, [r0, 0x1C] - strh r0, [r2, 0x8] - strb r6, [r2, 0xA] - movs r0, 0x1 - strb r0, [r2, 0xB] - adds r0, r6, 0 -_0818D588: - add sp, 0x2C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_818D3E4 - - thumb_func_start sub_818D5B0 -sub_818D5B0: @ 818D5B0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 16 - lsrs r4, r0, 16 - movs r2, 0 - ldr r0, =gUnknown_0203CD04 - ldrb r1, [r0, 0xA] - adds r3, r0, 0 - cmp r1, r4 - beq _0818D5E0 - adds r1, r3, 0 -_0818D5C8: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x7 - bhi _0818D5E0 - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0xA] - cmp r0, r4 - bne _0818D5C8 -_0818D5E0: - cmp r2, 0x8 - bne _0818D5F0 - ldr r0, =0x0000ffff - b _0818D646 - .pool -_0818D5F0: - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r5, r0, r3 - ldr r1, [r5] - mov r8, r1 - adds r1, r3, 0x4 - adds r0, r1 - ldr r7, [r0] - ldrh r1, [r5, 0x8] - ldr r0, =0x0000ffff - lsls r6, r4, 4 - cmp r1, r0 - beq _0818D624 - ldr r1, =gSprites - adds r0, r6, r4 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x5] - lsrs r0, 4 - bl GetSpritePaletteTagByPaletteNum - lsls r0, 16 - lsrs r0, 16 - bl FreeSpritePaletteByTag -_0818D624: - adds r0, r6, r4 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - bl DestroySprite - mov r0, r8 - bl Free - adds r0, r7, 0 - bl Free - adds r1, r5, 0 - ldr r0, =gUnknown_0860B058 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - movs r0, 0 -_0818D646: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_818D5B0 - - thumb_func_start sub_818D65C -sub_818D65C: @ 818D65C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - mov r9, r1 - adds r7, r2, 0 - adds r4, r3, 0 - ldr r1, [sp, 0x20] - ldr r2, [sp, 0x24] - ldr r3, [sp, 0x28] - lsls r0, 16 - lsrs r5, r0, 16 - lsls r4, 24 - lsrs r4, 24 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r6, r3, 24 - adds r0, r2, 0 - movs r1, 0x7 - bl GetWindowAttribute - adds r3, r0, 0 - movs r0, 0 - str r0, [sp] - adds r0, r5, 0 - adds r1, r7, 0 - adds r2, r4, 0 - bl sub_818D09C - lsls r0, 16 - cmp r0, 0 - bne _0818D6B8 - str r6, [sp] - adds r0, r5, 0 - mov r1, r9 - adds r2, r7, 0 - mov r3, r8 - bl sub_818D180 - movs r0, 0 - b _0818D6BA -_0818D6B8: - ldr r0, =0x0000ffff -_0818D6BA: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_818D65C - - thumb_func_start sub_818D6CC -sub_818D6CC: @ 818D6CC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - str r1, [sp, 0x18] - str r2, [sp, 0x1C] - ldr r1, [sp, 0x44] - ldr r2, [sp, 0x48] - ldr r4, [sp, 0x4C] - ldr r5, [sp, 0x50] - ldr r6, [sp, 0x54] - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - lsls r3, 24 - lsrs r7, r3, 24 - lsls r1, 16 - lsrs r1, 16 - mov r10, r1 - lsls r2, 16 - lsrs r2, 16 - mov r8, r2 - lsls r4, 24 - lsrs r4, 24 - str r4, [sp, 0x20] - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - movs r0, 0x80 - lsls r0, 6 - bl Alloc - adds r4, r0, 0 - cmp r4, 0 - beq _0818D762 - str r6, [sp] - mov r0, r9 - ldr r1, [sp, 0x1C] - adds r2, r7, 0 - adds r3, r4, 0 - bl sub_818D09C - lsls r0, 16 - cmp r0, 0 - bne _0818D762 - movs r0, 0x40 - str r0, [sp] - str r0, [sp, 0x4] - mov r1, r10 - str r1, [sp, 0x8] - mov r1, r8 - str r1, [sp, 0xC] - str r0, [sp, 0x10] - str r0, [sp, 0x14] - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0 - bl BlitBitmapRectToWindow - str r6, [sp] - mov r0, r9 - ldr r1, [sp, 0x18] - ldr r2, [sp, 0x1C] - ldr r3, [sp, 0x20] - bl sub_818D180 - adds r0, r4, 0 - bl Free - movs r0, 0 - b _0818D764 -_0818D762: - ldr r0, =0x0000ffff -_0818D764: - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_818D6CC - - thumb_func_start sub_818D778 -sub_818D778: @ 818D778 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x18 - ldr r4, [sp, 0x34] - ldr r5, [sp, 0x38] - ldr r6, [sp, 0x3C] - ldr r7, [sp, 0x40] - mov r8, r7 - ldr r7, [sp, 0x44] - mov r9, r7 - lsls r0, 16 - lsrs r0, 16 - lsls r3, 24 - lsrs r3, 24 - lsls r6, 24 - lsrs r6, 24 - mov r7, r8 - lsls r7, 16 - lsrs r7, 16 - mov r8, r7 - mov r7, r9 - lsls r7, 24 - lsrs r7, 24 - lsls r4, 16 - asrs r4, 16 - str r4, [sp] - lsls r5, 16 - asrs r5, 16 - str r5, [sp, 0x4] - str r6, [sp, 0x8] - mov r4, r8 - str r4, [sp, 0xC] - movs r4, 0 - str r4, [sp, 0x10] - str r7, [sp, 0x14] - bl oamt_spawn_poke_or_trainer_picture - lsls r0, 16 - lsrs r0, 16 - add sp, 0x18 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_818D778 - - thumb_func_start sub_818D7D8 -sub_818D7D8: @ 818D7D8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - ldr r4, [sp, 0x2C] - ldr r5, [sp, 0x30] - ldr r6, [sp, 0x34] - ldr r7, [sp, 0x38] - lsls r0, 16 - lsrs r0, 16 - lsls r3, 24 - lsrs r3, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r7, 16 - lsrs r7, 16 - lsls r4, 16 - asrs r4, 16 - str r4, [sp] - lsls r5, 16 - asrs r5, 16 - str r5, [sp, 0x4] - str r6, [sp, 0x8] - str r7, [sp, 0xC] - movs r4, 0 - str r4, [sp, 0x10] - bl sub_818D778 - lsls r0, 16 - lsrs r0, 16 - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_818D7D8 - - thumb_func_start sub_818D820 -sub_818D820: @ 818D820 - push {lr} - lsls r0, 16 - lsrs r0, 16 - bl sub_818D5B0 - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_818D820 - - thumb_func_start sub_818D834 -sub_818D834: @ 818D834 - push {r4,r5,lr} - sub sp, 0xC - ldr r4, [sp, 0x18] - ldr r5, [sp, 0x1C] - lsls r0, 16 - lsrs r0, 16 - lsls r3, 24 - lsrs r3, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - str r4, [sp] - str r5, [sp, 0x4] - movs r4, 0 - str r4, [sp, 0x8] - bl sub_818D65C - lsls r0, 16 - lsrs r0, 16 - add sp, 0xC - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_818D834 - - thumb_func_start sub_818D864 -sub_818D864: @ 818D864 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - ldr r4, [sp, 0x2C] - ldr r5, [sp, 0x30] - ldr r6, [sp, 0x34] - ldr r7, [sp, 0x38] - lsls r0, 16 - lsrs r0, 16 - lsls r3, 24 - lsrs r3, 24 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - lsls r6, 24 - lsrs r6, 24 - lsls r7, 24 - lsrs r7, 24 - str r4, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - str r7, [sp, 0xC] - movs r4, 0 - str r4, [sp, 0x10] - bl sub_818D6CC - lsls r0, 16 - lsrs r0, 16 - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_818D864 - - thumb_func_start sub_818D8AC -sub_818D8AC: @ 818D8AC - push {r4,r5,lr} - sub sp, 0x14 - adds r5, r1, 0 - ldr r1, [sp, 0x20] - ldr r4, [sp, 0x24] - lsls r0, 16 - lsrs r0, 16 - lsls r5, 24 - lsrs r5, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r4, 16 - lsrs r4, 16 - lsls r2, 16 - asrs r2, 16 - str r2, [sp] - lsls r3, 16 - asrs r3, 16 - str r3, [sp, 0x4] - str r1, [sp, 0x8] - str r4, [sp, 0xC] - movs r1, 0x1 - str r1, [sp, 0x10] - movs r1, 0 - movs r2, 0 - adds r3, r5, 0 - bl sub_818D384 - lsls r0, 16 - lsrs r0, 16 - add sp, 0x14 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_818D8AC - - thumb_func_start sub_818D8F0 -sub_818D8F0: @ 818D8F0 - push {lr} - lsls r0, 16 - lsrs r0, 16 - bl sub_818D5B0 - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_818D8F0 - - thumb_func_start sub_818D904 -sub_818D904: @ 818D904 - push {r4,lr} - sub sp, 0xC - adds r4, r1, 0 - lsls r0, 16 - lsrs r0, 16 - lsls r4, 24 - lsrs r4, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - str r2, [sp] - str r3, [sp, 0x4] - movs r1, 0x1 - str r1, [sp, 0x8] - movs r1, 0 - movs r2, 0 - adds r3, r4, 0 - bl sub_818D65C - lsls r0, 16 - lsrs r0, 16 - add sp, 0xC - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_818D904 - - thumb_func_start sub_818D938 -sub_818D938: @ 818D938 - push {r4,r5,lr} - sub sp, 0x14 - adds r5, r1, 0 - ldr r1, [sp, 0x20] - ldr r4, [sp, 0x24] - lsls r0, 16 - lsrs r0, 16 - lsls r5, 24 - lsrs r5, 24 - lsls r2, 16 - lsrs r2, 16 - lsls r3, 16 - lsrs r3, 16 - lsls r1, 24 - lsrs r1, 24 - lsls r4, 24 - lsrs r4, 24 - str r2, [sp] - str r3, [sp, 0x4] - str r1, [sp, 0x8] - str r4, [sp, 0xC] - movs r1, 0x1 - str r1, [sp, 0x10] - movs r1, 0 - movs r2, 0 - adds r3, r5, 0 - bl sub_818D6CC - lsls r0, 16 - lsrs r0, 16 - add sp, 0x14 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_818D938 - - thumb_func_start sub_818D97C -sub_818D97C: @ 818D97C - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x1 - bne _0818D9A2 - cmp r0, 0 - beq _0818D99C - ldr r0, =gUnknown_0831F578 - adds r0, 0x3F - ldrb r0, [r0] - b _0818D9A2 - .pool -_0818D99C: - ldr r0, =gUnknown_0831F578 - adds r0, 0x3C - ldrb r0, [r0] -_0818D9A2: - pop {r1} - bx r1 - .pool - thumb_func_end sub_818D97C - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_frontier_1.s b/asm/battle_frontier_1.s index 135918627..e870c8798 100755 --- a/asm/battle_frontier_1.s +++ b/asm/battle_frontier_1.s @@ -1802,7 +1802,7 @@ _0818F974: sub_818F9B0: @ 818F9B0 push {lr} ldr r0, =gStringVar1 - ldr r2, =gUnknown_085CCD20 + ldr r2, =gRoundsStringTable ldr r1, =gSaveBlock2Ptr ldr r1, [r1] ldr r3, =0x00000cb2 @@ -1821,7 +1821,7 @@ sub_818F9B0: @ 818F9B0 sub_818F9E0: @ 818F9E0 push {lr} ldr r0, =gStringVar1 - ldr r2, =gUnknown_085CCD20 + ldr r2, =gRoundsStringTable ldr r1, =gSaveBlock2Ptr ldr r1, [r1] ldr r3, =0x00000cb2 @@ -2599,10 +2599,10 @@ _0818FFFC: b _081900A4 .pool _0819002C: - ldr r0, =gUnknown_0831ACE8 + ldr r0, =gTypeEffectiveness adds r1, r6, r0 ldrb r0, [r1] - ldr r7, =gUnknown_0831ACE8 + ldr r7, =gTypeEffectiveness cmp r0, 0xFF beq _081900A4 adds r4, r1, 0 @@ -2657,7 +2657,7 @@ _08190088: _08190096: adds r4, 0x3 adds r6, 0x3 - ldr r1, =gUnknown_0831ACE8 + ldr r1, =gTypeEffectiveness adds r0, r6, r1 ldrb r0, [r0] cmp r0, 0xFF @@ -3165,27 +3165,27 @@ _0819044E: strh r4, [r0] ldr r0, =gUnknown_02022E16 strh r4, [r0] - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X strh r4, [r0] - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y strh r4, [r0] - ldr r0, =gUnknown_02022E20 + ldr r0, =gBattle_BG3_X strh r4, [r0] ldr r0, =gUnknown_02022E22 strh r4, [r0] mov r2, r9 cmp r2, 0x2 bne _081904DC - ldr r0, =gUnknown_02022E1C + ldr r0, =gBattle_BG2_X strh r4, [r0] - ldr r0, =gUnknown_02022E1E + ldr r0, =gBattle_BG2_Y strh r4, [r0] b _081904E6 .pool _081904DC: - ldr r0, =gUnknown_02022E1C + ldr r0, =gBattle_BG2_X strh r4, [r0] - ldr r1, =gUnknown_02022E1E + ldr r1, =gBattle_BG2_Y movs r0, 0xA0 strh r0, [r1] _081904E6: @@ -4371,9 +4371,9 @@ _08190E98: strh r1, [r0] ldr r0, =gUnknown_02022E16 strh r1, [r0] - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X strh r1, [r0] - ldr r1, =gUnknown_02022E1A + ldr r1, =gBattle_BG1_Y movs r0, 0xA0 strh r0, [r1] b _08190EE6 @@ -4384,9 +4384,9 @@ _08190ED4: ldr r1, =gUnknown_02022E16 movs r0, 0xA0 strh r0, [r1] - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X strh r2, [r0] - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y strh r2, [r0] _08190EE6: cmp r6, 0x1 @@ -4396,9 +4396,9 @@ _08190EE6: ldrb r1, [r0, 0x10] cmp r1, 0 bne _08190F50 - ldr r0, =gUnknown_02022E1C + ldr r0, =gBattle_BG2_X strh r1, [r0] - ldr r1, =gUnknown_02022E1E + ldr r1, =gBattle_BG2_Y movs r6, 0xA0 lsls r6, 1 adds r0, r6, 0 @@ -4424,12 +4424,12 @@ _08190EE6: b _08191084 .pool _08190F50: - ldr r1, =gUnknown_02022E1C + ldr r1, =gBattle_BG2_X movs r6, 0x80 lsls r6, 1 adds r0, r6, 0 strh r0, [r1] - ldr r0, =gUnknown_02022E1E + ldr r0, =gBattle_BG2_Y movs r4, 0 strh r4, [r0] ldr r3, =gUnknown_0860D080 @@ -4473,9 +4473,9 @@ _08190F9C: lsrs r0, 24 adds r1, 0x11 bl sub_8192F08 - ldr r0, =gUnknown_02022E1C + ldr r0, =gBattle_BG2_X strh r5, [r0] - ldr r1, =gUnknown_02022E1E + ldr r1, =gBattle_BG2_Y movs r3, 0xA0 lsls r3, 1 adds r0, r3, 0 @@ -4508,10 +4508,10 @@ _08190FF8: lsrs r0, 24 adds r1, 0x11 bl sub_8192F08 - ldr r1, =gUnknown_02022E1C + ldr r1, =gBattle_BG2_X movs r0, 0 strh r0, [r1] - ldr r1, =gUnknown_02022E1E + ldr r1, =gBattle_BG2_Y movs r2, 0xA0 lsls r2, 1 adds r0, r2, 0 @@ -4529,12 +4529,12 @@ _08190FF8: b _08191084 .pool _0819104C: - ldr r1, =gUnknown_02022E1C + ldr r1, =gBattle_BG2_X movs r3, 0x80 lsls r3, 1 adds r0, r3, 0 strh r0, [r1] - ldr r1, =gUnknown_02022E1E + ldr r1, =gBattle_BG2_Y movs r0, 0xA0 strh r0, [r1] ldr r1, =gTasks @@ -4770,9 +4770,9 @@ _08191234: strh r1, [r0] ldr r0, =gUnknown_02022E16 strh r1, [r0] - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X strh r1, [r0] - ldr r1, =gUnknown_02022E1A + ldr r1, =gBattle_BG1_Y ldr r2, =0x0000ff60 adds r0, r2, 0 strh r0, [r1] @@ -4785,9 +4785,9 @@ _08191278: ldr r3, =0x0000ff60 adds r0, r3, 0 strh r0, [r1] - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X strh r2, [r0] - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y strh r2, [r0] _0819128C: cmp r6, 0x2 @@ -4797,9 +4797,9 @@ _0819128C: ldrb r1, [r0, 0x10] cmp r1, 0 bne _081912F4 - ldr r0, =gUnknown_02022E1C + ldr r0, =gBattle_BG2_X strh r1, [r0] - ldr r1, =gUnknown_02022E1E + ldr r1, =gBattle_BG2_Y movs r0, 0xA0 strh r0, [r1] ldr r3, =gUnknown_0860D080 @@ -4823,10 +4823,10 @@ _0819128C: b _0819141C .pool _081912F4: - ldr r0, =gUnknown_02022E1C + ldr r0, =gBattle_BG2_X movs r4, 0 strh r4, [r0] - ldr r0, =gUnknown_02022E1E + ldr r0, =gBattle_BG2_Y strh r4, [r0] ldr r3, =gUnknown_0860D080 ldr r2, =gTasks @@ -4869,9 +4869,9 @@ _0819133C: lsrs r0, 24 adds r1, 0x11 bl sub_8192F08 - ldr r0, =gUnknown_02022E1C + ldr r0, =gBattle_BG2_X strh r5, [r0] - ldr r1, =gUnknown_02022E1E + ldr r1, =gBattle_BG2_Y movs r0, 0xA0 strh r0, [r1] ldr r2, [r6] @@ -4902,10 +4902,10 @@ _08191394: lsrs r0, 24 adds r1, 0x11 bl sub_8192F08 - ldr r1, =gUnknown_02022E1C + ldr r1, =gBattle_BG2_X movs r0, 0 strh r0, [r1] - ldr r1, =gUnknown_02022E1E + ldr r1, =gBattle_BG2_Y movs r0, 0xA0 strh r0, [r1] ldr r2, [r6] @@ -4921,12 +4921,12 @@ _08191394: b _0819141C .pool _081913E4: - ldr r1, =gUnknown_02022E1C + ldr r1, =gBattle_BG2_X movs r4, 0x80 lsls r4, 1 adds r0, r4, 0 strh r0, [r1] - ldr r1, =gUnknown_02022E1E + ldr r1, =gBattle_BG2_Y movs r0, 0 strh r0, [r1] ldr r1, =gTasks @@ -5162,12 +5162,12 @@ _081915CC: strh r1, [r0] ldr r0, =gUnknown_02022E16 strh r1, [r0] - ldr r2, =gUnknown_02022E18 + ldr r2, =gBattle_BG1_X movs r6, 0x80 lsls r6, 1 adds r0, r6, 0 strh r0, [r2] - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y strh r1, [r0] b _08191622 .pool @@ -5179,9 +5179,9 @@ _0819160C: strh r0, [r1] ldr r0, =gUnknown_02022E16 strh r2, [r0] - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X strh r2, [r0] - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y strh r2, [r0] _08191622: ldr r0, =gUnknown_0203CD78 @@ -5189,12 +5189,12 @@ _08191622: ldrb r0, [r4, 0x10] cmp r0, 0 bne _08191688 - ldr r1, =gUnknown_02022E1C + ldr r1, =gBattle_BG2_X movs r4, 0x80 lsls r4, 1 adds r0, r4, 0 strh r0, [r1] - ldr r1, =gUnknown_02022E1E + ldr r1, =gBattle_BG2_Y movs r0, 0xA0 strh r0, [r1] ldr r3, =gUnknown_0860D080 @@ -5218,12 +5218,12 @@ _08191622: b _081916C6 .pool _08191688: - ldr r1, =gUnknown_02022E1C + ldr r1, =gBattle_BG2_X movs r6, 0x80 lsls r6, 1 adds r0, r6, 0 strh r0, [r1] - ldr r1, =gUnknown_02022E1E + ldr r1, =gBattle_BG2_Y movs r0, 0 strh r0, [r1] ldr r3, =gUnknown_0860D15C @@ -5462,12 +5462,12 @@ _0819187C: strh r1, [r0] ldr r0, =gUnknown_02022E16 strh r1, [r0] - ldr r2, =gUnknown_02022E18 + ldr r2, =gBattle_BG1_X movs r6, 0x80 lsls r6, 1 adds r0, r6, 0 strh r0, [r2] - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y strh r1, [r0] b _081918D2 .pool @@ -5479,9 +5479,9 @@ _081918BC: strh r0, [r1] ldr r0, =gUnknown_02022E16 strh r2, [r0] - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X strh r2, [r0] - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y strh r2, [r0] _081918D2: ldr r0, =gUnknown_0203CD78 @@ -5489,12 +5489,12 @@ _081918D2: ldrb r0, [r2, 0x10] cmp r0, 0 bne _08191924 - ldr r1, =gUnknown_02022E1C + ldr r1, =gBattle_BG2_X movs r4, 0x80 lsls r4, 1 adds r0, r4, 0 strh r0, [r1] - ldr r1, =gUnknown_02022E1E + ldr r1, =gBattle_BG2_Y movs r0, 0xA0 strh r0, [r1] ldr r1, =gTasks @@ -5510,10 +5510,10 @@ _081918D2: b _08191958 .pool _08191924: - ldr r1, =gUnknown_02022E1C + ldr r1, =gBattle_BG2_X movs r0, 0 strh r0, [r1] - ldr r1, =gUnknown_02022E1E + ldr r1, =gBattle_BG2_Y movs r0, 0xA0 strh r0, [r1] ldr r1, =gTasks @@ -5749,12 +5749,12 @@ _08191B08: strh r1, [r0] ldr r0, =gUnknown_02022E16 strh r1, [r0] - ldr r2, =gUnknown_02022E18 + ldr r2, =gBattle_BG1_X movs r6, 0xFF lsls r6, 8 adds r0, r6, 0 strh r0, [r2] - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y strh r1, [r0] b _08191B5E .pool @@ -5766,9 +5766,9 @@ _08191B48: strh r0, [r1] ldr r0, =gUnknown_02022E16 strh r2, [r0] - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X strh r2, [r0] - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y strh r2, [r0] _08191B5E: ldr r0, =gUnknown_0203CD78 @@ -5776,19 +5776,19 @@ _08191B5E: ldrb r0, [r0, 0x10] cmp r0, 0x1 bne _08191B94 - ldr r1, =gUnknown_02022E1C + ldr r1, =gBattle_BG2_X movs r0, 0 strh r0, [r1] - ldr r1, =gUnknown_02022E1E + ldr r1, =gBattle_BG2_Y movs r0, 0xA0 strh r0, [r1] b _08191B9E .pool _08191B94: - ldr r0, =gUnknown_02022E1C + ldr r0, =gBattle_BG2_X movs r1, 0 strh r1, [r0] - ldr r0, =gUnknown_02022E1E + ldr r0, =gBattle_BG2_Y strh r1, [r0] _08191B9E: ldr r4, =gUnknown_0860D15C @@ -6016,12 +6016,12 @@ _08191D68: strh r1, [r0] ldr r0, =gUnknown_02022E16 strh r1, [r0] - ldr r2, =gUnknown_02022E18 + ldr r2, =gBattle_BG1_X movs r6, 0xFF lsls r6, 8 adds r0, r6, 0 strh r0, [r2] - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y strh r1, [r0] b _08191DBE .pool @@ -6033,9 +6033,9 @@ _08191DA8: strh r0, [r1] ldr r0, =gUnknown_02022E16 strh r2, [r0] - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X strh r2, [r0] - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y strh r2, [r0] _08191DBE: ldr r0, =gUnknown_0203CD78 @@ -6043,12 +6043,12 @@ _08191DBE: ldrb r0, [r2, 0x10] cmp r0, 0x2 bne _08191E10 - ldr r1, =gUnknown_02022E1C + ldr r1, =gBattle_BG2_X movs r4, 0x80 lsls r4, 1 adds r0, r4, 0 strh r0, [r1] - ldr r1, =gUnknown_02022E1E + ldr r1, =gBattle_BG2_Y movs r0, 0xA0 strh r0, [r1] ldr r1, =gTasks @@ -6064,10 +6064,10 @@ _08191DBE: b _08191E44 .pool _08191E10: - ldr r1, =gUnknown_02022E1C + ldr r1, =gBattle_BG2_X movs r0, 0 strh r0, [r1] - ldr r1, =gUnknown_02022E1E + ldr r1, =gBattle_BG2_Y movs r0, 0xA0 strh r0, [r1] ldr r1, =gTasks @@ -6310,11 +6310,11 @@ _08191FF8: ldrh r0, [r1] subs r0, 0x4 strh r0, [r1] - ldr r1, =gUnknown_02022E1A + ldr r1, =gBattle_BG1_Y ldrh r0, [r1] subs r0, 0x4 strh r0, [r1] - ldr r1, =gUnknown_02022E1E + ldr r1, =gBattle_BG2_Y b _081920A4 .pool _08192038: @@ -6335,11 +6335,11 @@ _08192038: ldrh r0, [r1] adds r0, 0x4 strh r0, [r1] - ldr r1, =gUnknown_02022E1A + ldr r1, =gBattle_BG1_Y ldrh r0, [r1] adds r0, 0x4 strh r0, [r1] - ldr r1, =gUnknown_02022E1E + ldr r1, =gBattle_BG2_Y b _081920E8 .pool _08192078: @@ -6360,11 +6360,11 @@ _08192078: ldrh r0, [r1] subs r0, 0x4 strh r0, [r1] - ldr r1, =gUnknown_02022E18 + ldr r1, =gBattle_BG1_X ldrh r0, [r1] subs r0, 0x4 strh r0, [r1] - ldr r1, =gUnknown_02022E1C + ldr r1, =gBattle_BG2_X _081920A4: ldrh r0, [r1] subs r0, 0x4 @@ -6389,11 +6389,11 @@ _081920BC: ldrh r0, [r1] adds r0, 0x4 strh r0, [r1] - ldr r1, =gUnknown_02022E18 + ldr r1, =gBattle_BG1_X ldrh r0, [r1] adds r0, 0x4 strh r0, [r1] - ldr r1, =gUnknown_02022E1C + ldr r1, =gBattle_BG2_X _081920E8: ldrh r0, [r1] adds r0, 0x4 @@ -10109,7 +10109,7 @@ _08194074: lsls r0, r4, 1 add r0, r10 ldrh r0, [r0] - bl ai_rate_move + bl AI_TypeCalc lsls r0, 24 lsrs r5, r0, 24 movs r0, 0x6 @@ -10404,9 +10404,9 @@ _0819427C: strh r4, [r0] ldr r0, =gUnknown_02022E16 strh r4, [r0] - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X strh r4, [r0] - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y strh r4, [r0] movs r0, 0x2 movs r1, 0 @@ -10605,7 +10605,7 @@ _081944FC: movs r2, 0 movs r1, 0x2 strb r1, [r0, 0x5] - ldr r0, =gUnknown_085CCCEE + ldr r0, =gText_BattleTourney str r0, [sp, 0x4] add r0, sp, 0x4 strb r1, [r0, 0x4] @@ -11366,19 +11366,19 @@ sub_8194B70: @ 8194B70 ldrh r1, [r0] movs r0, 0x12 bl SetGpuReg - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X ldrh r1, [r0] movs r0, 0x14 bl SetGpuReg - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y ldrh r1, [r0] movs r0, 0x16 bl SetGpuReg - ldr r0, =gUnknown_02022E1C + ldr r0, =gBattle_BG2_X ldrh r1, [r0] movs r0, 0x18 bl SetGpuReg - ldr r0, =gUnknown_02022E1E + ldr r0, =gBattle_BG2_Y ldrh r1, [r0] movs r0, 0x1A bl SetGpuReg @@ -11494,11 +11494,11 @@ sub_8194CE4: @ 8194CE4 ldrh r1, [r0] movs r0, 0x12 bl SetGpuReg - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X ldrh r1, [r0] movs r0, 0x14 bl SetGpuReg - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y ldrh r1, [r0] movs r0, 0x16 bl SetGpuReg diff --git a/asm/battle_frontier_2.s b/asm/battle_frontier_2.s index a8494efe6..36898e456 100755 --- a/asm/battle_frontier_2.s +++ b/asm/battle_frontier_2.s @@ -2398,7 +2398,7 @@ sub_819B9B4: @ 819B9B4 movs r0, 0 movs r1, 0 bl FillWindowPixelBuffer - ldr r2, =gUnknown_085EEBB2 + ldr r2, =gText_RentalPkmn2 movs r0, 0x1 str r0, [sp] movs r0, 0 @@ -2481,20 +2481,20 @@ sub_819BA64: @ 819BA64 ldrb r0, [r0, 0x5] cmp r0, 0x1 bne _0819BA88 - ldr r2, =gUnknown_085EEBC1 + ldr r2, =gText_SelectFirstPkmn b _0819BA9C .pool _0819BA88: cmp r0, 0x2 bne _0819BA94 - ldr r2, =gUnknown_085EEBDB + ldr r2, =gText_SelectSecondPkmn b _0819BA9C .pool _0819BA94: - ldr r2, =gUnknown_085EEC2D + ldr r2, =gText_TheseThreePkmnOkay cmp r0, 0x3 bne _0819BA9C - ldr r2, =gUnknown_085EEBF6 + ldr r2, =gText_SelectThirdPkmn _0819BA9C: movs r0, 0x5 str r0, [sp] @@ -2521,7 +2521,7 @@ sub_819BAC8: @ 819BAC8 movs r0, 0x2 movs r1, 0 bl FillWindowPixelBuffer - ldr r2, =gUnknown_085EEC50 + ldr r2, =gText_CantSelectSamePkmn movs r0, 0x5 str r0, [sp] movs r0, 0 @@ -2560,7 +2560,7 @@ sub_819BAFC: @ 819BAFC str r4, [sp] movs r6, 0 str r6, [sp, 0x4] - ldr r0, =gUnknown_085EEC15 + ldr r0, =gText_Summary str r0, [sp, 0x8] movs r0, 0x3 movs r1, 0x1 @@ -2571,7 +2571,7 @@ sub_819BAFC: @ 819BAFC beq _0819BB60 str r4, [sp] str r6, [sp, 0x4] - ldr r0, =gUnknown_085EEC24 + ldr r0, =gText_Deselect str r0, [sp, 0x8] movs r0, 0x3 movs r1, 0x1 @@ -2583,7 +2583,7 @@ sub_819BAFC: @ 819BAFC _0819BB60: str r4, [sp] str r5, [sp, 0x4] - ldr r0, =gUnknown_085EEC10 + ldr r0, =gText_Rent str r0, [sp, 0x8] movs r0, 0x3 movs r1, 0x1 @@ -2595,7 +2595,7 @@ _0819BB74: str r0, [sp] movs r0, 0 str r0, [sp, 0x4] - ldr r0, =gUnknown_085EEC1D + ldr r0, =gText_Others2 str r0, [sp, 0x8] movs r0, 0x3 movs r1, 0x1 @@ -2625,7 +2625,7 @@ sub_819BBA8: @ 819BBA8 str r5, [sp] movs r4, 0 str r4, [sp, 0x4] - ldr r0, =gUnknown_085EEC49 + ldr r0, =gText_Yes2 str r0, [sp, 0x8] movs r0, 0x4 movs r1, 0x1 @@ -2634,7 +2634,7 @@ sub_819BBA8: @ 819BBA8 bl box_print str r5, [sp] str r4, [sp, 0x4] - ldr r0, =gUnknown_085EEC4D + ldr r0, =gText_No2 str r0, [sp, 0x8] movs r0, 0x4 movs r1, 0x1 @@ -4584,7 +4584,7 @@ sub_819CC24: @ 819CC24 ldrsh r5, [r4, r0] cmp r5, 0 bne _0819CC5A - ldr r0, =gUnknown_085EECBB + ldr r0, =gText_QuitSwapping bl sub_819EBEC ldr r0, =gUnknown_03001284 ldr r0, [r0] @@ -4670,7 +4670,7 @@ sub_819CCD4: @ 819CCD4 adds r1, 0x30 movs r2, 0x1 bl sub_819F2B4 - ldr r0, =gUnknown_085EECF0 + ldr r0, =gText_AcceptThisPkmn bl sub_819EBEC ldr r0, [r4] adds r0, 0x20 @@ -6176,12 +6176,12 @@ _0819D948: ldrb r0, [r0, 0x14] cmp r0, 0 bne _0819D964 - ldr r0, =gUnknown_085EEC73 + ldr r0, =gText_SelectPkmnToSwap bl sub_819EBEC b _0819D96A .pool _0819D964: - ldr r0, =gUnknown_085EEC8B + ldr r0, =gText_SelectPkmnToAccept bl sub_819EBEC _0819D96A: ldr r0, =gUnknown_03001284 @@ -6765,7 +6765,7 @@ _0819DF02: b _0819E006 .pool _0819DF10: - ldr r0, =gUnknown_085EEC73 + ldr r0, =gText_SelectPkmnToSwap bl sub_819EBEC movs r0, 0x2 bl PutWindowTilemap @@ -8272,7 +8272,7 @@ sub_819EB18: @ 819EB18 movs r0, 0 movs r1, 0x11 bl FillWindowPixelBuffer - ldr r2, =gUnknown_085EEC66 + ldr r2, =gText_PkmnSwap movs r0, 0x1 str r0, [sp] movs r0, 0 @@ -8402,7 +8402,7 @@ sub_819EC20: @ 819EC20 str r5, [sp] movs r4, 0 str r4, [sp, 0x4] - ldr r0, =gUnknown_085EECAA + ldr r0, =gText_Summary2 str r0, [sp, 0x8] movs r0, 0x3 movs r1, 0x1 @@ -8411,7 +8411,7 @@ sub_819EC20: @ 819EC20 bl box_print str r5, [sp] str r4, [sp, 0x4] - ldr r0, =gUnknown_085EECA5 + ldr r0, =gText_Swap str r0, [sp, 0x8] movs r0, 0x3 movs r1, 0x1 @@ -8420,7 +8420,7 @@ sub_819EC20: @ 819EC20 bl box_print str r5, [sp] str r4, [sp, 0x4] - ldr r0, =gUnknown_085EECB2 + ldr r0, =gText_Rechoose str r0, [sp, 0x8] movs r0, 0x3 movs r1, 0x1 @@ -8450,7 +8450,7 @@ sub_819EC94: @ 819EC94 str r5, [sp] movs r4, 0 str r4, [sp, 0x4] - ldr r0, =gUnknown_085EECCA + ldr r0, =gText_Yes3 str r0, [sp, 0x8] movs r0, 0x4 movs r1, 0x1 @@ -8459,7 +8459,7 @@ sub_819EC94: @ 819EC94 bl box_print str r5, [sp] str r4, [sp, 0x4] - ldr r0, =gUnknown_085EECCE + ldr r0, =gText_No3 str r0, [sp, 0x8] movs r0, 0x4 movs r1, 0x1 @@ -8523,12 +8523,12 @@ sub_819ED34: @ 819ED34 beq _0819ED56 cmp r0, 0x1 bne _0819ED60 - ldr r0, =gUnknown_085EECD1 + ldr r0, =gText_PkmnForSwap movs r1, 0 movs r2, 0x5 bl sub_819ECF0 _0819ED56: - ldr r0, =gUnknown_085EECDD + ldr r0, =gText_Cancel3 movs r1, 0x18 movs r2, 0x5 bl sub_819ECF0 @@ -8554,12 +8554,12 @@ sub_819ED78: @ 819ED78 beq _0819ED9A cmp r0, 0x1 bne _0819EDA4 - ldr r0, =gUnknown_085EECD1 + ldr r0, =gText_PkmnForSwap movs r1, 0x8 movs r2, 0x3 bl sub_819ECF0 _0819ED9A: - ldr r0, =gUnknown_085EECDD + ldr r0, =gText_Cancel3 movs r1, 0x20 movs r2, 0x3 bl sub_819ECF0 @@ -8588,14 +8588,14 @@ _0819EDCC: ldrb r0, [r0, 0x14] cmp r0, 0x1 bne _0819EDF6 - ldr r0, =gUnknown_085EECD1 + ldr r0, =gText_PkmnForSwap movs r1, 0x8 movs r2, 0x3 bl sub_819ECF0 b _0819EDF6 .pool _0819EDEC: - ldr r0, =gUnknown_085EECDD + ldr r0, =gText_Cancel3 movs r1, 0x20 movs r2, 0x3 bl sub_819ECF0 @@ -9401,7 +9401,7 @@ _0819F4C8: .4byte _0819F548 .4byte _0819F568 _0819F4DC: - ldr r0, =gUnknown_085EED0A + ldr r0, =gText_SamePkmnInPartyAlready bl sub_819EBEC ldr r0, =gUnknown_03001284 ldr r0, [r0] @@ -9446,7 +9446,7 @@ _0819F52C: bl CopyWindowToVram b _0819F54E _0819F548: - ldr r0, =gUnknown_085EEC8B + ldr r0, =gText_SelectPkmnToAccept bl sub_819EBEC _0819F54E: ldr r0, =gTasks @@ -11469,9 +11469,9 @@ _081A0528: movs r0, 0x12 mov r10, r0 movs r6, 0x8 - ldr r0, =gUnknown_085EAEB1 + ldr r0, =gText_Lv50 str r0, [sp, 0xC] - ldr r0, =gUnknown_085EAEB8 + ldr r0, =gText_OpenLevel str r0, [sp, 0x10] b _081A0652 .pool @@ -11580,9 +11580,9 @@ _081A061C: movs r0, 0x12 mov r10, r0 movs r6, 0x8 - ldr r0, =gUnknown_085ED193 + ldr r0, =gText_Give str r0, [sp, 0xC] - ldr r0, =gUnknown_085ED198 + ldr r0, =gText_NoNeed str r0, [sp, 0x10] b _081A0652 .pool @@ -11590,9 +11590,9 @@ _081A0634: movs r1, 0x14 mov r10, r1 movs r6, 0x8 - ldr r0, =gUnknown_085EAE62 + ldr r0, =gText_Yes str r0, [sp, 0xC] - ldr r0, =gUnknown_085EAE66 + ldr r0, =gText_No str r0, [sp, 0x10] b _081A0652 .pool @@ -12950,11 +12950,11 @@ _081A1140: ands r0, r1 cmp r0, 0x1 bne _081A115C - ldr r1, =gUnknown_085EAEB1 + ldr r1, =gText_Lv50 b _081A1174 .pool _081A115C: - ldr r1, =gUnknown_085EAEB8 + ldr r1, =gText_OpenLevel b _081A1174 .pool _081A1164: @@ -14386,7 +14386,7 @@ _081A1D24: movs r3, 0x4 bl ConvertIntToDecimalStringN ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EE302 + ldr r1, =gText_WinStreak adds r0, r4, 0 bl StringExpandPlaceholders mov r1, r10 @@ -14434,7 +14434,7 @@ sub_81A1D78: @ 81A1D78 adds r4, r0 adds r4, r1 ldrh r1, [r4] - ldr r0, =gUnknown_085EE319 + ldr r0, =gText_Record str r5, [sp] bl sub_81A1CD8 add sp, 0x4 @@ -14545,7 +14545,7 @@ _081A1E66: lsrs r0, 24 cmp r0, 0x1 bne _081A1E88 - ldr r0, =gUnknown_085EE311 + ldr r0, =gText_Current str r7, [sp] adds r1, r4, 0 mov r2, r8 @@ -14554,7 +14554,7 @@ _081A1E66: b _081A1E96 .pool _081A1E88: - ldr r0, =gUnknown_085EE320 + ldr r0, =gText_Prev str r7, [sp] adds r1, r4, 0 mov r2, r8 @@ -14593,7 +14593,7 @@ sub_81A1EA8: @ 81A1EA8 cmp r7, 0 bne _081A1EF0 ldr r0, =gStringVar4 - ldr r1, =gUnknown_085EE158 + ldr r1, =gText_SingleBattleRoomResults bl StringExpandPlaceholders b _081A1F28 .pool @@ -14601,7 +14601,7 @@ _081A1EF0: cmp r7, 0x1 bne _081A1F08 ldr r0, =gStringVar4 - ldr r1, =gUnknown_085EE178 + ldr r1, =gText_DoubleBattleRoomResults bl StringExpandPlaceholders b _081A1F28 .pool @@ -14609,13 +14609,13 @@ _081A1F08: cmp r7, 0x2 bne _081A1F20 ldr r0, =gStringVar4 - ldr r1, =gUnknown_085EE198 + ldr r1, =gText_MultiBattleRoomResults bl StringExpandPlaceholders b _081A1F28 .pool _081A1F20: ldr r0, =gStringVar4 - ldr r1, =gUnknown_085EE1B7 + ldr r1, =gText_LinkMultiBattleRoomResults bl StringExpandPlaceholders _081A1F28: ldr r0, =gStringVar4 @@ -14623,7 +14623,7 @@ _081A1F28: bl sub_81A1C4C ldr r6, =gUnknown_0203AB74 ldrb r0, [r6] - ldr r2, =gUnknown_085EE2F2 + ldr r2, =gText_Lv502 movs r1, 0x31 mov r8, r1 str r1, [sp] @@ -14635,7 +14635,7 @@ _081A1F28: movs r3, 0x10 bl PrintTextOnWindow ldrb r0, [r6] - ldr r2, =gUnknown_085EE2F9 + ldr r2, =gText_OpenLv movs r1, 0x61 mov r9, r1 str r1, [sp] @@ -14830,8 +14830,8 @@ _081A20E6: lsrs r0, 24 cmp r0, 0x1 bne _081A210C - ldr r0, =gUnknown_085EE311 - ldr r1, =gUnknown_085EE338 + ldr r0, =gText_Current + ldr r1, =gText_ClearStreak str r7, [sp] str r4, [sp, 0x4] mov r2, r8 @@ -14840,8 +14840,8 @@ _081A20E6: b _081A211C .pool _081A210C: - ldr r0, =gUnknown_085EE320 - ldr r1, =gUnknown_085EE338 + ldr r0, =gText_Prev + ldr r1, =gText_ClearStreak str r7, [sp] str r4, [sp, 0x4] mov r2, r8 @@ -14881,13 +14881,13 @@ sub_81A2134: @ 81A2134 cmp r7, 0 bne _081A217C ldr r0, =gStringVar4 - ldr r1, =gUnknown_085EE1DB + ldr r1, =gText_SingleBattleTourneyResults bl StringExpandPlaceholders b _081A2184 .pool _081A217C: ldr r0, =gStringVar4 - ldr r1, =gUnknown_085EE1FE + ldr r1, =gText_DoubleBattleTourneyResults bl StringExpandPlaceholders _081A2184: ldr r0, =gStringVar4 @@ -14895,7 +14895,7 @@ _081A2184: bl sub_81A1C4C ldr r1, =gUnknown_0203AB74 ldrb r0, [r1] - ldr r2, =gUnknown_085EE2F2 + ldr r2, =gText_Lv502 movs r6, 0x21 str r6, [sp] movs r5, 0xFF @@ -14907,7 +14907,7 @@ _081A2184: bl PrintTextOnWindow ldr r1, =gUnknown_0203AB74 ldrb r0, [r1] - ldr r2, =gUnknown_085EE2F9 + ldr r2, =gText_OpenLv movs r1, 0x61 str r1, [sp] str r5, [sp, 0x4] @@ -14935,13 +14935,13 @@ _081A2184: str r0, [sp] movs r0, 0x31 str r0, [sp, 0x4] - ldr r0, =gUnknown_085EE319 - ldr r1, =gUnknown_085EE338 + ldr r0, =gText_Record + ldr r1, =gText_ClearStreak movs r3, 0x40 bl sub_81A2008 - ldr r1, =gUnknown_085EE332 + ldr r1, =gText_Total mov r10, r1 - ldr r0, =gUnknown_085EE349 + ldr r0, =gText_Championships mov r8, r0 ldr r0, [r4] ldr r1, =0x00000d1c @@ -14972,8 +14972,8 @@ _081A2184: str r0, [sp] movs r0, 0x71 str r0, [sp, 0x4] - ldr r0, =gUnknown_085EE319 - ldr r1, =gUnknown_085EE338 + ldr r0, =gText_Record + ldr r1, =gText_ClearStreak movs r3, 0x40 bl sub_81A2008 ldr r0, [r4] @@ -15052,7 +15052,7 @@ _081A2304: movs r3, 0x4 bl ConvertIntToDecimalStringN ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EE302 + ldr r1, =gText_WinStreak adds r0, r4, 0 bl StringExpandPlaceholders mov r1, r10 @@ -15100,7 +15100,7 @@ sub_81A2358: @ 81A2358 adds r4, r0 adds r4, r1 ldrh r1, [r4] - ldr r0, =gUnknown_085EE319 + ldr r0, =gText_Record str r5, [sp] bl sub_81A22B8 add sp, 0x4 @@ -15186,7 +15186,7 @@ _081A241E: lsrs r0, 24 cmp r0, 0x1 bne _081A2440 - ldr r0, =gUnknown_085EE311 + ldr r0, =gText_Current str r7, [sp] adds r1, r4, 0 mov r2, r8 @@ -15195,7 +15195,7 @@ _081A241E: b _081A244E .pool _081A2440: - ldr r0, =gUnknown_085EE320 + ldr r0, =gText_Prev str r7, [sp] adds r1, r4, 0 mov r2, r8 @@ -15234,13 +15234,13 @@ sub_81A2460: @ 81A2460 cmp r7, 0 bne _081A24A8 ldr r0, =gStringVar4 - ldr r1, =gUnknown_085EE221 + ldr r1, =gText_SingleBattleHallResults bl StringExpandPlaceholders b _081A24B0 .pool _081A24A8: ldr r0, =gStringVar4 - ldr r1, =gUnknown_085EE241 + ldr r1, =gText_DoubleBattleHallResults bl StringExpandPlaceholders _081A24B0: ldr r0, =gStringVar4 @@ -15248,7 +15248,7 @@ _081A24B0: bl sub_81A1C4C ldr r6, =gUnknown_0203AB74 ldrb r0, [r6] - ldr r2, =gUnknown_085EE2F2 + ldr r2, =gText_Lv502 movs r1, 0x31 mov r8, r1 str r1, [sp] @@ -15260,7 +15260,7 @@ _081A24B0: movs r3, 0x10 bl PrintTextOnWindow ldrb r0, [r6] - ldr r2, =gUnknown_085EE2F9 + ldr r2, =gText_OpenLv movs r1, 0x61 mov r9, r1 str r1, [sp] @@ -15434,8 +15434,8 @@ _081A264C: lsrs r0, 24 cmp r0, 0x1 bne _081A2674 - ldr r0, =gUnknown_085EE311 - ldr r1, =gUnknown_085EE35B + ldr r0, =gText_Current + ldr r1, =gText_RoomsCleared str r5, [sp] str r6, [sp, 0x4] adds r2, r7, 0 @@ -15444,8 +15444,8 @@ _081A264C: b _081A2684 .pool _081A2674: - ldr r0, =gUnknown_085EE320 - ldr r1, =gUnknown_085EE35B + ldr r0, =gText_Prev + ldr r1, =gText_RoomsCleared str r5, [sp] str r6, [sp, 0x4] adds r2, r7, 0 @@ -15480,14 +15480,14 @@ sub_81A2698: @ 81A2698 movs r1, 0x11 bl FillWindowPixelBuffer ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EE261 + ldr r1, =gText_BattleChoiceResults adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0 bl sub_81A1C4C ldrb r0, [r6] - ldr r2, =gUnknown_085EE2F2 + ldr r2, =gText_Lv502 movs r1, 0x21 str r1, [sp] movs r5, 0xFF @@ -15498,7 +15498,7 @@ sub_81A2698: @ 81A2698 movs r3, 0x8 bl PrintTextOnWindow ldrb r0, [r6] - ldr r2, =gUnknown_085EE2F9 + ldr r2, =gText_OpenLv movs r1, 0x61 str r1, [sp] str r5, [sp, 0x4] @@ -15513,9 +15513,9 @@ sub_81A2698: @ 81A2698 movs r2, 0x72 movs r3, 0x21 bl sub_81A2618 - ldr r0, =gUnknown_085EE319 + ldr r0, =gText_Record mov r10, r0 - ldr r7, =gUnknown_085EE35B + ldr r7, =gText_RoomsCleared ldr r5, =gSaveBlock2Ptr ldr r0, [r5] ldr r1, =0x00000e08 @@ -15529,9 +15529,9 @@ sub_81A2698: @ 81A2698 adds r1, r7, 0 movs r3, 0x40 bl sub_81A258C - ldr r0, =gUnknown_085EE332 + ldr r0, =gText_Total mov r8, r0 - ldr r1, =gUnknown_085EE36D + ldr r1, =gText_TimesCleared mov r9, r1 ldr r0, [r5] ldr r1, =0x00000e0c @@ -15633,7 +15633,7 @@ _081A2834: movs r3, 0x4 bl ConvertIntToDecimalStringN ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EE381 + ldr r1, =gText_KOsInARow adds r0, r4, 0 bl StringExpandPlaceholders mov r1, r10 @@ -15678,7 +15678,7 @@ sub_81A2888: @ 81A2888 adds r1, r2 adds r1, r0 ldrh r1, [r1] - ldr r0, =gUnknown_085EE319 + ldr r0, =gText_Record str r3, [sp] adds r2, r4, 0 adds r3, r5, 0 @@ -15743,7 +15743,7 @@ _081A2928: lsrs r0, 24 cmp r0, 0x1 bne _081A2948 - ldr r0, =gUnknown_085EE311 + ldr r0, =gText_Current str r6, [sp] adds r1, r5, 0 adds r2, r7, 0 @@ -15752,7 +15752,7 @@ _081A2928: b _081A2956 .pool _081A2948: - ldr r0, =gUnknown_085EE320 + ldr r0, =gText_Prev str r6, [sp] adds r1, r5, 0 adds r2, r7, 0 @@ -15785,14 +15785,14 @@ sub_81A2968: @ 81A2968 movs r0, 0xA bl sub_81A1C90 ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EE27C + ldr r1, =gText_SetKOTourneyResults adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x2 bl sub_81A1C4C ldrb r0, [r5] - ldr r2, =gUnknown_085EE2F2 + ldr r2, =gText_Lv502 movs r1, 0x31 str r1, [sp] movs r6, 0xFF @@ -15803,7 +15803,7 @@ sub_81A2968: @ 81A2968 movs r3, 0x10 bl PrintTextOnWindow ldrb r0, [r5] - ldr r2, =gUnknown_085EE2F9 + ldr r2, =gText_OpenLv movs r1, 0x61 str r1, [sp] str r6, [sp, 0x4] @@ -15896,7 +15896,7 @@ _081A2A80: movs r3, 0x4 bl ConvertIntToDecimalStringN ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EE302 + ldr r1, =gText_WinStreak adds r0, r4, 0 bl StringExpandPlaceholders mov r1, r10 @@ -15915,7 +15915,7 @@ _081A2A80: movs r2, 0x1 movs r3, 0x4 bl ConvertIntToDecimalStringN - ldr r1, =gUnknown_085EE392 + ldr r1, =gText_TimesVar1 adds r0, r4, 0 bl StringExpandPlaceholders mov r1, r10 @@ -15973,7 +15973,7 @@ sub_81A2B04: @ 81A2B04 adds r2, r0 adds r2, r1 ldrh r2, [r2] - ldr r0, =gUnknown_085EE319 + ldr r0, =gText_Record str r3, [sp] str r4, [sp, 0x4] str r5, [sp, 0x8] @@ -16102,7 +16102,7 @@ _081A2C3E: lsrs r0, 24 cmp r0, 0x1 bne _081A2C68 - ldr r0, =gUnknown_085EE311 + ldr r0, =gText_Current mov r1, r8 str r1, [sp] mov r1, r9 @@ -16116,7 +16116,7 @@ _081A2C3E: b _081A2C80 .pool _081A2C68: - ldr r0, =gUnknown_085EE320 + ldr r0, =gText_Prev mov r1, r8 str r1, [sp] mov r1, r9 @@ -16160,13 +16160,13 @@ sub_81A2C94: @ 81A2C94 cmp r7, 0 bne _081A2CD8 ldr r0, =gStringVar4 - ldr r1, =gUnknown_085EE298 + ldr r1, =gText_BattleSwapSingleResults bl StringExpandPlaceholders b _081A2CE0 .pool _081A2CD8: ldr r0, =gStringVar4 - ldr r1, =gUnknown_085EE2B8 + ldr r1, =gText_BattleSwapDoubleResults bl StringExpandPlaceholders _081A2CE0: ldr r0, =gStringVar4 @@ -16175,7 +16175,7 @@ _081A2CE0: ldr r0, =gUnknown_0203AB74 mov r8, r0 ldrb r0, [r0] - ldr r2, =gUnknown_085EE2F2 + ldr r2, =gText_Lv502 movs r6, 0x21 str r6, [sp] movs r5, 0xFF @@ -16187,7 +16187,7 @@ _081A2CE0: bl PrintTextOnWindow mov r1, r8 ldrb r0, [r1] - ldr r2, =gUnknown_085EE326 + ldr r2, =gText_RentalSwap str r6, [sp] str r5, [sp, 0x4] str r4, [sp, 0x8] @@ -16196,7 +16196,7 @@ _081A2CE0: bl PrintTextOnWindow mov r1, r8 ldrb r0, [r1] - ldr r2, =gUnknown_085EE2F9 + ldr r2, =gText_OpenLv movs r1, 0x61 str r1, [sp] str r5, [sp, 0x4] @@ -16301,7 +16301,7 @@ _081A2E00: movs r3, 0x4 bl ConvertIntToDecimalStringN ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EE39C + ldr r1, =gText_FloorsCleared adds r0, r4, 0 bl StringExpandPlaceholders mov r1, r10 @@ -16346,7 +16346,7 @@ sub_81A2E54: @ 81A2E54 adds r1, r2 adds r1, r0 ldrh r1, [r1] - ldr r0, =gUnknown_085EE319 + ldr r0, =gText_Record str r3, [sp] adds r2, r4, 0 adds r3, r5, 0 @@ -16413,7 +16413,7 @@ _081A2EF8: lsrs r0, 24 cmp r0, 0x1 bne _081A2F18 - ldr r0, =gUnknown_085EE311 + ldr r0, =gText_Current str r6, [sp] adds r1, r5, 0 adds r2, r7, 0 @@ -16422,7 +16422,7 @@ _081A2EF8: b _081A2F26 .pool _081A2F18: - ldr r0, =gUnknown_085EE320 + ldr r0, =gText_Prev str r6, [sp] adds r1, r5, 0 adds r2, r7, 0 @@ -16453,14 +16453,14 @@ sub_81A2F38: @ 81A2F38 movs r1, 0x11 bl FillWindowPixelBuffer ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EE2D8 + ldr r1, =gText_BattleQuestResults adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x2 bl sub_81A1C4C ldrb r0, [r5] - ldr r2, =gUnknown_085EE2F2 + ldr r2, =gText_Lv502 movs r1, 0x31 str r1, [sp] movs r6, 0xFF @@ -16471,7 +16471,7 @@ sub_81A2F38: @ 81A2F38 movs r3, 0x8 bl PrintTextOnWindow ldrb r0, [r5] - ldr r2, =gUnknown_085EE2F9 + ldr r2, =gText_OpenLv movs r1, 0x61 str r1, [sp] str r6, [sp, 0x4] @@ -16532,7 +16532,7 @@ sub_81A2FF8: @ 81A2FF8 bl FillWindowPixelBuffer ldr r0, =gStringVar4 mov r9, r0 - ldr r1, =gUnknown_085EDF86 + ldr r1, =gText_LinkContestResults bl StringExpandPlaceholders movs r0, 0x1 mov r1, r9 @@ -16550,7 +16550,7 @@ sub_81A2FF8: @ 81A2FF8 str r5, [sp, 0x8] mov r2, r9 bl PrintTextOnWindow - ldr r7, =gUnknown_085EDFA0 + ldr r7, =gText_1st movs r0, 0x1 adds r1, r7, 0 movs r2, 0x26 @@ -16568,7 +16568,7 @@ sub_81A2FF8: @ 81A2FF8 movs r1, 0x1 adds r2, r7, 0 bl PrintTextOnWindow - ldr r7, =gUnknown_085EDFA4 + ldr r7, =gText_2nd movs r0, 0x1 adds r1, r7, 0 movs r2, 0x26 @@ -16585,7 +16585,7 @@ sub_81A2FF8: @ 81A2FF8 movs r1, 0x1 adds r2, r7, 0 bl PrintTextOnWindow - ldr r7, =gUnknown_085EDFA8 + ldr r7, =gText_3rd movs r0, 0x1 adds r1, r7, 0 movs r2, 0x26 @@ -16602,7 +16602,7 @@ sub_81A2FF8: @ 81A2FF8 movs r1, 0x1 adds r2, r7, 0 bl PrintTextOnWindow - ldr r7, =gUnknown_085EDFAC + ldr r7, =gText_4th movs r0, 0x1 adds r1, r7, 0 movs r2, 0x26 @@ -16620,7 +16620,7 @@ sub_81A2FF8: @ 81A2FF8 adds r2, r7, 0 bl PrintTextOnWindow ldrb r0, [r4] - ldr r2, =gUnknown_085EB0E8 + ldr r2, =gText_Cool movs r1, 0x29 str r1, [sp] str r6, [sp, 0x4] @@ -16629,7 +16629,7 @@ sub_81A2FF8: @ 81A2FF8 movs r3, 0x6 bl PrintTextOnWindow ldrb r0, [r4] - ldr r2, =gUnknown_085EB0ED + ldr r2, =gText_Beauty movs r1, 0x39 str r1, [sp] str r6, [sp, 0x4] @@ -16638,7 +16638,7 @@ sub_81A2FF8: @ 81A2FF8 movs r3, 0x6 bl PrintTextOnWindow ldrb r0, [r4] - ldr r2, =gUnknown_085EB0F4 + ldr r2, =gText_Cute movs r1, 0x49 str r1, [sp] str r6, [sp, 0x4] @@ -16647,7 +16647,7 @@ sub_81A2FF8: @ 81A2FF8 movs r3, 0x6 bl PrintTextOnWindow ldrb r0, [r4] - ldr r2, =gUnknown_085EB0F9 + ldr r2, =gText_Smart movs r1, 0x59 str r1, [sp] str r6, [sp, 0x4] @@ -16656,7 +16656,7 @@ sub_81A2FF8: @ 81A2FF8 movs r3, 0x6 bl PrintTextOnWindow ldrb r0, [r4] - ldr r2, =gUnknown_085EB0FF + ldr r2, =gText_Tough movs r1, 0x69 str r1, [sp] str r6, [sp, 0x4] @@ -18104,7 +18104,7 @@ _081A3E38: cmp r5, r4 bne _081A3E50 ldr r0, =gStringVar1 - ldr r1, =gUnknown_085CCB79 + ldr r1, =gText_SpaceAndSpace bl StringAppend b _081A3EC8 .pool @@ -18112,7 +18112,7 @@ _081A3E50: cmp r5, r4 ble _081A3EC8 ldr r0, =gStringVar1 - ldr r1, =gUnknown_085CCB7F + ldr r1, =gText_CommaSpace bl StringAppend b _081A3EC8 .pool @@ -18120,17 +18120,17 @@ _081A3E68: cmp r4, r5 bne _081A3E80 ldr r0, =gStringVar1 - ldr r1, =gUnknown_085CCB79 + ldr r1, =gText_SpaceAndSpace bl StringAppend b _081A3E88 .pool _081A3E80: ldr r0, =gStringVar1 - ldr r1, =gUnknown_085CCB7F + ldr r1, =gText_CommaSpace bl StringAppend _081A3E88: ldr r0, =gStringVar1 - ldr r1, =gUnknown_085CCB86 + ldr r1, =gText_NewLine bl StringAppend b _081A3EC8 .pool @@ -18138,17 +18138,17 @@ _081A3EA0: cmp r4, r5 bne _081A3EB8 ldr r0, =gStringVar1 - ldr r1, =gUnknown_085CCB79 + ldr r1, =gText_SpaceAndSpace bl StringAppend b _081A3EC0 .pool _081A3EB8: ldr r0, =gStringVar1 - ldr r1, =gUnknown_085CCB7F + ldr r1, =gText_CommaSpace bl StringAppend _081A3EC0: ldr r0, =gStringVar1 - ldr r1, =gUnknown_085CCB84 + ldr r1, =gText_ScrollTextUp bl StringAppend _081A3EC8: ldr r0, =gStringVar1 @@ -18495,10 +18495,10 @@ _081A416A: cmp r4, 0 bne _081A41A4 ldr r4, =gStringVar1 - ldr r1, =gUnknown_085CCB82 + ldr r1, =gText_Space2 adds r0, r4, 0 bl StringAppend - ldr r1, =gUnknown_085CCB88 + ldr r1, =gText_Are adds r0, r4, 0 bl StringAppend b _081A4202 @@ -18509,17 +18509,17 @@ _081A41A4: cmp r0, 0 beq _081A41C0 ldr r0, =gStringVar1 - ldr r1, =gUnknown_085CCB84 + ldr r1, =gText_ScrollTextUp bl StringAppend b _081A41C8 .pool _081A41C0: ldr r0, =gStringVar1 - ldr r1, =gUnknown_085CCB82 + ldr r1, =gText_Space2 bl StringAppend _081A41C8: ldr r0, =gStringVar1 - ldr r1, =gUnknown_085CCB8C + ldr r1, =gText_Are2 bl StringAppend b _081A4202 .pool @@ -18966,7 +18966,7 @@ sub_81A4594: @ 81A4594 ldrb r5, [r1] lsls r4, r0, 1 adds r4, r0 - ldr r1, =gUnknown_085EE424 + ldr r1, =gText_1Dot adds r4, r1 mov r1, r8 lsls r3, r1, 27 @@ -19076,7 +19076,7 @@ sub_81A4684: @ 81A4684 ldrb r0, [r1] lsls r2, r6, 1 adds r2, r6 - ldr r1, =gUnknown_085EE424 + ldr r1, =gText_1Dot adds r2, r1 lsls r3, r7, 27 lsrs r3, 24 @@ -20577,34 +20577,34 @@ _081A5328: movs r0, 0x1 negs r0, r0 strb r0, [r1, 0x1] - ldr r0, =gUnknown_085CCDB2 - bl StrCpyDecodeToDisplayedStringBattle + ldr r0, =gText_JapaneseHonorific + bl BattleStringExpandPlaceholdersToDisplayedString ldr r4, =gDisplayedStringBattle adds r0, r4, 0 movs r1, 0xF - bl battle_show_message_maybe - ldr r0, =gUnknown_085CCDB5 + bl sub_814F9EC + ldr r0, =gText_Vs movs r1, 0x10 - bl battle_show_message_maybe - ldr r0, =gUnknown_085CCDB8 - bl StrCpyDecodeToDisplayedStringBattle + bl sub_814F9EC + ldr r0, =gText_RivalBuffer + bl BattleStringExpandPlaceholdersToDisplayedString adds r0, r4, 0 movs r1, 0x11 - bl battle_show_message_maybe - ldr r0, =gUnknown_085CCDBB + bl sub_814F9EC + ldr r0, =gText_Mind movs r1, 0x12 - bl battle_show_message_maybe - ldr r0, =gUnknown_085CCDC0 + bl sub_814F9EC + ldr r0, =gText_Skill movs r1, 0x13 - bl battle_show_message_maybe - ldr r0, =gUnknown_085CCDC6 + bl sub_814F9EC + ldr r0, =gText_Body movs r1, 0x14 - bl battle_show_message_maybe - ldr r0, =gUnknown_085CCDCB - bl StrCpyDecodeToDisplayedStringBattle + bl sub_814F9EC + ldr r0, =gText_Judgement + bl BattleStringExpandPlaceholdersToDisplayedString adds r0, r4, 0 movs r1, 0x15 - bl battle_show_message_maybe + bl sub_814F9EC b _081A553E .pool _081A53B4: @@ -20684,11 +20684,11 @@ _081A544C: _081A5464: movs r3, 0x1 bl sub_81A5558 - ldr r0, =gUnknown_085CCDCB - bl StrCpyDecodeToDisplayedStringBattle + ldr r0, =gText_Judgement + bl BattleStringExpandPlaceholdersToDisplayedString ldr r0, =gDisplayedStringBattle movs r1, 0x15 - bl battle_show_message_maybe + bl sub_814F9EC ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] @@ -31263,8 +31263,8 @@ _081AAA9E: .pool thumb_func_end sub_81AAA7C - thumb_func_start CalculateBattlePyramidPickupItemId -CalculateBattlePyramidPickupItemId: @ 81AAAE0 + thumb_func_start GetBattlePyramidPickupItemId +GetBattlePyramidPickupItemId: @ 81AAAE0 push {r4-r6,lr} ldr r0, =gSaveBlock2Ptr ldr r1, [r0] @@ -31331,6 +31331,6 @@ _081AAB5A: pop {r1} bx r1 .pool - thumb_func_end CalculateBattlePyramidPickupItemId + thumb_func_end GetBattlePyramidPickupItemId .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_interface.s b/asm/battle_interface.s index fb6a48194..31ad9a330 100755 --- a/asm/battle_interface.s +++ b/asm/battle_interface.s @@ -3760,7 +3760,7 @@ sub_80741E8: @ 80741E8 lsls r0, 24 lsrs r7, r0, 24 ldr r5, =gDisplayedStringBattle - ldr r1, =gUnknown_085ED228 + ldr r1, =gText_HighlightDarkGrey adds r0, r5, 0 bl StringCopy adds r0, r4, 0 @@ -3802,15 +3802,15 @@ _0807424A: beq _08074268 cmp r6, 0xFE beq _08074270 - ldr r1, =gUnknown_085ED238 + ldr r1, =gText_DynColor2 b _08074272 .pool _08074268: - ldr r1, =gUnknown_085ED22E + ldr r1, =gText_DynColor2Male b _08074272 .pool _08074270: - ldr r1, =gUnknown_085ED233 + ldr r1, =gText_DynColor1Female _08074272: adds r0, r5, 0 bl StringCopy @@ -4375,7 +4375,7 @@ sub_8074770: @ 8074770 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, =gUnknown_085CCB2C + ldr r0, =gText_SafariBalls add r1, sp, 0x4 str r1, [sp] movs r1, 0 @@ -4419,7 +4419,7 @@ sub_80747D8: @ 80747D8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r1, =gUnknown_085CCB3C + ldr r1, =gText_SafariBallLeft add r0, sp, 0x4 bl StringCopy ldr r1, =gNumSafariBalls @@ -5476,8 +5476,8 @@ _08075028: bx r1 thumb_func_end sub_8074FE8 - thumb_func_start sub_8075034 -sub_8075034: @ 8075034 + thumb_func_start GetScaledHPFraction +GetScaledHPFraction: @ 8075034 push {r4,lr} lsls r2, 24 lsrs r2, 24 @@ -5499,7 +5499,7 @@ _08075058: pop {r4} pop {r1} bx r1 - thumb_func_end sub_8075034 + thumb_func_end GetScaledHPFraction thumb_func_start sub_8075060 sub_8075060: @ 8075060 @@ -5514,7 +5514,7 @@ sub_8075060: @ 8075060 b _0807508E _08075072: movs r2, 0x30 - bl sub_8075034 + bl GetScaledHPFraction lsls r0, 24 lsrs r1, r0, 24 movs r0, 0x3 diff --git a/asm/battle_link_817C95C.s b/asm/battle_link_817C95C.s index a08d34cad..94ae7ad7f 100644 --- a/asm/battle_link_817C95C.s +++ b/asm/battle_link_817C95C.s @@ -44,7 +44,7 @@ _0817C988: bl GetBankSide lsls r0, 24 lsrs r6, r0, 24 - ldr r0, =gUnknown_0202420E + ldr r0, =gEffectBank ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -145,7 +145,7 @@ _0817CA9C: bl GetBankIdentity lsls r0, 24 lsrs r5, r0, 25 - ldr r0, =gUnknown_0202420E + ldr r0, =gEffectBank ldrb r0, [r0] bl GetBankIdentity lsls r0, 24 @@ -1302,7 +1302,7 @@ _0817D6F2: bl _0817E0A6 _0817D704: ldr r5, =gBattlePartyID - ldr r6, =gUnknown_0202420E + ldr r6, =gEffectBank ldrb r0, [r6] lsls r0, 1 adds r0, r5 @@ -1396,7 +1396,7 @@ _0817D7B2: .pool _0817D7D8: ldr r5, =gBattlePartyID - ldr r6, =gUnknown_0202420E + ldr r6, =gEffectBank ldrb r0, [r6] lsls r0, 1 adds r0, r5 @@ -1440,7 +1440,7 @@ _0817D7D8: .pool _0817D838: ldr r5, =gBattlePartyID - ldr r6, =gUnknown_0202420E + ldr r6, =gEffectBank ldrb r0, [r6] lsls r0, 1 adds r0, r5 @@ -1628,7 +1628,7 @@ _0817D9AE: b _0817E086 _0817D9C2: ldr r5, =gBattlePartyID - ldr r6, =gUnknown_0202420E + ldr r6, =gEffectBank ldrb r0, [r6] lsls r0, 1 adds r0, r5 @@ -1703,7 +1703,7 @@ _0817DA48: .pool _0817DA68: ldr r5, =gBattlePartyID - ldr r6, =gUnknown_0202420E + ldr r6, =gEffectBank ldrb r0, [r6] lsls r0, 1 adds r0, r5 @@ -1791,7 +1791,7 @@ _0817DB10: .pool _0817DB24: ldr r5, =gBattlePartyID - ldr r6, =gUnknown_0202420E + ldr r6, =gEffectBank ldrb r0, [r6] lsls r0, 1 adds r0, r5 diff --git a/asm/battle_message.s b/asm/battle_message.s index dec210b25..96869a350 100644 --- a/asm/battle_message.s +++ b/asm/battle_message.s @@ -136,12 +136,12 @@ _0814E1CC: movs r0, 0x80 lsls r0, 17 ands r2, r0 - ldr r7, =gUnknown_085CBBCD + ldr r7, =gText_TwoTrainersWantToBattle cmp r2, 0 bne _0814E200 b _0814E6D8 _0814E200: - ldr r7, =gUnknown_085CD318 + ldr r7, =gText_TwoTrainersWantToBattle3 b _0814E6D8 .pool _0814E214: @@ -151,19 +151,19 @@ _0814E214: lsls r0, 4 cmp r1, r0 bne _0814E22C - ldr r7, =gUnknown_085CBB9C + ldr r7, =gText_TrainerXYWantsToBattle b _0814E6D8 .pool _0814E22C: movs r0, 0x80 lsls r0, 17 ands r2, r0 - ldr r7, =gUnknown_085CBBB9 + ldr r7, =gText_TrainerXWantsToBattle cmp r2, 0 bne _0814E23A b _0814E6D8 _0814E23A: - ldr r7, =gUnknown_085CD301 + ldr r7, =gText_TrainerWantsToBattle b _0814E6D8 .pool _0814E248: @@ -175,12 +175,12 @@ _0814E248: movs r0, 0x80 lsls r0, 8 ands r2, r0 - ldr r7, =gUnknown_085CBB9C + ldr r7, =gText_TrainerXYWantsToBattle cmp r2, 0 bne _0814E260 b _0814E6D8 _0814E260: - ldr r7, =gUnknown_085CCE17 + ldr r7, =gText_TwoTrainersWantToBattle2 b _0814E6D8 .pool _0814E26C: @@ -189,7 +189,7 @@ _0814E26C: ands r0, r2 cmp r0, 0 beq _0814E280 - ldr r7, =gUnknown_085CBB5A + ldr r7, =gText_WildPkmnAppeared2 b _0814E6D8 .pool _0814E280: @@ -197,19 +197,19 @@ _0814E280: ands r0, r2 cmp r0, 0 beq _0814E290 - ldr r7, =gUnknown_085CBB82 + ldr r7, =gText_TwoWildPkmnAppeared b _0814E6D8 .pool _0814E290: movs r0, 0x80 lsls r0, 2 ands r2, r0 - ldr r7, =gUnknown_085CBB47 + ldr r7, =gText_WildPkmnAppeared cmp r2, 0 bne _0814E29E b _0814E6D8 _0814E29E: - ldr r7, =gUnknown_085CBB6D + ldr r7, =gText_WildPkmnAppearedPause b _0814E6D8 .pool _0814E2AC: @@ -230,7 +230,7 @@ _0814E2AC: ands r0, r1 cmp r0, 0 beq _0814E2DC - ldr r7, =gUnknown_085CCE38 + ldr r7, =gText_TrainerXYSentOutZGoN b _0814E6D8 .pool _0814E2DC: @@ -239,22 +239,22 @@ _0814E2DC: ands r0, r1 cmp r0, 0 beq _0814E2F0 - ldr r7, =gUnknown_085CBC96 + ldr r7, =gText_GoTwoPkmn b _0814E6D8 .pool _0814E2F0: movs r0, 0x40 ands r1, r0 - ldr r7, =gUnknown_085CBC96 + ldr r7, =gText_GoTwoPkmn cmp r1, 0 bne _0814E2FC b _0814E6D8 _0814E2FC: - ldr r7, =gUnknown_085CBCE5 + ldr r7, =gText_EnemySentOutPkmnGoPkmn b _0814E6D8 .pool _0814E308: - ldr r7, =gUnknown_085CBC8E + ldr r7, =gText_GoPkmn b _0814E6D8 .pool _0814E310: @@ -275,7 +275,7 @@ _0814E310: cmp r0, 0 beq _0814E33C _0814E330: - ldr r7, =gUnknown_085CCDDE + ldr r7, =gText_TwoTrainersSentPkmn b _0814E6D8 .pool _0814E33C: @@ -283,18 +283,18 @@ _0814E33C: ands r0, r1 cmp r0, 0 beq _0814E34C - ldr r7, =gUnknown_085CBC4E + ldr r7, =gText_TwoTrainersSentOutPkmn b _0814E6D8 .pool _0814E34C: ldr r0, =0x02000002 ands r1, r0 - ldr r7, =gUnknown_085CBBFA + ldr r7, =gText_TrainerXYSentOutTwoPkmn cmp r1, 0 bne _0814E358 b _0814E6D8 _0814E358: - ldr r7, =gUnknown_085CBC37 + ldr r7, =gText_TrainerXSentOutTwoPkmn b _0814E6D8 .pool _0814E368: @@ -306,12 +306,12 @@ _0814E368: ldrh r1, [r0] movs r0, 0xC0 lsls r0, 4 - ldr r7, =gUnknown_085CBC27 + ldr r7, =gText_TrainerXSentOutPkmn cmp r1, r0 beq _0814E380 b _0814E6D8 _0814E380: - ldr r7, =gUnknown_085CBBE7 + ldr r7, =gText_TrainerXYSentOutPkmn b _0814E6D8 .pool _0814E394: @@ -327,7 +327,7 @@ _0814E394: ldrb r2, [r0] cmp r2, 0 bne _0814E3BC - ldr r7, =gUnknown_085CBCFD + ldr r7, =gText_PkmnThatsEnough b _0814E6D8 .pool _0814E3BC: @@ -340,16 +340,16 @@ _0814E3BC: cmp r0, 0 beq _0814E3D8 _0814E3CC: - ldr r7, =gUnknown_085CBD1B + ldr r7, =gText_PkmnComeBack b _0814E6D8 .pool _0814E3D8: - ldr r7, =gUnknown_085CBD3D + ldr r7, =gText_PkmnGoodComeBack cmp r2, 0x2 beq _0814E3E0 b _0814E6D8 _0814E3E0: - ldr r7, =gUnknown_085CBD2A + ldr r7, =gText_PkmnOkComeBack b _0814E6D8 .pool _0814E3EC: @@ -370,16 +370,16 @@ _0814E406: ldr r0, [r2] movs r1, 0x40 ands r0, r1 - ldr r7, =gUnknown_085CBD65 + ldr r7, =gText_TrainerXWithdrewPkmn cmp r0, 0 bne _0814E414 b _0814E6D8 _0814E414: - ldr r7, =gUnknown_085CBD75 + ldr r7, =gText_TrainerXWithdrewPkmn2 b _0814E6D8 .pool _0814E428: - ldr r7, =gUnknown_085CBD52 + ldr r7, =gText_TrainerXYWithdrewPkmn b _0814E6D8 .pool _0814E430: @@ -402,22 +402,22 @@ _0814E430: cmp r0, 0 beq _0814E468 _0814E456: - ldr r7, =gUnknown_085CBCA5 + ldr r7, =gText_GoPkmn2 b _0814E6D8 .pool _0814E468: cmp r2, 0x1 bne _0814E474 - ldr r7, =gUnknown_085CBCAD + ldr r7, =gText_DoItPkmn b _0814E6D8 .pool _0814E474: - ldr r7, =gUnknown_085CBCC7 + ldr r7, =gText_YourFoesWeakGetEmPkmn cmp r2, 0x2 beq _0814E47C b _0814E6D8 _0814E47C: - ldr r7, =gUnknown_085CBCB8 + ldr r7, =gText_GoForItPkmn b _0814E6D8 .pool _0814E488: @@ -440,7 +440,7 @@ _0814E4AC: ands r1, r0 cmp r1, 0 beq _0814E4BC - ldr r7, =gUnknown_085CBC7E + ldr r7, =gText_TrainerXSentOutPkmn3 b _0814E6D8 .pool _0814E4BC: @@ -448,12 +448,12 @@ _0814E4BC: ldrh r1, [r0] movs r0, 0xC0 lsls r0, 4 - ldr r7, =gUnknown_085CBC6E + ldr r7, =gText_TrainerXSentOutPkmn2 cmp r1, r0 beq _0814E4CC b _0814E6D8 _0814E4CC: - ldr r7, =gUnknown_085CBC14 + ldr r7, =gText_TrainerXYSentOutPkmn2 b _0814E6D8 .pool _0814E4DC: @@ -465,7 +465,7 @@ _0814E4DC: mov r1, r9 ldrb r0, [r1, 0x17] _0814E4EA: - ldr r7, =gUnknown_085CCE04 + ldr r7, =gText_TrainerXYSentOutPkmn3 cmp r0, 0x1 beq _0814E4F2 b _0814E6D8 @@ -489,7 +489,7 @@ _0814E4F8: ldrb r2, [r1] lsls r1, r2, 4 adds r1, r2 - ldr r2, =gUnknown_085CCBBC + ldr r2, =gText_UnknownMoveTypes adds r1, r2 bl StringCopy b _0814E544 @@ -505,7 +505,7 @@ _0814E534: _0814E544: ldr r0, =gBattleTextBuff2 bl sub_814F950 - ldr r7, =gUnknown_085CBDAC + ldr r7, =gText_XUsedY2 b _0814E6D8 .pool _0814E55C: @@ -539,7 +539,7 @@ _0814E58A: lsrs r0, 24 cmp r0, 0x1 bhi _0814E5A4 - ldr r7, =gUnknown_085CB4CA + ldr r7, =gText_GotAwaySafely b _0814E6D8 .pool _0814E5A4: @@ -547,12 +547,12 @@ _0814E5A4: ldr r0, [r0] movs r1, 0x40 ands r0, r1 - ldr r7, =gUnknown_085CB5D2 + ldr r7, =gText_WildFled cmp r0, 0 bne _0814E5B4 b _0814E6D8 _0814E5B4: - ldr r7, =gUnknown_085CB5DF + ldr r7, =gText_TwoWildFled b _0814E6D8 .pool _0814E5C4: @@ -594,18 +594,18 @@ _0814E60E: movs r0, 0x80 lsls r0, 16 ands r1, r0 - ldr r7, =gUnknown_085CB538 + ldr r7, =gText_PlayerBeatTwo cmp r1, 0 beq _0814E6D8 - ldr r7, =gUnknown_085CCE53 + ldr r7, =gText_TwoEnemiesDefeated b _0814E6D8 .pool _0814E628: - ldr r7, =gUnknown_085CB567 + ldr r7, =gText_PlayerLostToTwo b _0814E6D8 .pool _0814E630: - ldr r7, =gUnknown_085CB5A6 + ldr r7, =gText_PlayerBattledToDrawVsTwo b _0814E6D8 .pool _0814E638: @@ -630,15 +630,15 @@ _0814E660: beq _0814E678 b _0814E6D8 _0814E666: - ldr r7, =gUnknown_085CBA2E + ldr r7, =gText_PlayerDefeatedXY b _0814E6D8 .pool _0814E670: - ldr r7, =gUnknown_085CD24C + ldr r7, =gText_PlayerLostAgainst2 b _0814E6D8 .pool _0814E678: - ldr r7, =gUnknown_085CD267 + ldr r7, =gText_PlayerBattledToDraw2 b _0814E6D8 .pool _0814E680: @@ -657,15 +657,15 @@ _0814E698: beq _0814E6B0 b _0814E6D8 _0814E69E: - ldr r7, =gUnknown_085CB524 + ldr r7, =gText_PlayerDefeated b _0814E6D8 .pool _0814E6A8: - ldr r7, =gUnknown_085CB54F + ldr r7, =gText_PlayerLostAgainst b _0814E6D8 .pool _0814E6B0: - ldr r7, =gUnknown_085CB581 + ldr r7, =gText_PlayerBattledToDraw b _0814E6D8 .pool _0814E6B8: @@ -679,7 +679,7 @@ _0814E6B8: b _0814E6DE .pool _0814E6CC: - ldr r1, =gUnknown_085CC270 + ldr r1, =gBattleStringsTable adds r0, r6, 0 subs r0, 0xC lsls r0, 2 @@ -687,7 +687,7 @@ _0814E6CC: ldr r7, [r0] _0814E6D8: adds r0, r7, 0 - bl StrCpyDecodeToDisplayedStringBattle + bl BattleStringExpandPlaceholdersToDisplayedString _0814E6DE: pop {r3-r5} mov r8, r3 @@ -699,15 +699,15 @@ _0814E6DE: .pool thumb_func_end BufferStringBattle - thumb_func_start StrCpyDecodeToDisplayedStringBattle -StrCpyDecodeToDisplayedStringBattle: @ 814E6F0 + thumb_func_start BattleStringExpandPlaceholdersToDisplayedString +BattleStringExpandPlaceholdersToDisplayedString: @ 814E6F0 push {lr} ldr r1, =gDisplayedStringBattle - bl StrCpyDecodeBattle + bl BattleStringExpandPlaceholders pop {r1} bx r1 .pool - thumb_func_end StrCpyDecodeToDisplayedStringBattle + thumb_func_end BattleStringExpandPlaceholdersToDisplayedString thumb_func_start AppendStatusString AppendStatusString: @ 814E700 @@ -763,8 +763,8 @@ _0814E75A: bx r1 thumb_func_end AppendStatusString - thumb_func_start StrCpyDecodeBattle -StrCpyDecodeBattle: @ 814E764 + thumb_func_start BattleStringExpandPlaceholders + BattleStringExpandPlaceholders: @ 814E764 push {r4-r7,lr} mov r7, r9 mov r6, r8 @@ -904,7 +904,7 @@ _0814E8EE: adds r0, r1, 0 _0814E8F0: adds r1, r4, 0 - bl StrCpyDecodeBattleTextBuff + bl ExpandBattleTextBuffPlaceholders bl _0814F5C0 .pool _0814E904: @@ -924,7 +924,7 @@ _0814E920: .pool _0814E92C: movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, =gBattlePartyID lsls r0, 24 lsrs r0, 23 @@ -943,7 +943,7 @@ _0814E92C: .pool _0814E960: movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, =gBattlePartyID lsls r0, 24 lsrs r0, 23 @@ -962,7 +962,7 @@ _0814E960: .pool _0814E994: movs r0, 0x2 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, =gBattlePartyID lsls r0, 24 lsrs r0, 23 @@ -981,7 +981,7 @@ _0814E994: .pool _0814E9C8: movs r0, 0x3 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, =gBattlePartyID lsls r0, 24 lsrs r0, 23 @@ -1104,10 +1104,10 @@ _0814EAF8: ldr r1, [r0] movs r0, 0x8 ands r1, r0 - ldr r4, =gUnknown_085CBD85 + ldr r4, =gText_WildPkmnPrefix cmp r1, 0 beq _0814EB36 - ldr r4, =gUnknown_085CBD8B + ldr r4, =gText_FoePkmnPrefix b _0814EB36 .pool _0814EB2C: @@ -1126,7 +1126,7 @@ _0814EB36: adds r1, r0, 0 movs r0, 0x1 ands r0, r1 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, =gBattlePartyID lsls r0, 24 lsrs r0, 23 @@ -1147,7 +1147,7 @@ _0814EB74: adds r1, r0, 0 movs r0, 0x1 ands r0, r1 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, =gBattlePartyID lsls r0, 24 lsrs r0, 23 @@ -1177,7 +1177,7 @@ _0814EBB0: adds r1, r0, 0 movs r0, 0x1 ands r0, r1 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, =gBattlePartyID lsls r0, 24 lsrs r0, 23 @@ -1199,7 +1199,7 @@ _0814EBF8: adds r1, r0, 0 movs r0, 0x1 ands r0, r1 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, =gBattlePartyID lsls r0, 24 lsrs r0, 23 @@ -1229,10 +1229,10 @@ _0814EC38: ldr r1, [r0] movs r0, 0x8 ands r1, r0 - ldr r4, =gUnknown_085CBD85 + ldr r4, =gText_WildPkmnPrefix cmp r1, 0 beq _0814EC56 - ldr r4, =gUnknown_085CBD8B + ldr r4, =gText_FoePkmnPrefix _0814EC56: ldrb r1, [r4] adds r0, r1, 0 @@ -1294,10 +1294,10 @@ _0814ECD4: ldr r1, [r0] movs r0, 0x8 ands r1, r0 - ldr r4, =gUnknown_085CBD85 + ldr r4, =gText_WildPkmnPrefix cmp r1, 0 beq _0814ECF2 - ldr r4, =gUnknown_085CBD8B + ldr r4, =gText_FoePkmnPrefix _0814ECF2: ldrb r1, [r4] adds r0, r1, 0 @@ -1349,7 +1349,7 @@ _0814ED5E: bl _0814F5BE .pool _0814ED70: - ldr r5, =gUnknown_0202420E + ldr r5, =gEffectBank ldrb r0, [r5] bl GetBankSide lsls r0, 24 @@ -1359,10 +1359,10 @@ _0814ED70: ldr r1, [r0] movs r0, 0x8 ands r1, r0 - ldr r4, =gUnknown_085CBD85 + ldr r4, =gText_WildPkmnPrefix cmp r1, 0 beq _0814ED8E - ldr r4, =gUnknown_085CBD8B + ldr r4, =gText_FoePkmnPrefix _0814ED8E: ldrb r1, [r4] adds r0, r1, 0 @@ -1424,10 +1424,10 @@ _0814EE0C: ldr r1, [r0] movs r0, 0x8 ands r1, r0 - ldr r4, =gUnknown_085CBD85 + ldr r4, =gText_WildPkmnPrefix cmp r1, 0 beq _0814EE2A - ldr r4, =gUnknown_085CBD8B + ldr r4, =gText_FoePkmnPrefix _0814EE2A: ldrb r1, [r4] adds r0, r1, 0 @@ -1489,10 +1489,10 @@ _0814EEA8: ldr r1, [r0] movs r0, 0x8 ands r1, r0 - ldr r4, =gUnknown_085CBD85 + ldr r4, =gText_WildPkmnPrefix cmp r1, 0 beq _0814EEC6 - ldr r4, =gUnknown_085CBD8B + ldr r4, =gText_FoePkmnPrefix _0814EEC6: ldrb r1, [r4] adds r0, r1, 0 @@ -1569,7 +1569,7 @@ _0814EF6A: ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 - ldr r1, =gUnknown_085CCBBC + ldr r1, =gText_UnknownMoveTypes adds r4, r0, r1 b _0814F5C0 .pool @@ -1626,7 +1626,7 @@ _0814EFEC: adds r1, r0 mov r0, sp bl StringCopy - ldr r1, =gUnknown_085CC0AD + ldr r1, =gText_BerrySuffix mov r0, sp bl StringAppend b _0814F5BE @@ -1652,13 +1652,13 @@ _0814F014: adds r1, r0 mov r0, sp bl StringCopy - ldr r1, =gUnknown_085CC0AD + ldr r1, =gText_BerrySuffix mov r0, sp bl StringAppend b _0814F5BE .pool _0814F05C: - ldr r4, =gUnknown_085CC0A0 + ldr r4, =gText_EnigmaBerry b _0814F5C0 .pool _0814F064: @@ -1695,7 +1695,7 @@ _0814F0A8: .pool _0814F0B8: ldr r1, =gAbilitiesPerBank - ldr r0, =gUnknown_0202420E + ldr r0, =gEffectBank _0814F0BC: ldrb r0, [r0] _0814F0BE: @@ -1996,10 +1996,10 @@ _0814F330: ldr r1, [r0] movs r0, 0x8 ands r1, r0 - ldr r4, =gUnknown_085CBD85 + ldr r4, =gText_WildPkmnPrefix cmp r1, 0 beq _0814F34E - ldr r4, =gUnknown_085CBD8B + ldr r4, =gText_FoePkmnPrefix _0814F34E: ldrb r1, [r4] adds r0, r1, 0 @@ -2051,12 +2051,12 @@ _0814F3C4: ldr r0, =0x000008ab bl FlagGet lsls r0, 24 - ldr r4, =gUnknown_085CC015 + ldr r4, =gText_Someones cmp r0, 0 bne _0814F3D4 b _0814F5C0 _0814F3D4: - ldr r4, =gUnknown_085CC01F + ldr r4, =gText_Lanettes b _0814F5C0 .pool _0814F3E4: @@ -2069,12 +2069,12 @@ _0814F3EE: ldrb r0, [r0] bl GetBankSide lsls r0, 24 - ldr r4, =gUnknown_085CBD9A + ldr r4, =gText_FoePkmnPrefix3 cmp r0, 0 beq _0814F3FE b _0814F5C0 _0814F3FE: - ldr r4, =gUnknown_085CBD9E + ldr r4, =gText_AllyPkmnPrefix2 b _0814F5C0 .pool _0814F410: @@ -2087,12 +2087,12 @@ _0814F41A: ldrb r0, [r0] bl GetBankSide lsls r0, 24 - ldr r4, =gUnknown_085CBD91 + ldr r4, =gText_FoePkmnPrefix2 cmp r0, 0 beq _0814F42A b _0814F5C0 _0814F42A: - ldr r4, =gUnknown_085CBD95 + ldr r4, =gText_AllyPkmnPrefix b _0814F5C0 .pool _0814F43C: @@ -2105,12 +2105,12 @@ _0814F446: ldrb r0, [r0] bl GetBankSide lsls r0, 24 - ldr r4, =gUnknown_085CBDA3 + ldr r4, =gText_FoePkmnPrefix4 cmp r0, 0 beq _0814F456 b _0814F5C0 _0814F456: - ldr r4, =gUnknown_085CBDA7 + ldr r4, =gText_AllyPkmnPrefix3 b _0814F5C0 .pool _0814F468: @@ -2335,10 +2335,10 @@ _0814F62A: pop {r4-r7} pop {r1} bx r1 - thumb_func_end StrCpyDecodeBattle + thumb_func_end BattleStringExpandPlaceholders - thumb_func_start StrCpyDecodeBattleTextBuff -StrCpyDecodeBattleTextBuff: @ 814F648 + thumb_func_start ExpandBattleTextBuffPlaceholders +ExpandBattleTextBuffPlaceholders: @ 814F648 push {r4-r7,lr} mov r7, r8 push {r7} @@ -2387,7 +2387,7 @@ _0814F6AC: ldrb r0, [r0, 0x2] lsls r0, 8 orrs r1, r0 - ldr r0, =gUnknown_085CC270 + ldr r0, =gBattleStringsTable subs r1, 0xC lsls r1, 2 adds r1, r0 @@ -2485,13 +2485,13 @@ _0814F768: ands r0, r1 cmp r0, 0 beq _0814F788 - ldr r1, =gUnknown_085CBD8B + ldr r1, =gText_FoePkmnPrefix adds r0, r6, 0 bl StringAppend b _0814F790 .pool _0814F788: - ldr r1, =gUnknown_085CBD85 + ldr r1, =gText_WildPkmnPrefix adds r0, r6, 0 bl StringAppend _0814F790: @@ -2562,7 +2562,7 @@ _0814F81A: b _0814F8DE .pool _0814F828: - ldr r1, =gUnknown_085CBE6C + ldr r1, =gPokeblockWasTooXStringTable adds r0, r5, r7 ldrb r0, [r0, 0x1] lsls r0, 2 @@ -2618,11 +2618,11 @@ _0814F858: adds r1, r0 adds r0, r6, 0 bl StringCopy - ldr r1, =gUnknown_085CC0AD + ldr r1, =gText_BerrySuffix b _0814F8BE .pool _0814F8BC: - ldr r1, =gUnknown_085CC0A0 + ldr r1, =gText_EnigmaBerry _0814F8BE: adds r0, r6, 0 bl StringAppend @@ -2652,7 +2652,7 @@ _0814F8EA: pop {r4-r7} pop {r0} bx r0 - thumb_func_end StrCpyDecodeBattleTextBuff + thumb_func_end ExpandBattleTextBuffPlaceholders thumb_func_start sub_814F8F8 sub_814F8F8: @ 814F8F8 @@ -2679,7 +2679,7 @@ _0814F918: blt _0814F944 cmp r2, 0x2 bgt _0814F938 - ldr r1, =gUnknown_085CCBB5 + ldr r1, =gText_SpaceIs adds r0, r4, 0 bl StringCopy b _0814F944 @@ -2687,7 +2687,7 @@ _0814F918: _0814F938: cmp r2, 0x4 bgt _0814F944 - ldr r1, =gUnknown_085CCBB9 + ldr r1, =gText_ApostropheS adds r0, r4, 0 bl StringCopy _0814F944: @@ -2744,26 +2744,26 @@ _0814F99C: .4byte _0814F9C8 .4byte _0814F9D8 _0814F9B0: - ldr r1, =gUnknown_085CBDB7 + ldr r1, =gText_ExclamationMark b _0814F9CA .pool _0814F9B8: - ldr r1, =gUnknown_085CBDB9 + ldr r1, =gText_ExclamationMark2 b _0814F9CA .pool _0814F9C0: - ldr r1, =gUnknown_085CBDBB + ldr r1, =gText_ExclamationMark3 b _0814F9CA .pool _0814F9C8: - ldr r1, =gUnknown_085CBDBD + ldr r1, =gText_ExclamationMark4 _0814F9CA: adds r0, r3, 0 bl StringCopy b _0814F9E0 .pool _0814F9D8: - ldr r1, =gUnknown_085CBDBF + ldr r1, =gText_ExclamationMark5 adds r0, r3, 0 bl StringCopy _0814F9E0: @@ -2773,8 +2773,8 @@ _0814F9E0: .pool thumb_func_end sub_814F950 - thumb_func_start battle_show_message_maybe -battle_show_message_maybe: @ 814F9EC + thumb_func_start sub_814F9EC +sub_814F9EC: @ 814F9EC push {r4-r7,lr} mov r7, r9 mov r6, r8 @@ -2987,7 +2987,7 @@ _0814FB9C: pop {r4-r7} pop {r0} bx r0 - thumb_func_end battle_show_message_maybe + thumb_func_end sub_814F9EC thumb_func_start sub_814FBAC sub_814FBAC: @ 814FBAC diff --git a/asm/battle_records.s b/asm/battle_records.s index 2c7b1d830..c961aefe3 100644 --- a/asm/battle_records.s +++ b/asm/battle_records.s @@ -488,7 +488,7 @@ sub_813C2F4: @ 813C2F4 movs r3, 0x4 bl ConvertIntToDecimalStringN ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EF6A1 + ldr r1, =gText_TotalRecordWLD adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0x1 @@ -672,7 +672,7 @@ sub_813C4BC: @ 813C4BC movs r1, 0x11 bl FillWindowPixelBuffer ldr r5, =gStringVar4 - ldr r1, =gUnknown_085EF68D + ldr r1, =gText_PlayersBattleResults adds r0, r5, 0 bl StringExpandPlaceholders movs r0, 0x1 @@ -697,7 +697,7 @@ sub_813C4BC: @ 813C4BC mov r9, r1 add r0, r9 bl sub_813C2F4 - ldr r1, =gUnknown_085EF6BD + ldr r1, =gText_WinLoseDraw adds r0, r5, 0 bl StringExpandPlaceholders ldrb r0, [r6] diff --git a/asm/battle_setup.s b/asm/battle_setup.s index 608d7843c..c2c762e96 100644 --- a/asm/battle_setup.s +++ b/asm/battle_setup.s @@ -585,7 +585,7 @@ sub_80B0AF8: @ 80B0AF8 _080B0B4C: ldr r0, =c2_exit_to_overworld_2_switch bl SetMainCallback2 - ldr r1, =gUnknown_03005DAC + ldr r1, =gFieldCallback ldr r0, =sub_80AF6F0 str r0, [r1] _080B0B58: @@ -704,7 +704,7 @@ _080B0C64: lsls r0, r5, 24 lsrs r4, r0, 24 adds r0, r4, 0 - bl sub_8089588 + bl MetatileBehavior_IsMB_0B lsls r0, 24 cmp r0, 0 beq _080B0C78 @@ -734,7 +734,7 @@ _080B0C9C: lsls r0, r5, 24 lsrs r4, r0, 24 adds r0, r4, 0 - bl sub_808962C + bl MetatileBehavior_IsDeepOrOceanWater lsls r0, 24 cmp r0, 0 bne _080B0CF2 @@ -744,7 +744,7 @@ _080B0C9C: cmp r0, 0 bne _080B0CE0 adds r0, r4, 0 - bl sub_808959C + bl MetatileBehavior_IsMountain lsls r0, 24 cmp r0, 0 beq _080B0CC8 @@ -757,7 +757,7 @@ _080B0CC8: cmp r0, 0 beq _080B0CF6 adds r0, r4, 0 - bl sub_80894D4 + bl MetatileBehavior_GetBridgeSth lsls r0, 24 cmp r0, 0 beq _080B0CE4 @@ -766,7 +766,7 @@ _080B0CE0: b _080B0D1A _080B0CE4: adds r0, r4, 0 - bl sub_80894AC + bl MetatileBehavior_IsBridge lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 diff --git a/asm/battle_transition.s b/asm/battle_transition.s index 9709fb54f..6406a3f24 100644 --- a/asm/battle_transition.s +++ b/asm/battle_transition.s @@ -2151,7 +2151,7 @@ sub_8147018: @ 8147018 ands r5, r0 movs r1, 0 mov r8, r4 - ldr r6, =gUnknown_02038C08 + ldr r6, =gFieldEffectSpawnParams _08147046: lsls r5, 16 asrs r5, 16 @@ -2221,7 +2221,7 @@ _081470C4: sub_81470D0: @ 81470D0 push {r4,r5,lr} ldr r0, =gUnknown_085C8E68 - ldr r5, =gUnknown_02038C08 + ldr r5, =gFieldEffectSpawnParams movs r2, 0 ldrsh r1, [r5, r2] movs r3, 0x4 diff --git a/asm/berry_blender.s b/asm/berry_blender.s index 73ff40796..0599fa153 100644 --- a/asm/berry_blender.s +++ b/asm/berry_blender.s @@ -5627,7 +5627,7 @@ _080827AA: ldr r0, [r6] ldr r1, =0x000011b8 adds r0, r1 - ldr r1, =gUnknown_085EE42D + ldr r1, =gText_SavingDontTurnOff2 movs r2, 0 bl sub_808417C bl sub_800ADF8 @@ -8350,7 +8350,7 @@ ShowBerryBlenderRecordWindow: @ 8083E24 ldrb r0, [r5] movs r1, 0x11 bl FillWindowPixelBuffer - ldr r6, =gUnknown_085EE44F + ldr r6, =gText_BlenderMaxSpeedRecord movs r0, 0x1 adds r1, r6, 0 movs r2, 0x90 @@ -8367,7 +8367,7 @@ ShowBerryBlenderRecordWindow: @ 8083E24 adds r2, r6, 0 bl PrintTextOnWindow ldrb r0, [r5] - ldr r2, =gUnknown_085EE473 + ldr r2, =gText_234Players movs r1, 0x29 str r1, [sp] str r4, [sp, 0x4] diff --git a/asm/berry_fix_program.s b/asm/berry_fix_program.s index 19ed0babd..2428f2984 100755 --- a/asm/berry_fix_program.s +++ b/asm/berry_fix_program.s @@ -5,588 +5,4 @@ .text - thumb_func_start sub_81BF384 -sub_81BF384: @ 81BF384 - push {r4,lr} - ldr r0, =0x0000ffff - bl DisableInterrupts - movs r0, 0x1 - bl EnableInterrupts - bl m4aSoundVSyncOff - movs r0, 0 - bl SetVBlankCallback - bl ResetSpriteData - bl ResetTasks - bl remove_some_task - movs r0, 0 - movs r1, 0 - bl SetGpuReg - ldr r4, =gUnknown_030012B8 - movs r0, 0x50 - bl AllocZeroed - str r0, [r4] - movs r1, 0 - strb r1, [r0] - ldr r1, [r4] - movs r0, 0x6 - strb r0, [r1, 0x1] - ldr r0, =sub_81BF3DC - bl SetMainCallback2 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BF384 - - thumb_func_start sub_81BF3DC -sub_81BF3DC: @ 81BF3DC - push {r4,r5,lr} - sub sp, 0x4 - ldr r1, =gUnknown_030012B8 - ldr r0, [r1] - ldrb r0, [r0] - adds r5, r1, 0 - cmp r0, 0x7 - bls _081BF3EE - b _081BF592 -_081BF3EE: - lsls r0, 2 - ldr r1, =_081BF400 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081BF400: - .4byte _081BF420 - .4byte _081BF430 - .4byte _081BF45C - .4byte _081BF488 - .4byte _081BF4BC - .4byte _081BF514 - .4byte _081BF552 - .4byte _081BF574 -_081BF420: - bl sub_81BF5A4 - ldr r0, =gUnknown_030012B8 - ldr r1, [r0] - movs r0, 0x1 - b _081BF590 - .pool -_081BF430: - movs r0, 0x5 - bl sub_81BF7A4 - cmp r0, 0x5 - beq _081BF43C - b _081BF592 -_081BF43C: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _081BF44A - b _081BF592 -_081BF44A: - ldr r0, =gUnknown_030012B8 - ldr r1, [r0] - movs r0, 0x2 - b _081BF590 - .pool -_081BF45C: - movs r0, 0 - bl sub_81BF7A4 - cmp r0, 0 - beq _081BF468 - b _081BF592 -_081BF468: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _081BF476 - b _081BF592 -_081BF476: - ldr r0, =gUnknown_030012B8 - ldr r1, [r0] - movs r0, 0x3 - b _081BF590 - .pool -_081BF488: - movs r0, 0x1 - bl sub_81BF7A4 - cmp r0, 0x1 - beq _081BF494 - b _081BF592 -_081BF494: - ldr r4, =gUnknown_030012B8 - ldr r0, [r4] - ldr r1, =gUnknown_089A6550 - str r1, [r0, 0x2C] - adds r0, 0x4F - movs r5, 0 - strb r5, [r0] - ldr r0, [r4] - adds r0, 0x4 - bl MultiBootInit - ldr r1, [r4] - strh r5, [r1, 0x2] - movs r0, 0x4 - b _081BF590 - .pool -_081BF4BC: - adds r4, r5, 0 - ldr r0, [r4] - adds r0, 0x4 - bl MultiBootMain - ldr r4, [r4] - ldrb r0, [r4, 0x1C] - cmp r0, 0 - bne _081BF4D8 - ldr r0, [r4, 0x20] - ldr r1, =0x00020200 - ands r0, r1 - cmp r0, r1 - beq _081BF4E4 -_081BF4D8: - movs r0, 0 - strh r0, [r4, 0x2] - b _081BF592 - .pool -_081BF4E4: - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xB4 - bls _081BF592 - adds r0, r4, 0x4 - ldr r1, =gMultiBootProgram_BerryGlitchFix_Start - ldr r2, =gMultiBootProgram_BerryGlitchFix_End - subs r2, r1 - movs r3, 0x1 - str r3, [sp] - movs r3, 0x4 - bl MultiBootStartMaster - ldr r1, [r5] - movs r0, 0x5 - b _081BF590 - .pool -_081BF514: - movs r0, 0x2 - bl sub_81BF7A4 - adds r4, r0, 0 - cmp r4, 0x2 - bne _081BF592 - ldr r5, =gUnknown_030012B8 - ldr r0, [r5] - adds r0, 0x4 - bl MultiBootMain - ldr r0, [r5] - adds r0, 0x4 - bl MultiBootCheckComplete - cmp r0, 0 - beq _081BF540 - ldr r1, [r5] - movs r0, 0x6 - b _081BF590 - .pool -_081BF540: - ldr r1, [r5] - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - ands r4, r0 - cmp r4, 0 - bne _081BF592 - movs r0, 0x7 - b _081BF590 -_081BF552: - movs r0, 0x3 - bl sub_81BF7A4 - cmp r0, 0x3 - bne _081BF592 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081BF592 - bl DoSoftReset - b _081BF592 - .pool -_081BF574: - movs r0, 0x4 - bl sub_81BF7A4 - cmp r0, 0x4 - bne _081BF592 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081BF592 - ldr r0, =gUnknown_030012B8 - ldr r1, [r0] - movs r0, 0x1 -_081BF590: - strb r0, [r1] -_081BF592: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BF3DC - - thumb_func_start sub_81BF5A4 -sub_81BF5A4: @ 81BF5A4 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x10 - movs r0, 0x8 - movs r1, 0 - bl SetGpuReg - movs r0, 0xA - movs r1, 0 - bl SetGpuReg - movs r0, 0x10 - movs r1, 0 - bl SetGpuReg - movs r0, 0x12 - movs r1, 0 - bl SetGpuReg - movs r0, 0x14 - movs r1, 0 - bl SetGpuReg - movs r0, 0x16 - movs r1, 0 - bl SetGpuReg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r1, 0 - str r1, [sp, 0xC] - ldr r4, =0x040000d4 - add r0, sp, 0xC - str r0, [r4] - movs r0, 0xC0 - lsls r0, 19 - str r0, [r4, 0x4] - ldr r0, =0x85006000 - str r0, [r4, 0x8] - ldr r0, [r4, 0x8] - str r1, [sp, 0xC] - add r0, sp, 0xC - str r0, [r4] - movs r0, 0xE0 - lsls r0, 19 - str r0, [r4, 0x4] - ldr r2, =0x85000100 - str r2, [r4, 0x8] - ldr r0, [r4, 0x8] - str r1, [sp, 0xC] - add r0, sp, 0xC - str r0, [r4] - movs r0, 0xA0 - lsls r0, 19 - str r0, [r4, 0x4] - str r2, [r4, 0x8] - ldr r0, [r4, 0x8] - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_08618108 - movs r0, 0 - movs r2, 0x2 - bl InitBgsFromTemplates - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - ldr r0, =gUnknown_08618110 - bl InitWindows - bl DeactivateAllTextPrinters - ldr r0, =gUnknown_08618138 - str r0, [r4] - ldr r0, =0x050001e0 - str r0, [r4, 0x4] - ldr r0, =0x84000008 - str r0, [r4, 0x8] - ldr r0, [r4, 0x8] - movs r0, 0 - movs r1, 0x40 - bl SetGpuReg - movs r0, 0x2 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x3 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0 - movs r1, 0xAA - bl FillWindowPixelBuffer - ldr r5, =gUnknown_08617E9B - movs r0, 0 - adds r1, r5, 0 - movs r2, 0 - bl GetStringWidth - adds r1, r0, 0 - movs r4, 0x78 - subs r0, r4, r1 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - lsls r2, r0, 24 - lsrs r2, 24 - ldr r6, =gUnknown_0861815B - str r6, [sp] - movs r0, 0x1 - negs r0, r0 - mov r8, r0 - str r0, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0x2 - movs r1, 0 - movs r3, 0x3 - bl box_print - ldr r5, =gUnknown_08617E8D - movs r0, 0 - adds r1, r5, 0 - movs r2, 0 - bl GetStringWidth - adds r1, r0, 0 - subs r4, r1 - lsrs r0, r4, 31 - adds r4, r0 - asrs r4, 1 - adds r0, r4, 0 - adds r0, 0x78 - lsls r2, r0, 24 - lsrs r2, 24 - str r6, [sp] - mov r0, r8 - str r0, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0x2 - movs r1, 0 - movs r3, 0x3 - bl box_print - movs r0, 0 - adds r1, r5, 0 - movs r2, 0 - bl GetStringWidth - adds r1, r0, 0 - movs r0, 0x70 - subs r0, r1 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - lsls r2, r0, 24 - lsrs r2, 24 - str r6, [sp] - mov r0, r8 - str r0, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0x3 - movs r1, 0 - movs r3, 0 - bl box_print - ldr r4, =gUnknown_08617E78 - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0 - bl GetStringWidth - adds r1, r0, 0 - movs r0, 0xD0 - subs r0, r1 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - lsls r2, r0, 24 - lsrs r2, 24 - ldr r0, =gUnknown_08618158 - str r0, [sp] - mov r0, r8 - str r0, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0 - movs r1, 0x1 - movs r3, 0x2 - bl box_print - movs r0, 0x2 - movs r1, 0x2 - bl CopyWindowToVram - movs r0, 0x3 - movs r1, 0x2 - bl CopyWindowToVram - movs r0, 0 - movs r1, 0x2 - bl CopyWindowToVram - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BF5A4 - - thumb_func_start sub_81BF7A4 -sub_81BF7A4: @ 81BF7A4 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, =gUnknown_030012B8 - ldr r0, [r5] - ldrb r0, [r0, 0x1] - cmp r0, r4 - bne _081BF7BC - adds r0, r4, 0 - b _081BF7DC - .pool -_081BF7BC: - cmp r0, 0x6 - bne _081BF7CC - adds r0, r4, 0 - bl sub_81BF7E8 - ldr r0, [r5] - strb r4, [r0, 0x1] - b _081BF7D6 -_081BF7CC: - bl sub_81BF8D8 - ldr r1, [r5] - movs r0, 0x6 - strb r0, [r1, 0x1] -_081BF7D6: - ldr r0, =gUnknown_030012B8 - ldr r0, [r0] - ldrb r0, [r0, 0x1] -_081BF7DC: - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81BF7A4 - - thumb_func_start sub_81BF7E8 -sub_81BF7E8: @ 81BF7E8 - push {r4-r6,lr} - sub sp, 0xC - adds r6, r0, 0 - movs r0, 0x20 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0x1 - movs r1, 0xAA - bl FillWindowPixelBuffer - ldr r0, =gUnknown_08618158 - str r0, [sp] - movs r0, 0x1 - negs r0, r0 - str r0, [sp, 0x4] - ldr r0, =gUnknown_08618160 - lsls r4, r6, 2 - adds r0, r4, r0 - ldr r0, [r0] - str r0, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0 - movs r3, 0 - bl box_print - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0x1 - movs r1, 0x2 - bl CopyWindowToVram - cmp r6, 0x5 - bhi _081BF87E - ldr r0, =_081BF850 - adds r0, r4, r0 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081BF850: - .4byte _081BF868 - .4byte _081BF870 - .4byte _081BF868 - .4byte _081BF868 - .4byte _081BF868 - .4byte _081BF878 -_081BF868: - movs r0, 0x2 - bl PutWindowTilemap - b _081BF87E -_081BF870: - movs r0, 0x3 - bl PutWindowTilemap - b _081BF87E -_081BF878: - movs r0, 0 - bl PutWindowTilemap -_081BF87E: - movs r0, 0 - bl CopyBgTilemapBufferToVram - ldr r5, =gUnknown_08618178 - lsls r4, r6, 1 - adds r4, r6 - lsls r4, 2 - adds r0, r4, r5 - ldr r0, [r0] - ldr r1, =0x06004000 - bl LZ77UnCompVram - adds r0, r5, 0x4 - adds r0, r4, r0 - ldr r0, [r0] - ldr r1, =0x0600f800 - bl LZ77UnCompVram - adds r5, 0x8 - adds r4, r5 - ldr r0, [r4] - movs r1, 0xA0 - lsls r1, 19 - ldr r2, =0x04000040 - bl CpuSet - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BF7E8 - - thumb_func_start sub_81BF8D8 -sub_81BF8D8: @ 81BF8D8 - push {lr} - movs r0, 0 - bl HideBg - movs r0, 0x1 - bl HideBg - pop {r0} - bx r0 - thumb_func_end sub_81BF8D8 - .align 2, 0 @ Don't pad with nop. diff --git a/asm/berry_tag_screen.s b/asm/berry_tag_screen.s index b21a249bd..9622f0508 100644 --- a/asm/berry_tag_screen.s +++ b/asm/berry_tag_screen.s @@ -511,7 +511,7 @@ sub_8178090: @ 8178090 movs r0, 0x3 movs r1, 0xFF bl FillWindowPixelBuffer - ldr r4, =gUnknown_085E926B + ldr r4, =gText_BerryTag movs r0, 0x1 adds r1, r4, 0 movs r2, 0x40 @@ -573,7 +573,7 @@ sub_8178110: @ 8178110 adds r1, r6, 0 bl StringCopy ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E9263 + ldr r1, =gText_UnkF908Var1Var2 adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0 @@ -602,7 +602,7 @@ sub_8178174: @ 8178174 ldrb r0, [r0] bl GetBerryInfo adds r4, r0, 0 - ldr r2, =gUnknown_085E9225 + ldr r2, =gText_SizeSlash movs r7, 0x1 str r7, [sp] movs r0, 0xFF @@ -652,7 +652,7 @@ _081781C8: movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E9233 + ldr r1, =gText_Var1DotVar2 adds r0, r4, 0 bl StringExpandPlaceholders str r7, [sp] @@ -694,7 +694,7 @@ itemid_copy_name: @ 8178250 ldrb r0, [r0] bl GetBerryInfo adds r6, r0, 0 - ldr r2, =gUnknown_085E922C + ldr r2, =gText_FirmSlash movs r5, 0x11 str r5, [sp] movs r0, 0xFF diff --git a/asm/bike.s b/asm/bike.s index 22d52c0fa..7ea4a4598 100644 --- a/asm/bike.s +++ b/asm/bike.s @@ -15,7 +15,7 @@ MovePlayerOnBike: @ 8119164 lsrs r4, r1, 16 lsls r2, 16 lsrs r2, 16 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0] movs r0, 0x2 ands r0, r1 @@ -72,7 +72,7 @@ CheckMovementInputMachBike: @ 81191CC cmp r1, 0 bne _081191F4 strb r0, [r4] - ldr r2, =gUnknown_02037590 + ldr r2, =gPlayerAvatar ldrb r0, [r2, 0xB] cmp r0, 0 bne _08119208 @@ -81,7 +81,7 @@ CheckMovementInputMachBike: @ 81191CC b _0811921C .pool _081191F4: - ldr r2, =gUnknown_02037590 + ldr r2, =gPlayerAvatar cmp r1, r3 beq _08119218 ldrb r0, [r2, 0x2] @@ -126,7 +126,7 @@ sub_8119238: @ 8119238 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -161,7 +161,7 @@ sub_8119280: @ 8119280 lsls r0, 24 lsrs r5, r0, 24 adds r7, r5, 0 - ldr r6, =gUnknown_02037590 + ldr r6, =gPlayerAvatar ldrb r1, [r6, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -255,7 +255,7 @@ sub_8119344: @ 8119344 lsls r0, 24 lsrs r5, r0, 24 adds r7, r5, 0 - ldr r6, =gUnknown_02037590 + ldr r6, =gPlayerAvatar ldrb r0, [r6, 0xB] cmp r0, 0 beq _0811935A @@ -352,7 +352,7 @@ CheckMovementInputAcroBike: @ 8119400 lsls r2, 16 lsrs r2, 16 ldr r4, =gUnknown_0859749C - ldr r3, =gUnknown_02037590 + ldr r3, =gPlayerAvatar ldrb r3, [r3, 0x8] lsls r3, 2 adds r3, r4 @@ -377,7 +377,7 @@ CheckMovementInputAcroBikeNormal: @ 811942C bl player_get_direction_upper_nybble lsls r0, 24 lsrs r3, r0, 24 - ldr r2, =gUnknown_02037590 + ldr r2, =gPlayerAvatar movs r0, 0 strb r0, [r2, 0xA] ldrb r1, [r4] @@ -417,11 +417,11 @@ _0811946C: b _081194C0 _0811948A: ldrb r0, [r4] - ldr r2, =gUnknown_02037590 + ldr r2, =gPlayerAvatar cmp r0, r3 beq _081194BC _08119492: - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x2] adds r2, r0, 0 cmp r1, 0x2 @@ -453,7 +453,7 @@ _081194C0: CheckMovementInputAcroBikeChangingDirection: @ 81194C8 push {r4-r6,lr} adds r5, r0, 0 - ldr r4, =gUnknown_02037590 + ldr r4, =gPlayerAvatar ldrb r0, [r4, 0x9] strb r0, [r5] ldrb r0, [r4, 0xA] @@ -520,7 +520,7 @@ CheckMovementInputAcroBikeStandingWheelie: @ 8119540 bl player_get_direction_upper_nybble lsls r0, 24 lsrs r6, r0, 24 - ldr r5, =gUnknown_02037590 + ldr r5, =gPlayerAvatar ldrb r1, [r5, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -553,7 +553,7 @@ _08119594: adds r0, 0x1 strb r0, [r5, 0xA] _0811959A: - ldr r1, =gUnknown_02037590 + ldr r1, =gPlayerAvatar ldrb r0, [r1, 0xA] cmp r0, 0x27 bls _081195B4 @@ -608,7 +608,7 @@ CheckMovementInputAcroBikeBunnyHop: @ 81195E0 lsls r0, 24 lsrs r5, r0, 24 adds r2, r5, 0 - ldr r4, =gUnknown_02037590 + ldr r4, =gPlayerAvatar ldrb r1, [r4, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -661,7 +661,7 @@ _08119668: movs r0, 0x6 b _08119676 _0811966E: - ldr r1, =gUnknown_02037590 + ldr r1, =gPlayerAvatar movs r0, 0x2 strb r0, [r1, 0x2] movs r0, 0x7 @@ -693,7 +693,7 @@ CheckMovementInputAcroBikeMovingWheelie: @ 8119688 lsls r0, 24 lsrs r5, r0, 24 adds r2, r5, 0 - ldr r4, =gUnknown_02037590 + ldr r4, =gPlayerAvatar ldrb r1, [r4, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -732,7 +732,7 @@ _081196F6: movs r0, 0x4 b _08119750 _081196FC: - ldr r1, =gUnknown_02037590 + ldr r1, =gPlayerAvatar movs r0, 0x2 strb r0, [r1, 0x2] movs r0, 0xC @@ -770,7 +770,7 @@ _08119736: movs r0, 0x5 b _08119750 _08119748: - ldr r1, =gUnknown_02037590 + ldr r1, =gPlayerAvatar movs r0, 0x2 strb r0, [r1, 0x2] movs r0, 0xA @@ -797,7 +797,7 @@ CheckMovementInputAcroBikeUnknownMode5: @ 8119764 lsrs r4, 16 lsls r5, 16 lsrs r5, 16 - ldr r6, =gUnknown_02037590 + ldr r6, =gPlayerAvatar ldrb r1, [r6, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -836,7 +836,7 @@ CheckMovementInputAcroBikeUnknownMode6: @ 81197C0 lsrs r1, 16 lsls r2, 16 lsrs r2, 16 - ldr r4, =gUnknown_02037590 + ldr r4, =gPlayerAvatar movs r3, 0 strb r3, [r4, 0x8] bl CheckMovementInputAcroBike @@ -863,7 +863,7 @@ sub_81197F4: @ 81197F4 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -893,7 +893,7 @@ sub_8119830: @ 8119830 lsls r0, 24 lsrs r5, r0, 24 adds r6, r5, 0 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -961,7 +961,7 @@ sub_81198C0: @ 81198C0 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -990,7 +990,7 @@ sub_81198FC: @ 81198FC push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -1019,7 +1019,7 @@ sub_8119938: @ 8119938 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -1048,7 +1048,7 @@ sub_8119974: @ 8119974 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -1077,7 +1077,7 @@ sub_81199B0: @ 81199B0 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -1156,7 +1156,7 @@ _08119A50: bl sub_81197F4 b _08119A84 _08119A58: - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r0, [r0, 0x5] lsls r4, r0, 3 adds r4, r0 @@ -1198,7 +1198,7 @@ sub_8119AA4: @ 8119AA4 lsls r0, 24 lsrs r4, r0, 24 adds r6, r4, 0 - ldr r7, =gUnknown_02037590 + ldr r7, =gPlayerAvatar ldrb r1, [r7, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -1267,7 +1267,7 @@ sub_8119B34: @ 8119B34 lsls r0, 24 lsrs r4, r0, 24 adds r6, r4, 0 - ldr r7, =gUnknown_02037590 + ldr r7, =gPlayerAvatar ldrb r1, [r7, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -1336,7 +1336,7 @@ sub_8119BC4: @ 8119BC4 lsls r0, 24 lsrs r4, r0, 24 adds r6, r4, 0 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -1396,7 +1396,7 @@ sub_8119C3C: @ 8119C3C lsrs r3, r0, 16 lsls r1, 16 lsrs r2, r1, 16 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0] movs r0, 0x4 ands r0, r1 @@ -1421,7 +1421,7 @@ sub_8119C64: @ 8119C64 bl sub_8119DF8 lsls r0, 24 lsrs r2, r0, 24 - ldr r4, =gUnknown_02037590 + ldr r4, =gPlayerAvatar ldr r0, [r4, 0xC] movs r1, 0xF ands r0, r1 @@ -1443,7 +1443,7 @@ _08119C9A: movs r0, 0xF adds r2, r5, 0 ands r2, r0 - ldr r4, =gUnknown_02037590 + ldr r4, =gPlayerAvatar ldr r0, [r4, 0x10] movs r1, 0xF ands r0, r1 @@ -1532,7 +1532,7 @@ sub_8119D30: @ 8119D30 _08119D36: ldr r0, =gUnknown_085974C0 adds r4, r5, r0 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldr r1, [r0, 0xC] ldr r2, [r0, 0x10] ldr r0, [r4, 0x8] @@ -1570,7 +1570,7 @@ _08119D7A: sub_8119D80: @ 8119D80 push {r4,lr} lsls r0, 24 - ldr r3, =gUnknown_02037590 + ldr r3, =gPlayerAvatar ldr r2, [r3, 0xC] lsls r2, 4 movs r1, 0xF0 @@ -1604,7 +1604,7 @@ _08119D9C: sub_8119DBC: @ 8119DBC push {r4,lr} lsls r0, 24 - ldr r3, =gUnknown_02037590 + ldr r3, =gPlayerAvatar ldr r2, [r3, 0x10] lsls r2, 4 movs r1, 0xF0 @@ -1681,7 +1681,7 @@ sub_8119E38: @ 8119E38 adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r0, [r0, 0x5] lsls r4, r0, 3 adds r4, r0 @@ -1922,7 +1922,7 @@ _08119FF2: sub_8119FF8: @ 8119FF8 push {r4,lr} sub sp, 0x4 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0] movs r0, 0x18 ands r0, r1 @@ -1966,7 +1966,7 @@ player_should_look_direction_be_enforced_upon_movement: @ 811A044 cmp r0, 0 beq _0811A078 ldr r2, =gMapObjects - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -1996,7 +1996,7 @@ GetOnOffBike: @ 811A080 ldr r1, =gUnknown_02037348 movs r0, 0 strb r0, [r1] - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0] movs r0, 0x6 ands r0, r1 @@ -2026,7 +2026,7 @@ _0811A0C4: thumb_func_start sub_811A0D0 sub_811A0D0: @ 811A0D0 push {lr} - ldr r2, =gUnknown_02037590 + ldr r2, =gPlayerAvatar movs r3, 0 strb r3, [r2, 0x8] strb r3, [r2, 0x9] @@ -2064,7 +2064,7 @@ _0811A0FA: sub_811A114: @ 811A114 lsls r0, 24 lsrs r0, 24 - ldr r2, =gUnknown_02037590 + ldr r2, =gPlayerAvatar strb r0, [r2, 0xA] lsrs r1, r0, 1 adds r0, r1 @@ -2075,7 +2075,7 @@ sub_811A114: @ 811A114 thumb_func_start sub_811A128 sub_811A128: @ 811A128 - ldr r1, =gUnknown_02037590 + ldr r1, =gPlayerAvatar movs r0, 0 strb r0, [r1, 0xA] strb r0, [r1, 0xB] @@ -2091,7 +2091,7 @@ sub_811A138: @ 811A138 mov r0, sp movs r2, 0x6 bl memcpy - ldr r2, =gUnknown_02037590 + ldr r2, =gPlayerAvatar ldrb r1, [r2] movs r0, 0x2 ands r0, r1 @@ -2130,7 +2130,7 @@ _0811A182: sub_811A188: @ 811A188 push {r4,r5,lr} sub sp, 0x4 - ldr r5, =gUnknown_02037590 + ldr r5, =gPlayerAvatar ldrb r1, [r5] movs r0, 0x4 ands r0, r1 diff --git a/asm/braille_puzzles.s b/asm/braille_puzzles.s index ceaddbdf0..095b1b793 100644 --- a/asm/braille_puzzles.s +++ b/asm/braille_puzzles.s @@ -271,7 +271,7 @@ _0817982E: sub_8179834: @ 8179834 push {lr} bl brm_get_pokemon_selection - ldr r1, =gUnknown_02038C08 + ldr r1, =gFieldEffectSpawnParams lsls r0, 24 lsrs r0, 24 str r0, [r1] @@ -367,7 +367,7 @@ _08179912: sub_8179918: @ 8179918 push {lr} bl brm_get_pokemon_selection - ldr r1, =gUnknown_02038C08 + ldr r1, =gFieldEffectSpawnParams lsls r0, 24 lsrs r0, 24 str r0, [r1] diff --git a/asm/cable_car.s b/asm/cable_car.s index 9307c54ff..092e9a75e 100644 --- a/asm/cable_car.s +++ b/asm/cable_car.s @@ -242,7 +242,7 @@ _0814FE96: bls _0814FE96 ldr r0, =gUnknown_085CDB74 bl LoadSpritePalettes - ldr r0, =gUnknown_085CD67C + ldr r0, =gCableCarMtChimneyTilemap adds r1, r5, 0 bl malloc_and_decompress ldr r4, =gUnknown_0203ABAC @@ -250,7 +250,7 @@ _0814FE96: ldr r2, =0x000040fc adds r1, r2 str r0, [r1] - ldr r0, =gUnknown_085CD7D4 + ldr r0, =gCableCarTreeTilemap adds r1, r5, 0 bl malloc_and_decompress ldr r1, [r4] @@ -258,14 +258,14 @@ _0814FE96: lsls r3, 7 adds r1, r3 str r0, [r1] - ldr r0, =gUnknown_085CD958 + ldr r0, =gCableCarMountainTilemap adds r1, r5, 0 bl malloc_and_decompress ldr r1, [r4] ldr r2, =0x00004104 adds r1, r2 str r0, [r1] - ldr r0, =gUnknown_085CDB30 + ldr r0, =gCableCarPylonStemTilemap adds r1, r5, 0 bl malloc_and_decompress ldr r1, [r4] @@ -274,7 +274,7 @@ _0814FE96: str r0, [r2] ldr r0, =0x00004108 adds r1, r0 - ldr r0, =gUnknown_085CDB1C + ldr r0, =gCableCarPylonHookTilemapEntries str r0, [r1] ldr r1, =gUnknown_08DBA5B8 movs r0, 0 @@ -775,7 +775,7 @@ _08150340: str r3, [r2, 0x8] ldr r0, [r2, 0x8] bl warp_in - ldr r0, =gUnknown_03005DAC + ldr r0, =gFieldCallback str r4, [r0] ldr r0, =c2_load_new_map bl SetMainCallback2 @@ -1908,7 +1908,7 @@ sub_8150D28: @ 8150D28 mov r5, r8 push {r5-r7} sub sp, 0x28 - ldr r1, =gUnknown_085CDBE4 + ldr r1, =gCableCarPlayerGraphicsIDs add r0, sp, 0xC movs r2, 0x2 bl memcpy @@ -1917,17 +1917,17 @@ sub_8150D28: @ 8150D28 lsrs r0, 16 mov r9, r0 add r6, sp, 0x10 - ldr r1, =gUnknown_085CDBE6 + ldr r1, =gMtChimneyHikerGraphicsIDs adds r0, r6, 0 movs r2, 0x4 bl memcpy add r5, sp, 0x14 - ldr r1, =gUnknown_085CDBEA + ldr r1, =gMtChimneyHikerCoords adds r0, r5, 0 movs r2, 0x8 bl memcpy add r4, sp, 0x1C - ldr r1, =gUnknown_085CDBF2 + ldr r1, =gMtChimneyHikerMovementDelayTable adds r0, r4, 0 movs r2, 0x4 bl memcpy @@ -1982,7 +1982,7 @@ _08150D86: movs r0, 0x49 strh r0, [r1, 0x30] _08150DD0: - ldr r4, =gUnknown_085CDB9C + ldr r4, =gSpriteTemplate_85CDB9C adds r0, r4, 0 movs r1, 0xB0 movs r2, 0x2B @@ -2088,7 +2088,7 @@ _08150E68: movs r0, 0x27 strh r0, [r1, 0x30] _08150ED4: - ldr r4, =gUnknown_085CDB9C + ldr r4, =gSpriteTemplate_85CDB9C adds r0, r4, 0 movs r1, 0x68 movs r2, 0x9 @@ -2149,7 +2149,7 @@ _08150F3E: ldr r3, =0xfff80000 adds r2, r3 asrs r2, 16 - ldr r0, =gUnknown_085CDBCC + ldr r0, =gSpriteTemplate_85CDBCC movs r3, 0x68 bl CreateSprite lsls r0, 24 diff --git a/asm/cable_club.s b/asm/cable_club.s index 76d1dca06..80d9a0916 100644 --- a/asm/cable_club.s +++ b/asm/cable_club.s @@ -55,7 +55,7 @@ sub_80B23B0: @ 80B23B0 movs r1, 0 bl SetStandardWindowBorderStyle ldr r5, =gStringVar4 - ldr r1, =gUnknown_085EE667 + ldr r1, =gText_XPLink adds r0, r5, 0 bl StringExpandPlaceholders movs r0, 0x1 diff --git a/asm/clear_save_data_screen.s b/asm/clear_save_data_screen.s index 27c32feb5..5efff250c 100644 --- a/asm/clear_save_data_screen.s +++ b/asm/clear_save_data_screen.s @@ -33,7 +33,7 @@ sub_817ACE4: @ 817ACE4 movs r2, 0x2 movs r3, 0xE bl SetWindowBorderStyle - ldr r2, =gUnknown_085EFA8F + ldr r2, =gText_ClearAllSaveData movs r0, 0x1 str r0, [sp] movs r0, 0 @@ -87,7 +87,7 @@ _0817AD68: movs r0, 0 movs r1, 0x11 bl FillWindowPixelBuffer - ldr r2, =gUnknown_085EFAAA + ldr r2, =gText_ClearingData movs r0, 0x1 str r0, [sp] str r4, [sp, 0x4] diff --git a/asm/contest.s b/asm/contest.s index 76effb4e7..023c6ebef 100644 --- a/asm/contest.s +++ b/asm/contest.s @@ -50,15 +50,15 @@ sub_80D7678: @ 80D7678 strh r1, [r0] ldr r0, =gUnknown_02022E16 strh r1, [r0] - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X strh r1, [r0] - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y strh r1, [r0] - ldr r0, =gUnknown_02022E1C + ldr r0, =gBattle_BG2_X strh r1, [r0] - ldr r0, =gUnknown_02022E1E + ldr r0, =gBattle_BG2_Y strh r1, [r0] - ldr r0, =gUnknown_02022E20 + ldr r0, =gBattle_BG3_X strh r1, [r0] ldr r0, =gUnknown_02022E22 strh r1, [r0] @@ -611,10 +611,10 @@ _080D7BF6: .pool _080D7C04: bl sub_80DE224 - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X movs r1, 0 strh r1, [r0] - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y strh r1, [r0] movs r0, 0x2 bl BeginFastPaletteFade @@ -1190,7 +1190,7 @@ _080D814C: strh r0, [r4, 0x8] b _080D822C _080D8176: - ldr r1, =gUnknown_02022E1A + ldr r1, =gBattle_BG1_Y ldrh r0, [r1] adds r0, 0x7 strh r0, [r1] @@ -1324,23 +1324,23 @@ vblank_cb_battle: @ 80D827C ldrh r1, [r0] movs r0, 0x12 bl SetGpuReg - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X ldrh r1, [r0] movs r0, 0x14 bl SetGpuReg - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y ldrh r1, [r0] movs r0, 0x16 bl SetGpuReg - ldr r0, =gUnknown_02022E1C + ldr r0, =gBattle_BG2_X ldrh r1, [r0] movs r0, 0x18 bl SetGpuReg - ldr r0, =gUnknown_02022E1E + ldr r0, =gBattle_BG2_Y ldrh r1, [r0] movs r0, 0x1A bl SetGpuReg - ldr r0, =gUnknown_02022E20 + ldr r0, =gBattle_BG3_X ldrh r1, [r0] movs r0, 0x1C bl SetGpuReg @@ -1389,7 +1389,7 @@ sub_80D833C: @ 80D833C bne _080D840C ldr r0, =gUnknown_02022E16 strh r1, [r0] - ldr r0, =gUnknown_02022E1E + ldr r0, =gBattle_BG2_Y strh r1, [r0] bl sub_80DCD48 ldr r1, =gPlttBufferUnfaded @@ -1520,7 +1520,7 @@ sub_80D8490: @ 80D8490 ldr r0, =gUnknown_02022E16 movs r1, 0xA0 strh r1, [r0] - ldr r0, =gUnknown_02022E1E + ldr r0, =gBattle_BG2_Y strh r1, [r0] movs r6, 0 ldr r0, =gUnknown_02039F25 @@ -1579,7 +1579,7 @@ _080D84B8: cmp r0, 0 beq _080D853C add r0, sp, 0x4 - ldr r1, =gUnknown_085ED1A0 + ldr r1, =gText_ColorLightShadowDarkGrey b _080D8566 .pool _080D853C: @@ -1603,7 +1603,7 @@ _080D853C: cmp r0, 0x3 beq _080D856C add r0, sp, 0x4 - ldr r1, =gUnknown_085ED1A7 + ldr r1, =gText_ColorBlue _080D8566: bl StringCopy adds r5, r0, 0 @@ -1773,7 +1773,7 @@ _080D86E4: ldr r0, =gUnknown_02022E16 movs r1, 0 strh r1, [r0] - ldr r0, =gUnknown_02022E1E + ldr r0, =gBattle_BG2_Y strh r1, [r0] ldr r1, =gTasks lsls r0, r7, 2 @@ -2044,7 +2044,7 @@ sub_80D895C: @ 80D895C ldr r0, =gUnknown_02022E16 movs r1, 0 strh r1, [r0] - ldr r0, =gUnknown_02022E1E + ldr r0, =gBattle_BG2_Y strh r1, [r0] movs r0, 0 bl sub_80DC490 @@ -5325,7 +5325,7 @@ sub_80DA5E8: @ 80DA5E8 ldr r0, =gUnknown_02022E16 movs r1, 0 strh r1, [r0] - ldr r0, =gUnknown_02022E1E + ldr r0, =gBattle_BG2_Y strh r1, [r0] ldr r4, =gUnknown_02039F34 movs r3, 0 @@ -5404,9 +5404,9 @@ sub_80DA6B4: @ 80DA6B4 cmp r4, 0 bne _080DA6EA bl sub_80DE224 - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X strh r4, [r0] - ldr r1, =gUnknown_02022E1A + ldr r1, =gBattle_BG1_Y movs r0, 0xA0 strh r0, [r1] movs r0, 0x62 @@ -5432,7 +5432,7 @@ sub_80DA700: @ 80DA700 push {lr} lsls r0, 24 lsrs r3, r0, 24 - ldr r1, =gUnknown_02022E1A + ldr r1, =gBattle_BG1_Y ldrh r0, [r1] subs r0, 0x7 strh r0, [r1] @@ -5582,7 +5582,7 @@ sub_80DA830: @ 80DA830 bne _080DA860 adds r0, r2, 0 bl DestroyTask - ldr r0, =gUnknown_03005DAC + ldr r0, =gFieldCallback ldr r1, =sub_80DA874 str r1, [r0] bl FreeAllWindowBuffers @@ -6407,7 +6407,7 @@ sub_80DAED4: @ 80DAED4 lsls r4, r1, 24 lsrs r4, 24 ldr r0, =gDisplayedStringBattle - ldr r1, =gUnknown_085ED1AB + ldr r1, =gText_ColorTransparent bl StringCopy adds r1, r0, 0 subs r0, r1, 0x1 @@ -8519,7 +8519,7 @@ sub_80DBF68: @ 80DBF68 ldr r0, =gUnknown_02022E16 movs r1, 0 strh r1, [r0] - ldr r0, =gUnknown_02022E1E + ldr r0, =gBattle_BG2_Y strh r1, [r0] bl sub_80DB89C ldr r0, =gUnknown_0827E8DA @@ -12881,10 +12881,10 @@ sub_80DE224: @ 80DE224 ldrh r1, [r5] movs r0, 0xC bl SetGpuReg - ldr r1, =gUnknown_02022E18 + ldr r1, =gBattle_BG1_X movs r0, 0xF0 strh r0, [r1] - ldr r4, =gUnknown_02022E1A + ldr r4, =gBattle_BG1_Y movs r0, 0xA0 strh r0, [r4] movs r0, 0x14 @@ -13004,9 +13004,9 @@ sub_80DE350: @ 80DE350 ldrh r1, [r3] movs r0, 0xA bl SetGpuReg - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X strh r5, [r0] - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y strh r5, [r0] ldr r7, =gSprites _080DE3CA: @@ -13051,10 +13051,10 @@ sub_80DE424: @ 80DE424 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r1, =gUnknown_02022E18 + ldr r1, =gBattle_BG1_X movs r0, 0 strh r0, [r1] - ldr r1, =gUnknown_02022E1A + ldr r1, =gBattle_BG1_Y movs r0, 0xA0 strh r0, [r1] movs r0, 0x62 @@ -13078,7 +13078,7 @@ sub_80DE464: @ 80DE464 push {lr} lsls r0, 24 lsrs r3, r0, 24 - ldr r1, =gUnknown_02022E1A + ldr r1, =gBattle_BG1_Y ldrh r0, [r1] subs r0, 0x7 strh r0, [r1] @@ -13233,7 +13233,7 @@ sub_80DE5C0: @ 80DE5C0 push {lr} lsls r0, 24 lsrs r2, r0, 24 - ldr r1, =gUnknown_02022E1A + ldr r1, =gBattle_BG1_Y ldrh r0, [r1] adds r0, 0x7 strh r0, [r1] @@ -15507,7 +15507,7 @@ _080DF784: mov r9, r0 _080DF7AE: add r0, sp, 0x4 - ldr r1, =gUnknown_085ED1B2 + ldr r1, =gText_CDot bl StringCopy adds r5, r0, 0 ldr r0, =gUnknown_02039F26 @@ -15604,7 +15604,7 @@ _080DF874: mov r10, r1 _080DF884: add r0, sp, 0x4 - ldr r1, =gUnknown_085ED1B5 + ldr r1, =gText_BDot bl StringCopy ldr r0, =gUnknown_02039F34 ldr r0, [r0] diff --git a/asm/contest_link_80F57C4.s b/asm/contest_link_80F57C4.s index bf7a88eb8..8e2e2c61c 100644 --- a/asm/contest_link_80F57C4.s +++ b/asm/contest_link_80F57C4.s @@ -97,15 +97,15 @@ _080F57E0: strh r1, [r0] ldr r0, =gUnknown_02022E16 strh r1, [r0] - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X strh r1, [r0] - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y strh r1, [r0] - ldr r0, =gUnknown_02022E1C + ldr r0, =gBattle_BG2_X strh r1, [r0] - ldr r0, =gUnknown_02022E1E + ldr r0, =gBattle_BG2_Y strh r1, [r0] - ldr r0, =gUnknown_02022E20 + ldr r0, =gBattle_BG3_X strh r1, [r0] ldr r0, =gUnknown_02022E22 strh r1, [r0] @@ -283,7 +283,7 @@ sub_80F5A74: @ 80F5A74 ldrb r0, [r0] cmp r5, r0 bne _080F5A96 - ldr r1, =gUnknown_085ED21E + ldr r1, =gText_ColorDarkGrey adds r0, r6, 0 bl StringCopy adds r6, r0, 0 @@ -449,23 +449,23 @@ sub_80F5C24: @ 80F5C24 ldrh r1, [r0] movs r0, 0x12 bl SetGpuReg - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X ldrh r1, [r0] movs r0, 0x14 bl SetGpuReg - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y ldrh r1, [r0] movs r0, 0x16 bl SetGpuReg - ldr r0, =gUnknown_02022E1C + ldr r0, =gBattle_BG2_X ldrh r1, [r0] movs r0, 0x18 bl SetGpuReg - ldr r0, =gUnknown_02022E1E + ldr r0, =gBattle_BG2_Y ldrh r1, [r0] movs r0, 0x1A bl SetGpuReg - ldr r0, =gUnknown_02022E20 + ldr r0, =gBattle_BG3_X ldrh r1, [r0] movs r0, 0x1C bl SetGpuReg @@ -655,7 +655,7 @@ _080F5E2E: ands r0, r1 cmp r0, 0 beq _080F5E78 - ldr r0, =gUnknown_085ED207 + ldr r0, =gText_CommunicationStandby bl sub_80F707C ldr r0, =sub_80F5ED8 b _080F5EB8 @@ -784,7 +784,7 @@ sub_80F5F74: @ 80F5F74 ldr r0, =sub_80F68F0 movs r1, 0x14 bl CreateTask - ldr r0, =gUnknown_085ED1B8 + ldr r0, =gText_AnnouncingResults ldr r1, =gUnknown_0203A034 ldr r1, [r1] ldr r1, [r1] @@ -828,7 +828,7 @@ _080F5FF0: _080F5FF8: cmp r0, 0x3 bne _080F6030 - ldr r0, =gUnknown_085ED1D0 + ldr r0, =gText_PreliminaryResults ldr r1, =gUnknown_0203A034 ldr r1, [r1] ldr r1, [r1] @@ -970,7 +970,7 @@ sub_80F60F0: @ 80F60F0 cmp r0, 0x15 bne _080F615E strh r3, [r1, 0xA] - ldr r0, =gUnknown_085ED1E9 + ldr r0, =gText_Round2Results ldr r1, [r5] ldrb r1, [r1] bl sub_80F6B78 @@ -1265,7 +1265,7 @@ _080F636E: adds r4, r1 adds r1, r4, 0 bl StringCopy - ldr r1, =gUnknown_085ED1FA + ldr r1, =gText_Var1sVar2Won mov r0, sp bl StringExpandPlaceholders ldr r0, =gUnknown_0203A034 @@ -1679,7 +1679,7 @@ sub_80F671C: @ 80F671C ldrsh r0, [r4, r1] cmp r0, 0 bne _080F676E - ldr r0, =gUnknown_085ED207 + ldr r0, =gText_CommunicationStandby bl sub_80F707C bl sub_800AC34 ldr r0, =sub_80F677C @@ -1838,7 +1838,7 @@ _080F68A8: thumb_func_start sub_80F68B4 sub_80F68B4: @ 80F68B4 push {r4,r5,lr} - ldr r2, =gUnknown_02022E20 + ldr r2, =gBattle_BG3_X ldrh r3, [r2] adds r0, r3, 0x2 strh r0, [r2] @@ -1989,7 +1989,7 @@ sub_80F69B8: @ 80F69B8 _080F69DE: adds r0, r7, 0 ldr r1, [sp, 0x28] - bl sub_80D2EDC + bl GetMonIconPtr adds r3, r0, 0 lsls r0, r5, 9 adds r0, 0x80 diff --git a/asm/crt0.s b/asm/crt0.s index 14675fe4c..3ece5c7d0 100644 --- a/asm/crt0.s +++ b/asm/crt0.s @@ -18,17 +18,65 @@ Start: @ 8000000 .global GPIOPortData GPIOPortData: @ 80000C4 - .hword 0 + .2byte 0 .global GPIOPortDirection GPIOPortDirection: @ 80000C6 - .hword 0 + .2byte 0 .global GPIOPortReadEnable GPIOPortReadEnable: @ 80000C8 - .hword 0 + .2byte 0 - .incbin "baserom.gba", 0xCA, 0x204 - 0xCA +@ 80000CA + .2byte 0 + +@ 80000CC + .space 0x34 + + .4byte 3 + .4byte 2 + + .ascii "pokemon emerald version" + .space 9 + + .4byte gMonFrontPicTable + .4byte gMonBackPicTable + .4byte gMonPaletteTable + .4byte gMonShinyPaletteTable + .4byte gMonIconTable + .4byte gMonIconPaletteIndices + .4byte gMonIconPaletteTable + .4byte gSpeciesNames + .4byte gMoveNames + .4byte gDecorations + + .4byte 0x00001270, 0x0000139c, 0x00000018, 0x00000988 + .4byte 0x00003b24, 0x00000046, 0x000008e4, 0x000008ac + .4byte 0x00000182 + + .byte 0x07, 0x0a, 0x0a, 0x0a, 0x0c, 0x0c, 0x06, 0x0c + .byte 0x06, 0x10, 0x12, 0x0c, 0x0f, 0x0b, 0x01, 0x08 + + .4byte 0x0000000c, 0x00000f2c, 0x00003d88, 0x00000234 + .4byte 0x00000238, 0x00000009, 0x0000000a, 0x00000000 + .4byte 0x00000008, 0x00000ca8, 0x00000ca8, 0x000031c7 + .4byte 0x000031b3, 0x00000000 + + .4byte gBaseStats + .4byte gAbilityNames + .4byte gAbilityDescriptionPointers + .4byte gItems + .4byte gBattleMoves + .4byte gUnknown_0832C400 + .4byte gUnknown_0832C460 + + .4byte 0x000000a8, 0x00000864, 0x0000089b + + .byte 0x1e, 0x1e, 0x10, 0x40 + + .4byte 0x0000322e, 0x00000498, 0x000031a8, 0x000031f8 + .4byte 0x00000034, 0x00000000, 0x00000000 .arm .align 2, 0 diff --git a/asm/daycare.s b/asm/daycare.s index 711d63e42..065911df8 100644 --- a/asm/daycare.s +++ b/asm/daycare.s @@ -5,8 +5,8 @@ .text - thumb_func_start pokemon_get_nick -pokemon_get_nick: @ 806FA2C + thumb_func_start GetMonNick +GetMonNick: @ 806FA2C push {r4,lr} sub sp, 0x14 adds r4, r1, 0 @@ -20,10 +20,10 @@ pokemon_get_nick: @ 806FA2C pop {r4} pop {r1} bx r1 - thumb_func_end pokemon_get_nick + thumb_func_end GetMonNick - thumb_func_start pokemon_get_nick_ -pokemon_get_nick_: @ 806FA4C + thumb_func_start GetBoxMonNick +GetBoxMonNick: @ 806FA4C push {r4,lr} sub sp, 0x14 adds r4, r1, 0 @@ -37,7 +37,7 @@ pokemon_get_nick_: @ 806FA4C pop {r4} pop {r1} bx r1 - thumb_func_end pokemon_get_nick_ + thumb_func_end GetBoxMonNick thumb_func_start daycare_count_pokemon daycare_count_pokemon: @ 806FA6C @@ -177,7 +177,7 @@ sub_806FB38: @ 806FB38 adds r4, 0x7C adds r0, r6, 0 adds r1, r4, 0 - bl pokemon_get_nick + bl GetMonNick adds r0, r4, 0 bl StripExtCtrlCodes adds r4, 0xB @@ -376,7 +376,7 @@ sub_806FCF8: @ 806FCF8 sub sp, 0x68 adds r5, r0, 0 ldr r1, =gStringVar1 - bl pokemon_get_nick_ + bl GetBoxMonNick adds r0, r5, 0 movs r1, 0xB bl GetBoxMonData @@ -547,7 +547,7 @@ sub_806FE54: @ 806FE54 bl ConvertIntToDecimalStringN ldr r1, =gStringVar1 adds r0, r5, 0 - bl pokemon_get_nick_ + bl GetBoxMonNick adds r0, r4, 0 pop {r4,r5} pop {r1} @@ -565,7 +565,7 @@ sub_806FE88: @ 806FE88 lsrs r4, 24 ldr r1, =gStringVar1 adds r0, r5, 0 - bl pokemon_get_nick_ + bl GetBoxMonNick movs r0, 0x64 muls r4, r0 adds r4, 0x64 @@ -2175,7 +2175,7 @@ _08070B34: lsrs r0, 24 cmp r0, 0xFF bne _08070BC0 - bl sub_807228C + bl GetEggStepsToSubtract lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 @@ -2280,7 +2280,7 @@ sub_8070C04: @ 8070C04 beq _08070C2E ldr r1, =gStringVar1 adds r0, r4, 0 - bl pokemon_get_nick_ + bl GetBoxMonNick adds r0, r4, 0 movs r1, 0x7 mov r2, sp @@ -2297,7 +2297,7 @@ _08070C2E: beq _08070C44 ldr r1, =gStringVar2 adds r0, r4, 0 - bl pokemon_get_nick_ + bl GetBoxMonNick _08070C44: add sp, 0xC pop {r4} @@ -2317,7 +2317,7 @@ sub_8070C58: @ 8070C58 ldr r4, =gPlayerParty adds r0, r4 ldr r1, =gStringVar1 - bl pokemon_get_nick_ + bl GetBoxMonNick bl brm_get_pokemon_selection lsls r0, 24 lsrs r0, 24 @@ -2788,7 +2788,7 @@ _08070FCC: adds r5, r1, r0 adds r0, r4, 0 adds r1, r5, 0 - bl pokemon_get_nick_ + bl GetBoxMonNick adds r0, r5, 0 adds r1, r4, 0 bl sub_8070F98 @@ -2800,7 +2800,7 @@ _08070FCC: adds r0, r7, 0 mov r1, sp bl StringCopy - ldr r4, =gUnknown_085EF881 + ldr r4, =gText_NewLine2 adds r0, r7, 0 adds r1, r4, 0 bl StringAppend @@ -2810,7 +2810,7 @@ _08070FCC: adds r0, r7, 0 adds r1, r4, 0 bl StringAppend - ldr r1, =gUnknown_085EF883 + ldr r1, =gText_Exit4 adds r0, r7, 0 bl StringAppend add sp, 0x28 @@ -2834,7 +2834,7 @@ sub_8071038: @ 8071038 movs r5, 0 _08071046: adds r0, r4, 0 - ldr r1, =gUnknown_085EF888 + ldr r1, =gText_Lv bl StringAppend movs r0, 0x8C adds r2, r5, 0 @@ -2856,7 +2856,7 @@ _08071046: mov r1, sp bl StringAppend adds r0, r4, 0 - ldr r1, =gUnknown_085EF881 + ldr r1, =gText_NewLine2 bl StringAppend adds r0, r5, 0x1 lsls r0, 24 @@ -2944,7 +2944,7 @@ sub_8071110: @ 8071110 adds r5, r0 adds r0, r5, 0 mov r1, sp - bl pokemon_get_nick_ + bl GetBoxMonNick mov r0, sp adds r1, r5, 0 bl sub_8070F98 @@ -2971,7 +2971,7 @@ sub_8071148: @ 8071148 mov r8, r3 lsls r5, 24 lsrs r5, 24 - ldr r1, =gUnknown_085EF888 + ldr r1, =gText_Lv mov r0, sp bl StringCopy movs r0, 0x8C diff --git a/asm/decoration.s b/asm/decoration.s index 4efc70e04..89bfbe3bf 100644 --- a/asm/decoration.s +++ b/asm/decoration.s @@ -336,7 +336,7 @@ sub_8126C48: @ 8126C48 cmp r0, 0 bne _08126C7C ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EA83D + ldr r1, =gText_NoDecorations adds r0, r4, 0 bl StringExpandPlaceholders ldr r2, =sub_8126DA4 @@ -376,7 +376,7 @@ sub_8126CA4: @ 8126CA4 cmp r0, 0 bne _08126CD8 ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EAAEC + ldr r1, =gText_NoDecorationsInUse adds r0, r4, 0 bl StringExpandPlaceholders ldr r2, =sub_8126DA4 @@ -420,7 +420,7 @@ sub_8126D10: @ 8126D10 cmp r0, 0 bne _08126D44 ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EA83D + ldr r1, =gText_NoDecorations adds r0, r4, 0 bl StringExpandPlaceholders ldr r2, =sub_8126DA4 @@ -656,7 +656,7 @@ _08126F0C: ldr r2, =gText_Cancel cmp r0, 0x2 bne _08126F2C - ldr r2, =gUnknown_085EB7EA + ldr r2, =gText_Exit _08126F2C: lsls r0, r4, 4 adds r0, 0x1 @@ -798,7 +798,7 @@ sub_8127058: @ 8127058 adds r5, r0, 0 lsls r4, r1, 24 lsrs r4, 24 - ldr r1, =gUnknown_085EA7C8 + ldr r1, =gText_Color161Shadow161 bl StringCopy cmp r4, 0x1 bne _08127078 @@ -909,7 +909,7 @@ _08127154: movs r0, 0x1 bl sub_8126A58 ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EA83D + ldr r1, =gText_NoDecorations adds r0, r4, 0 bl StringExpandPlaceholders ldr r2, =sub_8127180 @@ -1264,7 +1264,7 @@ sub_8127454: @ 8127454 ldr r1, =gStringVar1 bl StringCopy lsls r4, 5 - ldr r0, =gUnknown_085A5C09 + ldr r0, =gDecorations + 1 adds r4, r0 adds r0, r5, 0 adds r1, r4, 0 @@ -2222,7 +2222,7 @@ _08127C0A: lsls r4, r0, 16 lsls r0, r4, 8 lsrs r0, 24 - bl sub_80892D8 + bl MetatileBehavior_IsMB_B9 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -2257,7 +2257,7 @@ _08127C64: bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 - bl sub_8089328 + bl MetatileBehavior_IsMB_B7 lsls r0, 24 lsrs r0, 24 movs r6, 0x1 @@ -2637,7 +2637,7 @@ sub_8127F68: @ 8127F68 cmp r0, 0x7 beq _08127FAC ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EA9AE + ldr r1, =gText_CantPlaceInRoom adds r0, r4, 0 bl StringExpandPlaceholders ldr r2, =sub_8127A5C @@ -2682,13 +2682,13 @@ _08127FE8: cmp r0, 0 bne _08128018 ldr r0, =gStringVar4 - ldr r1, =gUnknown_085EA8EA + ldr r1, =gText_NoMoreDecorations bl StringExpandPlaceholders b _08128020 .pool _08128018: ldr r0, =gStringVar4 - ldr r1, =gUnknown_085EA931 + ldr r1, =gText_NoMoreDecorations2 bl StringExpandPlaceholders _08128020: ldr r1, =gStringVar4 @@ -2699,7 +2699,7 @@ _08128020: .pool _08128038: ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EA8D2 + ldr r1, =gText_InUseAlready adds r0, r4, 0 bl StringExpandPlaceholders ldr r2, =sub_8127A5C @@ -3169,7 +3169,7 @@ sub_8128414: @ 8128414 strh r2, [r0, 0x3C] bl sub_8128DE0 ldr r5, =gStringVar4 - ldr r1, =gUnknown_085EA8BF + ldr r1, =gText_CancelDecorating adds r0, r5, 0 bl StringExpandPlaceholders ldr r2, =sub_8128B80 @@ -3189,7 +3189,7 @@ sub_8128484: @ 8128484 lsrs r0, 24 lsls r1, 16 lsrs r4, r1, 16 - bl sub_80892C4 + bl MetatileBehavior_IsMB_B3 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -3257,7 +3257,7 @@ sub_81284F4: @ 81284F4 lsls r0, r6, 24 lsrs r4, r0, 24 adds r0, r4, 0 - bl sub_80892C4 + bl MetatileBehavior_IsMB_B3 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -3266,7 +3266,7 @@ sub_81284F4: @ 81284F4 cmp r0, 0x21 bne _08128522 adds r0, r4, 0 - bl sub_8089378 + bl MetatileBehavior_IsMB_C2 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -3274,7 +3274,7 @@ sub_81284F4: @ 81284F4 _08128522: lsls r0, r6, 24 lsrs r0, 24 - bl sub_8089314 + bl MetatileBehavior_IsNormal lsls r0, 24 cmp r0, 0 beq _08128534 @@ -3520,7 +3520,7 @@ _081286B8: adds r5, r1, 0 ands r5, r0 adds r0, r4, 0 - bl sub_8089314 + bl MetatileBehavior_IsNormal lsls r0, 24 cmp r0, 0 bne _08128724 @@ -3625,12 +3625,12 @@ _08128790: adds r5, r1, 0 ands r5, r0 adds r0, r4, 0 - bl sub_8089314 + bl MetatileBehavior_IsNormal lsls r0, 24 cmp r0, 0 bne _081287F2 adds r0, r4, 0 - bl sub_8089328 + bl MetatileBehavior_IsMB_B7 lsls r0, 24 cmp r0, 0 bne _081287F2 @@ -3707,7 +3707,7 @@ _08128868: bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 - bl sub_8089328 + bl MetatileBehavior_IsMB_B7 lsls r0, 24 cmp r0, 0 beq _0812890C @@ -3772,7 +3772,7 @@ _081288D8: bne _08128910 _08128900: adds r0, r4, 0 - bl sub_8089364 + bl MetatileBehavior_IsMB_C3 lsls r0, 24 cmp r0, 0 bne _0812891C @@ -3781,7 +3781,7 @@ _0812890C: b _0812893E _08128910: adds r0, r4, 0 - bl sub_8089350 + bl MetatileBehavior_IsMB_B5 lsls r0, 24 cmp r0, 0 beq _08128900 @@ -3835,7 +3835,7 @@ sub_8128950: @ 8128950 cmp r0, 0x1 bne _081289A4 ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EA897 + ldr r1, =gText_PlaceItHere adds r0, r4, 0 bl StringExpandPlaceholders ldr r2, =sub_81289D0 @@ -3848,7 +3848,7 @@ _081289A4: movs r0, 0x20 bl PlaySE ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EA8A6 + ldr r1, =gText_CantBePlacedHere adds r0, r4, 0 bl StringExpandPlaceholders ldr r2, =sub_8129020 @@ -4149,7 +4149,7 @@ _08128C30: bl sub_812A3C8 ldr r0, =0x00000be5 bl FreeSpritePaletteByTag - ldr r1, =gUnknown_03005DAC + ldr r1, =gFieldCallback ldr r0, =sub_8128CD4 str r0, [r1] ldr r0, =c2_exit_to_overworld_2_switch @@ -5810,7 +5810,7 @@ _08129968: cmp r0, 0x1 bne _08129994 ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EAAC5 + ldr r1, =gText_DecorationReturnedToPC adds r0, r4, 0 bl StringExpandPlaceholders ldr r2, =sub_8129D64 @@ -6137,7 +6137,7 @@ sub_8129BF8: @ 8129BF8 ldr r1, =SpriteCallbackDummy str r1, [r0] ldr r5, =gStringVar4 - ldr r1, =gUnknown_085EAA62 + ldr r1, =gText_StopPuttingAwayDecorations adds r0, r5, 0 bl StringExpandPlaceholders ldr r2, =sub_812A1F0 @@ -6162,7 +6162,7 @@ sub_8129C74: @ 8129C74 cmp r0, 0 beq _08129CA8 ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EAAA3 + ldr r1, =gText_ReturnDecorationToPC adds r0, r4, 0 bl StringExpandPlaceholders ldr r2, =sub_812A1A0 @@ -6182,13 +6182,13 @@ _08129CA8: lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 - bl sub_8089288 + bl MetatileBehavior_IsSecretBasePC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08129CDE adds r0, r4, 0 - bl sub_8089404 + bl MetatileBehavior_IsMB_C5 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -6216,7 +6216,7 @@ _08129CDE: ldr r1, =SpriteCallbackDummy str r1, [r0] ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EAA62 + ldr r1, =gText_StopPuttingAwayDecorations adds r0, r4, 0 bl StringExpandPlaceholders ldr r2, =sub_812A1F0 @@ -6228,7 +6228,7 @@ _08129D14: .pool _08129D3C: ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EAA81 + ldr r1, =gText_NoDecorationHere adds r0, r4, 0 bl StringExpandPlaceholders ldr r2, =sub_8129D64 @@ -6907,7 +6907,7 @@ _0812A280: .pool _0812A29C: bl sub_812A3C8 - ldr r0, =gUnknown_03005DAC + ldr r0, =gFieldCallback ldr r1, =sub_812A334 str r1, [r0] ldr r0, =c2_exit_to_overworld_2_switch @@ -7083,11 +7083,11 @@ sub_812A3D4: @ 812A3D4 adds r1, r2 ldrb r1, [r1] lsls r1, 5 - ldr r2, =gUnknown_085A5C09 + ldr r2, =gDecorations + 1 adds r1, r2 bl StringCopy ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EAA14 + ldr r1, =gText_DecorationWillBeDiscarded adds r0, r4, 0 bl StringExpandPlaceholders ldr r2, =sub_812A458 @@ -7098,7 +7098,7 @@ sub_812A3D4: @ 812A3D4 .pool _0812A430: ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EA9E0 + ldr r1, =gText_CantThrowAwayInUse adds r0, r4, 0 bl StringExpandPlaceholders ldr r2, =sub_8127A5C @@ -7151,7 +7151,7 @@ sub_812A478: @ 812A478 adds r0, r4, 0 bl sub_8127814 ldr r5, =gStringVar4 - ldr r1, =gUnknown_085EAA3D + ldr r1, =gText_DecorationThrownAway adds r0, r5, 0 bl StringExpandPlaceholders ldr r2, =sub_8127A5C diff --git a/asm/diploma.s b/asm/diploma.s index 6d303d860..4f21fe39d 100644 --- a/asm/diploma.s +++ b/asm/diploma.s @@ -262,7 +262,7 @@ pokedex_diploma_something: @ 8177AD4 movs r0, 0x14 bl SetGpuReg ldr r0, =gStringVar1 - ldr r1, =gUnknown_085EE855 + ldr r1, =gText_DexNational bl StringCopy b _08177B0C .pool @@ -271,11 +271,11 @@ _08177AFC: movs r1, 0 bl SetGpuReg ldr r0, =gStringVar1 - ldr r1, =gUnknown_085EE84F + ldr r1, =gText_DexHoenn bl StringCopy _08177B0C: ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EE85E + ldr r1, =gText_PokedexDiploma adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 diff --git a/asm/easy_chat.s b/asm/easy_chat.s index 565d9fcc6..20bf327ac 100644 --- a/asm/easy_chat.s +++ b/asm/easy_chat.s @@ -3296,7 +3296,7 @@ sub_811BB40: @ 811BB40 ldrb r0, [r0] cmp r0, 0x4 bne _0811BB5C - ldr r0, =gUnknown_085EC3B4 + ldr r0, =gText_StopGivingPkmnMail b _0811BB7A .pool _0811BB5C: @@ -3306,13 +3306,13 @@ _0811BB5C: bgt _0811BB78 cmp r0, 0xF blt _0811BB78 - ldr r0, =gUnknown_085EC706 + ldr r0, =gText_LikeToQuitQuiz str r0, [r2] - ldr r0, =gUnknown_085EC727 + ldr r0, =gText_ChallengeQuestionMark b _0811BB7E .pool _0811BB78: - ldr r0, =gUnknown_085EC3A6 + ldr r0, =gText_QuitEditing _0811BB7A: str r0, [r2] movs r0, 0 @@ -3325,9 +3325,9 @@ _0811BB7E: thumb_func_start sub_811BB88 sub_811BB88: @ 811BB88 - ldr r2, =gUnknown_085EC410 + ldr r2, =gText_AllTextBeingEditedWill str r2, [r0] - ldr r0, =gUnknown_085EC42F + ldr r0, =gText_BeDeletedThatOkay str r0, [r1] bx lr .pool @@ -3711,11 +3711,11 @@ sub_811BDF0: @ 811BDF0 b _0811BE3C .pool _0811BE34: - ldr r1, =gUnknown_085EC6B2 + ldr r1, =gText_Lady movs r0, 0 bl sub_81AFC0C _0811BE3C: - ldr r1, =gUnknown_085EC6A8 + ldr r1, =gText_F700sQuiz adds r0, r6, 0 bl sub_81AFC28 add sp, 0x20 @@ -6054,35 +6054,35 @@ _0811D16A: bl sub_811BB88 b _0811D1BC _0811D174: - ldr r0, =gUnknown_085EC743 + ldr r0, =gText_CreateAQuiz str r0, [sp, 0xC] b _0811D1BC .pool _0811D180: - ldr r0, =gUnknown_085EC752 + ldr r0, =gText_SelectTheAnswer str r0, [sp, 0xC] b _0811D1BC .pool _0811D18C: - ldr r0, =gUnknown_085EC4C9 + ldr r0, =gText_OnlyOnePhrase str r0, [sp, 0xC] - ldr r0, =gUnknown_085EC4E9 + ldr r0, =gText_OriginalSongWillBeUsed b _0811D1BA .pool _0811D19C: - ldr r0, =gUnknown_085EC765 + ldr r0, =gText_LyricsCantBeDeleted str r0, [sp, 0xC] b _0811D1BC .pool _0811D1A8: - ldr r0, =gUnknown_085EC520 + ldr r0, =gText_CombineTwoWordsOrPhrases str r0, [sp, 0xC] b _0811D1BC .pool _0811D1B4: - ldr r0, =gUnknown_085EC672 + ldr r0, =gText_YouCannotQuitHere str r0, [sp, 0xC] - ldr r0, =gUnknown_085EC688 + ldr r0, =gText_SectionMustBeCompleted _0811D1BA: str r0, [sp, 0x10] _0811D1BC: @@ -9442,7 +9442,7 @@ CopyEasyChatWord: @ 811EBBC lsls r0, 24 cmp r0, 0 beq _0811EBD8 - ldr r1, =gUnknown_085EEA42 + ldr r1, =gText_ThreeQuestionMarks b _0811EBEA .pool _0811EBD8: @@ -9693,7 +9693,7 @@ _0811ED94: b _0811EDB2 .pool _0811EDB0: - ldr r0, =gUnknown_085EEA42 + ldr r0, =gText_ThreeQuestionMarks _0811EDB2: bl StringLength lsls r0, 16 diff --git a/asm/egg_hatch.s b/asm/egg_hatch.s deleted file mode 100644 index d646dbb73..000000000 --- a/asm/egg_hatch.s +++ /dev/null @@ -1,1801 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_8071348 -sub_8071348: @ 8071348 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x50 - adds r5, r0, 0 - adds r6, r1, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x3C] - movs r4, 0 - add r7, sp, 0x18 - add r0, sp, 0x30 - mov r8, r0 - movs r1, 0x31 - add r1, sp - mov r10, r1 - mov r0, sp - adds r0, 0x32 - str r0, [sp, 0x40] - mov r1, sp - adds r1, 0x34 - str r1, [sp, 0x48] - adds r0, 0x1 - str r0, [sp, 0x44] - adds r1, 0x4 - str r1, [sp, 0x4C] -_08071386: - adds r1, r4, 0 - adds r1, 0xD - adds r0, r5, 0 - bl GetMonData - lsls r1, r4, 1 - add r1, sp - adds r1, 0x10 - strh r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _08071386 - adds r0, r5, 0 - movs r1, 0 - bl GetMonData - mov r9, r0 - movs r4, 0 -_080713AE: - adds r1, r4, 0 - adds r1, 0x27 - adds r0, r5, 0 - bl GetMonData - lsls r1, r4, 2 - adds r1, r7, r1 - str r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _080713AE - adds r0, r5, 0 - movs r1, 0x3 - bl GetMonData - mov r1, r8 - strb r0, [r1] - adds r0, r5, 0 - movs r1, 0x25 - bl GetMonData - mov r1, r10 - strb r0, [r1] - adds r0, r5, 0 - movs r1, 0x8 - bl GetMonData - ldr r1, [sp, 0x40] - strb r0, [r1] - adds r0, r5, 0 - movs r1, 0x22 - bl GetMonData - str r0, [sp, 0x38] - adds r0, r5, 0 - movs r1, 0x50 - bl GetMonData - ldr r1, [sp, 0x48] - strb r0, [r1] - movs r0, 0x1 - str r0, [sp] - mov r0, r9 - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - str r0, [sp, 0xC] - adds r0, r6, 0 - ldr r1, [sp, 0x3C] - movs r2, 0x5 - movs r3, 0x20 - bl CreateMon - movs r4, 0 -_0807141E: - adds r1, r4, 0 - adds r1, 0xD - lsls r0, r4, 1 - mov r2, sp - adds r2, r0 - adds r2, 0x10 - adds r0, r6, 0 - bl SetMonData - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _0807141E - movs r4, 0 -_0807143C: - adds r1, r4, 0 - adds r1, 0x27 - lsls r2, r4, 2 - adds r2, r7, r2 - adds r0, r6, 0 - bl SetMonData - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _0807143C - movs r0, 0x2 - mov r1, r8 - strb r0, [r1] - adds r0, r6, 0 - movs r1, 0x3 - mov r2, r8 - bl SetMonData - adds r0, r6, 0 - movs r1, 0x25 - mov r2, r10 - bl SetMonData - adds r0, r6, 0 - movs r1, 0x8 - ldr r2, [sp, 0x40] - bl SetMonData - movs r0, 0x78 - ldr r1, [sp, 0x44] - strb r0, [r1] - adds r0, r6, 0 - movs r1, 0x20 - ldr r2, [sp, 0x44] - bl SetMonData - adds r0, r6, 0 - movs r1, 0x22 - ldr r2, [sp, 0x4C] - bl SetMonData - adds r0, r6, 0 - movs r1, 0x50 - ldr r2, [sp, 0x48] - bl SetMonData - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0x64 - bl memcpy - add sp, 0x50 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8071348 - - thumb_func_start sub_80714B8 -sub_80714B8: @ 80714B8 - push {r4,r5,lr} - sub sp, 0x14 - lsls r0, 24 - lsrs r0, 24 - add r4, sp, 0xC - movs r1, 0x46 - strb r1, [r4] - movs r1, 0x64 - adds r5, r0, 0 - muls r5, r1 - ldr r0, =gPlayerParty - adds r5, r0 - ldr r1, =gEnemyParty - adds r0, r5, 0 - bl sub_8071348 - adds r0, r5, 0 - movs r1, 0x2D - adds r2, r4, 0 - bl SetMonData - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - mov r0, sp - adds r1, r4, 0 - bl GetSpeciesName - adds r0, r5, 0 - movs r1, 0x2 - mov r2, sp - bl SetMonData - adds r0, r4, 0 - bl SpeciesToNationalPokedexNum - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r4, 0 - movs r1, 0x2 - bl GetSetPokedexFlag - adds r0, r4, 0 - movs r1, 0x3 - bl GetSetPokedexFlag - ldr r1, =gStringVar1 - adds r0, r5, 0 - bl pokemon_get_nick - mov r2, sp - adds r2, 0xE - movs r0, 0x4 - strh r0, [r2] - adds r0, r5, 0 - movs r1, 0x26 - bl SetMonData - add r2, sp, 0x10 - movs r0, 0 - strh r0, [r2] - adds r0, r5, 0 - movs r1, 0x24 - bl SetMonData - bl sav1_map_get_name - mov r2, sp - adds r2, 0x12 - strb r0, [r2] - adds r0, r5, 0 - movs r1, 0x23 - bl SetMonData - adds r0, r5, 0 - bl MonRestorePP - adds r0, r5, 0 - bl CalculateMonStats - add sp, 0x14 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80714B8 - - thumb_func_start sub_8071578 -sub_8071578: @ 8071578 - push {lr} - ldr r0, =gSpecialVar_0x8004 - ldrb r0, [r0] - bl sub_80714B8 - pop {r0} - bx r0 - .pool - thumb_func_end sub_8071578 - - thumb_func_start sub_807158C -sub_807158C: @ 807158C - push {r4-r6,lr} - sub sp, 0x20 - lsls r1, 24 - lsrs r1, 24 - movs r2, 0x8C - muls r1, r2 - adds r4, r0, r1 - adds r0, r4, 0 - mov r1, sp - bl pokemon_get_nick_ - adds r0, r4, 0 - adds r0, 0x70 - ldrh r0, [r0] - cmp r0, 0 - beq _08071608 - adds r6, r4, 0 - adds r6, 0x7C - mov r0, sp - adds r1, r6, 0 - bl StringCompareWithoutExtCtrlCodes - adds r5, r4, 0 - adds r5, 0x74 - cmp r0, 0 - bne _080715CE - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r1, r5, 0 - bl StringCompareWithoutExtCtrlCodes - cmp r0, 0 - beq _08071608 -_080715CE: - ldr r0, =gStringVar1 - mov r1, sp - bl StringCopy - ldr r0, =gStringVar2 - adds r4, 0x87 - ldrb r2, [r4] - lsls r2, 28 - lsrs r2, 28 - adds r1, r5, 0 - bl sub_81DB5E8 - ldr r0, =gStringVar3 - ldrb r2, [r4] - lsrs r2, 4 - adds r1, r6, 0 - bl sub_81DB5E8 - movs r0, 0x1 - b _0807160A - .pool -_08071608: - movs r0, 0 -_0807160A: - add sp, 0x20 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_807158C - - thumb_func_start sub_8071614 -sub_8071614: @ 8071614 - push {lr} - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003030 - adds r0, r1 - ldr r1, =gSpecialVar_0x8004 - ldrb r1, [r1] - bl sub_807158C - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end sub_8071614 - - thumb_func_start sub_807163C -sub_807163C: @ 807163C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - mov r9, r3 - lsls r0, 24 - lsrs r3, r0, 24 - mov r8, r3 - lsls r1, 24 - lsrs r6, r1, 24 - lsls r2, 24 - lsrs r1, r2, 24 - adds r2, r1, 0 - movs r4, 0 - movs r7, 0 - movs r5, 0 - cmp r3, 0 - bne _0807166A - movs r0, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - adds r5, r1, r0 - movs r4, 0x1 -_0807166A: - cmp r3, 0x1 - bne _0807167A - movs r0, 0x64 - adds r1, r2, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r5, r1, r0 - movs r4, 0x3 -_0807167A: - cmp r6, 0 - beq _08071688 - cmp r6, 0x1 - beq _080716D8 - b _08071712 - .pool -_08071688: - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - movs r1, 0 - bl GetMonData - adds r3, r0, 0 - lsls r0, r4, 3 - ldr r1, =gMonFrontPicTable - adds r0, r1 - ldr r1, =gBattleSpritesGfx - ldr r2, [r1] - mov r6, r8 - lsls r1, r6, 1 - adds r1, 0x1 - lsls r1, 2 - adds r2, 0x4 - adds r2, r1 - ldr r1, [r2] - adds r2, r4, 0 - bl HandleLoadSpecialPokePic_DontHandleDeoxys - adds r0, r5, 0 - bl sub_806E794 - bl LoadCompressedObjectPalette - mov r0, r9 - strh r4, [r0] - b _08071712 - .pool -_080716D8: - adds r0, r5, 0 - bl sub_806E794 - ldrh r0, [r0, 0x4] - adds r1, r4, 0 - bl sub_806A068 - ldr r0, =gUnknown_0202499C - movs r1, 0x78 - movs r2, 0x4B - movs r3, 0x6 - bl CreateSprite - lsls r0, 24 - lsrs r7, r0, 24 - ldr r4, =gSprites - lsls r1, r7, 4 - adds r1, r7 - lsls r1, 2 - adds r2, r1, r4 - adds r2, 0x3E - ldrb r0, [r2] - movs r3, 0x4 - orrs r0, r3 - strb r0, [r2] - adds r4, 0x1C - adds r1, r4 - ldr r0, =SpriteCallbackDummy - str r0, [r1] -_08071712: - adds r0, r7, 0 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_807163C - - thumb_func_start sub_807172C -sub_807172C: @ 807172C - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_807172C - - thumb_func_start sub_8071740 -sub_8071740: @ 8071740 - push {lr} - bl ScriptContext2_Enable - ldr r0, =sub_8071760 - movs r1, 0xA - bl CreateTask - movs r0, 0x1 - movs r1, 0 - bl fade_screen - pop {r0} - bx r0 - .pool - thumb_func_end sub_8071740 - - thumb_func_start sub_8071760 -sub_8071760: @ 8071760 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08071788 - bl overworld_free_bg_tilemaps - ldr r0, =c1_hatching_egg - bl SetMainCallback2 - ldr r1, =gUnknown_03005DAC - ldr r0, =sub_80AF168 - str r0, [r1] - adds r0, r4, 0 - bl DestroyTask -_08071788: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8071760 - - thumb_func_start c1_hatching_egg -c1_hatching_egg: @ 80717A0 - push {r4,lr} - sub sp, 0x4 - ldr r0, =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x8 - bls _080717B4 - b _080719D6 -_080717B4: - lsls r0, 2 - ldr r1, =_080717C8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080717C8: - .4byte _080717EC - .4byte _080718B8 - .4byte _080718D0 - .4byte _08071904 - .4byte _08071924 - .4byte _0807193C - .4byte _08071954 - .4byte _08071970 - .4byte _080719C8 -_080717EC: - movs r0, 0 - movs r1, 0 - bl SetGpuReg - ldr r4, =gUnknown_03000DE0 - movs r0, 0x14 - bl Alloc - str r0, [r4] - bl init_uns_table_pokemon_copy - ldr r2, [r4] - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - movs r1, 0 - strb r0, [r2, 0x4] - ldr r0, [r4] - strb r1, [r0, 0x7] - ldr r0, =sub_807172C - bl SetVBlankCallback - bl GetCurrentMapMusic - ldr r1, =gSpecialVar_0x8005 - strh r0, [r1] - bl reset_temp_tile_data_buffers - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_0832C064 - movs r0, 0 - movs r2, 0x2 - bl InitBgsFromTemplates - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x1 - movs r1, 0x7 - movs r2, 0x2 - bl SetBgAttribute - movs r0, 0x80 - lsls r0, 5 - bl Alloc - adds r1, r0, 0 - movs r0, 0x1 - bl SetBgTilemapBuffer - movs r0, 0x80 - lsls r0, 6 - bl Alloc - adds r1, r0, 0 - movs r0, 0 - bl SetBgTilemapBuffer - bl DeactivateAllTextPrinters - bl ResetPaletteFade - bl FreeAllSpritePalettes - bl ResetSpriteData - bl ResetTasks - bl remove_some_task - bl m4aSoundVSyncOn - b _080719A6 - .pool -_080718B8: - ldr r0, =gUnknown_0832C06C - bl InitWindows - ldr r0, =gUnknown_03000DE0 - ldr r1, [r0] - movs r0, 0 - strb r0, [r1, 0x8] - b _080719A6 - .pool -_080718D0: - ldr r1, =gUnknown_08C00000 - movs r0, 0 - str r0, [sp] - movs r2, 0 - movs r3, 0 - bl copy_decompressed_tile_data_to_vram_autofree - ldr r1, =gUnknown_08C00524 - movs r0, 0 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - ldr r0, =gUnknown_08C004E0 - movs r1, 0 - movs r2, 0x20 - bl LoadCompressedPalette - b _080719A6 - .pool -_08071904: - ldr r0, =gUnknown_0832BFE4 - bl LoadSpriteSheet - ldr r0, =gUnknown_0832BFEC - bl LoadSpriteSheet - ldr r0, =gUnknown_0832BFF4 - bl LoadSpritePalette - b _080719A6 - .pool -_08071924: - movs r0, 0 - bl CopyBgTilemapBufferToVram - ldr r0, =gUnknown_03000DE0 - ldr r0, [r0] - ldrb r0, [r0, 0x4] - bl sub_80714B8 - b _080719A6 - .pool -_0807193C: - ldr r0, =gUnknown_03000DE0 - ldr r3, [r0] - ldrb r2, [r3, 0x4] - adds r3, 0xC - movs r0, 0 - movs r1, 0 - bl sub_807163C - b _080719A6 - .pool -_08071954: - ldr r4, =gUnknown_03000DE0 - ldr r3, [r4] - ldrb r2, [r3, 0x4] - adds r3, 0xC - movs r0, 0 - movs r1, 0x1 - bl sub_807163C - ldr r1, [r4] - strb r0, [r1, 0x1] - b _080719A6 - .pool -_08071970: - movs r1, 0x82 - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - ldr r0, =gUnknown_08DD7300 - movs r1, 0x10 - movs r2, 0xA0 - bl LoadPalette - ldr r1, =gUnknown_08DD7360 - movs r2, 0xA1 - lsls r2, 5 - movs r0, 0x1 - movs r3, 0 - bl LoadBgTiles - ldr r1, =gUnknown_08331F60 - movs r2, 0x80 - lsls r2, 5 - movs r0, 0x1 - movs r3, 0 - bl CopyToBgTilemapBuffer - movs r0, 0x1 - bl CopyBgTilemapBufferToVram -_080719A6: - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _080719D6 - .pool -_080719C8: - ldr r0, =sub_8071A94 - bl SetMainCallback2 - ldr r0, =gUnknown_03000DE0 - ldr r1, [r0] - movs r0, 0 - strb r0, [r1, 0x2] -_080719D6: - bl RunTasks - bl RunTextPrinters - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end c1_hatching_egg - - thumb_func_start sub_80719FC -sub_80719FC: @ 80719FC - push {lr} - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r2, =gStringVar3 - movs r1, 0x2 - bl SetMonData - bl sub_805F094 - ldr r0, =gUnknown_03000DE0 - ldr r0, [r0] - bl Free - ldr r0, =c2_exit_to_overworld_2_switch - bl SetMainCallback2 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80719FC - - thumb_func_start c3_080472E4 -c3_080472E4: @ 8071A3C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08071A5C - bl StopMapMusic - bl play_some_sound -_08071A5C: - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _08071A6C - movs r0, 0xBC - lsls r0, 1 - bl PlayBGM -_08071A6C: - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x3C - ble _08071A80 - ldr r0, =0x00000179 - bl PlayBGM - adds r0, r5, 0 - bl DestroyTask -_08071A80: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end c3_080472E4 - - thumb_func_start sub_8071A94 -sub_8071A94: @ 8071A94 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - ldr r1, =gUnknown_03000DE0 - ldr r0, [r1] - ldrb r0, [r0, 0x2] - adds r5, r1, 0 - cmp r0, 0xC - bls _08071AAC - b _08071E06 -_08071AAC: - lsls r0, 2 - ldr r1, =_08071AC0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08071AC0: - .4byte _08071AF4 - .4byte _08071B40 - .4byte _08071B68 - .4byte _08071BA0 - .4byte _08071BF8 - .4byte _08071C24 - .4byte _08071C88 - .4byte _08071C96 - .4byte _08071CA4 - .4byte _08071CE8 - .4byte _08071D1C - .4byte _08071DB4 - .4byte _08071DD4 -_08071AF4: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, =gUnknown_0832BFFC - movs r1, 0x78 - movs r2, 0x4B - movs r3, 0x5 - bl CreateSprite - ldr r4, =gUnknown_03000DE0 - ldr r1, [r4] - strb r0, [r1] - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - ldr r1, [r4] - ldrb r0, [r1, 0x2] - adds r0, 0x1 - strb r0, [r1, 0x2] - ldr r0, =c3_080472E4 - movs r1, 0x5 - bl CreateTask - b _08071E06 - .pool -_08071B40: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _08071B52 - b _08071E06 -_08071B52: - ldr r0, [r5] - ldrb r0, [r0, 0x8] - movs r1, 0 - bl FillWindowPixelBuffer - ldr r0, [r5] - strb r4, [r0, 0x3] - ldr r1, [r5] - b _08071DC8 - .pool -_08071B68: - ldr r1, [r5] - ldrb r0, [r1, 0x3] - adds r0, 0x1 - strb r0, [r1, 0x3] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1E - bhi _08071B7A - b _08071E06 -_08071B7A: - ldr r1, [r5] - ldrb r0, [r1, 0x2] - adds r0, 0x1 - strb r0, [r1, 0x2] - ldr r2, =gSprites - ldr r0, [r5] - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, =sub_8071E34 - str r1, [r0] - b _08071E06 - .pool -_08071BA0: - ldr r4, =gSprites - ldr r2, [r5] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r4, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, [r0] - ldr r0, =SpriteCallbackDummy - cmp r1, r0 - beq _08071BBC - b _08071E06 -_08071BBC: - ldrb r1, [r2, 0x4] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r7, r0, 16 - ldr r0, [r5] - ldrb r1, [r0, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r1, r7, 0 - movs r2, 0 - movs r3, 0x1 - bl DoMonFrontSpriteAnimation - ldr r1, [r5] - b _08071DC8 - .pool -_08071BF8: - ldr r2, =gSprites - ldr r3, [r5] - ldrb r1, [r3, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, =SpriteCallbackDummy - cmp r1, r0 - beq _08071C12 - b _08071E06 -_08071C12: - ldrb r0, [r3, 0x2] - adds r0, 0x1 - strb r0, [r3, 0x2] - b _08071E06 - .pool -_08071C24: - ldr r0, [r5] - ldrb r1, [r0, 0x4] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gStringVar1 - bl pokemon_get_nick - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085ED5A5 - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r0, [r5] - ldrb r0, [r0, 0x8] - movs r1, 0xFF - str r1, [sp] - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x3 - bl sub_8072214 - ldr r0, =0x00000173 - bl PlayFanfare - ldr r1, [r5] - ldrb r0, [r1, 0x2] - adds r0, 0x1 - strb r0, [r1, 0x2] - ldr r0, [r5] - ldrb r0, [r0, 0x8] - bl PutWindowTilemap - ldr r0, [r5] - ldrb r0, [r0, 0x8] - movs r1, 0x3 - bl CopyWindowToVram - b _08071E06 - .pool -_08071C88: - bl IsFanfareTaskInactive - lsls r0, 24 - cmp r0, 0 - bne _08071C94 - b _08071E06 -_08071C94: - b _08071DC4 -_08071C96: - bl IsFanfareTaskInactive - lsls r0, 24 - cmp r0, 0 - bne _08071CA2 - b _08071E06 -_08071CA2: - b _08071DC4 -_08071CA4: - ldr r0, [r5] - ldrb r1, [r0, 0x4] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gStringVar1 - bl pokemon_get_nick - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085ED5BE - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r0, [r5] - ldrb r0, [r0, 0x8] - movs r1, 0x1 - str r1, [sp] - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x2 - bl sub_8072214 - ldr r1, [r5] - b _08071DC8 - .pool -_08071CE8: - ldr r0, [r5] - ldrb r0, [r0, 0x8] - bl IsTextPrinterActive - lsls r0, 16 - cmp r0, 0 - beq _08071CF8 - b _08071E06 -_08071CF8: - ldr r0, [r5] - ldrb r0, [r0, 0x8] - movs r4, 0xA0 - lsls r4, 1 - adds r1, r4, 0 - movs r2, 0xE0 - bl sub_809882C - ldr r0, =gUnknown_0832C07C - adds r1, r4, 0 - movs r2, 0xE - movs r3, 0 - bl CreateYesNoMenu - ldr r1, [r5] - b _08071DC8 - .pool -_08071D1C: - bl sub_8198C58 - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _08071D3C - cmp r1, 0 - bgt _08071D36 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08071DC4 - b _08071E06 -_08071D36: - cmp r1, 0x1 - beq _08071DC4 - b _08071E06 -_08071D3C: - ldr r0, =gUnknown_03000DE0 - mov r8, r0 - ldr r0, [r0] - ldrb r0, [r0, 0x4] - movs r6, 0x64 - muls r0, r6 - ldr r5, =gPlayerParty - adds r0, r5 - ldr r1, =gStringVar3 - mov r9, r1 - bl pokemon_get_nick - mov r1, r8 - ldr r0, [r1] - ldrb r0, [r0, 0x4] - muls r0, r6 - adds r0, r5 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r7, r0, 16 - mov r1, r8 - ldr r0, [r1] - ldrb r0, [r0, 0x4] - muls r0, r6 - adds r0, r5 - bl GetMonGender - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - mov r1, r8 - ldr r0, [r1] - ldrb r0, [r0, 0x4] - muls r0, r6 - adds r0, r5 - movs r1, 0 - movs r2, 0 - bl GetMonData - str r0, [sp] - ldr r0, =sub_80719FC - str r0, [sp, 0x4] - movs r0, 0x3 - mov r1, r9 - adds r2, r7, 0 - adds r3, r4, 0 - bl do_choose_name_or_words_screen - b _08071E06 - .pool -_08071DB4: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade -_08071DC4: - ldr r0, =gUnknown_03000DE0 - ldr r1, [r0] -_08071DC8: - ldrb r0, [r1, 0x2] - adds r0, 0x1 - strb r0, [r1, 0x2] - b _08071E06 - .pool -_08071DD4: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08071E06 - bl sub_805F094 - ldr r4, =gUnknown_03000DE0 - ldr r0, [r4] - ldrb r0, [r0, 0x8] - bl RemoveWindow - movs r0, 0 - bl UnsetBgTilemapBuffer - movs r0, 0x1 - bl UnsetBgTilemapBuffer - ldr r0, [r4] - bl Free - ldr r0, =c2_exit_to_overworld_2_switch - bl SetMainCallback2 -_08071E06: - bl RunTasks - bl RunTextPrinters - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8071A94 - - thumb_func_start sub_8071E34 -sub_8071E34: @ 8071E34 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _08071E54 - ldr r0, =sub_8071E8C - str r0, [r4, 0x1C] - movs r0, 0 - strh r0, [r4, 0x2E] - b _08071E84 - .pool -_08071E54: - ldrh r0, [r4, 0x30] - adds r0, 0x14 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x1 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0xF - bne _08071E84 - movs r0, 0x17 - bl PlaySE - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - bl sub_8072140 -_08071E84: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8071E34 - - thumb_func_start sub_8071E8C -sub_8071E8C: @ 8071E8C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x32] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1E - ble _08071EE8 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _08071EBC - ldr r0, =sub_8071EF0 - str r0, [r4, 0x1C] - strh r1, [r4, 0x2E] - strh r1, [r4, 0x32] - b _08071EE8 - .pool -_08071EBC: - ldrh r0, [r4, 0x30] - adds r0, 0x14 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x2 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0xF - bne _08071EE8 - movs r0, 0x17 - bl PlaySE - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAnim -_08071EE8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8071E8C - - thumb_func_start sub_8071EF0 -sub_8071EF0: @ 8071EF0 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x32] - adds r0, 0x1 - movs r5, 0 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1E - ble _08071F9E - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x26 - ble _08071F5C - ldr r0, =sub_8071FA4 - str r0, [r4, 0x1C] - strh r5, [r4, 0x2E] - ldr r4, =gUnknown_03000DE0 - ldr r0, [r4] - ldrb r1, [r0, 0x4] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - ldr r3, =gSprites - ldr r2, [r4] - ldrb r1, [r2, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r5, [r0, 0x24] - ldrb r1, [r2, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r5, [r0, 0x26] - b _08071F9E - .pool -_08071F5C: - ldrh r0, [r4, 0x30] - adds r0, 0x14 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x2 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0xF - bne _08071F90 - movs r0, 0x17 - bl PlaySE - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAnim - bl sub_8072140 - bl sub_8072140 -_08071F90: - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1E - bne _08071F9E - movs r0, 0x17 - bl PlaySE -_08071F9E: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8071EF0 - - thumb_func_start sub_8071FA4 -sub_8071FA4: @ 8071FA4 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x32 - ble _08071FBE - ldr r0, =sub_8071FC8 - str r0, [r1, 0x1C] - movs r0, 0 - strh r0, [r1, 0x2E] -_08071FBE: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8071FA4 - - thumb_func_start sub_8071FC8 -sub_8071FC8: @ 8071FC8 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _08071FE8 - movs r1, 0x1 - negs r1, r1 - ldr r0, =0x0000ffff - str r0, [sp] - adds r0, r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade -_08071FE8: - ldrh r0, [r5, 0x2E] - cmp r0, 0x3 - bhi _08072004 - movs r4, 0 -_08071FF0: - bl sub_8072140 - lsls r0, r4, 16 - movs r1, 0x80 - lsls r1, 9 - adds r0, r1 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _08071FF0 -_08072004: - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _08072032 - movs r0, 0x71 - bl PlaySE - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, =sub_8072048 - str r0, [r5, 0x1C] - strh r4, [r5, 0x2E] -_08072032: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8071FC8 - - thumb_func_start sub_8072048 -sub_8072048: @ 8072048 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _08072084 - ldr r4, =gSprites - ldr r3, =gUnknown_03000DE0 - ldr r0, [r3] - ldrb r1, [r0, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - ldr r0, [r3] - ldrb r1, [r0, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x1 - bl StartSpriteAffineAnim -_08072084: - movs r2, 0x2E - ldrsh r0, [r5, r2] - cmp r0, 0x8 - bne _0807209E - movs r1, 0x1 - negs r1, r1 - ldr r0, =0x0000ffff - str r0, [sp] - adds r0, r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade -_0807209E: - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0x9 - bgt _080720BC - ldr r2, =gSprites - ldr r0, =gUnknown_03000DE0 - ldr r0, [r0] - ldrb r1, [r0, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - subs r1, 0x1 - strh r1, [r0, 0x22] -_080720BC: - ldrh r1, [r5, 0x2E] - movs r2, 0x2E - ldrsh r0, [r5, r2] - cmp r0, 0x28 - ble _080720CA - ldr r0, =SpriteCallbackDummy - str r0, [r5, 0x1C] -_080720CA: - adds r0, r1, 0x1 - strh r0, [r5, 0x2E] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8072048 - - thumb_func_start sub_80720E8 -sub_80720E8: @ 80720E8 - push {r4,lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x30] - ldrh r1, [r2, 0x36] - adds r0, r1 - strh r0, [r2, 0x36] - ldrh r1, [r2, 0x32] - ldrh r3, [r2, 0x38] - adds r0, r1, r3 - strh r0, [r2, 0x38] - movs r4, 0x36 - ldrsh r0, [r2, r4] - cmp r0, 0 - bge _08072106 - adds r0, 0xFF -_08072106: - asrs r0, 8 - strh r0, [r2, 0x24] - movs r3, 0x38 - ldrsh r0, [r2, r3] - cmp r0, 0 - bge _08072114 - adds r0, 0xFF -_08072114: - asrs r0, 8 - strh r0, [r2, 0x26] - ldrh r0, [r2, 0x34] - adds r3, r1, r0 - strh r3, [r2, 0x32] - movs r4, 0x22 - ldrsh r1, [r2, r4] - movs r4, 0x26 - ldrsh r0, [r2, r4] - adds r0, r1, r0 - adds r1, 0x14 - cmp r0, r1 - ble _0807213A - lsls r0, r3, 16 - cmp r0, 0 - ble _0807213A - adds r0, r2, 0 - bl DestroySprite -_0807213A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80720E8 - - thumb_func_start sub_8072140 -sub_8072140: @ 8072140 - push {r4-r6,lr} - sub sp, 0x8 - ldr r2, =gUnknown_0832C084 - ldr r0, =gUnknown_03000DE0 - ldr r6, [r0] - ldrb r3, [r6, 0x7] - lsls r0, r3, 2 - adds r1, r0, r2 - ldrh r5, [r1] - adds r2, 0x2 - adds r0, r2 - ldrh r4, [r0] - adds r3, 0x1 - strb r3, [r6, 0x7] - bl Random - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r0 - lsls r5, 16 - asrs r5, 16 - lsls r4, 16 - asrs r4, 16 - movs r0, 0x64 - str r0, [sp] - lsrs r1, 16 - str r1, [sp, 0x4] - movs r0, 0x78 - movs r1, 0x3C - adds r2, r5, 0 - adds r3, r4, 0 - bl sub_8072194 - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8072140 - - thumb_func_start sub_8072194 -sub_8072194: @ 8072194 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - mov r8, r3 - ldr r0, [sp, 0x1C] - mov r9, r0 - ldr r1, [sp, 0x20] - mov r10, r1 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 16 - lsrs r6, 16 - mov r0, r8 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - mov r1, r9 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - mov r0, r10 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r0, =gUnknown_0832C04C - adds r1, r4, 0 - adds r2, r5, 0 - movs r3, 0x4 - bl CreateSprite - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r2, =gSprites - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r6, [r0, 0x30] - mov r1, r8 - strh r1, [r0, 0x32] - mov r1, r9 - strh r1, [r0, 0x34] - mov r1, r10 - bl StartSpriteAnim - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8072194 - - thumb_func_start sub_8072214 -sub_8072214: @ 8072214 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x14 - adds r5, r0, 0 - mov r9, r1 - adds r6, r2, 0 - mov r8, r3 - ldr r4, [sp, 0x2C] - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0xFF - bl FillWindowPixelBuffer - ldr r3, =gUnknown_03000DE0 - ldr r0, [r3] - movs r2, 0 - strb r2, [r0, 0xE] - ldr r1, [r3] - movs r0, 0x5 - strb r0, [r1, 0xF] - ldr r1, [r3] - movs r0, 0x6 - strb r0, [r1, 0x10] - str r2, [sp] - str r2, [sp, 0x4] - ldr r0, [r3] - adds r0, 0xE - str r0, [sp, 0x8] - lsls r4, 24 - asrs r4, 24 - str r4, [sp, 0xC] - mov r0, r9 - str r0, [sp, 0x10] - adds r0, r5, 0 - movs r1, 0x1 - adds r2, r6, 0 - mov r3, r8 - bl AddTextPrinterParametrized2 - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8072214 - - thumb_func_start sub_807228C -sub_807228C: @ 807228C - push {r4-r6,lr} - bl CalculatePlayerPartyCount - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 - cmp r5, r6 - bcs _080722D6 -_0807229C: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x6 - bl GetMonData - cmp r0, 0 - bne _080722CC - adds r0, r4, 0 - bl GetMonAbility - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x28 - beq _080722C4 - cmp r0, 0x31 - bne _080722CC -_080722C4: - movs r0, 0x2 - b _080722D8 - .pool -_080722CC: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, r6 - bcc _0807229C -_080722D6: - movs r0, 0x1 -_080722D8: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_807228C - - thumb_func_start sub_80722E0 -sub_80722E0: @ 80722E0 - push {r4,lr} - bl sub_80D22D0 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - movs r0, 0x6 - bl sub_80C7050 - lsls r0, 24 - lsrs r0, 24 - adds r4, r0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80722E0 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/evolution_scene.s b/asm/evolution_scene.s index b8710acd4..5d0268173 100644 --- a/asm/evolution_scene.s +++ b/asm/evolution_scene.s @@ -170,15 +170,15 @@ evolution_cutscene: @ 813DA8C strh r2, [r0] ldr r0, =gUnknown_02022E16 strh r2, [r0] - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X strh r2, [r0] - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y strh r2, [r0] - ldr r0, =gUnknown_02022E1C + ldr r0, =gBattle_BG2_X strh r2, [r0] - ldr r0, =gUnknown_02022E1E + ldr r0, =gBattle_BG2_Y strh r2, [r0] - ldr r1, =gUnknown_02022E20 + ldr r1, =gBattle_BG3_X movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 @@ -186,7 +186,7 @@ evolution_cutscene: @ 813DA8C ldr r0, =gUnknown_02022E22 movs r1, 0 strh r1, [r0] - ldr r1, =gUnknown_02022FF0 + ldr r1, =gBattleTerrain movs r0, 0x9 strb r0, [r1] bl c2_berry_program_update_menu @@ -464,22 +464,22 @@ sub_813DD7C: @ 813DD7C strh r4, [r0] ldr r0, =gUnknown_02022E16 strh r4, [r0] - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X strh r4, [r0] - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y strh r4, [r0] - ldr r0, =gUnknown_02022E1C + ldr r0, =gBattle_BG2_X strh r4, [r0] - ldr r0, =gUnknown_02022E1E + ldr r0, =gBattle_BG2_Y strh r4, [r0] - ldr r1, =gUnknown_02022E20 + ldr r1, =gBattle_BG3_X movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] ldr r0, =gUnknown_02022E22 strh r4, [r0] - ldr r1, =gUnknown_02022FF0 + ldr r1, =gBattleTerrain movs r0, 0x9 strb r0, [r1] bl c2_berry_program_update_menu @@ -634,15 +634,15 @@ _0813DFE0: strh r1, [r0] ldr r0, =gUnknown_02022E16 strh r1, [r0] - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X strh r1, [r0] - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y strh r1, [r0] - ldr r0, =gUnknown_02022E1C + ldr r0, =gBattle_BG2_X strh r1, [r0] - ldr r0, =gUnknown_02022E1E + ldr r0, =gBattle_BG2_Y strh r1, [r0] - ldr r2, =gUnknown_02022E20 + ldr r2, =gBattle_BG3_X movs r3, 0x80 lsls r3, 1 adds r0, r3, 0 @@ -945,15 +945,15 @@ sub_813E1D4: @ 813E1D4 strh r4, [r0] ldr r0, =gUnknown_02022E16 strh r4, [r0] - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X strh r4, [r0] - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y strh r4, [r0] - ldr r0, =gUnknown_02022E1C + ldr r0, =gBattle_BG2_X strh r4, [r0] - ldr r0, =gUnknown_02022E1E + ldr r0, =gBattle_BG2_Y strh r4, [r0] - ldr r1, =gUnknown_02022E20 + ldr r1, =gBattle_BG3_X movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 @@ -1333,12 +1333,12 @@ _0813E6D4: bl _0813F1A4 _0813E6E4: ldr r4, =gStringVar4 - ldr r1, =gUnknown_085CC990 + ldr r1, =gText_PkmnIsEvolving adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0 - bl battle_show_message_maybe + bl sub_814F9EC ldr r0, =gTasks mov r2, r8 adds r1, r2, r7 @@ -1621,12 +1621,12 @@ _0813E990: bl _0813F1A4 _0813E99E: ldr r4, =gStringVar4 - ldr r1, =gUnknown_085CC9A6 + ldr r1, =gText_CongratsPkmnEvolved adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0 - bl battle_show_message_maybe + bl sub_814F9EC ldr r0, =0x00000173 bl PlayBGM ldr r2, =gTasks @@ -1857,18 +1857,18 @@ _0813EBB8: cmp r0, 0 beq _0813EBE4 ldr r0, =gStringVar4 - ldr r1, =gUnknown_085CC9EE + ldr r1, =gText_EllipsisQuestionMark bl StringExpandPlaceholders b _0813EBEC .pool _0813EBE4: ldr r0, =gStringVar4 - ldr r1, =gUnknown_085CC9D3 + ldr r1, =gText_PkmnStoppedEvolving bl StringExpandPlaceholders _0813EBEC: ldr r0, =gStringVar4 movs r1, 0 - bl battle_show_message_maybe + bl sub_814F9EC ldr r1, =gTasks mov r2, r8 adds r0, r2, r7 @@ -1892,15 +1892,15 @@ _0813EC1E: beq _0813EC2A b _0813F1A4 _0813EC2A: - bl sub_804F574 + bl BufferMoveToLearnIntoBattleTextBuff2 ldr r0, =0x0000016f bl PlayFanfare - ldr r0, =gUnknown_085CC270 + ldr r0, =gBattleStringsTable ldr r0, [r0, 0xC] - bl StrCpyDecodeToDisplayedStringBattle + bl BattleStringExpandPlaceholdersToDisplayedString ldr r0, =gDisplayedStringBattle movs r1, 0 - bl battle_show_message_maybe + bl sub_814F9EC ldr r0, =gTasks mov r3, r8 adds r1, r3, r7 @@ -1991,13 +1991,13 @@ _0813ED0A: beq _0813ED16 b _0813F1A4 _0813ED16: - bl sub_804F574 - ldr r0, =gUnknown_085CC270 + bl BufferMoveToLearnIntoBattleTextBuff2 + ldr r0, =gBattleStringsTable ldr r0, [r0, 0x10] - bl StrCpyDecodeToDisplayedStringBattle + bl BattleStringExpandPlaceholdersToDisplayedString ldr r0, =gDisplayedStringBattle movs r1, 0 - bl battle_show_message_maybe + bl sub_814F9EC ldr r0, =gTasks mov r2, r8 adds r1, r2, r7 @@ -2021,12 +2021,12 @@ _0813ED56: beq _0813ED62 b _0813F1A4 _0813ED62: - ldr r0, =gUnknown_085CC270 + ldr r0, =gBattleStringsTable ldr r0, [r0, 0x14] - bl StrCpyDecodeToDisplayedStringBattle + bl BattleStringExpandPlaceholdersToDisplayedString ldr r0, =gDisplayedStringBattle movs r1, 0 - bl battle_show_message_maybe + bl sub_814F9EC ldr r0, =gTasks mov r3, r8 adds r1, r3, r7 @@ -2046,12 +2046,12 @@ _0813ED90: lsls r0, 24 cmp r0, 0 bne _0813EDCE - ldr r0, =gUnknown_085CC270 + ldr r0, =gBattleStringsTable ldr r0, [r0, 0x18] - bl StrCpyDecodeToDisplayedStringBattle + bl BattleStringExpandPlaceholdersToDisplayedString ldr r0, =gDisplayedStringBattle movs r1, 0 - bl battle_show_message_maybe + bl sub_814F9EC ldr r0, =gTasks mov r2, r8 adds r1, r2, r7 @@ -2085,9 +2085,9 @@ _0813EDEA: movs r2, 0x1D movs r3, 0xD bl sub_8056A3C - ldr r0, =gUnknown_085CCABB + ldr r0, =gText_BattleYesNoChoice movs r1, 0xC - bl battle_show_message_maybe + bl sub_814F9EC ldr r0, =gTasks mov r3, r8 adds r1, r3, r7 @@ -2100,7 +2100,7 @@ _0813EDEA: ldr r0, =gBattleCommunication strb r2, [r0, 0x1] movs r0, 0 - bl sub_8056B74 + bl BattleCreateCursorAt b _0813F1A4 .pool _0813EE34: @@ -2117,10 +2117,10 @@ _0813EE34: movs r0, 0x5 bl PlaySE ldrb r0, [r4, 0x1] - bl sub_8056BAC + bl BattleDestroyCursorAt movs r0, 0 strb r0, [r4, 0x1] - bl sub_8056B74 + bl BattleCreateCursorAt _0813EE5C: ldr r0, =gMain ldrh r1, [r0, 0x2E] @@ -2135,10 +2135,10 @@ _0813EE5C: movs r0, 0x5 bl PlaySE ldrb r0, [r4, 0x1] - bl sub_8056BAC + bl BattleDestroyCursorAt movs r0, 0x1 strb r0, [r4, 0x1] - bl sub_8056B74 + bl BattleCreateCursorAt _0813EE84: ldr r0, =gMain ldrh r1, [r0, 0x2E] @@ -2285,14 +2285,14 @@ _0813EFC8: bl IsHMMove2 cmp r0, 0 beq _0813F014 - ldr r0, =gUnknown_085CC270 + ldr r0, =gBattleStringsTable ldr r3, =0x000004cc adds r0, r3 ldr r0, [r0] - bl StrCpyDecodeToDisplayedStringBattle + bl BattleStringExpandPlaceholdersToDisplayedString ldr r0, =gDisplayedStringBattle movs r1, 0 - bl battle_show_message_maybe + bl sub_814F9EC ldr r1, =gTasks mov r2, r8 adds r0, r2, r7 @@ -2333,15 +2333,15 @@ _0813F014: b _0813F1A2 .pool _0813F05C: - ldr r0, =gUnknown_085CC270 + ldr r0, =gBattleStringsTable movs r1, 0xCF lsls r1, 2 adds r0, r1 ldr r0, [r0] - bl StrCpyDecodeToDisplayedStringBattle + bl BattleStringExpandPlaceholdersToDisplayedString ldr r0, =gDisplayedStringBattle movs r1, 0 - bl battle_show_message_maybe + bl sub_814F9EC ldr r0, =gTasks mov r2, r8 adds r1, r2, r7 @@ -2365,12 +2365,12 @@ _0813F09E: beq _0813F0AA b _0813F1A4 _0813F0AA: - ldr r0, =gUnknown_085CC270 + ldr r0, =gBattleStringsTable ldr r0, [r0, 0x1C] - bl StrCpyDecodeToDisplayedStringBattle + bl BattleStringExpandPlaceholdersToDisplayedString ldr r0, =gDisplayedStringBattle movs r1, 0 - bl battle_show_message_maybe + bl sub_814F9EC ldr r0, =gTasks mov r3, r8 adds r1, r3, r7 @@ -2390,15 +2390,15 @@ _0813F0D8: lsls r0, 24 cmp r0, 0 bne _0813F1A4 - ldr r0, =gUnknown_085CC270 + ldr r0, =gBattleStringsTable movs r1, 0xD0 lsls r1, 2 adds r0, r1 ldr r0, [r0] - bl StrCpyDecodeToDisplayedStringBattle + bl BattleStringExpandPlaceholdersToDisplayedString ldr r0, =gDisplayedStringBattle movs r1, 0 - bl battle_show_message_maybe + bl sub_814F9EC ldr r1, =gTasks mov r2, r8 adds r0, r2, r7 @@ -2409,12 +2409,12 @@ _0813F0D8: b _0813F1A4 .pool _0813F120: - ldr r0, =gUnknown_085CC270 + ldr r0, =gBattleStringsTable ldr r0, [r0, 0x20] - bl StrCpyDecodeToDisplayedStringBattle + bl BattleStringExpandPlaceholdersToDisplayedString ldr r0, =gDisplayedStringBattle movs r1, 0 - bl battle_show_message_maybe + bl sub_814F9EC ldr r1, =gTasks mov r3, r8 adds r0, r3, r7 @@ -2429,12 +2429,12 @@ _0813F120: b _0813F1A4 .pool _0813F154: - ldr r0, =gUnknown_085CC270 + ldr r0, =gBattleStringsTable ldr r0, [r0, 0x24] - bl StrCpyDecodeToDisplayedStringBattle + bl BattleStringExpandPlaceholdersToDisplayedString ldr r0, =gDisplayedStringBattle movs r1, 0 - bl battle_show_message_maybe + bl sub_814F9EC ldr r1, =gTasks mov r2, r8 adds r0, r2, r7 @@ -2533,7 +2533,7 @@ _0813F204: .4byte _0813F7E4 _0813F258: ldr r4, =gStringVar4 - ldr r1, =gUnknown_085CC990 + ldr r1, =gText_PkmnIsEvolving adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0 @@ -2804,7 +2804,7 @@ _0813F4E4: bl _0813FCC4 _0813F4F2: ldr r4, =gStringVar4 - ldr r1, =gUnknown_085CC9A6 + ldr r1, =gText_CongratsPkmnEvolved adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0 @@ -2913,7 +2913,7 @@ _0813F5F0: _0813F5FC: ldr r0, =0x00000179 bl PlayBGM - ldr r1, =gUnknown_085EF6D2 + ldr r1, =gText_CommunicationStandby5 movs r0, 0 movs r2, 0x1 bl sub_807F1A8 @@ -3029,7 +3029,7 @@ _0813F704: b _0813FCC4 _0813F714: ldr r4, =gStringVar4 - ldr r1, =gUnknown_085CC9EE + ldr r1, =gText_EllipsisQuestionMark adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0 @@ -3059,12 +3059,12 @@ _0813F756: beq _0813F762 b _0813FCC4 _0813F762: - bl sub_804F574 + bl BufferMoveToLearnIntoBattleTextBuff2 ldr r0, =0x0000016f bl PlayFanfare - ldr r0, =gUnknown_085CC270 + ldr r0, =gBattleStringsTable ldr r0, [r0, 0xC] - bl StrCpyDecodeToDisplayedStringBattle + bl BattleStringExpandPlaceholdersToDisplayedString ldr r1, =gDisplayedStringBattle movs r0, 0 movs r2, 0x1 @@ -3160,10 +3160,10 @@ _0813F846: beq _0813F852 b _0813FCC4 _0813F852: - bl sub_804F574 - ldr r0, =gUnknown_085CC270 + bl BufferMoveToLearnIntoBattleTextBuff2 + ldr r0, =gBattleStringsTable ldr r0, [r0, 0x10] - bl StrCpyDecodeToDisplayedStringBattle + bl BattleStringExpandPlaceholdersToDisplayedString ldr r1, =gDisplayedStringBattle movs r0, 0 movs r2, 0x1 @@ -3191,9 +3191,9 @@ _0813F892: beq _0813F89E b _0813FCC4 _0813F89E: - ldr r0, =gUnknown_085CC270 + ldr r0, =gBattleStringsTable ldr r0, [r0, 0x14] - bl StrCpyDecodeToDisplayedStringBattle + bl BattleStringExpandPlaceholdersToDisplayedString ldr r1, =gDisplayedStringBattle movs r0, 0 movs r2, 0x1 @@ -3217,9 +3217,9 @@ _0813F8CC: lsls r0, 24 cmp r0, 0 bne _0813F90C - ldr r0, =gUnknown_085CC270 + ldr r0, =gBattleStringsTable ldr r0, [r0, 0x18] - bl StrCpyDecodeToDisplayedStringBattle + bl BattleStringExpandPlaceholdersToDisplayedString ldr r1, =gDisplayedStringBattle movs r0, 0 movs r2, 0x1 @@ -3294,12 +3294,12 @@ _0813F986: _0813F98C: ldr r0, =gBattleCommunication strb r6, [r0, 0x1] - ldr r0, =gUnknown_085CC270 + ldr r0, =gBattleStringsTable movs r1, 0x92 lsls r1, 3 adds r0, r1 ldr r0, [r0] - bl StrCpyDecodeToDisplayedStringBattle + bl BattleStringExpandPlaceholdersToDisplayedString ldr r1, =gDisplayedStringBattle movs r0, 0 movs r2, 0x1 @@ -3331,12 +3331,12 @@ _0813F9E4: ldr r1, =gBattleCommunication movs r0, 0x1 strb r0, [r1, 0x1] - ldr r0, =gUnknown_085CC270 + ldr r0, =gBattleStringsTable movs r1, 0x92 lsls r1, 3 adds r0, r1 ldr r0, [r0] - bl StrCpyDecodeToDisplayedStringBattle + bl BattleStringExpandPlaceholdersToDisplayedString ldr r1, =gDisplayedStringBattle movs r0, 0 movs r2, 0x1 @@ -3437,11 +3437,11 @@ _0813FAEC: bl IsHMMove2 cmp r0, 0 beq _0813FB3C - ldr r0, =gUnknown_085CC270 + ldr r0, =gBattleStringsTable ldr r1, =0x000004cc adds r0, r1 ldr r0, [r0] - bl StrCpyDecodeToDisplayedStringBattle + bl BattleStringExpandPlaceholdersToDisplayedString ldr r1, =gDisplayedStringBattle movs r0, 0 movs r2, 0x1 @@ -3476,12 +3476,12 @@ _0813FB3C: mov r0, r9 adds r2, r4, 0 bl SetMonMoveSlot - ldr r0, =gUnknown_085CC270 + ldr r0, =gBattleStringsTable movs r1, 0xCF lsls r1, 2 adds r0, r1 ldr r0, [r0] - bl StrCpyDecodeToDisplayedStringBattle + bl BattleStringExpandPlaceholdersToDisplayedString ldr r1, =gDisplayedStringBattle movs r0, 0 movs r2, 0x1 @@ -3509,9 +3509,9 @@ _0813FBB2: beq _0813FBBE b _0813FCC4 _0813FBBE: - ldr r0, =gUnknown_085CC270 + ldr r0, =gBattleStringsTable ldr r0, [r0, 0x1C] - bl StrCpyDecodeToDisplayedStringBattle + bl BattleStringExpandPlaceholdersToDisplayedString ldr r1, =gDisplayedStringBattle movs r0, 0 movs r2, 0x1 @@ -3535,12 +3535,12 @@ _0813FBEC: lsls r0, 24 cmp r0, 0 bne _0813FCC4 - ldr r0, =gUnknown_085CC270 + ldr r0, =gBattleStringsTable movs r1, 0xD0 lsls r1, 2 adds r0, r1 ldr r0, [r0] - bl StrCpyDecodeToDisplayedStringBattle + bl BattleStringExpandPlaceholdersToDisplayedString ldr r1, =gDisplayedStringBattle movs r0, 0 movs r2, 0x1 @@ -3555,9 +3555,9 @@ _0813FBEC: b _0813FCC4 .pool _0813FC38: - ldr r0, =gUnknown_085CC270 + ldr r0, =gBattleStringsTable ldr r0, [r0, 0x20] - bl StrCpyDecodeToDisplayedStringBattle + bl BattleStringExpandPlaceholdersToDisplayedString ldr r1, =gDisplayedStringBattle movs r0, 0 movs r2, 0x1 @@ -3576,9 +3576,9 @@ _0813FC38: b _0813FCC4 .pool _0813FC70: - ldr r0, =gUnknown_085CC270 + ldr r0, =gBattleStringsTable ldr r0, [r0, 0x24] - bl StrCpyDecodeToDisplayedStringBattle + bl BattleStringExpandPlaceholdersToDisplayedString ldr r1, =gDisplayedStringBattle movs r0, 0 movs r2, 0x1 @@ -3638,23 +3638,23 @@ sub_813FCDC: @ 813FCDC ldrh r1, [r0] movs r0, 0x12 bl SetGpuReg - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X ldrh r1, [r0] movs r0, 0x14 bl SetGpuReg - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y ldrh r1, [r0] movs r0, 0x16 bl SetGpuReg - ldr r0, =gUnknown_02022E1C + ldr r0, =gBattle_BG2_X ldrh r1, [r0] movs r0, 0x18 bl SetGpuReg - ldr r0, =gUnknown_02022E1E + ldr r0, =gBattle_BG2_Y ldrh r1, [r0] movs r0, 0x1A bl SetGpuReg - ldr r0, =gUnknown_02022E20 + ldr r0, =gBattle_BG3_X ldrh r1, [r0] movs r0, 0x1C bl SetGpuReg @@ -3682,23 +3682,23 @@ sub_813FD64: @ 813FD64 ldrh r1, [r0] movs r0, 0x12 bl SetGpuReg - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X ldrh r1, [r0] movs r0, 0x14 bl SetGpuReg - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y ldrh r1, [r0] movs r0, 0x16 bl SetGpuReg - ldr r0, =gUnknown_02022E1C + ldr r0, =gBattle_BG2_X ldrh r1, [r0] movs r0, 0x18 bl SetGpuReg - ldr r0, =gUnknown_02022E1E + ldr r0, =gBattle_BG2_Y ldrh r1, [r0] movs r0, 0x1A bl SetGpuReg - ldr r0, =gUnknown_02022E20 + ldr r0, =gBattle_BG3_X ldrh r1, [r0] movs r0, 0x1C bl SetGpuReg @@ -3852,9 +3852,9 @@ sub_813FEE8: @ 813FEE8 push {r6,r7} lsls r0, 24 lsrs r5, r0, 24 - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X mov r8, r0 - ldr r1, =gUnknown_02022E1A + ldr r1, =gBattle_BG1_Y mov r9, r1 ldr r1, =gTasks lsls r0, r5, 2 @@ -3865,12 +3865,12 @@ sub_813FEE8: @ 813FEE8 ldrsh r0, [r0, r2] cmp r0, 0 bne _0813FF28 - ldr r7, =gUnknown_02022E1C - ldr r6, =gUnknown_02022E1E + ldr r7, =gBattle_BG2_X + ldr r6, =gBattle_BG2_Y b _0813FF2C .pool _0813FF28: - ldr r7, =gUnknown_02022E20 + ldr r7, =gBattle_BG3_X ldr r6, =gUnknown_02022E22 _0813FF2C: lsls r4, r5, 2 @@ -4130,12 +4130,12 @@ sub_8140174: @ 8140174 movs r0, 0x50 movs r1, 0 bl SetGpuReg - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X movs r1, 0 strh r1, [r0] - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y strh r1, [r0] - ldr r0, =gUnknown_02022E1C + ldr r0, =gBattle_BG2_X strh r1, [r0] movs r0, 0x1 movs r1, 0x5 diff --git a/asm/field_camera.s b/asm/field_camera.s index cead2954c..35359f444 100644 --- a/asm/field_camera.s +++ b/asm/field_camera.s @@ -1082,7 +1082,7 @@ CameraPanningCB_PanAhead: @ 808A360 b _0808A3FC .pool _0808A374: - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r0, [r0, 0x3] cmp r0, 0x1 bne _0808A394 diff --git a/asm/field_control_avatar.s b/asm/field_control_avatar.s index 0e83f4b80..1f2d638c3 100644 --- a/asm/field_control_avatar.s +++ b/asm/field_control_avatar.s @@ -44,14 +44,14 @@ process_overworld_input: @ 809BF08 lsls r2, 16 lsrs r2, 16 mov r8, r2 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r6, [r0, 0x3] ldrb r0, [r0, 0x2] mov r9, r0 bl cur_mapdata_block_role_at_player_pos lsls r0, 24 lsrs r0, 24 - bl sub_808904C + bl MetatileBehavior_IsMoveTile lsls r0, 24 lsrs r7, r0, 24 cmp r6, 0x2 @@ -567,7 +567,7 @@ _0809C32E: .pool _0809C33C: movs r4, 0 - ldr r1, =gUnknown_02032308 + ldr r1, =gLinkPlayerMapObjects _0809C340: ldrb r0, [r1] cmp r0, 0x1 @@ -831,7 +831,7 @@ _0809C55C: .pool _0809C574: adds r0, r5, 0 - bl is_tile_x8B + bl MetatileBehavior_IsClosedSootopolisGymDoor lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -841,7 +841,7 @@ _0809C574: .pool _0809C58C: adds r0, r5, 0 - bl is_tile_xEA + bl MetatileBehavior_IsUnknownClosedDoor lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -851,7 +851,7 @@ _0809C58C: .pool _0809C5A4: adds r0, r5, 0 - bl is_tile_x84 + bl MetatileBehavior_IsCableBoxResults1 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -859,7 +859,7 @@ _0809C5A4: b _0809C6E4 _0809C5B4: adds r0, r5, 0 - bl is_tile_x87 + bl MetatileBehavior_IsPokeblockFeeder lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -869,7 +869,7 @@ _0809C5B4: .pool _0809C5CC: adds r0, r5, 0 - bl is_tile_x8C + bl MetatileBehavior_IsTrickHousePuzzleDoor lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -879,7 +879,7 @@ _0809C5CC: .pool _0809C5E4: adds r0, r5, 0 - bl is_tile_x85 + bl MetatileBehavior_IsRegionMap lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -889,7 +889,7 @@ _0809C5E4: .pool _0809C5FC: adds r0, r5, 0 - bl sub_8089A1C + bl MetatileBehavior_IsRunningShoesInstruction lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -899,7 +899,7 @@ _0809C5FC: .pool _0809C614: adds r0, r5, 0 - bl sub_8089A30 + bl MetatileBehavior_IsPictureBookShelf lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -909,7 +909,7 @@ _0809C614: .pool _0809C62C: adds r0, r5, 0 - bl sub_8089A44 + bl MetatileBehavior_IsBookShelf lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -919,7 +919,7 @@ _0809C62C: .pool _0809C644: adds r0, r5, 0 - bl sub_8089A58 + bl MetatileBehavior_IsPokeCenterBookShelf lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -929,7 +929,7 @@ _0809C644: .pool _0809C65C: adds r0, r5, 0 - bl sub_8089A6C + bl MetatileBehavior_IsVase lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -939,7 +939,7 @@ _0809C65C: .pool _0809C674: adds r0, r5, 0 - bl sub_8089A80 + bl MetatileBehavior_IsTrashCan lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -949,7 +949,7 @@ _0809C674: .pool _0809C68C: adds r0, r5, 0 - bl sub_8089A94 + bl MetatileBehavior_IsShopShelf lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -959,7 +959,7 @@ _0809C68C: .pool _0809C6A4: adds r0, r5, 0 - bl sub_8089AA8 + bl MetatileBehavior_IsBlueprint lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -970,7 +970,7 @@ _0809C6A4: _0809C6BC: adds r0, r5, 0 adds r1, r4, 0 - bl sub_8089AD0 + bl MetatileBehavior_IsPlayerFacingWirelessBoxResults lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -981,7 +981,7 @@ _0809C6BC: _0809C6D4: adds r0, r5, 0 adds r1, r4, 0 - bl sub_8089AEC + bl MetatileBehavior_IsCableBoxResults2 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1023,7 +1023,7 @@ _0809C71C: cmp r4, r0 bne _0809C7D0 adds r0, r5, 0 - bl sub_8089288 + bl MetatileBehavior_IsSecretBasePC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1033,7 +1033,7 @@ _0809C71C: .pool _0809C74C: adds r0, r5, 0 - bl sub_808929C + bl MetatileBehavior_IsSecretBaseRegisterPC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1043,7 +1043,7 @@ _0809C74C: .pool _0809C764: adds r0, r5, 0 - bl sub_80893DC + bl MetatileBehavior_IsMB_BF lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1053,7 +1053,7 @@ _0809C764: .pool _0809C77C: adds r0, r5, 0 - bl sub_80893F0 + bl MetatileBehavior_IsSecretBaseTvOrShield lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1063,7 +1063,7 @@ _0809C77C: .pool _0809C794: adds r0, r5, 0 - bl sub_80892EC + bl MetatileBehavior_IsMB_C6 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1072,7 +1072,7 @@ _0809C794: b _0809C7E2 _0809C7A8: adds r0, r5, 0 - bl sub_8089364 + bl MetatileBehavior_IsMB_C3 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1081,7 +1081,7 @@ _0809C7A8: b _0809C7E2 _0809C7BC: adds r0, r5, 0 - bl sub_8089350 + bl MetatileBehavior_IsMB_B5 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1090,7 +1090,7 @@ _0809C7BC: b _0809C7E2 _0809C7D0: adds r0, r5, 0 - bl sub_8089300 + bl MetatileBehavior_IsSecretBasePoster lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1297,7 +1297,7 @@ sub_809C96C: @ 809C96C lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 - bl sub_8089918 + bl MetatileBehavior_IsCrackedFloorHole lsls r0, 24 cmp r0, 0 beq _0809C988 @@ -1306,7 +1306,7 @@ sub_809C96C: @ 809C96C .pool _0809C988: adds r0, r4, 0 - bl sub_8089ABC + bl MetatileBehavior_IsBattlePyramidWarp lsls r0, 24 cmp r0, 0 beq _0809C9A4 @@ -1318,7 +1318,7 @@ _0809C996: .pool _0809C9A4: adds r0, r4, 0 - bl sub_80893C8 + bl MetatileBehavior_IsSecretBaseGlitterMat lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1327,7 +1327,7 @@ _0809C9A4: b _0809C9E8 _0809C9B8: adds r0, r4, 0 - bl sub_80893B4 + bl MetatileBehavior_IsSecretBaseSoundMat lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1368,7 +1368,7 @@ _0809CA04: bl sub_80B215C bl AdjustFriendship_step bl sub_81D4998 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0] movs r0, 0x40 ands r0, r1 @@ -1376,7 +1376,7 @@ _0809CA04: bne _0809CAF8 lsls r0, r4, 24 lsrs r0, 24 - bl sub_808904C + bl MetatileBehavior_IsMoveTile lsls r0, 24 cmp r0, 0 bne _0809CAF8 @@ -1467,7 +1467,7 @@ _0809CAF8: cmp r0, 0x1 beq _0809CB28 movs r0, 0x1 - bl sub_8137FC0 + bl CountSSTidalStep cmp r0, 0x1 bne _0809CB1C ldr r0, =gUnknown_0823C050 @@ -1719,7 +1719,7 @@ sub_809CC9C: @ 809CC9C .pool _0809CCF8: adds r0, r4, 0 - bl sub_8089870 + bl MetatileBehavior_IsLavaridgeB1FWarp lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1729,7 +1729,7 @@ _0809CCF8: b _0809CD8C _0809CD0E: adds r0, r4, 0 - bl is_role_x68 + bl MetatileBehavior_IsLavaridge1FWarp lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1749,7 +1749,7 @@ _0809CD24: b _0809CD8C _0809CD3A: adds r0, r4, 0 - bl sub_80898AC + bl MetatileBehavior_IsWarpOrBridge lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1759,7 +1759,7 @@ _0809CD3A: b _0809CD8C _0809CD50: adds r0, r4, 0 - bl sub_8089904 + bl MetatileBehavior_IsMtPyreHole lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1771,7 +1771,7 @@ _0809CD50: .pool _0809CD6C: adds r0, r4, 0 - bl sub_80898C0 + bl MetatileBehavior_IsMossdeepGymWarp lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1797,7 +1797,7 @@ is_warp_tile: @ 809CD94 lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 - bl is_tile_x69_2_warp_door + bl MetatileBehavior_IsWarpDoor lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1815,19 +1815,19 @@ is_warp_tile: @ 809CD94 cmp r0, 0x1 beq _0809CE2A adds r0, r4, 0 - bl sub_8088F58 + bl MetatileBehavior_IsNonAnimDoor lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0809CE2A adds r0, r4, 0 - bl sub_8089870 + bl MetatileBehavior_IsLavaridgeB1FWarp lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0809CE2A adds r0, r4, 0 - bl is_role_x68 + bl MetatileBehavior_IsLavaridge1FWarp lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1839,19 +1839,19 @@ is_warp_tile: @ 809CD94 cmp r0, 0x1 beq _0809CE2A adds r0, r4, 0 - bl sub_8089904 + bl MetatileBehavior_IsMtPyreHole lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0809CE2A adds r0, r4, 0 - bl sub_80898C0 + bl MetatileBehavior_IsMossdeepGymWarp lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0809CE2A adds r0, r4, 0 - bl sub_80898AC + bl MetatileBehavior_IsWarpOrBridge lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -2048,7 +2048,7 @@ map_warp_consider_2_to_inside: @ 809CF78 lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 - bl sub_8089210 + bl MetatileBehavior_IsSecretBaseOpen lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -2062,7 +2062,7 @@ map_warp_consider_2_to_inside: @ 809CF78 .pool _0809CFB0: adds r0, r4, 0 - bl is_tile_x69_2_warp_door + bl MetatileBehavior_IsWarpDoor lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -2322,7 +2322,7 @@ dive_warp: @ 809D16C bne _0809D1A4 lsls r0, r5, 24 lsrs r0, 24 - bl sub_80895D0 + bl MetatileBehavior_IsUnableToEmerge lsls r0, 24 cmp r0, 0 bne _0809D1A4 @@ -2340,7 +2340,7 @@ dive_warp: @ 809D16C _0809D1A4: lsls r0, r5, 24 lsrs r0, 24 - bl sub_80895B0 + bl MetatileBehavior_IsDiveable lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -2394,7 +2394,7 @@ sub_809D1E8: @ 809D1E8 cmp r0, 0x5 bne _0809D244 adds r0, r5, 0 - bl sub_80895D0 + bl MetatileBehavior_IsUnableToEmerge lsls r0, 24 cmp r0, 0 bne _0809D244 @@ -2417,7 +2417,7 @@ sub_809D1E8: @ 809D1E8 .pool _0809D244: adds r0, r5, 0 - bl sub_80895B0 + bl MetatileBehavior_IsDiveable lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 diff --git a/asm/field_door.s b/asm/field_door.s index 987f0bd8c..4602158df 100644 --- a/asm/field_door.s +++ b/asm/field_door.s @@ -589,7 +589,7 @@ sub_808A854: @ 808A854 bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 - bl sub_8088EFC + bl MetatileBehavior_IsDoor lsls r0, 24 cmp r0, 0 beq _0808A876 @@ -612,7 +612,7 @@ sub_808A880: @ 808A880 bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 - bl sub_8088EFC + bl MetatileBehavior_IsDoor lsls r0, 24 cmp r0, 0 beq _0808A8A2 @@ -635,7 +635,7 @@ sub_808A8AC: @ 808A8AC bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 - bl sub_8088EFC + bl MetatileBehavior_IsDoor lsls r0, 24 cmp r0, 0 beq _0808A8D8 @@ -664,7 +664,7 @@ task_overworld_door_add_if_role_69_for_opening_door_at: @ 808A8E4 bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 - bl sub_8088EFC + bl MetatileBehavior_IsDoor lsls r0, 24 cmp r0, 0 beq _0808A910 diff --git a/asm/field_effect.s b/asm/field_effect.s index c40098993..c8ccc49b4 100644 --- a/asm/field_effect.s +++ b/asm/field_effect.s @@ -1945,7 +1945,7 @@ sub_80B69DC: @ 80B69DC push {lr} ldr r0, =c2_exit_to_overworld_2_switch bl SetMainCallback2 - ldr r1, =gUnknown_03005DAC + ldr r1, =gFieldCallback ldr r0, =mapldr_080842E8 str r0, [r1] pop {r0} @@ -1962,7 +1962,7 @@ mapldr_080842E8: @ 80B69FC bl CreateTask bl ScriptContext2_Enable bl player_bitmagic - ldr r1, =gUnknown_03005DAC + ldr r1, =gFieldCallback movs r0, 0 str r0, [r1] pop {r0} @@ -1989,7 +1989,7 @@ task00_8084310: @ 80B6A24 cmp r0, 0 beq _080B6A8A bl brm_get_pokemon_selection - ldr r1, =gUnknown_02038C08 + ldr r1, =gFieldEffectSpawnParams lsls r0, 24 lsrs r0, 24 str r0, [r1] @@ -2012,7 +2012,7 @@ _080B6A64: bl warp_in ldr r0, =c2_load_new_map bl SetMainCallback2 - ldr r1, =gUnknown_03005DAC + ldr r1, =gFieldCallback ldr r0, =mapldr_08084390 str r0, [r1] adds r0, r5, 0 @@ -2033,7 +2033,7 @@ mapldr_08084390: @ 80B6AA4 movs r1, 0 bl CreateTask ldr r4, =gMapObjects - ldr r3, =gUnknown_02037590 + ldr r3, =gPlayerAvatar ldrb r1, [r3, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -2058,7 +2058,7 @@ mapldr_08084390: @ 80B6AA4 _080B6AE6: bl ScriptContext2_Enable bl player_bitmagic - ldr r1, =gUnknown_03005DAC + ldr r1, =gFieldCallback movs r0, 0 str r0, [r1] pop {r4} @@ -2120,7 +2120,7 @@ sub_80B6B68: @ 80B6B68 ldr r0, =sub_80B6B94 movs r1, 0 bl CreateTask - ldr r1, =gUnknown_03005DAC + ldr r1, =gFieldCallback movs r0, 0 str r0, [r1] pop {r0} @@ -2163,7 +2163,7 @@ sub_80B6BCC: @ 80B6BCC mov r5, r8 push {r5,r6} mov r9, r0 - ldr r6, =gUnknown_02037590 + ldr r6, =gPlayerAvatar ldrb r0, [r6, 0x5] lsls r5, r0, 3 adds r5, r0 @@ -2256,7 +2256,7 @@ _080B6C88: sub_80B6C90: @ 80B6C90 push {r4-r6,lr} adds r5, r0, 0 - ldr r6, =gUnknown_02037590 + ldr r6, =gPlayerAvatar ldrb r0, [r6, 0x4] lsls r2, r0, 4 adds r2, r0 @@ -2309,7 +2309,7 @@ sub_80B6C90: @ 80B6C90 sub_80B6D04: @ 80B6D04 push {r4-r6,lr} adds r4, r0, 0 - ldr r2, =gUnknown_02037590 + ldr r2, =gPlayerAvatar ldrb r1, [r2, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -2454,7 +2454,7 @@ _080B6E0E: thumb_func_start sub_80B6E18 sub_80B6E18: @ 80B6E18 push {lr} - ldr r1, =gUnknown_02037590 + ldr r1, =gPlayerAvatar movs r0, 0 strb r0, [r1, 0x6] bl ScriptContext2_Disable @@ -2551,7 +2551,7 @@ sub_80B6EC0: @ 80B6EC0 sub_80B6EE0: @ 80B6EE0 push {r4,r5,lr} adds r5, r0, 0 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -2664,7 +2664,7 @@ sub_80B6FA8: @ 80B6FA8 sub_80B6FB8: @ 80B6FB8 push {r4,r5,lr} adds r5, r0, 0 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r0, [r0, 0x4] lsls r4, r0, 4 adds r4, r0 @@ -2702,7 +2702,7 @@ _080B6FF6: sub_80B7004: @ 80B7004 push {r4,r5,lr} adds r5, r0, 0 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r0, [r0, 0x4] lsls r4, r0, 4 adds r4, r0 @@ -2761,7 +2761,7 @@ sub_80B7060: @ 80B7060 bne _080B709C bl sub_80E1570 bl warp_in - ldr r1, =gUnknown_03005DAC + ldr r1, =gFieldCallback ldr r0, =sub_80B70B4 str r0, [r1] ldr r0, =c2_load_new_map @@ -2786,7 +2786,7 @@ sub_80B70B4: @ 80B70B4 ldr r0, =sub_80B70DC movs r1, 0 bl CreateTask - ldr r1, =gUnknown_03005DAC + ldr r1, =gFieldCallback movs r0, 0 str r0, [r1] pop {r0} @@ -2828,7 +2828,7 @@ sub_80B7114: @ 80B7114 sub sp, 0x4 adds r5, r0, 0 bl CameraObjectReset2 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r0, [r0, 0x5] lsls r4, r0, 3 adds r4, r0 @@ -2883,7 +2883,7 @@ _080B717E: sub_80B7190: @ 80B7190 push {r4,r5,lr} adds r5, r0, 0 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r0, [r0, 0x4] lsls r4, r0, 4 adds r4, r0 @@ -2914,7 +2914,7 @@ sub_80B7190: @ 80B7190 sub_80B71D0: @ 80B71D0 push {r4,r5,lr} adds r4, r0, 0 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x4] lsls r0, r1, 4 adds r0, r1 @@ -2962,7 +2962,7 @@ _080B721E: sub_80B7230: @ 80B7230 push {r4,r5,lr} adds r5, r0, 0 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r0, [r0, 0x4] lsls r4, r0, 4 adds r4, r0 @@ -2993,7 +2993,7 @@ sub_80B7230: @ 80B7230 sub_80B7270: @ 80B7270 push {r4,r5,lr} adds r4, r0, 0 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x4] lsls r0, r1, 4 adds r0, r1 @@ -3063,7 +3063,7 @@ _080B72EE: thumb_func_start sub_80B72F4 sub_80B72F4: @ 80B72F4 push {r4,lr} - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -3111,7 +3111,7 @@ oei_waterfall: @ 80B734C adds r1, r0 lsls r1, 3 adds r1, r2 - ldr r2, =gUnknown_02038C08 + ldr r2, =gFieldEffectSpawnParams ldr r2, [r2] strh r2, [r1, 0xA] bl _call_via_r4 @@ -3138,7 +3138,7 @@ _080B7396: ldrsh r2, [r4, r0] lsls r2, 2 adds r2, r5 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r0, [r0, 0x5] lsls r1, r0, 3 adds r1, r0 @@ -3162,7 +3162,7 @@ sub_80B73D0: @ 80B73D0 push {r4,lr} adds r4, r0, 0 bl ScriptContext2_Enable - ldr r1, =gUnknown_02037590 + ldr r1, =gPlayerAvatar movs r0, 0x1 strb r0, [r1, 0x6] ldrh r0, [r4, 0x8] @@ -3188,7 +3188,7 @@ waterfall_1_do_anim_probably: @ 80B73F0 bne _080B7420 adds r0, r5, 0 bl FieldObjectClearAnimIfSpecialAnimFinished - ldr r1, =gUnknown_02038C08 + ldr r1, =gFieldEffectSpawnParams movs r2, 0xA ldrsh r0, [r4, r2] str r0, [r1] @@ -3268,7 +3268,7 @@ _080B748E: cmp r4, 0 bne _080B74C4 bl ScriptContext2_Disable - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar strb r4, [r0, 0x6] ldr r0, =sub_80B7384 bl FindTaskIdByFunc @@ -3304,7 +3304,7 @@ sub_80B74D0: @ 80B74D0 adds r1, r0 lsls r1, 3 adds r1, r2 - ldr r3, =gUnknown_02038C08 + ldr r3, =gFieldEffectSpawnParams ldr r2, [r3] strh r2, [r1, 0x26] ldr r2, [r3, 0x4] @@ -3347,7 +3347,7 @@ _080B751E: thumb_func_start dive_1_lock dive_1_lock: @ 80B7544 - ldr r2, =gUnknown_02037590 + ldr r2, =gPlayerAvatar movs r1, 0x1 strb r1, [r2, 0x6] ldrh r1, [r0, 0x8] @@ -3363,7 +3363,7 @@ dive_2_unknown: @ 80B7558 push {r4,lr} adds r4, r0, 0 bl ScriptContext2_Enable - ldr r1, =gUnknown_02038C08 + ldr r1, =gFieldEffectSpawnParams movs r2, 0x26 ldrsh r0, [r4, r2] str r0, [r1] @@ -3393,7 +3393,7 @@ dive_3_unknown: @ 80B7580 cmp r0, 0 bne _080B75C4 ldr r2, =gMapObjects - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -3437,7 +3437,7 @@ sub_80B75F0: @ 80B75F0 lsrs r0, 24 ldr r6, =gUnknown_0855C438 ldr r2, =gTasks - ldr r5, =gUnknown_02037590 + ldr r5, =gPlayerAvatar lsls r1, r0, 2 adds r1, r0 lsls r1, 3 @@ -3480,7 +3480,7 @@ sub_80B764C: @ 80B764C bl CameraObjectReset2 movs r0, 0 bl SetCameraPanningCallback - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar movs r2, 0x1 strb r2, [r0, 0x6] ldrb r0, [r5, 0x3] @@ -3536,7 +3536,7 @@ sub_80B76B8: @ 80B76B8 strh r0, [r2, 0x26] movs r0, 0x1 strh r0, [r4, 0xE] - ldr r3, =gUnknown_02038C08 + ldr r3, =gFieldEffectSpawnParams movs r5, 0x10 ldrsh r0, [r1, r5] str r0, [r3] @@ -3727,7 +3727,7 @@ sub_80B7814: @ 80B7814 cmp r0, 0x1 bne _080B784C bl warp_in - ldr r1, =gUnknown_03005DAC + ldr r1, =gFieldCallback ldr r0, =mapldr_080851BC str r0, [r1] ldr r0, =c2_load_new_map @@ -3750,7 +3750,7 @@ mapldr_080851BC: @ 80B7868 bl sub_8085784 bl pal_fill_for_maplights bl ScriptContext2_Enable - ldr r0, =gUnknown_03005DAC + ldr r0, =gFieldCallback movs r1, 0 str r1, [r0] ldr r0, =sub_80B7890 @@ -3767,7 +3767,7 @@ sub_80B7890: @ 80B7890 lsrs r0, 24 ldr r6, =gUnknown_0855C450 ldr r2, =gTasks - ldr r5, =gUnknown_02037590 + ldr r5, =gPlayerAvatar lsls r1, r0, 2 adds r1, r0 lsls r1, 3 @@ -3808,7 +3808,7 @@ sub_80B78EC: @ 80B78EC adds r4, r1, 0 bl CameraObjectReset2 bl player_bitmagic - ldr r1, =gUnknown_02037590 + ldr r1, =gPlayerAvatar movs r0, 0x1 strb r0, [r1, 0x6] ldrb r0, [r4, 0x1] @@ -3835,7 +3835,7 @@ sub_80B791C: @ 80B791C lsls r0, 24 cmp r0, 0 beq _080B795C - ldr r1, =gUnknown_02038C08 + ldr r1, =gFieldEffectSpawnParams movs r2, 0x10 ldrsh r0, [r5, r2] str r0, [r1] @@ -3915,7 +3915,7 @@ sub_80B79BC: @ 80B79BC lsls r0, 24 cmp r0, 0 beq _080B79E6 - ldr r1, =gUnknown_02037590 + ldr r1, =gPlayerAvatar movs r0, 0 strb r0, [r1, 0x6] bl ScriptContext2_Disable @@ -3935,7 +3935,7 @@ _080B79E6: thumb_func_start sub_80B79F4 sub_80B79F4: @ 80B79F4 push {r4,lr} - ldr r4, =gUnknown_02038C08 + ldr r4, =gFieldEffectSpawnParams adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 @@ -4016,7 +4016,7 @@ sub_80B7A8C: @ 80B7A8C lsrs r0, 24 ldr r6, =gUnknown_0855C460 ldr r2, =gTasks - ldr r5, =gUnknown_02037590 + ldr r5, =gPlayerAvatar lsls r1, r0, 2 adds r1, r0 lsls r1, 3 @@ -4057,7 +4057,7 @@ sub_80B7AE8: @ 80B7AE8 adds r4, r1, 0 bl player_bitmagic bl CameraObjectReset2 - ldr r1, =gUnknown_02037590 + ldr r1, =gPlayerAvatar movs r0, 0x1 strb r0, [r1, 0x6] ldrb r0, [r4, 0x3] @@ -4090,7 +4090,7 @@ sub_80B7B18: @ 80B7B18 ldrsh r0, [r5, r2] cmp r0, 0x3 ble _080B7B6C - ldr r1, =gUnknown_02038C08 + ldr r1, =gFieldEffectSpawnParams movs r2, 0x10 ldrsh r0, [r4, r2] str r0, [r1] @@ -4202,7 +4202,7 @@ sub_80B7BF4: @ 80B7BF4 cmp r0, 0x1 bne _080B7C2C bl warp_in - ldr r1, =gUnknown_03005DAC + ldr r1, =gFieldCallback ldr r0, =sub_80B6B68 str r0, [r1] ldr r0, =c2_load_new_map @@ -4222,7 +4222,7 @@ _080B7C2C: thumb_func_start sub_80B7C48 sub_80B7C48: @ 80B7C48 push {r4,lr} - ldr r4, =gUnknown_02038C08 + ldr r4, =gFieldEffectSpawnParams adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 @@ -4359,7 +4359,7 @@ sub_80B7D34: @ 80B7D34 bl music_something bl sub_80AF0B4 _080B7D60: - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -4399,7 +4399,7 @@ _080B7D86: bl FieldObjectSetDirection bl sub_8084E14 bl warp_in - ldr r1, =gUnknown_03005DAC + ldr r1, =gFieldCallback ldr r0, =mapldr_080859D4 str r0, [r1] ldr r0, =c2_load_new_map @@ -4462,11 +4462,11 @@ mapldr_080859D4: @ 80B7E48 bl pal_fill_for_maplights bl ScriptContext2_Enable bl player_bitmagic - ldr r1, =gUnknown_03005DAC + ldr r1, =gFieldCallback movs r0, 0 str r0, [r1] ldr r2, =gMapObjects - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -4537,7 +4537,7 @@ sub_80B7EE8: @ 80B7EE8 mov r0, sp movs r2, 0x5 bl memcpy - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -4695,7 +4695,7 @@ sub_80B8034: @ 80B8034 mov r0, sp movs r2, 0x5 bl memcpy - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -4765,7 +4765,7 @@ sub_80B80C4: @ 80B80C4 mov r0, sp movs r2, 0x5 bl memcpy - ldr r2, =gUnknown_02037590 + ldr r2, =gPlayerAvatar ldrb r1, [r2, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -4885,7 +4885,7 @@ _080B81B8: bl warp_in ldr r0, =c2_load_new_map bl SetMainCallback2 - ldr r1, =gUnknown_03005DAC + ldr r1, =gFieldCallback ldr r0, =mapldr_08085D88 str r0, [r1] ldr r0, =sub_80B7FDC @@ -4907,11 +4907,11 @@ mapldr_08085D88: @ 80B8200 bl pal_fill_for_maplights bl ScriptContext2_Enable bl player_bitmagic - ldr r1, =gUnknown_03005DAC + ldr r1, =gFieldCallback movs r0, 0 str r0, [r1] ldr r2, =gMapObjects - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -4961,7 +4961,7 @@ sub_80B8280: @ 80B8280 lsls r0, 24 cmp r0, 0 beq _080B82F6 - ldr r5, =gUnknown_02037590 + ldr r5, =gPlayerAvatar ldrb r0, [r5, 0x4] lsls r2, r0, 4 adds r2, r0 @@ -5027,7 +5027,7 @@ sub_80B830C: @ 80B830C mov r0, sp movs r2, 0x5 bl memcpy - ldr r2, =gUnknown_02037590 + ldr r2, =gPlayerAvatar ldrb r1, [r2, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -5156,7 +5156,7 @@ sub_80B8410: @ 80B8410 mov r0, sp movs r2, 0x5 bl memcpy - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -5229,7 +5229,7 @@ _080B84BE: bl CreateTask lsls r0, 24 lsrs r4, r0, 24 - ldr r2, =gUnknown_02038C08 + ldr r2, =gFieldEffectSpawnParams ldr r0, [r2] ldr r1, [r2, 0x4] ldr r2, [r2, 0x8] @@ -5252,7 +5252,7 @@ _080B84BE: thumb_func_start sub_80B84F8 sub_80B84F8: @ 80B84F8 push {r4-r6,lr} - ldr r5, =gUnknown_02038C08 + ldr r5, =gFieldEffectSpawnParams ldr r0, [r5] movs r6, 0x80 lsls r6, 24 @@ -6292,7 +6292,7 @@ sub_80B8D44: @ 80B8D44 adds r1, r0 lsls r1, 3 adds r1, r2 - ldr r0, =gUnknown_02038C08 + ldr r0, =gFieldEffectSpawnParams ldr r0, [r0] strh r0, [r1, 0x26] bl sav1_reset_battle_music_maybe @@ -6335,7 +6335,7 @@ sub_80B8DB4: @ 80B8DB4 adds r4, r0, 0 bl ScriptContext2_Enable bl player_bitmagic - ldr r5, =gUnknown_02037590 + ldr r5, =gPlayerAvatar movs r0, 0x1 strb r0, [r5, 0x6] movs r0, 0x8 @@ -6374,7 +6374,7 @@ sub_80B8DB4: @ 80B8DB4 sub_80B8E14: @ 80B8E14 push {r4,r5,lr} adds r5, r0, 0 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -6410,7 +6410,7 @@ _080B8E50: sub_80B8E60: @ 80B8E60 push {r4,lr} adds r4, r0, 0 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -6421,7 +6421,7 @@ sub_80B8E60: @ 80B8E60 lsls r0, 24 cmp r0, 0 beq _080B8E96 - ldr r2, =gUnknown_02038C08 + ldr r2, =gFieldEffectSpawnParams movs r1, 0x26 ldrsh r0, [r4, r1] movs r1, 0x80 @@ -6449,7 +6449,7 @@ sub_80B8EA8: @ 80B8EA8 lsls r0, 24 cmp r0, 0 bne _080B8F12 - ldr r5, =gUnknown_02037590 + ldr r5, =gPlayerAvatar ldrb r0, [r5, 0x5] lsls r4, r0, 3 adds r4, r0 @@ -6473,7 +6473,7 @@ sub_80B8EA8: @ 80B8EA8 lsrs r1, 24 adds r0, r4, 0 bl FieldObjectSetSpecialAnim - ldr r1, =gUnknown_02038C08 + ldr r1, =gFieldEffectSpawnParams movs r2, 0xA ldrsh r0, [r6, r2] str r0, [r1] @@ -6498,7 +6498,7 @@ _080B8F12: thumb_func_start sub_80B8F24 sub_80B8F24: @ 80B8F24 push {r4,r5,lr} - ldr r5, =gUnknown_02037590 + ldr r5, =gPlayerAvatar ldrb r1, [r5, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -6704,7 +6704,7 @@ sub_80B90CC: @ 80B90CC strb r0, [r2, 0x5] ldr r0, =sub_80B9128 str r0, [r2, 0x1C] - ldr r0, =gUnknown_02038C08 + ldr r0, =gFieldEffectSpawnParams ldr r0, [r0] strh r0, [r2, 0x30] movs r0, 0x9E @@ -6793,7 +6793,7 @@ sub_80B91A4: @ 80B91A4 adds r1, r0 lsls r1, 3 adds r1, r2 - ldr r0, =gUnknown_02038C08 + ldr r0, =gFieldEffectSpawnParams ldr r0, [r0] strh r0, [r1, 0xA] movs r0, 0 @@ -6829,7 +6829,7 @@ sub_80B91D4: @ 80B91D4 sub_80B9204: @ 80B9204 push {r4-r6,lr} adds r5, r0, 0 - ldr r6, =gUnknown_02037590 + ldr r6, =gPlayerAvatar ldrb r1, [r6, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -6870,7 +6870,7 @@ _080B924C: sub_80B925C: @ 80B925C push {r4,lr} adds r4, r0, 0 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -6884,7 +6884,7 @@ sub_80B925C: @ 80B925C ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] - ldr r1, =gUnknown_02038C08 + ldr r1, =gFieldEffectSpawnParams movs r2, 0xA ldrsh r0, [r4, r2] str r0, [r1] @@ -6906,7 +6906,7 @@ sub_80B92A0: @ 80B92A0 lsls r0, 24 cmp r0, 0 bne _080B92E8 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -6955,7 +6955,7 @@ sub_80B92F8: @ 80B92F8 strh r0, [r4, 0xC] movs r0, 0x1 bl SetPlayerAvatarTransitionFlags - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -6975,7 +6975,7 @@ _080B932C: sub_80B933C: @ 80B933C push {r4,lr} adds r4, r0, 0 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -7023,7 +7023,7 @@ sub_80B9390: @ 80B9390 asrs r0, 16 cmp r0, 0x7 ble _080B9406 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -7087,7 +7087,7 @@ sub_80B9418: @ 80B9418 asrs r0, 16 cmp r0, 0x9 ble _080B9464 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r0, [r0, 0x5] lsls r4, r0, 3 adds r4, r0 @@ -7582,7 +7582,7 @@ sub_80B97D4: @ 80B97D4 sub_80B9804: @ 80B9804 push {r4-r6,lr} adds r5, r0, 0 - ldr r6, =gUnknown_02037590 + ldr r6, =gPlayerAvatar ldrb r1, [r6, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -7673,7 +7673,7 @@ sub_80B98B8: @ 80B98B8 cmp r0, 0 bne _080B9910 _080B98D0: - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -7720,7 +7720,7 @@ sub_80B9924: @ 80B9924 mov r0, sp movs r2, 0x24 bl memcpy - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r0, [r0, 0x4] lsls r1, r0, 4 adds r1, r0 @@ -7760,7 +7760,7 @@ sub_80B9978: @ 80B9978 lsls r0, 24 cmp r0, 0 beq _080B99DC - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r0, [r0, 0x5] lsls r5, r0, 3 adds r5, r0 @@ -7810,7 +7810,7 @@ _080B99DC: sub_80B99F0: @ 80B99F0 push {r4,lr} adds r4, r0, 0 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -7872,7 +7872,7 @@ sub_80B9A60: @ 80B9A60 lsls r0, 16 cmp r0, 0 bne _080B9ACA - ldr r6, =gUnknown_02037590 + ldr r6, =gPlayerAvatar ldrb r1, [r6, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -7922,7 +7922,7 @@ _080B9ACA: sub_80B9ADC: @ 80B9ADC push {r4,lr} sub sp, 0x4 - ldr r4, =gUnknown_02038C08 + ldr r4, =gFieldEffectSpawnParams ldrb r0, [r4] ldrb r1, [r4, 0x4] ldrb r2, [r4, 0x8] @@ -8343,7 +8343,7 @@ _080B9E24: sub_80B9E28: @ 80B9E28 push {r4-r7,lr} sub sp, 0x4 - ldr r7, =gUnknown_02038C08 + ldr r7, =gFieldEffectSpawnParams ldrb r0, [r7] ldrb r1, [r7, 0x4] ldrb r2, [r7, 0x8] diff --git a/asm/field_effect_helpers.s b/asm/field_effect_helpers.s index 69c67672c..223a27937 100644 --- a/asm/field_effect_helpers.s +++ b/asm/field_effect_helpers.s @@ -130,13 +130,13 @@ npc_pal_op: @ 8153FAC cmp r0, 0 bne _08154008 ldrb r0, [r5, 0x1F] - bl sub_80894D4 + bl MetatileBehavior_GetBridgeSth lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _08153FEE ldrb r0, [r5, 0x1E] - bl sub_80894D4 + bl MetatileBehavior_GetBridgeSth lsls r0, 24 lsrs r0, 24 cmp r0, 0 @@ -574,7 +574,7 @@ _0815432E: thumb_func_start oei_shadow oei_shadow: @ 8154340 push {r4,r5,lr} - ldr r5, =gUnknown_02038C08 + ldr r5, =gFieldEffectSpawnParams ldrb r0, [r5] ldrb r1, [r5, 0x4] ldrb r2, [r5, 0x8] @@ -702,7 +702,7 @@ _08154412: cmp r0, r1 bne _08154490 ldrb r0, [r4, 0x1E] - bl sub_8088E64 + bl MetatileBehavior_IsPokeGrass lsls r0, 24 cmp r0, 0 bne _08154490 @@ -742,7 +742,7 @@ _08154498: oei_grass_normal: @ 81544AC push {r4,r5,lr} sub sp, 0x4 - ldr r5, =gUnknown_02038C08 + ldr r5, =gFieldEffectSpawnParams ldrh r1, [r5] mov r0, sp strh r1, [r0] @@ -827,7 +827,7 @@ unc_grass_normal: @ 8154550 lsrs r4, r0, 8 lsls r0, 24 lsrs r7, r0, 24 - ldr r3, =gUnknown_02037334 + ldr r3, =gCamera ldrb r1, [r3] movs r0, 0x1 ands r0, r1 @@ -951,7 +951,7 @@ _08154648: thumb_func_start sub_8154658 sub_8154658: @ 8154658 push {r4,lr} - ldr r4, =gUnknown_02038C08 + ldr r4, =gFieldEffectSpawnParams adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 @@ -1080,7 +1080,7 @@ _0815474C: sub_8154758: @ 8154758 push {r4,r5,lr} sub sp, 0x4 - ldr r5, =gUnknown_02038C08 + ldr r5, =gFieldEffectSpawnParams ldrh r1, [r5] mov r0, sp strh r1, [r0] @@ -1166,7 +1166,7 @@ unc_grass_tall: @ 8154800 lsrs r7, r0, 8 lsls r0, 24 lsrs r6, r0, 24 - ldr r3, =gUnknown_02037334 + ldr r3, =gCamera ldrb r1, [r3] movs r0, 0x1 ands r0, r1 @@ -1282,7 +1282,7 @@ _081548EA: thumb_func_start sub_81548FC sub_81548FC: @ 81548FC push {r4,lr} - ldr r4, =gUnknown_02038C08 + ldr r4, =gFieldEffectSpawnParams adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 @@ -1336,7 +1336,7 @@ _08154958: thumb_func_start sub_815496C sub_815496C: @ 815496C push {r4-r6,lr} - ldr r6, =gUnknown_02038C08 + ldr r6, =gFieldEffectSpawnParams ldrb r0, [r6] ldrb r1, [r6, 0x4] ldrb r2, [r6, 0x8] @@ -1537,7 +1537,7 @@ _08154AF2: thumb_func_start sub_8154B04 sub_8154B04: @ 8154B04 push {r4,lr} - ldr r4, =gUnknown_02038C08 + ldr r4, =gFieldEffectSpawnParams adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 @@ -1591,7 +1591,7 @@ _08154B62: thumb_func_start sub_8154B78 sub_8154B78: @ 8154B78 push {r4,r5,lr} - ldr r4, =gUnknown_02038C08 + ldr r4, =gFieldEffectSpawnParams adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 @@ -1646,7 +1646,7 @@ _08154BD8: thumb_func_start sub_8154BEC sub_8154BEC: @ 8154BEC push {r4,r5,lr} - ldr r4, =gUnknown_02038C08 + ldr r4, =gFieldEffectSpawnParams adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 @@ -1777,7 +1777,7 @@ _08154CE4: thumb_func_start sub_8154CEC sub_8154CEC: @ 8154CEC push {r4-r6,lr} - ldr r6, =gUnknown_02038C08 + ldr r6, =gFieldEffectSpawnParams ldrb r0, [r6] ldrb r1, [r6, 0x4] ldrb r2, [r6, 0x8] @@ -1922,7 +1922,7 @@ _08154E0A: thumb_func_start sub_8154E1C sub_8154E1C: @ 8154E1C push {r4,lr} - ldr r4, =gUnknown_02038C08 + ldr r4, =gFieldEffectSpawnParams adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 @@ -1976,7 +1976,7 @@ _08154E78: thumb_func_start oei_water_drop_tall oei_water_drop_tall: @ 8154E8C push {r4,lr} - ldr r4, =gUnknown_02038C08 + ldr r4, =gFieldEffectSpawnParams adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 @@ -2030,7 +2030,7 @@ _08154EE8: thumb_func_start sub_8154EFC sub_8154EFC: @ 8154EFC push {r4-r7,lr} - ldr r7, =gUnknown_02038C08 + ldr r7, =gFieldEffectSpawnParams ldrb r0, [r7] ldrb r1, [r7, 0x4] ldrb r2, [r7, 0x8] @@ -2193,7 +2193,7 @@ oei_ripples: @ 8155054 push {r4,lr} ldr r0, =gFieldEffectObjectTemplatePointers ldr r0, [r0, 0x14] - ldr r4, =gUnknown_02038C08 + ldr r4, =gFieldEffectSpawnParams movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0x4 @@ -2238,7 +2238,7 @@ _081550A0: thumb_func_start sub_81550B4 sub_81550B4: @ 81550B4 push {r4-r6,lr} - ldr r6, =gUnknown_02038C08 + ldr r6, =gFieldEffectSpawnParams ldrb r0, [r6] ldrb r1, [r6, 0x4] ldrb r2, [r6, 0x8] @@ -2393,7 +2393,7 @@ _081551E4: thumb_func_start sub_81551F0 sub_81551F0: @ 81551F0 push {r4,lr} - ldr r4, =gUnknown_02038C08 + ldr r4, =gFieldEffectSpawnParams adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 @@ -2445,7 +2445,7 @@ _08155248: thumb_func_start sub_815525C sub_815525C: @ 815525C push {r4,lr} - ldr r4, =gUnknown_02038C08 + ldr r4, =gFieldEffectSpawnParams adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 @@ -2497,7 +2497,7 @@ _081552B4: thumb_func_start sub_81552C8 sub_81552C8: @ 81552C8 push {r4,lr} - ldr r4, =gUnknown_02038C08 + ldr r4, =gFieldEffectSpawnParams adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 @@ -2549,7 +2549,7 @@ _08155320: thumb_func_start sub_8155334 sub_8155334: @ 8155334 push {r4,lr} - ldr r4, =gUnknown_02038C08 + ldr r4, =gFieldEffectSpawnParams adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 @@ -2603,7 +2603,7 @@ ash: @ 81553A0 push {r4,lr} lsls r2, 16 lsrs r2, 16 - ldr r4, =gUnknown_02038C08 + ldr r4, =gFieldEffectSpawnParams lsls r0, 16 asrs r0, 16 str r0, [r4] @@ -2630,7 +2630,7 @@ ash: @ 81553A0 oei_ash: @ 81553D4 push {r4,r5,lr} sub sp, 0x4 - ldr r5, =gUnknown_02038C08 + ldr r5, =gFieldEffectSpawnParams ldrh r1, [r5] mov r0, sp strh r1, [r0] @@ -2766,7 +2766,7 @@ sub_81554AC: @ 81554AC ldrsh r1, [r4, r2] bl CurrentMapDrawMetatileAt ldr r2, =gMapObjects - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -2809,7 +2809,7 @@ _0815552C: thumb_func_start sub_8155534 sub_8155534: @ 8155534 push {r4,r5,lr} - ldr r4, =gUnknown_02038C08 + ldr r4, =gFieldEffectSpawnParams adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 @@ -3261,7 +3261,7 @@ _08155888: thumb_func_start sub_8155890 sub_8155890: @ 8155890 push {r4,lr} - ldr r4, =gUnknown_02038C08 + ldr r4, =gFieldEffectSpawnParams adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 @@ -3315,7 +3315,7 @@ _081558EC: thumb_func_start sub_8155900 sub_8155900: @ 8155900 push {r4-r7,lr} - ldr r7, =gUnknown_02038C08 + ldr r7, =gFieldEffectSpawnParams ldrb r0, [r7] ldrb r1, [r7, 0x4] ldrb r2, [r7, 0x8] @@ -3505,7 +3505,7 @@ _08155A76: thumb_func_start sub_8155A88 sub_8155A88: @ 8155A88 push {r4,lr} - ldr r4, =gUnknown_02038C08 + ldr r4, =gFieldEffectSpawnParams adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 @@ -3586,7 +3586,7 @@ _08155B20: thumb_func_start sub_8155B2C sub_8155B2C: @ 8155B2C push {r4,lr} - ldr r4, =gUnknown_02038C08 + ldr r4, =gFieldEffectSpawnParams adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 @@ -3689,7 +3689,7 @@ ShowDisguiseFieldEffect: @ 8155BD0 lsrs r6, r1, 24 lsls r2, 24 lsrs r7, r2, 24 - ldr r5, =gUnknown_02038C08 + ldr r5, =gFieldEffectSpawnParams ldrb r0, [r5] ldrb r1, [r5, 0x4] ldrb r2, [r5, 0x8] @@ -3950,7 +3950,7 @@ _08155DD8: thumb_func_start sub_8155DDC sub_8155DDC: @ 8155DDC push {r4,lr} - ldr r4, =gUnknown_02038C08 + ldr r4, =gFieldEffectSpawnParams ldr r0, [r4] adds r0, 0x7 str r0, [r4] diff --git a/asm/field_ground_effect.s b/asm/field_ground_effect.s index e4c6631d4..7d05dbd98 100644 --- a/asm/field_ground_effect.s +++ b/asm/field_ground_effect.s @@ -1166,7 +1166,7 @@ _08096E8C: @ void GroundEffect_SpawnOnTallGrass(struct npc_state *fieldObject, struct obj *object) GroundEffect_SpawnOnTallGrass: @ 8096E90 push {lr} - ldr r3, =gUnknown_02038C08 + ldr r3, =gFieldEffectSpawnParams movs r2, 0x10 ldrsh r1, [r0, r2] str r1, [r3] @@ -1205,7 +1205,7 @@ GroundEffect_SpawnOnTallGrass: @ 8096E90 @ void GroundEffect_StepOnTallGrass(struct npc_state *fieldObject, struct obj *object) GroundEffect_StepOnTallGrass: @ 8096EDC push {lr} - ldr r3, =gUnknown_02038C08 + ldr r3, =gFieldEffectSpawnParams movs r2, 0x10 ldrsh r1, [r0, r2] str r1, [r3] @@ -1244,7 +1244,7 @@ GroundEffect_StepOnTallGrass: @ 8096EDC @ void GroundEffect_SpawnOnLongGrass(struct npc_state *fieldObject, struct obj *object) GroundEffect_SpawnOnLongGrass: @ 8096F28 push {lr} - ldr r3, =gUnknown_02038C08 + ldr r3, =gFieldEffectSpawnParams movs r2, 0x10 ldrsh r1, [r0, r2] str r1, [r3] @@ -1283,7 +1283,7 @@ GroundEffect_SpawnOnLongGrass: @ 8096F28 @ void GroundEffect_StepOnLongGrass(struct npc_state *fieldObject, struct obj *object) GroundEffect_StepOnLongGrass: @ 8096F74 push {lr} - ldr r3, =gUnknown_02038C08 + ldr r3, =gFieldEffectSpawnParams movs r2, 0x10 ldrsh r1, [r0, r2] str r1, [r3] @@ -1413,7 +1413,7 @@ DoTracksGroundEffect_Footprints: @ 8097044 mov r0, sp movs r2, 0x4 bl memcpy - ldr r1, =gUnknown_02038C08 + ldr r1, =gFieldEffectSpawnParams movs r2, 0x14 ldrsh r0, [r5, r2] str r0, [r1] @@ -1449,7 +1449,7 @@ DoTracksGroundEffect_BikeTireTracks: @ 8097094 ldr r0, [r4, 0x14] cmp r1, r0 beq _080970D6 - ldr r2, =gUnknown_02038C08 + ldr r2, =gFieldEffectSpawnParams movs r1, 0x14 ldrsh r0, [r4, r1] str r0, [r2] @@ -1520,7 +1520,7 @@ GroundEffect_JumpOnTallGrass: @ 8097110 sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 - ldr r1, =gUnknown_02038C08 + ldr r1, =gFieldEffectSpawnParams movs r2, 0x10 ldrsh r0, [r5, r2] str r0, [r1] @@ -1562,7 +1562,7 @@ _0809715A: @ void GroundEffect_JumpOnLongGrass(struct npc_state *fieldObject, struct obj *object) GroundEffect_JumpOnLongGrass: @ 8097168 push {lr} - ldr r2, =gUnknown_02038C08 + ldr r2, =gFieldEffectSpawnParams movs r3, 0x10 ldrsh r1, [r0, r3] str r1, [r2] @@ -1585,7 +1585,7 @@ GroundEffect_JumpOnLongGrass: @ 8097168 @ void GroundEffect_JumpOnShallowWater(struct npc_state *fieldObject, struct obj *object) GroundEffect_JumpOnShallowWater: @ 8097190 push {r4,lr} - ldr r3, =gUnknown_02038C08 + ldr r3, =gFieldEffectSpawnParams movs r4, 0x10 ldrsh r2, [r0, r4] str r2, [r3] @@ -1611,7 +1611,7 @@ GroundEffect_JumpOnShallowWater: @ 8097190 @ void GroundEffect_JumpOnWater(struct npc_state *fieldObject, struct obj *object) GroundEffect_JumpOnWater: @ 80971C0 push {r4,lr} - ldr r3, =gUnknown_02038C08 + ldr r3, =gFieldEffectSpawnParams movs r4, 0x10 ldrsh r2, [r0, r4] str r2, [r3] @@ -1637,7 +1637,7 @@ GroundEffect_JumpOnWater: @ 80971C0 @ void GroundEffect_JumpLandingDust(struct npc_state *fieldObject, struct obj *object) GroundEffect_JumpLandingDust: @ 80971F0 push {r4,lr} - ldr r3, =gUnknown_02038C08 + ldr r3, =gFieldEffectSpawnParams movs r4, 0x10 ldrsh r2, [r0, r4] str r2, [r3] @@ -1685,7 +1685,7 @@ GroundEffect_HotSprings: @ 8097230 @ void GroundEffect_Seaweed(struct npc_state *fieldObject, struct obj *object) GroundEffect_Seaweed: @ 8097240 push {lr} - ldr r2, =gUnknown_02038C08 + ldr r2, =gFieldEffectSpawnParams movs r3, 0x10 ldrsh r1, [r0, r3] str r1, [r2] diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s deleted file mode 100644 index 223e29ad7..000000000 --- a/asm/field_map_obj.s +++ /dev/null @@ -1,20270 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start npc_clear_ids_and_state -npc_clear_ids_and_state: @ 808D3F0 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0 - movs r2, 0x24 - bl memset - movs r0, 0xFF - strb r0, [r4, 0x8] - movs r0, 0x1 - negs r0, r0 - strb r0, [r4, 0x9] - strb r0, [r4, 0xA] - strb r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - thumb_func_end npc_clear_ids_and_state - - thumb_func_start npcs_clear_ids_and_state -npcs_clear_ids_and_state: @ 808D410 - push {r4,r5,lr} - movs r4, 0 - ldr r5, =gMapObjects -_0808D416: - lsls r0, r4, 3 - adds r0, r4 - lsls r0, 2 - adds r0, r5 - bl npc_clear_ids_and_state - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bls _0808D416 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end npcs_clear_ids_and_state - - thumb_func_start sub_808D438 -sub_808D438: @ 808D438 - push {lr} - bl strange_npc_table_clear - bl npcs_clear_ids_and_state - bl ClearPlayerAvatarInfo - bl sub_808D450 - pop {r0} - bx r0 - thumb_func_end sub_808D438 - - thumb_func_start sub_808D450 -sub_808D450: @ 808D450 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - ldr r0, =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x54] - mov r9, r0 - movs r1, 0 - movs r2, 0 - movs r3, 0x1F - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gSprites - mov r10, r1 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - add r4, r10 - ldrb r1, [r4, 0x1] - movs r5, 0x4 - negs r5, r5 - adds r0, r5, 0 - ands r0, r1 - movs r1, 0x1 - mov r8, r1 - mov r1, r8 - orrs r0, r1 - strb r0, [r4, 0x1] - adds r0, r4, 0 - bl InitSpriteAffineAnim - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAffineAnim - adds r4, 0x3E - ldrb r0, [r4] - movs r6, 0x4 - orrs r0, r6 - strb r0, [r4] - mov r0, r9 - movs r1, 0 - movs r2, 0 - movs r3, 0x1F - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - add r4, r10 - ldrb r0, [r4, 0x1] - ands r5, r0 - mov r0, r8 - orrs r5, r0 - strb r5, [r4, 0x1] - adds r0, r4, 0 - bl InitSpriteAffineAnim - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - adds r4, 0x3E - ldrb r0, [r4] - orrs r0, r6 - strb r0, [r4] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_808D450 - - thumb_func_start sub_808D4F4 -sub_808D4F4: @ 808D4F4 - push {lr} - movs r1, 0 - ldr r2, =gMapObjects - ldrb r0, [r2] - b _0808D518 - .pool -_0808D504: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xF - bhi _0808D51E - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] -_0808D518: - lsls r0, 31 - cmp r0, 0 - bne _0808D504 -_0808D51E: - adds r0, r1, 0 - pop {r1} - bx r1 - thumb_func_end sub_808D4F4 - - thumb_func_start GetFieldObjectIdByLocalIdAndMap -@ u8 GetFieldObjectIdByLocalIdAndMap(u8 localId, u8 mapId, u8 mapGroupId) -GetFieldObjectIdByLocalIdAndMap: @ 808D524 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - cmp r0, 0xFE - bls _0808D53C - bl GetFieldObjectIdByLocalId - b _0808D540 -_0808D53C: - bl GetFieldObjectIdByLocalIdAndMapInternal -_0808D540: - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end GetFieldObjectIdByLocalIdAndMap - - thumb_func_start TryGetFieldObjectIdByLocalIdAndMap -@ bool8 TryGetFieldObjectIdByLocalIdAndMap(u8 localId, u8 mapId, u8 mapGroupId, u8 *fieldObjectId) -TryGetFieldObjectIdByLocalIdAndMap: @ 808D548 - push {r4,lr} - adds r4, r3, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - bl GetFieldObjectIdByLocalIdAndMap - strb r0, [r4] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x10 - beq _0808D56A - movs r0, 0 - b _0808D56C -_0808D56A: - movs r0, 0x1 -_0808D56C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end TryGetFieldObjectIdByLocalIdAndMap - - thumb_func_start GetFieldObjectIdByXY -@ u8 GetFieldObjectIdByXY(s16 x, s16 y) -GetFieldObjectIdByXY: @ 808D574 - push {r4-r6,lr} - movs r3, 0 - ldr r5, =gMapObjects - lsls r0, 16 - asrs r4, r0, 16 - lsls r1, 16 - asrs r1, 16 -_0808D582: - lsls r0, r3, 3 - adds r0, r3 - lsls r0, 2 - adds r2, r0, r5 - ldrb r0, [r2] - lsls r0, 31 - cmp r0, 0 - beq _0808D5A2 - movs r6, 0x10 - ldrsh r0, [r2, r6] - cmp r0, r4 - bne _0808D5A2 - movs r6, 0x12 - ldrsh r0, [r2, r6] - cmp r0, r1 - beq _0808D5AC -_0808D5A2: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0xF - bls _0808D582 -_0808D5AC: - adds r0, r3, 0 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end GetFieldObjectIdByXY - - thumb_func_start GetFieldObjectIdByLocalIdAndMapInternal -@ u8 GetFieldObjectIdByLocalIdAndMapInternal(u8 localId, u8 mapId, u8 mapGroupId) -GetFieldObjectIdByLocalIdAndMapInternal: @ 808D5B8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - lsls r2, 24 - lsrs r2, 24 - movs r1, 0 - ldr r6, =gMapObjects -_0808D5CA: - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r3, r0, r6 - ldrb r0, [r3] - lsls r0, 31 - cmp r0, 0 - beq _0808D5F4 - ldrb r0, [r3, 0x8] - cmp r0, r5 - bne _0808D5F4 - ldrb r0, [r3, 0x9] - cmp r0, r4 - bne _0808D5F4 - ldrb r0, [r3, 0xA] - cmp r0, r2 - bne _0808D5F4 - adds r0, r1, 0 - b _0808D600 - .pool -_0808D5F4: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xF - bls _0808D5CA - movs r0, 0x10 -_0808D600: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end GetFieldObjectIdByLocalIdAndMapInternal - - thumb_func_start GetFieldObjectIdByLocalId -@ u8 GetFieldObjectIdByLocalId(u8 localId) -GetFieldObjectIdByLocalId: @ 808D608 - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - movs r2, 0 - ldr r4, =gMapObjects -_0808D612: - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - adds r1, r0, r4 - ldrb r0, [r1] - lsls r0, 31 - cmp r0, 0 - beq _0808D630 - ldrb r0, [r1, 0x8] - cmp r0, r3 - bne _0808D630 - adds r0, r2, 0 - b _0808D63C - .pool -_0808D630: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xF - bls _0808D612 - movs r0, 0x10 -_0808D63C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetFieldObjectIdByLocalId - - thumb_func_start InitFieldObjectStateFromTemplate -@ u8 InitFieldObjectStateFromTemplate(struct FieldObjectTemplate *fieldObjectTemplate, u8 mapId, u8 mapGroupId) -InitFieldObjectStateFromTemplate: @ 808D644 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - adds r5, r0, 0 - lsls r1, 24 - lsrs r6, r1, 24 - lsls r2, 24 - lsrs r7, r2, 24 - ldrb r0, [r5] - adds r1, r6, 0 - adds r2, r7, 0 - mov r3, sp - bl GetAvailableFieldObjectSlot - lsls r0, 24 - cmp r0, 0 - beq _0808D66E - movs r0, 0x10 - b _0808D762 -_0808D66E: - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r4, r0, r1 - adds r0, r4, 0 - bl npc_clear_ids_and_state - ldrh r3, [r5, 0x4] - adds r3, 0x7 - lsls r3, 16 - lsrs r3, 16 - ldrh r2, [r5, 0x6] - adds r2, 0x7 - lsls r2, 16 - lsrs r2, 16 - ldrb r0, [r4] - movs r1, 0x1 - orrs r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r4] - ldrb r0, [r5, 0x1] - strb r0, [r4, 0x5] - ldrb r0, [r5, 0x9] - strb r0, [r4, 0x6] - ldrb r0, [r5] - strb r0, [r4, 0x8] - strb r6, [r4, 0x9] - strb r7, [r4, 0xA] - strh r3, [r4, 0xC] - strh r2, [r4, 0xE] - strh r3, [r4, 0x10] - strh r2, [r4, 0x12] - strh r3, [r4, 0x14] - strh r2, [r4, 0x16] - ldrb r0, [r5, 0x8] - movs r7, 0xF - adds r1, r7, 0 - ands r1, r0 - ldrb r2, [r4, 0xB] - movs r0, 0x10 - negs r0, r0 - mov r8, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0xB] - ldrb r1, [r5, 0x8] - lsls r1, 4 - ands r0, r7 - orrs r0, r1 - strb r0, [r4, 0xB] - ldrb r1, [r5, 0xA] - lsls r1, 28 - movs r0, 0xF - mov r9, r0 - lsrs r1, 28 - ldrb r2, [r4, 0x19] - mov r0, r8 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x19] - ldrb r1, [r5, 0xA] - lsrs r1, 4 - lsls r1, 4 - ands r0, r7 - orrs r0, r1 - strb r0, [r4, 0x19] - ldrh r0, [r5, 0xC] - strb r0, [r4, 0x7] - ldrh r0, [r5, 0xE] - strb r0, [r4, 0x1D] - ldr r1, =gUnknown_085055CD - ldrb r0, [r5, 0x9] - adds r0, r1 - ldrb r1, [r0] - adds r0, r4, 0 - adds r0, 0x20 - strb r1, [r0] - ldrb r1, [r0] - adds r0, r4, 0 - bl FieldObjectSetDirection - adds r0, r4, 0 - bl FieldObjectHandleDynamicGraphicsId - ldr r1, =gUnknown_0850557C - ldrb r0, [r4, 0x6] - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _0808D75E - ldrb r2, [r4, 0x19] - adds r0, r7, 0 - ands r0, r2 - cmp r0, 0 - bne _0808D746 - lsls r0, r2, 28 - lsrs r0, 28 - adds r0, 0x1 - mov r1, r9 - ands r0, r1 - mov r1, r8 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x19] -_0808D746: - ldrb r2, [r4, 0x19] - movs r0, 0xF0 - ands r0, r2 - cmp r0, 0 - bne _0808D75E - lsrs r1, r2, 4 - adds r1, 0x1 - lsls r1, 4 - adds r0, r7, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x19] -_0808D75E: - mov r0, sp - ldrb r0, [r0] -_0808D762: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end InitFieldObjectStateFromTemplate - - thumb_func_start sub_808D77C -sub_808D77C: @ 808D77C - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r4, =gMapHeader - ldr r0, [r4, 0x4] - cmp r0, 0 - beq _0808D7FE - bl InBattlePyramid - lsls r0, 24 - cmp r0, 0 - beq _0808D7A8 - bl sub_81AAA40 - lsls r0, 24 - lsrs r6, r0, 24 - b _0808D7CA - .pool -_0808D7A8: - bl InTrainerHill - cmp r0, 0 - beq _0808D7C6 - movs r6, 0x2 - b _0808D7CA -_0808D7B4: - ldr r0, [r7] - ldrb r1, [r0, 0x5] - ldrb r2, [r0, 0x4] - adds r0, r4, 0 - bl InitFieldObjectStateFromTemplate - lsls r0, 24 - lsrs r0, 24 - b _0808D800 -_0808D7C6: - ldr r0, [r4, 0x4] - ldrb r6, [r0] -_0808D7CA: - movs r5, 0 - cmp r5, r6 - bcs _0808D7FE - ldr r7, =gSaveBlock1Ptr -_0808D7D2: - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 3 - movs r1, 0xC7 - lsls r1, 4 - adds r0, r1 - ldr r1, [r7] - adds r4, r1, r0 - ldrb r0, [r4] - cmp r0, r8 - bne _0808D7F4 - ldrh r0, [r4, 0x14] - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0808D7B4 -_0808D7F4: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, r6 - bcc _0808D7D2 -_0808D7FE: - movs r0, 0x10 -_0808D800: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_808D77C - - thumb_func_start GetAvailableFieldObjectSlot -@ bool8 GetAvailableFieldObjectSlot(u16 localId, u8 mapId, u8 mapGroupId, u8 *fieldObjectId) -GetAvailableFieldObjectSlot: @ 808D810 - push {r4-r7,lr} - mov r12, r3 - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 24 - lsrs r4, r2, 24 - movs r2, 0 - ldr r1, =gMapObjects - ldrb r0, [r1] - lsls r0, 31 - adds r7, r1, 0 - cmp r0, 0 - beq _0808D864 - adds r3, r1, 0 -_0808D830: - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - adds r1, r0, r3 - ldrb r0, [r1, 0x8] - cmp r0, r6 - bne _0808D84A - ldrb r0, [r1, 0x9] - cmp r0, r5 - bne _0808D84A - ldrb r0, [r1, 0xA] - cmp r0, r4 - beq _0808D868 -_0808D84A: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xF - bhi _0808D868 - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - adds r0, r7 - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - bne _0808D830 -_0808D864: - cmp r2, 0xF - bls _0808D870 -_0808D868: - movs r0, 0x1 - b _0808D8A4 - .pool -_0808D870: - mov r0, r12 - strb r2, [r0] - ldr r1, =gMapObjects -_0808D876: - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - adds r3, r0, r1 - ldrb r0, [r3] - lsls r0, 31 - cmp r0, 0 - beq _0808D898 - ldrb r0, [r3, 0x8] - cmp r0, r6 - bne _0808D898 - ldrb r0, [r3, 0x9] - cmp r0, r5 - bne _0808D898 - ldrb r0, [r3, 0xA] - cmp r0, r4 - beq _0808D868 -_0808D898: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xF - bls _0808D876 - movs r0, 0 -_0808D8A4: - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end GetAvailableFieldObjectSlot - - thumb_func_start RemoveFieldObject -@ void RemoveFieldObject(npc_state *fieldObject) -RemoveFieldObject: @ 808D8B0 - push {lr} - ldrb r2, [r0] - movs r1, 0x2 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - bl RemoveFieldObjectInternal - pop {r0} - bx r0 - thumb_func_end RemoveFieldObject - - thumb_func_start RemoveFieldObjectByLocalIdAndMap -@ void RemoveFieldObjectByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapBank) -RemoveFieldObjectByLocalIdAndMap: @ 808D8C4 - push {lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _0808D902 - mov r0, sp - ldrb r0, [r0] - bl GetFieldObjectFlagIdByFieldObjectId - lsls r0, 16 - lsrs r0, 16 - bl FlagSet - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r0, r1 - bl RemoveFieldObject -_0808D902: - add sp, 0x4 - pop {r0} - bx r0 - .pool - thumb_func_end RemoveFieldObjectByLocalIdAndMap - - thumb_func_start RemoveFieldObjectInternal -@ void RemoveFieldObjectInternal(npc_state *fieldObject) -RemoveFieldObjectInternal: @ 808D90C - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - ldrb r0, [r4, 0x5] - bl GetFieldObjectGraphicsInfo - ldrh r2, [r0, 0x6] - ldr r1, =0xffff0000 - ldr r0, [sp, 0x4] - ands r0, r1 - orrs r0, r2 - str r0, [sp, 0x4] - ldr r2, =gSprites - ldrb r1, [r4, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r2, 0 - adds r1, 0xC - adds r0, r1 - mov r1, sp - str r1, [r0] - ldrb r1, [r4, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - bl DestroySprite - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end RemoveFieldObjectInternal - - thumb_func_start sub_808D958 -sub_808D958: @ 808D958 - push {r4,lr} - movs r4, 0 -_0808D95C: - ldr r0, =gUnknown_02037590 - ldrb r0, [r0, 0x5] - cmp r4, r0 - beq _0808D972 - lsls r0, r4, 3 - adds r0, r4 - lsls r0, 2 - ldr r1, =gMapObjects - adds r0, r1 - bl RemoveFieldObject -_0808D972: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bls _0808D95C - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_808D958 - - thumb_func_start SpawnFieldObjectInternal -@ u8 SpawnFieldObjectInternal(struct FieldObjectTemplate *romFieldObject, struct objtemplate *template, int mapId, int mapGroupId, u16 movingCameraOffsetX, u16 movingCameraOffsetY) -SpawnFieldObjectInternal: @ 808D98C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r8, r1 - adds r1, r2, 0 - adds r2, r3, 0 - ldr r3, [sp, 0x24] - ldr r4, [sp, 0x28] - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 16 - lsrs r3, 16 - mov r10, r3 - lsls r4, 16 - lsrs r4, 16 - str r4, [sp] - bl InitFieldObjectStateFromTemplate - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - cmp r0, 0x10 - bne _0808D9C8 - movs r0, 0x10 - b _0808DB2C -_0808D9C8: - mov r0, r9 - lsls r4, r0, 3 - adds r0, r4, r0 - lsls r0, 2 - ldr r1, =gMapObjects - adds r6, r0, r1 - ldrb r0, [r6, 0x5] - bl GetFieldObjectGraphicsInfo - adds r7, r0, 0 - ldrb r0, [r7, 0xC] - lsls r0, 28 - lsrs r5, r0, 28 - cmp r5, 0 - bne _0808D9F4 - ldrh r0, [r7, 0x2] - movs r1, 0 - bl npc_load_two_palettes__no_record - b _0808DA16 - .pool -_0808D9F4: - cmp r5, 0xA - bne _0808DA02 - ldrh r0, [r7, 0x2] - movs r1, 0xA - bl npc_load_two_palettes__and_record - b _0808DA16 -_0808DA02: - cmp r5, 0xF - bls _0808DA16 - adds r0, r5, 0 - subs r0, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - ldrh r0, [r7, 0x2] - adds r1, r5, 0 - bl sub_808EAB0 -_0808DA16: - ldrb r0, [r6, 0x6] - cmp r0, 0x4C - bne _0808DA24 - ldrb r0, [r6, 0x1] - movs r1, 0x20 - orrs r0, r1 - strb r0, [r6, 0x1] -_0808DA24: - ldr r1, =0x0000ffff - adds r0, r1, 0 - mov r2, r8 - strh r0, [r2, 0x2] - mov r0, r8 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - cmp r0, 0x40 - bne _0808DA64 - ldr r0, =gMapObjects - mov r2, r9 - adds r1, r4, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - movs r0, 0x10 - b _0808DB2C - .pool -_0808DA64: - mov r1, r8 - lsls r0, r1, 4 - add r0, r8 - lsls r0, 2 - ldr r1, =gSprites - adds r4, r0, r1 - mov r2, r10 - lsls r0, r2, 16 - asrs r0, 16 - ldrh r1, [r6, 0x10] - adds r0, r1 - lsls r0, 16 - asrs r0, 16 - ldr r2, [sp] - lsls r1, r2, 16 - asrs r1, 16 - ldrh r2, [r6, 0x12] - adds r1, r2 - lsls r1, 16 - asrs r1, 16 - adds r2, r4, 0 - adds r2, 0x20 - adds r3, r4, 0 - adds r3, 0x22 - bl sub_8092FF0 - ldrh r0, [r7, 0x8] - lsls r0, 16 - asrs r0, 17 - negs r0, r0 - adds r1, r4, 0 - adds r1, 0x28 - strb r0, [r1] - ldrh r0, [r7, 0xA] - lsls r0, 16 - asrs r0, 17 - negs r0, r0 - adds r2, r4, 0 - adds r2, 0x29 - strb r0, [r2] - ldrh r0, [r4, 0x20] - adds r0, 0x8 - strh r0, [r4, 0x20] - ldrh r1, [r4, 0x22] - adds r1, 0x10 - movs r0, 0 - ldrsb r0, [r2, r0] - adds r0, r1 - strh r0, [r4, 0x22] - lsls r2, r5, 4 - ldrb r1, [r4, 0x5] - movs r0, 0xF - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x5] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2] - mov r0, r9 - strh r0, [r4, 0x2E] - mov r1, r8 - strb r1, [r6, 0x4] - ldrb r1, [r7, 0xC] - lsls r1, 25 - lsrs r1, 31 - lsls r1, 4 - ldrb r2, [r6, 0x1] - movs r0, 0x11 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r6, 0x1] - lsls r0, 27 - cmp r0, 0 - blt _0808DB16 - ldrb r0, [r6, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl FieldObjectDirectionToImageAnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim -_0808DB16: - ldrb r0, [r6, 0xB] - lsrs r0, 4 - adds r1, r4, 0 - movs r2, 0x1 - bl SetObjectSubpriorityByZCoord - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_8096518 - mov r0, r9 -_0808DB2C: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end SpawnFieldObjectInternal - - thumb_func_start SpawnFieldObject -@ u8 SpawnFieldObject(struct FieldObjectTemplate *romNpc, u8 mapId, u8 mapGroupId, u16 movingCameraOffsetX, u16 movingCameraOffsetY) -SpawnFieldObject: @ 808DB40 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x2C - mov r9, r0 - adds r6, r1, 0 - mov r8, r2 - adds r4, r3, 0 - ldr r5, [sp, 0x48] - lsls r6, 24 - lsrs r6, 24 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - movs r0, 0 - str r0, [sp, 0x20] - mov r1, r9 - ldrb r0, [r1, 0x1] - bl GetFieldObjectGraphicsInfo - adds r7, r0, 0 - add r2, sp, 0x20 - mov r0, r9 - add r1, sp, 0x8 - bl MakeObjectTemplateFromFieldObjectTemplate - ldrh r3, [r7, 0x6] - ldr r2, =0xffff0000 - add r1, sp, 0x24 - ldr r0, [r1, 0x4] - ands r0, r2 - orrs r0, r3 - str r0, [r1, 0x4] - str r1, [sp, 0x14] - lsls r4, 16 - asrs r4, 16 - str r4, [sp] - lsls r5, 16 - asrs r5, 16 - str r5, [sp, 0x4] - mov r0, r9 - add r1, sp, 0x8 - adds r2, r6, 0 - mov r3, r8 - bl SpawnFieldObjectInternal - lsls r0, 24 - lsrs r2, r0, 24 - adds r5, r2, 0 - cmp r2, 0x10 - bne _0808DBBC - movs r0, 0x10 - b _0808DBF2 - .pool -_0808DBBC: - ldr r4, =gSprites - ldr r1, =gMapObjects - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - adds r3, r0, r1 - ldrb r1, [r3, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r4, 0 - adds r1, 0xC - adds r0, r1 - ldr r1, [r7, 0x1C] - str r1, [r0] - ldr r2, [sp, 0x20] - cmp r2, 0 - beq _0808DBF0 - ldrb r1, [r3, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r1, r2, 0 - bl SetSubspriteTables -_0808DBF0: - adds r0, r5, 0 -_0808DBF2: - add sp, 0x2C - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end SpawnFieldObject - - thumb_func_start SpawnSpecialFieldObject -@ u8 SpawnSpecialFieldObject(struct FieldObjectTemplate *romFieldObject) -SpawnSpecialFieldObject: @ 808DC08 - push {r4-r6,lr} - sub sp, 0x8 - adds r5, r0, 0 - mov r4, sp - adds r4, 0x6 - add r0, sp, 0x4 - adds r1, r4, 0 - bl GetFieldObjectMovingCameraOffset - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrb r1, [r0, 0x5] - ldrb r2, [r0, 0x4] - add r0, sp, 0x4 - movs r6, 0 - ldrsh r3, [r0, r6] - movs r6, 0 - ldrsh r0, [r4, r6] - str r0, [sp] - adds r0, r5, 0 - bl SpawnFieldObject - lsls r0, 24 - lsrs r0, 24 - add sp, 0x8 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end SpawnSpecialFieldObject - - thumb_func_start SpawnSpecialFieldObjectParametrized -@ u8 SpawnSpecialFieldObjectParametrized(u8 graphicsId, u8 movementBehavior, u8 localId, u16 x, u16 y, u8 z) -SpawnSpecialFieldObjectParametrized: @ 808DC44 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x18 - ldr r4, [sp, 0x2C] - ldr r5, [sp, 0x30] - mov r8, r5 - lsls r0, 24 - lsrs r0, 24 - lsls r3, 16 - ldr r5, =0xfff90000 - adds r3, r5 - lsrs r3, 16 - lsls r4, 16 - adds r4, r5 - lsrs r4, 16 - mov r5, sp - movs r6, 0 - strb r2, [r5] - mov r2, sp - strb r0, [r2, 0x1] - mov r0, sp - strb r6, [r0, 0x2] - movs r5, 0 - strh r3, [r0, 0x4] - strh r4, [r0, 0x6] - mov r2, r8 - strb r2, [r0, 0x8] - strb r1, [r0, 0x9] - mov r2, sp - ldrb r1, [r2, 0xA] - movs r0, 0x10 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0xA] - mov r0, sp - strb r5, [r0, 0xA] - strh r6, [r0, 0xC] - strh r6, [r0, 0xE] - bl SpawnSpecialFieldObject - lsls r0, 24 - lsrs r0, 24 - add sp, 0x18 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end SpawnSpecialFieldObjectParametrized - - thumb_func_start show_sprite -show_sprite: @ 808DCAC - push {r4-r7,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r2, 24 - lsrs r6, r2, 24 - adds r1, r7, 0 - adds r2, r6, 0 - bl GetFieldObjectTemplateByLocalIdAndMap - adds r5, r0, 0 - cmp r5, 0 - beq _0808DCF2 - mov r4, sp - adds r4, 0x6 - add r0, sp, 0x4 - adds r1, r4, 0 - bl GetFieldObjectMovingCameraOffset - add r0, sp, 0x4 - movs r1, 0 - ldrsh r3, [r0, r1] - movs r1, 0 - ldrsh r0, [r4, r1] - str r0, [sp] - adds r0, r5, 0 - adds r1, r7, 0 - adds r2, r6, 0 - bl SpawnFieldObject - lsls r0, 24 - lsrs r0, 24 - b _0808DCF4 -_0808DCF2: - movs r0, 0x10 -_0808DCF4: - add sp, 0x8 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end show_sprite - - thumb_func_start MakeObjectTemplateFromFieldObjectGraphicsInfo -@ void MakeObjectTemplateFromFieldObjectGraphicsInfo(u8 graphicsId, void ( *callback)(), struct objtemplate *objectTemplate, SpriteOamTable **spriteOamTables) -MakeObjectTemplateFromFieldObjectGraphicsInfo: @ 808DCFC - push {r4-r6,lr} - adds r5, r1, 0 - adds r4, r2, 0 - adds r6, r3, 0 - lsls r0, 24 - lsrs r0, 24 - bl GetFieldObjectGraphicsInfo - ldrh r1, [r0] - strh r1, [r4] - ldrh r1, [r0, 0x2] - strh r1, [r4, 0x2] - ldr r1, [r0, 0x10] - str r1, [r4, 0x4] - ldr r1, [r0, 0x18] - str r1, [r4, 0x8] - ldr r1, [r0, 0x1C] - str r1, [r4, 0xC] - ldr r1, [r0, 0x20] - str r1, [r4, 0x10] - str r5, [r4, 0x14] - ldr r0, [r0, 0x14] - str r0, [r6] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end MakeObjectTemplateFromFieldObjectGraphicsInfo - - thumb_func_start MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex -@ void MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex(u16 graphicsId, u16 callbackIndex, struct objtemplate *objectTemplate, SpriteOamTable **spriteOamTables) -MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex: @ 808DD30 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - ldr r4, =gUnknown_08505438 - lsrs r1, 14 - adds r1, r4 - ldr r1, [r1] - bl MakeObjectTemplateFromFieldObjectGraphicsInfo - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex - - thumb_func_start MakeObjectTemplateFromFieldObjectTemplate -@ void MakeObjectTemplateFromFieldObjectTemplate(struct FieldObjectTemplate *fieldObjectTemplate, struct objtemplate *objectTemplate, SpriteOamTable **spriteOamTables) -MakeObjectTemplateFromFieldObjectTemplate: @ 808DD50 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r3, r2, 0 - ldrb r0, [r4, 0x1] - ldrb r1, [r4, 0x9] - adds r2, r5, 0 - bl MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end MakeObjectTemplateFromFieldObjectTemplate - - thumb_func_start AddPseudoFieldObject -@ void AddPseudoFieldObject(u8 graphicsId, void ( *callback)(), u16 x, u16 y, u8 subpriority) -AddPseudoFieldObject: @ 808DD68 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r0, [sp, 0x20] - lsls r4, 16 - lsrs r4, 16 - lsls r2, 16 - lsrs r2, 16 - mov r8, r2 - lsls r3, 16 - lsrs r7, r3, 16 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - movs r0, 0x18 - bl Alloc - adds r6, r0, 0 - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - mov r3, sp - bl MakeObjectTemplateFromFieldObjectGraphicsInfo - ldrh r1, [r6, 0x2] - ldr r0, =0x0000ffff - cmp r1, r0 - beq _0808DDAE - adds r0, r1, 0 - bl sub_808E894 -_0808DDAE: - mov r0, r8 - lsls r1, r0, 16 - asrs r1, 16 - lsls r2, r7, 16 - asrs r2, 16 - adds r0, r6, 0 - mov r3, r9 - bl CreateSprite - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r6, 0 - bl Free - cmp r5, 0x40 - beq _0808DDF2 - ldr r1, [sp] - cmp r1, 0 - beq _0808DDF2 - lsls r4, r5, 4 - adds r4, r5 - lsls r4, 2 - ldr r0, =gSprites - adds r4, r0 - adds r0, r4, 0 - bl SetSubspriteTables - adds r4, 0x42 - ldrb r1, [r4] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x80 - orrs r0, r1 - strb r0, [r4] -_0808DDF2: - adds r0, r5, 0 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end AddPseudoFieldObject - - thumb_func_start sprite_new -sprite_new: @ 808DE0C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - adds r5, r0, 0 - ldr r0, [sp, 0x40] - ldr r4, [sp, 0x44] - lsls r5, 24 - lsrs r5, 24 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - add r1, sp, 0x18 - mov r8, r1 - strh r2, [r1] - mov r6, sp - adds r6, 0x1A - strh r3, [r6] - lsls r0, 24 - lsrs r7, r0, 24 - lsls r4, 24 - lsrs r4, 24 - mov r10, r4 - adds r0, r5, 0 - bl GetFieldObjectGraphicsInfo - adds r4, r0, 0 - ldr r1, =sub_8097AC8 - add r3, sp, 0x1C - adds r0, r5, 0 - mov r2, sp - bl MakeObjectTemplateFromFieldObjectGraphicsInfo - mov r1, sp - ldr r2, =0x0000ffff - adds r0, r2, 0 - strh r0, [r1, 0x2] - mov r1, r8 - movs r2, 0 - ldrsh r0, [r1, r2] - adds r0, 0x7 - strh r0, [r1] - movs r1, 0 - ldrsh r0, [r6, r1] - adds r0, 0x7 - strh r0, [r6] - mov r0, r8 - adds r1, r6, 0 - movs r2, 0x8 - movs r3, 0x10 - bl sub_80930E0 - mov r2, r8 - movs r0, 0 - ldrsh r1, [r2, r0] - movs r0, 0 - ldrsh r2, [r6, r0] - mov r0, sp - movs r3, 0 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x40 - beq _0808DF6C - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - ldr r1, =gSprites - adds r5, r0, r1 - ldrh r0, [r4, 0x8] - lsls r0, 16 - asrs r0, 17 - negs r0, r0 - adds r1, r5, 0 - adds r1, 0x28 - strb r0, [r1] - ldrh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 17 - negs r0, r0 - adds r1, 0x1 - strb r0, [r1] - movs r0, 0 - ldrsb r0, [r1, r0] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x22] - ldrb r0, [r4, 0xC] - lsls r0, 28 - lsrs r0, 24 - ldrb r1, [r5, 0x5] - movs r3, 0xF - adds r2, r3, 0 - ands r2, r1 - orrs r2, r0 - strb r2, [r5, 0x5] - lsls r1, r2, 24 - lsrs r0, r1, 28 - cmp r0, 0xF - bls _0808DEE4 - subs r0, 0x10 - lsls r0, 4 - ands r2, r3 - orrs r2, r0 - strb r2, [r5, 0x5] -_0808DEE4: - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2] - mov r2, r9 - strh r2, [r5, 0x2E] - strh r7, [r5, 0x30] - ldrb r1, [r4, 0xC] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0xA - bne _0808DF18 - ldrh r0, [r4, 0x2] - lsls r1, 28 - lsrs r1, 28 - bl npc_load_two_palettes__and_record - b _0808DF2C - .pool -_0808DF18: - lsls r1, 28 - lsrs r0, r1, 28 - cmp r0, 0xF - bls _0808DF2C - ldrh r0, [r4, 0x2] - lsrs r2, r1, 28 - movs r1, 0xF0 - orrs r1, r2 - bl sub_808EAB0 -_0808DF2C: - ldr r1, [sp, 0x1C] - cmp r1, 0 - beq _0808DF48 - adds r0, r5, 0 - bl SetSubspriteTables - adds r2, r5, 0 - adds r2, 0x42 - ldrb r0, [r2] - movs r1, 0x3F - ands r1, r0 - movs r0, 0x80 - orrs r1, r0 - strb r1, [r2] -_0808DF48: - adds r0, r5, 0 - adds r1, r7, 0 - bl InitObjectPriorityByZCoord - adds r0, r7, 0 - adds r1, r5, 0 - movs r2, 0x1 - bl SetObjectSubpriorityByZCoord - mov r0, r10 - bl FieldObjectDirectionToImageAnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl StartSpriteAnim -_0808DF6C: - adds r0, r6, 0 - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sprite_new - - thumb_func_start SpawnFieldObjectsInView -@ void SpawnFieldObjectsInView(u16 movingCameraOffsetX, u16 movingCameraOffsetY) -SpawnFieldObjectsInView: @ 808DF80 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x4] - lsls r1, 16 - lsrs r1, 16 - str r1, [sp, 0x8] - ldr r5, =gMapHeader - ldr r0, [r5, 0x4] - cmp r0, 0 - beq _0808E078 - ldr r0, =gSaveBlock1Ptr - ldr r2, [r0] - ldrh r1, [r2] - subs r0, r1, 0x2 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - adds r1, 0x11 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp, 0xC] - ldrh r4, [r2, 0x2] - adds r0, r4, 0 - adds r0, 0x10 - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - bl InBattlePyramid - lsls r0, 24 - cmp r0, 0 - beq _0808DFE0 - bl sub_81AAA40 - lsls r0, 24 - lsrs r6, r0, 24 - b _0808DFF0 - .pool -_0808DFE0: - bl InTrainerHill - cmp r0, 0 - beq _0808DFEC - movs r6, 0x2 - b _0808DFF0 -_0808DFEC: - ldr r0, [r5, 0x4] - ldrb r6, [r0] -_0808DFF0: - movs r5, 0 - cmp r5, r6 - bcs _0808E078 - lsls r0, r4, 16 - asrs r0, 16 - mov r9, r0 - mov r1, r8 - lsls r0, r1, 16 - asrs r0, 16 - mov r8, r0 -_0808E004: - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 3 - movs r2, 0xC7 - lsls r2, 4 - adds r0, r2 - ldr r3, =gSaveBlock1Ptr - ldr r1, [r3] - adds r4, r1, r0 - ldrh r0, [r4, 0x4] - adds r0, 0x7 - lsls r0, 16 - lsrs r2, r0, 16 - ldrh r0, [r4, 0x6] - adds r0, 0x7 - lsls r0, 16 - asrs r1, r0, 16 - cmp r9, r1 - bgt _0808E06E - mov r7, r10 - lsls r0, r7, 16 - asrs r0, 16 - cmp r0, r1 - blt _0808E06E - lsls r0, r2, 16 - asrs r1, r0, 16 - cmp r8, r1 - bgt _0808E06E - ldr r2, [sp, 0xC] - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, r1 - blt _0808E06E - ldrh r0, [r4, 0x14] - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _0808E06E - ldr r3, =gSaveBlock1Ptr - ldr r0, [r3] - ldrb r1, [r0, 0x5] - ldrb r2, [r0, 0x4] - ldr r7, [sp, 0x4] - lsls r3, r7, 16 - ldr r7, [sp, 0x8] - lsls r0, r7, 16 - asrs r0, 16 - str r0, [sp] - adds r0, r4, 0 - asrs r3, 16 - bl SpawnFieldObject -_0808E06E: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, r6 - bcc _0808E004 -_0808E078: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end SpawnFieldObjectsInView - - thumb_func_start RemoveFieldObjectsOutsideView -@ void RemoveFieldObjectsOutsideView() -RemoveFieldObjectsOutsideView: @ 808E08C - push {r4-r6,lr} - movs r3, 0 - ldr r6, =gUnknown_02032308 -_0808E092: - movs r2, 0 - movs r4, 0 - adds r5, r3, 0x1 -_0808E098: - lsls r0, r2, 2 - adds r1, r0, r6 - ldrb r0, [r1] - cmp r0, 0 - beq _0808E0AA - ldrb r1, [r1, 0x2] - cmp r3, r1 - bne _0808E0AA - movs r4, 0x1 -_0808E0AA: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3 - bls _0808E098 - cmp r4, 0 - bne _0808E0D2 - lsls r0, r3, 3 - adds r0, r3 - lsls r0, 2 - ldr r1, =gMapObjects - adds r2, r0, r1 - ldr r0, [r2] - ldr r1, =0x00010001 - ands r0, r1 - cmp r0, 0x1 - bne _0808E0D2 - adds r0, r2, 0 - bl RemoveFieldObjectIfOutsideView -_0808E0D2: - lsls r0, r5, 24 - lsrs r3, r0, 24 - cmp r3, 0xF - bls _0808E092 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end RemoveFieldObjectsOutsideView - - thumb_func_start RemoveFieldObjectIfOutsideView -@ void RemoveFieldObjectIfOutsideView(npc_state *fieldObject) -RemoveFieldObjectIfOutsideView: @ 808E0EC - push {r4-r7,lr} - adds r3, r0, 0 - ldr r0, =gSaveBlock1Ptr - ldr r2, [r0] - ldrh r0, [r2] - subs r1, r0, 0x2 - lsls r1, 16 - adds r0, 0x11 - lsls r0, 16 - lsrs r5, r0, 16 - ldrh r4, [r2, 0x2] - adds r0, r4, 0 - adds r0, 0x10 - lsls r0, 16 - lsrs r6, r0, 16 - movs r0, 0x10 - ldrsh r2, [r3, r0] - lsrs r7, r1, 16 - asrs r1, 16 - cmp r2, r1 - blt _0808E132 - lsls r0, r5, 16 - asrs r0, 16 - cmp r2, r0 - bgt _0808E132 - movs r0, 0x12 - ldrsh r1, [r3, r0] - lsls r0, r4, 16 - asrs r0, 16 - cmp r1, r0 - blt _0808E132 - lsls r0, r6, 16 - asrs r0, 16 - cmp r1, r0 - ble _0808E160 -_0808E132: - movs r0, 0xC - ldrsh r1, [r3, r0] - lsls r0, r7, 16 - asrs r0, 16 - cmp r1, r0 - blt _0808E15A - lsls r0, r5, 16 - asrs r0, 16 - cmp r1, r0 - bgt _0808E15A - movs r0, 0xE - ldrsh r1, [r3, r0] - lsls r0, r4, 16 - asrs r0, 16 - cmp r1, r0 - blt _0808E15A - lsls r0, r6, 16 - asrs r0, 16 - cmp r1, r0 - ble _0808E160 -_0808E15A: - adds r0, r3, 0 - bl RemoveFieldObject -_0808E160: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end RemoveFieldObjectIfOutsideView - - thumb_func_start sub_808E16C -sub_808E16C: @ 808E16C - push {r4-r7,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - bl ClearPlayerAvatarInfo - movs r6, 0 - ldr r7, =gMapObjects - lsls r4, 16 - lsls r5, 16 -_0808E186: - lsls r0, r6, 3 - adds r0, r6 - lsls r0, 2 - adds r0, r7 - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - beq _0808E1A0 - adds r0, r6, 0 - asrs r1, r4, 16 - asrs r2, r5, 16 - bl sub_808E1B8 -_0808E1A0: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0xF - bls _0808E186 - bl sub_808D450 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_808E16C - - thumb_func_start sub_808E1B8 -sub_808E1B8: @ 808E1B8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x28 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r1, 16 - lsrs r1, 16 - mov r10, r1 - lsls r2, 16 - lsrs r2, 16 - str r2, [sp, 0x24] - movs r7, 0 - ldr r2, =gUnknown_02032308 -_0808E1DA: - lsls r0, r7, 2 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0 - beq _0808E1EC - ldrb r1, [r1, 0x2] - cmp r9, r1 - bne _0808E1EC - b _0808E374 -_0808E1EC: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x3 - bls _0808E1DA - mov r1, r9 - lsls r0, r1, 3 - add r0, r9 - lsls r0, 2 - ldr r1, =gMapObjects - adds r6, r0, r1 - movs r0, 0 - str r0, [sp, 0x20] - ldrb r0, [r6, 0x5] - bl GetFieldObjectGraphicsInfo - adds r5, r0, 0 - ldrh r2, [r5, 0x6] - ldr r1, =0xffff0000 - add r4, sp, 0x18 - ldr r0, [r4, 0x4] - ands r0, r1 - orrs r0, r2 - str r0, [r4, 0x4] - ldrb r0, [r6, 0x5] - ldrb r1, [r6, 0x6] - add r3, sp, 0x20 - mov r2, sp - bl MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex - str r4, [sp, 0xC] - mov r1, sp - ldr r2, =0x0000ffff - adds r0, r2, 0 - strh r0, [r1, 0x2] - ldrb r0, [r5, 0xC] - lsls r1, r0, 28 - lsrs r0, r1, 28 - mov r8, r0 - cmp r0, 0 - bne _0808E258 - ldrh r0, [r5, 0x2] - lsrs r1, 28 - bl npc_load_two_palettes__no_record - b _0808E27E - .pool -_0808E258: - mov r2, r8 - cmp r2, 0xA - bne _0808E268 - ldrh r0, [r5, 0x2] - lsrs r1, 28 - bl npc_load_two_palettes__and_record - b _0808E27E -_0808E268: - mov r0, r8 - cmp r0, 0xF - bls _0808E27E - subs r0, 0x10 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldrh r0, [r5, 0x2] - mov r1, r8 - bl sub_808EAB0 -_0808E27E: - mov r1, sp - ldr r2, =0x0000ffff - adds r0, r2, 0 - strh r0, [r1, 0x2] - mov r0, sp - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x40 - beq _0808E374 - lsls r0, r7, 4 - adds r0, r7 - lsls r0, 2 - ldr r1, =gSprites - adds r4, r0, r1 - mov r1, r10 - lsls r0, r1, 16 - asrs r0, 16 - ldrh r2, [r6, 0x10] - adds r0, r2 - lsls r0, 16 - asrs r0, 16 - ldr r2, [sp, 0x24] - lsls r1, r2, 16 - asrs r1, 16 - ldrh r2, [r6, 0x12] - adds r1, r2 - lsls r1, 16 - asrs r1, 16 - adds r2, r4, 0 - adds r2, 0x20 - adds r3, r4, 0 - adds r3, 0x22 - bl sub_8092FF0 - ldrh r0, [r5, 0x8] - lsls r0, 16 - asrs r0, 17 - negs r0, r0 - adds r1, r4, 0 - adds r1, 0x28 - strb r0, [r1] - ldrh r0, [r5, 0xA] - lsls r0, 16 - asrs r0, 17 - negs r0, r0 - adds r2, r4, 0 - adds r2, 0x29 - strb r0, [r2] - ldrh r0, [r4, 0x20] - adds r0, 0x8 - strh r0, [r4, 0x20] - ldrh r1, [r4, 0x22] - adds r1, 0x10 - movs r0, 0 - ldrsb r0, [r2, r0] - adds r0, r1 - strh r0, [r4, 0x22] - ldr r0, [r5, 0x1C] - str r0, [r4, 0xC] - ldrb r0, [r6, 0x6] - cmp r0, 0xB - bne _0808E312 - mov r0, r9 - adds r1, r7, 0 - bl SetPlayerAvatarFieldObjectIdAndObjectId - bl sub_8154228 - strb r0, [r6, 0x1B] -_0808E312: - ldr r1, [sp, 0x20] - cmp r1, 0 - beq _0808E31E - adds r0, r4, 0 - bl SetSubspriteTables -_0808E31E: - mov r0, r8 - lsls r2, r0, 4 - ldrb r1, [r4, 0x5] - movs r0, 0xF - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x5] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2] - mov r1, r9 - strh r1, [r4, 0x2E] - strb r7, [r6, 0x4] - ldrb r0, [r6, 0x1] - lsls r0, 27 - cmp r0, 0 - blt _0808E362 - ldrb r0, [r6, 0x6] - cmp r0, 0xB - beq _0808E362 - ldrb r0, [r6, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl FieldObjectDirectionToImageAnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim -_0808E362: - adds r0, r6, 0 - bl sub_808E38C - ldrb r0, [r6, 0xB] - lsrs r0, 4 - adds r1, r4, 0 - movs r2, 0x1 - bl SetObjectSubpriorityByZCoord -_0808E374: - add sp, 0x28 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_808E1B8 - - thumb_func_start sub_808E38C -@ void sub_808E38C(struct npc_state *fieldObject) -sub_808E38C: @ 808E38C - push {lr} - ldrb r2, [r0] - movs r3, 0x3 - negs r3, r3 - adds r1, r3, 0 - ands r1, r2 - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldrb r2, [r0, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r2 - ands r1, r3 - movs r2, 0x5 - negs r2, r2 - ands r1, r2 - subs r2, 0x4 - ands r1, r2 - subs r2, 0x8 - ands r1, r2 - subs r2, 0x10 - ands r1, r2 - strb r1, [r0, 0x2] - bl FieldObjectClearAnim - pop {r0} - bx r0 - thumb_func_end sub_808E38C - - thumb_func_start SetPlayerAvatarFieldObjectIdAndObjectId -@ void SetPlayerAvatarFieldObjectIdAndObjectId(u8 fieldObjectId, u8 objectId) -SetPlayerAvatarFieldObjectIdAndObjectId: @ 808E3C4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, =gUnknown_02037590 - strb r0, [r5, 0x5] - strb r1, [r5, 0x4] - ldr r1, =gMapObjects - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - adds r4, r1 - ldrb r0, [r4, 0x5] - bl GetPlayerAvatarGenderByGraphicsId - strb r0, [r5, 0x7] - ldrb r0, [r4, 0x5] - movs r1, 0x20 - bl SetPlayerAvatarExtraStateTransition - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end SetPlayerAvatarFieldObjectIdAndObjectId - - thumb_func_start FieldObjectSetGraphicsId -@ void FieldObjectSetGraphicsId(npc_state *npcState, u8 graphicsId) -FieldObjectSetGraphicsId: @ 808E3F8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - mov r0, r8 - bl GetFieldObjectGraphicsInfo - adds r6, r0, 0 - ldrb r1, [r7, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r4, r0, r1 - ldrb r0, [r6, 0xC] - lsls r1, r0, 28 - lsrs r5, r1, 28 - cmp r5, 0 - bne _0808E434 - ldrh r0, [r6, 0x2] - adds r1, r5, 0 - bl pal_patch_for_npc - b _0808E456 - .pool -_0808E434: - cmp r5, 0xA - bne _0808E442 - ldrh r0, [r6, 0x2] - lsrs r1, 28 - bl npc_load_two_palettes__and_record - b _0808E456 -_0808E442: - cmp r5, 0xF - bls _0808E456 - adds r0, r5, 0 - subs r0, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - ldrh r0, [r6, 0x2] - adds r1, r5, 0 - bl sub_808EAB0 -_0808E456: - ldr r0, [r6, 0x10] - ldrb r2, [r0, 0x1] - lsrs r2, 6 - lsls r2, 6 - ldrb r3, [r4, 0x1] - movs r1, 0x3F - adds r0, r1, 0 - ands r0, r3 - orrs r0, r2 - strb r0, [r4, 0x1] - ldr r0, [r6, 0x10] - ldrb r0, [r0, 0x3] - lsrs r0, 6 - lsls r0, 6 - ldrb r2, [r4, 0x3] - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x3] - ldr r0, [r6, 0x1C] - str r0, [r4, 0xC] - ldr r0, [r6, 0x18] - str r0, [r4, 0x8] - ldr r0, [r6, 0x14] - str r0, [r4, 0x18] - lsls r2, r5, 4 - ldrb r1, [r4, 0x5] - movs r0, 0xF - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x5] - ldrb r1, [r6, 0xC] - lsls r1, 25 - lsrs r1, 31 - lsls r1, 4 - ldrb r2, [r7, 0x1] - movs r0, 0x11 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r7, 0x1] - mov r0, r8 - strb r0, [r7, 0x5] - movs r1, 0x10 - ldrsh r0, [r7, r1] - movs r2, 0x12 - ldrsh r1, [r7, r2] - adds r2, r4, 0 - adds r2, 0x20 - adds r3, r4, 0 - adds r3, 0x22 - bl sub_8093038 - ldrh r0, [r6, 0x8] - lsls r0, 16 - asrs r0, 17 - negs r0, r0 - adds r1, r4, 0 - adds r1, 0x28 - strb r0, [r1] - ldrh r0, [r6, 0xA] - lsls r0, 16 - asrs r0, 17 - negs r0, r0 - adds r2, r4, 0 - adds r2, 0x29 - strb r0, [r2] - ldrh r0, [r4, 0x20] - adds r0, 0x8 - strh r0, [r4, 0x20] - ldrh r1, [r4, 0x22] - adds r1, 0x10 - movs r0, 0 - ldrsb r0, [r2, r0] - adds r0, r1 - strh r0, [r4, 0x22] - ldrb r0, [r7, 0x1] - lsrs r0, 7 - cmp r0, 0 - beq _0808E4F8 - bl CameraObjectReset1 -_0808E4F8: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end FieldObjectSetGraphicsId - - thumb_func_start sub_808E504 -sub_808E504: @ 808E504 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r4, r3, 24 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _0808E538 - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r0, r1 - adds r1, r4, 0 - bl FieldObjectSetGraphicsId -_0808E538: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_808E504 - - thumb_func_start FieldObjectTurn -@ void FieldObjectTurn(struct npc_state *fieldObject, u8 direction) -FieldObjectTurn: @ 808E544 - push {r4-r6,lr} - adds r6, r0, 0 - lsls r1, 24 - lsrs r1, 24 - bl FieldObjectSetDirection - ldrb r0, [r6, 0x1] - lsls r0, 27 - cmp r0, 0 - blt _0808E58A - ldrb r0, [r6, 0x4] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r5, =gSprites - adds r4, r5 - ldrb r0, [r6, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl FieldObjectDirectionToImageAnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - ldrb r1, [r6, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0 - bl SeekSpriteAnim -_0808E58A: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectTurn - - thumb_func_start FieldObjectTurnByLocalIdAndMap -@ void FieldObjectTurnByLocalIdAndMap(u8 localId, u8 mapId, u8 mapGroupId) -FieldObjectTurnByLocalIdAndMap: @ 808E594 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r4, r3, 24 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _0808E5C8 - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r0, r1 - adds r1, r4, 0 - bl FieldObjectTurn -_0808E5C8: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectTurnByLocalIdAndMap - - thumb_func_start sub_808E5D4 -sub_808E5D4: @ 808E5D4 - push {lr} - lsls r1, 24 - lsrs r1, 24 - ldrb r2, [r0, 0x5] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - bl FieldObjectTurn - pop {r0} - bx r0 - .pool - thumb_func_end sub_808E5D4 - - thumb_func_start get_berry_tree_graphics -@ void get_berry_tree_graphics(npc_state *npcState, struct obj *obj) -get_berry_tree_graphics: @ 808E5F4 - push {r4-r7,lr} - adds r5, r0, 0 - adds r7, r1, 0 - ldrb r0, [r5, 0x1] - movs r1, 0x20 - orrs r0, r1 - strb r0, [r5, 0x1] - adds r4, r7, 0 - adds r4, 0x3E - ldrb r0, [r4] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r4] - ldrb r0, [r5, 0x1D] - bl GetStageByBerryTreeId - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - beq _0808E680 - ldrb r1, [r5, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r1 - strb r0, [r5, 0x1] - ldrb r1, [r4] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r4] - ldrb r0, [r5, 0x1D] - bl GetBerryTypeByBerryTreeId - subs r0, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - subs r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r4, 0x2B - bls _0808E648 - movs r4, 0 -_0808E648: - ldr r0, =gBerryTreeFieldObjectGraphicsIdTablePointers - lsls r4, 2 - adds r0, r4, r0 - ldr r0, [r0] - adds r0, r6 - ldrb r1, [r0] - adds r0, r5, 0 - bl FieldObjectSetGraphicsId - ldr r0, =gBerryTreePicTablePointers - adds r0, r4, r0 - ldr r0, [r0] - str r0, [r7, 0xC] - ldr r0, =gBerryTreePaletteSlotTablePointers - adds r4, r0 - ldr r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r1, 4 - ldrb r2, [r7, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r1 - strb r0, [r7, 0x5] - adds r0, r7, 0 - adds r1, r6, 0 - bl StartSpriteAnim -_0808E680: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end get_berry_tree_graphics - - thumb_func_start GetFieldObjectGraphicsInfo -@ FieldObjectGraphicsInfo *GetFieldObjectGraphicsInfo(u8 graphicsId) -GetFieldObjectGraphicsInfo: @ 808E694 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xEF - bls _0808E6AC - adds r0, r1, 0 - adds r0, 0x10 - lsls r0, 24 - lsrs r0, 24 - bl VarGetFieldObjectGraphicsId - adds r1, r0, 0 -_0808E6AC: - cmp r1, 0x45 - bne _0808E6C4 - bl sub_81201C8 - lsls r0, 24 - ldr r1, =gMauvilleOldManGraphicsInfoPointers - lsrs r0, 22 - adds r0, r1 - ldr r0, [r0] - b _0808E6D2 - .pool -_0808E6C4: - cmp r1, 0xEE - bls _0808E6CA - movs r1, 0x5 -_0808E6CA: - ldr r0, =gFieldObjectGraphicsInfoPointers - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] -_0808E6D2: - pop {r1} - bx r1 - .pool - thumb_func_end GetFieldObjectGraphicsInfo - - thumb_func_start FieldObjectHandleDynamicGraphicsId -@ void FieldObjectHandleDynamicGraphicsId(struct npc_state *fieldObject) -FieldObjectHandleDynamicGraphicsId: @ 808E6DC - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4, 0x5] - cmp r0, 0xEF - bls _0808E6F2 - adds r0, 0x10 - lsls r0, 24 - lsrs r0, 24 - bl VarGetFieldObjectGraphicsId - strb r0, [r4, 0x5] -_0808E6F2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end FieldObjectHandleDynamicGraphicsId - - thumb_func_start npc_by_local_id_and_map_set_field_1_bit_x20 -npc_by_local_id_and_map_set_field_1_bit_x20: @ 808E6F8 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r4, r3, 24 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _0808E73A - ldr r2, =gMapObjects - mov r0, sp - ldrb r0, [r0] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0x1 - adds r2, r4, 0 - ands r2, r0 - lsls r2, 5 - ldrb r3, [r1, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0x1] -_0808E73A: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end npc_by_local_id_and_map_set_field_1_bit_x20 - - thumb_func_start FieldObjectGetLocalIdAndMap -@ void FieldObjectGetLocalIdAndMap(struct npc_state *fieldObject, u8 *localId, u8 *mapId, u8 *mapGroupId) -FieldObjectGetLocalIdAndMap: @ 808E748 - push {r4,lr} - ldrb r4, [r0, 0x8] - strb r4, [r1] - ldrb r1, [r0, 0x9] - strb r1, [r2] - ldrb r0, [r0, 0xA] - strb r0, [r3] - pop {r4} - pop {r0} - bx r0 - thumb_func_end FieldObjectGetLocalIdAndMap - - thumb_func_start sub_808E75C -sub_808E75C: @ 808E75C - push {lr} - lsls r0, 16 - asrs r0, 16 - lsls r1, 16 - asrs r1, 16 - bl GetFieldObjectIdByXY - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x10 - beq _0808E784 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r0, r1 - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_0808E784: - pop {r0} - bx r0 - .pool - thumb_func_end sub_808E75C - - thumb_func_start sub_808E78C -sub_808E78C: @ 808E78C - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r4, r3, 24 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _0808E7D2 - mov r0, sp - ldrb r0, [r0] - lsls r2, r0, 3 - adds r2, r0 - lsls r2, 2 - ldr r0, =gMapObjects - adds r2, r0 - ldrb r1, [r2, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - ldrb r1, [r2, 0x3] - movs r3, 0x4 - orrs r1, r3 - strb r1, [r2, 0x3] - adds r0, 0x43 - strb r4, [r0] -_0808E7D2: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_808E78C - - thumb_func_start sub_808E7E4 -sub_808E7E4: @ 808E7E4 - push {lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _0808E820 - mov r0, sp - ldrb r0, [r0] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, =gMapObjects - adds r1, r0 - ldrb r2, [r1, 0x3] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x3] - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] -_0808E820: - add sp, 0x4 - pop {r0} - bx r0 - .pool - thumb_func_end sub_808E7E4 - - thumb_func_start sub_808E82C -sub_808E82C: @ 808E82C - push {r4,r5,lr} - sub sp, 0x4 - ldr r4, [sp, 0x10] - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 16 - lsrs r5, r3, 16 - lsls r4, 16 - lsrs r4, 16 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _0808E870 - ldr r2, =gMapObjects - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - strh r5, [r0, 0x24] - strh r4, [r0, 0x26] -_0808E870: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_808E82C - - thumb_func_start gpu_pal_allocator_reset__manage_upper_four -gpu_pal_allocator_reset__manage_upper_four: @ 808E880 - push {lr} - bl FreeAllSpritePalettes - ldr r1, =gReservedSpritePaletteCount - movs r0, 0xC - strb r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end gpu_pal_allocator_reset__manage_upper_four - - thumb_func_start sub_808E894 -sub_808E894: @ 808E894 - push {lr} - lsls r0, 16 - lsrs r0, 16 - bl FindFieldObjectPaletteIndexByTag - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, =0x000011ff - cmp r1, r0 - beq _0808E8B2 - lsls r0, r1, 3 - ldr r1, =gUnknown_0850BBC8 - adds r0, r1 - bl sub_808E8F4 -_0808E8B2: - pop {r0} - bx r0 - .pool - thumb_func_end sub_808E894 - - thumb_func_start sub_808E8C0 -sub_808E8C0: @ 808E8C0 - push {r4-r6,lr} - adds r5, r0, 0 - movs r4, 0 - ldrh r0, [r5] - ldr r1, =0x000011ff - cmp r0, r1 - beq _0808E8EA - adds r6, r1, 0 -_0808E8D0: - lsls r0, r4, 1 - adds r0, r5 - ldrh r0, [r0] - bl sub_808E894 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 1 - adds r0, r5 - ldrh r0, [r0] - cmp r0, r6 - bne _0808E8D0 -_0808E8EA: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_808E8C0 - - thumb_func_start sub_808E8F4 -@ u8 sub_808E8F4(struct TaggedObjectPalette *taggedPalette) -sub_808E8F4: @ 808E8F4 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x4] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _0808E912 - adds r0, r4, 0 - bl LoadSpritePalette - lsls r0, 24 - lsrs r0, 24 - b _0808E914 -_0808E912: - movs r0, 0xFF -_0808E914: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_808E8F4 - - thumb_func_start pal_patch_for_npc -@ void pal_patch_for_npc(u16 tag, u8 slot) -pal_patch_for_npc: @ 808E91C - push {r4,lr} - adds r4, r1, 0 - lsls r0, 16 - lsrs r0, 16 - lsls r4, 24 - lsrs r4, 24 - bl FindFieldObjectPaletteIndexByTag - lsls r0, 24 - ldr r1, =gUnknown_0850BBC8 - lsrs r0, 21 - adds r0, r1 - ldr r0, [r0] - lsls r4, 20 - movs r1, 0x80 - lsls r1, 17 - adds r4, r1 - lsrs r4, 16 - adds r1, r4, 0 - movs r2, 0x20 - bl LoadPalette - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pal_patch_for_npc - - thumb_func_start pal_patch_for_npc_range -@ void pal_patch_for_npc_range(u16 *tags, u8 minSlot, u8 maxSlot) -pal_patch_for_npc_range: @ 808E954 - push {r4-r6,lr} - adds r5, r0, 0 - lsls r1, 24 - lsrs r4, r1, 24 - lsls r2, 24 - lsrs r6, r2, 24 - cmp r4, r6 - bcs _0808E978 -_0808E964: - ldrh r0, [r5] - adds r1, r4, 0 - bl pal_patch_for_npc - adds r5, 0x2 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r6 - bcc _0808E964 -_0808E978: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end pal_patch_for_npc_range - - thumb_func_start FindFieldObjectPaletteIndexByTag -@ u8 FindFieldObjectPaletteIndexByTag(u16 tag) -FindFieldObjectPaletteIndexByTag: @ 808E980 - push {r4-r6,lr} - lsls r0, 16 - lsrs r5, r0, 16 - movs r2, 0 - ldr r0, =gUnknown_0850BBC8 - ldrh r1, [r0, 0x4] - ldr r3, =0x000011ff - adds r4, r0, 0 - cmp r1, r3 - beq _0808E9C0 - adds r6, r4, 0 - adds r1, r3, 0 -_0808E998: - lsls r0, r2, 3 - adds r0, r6 - ldrh r0, [r0, 0x4] - cmp r0, r5 - bne _0808E9B0 - adds r0, r2, 0 - b _0808E9C2 - .pool -_0808E9B0: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 3 - adds r0, r4 - ldrh r0, [r0, 0x4] - cmp r0, r1 - bne _0808E998 -_0808E9C0: - movs r0, 0xFF -_0808E9C2: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end FindFieldObjectPaletteIndexByTag - - thumb_func_start npc_load_two_palettes__no_record -@ void npc_load_two_palettes__no_record(u16 tag, u8 slot) -npc_load_two_palettes__no_record: @ 808E9C8 - push {r4-r6,lr} - lsls r0, 16 - lsrs r4, r0, 16 - lsls r1, 24 - lsrs r5, r1, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl pal_patch_for_npc - movs r3, 0 - ldr r1, =gUnknown_0850BD00 - ldrh r0, [r1] - ldr r2, =0x000011ff - cmp r0, r2 - beq _0808EA30 - ldr r0, =gUnknown_084975C4 - adds r5, r0 - adds r6, r2, 0 -_0808E9EC: - lsls r2, r3, 3 - adds r0, r2, r1 - ldrh r0, [r0] - cmp r0, r4 - bne _0808EA20 - adds r1, 0x4 - adds r1, r2, r1 - ldr r0, =gUnknown_020375B4 - ldrb r0, [r0] - ldr r1, [r1] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - ldrb r1, [r5] - bl pal_patch_for_npc - b _0808EA30 - .pool -_0808EA20: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - lsls r0, r3, 3 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r6 - bne _0808E9EC -_0808EA30: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end npc_load_two_palettes__no_record - - thumb_func_start npc_load_two_palettes__and_record -@ void npc_load_two_palettes__and_record(u16 tag, u8 slot) -npc_load_two_palettes__and_record: @ 808EA38 - push {r4-r6,lr} - lsls r0, 16 - lsrs r4, r0, 16 - lsls r1, 24 - lsrs r5, r1, 24 - ldr r0, =gUnknown_020375B6 - strh r4, [r0] - adds r0, r4, 0 - adds r1, r5, 0 - bl pal_patch_for_npc - movs r3, 0 - ldr r1, =gUnknown_0850BD78 - ldrh r0, [r1] - ldr r2, =0x000011ff - cmp r0, r2 - beq _0808EAA8 - ldr r0, =gUnknown_084975C4 - adds r5, r0 - adds r6, r2, 0 -_0808EA60: - lsls r2, r3, 3 - adds r0, r2, r1 - ldrh r0, [r0] - cmp r0, r4 - bne _0808EA98 - adds r1, 0x4 - adds r1, r2, r1 - ldr r0, =gUnknown_020375B4 - ldrb r0, [r0] - ldr r1, [r1] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - ldrb r1, [r5] - bl pal_patch_for_npc - b _0808EAA8 - .pool -_0808EA98: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - lsls r0, r3, 3 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r6 - bne _0808EA60 -_0808EAA8: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end npc_load_two_palettes__and_record - - thumb_func_start sub_808EAB0 -sub_808EAB0: @ 808EAB0 - push {lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 24 - lsrs r1, 24 - bl pal_patch_for_npc - pop {r0} - bx r0 - thumb_func_end sub_808EAB0 - - thumb_func_start sub_808EAC4 -sub_808EAC4: @ 808EAC4 - push {r4,lr} - ldrh r3, [r0, 0x10] - strh r3, [r0, 0x14] - ldrh r4, [r0, 0x12] - strh r4, [r0, 0x16] - lsls r1, 16 - asrs r1, 16 - adds r1, r3 - strh r1, [r0, 0x10] - lsls r2, 16 - asrs r2, 16 - adds r2, r4 - strh r2, [r0, 0x12] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_808EAC4 - - thumb_func_start npc_coords_shift -@ void npc_coords_shift(struct npc_state *fieldObject, u16 x, u16 y) -npc_coords_shift: @ 808EAE4 - ldrh r3, [r0, 0x10] - strh r3, [r0, 0x14] - ldrh r3, [r0, 0x12] - strh r3, [r0, 0x16] - strh r1, [r0, 0x10] - strh r2, [r0, 0x12] - bx lr - thumb_func_end npc_coords_shift - - thumb_func_start npc_coords_set -@ void npc_coords_set(struct npc_state *fieldObject, u16 x, u16 y) -npc_coords_set: @ 808EAF4 - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsrs r2, 16 - strh r1, [r0, 0x14] - strh r2, [r0, 0x16] - strh r1, [r0, 0x10] - strh r2, [r0, 0x12] - bx lr - thumb_func_end npc_coords_set - - thumb_func_start sub_808EB08 -sub_808EB08: @ 808EB08 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - adds r4, r1, 0 - adds r5, r2, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - ldrb r1, [r6, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r7, r0, r1 - ldrb r0, [r6, 0x5] - bl GetFieldObjectGraphicsInfo - mov r8, r0 - lsls r4, 16 - asrs r4, 16 - lsls r5, 16 - asrs r5, 16 - adds r0, r6, 0 - adds r1, r4, 0 - adds r2, r5, 0 - bl npc_coords_set - movs r1, 0x10 - ldrsh r0, [r6, r1] - movs r2, 0x12 - ldrsh r1, [r6, r2] - adds r2, r7, 0 - adds r2, 0x20 - adds r3, r7, 0 - adds r3, 0x22 - bl sub_8093038 - mov r1, r8 - ldrh r0, [r1, 0x8] - lsls r0, 16 - asrs r0, 17 - negs r0, r0 - adds r1, r7, 0 - adds r1, 0x28 - strb r0, [r1] - mov r2, r8 - ldrh r0, [r2, 0xA] - lsls r0, 16 - asrs r0, 17 - negs r0, r0 - adds r2, r7, 0 - adds r2, 0x29 - strb r0, [r2] - ldrh r0, [r7, 0x20] - adds r0, 0x8 - strh r0, [r7, 0x20] - ldrh r1, [r7, 0x22] - adds r1, 0x10 - movs r0, 0 - ldrsb r0, [r2, r0] - adds r0, r1 - strh r0, [r7, 0x22] - adds r0, r6, 0 - bl sub_808E38C - ldrb r0, [r6, 0x1] - lsrs r0, 7 - cmp r0, 0 - beq _0808EB9A - bl CameraObjectReset1 -_0808EB9A: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_808EB08 - - thumb_func_start sub_808EBA8 -sub_808EBA8: @ 808EBA8 - push {r4,r5,lr} - sub sp, 0x4 - ldr r4, [sp, 0x10] - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 16 - lsrs r5, r3, 16 - lsls r4, 16 - lsrs r4, 16 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _0808EBF0 - lsls r1, r5, 16 - lsls r2, r4, 16 - mov r0, sp - ldrb r3, [r0] - lsls r0, r3, 3 - adds r0, r3 - lsls r0, 2 - ldr r3, =gMapObjects - adds r0, r3 - movs r3, 0xE0 - lsls r3, 11 - adds r1, r3 - asrs r1, 16 - adds r2, r3 - asrs r2, 16 - bl sub_808EB08 -_0808EBF0: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_808EBA8 - - thumb_func_start npc_coords_shift_still -@ void npc_coords_shift_still(struct npc_state *fieldObject) -npc_coords_shift_still: @ 808EBFC - push {lr} - movs r2, 0x10 - ldrsh r1, [r0, r2] - movs r3, 0x12 - ldrsh r2, [r0, r3] - bl npc_coords_shift - pop {r0} - bx r0 - thumb_func_end npc_coords_shift_still - - thumb_func_start UpdateFieldObjectCoordsForCameraUpdate -@ void UpdateFieldObjectCoordsForCameraUpdate() -UpdateFieldObjectCoordsForCameraUpdate: @ 808EC10 - push {r4,r5,lr} - ldr r2, =gUnknown_02037334 - ldrb r1, [r2] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0808EC68 - movs r3, 0 - ldr r5, =gMapObjects - movs r0, 0x4 - ldrsh r4, [r2, r0] - movs r0, 0x8 - ldrsh r1, [r2, r0] -_0808EC2A: - lsls r0, r3, 3 - adds r0, r3 - lsls r0, 2 - adds r2, r0, r5 - ldrb r0, [r2] - lsls r0, 31 - cmp r0, 0 - beq _0808EC5E - ldrh r0, [r2, 0xC] - subs r0, r4 - strh r0, [r2, 0xC] - ldrh r0, [r2, 0xE] - subs r0, r1 - strh r0, [r2, 0xE] - ldrh r0, [r2, 0x10] - subs r0, r4 - strh r0, [r2, 0x10] - ldrh r0, [r2, 0x12] - subs r0, r1 - strh r0, [r2, 0x12] - ldrh r0, [r2, 0x14] - subs r0, r4 - strh r0, [r2, 0x14] - ldrh r0, [r2, 0x16] - subs r0, r1 - strh r0, [r2, 0x16] -_0808EC5E: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0xF - bls _0808EC2A -_0808EC68: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end UpdateFieldObjectCoordsForCameraUpdate - - thumb_func_start GetFieldObjectIdByXYZ -@ u8 GetFieldObjectIdByXYZ(u16 x, u16 y, u8 z) -GetFieldObjectIdByXYZ: @ 808EC78 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 16 - lsrs r7, r0, 16 - lsls r1, 16 - lsrs r6, r1, 16 - lsls r2, 24 - lsrs r5, r2, 24 - movs r4, 0 - ldr r0, =gMapObjects - mov r8, r0 -_0808EC90: - lsls r0, r4, 3 - adds r0, r4 - lsls r0, 2 - mov r2, r8 - adds r1, r0, r2 - ldrb r0, [r1] - lsls r0, 31 - cmp r0, 0 - beq _0808ECC8 - movs r2, 0x10 - ldrsh r0, [r1, r2] - cmp r0, r7 - bne _0808ECC8 - movs r2, 0x12 - ldrsh r0, [r1, r2] - cmp r0, r6 - bne _0808ECC8 - adds r0, r1, 0 - adds r1, r5, 0 - bl FieldObjectDoesZCoordMatch - lsls r0, 24 - cmp r0, 0 - beq _0808ECC8 - adds r0, r4, 0 - b _0808ECD4 - .pool -_0808ECC8: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bls _0808EC90 - movs r0, 0x10 -_0808ECD4: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end GetFieldObjectIdByXYZ - - thumb_func_start FieldObjectDoesZCoordMatch -@ bool8 FieldObjectDoesZCoordMatch(struct npc_state *fieldObject) -FieldObjectDoesZCoordMatch: @ 808ECE0 - push {lr} - lsls r1, 24 - lsrs r1, 24 - ldrb r2, [r0, 0xB] - movs r0, 0xF - ands r0, r2 - cmp r0, 0 - beq _0808ED00 - cmp r1, 0 - beq _0808ED00 - lsls r0, r2, 28 - lsrs r0, 28 - cmp r0, r1 - beq _0808ED00 - movs r0, 0 - b _0808ED02 -_0808ED00: - movs r0, 0x1 -_0808ED02: - pop {r1} - bx r1 - thumb_func_end FieldObjectDoesZCoordMatch - - thumb_func_start UpdateFieldObjectsForCameraUpdate -@ void UpdateFieldObjectsForCameraUpdate(u16 movingCameraOffsetX, u16 movingCameraOffsetY) -UpdateFieldObjectsForCameraUpdate: @ 808ED08 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - bl UpdateFieldObjectCoordsForCameraUpdate - lsls r4, 16 - asrs r4, 16 - lsls r5, 16 - asrs r5, 16 - adds r0, r4, 0 - adds r1, r5, 0 - bl SpawnFieldObjectsInView - bl RemoveFieldObjectsOutsideView - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end UpdateFieldObjectsForCameraUpdate - - thumb_func_start AddCameraObject -@ u8 AddCameraObject(u8 followedObjectId) -AddCameraObject: @ 808ED34 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gUnknown_084975D4 - movs r1, 0 - movs r2, 0 - movs r3, 0x4 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r2, 0x3E - adds r2, r1 - mov r12, r2 - ldrb r2, [r2] - movs r3, 0x4 - orrs r2, r3 - mov r3, r12 - strb r2, [r3] - strh r4, [r1, 0x2E] - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end AddCameraObject - - thumb_func_start ObjectCB_CameraObject -@ void ObjectCB_CameraObject(struct obj *object) -ObjectCB_CameraObject: @ 808ED78 - push {r4,r5,lr} - sub sp, 0xC - mov r2, sp - ldr r1, =gUnknown_084975EC - ldm r1!, {r3-r5} - stm r2!, {r3-r5} - movs r2, 0x30 - ldrsh r1, [r0, r2] - lsls r1, 2 - add r1, sp - ldr r1, [r1] - bl _call_via_r1 - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end ObjectCB_CameraObject - - thumb_func_start CameraObject_0 -@ void CameraObject_0(struct obj *object) -CameraObject_0: @ 808EDA0 - push {lr} - ldr r3, =gSprites - movs r1, 0x2E - ldrsh r2, [r0, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r3 - ldrh r1, [r1, 0x20] - strh r1, [r0, 0x20] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r3 - ldrh r1, [r1, 0x22] - strh r1, [r0, 0x22] - adds r3, r0, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r3] - movs r1, 0x1 - strh r1, [r0, 0x30] - bl CameraObject_1 - pop {r0} - bx r0 - .pool - thumb_func_end CameraObject_0 - - thumb_func_start CameraObject_1 -@ void CameraObject_1(struct obj *object) -CameraObject_1: @ 808EDDC - push {r4,r5,lr} - ldr r3, =gSprites - movs r1, 0x2E - ldrsh r2, [r0, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r3 - ldrh r3, [r1, 0x22] - ldrh r2, [r0, 0x20] - ldrh r4, [r1, 0x20] - movs r5, 0x20 - ldrsh r1, [r1, r5] - subs r1, r2 - strh r1, [r0, 0x32] - ldrh r2, [r0, 0x22] - lsls r1, r3, 16 - asrs r1, 16 - subs r1, r2 - strh r1, [r0, 0x34] - strh r4, [r0, 0x20] - strh r3, [r0, 0x22] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end CameraObject_1 - - thumb_func_start CameraObject_2 -@ void CameraObject_2(struct obj *object) -CameraObject_2: @ 808EE14 - push {r4,lr} - ldr r4, =gSprites - movs r1, 0x2E - ldrsh r2, [r0, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldrh r1, [r1, 0x20] - movs r3, 0 - strh r1, [r0, 0x20] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldrh r1, [r1, 0x22] - strh r1, [r0, 0x22] - strh r3, [r0, 0x32] - strh r3, [r0, 0x34] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end CameraObject_2 - - thumb_func_start FindCameraObject -@ struct obj *FindCameraObject() -FindCameraObject: @ 808EE44 - push {r4,r5,lr} - movs r3, 0 - ldr r4, =gSprites - adds r5, r4, 0 - adds r5, 0x1C -_0808EE4E: - lsls r0, r3, 4 - adds r0, r3 - lsls r1, r0, 2 - adds r2, r1, r4 - adds r0, r2, 0 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - beq _0808EE78 - adds r0, r1, r5 - ldr r1, [r0] - ldr r0, =ObjectCB_CameraObject - cmp r1, r0 - bne _0808EE78 - adds r0, r2, 0 - b _0808EE84 - .pool -_0808EE78: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3F - bls _0808EE4E - movs r0, 0 -_0808EE84: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end FindCameraObject - - thumb_func_start CameraObjectReset1 -@ void CameraObjectReset1() -CameraObjectReset1: @ 808EE8C - push {lr} - bl FindCameraObject - adds r2, r0, 0 - cmp r2, 0 - beq _0808EEA4 - movs r0, 0 - strh r0, [r2, 0x30] - ldr r1, [r2, 0x1C] - adds r0, r2, 0 - bl _call_via_r1 -_0808EEA4: - pop {r0} - bx r0 - thumb_func_end CameraObjectReset1 - - thumb_func_start CameraObjectSetFollowedObjectId -@ void CameraObjectSetFollowedObjectId(u8 objectId) -CameraObjectSetFollowedObjectId: @ 808EEA8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl FindCameraObject - cmp r0, 0 - beq _0808EEBC - strh r4, [r0, 0x2E] - bl CameraObjectReset1 -_0808EEBC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end CameraObjectSetFollowedObjectId - - thumb_func_start CameraObjectGetFollowedObjectId -@ u8 CameraObjectGetFollowedObjectId() -CameraObjectGetFollowedObjectId: @ 808EEC4 - push {lr} - bl FindCameraObject - cmp r0, 0 - beq _0808EED6 - ldrh r0, [r0, 0x2E] - lsls r0, 24 - lsrs r0, 24 - b _0808EED8 -_0808EED6: - movs r0, 0x40 -_0808EED8: - pop {r1} - bx r1 - thumb_func_end CameraObjectGetFollowedObjectId - - thumb_func_start CameraObjectReset2 -@ void CameraObjectReset2() -CameraObjectReset2: @ 808EEDC - push {lr} - bl FindCameraObject - movs r1, 0x2 - strh r1, [r0, 0x30] - pop {r0} - bx r0 - thumb_func_end CameraObjectReset2 - - thumb_func_start sub_808EEEC -sub_808EEEC: @ 808EEEC - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r12, r0 - lsls r1, 16 - lsrs r1, 16 - mov r8, r1 - lsls r2, 16 - lsrs r6, r2, 16 - lsls r3, 24 - lsrs r7, r3, 24 - movs r5, 0 - ldr r1, =gSprites -_0808EF06: - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - adds r4, r0, r1 - adds r0, r4, 0 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - bne _0808EF38 - adds r0, r4, 0 - mov r1, r12 - movs r2, 0x44 - bl memcpy - mov r0, r8 - strh r0, [r4, 0x20] - strh r6, [r4, 0x22] - adds r0, r4, 0 - adds r0, 0x43 - strb r7, [r0] - b _0808EF42 - .pool -_0808EF38: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3F - bls _0808EF06 -_0808EF42: - adds r0, r5, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_808EEEC - - thumb_func_start obj_unfreeze -obj_unfreeze: @ 808EF50 - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r12, r0 - lsls r1, 16 - lsrs r1, 16 - mov r8, r1 - lsls r2, 16 - lsrs r6, r2, 16 - lsls r3, 24 - lsrs r7, r3, 24 - movs r5, 0x3F - ldr r3, =gSprites - movs r2, 0x1 - negs r2, r2 -_0808EF6E: - lsls r0, r5, 16 - asrs r1, r0, 16 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, r0, r3 - adds r0, r4, 0 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - bne _0808EFA8 - adds r0, r4, 0 - mov r1, r12 - movs r2, 0x44 - bl memcpy - mov r0, r8 - strh r0, [r4, 0x20] - strh r6, [r4, 0x22] - adds r0, r4, 0 - adds r0, 0x43 - strb r7, [r0] - lsls r0, r5, 24 - lsrs r0, 24 - b _0808EFB6 - .pool -_0808EFA8: - subs r0, r1, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, r2 - bgt _0808EF6E - movs r0, 0x40 -_0808EFB6: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end obj_unfreeze - - thumb_func_start FieldObjectSetDirection -@ void FieldObjectSetDirection(struct npc_state *fieldObject, u8 direction) -FieldObjectSetDirection: @ 808EFC0 - push {r4,lr} - adds r3, r0, 0 - lsls r1, 24 - lsrs r2, r1, 24 - adds r4, r2, 0 - ldrb r0, [r3, 0x18] - lsls r0, 28 - lsrs r0, 28 - adds r1, r3, 0 - adds r1, 0x20 - strb r0, [r1] - ldrb r0, [r3, 0x1] - lsls r0, 30 - cmp r0, 0 - blt _0808EFF0 - movs r0, 0xF - adds r1, r2, 0 - ands r1, r0 - ldrb r2, [r3, 0x18] - movs r0, 0x10 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x18] -_0808EFF0: - lsls r2, r4, 4 - ldrb r1, [r3, 0x18] - movs r0, 0xF - ands r0, r1 - orrs r0, r2 - strb r0, [r3, 0x18] - pop {r4} - pop {r0} - bx r0 - thumb_func_end FieldObjectSetDirection - - thumb_func_start GetFieldObjectScriptPointerByLocalIdAndMap -@ u32 GetFieldObjectScriptPointerByLocalIdAndMap(u8 localId, u8 mapId, u8 mapGroupId) -GetFieldObjectScriptPointerByLocalIdAndMap: @ 808F004 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - bl GetFieldObjectTemplateByLocalIdAndMap - ldr r0, [r0, 0x10] - pop {r1} - bx r1 - thumb_func_end GetFieldObjectScriptPointerByLocalIdAndMap - - thumb_func_start GetFieldObjectScriptPointerByFieldObjectId -@ u32 GetFieldObjectScriptPointerByFieldObjectId(u8 fieldObjectId) -GetFieldObjectScriptPointerByFieldObjectId: @ 808F01C - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gMapObjects - lsls r2, r0, 3 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - ldrb r0, [r2, 0x8] - ldrb r1, [r2, 0x9] - ldrb r2, [r2, 0xA] - bl GetFieldObjectScriptPointerByLocalIdAndMap - pop {r1} - bx r1 - .pool - thumb_func_end GetFieldObjectScriptPointerByFieldObjectId - - thumb_func_start GetFieldObjectFlagIdByLocalIdAndMap -@ u16 GetFieldObjectFlagIdByLocalIdAndMap(u8 localId, u8 mapId, u8 mapGroupId) -GetFieldObjectFlagIdByLocalIdAndMap: @ 808F040 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - bl GetFieldObjectTemplateByLocalIdAndMap - ldrh r0, [r0, 0x14] - pop {r1} - bx r1 - thumb_func_end GetFieldObjectFlagIdByLocalIdAndMap - - thumb_func_start GetFieldObjectFlagIdByFieldObjectId -@ u16 GetFieldObjectFlagIdByFieldObjectId(u8 fieldObjectId) -GetFieldObjectFlagIdByFieldObjectId: @ 808F058 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gMapObjects - lsls r2, r0, 3 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - ldrb r0, [r2, 0x8] - ldrb r1, [r2, 0x9] - ldrb r2, [r2, 0xA] - bl GetFieldObjectFlagIdByLocalIdAndMap - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - .pool - thumb_func_end GetFieldObjectFlagIdByFieldObjectId - - thumb_func_start sub_808F080 -sub_808F080: @ 808F080 - push {lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _0808F0B4 - ldr r2, =gMapObjects - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x7] - b _0808F0B6 - .pool -_0808F0B4: - movs r0, 0xFF -_0808F0B6: - add sp, 0x4 - pop {r1} - bx r1 - thumb_func_end sub_808F080 - - thumb_func_start sub_808F0BC -sub_808F0BC: @ 808F0BC - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gMapObjects - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1, 0x7] - bx lr - .pool - thumb_func_end sub_808F0BC - - thumb_func_start sub_808F0D4 -sub_808F0D4: @ 808F0D4 - push {lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _0808F108 - ldr r2, =gMapObjects - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1D] - b _0808F10A - .pool -_0808F108: - movs r0, 0xFF -_0808F10A: - add sp, 0x4 - pop {r1} - bx r1 - thumb_func_end sub_808F0D4 - - thumb_func_start FieldObjectGetBerryTreeId -@ u8 FieldObjectGetBerryTreeId(u8 fieldObjectId) -FieldObjectGetBerryTreeId: @ 808F110 - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gMapObjects - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1, 0x1D] - bx lr - .pool - thumb_func_end FieldObjectGetBerryTreeId - - thumb_func_start GetFieldObjectTemplateByLocalIdAndMap -@ struct FieldObjectTemplate *GetFieldObjectTemplateByLocalIdAndMap(u8 localId, u8 mapId, u8 mapGroupId) -GetFieldObjectTemplateByLocalIdAndMap: @ 808F128 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r3, r1, 24 - lsls r2, 24 - lsrs r2, 24 - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - movs r0, 0x5 - ldrsb r0, [r1, r0] - cmp r0, r3 - bne _0808F160 - movs r0, 0x4 - ldrsb r0, [r1, r0] - cmp r0, r2 - bne _0808F160 - movs r0, 0xC7 - lsls r0, 4 - adds r1, r0 - ldr r0, =gMapHeader - ldr r0, [r0, 0x4] - b _0808F16C - .pool -_0808F160: - adds r0, r2, 0 - adds r1, r3, 0 - bl get_mapheader_by_bank_and_number - ldr r0, [r0, 0x4] - ldr r1, [r0, 0x4] -_0808F16C: - ldrb r2, [r0] - adds r0, r4, 0 - bl FindFieldObjectTemplateInArrayByLocalId - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetFieldObjectTemplateByLocalIdAndMap - - thumb_func_start FindFieldObjectTemplateInArrayByLocalId -@ struct FieldObjectTemplate *FindFieldObjectTemplateInArrayByLocalId(u8 localId, struct FieldObjectTemplate *templates, u8 numTemplates) -FindFieldObjectTemplateInArrayByLocalId: @ 808F17C - push {r4,r5,lr} - adds r5, r1, 0 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r2, 24 - lsrs r2, 24 - movs r1, 0 - cmp r1, r2 - bcs _0808F1AA -_0808F18E: - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r3, r0, r5 - ldrb r0, [r3] - cmp r0, r4 - bne _0808F1A0 - adds r0, r3, 0 - b _0808F1AC -_0808F1A0: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, r2 - bcc _0808F18E -_0808F1AA: - movs r0, 0 -_0808F1AC: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end FindFieldObjectTemplateInArrayByLocalId - - thumb_func_start sub_808F1B4 -@ int sub_808F1B4(struct npc_state *fieldObject) -sub_808F1B4: @ 808F1B4 - push {r4,r5,lr} - adds r3, r0, 0 - ldrb r0, [r3, 0x9] - ldr r1, =gSaveBlock1Ptr - ldr r2, [r1] - movs r1, 0x5 - ldrsb r1, [r2, r1] - cmp r0, r1 - bne _0808F200 - ldrb r1, [r3, 0xA] - movs r0, 0x4 - ldrsb r0, [r2, r0] - cmp r1, r0 - beq _0808F1E2 - b _0808F200 - .pool -_0808F1D8: - movs r1, 0xC7 - lsls r1, 4 - adds r0, r1 - adds r0, r4, r0 - b _0808F202 -_0808F1E2: - movs r1, 0 - adds r4, r2, 0 - ldrb r3, [r3, 0x8] - movs r5, 0xC7 - lsls r5, 4 - adds r2, r4, r5 - movs r0, 0 -_0808F1F0: - ldrb r5, [r2] - cmp r3, r5 - beq _0808F1D8 - adds r2, 0x18 - adds r0, 0x18 - adds r1, 0x1 - cmp r1, 0x3F - ble _0808F1F0 -_0808F200: - movs r0, 0 -_0808F202: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_808F1B4 - - thumb_func_start sub_808F208 -@ void sub_808F208(struct npc_state *fieldObject) -sub_808F208: @ 808F208 - push {r4,lr} - adds r4, r0, 0 - bl sub_808F1B4 - adds r1, r0, 0 - cmp r1, 0 - beq _0808F222 - ldrh r0, [r4, 0x10] - subs r0, 0x7 - strh r0, [r1, 0x4] - ldrh r0, [r4, 0x12] - subs r0, 0x7 - strh r0, [r1, 0x6] -_0808F222: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_808F208 - - thumb_func_start sub_808F228 -sub_808F228: @ 808F228 - push {r4,lr} - adds r4, r1, 0 - bl sub_808F1B4 - cmp r0, 0 - beq _0808F236 - str r4, [r0, 0x10] -_0808F236: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_808F228 - - thumb_func_start sub_808F23C -sub_808F23C: @ 808F23C - push {r4,lr} - lsls r1, 24 - lsrs r4, r1, 24 - bl sub_808F1B4 - cmp r0, 0 - beq _0808F24C - strb r4, [r0, 0x9] -_0808F24C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_808F23C - - thumb_func_start sub_808F254 -@ void sub_808F254(u8 localId, u8 mapId, u8 mapGroupId) -sub_808F254: @ 808F254 - push {lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _0808F282 - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r0, r1 - bl sub_808F208 -_0808F282: - add sp, 0x4 - pop {r0} - bx r0 - .pool - thumb_func_end sub_808F254 - - thumb_func_start sub_808F28C -sub_808F28C: @ 808F28C - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r4, r3, 24 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _0808F2E8 - cmp r4, 0x6 - beq _0808F2B6 - cmp r4, 0x7 - beq _0808F2D4 - b _0808F2E8 -_0808F2B6: - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r0, r1 - ldr r1, =gUnknown_082766A2 - bl sub_808F228 - b _0808F2E8 - .pool -_0808F2D4: - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r0, r1 - ldr r1, =gUnknown_082766A6 - bl sub_808F228 -_0808F2E8: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_808F28C - - thumb_func_start npc_paltag_set_load -npc_paltag_set_load: @ 808F2F8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl gpu_pal_allocator_reset__manage_upper_four - ldr r1, =gUnknown_020375B6 - ldr r2, =0x000011ff - adds r0, r2, 0 - strh r0, [r1] - ldr r2, =gUnknown_020375B4 - strb r4, [r2] - cmp r4, 0x1 - bne _0808F344 - ldr r1, =gUnknown_0850BE38 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0 - movs r2, 0x6 - bl pal_patch_for_npc_range - ldr r1, =gReservedSpritePaletteCount - movs r0, 0x8 - strb r0, [r1] - b _0808F356 - .pool -_0808F344: - ldr r0, =gUnknown_0850BE38 - ldrb r1, [r2] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - movs r1, 0 - movs r2, 0xA - bl pal_patch_for_npc_range -_0808F356: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end npc_paltag_set_load - - thumb_func_start npc_paltag_by_palslot -npc_paltag_by_palslot: @ 808F360 - push {r4-r6,lr} - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x9 - bhi _0808F39C - ldr r1, =gUnknown_0850BE38 - ldr r0, =gUnknown_020375B4 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - lsls r0, r2, 1 - b _0808F390 - .pool -_0808F384: - adds r1, r4, 0x4 - adds r1, r2, r1 - ldr r0, =gUnknown_020375B4 - ldrb r0, [r0] - ldr r1, [r1] - lsls r0, 1 -_0808F390: - adds r0, r1 - ldrh r0, [r0] - b _0808F3CE - .pool -_0808F39C: - movs r3, 0 - ldr r0, =gUnknown_0850BD78 - ldrh r1, [r0] - ldr r2, =0x000011ff - adds r4, r0, 0 - cmp r1, r2 - beq _0808F3CC - adds r6, r4, 0 - ldr r0, =gUnknown_020375B6 - ldrh r1, [r0] - adds r5, r2, 0 -_0808F3B2: - lsls r2, r3, 3 - adds r0, r2, r6 - ldrh r0, [r0] - cmp r0, r1 - beq _0808F384 - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - lsls r0, r3, 3 - adds r0, r4 - ldrh r0, [r0] - cmp r0, r5 - bne _0808F3B2 -_0808F3CC: - ldr r0, =0x000011ff -_0808F3CE: - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end npc_paltag_by_palslot - - thumb_func_start FieldObjectCB_NoMovement1 -FieldObjectCB_NoMovement1: @ 808F3E0 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =FieldObjectCB2_NoMovement1 - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_NoMovement1 - - thumb_func_start FieldObjectCB2_NoMovement1 -FieldObjectCB2_NoMovement1: @ 808F404 - movs r0, 0 - bx lr - thumb_func_end FieldObjectCB2_NoMovement1 - - thumb_func_start FieldObjectCB_GoRandomDirections -FieldObjectCB_GoRandomDirections: @ 808F408 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =FieldObjectCB2_GoRandomDirections - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_GoRandomDirections - - thumb_func_start FieldObjectCB2_GoRandomDirections -FieldObjectCB2_GoRandomDirections: @ 808F42C - push {r4,lr} - ldr r3, =gUnknown_0850D6F4 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end FieldObjectCB2_GoRandomDirections - - thumb_func_start sub_808F44C -sub_808F44C: @ 808F44C - push {r4,lr} - adds r4, r1, 0 - bl npc_reset - movs r0, 0x1 - strh r0, [r4, 0x30] - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_808F44C - - thumb_func_start sub_808F460 -sub_808F460: @ 808F460 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl GetFaceDirectionAnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl FieldObjectSetRegularAnim - movs r0, 0x2 - strh r0, [r5, 0x30] - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_808F460 - - thumb_func_start sub_808F48C -sub_808F48C: @ 808F48C - push {r4-r6,lr} - adds r6, r1, 0 - bl FieldObjectExecRegularAnim - lsls r0, 24 - cmp r0, 0 - beq _0808F4C0 - ldr r5, =gUnknown_0850D6DC - bl Random - movs r4, 0x3 - adds r1, r4, 0 - ands r1, r0 - lsls r1, 1 - adds r1, r5 - movs r0, 0 - ldrsh r1, [r1, r0] - adds r0, r6, 0 - bl sub_8097978 - strh r4, [r6, 0x30] - movs r0, 0x1 - b _0808F4C2 - .pool -_0808F4C0: - movs r0, 0 -_0808F4C2: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_808F48C - - thumb_func_start sub_808F4C8 -sub_808F4C8: @ 808F4C8 - push {r4,lr} - adds r4, r1, 0 - adds r0, r4, 0 - bl sub_809797C - lsls r0, 24 - cmp r0, 0 - bne _0808F4DC - movs r0, 0 - b _0808F4E2 -_0808F4DC: - movs r0, 0x4 - strh r0, [r4, 0x30] - movs r0, 0x1 -_0808F4E2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_808F4C8 - - thumb_func_start sub_808F4E8 -sub_808F4E8: @ 808F4E8 - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r6, r1, 0 - ldr r1, =gUnknown_0850D710 - mov r0, sp - movs r2, 0x4 - bl memcpy - bl Random - movs r1, 0x3 - ands r1, r0 - mov r2, sp - adds r0, r2, r1 - ldrb r4, [r0] - adds r0, r5, 0 - adds r1, r4, 0 - bl FieldObjectSetDirection - movs r0, 0x5 - strh r0, [r6, 0x30] - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8092B88 - lsls r0, 24 - cmp r0, 0 - beq _0808F526 - movs r0, 0x1 - strh r0, [r6, 0x30] -_0808F526: - movs r0, 0x1 - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_808F4E8 - - thumb_func_start sub_808F534 -sub_808F534: @ 808F534 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrb r0, [r4, 0x18] - lsrs r0, 4 - bl GetGoSpeed0AnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl FieldObjectSetRegularAnim - ldrb r0, [r4] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r4] - movs r0, 0x6 - strh r0, [r5, 0x30] - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_808F534 - - thumb_func_start sub_808F564 -sub_808F564: @ 808F564 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl FieldObjectExecRegularAnim - lsls r0, 24 - cmp r0, 0 - beq _0808F582 - ldrb r0, [r4] - movs r1, 0x3 - negs r1, r1 - ands r1, r0 - strb r1, [r4] - movs r0, 0x1 - strh r0, [r5, 0x30] -_0808F582: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_808F564 - - thumb_func_start FieldObjectIsTrainerAndCloseToPlayer -@ bool8 FieldObjectIsTrainerAndCloseToPlayer(struct npc_state *fieldObject) -FieldObjectIsTrainerAndCloseToPlayer: @ 808F58C - push {r4-r7,lr} - sub sp, 0x4 - adds r5, r0, 0 - movs r0, 0x80 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - beq _0808F5F8 - ldrb r0, [r5, 0x7] - cmp r0, 0x1 - beq _0808F5A8 - cmp r0, 0x3 - bne _0808F5F8 -_0808F5A8: - mov r7, sp - adds r7, 0x2 - mov r0, sp - adds r1, r7, 0 - bl PlayerGetDestCoords - ldrh r2, [r5, 0x10] - ldrh r4, [r5, 0x12] - ldrb r1, [r5, 0x1D] - subs r3, r2, r1 - subs r0, r4, r1 - lsls r0, 16 - lsrs r5, r0, 16 - adds r2, r1, r2 - lsls r2, 16 - lsrs r2, 16 - adds r1, r4 - lsls r1, 16 - lsrs r6, r1, 16 - mov r0, sp - lsls r3, 16 - asrs r3, 16 - movs r1, 0 - ldrsh r4, [r0, r1] - cmp r3, r4 - bgt _0808F5F8 - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, r4 - blt _0808F5F8 - lsls r0, r5, 16 - asrs r0, 16 - movs r2, 0 - ldrsh r1, [r7, r2] - cmp r0, r1 - bgt _0808F5F8 - lsls r0, r6, 16 - asrs r0, 16 - cmp r0, r1 - bge _0808F5FC -_0808F5F8: - movs r0, 0 - b _0808F5FE -_0808F5FC: - movs r0, 0x1 -_0808F5FE: - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end FieldObjectIsTrainerAndCloseToPlayer - - thumb_func_start sub_808F608 -sub_808F608: @ 808F608 - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - lsls r1, 16 - lsrs r0, r1, 16 - lsls r2, 16 - lsls r3, 16 - cmp r2, r3 - ble _0808F626 - movs r2, 0x4 - lsls r0, r4, 16 - cmp r0, 0 - bge _0808F630 - movs r2, 0x3 - b _0808F630 -_0808F626: - movs r2, 0x1 - lsls r0, 16 - cmp r0, 0 - bge _0808F630 - movs r2, 0x2 -_0808F630: - adds r0, r2, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_808F608 - - thumb_func_start sub_808F638 -sub_808F638: @ 808F638 - push {lr} - movs r0, 0x1 - lsls r1, 16 - cmp r1, 0 - bge _0808F644 - movs r0, 0x2 -_0808F644: - pop {r1} - bx r1 - thumb_func_end sub_808F638 - - thumb_func_start sub_808F648 -sub_808F648: @ 808F648 - push {lr} - movs r1, 0x4 - lsls r0, 16 - cmp r0, 0 - bge _0808F654 - movs r1, 0x3 -_0808F654: - adds r0, r1, 0 - pop {r1} - bx r1 - thumb_func_end sub_808F648 - - thumb_func_start sub_808F65C -sub_808F65C: @ 808F65C - push {r4-r7,lr} - lsls r0, 16 - asrs r4, r0, 16 - lsls r1, 16 - asrs r5, r1, 16 - lsls r2, 16 - asrs r6, r2, 16 - lsls r3, 16 - asrs r7, r3, 16 - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - adds r3, r7, 0 - bl sub_808F608 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0808F698 - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - adds r3, r7, 0 - bl sub_808F648 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bne _0808F6B2 - b _0808F6B0 -_0808F698: - cmp r0, 0x4 - bne _0808F6B2 - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - adds r3, r7, 0 - bl sub_808F638 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0808F6B2 -_0808F6B0: - movs r0, 0x2 -_0808F6B2: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_808F65C - - thumb_func_start sub_808F6B8 -sub_808F6B8: @ 808F6B8 - push {r4-r7,lr} - lsls r0, 16 - asrs r4, r0, 16 - lsls r1, 16 - asrs r5, r1, 16 - lsls r2, 16 - asrs r6, r2, 16 - lsls r3, 16 - asrs r7, r3, 16 - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - adds r3, r7, 0 - bl sub_808F608 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0808F6F4 - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - adds r3, r7, 0 - bl sub_808F648 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bne _0808F70E - b _0808F70C -_0808F6F4: - cmp r0, 0x3 - bne _0808F70E - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - adds r3, r7, 0 - bl sub_808F638 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0808F70E -_0808F70C: - movs r0, 0x2 -_0808F70E: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_808F6B8 - - thumb_func_start sub_808F714 -sub_808F714: @ 808F714 - push {r4-r7,lr} - lsls r0, 16 - asrs r4, r0, 16 - lsls r1, 16 - asrs r5, r1, 16 - lsls r2, 16 - asrs r6, r2, 16 - lsls r3, 16 - asrs r7, r3, 16 - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - adds r3, r7, 0 - bl sub_808F608 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _0808F750 - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - adds r3, r7, 0 - bl sub_808F648 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bne _0808F76A - b _0808F768 -_0808F750: - cmp r0, 0x4 - bne _0808F76A - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - adds r3, r7, 0 - bl sub_808F638 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _0808F76A -_0808F768: - movs r0, 0x1 -_0808F76A: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_808F714 - - thumb_func_start sub_808F770 -sub_808F770: @ 808F770 - push {r4-r7,lr} - lsls r0, 16 - asrs r4, r0, 16 - lsls r1, 16 - asrs r5, r1, 16 - lsls r2, 16 - asrs r6, r2, 16 - lsls r3, 16 - asrs r7, r3, 16 - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - adds r3, r7, 0 - bl sub_808F608 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _0808F7AC - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - adds r3, r7, 0 - bl sub_808F648 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bne _0808F7C6 - b _0808F7C4 -_0808F7AC: - cmp r0, 0x3 - bne _0808F7C6 - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - adds r3, r7, 0 - bl sub_808F638 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _0808F7C6 -_0808F7C4: - movs r0, 0x1 -_0808F7C6: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_808F770 - - thumb_func_start sub_808F7CC -sub_808F7CC: @ 808F7CC - push {r4-r7,lr} - lsls r0, 16 - asrs r7, r0, 16 - lsls r1, 16 - asrs r6, r1, 16 - lsls r2, 16 - asrs r5, r2, 16 - lsls r3, 16 - asrs r4, r3, 16 - adds r0, r7, 0 - adds r1, r6, 0 - adds r2, r5, 0 - adds r3, r4, 0 - bl sub_808F608 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bne _0808F802 - adds r0, r7, 0 - adds r1, r6, 0 - adds r2, r5, 0 - adds r3, r4, 0 - bl sub_808F638 - lsls r0, 24 - lsrs r0, 24 -_0808F802: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_808F7CC - - thumb_func_start sub_808F808 -sub_808F808: @ 808F808 - push {r4-r7,lr} - lsls r0, 16 - asrs r7, r0, 16 - lsls r1, 16 - asrs r6, r1, 16 - lsls r2, 16 - asrs r5, r2, 16 - lsls r3, 16 - asrs r4, r3, 16 - adds r0, r7, 0 - adds r1, r6, 0 - adds r2, r5, 0 - adds r3, r4, 0 - bl sub_808F608 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bne _0808F83E - adds r0, r7, 0 - adds r1, r6, 0 - adds r2, r5, 0 - adds r3, r4, 0 - bl sub_808F638 - lsls r0, 24 - lsrs r0, 24 -_0808F83E: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_808F808 - - thumb_func_start sub_808F844 -sub_808F844: @ 808F844 - push {r4-r7,lr} - lsls r0, 16 - asrs r7, r0, 16 - lsls r1, 16 - asrs r6, r1, 16 - lsls r2, 16 - asrs r5, r2, 16 - lsls r3, 16 - asrs r4, r3, 16 - adds r0, r7, 0 - adds r1, r6, 0 - adds r2, r5, 0 - adds r3, r4, 0 - bl sub_808F608 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0808F87A - adds r0, r7, 0 - adds r1, r6, 0 - adds r2, r5, 0 - adds r3, r4, 0 - bl sub_808F648 - lsls r0, 24 - lsrs r0, 24 -_0808F87A: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_808F844 - - thumb_func_start sub_808F880 -sub_808F880: @ 808F880 - push {r4-r7,lr} - lsls r0, 16 - asrs r7, r0, 16 - lsls r1, 16 - asrs r6, r1, 16 - lsls r2, 16 - asrs r5, r2, 16 - lsls r3, 16 - asrs r4, r3, 16 - adds r0, r7, 0 - adds r1, r6, 0 - adds r2, r5, 0 - adds r3, r4, 0 - bl sub_808F608 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _0808F8B6 - adds r0, r7, 0 - adds r1, r6, 0 - adds r2, r5, 0 - adds r3, r4, 0 - bl sub_808F648 - lsls r0, 24 - lsrs r0, 24 -_0808F8B6: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_808F880 - - thumb_func_start sub_808F8BC -sub_808F8BC: @ 808F8BC - push {r4-r6,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r1, 24 - lsrs r6, r1, 24 - bl FieldObjectIsTrainerAndCloseToPlayer - lsls r0, 24 - cmp r0, 0 - bne _0808F8D4 - movs r0, 0 - b _0808F938 -_0808F8D4: - mov r5, sp - adds r5, 0x2 - mov r0, sp - adds r1, r5, 0 - bl PlayerGetDestCoords - mov r2, sp - mov r0, sp - ldrh r0, [r0] - ldrh r1, [r4, 0x10] - subs r0, r1 - strh r0, [r2] - ldrh r0, [r5] - ldrh r1, [r4, 0x12] - subs r0, r1 - strh r0, [r5] - mov r0, sp - ldrh r3, [r5] - ldrh r2, [r0] - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bge _0808F908 - negs r0, r0 - lsls r0, 16 - lsrs r2, r0, 16 -_0808F908: - lsls r0, r3, 16 - asrs r0, 16 - cmp r0, 0 - bge _0808F916 - negs r0, r0 - lsls r0, 16 - lsrs r3, r0, 16 -_0808F916: - ldr r0, =gUnknown_0850D714 - lsls r4, r6, 2 - adds r4, r0 - mov r0, sp - movs r6, 0 - ldrsh r0, [r0, r6] - movs r6, 0 - ldrsh r1, [r5, r6] - lsls r2, 16 - asrs r2, 16 - lsls r3, 16 - asrs r3, 16 - ldr r4, [r4] - bl _call_via_r4 - lsls r0, 24 - lsrs r0, 24 -_0808F938: - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_808F8BC - - thumb_func_start FieldObjectCB_LookRandomDirections -FieldObjectCB_LookRandomDirections: @ 808F944 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =FieldObjectCB2_LookRandomDirections - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_LookRandomDirections - - thumb_func_start FieldObjectCB2_LookRandomDirections -@ bool8 FieldObjectCB2_LookRandomDirections(struct npc_state *fieldObject, struct obj *object) -FieldObjectCB2_LookRandomDirections: @ 808F968 - push {r4,lr} - ldr r3, =gUnknown_0850D740 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end FieldObjectCB2_LookRandomDirections - - thumb_func_start sub_808F988 -@ bool8 sub_808F988(struct npc_state *fieldObject, struct obj *object) -sub_808F988: @ 808F988 - push {r4,lr} - adds r4, r1, 0 - bl npc_reset - movs r0, 0x1 - strh r0, [r4, 0x30] - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_808F988 - - thumb_func_start sub_808F99C -@ bool8 sub_808F99C(struct npc_state *fieldObject, struct obj *object) -sub_808F99C: @ 808F99C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl GetFaceDirectionAnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl FieldObjectSetRegularAnim - movs r0, 0x2 - strh r0, [r5, 0x30] - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_808F99C - - thumb_func_start sub_808F9C8 -@ bool8 sub_808F9C8(struct npc_state *fieldObject, struct obj *object) -sub_808F9C8: @ 808F9C8 - push {r4-r7,lr} - adds r6, r0, 0 - adds r7, r1, 0 - bl FieldObjectExecRegularAnim - lsls r0, 24 - cmp r0, 0 - beq _0808F9FE - ldr r4, =gUnknown_0850D6DC - bl Random - movs r5, 0x3 - adds r1, r5, 0 - ands r1, r0 - lsls r1, 1 - adds r1, r4 - movs r0, 0 - ldrsh r1, [r1, r0] - adds r0, r7, 0 - bl sub_8097978 - ldrb r1, [r6] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r6] - strh r5, [r7, 0x30] -_0808F9FE: - movs r0, 0 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_808F9C8 - - thumb_func_start sub_808FA0C -@ bool8 sub_808FA0C(struct npc_state *fieldObject, struct obj *object) -sub_808FA0C: @ 808FA0C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r0, r5, 0 - bl sub_809797C - lsls r0, 24 - cmp r0, 0 - bne _0808FA2A - adds r0, r4, 0 - bl FieldObjectIsTrainerAndCloseToPlayer - lsls r0, 24 - cmp r0, 0 - beq _0808FA32 -_0808FA2A: - movs r0, 0x4 - strh r0, [r5, 0x30] - movs r0, 0x1 - b _0808FA34 -_0808FA32: - movs r0, 0 -_0808FA34: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_808FA0C - - thumb_func_start sub_808FA3C -@ bool8 sub_808FA3C(struct npc_state *fieldObject, struct obj *object) -sub_808FA3C: @ 808FA3C - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, =gUnknown_0850D710 - mov r0, sp - movs r2, 0x4 - bl memcpy - adds r0, r4, 0 - movs r1, 0 - bl sub_808F8BC - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _0808FA6C - bl Random - movs r1, 0x3 - ands r1, r0 - mov r2, sp - adds r0, r2, r1 - ldrb r1, [r0] -_0808FA6C: - adds r0, r4, 0 - bl FieldObjectSetDirection - movs r0, 0x1 - strh r0, [r5, 0x30] - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_808FA3C - - thumb_func_start FieldObjectCB_RandomlyGoNorthOrSouth -FieldObjectCB_RandomlyGoNorthOrSouth: @ 808FA84 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =FieldObjectCB2_RandomlyGoNorthOrSouth - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_RandomlyGoNorthOrSouth - - thumb_func_start FieldObjectCB2_RandomlyGoNorthOrSouth -FieldObjectCB2_RandomlyGoNorthOrSouth: @ 808FAA8 - push {r4,lr} - ldr r3, =gUnknown_0850D754 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end FieldObjectCB2_RandomlyGoNorthOrSouth - - thumb_func_start sub_808FAC8 -sub_808FAC8: @ 808FAC8 - push {r4,lr} - adds r4, r1, 0 - bl npc_reset - movs r0, 0x1 - strh r0, [r4, 0x30] - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_808FAC8 - - thumb_func_start sub_808FADC -sub_808FADC: @ 808FADC - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl GetFaceDirectionAnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl FieldObjectSetRegularAnim - movs r0, 0x2 - strh r0, [r5, 0x30] - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_808FADC - - thumb_func_start sub_808FB08 -@ bool8 sub_808FB08(struct npc_state *fieldObject, struct obj *object) -sub_808FB08: @ 808FB08 - push {r4-r6,lr} - adds r6, r1, 0 - bl FieldObjectExecRegularAnim - lsls r0, 24 - cmp r0, 0 - beq _0808FB3C - ldr r5, =gUnknown_0850D6DC - bl Random - movs r4, 0x3 - adds r1, r4, 0 - ands r1, r0 - lsls r1, 1 - adds r1, r5 - movs r0, 0 - ldrsh r1, [r1, r0] - adds r0, r6, 0 - bl sub_8097978 - strh r4, [r6, 0x30] - movs r0, 0x1 - b _0808FB3E - .pool -_0808FB3C: - movs r0, 0 -_0808FB3E: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_808FB08 - - thumb_func_start sub_808FB44 -@ bool8 sub_808FB44(struct npc_state *fieldObject, struct obj *object) -sub_808FB44: @ 808FB44 - push {r4,lr} - adds r4, r1, 0 - adds r0, r4, 0 - bl sub_809797C - lsls r0, 24 - cmp r0, 0 - bne _0808FB58 - movs r0, 0 - b _0808FB5E -_0808FB58: - movs r0, 0x4 - strh r0, [r4, 0x30] - movs r0, 0x1 -_0808FB5E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_808FB44 - - thumb_func_start sub_808FB64 -@ bool8 sub_808FB64(struct npc_state *fieldObject, struct obj *object) -sub_808FB64: @ 808FB64 - push {r4-r7,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r6, r1, 0 - ldr r1, =gUnknown_0850D770 - mov r0, sp - movs r2, 0x2 - bl memcpy - bl Random - movs r7, 0x1 - adds r1, r7, 0 - ands r1, r0 - mov r2, sp - adds r0, r2, r1 - ldrb r4, [r0] - adds r0, r5, 0 - adds r1, r4, 0 - bl FieldObjectSetDirection - movs r0, 0x5 - strh r0, [r6, 0x30] - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8092B88 - lsls r0, 24 - cmp r0, 0 - beq _0808FBA2 - strh r7, [r6, 0x30] -_0808FBA2: - movs r0, 0x1 - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_808FB64 - - thumb_func_start sub_808FBB0 -sub_808FBB0: @ 808FBB0 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrb r0, [r4, 0x18] - lsrs r0, 4 - bl GetGoSpeed0AnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl FieldObjectSetRegularAnim - ldrb r0, [r4] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r4] - movs r0, 0x6 - strh r0, [r5, 0x30] - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_808FBB0 - - thumb_func_start sub_808FBE0 -sub_808FBE0: @ 808FBE0 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl FieldObjectExecRegularAnim - lsls r0, 24 - cmp r0, 0 - beq _0808FBFE - ldrb r0, [r4] - movs r1, 0x3 - negs r1, r1 - ands r1, r0 - strb r1, [r4] - movs r0, 0x1 - strh r0, [r5, 0x30] -_0808FBFE: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_808FBE0 - - thumb_func_start FieldObjectCB_RandomlyGoEastOrWest -FieldObjectCB_RandomlyGoEastOrWest: @ 808FC08 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =FieldObjectCB2_RandomlyGoEastOrWest - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_RandomlyGoEastOrWest - - thumb_func_start FieldObjectCB2_RandomlyGoEastOrWest -FieldObjectCB2_RandomlyGoEastOrWest: @ 808FC2C - push {r4,lr} - ldr r3, =gUnknown_0850D774 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end FieldObjectCB2_RandomlyGoEastOrWest - - thumb_func_start sub_808FC4C -sub_808FC4C: @ 808FC4C - push {r4,lr} - adds r4, r1, 0 - bl npc_reset - movs r0, 0x1 - strh r0, [r4, 0x30] - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_808FC4C - - thumb_func_start sub_808FC60 -sub_808FC60: @ 808FC60 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl GetFaceDirectionAnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl FieldObjectSetRegularAnim - movs r0, 0x2 - strh r0, [r5, 0x30] - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_808FC60 - - thumb_func_start sub_808FC8C -sub_808FC8C: @ 808FC8C - push {r4-r6,lr} - adds r6, r1, 0 - bl FieldObjectExecRegularAnim - lsls r0, 24 - cmp r0, 0 - beq _0808FCC0 - ldr r5, =gUnknown_0850D6DC - bl Random - movs r4, 0x3 - adds r1, r4, 0 - ands r1, r0 - lsls r1, 1 - adds r1, r5 - movs r0, 0 - ldrsh r1, [r1, r0] - adds r0, r6, 0 - bl sub_8097978 - strh r4, [r6, 0x30] - movs r0, 0x1 - b _0808FCC2 - .pool -_0808FCC0: - movs r0, 0 -_0808FCC2: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_808FC8C - - thumb_func_start sub_808FCC8 -sub_808FCC8: @ 808FCC8 - push {r4,lr} - adds r4, r1, 0 - adds r0, r4, 0 - bl sub_809797C - lsls r0, 24 - cmp r0, 0 - bne _0808FCDC - movs r0, 0 - b _0808FCE2 -_0808FCDC: - movs r0, 0x4 - strh r0, [r4, 0x30] - movs r0, 0x1 -_0808FCE2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_808FCC8 - - thumb_func_start sub_808FCE8 -sub_808FCE8: @ 808FCE8 - push {r4-r7,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r6, r1, 0 - ldr r1, =gUnknown_0850D790 - mov r0, sp - movs r2, 0x2 - bl memcpy - bl Random - movs r7, 0x1 - adds r1, r7, 0 - ands r1, r0 - mov r2, sp - adds r0, r2, r1 - ldrb r4, [r0] - adds r0, r5, 0 - adds r1, r4, 0 - bl FieldObjectSetDirection - movs r0, 0x5 - strh r0, [r6, 0x30] - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8092B88 - lsls r0, 24 - cmp r0, 0 - beq _0808FD26 - strh r7, [r6, 0x30] -_0808FD26: - movs r0, 0x1 - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_808FCE8 - - thumb_func_start sub_808FD34 -sub_808FD34: @ 808FD34 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrb r0, [r4, 0x18] - lsrs r0, 4 - bl GetGoSpeed0AnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl FieldObjectSetRegularAnim - ldrb r0, [r4] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r4] - movs r0, 0x6 - strh r0, [r5, 0x30] - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_808FD34 - - thumb_func_start sub_808FD64 -sub_808FD64: @ 808FD64 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl FieldObjectExecRegularAnim - lsls r0, 24 - cmp r0, 0 - beq _0808FD82 - ldrb r0, [r4] - movs r1, 0x3 - negs r1, r1 - ands r1, r0 - strb r1, [r4] - movs r0, 0x1 - strh r0, [r5, 0x30] -_0808FD82: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_808FD64 - - thumb_func_start FieldObjectCB_FaceFixedDirection -FieldObjectCB_FaceFixedDirection: @ 808FD8C - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =FieldObjectCB2_FaceFixedDirection - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_FaceFixedDirection - - thumb_func_start FieldObjectCB2_FaceFixedDirection -@ bool8 FieldObjectCB2_FaceFixedDirection(struct npc_state *fieldObject, struct obj *object) -FieldObjectCB2_FaceFixedDirection: @ 808FDB0 - push {r4,lr} - ldr r3, =gUnknown_0850D794 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end FieldObjectCB2_FaceFixedDirection - - thumb_func_start sub_808FDD0 -@ bool8 sub_808FDD0(struct npc_state *fieldObject, struct obj *object) -sub_808FDD0: @ 808FDD0 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl npc_reset - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl GetFaceDirectionAnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl FieldObjectSetRegularAnim - movs r0, 0x1 - strh r0, [r5, 0x30] - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_808FDD0 - - thumb_func_start sub_808FDFC -@ bool8 sub_808FDFC(struct npc_state *fieldObject, struct obj *object) -sub_808FDFC: @ 808FDFC - push {r4,lr} - adds r4, r1, 0 - bl FieldObjectExecRegularAnim - lsls r0, 24 - cmp r0, 0 - bne _0808FE0E - movs r0, 0 - b _0808FE14 -_0808FE0E: - movs r0, 0x2 - strh r0, [r4, 0x30] - movs r0, 0x1 -_0808FE14: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_808FDFC - - thumb_func_start sub_808FE1C -@ bool8 sub_808FE1C(struct npc_state *fieldObject, struct obj *object) -sub_808FE1C: @ 808FE1C - ldrb r2, [r0] - movs r1, 0x3 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - movs r0, 0 - bx lr - thumb_func_end sub_808FE1C - - thumb_func_start FieldObjectCB_BerryTree -FieldObjectCB_BerryTree: @ 808FE2C - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r5, r0, r1 - ldrh r1, [r4, 0x3C] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0808FE58 - adds r0, r5, 0 - adds r1, r4, 0 - bl get_berry_tree_graphics - ldrh r1, [r4, 0x3C] - movs r0, 0x1 - orrs r0, r1 - strh r0, [r4, 0x3C] -_0808FE58: - ldr r2, =FieldObjectCB2_BerryTree - adds r0, r5, 0 - adds r1, r4, 0 - bl FieldObjectStep - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_BerryTree - - thumb_func_start FieldObjectCB2_BerryTree -FieldObjectCB2_BerryTree: @ 808FE70 - push {r4,lr} - ldr r3, =gUnknown_0850D7A0 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end FieldObjectCB2_BerryTree - - thumb_func_start do_berry_tree_growth_sparkle_1 -@ bool8 do_berry_tree_growth_sparkle_1(struct npc_state *fieldObject, struct obj *object) -do_berry_tree_growth_sparkle_1: @ 808FE90 - push {r4-r7,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl npc_reset - ldrb r0, [r4, 0x1] - movs r1, 0x20 - orrs r0, r1 - strb r0, [r4, 0x1] - adds r6, r5, 0 - adds r6, 0x3E - ldrb r0, [r6] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r6] - ldrb r0, [r4, 0x1D] - bl GetStageByBerryTreeId - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0 - bne _0808FF00 - ldrh r1, [r5, 0x3C] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - bne _0808FEF6 - subs r6, 0x14 - ldrb r0, [r6] - cmp r0, 0x4 - bne _0808FEF6 - ldr r1, =gUnknown_02038C08 - movs r2, 0x10 - ldrsh r0, [r4, r2] - str r0, [r1] - movs r2, 0x12 - ldrsh r0, [r4, r2] - str r0, [r1, 0x4] - adds r0, r5, 0 - adds r0, 0x43 - ldrb r0, [r0] - subs r0, 0x1 - str r0, [r1, 0x8] - ldrb r0, [r5, 0x5] - lsls r0, 28 - lsrs r0, 30 - str r0, [r1, 0xC] - movs r0, 0x17 - bl FieldEffectStart - strb r7, [r6] -_0808FEF6: - movs r0, 0 - b _0808FF42 - .pool -_0808FF00: - ldrb r1, [r4, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x1] - ldrb r1, [r6] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r6] - subs r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r5, 0 - adds r0, 0x2A - ldrb r0, [r0] - cmp r0, r7 - bne _0808FF3C - adds r0, r4, 0 - adds r1, r5, 0 - bl get_berry_tree_graphics - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x39 - bl FieldObjectSetRegularAnim - movs r0, 0x1 - strh r0, [r5, 0x30] - b _0808FF42 -_0808FF3C: - movs r0, 0x2 - strh r0, [r5, 0x30] - movs r0, 0x1 -_0808FF42: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end do_berry_tree_growth_sparkle_1 - - thumb_func_start sub_808FF48 -@ bool8 sub_808FF48(struct npc_state *fieldObject, struct obj *object) -sub_808FF48: @ 808FF48 - push {r4,lr} - adds r4, r1, 0 - bl FieldObjectExecRegularAnim - lsls r0, 24 - cmp r0, 0 - bne _0808FF5A - movs r0, 0 - b _0808FF60 -_0808FF5A: - movs r0, 0 - strh r0, [r4, 0x30] - movs r0, 0x1 -_0808FF60: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_808FF48 - - thumb_func_start do_berry_tree_growth_sparkle_2 -@ bool8 do_berry_tree_growth_sparkle_2(struct npc_state *fieldObject, struct obj *object) -do_berry_tree_growth_sparkle_2: @ 808FF68 - push {r4,lr} - ldrb r2, [r0] - movs r3, 0x2 - orrs r2, r3 - strb r2, [r0] - movs r3, 0 - movs r2, 0x3 - strh r2, [r1, 0x30] - strh r3, [r1, 0x32] - ldrh r3, [r1, 0x3C] - movs r2, 0x2 - orrs r2, r3 - strh r2, [r1, 0x3C] - ldr r3, =gUnknown_02038C08 - movs r4, 0x10 - ldrsh r2, [r0, r4] - str r2, [r3] - movs r2, 0x12 - ldrsh r0, [r0, r2] - str r0, [r3, 0x4] - adds r0, r1, 0 - adds r0, 0x43 - ldrb r0, [r0] - subs r0, 0x1 - str r0, [r3, 0x8] - ldrb r0, [r1, 0x5] - lsls r0, 28 - lsrs r0, 30 - str r0, [r3, 0xC] - movs r0, 0x17 - bl FieldEffectStart - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end do_berry_tree_growth_sparkle_2 - - thumb_func_start sub_808FFB4 -@ bool8 sub_808FFB4(struct npc_state *fieldObject, struct obj *object) -sub_808FFB4: @ 808FFB4 - push {r4,lr} - adds r3, r0, 0 - adds r4, r1, 0 - ldrh r1, [r4, 0x32] - adds r1, 0x1 - strh r1, [r4, 0x32] - movs r0, 0x2 - ands r1, r0 - lsls r1, 16 - lsrs r1, 17 - lsls r1, 5 - ldrb r2, [r3, 0x1] - subs r0, 0x23 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x1] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0x40 - bgt _0808FFEC - movs r0, 0 - b _0808FFFE -_0808FFEC: - adds r0, r3, 0 - adds r1, r4, 0 - bl get_berry_tree_graphics - movs r0, 0x4 - strh r0, [r4, 0x30] - movs r0, 0 - strh r0, [r4, 0x32] - movs r0, 0x1 -_0808FFFE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_808FFB4 - - thumb_func_start sub_8090004 -@ bool8 sub_8090004(struct npc_state *fieldObject, struct obj *object) -sub_8090004: @ 8090004 - push {r4,lr} - adds r4, r1, 0 - ldrh r2, [r4, 0x32] - adds r2, 0x1 - strh r2, [r4, 0x32] - movs r1, 0x2 - ands r2, r1 - lsls r2, 16 - lsrs r2, 17 - lsls r2, 5 - ldrb r3, [r0, 0x1] - subs r1, 0x23 - ands r1, r3 - orrs r1, r2 - strb r1, [r0, 0x1] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0x40 - bgt _0809003A - movs r0, 0 - b _08090048 -_0809003A: - movs r0, 0 - strh r0, [r4, 0x30] - ldrh r1, [r4, 0x3C] - subs r0, 0x3 - ands r0, r1 - strh r0, [r4, 0x3C] - movs r0, 0x1 -_08090048: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8090004 - - thumb_func_start FieldObjectCB_RandomlyLookNorthOrSouth -FieldObjectCB_RandomlyLookNorthOrSouth: @ 8090050 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =FieldObjectCB2_RandomlyLookNorthOrSouth - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_RandomlyLookNorthOrSouth - - thumb_func_start FieldObjectCB2_RandomlyLookNorthOrSouth -FieldObjectCB2_RandomlyLookNorthOrSouth: @ 8090074 - push {r4,lr} - ldr r3, =gUnknown_0850D7B4 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end FieldObjectCB2_RandomlyLookNorthOrSouth - - thumb_func_start sub_8090094 -sub_8090094: @ 8090094 - push {r4,lr} - adds r4, r1, 0 - bl npc_reset - movs r0, 0x1 - strh r0, [r4, 0x30] - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8090094 - - thumb_func_start sub_80900A8 -sub_80900A8: @ 80900A8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl GetFaceDirectionAnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl FieldObjectSetRegularAnim - movs r0, 0x2 - strh r0, [r5, 0x30] - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80900A8 - - thumb_func_start sub_80900D4 -sub_80900D4: @ 80900D4 - push {r4-r7,lr} - adds r6, r0, 0 - adds r7, r1, 0 - bl FieldObjectExecRegularAnim - lsls r0, 24 - cmp r0, 0 - beq _0809010A - ldr r4, =gUnknown_0850D6DC - bl Random - movs r5, 0x3 - adds r1, r5, 0 - ands r1, r0 - lsls r1, 1 - adds r1, r4 - movs r0, 0 - ldrsh r1, [r1, r0] - adds r0, r7, 0 - bl sub_8097978 - ldrb r1, [r6] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r6] - strh r5, [r7, 0x30] -_0809010A: - movs r0, 0 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80900D4 - - thumb_func_start sub_8090118 -sub_8090118: @ 8090118 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r0, r5, 0 - bl sub_809797C - lsls r0, 24 - cmp r0, 0 - bne _08090136 - adds r0, r4, 0 - bl FieldObjectIsTrainerAndCloseToPlayer - lsls r0, 24 - cmp r0, 0 - beq _0809013E -_08090136: - movs r0, 0x4 - strh r0, [r5, 0x30] - movs r0, 0x1 - b _08090140 -_0809013E: - movs r0, 0 -_08090140: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8090118 - - thumb_func_start sub_8090148 -sub_8090148: @ 8090148 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, =gUnknown_0850D770 - mov r0, sp - movs r2, 0x2 - bl memcpy - adds r0, r4, 0 - movs r1, 0x1 - bl sub_808F8BC - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _08090178 - bl Random - movs r1, 0x1 - ands r1, r0 - mov r2, sp - adds r0, r2, r1 - ldrb r1, [r0] -_08090178: - adds r0, r4, 0 - bl FieldObjectSetDirection - movs r0, 0x1 - strh r0, [r5, 0x30] - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8090148 - - thumb_func_start FieldObjectCB_RandomlyLookEastOrWest -FieldObjectCB_RandomlyLookEastOrWest: @ 8090190 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =FieldObjectCB2_RandomlyLookEastOrWest - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_RandomlyLookEastOrWest - - thumb_func_start FieldObjectCB2_RandomlyLookEastOrWest -FieldObjectCB2_RandomlyLookEastOrWest: @ 80901B4 - push {r4,lr} - ldr r3, =gUnknown_0850D7C8 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end FieldObjectCB2_RandomlyLookEastOrWest - - thumb_func_start sub_80901D4 -sub_80901D4: @ 80901D4 - push {r4,lr} - adds r4, r1, 0 - bl npc_reset - movs r0, 0x1 - strh r0, [r4, 0x30] - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80901D4 - - thumb_func_start sub_80901E8 -sub_80901E8: @ 80901E8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl GetFaceDirectionAnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl FieldObjectSetRegularAnim - movs r0, 0x2 - strh r0, [r5, 0x30] - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80901E8 - - thumb_func_start sub_8090214 -sub_8090214: @ 8090214 - push {r4-r7,lr} - adds r6, r0, 0 - adds r7, r1, 0 - bl FieldObjectExecRegularAnim - lsls r0, 24 - cmp r0, 0 - beq _0809024A - ldr r4, =gUnknown_0850D6DC - bl Random - movs r5, 0x3 - adds r1, r5, 0 - ands r1, r0 - lsls r1, 1 - adds r1, r4 - movs r0, 0 - ldrsh r1, [r1, r0] - adds r0, r7, 0 - bl sub_8097978 - ldrb r1, [r6] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r6] - strh r5, [r7, 0x30] -_0809024A: - movs r0, 0 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8090214 - - thumb_func_start sub_8090258 -sub_8090258: @ 8090258 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r0, r5, 0 - bl sub_809797C - lsls r0, 24 - cmp r0, 0 - bne _08090276 - adds r0, r4, 0 - bl FieldObjectIsTrainerAndCloseToPlayer - lsls r0, 24 - cmp r0, 0 - beq _0809027E -_08090276: - movs r0, 0x4 - strh r0, [r5, 0x30] - movs r0, 0x1 - b _08090280 -_0809027E: - movs r0, 0 -_08090280: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8090258 - - thumb_func_start sub_8090288 -sub_8090288: @ 8090288 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, =gUnknown_0850D790 - mov r0, sp - movs r2, 0x2 - bl memcpy - adds r0, r4, 0 - movs r1, 0x2 - bl sub_808F8BC - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _080902B8 - bl Random - movs r1, 0x1 - ands r1, r0 - mov r2, sp - adds r0, r2, r1 - ldrb r1, [r0] -_080902B8: - adds r0, r4, 0 - bl FieldObjectSetDirection - movs r0, 0x1 - strh r0, [r5, 0x30] - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8090288 - - thumb_func_start FieldObjectCB_RandomlyLookNorthOrWest -FieldObjectCB_RandomlyLookNorthOrWest: @ 80902D0 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =FieldObjectCB2_RandomlyLookNorthOrWest - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_RandomlyLookNorthOrWest - - thumb_func_start FieldObjectCB2_RandomlyLookNorthOrWest -FieldObjectCB2_RandomlyLookNorthOrWest: @ 80902F4 - push {r4,lr} - ldr r3, =gUnknown_0850D7DC - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end FieldObjectCB2_RandomlyLookNorthOrWest - - thumb_func_start sub_8090314 -sub_8090314: @ 8090314 - push {r4,lr} - adds r4, r1, 0 - bl npc_reset - movs r0, 0x1 - strh r0, [r4, 0x30] - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8090314 - - thumb_func_start sub_8090328 -sub_8090328: @ 8090328 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl GetFaceDirectionAnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl FieldObjectSetRegularAnim - movs r0, 0x2 - strh r0, [r5, 0x30] - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8090328 - - thumb_func_start sub_8090354 -sub_8090354: @ 8090354 - push {r4-r7,lr} - adds r6, r0, 0 - adds r7, r1, 0 - bl FieldObjectExecRegularAnim - lsls r0, 24 - cmp r0, 0 - beq _0809038A - ldr r4, =gUnknown_0850D6EC - bl Random - movs r5, 0x3 - adds r1, r5, 0 - ands r1, r0 - lsls r1, 1 - adds r1, r4 - movs r0, 0 - ldrsh r1, [r1, r0] - adds r0, r7, 0 - bl sub_8097978 - ldrb r1, [r6] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r6] - strh r5, [r7, 0x30] -_0809038A: - movs r0, 0 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8090354 - - thumb_func_start sub_8090398 -sub_8090398: @ 8090398 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r0, r5, 0 - bl sub_809797C - lsls r0, 24 - cmp r0, 0 - bne _080903B6 - adds r0, r4, 0 - bl FieldObjectIsTrainerAndCloseToPlayer - lsls r0, 24 - cmp r0, 0 - beq _080903BE -_080903B6: - movs r0, 0x4 - strh r0, [r5, 0x30] - movs r0, 0x1 - b _080903C0 -_080903BE: - movs r0, 0 -_080903C0: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8090398 - - thumb_func_start sub_80903C8 -sub_80903C8: @ 80903C8 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, =gUnknown_0850D7F0 - mov r0, sp - movs r2, 0x2 - bl memcpy - adds r0, r4, 0 - movs r1, 0x3 - bl sub_808F8BC - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _080903F8 - bl Random - movs r1, 0x1 - ands r1, r0 - mov r2, sp - adds r0, r2, r1 - ldrb r1, [r0] -_080903F8: - adds r0, r4, 0 - bl FieldObjectSetDirection - movs r0, 0x1 - strh r0, [r5, 0x30] - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80903C8 - - thumb_func_start FieldObjectCB_RandomlyLookNorthOrEast -FieldObjectCB_RandomlyLookNorthOrEast: @ 8090410 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =sub_8090434 - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_RandomlyLookNorthOrEast - - thumb_func_start sub_8090434 -sub_8090434: @ 8090434 - push {r4,lr} - ldr r3, =gUnknown_0850D7F4 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8090434 - - thumb_func_start sub_8090454 -sub_8090454: @ 8090454 - push {r4,lr} - adds r4, r1, 0 - bl npc_reset - movs r0, 0x1 - strh r0, [r4, 0x30] - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8090454 - - thumb_func_start sub_8090468 -sub_8090468: @ 8090468 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl GetFaceDirectionAnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl FieldObjectSetRegularAnim - movs r0, 0x2 - strh r0, [r5, 0x30] - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8090468 - - thumb_func_start sub_8090494 -sub_8090494: @ 8090494 - push {r4-r7,lr} - adds r6, r0, 0 - adds r7, r1, 0 - bl FieldObjectExecRegularAnim - lsls r0, 24 - cmp r0, 0 - beq _080904CA - ldr r4, =gUnknown_0850D6EC - bl Random - movs r5, 0x3 - adds r1, r5, 0 - ands r1, r0 - lsls r1, 1 - adds r1, r4 - movs r0, 0 - ldrsh r1, [r1, r0] - adds r0, r7, 0 - bl sub_8097978 - ldrb r1, [r6] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r6] - strh r5, [r7, 0x30] -_080904CA: - movs r0, 0 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8090494 - - thumb_func_start sub_80904D8 -sub_80904D8: @ 80904D8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r0, r5, 0 - bl sub_809797C - lsls r0, 24 - cmp r0, 0 - bne _080904F6 - adds r0, r4, 0 - bl FieldObjectIsTrainerAndCloseToPlayer - lsls r0, 24 - cmp r0, 0 - beq _080904FE -_080904F6: - movs r0, 0x4 - strh r0, [r5, 0x30] - movs r0, 0x1 - b _08090500 -_080904FE: - movs r0, 0 -_08090500: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80904D8 - - thumb_func_start sub_8090508 -sub_8090508: @ 8090508 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, =gUnknown_0850D808 - mov r0, sp - movs r2, 0x2 - bl memcpy - adds r0, r4, 0 - movs r1, 0x4 - bl sub_808F8BC - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _08090538 - bl Random - movs r1, 0x1 - ands r1, r0 - mov r2, sp - adds r0, r2, r1 - ldrb r1, [r0] -_08090538: - adds r0, r4, 0 - bl FieldObjectSetDirection - movs r0, 0x1 - strh r0, [r5, 0x30] - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8090508 - - thumb_func_start FieldObjectCB_RandomlyLookSouthOrWest -FieldObjectCB_RandomlyLookSouthOrWest: @ 8090550 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =sub_8090574 - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_RandomlyLookSouthOrWest - - thumb_func_start sub_8090574 -sub_8090574: @ 8090574 - push {r4,lr} - ldr r3, =gUnknown_0850D80C - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8090574 - - thumb_func_start sub_8090594 -sub_8090594: @ 8090594 - push {r4,lr} - adds r4, r1, 0 - bl npc_reset - movs r0, 0x1 - strh r0, [r4, 0x30] - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8090594 - - thumb_func_start sub_80905A8 -sub_80905A8: @ 80905A8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl GetFaceDirectionAnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl FieldObjectSetRegularAnim - movs r0, 0x2 - strh r0, [r5, 0x30] - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80905A8 - - thumb_func_start sub_80905D4 -sub_80905D4: @ 80905D4 - push {r4-r7,lr} - adds r6, r0, 0 - adds r7, r1, 0 - bl FieldObjectExecRegularAnim - lsls r0, 24 - cmp r0, 0 - beq _0809060A - ldr r4, =gUnknown_0850D6EC - bl Random - movs r5, 0x3 - adds r1, r5, 0 - ands r1, r0 - lsls r1, 1 - adds r1, r4 - movs r0, 0 - ldrsh r1, [r1, r0] - adds r0, r7, 0 - bl sub_8097978 - ldrb r1, [r6] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r6] - strh r5, [r7, 0x30] -_0809060A: - movs r0, 0 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80905D4 - - thumb_func_start sub_8090618 -sub_8090618: @ 8090618 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r0, r5, 0 - bl sub_809797C - lsls r0, 24 - cmp r0, 0 - bne _08090636 - adds r0, r4, 0 - bl FieldObjectIsTrainerAndCloseToPlayer - lsls r0, 24 - cmp r0, 0 - beq _0809063E -_08090636: - movs r0, 0x4 - strh r0, [r5, 0x30] - movs r0, 0x1 - b _08090640 -_0809063E: - movs r0, 0 -_08090640: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8090618 - - thumb_func_start sub_8090648 -sub_8090648: @ 8090648 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, =gUnknown_0850D820 - mov r0, sp - movs r2, 0x2 - bl memcpy - adds r0, r4, 0 - movs r1, 0x5 - bl sub_808F8BC - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _08090678 - bl Random - movs r1, 0x1 - ands r1, r0 - mov r2, sp - adds r0, r2, r1 - ldrb r1, [r0] -_08090678: - adds r0, r4, 0 - bl FieldObjectSetDirection - movs r0, 0x1 - strh r0, [r5, 0x30] - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8090648 - - thumb_func_start FieldObjectCB_RandomlyLookSouthOrEast -FieldObjectCB_RandomlyLookSouthOrEast: @ 8090690 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =sub_80906B4 - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_RandomlyLookSouthOrEast - - thumb_func_start sub_80906B4 -sub_80906B4: @ 80906B4 - push {r4,lr} - ldr r3, =gUnknown_0850D824 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80906B4 - - thumb_func_start sub_80906D4 -sub_80906D4: @ 80906D4 - push {r4,lr} - adds r4, r1, 0 - bl npc_reset - movs r0, 0x1 - strh r0, [r4, 0x30] - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80906D4 - - thumb_func_start sub_80906E8 -sub_80906E8: @ 80906E8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl GetFaceDirectionAnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl FieldObjectSetRegularAnim - movs r0, 0x2 - strh r0, [r5, 0x30] - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80906E8 - - thumb_func_start sub_8090714 -sub_8090714: @ 8090714 - push {r4-r7,lr} - adds r6, r0, 0 - adds r7, r1, 0 - bl FieldObjectExecRegularAnim - lsls r0, 24 - cmp r0, 0 - beq _0809074A - ldr r4, =gUnknown_0850D6EC - bl Random - movs r5, 0x3 - adds r1, r5, 0 - ands r1, r0 - lsls r1, 1 - adds r1, r4 - movs r0, 0 - ldrsh r1, [r1, r0] - adds r0, r7, 0 - bl sub_8097978 - ldrb r1, [r6] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r6] - strh r5, [r7, 0x30] -_0809074A: - movs r0, 0 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8090714 - - thumb_func_start sub_8090758 -sub_8090758: @ 8090758 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r0, r5, 0 - bl sub_809797C - lsls r0, 24 - cmp r0, 0 - bne _08090776 - adds r0, r4, 0 - bl FieldObjectIsTrainerAndCloseToPlayer - lsls r0, 24 - cmp r0, 0 - beq _0809077E -_08090776: - movs r0, 0x4 - strh r0, [r5, 0x30] - movs r0, 0x1 - b _08090780 -_0809077E: - movs r0, 0 -_08090780: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8090758 - - thumb_func_start sub_8090788 -sub_8090788: @ 8090788 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, =gUnknown_0850D838 - mov r0, sp - movs r2, 0x2 - bl memcpy - adds r0, r4, 0 - movs r1, 0x6 - bl sub_808F8BC - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _080907B8 - bl Random - movs r1, 0x1 - ands r1, r0 - mov r2, sp - adds r0, r2, r1 - ldrb r1, [r0] -_080907B8: - adds r0, r4, 0 - bl FieldObjectSetDirection - movs r0, 0x1 - strh r0, [r5, 0x30] - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8090788 - - thumb_func_start FieldObjectCB_RandomlyLookNorthOrSouthOrWest -FieldObjectCB_RandomlyLookNorthOrSouthOrWest: @ 80907D0 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =sub_80907F4 - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_RandomlyLookNorthOrSouthOrWest - - thumb_func_start sub_80907F4 -sub_80907F4: @ 80907F4 - push {r4,lr} - ldr r3, =gUnknown_0850D83C - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80907F4 - - thumb_func_start sub_8090814 -sub_8090814: @ 8090814 - push {r4,lr} - adds r4, r1, 0 - bl npc_reset - movs r0, 0x1 - strh r0, [r4, 0x30] - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8090814 - - thumb_func_start sub_8090828 -sub_8090828: @ 8090828 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl GetFaceDirectionAnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl FieldObjectSetRegularAnim - movs r0, 0x2 - strh r0, [r5, 0x30] - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8090828 - - thumb_func_start sub_8090854 -sub_8090854: @ 8090854 - push {r4-r7,lr} - adds r6, r0, 0 - adds r7, r1, 0 - bl FieldObjectExecRegularAnim - lsls r0, 24 - cmp r0, 0 - beq _0809088A - ldr r4, =gUnknown_0850D6EC - bl Random - movs r5, 0x3 - adds r1, r5, 0 - ands r1, r0 - lsls r1, 1 - adds r1, r4 - movs r0, 0 - ldrsh r1, [r1, r0] - adds r0, r7, 0 - bl sub_8097978 - ldrb r1, [r6] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r6] - strh r5, [r7, 0x30] -_0809088A: - movs r0, 0 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8090854 - - thumb_func_start sub_8090898 -sub_8090898: @ 8090898 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r0, r5, 0 - bl sub_809797C - lsls r0, 24 - cmp r0, 0 - bne _080908B6 - adds r0, r4, 0 - bl FieldObjectIsTrainerAndCloseToPlayer - lsls r0, 24 - cmp r0, 0 - beq _080908BE -_080908B6: - movs r0, 0x4 - strh r0, [r5, 0x30] - movs r0, 0x1 - b _080908C0 -_080908BE: - movs r0, 0 -_080908C0: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8090898 - - thumb_func_start sub_80908C8 -sub_80908C8: @ 80908C8 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, =gUnknown_0850D850 - mov r0, sp - movs r2, 0x4 - bl memcpy - adds r0, r4, 0 - movs r1, 0x7 - bl sub_808F8BC - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _080908F8 - bl Random - movs r1, 0x3 - ands r1, r0 - mov r2, sp - adds r0, r2, r1 - ldrb r1, [r0] -_080908F8: - adds r0, r4, 0 - bl FieldObjectSetDirection - movs r0, 0x1 - strh r0, [r5, 0x30] - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80908C8 - - thumb_func_start FieldObjectCB_RandomlyLookNorthOrSouthOrEast -FieldObjectCB_RandomlyLookNorthOrSouthOrEast: @ 8090910 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =sub_8090934 - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_RandomlyLookNorthOrSouthOrEast - - thumb_func_start sub_8090934 -sub_8090934: @ 8090934 - push {r4,lr} - ldr r3, =gUnknown_0850D854 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8090934 - - thumb_func_start sub_8090954 -sub_8090954: @ 8090954 - push {r4,lr} - adds r4, r1, 0 - bl npc_reset - movs r0, 0x1 - strh r0, [r4, 0x30] - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8090954 - - thumb_func_start sub_8090968 -sub_8090968: @ 8090968 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl GetFaceDirectionAnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl FieldObjectSetRegularAnim - movs r0, 0x2 - strh r0, [r5, 0x30] - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8090968 - - thumb_func_start sub_8090994 -sub_8090994: @ 8090994 - push {r4-r7,lr} - adds r6, r0, 0 - adds r7, r1, 0 - bl FieldObjectExecRegularAnim - lsls r0, 24 - cmp r0, 0 - beq _080909CA - ldr r4, =gUnknown_0850D6EC - bl Random - movs r5, 0x3 - adds r1, r5, 0 - ands r1, r0 - lsls r1, 1 - adds r1, r4 - movs r0, 0 - ldrsh r1, [r1, r0] - adds r0, r7, 0 - bl sub_8097978 - ldrb r1, [r6] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r6] - strh r5, [r7, 0x30] -_080909CA: - movs r0, 0 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8090994 - - thumb_func_start sub_80909D8 -sub_80909D8: @ 80909D8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r0, r5, 0 - bl sub_809797C - lsls r0, 24 - cmp r0, 0 - bne _080909F6 - adds r0, r4, 0 - bl FieldObjectIsTrainerAndCloseToPlayer - lsls r0, 24 - cmp r0, 0 - beq _080909FE -_080909F6: - movs r0, 0x4 - strh r0, [r5, 0x30] - movs r0, 0x1 - b _08090A00 -_080909FE: - movs r0, 0 -_08090A00: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80909D8 - - thumb_func_start sub_8090A08 -sub_8090A08: @ 8090A08 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, =gUnknown_0850D868 - mov r0, sp - movs r2, 0x4 - bl memcpy - adds r0, r4, 0 - movs r1, 0x8 - bl sub_808F8BC - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _08090A38 - bl Random - movs r1, 0x3 - ands r1, r0 - mov r2, sp - adds r0, r2, r1 - ldrb r1, [r0] -_08090A38: - adds r0, r4, 0 - bl FieldObjectSetDirection - movs r0, 0x1 - strh r0, [r5, 0x30] - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8090A08 - - thumb_func_start FieldObjectCB_RandomlyLookNorthOrEastOrWest -FieldObjectCB_RandomlyLookNorthOrEastOrWest: @ 8090A50 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =sub_8090A74 - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_RandomlyLookNorthOrEastOrWest - - thumb_func_start sub_8090A74 -sub_8090A74: @ 8090A74 - push {r4,lr} - ldr r3, =gUnknown_0850D86C - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8090A74 - - thumb_func_start sub_8090A94 -sub_8090A94: @ 8090A94 - push {r4,lr} - adds r4, r1, 0 - bl npc_reset - movs r0, 0x1 - strh r0, [r4, 0x30] - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8090A94 - - thumb_func_start sub_8090AA8 -sub_8090AA8: @ 8090AA8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl GetFaceDirectionAnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl FieldObjectSetRegularAnim - movs r0, 0x2 - strh r0, [r5, 0x30] - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8090AA8 - - thumb_func_start sub_8090AD4 -sub_8090AD4: @ 8090AD4 - push {r4-r7,lr} - adds r6, r0, 0 - adds r7, r1, 0 - bl FieldObjectExecRegularAnim - lsls r0, 24 - cmp r0, 0 - beq _08090B0A - ldr r4, =gUnknown_0850D6EC - bl Random - movs r5, 0x3 - adds r1, r5, 0 - ands r1, r0 - lsls r1, 1 - adds r1, r4 - movs r0, 0 - ldrsh r1, [r1, r0] - adds r0, r7, 0 - bl sub_8097978 - ldrb r1, [r6] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r6] - strh r5, [r7, 0x30] -_08090B0A: - movs r0, 0 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8090AD4 - - thumb_func_start sub_8090B18 -sub_8090B18: @ 8090B18 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r0, r5, 0 - bl sub_809797C - lsls r0, 24 - cmp r0, 0 - bne _08090B36 - adds r0, r4, 0 - bl FieldObjectIsTrainerAndCloseToPlayer - lsls r0, 24 - cmp r0, 0 - beq _08090B3E -_08090B36: - movs r0, 0x4 - strh r0, [r5, 0x30] - movs r0, 0x1 - b _08090B40 -_08090B3E: - movs r0, 0 -_08090B40: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8090B18 - - thumb_func_start sub_8090B48 -sub_8090B48: @ 8090B48 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, =gUnknown_0850D880 - mov r0, sp - movs r2, 0x4 - bl memcpy - adds r0, r4, 0 - movs r1, 0x9 - bl sub_808F8BC - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _08090B78 - bl Random - movs r1, 0x3 - ands r1, r0 - mov r2, sp - adds r0, r2, r1 - ldrb r1, [r0] -_08090B78: - adds r0, r4, 0 - bl FieldObjectSetDirection - movs r0, 0x1 - strh r0, [r5, 0x30] - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8090B48 - - thumb_func_start FieldObjectCB_RandomlyLookSouthOrEastOrWest -FieldObjectCB_RandomlyLookSouthOrEastOrWest: @ 8090B90 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =sub_8090BB4 - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_RandomlyLookSouthOrEastOrWest - - thumb_func_start sub_8090BB4 -sub_8090BB4: @ 8090BB4 - push {r4,lr} - ldr r3, =gUnknown_0850D884 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8090BB4 - - thumb_func_start sub_8090BD4 -sub_8090BD4: @ 8090BD4 - push {r4,lr} - adds r4, r1, 0 - bl npc_reset - movs r0, 0x1 - strh r0, [r4, 0x30] - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8090BD4 - - thumb_func_start sub_8090BE8 -sub_8090BE8: @ 8090BE8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl GetFaceDirectionAnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl FieldObjectSetRegularAnim - movs r0, 0x2 - strh r0, [r5, 0x30] - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8090BE8 - - thumb_func_start sub_8090C14 -sub_8090C14: @ 8090C14 - push {r4-r7,lr} - adds r6, r0, 0 - adds r7, r1, 0 - bl FieldObjectExecRegularAnim - lsls r0, 24 - cmp r0, 0 - beq _08090C4A - ldr r4, =gUnknown_0850D6EC - bl Random - movs r5, 0x3 - adds r1, r5, 0 - ands r1, r0 - lsls r1, 1 - adds r1, r4 - movs r0, 0 - ldrsh r1, [r1, r0] - adds r0, r7, 0 - bl sub_8097978 - ldrb r1, [r6] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r6] - strh r5, [r7, 0x30] -_08090C4A: - movs r0, 0 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8090C14 - - thumb_func_start sub_8090C58 -sub_8090C58: @ 8090C58 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r0, r5, 0 - bl sub_809797C - lsls r0, 24 - cmp r0, 0 - bne _08090C76 - adds r0, r4, 0 - bl FieldObjectIsTrainerAndCloseToPlayer - lsls r0, 24 - cmp r0, 0 - beq _08090C7E -_08090C76: - movs r0, 0x4 - strh r0, [r5, 0x30] - movs r0, 0x1 - b _08090C80 -_08090C7E: - movs r0, 0 -_08090C80: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8090C58 - - thumb_func_start sub_8090C88 -sub_8090C88: @ 8090C88 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, =gUnknown_0850D898 - mov r0, sp - movs r2, 0x4 - bl memcpy - adds r0, r4, 0 - movs r1, 0xA - bl sub_808F8BC - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _08090CB8 - bl Random - movs r1, 0x3 - ands r1, r0 - mov r2, sp - adds r0, r2, r1 - ldrb r1, [r0] -_08090CB8: - adds r0, r4, 0 - bl FieldObjectSetDirection - movs r0, 0x1 - strh r0, [r5, 0x30] - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8090C88 - - thumb_func_start FieldObjectCB_LookAroundCounterclockwise -FieldObjectCB_LookAroundCounterclockwise: @ 8090CD0 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =sub_8090CF4 - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_LookAroundCounterclockwise - - thumb_func_start sub_8090CF4 -sub_8090CF4: @ 8090CF4 - push {r4,lr} - ldr r3, =gUnknown_0850D89C - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8090CF4 - - thumb_func_start sub_8090D14 -sub_8090D14: @ 8090D14 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl npc_reset - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl GetFaceDirectionAnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl FieldObjectSetRegularAnim - movs r0, 0x1 - strh r0, [r5, 0x30] - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8090D14 - - thumb_func_start sub_8090D40 -sub_8090D40: @ 8090D40 - push {r4,lr} - adds r4, r1, 0 - bl FieldObjectExecRegularAnim - lsls r0, 24 - cmp r0, 0 - beq _08090D5A - adds r0, r4, 0 - movs r1, 0x30 - bl sub_8097978 - movs r0, 0x2 - strh r0, [r4, 0x30] -_08090D5A: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8090D40 - - thumb_func_start sub_8090D64 -sub_8090D64: @ 8090D64 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r0, r5, 0 - bl sub_809797C - lsls r0, 24 - cmp r0, 0 - bne _08090D82 - adds r0, r4, 0 - bl FieldObjectIsTrainerAndCloseToPlayer - lsls r0, 24 - cmp r0, 0 - beq _08090D86 -_08090D82: - movs r0, 0x3 - strh r0, [r5, 0x30] -_08090D86: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8090D64 - - thumb_func_start sub_8090D90 -@ bool8 sub_8090D90(struct npc_state *fieldObject, struct obj *object) -sub_8090D90: @ 8090D90 - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, =gUnknown_0850D8AC - mov r0, sp - movs r2, 0x5 - bl memcpy - adds r0, r4, 0 - movs r1, 0 - bl sub_808F8BC - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _08090DBC - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - add r0, sp - ldrb r1, [r0] -_08090DBC: - adds r0, r4, 0 - bl FieldObjectSetDirection - movs r0, 0 - strh r0, [r5, 0x30] - movs r0, 0x1 - add sp, 0x8 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8090D90 - - thumb_func_start FieldObjectCB_LookAroundClockwise -FieldObjectCB_LookAroundClockwise: @ 8090DD4 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =sub_8090DF8 - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_LookAroundClockwise - - thumb_func_start sub_8090DF8 -sub_8090DF8: @ 8090DF8 - push {r4,lr} - ldr r3, =gUnknown_0850D8B4 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8090DF8 - - thumb_func_start sub_8090E18 -sub_8090E18: @ 8090E18 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl npc_reset - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl GetFaceDirectionAnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl FieldObjectSetRegularAnim - movs r0, 0x1 - strh r0, [r5, 0x30] - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8090E18 - - thumb_func_start sub_8090E44 -sub_8090E44: @ 8090E44 - push {r4,lr} - adds r4, r1, 0 - bl FieldObjectExecRegularAnim - lsls r0, 24 - cmp r0, 0 - beq _08090E5E - adds r0, r4, 0 - movs r1, 0x30 - bl sub_8097978 - movs r0, 0x2 - strh r0, [r4, 0x30] -_08090E5E: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8090E44 - - thumb_func_start sub_8090E68 -sub_8090E68: @ 8090E68 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r0, r5, 0 - bl sub_809797C - lsls r0, 24 - cmp r0, 0 - bne _08090E86 - adds r0, r4, 0 - bl FieldObjectIsTrainerAndCloseToPlayer - lsls r0, 24 - cmp r0, 0 - beq _08090E8A -_08090E86: - movs r0, 0x3 - strh r0, [r5, 0x30] -_08090E8A: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8090E68 - - thumb_func_start sub_8090E94 -sub_8090E94: @ 8090E94 - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, =gUnknown_0850D8C4 - mov r0, sp - movs r2, 0x5 - bl memcpy - adds r0, r4, 0 - movs r1, 0 - bl sub_808F8BC - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _08090EC0 - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - add r0, sp - ldrb r1, [r0] -_08090EC0: - adds r0, r4, 0 - bl FieldObjectSetDirection - movs r0, 0 - strh r0, [r5, 0x30] - movs r0, 0x1 - add sp, 0x8 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8090E94 - - thumb_func_start FieldObjectCB_AlternatelyGoInOppositeDirections -FieldObjectCB_AlternatelyGoInOppositeDirections: @ 8090ED8 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =sub_8090EFC - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_AlternatelyGoInOppositeDirections - - thumb_func_start sub_8090EFC -sub_8090EFC: @ 8090EFC - push {r4,lr} - ldr r3, =gUnknown_0850D8CC - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8090EFC - - thumb_func_start sub_8090F1C -sub_8090F1C: @ 8090F1C - push {r4,lr} - adds r4, r1, 0 - bl npc_reset - movs r0, 0x1 - strh r0, [r4, 0x30] - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8090F1C - - thumb_func_start sub_8090F30 -@ bool8 sub_8090F30(struct npc_state *fieldObject, struct obj *object) -sub_8090F30: @ 8090F30 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldr r0, =gUnknown_085055CD - ldrb r1, [r4, 0x6] - adds r1, r0 - ldrb r1, [r1] - adds r0, r4, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0 - beq _08090F52 - adds r0, r1, 0 - bl GetOppositeDirection - lsls r0, 24 - lsrs r1, r0, 24 -_08090F52: - adds r0, r4, 0 - bl FieldObjectSetDirection - movs r0, 0x2 - strh r0, [r5, 0x30] - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8090F30 - - thumb_func_start sub_8090F68 -@ bool8 sub_8090F68(struct npc_state *fieldObject, struct obj *object) -sub_8090F68: @ 8090F68 - push {r4-r7,lr} - adds r4, r0, 0 - adds r7, r1, 0 - adds r2, r4, 0 - adds r2, 0x21 - ldrb r0, [r2] - cmp r0, 0 - beq _08090F98 - ldr r1, [r4, 0xC] - ldr r0, [r4, 0x10] - cmp r1, r0 - bne _08090F98 - movs r0, 0 - strb r0, [r2] - ldrb r0, [r4, 0x18] - lsrs r0, 4 - bl GetOppositeDirection - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldObjectSetDirection -_08090F98: - ldrb r1, [r4, 0x18] - lsrs r1, 4 - adds r0, r4, 0 - bl sub_8092B88 - lsls r0, 24 - lsrs r5, r0, 24 - ldrb r0, [r4, 0x18] - lsrs r0, 4 - bl GetGoSpeed0AnimId - lsls r0, 24 - lsrs r6, r0, 24 - cmp r5, 0x1 - bne _08090FEE - adds r1, r4, 0 - adds r1, 0x21 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldrb r0, [r4, 0x18] - lsrs r0, 4 - bl GetOppositeDirection - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldObjectSetDirection - ldrb r0, [r4, 0x18] - lsrs r0, 4 - bl GetGoSpeed0AnimId - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r1, [r4, 0x18] - lsrs r1, 4 - adds r0, r4, 0 - bl sub_8092B88 - lsls r0, 24 - lsrs r5, r0, 24 -_08090FEE: - cmp r5, 0 - beq _08091000 - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl GetStepInPlaceDelay16AnimId - lsls r0, 24 - lsrs r6, r0, 24 -_08091000: - adds r0, r4, 0 - adds r1, r7, 0 - adds r2, r6, 0 - bl FieldObjectSetRegularAnim - ldrb r0, [r4] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r4] - movs r0, 0x3 - strh r0, [r7, 0x30] - movs r0, 0x1 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8090F68 - - thumb_func_start sub_8091020 -@ bool8 sub_8091020(struct npc_state *fieldObject, struct obj *object) -sub_8091020: @ 8091020 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl FieldObjectExecRegularAnim - lsls r0, 24 - cmp r0, 0 - beq _0809103E - ldrb r0, [r4] - movs r1, 0x3 - negs r1, r1 - ands r1, r0 - strb r1, [r4] - movs r0, 0x1 - strh r0, [r5, 0x30] -_0809103E: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8091020 - - thumb_func_start sub_8091048 -@ bool8 sub_8091048(struct npc_state *fieldObject, struct obj *object) -sub_8091048: @ 8091048 - push {r4,lr} - adds r4, r1, 0 - bl npc_reset - movs r0, 0x1 - strh r0, [r4, 0x30] - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8091048 - - thumb_func_start MoveFieldObjectInNextDirectionInSequence -@ bool8 MoveFieldObjectInNextDirectionInSequence(struct npc_state *fieldObject, struct obj *object, u8 *directions) -MoveFieldObjectInNextDirectionInSequence: @ 809105C - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r0, 0 - mov r8, r1 - adds r7, r2, 0 - adds r2, r4, 0 - adds r2, 0x21 - ldrb r0, [r2] - cmp r0, 0x3 - bne _0809107E - ldr r1, [r4, 0xC] - ldr r0, [r4, 0x10] - cmp r1, r0 - bne _0809107E - movs r0, 0 - strb r0, [r2] -_0809107E: - adds r5, r4, 0 - adds r5, 0x21 - ldrb r0, [r5] - adds r0, r7, r0 - ldrb r1, [r0] - adds r0, r4, 0 - bl FieldObjectSetDirection - ldrb r0, [r4, 0x18] - lsrs r0, 4 - bl GetGoSpeed0AnimId - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r1, [r4, 0x18] - lsrs r1, 4 - adds r0, r4, 0 - bl sub_8092B88 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080910D8 - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - ldrb r0, [r5] - adds r0, r7, r0 - ldrb r1, [r0] - adds r0, r4, 0 - bl FieldObjectSetDirection - ldrb r0, [r4, 0x18] - lsrs r0, 4 - bl GetGoSpeed0AnimId - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r1, [r4, 0x18] - lsrs r1, 4 - adds r0, r4, 0 - bl sub_8092B88 - lsls r0, 24 - lsrs r0, 24 -_080910D8: - cmp r0, 0 - beq _080910EA - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl GetStepInPlaceDelay16AnimId - lsls r0, 24 - lsrs r6, r0, 24 -_080910EA: - adds r0, r4, 0 - mov r1, r8 - adds r2, r6, 0 - bl FieldObjectSetRegularAnim - ldrb r0, [r4] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r4] - movs r0, 0x2 - mov r1, r8 - strh r0, [r1, 0x30] - movs r0, 0x1 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end MoveFieldObjectInNextDirectionInSequence - - thumb_func_start sub_8091110 -@ bool8 sub_8091110(struct npc_state *fieldObject, struct obj *object) -sub_8091110: @ 8091110 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl FieldObjectExecRegularAnim - lsls r0, 24 - cmp r0, 0 - beq _0809112E - ldrb r0, [r4] - movs r1, 0x3 - negs r1, r1 - ands r1, r0 - strb r1, [r4] - movs r0, 0x1 - strh r0, [r5, 0x30] -_0809112E: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8091110 - - thumb_func_start FieldObjectCB_GoInDirectionSequence1 -FieldObjectCB_GoInDirectionSequence1: @ 8091138 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =sub_809115C - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_GoInDirectionSequence1 - - thumb_func_start sub_809115C -sub_809115C: @ 809115C - push {r4,lr} - ldr r3, =gUnknown_0850D8DC - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_809115C - - thumb_func_start sub_809117C -sub_809117C: @ 809117C - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, =gUnknown_0850D8E8 - mov r0, sp - movs r2, 0x4 - bl memcpy - adds r2, r4, 0 - adds r2, 0x21 - ldrb r0, [r2] - cmp r0, 0x2 - bne _080911A8 - movs r0, 0xC - ldrsh r1, [r4, r0] - movs r3, 0x10 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _080911A8 - movs r0, 0x3 - strb r0, [r2] -_080911A8: - adds r0, r4, 0 - adds r1, r5, 0 - mov r2, sp - bl MoveFieldObjectInNextDirectionInSequence - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_809117C - - thumb_func_start FieldObjectCB_GoInDirectionSequence2 -FieldObjectCB_GoInDirectionSequence2: @ 80911C4 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =sub_80911E8 - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_GoInDirectionSequence2 - - thumb_func_start sub_80911E8 -sub_80911E8: @ 80911E8 - push {r4,lr} - ldr r3, =gUnknown_0850D8EC - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80911E8 - - thumb_func_start sub_8091208 -sub_8091208: @ 8091208 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, =gUnknown_0850D8F8 - mov r0, sp - movs r2, 0x4 - bl memcpy - adds r2, r4, 0 - adds r2, 0x21 - ldrb r0, [r2] - cmp r0, 0x1 - bne _08091234 - movs r0, 0xC - ldrsh r1, [r4, r0] - movs r3, 0x10 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _08091234 - movs r0, 0x2 - strb r0, [r2] -_08091234: - adds r0, r4, 0 - adds r1, r5, 0 - mov r2, sp - bl MoveFieldObjectInNextDirectionInSequence - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8091208 - - thumb_func_start FieldObjectCB_GoInDirectionSequence3 -FieldObjectCB_GoInDirectionSequence3: @ 8091250 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =sub_8091274 - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_GoInDirectionSequence3 - - thumb_func_start sub_8091274 -sub_8091274: @ 8091274 - push {r4,lr} - ldr r3, =gUnknown_0850D8FC - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8091274 - - thumb_func_start sub_8091294 -sub_8091294: @ 8091294 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, =gUnknown_0850D908 - mov r0, sp - movs r2, 0x4 - bl memcpy - adds r2, r4, 0 - adds r2, 0x21 - ldrb r0, [r2] - cmp r0, 0x1 - bne _080912C0 - movs r0, 0xE - ldrsh r1, [r4, r0] - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _080912C0 - movs r0, 0x2 - strb r0, [r2] -_080912C0: - adds r0, r4, 0 - adds r1, r5, 0 - mov r2, sp - bl MoveFieldObjectInNextDirectionInSequence - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8091294 - - thumb_func_start FieldObjectCB_GoInDirectionSequence4 -FieldObjectCB_GoInDirectionSequence4: @ 80912DC - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =sub_8091300 - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_GoInDirectionSequence4 - - thumb_func_start sub_8091300 -sub_8091300: @ 8091300 - push {r4,lr} - ldr r3, =gUnknown_0850D90C - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8091300 - - thumb_func_start sub_8091320 -sub_8091320: @ 8091320 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, =gUnknown_0850D918 - mov r0, sp - movs r2, 0x4 - bl memcpy - adds r2, r4, 0 - adds r2, 0x21 - ldrb r0, [r2] - cmp r0, 0x2 - bne _0809134C - movs r0, 0xE - ldrsh r1, [r4, r0] - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _0809134C - movs r0, 0x3 - strb r0, [r2] -_0809134C: - adds r0, r4, 0 - adds r1, r5, 0 - mov r2, sp - bl MoveFieldObjectInNextDirectionInSequence - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8091320 - - thumb_func_start FieldObjectCB_GoInDirectionSequence5 -FieldObjectCB_GoInDirectionSequence5: @ 8091368 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =sub_809138C - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_GoInDirectionSequence5 - - thumb_func_start sub_809138C -sub_809138C: @ 809138C - push {r4,lr} - ldr r3, =gUnknown_0850D91C - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_809138C - - thumb_func_start sub_80913AC -@ bool8 sub_80913AC(struct npc_state *fieldObject, struct obj *object) -sub_80913AC: @ 80913AC - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, =gUnknown_0850D928 - mov r0, sp - movs r2, 0x4 - bl memcpy - adds r2, r4, 0 - adds r2, 0x21 - ldrb r0, [r2] - cmp r0, 0x2 - bne _080913D8 - movs r0, 0xC - ldrsh r1, [r4, r0] - movs r3, 0x10 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _080913D8 - movs r0, 0x3 - strb r0, [r2] -_080913D8: - adds r0, r4, 0 - adds r1, r5, 0 - mov r2, sp - bl MoveFieldObjectInNextDirectionInSequence - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80913AC - - thumb_func_start FieldObjectCB_GoInDirectionSequence6 -FieldObjectCB_GoInDirectionSequence6: @ 80913F4 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =sub_8091418 - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_GoInDirectionSequence6 - - thumb_func_start sub_8091418 -sub_8091418: @ 8091418 - push {r4,lr} - ldr r3, =gUnknown_0850D92C - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8091418 - - thumb_func_start sub_8091438 -sub_8091438: @ 8091438 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, =gUnknown_0850D938 - mov r0, sp - movs r2, 0x4 - bl memcpy - adds r2, r4, 0 - adds r2, 0x21 - ldrb r0, [r2] - cmp r0, 0x1 - bne _08091464 - movs r0, 0xC - ldrsh r1, [r4, r0] - movs r3, 0x10 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _08091464 - movs r0, 0x2 - strb r0, [r2] -_08091464: - adds r0, r4, 0 - adds r1, r5, 0 - mov r2, sp - bl MoveFieldObjectInNextDirectionInSequence - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8091438 - - thumb_func_start FieldObjectCB_GoInDirectionSequence7 -FieldObjectCB_GoInDirectionSequence7: @ 8091480 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =sub_80914A4 - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_GoInDirectionSequence7 - - thumb_func_start sub_80914A4 -sub_80914A4: @ 80914A4 - push {r4,lr} - ldr r3, =gUnknown_0850D93C - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80914A4 - - thumb_func_start sub_80914C4 -sub_80914C4: @ 80914C4 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, =gUnknown_0850D710 - mov r0, sp - movs r2, 0x4 - bl memcpy - adds r2, r4, 0 - adds r2, 0x21 - ldrb r0, [r2] - cmp r0, 0x1 - bne _080914F0 - movs r0, 0xE - ldrsh r1, [r4, r0] - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _080914F0 - movs r0, 0x2 - strb r0, [r2] -_080914F0: - adds r0, r4, 0 - adds r1, r5, 0 - mov r2, sp - bl MoveFieldObjectInNextDirectionInSequence - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80914C4 - - thumb_func_start FieldObjectCB_GoInDirectionSequence8 -FieldObjectCB_GoInDirectionSequence8: @ 809150C - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =sub_8091530 - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_GoInDirectionSequence8 - - thumb_func_start sub_8091530 -sub_8091530: @ 8091530 - push {r4,lr} - ldr r3, =gUnknown_0850D948 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8091530 - - thumb_func_start sub_8091550 -sub_8091550: @ 8091550 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, =gUnknown_0850D954 - mov r0, sp - movs r2, 0x4 - bl memcpy - adds r2, r4, 0 - adds r2, 0x21 - ldrb r0, [r2] - cmp r0, 0x2 - bne _0809157C - movs r0, 0xE - ldrsh r1, [r4, r0] - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _0809157C - movs r0, 0x3 - strb r0, [r2] -_0809157C: - adds r0, r4, 0 - adds r1, r5, 0 - mov r2, sp - bl MoveFieldObjectInNextDirectionInSequence - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8091550 - - thumb_func_start FieldObjectCB_GoInDirectionSequence9 -FieldObjectCB_GoInDirectionSequence9: @ 8091598 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =sub_80915BC - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_GoInDirectionSequence9 - - thumb_func_start sub_80915BC -sub_80915BC: @ 80915BC - push {r4,lr} - ldr r3, =gUnknown_0850D958 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80915BC - - thumb_func_start sub_80915DC -sub_80915DC: @ 80915DC - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, =gUnknown_0850D964 - mov r0, sp - movs r2, 0x4 - bl memcpy - adds r2, r4, 0 - adds r2, 0x21 - ldrb r0, [r2] - cmp r0, 0x2 - bne _08091608 - movs r0, 0xE - ldrsh r1, [r4, r0] - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _08091608 - movs r0, 0x3 - strb r0, [r2] -_08091608: - adds r0, r4, 0 - adds r1, r5, 0 - mov r2, sp - bl MoveFieldObjectInNextDirectionInSequence - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80915DC - - thumb_func_start FieldObjectCB_GoInDirectionSequence10 -FieldObjectCB_GoInDirectionSequence10: @ 8091624 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =sub_8091648 - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_GoInDirectionSequence10 - - thumb_func_start sub_8091648 -sub_8091648: @ 8091648 - push {r4,lr} - ldr r3, =gUnknown_0850D968 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8091648 - - thumb_func_start sub_8091668 -sub_8091668: @ 8091668 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, =gUnknown_0850D974 - mov r0, sp - movs r2, 0x4 - bl memcpy - adds r2, r4, 0 - adds r2, 0x21 - ldrb r0, [r2] - cmp r0, 0x1 - bne _08091694 - movs r0, 0xE - ldrsh r1, [r4, r0] - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _08091694 - movs r0, 0x2 - strb r0, [r2] -_08091694: - adds r0, r4, 0 - adds r1, r5, 0 - mov r2, sp - bl MoveFieldObjectInNextDirectionInSequence - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8091668 - - thumb_func_start FieldObjectCB_GoInDirectionSequence11 -FieldObjectCB_GoInDirectionSequence11: @ 80916B0 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =sub_80916D4 - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_GoInDirectionSequence11 - - thumb_func_start sub_80916D4 -sub_80916D4: @ 80916D4 - push {r4,lr} - ldr r3, =gUnknown_0850D978 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80916D4 - - thumb_func_start sub_80916F4 -sub_80916F4: @ 80916F4 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, =gUnknown_0850D984 - mov r0, sp - movs r2, 0x4 - bl memcpy - adds r2, r4, 0 - adds r2, 0x21 - ldrb r0, [r2] - cmp r0, 0x1 - bne _08091720 - movs r0, 0xC - ldrsh r1, [r4, r0] - movs r3, 0x10 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _08091720 - movs r0, 0x2 - strb r0, [r2] -_08091720: - adds r0, r4, 0 - adds r1, r5, 0 - mov r2, sp - bl MoveFieldObjectInNextDirectionInSequence - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80916F4 - - thumb_func_start FieldObjectCB_GoInDirectionSequence12 -FieldObjectCB_GoInDirectionSequence12: @ 809173C - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =sub_8091760 - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_GoInDirectionSequence12 - - thumb_func_start sub_8091760 -sub_8091760: @ 8091760 - push {r4,lr} - ldr r3, =gUnknown_0850D988 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8091760 - - thumb_func_start sub_8091780 -sub_8091780: @ 8091780 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, =gUnknown_0850D994 - mov r0, sp - movs r2, 0x4 - bl memcpy - adds r2, r4, 0 - adds r2, 0x21 - ldrb r0, [r2] - cmp r0, 0x2 - bne _080917AC - movs r0, 0xC - ldrsh r1, [r4, r0] - movs r3, 0x10 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _080917AC - movs r0, 0x3 - strb r0, [r2] -_080917AC: - adds r0, r4, 0 - adds r1, r5, 0 - mov r2, sp - bl MoveFieldObjectInNextDirectionInSequence - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8091780 - - thumb_func_start FieldObjectCB_GoInDirectionSequence13 -FieldObjectCB_GoInDirectionSequence13: @ 80917C8 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =sub_80917EC - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_GoInDirectionSequence13 - - thumb_func_start sub_80917EC -sub_80917EC: @ 80917EC - push {r4,lr} - ldr r3, =gUnknown_0850D998 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80917EC - - thumb_func_start sub_809180C -sub_809180C: @ 809180C - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, =gUnknown_0850D9A4 - mov r0, sp - movs r2, 0x4 - bl memcpy - adds r2, r4, 0 - adds r2, 0x21 - ldrb r0, [r2] - cmp r0, 0x2 - bne _08091838 - movs r0, 0xE - ldrsh r1, [r4, r0] - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _08091838 - movs r0, 0x3 - strb r0, [r2] -_08091838: - adds r0, r4, 0 - adds r1, r5, 0 - mov r2, sp - bl MoveFieldObjectInNextDirectionInSequence - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_809180C - - thumb_func_start FieldObjectCB_GoInDirectionSequence14 -FieldObjectCB_GoInDirectionSequence14: @ 8091854 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =sub_8091878 - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_GoInDirectionSequence14 - - thumb_func_start sub_8091878 -sub_8091878: @ 8091878 - push {r4,lr} - ldr r3, =gUnknown_0850D9A8 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8091878 - - thumb_func_start sub_8091898 -sub_8091898: @ 8091898 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, =gUnknown_0850D9B4 - mov r0, sp - movs r2, 0x4 - bl memcpy - adds r2, r4, 0 - adds r2, 0x21 - ldrb r0, [r2] - cmp r0, 0x1 - bne _080918C4 - movs r0, 0xE - ldrsh r1, [r4, r0] - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _080918C4 - movs r0, 0x2 - strb r0, [r2] -_080918C4: - adds r0, r4, 0 - adds r1, r5, 0 - mov r2, sp - bl MoveFieldObjectInNextDirectionInSequence - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8091898 - - thumb_func_start FieldObjectCB_GoInDirectionSequence15 -FieldObjectCB_GoInDirectionSequence15: @ 80918E0 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =sub_8091904 - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_GoInDirectionSequence15 - - thumb_func_start sub_8091904 -sub_8091904: @ 8091904 - push {r4,lr} - ldr r3, =gUnknown_0850D9B8 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8091904 - - thumb_func_start sub_8091924 -sub_8091924: @ 8091924 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, =gUnknown_0850D9C4 - mov r0, sp - movs r2, 0x4 - bl memcpy - adds r2, r4, 0 - adds r2, 0x21 - ldrb r0, [r2] - cmp r0, 0x1 - bne _08091950 - movs r0, 0xC - ldrsh r1, [r4, r0] - movs r3, 0x10 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _08091950 - movs r0, 0x2 - strb r0, [r2] -_08091950: - adds r0, r4, 0 - adds r1, r5, 0 - mov r2, sp - bl MoveFieldObjectInNextDirectionInSequence - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8091924 - - thumb_func_start FieldObjectCB_GoInDirectionSequence16 -FieldObjectCB_GoInDirectionSequence16: @ 809196C - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =sub_8091990 - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_GoInDirectionSequence16 - - thumb_func_start sub_8091990 -sub_8091990: @ 8091990 - push {r4,lr} - ldr r3, =gUnknown_0850D9C8 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8091990 - - thumb_func_start sub_80919B0 -sub_80919B0: @ 80919B0 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, =gUnknown_0850D9D4 - mov r0, sp - movs r2, 0x4 - bl memcpy - adds r2, r4, 0 - adds r2, 0x21 - ldrb r0, [r2] - cmp r0, 0x2 - bne _080919DC - movs r0, 0xC - ldrsh r1, [r4, r0] - movs r3, 0x10 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _080919DC - movs r0, 0x3 - strb r0, [r2] -_080919DC: - adds r0, r4, 0 - adds r1, r5, 0 - mov r2, sp - bl MoveFieldObjectInNextDirectionInSequence - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80919B0 - - thumb_func_start FieldObjectCB_GoInDirectionSequence17 -FieldObjectCB_GoInDirectionSequence17: @ 80919F8 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =sub_8091A1C - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_GoInDirectionSequence17 - - thumb_func_start sub_8091A1C -sub_8091A1C: @ 8091A1C - push {r4,lr} - ldr r3, =gUnknown_0850D9D8 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8091A1C - - thumb_func_start sub_8091A3C -sub_8091A3C: @ 8091A3C - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, =gUnknown_0850D9E4 - mov r0, sp - movs r2, 0x4 - bl memcpy - adds r2, r4, 0 - adds r2, 0x21 - ldrb r0, [r2] - cmp r0, 0x2 - bne _08091A68 - movs r0, 0xE - ldrsh r1, [r4, r0] - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _08091A68 - movs r0, 0x3 - strb r0, [r2] -_08091A68: - adds r0, r4, 0 - adds r1, r5, 0 - mov r2, sp - bl MoveFieldObjectInNextDirectionInSequence - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8091A3C - - thumb_func_start FieldObjectCB_GoInDirectionSequence18 -FieldObjectCB_GoInDirectionSequence18: @ 8091A84 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =sub_8091AA8 - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_GoInDirectionSequence18 - - thumb_func_start sub_8091AA8 -sub_8091AA8: @ 8091AA8 - push {r4,lr} - ldr r3, =gUnknown_0850D9E8 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8091AA8 - - thumb_func_start sub_8091AC8 -sub_8091AC8: @ 8091AC8 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, =gUnknown_0850D9F4 - mov r0, sp - movs r2, 0x4 - bl memcpy - adds r2, r4, 0 - adds r2, 0x21 - ldrb r0, [r2] - cmp r0, 0x2 - bne _08091AF4 - movs r0, 0xE - ldrsh r1, [r4, r0] - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _08091AF4 - movs r0, 0x3 - strb r0, [r2] -_08091AF4: - adds r0, r4, 0 - adds r1, r5, 0 - mov r2, sp - bl MoveFieldObjectInNextDirectionInSequence - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8091AC8 - - thumb_func_start FieldObjectCB_GoInDirectionSequence19 -FieldObjectCB_GoInDirectionSequence19: @ 8091B10 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =sub_8091B34 - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_GoInDirectionSequence19 - - thumb_func_start sub_8091B34 -sub_8091B34: @ 8091B34 - push {r4,lr} - ldr r3, =gUnknown_0850D9F8 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8091B34 - - thumb_func_start sub_8091B54 -sub_8091B54: @ 8091B54 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, =gUnknown_0850DA04 - mov r0, sp - movs r2, 0x4 - bl memcpy - adds r2, r4, 0 - adds r2, 0x21 - ldrb r0, [r2] - cmp r0, 0x2 - bne _08091B80 - movs r0, 0xC - ldrsh r1, [r4, r0] - movs r3, 0x10 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _08091B80 - movs r0, 0x3 - strb r0, [r2] -_08091B80: - adds r0, r4, 0 - adds r1, r5, 0 - mov r2, sp - bl MoveFieldObjectInNextDirectionInSequence - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8091B54 - - thumb_func_start FieldObjectCB_GoInDirectionSequence20 -FieldObjectCB_GoInDirectionSequence20: @ 8091B9C - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =sub_8091BC0 - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_GoInDirectionSequence20 - - thumb_func_start sub_8091BC0 -sub_8091BC0: @ 8091BC0 - push {r4,lr} - ldr r3, =gUnknown_0850DA08 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8091BC0 - - thumb_func_start sub_8091BE0 -sub_8091BE0: @ 8091BE0 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, =gUnknown_0850DA14 - mov r0, sp - movs r2, 0x4 - bl memcpy - adds r2, r4, 0 - adds r2, 0x21 - ldrb r0, [r2] - cmp r0, 0x2 - bne _08091C0C - movs r0, 0xC - ldrsh r1, [r4, r0] - movs r3, 0x10 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _08091C0C - movs r0, 0x3 - strb r0, [r2] -_08091C0C: - adds r0, r4, 0 - adds r1, r5, 0 - mov r2, sp - bl MoveFieldObjectInNextDirectionInSequence - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8091BE0 - - thumb_func_start FieldObjectCB_GoInDirectionSequence21 -FieldObjectCB_GoInDirectionSequence21: @ 8091C28 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =sub_8091C4C - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_GoInDirectionSequence21 - - thumb_func_start sub_8091C4C -sub_8091C4C: @ 8091C4C - push {r4,lr} - ldr r3, =gUnknown_0850DA18 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8091C4C - - thumb_func_start sub_8091C6C -sub_8091C6C: @ 8091C6C - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, =gUnknown_0850DA24 - mov r0, sp - movs r2, 0x4 - bl memcpy - adds r2, r4, 0 - adds r2, 0x21 - ldrb r0, [r2] - cmp r0, 0x2 - bne _08091C98 - movs r0, 0xE - ldrsh r1, [r4, r0] - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _08091C98 - movs r0, 0x3 - strb r0, [r2] -_08091C98: - adds r0, r4, 0 - adds r1, r5, 0 - mov r2, sp - bl MoveFieldObjectInNextDirectionInSequence - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8091C6C - - thumb_func_start FieldObjectCB_GoInDirectionSequence22 -FieldObjectCB_GoInDirectionSequence22: @ 8091CB4 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =sub_8091CD8 - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_GoInDirectionSequence22 - - thumb_func_start sub_8091CD8 -sub_8091CD8: @ 8091CD8 - push {r4,lr} - ldr r3, =gUnknown_0850DA28 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8091CD8 - - thumb_func_start sub_8091CF8 -sub_8091CF8: @ 8091CF8 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, =gUnknown_0850DA34 - mov r0, sp - movs r2, 0x4 - bl memcpy - adds r2, r4, 0 - adds r2, 0x21 - ldrb r0, [r2] - cmp r0, 0x2 - bne _08091D24 - movs r0, 0xE - ldrsh r1, [r4, r0] - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _08091D24 - movs r0, 0x3 - strb r0, [r2] -_08091D24: - adds r0, r4, 0 - adds r1, r5, 0 - mov r2, sp - bl MoveFieldObjectInNextDirectionInSequence - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8091CF8 - - thumb_func_start FieldObjectCB_GoInDirectionSequence23 -FieldObjectCB_GoInDirectionSequence23: @ 8091D40 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =sub_8091D64 - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_GoInDirectionSequence23 - - thumb_func_start sub_8091D64 -sub_8091D64: @ 8091D64 - push {r4,lr} - ldr r3, =gUnknown_0850DA38 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8091D64 - - thumb_func_start sub_8091D84 -sub_8091D84: @ 8091D84 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, =gUnknown_0850DA44 - mov r0, sp - movs r2, 0x4 - bl memcpy - adds r2, r4, 0 - adds r2, 0x21 - ldrb r0, [r2] - cmp r0, 0x2 - bne _08091DB0 - movs r0, 0xC - ldrsh r1, [r4, r0] - movs r3, 0x10 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _08091DB0 - movs r0, 0x3 - strb r0, [r2] -_08091DB0: - adds r0, r4, 0 - adds r1, r5, 0 - mov r2, sp - bl MoveFieldObjectInNextDirectionInSequence - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8091D84 - - thumb_func_start FieldObjectCB_GoInDirectionSequence24 -FieldObjectCB_GoInDirectionSequence24: @ 8091DCC - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =sub_8091DF0 - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_GoInDirectionSequence24 - - thumb_func_start sub_8091DF0 -sub_8091DF0: @ 8091DF0 - push {r4,lr} - ldr r3, =gUnknown_0850DA48 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8091DF0 - - thumb_func_start sub_8091E10 -sub_8091E10: @ 8091E10 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, =gUnknown_0850DA54 - mov r0, sp - movs r2, 0x4 - bl memcpy - adds r2, r4, 0 - adds r2, 0x21 - ldrb r0, [r2] - cmp r0, 0x2 - bne _08091E3C - movs r0, 0xC - ldrsh r1, [r4, r0] - movs r3, 0x10 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _08091E3C - movs r0, 0x3 - strb r0, [r2] -_08091E3C: - adds r0, r4, 0 - adds r1, r5, 0 - mov r2, sp - bl MoveFieldObjectInNextDirectionInSequence - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8091E10 - - thumb_func_start FieldObjectCB_CopyPlayer1 -FieldObjectCB_CopyPlayer1: @ 8091E58 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =sub_8091E7C - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_CopyPlayer1 - - thumb_func_start sub_8091E7C -sub_8091E7C: @ 8091E7C - push {r4,lr} - ldr r3, =gUnknown_0850DA58 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8091E7C - - thumb_func_start mss_npc_reset_oampriv3_1_unk2_unk3 -@ bool8 mss_npc_reset_oampriv3_1_unk2_unk3(struct npc_state *fieldObject, struct obj *object) -mss_npc_reset_oampriv3_1_unk2_unk3: @ 8091E9C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl npc_reset - adds r4, 0x21 - ldrb r0, [r4] - cmp r0, 0 - bne _08091EB4 - bl player_get_direction_lower_nybble - strb r0, [r4] -_08091EB4: - movs r0, 0x1 - strh r0, [r5, 0x30] - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end mss_npc_reset_oampriv3_1_unk2_unk3 - - thumb_func_start sub_8091EC0 -@ bool8 sub_8091EC0(struct npc_state *fieldObject, struct obj *object) -sub_8091EC0: @ 8091EC0 - push {r4-r7,lr} - adds r6, r0, 0 - adds r7, r1, 0 - ldr r2, =gMapObjects - ldr r3, =gUnknown_02037590 - ldrb r1, [r3, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1C] - cmp r0, 0xFF - beq _08091EE0 - ldrb r0, [r3, 0x3] - cmp r0, 0x2 - bne _08091EEC -_08091EE0: - movs r0, 0 - b _08091F14 - .pool -_08091EEC: - ldr r5, =gUnknown_0850DA64 - bl player_get_x22 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 22 - adds r4, r5 - bl player_get_direction_upper_nybble - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - ldr r4, [r4] - adds r0, r6, 0 - adds r1, r7, 0 - movs r3, 0 - bl _call_via_r4 - lsls r0, 24 - lsrs r0, 24 -_08091F14: - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8091EC0 - - thumb_func_start sub_8091F20 -sub_8091F20: @ 8091F20 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl FieldObjectExecRegularAnim - lsls r0, 24 - cmp r0, 0 - beq _08091F3E - ldrb r0, [r4] - movs r1, 0x3 - negs r1, r1 - ands r1, r0 - strb r1, [r4] - movs r0, 0x1 - strh r0, [r5, 0x30] -_08091F3E: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8091F20 - - thumb_func_start sub_8091F48 -sub_8091F48: @ 8091F48 - movs r0, 0 - bx lr - thumb_func_end sub_8091F48 - - thumb_func_start sub_8091F4C -sub_8091F4C: @ 8091F4C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r2, 24 - lsrs r2, 24 - ldr r1, =gUnknown_085055CD - ldrb r0, [r4, 0x6] - adds r0, r1 - ldrb r0, [r0] - adds r1, r4, 0 - adds r1, 0x21 - ldrb r1, [r1] - bl state_to_direction - bl GetFaceDirectionAnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl FieldObjectSetRegularAnim - ldrb r0, [r4] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r4] - movs r0, 0x2 - strh r0, [r5, 0x30] - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8091F4C - - thumb_func_start sub_8091F94 -sub_8091F94: @ 8091F94 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r4, r0, 0 - adds r7, r1, 0 - mov r8, r3 - lsls r2, 24 - lsrs r5, r2, 24 - adds r6, r5, 0 - bl FieldObjectIsFarawayIslandMew - lsls r0, 24 - cmp r0, 0 - beq _08091FFC - bl sub_81D427C - adds r5, r0, 0 - cmp r5, 0 - bne _08092012 - adds r5, r6, 0 - ldr r1, =gUnknown_085055CD - ldrb r0, [r4, 0x6] - adds r0, r1 - ldrb r0, [r0] - adds r1, r4, 0 - adds r1, 0x21 - ldrb r1, [r1] - adds r2, r5, 0 - bl state_to_direction - adds r5, r0, 0 - mov r3, sp - adds r3, 0x2 - adds r0, r4, 0 - adds r1, r5, 0 - mov r2, sp - bl FieldObjectMoveDestCoords - adds r0, r5, 0 - bl GetFaceDirectionAnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r7, 0 - bl FieldObjectSetRegularAnim - b _08092084 - .pool -_08091FFC: - ldr r1, =gUnknown_085055CD - ldrb r0, [r4, 0x6] - adds r0, r1 - ldrb r0, [r0] - adds r1, r4, 0 - adds r1, 0x21 - ldrb r1, [r1] - adds r2, r5, 0 - bl state_to_direction - adds r5, r0, 0 -_08092012: - mov r6, sp - adds r6, 0x2 - adds r0, r4, 0 - adds r1, r5, 0 - mov r2, sp - adds r3, r6, 0 - bl FieldObjectMoveDestCoords - adds r0, r5, 0 - bl GetGoSpeed0AnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r7, 0 - bl FieldObjectSetRegularAnim - mov r0, sp - movs r2, 0 - ldrsh r1, [r0, r2] - movs r0, 0 - ldrsh r2, [r6, r0] - adds r0, r4, 0 - adds r3, r5, 0 - bl npc_block_way - lsls r0, 24 - cmp r0, 0 - bne _08092070 - mov r1, r8 - cmp r1, 0 - beq _08092084 - mov r0, sp - movs r2, 0 - ldrsh r0, [r0, r2] - movs r2, 0 - ldrsh r1, [r6, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - bl _call_via_r8 - lsls r0, 24 - cmp r0, 0 - bne _08092084 -_08092070: - adds r0, r5, 0 - bl GetFaceDirectionAnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r7, 0 - bl FieldObjectSetRegularAnim -_08092084: - ldrb r0, [r4] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r4] - movs r0, 0x2 - strh r0, [r7, 0x30] - movs r0, 0x1 - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8091F94 - - thumb_func_start sub_80920A4 -sub_80920A4: @ 80920A4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r4, r0, 0 - adds r7, r1, 0 - mov r8, r3 - lsls r2, 24 - lsrs r6, r2, 24 - ldr r1, =gUnknown_085055CD - ldrb r0, [r4, 0x6] - adds r0, r1 - ldrb r0, [r0] - adds r1, r4, 0 - adds r1, 0x21 - ldrb r1, [r1] - adds r2, r6, 0 - bl state_to_direction - adds r6, r0, 0 - mov r5, sp - adds r5, 0x2 - adds r0, r4, 0 - adds r1, r6, 0 - mov r2, sp - adds r3, r5, 0 - bl FieldObjectMoveDestCoords - adds r0, r6, 0 - bl GetGoSpeed1AnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r7, 0 - bl FieldObjectSetRegularAnim - mov r0, sp - movs r2, 0 - ldrsh r1, [r0, r2] - movs r0, 0 - ldrsh r2, [r5, r0] - adds r0, r4, 0 - adds r3, r6, 0 - bl npc_block_way - lsls r0, 24 - cmp r0, 0 - bne _0809212A - mov r1, r8 - cmp r1, 0 - beq _0809213E - mov r0, sp - movs r2, 0 - ldrsh r0, [r0, r2] - movs r2, 0 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - bl _call_via_r8 - lsls r0, 24 - cmp r0, 0 - bne _0809213E -_0809212A: - adds r0, r6, 0 - bl GetFaceDirectionAnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r7, 0 - bl FieldObjectSetRegularAnim -_0809213E: - ldrb r0, [r4] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r4] - movs r0, 0x2 - strh r0, [r7, 0x30] - movs r0, 0x1 - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80920A4 - - thumb_func_start sub_809215C -sub_809215C: @ 809215C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r4, r0, 0 - adds r7, r1, 0 - mov r8, r3 - lsls r2, 24 - lsrs r6, r2, 24 - ldr r1, =gUnknown_085055CD - ldrb r0, [r4, 0x6] - adds r0, r1 - ldrb r0, [r0] - adds r1, r4, 0 - adds r1, 0x21 - ldrb r1, [r1] - adds r2, r6, 0 - bl state_to_direction - adds r6, r0, 0 - mov r5, sp - adds r5, 0x2 - adds r0, r4, 0 - adds r1, r6, 0 - mov r2, sp - adds r3, r5, 0 - bl FieldObjectMoveDestCoords - adds r0, r6, 0 - bl GetGoSpeed3AnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r7, 0 - bl FieldObjectSetRegularAnim - mov r0, sp - movs r2, 0 - ldrsh r1, [r0, r2] - movs r0, 0 - ldrsh r2, [r5, r0] - adds r0, r4, 0 - adds r3, r6, 0 - bl npc_block_way - lsls r0, 24 - cmp r0, 0 - bne _080921E2 - mov r1, r8 - cmp r1, 0 - beq _080921F6 - mov r0, sp - movs r2, 0 - ldrsh r0, [r0, r2] - movs r2, 0 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - bl _call_via_r8 - lsls r0, 24 - cmp r0, 0 - bne _080921F6 -_080921E2: - adds r0, r6, 0 - bl GetFaceDirectionAnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r7, 0 - bl FieldObjectSetRegularAnim -_080921F6: - ldrb r0, [r4] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r4] - movs r0, 0x2 - strh r0, [r7, 0x30] - movs r0, 0x1 - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_809215C - - thumb_func_start sub_8092214 -sub_8092214: @ 8092214 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r4, r0, 0 - adds r7, r1, 0 - mov r8, r3 - lsls r2, 24 - lsrs r6, r2, 24 - ldr r1, =gUnknown_085055CD - ldrb r0, [r4, 0x6] - adds r0, r1 - ldrb r0, [r0] - adds r1, r4, 0 - adds r1, 0x21 - ldrb r1, [r1] - adds r2, r6, 0 - bl state_to_direction - adds r6, r0, 0 - mov r5, sp - adds r5, 0x2 - adds r0, r4, 0 - adds r1, r6, 0 - mov r2, sp - adds r3, r5, 0 - bl FieldObjectMoveDestCoords - adds r0, r6, 0 - bl sub_8093438 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r7, 0 - bl FieldObjectSetRegularAnim - mov r0, sp - movs r2, 0 - ldrsh r1, [r0, r2] - movs r0, 0 - ldrsh r2, [r5, r0] - adds r0, r4, 0 - adds r3, r6, 0 - bl npc_block_way - lsls r0, 24 - cmp r0, 0 - bne _0809229A - mov r1, r8 - cmp r1, 0 - beq _080922AE - mov r0, sp - movs r2, 0 - ldrsh r0, [r0, r2] - movs r2, 0 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - bl _call_via_r8 - lsls r0, 24 - cmp r0, 0 - bne _080922AE -_0809229A: - adds r0, r6, 0 - bl GetFaceDirectionAnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r7, 0 - bl FieldObjectSetRegularAnim -_080922AE: - ldrb r0, [r4] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r4] - movs r0, 0x2 - strh r0, [r7, 0x30] - movs r0, 0x1 - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8092214 - - thumb_func_start cph_IM_DIFFERENT -cph_IM_DIFFERENT: @ 80922CC - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r2, 24 - lsrs r2, 24 - ldr r1, =gUnknown_085055CD - ldrb r0, [r4, 0x6] - adds r0, r1 - ldrb r0, [r0] - adds r1, r4, 0 - adds r1, 0x21 - ldrb r1, [r1] - bl state_to_direction - bl sub_80934BC - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl FieldObjectSetRegularAnim - ldrb r0, [r4] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r4] - movs r0, 0x2 - strh r0, [r5, 0x30] - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end cph_IM_DIFFERENT - - thumb_func_start sub_8092314 -sub_8092314: @ 8092314 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r4, r0, 0 - adds r7, r1, 0 - mov r8, r3 - lsls r2, 24 - lsrs r6, r2, 24 - ldr r1, =gUnknown_085055CD - ldrb r0, [r4, 0x6] - adds r0, r1 - ldrb r0, [r0] - adds r1, r4, 0 - adds r1, 0x21 - ldrb r1, [r1] - adds r2, r6, 0 - bl state_to_direction - adds r6, r0, 0 - mov r5, sp - adds r5, 0x2 - adds r0, r4, 0 - adds r1, r6, 0 - mov r2, sp - adds r3, r5, 0 - bl FieldObjectMoveDestCoords - adds r0, r6, 0 - bl sub_8093514 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r7, 0 - bl FieldObjectSetRegularAnim - mov r0, sp - movs r2, 0 - ldrsh r1, [r0, r2] - movs r0, 0 - ldrsh r2, [r5, r0] - adds r0, r4, 0 - adds r3, r6, 0 - bl npc_block_way - lsls r0, 24 - cmp r0, 0 - bne _0809239A - mov r1, r8 - cmp r1, 0 - beq _080923AE - mov r0, sp - movs r2, 0 - ldrsh r0, [r0, r2] - movs r2, 0 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - bl _call_via_r8 - lsls r0, 24 - cmp r0, 0 - bne _080923AE -_0809239A: - adds r0, r6, 0 - bl GetFaceDirectionAnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r7, 0 - bl FieldObjectSetRegularAnim -_080923AE: - ldrb r0, [r4] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r4] - movs r0, 0x2 - strh r0, [r7, 0x30] - movs r0, 0x1 - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8092314 - - thumb_func_start oac_hopping -oac_hopping: @ 80923CC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - adds r4, r0, 0 - adds r7, r1, 0 - mov r8, r3 - lsls r2, 24 - lsrs r6, r2, 24 - ldr r1, =gUnknown_085055CD - ldrb r0, [r4, 0x6] - adds r0, r1 - ldrb r0, [r0] - adds r1, r4, 0 - adds r1, 0x21 - ldrb r1, [r1] - adds r2, r6, 0 - bl state_to_direction - adds r6, r0, 0 - ldrh r1, [r4, 0x10] - add r0, sp, 0x4 - strh r1, [r0] - ldrh r0, [r4, 0x12] - mov r5, sp - adds r5, 0x6 - strh r0, [r5] - movs r0, 0x2 - str r0, [sp] - adds r0, r6, 0 - add r1, sp, 0x4 - adds r2, r5, 0 - movs r3, 0x2 - bl sub_8092F88 - adds r0, r6, 0 - bl GetJumpLedgeAnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r7, 0 - bl FieldObjectSetRegularAnim - add r0, sp, 0x4 - movs r2, 0 - ldrsh r1, [r0, r2] - movs r0, 0 - ldrsh r2, [r5, r0] - adds r0, r4, 0 - adds r3, r6, 0 - bl npc_block_way - lsls r0, 24 - cmp r0, 0 - bne _08092460 - mov r1, r8 - cmp r1, 0 - beq _08092474 - add r0, sp, 0x4 - movs r2, 0 - ldrsh r0, [r0, r2] - movs r2, 0 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - bl _call_via_r8 - lsls r0, 24 - cmp r0, 0 - bne _08092474 -_08092460: - adds r0, r6, 0 - bl GetFaceDirectionAnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r7, 0 - bl FieldObjectSetRegularAnim -_08092474: - ldrb r0, [r4] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r4] - movs r0, 0x2 - strh r0, [r7, 0x30] - movs r0, 0x1 - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end oac_hopping - - thumb_func_start FieldObjectCB_CopyPlayer2 -FieldObjectCB_CopyPlayer2: @ 8092494 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =sub_80924B8 - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_CopyPlayer2 - - thumb_func_start sub_80924B8 -sub_80924B8: @ 80924B8 - push {r4,lr} - ldr r3, =gUnknown_0850DA90 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80924B8 - - thumb_func_start mss_08062EA4 -mss_08062EA4: @ 80924D8 - push {r4-r7,lr} - adds r6, r0, 0 - adds r7, r1, 0 - ldr r2, =gMapObjects - ldr r3, =gUnknown_02037590 - ldrb r1, [r3, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1C] - cmp r0, 0xFF - beq _080924F8 - ldrb r0, [r3, 0x3] - cmp r0, 0x2 - bne _08092504 -_080924F8: - movs r0, 0 - b _0809252C - .pool -_08092504: - ldr r5, =gUnknown_0850DA64 - bl player_get_x22 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 22 - adds r4, r5 - bl player_get_direction_upper_nybble - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - ldr r3, =sub_8088E64 - ldr r4, [r4] - adds r0, r6, 0 - adds r1, r7, 0 - bl _call_via_r4 - lsls r0, 24 - lsrs r0, 24 -_0809252C: - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end mss_08062EA4 - - thumb_func_start FieldObjectCB_TreeDisguise -@ void FieldObjectCB_TreeDisguise(struct obj *object) -FieldObjectCB_TreeDisguise: @ 809253C - push {r4-r6,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, =gMapObjects - adds r4, r1, r0 - adds r6, r4, 0 - adds r6, 0x21 - ldrb r0, [r6] - cmp r0, 0 - beq _08092564 - cmp r0, 0x1 - bne _08092584 - movs r1, 0x3C - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _08092584 -_08092564: - ldr r1, =gUnknown_02038C08 - adds r2, r1, 0x4 - adds r3, r1, 0 - adds r3, 0x8 - adds r0, r4, 0 - bl FieldObjectGetLocalIdAndMap - movs r0, 0x1C - bl FieldEffectStart - strb r0, [r4, 0x1A] - movs r0, 0x1 - strb r0, [r6] - ldrh r0, [r5, 0x3C] - adds r0, 0x1 - strh r0, [r5, 0x3C] -_08092584: - movs r0, 0x2E - ldrsh r1, [r5, r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r0, r1 - ldr r2, =sub_80925AC - adds r1, r5, 0 - bl FieldObjectStep - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_TreeDisguise - - thumb_func_start sub_80925AC -sub_80925AC: @ 80925AC - push {lr} - bl npc_reset - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_80925AC - - thumb_func_start FieldObjectCB_MountainDisguise -FieldObjectCB_MountainDisguise: @ 80925B8 - push {r4-r6,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, =gMapObjects - adds r4, r1, r0 - adds r6, r4, 0 - adds r6, 0x21 - ldrb r0, [r6] - cmp r0, 0 - beq _080925E0 - cmp r0, 0x1 - bne _08092600 - movs r1, 0x3C - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _08092600 -_080925E0: - ldr r1, =gUnknown_02038C08 - adds r2, r1, 0x4 - adds r3, r1, 0 - adds r3, 0x8 - adds r0, r4, 0 - bl FieldObjectGetLocalIdAndMap - movs r0, 0x1D - bl FieldEffectStart - strb r0, [r4, 0x1A] - movs r0, 0x1 - strb r0, [r6] - ldrh r0, [r5, 0x3C] - adds r0, 0x1 - strh r0, [r5, 0x3C] -_08092600: - movs r0, 0x2E - ldrsh r1, [r5, r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r0, r1 - ldr r2, =sub_80925AC - adds r1, r5, 0 - bl FieldObjectStep - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_MountainDisguise - - thumb_func_start FieldObjectCB_Hidden1 -@ void FieldObjectCB_Hidden1(struct obj *object) -FieldObjectCB_Hidden1: @ 8092628 - push {r4,lr} - adds r3, r0, 0 - movs r1, 0x3C - ldrsh r0, [r3, r1] - ldr r4, =gMapObjects - cmp r0, 0 - bne _08092668 - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0, 0x3] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0, 0x3] - adds r2, r3, 0 - adds r2, 0x42 - ldrb r1, [r2] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r3, 0x5] - movs r1, 0xC - orrs r0, r1 - strb r0, [r3, 0x5] - ldrh r0, [r3, 0x3C] - adds r0, 0x1 - strh r0, [r3, 0x3C] -_08092668: - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r2, =sub_809268C - adds r1, r3, 0 - bl FieldObjectStep - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_Hidden1 - - thumb_func_start sub_809268C -sub_809268C: @ 809268C - push {r4,lr} - ldr r3, =gUnknown_0850DA9C - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_809268C - - thumb_func_start sub_80926AC -sub_80926AC: @ 80926AC - push {lr} - bl npc_reset - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_80926AC - - thumb_func_start sub_80926B8 -@ bool8 sub_80926B8(struct npc_state *fieldObject, struct obj *object) -sub_80926B8: @ 80926B8 - push {r4,lr} - adds r4, r1, 0 - bl FieldObjectExecRegularAnim - lsls r0, 24 - cmp r0, 0 - beq _080926CA - movs r0, 0 - strh r0, [r4, 0x30] -_080926CA: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80926B8 - - thumb_func_start FieldObjectCB_WalkInPlace1 -FieldObjectCB_WalkInPlace1: @ 80926D4 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =sub_80926F8 - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_WalkInPlace1 - - thumb_func_start sub_80926F8 -sub_80926F8: @ 80926F8 - push {r4,lr} - ldr r3, =gUnknown_0850DAA0 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80926F8 - - thumb_func_start sub_8092718 -sub_8092718: @ 8092718 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl npc_reset - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl GetStepInPlaceDelay16AnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl FieldObjectSetRegularAnim - movs r0, 0x1 - strh r0, [r5, 0x30] - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8092718 - - thumb_func_start FieldObjectCB_WalkInPlace4 -FieldObjectCB_WalkInPlace4: @ 8092744 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =sub_8092768 - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_WalkInPlace4 - - thumb_func_start sub_8092768 -sub_8092768: @ 8092768 - push {r4,lr} - ldr r3, =gUnknown_0850DAA8 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8092768 - - thumb_func_start sub_8092788 -sub_8092788: @ 8092788 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl npc_reset - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl GetStepInPlaceDelay32AnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl FieldObjectSetRegularAnim - movs r0, 0x1 - strh r0, [r5, 0x30] - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8092788 - - thumb_func_start FieldObjectCB_WalkInPlace2 -FieldObjectCB_WalkInPlace2: @ 80927B4 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =sub_80927D8 - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_WalkInPlace2 - - thumb_func_start sub_80927D8 -sub_80927D8: @ 80927D8 - push {r4,lr} - ldr r3, =gUnknown_0850DAB0 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80927D8 - - thumb_func_start sub_80927F8 -@ bool8 sub_80927F8(struct npc_state *fieldObject, struct obj *object) -sub_80927F8: @ 80927F8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl npc_reset - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl GetStepInPlaceDelay8AnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl FieldObjectSetRegularAnim - movs r0, 0x1 - strh r0, [r5, 0x30] - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80927F8 - - thumb_func_start FieldObjectCB_WalkInPlace3 -FieldObjectCB_WalkInPlace3: @ 8092824 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =sub_8092848 - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_WalkInPlace3 - - thumb_func_start sub_8092848 -sub_8092848: @ 8092848 - push {r4,lr} - ldr r3, =gUnknown_0850DAB8 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8092848 - - thumb_func_start sub_8092868 -sub_8092868: @ 8092868 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl npc_reset - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl GetStepInPlaceDelay4AnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl FieldObjectSetRegularAnim - movs r0, 0x1 - strh r0, [r5, 0x30] - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8092868 - - thumb_func_start FieldObjectCB_Hidden2 -FieldObjectCB_Hidden2: @ 8092894 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gMapObjects - adds r0, r2 - ldr r2, =sub_80928B8 - bl FieldObjectStep - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectCB_Hidden2 - - thumb_func_start sub_80928B8 -sub_80928B8: @ 80928B8 - push {r4,lr} - ldr r3, =gUnknown_0850DAC0 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80928B8 - - thumb_func_start sub_80928D8 -sub_80928D8: @ 80928D8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl npc_reset - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl GetFaceDirectionAnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl FieldObjectSetRegularAnim - ldrb r0, [r4, 0x1] - movs r1, 0x20 - orrs r0, r1 - strb r0, [r4, 0x1] - movs r0, 0x1 - strh r0, [r5, 0x30] - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80928D8 - - thumb_func_start sub_809290C -sub_809290C: @ 809290C - push {r4,lr} - adds r4, r1, 0 - bl FieldObjectExecRegularAnim - lsls r0, 24 - cmp r0, 0 - bne _0809291E - movs r0, 0 - b _08092924 -_0809291E: - movs r0, 0x2 - strh r0, [r4, 0x30] - movs r0, 0x1 -_08092924: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_809290C - - thumb_func_start sub_809292C -sub_809292C: @ 809292C - ldrb r2, [r0] - movs r1, 0x3 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - movs r0, 0 - bx lr - thumb_func_end sub_809292C - - thumb_func_start npc_reset -@ void npc_reset(struct npc_state *fieldObject, struct obj *object) -npc_reset: @ 809293C - ldrb r3, [r0] - movs r2, 0x3 - negs r2, r2 - ands r2, r3 - movs r3, 0x41 - negs r3, r3 - ands r2, r3 - movs r3, 0x7F - ands r2, r3 - strb r2, [r0] - movs r2, 0xFF - strb r2, [r0, 0x1C] - movs r0, 0 - strh r0, [r1, 0x30] - bx lr - thumb_func_end npc_reset - - thumb_func_start FieldObjectDirectionToImageAnimId -@ u8 FieldObjectDirectionToImageAnimId(u8 direction) -FieldObjectDirectionToImageAnimId: @ 809295C - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0850DACC - adds r0, r1 - ldrb r0, [r0] - bx lr - .pool - thumb_func_end FieldObjectDirectionToImageAnimId - - thumb_func_start get_go_image_anim_num -get_go_image_anim_num: @ 809296C - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0850DAD5 - adds r0, r1 - ldrb r0, [r0] - bx lr - .pool - thumb_func_end get_go_image_anim_num - - thumb_func_start get_go_fast_image_anim_num -get_go_fast_image_anim_num: @ 809297C - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0850DADE - adds r0, r1 - ldrb r0, [r0] - bx lr - .pool - thumb_func_end get_go_fast_image_anim_num - - thumb_func_start get_go_faster_image_anim_num -get_go_faster_image_anim_num: @ 809298C - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0850DAE7 - adds r0, r1 - ldrb r0, [r0] - bx lr - .pool - thumb_func_end get_go_faster_image_anim_num - - thumb_func_start get_go_fastest_image_anim_num -get_go_fastest_image_anim_num: @ 809299C - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0850DAF0 - adds r0, r1 - ldrb r0, [r0] - bx lr - .pool - thumb_func_end get_go_fastest_image_anim_num - - thumb_func_start sub_80929AC -sub_80929AC: @ 80929AC - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0850DAF9 - adds r0, r1 - ldrb r0, [r0] - bx lr - .pool - thumb_func_end sub_80929AC - - thumb_func_start sub_80929BC -sub_80929BC: @ 80929BC - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0850DB02 - adds r0, r1 - ldrb r0, [r0] - bx lr - .pool - thumb_func_end sub_80929BC - - thumb_func_start sub_80929CC -sub_80929CC: @ 80929CC - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0850DB0B - adds r0, r1 - ldrb r0, [r0] - bx lr - .pool - thumb_func_end sub_80929CC - - thumb_func_start sub_80929DC -sub_80929DC: @ 80929DC - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0850DB14 - adds r0, r1 - ldrb r0, [r0] - bx lr - .pool - thumb_func_end sub_80929DC - - thumb_func_start sub_80929EC -sub_80929EC: @ 80929EC - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0850DB1D - adds r0, r1 - ldrb r0, [r0] - bx lr - .pool - thumb_func_end sub_80929EC - - thumb_func_start sub_80929FC -sub_80929FC: @ 80929FC - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0850DB26 - adds r0, r1 - ldrb r0, [r0] - bx lr - .pool - thumb_func_end sub_80929FC - - thumb_func_start sub_8092A0C -sub_8092A0C: @ 8092A0C - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0850DB2F - adds r0, r1 - ldrb r0, [r0] - bx lr - .pool - thumb_func_end sub_8092A0C - - thumb_func_start sub_8092A1C -sub_8092A1C: @ 8092A1C - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0850DB38 - adds r0, r1 - ldrb r0, [r0] - bx lr - .pool - thumb_func_end sub_8092A1C - - thumb_func_start sub_8092A2C -sub_8092A2C: @ 8092A2C - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0850DB41 - adds r0, r1 - ldrb r0, [r0] - bx lr - .pool - thumb_func_end sub_8092A2C - - thumb_func_start get_run_image_anim_num -get_run_image_anim_num: @ 8092A3C - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0850DB4A - adds r0, r1 - ldrb r0, [r0] - bx lr - .pool - thumb_func_end get_run_image_anim_num - - thumb_func_start sub_8092A4C -sub_8092A4C: @ 8092A4C - push {lr} - adds r2, r0, 0 - ldr r1, =gUnknown_085094AC - b _08092A64 - .pool -_08092A58: - ldr r0, [r1] - cmp r0, r2 - bne _08092A62 - adds r0, r1, 0 - b _08092A6C -_08092A62: - adds r1, 0x8 -_08092A64: - ldr r0, [r1] - cmp r0, 0 - bne _08092A58 - movs r0, 0 -_08092A6C: - pop {r1} - bx r1 - thumb_func_end sub_8092A4C - - thumb_func_start npc_apply_anim_looping -@ void npc_apply_anim_looping(struct npc_state *fieldObject, struct obj *object, u8 anim) -npc_apply_anim_looping: @ 8092A70 - push {r4,lr} - adds r4, r1, 0 - lsls r2, 24 - lsrs r2, 24 - ldrb r0, [r0, 0x1] - lsls r0, 27 - cmp r0, 0 - blt _08092AB2 - adds r0, r4, 0 - adds r0, 0x2A - strb r2, [r0] - ldr r0, [r4, 0x8] - bl sub_8092A4C - adds r1, r4, 0 - adds r1, 0x2B - cmp r0, 0 - beq _08092AAA - ldrb r2, [r1] - ldrb r3, [r0, 0x4] - cmp r2, r3 - bne _08092AA0 - ldrb r0, [r0, 0x7] - b _08092AA8 -_08092AA0: - ldrb r3, [r0, 0x5] - cmp r2, r3 - bne _08092AAA - ldrb r0, [r0, 0x6] -_08092AA8: - strb r0, [r1] -_08092AAA: - ldrb r1, [r1] - adds r0, r4, 0 - bl SeekSpriteAnim -_08092AB2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end npc_apply_anim_looping - - thumb_func_start obj_npc_animation_step -@ void obj_npc_animation_step(struct npc_state *fieldObject, struct obj *object, u8 anim) -obj_npc_animation_step: @ 8092AB8 - push {r4,lr} - adds r4, r1, 0 - lsls r2, 24 - lsrs r2, 24 - ldrb r0, [r0, 0x1] - lsls r0, 27 - cmp r0, 0 - blt _08092AF0 - adds r0, r4, 0 - adds r0, 0x2A - strb r2, [r0] - ldr r0, [r4, 0x8] - bl sub_8092A4C - adds r2, r0, 0 - cmp r2, 0 - beq _08092AF0 - ldrb r1, [r2, 0x5] - adds r0, r4, 0 - adds r0, 0x2B - ldrb r0, [r0] - ldrb r3, [r2, 0x4] - cmp r0, r3 - bhi _08092AEA - ldrb r1, [r2, 0x4] -_08092AEA: - adds r0, r4, 0 - bl SeekSpriteAnim -_08092AF0: - pop {r4} - pop {r0} - bx r0 - thumb_func_end obj_npc_animation_step - - thumb_func_start sub_8092AF8 -sub_8092AF8: @ 8092AF8 - push {lr} - lsls r1, 16 - lsrs r1, 16 - lsls r3, 16 - lsrs r3, 16 - lsls r0, 16 - asrs r0, 16 - lsls r2, 16 - asrs r2, 16 - cmp r0, r2 - ble _08092B12 - movs r0, 0x3 - b _08092B28 -_08092B12: - cmp r0, r2 - bge _08092B1A - movs r0, 0x4 - b _08092B28 -_08092B1A: - lsls r1, 16 - lsls r0, r3, 16 - cmp r1, r0 - bgt _08092B26 - movs r0, 0x1 - b _08092B28 -_08092B26: - movs r0, 0x2 -_08092B28: - pop {r1} - bx r1 - thumb_func_end sub_8092AF8 - - thumb_func_start npc_set_running_behaviour_etc -npc_set_running_behaviour_etc: @ 8092B2C - push {r4,lr} - mov r12, r0 - lsls r1, 24 - lsrs r1, 24 - movs r3, 0 - strb r1, [r0, 0x6] - adds r0, 0x21 - strb r3, [r0] - adds r0, 0x1 - strb r3, [r0] - ldr r4, =gSprites - mov r0, r12 - ldrb r2, [r0, 0x4] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r2, r4, 0 - adds r2, 0x1C - adds r0, r2 - ldr r2, =gUnknown_08505438 - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - str r1, [r0] - mov r0, r12 - ldrb r1, [r0, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r3, [r0, 0x30] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end npc_set_running_behaviour_etc - - thumb_func_start npc_running_behaviour_by_direction -npc_running_behaviour_by_direction: @ 8092B78 - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0850DB53 - adds r0, r1 - ldrb r0, [r0] - bx lr - .pool - thumb_func_end npc_running_behaviour_by_direction - - thumb_func_start sub_8092B88 -sub_8092B88: @ 8092B88 - push {r4-r6,lr} - sub sp, 0x4 - adds r6, r0, 0 - lsls r5, r1, 24 - lsrs r5, 24 - ldrh r1, [r6, 0x10] - mov r0, sp - strh r1, [r0] - ldrh r0, [r6, 0x12] - mov r4, sp - adds r4, 0x2 - strh r0, [r4] - adds r0, r5, 0 - mov r1, sp - adds r2, r4, 0 - bl MoveCoords - mov r0, sp - movs r2, 0 - ldrsh r1, [r0, r2] - movs r0, 0 - ldrsh r2, [r4, r0] - adds r0, r6, 0 - adds r3, r5, 0 - bl npc_block_way - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8092B88 - - thumb_func_start npc_block_way -@ u8 npc_block_way(struct npc_state *fieldObject, u16 x, u16 y, u8 direction) -npc_block_way: @ 8092BC8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r6, r0, 0 - lsls r1, 16 - lsls r2, 16 - lsls r3, 24 - lsrs r7, r3, 24 - mov r8, r7 - lsrs r0, r1, 16 - mov r9, r0 - asrs r5, r1, 16 - lsrs r0, r2, 16 - mov r10, r0 - asrs r4, r2, 16 - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl IsCoordOutsideFieldObjectMovementRect - lsls r0, 24 - cmp r0, 0 - beq _08092BFE - movs r0, 0x1 - b _08092C7E -_08092BFE: - adds r0, r5, 0 - adds r1, r4, 0 - bl MapGridIsImpassableAt - lsls r0, 24 - cmp r0, 0 - bne _08092C40 - adds r0, r5, 0 - adds r1, r4, 0 - bl GetMapBorderIdAt - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _08092C40 - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r4, 0 - adds r3, r7, 0 - bl IsMetatileDirectionallyImpassable - lsls r0, 24 - cmp r0, 0 - bne _08092C40 - ldrb r0, [r6, 0x1] - lsrs r0, 7 - cmp r0, 0 - beq _08092C44 - mov r0, r8 - bl CanCameraMoveInDirection - cmp r0, 0 - bne _08092C44 -_08092C40: - movs r0, 0x2 - b _08092C7E -_08092C44: - ldrb r0, [r6, 0xB] - lsls r0, 28 - lsrs r0, 28 - mov r2, r9 - lsls r1, r2, 16 - asrs r5, r1, 16 - mov r2, r10 - lsls r1, r2, 16 - asrs r4, r1, 16 - adds r1, r5, 0 - adds r2, r4, 0 - bl IsZCoordMismatchAt - lsls r0, 24 - cmp r0, 0 - beq _08092C68 - movs r0, 0x3 - b _08092C7E -_08092C68: - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl CheckForCollisionBetweenFieldObjects - lsls r0, 24 - cmp r0, 0 - bne _08092C7C - movs r0, 0 - b _08092C7E -_08092C7C: - movs r0, 0x4 -_08092C7E: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end npc_block_way - - thumb_func_start sub_8092C8C -sub_8092C8C: @ 8092C8C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r7, r0, 0 - lsls r1, 16 - lsls r2, 16 - lsls r3, 24 - lsrs r3, 24 - mov r8, r3 - lsrs r0, r1, 16 - mov r9, r0 - asrs r6, r1, 16 - lsrs r0, r2, 16 - mov r10, r0 - asrs r5, r2, 16 - adds r0, r7, 0 - adds r1, r6, 0 - adds r2, r5, 0 - bl IsCoordOutsideFieldObjectMovementRect - lsls r0, 24 - lsrs r0, 24 - negs r1, r0 - orrs r1, r0 - lsrs r4, r1, 31 - adds r0, r6, 0 - adds r1, r5, 0 - bl MapGridIsImpassableAt - lsls r0, 24 - cmp r0, 0 - bne _08092D04 - adds r0, r6, 0 - adds r1, r5, 0 - bl GetMapBorderIdAt - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _08092D04 - adds r0, r7, 0 - adds r1, r6, 0 - adds r2, r5, 0 - mov r3, r8 - bl IsMetatileDirectionallyImpassable - lsls r0, 24 - cmp r0, 0 - bne _08092D04 - ldrb r0, [r7, 0x1] - lsrs r0, 7 - cmp r0, 0 - beq _08092D08 - mov r0, r8 - bl CanCameraMoveInDirection - cmp r0, 0 - bne _08092D08 -_08092D04: - movs r0, 0x2 - orrs r4, r0 -_08092D08: - ldrb r0, [r7, 0xB] - lsls r0, 28 - lsrs r0, 28 - mov r2, r9 - lsls r1, r2, 16 - asrs r6, r1, 16 - mov r2, r10 - lsls r1, r2, 16 - asrs r5, r1, 16 - adds r1, r6, 0 - adds r2, r5, 0 - bl IsZCoordMismatchAt - lsls r0, 24 - cmp r0, 0 - beq _08092D30 - movs r0, 0x4 - orrs r4, r0 - lsls r0, r4, 24 - lsrs r4, r0, 24 -_08092D30: - adds r0, r7, 0 - adds r1, r6, 0 - adds r2, r5, 0 - bl CheckForCollisionBetweenFieldObjects - lsls r0, 24 - cmp r0, 0 - beq _08092D48 - movs r0, 0x8 - orrs r4, r0 - lsls r0, r4, 24 - lsrs r4, r0, 24 -_08092D48: - adds r0, r4, 0 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8092C8C - - thumb_func_start IsCoordOutsideFieldObjectMovementRect -@ bool8 IsCoordOutsideFieldObjectMovementRect(struct npc_state *fieldObject, u16 x, u16 y) -IsCoordOutsideFieldObjectMovementRect: @ 8092D58 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r1, 16 - lsrs r3, r1, 16 - lsls r2, 16 - lsrs r5, r2, 16 - ldrb r1, [r4, 0x19] - movs r0, 0xF - ands r0, r1 - cmp r0, 0 - beq _08092D90 - lsls r1, 28 - lsrs r2, r1, 28 - ldrh r0, [r4, 0xC] - subs r2, r0, r2 - lsrs r1, 28 - adds r0, r1 - lsls r0, 16 - lsrs r1, r0, 16 - lsls r2, 16 - lsls r0, r3, 16 - asrs r3, r0, 16 - cmp r2, r0 - bgt _08092DBC - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, r3 - blt _08092DBC -_08092D90: - ldrb r1, [r4, 0x19] - movs r0, 0xF0 - ands r0, r1 - cmp r0, 0 - beq _08092DC0 - lsls r1, 24 - lsrs r2, r1, 28 - ldrh r0, [r4, 0xE] - subs r2, r0, r2 - lsrs r1, 28 - adds r0, r1 - lsls r0, 16 - lsrs r1, r0, 16 - lsls r2, 16 - lsls r0, r5, 16 - asrs r3, r0, 16 - cmp r2, r0 - bgt _08092DBC - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, r3 - bge _08092DC0 -_08092DBC: - movs r0, 0x1 - b _08092DC2 -_08092DC0: - movs r0, 0 -_08092DC2: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end IsCoordOutsideFieldObjectMovementRect - - thumb_func_start IsMetatileDirectionallyImpassable -@ bool8 IsMetatileDirectionallyImpassable(struct npc_state *fieldObject, u16 x, u16 y, u8 direction) -IsMetatileDirectionallyImpassable: @ 8092DC8 - push {r4-r7,lr} - lsls r1, 16 - lsrs r6, r1, 16 - lsls r2, 16 - lsrs r7, r2, 16 - lsls r3, 24 - ldr r1, =gUnknown_0850DB5C - lsrs r3, 22 - subs r5, r3, 0x4 - adds r1, r5, r1 - ldrb r0, [r0, 0x1E] - ldr r1, [r1] - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _08092E0A - ldr r4, =gUnknown_0850DB6C - adds r4, r5, r4 - lsls r0, r6, 16 - asrs r0, 16 - lsls r1, r7, 16 - asrs r1, 16 - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - ldr r1, [r4] - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - beq _08092E18 -_08092E0A: - movs r0, 0x1 - b _08092E1A - .pool -_08092E18: - movs r0, 0 -_08092E1A: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end IsMetatileDirectionallyImpassable - - thumb_func_start CheckForCollisionBetweenFieldObjects -@ bool8 CheckForCollisionBetweenFieldObjects(struct npc_state *fieldObject, u16 x, u16 y) -CheckForCollisionBetweenFieldObjects: @ 8092E20 - push {r4-r7,lr} - adds r6, r0, 0 - lsls r1, 16 - lsrs r7, r1, 16 - movs r4, 0 - lsls r2, 16 - asrs r5, r2, 16 -_08092E2E: - lsls r0, r4, 3 - adds r0, r4 - lsls r0, 2 - ldr r1, =gMapObjects - adds r2, r0, r1 - ldrb r0, [r2] - lsls r0, 31 - cmp r0, 0 - beq _08092E88 - cmp r2, r6 - beq _08092E88 - movs r0, 0x10 - ldrsh r1, [r2, r0] - lsls r0, r7, 16 - asrs r3, r0, 16 - cmp r1, r3 - bne _08092E58 - movs r1, 0x12 - ldrsh r0, [r2, r1] - cmp r0, r5 - beq _08092E68 -_08092E58: - movs r1, 0x14 - ldrsh r0, [r2, r1] - cmp r0, r3 - bne _08092E88 - movs r1, 0x16 - ldrsh r0, [r2, r1] - cmp r0, r5 - bne _08092E88 -_08092E68: - ldrb r0, [r6, 0xB] - lsls r0, 28 - lsrs r0, 28 - ldrb r1, [r2, 0xB] - lsls r1, 28 - lsrs r1, 28 - bl AreZCoordsCompatible - lsls r0, 24 - cmp r0, 0 - beq _08092E88 - movs r0, 0x1 - b _08092E94 - .pool -_08092E88: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bls _08092E2E - movs r0, 0 -_08092E94: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end CheckForCollisionBetweenFieldObjects - - thumb_func_start sub_8092E9C -sub_8092E9C: @ 8092E9C - push {lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _08092EE8 - ldr r3, =gSprites - ldr r2, =gMapObjects - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x3C] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08092EE8 - movs r0, 0x1 - b _08092EEA - .pool -_08092EE8: - movs r0, 0 -_08092EEA: - add sp, 0x4 - pop {r1} - bx r1 - thumb_func_end sub_8092E9C - - thumb_func_start sub_8092EF0 -sub_8092EF0: @ 8092EF0 - push {lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _08092F2E - ldr r3, =gSprites - ldr r2, =gMapObjects - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrh r2, [r1, 0x3C] - movs r0, 0x4 - orrs r0, r2 - strh r0, [r1, 0x3C] -_08092F2E: - add sp, 0x4 - pop {r0} - bx r0 - .pool - thumb_func_end sub_8092EF0 - - thumb_func_start MoveCoords -@ void MoveCoords(u8 direction, u16 *x, u16 *y) -MoveCoords: @ 8092F3C - push {r4,lr} - lsls r0, 24 - ldr r3, =gUnknown_0850DB7C - lsrs r0, 22 - adds r0, r3 - ldrh r3, [r0] - ldrh r4, [r1] - adds r3, r4 - strh r3, [r1] - ldrh r0, [r0, 0x2] - ldrh r1, [r2] - adds r0, r1 - strh r0, [r2] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end MoveCoords - - thumb_func_start sub_8092F60 -sub_8092F60: @ 8092F60 - push {r4,lr} - lsls r0, 24 - ldr r3, =gUnknown_0850DB7C - lsrs r0, 22 - adds r0, r3 - ldrh r3, [r0] - lsls r3, 4 - ldrh r4, [r1] - adds r3, r4 - strh r3, [r1] - ldrh r0, [r0, 0x2] - lsls r0, 4 - ldrh r1, [r2] - adds r0, r1 - strh r0, [r2] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8092F60 - - thumb_func_start sub_8092F88 -sub_8092F88: @ 8092F88 - push {r4-r7,lr} - adds r4, r1, 0 - ldr r1, [sp, 0x14] - lsls r0, 24 - lsls r3, 16 - lsrs r3, 16 - adds r7, r3, 0 - lsls r1, 16 - lsrs r6, r1, 16 - mov r12, r6 - ldr r1, =gUnknown_0850DB7C - lsrs r0, 22 - adds r5, r0, r1 - movs r0, 0 - ldrsh r1, [r5, r0] - cmp r1, 0 - ble _08092FB4 - lsls r0, r3, 16 - asrs r0, 16 - ldrh r3, [r4] - adds r0, r3 - strh r0, [r4] -_08092FB4: - cmp r1, 0 - bge _08092FC2 - ldrh r1, [r4] - lsls r0, r7, 16 - asrs r0, 16 - subs r1, r0 - strh r1, [r4] -_08092FC2: - movs r0, 0x2 - ldrsh r1, [r5, r0] - cmp r1, 0 - ble _08092FD4 - lsls r0, r6, 16 - asrs r0, 16 - ldrh r3, [r2] - adds r0, r3 - strh r0, [r2] -_08092FD4: - cmp r1, 0 - bge _08092FE4 - ldrh r1, [r2] - mov r3, r12 - lsls r0, r3, 16 - asrs r0, 16 - subs r1, r0 - strh r1, [r2] -_08092FE4: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8092F88 - - thumb_func_start sub_8092FF0 -sub_8092FF0: @ 8092FF0 - push {r4,r5,lr} - ldr r5, =gSaveBlock1Ptr - ldr r4, [r5] - ldrh r4, [r4] - lsls r0, 16 - asrs r0, 16 - subs r0, r4 - lsls r0, 4 - strh r0, [r2] - ldr r0, [r5] - ldrh r0, [r0, 0x2] - lsls r1, 16 - asrs r1, 16 - subs r1, r0 - lsls r1, 4 - strh r1, [r3] - ldr r1, =gUnknown_03005DEC - ldrh r0, [r2] - ldrh r1, [r1] - subs r0, r1 - strh r0, [r2] - ldr r1, =gUnknown_03005DE8 - ldrh r0, [r3] - ldrh r1, [r1] - subs r0, r1 - strh r0, [r3] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8092FF0 - - thumb_func_start sub_8093038 -sub_8093038: @ 8093038 - push {r4-r7,lr} - adds r7, r2, 0 - mov r12, r3 - lsls r0, 16 - lsrs r5, r0, 16 - lsls r1, 16 - lsrs r6, r1, 16 - ldr r0, =gUnknown_03005DEC - ldrh r0, [r0] - negs r0, r0 - ldr r1, =gUnknown_03005DD0 - ldr r2, [r1, 0x10] - subs r0, r2 - lsls r0, 16 - lsrs r3, r0, 16 - ldr r0, =gUnknown_03005DE8 - ldrh r0, [r0] - negs r0, r0 - ldr r1, [r1, 0x14] - subs r0, r1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r2, 0 - ble _08093072 - lsls r0, r3, 16 - movs r3, 0x80 - lsls r3, 13 - adds r0, r3 - lsrs r3, r0, 16 -_08093072: - cmp r2, 0 - bge _0809307E - lsls r0, r3, 16 - ldr r2, =0xfff00000 - adds r0, r2 - lsrs r3, r0, 16 -_0809307E: - cmp r1, 0 - ble _0809308C - lsls r0, r4, 16 - movs r2, 0x80 - lsls r2, 13 - adds r0, r2 - lsrs r4, r0, 16 -_0809308C: - cmp r1, 0 - bge _08093098 - lsls r0, r4, 16 - ldr r1, =0xfff00000 - adds r0, r1 - lsrs r4, r0, 16 -_08093098: - ldr r2, =gSaveBlock1Ptr - ldr r0, [r2] - ldrh r1, [r0] - lsls r0, r5, 16 - asrs r0, 16 - subs r0, r1 - lsls r0, 4 - lsls r1, r3, 16 - asrs r1, 16 - adds r1, r0 - strh r1, [r7] - ldr r0, [r2] - ldrh r1, [r0, 0x2] - lsls r0, r6, 16 - asrs r0, 16 - subs r0, r1 - lsls r0, 4 - lsls r1, r4, 16 - asrs r1, 16 - adds r1, r0 - mov r2, r12 - strh r1, [r2] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8093038 - - thumb_func_start sub_80930E0 -sub_80930E0: @ 80930E0 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r6, r0, 0 - mov r8, r1 - adds r4, r2, 0 - adds r5, r3, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - movs r1, 0 - ldrsh r0, [r6, r1] - mov r2, r8 - movs r3, 0 - ldrsh r1, [r2, r3] - adds r2, r6, 0 - mov r3, r8 - bl sub_8093038 - lsls r4, 16 - asrs r4, 16 - ldrh r0, [r6] - adds r4, r0 - strh r4, [r6] - lsls r5, 16 - asrs r5, 16 - mov r1, r8 - ldrh r1, [r1] - adds r5, r1 - mov r2, r8 - strh r5, [r2] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80930E0 - - thumb_func_start GetFieldObjectMovingCameraOffset -@ void GetFieldObjectMovingCameraOffset(s16 *x, s16 *y) -GetFieldObjectMovingCameraOffset: @ 809312C - push {lr} - adds r2, r0, 0 - movs r0, 0 - strh r0, [r2] - strh r0, [r1] - ldr r3, =gUnknown_03005DD0 - ldr r0, [r3, 0x10] - cmp r0, 0 - ble _08093142 - movs r0, 0x1 - strh r0, [r2] -_08093142: - ldr r0, [r3, 0x10] - cmp r0, 0 - bge _0809314E - ldrh r0, [r2] - subs r0, 0x1 - strh r0, [r2] -_0809314E: - ldr r2, [r3, 0x14] - cmp r2, 0 - ble _0809315A - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_0809315A: - cmp r2, 0 - bge _08093164 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] -_08093164: - pop {r0} - bx r0 - .pool - thumb_func_end GetFieldObjectMovingCameraOffset - - thumb_func_start FieldObjectMoveDestCoords -@ void FieldObjectMoveDestCoords(struct npc_state *fieldObject, u8 direction) -FieldObjectMoveDestCoords: @ 809316C - push {r4,lr} - lsls r1, 24 - lsrs r1, 24 - ldrh r4, [r0, 0x10] - strh r4, [r2] - ldrh r0, [r0, 0x12] - strh r0, [r3] - adds r0, r1, 0 - adds r1, r2, 0 - adds r2, r3, 0 - bl MoveCoords - pop {r4} - pop {r0} - bx r0 - thumb_func_end FieldObjectMoveDestCoords - - thumb_func_start FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive -@ bool8 FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(struct npc_state *fieldObject) -FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive: @ 809318C - push {lr} - ldrb r1, [r0] - movs r0, 0x42 - ands r0, r1 - cmp r0, 0 - bne _0809319C - movs r0, 0 - b _0809319E -_0809319C: - movs r0, 0x1 -_0809319E: - pop {r1} - bx r1 - thumb_func_end FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive - - thumb_func_start FieldObjectIsSpecialAnimActive -@ bool8 FieldObjectIsSpecialAnimActive(struct npc_state *fieldObject) -FieldObjectIsSpecialAnimActive: @ 80931A4 - push {lr} - adds r1, r0, 0 - ldrb r0, [r1] - lsls r0, 25 - cmp r0, 0 - bge _080931BA - ldrb r0, [r1, 0x1C] - cmp r0, 0xFF - beq _080931BA - movs r0, 0x1 - b _080931BC -_080931BA: - movs r0, 0 -_080931BC: - pop {r1} - bx r1 - thumb_func_end FieldObjectIsSpecialAnimActive - - thumb_func_start FieldObjectSetSpecialAnim -@ bool8 FieldObjectSetSpecialAnim(struct npc_state *fieldObject, u8 animId) -FieldObjectSetSpecialAnim: @ 80931C0 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - bne _08093200 - adds r0, r4, 0 - bl npc_sync_anim_pause_bits - strb r5, [r4, 0x1C] - ldrb r0, [r4] - movs r1, 0x40 - orrs r0, r1 - movs r1, 0x7F - ands r0, r1 - strb r0, [r4] - ldr r2, =gSprites - ldrb r1, [r4, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r6, [r0, 0x32] - movs r0, 0 - b _08093202 - .pool -_08093200: - movs r0, 0x1 -_08093202: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end FieldObjectSetSpecialAnim - - thumb_func_start FieldObjectForceSetSpecialAnim -@ void FieldObjectForceSetSpecialAnim(struct npc_state *fieldObject, u8 animId) -FieldObjectForceSetSpecialAnim: @ 8093208 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r4, r1, 24 - lsrs r4, 24 - bl FieldObjectClearAnimIfSpecialAnimActive - adds r0, r5, 0 - adds r1, r4, 0 - bl FieldObjectSetSpecialAnim - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end FieldObjectForceSetSpecialAnim - - thumb_func_start FieldObjectClearAnimIfSpecialAnimActive -@ void FieldObjectClearAnimIfSpecialAnimActive(struct npc_state *fieldObject) -FieldObjectClearAnimIfSpecialAnimActive: @ 8093224 - push {lr} - adds r1, r0, 0 - ldrb r0, [r1] - lsls r0, 25 - cmp r0, 0 - bge _08093236 - adds r0, r1, 0 - bl FieldObjectClearAnim -_08093236: - pop {r0} - bx r0 - thumb_func_end FieldObjectClearAnimIfSpecialAnimActive - - thumb_func_start FieldObjectClearAnim -@ void FieldObjectClearAnim(struct npc_state *fieldObject) -FieldObjectClearAnim: @ 809323C - movs r1, 0xFF - strb r1, [r0, 0x1C] - ldrb r2, [r0] - movs r1, 0x41 - negs r1, r1 - ands r1, r2 - movs r2, 0x7F - ands r1, r2 - strb r1, [r0] - ldr r3, =gSprites - ldrb r2, [r0, 0x4] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r3 - movs r2, 0 - strh r2, [r1, 0x30] - ldrb r1, [r0, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r2, [r0, 0x32] - bx lr - .pool - thumb_func_end FieldObjectClearAnim - - thumb_func_start FieldObjectCheckIfSpecialAnimFinishedOrInactive -@ u8 FieldObjectCheckIfSpecialAnimFinishedOrInactive(struct npc_state *fieldObject) -FieldObjectCheckIfSpecialAnimFinishedOrInactive: @ 8093270 - push {lr} - ldrb r1, [r0] - lsls r0, r1, 25 - cmp r0, 0 - blt _0809327E - movs r0, 0x10 - b _08093280 -_0809327E: - lsrs r0, r1, 7 -_08093280: - pop {r1} - bx r1 - thumb_func_end FieldObjectCheckIfSpecialAnimFinishedOrInactive - - thumb_func_start FieldObjectClearAnimIfSpecialAnimFinished -@ u8 FieldObjectClearAnimIfSpecialAnimFinished(struct npc_state *fieldObject) -FieldObjectClearAnimIfSpecialAnimFinished: @ 8093284 - push {r4,r5,lr} - adds r5, r0, 0 - bl FieldObjectCheckIfSpecialAnimFinishedOrInactive - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _0809329E - cmp r4, 0x10 - beq _0809329E - adds r0, r5, 0 - bl FieldObjectClearAnimIfSpecialAnimActive -_0809329E: - adds r0, r4, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end FieldObjectClearAnimIfSpecialAnimFinished - - thumb_func_start FieldObjectGetSpecialAnim -@ u8 FieldObjectGetSpecialAnim(struct npc_state *fieldObject) -FieldObjectGetSpecialAnim: @ 80932A8 - push {lr} - adds r1, r0, 0 - ldrb r0, [r1] - lsls r0, 25 - cmp r0, 0 - blt _080932B8 - movs r0, 0xFF - b _080932BA -_080932B8: - ldrb r0, [r1, 0x1C] -_080932BA: - pop {r1} - bx r1 - thumb_func_end FieldObjectGetSpecialAnim - - thumb_func_start FieldObjectStep -@ void FieldObjectStep(struct npc_state *fieldObject, struct obj *object, bool8 ( *callback)(struct npc_state *fieldObject, struct obj *object)) -FieldObjectStep: @ 80932C0 - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - bl DoGroundEffects_OnSpawn - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80964E8 - adds r0, r4, 0 - bl FieldObjectIsSpecialAnimActive - lsls r0, 24 - cmp r0, 0 - beq _080932EA - adds r0, r4, 0 - adds r1, r5, 0 - bl FieldObjectExecSpecialAnim - b _08093300 -_080932EA: - ldrb r0, [r4, 0x1] - lsls r0, 31 - cmp r0, 0 - bne _08093300 -_080932F2: - adds r0, r4, 0 - adds r1, r5, 0 - bl _call_via_r6 - lsls r0, 24 - cmp r0, 0 - bne _080932F2 -_08093300: - adds r0, r4, 0 - adds r1, r5, 0 - bl DoGroundEffects_OnBeginStep - adds r0, r4, 0 - adds r1, r5, 0 - bl DoGroundEffects_OnFinishStep - adds r0, r4, 0 - adds r1, r5, 0 - bl npc_obj_transfer_image_anim_pause_flag - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8096518 - adds r0, r4, 0 - adds r1, r5, 0 - bl FieldObjectUpdateSubpriority - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end FieldObjectStep - - thumb_func_start GetFaceDirectionAnimId -@ u8 GetFaceDirectionAnimId(u8 direction) -GetFaceDirectionAnimId: @ 8093330 - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gUnknown_0850DBA0 - mov r0, sp - movs r2, 0x5 - bl memcpy - cmp r4, 0x4 - bls _08093348 - movs r4, 0 -_08093348: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end GetFaceDirectionAnimId - - thumb_func_start GetSimpleGoAnimId -@ u8 GetSimpleGoAnimId(u8 direction) -GetSimpleGoAnimId: @ 809335C - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gUnknown_0850DBA5 - mov r0, sp - movs r2, 0x5 - bl memcpy - cmp r4, 0x4 - bls _08093374 - movs r4, 0 -_08093374: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end GetSimpleGoAnimId - - thumb_func_start GetGoSpeed0AnimId -@ u8 GetGoSpeed0AnimId(u8 direction) -GetGoSpeed0AnimId: @ 8093388 - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gUnknown_0850DBAA - mov r0, sp - movs r2, 0x5 - bl memcpy - cmp r4, 0x4 - bls _080933A0 - movs r4, 0 -_080933A0: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end GetGoSpeed0AnimId - - thumb_func_start GetGoSpeed1AnimId -@ u8 GetGoSpeed1AnimId(u8 direction) -GetGoSpeed1AnimId: @ 80933B4 - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gUnknown_0850DBAF - mov r0, sp - movs r2, 0x5 - bl memcpy - cmp r4, 0x4 - bls _080933CC - movs r4, 0 -_080933CC: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end GetGoSpeed1AnimId - - thumb_func_start GetGoSpeed2AnimId -@ u8 GetGoSpeed2AnimId(u8 direction) -GetGoSpeed2AnimId: @ 80933E0 - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gUnknown_0850DBB4 - mov r0, sp - movs r2, 0x5 - bl memcpy - cmp r4, 0x4 - bls _080933F8 - movs r4, 0 -_080933F8: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end GetGoSpeed2AnimId - - thumb_func_start GetGoSpeed3AnimId -@ u8 GetGoSpeed3AnimId(u8 direction) -GetGoSpeed3AnimId: @ 809340C - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gUnknown_0850DBB9 - mov r0, sp - movs r2, 0x5 - bl memcpy - cmp r4, 0x4 - bls _08093424 - movs r4, 0 -_08093424: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end GetGoSpeed3AnimId - - thumb_func_start sub_8093438 -@ u8 sub_8093438(u8 direction) -sub_8093438: @ 8093438 - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gUnknown_0850DBBE - mov r0, sp - movs r2, 0x5 - bl memcpy - cmp r4, 0x4 - bls _08093450 - movs r4, 0 -_08093450: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8093438 - - thumb_func_start GetRunAnimId -@ u8 GetRunAnimId(u8 direction) -GetRunAnimId: @ 8093464 - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gUnknown_0850DBC3 - mov r0, sp - movs r2, 0x5 - bl memcpy - cmp r4, 0x4 - bls _0809347C - movs r4, 0 -_0809347C: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end GetRunAnimId - - thumb_func_start GetJumpLedgeAnimId -@ u8 GetJumpLedgeAnimId(u8 direction) -GetJumpLedgeAnimId: @ 8093490 - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gUnknown_0850DBC8 - mov r0, sp - movs r2, 0x5 - bl memcpy - cmp r4, 0x4 - bls _080934A8 - movs r4, 0 -_080934A8: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end GetJumpLedgeAnimId - - thumb_func_start sub_80934BC -@ u8 sub_80934BC(u8 direction) -sub_80934BC: @ 80934BC - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gUnknown_0850DBCD - mov r0, sp - movs r2, 0x5 - bl memcpy - cmp r4, 0x4 - bls _080934D4 - movs r4, 0 -_080934D4: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80934BC - - thumb_func_start sub_80934E8 -@ u8 sub_80934E8(u8 direction) -sub_80934E8: @ 80934E8 - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gUnknown_0850DBD2 - mov r0, sp - movs r2, 0x5 - bl memcpy - cmp r4, 0x4 - bls _08093500 - movs r4, 0 -_08093500: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80934E8 - - thumb_func_start sub_8093514 -@ u8 sub_8093514(u8 direction) -sub_8093514: @ 8093514 - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gUnknown_0850DBD7 - mov r0, sp - movs r2, 0x5 - bl memcpy - cmp r4, 0x4 - bls _0809352C - movs r4, 0 -_0809352C: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8093514 - - thumb_func_start sub_8093540 -@ u8 sub_8093540(u8 direction) -sub_8093540: @ 8093540 - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gUnknown_0850DBDC - mov r0, sp - movs r2, 0x5 - bl memcpy - cmp r4, 0x4 - bls _08093558 - movs r4, 0 -_08093558: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8093540 - - thumb_func_start GetStepInPlaceDelay32AnimId -@ u8 GetStepInPlaceDelay32AnimId(u8 direction) -GetStepInPlaceDelay32AnimId: @ 809356C - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gUnknown_0850DBE1 - mov r0, sp - movs r2, 0x5 - bl memcpy - cmp r4, 0x4 - bls _08093584 - movs r4, 0 -_08093584: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end GetStepInPlaceDelay32AnimId - - thumb_func_start GetStepInPlaceDelay16AnimId -@ u8 GetStepInPlaceDelay16AnimId(u8 direction) -GetStepInPlaceDelay16AnimId: @ 8093598 - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gUnknown_0850DBE6 - mov r0, sp - movs r2, 0x5 - bl memcpy - cmp r4, 0x4 - bls _080935B0 - movs r4, 0 -_080935B0: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end GetStepInPlaceDelay16AnimId - - thumb_func_start GetStepInPlaceDelay8AnimId -@ u8 GetStepInPlaceDelay8AnimId(u8 direction) -GetStepInPlaceDelay8AnimId: @ 80935C4 - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gUnknown_0850DBEB - mov r0, sp - movs r2, 0x5 - bl memcpy - cmp r4, 0x4 - bls _080935DC - movs r4, 0 -_080935DC: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end GetStepInPlaceDelay8AnimId - - thumb_func_start GetStepInPlaceDelay4AnimId -@ u8 GetStepInPlaceDelay4AnimId(u8 direction) -GetStepInPlaceDelay4AnimId: @ 80935F0 - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gUnknown_0850DBF0 - mov r0, sp - movs r2, 0x5 - bl memcpy - cmp r4, 0x4 - bls _08093608 - movs r4, 0 -_08093608: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end GetStepInPlaceDelay4AnimId - - thumb_func_start FieldObjectFaceOppositeDirection -@ bool8 FieldObjectFaceOppositeDirection(struct npc_state *fieldObject, u8 direction) -FieldObjectFaceOppositeDirection: @ 809361C - push {r4,lr} - adds r4, r0, 0 - lsls r0, r1, 24 - lsrs r0, 24 - bl GetOppositeDirection - lsls r0, 24 - lsrs r0, 24 - bl GetFaceDirectionAnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldObjectSetSpecialAnim - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - thumb_func_end FieldObjectFaceOppositeDirection - - thumb_func_start sub_8093648 -sub_8093648: @ 8093648 - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gUnknown_0850DBF5 - mov r0, sp - movs r2, 0x5 - bl memcpy - cmp r4, 0x4 - bls _08093660 - movs r4, 0 -_08093660: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8093648 - - thumb_func_start sub_8093674 -sub_8093674: @ 8093674 - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gUnknown_0850DBFA - mov r0, sp - movs r2, 0x5 - bl memcpy - cmp r4, 0x4 - bls _0809368C - movs r4, 0 -_0809368C: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8093674 - - thumb_func_start sub_80936A0 -sub_80936A0: @ 80936A0 - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gUnknown_0850DBFF - mov r0, sp - movs r2, 0x5 - bl memcpy - cmp r4, 0x4 - bls _080936B8 - movs r4, 0 -_080936B8: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80936A0 - - thumb_func_start sub_80936CC -sub_80936CC: @ 80936CC - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gUnknown_0850DC04 - mov r0, sp - movs r2, 0x5 - bl memcpy - cmp r4, 0x4 - bls _080936E4 - movs r4, 0 -_080936E4: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80936CC - - thumb_func_start sub_80936F8 -sub_80936F8: @ 80936F8 - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gUnknown_0850DC09 - mov r0, sp - movs r2, 0x5 - bl memcpy - cmp r4, 0x4 - bls _08093710 - movs r4, 0 -_08093710: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80936F8 - - thumb_func_start sub_8093724 -sub_8093724: @ 8093724 - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gUnknown_0850DC0E - mov r0, sp - movs r2, 0x5 - bl memcpy - cmp r4, 0x4 - bls _0809373C - movs r4, 0 -_0809373C: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8093724 - - thumb_func_start sub_8093750 -sub_8093750: @ 8093750 - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gUnknown_0850DC13 - mov r0, sp - movs r2, 0x5 - bl memcpy - cmp r4, 0x4 - bls _08093768 - movs r4, 0 -_08093768: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8093750 - - thumb_func_start sub_809377C -sub_809377C: @ 809377C - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gUnknown_0850DC18 - mov r0, sp - movs r2, 0x5 - bl memcpy - cmp r4, 0x4 - bls _08093794 - movs r4, 0 -_08093794: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_809377C - - thumb_func_start sub_80937A8 -sub_80937A8: @ 80937A8 - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gUnknown_0850DC1D - mov r0, sp - movs r2, 0x5 - bl memcpy - cmp r4, 0x4 - bls _080937C0 - movs r4, 0 -_080937C0: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80937A8 - - thumb_func_start d2s_08064034 -d2s_08064034: @ 80937D4 - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gUnknown_0850DC22 - mov r0, sp - movs r2, 0x5 - bl memcpy - cmp r4, 0x4 - bls _080937EC - movs r4, 0 -_080937EC: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end d2s_08064034 - - thumb_func_start GetOppositeDirection -@ u8 GetOppositeDirection(u8 direction) -GetOppositeDirection: @ 8093800 - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gUnknown_0850DC27 - mov r0, sp - movs r2, 0x8 - bl memcpy - subs r1, r4, 0x1 - lsls r0, r1, 24 - lsrs r0, 24 - cmp r0, 0x7 - bhi _08093828 - mov r2, sp - adds r0, r2, r1 - ldrb r0, [r0] - b _0809382A - .pool -_08093828: - adds r0, r4, 0 -_0809382A: - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetOppositeDirection - - thumb_func_start zffu_offset_calc -zffu_offset_calc: @ 8093834 - lsls r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r2, =gUnknown_0850DC2F - lsrs r0, 22 - subs r0, 0x5 - adds r1, r0 - adds r1, r2 - ldrb r0, [r1] - bx lr - .pool - thumb_func_end zffu_offset_calc - - thumb_func_start state_to_direction -state_to_direction: @ 809384C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r1, 24 - adds r0, r1, 0 - lsls r2, 24 - lsrs r2, 24 - cmp r1, 0 - beq _0809386C - cmp r2, 0 - beq _0809386C - cmp r1, 0x4 - bhi _0809386C - cmp r2, 0x4 - bls _08093870 -_0809386C: - movs r0, 0 - b _08093882 -_08093870: - adds r1, r2, 0 - bl zffu_offset_calc - ldr r2, =gUnknown_0850DC3F - lsls r1, r4, 2 - subs r1, 0x5 - adds r0, r1 - adds r0, r2 - ldrb r0, [r0] -_08093882: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end state_to_direction - - thumb_func_start FieldObjectExecSpecialAnim -@ void FieldObjectExecSpecialAnim(struct npc_state *fieldObject, struct obj *object) -FieldObjectExecSpecialAnim: @ 809388C - push {r4,lr} - adds r4, r0, 0 - ldr r2, =gUnknown_0850DC50 - ldrb r0, [r4, 0x1C] - lsls r0, 2 - adds r0, r2 - movs r3, 0x32 - ldrsh r2, [r1, r3] - ldr r0, [r0] - lsls r2, 2 - adds r2, r0 - ldr r2, [r2] - adds r0, r4, 0 - bl _call_via_r2 - lsls r0, 24 - cmp r0, 0 - beq _080938B8 - ldrb r0, [r4] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r4] -_080938B8: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end FieldObjectExecSpecialAnim - - thumb_func_start FieldObjectExecRegularAnim -@ bool8 FieldObjectExecRegularAnim(struct npc_state *fieldObject, struct obj *object) -FieldObjectExecRegularAnim: @ 80938C4 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, =gUnknown_0850DC50 - ldrb r0, [r4, 0x1C] - lsls r0, 2 - adds r0, r1 - movs r2, 0x32 - ldrsh r1, [r5, r2] - ldr r0, [r0] - lsls r1, 2 - adds r1, r0 - ldr r2, [r1] - adds r0, r4, 0 - adds r1, r5, 0 - bl _call_via_r2 - lsls r0, 24 - cmp r0, 0 - bne _080938F4 - movs r0, 0 - b _080938FE - .pool -_080938F4: - movs r0, 0xFF - strb r0, [r4, 0x1C] - movs r0, 0 - strh r0, [r5, 0x32] - movs r0, 0x1 -_080938FE: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end FieldObjectExecRegularAnim - - thumb_func_start FieldObjectSetRegularAnim -@ void FieldObjectSetRegularAnim(struct npc_state *fieldObject, struct obj *object, u8 animState) -FieldObjectSetRegularAnim: @ 8093904 - movs r3, 0 - strb r2, [r0, 0x1C] - strh r3, [r1, 0x32] - bx lr - thumb_func_end FieldObjectSetRegularAnim - - thumb_func_start an_look_any -@ void an_look_any(struct npc_state *fieldObject, struct obj *object, u8 direction) -an_look_any: @ 809390C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r1, r2, 24 - lsrs r1, 24 - bl FieldObjectSetDirection - adds r0, r4, 0 - bl npc_coords_shift_still - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl get_go_image_anim_num - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl obj_npc_animation_step - adds r2, r5, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x1 - strh r0, [r5, 0x32] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end an_look_any - - thumb_func_start sub_8093950 -sub_8093950: @ 8093950 - push {lr} - movs r2, 0x1 - bl an_look_any - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_8093950 - - thumb_func_start sub_8093960 -sub_8093960: @ 8093960 - push {lr} - movs r2, 0x2 - bl an_look_any - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_8093960 - - thumb_func_start sub_8093970 -sub_8093970: @ 8093970 - push {lr} - movs r2, 0x3 - bl an_look_any - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_8093970 - - thumb_func_start sub_8093980 -sub_8093980: @ 8093980 - push {lr} - movs r2, 0x4 - bl an_look_any - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_8093980 - - thumb_func_start npc_apply_direction -@ void npc_apply_direction(struct npc_state *fieldObject, struct obj *object, u8 direction, u8 speed) -npc_apply_direction: @ 8093990 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r7, r0, 0 - mov r8, r1 - adds r4, r2, 0 - adds r6, r3, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r6, 24 - lsrs r6, 24 - ldrh r1, [r7, 0x10] - mov r0, sp - strh r1, [r0] - ldrh r0, [r7, 0x12] - mov r5, sp - adds r5, 0x2 - strh r0, [r5] - adds r0, r7, 0 - adds r1, r4, 0 - bl FieldObjectSetDirection - adds r0, r4, 0 - mov r1, sp - adds r2, r5, 0 - bl MoveCoords - mov r0, sp - movs r2, 0 - ldrsh r1, [r0, r2] - movs r0, 0 - ldrsh r2, [r5, r0] - adds r0, r7, 0 - bl npc_coords_shift - mov r0, r8 - adds r1, r4, 0 - adds r2, r6, 0 - bl oamt_npc_ministep_reset - mov r4, r8 - adds r4, 0x2C - ldrb r1, [r4] - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - strb r0, [r4] - ldr r0, =gUnknown_020375B8 - ldr r0, [r0] - cmp r0, 0 - beq _08093A0E - adds r0, r7, 0 - bl sub_8097F78 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x10 - beq _08093A0E - ldrb r0, [r4] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r4] -_08093A0E: - ldrb r0, [r7] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r7] - movs r0, 0x1 - mov r1, r8 - strh r0, [r1, 0x32] - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end npc_apply_direction - - thumb_func_start do_go_anim -@ void do_go_anim(struct npc_state *fieldObject, struct obj *object, u8 direction, u8 speed) -do_go_anim: @ 8093A2C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - adds r5, r0, 0 - mov r8, r1 - adds r4, r3, 0 - lsls r2, 24 - lsrs r2, 24 - lsls r4, 24 - lsrs r4, 24 - mov r1, sp - ldr r0, =gUnknown_0850DEE8 - ldm r0!, {r3,r6,r7} - stm r1!, {r3,r6,r7} - ldm r0!, {r3,r6} - stm r1!, {r3,r6} - adds r0, r5, 0 - mov r1, r8 - adds r3, r4, 0 - bl npc_apply_direction - lsls r4, 2 - mov r7, sp - adds r1, r7, r4 - ldrb r0, [r5, 0x18] - lsls r0, 28 - lsrs r0, 28 - ldr r1, [r1] - bl _call_via_r1 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r5, 0 - mov r1, r8 - bl npc_apply_anim_looping - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end do_go_anim - - thumb_func_start do_run_anim -@ void do_run_anim(struct npc_state *fieldObject, struct obj *object, u8 direction) -do_run_anim: @ 8093A88 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r2, 24 - lsrs r2, 24 - movs r3, 0x1 - bl npc_apply_direction - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl get_run_image_anim_num - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl npc_apply_anim_looping - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end do_run_anim - - thumb_func_start npc_obj_ministep_stop_on_arrival -@ bool8 npc_obj_ministep_stop_on_arrival(struct npc_state *fieldObject, struct obj *object) -npc_obj_ministep_stop_on_arrival: @ 8093AB8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r0, r5, 0 - bl obj_npc_ministep - lsls r0, 24 - cmp r0, 0 - bne _08093ACE - movs r0, 0 - b _08093AEA -_08093ACE: - adds r0, r4, 0 - bl npc_coords_shift_still - ldrb r0, [r4] - movs r1, 0x8 - orrs r0, r1 - strb r0, [r4] - adds r2, r5, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x1 -_08093AEA: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end npc_obj_ministep_stop_on_arrival - - thumb_func_start sub_8093AF0 -@ void sub_8093AF0(struct npc_state *fieldObject, struct obj *object, u8 direction) -sub_8093AF0: @ 8093AF0 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x4 - adds r6, r0, 0 - mov r8, r1 - lsls r5, r2, 24 - lsrs r5, 24 - ldrh r1, [r6, 0x10] - mov r0, sp - strh r1, [r0] - ldrh r0, [r6, 0x12] - mov r4, sp - adds r4, 0x2 - strh r0, [r4] - adds r0, r6, 0 - adds r1, r5, 0 - bl FieldObjectSetDirection - adds r0, r5, 0 - mov r1, sp - adds r2, r4, 0 - bl MoveCoords - mov r0, sp - movs r2, 0 - ldrsh r1, [r0, r2] - movs r0, 0 - ldrsh r2, [r4, r0] - adds r0, r6, 0 - bl npc_coords_shift - mov r0, r8 - adds r1, r5, 0 - bl sub_80976DC - mov r2, r8 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldrb r0, [r6] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r6] - movs r0, 0x1 - mov r1, r8 - strh r0, [r1, 0x32] - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8093AF0 - - thumb_func_start sub_8093B60 -@ void sub_8093B60(struct npc_state *fieldObject, struct obj *object, u8 direction) -sub_8093B60: @ 8093B60 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r2, 24 - lsrs r2, 24 - bl sub_8093AF0 - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl get_go_image_anim_num - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl npc_apply_anim_looping - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8093B60 - - thumb_func_start an_walk_any_2 -@ bool8 an_walk_any_2(struct npc_state *fieldObject, struct obj *object) -an_walk_any_2: @ 8093B8C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r0, r5, 0 - bl sub_80976EC - lsls r0, 24 - cmp r0, 0 - bne _08093BA2 - movs r0, 0 - b _08093BBE -_08093BA2: - adds r0, r4, 0 - bl npc_coords_shift_still - ldrb r0, [r4] - movs r1, 0x8 - orrs r0, r1 - strb r0, [r4] - adds r2, r5, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x1 -_08093BBE: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end an_walk_any_2 - - thumb_func_start sub_8093BC4 -sub_8093BC4: @ 8093BC4 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x7 - bl sub_8093B60 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8093BE4 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8093BC4 - - thumb_func_start sub_8093BE4 -sub_8093BE4: @ 8093BE4 - push {r4,lr} - adds r4, r1, 0 - bl an_walk_any_2 - lsls r0, 24 - cmp r0, 0 - bne _08093BF6 - movs r0, 0 - b _08093BFC -_08093BF6: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08093BFC: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8093BE4 - - thumb_func_start sub_8093C04 -sub_8093C04: @ 8093C04 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x8 - bl sub_8093B60 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8093C24 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8093C04 - - thumb_func_start sub_8093C24 -sub_8093C24: @ 8093C24 - push {r4,lr} - adds r4, r1, 0 - bl an_walk_any_2 - lsls r0, 24 - cmp r0, 0 - bne _08093C36 - movs r0, 0 - b _08093C3C -_08093C36: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08093C3C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8093C24 - - thumb_func_start sub_8093C44 -sub_8093C44: @ 8093C44 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x5 - bl sub_8093B60 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8093C64 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8093C44 - - thumb_func_start sub_8093C64 -sub_8093C64: @ 8093C64 - push {r4,lr} - adds r4, r1, 0 - bl an_walk_any_2 - lsls r0, 24 - cmp r0, 0 - bne _08093C76 - movs r0, 0 - b _08093C7C -_08093C76: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08093C7C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8093C64 - - thumb_func_start sub_8093C84 -sub_8093C84: @ 8093C84 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x6 - bl sub_8093B60 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8093CA4 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8093C84 - - thumb_func_start sub_8093CA4 -sub_8093CA4: @ 8093CA4 - push {r4,lr} - adds r4, r1, 0 - bl an_walk_any_2 - lsls r0, 24 - cmp r0, 0 - bne _08093CB6 - movs r0, 0 - b _08093CBC -_08093CB6: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08093CBC: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8093CA4 - - thumb_func_start sub_8093CC4 -@ bool8 sub_8093CC4(struct npc_state *fieldObject, struct obj *object) -sub_8093CC4: @ 8093CC4 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x1 - bl sub_8093B60 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8093CE4 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8093CC4 - - thumb_func_start sub_8093CE4 -@ bool8 sub_8093CE4(struct npc_state *fieldObject, struct obj *object) -sub_8093CE4: @ 8093CE4 - push {r4,lr} - adds r4, r1, 0 - bl an_walk_any_2 - lsls r0, 24 - cmp r0, 0 - bne _08093CF6 - movs r0, 0 - b _08093CFC -_08093CF6: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08093CFC: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8093CE4 - - thumb_func_start sub_8093D04 -sub_8093D04: @ 8093D04 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x2 - bl sub_8093B60 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8093D24 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8093D04 - - thumb_func_start sub_8093D24 -sub_8093D24: @ 8093D24 - push {r4,lr} - adds r4, r1, 0 - bl an_walk_any_2 - lsls r0, 24 - cmp r0, 0 - bne _08093D36 - movs r0, 0 - b _08093D3C -_08093D36: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08093D3C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8093D24 - - thumb_func_start sub_8093D44 -sub_8093D44: @ 8093D44 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x3 - bl sub_8093B60 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8093D64 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8093D44 - - thumb_func_start sub_8093D64 -sub_8093D64: @ 8093D64 - push {r4,lr} - adds r4, r1, 0 - bl an_walk_any_2 - lsls r0, 24 - cmp r0, 0 - bne _08093D76 - movs r0, 0 - b _08093D7C -_08093D76: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08093D7C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8093D64 - - thumb_func_start sub_8093D84 -sub_8093D84: @ 8093D84 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x4 - bl sub_8093B60 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8093DA4 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8093D84 - - thumb_func_start sub_8093DA4 -sub_8093DA4: @ 8093DA4 - push {r4,lr} - adds r4, r1, 0 - bl an_walk_any_2 - lsls r0, 24 - cmp r0, 0 - bne _08093DB6 - movs r0, 0 - b _08093DBC -_08093DB6: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08093DBC: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8093DA4 - - thumb_func_start sub_8093DC4 -sub_8093DC4: @ 8093DC4 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x7 - movs r3, 0 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8093DE4 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8093DC4 - - thumb_func_start sub_8093DE4 -@ bool8 sub_8093DE4(struct npc_state *fieldObject, struct obj *object) -sub_8093DE4: @ 8093DE4 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08093DF6 - movs r0, 0 - b _08093DFC -_08093DF6: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08093DFC: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8093DE4 - - thumb_func_start sub_8093E04 -sub_8093E04: @ 8093E04 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x8 - movs r3, 0 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8093E24 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8093E04 - - thumb_func_start sub_8093E24 -sub_8093E24: @ 8093E24 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08093E36 - movs r0, 0 - b _08093E3C -_08093E36: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08093E3C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8093E24 - - thumb_func_start sub_8093E44 -sub_8093E44: @ 8093E44 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x5 - movs r3, 0 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8093E64 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8093E44 - - thumb_func_start sub_8093E64 -sub_8093E64: @ 8093E64 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08093E76 - movs r0, 0 - b _08093E7C -_08093E76: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08093E7C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8093E64 - - thumb_func_start sub_8093E84 -sub_8093E84: @ 8093E84 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x6 - movs r3, 0 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8093EA4 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8093E84 - - thumb_func_start sub_8093EA4 -sub_8093EA4: @ 8093EA4 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08093EB6 - movs r0, 0 - b _08093EBC -_08093EB6: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08093EBC: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8093EA4 - - thumb_func_start sub_8093EC4 -sub_8093EC4: @ 8093EC4 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x1 - movs r3, 0 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8093EE4 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8093EC4 - - thumb_func_start sub_8093EE4 -sub_8093EE4: @ 8093EE4 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08093EF6 - movs r0, 0 - b _08093EFC -_08093EF6: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08093EFC: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8093EE4 - - thumb_func_start sub_8093F04 -sub_8093F04: @ 8093F04 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x2 - movs r3, 0 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8093F24 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8093F04 - - thumb_func_start sub_8093F24 -sub_8093F24: @ 8093F24 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08093F36 - movs r0, 0 - b _08093F3C -_08093F36: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08093F3C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8093F24 - - thumb_func_start sub_8093F44 -sub_8093F44: @ 8093F44 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x3 - movs r3, 0 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8093F64 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8093F44 - - thumb_func_start sub_8093F64 -sub_8093F64: @ 8093F64 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08093F76 - movs r0, 0 - b _08093F7C -_08093F76: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08093F7C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8093F64 - - thumb_func_start sub_8093F84 -sub_8093F84: @ 8093F84 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x4 - movs r3, 0 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8093FA4 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8093F84 - - thumb_func_start sub_8093FA4 -sub_8093FA4: @ 8093FA4 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08093FB6 - movs r0, 0 - b _08093FBC -_08093FB6: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08093FBC: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8093FA4 - - thumb_func_start sub_8093FC4 -sub_8093FC4: @ 8093FC4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - adds r7, r0, 0 - mov r10, r1 - adds r4, r2, 0 - mov r8, r3 - ldr r0, [sp, 0x30] - lsls r4, 24 - lsrs r4, 24 - mov r1, r8 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r1, =gUnknown_0850DFBC - add r0, sp, 0x4 - movs r2, 0x6 - bl memcpy - add r5, sp, 0xC - movs r0, 0 - strh r0, [r5] - mov r6, sp - adds r6, 0xE - strh r0, [r6] - adds r0, r7, 0 - adds r1, r4, 0 - bl FieldObjectSetDirection - mov r1, r8 - lsls r0, r1, 1 - add r0, sp - adds r0, 0x4 - movs r1, 0 - ldrsh r3, [r0, r1] - str r3, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl sub_8092F88 - ldrh r1, [r5] - ldrh r0, [r7, 0x10] - adds r1, r0 - lsls r1, 16 - asrs r1, 16 - ldrh r2, [r6] - ldrh r0, [r7, 0x12] - adds r2, r0 - lsls r2, 16 - asrs r2, 16 - adds r0, r7, 0 - bl npc_coords_shift - mov r0, r10 - adds r1, r4, 0 - mov r2, r8 - mov r3, r9 - bl sub_809783C - movs r0, 0x1 - mov r1, r10 - strh r0, [r1, 0x32] - movs r0, 0x2C - add r10, r0 - mov r0, r10 - ldrb r1, [r0] - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - mov r1, r10 - strb r0, [r1] - ldrb r0, [r7] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x10 - orrs r0, r1 - strb r0, [r7] - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8093FC4 - - thumb_func_start maybe_shadow_1 -maybe_shadow_1: @ 8094080 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r0, [sp, 0x10] - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - adds r0, r4, 0 - bl sub_8093FC4 - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl get_go_image_anim_num - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl npc_apply_anim_looping - adds r0, r4, 0 - bl DoShadowFieldEffect - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end maybe_shadow_1 - - thumb_func_start sub_80940C4 -@ int sub_80940C4(int a1, int a2, int a3) -sub_80940C4: @ 80940C4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - adds r6, r0, 0 - adds r7, r1, 0 - adds r4, r2, 0 - ldr r1, =gUnknown_0850DFC2 - add r0, sp, 0x4 - movs r2, 0x6 - bl memcpy - adds r0, r7, 0 - bl _call_via_r4 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - cmp r0, 0x1 - bne _08094154 - movs r1, 0x36 - ldrsh r0, [r7, r1] - lsls r0, 1 - add r0, sp - adds r0, 0x4 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0 - beq _08094154 - add r4, sp, 0xC - movs r0, 0 - strh r0, [r4] - mov r5, sp - adds r5, 0xE - strh r0, [r5] - ldrb r0, [r6, 0x18] - lsrs r0, 4 - movs r2, 0x36 - ldrsh r1, [r7, r2] - lsls r1, 1 - add r1, sp - adds r1, 0x4 - movs r2, 0 - ldrsh r3, [r1, r2] - str r3, [sp] - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_8092F88 - ldrh r1, [r4] - ldrh r0, [r6, 0x10] - adds r1, r0 - lsls r1, 16 - asrs r1, 16 - ldrh r2, [r5] - ldrh r0, [r6, 0x12] - adds r2, r0 - lsls r2, 16 - asrs r2, 16 - adds r0, r6, 0 - bl npc_coords_shift - ldrb r0, [r6] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x10 - orrs r0, r1 - strb r0, [r6] - b _08094178 - .pool -_08094154: - mov r1, r8 - cmp r1, 0xFF - bne _08094178 - adds r0, r6, 0 - bl npc_coords_shift_still - ldrb r0, [r6] - movs r1, 0x8 - orrs r0, r1 - movs r1, 0x20 - orrs r0, r1 - strb r0, [r6] - adds r2, r7, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] -_08094178: - mov r0, r8 - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80940C4 - - thumb_func_start sub_8094188 -sub_8094188: @ 8094188 - push {lr} - ldr r2, =sub_809785C - bl sub_80940C4 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end sub_8094188 - - thumb_func_start sub_809419C -sub_809419C: @ 809419C - push {lr} - ldr r2, =sub_80978E4 - bl sub_80940C4 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end sub_809419C - - thumb_func_start sub_80941B0 -sub_80941B0: @ 80941B0 - push {lr} - bl sub_8094188 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _080941C2 - movs r0, 0 - b _080941C4 -_080941C2: - movs r0, 0x1 -_080941C4: - pop {r1} - bx r1 - thumb_func_end sub_80941B0 - - thumb_func_start sub_80941C8 -sub_80941C8: @ 80941C8 - push {lr} - bl sub_809419C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _080941DA - movs r0, 0 - b _080941DC -_080941DA: - movs r0, 0x1 -_080941DC: - pop {r1} - bx r1 - thumb_func_end sub_80941C8 - - thumb_func_start sub_80941E0 -sub_80941E0: @ 80941E0 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_8094188 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080941FA - cmp r0, 0xFF - bne _08094226 - movs r0, 0x1 - b _08094228 -_080941FA: - ldrb r0, [r4, 0x18] - lsrs r0, 4 - bl GetOppositeDirection - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldObjectSetDirection - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl get_go_image_anim_num - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl obj_npc_animation_step -_08094226: - movs r0, 0 -_08094228: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80941E0 - - thumb_func_start sub_8094230 -sub_8094230: @ 8094230 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x2 - bl maybe_shadow_1 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_809425C - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8094230 - - thumb_func_start sub_809425C -sub_809425C: @ 809425C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_80941B0 - lsls r0, 24 - cmp r0, 0 - bne _08094270 - movs r0, 0 - b _08094280 -_08094270: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08094280: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_809425C - - thumb_func_start sub_8094288 -sub_8094288: @ 8094288 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x2 - movs r3, 0x2 - bl maybe_shadow_1 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80942B4 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8094288 - - thumb_func_start sub_80942B4 -sub_80942B4: @ 80942B4 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_80941B0 - lsls r0, 24 - cmp r0, 0 - bne _080942C8 - movs r0, 0 - b _080942D8 -_080942C8: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_080942D8: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80942B4 - - thumb_func_start sub_80942E0 -sub_80942E0: @ 80942E0 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x3 - movs r3, 0x2 - bl maybe_shadow_1 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_809430C - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80942E0 - - thumb_func_start sub_809430C -sub_809430C: @ 809430C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_80941B0 - lsls r0, 24 - cmp r0, 0 - bne _08094320 - movs r0, 0 - b _08094330 -_08094320: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08094330: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_809430C - - thumb_func_start sub_8094338 -sub_8094338: @ 8094338 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x4 - movs r3, 0x2 - bl maybe_shadow_1 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8094364 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8094338 - - thumb_func_start sub_8094364 -sub_8094364: @ 8094364 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_80941B0 - lsls r0, 24 - cmp r0, 0 - bne _08094378 - movs r0, 0 - b _08094388 -_08094378: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08094388: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8094364 - - thumb_func_start sub_8094390 -sub_8094390: @ 8094390 - movs r2, 0x1 - strh r2, [r0, 0x32] - strh r1, [r0, 0x34] - bx lr - thumb_func_end sub_8094390 - - thumb_func_start sub_8094398 -sub_8094398: @ 8094398 - push {lr} - ldrh r0, [r1, 0x34] - subs r0, 0x1 - strh r0, [r1, 0x34] - lsls r0, 16 - cmp r0, 0 - beq _080943AA - movs r0, 0 - b _080943B0 -_080943AA: - movs r0, 0x2 - strh r0, [r1, 0x32] - movs r0, 0x1 -_080943B0: - pop {r1} - bx r1 - thumb_func_end sub_8094398 - - thumb_func_start sub_80943B4 -sub_80943B4: @ 80943B4 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8094390 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8094398 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80943B4 - - thumb_func_start sub_80943D4 -sub_80943D4: @ 80943D4 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - adds r0, r4, 0 - movs r1, 0x2 - bl sub_8094390 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8094398 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80943D4 - - thumb_func_start sub_80943F4 -sub_80943F4: @ 80943F4 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - adds r0, r4, 0 - movs r1, 0x4 - bl sub_8094390 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8094398 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80943F4 - - thumb_func_start sub_8094414 -sub_8094414: @ 8094414 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - adds r0, r4, 0 - movs r1, 0x8 - bl sub_8094390 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8094398 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8094414 - - thumb_func_start sub_8094434 -sub_8094434: @ 8094434 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - adds r0, r4, 0 - movs r1, 0x10 - bl sub_8094390 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8094398 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8094434 - - thumb_func_start sub_8094454 -sub_8094454: @ 8094454 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x1 - movs r3, 0x1 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8094474 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8094454 - - thumb_func_start sub_8094474 -sub_8094474: @ 8094474 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08094486 - movs r0, 0 - b _0809448C -_08094486: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_0809448C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8094474 - - thumb_func_start sub_8094494 -sub_8094494: @ 8094494 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x2 - movs r3, 0x1 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80944B4 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8094494 - - thumb_func_start sub_80944B4 -sub_80944B4: @ 80944B4 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _080944C6 - movs r0, 0 - b _080944CC -_080944C6: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_080944CC: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80944B4 - - thumb_func_start sub_80944D4 -sub_80944D4: @ 80944D4 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x3 - movs r3, 0x1 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80944F4 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80944D4 - - thumb_func_start sub_80944F4 -sub_80944F4: @ 80944F4 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08094506 - movs r0, 0 - b _0809450C -_08094506: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_0809450C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80944F4 - - thumb_func_start sub_8094514 -sub_8094514: @ 8094514 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x4 - movs r3, 0x1 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8094534 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8094514 - - thumb_func_start sub_8094534 -sub_8094534: @ 8094534 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08094546 - movs r0, 0 - b _0809454C -_08094546: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_0809454C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8094534 - - thumb_func_start sub_8094554 -sub_8094554: @ 8094554 - push {r4-r6,lr} - mov r6, r8 - push {r6} - mov r8, r0 - adds r6, r1, 0 - adds r1, r2, 0 - adds r4, r3, 0 - ldr r5, [sp, 0x14] - lsls r1, 24 - lsrs r1, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 16 - lsrs r5, 16 - bl FieldObjectSetDirection - mov r0, r8 - adds r1, r6, 0 - adds r2, r4, 0 - bl npc_apply_anim_looping - adds r2, r6, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - movs r0, 0x1 - strh r0, [r6, 0x32] - strh r5, [r6, 0x34] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8094554 - - thumb_func_start sub_809459C -@ signed int sub_809459C(int a1, obj *a2) -sub_809459C: @ 809459C - push {lr} - ldrh r0, [r1, 0x34] - subs r0, 0x1 - strh r0, [r1, 0x34] - lsls r0, 16 - cmp r0, 0 - beq _080945AE - movs r0, 0 - b _080945C0 -_080945AE: - movs r0, 0x2 - strh r0, [r1, 0x32] - adds r2, r1, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x1 -_080945C0: - pop {r1} - bx r1 - thumb_func_end sub_809459C - - thumb_func_start sub_80945C4 -@ int sub_80945C4(int a1, obj *a2) -sub_80945C4: @ 80945C4 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - ldrh r1, [r4, 0x34] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080945EE - adds r3, r4, 0 - adds r3, 0x2C - ldrb r2, [r3] - lsls r1, r2, 26 - lsrs r1, 26 - adds r1, 0x1 - movs r0, 0x3F - ands r1, r0 - movs r0, 0x40 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080945EE: - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_809459C - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80945C4 - - thumb_func_start sub_8094600 -sub_8094600: @ 8094600 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x1 - bl get_go_image_anim_num - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x20 - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x1 - bl sub_8094554 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80945C4 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8094600 - - thumb_func_start sub_8094638 -sub_8094638: @ 8094638 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x2 - bl get_go_image_anim_num - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x20 - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x2 - bl sub_8094554 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80945C4 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8094638 - - thumb_func_start sub_8094670 -sub_8094670: @ 8094670 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x3 - bl get_go_image_anim_num - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x20 - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x3 - bl sub_8094554 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80945C4 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8094670 - - thumb_func_start sub_80946A8 -sub_80946A8: @ 80946A8 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x4 - bl get_go_image_anim_num - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x20 - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x4 - bl sub_8094554 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80945C4 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80946A8 - - thumb_func_start sub_80946E0 -sub_80946E0: @ 80946E0 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x1 - bl get_go_image_anim_num - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x10 - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x1 - bl sub_8094554 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_809459C - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80946E0 - - thumb_func_start sub_8094718 -sub_8094718: @ 8094718 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x2 - bl get_go_image_anim_num - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x10 - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x2 - bl sub_8094554 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_809459C - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8094718 - - thumb_func_start sub_8094750 -sub_8094750: @ 8094750 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x3 - bl get_go_image_anim_num - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x10 - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x3 - bl sub_8094554 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_809459C - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8094750 - - thumb_func_start sub_8094788 -sub_8094788: @ 8094788 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x4 - bl get_go_image_anim_num - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x10 - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x4 - bl sub_8094554 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_809459C - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8094788 - - thumb_func_start sub_80947C0 -sub_80947C0: @ 80947C0 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x1 - bl get_go_fast_image_anim_num - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x8 - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x1 - bl sub_8094554 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_809459C - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80947C0 - - thumb_func_start sub_80947F8 -sub_80947F8: @ 80947F8 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x2 - bl get_go_fast_image_anim_num - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x8 - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x2 - bl sub_8094554 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_809459C - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80947F8 - - thumb_func_start sub_8094830 -sub_8094830: @ 8094830 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x3 - bl get_go_fast_image_anim_num - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x8 - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x3 - bl sub_8094554 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_809459C - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8094830 - - thumb_func_start sub_8094868 -sub_8094868: @ 8094868 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x4 - bl get_go_fast_image_anim_num - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x8 - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x4 - bl sub_8094554 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_809459C - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8094868 - - thumb_func_start sub_80948A0 -sub_80948A0: @ 80948A0 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x1 - bl get_go_faster_image_anim_num - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x4 - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x1 - bl sub_8094554 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_809459C - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80948A0 - - thumb_func_start sub_80948D8 -sub_80948D8: @ 80948D8 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x2 - bl get_go_faster_image_anim_num - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x4 - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x2 - bl sub_8094554 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_809459C - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80948D8 - - thumb_func_start sub_8094910 -sub_8094910: @ 8094910 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x3 - bl get_go_faster_image_anim_num - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x4 - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x3 - bl sub_8094554 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_809459C - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8094910 - - thumb_func_start sub_8094948 -sub_8094948: @ 8094948 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x4 - bl get_go_faster_image_anim_num - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x4 - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x4 - bl sub_8094554 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_809459C - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8094948 - - thumb_func_start sub_8094980 -sub_8094980: @ 8094980 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x1 - movs r3, 0x2 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80949A0 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8094980 - - thumb_func_start sub_80949A0 -sub_80949A0: @ 80949A0 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _080949B2 - movs r0, 0 - b _080949B8 -_080949B2: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_080949B8: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80949A0 - - thumb_func_start sub_80949C0 -sub_80949C0: @ 80949C0 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x2 - movs r3, 0x2 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80949E0 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80949C0 - - thumb_func_start sub_80949E0 -sub_80949E0: @ 80949E0 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _080949F2 - movs r0, 0 - b _080949F8 -_080949F2: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_080949F8: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80949E0 - - thumb_func_start sub_8094A00 -sub_8094A00: @ 8094A00 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x3 - movs r3, 0x2 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8094A20 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8094A00 - - thumb_func_start sub_8094A20 -sub_8094A20: @ 8094A20 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08094A32 - movs r0, 0 - b _08094A38 -_08094A32: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08094A38: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8094A20 - - thumb_func_start sub_8094A40 -sub_8094A40: @ 8094A40 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x4 - movs r3, 0x2 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8094A60 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8094A40 - - thumb_func_start sub_8094A60 -sub_8094A60: @ 8094A60 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08094A72 - movs r0, 0 - b _08094A78 -_08094A72: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08094A78: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8094A60 - - thumb_func_start sub_8094A80 -sub_8094A80: @ 8094A80 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x1 - movs r3, 0x3 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8094AA0 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8094A80 - - thumb_func_start sub_8094AA0 -sub_8094AA0: @ 8094AA0 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08094AB2 - movs r0, 0 - b _08094AB8 -_08094AB2: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08094AB8: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8094AA0 - - thumb_func_start sub_8094AC0 -sub_8094AC0: @ 8094AC0 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x2 - movs r3, 0x3 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8094AE0 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8094AC0 - - thumb_func_start sub_8094AE0 -sub_8094AE0: @ 8094AE0 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08094AF2 - movs r0, 0 - b _08094AF8 -_08094AF2: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08094AF8: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8094AE0 - - thumb_func_start sub_8094B00 -sub_8094B00: @ 8094B00 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x3 - movs r3, 0x3 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8094B20 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8094B00 - - thumb_func_start sub_8094B20 -sub_8094B20: @ 8094B20 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08094B32 - movs r0, 0 - b _08094B38 -_08094B32: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08094B38: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8094B20 - - thumb_func_start sub_8094B40 -sub_8094B40: @ 8094B40 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x4 - movs r3, 0x3 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8094B60 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8094B40 - - thumb_func_start sub_8094B60 -sub_8094B60: @ 8094B60 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08094B72 - movs r0, 0 - b _08094B78 -_08094B72: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08094B78: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8094B60 - - thumb_func_start sub_8094B80 -sub_8094B80: @ 8094B80 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x1 - movs r3, 0x4 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8094BA0 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8094B80 - - thumb_func_start sub_8094BA0 -sub_8094BA0: @ 8094BA0 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08094BB2 - movs r0, 0 - b _08094BB8 -_08094BB2: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08094BB8: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8094BA0 - - thumb_func_start sub_8094BC0 -sub_8094BC0: @ 8094BC0 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x2 - movs r3, 0x4 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8094BE0 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8094BC0 - - thumb_func_start sub_8094BE0 -sub_8094BE0: @ 8094BE0 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08094BF2 - movs r0, 0 - b _08094BF8 -_08094BF2: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08094BF8: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8094BE0 - - thumb_func_start sub_8094C00 -sub_8094C00: @ 8094C00 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x3 - movs r3, 0x4 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8094C20 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8094C00 - - thumb_func_start sub_8094C20 -sub_8094C20: @ 8094C20 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08094C32 - movs r0, 0 - b _08094C38 -_08094C32: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08094C38: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8094C20 - - thumb_func_start sub_8094C40 -sub_8094C40: @ 8094C40 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x4 - movs r3, 0x4 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8094C60 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8094C40 - - thumb_func_start sub_8094C60 -sub_8094C60: @ 8094C60 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08094C72 - movs r0, 0 - b _08094C78 -_08094C72: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08094C78: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8094C60 - - thumb_func_start do_run_south_anim -@ bool8 do_run_south_anim(struct npc_state *fieldObject, struct obj *object) -do_run_south_anim: @ 8094C80 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x1 - bl do_run_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8094CA0 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end do_run_south_anim - - thumb_func_start sub_8094CA0 -@ bool8 sub_8094CA0(struct npc_state *fieldObject, struct obj *object) -sub_8094CA0: @ 8094CA0 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08094CB2 - movs r0, 0 - b _08094CB8 -_08094CB2: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08094CB8: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8094CA0 - - thumb_func_start do_run_north_anim -do_run_north_anim: @ 8094CC0 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x2 - bl do_run_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8094CE0 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end do_run_north_anim - - thumb_func_start sub_8094CE0 -sub_8094CE0: @ 8094CE0 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08094CF2 - movs r0, 0 - b _08094CF8 -_08094CF2: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08094CF8: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8094CE0 - - thumb_func_start do_run_west_anim -do_run_west_anim: @ 8094D00 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x3 - bl do_run_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8094D20 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end do_run_west_anim - - thumb_func_start sub_8094D20 -sub_8094D20: @ 8094D20 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08094D32 - movs r0, 0 - b _08094D38 -_08094D32: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08094D38: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8094D20 - - thumb_func_start do_run_east_anim -do_run_east_anim: @ 8094D40 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x4 - bl do_run_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8094D60 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end do_run_east_anim - - thumb_func_start sub_8094D60 -sub_8094D60: @ 8094D60 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08094D72 - movs r0, 0 - b _08094D78 -_08094D72: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08094D78: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8094D60 - - thumb_func_start npc_set_direction_and_anim__an_proceed -npc_set_direction_and_anim__an_proceed: @ 8094D80 - push {r4-r6,lr} - adds r6, r0, 0 - adds r5, r1, 0 - adds r4, r2, 0 - adds r1, r3, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - movs r2, 0 - bl obj_anim_image_set_and_seek - adds r0, r6, 0 - adds r1, r4, 0 - bl FieldObjectSetDirection - movs r0, 0x1 - strh r0, [r5, 0x32] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end npc_set_direction_and_anim__an_proceed - - thumb_func_start sub_8094DAC -sub_8094DAC: @ 8094DAC - push {lr} - ldrb r2, [r0, 0x18] - lsrs r2, 4 - adds r3, r1, 0 - adds r3, 0x2A - ldrb r3, [r3] - bl npc_set_direction_and_anim__an_proceed - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_8094DAC - - thumb_func_start sub_8094DC4 -sub_8094DC4: @ 8094DC4 - push {r4,lr} - adds r4, r1, 0 - adds r0, r4, 0 - bl sub_80979BC - lsls r0, 24 - cmp r0, 0 - bne _08094DD8 - movs r0, 0 - b _08094DDE -_08094DD8: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08094DDE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8094DC4 - - thumb_func_start sub_8094DE4 -sub_8094DE4: @ 8094DE4 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r1, 0 - lsls r4, r2, 24 - lsrs r4, 24 - movs r1, 0 - str r1, [sp] - adds r1, r5, 0 - adds r2, r4, 0 - movs r3, 0x1 - bl sub_8093FC4 - adds r0, r4, 0 - bl sub_80929AC - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl StartSpriteAnim - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8094DE4 - - thumb_func_start sub_8094E18 -sub_8094E18: @ 8094E18 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x1 - bl sub_8094DE4 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8094E38 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8094E18 - - thumb_func_start sub_8094E38 -sub_8094E38: @ 8094E38 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_80941C8 - lsls r0, 24 - cmp r0, 0 - bne _08094E4C - movs r0, 0 - b _08094E5A -_08094E4C: - movs r0, 0x2 - strh r0, [r5, 0x32] - ldrb r1, [r4] - subs r0, 0x23 - ands r0, r1 - strb r0, [r4] - movs r0, 0x1 -_08094E5A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8094E38 - - thumb_func_start sub_8094E60 -sub_8094E60: @ 8094E60 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x2 - bl sub_8094DE4 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8094E80 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8094E60 - - thumb_func_start sub_8094E80 -sub_8094E80: @ 8094E80 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_80941C8 - lsls r0, 24 - cmp r0, 0 - bne _08094E94 - movs r0, 0 - b _08094EA2 -_08094E94: - movs r0, 0x2 - strh r0, [r5, 0x32] - ldrb r1, [r4] - subs r0, 0x23 - ands r0, r1 - strb r0, [r4] - movs r0, 0x1 -_08094EA2: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8094E80 - - thumb_func_start sub_8094EA8 -sub_8094EA8: @ 8094EA8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x3 - bl sub_8094DE4 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8094EC8 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8094EA8 - - thumb_func_start sub_8094EC8 -sub_8094EC8: @ 8094EC8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_80941C8 - lsls r0, 24 - cmp r0, 0 - bne _08094EDC - movs r0, 0 - b _08094EEA -_08094EDC: - movs r0, 0x2 - strh r0, [r5, 0x32] - ldrb r1, [r4] - subs r0, 0x23 - ands r0, r1 - strb r0, [r4] - movs r0, 0x1 -_08094EEA: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8094EC8 - - thumb_func_start sub_8094EF0 -sub_8094EF0: @ 8094EF0 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x4 - bl sub_8094DE4 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8094F10 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8094EF0 - - thumb_func_start sub_8094F10 -sub_8094F10: @ 8094F10 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_80941C8 - lsls r0, 24 - cmp r0, 0 - bne _08094F24 - movs r0, 0 - b _08094F32 -_08094F24: - movs r0, 0x2 - strh r0, [r5, 0x32] - ldrb r1, [r4] - subs r0, 0x23 - ands r0, r1 - strb r0, [r4] - movs r0, 0x1 -_08094F32: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8094F10 - - thumb_func_start sub_8094F38 -sub_8094F38: @ 8094F38 - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r6, r1, 0 - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _08094F82 - movs r1, 0x10 - ldrsh r0, [r5, r1] - movs r2, 0x12 - ldrsh r1, [r5, r2] - ldr r4, =gMapObjects - mov r2, sp - ldrb r2, [r2] - lsls r3, r2, 3 - adds r3, r2 - lsls r3, 2 - adds r3, r4 - movs r4, 0x10 - ldrsh r2, [r3, r4] - movs r4, 0x12 - ldrsh r3, [r3, r4] - bl sub_8092AF8 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r5, 0 - adds r1, r6, 0 - bl an_look_any -_08094F82: - movs r0, 0x1 - strh r0, [r6, 0x32] - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8094F38 - - thumb_func_start sub_8094F94 -sub_8094F94: @ 8094F94 - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r6, r1, 0 - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _08094FE6 - movs r1, 0x10 - ldrsh r0, [r5, r1] - movs r2, 0x12 - ldrsh r1, [r5, r2] - ldr r4, =gMapObjects - mov r2, sp - ldrb r2, [r2] - lsls r3, r2, 3 - adds r3, r2 - lsls r3, 2 - adds r3, r4 - movs r4, 0x10 - ldrsh r2, [r3, r4] - movs r4, 0x12 - ldrsh r3, [r3, r4] - bl sub_8092AF8 - lsls r0, 24 - lsrs r0, 24 - bl GetOppositeDirection - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r5, 0 - adds r1, r6, 0 - bl an_look_any -_08094FE6: - movs r0, 0x1 - strh r0, [r6, 0x32] - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8094F94 - - thumb_func_start sub_8094FF8 -sub_8094FF8: @ 8094FF8 - ldrb r2, [r0, 0x1] - movs r3, 0x2 - orrs r2, r3 - strb r2, [r0, 0x1] - movs r0, 0x1 - strh r0, [r1, 0x32] - bx lr - thumb_func_end sub_8094FF8 - - thumb_func_start sub_8095008 -sub_8095008: @ 8095008 - ldrb r3, [r0, 0x1] - movs r2, 0x3 - negs r2, r2 - ands r2, r3 - strb r2, [r0, 0x1] - movs r0, 0x1 - strh r0, [r1, 0x32] - bx lr - thumb_func_end sub_8095008 - - thumb_func_start sub_8095018 -sub_8095018: @ 8095018 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x2 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x1 - bl maybe_shadow_1 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8095044 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095018 - - thumb_func_start sub_8095044 -sub_8095044: @ 8095044 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_80941B0 - lsls r0, 24 - cmp r0, 0 - bne _08095058 - movs r0, 0 - b _08095068 -_08095058: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08095068: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095044 - - thumb_func_start sub_8095070 -sub_8095070: @ 8095070 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x2 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x2 - movs r3, 0x1 - bl maybe_shadow_1 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_809509C - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095070 - - thumb_func_start sub_809509C -sub_809509C: @ 809509C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_80941B0 - lsls r0, 24 - cmp r0, 0 - bne _080950B0 - movs r0, 0 - b _080950C0 -_080950B0: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_080950C0: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_809509C - - thumb_func_start sub_80950C8 -sub_80950C8: @ 80950C8 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x2 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x3 - movs r3, 0x1 - bl maybe_shadow_1 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80950F4 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80950C8 - - thumb_func_start sub_80950F4 -sub_80950F4: @ 80950F4 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_80941B0 - lsls r0, 24 - cmp r0, 0 - bne _08095108 - movs r0, 0 - b _08095118 -_08095108: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08095118: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80950F4 - - thumb_func_start sub_8095120 -sub_8095120: @ 8095120 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x2 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x4 - movs r3, 0x1 - bl maybe_shadow_1 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_809514C - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095120 - - thumb_func_start sub_809514C -sub_809514C: @ 809514C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_80941B0 - lsls r0, 24 - cmp r0, 0 - bne _08095160 - movs r0, 0 - b _08095170 -_08095160: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08095170: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_809514C - - thumb_func_start sub_8095178 -sub_8095178: @ 8095178 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0 - bl maybe_shadow_1 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80951A4 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095178 - - thumb_func_start sub_80951A4 -sub_80951A4: @ 80951A4 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_80941B0 - lsls r0, 24 - cmp r0, 0 - bne _080951B8 - movs r0, 0 - b _080951C8 -_080951B8: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_080951C8: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80951A4 - - thumb_func_start sub_80951D0 -sub_80951D0: @ 80951D0 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x2 - movs r3, 0 - bl maybe_shadow_1 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80951FC - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80951D0 - - thumb_func_start sub_80951FC -sub_80951FC: @ 80951FC - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_80941B0 - lsls r0, 24 - cmp r0, 0 - bne _08095210 - movs r0, 0 - b _08095220 -_08095210: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08095220: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80951FC - - thumb_func_start sub_8095228 -sub_8095228: @ 8095228 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x3 - movs r3, 0 - bl maybe_shadow_1 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8095254 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095228 - - thumb_func_start sub_8095254 -sub_8095254: @ 8095254 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_80941B0 - lsls r0, 24 - cmp r0, 0 - bne _08095268 - movs r0, 0 - b _08095278 -_08095268: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08095278: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095254 - - thumb_func_start sub_8095280 -sub_8095280: @ 8095280 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x4 - movs r3, 0 - bl maybe_shadow_1 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80952AC - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095280 - - thumb_func_start sub_80952AC -sub_80952AC: @ 80952AC - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_80941B0 - lsls r0, 24 - cmp r0, 0 - bne _080952C0 - movs r0, 0 - b _080952D0 -_080952C0: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_080952D0: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80952AC - - thumb_func_start sub_80952D8 -sub_80952D8: @ 80952D8 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x2 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0 - bl maybe_shadow_1 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8095304 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80952D8 - - thumb_func_start sub_8095304 -sub_8095304: @ 8095304 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_80941E0 - lsls r0, 24 - cmp r0, 0 - bne _08095318 - movs r0, 0 - b _08095328 -_08095318: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08095328: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095304 - - thumb_func_start sub_8095330 -sub_8095330: @ 8095330 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x2 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x2 - movs r3, 0 - bl maybe_shadow_1 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_809535C - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095330 - - thumb_func_start sub_809535C -sub_809535C: @ 809535C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_80941E0 - lsls r0, 24 - cmp r0, 0 - bne _08095370 - movs r0, 0 - b _08095380 -_08095370: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08095380: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_809535C - - thumb_func_start sub_8095388 -sub_8095388: @ 8095388 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x2 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x3 - movs r3, 0 - bl maybe_shadow_1 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80953B4 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095388 - - thumb_func_start sub_80953B4 -sub_80953B4: @ 80953B4 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_80941E0 - lsls r0, 24 - cmp r0, 0 - bne _080953C8 - movs r0, 0 - b _080953D8 -_080953C8: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_080953D8: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80953B4 - - thumb_func_start sub_80953E0 -sub_80953E0: @ 80953E0 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x2 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x4 - movs r3, 0 - bl maybe_shadow_1 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_809540C - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80953E0 - - thumb_func_start sub_809540C -sub_809540C: @ 809540C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_80941E0 - lsls r0, 24 - cmp r0, 0 - bne _08095420 - movs r0, 0 - b _08095430 -_08095420: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08095430: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_809540C - - thumb_func_start sub_8095438 -sub_8095438: @ 8095438 - push {lr} - ldr r3, =gUnknown_085055CD - ldrb r2, [r0, 0x6] - adds r2, r3 - ldrb r2, [r2] - bl an_look_any - movs r0, 0x1 - pop {r1} - bx r1 - .pool - thumb_func_end sub_8095438 - - thumb_func_start sub_8095450 -sub_8095450: @ 8095450 - push {lr} - movs r2, 0x1 - movs r3, 0x14 - bl npc_set_direction_and_anim__an_proceed - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_8095450 - - thumb_func_start sub_8095460 -sub_8095460: @ 8095460 - ldrb r3, [r0, 0x3] - movs r2, 0x3 - negs r2, r2 - ands r2, r3 - strb r2, [r0, 0x3] - movs r0, 0x1 - strh r0, [r1, 0x32] - bx lr - thumb_func_end sub_8095460 - - thumb_func_start sub_8095470 -sub_8095470: @ 8095470 - ldrb r2, [r0, 0x3] - movs r3, 0x2 - orrs r2, r3 - strb r2, [r0, 0x3] - movs r0, 0x1 - strh r0, [r1, 0x32] - bx lr - thumb_func_end sub_8095470 - - thumb_func_start sub_8095480 -sub_8095480: @ 8095480 - ldrb r2, [r0, 0x1] - movs r3, 0x10 - orrs r2, r3 - strb r2, [r0, 0x1] - movs r0, 0x1 - strh r0, [r1, 0x32] - bx lr - thumb_func_end sub_8095480 - - thumb_func_start sub_8095490 -@ int sub_8095490(npc_state *npcState, int a2) -sub_8095490: @ 8095490 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrb r0, [r4, 0x5] - bl GetFieldObjectGraphicsInfo - ldrb r1, [r0, 0xC] - lsls r1, 25 - lsrs r1, 31 - lsls r1, 4 - ldrb r2, [r4, 0x1] - movs r0, 0x11 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x1] - movs r0, 0x1 - strh r0, [r5, 0x32] - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095490 - - thumb_func_start sub_80954BC -sub_80954BC: @ 80954BC - ldrb r2, [r0, 0x1] - movs r3, 0x20 - orrs r2, r3 - strb r2, [r0, 0x1] - movs r0, 0x1 - strh r0, [r1, 0x32] - bx lr - thumb_func_end sub_80954BC - - thumb_func_start sub_80954CC -sub_80954CC: @ 80954CC - ldrb r3, [r0, 0x1] - movs r2, 0x21 - negs r2, r2 - ands r2, r3 - strb r2, [r0, 0x1] - movs r0, 0x1 - strh r0, [r1, 0x32] - bx lr - thumb_func_end sub_80954CC - - thumb_func_start do_exclamation_mark_bubble_1 -do_exclamation_mark_bubble_1: @ 80954DC - push {r4,lr} - adds r4, r1, 0 - ldr r1, =gUnknown_02038C08 - adds r2, r1, 0x4 - adds r3, r1, 0 - adds r3, 0x8 - bl FieldObjectGetLocalIdAndMap - movs r0, 0 - bl FieldEffectStart - movs r0, 0x1 - strh r0, [r4, 0x32] - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end do_exclamation_mark_bubble_1 - - thumb_func_start do_exclamation_mark_bubble_2 -do_exclamation_mark_bubble_2: @ 8095500 - push {r4,lr} - adds r4, r1, 0 - ldr r1, =gUnknown_02038C08 - adds r2, r1, 0x4 - adds r3, r1, 0 - adds r3, 0x8 - bl FieldObjectGetLocalIdAndMap - movs r0, 0x21 - bl FieldEffectStart - movs r0, 0x1 - strh r0, [r4, 0x32] - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end do_exclamation_mark_bubble_2 - - thumb_func_start do_heart_bubble -do_heart_bubble: @ 8095524 - push {r4,lr} - adds r4, r1, 0 - ldr r1, =gUnknown_02038C08 - adds r2, r1, 0x4 - adds r3, r1, 0 - adds r3, 0x8 - bl FieldObjectGetLocalIdAndMap - movs r0, 0x2E - bl FieldEffectStart - movs r0, 0x1 - strh r0, [r4, 0x32] - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end do_heart_bubble - - thumb_func_start sub_8095548 -sub_8095548: @ 8095548 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrb r0, [r4, 0x6] - cmp r0, 0x3F - bne _0809555E - adds r0, r4, 0 - bl sub_80B4578 - movs r0, 0 - b _08095586 -_0809555E: - subs r0, 0x39 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _08095580 - adds r0, r4, 0 - bl sub_8155D78 - movs r0, 0x1 - strh r0, [r5, 0x32] - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_809558C - lsls r0, 24 - lsrs r0, 24 - b _08095586 -_08095580: - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08095586: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095548 - - thumb_func_start sub_809558C -sub_809558C: @ 809558C - push {r4,lr} - adds r4, r1, 0 - bl sub_8155DA0 - lsls r0, 24 - cmp r0, 0 - bne _0809559E - movs r0, 0 - b _080955A4 -_0809559E: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_080955A4: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_809558C - - thumb_func_start sub_80955AC -sub_80955AC: @ 80955AC - push {r4,lr} - adds r4, r1, 0 - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0 - bl obj_anim_image_set_and_seek - movs r0, 0x1 - strh r0, [r4, 0x32] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80955AC - - thumb_func_start sub_80955C8 -sub_80955C8: @ 80955C8 - push {r4,lr} - adds r4, r1, 0 - adds r0, r4, 0 - bl sub_80979BC - lsls r0, 24 - cmp r0, 0 - beq _080955E4 - adds r0, r4, 0 - movs r1, 0x20 - bl sub_8097978 - movs r0, 0x2 - strh r0, [r4, 0x32] -_080955E4: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80955C8 - - thumb_func_start sub_80955EC -sub_80955EC: @ 80955EC - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrb r2, [r4, 0x1] - lsls r1, r2, 26 - lsrs r1, 31 - movs r0, 0x1 - eors r1, r0 - lsls r1, 5 - subs r0, 0x22 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x1] - adds r0, r5, 0 - bl sub_809797C - lsls r0, 24 - cmp r0, 0 - beq _0809561E - ldrb r0, [r4, 0x1] - movs r1, 0x20 - orrs r0, r1 - strb r0, [r4, 0x1] - movs r0, 0x3 - strh r0, [r5, 0x32] -_0809561E: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80955EC - - thumb_func_start sub_8095628 -sub_8095628: @ 8095628 - push {r4,lr} - adds r4, r1, 0 - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0 - bl obj_anim_image_set_and_seek - movs r0, 0x1 - strh r0, [r4, 0x32] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8095628 - - thumb_func_start sub_8095644 -sub_8095644: @ 8095644 - push {r4,lr} - adds r4, r1, 0 - adds r0, r4, 0 - bl sub_80979BC - lsls r0, 24 - cmp r0, 0 - beq _08095660 - adds r0, r4, 0 - movs r1, 0x20 - bl sub_8097978 - movs r0, 0x2 - strh r0, [r4, 0x32] -_08095660: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8095644 - - thumb_func_start sub_8095668 -sub_8095668: @ 8095668 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrb r2, [r4, 0x1] - lsls r1, r2, 26 - lsrs r1, 31 - movs r0, 0x1 - eors r1, r0 - lsls r1, 5 - subs r0, 0x22 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x1] - adds r0, r5, 0 - bl sub_809797C - lsls r0, 24 - cmp r0, 0 - beq _0809569A - ldrb r0, [r4, 0x1] - movs r1, 0x20 - orrs r0, r1 - strb r0, [r4, 0x1] - movs r0, 0x3 - strh r0, [r5, 0x32] -_0809569A: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095668 - - thumb_func_start sub_80956A4 -sub_80956A4: @ 80956A4 - ldrb r2, [r0, 0x3] - movs r3, 0x4 - orrs r2, r3 - strb r2, [r0, 0x3] - movs r0, 0x1 - strh r0, [r1, 0x32] - bx lr - thumb_func_end sub_80956A4 - - thumb_func_start sub_80956B4 -sub_80956B4: @ 80956B4 - ldrb r3, [r0, 0x3] - movs r2, 0x5 - negs r2, r2 - ands r2, r3 - strb r2, [r0, 0x3] - movs r0, 0x1 - strh r0, [r1, 0x32] - bx lr - thumb_func_end sub_80956B4 - - thumb_func_start sub_80956C4 -sub_80956C4: @ 80956C4 - push {r4,lr} - adds r4, r1, 0 - ldrb r0, [r4, 0x1] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r4, 0x1] - adds r0, r4, 0 - bl InitSpriteAffineAnim - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - adds r4, 0x42 - ldrb r1, [r4] - movs r0, 0x3F - ands r0, r1 - strb r0, [r4] - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80956C4 - - thumb_func_start sub_80956F4 -sub_80956F4: @ 80956F4 - push {r4,lr} - adds r4, r1, 0 - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldrb r0, [r4, 0x1] - movs r1, 0x4 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x1] - lsrs r1, 6 - ldrb r2, [r4, 0x3] - lsrs r2, 6 - movs r3, 0 - adds r0, r4, 0 - bl CalcCenterToCornerVec - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80956F4 - - thumb_func_start sub_8095724 -sub_8095724: @ 8095724 - ldrb r1, [r0, 0x3] - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0, 0x3] - movs r0, 0x1 - bx lr - thumb_func_end sub_8095724 - - thumb_func_start sub_8095730 -sub_8095730: @ 8095730 - ldrb r2, [r0, 0x3] - movs r1, 0x9 - negs r1, r1 - ands r1, r2 - strb r1, [r0, 0x3] - movs r0, 0x1 - bx lr - thumb_func_end sub_8095730 - - thumb_func_start sub_8095740 -sub_8095740: @ 8095740 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - movs r2, 0x1 - bl sub_8093B60 - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAffineAnimIfDifferent - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8095774 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095740 - - thumb_func_start sub_8095774 -sub_8095774: @ 8095774 - push {r4,lr} - adds r4, r1, 0 - bl an_walk_any_2 - lsls r0, 24 - cmp r0, 0 - bne _08095786 - movs r0, 0 - b _08095798 -_08095786: - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08095798: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8095774 - - thumb_func_start sub_80957A0 -sub_80957A0: @ 80957A0 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - movs r2, 0x1 - bl sub_8093B60 - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - adds r0, r4, 0 - movs r1, 0x1 - bl ChangeSpriteAffineAnimIfDifferent - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80957D4 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80957A0 - - thumb_func_start sub_80957D4 -sub_80957D4: @ 80957D4 - push {r4,lr} - adds r4, r1, 0 - bl an_walk_any_2 - lsls r0, 24 - cmp r0, 0 - bne _080957E6 - movs r0, 0 - b _080957F8 -_080957E6: - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_080957F8: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80957D4 - - thumb_func_start sub_8095800 -sub_8095800: @ 8095800 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - movs r2, 0x3 - movs r3, 0x1 - bl do_go_anim - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - adds r0, r4, 0 - movs r1, 0x2 - bl ChangeSpriteAffineAnimIfDifferent - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8095834 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095800 - - thumb_func_start sub_8095834 -sub_8095834: @ 8095834 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08095846 - movs r0, 0 - b _08095858 -_08095846: - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08095858: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8095834 - - thumb_func_start sub_8095860 -sub_8095860: @ 8095860 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - movs r2, 0x4 - movs r3, 0x1 - bl do_go_anim - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - adds r0, r4, 0 - movs r1, 0x3 - bl ChangeSpriteAffineAnimIfDifferent - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8095894 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095860 - - thumb_func_start sub_8095894 -sub_8095894: @ 8095894 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _080958A6 - movs r0, 0 - b _080958B8 -_080958A6: - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_080958B8: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8095894 - - thumb_func_start sub_80958C0 -sub_80958C0: @ 80958C0 - push {r4-r6,lr} - adds r5, r0, 0 - adds r6, r1, 0 - lsls r4, r2, 24 - lsrs r4, 24 - adds r1, r4, 0 - bl FieldObjectSetDirection - adds r0, r5, 0 - bl npc_coords_shift_still - adds r0, r4, 0 - bl sub_80929FC - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r5, 0 - adds r1, r6, 0 - bl obj_npc_animation_step - adds r2, r6, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x1 - strh r0, [r6, 0x32] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80958C0 - - thumb_func_start sub_8095900 -sub_8095900: @ 8095900 - push {lr} - movs r2, 0x1 - bl sub_80958C0 - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_8095900 - - thumb_func_start sub_8095910 -sub_8095910: @ 8095910 - push {lr} - movs r2, 0x2 - bl sub_80958C0 - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_8095910 - - thumb_func_start sub_8095920 -sub_8095920: @ 8095920 - push {lr} - movs r2, 0x3 - bl sub_80958C0 - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_8095920 - - thumb_func_start sub_8095930 -sub_8095930: @ 8095930 - push {lr} - movs r2, 0x4 - bl sub_80958C0 - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_8095930 - - thumb_func_start sub_8095940 -sub_8095940: @ 8095940 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x1 - bl sub_80929BC - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x1 - bl npc_set_direction_and_anim__an_proceed - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095940 - - thumb_func_start sub_8095964 -sub_8095964: @ 8095964 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x2 - bl sub_80929BC - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x2 - bl npc_set_direction_and_anim__an_proceed - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095964 - - thumb_func_start sub_8095988 -sub_8095988: @ 8095988 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x3 - bl sub_80929BC - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x3 - bl npc_set_direction_and_anim__an_proceed - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095988 - - thumb_func_start sub_80959AC -sub_80959AC: @ 80959AC - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x4 - bl sub_80929BC - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x4 - bl npc_set_direction_and_anim__an_proceed - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80959AC - - thumb_func_start sub_80959D0 -sub_80959D0: @ 80959D0 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x1 - bl sub_80929DC - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x1 - bl npc_set_direction_and_anim__an_proceed - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80959D0 - - thumb_func_start sub_80959F4 -sub_80959F4: @ 80959F4 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x2 - bl sub_80929DC - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x2 - bl npc_set_direction_and_anim__an_proceed - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80959F4 - - thumb_func_start sub_8095A18 -sub_8095A18: @ 8095A18 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x3 - bl sub_80929DC - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x3 - bl npc_set_direction_and_anim__an_proceed - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095A18 - - thumb_func_start sub_8095A3C -sub_8095A3C: @ 8095A3C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x4 - bl sub_80929DC - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x4 - bl npc_set_direction_and_anim__an_proceed - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095A3C - - thumb_func_start sub_8095A60 -sub_8095A60: @ 8095A60 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x1 - bl sub_80929EC - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x1 - bl npc_set_direction_and_anim__an_proceed - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095A60 - - thumb_func_start sub_8095A84 -sub_8095A84: @ 8095A84 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x2 - bl sub_80929EC - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x2 - bl npc_set_direction_and_anim__an_proceed - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095A84 - - thumb_func_start sub_8095AA8 -sub_8095AA8: @ 8095AA8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x3 - bl sub_80929EC - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x3 - bl npc_set_direction_and_anim__an_proceed - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095AA8 - - thumb_func_start sub_8095ACC -sub_8095ACC: @ 8095ACC - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x4 - bl sub_80929EC - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x4 - bl npc_set_direction_and_anim__an_proceed - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095ACC - - thumb_func_start sub_8095AF0 -sub_8095AF0: @ 8095AF0 - push {r4,lr} - adds r4, r1, 0 - adds r0, r4, 0 - bl sub_8097750 - adds r4, 0x2C - ldrb r1, [r4] - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - strb r0, [r4] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8095AF0 - - thumb_func_start sub_8095B0C -sub_8095B0C: @ 8095B0C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r0, r5, 0 - bl sub_8097758 - lsls r0, 24 - cmp r0, 0 - bne _08095B22 - movs r0, 0 - b _08095B3E -_08095B22: - adds r0, r4, 0 - bl npc_coords_shift_still - ldrb r0, [r4] - movs r1, 0x8 - orrs r0, r1 - strb r0, [r4] - adds r2, r5, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x1 -_08095B3E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095B0C - - thumb_func_start sub_8095B44 -sub_8095B44: @ 8095B44 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - bl sub_8095AF0 - movs r0, 0x1 - strh r0, [r4, 0x32] - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8095B64 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095B44 - - thumb_func_start sub_8095B64 -sub_8095B64: @ 8095B64 - push {r4,lr} - adds r4, r1, 0 - bl sub_8095B0C - lsls r0, 24 - cmp r0, 0 - bne _08095B76 - movs r0, 0 - b _08095B7C -_08095B76: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08095B7C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8095B64 - - thumb_func_start sub_8095B84 -sub_8095B84: @ 8095B84 - push {r4-r6,lr} - sub sp, 0x4 - adds r6, r0, 0 - adds r5, r1, 0 - adds r4, r2, 0 - ldr r0, [sp, 0x14] - lsls r4, 24 - lsrs r4, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - adds r0, r6, 0 - adds r2, r4, 0 - bl sub_8093FC4 - adds r0, r4, 0 - bl sub_80929BC - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl StartSpriteAnimIfDifferent - adds r0, r6, 0 - bl DoShadowFieldEffect - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8095B84 - - thumb_func_start sub_8095BC8 -sub_8095BC8: @ 8095BC8 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x1 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0 - bl sub_8095B84 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8095BF4 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095BC8 - - thumb_func_start sub_8095BF4 -sub_8095BF4: @ 8095BF4 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_80941B0 - lsls r0, 24 - cmp r0, 0 - bne _08095C08 - movs r0, 0 - b _08095C18 -_08095C08: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08095C18: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095BF4 - - thumb_func_start sub_8095C20 -sub_8095C20: @ 8095C20 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x1 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x2 - movs r3, 0 - bl sub_8095B84 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8095C4C - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095C20 - - thumb_func_start sub_8095C4C -sub_8095C4C: @ 8095C4C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_80941B0 - lsls r0, 24 - cmp r0, 0 - bne _08095C60 - movs r0, 0 - b _08095C70 -_08095C60: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08095C70: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095C4C - - thumb_func_start sub_8095C78 -sub_8095C78: @ 8095C78 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x1 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x3 - movs r3, 0 - bl sub_8095B84 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8095CA4 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095C78 - - thumb_func_start sub_8095CA4 -sub_8095CA4: @ 8095CA4 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_80941B0 - lsls r0, 24 - cmp r0, 0 - bne _08095CB8 - movs r0, 0 - b _08095CC8 -_08095CB8: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08095CC8: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095CA4 - - thumb_func_start sub_8095CD0 -sub_8095CD0: @ 8095CD0 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x1 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x4 - movs r3, 0 - bl sub_8095B84 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8095CFC - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095CD0 - - thumb_func_start sub_8095CFC -sub_8095CFC: @ 8095CFC - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_80941B0 - lsls r0, 24 - cmp r0, 0 - bne _08095D10 - movs r0, 0 - b _08095D20 -_08095D10: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08095D20: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095CFC - - thumb_func_start sub_8095D28 -sub_8095D28: @ 8095D28 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x1 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x1 - bl sub_8095B84 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8095D54 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095D28 - - thumb_func_start sub_8095D54 -sub_8095D54: @ 8095D54 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_80941B0 - lsls r0, 24 - cmp r0, 0 - bne _08095D68 - movs r0, 0 - b _08095D78 -_08095D68: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08095D78: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095D54 - - thumb_func_start sub_8095D80 -sub_8095D80: @ 8095D80 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x1 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x2 - movs r3, 0x1 - bl sub_8095B84 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8095DAC - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095D80 - - thumb_func_start sub_8095DAC -sub_8095DAC: @ 8095DAC - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_80941B0 - lsls r0, 24 - cmp r0, 0 - bne _08095DC0 - movs r0, 0 - b _08095DD0 -_08095DC0: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08095DD0: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095DAC - - thumb_func_start sub_8095DD8 -sub_8095DD8: @ 8095DD8 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x1 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x3 - movs r3, 0x1 - bl sub_8095B84 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8095E04 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095DD8 - - thumb_func_start sub_8095E04 -sub_8095E04: @ 8095E04 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_80941B0 - lsls r0, 24 - cmp r0, 0 - bne _08095E18 - movs r0, 0 - b _08095E28 -_08095E18: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08095E28: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095E04 - - thumb_func_start sub_8095E30 -sub_8095E30: @ 8095E30 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x1 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x4 - movs r3, 0x1 - bl sub_8095B84 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8095E5C - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095E30 - - thumb_func_start sub_8095E5C -sub_8095E5C: @ 8095E5C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_80941B0 - lsls r0, 24 - cmp r0, 0 - bne _08095E70 - movs r0, 0 - b _08095E80 -_08095E70: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08095E80: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095E5C - - thumb_func_start sub_8095E88 -sub_8095E88: @ 8095E88 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x2 - bl sub_8095B84 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8095EB4 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095E88 - - thumb_func_start sub_8095EB4 -sub_8095EB4: @ 8095EB4 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_80941B0 - lsls r0, 24 - cmp r0, 0 - bne _08095EC8 - movs r0, 0 - b _08095ED8 -_08095EC8: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08095ED8: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095EB4 - - thumb_func_start sub_8095EE0 -sub_8095EE0: @ 8095EE0 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x2 - movs r3, 0x2 - bl sub_8095B84 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8095F0C - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095EE0 - - thumb_func_start sub_8095F0C -sub_8095F0C: @ 8095F0C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_80941B0 - lsls r0, 24 - cmp r0, 0 - bne _08095F20 - movs r0, 0 - b _08095F30 -_08095F20: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08095F30: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095F0C - - thumb_func_start sub_8095F38 -sub_8095F38: @ 8095F38 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x3 - movs r3, 0x2 - bl sub_8095B84 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8095F64 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095F38 - - thumb_func_start sub_8095F64 -sub_8095F64: @ 8095F64 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_80941B0 - lsls r0, 24 - cmp r0, 0 - bne _08095F78 - movs r0, 0 - b _08095F88 -_08095F78: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08095F88: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095F64 - - thumb_func_start sub_8095F90 -sub_8095F90: @ 8095F90 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x4 - movs r3, 0x2 - bl sub_8095B84 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8095FBC - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095F90 - - thumb_func_start sub_8095FBC -sub_8095FBC: @ 8095FBC - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_80941B0 - lsls r0, 24 - cmp r0, 0 - bne _08095FD0 - movs r0, 0 - b _08095FE0 -_08095FD0: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08095FE0: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095FBC - - thumb_func_start sub_8095FE8 -sub_8095FE8: @ 8095FE8 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x1 - bl sub_80929FC - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x8 - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x1 - bl sub_8094554 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_809459C - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095FE8 - - thumb_func_start sub_8096020 -sub_8096020: @ 8096020 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x2 - bl sub_80929FC - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x8 - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x2 - bl sub_8094554 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_809459C - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8096020 - - thumb_func_start sub_8096058 -sub_8096058: @ 8096058 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x3 - bl sub_80929FC - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x8 - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x3 - bl sub_8094554 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_809459C - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8096058 - - thumb_func_start sub_8096090 -sub_8096090: @ 8096090 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x4 - bl sub_80929FC - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x8 - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x4 - bl sub_8094554 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_809459C - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8096090 - - thumb_func_start sub_80960C8 -sub_80960C8: @ 80960C8 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - bl npc_apply_direction - ldrb r0, [r5, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl sub_80929BC - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - adds r0, r4, 0 - movs r1, 0 - bl SeekSpriteAnim - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80960C8 - - thumb_func_start sub_8096100 -sub_8096100: @ 8096100 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x1 - movs r3, 0x1 - bl sub_80960C8 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8096120 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8096100 - - thumb_func_start sub_8096120 -sub_8096120: @ 8096120 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08096132 - movs r0, 0 - b _08096138 -_08096132: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08096138: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8096120 - - thumb_func_start sub_8096140 -sub_8096140: @ 8096140 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x2 - movs r3, 0x1 - bl sub_80960C8 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8096160 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8096140 - - thumb_func_start sub_8096160 -sub_8096160: @ 8096160 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08096172 - movs r0, 0 - b _08096178 -_08096172: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08096178: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8096160 - - thumb_func_start sub_8096180 -sub_8096180: @ 8096180 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x3 - movs r3, 0x1 - bl sub_80960C8 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80961A0 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8096180 - - thumb_func_start sub_80961A0 -sub_80961A0: @ 80961A0 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _080961B2 - movs r0, 0 - b _080961B8 -_080961B2: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_080961B8: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80961A0 - - thumb_func_start sub_80961C0 -sub_80961C0: @ 80961C0 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x4 - movs r3, 0x1 - bl sub_80960C8 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80961E0 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80961C0 - - thumb_func_start sub_80961E0 -sub_80961E0: @ 80961E0 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _080961F2 - movs r0, 0 - b _080961F8 -_080961F2: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_080961F8: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80961E0 - - thumb_func_start sub_8096200 -sub_8096200: @ 8096200 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - bl npc_apply_direction - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl sub_80929FC - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl npc_apply_anim_looping - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8096200 - - thumb_func_start sub_8096230 -sub_8096230: @ 8096230 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x1 - movs r3, 0x1 - bl sub_8096200 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8096250 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8096230 - - thumb_func_start sub_8096250 -sub_8096250: @ 8096250 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08096262 - movs r0, 0 - b _08096268 -_08096262: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08096268: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8096250 - - thumb_func_start sub_8096270 -sub_8096270: @ 8096270 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x2 - movs r3, 0x1 - bl sub_8096200 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8096290 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8096270 - - thumb_func_start sub_8096290 -sub_8096290: @ 8096290 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _080962A2 - movs r0, 0 - b _080962A8 -_080962A2: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_080962A8: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8096290 - - thumb_func_start sub_80962B0 -sub_80962B0: @ 80962B0 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x3 - movs r3, 0x1 - bl sub_8096200 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80962D0 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80962B0 - - thumb_func_start sub_80962D0 -sub_80962D0: @ 80962D0 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _080962E2 - movs r0, 0 - b _080962E8 -_080962E2: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_080962E8: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80962D0 - - thumb_func_start sub_80962F0 -sub_80962F0: @ 80962F0 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x4 - movs r3, 0x1 - bl sub_8096200 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8096310 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80962F0 - - thumb_func_start sub_8096310 -sub_8096310: @ 8096310 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08096322 - movs r0, 0 - b _08096328 -_08096322: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08096328: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8096310 - - thumb_func_start sub_8096330 -sub_8096330: @ 8096330 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - bl npc_apply_direction - ldrb r0, [r5, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl sub_80929DC - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - adds r0, r4, 0 - movs r1, 0 - bl SeekSpriteAnim - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8096330 - - thumb_func_start sub_8096368 -sub_8096368: @ 8096368 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x1 - movs r3, 0x1 - bl sub_8096330 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8096388 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8096368 - - thumb_func_start sub_8096388 -sub_8096388: @ 8096388 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _0809639A - movs r0, 0 - b _080963A0 -_0809639A: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_080963A0: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8096388 - - thumb_func_start sub_80963A8 -sub_80963A8: @ 80963A8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x2 - movs r3, 0x1 - bl sub_8096330 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80963C8 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80963A8 - - thumb_func_start sub_80963C8 -sub_80963C8: @ 80963C8 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _080963DA - movs r0, 0 - b _080963E0 -_080963DA: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_080963E0: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80963C8 - - thumb_func_start sub_80963E8 -sub_80963E8: @ 80963E8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x3 - movs r3, 0x1 - bl sub_8096330 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8096408 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80963E8 - - thumb_func_start sub_8096408 -sub_8096408: @ 8096408 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _0809641A - movs r0, 0 - b _08096420 -_0809641A: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08096420: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8096408 - - thumb_func_start sub_8096428 -sub_8096428: @ 8096428 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x4 - movs r3, 0x1 - bl sub_8096330 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8096448 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8096428 - - thumb_func_start sub_8096448 -sub_8096448: @ 8096448 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _0809645A - movs r0, 0 - b _08096460 -_0809645A: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08096460: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8096448 - - thumb_func_start sub_8096468 -sub_8096468: @ 8096468 - push {r4,lr} - adds r4, r1, 0 - bl sub_8097FA4 - movs r0, 0x1 - strh r0, [r4, 0x32] - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8096468 - - thumb_func_start sub_809647C -sub_809647C: @ 809647C - push {r4,lr} - adds r4, r1, 0 - ldrb r0, [r0, 0x1B] - bl sub_8098044 - movs r0, 0 - strh r0, [r4, 0x26] - movs r0, 0x1 - strh r0, [r4, 0x32] - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_809647C - - thumb_func_start sub_8096494 -sub_8096494: @ 8096494 - push {r4,lr} - adds r2, r0, 0 - adds r4, r1, 0 - movs r1, 0x26 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080964A6 - movs r0, 0 - b _080964B0 -_080964A6: - ldrb r0, [r2, 0x1B] - bl sub_8098044 - movs r0, 0x1 - strh r0, [r4, 0x32] -_080964B0: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8096494 - - thumb_func_start sub_80964B8 -sub_80964B8: @ 80964B8 - movs r0, 0x1 - bx lr - thumb_func_end sub_80964B8 - - thumb_func_start sub_80964BC -@ bool8 sub_80964BC(struct npc_state *fieldObject, struct obj *object) -sub_80964BC: @ 80964BC - adds r1, 0x2C - ldrb r0, [r1] - movs r2, 0x40 - orrs r0, r2 - strb r0, [r1] - movs r0, 0x1 - bx lr - thumb_func_end sub_80964BC - - thumb_func_start npc_obj_transfer_image_anim_pause_flag -@ void npc_obj_transfer_image_anim_pause_flag(struct npc_state *fieldObject, struct obj *object) -npc_obj_transfer_image_anim_pause_flag: @ 80964CC - push {lr} - ldrb r0, [r0, 0x1] - lsls r0, 29 - cmp r0, 0 - bge _080964E2 - adds r0, r1, 0 - adds r0, 0x2C - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] -_080964E2: - pop {r0} - bx r0 - thumb_func_end npc_obj_transfer_image_anim_pause_flag - - thumb_func_start sub_80964E8 -@ void sub_80964E8(struct npc_state *fieldObject, struct obj *object) -sub_80964E8: @ 80964E8 - push {r4,lr} - adds r4, r0, 0 - ldrb r3, [r4, 0x1] - lsls r0, r3, 28 - cmp r0, 0 - bge _08096510 - adds r2, r1, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r3 - movs r1, 0x9 - negs r1, r1 - ands r0, r1 - strb r0, [r4, 0x1] -_08096510: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80964E8 - - thumb_func_start sub_8096518 -@ void sub_8096518(struct npc_state *fieldObject, struct obj *object) -sub_8096518: @ 8096518 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_8096530 - adds r0, r4, 0 - adds r1, r5, 0 - bl npc_update_obj_anim_flag - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8096518 - - thumb_func_start sub_8096530 -sub_8096530: @ 8096530 - push {r4-r6,lr} - adds r5, r0, 0 - adds r4, r1, 0 - ldrb r1, [r5, 0x1] - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - strb r0, [r5, 0x1] - ldrb r0, [r5, 0x5] - bl GetFieldObjectGraphicsInfo - adds r6, r0, 0 - adds r0, r4, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08096594 - ldrh r1, [r4, 0x24] - ldrh r0, [r4, 0x20] - adds r1, r0 - adds r0, r4, 0 - adds r0, 0x28 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - ldr r2, =gSpriteCoordOffsetX - adds r0, r1 - ldrh r2, [r2] - adds r0, r2 - lsls r0, 16 - lsrs r3, r0, 16 - ldrh r1, [r4, 0x26] - ldrh r0, [r4, 0x22] - adds r1, r0 - adds r0, r4, 0 - adds r0, 0x29 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - ldr r2, =gSpriteCoordOffsetY - adds r0, r1 - ldrh r2, [r2] - adds r0, r2 - b _080965BC - .pool -_08096594: - ldrh r1, [r4, 0x24] - ldrh r0, [r4, 0x20] - adds r1, r0 - adds r0, r4, 0 - adds r0, 0x28 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r0, r1 - lsls r0, 16 - lsrs r3, r0, 16 - ldrh r1, [r4, 0x26] - ldrh r0, [r4, 0x22] - adds r1, r0 - adds r0, r4, 0 - adds r0, 0x29 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r0, r1 -_080965BC: - lsls r0, 16 - lsrs r2, r0, 16 - ldrh r0, [r6, 0x8] - adds r0, r3 - lsls r0, 16 - lsrs r1, r0, 16 - ldrh r0, [r6, 0xA] - adds r0, r2 - lsls r0, 16 - lsrs r4, r0, 16 - lsls r0, r3, 16 - asrs r0, 16 - cmp r0, 0xFF - bgt _080965E4 - lsls r0, r1, 16 - asrs r0, 16 - movs r1, 0x10 - negs r1, r1 - cmp r0, r1 - bge _080965EC -_080965E4: - ldrb r0, [r5, 0x1] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r5, 0x1] -_080965EC: - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0xAF - bgt _08096600 - lsls r0, r4, 16 - asrs r0, 16 - movs r1, 0x10 - negs r1, r1 - cmp r0, r1 - bge _08096608 -_08096600: - ldrb r0, [r5, 0x1] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r5, 0x1] -_08096608: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8096530 - - thumb_func_start npc_update_obj_anim_flag -@ void npc_update_obj_anim_flag(struct npc_state *fieldObject, struct obj *object) -npc_update_obj_anim_flag: @ 8096610 - push {lr} - adds r2, r1, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r3, 0x5 - negs r3, r3 - ands r3, r1 - strb r3, [r2] - ldrb r1, [r0, 0x1] - movs r0, 0x60 - ands r0, r1 - cmp r0, 0 - beq _08096632 - movs r1, 0x4 - adds r0, r3, 0 - orrs r0, r1 - strb r0, [r2] -_08096632: - pop {r0} - bx r0 - thumb_func_end npc_update_obj_anim_flag - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s index 1698c054e..9f47c0a55 100644 --- a/asm/field_player_avatar.s +++ b/asm/field_player_avatar.s @@ -43,7 +43,7 @@ player_step: @ 808A9C0 lsrs r7, r1, 16 lsls r2, 16 lsrs r6, r2, 16 - ldr r4, =gUnknown_02037590 + ldr r4, =gPlayerAvatar ldrb r1, [r4, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -153,7 +153,7 @@ npc_clear_strange_bits: @ 808AA9C adds r2, 0x2 ands r1, r2 strb r1, [r0, 0x1] - ldr r2, =gUnknown_02037590 + ldr r2, =gPlayerAvatar ldrb r1, [r2] movs r0, 0x7F ands r0, r1 @@ -172,7 +172,7 @@ MovePlayerAvatarUsingKeypadInput: @ 808AAC0 lsrs r4, r1, 16 lsls r2, 16 lsrs r2, 16 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0] movs r0, 0x6 ands r0, r1 @@ -197,7 +197,7 @@ _0808AAF0: @ void PlayerAllowForcedMovementIfMovingSameDirection() PlayerAllowForcedMovementIfMovingSameDirection: @ 808AAF8 push {lr} - ldr r2, =gUnknown_02037590 + ldr r2, =gPlayerAvatar ldrb r0, [r2, 0x2] cmp r0, 0x2 bne _0808AB0A @@ -234,7 +234,7 @@ TryDoMetatileBehaviorForcedMovment: @ 808AB14 @ u8 GetForcedMovementByMetatileBehavior() GetForcedMovementByMetatileBehavior: @ 808AB38 push {r4-r6,lr} - ldr r3, =gUnknown_02037590 + ldr r3, =gPlayerAvatar ldrb r1, [r3] movs r0, 0x20 ands r0, r1 @@ -280,7 +280,7 @@ _0808AB8C: thumb_func_start ForcedMovement_None ForcedMovement_None: @ 808AB94 push {r4,lr} - ldr r4, =gUnknown_02037590 + ldr r4, =gPlayerAvatar ldrb r1, [r4] movs r0, 0x40 ands r0, r1 @@ -325,7 +325,7 @@ DoForcedMovement: @ 808ABE0 mov r9, r1 lsls r0, 24 lsrs r5, r0, 24 - ldr r6, =gUnknown_02037590 + ldr r6, =gPlayerAvatar adds r0, r5, 0 bl CheckForPlayerAvatarCollision lsls r0, 24 @@ -381,7 +381,7 @@ _0808AC48: DoForcedMovementInCurrentDirection: @ 808AC58 push {lr} adds r1, r0, 0 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r2, [r0, 0x5] lsls r0, r2, 3 adds r0, r2 @@ -523,7 +523,7 @@ ForcedMovement_Slide: @ 808AD60 push {r4,lr} lsls r0, 24 lsrs r0, 24 - ldr r2, =gUnknown_02037590 + ldr r2, =gPlayerAvatar ldrb r3, [r2, 0x5] lsls r2, r3, 3 adds r2, r3 @@ -618,7 +618,7 @@ ForcedMovement_0xBC: @ 808AE04 thumb_func_start ForcedMovement_MuddySlope ForcedMovement_MuddySlope: @ 808AE10 push {r4,lr} - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -691,7 +691,7 @@ CheckMovementInputNotOnBike: @ 808AE98 lsrs r4, r0, 24 cmp r4, 0 bne _0808AEB0 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar strb r4, [r0, 0x2] movs r0, 0 b _0808AED2 @@ -702,7 +702,7 @@ _0808AEB0: lsrs r0, 24 cmp r4, r0 beq _0808AECC - ldr r1, =gUnknown_02037590 + ldr r1, =gPlayerAvatar ldrb r0, [r1, 0x2] cmp r0, 0x2 beq _0808AECC @@ -710,7 +710,7 @@ _0808AEB0: b _0808AED0 .pool _0808AECC: - ldr r1, =gUnknown_02037590 + ldr r1, =gPlayerAvatar movs r0, 0x2 _0808AED0: strb r0, [r1, 0x2] @@ -784,7 +784,7 @@ _0808AF3C: bl PlayerNotOnBikeCollide b _0808AFB6 _0808AF4E: - ldr r4, =gUnknown_02037590 + ldr r4, =gPlayerAvatar ldrb r1, [r4] movs r0, 0x8 ands r0, r1 @@ -843,7 +843,7 @@ CheckForPlayerAvatarCollision: @ 808AFBC adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r0, [r0, 0x5] lsls r4, r0, 3 adds r4, r0 @@ -894,7 +894,7 @@ sub_808B028: @ 808B028 adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r0, [r0, 0x5] lsls r4, r0, 3 adds r4, r0 @@ -1102,7 +1102,7 @@ sub_808B1BC: @ 808B1BC lsrs r4, r1, 16 lsls r2, 24 lsrs r6, r2, 24 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0] movs r0, 0x8 ands r0, r1 @@ -1223,7 +1223,7 @@ sub_808B238: @ 808B238 bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 - bl sub_8088F58 + bl MetatileBehavior_IsNonAnimDoor lsls r0, 24 cmp r0, 0 bne _0808B2D8 @@ -1285,7 +1285,7 @@ IsPlayerCollidingWithFarawayIslandMew: @ 808B324 sub sp, 0x4 lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_02037590 + ldr r1, =gPlayerAvatar ldrb r2, [r1, 0x5] lsls r1, r2, 3 adds r1, r2 @@ -1369,7 +1369,7 @@ SetPlayerAvatarTransitionFlags: @ 808B3CC push {lr} lsls r0, 16 lsrs r0, 16 - ldr r2, =gUnknown_02037590 + ldr r2, =gPlayerAvatar ldrb r1, [r2, 0x1] orrs r0, r1 strb r0, [r2, 0x1] @@ -1383,7 +1383,7 @@ SetPlayerAvatarTransitionFlags: @ 808B3CC @ void DoPlayerAvatarTransition() DoPlayerAvatarTransition: @ 808B3E8 push {r4,r5,lr} - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r4, [r0, 0x1] cmp r4, 0 beq _0808B428 @@ -1396,7 +1396,7 @@ _0808B3F4: ldr r0, =gUnknown_084974B8 lsls r2, r5, 2 adds r2, r0 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -1412,7 +1412,7 @@ _0808B416: lsrs r4, 1 cmp r5, 0x7 bls _0808B3F4 - ldr r1, =gUnknown_02037590 + ldr r1, =gPlayerAvatar movs r0, 0 strb r0, [r1, 0x1] _0808B428: @@ -1522,14 +1522,14 @@ PlayerAvatarTransition_Surfing: @ 808B4D8 bl FieldObjectTurn movs r0, 0x8 bl SetPlayerAvatarStateMask - ldr r1, =gUnknown_02038C08 + ldr r1, =gFieldEffectSpawnParams movs r2, 0x10 ldrsh r0, [r4, r2] str r0, [r1] movs r2, 0x12 ldrsh r0, [r4, r2] str r0, [r1, 0x4] - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r0, [r0, 0x5] str r0, [r1, 0x8] movs r0, 0x8 @@ -1574,7 +1574,7 @@ PlayerAvatarTransition_Underwater: @ 808B534 thumb_func_start PlayerAvatarTransition_ReturnToField @ void PlayerAvatarTransition_ReturnToField(struct npc_state *fieldObject) PlayerAvatarTransition_ReturnToField: @ 808B568 - ldr r2, =gUnknown_02037590 + ldr r2, =gPlayerAvatar ldrb r1, [r2] movs r0, 0x20 orrs r0, r1 @@ -1586,7 +1586,7 @@ PlayerAvatarTransition_ReturnToField: @ 808B568 thumb_func_start sub_808B578 sub_808B578: @ 808B578 push {r4,lr} - ldr r4, =gUnknown_02037590 + ldr r4, =gPlayerAvatar movs r0, 0 strb r0, [r4, 0x3] bl PlayerIsAnimActive @@ -1622,7 +1622,7 @@ _0808B5B6: player_is_anim_in_certain_ranges: @ 808B5BC push {lr} ldr r2, =gMapObjects - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -1673,7 +1673,7 @@ sub_808B618: @ 808B618 lsls r0, 24 cmp r0, 0 beq _0808B634 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r0, [r0, 0x2] cmp r0, 0x1 beq _0808B634 @@ -1691,7 +1691,7 @@ _0808B636: @ bool8 PlayerIsAnimActive() PlayerIsAnimActive: @ 808B63C push {lr} - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -1710,7 +1710,7 @@ PlayerIsAnimActive: @ 808B63C @ bool8 PlayerCheckIfAnimFinishedOrInactive() PlayerCheckIfAnimFinishedOrInactive: @ 808B660 push {lr} - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -1728,7 +1728,7 @@ PlayerCheckIfAnimFinishedOrInactive: @ 808B660 thumb_func_start player_set_x22 player_set_x22: @ 808B684 ldr r3, =gMapObjects - ldr r1, =gUnknown_02037590 + ldr r1, =gPlayerAvatar ldrb r2, [r1, 0x5] lsls r1, r2, 3 adds r1, r2 @@ -1743,7 +1743,7 @@ player_set_x22: @ 808B684 thumb_func_start player_get_x22 player_get_x22: @ 808B6A0 ldr r2, =gMapObjects - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -1761,7 +1761,7 @@ sub_808B6BC: @ 808B6BC adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r2, [r0, 0x5] lsls r0, r2, 3 adds r0, r2 @@ -1788,7 +1788,7 @@ player_npc_set_state_and_x22_etc: @ 808B6E4 bne _0808B712 adds r0, r4, 0 bl player_set_x22 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -2002,7 +2002,7 @@ PlayerJumpLedge: @ 808B840 thumb_func_start sub_808B864 sub_808B864: @ 808B864 push {r4,lr} - ldr r4, =gUnknown_02037590 + ldr r4, =gPlayerAvatar ldrb r0, [r4, 0x3] cmp r0, 0x2 beq _0808B872 @@ -2220,7 +2220,7 @@ PlayCollisionSoundIfNotFacingWarp: @ 808B9EC lsls r0, 24 lsrs r4, r0, 24 ldr r2, =gMapObjects - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -2255,7 +2255,7 @@ PlayCollisionSoundIfNotFacingWarp: @ 808B9EC bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 - bl is_tile_x69_2_warp_door + bl MetatileBehavior_IsWarpDoor lsls r0, 24 cmp r0, 0 bne _0808BA54 @@ -2276,7 +2276,7 @@ GetXYCoordsOneStepInFrontOfPlayer: @ 808BA68 adds r4, r0, 0 adds r5, r1, 0 ldr r3, =gMapObjects - ldr r2, =gUnknown_02037590 + ldr r2, =gPlayerAvatar ldrb r1, [r2, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -2308,7 +2308,7 @@ GetXYCoordsOneStepInFrontOfPlayer: @ 808BA68 PlayerGetDestCoords: @ 808BAAC push {r4,r5,lr} ldr r5, =gMapObjects - ldr r4, =gUnknown_02037590 + ldr r4, =gPlayerAvatar ldrb r3, [r4, 0x5] lsls r2, r3, 3 adds r2, r3 @@ -2334,7 +2334,7 @@ plaer_get_pos_including_state_based_drift: @ 808BADC push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -2466,7 +2466,7 @@ _0808BC30: @ u8 player_get_direction_lower_nybble() player_get_direction_lower_nybble: @ 808BC38 ldr r2, =gMapObjects - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -2483,7 +2483,7 @@ player_get_direction_lower_nybble: @ 808BC38 @ u8 player_get_direction_upper_nybble() player_get_direction_upper_nybble: @ 808BC58 ldr r2, =gMapObjects - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -2499,7 +2499,7 @@ player_get_direction_upper_nybble: @ 808BC58 @ u8 PlayerGetZCoord() PlayerGetZCoord: @ 808BC74 ldr r2, =gMapObjects - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -2516,7 +2516,7 @@ sub_808BC90: @ 808BC90 push {lr} adds r3, r0, 0 adds r2, r1, 0 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -2537,7 +2537,7 @@ sub_808BC90: @ 808BC90 thumb_func_start TestPlayerAvatarFlags @ u32 TestPlayerAvatarFlags(u32 mask) TestPlayerAvatarFlags: @ 808BCC0 - ldr r1, =gUnknown_02037590 + ldr r1, =gPlayerAvatar ldrb r1, [r1] ands r1, r0 adds r0, r1, 0 @@ -2547,7 +2547,7 @@ TestPlayerAvatarFlags: @ 808BCC0 thumb_func_start sub_808BCD0 sub_808BCD0: @ 808BCD0 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r0, [r0] bx lr .pool @@ -2556,7 +2556,7 @@ sub_808BCD0: @ 808BCD0 thumb_func_start GetPlayerAvatarObjectId @ u8 GetPlayerAvatarObjectId() GetPlayerAvatarObjectId: @ 808BCDC - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r0, [r0, 0x4] bx lr .pool @@ -2573,7 +2573,7 @@ sub_808BCE8: @ 808BCE8 thumb_func_start sub_808BCF4 sub_808BCF4: @ 808BCF4 push {r4,lr} - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r0, [r0, 0x5] lsls r4, r0, 3 adds r4, r0 @@ -2659,7 +2659,7 @@ GetPlayerAvatarGraphicsIdByStateId: @ 808BD8C push {lr} lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_02037590 + ldr r1, =gPlayerAvatar ldrb r1, [r1, 0x7] bl GetPlayerAvatarGraphicsIdByStateIdAndGender lsls r0, 24 @@ -2804,7 +2804,7 @@ _0808BE70: IsPlayerFacingSurfableFishableWater: @ 808BE74 push {r4,r5,lr} sub sp, 0x4 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r0, [r0, 0x5] lsls r4, r0, 3 adds r4, r0 @@ -2871,7 +2871,7 @@ _0808BEF6: @ void ClearPlayerAvatarInfo() ClearPlayerAvatarInfo: @ 808BF00 push {lr} - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar movs r1, 0 movs r2, 0x24 bl memset @@ -2885,7 +2885,7 @@ ClearPlayerAvatarInfo: @ 808BF00 SetPlayerAvatarStateMask: @ 808BF14 lsls r0, 24 lsrs r0, 24 - ldr r3, =gUnknown_02037590 + ldr r3, =gPlayerAvatar ldrb r2, [r3] movs r1, 0xE0 ands r1, r2 @@ -2937,7 +2937,7 @@ _0808BF64: @ u8 GetPlayerAvatarGraphicsIdByCurrentState() GetPlayerAvatarGraphicsIdByCurrentState: @ 808BF6C push {r4-r6,lr} - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r5, [r0] movs r2, 0 ldr r3, =gUnknown_0849750C @@ -2980,7 +2980,7 @@ SetPlayerAvatarExtraStateTransition: @ 808BFB0 lsrs r0, 24 lsls r4, 24 lsrs r4, 24 - ldr r5, =gUnknown_02037590 + ldr r5, =gPlayerAvatar ldrb r1, [r5, 0x7] bl GetPlayerAvatarStateTransitionByGraphicsId lsls r0, 24 @@ -3072,7 +3072,7 @@ InitPlayerAvatar: @ 808BFE0 mov r1, r9 bl FieldObjectTurn bl ClearPlayerAvatarInfo - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar strb r6, [r0, 0x2] strb r6, [r0, 0x3] strb r5, [r0, 0x5] @@ -3098,7 +3098,7 @@ sub_808C0A8: @ 808C0A8 lsls r0, 24 lsrs r4, r0, 24 ldr r6, =gMapObjects - ldr r5, =gUnknown_02037590 + ldr r5, =gPlayerAvatar ldrb r0, [r5, 0x5] lsls r1, r0, 3 adds r1, r0 @@ -3147,7 +3147,7 @@ _0808C100: thumb_func_start sub_808C114 sub_808C114: @ 808C114 push {r4,r5,lr} - ldr r5, =gUnknown_02037590 + ldr r5, =gPlayerAvatar ldrb r0, [r5, 0x5] lsls r4, r0, 3 adds r4, r0 @@ -3181,7 +3181,7 @@ sub_808C15C: @ 808C15C adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 - ldr r6, =gUnknown_02037590 + ldr r6, =gPlayerAvatar ldrb r0, [r6, 0x5] lsls r4, r0, 3 adds r4, r0 @@ -3222,7 +3222,7 @@ sub_808C1B4: @ 808C1B4 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 - ldr r6, =gUnknown_02037590 + ldr r6, =gPlayerAvatar ldrb r0, [r6, 0x5] lsls r4, r0, 3 adds r4, r0 @@ -3271,7 +3271,7 @@ sub_808C228: @ 808C228 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 - ldr r6, =gUnknown_02037590 + ldr r6, =gPlayerAvatar ldrb r0, [r6, 0x5] lsls r4, r0, 3 adds r4, r0 @@ -3424,7 +3424,7 @@ _0808C360: ldrsh r3, [r4, r0] lsls r3, 2 adds r3, r6 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r0, [r0, 0x5] lsls r1, r0, 3 adds r1, r0 @@ -3453,7 +3453,7 @@ sub_808C3A4: @ 808C3A4 push {r4,lr} adds r4, r0, 0 bl ScriptContext2_Enable - ldr r1, =gUnknown_02037590 + ldr r1, =gPlayerAvatar movs r0, 0x1 strb r0, [r1, 0x6] ldrh r0, [r4, 0x8] @@ -3517,7 +3517,7 @@ _0808C3F0: lsrs r1, 24 adds r0, r4, 0 bl FieldObjectSetSpecialAnim - ldr r2, =gUnknown_02038C08 + ldr r2, =gFieldEffectSpawnParams movs r1, 0x10 ldrsh r0, [r4, r1] str r0, [r2] @@ -3571,7 +3571,7 @@ sub_808C484: @ 808C484 bl FieldObjectClearAnimIfSpecialAnimFinished adds r0, r5, 0 bl FieldObjectClearAnimIfSpecialAnimFinished - ldr r1, =gUnknown_02037590 + ldr r1, =gPlayerAvatar movs r0, 0 strb r0, [r1, 0x6] bl ScriptContext2_Disable @@ -3620,7 +3620,7 @@ _0808C50A: ldrsh r2, [r4, r0] lsls r2, 2 adds r2, r5 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r0, [r0, 0x5] lsls r1, r0, 3 adds r1, r0 @@ -3644,7 +3644,7 @@ sub_808C544: @ 808C544 push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 - ldr r5, =gUnknown_02037590 + ldr r5, =gPlayerAvatar movs r0, 0x1 strb r0, [r5, 0x6] adds r0, r4, 0 @@ -3721,7 +3721,7 @@ _0808C5E2: ldrsh r2, [r4, r0] lsls r2, 2 adds r2, r5 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r0, [r0, 0x5] lsls r1, r0, 3 adds r1, r0 @@ -3749,7 +3749,7 @@ sub_808C61C: @ 808C61C ldrb r1, [r1, 0x18] lsrs r1, 4 strh r1, [r0, 0xA] - ldr r1, =gUnknown_02037590 + ldr r1, =gPlayerAvatar movs r0, 0x1 strb r0, [r1, 0x6] bl ScriptContext2_Enable @@ -3873,7 +3873,7 @@ sub_808C6FC: @ 808C6FC adds r0, r5, 0 bl FieldObjectSetSpecialAnim bl ScriptContext2_Disable - ldr r1, =gUnknown_02037590 + ldr r1, =gPlayerAvatar movs r0, 0 strb r0, [r1, 0x6] ldr r0, =sub_808C5D0 @@ -3898,7 +3898,7 @@ sub_808C750: @ 808C750 bl ScriptContext2_Enable bl sav1_reset_battle_music_maybe bl sub_8085898 - ldr r2, =gUnknown_02037590 + ldr r2, =gPlayerAvatar ldrb r1, [r2] movs r0, 0xF7 ands r0, r1 @@ -3931,7 +3931,7 @@ taskFF_0805D1D4: @ 808C7A8 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -3978,7 +3978,7 @@ sub_808C814: @ 808C814 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 - ldr r6, =gUnknown_02037590 + ldr r6, =gPlayerAvatar ldrb r1, [r6, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -4083,7 +4083,7 @@ fish0: @ 808C8F8 push {r4,lr} adds r4, r0, 0 bl ScriptContext2_Enable - ldr r1, =gUnknown_02037590 + ldr r1, =gPlayerAvatar movs r0, 0x1 strb r0, [r1, 0x6] ldrh r0, [r4, 0x8] @@ -4128,7 +4128,7 @@ fish1: @ 808C918 adds r1, r0 strh r1, [r5, 0x22] ldr r3, =gMapObjects - ldr r2, =gUnknown_02037590 + ldr r2, =gPlayerAvatar ldrb r1, [r2, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -4366,7 +4366,7 @@ _0808CB30: _0808CB32: cmp r6, 0x1 bne _0808CB5C - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r0, [r0, 0x4] lsls r4, r0, 4 adds r4, r0 @@ -4396,7 +4396,7 @@ fish6: @ 808CB6C sub sp, 0xC adds r5, r0, 0 bl sub_808CF78 - ldr r2, =gUnknown_085EE8F7 + ldr r2, =gText_OhABite movs r0, 0x11 str r0, [sp] movs r4, 0 @@ -4526,7 +4526,7 @@ fish9: @ 808CC64 movs r0, 0 movs r1, 0x11 bl FillWindowPixelBuffer - ldr r2, =gUnknown_085EE903 + ldr r2, =gText_PokemonOnHook movs r5, 0 str r5, [sp] movs r0, 0x2 @@ -4574,7 +4574,7 @@ _0808CCBC: lsrs r6, r0, 16 cmp r6, 0 bne _0808CD50 - ldr r7, =gUnknown_02037590 + ldr r7, =gPlayerAvatar ldrb r0, [r7, 0x5] lsls r4, r0, 3 adds r4, r0 @@ -4633,7 +4633,7 @@ _0808CD50: cmp r0, 0 beq _0808CD80 _0808CD58: - ldr r1, =gUnknown_02037590 + ldr r1, =gPlayerAvatar movs r0, 0 strb r0, [r1, 0x6] bl ScriptContext2_Disable @@ -4664,7 +4664,7 @@ fishB: @ 808CD94 sub sp, 0x10 adds r5, r0, 0 bl sub_808CF78 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r0, [r0, 0x4] lsls r4, r0, 4 adds r4, r0 @@ -4683,7 +4683,7 @@ fishB: @ 808CD94 movs r0, 0 movs r1, 0x11 bl FillWindowPixelBuffer - ldr r2, =gUnknown_085EE91E + ldr r2, =gText_NotEvenANibble movs r0, 0 str r0, [sp] movs r0, 0x2 @@ -4712,7 +4712,7 @@ fishC: @ 808CE04 sub sp, 0x10 adds r5, r0, 0 bl sub_808CF78 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r0, [r0, 0x4] lsls r4, r0, 4 adds r4, r0 @@ -4731,7 +4731,7 @@ fishC: @ 808CE04 movs r0, 0 movs r1, 0x11 bl FillWindowPixelBuffer - ldr r2, =gUnknown_085EE933 + ldr r2, =gText_ItGotAway movs r0, 0 str r0, [sp] movs r0, 0x2 @@ -4777,7 +4777,7 @@ fishE: @ 808CE8C adds r6, r0, 0 bl sub_808CF78 ldr r7, =gSprites - ldr r5, =gUnknown_02037590 + ldr r5, =gPlayerAvatar ldrb r0, [r5, 0x4] lsls r1, r0, 4 adds r1, r0 @@ -4855,7 +4855,7 @@ fishF: @ 808CF2C lsrs r1, r0, 16 cmp r1, 0 bne _0808CF68 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar strb r1, [r0, 0x6] bl ScriptContext2_Disable bl sub_809757C @@ -4879,7 +4879,7 @@ _0808CF68: thumb_func_start sub_808CF78 sub_808CF78: @ 808CF78 push {r4-r7,lr} - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x4] lsls r0, r1, 4 adds r0, r1 @@ -4978,7 +4978,7 @@ _0808D02A: movs r0, 0x8 strh r0, [r4, 0x26] _0808D03A: - ldr r3, =gUnknown_02037590 + ldr r3, =gPlayerAvatar ldrb r1, [r3] movs r0, 0x8 ands r0, r1 @@ -5032,7 +5032,7 @@ sub_808D094: @ 808D094 lsls r0, 24 lsrs r0, 24 adds r2, r0, 0 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -5212,7 +5212,7 @@ sub_808D1FC: @ 808D1FC lsls r0, 24 lsrs r0, 24 mov r8, r0 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 diff --git a/asm/field_poison.s b/asm/field_poison.s index 8948b2762..5b1e24719 100644 --- a/asm/field_poison.s +++ b/asm/field_poison.s @@ -216,7 +216,7 @@ _080F96F0: _080F96FC: ldrb r0, [r4, 0x2] bl sub_80F95C0 - ldr r0, =gUnknown_085ECF5D + ldr r0, =gText_PkmnFainted3 bl box_related_two__2 ldrh r0, [r4] adds r0, 0x1 diff --git a/asm/field_region_map.s b/asm/field_region_map.s index fc0a38de6..512dfb151 100644 --- a/asm/field_region_map.s +++ b/asm/field_region_map.s @@ -157,7 +157,7 @@ _08170300: movs r2, 0x27 movs r3, 0xD bl SetWindowBorderStyle - ldr r5, =gUnknown_085EE8F1 + ldr r5, =gText_Hoenn movs r0, 0x1 adds r1, r5, 0 movs r2, 0x38 diff --git a/asm/field_screen.s b/asm/field_screen.s index e30408654..0de68b86b 100644 --- a/asm/field_screen.s +++ b/asm/field_screen.s @@ -8248,7 +8248,7 @@ sub_80AF334: @ 80AF334 lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 - bl sub_8088EFC + bl MetatileBehavior_IsDoor lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -8258,7 +8258,7 @@ sub_80AF334: @ 80AF334 .pool _080AF36C: adds r0, r4, 0 - bl sub_8088F58 + bl MetatileBehavior_IsNonAnimDoor lsls r0, 24 lsrs r0, 24 ldr r1, =task_map_chg_seq_0807E2CC @@ -8725,7 +8725,7 @@ sub_80AF734: @ 80AF734 bl play_some_sound movs r0, 0x9 bl PlaySE - ldr r0, =gUnknown_03005DAC + ldr r0, =gFieldCallback ldr r1, =mapldr_default str r1, [r0] ldr r0, =sub_80AFA0C @@ -8743,7 +8743,7 @@ sp13E_warp_to_last_warp: @ 80AF76C bl music_something bl sub_80AF0B4 bl play_some_sound - ldr r0, =gUnknown_03005DAC + ldr r0, =gFieldCallback ldr r1, =mapldr_default str r1, [r0] ldr r0, =sub_80AFA0C @@ -8763,7 +8763,7 @@ sub_80AF79C: @ 80AF79C movs r1, 0x8 bl fade_screen bl play_some_sound - ldr r0, =gUnknown_03005DAC + ldr r0, =gFieldCallback ldr r1, =sub_80AF3B0 str r1, [r0] ldr r0, =sub_80AFA0C @@ -8778,7 +8778,7 @@ sub_80AF79C: @ 80AF79C sub_80AF7D0: @ 80AF7D0 push {lr} bl ScriptContext2_Enable - ldr r0, =gUnknown_03005DAC + ldr r0, =gFieldCallback ldr r1, =mapldr_default str r1, [r0] ldr r0, =sub_80AFA88 @@ -8793,7 +8793,7 @@ sub_80AF7D0: @ 80AF7D0 sp13F_fall_to_last_warp: @ 80AF7F4 push {lr} bl sp13E_warp_to_last_warp - ldr r1, =gUnknown_03005DAC + ldr r1, =gFieldCallback ldr r0, =sub_80B6B68 str r0, [r1] pop {r0} @@ -8847,7 +8847,7 @@ sub_80AF848: @ 80AF848 ldr r0, =sub_80AFA0C movs r1, 0xA bl CreateTask - ldr r1, =gUnknown_03005DAC + ldr r1, =gFieldCallback ldr r0, =sub_80AF3E8 str r0, [r1] pop {r0} @@ -8869,7 +8869,7 @@ sub_80AF87C: @ 80AF87C ldr r0, =sub_80AFA0C movs r1, 0xA bl CreateTask - ldr r1, =gUnknown_03005DAC + ldr r1, =gFieldCallback ldr r0, =sub_80AF40C str r0, [r1] pop {r0} @@ -8885,7 +8885,7 @@ sub_80AF8B8: @ 80AF8B8 ldr r0, =sub_80AFA0C movs r1, 0xA bl CreateTask - ldr r1, =gUnknown_03005DAC + ldr r1, =gFieldCallback ldr r0, =sub_80FB768 str r0, [r1] pop {r0} @@ -9328,7 +9328,7 @@ sub_80AFC60: @ 80AFC60 bl play_some_sound movs r0, 0x9 bl PlaySE - ldr r0, =gUnknown_03005DAC + ldr r0, =gFieldCallback ldr r1, =sub_80AF3C8 str r1, [r0] ldr r0, =task0A_fade_n_map_maybe @@ -10078,7 +10078,7 @@ sub_80B0244: @ 80B0244 ldr r0, =sub_80AFA0C movs r1, 0xA bl CreateTask - ldr r1, =gUnknown_03005DAC + ldr r1, =gFieldCallback ldr r0, =sub_80AF3E8 str r0, [r1] pop {r0} @@ -10090,7 +10090,7 @@ sub_80B0244: @ 80B0244 sub_80B0268: @ 80B0268 push {lr} bl ScriptContext2_Enable - ldr r0, =gUnknown_03005DAC + ldr r0, =gFieldCallback ldr r1, =mapldr_default str r1, [r0] ldr r0, =sub_80B01BC diff --git a/asm/field_tasks.s b/asm/field_tasks.s index 0abd11da4..6f8174fd8 100644 --- a/asm/field_tasks.s +++ b/asm/field_tasks.s @@ -221,7 +221,7 @@ sub_809DA30: @ 809DA30 lsls r1, 24 lsrs r4, r1, 24 adds r0, r4, 0 - bl sub_8089764 + bl MetatileBehavior_IsPacifilogVerticalLog1 lsls r0, 24 cmp r0, 0 beq _0809DA48 @@ -229,7 +229,7 @@ sub_809DA30: @ 809DA30 b _0809DA80 _0809DA48: adds r0, r4, 0 - bl sub_8089778 + bl MetatileBehavior_IsPacifilogVerticalLog2 lsls r0, 24 cmp r0, 0 beq _0809DA5A @@ -238,7 +238,7 @@ _0809DA48: b _0809DA80 _0809DA5A: adds r0, r4, 0 - bl sub_808978C + bl MetatileBehavior_IsPacifilogHorizontalLog1 lsls r0, 24 cmp r0, 0 beq _0809DA6C @@ -247,7 +247,7 @@ _0809DA5A: b _0809DA80 _0809DA6C: adds r0, r4, 0 - bl sub_80897A0 + bl MetatileBehavior_IsPacifilogHorizontalLog2 lsls r0, 24 cmp r0, 0 bne _0809DA7C @@ -414,7 +414,7 @@ sub_809DB7C: @ 809DB7C lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 - bl sub_8089764 + bl MetatileBehavior_IsPacifilogVerticalLog1 lsls r0, 24 cmp r0, 0 beq _0809DBC0 @@ -427,7 +427,7 @@ _0809DBBC: b _0809DC08 _0809DBC0: adds r0, r4, 0 - bl sub_8089778 + bl MetatileBehavior_IsPacifilogVerticalLog2 lsls r0, 24 cmp r0, 0 beq _0809DBD8 @@ -439,7 +439,7 @@ _0809DBC0: b _0809DBBC _0809DBD8: adds r0, r4, 0 - bl sub_808978C + bl MetatileBehavior_IsPacifilogHorizontalLog1 lsls r0, 24 cmp r0, 0 beq _0809DBF0 @@ -451,7 +451,7 @@ _0809DBD8: b _0809DBBC _0809DBF0: adds r0, r4, 0 - bl sub_80897A0 + bl MetatileBehavior_IsPacifilogHorizontalLog2 lsls r0, 24 cmp r0, 0 beq _0809DC06 @@ -496,7 +496,7 @@ sub_809DC18: @ 809DC18 lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 - bl sub_8089764 + bl MetatileBehavior_IsPacifilogVerticalLog1 lsls r0, 24 cmp r0, 0 beq _0809DC5C @@ -509,7 +509,7 @@ _0809DC58: b _0809DCA4 _0809DC5C: adds r0, r4, 0 - bl sub_8089778 + bl MetatileBehavior_IsPacifilogVerticalLog2 lsls r0, 24 cmp r0, 0 beq _0809DC74 @@ -521,7 +521,7 @@ _0809DC5C: b _0809DC58 _0809DC74: adds r0, r4, 0 - bl sub_808978C + bl MetatileBehavior_IsPacifilogHorizontalLog1 lsls r0, 24 cmp r0, 0 beq _0809DC8C @@ -533,7 +533,7 @@ _0809DC74: b _0809DC58 _0809DC8C: adds r0, r4, 0 - bl sub_80897A0 + bl MetatileBehavior_IsPacifilogHorizontalLog2 lsls r0, 24 cmp r0, 0 beq _0809DCA2 @@ -1326,7 +1326,7 @@ _0809E29A: lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 - bl sub_8089604 + bl MetatileBehavior_IsThinIce lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1341,7 +1341,7 @@ _0809E29A: .pool _0809E2E0: adds r0, r4, 0 - bl sub_8089618 + bl MetatileBehavior_IsCrackedIce lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1630,7 +1630,7 @@ _0809E53E: lsls r0, r6, 24 lsrs r6, r0, 24 adds r0, r6, 0 - bl sub_8089918 + bl MetatileBehavior_IsCrackedFloorHole lsls r0, 24 cmp r0, 0 beq _0809E556 @@ -1658,7 +1658,7 @@ _0809E572: ldrh r0, [r4] strh r0, [r5, 0x6] adds r0, r6, 0 - bl sub_808992C + bl MetatileBehavior_IsCrackedFloor lsls r0, 24 cmp r0, 0 beq _0809E5D2 @@ -1858,7 +1858,7 @@ _0809E6F8: cmp r6, 0xD ble _0809E6F8 _0809E708: - ldr r2, =gUnknown_02037334 + ldr r2, =gCamera ldrb r1, [r2] movs r0, 0x1 ands r0, r1 diff --git a/asm/fieldmap.s b/asm/fieldmap.s index d2416248f..dbb8a3fa3 100644 --- a/asm/fieldmap.s +++ b/asm/fieldmap.s @@ -1508,12 +1508,12 @@ CameraMove: @ 808887C push {r5-r7} mov r10, r0 mov r9, r1 - ldr r1, =gUnknown_02037334 + ldr r1, =gCamera ldrb r0, [r1] movs r1, 0x2 negs r1, r1 ands r1, r0 - ldr r2, =gUnknown_02037334 + ldr r2, =gCamera strb r1, [r2] mov r0, r10 mov r1, r9 @@ -1556,23 +1556,23 @@ _080888C4: ldrb r0, [r4, 0x8] ldrb r1, [r4, 0x9] bl mliX_load_map - ldr r1, =gUnknown_02037334 + ldr r1, =gCamera ldrb r0, [r1] movs r1, 0x1 orrs r0, r1 - ldr r2, =gUnknown_02037334 + ldr r2, =gCamera strb r0, [r2] ldr r0, =gSaveBlock1Ptr ldr r1, [r0] movs r2, 0 ldrsh r0, [r1, r2] subs r5, r0 - ldr r0, =gUnknown_02037334 + ldr r0, =gCamera str r5, [r0, 0x4] movs r2, 0x2 ldrsh r0, [r1, r2] subs r6, r0 - ldr r0, =gUnknown_02037334 + ldr r0, =gCamera str r6, [r0, 0x8] ldrh r0, [r1] add r0, r10 @@ -1583,7 +1583,7 @@ _080888C4: mov r0, r8 bl sub_80885C4 _08088932: - ldr r0, =gUnknown_02037334 + ldr r0, =gCamera ldrb r0, [r0] lsls r0, 31 lsrs r0, 31 diff --git a/asm/fldeff_80F9BCC.s b/asm/fldeff_80F9BCC.s index f783547e1..3ad2a398b 100644 --- a/asm/fldeff_80F9BCC.s +++ b/asm/fldeff_80F9BCC.s @@ -480,13 +480,13 @@ sub_80F9F5C: @ 80F9F5C thumb_func_start sub_80F9F78 sub_80F9F78: @ 80F9F78 push {lr} - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0] movs r0, 0x6 ands r0, r1 cmp r0, 0 beq _080F9FC0 - ldr r1, =gUnknown_02038C08 + ldr r1, =gFieldEffectSpawnParams ldr r0, [r1, 0x4] cmp r0, 0x2 beq _080F9FAE @@ -517,7 +517,7 @@ _080F9FB6: movs r0, 0x18 b _080F9FFC _080F9FC0: - ldr r1, =gUnknown_02038C08 + ldr r1, =gFieldEffectSpawnParams ldr r0, [r1, 0x4] cmp r0, 0x2 beq _080F9FEA @@ -584,7 +584,7 @@ sub_80FA004: @ 80FA004 lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 - bl sub_808923C + bl MetatileBehavior_IsSecretBaseCave lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -599,7 +599,7 @@ sub_80FA004: @ 80FA004 .pool _080FA070: adds r0, r4, 0 - bl sub_808925C + bl MetatileBehavior_IsSecretBaseTree lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -614,7 +614,7 @@ _080FA070: .pool _080FA0A0: adds r0, r4, 0 - bl is_tile_x98 + bl MetatileBehavior_IsSecretBaseShrub lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -643,7 +643,7 @@ _080FA0C4: sub_80FA0DC: @ 80FA0DC push {lr} bl brm_get_pokemon_selection - ldr r1, =gUnknown_02038C08 + ldr r1, =gFieldEffectSpawnParams lsls r0, 24 lsrs r0, 24 str r0, [r1] @@ -692,7 +692,7 @@ sub_80FA13C: @ 80FA13C bl sub_80F9F78 ldr r0, =gUnknown_0858E600 ldr r3, =gSprites - ldr r1, =gUnknown_02037590 + ldr r1, =gPlayerAvatar ldrb r1, [r1, 0x4] lsls r2, r1, 4 adds r2, r1 @@ -701,7 +701,7 @@ sub_80FA13C: @ 80FA13C ldrh r1, [r2, 0x2] lsls r1, 23 lsrs r1, 23 - ldr r4, =gUnknown_02038C08 + ldr r4, =gFieldEffectSpawnParams ldr r3, [r4, 0x14] adds r1, r3 lsls r1, 16 @@ -778,7 +778,7 @@ sub_80FA1D8: @ 80FA1D8 sub_80FA1E8: @ 80FA1E8 push {lr} bl brm_get_pokemon_selection - ldr r1, =gUnknown_02038C08 + ldr r1, =gFieldEffectSpawnParams lsls r0, 24 lsrs r0, 24 str r0, [r1] @@ -836,20 +836,20 @@ sub_80FA248: @ 80FA248 ands r2, r0 cmp r2, 0x96 bne _080FA26A - ldr r1, =gUnknown_02038C08 + ldr r1, =gFieldEffectSpawnParams movs r0, 0 str r0, [r1, 0x1C] _080FA26A: cmp r2, 0x9C bne _080FA274 - ldr r1, =gUnknown_02038C08 + ldr r1, =gFieldEffectSpawnParams movs r0, 0x2 str r0, [r1, 0x1C] _080FA274: bl sub_80F9F78 ldr r0, =gUnknown_0858E618 ldr r3, =gSprites - ldr r1, =gUnknown_02037590 + ldr r1, =gPlayerAvatar ldrb r1, [r1, 0x4] lsls r2, r1, 4 adds r2, r1 @@ -858,7 +858,7 @@ _080FA274: ldrh r1, [r2, 0x2] lsls r1, 23 lsrs r1, 23 - ldr r4, =gUnknown_02038C08 + ldr r4, =gFieldEffectSpawnParams ldr r3, [r4, 0x14] adds r1, r3 lsls r1, 16 @@ -891,7 +891,7 @@ sub_80FA2D8: @ 80FA2D8 adds r4, r0, 0 movs r0, 0x9B bl PlaySE - ldr r0, =gUnknown_02038C08 + ldr r0, =gFieldEffectSpawnParams ldr r1, [r0, 0x1C] adds r2, r4, 0 adds r2, 0x2A @@ -917,7 +917,7 @@ sub_80FA304: @ 80FA304 asrs r0, 16 cmp r0, 0x27 ble _080FA32E - ldr r0, =gUnknown_02038C08 + ldr r0, =gFieldEffectSpawnParams ldr r0, [r0, 0x1C] cmp r0, 0 beq _080FA322 @@ -951,7 +951,7 @@ sub_80FA33C: @ 80FA33C sub_80FA34C: @ 80FA34C push {lr} bl brm_get_pokemon_selection - ldr r1, =gUnknown_02038C08 + ldr r1, =gFieldEffectSpawnParams lsls r0, 24 lsrs r0, 24 str r0, [r1] @@ -1000,7 +1000,7 @@ sub_80FA3AC: @ 80FA3AC bl sub_80F9F78 ldr r0, =gUnknown_0858E630 ldr r3, =gSprites - ldr r1, =gUnknown_02037590 + ldr r1, =gPlayerAvatar ldrb r1, [r1, 0x4] lsls r2, r1, 4 adds r2, r1 @@ -1009,7 +1009,7 @@ sub_80FA3AC: @ 80FA3AC ldrh r1, [r2, 0x2] lsls r1, 23 lsrs r1, 23 - ldr r4, =gUnknown_02038C08 + ldr r4, =gFieldEffectSpawnParams ldr r3, [r4, 0x14] adds r1, r3 lsls r1, 16 @@ -1723,7 +1723,7 @@ sub_80FA9D0: @ 80FA9D0 push {r4,lr} sub sp, 0x4 ldr r3, =gMapObjects - ldr r2, =gUnknown_02037590 + ldr r2, =gPlayerAvatar ldrb r1, [r2, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -1807,7 +1807,7 @@ sub_80FAA7C: @ 80FAA7C mov r0, sp adds r1, r4, 0 bl GetXYCoordsOneStepInFrontOfPlayer - ldr r1, =gUnknown_02038C08 + ldr r1, =gFieldEffectSpawnParams mov r0, sp movs r2, 0 ldrsh r0, [r0, r2] @@ -1835,7 +1835,7 @@ _080FAABC: _080FAAC6: ldr r0, =gUnknown_0858E68C ldr r3, =gSprites - ldr r1, =gUnknown_02037590 + ldr r1, =gPlayerAvatar ldrb r1, [r1, 0x4] lsls r2, r1, 4 adds r2, r1 @@ -1857,7 +1857,7 @@ _080FAAC6: _080FAAFC: ldr r0, =gUnknown_0858E68C ldr r3, =gSprites - ldr r1, =gUnknown_02037590 + ldr r1, =gPlayerAvatar ldrb r1, [r1, 0x4] lsls r2, r1, 4 adds r2, r1 @@ -1876,7 +1876,7 @@ _080FAAFC: _080FAB2C: ldr r0, =gUnknown_0858E68C ldr r3, =gSprites - ldr r1, =gUnknown_02037590 + ldr r1, =gPlayerAvatar ldrb r1, [r1, 0x4] lsls r2, r1, 4 adds r2, r1 @@ -1898,7 +1898,7 @@ _080FAB4C: _080FAB64: ldr r0, =gUnknown_0858E68C ldr r3, =gSprites - ldr r1, =gUnknown_02037590 + ldr r1, =gPlayerAvatar ldrb r1, [r1, 0x4] lsls r2, r1, 4 adds r2, r1 @@ -1930,7 +1930,7 @@ door_restore_tilemap: @ 80FABA4 adds r5, r0, 0 movs r0, 0x83 bl PlaySE - ldr r4, =gUnknown_02038C08 + ldr r4, =gFieldEffectSpawnParams ldr r0, [r4, 0x14] ldr r1, [r4, 0x18] subs r1, 0x1 @@ -1953,7 +1953,7 @@ _080FABDC: lsls r2, 2 bl MapGridSetMetatileIdAt _080FABEA: - ldr r4, =gUnknown_02038C08 + ldr r4, =gFieldEffectSpawnParams ldr r0, [r4, 0x14] ldr r1, [r4, 0x18] ldr r2, =0x0000020a @@ -1988,7 +1988,7 @@ sub_80FAC24: @ 80FAC24 strh r0, [r5, 0x2E] b _080FAC54 _080FAC38: - ldr r4, =gUnknown_02038C08 + ldr r4, =gFieldEffectSpawnParams ldr r0, [r4, 0x14] ldr r1, [r4, 0x18] ldr r2, =0x00000e8c @@ -2061,7 +2061,7 @@ _080FACC2: movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r0, =gStringVar2 - ldr r1, =gUnknown_085EA88B + ldr r1, =gText_Gold bl StringCopy ldr r1, =gScriptResult movs r0, 0 @@ -2085,7 +2085,7 @@ _080FAD14: movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r0, =gStringVar2 - ldr r1, =gUnknown_085EA890 + ldr r1, =gText_Silver bl StringCopy ldr r1, =gScriptResult movs r0, 0 @@ -2307,7 +2307,7 @@ sub_80FAEF0: @ 80FAEF0 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -2357,7 +2357,7 @@ sub_80FAF64: @ 80FAF64 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 diff --git a/asm/fldeff_cut.s b/asm/fldeff_cut.s index dc962ef61..7f67185a9 100755 --- a/asm/fldeff_cut.s +++ b/asm/fldeff_cut.s @@ -130,7 +130,7 @@ _080D37F6: lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 - bl sub_8088E64 + bl MetatileBehavior_IsPokeGrass lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -175,7 +175,7 @@ _080D3890: movs r0, 0x1 strb r0, [r1] adds r0, r4, 0 - bl sub_80899F8 + bl MetatileBehavior_IsCuttableGrass lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x1 @@ -309,7 +309,7 @@ _080D395A: lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 - bl sub_8088E64 + bl MetatileBehavior_IsPokeGrass lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -339,7 +339,7 @@ _080D39F4: b _080D395A _080D39F8: adds r0, r4, 0 - bl sub_80899F8 + bl MetatileBehavior_IsCuttableGrass lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x1 @@ -385,7 +385,7 @@ hm2_ruin_valley: @ 80D3A50 movs r0, 0x1 bl FieldEffectStart bl brm_get_pokemon_selection - ldr r1, =gUnknown_02038C08 + ldr r1, =gFieldEffectSpawnParams lsls r0, 24 lsrs r0, 24 str r0, [r1] @@ -421,7 +421,7 @@ sub_80D3A6C: @ 80D3A6C sub_80D3A9C: @ 80D3A9C push {lr} bl brm_get_pokemon_selection - ldr r1, =gUnknown_02038C08 + ldr r1, =gFieldEffectSpawnParams lsls r0, 24 lsrs r0, 24 str r0, [r1] @@ -542,7 +542,7 @@ _080D3B64: movs r6, 0 ldr r5, =gSprites _080D3BA0: - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x4] lsls r0, r1, 4 adds r0, r1 @@ -1344,7 +1344,7 @@ sub_80D423C: @ 80D423C bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 - bl MetatileBehavior_IsLongGrass2 + bl MetatileBehavior_IsLongGrass_Duplicate lsls r0, 24 cmp r0, 0 beq _080D42AE diff --git a/asm/fldeff_emotion.s b/asm/fldeff_emotion.s index f8b66da0d..37096a438 100644 --- a/asm/fldeff_emotion.s +++ b/asm/fldeff_emotion.s @@ -115,7 +115,7 @@ sub_80B46D8: @ 80B46D8 orrs r3, r4 mov r4, r12 strb r3, [r4] - ldr r4, =gUnknown_02038C08 + ldr r4, =gFieldEffectSpawnParams ldr r3, [r4] strh r3, [r0, 0x2E] ldr r3, [r4, 0x4] @@ -296,7 +296,7 @@ sub_80B4808: @ 80B4808 b _080B489E .pool _080B4870: - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 diff --git a/asm/fldeff_groundshake.s b/asm/fldeff_groundshake.s index 8fcdc0396..cb0d2e2d8 100755 --- a/asm/fldeff_groundshake.s +++ b/asm/fldeff_groundshake.s @@ -235,7 +235,7 @@ sub_81BE808: @ 81BE808 ldrh r1, [r0, 0x26] adds r1, 0x4 strh r1, [r0, 0x26] - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r0, [r0, 0x5] lsls r1, r0, 3 adds r1, r0 diff --git a/asm/fldeff_softboiled.s b/asm/fldeff_softboiled.s index 2de098970..48d968d20 100755 --- a/asm/fldeff_softboiled.s +++ b/asm/fldeff_softboiled.s @@ -221,7 +221,7 @@ sub_81616C0: @ 81616C0 ldr r1, =gStringVar1 bl GetMonNickname ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E9C17 + ldr r1, =gText_PkmnHPRestoredByVar2 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 @@ -318,7 +318,7 @@ sub_81617B8: @ 81617B8 lsrs r4, 24 movs r0, 0x5 bl PlaySE - ldr r0, =gUnknown_085E9712 + ldr r0, =gText_CantBeUsedOnPkmn movs r1, 0 bl sub_81B1B5C movs r0, 0x2 diff --git a/asm/fldeff_strength.s b/asm/fldeff_strength.s index 3dc64467e..98764625e 100644 --- a/asm/fldeff_strength.s +++ b/asm/fldeff_strength.s @@ -40,7 +40,7 @@ _08145DF2: sub_8145E0C: @ 8145E0C push {lr} bl brm_get_pokemon_selection - ldr r1, =gUnknown_02038C08 + ldr r1, =gFieldEffectSpawnParams lsls r0, 24 lsrs r0, 24 str r0, [r1] @@ -66,7 +66,7 @@ sub_8145E2C: @ 8145E2C lsrs r0, r2, 16 strh r0, [r1, 0x18] strh r2, [r1, 0x1A] - ldr r0, =gUnknown_02038C08 + ldr r0, =gFieldEffectSpawnParams ldr r1, [r0] movs r0, 0x64 muls r0, r1 diff --git a/asm/fldeff_sweetscent.s b/asm/fldeff_sweetscent.s index a297dd41d..5c83b455d 100644 --- a/asm/fldeff_sweetscent.s +++ b/asm/fldeff_sweetscent.s @@ -24,7 +24,7 @@ hm2_sweet_scent: @ 8159F10 movs r0, 0x33 bl FieldEffectStart bl brm_get_pokemon_selection - ldr r1, =gUnknown_02038C08 + ldr r1, =gFieldEffectSpawnParams lsls r0, 24 lsrs r0, 24 str r0, [r1] @@ -217,4 +217,4 @@ _0815A0BE: thumb_func_end sub_815A090 .align 2, 0 @ Don't pad with nop. - \ No newline at end of file + diff --git a/asm/fldeff_teleport.s b/asm/fldeff_teleport.s index f3dc3ec9b..e4f4bce42 100644 --- a/asm/fldeff_teleport.s +++ b/asm/fldeff_teleport.s @@ -39,7 +39,7 @@ hm_teleport_run_dp02scr: @ 817C8FC movs r0, 0x3F bl FieldEffectStart bl brm_get_pokemon_selection - ldr r1, =gUnknown_02038C08 + ldr r1, =gFieldEffectSpawnParams lsls r0, 24 lsrs r0, 24 str r0, [r1] diff --git a/asm/intro.s b/asm/intro.s index efd52e7fd..cd8f7c2d8 100644 --- a/asm/intro.s +++ b/asm/intro.s @@ -376,11 +376,11 @@ task_intro_1: @ 816CF18 movs r0, 0x12 movs r1, 0x28 bl SetGpuReg - ldr r0, =gUnknown_085E13B4 + ldr r0, =gIntro1BGLeavesGfx movs r1, 0xC0 lsls r1, 19 bl LZ77UnCompVram - ldr r0, =gUnknown_085E07C4 + ldr r0, =gIntro1BG0_Tilemap ldr r1, =0x06008000 bl LZ77UnCompVram ldr r1, =0x06008800 @@ -393,7 +393,7 @@ task_intro_1: @ 816CF18 ldr r5, =0x81000400 str r5, [r4, 0x8] ldr r0, [r4, 0x8] - ldr r0, =gUnknown_085E0B78 + ldr r0, =gIntro1BG1_Tilemap ldr r1, =0x06009000 bl LZ77UnCompVram ldr r1, =0x06009800 @@ -403,7 +403,7 @@ task_intro_1: @ 816CF18 str r1, [r4, 0x4] str r5, [r4, 0x8] ldr r0, [r4, 0x8] - ldr r0, =gUnknown_085E0EAC + ldr r0, =gIntro1BG2_Tilemap ldr r1, =0x0600a000 bl LZ77UnCompVram ldr r1, =0x0600a800 @@ -413,7 +413,7 @@ task_intro_1: @ 816CF18 str r1, [r4, 0x4] str r5, [r4, 0x8] ldr r0, [r4, 0x8] - ldr r0, =gUnknown_085E119C + ldr r0, =gIntro1BG3_Tilemap ldr r1, =0x0600b000 bl LZ77UnCompVram ldr r1, =0x0600b800 @@ -423,7 +423,7 @@ task_intro_1: @ 816CF18 str r1, [r4, 0x4] str r5, [r4, 0x8] ldr r0, [r4, 0x8] - ldr r0, =gUnknown_085E05C4 + ldr r0, =gIntro1BGPals movs r5, 0x80 lsls r5, 2 movs r1, 0 @@ -1779,14 +1779,14 @@ task_intro_10: @ 816DBAC lsls r5, 24 lsrs r5, 24 bl intro_reset_and_hide_bgs - ldr r0, =gUnknown_085E3854 + ldr r0, =gIntro3Pokeball_Gfx movs r1, 0xC0 lsls r1, 19 bl LZ77UnCompVram - ldr r0, =gUnknown_085E3724 + ldr r0, =gIntro3Pokeball_Tilemap ldr r1, =0x06004000 bl LZ77UnCompVram - ldr r0, =gUnknown_085E3524 + ldr r0, =gIntro3PokeballPal movs r2, 0x80 lsls r2, 2 movs r1, 0 diff --git a/asm/item_menu.s b/asm/item_menu.s index 914fdf2b3..c1f94b4e9 100755 --- a/asm/item_menu.s +++ b/asm/item_menu.s @@ -437,7 +437,7 @@ _081AAF0C: b _081AB012 .pool _081AAF1C: - ldr r1, =gPocketNames + ldr r1, =gPocketNamesStringsTable ldr r4, =gUnknown_0203CE58 ldrb r0, [r4, 0x5] lsls r0, 2 @@ -972,7 +972,7 @@ _081AB3C0: movs r2, 0x2 movs r3, 0x1 bl ConvertIntToDecimalStringN - ldr r1, =gUnknown_085E921A + ldr r1, =gText_ClearTo11Var1Clear5Var2 b _081AB438 .pool _081AB408: @@ -995,7 +995,7 @@ _081AB420: adds r0, r5, 0 bl CopyItemName _081AB436: - ldr r1, =gUnknown_085E9210 + ldr r1, =gText_UnkF908Var1Clear7Var2 _081AB438: adds r0, r6, 0 bl StringExpandPlaceholders @@ -1297,7 +1297,7 @@ bag_menu_print_description_box_text: @ 81AB6B0 .pool _081AB6E0: ldr r0, =gStringVar1 - ldr r2, =gUnknown_085E9180 + ldr r2, =gReturnToXStringsTable ldr r1, =gUnknown_0203CE58 ldrb r1, [r1, 0x4] lsls r1, 2 @@ -2423,7 +2423,7 @@ _081AC026: adds r5, r0, 0 cmp r1, 0x1 bne _081AC07C - ldr r2, =gPocketNames + ldr r2, =gPocketNamesStringsTable ldrb r0, [r4, 0x5] lsls r0, 2 adds r0, r2 @@ -2439,7 +2439,7 @@ _081AC026: b _081AC09A .pool _081AC07C: - ldr r2, =gPocketNames + ldr r2, =gPocketNamesStringsTable add r0, sp, 0x8 ldrb r0, [r0] lsls r0, 2 @@ -4808,7 +4808,7 @@ display_sell_item_ask_str: @ 81AD5DC ldr r1, =gStringVar2 bl CopyItemName ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E960F + ldr r1, =gText_CantBuyKeyItem adds r0, r4, 0 bl StringExpandPlaceholders ldr r3, =bag_menu_inits_lists_menu @@ -4834,7 +4834,7 @@ _081AD64C: ldr r1, =gStringVar2 bl CopyItemName ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E962F + ldr r1, =gText_HowManyToSell adds r0, r4, 0 bl StringExpandPlaceholders ldr r3, =sub_81AD730 @@ -4874,7 +4874,7 @@ sub_81AD680: @ 81AD680 movs r3, 0x6 bl ConvertIntToDecimalStringN ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E9654 + ldr r1, =gText_ICanPayVar1 adds r0, r4, 0 bl StringExpandPlaceholders ldr r3, =sub_81AD6E4 @@ -5079,7 +5079,7 @@ sub_81AD84C: @ 81AD84C movs r3, 0x6 bl ConvertIntToDecimalStringN ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E9677 + ldr r1, =gText_TurnedOverVar1ForVar2 adds r0, r4, 0 bl StringExpandPlaceholders ldr r3, =sub_81AD8C8 @@ -5744,7 +5744,7 @@ unknown_ItemMenu_Show: @ 81ADE38 thumb_func_start bag_menu_leave_maybe_3 bag_menu_leave_maybe_3: @ 81ADE6C push {lr} - ldr r0, =gUnknown_03005DAC + ldr r0, =gFieldCallback ldr r1, =sub_819FA50 str r1, [r0] ldr r0, =c2_exit_to_overworld_2_switch @@ -5779,7 +5779,7 @@ unknown_ItemMenu_Give2: @ 81ADE8C thumb_func_start bag_menu_leave_maybe_2 bag_menu_leave_maybe_2: @ 81ADEBC push {lr} - ldr r0, =gUnknown_03005DAC + ldr r0, =gFieldCallback ldr r1, =sub_818DEF4 str r1, [r0] ldr r0, =c2_exit_to_overworld_2_switch @@ -5810,7 +5810,7 @@ unknown_ItemMenu_Confirm2: @ 81ADEDC thumb_func_start bag_menu_leave_maybe bag_menu_leave_maybe: @ 81ADF00 push {lr} - ldr r0, =gUnknown_03005DAC + ldr r0, =gFieldCallback ldr r1, =sub_818E564 str r1, [r0] ldr r0, =c2_exit_to_overworld_2_switch @@ -6237,7 +6237,7 @@ bag_menu_AddMoney_window: @ 81AE268 adds r0, r4, 0 movs r1, 0x1 movs r2, 0xE - bl set_window_border_style_and_print_money_box + bl PrintMoneyAmountInMoneyBoxWithBorder movs r0, 0x13 movs r1, 0xB bl AddMoneyLabelObject diff --git a/asm/item_use.s b/asm/item_use.s index a2488b6df..42b2d8bc0 100644 --- a/asm/item_use.s +++ b/asm/item_use.s @@ -77,7 +77,7 @@ SetUpItemUseOnFieldCallback: @ 80FD0DC ldrsh r0, [r0, r1] cmp r0, 0x1 beq _080FD110 - ldr r1, =gUnknown_03005DAC + ldr r1, =gFieldCallback ldr r0, =MapPostLoadHook_UseItem str r0, [r1] adds r0, r2, 0 @@ -464,7 +464,7 @@ _080FD3EC: _080FD40C: lsls r0, r6, 24 lsrs r0, 24 - bl sub_8089510 + bl MetatileBehavior_8089510 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1477,7 +1477,7 @@ _080FDB98: b _080FDBDA .pool _080FDBC8: - ldr r0, =gUnknown_03005DAC + ldr r0, =gFieldCallback ldr r1, =sub_80AF6D4 str r1, [r0] movs r0, 0x1 @@ -1630,7 +1630,7 @@ sub_80FDD10: @ 80FDD10 ldr r1, =gUnknown_0203A0F4 ldr r0, =sub_80FDD74 str r0, [r1] - ldr r1, =gUnknown_03005DAC + ldr r1, =gFieldCallback ldr r0, =MapPostLoadHook_UseItem str r0, [r1] ldr r0, =gUnknown_0203CE54 @@ -2510,7 +2510,7 @@ ItemUseInBattle_StatIncrease: @ 80FE4B8 lsls r0, 24 cmp r0, 0 bne _080FE518 - ldr r2, =gUnknown_085E96F6 + ldr r2, =gText_WontHaveEffect ldr r3, =bag_menu_inits_lists_menu adds r0, r4, 0 movs r1, 0x1 @@ -2518,7 +2518,7 @@ ItemUseInBattle_StatIncrease: @ 80FE4B8 b _080FE53C .pool _080FE518: - ldr r1, =gUnknown_085E96F6 + ldr r1, =gText_WontHaveEffect ldr r2, =sub_81C6714 adds r0, r4, 0 bl DisplayItemMessageInBattlePyramid diff --git a/asm/learn_move.s b/asm/learn_move.s index c2ef76350..159b16f7e 100755 --- a/asm/learn_move.s +++ b/asm/learn_move.s @@ -49,7 +49,7 @@ sub_8160664: @ 8160664 bne _08160688 ldr r0, =sub_81606A0 bl SetMainCallback2 - ldr r1, =gUnknown_03005DAC + ldr r1, =gFieldCallback ldr r0, =sub_80AF168 str r0, [r1] adds r0, r4, 0 @@ -377,7 +377,7 @@ _081609A8: ldr r1, =0xffff0000 cmp r0, r1 beq _08160A04 - ldr r0, =gUnknown_085EF8E4 + ldr r0, =gText_PkmnLearnedMove4 bl sub_816084C ldr r1, =gSpecialVar_0x8004 movs r0, 0x1 @@ -471,7 +471,7 @@ _08160AAA: b _08160E88 .pool _08160AB8: - ldr r0, =gUnknown_085EF8F3 + ldr r0, =gText_PkmnTryingToLearnMove bl sub_816084C ldr r0, =gUnknown_0203BC34 ldr r1, [r0] @@ -498,7 +498,7 @@ _08160AEC: asrs r1, r0, 24 cmp r1, 0 bne _08160B10 - ldr r0, =gUnknown_085EFA10 + ldr r0, =gText_WhichMoveToForget2 bl sub_816084C ldr r0, =gUnknown_0203BC34 ldr r1, [r0] @@ -528,7 +528,7 @@ _08160B2C: adds r1, r0 adds r0, r4, 0 bl StringCopy - ldr r0, =gUnknown_085EF960 + ldr r0, =gText_StopTryingToTeachMove bl sub_816084C ldr r0, =gUnknown_0203BC34 ldr r1, [r0] @@ -819,7 +819,7 @@ _08160D6C: adds r1, r6 adds r0, r4, 0 bl StringCopy - ldr r0, =gUnknown_085EF979 + ldr r0, =gText_12AndPoof bl sub_816084C ldr r1, [r7] movs r0, 0x1E @@ -834,7 +834,7 @@ _08160E0C: lsls r0, 16 cmp r0, 0 bne _08160E8A - ldr r0, =gUnknown_085EF9A6 + ldr r0, =gText_PkmnForgotMoveAndLearnedNew bl sub_816084C ldr r0, =gUnknown_0203BC34 ldr r1, [r0] @@ -946,7 +946,7 @@ _08160EF0: cmp r5, 0 bne _08160F38 ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EF8C2 + ldr r1, =gText_TeachWhichMoveToPkmn adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0x3 @@ -1042,7 +1042,7 @@ _08160FE4: movs r0, 0xC strb r0, [r1] ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EF9E6 + ldr r1, =gText_GiveUpTeachingNewMove adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 @@ -1063,7 +1063,7 @@ _08161010: adds r1, r2 bl StringCopy ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EF8DA + ldr r1, =gText_TeachX adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 @@ -1100,7 +1100,7 @@ sub_8161074: @ 8161074 cmp r5, 0 bne _081610A6 ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EF8C2 + ldr r1, =gText_TeachWhichMoveToPkmn adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0x3 diff --git a/asm/librfu.s b/asm/librfu.s index d8ca7538c..129e0f34a 100644 --- a/asm/librfu.s +++ b/asm/librfu.s @@ -2762,7 +2762,7 @@ sub_82E424C: @ 82E424C b _082E4266 .align 2, 0 _082E4254: .4byte gUnknown_089A324C -_082E4258: .4byte gUnknown_030000F0 +_082E4258: .4byte gDma3Requests + 0xE0 thumb_func_end sub_82E424C thumb_func_start sub_82E425C @@ -2810,7 +2810,7 @@ _082E4274: movs r0, 0 b _082E42BE .align 2, 0 -_082E42B0: .4byte gUnknown_030000FA +_082E42B0: .4byte gDma3Requests + 0xEA _082E42B4: .4byte gUnknown_03007890 _082E42B8: .4byte gUnknown_03007894 _082E42BC: diff --git a/asm/lilycove_lady.s b/asm/lilycove_lady.s deleted file mode 100644 index fca8cb29b..000000000 --- a/asm/lilycove_lady.s +++ /dev/null @@ -1,1931 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start GetLilycoveLadyId -GetLilycoveLadyId: @ 818D9AC - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003b58 - adds r0, r1 - ldrb r0, [r0] - bx lr - .pool - thumb_func_end GetLilycoveLadyId - - thumb_func_start sub_818D9C0 -sub_818D9C0: @ 818D9C0 - push {r4,r5,lr} - ldr r5, =0x00004010 - ldr r4, =gUnknown_0860B07E - bl GetLilycoveLadyId - lsls r0, 24 - lsrs r0, 23 - adds r0, r4 - ldrh r1, [r0] - adds r0, r5, 0 - bl VarSet - bl GetLilycoveLadyId - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _0818DA20 - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r0, =0x00003b58 - adds r1, r0 - ldr r0, =0x00004011 - ldr r2, =gUnknown_0860B074 - ldrb r1, [r1, 0xD] - lsls r1, 1 - adds r1, r2 - ldrh r1, [r1] - bl VarSet - ldr r1, =gScriptResult - movs r0, 0x1 - b _0818DA24 - .pool -_0818DA20: - ldr r1, =gScriptResult - movs r0, 0 -_0818DA24: - strh r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818D9C0 - - thumb_func_start SetLilycoveLady -SetLilycoveLady: @ 818DA30 - push {lr} - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r1, [r0, 0xB] - lsls r1, 8 - ldrb r0, [r0, 0xA] - orrs r0, r1 - movs r1, 0x6 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 17 - adds r1, r0, 0 - cmp r0, 0x1 - beq _0818DA68 - cmp r0, 0x1 - bgt _0818DA5C - cmp r0, 0 - beq _0818DA62 - b _0818DA72 - .pool -_0818DA5C: - cmp r1, 0x2 - beq _0818DA6E - b _0818DA72 -_0818DA62: - bl SetLilycoveQuizLady - b _0818DA72 -_0818DA68: - bl SetLilycoveFavourLady - b _0818DA72 -_0818DA6E: - bl SetLilycoveContestLady -_0818DA72: - pop {r0} - bx r0 - thumb_func_end SetLilycoveLady - - thumb_func_start sub_818DA78 -sub_818DA78: @ 818DA78 - push {lr} - bl GetLilycoveLadyId - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0818DA9C - cmp r0, 0x1 - bgt _0818DA90 - cmp r0, 0 - beq _0818DA96 - b _0818DAA6 -_0818DA90: - cmp r0, 0x2 - beq _0818DAA2 - b _0818DAA6 -_0818DA96: - bl sub_818E004 - b _0818DAA6 -_0818DA9C: - bl sub_818DBC4 - b _0818DAA6 -_0818DAA2: - bl sub_818E674 -_0818DAA6: - pop {r0} - bx r0 - thumb_func_end sub_818DA78 - -@ unused - thumb_func_start SetLilycoveLadyRandomly -SetLilycoveLadyRandomly: @ 818DAAC - push {lr} - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x1 - beq _0818DADC - cmp r0, 0x1 - bgt _0818DAD0 - cmp r0, 0 - beq _0818DAD6 - b _0818DAE6 -_0818DAD0: - cmp r1, 0x2 - beq _0818DAE2 - b _0818DAE6 -_0818DAD6: - bl SetLilycoveQuizLady - b _0818DAE6 -_0818DADC: - bl SetLilycoveFavourLady - b _0818DAE6 -_0818DAE2: - bl SetLilycoveContestLady -_0818DAE6: - pop {r0} - bx r0 - thumb_func_end SetLilycoveLadyRandomly - - thumb_func_start sub_818DAEC -sub_818DAEC: @ 818DAEC - push {r4,lr} - ldr r4, =gScriptResult - bl GetLilycoveLadyId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818DAEC - - thumb_func_start sub_818DB04 -sub_818DB04: @ 818DB04 - push {lr} - adds r1, r0, 0 - movs r2, 0 - b _0818DB14 -_0818DB0C: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - adds r1, 0x2 -_0818DB14: - ldrh r0, [r1] - cmp r0, 0 - bne _0818DB0C - adds r0, r2, 0 - pop {r1} - bx r1 - thumb_func_end sub_818DB04 - - thumb_func_start sub_818DB20 -sub_818DB20: @ 818DB20 - push {r4-r6,lr} - bl Random - ldr r5, =gUnknown_0203CD64 - ldr r4, [r5] - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x6 - bl __umodsi3 - strb r0, [r4, 0xC] - ldr r6, =gUnknown_0860B2EC - ldr r0, [r5] - ldrb r0, [r0, 0xC] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - bl sub_818DB04 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r4, 0 - bl __modsi3 - lsls r0, 24 - ldr r2, [r5] - ldrb r1, [r2, 0xC] - lsls r1, 2 - adds r1, r6 - ldr r1, [r1] - lsrs r0, 23 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2, 0x10] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818DB20 - - thumb_func_start SetLilycoveFavourLady -SetLilycoveFavourLady: @ 818DB7C - push {lr} - ldr r2, =gUnknown_0203CD64 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003b58 - adds r0, r1 - str r0, [r2] - movs r3, 0 - movs r1, 0x1 - strb r1, [r0] - ldr r0, [r2] - strb r3, [r0, 0x1] - ldr r1, [r2] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r0, [r2] - strb r3, [r0, 0x2] - ldr r0, [r2] - strb r3, [r0, 0x3] - ldr r1, [r2] - strh r3, [r1, 0xE] - ldr r0, =gGameLanguage - ldrb r0, [r0] - strb r0, [r1, 0x12] - bl sub_818DB20 - pop {r0} - bx r0 - .pool - thumb_func_end SetLilycoveFavourLady - - thumb_func_start sub_818DBC4 -sub_818DBC4: @ 818DBC4 - ldr r3, =gUnknown_0203CD64 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003b58 - adds r0, r1 - str r0, [r3] - movs r2, 0 - movs r1, 0x1 - strb r1, [r0] - ldr r0, [r3] - strb r2, [r0, 0x1] - bx lr - .pool - thumb_func_end sub_818DBC4 - - thumb_func_start sub_818DBE8 -sub_818DBE8: @ 818DBE8 - push {lr} - ldr r1, =gUnknown_0203CD64 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - ldrb r0, [r0, 0x1] - cmp r0, 0x2 - bne _0818DC0C - movs r0, 0x2 - b _0818DC16 - .pool -_0818DC0C: - cmp r0, 0x1 - beq _0818DC14 - movs r0, 0 - b _0818DC16 -_0818DC14: - movs r0, 0x1 -_0818DC16: - pop {r1} - bx r1 - thumb_func_end sub_818DBE8 - - thumb_func_start sub_818DC1C -sub_818DC1C: @ 818DC1C - lsls r0, 24 - ldr r1, =gUnknown_0860B224 - lsrs r0, 22 - adds r0, r1 - ldr r0, [r0] - bx lr - .pool - thumb_func_end sub_818DC1C - - thumb_func_start sub_818DC2C -sub_818DC2C: @ 818DC2C - push {r4,lr} - ldr r1, =gUnknown_0203CD64 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - ldr r4, =gStringVar1 - ldrb r0, [r0, 0xC] - bl sub_818DC1C - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818DC2C - - thumb_func_start sub_818DC60 -sub_818DC60: @ 818DC60 - push {r4,r5,lr} - ldr r5, =gUnknown_0203CD64 - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, =0x00003b58 - adds r0, r1, r2 - str r0, [r5] - ldrb r0, [r0, 0x4] - cmp r0, 0xFF - bne _0818DC84 - movs r0, 0 - b _0818DC9C - .pool -_0818DC84: - ldr r4, =gStringVar3 - ldr r0, =0x00003b5c - adds r1, r0 - adds r0, r4, 0 - bl StringCopy7 - ldr r0, [r5] - ldrb r1, [r0, 0x12] - adds r0, r4, 0 - bl ConvertInternationalString - movs r0, 0x1 -_0818DC9C: - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_818DC60 - - thumb_func_start sub_818DCAC -sub_818DCAC: @ 818DCAC - push {r4,lr} - adds r4, r0, 0 - lsls r0, r1, 16 - lsrs r0, 16 - bl ItemId_GetItem - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_818DCAC - - thumb_func_start sub_818DCC8 -sub_818DCC8: @ 818DCC8 - push {lr} - ldr r2, =gUnknown_0203CD64 - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r0, =0x00003b58 - adds r1, r0 - str r1, [r2] - ldr r0, =gStringVar2 - ldrh r1, [r1, 0xE] - bl sub_818DCAC - pop {r0} - bx r0 - .pool - thumb_func_end sub_818DCC8 - - thumb_func_start sub_818DCF4 -sub_818DCF4: @ 818DCF4 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - adds r0, r4, 0 - movs r1, 0xFF - movs r2, 0x8 - bl memset - adds r0, r4, 0 - adds r1, r5, 0 - bl StringCopy7 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_818DCF4 - - thumb_func_start sub_818DD14 -sub_818DD14: @ 818DD14 - push {r4,r5,lr} - ldr r5, =gUnknown_0203CD64 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r1, r0, r2 - str r1, [r5] - ldr r1, =0x00003b5c - adds r0, r1 - ldr r4, =gStringVar3 - adds r1, r4, 0 - bl sub_818DCF4 - ldr r0, [r5] - ldrb r1, [r0, 0x12] - adds r0, r4, 0 - bl ConvertInternationalString - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818DD14 - - thumb_func_start sub_818DD54 -sub_818DD54: @ 818DD54 - ldr r1, =gUnknown_0203CD64 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - ldrb r1, [r0, 0x2] - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - bx lr - .pool - thumb_func_end sub_818DD54 - - thumb_func_start sub_818DD78 -sub_818DD78: @ 818DD78 - push {lr} - bl sub_81AAC50 - pop {r0} - bx r0 - thumb_func_end sub_818DD78 - - thumb_func_start sub_818DD84 -sub_818DD84: @ 818DD84 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 16 - lsrs r5, r0, 16 - ldr r4, =gUnknown_0203CD64 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003b58 - adds r0, r1 - str r0, [r4] - ldr r1, =gUnknown_0860B2EC - mov r8, r1 - ldrb r0, [r0, 0xC] - lsls r0, 2 - add r0, r8 - ldr r0, [r0] - bl sub_818DB04 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, [r4] - movs r0, 0x1 - strb r0, [r1, 0x1] - ldr r0, =gStringVar2 - adds r1, r5, 0 - bl sub_818DCAC - ldr r1, [r4] - strh r5, [r1, 0xE] - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r1, 0x4 - bl sub_818DCF4 - ldr r1, [r4] - ldr r0, =gGameLanguage - ldrb r0, [r0] - strb r0, [r1, 0x12] - movs r7, 0 - movs r3, 0 - cmp r7, r6 - bcs _0818DE36 - mov r12, r8 -_0818DDDC: - ldr r2, [r4] - ldrb r0, [r2, 0xC] - lsls r0, 2 - add r0, r12 - ldr r1, [r0] - lsls r0, r3, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r5 - bne _0818DE28 - movs r7, 0x1 - ldrb r0, [r2, 0x3] - adds r0, 0x1 - strb r0, [r2, 0x3] - ldr r0, [r4] - strb r7, [r0, 0x2] - ldr r1, [r4] - ldrh r0, [r1, 0x10] - cmp r0, r5 - bne _0818DE36 - movs r0, 0x5 - strb r0, [r1, 0x3] - b _0818DE36 - .pool -_0818DE28: - movs r0, 0 - strb r0, [r2, 0x2] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, r6 - bcc _0818DDDC -_0818DE36: - adds r0, r7, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_818DD84 - - thumb_func_start sub_818DE44 -sub_818DE44: @ 818DE44 - push {lr} - ldr r0, =gScriptItemId - ldrh r0, [r0] - bl sub_818DD84 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end sub_818DE44 - - thumb_func_start sub_818DE5C -sub_818DE5C: @ 818DE5C - push {lr} - ldr r1, =gUnknown_0203CD64 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - ldrb r0, [r0, 0x3] - movs r1, 0 - cmp r0, 0x4 - bls _0818DE74 - movs r1, 0x1 -_0818DE74: - adds r0, r1, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_818DE5C - - thumb_func_start sub_818DE88 -sub_818DE88: @ 818DE88 - push {lr} - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - ldr r0, =gStringVar2 - bl sub_818DCAC - pop {r0} - bx r0 - .pool - thumb_func_end sub_818DE88 - - thumb_func_start sub_818DEA0 -sub_818DEA0: @ 818DEA0 - push {r4,r5,lr} - ldr r5, =gUnknown_0203CD64 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003b58 - adds r0, r1 - str r0, [r5] - ldr r1, =gUnknown_0860B304 - ldrb r0, [r0, 0xC] - lsls r0, 1 - adds r0, r1 - ldrh r4, [r0] - adds r0, r4, 0 - bl sub_818DE88 - ldr r1, [r5] - movs r0, 0x2 - strb r0, [r1, 0x1] - adds r0, r4, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_818DEA0 - - thumb_func_start sub_818DEDC -sub_818DEDC: @ 818DEDC - push {lr} - bl SetLilycoveFavourLady - ldr r0, =gUnknown_0203CD64 - ldr r1, [r0] - movs r0, 0x1 - strb r0, [r1, 0x1] - pop {r0} - bx r0 - .pool - thumb_func_end sub_818DEDC - - thumb_func_start sub_818DEF4 -sub_818DEF4: @ 818DEF4 - push {lr} - bl EnableBothScriptContexts - pop {r0} - bx r0 - thumb_func_end sub_818DEF4 - - thumb_func_start sub_818DF00 -sub_818DF00: @ 818DF00 - push {r4-r7,lr} - bl Random - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0xF - ands r4, r0 - movs r3, 0 - ldr r5, =gUnknown_0203CD68 - ldr r1, =gUnknown_0860B1A4 - lsls r0, r4, 2 - adds r6, r0, r1 - adds r7, r5, 0 -_0818DF1A: - ldr r2, [r5] - lsls r1, r3, 1 - adds r2, 0x2 - adds r2, r1 - ldr r0, [r6] - adds r1, r0 - ldrh r0, [r1] - strh r0, [r2] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x8 - bls _0818DF1A - ldr r2, [r7] - ldr r0, =gUnknown_0860B1E4 - lsls r1, r4, 1 - adds r0, r1, r0 - ldrh r0, [r0] - strh r0, [r2, 0x14] - ldr r0, =gUnknown_0860B204 - adds r1, r0 - ldrh r0, [r1] - strh r0, [r2, 0x28] - adds r2, 0x2B - strb r4, [r2] - ldr r1, [r7] - movs r0, 0xFF - strb r0, [r1, 0x18] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818DF00 - - thumb_func_start SetLilycoveQuizLady -SetLilycoveQuizLady: @ 818DF68 - push {r4-r6,lr} - ldr r2, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003b58 - adds r0, r1 - str r0, [r2] - movs r1, 0 - strb r1, [r0] - ldr r0, [r2] - strb r1, [r0, 0x1] - movs r3, 0 - adds r4, r2, 0 - ldr r6, =gGameLanguage - adds r5, r4, 0 - ldr r0, =0x0000ffff - adds r2, r0, 0 -_0818DF8A: - ldr r1, [r5] - lsls r0, r3, 1 - adds r1, 0x2 - adds r1, r0 - ldrh r0, [r1] - orrs r0, r2 - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x8 - bls _0818DF8A - ldr r0, [r4] - ldr r1, =0x0000ffff - strh r1, [r0, 0x14] - movs r1, 0x1 - negs r1, r1 - strh r1, [r0, 0x16] - movs r3, 0 - adds r5, r4, 0 - movs r2, 0 -_0818DFB4: - ldr r0, [r5] - lsls r1, r3, 1 - adds r0, 0x20 - adds r0, r1 - strh r2, [r0] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3 - bls _0818DFB4 - ldr r0, [r4] - movs r2, 0 - movs r1, 0 - strh r1, [r0, 0x28] - adds r0, 0x2A - strb r2, [r0] - ldr r0, [r4] - adds r0, 0x2C - movs r1, 0x10 - strb r1, [r0] - ldr r0, [r4] - ldrb r1, [r6] - adds r0, 0x2D - strb r1, [r0] - bl sub_818DF00 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end SetLilycoveQuizLady - - thumb_func_start sub_818E004 -sub_818E004: @ 818E004 - ldr r2, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003b58 - adds r0, r1 - str r0, [r2] - movs r1, 0 - strb r1, [r0] - ldr r0, [r2] - strb r1, [r0, 0x1] - ldr r0, [r2] - adds r0, 0x2A - strb r1, [r0] - ldr r1, [r2] - ldr r0, =0x0000ffff - strh r0, [r1, 0x16] - bx lr - .pool - thumb_func_end sub_818E004 - - thumb_func_start sub_818E038 -sub_818E038: @ 818E038 - push {lr} - ldr r1, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - ldrb r0, [r0, 0x1] - cmp r0, 0x2 - bne _0818E05C - movs r0, 0x2 - b _0818E066 - .pool -_0818E05C: - cmp r0, 0x1 - beq _0818E064 - movs r0, 0 - b _0818E066 -_0818E064: - movs r0, 0x1 -_0818E066: - pop {r1} - bx r1 - thumb_func_end sub_818E038 - - thumb_func_start sub_818E06C -sub_818E06C: @ 818E06C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, =gSaveBlock1Ptr - ldr r4, [r0] - ldr r0, =0x00003b58 - adds r7, r4, r0 - ldrh r0, [r7, 0x14] - bl sub_811F8D8 - cmp r0, 0 - bne _0818E0EC - ldr r1, =0x00003b83 - adds r0, r4, r1 - ldrb r5, [r0] - ldr r0, =0x00003b5a - adds r0, r4 - mov r8, r0 - adds r1, r4 - mov r10, r1 - ldr r6, =gUnknown_0860B1E4 -_0818E09A: - adds r5, 0x1 - cmp r5, 0xF - ble _0818E0A2 - movs r5, 0 -_0818E0A2: - lsls r4, r5, 1 - adds r0, r4, r6 - ldrh r0, [r0] - bl sub_811F8D8 - cmp r0, 0 - beq _0818E09A - movs r3, 0 - ldr r0, =gUnknown_0860B1E4 - mov r12, r0 - lsls r1, r5, 2 - ldr r0, =gUnknown_0860B204 - mov r9, r0 - ldr r0, =gUnknown_0860B1A4 - adds r6, r1, r0 - mov r2, r8 -_0818E0C2: - lsls r0, r3, 1 - ldr r1, [r6] - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2] - adds r2, 0x2 - adds r3, 0x1 - cmp r3, 0x8 - ble _0818E0C2 - mov r1, r12 - adds r0, r4, r1 - ldrh r0, [r0] - strh r0, [r7, 0x14] - mov r1, r9 - adds r0, r4, r1 - ldrh r0, [r0] - strh r0, [r7, 0x28] - mov r0, r10 - strb r5, [r0] - movs r0, 0xFF - strb r0, [r7, 0x18] -_0818E0EC: - bl sub_818E13C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _0818E118 - movs r0, 0x2 - b _0818E12C - .pool -_0818E118: - cmp r0, 0x2 - beq _0818E126 - bl sub_818E1F4 - lsls r0, 24 - cmp r0, 0 - beq _0818E12A -_0818E126: - movs r0, 0x1 - b _0818E12C -_0818E12A: - movs r0, 0 -_0818E12C: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_818E06C - - thumb_func_start sub_818E13C -sub_818E13C: @ 818E13C - push {r4-r7,lr} - movs r7, 0x1 - ldr r5, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, =0x00003b58 - adds r0, r1, r2 - str r0, [r5] - ldrb r0, [r0, 0x18] - cmp r0, 0xFF - bne _0818E174 - ldr r0, =gStringVar1 - ldr r1, =gUnknown_085EEB7E - bl StringCopy7 - movs r7, 0 - b _0818E1DC - .pool -_0818E174: - ldr r4, =gStringVar1 - ldr r0, =0x00003b70 - adds r1, r0 - adds r0, r4, 0 - bl StringCopy7 - ldr r0, [r5] - adds r0, 0x2D - ldrb r1, [r0] - adds r0, r4, 0 - bl ConvertInternationalString - ldr r0, [r5] - adds r0, 0x18 - bl sub_818E258 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r6, =gSaveBlock2Ptr - ldr r0, [r6] - bl sub_818E258 - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bne _0818E1DC - ldr r0, [r5] - movs r2, 0 - cmp r2, r4 - bcs _0818E1DC - ldr r1, [r6] - ldrb r0, [r0, 0x18] - ldrb r1, [r1] - cmp r0, r1 - bne _0818E1DA -_0818E1BA: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, r4 - bcs _0818E1DC - ldr r0, =gUnknown_0203CD68 - ldr r1, [r0] - adds r1, 0x18 - adds r1, r2 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, r2 - ldrb r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - beq _0818E1BA -_0818E1DA: - movs r7, 0x2 -_0818E1DC: - adds r0, r7, 0 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_818E13C - - thumb_func_start sub_818E1F4 -sub_818E1F4: @ 818E1F4 - push {r4-r6,lr} - ldr r3, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, =0x00003b58 - adds r0, r1, r2 - str r0, [r3] - movs r5, 0 - movs r4, 0 - ldr r0, =0x00003b78 - adds r1, r0 - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldrh r1, [r1] - adds r6, r3, 0 - adds r3, r0, 0 - ldrb r2, [r2, 0xA] - cmp r1, r2 - bne _0818E23A -_0818E21A: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bhi _0818E23C - ldr r1, [r6] - lsls r0, r4, 1 - adds r1, 0x20 - adds r1, r0 - ldr r0, [r3] - adds r0, 0xA - adds r0, r4 - ldrh r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - beq _0818E21A -_0818E23A: - movs r5, 0x1 -_0818E23C: - adds r0, r5, 0 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_818E1F4 - - thumb_func_start sub_818E258 -sub_818E258: @ 818E258 - push {lr} - movs r2, 0 - adds r1, r0, 0 - b _0818E268 -_0818E260: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - adds r1, 0x1 -_0818E268: - ldrb r0, [r1] - cmp r0, 0xFF - bne _0818E260 - adds r0, r2, 0 - pop {r1} - bx r1 - thumb_func_end sub_818E258 - - thumb_func_start sub_818E274 -sub_818E274: @ 818E274 - push {r4,lr} - ldr r4, =gStringVar1 - ldr r0, =gUnknown_0203CD68 - ldr r0, [r0] - ldrh r0, [r0, 0x28] - bl ItemId_GetItem - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E274 - - thumb_func_start sub_818E298 -sub_818E298: @ 818E298 - push {r4,lr} - ldr r4, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003b58 - adds r0, r1 - str r0, [r4] - bl sub_818E13C - lsls r0, 24 - cmp r0, 0 - beq _0818E2C0 - movs r0, 0 - b _0818E2CC - .pool -_0818E2C0: - ldr r0, [r4] - ldr r1, =gGameLanguage - ldrb r1, [r1] - adds r0, 0x2D - strb r1, [r0] - movs r0, 0x1 -_0818E2CC: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_818E298 - - thumb_func_start sub_818E2D8 -sub_818E2D8: @ 818E2D8 - ldr r2, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r3, =0x00003b58 - adds r1, r0, r3 - str r1, [r2] - ldr r1, =0x00003b82 - adds r0, r1 - ldrb r0, [r0] - bx lr - .pool - thumb_func_end sub_818E2D8 - - thumb_func_start sub_818E2FC -sub_818E2FC: @ 818E2FC - push {lr} - bl easy_chat_input_maybe - pop {r0} - bx r0 - thumb_func_end sub_818E2FC - - thumb_func_start sub_818E308 -sub_818E308: @ 818E308 - push {r4-r6,lr} - ldr r5, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003b58 - adds r0, r1 - str r0, [r5] - ldr r6, =gStringVar1 - ldrh r1, [r0, 0x14] - adds r0, r6, 0 - bl CopyEasyChatWord - ldr r4, =gStringVar2 - ldr r0, [r5] - ldrh r1, [r0, 0x16] - adds r0, r4, 0 - bl CopyEasyChatWord - adds r0, r6, 0 - adds r1, r4, 0 - bl StringCompare - movs r1, 0 - cmp r0, 0 - bne _0818E33C - movs r1, 0x1 -_0818E33C: - adds r0, r1, 0 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_818E308 - - thumb_func_start sub_818E358 -sub_818E358: @ 818E358 - ldr r1, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - ldr r1, =gSpecialVar_0x8005 - ldrh r0, [r0, 0x28] - strh r0, [r1] - bx lr - .pool - thumb_func_end sub_818E358 - - thumb_func_start sub_818E37C -sub_818E37C: @ 818E37C - ldr r1, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - movs r1, 0x1 - strb r1, [r0, 0x1] - bx lr - .pool - thumb_func_end sub_818E37C - - thumb_func_start sub_818E39C -sub_818E39C: @ 818E39C - ldr r1, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - movs r1, 0x2 - strb r1, [r0, 0x1] - bx lr - .pool - thumb_func_end sub_818E39C - - thumb_func_start sub_818E3BC -sub_818E3BC: @ 818E3BC - ldr r1, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - ldr r1, =0x0000ffff - strh r1, [r0, 0x16] - bx lr - .pool - thumb_func_end sub_818E3BC - - thumb_func_start sub_818E3E0 -sub_818E3E0: @ 818E3E0 - push {lr} - bl sub_81AAC70 - pop {r0} - bx r0 - thumb_func_end sub_818E3E0 - - thumb_func_start sub_818E3EC -sub_818E3EC: @ 818E3EC - push {r4,lr} - ldr r4, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003b58 - adds r0, r1 - str r0, [r4] - bl sub_818E298 - lsls r0, 24 - cmp r0, 0 - beq _0818E41C - ldr r0, [r4] - adds r1, r0, 0 - adds r1, 0x2B - ldrb r1, [r1] - adds r0, 0x2C - b _0818E422 - .pool -_0818E41C: - ldr r0, [r4] - adds r0, 0x2C - movs r1, 0x10 -_0818E422: - strb r1, [r0] - bl sub_818DF00 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_818E3EC - - thumb_func_start sub_818E430 -sub_818E430: @ 818E430 - push {r4,r5,lr} - ldr r1, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - movs r2, 0 - adds r5, r1, 0 - adds r4, r5, 0 - ldr r0, =0x0000ffff - adds r3, r0, 0 -_0818E448: - ldr r1, [r4] - lsls r0, r2, 1 - adds r1, 0x2 - adds r1, r0 - ldrh r0, [r1] - orrs r0, r3 - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x8 - bls _0818E448 - ldr r1, [r5] - ldr r0, =0x0000ffff - strh r0, [r1, 0x14] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E430 - - thumb_func_start sub_818E47C -sub_818E47C: @ 818E47C - push {lr} - ldr r1, =gSpecialVar_0x8004 - movs r0, 0x11 - strh r0, [r1] - bl easy_chat_input_maybe - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E47C - - thumb_func_start sub_818E490 -sub_818E490: @ 818E490 - push {lr} - ldr r0, =gScriptItemId - ldrh r0, [r0] - movs r1, 0x1 - bl RemoveBagItem - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E490 - - thumb_func_start sub_818E4A4 -sub_818E4A4: @ 818E4A4 - push {r4-r6,lr} - ldr r2, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003b58 - adds r0, r1 - str r0, [r2] - ldr r1, =gScriptItemId - ldrh r1, [r1] - strh r1, [r0, 0x28] - movs r3, 0 - adds r4, r2, 0 - ldr r6, =gSaveBlock2Ptr - adds r5, r4, 0 - adds r2, r6, 0 -_0818E4C2: - ldr r1, [r5] - lsls r0, r3, 1 - adds r1, 0x20 - adds r1, r0 - ldr r0, [r2] - adds r0, 0xA - adds r0, r3 - ldrb r0, [r0] - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3 - bls _0818E4C2 - ldr r0, [r4] - adds r0, 0x18 - ldr r1, [r6] - bl StringCopy7 - ldr r0, [r4] - ldr r1, =gGameLanguage - ldrb r1, [r1] - adds r0, 0x2D - strb r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E4A4 - - thumb_func_start sub_818E510 -sub_818E510: @ 818E510 - ldr r2, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r3, =0x00003b58 - adds r1, r0, r3 - str r1, [r2] - ldr r1, =0x00003b82 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - bx lr - .pool - thumb_func_end sub_818E510 - - thumb_func_start sub_818E538 -sub_818E538: @ 818E538 - push {lr} - ldr r2, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r0, =0x00003b58 - adds r1, r0 - str r1, [r2] - ldr r0, =gStringVar3 - ldrh r1, [r1, 0x14] - bl CopyEasyChatWord - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E538 - - thumb_func_start sub_818E564 -sub_818E564: @ 818E564 - push {lr} - bl EnableBothScriptContexts - pop {r0} - bx r0 - thumb_func_end sub_818E564 - - thumb_func_start sub_818E570 -sub_818E570: @ 818E570 - push {r4-r7,lr} - ldr r2, =gUnknown_0203CD68 - ldr r1, =gSaveBlock1Ptr - ldr r1, [r1] - ldr r4, =0x00003b58 - adds r3, r1, r4 - str r3, [r2] - adds r6, r0, 0 - adds r6, 0x2C - ldrb r4, [r6] - adds r7, r2, 0 - cmp r4, 0xF - bhi _0818E5EC - ldrb r0, [r3] - cmp r0, 0 - bne _0818E5EC - movs r5, 0 - ldr r2, =0x00003b83 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r4, r0 - bne _0818E5E4 - adds r4, r7, 0 -_0818E59E: - bl Random - ldr r2, [r4] - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xF - ands r0, r1 - adds r2, 0x2B - strb r0, [r2] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bhi _0818E5C6 - ldr r0, [r4] - adds r0, 0x2B - ldrb r1, [r6] - ldrb r0, [r0] - cmp r1, r0 - beq _0818E59E -_0818E5C6: - ldr r0, [r4] - adds r2, r0, 0 - adds r2, 0x2B - ldrb r0, [r6] - ldr r7, =gUnknown_0203CD68 - ldrb r4, [r2] - cmp r0, r4 - bne _0818E5E4 - ldrb r1, [r2] - adds r3, r1, 0x1 - adds r0, r3, 0 - asrs r0, 4 - lsls r0, 4 - subs r0, r3, r0 - strb r0, [r2] -_0818E5E4: - ldr r0, [r7] - ldrb r1, [r6] - adds r0, 0x2C - strb r1, [r0] -_0818E5EC: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E570 - - thumb_func_start sub_818E604 -sub_818E604: @ 818E604 - push {r4,lr} - ldr r4, =gUnknown_0203CD6C - ldr r1, [r4] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r0, [r4] - movs r1, 0 - strb r1, [r0, 0x2] - ldr r0, [r4] - strb r1, [r0, 0x3] - ldr r0, [r4] - strb r1, [r0, 0xC] - bl Random - ldr r4, [r4] - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x5 - bl __umodsi3 - strb r0, [r4, 0xD] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E604 - - thumb_func_start SetLilycoveContestLady -SetLilycoveContestLady: @ 818E638 - push {r4,lr} - ldr r4, =gUnknown_0203CD6C - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003b58 - adds r0, r1 - str r0, [r4] - movs r2, 0 - movs r1, 0x2 - strb r1, [r0] - ldr r0, [r4] - strb r2, [r0, 0x1] - bl sub_818E604 - ldr r1, [r4] - ldr r0, =gGameLanguage - ldrb r0, [r0] - strb r0, [r1, 0xE] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end SetLilycoveContestLady - - thumb_func_start sub_818E674 -sub_818E674: @ 818E674 - push {lr} - ldr r2, =gUnknown_0203CD6C - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003b58 - adds r0, r1 - str r0, [r2] - movs r3, 0 - movs r1, 0x2 - strb r1, [r0] - ldr r0, [r2] - strb r3, [r0, 0x1] - ldr r2, [r2] - ldrb r0, [r2, 0x2] - cmp r0, 0x5 - beq _0818E69A - ldrb r0, [r2, 0x3] - cmp r0, 0x5 - bne _0818E69E -_0818E69A: - bl sub_818E604 -_0818E69E: - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E674 - - thumb_func_start sub_818E6B0 -sub_818E6B0: @ 818E6B0 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r4, =gUnknown_0203CD6C - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r3, =0x00003b58 - adds r1, r0, r3 - str r1, [r4] - ldrb r0, [r1, 0xC] - cmp r0, r2 - bhi _0818E6EA - strb r2, [r1, 0xC] - ldr r0, [r4] - adds r0, 0x4 - movs r1, 0xFF - movs r2, 0x8 - bl memset - ldr r1, [r4] - ldr r0, =gSaveBlock2Ptr - adds r1, 0x4 - ldr r0, [r0] - ldm r0!, {r2,r3} - stm r1!, {r2,r3} - ldr r1, [r4] - ldr r0, =gGameLanguage - ldrb r0, [r0] - strb r0, [r1, 0xE] -_0818E6EA: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E6B0 - - thumb_func_start sub_818E704 -sub_818E704: @ 818E704 - push {r4,r5,lr} - adds r2, r0, 0 - movs r3, 0 - movs r4, 0 - ldr r1, =gUnknown_0203CD6C - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r5, =0x00003b58 - adds r0, r5 - str r0, [r1] - ldrb r0, [r0, 0xD] - adds r5, r1, 0 - cmp r0, 0x4 - bhi _0818E76A - lsls r0, 2 - ldr r1, =_0818E73C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0818E73C: - .4byte _0818E750 - .4byte _0818E754 - .4byte _0818E758 - .4byte _0818E75C - .4byte _0818E760 -_0818E750: - ldrb r0, [r2, 0x1] - b _0818E762 -_0818E754: - ldrb r0, [r2, 0x2] - b _0818E762 -_0818E758: - ldrb r0, [r2, 0x3] - b _0818E762 -_0818E75C: - ldrb r0, [r2, 0x4] - b _0818E762 -_0818E760: - ldrb r0, [r2, 0x5] -_0818E762: - cmp r0, 0 - beq _0818E76A - adds r3, r0, 0 - movs r4, 0x1 -_0818E76A: - cmp r4, 0x1 - bne _0818E784 - adds r0, r3, 0 - bl sub_818E6B0 - ldr r0, =gUnknown_0203CD6C - ldr r1, [r0] - ldrb r0, [r1, 0x2] - adds r0, 0x1 - strb r0, [r1, 0x2] - b _0818E78C - .pool -_0818E784: - ldr r1, [r5] - ldrb r0, [r1, 0x3] - adds r0, 0x1 - strb r0, [r1, 0x3] -_0818E78C: - adds r0, r4, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_818E704 - - thumb_func_start sub_818E794 -sub_818E794: @ 818E794 - push {r4,r5,lr} - adds r5, r1, 0 - ldr r4, =gUnknown_0203CD6C - ldr r1, =gSaveBlock1Ptr - ldr r1, [r1] - ldr r2, =0x00003b58 - adds r1, r2 - str r1, [r4] - ldr r2, =gUnknown_0860B324 - ldrb r1, [r1, 0xD] - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - bl StringCopy - ldr r1, =gUnknown_0860B310 - ldr r0, [r4] - ldrb r0, [r0, 0xD] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r5, 0 - bl StringCopy10 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E794 - - thumb_func_start sub_818E7E0 -sub_818E7E0: @ 818E7E0 - push {r4,lr} - adds r3, r1, 0 - ldr r2, =gUnknown_0203CD6C - ldr r1, =gSaveBlock1Ptr - ldr r1, [r1] - ldr r4, =0x00003b58 - adds r1, r4 - str r1, [r2] - ldrb r2, [r1, 0xD] - strb r2, [r0] - ldr r2, =gUnknown_0860B310 - ldrb r0, [r1, 0xD] - lsls r0, 2 - adds r0, r2 - ldr r1, [r0] - adds r0, r3, 0 - bl StringCopy - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E7E0 - - thumb_func_start sub_818E81C -sub_818E81C: @ 818E81C - push {r4,lr} - ldr r3, =gUnknown_0203CD6C - ldr r1, =gSaveBlock1Ptr - ldr r1, [r1] - ldr r4, =0x00003b58 - adds r2, r1, r4 - str r2, [r3] - ldr r2, =0x00003b5c - adds r1, r2 - bl StringCopy - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E81C - - thumb_func_start sub_818E848 -sub_818E848: @ 818E848 - ldr r2, =gUnknown_0203CD6C - ldr r1, =gSaveBlock1Ptr - ldr r1, [r1] - ldr r3, =0x00003b58 - adds r1, r3 - str r1, [r2] - ldrb r1, [r1, 0xE] - strb r1, [r0] - bx lr - .pool - thumb_func_end sub_818E848 - - thumb_func_start sub_818E868 -sub_818E868: @ 818E868 - push {lr} - lsls r1, 24 - ldr r2, =gUnknown_0860B338 - lsrs r1, 22 - adds r1, r2 - ldr r1, [r1] - bl StringCopy - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E868 - - thumb_func_start sub_818E880 -sub_818E880: @ 818E880 - push {lr} - ldr r1, =gUnknown_0203CD6C - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - ldrb r0, [r0, 0x2] - cmp r0, 0x4 - bls _0818E8A4 - movs r0, 0x1 - b _0818E8AE - .pool -_0818E8A4: - cmp r0, 0 - beq _0818E8AC - movs r0, 0 - b _0818E8AE -_0818E8AC: - movs r0, 0x2 -_0818E8AE: - pop {r1} - bx r1 - thumb_func_end sub_818E880 - - thumb_func_start sub_818E8B4 -sub_818E8B4: @ 818E8B4 - push {lr} - ldr r1, =gUnknown_0203CD6C - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - ldrb r0, [r0, 0x1] - cmp r0, 0x1 - beq _0818E8D8 - movs r0, 0 - b _0818E8DA - .pool -_0818E8D8: - movs r0, 0x1 -_0818E8DA: - pop {r1} - bx r1 - thumb_func_end sub_818E8B4 - - thumb_func_start sub_818E8E0 -sub_818E8E0: @ 818E8E0 - push {r4,lr} - movs r3, 0 - ldr r1, =gUnknown_0203CD6C - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r4, =0x00003b58 - adds r2, r0, r4 - str r2, [r1] - ldrb r0, [r2, 0x2] - cmp r0, 0x4 - bhi _0818E8FC - ldrb r0, [r2, 0x3] - cmp r0, 0x4 - bls _0818E8FE -_0818E8FC: - movs r3, 0x1 -_0818E8FE: - adds r0, r3, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_818E8E0 - - thumb_func_start sub_818E914 -sub_818E914: @ 818E914 - push {lr} - ldr r0, =gStringVar2 - ldr r1, =gStringVar1 - bl sub_818E794 - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E914 - - thumb_func_start sub_818E92C -sub_818E92C: @ 818E92C - push {lr} - ldr r1, =c2_exit_to_overworld_2_switch - movs r0, 0x3 - bl sub_81357FC - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E92C - - thumb_func_start sub_818E940 -sub_818E940: @ 818E940 - ldr r1, =gUnknown_0203CD6C - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - movs r1, 0x1 - strb r1, [r0, 0x1] - bx lr - .pool - thumb_func_end sub_818E940 - - thumb_func_start sub_818E960 -sub_818E960: @ 818E960 - ldr r1, =gUnknown_0203CD6C - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - ldr r2, =gSpecialVar_0x8005 - ldr r1, =gUnknown_0860B34C - ldrb r0, [r0, 0xD] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2] - bx lr - .pool - thumb_func_end sub_818E960 - - thumb_func_start sub_818E990 -sub_818E990: @ 818E990 - ldr r1, =gUnknown_0203CD6C - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - ldrb r0, [r0, 0xD] - bx lr - .pool - thumb_func_end sub_818E990 - - -.align 2, 0 @ Don't pad with nop. diff --git a/asm/link.s b/asm/link.s index 9ee94412d..d1c8d0542 100644 --- a/asm/link.s +++ b/asm/link.s @@ -3482,7 +3482,7 @@ sub_800B080: @ 800B080 ldr r4, =gUnknown_082ED224 str r4, [sp] str r5, [sp, 0x4] - ldr r0, =gUnknown_085EE4F7 + ldr r0, =gText_CommErrorEllipsis str r0, [sp, 0x8] movs r0, 0 movs r1, 0x3 @@ -3491,7 +3491,7 @@ sub_800B080: @ 800B080 bl box_print str r4, [sp] str r5, [sp, 0x4] - ldr r0, =gUnknown_085EE50C + ldr r0, =gText_MoveCloserToLinkPartner str r0, [sp, 0x8] movs r0, 0x2 movs r1, 0x3 @@ -3534,7 +3534,7 @@ sub_800B138: @ 800B138 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] - ldr r0, =gUnknown_085EE4A4 + ldr r0, =gText_CommErrorCheckConnections str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x3 @@ -3623,7 +3623,7 @@ _0800B214: str r0, [sp] movs r0, 0 str r0, [sp, 0x4] - ldr r0, =gUnknown_085EE572 + ldr r0, =gText_ABtnTitleScreen str r0, [sp, 0x8] movs r0, 0 movs r1, 0x3 @@ -3639,7 +3639,7 @@ _0800B244: str r0, [sp] movs r0, 0 str r0, [sp, 0x4] - ldr r0, =gUnknown_085EE553 + ldr r0, =gText_ABtnRegistrationCounter str r0, [sp, 0x8] movs r0, 0 movs r1, 0x3 @@ -24689,7 +24689,7 @@ _08016502: ldr r1, =gUnknown_02022C40 movs r0, 0x1 strh r0, [r1] - ldr r1, =gUnknown_03005DAC + ldr r1, =gFieldCallback ldr r0, =sub_80AF128 str r0, [r1] ldr r1, =c2_exit_to_overworld_2_switch @@ -24987,7 +24987,7 @@ _0801677E: lsls r0, 22 lsrs r0, 22 strh r0, [r2] - ldr r1, =gUnknown_03005DAC + ldr r1, =gFieldCallback ldr r0, =sub_80AF128 str r0, [r1] ldr r1, =c2_exit_to_overworld_2_switch @@ -27235,7 +27235,7 @@ sub_8017940: @ 8017940 ldrsh r0, [r4, r1] cmp r0, 0x8 bne _08017978 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r0, [r0, 0x3] cmp r0, 0x2 beq _0801796E @@ -28887,16 +28887,16 @@ sub_80186EC: @ 80186EC bl FillWindowPixelBuffer cmp r4, 0 bne _0801871C - ldr r0, =gUnknown_085EF654 - ldr r7, =gUnknown_085EF678 + ldr r0, =gText_MysteryGift + ldr r7, =gText_PickOKCancel cmp r5, 0 bne _08018720 - ldr r7, =gUnknown_085EF664 + ldr r7, =gText_PickOKExit b _08018720 .pool _0801871C: - ldr r0, =gUnknown_085EDFBF - ldr r7, =gUnknown_085EDFC9 + ldr r0, =gJPText_MysteryGift + ldr r7, =gJPText_DecideStop _08018720: movs r4, 0 str r4, [sp] @@ -29571,13 +29571,13 @@ _08018C6C: cmp r2, 0 bne _08018C84 ldr r0, =gStringVar4 - ldr r1, =gUnknown_085EF2FC + ldr r1, =gText_WhatToDoWithCards bl StringExpandPlaceholders b _08018C8C .pool _08018C84: ldr r0, =gStringVar4 - ldr r1, =gUnknown_085EF330 + ldr r1, =gText_WhatToDoWithNews bl StringExpandPlaceholders _08018C8C: ldr r0, =gUnknown_082F05D8 @@ -29801,11 +29801,11 @@ sub_8018E50: @ 8018E50 push {lr} cmp r2, 0 beq _08018E60 - ldr r3, =gUnknown_085EF55C + ldr r3, =gText_OkayToDiscardNews b _08018E62 .pool _08018E60: - ldr r3, =gUnknown_085EF520 + ldr r3, =gText_IfThrowAwayCardEventWontHappen _08018E62: movs r2, 0x1 bl sub_8018B08 @@ -29821,11 +29821,11 @@ mevent_message_was_thrown_away: @ 8018E74 push {lr} cmp r1, 0 beq _08018E84 - ldr r1, =gUnknown_085EF630 + ldr r1, =gText_WonderNewsThrownAway b _08018E86 .pool _08018E84: - ldr r1, =gUnknown_085EF60C + ldr r1, =gText_WonderCardThrownAway _08018E86: bl mevent_0814257C pop {r1} @@ -29854,7 +29854,7 @@ _08018EAC: .4byte _08018EE0 .4byte _08018EF8 _08018EC0: - ldr r0, =gUnknown_085EF5BC + ldr r0, =gText_DataWillBeSaved bl sub_8018884 b _08018EEC .pool @@ -29863,7 +29863,7 @@ _08018ECC: bl TrySavingData b _08018EEC _08018ED4: - ldr r0, =gUnknown_085EF5E0 + ldr r0, =gText_SaveCompletedPressA bl sub_8018884 b _08018EEC .pool @@ -29934,88 +29934,88 @@ _08018F30: _08018F6C: movs r0, 0 str r0, [r4] - ldr r2, =gUnknown_085EF2E4 + ldr r2, =gText_NothingSentOver b _08019034 .pool _08018F78: movs r0, 0 str r0, [r4] - ldr r2, =gUnknown_085EF244 + ldr r2, =gText_RecordUploadedViaWireless b _08019034 .pool _08018F84: movs r0, 0x1 str r0, [r4] - ldr r2, =gUnknown_085EF0C8 + ldr r2, =gText_WonderCardReceivedFrom cmp r5, 0 bne _08019034 - ldr r2, =gUnknown_085EF124 + ldr r2, =gText_WonderCardReceived b _08019034 .pool _08018F9C: movs r0, 0x1 str r0, [r4] - ldr r2, =gUnknown_085EF0F4 + ldr r2, =gText_WonderNewsReceivedFrom cmp r5, 0 bne _08019034 - ldr r2, =gUnknown_085EF14C + ldr r2, =gText_WonderNewsReceived b _08019034 .pool _08018FB4: movs r0, 0x1 str r0, [r4] - ldr r2, =gUnknown_085EF178 + ldr r2, =gText_NewStampReceived b _08019034 .pool _08018FC0: movs r0, 0 str r0, [r4] - ldr r2, =gUnknown_085EF1B4 + ldr r2, =gText_AlreadyHadCard b _08019034 .pool _08018FCC: movs r0, 0 str r0, [r4] - ldr r2, =gUnknown_085EF200 + ldr r2, =gText_AlreadyHadStamp b _08019034 .pool _08018FD8: movs r0, 0 str r0, [r4] - ldr r2, =gUnknown_085EF1D8 + ldr r2, =gText_AlreadyHadNews b _08019034 .pool _08018FE4: movs r0, 0 str r0, [r4] - ldr r2, =gUnknown_085EF21C + ldr r2, =gText_NoMoreRoomForStamps b _08019034 .pool _08018FF0: movs r0, 0 str r0, [r4] - ldr r2, =gUnknown_085EF02C + ldr r2, =gText_CommunicationCanceled b _08019034 .pool _08018FFC: movs r0, 0 str r0, [r4] - ldr r2, =gUnknown_085EF2B4 + ldr r2, =gText_CantAcceptNewsFromTrainer cmp r6, 0 bne _08019034 - ldr r2, =gUnknown_085EF280 + ldr r2, =gText_CantAcceptCardFromTrainer b _08019034 .pool _08019014: movs r0, 0 str r0, [r4] - ldr r2, =gUnknown_085EF014 + ldr r2, =gText_CommunicationError b _08019034 .pool _08019020: movs r0, 0x1 str r0, [r4] - ldr r2, =gUnknown_085EF198 + ldr r2, =gText_NewTrainerReceived b _08019034 .pool _0801902C: @@ -30095,7 +30095,7 @@ _0801909C: mevent_message_stamp_card_etc_send_status: @ 80190A4 push {r4,lr} adds r3, r0, 0 - ldr r1, =gUnknown_085EF014 + ldr r1, =gText_CommunicationError movs r0, 0 str r0, [r3] adds r4, r1, 0 @@ -30125,57 +30125,57 @@ _080190C8: .4byte _0801915C .4byte _08019164 _08019104: - ldr r1, =gUnknown_085EF2E4 + ldr r1, =gText_NothingSentOver b _08019166 .pool _0801910C: - ldr r1, =gUnknown_085EF244 + ldr r1, =gText_RecordUploadedViaWireless b _08019166 .pool _08019114: - ldr r1, =gUnknown_085EF39C + ldr r1, =gText_WonderCardSentTo b _0801911E .pool _0801911C: - ldr r1, =gUnknown_085EF3C4 + ldr r1, =gText_WonderNewsSentTo _0801911E: movs r0, 0x1 str r0, [r3] b _08019166 .pool _08019128: - ldr r1, =gUnknown_085EF3F0 + ldr r1, =gText_StampSentTo b _08019166 .pool _08019130: - ldr r1, =gUnknown_085EF42C + ldr r1, =gText_OtherTrainerHasCard b _08019166 .pool _08019138: - ldr r1, =gUnknown_085EF494 + ldr r1, =gText_OtherTrainerHasStamp b _08019166 .pool _08019140: - ldr r1, =gUnknown_085EF460 + ldr r1, =gText_OtherTrainerHasNews b _08019166 .pool _08019148: - ldr r1, =gUnknown_085EF21C + ldr r1, =gText_NoMoreRoomForStamps b _08019166 .pool _08019150: - ldr r1, =gUnknown_085EF4C4 + ldr r1, =gText_OtherTrainerCanceled b _08019166 .pool _08019158: adds r1, r4, 0 b _08019166 _0801915C: - ldr r1, =gUnknown_085EF410 + ldr r1, =gText_GiftSentTo b _08019166 .pool _08019164: - ldr r1, =gUnknown_085EF4F0 + ldr r1, =gText_CantSendGiftToTrainer _08019166: adds r0, r1, 0 pop {r4} @@ -30357,13 +30357,13 @@ _08019300: bne _08019314 adds r0, r5, 0 adds r0, 0x9 - ldr r1, =gUnknown_085EEEF0 + ldr r1, =gText_DontHaveCardNewOneInput b _0801931A .pool _08019314: adds r0, r5, 0 adds r0, 0x9 - ldr r1, =gUnknown_085EEF2C + ldr r1, =gText_DontHaveNewsNewOneInput _0801931A: bl mevent_0814257C cmp r0, 0 @@ -30381,12 +30381,12 @@ _08019338: ldrb r0, [r5, 0xC] cmp r0, 0 bne _0801934C - ldr r0, =gUnknown_085EEF68 + ldr r0, =gText_WhereShouldCardBeAccessed bl sub_8018884 b _08019352 .pool _0801934C: - ldr r0, =gUnknown_085EEF94 + ldr r0, =gText_WhereShouldNewsBeAccessed bl sub_8018884 _08019352: movs r0, 0x4 @@ -30502,7 +30502,7 @@ _08019436: b _080197C0 .pool _08019444: - ldr r0, =gUnknown_085EEFE8 + ldr r0, =gText_Communicating bl sub_8018884 movs r0, 0x8 strb r0, [r5, 0x8] @@ -30593,7 +30593,7 @@ _08019506: _08019508: adds r0, r5, 0 adds r0, 0x9 - ldr r3, =gUnknown_085EF050 + ldr r3, =gText_ThrowAwayWonderCard adds r1, r5, 0 movs r2, 0 bl sub_8018B08 @@ -30616,7 +30616,7 @@ _08019534: _08019538: adds r0, r5, 0 adds r0, 0x9 - ldr r3, =gUnknown_085EF084 + ldr r3, =gText_HaventReceivedCardsGift adds r1, r5, 0 movs r2, 0 bl sub_8018B08 @@ -30660,7 +30660,7 @@ _0801957E: _0801958C: adds r0, r5, 0 adds r0, 0x9 - ldr r1, =gUnknown_085EEFF8 + ldr r1, =gText_CommunicationCompleted bl sub_8018A1C cmp r0, 0 bne _0801959C @@ -30876,7 +30876,7 @@ _0801971A: _0801972E: adds r0, r5, 0 adds r0, 0x9 - ldr r3, =gUnknown_085EF584 + ldr r3, =gText_HaventReceivedGiftOkayToDiscard adds r1, r5, 0 movs r2, 0x1 bl sub_8018B08 @@ -31016,13 +31016,13 @@ _0801982C: ldrb r0, [r5, 0xC] cmp r0, 0 bne _0801985C - ldr r0, =gUnknown_085EF360 + ldr r0, =gText_SendingWonderCard bl sub_8018884 bl mevent_srv_new_wcard b _08019866 .pool _0801985C: - ldr r0, =gUnknown_085EF37C + ldr r0, =gText_SendingWonderNews bl sub_8018884 bl mevent_srv_init_wnews _08019866: @@ -31084,7 +31084,7 @@ _080198DC: _080198EC: adds r0, r5, 0 adds r0, 0x9 - ldr r1, =gUnknown_085EF014 + ldr r1, =gText_CommunicationError bl mevent_0814257C _080198F6: cmp r0, 0 @@ -31141,7 +31141,7 @@ bgid_upload_textbox_1: @ 8019938 thumb_func_start is_walking_or_running is_walking_or_running: @ 8019958 push {lr} - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r0, [r0, 0x3] cmp r0, 0x2 beq _08019966 @@ -33685,7 +33685,7 @@ _0801AD8C: _0801ADFC: ldr r0, =gUnknown_02022C6C ldr r0, [r0] - ldr r1, =gUnknown_085EFBD2 + ldr r1, =gText_CommStandbyAwaitingOtherPlayer movs r2, 0 bl sub_801ABDC cmp r0, 0 @@ -33832,7 +33832,7 @@ _0801AF40: _0801AF58: ldr r0, =gUnknown_02022C6C ldr r0, [r0] - ldr r1, =gUnknown_085EFC27 + ldr r1, =gText_RefusedBattle movs r2, 0x1 bl sub_801ABDC cmp r0, 0 @@ -33858,7 +33858,7 @@ _0801AF8A: _0801AF98: ldr r0, =gUnknown_02022C6C ldr r0, [r0] - ldr r1, =gUnknown_085EFC0C + ldr r1, =gText_BattleWasRefused movs r2, 0x1 bl sub_801ABDC cmp r0, 0 @@ -41940,7 +41940,7 @@ _0801F020: movs r0, 0 adds r1, r4, 0 bl sub_81AFC0C - ldr r1, =gUnknown_085ED2A9 + ldr r1, =gText_F700JoinedChat b _0801F094 .pool _0801F044: @@ -41980,7 +41980,7 @@ _0801F07A: movs r0, 0 adds r1, r4, 0 bl sub_81AFC0C - ldr r1, =gUnknown_085ED2BD + ldr r1, =gText_F700LeftChat _0801F094: adds r0, r6, 0 bl sub_81AFC28 @@ -42190,52 +42190,52 @@ copy_strings_to_sav1: @ 801F1DC ldr r0, [r4] ldr r1, =0x00003c88 adds r0, r1 - ldr r1, =gUnknown_085ED40F + ldr r1, =gText_Hello bl StringCopy ldr r0, [r4] ldr r1, =0x00003c9d adds r0, r1 - ldr r1, =gUnknown_085ED415 + ldr r1, =gText_Pokemon2 bl StringCopy ldr r0, [r4] ldr r1, =0x00003cb2 adds r0, r1 - ldr r1, =gUnknown_085ED41D + ldr r1, =gText_Trade bl StringCopy ldr r0, [r4] ldr r1, =0x00003cc7 adds r0, r1 - ldr r1, =gUnknown_085ED423 + ldr r1, =gText_Battle bl StringCopy ldr r0, [r4] ldr r1, =0x00003cdc adds r0, r1 - ldr r1, =gUnknown_085ED42A + ldr r1, =gText_Lets bl StringCopy ldr r0, [r4] ldr r1, =0x00003cf1 adds r0, r1 - ldr r1, =gUnknown_085ED430 + ldr r1, =gText_Ok bl StringCopy ldr r0, [r4] ldr r1, =0x00003d06 adds r0, r1 - ldr r1, =gUnknown_085ED434 + ldr r1, =gText_Sorry bl StringCopy ldr r0, [r4] ldr r1, =0x00003d1b adds r0, r1 - ldr r1, =gUnknown_085ED43A + ldr r1, =gText_YayUnkF9F9 bl StringCopy ldr r0, [r4] ldr r1, =0x00003d30 adds r0, r1 - ldr r1, =gUnknown_085ED440 + ldr r1, =gText_ThankYou bl StringCopy ldr r0, [r4] ldr r1, =0x00003d45 adds r0, r1 - ldr r1, =gUnknown_085ED44A + ldr r1, =gText_ByeBye bl StringCopy pop {r4} pop {r0} @@ -43754,7 +43754,7 @@ sub_801FDDC: @ 801FDDC bl PutWindowTilemap ldr r0, [r5] ldrb r0, [r0, 0x18] - ldr r2, =gUnknown_085EAE62 + ldr r2, =gText_Yes movs r1, 0x1 str r1, [sp] movs r4, 0xFF @@ -43764,7 +43764,7 @@ sub_801FDDC: @ 801FDDC bl PrintTextOnWindow ldr r0, [r5] ldrb r0, [r0, 0x18] - ldr r2, =gUnknown_085EAE66 + ldr r2, =gText_No movs r1, 0x11 str r1, [sp] str r4, [sp, 0x4] @@ -47446,13 +47446,13 @@ _08021C5E: cmp r3, r2 bne _08021CC0 ldr r0, =gStringVar3 - ldr r1, =gUnknown_085ED7D4 + ldr r1, =gText_1DotBlueF700 bl StringCopy b _08021CC8 .pool _08021CC0: ldr r0, =gStringVar3 - ldr r1, =gUnknown_085ED7E0 + ldr r1, =gText_1DotF700 bl StringCopy _08021CC8: ldr r4, =gStringVar3 @@ -47541,13 +47541,13 @@ sub_8021D34: @ 8021D34 ldr r4, =gUnknown_082F32D8 str r4, [sp] str r6, [sp, 0x4] - ldr r1, =gUnknown_085ED808 + ldr r1, =gText_TimeColon str r1, [sp, 0x8] movs r1, 0x2 movs r2, 0 adds r3, r7, 0 bl box_print - ldr r4, =gUnknown_085ED840 + ldr r4, =gText_SpaceSec movs r0, 0x2 adds r1, r4, 0 movs r2, 0x1 @@ -47587,7 +47587,7 @@ sub_8021D34: @ 8021D34 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r5, =gStringVar4 - ldr r1, =gUnknown_085ED838 + ldr r1, =gText_XDotY2 adds r0, r5, 0 bl StringExpandPlaceholders movs r0, 0x2 @@ -47609,7 +47609,7 @@ sub_8021D34: @ 8021D34 adds r2, r6, 0 adds r3, r7, 0 bl box_print - ldr r4, =gUnknown_085ED830 + ldr r4, =gText_SpaceMin movs r0, 0x2 adds r1, r4, 0 movs r2, 0x1 @@ -47638,7 +47638,7 @@ sub_8021D34: @ 8021D34 movs r2, 0x2 movs r3, 0x1 bl ConvertIntToDecimalStringN - ldr r1, =gUnknown_085ED82C + ldr r1, =gText_StrVar1 adds r0, r5, 0 bl StringExpandPlaceholders movs r0, 0x2 @@ -47669,13 +47669,13 @@ sub_8021D34: @ 8021D34 str r4, [sp] mov r1, r10 str r1, [sp, 0x4] - ldr r1, =gUnknown_085ED810 + ldr r1, =gText_PressingSpeed str r1, [sp, 0x8] movs r1, 0x2 movs r2, 0 adds r3, r7, 0 bl box_print - ldr r4, =gUnknown_085ED850 + ldr r4, =gText_TimesPerSec movs r0, 0x2 adds r1, r4, 0 movs r2, 0x1 @@ -47745,7 +47745,7 @@ _08021F0A: movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r4, =gStringVar4 - ldr r1, =gUnknown_085ED848 + ldr r1, =gText_XDotY3 adds r0, r4, 0 bl StringExpandPlaceholders movs r2, 0x1 @@ -47808,7 +47808,7 @@ _08021FDE: str r2, [sp] movs r5, 0 str r5, [sp, 0x4] - ldr r1, =gUnknown_085ED820 + ldr r1, =gText_Silkiness str r1, [sp, 0x8] movs r1, 0x2 movs r2, 0 @@ -47821,7 +47821,7 @@ _08021FDE: movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r4, =gStringVar4 - ldr r1, =gUnknown_085ED85C + ldr r1, =gText_Var1Percent adds r0, r4, 0 bl StringExpandPlaceholders movs r2, 0x1 @@ -47961,7 +47961,7 @@ _0802214E: adds r0, r6, 0 adds r0, 0x82 ldrb r0, [r0] - ldr r3, =gUnknown_085ED860 + ldr r3, =gText_PressesRankings movs r1, 0x14 movs r2, 0x3 bl sub_80219C8 @@ -48012,7 +48012,7 @@ _080221C8: adds r0, r6, 0 adds r0, 0x82 ldrb r0, [r0] - ldr r3, =gUnknown_085ED878 + ldr r3, =gText_CrushingResults movs r1, 0x16 movs r2, 0x3 bl sub_80219C8 @@ -48140,7 +48140,7 @@ _08022296: b _080224BA .pool _080222D0: - ldr r0, =gUnknown_085ED8D0 + ldr r0, =gText_BerryCrush2 mov r10, r0 movs r1, 0x1 negs r1, r1 @@ -48165,7 +48165,7 @@ _080222D0: adds r2, r7, 0 movs r3, 0x1 bl box_print - ldr r0, =gUnknown_085ED8DC + ldr r0, =gText_PressingSpeedRankings mov r10, r0 movs r0, 0x1 mov r1, r10 @@ -48195,7 +48195,7 @@ _08022336: movs r3, 0x1 bl ConvertIntToDecimalStringN ldr r0, =gStringVar4 - ldr r1, =gUnknown_085ED8F4 + ldr r1, =gText_Var1Players bl StringExpandPlaceholders ldrb r0, [r6, 0x2] ldr r1, =gUnknown_082F32D8 @@ -48209,7 +48209,7 @@ _08022336: mov r3, r10 bl box_print movs r0, 0x1 - ldr r1, =gUnknown_085ED850 + ldr r1, =gText_TimesPerSec movs r2, 0x1 negs r2, r2 bl GetStringWidth @@ -48222,7 +48222,7 @@ _08022336: str r1, [sp] movs r1, 0 str r1, [sp, 0x4] - ldr r1, =gUnknown_085ED850 + ldr r1, =gText_TimesPerSec str r1, [sp, 0x8] movs r1, 0x1 adds r2, r7, 0 @@ -48280,7 +48280,7 @@ _080223CA: movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r0, =gStringVar4 - ldr r1, =gUnknown_085ED848 + ldr r1, =gText_XDotY3 bl StringExpandPlaceholders movs r0, 0x1 ldr r1, =gStringVar4 @@ -52907,7 +52907,7 @@ sub_802482C: @ 802482C adds r2, r4, 0 adds r3, r5, 0 bl SetWindowBorderStyle - ldr r2, =gUnknown_085EDCDE + ldr r2, =gText_Powder movs r0, 0x1 str r0, [sp] movs r0, 0xFF @@ -59274,7 +59274,7 @@ _08027AFE: ldr r0, [r0] str r0, [sp] str r1, [sp, 0x4] - ldr r1, =gUnknown_085EDCE5 + ldr r1, =gText_BerryPickingRecords movs r0, 0x1 movs r2, 0 bl GetStringWidth @@ -59414,7 +59414,7 @@ sub_8027BEC: @ 8027BEC adds r0, r7, 0 movs r1, 0x11 bl FillWindowPixelBuffer - ldr r4, =gUnknown_085EDCE5 + ldr r4, =gText_BerryPickingRecords ldr r0, [sp, 0x18] lsls r2, r0, 3 movs r0, 0x1 @@ -62799,7 +62799,7 @@ _08029728: bcc _08029700 _0802972E: movs r5, 0 - ldr r4, =gUnknown_085EDE5D + ldr r4, =gText_SpacePoints cmp r5, r7 bcs _08029754 add r1, sp, 0x34 @@ -62939,7 +62939,7 @@ _080297CC: movs r1, 0 str r1, [sp, 0x8] movs r1, 0x1 - ldr r2, =gUnknown_085EDE5D + ldr r2, =gText_SpacePoints lsrs r3, 24 bl PrintTextOnWindow adds r0, r5, 0x1 @@ -63057,7 +63057,7 @@ _0802996C: ldrb r0, [r0] movs r1, 0x11 bl FillWindowPixelBuffer - ldr r2, =gUnknown_085EDD49 + ldr r2, =gText_BerryPickingResults mov r8, r2 movs r2, 0x1 negs r2, r2 @@ -63084,7 +63084,7 @@ _0802996C: ldr r0, [r4] add r0, r9 ldrb r0, [r0] - ldr r2, =gUnknown_085EDD6B + ldr r2, =gText_10P30P50P50P movs r1, 0x11 str r1, [sp] str r6, [sp, 0x4] @@ -63324,7 +63324,7 @@ _08029BFC: ldrb r0, [r0] movs r1, 0x11 bl FillWindowPixelBuffer - ldr r6, =gUnknown_085EDD86 + ldr r6, =gText_AnnouncingRankings movs r2, 0x1 negs r2, r2 movs r0, 0x1 @@ -63488,7 +63488,7 @@ _08029DA0: ldrb r0, [r0] movs r1, 0x11 bl FillWindowPixelBuffer - ldr r5, =gUnknown_085EDD9B + ldr r5, =gText_AnnouncingPrizes movs r2, 0x1 negs r2, r2 movs r0, 0x1 @@ -63525,7 +63525,7 @@ _08029DA0: adds r1, r5, 0 bl sub_81AFC0C ldr r7, =gStringVar4 - ldr r1, =gUnknown_085EDDBD + ldr r1, =gText_FirstPlacePrize adds r0, r7, 0 bl sub_81AFC28 ldr r0, [r4] @@ -63559,7 +63559,7 @@ _08029DA0: bl sub_81AFC0C cmp r4, 0x2 bne _08029E9C - ldr r1, =gUnknown_085EDDE2 + ldr r1, =gText_CantHoldAnyMore adds r0, r7, 0 bl sub_81AFC28 b _08029EA8 @@ -63567,7 +63567,7 @@ _08029DA0: _08029E9C: cmp r6, 0x1 bne _08029EA8 - ldr r1, =gUnknown_085EDDFB + ldr r1, =gText_FilledStorageSpace adds r0, r7, 0 bl sub_81AFC28 _08029EA8: @@ -63809,7 +63809,7 @@ _0802A0CC: ldr r0, [r7] add r0, r8 ldrb r0, [r0] - ldr r2, =gUnknown_085EDE18 + ldr r2, =gText_WantToPlayAgain movs r1, 0x5 str r1, [sp] movs r3, 0xFF @@ -63823,7 +63823,7 @@ _0802A0CC: ldr r0, [r7] add r0, r10 ldrb r0, [r0] - ldr r2, =gUnknown_085EAE62 + ldr r2, =gText_Yes str r6, [sp] mov r3, r9 str r3, [sp, 0x4] @@ -63835,7 +63835,7 @@ _0802A0CC: ldr r0, [r7] add r0, r10 ldrb r0, [r0] - ldr r2, =gUnknown_085EAE66 + ldr r2, =gText_No movs r1, 0x11 str r1, [sp] mov r3, r9 @@ -63912,7 +63912,7 @@ _0802A1DC: ldr r0, [r7] add r0, r8 ldrb r0, [r0] - ldr r2, =gUnknown_085EAE62 + ldr r2, =gText_Yes movs r1, 0x1 str r1, [sp] movs r3, 0xFF @@ -63927,7 +63927,7 @@ _0802A1DC: ldr r0, [r7] add r0, r8 ldrb r0, [r0] - ldr r2, =gUnknown_085EAE66 + ldr r2, =gText_No movs r1, 0x11 str r1, [sp] mov r3, r10 @@ -64234,7 +64234,7 @@ _0802A4AC: ldr r0, [r5] adds r0, r4 ldrb r0, [r0] - ldr r2, =gUnknown_085EDE65 + ldr r2, =gText_CommunicationStandby3 movs r1, 0x5 str r1, [sp] movs r1, 0xFF @@ -64394,7 +64394,7 @@ _0802A610: ldr r0, [r6] adds r0, r4 ldrb r0, [r0] - ldr r2, =gUnknown_085EDE2C + ldr r2, =gText_SomeoneDroppedOut movs r1, 0x5 str r1, [sp] movs r1, 0xFF @@ -70271,7 +70271,7 @@ _0802D46A: strh r0, [r1, 0x12] lsls r0, 24 lsrs r0, 24 - ldr r2, =gUnknown_085EDF2A + ldr r2, =gText_WantToPlayAgain2 movs r1, 0x1 str r1, [sp] movs r1, 0xFF @@ -70473,7 +70473,7 @@ _0802D606: strh r0, [r1, 0x12] lsls r0, 24 lsrs r0, 24 - ldr r2, =gUnknown_085EDF3E + ldr r2, =gText_SomeoneDroppedOut2 movs r1, 0x1 str r1, [sp] movs r1, 0xFF @@ -70553,7 +70553,7 @@ _0802D6AA: strh r0, [r1, 0x12] lsls r0, 24 lsrs r0, 24 - ldr r2, =gUnknown_085EDF6F + ldr r2, =gText_CommunicationStandby4 movs r1, 0x1 str r1, [sp] movs r1, 0xFF @@ -70740,7 +70740,7 @@ sub_802D7E8: @ 802D7E8 bl sub_81AFC0C ldr r0, [r5] adds r0, 0xA6 - ldr r1, =gUnknown_085EDED3 + ldr r1, =gText_AwesomeWonF701F700 bl sub_81AFC28 movs r0, 0x4 movs r1, 0x8 @@ -70793,7 +70793,7 @@ sub_802D884: @ 802D884 bl sub_81AFC0C ldr r0, [r4] adds r0, 0xA6 - ldr r1, =gUnknown_085EDEF4 + ldr r1, =gText_FilledStorageSpace2 bl sub_81AFC28 movs r0, 0x4 movs r1, 0x8 @@ -70846,7 +70846,7 @@ sub_802D8FC: @ 802D8FC bl sub_81AFC0C ldr r0, [r4] adds r0, 0xA6 - ldr r1, =gUnknown_085EDF11 + ldr r1, =gText_CantHoldMore bl sub_81AFC28 movs r0, 0x4 movs r1, 0x9 @@ -71167,7 +71167,7 @@ sub_802DB8C: @ 802DB8C str r0, [sp] movs r4, 0 str r4, [sp, 0x4] - ldr r0, =gUnknown_085EDE7C + ldr r0, =gText_SpacePoints2 str r0, [sp, 0x8] movs r0, 0 movs r1, 0 @@ -71177,7 +71177,7 @@ sub_802DB8C: @ 802DB8C add r0, sp, 0xC str r0, [sp] str r4, [sp, 0x4] - ldr r0, =gUnknown_085EDE84 + ldr r0, =gText_SpaceTimes3 str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0 @@ -72272,7 +72272,7 @@ _0802E416: ldr r0, [r0] str r0, [sp] str r1, [sp, 0x4] - ldr r1, =gUnknown_085EDE8D + ldr r1, =gText_PkmnJumpRecords movs r0, 0x1 movs r2, 0 bl GetStringWidth @@ -72407,7 +72407,7 @@ sub_802E500: @ 802E500 adds r0, r4, 0 movs r1, 0x11 bl FillWindowPixelBuffer - ldr r5, =gUnknown_085EDE8D + ldr r5, =gText_PkmnJumpRecords ldr r1, [sp, 0x1C] lsls r2, r1, 3 movs r0, 0x1 diff --git a/asm/macros.inc b/asm/macros.inc index 642b6a33f..135cfac61 100644 --- a/asm/macros.inc +++ b/asm/macros.inc @@ -20,12 +20,43 @@ .2byte \tag .endm + .macro null_obj_tiles + obj_tiles 0, 0, 0 + .endm + .macro obj_pal address, tag .4byte \address .2byte \tag .2byte 0@ padding .endm + .macro null_obj_pal + obj_pal 0, 0 + .endm + + .macro paired_pals tag, address + .2byte \tag + .2byte 0 @ padding + .4byte \address + .endm + +@ For object animation frames. + .macro obj_frame_tiles address, uncompressed_size + .4byte \address + .2byte \uncompressed_size + .2byte 0 @ padding + .endm + + .macro spr_template tile_tag, pal_tag, oam, anims, images, affine_anims, callback + .2byte \tile_tag + .2byte \pal_tag + .4byte \oam + .4byte \anims + .4byte \images + .4byte \affine_anims + .4byte \callback + .endm + @ Berry trees have a table defining the palette slot used for each of their 5 @ stages. However, the first 2 stages always use the same slots regardless of @ the type of tree and the slots of the last 3 stages always equal each other. diff --git a/asm/macros/window.inc b/asm/macros/window.inc index 04c148114..b7291138b 100644 --- a/asm/macros/window.inc +++ b/asm/macros/window.inc @@ -8,6 +8,10 @@ .2byte \vram_tile_offset .endm + .macro window_template_terminator + window_template 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 + .endm + .macro glyph_width_func font_id, func .4byte \font_id .4byte \func diff --git a/asm/mail.s b/asm/mail.s index 77cbc4e83..5f76a5ef0 100644 --- a/asm/mail.s +++ b/asm/mail.s @@ -691,7 +691,7 @@ _08121A8A: ldrb r0, [r0] cmp r0, 0 bne _08121AF0 - ldr r1, =gUnknown_085EEA78 + ldr r1, =gText_FromSpace adds r0, r2, 0 bl StringCopy ldr r0, [r4] @@ -825,7 +825,7 @@ _08121BB8: cmp r6, r0 bcc _08121B60 _08121BCC: - ldr r1, =gUnknown_085EEA78 + ldr r1, =gText_FromSpace add r0, sp, 0xC bl StringCopy ldr r4, =gUnknown_0203A134 diff --git a/asm/main_menu.s b/asm/main_menu.s index ed04ba6f3..40466ae1b 100644 --- a/asm/main_menu.s +++ b/asm/main_menu.s @@ -2951,7 +2951,7 @@ task_new_game_prof_birch_speech_17: @ 8031090 str r0, [sp, 0x4] movs r0, 0 movs r3, 0 - bl do_choose_name_or_words_screen + bl DoNamingScreen _080310EC: add sp, 0x8 pop {r4,r5} @@ -4547,7 +4547,7 @@ fmt_time: @ 8031E94 push {r4-r6,lr} sub sp, 0xC ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EDCC3 + ldr r1, =gText_ContinueMenuPlayer adds r0, r4, 0 bl StringExpandPlaceholders ldr r6, =gUnknown_082FF0E3 @@ -4589,7 +4589,7 @@ fmt_player: @ 8031EF8 push {r4-r6,lr} sub sp, 0x2C ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EDCCA + ldr r1, =gText_ContinueMenuTime adds r0, r4, 0 bl StringExpandPlaceholders ldr r6, =gUnknown_082FF0E3 @@ -4664,7 +4664,7 @@ _08031FAA: lsls r0, 16 lsrs r7, r0, 16 ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EDCCF + ldr r1, =gText_ContinueMenuPokedex adds r0, r4, 0 bl StringExpandPlaceholders ldr r6, =gUnknown_082FF0E3 @@ -4728,7 +4728,7 @@ _08032030: cmp r4, r0 bls _0803201C ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EDCD7 + ldr r1, =gText_ContinueMenuBadges adds r0, r4, 0 bl StringExpandPlaceholders ldr r6, =gUnknown_082FF0E3 diff --git a/asm/map_obj_8097404.s b/asm/map_obj_8097404.s index 50284a013..4ed8e3bcd 100644 --- a/asm/map_obj_8097404.s +++ b/asm/map_obj_8097404.s @@ -97,7 +97,7 @@ _0809749A: lsls r0, 31 cmp r0, 0 beq _080974B8 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r0, [r0, 0x5] cmp r4, r0 beq _080974B8 @@ -133,7 +133,7 @@ _080974DA: lsls r0, 31 cmp r0, 0 beq _080974FC - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r0, [r0, 0x5] cmp r4, r0 beq _080974FC @@ -769,16 +769,16 @@ _08097964: .pool thumb_func_end sub_80978E4 - thumb_func_start sub_8097978 -@ void sub_8097978(struct obj *object, u16 a2) -sub_8097978: @ 8097978 + thumb_func_start SetFieldObjectStepTimer +@ void SetFieldObjectStepTimer(struct obj *object, u16 a2) +SetFieldObjectStepTimer: @ 8097978 strh r1, [r0, 0x34] bx lr - thumb_func_end sub_8097978 + thumb_func_end SetFieldObjectStepTimer - thumb_func_start sub_809797C -@ bool8 sub_809797C(struct obj *object) -sub_809797C: @ 809797C + thumb_func_start RunFieldObjectStepTimer +@ bool8 RunFieldObjectStepTimer(struct obj *object) +RunFieldObjectStepTimer: @ 809797C push {lr} ldrh r1, [r0, 0x34] subs r1, 0x1 @@ -793,7 +793,7 @@ _0809798E: _08097990: pop {r1} bx r1 - thumb_func_end sub_809797C + thumb_func_end RunFieldObjectStepTimer thumb_func_start obj_anim_image_set_and_seek obj_anim_image_set_and_seek: @ 8097994 @@ -1396,7 +1396,7 @@ oe_exec_and_other_stuff: @ 8097DD0 adds r0, r1, 0 lsls r4, 24 lsrs r4, 24 - ldr r1, =gUnknown_02038C08 + ldr r1, =gFieldEffectSpawnParams adds r2, r1, 0x4 adds r3, r1, 0 adds r3, 0x8 @@ -1434,7 +1434,7 @@ DoRippleFieldEffect: @ 8097E14 adds r4, r1, 0 ldrb r0, [r0, 0x5] bl GetFieldObjectGraphicsInfo - ldr r2, =gUnknown_02038C08 + ldr r2, =gFieldEffectSpawnParams movs r3, 0x20 ldrsh r1, [r4, r3] str r1, [r2] @@ -1771,7 +1771,7 @@ _08098082: lsls r0, 31 cmp r0, 0 beq _080980A8 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r0, [r0, 0x5] cmp r4, r0 beq _080980A8 diff --git a/asm/map_obj_lock.s b/asm/map_obj_lock.s index 6530c268b..60757cdd0 100644 --- a/asm/map_obj_lock.s +++ b/asm/map_obj_lock.s @@ -8,7 +8,7 @@ thumb_func_start walkrun_is_standing_still walkrun_is_standing_still: @ 8098388 push {lr} - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r0, [r0, 0x3] cmp r0, 0x1 beq _0809839C diff --git a/asm/mauville_old_man.s b/asm/mauville_old_man.s index 05d15601c..7b21e19e7 100644 --- a/asm/mauville_old_man.s +++ b/asm/mauville_old_man.s @@ -1400,7 +1400,7 @@ _08120BB0: movs r2, 0x8 bl memset mov r0, sp - ldr r1, =gUnknown_085EDFB0 + ldr r1, =gText_Friend bl StringCopy adds r0, r5, 0 mov r1, sp @@ -2218,7 +2218,7 @@ sub_8121178: @ 8121178 sub_81211EC: @ 81211EC push {r4,r5,lr} sub sp, 0xC - ldr r1, =gUnknown_085EB7EA + ldr r1, =gText_Exit movs r0, 0x1 movs r2, 0 bl GetStringWidth @@ -2309,7 +2309,7 @@ _08121272: _081212AA: ldr r5, =gUnknown_0203A130 ldrb r0, [r5] - ldr r2, =gUnknown_085EB7EA + ldr r2, =gText_Exit lsls r1, r4, 4 adds r1, 0x1 lsls r1, 24 diff --git a/asm/menu.s b/asm/menu.s index 553161d40..71ff9218c 100755 --- a/asm/menu.s +++ b/asm/menu.s @@ -1250,7 +1250,7 @@ RedrawMenuCursor: @ 8198448 bl FillWindowPixelRect ldrb r0, [r5, 0x5] ldrb r1, [r5, 0x6] - ldr r2, =gUnknown_085EE498 + ldr r2, =gText_SelectorArrow3 ldrb r3, [r5] ldrb r4, [r5, 0x8] mov r6, r8 @@ -2139,7 +2139,7 @@ sub_8198AF8: @ 8198AF8 adds r2, r4, 0 adds r3, r5, 0 bl SetWindowBorderStyle - ldr r0, =gUnknown_085EE491 + ldr r0, =gText_YesNo str r0, [sp, 0xC] add r1, sp, 0xC ldrb r0, [r7] @@ -2877,7 +2877,7 @@ sub_8199060: @ 8199060 lsrs r3, 24 ldrb r0, [r5, 0x5] ldrb r1, [r5, 0x6] - ldr r2, =gUnknown_085EE498 + ldr r2, =gText_SelectorArrow3 str r3, [sp] movs r3, 0 str r3, [sp, 0x4] @@ -3668,7 +3668,7 @@ CreateYesNoMenu: @ 81996C0 adds r2, r4, 0 adds r3, r5, 0 bl SetWindowBorderStyle - ldr r0, =gUnknown_085EE491 + ldr r0, =gText_YesNo str r0, [sp] mov r1, sp mov r2, r8 @@ -5201,7 +5201,7 @@ sub_819A25C: @ 819A25C lsrs r4, 24 lsls r0, 16 lsrs r0, 16 - bl sub_80D30B0 + bl GetValidMonIconPalettePtr adds r1, r4, 0 movs r2, 0x20 bl LoadPalette @@ -5228,7 +5228,7 @@ sub_819A27C: @ 819A27C lsls r5, 16 lsrs r5, 16 movs r2, 0x1 - bl sub_80D2EDC + bl GetMonIconPtr adds r1, r0, 0 movs r0, 0x20 str r0, [sp] diff --git a/asm/metatile_behavior.s b/asm/metatile_behavior.s deleted file mode 100644 index 30b0f4348..000000000 --- a/asm/metatile_behavior.s +++ /dev/null @@ -1,2610 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start ShouldDoJumpLandingDustEffect -ShouldDoJumpLandingDustEffect: @ 8088DEC - movs r0, 0x1 - bx lr - thumb_func_end ShouldDoJumpLandingDustEffect - - thumb_func_start sub_8088DF0 -sub_8088DF0: @ 8088DF0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_08486EFC - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08088E0C - movs r0, 0 - b _08088E0E - .pool -_08088E0C: - movs r0, 0x1 -_08088E0E: - pop {r1} - bx r1 - thumb_func_end sub_8088DF0 - - thumb_func_start MetatileBehavior_IsJumpEast -MetatileBehavior_IsJumpEast: @ 8088E14 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x38 - beq _08088E22 - movs r0, 0 - b _08088E24 -_08088E22: - movs r0, 0x1 -_08088E24: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsJumpEast - - thumb_func_start MetatileBehavior_IsJumpWest -MetatileBehavior_IsJumpWest: @ 8088E28 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x39 - beq _08088E36 - movs r0, 0 - b _08088E38 -_08088E36: - movs r0, 0x1 -_08088E38: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsJumpWest - - thumb_func_start MetatileBehavior_IsJumpNorth -MetatileBehavior_IsJumpNorth: @ 8088E3C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3A - beq _08088E4A - movs r0, 0 - b _08088E4C -_08088E4A: - movs r0, 0x1 -_08088E4C: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsJumpNorth - - thumb_func_start MetatileBehavior_IsJumpSouth -MetatileBehavior_IsJumpSouth: @ 8088E50 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3B - beq _08088E5E - movs r0, 0 - b _08088E60 -_08088E5E: - movs r0, 0x1 -_08088E60: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsJumpSouth - - thumb_func_start sub_8088E64 -sub_8088E64: @ 8088E64 - push {lr} - lsls r0, 24 - movs r1, 0xFE - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x1 - bls _08088E78 - movs r0, 0 - b _08088E7A -_08088E78: - movs r0, 0x1 -_08088E7A: - pop {r1} - bx r1 - thumb_func_end sub_8088E64 - - thumb_func_start MetatileBehavior_IsSandOrDeepSand -MetatileBehavior_IsSandOrDeepSand: @ 8088E80 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x21 - beq _08088E8E - cmp r0, 0x6 - bne _08088E92 -_08088E8E: - movs r0, 0x1 - b _08088E94 -_08088E92: - movs r0, 0 -_08088E94: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSandOrDeepSand - - thumb_func_start MetatileBehavior_IsDeepSand -MetatileBehavior_IsDeepSand: @ 8088E98 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x6 - beq _08088EA6 - movs r0, 0 - b _08088EA8 -_08088EA6: - movs r0, 0x1 -_08088EA8: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsDeepSand - - thumb_func_start MetatileBehavior_IsReflective -MetatileBehavior_IsReflective: @ 8088EAC - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x10 - beq _08088ECA - cmp r0, 0x16 - beq _08088ECA - cmp r0, 0x1A - beq _08088ECA - cmp r0, 0x20 - beq _08088ECA - cmp r0, 0x14 - beq _08088ECA - cmp r0, 0x2B - bne _08088ECE -_08088ECA: - movs r0, 0x1 - b _08088ED0 -_08088ECE: - movs r0, 0 -_08088ED0: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsReflective - - thumb_func_start MetatileBehavior_IsIce -MetatileBehavior_IsIce: @ 8088ED4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x20 - beq _08088EE2 - movs r0, 0 - b _08088EE4 -_08088EE2: - movs r0, 0x1 -_08088EE4: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsIce - - thumb_func_start is_tile_x69_2_warp_door -is_tile_x69_2_warp_door: @ 8088EE8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x69 - beq _08088EF6 - movs r0, 0 - b _08088EF8 -_08088EF6: - movs r0, 0x1 -_08088EF8: - pop {r1} - bx r1 - thumb_func_end is_tile_x69_2_warp_door - - thumb_func_start sub_8088EFC -sub_8088EFC: @ 8088EFC - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x8D - beq _08088F0A - cmp r0, 0x69 - bne _08088F0E -_08088F0A: - movs r0, 0x1 - b _08088F10 -_08088F0E: - movs r0, 0 -_08088F10: - pop {r1} - bx r1 - thumb_func_end sub_8088EFC - - thumb_func_start MetatileBehavior_IsEscalator -MetatileBehavior_IsEscalator: @ 8088F14 - push {lr} - lsls r0, 24 - movs r1, 0x96 - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x1 - bls _08088F28 - movs r0, 0 - b _08088F2A -_08088F28: - movs r0, 0x1 -_08088F2A: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsEscalator - - thumb_func_start sub_8088F30 -sub_8088F30: @ 8088F30 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - beq _08088F3E - movs r0, 0 - b _08088F40 -_08088F3E: - movs r0, 0x1 -_08088F40: - pop {r1} - bx r1 - thumb_func_end sub_8088F30 - - thumb_func_start MetatileBehavior_IsLadder -MetatileBehavior_IsLadder: @ 8088F44 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x61 - beq _08088F52 - movs r0, 0 - b _08088F54 -_08088F52: - movs r0, 0x1 -_08088F54: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsLadder - - thumb_func_start sub_8088F58 -sub_8088F58: @ 8088F58 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x60 - beq _08088F6A - cmp r0, 0x6C - beq _08088F6A - cmp r0, 0x6E - bne _08088F6E -_08088F6A: - movs r0, 0x1 - b _08088F70 -_08088F6E: - movs r0, 0 -_08088F70: - pop {r1} - bx r1 - thumb_func_end sub_8088F58 - - thumb_func_start sub_8088F74 -sub_8088F74: @ 8088F74 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x6E - beq _08088F82 - movs r0, 0 - b _08088F84 -_08088F82: - movs r0, 0x1 -_08088F84: - pop {r1} - bx r1 - thumb_func_end sub_8088F74 - - thumb_func_start MetatileBehavior_IsSurfableWaterOrUnderwater -MetatileBehavior_IsSurfableWaterOrUnderwater: @ 8088F88 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_08486EFC - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08088FA4 - movs r0, 0 - b _08088FA6 - .pool -_08088FA4: - movs r0, 0x1 -_08088FA6: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSurfableWaterOrUnderwater - - thumb_func_start MetatileBehavior_IsEastArrowWarp -MetatileBehavior_IsEastArrowWarp: @ 8088FAC - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x62 - beq _08088FBA - movs r0, 0 - b _08088FBC -_08088FBA: - movs r0, 0x1 -_08088FBC: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsEastArrowWarp - - thumb_func_start MetatileBehavior_IsWestArrowWarp -MetatileBehavior_IsWestArrowWarp: @ 8088FC0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x63 - beq _08088FCE - movs r0, 0 - b _08088FD0 -_08088FCE: - movs r0, 0x1 -_08088FD0: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsWestArrowWarp - - thumb_func_start MetatileBehavior_IsNorthArrowWarp -MetatileBehavior_IsNorthArrowWarp: @ 8088FD4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x64 - beq _08088FE2 - cmp r0, 0x1B - bne _08088FE6 -_08088FE2: - movs r0, 0x1 - b _08088FE8 -_08088FE6: - movs r0, 0 -_08088FE8: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsNorthArrowWarp - - thumb_func_start MetatileBehavior_IsSouthArrowWarp -MetatileBehavior_IsSouthArrowWarp: @ 8088FEC - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x65 - beq _08088FFE - cmp r0, 0x6D - beq _08088FFE - cmp r0, 0x1C - bne _08089002 -_08088FFE: - movs r0, 0x1 - b _08089004 -_08089002: - movs r0, 0 -_08089004: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSouthArrowWarp - - thumb_func_start sub_8089008 -sub_8089008: @ 8089008 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r5, 0 - adds r0, r4, 0 - bl MetatileBehavior_IsEastArrowWarp - lsls r0, 24 - cmp r0, 0 - bne _08089040 - adds r0, r4, 0 - bl MetatileBehavior_IsWestArrowWarp - lsls r0, 24 - cmp r0, 0 - bne _08089040 - adds r0, r4, 0 - bl MetatileBehavior_IsNorthArrowWarp - lsls r0, 24 - cmp r0, 0 - bne _08089040 - adds r0, r4, 0 - bl MetatileBehavior_IsSouthArrowWarp - lsls r0, 24 - cmp r0, 0 - beq _08089042 -_08089040: - movs r5, 0x1 -_08089042: - adds r0, r5, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8089008 - - thumb_func_start sub_808904C -sub_808904C: @ 808904C - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0xC0 - lsls r2, 24 - adds r0, r2 - lsrs r0, 24 - cmp r0, 0x8 - bls _08089082 - adds r0, r1, 0 - subs r0, 0x50 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bls _08089082 - cmp r1, 0xD0 - beq _08089082 - cmp r1, 0xD2 - beq _08089082 - cmp r1, 0x13 - beq _08089082 - cmp r1, 0x20 - beq _08089082 - cmp r1, 0xBB - beq _08089082 - cmp r1, 0xBC - bne _08089086 -_08089082: - movs r0, 0x1 - b _08089088 -_08089086: - movs r0, 0 -_08089088: - pop {r1} - bx r1 - thumb_func_end sub_808904C - - thumb_func_start MetatileBehavior_IsIce_2 -@ bool8 MetatileBehavior_IsIce_2(u8 metatileBehavior) -MetatileBehavior_IsIce_2: @ 808908C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x20 - beq _0808909A - movs r0, 0 - b _0808909C -_0808909A: - movs r0, 0x1 -_0808909C: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsIce_2 - - thumb_func_start MetatileBehavior_IsTrickHouseSlipperyFloor -@ bool8 MetatileBehavior_IsTrickHouseSlipperyFloor(u8 metatileBehavior) -MetatileBehavior_IsTrickHouseSlipperyFloor: @ 80890A0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x48 - beq _080890AE - movs r0, 0 - b _080890B0 -_080890AE: - movs r0, 0x1 -_080890B0: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsTrickHouseSlipperyFloor - - thumb_func_start MetatileBehavior_0x05 -MetatileBehavior_0x05: @ 80890B4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - beq _080890C2 - movs r0, 0 - b _080890C4 -_080890C2: - movs r0, 0x1 -_080890C4: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_0x05 - - thumb_func_start MetatileBehavior_IsWalkNorth -@ bool8 MetatileBehavior_IsWalkNorth(u8 metatileBehavior) -MetatileBehavior_IsWalkNorth: @ 80890C8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x42 - beq _080890D6 - movs r0, 0 - b _080890D8 -_080890D6: - movs r0, 0x1 -_080890D8: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsWalkNorth - - thumb_func_start MetatileBehavior_IsWalkSouth -@ bool8 MetatileBehavior_IsWalkSouth(u8 metatileBehavior) -MetatileBehavior_IsWalkSouth: @ 80890DC - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x43 - beq _080890EA - movs r0, 0 - b _080890EC -_080890EA: - movs r0, 0x1 -_080890EC: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsWalkSouth - - thumb_func_start MetatileBehavior_IsWalkWest -@ bool8 MetatileBehavior_IsWalkWest(u8 metatileBehavior) -MetatileBehavior_IsWalkWest: @ 80890F0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x41 - beq _080890FE - movs r0, 0 - b _08089100 -_080890FE: - movs r0, 0x1 -_08089100: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsWalkWest - - thumb_func_start MetatileBehavior_IsWalkEast -@ bool8 MetatileBehavior_IsWalkEast(u8 metatileBehavior) -MetatileBehavior_IsWalkEast: @ 8089104 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _08089112 - movs r0, 0 - b _08089114 -_08089112: - movs r0, 0x1 -_08089114: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsWalkEast - - thumb_func_start MetatileBehavior_IsNorthwardCurrent -@ bool8 MetatileBehavior_IsNorthwardCurrent(u8 metatileBehavior) -MetatileBehavior_IsNorthwardCurrent: @ 8089118 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x52 - beq _08089126 - movs r0, 0 - b _08089128 -_08089126: - movs r0, 0x1 -_08089128: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsNorthwardCurrent - - thumb_func_start MetatileBehavior_IsSouthwardCurrent -@ bool8 MetatileBehavior_IsSouthwardCurrent(u8 metatileBehavior) -MetatileBehavior_IsSouthwardCurrent: @ 808912C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x53 - beq _0808913A - movs r0, 0 - b _0808913C -_0808913A: - movs r0, 0x1 -_0808913C: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSouthwardCurrent - - thumb_func_start MetatileBehavior_IsWestwardCurrent -@ bool8 MetatileBehavior_IsWestwardCurrent(u8 metatileBehavior) -MetatileBehavior_IsWestwardCurrent: @ 8089140 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x51 - beq _0808914E - movs r0, 0 - b _08089150 -_0808914E: - movs r0, 0x1 -_08089150: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsWestwardCurrent - - thumb_func_start MetatileBehavior_IsEastwardCurrent -@ bool8 MetatileBehavior_IsEastwardCurrent(u8 metatileBehavior) -MetatileBehavior_IsEastwardCurrent: @ 8089154 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x50 - beq _08089162 - movs r0, 0 - b _08089164 -_08089162: - movs r0, 0x1 -_08089164: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsEastwardCurrent - - thumb_func_start MetatileBehavior_IsSlideNorth -@ bool8 MetatileBehavior_IsSlideNorth(u8 metatileBehavior) -MetatileBehavior_IsSlideNorth: @ 8089168 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x46 - beq _08089176 - movs r0, 0 - b _08089178 -_08089176: - movs r0, 0x1 -_08089178: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSlideNorth - - thumb_func_start MetatileBehavior_IsSlideSouth -@ bool8 MetatileBehavior_IsSlideSouth(u8 metatileBehavior) -MetatileBehavior_IsSlideSouth: @ 808917C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x47 - beq _0808918A - movs r0, 0 - b _0808918C -_0808918A: - movs r0, 0x1 -_0808918C: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSlideSouth - - thumb_func_start MetatileBehavior_IsSlideWest -@ bool8 MetatileBehavior_IsSlideWest(u8 metatileBehavior) -MetatileBehavior_IsSlideWest: @ 8089190 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x45 - beq _0808919E - movs r0, 0 - b _080891A0 -_0808919E: - movs r0, 0x1 -_080891A0: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSlideWest - - thumb_func_start MetatileBehavior_IsSlideEast -@ bool8 MetatileBehavior_IsSlideEast(u8 metatileBehavior) -MetatileBehavior_IsSlideEast: @ 80891A4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x44 - beq _080891B2 - movs r0, 0 - b _080891B4 -_080891B2: - movs r0, 0x1 -_080891B4: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSlideEast - - thumb_func_start MetatileBehavior_IsCounter -MetatileBehavior_IsCounter: @ 80891B8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x80 - beq _080891C6 - movs r0, 0 - b _080891C8 -_080891C6: - movs r0, 0x1 -_080891C8: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsCounter - - thumb_func_start MetatileBehavior_IsPlayerFacingTVScreen -@ bool8 MetatileBehavior_IsPlayerFacingTVScreen(u8 behavior, u8 direction) -MetatileBehavior_IsPlayerFacingTVScreen: @ 80891CC - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x2 - bne _080891DE - cmp r0, 0x86 - beq _080891E2 -_080891DE: - movs r0, 0 - b _080891E4 -_080891E2: - movs r0, 0x1 -_080891E4: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsPlayerFacingTVScreen - - thumb_func_start MetatileBehavior_IsPC -MetatileBehavior_IsPC: @ 80891E8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x83 - beq _080891F6 - movs r0, 0 - b _080891F8 -_080891F6: - movs r0, 0x1 -_080891F8: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsPC - - thumb_func_start is_tile_x84 -is_tile_x84: @ 80891FC - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x84 - beq _0808920A - movs r0, 0 - b _0808920C -_0808920A: - movs r0, 0x1 -_0808920C: - pop {r1} - bx r1 - thumb_func_end is_tile_x84 - - thumb_func_start sub_8089210 -sub_8089210: @ 8089210 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x91 - beq _08089232 - cmp r0, 0x93 - beq _08089232 - cmp r0, 0x95 - beq _08089232 - cmp r0, 0x97 - beq _08089232 - cmp r0, 0x99 - beq _08089232 - cmp r0, 0x9B - beq _08089232 - cmp r0, 0x9D - bne _08089236 -_08089232: - movs r0, 0x1 - b _08089238 -_08089236: - movs r0, 0 -_08089238: - pop {r1} - bx r1 - thumb_func_end sub_8089210 - - thumb_func_start sub_808923C -sub_808923C: @ 808923C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x90 - beq _08089252 - cmp r0, 0x92 - beq _08089252 - cmp r0, 0x94 - beq _08089252 - cmp r0, 0x9A - bne _08089256 -_08089252: - movs r0, 0x1 - b _08089258 -_08089256: - movs r0, 0 -_08089258: - pop {r1} - bx r1 - thumb_func_end sub_808923C - - thumb_func_start sub_808925C -sub_808925C: @ 808925C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x96 - beq _0808926A - cmp r0, 0x9C - bne _0808926E -_0808926A: - movs r0, 0x1 - b _08089270 -_0808926E: - movs r0, 0 -_08089270: - pop {r1} - bx r1 - thumb_func_end sub_808925C - - thumb_func_start is_tile_x98 -is_tile_x98: @ 8089274 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x98 - beq _08089282 - movs r0, 0 - b _08089284 -_08089282: - movs r0, 0x1 -_08089284: - pop {r1} - bx r1 - thumb_func_end is_tile_x98 - - thumb_func_start sub_8089288 -sub_8089288: @ 8089288 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xB0 - beq _08089296 - movs r0, 0 - b _08089298 -_08089296: - movs r0, 0x1 -_08089298: - pop {r1} - bx r1 - thumb_func_end sub_8089288 - - thumb_func_start sub_808929C -sub_808929C: @ 808929C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xB1 - beq _080892AA - movs r0, 0 - b _080892AC -_080892AA: - movs r0, 0x1 -_080892AC: - pop {r1} - bx r1 - thumb_func_end sub_808929C - - thumb_func_start sub_80892B0 -sub_80892B0: @ 80892B0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xB2 - beq _080892BE - movs r0, 0 - b _080892C0 -_080892BE: - movs r0, 0x1 -_080892C0: - pop {r1} - bx r1 - thumb_func_end sub_80892B0 - - thumb_func_start sub_80892C4 -sub_80892C4: @ 80892C4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xB3 - beq _080892D2 - movs r0, 0 - b _080892D4 -_080892D2: - movs r0, 0x1 -_080892D4: - pop {r1} - bx r1 - thumb_func_end sub_80892C4 - - thumb_func_start sub_80892D8 -sub_80892D8: @ 80892D8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xB9 - beq _080892E6 - movs r0, 0 - b _080892E8 -_080892E6: - movs r0, 0x1 -_080892E8: - pop {r1} - bx r1 - thumb_func_end sub_80892D8 - - thumb_func_start sub_80892EC -sub_80892EC: @ 80892EC - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xC6 - beq _080892FA - movs r0, 0 - b _080892FC -_080892FA: - movs r0, 0x1 -_080892FC: - pop {r1} - bx r1 - thumb_func_end sub_80892EC - - thumb_func_start sub_8089300 -sub_8089300: @ 8089300 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xC7 - beq _0808930E - movs r0, 0 - b _08089310 -_0808930E: - movs r0, 0x1 -_08089310: - pop {r1} - bx r1 - thumb_func_end sub_8089300 - - thumb_func_start sub_8089314 -sub_8089314: @ 8089314 - push {lr} - lsls r0, 24 - cmp r0, 0 - beq _08089320 - movs r0, 0 - b _08089322 -_08089320: - movs r0, 0x1 -_08089322: - pop {r1} - bx r1 - thumb_func_end sub_8089314 - - thumb_func_start sub_8089328 -sub_8089328: @ 8089328 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xB7 - beq _08089336 - movs r0, 0 - b _08089338 -_08089336: - movs r0, 0x1 -_08089338: - pop {r1} - bx r1 - thumb_func_end sub_8089328 - - thumb_func_start sub_808933C -sub_808933C: @ 808933C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xB2 - beq _0808934A - movs r0, 0 - b _0808934C -_0808934A: - movs r0, 0x1 -_0808934C: - pop {r1} - bx r1 - thumb_func_end sub_808933C - - thumb_func_start sub_8089350 -sub_8089350: @ 8089350 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xB5 - beq _0808935E - movs r0, 0 - b _08089360 -_0808935E: - movs r0, 0x1 -_08089360: - pop {r1} - bx r1 - thumb_func_end sub_8089350 - - thumb_func_start sub_8089364 -sub_8089364: @ 8089364 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xC3 - beq _08089372 - movs r0, 0 - b _08089374 -_08089372: - movs r0, 0x1 -_08089374: - pop {r1} - bx r1 - thumb_func_end sub_8089364 - - thumb_func_start sub_8089378 -sub_8089378: @ 8089378 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xC2 - beq _08089386 - movs r0, 0 - b _08089388 -_08089386: - movs r0, 0x1 -_08089388: - pop {r1} - bx r1 - thumb_func_end sub_8089378 - - thumb_func_start sub_808938C -sub_808938C: @ 808938C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xB8 - beq _0808939A - movs r0, 0 - b _0808939C -_0808939A: - movs r0, 0x1 -_0808939C: - pop {r1} - bx r1 - thumb_func_end sub_808938C - - thumb_func_start sub_80893A0 -sub_80893A0: @ 80893A0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xBE - beq _080893AE - movs r0, 0 - b _080893B0 -_080893AE: - movs r0, 0x1 -_080893B0: - pop {r1} - bx r1 - thumb_func_end sub_80893A0 - - thumb_func_start sub_80893B4 -sub_80893B4: @ 80893B4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xBD - beq _080893C2 - movs r0, 0 - b _080893C4 -_080893C2: - movs r0, 0x1 -_080893C4: - pop {r1} - bx r1 - thumb_func_end sub_80893B4 - - thumb_func_start sub_80893C8 -sub_80893C8: @ 80893C8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xBA - beq _080893D6 - movs r0, 0 - b _080893D8 -_080893D6: - movs r0, 0x1 -_080893D8: - pop {r1} - bx r1 - thumb_func_end sub_80893C8 - - thumb_func_start sub_80893DC -sub_80893DC: @ 80893DC - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xBF - beq _080893EA - movs r0, 0 - b _080893EC -_080893EA: - movs r0, 0x1 -_080893EC: - pop {r1} - bx r1 - thumb_func_end sub_80893DC - - thumb_func_start sub_80893F0 -sub_80893F0: @ 80893F0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xC4 - beq _080893FE - movs r0, 0 - b _08089400 -_080893FE: - movs r0, 0x1 -_08089400: - pop {r1} - bx r1 - thumb_func_end sub_80893F0 - - thumb_func_start sub_8089404 -sub_8089404: @ 8089404 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xC5 - beq _08089412 - movs r0, 0 - b _08089414 -_08089412: - movs r0, 0x1 -_08089414: - pop {r1} - bx r1 - thumb_func_end sub_8089404 - - thumb_func_start MetatileBehavior_HasRipples -MetatileBehavior_HasRipples: @ 8089418 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x10 - beq _0808942A - cmp r0, 0x16 - beq _0808942A - cmp r0, 0x14 - bne _0808942E -_0808942A: - movs r0, 0x1 - b _08089430 -_0808942E: - movs r0, 0 -_08089430: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_HasRipples - - thumb_func_start MetatileBehavior_IsPuddle -MetatileBehavior_IsPuddle: @ 8089434 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x16 - beq _08089442 - movs r0, 0 - b _08089444 -_08089442: - movs r0, 0x1 -_08089444: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsPuddle - - thumb_func_start MetatileBehavior_IsTallGrass -MetatileBehavior_IsTallGrass: @ 8089448 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - beq _08089456 - movs r0, 0 - b _08089458 -_08089456: - movs r0, 0x1 -_08089458: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsTallGrass - - thumb_func_start MetatileBehavior_IsLongGrass -MetatileBehavior_IsLongGrass: @ 808945C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - beq _0808946A - movs r0, 0 - b _0808946C -_0808946A: - movs r0, 0x1 -_0808946C: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsLongGrass - - thumb_func_start MetatileBehavior_IsBerryTreeSoil -MetatileBehavior_IsBerryTreeSoil: @ 8089470 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xA0 - beq _0808947E - movs r0, 0 - b _08089480 -_0808947E: - movs r0, 0x1 -_08089480: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsBerryTreeSoil - - thumb_func_start MetatileBehavior_IsAsh -MetatileBehavior_IsAsh: @ 8089484 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x24 - beq _08089492 - movs r0, 0 - b _08089494 -_08089492: - movs r0, 0x1 -_08089494: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsAsh - - thumb_func_start MetatileBehavior_IsUnusedFootprintMetatile -MetatileBehavior_IsUnusedFootprintMetatile: @ 8089498 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x25 - beq _080894A6 - movs r0, 0 - b _080894A8 -_080894A6: - movs r0, 0x1 -_080894A8: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsUnusedFootprintMetatile - - thumb_func_start sub_80894AC -sub_80894AC: @ 80894AC - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0x90 - lsls r2, 24 - adds r0, r2 - lsrs r0, 24 - cmp r0, 0x3 - bls _080894CA - adds r0, r1, 0 - subs r0, 0x7C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bhi _080894CE -_080894CA: - movs r0, 0x1 - b _080894D0 -_080894CE: - movs r0, 0 -_080894D0: - pop {r1} - bx r1 - thumb_func_end sub_80894AC - - thumb_func_start sub_80894D4 -sub_80894D4: @ 80894D4 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - adds r2, r1, 0 - adds r0, r1, 0 - subs r0, 0x70 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bls _0808950A - adds r0, r1, 0 - subs r0, 0x7A - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _080894F8 - movs r0, 0x2 - b _0808950A -_080894F8: - adds r0, r2, 0 - subs r0, 0x7C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _08089508 - movs r0, 0 - b _0808950A -_08089508: - movs r0, 0x3 -_0808950A: - pop {r1} - bx r1 - thumb_func_end sub_80894D4 - - thumb_func_start sub_8089510 -sub_8089510: @ 8089510 - push {lr} - lsls r0, 24 - movs r1, 0x90 - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x3 - bls _08089524 - movs r0, 0 - b _08089526 -_08089524: - movs r0, 0x1 -_08089526: - pop {r1} - bx r1 - thumb_func_end sub_8089510 - - thumb_func_start sub_808952C -sub_808952C: @ 808952C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl MetatileBehavior_IsSurfableWaterOrUnderwater - lsls r0, 24 - cmp r0, 0 - bne _08089550 - adds r0, r4, 0 - bl sub_8088DF0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08089550 - movs r0, 0x1 - b _08089552 -_08089550: - movs r0, 0 -_08089552: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_808952C - - thumb_func_start sub_8089558 -sub_8089558: @ 8089558 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl MetatileBehavior_IsSurfableWaterOrUnderwater - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0808957E - adds r0, r4, 0 - bl sub_8088DF0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0808957E - movs r0, 0x1 - b _08089580 -_0808957E: - movs r0, 0 -_08089580: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8089558 - - thumb_func_start sub_8089588 -sub_8089588: @ 8089588 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xB - beq _08089596 - movs r0, 0 - b _08089598 -_08089596: - movs r0, 0x1 -_08089598: - pop {r1} - bx r1 - thumb_func_end sub_8089588 - - thumb_func_start sub_808959C -sub_808959C: @ 808959C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xC - beq _080895AA - movs r0, 0 - b _080895AC -_080895AA: - movs r0, 0x1 -_080895AC: - pop {r1} - bx r1 - thumb_func_end sub_808959C - - thumb_func_start sub_80895B0 -sub_80895B0: @ 80895B0 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0xEF - lsls r2, 24 - adds r0, r2 - lsrs r0, 24 - cmp r0, 0x1 - bls _080895C6 - cmp r1, 0x14 - bne _080895CA -_080895C6: - movs r0, 0x1 - b _080895CC -_080895CA: - movs r0, 0 -_080895CC: - pop {r1} - bx r1 - thumb_func_end sub_80895B0 - - thumb_func_start sub_80895D0 -sub_80895D0: @ 80895D0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x19 - beq _080895DE - cmp r0, 0x2A - bne _080895E2 -_080895DE: - movs r0, 0x1 - b _080895E4 -_080895E2: - movs r0, 0 -_080895E4: - pop {r1} - bx r1 - thumb_func_end sub_80895D0 - - thumb_func_start MetatileBehavior_IsShallowFlowingWater -MetatileBehavior_IsShallowFlowingWater: @ 80895E8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x17 - beq _080895FA - cmp r0, 0x1B - beq _080895FA - cmp r0, 0x1C - bne _080895FE -_080895FA: - movs r0, 0x1 - b _08089600 -_080895FE: - movs r0, 0 -_08089600: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsShallowFlowingWater - - thumb_func_start sub_8089604 -sub_8089604: @ 8089604 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x26 - beq _08089612 - movs r0, 0 - b _08089614 -_08089612: - movs r0, 0x1 -_08089614: - pop {r1} - bx r1 - thumb_func_end sub_8089604 - - thumb_func_start sub_8089618 -sub_8089618: @ 8089618 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x27 - beq _08089626 - movs r0, 0 - b _08089628 -_08089626: - movs r0, 0x1 -_08089628: - pop {r1} - bx r1 - thumb_func_end sub_8089618 - - thumb_func_start sub_808962C -sub_808962C: @ 808962C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x15 - beq _0808963E - cmp r0, 0x11 - beq _0808963E - cmp r0, 0x12 - bne _08089642 -_0808963E: - movs r0, 0x1 - b _08089644 -_08089642: - movs r0, 0 -_08089644: - pop {r1} - bx r1 - thumb_func_end sub_808962C - - thumb_func_start sub_8089648 -sub_8089648: @ 8089648 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x18 - beq _08089656 - cmp r0, 0x1A - bne _0808965A -_08089656: - movs r0, 0x1 - b _0808965C -_0808965A: - movs r0, 0 -_0808965C: - pop {r1} - bx r1 - thumb_func_end sub_8089648 - - thumb_func_start sub_8089660 -sub_8089660: @ 8089660 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl MetatileBehavior_IsSurfableWaterOrUnderwater - lsls r0, 24 - cmp r0, 0 - beq _08089682 - adds r0, r4, 0 - bl MetatileBehavior_IsWaterfall - lsls r0, 24 - cmp r0, 0 - bne _08089682 - movs r0, 0x1 - b _08089684 -_08089682: - movs r0, 0 -_08089684: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8089660 - - thumb_func_start MetatileBehavior_IsEastBlocked -MetatileBehavior_IsEastBlocked: @ 808968C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x30 - beq _080896A6 - cmp r0, 0x34 - beq _080896A6 - cmp r0, 0x36 - beq _080896A6 - cmp r0, 0xC1 - beq _080896A6 - cmp r0, 0xBE - bne _080896AA -_080896A6: - movs r0, 0x1 - b _080896AC -_080896AA: - movs r0, 0 -_080896AC: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsEastBlocked - - thumb_func_start MetatileBehavior_IsWestBlocked -MetatileBehavior_IsWestBlocked: @ 80896B0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x31 - beq _080896CA - cmp r0, 0x35 - beq _080896CA - cmp r0, 0x37 - beq _080896CA - cmp r0, 0xC1 - beq _080896CA - cmp r0, 0xBE - bne _080896CE -_080896CA: - movs r0, 0x1 - b _080896D0 -_080896CE: - movs r0, 0 -_080896D0: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsWestBlocked - - thumb_func_start MetatileBehavior_IsNorthBlocked -MetatileBehavior_IsNorthBlocked: @ 80896D4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x32 - beq _080896EA - cmp r0, 0x34 - beq _080896EA - cmp r0, 0x35 - beq _080896EA - cmp r0, 0xC0 - bne _080896EE -_080896EA: - movs r0, 0x1 - b _080896F0 -_080896EE: - movs r0, 0 -_080896F0: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsNorthBlocked - - thumb_func_start MetatileBehavior_IsSouthBlocked -MetatileBehavior_IsSouthBlocked: @ 80896F4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x33 - beq _0808970A - cmp r0, 0x36 - beq _0808970A - cmp r0, 0x37 - beq _0808970A - cmp r0, 0xC0 - bne _0808970E -_0808970A: - movs r0, 0x1 - b _08089710 -_0808970E: - movs r0, 0 -_08089710: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSouthBlocked - - thumb_func_start MetatileBehavior_IsShortGrass -MetatileBehavior_IsShortGrass: @ 8089714 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x7 - beq _08089722 - movs r0, 0 - b _08089724 -_08089722: - movs r0, 0x1 -_08089724: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsShortGrass - - thumb_func_start MetatileBehavior_IsHotSprings -MetatileBehavior_IsHotSprings: @ 8089728 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x28 - beq _08089736 - movs r0, 0 - b _08089738 -_08089736: - movs r0, 0x1 -_08089738: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsHotSprings - - thumb_func_start MetatileBehavior_IsWaterfall -@ bool8 MetatileBehavior_IsWaterfall(u8 metatileBehavior) -MetatileBehavior_IsWaterfall: @ 808973C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x13 - beq _0808974A - movs r0, 0 - b _0808974C -_0808974A: - movs r0, 0x1 -_0808974C: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsWaterfall - - thumb_func_start MetatileBehavior_IsFortreeBridge -MetatileBehavior_IsFortreeBridge: @ 8089750 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x78 - beq _0808975E - movs r0, 0 - b _08089760 -_0808975E: - movs r0, 0x1 -_08089760: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsFortreeBridge - - thumb_func_start sub_8089764 -sub_8089764: @ 8089764 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x74 - beq _08089772 - movs r0, 0 - b _08089774 -_08089772: - movs r0, 0x1 -_08089774: - pop {r1} - bx r1 - thumb_func_end sub_8089764 - - thumb_func_start sub_8089778 -sub_8089778: @ 8089778 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x75 - beq _08089786 - movs r0, 0 - b _08089788 -_08089786: - movs r0, 0x1 -_08089788: - pop {r1} - bx r1 - thumb_func_end sub_8089778 - - thumb_func_start sub_808978C -sub_808978C: @ 808978C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x76 - beq _0808979A - movs r0, 0 - b _0808979C -_0808979A: - movs r0, 0x1 -_0808979C: - pop {r1} - bx r1 - thumb_func_end sub_808978C - - thumb_func_start sub_80897A0 -sub_80897A0: @ 80897A0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x77 - beq _080897AE - movs r0, 0 - b _080897B0 -_080897AE: - movs r0, 0x1 -_080897B0: - pop {r1} - bx r1 - thumb_func_end sub_80897A0 - - thumb_func_start MetatileBehavior_IsPacifidlogLog -MetatileBehavior_IsPacifidlogLog: @ 80897B4 - push {lr} - lsls r0, 24 - movs r1, 0x8C - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x3 - bls _080897C8 - movs r0, 0 - b _080897CA -_080897C8: - movs r0, 0x1 -_080897CA: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsPacifidlogLog - - thumb_func_start is_tile_x8C -is_tile_x8C: @ 80897D0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x8C - beq _080897DE - movs r0, 0 - b _080897E0 -_080897DE: - movs r0, 0x1 -_080897E0: - pop {r1} - bx r1 - thumb_func_end is_tile_x8C - - thumb_func_start is_tile_x85 -is_tile_x85: @ 80897E4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x85 - beq _080897F2 - movs r0, 0 - b _080897F4 -_080897F2: - movs r0, 0x1 -_080897F4: - pop {r1} - bx r1 - thumb_func_end is_tile_x85 - - thumb_func_start is_tile_x8B -is_tile_x8B: @ 80897F8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x8B - beq _08089806 - movs r0, 0 - b _08089808 -_08089806: - movs r0, 0x1 -_08089808: - pop {r1} - bx r1 - thumb_func_end is_tile_x8B - - thumb_func_start is_tile_xEA -is_tile_xEA: @ 808980C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xEA - beq _0808981A - movs r0, 0 - b _0808981C -_0808981A: - movs r0, 0x1 -_0808981C: - pop {r1} - bx r1 - thumb_func_end is_tile_xEA - - thumb_func_start is_tile_x8A -is_tile_x8A: @ 8089820 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x8A - beq _0808982E - movs r0, 0 - b _08089830 -_0808982E: - movs r0, 0x1 -_08089830: - pop {r1} - bx r1 - thumb_func_end is_tile_x8A - - thumb_func_start is_tile_x87 -is_tile_x87: @ 8089834 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x87 - beq _08089842 - movs r0, 0 - b _08089844 -_08089842: - movs r0, 0x1 -_08089844: - pop {r1} - bx r1 - thumb_func_end is_tile_x87 - - thumb_func_start MetatileBehavior_0xBB -@ bool8 MetatileBehavior_0xBB(u8 metatileBehavior) -MetatileBehavior_0xBB: @ 8089848 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xBB - beq _08089856 - movs r0, 0 - b _08089858 -_08089856: - movs r0, 0x1 -_08089858: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_0xBB - - thumb_func_start MetatileBehavior_0xBC -@ bool8 MetatileBehavior_0xBC(u8 metatileBehavior) -MetatileBehavior_0xBC: @ 808985C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xBC - beq _0808986A - movs r0, 0 - b _0808986C -_0808986A: - movs r0, 0x1 -_0808986C: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_0xBC - - thumb_func_start sub_8089870 -sub_8089870: @ 8089870 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x29 - beq _0808987E - movs r0, 0 - b _08089880 -_0808987E: - movs r0, 0x1 -_08089880: - pop {r1} - bx r1 - thumb_func_end sub_8089870 - - thumb_func_start is_role_x68 -is_role_x68: @ 8089884 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x68 - beq _08089892 - movs r0, 0 - b _08089894 -_08089892: - movs r0, 0x1 -_08089894: - pop {r1} - bx r1 - thumb_func_end is_role_x68 - - thumb_func_start MetatileBehavior_IsAquaHideoutWarp -MetatileBehavior_IsAquaHideoutWarp: @ 8089898 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x67 - beq _080898A6 - movs r0, 0 - b _080898A8 -_080898A6: - movs r0, 0x1 -_080898A8: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsAquaHideoutWarp - - thumb_func_start sub_80898AC -sub_80898AC: @ 80898AC - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x70 - beq _080898BA - movs r0, 0 - b _080898BC -_080898BA: - movs r0, 0x1 -_080898BC: - pop {r1} - bx r1 - thumb_func_end sub_80898AC - - thumb_func_start sub_80898C0 -sub_80898C0: @ 80898C0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xE - beq _080898CE - movs r0, 0 - b _080898D0 -_080898CE: - movs r0, 0x1 -_080898D0: - pop {r1} - bx r1 - thumb_func_end sub_80898C0 - - thumb_func_start MetatileBehavior_IsSurfableFishableWater -MetatileBehavior_IsSurfableFishableWater: @ 80898D4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x10 - beq _080898F8 - cmp r0, 0x15 - beq _080898F8 - cmp r0, 0x11 - beq _080898F8 - cmp r0, 0x12 - beq _080898F8 - cmp r0, 0x14 - beq _080898F8 - subs r0, 0x50 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bhi _080898FC -_080898F8: - movs r0, 0x1 - b _080898FE -_080898FC: - movs r0, 0 -_080898FE: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSurfableFishableWater - - thumb_func_start sub_8089904 -sub_8089904: @ 8089904 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xF - beq _08089912 - movs r0, 0 - b _08089914 -_08089912: - movs r0, 0x1 -_08089914: - pop {r1} - bx r1 - thumb_func_end sub_8089904 - - thumb_func_start sub_8089918 -sub_8089918: @ 8089918 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x66 - beq _08089926 - movs r0, 0 - b _08089928 -_08089926: - movs r0, 0x1 -_08089928: - pop {r1} - bx r1 - thumb_func_end sub_8089918 - - thumb_func_start sub_808992C -sub_808992C: @ 808992C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xD2 - beq _0808993A - movs r0, 0 - b _0808993C -_0808993A: - movs r0, 0x1 -_0808993C: - pop {r1} - bx r1 - thumb_func_end sub_808992C - - thumb_func_start MetatileBehavior_IsMuddySlope -@ bool8 MetatileBehavior_IsMuddySlope(u8 metatileBehavior) -MetatileBehavior_IsMuddySlope: @ 8089940 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xD0 - beq _0808994E - movs r0, 0 - b _08089950 -_0808994E: - movs r0, 0x1 -_08089950: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsMuddySlope - - thumb_func_start MetatileBehavior_IsBumpySlope -MetatileBehavior_IsBumpySlope: @ 8089954 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xD1 - beq _08089962 - movs r0, 0 - b _08089964 -_08089962: - movs r0, 0x1 -_08089964: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsBumpySlope - - thumb_func_start MetatileBehavior_IsIsolatedVerticalRail -MetatileBehavior_IsIsolatedVerticalRail: @ 8089968 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xD3 - beq _08089976 - movs r0, 0 - b _08089978 -_08089976: - movs r0, 0x1 -_08089978: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsIsolatedVerticalRail - - thumb_func_start MetatileBehavior_IsIsolatedHorizontalRail -MetatileBehavior_IsIsolatedHorizontalRail: @ 808997C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xD4 - beq _0808998A - movs r0, 0 - b _0808998C -_0808998A: - movs r0, 0x1 -_0808998C: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsIsolatedHorizontalRail - - thumb_func_start MetatileBehavior_IsVerticalRail -MetatileBehavior_IsVerticalRail: @ 8089990 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xD5 - beq _0808999E - movs r0, 0 - b _080899A0 -_0808999E: - movs r0, 0x1 -_080899A0: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsVerticalRail - - thumb_func_start MetatileBehavior_IsHorizontalRail -MetatileBehavior_IsHorizontalRail: @ 80899A4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xD6 - beq _080899B2 - movs r0, 0 - b _080899B4 -_080899B2: - movs r0, 0x1 -_080899B4: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsHorizontalRail - - thumb_func_start MetatileBehavior_IsSeaweed -MetatileBehavior_IsSeaweed: @ 80899B8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x22 - beq _080899C6 - cmp r0, 0x2A - bne _080899CA -_080899C6: - movs r0, 0x1 - b _080899CC -_080899CA: - movs r0, 0 -_080899CC: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSeaweed - - thumb_func_start MetatileBehavior_IsRunningDisallowed -MetatileBehavior_IsRunningDisallowed: @ 80899D0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xA - beq _080899EC - cmp r0, 0x3 - beq _080899EC - cmp r0, 0x28 - beq _080899EC - bl MetatileBehavior_IsPacifidlogLog - lsls r0, 24 - cmp r0, 0 - beq _080899F0 -_080899EC: - movs r0, 0x1 - b _080899F2 -_080899F0: - movs r0, 0 -_080899F2: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsRunningDisallowed - - thumb_func_start sub_80899F8 -sub_80899F8: @ 80899F8 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0xFE - lsls r2, 24 - adds r0, r2 - lsrs r0, 24 - cmp r0, 0x1 - bls _08089A12 - cmp r1, 0x24 - beq _08089A12 - cmp r1, 0x9 - bne _08089A16 -_08089A12: - movs r0, 0x1 - b _08089A18 -_08089A16: - movs r0, 0 -_08089A18: - pop {r1} - bx r1 - thumb_func_end sub_80899F8 - - thumb_func_start sub_8089A1C -sub_8089A1C: @ 8089A1C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x8E - beq _08089A2A - movs r0, 0 - b _08089A2C -_08089A2A: - movs r0, 0x1 -_08089A2C: - pop {r1} - bx r1 - thumb_func_end sub_8089A1C - - thumb_func_start sub_8089A30 -sub_8089A30: @ 8089A30 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xE0 - beq _08089A3E - movs r0, 0 - b _08089A40 -_08089A3E: - movs r0, 0x1 -_08089A40: - pop {r1} - bx r1 - thumb_func_end sub_8089A30 - - thumb_func_start sub_8089A44 -sub_8089A44: @ 8089A44 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xE1 - beq _08089A52 - movs r0, 0 - b _08089A54 -_08089A52: - movs r0, 0x1 -_08089A54: - pop {r1} - bx r1 - thumb_func_end sub_8089A44 - - thumb_func_start sub_8089A58 -sub_8089A58: @ 8089A58 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xE2 - beq _08089A66 - movs r0, 0 - b _08089A68 -_08089A66: - movs r0, 0x1 -_08089A68: - pop {r1} - bx r1 - thumb_func_end sub_8089A58 - - thumb_func_start sub_8089A6C -sub_8089A6C: @ 8089A6C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xE3 - beq _08089A7A - movs r0, 0 - b _08089A7C -_08089A7A: - movs r0, 0x1 -_08089A7C: - pop {r1} - bx r1 - thumb_func_end sub_8089A6C - - thumb_func_start sub_8089A80 -sub_8089A80: @ 8089A80 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xE4 - beq _08089A8E - movs r0, 0 - b _08089A90 -_08089A8E: - movs r0, 0x1 -_08089A90: - pop {r1} - bx r1 - thumb_func_end sub_8089A80 - - thumb_func_start sub_8089A94 -sub_8089A94: @ 8089A94 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xE5 - beq _08089AA2 - movs r0, 0 - b _08089AA4 -_08089AA2: - movs r0, 0x1 -_08089AA4: - pop {r1} - bx r1 - thumb_func_end sub_8089A94 - - thumb_func_start sub_8089AA8 -sub_8089AA8: @ 8089AA8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xE6 - beq _08089AB6 - movs r0, 0 - b _08089AB8 -_08089AB6: - movs r0, 0x1 -_08089AB8: - pop {r1} - bx r1 - thumb_func_end sub_8089AA8 - - thumb_func_start sub_8089ABC -sub_8089ABC: @ 8089ABC - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xD - beq _08089ACA - movs r0, 0 - b _08089ACC -_08089ACA: - movs r0, 0x1 -_08089ACC: - pop {r1} - bx r1 - thumb_func_end sub_8089ABC - - thumb_func_start sub_8089AD0 -sub_8089AD0: @ 8089AD0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x2 - bne _08089AE2 - cmp r0, 0xE8 - beq _08089AE6 -_08089AE2: - movs r0, 0 - b _08089AE8 -_08089AE6: - movs r0, 0x1 -_08089AE8: - pop {r1} - bx r1 - thumb_func_end sub_8089AD0 - - thumb_func_start sub_8089AEC -sub_8089AEC: @ 8089AEC - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x2 - bne _08089AFE - cmp r0, 0xE7 - beq _08089B02 -_08089AFE: - movs r0, 0 - b _08089B04 -_08089B02: - movs r0, 0x1 -_08089B04: - pop {r1} - bx r1 - thumb_func_end sub_8089AEC - - thumb_func_start MetatileBehavior_IsQuestionnaire -MetatileBehavior_IsQuestionnaire: @ 8089B08 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x8F - beq _08089B16 - movs r0, 0 - b _08089B18 -_08089B16: - movs r0, 0x1 -_08089B18: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsQuestionnaire - - thumb_func_start MetatileBehavior_IsLongGrass2 -MetatileBehavior_IsLongGrass2: @ 8089B1C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - beq _08089B2A - movs r0, 0 - b _08089B2C -_08089B2A: - movs r0, 0x1 -_08089B2C: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsLongGrass2 - - thumb_func_start MetatileBehavior_IsLongGrassSouthEdge -MetatileBehavior_IsLongGrassSouthEdge: @ 8089B30 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x9 - beq _08089B3E - movs r0, 0 - b _08089B40 -_08089B3E: - movs r0, 0x1 -_08089B40: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsLongGrassSouthEdge - - thumb_func_start MetatileBehavior_IsTrainerHillTimer -MetatileBehavior_IsTrainerHillTimer: @ 8089B44 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xE9 - beq _08089B52 - movs r0, 0 - b _08089B54 -_08089B52: - movs r0, 0x1 -_08089B54: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsTrainerHillTimer - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/money.s b/asm/money.s deleted file mode 100644 index 0d7cf569f..000000000 --- a/asm/money.s +++ /dev/null @@ -1,311 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - - - - - thumb_func_start sub_80E51B0 -sub_80E51B0: @ 80E51B0 - push {lr} - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0x92 - lsls r1, 3 - adds r0, r1 - ldr r1, =gSpecialVar_0x8005 - ldrh r1, [r1] - bl IsEnoughMoney - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end sub_80E51B0 - - thumb_func_start sub_80E51D4 -sub_80E51D4: @ 80E51D4 - push {lr} - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0x92 - lsls r1, 3 - adds r0, r1 - ldr r1, =gSpecialVar_0x8005 - ldrh r1, [r1] - bl SubtractMoney - pop {r0} - bx r0 - .pool - thumb_func_end sub_80E51D4 - - thumb_func_start PrintMoneyAmountInMoneyBox -@ void PrintMoneyAmountInMoneyBox(u8 windowId, int amount, s8 a3) -PrintMoneyAmountInMoneyBox: @ 80E51F4 - push {lr} - sub sp, 0x4 - adds r3, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp] - movs r1, 0x26 - movs r2, 0x1 - bl PrintMoneyAmount - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end PrintMoneyAmountInMoneyBox - - thumb_func_start PrintMoneyAmount -@ void PrintMoneyAmount(u8 windowId, char x, char y, int amount, u8 a5) -PrintMoneyAmount: @ 80E5214 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - ldr r4, [sp, 0x24] - lsls r0, 24 - lsrs r7, r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r2, 24 - lsrs r6, r2, 24 - lsls r4, 24 - lsrs r5, r4, 24 - ldr r4, =gStringVar1 - adds r0, r4, 0 - adds r1, r3, 0 - movs r2, 0 - movs r3, 0x6 - bl ConvertIntToDecimalStringN - adds r0, r4, 0 - bl StringLength - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x6 - subs r1, r0 - ldr r2, =gStringVar4 - adds r0, r1, 0 - subs r1, 0x1 - cmp r0, 0 - ble _080E5264 - movs r3, 0x77 -_080E5258: - strb r3, [r2] - adds r2, 0x1 - adds r0, r1, 0 - subs r1, 0x1 - cmp r0, 0 - bgt _080E5258 -_080E5264: - ldr r1, =gUnknown_085E969C - adds r0, r2, 0 - bl StringExpandPlaceholders - ldr r2, =gStringVar4 - str r6, [sp] - str r5, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - adds r0, r7, 0 - movs r1, 0x1 - mov r3, r8 - bl PrintTextOnWindow - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end PrintMoneyAmount - - thumb_func_start set_window_border_style_and_print_money_box -@ void set_window_border_style_and_print_money_box(u8 windowId, u16 tileStart, u8 palette, int amount) -set_window_border_style_and_print_money_box: @ 80E5298 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r6, r0, 0 - adds r4, r1, 0 - adds r5, r2, 0 - mov r8, r3 - lsls r6, 24 - lsrs r6, 24 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 24 - lsrs r5, 24 - adds r0, r6, 0 - movs r1, 0 - adds r2, r4, 0 - adds r3, r5, 0 - bl SetWindowBorderStyle - adds r0, r6, 0 - mov r1, r8 - movs r2, 0 - bl PrintMoneyAmountInMoneyBox - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end set_window_border_style_and_print_money_box - - thumb_func_start sub_80E52D4 -sub_80E52D4: @ 80E52D4 - push {lr} - adds r1, r0, 0 - ldr r0, =gUnknown_02039F98 - ldrb r0, [r0] - movs r2, 0 - bl PrintMoneyAmountInMoneyBox - pop {r0} - bx r0 - .pool - thumb_func_end sub_80E52D4 - - thumb_func_start sub_80E52EC -@ void sub_80E52EC(int money, int x, int y) -sub_80E52EC: @ 80E52EC - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x18 - mov r8, r0 - adds r4, r1, 0 - adds r3, r2, 0 - lsls r4, 24 - lsls r3, 24 - lsrs r6, r4, 24 - movs r0, 0x80 - lsls r0, 17 - adds r4, r0 - lsrs r4, 24 - lsrs r5, r3, 24 - adds r3, r0 - lsrs r3, 24 - movs r0, 0xA - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0xF - str r0, [sp, 0x8] - movs r0, 0x8 - str r0, [sp, 0xC] - add r0, sp, 0x10 - movs r1, 0 - adds r2, r4, 0 - bl SetWindowTemplateFields - ldr r4, =gUnknown_02039F98 - add r0, sp, 0x10 - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - movs r1, 0 - bl FillWindowPixelBuffer - ldrb r0, [r4] - bl PutWindowTilemap - ldrb r0, [r4] - movs r1, 0x1 - bl CopyWindowToVram - ldrb r0, [r4] - movs r1, 0x85 - lsls r1, 2 - movs r2, 0xE - mov r3, r8 - bl set_window_border_style_and_print_money_box - lsls r6, 19 - movs r0, 0x98 - lsls r0, 13 - adds r6, r0 - lsrs r6, 16 - lsls r5, 19 - movs r0, 0xB0 - lsls r0, 12 - adds r5, r0 - lsrs r5, 16 - adds r0, r6, 0 - adds r1, r5, 0 - bl AddMoneyLabelObject - add sp, 0x18 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80E52EC - - thumb_func_start sub_80E5384 -sub_80E5384: @ 80E5384 - push {r4,lr} - bl RemoveMoneyLabelObject - ldr r4, =gUnknown_02039F98 - ldrb r0, [r4] - movs r1, 0 - bl sub_8198070 - ldrb r0, [r4] - movs r1, 0x2 - bl CopyWindowToVram - ldrb r0, [r4] - bl RemoveWindow - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80E5384 - - thumb_func_start AddMoneyLabelObject -AddMoneyLabelObject: @ 80E53AC - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - ldr r0, =gUnknown_0858C2A4 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_0858C2AC - bl LoadCompressedObjectPalette - ldr r0, =gUnknown_0858C28C - lsls r4, 16 - asrs r4, 16 - lsls r5, 16 - asrs r5, 16 - adds r1, r4, 0 - adds r2, r5, 0 - movs r3, 0 - bl CreateSprite - ldr r1, =gUnknown_02039F99 - strb r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end AddMoneyLabelObject - - thumb_func_start RemoveMoneyLabelObject -RemoveMoneyLabelObject: @ 80E53F4 - push {lr} - ldr r0, =gUnknown_02039F99 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - bl DestroySpriteAndFreeResources - pop {r0} - bx r0 - .pool - thumb_func_end RemoveMoneyLabelObject - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/mystery_event_menu.s b/asm/mystery_event_menu.s index 27ab158ad..49de57848 100644 --- a/asm/mystery_event_menu.s +++ b/asm/mystery_event_menu.s @@ -115,7 +115,7 @@ sub_8178A40: @ 8178A40 movs r5, 0x1 cmp r4, 0 bne _08178A54 - ldr r1, =gUnknown_085EE80A + ldr r1, =gText_EventSafelyLoaded bl StringCopy movs r5, 0 _08178A54: @@ -125,7 +125,7 @@ _08178A54: _08178A5A: cmp r4, 0x1 bne _08178A66 - ldr r1, =gUnknown_085EE827 + ldr r1, =gText_LoadErrorEndingSession adds r0, r6, 0 bl StringCopy _08178A66: @@ -204,7 +204,7 @@ _08178B12: beq _08178B20 b _08178E58 _08178B20: - ldr r1, =gUnknown_085EE765 + ldr r1, =gText_LinkStandby2 movs r0, 0x1 str r0, [sp] movs r0, 0 @@ -256,7 +256,7 @@ _08178B8E: _08178B98: movs r0, 0x15 bl PlaySE - ldr r1, =gUnknown_085EE788 + ldr r1, =gText_PressAToLoadEvent movs r0, 0x1 str r0, [sp] movs r0, 0 @@ -301,7 +301,7 @@ _08178BDC: movs r2, 0x1 movs r3, 0xD bl SetWindowBorderStyle - ldr r1, =gUnknown_085EE7BF + ldr r1, =gText_LoadingEvent movs r0, 0 str r0, [sp] movs r0, 0x1 @@ -373,7 +373,7 @@ _08178CAC: lsls r0, 24 cmp r0, 0 beq _08178CCC - ldr r1, =gUnknown_085EE7CE + ldr r1, =gText_DontRemoveCableTurnOff movs r0, 0x1 str r0, [sp] movs r0, 0 diff --git a/asm/mystery_event_script.s b/asm/mystery_event_script.s index d481c2a3b..d544f689f 100644 --- a/asm/mystery_event_script.s +++ b/asm/mystery_event_script.s @@ -782,7 +782,7 @@ sub_8153E1C: @ 8153E1C adds r4, r0, 0 bl EnableResetRTC ldr r0, =gStringVar4 - ldr r1, =gUnknown_085ECAD8 + ldr r1, =gText_InGameClockUsable bl StringExpandPlaceholders movs r0, 0x2 str r0, [r4, 0x6C] diff --git a/asm/naming_screen.s b/asm/naming_screen.s index 2d79e464a..22d7b260e 100644 --- a/asm/naming_screen.s +++ b/asm/naming_screen.s @@ -5,9 +5,9 @@ .text - thumb_func_start do_choose_name_or_words_screen -@ int do_choose_name_or_words_screen(u8 type, sav2 *sav2_ptr, s16 player_gender, s16 a4, int a5, void ( *after_finishing_callback)()) -do_choose_name_or_words_screen: @ 80E2D78 + thumb_func_start DoNamingScreen +@ int DoNamingScreen(u8 type, sav2 *sav2_ptr, s16 player_gender, s16 a4, int a5, void ( *after_finishing_callback)()) +DoNamingScreen: @ 80E2D78 push {r4-r7,lr} mov r7, r8 push {r7} @@ -65,7 +65,7 @@ _080E2DE2: pop {r0} bx r0 .pool - thumb_func_end do_choose_name_or_words_screen + thumb_func_end DoNamingScreen thumb_func_start c2_choose_name_or_words_screen c2_choose_name_or_words_screen: @ 80E2E04 @@ -840,7 +840,7 @@ pokemon_transfer_to_pc_with_message: @ 80E34E4 bl VarGet lsls r0, 24 lsrs r0, 24 - bl sav3_get_box_name + bl GetBoxNamePtr adds r1, r0, 0 adds r0, r4, 0 bl StringCopy @@ -859,7 +859,7 @@ _080E3534: bl VarGet lsls r0, 24 lsrs r0, 24 - bl sav3_get_box_name + bl GetBoxNamePtr adds r1, r0, 0 adds r0, r4, 0 bl StringCopy @@ -874,7 +874,7 @@ _080E3534: bl get_unknown_box_id lsls r0, 24 lsrs r0, 24 - bl sav3_get_box_name + bl GetBoxNamePtr adds r1, r0, 0 adds r0, r4, 0 bl StringCopy @@ -4033,7 +4033,7 @@ sub_80E4EF0: @ 80E4EF0 str r1, [sp] movs r1, 0 str r1, [sp, 0x4] - ldr r1, =gUnknown_085EEAF6 + ldr r1, =gText_MoveOkBack str r1, [sp, 0x8] movs r1, 0 movs r2, 0x2 @@ -4197,7 +4197,7 @@ sub_80E5074: @ 80E5074 str r0, [sp, 0x4] movs r0, 0 movs r3, 0 - bl do_choose_name_or_words_screen + bl DoNamingScreen add sp, 0x8 pop {r0} bx r0 @@ -4217,7 +4217,7 @@ sub_80E509C: @ 80E509C str r0, [sp, 0x4] movs r0, 0x1 movs r3, 0 - bl do_choose_name_or_words_screen + bl DoNamingScreen add sp, 0x8 pop {r0} bx r0 @@ -4237,7 +4237,7 @@ sub_80E50C4: @ 80E50C4 str r0, [sp, 0x4] movs r0, 0x2 movs r3, 0 - bl do_choose_name_or_words_screen + bl DoNamingScreen add sp, 0x8 pop {r0} bx r0 @@ -4257,7 +4257,7 @@ sub_80E50EC: @ 80E50EC str r0, [sp, 0x4] movs r0, 0x3 movs r3, 0 - bl do_choose_name_or_words_screen + bl DoNamingScreen add sp, 0x8 pop {r0} bx r0 diff --git a/asm/option_menu.s b/asm/option_menu.s index 214e23094..1c554e26f 100644 --- a/asm/option_menu.s +++ b/asm/option_menu.s @@ -906,7 +906,7 @@ sub_80BAC38: @ 80BAC38 adds r1, r0 movs r0, 0x1 strb r0, [r1] - ldr r4, =gUnknown_085EE5D4 + ldr r4, =gText_TextSpeedSlow mov r0, sp ldrb r3, [r0] adds r0, r4, 0 @@ -917,14 +917,14 @@ sub_80BAC38: @ 80BAC38 movs r2, 0 bl GetStringWidth adds r4, r0, 0 - ldr r0, =gUnknown_085EE5DF + ldr r0, =gText_TextSpeedMid mov r8, r0 movs r0, 0x1 mov r1, r8 movs r2, 0 bl GetStringWidth adds r5, r0, 0 - ldr r6, =gUnknown_085EE5E9 + ldr r6, =gText_TextSpeedFast movs r0, 0x1 adds r1, r6, 0 movs r2, 0 @@ -1000,13 +1000,13 @@ sub_80BAD08: @ 80BAD08 adds r1, r0 movs r0, 0x1 strb r0, [r1] - ldr r0, =gUnknown_085EE5F4 + ldr r0, =gText_BattleSceneOn mov r1, sp ldrb r3, [r1] movs r1, 0x68 movs r2, 0x10 bl sub_80BAB68 - ldr r4, =gUnknown_085EE5FD + ldr r4, =gText_BattleSceneOff movs r0, 0x1 adds r1, r4, 0 movs r2, 0xC6 @@ -1061,13 +1061,13 @@ sub_80BAD84: @ 80BAD84 adds r1, r0 movs r0, 0x1 strb r0, [r1] - ldr r0, =gUnknown_085EE607 + ldr r0, =gText_BattleStyleShift mov r1, sp ldrb r3, [r1] movs r1, 0x68 movs r2, 0x20 bl sub_80BAB68 - ldr r4, =gUnknown_085EE613 + ldr r4, =gText_BattleStyleSet movs r0, 0x1 adds r1, r4, 0 movs r2, 0xC6 @@ -1125,13 +1125,13 @@ sub_80BAE08: @ 80BAE08 adds r1, r0 movs r0, 0x1 strb r0, [r1] - ldr r0, =gUnknown_085EE61D + ldr r0, =gText_SoundMono mov r1, sp ldrb r3, [r1] movs r1, 0x68 movs r2, 0x30 bl sub_80BAB68 - ldr r4, =gUnknown_085EE628 + ldr r4, =gText_SoundStereo movs r0, 0x1 adds r1, r4, 0 movs r2, 0xC6 @@ -1243,9 +1243,9 @@ sub_80BAF0C: @ 80BAF0C adds r0, r1 lsrs r6, r0, 24 movs r5, 0 - ldr r1, =gUnknown_085EE640 + ldr r1, =gText_FrameTypeNumber ldrb r0, [r1] - ldr r7, =gUnknown_085EE635 + ldr r7, =gText_FrameType cmp r0, 0xFF beq _080BAF44 adds r2, r1, 0 @@ -1394,7 +1394,7 @@ sub_80BB028: @ 80BB028 adds r1, r0 movs r0, 0x1 strb r0, [r1] - ldr r4, =gUnknown_085EE647 + ldr r4, =gText_ButtonTypeNormal mov r0, sp ldrb r3, [r0] adds r0, r4, 0 @@ -1406,14 +1406,14 @@ sub_80BB028: @ 80BB028 movs r2, 0 bl GetStringWidth adds r4, r0, 0 - ldr r0, =gUnknown_085EE654 + ldr r0, =gText_ButtonTypeLR mov r8, r0 movs r0, 0x1 mov r1, r8 movs r2, 0 bl GetStringWidth adds r5, r0, 0 - ldr r6, =gUnknown_085EE65D + ldr r6, =gText_ButtonTypeLEqualsA movs r0, 0x1 adds r1, r6, 0 movs r2, 0 @@ -1461,7 +1461,7 @@ sub_80BB0D0: @ 80BB0D0 movs r0, 0 movs r1, 0x11 bl FillWindowPixelBuffer - ldr r2, =gUnknown_085EE589 + ldr r2, =gText_Option movs r0, 0x1 str r0, [sp] movs r0, 0xFF diff --git a/asm/party_menu.s b/asm/party_menu.s index cf00d63c1..4eb080b13 100755 --- a/asm/party_menu.s +++ b/asm/party_menu.s @@ -2484,7 +2484,7 @@ sub_81B1660: @ 81B1660 ands r1, r0 cmp r1, 0x2 bne _081B1680 - ldr r5, =gUnknown_085EA110 + ldr r5, =gText_CancelParticipation b _081B168A .pool _081B1680: @@ -3290,7 +3290,7 @@ sub_81B1C84: @ 81B1C84 adds r0, r4, 0 bl CopyItemName ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E991B + ldr r1, =gText_PkmnWasGivenItem adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 @@ -3319,7 +3319,7 @@ sub_81B1CD0: @ 81B1CD0 adds r0, r4, 0 bl CopyItemName ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E999D + ldr r1, =gText_RecievedItemFromPkmn adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 @@ -3348,7 +3348,7 @@ sub_81B1D1C: @ 81B1D1C adds r0, r4, 0 bl CopyItemName ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E993A + ldr r1, =gText_SwitchPkmnItem adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 @@ -3379,7 +3379,7 @@ sub_81B1D68: @ 81B1D68 adds r0, r4, 0 bl CopyItemName ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E99DB + ldr r1, =gText_SwitchedPkmnItem adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 @@ -3474,7 +3474,7 @@ _081B1E3E: pokemon_item_not_removed: @ 81B1E48 push {lr} ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E9A69 + ldr r1, =gText_BagFullCouldNotRemoveItem bl StringExpandPlaceholders pop {r0} bx r0 @@ -3937,7 +3937,7 @@ sub_81B21AC: @ 81B21AC _081B21DC: movs r0, 0x20 bl PlaySE - ldr r0, =gUnknown_085EA0EE + ldr r0, =gText_PkmnCantParticipate movs r1, 0 bl sub_81B1B5C movs r0, 0x2 @@ -3962,7 +3962,7 @@ sub_81B2210: @ 81B2210 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, =gUnknown_085EA110 + ldr r0, =gText_CancelParticipation movs r1, 0x1 bl sub_81B1B5C movs r0, 0x2 @@ -5495,7 +5495,7 @@ _081B2F04: asrs r1, 16 ldr r2, [r6] ldrb r2, [r2, 0x1A] - bl sub_8075034 + bl GetScaledHPFraction lsls r0, 24 lsrs r5, r0, 24 ldrb r0, [r6, 0x8] @@ -6407,7 +6407,7 @@ _081B3674: cmp r6, 0 bne _081B36C0 ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E9980 + ldr r1, =gText_PkmnNotHolding adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 @@ -8348,7 +8348,7 @@ _081B4788: adds r0, r5, 0 bl GetMonNickname ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E9980 + ldr r1, =gText_PkmnNotHolding adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 @@ -8409,7 +8409,7 @@ sub_81B47E0: @ 81B47E0 adds r0, r7, 0 bl GetMonNickname ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E9980 + ldr r1, =gText_PkmnNotHolding adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 @@ -8428,7 +8428,7 @@ _081B4864: adds r0, r5, 0 bl CopyItemName ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E9E00 + ldr r1, =gText_ThrowAwayItem adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 @@ -8511,7 +8511,7 @@ _081B491A: ldr r1, =gStringVar1 bl CopyItemName ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E9E14 + ldr r1, =gText_ItemThrownAway adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 @@ -8731,7 +8731,7 @@ brm_take_2: @ 81B4B20 ldr r0, [r5] adds r0, 0xC bl sub_81B302C - ldr r0, =gUnknown_085E9855 + ldr r0, =gText_SendMailToPC movs r1, 0x1 bl sub_81B1B5C ldr r1, =gTasks @@ -8806,7 +8806,7 @@ _081B4BC6: lsrs r0, 24 cmp r0, 0xFF beq _081B4C0C - ldr r0, =gUnknown_085E9877 + ldr r0, =gText_MailSentToPC movs r1, 0 bl sub_81B1B5C ldr r1, =gTasks @@ -8818,7 +8818,7 @@ _081B4BC6: b _081B4C4A .pool _081B4C0C: - ldr r0, =gUnknown_085E9897 + ldr r0, =gText_PCMailboxFull movs r1, 0 bl sub_81B1B5C ldr r1, =gTasks @@ -8833,7 +8833,7 @@ _081B4C30: movs r0, 0x5 bl PlaySE _081B4C36: - ldr r0, =gUnknown_085E98B4 + ldr r0, =gText_MailMessageWillBeLost movs r1, 0x1 bl sub_81B1B5C ldr r1, =gTasks @@ -8926,7 +8926,7 @@ _081B4CBE: muls r0, r7 adds r0, r6 bl sub_80D4680 - ldr r0, =gUnknown_085E99B8 + ldr r0, =gText_MailTakenFromPkmn movs r1, 0 bl sub_81B1B5C ldr r1, =gTasks @@ -9167,7 +9167,7 @@ _081B4F36: movs r3, 0x1 bl ConvertIntToDecimalStringN ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E9830 + ldr r1, =gText_NoMoreThanVar1Pkmn adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0x20 @@ -9411,13 +9411,13 @@ sub_81B50C8: @ 81B50C8 .pool _081B515C: ldr r0, =gStringVar4 - ldr r1, =gUnknown_085EA210 + ldr r1, =gText_PkmnCantBeTradedNow bl StringExpandPlaceholders b _081B5178 .pool _081B5170: ldr r0, =gStringVar4 - ldr r1, =gUnknown_085EA234 + ldr r1, =gText_EggCantBeTradedNow bl StringExpandPlaceholders _081B5178: movs r0, 0x20 @@ -9430,7 +9430,7 @@ _081B5178: adds r0, 0xD bl sub_81B302C ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EA1CA + ldr r1, =gText_PauseUntilPress adds r0, r4, 0 bl StringAppend adds r0, r4, 0 @@ -9530,7 +9530,7 @@ brm_trade_1: @ 81B51D4 ldr r0, [r4] adds r0, 0xD bl sub_81B302C - ldr r1, =gUnknown_085EA1CA + ldr r1, =gText_PauseUntilPress adds r0, r5, 0 bl StringAppend adds r0, r5, 0 @@ -9594,19 +9594,19 @@ _081B5328: b _081B5368 _081B532E: ldr r0, =gStringVar4 - ldr r1, =gUnknown_085EA1E8 + ldr r1, =gText_OnlyPkmnForBattle bl StringExpandPlaceholders b _081B53C0 .pool _081B5340: ldr r0, =gStringVar4 - ldr r1, =gUnknown_085EA210 + ldr r1, =gText_PkmnCantBeTradedNow bl StringExpandPlaceholders b _081B53C0 .pool _081B5354: ldr r0, =gStringVar4 - ldr r1, =gUnknown_085EA234 + ldr r1, =gText_EggCantBeTradedNow bl StringExpandPlaceholders b _081B53C0 .pool @@ -9623,7 +9623,7 @@ _081B5368: ldr r1, =gStringVar1 bl GetMonNickname ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EA1CD + ldr r1, =gJPText_PutVar1IntoSpinner adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 @@ -9641,7 +9641,7 @@ _081B53C0: movs r0, 0x20 bl PlaySE ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EA1CA + ldr r1, =gText_PauseUntilPress adds r0, r4, 0 bl StringAppend adds r0, r4, 0 @@ -9787,7 +9787,7 @@ _081B54E8: lsrs r0, 24 cmp r0, 0x1 beq _081B5524 - ldr r0, =gUnknown_085E97FC + ldr r0, =gText_CantUseUntilNewBadge movs r1, 0x1 bl sub_81B1B5C ldr r1, =gTasks @@ -9852,7 +9852,7 @@ _081B557C: ldrb r1, [r1, 0x14] bl sub_81245DC ldr r0, =gStringVar4 - ldr r1, =gUnknown_085EA196 + ldr r1, =gText_ReturnToHealingSpot b _081B55E8 .pool _081B55B8: @@ -9877,7 +9877,7 @@ _081B55B8: ldrb r1, [r1, 0x14] bl sub_81245DC ldr r0, =gStringVar4 - ldr r1, =gUnknown_085EA16B + ldr r1, =gText_EscapeFromHere _081B55E8: bl StringExpandPlaceholders adds r0, r6, 0 @@ -10051,7 +10051,7 @@ task_launch_hm_phase_2: @ 81B5750 cmp r0, 0x1 bne _081B577C bl brm_get_selected_species - ldr r1, =gUnknown_02038C08 + ldr r1, =gFieldEffectSpawnParams lsls r0, 16 lsrs r0, 16 str r0, [r1] @@ -10135,7 +10135,7 @@ _081B57FE: hm_surf_run_dp02scr: @ 81B5804 push {lr} bl brm_get_pokemon_selection - ldr r1, =gUnknown_02038C08 + ldr r1, =gFieldEffectSpawnParams lsls r0, 24 lsrs r0, 24 str r0, [r1] @@ -10239,7 +10239,7 @@ sub_81B58A8: @ 81B58A8 hm2_waterfall: @ 81B58D4 push {lr} bl brm_get_pokemon_selection - ldr r1, =gUnknown_02038C08 + ldr r1, =gFieldEffectSpawnParams lsls r0, 24 lsrs r0, 24 str r0, [r1] @@ -10299,7 +10299,7 @@ _081B594E: sub_81B5958: @ 81B5958 push {lr} bl brm_get_pokemon_selection - ldr r1, =gUnknown_02038C08 + ldr r1, =gFieldEffectSpawnParams lsls r0, 24 lsrs r0, 24 str r0, [r1] @@ -10314,7 +10314,7 @@ sub_81B5958: @ 81B5958 sub_81B5974: @ 81B5974 push {lr} bl sub_809D1E8 - ldr r1, =gUnknown_02038C08 + ldr r1, =gFieldEffectSpawnParams lsls r0, 24 lsrs r0, 24 str r0, [r1, 0x4] @@ -11562,102 +11562,102 @@ _081B6334: .4byte _081B64A8 _081B6380: ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E9C3E + ldr r1, =gText_PkmnCuredOfPoison bl StringExpandPlaceholders b _081B64C4 .pool _081B6394: ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E9C7C + ldr r1, =gText_PkmnWokeUp2 bl StringExpandPlaceholders b _081B64C4 .pool _081B63A8: ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E9C8A + ldr r1, =gText_PkmnBurnHealed bl StringExpandPlaceholders b _081B64C4 .pool _081B63BC: ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E9CA2 + ldr r1, =gText_PkmnThawedOut bl StringExpandPlaceholders b _081B64C4 .pool _081B63D0: ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E9C5F + ldr r1, =gText_PkmnCuredOfParalysis bl StringExpandPlaceholders b _081B64C4 .pool _081B63E4: ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E9DBE + ldr r1, =gText_PkmnSnappedOutOfConfusion bl StringExpandPlaceholders b _081B64C4 .pool _081B63F8: ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E9DE1 + ldr r1, =gText_PkmnGotOverInfatuation bl StringExpandPlaceholders b _081B64C4 .pool _081B640C: ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E9CE0 + ldr r1, =gText_PkmnBecameHealthy bl StringExpandPlaceholders b _081B64C4 .pool _081B6420: ldr r0, =gStringVar2 - ldr r1, =gUnknown_085E96E3 + ldr r1, =gText_HP3 b _081B6474 .pool _081B6430: ldr r0, =gStringVar2 - ldr r1, =gUnknown_085EA33C + ldr r1, =gText_Attack3 b _081B6474 .pool _081B6440: ldr r0, =gStringVar2 - ldr r1, =gUnknown_085EA343 + ldr r1, =gText_Defense3 b _081B6474 .pool _081B6450: ldr r0, =gStringVar2 - ldr r1, =gUnknown_085EA35B + ldr r1, =gText_Speed2 b _081B6474 .pool _081B6460: ldr r0, =gStringVar2 - ldr r1, =gUnknown_085E96E6 + ldr r1, =gText_SpAtk3 b _081B6474 .pool _081B6470: ldr r0, =gStringVar2 - ldr r1, =gUnknown_085E96EE + ldr r1, =gText_SpDef3 _081B6474: bl StringCopy ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E9D25 + ldr r1, =gText_PkmnBaseVar2StatIncreased bl StringExpandPlaceholders b _081B64C4 .pool _081B6494: ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E9CF5 + ldr r1, =gText_MovesPPIncreased bl StringExpandPlaceholders b _081B64C4 .pool _081B64A8: ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E9CB7 + ldr r1, =gText_PPWasRestored bl StringExpandPlaceholders b _081B64C4 .pool _081B64BC: ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E96F6 + ldr r1, =gText_WontHaveEffect bl StringExpandPlaceholders _081B64C4: pop {r0} @@ -11830,7 +11830,7 @@ _081B6600: strb r0, [r1] movs r0, 0x5 bl PlaySE - ldr r0, =gUnknown_085E96F6 + ldr r0, =gText_WontHaveEffect b _081B66F4 .pool _081B6624: @@ -11964,7 +11964,7 @@ sub_81B672C: @ 81B672C ldr r1, =gStringVar1 bl GetMonNickname ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E9C17 + ldr r1, =gText_PkmnHPRestoredByVar2 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 @@ -12083,7 +12083,7 @@ _081B6850: strb r0, [r1] movs r0, 0x5 bl PlaySE - ldr r0, =gUnknown_085E96F6 + ldr r0, =gText_WontHaveEffect b _081B68E2 .pool _081B6874: @@ -12108,19 +12108,19 @@ _081B6874: cmp r0, r8 beq _081B68C4 ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E9D45 + ldr r1, =gText_PkmnFriendlyBaseVar2Fell bl StringExpandPlaceholders b _081B68E0 .pool _081B68C4: ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E9D90 + ldr r1, =gText_PkmnFriendlyBaseVar2CantFall bl StringExpandPlaceholders b _081B68E0 .pool _081B68D8: ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E9D6D + ldr r1, =gText_PkmnAdoresBaseVar2Fell bl StringExpandPlaceholders _081B68E0: ldr r0, =gStringVar4 @@ -12239,30 +12239,30 @@ _081B69B8: .4byte _081B69E8 .4byte _081B69E0 _081B69D0: - ldr r1, =gUnknown_085E96E3 + ldr r1, =gText_HP3 b _081B69F2 .pool _081B69D8: - ldr r1, =gUnknown_085EA33C + ldr r1, =gText_Attack3 b _081B69F2 .pool _081B69E0: - ldr r1, =gUnknown_085EA343 + ldr r1, =gText_Defense3 b _081B69F2 .pool _081B69E8: - ldr r1, =gUnknown_085EA35B + ldr r1, =gText_Speed2 b _081B69F2 .pool _081B69F0: - ldr r1, =gUnknown_085E96E6 + ldr r1, =gText_SpAtk3 _081B69F2: adds r0, r2, 0 bl StringCopy b _081B6A08 .pool _081B6A00: - ldr r1, =gUnknown_085E96EE + ldr r1, =gText_SpDef3 adds r0, r2, 0 bl StringCopy _081B6A08: @@ -12517,7 +12517,7 @@ ether_effect_related: @ 81B6BEC strb r4, [r0] movs r0, 0x5 bl PlaySE - ldr r0, =gUnknown_085E96F6 + ldr r0, =gText_WontHaveEffect b _081B6C7E .pool _081B6C34: @@ -12775,18 +12775,18 @@ sub_81B6DC4: @ 81B6DC4 b _081B6E9C .pool _081B6E70: - ldr r1, =gUnknown_085E9AB4 + ldr r1, =gText_PkmnCantLearnMove b _081B6E7A .pool _081B6E78: - ldr r1, =gUnknown_085E9C00 + ldr r1, =gText_PkmnAlreadyKnows _081B6E7A: adds r0, r6, 0 bl sub_81B6D98 b _081B6E9C .pool _081B6E88: - ldr r0, =gUnknown_085E9AE9 + ldr r0, =gText_PkmnNeedsToReplaceMove bl sub_81B6D74 ldr r1, =gTasks lsls r0, r6, 2 @@ -12847,7 +12847,7 @@ _081B6EF0: adds r1, r2 bl StringCopy ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E9AA5 + ldr r1, =gText_PkmnLearnedMove3 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 @@ -12987,7 +12987,7 @@ _081B7048: beq _081B707A b _081B7080 _081B704E: - ldr r0, =gUnknown_085E9B96 + ldr r0, =gText_WhichMoveToForget movs r1, 0x1 bl sub_81B1B5C ldr r1, =gTasks @@ -13142,7 +13142,7 @@ sub_81B7154: @ 81B7154 ldr r2, =gMoveNames adds r1, r2 bl StringCopy - ldr r0, =gUnknown_085E9BB8 + ldr r0, =gText_12PoofForgotMove bl sub_81B6D74 ldr r1, =gTasks lsls r0, r6, 2 @@ -13214,7 +13214,7 @@ sub_81B7230: @ 81B7230 adds r1, r2 bl StringCopy ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E9B5D + ldr r1, =gText_StopLearningMove2 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 @@ -13302,7 +13302,7 @@ _081B7306: adds r1, r2 bl StringCopy ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E9B76 + ldr r1, =gText_MoveNotLearned adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 @@ -13352,7 +13352,7 @@ _081B7392: ldr r2, =gMoveNames adds r1, r2 bl StringCopy - ldr r0, =gUnknown_085E9AE9 + ldr r0, =gText_PkmnNeedsToReplaceMove bl sub_81B6D74 ldr r1, =gTasks lsls r0, r6, 2 @@ -13444,7 +13444,7 @@ _081B747A: ldr r1, =gUnknown_0203CEE8 movs r0, 0 strb r0, [r1] - ldr r0, =gUnknown_085E96F6 + ldr r0, =gText_WontHaveEffect movs r1, 0x1 bl sub_81B1B5C movs r0, 0x2 @@ -13484,7 +13484,7 @@ _081B74B4: movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E9D0A + ldr r1, =gText_PkmnElevatedToLvVar2 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 @@ -13915,7 +13915,7 @@ sub_81B787C: @ 81B787C adds r1, r2 bl StringCopy ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E9AE9 + ldr r1, =gText_PkmnNeedsToReplaceMove adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 @@ -13969,7 +13969,7 @@ sub_81B7910: @ 81B7910 adds r1, r2 bl StringCopy ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E9AA5 + ldr r1, =gText_PkmnLearnedMove3 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 @@ -14225,7 +14225,7 @@ _081B7B82: bne _081B7BC8 ldr r0, =gUnknown_0203CEE8 strb r1, [r0] - ldr r0, =gUnknown_085E96F6 + ldr r0, =gText_WontHaveEffect movs r1, 0x1 bl sub_81B1B5C movs r0, 0x2 @@ -14278,7 +14278,7 @@ sub_81B7C10: @ 81B7C10 ldr r1, =gStringVar1 bl GetMonNickname ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E9C17 + ldr r1, =gText_PkmnHPRestoredByVar2 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 @@ -14322,7 +14322,7 @@ sub_81B7C74: @ 81B7C74 ldr r1, =gUnknown_0203CEE8 movs r0, 0 strb r0, [r1] - ldr r0, =gUnknown_085E96F6 + ldr r0, =gText_WontHaveEffect movs r1, 0x1 bl sub_81B1B5C movs r0, 0x2 @@ -14613,18 +14613,18 @@ sub_81B7E4C: @ 81B7E4C b _081B7F1C .pool _081B7EF0: - ldr r1, =gUnknown_085E9AB4 + ldr r1, =gText_PkmnCantLearnMove b _081B7EFA .pool _081B7EF8: - ldr r1, =gUnknown_085E9C00 + ldr r1, =gText_PkmnAlreadyKnows _081B7EFA: adds r0, r6, 0 bl sub_81B6D98 b _081B7F1C .pool _081B7F08: - ldr r0, =gUnknown_085E9AE9 + ldr r0, =gText_PkmnNeedsToReplaceMove bl sub_81B6D74 ldr r1, =gTasks lsls r0, r6, 2 @@ -15152,7 +15152,7 @@ sub_81B83B8: @ 81B83B8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, =gUnknown_085E98EC + ldr r0, =gText_RemoveMailBeforeItem movs r1, 0x1 bl sub_81B1B5C movs r0, 0x2 @@ -15273,7 +15273,7 @@ sub_81B8474: @ 81B8474 bl GetMonData cmp r0, 0 beq _081B84DC - ldr r0, =gUnknown_085E9A08 + ldr r0, =gText_PkmnHoldingItemCantHoldMail movs r1, 0x1 bl sub_81B1B5C b _081B84F2 @@ -15284,7 +15284,7 @@ _081B84DC: bl sub_80D460C adds r0, r4, 0 bl sub_80D439C - ldr r0, =gUnknown_085E9A40 + ldr r0, =gText_MailTransferredFromMailbox movs r1, 0x1 bl sub_81B1B5C _081B84F2: @@ -15785,7 +15785,7 @@ sub_81B88BC: @ 81B88BC lsrs r0, 24 cmp r0, 0x1 bhi _081B88E0 - ldr r0, =gUnknown_085EA126 + ldr r0, =gText_CancelBattle b _081B88FA .pool _081B88E0: @@ -15795,11 +15795,11 @@ _081B88E0: ldrh r0, [r0] cmp r0, 0x2 bne _081B88F8 - ldr r0, =gUnknown_085EA139 + ldr r0, =gText_ReturnToWaitingRoom b _081B88FA .pool _081B88F8: - ldr r0, =gUnknown_085EA155 + ldr r0, =gText_CancelChallenge _081B88FA: pop {r1} bx r1 @@ -16015,7 +16015,7 @@ _081B8AA2: adds r0, r4, 0 bl StringCopy ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E97B2 + ldr r1, =gText_CantSwitchWithAlly b _081B8C42 .pool _081B8AC4: @@ -16033,7 +16033,7 @@ _081B8AC4: adds r0, r4, 0 bl GetMonNickname ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E978F + ldr r1, =gText_PkmnHasNoEnergy b _081B8C42 .pool _081B8AF8: @@ -16076,7 +16076,7 @@ _081B8B24: cmp r0, 0 beq _081B8B60 ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E97E5 + ldr r1, =gText_EggCantBattle b _081B8C42 .pool _081B8B60: @@ -16094,7 +16094,7 @@ _081B8B60: adds r0, r6, 0 bl GetMonNickname ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E976F + ldr r1, =gText_PkmnAlreadySelected b _081B8C42 .pool _081B8B94: @@ -16144,7 +16144,7 @@ _081B8BFC: ldr r1, =gStringVar1 bl GetMonNickname ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E9754 + ldr r1, =gText_PkmnAlreadyInBattle b _081B8C42 .pool _081B8C20: @@ -16162,7 +16162,7 @@ _081B8C20: ldr r1, =gStringVar1 bl GetMonNickname ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E9738 + ldr r1, =gText_PkmnCantSwitchOut _081B8C42: bl StringExpandPlaceholders _081B8C46: @@ -16228,7 +16228,7 @@ _081B8CBE: bne _081B8CFC movs r5, 0x1 movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity mov r2, sp ldr r1, =gBattlePartyID lsls r0, 24 @@ -16255,7 +16255,7 @@ _081B8CF0: _081B8CFC: movs r5, 0x2 movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity mov r1, sp ldr r4, =gBattlePartyID lsls r0, 24 @@ -16264,7 +16264,7 @@ _081B8CFC: ldrh r0, [r0] strb r0, [r1] movs r0, 0x2 - bl GetBankByPlayerAI + bl GetBankByIdentity mov r1, sp lsls r0, 24 lsrs r0, 23 @@ -16344,19 +16344,19 @@ sub_81B8D88: @ 81B8D88 cmp r0, 0 bne _081B8DB0 movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x2 b _081B8DBC _081B8DB0: movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x3 _081B8DBC: - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r6, r0, 24 bl sub_81B1250 @@ -17478,7 +17478,7 @@ sub_81B968C: @ 81B968C str r0, [sp] movs r0, 0x3 bl sub_81BF8EC - ldr r1, =gUnknown_03005DAC + ldr r1, =gFieldCallback ldr r0, =sub_80AF168 str r0, [r1] add sp, 0x4 diff --git a/asm/player_pc.s b/asm/player_pc.s index 7f4ab354c..14062347c 100644 --- a/asm/player_pc.s +++ b/asm/player_pc.s @@ -309,7 +309,7 @@ sub_816B0A8: @ 816B0A8 lsls r0, 24 cmp r0, 0 bne _0816B0D8 - ldr r1, =gUnknown_085EAC4B + ldr r1, =gText_NoMailHere ldr r2, =sub_816B060 adds r0, r4, 0 bl DisplayItemMessageOnField @@ -344,7 +344,7 @@ _0816B0D8: b _0816B12A .pool _0816B120: - ldr r1, =gUnknown_085EAC4B + ldr r1, =gText_NoMailHere ldr r2, =sub_816B060 adds r0, r6, 0 bl DisplayItemMessageOnField @@ -583,7 +583,7 @@ _0816B310: thumb_func_start sub_816B31C sub_816B31C: @ 816B31C push {lr} - ldr r0, =gUnknown_03005DAC + ldr r0, =gFieldCallback ldr r1, =mapldr_080EBC0C str r1, [r0] ldr r0, =c2_exit_to_overworld_2_switch @@ -661,7 +661,7 @@ sub_816B398: @ 816B398 _0816B3C4: adds r0, r5, 0 bl sub_816B4DC - ldr r1, =gUnknown_085EABD1 + ldr r1, =gText_NoItems ldr r2, =task_pc_itemstorage adds r0, r5, 0 bl DisplayItemMessageOnField @@ -696,7 +696,7 @@ sub_816B3E4: @ 816B3E4 _0816B410: adds r0, r5, 0 bl sub_816B4DC - ldr r1, =gUnknown_085EABD1 + ldr r1, =gText_NoItems ldr r2, =task_pc_itemstorage adds r0, r5, 0 bl DisplayItemMessageOnField @@ -950,7 +950,7 @@ sub_816B5F8: @ 816B5F8 lsrs r4, 24 movs r0, 0x1 bl sub_81D1C84 - ldr r6, =gUnknown_085EAB4E + ldr r6, =gText_Mailbox movs r0, 0x1 adds r1, r6, 0 movs r2, 0x40 @@ -1098,7 +1098,7 @@ sub_816B730: @ 816B730 movs r1, 0 bl sub_81DB554 ldr r5, =gStringVar4 - ldr r1, =gUnknown_085EAC63 + ldr r1, =gText_WhatToDoWithVar1sMail adds r0, r5, 0 bl StringExpandPlaceholders ldr r2, =sub_816B7DC @@ -1276,7 +1276,7 @@ _0816B8E6: thumb_func_start sub_816B900 sub_816B900: @ 816B900 push {lr} - ldr r0, =gUnknown_03005DAC + ldr r0, =gFieldCallback ldr r1, =pal_fill_for_maplights_or_black str r1, [r0] ldr r0, =c2_exit_to_overworld_2_switch @@ -1345,7 +1345,7 @@ sub_816B994: @ 816B994 push {lr} lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_085EAC8D + ldr r1, =gText_MessageWillBeLost ldr r2, =sub_816B9B0 bl DisplayItemMessageOnField pop {r0} @@ -1432,14 +1432,14 @@ sub_816BA18: @ 816BA18 lsls r0, 24 cmp r0, 0 bne _0816BA68 - ldr r1, =gUnknown_085EACB5 + ldr r1, =gText_BagIsFull ldr r2, =sub_816BBD4 adds r0, r6, 0 bl DisplayItemMessageOnField b _0816BA9C .pool _0816BA68: - ldr r1, =gUnknown_085EACC8 + ldr r1, =gText_MailToBagMessageErased ldr r2, =sub_816BBD4 adds r0, r6, 0 bl DisplayItemMessageOnField @@ -1535,7 +1535,7 @@ _0816BB1C: thumb_func_start sub_816BB28 sub_816BB28: @ 816BB28 push {lr} - ldr r0, =gUnknown_03005DAC + ldr r0, =gFieldCallback ldr r1, =sub_816BB48 str r1, [r0] ldr r0, =c2_exit_to_overworld_2_switch @@ -2293,10 +2293,10 @@ _0816C16C: bls _0816C16C movs r1, 0x6 ldrsh r0, [r7, r1] - ldr r5, =gUnknown_085EAB71 + ldr r5, =gText_TossItem cmp r0, 0 bne _0816C186 - ldr r5, =gUnknown_085EAB63 + ldr r5, =gText_WithdrawItem _0816C186: movs r0, 0x1 adds r1, r5, 0 @@ -2383,11 +2383,11 @@ _0816C26C: b _0816C2BA .pool _0816C274: - ldr r0, =gUnknown_085EAC09 + ldr r0, =gText_WithdrawHowManyItems b _0816C2BA .pool _0816C27C: - ldr r0, =gUnknown_085EAC22 + ldr r0, =gText_WithdrawXItems b _0816C2BA .pool _0816C284: @@ -2399,7 +2399,7 @@ _0816C28C: b _0816C2BA .pool _0816C294: - ldr r0, =gUnknown_085EABE7 + ldr r0, =gText_NoRoomInBag b _0816C2BA .pool _0816C29C: diff --git a/asm/pokeball.s b/asm/pokeball.s index 06958d7d2..557813c19 100755 --- a/asm/pokeball.s +++ b/asm/pokeball.s @@ -185,7 +185,7 @@ _08075548: .pool _08075584: movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, =gBankTarget strb r0, [r1] movs r0, 0x1 @@ -1199,13 +1199,13 @@ _08075DD4: lsrs r0, 16 mov r9, r0 movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 cmp r5, r0 beq _08075E00 movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 cmp r5, r0 @@ -1261,13 +1261,13 @@ _08075E70: .pool _08075E80: movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 cmp r5, r0 beq _08075E9C movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 cmp r5, r0 @@ -1830,7 +1830,7 @@ _080762F8: movs r0, 0x3A ldrsh r4, [r5, r0] movs r0, 0x2 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 cmp r4, r0 @@ -1903,7 +1903,7 @@ sub_8076398: @ 8076398 movs r0, 0x3A ldrsh r4, [r5, r0] movs r0, 0x3 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 cmp r4, r0 diff --git a/asm/pokeblock_feed.s b/asm/pokeblock_feed.s index bd348ec34..d82c5df07 100644 --- a/asm/pokeblock_feed.s +++ b/asm/pokeblock_feed.s @@ -718,7 +718,7 @@ sub_817A1C4: @ 817A1C4 cmp r0, 0 bne _0817A248 ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E937F + ldr r1, =gText_Var1AteTheVar2 bl StringExpandPlaceholders b _0817A268 .pool @@ -726,13 +726,13 @@ _0817A248: cmp r0, 0 ble _0817A260 ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E9390 + ldr r1, =gText_Var1HappilyAteVar2 bl StringExpandPlaceholders b _0817A268 .pool _0817A260: ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E93A9 + ldr r1, =gText_Var1DisdainfullyAteVar2 bl StringExpandPlaceholders _0817A268: ldr r2, =gTextFlags diff --git a/asm/pokedex.s b/asm/pokedex.s index fdaacde2c..f9ee0eeab 100644 --- a/asm/pokedex.s +++ b/asm/pokedex.s @@ -8429,8 +8429,8 @@ _080BFDB4: .pool thumb_func_end sub_80BFD7C - thumb_func_start sub_80BFDF4 -sub_80BFDF4: @ 80BFDF4 + thumb_func_start CreateDexDisplayMonDataTask +CreateDexDisplayMonDataTask: @ 80BFDF4 push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 @@ -8460,7 +8460,7 @@ sub_80BFDF4: @ 80BFDF4 pop {r1} bx r1 .pool - thumb_func_end sub_80BFDF4 + thumb_func_end CreateDexDisplayMonDataTask thumb_func_start sub_80BFE38 sub_80BFE38: @ 80BFE38 diff --git a/asm/pokemon_2.s b/asm/pokemon_2.s deleted file mode 100644 index 17856f6d3..000000000 --- a/asm/pokemon_2.s +++ /dev/null @@ -1,356 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start CopyPlayerPartyMonToBattleData -CopyPlayerPartyMonToBattleData: @ 806B9FC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x14] - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - movs r0, 0x64 - mov r5, r9 - muls r5, r0 - ldr r0, =gPlayerParty - adds r5, r0 - adds r0, r5, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - ldr r1, =gBattleMons - mov r8, r1 - movs r1, 0x58 - ldr r2, [sp, 0x14] - adds r4, r2, 0 - muls r4, r1 - mov r3, r8 - adds r6, r4, r3 - strh r0, [r6] - adds r0, r5, 0 - movs r1, 0xC - movs r2, 0 - bl GetMonData - strh r0, [r6, 0x2E] - movs r6, 0 - mov r0, r8 - adds r0, 0x24 - adds r7, r4, r0 -_0806BA4E: - adds r1, r6, 0 - adds r1, 0xD - adds r0, r5, 0 - movs r2, 0 - bl GetMonData - movs r1, 0xC - add r1, r8 - mov r10, r1 - adds r1, r4, r1 - strh r0, [r1] - adds r1, r6, 0 - adds r1, 0x11 - adds r0, r5, 0 - movs r2, 0 - bl GetMonData - strb r0, [r7] - adds r7, 0x1 - adds r4, 0x2 - adds r6, 0x1 - cmp r6, 0x3 - ble _0806BA4E - movs r0, 0x64 - mov r4, r9 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x15 - movs r2, 0 - bl GetMonData - movs r2, 0xC - negs r2, r2 - add r2, r10 - mov r9, r2 - movs r1, 0x58 - ldr r3, [sp, 0x14] - adds r5, r3, 0 - muls r5, r1 - adds r7, r5, r2 - adds r1, r7, 0 - adds r1, 0x3B - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x20 - movs r2, 0 - bl GetMonData - adds r1, r7, 0 - adds r1, 0x2B - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x19 - movs r2, 0 - bl GetMonData - mov r1, r10 - adds r1, 0x38 - adds r1, r5, r1 - str r0, [r1] - adds r0, r4, 0 - movs r1, 0x27 - movs r2, 0 - bl GetMonData - movs r6, 0x1F - ands r0, r6 - ldrb r2, [r7, 0x14] - movs r1, 0x20 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r7, 0x14] - adds r0, r4, 0 - movs r1, 0x28 - movs r2, 0 - bl GetMonData - movs r1, 0x1F - mov r8, r1 - mov r2, r8 - ands r0, r2 - lsls r0, 5 - ldrh r2, [r7, 0x14] - ldr r1, =0xfffffc1f - ands r1, r2 - orrs r1, r0 - strh r1, [r7, 0x14] - adds r0, r4, 0 - movs r1, 0x29 - movs r2, 0 - bl GetMonData - ands r0, r6 - lsls r0, 2 - ldrb r2, [r7, 0x15] - movs r1, 0x7D - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r7, 0x15] - adds r0, r4, 0 - movs r1, 0x2A - movs r2, 0 - bl GetMonData - movs r1, 0x1F - ands r1, r0 - lsls r1, 15 - ldr r0, [r7, 0x14] - ldr r2, =0xfff07fff - ands r0, r2 - orrs r0, r1 - str r0, [r7, 0x14] - adds r0, r4, 0 - movs r1, 0x2B - movs r2, 0 - bl GetMonData - mov r3, r8 - ands r0, r3 - lsls r0, 4 - ldrh r2, [r7, 0x16] - ldr r1, =0xfffffe0f - ands r1, r2 - orrs r1, r0 - strh r1, [r7, 0x16] - adds r0, r4, 0 - movs r1, 0x2C - movs r2, 0 - bl GetMonData - ands r0, r6 - lsls r0, 1 - ldrb r2, [r7, 0x17] - movs r1, 0x3F - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r7, 0x17] - adds r0, r4, 0 - movs r1, 0 - movs r2, 0 - bl GetMonData - mov r1, r10 - adds r1, 0x3C - adds r1, r5, r1 - str r0, [r1] - adds r0, r4, 0 - movs r1, 0x37 - movs r2, 0 - bl GetMonData - mov r1, r10 - adds r1, 0x40 - adds r1, r5, r1 - str r0, [r1] - adds r0, r4, 0 - movs r1, 0x38 - movs r2, 0 - bl GetMonData - adds r1, r7, 0 - adds r1, 0x2A - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x39 - movs r2, 0 - bl GetMonData - strh r0, [r7, 0x28] - adds r0, r4, 0 - movs r1, 0x3A - movs r2, 0 - bl GetMonData - strh r0, [r7, 0x2C] - adds r0, r4, 0 - movs r1, 0x3B - movs r2, 0 - bl GetMonData - strh r0, [r7, 0x2] - adds r0, r4, 0 - movs r1, 0x3C - movs r2, 0 - bl GetMonData - strh r0, [r7, 0x4] - adds r0, r4, 0 - movs r1, 0x3D - movs r2, 0 - bl GetMonData - strh r0, [r7, 0x6] - adds r0, r4, 0 - movs r1, 0x3E - movs r2, 0 - bl GetMonData - strh r0, [r7, 0x8] - adds r0, r4, 0 - movs r1, 0x3F - movs r2, 0 - bl GetMonData - strh r0, [r7, 0xA] - adds r0, r4, 0 - movs r1, 0x2D - movs r2, 0 - bl GetMonData - movs r1, 0x1 - ands r0, r1 - lsls r0, 6 - ldrb r2, [r7, 0x17] - movs r1, 0x41 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r7, 0x17] - adds r0, r4, 0 - movs r1, 0x2E - movs r2, 0 - bl GetMonData - lsls r0, 7 - ldrb r2, [r7, 0x17] - movs r1, 0x7F - ands r1, r2 - orrs r1, r0 - strb r1, [r7, 0x17] - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0 - bl GetMonData - mov r1, r10 - adds r1, 0x48 - adds r1, r5, r1 - str r0, [r1] - ldr r2, =gBaseStats - ldrh r1, [r7] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x6] - adds r1, r7, 0 - adds r1, 0x21 - strb r0, [r1] - ldrh r1, [r7] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x7] - adds r1, r7, 0 - adds r1, 0x22 - strb r0, [r1] - ldrh r0, [r7] - ldrb r1, [r7, 0x17] - lsrs r1, 7 - bl GetAbilityBySpecies - adds r1, r7, 0 - adds r1, 0x20 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2 - mov r2, sp - bl GetMonData - mov r0, r10 - adds r0, 0x24 - adds r0, r5, r0 - mov r1, sp - bl StringCopy10 - mov r2, r10 - adds r2, 0x30 - adds r2, r5, r2 - adds r0, r4, 0 - movs r1, 0x7 - bl GetMonData - ldr r0, [sp, 0x14] - bl GetBankSide - ldr r1, =gBattleStruct - lsls r0, 24 - lsrs r0, 23 - adds r0, 0xA8 - ldr r1, [r1] - adds r1, r0 - ldrh r0, [r7, 0x28] - strh r0, [r1] - movs r2, 0x6 - mov r1, r9 - movs r6, 0x7 - add r5, r10 - adds r0, r5, 0 - adds r0, 0x13 -_0806BCB2: - strb r2, [r0] - subs r0, 0x1 - subs r6, 0x1 - cmp r6, 0 - bge _0806BCB2 - movs r2, 0 - movs r0, 0x58 - ldr r3, [sp, 0x14] - muls r0, r3 - adds r1, 0x50 - adds r0, r1 - str r2, [r0] - ldr r0, [sp, 0x14] - bl sub_803FA70 - ldr r0, [sp, 0x14] - movs r1, 0 - bl sub_805EF84 - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end CopyPlayerPartyMonToBattleData - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/pokemon_icon.s b/asm/pokemon_icon.s index e90253ab0..6009bd3f3 100755 --- a/asm/pokemon_icon.s +++ b/asm/pokemon_icon.s @@ -32,7 +32,7 @@ sub_80D2CC4: @ 80D2CC4 str r0, [sp, 0x18] adds r0, r4, 0 adds r2, r5, 0 - bl sub_80D2EDC + bl GetMonIconPtr str r0, [sp, 0x1C] ldr r0, =gUnknown_0857C5B4 str r0, [sp, 0x20] @@ -271,9 +271,9 @@ _080D2ED2: bx r1 thumb_func_end sub_80D2E84 - thumb_func_start sub_80D2EDC -@ void *sub_80D2EDC(u16 speciesId, u32 personality, bool32) -sub_80D2EDC: @ 80D2EDC + thumb_func_start GetMonIconPtr +@ void *GetMonIconPtr(u16 speciesId, u32 personality, bool32) +GetMonIconPtr: @ 80D2EDC push {r4,lr} adds r4, r2, 0 lsls r0, 16 @@ -286,7 +286,7 @@ sub_80D2EDC: @ 80D2EDC pop {r4} pop {r1} bx r1 - thumb_func_end sub_80D2EDC + thumb_func_end GetMonIconPtr thumb_func_start sub_80D2EF8 sub_80D2EF8: @ 80D2EF8 @@ -534,8 +534,8 @@ sub_80D30A0: @ 80D30A0 .pool thumb_func_end sub_80D30A0 - thumb_func_start sub_80D30B0 -sub_80D30B0: @ 80D30B0 + thumb_func_start GetValidMonIconPalettePtr +GetValidMonIconPalettePtr: @ 80D30B0 push {lr} lsls r0, 16 lsrs r2, r0, 16 @@ -556,7 +556,7 @@ _080D30C2: pop {r1} bx r1 .pool - thumb_func_end sub_80D30B0 + thumb_func_end GetValidMonIconPalettePtr thumb_func_start sub_80D30DC sub_80D30DC: @ 80D30DC diff --git a/asm/pokemon_item_effect.s b/asm/pokemon_item_effect.s index 137f7a5c0..5dc6452e9 100644 --- a/asm/pokemon_item_effect.s +++ b/asm/pokemon_item_effect.s @@ -1155,9 +1155,9 @@ _0806C6AE: movs r0, 0 movs r1, 0 movs r2, 0 - bl dp01_build_cmdbuf_x00_a_b_0 + bl EmitGetMonData ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution strb r5, [r4] b _0806C6EC .pool diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s index df90540e8..6c4c7ff13 100755 --- a/asm/pokemon_storage_system.s +++ b/asm/pokemon_storage_system.s @@ -586,7 +586,7 @@ _080C73F6: movs r0, 0 movs r1, 0x11 bl FillWindowPixelBuffer - ldr r2, =gUnknown_085EBCAD + ldr r2, =gText_PartyFull str r4, [sp] movs r0, 0x2 str r0, [sp, 0x4] @@ -609,7 +609,7 @@ _080C7428: movs r0, 0 movs r1, 0x11 bl FillWindowPixelBuffer - ldr r2, =gUnknown_085EBC89 + ldr r2, =gText_JustOnePkmn movs r0, 0 str r0, [sp] movs r0, 0x2 @@ -870,7 +870,7 @@ sub_80C7678: @ 80C7678 bl sub_80CAEA0 ldr r1, =gUnknown_02039D00 strb r0, [r1] - ldr r1, =gUnknown_03005DAC + ldr r1, =gFieldCallback ldr r0, =mapldr_0808C6D8 str r0, [r1] ldr r0, =c2_exit_to_overworld_2_switch @@ -1019,8 +1019,8 @@ _080C777E: _080C779E: lsls r0, r5, 24 lsrs r0, 24 - bl sav3_get_box_name - ldr r1, =gUnknown_085EBCC1 + bl GetBoxNamePtr + ldr r1, =gText_Box bl StringCopy adds r4, r5, 0x1 adds r1, r4, 0 @@ -1566,7 +1566,7 @@ sub_80C7BE4: @ 80C7BE4 lsls r4, 2 adds r0, r4 ldrb r0, [r0] - bl sav3_get_box_name + bl GetBoxNamePtr mov r10, r0 mov r1, r9 ldr r0, [r1] @@ -5424,7 +5424,7 @@ _080C9F1C: bl StorageGetCurrentBox lsls r0, 24 lsrs r0, 24 - bl sav3_get_box_name + bl GetBoxNamePtr adds r1, r0, 0 movs r0, 0 str r0, [sp] @@ -5433,7 +5433,7 @@ _080C9F1C: movs r0, 0x1 movs r2, 0 movs r3, 0 - bl do_choose_name_or_words_screen + bl DoNamingScreen b _080C9F56 .pool _080C9F48: @@ -10831,7 +10831,7 @@ sub_80CCB50: @ 80CCB50 ldr r5, =0x000021b8 adds r4, r5 mov r0, r8 - bl sav3_get_box_name + bl GetBoxNamePtr adds r1, r0, 0 adds r0, r4, 0 movs r2, 0 @@ -10852,7 +10852,7 @@ sub_80CCB50: @ 80CCB50 ldr r0, [sp, 0x2C] bl LoadSpriteSheet mov r0, r8 - bl sav3_get_box_name + bl GetBoxNamePtr bl sub_80CD00C movs r4, 0 lsls r0, 16 @@ -10997,7 +10997,7 @@ _080CCDB0: ldr r5, =0x000021b8 adds r4, r5 ldr r0, [sp, 0x28] - bl sav3_get_box_name + bl GetBoxNamePtr adds r1, r0, 0 adds r0, r4, 0 movs r2, 0 @@ -11027,7 +11027,7 @@ _080CCDB0: movs r2, 0x4 bl LoadPalette ldr r0, [sp, 0x28] - bl sav3_get_box_name + bl GetBoxNamePtr bl sub_80CD00C lsls r0, 16 mov r1, r10 @@ -17910,7 +17910,7 @@ sub_80D07B0: @ 80D07B0 beq _080D0828 adds r0, r5, 0 movs r2, 0x1 - bl sub_80D2EDC + bl GetMonIconPtr adds r4, r0, 0 adds r0, r5, 0 bl sub_80D3080 @@ -21085,8 +21085,8 @@ _080D20CA: bx r1 thumb_func_end GetBoxedMonPtr - thumb_func_start sav3_get_box_name -sav3_get_box_name: @ 80D20D0 + thumb_func_start GetBoxNamePtr +GetBoxNamePtr: @ 80D20D0 push {lr} lsls r0, 24 lsrs r2, r0, 24 @@ -21106,7 +21106,7 @@ _080D20EC: pop {r1} bx r1 .pool - thumb_func_end sav3_get_box_name + thumb_func_end GetBoxNamePtr thumb_func_start sub_80D20F8 sub_80D20F8: @ 80D20F8 diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s index 7f1a1e48f..b243ab3b2 100755 --- a/asm/pokemon_summary_screen.s +++ b/asm/pokemon_summary_screen.s @@ -2352,7 +2352,7 @@ _081C284A: sub_81C286C: @ 81C286C push {r4-r7,lr} sub sp, 0x8 - ldr r1, =gUnknown_085EA3CF + ldr r1, =gText_PkmnInfo movs r5, 0 str r5, [sp] movs r6, 0x1 @@ -2361,21 +2361,21 @@ sub_81C286C: @ 81C286C movs r2, 0x2 movs r3, 0x1 bl sub_81C25A4 - ldr r1, =gUnknown_085EA3DC + ldr r1, =gText_PkmnSkills str r5, [sp] str r6, [sp, 0x4] movs r0, 0x1 movs r2, 0x2 movs r3, 0x1 bl sub_81C25A4 - ldr r1, =gUnknown_085EA3EB + ldr r1, =gText_BattleMoves str r5, [sp] str r6, [sp, 0x4] movs r0, 0x2 movs r2, 0x2 movs r3, 0x1 bl sub_81C25A4 - ldr r1, =gUnknown_085EA3F8 + ldr r1, =gText_ContestMoves str r5, [sp] str r6, [sp, 0x4] movs r0, 0x3 @@ -2405,7 +2405,7 @@ _081C28CC: adds r1, r7, 0 movs r3, 0x1 bl sub_81C25A4 - ldr r7, =gUnknown_085EA406 + ldr r7, =gText_Info movs r0, 0x1 adds r1, r7, 0 movs r2, 0x3E @@ -2428,7 +2428,7 @@ _081C28FE: adds r1, r7, 0 movs r3, 0x1 bl sub_81C25A4 - ldr r7, =gUnknown_085EA3C8 + ldr r7, =gText_Switch movs r0, 0x1 adds r1, r7, 0 movs r2, 0x3E @@ -2451,21 +2451,21 @@ _081C2930: adds r1, r7, 0 movs r3, 0x1 bl sub_81C25A4 - ldr r1, =gUnknown_085EA369 + ldr r1, =gText_RentalPkmn str r5, [sp] str r6, [sp, 0x4] movs r0, 0x8 movs r2, 0 movs r3, 0x1 bl sub_81C25A4 - ldr r1, =gUnknown_085EA378 + ldr r1, =gText_TypeSlash str r5, [sp] str r5, [sp, 0x4] movs r0, 0x9 movs r2, 0 movs r3, 0x1 bl sub_81C25A4 - ldr r4, =gUnknown_085EA361 + ldr r4, =gText_HP4 movs r0, 0x1 adds r1, r4, 0 movs r2, 0x2A @@ -2479,7 +2479,7 @@ _081C2930: adds r1, r4, 0 movs r3, 0x1 bl sub_81C25A4 - ldr r4, =gUnknown_085EA33C + ldr r4, =gText_Attack3 movs r0, 0x1 adds r1, r4, 0 movs r2, 0x2A @@ -2493,7 +2493,7 @@ _081C2930: adds r1, r4, 0 movs r3, 0x11 bl sub_81C25A4 - ldr r4, =gUnknown_085EA343 + ldr r4, =gText_Defense3 movs r0, 0x1 adds r1, r4, 0 movs r2, 0x2A @@ -2507,7 +2507,7 @@ _081C2930: adds r1, r4, 0 movs r3, 0x21 bl sub_81C25A4 - ldr r4, =gUnknown_085EA34B + ldr r4, =gText_SpAtk4 movs r0, 0x1 adds r1, r4, 0 movs r2, 0x24 @@ -2521,7 +2521,7 @@ _081C2930: adds r1, r4, 0 movs r3, 0x1 bl sub_81C25A4 - ldr r4, =gUnknown_085EA353 + ldr r4, =gText_SpDef4 movs r0, 0x1 adds r1, r4, 0 movs r2, 0x24 @@ -2535,7 +2535,7 @@ _081C2930: adds r1, r4, 0 movs r3, 0x11 bl sub_81C25A4 - ldr r4, =gUnknown_085EA35B + ldr r4, =gText_Speed2 movs r0, 0x1 adds r1, r4, 0 movs r2, 0x24 @@ -2549,49 +2549,49 @@ _081C2930: adds r1, r4, 0 movs r3, 0x21 bl sub_81C25A4 - ldr r1, =gUnknown_085EA39F + ldr r1, =gText_ExpPoints str r5, [sp] str r6, [sp, 0x4] movs r0, 0xC movs r2, 0x6 movs r3, 0x1 bl sub_81C25A4 - ldr r1, =gUnknown_085EA3AB + ldr r1, =gText_NextLv str r5, [sp] str r6, [sp, 0x4] movs r0, 0xC movs r2, 0x6 movs r3, 0x11 bl sub_81C25A4 - ldr r1, =gUnknown_085EA398 + ldr r1, =gText_Status str r5, [sp] str r6, [sp, 0x4] movs r0, 0xD movs r2, 0x2 movs r3, 0x1 bl sub_81C25A4 - ldr r1, =gUnknown_085EA37E + ldr r1, =gText_Power str r5, [sp] str r6, [sp, 0x4] movs r0, 0xE movs r2, 0 movs r3, 0x1 bl sub_81C25A4 - ldr r1, =gUnknown_085EA384 + ldr r1, =gText_Accuracy2 str r5, [sp] str r6, [sp, 0x4] movs r0, 0xE movs r2, 0 movs r3, 0x11 bl sub_81C25A4 - ldr r1, =gUnknown_085EA38D + ldr r1, =gText_Appeal str r5, [sp] str r6, [sp, 0x4] movs r0, 0xF movs r2, 0 movs r3, 0x1 bl sub_81C25A4 - ldr r1, =gUnknown_085EA394 + ldr r1, =gText_Jam str r5, [sp] str r6, [sp, 0x4] movs r0, 0xF @@ -3065,7 +3065,7 @@ sub_81C2EC4: @ 81C2EC4 bl sub_81C2D2C lsls r0, 24 lsrs r5, r0, 24 - ldr r4, =gUnknown_085EA365 + ldr r4, =gText_OTSlash movs r6, 0 str r6, [sp] movs r0, 0x1 @@ -3274,7 +3274,7 @@ sub_81C307C: @ 81C307C bne _081C30E0 _081C30C2: ldr r0, =gStringVar4 - ldr r1, =gUnknown_085EA5DB + ldr r1, =gText_XNature bl sub_81AFC28 b _081C3182 .pool @@ -3306,25 +3306,25 @@ _081C310C: cmp r0, 0 bne _081C3134 ldrb r0, [r4, 0x9] - ldr r1, =gUnknown_085EA516 + ldr r1, =gText_XNatureHatchedAtYZ cmp r0, 0xD4 bls _081C3170 - ldr r1, =gUnknown_085EA617 + ldr r1, =gText_XNatureHatchedSomewhereAt b _081C3170 .pool _081C3134: ldrb r0, [r4, 0x9] - ldr r1, =gUnknown_085EA4EC + ldr r1, =gText_XNatureMetAtYZ cmp r0, 0xD4 bls _081C3170 - ldr r1, =gUnknown_085EA5EB + ldr r1, =gText_XNatureMetSomewhereAt b _081C3170 .pool _081C3148: ldrb r0, [r4, 0x9] cmp r0, 0xFF bne _081C3158 - ldr r1, =gUnknown_085EA56A + ldr r1, =gText_XNatureFatefulEncounter b _081C3170 .pool _081C3158: @@ -3335,11 +3335,11 @@ _081C3158: cmp r0, 0 beq _081C316E ldrb r0, [r4, 0x9] - ldr r1, =gUnknown_085EA5A8 + ldr r1, =gText_XNatureProbablyMetAt cmp r0, 0xD4 bls _081C3170 _081C316E: - ldr r1, =gUnknown_085EA544 + ldr r1, =gText_XNatureObtainedInTrade _081C3170: ldr r0, =gStringVar4 bl sub_81AFC28 @@ -3388,7 +3388,7 @@ sub_81C31C0: @ 81C31C0 ldr r1, [r0] movs r0, 0x2 bl sub_81AFC0C - ldr r1, =gUnknown_085EA3C0 + ldr r1, =gText_EmptyString5 movs r0, 0x5 bl sub_81AFC0C pop {r0} @@ -3588,7 +3588,7 @@ sub_81C335C: @ 81C335C adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, =gUnknown_085EA365 + ldr r0, =gText_OTSlash mov r8, r0 movs r0, 0x1 mov r1, r8 @@ -3675,27 +3675,27 @@ sub_81C3428: @ 81C3428 ldrb r0, [r0] cmp r0, 0x1 bne _081C3448 - ldr r4, =gUnknown_085EA40B + ldr r4, =gText_EggWillTakeALongTime b _081C346C .pool _081C3448: ldrh r0, [r1, 0x30] cmp r0, 0x5 bhi _081C3458 - ldr r4, =gUnknown_085EA4A2 + ldr r4, =gText_EggAboutToHatch b _081C346C .pool _081C3458: cmp r0, 0xA bhi _081C3464 - ldr r4, =gUnknown_085EA475 + ldr r4, =gText_EggWillHatchSoon b _081C346C .pool _081C3464: - ldr r4, =gUnknown_085EA40B + ldr r4, =gText_EggWillTakeALongTime cmp r0, 0x28 bhi _081C346C - ldr r4, =gUnknown_085EA442 + ldr r4, =gText_EggWillTakeSomeTime _081C346C: ldr r0, =gUnknown_0861CCCC movs r1, 0x2 @@ -3731,7 +3731,7 @@ sub_81C349C: @ 81C349C ldrb r0, [r4, 0x9] cmp r0, 0xFF bne _081C34C4 - ldr r4, =gUnknown_085EA678 + ldr r4, =gText_PeculiarEggNicePlace b _081C3502 .pool _081C34C4: @@ -3744,7 +3744,7 @@ _081C34C4: cmp r0, 0 bne _081C34E0 _081C34D8: - ldr r4, =gUnknown_085EA6AB + ldr r4, =gText_PeculiarEggTrade b _081C3502 .pool _081C34E0: @@ -3754,14 +3754,14 @@ _081C34E0: bl sub_81C32E0 lsls r0, 24 lsrs r0, 24 - ldr r4, =gUnknown_085EA702 + ldr r4, =gText_EggFromTraveler cmp r0, 0x1 bne _081C3502 - ldr r4, =gUnknown_085EA6D7 + ldr r4, =gText_EggFromHotSprings b _081C3502 .pool _081C3500: - ldr r4, =gUnknown_085EA647 + ldr r4, =gText_OddEggFoundByCouple _081C3502: ldr r0, =gUnknown_0861CCCC movs r1, 0x3 @@ -3960,7 +3960,7 @@ _081C36B0: movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EA3B4 + ldr r1, =gText_RibbonsVar1 adds r0, r4, 0 bl StringExpandPlaceholders adds r5, r4, 0 @@ -5140,7 +5140,7 @@ sub_81C4154: @ 81C4154 adds r0, r4, 0 movs r1, 0 bl FillWindowPixelBuffer - ldr r1, =gUnknown_085EA4CB + ldr r1, =gText_HMMovesCantBeForgotten2 movs r0, 0 str r0, [sp] str r0, [sp, 0x4] @@ -7369,7 +7369,7 @@ sub_81C540C: @ 81C540C ldr r1, =gStringVar2 adds r0, r4, 0 bl CopyItemName - ldr r1, =gUnknown_085E9210 + ldr r1, =gText_UnkF908Var1Clear7Var2 adds r0, r5, 0 bl StringExpandPlaceholders b _081C5458 @@ -7574,7 +7574,7 @@ sub_81C55D8: @ 81C55D8 .pool _081C561C: ldr r0, =gStringVar1 - ldr r2, =gUnknown_085E91B0 + ldr r2, =gReturnToXStringsTable2 ldr r1, =gUnknown_0203CF30 ldrb r1, [r1, 0x4] lsls r1, 2 diff --git a/asm/pokenav.s b/asm/pokenav.s index f6c50a3f7..fa0aaa9d0 100755 --- a/asm/pokenav.s +++ b/asm/pokenav.s @@ -6860,7 +6860,7 @@ sub_81CA770: @ 81CA770 movs r0, 0x2 bl sub_81C763C adds r5, r0, 0 - ldr r6, =gUnknown_085EBD4A + ldr r6, =gText_NoRibbonWinners movs r2, 0x1 negs r2, r2 movs r0, 0x1 @@ -7928,7 +7928,7 @@ sub_81CAF78: @ 81CAF78 lsls r0, 24 cmp r0, 0 bne _081CAFA4 - ldr r0, =gUnknown_085EEB0B + ldr r0, =gText_CallCantBeMadeHere b _081CAFCE .pool _081CAFA4: @@ -9748,7 +9748,7 @@ sub_81CBDF4: @ 81CBDF4 push {lr} lsls r0, 16 lsrs r0, 16 - ldr r1, =gUnknown_085EBE5F + ldr r1, =gText_NumberRegistered movs r2, 0 bl sub_81CBE88 pop {r0} @@ -9784,7 +9784,7 @@ sub_81CBE38: @ 81CBE38 push {lr} lsls r0, 16 lsrs r0, 16 - ldr r1, =gUnknown_085EBE6E + ldr r1, =gText_NumberOfBattles movs r2, 0x2 bl sub_81CBE88 pop {r0} @@ -9900,7 +9900,7 @@ sub_81CBEF8: @ 81CBEF8 bl GetMapName b _081CBF24 _081CBF1C: - ldr r1, =gUnknown_085EC00F + ldr r1, =gText_Unknown add r0, sp, 0xC bl StringCopy _081CBF24: @@ -10168,7 +10168,7 @@ sub_81CC11C: @ 81CC11C push {lr} sub sp, 0xC ldrb r0, [r0, 0x14] - ldr r2, =gUnknown_085EBF95 + ldr r2, =gText_TrainerCloseBy movs r1, 0x1 str r1, [sp] str r1, [sp, 0x4] @@ -13128,7 +13128,7 @@ _081CD862: adds r0, r4, r5 ldr r1, =0x00006325 adds r0, r1 - ldr r1, =gUnknown_085EBFCE + ldr r1, =gText_InParty b _081CD8F4 .pool _081CD8E4: @@ -13136,7 +13136,7 @@ _081CD8E4: ldr r2, =0x00006325 adds r4, r2 adds r0, r3, 0 - bl sav3_get_box_name + bl GetBoxNamePtr adds r1, r0, 0 adds r0, r4, 0 _081CD8F4: @@ -14829,7 +14829,7 @@ sub_81CE738: @ 81CE738 movs r2, 0x1 movs r3, 0x4 bl ConvertIntToDecimalStringN - ldr r1, =gUnknown_085EBFD7 + ldr r1, =gText_Number2 bl StringCopy pop {r1} bx r1 @@ -14957,7 +14957,7 @@ _081CE80C: strb r0, [r1, 0x4] mov r5, sp adds r5, 0x11 - ldr r1, =gUnknown_085EBFD7 + ldr r1, =gText_Number2 adds r0, r5, 0 bl StringCopy ldr r0, =0x00001821 @@ -16949,7 +16949,7 @@ sub_81CF7F4: @ 81CF7F4 movs r0, 0xFF strb r0, [r4] ldr r5, =gStringVar2 - ldr r1, =gUnknown_085EC029 + ldr r1, =gText_NumberF700 adds r0, r5, 0 bl sub_81AFC28 mov r1, r8 @@ -19859,7 +19859,7 @@ sub_81D0E84: @ 81D0E84 adds r1, r4, 0 bl sub_81AFC0C ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EC030 + ldr r1, =gText_RibbonsF700 adds r0, r4, 0 bl sub_81AFC28 ldrb r0, [r5, 0xA] @@ -23412,7 +23412,7 @@ sub_81D28FC: @ 81D28FC movs r0, 0 movs r1, 0x11 bl FillWindowPixelBuffer - ldr r5, =gUnknown_085EFA31 + ldr r5, =gText_BattleMoves2 movs r0, 0x1 adds r1, r5, 0 movs r2, 0x80 @@ -23431,7 +23431,7 @@ sub_81D28FC: @ 81D28FC movs r1, 0x1 adds r2, r5, 0 bl PrintTextOnWindow - ldr r5, =gUnknown_085EFA52 + ldr r5, =gText_PPSlash movs r1, 0x29 mov r10, r1 str r1, [sp] @@ -23443,7 +23443,7 @@ sub_81D28FC: @ 81D28FC adds r2, r5, 0 movs r3, 0x4 bl PrintTextOnWindow - ldr r5, =gUnknown_085EFA56 + ldr r5, =gText_PowerSlash movs r0, 0x1 adds r1, r5, 0 movs r2, 0x6A @@ -23460,7 +23460,7 @@ sub_81D28FC: @ 81D28FC movs r1, 0x1 adds r2, r5, 0 bl PrintTextOnWindow - ldr r5, =gUnknown_085EFA5D + ldr r5, =gText_AccuracySlash movs r0, 0x1 adds r1, r5, 0 movs r2, 0x6A @@ -23508,7 +23508,7 @@ _081D29C4: adds r2, r5, 0 movs r3, 0x4 bl PrintTextOnWindow - ldr r1, =gUnknown_085EFA52 + ldr r1, =gText_PPSlash movs r0, 0x1 movs r2, 0 bl GetStringWidth @@ -23616,7 +23616,7 @@ sub_81D2ACC: @ 81D2ACC movs r0, 0x1 movs r1, 0x11 bl FillWindowPixelBuffer - ldr r5, =gUnknown_085EFA3E + ldr r5, =gText_ContestMoves2 movs r0, 0x1 adds r1, r5, 0 movs r2, 0x80 @@ -23632,7 +23632,7 @@ sub_81D2ACC: @ 81D2ACC movs r1, 0x1 adds r2, r5, 0 bl PrintTextOnWindow - ldr r5, =gUnknown_085EFA67 + ldr r5, =gText_Appeal2 movs r0, 0x1 adds r1, r5, 0 movs r2, 0x5C @@ -23648,7 +23648,7 @@ sub_81D2ACC: @ 81D2ACC movs r1, 0x1 adds r2, r5, 0 bl PrintTextOnWindow - ldr r5, =gUnknown_085EFA6E + ldr r5, =gText_Jam2 movs r0, 0x1 adds r1, r5, 0 movs r2, 0x5C @@ -24157,14 +24157,14 @@ _081D2EFC: cmp r7, 0xE bne _081D2F2C adds r0, r5, 0x5 - ldr r1, =gUnknown_085EBFCE + ldr r1, =gText_InParty b _081D2F3A .pool _081D2F2C: adds r4, r5, 0x5 lsls r0, r7, 24 lsrs r0, 24 - bl sav3_get_box_name + bl GetBoxNamePtr adds r1, r0, 0 adds r0, r4, 0 _081D2F3A: @@ -25214,10 +25214,10 @@ _081D36CA: adds r4, 0xC movs r1, 0 ldrsh r0, [r4, r1] - ldr r1, =gUnknown_085EEA76 + ldr r1, =gText_Dash cmp r0, 0 blt _081D3704 - ldr r1, =gUnknown_085EEA73 + ldr r1, =gText_UnkCtrlF904 _081D3704: adds r0, r6, 0 bl StringCopy @@ -26636,7 +26636,7 @@ sub_81D427C: @ 81D427C ldr r2, =gMapObjects adds r5, r1, r2 ldr r4, =gUnknown_030012F8 - ldr r3, =gUnknown_02037590 + ldr r3, =gPlayerAvatar ldrb r1, [r3, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -26672,7 +26672,7 @@ _081D42CA: cmp r0, 0x3 bls _081D42CA ldr r2, =gMapObjects - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -26730,7 +26730,7 @@ _081D4360: ldr r6, =gMapObjects mov r10, r6 _081D4368: - ldr r3, =gUnknown_02037590 + ldr r3, =gPlayerAvatar ldrb r1, [r3, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -26837,7 +26837,7 @@ _081D4410: beq _081D4446 b _081D45AA _081D4446: - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -26879,7 +26879,7 @@ _081D4488: cmp r0, 0 bne _081D4538 _081D449E: - ldr r2, =gUnknown_02037590 + ldr r2, =gPlayerAvatar ldrb r1, [r2, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -26983,7 +26983,7 @@ _081D4540: beq _081D4576 b _081D447C _081D4576: - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -27152,7 +27152,7 @@ _081D46D0: cmp r0, 0 bne _081D476E ldr r2, =gMapObjects - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -27177,7 +27177,7 @@ _081D46D0: b _081D447C _081D470C: ldr r2, =gMapObjects - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -27231,7 +27231,7 @@ _081D476E: cmp r0, 0 bne _081D480C ldr r2, =gMapObjects - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -27256,7 +27256,7 @@ _081D476E: b _081D45AA _081D47AA: ldr r2, =gMapObjects - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -27327,7 +27327,7 @@ sub_81D4834: @ 81D4834 lsls r1, 16 lsrs r4, r1, 16 ldr r3, =gMapObjects - ldr r1, =gUnknown_02037590 + ldr r1, =gPlayerAvatar ldrb r2, [r1, 0x5] lsls r1, r2, 3 adds r1, r2 @@ -27356,7 +27356,7 @@ _081D4870: bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 - bl sub_8088E64 + bl MetatileBehavior_IsPokeGrass lsls r0, 24 lsrs r0, 24 _081D4888: @@ -28559,7 +28559,7 @@ _081D5268: ldr r0, =gUnknown_085EE097 bl sub_8018884 ldr r0, =gUnknown_03006370 - ldr r1, =gUnknown_089A6550 + ldr r1, =gMultiBootProgram_BerryGlitchFix_Start ldr r2, =gUnknown_089A3470 subs r1, r2 bl sub_81D4D50 @@ -29757,7 +29757,7 @@ sub_81D5C8C: @ 81D5C8C movs r0, 0 movs r1, 0 bl FillWindowPixelBuffer - ldr r5, =gUnknown_085EF88A + ldr r5, =gText_TimeBoard movs r0, 0x1 adds r1, r5, 0 movs r2, 0xD0 @@ -29842,9 +29842,9 @@ _081D5CD6: movs r3, 0x2 bl ConvertIntToDecimalStringN mov r0, r9 - ldr r1, =gUnknown_085EF895 + ldr r1, =gText_TimeCleared bl StringCopy - ldr r1, =gUnknown_085EF8A3 + ldr r1, =gText_XMinYDotZSec bl StringExpandPlaceholders movs r0, 0x1 mov r1, r9 diff --git a/asm/porthole.s b/asm/porthole.s deleted file mode 100644 index e5986b47e..000000000 --- a/asm/porthole.s +++ /dev/null @@ -1,282 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_80FB59C -sub_80FB59C: @ 80FB59C - push {r4-r6,lr} - sub sp, 0xC - mov r4, sp - adds r4, 0x5 - mov r5, sp - adds r5, 0x6 - add r6, sp, 0x8 - add r0, sp, 0x4 - adds r1, r4, 0 - adds r2, r5, 0 - adds r3, r6, 0 - bl sub_8137FFC - lsls r0, 24 - cmp r0, 0 - bne _080FB5DE - add r0, sp, 0x4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - movs r1, 0 - ldrsb r1, [r4, r1] - movs r2, 0x1 - negs r2, r2 - movs r3, 0 - ldrsb r3, [r5, r3] - movs r4, 0 - ldrsb r4, [r6, r4] - str r4, [sp] - bl warp1_set - movs r0, 0x1 - b _080FB5E0 -_080FB5DE: - movs r0, 0 -_080FB5E0: - add sp, 0xC - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80FB59C - - thumb_func_start sub_80FB5E8 -sub_80FB5E8: @ 80FB5E8 - push {r4-r7,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 - ldr r0, =0x000040b4 - bl GetVarPointer - adds r7, r0, 0 - ldr r0, =gSaveBlock1Ptr - ldr r3, [r0] - adds r6, r3, 0x4 - movs r0, 0 - ldrsh r2, [r4, r0] - cmp r2, 0x1 - beq _080FB648 - cmp r2, 0x1 - bgt _080FB624 - cmp r2, 0 - beq _080FB62E - b _080FB6E2 - .pool -_080FB624: - cmp r2, 0x2 - beq _080FB68A - cmp r2, 0x3 - beq _080FB6C4 - b _080FB6E2 -_080FB62E: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080FB6E2 - strh r2, [r4, 0x2] - movs r0, 0x2 - strh r0, [r4] - b _080FB6E2 - .pool -_080FB648: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _080FB656 - strh r2, [r4, 0x2] -_080FB656: - ldrb r1, [r6, 0x1] - ldrb r2, [r3, 0x4] - movs r0, 0xFF - bl sub_80D3340 - lsls r0, 24 - cmp r0, 0 - beq _080FB6E2 - movs r0, 0x1 - bl sub_8137FC0 - cmp r0, 0x1 - bne _080FB686 - ldrh r0, [r7] - cmp r0, 0x2 - bne _080FB680 - movs r0, 0x9 - b _080FB682 - .pool -_080FB680: - movs r0, 0xA -_080FB682: - strh r0, [r7] - b _080FB692 -_080FB686: - movs r0, 0x2 - strh r0, [r4] -_080FB68A: - movs r1, 0x2 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080FB698 -_080FB692: - movs r0, 0x3 - strh r0, [r4] - b _080FB6E2 -_080FB698: - ldrh r0, [r7] - cmp r0, 0x2 - bne _080FB6AC - ldrb r1, [r6, 0x1] - ldrb r2, [r6] - ldr r3, =gUnknown_0858E8AB - b _080FB6B2 - .pool -_080FB6AC: - ldrb r1, [r6, 0x1] - ldrb r2, [r6] - ldr r3, =gUnknown_0858E8AD -_080FB6B2: - movs r0, 0xFF - bl exec_movement - movs r0, 0x1 - strh r0, [r4] - b _080FB6E2 - .pool -_080FB6C4: - ldr r0, =0x00004001 - bl FlagReset - movs r0, 0x80 - lsls r0, 7 - bl FlagReset - movs r0, 0 - bl copy_saved_warp2_bank_and_enter_x_to_warp1 - bl sp13E_warp_to_last_warp - adds r0, r5, 0 - bl DestroyTask -_080FB6E2: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80FB5E8 - - thumb_func_start sub_80FB6EC -sub_80FB6EC: @ 80FB6EC - push {r4,lr} - sub sp, 0x4 - ldr r1, =SpriteCallbackDummy - movs r0, 0 - str r0, [sp] - movs r0, 0x8C - movs r2, 0x70 - movs r3, 0x50 - bl AddPseudoFieldObject - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r4, r1, r2 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldr r0, =0x000040b4 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2 - bne _080FB74C - movs r0, 0x4 - bl FieldObjectDirectionToImageAnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - b _080FB75E - .pool -_080FB74C: - movs r0, 0x3 - bl FieldObjectDirectionToImageAnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim -_080FB75E: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80FB6EC - - thumb_func_start sub_80FB768 -sub_80FB768: @ 80FB768 - push {lr} - bl sub_80FB6EC - ldr r2, =gMapObjects - ldr r0, =gUnknown_02037590 - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x1] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0, 0x1] - bl pal_fill_black - ldr r0, =sub_80FB5E8 - movs r1, 0x50 - bl CreateTask - bl ScriptContext2_Enable - pop {r0} - bx r0 - .pool - thumb_func_end sub_80FB768 - - thumb_func_start sub_80FB7A4 -sub_80FB7A4: @ 80FB7A4 - push {lr} - ldr r0, =0x0000088d - bl FlagSet - ldr r0, =0x00004001 - bl FlagSet - movs r0, 0x80 - lsls r0, 7 - bl FlagSet - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0x4 - ldrsb r1, [r0, r1] - movs r2, 0x5 - ldrsb r2, [r0, r2] - movs r3, 0x1 - negs r3, r3 - movs r0, 0 - bl saved_warp2_set - bl sub_80FB59C - bl sub_80AF8B8 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80FB7A4 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/record_mixing.s b/asm/record_mixing.s index a28af9a9a..a62022cc7 100644 --- a/asm/record_mixing.s +++ b/asm/record_mixing.s @@ -630,7 +630,7 @@ _080E726C: lsrs r0, 24 strh r0, [r5, 0x14] _080E7296: - ldr r0, =gUnknown_085EEA8E + ldr r0, =gText_RecordMixingComplete bl sub_80E70F4 strh r4, [r5, 0x10] b _080E730A @@ -739,7 +739,7 @@ _080E7370: b _080E7566 .pool _080E7384: - ldr r0, =gUnknown_085EEA7E + ldr r0, =gText_MixingRecords bl sub_80E70F4 movs r0, 0xE1 lsls r0, 3 diff --git a/asm/recorded_battle.s b/asm/recorded_battle.s index 53824dfea..c84b518c3 100644 --- a/asm/recorded_battle.s +++ b/asm/recorded_battle.s @@ -236,8 +236,8 @@ _08184FA0: .pool thumb_func_end sub_8184E58 - thumb_func_start sub_8184FBC -sub_8184FBC: @ 8184FBC + thumb_func_start RecordedBattle_SetBankAction +RecordedBattle_SetBankAction: @ 8184FBC push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 @@ -269,7 +269,7 @@ _08184FF0: pop {r0} bx r0 .pool - thumb_func_end sub_8184FBC + thumb_func_end RecordedBattle_SetBankAction thumb_func_start sub_8185008 sub_8185008: @ 8185008 @@ -2212,7 +2212,7 @@ _081860C2: ldr r1, [sp, 0x4C] lsrs r0, r1, 24 movs r1, 0x6 - bl sub_8184FBC + bl RecordedBattle_SetBankAction movs r5, 0 ldr r2, =gUnknown_0203CC70 mov r8, r2 @@ -2241,7 +2241,7 @@ _081860F0: lsrs r1, 24 ldr r2, [sp, 0x4C] lsrs r0, r2, 24 - bl sub_8184FBC + bl RecordedBattle_SetBankAction b _08186118 .pool _08186110: @@ -2599,7 +2599,7 @@ _081863A2: ldr r2, [sp, 0x40] bl SetMonData _081863CA: - ldr r2, =gUnknown_02024274 + ldr r2, =gChosenMovesByBanks ldr r3, [sp, 0x44] adds r2, r3, r2 ldr r0, =gBattleStruct diff --git a/asm/region_map.s b/asm/region_map.s index 1b1dfb4bd..032bdf7a5 100644 --- a/asm/region_map.s +++ b/asm/region_map.s @@ -1939,7 +1939,7 @@ sub_8123C00: @ 8123C00 adds r1, r4, 0 adds r2, r5, 0 adds r3, r6, 0 - bl sub_8137FFC + bl GetSSTidalLocation lsls r0, 24 lsrs r0, 24 mov r10, r5 @@ -3212,12 +3212,12 @@ sub_81245DC: @ 81245DC beq _081245F8 cmp r1, 0x57 bne _08124604 - ldr r1, =gUnknown_085EC9D2 + ldr r1, =gText_Ferry bl StringCopy b _0812460A .pool _081245F8: - ldr r1, =gUnknown_085EC9D8 + ldr r1, =gText_SecretBase bl StringCopy b _0812460A .pool @@ -3239,7 +3239,7 @@ sub_8124610: @ 8124610 bl sub_81245DC b _08124626 _08124620: - ldr r1, =gUnknown_085EC9E4 + ldr r1, =gText_Hideout bl StringCopy _08124626: pop {r1} diff --git a/asm/reset_rtc_screen.s b/asm/reset_rtc_screen.s index 076ddbf0b..ac2c1181c 100644 --- a/asm/reset_rtc_screen.s +++ b/asm/reset_rtc_screen.s @@ -414,7 +414,7 @@ sub_809EBC4: @ 809EBC4 adds r1, r4, 0 bl StringCopy adds r7, r0, 0 - ldr r1, =gUnknown_085EE68A + ldr r1, =gText_Day bl StringCopy adds r7, r0, 0 adds r0, r4, 0 @@ -426,7 +426,7 @@ sub_809EBC4: @ 809EBC4 adds r1, r4, 0 bl StringCopy adds r7, r0, 0 - ldr r5, =gUnknown_085EE68E + ldr r5, =gText_Colon3 adds r1, r5, 0 bl StringCopy adds r7, r0, 0 @@ -514,7 +514,7 @@ sub_809ECB4: @ 809ECB4 movs r2, 0x1 mov r3, r9 bl sub_809EBC4 - ldr r2, =gUnknown_085EE690 + ldr r2, =gText_Confirm2 movs r0, 0x1 str r0, [sp] movs r0, 0 @@ -1011,7 +1011,7 @@ _0809F11C: movs r1, 0 movs r3, 0xE bl SetWindowBorderStyle - ldr r2, =gUnknown_085ECA0D + ldr r2, =gText_PresentTime movs r0, 0x1 str r0, [sp] movs r4, 0xFF @@ -1033,7 +1033,7 @@ _0809F11C: movs r1, 0 movs r2, 0x11 bl sub_809EBC4 - ldr r2, =gUnknown_085ECA22 + ldr r2, =gText_PreviousTime movs r0, 0x21 str r0, [sp] str r4, [sp, 0x4] @@ -1062,7 +1062,7 @@ _0809F11C: movs r1, 0 movs r2, 0x31 bl sub_809EBC4 - ldr r0, =gUnknown_085EC9EC + ldr r0, =gText_ResetRTCConfirmCancel bl sub_809F0C0 movs r0, 0 movs r1, 0x2 @@ -1161,7 +1161,7 @@ _0809F276: cmp r0, 0x2 bne _0809F29C _0809F282: - ldr r0, =gUnknown_085ECAA7 + ldr r0, =gText_NoSaveFileCantSetTime bl sub_809F0C0 movs r0, 0x5 strh r0, [r5] @@ -1193,7 +1193,7 @@ _0809F2CA: movs r0, 0 movs r1, 0 bl sub_8198070 - ldr r0, =gUnknown_085ECA38 + ldr r0, =gText_PleaseResetTime bl sub_809F0C0 ldr r2, =gLocalTime ldr r0, =gSaveBlock2Ptr @@ -1261,7 +1261,7 @@ _0809F340: ldrh r1, [r4] bl VarSet bl DisableResetRTC - ldr r0, =gUnknown_085ECA4F + ldr r0, =gText_ClockHasBeenReset bl sub_809F0C0 movs r0, 0x4 strh r0, [r5] @@ -1274,14 +1274,14 @@ _0809F398: lsrs r0, 24 cmp r0, 0x1 bne _0809F3B8 - ldr r0, =gUnknown_085ECA8A + ldr r0, =gText_SaveCompleted bl sub_809F0C0 movs r0, 0x49 bl PlaySE b _0809F3C4 .pool _0809F3B8: - ldr r0, =gUnknown_085ECA9A + ldr r0, =gText_SaveFailed bl sub_809F0C0 movs r0, 0x16 bl PlaySE diff --git a/asm/reset_save_heap.s b/asm/reset_save_heap.s deleted file mode 100644 index 45c505cd9..000000000 --- a/asm/reset_save_heap.s +++ /dev/null @@ -1,64 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_81700F8 -sub_81700F8: @ 81700F8 - push {r4,r5,lr} - ldr r5, =0x04000208 - ldrh r4, [r5] - movs r0, 0 - strh r0, [r5] - movs r0, 0x1 - bl RegisterRamReset - movs r0, 0 - movs r1, 0x80 - bl ClearGpuRegBits - strh r4, [r5] - ldr r1, =gMain - ldr r0, =0x00000439 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x3 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - bl sub_815355C - lsls r0, 16 - lsrs r0, 16 - bl SetSaveBlocksPointers - bl sub_808447C - bl ResetSaveCounters - movs r0, 0 - bl sub_81534D0 - ldr r0, =gSaveFileStatus - ldrh r0, [r0] - cmp r0, 0 - beq _08170148 - cmp r0, 0x2 - bne _0817014C -_08170148: - bl Sav2_ClearSetDefault -_0817014C: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x15] - lsls r0, 31 - lsrs r0, 31 - bl SetPokemonCryStereo - ldr r0, =0x02000000 - movs r1, 0xE0 - lsls r1, 9 - bl InitHeap - ldr r0, =sub_8086230 - bl SetMainCallback2 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81700F8 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/reshow_battle_screen.s b/asm/reshow_battle_screen.s index f83a11ff1..42ba43ec0 100644 --- a/asm/reshow_battle_screen.s +++ b/asm/reshow_battle_screen.s @@ -10,8 +10,8 @@ nullsub_35: @ 80A92F4 bx lr thumb_func_end nullsub_35 - thumb_func_start sub_80A92F8 -sub_80A92F8: @ 80A92F8 + thumb_func_start ReshowBattleScreenAfterMenu +ReshowBattleScreenAfterMenu: @ 80A92F8 push {lr} ldr r2, =gPaletteFade ldrb r0, [r2, 0x8] @@ -37,7 +37,7 @@ sub_80A92F8: @ 80A92F8 pop {r0} bx r0 .pool - thumb_func_end sub_80A92F8 + thumb_func_end ReshowBattleScreenAfterMenu thumb_func_start c2_80777E8 c2_80777E8: @ 80A933C @@ -103,15 +103,15 @@ _080A93B0: strh r1, [r0] ldr r0, =gUnknown_02022E16 strh r1, [r0] - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X strh r1, [r0] - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y strh r1, [r0] - ldr r0, =gUnknown_02022E1C + ldr r0, =gBattle_BG2_X strh r1, [r0] - ldr r0, =gUnknown_02022E1E + ldr r0, =gBattle_BG2_Y strh r1, [r0] - ldr r0, =gUnknown_02022E20 + ldr r0, =gBattle_BG3_X strh r1, [r0] ldr r0, =gUnknown_02022E22 strh r1, [r0] @@ -223,7 +223,7 @@ _080A94F0: _080A94F8: bl sub_805EC84 movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 @@ -247,7 +247,7 @@ _080A94F8: cmp r0, 0 beq _080A955C movs r0, 0x3 - bl GetBankByPlayerAI + bl GetBankByIdentity adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 @@ -286,7 +286,7 @@ _080A955C: b _080A95D2 .pool _080A95A4: - ldr r0, =vblank_cb_08078BB4 + ldr r0, =VBlankCB_Battle bl SetVBlankCallback bl sub_80A95F4 movs r0, 0x1 @@ -301,7 +301,7 @@ _080A95A4: movs r0, 0x7F ands r0, r1 strb r0, [r2, 0x8] - ldr r0, =sub_8038420 + ldr r0, =BattleMainCB2 bl SetMainCallback2 bl sub_805EF14 _080A95D2: diff --git a/asm/roamer.s b/asm/roamer.s deleted file mode 100644 index f6b48f10f..000000000 --- a/asm/roamer.s +++ /dev/null @@ -1,502 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start ClearRoamerData -ClearRoamerData: @ 8161B34 - push {r4,r5,lr} - ldr r5, =gSaveBlock1Ptr - ldr r0, [r5] - ldr r4, =0x000031dc - adds r0, r4 - movs r1, 0 - movs r2, 0x1C - bl memset - ldr r0, [r5] - adds r0, r4 - ldr r1, =0x00000197 - strh r1, [r0, 0x8] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end ClearRoamerData - - thumb_func_start ClearRoamerLocationData -ClearRoamerLocationData: @ 8161B60 - push {r4-r6,lr} - movs r2, 0 - ldr r6, =sRoamerLocation - ldr r4, =sLocationHistory - movs r3, 0 - adds r5, r4, 0x1 -_08161B6C: - lsls r1, r2, 1 - adds r0, r1, r4 - strb r3, [r0] - adds r1, r5 - strb r3, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x2 - bls _08161B6C - movs r0, 0 - strb r0, [r6] - strb r0, [r6, 0x1] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end ClearRoamerLocationData - - thumb_func_start CreateInitialRoamerMon -CreateInitialRoamerMon: @ 8161B94 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - lsls r0, 16 - cmp r0, 0 - bne _08161BBC - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, =0x000031dc - adds r1, r2 - ldr r2, =0x00000197 - b _08161BC8 - .pool -_08161BBC: - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, =0x000031dc - adds r1, r2 - movs r2, 0xCC - lsls r2, 1 -_08161BC8: - strh r2, [r1, 0x8] - adds r7, r0, 0 - ldr r6, =gEnemyParty - ldr r0, [r7] - ldr r5, =0x000031dc - adds r0, r5 - ldrh r1, [r0, 0x8] - movs r4, 0 - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - adds r0, r6, 0 - movs r2, 0x28 - movs r3, 0x20 - bl CreateMon - ldr r0, [r7] - adds r0, r5 - movs r1, 0x28 - strb r1, [r0, 0xC] - ldr r0, [r7] - adds r0, r5 - strb r4, [r0, 0xD] - ldr r0, [r7] - adds r0, r5 - movs r1, 0x1 - strb r1, [r0, 0x13] - adds r0, r6, 0 - movs r1, 0x42 - bl GetMonData - ldr r1, [r7] - adds r1, r5 - str r0, [r1] - adds r0, r6, 0 - movs r1, 0 - bl GetMonData - ldr r1, [r7] - adds r1, r5 - str r0, [r1, 0x4] - adds r0, r6, 0 - movs r1, 0x3A - bl GetMonData - ldr r1, [r7] - adds r1, r5 - movs r2, 0 - mov r8, r2 - strh r0, [r1, 0xA] - adds r0, r6, 0 - movs r1, 0x16 - bl GetMonData - ldr r1, [r7] - adds r1, r5 - strb r0, [r1, 0xE] - adds r0, r6, 0 - movs r1, 0x17 - bl GetMonData - ldr r1, [r7] - adds r1, r5 - strb r0, [r1, 0xF] - adds r0, r6, 0 - movs r1, 0x18 - bl GetMonData - ldr r1, [r7] - adds r1, r5 - strb r0, [r1, 0x10] - adds r0, r6, 0 - movs r1, 0x21 - bl GetMonData - ldr r1, [r7] - adds r1, r5 - strb r0, [r1, 0x11] - adds r0, r6, 0 - movs r1, 0x2F - bl GetMonData - ldr r1, [r7] - adds r1, r5 - strb r0, [r1, 0x12] - ldr r4, =sRoamerLocation - mov r0, r8 - strb r0, [r4] - bl Random - ldr r5, =sRoamerLocations - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x14 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 1 - adds r1, r5 - ldrb r0, [r1] - strb r0, [r4, 0x1] - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end CreateInitialRoamerMon - - thumb_func_start InitRoamer -InitRoamer: @ 8161CBC - push {lr} - bl ClearRoamerData - bl ClearRoamerLocationData - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - bl CreateInitialRoamerMon - pop {r0} - bx r0 - .pool - thumb_func_end InitRoamer - - thumb_func_start UpdateLocationHistoryForRoamer -UpdateLocationHistoryForRoamer: @ 8161CD8 - ldr r0, =sLocationHistory - ldrb r1, [r0, 0x2] - strb r1, [r0, 0x4] - ldrb r1, [r0, 0x3] - strb r1, [r0, 0x5] - ldrb r1, [r0] - strb r1, [r0, 0x2] - ldrb r1, [r0, 0x1] - strb r1, [r0, 0x3] - ldr r1, =gSaveBlock1Ptr - ldr r2, [r1] - ldrb r1, [r2, 0x4] - strb r1, [r0] - ldrb r1, [r2, 0x5] - strb r1, [r0, 0x1] - bx lr - .pool - thumb_func_end UpdateLocationHistoryForRoamer - - thumb_func_start RoamerMoveToOtherLocationSet -RoamerMoveToOtherLocationSet: @ 8161D00 - push {r4,r5,lr} - movs r1, 0 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x000031dc - adds r0, r2 - ldrb r0, [r0, 0x13] - cmp r0, 0 - beq _08161D3E - ldr r0, =sRoamerLocation - strb r1, [r0] - ldr r5, =sRoamerLocations - adds r4, r0, 0 -_08161D1A: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x14 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 1 - adds r1, r5 - ldrb r1, [r1] - ldrb r0, [r4, 0x1] - cmp r0, r1 - beq _08161D1A - strb r1, [r4, 0x1] -_08161D3E: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end RoamerMoveToOtherLocationSet - - thumb_func_start RoamerMove -RoamerMove: @ 8161D54 - push {r4-r7,lr} - movs r4, 0 - bl Random - lsls r0, 16 - movs r1, 0xF0 - lsls r1, 12 - ands r1, r0 - cmp r1, 0 - bne _08161D6E - bl RoamerMoveToOtherLocationSet - b _08161DE2 -_08161D6E: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x000031dc - adds r0, r1 - ldrb r0, [r0, 0x13] - cmp r0, 0 - beq _08161DE2 - ldr r7, =sRoamerLocation - ldr r3, =sRoamerLocations -_08161D80: - lsls r0, r4, 1 - adds r0, r4 - lsls r2, r0, 1 - adds r1, r2, r3 - ldrb r0, [r7, 0x1] - ldrb r1, [r1] - cmp r0, r1 - bne _08161DD8 - ldr r6, =sRoamerLocations - adds r5, r2, 0x1 - ldr r4, =sLocationHistory -_08161D96: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x5 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - adds r0, r5 - adds r0, r6 - ldrb r1, [r0] - ldrb r0, [r4, 0x4] - cmp r0, 0 - bne _08161DBA - ldrb r0, [r4, 0x5] - cmp r0, r1 - beq _08161D96 -_08161DBA: - cmp r1, 0xFF - beq _08161D96 - strb r1, [r7, 0x1] - b _08161DE2 - .pool -_08161DD8: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x13 - bls _08161D80 -_08161DE2: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end RoamerMove - - thumb_func_start IsRoamerAt -IsRoamerAt: @ 8161DE8 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r3, =0x000031dc - adds r0, r3 - ldrb r0, [r0, 0x13] - cmp r0, 0 - beq _08161E20 - ldr r0, =sRoamerLocation - ldrb r3, [r0] - cmp r2, r3 - bne _08161E20 - ldrb r0, [r0, 0x1] - cmp r1, r0 - bne _08161E20 - movs r0, 0x1 - b _08161E22 - .pool -_08161E20: - movs r0, 0 -_08161E22: - pop {r1} - bx r1 - thumb_func_end IsRoamerAt - - thumb_func_start CreateRoamerMonInstance -CreateRoamerMonInstance: @ 8161E28 - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, =gEnemyParty - bl ZeroEnemyPartyMons - ldr r4, =gSaveBlock1Ptr - ldr r0, [r4] - ldr r1, =0x000031dc - adds r0, r1 - ldrh r1, [r0, 0x8] - ldrb r2, [r0, 0xC] - ldr r3, [r0] - ldr r0, [r0, 0x4] - str r0, [sp] - adds r0, r5, 0 - bl CreateMonWithIVsPersonality - ldr r2, [r4] - ldr r0, =0x000031e9 - adds r2, r0 - adds r0, r5, 0 - movs r1, 0x37 - bl SetMonData - ldr r2, [r4] - ldr r1, =0x000031e6 - adds r2, r1 - adds r0, r5, 0 - movs r1, 0x39 - bl SetMonData - ldr r2, [r4] - ldr r0, =0x000031ea - adds r2, r0 - adds r0, r5, 0 - movs r1, 0x16 - bl SetMonData - ldr r2, [r4] - ldr r1, =0x000031eb - adds r2, r1 - adds r0, r5, 0 - movs r1, 0x17 - bl SetMonData - ldr r2, [r4] - ldr r0, =0x000031ec - adds r2, r0 - adds r0, r5, 0 - movs r1, 0x18 - bl SetMonData - ldr r2, [r4] - ldr r1, =0x000031ed - adds r2, r1 - adds r0, r5, 0 - movs r1, 0x21 - bl SetMonData - ldr r2, [r4] - ldr r0, =0x000031ee - adds r2, r0 - adds r0, r5, 0 - movs r1, 0x2F - bl SetMonData - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end CreateRoamerMonInstance - - thumb_func_start TryStartRoamerEncounter -TryStartRoamerEncounter: @ 8161EDC - push {lr} - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldrb r0, [r1, 0x4] - ldrb r1, [r1, 0x5] - bl IsRoamerAt - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08161F10 - bl Random - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r0 - cmp r1, 0 - bne _08161F10 - bl CreateRoamerMonInstance - movs r0, 0x1 - b _08161F12 - .pool -_08161F10: - movs r0, 0 -_08161F12: - pop {r1} - bx r1 - thumb_func_end TryStartRoamerEncounter - - thumb_func_start UpdateRoamerHPStatus -UpdateRoamerHPStatus: @ 8161F18 - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x39 - bl GetMonData - ldr r5, =gSaveBlock1Ptr - ldr r1, [r5] - ldr r4, =0x000031dc - adds r1, r4 - strh r0, [r1, 0xA] - adds r0, r6, 0 - movs r1, 0x37 - bl GetMonData - ldr r1, [r5] - adds r1, r4 - strb r0, [r1, 0xD] - bl RoamerMoveToOtherLocationSet - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end UpdateRoamerHPStatus - - thumb_func_start SetRoamerInactive -SetRoamerInactive: @ 8161F4C - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x000031dc - adds r0, r1 - movs r1, 0 - strb r1, [r0, 0x13] - bx lr - .pool - thumb_func_end SetRoamerInactive - - thumb_func_start GetRoamerLocation -GetRoamerLocation: @ 8161F64 - ldr r3, =sRoamerLocation - ldrb r2, [r3] - strb r2, [r0] - ldrb r0, [r3, 0x1] - strb r0, [r1] - bx lr - .pool - thumb_func_end GetRoamerLocation - - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom3.s b/asm/rom3.s index e2f268f43..9bd95c252 100644 --- a/asm/rom3.s +++ b/asm/rom3.s @@ -1573,7 +1573,7 @@ _08033346: ldrsh r1, [r0, r2] ldr r0, [r4] adds r1, r0 - ldr r0, =gUnknown_0202420E + ldr r0, =gEffectBank ldrb r0, [r0] strb r0, [r1, 0x7] movs r2, 0 @@ -2084,7 +2084,7 @@ _080337D2: adds r0, r1 ldrb r0, [r0, 0x6] strb r0, [r2] - ldr r2, =gUnknown_0202420E + ldr r2, =gEffectBank movs r4, 0x26 ldrsh r0, [r5, r4] adds r0, r1 @@ -2134,8 +2134,8 @@ _0803389C: .pool thumb_func_end sub_803375C - thumb_func_start dp01_build_cmdbuf_x00_a_b_0 -dp01_build_cmdbuf_x00_a_b_0: @ 80338B4 + thumb_func_start EmitGetMonData +EmitGetMonData: @ 80338B4 push {r4,lr} adds r4, r1, 0 lsls r0, 24 @@ -2152,7 +2152,7 @@ dp01_build_cmdbuf_x00_a_b_0: @ 80338B4 pop {r0} bx r0 .pool - thumb_func_end dp01_build_cmdbuf_x00_a_b_0 + thumb_func_end EmitGetMonData thumb_func_start dp01_build_cmdbuf_x01_a_b_0 dp01_build_cmdbuf_x01_a_b_0: @ 80338D8 @@ -2175,8 +2175,8 @@ dp01_build_cmdbuf_x01_a_b_0: @ 80338D8 .pool thumb_func_end dp01_build_cmdbuf_x01_a_b_0 - thumb_func_start dp01_build_cmdbuf_x02_a_b_varargs -dp01_build_cmdbuf_x02_a_b_varargs: @ 8033900 + thumb_func_start EmitSetMonData +EmitSetMonData: @ 8033900 push {r4-r6,lr} ldr r4, [sp, 0x10] lsls r0, 24 @@ -2209,7 +2209,7 @@ _0803392E: pop {r0} bx r0 .pool - thumb_func_end dp01_build_cmdbuf_x02_a_b_varargs + thumb_func_end EmitSetMonData thumb_func_start sub_8033940 sub_8033940: @ 8033940 @@ -2264,8 +2264,8 @@ dp01_build_cmdbuf_x04_4_4_4: @ 8033980 .pool thumb_func_end dp01_build_cmdbuf_x04_4_4_4 - thumb_func_start dp01_build_cmdbuf_x05_a_b_c -dp01_build_cmdbuf_x05_a_b_c: @ 80339A0 + thumb_func_start EmitSwitchInAnim +EmitSwitchInAnim: @ 80339A0 push {r4,lr} adds r4, r1, 0 lsls r0, 24 @@ -2282,10 +2282,10 @@ dp01_build_cmdbuf_x05_a_b_c: @ 80339A0 pop {r0} bx r0 .pool - thumb_func_end dp01_build_cmdbuf_x05_a_b_c + thumb_func_end EmitSwitchInAnim - thumb_func_start dp01_build_cmdbuf_x06_a -dp01_build_cmdbuf_x06_a: @ 80339C4 + thumb_func_start EmitReturnPokeToBall +EmitReturnPokeToBall: @ 80339C4 push {lr} adds r3, r1, 0 lsls r0, 24 @@ -2299,7 +2299,7 @@ dp01_build_cmdbuf_x06_a: @ 80339C4 pop {r0} bx r0 .pool - thumb_func_end dp01_build_cmdbuf_x06_a + thumb_func_end EmitReturnPokeToBall thumb_func_start dp01_build_cmdbuf_x07_7_7_7 dp01_build_cmdbuf_x07_7_7_7: @ 80339E4 @@ -2319,8 +2319,8 @@ dp01_build_cmdbuf_x07_7_7_7: @ 80339E4 .pool thumb_func_end dp01_build_cmdbuf_x07_7_7_7 - thumb_func_start dp01_build_cmdbuf_x08_8_8_8 -dp01_build_cmdbuf_x08_8_8_8: @ 8033A04 + thumb_func_start EmitTrainerSlide +EmitTrainerSlide: @ 8033A04 push {lr} lsls r0, 24 lsrs r0, 24 @@ -2335,10 +2335,10 @@ dp01_build_cmdbuf_x08_8_8_8: @ 8033A04 pop {r0} bx r0 .pool - thumb_func_end dp01_build_cmdbuf_x08_8_8_8 + thumb_func_end EmitTrainerSlide - thumb_func_start dp01_build_cmdbuf_x09_9_9_9 -dp01_build_cmdbuf_x09_9_9_9: @ 8033A24 + thumb_func_start EmitTrainerSlideBack +EmitTrainerSlideBack: @ 8033A24 push {lr} lsls r0, 24 lsrs r0, 24 @@ -2353,10 +2353,10 @@ dp01_build_cmdbuf_x09_9_9_9: @ 8033A24 pop {r0} bx r0 .pool - thumb_func_end dp01_build_cmdbuf_x09_9_9_9 + thumb_func_end EmitTrainerSlideBack - thumb_func_start dp01_build_cmdbuf_x0A_A_A_A -dp01_build_cmdbuf_x0A_A_A_A: @ 8033A44 + thumb_func_start EmitFaintAnimation +EmitFaintAnimation: @ 8033A44 push {lr} lsls r0, 24 lsrs r0, 24 @@ -2371,7 +2371,7 @@ dp01_build_cmdbuf_x0A_A_A_A: @ 8033A44 pop {r0} bx r0 .pool - thumb_func_end dp01_build_cmdbuf_x0A_A_A_A + thumb_func_end EmitFaintAnimation thumb_func_start dp01_build_cmdbuf_x0B_B_B_B dp01_build_cmdbuf_x0B_B_B_B: @ 8033A64 @@ -2409,8 +2409,8 @@ dp01_build_cmdbuf_x0C_C_C_C: @ 8033A84 .pool thumb_func_end dp01_build_cmdbuf_x0C_C_C_C - thumb_func_start dp01_build_cmdbuf_x0D_a -dp01_build_cmdbuf_x0D_a: @ 8033AA4 + thumb_func_start EmitBallThrow +EmitBallThrow: @ 8033AA4 push {lr} adds r3, r1, 0 lsls r0, 24 @@ -2424,7 +2424,7 @@ dp01_build_cmdbuf_x0D_a: @ 8033AA4 pop {r0} bx r0 .pool - thumb_func_end dp01_build_cmdbuf_x0D_a + thumb_func_end EmitBallThrow thumb_func_start sub_8033AC4 sub_8033AC4: @ 8033AC4 @@ -2465,8 +2465,8 @@ _08033AF2: .pool thumb_func_end sub_8033AC4 - thumb_func_start dp01_build_cmdbuf_x0F_aa_b_cc_dddd_e_mlc_weather_00_x1Cbytes -dp01_build_cmdbuf_x0F_aa_b_cc_dddd_e_mlc_weather_00_x1Cbytes: @ 8033B0C + thumb_func_start EmitMoveAnimation +EmitMoveAnimation: @ 8033B0C push {r4-r7,lr} mov r7, r9 mov r6, r8 @@ -2568,7 +2568,7 @@ _08033BB6: pop {r0} bx r0 .pool - thumb_func_end dp01_build_cmdbuf_x0F_aa_b_cc_dddd_e_mlc_weather_00_x1Cbytes + thumb_func_end EmitMoveAnimation thumb_func_start dp01_build_cmdbuf_x10_TODO dp01_build_cmdbuf_x10_TODO: @ 8033BE4 @@ -2596,7 +2596,7 @@ dp01_build_cmdbuf_x10_TODO: @ 8033BE4 ldr r4, =gCurrentMove ldrh r0, [r4] strh r0, [r2, 0x4] - ldr r0, =gUnknown_020241EC + ldr r0, =gLastUsedMove ldrh r0, [r0] mov r1, r12 strh r0, [r1, 0x2] @@ -2687,8 +2687,8 @@ _08033C88: .pool thumb_func_end dp01_build_cmdbuf_x10_TODO - thumb_func_start dp01_build_cmdbuf_x11_TODO -dp01_build_cmdbuf_x11_TODO: @ 8033CFC + thumb_func_start EmitPrintStringPlayerOnly +EmitPrintStringPlayerOnly: @ 8033CFC push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -2711,7 +2711,7 @@ dp01_build_cmdbuf_x11_TODO: @ 8033CFC ldr r0, =gCurrentMove ldrh r0, [r0] strh r0, [r2, 0x4] - ldr r0, =gUnknown_020241EC + ldr r0, =gLastUsedMove ldrh r0, [r0] mov r1, r12 strh r0, [r1, 0x2] @@ -2784,7 +2784,7 @@ _08033D7C: pop {r0} bx r0 .pool - thumb_func_end dp01_build_cmdbuf_x11_TODO + thumb_func_end EmitPrintStringPlayerOnly thumb_func_start dp01_build_cmdbuf_x12_a_bb dp01_build_cmdbuf_x12_a_bb: @ 8033DE4 @@ -2809,8 +2809,8 @@ dp01_build_cmdbuf_x12_a_bb: @ 8033DE4 .pool thumb_func_end dp01_build_cmdbuf_x12_a_bb - thumb_func_start sub_8033E10 -sub_8033E10: @ 8033E10 + thumb_func_start EmitCmd13 +EmitCmd13: @ 8033E10 push {lr} lsls r0, 24 lsrs r0, 24 @@ -2825,7 +2825,7 @@ sub_8033E10: @ 8033E10 pop {r0} bx r0 .pool - thumb_func_end sub_8033E10 + thumb_func_end EmitCmd13 thumb_func_start sub_8033E30 sub_8033E30: @ 8033E30 @@ -2888,8 +2888,8 @@ _08033E7E: .pool thumb_func_end sub_8033E6C - thumb_func_start dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f -dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f: @ 8033EA0 + thumb_func_start EmitChoosePokemon +EmitChoosePokemon: @ 8033EA0 push {r4-r6,lr} ldr r6, [sp, 0x10] lsls r0, 24 @@ -2918,7 +2918,7 @@ _08033EBA: pop {r0} bx r0 .pool - thumb_func_end dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f + thumb_func_end EmitChoosePokemon thumb_func_start dp01_build_cmdbuf_x17_17_17_17 dp01_build_cmdbuf_x17_17_17_17: @ 8033EDC @@ -2938,8 +2938,8 @@ dp01_build_cmdbuf_x17_17_17_17: @ 8033EDC .pool thumb_func_end dp01_build_cmdbuf_x17_17_17_17 - thumb_func_start dp01_build_cmdbuf_x18_0_aa_health_bar_update -dp01_build_cmdbuf_x18_0_aa_health_bar_update: @ 8033EFC + thumb_func_start EmitHealthBarUpdate +EmitHealthBarUpdate: @ 8033EFC push {r4,lr} lsls r0, 24 lsrs r0, 24 @@ -2965,10 +2965,10 @@ dp01_build_cmdbuf_x18_0_aa_health_bar_update: @ 8033EFC pop {r0} bx r0 .pool - thumb_func_end dp01_build_cmdbuf_x18_0_aa_health_bar_update + thumb_func_end EmitHealthBarUpdate - thumb_func_start dp01_build_cmdbuf_x19_a_bb -dp01_build_cmdbuf_x19_a_bb: @ 8033F34 + thumb_func_start EmitExpUpdate +EmitExpUpdate: @ 8033F34 push {r4,lr} adds r4, r1, 0 lsls r0, 24 @@ -2993,10 +2993,10 @@ dp01_build_cmdbuf_x19_a_bb: @ 8033F34 pop {r0} bx r0 .pool - thumb_func_end dp01_build_cmdbuf_x19_a_bb + thumb_func_end EmitExpUpdate - thumb_func_start dp01_build_cmdbuf_x1A_aaaa_bbbb -dp01_build_cmdbuf_x1A_aaaa_bbbb: @ 8033F68 + thumb_func_start EmitStatusIconUpdate +EmitStatusIconUpdate: @ 8033F68 push {r4-r6,lr} adds r4, r1, 0 lsls r0, 24 @@ -3036,10 +3036,10 @@ dp01_build_cmdbuf_x1A_aaaa_bbbb: @ 8033F68 pop {r0} bx r0 .pool - thumb_func_end dp01_build_cmdbuf_x1A_aaaa_bbbb + thumb_func_end EmitStatusIconUpdate - thumb_func_start dp01_build_cmdbuf_x1B_aaaa_b -dp01_build_cmdbuf_x1B_aaaa_b: @ 8033FBC + thumb_func_start EmitStatusAnimation +EmitStatusAnimation: @ 8033FBC push {r4,lr} adds r4, r1, 0 lsls r0, 24 @@ -3067,7 +3067,7 @@ dp01_build_cmdbuf_x1B_aaaa_b: @ 8033FBC pop {r0} bx r0 .pool - thumb_func_end dp01_build_cmdbuf_x1B_aaaa_b + thumb_func_end EmitStatusAnimation thumb_func_start dp01_build_cmdbuf_x1C_a dp01_build_cmdbuf_x1C_a: @ 8033FF8 @@ -3431,8 +3431,8 @@ dp01_build_cmdbuf_x28_28_28_28: @ 8034274 .pool thumb_func_end dp01_build_cmdbuf_x28_28_28_28 - thumb_func_start dp01_build_cmdbuf_x29_29_29_29 -dp01_build_cmdbuf_x29_29_29_29: @ 8034294 + thumb_func_start EmitHitAnimation +EmitHitAnimation: @ 8034294 push {lr} lsls r0, 24 lsrs r0, 24 @@ -3447,10 +3447,10 @@ dp01_build_cmdbuf_x29_29_29_29: @ 8034294 pop {r0} bx r0 .pool - thumb_func_end dp01_build_cmdbuf_x29_29_29_29 + thumb_func_end EmitHitAnimation - thumb_func_start dp01_build_cmdbuf_x2A_2A_2A_2A -dp01_build_cmdbuf_x2A_2A_2A_2A: @ 80342B4 + thumb_func_start Emit_x2A +Emit_x2A: @ 80342B4 push {lr} lsls r0, 24 lsrs r0, 24 @@ -3465,10 +3465,10 @@ dp01_build_cmdbuf_x2A_2A_2A_2A: @ 80342B4 pop {r0} bx r0 .pool - thumb_func_end dp01_build_cmdbuf_x2A_2A_2A_2A + thumb_func_end Emit_x2A - thumb_func_start dp01_build_cmdbuf_x2B_aa_0 -dp01_build_cmdbuf_x2B_aa_0: @ 80342D4 + thumb_func_start EmitEffectivenessSound +EmitEffectivenessSound: @ 80342D4 push {r4,lr} lsls r0, 24 lsrs r0, 24 @@ -3489,10 +3489,10 @@ dp01_build_cmdbuf_x2B_aa_0: @ 80342D4 pop {r0} bx r0 .pool - thumb_func_end dp01_build_cmdbuf_x2B_aa_0 + thumb_func_end EmitEffectivenessSound - thumb_func_start sub_8034300 -sub_8034300: @ 8034300 + thumb_func_start EmitPlaySound +EmitPlaySound: @ 8034300 push {r4,lr} lsls r0, 24 lsrs r0, 24 @@ -3512,10 +3512,10 @@ sub_8034300: @ 8034300 pop {r0} bx r0 .pool - thumb_func_end sub_8034300 + thumb_func_end EmitPlaySound - thumb_func_start dp01_build_cmdbuf_x2D_2D_2D_2D -dp01_build_cmdbuf_x2D_2D_2D_2D: @ 803432C + thumb_func_start EmitFaintingCry +EmitFaintingCry: @ 803432C push {lr} lsls r0, 24 lsrs r0, 24 @@ -3530,7 +3530,7 @@ dp01_build_cmdbuf_x2D_2D_2D_2D: @ 803432C pop {r0} bx r0 .pool - thumb_func_end dp01_build_cmdbuf_x2D_2D_2D_2D + thumb_func_end EmitFaintingCry thumb_func_start dp01_build_cmdbuf_x2E_a dp01_build_cmdbuf_x2E_a: @ 803434C @@ -3567,8 +3567,8 @@ dp01_build_cmdbuf_x2F_2F_2F_2F: @ 803436C .pool thumb_func_end dp01_build_cmdbuf_x2F_2F_2F_2F - thumb_func_start dp01_build_cmdbuf_x30_TODO -dp01_build_cmdbuf_x30_TODO: @ 803438C + thumb_func_start EmitCmd48 +EmitCmd48: @ 803438C push {r4,r5,lr} adds r4, r1, 0 lsls r0, 24 @@ -3604,10 +3604,10 @@ _080343B4: pop {r0} bx r0 .pool - thumb_func_end dp01_build_cmdbuf_x30_TODO + thumb_func_end EmitCmd48 - thumb_func_start dp01_build_cmdbuf_x31_31_31_31 -dp01_build_cmdbuf_x31_31_31_31: @ 80343D4 + thumb_func_start EmitCmd49 +EmitCmd49: @ 80343D4 push {lr} lsls r0, 24 lsrs r0, 24 @@ -3622,7 +3622,7 @@ dp01_build_cmdbuf_x31_31_31_31: @ 80343D4 pop {r0} bx r0 .pool - thumb_func_end dp01_build_cmdbuf_x31_31_31_31 + thumb_func_end EmitCmd49 thumb_func_start dp01_build_cmdbuf_x32_32_32_32 dp01_build_cmdbuf_x32_32_32_32: @ 80343F4 @@ -3642,8 +3642,8 @@ dp01_build_cmdbuf_x32_32_32_32: @ 80343F4 .pool thumb_func_end dp01_build_cmdbuf_x32_32_32_32 - thumb_func_start dp01_build_cmdbuf_x33_a_33_33 -dp01_build_cmdbuf_x33_a_33_33: @ 8034414 + thumb_func_start EmitSpriteInvisibility +EmitSpriteInvisibility: @ 8034414 push {lr} adds r3, r1, 0 lsls r0, 24 @@ -3659,10 +3659,10 @@ dp01_build_cmdbuf_x33_a_33_33: @ 8034414 pop {r0} bx r0 .pool - thumb_func_end dp01_build_cmdbuf_x33_a_33_33 + thumb_func_end EmitSpriteInvisibility - thumb_func_start dp01_build_cmdbuf_x34_a_bb_aka_battle_anim -dp01_build_cmdbuf_x34_a_bb_aka_battle_anim: @ 8034438 + thumb_func_start EmitBattleAnimation +EmitBattleAnimation: @ 8034438 push {r4,lr} adds r4, r1, 0 lsls r0, 24 @@ -3682,10 +3682,10 @@ dp01_build_cmdbuf_x34_a_bb_aka_battle_anim: @ 8034438 pop {r0} bx r0 .pool - thumb_func_end dp01_build_cmdbuf_x34_a_bb_aka_battle_anim + thumb_func_end EmitBattleAnimation - thumb_func_start sub_8034464 -sub_8034464: @ 8034464 + thumb_func_start EmitLinkStandbyMsg +EmitLinkStandbyMsg: @ 8034464 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 @@ -3716,10 +3716,10 @@ _08034490: pop {r0} bx r0 .pool - thumb_func_end sub_8034464 + thumb_func_end EmitLinkStandbyMsg - thumb_func_start dp01_build_cmdbuf_x38_a -dp01_build_cmdbuf_x38_a: @ 80344A8 + thumb_func_start EmitResetActionMoveSelection +EmitResetActionMoveSelection: @ 80344A8 push {lr} adds r3, r1, 0 lsls r0, 24 @@ -3733,10 +3733,10 @@ dp01_build_cmdbuf_x38_a: @ 80344A8 pop {r0} bx r0 .pool - thumb_func_end dp01_build_cmdbuf_x38_a + thumb_func_end EmitResetActionMoveSelection - thumb_func_start dp01_build_cmdbuf_x37_a -dp01_build_cmdbuf_x37_a: @ 80344C8 + thumb_func_start Emit_x37 +Emit_x37: @ 80344C8 push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 @@ -3770,6 +3770,6 @@ dp01_build_cmdbuf_x37_a: @ 80344C8 pop {r0} bx r0 .pool - thumb_func_end dp01_build_cmdbuf_x37_a + thumb_func_end Emit_x37 .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom4.s b/asm/rom4.s index 9e4e9f108..8423d0d9a 100644 --- a/asm/rom4.s +++ b/asm/rom4.s @@ -1699,19 +1699,19 @@ _080853AC: lsls r4, 24 lsrs r5, r4, 24 adds r0, r5, 0 - bl sub_8088F74 + bl MetatileBehavior_IsDeepSouthWarp lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080853E8 adds r0, r5, 0 - bl sub_8088F58 + bl MetatileBehavior_IsNonAnimDoor lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08085442 adds r0, r5, 0 - bl sub_8088EFC + bl MetatileBehavior_IsDoor lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -3136,12 +3136,12 @@ map_post_load_hook_exec: @ 8085EA0 _08085EBC: movs r1, 0 str r1, [r4] - ldr r0, =gUnknown_03005DAC + ldr r0, =gFieldCallback str r1, [r0] b _08085EEA .pool _08085ECC: - ldr r0, =gUnknown_03005DAC + ldr r0, =gFieldCallback ldr r0, [r0] cmp r0, 0 beq _08085EE0 @@ -3151,7 +3151,7 @@ _08085ECC: _08085EE0: bl mapldr_default _08085EE4: - ldr r1, =gUnknown_03005DAC + ldr r1, =gFieldCallback movs r0, 0 str r0, [r1] _08085EEA: @@ -3174,8 +3174,8 @@ CB2_NewGame: @ 8085EF8 bl PlayTimeCounter_Start bl ScriptContext1_Init bl ScriptContext2_Disable - ldr r1, =gUnknown_03005DAC - ldr r0, =sub_80FB4E0 + ldr r1, =gFieldCallback + ldr r0, =ExecuteTruckSequence str r0, [r1] ldr r1, =gUnknown_03005DB0 movs r0, 0 @@ -3214,7 +3214,7 @@ c2_whiteout: @ 8085F58 bl player_avatar_init_params_reset bl ScriptContext1_Init bl ScriptContext2_Disable - ldr r1, =gUnknown_03005DAC + ldr r1, =gFieldCallback ldr r0, =sub_80AF3C8 str r0, [r1] mov r1, sp @@ -3304,7 +3304,7 @@ _08086062: sub_8086074: @ 8086074 push {lr} bl sub_808631C - ldr r0, =gUnknown_03005DAC + ldr r0, =gFieldCallback ldr r1, =sub_80AF314 str r1, [r0] ldr r0, =c2_80567AC @@ -3399,12 +3399,12 @@ c2_8056854: @ 8086140 ldrb r0, [r0] cmp r0, 0 beq _08086174 - ldr r1, =gUnknown_03005DAC + ldr r1, =gFieldCallback ldr r0, =sub_80AF314 b _08086178 .pool _08086174: - ldr r1, =gUnknown_03005DAC + ldr r1, =gFieldCallback ldr r0, =sub_80AF214 _08086178: str r0, [r1] @@ -3433,7 +3433,7 @@ sub_8086194: @ 8086194 sub_80861B0: @ 80861B0 push {lr} bl sub_808631C - ldr r1, =gUnknown_03005DAC + ldr r1, =gFieldCallback ldr r0, =sub_80AF188 str r0, [r1] bl c2_exit_to_overworld_2_switch @@ -3446,7 +3446,7 @@ sub_80861B0: @ 80861B0 c2_exit_to_overworld_1_continue_scripts_restart_music: @ 80861CC push {lr} bl sub_808631C - ldr r1, =gUnknown_03005DAC + ldr r1, =gFieldCallback ldr r0, =sub_80AF168 str r0, [r1] bl c2_exit_to_overworld_2_switch @@ -3459,7 +3459,7 @@ c2_exit_to_overworld_1_continue_scripts_restart_music: @ 80861CC sub_80861E8: @ 80861E8 push {lr} bl sub_808631C - ldr r1, =gUnknown_03005DAC + ldr r1, =gFieldCallback ldr r0, =sub_80AF3C8 str r0, [r1] bl c2_exit_to_overworld_2_switch @@ -3562,7 +3562,7 @@ _080862BE: .pool _080862F4: bl sub_80EDB44 - ldr r0, =gUnknown_03005DAC + ldr r0, =gFieldCallback ldr r1, =sub_8086204 str r1, [r0] ldr r0, =c1_overworld @@ -3640,7 +3640,7 @@ VBlankCB_Field: @ 8086390 bl sub_80BA0A8 bl FieldUpdateBgTilemapScroll bl TransferPlttBuffer - bl sub_80A09D0 + bl TransferTilesetAnimsBuffer pop {r0} bx r0 thumb_func_end VBlankCB_Field @@ -4396,7 +4396,7 @@ sub_8086A68: @ 8086A68 sub_8086A80: @ 8086A80 push {lr} ldr r2, =gMapObjects - ldr r3, =gUnknown_02037590 + ldr r3, =gPlayerAvatar ldrb r1, [r3, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -5480,7 +5480,7 @@ sub_80872D8: @ 80872D8 movs r0, 0x1 _080872EA: strb r0, [r6, 0x1] - ldr r1, =gUnknown_02032308 + ldr r1, =gLinkPlayerMapObjects lsls r0, r4, 2 adds r0, r1 ldrb r0, [r0, 0x3] @@ -5977,7 +5977,7 @@ sub_80876C4: @ 80876C4 thumb_func_start strange_npc_table_clear strange_npc_table_clear: @ 80876CC push {lr} - ldr r0, =gUnknown_02032308 + ldr r0, =gLinkPlayerMapObjects movs r1, 0 movs r2, 0x10 bl memset @@ -6025,7 +6025,7 @@ sub_80876F0: @ 80876F0 lsls r6, 24 lsrs r6, 24 lsls r4, r7, 2 - ldr r0, =gUnknown_02032308 + ldr r0, =gLinkPlayerMapObjects adds r4, r0 lsls r5, r6, 3 adds r5, r6 @@ -6118,7 +6118,7 @@ sub_80877DC: @ 80877DC lsls r0, 24 lsls r1, 24 lsrs r2, r1, 24 - ldr r1, =gUnknown_02032308 + ldr r1, =gLinkPlayerMapObjects lsrs r0, 22 adds r1, r0, r1 ldrb r0, [r1] @@ -6142,7 +6142,7 @@ sub_808780C: @ 808780C push {r4,r5,lr} lsls r0, 24 lsrs r0, 22 - ldr r1, =gUnknown_02032308 + ldr r1, =gLinkPlayerMapObjects adds r5, r0, r1 ldrb r1, [r5, 0x2] lsls r0, r1, 3 @@ -6176,7 +6176,7 @@ _08087838: thumb_func_start sub_8087858 sub_8087858: @ 8087858 lsls r0, 24 - ldr r1, =gUnknown_02032308 + ldr r1, =gLinkPlayerMapObjects lsrs r0, 22 adds r0, r1 ldrb r1, [r0, 0x2] @@ -6193,7 +6193,7 @@ sub_8087858: @ 8087858 thumb_func_start sub_8087878 sub_8087878: @ 8087878 lsls r0, 24 - ldr r3, =gUnknown_02032308 + ldr r3, =gLinkPlayerMapObjects lsrs r0, 22 adds r0, r3 ldrb r3, [r0, 0x2] @@ -6213,7 +6213,7 @@ sub_8087878: @ 8087878 thumb_func_start sub_80878A0 sub_80878A0: @ 80878A0 lsls r0, 24 - ldr r1, =gUnknown_02032308 + ldr r1, =gLinkPlayerMapObjects lsrs r0, 22 adds r0, r1 ldrb r1, [r0, 0x2] @@ -6230,7 +6230,7 @@ sub_80878A0: @ 80878A0 thumb_func_start sub_80878C0 sub_80878C0: @ 80878C0 lsls r0, 24 - ldr r1, =gUnknown_02032308 + ldr r1, =gLinkPlayerMapObjects lsrs r0, 22 adds r0, r1 ldrb r1, [r0, 0x2] @@ -6249,7 +6249,7 @@ sub_80878C0: @ 80878C0 thumb_func_start sub_80878E4 sub_80878E4: @ 80878E4 lsls r0, 24 - ldr r1, =gUnknown_02032308 + ldr r1, =gLinkPlayerMapObjects lsrs r0, 22 adds r0, r1 ldrb r1, [r0, 0x2] @@ -6271,7 +6271,7 @@ sub_80878E4: @ 80878E4 sub_808790C: @ 808790C push {r4-r6,lr} movs r2, 0 - ldr r5, =gUnknown_02032308 + ldr r5, =gLinkPlayerMapObjects lsls r0, 16 asrs r4, r0, 16 lsls r1, 16 @@ -6326,7 +6326,7 @@ sub_808796C: @ 808796C lsrs r3, r1, 24 adds r2, r3, 0 lsrs r0, 22 - ldr r1, =gUnknown_02032308 + ldr r1, =gLinkPlayerMapObjects adds r5, r0, r1 ldrb r1, [r5, 0x2] lsls r0, r1, 3 @@ -6654,7 +6654,7 @@ sub_8087BCC: @ 8087BCC lsls r1, 24 lsrs r3, r1, 24 lsls r2, r5, 2 - ldr r0, =gUnknown_02032308 + ldr r0, =gLinkPlayerMapObjects adds r2, r0 ldrb r1, [r2, 0x2] lsls r0, r1, 3 @@ -6742,7 +6742,7 @@ sub_8087C8C: @ 8087C8C movs r0, 0x2E ldrsh r4, [r5, r0] lsls r4, 2 - ldr r0, =gUnknown_02032308 + ldr r0, =gLinkPlayerMapObjects adds r4, r0 ldrb r1, [r4, 0x2] lsls r0, r1, 3 diff --git a/asm/rom6.s b/asm/rom6.s index c5e0265a0..cd1421b4f 100644 --- a/asm/rom6.s +++ b/asm/rom6.s @@ -68,7 +68,7 @@ task08_080C9820: @ 813549C lsrs r5, r0, 24 adds r6, r5, 0 bl ScriptContext2_Enable - ldr r1, =gUnknown_02037590 + ldr r1, =gPlayerAvatar movs r0, 0x1 strb r0, [r1, 0x6] ldrb r1, [r1, 0x5] @@ -127,7 +127,7 @@ sub_813552C: @ 813552C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -167,7 +167,7 @@ sub_8135578: @ 8135578 cmp r4, 0 bne _081355FC bl player_get_direction_lower_nybble - ldr r6, =gUnknown_02038C08 + ldr r6, =gFieldEffectSpawnParams lsls r0, 24 lsrs r0, 24 str r0, [r6, 0x4] @@ -191,7 +191,7 @@ _081355B0: movs r0, 0x3 str r0, [r6, 0x8] _081355B8: - ldr r5, =gUnknown_02037590 + ldr r5, =gPlayerAvatar ldrb r0, [r5, 0x5] lsls r4, r0, 3 adds r4, r0 @@ -244,7 +244,7 @@ sub_813561C: @ 813561C ldrh r0, [r0, 0x1A] orrs r1, r0 bl _call_via_r1 - ldr r1, =gUnknown_02037590 + ldr r1, =gPlayerAvatar movs r0, 0 strb r0, [r1, 0x6] adds r0, r4, 0 @@ -303,7 +303,7 @@ _081356AC: sub_81356C4: @ 81356C4 push {lr} bl brm_get_pokemon_selection - ldr r1, =gUnknown_02038C08 + ldr r1, =gFieldEffectSpawnParams lsls r0, 24 lsrs r0, 24 str r0, [r1] @@ -380,7 +380,7 @@ hm2_dig: @ 8135760 movs r0, 0x26 bl FieldEffectStart bl brm_get_pokemon_selection - ldr r1, =gUnknown_02038C08 + ldr r1, =gFieldEffectSpawnParams lsls r0, 24 lsrs r0, 24 str r0, [r1] @@ -1064,23 +1064,23 @@ sub_8135DAC: @ 8135DAC movs r0, 0 adds r1, r4, 0 bl sub_8135D7C - ldr r1, =gUnknown_085E931D + ldr r1, =gText_Spicy movs r0, 0x2 movs r2, 0 bl sub_8135D7C - ldr r1, =gUnknown_085E9323 + ldr r1, =gText_Dry movs r0, 0x3 movs r2, 0 bl sub_8135D7C - ldr r1, =gUnknown_085E9327 + ldr r1, =gText_Sweet movs r0, 0x4 movs r2, 0 bl sub_8135D7C - ldr r1, =gUnknown_085E932D + ldr r1, =gText_Bitter movs r0, 0x5 movs r2, 0 bl sub_8135D7C - ldr r1, =gUnknown_085E9334 + ldr r1, =gText_Sour movs r0, 0x6 movs r2, 0 bl sub_8135D7C @@ -1148,7 +1148,7 @@ _08135E7C: adds r4, r7 ldr r0, [r5] adds r0, r4 - ldr r1, =gUnknown_085E9344 + ldr r1, =gText_StowCase bl StringCopy ldr r1, [r5] lsls r2, r6, 3 @@ -1231,7 +1231,7 @@ sub_8135F04: @ 8135F04 movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN - ldr r1, =gUnknown_085E934F + ldr r1, =gText_LvVar1 adds r0, r4, 0 bl StringExpandPlaceholders pop {r4-r6} @@ -1984,7 +1984,7 @@ sub_8136524: @ 8136524 lsrs r0, 24 cmp r0, 0x1 bhi _0813655A - ldr r1, =gUnknown_03005DAC + ldr r1, =gFieldCallback ldr r0, =sub_80AF168 str r0, [r1] _0813655A: @@ -2598,7 +2598,7 @@ sub_8136AB4: @ 8136AB4 ldr r1, [r1] bl StringCopy ldr r5, =gStringVar4 - ldr r1, =gUnknown_085E9353 + ldr r1, =gText_ThrowAwayVar1 adds r0, r5, 0 bl StringExpandPlaceholders bl sav2_get_text_speed @@ -2654,7 +2654,7 @@ sub_8136B78: @ 8136B78 lsls r4, 24 lsrs r4, 24 ldr r5, =gStringVar4 - ldr r1, =gUnknown_085E9367 + ldr r1, =gText_Var1ThrownAway adds r0, r5, 0 bl StringExpandPlaceholders bl sav2_get_text_speed @@ -3381,7 +3381,7 @@ hm2_flash: @ 8137178 lsls r4, 24 lsrs r4, 24 bl brm_get_pokemon_selection - ldr r1, =gUnknown_02038C08 + ldr r1, =gFieldEffectSpawnParams lsls r0, 24 lsrs r0, 24 str r0, [r1] @@ -4651,7 +4651,7 @@ sub_8137C3C: @ 8137C3C push {lr} ldr r0, =c2_exit_to_overworld_2_switch bl SetMainCallback2 - ldr r1, =gUnknown_03005DAC + ldr r1, =gFieldCallback ldr r0, =mapldr_080CA5C0 str r0, [r1] pop {r0} @@ -4796,14 +4796,14 @@ sub_8137D5C: @ 8137D5C movs r2, 0 movs r3, 0x2 bl ConvertIntToDecimalStringN - ldr r1, =gUnknown_085EB5EE + ldr r1, =gText_SpaceTimes adds r0, r4, 0 bl StringAppend b _08137D90 .pool _08137D88: ldr r0, =gStringVar1 - ldr r1, =gUnknown_085EB5CF + ldr r1, =gText_99TimesPlus bl StringCopy _08137D90: ldr r0, =0x00000e0f @@ -4833,14 +4833,14 @@ _08137D90: movs r2, 0x2 movs r3, 0x2 bl ConvertIntToDecimalStringN - ldr r1, =gUnknown_085EB5E5 + ldr r1, =gText_SpaceSeconds adds r0, r4, 0 bl StringAppend b _08137DF8 .pool _08137DF0: ldr r0, =gStringVar2 - ldr r1, =gUnknown_085EB5DA + ldr r1, =gText_1MinutePlus bl StringCopy _08137DF8: movs r4, 0 @@ -5062,8 +5062,8 @@ sub_8137FB0: @ 8137FB0 .pool thumb_func_end sub_8137FB0 - thumb_func_start sub_8137FC0 -sub_8137FC0: @ 8137FC0 + thumb_func_start CountSSTidalStep +CountSSTidalStep: @ 8137FC0 push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 @@ -5091,10 +5091,10 @@ _08137FF6: pop {r4} pop {r1} bx r1 - thumb_func_end sub_8137FC0 + thumb_func_end CountSSTidalStep - thumb_func_start sub_8137FFC -sub_8137FFC: @ 8137FFC + thumb_func_start GetSSTidalLocation +GetSSTidalLocation: @ 8137FFC push {r4-r7,lr} mov r7, r8 push {r7} @@ -5203,7 +5203,7 @@ _081380CE: pop {r4-r7} pop {r1} bx r1 - thumb_func_end sub_8137FFC + thumb_func_end GetSSTidalLocation thumb_func_start is_tile_that_overrides_player_control is_tile_that_overrides_player_control: @ 81380D8 @@ -6425,13 +6425,13 @@ sub_8138B10: @ 8138B10 cmp r0, 0 bne _08138B34 ldr r0, =gStringVar1 - ldr r1, =gUnknown_085EB5F9 + ldr r1, =gText_BigGuy bl StringCopy b _08138B3C .pool _08138B34: ldr r0, =gStringVar1 - ldr r1, =gUnknown_085EB601 + ldr r1, =gText_BigGirl bl StringCopy _08138B3C: pop {r0} @@ -6448,13 +6448,13 @@ sub_8138B48: @ 8138B48 cmp r0, 0 bne _08138B6C ldr r0, =gStringVar1 - ldr r1, =gUnknown_085EB60E + ldr r1, =gText_Daughter bl StringCopy b _08138B74 .pool _08138B6C: ldr r0, =gStringVar1 - ldr r1, =gUnknown_085EB60A + ldr r1, =gText_Son bl StringCopy _08138B74: pop {r0} @@ -8511,7 +8511,7 @@ sub_8139B60: @ 8139B60 ldrb r0, [r5] movs r1, 0 bl SetStandardWindowBorderStyle - ldr r4, =gUnknown_085EB6A5 + ldr r4, =gText_ElevatorNowOn movs r0, 0x1 adds r1, r4, 0 movs r2, 0x40 @@ -10131,7 +10131,7 @@ sub_813A8FC: @ 813A8FC movs r2, 0x1 movs r3, 0x4 bl ConvertIntToDecimalStringN - ldr r1, =gUnknown_085EB6AD + ldr r1, =gText_BP bl StringCopy movs r0, 0x1 add r1, sp, 0xC @@ -11039,7 +11039,7 @@ _0813B0F8: ldr r0, =sub_813B160 movs r1, 0x8 bl CreateTask - ldr r3, =gUnknown_02038C08 + ldr r3, =gFieldEffectSpawnParams movs r0, 0x1 str r0, [r3] movs r0, 0x3A @@ -12650,37 +12650,37 @@ _0813BE58: .4byte _0813BEC0 _0813BE70: ldr r0, =gStringVar1 - ldr r1, =gUnknown_085EAD14 + ldr r1, =gText_Steven bl StringCopy b _0813BF04 .pool _0813BE84: ldr r0, =gStringVar1 - ldr r1, =gUnknown_085EAD1B + ldr r1, =gText_Brawly bl StringCopy b _0813BF04 .pool _0813BE98: ldr r0, =gStringVar1 - ldr r1, =gUnknown_085EAD22 + ldr r1, =gText_Winona bl StringCopy b _0813BF04 .pool _0813BEAC: ldr r0, =gStringVar1 - ldr r1, =gUnknown_085EAD29 + ldr r1, =gText_Phoebe bl StringCopy b _0813BF04 .pool _0813BEC0: ldr r0, =gStringVar1 - ldr r1, =gUnknown_085EAD30 + ldr r1, =gText_Glacia bl StringCopy b _0813BF04 .pool _0813BED4: ldr r0, =gStringVar1 - ldr r1, =gUnknown_085EAD0C + ldr r1, =gText_Wallace bl StringCopy b _0813BF04 .pool diff --git a/asm/rom_80A5C6C.s b/asm/rom_80A5C6C.s index ea75d4e2b..267045179 100644 --- a/asm/rom_80A5C6C.s +++ b/asm/rom_80A5C6C.s @@ -1830,8 +1830,8 @@ GetBankIdentity: @ 80A6A44 .pool thumb_func_end GetBankIdentity - thumb_func_start GetBankByPlayerAI -GetBankByPlayerAI: @ 80A6A54 + thumb_func_start GetBankByIdentity +GetBankByIdentity: @ 80A6A54 push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 @@ -1860,7 +1860,7 @@ _080A6A7E: pop {r1} bx r1 .pool - thumb_func_end GetBankByPlayerAI + thumb_func_end GetBankByIdentity thumb_func_start sub_80A6A90 sub_80A6A90: @ 80A6A90 @@ -3496,7 +3496,7 @@ _080A76F2: cmp r5, 0 beq _080A771A movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 bl b_side_obj__get_some_boolean @@ -3504,7 +3504,7 @@ _080A76F2: cmp r0, 0 beq _080A771A movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 adds r0, 0x10 @@ -3514,7 +3514,7 @@ _080A771A: cmp r6, 0 beq _080A7746 movs r0, 0x2 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 bl b_side_obj__get_some_boolean @@ -3522,7 +3522,7 @@ _080A771A: cmp r0, 0 beq _080A7746 movs r0, 0x2 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 @@ -3534,7 +3534,7 @@ _080A7746: cmp r7, 0 beq _080A7772 movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 bl b_side_obj__get_some_boolean @@ -3542,7 +3542,7 @@ _080A7746: cmp r0, 0 beq _080A7772 movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 @@ -3555,7 +3555,7 @@ _080A7772: cmp r0, 0 beq _080A77A0 movs r0, 0x3 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 bl b_side_obj__get_some_boolean @@ -3563,7 +3563,7 @@ _080A7772: cmp r0, 0 beq _080A77A0 movs r0, 0x3 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 @@ -3592,7 +3592,7 @@ sub_80A77B4: @ 80A77B4 push {lr} lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 pop {r1} diff --git a/asm/roulette.s b/asm/roulette.s index 5742e089f..009f30717 100644 --- a/asm/roulette.s +++ b/asm/roulette.s @@ -3273,7 +3273,7 @@ sub_8141E7C: @ 8141E7C bl ResetPaletteFade bl ResetSpriteData bl sub_8140418 - ldr r1, =gUnknown_03005DAC + ldr r1, =gFieldCallback ldr r0, =sub_80AF168 str r0, [r1] ldr r0, =c2_exit_to_overworld_2_switch diff --git a/asm/save.s b/asm/save.s deleted file mode 100644 index 825da0756..000000000 --- a/asm/save.s +++ /dev/null @@ -1,164 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start sub_8153688 -sub_8153688: @ 8153688 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0xB - bls _081536A2 - b _081537C2 -_081536A2: - lsls r0, 2 - ldr r1, =_081536B4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081536B4: - .4byte _081536E4 - .4byte _081536F4 - .4byte _081536FE - .4byte _0815371A - .4byte _0815372C - .4byte _08153742 - .4byte _08153758 - .4byte _08153762 - .4byte _08153778 - .4byte _0815378C - .4byte _08153796 - .4byte _081537A8 -_081536E4: - ldr r0, =gSoftResetDisabled - movs r1, 0x1 - strb r1, [r0] - movs r0, 0x1 - strh r0, [r4] - b _081537C2 - .pool -_081536F4: - bl sub_800ADF8 - movs r0, 0x2 - strh r0, [r4] - b _081537C2 -_081536FE: - bl sub_800A520 - lsls r0, 24 - cmp r0, 0 - beq _081537C2 - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08153714 - bl save_serialize_map -_08153714: - movs r0, 0x3 - strh r0, [r4] - b _081537C2 -_0815371A: - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08153726 - bl sub_8076D5C -_08153726: - bl sub_8153380 - b _08153752 -_0815372C: - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - lsls r0, 16 - asrs r1, r0, 16 - cmp r1, 0x5 - bne _081537C2 - movs r0, 0 - strh r0, [r4, 0x2] - strh r1, [r4] - b _081537C2 -_08153742: - bl sub_81533AC - lsls r0, 24 - cmp r0, 0 - beq _08153752 - movs r0, 0x6 - strh r0, [r4] - b _081537C2 -_08153752: - movs r0, 0x4 - strh r0, [r4] - b _081537C2 -_08153758: - bl sub_81533E0 - movs r0, 0x7 - strh r0, [r4] - b _081537C2 -_08153762: - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _0815376E - bl sav2_gender2_inplace_and_xFE -_0815376E: - bl sub_800ADF8 - movs r0, 0x8 - strh r0, [r4] - b _081537C2 -_08153778: - bl sub_800A520 - lsls r0, 24 - cmp r0, 0 - beq _081537C2 - bl sub_8153408 - movs r0, 0x9 - strh r0, [r4] - b _081537C2 -_0815378C: - bl sub_800ADF8 - movs r0, 0xA - strh r0, [r4] - b _081537C2 -_08153796: - bl sub_800A520 - lsls r0, 24 - cmp r0, 0 - beq _081537C2 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _081537C2 -_081537A8: - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _081537C2 - ldr r1, =gSoftResetDisabled - movs r0, 0 - strb r0, [r1] - adds r0, r2, 0 - bl DestroyTask -_081537C2: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8153688 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/save_failed_screen.s b/asm/save_failed_screen.s index 247c765b6..182ff8954 100644 --- a/asm/save_failed_screen.s +++ b/asm/save_failed_screen.s @@ -268,7 +268,7 @@ _08178FF8: ldrb r0, [r4] movs r1, 0x1 bl CopyWindowToVram - ldr r0, =gUnknown_085EC816 + ldr r0, =gText_SaveFailedCheckingBackup movs r1, 0x1 movs r2, 0 bl sub_8178F44 @@ -340,7 +340,7 @@ _0817929C: ldrb r0, [r4] movs r1, 0x11 bl FillWindowPixelBuffer - ldr r0, =gUnknown_085EC917 + ldr r0, =gText_CheckCompleted movs r1, 0x1 movs r2, 0 bl sub_8178F44 @@ -353,7 +353,7 @@ _0817929C: ldrb r0, [r4] movs r1, 0x11 bl FillWindowPixelBuffer - ldr r0, =gUnknown_085EC816 + ldr r0, =gText_SaveFailedCheckingBackup movs r1, 0x1 movs r2, 0 bl sub_8178F44 @@ -373,7 +373,7 @@ _081792EC: ldrb r0, [r0] movs r1, 0x11 bl FillWindowPixelBuffer - ldr r0, =gUnknown_085EC86F + ldr r0, =gText_BackupMemoryDamaged b _08179330 .pool _0817931C: @@ -385,7 +385,7 @@ _0817931C: ldr r0, [r0] cmp r0, 0 bne _08179370 - ldr r0, =gUnknown_085EC94F + ldr r0, =gText_SaveCompleteGameCannotContinue _08179330: movs r1, 0x1 movs r2, 0 @@ -397,7 +397,7 @@ _08179348: ldrb r0, [r0] movs r1, 0x11 bl FillWindowPixelBuffer - ldr r0, =gUnknown_085EC86F + ldr r0, =gText_BackupMemoryDamaged movs r1, 0x1 movs r2, 0 bl sub_8178F44 @@ -406,7 +406,7 @@ _08179348: b _08179380 .pool _08179370: - ldr r0, =gUnknown_085EC9A2 + ldr r0, =gText_SaveCompletePressA movs r1, 0x1 movs r2, 0 bl sub_8178F44 @@ -436,7 +436,7 @@ sub_8179390: @ 8179390 ldrb r0, [r0] movs r1, 0x11 bl FillWindowPixelBuffer - ldr r0, =gUnknown_085EC8D4 + ldr r0, =gText_GamePlayCannotBeContinued movs r1, 0x1 movs r2, 0 bl sub_8178F44 diff --git a/asm/scrcmd.s b/asm/scrcmd.s index 0598c2310..f2e61a946 100644 --- a/asm/scrcmd.s +++ b/asm/scrcmd.s @@ -3977,7 +3977,7 @@ sub_809B114: @ 809B114 adds r4, r0 ldr r0, [r4] lsrs r1, 11 - ldr r2, =gUnknown_085A5C09 + ldr r2, =gDecorations + 1 adds r1, r2 bl StringCopy movs r0, 0 @@ -4183,7 +4183,7 @@ sC6_load_textvar_box_label: @ 809B2C8 ldr r4, [r4] lsls r0, 24 lsrs r0, 24 - bl sav3_get_box_name + bl GetBoxNamePtr adds r1, r0, 0 adds r0, r4, 0 bl StringCopy @@ -4468,7 +4468,7 @@ s93_display_money: @ 809B500 bl GetMoney adds r1, r5, 0 adds r2, r4, 0 - bl sub_80E52EC + bl DrawMoneyBox _0809B530: movs r0, 0 pop {r4,r5} @@ -4480,7 +4480,7 @@ _0809B530: thumb_func_start s94_hide_money s94_hide_money: @ 809B53C push {lr} - bl sub_80E5384 + bl HideMoneyBox movs r0, 0 pop {r1} bx r1 @@ -4505,7 +4505,7 @@ s95_update_money: @ 809B548 lsls r1, 3 adds r0, r1 bl GetMoney - bl sub_80E52D4 + bl ChangeAmountInMoneyBox _0809B56E: movs r0, 0 pop {r1} @@ -4874,7 +4874,7 @@ s9D_set_HM_animation_data: @ 809B7F4 lsls r0, 16 lsrs r0, 16 bl VarGet - ldr r1, =gUnknown_02038C08 + ldr r1, =gFieldEffectSpawnParams lsls r4, 2 adds r4, r1 lsls r0, 16 diff --git a/asm/script_menu.s b/asm/script_menu.s index 6c5e6d2bd..8aecbf696 100644 --- a/asm/script_menu.s +++ b/asm/script_menu.s @@ -724,7 +724,7 @@ _080E23AC: lsls r0, 24 cmp r0, 0 beq _080E23D4 - ldr r0, =gUnknown_085EB18B + ldr r0, =gText_HallOfFame adds r1, r5, 0 bl display_text_and_get_width adds r5, r0, 0 @@ -751,7 +751,7 @@ _080E23D4: adds r0, r6, 0 movs r1, 0 bl SetStandardWindowBorderStyle - ldr r2, =gUnknown_085EB18B + ldr r2, =gText_HallOfFame movs r0, 0x21 str r0, [sp] movs r5, 0xFF @@ -762,7 +762,7 @@ _080E23D4: movs r1, 0x1 adds r3, r7, 0 bl PrintTextOnWindow - ldr r2, =gUnknown_085EB198 + ldr r2, =gText_LogOff movs r0, 0x31 str r0, [sp] str r5, [sp, 0x4] @@ -786,7 +786,7 @@ _080E2448: adds r0, r6, 0 movs r1, 0 bl SetStandardWindowBorderStyle - ldr r2, =gUnknown_085EB198 + ldr r2, =gText_LogOff movs r0, 0x21 str r0, [sp] movs r0, 0xFF @@ -803,7 +803,7 @@ _080E247A: lsrs r1, r0, 24 cmp r1, 0 beq _080E24B0 - ldr r2, =gUnknown_085EB176 + ldr r2, =gText_LanettesPC movs r0, 0x1 str r0, [sp] movs r0, 0xFF @@ -817,7 +817,7 @@ _080E247A: b _080E24C6 .pool _080E24B0: - ldr r2, =gUnknown_085EB169 + ldr r2, =gText_SomeonesPC movs r0, 0x1 str r0, [sp] movs r0, 0xFF @@ -829,7 +829,7 @@ _080E24B0: bl PrintTextOnWindow _080E24C6: ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EB183 + ldr r1, =gText_PlayersPC adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r6, 0 @@ -1677,7 +1677,7 @@ CreateStartMenu: @ 80E2BAC adds r0, r4, 0 movs r1, 0 bl SetStandardWindowBorderStyle - ldr r2, =gUnknown_085EB25C + ldr r2, =gText_MenuOptionPokedex movs r0, 0x9 str r0, [sp] movs r5, 0xFF @@ -1688,7 +1688,7 @@ CreateStartMenu: @ 80E2BAC movs r1, 0x1 movs r3, 0x8 bl PrintTextOnWindow - ldr r2, =gUnknown_085EB264 + ldr r2, =gText_MenuOptionPokemon movs r0, 0x19 str r0, [sp] str r5, [sp, 0x4] @@ -1697,7 +1697,7 @@ CreateStartMenu: @ 80E2BAC movs r1, 0x1 movs r3, 0x8 bl PrintTextOnWindow - ldr r2, =gUnknown_085EB26C + ldr r2, =gText_MenuOptionBag movs r0, 0x29 str r0, [sp] str r5, [sp, 0x4] @@ -1706,7 +1706,7 @@ CreateStartMenu: @ 80E2BAC movs r1, 0x1 movs r3, 0x8 bl PrintTextOnWindow - ldr r2, =gUnknown_085EB270 + ldr r2, =gText_MenuOptionPokenav movs r0, 0x39 str r0, [sp] str r5, [sp, 0x4] @@ -1725,7 +1725,7 @@ CreateStartMenu: @ 80E2BAC movs r1, 0x1 movs r3, 0x8 bl PrintTextOnWindow - ldr r2, =gUnknown_085EB279 + ldr r2, =gText_MenuOptionSave movs r0, 0x59 str r0, [sp] str r5, [sp, 0x4] @@ -1734,7 +1734,7 @@ CreateStartMenu: @ 80E2BAC movs r1, 0x1 movs r3, 0x8 bl PrintTextOnWindow - ldr r2, =gUnknown_085EB27E + ldr r2, =gText_MenuOptionOption movs r0, 0x69 str r0, [sp] str r5, [sp, 0x4] @@ -1743,7 +1743,7 @@ CreateStartMenu: @ 80E2BAC movs r1, 0x1 movs r3, 0x8 bl PrintTextOnWindow - ldr r2, =gUnknown_085EB285 + ldr r2, =gText_MenuOptionExit movs r0, 0x79 str r0, [sp] str r5, [sp, 0x4] diff --git a/asm/secret_base.s b/asm/secret_base.s index 2188e634d..0290e9f7f 100644 --- a/asm/secret_base.s +++ b/asm/secret_base.s @@ -686,7 +686,7 @@ _080E900C: _080E9030: bl sub_80E8F9C bl warp_in - ldr r0, =gUnknown_03005DAC + ldr r0, =gFieldCallback ldr r1, =sub_80AF168 str r1, [r0] ldr r0, =c2_load_new_map @@ -751,7 +751,7 @@ sub_80E90C8: @ 80E90C8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -863,7 +863,7 @@ sub_80E916C: @ 80E916C adds r0, r5, 0 bl warp1_set bl warp_in - ldr r1, =gUnknown_03005DAC + ldr r1, =gFieldCallback ldr r0, =sub_80E9108 str r0, [r1] ldr r0, =c2_load_new_map @@ -1163,13 +1163,13 @@ _080E941E: lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 - bl sub_8089350 + bl MetatileBehavior_IsMB_B5 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080E9462 adds r0, r4, 0 - bl sub_8089364 + bl MetatileBehavior_IsMB_C3 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1486,7 +1486,7 @@ _080E96F4: movs r0, 0x7E bl copy_saved_warp2_bank_and_enter_x_to_warp1 bl warp_in - ldr r0, =gUnknown_03005DAC + ldr r0, =gFieldCallback ldr r1, =mapldr_default str r1, [r0] ldr r0, =c2_load_new_map @@ -1576,7 +1576,7 @@ sub_80E9780: @ 80E9780 ldrb r1, [r0] adds r0, r6, 0 bl ConvertInternationalString - ldr r1, =gUnknown_085EA72F + ldr r1, =gText_ApostropheSBase adds r0, r6, 0 bl StringAppend pop {r3} @@ -2204,7 +2204,7 @@ sub_80E9C9C: @ 80E9C9C b _080E9D1A .pool _080E9D10: - ldr r1, =gUnknown_085EA785 + ldr r1, =gText_NoRegistry ldr r2, =task_pc_turn_off adds r0, r6, 0 bl DisplayItemMessageOnField @@ -2583,7 +2583,7 @@ sub_80E9FFC: @ 80E9FFC ldrb r1, [r4, 0x8] bl sub_80E9780 ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EA737 + ldr r1, =gText_OkayToDeleteFromRegistry adds r0, r4, 0 bl StringExpandPlaceholders ldr r2, =sub_80EA06C @@ -2683,7 +2683,7 @@ sub_80EA120: @ 80EA120 push {lr} lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_085EA762 + ldr r1, =gText_RegisteredDataDeleted ldr r2, =sub_80EA08C bl DisplayItemMessageOnField pop {r0} @@ -3288,7 +3288,7 @@ _080EA62C: .pool _080EA668: adds r0, r5, 0 - bl sub_80893C8 + bl MetatileBehavior_IsSecretBaseGlitterMat lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -3308,7 +3308,7 @@ _080EA680: .pool _080EA698: adds r0, r5, 0 - bl sub_808938C + bl MetatileBehavior_IsSecretBaseBalloon lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -3377,7 +3377,7 @@ _080EA714: .pool _080EA72C: adds r0, r5, 0 - bl sub_80893A0 + bl MetatileBehavior_IsMB_BE lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -3409,7 +3409,7 @@ _080EA75E: .pool _080EA778: adds r0, r5, 0 - bl sub_80893B4 + bl MetatileBehavior_IsSecretBaseSoundMat lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -3429,7 +3429,7 @@ _080EA778: .pool _080EA7A8: adds r0, r5, 0 - bl MetatileBehavior_0xBB + bl MetatileBehavior_IsSecretBaseJumpMat lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -3449,7 +3449,7 @@ _080EA7A8: .pool _080EA7D8: adds r0, r5, 0 - bl MetatileBehavior_0xBC + bl MetatileBehavior_IsSecretBaseSpinMat lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 diff --git a/asm/shop.s b/asm/shop.s index 9e03399fc..08e935bb1 100644 --- a/asm/shop.s +++ b/asm/shop.s @@ -227,7 +227,7 @@ HandleShopMenuSell: @ 80DFC0C @ int CB2_ExitSellMenu() CB2_ExitSellMenu: @ 80DFC48 push {lr} - ldr r0, =gUnknown_03005DAC + ldr r0, =gFieldCallback ldr r1, =MapPostLoadHook_ExitBuyOrSellMenu str r1, [r0] ldr r0, =c2_exit_to_overworld_2_switch @@ -325,14 +325,14 @@ Task_ExitSellMenu: @ 80DFCF8 ldrb r0, [r0, 0xF] cmp r0, 0x2 bne _080DFD2C - ldr r1, =gUnknown_085E95C7 + ldr r1, =gText_CanIHelpWithAnythingElse ldr r2, =ReturnToShopMenuAfterExitingSellMenu adds r0, r4, 0 bl DisplayItemMessageOnField b _080DFD36 .pool _080DFD2C: - ldr r1, =gUnknown_085E959B + ldr r1, =gText_AnythingElseICanHelp ldr r2, =ReturnToShopMenuAfterExitingSellMenu adds r0, r5, 0 bl DisplayItemMessageOnField @@ -657,7 +657,7 @@ BuyMenuSetListEntry: @ 80E0000 .pool _080E0020: lsls r1, r4, 5 - ldr r0, =gUnknown_085A5C09 + ldr r0, =gDecorations + 1 adds r1, r0 adds r0, r5, 0 bl StringCopy @@ -748,7 +748,7 @@ _080E00D8: b _080E00EA .pool _080E00E8: - ldr r4, =gUnknown_085E93E0 + ldr r4, =gText_QuitShopping _080E00EA: movs r0, 0x2 movs r1, 0 @@ -817,7 +817,7 @@ _080E0164: bl ConvertIntToDecimalStringN _080E0176: ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E969C + ldr r1, =gText_PokedollarVar1 adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0x7 @@ -1125,7 +1125,7 @@ BuyMenuInitBgs: @ 80E036C BuyMenuDecompressBgGraphics: @ 80E0424 push {lr} sub sp, 0x4 - ldr r1, =gUnknown_08D9AFBC + ldr r1, =gBuyMenuFrame_Gfx movs r2, 0xE8 lsls r2, 2 ldr r3, =0x000003e3 @@ -1133,11 +1133,11 @@ BuyMenuDecompressBgGraphics: @ 80E0424 str r0, [sp] movs r0, 0x1 bl decompress_and_copy_tile_data_to_vram - ldr r0, =gUnknown_08D9B0F0 + ldr r0, =gBuyMenuFrame_Tilemap ldr r1, =gUnknown_02039F70 ldr r1, [r1] bl LZDecompressWram - ldr r0, =gUnknown_08D9B0C8 + ldr r0, =gMenuMoneyPal movs r1, 0xC0 movs r2, 0x20 bl LoadCompressedPalette @@ -1259,7 +1259,7 @@ BuyMenuDrawGraphics: @ 80E0524 movs r0, 0 movs r1, 0x1 movs r2, 0xD - bl set_window_border_style_and_print_money_box + bl PrintMoneyAmountInMoneyBoxWithBorder movs r0, 0 bl schedule_bg_copy_tilemap_to_vram movs r0, 0x1 @@ -2060,7 +2060,7 @@ _080E0B92: lsls r0, 24 cmp r0, 0 bne _080E0BD0 - ldr r1, =gUnknown_085E9539 + ldr r1, =gText_YouDontHaveMoney ldr r2, =BuyMenuReturnToItemList b _080E0C28 .pool @@ -2091,11 +2091,11 @@ _080E0BD0: adds r1, r0 adds r0, r4, 0 bl StringCopy - ldr r1, =gUnknown_085E9417 + ldr r1, =gText_Var1CertainlyHowMany2 b _080E0C26 .pool _080E0C24: - ldr r1, =gUnknown_085E93EF + ldr r1, =gText_Var1CertainlyHowMany _080E0C26: ldr r2, =Task_BuyHowManyDialogueInit _080E0C28: @@ -2106,7 +2106,7 @@ _080E0C28: _080E0C38: ldr r0, =gStringVar1 lsls r1, r5, 5 - ldr r2, =gUnknown_085A5C09 + ldr r2, =gDecorations + 1 adds r1, r2 bl StringCopy ldr r0, =gStringVar2 @@ -2121,13 +2121,13 @@ _080E0C38: cmp r0, 0x1 bne _080E0C7C ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E9468 + ldr r1, =gText_Var1IsItThatllBeVar2 bl StringExpandPlaceholders b _080E0C84 .pool _080E0C7C: ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E9493 + ldr r1, =gText_YouWantedVar1ThatllBeVar2 bl StringExpandPlaceholders _080E0C84: ldr r1, =gStringVar4 @@ -2171,7 +2171,7 @@ Task_BuyHowManyDialogueInit: @ 80E0CA4 movs r3, 0x4 bl ConvertIntToDecimalStringN ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E93D5 + ldr r1, =gText_InBagVar1 adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0 @@ -2319,7 +2319,7 @@ _080E0DF0: movs r2, 0 movs r3, 0x6 bl ConvertIntToDecimalStringN - ldr r1, =gUnknown_085E943F + ldr r1, =gText_Var1AndYouWantedVar2 ldr r2, =BuyMenuConfirmPurchase adds r0, r6, 0 bl BuyMenuDisplayMessage @@ -2400,7 +2400,7 @@ BuyMenuTryMakePurchase: @ 80E0EDC lsrs r0, 24 cmp r0, 0x1 bne _080E0F30 - ldr r1, =gUnknown_085E94C5 + ldr r1, =gText_HereYouGoThankYou ldr r2, =BuyMenuSubtractMoney adds r0, r5, 0 bl BuyMenuDisplayMessage @@ -2409,7 +2409,7 @@ BuyMenuTryMakePurchase: @ 80E0EDC b _080E0F7A .pool _080E0F30: - ldr r1, =gUnknown_085E9558 + ldr r1, =gText_NoMoreRoomForThis ldr r2, =BuyMenuReturnToItemList b _080E0F60 .pool @@ -2422,11 +2422,11 @@ _080E0F40: ldrb r0, [r6, 0xF] cmp r0, 0x1 bne _080E0F5C - ldr r1, =gUnknown_085E94E7 + ldr r1, =gText_ThankYouIllSendItHome b _080E0F5E .pool _080E0F5C: - ldr r1, =gUnknown_085E9510 + ldr r1, =gText_ThanksIllSendItHome _080E0F5E: ldr r2, =BuyMenuSubtractMoney _080E0F60: @@ -2435,7 +2435,7 @@ _080E0F60: b _080E0F7A .pool _080E0F70: - ldr r1, =gUnknown_085E957F + ldr r1, =gText_SpaceForVar1Full ldr r2, =BuyMenuReturnToItemList adds r0, r7, 0 bl BuyMenuDisplayMessage @@ -2536,7 +2536,7 @@ Task_ReturnToItemListAfterItemPurchase: @ 80E100C lsrs r0, 24 cmp r0, 0x1 bne _080E106C - ldr r1, =gUnknown_085E95EA + ldr r1, =gText_ThrowInPremierBall ldr r2, =BuyMenuReturnToItemList adds r0, r4, 0 bl BuyMenuDisplayMessage @@ -2668,7 +2668,7 @@ ExitBuyMenu: @ 80E1168 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r1, =gUnknown_03005DAC + ldr r1, =gFieldCallback ldr r0, =MapPostLoadHook_ExitBuyOrSellMenu str r0, [r1] movs r0, 0x1 diff --git a/asm/slot_machine.s b/asm/slot_machine.s index 6fdd1a214..6bd62ed9f 100644 --- a/asm/slot_machine.s +++ b/asm/slot_machine.s @@ -976,7 +976,7 @@ sub_812ACF4: @ 812ACF4 movs r0, 0 movs r1, 0 bl sub_81973C4 - ldr r2, =gUnknown_085EF734 + ldr r2, =gText_YouDontHaveThreeCoins movs r0, 0x1 str r0, [sp] movs r0, 0 @@ -1544,7 +1544,7 @@ sub_812B158: @ 812B158 movs r0, 0 movs r1, 0 bl sub_81973C4 - ldr r2, =gUnknown_085EF6E9 + ldr r2, =gText_QuitTheGame movs r0, 0x1 str r0, [sp] movs r0, 0 @@ -1634,7 +1634,7 @@ sub_812B214: @ 812B214 movs r0, 0 movs r1, 0 bl sub_81973C4 - ldr r2, =gUnknown_085EF6F8 + ldr r2, =gText_YouveGot9999Coins movs r0, 0x1 str r0, [sp] movs r0, 0 @@ -1687,7 +1687,7 @@ sub_812B280: @ 812B280 movs r0, 0 movs r1, 0 bl sub_81973C4 - ldr r2, =gUnknown_085EF710 + ldr r2, =gText_YouveRunOutOfCoins movs r0, 0x1 str r0, [sp] movs r0, 0 @@ -7209,7 +7209,7 @@ sub_812DD78: @ 812DD78 str r0, [sp] movs r4, 0 str r4, [sp, 0x4] - ldr r0, =gUnknown_085EF750 + ldr r0, =gText_ReelTimeHelp str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x1 diff --git a/asm/start_menu.s b/asm/start_menu.s index f71df1046..4f8544eea 100644 --- a/asm/start_menu.s +++ b/asm/start_menu.s @@ -1862,7 +1862,7 @@ _080A0710: bl PrintTextOnWindow movs r4, 0x11 ldrb r0, [r6] - ldr r2, =gUnknown_085EED26 + ldr r2, =gText_SavingPlayer str r4, [sp] mov r1, r8 str r1, [sp, 0x4] @@ -1887,7 +1887,7 @@ _080A0710: bl sub_819A024 movs r4, 0x21 ldrb r0, [r6] - ldr r2, =gUnknown_085EED2D + ldr r2, =gText_SavingBadges str r4, [sp] mov r1, r8 str r1, [sp, 0x4] @@ -1922,7 +1922,7 @@ _080A0710: bne _080A0802 movs r4, 0x31 ldrb r0, [r6] - ldr r2, =gUnknown_085EED34 + ldr r2, =gText_SavingPokedex str r4, [sp] mov r1, r8 str r1, [sp, 0x4] @@ -1952,7 +1952,7 @@ _080A0710: _080A0802: adds r4, 0x10 ldrb r0, [r6] - ldr r2, =gUnknown_085EED3C + ldr r2, =gText_SavingTime lsls r4, 24 lsrs r4, 24 str r4, [sp] diff --git a/asm/tileset.s b/asm/tileset.s deleted file mode 100644 index 0605c7621..000000000 --- a/asm/tileset.s +++ /dev/null @@ -1,1793 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_80A0954 -@ void sub_80A0954() -sub_80A0954: @ 80A0954 - push {lr} - sub sp, 0x4 - ldr r1, =gUnknown_03000F34 - movs r0, 0 - strb r0, [r1] - movs r0, 0 - str r0, [sp] - ldr r1, =gUnknown_02037624 - ldr r2, =0x0500003c - mov r0, sp - bl CpuSet - add sp, 0x4 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A0954 - - thumb_func_start sub_80A0980 -sub_80A0980: @ 80A0980 - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r2, 16 - lsrs r6, r2, 16 - ldr r3, =gUnknown_03000F34 - ldrb r0, [r3] - cmp r0, 0x13 - bhi _080A09C0 - ldr r2, =gUnknown_02037624 - adds r1, r0, 0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - str r4, [r0] - ldrb r1, [r3] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r1, r2, 0x4 - adds r0, r1 - str r5, [r0] - ldrb r1, [r3] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r6, [r0, 0x8] - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] -_080A09C0: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A0980 - - thumb_func_start sub_80A09D0 -sub_80A09D0: @ 80A09D0 - push {r4-r6,lr} - movs r3, 0 - ldr r4, =gUnknown_03000F34 - adds r6, r4, 0 - ldrb r0, [r4] - cmp r3, r0 - bge _080A0A02 - ldr r2, =0x040000d4 - ldr r1, =gUnknown_02037624 - movs r5, 0x80 - lsls r5, 24 -_080A09E6: - ldr r0, [r1] - str r0, [r2] - ldr r0, [r1, 0x4] - str r0, [r2, 0x4] - ldrh r0, [r1, 0x8] - lsrs r0, 1 - orrs r0, r5 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - adds r1, 0xC - adds r3, 0x1 - ldrb r0, [r4] - cmp r3, r0 - blt _080A09E6 -_080A0A02: - movs r0, 0 - strb r0, [r6] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A09D0 - - thumb_func_start cur_mapheader_run_tileset_funcs_after_some_cpuset -cur_mapheader_run_tileset_funcs_after_some_cpuset: @ 80A0A18 - push {lr} - bl sub_80A0954 - bl cur_mapheader_run_tileset1_func - bl cur_mapheader_run_tileset2_func - pop {r0} - bx r0 - thumb_func_end cur_mapheader_run_tileset_funcs_after_some_cpuset - - thumb_func_start sub_80A0A2C -sub_80A0A2C: @ 80A0A2C - push {lr} - bl cur_mapheader_run_tileset2_func - pop {r0} - bx r0 - thumb_func_end sub_80A0A2C - - thumb_func_start sub_80A0A38 -sub_80A0A38: @ 80A0A38 - push {r4,lr} - bl sub_80A0954 - ldr r2, =gUnknown_03000F36 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - ldr r1, =gUnknown_03000F38 - lsls r0, 16 - lsrs r0, 16 - ldrh r1, [r1] - cmp r0, r1 - bcc _080A0A56 - movs r0, 0 - strh r0, [r2] -_080A0A56: - ldr r4, =gUnknown_03000F3A - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - ldr r1, =gUnknown_03000F3C - lsls r0, 16 - lsrs r0, 16 - ldrh r1, [r1] - cmp r0, r1 - bcc _080A0A6E - movs r0, 0 - strh r0, [r4] -_080A0A6E: - ldr r0, =gUnknown_03000F40 - ldr r1, [r0] - cmp r1, 0 - beq _080A0A7C - ldrh r0, [r2] - bl _call_via_r1 -_080A0A7C: - ldr r0, =gUnknown_03000F44 - ldr r1, [r0] - cmp r1, 0 - beq _080A0A8A - ldrh r0, [r4] - bl _call_via_r1 -_080A0A8A: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A0A38 - - thumb_func_start cur_mapheader_run_tileset1_func -cur_mapheader_run_tileset1_func: @ 80A0AA8 - push {lr} - ldr r0, =gUnknown_03000F36 - movs r1, 0 - strh r1, [r0] - ldr r0, =gUnknown_03000F38 - strh r1, [r0] - ldr r1, =gUnknown_03000F40 - movs r0, 0 - str r0, [r1] - ldr r0, =gMapHeader - ldr r0, [r0] - ldr r0, [r0, 0x10] - cmp r0, 0 - beq _080A0ACE - ldr r0, [r0, 0x14] - cmp r0, 0 - beq _080A0ACE - bl _call_via_r0 -_080A0ACE: - pop {r0} - bx r0 - .pool - thumb_func_end cur_mapheader_run_tileset1_func - - thumb_func_start cur_mapheader_run_tileset2_func -cur_mapheader_run_tileset2_func: @ 80A0AE4 - push {lr} - ldr r0, =gUnknown_03000F3A - movs r1, 0 - strh r1, [r0] - ldr r0, =gUnknown_03000F3C - strh r1, [r0] - ldr r1, =gUnknown_03000F44 - movs r0, 0 - str r0, [r1] - ldr r0, =gMapHeader - ldr r0, [r0] - ldr r0, [r0, 0x14] - cmp r0, 0 - beq _080A0B0A - ldr r0, [r0, 0x14] - cmp r0, 0 - beq _080A0B0A - bl _call_via_r0 -_080A0B0A: - pop {r0} - bx r0 - .pool - thumb_func_end cur_mapheader_run_tileset2_func - - thumb_func_start TilesetCb_General -TilesetCb_General: @ 80A0B20 - ldr r1, =gUnknown_03000F36 - movs r0, 0 - strh r0, [r1] - ldr r1, =gUnknown_03000F38 - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, =gUnknown_03000F40 - ldr r0, =sub_80A0B70 - str r0, [r1] - bx lr - .pool - thumb_func_end TilesetCb_General - - thumb_func_start TilesetCb_InsideBuilding -TilesetCb_InsideBuilding: @ 80A0B48 - ldr r1, =gUnknown_03000F36 - movs r0, 0 - strh r0, [r1] - ldr r1, =gUnknown_03000F38 - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, =gUnknown_03000F40 - ldr r0, =sub_80A0BB4 - str r0, [r1] - bx lr - .pool - thumb_func_end TilesetCb_InsideBuilding - - thumb_func_start sub_80A0B70 -sub_80A0B70: @ 80A0B70 - push {r4,r5,lr} - lsls r5, r0, 16 - movs r0, 0xF0 - lsls r0, 12 - ands r0, r5 - lsrs r4, r0, 16 - cmp r4, 0 - bne _080A0B86 - lsrs r0, r5, 20 - bl sub_80A0BCC -_080A0B86: - cmp r4, 0x1 - bne _080A0B90 - lsrs r0, r5, 20 - bl sub_80A0BF4 -_080A0B90: - cmp r4, 0x2 - bne _080A0B9A - lsrs r0, r5, 20 - bl sub_80A0C1C -_080A0B9A: - cmp r4, 0x3 - bne _080A0BA4 - lsrs r0, r5, 20 - bl sub_80A0C44 -_080A0BA4: - cmp r4, 0x4 - bne _080A0BAE - lsrs r0, r5, 20 - bl sub_80A12AC -_080A0BAE: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A0B70 - - thumb_func_start sub_80A0BB4 -sub_80A0BB4: @ 80A0BB4 - push {lr} - lsls r1, r0, 16 - movs r0, 0xE0 - lsls r0, 11 - ands r0, r1 - cmp r0, 0 - bne _080A0BC8 - lsrs r0, r1, 19 - bl sub_80A1688 -_080A0BC8: - pop {r0} - bx r0 - thumb_func_end sub_80A0BB4 - - thumb_func_start sub_80A0BCC -sub_80A0BCC: @ 80A0BCC - push {lr} - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r0 - ldr r0, =gUnknown_08510764 - lsrs r1, 14 - adds r1, r0 - ldr r0, [r1] - ldr r1, =0x06003f80 - movs r2, 0x80 - bl sub_80A0980 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A0BCC - - thumb_func_start sub_80A0BF4 -sub_80A0BF4: @ 80A0BF4 - push {lr} - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x7 - ands r0, r1 - ldr r1, =gUnknown_08512574 - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, =0x06003600 - movs r2, 0xF0 - lsls r2, 2 - bl sub_80A0980 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A0BF4 - - thumb_func_start sub_80A0C1C -sub_80A0C1C: @ 80A0C1C - push {lr} - lsls r0, 16 - movs r1, 0xE0 - lsls r1, 11 - ands r1, r0 - ldr r0, =gUnknown_08512E54 - lsrs r1, 14 - adds r1, r0 - ldr r0, [r1] - ldr r1, =0x06003a00 - movs r2, 0xA0 - lsls r2, 1 - bl sub_80A0980 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A0C1C - - thumb_func_start sub_80A0C44 -sub_80A0C44: @ 80A0C44 - push {lr} - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r0 - ldr r0, =gUnknown_08513174 - lsrs r1, 14 - adds r1, r0 - ldr r0, [r1] - ldr r1, =0x06003e00 - movs r2, 0xC0 - bl sub_80A0980 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A0C44 - - thumb_func_start TilesetCb_Petalburg -TilesetCb_Petalburg: @ 80A0C6C - ldr r1, =gUnknown_03000F3A - movs r0, 0 - strh r0, [r1] - ldr r1, =gUnknown_03000F3C - ldr r0, =gUnknown_03000F38 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, =gUnknown_03000F44 - movs r0, 0 - str r0, [r1] - bx lr - .pool - thumb_func_end TilesetCb_Petalburg - - thumb_func_start TilesetCb_Rustboro -TilesetCb_Rustboro: @ 80A0C94 - ldr r1, =gUnknown_03000F3A - movs r0, 0 - strh r0, [r1] - ldr r1, =gUnknown_03000F3C - ldr r0, =gUnknown_03000F38 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, =gUnknown_03000F44 - ldr r0, =sub_80A103C - str r0, [r1] - bx lr - .pool - thumb_func_end TilesetCb_Rustboro - - thumb_func_start TilesetCb_Dewford -TilesetCb_Dewford: @ 80A0CC0 - ldr r1, =gUnknown_03000F3A - movs r0, 0 - strh r0, [r1] - ldr r1, =gUnknown_03000F3C - ldr r0, =gUnknown_03000F38 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, =gUnknown_03000F44 - ldr r0, =sub_80A10B8 - str r0, [r1] - bx lr - .pool - thumb_func_end TilesetCb_Dewford - - thumb_func_start TilesetCb_Slateport -TilesetCb_Slateport: @ 80A0CEC - ldr r1, =gUnknown_03000F3A - movs r0, 0 - strh r0, [r1] - ldr r1, =gUnknown_03000F3C - ldr r0, =gUnknown_03000F38 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, =gUnknown_03000F44 - ldr r0, =sub_80A10D0 - str r0, [r1] - bx lr - .pool - thumb_func_end TilesetCb_Slateport - - thumb_func_start TilesetCb_Mauville -TilesetCb_Mauville: @ 80A0D18 - ldr r1, =gUnknown_03000F3A - ldr r0, =gUnknown_03000F36 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, =gUnknown_03000F3C - ldr r0, =gUnknown_03000F38 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, =gUnknown_03000F44 - ldr r0, =sub_80A10E8 - str r0, [r1] - bx lr - .pool - thumb_func_end TilesetCb_Mauville - - thumb_func_start TilesetCb_Lavaridge -TilesetCb_Lavaridge: @ 80A0D48 - ldr r1, =gUnknown_03000F3A - movs r0, 0 - strh r0, [r1] - ldr r1, =gUnknown_03000F3C - ldr r0, =gUnknown_03000F38 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, =gUnknown_03000F44 - ldr r0, =sub_80A115C - str r0, [r1] - bx lr - .pool - thumb_func_end TilesetCb_Lavaridge - - thumb_func_start TilesetCb_Fallarbor -TilesetCb_Fallarbor: @ 80A0D74 - ldr r1, =gUnknown_03000F3A - movs r0, 0 - strh r0, [r1] - ldr r1, =gUnknown_03000F3C - ldr r0, =gUnknown_03000F38 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, =gUnknown_03000F44 - movs r0, 0 - str r0, [r1] - bx lr - .pool - thumb_func_end TilesetCb_Fallarbor - - thumb_func_start TilesetCb_Fortree -TilesetCb_Fortree: @ 80A0D9C - ldr r1, =gUnknown_03000F3A - movs r0, 0 - strh r0, [r1] - ldr r1, =gUnknown_03000F3C - ldr r0, =gUnknown_03000F38 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, =gUnknown_03000F44 - movs r0, 0 - str r0, [r1] - bx lr - .pool - thumb_func_end TilesetCb_Fortree - - thumb_func_start TilesetCb_Lilycove -TilesetCb_Lilycove: @ 80A0DC4 - ldr r1, =gUnknown_03000F3A - movs r0, 0 - strh r0, [r1] - ldr r1, =gUnknown_03000F3C - ldr r0, =gUnknown_03000F38 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, =gUnknown_03000F44 - movs r0, 0 - str r0, [r1] - bx lr - .pool - thumb_func_end TilesetCb_Lilycove - - thumb_func_start TilesetCb_Mossdeep -TilesetCb_Mossdeep: @ 80A0DEC - ldr r1, =gUnknown_03000F3A - movs r0, 0 - strh r0, [r1] - ldr r1, =gUnknown_03000F3C - ldr r0, =gUnknown_03000F38 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, =gUnknown_03000F44 - movs r0, 0 - str r0, [r1] - bx lr - .pool - thumb_func_end TilesetCb_Mossdeep - - thumb_func_start TilesetCb_EverGrande -TilesetCb_EverGrande: @ 80A0E14 - ldr r1, =gUnknown_03000F3A - movs r0, 0 - strh r0, [r1] - ldr r1, =gUnknown_03000F3C - ldr r0, =gUnknown_03000F38 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, =gUnknown_03000F44 - ldr r0, =sub_80A1188 - str r0, [r1] - bx lr - .pool - thumb_func_end TilesetCb_EverGrande - - thumb_func_start TilesetCb_Pacifidlog -TilesetCb_Pacifidlog: @ 80A0E40 - ldr r1, =gUnknown_03000F3A - ldr r0, =gUnknown_03000F36 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, =gUnknown_03000F3C - ldr r0, =gUnknown_03000F38 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, =gUnknown_03000F44 - ldr r0, =sub_80A11FC - str r0, [r1] - bx lr - .pool - thumb_func_end TilesetCb_Pacifidlog - - thumb_func_start TilesetCb_Sootopolis -TilesetCb_Sootopolis: @ 80A0E70 - ldr r1, =gUnknown_03000F3A - movs r0, 0 - strh r0, [r1] - ldr r1, =gUnknown_03000F3C - ldr r0, =gUnknown_03000F38 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, =gUnknown_03000F44 - ldr r0, =sub_80A122C - str r0, [r1] - bx lr - .pool - thumb_func_end TilesetCb_Sootopolis - - thumb_func_start TilesetCb_BattleFrontierOutsideWest -TilesetCb_BattleFrontierOutsideWest: @ 80A0E9C - ldr r1, =gUnknown_03000F3A - movs r0, 0 - strh r0, [r1] - ldr r1, =gUnknown_03000F3C - ldr r0, =gUnknown_03000F38 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, =gUnknown_03000F44 - ldr r0, =sub_80A127C - str r0, [r1] - bx lr - .pool - thumb_func_end TilesetCb_BattleFrontierOutsideWest - - thumb_func_start TilesetCb_BattleFrontierOutsideEast -TilesetCb_BattleFrontierOutsideEast: @ 80A0EC8 - ldr r1, =gUnknown_03000F3A - movs r0, 0 - strh r0, [r1] - ldr r1, =gUnknown_03000F3C - ldr r0, =gUnknown_03000F38 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, =gUnknown_03000F44 - ldr r0, =sub_80A1294 - str r0, [r1] - bx lr - .pool - thumb_func_end TilesetCb_BattleFrontierOutsideEast - - thumb_func_start TilesetCb_Underwater -TilesetCb_Underwater: @ 80A0EF4 - ldr r1, =gUnknown_03000F3A - movs r0, 0 - strh r0, [r1] - ldr r1, =gUnknown_03000F3C - movs r0, 0x80 - strh r0, [r1] - ldr r1, =gUnknown_03000F44 - ldr r0, =sub_80A1244 - str r0, [r1] - bx lr - .pool - thumb_func_end TilesetCb_Underwater - - thumb_func_start TilesetCb_SootopolisGym -TilesetCb_SootopolisGym: @ 80A0F18 - ldr r1, =gUnknown_03000F3A - movs r0, 0 - strh r0, [r1] - ldr r1, =gUnknown_03000F3C - movs r0, 0xF0 - strh r0, [r1] - ldr r1, =gUnknown_03000F44 - ldr r0, =sub_80A15D8 - str r0, [r1] - bx lr - .pool - thumb_func_end TilesetCb_SootopolisGym - - thumb_func_start TilesetCb_Cave -TilesetCb_Cave: @ 80A0F3C - ldr r1, =gUnknown_03000F3A - movs r0, 0 - strh r0, [r1] - ldr r1, =gUnknown_03000F3C - ldr r0, =gUnknown_03000F38 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, =gUnknown_03000F44 - ldr r0, =sub_80A1260 - str r0, [r1] - bx lr - .pool - thumb_func_end TilesetCb_Cave - - thumb_func_start TilesetCb_EliteFour -TilesetCb_EliteFour: @ 80A0F68 - ldr r1, =gUnknown_03000F3A - movs r0, 0 - strh r0, [r1] - ldr r1, =gUnknown_03000F3C - movs r0, 0x80 - strh r0, [r1] - ldr r1, =gUnknown_03000F44 - ldr r0, =sub_80A15F0 - str r0, [r1] - bx lr - .pool - thumb_func_end TilesetCb_EliteFour - - thumb_func_start TilesetCb_MauvilleGym -TilesetCb_MauvilleGym: @ 80A0F8C - ldr r1, =gUnknown_03000F3A - movs r0, 0 - strh r0, [r1] - ldr r1, =gUnknown_03000F3C - ldr r0, =gUnknown_03000F38 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, =gUnknown_03000F44 - ldr r0, =sub_80A15C0 - str r0, [r1] - bx lr - .pool - thumb_func_end TilesetCb_MauvilleGym - - thumb_func_start TilesetCb_BikeShop -TilesetCb_BikeShop: @ 80A0FB8 - ldr r1, =gUnknown_03000F3A - movs r0, 0 - strh r0, [r1] - ldr r1, =gUnknown_03000F3C - ldr r0, =gUnknown_03000F38 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, =gUnknown_03000F44 - ldr r0, =sub_80A161C - str r0, [r1] - bx lr - .pool - thumb_func_end TilesetCb_BikeShop - - thumb_func_start TilesetCb_BattlePyramid -TilesetCb_BattlePyramid: @ 80A0FE4 - ldr r1, =gUnknown_03000F3A - movs r0, 0 - strh r0, [r1] - ldr r1, =gUnknown_03000F3C - ldr r0, =gUnknown_03000F38 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, =gUnknown_03000F44 - ldr r0, =sub_80A1634 - str r0, [r1] - bx lr - .pool - thumb_func_end TilesetCb_BattlePyramid - - thumb_func_start TilesetCb_BattleDome -TilesetCb_BattleDome: @ 80A1010 - ldr r1, =gUnknown_03000F3A - movs r0, 0 - strh r0, [r1] - ldr r1, =gUnknown_03000F3C - ldr r0, =gUnknown_03000F38 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, =gUnknown_03000F44 - ldr r0, =sub_80A1658 - str r0, [r1] - bx lr - .pool - thumb_func_end TilesetCb_BattleDome - - thumb_func_start sub_80A103C -sub_80A103C: @ 80A103C - push {r4-r6,lr} - lsls r5, r0, 16 - movs r0, 0xE0 - lsls r0, 11 - ands r0, r5 - lsrs r6, r0, 16 - cmp r6, 0 - bne _080A105C - lsrs r4, r5, 19 - adds r0, r4, 0 - movs r1, 0 - bl sub_80A1434 - adds r0, r4, 0 - bl sub_80A1470 -_080A105C: - cmp r6, 0x1 - bne _080A1068 - lsrs r0, r5, 19 - movs r1, 0x1 - bl sub_80A1434 -_080A1068: - cmp r6, 0x2 - bne _080A1074 - lsrs r0, r5, 19 - movs r1, 0x2 - bl sub_80A1434 -_080A1074: - cmp r6, 0x3 - bne _080A1080 - lsrs r0, r5, 19 - movs r1, 0x3 - bl sub_80A1434 -_080A1080: - cmp r6, 0x4 - bne _080A108C - lsrs r0, r5, 19 - movs r1, 0x4 - bl sub_80A1434 -_080A108C: - cmp r6, 0x5 - bne _080A1098 - lsrs r0, r5, 19 - movs r1, 0x5 - bl sub_80A1434 -_080A1098: - cmp r6, 0x6 - bne _080A10A4 - lsrs r0, r5, 19 - movs r1, 0x6 - bl sub_80A1434 -_080A10A4: - cmp r6, 0x7 - bne _080A10B0 - lsrs r0, r5, 19 - movs r1, 0x7 - bl sub_80A1434 -_080A10B0: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80A103C - - thumb_func_start sub_80A10B8 -sub_80A10B8: @ 80A10B8 - push {lr} - lsls r1, r0, 16 - movs r0, 0xE0 - lsls r0, 11 - ands r0, r1 - cmp r0, 0 - bne _080A10CC - lsrs r0, r1, 19 - bl sub_80A1520 -_080A10CC: - pop {r0} - bx r0 - thumb_func_end sub_80A10B8 - - thumb_func_start sub_80A10D0 -sub_80A10D0: @ 80A10D0 - push {lr} - lsls r1, r0, 16 - movs r0, 0xF0 - lsls r0, 12 - ands r0, r1 - cmp r0, 0 - bne _080A10E4 - lsrs r0, r1, 20 - bl sub_80A1598 -_080A10E4: - pop {r0} - bx r0 - thumb_func_end sub_80A10D0 - - thumb_func_start sub_80A10E8 -sub_80A10E8: @ 80A10E8 - push {r4,r5,lr} - lsls r4, r0, 16 - movs r0, 0xE0 - lsls r0, 11 - ands r0, r4 - lsrs r5, r0, 16 - cmp r5, 0 - bne _080A1100 - lsrs r0, r4, 19 - movs r1, 0 - bl sub_80A1394 -_080A1100: - cmp r5, 0x1 - bne _080A110C - lsrs r0, r4, 19 - movs r1, 0x1 - bl sub_80A1394 -_080A110C: - cmp r5, 0x2 - bne _080A1118 - lsrs r0, r4, 19 - movs r1, 0x2 - bl sub_80A1394 -_080A1118: - cmp r5, 0x3 - bne _080A1124 - lsrs r0, r4, 19 - movs r1, 0x3 - bl sub_80A1394 -_080A1124: - cmp r5, 0x4 - bne _080A1130 - lsrs r0, r4, 19 - movs r1, 0x4 - bl sub_80A1394 -_080A1130: - cmp r5, 0x5 - bne _080A113C - lsrs r0, r4, 19 - movs r1, 0x5 - bl sub_80A1394 -_080A113C: - cmp r5, 0x6 - bne _080A1148 - lsrs r0, r4, 19 - movs r1, 0x6 - bl sub_80A1394 -_080A1148: - cmp r5, 0x7 - bne _080A1154 - lsrs r0, r4, 19 - movs r1, 0x7 - bl sub_80A1394 -_080A1154: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A10E8 - - thumb_func_start sub_80A115C -sub_80A115C: @ 80A115C - push {r4,r5,lr} - lsls r4, r0, 16 - movs r0, 0xF0 - lsls r0, 12 - ands r0, r4 - lsrs r5, r0, 16 - cmp r5, 0 - bne _080A1176 - lsrs r0, r4, 20 - lsls r0, 24 - lsrs r0, 24 - bl sub_80A12D4 -_080A1176: - cmp r5, 0x1 - bne _080A1180 - lsrs r0, r4, 20 - bl sub_80A1498 -_080A1180: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A115C - - thumb_func_start sub_80A1188 -sub_80A1188: @ 80A1188 - push {r4,r5,lr} - lsls r4, r0, 16 - movs r0, 0xE0 - lsls r0, 11 - ands r0, r4 - lsrs r5, r0, 16 - cmp r5, 0 - bne _080A11A0 - lsrs r0, r4, 19 - movs r1, 0 - bl sub_80A14C0 -_080A11A0: - cmp r5, 0x1 - bne _080A11AC - lsrs r0, r4, 19 - movs r1, 0x1 - bl sub_80A14C0 -_080A11AC: - cmp r5, 0x2 - bne _080A11B8 - lsrs r0, r4, 19 - movs r1, 0x2 - bl sub_80A14C0 -_080A11B8: - cmp r5, 0x3 - bne _080A11C4 - lsrs r0, r4, 19 - movs r1, 0x3 - bl sub_80A14C0 -_080A11C4: - cmp r5, 0x4 - bne _080A11D0 - lsrs r0, r4, 19 - movs r1, 0x4 - bl sub_80A14C0 -_080A11D0: - cmp r5, 0x5 - bne _080A11DC - lsrs r0, r4, 19 - movs r1, 0x5 - bl sub_80A14C0 -_080A11DC: - cmp r5, 0x6 - bne _080A11E8 - lsrs r0, r4, 19 - movs r1, 0x6 - bl sub_80A14C0 -_080A11E8: - cmp r5, 0x7 - bne _080A11F4 - lsrs r0, r4, 19 - movs r1, 0x7 - bl sub_80A14C0 -_080A11F4: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A1188 - - thumb_func_start sub_80A11FC -sub_80A11FC: @ 80A11FC - push {r4,r5,lr} - lsls r4, r0, 16 - movs r0, 0xF0 - lsls r0, 12 - ands r0, r4 - lsrs r5, r0, 16 - cmp r5, 0 - bne _080A1216 - lsrs r0, r4, 20 - lsls r0, 24 - lsrs r0, 24 - bl sub_80A131C -_080A1216: - cmp r5, 0x1 - bne _080A1224 - lsrs r0, r4, 20 - lsls r0, 24 - lsrs r0, 24 - bl sub_80A136C -_080A1224: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A11FC - - thumb_func_start sub_80A122C -sub_80A122C: @ 80A122C - push {lr} - lsls r1, r0, 16 - movs r0, 0xF0 - lsls r0, 12 - ands r0, r1 - cmp r0, 0 - bne _080A1240 - lsrs r0, r1, 20 - bl sub_80A1798 -_080A1240: - pop {r0} - bx r0 - thumb_func_end sub_80A122C - - thumb_func_start sub_80A1244 -sub_80A1244: @ 80A1244 - push {lr} - lsls r1, r0, 16 - movs r0, 0xF0 - lsls r0, 12 - ands r0, r1 - cmp r0, 0 - bne _080A125C - lsrs r0, r1, 20 - lsls r0, 24 - lsrs r0, 24 - bl sub_80A1344 -_080A125C: - pop {r0} - bx r0 - thumb_func_end sub_80A1244 - - thumb_func_start sub_80A1260 -sub_80A1260: @ 80A1260 - push {lr} - lsls r1, r0, 16 - movs r0, 0xF0 - lsls r0, 12 - ands r0, r1 - lsrs r0, 16 - cmp r0, 0x1 - bne _080A1276 - lsrs r0, r1, 20 - bl sub_80A14F8 -_080A1276: - pop {r0} - bx r0 - thumb_func_end sub_80A1260 - - thumb_func_start sub_80A127C -sub_80A127C: @ 80A127C - push {lr} - lsls r1, r0, 16 - movs r0, 0xE0 - lsls r0, 11 - ands r0, r1 - cmp r0, 0 - bne _080A1290 - lsrs r0, r1, 19 - bl sub_80A1548 -_080A1290: - pop {r0} - bx r0 - thumb_func_end sub_80A127C - - thumb_func_start sub_80A1294 -sub_80A1294: @ 80A1294 - push {lr} - lsls r1, r0, 16 - movs r0, 0xE0 - lsls r0, 11 - ands r0, r1 - cmp r0, 0 - bne _080A12A8 - lsrs r0, r1, 19 - bl sub_80A1570 -_080A12A8: - pop {r0} - bx r0 - thumb_func_end sub_80A1294 - - thumb_func_start sub_80A12AC -sub_80A12AC: @ 80A12AC - push {lr} - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r0 - ldr r0, =gUnknown_08513684 - lsrs r1, 14 - adds r1, r0 - ldr r0, [r1] - ldr r1, =0x06003c00 - movs r2, 0xA0 - lsls r2, 1 - bl sub_80A0980 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A12AC - - thumb_func_start sub_80A12D4 -sub_80A12D4: @ 80A12D4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x3 - ands r0, r4 - ldr r5, =gUnknown_08513894 - lsls r0, 2 - adds r0, r5 - ldr r0, [r0] - ldr r1, =0x06006400 - movs r2, 0x80 - bl sub_80A0980 - adds r1, r4, 0x2 - adds r0, r1, 0 - asrs r0, 2 - lsls r0, 2 - subs r0, r1, r0 - lsls r0, 24 - lsrs r0, 22 - adds r0, r5 - ldr r0, [r0] - ldr r1, =0x06006480 - movs r2, 0x80 - bl sub_80A0980 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A12D4 - - thumb_func_start sub_80A131C -sub_80A131C: @ 80A131C - push {lr} - lsls r0, 24 - movs r1, 0xC0 - lsls r1, 18 - ands r1, r0 - ldr r0, =gUnknown_085143E4 - lsrs r1, 22 - adds r1, r0 - ldr r0, [r1] - ldr r1, =0x06007a00 - movs r2, 0xF0 - lsls r2, 2 - bl sub_80A0980 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A131C - - thumb_func_start sub_80A1344 -sub_80A1344: @ 80A1344 - push {lr} - lsls r0, 24 - movs r1, 0xC0 - lsls r1, 18 - ands r1, r0 - ldr r0, =gUnknown_085145F4 - lsrs r1, 22 - adds r1, r0 - ldr r0, [r1] - ldr r1, =0x06007e00 - movs r2, 0x80 - bl sub_80A0980 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A1344 - - thumb_func_start sub_80A136C -sub_80A136C: @ 80A136C - push {lr} - lsls r0, 24 - movs r1, 0xE0 - lsls r1, 19 - ands r1, r0 - ldr r0, =gUnknown_08514E04 - lsrs r1, 22 - adds r1, r0 - ldr r0, [r1] - ldr r1, =0x06007e00 - movs r2, 0x80 - lsls r2, 1 - bl sub_80A0980 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A136C - - thumb_func_start sub_80A1394 -sub_80A1394: @ 80A1394 - push {r4-r6,lr} - lsls r0, 16 - lsrs r5, r0, 16 - lsls r1, 24 - lsrs r6, r1, 24 - subs r0, r5, r6 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0xB - bhi _080A13F0 - adds r0, r5, 0 - movs r1, 0xC - bl __umodsi3 - adds r4, r0, 0 - lsls r4, 16 - ldr r0, =gUnknown_08515384 - lsrs r4, 14 - adds r0, r4, r0 - ldr r0, [r0] - ldr r1, =gUnknown_08515344 - lsls r5, r6, 2 - adds r1, r5, r1 - ldr r1, [r1] - movs r2, 0x80 - bl sub_80A0980 - ldr r0, =gUnknown_085153B4 - adds r4, r0 - ldr r0, [r4] - ldr r1, =gUnknown_08515364 - adds r5, r1 - ldr r1, [r5] - movs r2, 0x80 - bl sub_80A0980 - b _080A141C - .pool -_080A13F0: - movs r0, 0x3 - ands r5, r0 - ldr r0, =gUnknown_085153E4 - lsls r5, 2 - adds r0, r5, r0 - ldr r0, [r0] - ldr r1, =gUnknown_08515344 - lsls r4, r6, 2 - adds r1, r4, r1 - ldr r1, [r1] - movs r2, 0x80 - bl sub_80A0980 - ldr r0, =gUnknown_085153F4 - adds r5, r0 - ldr r0, [r5] - ldr r1, =gUnknown_08515364 - adds r4, r1 - ldr r1, [r4] - movs r2, 0x80 - bl sub_80A0980 -_080A141C: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A1394 - - thumb_func_start sub_80A1434 -sub_80A1434: @ 80A1434 - push {lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 24 - lsrs r3, r1, 24 - subs r0, r3 - lsls r0, 16 - movs r1, 0xE0 - lsls r1, 11 - ands r1, r0 - ldr r0, =gUnknown_08515824 - lsrs r1, 14 - adds r1, r0 - ldr r2, [r1] - cmp r2, 0 - beq _080A1464 - ldr r0, =gUnknown_08515804 - lsls r1, r3, 2 - adds r1, r0 - ldr r1, [r1] - adds r0, r2, 0 - movs r2, 0x80 - bl sub_80A0980 -_080A1464: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A1434 - - thumb_func_start sub_80A1470 -sub_80A1470: @ 80A1470 - push {lr} - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - ands r0, r1 - ldr r1, =gUnknown_08515964 - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, =0x06007800 - movs r2, 0x80 - bl sub_80A0980 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A1470 - - thumb_func_start sub_80A1498 -sub_80A1498: @ 80A1498 - push {lr} - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r0 - ldr r0, =gUnknown_08515D8C - lsrs r1, 14 - adds r1, r0 - ldr r0, [r1] - ldr r1, =0x06005400 - movs r2, 0x80 - bl sub_80A0980 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A1498 - - thumb_func_start sub_80A14C0 -sub_80A14C0: @ 80A14C0 - push {lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 24 - lsrs r1, 24 - subs r0, r1 - lsls r0, 16 - movs r2, 0xE0 - lsls r2, 11 - ands r2, r0 - ldr r0, =gUnknown_085161DC - lsrs r2, 14 - adds r2, r0 - ldr r0, [r2] - ldr r2, =gUnknown_085161BC - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - movs r2, 0x80 - bl sub_80A0980 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A14C0 - - thumb_func_start sub_80A14F8 -sub_80A14F8: @ 80A14F8 - push {lr} - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r0 - ldr r0, =gUnknown_08515D8C - lsrs r1, 14 - adds r1, r0 - ldr r0, [r1] - ldr r1, =0x06007400 - movs r2, 0x80 - bl sub_80A0980 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A14F8 - - thumb_func_start sub_80A1520 -sub_80A1520: @ 80A1520 - push {lr} - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r0 - ldr r0, =gUnknown_085164FC - lsrs r1, 14 - adds r1, r0 - ldr r0, [r1] - ldr r1, =0x06005540 - movs r2, 0xC0 - bl sub_80A0980 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A1520 - - thumb_func_start sub_80A1548 -sub_80A1548: @ 80A1548 - push {lr} - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r0 - ldr r0, =gUnknown_0851680C - lsrs r1, 14 - adds r1, r0 - ldr r0, [r1] - ldr r1, =0x06005b40 - movs r2, 0xC0 - bl sub_80A0980 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A1548 - - thumb_func_start sub_80A1570 -sub_80A1570: @ 80A1570 - push {lr} - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r0 - ldr r0, =gUnknown_08516B1C - lsrs r1, 14 - adds r1, r0 - ldr r0, [r1] - ldr r1, =0x06005b40 - movs r2, 0xC0 - bl sub_80A0980 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A1570 - - thumb_func_start sub_80A1598 -sub_80A1598: @ 80A1598 - push {lr} - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r0 - ldr r0, =gUnknown_08516D2C - lsrs r1, 14 - adds r1, r0 - ldr r0, [r1] - ldr r1, =0x06005c00 - movs r2, 0x80 - bl sub_80A0980 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A1598 - - thumb_func_start sub_80A15C0 -sub_80A15C0: @ 80A15C0 - push {lr} - lsls r2, r0, 16 - lsrs r0, r2, 16 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080A15D4 - lsrs r0, r2, 17 - bl sub_80A1748 -_080A15D4: - pop {r0} - bx r0 - thumb_func_end sub_80A15C0 - - thumb_func_start sub_80A15D8 -sub_80A15D8: @ 80A15D8 - push {lr} - lsls r1, r0, 16 - movs r0, 0xE0 - lsls r0, 11 - ands r0, r1 - cmp r0, 0 - bne _080A15EC - lsrs r0, r1, 19 - bl sub_80A16B0 -_080A15EC: - pop {r0} - bx r0 - thumb_func_end sub_80A15D8 - - thumb_func_start sub_80A15F0 -sub_80A15F0: @ 80A15F0 - push {r4,r5,lr} - lsls r4, r0, 16 - lsrs r0, r4, 16 - adds r5, r0, 0 - movs r0, 0x3F - ands r0, r5 - cmp r0, 0x1 - bne _080A1606 - lsrs r0, r4, 22 - bl sub_80A1720 -_080A1606: - movs r0, 0x7 - ands r0, r5 - cmp r0, 0x1 - bne _080A1614 - lsrs r0, r4, 19 - bl sub_80A16F8 -_080A1614: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A15F0 - - thumb_func_start sub_80A161C -sub_80A161C: @ 80A161C - push {lr} - lsls r1, r0, 16 - movs r0, 0xC0 - lsls r0, 10 - ands r0, r1 - cmp r0, 0 - bne _080A1630 - lsrs r0, r1, 18 - bl sub_80A1770 -_080A1630: - pop {r0} - bx r0 - thumb_func_end sub_80A161C - - thumb_func_start sub_80A1634 -sub_80A1634: @ 80A1634 - push {r4,lr} - lsls r4, r0, 16 - movs r0, 0xE0 - lsls r0, 11 - ands r0, r4 - cmp r0, 0 - bne _080A1650 - lsrs r4, 19 - adds r0, r4, 0 - bl sub_80A17C0 - adds r0, r4, 0 - bl sub_80A17EC -_080A1650: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A1634 - - thumb_func_start sub_80A1658 -sub_80A1658: @ 80A1658 - push {lr} - lsls r1, r0, 16 - movs r0, 0xC0 - lsls r0, 10 - ands r0, r1 - cmp r0, 0 - bne _080A166C - lsrs r0, r1, 18 - bl sub_80A1818 -_080A166C: - pop {r0} - bx r0 - thumb_func_end sub_80A1658 - - thumb_func_start sub_80A1670 -sub_80A1670: @ 80A1670 - push {lr} - lsls r1, r0, 16 - movs r0, 0xC0 - lsls r0, 10 - ands r0, r1 - cmp r0, 0 - bne _080A1684 - lsrs r0, r1, 18 - bl sub_80A1884 -_080A1684: - pop {r0} - bx r0 - thumb_func_end sub_80A1670 - - thumb_func_start sub_80A1688 -sub_80A1688: @ 80A1688 - push {lr} - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - ands r0, r1 - ldr r1, =gUnknown_08516E3C - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, =0x06003e00 - movs r2, 0x80 - bl sub_80A0980 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A1688 - - thumb_func_start sub_80A16B0 -sub_80A16B0: @ 80A16B0 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - adds r4, r0, 0 - lsls r4, 16 - ldr r0, =gUnknown_08517A44 - lsrs r4, 14 - adds r0, r4, r0 - ldr r0, [r0] - ldr r1, =0x06007e00 - movs r2, 0xC0 - lsls r2, 1 - bl sub_80A0980 - ldr r0, =gUnknown_08517A50 - adds r4, r0 - ldr r0, [r4] - ldr r1, =0x06007a00 - movs r2, 0xA0 - lsls r2, 2 - bl sub_80A0980 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A16B0 - - thumb_func_start sub_80A16F8 -sub_80A16F8: @ 80A16F8 - push {lr} - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r0 - ldr r0, =gUnknown_08517BFC - lsrs r1, 14 - adds r1, r0 - ldr r0, [r1] - ldr r1, =0x06007f00 - movs r2, 0x20 - bl sub_80A0980 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A16F8 - - thumb_func_start sub_80A1720 -sub_80A1720: @ 80A1720 - push {lr} - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - ands r0, r1 - ldr r1, =gUnknown_08517C0C - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, =0x06007c00 - movs r2, 0x80 - bl sub_80A0980 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A1720 - - thumb_func_start sub_80A1748 -sub_80A1748: @ 80A1748 - push {lr} - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - ands r0, r1 - ldr r1, =gUnknown_08518034 - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, =0x06005200 - movs r2, 0x80 - lsls r2, 2 - bl sub_80A0980 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A1748 - - thumb_func_start sub_80A1770 -sub_80A1770: @ 80A1770 - push {lr} - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - ands r0, r1 - ldr r1, =gUnknown_0851829C - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, =0x06007e00 - movs r2, 0x90 - lsls r2, 1 - bl sub_80A0980 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A1770 - - thumb_func_start sub_80A1798 -sub_80A1798: @ 80A1798 - push {lr} - lsls r0, 16 - movs r1, 0xE0 - lsls r1, 11 - ands r1, r0 - ldr r0, =gUnknown_085202C4 - lsrs r1, 14 - adds r1, r0 - ldr r0, [r1] - ldr r1, =0x06005e00 - movs r2, 0xC0 - lsls r2, 4 - bl sub_80A0980 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A1798 - - thumb_func_start sub_80A17C0 -sub_80A17C0: @ 80A17C0 - push {lr} - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 16 - ldr r1, =gUnknown_08524864 - lsrs r0, 14 - adds r0, r1 - ldr r0, [r0] - ldr r1, =0x060052e0 - movs r2, 0x80 - lsls r2, 1 - bl sub_80A0980 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A17C0 - - thumb_func_start sub_80A17EC -sub_80A17EC: @ 80A17EC - push {lr} - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 16 - ldr r1, =gUnknown_08524870 - lsrs r0, 14 - adds r0, r1 - ldr r0, [r0] - ldr r1, =0x060050e0 - movs r2, 0x80 - lsls r2, 1 - bl sub_80A0980 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A17EC - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/title_screen.s b/asm/title_screen.s index 39247aef4..961b14210 100644 --- a/asm/title_screen.s +++ b/asm/title_screen.s @@ -468,7 +468,7 @@ title_screen_vblank_callback: @ 80AA780 bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y ldrh r1, [r0] movs r0, 0x16 bl SetGpuReg @@ -590,7 +590,7 @@ _080AA7E0: b _080AAB1E .pool _080AA8C4: - ldr r0, =gTitleScreenPokemonLogoTiles + ldr r0, =gTitleScreenPokemonLogoGfx movs r1, 0xC0 lsls r1, 19 bl LZ77UnCompVram @@ -602,13 +602,13 @@ _080AA8C4: lsls r2, 1 movs r1, 0 bl LoadPalette - ldr r0, =gTitleScreenRayquazaTiles + ldr r0, =gTitleScreenRayquazaGfx ldr r1, =0x06008000 bl LZ77UnCompVram - ldr r0, =gUnknown_0853F83C + ldr r0, =gTitleScreenRayquazaTilemap ldr r1, =0x0600d000 bl LZ77UnCompVram - ldr r0, =gTitleScreenCloudsTiles + ldr r0, =gTitleScreenCloudsGfx ldr r1, =0x0600c000 bl LZ77UnCompVram ldr r0, =gUnknown_08DDE458 @@ -627,7 +627,7 @@ _080AA8C4: bl LoadCompressedObjectPic ldr r0, =gUnknown_0854013C bl LoadCompressedObjectPic - ldr r0, =gUnknown_08DDE438 + ldr r0, =gTitleScreenEmeraldVersionPal movs r1, 0x80 lsls r1, 1 movs r2, 0x20 @@ -1156,14 +1156,14 @@ _080AAE30: ldrh r0, [r3, 0x10] adds r0, 0x1 strh r0, [r3, 0x10] - ldr r2, =gUnknown_02022E1A + ldr r2, =gBattle_BG1_Y movs r1, 0x10 ldrsh r0, [r3, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 strh r0, [r2] - ldr r1, =gUnknown_02022E18 + ldr r1, =gBattle_BG1_X movs r0, 0 strh r0, [r1] _080AAE72: @@ -1259,7 +1259,7 @@ c2_berry_program_update_screen_1: @ 80AAF28 cmp r0, 0 bne _080AAF3E bl m4aMPlayAllStop - ldr r0, =sub_81BF384 + ldr r0, =InitBerryFixProgram bl SetMainCallback2 _080AAF3E: pop {r0} diff --git a/asm/trade.s b/asm/trade.s index 3f9323971..8712567c7 100644 --- a/asm/trade.s +++ b/asm/trade.s @@ -9004,7 +9004,7 @@ _0807C0F8: .pool _0807C120: ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EE942 + ldr r1, =gText_XWillBeSentToY adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0 @@ -9070,7 +9070,7 @@ _0807C178: adds r0, 0x1 strh r0, [r1] ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EE959 + ldr r1, =gText_ByeByeVar1 adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0 @@ -10471,7 +10471,7 @@ _0807CDDC: movs r0, 0 bl SetGpuReg ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EE966 + ldr r1, =gText_XSentOverY adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0 @@ -10542,7 +10542,7 @@ _0807CE70: movs r5, 0 strh r0, [r1] ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EE977 + ldr r1, =gText_TakeGoodCareOfX adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0 @@ -11066,7 +11066,7 @@ _0807D4D4: .pool _0807D4FC: ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EE942 + ldr r1, =gText_XWillBeSentToY adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0 @@ -11132,7 +11132,7 @@ _0807D554: adds r0, 0x1 strh r0, [r1] ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EE959 + ldr r1, =gText_ByeByeVar1 adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0 @@ -12576,7 +12576,7 @@ _0807E228: movs r0, 0 bl SetGpuReg ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EE966 + ldr r1, =gText_XSentOverY adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0 @@ -12647,7 +12647,7 @@ _0807E2BC: movs r5, 0 strh r0, [r1] ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EE977 + ldr r1, =gText_TakeGoodCareOfX adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0 @@ -13751,7 +13751,7 @@ _0807ED10: adds r0, 0x1 strb r0, [r1] ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EF6D2 + ldr r1, =gText_CommunicationStandby5 b _0807EDA6 .pool _0807ED2C: @@ -14195,7 +14195,7 @@ sub_807F110: @ 807F110 bne _0807F134 ldr r0, =sub_807B270 bl SetMainCallback2 - ldr r1, =gUnknown_03005DAC + ldr r1, =gFieldCallback ldr r0, =sub_80AF168 str r0, [r1] adds r0, r4, 0 @@ -14634,7 +14634,7 @@ _0807F4C0: movs r0, 0x1 strb r0, [r1] ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EF6D2 + ldr r1, =gText_CommunicationStandby5 adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0 diff --git a/asm/trader.s b/asm/trader.s index e93bceccb..8c21648fc 100644 --- a/asm/trader.s +++ b/asm/trader.s @@ -87,7 +87,7 @@ sub_8133A78: @ 8133A78 ldr r0, [r0] str r0, [sp, 0xC] str r1, [sp, 0x10] - ldr r1, =gUnknown_085EB7EA + ldr r1, =gText_Exit movs r0, 0x1 movs r2, 0 bl GetStringWidth @@ -113,7 +113,7 @@ _08133AC2: _08133AF0: ldrb r1, [r1] lsls r1, 5 - ldr r0, =gUnknown_085A5C09 + ldr r0, =gDecorations + 1 adds r1, r0 movs r0, 0x1 movs r2, 0 @@ -172,7 +172,7 @@ _08133B70: ldrb r0, [r7, 0x6] ldrb r2, [r1] lsls r2, 5 - ldr r1, =gUnknown_085A5C09 + ldr r1, =gDecorations + 1 adds r2, r1 lsls r1, r5, 4 adds r1, 0x1 @@ -193,7 +193,7 @@ _08133B94: cmp r5, 0x3 bls _08133B3C ldrb r0, [r7, 0x6] - ldr r2, =gUnknown_085EB7EA + ldr r2, =gText_Exit lsls r1, r5, 4 adds r1, 0x1 lsls r1, 24 @@ -450,7 +450,7 @@ sub_8133DA0: @ 8133DA0 ldr r1, =gSpecialVar_0x8004 ldrh r1, [r1] lsls r1, 5 - ldr r4, =gUnknown_085A5C09 + ldr r4, =gDecorations + 1 adds r1, r4 bl StringCopy ldr r0, =gStringVar2 diff --git a/asm/trainer_card.s b/asm/trainer_card.s index ec0b58653..7552d7ace 100644 --- a/asm/trainer_card.s +++ b/asm/trainer_card.s @@ -410,7 +410,7 @@ _080C2A2C: movs r0, 0 movs r1, 0x1 bl sub_81973C4 - ldr r2, =gUnknown_085ED042 + ldr r2, =gText_WaitingTrainerFinishReading movs r0, 0x1 str r0, [sp] movs r0, 0xFF @@ -1714,7 +1714,7 @@ sub_80C3548: @ 80C3548 sub_80C3574: @ 80C3574 push {r4,r5,lr} sub sp, 0x2C - ldr r1, =gUnknown_085ECF71 + ldr r1, =gText_TrainerCardName add r0, sp, 0xC bl StringCopy adds r5, r0, 0 @@ -1775,7 +1775,7 @@ _080C35FA: sub_80C3608: @ 80C3608 push {r4,lr} sub sp, 0x2C - ldr r1, =gUnknown_085ECF78 + ldr r1, =gText_TrainerCardIDNo add r0, sp, 0xC bl StringCopy ldr r4, =gUnknown_02039CE8 @@ -1842,7 +1842,7 @@ sub_80C3684: @ 80C3684 movs r0, 0x1 negs r0, r0 str r0, [sp, 0x4] - ldr r0, =gUnknown_085ECF7E + ldr r0, =gText_TrainerCardMoney str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x1 @@ -1857,7 +1857,7 @@ _080C36C4: movs r0, 0x1 negs r0, r0 str r0, [sp, 0x4] - ldr r0, =gUnknown_085ECF7E + ldr r0, =gText_TrainerCardMoney str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x1 @@ -1876,7 +1876,7 @@ _080C36DE: movs r3, 0x6 bl ConvertIntToDecimalStringN ldr r5, =gStringVar4 - ldr r1, =gUnknown_085E969C + ldr r1, =gText_PokedollarVar1 adds r0, r5, 0 bl StringExpandPlaceholders ldr r0, [r4] @@ -1958,7 +1958,7 @@ sub_80C378C: @ 80C378C movs r0, 0x1 negs r0, r0 str r0, [sp, 0x4] - ldr r0, =gUnknown_085ECF86 + ldr r0, =gText_TrainerCardPokedex str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x1 @@ -1973,7 +1973,7 @@ _080C37DC: movs r0, 0x1 negs r0, r0 str r0, [sp, 0x4] - ldr r0, =gUnknown_085ECF86 + ldr r0, =gText_TrainerCardPokedex str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x1 @@ -1992,7 +1992,7 @@ _080C37F6: movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN - ldr r1, =gUnknown_085ECF8E + ldr r1, =gText_EmptyString6 bl StringCopy ldr r0, [r4] ldr r1, =0x0000052b @@ -2054,7 +2054,7 @@ sub_80C3880: @ 80C3880 movs r0, 0x1 negs r0, r0 str r0, [sp, 0x4] - ldr r0, =gUnknown_085ECF99 + ldr r0, =gText_TrainerCardTime str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x1 @@ -2069,7 +2069,7 @@ _080C38C8: movs r0, 0x1 negs r0, r0 str r0, [sp, 0x4] - ldr r0, =gUnknown_085ECF99 + ldr r0, =gText_TrainerCardTime str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x1 @@ -2105,7 +2105,7 @@ _080C391C: bls _080C3922 movs r6, 0x3B _080C3922: - ldr r1, =gUnknown_085ECF8F + ldr r1, =gText_Colon2 movs r0, 0x1 movs r2, 0 bl GetStringWidth @@ -2172,7 +2172,7 @@ _080C395C: ldr r0, [r0] str r0, [sp] str r5, [sp, 0x4] - ldr r0, =gUnknown_085ECF8F + ldr r0, =gText_Colon2 str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x1 @@ -2331,7 +2331,7 @@ sub_80C3AF0: @ 80C3AF0 bl StringCopy ldr r0, [r4] adds r0, 0x4D - ldr r1, =gUnknown_085ECFA6 + ldr r1, =gText_Var1sTrainerCard bl StringExpandPlaceholders _080C3B30: pop {r4} @@ -2512,7 +2512,7 @@ sub_80C3CCC: @ 80C3CCC ldrb r0, [r2, 0xB] cmp r0, 0 beq _080C3CE4 - ldr r1, =gUnknown_085ECFB8 + ldr r1, =gText_HallOfFameDebut adds r2, 0x93 ldr r3, =gUnknown_0856FB0F movs r0, 0 @@ -2585,7 +2585,7 @@ sub_80C3D60: @ 80C3D60 adds r1, r2 bl StringCopy ldr r4, =gStringVar4 - ldr r1, =gUnknown_085ECFED + ldr r1, =gText_WinsLosses adds r0, r4, 0 bl StringExpandPlaceholders ldr r1, [r5] @@ -2631,7 +2631,7 @@ sub_80C3DF0: @ 80C3DF0 ldrb r0, [r2, 0x10] cmp r0, 0 beq _080C3E0A - ldr r1, =gUnknown_085ED010 + ldr r1, =gText_PokemonTrades ldr r0, =0x00000237 adds r2, r0 ldr r3, =gUnknown_0856FB0F @@ -2685,7 +2685,7 @@ sub_80C3E58: @ 80C3E58 ldr r0, [r0] cmp r0, 0 beq _080C3E80 - ldr r1, =gUnknown_085ED036 + ldr r1, =gText_BerryCrush ldr r0, =0x000002c3 adds r2, r0 ldr r3, =gUnknown_0856FB0F @@ -2738,7 +2738,7 @@ sub_80C3ED4: @ 80C3ED4 ldr r0, [r0] cmp r0, 0 beq _080C3EFC - ldr r1, =gUnknown_085ED01F + ldr r1, =gText_UnionTradesAndBattles ldr r0, =0x0000034f adds r2, r0 ldr r3, =gUnknown_0856FB0F @@ -2773,7 +2773,7 @@ sub_80C3F14: @ 80C3F14 ldr r0, [r4] ldr r1, =0x00000395 adds r0, r1 - ldr r1, =gUnknown_085ED096 + ldr r1, =gText_Var1DarkGreyShadowLightGrey bl StringExpandPlaceholders _080C3F46: pop {r4} @@ -2797,7 +2797,7 @@ sub_80C3F64: @ 80C3F64 ldrh r0, [r0] cmp r0, 0 beq _080C3F8C - ldr r1, =gUnknown_085ED085 + ldr r1, =gText_PokeblocksWithFriends ldr r0, =0x00000395 adds r2, r0 ldr r3, =gUnknown_0856FB0F @@ -2852,7 +2852,7 @@ sub_80C3FE0: @ 80C3FE0 ldrh r0, [r0] cmp r0, 0 beq _080C4008 - ldr r1, =gUnknown_085ED09F + ldr r1, =gText_WonContestsWFriends ldr r0, =0x000003db adds r2, r0 ldr r3, =gUnknown_0856FB0F @@ -2902,7 +2902,7 @@ _080C4044: ldr r0, [r4] ldr r1, =0x00000421 adds r0, r1 - ldr r1, =gUnknown_085ED0E0 + ldr r1, =gText_WSlashStraightSlash bl StringExpandPlaceholders b _080C40B6 .pool @@ -2920,7 +2920,7 @@ _080C4094: ldr r0, [r4] ldr r1, =0x00000421 adds r0, r1 - ldr r1, =gUnknown_085ED0C8 + ldr r1, =gText_Var1DarkLightGreyBP bl StringExpandPlaceholders _080C40B6: pop {r4} @@ -2949,7 +2949,7 @@ _080C40F0: ldrb r0, [r2, 0xD] cmp r0, 0 beq _080C412C - ldr r1, =gUnknown_085ED0D3 + ldr r1, =gText_BattleTower ldr r0, =0x00000421 adds r2, r0 ldr r3, =gUnknown_0856FB0C @@ -2963,7 +2963,7 @@ _080C4114: ldrh r0, [r0] cmp r0, 0 beq _080C412C - ldr r1, =gUnknown_085ED0B6 + ldr r1, =gText_BattlePtsWon ldr r0, =0x00000421 adds r2, r0 ldr r3, =gUnknown_0856FB0F @@ -6346,7 +6346,7 @@ _080C5DC2: lsrs r4, r0, 24 cmp r4, 0x4 bls _080C5DC2 - ldr r4, =gUnknown_085ED8FF + ldr r4, =gText_SymbolsEarned movs r0, 0x1 adds r1, r4, 0 movs r2, 0x60 @@ -6362,7 +6362,7 @@ _080C5DC2: movs r1, 0x1 movs r3, 0x5 bl box_print - ldr r4, =gUnknown_085ED90E + ldr r4, =gText_BattleRecord movs r0, 0x1 adds r1, r4, 0 movs r2, 0x60 @@ -6380,7 +6380,7 @@ _080C5DC2: str r6, [sp] mov r0, r8 str r0, [sp, 0x4] - ldr r0, =gUnknown_085ED91C + ldr r0, =gText_BattlePoints str r0, [sp, 0x8] movs r0, 0x2 movs r1, 0x8 diff --git a/asm/trainer_see.s b/asm/trainer_see.s index d725b9f15..d57ad1815 100644 --- a/asm/trainer_see.s +++ b/asm/trainer_see.s @@ -734,7 +734,7 @@ sub_80B417C: @ 80B417C push {r4,r5,lr} adds r5, r1, 0 adds r4, r2, 0 - ldr r1, =gUnknown_02038C08 + ldr r1, =gFieldEffectSpawnParams adds r2, r1, 0x4 adds r3, r1, 0 adds r3, 0x8 @@ -882,7 +882,7 @@ _080B427A: bl sub_808F23C adds r0, r5, 0 bl sub_808F208 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -901,7 +901,7 @@ _080B427A: beq _080B4308 _080B42D2: bl sub_808BCE8 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r0, [r0, 0x5] lsls r4, r0, 3 adds r4, r0 @@ -936,7 +936,7 @@ sub_80B4318: @ 80B4318 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 - ldr r0, =gUnknown_02037590 + ldr r0, =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -1050,7 +1050,7 @@ sub_80B43E0: @ 80B43E0 lsls r0, 24 cmp r0, 0 beq _080B4426 - ldr r2, =gUnknown_02038C08 + ldr r2, =gFieldEffectSpawnParams movs r1, 0x10 ldrsh r0, [r4, r1] str r0, [r2] diff --git a/asm/truck_scene.s b/asm/truck_scene.s deleted file mode 100644 index bc3388cb6..000000000 --- a/asm/truck_scene.s +++ /dev/null @@ -1,589 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_80FB0B0 -sub_80FB0B0: @ 80FB0B0 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x78 - bl __modsi3 - cmp r0, 0 - bne _080FB0C4 - movs r0, 0x1 - negs r0, r0 - b _080FB0D6 -_080FB0C4: - adds r0, r4, 0 - movs r1, 0xA - bl __modsi3 - cmp r0, 0x4 - ble _080FB0D4 - movs r0, 0 - b _080FB0D6 -_080FB0D4: - movs r0, 0x1 -_080FB0D6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80FB0B0 - - thumb_func_start sub_80FB0DC -sub_80FB0DC: @ 80FB0DC - push {lr} - adds r0, 0x78 - movs r1, 0xB4 - bl __modsi3 - cmp r0, 0 - beq _080FB0EE - movs r0, 0 - b _080FB0F2 -_080FB0EE: - movs r0, 0x1 - negs r0, r0 -_080FB0F2: - pop {r1} - bx r1 - thumb_func_end sub_80FB0DC - - thumb_func_start sub_80FB0F8 -sub_80FB0F8: @ 80FB0F8 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r5, r1, r0 - movs r1, 0 - ldrsh r0, [r5, r1] - adds r0, 0x1E - bl sub_80FB0DC - ldr r4, =gSaveBlock1Ptr - ldr r2, [r4] - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - lsls r0, 18 - movs r3, 0xC0 - lsls r3, 10 - orrs r0, r3 - asrs r0, 16 - str r0, [sp] - movs r0, 0x1 - movs r3, 0x3 - bl sub_808E82C - movs r3, 0 - ldrsh r0, [r5, r3] - bl sub_80FB0DC - ldr r2, [r4] - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - lsls r0, 17 - ldr r3, =0xfffd0000 - adds r0, r3 - asrs r0, 16 - str r0, [sp] - movs r0, 0x2 - movs r3, 0 - bl sub_808E82C - movs r1, 0 - ldrsh r0, [r5, r1] - bl sub_80FB0DC - ldr r2, [r4] - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - movs r4, 0 - movs r3, 0x3 - negs r3, r3 - lsls r0, 18 - asrs r0, 16 - str r0, [sp] - movs r0, 0x3 - bl sub_808E82C - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - lsls r0, 16 - ldr r1, =0x75300000 - cmp r0, r1 - bne _080FB180 - strh r4, [r5] -_080FB180: - movs r3, 0 - ldrsh r0, [r5, r3] - bl sub_80FB0B0 - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl SetCameraPanning - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80FB0F8 - - thumb_func_start sub_80FB1AC -sub_80FB1AC: @ 80FB1AC - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r3, r0, 3 - ldr r4, =gTasks + 0x8 - adds r7, r3, r4 - ldrh r1, [r7] - adds r1, 0x1 - strh r1, [r7] - ldrh r0, [r7, 0x4] - adds r0, 0x1 - strh r0, [r7, 0x4] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x5 - ble _080FB1DC - movs r0, 0 - strh r0, [r7] - ldrh r0, [r7, 0x2] - adds r0, 0x1 - strh r0, [r7, 0x2] -_080FB1DC: - ldrh r0, [r7, 0x2] - cmp r0, 0x13 - bne _080FB1F0 - adds r0, r2, 0 - bl DestroyTask - b _080FB2A8 - .pool -_080FB1F0: - ldr r2, =gUnknown_0858E898 - movs r1, 0x2 - ldrsh r0, [r7, r1] - adds r0, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x2 - bne _080FB20C - adds r0, r4, 0 - subs r0, 0x8 - adds r0, r3, r0 - ldr r1, =sub_80FB2C0 - str r1, [r0] -_080FB20C: - movs r4, 0x2 - ldrsh r0, [r7, r4] - adds r0, r2 - movs r5, 0 - ldrsb r5, [r0, r5] - lsls r5, 16 - lsrs r5, 16 - movs r1, 0x4 - ldrsh r0, [r7, r1] - bl sub_80FB0B0 - adds r1, r0, 0 - lsls r5, 16 - asrs r5, 16 - lsls r1, 16 - asrs r1, 16 - adds r0, r5, 0 - bl SetCameraPanning - movs r4, 0x4 - ldrsh r0, [r7, r4] - adds r0, 0x1E - bl sub_80FB0DC - ldr r6, =gSaveBlock1Ptr - ldr r2, [r6] - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - movs r3, 0x3 - subs r3, r5 - lsls r3, 16 - asrs r3, 16 - lsls r0, 18 - movs r4, 0xC0 - lsls r4, 10 - orrs r0, r4 - asrs r0, 16 - str r0, [sp] - movs r0, 0x1 - bl sub_808E82C - movs r1, 0x4 - ldrsh r0, [r7, r1] - bl sub_80FB0DC - ldr r2, [r6] - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - negs r3, r5 - lsls r3, 16 - asrs r3, 16 - lsls r0, 17 - ldr r4, =0xfffd0000 - adds r0, r4 - asrs r0, 16 - str r0, [sp] - movs r0, 0x2 - bl sub_808E82C - movs r1, 0x4 - ldrsh r0, [r7, r1] - bl sub_80FB0DC - ldr r2, [r6] - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - movs r4, 0x3 - negs r4, r4 - adds r3, r4, 0 - subs r3, r5 - lsls r3, 16 - asrs r3, 16 - lsls r0, 18 - asrs r0, 16 - str r0, [sp] - movs r0, 0x3 - bl sub_808E82C -_080FB2A8: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80FB1AC - - thumb_func_start sub_80FB2C0 -sub_80FB2C0: @ 80FB2C0 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - adds r3, r0, 0 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r2, r0, r1 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _080FB2F0 - movs r0, 0 - strh r0, [r2] - ldrh r0, [r2, 0x2] - adds r0, 0x1 - strh r0, [r2, 0x2] -_080FB2F0: - ldrh r0, [r2, 0x2] - cmp r0, 0x13 - bne _080FB304 - adds r0, r3, 0 - bl DestroyTask - b _080FB358 - .pool -_080FB304: - ldr r1, =gUnknown_0858E898 - movs r3, 0x2 - ldrsh r0, [r2, r3] - adds r0, r1 - movs r1, 0 - mov r8, r1 - movs r6, 0 - ldrsb r6, [r0, r6] - adds r0, r6, 0 - bl SetCameraPanning - ldr r5, =gSaveBlock1Ptr - ldr r0, [r5] - ldrb r1, [r0, 0x5] - ldrb r2, [r0, 0x4] - movs r3, 0x3 - subs r3, r6 - movs r0, 0x3 - str r0, [sp] - movs r0, 0x1 - bl sub_808E82C - ldr r0, [r5] - ldrb r1, [r0, 0x5] - ldrb r2, [r0, 0x4] - negs r3, r6 - mov r4, r8 - subs r4, 0x3 - str r4, [sp] - movs r0, 0x2 - bl sub_808E82C - ldr r0, [r5] - ldrb r1, [r0, 0x5] - ldrb r2, [r0, 0x4] - subs r4, r6 - mov r3, r8 - str r3, [sp] - movs r0, 0x3 - adds r3, r4, 0 - bl sub_808E82C -_080FB358: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80FB2C0 - - thumb_func_start sub_80FB36C -sub_80FB36C: @ 80FB36C - 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 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0x5 - bls _080FB386 - b _080FB4D8 -_080FB386: - lsls r0, 2 - ldr r1, =_080FB398 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080FB398: - .4byte _080FB3B0 - .4byte _080FB3E8 - .4byte _080FB404 - .4byte _080FB450 - .4byte _080FB474 - .4byte _080FB492 -_080FB3B0: - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5A - beq _080FB3C0 - b _080FB4D8 -_080FB3C0: - movs r0, 0 - bl SetCameraPanningCallback - movs r0, 0 - strh r0, [r4, 0x2] - ldr r0, =sub_80FB0F8 - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x4] - movs r0, 0x1 - strh r0, [r4] - movs r0, 0x31 - bl PlaySE - b _080FB4D8 - .pool -_080FB3E8: - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x96 - bne _080FB4D8 - bl pal_fill_black - movs r0, 0 - strh r0, [r4, 0x2] - movs r0, 0x2 - strh r0, [r4] - b _080FB4D8 -_080FB404: - ldrh r0, [r4, 0x2] - adds r3, r0, 0x1 - strh r3, [r4, 0x2] - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - bne _080FB4D8 - lsls r1, r3, 16 - movs r0, 0x96 - lsls r0, 17 - cmp r1, r0 - ble _080FB4D8 - strh r2, [r4, 0x2] - ldrb r0, [r4, 0x4] - bl DestroyTask - ldr r0, =sub_80FB1AC - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x6] - movs r0, 0x3 - strh r0, [r4] - movs r0, 0x32 - bl PlaySE - b _080FB4D8 - .pool -_080FB450: - ldr r2, =gTasks - movs r0, 0x6 - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r5, [r0, 0x4] - cmp r5, 0 - bne _080FB4D8 - bl InstallCameraPanAheadCallback - strh r5, [r4, 0x2] - movs r0, 0x4 - strh r0, [r4] - b _080FB4D8 - .pool -_080FB474: - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5A - bne _080FB4D8 - movs r0, 0x33 - bl PlaySE - movs r0, 0 - strh r0, [r4, 0x2] - movs r0, 0x5 - strh r0, [r4] - b _080FB4D8 -_080FB492: - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x78 - bne _080FB4D8 - movs r2, 0x82 - lsls r2, 2 - movs r0, 0xB - movs r1, 0x8 - bl MapGridSetMetatileIdAt - movs r2, 0x84 - lsls r2, 2 - movs r0, 0xB - movs r1, 0x9 - bl MapGridSetMetatileIdAt - movs r2, 0x86 - lsls r2, 2 - movs r0, 0xB - movs r1, 0xA - bl MapGridSetMetatileIdAt - bl DrawWholeMapView - movs r0, 0x34 - bl PlaySE - adds r0, r5, 0 - bl DestroyTask - bl ScriptContext2_Disable -_080FB4D8: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80FB36C - - thumb_func_start sub_80FB4E0 -sub_80FB4E0: @ 80FB4E0 - push {lr} - sub sp, 0x4 - ldr r2, =0x0000020d - movs r0, 0xB - movs r1, 0x8 - bl MapGridSetMetatileIdAt - ldr r2, =0x00000215 - movs r0, 0xB - movs r1, 0x9 - bl MapGridSetMetatileIdAt - ldr r2, =0x0000021d - movs r0, 0xB - movs r1, 0xA - bl MapGridSetMetatileIdAt - bl DrawWholeMapView - bl ScriptContext2_Enable - movs r0, 0 - str r0, [sp] - ldr r1, =gPlttBufferFaded - ldr r2, =0x01000100 - mov r0, sp - bl CpuFastSet - ldr r0, =sub_80FB36C - movs r1, 0xA - bl CreateTask - add sp, 0x4 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80FB4E0 - - thumb_func_start sub_80FB540 -sub_80FB540: @ 80FB540 - push {r4-r6,lr} - sub sp, 0x4 - ldr r0, =sub_80FB36C - bl FuncIsActiveTask - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - bne _080FB58A - ldr r4, =gSaveBlock1Ptr - ldr r0, [r4] - ldrb r1, [r0, 0x5] - ldrb r2, [r0, 0x4] - movs r0, 0x3 - str r0, [sp] - movs r0, 0x1 - movs r3, 0x3 - bl sub_808E82C - ldr r0, [r4] - ldrb r1, [r0, 0x5] - ldrb r2, [r0, 0x4] - movs r5, 0x3 - negs r5, r5 - str r5, [sp] - movs r0, 0x2 - movs r3, 0 - bl sub_808E82C - ldr r0, [r4] - ldrb r1, [r0, 0x5] - ldrb r2, [r0, 0x4] - str r6, [sp] - movs r0, 0x3 - adds r3, r5, 0 - bl sub_808E82C -_080FB58A: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80FB540 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/tv.s b/asm/tv.s index 2ebdfc0a1..d61392fa1 100644 --- a/asm/tv.s +++ b/asm/tv.s @@ -7530,7 +7530,7 @@ sub_80EFDDC: @ 80EFDDC mov r1, r10 adds r2, r5, 0 adds r3, r4, 0 - bl do_choose_name_or_words_screen + bl DoNamingScreen add sp, 0x8 pop {r3-r5} mov r8, r3 @@ -7604,7 +7604,7 @@ sub_80EFEC4: @ 80EFEC4 mov r1, r8 adds r2, r5, 0 adds r3, r4, 0 - bl do_choose_name_or_words_screen + bl DoNamingScreen add sp, 0x8 pop {r3} mov r8, r3 @@ -7811,7 +7811,7 @@ GetMomOrDadStringForTVMessage: @ 80F00A4 cmp r0, 0 bne _080F0104 ldr r0, =gStringVar1 - ldr r1, =gUnknown_085EAD08 + ldr r1, =gText_Mom bl StringCopy ldr r0, =0x00004003 movs r1, 0x1 @@ -7824,7 +7824,7 @@ _080F00EC: cmp r0, 0x2 bne _080F0104 ldr r0, =gStringVar1 - ldr r1, =gUnknown_085EAD08 + ldr r1, =gText_Mom bl StringCopy ldr r0, =0x00004003 movs r1, 0x1 @@ -7859,13 +7859,13 @@ _080F0104: bne _080F0158 _080F0142: ldr r0, =gStringVar1 - ldr r1, =gUnknown_085EAD08 + ldr r1, =gText_Mom bl StringCopy b _080F01A8 .pool _080F0158: ldr r0, =gStringVar1 - ldr r1, =gUnknown_085EAD04 + ldr r1, =gText_Dad bl StringCopy b _080F01A8 .pool @@ -7878,7 +7878,7 @@ _080F016C: cmp r0, 0 beq _080F0198 ldr r0, =gStringVar1 - ldr r1, =gUnknown_085EAD08 + ldr r1, =gText_Mom bl StringCopy adds r0, r4, 0 movs r1, 0x1 @@ -7887,7 +7887,7 @@ _080F016C: .pool _080F0198: ldr r0, =gStringVar1 - ldr r1, =gUnknown_085EAD04 + ldr r1, =gText_Dad bl StringCopy adds r0, r4, 0 movs r1, 0x2 @@ -10790,13 +10790,13 @@ _080F1A40: cmp r0, 0x32 bne _080F1A58 ldr r0, =gStringVar1 - ldr r1, =gUnknown_085EAEB1 + ldr r1, =gText_Lv50 bl StringCopy b _080F1A60 .pool _080F1A58: ldr r0, =gStringVar1 - ldr r1, =gUnknown_085EAEB8 + ldr r1, =gText_OpenLevel bl StringCopy _080F1A60: ldrh r1, [r4, 0x16] @@ -12536,31 +12536,31 @@ _080F2C08: .4byte _080F2C6C _080F2C1C: ldr r0, =gStringVar1 - ldr r1, =gUnknown_085EB0E8 + ldr r1, =gText_Cool bl StringCopy b _080F2C74 .pool _080F2C30: ldr r0, =gStringVar1 - ldr r1, =gUnknown_085EB0ED + ldr r1, =gText_Beauty bl StringCopy b _080F2C74 .pool _080F2C44: ldr r0, =gStringVar1 - ldr r1, =gUnknown_085EB0F4 + ldr r1, =gText_Cute bl StringCopy b _080F2C74 .pool _080F2C58: ldr r0, =gStringVar1 - ldr r1, =gUnknown_085EB0F9 + ldr r1, =gText_Smart bl StringCopy b _080F2C74 .pool _080F2C6C: ldr r0, =gStringVar1 - ldr r1, =gUnknown_085EB0FF + ldr r1, =gText_Tough bl StringCopy _080F2C74: ldr r0, =gStringVar2 @@ -13154,13 +13154,13 @@ _080F31CA: cmp r0, 0 bne _080F3200 ldr r0, =gStringVar3 - ldr r1, =gUnknown_085ECB64 + ldr r1, =gText_Single bl StringCopy b _080F3208 .pool _080F3200: ldr r0, =gStringVar3 - ldr r1, =gUnknown_085ECB6B + ldr r1, =gText_Double bl StringCopy _080F3208: ldr r1, =gUnknown_0203A030 @@ -13369,38 +13369,38 @@ _080F3430: .4byte _080F3494 _080F3444: ldr r0, =gStringVar1 - ldr r1, =gUnknown_085ECB48 + ldr r1, =gText_Spicy2 bl StringCopy b _080F349C .pool _080F3458: ldr r0, =gStringVar1 - ldr r1, =gUnknown_085ECB4E + ldr r1, =gText_Dry2 bl StringCopy b _080F349C .pool _080F346C: ldr r0, =gStringVar1 - ldr r1, =gUnknown_085ECB52 + ldr r1, =gText_Sweet2 bl StringCopy b _080F349C .pool _080F3480: ldr r0, =gStringVar1 - ldr r1, =gUnknown_085ECB58 + ldr r1, =gText_Bitter2 bl StringCopy b _080F349C .pool _080F3494: ldr r0, =gStringVar1 - ldr r1, =gUnknown_085ECB5F + ldr r1, =gText_Sour2 bl StringCopy _080F349C: ldrb r0, [r4, 0x2] cmp r0, 0x18 bls _080F34BC ldr r0, =gStringVar2 - ldr r1, =gUnknown_085ECB2A + ldr r1, =gText_Excellent bl StringCopy b _080F34DC .pool @@ -13408,13 +13408,13 @@ _080F34BC: cmp r0, 0x16 bls _080F34D4 ldr r0, =gStringVar2 - ldr r1, =gUnknown_085ECB20 + ldr r1, =gText_VeryGood bl StringCopy b _080F34DC .pool _080F34D4: ldr r0, =gStringVar2 - ldr r1, =gUnknown_085ECB1B + ldr r1, =gText_Good bl StringCopy _080F34DC: ldr r0, =gStringVar3 @@ -13454,38 +13454,38 @@ _080F3524: .4byte _080F3588 _080F3538: ldr r0, =gStringVar1 - ldr r1, =gUnknown_085ECB48 + ldr r1, =gText_Spicy2 bl StringCopy b _080F3590 .pool _080F354C: ldr r0, =gStringVar1 - ldr r1, =gUnknown_085ECB4E + ldr r1, =gText_Dry2 bl StringCopy b _080F3590 .pool _080F3560: ldr r0, =gStringVar1 - ldr r1, =gUnknown_085ECB52 + ldr r1, =gText_Sweet2 bl StringCopy b _080F3590 .pool _080F3574: ldr r0, =gStringVar1 - ldr r1, =gUnknown_085ECB58 + ldr r1, =gText_Bitter2 bl StringCopy b _080F3590 .pool _080F3588: ldr r0, =gStringVar1 - ldr r1, =gUnknown_085ECB5F + ldr r1, =gText_Sour2 bl StringCopy _080F3590: ldrb r0, [r4, 0x2] cmp r0, 0x10 bls _080F35B0 ldr r0, =gStringVar2 - ldr r1, =gUnknown_085ECB34 + ldr r1, =gText_SoSo bl StringCopy b _080F35D0 .pool @@ -13493,13 +13493,13 @@ _080F35B0: cmp r0, 0xD bls _080F35C8 ldr r0, =gStringVar2 - ldr r1, =gUnknown_085ECB3A + ldr r1, =gText_Bad bl StringCopy b _080F35D0 .pool _080F35C8: ldr r0, =gStringVar2 - ldr r1, =gUnknown_085ECB3E + ldr r1, =gText_TheWorst bl StringCopy _080F35D0: ldr r0, =gStringVar3 @@ -14418,13 +14418,13 @@ _080F3ECC: .pool _080F3EE8: ldr r0, =gStringVar2 - ldr r1, =gUnknown_085ECB0C + ldr r1, =gText_Slots bl StringCopy b _080F3F04 .pool _080F3EFC: ldr r0, =gStringVar2 - ldr r1, =gUnknown_085ECB12 + ldr r1, =gText_Roulette bl StringCopy _080F3F04: ldrb r1, [r4, 0x2] @@ -14455,13 +14455,13 @@ _080F3F28: .pool _080F3F44: ldr r0, =gStringVar2 - ldr r1, =gUnknown_085ECB0C + ldr r1, =gText_Slots bl StringCopy b _080F3F60 .pool _080F3F58: ldr r0, =gStringVar2 - ldr r1, =gUnknown_085ECB12 + ldr r1, =gText_Roulette bl StringCopy _080F3F60: ldrh r1, [r4, 0x4] @@ -14485,13 +14485,13 @@ _080F3F78: .pool _080F3F94: ldr r0, =gStringVar2 - ldr r1, =gUnknown_085ECB0C + ldr r1, =gText_Slots bl StringCopy b _080F3FB0 .pool _080F3FA8: ldr r0, =gStringVar2 - ldr r1, =gUnknown_085ECB12 + ldr r1, =gText_Roulette bl StringCopy _080F3FB0: ldrh r1, [r4, 0x4] @@ -14517,13 +14517,13 @@ _080F3FCC: .pool _080F3FE8: ldr r0, =gStringVar2 - ldr r1, =gUnknown_085ECB12 + ldr r1, =gText_Roulette bl StringCopy b _080F4004 .pool _080F3FFC: ldr r0, =gStringVar2 - ldr r1, =gUnknown_085ECB0C + ldr r1, =gText_Slots bl StringCopy _080F4004: bl TVShowDone @@ -14911,7 +14911,7 @@ _080F4414: ldr r0, =gStringVar2 ldrb r1, [r5, 0x4] lsls r1, 5 - ldr r2, =gUnknown_085A5C09 + ldr r2, =gDecorations + 1 adds r1, r2 bl StringCopy ldrb r0, [r5, 0x3] @@ -14932,7 +14932,7 @@ _080F4448: ldr r0, =gStringVar2 ldrb r1, [r5, 0x5] lsls r1, 5 - ldr r2, =gUnknown_085A5C09 + ldr r2, =gDecorations + 1 adds r1, r2 bl StringCopy ldrb r1, [r5, 0x3] @@ -14970,7 +14970,7 @@ _080F449C: ldr r0, =gStringVar2 ldrb r1, [r5, 0x6] lsls r1, 5 - ldr r4, =gUnknown_085A5C09 + ldr r4, =gDecorations + 1 adds r1, r4 bl StringCopy ldr r0, =gStringVar3 @@ -14983,7 +14983,7 @@ _080F44C0: ldr r0, =gStringVar2 ldrb r1, [r5, 0x6] lsls r1, 5 - ldr r2, =gUnknown_085A5C09 + ldr r2, =gDecorations + 1 adds r1, r2 _080F44CA: bl StringCopy @@ -15097,7 +15097,7 @@ DoTVShowPokemonLotterWinnerFlashReport: @ 80F45A0 cmp r0, 0 bne _080F45FC ldr r0, =gStringVar2 - ldr r1, =gUnknown_085ECB72 + ldr r1, =gText_Jackpot bl StringCopy b _080F4634 .pool @@ -15105,7 +15105,7 @@ _080F45FC: cmp r0, 0x1 bne _080F4614 ldr r0, =gStringVar2 - ldr r1, =gUnknown_085ECB7A + ldr r1, =gText_First bl StringCopy b _080F4634 .pool @@ -15113,13 +15113,13 @@ _080F4614: cmp r0, 0x2 bne _080F462C ldr r0, =gStringVar2 - ldr r1, =gUnknown_085ECB80 + ldr r1, =gText_Second bl StringCopy b _080F4634 .pool _080F462C: ldr r0, =gStringVar2 - ldr r1, =gUnknown_085ECB87 + ldr r1, =gText_Third bl StringCopy _080F4634: ldr r4, =gStringVar3 diff --git a/asm/unk_text_util_2.s b/asm/unk_text_util_2.s deleted file mode 100755 index 7f1a5ef70..000000000 --- a/asm/unk_text_util_2.s +++ /dev/null @@ -1,583 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start Font6Func -@ int Font6Func(struct TextPrinter *x) -Font6Func: @ 81BA250 - push {r4-r6,lr} - adds r6, r0, 0 - adds r4, r6, 0 - adds r4, 0x14 - ldrb r0, [r6, 0x1C] - cmp r0, 0x6 - bls _081BA260 - b _081BA660 -_081BA260: - lsls r0, 2 - ldr r1, =_081BA270 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081BA270: - .4byte _081BA28C - .4byte _081BA554 - .4byte _081BA566 - .4byte _081BA590 - .4byte _081BA5C8 - .4byte _081BA63C - .4byte _081BA64E -_081BA28C: - ldr r2, =gMain - ldrh r1, [r2, 0x2C] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _081BA2A6 - ldrb r1, [r4] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _081BA2A6 - movs r0, 0 - strb r0, [r6, 0x1E] -_081BA2A6: - ldrb r1, [r6, 0x1E] - cmp r1, 0 - beq _081BA2E8 - ldrb r0, [r6, 0x1D] - cmp r0, 0 - beq _081BA2E8 - subs r0, r1, 0x1 - strb r0, [r6, 0x1E] - ldr r0, =gTextFlags - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _081BA2C4 - b _081BA50E -_081BA2C4: - ldrh r1, [r2, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _081BA2D0 - b _081BA50E -_081BA2D0: - ldrb r0, [r4] - movs r1, 0x10 - orrs r0, r1 - strb r0, [r4] - movs r0, 0 - strb r0, [r6, 0x1E] - b _081BA50E - .pool -_081BA2E8: - ldr r2, =gTextFlags - ldrb r1, [r2] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _081BA2FC - movs r0, 0x3 - b _081BA2FE - .pool -_081BA2FC: - ldrb r0, [r6, 0x1D] -_081BA2FE: - strb r0, [r6, 0x1E] - ldr r0, [r6] - ldrb r3, [r0] - adds r0, 0x1 - str r0, [r6] - adds r0, r3, 0 - subs r0, 0xF8 - cmp r0, 0x7 - bls _081BA312 - b _081BA52E -_081BA312: - lsls r0, 2 - ldr r1, =_081BA320 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081BA320: - .4byte _081BA524 - .4byte _081BA512 - .4byte _081BA504 - .4byte _081BA500 - .4byte _081BA36E - .4byte _081BA368 - .4byte _081BA340 - .4byte _081BA660 -_081BA340: - ldrb r0, [r6, 0x6] - strb r0, [r6, 0x8] - ldrb r1, [r6, 0x5] - ldr r0, =gFonts - ldr r2, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r6, 0xB] - ldrb r0, [r0, 0x5] - adds r1, r0 - ldrb r0, [r6, 0x9] - adds r0, r1 - strb r0, [r6, 0x9] -_081BA35E: - movs r0, 0x2 - b _081BA662 - .pool -_081BA368: - ldr r0, [r6] - adds r0, 0x1 - b _081BA4C4 -_081BA36E: - ldr r0, [r6] - ldrb r3, [r0] - adds r0, 0x1 - str r0, [r6] - subs r0, r3, 0x1 - cmp r0, 0xF - bls _081BA37E - b _081BA52E -_081BA37E: - lsls r0, 2 - ldr r1, =_081BA38C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081BA38C: - .4byte _081BA3CC - .4byte _081BA3EE - .4byte _081BA412 - .4byte _081BA42C - .4byte _081BA478 - .4byte _081BA47E - .4byte _081BA35E - .4byte _081BA498 - .4byte _081BA4A8 - .4byte _081BA4BC - .4byte _081BA4C0 - .4byte _081BA4C8 - .4byte _081BA4D2 - .4byte _081BA4DE - .4byte _081BA4EE - .4byte _081BA4C0 -_081BA3CC: - ldr r2, [r6] - ldrb r1, [r2] - lsls r1, 4 - ldrb r3, [r6, 0xC] - movs r0, 0xF - ands r0, r3 - orrs r0, r1 - strb r0, [r6, 0xC] - adds r2, 0x1 - str r2, [r6] - lsls r0, 24 - lsrs r0, 28 - ldrb r2, [r6, 0xD] - lsls r1, r2, 28 - lsrs r1, 28 - lsrs r2, 4 - b _081BA472 -_081BA3EE: - ldr r1, [r6] - ldrb r2, [r1] - movs r0, 0xF - ands r0, r2 - ldrb r3, [r6, 0xD] - movs r2, 0x10 - negs r2, r2 - ands r2, r3 - orrs r2, r0 - strb r2, [r6, 0xD] - adds r1, 0x1 - str r1, [r6] - ldrb r0, [r6, 0xC] - lsrs r0, 4 - lsls r1, r2, 28 - lsrs r1, 28 - lsrs r2, 4 - b _081BA472 -_081BA412: - ldr r1, [r6] - ldrb r0, [r1] - lsls r0, 4 - ldrb r3, [r6, 0xD] - movs r2, 0xF - ands r2, r3 - orrs r2, r0 - strb r2, [r6, 0xD] - adds r1, 0x1 - str r1, [r6] - ldrb r0, [r6, 0xC] - lsrs r0, 4 - b _081BA46A -_081BA42C: - ldr r3, [r6] - ldrb r1, [r3] - lsls r1, 4 - ldrb r4, [r6, 0xC] - movs r2, 0xF - adds r0, r2, 0 - ands r0, r4 - orrs r0, r1 - strb r0, [r6, 0xC] - adds r5, r3, 0x1 - str r5, [r6] - ldrb r3, [r3, 0x1] - adds r1, r2, 0 - ands r1, r3 - ldrb r4, [r6, 0xD] - movs r3, 0x10 - negs r3, r3 - ands r3, r4 - orrs r3, r1 - strb r3, [r6, 0xD] - adds r4, r5, 0x1 - str r4, [r6] - ldrb r1, [r5, 0x1] - lsls r1, 4 - ands r2, r3 - orrs r2, r1 - strb r2, [r6, 0xD] - adds r4, 0x1 - str r4, [r6] - lsls r0, 24 - lsrs r0, 28 -_081BA46A: - lsls r1, r2, 28 - lsrs r1, 28 - lsls r2, 24 - lsrs r2, 28 -_081BA472: - bl GenerateFontHalfRowLookupTable - b _081BA35E -_081BA478: - ldr r0, [r6] - adds r0, 0x1 - b _081BA4C4 -_081BA47E: - ldr r0, [r6] - ldrb r0, [r0] - movs r1, 0xF - ands r1, r0 - ldrb r2, [r4] - movs r0, 0x10 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4] - ldr r0, [r6] - adds r0, 0x1 - b _081BA4C4 -_081BA498: - ldr r0, [r6] - ldrb r1, [r0] - strb r1, [r6, 0x1E] - adds r0, 0x1 - str r0, [r6] - movs r0, 0x6 - strb r0, [r6, 0x1C] - b _081BA35E -_081BA4A8: - movs r0, 0x1 - strb r0, [r6, 0x1C] - ldrb r1, [r2] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _081BA50E - movs r0, 0 - strb r0, [r4, 0x2] - b _081BA50E -_081BA4BC: - movs r0, 0x5 - b _081BA64A -_081BA4C0: - ldr r0, [r6] - adds r0, 0x2 -_081BA4C4: - str r0, [r6] - b _081BA35E -_081BA4C8: - ldr r1, [r6] - adds r0, r1, 0x1 - str r0, [r6] - ldrb r3, [r1, 0x1] - b _081BA52E -_081BA4D2: - ldr r1, [r6] - ldrb r0, [r1] - ldrb r2, [r6, 0x6] - adds r0, r2 - strb r0, [r6, 0x8] - b _081BA4E8 -_081BA4DE: - ldr r1, [r6] - ldrb r0, [r1] - ldrb r2, [r6, 0x7] - adds r0, r2 - strb r0, [r6, 0x9] -_081BA4E8: - adds r1, 0x1 - str r1, [r6] - b _081BA35E -_081BA4EE: - ldrb r0, [r6, 0x4] - ldrb r2, [r6, 0xD] - lsls r2, 28 - lsrs r1, r2, 4 - orrs r1, r2 - lsrs r1, 24 - bl FillWindowPixelBuffer - b _081BA35E -_081BA500: - movs r0, 0x2 - b _081BA506 -_081BA504: - movs r0, 0x3 -_081BA506: - strb r0, [r6, 0x1C] - adds r0, r6, 0 - bl TextPrinterInitDownArrowCounters -_081BA50E: - movs r0, 0x3 - b _081BA662 -_081BA512: - ldr r0, [r6] - ldrb r3, [r0] - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - orrs r3, r1 - adds r0, 0x1 - str r0, [r6] - b _081BA52E -_081BA524: - ldr r0, [r6] - adds r0, 0x1 - str r0, [r6] - movs r0, 0 - b _081BA662 -_081BA52E: - adds r0, r3, 0 - bl DecompressGlyphFont6 - adds r0, r6, 0 - bl CopyGlyphToWindow - ldr r0, =gUnknown_03002F90 - adds r0, 0x80 - ldrb r1, [r6, 0xA] - ldrb r0, [r0] - adds r1, r0 - ldrb r0, [r6, 0x8] - adds r0, r1 - strb r0, [r6, 0x8] - movs r0, 0 - b _081BA662 - .pool -_081BA554: - adds r0, r6, 0 - bl TextPrinterWait - lsls r0, 16 - cmp r0, 0 - beq _081BA50E - movs r0, 0 - strb r0, [r6, 0x1C] - b _081BA50E -_081BA566: - adds r0, r6, 0 - bl TextPrinterWaitWithDownArrow - lsls r0, 16 - cmp r0, 0 - beq _081BA50E - ldrb r0, [r6, 0x4] - ldrb r2, [r6, 0xD] - lsls r2, 28 - lsrs r1, r2, 4 - orrs r1, r2 - lsrs r1, 24 - bl FillWindowPixelBuffer - ldrb r0, [r6, 0x6] - movs r1, 0 - strb r0, [r6, 0x8] - ldrb r0, [r6, 0x7] - strb r0, [r6, 0x9] - strb r1, [r6, 0x1C] - b _081BA50E -_081BA590: - adds r0, r6, 0 - bl TextPrinterWaitWithDownArrow - lsls r0, 16 - cmp r0, 0 - beq _081BA50E - adds r0, r6, 0 - bl TextPrinterClearDownArrow - ldrb r1, [r6, 0x5] - ldr r0, =gFonts - ldr r2, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r6, 0xB] - ldrb r0, [r0, 0x5] - adds r1, r0 - strb r1, [r6, 0x1F] - ldrb r0, [r6, 0x6] - strb r0, [r6, 0x8] - movs r0, 0x4 - strb r0, [r6, 0x1C] - b _081BA50E - .pool -_081BA5C8: - ldrb r2, [r6, 0x1F] - cmp r2, 0 - beq _081BA638 - ldr r4, =gUnknown_08616124 - ldr r5, =gSaveBlock2Ptr - ldr r0, [r5] - ldrb r0, [r0, 0x14] - lsls r1, r0, 29 - lsrs r0, r1, 29 - adds r0, r4 - ldrb r0, [r0] - cmp r2, r0 - bcs _081BA604 - ldrb r0, [r6, 0x4] - ldrb r1, [r6, 0xD] - lsls r1, 28 - lsrs r3, r1, 4 - orrs r3, r1 - lsrs r3, 24 - movs r1, 0 - bl ScrollWindow - movs r0, 0 - strb r0, [r6, 0x1F] - b _081BA62E - .pool -_081BA604: - ldrb r0, [r6, 0x4] - lsrs r1, 29 - adds r1, r4 - ldrb r2, [r1] - ldrb r1, [r6, 0xD] - lsls r1, 28 - lsrs r3, r1, 4 - orrs r3, r1 - lsrs r3, 24 - movs r1, 0 - bl ScrollWindow - ldr r0, [r5] - ldrb r0, [r0, 0x14] - lsls r0, 29 - lsrs r0, 29 - adds r0, r4 - ldrb r1, [r6, 0x1F] - ldrb r0, [r0] - subs r1, r0 - strb r1, [r6, 0x1F] -_081BA62E: - ldrb r0, [r6, 0x4] - movs r1, 0x2 - bl CopyWindowToVram - b _081BA50E -_081BA638: - strb r2, [r6, 0x1C] - b _081BA50E -_081BA63C: - bl IsSEPlaying - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _081BA64A - b _081BA50E -_081BA64A: - strb r0, [r6, 0x1C] - b _081BA50E -_081BA64E: - ldrb r0, [r6, 0x1E] - adds r1, r0, 0 - cmp r1, 0 - beq _081BA65C - subs r0, 0x1 - strb r0, [r6, 0x1E] - b _081BA50E -_081BA65C: - strb r1, [r6, 0x1C] - b _081BA50E -_081BA660: - movs r0, 0x1 -_081BA662: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end Font6Func - - thumb_func_start DecompressGlyphFont6 -DecompressGlyphFont6: @ 81BA668 - push {r4,r5,lr} - lsls r0, 16 - lsrs r2, r0, 19 - lsls r2, 9 - movs r1, 0xE0 - lsls r1, 11 - ands r1, r0 - lsrs r1, 11 - ldr r0, =gFont6BrailleGlyphs - adds r1, r0 - adds r5, r2, r1 - ldr r4, =gUnknown_03002F90 - adds r0, r5, 0 - adds r1, r4, 0 - bl DecompressGlyphTile - adds r0, r5, 0 - adds r0, 0x10 - adds r1, r4, 0 - adds r1, 0x20 - bl DecompressGlyphTile - movs r1, 0x80 - lsls r1, 1 - adds r0, r5, r1 - adds r1, r4, 0 - adds r1, 0x40 - bl DecompressGlyphTile - movs r1, 0x88 - lsls r1, 1 - adds r0, r5, r1 - adds r1, r4, 0 - adds r1, 0x60 - bl DecompressGlyphTile - adds r0, r4, 0 - adds r0, 0x80 - movs r1, 0x10 - strb r1, [r0] - adds r0, 0x1 - strb r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end DecompressGlyphFont6 - - thumb_func_start GetGlyphWidthFont6 -GetGlyphWidthFont6: @ 81BA6CC - movs r0, 0x10 - bx lr - thumb_func_end GetGlyphWidthFont6 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/unknown_task.s b/asm/unknown_task.s index e3526c809..99a614e37 100644 --- a/asm/unknown_task.s +++ b/asm/unknown_task.s @@ -275,23 +275,23 @@ _080BA21C: b _080BA24E .pool _080BA224: - ldr r0, =gUnknown_02022E18 + ldr r0, =gBattle_BG1_X b _080BA24E .pool _080BA22C: - ldr r0, =gUnknown_02022E1A + ldr r0, =gBattle_BG1_Y b _080BA24E .pool _080BA234: - ldr r0, =gUnknown_02022E1C + ldr r0, =gBattle_BG2_X b _080BA24E .pool _080BA23C: - ldr r0, =gUnknown_02022E1E + ldr r0, =gBattle_BG2_Y b _080BA24E .pool _080BA244: - ldr r0, =gUnknown_02022E20 + ldr r0, =gBattle_BG3_X b _080BA24E .pool _080BA24C: diff --git a/asm/use_pokeblock.s b/asm/use_pokeblock.s index 67441ee8b..20d23a878 100755 --- a/asm/use_pokeblock.s +++ b/asm/use_pokeblock.s @@ -1196,7 +1196,7 @@ sub_8166D44: @ 8166D44 bl GetMonData add r0, sp, 0xC bl StringGetEnd10 - ldr r1, =gUnknown_085EC7A0 + ldr r1, =gText_GetsAPokeBlockQuestion add r0, sp, 0xC bl StringAppend ldr r4, =gStringVar4 @@ -1426,7 +1426,7 @@ sub_8166F50: @ 8166F50 movs r1, 0x97 movs r2, 0xE bl sub_8098858 - ldr r2, =gUnknown_085EC800 + ldr r2, =gText_WontEatAnymore movs r0, 0x1 str r0, [sp] movs r0, 0 @@ -1503,13 +1503,13 @@ _08166FEC: ldr r1, [r0] adds r0, r4, 0 bl StringCopy - ldr r1, =gUnknown_085EC7E1 + ldr r1, =gText_WasEnhanced adds r0, r4, 0 bl StringAppend b _08167018 .pool _08167010: - ldr r1, =gUnknown_085EC7EF + ldr r1, =gText_NothingChanged adds r0, r4, 0 bl StringCopy _08167018: @@ -2895,7 +2895,7 @@ sub_8167BA0: @ 8167BA0 ldr r0, [r7] ldr r6, =0x0000804a adds r0, r6 - ldr r1, =gUnknown_085EBF8D + ldr r1, =gText_NatureSlash bl StringCopy ldr r1, =gNatureNamePointers lsls r4, 2 diff --git a/asm/walda_phrase.s b/asm/walda_phrase.s index 2f1f7da60..be754f386 100755 --- a/asm/walda_phrase.s +++ b/asm/walda_phrase.s @@ -22,7 +22,7 @@ walda_maybe: @ 81D99E4 adds r1, r4, 0 movs r2, 0 movs r3, 0 - bl do_choose_name_or_words_screen + bl DoNamingScreen add sp, 0x8 pop {r4} pop {r0} @@ -53,7 +53,7 @@ _081D9A44: bl sub_80D2578 cmp r0, 0 beq _081D9A5C - ldr r0, =gUnknown_085EE49A + ldr r0, =gText_Peekaboo bl sub_80D255C b _081D9A68 .pool @@ -70,7 +70,7 @@ _081D9A68: adds r1, r0, 0 adds r0, r4, 0 bl StringCopy - ldr r1, =gUnknown_03005DAC + ldr r1, =gFieldCallback ldr r0, =sub_80AF168 str r0, [r1] ldr r0, =c2_exit_to_overworld_2_switch diff --git a/asm/wallclock.s b/asm/wallclock.s index 0d6f05a23..f8cc87fe8 100644 --- a/asm/wallclock.s +++ b/asm/wallclock.s @@ -353,7 +353,7 @@ Cb2_StartWallClock: @ 81349F4 movs r0, 0x5A strh r0, [r1, 0x30] bl sub_813498C - ldr r2, =gUnknown_085EFAE0 + ldr r2, =gText_Confirm3 movs r0, 0x1 str r0, [sp] mov r1, r8 @@ -500,7 +500,7 @@ _08134BA4: ldrh r0, [r0, 0xC] strh r0, [r1, 0x30] bl sub_813498C - ldr r2, =gUnknown_085EFAE8 + ldr r2, =gText_Cancel4 movs r0, 0x1 str r0, [sp] mov r1, r9 @@ -683,7 +683,7 @@ sub_8134DC4: @ 8134DC4 adds r2, r5, 0 movs r3, 0xD bl SetWindowBorderStyle - ldr r2, =gUnknown_085EFAC6 + ldr r2, =gText_IsThisTheCorrectTime movs r0, 0x1 str r0, [sp] movs r0, 0 diff --git a/asm/wild_encounter.s b/asm/wild_encounter.s index 2c628a5e4..9b6c901f6 100644 --- a/asm/wild_encounter.s +++ b/asm/wild_encounter.s @@ -68,7 +68,7 @@ _080B4920: bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 - bl sub_8089660 + bl MetatileBehavior_IsSurfableAndNotWaterfall lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1424,7 +1424,7 @@ _080B539C: lsls r0, r6, 24 lsrs r4, r0, 24 adds r0, r4, 0 - bl sub_808952C + bl MetatileBehavior_IsLandWildEncounter lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1498,7 +1498,7 @@ _080B5418: .pool _080B543C: adds r0, r4, 0 - bl sub_8089558 + bl MetatileBehavior_IsWaterWildEncounter lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1509,7 +1509,7 @@ _080B543C: cmp r0, 0 beq _080B54FE adds r0, r4, 0 - bl sub_80894AC + bl MetatileBehavior_IsBridge lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1726,7 +1726,7 @@ _080B562C: bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 - bl sub_808952C + bl MetatileBehavior_IsLandWildEncounter lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1769,7 +1769,7 @@ _080B568C: bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 - bl sub_8089558 + bl MetatileBehavior_IsWaterWildEncounter lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 diff --git a/asmdiff.sh b/asmdiff.sh new file mode 100644 index 000000000..1d2141c32 --- /dev/null +++ b/asmdiff.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +OBJDUMP="$DEVKITARM/bin/arm-none-eabi-objdump -D -bbinary -marmv4t -Mforce-thumb" +OPTIONS="--start-address=$(($1)) --stop-address=$(($1 + $2))" +$OBJDUMP $OPTIONS baserom.gba > baserom.dump +$OBJDUMP $OPTIONS pokeemerald.gba > pokeemerald.dump +diff baserom.dump pokeemerald.dump diff --git a/charmap.txt b/charmap.txt index 4f2f10e0b..8fe4147cc 100644 --- a/charmap.txt +++ b/charmap.txt @@ -440,12 +440,14 @@ GREEN = 06 LIGHT_GREEN = 07 BLUE = 08 LIGHT_BLUE = 09 -BORDER_COLOR1 = 0A @ white -BORDER_COLOR2 = 0B @ white with a tinge of green -BORDER_COLOR3 = 0C @ white 2 -BORDER_COLOR4 = 0D @ aquamarine -BORDER_COLOR5 = 0E @ blue-green -BORDER_COLOR6 = 0F @ cerulean +@ these next colors can be set to anything arbitrary at runtime +@ usually though they'll have the textbox border colors as described below +DYNAMIC_COLOR1 = 0A @ white +DYNAMIC_COLOR2 = 0B @ white with a tinge of green +DYNAMIC_COLOR3 = 0C @ white 2 +DYNAMIC_COLOR4 = 0D @ aquamarine +DYNAMIC_COLOR5 = 0E @ blue-green +DYNAMIC_COLOR6 = 0F @ cerulean @ sound and music diff --git a/constants/constants.inc b/constants/constants.inc index 650ba4703..3928d63d6 100644 --- a/constants/constants.inc +++ b/constants/constants.inc @@ -13,6 +13,7 @@ .include "constants/trainer_constants.inc" .include "constants/battle_frontier_constants.inc" .include "constants/map_constants.inc" + .include "constants/map_object_constants.inc" .include "constants/berry_constants.inc" .include "constants/field_object_constants.inc" .include "constants/contest_move_effects.inc" diff --git a/constants/map_object_constants.inc b/constants/map_object_constants.inc new file mode 100644 index 000000000..014eb05c8 --- /dev/null +++ b/constants/map_object_constants.inc @@ -0,0 +1,230 @@ + .set MAP_OBJ_GFX_BRENDAN_NORMAL, 0 + .set MAP_OBJ_GFX_BRENDAN_MACH_BIKE, 1 + .set MAP_OBJ_GFX_BRENDAN_SURFING, 2 + .set MAP_OBJ_GFX_BRENDAN_FIELD_MOVE, 3 + .set MAP_OBJ_GFX_QUINTY_PLUMP, 4 + .set MAP_OBJ_GFX_LITTLE_BOY_1, 5 + .set MAP_OBJ_GFX_LITTLE_GIRL_1, 6 + .set MAP_OBJ_GFX_BOY_1, 7 + .set MAP_OBJ_GFX_GIRL_1, 8 + .set MAP_OBJ_GFX_BOY_2, 9 + .set MAP_OBJ_GFX_GIRL_2, 10 + .set MAP_OBJ_GFX_LITTLE_BOY_2, 11 + .set MAP_OBJ_GFX_LITTLE_GIRL_2, 12 + .set MAP_OBJ_GFX_BOY_3, 13 + .set MAP_OBJ_GFX_GIRL_3, 14 + .set MAP_OBJ_GFX_BOY_4, 15 + .set MAP_OBJ_GFX_WOMAN_1, 16 + .set MAP_OBJ_GFX_FAT_MAN, 17 + .set MAP_OBJ_GFX_WOMAN_2, 18 + .set MAP_OBJ_GFX_MAN_1, 19 + .set MAP_OBJ_GFX_WOMAN_3, 20 + .set MAP_OBJ_GFX_OLD_MAN_1, 21 + .set MAP_OBJ_GFX_OLD_WOMAN_1, 22 + .set MAP_OBJ_GFX_MAN_2, 23 + .set MAP_OBJ_GFX_WOMAN_4, 24 + .set MAP_OBJ_GFX_MAN_3, 25 + .set MAP_OBJ_GFX_WOMAN_5, 26 + .set MAP_OBJ_GFX_COOK, 27 + .set MAP_OBJ_GFX_WOMAN_6, 28 + .set MAP_OBJ_GFX_OLD_MAN_2, 29 + .set MAP_OBJ_GFX_OLD_WOMAN_2, 30 + .set MAP_OBJ_GFX_CAMPER, 31 + .set MAP_OBJ_GFX_PICNICKER, 32 + .set MAP_OBJ_GFX_MAN_4, 33 + .set MAP_OBJ_GFX_WOMAN_7, 34 + .set MAP_OBJ_GFX_YOUNGSTER, 35 + .set MAP_OBJ_GFX_BUG_CATCHER, 36 + .set MAP_OBJ_GFX_PSYCHIC_M, 37 + .set MAP_OBJ_GFX_SCHOOL_KID_M, 38 + .set MAP_OBJ_GFX_MANIAC, 39 + .set MAP_OBJ_GFX_HEX_MANIAC, 40 + .set MAP_OBJ_GFX_RAYQUAZA, 41 + .set MAP_OBJ_GFX_SWIMMER_M, 42 + .set MAP_OBJ_GFX_SWIMMER_F, 43 + .set MAP_OBJ_GFX_BLACK_BELT, 44 + .set MAP_OBJ_GFX_BEAUTY, 45 + .set MAP_OBJ_GFX_SCIENTIST_1, 46 + .set MAP_OBJ_GFX_LASS, 47 + .set MAP_OBJ_GFX_GENTLEMAN, 48 + .set MAP_OBJ_GFX_SAILOR, 49 + .set MAP_OBJ_GFX_FISHERMAN, 50 + .set MAP_OBJ_GFX_RUNNING_TRIATHLETE_M, 51 + .set MAP_OBJ_GFX_RUNNING_TRIATHLETE_F, 52 + .set MAP_OBJ_GFX_TUBER_F, 53 + .set MAP_OBJ_GFX_TUBER_M, 54 + .set MAP_OBJ_GFX_HIKER, 55 + .set MAP_OBJ_GFX_CYCLING_TRIATHLETE_M, 56 + .set MAP_OBJ_GFX_CYCLING_TRIATHLETE_F, 57 + .set MAP_OBJ_GFX_NURSE, 58 + .set MAP_OBJ_GFX_ITEM_BALL, 59 + .set MAP_OBJ_GFX_BERRY_TREE, 60 + .set MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES, 61 + .set MAP_OBJ_GFX_BERRY_TREE_LATE_STAGES, 62 + .set MAP_OBJ_GFX_BRENDAN_ACRO_BIKE, 63 + .set MAP_OBJ_GFX_PROF_BIRCH, 64 + .set MAP_OBJ_GFX_MAN_5, 65 + .set MAP_OBJ_GFX_MAN_6, 66 + .set MAP_OBJ_GFX_REPORTER_M, 67 + .set MAP_OBJ_GFX_REPORTER_F, 68 + .set MAP_OBJ_GFX_BARD, 69 + .set MAP_OBJ_GFX_HIPSTER, 70 + .set MAP_OBJ_GFX_TRADER, 71 + .set MAP_OBJ_GFX_STORYTELLER, 72 + .set MAP_OBJ_GFX_GIDDY, 73 + .set MAP_OBJ_GFX_UNUSED_MAUVILLE_OLD_MAN_1, 74 + .set MAP_OBJ_GFX_UNUSED_MAUVILLE_OLD_MAN_2, 75 + .set MAP_OBJ_GFX_UNUSED_NATU_DOLL, 76 + .set MAP_OBJ_GFX_UNUSED_MAGNEMITE_DOLL, 77 + .set MAP_OBJ_GFX_UNUSED_SQUIRTLE_DOLL, 78 + .set MAP_OBJ_GFX_UNUSED_WOOPER_DOLL, 79 + .set MAP_OBJ_GFX_UNUSED_PIKACHU_DOLL, 80 + .set MAP_OBJ_GFX_UNUSED_PORYGON2_DOLL, 81 + .set MAP_OBJ_GFX_CUTTABLE_TREE, 82 + .set MAP_OBJ_GFX_MART_EMPLOYEE, 83 + .set MAP_OBJ_GFX_ROOFTOP_SALE_WOMAN, 84 + .set MAP_OBJ_GFX_TEALA, 85 + .set MAP_OBJ_GFX_BREAKABLE_ROCK, 86 + .set MAP_OBJ_GFX_PUSHABLE_BOULDER, 87 + .set MAP_OBJ_GFX_MR_BRINEYS_BOAT, 88 + .set MAP_OBJ_GFX_MAY_NORMAL, 89 + .set MAP_OBJ_GFX_MAY_MACH_BIKE, 90 + .set MAP_OBJ_GFX_MAY_ACRO_BIKE, 91 + .set MAP_OBJ_GFX_MAY_SURFING, 92 + .set MAP_OBJ_GFX_MAY_FIELD_MOVE, 93 + .set MAP_OBJ_GFX_TRUCK, 94 + .set MAP_OBJ_GFX_MACHOKE_CARRYING_BOX, 95 + .set MAP_OBJ_GFX_MACHOKE_FACING_AWAY, 96 + .set MAP_OBJ_GFX_BIRCHS_BAG, 97 + .set MAP_OBJ_GFX_ZIGZAGOON, 98 + .set MAP_OBJ_GFX_ARTIST, 99 + .set MAP_OBJ_GFX_RIVAL_BRENDAN_NORMAL, 100 + .set MAP_OBJ_GFX_RIVAL_BRENDAN_MACH_BIKE, 101 + .set MAP_OBJ_GFX_RIVAL_BRENDAN_ACRO_BIKE, 102 + .set MAP_OBJ_GFX_RIVAL_BRENDAN_SURFING, 103 + .set MAP_OBJ_GFX_RIVAL_BRENDAN_FIELD_MOVE, 104 + .set MAP_OBJ_GFX_RIVAL_MAY_NORMAL, 105 + .set MAP_OBJ_GFX_RIVAL_MAY_MACH_BIKE, 106 + .set MAP_OBJ_GFX_RIVAL_MAY_ACRO_BIKE, 107 + .set MAP_OBJ_GFX_RIVAL_MAY_SURFING, 108 + .set MAP_OBJ_GFX_RIVAL_MAY_FIELD_MOVE, 109 + .set MAP_OBJ_GFX_CAMERAMAN, 110 + .set MAP_OBJ_GFX_BRENDAN_UNDERWATER, 111 + .set MAP_OBJ_GFX_MAY_UNDERWATER, 112 + .set MAP_OBJ_GFX_MOVING_BOX, 113 + .set MAP_OBJ_GFX_CABLE_CAR, 114 + .set MAP_OBJ_GFX_SCIENTIST_2, 115 + .set MAP_OBJ_GFX_MAN_7, 116 + .set MAP_OBJ_GFX_AQUA_MEMBER_M, 117 + .set MAP_OBJ_GFX_AQUA_MEMBER_F, 118 + .set MAP_OBJ_GFX_MAGMA_MEMBER_M, 119 + .set MAP_OBJ_GFX_MAGMA_MEMBER_F, 120 + .set MAP_OBJ_GFX_SIDNEY, 121 + .set MAP_OBJ_GFX_PHOEBE, 122 + .set MAP_OBJ_GFX_GLACIA, 123 + .set MAP_OBJ_GFX_DRAKE, 124 + .set MAP_OBJ_GFX_ROXANNE, 125 + .set MAP_OBJ_GFX_BRAWLY, 126 + .set MAP_OBJ_GFX_WATTSON, 127 + .set MAP_OBJ_GFX_FLANNERY, 128 + .set MAP_OBJ_GFX_NORMAN, 129 + .set MAP_OBJ_GFX_WINONA, 130 + .set MAP_OBJ_GFX_LIZA, 131 + .set MAP_OBJ_GFX_TATE, 132 + .set MAP_OBJ_GFX_WALLACE, 133 + .set MAP_OBJ_GFX_STEVEN, 134 + .set MAP_OBJ_GFX_WALLY, 135 + .set MAP_OBJ_GFX_LITTLE_BOY_3, 136 + .set MAP_OBJ_GFX_BRENDAN_FISHING, 137 + .set MAP_OBJ_GFX_MAY_FISHING, 138 + .set MAP_OBJ_GFX_HOT_SPRINGS_OLD_WOMAN, 139 + .set MAP_OBJ_GFX_SS_TIDAL, 140 + .set MAP_OBJ_GFX_SUBMARINE_SHADOW, 141 + .set MAP_OBJ_GFX_PICHU_DOLL, 142 + .set MAP_OBJ_GFX_PIKACHU_DOLL, 143 + .set MAP_OBJ_GFX_MARILL_DOLL, 144 + .set MAP_OBJ_GFX_TOGEPI_DOLL, 145 + .set MAP_OBJ_GFX_CYNDAQUIL_DOLL, 146 + .set MAP_OBJ_GFX_CHIKORITA_DOLL, 147 + .set MAP_OBJ_GFX_TOTODILE_DOLL, 148 + .set MAP_OBJ_GFX_JIGGLYPUFF_DOLL, 149 + .set MAP_OBJ_GFX_MEOWTH_DOLL, 150 + .set MAP_OBJ_GFX_CLEFAIRY_DOLL, 151 + .set MAP_OBJ_GFX_DITTO_DOLL, 152 + .set MAP_OBJ_GFX_SMOOCHUM_DOLL, 153 + .set MAP_OBJ_GFX_TREECKO_DOLL, 154 + .set MAP_OBJ_GFX_TORCHIC_DOLL, 155 + .set MAP_OBJ_GFX_MUDKIP_DOLL, 156 + .set MAP_OBJ_GFX_DUSKULL_DOLL, 157 + .set MAP_OBJ_GFX_WYNAUT_DOLL, 158 + .set MAP_OBJ_GFX_BALTOY_DOLL, 159 + .set MAP_OBJ_GFX_KECLEON_DOLL, 160 + .set MAP_OBJ_GFX_AZURILL_DOLL, 161 + .set MAP_OBJ_GFX_SKITTY_DOLL, 162 + .set MAP_OBJ_GFX_SWABLU_DOLL, 163 + .set MAP_OBJ_GFX_GULPIN_DOLL, 164 + .set MAP_OBJ_GFX_LOTAD_DOLL, 165 + .set MAP_OBJ_GFX_SEEDOT_DOLL, 166 + .set MAP_OBJ_GFX_PIKA_CUSHION, 167 + .set MAP_OBJ_GFX_ROUND_CUSHION, 168 + .set MAP_OBJ_GFX_KISS_CUSHION, 169 + .set MAP_OBJ_GFX_ZIGZAG_CUSHION, 170 + .set MAP_OBJ_GFX_SPIN_CUSHION, 171 + .set MAP_OBJ_GFX_DIAMOND_CUSHION, 172 + .set MAP_OBJ_GFX_BALL_CUSHION, 173 + .set MAP_OBJ_GFX_GRASS_CUSHION, 174 + .set MAP_OBJ_GFX_FIRE_CUSHION, 175 + .set MAP_OBJ_GFX_WATER_CUSHION, 176 + .set MAP_OBJ_GFX_BIG_SNORLAX_DOLL, 177 + .set MAP_OBJ_GFX_BIG_RHYDON_DOLL, 178 + .set MAP_OBJ_GFX_BIG_LAPRAS_DOLL, 179 + .set MAP_OBJ_GFX_BIG_VENUSAUR_DOLL, 180 + .set MAP_OBJ_GFX_BIG_CHARIZARD_DOLL, 181 + .set MAP_OBJ_GFX_BIG_BLASTOISE_DOLL, 182 + .set MAP_OBJ_GFX_BIG_WAILMER_DOLL, 183 + .set MAP_OBJ_GFX_BIG_REGIROCK_DOLL, 184 + .set MAP_OBJ_GFX_BIG_REGICE_DOLL, 185 + .set MAP_OBJ_GFX_BIG_REGISTEEL_DOLL, 186 + .set MAP_OBJ_GFX_LATIAS, 187 + .set MAP_OBJ_GFX_LATIOS, 188 + .set MAP_OBJ_GFX_BOY_5, 189 + .set MAP_OBJ_GFX_CONTEST_JUDGE, 190 + .set MAP_OBJ_GFX_BRENDAN_WATERING, 191 + .set MAP_OBJ_GFX_MAY_WATERING, 192 + .set MAP_OBJ_GFX_BRENDAN_DECORATING, 193 + .set MAP_OBJ_GFX_MAY_DECORATING, 194 + .set MAP_OBJ_GFX_ARCHIE, 195 + .set MAP_OBJ_GFX_MAXIE, 196 + .set MAP_OBJ_GFX_KYOGRE_1, 197 + .set MAP_OBJ_GFX_GROUDON_1, 198 + .set MAP_OBJ_GFX_FOSSIL, 199 + .set MAP_OBJ_GFX_REGIROCK, 200 + .set MAP_OBJ_GFX_REGICE, 201 + .set MAP_OBJ_GFX_REGISTEEL, 202 + .set MAP_OBJ_GFX_SKITTY, 203 + .set MAP_OBJ_GFX_KECLEON_1, 204 + .set MAP_OBJ_GFX_KYOGRE_2, 205 + .set MAP_OBJ_GFX_GROUDON_2, 206 + .set MAP_OBJ_GFX_RAYQUAZA_2, 207 + .set MAP_OBJ_GFX_ZIGZAGOON_2, 208 + .set MAP_OBJ_GFX_PIKACHU, 209 + .set MAP_OBJ_GFX_AZUMARILL, 210 + .set MAP_OBJ_GFX_WINGULL, 211 + .set MAP_OBJ_GFX_KECLEON_2, 212 + .set MAP_OBJ_GFX_TUBER_M_SWIMMING, 213 + .set MAP_OBJ_GFX_AZURILL, 214 + .set MAP_OBJ_GFX_MOM, 215 + .set MAP_OBJ_GFX_LINK_BRENDAN, 216 + .set MAP_OBJ_GFX_LINK_MAY, 217 + + .set SHADOW_SIZE_S, 0 + .set SHADOW_SIZE_M, 1 + .set SHADOW_SIZE_L, 2 + .set SHADOW_SIZE_XL, 3 + + .set F_INANIMATE, 1 << 6 + .set F_DISABLE_REFLECTION_PALETTE_LOAD, 1 << 7 + + .set TRACKS_NONE, 0 + .set TRACKS_FOOT, 1 + .set TRACKS_BIKE_TIRE, 2 diff --git a/data/bard_music.s b/data/bard_music.s index ba775dd83..2e7326f9d 100644 --- a/data/bard_music.s +++ b/data/bard_music.s @@ -3,26 +3,5586 @@ .section .rodata + .align 2 gUnknown_085F5490:: @ 85F5490 - .incbin "baserom.gba", 0x5f5490, 0x4 + .4byte 0x19C + .align 2 gUnknown_085F5494:: @ 85F5494 - .incbin "baserom.gba", 0x5f5494, 0x4d40 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000024, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000014, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000032, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x00000002, 0x00000000 + .4byte 0x00000032, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000015, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000032, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x00000024, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000008, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000024, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000001e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000015, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x00000026, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000015, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x00000017, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000024, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000024, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000005, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000015, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000014, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000001a, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000001a, 0x00000000 + .4byte 0x00000015, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000021, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000032, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000003, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000021, 0x00000000, 0x0000000f, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x00000003, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000015, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000015, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000015, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000015, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x0000001a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x00000021, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000000f, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000015, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001e, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000015, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000008, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000015, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000021, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002d, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000001a, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000015, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000015, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000015, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000014, 0x00000000, 0x0000001a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000015, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000002, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000001d, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001d, 0x00000000, 0x0000001a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001d, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000001d, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000015, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000015, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000015, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000015, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x00000015, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x00000015, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000015, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000015, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002d, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002d, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000006, 0x00000000 + .4byte 0x00000008, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000003, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000021, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000021, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001d, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000006, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000008, 0x00000000, 0x00000010, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000008, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000010, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001d, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000012, 0x00000000 + .4byte 0x00000032, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x0000001a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001d, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x0000001c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000002, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000026, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000026, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000001a, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x0000001a, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000023, 0x00000000, 0x0000001a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000021, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x00000026, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000015, 0x00000000 + .4byte 0x0000001d, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000003, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000003, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000015, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000015, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000012, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000012, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x0000001d, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000014, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x00000024, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000028, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002d, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000017, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000003, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x0000001a, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000006, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000000f, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x0000001a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000024, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x0000001a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000001, 0x00000000, 0x0000001e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x0000001a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000001, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001d, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000000f, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000003, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001e, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000024, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000012, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000026, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000024, 0x00000000, 0x0000000f, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000021, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000021, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000005, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000012, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x0000001d, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000001a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000003, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000007, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000021, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000003, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .align 2 gUnknown_085FA1D4:: @ 85FA1D4 - .incbin "baserom.gba", 0x5fa1d4, 0x4 + .4byte 0x163 + .align 2 gUnknown_085FA1D8:: @ 85FA1D8 - .incbin "baserom.gba", 0x5fa1d8, 0xff90 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000021, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000001d, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x0000001d, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x0000000a, 0x00000000 + .4byte 0x00000002, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001d, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x00000005, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000001d, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x0000001d, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000014, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000001, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000001d, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x0000001d, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000014, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001d, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000002, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000024, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001d, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000002, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000023, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x00000002, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000024, 0x00000000 + .4byte 0x0000000a, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001e, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000024, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000024, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000021, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000003, 0x00000000 + .4byte 0x00000024, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000001a, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001d, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000024, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x0000001a, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000021, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000032, 0x00000000, 0x00000003, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x0000001a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001e, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000021, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000001a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000021, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000002, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000032, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x00000005, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000029, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x0000000f, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000005, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x0000000d, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x0000000f, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x0000002d, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x00000032, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000029, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001d, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x0000001d, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000014, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x0000001d, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000002, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x0000001e, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001e, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000012, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000001a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000024, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000003, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000002, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000012, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000001, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000024, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000024, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000005, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001d, 0x00000000, 0x0000001d, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000024, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000021, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002b, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000028, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000001, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x00000014, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000000f, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x0000001d, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000021, 0x00000000, 0x00000003, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000001a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000015, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x00000021, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000012, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000002, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x0000000d, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000024, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x0000001d, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x0000000a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000003, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x0000000f, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000000f, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000000f, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000024, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000024, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000012, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000021, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x0000001d, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000021, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000021, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000001a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000014, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000003, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000015, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000021, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000003, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000003, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000021, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000012, 0x00000000 + .4byte 0x00000024, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000005, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x0000001d, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x0000001d, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x0000000f, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000021, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000004, 0x00000000, 0x0000001a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000032, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x0000001d, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x0000001e, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001e, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000021, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000024, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000024, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000021, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000021, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000003, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x0000000f, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000021, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x0000001d, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000021, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000001d, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001e, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000024, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000024, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000012, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000005, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000003, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000012, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x0000000f, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .align 2 +gUnknown_085FE468:: @ 85FE468 + .4byte 0x00000012, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x0000002d, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000015, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000012, 0x00000000 + .4byte 0x00000032, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000012, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000006, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000008, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000032, 0x00000000, 0x0000000f, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + + .align 2 +gUnknown_085FE978:: @ 85FE978 + .4byte 0x00000008, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000003, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000015, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000001, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000015, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000024, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000015, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000029, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000029, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002d, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002d, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x0000000f, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x00000017, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000015, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000000f, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000006, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000008, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000021, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000000f, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000002, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000002, 0x00000000, 0x00000003, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000012, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000000f, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002d, 0x00000000, 0x00000021, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000024, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000001a, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x00000002, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000020, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000020, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x0000001e, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000001, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000004, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000008, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000021, 0x00000000, 0x00000012, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000003, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000026, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000021, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000015, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000015, 0x00000000, 0x00000021, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x00000024, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000015, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000006, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000017, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000021, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000014, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000015, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000001, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000004, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000007, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002d, 0x00000000, 0x00000007, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000014, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002d, 0x00000000, 0x00000021, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x0000002b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + + .align 2 +gUnknown_085FFDE8:: @ 85FFDE8 + .4byte 0x00000002, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000012, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000017, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000012, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000012, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000002, 0x00000000, 0x0000000f, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000000f, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000012, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000008, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x00000001, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000017, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000002, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000001, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000015, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000023, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000001, 0x00000000, 0x0000000a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000029, 0x00000000, 0x0000001d, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000005, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000026, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000005, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001e, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000017, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000012, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000016, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000008, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000015, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000024, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000029, 0x00000000, 0x0000001a, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000026, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000029, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + + .align 2 +gUnknown_086009B8:: @ 86009B8 + .4byte 0x00000003, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x00000012, 0x00000000 + .4byte 0x00000017, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000002, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000017, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001e, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000021, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000002, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000006, 0x00000000 + .4byte 0x00000017, 0x00000000, 0x00000012, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x00000010, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000004, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000026, 0x00000000, 0x00000014, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000006, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001d, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x00000028, 0x00000000 + .4byte 0x0000000d, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x00000005, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000004, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000002b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000a, 0x00000000, 0x0000000a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000014, 0x00000000, 0x00000012, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000d, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000001, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000032, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000023, 0x00000000, 0x00000017, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + + .align 2 +gUnknown_08601198:: @ 8601198 + .4byte 0x0000002c, 0x00000000, 0x0000001a, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000013, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002d, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000f71a, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000026, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002d, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000001, 0x00000000, 0x00000008, 0x00000000 + .4byte 0x00000032, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000026, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000008, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001e, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000024, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000015, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000001, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000032, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000007, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000d, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000004, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000032, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000010, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000000a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x0000000d, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000002, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000014, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000029, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000029, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000010, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000010, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000014, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000032, 0x00000000, 0x0000001d, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000028, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000031, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000031, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000021, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000024, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000026, 0x00000000, 0x00000002, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000002b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000010, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000001, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + + .align 2 +gUnknown_08601FA8:: @ 8601FA8 + .4byte 0x00000012, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000001a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0008051b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x00000006, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000031, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000028, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000019, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001c, 0x00000000, 0x00000031, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000023, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000a, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000002, 0x00000000 + .4byte 0x00000024, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000013, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001e, 0x00000000, 0x0000001e, 0x00000000 + .4byte 0x0000001e, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000001, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000017, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000d, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x00000006, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x00000017, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x00000006, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000013, 0x00000000, 0x0000000d, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000007, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x0000001a, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000004, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000004, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x00000006, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000004, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000007, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000022, 0x00000000, 0x0000000d, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000007, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x00000006, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x00000006, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + + .align 2 +gUnknown_08602B78:: @ 8602B78 + .4byte 0x00000009, 0x00000000, 0x00000010, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000015, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x0000000a, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x0000000f, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000014, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000021, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000021, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000017, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000026, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x0000002d, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000a, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000015, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000a, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000014, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000001, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x00000023, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000023, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x0000001a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x0000001a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000032, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000001, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000001, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000000a, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000026, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000007, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000010, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000001, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000028, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x00000026, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000005, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000006, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000008, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + + .align 2 +gUnknown_086036B8:: @ 86036B8 + .4byte 0x00000010, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000010, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000014, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000026, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000014, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000026, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000010, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000032, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000000f, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000032, 0x00000000, 0x0000000f, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000000f, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000002, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000017, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x00000004, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000023, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000026, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001d, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000001, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000002, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000021, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000014, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000000f, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000000f, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000023, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000026, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000014, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000002, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + + .align 2 +gUnknown_086043A8:: @ 86043A8 + .4byte 0x0000000c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000004, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000032, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000019, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x00000014, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x0000001a, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000017, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x0000001a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x0000001e, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x00000020, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000002, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000014, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000031, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000d, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000031, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000008, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000014, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000020, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000020, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000008, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000021, 0x00000000, 0x00000002, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000026, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000014, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000012, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000031, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000031, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x00000014, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000001a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x00000032, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000020, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000020, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000002, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000002, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001d, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000029, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000014, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000032, 0x00000000, 0x00000014, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000032, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000014, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000032, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000004, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000002, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000002, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + + .align 2 +gUnknown_08605098:: @ 8605098 + .4byte 0x00000015, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x00000029, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000001, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000026, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000029, 0x00000000, 0x0000000a, 0x00000000 + .4byte 0x00000032, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000026, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000002, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000012, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000020, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000019, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000017, 0x00000000, 0x00000014, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000032, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000a, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000014, 0x00000000 + .4byte 0x00000023, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x0000000a, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x0000001e, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000026, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000a, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000000a, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x0000001d, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000026, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001d, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000014, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000017, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000017, 0x00000000, 0x00000016, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000016, 0x00000000 + .4byte 0x00000032, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000002, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000026, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000029, 0x00000000, 0x0000001c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000002, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000008, 0x00000000, 0x00000026, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000002, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000021, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000005, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000026, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000d, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + + .align 2 +gUnknown_08605D88:: @ 8605D88 + .4byte 0x0000000e, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000010, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000010, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000004, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000006, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000008, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000d, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000d, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000001, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000032, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001d, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000002f, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000002, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000001a, 0x00000000 + .4byte 0x00000002, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000014, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002f, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002f, 0x00000000, 0x0000000a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002f, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000026, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000032, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000032, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000032, 0x00000000, 0x0000000d, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000001, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000029, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000026, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000023, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x0000000a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000000d, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x0000000a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + + .align 2 +gUnknown_08606C28:: @ 8606C28 + .4byte 0x00000031, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000023, 0x00000000 + .4byte 0x00000002, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000002, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000029, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x00000032, 0x00000000, 0x00000005, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000032, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000032, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x00000003, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000002, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000001d, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000032, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x0000001a, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001d, 0x00000000, 0x00000027, 0x00000000 + .4byte 0x00000032, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001c, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000024, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001d, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000017, 0x00000000, 0x0000000f, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x00000026, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000032, 0x00000000, 0x00000024, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + + .align 2 +gUnknown_08607498:: @ 8607498 + .4byte 0x00000014, 0x00000000, 0x0000001a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000017, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000001, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000014, 0x00000000, 0x00000026, 0x00000000 + .4byte 0x00000004, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001e, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002f, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000017, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000015, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002f, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x00000005, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000026, 0x00000000, 0x00000005, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000002, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000015, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000017, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000017, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000014, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000a, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000026, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000026, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x00000012, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000001d, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000021, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000001a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000002, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000001a, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000001, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x00000032, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000026, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000008, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001d, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000002, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000005, 0x00000000 + .4byte 0x0000001d, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000026, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + + .align 2 +gUnknown_08607EB8:: @ 8607EB8 + .4byte 0x0000001b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x0000001c, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000002, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000014, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000000f, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000005, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000005, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000005, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000005, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000032, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000032, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000014, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000a, 0x00000000, 0x00000005, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000028, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000017, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001d, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000021, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000024, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000005, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x0000000f, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x00000012, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x0000000a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x0000001a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x00000005, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000014, 0x00000000, 0x00000012, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000014, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + + .align 2 +gUnknown_08608728:: @ 8608728 + .4byte 0x00000014, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000018, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000012, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000021, 0x00000000, 0x00000012, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x00000012, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000021, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000002, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000001, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000010, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000004, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000010, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000001, 0x00000000, 0x0000001a, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000014, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x0000002e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001d, 0x00000000, 0x0000001a, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + + .align 2 +gUnknown_08608F08:: @ 8608F08 + .4byte 0x0000001d, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000024, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000008, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002d, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000012, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000032, 0x00000000, 0x00000005, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001d, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000001e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000014, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000003, 0x00000000 + .4byte 0x0000001d, 0x00000000, 0x00000033, 0x00000000 + + .align 2 +gUnknown_086095C8:: @ 86095C8 + .4byte 0x0000002c, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000000, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001d, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000032, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000015, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000004, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001a, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000002, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000021, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000004, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000a, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x0000001d, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x0000002a, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000009, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000030, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + + .align 2 +gUnknown_08609B38:: @ 8609B38 + .4byte 0x00000005, 0x00000000, 0x00000002, 0x00000000 + .4byte 0x00000014, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001b, 0x00000000, 0x0000001b, 0x00000000 + .4byte 0x00000017, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000026, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000012, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000d, 0x00000000, 0x0000001d, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x0000001a, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000b, 0x00000000, 0x00000011, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000000b, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x00000009, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000027, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000000, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x0000000e, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000011, 0x00000000, 0x00000001, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x0000000c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002c, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001d, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000a, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000003, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001d, 0x00000000, 0x00000023, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x00000024, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000f, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x00000030, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001d, 0x00000000, 0x0000002c, 0x00000000 + .4byte 0x0000000c, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000005, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000001c, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x00000018, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002b, 0x00000000, 0x00000033, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x0000002a, 0x00000000, 0x0000000e, 0x00000000 + .4byte 0x00000033, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + + .align 2 gUnknown_0860A168:: @ 860A168 - .incbin "baserom.gba", 0x60a168, 0x1b8 + .4byte NULL + .4byte gUnknown_085FE468 + .4byte gUnknown_085FE978 + .4byte gUnknown_085FFDE8 + .4byte gUnknown_086009B8 + .4byte gUnknown_08601198 + .4byte gUnknown_08601FA8 + .4byte gUnknown_08602B78 + .4byte gUnknown_086036B8 + .4byte gUnknown_086043A8 + .4byte gUnknown_08605098 + .4byte gUnknown_08605D88 + .4byte gUnknown_08606C28 + .4byte gUnknown_08607498 + .4byte gUnknown_08607EB8 + .4byte gUnknown_08608728 + .4byte gUnknown_08608F08 + .4byte gUnknown_086095C8 + .4byte NULL + .4byte NULL + .4byte gUnknown_08609B38 + .4byte NULL + .align 2 +gUnknown_0860A1C0:: @ 860A1C0 + .2byte 0xfd00, 0x1800 + +gUnknown_0860A1C4:: @ 860A1C4 + .2byte 0x0900, 0x1800 + +gUnknown_0860A1C8:: @ 860A1C7 + .2byte 0x0100, 0x1800 + +gUnknown_0860A1CC:: @ 860A1CC + .2byte 0x0400, 0x1800 + +gUnknown_0860A1D0:: @ 860A1D0 + .2byte 0x0b00, 0x1800 + +gUnknown_0860A1D4:: @ 860A1D4 + .2byte 0xfd00, 0xff00, 0x1800 + +gUnknown_0860A1DA:: @ 860A1DA + .2byte 0xfd00, 0x0200, 0x1800 + +gUnknown_0860A1E0:: @ 860A1E0 + .2byte 0x0200, 0x0400, 0x1800 + +gUnknown_0860A1E6:: @ 860A1E6 + .2byte 0x0600, 0x0800, 0x1800 + +gUnknown_0860A1EC:: @ 860A1EC + .2byte 0x0900, 0x0800, 0x1800 + +gUnknown_0860A1F2:: @ 860A1F2 + .2byte 0xfd00, 0xff00, 0xfd00, 0x1800 + +gUnknown_0860A1FA:: @ 860A1FA + .2byte 0x0400, 0xfd00, 0x0400, 0x1800 + +gUnknown_0860A202:: @ 860A202 + .2byte 0x0900, 0x0800, 0x0600, 0x1800 + +gUnknown_0860A20A:: @ 860A20A + .2byte 0x0100, 0x0200, 0x0400, 0x1800 + +gUnknown_0860A212:: @ 860A212 + .2byte 0x0600, 0x1000, 0x0d00, 0x1800 + +gUnknown_0860A21A:: @ 860A21A + .2byte 0x0400, 0x0900, 0x0400, 0x0900, 0x1800 + +gUnknown_0860A224:: @ 860A224 + .2byte 0x0900, 0x0400, 0x0d00, 0x0400, 0x1800 + +gUnknown_0860A22E:: @ 860A22E + .2byte 0x0100, 0x0200, 0x0400, 0x0600, 0x1800 + +gUnknown_0860A238:: @ 860A238 + .2byte 0x0800, 0x0600, 0x0400, 0x0200, 0x1800 + +gUnknown_0860A242:: @ 860A242 + .2byte 0x0f00, 0x0d00, 0x0b00, 0x0a00, 0x1800 + +gUnknown_0860A24C:: @ 860A24C + .2byte 0xfd00, 0xff00, 0x0100, 0x0200, 0x0400, 0x1800 + +gUnknown_0860A258:: @ 860A258 + .2byte 0x0900, 0x0800, 0x0600, 0x0400, 0x0200, 0x1800 + +gUnknown_0860A264:: @ 860A264 + .2byte 0x0100, 0x0400, 0x0900, 0x0400, 0x0100, 0x1800 + +gUnknown_0860A270:: @ 860A270 + .2byte 0x0900, 0x0400, 0x0900, 0x0400, 0xfd00, 0x1800 + +gUnknown_0860A27C:: @ 860A27C + .2byte 0x0b00, 0x0800, 0x0400, 0x0400, 0x0600, 0x1800 + +gUnknown_0860A288:: @ 860A288 + .2byte 0xfd00, 0xff00, 0x0100, 0x0200, 0x0400, 0x0600, 0x1800 + +gUnknown_0860A296:: @ 860A296 + .2byte 0x0800, 0x0600, 0x0400, 0x0200, 0x0100, 0xff00, 0x1800 + +gUnknown_0860A2A4:: @ 860A2A4 + .2byte 0x0100, 0x0200, 0x0400, 0x0100, 0x0200, 0x1000, 0x1800 + +gUnknown_0860A2B2:: @ 860A2B2 + .2byte 0x0400, 0xfd00, 0x0900, 0x0400, 0x0900, 0x0400, 0x1800 + +gUnknown_0860A2C0:: @ 860A2C0 + .2byte 0x0800, 0x0900, 0x0800, 0x0900, 0x0800, 0x0900, 0x1800 + +gUnknown_0860A2CE:: @ 860A2CE + .2byte 0x0200, 0x0100, 0x0200, 0x0100, 0x0200, 0x0400, 0x0200, 0x1800 + +gUnknown_0860A2DE:: @ 860A2DE + .2byte 0x0100, 0x0100, 0xff00, 0xff00, 0xfd00, 0x0400, 0xfd00, 0x1800 + +gUnknown_0860A2EE:: @ 860A2EE + .2byte 0x0800, 0x0900, 0x0b00, 0x0d00, 0x0e00, 0x0d00, 0x0b00, 0x1800 + +gUnknown_0860A2FE:: @ 860A2FE + .2byte 0x0800, 0x0600, 0x0400, 0x0200, 0x0d00, 0x0b00, 0x0900, 0x1800 + +gUnknown_0860A30E:: @ 860A30E + .2byte 0x0300, 0x0400, 0x0600, 0x0800, 0x0700, 0x0800, 0x0400, 0x1800 + + .align 2 gUnknown_0860A320:: @ 860A320 - .incbin "baserom.gba", 0x60a320, 0x8c + .4byte gUnknown_0860A1C0 + .4byte gUnknown_0860A1C4 + .4byte gUnknown_0860A1C8 + .4byte gUnknown_0860A1CC + .4byte gUnknown_0860A1D0 + .4byte gUnknown_0860A1D4 + .4byte gUnknown_0860A1DA + .4byte gUnknown_0860A1E0 + .4byte gUnknown_0860A1E6 + .4byte gUnknown_0860A1EC + .4byte gUnknown_0860A1F2 + .4byte gUnknown_0860A1FA + .4byte gUnknown_0860A202 + .4byte gUnknown_0860A20A + .4byte gUnknown_0860A212 + .4byte gUnknown_0860A21A + .4byte gUnknown_0860A224 + .4byte gUnknown_0860A22E + .4byte gUnknown_0860A238 + .4byte gUnknown_0860A242 + .4byte gUnknown_0860A24C + .4byte gUnknown_0860A258 + .4byte gUnknown_0860A264 + .4byte gUnknown_0860A270 + .4byte gUnknown_0860A27C + .4byte gUnknown_0860A288 + .4byte gUnknown_0860A296 + .4byte gUnknown_0860A2A4 + .4byte gUnknown_0860A2B2 + .4byte gUnknown_0860A2C0 + .4byte gUnknown_0860A2CE + .4byte gUnknown_0860A2DE + .4byte gUnknown_0860A2EE + .4byte gUnknown_0860A2FE + .4byte gUnknown_0860A30E + .align 2 gUnknown_0860A3AC:: @ 860A3AC - .incbin "baserom.gba", 0x60a3ac, 0x30 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .4byte 0x000000ff, 0x00000000, 0x000000ff, 0x00000000 + .align 2 gUnknown_0860A3DC:: @ 860A3DC - .incbin "baserom.gba", 0x60a3dc, 0xd0 + .4byte 0x00000009, 0x00000016, 0x0000000f, 0x00000010 + .4byte 0x00000027, 0x00000015, 0x00000009, 0x0000001e + .4byte 0x00000018, 0x0000000f, 0x00000019, 0x0000000c + .4byte 0x00000016, 0x0000002d, 0x00000018, 0x0000000f + .4byte 0x00000028, 0x00000009, 0x00000015, 0x0000002a + .4byte 0x00000012, 0x00000009, 0x00000016, 0x0000000f + .4byte 0x0000001b, 0x00000030, 0x00000012, 0x0000001b + .4byte 0x00000021, 0x00000018, 0x00000019, 0x00000027 + .4byte 0x00000013, 0x00000010, 0x00000036, 0x00000012 + .4byte 0x00000009, 0x0000002d, 0x0000000f, 0x0000000c + .4byte 0x00000027, 0x00000017, 0x00000005, 0x0000002d + .4byte 0x0000000c, 0x00000015, 0x00000030, 0x0000000c + .4byte 0x00000015, 0x00000045, 0x00000012, 0x0000000f diff --git a/data/battle_4.s b/data/battle_4.s deleted file mode 100644 index 1c8fb5384..000000000 --- a/data/battle_4.s +++ /dev/null @@ -1,50 +0,0 @@ -@ the second big chunk of data - - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - -gMoveEffectBS_Ptrs:: @ 831C224 - .incbin "baserom.gba", 0x31c224, 0xa4 - -gUnknown_0831C2C8:: @ 831C2C8 - .incbin "baserom.gba", 0x31c2c8, 0x20 - -gUnknown_0831C2E8:: @ 831C2E8 - .incbin "baserom.gba", 0x31c2e8, 0xd8 - -gUnknown_0831C3C0:: @ 831C3C0 - .incbin "baserom.gba", 0x31c3c0, 0x18 - -sProtectSuccessRates:: @ 831C3D8 - .incbin "baserom.gba", 0x31c3d8, 0x8 - -gUnknown_0831C3E0:: @ 831C3E0 - .incbin "baserom.gba", 0x31c3e0, 0x28 - -gUnknown_0831C408:: @ 831C408 - .incbin "baserom.gba", 0x31c408, 0xc - -gUnknown_0831C414:: @ 831C414 - .incbin "baserom.gba", 0x31c414, 0x14 - -gUnknown_0831C428:: @ 831C428 - .incbin "baserom.gba", 0x31c428, 0x18 - -@ 831C440 - .include "data/pickup_items.inc" - -sTerrainToType:: @ 831C483 - .incbin "baserom.gba", 0x31c483, 0xa - -sBallCatchBonuses:: @ 831C48D - .incbin "baserom.gba", 0x31c48d, 0x7 - -gUnknown_0831C494:: @ 831C494 - .incbin "baserom.gba", 0x31c494, 0x64 - -gUnknown_0831C4F8:: @ 831C4F8 - .incbin "baserom.gba", 0x31c4f8, 0x1c - diff --git a/data/battle_7.s b/data/battle_7.s new file mode 100644 index 000000000..ffd2e8daa --- /dev/null +++ b/data/battle_7.s @@ -0,0 +1,44 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_0832C0D0:: @ 832C0D0 + obj_tiles gUnknown_08C1F1C8, 0x1000, 0xd6ff + + .align 2 +gUnknown_0832C0D8:: @ 832C0D8 + obj_tiles gUnknown_08C1F46C, 0x1000, 0xd701 + + .align 2 +gUnknown_0832C0E0:: @ 832C0E0 + obj_tiles gUnknown_08C1F5E8, 0x0800, 0xd6ff + + .align 2 +gUnknown_0832C0E8:: @ 832C0E8 + obj_tiles gUnknown_08C1F5E8, 0x0800, 0xd700 + + .align 2 +gUnknown_0832C0F0:: @ 832C0F0 + obj_tiles gUnknown_08C1F76C, 0x0800, 0xd701 + + .align 2 +gUnknown_0832C0F8:: @ 832C0F8 + obj_tiles gUnknown_08C1F76C, 0x0800, 0xd702 + + .align 2 +gUnknown_0832C100:: @ 832C100 + obj_tiles gUnknown_08C1F8E8, 0x1000, 0xd70b + + .align 2 +gUnknown_0832C108:: @ 832C108 + obj_tiles gUnknown_08C0237C, 0x0100, 0xd704 + obj_tiles gUnknown_08C0237C, 0x0120, 0xd705 + obj_tiles gUnknown_08C0237C, 0x0100, 0xd706 + obj_tiles gUnknown_08C0237C, 0x0120, 0xd707 + + .align 2 +gUnknown_0832C128:: @ 832C128 + obj_pal gBattleInterface_BallStatusBarPal, 0xd6ff + obj_pal gBattleInterface_BallDisplayPal, 0xd704 diff --git a/data/battle_ai_scripts.s b/data/battle_ai_scripts.s index 0cb225ef5..834c4bf9d 100644 --- a/data/battle_ai_scripts.s +++ b/data/battle_ai_scripts.s @@ -5,4 +5,77 @@ .align 2 gBattleAI_ScriptsTable:: @ 82DBEF8 - .incbin "baserom.gba", 0x2dbef8, 0x2458 + .4byte gBattleAIScript_82DBF78 + .4byte gBattleAIScript_82DDE3F + .4byte gBattleAIScript_82DC7B0 + .4byte gBattleAIScript_82DDE71 + .4byte gBattleAIScript_82DDEDD + .4byte gBattleAIScript_82DDEC8 + .4byte gBattleAIScript_82DDF09 + .4byte gBattleAIScript_82DDFB4 + .4byte gBattleAIScript_82DE193 + .4byte gBattleAIScript_82DE2ED + .4byte gBattleAIScript_82DE34E + .4byte gBattleAIScript_82DE34E + .4byte gBattleAIScript_82DE34E + .4byte gBattleAIScript_82DE34E + .4byte gBattleAIScript_82DE34E + .4byte gBattleAIScript_82DE34E + .4byte gBattleAIScript_82DE34E + .4byte gBattleAIScript_82DE34E + .4byte gBattleAIScript_82DE34E + .4byte gBattleAIScript_82DE34E + .4byte gBattleAIScript_82DE34E + .4byte gBattleAIScript_82DE34E + .4byte gBattleAIScript_82DE34E + .4byte gBattleAIScript_82DE34E + .4byte gBattleAIScript_82DE34E + .4byte gBattleAIScript_82DE34E + .4byte gBattleAIScript_82DE34E + .4byte gBattleAIScript_82DE34E + .4byte gBattleAIScript_82DE34E + .4byte gBattleAIScript_82DE309 + .4byte gBattleAIScript_82DE337 + .4byte gBattleAIScript_82DE33E + +gBattleAIScript_82DBF78:: @ 82DBF78 + .incbin "baserom.gba", 0x2dbf78, 0x838 + +gBattleAIScript_82DC7B0:: @ 82DC7B0 + .incbin "baserom.gba", 0x2dc7b0, 0x168F + +gBattleAIScript_82DDE3F:: @ 82DDE3F + .incbin "baserom.gba", 0x2dde3f, 0x32 + +gBattleAIScript_82DDE71:: @ 82DDE71 + .incbin "baserom.gba", 0x2dde71, 0x57 + +gBattleAIScript_82DDEC8:: @ 82DDEC8 + .incbin "baserom.gba", 0x2ddec8, 0x15 + +gBattleAIScript_82DDEDD:: @ 82DDEDD + .incbin "baserom.gba", 0x2ddedd, 0x2c + +gBattleAIScript_82DDF09:: @ 82DDF09 + .incbin "baserom.gba", 0x2ddf09, 0xab + +gBattleAIScript_82DDFB4:: @ 82DDFB4 + .incbin "baserom.gba", 0x2ddfb4, 0x1df + +gBattleAIScript_82DE193:: @ 82DE193 + .incbin "baserom.gba", 0x2de193, 0x15a + +gBattleAIScript_82DE2ED:: @ 82DE2ED + .incbin "baserom.gba", 0x2de2ed, 0x1c + +gBattleAIScript_82DE309:: @ 82DE309 + .incbin "baserom.gba", 0x2de309, 0x2e + +gBattleAIScript_82DE337:: @ 82DE337 + .incbin "baserom.gba", 0x2de337, 0x7 + +gBattleAIScript_82DE33E:: @ 82DE33E + .incbin "baserom.gba", 0x2de33e, 0x10 + +gBattleAIScript_82DE34E:: @ 82DE34E + .incbin "baserom.gba", 0x2de34e, 0x2 diff --git a/data/battle_anim_80FE840.s b/data/battle_anim_80FE840.s new file mode 100644 index 000000000..78631ee6e --- /dev/null +++ b/data/battle_anim_80FE840.s @@ -0,0 +1,3877 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_085920F0:: @ 85920F0 + .2byte 0x0000, 0x0005, 0x0002, 0x0005, 0x0004, 0x0005, 0x0006, 0x0005 + .2byte 0x0008, 0x0005, 0x000a, 0x0005, 0x000c, 0x0005, 0x000e, 0x0005 + .2byte 0xfffe, 0x0000 + + .align 2 +gUnknown_08592114:: @ 8592114 + .4byte gUnknown_085920F0 + + .align 2 +gUnknown_08592118:: @ 8592118 + spr_template 0x2753, 0x2753, gUnknown_08524944, gUnknown_08592114, NULL, gDummySpriteAffineAnimTable, sub_80FE840 + spr_template 0x2754, 0x2754, gUnknown_08524944, gUnknown_08592114, NULL, gDummySpriteAffineAnimTable, sub_80FE840 + spr_template 0x2751, 0x2751, gUnknown_08524944, gUnknown_08592114, NULL, gDummySpriteAffineAnimTable, sub_80FE840 + + .align 2 +gUnknown_08592160:: @ 8592160 + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08592168:: @ 8592168 + .2byte 0x0001, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08592170:: @ 8592170 + .2byte 0x0002, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08592178:: @ 8592178 + .2byte 0x0003, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08592180:: @ 8592180 + .2byte 0x0004, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08592188:: @ 8592188 + .2byte 0x0005, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08592190:: @ 8592190 + .2byte 0x0006, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08592198:: @ 8592198 + .2byte 0x0007, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_085921A0:: @ 85921A0 + .2byte 0x0008, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_085921A8:: @ 85921A8 + .4byte gUnknown_08592160 + .4byte gUnknown_08592168 + .4byte gUnknown_08592170 + .4byte gUnknown_08592178 + .4byte gUnknown_08592180 + .4byte gUnknown_08592188 + .4byte gUnknown_08592190 + + .align 2 +gUnknown_085921C4:: @ 85921C4 + .4byte gUnknown_08592198 + + .align 2 +gUnknown_085921C8:: @ 85921C8 + .4byte gUnknown_085921A0 + + .align 2 +gUnknown_085921CC:: @ 85921CC + .2byte 0xfffb, 0xfffb, 0x0100, 0x0000, 0x7ffe, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_085921DC:: @ 85921DC + .4byte gUnknown_085921CC + + .align 2 +gUnknown_085921E0:: @ 859216E0 + spr_template 0x27a3, 0x27a3, gUnknown_08524A8C, gUnknown_085921C8, NULL, gUnknown_085921DC, sub_80FE8E0 + + .align 2 +gUnknown_085921F8:: @ 859216F8 + spr_template 0x27a3, 0x27a3, gUnknown_08524904, gUnknown_085921A8, NULL, gDummySpriteAffineAnimTable, sub_80FE930 + + .align 2 +gUnknown_08592210:: @ 8592210 + spr_template 0x27a3, 0x27a3, gUnknown_08524904, gUnknown_085921C4, NULL, gDummySpriteAffineAnimTable, sub_80FE988 + + .align 2 +gUnknown_08592228:: @ 8592228 + .2byte 0x0140, 0x0140, 0x0000, 0x0000, 0xfff2, 0xfff2, 0x0100, 0x0000 + .2byte 0x7ffe, 0x0001, 0x0000, 0x0000 + + .align 2 +gUnknown_08592240:: @ 8592240 + .4byte gUnknown_08592228 + + .align 2 +gUnknown_08592244:: @ 85922144 + spr_template 0x27fb, 0x27fb, gUnknown_085249C4, gDummySpriteAnimTable, NULL, gUnknown_08592240, sub_80FE8E0 + + .align 2 +gUnknown_0859225C:: @ 859225C + .2byte 0xfffb, 0xfffb, 0x0100, 0x0000, 0x7ffe, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_0859226C:: @ 859226C + .4byte gUnknown_0859225C + + .align 2 +gUnknown_08592270:: @ 8592270 + spr_template 0x27a3, 0x27a3, gUnknown_08524A8C, gUnknown_085921C8, NULL, gUnknown_0859226C, sub_80FEAD8 + + .align 2 +gUnknown_08592288:: @ 8592288 + spr_template 0x27a3, 0x27a3, gUnknown_08524904, gUnknown_085921A8, NULL, gDummySpriteAffineAnimTable, sub_80FEB44 + + .align 2 +gUnknown_085922A0:: @ 85922A0 + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_085922A8:: @ 85922A8 + .2byte 0x0004, 0x0007, 0x0008, 0x0007, 0xfffe, 0x0000 + + .align 2 +gUnknown_085922B4:: @ 85922B4 + .4byte gUnknown_085922A0 + .4byte gUnknown_085922A8 + + .align 2 +gUnknown_085922BC:: @ 85922BC + spr_template 0x2716, 0x2716, gUnknown_0852490C, gUnknown_085922B4, NULL, gDummySpriteAffineAnimTable, sub_80FEC48 + + .align 2 +gUnknown_085922D4:: @ 85922D4 + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_085922DC:: @ 85922DC + .2byte 0x0004, 0x0007, 0xffff, 0x0000 + + .align 2 +gUnknown_085922E4:: @ 85922E4 + .4byte gUnknown_085922D4 + .4byte gUnknown_085922DC + + .align 2 +gUnknown_085922EC:: @ 85922EC + spr_template 0x27ae, 0x27ae, gUnknown_0852490C, gUnknown_085922E4, NULL, gDummySpriteAffineAnimTable, sub_80FED28 + + .align 2 +gUnknown_08592304:: @ 8592304 + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_0859230C:: @ 859230C + .2byte 0x0004, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08592314:: @ 8592314 + .4byte gUnknown_08592304 + + .align 2 +gUnknown_08592318:: @ 8592318 + .4byte gUnknown_0859230C + + .align 2 +gUnknown_0859231C:: @ 859231C + spr_template 0x27af, 0x27af, gUnknown_0852490C, gUnknown_08592314, NULL, gDummySpriteAffineAnimTable, sub_80FEE78 + + .align 2 +gUnknown_08592334:: @ 8592334 + spr_template 0x27af, 0x27af, gUnknown_08524904, gUnknown_08592318, NULL, gDummySpriteAffineAnimTable, sub_80FEF44 + + .align 2 +gUnknown_0859234C:: @ 859234C + .2byte 0x0000, 0x0005, 0x0004, 0x0005, 0x0008, 0x0005, 0x000c, 0x0005 + .2byte 0x0010, 0x0005, 0x0014, 0x0005, 0x0010, 0x0005, 0x000c, 0x0005 + .2byte 0x0008, 0x0005, 0x0004, 0x0005, 0xfffe, 0x0000 + + .align 2 +gUnknown_08592378:: @ 8592378 + .2byte 0x0018, 0x0005, 0x001c, 0x0005, 0x0020, 0x0005, 0xffff, 0x0000 + + .align 2 +gUnknown_08592388:: @ 8592388 + .4byte gUnknown_0859234C + .4byte gUnknown_08592378 + + .align 2 +gUnknown_08592390:: @ 8592390 + spr_template 0x274f, 0x274f, gUnknown_0852490C, gUnknown_08592388, NULL, gDummySpriteAffineAnimTable, sub_80FEFFC + + .align 2 +gUnknown_085923A8:: @ 85923A8 + spr_template 0x274f, 0x274f, gUnknown_0852490C, gUnknown_08592388, NULL, gDummySpriteAffineAnimTable, sub_80FF268 + + .align 2 +gUnknown_085923C0:: @ 85923C0 + .2byte 0x0000, 0x0003, 0x0000, 0x0043, 0x0000, 0x00c3, 0x0000, 0x0083, 0xfffe, 0x0000 + + .align 2 +gUnknown_085923D4:: @ 85923D4 + .4byte gUnknown_085923C0 + + .align 2 +gUnknown_085923D8:: @ 85923D8 + spr_template 0x27b0, 0x27b0, gUnknown_08524934, gUnknown_085923D4, NULL, gDummySpriteAffineAnimTable, sub_80FF0F4 + + .align 2 +gUnknown_085923F0:: @ 85923F0 + .2byte 0x0000, 0x0000, 0x0100, 0x0000, 0x7ffe, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08592400:: @ 8592400 + .4byte gUnknown_085923F0 + + .align 2 +gUnknown_08592404:: @ 8592404 + spr_template 0x27be, 0x27be, gUnknown_08524974, gDummySpriteAnimTable, NULL, gUnknown_08592400, sub_80FF0F4 + + .align 2 +gUnknown_0859241C:: @ 859241C + .2byte 0x0000, 0x0004, 0x0020, 0x0004, 0x0040, 0x0004, 0x0060, 0x0004, 0xffff, 0x0000 + + .align 2 +gUnknown_08592430:: @ 8592430 + .2byte 0x0000, 0x0044, 0x0020, 0x0044, 0x0040, 0x0044, 0x0060, 0x0044, 0xffff, 0x0000 + + .align 2 +gUnknown_08592444:: @ 8592444 + .4byte gUnknown_0859241C + .4byte gUnknown_08592430 + + .align 2 +gUnknown_0859244C:: @ 859244C + .2byte 0x0100, 0x0100, 0x0000, 0x0000, 0xfff5, 0x0000, 0x0600, 0x0000, 0x000b, 0x0000, 0x0600, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_0859246C:: @ 859246C + .2byte 0xff00, 0x0100, 0x0000, 0x0000, 0x000b, 0x0000, 0x0600, 0x0000, 0xfff5, 0x0000, 0x0600, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_0859248C:: @ 859248C + .4byte gUnknown_0859244C + .4byte gUnknown_0859246C + + .align 2 +gUnknown_08592494:: @ 8592494 + spr_template 0x27ca, 0x27ca, gUnknown_0852499C, gUnknown_08592444, NULL, gUnknown_0859248C, sub_80FF374 + + .align 2 +gUnknown_085924AC:: @ 85924AC + .2byte 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0030, 0x0e00, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_085924C4:: @ 85924C4 + .2byte 0xfff0, 0xfff0, 0x0100, 0x0000, 0x7ffe, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_085924D4:: @ 85924D4 + .4byte gUnknown_085924AC + .4byte gUnknown_085924C4 + + .align 2 +gUnknown_085924DC:: @ 85924DC + spr_template 0x27a3, 0x27a3, gUnknown_085249CC, gUnknown_085921C8, NULL, gUnknown_085924D4, sub_80FF698 + + .align 2 +gUnknown_085924F4:: @ 85924F4 + .2byte 0x0000, 0x0007, 0x0010, 0x0007, 0x0020, 0x0007, 0x0030, 0x0007, 0xffff, 0x0000 + + .align 2 +gUnknown_08592508:: @ 8592508 + .2byte 0x0000, 0x0047, 0x0010, 0x0047, 0x0020, 0x0047, 0x0030, 0x0047, 0xffff, 0x0000 + + .align 2 +gUnknown_0859251C:: @ 859251C + .2byte 0x0000, 0x0007, 0x0010, 0x0007, 0x0020, 0x0007, 0xffff, 0x0000 + + .align 2 +gUnknown_0859252C:: @ 859252C + .2byte 0x0000, 0x0047, 0x0010, 0x0047, 0x0020, 0x0047, 0xffff, 0x0000 + + .align 2 +gUnknown_0859253C:: @ 859253C + .4byte gUnknown_085924F4 + .4byte gUnknown_08592508 + .4byte gUnknown_0859251C + .4byte gUnknown_0859252C + + .align 2 +gUnknown_0859254C:: @ 859254C + spr_template 0x27ef, 0x27ef, gUnknown_08524914, gUnknown_0859253C, NULL, gDummySpriteAffineAnimTable, sub_80FF768 + + .align 2 +gUnknown_08592564:: @ 8592564 + spr_template 0x27ef, 0x27ef, gUnknown_08524914, gUnknown_0859253C, NULL, gDummySpriteAffineAnimTable, sub_80FF7EC + + .align 2 +gUnknown_0859257C:: @ 859257C + .2byte 0x0003, 0x0003, 0x0000, 0x0005, 0xfffe, 0x0000 + + .align 2 +gUnknown_08592588:: @ 8592588 + .4byte gUnknown_0859257C + + .align 2 +gUnknown_0859258C:: @ 859258C + spr_template 0x27a3, 0x27a3, gUnknown_08524904, gUnknown_08592588, NULL, gDummySpriteAffineAnimTable, sub_80FF934 + + .align 2 +gUnknown_085925A4:: @ 85925A4 + .2byte 0x0000, 0x001e, 0xffff, 0x0000 + + .align 2 +gUnknown_085925AC:: @ 85925AC + .4byte gUnknown_085925A4 + + .align 2 +gUnknown_085925B0:: @ 85925B0 + .2byte 0x0000, 0x0000, 0x0afc, 0x0000, 0x0000, 0x0000, 0x1404, 0x0000 + .2byte 0x0000, 0x0000, 0x0afc, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_085925D0:: @ 85925D0 + .2byte 0x0000, 0x0000, 0x02ff, 0x0000, 0x0000, 0x0000, 0x0401, 0x0000 + .2byte 0x0000, 0x0000, 0x04ff, 0x0000, 0x0000, 0x0000, 0x0401, 0x0000 + .2byte 0x0000, 0x0000, 0x04ff, 0x0000, 0x0000, 0x0000, 0x0201, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08592608:: @ 8592608 + .4byte gUnknown_085925B0 + .4byte gUnknown_085925D0 + + .align 2 +gUnknown_08592610:: @ 8592610 + spr_template 0x27f0, 0x27f0, gUnknown_08524974, gUnknown_085925AC, NULL, gUnknown_08592608, sub_80FFB18 + + .align 2 +gUnknown_08592628:: @ 8592628 + spr_template 0x27f0, 0x27f0, gUnknown_08524974, gUnknown_085925AC, NULL, gUnknown_08592608, sub_80FFBF4 + + .align 2 +gUnknown_08592640:: @ 8592640 + .2byte 0x0000, 0x0004, 0x0004, 0x0004, 0x0008, 0x0004, 0x000c, 0x0004, 0xffff, 0x0000 + + .align 2 +gUnknown_08592654:: @ 8592654 + .4byte gUnknown_08592640 + + .align 2 +gUnknown_08592658:: @ 8592658 + spr_template 0x27d3, 0x27d3, gUnknown_0852490C, gUnknown_08592654, NULL, gDummySpriteAffineAnimTable, sub_80FFC70 + + .align 2 +gUnknown_08592670:: @ 8592670 + spr_template 0x27f0, 0x27f0, gUnknown_08524974, gUnknown_085925AC, NULL, gUnknown_08592608, sub_80FFCB4 + + .align 2 +gUnknown_08592688:: @ 8592688 + .2byte 0x0000, 0x0000, 0x0300, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08592698:: @ 8592698 + .2byte 0x0000, 0xfff6, 0x0300, 0x0000, 0x0000, 0xfffa, 0x0300, 0x0000 + .2byte 0x0000, 0xfffe, 0x0300, 0x0000, 0x0000, 0x0000, 0x0300, 0x0000 + .2byte 0x0000, 0x0002, 0x0300, 0x0000, 0x0000, 0x0006, 0x0300, 0x0000 + .2byte 0x0000, 0x000a, 0x0300, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_085926D8:: @ 85926D8 + .4byte gUnknown_08592688 + .4byte gUnknown_08592698 + .4byte gUnknown_085925B0 + .4byte gUnknown_085925D0 + + .align 2 +gUnknown_085926E8:: @ 85926E8 + spr_template 0x27f0, 0x27f0, gUnknown_08524974, gUnknown_085925AC, NULL, gUnknown_085926D8, sub_80FFDBC + + .align 2 +gUnknown_08592700:: @ 8592700 + .2byte 0x1805, 0x0001, 0x0004, 0x1008, 0x00ff, 0x0002, 0x1008, 0x0001 + .2byte 0x0002, 0x1008, 0x0001, 0x0002, 0x1008, 0x0001, 0x0010, 0x0000 + .2byte 0x007f, 0x0000 + + .align 2 +gUnknown_08592724:: @ 8592724 + .2byte 0x001c, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_0859272C:: @ 859272C + .2byte 0x0020, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08592734:: @ 8592734 + .2byte 0x0014, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_0859273C:: @ 859273C + .2byte 0x001c, 0x0041, 0xffff, 0x0000 + + .align 2 +gUnknown_08592744:: @ 8592744 + .2byte 0x0010, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_0859274C:: @ 859274C + .2byte 0x0010, 0x0041, 0xffff, 0x0000 + + .align 2 +gUnknown_08592754:: @ 8592754 + .2byte 0x001c, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_0859275C:: @ 859275C + .4byte gUnknown_08592724 + .4byte gUnknown_0859272C + .4byte gUnknown_08592734 + .4byte gUnknown_0859273C + .4byte gUnknown_08592744 + .4byte gUnknown_0859274C + .4byte gUnknown_08592754 + + .align 2 +gUnknown_08592778:: @ 8592778 + spr_template 0x274f, 0x274f, gUnknown_0852490C, gUnknown_0859275C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + + .align 2 +gUnknown_08592790:: @ 8592790 + .2byte 0x0100, 0x0100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0104, 0x0000 + .2byte 0x7ffe, 0x0001, 0x0000, 0x0000 + + .align 2 +gUnknown_085927A8:: @ 85927A8 + .4byte gUnknown_08592790 + + .align 2 +gUnknown_085927AC:: @ 85927AC + spr_template 0x27af, 0x27af, gUnknown_08524904, gUnknown_08592318, NULL, gDummySpriteAffineAnimTable, sub_8100640 + + .align 2 +gUnknown_085927C4:: @ 85927C4 + spr_template 0x27af, 0x27af, gUnknown_0852496C, gUnknown_08592314, NULL, gUnknown_085927A8, sub_8100640 + + .align 2 +gUnknown_085927DC:: @ 85927DC + .2byte 0x0100, 0x0100, 0x0000, 0x0000, 0x0000, 0x0000, 0x01f6, 0x0000 + .2byte 0x7ffe, 0x0001, 0x0000, 0x0000 + + .align 2 +gUnknown_085927F4:: @ 85927F4 + .2byte 0x00c0, 0x00c0, 0x0000, 0x0000, 0x0000, 0x0000, 0x01f4, 0x0000 + .2byte 0x7ffe, 0x0001, 0x0000, 0x0000 + + .align 2 +gUnknown_0859280C:: @ 859280C + .2byte 0x008f, 0x008f, 0x0000, 0x0000, 0x0000, 0x0000, 0x01f1, 0x0000 + .2byte 0x7ffe, 0x0001, 0x0000, 0x0000 + + .align 2 +gUnknown_08592824:: @ 8592824 + .4byte gUnknown_085927DC + + .align 2 +gUnknown_08592828:: @ 8592828 + .4byte gUnknown_085927F4 + + .align 2 +gUnknown_0859282C:: @ 859282C + .4byte gUnknown_0859280C + + .align 2 +gUnknown_08592830:: @ 8592830 + spr_template 0x281f, 0x281f, gUnknown_0852496C, gDummySpriteAnimTable, NULL, gUnknown_08592824, sub_8100640 + + .align 2 +gUnknown_08592848:: @ 8592848 + spr_template 0x281f, 0x281f, gUnknown_0852496C, gDummySpriteAnimTable, NULL, gUnknown_08592828, sub_8100640 + + .align 2 +gUnknown_08592860:: @ 8592860 + spr_template 0x281f, 0x281f, gUnknown_0852496C, gDummySpriteAnimTable, NULL, gUnknown_0859282C, sub_8100640 + + .align 2 +gUnknown_08592878:: @ 8592878 + .2byte 0x001f, 0x027f, 0x03ff, 0x03e0, 0x7dc5, 0x7d56, 0x7eb6, 0x0000 + + .align 2 +gUnknown_08592888:: @ 8592888 + spr_template 0x281a, 0x281a, gUnknown_0852496C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8100898 + + .align 2 +gUnknown_085928A0:: @ 85928A0 + .2byte 0x0040, 0x0003, 0x0050, 0x0003, 0x0060, 0x0003, 0x0070, 0x0006, 0xffff, 0x0000 + + .align 2 +gUnknown_085928B4:: @ 85928B4 + .2byte 0x0040, 0x0043, 0x0050, 0x0043, 0x0060, 0x0043, 0x0070, 0x0046, 0xffff, 0x0000 + + .align 2 +gUnknown_085928C8:: @ 85928C8 + .4byte gUnknown_085928A0 + .4byte gUnknown_085928B4 + + .align 2 +gUnknown_085928D0:: @ 85928D0 + spr_template 0x2748, 0x2748, gUnknown_08524914, gUnknown_085928C8, NULL, gDummySpriteAffineAnimTable, sub_8100A50 + + .align 2 +gUnknown_085928E8:: @ 85928E8 + spr_template 0x282f, 0x282f, gUnknown_08524914, gUnknown_085928C8, NULL, gDummySpriteAffineAnimTable, sub_8100A50 + + .align 2 +gUnknown_08592900:: @ 8592900 + .2byte 0x0000, 0x0004, 0x0010, 0x0004, 0x0020, 0x0004, 0x0030, 0x0004, 0x0040, 0x0005, 0xffff, 0x0000 + + .align 2 +gUnknown_08592918:: @ 8592918 + .4byte gUnknown_08592900 + + .align 2 +gUnknown_0859291C:: @ 859291C + spr_template 0x2725, 0x2725, gUnknown_08524914, gUnknown_08592918, NULL, gDummySpriteAffineAnimTable, sub_81009F8 + + .align 2 +gUnknown_08592934:: @ 8592934 + spr_template 0x2726, 0x2726, gUnknown_08524914, gUnknown_08592918, NULL, gDummySpriteAffineAnimTable, sub_81009F8 + + .align 2 +gUnknown_0859294C:: @ 859294C + .2byte 0x0100, 0x0100, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_0859295C:: @ 859295C + .2byte 0x0100, 0x0100, 0x0020, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_0859296C:: @ 859296C + .2byte 0x0100, 0x0100, 0x0040, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_0859297C:: @ 859297C + .2byte 0x0100, 0x0100, 0x0060, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_0859298C:: @ 859298C + .2byte 0x0100, 0x0100, 0x0080, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_0859299C:: @ 859299C + .2byte 0x0100, 0x0100, 0x00a0, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_085929AC:: @ 85929AC + .2byte 0x0100, 0x0100, 0x00c0, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_085929BC:: @ 85929BC + .2byte 0x0100, 0x0100, 0x00e0, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_085929CC:: @ 85929CC + .4byte gUnknown_0859294C + .4byte gUnknown_0859295C + .4byte gUnknown_0859296C + .4byte gUnknown_0859297C + .4byte gUnknown_0859298C + .4byte gUnknown_0859299C + .4byte gUnknown_085929AC + .4byte gUnknown_085929BC + + .align 2 +gUnknown_085929EC:: @ 85929EC + spr_template 0x279f, 0x279f, gUnknown_08524974, gDummySpriteAnimTable, NULL, gUnknown_085929CC, sub_8100A94 + + .align 2 +gUnknown_08592A04:: @ 8592A04 + .2byte 0x0000, 0x0005, 0x0010, 0x0005, 0x0020, 0x0005, 0x0030, 0x0005, 0xffff, 0x0000 + + .align 2 +gUnknown_08592A18:: @ 8592A18 + .4byte gUnknown_08592A04 + + .align 2 +gUnknown_08592A1C:: @ 8592A1C + spr_template 0x279a, 0x279a, gUnknown_08524A34, gUnknown_08592A18, NULL, gDummySpriteAffineAnimTable, sub_8100AE0 + + .align 2 +gUnknown_08592A34:: @ 8592A34 + spr_template 0x279a, 0x279a, gUnknown_08524A34, gUnknown_08592A18, NULL, gDummySpriteAffineAnimTable, sub_8100B88 + + .align 2 +gUnknown_08592A4C:: @ 8592A4C + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08592A54:: @ 8592A54 + .2byte 0x0004, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08592A5C:: @ 8592A5C + .2byte 0x0008, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08592A64:: @ 8592A64 + .2byte 0x000c, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08592A6C:: @ 8592A6C + .2byte 0x0010, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08592A74:: @ 8592A74 + .2byte 0x0014, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08592A7C:: @ 8592A7C + .2byte 0x0000, 0x0081, 0xffff, 0x0000 + + .align 2 +gUnknown_08592A84:: @ 8592A84 + .2byte 0x0004, 0x0081, 0xffff, 0x0000 + + .align 2 +gUnknown_08592A8C:: @ 8592A8C + .2byte 0x0008, 0x0081, 0xffff, 0x0000 + + .align 2 +gUnknown_08592A94:: @ 8592A94 + .2byte 0x000c, 0x0081, 0xffff, 0x0000 + + .align 2 +gUnknown_08592A9C:: @ 8592A9C + .4byte gUnknown_08592A4C + .4byte gUnknown_08592A54 + .4byte gUnknown_08592A5C + .4byte gUnknown_08592A64 + .4byte gUnknown_08592A6C + .4byte gUnknown_08592A74 + .4byte gUnknown_08592A7C + .4byte gUnknown_08592A84 + .4byte gUnknown_08592A8C + .4byte gUnknown_08592A94 + + .align 2 +gUnknown_08592AC4:: @ 8592AC4 + spr_template 0x2758, 0x2758, gUnknown_0852490C, gUnknown_08592A9C, NULL, gDummySpriteAffineAnimTable, sub_8100E1C + + .align 2 +gUnknown_08592ADC:: @ 8592ADC + spr_template 0x2828, 0x2828, gUnknown_08524A3C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8100EF0 + + .align 2 +gUnknown_08592AF4:: @ 8592AF4 + .2byte 0x0100, 0x0100, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08592B04:: @ 8592B04 + .2byte 0x0000, 0x0000, 0x0c02, 0x0000, 0x0000, 0x0000, 0x0600, 0x0000 + .2byte 0x0000, 0x0000, 0x18fe, 0x0000, 0x0000, 0x0000, 0x0600, 0x0000 + .2byte 0x0000, 0x0000, 0x0c02, 0x0000, 0x7ffe, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08592B34:: @ 8592B34 + .4byte gUnknown_08592AF4 + .4byte gUnknown_08592B04 + + .align 2 +gUnknown_08592B3C:: @ 8592B3C + spr_template 0x2773, 0x2773, gUnknown_08524A94, gDummySpriteAnimTable, NULL, gUnknown_08592B34, sub_81010CC + + .align 2 +gUnknown_08592B54:: @ 8592B54 + .2byte 0x0000, 0x0007, 0x0010, 0x0007, 0x0020, 0x0007, 0x0030, 0x0007 + .2byte 0x0040, 0x0007, 0x0050, 0x0007, 0x0060, 0x0007, 0x0070, 0x0007 + .2byte 0xfffe, 0x0000 + + .align 2 +gUnknown_08592B78:: @ 8592B78 + .4byte gUnknown_08592B54 + + .align 2 +gUnknown_08592B7C:: @ 8592B7C + spr_template 0x2741, 0x2741, gUnknown_08524914, gUnknown_08592B78, NULL, gDummySpriteAffineAnimTable, sub_810130C + + .align 2 +gUnknown_08592B94:: @ 8592B94 + spr_template 0x2741, 0x2741, gUnknown_08524914, gUnknown_08592B78, NULL, gDummySpriteAffineAnimTable, sub_810135C + + .align 2 +gUnknown_08592BAC:: @ 8592BAC + .2byte 0x0000, 0x000a, 0x0004, 0x000a, 0x0008, 0x000a, 0x000c, 0x000a + .2byte 0x0010, 0x001a, 0x0010, 0x0005, 0x0014, 0x0005, 0x0018, 0x000f + .2byte 0xffff, 0x0000 + + .align 2 +gUnknown_08592BD0:: @ 8592BD0 + .2byte 0x0000, 0x004a, 0x0004, 0x004a, 0x0008, 0x004a, 0x000c, 0x004a + .2byte 0x0010, 0x005a, 0x0010, 0x0045, 0x0014, 0x0045, 0x0018, 0x004f + .2byte 0xffff, 0x0000 + + .align 2 +gUnknown_08592BF4:: @ 8592BF4 + .4byte gUnknown_08592BAC + .4byte gUnknown_08592BD0 + + .align 2 +gUnknown_08592BFC:: @ 8592BFC + spr_template 0x2730, 0x2730, gUnknown_0852490C, gUnknown_08592BF4, NULL, gDummySpriteAffineAnimTable, sub_8101440 + + .align 2 +gUnknown_08592C14:: @ 8592C14 + .2byte 0x0000, 0x0028, 0xffff, 0x0000 + + .align 2 +gUnknown_08592C1C:: @ 8592C1C + .4byte gUnknown_08592C14 + + .align 2 +gUnknown_08592C20:: @ 8592C20 + .2byte 0x0014, 0x0014, 0x00e2, 0x0000, 0x0008, 0x0008, 0x1801, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000, 0x7ffd, 0x0000, 0x0000, 0x0000 + .2byte 0x0000, 0x0000, 0x1801, 0x0000, 0x7ffd, 0x000a, 0x0000, 0x0000 + + .align 2 +gUnknown_08592C50:: @ 8592C50 + .2byte 0x0014, 0x0014, 0x001e, 0x0000, 0x0008, 0x0008, 0x18ff, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000, 0x7ffd, 0x0000, 0x0000, 0x0000 + .2byte 0x0000, 0x0000, 0x18ff, 0x0000, 0x7ffd, 0x000a, 0x0000, 0x0000 + + .align 2 +gUnknown_08592C80:: @ 8592C80 + .4byte gUnknown_08592C20 + .4byte gUnknown_08592C50 + + .align 2 +gUnknown_08592C88:: @ 8592C88 + spr_template 0x27f4, 0x27f4, gUnknown_08524974, gUnknown_08592C1C, NULL, gUnknown_08592C80, sub_81014F4 + + .align 2 +gUnknown_08592CA0:: @ 8592CA0 + spr_template 0x271e, 0x271e, gUnknown_08524914, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_81015AC + + .align 2 +gUnknown_08592CB8:: @ 8592CB8 + spr_template 0x271e, 0x271e, gUnknown_0852490C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8101898 + + .align 2 +gUnknown_08592CD0:: @ 8592CD0 + .byte 0x40, 0x40, 0x00, 0xc0, 0xc0, 0x40, 0x20, 0xe0 + + .align 2 +gUnknown_08592CD8:: @ 8592CD8 + spr_template 0x0000, 0x0000, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8101940 + + .align 2 +gUnknown_08592CF0:: @ 8592CF0 + spr_template 0x0000, 0x0000, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8101B90 + + .align 2 +gUnknown_08592D08:: @ 8592D08 + .2byte 0x0000, 0x0004, 0x0010, 0x0004, 0x0020, 0x0004, 0x0030, 0x0004, 0xffff, 0x0000 + + .align 2 +gUnknown_08592D1C:: @ 8592D1C + .2byte 0x0030, 0x0004, 0xffff, 0x0000 + + .align 2 +gUnknown_08592D24:: @ 8592D24 + .4byte gUnknown_08592D08 + .4byte gUnknown_08592D1C + + .align 2 +gUnknown_08592D2C:: @ 8592D2C + spr_template 0x27c7, 0x27c7, gUnknown_08524914, gUnknown_08592D24, NULL, gDummySpriteAffineAnimTable, sub_8101F40 + + .align 2 +gUnknown_08592D44:: @ 8592D44 + spr_template 0x282e, 0x282e, gUnknown_08524914, gUnknown_08592D24, NULL, gDummySpriteAffineAnimTable, sub_8101FA8 + + .align 2 +gUnknown_08592D5C:: @ 8592D5C + spr_template 0x282e, 0x282e, gUnknown_08524914, gUnknown_08592D24, NULL, gDummySpriteAffineAnimTable, sub_8101FF0 + + .align 2 +gUnknown_08592D74:: @ 8592D74 + .2byte 0x0000, 0x0004, 0x0008, 0x000c, 0x0010, 0x0004, 0x0018, 0x0004, 0xffff, 0x0000 + + .align 2 +gUnknown_08592D88:: @ 8592D88 + .4byte gUnknown_08592D74 + + .align 2 +gUnknown_08592D8C:: @ 8592D8C + spr_template 0x27c8, 0x27c8, gUnknown_08524954, gUnknown_08592D88, NULL, gDummySpriteAffineAnimTable, sub_81020D8 + + .align 2 +gUnknown_08592DA4:: @ 8592DA4 + .2byte 0x0000, 0x0012, 0x0000, 0x0006, 0x0010, 0x0012, 0x0000, 0x0006 + .2byte 0x0010, 0x0006, 0x0020, 0x0012, 0x0010, 0x0006, 0x0020, 0x0006 + .2byte 0x0030, 0x0012, 0x0020, 0x0006, 0x0030, 0x0006, 0x0040, 0x0012 + .2byte 0x0030, 0x0006, 0x0040, 0x0036, 0xffff, 0x0000 + + .align 2 +gUnknown_08592DE0:: @ 8592DE0 + .4byte gUnknown_08592DA4 + + .align 2 +gUnknown_08592DE4:: @ 8592DE4 + spr_template 0x27c9, 0x27c9, gUnknown_08524914, gUnknown_08592DE0, NULL, gDummySpriteAffineAnimTable, sub_810217C + + .align 2 +gUnknown_08592DFC:: @ 8592DFC + spr_template 0x2721, 0x2721, gUnknown_08524904, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A7820 + + .align 2 +gUnknown_08592E14:: @ 8592E14 + .2byte 0x0000, 0x0003, 0x0010, 0x0003, 0x0020, 0x0003, 0x0030, 0x0003 + .2byte 0x0040, 0x0003, 0xffff, 0x0000 + + .align 2 +gUnknown_08592E2C:: @ 8592E2C + .4byte gUnknown_08592E14 + + .align 2 +gUnknown_08592E30:: @ 8592E30 + spr_template 0x272e, 0x272e, gUnknown_08524914, gUnknown_08592E2C, NULL, gDummySpriteAffineAnimTable, sub_80A77C8 + + .align 2 +gUnknown_08592E48:: @ 8592E48 + .2byte 0x0003, 0x0005, 0x0002, 0x0005, 0x0001, 0x0005, 0x0000, 0x0005, 0xffff, 0x0000 + + .align 2 +gUnknown_08592E5C:: @ 8592E5C + .4byte gUnknown_08592E48 + + .align 2 +gUnknown_08592E60:: @ 8592E60 + .2byte 0x0200, 0x0200, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08592E70:: @ 8592E70 + .4byte gUnknown_08592E60 + + .align 2 +gUnknown_08592E74:: @ 8592E74 + spr_template 0x2722, 0x2722, gUnknown_08524AE4, gUnknown_08592E5C, NULL, gUnknown_08592E70, sub_8102268 + + .align 2 +gUnknown_08592E8C:: @ 8592E8C + .2byte 0x0000, 0x0005, 0x0001, 0x0005, 0x0002, 0x0005, 0x0003, 0x0005, 0xffff, 0x0000 + + .align 2 +gUnknown_08592EA0:: @ 8592EA0 + .4byte gUnknown_08592E8C + + .align 2 +gUnknown_08592EA4:: @ 8592EA4 + spr_template 0x2722, 0x2722, gUnknown_08524AE4, gUnknown_08592EA0, NULL, gUnknown_08592E70, sub_810234C + + .align 2 +gUnknown_08592EBC:: @ 8592EBC + spr_template 0x27d2, 0x27d2, gUnknown_08524A3C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_81024E0 + + .align 2 +gUnknown_08592ED4:: @ 8592ED4 + .2byte 0x0000, 0x0008, 0x0004, 0x0008, 0x0008, 0x0008, 0x000c, 0x0008, 0xfffe, 0x0000 + + .align 2 +gUnknown_08592EE8:: @ 8592EE8 + .4byte gUnknown_08592ED4 + + .align 2 +gUnknown_08592EEC:: @ 8592EEC + spr_template 0x27d3, 0x27d3, gUnknown_0852490C, gUnknown_08592EE8, NULL, gDummySpriteAffineAnimTable, sub_8102540 + + .align 2 +gUnknown_08592F04:: @ 8592F04 + .2byte 0x0000, 0x0002, 0x0010, 0x0002, 0x0020, 0x0002, 0x0030, 0x0003 + .2byte 0x0040, 0x0005, 0x0050, 0x0003, 0x0060, 0x0002, 0x0000, 0x0002 + .2byte 0xffff, 0x0000 + + .align 2 +gUnknown_08592F28:: @ 8592F28 + .4byte gUnknown_08592F04 + + .align 2 +gUnknown_08592F2C:: @ 8592F2C + spr_template 0x272f, 0x272f, gUnknown_08524914, gUnknown_08592F28, NULL, gDummySpriteAffineAnimTable, sub_80A77C8 + + .align 2 +gUnknown_08592F44:: @ 8592F44 + spr_template 0x2724, 0x2724, gUnknown_08524914, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8102844 + + .align 2 +gUnknown_08592F5C:: @ 8592F5C + .2byte 0x0000, 0x0002, 0x0010, 0x0002, 0x0020, 0x0002, 0x0030, 0x0002, 0xffff, 0x0000 + + .align 2 +gUnknown_08592F70:: @ 8592F70 + .4byte gUnknown_08592F5C + + .align 2 +gUnknown_08592F74:: @ 8592F74 + spr_template 0x27d0, 0x27d0, gUnknown_08524914, gUnknown_08592F70, NULL, gDummySpriteAffineAnimTable, sub_8102BCC + + .align 2 +gUnknown_08592F8C:: @ 8592F8C + .2byte 0x0000, 0x000a, 0xffff, 0x0000 + + .align 2 +gUnknown_08592F94:: @ 8592F94 + .2byte 0x0004, 0x000a, 0xffff, 0x0000 + + .align 2 +gUnknown_08592F9C:: @ 8592F9C + .2byte 0x0008, 0x0029, 0xffff, 0x0000 + + .align 2 +gUnknown_08592FA4:: @ 8592FA4 + .2byte 0x000c, 0x000a, 0xffff, 0x0000 + + .align 2 +gUnknown_08592FAC:: @ 8592FAC + .2byte 0x0010, 0x000a, 0xffff, 0x0000 + + .align 2 +gUnknown_08592FB4:: @ 8592FB4 + .2byte 0x0014, 0x000a, 0xffff, 0x0000 + + .align 2 +gUnknown_08592FBC:: @ 8592FBC + .2byte 0x0000, 0x008a, 0xffff, 0x0000 + + .align 2 +gUnknown_08592FC4:: @ 8592FC4 + .2byte 0x0004, 0x008a, 0xffff, 0x0000 + + .align 2 +gUnknown_08592FCC:: @ 8592FCC + .4byte gUnknown_08592F8C + .4byte gUnknown_08592F94 + .4byte gUnknown_08592F9C + .4byte gUnknown_08592FA4 + .4byte gUnknown_08592FAC + .4byte gUnknown_08592FB4 + .4byte gUnknown_08592FBC + .4byte gUnknown_08592FC4 + + .align 2 +gUnknown_08592FEC:: @ 8592FEC + .2byte 0x000c, 0x000c, 0x1000, 0x0000, 0xfff4, 0xfff4, 0x1000, 0x0000 + .2byte 0x7ffe, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08593004:: @ 8593004 + .4byte gUnknown_08592FEC + + .align 2 +gUnknown_08593008:: @ 8593008 + spr_template 0x2758, 0x2758, gUnknown_085249CC, gUnknown_08592FCC, NULL, gUnknown_08593004, sub_8102CD4 + + .align 2 +gUnknown_08593020:: @ 8593020 + .2byte 0x2758, 0x7fff, 0x735f, 0x6adf, 0x623f, 0x59bf, 0x2771, 0x7fff + .2byte 0x6bf9, 0x57f4, 0x43ef, 0x33ea, 0x27c9, 0x7fff, 0x63ff, 0x47ff + .2byte 0x2bff, 0x0fff, 0x27bf, 0x7fff, 0x7f9a, 0x7f55, 0x7f10, 0x7ecc + + .align 2 +gUnknown_08593050:: @ 8593050 + spr_template 0x2758, 0x2758, gUnknown_085249CC, gUnknown_08592FCC, NULL, gUnknown_08593004, sub_8102EB0 + + .align 2 +gUnknown_08593068:: @ 8593068 + spr_template 0x27d1, 0x27d1, gUnknown_08524914, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8102FB8 + + .align 2 +gUnknown_08593080:: @ 8593080 + .2byte 0x00a0, 0x00a0, 0x0000, 0x0000, 0x0004, 0x0004, 0x0100, 0x0000 + .2byte 0x7ffe, 0x0001, 0x0000, 0x0000 + + .align 2 +gUnknown_08593098:: @ 8593098 + .4byte gUnknown_08593080 + + .align 2 +gUnknown_0859309C:: @ 859309C + spr_template 0x2758, 0x2758, gUnknown_085249CC, gUnknown_08592FCC, NULL, gUnknown_08593098, sub_8103028 + + .align 2 +gUnknown_085930B4:: @ 85930B4 + .2byte 0x0000, 0x0042, 0x0010, 0x0042, 0x0020, 0x0042, 0x0030, 0x0042, 0xffff, 0x0000 + + .align 2 +gUnknown_085930C8:: @ 85930C8 + .2byte 0x0030, 0x0042, 0x0020, 0x0042, 0x0010, 0x0042, 0x0000, 0x0042, 0xffff, 0x0000 + + .align 2 +gUnknown_085930DC:: @ 85930DC + .2byte 0x0000, 0x0002, 0x0010, 0x0002, 0x0020, 0x0002, 0x0030, 0x0002, 0xffff, 0x0000 + + .align 2 +gUnknown_085930F0:: @ 85930F0 + .2byte 0x0030, 0x0002, 0x0020, 0x0002, 0x0010, 0x0002, 0x0000, 0x0002, 0xffff, 0x0000 + + .align 2 +gUnknown_08593104:: @ 8593104 + .4byte gUnknown_085930B4 + .4byte gUnknown_085930DC + .4byte gUnknown_085930C8 + .4byte gUnknown_085930F0 + + .align 2 +gUnknown_08593114:: @ 8593114 + spr_template 0x27e1, 0x27e1, gUnknown_08524914, gUnknown_08593104, NULL, gDummySpriteAffineAnimTable, sub_8103164 + + .align 2 +gUnknown_0859312C:: @ 859312C + .2byte 0x0010, 0x0010, 0x0000, 0x0000, 0x001e, 0x001e, 0x0800, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08593144:: @ 8593144 + .2byte 0x0000, 0x0000, 0x0b04, 0x0000, 0x0000, 0x0000, 0x0bfc, 0x0000 + .2byte 0x7ffd, 0x0002, 0x0000, 0x0000, 0xffe2, 0xffe2, 0x0800, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000, 0x0010, 0x0010, 0x0000, 0x0000 + .2byte 0x001e, 0x001e, 0x0800, 0x0000, 0x0000, 0x0000, 0x1000, 0x0000 + .2byte 0x7ffd, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0b04, 0x0000 + .2byte 0x0000, 0x0000, 0x0bfc, 0x0000, 0x7ffd, 0x0002, 0x0000, 0x0000 + .2byte 0xffe2, 0xffe2, 0x0800, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_085931B4:: @ 85931B4 + .4byte gUnknown_0859312C + .4byte gUnknown_08593144 + + .align 2 +gUnknown_085931BC:: @ 85931BC + spr_template 0x2750, 0x2750, gUnknown_085249D4, gDummySpriteAnimTable, NULL, gUnknown_085931B4, sub_8103208 + + .align 2 +gUnknown_085931D4:: @ 85931D4 + spr_template 0x2750, 0x2750, gUnknown_08524974, gDummySpriteAnimTable, NULL, gUnknown_085931B4, sub_8103284 + + .align 2 +gUnknown_085931EC:: @ 85931EC + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_085931F4:: @ 85931F4 + .2byte 0x0000, 0x0041, 0xffff, 0x0000 + + .align 2 +gUnknown_085931FC:: @ 85931FC + .2byte 0x0000, 0x0004, 0x0010, 0x0004, 0x0020, 0x0004, 0x0010, 0x0004 + .2byte 0x0000, 0x0004, 0x0010, 0x0004, 0x0020, 0x0004, 0xffff, 0x0000 + + .align 2 +gUnknown_0859321C:: @ 859321C + .2byte 0x0000, 0x0044, 0x0010, 0x0044, 0x0020, 0x0044, 0x0010, 0x0044 + .2byte 0x0000, 0x0044, 0x0010, 0x0044, 0x0020, 0x0044, 0xffff, 0x0000 + + .align 2 +gUnknown_0859323C:: @ 859323C + .4byte gUnknown_085931EC + .4byte gUnknown_085931F4 + .4byte gUnknown_085931FC + .4byte gUnknown_0859321C + + .align 2 +gUnknown_0859324C:: @ 859324C + spr_template 0x27e6, 0x27e6, gUnknown_08524914, gUnknown_0859323C, NULL, gDummySpriteAffineAnimTable, sub_8103390 + + .align 2 +gUnknown_08593264:: @ 8593264 + spr_template 0x2750, 0x2750, gUnknown_08524914, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8103448 + + .align 2 +gUnknown_0859327C:: @ 859327C + .2byte 0x0004, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08593284:: @ 8593284 + .4byte gUnknown_0859327C + + .align 2 +gUnknown_08593288:: @ 8593288 + spr_template 0x2758, 0x2758, gUnknown_0852490C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8103498 + + .align 2 +gUnknown_085932A0:: @ 85932A0 + spr_template 0x0000, 0x0000, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_810358C + + .align 2 +gUnknown_085932B8:: @ 85932B8 + spr_template 0x27a1, 0x27a1, gUnknown_08524A9C, gDummySpriteAnimTable, NULL, gUnknown_08597060, sub_8103620 + + .align 2 +gUnknown_085932D0:: @ 85932D0 + .2byte 0x0000, 0x0009, 0x0010, 0x0003, 0x0020, 0x0003, 0x0030, 0x0003, 0xffff, 0x0000 + + .align 2 +gUnknown_085932E4:: @ 85932E4 + .4byte gUnknown_085932D0 + + .align 2 +gUnknown_085932E8:: @ 85932E8 + .2byte 0x0050, 0x0050, 0x0000, 0x0000, 0x0009, 0x0009, 0x1200, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08593300:: @ 8593300 + .4byte gUnknown_085932E8 + + .align 2 +gUnknown_08593304:: @ 8593304 + spr_template 0x2717, 0x2717, gUnknown_08524974, gUnknown_085932E4, NULL, gUnknown_08593300, sub_80A77C8 + + .align 2 +gUnknown_0859331C:: @ 859331C + .2byte 0x0000, 0x0043, 0x0008, 0x0043, 0x0010, 0x0043, 0x0018, 0x0043 + .2byte 0x0020, 0x0043, 0x0028, 0x0043, 0x0030, 0x0043, 0xfffd, 0x0001 + .2byte 0xffff, 0x0000 + + .align 2 +gUnknown_08593340:: @ 8593340 + .4byte gUnknown_0859331C + + .align 2 +gUnknown_08593344:: @ 8593344 + spr_template 0x275b, 0x275b, gUnknown_08524934, gUnknown_08593340, NULL, gDummySpriteAffineAnimTable, sub_81037D8 + + .align 2 +gUnknown_0859335C:: @ 859335C + .2byte 0x0010, 0x0100, 0x0000, 0x0000, 0x0014, 0x0000, 0x0c00, 0x0000 + .2byte 0x0000, 0x0000, 0x2000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_0859337C:: @ 859337C + .4byte gUnknown_0859335C + + .align 2 +gUnknown_08593380:: @ 8593380 + spr_template 0x2715, 0x2715, gUnknown_08524ADC, gDummySpriteAnimTable, NULL, gUnknown_0859337C, sub_810387C + + .align 2 +gUnknown_08593398:: @ 8593398 + spr_template 0x2713, 0x2713, gUnknown_08524B14, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_81038C8 + + .align 2 +gUnknown_085933B0:: @ 85933B0 + spr_template 0x2713, 0x2713, gUnknown_08524A54, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8103AA4 + + .align 2 +gUnknown_085933C8:: @ 85933C8 + .2byte 0x0020, 0x0020, 0x0000, 0x0000, 0x0007, 0x0007, 0xc800, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_085933E0:: @ 85933E0 + .2byte 0x0005, 0x0005, 0x0a00, 0x0000, 0xfff6, 0xfff6, 0x0a00, 0x0000 + .2byte 0x000a, 0x000a, 0x0a00, 0x0000, 0xfff6, 0xfff6, 0x0a00, 0x0000 + .2byte 0x000a, 0x000a, 0x0a00, 0x0000, 0xfff6, 0xfff6, 0x0a00, 0x0000 + .2byte 0x000a, 0x000a, 0x0a00, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08593420:: @ 8593420 + .4byte gUnknown_085933C8 + + .align 2 +gUnknown_08593424:: @ 8593424 + .4byte gUnknown_085933E0 + + .align 2 +gUnknown_08593428:: @ 8593428 + spr_template 0x27b3, 0x27b3, gUnknown_08524A14, gDummySpriteAnimTable, NULL, gUnknown_08593420, sub_80A7820 + + .align 2 +gUnknown_08593440:: @ 8593440 + spr_template 0x27b4, 0x27b4, gUnknown_08524A14, gDummySpriteAnimTable, NULL, gUnknown_08593420, sub_80A7820 + + .align 2 +gUnknown_08593458:: @ 8593458 + spr_template 0x2814, 0x2814, gUnknown_08524A1C, gDummySpriteAnimTable, NULL, gUnknown_08593420, sub_80A7820 + + .align 2 +gUnknown_08593470:: @ 8593470 + spr_template 0x2830, 0x2830, gUnknown_08524A14, gDummySpriteAnimTable, NULL, gUnknown_08593424, sub_8108C94 + + .align 2 +gUnknown_08593488:: @ 8593488 + spr_template 0x27bf, 0x27bf, gUnknown_0852490C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A78AC + + .align 2 +gUnknown_085934A0:: @ 85934A0 + spr_template 0x27c2, 0x27c2, gUnknown_08524A3C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8103FE8 + + .align 2 +gUnknown_085934B8:: @ 85934B8 + .2byte 0x0008, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_085934C0:: @ 85934C0 + .4byte gUnknown_085934B8 + + .align 2 +gUnknown_085934C4:: @ 85934C4 + .2byte 0x0000, 0x0000, 0x010a, 0x0000, 0x7ffe, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_085934D4:: @ 85934D4 + .4byte gUnknown_085934C4 + + .align 2 +gUnknown_085934D8:: @ 85934D8 + spr_template 0x2774, 0x2774, gUnknown_0852496C, gUnknown_085934C0, NULL, gDummySpriteAffineAnimTable, sub_8104088 + + .align 2 +gUnknown_085934F0:: @ 85934F0 + spr_template 0x2774, 0x2774, gUnknown_0852496C, gUnknown_085934C0, NULL, gUnknown_085934D4, sub_810413C + + .align 2 +gUnknown_08593508:: @ 8593508 + .2byte 0x0000, 0x0000, 0x0114, 0x0000, 0x7ffe, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08593518:: @ 8593518 + .4byte gUnknown_08593508 + + .align 2 +gUnknown_0859351C:: @ 859351C + spr_template 0x2716, 0x2716, gUnknown_0852496C, gDummySpriteAnimTable, NULL, gUnknown_08593518, sub_81041C4 + + .align 2 +gUnknown_08593534:: @ 8593534 + .2byte 0x0010, 0x0100, 0x0000, 0x0000, 0x0004, 0x0000, 0x2800, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_0859354C:: @ 859354C + .4byte gUnknown_08593534 + + .align 2 +gUnknown_08593550:: @ 8593550 + spr_template 0x2719, 0x2719, gUnknown_085249BC, gDummySpriteAnimTable, NULL, gUnknown_0859354C, sub_8104304 + + .align 2 +gUnknown_08593568:: @ 8593568 + .2byte 0x0000, 0x0003, 0x0010, 0x0003, 0x0020, 0x0014, 0xffff, 0x0000 + + .align 2 +gUnknown_08593578:: @ 8593578 + .2byte 0x0000, 0x00c3, 0x0010, 0x00c3, 0x0020, 0x00d4, 0xffff, 0x0000 + + .align 2 +gUnknown_08593588:: @ 8593588 + .4byte gUnknown_08593568 + .4byte gUnknown_08593578 + + .align 2 +gUnknown_08593590:: @ 8593590 + spr_template 0x279a, 0x279a, gUnknown_08524A34, gUnknown_08593588, NULL, gDummySpriteAffineAnimTable, sub_8104364 + + .align 2 +gUnknown_085935A8:: @ 85935A8 + .2byte 0x0000, 0x0002, 0x0010, 0x0002, 0x0020, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_085935B8:: @ 85935B8 + .2byte 0x0000, 0x00c2, 0x0010, 0x00c2, 0x0020, 0x00c1, 0xffff, 0x0000 + + .align 2 +gUnknown_085935C8:: @ 85935C8 + .4byte gUnknown_085935A8 + .4byte gUnknown_085935B8 + + .align 2 +gUnknown_085935D0:: @ 85935D0 + spr_template 0x279a, 0x279a, gUnknown_08524A34, gUnknown_085935C8, NULL, gDummySpriteAffineAnimTable, sub_8104414 + + .align 2 +gUnknown_085935E8:: @ 85935E8 + .2byte 0xfffa, 0x0004, 0x0800, 0x0000, 0x000a, 0xfff6, 0x0800, 0x0000 + .2byte 0xfffc, 0x0006, 0x0800, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08593608:: @ 8593608 + .2byte 0xfffc, 0xfffb, 0x0c00, 0x0000, 0x0000, 0x0000, 0x1800, 0x0000 + .2byte 0x0004, 0x0005, 0x0c00, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08593628:: @ 8593628 + .2byte 0x0000, 0x0044, 0x0004, 0x0068, 0x0008, 0x0044, 0x000c, 0x0044, 0xffff, 0x0000 + + .align 2 +gUnknown_0859363C:: @ 859363C + .2byte 0x0000, 0x0004, 0x0004, 0x0028, 0x0008, 0x0004, 0x000c, 0x0004, 0xffff, 0x0000 + + .align 2 +gUnknown_08593650:: @ 8593650 + .4byte gUnknown_08593628 + .4byte gUnknown_0859363C + + .align 2 +gUnknown_08593658:: @ 8593658 + spr_template 0x2766, 0x2766, gUnknown_0852490C, gUnknown_08593650, NULL, gDummySpriteAffineAnimTable, sub_8104B1C + + .align 2 +gUnknown_08593670:: @ 8593670 + .2byte 0x000b, 0x000b, 0x0800, 0x0000, 0xfff5, 0xfff5, 0x0800, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08593688:: @ 8593688 + .4byte gUnknown_08593670 + + .align 2 +gUnknown_0859368C:: @ 859368C + spr_template 0x2767, 0x2767, gUnknown_0852496C, gDummySpriteAnimTable, NULL, gUnknown_08593688, sub_8104BAC + + .align 2 +gUnknown_085936A4:: @ 85936A4 + .2byte 0xfff6, 0x0009, 0x0700, 0x0000, 0x0014, 0xffec, 0x0700, 0x0000 + .2byte 0xffec, 0x0014, 0x0700, 0x0000, 0x000a, 0xfff7, 0x0700, 0x0000 + .2byte 0x7ffd, 0x0002, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_085936D4:: @ 85936D4 + spr_template 0x2712, 0x2712, gUnknown_08524914, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_810501C + + .align 2 +gUnknown_085936EC:: @ 85936EC + spr_template 0x27d5, 0x27d5, gUnknown_08524914, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A7938 + + .align 2 +gUnknown_08593704:: @ 8593704 + .2byte 0x0000, 0x0005, 0x0010, 0x0005, 0x0020, 0x0005, 0x0030, 0x0005, 0xffff, 0x0000 + + .align 2 +gUnknown_08593718:: @ 8593718 + .4byte gUnknown_08593704 + + .align 2 +gUnknown_0859371C:: @ 859371C + spr_template 0x27d6, 0x27d6, gUnknown_08524914, gUnknown_08593718, NULL, gDummySpriteAffineAnimTable, sub_80A77C8 + + .align 2 +gUnknown_08593734:: @ 8593734 + .2byte 0x0000, 0x0000, 0x02f8, 0x0000, 0x0000, 0x0000, 0x0408, 0x0000 + .2byte 0x0000, 0x0000, 0x02f8, 0x0000, 0x7ffe, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08593754:: @ 8593754 + .2byte 0x0100, 0x0100, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08593764:: @ 8593764 + .2byte 0xfff8, 0x0004, 0x0800, 0x0000, 0x7ffd, 0x0000, 0x0000, 0x0000 + .2byte 0x0010, 0xfff8, 0x0800, 0x0000, 0xfff0, 0x0008, 0x0800, 0x0000 + .2byte 0x7ffd, 0x0001, 0x0000, 0x0000, 0x0100, 0x0100, 0x0000, 0x0000 + .2byte 0x0000, 0x0000, 0x0f00, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_085937A4:: @ 85937A4 + .4byte gUnknown_08593734 + .4byte gUnknown_08593754 + .4byte gUnknown_08593764 + + .align 2 +gUnknown_085937B0:: @ 85937B0 + spr_template 0x27da, 0x27da, gUnknown_08524AF4, gDummySpriteAnimTable, NULL, gUnknown_085937A4, sub_8105538 + + .align 2 +gUnknown_085937C8:: @ 85937C8 + .2byte 0x0010, 0x0010, 0x0000, 0x0000, 0x0010, 0x0010, 0x1e00, 0x0000 + .2byte 0x7fff, 0x0001, 0x0000, 0x0000 + + .align 2 +gUnknown_085937E0:: @ 85937E0 + .2byte 0x0010, 0x0010, 0x0000, 0x0000, 0x0020, 0x0020, 0x0f00, 0x0000 + .2byte 0x7fff, 0x0001, 0x0000, 0x0000 + + .align 2 +gUnknown_085937F8:: @ 85937F8 + .2byte 0x0010, 0x0010, 0x0000, 0x0000, 0x000b, 0x000b, 0x2d00, 0x0000 + .2byte 0x7fff, 0x0001, 0x0000, 0x0000 + + .align 2 +gUnknown_08593810:: @ 8593810 + .4byte gUnknown_085937C8 + .4byte gUnknown_085937E0 + + .align 2 +gUnknown_08593818:: @ 8593818 + .4byte gUnknown_085937F8 + + .align 2 +gUnknown_0859381C:: @ 859381C + spr_template 0x27db, 0x27db, gUnknown_085249DC, gDummySpriteAnimTable, NULL, gUnknown_08593810, sub_80A77C8 + + .align 2 +gUnknown_08593834:: @ 8593834 + .2byte 0x0200, 0x0200, 0x0000, 0x0000, 0xfff0, 0xfff0, 0x1e00, 0x0000 + .2byte 0x7fff, 0x0001, 0x0000, 0x0000 + + .align 2 +gUnknown_0859384C:: @ 859384C + .4byte gUnknown_08593834 + + .align 2 +gUnknown_08593850:: @ 8593850 + spr_template 0x27db, 0x27db, gUnknown_08524AFC, gDummySpriteAnimTable, NULL, gUnknown_0859384C, sub_80A77C8 + + .align 2 +gUnknown_08593868:: @ 8593868 + spr_template 0x27db, 0x27db, gUnknown_08524AFC, gDummySpriteAnimTable, NULL, gUnknown_08593810, sub_81051C4 + + .align 2 +gUnknown_08593880:: @ 8593880 + spr_template 0x27db, 0x27db, gUnknown_08524AFC, gDummySpriteAnimTable, NULL, gUnknown_08593818, sub_81052A4 + + .align 2 +gUnknown_08593898:: @ 8593898 + spr_template 0x27db, 0x27db, gUnknown_08524AFC, gDummySpriteAnimTable, NULL, gUnknown_08593810, sub_81054E8 + + .align 2 +gUnknown_085938B0:: @ 85938B0 + .2byte 0x0060, 0xfff3, 0x0800, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_085938C0:: @ 85938C0 + .2byte 0x0000, 0x0003, 0x0004, 0x0003, 0x0008, 0x0003, 0x0004, 0x0003 + .2byte 0x0000, 0x0003, 0xffff, 0x0000 + + .align 2 +gUnknown_085938D8:: @ 85938D8 + .4byte gUnknown_085938C0 + + .align 2 +gUnknown_085938DC:: @ 85938DC + spr_template 0x27df, 0x27df, gUnknown_0852490C, gUnknown_085938D8, NULL, gDummySpriteAffineAnimTable, sub_8105C48 + + .align 2 +gUnknown_085938F4:: @ 85938F4 + .2byte 0x1c1e, 0x18ec, 0x1a10, 0x1cf6 + + .align 2 +gUnknown_085938FC:: @ 85938FC + .2byte 0x0000, 0x0006, 0x0010, 0x0006, 0x0020, 0x000f, 0x0010, 0x0006 + .2byte 0x0000, 0x0006, 0x0010, 0x0046, 0x0020, 0x004f, 0x0010, 0x0046 + .2byte 0x0000, 0x0006, 0x0010, 0x0006, 0x0020, 0x000f, 0x0010, 0x0006 + .2byte 0x0000, 0x0006, 0xffff, 0x0000 + + .align 2 +gUnknown_08593934:: @ 8593934 + .4byte gUnknown_085938FC + + .align 2 +gUnknown_08593938:: @ 8593938 + spr_template 0x27dd, 0x27dd, gUnknown_08524914, gUnknown_08593934, NULL, gDummySpriteAffineAnimTable, sub_80A77C8 + + .align 2 +gUnknown_08593950:: @ 8593950 + .2byte 0x27de, 0x270f, 0x270e, 0x0000 + + .align 2 +gUnknown_08593958:: @ 8593958 + spr_template 0x27de, 0x27de, gUnknown_0852490C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8105DE8 + + .align 2 +gUnknown_08593970:: @ 8593970 + spr_template 0x27e2, 0x27e2, gUnknown_0852490C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8105E60 + + .align 2 +gUnknown_08593988:: @ 8593988 + .2byte 0x000a, 0xfff3, 0x0a00, 0x0000, 0xfff6, 0x000d, 0x0a00, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_085939A0:: @ 85939A0 + spr_template 0x27e8, 0x27e8, gUnknown_0852490C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8106140 + + .align 2 +gUnknown_085939B8:: @ 85939B8 + spr_template 0x27e8, 0x27e8, gUnknown_0852490C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_81061C4 + + .align 2 +gUnknown_085939D0:: @ 85939D0 + spr_template 0x27e8, 0x27e8, gUnknown_0852490C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_810624C + + .align 2 +gUnknown_085939E8:: @ 85939E8 + .2byte 0x0080, 0x0080, 0x0000, 0x0000, 0x0008, 0x0008, 0x0100, 0x0000 + .2byte 0x7ffe, 0x0001, 0x0000, 0x0000 + + .align 2 +gUnknown_08593A00:: @ 8593A00 + .4byte gUnknown_085939E8 + + .align 2 +gUnknown_08593A04:: @ 8593A04 + spr_template 0x27e9, 0x27e9, gUnknown_0852496C, gDummySpriteAnimTable, NULL, gUnknown_08593A00, sub_810673C + + .align 2 +gUnknown_08593A1C:: @ 8593A1C + spr_template 0x27e9, 0x27e9, gUnknown_085249CC, gDummySpriteAnimTable, NULL, gUnknown_08593A00, sub_8106878 + + .align 2 +gUnknown_08593A34:: @ 8593A34 + .2byte 0x0080, 0x0080, 0x0000, 0x0000, 0x0008, 0x0008, 0x0100, 0x0000 + .2byte 0x7ffe, 0x0001, 0x0000, 0x0000 + + .align 2 +gUnknown_08593A4C:: @ 8593A4C + .4byte gUnknown_08593A34 + + .align 2 +gUnknown_08593A50:: @ 8593A50 + spr_template 0x27fd, 0x27fd, gUnknown_085249C4, gDummySpriteAnimTable, NULL, gUnknown_08593A4C, sub_8106944 + + .align 2 +gUnknown_08593A68:: @ 8593A68 + .2byte 0x0000, 0x0004, 0x0004, 0x0004, 0x0008, 0x0004, 0x0004, 0x0004 + .2byte 0x0000, 0x0004, 0xffff, 0x0000 + + .align 2 +gUnknown_08593A80:: @ 8593A80 + .4byte gUnknown_08593A68 + + .align 2 +gUnknown_08593A84:: @ 8593A84 + spr_template 0x27ea, 0x27ea, gUnknown_0852490C, gUnknown_08593A80, NULL, gDummySpriteAffineAnimTable, sub_81069B8 + + .align 2 +gUnknown_08593A9C:: @ 8593A9C + .2byte 0x0000, 0x0018, 0xffff, 0x0000 + + .align 2 +gUnknown_08593AA4:: @ 8593AA4 + .4byte gUnknown_08593A9C + + .align 2 +gUnknown_08593AA8:: @ 8593AA8 + spr_template 0x27ec, 0x27ec, gUnknown_08524914, gUnknown_08593AA4, NULL, gDummySpriteAffineAnimTable, sub_81069D0 + + .align 2 +gUnknown_08593AC0:: @ 8593AC0 + spr_template 0x27eb, 0x27eb, gUnknown_0852490C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8106AD0 + + .align 2 +gUnknown_08593AD8:: @ 8593AD8 + .2byte 0x0000, 0x0003, 0xfffe, 0x0000 + + .align 2 +gUnknown_08593AE0:: @ 8593AE0 + .2byte 0x0010, 0x0003, 0xfffe, 0x0000 + + .align 2 +gUnknown_08593AE8:: @ 8593AE8 + .4byte gUnknown_08593AD8 + .4byte gUnknown_08593AE0 + + .align 2 +gUnknown_08593AF0:: @ 8593AF0 + spr_template 0x27ed, 0x27ed, gUnknown_08524914, gUnknown_08593AE8, NULL, gDummySpriteAffineAnimTable, sub_8106B54 + + .align 2 +gUnknown_08593B08:: @ 8593B08 + .2byte 0x0000, 0x0004, 0x0010, 0x0004, 0x0020, 0x0004, 0x0030, 0x0004, 0xffff, 0x0000 + + .align 2 +gUnknown_08593B1C:: @ 8593B1C + .2byte 0x0000, 0x0044, 0x0010, 0x0044, 0x0020, 0x0044, 0x0030, 0x0044, 0xffff, 0x0000 + + .align 2 +gUnknown_08593B30:: @ 8593B30 + .4byte gUnknown_08593B08 + .4byte gUnknown_08593B1C + + .align 2 +gUnknown_08593B38:: @ 8593B38 + spr_template 0x27ee, 0x27ee, gUnknown_08524914, gUnknown_08593B30, NULL, gDummySpriteAffineAnimTable, sub_8106C80 + + .align 2 +gUnknown_08593B50:: @ 8593B50 + .2byte 0x0000, 0x0008, 0x0010, 0x0008, 0x0020, 0x0008, 0x0010, 0x0008, 0xffff, 0x0000 + + .align 2 +gUnknown_08593B64:: @ 8593B64 + .2byte 0x0010, 0x0048, 0x0020, 0x0048, 0x0010, 0x0048, 0x0000, 0x0048, 0xffff, 0x0000 + + .align 2 +gUnknown_08593B78:: @ 8593B78 + .4byte gUnknown_08593B50 + .4byte gUnknown_08593B64 + + .align 2 +gUnknown_08593B80:: @ 8593B80 + spr_template 0x27e7, 0x27e7, gUnknown_08524914, gUnknown_08593B78, NULL, gDummySpriteAffineAnimTable, sub_8106CD0 + + .align 2 +gUnknown_08593B98:: @ 8593B98 + .2byte 0xfff4, 0x0008, 0x0400, 0x0000, 0x0014, 0xffec, 0x0400, 0x0000 + .2byte 0xfff8, 0x000c, 0x0400, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08593BB8:: @ 8593BB8 + spr_template 0x27f1, 0x27f1, gUnknown_08524914, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8106E00 + + .align 2 +gUnknown_08593BD0:: @ 8593BD0 + .2byte 0x0000, 0x0000, 0x0500, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08593BE0:: @ 8593BE0 + .2byte 0x0000, 0x0000, 0x10f8, 0x0000, 0x7fff, 0x0001, 0x0000, 0x0000 + + .align 2 +gUnknown_08593BF0:: @ 8593BF0 + .2byte 0x0000, 0x0000, 0x1008, 0x0000, 0x7fff, 0x0001, 0x0000, 0x0000 + + .align 2 +gUnknown_08593C00:: @ 8593C00 + .4byte gUnknown_08593BD0 + .4byte gUnknown_08593BE0 + .4byte gUnknown_08593BF0 + + .align 2 +gUnknown_08593C0C:: @ 8593C0C + spr_template 0x27de, 0x27de, gUnknown_0852496C, gUnknown_08592FCC, NULL, gUnknown_08593C00, sub_8106F60 + + .align 2 +gUnknown_08593C24:: @ 8593C24 + spr_template 0x27de, 0x27de, gUnknown_0852496C, gUnknown_08592FCC, NULL, gUnknown_08593C00, sub_8106F00 + + .align 2 +gUnknown_08593C3C:: @ 8593C3C + .2byte 0x0100, 0x0100, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08593C4C:: @ 8593C4C + .2byte 0x0200, 0x0100, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08593C5C:: @ 8593C5C + .4byte gUnknown_08593C3C + .4byte gUnknown_08593C4C + + .align 2 +gUnknown_08593C64:: @ 8593C64 + spr_template 0x2804, 0x2804, gUnknown_08524B1C, gDummySpriteAnimTable, NULL, gUnknown_08593C5C, sub_81070AC + + .align 2 + .incbin "graphics/unknown/unknown_593C80.4bpp" + + .align 2 + .incbin "graphics/unknown/unknown_593FFC.bin" + + .align 2 +gUnknown_08594FFC:: @ 8594FFC + .2byte 0x0000, 0x0002, 0x0008, 0x0002, 0x0010, 0x0002, 0x0018, 0x0006 + .2byte 0x0020, 0x0002, 0x0028, 0x0002, 0x0030, 0x0002, 0xffff, 0x0000 + + .align 2 +gUnknown_0859501C:: @ 859501C + .4byte gUnknown_08594FFC + + .align 2 +gUnknown_08595020:: @ 8595020 + spr_template 0x2783, 0x2783, gUnknown_08524954, gUnknown_0859501C, NULL, gDummySpriteAffineAnimTable, sub_810721C + + .align 2 +gUnknown_08595038:: @ 8595038 + .2byte 0xfffb, 0xfffb, 0x0a00, 0x0000, 0x0005, 0x0005, 0x0a00, 0x0000 + .2byte 0x7ffe, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08595050:: @ 8595050 + .4byte gUnknown_08595038 + + .align 2 +gUnknown_08595054:: @ 8595054 + .2byte 0x0000, 0x0001, 0x0004, 0x0005, 0x0008, 0x0005, 0xffff, 0x0000 + + .align 2 +gUnknown_08595064:: @ 8595064 + .4byte gUnknown_08595054 + + .align 2 +gUnknown_08595068:: @ 8595068 + spr_template 0x27a2, 0x27a2, gUnknown_08524A8C, gUnknown_08595064, NULL, gUnknown_08595050, sub_8107260 + + .align 2 +gUnknown_08595080:: @ 8595080 + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08595088:: @ 8595088 + .2byte 0x0004, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08595090:: @ 8595090 + .4byte gUnknown_08595080 + .4byte gUnknown_08595088 + + .align 2 +gUnknown_08595098:: @ 8595098 + .2byte 0x0000, 0x0000, 0x0100, 0x0000, 0x0060, 0x0060, 0x0100, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_085950B0:: @ 85950B0 + .4byte gUnknown_08595098 + + .align 2 +gUnknown_085950B4:: @ 85950B4 + spr_template 0x279c, 0x279c, gUnknown_08524A04, gUnknown_08595090, NULL, gUnknown_085950B0, sub_810744C + + .align 2 +gUnknown_085950CC:: @ 85950CC + .2byte 0x0000, 0x0001, 0x0004, 0x0001, 0x0008, 0x0001, 0x000c, 0x0001, 0xfffe, 0x0000 + + .align 2 +gUnknown_085950E0:: @ 85950E0 + .4byte gUnknown_085950CC + + .align 2 +gUnknown_085950E4:: @ 85950E4 + spr_template 0x27a5, 0x27a5, gUnknown_08524A2C, gUnknown_085950E0, NULL, gDummySpriteAffineAnimTable, sub_81075EC + + .align 2 +gUnknown_085950FC:: @ 85950FC + spr_template 0x2813, 0x2813, gUnknown_08524A2C, gUnknown_085950E0, NULL, gDummySpriteAffineAnimTable, sub_81075EC + + .align 2 +gUnknown_08595114:: @ 8595114 + spr_template 0x2818, 0x2818, gUnknown_08524904, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_81075EC + + .align 2 +gUnknown_0859512C:: @ 859512C + spr_template 0x2819, 0x2819, gUnknown_08524904, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_81075EC + + .align 2 +gUnknown_08595144:: @ 8595144 + .2byte 0x0010, 0x0002, 0x0020, 0x0002, 0x0030, 0x0002, 0xfffe, 0x0000 + + .align 2 +gUnknown_08595154:: @ 8595154 + .4byte gUnknown_08595144 + + .align 2 +gUnknown_08595158:: @ 8595158 + spr_template 0x272d, 0x272d, gUnknown_08524914, gUnknown_08595154, NULL, gDummySpriteAffineAnimTable, sub_81075EC + + .align 2 +gUnknown_08595170:: @ 8595170 + spr_template 0x27b5, 0x27b5, gUnknown_08524A14, gDummySpriteAnimTable, NULL, gUnknown_08593420, sub_81075EC + + .align 2 +gUnknown_08595188:: @ 8595188 + .2byte 0x0003, 0x0003, 0x320a, 0x0000, 0x0000, 0x0000, 0x0a00, 0x0000 + .2byte 0xffec, 0xffec, 0x14f6, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_085951A8:: @ 85951A8 + .2byte 0x0150, 0x0150, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_085951B8:: @ 85951B8 + .4byte gUnknown_08595188 + + .align 2 +gUnknown_085951BC:: @ 85951BC + .4byte gUnknown_085951A8 + + .align 2 +gUnknown_085951C0:: @ 85951C0 + spr_template 0x27a5, 0x27a5, gUnknown_08524AEC, gUnknown_085950E0, NULL, gUnknown_085951B8, sub_8107730 + + .align 2 +gUnknown_085951D8:: @ 85951D8 + spr_template 0x27a5, 0x27a5, gUnknown_08524AEC, gUnknown_085950E0, NULL, gUnknown_085951BC, sub_81077C0 + + .align 2 +gUnknown_085951F0:: @ 85951F0 + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_085951F8:: @ 85951F8 + .2byte 0x0004, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08595200:: @ 8595200 + .4byte gUnknown_085951F0 + + .align 2 +gUnknown_08595204:: @ 8595204 + .4byte gUnknown_085951F8 + + .align 2 +gUnknown_08595208:: @ 8595208 + spr_template 0x27ab, 0x27ab, gUnknown_08524A2C, gUnknown_08595200, NULL, gDummySpriteAffineAnimTable, sub_80A78AC + + .align 2 +gUnknown_08595220:: @ 8595220 + spr_template 0x27ab, 0x27ab, gUnknown_08524AEC, gUnknown_08595204, NULL, gUnknown_08596208, sub_8107894 + + .align 2 +gUnknown_08595238:: @ 8595238 + spr_template 0x279d, 0x279d, gUnknown_08524904, gUnknown_08595AB8, NULL, gDummySpriteAffineAnimTable, sub_81078D0 + + .align 2 +gUnknown_08595250:: @ 8595250 + spr_template 0x27ab, 0x27ab, gUnknown_08524904, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8108034 + + .align 2 +gUnknown_08595268:: @ 8595268 + spr_template 0x281c, 0x281c, gUnknown_08524904, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_810851C + + .align 2 +gUnknown_08595280:: @ 8595280 + .2byte 0x0008, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08595288:: @ 8595288 + .2byte 0x0009, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08595290:: @ 8595290 + .2byte 0x0004, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08595298:: @ 8595298 + .4byte gUnknown_08595280 + .4byte gUnknown_08595288 + + .align 2 +gUnknown_085952A0:: @ 85952A0 + .4byte gUnknown_08595290 + + .align 2 +gUnknown_085952A4:: @ 85952A4 + .2byte 0x0100, 0x0100, 0x0000, 0x0000, 0xfff6, 0xfff6, 0x0f00, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_085952BC:: @ 85952BC + .2byte 0x00e0, 0x00e0, 0x0000, 0x0000, 0xfff8, 0xfff8, 0x0f00, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_085952D4:: @ 85952D4 + .2byte 0x0150, 0x0150, 0x0000, 0x0000, 0x0000, 0x0000, 0x0f00, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_085952EC:: @ 85952EC + .4byte gUnknown_085952A4 + .4byte gUnknown_085952BC + + .align 2 +gUnknown_085952F4:: @ 85952F4 + .4byte gUnknown_085952D4 + + .align 2 +gUnknown_085952F8:: @ 85952F8 + spr_template 0x27ab, 0x27ab, gUnknown_08524904, gUnknown_08595298, NULL, gDummySpriteAffineAnimTable, sub_8108BE0 + + .align 2 +gUnknown_08595310:: @ 8595310 + spr_template 0x27ab, 0x27ab, gUnknown_08524964, gUnknown_08595298, NULL, gUnknown_085952EC, sub_8108C54 + + .align 2 +gUnknown_08595328:: @ 8595328 + spr_template 0x27ab, 0x27ab, gUnknown_0852496C, gUnknown_085952A0, NULL, gUnknown_085952F4, sub_80A8EE4 + + .align 2 +gUnknown_08595340:: @ 8595340 + .2byte 0x0010, 0x0004, 0x0020, 0x0004, 0x0030, 0x0004, 0xfffe, 0x0000 + + .align 2 +gUnknown_08595350:: @ 8595350 + .2byte 0x0010, 0x00c4, 0x0020, 0x00c4, 0x0030, 0x00c4, 0xfffe, 0x0000 + + .align 2 +gUnknown_08595360:: @ 8595360 + .4byte gUnknown_08595340 + .4byte gUnknown_08595350 + + .align 2 +gUnknown_08595368:: @ 8595368 + spr_template 0x272d, 0x272d, gUnknown_08524914, gUnknown_08595360, NULL, gDummySpriteAffineAnimTable, sub_8108EC8 + + .align 2 +gUnknown_08595380:: @ 8595380 + spr_template 0x272d, 0x272d, gUnknown_08524914, gUnknown_08595360, NULL, gDummySpriteAffineAnimTable, sub_8108F08 + + .align 2 +gUnknown_08595398:: @ 8595398 + .2byte 0x0000, 0x0003, 0x0010, 0x0003, 0x0020, 0x0003, 0x0030, 0x0003 + .2byte 0x0040, 0x0003, 0x0050, 0x0003, 0x0060, 0x0003, 0x0070, 0x0003 + .2byte 0xfffe, 0x0000 + + .align 2 +gUnknown_085953BC:: @ 85953BC + .4byte gUnknown_08595398 + + .align 2 +gUnknown_085953C0:: @ 85953C0 + .2byte 0x0000, 0x0005, 0x0010, 0x0005, 0x0020, 0x0005, 0x0030, 0x0005 + .2byte 0x0040, 0x0005, 0xfffe, 0x0000 + + .align 2 +gUnknown_085953D8:: @ 85953D8 + .4byte gUnknown_085953C0 + + .align 2 +gUnknown_085953DC:: @ 85953DC + .2byte 0x0032, 0x0100, 0x0000, 0x0000, 0x0020, 0x0000, 0x0700, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_085953F4:: @ 85953F4 + .4byte gUnknown_085953DC + + .align 2 +gUnknown_085953F8:: @ 85953F8 + spr_template 0x2731, 0x2731, gUnknown_08524974, gUnknown_085953BC, NULL, gUnknown_085953F4, sub_8108FBC + + .align 2 +gUnknown_08595410:: @ 8595410 + spr_template 0x2731, 0x2731, gUnknown_08524914, gUnknown_085953BC, NULL, gDummySpriteAffineAnimTable, sub_8108FBC + + .align 2 +gUnknown_08595428:: @ 8595428 + spr_template 0x2733, 0x2733, gUnknown_08524914, gUnknown_085953D8, NULL, gDummySpriteAffineAnimTable, sub_8108F4C + + .align 2 +gUnknown_08595440:: @ 8595440 + spr_template 0x272d, 0x272d, gUnknown_08524914, gUnknown_085953D8, NULL, gDummySpriteAffineAnimTable, sub_8108F4C + + .align 2 +gUnknown_08595458:: @ 8595458 + .2byte 0x0010, 0x0006, 0x0020, 0x0006, 0x0030, 0x0006, 0xfffe, 0x0000 + + .align 2 +gUnknown_08595468:: @ 8595468 + .4byte gUnknown_08595458 + + .align 2 +gUnknown_0859546C:: @ 859546C + spr_template 0x272d, 0x272d, gUnknown_08524914, gUnknown_08595468, NULL, gDummySpriteAffineAnimTable, sub_8109064 + + .align 2 +gUnknown_08595484:: @ 8595484 + .2byte 0x0050, 0x0050, 0x0000, 0x0000, 0x0002, 0x0002, 0x010a, 0x0000 + .2byte 0x7ffe, 0x0001, 0x0000, 0x0000 + + .align 2 +gUnknown_0859549C:: @ 859549C + .4byte gUnknown_08595484 + + .align 2 +gUnknown_085954A0:: @ 85954A0 + spr_template 0x27ad, 0x27ad, gUnknown_08524A94, gDummySpriteAnimTable, NULL, gUnknown_0859549C, sub_810916C + + .align 2 +gUnknown_085954B8:: @ 85954B8 + .2byte 0x0000, 0x0004, 0x0010, 0x0004, 0x0020, 0x0004, 0x0030, 0x0004 + .2byte 0x0040, 0x0004, 0xfffe, 0x0000 + + .align 2 +gUnknown_085954D0:: @ 85954D0 + .4byte gUnknown_085954B8 + + .align 2 +gUnknown_085954D4:: @ 85954D4 + spr_template 0x272d, 0x272d, gUnknown_08524914, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A7820 + + .align 2 +gUnknown_085954EC:: @ 85954EC + spr_template 0x272d, 0x272d, gUnknown_08524914, gUnknown_085954D0, NULL, gDummySpriteAffineAnimTable, sub_8109198 + + .align 2 +gUnknown_08595504:: @ 8595504 + spr_template 0x272d, 0x272d, gUnknown_08524914, gUnknown_085954D0, NULL, gDummySpriteAffineAnimTable, sub_8109200 + + .align 2 +gUnknown_0859551C:: @ 859551C + spr_template 0x272d, 0x272d, gUnknown_08524914, gUnknown_085954D0, NULL, gDummySpriteAffineAnimTable, sub_810921C + + .align 2 +gUnknown_08595534:: @ 8595534 + .2byte 0x0020, 0x0006, 0x0030, 0x0006, 0xfffe, 0x0000 + + .align 2 +gUnknown_08595540:: @ 8595540 + .4byte gUnknown_08595534 + + .align 2 +gUnknown_08595544:: @ 8595544 + .2byte 0x0000, 0x0000, 0x0100, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08595554:: @ 8595554 + .2byte 0x00a0, 0x00a0, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08595564:: @ 8595564 + .4byte gUnknown_08595544 + .4byte gUnknown_08595554 + + .align 2 +gUnknown_0859556C:: @ 859556C + spr_template 0x272d, 0x272d, gUnknown_08524914, gUnknown_08595540, NULL, gDummySpriteAffineAnimTable, sub_8109364 + + .align 2 +gUnknown_08595584:: @ 8595584 + spr_template 0x272d, 0x272d, gUnknown_08524914, gUnknown_085954D0, NULL, gDummySpriteAffineAnimTable, sub_81093A4 + + .align 2 +gUnknown_0859559C:: @ 859559C + spr_template 0x272d, 0x272d, gUnknown_08524914, gUnknown_085954D0, NULL, gDummySpriteAffineAnimTable, sub_80A8EE4 + + .align 2 +gUnknown_085955B4:: @ 85955B4 + spr_template 0x27d9, 0x27d9, gUnknown_0852490C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_81098EC + + .align 2 +gUnknown_085955CC:: @ 85955CC + .2byte 0xfffe, 0xfffb, 0xffff, 0xffff, 0x0003, 0xfffa, 0x0004, 0xfffe + .2byte 0x0002, 0xfff8, 0xfffb, 0xfffb, 0x0004, 0xfff9 + + .align 2 +gUnknown_085955E8:: @ 85955E8 + spr_template 0x27d9, 0x27d9, gUnknown_08524914, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8109A10 + + .align 2 +gUnknown_08595600:: @ 8595600 + .2byte 0x0000, 0x0005, 0x0004, 0x0005, 0x0008, 0x0005, 0x000c, 0x0005, 0xfffe, 0x0000 + + .align 2 +gUnknown_08595614:: @ 8595614 + .2byte 0x0010, 0x0005, 0xffff, 0x0000 + + .align 2 +gUnknown_0859561C:: @ 859561C + .2byte 0x0014, 0x0005, 0xffff, 0x0000 + + .align 2 +gUnknown_08595624:: @ 8595624 + .2byte 0x0014, 0x0005, 0xffff, 0x0000 + + .align 2 +gUnknown_0859562C:: @ 859562C + .4byte gUnknown_08595600 + .4byte gUnknown_08595614 + .4byte gUnknown_0859561C + .4byte gUnknown_08595624 + + .align 2 +gUnknown_0859563C:: @ 859563C + spr_template 0x27f7, 0x27f7, gUnknown_0852490C, gUnknown_0859562C, NULL, gDummySpriteAffineAnimTable, sub_8109AFC + + .align 2 +gUnknown_08595654:: @ 8595654 + .2byte 0x0000, 0x0005, 0x0010, 0x0005, 0x0020, 0x0005, 0x0030, 0x0005, 0xfffe, 0x0000 + + .align 2 +gUnknown_08595668:: @ 8595668 + .4byte gUnknown_08595654 + + .align 2 +gUnknown_0859566C:: @ 859566C + spr_template 0x27f8, 0x27f8, gUnknown_08524914, gUnknown_08595668, NULL, gDummySpriteAffineAnimTable, sub_8109CB0 + + .align 2 +gUnknown_08595684:: @ 8595684 + .2byte 0xffff, 0x0100, 0x0001, 0xff00, 0x01ff, 0x0001, 0xff00, 0x0100 + + .align 2 +gUnknown_08595694:: @ 8595694 + .2byte 0x00ff, 0x0001, 0x01ff, 0xff00, 0x0100, 0xff00, 0x0100, 0x0100 + + .align 2 +gUnknown_085956A4:: @ 85956A4 + .2byte 0x0000, 0x0005, 0x0010, 0x0005, 0x0020, 0x0008, 0x0030, 0x0005 + .2byte 0x0040, 0x0005, 0xffff, 0x0000 + + .align 2 +gUnknown_085956BC:: @ 85956BC + .4byte gUnknown_085956A4 + + .align 2 +gUnknown_085956C0:: @ 85956C0 + spr_template 0x2735, 0x2735, gUnknown_08524914, gUnknown_085956BC, NULL, gDummySpriteAffineAnimTable, sub_810A1A8 + + .align 2 +gUnknown_085956D8:: @ 85956D8 + .2byte 0x0100, 0x0100, 0x0000, 0x0000, 0x0000, 0x0000, 0x1400, 0x0000 + .2byte 0x0000, 0x0000, 0x3cf0, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_085956F8:: @ 85956F8 + .4byte gUnknown_085956D8 + + .align 2 +gUnknown_085956FC:: @ 85956FC + spr_template 0x279f, 0x279f, gUnknown_08524974, gDummySpriteAnimTable, NULL, gUnknown_085956F8, sub_810A214 + + .align 2 +gUnknown_08595714:: @ 8595714 + .2byte 0x0000, 0x0005, 0x0010, 0x0005, 0x0020, 0x0005, 0x0030, 0x0005 + .2byte 0x0040, 0x0005, 0x0050, 0x0005, 0xfffe, 0x0000 + + .align 2 +gUnknown_08595730:: @ 8595730 + .4byte gUnknown_08595714 + + .align 2 +gUnknown_08595734:: @ 8595734 + spr_template 0x275f, 0x275f, gUnknown_08524914, gUnknown_08595730, NULL, gDummySpriteAffineAnimTable, sub_810A274 + + .align 2 +gUnknown_0859574C:: @ 859574C + spr_template 0x271b, 0x271b, gUnknown_0852496C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_810A308 + + .align 2 +gUnknown_08595764:: @ 8595764 + spr_template 0x27bb, 0x27bb, gUnknown_0852490C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A7820 + + .align 2 +gUnknown_0859577C:: @ 859577C + .2byte 0x0000, 0x0000, 0x0114, 0x0000, 0x7ffe, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_0859578C:: @ 859578C + .4byte gUnknown_0859577C + + .align 2 +gUnknown_08595790:: @ 8595790 + spr_template 0x271b, 0x271b, gUnknown_0852496C, gDummySpriteAnimTable, NULL, gUnknown_0859578C, sub_810A46C + + .align 2 +gUnknown_085957A8:: @ 85957A8 + .2byte 0x0000, 0x0006, 0x0010, 0x0006, 0x0020, 0x0006, 0xfffe, 0x0000 + + .align 2 +gUnknown_085957B8:: @ 85957B8 + .4byte gUnknown_085957A8 + + .align 2 +gUnknown_085957BC:: @ 85957BC + .2byte 0x00e8, 0x00e8, 0x0000, 0x0000, 0xfff8, 0xfff8, 0x0a00, 0x0000 + .2byte 0x0008, 0x0008, 0x0a00, 0x0000, 0x7ffe, 0x0001, 0x0000, 0x0000 + + .align 2 +gUnknown_085957DC:: @ 85957DC + .4byte gUnknown_085957BC + + .align 2 +gUnknown_085957E0:: @ 85957E0 + spr_template 0x282a, 0x282a, gUnknown_08524974, gUnknown_085957B8, NULL, gUnknown_085957DC, sub_810A5BC + + .align 2 +gUnknown_085957F8:: @ 85957F8 + spr_template 0x271b, 0x271b, gUnknown_0852496C, gDummySpriteAnimTable, NULL, gUnknown_0859578C, sub_810A628 + + .align 2 +gUnknown_08595810:: @ 8595810 + spr_template 0x271b, 0x271b, gUnknown_0852490C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_810A75C + + .align 2 +gUnknown_08595828:: @ 8595828 + spr_template 0x2711, 0x2711, gUnknown_08524904, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_810A9DC + + .align 2 +gUnknown_08595840:: @ 8595840 + spr_template 0x27bd, 0x27bd, gUnknown_08524934, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_810AA2C + + .align 2 +gUnknown_08595858:: @ 8595858 + .byte 0x3a, 0xc4, 0xc8, 0xdc, 0x08, 0xc8, 0xf0, 0x38 + .byte 0x3a, 0xf6, 0xc6, 0x0a, 0x30, 0xee, 0xf8, 0x38 + .byte 0x10, 0xc8, 0xc6, 0xd6, 0x3a, 0x1e, 0xd0, 0x28 + .byte 0x0c, 0xd0, 0x30, 0xf4, 0xc8, 0x12, 0x30, 0x30 + + .align 2 +gUnknown_08595878:: @ 8595878 + .2byte 0x0003, 0x0001, 0x0002, 0x0001, 0x0001, 0x0001, 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_0859588C:: @ 859588C + .2byte 0x0000, 0x0005, 0x0001, 0x0005, 0x0002, 0x0005, 0x0003, 0x0005, 0xffff, 0x0000 + + .align 2 +gUnknown_085958A0:: @ 85958A0 + .4byte gUnknown_08595878 + .4byte gUnknown_0859588C + + .align 2 +gUnknown_085958A8:: @ 85958A8 + spr_template 0x27e3, 0x27e3, gUnknown_08524904, gUnknown_085958A0, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + + .align 2 +gUnknown_085958C0:: @ 85958C0 + .2byte 0x0010, 0x0010, 0x0000, 0x0000, 0x0004, 0x0004, 0x3c00, 0x0000 + .2byte 0x0100, 0x0100, 0x0000, 0x0000, 0x7ffd, 0x0000, 0x0000, 0x0000 + .2byte 0xfffc, 0xfffc, 0x0500, 0x0000, 0x0004, 0x0004, 0x0500, 0x0000 + .2byte 0x7ffd, 0x000a, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08595900:: @ 8595900 + .2byte 0x0010, 0x0010, 0x0000, 0x0000, 0x0008, 0x0008, 0x1e00, 0x0000 + .2byte 0x0100, 0x0100, 0x0000, 0x0000, 0xfffc, 0xfffc, 0x0500, 0x0000 + .2byte 0x0004, 0x0004, 0x0500, 0x0000, 0x7ffe, 0x0003, 0x0000, 0x0000 + + .align 2 +gUnknown_08595930:: @ 8595930 + .2byte 0x0010, 0x0010, 0x0000, 0x0000, 0x0008, 0x0008, 0x1e00, 0x0000 + .2byte 0xfff8, 0xfff8, 0x1e00, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08595950:: @ 8595950 + .4byte gUnknown_085958C0 + .4byte gUnknown_08595900 + .4byte gUnknown_08595930 + + .align 2 +gUnknown_0859595C:: @ 859595C + spr_template 0x27e4, 0x27e4, gUnknown_08524A9C, gDummySpriteAnimTable, NULL, gUnknown_08595950, sub_810ACD8 + + .align 2 +gUnknown_08595974:: @ 8595974 + .2byte 0x0000, 0x0003, 0x0010, 0x0003, 0x0020, 0x0003, 0x0030, 0x0003, 0xffff, 0x0000 + + .align 2 +gUnknown_08595988:: @ 8595988 + .4byte gUnknown_08595974 + + .align 2 +gUnknown_0859598C:: @ 859598C + spr_template 0x27e5, 0x27e5, gUnknown_08524914, gUnknown_08595988, NULL, gDummySpriteAffineAnimTable, sub_810AD30 + + .align 2 +gUnknown_085959A4:: @ 85959A4 + spr_template 0x27e4, 0x27e4, gUnknown_08524A9C, gDummySpriteAnimTable, NULL, gUnknown_08595950, sub_810AD98 + + .align 2 +gUnknown_085959BC:: @ 85959BC + .2byte 0x0000, 0x0003, 0xffff, 0x0000 + + .align 2 +gUnknown_085959C4:: @ 85959C4 + .2byte 0x0002, 0x0003, 0xffff, 0x0000 + + .align 2 +gUnknown_085959CC:: @ 85959CC + .2byte 0x0004, 0x0003, 0xffff, 0x0000 + + .align 2 +gUnknown_085959D4:: @ 85959D4 + .2byte 0x0006, 0x0003, 0xffff, 0x0000 + + .align 2 +gUnknown_085959DC:: @ 85959DC + .4byte gUnknown_085959BC + .4byte gUnknown_085959C4 + .4byte gUnknown_085959CC + .4byte gUnknown_085959D4 + + .align 2 +gUnknown_085959EC:: @ 85959EC + .2byte 0x0100, 0x0100, 0x0040, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_085959FC:: @ 85959FC + .4byte gUnknown_085959EC + + .align 2 +gUnknown_08595A00:: @ 8595A00 + spr_template 0x2711, 0x2711, gUnknown_08524A04, gUnknown_085959DC, NULL, gUnknown_085959FC, sub_810B1F0 + + .align 2 +gUnknown_08595A18:: @ 8595A18 + spr_template 0x27e4, 0x27e4, gUnknown_08524A9C, gDummySpriteAnimTable, NULL, gUnknown_08595950, sub_810B23C + + .align 2 +gUnknown_08595A30:: @ 8595A30 + spr_template 0x2711, 0x2711, gUnknown_08524904, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_810B51C + + .align 2 +gUnknown_08595A48:: @ 8595A48 + .2byte 0x0000, 0x0045, 0x0001, 0x0045, 0xfffe, 0x0000 + + .align 2 +gUnknown_08595A54:: @ 8595A54 + .4byte gUnknown_08595A48 + + .align 2 +gUnknown_08595A58:: @ 8595A58 + spr_template 0x279d, 0x279d, gUnknown_08524904, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_810B6C4 + + .align 2 +gUnknown_08595A70:: @ 8595A70 + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08595A78:: @ 8595A78 + .2byte 0x0004, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08595A80:: @ 8595A80 + .2byte 0x0006, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08595A88:: @ 8595A88 + .2byte 0x0007, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08595A90:: @ 8595A90 + .2byte 0x0008, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08595A98:: @ 8595A98 + .2byte 0x000c, 0x0006, 0x000d, 0x0006, 0xfffe, 0x0000 + + .align 2 +gUnknown_08595AA4:: @ 8595AA4 + .4byte gUnknown_08595A70 + + .align 2 +gUnknown_08595AA8:: @ 8595AA8 + .4byte gUnknown_08595A78 + + .align 2 +gUnknown_08595AAC:: @ 8595AAC + .4byte gUnknown_08595A80 + + .align 2 +gUnknown_08595AB0:: @ 8595AB0 + .4byte gUnknown_08595A88 + + .align 2 +gUnknown_08595AB4:: @ 8595AB4 + .4byte gUnknown_08595A90 + + .align 2 +gUnknown_08595AB8:: @ 8595AB8 + .4byte gUnknown_08595A98 + + .align 2 +gUnknown_08595ABC:: @ 8595ABC + .2byte 0x0000, 0x0000, 0x0128, 0x0000, 0x7ffe, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08595ACC:: @ 8595ACC + .4byte gUnknown_08595ABC + + .align 2 +gUnknown_08595AD0:: @ 8595AD0 + spr_template 0x279d, 0x279d, gUnknown_08524B24, gUnknown_08595AA8, NULL, gUnknown_08595ACC, sub_810B8AC + + .align 2 +gUnknown_08595AE8:: @ 8595AE8 + spr_template 0x279d, 0x279d, gUnknown_08524A24, gUnknown_08595AAC, NULL, gDummySpriteAffineAnimTable, sub_810B8AC + + .align 2 +gUnknown_08595B00:: @ 8595B00 + .2byte 0x0000, 0x0000, 0x010a, 0x0000, 0x7ffe, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08595B10:: @ 8595B10 + .4byte gUnknown_08595B00 + + .align 2 +gUnknown_08595B14:: @ 8595B14 + spr_template 0x279d, 0x279d, gUnknown_08524AC4, gUnknown_08595AA8, NULL, gUnknown_08595B10, sub_810B8EC + + .align 2 +gUnknown_08595B2C:: @ 8595B2C + spr_template 0x279d, 0x279d, gUnknown_08524A24, gUnknown_08595AAC, NULL, gDummySpriteAffineAnimTable, sub_810B8EC + + .align 2 +gUnknown_08595B44:: @ 8595B44 + .2byte 0x00ce, 0x00ce, 0x0000, 0x0000, 0x0005, 0x0005, 0x0a00, 0x0000 + .2byte 0x0000, 0x0000, 0x0600, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08595B64:: @ 8595B64 + .4byte gUnknown_08595B44 + + .align 2 +gUnknown_08595B68:: @ 8595B68 + spr_template 0x279d, 0x279d, gUnknown_08524AC4, gUnknown_08595AA8, NULL, gUnknown_08595B64, sub_810B974 + + .align 2 +gUnknown_08595B80:: @ 8595B80 + spr_template 0x279d, 0x279d, gUnknown_08524A84, gUnknown_08595AAC, NULL, gUnknown_08595B64, sub_810B974 + + .align 2 +gUnknown_08595B98:: @ 8595B98 + spr_template 0x279d, 0x279d, gUnknown_08524904, gUnknown_08595AB0, NULL, gDummySpriteAffineAnimTable, sub_810BA24 + + .align 2 +gUnknown_08595BB0:: @ 8595BB0 + spr_template 0x279d, 0x279d, gUnknown_0852490C, gUnknown_08595AB4, NULL, gDummySpriteAffineAnimTable, sub_810BC94 + + .align 2 +gUnknown_08595BC8:: @ 8595BC8 + spr_template 0x279d, 0x279d, gUnknown_08524904, gUnknown_08595AB0, NULL, gDummySpriteAffineAnimTable, sub_810BC94 + + .align 2 +gUnknown_08595BE0:: @ 8595BE0 + .2byte 0x0000, 0x0005, 0x0002, 0x0005, 0x0004, 0x0005, 0x0006, 0x0005 + .2byte 0x0004, 0x0005, 0x0002, 0x0005, 0x0000, 0x0005, 0xffff, 0x0000 + + .align 2 +gUnknown_08595C00:: @ 8595C00 + .4byte gUnknown_08595BE0 + + .align 2 +gUnknown_08595C04:: @ 8595C04 + spr_template 0x279e, 0x279e, gUnknown_08524A64, gUnknown_08595C00, NULL, gDummySpriteAffineAnimTable, sub_810BE48 + + .align 2 +gUnknown_08595C1C:: @ 8595C1C + .2byte 0x0000, 0x0008, 0x0008, 0x0008, 0xfffe, 0x0000 + + .align 2 +gUnknown_08595C28:: @ 8595C28 + .4byte gUnknown_08595C1C + + .align 2 +gUnknown_08595C2C:: @ 8595C2C + spr_template 0x27a0, 0x27a0, gUnknown_08524A54, gUnknown_08595C28, NULL, gDummySpriteAffineAnimTable, sub_810BED0 + + .align 2 +gUnknown_08595C44:: @ 8595C44 + spr_template 0x27bc, 0x27bc, gUnknown_08524A54, gUnknown_08595C28, NULL, gDummySpriteAffineAnimTable, sub_810BED0 + + .align 2 +gUnknown_08595C5C:: @ 8595C5C + .byte 0x00, 0x01, 0x02, 0x02, 0x02, 0x02, 0x03, 0x04 + .byte 0x04, 0x04, 0x05, 0x06, 0x06, 0x06, 0x06, 0x07 + .byte 0x08, 0x08, 0x08, 0x09 + + .align 2 +gUnknown_08595C70:: @ 8595C70 + spr_template 0x27ab, 0x27ab, gUnknown_0852490C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_810C2F0 + + .align 2 +gUnknown_08595C88:: @ 8595C88 + .byte 0x00, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02 + .byte 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x04, 0x04 + .byte 0x04, 0x04, 0x04, 0x05 + + .align 2 +gUnknown_08595C9C:: @ 8595C9C + spr_template 0x27bc, 0x27bc, gUnknown_08524A54, gUnknown_08595C28, NULL, gDummySpriteAffineAnimTable, sub_810C560 + + .align 2 +gUnknown_08595CB4:: @ 8595CB4 + .byte 0x64, 0xe0, 0x01, 0x20, 0x55, 0xe0, 0x01, 0x00 + .byte 0xf2, 0xe0, 0x11, 0x10, 0x42, 0xe0, 0x21, 0x10 + .byte 0xb6, 0xe0, 0x31, 0x00, 0x3c, 0xe0, 0x01, 0x20 + .byte 0xd6, 0xe0, 0x11, 0x00, 0x71, 0xe0, 0x01, 0x10 + .byte 0xd2, 0xe0, 0x31, 0x10, 0x26, 0xe0, 0x21, 0x00 + + .align 2 +gUnknown_08595CDC:: @ 8595CDC + .2byte 0x0100, 0x0100, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08595CEC:: @ 8595CEC + .2byte 0x00f0, 0x00f0, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08595CFC:: @ 8595CFC + .2byte 0x00e0, 0x00e0, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08595D0C:: @ 8595D0C + .2byte 0x0150, 0x0150, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08595D1C:: @ 8595D1C + .4byte gUnknown_08595CDC + .4byte gUnknown_08595CEC + .4byte gUnknown_08595CFC + + .align 2 +gUnknown_08595D28:: @ 8595D28 + .4byte gUnknown_08595D0C + + .align 2 +gUnknown_08595D2C:: @ 8595D2C + spr_template 0x2817, 0x2817, gUnknown_0852496C, gDummySpriteAnimTable, NULL, gUnknown_08595D1C, sub_810CB58 + + .align 2 +gUnknown_08595D44:: @ 8595D44 + spr_template 0x2817, 0x2817, gUnknown_0852496C, gDummySpriteAnimTable, NULL, gUnknown_08595D28, sub_80A8EE4 + + .align 2 +gUnknown_08595D5C:: @ 8595D5C + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08595D64:: @ 8595D64 + .2byte 0x0010, 0x0004, 0x0020, 0x0004, 0x0030, 0x0004, 0x0040, 0x0004, 0xffff, 0x0000 + + .align 2 +gUnknown_08595D78:: @ 8595D78 + .4byte gUnknown_08595D5C + .4byte gUnknown_08595D64 + + .align 2 +gUnknown_08595D80:: @ 8595D80 + .2byte 0x00e0, 0x00e0, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08595D90:: @ 8595D90 + .2byte 0x0118, 0x0118, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08595DA0:: @ 8595DA0 + .2byte 0x0150, 0x0150, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08595DB0:: @ 8595DB0 + .2byte 0x0180, 0x0180, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08595DC0:: @ 8595DC0 + .2byte 0x01c0, 0x01c0, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08595DD0:: @ 8595DD0 + .4byte gUnknown_08595D80 + .4byte gUnknown_08595D90 + .4byte gUnknown_08595DA0 + .4byte gUnknown_08595DB0 + .4byte gUnknown_08595DC0 + + .align 2 +gUnknown_08595DE4:: @ 8595DE4 + spr_template 0x273b, 0x273b, gUnknown_085249D4, gUnknown_08595D78, NULL, gUnknown_08595DD0, unc_080B06FC + + .align 2 +gUnknown_08595DFC:: @ 8595DFC + spr_template 0x279d, 0x279d, gUnknown_08524904, gUnknown_08595AAC, NULL, gDummySpriteAffineAnimTable, sub_810CD4C + + .align 2 +gUnknown_08595E14:: @ 8595E14 + spr_template 0x2742, 0x2742, gUnknown_08524914, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, unc_080B08A0 + + .align 2 +gUnknown_08595E2C:: @ 8595E2C + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08595E34:: @ 8595E34 + .2byte 0x0010, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08595E3C:: @ 8595E3C + .2byte 0x0020, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08595E44:: @ 8595E44 + .2byte 0x0030, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08595E4C:: @ 8595E4C + .2byte 0x0030, 0x0041, 0xffff, 0x0000 + + .align 2 +gUnknown_08595E54:: @ 8595E54 + .4byte gUnknown_08595E2C + + .align 2 +gUnknown_08595E58:: @ 8595E58 + .4byte gUnknown_08595E34 + .4byte gUnknown_08595E3C + + .align 2 +gUnknown_08595E60:: @ 8595E60 + .4byte gUnknown_08595E44 + .4byte gUnknown_08595E4C + + .align 2 +gUnknown_08595E68:: @ 8595E68 + spr_template 0x279f, 0x279f, gUnknown_08524914, gUnknown_08595E54, NULL, gDummySpriteAffineAnimTable, sub_810CE68 + + .align 2 +gUnknown_08595E80:: @ 8595E80 + spr_template 0x279f, 0x279f, gUnknown_08524914, gUnknown_08595E54, NULL, gDummySpriteAffineAnimTable, sub_810CEB4 + + .align 2 +gUnknown_08595E98:: @ 8595E98 + spr_template 0x279f, 0x279f, gUnknown_08524914, gUnknown_08595E54, NULL, gDummySpriteAffineAnimTable, sub_810CEE0 + + .align 2 +gUnknown_08595EB0:: @ 8595EB0 + spr_template 0x279f, 0x279f, gUnknown_08524914, gUnknown_08595E54, NULL, gDummySpriteAffineAnimTable, sub_810CF30 + + .align 2 +gUnknown_08595EC8:: @ 8595EC8 + spr_template 0x279f, 0x279f, gUnknown_08524914, gUnknown_08595E60, NULL, gDummySpriteAffineAnimTable, sub_810D10C + + .align 2 +gUnknown_08595EE0:: @ 8595EE0 + spr_template 0x279f, 0x279f, gUnknown_08524914, gUnknown_08595E58, NULL, gDummySpriteAffineAnimTable, sub_810D1B4 + + .align 2 +gUnknown_08595EF8:: @ 8595EF8 + .2byte 0x0100, 0x0100, 0x0000, 0x0000, 0xfff8, 0xfff8, 0x0114, 0x0000 + .2byte 0x7ffe, 0x0001, 0x0000, 0x0000 + + .align 2 +gUnknown_08595F10:: @ 8595F10 + .4byte gUnknown_08595EF8 + + .align 2 +gUnknown_08595F14:: @ 8595F14 + spr_template 0x279f, 0x279f, gUnknown_085249D4, gUnknown_08595E54, NULL, gUnknown_08595F10, sub_810D278 + + .align 2 +gUnknown_08595F2C:: @ 8595F2C + .2byte 0x0100, 0x0100, 0x0000, 0x0000, 0xfffc, 0xfffc, 0x0114, 0x0000 + .2byte 0x7ffe, 0x0001, 0x0000, 0x0000 + + .align 2 +gUnknown_08595F44:: @ 8595F44 + .4byte gUnknown_08595F2C + + .align 2 +gUnknown_08595F48:: @ 8595F48 + spr_template 0x279f, 0x279f, gUnknown_085249D4, gUnknown_08595E54, NULL, gUnknown_08595F44, sub_810D278 + + .align 2 +gUnknown_08595F60:: @ 8595F60 + spr_template 0x279f, 0x279f, gUnknown_08524914, gUnknown_08595E58, NULL, gDummySpriteAffineAnimTable, sub_810D2E4 + + .align 2 +gUnknown_08595F78:: @ 8595F78 + spr_template 0x2759, 0x2759, gUnknown_0852490C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_810D37C + + .align 2 +gUnknown_08595F90:: @ 8595F90 + spr_template 0x27b7, 0x27b7, gUnknown_08524A3C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_810D40C + + .align 2 +gUnknown_08595FA8:: @ 8595FA8 + spr_template 0x27e0, 0x27e0, gUnknown_08524914, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_810D4F4 + + .align 2 +gUnknown_08595FC0:: @ 8595FC0 + .2byte 0x0020, 0x0020, 0x0000, 0x0000, 0x0004, 0x0004, 0x4000, 0x0000 + .2byte 0xfffa, 0xfffa, 0x0800, 0x0000, 0x0006, 0x0006, 0x0800, 0x0000 + .2byte 0x7ffe, 0x0002, 0x0000, 0x0000 + + .align 2 +gUnknown_08595FE8:: @ 8595FE8 + .4byte gUnknown_08595FC0 + + .align 2 +gUnknown_08595FEC:: @ 8595FEC + spr_template 0x27e4, 0x27e4, gUnknown_08524AFC, gDummySpriteAnimTable, NULL, gUnknown_08595FE8, sub_810D608 + + .align 2 +gUnknown_08596004:: @ 8596004 + spr_template 0x2811, 0x2811, gUnknown_0852490C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_810D714 + + .align 2 +gUnknown_0859601C:: @ 859601C + spr_template 0x2810, 0x2810, gUnknown_0852491C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_810D874 + + .align 2 +gUnknown_08596034:: @ 8596034 + spr_template 0x279f, 0x279f, gUnknown_08524914, gUnknown_08595E54, NULL, gDummySpriteAffineAnimTable, sub_810D984 + + .align 2 +gUnknown_0859604C:: @ 859604C + .2byte 0x0000, 0x0004, 0x0010, 0x0004, 0x0020, 0x0004, 0xffff, 0x0000 + + .align 2 +gUnknown_0859605C:: @ 859605C + .2byte 0x0000, 0x0084, 0x0010, 0x0084, 0x0020, 0x0084, 0xffff, 0x0000 + + .align 2 +gUnknown_0859606C:: @ 859606C + .2byte 0x0000, 0x0044, 0x0010, 0x0044, 0x0020, 0x0044, 0xffff, 0x0000 + + .align 2 +gUnknown_0859607C:: @ 859607C + .4byte gUnknown_0859604C + .4byte gUnknown_0859605C + .4byte gUnknown_0859606C + + .align 2 +gUnknown_08596088:: @ 8596088 + spr_template 0x2805, 0x2805, gUnknown_08524914, gUnknown_0859607C, NULL, gDummySpriteAffineAnimTable, sub_810DA10 + + .align 2 +gUnknown_085960A0:: @ 85960A0 + .2byte 0x0000, 0x0006, 0x0040, 0x0006, 0xffff, 0x0000 + + .align 2 +gUnknown_085960AC:: @ 85960AC + .2byte 0x0000, 0x00c6, 0x0040, 0x00c6, 0xffff, 0x0000 + + .align 2 +gUnknown_085960B8:: @ 85960B8 + .2byte 0x0000, 0x0046, 0x0040, 0x0046, 0xffff, 0x0000 + + .align 2 +gUnknown_085960C4:: @ 85960C4 + .4byte gUnknown_085960A0 + .4byte gUnknown_085960AC + .4byte gUnknown_085960B8 + + .align 2 +gUnknown_085960D0:: @ 85960D0 + spr_template 0x2806, 0x2806, gUnknown_0852491C, gUnknown_085960C4, NULL, gDummySpriteAffineAnimTable, sub_810DA10 + + .align 2 +gUnknown_085960E8:: @ 85960E8 + .2byte 0x0200, 0x0200, 0x0000, 0x0000, 0xffe0, 0xffe0, 0x0800, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08596100:: @ 8596100 + .4byte gUnknown_085960E8 + + .align 2 +gUnknown_08596104:: @ 8596104 + spr_template 0x279f, 0x279f, gUnknown_085249D4, gUnknown_08595E54, NULL, gUnknown_08596100, sub_810DA7C + + .align 2 +gUnknown_0859611C:: @ 859611C + .2byte 0x0000, 0x0005, 0x0008, 0x0005, 0x0010, 0x0005, 0x0018, 0x0005, 0xffff, 0x0000 + + .align 2 +gUnknown_08596130:: @ 8596130 + .4byte gUnknown_0859611C + + .align 2 +gUnknown_08596134:: @ 8596134 + spr_template 0x27a7, 0x27a7, gUnknown_08524954, gUnknown_08596130, NULL, gDummySpriteAffineAnimTable, sub_80A77C8 + + .align 2 +gUnknown_0859614C:: @ 859614C + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08596154:: @ 8596154 + .2byte 0x0004, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_0859615C:: @ 859615C + .2byte 0x0008, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08596164:: @ 8596164 + .4byte gUnknown_0859614C + + .align 2 +gUnknown_08596168:: @ 8596168 + .4byte gUnknown_08596154 + + .align 2 +gUnknown_0859616C:: @ 859616C + .4byte gUnknown_0859615C + + .align 2 +gUnknown_08596170:: @ 8596170 + .2byte 0x0160, 0x0160, 0x0000, 0x0000, 0xfff6, 0xfff6, 0x0a00, 0x0000 + .2byte 0x000a, 0x000a, 0x0a00, 0x0000, 0x7ffe, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08596190:: @ 8596190 + .2byte 0x00ec, 0x00ec, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_085961A0:: @ 85961A0 + .4byte gUnknown_08596170 + + .align 2 +gUnknown_085961A4:: @ 85961A4 + .4byte gUnknown_08596190 + + .align 2 +gUnknown_085961A8:: @ 85961A8 + spr_template 0x27a6, 0x27a6, gUnknown_085249CC, gUnknown_08596164, NULL, gUnknown_085961A0, sub_810DBAC + + .align 2 +gUnknown_085961C0:: @ 85961C0 + spr_template 0x27a6, 0x27a6, gUnknown_085249CC, gUnknown_08596164, NULL, gUnknown_085961A0, sub_810DC2C + + .align 2 +gUnknown_085961D8:: @ 85961D8 + spr_template 0x27a6, 0x27a6, gUnknown_0852496C, gUnknown_0859616C, NULL, gUnknown_085961A4, sub_810DCD0 + + .align 2 +gUnknown_085961F0:: @ 85961F0 + .2byte 0xfff0, 0x0010, 0x0600, 0x0000, 0x0010, 0xfff0, 0x0600, 0x0000 + .2byte 0x7ffe, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08596208:: @ 8596208 + .4byte gUnknown_085961F0 + + .align 2 +gUnknown_0859620C:: @ 859620C + spr_template 0x27a6, 0x27a6, gUnknown_085249CC, gUnknown_08596168, NULL, gUnknown_08596208, sub_810DD50 + + .align 2 +gUnknown_08596224:: @ 8596224 + .2byte 0x009c, 0x009c, 0x0000, 0x0000, 0x0005, 0x0005, 0x1400, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_0859623C:: @ 859623C + .4byte gUnknown_08596224 + + .align 2 +gUnknown_08596240:: @ 8596240 + spr_template 0x27a6, 0x27a6, gUnknown_0852496C, gUnknown_08596164, NULL, gUnknown_0859623C, sub_810DDC4 + + .align 2 +gUnknown_08596258:: @ 8596258 + spr_template 0x27ab, 0x27ab, gUnknown_08524A8C, gUnknown_08595200, NULL, gUnknown_0859623C, sub_810DDC4 + + .align 2 +gUnknown_08596270:: @ 8596270 + spr_template 0x2719, 0x2719, gUnknown_0852495C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_810DE70 + + .align 2 +gUnknown_08596288:: @ 8596288 + .2byte 0x0010, 0x0100, 0x0000, 0x0000, 0x000a, 0x0000, 0x1800, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_085962A0:: @ 85962A0 + .4byte gUnknown_08596288 + + .align 2 +gUnknown_085962A4:: @ 85962A4 + spr_template 0x2719, 0x2719, gUnknown_085249BC, gDummySpriteAnimTable, NULL, gUnknown_085962A0, sub_810DFA8 + + .align 2 +gUnknown_085962BC:: @ 85962BC + .2byte 0x0000, 0x0003, 0x0000, 0x0043, 0x0000, 0x0083, 0x0000, 0x00c3, 0xfffe, 0x0000 + + .align 2 +gUnknown_085962D0:: @ 85962D0 + .4byte gUnknown_085962BC + + .align 2 +gUnknown_085962D4:: @ 85962D4 + spr_template 0x27aa, 0x27aa, gUnknown_08524934, gUnknown_085962D0, NULL, gDummySpriteAffineAnimTable, sub_810E044 + + .align 2 +gUnknown_085962EC:: @ 85962EC + .2byte 0x0010, 0x0100, 0x0000, 0x0000, 0x0028, 0x0000, 0x0600, 0x0000 + .2byte 0x0000, 0xffe0, 0x0500, 0x0000, 0xfff0, 0x0020, 0x0a00, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08596314:: @ 8596314 + .4byte gUnknown_085962EC + + .align 2 +gUnknown_08596318:: @ 8596318 + .2byte 0x0000, 0x0000, 0x0132, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08596328:: @ 8596328 + .2byte 0x0000, 0x0000, 0x01d8, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08596338:: @ 8596338 + .4byte gUnknown_08596318 + .4byte gUnknown_08596328 + + .align 2 +gUnknown_08596340:: @ 8596340 + spr_template 0x27ac, 0x27ac, gUnknown_085249DC, gDummySpriteAnimTable, NULL, gUnknown_08596314, sub_810E13C + + .align 2 +gUnknown_08596358:: @ 8596358 + spr_template 0x27ac, 0x27ac, gUnknown_0852497C, gDummySpriteAnimTable, NULL, gUnknown_08596338, sub_810E1C8 + + .align 2 +gUnknown_08596370:: @ 8596370 + .2byte 0x0000, 0x0000, 0xffff, 0x0000 + + .align 2 +gUnknown_08596378:: @ 8596378 + .2byte 0x0010, 0x0040, 0xffff, 0x0000 + + .align 2 +gUnknown_08596380:: @ 8596380 + .4byte gUnknown_08596370 + .4byte gUnknown_08596378 + + .align 2 +gUnknown_08596388:: @ 8596388 + spr_template 0x281e, 0x281e, gUnknown_08524974, gUnknown_08596380, NULL, gDummySpriteAffineAnimTable, sub_810E314 + + .align 2 +gUnknown_085963A0:: @ 85963A0 + spr_template 0x27ab, 0x27ab, gUnknown_0852490C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_810EA4C + + .align 2 +gUnknown_085963B8:: @ 85963B8 + .2byte 0x0000, 0x0001, 0x0008, 0x0001, 0x0010, 0x0001, 0x0008, 0x0041 + .2byte 0x0000, 0x0041, 0xffff, 0x0000 + + .align 2 +gUnknown_085963D0:: @ 85963D0 + .4byte gUnknown_085963B8 + + .align 2 +gUnknown_085963D4:: @ 85963D4 + spr_template 0x27b2, 0x27b2, gUnknown_08524934, gUnknown_085963D0, NULL, gDummySpriteAffineAnimTable, sub_810EAA0 + + .align 2 +gUnknown_085963EC:: @ 85963EC + .2byte 0x0010, 0x0100, 0x0000, 0x0000, 0x0028, 0x0000, 0x0600, 0x0000 + .2byte 0x0000, 0xffe0, 0x0500, 0x0000, 0xffec, 0x0000, 0x0700, 0x0000 + .2byte 0xffec, 0xffec, 0x0500, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_0859641C:: @ 859641C + .4byte gUnknown_085963EC + + .align 2 +gUnknown_08596420:: @ 8596420 + spr_template 0x27ac, 0x27ac, gUnknown_085249DC, gDummySpriteAnimTable, NULL, gUnknown_0859641C, sub_810EC34 + + .align 2 +gUnknown_08596438:: @ 8596438 + .2byte 0x00a0, 0x0100, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08596448:: @ 8596448 + .4byte gUnknown_08596438 + + .align 2 +gUnknown_0859644C:: @ 859644C + spr_template 0x27ac, 0x27ac, gUnknown_085249DC, gDummySpriteAnimTable, NULL, gUnknown_08596448, sub_810EC94 + + .align 2 +gUnknown_08596464:: @ 8596464 + .2byte 0x0010, 0x0100, 0x0000, 0x0000, 0x0028, 0x0000, 0x0600, 0x0000 + .2byte 0x0000, 0xffe0, 0x0500, 0x0000, 0xfff0, 0x0020, 0x0a00, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_0859648C:: @ 859648C + .4byte gUnknown_08596464 + + .align 2 +gUnknown_08596490:: @ 8596490 + spr_template 0x27ac, 0x27ac, gUnknown_085249DC, gDummySpriteAnimTable, NULL, gUnknown_0859648C, sub_810ED28 + + .align 2 +gUnknown_085964A8:: @ 85964A8 + .2byte 0x0100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0020, 0x0c00, 0x0000 + .2byte 0x0000, 0xffe0, 0x0b00, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_085964C8:: @ 85964C8 + .4byte gUnknown_085964A8 + + .align 2 +gUnknown_085964CC:: @ 85964CC + spr_template 0x2820, 0x2820, gUnknown_085249DC, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_810EE14 + + .align 2 +gUnknown_085964E4:: @ 85964E4 + spr_template 0x2821, 0x2821, gUnknown_08524904, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_810EEF8 + + .align 2 +gUnknown_085964FC:: @ 85964FC + spr_template 0x27e4, 0x27e4, gUnknown_08524A3C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_810F004 + + .align 2 +gUnknown_08596514:: @ 8596514 + spr_template 0x282c, 0x282c, gUnknown_085249DC, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_810F084 + + .align 2 +gUnknown_0859652C:: @ 859652C + .2byte 0x0100, 0x0100, 0x0000, 0x0000, 0xfffe, 0xfffe, 0x78f6, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08596544:: @ 8596544 + .4byte gUnknown_0859652C + + .align 2 +gUnknown_08596548:: @ 8596548 + spr_template 0x27d4, 0x27d4, gUnknown_08524A9C, gDummySpriteAnimTable, NULL, gUnknown_08596544, sub_80A77C8 + + .align 2 +gUnknown_08596560:: @ 8596560 + spr_template 0x27b6, 0x27b6, gUnknown_08524A3C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_810F1EC + + .align 2 +gUnknown_08596578:: @ 8596578 + spr_template 0x27b7, 0x27b7, gUnknown_08524A3C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_810F1EC + + .align 2 +gUnknown_08596590:: @ 8596590 + spr_template 0x27b8, 0x27b8, gUnknown_08524A3C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_810F1EC + + .align 2 +gUnknown_085965A8:: @ 85965A8 + spr_template 0x27b9, 0x27b9, gUnknown_08524A3C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_810F1EC + + .align 2 +gUnknown_085965C0:: @ 85965C0 + spr_template 0x27ba, 0x27ba, gUnknown_08524A3C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_810F1EC + + .align 2 +gUnknown_085965D8:: @ 85965D8 + .2byte 0x0000, 0x0003, 0x0010, 0x0003, 0x0020, 0x0003, 0x0030, 0x0003 + .2byte 0x0040, 0x0003, 0xffff, 0x0000 + + .align 2 +gUnknown_085965F0:: @ 85965F0 + .4byte gUnknown_085965D8 + + .align 2 +gUnknown_085965F4:: @ 85965F4 + spr_template 0x2757, 0x2757, gUnknown_08524914, gUnknown_085965F0, NULL, gDummySpriteAffineAnimTable, sub_810F58C + + .align 2 +gUnknown_0859660C:: @ 859660C + .2byte 0x0000, 0x0005, 0x0004, 0x0005, 0x0008, 0x0005, 0x000c, 0x0005, 0xffff, 0x0000 + + .align 2 +gUnknown_08596620:: @ 8596620 + .4byte gUnknown_0859660C + + .align 2 +gUnknown_08596624:: @ 8596624 + spr_template 0x2756, 0x2756, gUnknown_0852490C, gUnknown_08596620, NULL, gDummySpriteAffineAnimTable, sub_810F58C + + .align 2 +gUnknown_0859663C:: @ 859663C + spr_template 0x27b3, 0x27b3, gUnknown_08524954, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A7820 + + .align 2 +gUnknown_08596654:: @ 8596654 + .2byte 0x0008, 0x007c, 0x0010, 0x0045, 0x0008, 0x0045, 0x0000, 0x0045 + .2byte 0x0008, 0x0056, 0xfffd, 0x0000, 0x0010, 0x0045, 0x0008, 0x0045 + .2byte 0x0000, 0x0045, 0x0008, 0x0045, 0xfffd, 0x0001, 0x0008, 0x0056 + .2byte 0x0018, 0x0043, 0x0020, 0x0043, 0x0028, 0x0056, 0xffff, 0x0000 + + .align 2 +gUnknown_08596694:: @ 8596694 + .2byte 0x0008, 0x003c, 0x0010, 0x0005, 0x0008, 0x0005, 0x0000, 0x0005 + .2byte 0x0008, 0x0016, 0xfffd, 0x0000, 0x0010, 0x0005, 0x0008, 0x0005 + .2byte 0x0000, 0x0005, 0x0008, 0x0005, 0xfffd, 0x0001, 0x0008, 0x0016 + .2byte 0x0018, 0x0003, 0x0020, 0x0003, 0x0028, 0x0016, 0xffff, 0x0000 + + .align 2 +gUnknown_085966D4:: @ 85966D4 + .4byte gUnknown_08596654 + .4byte gUnknown_08596694 + + .align 2 +gUnknown_085966DC:: @ 85966DC + spr_template 0x2771, 0x2771, gUnknown_08524954, gUnknown_085966D4, NULL, gDummySpriteAffineAnimTable, sub_810F634 + + .align 2 +gUnknown_085966F4:: @ 85966F4 + .2byte 0x0000, 0x0006, 0x0010, 0x0006, 0x0020, 0x0006, 0x0030, 0x0006 + .2byte 0x0040, 0x0006, 0x0050, 0x0006, 0x0060, 0x0012, 0xffff, 0x0000 + + .align 2 +gUnknown_08596714:: @ 8596714 + .4byte gUnknown_085966F4 + + .align 2 +gUnknown_08596718:: @ 8596718 + .2byte 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000, 0x08fc, 0x0000 + .2byte 0x0000, 0x0000, 0x0404, 0x0000, 0x7ffd, 0x0002, 0x0000, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08596740:: @ 8596740 + .4byte gUnknown_08596718 + + .align 2 +gUnknown_08596744:: @ 8596744 + spr_template 0x276d, 0x276d, gUnknown_08524914, gUnknown_08596714, NULL, gDummySpriteAffineAnimTable, sub_810F6B0 + + .align 2 +gUnknown_0859675C:: @ 859675C + .2byte 0xfff8, 0x000a, 0x1000, 0x0000, 0x0012, 0xffee, 0x1000, 0x0000 + .2byte 0xffec, 0x0010, 0x0800, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_0859677C:: @ 859677C + .2byte 0x0040, 0xfffc, 0x1400, 0x0000, 0x0000, 0x0000, 0xc800, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08596794:: @ 8596794 + spr_template 0x2809, 0x2809, gUnknown_08524A2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + + .align 2 +gUnknown_085967AC:: @ 85967AC + spr_template 0x280a, 0x280a, gUnknown_0852491C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_810FBA8 + + .align 2 +gUnknown_085967C4:: @ 85967C4 + .2byte 0xfff8, 0xfff8, 0x0800, 0x0000, 0x0008, 0x0008, 0x0800, 0x0000 + .2byte 0x7ffe, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_085967DC:: @ 85967DC + .2byte 0x00f0, 0x00f0, 0x0000, 0x0000, 0xfff8, 0xfff8, 0x0600, 0x0000 + .2byte 0x0008, 0x0008, 0x0800, 0x0000, 0xfff8, 0xfff8, 0x0200, 0x0000 + .2byte 0x7ffe, 0x0001, 0x0000, 0x0000 + + .align 2 +gUnknown_08596804:: @ 8596804 + .2byte 0x00d0, 0x00d0, 0x0000, 0x0000, 0xfff8, 0xfff8, 0x0400, 0x0000 + .2byte 0x0008, 0x0008, 0x0800, 0x0000, 0xfff8, 0xfff8, 0x0400, 0x0000 + .2byte 0x7ffe, 0x0001, 0x0000, 0x0000 + + .align 2 +gUnknown_0859682C:: @ 859682C + .2byte 0x00b0, 0x00b0, 0x0000, 0x0000, 0xfff8, 0xfff8, 0x0200, 0x0000 + .2byte 0x0008, 0x0008, 0x0800, 0x0000, 0xfff8, 0xfff8, 0x0600, 0x0000 + .2byte 0x7ffe, 0x0001, 0x0000, 0x0000 + + .align 2 +gUnknown_08596854:: @ 8596854 + .4byte gUnknown_085967C4 + .4byte gUnknown_085967DC + .4byte gUnknown_08596804 + .4byte gUnknown_0859682C + + .align 2 +gUnknown_08596864:: @ 8596864 + spr_template 0x280b, 0x280b, gUnknown_0852496C, gDummySpriteAnimTable, NULL, gUnknown_08596854, sub_810FDF0 + + .align 2 +gUnknown_0859687C:: @ 859687C + .2byte 0x0020, 0x0020, 0x0000, 0x0000, 0x0004, 0x0004, 0x7800, 0x0000 + .2byte 0x7fff, 0x0001, 0x0000, 0x0000 + + .align 2 +gUnknown_08596894:: @ 8596894 + .4byte gUnknown_0859687C + + .align 2 +gUnknown_08596898:: @ 8596898 + spr_template 0x281b, 0x281b, gUnknown_08524AFC, gDummySpriteAnimTable, NULL, gUnknown_08596894, sub_80A77C8 + + .align 2 +gUnknown_085968B0:: @ 85968B0 + .2byte 0x0020, 0x0020, 0x0000, 0x0000, 0x0010, 0x0010, 0x1100, 0x0000 + .2byte 0x7ffd, 0x0000, 0x0000, 0x0000, 0xfff8, 0xfff8, 0x0a00, 0x0000 + .2byte 0x0008, 0x0008, 0x0a00, 0x0000, 0x7ffd, 0x0004, 0x0000, 0x0000 + .2byte 0x7ffd, 0x0000, 0x0000, 0x0000, 0xfff0, 0xfff0, 0x0500, 0x0000 + .2byte 0x0010, 0x0010, 0x0500, 0x0000, 0x7ffd, 0x0007, 0x0000, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08596908:: @ 8596908 + .2byte 0xffec, 0x0018, 0x0f00, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08596918:: @ 8596918 + .4byte gUnknown_085968B0 + .4byte gUnknown_08596908 + + .align 2 +gUnknown_08596920:: @ 8596920 + spr_template 0x27e4, 0x27e4, gUnknown_08524AFC, gDummySpriteAnimTable, NULL, gUnknown_08596918, sub_8110240 + + .align 2 +gUnknown_08596938:: @ 8596938 + .2byte 0x0100, 0x0100, 0x001e, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08596948:: @ 8596948 + .2byte 0x0100, 0x0100, 0x009d, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08596958:: @ 8596958 + .2byte 0x0100, 0x0100, 0x005e, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08596968:: @ 8596968 + .4byte gUnknown_08596938 + .4byte gUnknown_08596948 + .4byte gUnknown_08596958 + + .align 2 +gUnknown_08596974:: @ 8596974 + spr_template 0x27a9, 0x27a9, gUnknown_085249F4, gDummySpriteAnimTable, NULL, gUnknown_08596968, sub_8110368 + + .align 2 +gUnknown_0859698C:: @ 859698C + .2byte 0x0000, 0x0000, 0x01df, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_0859699C:: @ 859699C + .2byte 0x0000, 0x0000, 0x0160, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_085969AC:: @ 85969AC + .2byte 0x0000, 0x0000, 0x01a0, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_085969BC:: @ 85969BC + .4byte gUnknown_0859698C + .4byte gUnknown_0859699C + .4byte gUnknown_085969AC + + .align 2 +gUnknown_085969C8:: @ 85969C8 + spr_template 0x27b1, 0x27b1, gUnknown_0852496C, gDummySpriteAnimTable, NULL, gUnknown_085969BC, sub_8110438 + + .align 2 +gUnknown_085969E0:: @ 85969E0 + spr_template 0x27c4, 0x27c4, gUnknown_08524904, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_81104E4 + + .align 2 +gUnknown_085969F8:: @ 85969F8 + spr_template 0x27c3, 0x27c3, gUnknown_0852493C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_81105B4 + + .align 2 +gUnknown_08596A10:: @ 8596A10 + .2byte 0x0010, 0x0010, 0x0000, 0x0000, 0x0006, 0x0006, 0x0100, 0x0000 + .2byte 0x7ffe, 0x0001, 0x0000, 0x0000 + + .align 2 +gUnknown_08596A28:: @ 8596A28 + .4byte gUnknown_08596A10 + + .align 2 +gUnknown_08596A2C:: @ 8596A2C + spr_template 0x27c5, 0x27c5, gUnknown_08524AFC, gDummySpriteAnimTable, NULL, gUnknown_08596A28, sub_811067C + + .align 2 +gUnknown_08596A44:: @ 8596A44 + spr_template 0x27b1, 0x27b1, gUnknown_0852496C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8110720 + + .align 2 +gUnknown_08596A5C:: @ 8596A5C + spr_template 0x27b1, 0x27b1, gUnknown_0852496C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8110850 + + .align 2 +gUnknown_08596A74:: @ 8596A74 + spr_template 0x2816, 0x2816, gUnknown_08524974, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8110850 + + .align 2 +gUnknown_08596A8C:: @ 8596A8C + .2byte 0x0010, 0x0010, 0x0000, 0x0000, 0x0008, 0x0008, 0x1200, 0x0000 + .2byte 0x7ffd, 0x0000, 0x0000, 0x0000, 0xfffb, 0xfffb, 0x0800, 0x0000 + .2byte 0x0005, 0x0005, 0x0800, 0x0000, 0x7ffd, 0x0005, 0x0000, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08596AC4:: @ 8596AC4 + .4byte gUnknown_08596A8C + + .align 2 +gUnknown_08596AC8:: @ 8596AC8 + spr_template 0x27e4, 0x27e4, gUnknown_08524A9C, gDummySpriteAnimTable, NULL, gUnknown_08596AC4, sub_8110994 + + .align 2 +gUnknown_08596AE0:: @ 8596AE0 + .2byte 0x0020, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08596AE8:: @ 8596AE8 + .2byte 0x0030, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08596AF0:: @ 8596AF0 + .2byte 0x0040, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08596AF8:: @ 8596AF8 + .4byte gUnknown_08596AE0 + .4byte gUnknown_08596AE8 + .4byte gUnknown_08596AF0 + + .align 2 +gUnknown_08596B04:: @ 8596B04 + spr_template 0x274a, 0x274a, gUnknown_08524914, gUnknown_08596AF8, NULL, gDummySpriteAffineAnimTable, sub_81109F0 + + .align 2 +gUnknown_08596B1C:: @ 8596B1C + spr_template 0x274a, 0x274a, gUnknown_08524914, gUnknown_08596AF8, NULL, gDummySpriteAffineAnimTable, sub_8110AB4 + + .align 2 +gUnknown_08596B34:: @ 8596B34 + spr_template 0x275a, 0x275a, gUnknown_08524904, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8110B38 + + .align 2 +gUnknown_08596B4C:: @ 8596B4C + .2byte 0x00c0, 0x00c0, 0x0000, 0x0000, 0x0002, 0xfffd, 0x0500, 0x0000 + .2byte 0xfffe, 0x0003, 0x0500, 0x0000, 0x7ffe, 0x0001, 0x0000, 0x0000 + + .align 2 +gUnknown_08596B6C:: @ 8596B6C + .4byte gUnknown_08596B4C + + .align 2 +gUnknown_08596B70:: @ 8596B70 + spr_template 0x27a5, 0x27a5, gUnknown_08524A8C, gUnknown_085950E0, NULL, gUnknown_08596B6C, sub_8110B38 + + .align 2 +gUnknown_08596B88:: @ 8596B88 + spr_template 0x272d, 0x272d, gUnknown_08524914, gUnknown_085954D0, NULL, gDummySpriteAffineAnimTable, sub_8110B38 + + .align 2 +gUnknown_08596BA0:: @ 8596BA0 + spr_template 0x2815, 0x2815, gUnknown_08524934, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8110E4C + + .align 2 +gUnknown_08596BB8:: @ 8596BB8 + .2byte 0x00f0, 0x4009, 0x0010, 0x4089 + + .align 2 +gUnknown_08596BC0:: @ 8596BC0 + .2byte 0x0002, 0x0000 + + .align 2 +gUnknown_08596BC4:: @ 8596BC4 + .4byte gUnknown_08596BB8 + + .align 2 +gUnknown_08596BC8:: @ 8596BC8 + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08596BD0:: @ 8596BD0 + .2byte 0x0010, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08596BD8:: @ 8596BD8 + .2byte 0x0020, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08596BE0:: @ 8596BE0 + .2byte 0x0030, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08596BE8:: @ 8596BE8 + .2byte 0x0040, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08596BF0:: @ 8596BF0 + .2byte 0x0050, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08596BF8:: @ 8596BF8 + .4byte gUnknown_08596BC8 + .4byte gUnknown_08596BD0 + + .align 2 +gUnknown_08596C00:: @ 8596C00 + .4byte gUnknown_08596BD8 + .4byte gUnknown_08596BE0 + + .align 2 +gUnknown_08596C08:: @ 8596C08 + .4byte gUnknown_08596BE8 + .4byte gUnknown_08596BF0 + + .align 2 +gUnknown_08596C10:: @ 8596C10 + spr_template 0x274a, 0x274a, gUnknown_08524914, gUnknown_08596BF8, NULL, gDummySpriteAffineAnimTable, sub_8110F30 + + .align 2 +gUnknown_08596C28:: @ 8596C28 + spr_template 0x275a, 0x275a, gUnknown_08524904, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_811131C + + .align 2 +gUnknown_08596C40:: @ 8596C40 + spr_template 0x274a, 0x274a, gUnknown_08524914, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_811131C + + .align 2 +gUnknown_08596C58:: @ 8596C58 + spr_template 0x274a, 0x274a, gUnknown_08524914, gUnknown_08596BF8, NULL, gDummySpriteAffineAnimTable, sub_8111388 + + .align 2 +gUnknown_08596C70:: @ 8596C70 + .2byte 0x0000, 0x0000, 0x05fb, 0x0000, 0x7ffe, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08596C80:: @ 8596C80 + .2byte 0x0000, 0x0000, 0x0505, 0x0000, 0x7ffe, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08596C90:: @ 8596C90 + .4byte gUnknown_08596C70 + .4byte gUnknown_08596C80 + + .align 2 +gUnknown_08596C98:: @ 8596C98 + spr_template 0x274a, 0x274a, gUnknown_08524974, gUnknown_08596BF8, NULL, gUnknown_08596C90, sub_8111418 + + .align 2 +gUnknown_08596CB0:: @ 8596CB0 + spr_template 0x274a, 0x274a, gUnknown_08524974, gUnknown_08596BF8, NULL, gUnknown_08596C90, sub_8111444 + + .align 2 +gUnknown_08596CC8:: @ 8596CC8 + spr_template 0x274a, 0x274a, gUnknown_08524914, gUnknown_08596C08, NULL, gUnknown_08596C90, sub_80FF268 + + .align 2 +gUnknown_08596CE0:: @ 8596CE0 + spr_template 0x274a, 0x274a, gUnknown_08524974, gUnknown_08596C00, NULL, gUnknown_08596C90, sub_80A8EE4 + + .align 2 +gUnknown_08596CF8:: @ 8596CF8 + .2byte 0x001e, 0x001e, 0x050a, 0x0000, 0xffe2, 0xffe2, 0x050a, 0x0000 + .2byte 0x7ffe, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08596D10:: @ 8596D10 + .4byte gUnknown_08596CF8 + + .align 2 +gUnknown_08596D14:: @ 8596D14 + spr_template 0x271d, 0x271d, gUnknown_085249CC, gDummySpriteAnimTable, NULL, gUnknown_08596D10, sub_811160C + + .align 2 +gUnknown_08596D2C:: @ 8596D2C + spr_template 0x271d, 0x271d, gUnknown_08524A2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_81117F4 + + .align 2 +gUnknown_08596D44:: @ 8596D44 + .2byte 0x0000, 0x0000, 0x010a, 0x0000, 0x7ffe, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08596D54:: @ 8596D54 + .4byte gUnknown_08596D44 + + .align 2 +gUnknown_08596D58:: @ 8596D58 + spr_template 0x27c0, 0x27c0, gUnknown_08524974, gDummySpriteAnimTable, NULL, gUnknown_08596D54, sub_81119E0 + + .align 2 +gUnknown_08596D70:: @ 8596D70 + .2byte 0x0000, 0x0002, 0x0008, 0x0002, 0x0010, 0x0002, 0x0018, 0x0002 + .2byte 0x0020, 0x0002, 0xffff, 0x0000 + + .align 2 +gUnknown_08596D88:: @ 8596D88 + .4byte gUnknown_08596D70 + + .align 2 +gUnknown_08596D8C:: @ 8596D8C + spr_template 0x27c1, 0x27c1, gUnknown_08524954, gUnknown_08596D88, NULL, gDummySpriteAffineAnimTable, sub_8111B9C + + .align 2 +gUnknown_08596DA4:: @ 8596DA4 + .2byte 0x0200, 0x0200, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08596DB4:: @ 8596DB4 + .4byte gUnknown_08596DA4 + + .align 2 +gUnknown_08596DB8:: @ 8596DB8 + spr_template 0x27cc, 0x27cc, gUnknown_08524A5C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8112264 + + .align 2 +gUnknown_08596DD0:: @ 8596DD0 + spr_template 0x27d7, 0x27d7, gUnknown_08524A54, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_81129F0 + + .align 2 +gUnknown_08596DE8:: @ 8596DE8 + spr_template 0x27d8, 0x27d8, gUnknown_08524A34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8112B78 + + .align 2 +gUnknown_08596E00:: @ 8596E00 + spr_template 0x27ed, 0x27ed, gUnknown_08524A34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8112B78 + + .align 2 +gUnknown_08596E18:: @ 8596E18 + .2byte 0x0000, 0x0004, 0x0008, 0x0004, 0x0010, 0x0004, 0x0018, 0x0004, 0xfffe, 0x0000 + + .align 2 +gUnknown_08596E2C:: @ 8596E2C + .4byte gUnknown_08596E18 + + .align 2 +gUnknown_08596E30:: @ 8596E30 + spr_template 0x280d, 0x280d, gUnknown_08524A74, gUnknown_08596E2C, NULL, gDummySpriteAffineAnimTable, sub_8112E9C + + .align 2 +gUnknown_08596E48:: @ 8596E48 + spr_template 0x0000, 0x0000, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8112F60 + + .align 2 +gUnknown_08596E60:: @ 8596E60 + .2byte 0x0000, 0x0004, 0x0010, 0x0004, 0x0020, 0x0004, 0x0030, 0x0004 + .2byte 0x0040, 0x0004, 0xfffe, 0x0000 + + .align 2 +gUnknown_08596E78:: @ 8596E78 + .4byte gUnknown_08596E60 + + .align 2 +gUnknown_08596E7C:: @ 8596E7C + spr_template 0x272d, 0x272d, gUnknown_08524914, gUnknown_08596E78, NULL, gDummySpriteAffineAnimTable, sub_8113064 + + .align 2 +gUnknown_08596E94:: @ 8596E94 + .2byte 0x0010, 0x0003, 0x0020, 0x0003, 0x0030, 0x0003, 0xfffe, 0x0000 + + .align 2 +gUnknown_08596EA4:: @ 8596EA4 + .2byte 0x0010, 0x00c3, 0x0020, 0x00c3, 0x0030, 0x00c3, 0xfffe, 0x0000 + + .align 2 +gUnknown_08596EB4:: @ 8596EB4 + .4byte gUnknown_08596E94 + .4byte gUnknown_08596EA4 + + .align 2 +gUnknown_08596EBC:: @ 8596EBC + .2byte 0x0050, 0x0050, 0x007f, 0x0000, 0x000d, 0x000d, 0x6400, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08596ED4:: @ 8596ED4 + .2byte 0x0050, 0x0050, 0x0000, 0x0000, 0x000d, 0x000d, 0x6400, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08596EEC:: @ 8596EEC + .4byte gUnknown_08596EBC + .4byte gUnknown_08596ED4 + + .align 2 +gUnknown_08596EF4:: @ 8596EF4 + spr_template 0x272d, 0x272d, gUnknown_085249D4, gUnknown_08596EB4, NULL, gUnknown_08596EEC, sub_8113224 + + .align 2 +gUnknown_08596F0C:: @ 8596F0C + .2byte 0x0000, 0x0005, 0x0010, 0x0005, 0x0020, 0x0005, 0x0030, 0x0005 + .2byte 0x0040, 0x0005, 0xffff, 0x0000 + + .align 2 +gUnknown_08596F24:: @ 8596F24 + .4byte gUnknown_08596F0C + + .align 2 +gUnknown_08596F28:: @ 8596F28 + spr_template 0x2733, 0x2733, gUnknown_08524914, gUnknown_08596F24, NULL, gDummySpriteAffineAnimTable, sub_81131B4 + + .align 2 +gUnknown_08596F40:: @ 8596F40 + .2byte 0x0010, 0x0003, 0x0020, 0x0003, 0x0030, 0x0003, 0xfffe, 0x0000 + + .align 2 +gUnknown_08596F50:: @ 8596F50 + .4byte gUnknown_08596F40 + .4byte gUnknown_08596F40 + + .align 2 +gUnknown_08596F58:: @ 8596F58 + .2byte 0x0064, 0x0064, 0x017f, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08596F68:: @ 8596F68 + .2byte 0x0064, 0x0064, 0x0100, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08596F78:: @ 8596F78 + .4byte gUnknown_08596F58 + .4byte gUnknown_08596F68 + + .align 2 +gUnknown_08596F80:: @ 8596F80 + spr_template 0x272d, 0x272d, gUnknown_085249D4, gUnknown_08596F50, NULL, gUnknown_08596F78, sub_8113224 + + .align 2 +gUnknown_08596F98:: @ 8596F98 + spr_template 0x2809, 0x2809, gUnknown_0852490C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8113250 + + .align 2 +gUnknown_08596FB0:: @ 8596FB0 + spr_template 0x272d, 0x272d, gUnknown_08524914, gUnknown_08596E78, NULL, gDummySpriteAffineAnimTable, sub_81135EC + + .align 2 +gUnknown_08596FC8:: @ 8596FC8 + spr_template 0x271f, 0x271f, gUnknown_0852490C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_81138D4 + + .align 2 +gUnknown_08596FE0:: @ 8596FE0 + .2byte 0x0000, 0x0000, 0x0100, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08596FF0:: @ 8596FF0 + .2byte 0x0000, 0x0000, 0x0120, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08597000:: @ 8597000 + .2byte 0x0000, 0x0000, 0x0140, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08597010:: @ 8597010 + .2byte 0x0000, 0x0000, 0x0160, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08597020:: @ 8597020 + .2byte 0x0000, 0x0000, 0x0180, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08597030:: @ 8597030 + .2byte 0x0000, 0x0000, 0x01a0, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08597040:: @ 8597040 + .2byte 0x0000, 0x0000, 0x01c0, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08597050:: @ 8597050 + .2byte 0x0000, 0x0000, 0x01e0, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08597060:: @ 8597060 + .4byte gUnknown_08596FE0 + .4byte gUnknown_08596FF0 + .4byte gUnknown_08597000 + .4byte gUnknown_08597010 + .4byte gUnknown_08597020 + .4byte gUnknown_08597030 + .4byte gUnknown_08597040 + .4byte gUnknown_08597050 + + .align 2 +gUnknown_08597080:: @ 8597080 + spr_template 0x279b, 0x279b, gUnknown_08524A9C, gDummySpriteAnimTable, NULL, gUnknown_08597060, sub_81139DC + + .align 2 +gUnknown_08597098:: @ 8597098 + spr_template 0x27a1, 0x27a1, gUnknown_08524A9C, gDummySpriteAnimTable, NULL, gUnknown_08597060, sub_81139DC + + .align 2 +gUnknown_085970B0:: @ 85970B0 + .2byte 0x00c0, 0x00c0, 0x0050, 0x0000, 0x0000, 0x0000, 0x08fe, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_085970C8:: @ 85970C8 + .2byte 0x00c0, 0x00c0, 0x00b0, 0x0000, 0x0000, 0x0000, 0x0802, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_085970E0:: @ 85970E0 + .4byte gUnknown_085970B0 + .4byte gUnknown_085970C8 + + .align 2 +gUnknown_085970E8:: @ 85970E8 + spr_template 0x27ab, 0x27ab, gUnknown_0852496C, gDummySpriteAnimTable, NULL, gUnknown_085970E0, sub_8113A90 + + .align 2 +gUnknown_08597100:: @ 8597100 + .2byte 0x0000, 0x0004, 0x0010, 0x0004, 0x0020, 0x0004, 0x0030, 0x0004 + .2byte 0x0040, 0x0004, 0xffff, 0x0000 + + .align 2 +gUnknown_08597118:: @ 8597118 + .2byte 0x0000, 0x0044, 0x0010, 0x0044, 0x0020, 0x0044, 0x0030, 0x0044 + .2byte 0x0040, 0x0044, 0xffff, 0x0000 + + .align 2 +gUnknown_08597130:: @ 8597130 + .4byte gUnknown_08597100 + .4byte gUnknown_08597118 + + .align 2 +gUnknown_08597138:: @ 8597138 + spr_template 0x2737, 0x2737, gUnknown_08524914, gUnknown_08597130, NULL, gDummySpriteAffineAnimTable, sub_81144BC + + .align 2 +gUnknown_08597150:: @ 8597150 + .2byte 0x0000, 0x0000, 0x010f, 0x0000, 0x7ffe, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08597160:: @ 8597160 + .2byte 0x0000, 0x0000, 0x0114, 0x0000, 0x7ffe, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08597170:: @ 8597170 + .4byte gUnknown_08597150 + + .align 2 +gUnknown_08597174:: @ 8597174 + .4byte gUnknown_08597160 + + .align 2 +gUnknown_08597178:: @ 8597178 + spr_template 0x2710, 0x2710, gUnknown_08524974, gDummySpriteAnimTable, NULL, gUnknown_08597170, sub_8114994 + + .align 2 +gUnknown_08597190:: @ 8597190 + spr_template 0x2710, 0x2710, gUnknown_08524974, gDummySpriteAnimTable, NULL, gUnknown_08597174, sub_8114A7C + + .align 2 +gUnknown_085971A8:: @ 85971A8 + spr_template 0x275a, 0x275a, gUnknown_08524904, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8114AF0 + + .align 2 +gUnknown_085971C0:: @ 85971C0 + .2byte 0x0001, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_085971C8:: @ 85971C8 + .4byte gUnknown_085971C0 + + .align 2 +gUnknown_085971CC:: @ 85971CC + spr_template 0x275a, 0x275a, gUnknown_0852490C, gUnknown_085971C8, NULL, gDummySpriteAffineAnimTable, sub_8114AF0 + + .align 2 +gUnknown_085971E4:: @ 85971E4 + spr_template 0x275a, 0x275a, gUnknown_0852490C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8114B80 + + .align 2 +gUnknown_085971FC:: @ 85971FC + spr_template 0x275a, 0x275a, gUnknown_08524904, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_81151A0 + + .align 2 +gUnknown_08597214:: @ 8597214 + spr_template 0x2829, 0x2829, gUnknown_08524934, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8115244 + + .align 2 +gUnknown_0859722C:: @ 859722C + .2byte 0x0000, 0x0008, 0x0004, 0x0008, 0x0000, 0x0048, 0x0008, 0x0008, 0xfffe, 0x0000 + + .align 2 +gUnknown_08597240:: @ 8597240 + .2byte 0x0000, 0x0048, 0x0004, 0x0008, 0x0000, 0x0008, 0x0008, 0x0008, 0xfffe, 0x0000 + + .align 2 +gUnknown_08597254:: @ 8597254 + .4byte gUnknown_0859722C + .4byte gUnknown_08597240 + + .align 2 +gUnknown_0859725C:: @ 859725C + spr_template 0x2759, 0x2759, gUnknown_0852490C, gUnknown_08597254, NULL, gDummySpriteAffineAnimTable, sub_811572C + + .align 2 +gUnknown_08597274:: @ 8597274 + spr_template 0x0000, 0x0000, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_81157FC + + .align 2 +gUnknown_0859728C:: @ 859728C + spr_template 0x0000, 0x0000, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_81158A4 + + .align 2 +gUnknown_085972A4:: @ 85972A4 + .2byte 0x0000, 0x0003, 0x0010, 0x0003, 0x0020, 0x0003, 0x0030, 0x0003 + .2byte 0x0040, 0x0003, 0xfffe, 0x0000 + + .align 2 +gUnknown_085972BC:: @ 85972BC + .4byte gUnknown_085972A4 + + .align 2 +gUnknown_085972C0:: @ 85972C0 + spr_template 0x2757, 0x2757, gUnknown_08524914, gUnknown_085972BC, NULL, gDummySpriteAffineAnimTable, sub_81159B4 + + .align 2 +gUnknown_085972D8:: @ 85972D8 + spr_template 0x0000, 0x0000, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_81160A4 + + .align 2 +gUnknown_085972F0:: @ 85972F0 + .2byte 0x0000, 0x0000, 0x0800, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08597300:: @ 8597300 + .2byte 0x00d8, 0x00d8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0800, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08597318:: @ 8597318 + .2byte 0x00b0, 0x00b0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0800, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08597330:: @ 8597330 + .2byte 0x0080, 0x0080, 0x0000, 0x0000, 0x0000, 0x0000, 0x0800, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_08597348:: @ 8597348 + .4byte gUnknown_085972F0 + .4byte gUnknown_08597300 + .4byte gUnknown_08597318 + .4byte gUnknown_08597330 + + .align 2 +gUnknown_08597358:: @ 8597358 + spr_template 0x2797, 0x2797, gUnknown_08524A94, gDummySpriteAnimTable, NULL, gUnknown_08597348, sub_8116388 + + .align 2 +gUnknown_08597370:: @ 8597370 + spr_template 0x2797, 0x2797, gUnknown_08524A94, gDummySpriteAnimTable, NULL, gUnknown_08597348, sub_8116420 + + .align 2 +gUnknown_08597388:: @ 8597388 + spr_template 0x27a4, 0x27a4, gUnknown_08524A94, gDummySpriteAnimTable, NULL, gUnknown_08597348, sub_8116388 + + .align 2 +gUnknown_085973A0:: @ 85973A0 + spr_template 0x2797, 0x2797, gUnknown_08524A94, gDummySpriteAnimTable, NULL, gUnknown_08597348, sub_8116458 + + .align 2 +gUnknown_085973B8:: @ 85973B8 + spr_template 0x2797, 0x2797, gUnknown_08524A94, gDummySpriteAnimTable, NULL, gUnknown_08597348, sub_81164F0 + + .align 2 +gUnknown_085973D0:: @ 85973D0 + spr_template 0x282d, 0x282d, gUnknown_08524A34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8116560 + + .align 2 +gUnknown_085973E8:: @ 85973E8 + spr_template 0x2797, 0x2797, gUnknown_08524974, gDummySpriteAnimTable, NULL, gUnknown_08597348, sub_81165A8 + + .align 2 +gUnknown_08597400:: @ 8597400 + spr_template 0x2797, 0x2797, gUnknown_08524A94, gDummySpriteAnimTable, NULL, gUnknown_08597348, sub_81163D0 + +gUnknown_08597418:: @ 8597418 + .2byte 0x7fff + +gUnknown_0859741A:: @ 859741A + .byte 0x08, 0x0a, 0x0c, 0x0e + +gUnknown_0859741E:: @ 859741E + .byte 0x08, 0x0a, 0x0c, 0x0e + + .align 2 +gUnknown_08597424:: @ 8597424 + .4byte task_battle_intro_80BC47C + .4byte task_battle_intro_80BC47C + .4byte task00_battle_intro_80BC6C8 + .4byte task00_battle_intro_80BC6C8 + .4byte task00_battle_intro_80BC6C8 + .4byte task_battle_intro_80BC47C + .4byte task_battle_intro_80BC47C + .4byte task_battle_intro_80BC47C + .4byte task_battle_intro_anim + .4byte task_battle_intro_anim diff --git a/data/battle_anim_815A0D4.s b/data/battle_anim_815A0D4.s new file mode 100644 index 000000000..be8439db7 --- /dev/null +++ b/data/battle_anim_815A0D4.s @@ -0,0 +1,66 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + + +gUnknown_085CE2A0:: @ 85CE2A0 + .incbin "baserom.gba", 0x5ce2a0, 0xb0 + +gUnknown_085CE350:: @ 85CE350 + .incbin "baserom.gba", 0x5ce350, 0x38 + +gUnknown_085CE388:: @ 85CE388 + .incbin "baserom.gba", 0x5ce388, 0x18 + +gUnknown_085CE3A0:: @ 85CE3A0 + .incbin "baserom.gba", 0x5ce3a0, 0x18 + +gUnknown_085CE3B8:: @ 85CE3B8 + .incbin "baserom.gba", 0x5ce3b8, 0x28 + +gUnknown_085CE3E0:: @ 85CE3E0 + .incbin "baserom.gba", 0x5ce3e0, 0x50 + +gUnknown_085CE430:: @ 85CE430 + .incbin "baserom.gba", 0x5ce430, 0x30 + +gUnknown_085CE460:: @ 85CE460 + .incbin "baserom.gba", 0x5ce460, 0x2c + +gUnknown_085CE48C:: @ 85CE48C + .incbin "baserom.gba", 0x5ce48c, 0x18 + +gUnknown_085CE4A4:: @ 85CE4A4 + .incbin "baserom.gba", 0x5ce4a4, 0x4 + +gUnknown_085CE4A8:: @ 85CE4A8 + .incbin "baserom.gba", 0x5ce4a8, 0x8 + +gUnknown_085CE4B0:: @ 85CE4B0 + .incbin "baserom.gba", 0x5ce4b0, 0x140 + +gUnknown_085CE5F0:: @ 85CE5F0 + .incbin "baserom.gba", 0x5ce5f0, 0x15c + +gUnknown_085CE74C:: @ 85CE74C + .incbin "baserom.gba", 0x5ce74c, 0x20 + +gUnknown_085CE76C:: @ 85CE76C + .incbin "baserom.gba", 0x5ce76c, 0x18 + +gUnknown_085CE784:: @ 85CE784 + .incbin "baserom.gba", 0x5ce784, 0x68 + +gUnknown_085CE7EC:: @ 85CE7EC + .incbin "baserom.gba", 0x5ce7ec, 0x60 + +gUnknown_085CE84C:: @ 85CE84C + .incbin "baserom.gba", 0x5ce84c, 0x30 + +gUnknown_085CE87C:: @ 85CE87C + .incbin "baserom.gba", 0x5ce87c, 0x14c + +gUnknown_085CE9C8:: @ 85CE9C8 + .incbin "baserom.gba", 0x5ce9c8, 0x1e8 + diff --git a/data/battle_anim_8170478.s b/data/battle_anim_8170478.s index ef23d2e7b..0e0f749fe 100644 --- a/data/battle_anim_8170478.s +++ b/data/battle_anim_8170478.s @@ -3,26 +3,153 @@ .section .rodata + .align 2 gUnknown_085E5088:: @ 85E5088 - .incbin "baserom.gba", 0x5e5088, 0xc + .byte 0x0a, 0x02, 0xfd, 0x00, 0x0f, 0x00, 0xfc, 0x00 + .byte 0xf6, 0x02, 0xfc, 0x00 + .align 2 gUnknown_085E5094:: @ 85E5094 - .incbin "baserom.gba", 0x5e5094, 0x60 + .4byte gUnknown_08C1A490, 0xd6ec0100 + .4byte gUnknown_08C1A490, 0xd6ed0100 + .4byte gUnknown_08C1A490, 0xd6ee0100 + .4byte gUnknown_08C1A490, 0xd6ef0100 + .4byte gUnknown_08C1A490, 0xd6f00100 + .4byte gUnknown_08C1A490, 0xd6f10100 + .4byte gUnknown_08C1A490, 0xd6f20100 + .4byte gUnknown_08C1A490, 0xd6f30100 + .4byte gUnknown_08C1A490, 0xd6f40100 + .4byte gUnknown_08C1A490, 0xd6f50100 + .4byte gUnknown_08C1A490, 0xd6f60100 + .4byte gUnknown_08C1A490, 0xd6f70100 + .align 2 gUnknown_085E50F4:: @ 85E50F4 - .incbin "baserom.gba", 0x5e50f4, 0xc0 + .4byte gUnknown_08C1A564, 0x0000d6ec + .4byte gUnknown_08C1A564, 0x0000d6ed + .4byte gUnknown_08C1A564, 0x0000d6ee + .4byte gUnknown_08C1A564, 0x0000d6ef + .4byte gUnknown_08C1A564, 0x0000d6f0 + .4byte gUnknown_08C1A564, 0x0000d6f1 + .4byte gUnknown_08C1A564, 0x0000d6f2 + .4byte gUnknown_08C1A564, 0x0000d6f3 + .4byte gUnknown_08C1A564, 0x0000d6f4 + .4byte gUnknown_08C1A564, 0x0000d6f5 + .4byte gUnknown_08C1A564, 0x0000d6f6 + .4byte gUnknown_08C1A564, 0x0000d6f7 + .align 2 +gUnknown_085E5154:: @ 85E5154 + .2byte 0x0000, 0x0001, 0x0001, 0x0001 + .2byte 0x0002, 0x0001, 0x0000, 0x0041 + .2byte 0x0002, 0x0001, 0x0001, 0x0001 + .2byte 0xfffe, 0x0000 + + .align 2 +gUnknown_085E5170:: @ 85E5170 + .2byte 0x0003, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_085E5178:: @ 85E5178 + .2byte 0x0004, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_085E5180:: @ 85E5180 + .2byte 0x0005, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_085E5188:: @ 85E5188 + .2byte 0x0006, 0x0004, 0x0007, 0x0004 + .2byte 0xfffe, 0x0000 + + .align 2 +gUnknown_085E5194:: @ 85E5194 + .2byte 0x0007, 0x0004, 0xffff, 0x0000 + + .align 2 +gUnknown_085E519C:: @ 85E519C + .4byte gUnknown_085E5154 + .4byte gUnknown_085E5170 + .4byte gUnknown_085E5178 + .4byte gUnknown_085E5180 + .4byte gUnknown_085E5188 + .4byte gUnknown_085E5194 + + .align 2 gUnknown_085E51B4:: @ 85E51B4 - .incbin "baserom.gba", 0x5e51b4, 0xc + .byte 0x00, 0x00, 0x00, 0x05, 0x01, 0x02, 0x02, 0x03 + .byte 0x05, 0x05, 0x04, 0x04 + .align 2 gUnknown_085E51C0:: @ 85E51C0 - .incbin "baserom.gba", 0x5e51c0, 0x30 + .4byte sub_8171E50 + .4byte sub_81723D4 + .4byte sub_81721CC + .4byte sub_81722CC + .4byte sub_81726BC + .4byte sub_81721CC + .4byte sub_81720C8 + .4byte sub_81722CC + .4byte sub_8172560 + .4byte sub_8171FC4 + .4byte sub_81723D4 + .4byte sub_81727E8 + .align 2 gUnknown_085E51F0:: @ 85E51F0 - .incbin "baserom.gba", 0x5e51f0, 0x60 + spr_template 0xd6ec, 0xd6ec, gUnknown_08524904, gUnknown_085E519C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + .align 2 + spr_template 0xd6ed, 0xd6ed, gUnknown_08524904, gUnknown_085E519C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + + .align 2 + spr_template 0xd6ee, 0xd6ee, gUnknown_08524904, gUnknown_085E519C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + + .align 2 + spr_template 0xd6ef, 0xd6ef, gUnknown_08524904, gUnknown_085E519C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + + .align 2 gUnknown_085E5250:: @ 85E5250 - .incbin "baserom.gba", 0x5e5250, 0xc0 + spr_template 0xd6f0, 0xd6f0, gUnknown_08524904, gUnknown_085E519C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + .align 2 + spr_template 0xd6f1, 0xd6f1, gUnknown_08524904, gUnknown_085E519C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + + .align 2 + spr_template 0xd6f2, 0xd6f2, gUnknown_08524904, gUnknown_085E519C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + + .align 2 + spr_template 0xd6f3, 0xd6f3, gUnknown_08524904, gUnknown_085E519C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + + .align 2 + spr_template 0xd6f4, 0xd6f4, gUnknown_08524904, gUnknown_085E519C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + + .align 2 + spr_template 0xd6f5, 0xd6f5, gUnknown_08524904, gUnknown_085E519C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + + .align 2 + spr_template 0xd6f6, 0xd6f6, gUnknown_08524904, gUnknown_085E519C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + + .align 2 + spr_template 0xd6f7, 0xd6f7, gUnknown_08524904, gUnknown_085E519C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + + .align 2 gUnknown_085E5310:: @ 85E5310 - .incbin "baserom.gba", 0x5e5310, 0x64 + .2byte 0x7adf, 0x7af0, 0x53d7, 0x3fff, 0x7297, 0x67f5, 0x7b2c, 0x2b7e + .2byte 0x431f, 0x7bdd, 0x2a3f, 0x293f, 0x0000, 0x0201, 0x0403, 0x0101 + .2byte 0x0100, 0x0503, 0x0506, 0x0004 + + .align 2 + spr_template 0x281d, 0x281d, gUnknown_0852490C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_817330C + + .align 2 +gUnknown_085E5350:: @ 8535350 + .2byte 0x0040, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_085E5358:: @ 8535358 + .4byte gUnknown_085E5350 + + .align 2 + spr_template 0x274a, 0x274a, gUnknown_08524914, gUnknown_085E5358, NULL, gDummySpriteAffineAnimTable, sub_817330C + diff --git a/data/battle_anims.s b/data/battle_anims.s new file mode 100644 index 000000000..6b48bcd2a --- /dev/null +++ b/data/battle_anims.s @@ -0,0 +1,352 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_08524904:: @ 8524904 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_0852490C:: @ 852490C + .byte 0x00, 0x00, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524914:: @ 8524914 + .byte 0x00, 0x00, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_0852491C:: @ 852491C + .byte 0x00, 0x00, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524924:: @ 8524924 + .byte 0x00, 0x40, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_0852492C:: @ 852492C + .byte 0x00, 0x40, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524934:: @ 8524934 + .byte 0x00, 0x40, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_0852493C:: @ 852493C + .byte 0x00, 0x40, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524944:: @ 8524944 + .byte 0x00, 0x80, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_0852494C:: @ 852494C + .byte 0x00, 0x80, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524954:: @ 8524954 + .byte 0x00, 0x80, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_0852495C:: @ 852495C + .byte 0x00, 0x80, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524964:: @ 8524964 + .byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_0852496C:: @ 852496C + .byte 0x00, 0x01, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524974:: @ 8524974 + .byte 0x00, 0x01, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_0852497C:: @ 852497C + .byte 0x00, 0x01, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524984:: @ 8524984 + .byte 0x00, 0x41, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_0852498C:: @ 852498C + .byte 0x00, 0x41, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524994:: @ 8524994 + .byte 0x00, 0x41, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_0852499C:: @ 852499C + .byte 0x00, 0x41, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_085249A4:: @ 85249A4 + .byte 0x00, 0x81, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_085249AC:: @ 85249AC + .byte 0x00, 0x81, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_085249B4:: @ 85249B4 + .byte 0x00, 0x81, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_085249BC:: @ 85249BC + .byte 0x00, 0x81, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_085249C4:: @ 85249C4 + .byte 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_085249CC:: @ 85249CC + .byte 0x00, 0x03, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_085249D4:: @ 85249D4 + .byte 0x00, 0x03, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_085249DC:: @ 85249DC + .byte 0x00, 0x03, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_085249E4:: @ 85249E4 + .byte 0x00, 0x43, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_085249EC:: @ 85249EC + .byte 0x00, 0x43, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_085249F4:: @ 85249F4 + .byte 0x00, 0x43, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_085249FC:: @ 85249FC + .byte 0x00, 0x43, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524A04:: @ 8524A04 + .byte 0x00, 0x83, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524A0C:: @ 8524A0C + .byte 0x00, 0x83, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524A14:: @ 8524A14 + .byte 0x00, 0x83, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524A1C:: @ 8524A1C + .byte 0x00, 0x83, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524A24:: @ 8524A24 + .byte 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524A2C:: @ 8524A2C + .byte 0x00, 0x04, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524A34:: @ 8524A34 + .byte 0x00, 0x04, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524A3C:: @ 8524A3C + .byte 0x00, 0x04, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524A44:: @ 8524A44 + .byte 0x00, 0x44, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524A4C:: @ 8524A4C + .byte 0x00, 0x44, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524A54:: @ 8524A54 + .byte 0x00, 0x44, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524A5C:: @ 8524A5C + .byte 0x00, 0x44, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524A64:: @ 8524A64 + .byte 0x00, 0x84, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524A6C:: @ 8524A6C + .byte 0x00, 0x84, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524A74:: @ 8524A74 + .byte 0x00, 0x84, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524A7C:: @ 8524A7C + .byte 0x00, 0x84, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524A84:: @ 8524A84 + .byte 0x00, 0x05, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524A8C:: @ 8524A8C + .byte 0x00, 0x05, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524A94:: @ 8524A94 + .byte 0x00, 0x05, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524A9C:: @ 8524A9C + .byte 0x00, 0x05, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524AA4:: @ 8524AA4 + .byte 0x00, 0x45, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524AAC:: @ 8524AAC + .byte 0x00, 0x45, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524AB4:: @ 8524AB4 + .byte 0x00, 0x45, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524ABC:: @ 8524ABC + .byte 0x00, 0x45, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524AC4:: @ 8524AC4 + .byte 0x00, 0x85, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524ACC:: @ 8524ACC + .byte 0x00, 0x85, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524AD4:: @ 8524AD4 + .byte 0x00, 0x85, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524ADC:: @ 8524ADC + .byte 0x00, 0x85, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524AE4:: @ 8524AE4 + .byte 0x00, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524AEC:: @ 8524AEC + .byte 0x00, 0x07, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524AF4:: @ 8524AF4 + .byte 0x00, 0x07, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524AFC:: @ 8524AFC + .byte 0x00, 0x07, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524B04:: @ 8524B04 + .byte 0x00, 0x47, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524B0C:: @ 8524B0C + .byte 0x00, 0x47, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524B14:: @ 8524B14 + .byte 0x00, 0x47, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524B1C:: @ 8524B1C + .byte 0x00, 0x47, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524B24:: @ 8524B24 + .byte 0x00, 0x87, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524B2C:: @ 8524B2C + .byte 0x00, 0x87, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524B34:: @ 8524B34 + .byte 0x00, 0x87, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08524B3C:: @ 8524B3C + .byte 0x00, 0x87, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00 + +gUnknown_08524B44:: @ 8524B44 + .incbin "baserom.gba", 0x524b44, 0x1d0 + +gUnknown_08524D14:: @ 8524D14 + .incbin "baserom.gba", 0x524d14, 0x270 + +gUnknown_08524F84:: @ 8524F84 + .incbin "baserom.gba", 0x524f84, 0x308 + +gUnknown_0852528C:: @ 852528C + .incbin "baserom.gba", 0x52528c, 0x120 + +gUnknown_085253AC:: @ 85253AC + .incbin "baserom.gba", 0x5253ac, 0x270 + +gUnknown_0852561C:: @ 852561C + .incbin "baserom.gba", 0x52561c, 0x270 + +gUnknown_0852588C:: @ 852588C + .incbin "baserom.gba", 0x52588c, 0x308 + +gUnknown_08525B94:: @ 8525B94 + .incbin "baserom.gba", 0x525b94, 0x120 + +gUnknown_08525CB4:: @ 8525CB4 + .incbin "baserom.gba", 0x525cb4, 0xa0 + +gUnknown_08525D54:: @ 8525D54 + .incbin "baserom.gba", 0x525d54, 0x144 + +gUnknown_08525E98:: @ 8525E98 + .incbin "baserom.gba", 0x525e98, 0xc0 + +gUnknown_08525F58:: @ 8525F58 + .incbin "baserom.gba", 0x525f58, 0x20 + +gUnknown_08525F78:: @ 8525F78 + .incbin "baserom.gba", 0x525f78, 0x10 + +gUnknown_08525F88:: @ 8525F88 + .incbin "baserom.gba", 0x525f88, 0x4 + +gUnknown_08525F8C:: @ 8525F8C + .incbin "baserom.gba", 0x525f8c, 0x4 + +gUnknown_08525F90:: @ 8525F90 + .incbin "baserom.gba", 0x525f90, 0x30 + +gUnknown_08525FC0:: @ 8525FC0 + .incbin "baserom.gba", 0x525fc0, 0x18f80 + +gUnknown_0853EF40:: @ 853EF40 + .incbin "baserom.gba", 0x53ef40, 0x8 + +gUnknown_0853EF48:: @ 853EF48 + .incbin "baserom.gba", 0x53ef48, 0x18 + +gUnknown_0853EF60:: @ 853EF60 + .incbin "baserom.gba", 0x53ef60, 0xf8 diff --git a/data/battle_controller_link_opponent.s b/data/battle_controller_link_opponent.s index 71b1f5438..ff6c7023b 100644 --- a/data/battle_controller_link_opponent.s +++ b/data/battle_controller_link_opponent.s @@ -3,6 +3,62 @@ .section .rodata - + .align 2 gLinkOpponentBufferCommands:: @ 831C7B4 - .incbin "baserom.gba", 0x31c7b4, 0xe4 + .4byte dp01t_00_2_getattr + .4byte sub_8065900 + .4byte sub_806590C + .4byte sub_8066284 + .4byte sub_80662F8 + .4byte sub_8066448 + .4byte sub_8066624 + .4byte sub_8066748 + .4byte sub_8066A58 + .4byte sub_8066B94 + .4byte sub_8066C40 + .4byte sub_8066CEC + .4byte sub_8066CF8 + .4byte sub_8066D04 + .4byte sub_8066D10 + .4byte sub_8066D1C + .4byte sub_8066FF4 + .4byte sub_806704C + .4byte sub_8067058 + .4byte sub_8067064 + .4byte sub_8067070 + .4byte sub_806707C + .4byte sub_8067088 + .4byte sub_8067094 + .4byte sub_80670A0 + .4byte sub_8067190 + .4byte sub_806719C + .4byte sub_8067214 + .4byte sub_806727C + .4byte sub_8067288 + .4byte sub_8067294 + .4byte sub_80672A0 + .4byte sub_80672AC + .4byte sub_80672B8 + .4byte sub_80672C4 + .4byte sub_80672D0 + .4byte sub_80672DC + .4byte sub_80672E8 + .4byte sub_8067304 + .4byte sub_806733C + .4byte sub_8067354 + .4byte sub_806737C + .4byte sub_80673EC + .4byte sub_80673F8 + .4byte sub_806743C + .4byte sub_8067498 + .4byte sub_80674D4 + .4byte sub_8067508 + .4byte sub_8067718 + .4byte sub_8067874 + .4byte sub_80678C4 + .4byte sub_80678D0 + .4byte sub_8067930 + .4byte sub_80679A4 + .4byte sub_80679C4 + .4byte sub_80679D0 + .4byte nullsub_92 diff --git a/data/battle_controller_link_partner.s b/data/battle_controller_link_partner.s index 25bcb970b..1990ad870 100644 --- a/data/battle_controller_link_partner.s +++ b/data/battle_controller_link_partner.s @@ -3,7 +3,63 @@ .section .rodata - + .align 2 gLinkPartnerBufferCommands:: @ 85C9A94 - .incbin "baserom.gba", 0x5c9a94, 0xe4 + .4byte dp01t_00_4_getattr + .4byte sub_814C038 + .4byte sub_814C044 + .4byte sub_814CA98 + .4byte sub_814CB0C + .4byte sub_814CC28 + .4byte sub_814CE14 + .4byte sub_814CF30 + .4byte sub_814D0E4 + .4byte sub_814D0F0 + .4byte sub_814D19C + .4byte sub_814D288 + .4byte sub_814D294 + .4byte sub_814D2A0 + .4byte sub_814D2AC + .4byte sub_814D2B8 + .4byte sub_814D590 + .4byte sub_814D5E8 + .4byte sub_814D5F4 + .4byte sub_814D600 + .4byte sub_814D60C + .4byte sub_814D618 + .4byte sub_814D624 + .4byte sub_814D630 + .4byte sub_814D63C + .4byte sub_814D72C + .4byte sub_814D738 + .4byte sub_814D7B0 + .4byte sub_814D818 + .4byte sub_814D824 + .4byte sub_814D830 + .4byte sub_814D83C + .4byte sub_814D848 + .4byte sub_814D854 + .4byte sub_814D860 + .4byte sub_814D86C + .4byte sub_814D878 + .4byte sub_814D884 + .4byte sub_814D8A0 + .4byte sub_814D8D8 + .4byte sub_814D8F0 + .4byte dp01t_29_4_blink + .4byte sub_814D988 + .4byte sub_814D994 + .4byte sub_814D9D8 + .4byte sub_814DA34 + .4byte dp01t_2E_4_battle_intro + .4byte sub_814DAA8 + .4byte sub_814DDD8 + .4byte sub_814DEE4 + .4byte sub_814DF34 + .4byte sub_814DF40 + .4byte sub_814DFA0 + .4byte sub_814E014 + .4byte sub_814E034 + .4byte sub_814E040 + .4byte nullsub_113 diff --git a/data/battle_controller_opponent.s b/data/battle_controller_opponent.s index 7f159fb54..3b7acd003 100644 --- a/data/battle_controller_opponent.s +++ b/data/battle_controller_opponent.s @@ -3,7 +3,65 @@ .section .rodata - + .align 2 gOpponentBufferCommands:: @ 831C6C8 - .incbin "baserom.gba", 0x31c6c8, 0xec + .4byte dp01t_00_7_getattr + .4byte dp01t_01_2_read_pokmon_data_slice + .4byte dp01t_02_7_setattr + .4byte sub_80611B0 + .4byte sub_8061224 + .4byte sub_806137C + .4byte sub_806156C + .4byte sub_8061690 + .4byte sub_80618D8 + .4byte sub_8061AF0 + .4byte sub_8061B9C + .4byte sub_8061C48 + .4byte sub_8061C54 + .4byte sub_8061C60 + .4byte sub_8061C6C + .4byte sub_8061C78 + .4byte sub_8061F34 + .4byte sub_8061F90 + .4byte sub_8061F9C + .4byte sub_8061FAC + .4byte sub_8061FB8 + .4byte sub_806215C + .4byte sub_8062188 + .4byte sub_8062288 + .4byte sub_8062294 + .4byte sub_8062384 + .4byte sub_8062390 + .4byte sub_8062408 + .4byte sub_8062470 + .4byte sub_806247C + .4byte sub_8062488 + .4byte sub_8062494 + .4byte sub_80624A0 + .4byte sub_80624AC + .4byte sub_80624B8 + .4byte sub_80624C4 + .4byte sub_80624D0 + .4byte sub_80624DC + .4byte sub_80624F8 + .4byte sub_8062530 + .4byte sub_8062548 + .4byte dp01t_29_7_blink + .4byte sub_80625E0 + .4byte sub_80625EC + .4byte sub_8062630 + .4byte sub_806268C + .4byte dp01t_2E_7_battle_intro + .4byte sub_80626FC + .4byte dp01t_30_7_0803D67C + .4byte sub_8062A74 + .4byte sub_8062AC4 + .4byte sub_8062AD0 + .4byte dp01t_34_7_move_anim_start_t3 + .4byte sub_8062B98 + .4byte sub_8062BA4 + .4byte sub_8062BB0 + .4byte nullsub_91 + .align 2 + .byte 0xB0, 0xB0, 0xC8, 0x98, 0x28, 0x28, 0x28, 0x20 diff --git a/data/battle_controller_player.s b/data/battle_controller_player.s index 1c7ff56fe..bc2a18edb 100644 --- a/data/battle_controller_player.s +++ b/data/battle_controller_player.s @@ -2,7 +2,68 @@ .include "constants/constants.inc" .section .rodata - - + + .align 2 gPlayerBufferCommands:: @ 831C514 - .incbin "baserom.gba", 0x31c514, 0xe4 + .4byte dp01t_00_1_getattr + .4byte sub_805A614 + .4byte dp01t_02_1_setattr + .4byte sub_805B0F0 + .4byte sub_805B164 + .4byte sub_805B1CC + .4byte sub_805B3D4 + .4byte sub_805B4F0 + .4byte dp01t_08_1_8032428 + .4byte sub_805B9F8 + .4byte sub_805BAB8 + .4byte sub_805BBA4 + .4byte sub_805BBC4 + .4byte sub_805BC18 + .4byte sub_805BC78 + .4byte dp01t_0F_1_move_anim + .4byte sub_805BF80 + .4byte dp01t_11_1_message_for_player_only + .4byte dp01t_12_6_battle_menu + .4byte sub_805C0B0 + .4byte dp01t_14_5_move_menu_pokedude + .4byte sub_805C248 + .4byte sub_805C2AC + .4byte sub_805C3EC + .4byte sub_805C410 + .4byte sub_805C528 + .4byte sub_805C5C4 + .4byte sub_805C63C + .4byte sub_805C6A4 + .4byte sub_805C710 + .4byte sub_805C71C + .4byte sub_805C7D0 + .4byte sub_805C800 + .4byte sub_805C80C + .4byte sub_805C820 + .4byte sub_805C834 + .4byte sub_805C848 + .4byte sub_805C85C + .4byte sub_805C878 + .4byte sub_805C8B0 + .4byte sub_805C8C8 + .4byte dp01t_29_1_blink + .4byte sub_805C960 + .4byte sub_805C96C + .4byte sub_805C9B0 + .4byte sub_805CA0C + .4byte dp01t_2E_1_battle_intro + .4byte dp01t_2F_1_pokemon_enter + .4byte sub_805CD74 + .4byte sub_805CE80 + .4byte sub_805CED0 + .4byte dp01t_33_1_enemy_move + .4byte sub_805CF54 + .4byte dp01t_35_1_link_standby_message_and_free_vram + .4byte sub_805D02C + .4byte sub_805D094 + .4byte nullsub_22 + + .align 2 +gUnknown_0831C5F8:: @ 831C5F8 + .byte 0x00, 0x02, 0x03, 0x01, 0x48, 0x48, 0x20, 0x5a + .byte 0x50, 0x50, 0x50, 0x58 diff --git a/data/battle_controller_player_partner.s b/data/battle_controller_player_partner.s index bc00258ae..35d78ebe0 100644 --- a/data/battle_controller_player_partner.s +++ b/data/battle_controller_player_partner.s @@ -2,9 +2,70 @@ .include "constants/constants.inc" .section .rodata - + + .align 2 gPlayerPartnerBufferCommands:: @ 8617170 - .incbin "baserom.gba", 0x617170, 0xE4 - + .4byte dp01t_00_3_getattr + .4byte sub_81BC484 + .4byte sub_81BC490 + .4byte sub_81BCEE4 + .4byte sub_81BCF58 + .4byte sub_81BD074 + .4byte sub_81BD260 + .4byte sub_81BD37C + .4byte sub_81BD5BC + .4byte sub_81BD5C8 + .4byte sub_81BD674 + .4byte sub_81BD760 + .4byte sub_81BD76C + .4byte sub_81BD778 + .4byte sub_81BD784 + .4byte sub_81BD790 + .4byte sub_81BDA4C + .4byte sub_81BDAA0 + .4byte sub_81BDAAC + .4byte sub_81BDABC + .4byte sub_81BDAC8 + .4byte sub_81BDB70 + .4byte sub_81BDB7C + .4byte sub_81BDC04 + .4byte sub_81BDC10 + .4byte sub_81BDD00 + .4byte sub_81BDD9C + .4byte sub_81BDE14 + .4byte sub_81BDE7C + .4byte sub_81BDE88 + .4byte sub_81BDE94 + .4byte sub_81BDEA0 + .4byte sub_81BDEAC + .4byte sub_81BDEB8 + .4byte sub_81BDEC4 + .4byte sub_81BDED0 + .4byte sub_81BDEDC + .4byte sub_81BDEE8 + .4byte sub_81BDF04 + .4byte sub_81BDF3C + .4byte sub_81BDF54 + .4byte dp01t_29_3_blink + .4byte sub_81BDFEC + .4byte sub_81BDFF8 + .4byte sub_81BE03C + .4byte sub_81BE098 + .4byte dp01t_2E_3_battle_intro + .4byte sub_81BE10C + .4byte dp01t_30_3_80EB11C + .4byte sub_81BE4E0 + .4byte sub_81BE530 + .4byte sub_81BE53C + .4byte sub_81BE59C + .4byte sub_81BE604 + .4byte sub_81BE610 + .4byte sub_81BE61C + .4byte nullsub_128 + + .align 2 @ apparently unused data - .incbin "baserom.gba", 0x617254, 32 + .byte 0x83, 0x4d, 0xf3, 0x5f, 0x6f, 0x4f, 0xeb, 0x3e + .byte 0x67, 0x2e, 0x10, 0x46, 0x8c, 0x3d, 0x28, 0x35 + .byte 0xc5, 0x2c, 0x15, 0x7f, 0xb5, 0x56, 0x9d, 0x53 + .byte 0x3b, 0x43, 0xda, 0x36, 0x79, 0x2a, 0x0e, 0x53 diff --git a/data/battle_controller_recorded_opponent.s b/data/battle_controller_recorded_opponent.s index 72544fdab..8baa57022 100644 --- a/data/battle_controller_recorded_opponent.s +++ b/data/battle_controller_recorded_opponent.s @@ -2,7 +2,64 @@ .include "constants/constants.inc" .section .rodata - -gRecordedOpponentBufferCommands:: @ 860AE90 - .incbin "baserom.gba", 0x60ae90, 0xe4 + + .align 2 +gRecordedOpponentBufferCommands:: @ 860AE90 + .4byte sub_8187224 + .4byte sub_8187A44 + .4byte sub_8187A50 + .4byte sub_81883C8 + .4byte sub_818843C + .4byte sub_818858C + .4byte sub_8188768 + .4byte sub_818888C + .4byte sub_8188A40 + .4byte sub_8188A4C + .4byte sub_8188AF8 + .4byte sub_8188BA4 + .4byte sub_8188BB0 + .4byte sub_8188BBC + .4byte sub_8188BC8 + .4byte sub_8188BD4 + .4byte sub_8188E90 + .4byte sub_8188EE4 + .4byte sub_8188EF0 + .4byte sub_8188F14 + .4byte sub_8188F20 + .4byte sub_8188F7C + .4byte sub_8188F88 + .4byte sub_8188FC4 + .4byte sub_8188FD0 + .4byte sub_81890C0 + .4byte sub_81890CC + .4byte sub_8189144 + .4byte sub_81891AC + .4byte sub_81891B8 + .4byte sub_81891C4 + .4byte sub_81891D0 + .4byte sub_81891DC + .4byte sub_81891E8 + .4byte sub_81891F4 + .4byte sub_8189200 + .4byte sub_818920C + .4byte sub_8189218 + .4byte sub_8189234 + .4byte sub_818926C + .4byte sub_8189284 + .4byte sub_81892AC + .4byte sub_818931C + .4byte sub_8189328 + .4byte sub_818936C + .4byte sub_81893C8 + .4byte sub_8189404 + .4byte sub_8189438 + .4byte sub_8189648 + .4byte sub_81897A4 + .4byte sub_81897F4 + .4byte sub_8189800 + .4byte sub_8189860 + .4byte sub_81898C8 + .4byte sub_81898D4 + .4byte sub_81898E0 + .4byte nullsub_119 diff --git a/data/battle_controller_recorded_player.s b/data/battle_controller_recorded_player.s index 2710a869b..089e4dcbf 100644 --- a/data/battle_controller_recorded_player.s +++ b/data/battle_controller_recorded_player.s @@ -2,7 +2,63 @@ .include "constants/constants.inc" .section .rodata - - + + .align 2 gRecordedPlayerBufferCommands:: @ 860AF74 - .incbin "baserom.gba", 0x60af74, 0xe4 + .4byte sub_818A5EC + .4byte sub_818AE0C + .4byte sub_818AE18 + .4byte sub_818B86C + .4byte sub_818B8E0 + .4byte sub_818B9FC + .4byte sub_818BBE8 + .4byte sub_818BD04 + .4byte sub_818BFAC + .4byte sub_818BFB8 + .4byte sub_818C064 + .4byte sub_818C150 + .4byte sub_818C15C + .4byte sub_818C168 + .4byte sub_818C174 + .4byte sub_818C180 + .4byte sub_818C43C + .4byte sub_818C490 + .4byte sub_818C4D8 + .4byte sub_818C52C + .4byte sub_818C538 + .4byte sub_818C594 + .4byte sub_818C5A0 + .4byte sub_818C5DC + .4byte sub_818C5E8 + .4byte sub_818C6E8 + .4byte sub_818C6F4 + .4byte sub_818C76C + .4byte sub_818C7D4 + .4byte sub_818C7E0 + .4byte sub_818C7EC + .4byte sub_818C7F8 + .4byte sub_818C804 + .4byte sub_818C810 + .4byte sub_818C81C + .4byte sub_818C828 + .4byte sub_818C834 + .4byte sub_818C840 + .4byte sub_818C85C + .4byte sub_818C894 + .4byte sub_818C8AC + .4byte sub_818C8D4 + .4byte sub_818C944 + .4byte sub_818C950 + .4byte sub_818C994 + .4byte sub_818C9F0 + .4byte dp01t_2E_2_battle_intro + .4byte sub_818CA64 + .4byte sub_818CD30 + .4byte sub_818CE3C + .4byte sub_818CE8C + .4byte sub_818CE98 + .4byte sub_818CEF8 + .4byte sub_818CF60 + .4byte sub_818CF6C + .4byte sub_818CF78 + .4byte nullsub_121 diff --git a/data/battle_controller_safari.s b/data/battle_controller_safari.s index 7c6e251c7..39d1d0de3 100644 --- a/data/battle_controller_safari.s +++ b/data/battle_controller_safari.s @@ -2,7 +2,227 @@ .include "constants/constants.inc" .section .rodata - - - gSafariBufferCommands:: @ 85CDF20 - .incbin "baserom.gba", 0x5cdf20, 0x380 + + .align 2 +gSafariBufferCommands:: @ 85CDF20 + .4byte sub_81597AC + .4byte sub_81597B8 + .4byte sub_81597C4 + .4byte sub_81597D0 + .4byte sub_81597DC + .4byte sub_81597E8 + .4byte sub_81597F4 + .4byte sub_8159800 + .4byte sub_81598E0 + .4byte sub_81598EC + .4byte sub_81598F8 + .4byte sub_8159904 + .4byte sub_8159910 + .4byte sub_8159964 + .4byte sub_81599C4 + .4byte sub_81599D0 + .4byte dp01t_10_6_message + .4byte dp01t_11_6_message_for_player_only + .4byte sub_8159A94 + .4byte sub_8159AFC + .4byte sub_8159B08 + .4byte sub_8159B14 + .4byte sub_8159B54 + .4byte sub_8159B60 + .4byte sub_8159B6C + .4byte sub_8159B78 + .4byte sub_8159B84 + .4byte sub_8159BC0 + .4byte sub_8159BCC + .4byte sub_8159BD8 + .4byte sub_8159BE4 + .4byte sub_8159BF0 + .4byte sub_8159BFC + .4byte sub_8159C08 + .4byte sub_8159C14 + .4byte sub_8159C20 + .4byte sub_8159C2C + .4byte sub_8159C38 + .4byte sub_8159C44 + .4byte sub_8159C50 + .4byte sub_8159C5C + .4byte sub_8159C68 + .4byte sub_8159C74 + .4byte sub_8159C80 + .4byte dp01t_34_6_move_anim_start_t3 + .4byte sub_8159D20 + .4byte dp01t_2E_6_battle_intro + .4byte sub_8159D90 + .4byte sub_8159DEC + .4byte sub_8159DF8 + .4byte sub_8159E04 + .4byte sub_8159E10 + .4byte sub_8159E1C + .4byte sub_8159E78 + .4byte sub_8159E84 + .4byte sub_8159E90 + .4byte nullsub_115 + + .align 2 +gUnknown_085CE004:: @ 85CE004 + .2byte 0x0000, 0x0004, 0x0010, 0x0004 + .2byte 0x0020, 0x0004, 0x0030, 0x0004 + .2byte 0x0040, 0x0004, 0xffff, 0x0000 + + .align 2 +gUnknown_085CE01C:: @ 85CE01C + .4byte gUnknown_085CE004 + + .align 2 +gUnknown_085CE020:: @ 85CE020 + spr_template 0x2799, 0x2799, gUnknown_08524A34, gUnknown_085CE01C, NULL, gDummySpriteAffineAnimTable, sub_80A77C8 + + .align 2 + spr_template 0x2720, 0x2720, gUnknown_08524934, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815A0D4 + + .align 2 + spr_template 0x2721, 0x2721, gUnknown_08524904, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A78AC + + .align 2 +gUnknown_085CE068:: @ 85CE068 + .2byte 0x0000, 0x0028, 0x0010, 0x0008 + .2byte 0x0020, 0x0028, 0xffff, 0x0000 + + .align 2 +gUnknown_085CE078:: @ 85CE078 + .4byte gUnknown_085CE068 + + .align 2 +gUnknown_085CE07C:: @ 85CE07C + spr_template 0x27ce, 0x27ce, gUnknown_08524914, gUnknown_085CE078, NULL, gDummySpriteAffineAnimTable, sub_80A77C8 + + .align 2 + spr_template 0x27cf, 0x27cf, gUnknown_08524A3C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815A1B0 + + .align 2 + spr_template 0x27cd, 0x27cd, gUnknown_08524974, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815A254 + + .align 2 +gUnknown_085CE0C4:: @ 85CE0C4 + .2byte 0x0180, 0x0180, 0x0000, 0x0000 + .2byte 0xffe0, 0x0018, 0x0500, 0x0000 + .2byte 0x0018, 0xffe0, 0x0500, 0x0000 + .2byte 0x7ffe, 0x0001, 0x0000, 0x0000 + + .align 2 +gUnknown_085CE0E4:: @ 85CE0E4 + .2byte 0x0030, 0x0030, 0x0000, 0x0000 + .2byte 0x0020, 0x0020, 0x0600, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_085CE0FC:: @ 85CE0FC + .4byte gUnknown_085CE0C4 + .4byte gUnknown_085CE0E4 + + .align 2 +gUnknown_085CE104:: @ 85CE104 + spr_template 0x27cb, 0x27cb, gUnknown_08524AFC, gDummySpriteAnimTable, NULL, gUnknown_085CE0FC, sub_815A2F0 + + .align 2 + spr_template 0x27a8, 0x27a8, gUnknown_0852490C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815A6C4 + + .align 2 +gUnknown_085CE134:: @ 85CE134 + .2byte 0x0000, 0x0003, 0x0010, 0x0003 + .2byte 0x0020, 0x0003, 0x0030, 0x0003 + .2byte 0x0040, 0x0003, 0xffff, 0x0000 + + .align 2 +gUnknown_085CE14C:: @ 85CE14C + .4byte gUnknown_085CE134 + + .align 2 +gUnknown_085CE150:: @ 85CE150 + spr_template 0x272b, 0x272b, gUnknown_08524914, gUnknown_085CE14C, NULL, gDummySpriteAffineAnimTable, sub_815A7B0 + + .align 2 +gUnknown_085CE168:: @ 85CE168 + .2byte 0x0000, 0x0003, 0xffff, 0x0000 + + .align 2 +gUnknown_085CE170:: @ 85CE170 + .4byte gUnknown_085CE168 + + .align 2 +gUnknown_085CE174:: @ 85CE174 + .2byte 0xfff9, 0xfff9, 0x10fd, 0x0000 + .2byte 0x0007, 0x0007, 0x1003, 0x0000 + .2byte 0x7ffe, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_085CE18C:: @ 85CE18C + .4byte gUnknown_085CE174 + + .align 2 +gUnknown_085CE190:: @ 85CE190 + spr_template 0x27f4, 0x27f4, gUnknown_08524974, gUnknown_085CE170, NULL, gUnknown_085CE18C, sub_815A7EC + + .align 2 +gUnknown_085CE1A8:: @ 85CE1A8 + .2byte 0x0000, 0x0008, 0x0010, 0x0010, 0x0020, 0x0004, 0x0030, 0x0004, 0xffff, 0x0000 + + .align 2 +gUnknown_085CE1BC:: @ 85CE1BC + .4byte gUnknown_085CE1A8 + + .align 2 +gUnknown_085CE1C0:: @ 85CE1C0 + .2byte 0x0200, 0x0200, 0x0000, 0x0000 + .2byte 0xffe0, 0xffe0, 0x0800, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_085CE1D8:: @ 85CE1D8 + .4byte gUnknown_085CE1C0 + + .align 2 +gUnknown_085CE1DC:: @ 85CE1DC + spr_template 0x27d0, 0x27d0, gUnknown_085249D4, gUnknown_085CE1BC, NULL, gUnknown_085CE1D8, sub_815A8AC + + .align 2 +gUnknown_085CE1F4:: @ 85CE1F4 + .2byte 0x0000, 0x0180, 0x0000, 0x0000 + .2byte 0x0010, 0x0000, 0x1400, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_085CE20C:: @ 85CE20C + .2byte 0x0140, 0x0180, 0x0000, 0x0000 + .2byte 0xfff0, 0x0000, 0x1300, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_085CE224:: @ 85CE224 + .4byte gUnknown_085CE1F4 + .4byte gUnknown_085CE20C + + .align 2 +gUnknown_085CE22C:: @ 85CE22C + spr_template 0x27f3, 0x27f3, gUnknown_085249DC, gDummySpriteAnimTable, NULL, gUnknown_085CE224, sub_815A934 + + .align 2 + spr_template 0x2807, 0x2807, gUnknown_08524914, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815AAA4 + + .align 2 + spr_template 0x2807, 0x2807, gUnknown_08524914, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815ABD0 + + .align 2 +gUnknown_085CE274:: @ 85CE274 + .2byte 0x0000, 0x0002, 0x0008, 0x0002 + .2byte 0x0010, 0x0002, 0xfffe, 0x0000 + + .align 2 +gUnknown_085CE284:: @ 85CE284 + .4byte gUnknown_085CE274 + + .align 2 +gUnknown_085CE288:: @ 85CE288 + spr_template 0x27f5, 0x27f5, gUnknown_08524934, gUnknown_085CE284, NULL, gDummySpriteAffineAnimTable, sub_815ACD0 + + diff --git a/data/battle_controller_wally.s b/data/battle_controller_wally.s index 41c40f9eb..96d34d4a5 100644 --- a/data/battle_controller_wally.s +++ b/data/battle_controller_wally.s @@ -2,8 +2,63 @@ .include "constants/constants.inc" .section .rodata - - -gWallyBufferCommands:: @ 85DFDC0 - .incbin "baserom.gba", 0x5dfdc0, 0xe4 + .align 2 +gWallyBufferCommands:: @ 85DFDC0 + .4byte dp01t_00_5_getattr + .4byte sub_81693C0 + .4byte sub_81693CC + .4byte sub_8169E20 + .4byte sub_8169E2C + .4byte sub_8169E38 + .4byte sub_8169E44 + .4byte sub_8169EC8 + .4byte dp01t_07_6_ + .4byte sub_816A060 + .4byte sub_816A06C + .4byte sub_816A078 + .4byte sub_816A084 + .4byte sub_816A0D8 + .4byte sub_816A138 + .4byte sub_816A144 + .4byte sub_816A3B8 + .4byte dp01t_11_5_message_for_player_only + .4byte dp01t_12_1_battle_menu + .4byte sub_816A4D8 + .4byte sub_816A4E4 + .4byte sub_816A57C + .4byte sub_816A5BC + .4byte sub_816A5C8 + .4byte sub_816A5D4 + .4byte sub_816A6D4 + .4byte sub_816A6E0 + .4byte sub_816A6EC + .4byte sub_816A6F8 + .4byte sub_816A704 + .4byte sub_816A710 + .4byte sub_816A71C + .4byte sub_816A728 + .4byte sub_816A734 + .4byte sub_816A740 + .4byte sub_816A74C + .4byte sub_816A758 + .4byte sub_816A764 + .4byte sub_816A770 + .4byte sub_816A77C + .4byte sub_816A788 + .4byte sub_816A794 + .4byte sub_816A804 + .4byte sub_816A810 + .4byte sub_816A840 + .4byte sub_816A89C + .4byte dp01t_2E_5_battle_intro + .4byte sub_816A90C + .4byte sub_816AC78 + .4byte sub_816ACFC + .4byte sub_816AD08 + .4byte sub_816AD14 + .4byte sub_816AD20 + .4byte sub_816AD7C + .4byte sub_816AD88 + .4byte sub_816AD94 + .4byte nullsub_118 diff --git a/data/battle_frontier_1.s b/data/battle_frontier_1.s new file mode 100644 index 000000000..5d82c25f2 --- /dev/null +++ b/data/battle_frontier_1.s @@ -0,0 +1,206 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + + .align 2, 0 +gUnknown_0860B358:: @ 860B358 + .incbin "baserom.gba", 0x60b358, 0x1630 + +gUnknown_0860C988:: @ 860C988 + .incbin "baserom.gba", 0x60c988, 0x269 + +gUnknown_0860CBF1:: @ 860CBF1 + .incbin "baserom.gba", 0x60cbf1, 0x283 + +gUnknown_0860CE74:: @ 860CE74 + .incbin "baserom.gba", 0x60ce74, 0x10 + +gUnknown_0860CE84:: @ 860CE84 + .incbin "baserom.gba", 0x60ce84, 0x10 + +gUnknown_0860CE94:: @ 860CE94 + .incbin "baserom.gba", 0x60ce94, 0x20 + +gUnknown_0860CEB4:: @ 860CEB4 + .incbin "baserom.gba", 0x60ceb4, 0x90 + +gUnknown_0860CF44:: @ 860CF44 + .incbin "baserom.gba", 0x60cf44, 0xc + +gUnknown_0860CF50:: @ 860CF50 + .incbin "baserom.gba", 0x60cf50, 0x58 + +gUnknown_0860CFA8:: @ 860CFA8 + .incbin "baserom.gba", 0x60cfa8, 0x30 + +gUnknown_0860CFD8:: @ 860CFD8 + .incbin "baserom.gba", 0x60cfd8, 0x30 + +gUnknown_0860D008:: @ 860D008 + .incbin "baserom.gba", 0x60d008, 0x48 + +gUnknown_0860D050:: @ 860D050 + .incbin "baserom.gba", 0x60d050, 0x18 + +gUnknown_0860D068:: @ 860D068 + .incbin "baserom.gba", 0x60d068, 0x18 + +gUnknown_0860D080:: @ 860D080 + .incbin "baserom.gba", 0x60d080, 0x10 + +gUnknown_0860D090:: @ 860D090 + .incbin "baserom.gba", 0x60d090, 0x5c + +gUnknown_0860D0EC:: @ 860D0EC + .incbin "baserom.gba", 0x60d0ec, 0x10 + +gUnknown_0860D0FC:: @ 860D0FC + .incbin "baserom.gba", 0x60d0fc, 0x10 + +gUnknown_0860D10C:: @ 860D10C + .incbin "baserom.gba", 0x60d10c, 0x40 + +gUnknown_0860D14C:: @ 860D14C + .incbin "baserom.gba", 0x60d14c, 0x10 + +gUnknown_0860D15C:: @ 860D15C + .incbin "baserom.gba", 0x60d15c, 0x40 + +gUnknown_0860D19C:: @ 860D19C + .incbin "baserom.gba", 0x60d19c, 0x4 + +gUnknown_0860D1A0:: @ 860D1A0 + .incbin "baserom.gba", 0x60d1a0, 0x20 + +gUnknown_0860D1C0:: @ 860D1C0 + .incbin "baserom.gba", 0x60d1c0, 0x10 + +gUnknown_0860D1D0:: @ 860D1D0 + .incbin "baserom.gba", 0x60d1d0, 0x44 + +gUnknown_0860D214:: @ 860D214 + .incbin "baserom.gba", 0x60d214, 0x80 + +gUnknown_0860D294:: @ 860D294 + .incbin "baserom.gba", 0x60d294, 0xac + +gUnknown_0860D340:: @ 860D340 + .incbin "baserom.gba", 0x60d340, 0x3 + +gUnknown_0860D343:: @ 860D343 + .incbin "baserom.gba", 0x60d343, 0x3 + +gUnknown_0860D346:: @ 860D346 + .incbin "baserom.gba", 0x60d346, 0x3 + +gUnknown_0860D349:: @ 860D349 + .incbin "baserom.gba", 0x60d349, 0x7 + +gUnknown_0860D350:: @ 860D350 + .incbin "baserom.gba", 0x60d350, 0x3c + +gUnknown_0860D38C:: @ 860D38C + .incbin "baserom.gba", 0x60d38c, 0x1c + +gUnknown_0860D3A8:: @ 860D3A8 + .incbin "baserom.gba", 0x60d3a8, 0x3 + +gUnknown_0860D3AB:: @ 860D3AB + .incbin "baserom.gba", 0x60d3ab, 0x3 + +gUnknown_0860D3AE:: @ 860D3AE + .incbin "baserom.gba", 0x60d3ae, 0x3 + +gUnknown_0860D3B1:: @ 860D3B1 + .incbin "baserom.gba", 0x60d3b1, 0x3 + +gUnknown_0860D3B4:: @ 860D3B4 + .incbin "baserom.gba", 0x60d3b4, 0x10 + +gUnknown_0860D3C4:: @ 860D3C4 + .incbin "baserom.gba", 0x60d3c4, 0x2 + +gUnknown_0860D3C6:: @ 860D3C6 + .incbin "baserom.gba", 0x60d3c6, 0x2b + +gUnknown_0860D3F1:: @ 860D3F1 + .incbin "baserom.gba", 0x60d3f1, 0x1 + +gUnknown_0860D3F2:: @ 860D3F2 + .incbin "baserom.gba", 0x60d3f2, 0x1f + +gUnknown_0860D411:: @ 860D411 + .incbin "baserom.gba", 0x60d411, 0x8ff + +gUnknown_0860DD10:: @ 860DD10 + .incbin "baserom.gba", 0x60dd10, 0x100 + +gUnknown_0860DE10:: @ 860DE10 + .incbin "baserom.gba", 0x60de10, 0x40 + +gUnknown_0860DE50:: @ 860DE50 + .incbin "baserom.gba", 0x60de50, 0x28 + +gUnknown_0860DE78:: @ 860DE78 + .incbin "baserom.gba", 0x60de78, 0xc + +gUnknown_0860DE84:: @ 860DE84 + .incbin "baserom.gba", 0x60de84, 0x14 + +gUnknown_0860DE98:: @ 860DE98 + .incbin "baserom.gba", 0x60de98, 0x10 + +gUnknown_0860DEA8:: @ 860DEA8 + .incbin "baserom.gba", 0x60dea8, 0x10 + +gUnknown_0860DEB8:: @ 860DEB8 + .incbin "baserom.gba", 0x60deb8, 0xb68 + +gUnknown_0860EA20:: @ 860EA20 + .incbin "baserom.gba", 0x60ea20, 0xc + +gUnknown_0860EA2C:: @ 860EA2C + .incbin "baserom.gba", 0x60ea2c, 0x8 + +gUnknown_0860EA34:: @ 860EA34 + .incbin "baserom.gba", 0x60ea34, 0x18 + +gUnknown_0860EA4C:: @ 860EA4C + .incbin "baserom.gba", 0x60ea4c, 0x20 + +gUnknown_0860EA6C:: @ 860EA6C + .incbin "baserom.gba", 0x60ea6c, 0x100 + +gUnknown_0860EB6C:: @ 860EB6C + .incbin "baserom.gba", 0x60eb6c, 0x20 + +gUnknown_0860EB8C:: @ 860EB8C + .incbin "baserom.gba", 0x60eb8c, 0x3e4 + +gUnknown_0860EF70:: @ 860EF70 + .incbin "baserom.gba", 0x60ef70, 0x8 + +gUnknown_0860EF78:: @ 860EF78 + .incbin "baserom.gba", 0x60ef78, 0x20 + +gUnknown_0860EF98:: @ 860EF98 + .incbin "baserom.gba", 0x60ef98, 0x8 + +gUnknown_0860EFA0:: @ 860EFA0 + .incbin "baserom.gba", 0x60efa0, 0xc + +gUnknown_0860EFAC:: @ 860EFAC + .incbin "baserom.gba", 0x60efac, 0x18 + +gUnknown_0860EFC4:: @ 860EFC4 + .incbin "baserom.gba", 0x60efc4, 0x30 + +gUnknown_0860EFF4:: @ 860EFF4 + .incbin "baserom.gba", 0x60eff4, 0x1c + +gUnknown_0860F010:: @ 860F010 + .incbin "baserom.gba", 0x60f010, 0x10 + +gUnknown_0860F020:: @ 860F020 + .incbin "baserom.gba", 0x60f020, 0x54 diff --git a/data/battle_frontier_2.s b/data/battle_frontier_2.s new file mode 100644 index 000000000..44c14f520 --- /dev/null +++ b/data/battle_frontier_2.s @@ -0,0 +1,347 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + +gUnknown_0860F13C:: @ 860F13C + .incbin "baserom.gba", 0x60f13c, 0x1100 + +gUnknown_0861023C:: @ 861023C + .incbin "baserom.gba", 0x61023c, 0x100 + +gUnknown_0861033C:: @ 861033C + .incbin "baserom.gba", 0x61033c, 0x60 + +gUnknown_0861039C:: @ 861039C + .incbin "baserom.gba", 0x61039c, 0x20 + +gUnknown_086103BC:: @ 86103BC + .incbin "baserom.gba", 0x6103bc, 0x28 + +gUnknown_086103E4:: @ 86103E4 + .incbin "baserom.gba", 0x6103e4, 0x10 + +gUnknown_086103F4:: @ 86103F4 + .incbin "baserom.gba", 0x6103f4, 0x28 + +gUnknown_0861041C:: @ 861041C + .incbin "baserom.gba", 0x61041c, 0xc + +gUnknown_08610428:: @ 8610428 + .incbin "baserom.gba", 0x610428, 0xc + +gUnknown_08610434:: @ 8610434 + .incbin "baserom.gba", 0x610434, 0x38 + +gUnknown_0861046C:: @ 861046C + .incbin "baserom.gba", 0x61046c, 0xa + +gUnknown_08610476:: @ 8610476 + .incbin "baserom.gba", 0x610476, 0x3 + +gUnknown_08610479:: @ 8610479 + .incbin "baserom.gba", 0x610479, 0x15f + +gUnknown_086105D8:: @ 86105D8 + .incbin "baserom.gba", 0x6105d8, 0x18 + +gUnknown_086105F0:: @ 86105F0 + .incbin "baserom.gba", 0x6105f0, 0x18 + +gUnknown_08610608:: @ 8610608 + .incbin "baserom.gba", 0x610608, 0x18 + +gUnknown_08610620:: @ 8610620 + .incbin "baserom.gba", 0x610620, 0x18 + +gUnknown_08610638:: @ 8610638 + .incbin "baserom.gba", 0x610638, 0x18 + +gUnknown_08610650:: @ 8610650 + .incbin "baserom.gba", 0x610650, 0x50 + +gUnknown_086106A0:: @ 86106A0 + .incbin "baserom.gba", 0x6106a0, 0x10 + +gUnknown_086106B0:: @ 86106B0 + .incbin "baserom.gba", 0x6106b0, 0x184 + +gUnknown_08610834:: @ 8610834 + .incbin "baserom.gba", 0x610834, 0x18 + +gUnknown_0861084C:: @ 861084C + .incbin "baserom.gba", 0x61084c, 0x18 + +gUnknown_08610864:: @ 8610864 + .incbin "baserom.gba", 0x610864, 0x18 + +gUnknown_0861087C:: @ 861087C + .incbin "baserom.gba", 0x61087c, 0x18 + +gUnknown_08610894:: @ 8610894 + .incbin "baserom.gba", 0x610894, 0x18 + +gUnknown_086108AC:: @ 86108AC + .incbin "baserom.gba", 0x6108ac, 0xc + +gUnknown_086108B8:: @ 86108B8 + .incbin "baserom.gba", 0x6108b8, 0x10 + +gUnknown_086108C8:: @ 86108C8 + .incbin "baserom.gba", 0x6108c8, 0x50 + +gUnknown_08610918:: @ 8610918 + .incbin "baserom.gba", 0x610918, 0xa + +gUnknown_08610922:: @ 8610922 + .incbin "baserom.gba", 0x610922, 0x3 + +gUnknown_08610925:: @ 8610925 + .incbin "baserom.gba", 0x610925, 0x3 + +gUnknown_08610928:: @ 8610928 + .incbin "baserom.gba", 0x610928, 0x20 + +gUnknown_08610948:: @ 8610948 + .incbin "baserom.gba", 0x610948, 0x28 + +gUnknown_08610970:: @ 8610970 + .incbin "baserom.gba", 0x610970, 0x34 + +gUnknown_086109A4:: @ 86109A4 + .incbin "baserom.gba", 0x6109a4, 0x16 + +gUnknown_086109BA:: @ 86109BA + .incbin "baserom.gba", 0x6109ba, 0x536 + +gUnknown_08610EF0:: @ 8610EF0 + .incbin "baserom.gba", 0x610ef0, 0x100 + +gUnknown_08610FF0:: @ 8610FF0 + .incbin "baserom.gba", 0x610ff0, 0x80 + +gUnknown_08611070:: @ 8611070 + .incbin "baserom.gba", 0x611070, 0x140 + +gUnknown_086111B0:: @ 86111B0 + .incbin "baserom.gba", 0x6111b0, 0x80 + +gUnknown_08611230:: @ 8611230 + .incbin "baserom.gba", 0x611230, 0x80 + +gUnknown_086112B0:: @ 86112B0 + .incbin "baserom.gba", 0x6112b0, 0x80 + +gUnknown_08611330:: @ 8611330 + .incbin "baserom.gba", 0x611330, 0x40 + +gUnknown_08611370:: @ 8611370 + .incbin "baserom.gba", 0x611370, 0x163 + +gUnknown_086114D3:: @ 86114D3 + .incbin "baserom.gba", 0x6114d3, 0xd + +gUnknown_086114E0:: @ 86114E0 + .incbin "baserom.gba", 0x6114e0, 0x68 + +gUnknown_08611548:: @ 8611548 + .incbin "baserom.gba", 0x611548, 0x8 + +gUnknown_08611550:: @ 8611550 + .incbin "baserom.gba", 0x611550, 0x1c + +gUnknown_0861156C:: @ 861156C + .incbin "baserom.gba", 0x61156c, 0xc + +gUnknown_08611578:: @ 8611578 + .incbin "baserom.gba", 0x611578, 0x33c + +gUnknown_086118B4:: @ 86118B4 + .incbin "baserom.gba", 0x6118b4, 0x348 + +gUnknown_08611BFC:: @ 8611BFC + .incbin "baserom.gba", 0x611bfc, 0x1c + +gUnknown_08611C18:: @ 8611C18 + .incbin "baserom.gba", 0x611c18, 0x5c + +gUnknown_08611C74:: @ 8611C74 + .incbin "baserom.gba", 0x611c74, 0x8 + +gUnknown_08611C7C:: @ 8611C7C + .incbin "baserom.gba", 0x611c7c, 0x8 + +gUnknown_08611C84:: @ 8611C84 + .incbin "baserom.gba", 0x611c84, 0x8 + +gUnknown_08611C8C:: @ 8611C8C + .incbin "baserom.gba", 0x611c8c, 0xe + +gUnknown_08611C9A:: @ 8611C9A + .incbin "baserom.gba", 0x611c9a, 0x16 + +gUnknown_08611CB0:: @ 8611CB0 + .incbin "baserom.gba", 0x611cb0, 0x50 + +gUnknown_08611D00:: @ 8611D00 + .incbin "baserom.gba", 0x611d00, 0x8 + +gUnknown_08611D08:: @ 8611D08 + .incbin "baserom.gba", 0x611d08, 0x28 + +gUnknown_08611D30:: @ 8611D30 + .incbin "baserom.gba", 0x611d30, 0x80 + +gUnknown_08611DB0:: @ 8611DB0 + .incbin "baserom.gba", 0x611db0, 0x8 + +gUnknown_08611DB8:: @ 8611DB8 + .incbin "baserom.gba", 0x611db8, 0x8 + +@ 8611DC0 + .include "data/battle_frontier/battle_arena_move_mind_ratings.inc" + + .align 2 +@ 8611F24 + .incbin "baserom.gba", 0x611f24, 0x38 + +gUnknown_08611F5C:: @ 8611F5C + .incbin "baserom.gba", 0x611f5c, 0x18 + +gUnknown_08611F74:: @ 8611F74 + .incbin "baserom.gba", 0x611f74, 0x10 + +gUnknown_08611F84:: @ 8611F84 + .incbin "baserom.gba", 0x611f84, 0x1c + +gUnknown_08611FA0:: @ 8611FA0 + .incbin "baserom.gba", 0x611fa0, 0xc + +gUnknown_08611FAC:: @ 8611FAC + .incbin "baserom.gba", 0x611fac, 0x14 + +@ 8611FC0 + .include "data/battle_frontier/battle_factory_style_move_lists.inc" + +gUnknown_08612120:: @ 8612120 + .incbin "baserom.gba", 0x612120, 0x44 + +gUnknown_08612164:: @ 8612164 + .incbin "baserom.gba", 0x612164, 0x10 + +gUnknown_08612174:: @ 8612174 + .incbin "baserom.gba", 0x612174, 0x10 + +gUnknown_08612184:: @ 8612184 + .incbin "baserom.gba", 0x612184, 0x10 + +gUnknown_08612194:: @ 8612194 + .incbin "baserom.gba", 0x612194, 0x180 + +gUnknown_08612314:: @ 8612314 + .incbin "baserom.gba", 0x612314, 0x8 + +gUnknown_0861231C:: @ 861231C + .incbin "baserom.gba", 0x61231c, 0xc8 + +gUnknown_086123E4:: @ 86123E4 + .incbin "baserom.gba", 0x6123e4, 0x1f8 + +gUnknown_086125DC:: @ 86125DC + .incbin "baserom.gba", 0x6125dc, 0x1c + +gUnknown_086125F8:: @ 86125F8 + .incbin "baserom.gba", 0x6125f8, 0x74 + +gUnknown_0861266C:: @ 861266C + .incbin "baserom.gba", 0x61266c, 0x9 + +gUnknown_08612675:: @ 8612675 + .incbin "baserom.gba", 0x612675, 0x13 + +gUnknown_08612688:: @ 8612688 + .incbin "baserom.gba", 0x612688, 0x8 + +gUnknown_08612690:: @ 8612690 + .incbin "baserom.gba", 0x612690, 0x8 + +gUnknown_08612698:: @ 8612698 + .incbin "baserom.gba", 0x612698, 0x4 + +gUnknown_0861269C:: @ 861269C + .incbin "baserom.gba", 0x61269c, 0x4 + +gUnknown_086126A0:: @ 86126A0 + .incbin "baserom.gba", 0x6126a0, 0x4 + +gUnknown_086126A4:: @ 86126A4 + .incbin "baserom.gba", 0x6126a4, 0x4 + +gUnknown_086126A8:: @ 86126A8 + .incbin "baserom.gba", 0x6126a8, 0x2 + +gUnknown_086126AA:: @ 86126AA + .incbin "baserom.gba", 0x6126aa, 0x2 + +gUnknown_086126AC:: @ 86126AC + .incbin "baserom.gba", 0x6126ac, 0x2 + +gUnknown_086126AE:: @ 86126AE + .incbin "baserom.gba", 0x6126ae, 0x2 + +@ 86126B0 + .include "data/battle_frontier/battle_pyramid_level_50_wild_mons.inc" + +@ 8612E80 + .include "data/battle_frontier/battle_pyramid_open_level_wild_mons.inc" + +gUnknown_08613650:: @ 8613650 + .incbin "baserom.gba", 0x613650, 0x5 + +gUnknown_08613655:: @ 8613655 + .incbin "baserom.gba", 0x613655, 0xfb + +gUnknown_08613750:: @ 8613750 + .incbin "baserom.gba", 0x613750, 0x44 + +gUnknown_08613794:: @ 8613794 + .incbin "baserom.gba", 0x613794, 0x8 + +gUnknown_0861379C:: @ 861379C + .incbin "baserom.gba", 0x61379c, 0x190 + +gUnknown_0861392C:: @ 861392C + .incbin "baserom.gba", 0x61392c, 0x190 + +gUnknown_08613ABC:: @ 8613ABC + .incbin "baserom.gba", 0x613abc, 0x7e + +gUnknown_08613B3A:: @ 8613B3A + .incbin "baserom.gba", 0x613b3a, 0xa + +gUnknown_08613B44:: @ 8613B44 + .incbin "baserom.gba", 0x613b44, 0xd8 + +gUnknown_08613C1C:: @ 8613C1C + .incbin "baserom.gba", 0x613c1c, 0x2a4 + +gUnknown_08613EC0:: @ 8613EC0 + .incbin "baserom.gba", 0x613ec0, 0x18 + +gUnknown_08613ED8:: @ 8613ED8 + .incbin "baserom.gba", 0x613ed8, 0x8 + +gUnknown_08613EE0:: @ 8613EE0 + .incbin "baserom.gba", 0x613ee0, 0x48 + +gUnknown_08613F28:: @ 8613F28 + .incbin "baserom.gba", 0x613f28, 0xc + +gUnknown_08613F34:: @ 8613F34 + .incbin "baserom.gba", 0x613f34, 0x12 + +gUnknown_08613F46:: @ 8613F46 + .incbin "baserom.gba", 0x613f46, 0x40 + +gUnknown_08613F86:: @ 8613F86 + .incbin "baserom.gba", 0x613f86, 0xa diff --git a/data/battle_interface.s b/data/battle_interface.s new file mode 100644 index 000000000..766f34752 --- /dev/null +++ b/data/battle_interface.s @@ -0,0 +1,180 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_0832C138:: @ 832C138 + .byte 0x00, 0x40, 0x00, 0xc0, 0x00, 0x04, 0x00, 0x00 + + .align 2 +gUnknown_0832C140:: @ 832C140 + spr_template 0xd6ff, 0xd6ff, gUnknown_0832C138, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + + .align 2 +gUnknown_0832C158:: @ 832C158 + spr_template 0xd700, 0xd6ff, gUnknown_0832C138, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + + .align 2 +gUnknown_0832C170:: @ 832C170 + spr_template 0xd701, 0xd6ff, gUnknown_0832C138, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + + .align 2 +gUnknown_0832C188:: @ 832C188 + spr_template 0xd702, 0xd6ff, gUnknown_0832C138, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + + .align 2 +gUnknown_0832C1A0:: @ 832C1A0 + spr_template 0xd70b, 0xd6ff, gUnknown_0832C138, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + + .align 2 +gUnknown_0832C1B8:: @ 832C1B8 + .byte 0x00, 0x40, 0x00, 0x40, 0x00, 0x04, 0x00, 0x00 + + .align 2 +gUnknown_0832C1C0:: @ 832C1C0 + spr_template 0xd704, 0xd704, gUnknown_0832C1B8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80728B4 + + .align 2 +gUnknown_0832C1D8:: @ 832C1D8 + spr_template 0xd705, 0xd704, gUnknown_0832C1B8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80728B4 + + .align 2 +gUnknown_0832C1F0:: @ 832C1F0 + spr_template 0xd706, 0xd704, gUnknown_0832C1B8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80728B4 + + .align 2 +gUnknown_0832C208:: @ 832C208 + spr_template 0xd707, 0xd704, gUnknown_0832C1B8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80728B4 + + .align 2 +gUnknown_0832C220:: @ 832C220 + .byte 0xf0, 0x00, 0x0d, 0x40, 0x30, 0x00, 0x08, 0x42 + .byte 0xf0, 0x20, 0x05, 0x43, 0x10, 0x20, 0x45, 0x43 + .byte 0x30, 0x20, 0x85, 0x43 + + .align 2 +gUnknown_0832C234:: @ 832C234 + .byte 0xf0, 0x00, 0x0d, 0x44, 0x30, 0x00, 0x08, 0x46 + .byte 0xf0, 0x20, 0x05, 0x47, 0x10, 0x20, 0x45, 0x47 + .byte 0x30, 0x20, 0x85, 0x47 + + .align 2 +gUnknown_0832C248:: @ 832C248 + .byte 0xf0, 0x00, 0x0d, 0x40, 0x30, 0x00, 0x08, 0x42 + + .align 2 +gUnknown_0832C250:: @ 832C250 + .byte 0xf0, 0x00, 0x0d, 0x40, 0x30, 0x00, 0x08, 0x42 + + .align 2 +gUnknown_0832C258:: @ 832C258 + .byte 0xf0, 0x00, 0x05, 0x40, 0x10, 0x00, 0x45, 0x40 + + .align 2 +gUnknown_0832C260:: @ 832C260 + .byte 0xf0, 0x00, 0x05, 0x40, 0x10, 0x00, 0x45, 0x40 + .byte 0xe0, 0x00, 0x80, 0x40 + + .align 2 +gUnknown_0832C26C:: @ 832C26C + .4byte 0x00000005, gUnknown_0832C220 + .4byte 0x00000002, gUnknown_0832C248 + .4byte 0x00000005, gUnknown_0832C234 + .4byte 0x00000002, gUnknown_0832C250 + + .align 2 +gUnknown_0832C28C:: @ 832C28C + .4byte 0x00000002, gUnknown_0832C258 + .4byte 0x00000003, gUnknown_0832C260 + + .align 2 +gUnknown_0832C29C:: @ 832C29C + .byte 0xa0, 0x00, 0x05, 0x40, 0xc0, 0x00, 0x45, 0x40 + .byte 0xe0, 0x00, 0x85, 0x40, 0x00, 0x00, 0xc5, 0x40 + + .align 2 +gUnknown_0832C2AC:: @ 832C2AC + .byte 0xa0, 0x00, 0x05, 0x40, 0xc0, 0x00, 0x45, 0x40 + .byte 0xe0, 0x00, 0x85, 0x40, 0x00, 0x00, 0x85, 0x40 + .byte 0x20, 0x00, 0x85, 0x40, 0x40, 0x00, 0xc5, 0x40 + + .align 2 +gUnknown_0832C2C4:: @ 832C2C4 + .4byte 0x00000004, gUnknown_0832C29C + + .align 2 +gUnknown_0832C2CC:: @ 832C2CC + .4byte 0x00000006, gUnknown_0832C2AC + + .align 2 +gUnknown_0832C2D4:: @ 832C2D4 + .2byte 0x0000, 0x0000, 0x3333, 0x3333, 0x4444, 0x4444, 0x2222, 0x2222 + .2byte 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777 + + .2byte 0x0000, 0x0000, 0x3333, 0x3333, 0x4444, 0x4444, 0x2222, 0x2222 + .2byte 0x7777, 0x7777, 0x7777, 0x7717, 0x1777, 0x7177, 0x7777, 0x7771 + + .2byte 0x0000, 0x0000, 0x3333, 0x3333, 0x4444, 0x4444, 0x2222, 0x2222 + .2byte 0x7777, 0x7777, 0x7777, 0x7111, 0x7777, 0x7171, 0x7777, 0x7111 + + .align 2 +gUnknown_0832C334:: @ 832C334 + obj_tiles gBattleInterface_BallStatusBarGfx, 0x0200, 0xd70c + + .align 2 +gUnknown_0832C33C:: @ 832C33C + obj_pal gBattleInterface_BallStatusBarPal, 0xd710 + + .align 2 +gUnknown_0832C344:: @ 832C344 + obj_pal gBattleInterface_BallDisplayPal, 0xd712 + + .align 2 +gUnknown_0832C34C:: @ 832C34C + obj_tiles gBattleInterface_BallDisplayGfx, 0x0080, 0xd714 + + .align 2 +gUnknown_0832C354:: @ 832C354 + .byte 0x00, 0x40, 0x00, 0xc0, 0x00, 0x04, 0x00, 0x00 + + .align 2 +gUnknown_0832C35C:: @ 832C35C + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00 + + .align 2 +gUnknown_0832C364:: @ 832C364 + spr_template 0xd70c, 0xd710, gUnknown_0832C138, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8074078 + + .align 2 +gUnknown_0832C37C:: @ 832C37C + spr_template 0xd70c, 0xd710, gUnknown_0832C138, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8074078 + + .align 2 +gUnknown_0832C394:: @ 832C394 + spr_template 0xd714, 0xd712, gUnknown_0832C35C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80740C4 + + .align 2 +gUnknown_0832C3AC:: @ 832C3AC + spr_template 0xd714, 0xd712, gUnknown_0832C35C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80740C4 + + .align 2 +gUnknown_0832C3C4:: @ 832C3C4 + .byte 0xfc, 0x01, 0x01, 0xfc, 0x02, 0x02, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .align 2 +gUnknown_0832C3D8:: @ 832C3D8 + .byte 0xfc, 0x01, 0x01, 0xfc, 0x02, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .align 2 +gUnknown_0832C3EC:: @ 832C3EC + .byte 0x98, 0x61, 0xf7, 0x0e, 0x94, 0x46, 0xd1, 0x72 + .byte 0xdc, 0x29, 0x00, 0x00 + + .align 2 +gUnknown_0832C3F8:: @ 832C3F8 + .byte 0x00, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x00 diff --git a/data/battle_message.s b/data/battle_message.s index 93a921b5e..05847eed0 100644 --- a/data/battle_message.s +++ b/data/battle_message.s @@ -3,778 +3,2074 @@ .section .rodata +gText_Buffer36:: @ 85C9B78 + .string "{STRING 36}$" -.string "{STRING 36}$" -.string "{STRING 0} gained{PLAYER}\n{STRING 52} EXP. Points!\p$" -.string "$" -.string " a boosted$" -.string "{STRING 0} grew to\nLV. {PLAYER}!{UNKNOWN_A}\p$" -.string "{STRING 0} learned\n{PLAYER}!{UNKNOWN_A}\p$" -.string "{STRING 0} is trying to\nlearn {PLAYER}.\p$" -.string "But, {STRING 0} can’t learn\nmore than four moves.\p$" -.string "Delete a move to make\nroom for {PLAYER}?$" -.string "{STRING 0} forgot\n{PLAYER}.\p$" -.string "{PAUSE 32}Stop learning\n{PLAYER}?$" -.string "{STRING 0} did not learn\n{PLAYER}.\p$" -.string "Use next POKéMON?$" -.string "{STRING 15}’s\nattack missed!$" -.string "{STRING 16}\nprotected itself!$" -.string "{STRING 16} avoided\ndamage with {STRING 25}!$" -.string "{STRING 16} makes GROUND\nmoves miss with {STRING 25}!$" -.string "{STRING 16} avoided\nthe attack!$" -.string "It doesn’t affect\n{STRING 16}‥$" -.string "{STRING 15}\nfainted!\p$" -.string "{STRING 16}\nfainted!\p$" -.string "{STRING 35} got ¥{STRING 0}\nfor winning!\p$" -.string "{STRING 35} is out of\nusable POKéMON!\p$" -.string "{STRING 35} whited out!{PAUSE_UNTIL_PRESS}$" -.string "{STRING 19} prevents\nescape with {STRING 26}!\p$" -.string "Can’t escape!\p$" -.string "{STRING 15} can’t escape!$" -.string "Hit {STRING 0} time(s)!$" -.string "{STRING 17}\nfell asleep!$" -.string "{STRING 19}’s {STRING 26}\nmade {STRING 17} sleep!$" -.string "{STRING 16} is\nalready asleep!$" -.string "{STRING 15} is\nalready asleep!$" -.string "{STRING 16}\nwasn’t affected!$" -.string "{STRING 17}\nwas poisoned!$" -.string "{STRING 19}’s {STRING 26}\npoisoned {STRING 17}!$" -.string "{STRING 15} is hurt\nby poison!$" -.string "{STRING 16} is already\npoisoned.$" -.string "{STRING 17} is badly\npoisoned!$" -.string "{STRING 16} had its\nenergy drained!$" -.string "{STRING 17} was burned!$" -.string "{STRING 19}’s {STRING 26}\nburned {STRING 17}!$" -.string "{STRING 15} is hurt\nby its burn!$" -.string "{STRING 16} already\nhas a burn.$" -.string "{STRING 17} was\nfrozen solid!$" -.string "{STRING 19}’s {STRING 26}\nfroze {STRING 17} solid!$" -.string "{STRING 15} is\nfrozen solid!$" -.string "{STRING 16} was\ndefrosted!$" -.string "{STRING 15} was\ndefrosted!$" -.string "{STRING 15} was\ndefrosted by {STRING 20}!$" -.string "{STRING 17} is paralyzed!\nIt may be unable to move!$" -.string "{STRING 19}’s {STRING 26}\nparalyzed {STRING 17}!\lIt may be unable to move!$" -.string "{STRING 15} is paralyzed!\nIt can’t move!$" -.string "{STRING 16} is\nalready paralyzed!$" -.string "{STRING 16} was\nhealed of paralysis!$" -.string "{STRING 16}’s\ndream was eaten!$" -.string "{STRING 15}’s {STRING 0}\nwon’t go higher!$" -.string "{STRING 16}’s {STRING 0}\nwon’t go lower!$" -.string "Your team’s {STRING 0}\nstopped working!$" -.string "The foe’s {STRING 0}\nstopped working!$" -.string "{STRING 15} is\nconfused!$" -.string "{STRING 15} snapped\nout of confusion!$" -.string "{STRING 17} became\nconfused!$" -.string "{STRING 16} is\nalready confused!$" -.string "{STRING 16}\nfell in love!$" -.string "{STRING 15} is in love\nwith {STRING 19}!$" -.string "{STRING 15} is\nimmobilized by love!$" -.string "{STRING 16} was\nblown away!$" -.string "{STRING 15} transformed\ninto the {STRING 0} type!$" -.string "{STRING 15} flinched!$" -.string "{STRING 16} regained\nhealth!$" -.string "{STRING 16}’s\nHP is full!$" -.string "{STRING 42}’s {STRING 20}\nraised SP. DEF!$" -.string "{STRING 42}’s {STRING 20}\nraised SP. DEF a little!$" -.string "{STRING 42}’s {STRING 20}\nraised DEFENSE!$" -.string "{STRING 42}’s {STRING 20}\nraised DEFENSE a little!$" -.string "{STRING 42}’s party is covered\nby a veil!$" -.string "{STRING 16}’s party is protected\nby SAFEGUARD!$" -.string "{STRING 44}’s party is no longer\nprotected by SAFEGUARD!$" -.string "{STRING 15} went\nto sleep!$" -.string "{STRING 15} slept and\nbecame healthy!$" -.string "{STRING 15} whipped\nup a whirlwind!$" -.string "{STRING 15} took\nin sunlight!$" -.string "{STRING 15} lowered\nits head!$" -.string "{STRING 15} is glowing!$" -.string "{STRING 15} flew\nup high!$" -.string "{STRING 15} dug a hole!$" -.string "{STRING 15} hid\nunderwater!$" -.string "{STRING 15} sprang up!$" -.string "{STRING 16} was squeezed by\n{STRING 15}’s BIND!$" -.string "{STRING 16} was trapped\nin the vortex!$" -.string "{STRING 16} was trapped\nby SAND TOMB!$" -.string "{STRING 16} was WRAPPED by\n{STRING 15}!$" -.string "{STRING 15} CLAMPED\n{STRING 16}!$" -.string "{STRING 15} is hurt\nby {STRING 0}!$" -.string "{STRING 15} was freed\nfrom {STRING 0}!$" -.string "{STRING 15} kept going\nand crashed!$" - -gUnknown_085CA424:: @ 85CA424 - -.string "{STRING 42} became\nshrouded in MIST!$" -.string "{STRING 19} is protected\nby MIST!$" - -gUnknown_085CA459:: @ 85CA459 - -.string "{STRING 15} is getting\npumped!$" -.string "{STRING 15} is hit\nwith recoil!$" -.string "{STRING 15} protected\nitself!$" -.string "{STRING 15} is buffeted\nby the sandstorm!$" -.string "{STRING 15} is pelted\nby HAIL!$" -.string "{STRING 40}’s {STRING 0}\nwore off!$" -.string "{STRING 16} was seeded!$" -.string "{STRING 16} evaded\nthe attack!$" -.string "{STRING 15}’s health is\nsapped by LEECH SEED!$" -.string "{STRING 15} is fast\nasleep.$" -.string "{STRING 15} woke up!$" -.string "But {STRING 19}’s UPROAR\nkept it awake!$" -.string "{STRING 15} woke up\nin the UPROAR!$" -.string "{STRING 15} caused\nan UPROAR!$" -.string "{STRING 15} is making\nan UPROAR!$" -.string "{STRING 15} calmed down.$" -.string "But {STRING 16} can’t\nsleep in an UPROAR!$" -.string "{STRING 15} STOCKPILED\n{STRING 0}!$" -.string "{STRING 15} can’t\nSTOCKPILE any more!$" -.string "But {STRING 16} can’t\nsleep in an UPROAR!$" -.string "But the UPROAR kept\n{STRING 16} awake!$" -.string "{STRING 16} stayed awake\nusing its {STRING 25}!$" -.string "{STRING 15} is storing\nenergy!$" -.string "{STRING 15} unleashed\nenergy!$" -.string "{STRING 15} became\nconfused due to fatigue!$" -.string "{STRING 35} picked up\n¥{STRING 0}!\p$" -.string "{STRING 16} is\nunaffected!$" -.string "{STRING 15} transformed\ninto {STRING 0}!$" -.string "{STRING 15} made\na SUBSTITUTE!$" -.string "{STRING 15} already\nhas a SUBSTITUTE!$" -.string "The SUBSTITUTE took damage\nfor {STRING 16}!\p$" -.string "{STRING 16}’s\nSUBSTITUTE faded!\p$" -.string "{STRING 15} must\nrecharge!$" -.string "{STRING 16}’s RAGE\nis building!$" -.string "{STRING 16}’s {STRING 0}\nwas disabled!$" -.string "{STRING 15} is disabled\nno more!$" -.string "{STRING 16} got\nan ENCORE!$" -.string "{STRING 15}’s ENCORE\nended!$" -.string "{STRING 15} took aim\nat {STRING 16}!$" -.string "{STRING 15} SKETCHED\n{STRING 0}!$" -.string "{STRING 15} is trying\nto take its foe with it!$" -.string "{STRING 16} took\n{STRING 15} with it!$" -.string "Reduced {STRING 16}’s\n{STRING 0} by {PLAYER}!$" -.string "{STRING 15} stole\n{STRING 16}’s {STRING 22}!$" -.string "{STRING 16} can’t\nescape now!$" -.string "{STRING 16} fell into\na NIGHTMARE!$" -.string "{STRING 15} is locked\nin a NIGHTMARE!$" -.string "{STRING 15} cut its own HP and\nlaid a CURSE on {STRING 16}!$" -.string "{STRING 15} is afflicted\nby the CURSE!$" -.string "SPIKES were scattered all around\nthe opponent’s side!$" -.string "{STRING 19} is hurt\nby SPIKES!$" -.string "{STRING 15} identified\n{STRING 16}!$" -.string "{STRING 15}’s PERISH count\nfell to {STRING 0}!$" -.string "{STRING 15} braced\nitself!$" -.string "{STRING 16} ENDURED\nthe hit!$" -.string "MAGNITUDE {STRING 0}!$" -.string "{STRING 15} cut its own HP\nand maximized ATTACK!$" -.string "{STRING 15} copied\n{STRING 16}’s stat changes!$" -.string "{STRING 15} got free of\n{STRING 16}’s {STRING 0}!$" -.string "{STRING 15} shed\nLEECH SEED!$" -.string "{STRING 15} blew away\nSPIKES!$" -.string "{STRING 15} fled from\nbattle!$" -.string "{STRING 15} foresaw\nan attack!$" -.string "{STRING 16} took the\n{STRING 0} attack!$" -.string "{STRING 15} chose\n{STRING 20} as its destiny!$" -.string "{STRING 0}’s attack!$" -.string "{STRING 15} became the\ncenter of attention!$" -.string "{STRING 15} began\ncharging power!$" -.string "NATURE POWER turned into\n{STRING 20}!$" -.string "{STRING 15}’s status\nreturned to normal!$" -.string "{STRING 16} was subjected\nto TORMENT!$" -.string "{STRING 15} is tightening\nits focus!$" -.string "{STRING 16} fell for\nthe TAUNT!$" -.string "{STRING 15} is ready to\nhelp {STRING 16}!$" -.string "{STRING 15} switched\nitems with its opponent!$" -.string "{STRING 15} obtained\n{STRING 0}.$" -.string "{STRING 16} obtained\n{PLAYER}.$" -.string "{STRING 15} obtained\n{STRING 0}.\p{STRING 16} obtained\n{PLAYER}.$" -.string "{STRING 15} copied\n{STRING 16}’s {STRING 25}!$" -.string "{STRING 15} made a WISH!$" -.string "{STRING 0}’s WISH\ncame true!$" -.string "{STRING 15} planted its roots!$" -.string "{STRING 15} absorbed\nnutrients with its roots!$" -.string "{STRING 16} anchored\nitself with its roots!$" -.string "{STRING 15} made\n{STRING 16} drowsy!$" -.string "{STRING 15} knocked off\n{STRING 16}’s {STRING 22}!$" -.string "{STRING 15} swapped abilities\nwith its opponent!$" -.string "{STRING 15} sealed the\nopponent’s move(s)!$" -.string "{STRING 15} wants the\nopponent to bear a GRUDGE!$" -.string "{STRING 15}’s {STRING 0} lost\nall its PP due to the GRUDGE!$" -.string "{STRING 15} shrouded\nitself in {STRING 20}!$" -.string "{STRING 15}’s {STRING 20}\nwas bounced back by MAGIC COAT!$" -.string "{STRING 15} waits for a target\nto make a move!$" -.string "{STRING 16} SNATCHED\n{STRING 19}’s move!$" -.string "Electricity’s power was\nweakened!$" -.string "Fire’s power was\nweakened!$" -.string "{STRING 15} found\none {STRING 22}!$" -.string "A soothing aroma wafted\nthrough the area!$" -.string "Items can’t be used now.{PAUSE 64}$" -.string "For {STRING 19},\n{STRING 22} {STRING 0}$" -.string "{STRING 19} used\n{STRING 22} to get pumped!$" -.string "{STRING 15} lost its\nfocus and couldn’t move!$" -.string "{STRING 16} was\ndragged out!\p$" -.string "The wall shattered!$" -.string "But it had no effect!$" -.string "{STRING 18} has no\nmoves left!\p$" -.string "{STRING 18}’s {STRING 20}\nis disabled!\p$" -.string "{STRING 18} can’t use the same\nmove in a row due to the TORMENT!\p$" -.string "{STRING 18} can’t use\n{STRING 20} after the TAUNT!\p$" -.string "{STRING 18} can’t use the\nsealed {STRING 20}!\p$" -.string "{STRING 19}’s {STRING 26}\nmade it rain!$" -.string "{STRING 19}’s {STRING 26}\nraised its SPEED!$" -.string "{STRING 16} was protected\nby {STRING 25}!$" -.string "{STRING 16}’s {STRING 25}\nprevents {STRING 15}\lfrom using {STRING 20}!$" -.string "{STRING 16} restored HP\nusing its {STRING 25}!$" -.string "{STRING 16}’s {STRING 25}\nmade {STRING 20} useless!$" -.string "{STRING 16}’s {STRING 25}\nmade it the {STRING 0} type!$" -.string "{STRING 17}’s {STRING 25}\nprevents paralysis!$" -.string "{STRING 16}’s {STRING 25}\nprevents romance!$" -.string "{STRING 17}’s {STRING 25}\nprevents poisoning!$" -.string "{STRING 16}’s {STRING 25}\nprevents confusion!$" -.string "{STRING 16}’s {STRING 25}\nraised its FIRE power!$" -.string "{STRING 16} anchors\nitself with {STRING 25}!$" -.string "{STRING 19}’s {STRING 26}\ncuts {STRING 16}’s ATTACK!$" -.string "{STRING 19}’s {STRING 26}\nprevents stat loss!$" -.string "{STRING 16}’s {STRING 25}\nhurt {STRING 15}!$" -.string "{STRING 19} TRACED\n{STRING 0}’s {PLAYER}!$" -.string "{STRING 17}’s {STRING 27}\nprevents burns!$" -.string "{STRING 16}’s {STRING 25}\nblocks {STRING 20}!$" -.string "{STRING 19}’s {STRING 26}\nblocks {STRING 20}!$" -.string "{STRING 15}’s {STRING 24}\nrestored its HP a little!$" -.string "{STRING 19}’s {STRING 26}\nwhipped up a sandstorm!$" -.string "{STRING 19}’s {STRING 26}\nintensified the sun’s rays!$" -.string "{STRING 19}’s {STRING 26}\nprevents {STRING 0} loss!$" -.string "{STRING 16}’s {STRING 25}\ninfatuated {STRING 15}!$" -.string "{STRING 16}’s {STRING 25}\nmade {STRING 20} ineffective!$" -.string "{STRING 19}’s {STRING 26}\ncured its {STRING 0} problem!$" -.string "It sucked up the\nLIQUID OOZE!$" -.string "{STRING 19} transformed!$" -.string "{STRING 16}’s {STRING 25}\ntook the attack!$" - -BattleText_PreventedSwitch:: @ 85CB2A1 - -.string "{STRING 0}’s {STRING 23}\nprevents switching!\p$" -.string "{STRING 16}’s {STRING 25}\nprevented {STRING 19}’s\l{STRING 0} from working!$" -.string "{STRING 19}’s {STRING 26}\nmade it ineffective!$" -.string "{STRING 17}’s {STRING 27}\nprevents flinching!$" -.string "{STRING 15}’s {STRING 24}\nprevents {STRING 16}’s\l{STRING 25} from working!$" -.string "{STRING 19}’s {STRING 26}\ncured its {STRING 0} problem!$" -.string "{STRING 19}’s {STRING 26}\nhad no effect on {STRING 17}!$" -.string "sharply $" - -gUnknown_085CB38A:: @ 85CB38A - -.string "rose!$" -.string "harshly $" -.string "fell!$" -.string "{STRING 15}’s {STRING 0}\n{PLAYER}$" - -gUnknown_085CB3AA:: @ 85CB3AA - -.string "{STRING 16}’s {STRING 0}\n{PLAYER}$" -.string "Using {STRING 22}, the {STRING 0}\nof {STRING 19} {PLAYER}$" -.string "{STRING 15}’s {STRING 0}\n{PLAYER}$" -.string "{STRING 16}’s {STRING 0}\n{PLAYER}$" -.string "{STRING 15}’s stats won’t\ngo any higher!$" -.string "{STRING 16}’s stats won’t\ngo any lower!$" -.string "A critical hit!$" -.string "It’s a one-hit KO!$" -.string "{PAUSE 32}1, {PAUSE 15}2, and{PAUSE 15}‥ {PAUSE 15}‥ {PAUSE 15}‥ {PAUSE 15}{PLAY_SE 0x0038}Poof!\p$" -.string "And‥\p$" -.string "HM moves can’t be\nforgotten now.\p$" -.string "It’s not very effective‥$" -.string "It’s super effective!$" - -gUnknown_085CB4CA:: @ 85CB4CA - -.string "{PLAY_SE 0x0011}Got away safely!\p$" -.string "{PLAY_SE 0x0011}{STRING 15} fled\nusing its {STRING 22}!\p$" -.string "{PLAY_SE 0x0011}{STRING 15} fled\nusing {STRING 24}!\p$" -.string "{PLAY_SE 0x0011}Wild {STRING 0} fled!$" - -gUnknown_085CB524:: @ 85CB524 - -.string "Player defeated\n{STRING 32}!$" - -gUnknown_085CB538:: @ 85CB538 - -.string "Player beat {STRING 32}\nand {STRING 33}!$" - -gUnknown_085CB54F:: @ 85CB54F - -.string "Player lost against\n{STRING 32}!$" - -gUnknown_085CB567:: @ 85CB567 - -.string "Player lost to {STRING 32}\nand {STRING 33}!$" - -gUnknown_085CB581:: @ 85CB581 - -.string "Player battled to a draw against\n{STRING 32}!$" - -gUnknown_085CB5A6:: @ 85CB5A6 - -.string "Player battled to a draw against\n{STRING 32} and {STRING 33}!$" - -gUnknown_085CB5D2:: @ 85CB5D2 - -.string "{PLAY_SE 0x0011}{STRING 32} fled!$" - -gUnknown_085CB5DF:: @ 85CB5DF - -.string "{PLAY_SE 0x0011}{STRING 32} and\n{STRING 33} fled!$" -.string "No! There’s no running\nfrom a TRAINER battle!\p$" -.string "Can’t escape!\p$" -.string "PROF. BIRCH: Don’t leave me like this!\p$" -.string "But nothing happened!$" -.string "But it failed!$" -.string "It hurt itself in its\nconfusion!$" -.string "The MIRROR MOVE failed!$" -.string "It started to rain!$" -.string "A downpour started!$" -.string "Rain continues to fall.$" -.string "The downpour continues.$" -.string "The rain stopped.$" -.string "A sandstorm brewed!$" -.string "The sandstorm rages.$" -.string "The sandstorm subsided.$" -.string "The sunlight got bright!$" -.string "The sunlight is strong.$" -.string "The sunlight faded.$" -.string "It started to hail!$" -.string "Hail continues to fall.$" -.string "The hail stopped.$" -.string "But it failed to SPIT UP\na thing!$" -.string "But it failed to SWALLOW\na thing!$" -.string "The wind turned into a\nHEAT WAVE!$" -.string "All stat changes were\neliminated!$" -.string "Coins scattered everywhere!$" -.string "It was too weak to make\na SUBSTITUTE!$" -.string "The battlers shared\ntheir pain!$" -.string "A bell chimed!$" -.string "All affected POKéMON will\nfaint in three turns!$" -.string "There’s no PP left for\nthis move!\p$" -.string "But there was no PP left\nfor the move!$" -.string "{STRING 15} ignored\norders while asleep!$" -.string "{STRING 15} ignored\norders!$" -.string "{STRING 15} began to nap!$" -.string "{STRING 15} is\nloafing around!$" -.string "{STRING 15} won’t\nobey!$" -.string "{STRING 15} turned away!$" -.string "{STRING 15} pretended\nnot to notice!$" -.string "{STRING 28} {STRING 29} is\nabout to use {PLAYER}.\pWill {STRING 35} change\nPOKéMON?$" -.string "{STRING 15} learned\n{STRING 0}!$" +gText_PkmnGainedEXP:: @ 85C9B7B + .string "{STRING 0} gained{PLAYER}\n{STRING 52} EXP. Points!\p$" -gUnknown_085CBA2E:: @ 85CBA2E +gText_EmptyString4:: @ 85C9B98 + .string "$" -.string "Player defeated\n{STRING 28} {STRING 29}!\p$" -.string "{STRING 35} crept closer to\n{RIVAL}!$" -.string "{STRING 35} can’t get any closer!$" -.string "{RIVAL} is watching\ncarefully!$" -.string "{RIVAL} is curious about\nthe {STRING 0}!$" -.string "{RIVAL} is enthralled by\nthe {STRING 0}!$" -.string "{RIVAL} completely ignored\nthe {STRING 0}!$" -.string "{STRING 35} threw a {POKEBLOCK}\nat the {RIVAL}!$" -.string "{PLAY_SE 0x0049}ANNOUNCER: You’re out of\nSAFARI BALLS! Game over!\p$" -.string "{RIVAL} appeared!\p$" +gText_ABoosted:: @ 85C9B99 + .string " a boosted$" -gUnknown_085CBB47:: @ 85CBB47 +gText_PkmnGrewToLv:: @ 85C9BA4 + .string "{STRING 0} grew to\nLV. {PLAYER}!{UNKNOWN_A}\p$" -.string "Wild {RIVAL} appeared!\p$" +gText_PkmnLearnedMove:: @ 85C9BBA + .string "{STRING 0} learned\n{PLAYER}!{UNKNOWN_A}\p$" -gUnknown_085CBB5A:: @ 85CBB5A +gText_TryToLearnMove1:: @ 85C9BCC + .string "{STRING 0} is trying to\nlearn {PLAYER}.\p$" -.string "Wild {RIVAL} appeared!\p$" +gText_TryToLearnMove2:: @ 85C9BE7 + .string "But, {STRING 0} can’t learn\nmore than four moves.\p$" -gUnknown_085CBB6D:: @ 85CBB6D +gText_TryToLearnMove3:: @ 85C9C12 + .string "Delete a move to make\nroom for {PLAYER}?$" -.string "Wild {RIVAL} appeared!{PAUSE 127}$" +gText_PkmnForgotMove:: @ 85C9C35 + .string "{STRING 0} forgot\n{PLAYER}.\p$" -gUnknown_085CBB82:: @ 85CBB82 +gText_StopLearningMove:: @ 85C9C44 + .string "{PAUSE 32}Stop learning\n{PLAYER}?$" -.string "Wild {RIVAL} and\n{AQUA} appeared!\p$" +gText_DidNotLearnMove:: @ 85C9C59 + .string "{STRING 0} did not learn\n{PLAYER}.\p$" -gUnknown_085CBB9C:: @ 85CBB9C +gText_UseNextPkmn:: @ 85C9C6F + .string "Use next POKéMON?$" -.string "{STRING 28} {STRING 29}\nwould like to battle!\p$" +gText_AttackMissed:: @ 85C9C81 + .string "{STRING 15}’s\nattack missed!$" -gUnknown_085CBBB9:: @ 85CBBB9 +gText_PkmnProtectedItself:: @ 85C9C95 + .string "{STRING 16}\nprotected itself!$" -.string "{STRING 32}\nwants to battle!$" +gText_AvoidedDamage:: @ 85C9CAA + .string "{STRING 16} avoided\ndamage with {STRING 25}!$" -gUnknown_085CBBCD:: @ 85CBBCD +gText_PkmnMakesGroundMiss:: @ 85C9CC5 + .string "{STRING 16} makes GROUND\nmoves miss with {STRING 25}!$" -.string "{STRING 32} and {STRING 33}\nwant to battle!$" +gText_PkmnAvoidedAttack:: @ 85C9CE9 + .string "{STRING 16} avoided\nthe attack!$" -gUnknown_085CBBE7:: @ 85CBBE7 +gText_ItDoesntAffect:: @ 85C9D00 + .string "It doesn’t affect\n{STRING 16}…$" -.string "{STRING 28} {STRING 29} sent\nout {RIVAL}!$" +gText_PkmnFainted:: @ 85C9D16 + .string "{STRING 15}\nfainted!\p$" -gUnknown_085CBBFA:: @ 85CBBFA +gText_PkmnFainted2:: @ 85C9D23 + .string "{STRING 16}\nfainted!\p$" -.string "{STRING 28} {STRING 29} sent\nout {RIVAL} and {AQUA}!$" +gText_PlayerGotMoney:: @ 85C9D30 + .string "{STRING 35} got ¥{STRING 0}\nfor winning!\p$" -gUnknown_085CBC14:: @ 85CBC14 +gText_PlayerWhiteout:: @ 85C9D49 + .string "{STRING 35} is out of\nusable POKéMON!\p$" -.string "{STRING 28} {STRING 29} sent\nout {STRING 0}!$" +gText_PlayerWhiteout2:: @ 85C9D67 + .string "{STRING 35} whited out!{PAUSE_UNTIL_PRESS}$" -gUnknown_085CBC27:: @ 85CBC27 +gText_PreventsEscape:: @ 85C9D78 + .string "{STRING 19} prevents\nescape with {STRING 26}!\p$" -.string "{STRING 32} sent out\n{RIVAL}!$" +gText_CantEscape2:: @ 85C9D95 + .string "Can’t escape!\p$" -gUnknown_085CBC37:: @ 85CBC37 +gText_PkmnCantEscape2:: @ 85C9DA4 + .string "{STRING 15} can’t escape!$" -.string "{STRING 32} sent out\n{RIVAL} and {AQUA}!$" +gText_HitXTimes:: @ 85C9DB5 + .string "Hit {STRING 0} time(s)!$" -gUnknown_085CBC4E:: @ 85CBC4E +gText_PkmnFellAsleep:: @ 85C9DC5 + .string "{STRING 17}\nfell asleep!$" -.string "{STRING 32} sent out {STRING 10}!\n{STRING 33} sent out {STRING 12}!$" +gText_PkmnMadeSleep:: @ 85C9DD5 + .string "{STRING 19}’s {STRING 26}\nmade {STRING 17} sleep!$" -gUnknown_085CBC6E:: @ 85CBC6E +gText_PkmnAlreadyAsleep:: @ 85C9DEC + .string "{STRING 16} is\nalready asleep!$" -.string "{STRING 32} sent out\n{STRING 0}!$" +gText_PkmnAlreadyAsleep2:: @ 85C9E02 + .string "{STRING 15} is\nalready asleep!$" -gUnknown_085CBC7E:: @ 85CBC7E +gText_PkmnWasntAffected:: @ 85C9E18 + .string "{STRING 16}\nwasn’t affected!$" -.string "{STRING 34} sent out\n{STRING 0}!$" +gText_PkmnWasPoisoned:: @ 85C9E2C + .string "{STRING 17}\nwas poisoned!$" -gUnknown_085CBC8E:: @ 85CBC8E +gText_PkmnPoisonedBy:: @ 85C9E3D + .string "{STRING 19}’s {STRING 26}\npoisoned {STRING 17}!$" -.string "Go! {STRING 5}!$" +gText_PkmnHurtByPoison:: @ 85C9E52 + .string "{STRING 15} is hurt\nby poison!$" -gUnknown_085CBC96:: @ 85CBC96 +gText_PkmnAlreadyPoisoned:: @ 85C9E68 + .string "{STRING 16} is already\npoisoned.$" -.string "Go! {STRING 5} and\n{VERSION}!$" +gText_PkmnBadlyPoisoned:: @ 85C9E80 + .string "{STRING 17} is badly\npoisoned!$" -gUnknown_085CBCA5:: @ 85CBCA5 +gText_PkmnEnergyDrained:: @ 85C9E96 + .string "{STRING 16} had its\nenergy drained!$" -.string "Go! {STRING 0}!$" +gText_PkmnWasBurned:: @ 85C9EB1 + .string "{STRING 17} was burned!$" -gUnknown_085CBCAD:: @ 85CBCAD +gText_PkmnBurnedBy:: @ 85C9EC0 + .string "{STRING 19}’s {STRING 26}\nburned {STRING 17}!$" -.string "Do it! {STRING 0}!$" +gText_PkmnHurtByBurn:: @ 85C9ED3 + .string "{STRING 15} is hurt\nby its burn!$" -gUnknown_085CBCB8:: @ 85CBCB8 +gText_PkmnAlreadyHasBurn:: @ 85C9EEB + .string "{STRING 16} already\nhas a burn.$" -.string "Go for it, {STRING 0}!$" +gText_PkmnWasFrozen:: @ 85C9F02 + .string "{STRING 17} was\nfrozen solid!$" -gUnknown_085CBCC7:: @ 85CBCC7 +gText_PkmnFrozenBy:: @ 85C9F17 + .string "{STRING 19}’s {STRING 26}\nfroze {STRING 17} solid!$" -.string "Your foe’s weak!\nGet ’em, {STRING 0}!$" +gText_PkmnIsFrozen:: @ 85C9F2F + .string "{STRING 15} is\nfrozen solid!$" -gUnknown_085CBCE5:: @ 85CBCE5 +gText_PkmnWasDefrosted:: @ 85C9F43 + .string "{STRING 16} was\ndefrosted!$" -.string "{STRING 31} sent out {STRING 11}!\nGo! {STRING 9}!$" +gText_PkmnWasDefrosted2:: @ 85C9F55 + .string "{STRING 15} was\ndefrosted!$" -gUnknown_085CBCFD:: @ 85CBCFD +gText_PkmnWasDefrostedBy:: @ 85C9F67 + .string "{STRING 15} was\ndefrosted by {STRING 20}!$" -.string "{STRING 0}, that’s enough!\nCome back!$" +gText_PkmnWasParalyzed:: @ 85C9F7F + .string "{STRING 17} is paralyzed!\nIt may be unable to move!$" -gUnknown_085CBD1B:: @ 85CBD1B +gText_PkmnWasParalyzedBy:: @ 85C9FAA + .string "{STRING 19}’s {STRING 26}\nparalyzed {STRING 17}!\lIt may be unable to move!$" -.string "{STRING 0}, come back!$" +gText_PkmnIsParalyzed:: @ 85C9FDA + .string "{STRING 15} is paralyzed!\nIt can’t move!$" -gUnknown_085CBD2A:: @ 85CBD2A +gText_PkmnIsAlreadyParalyzed:: @ 85C9FFA + .string "{STRING 16} is\nalready paralyzed!$" -.string "{STRING 0}, OK!\nCome back!$" +gText_PkmnHealedParalysis:: @ 85CA013 + .string "{STRING 16} was\nhealed of paralysis!$" -gUnknown_085CBD3D:: @ 85CBD3D +gText_PkmnDreamEaten:: @ 85CA02F + .string "{STRING 16}’s\ndream was eaten!$" -.string "{STRING 0}, good!\nCome back!$" +gText_StatsWontIncrease:: @ 85CA045 + .string "{STRING 15}’s {STRING 0}\nwon’t go higher!$" -gUnknown_085CBD52:: @ 85CBD52 +gText_StatsWontDecrease:: @ 85CA05E + .string "{STRING 16}’s {STRING 0}\nwon’t go lower!$" -.string "{STRING 28} {STRING 29}\nwithdrew {STRING 0}!$" +gText_TeamStoppedWorking:: @ 85CA076 + .string "Your team’s {STRING 0}\nstopped working!$" -gUnknown_085CBD65:: @ 85CBD65 +gText_FoeStoppedWorking:: @ 85CA096 + .string "The foe’s {STRING 0}\nstopped working!$" -.string "{STRING 32} withdrew\n{STRING 0}!$" +gText_PkmnIsConfused:: @ 85CA0B4 + .string "{STRING 15} is\nconfused!$" -gUnknown_085CBD75:: @ 85CBD75 +gText_PkmnHealedConfusion:: @ 85CA0C4 + .string "{STRING 15} snapped\nout of confusion!$" -.string "{STRING 34} withdrew\n{STRING 0}!$" +gText_PkmnWasConfused:: @ 85CA0E1 + .string "{STRING 17} became\nconfused!$" -gUnknown_085CBD85:: @ 85CBD85 +gText_PkmnAlreadyConfused:: @ 85CA0F5 + .string "{STRING 16} is\nalready confused!$" -.string "Wild $" +gText_PkmnFellInLove:: @ 85CA10D + .string "{STRING 16}\nfell in love!$" -gUnknown_085CBD8B:: @ 85CBD8B +gText_PkmnInLove:: @ 85CA11E + .string "{STRING 15} is in love\nwith {STRING 19}!$" -.string "Foe $" -.string "$" +gText_PkmnImmobilizedByLove:: @ 85CA135 + .string "{STRING 15} is\nimmobilized by love!$" -gUnknown_085CBD91:: @ 85CBD91 +gText_PkmnBlownAway:: @ 85CA150 + .string "{STRING 16} was\nblown away!$" -.string "Foe$" +gText_PkmnChangedType:: @ 85CA163 + .string "{STRING 15} transformed\ninto the {STRING 0} type!$" -gUnknown_085CBD95:: @ 85CBD95 +gText_PkmnFlinched:: @ 85CA184 + .string "{STRING 15} flinched!$" -.string "Ally$" +gText_PkmnRegainedHealth:: @ 85CA191 + .string "{STRING 16} regained\nhealth!$" -gUnknown_085CBD9A:: @ 85CBD9A +gText_PkmnHPFull:: @ 85CA1A5 + .string "{STRING 16}’s\nHP is full!$" -.string "Foe$" +gText_PkmnRaisedSpDef:: @ 85CA1B6 + .string "{STRING 42}’s {STRING 20}\nraised SP. DEF!$" -gUnknown_085CBD9E:: @ 85CBD9E +gText_PkmnRaisedSpDefALittle:: @ 85CA1CE + .string "{STRING 42}’s {STRING 20}\nraised SP. DEF a little!$" -.string "Ally$" +gText_PkmnRaisedDef:: @ 85CA1EF + .string "{STRING 42}’s {STRING 20}\nraised DEFENSE!$" -gUnknown_085CBDA3:: @ 85CBDA3 +gText_PkmnRaisedDefALittle:: @ 85CA207 + .string "{STRING 42}’s {STRING 20}\nraised DEFENSE a little!$" -.string "Foe$" +gText_PkmnCoveredByVeil:: @ 85CA228 + .string "{STRING 42}’s party is covered\nby a veil!$" -gUnknown_085CBDA7:: @ 85CBDA7 +gText_PkmnUsedSafeguard:: @ 85CA249 + .string "{STRING 16}’s party is protected\nby SAFEGUARD!$" -.string "Ally$" +gText_PkmnSafeguardExpired:: @ 85CA26F + .string "{STRING 44}’s party is no longer\nprotected by SAFEGUARD!$" -gUnknown_085CBDAC:: @ 85CBDAC +gText_PkmnWentToSleep:: @ 85CA29F + .string "{STRING 15} went\nto sleep!$" -.string "{STRING 15} used\n{PLAYER}$" +gText_PkmnSleptHealthy:: @ 85CA2B1 + .string "{STRING 15} slept and\nbecame healthy!$" -gUnknown_085CBDB7:: @ 85CBDB7 +gText_PkmnWhippedWhirlwind:: @ 85CA2CE + .string "{STRING 15} whipped\nup a whirlwind!$" -.string "!$" +gText_PkmnTookSunlight:: @ 85CA2E9 + .string "{STRING 15} took\nin sunlight!$" -gUnknown_085CBDB9:: @ 85CBDB9 +gText_PkmnLoweredHead:: @ 85CA2FE + .string "{STRING 15} lowered\nits head!$" -.string "!$" +gText_PkmnIsGlowing:: @ 85CA313 + .string "{STRING 15} is glowing!$" -gUnknown_085CBDBB:: @ 85CBDBB +gText_PkmnFlewHigh:: @ 85CA322 + .string "{STRING 15} flew\nup high!$" -.string "!$" +gText_PkmnDugHole:: @ 85CA333 + .string "{STRING 15} dug a hole!$" -gUnknown_085CBDBD:: @ 85CBDBD +gText_PkmnHidUnderwater:: @ 85CA342 + .string "{STRING 15} hid\nunderwater!$" -.string "!$" +gText_PkmnSprangUp:: @ 85CA355 + .string "{STRING 15} sprang up!$" -gUnknown_085CBDBF:: @ 85CBDBF - .incbin "baserom.gba", 0x5cbdbf, 0x41 +gText_PkmnSqueezedByBind:: @ 85CA363 + .string "{STRING 16} was squeezed by\n{STRING 15}’s BIND!$" +gText_PkmnTrappedInVortex:: @ 85CA381 + .string "{STRING 16} was trapped\nin the vortex!$" + +gText_PkmnTrappedBySandTomb:: @ 85CA39F + .string "{STRING 16} was trapped\nby SAND TOMB!$" + +gText_PkmnWrappedBy:: @ 85CA3BC + .string "{STRING 16} was WRAPPED by\n{STRING 15}!$" + +gText_PkmnClamped:: @ 85CA3D2 + .string "{STRING 15} CLAMPED\n{STRING 16}!$" + +gText_PkmnHurtBy:: @ 85CA3E1 + .string "{STRING 15} is hurt\nby {STRING 0}!$" + +gText_PkmnFreedFrom:: @ 85CA3F3 + .string "{STRING 15} was freed\nfrom {STRING 0}!$" + +gText_PkmnCrashed:: @ 85CA409 + .string "{STRING 15} kept going\nand crashed!$" + +gText_PkmnShroudedInMist:: @ 85CA424 + .string "{STRING 42} became\nshrouded in MIST!$" + +gText_PkmnProtectedByMist:: @ 85CA440 + .string "{STRING 19} is protected\nby MIST!$" + +gText_PkmnGettingPumped:: @ 85CA459 + .string "{STRING 15} is getting\npumped!$" + +gText_PkmnHitWithRecoil:: @ 85CA46F + .string "{STRING 15} is hit\nwith recoil!$" + +gText_PkmnProtectedItself2:: @ 85CA486 + .string "{STRING 15} protected\nitself!$" + +gText_PkmnBuffetedBySandstorm:: @ 85CA49B + .string "{STRING 15} is buffeted\nby the sandstorm!$" + +gText_PkmnPeltedByHail:: @ 85CA4BC + .string "{STRING 15} is pelted\nby HAIL!$" + +gText_PkmnsXWoreOff:: @ 85CA4D2 + .string "{STRING 40}’s {STRING 0}\nwore off!$" + +gText_PkmnSeeded:: @ 85CA4E4 + .string "{STRING 16} was seeded!$" + +gText_PkmnEvadedAttack:: @ 85CA4F3 + .string "{STRING 16} evaded\nthe attack!$" + +gText_PkmnSappedByLeechSeed:: @ 85CA509 + .string "{STRING 15}’s health is\nsapped by LEECH SEED!$" + +gText_PkmnFastAsleep:: @ 85CA52E + .string "{STRING 15} is fast\nasleep.$" + +gText_PkmnWokeUp:: @ 85CA541 + .string "{STRING 15} woke up!$" + +gText_PkmnUproarKeptAwake:: @ 85CA54D + .string "But {STRING 19}’s UPROAR\nkept it awake!$" + +gText_PkmnWokeUpInUproar:: @ 85CA56C + .string "{STRING 15} woke up\nin the UPROAR!$" + +gText_PkmnCausedUproar:: @ 85CA586 + .string "{STRING 15} caused\nan UPROAR!$" + +gText_PkmnMakingUproar:: @ 85CA59B + .string "{STRING 15} is making\nan UPROAR!$" + +gText_PkmnCalmedDown:: @ 85CA5B3 + .string "{STRING 15} calmed down.$" + +gText_PkmnCantSleepInUproar:: @ 85CA5C3 + .string "But {STRING 16} can’t\nsleep in an UPROAR!$" + +gText_PkmnStockpiled:: @ 85CA5E4 + .string "{STRING 15} STOCKPILED\n{STRING 0}!$" + +gText_PkmnCantStockpile:: @ 85CA5F6 + .string "{STRING 15} can’t\nSTOCKPILE any more!$" + +gText_PkmnCantSleepInUproar2:: @ 85CA613 + .string "But {STRING 16} can’t\nsleep in an UPROAR!$" + +gText_UproarKeptPkmnAwake:: @ 85CA634 + .string "But the UPROAR kept\n{STRING 16} awake!$" + +gText_PkmnStayedAwakeUsing:: @ 85CA652 + .string "{STRING 16} stayed awake\nusing its {STRING 25}!$" + +gText_PkmnStoringEnergy:: @ 85CA670 + .string "{STRING 15} is storing\nenergy!$" + +gText_PkmnUnleashedEnergy:: @ 85CA686 + .string "{STRING 15} unleashed\nenergy!$" + +gText_PkmnFatigueConfusion:: @ 85CA69B + .string "{STRING 15} became\nconfused due to fatigue!$" + +gText_PkmnPickedUpItem:: @ 85CA6BE + .string "{STRING 35} picked up\n¥{STRING 0}!\p$" + +gText_PkmnUnaffected:: @ 85CA6D1 + .string "{STRING 16} is\nunaffected!$" + +gText_PkmnTransformedInto:: @ 85CA6E3 + .string "{STRING 15} transformed\ninto {STRING 0}!$" + +gText_PkmnMadeSubstitute:: @ 85CA6FB + .string "{STRING 15} made\na SUBSTITUTE!$" + +gText_PkmnHasSubstitute:: @ 85CA711 + .string "{STRING 15} already\nhas a SUBSTITUTE!$" + +gText_SubstituteDamaged:: @ 85CA72E + .string "The SUBSTITUTE took damage\nfor {STRING 16}!\p$" + +gText_PkmnSubstituteFaded:: @ 85CA752 + .string "{STRING 16}’s\nSUBSTITUTE faded!\p$" + +gText_PkmnMustRecharge:: @ 85CA76A + .string "{STRING 15} must\nrecharge!$" + +gText_PkmnRageBuilding:: @ 85CA76C + .string "{STRING 16}’s RAGE\nis building!$" + +gText_PkmnMoveWasDisabled:: @ 85CA793 + .string "{STRING 16}’s {STRING 0}\nwas disabled!$" + +gText_PkmnMoveDisabledNoMore:: @ 85CA7A9 + .string "{STRING 15} is disabled\nno more!$" + +gText_PkmnGotEncore:: @ 85CA7C1 + .string "{STRING 16} got\nan ENCORE!$" + +gText_PkmnEncoreEnded:: @ 85CA7D3 + .string "{STRING 15}’s ENCORE\nended!$" + +gText_PkmnTookAim:: @ 85CA7E6 + .string "{STRING 15} took aim\nat {STRING 16}!$" + +gText_PkmnSketchedMove:: @ 85CA7F9 + .string "{STRING 15} SKETCHED\n{STRING 0}!$" + +gText_PkmnTryingToTakeFoe:: @ 85CA809 + .string "{STRING 15} is trying\nto take its foe with it!$" + +gText_PkmnTookFoe:: @ 85CA82F + .string "{STRING 16} took\n{STRING 15} with it!$" + +gText_PkmnReducedPP:: @ 85CA843 + .string "Reduced {STRING 16}’s\n{STRING 0} by {PLAYER}!$" + +gText_PkmnStoleItem:: @ 85CA85A + .string "{STRING 15} stole\n{STRING 16}’s {STRING 22}!$" + +gText_PkmnCantEscape:: @ 85CA86C + .string "{STRING 16} can’t\nescape now!$" + +gText_PkmnFellIntoNightmare:: @ 85CA881 + .string "{STRING 16} fell into\na NIGHTMARE!$" + +gText_PkmnLockedInNightmare:: @ 85CA89B + .string "{STRING 15} is locked\nin a NIGHTMARE!$" + +gText_PkmnLaidCurse:: @ 85CA8B8 + .string "{STRING 15} cut its own HP and\nlaid a CURSE on {STRING 16}!$" + +gText_PkmnAfflictedByCurse:: @ 85CA8E2 + .string "{STRING 15} is afflicted\nby the CURSE!$" + +gText_SpikesScattered:: @ 85CA900 + .string "SPIKES were scattered all around\nthe opponent’s side!$" + +gText_PkmnHurtBySpikes:: @ 85CA936 + .string "{STRING 19} is hurt\nby SPIKES!$" + +gText_PkmnIdentified:: @ 85CA94C + .string "{STRING 15} identified\n{STRING 16}!$" + +gText_PkmnPerishCountFell:: @ 85CA95E + .string "{STRING 15}’s PERISH count\nfell to {STRING 0}!$" + +gText_PkmnBracedItself:: @ 85CA97C + .string "{STRING 15} braced\nitself!$" + +gText_PkmnEnduredHit:: @ 85CA98E + .string "{STRING 16} ENDURED\nthe hit!$" + +gText_MagnitudeStrength:: @ 85CA9A2 + .string "MAGNITUDE {STRING 0}!$" + +gText_PkmnCutHPMaxedAttack:: @ 85CA9B0 + .string "{STRING 15} cut its own HP\nand maximized ATTACK!$" + +gText_PkmnCopiedStatChanges:: @ 85CA9D8 + .string "{STRING 15} copied\n{STRING 16}’s stat changes!$" + +gText_PkmnGotFree:: @ 85CA9F5 + .string "{STRING 15} got free of\n{STRING 16}’s {STRING 0}!$" + +gText_PkmnShedLeechSeed:: @ 85CAA0D + .string "{STRING 15} shed\nLEECH SEED!$" + +gText_PkmnBlewAwaySpikes:: @ 85CAA21 + .string "{STRING 15} blew away\nSPIKES!$" + +gText_PkmnFledFromBattle:: @ 85CAA36 + .string "{STRING 15} fled from\nbattle!$" + +gText_PkmnForesawAttack:: @ 85CAA4B + .string "{STRING 15} foresaw\nan attack!$" + +gText_PkmnTookAttack:: @ 85CAA61 + .string "{STRING 16} took the\n{STRING 0} attack!$" + +gText_PkmnChoseXAsDestiny:: @ 85CAA78 + .string "{STRING 15} chose\n{STRING 20} as its destiny!$" + +gText_PkmnAttack:: @ 85CAA94 + .string "{STRING 0}’s attack!$" + +gText_PkmnCenterAttention:: @ 85CAAA1 + .string "{STRING 15} became the\ncenter of attention!$" + +gText_PkmnChargingPower:: @ 85CAAC4 + .string "{STRING 15} began\ncharging power!$" + +gText_NaturePowerTurnedInto:: @ 85CAADD + .string "NATURE POWER turned into\n{STRING 20}!$" + +gText_PkmnStatusNormal:: @ 85CAAFA + .string "{STRING 15}’s status\nreturned to normal!$" + +gText_PkmnSubjectedToTorment:: @ 85CAB1A + .string "{STRING 16} was subjected\nto TORMENT!$" + +gText_PkmnTighteningFocus:: @ 85CAB37 + .string "{STRING 15} is tightening\nits focus!$" + +gText_PkmnFellForTaunt:: @ 85CAB53 + .string "{STRING 16} fell for\nthe TAUNT!$" + +gText_PkmnReadyToHelp:: @ 85CAB6A + .string "{STRING 15} is ready to\nhelp {STRING 16}!$" + +gText_PkmnSwitchedItems:: @ 85CAB82 + .string "{STRING 15} switched\nitems with its opponent!$" + +gText_PkmnObtainedX:: @ 85CABA7 + .string "{STRING 15} obtained\n{STRING 0}.$" + +gText_PkmnObtainedX2:: @ 85CABB7 + .string "{STRING 16} obtained\n{PLAYER}.$" + +gText_PkmnObtainedXYObtainedZ:: @ 85CABC7 + .string "{STRING 15} obtained\n{STRING 0}.\p{STRING 16} obtained\n{PLAYER}.$" + +gText_PkmnCopiedFoe:: @ 85CAB82 + .string "{STRING 15} copied\n{STRING 16}’s {STRING 25}!$" + +gText_PkmnMadeWish:: @ 85CABFA + .string "{STRING 15} made a WISH!$" + +gText_PkmnWishCameTrue:: @ 85CAC0A + .string "{STRING 0}’s WISH\ncame true!$" + +gText_PkmnPlantedRoots:: @ 85CAC1F + .string "{STRING 15} planted its roots!$" + +gText_PkmnAbsorbedNutrients:: @ 85CAC35 + .string "{STRING 15} absorbed\nnutrients with its roots!$" + +gText_PkmnAnchoredItself:: @ 85CAC5B + .string "{STRING 16} anchored\nitself with its roots!$" + +gText_PkmnWasMadeDrowsy:: @ 85CAC7E + .string "{STRING 15} made\n{STRING 16} drowsy!$" + +gText_PkmnKnockedOff:: @ 85CAC91 + .string "{STRING 15} knocked off\n{STRING 16}’s {STRING 22}!$" + +gText_PkmnSwappedAbilities:: @ 85CACA9 + .string "{STRING 15} swapped abilities\nwith its opponent!$" + +gText_PkmnSealedOpponentMove:: @ 85CACD1 + .string "{STRING 15} sealed the\nopponent’s move(s)!$" + +gText_PkmnWantsGrudge:: @ 85CACF3 + .string "{STRING 15} wants the\nopponent to bear a GRUDGE!$" + +gText_PkmnLostPPGrudge:: @ 85CAD1B + .string "{STRING 15}’s {STRING 0} lost\nall its PP due to the GRUDGE!$" + +gText_PkmnShroudedItself:: @ 85CAD46 + .string "{STRING 15} shrouded\nitself in {STRING 20}!$" + +gText_PkmnMoveBounced:: @ 85CAD60 + .string "{STRING 15}’s {STRING 20}\nwas bounced back by MAGIC COAT!$" + +gText_PkmnWaitsForTarget:: @ 85CAD88 + .string "{STRING 15} waits for a target\nto make a move!$" + +gText_PkmnSnatchedMove:: @ 85CADAE + .string "{STRING 16} SNATCHED\n{STRING 19}’s move!$" + +gText_ElectricityWeakened:: @ 85CADC5 + .string "Electricity’s power was\nweakened!$" + +gText_FireWeakened:: @ 85CADE7 + .string "Fire’s power was\nweakened!$" + +gText_XFoundOneY:: @ 85CAE02 + .string "{STRING 15} found\none {STRING 22}!$" + +gText_SoothingAroma:: @ 85CAE13 + .string "A soothing aroma wafted\nthrough the area!$" + +gText_ItemsCantBeUsedNow:: @ 85CAE3D + .string "Items can’t be used now.{PAUSE 64}$" + +gText_ForXCommaYZ:: @ 85CAE59 + .string "For {STRING 19},\n{STRING 22} {STRING 0}$" + +gText_PkmnUsedXToGetPumped:: @ 85CAE67 + .string "{STRING 19} used\n{STRING 22} to get pumped!$" + +gText_PkmnLostFocus:: @ 85CAE81 + .string "{STRING 15} lost its\nfocus and couldn’t move!$" + +gText_PkmnWasDraggedOut:: @ 85CAEA6 + .string "{STRING 16} was\ndragged out!\p$" + +gText_TheWallShattered:: @ 85CAEBB + .string "The wall shattered!$" + +gText_ButNoEffect:: @ 85CAECF + .string "But it had no effect!$" + +gText_PkmnHasNoMovesLeft:: @ 85CAEE5 + .string "{STRING 18} has no\nmoves left!\p$" + +gText_PkmnMoveIsDisabled:: @ 85CAEFC + .string "{STRING 18}’s {STRING 20}\nis disabled!\p$" + +gText_PkmnCantUseMoveTorment:: @ 85CAF12 + .string "{STRING 18} can’t use the same\nmove in a row due to the TORMENT!\p$" + +gText_PkmnCantUseMoveTaunt:: @ 85CAF4B + .string "{STRING 18} can’t use\n{STRING 20} after the TAUNT!\p$" + +gText_PkmnCantUseMoveSealed:: @ 85CAF6D + .string "{STRING 18} can’t use the\nsealed {STRING 20}!\p$" + +gText_PkmnMadeItRain:: @ 85CAF8A + .string "{STRING 19}’s {STRING 26}\nmade it rain!$" + +gText_PkmnRaisedSpeed:: @ 85CAFA0 + .string "{STRING 19}’s {STRING 26}\nraised its SPEED!$" + +gText_PkmnProtectedBy:: @ 85CAFBA + .string "{STRING 16} was protected\nby {STRING 25}!$" + +gText_PkmnPreventsUsage:: @ 85CAFD2 + .string "{STRING 16}’s {STRING 25}\nprevents {STRING 15}\lfrom using {STRING 20}!$" + +gText_PkmnRestoredHPUsing:: @ 85CAFF5 + .string "{STRING 16} restored HP\nusing its {STRING 25}!$" + +gText_PkmnsXMadeYUseless:: @ 85CB012 + .string "{STRING 16}’s {STRING 25}\nmade {STRING 20} useless!$" + +gText_PkmnChangedTypeWith:: @ 85CB02B + .string "{STRING 16}’s {STRING 25}\nmade it the {STRING 0} type!$" + +gText_PkmnPreventsParalysisWith:: @ 85CB048 + .string "{STRING 17}’s {STRING 25}\nprevents paralysis!$" + +gText_PkmnPreventsRomanceWith:: @ 85CB064 + .string "{STRING 16}’s {STRING 25}\nprevents romance!$" + +gText_PkmnPreventsPoisoningWith:: @ 85CB07E + .string "{STRING 17}’s {STRING 25}\nprevents poisoning!$" + +gText_PkmnPreventsConfusionWith:: @ 85CB09A + .string "{STRING 16}’s {STRING 25}\nprevents confusion!$" + +gText_PkmnRaisedFirePowerWith:: @ 85CB0B6 + .string "{STRING 16}’s {STRING 25}\nraised its FIRE power!$" + +gText_PkmnAnchorsItselfWith:: @ 85CB0D5 + .string "{STRING 16} anchors\nitself with {STRING 25}!$" + +gText_PkmnCutsAttackWith:: @ 85CB0F0 + .string "{STRING 19}’s {STRING 26}\ncuts {STRING 16}’s ATTACK!$" + +gText_PkmnPreventsStatLossWith:: @ 85CB10A + .string "{STRING 19}’s {STRING 26}\nprevents stat loss!$" + +gText_PkmnHurtsWith:: @ 85CB126 + .string "{STRING 16}’s {STRING 25}\nhurt {STRING 15}!$" + +gText_PkmnTraced:: @ 85CB137 + .string "{STRING 19} TRACED\n{STRING 0}’s {PLAYER}!$" + +gText_PkmnsXPreventsBurns:: @ 85CB14A + .string "{STRING 17}’s {STRING 27}\nprevents burns!$" + +gText_PkmnsXBlocksY:: @ 85CB162 + .string "{STRING 16}’s {STRING 25}\nblocks {STRING 20}!$" + +gText_PkmnsXBlocksY2:: @ 85CB175 + .string "{STRING 19}’s {STRING 26}\nblocks {STRING 20}!$" + +gText_PkmnsXRestoredHPALittle2:: @ 85CB188 + .string "{STRING 15}’s {STRING 24}\nrestored its HP a little!$" + +gText_PkmnsXWhippedUpSandstorm:: @ 85CB1AA + .string "{STRING 19}’s {STRING 26}\nwhipped up a sandstorm!$" + +gText_PkmnsXIntensifiedSun:: @ 85CB1CA + .string "{STRING 19}’s {STRING 26}\nintensified the sun’s rays!$" + +gText_PkmnsXPreventsYLoss:: @ 85CB1EE + .string "{STRING 19}’s {STRING 26}\nprevents {STRING 0} loss!$" + +gText_PkmnsXInfatuatedY:: @ 85CB208 + .string "{STRING 16}’s {STRING 25}\ninfatuated {STRING 15}!$" + +gText_PkmnsXMadeYIneffective:: @ 85CB21F + .string "{STRING 16}’s {STRING 25}\nmade {STRING 20} ineffective!$" + +gText_PkmnsXCuredYProblem:: @ 85CB23C + .string "{STRING 19}’s {STRING 26}\ncured its {STRING 0} problem!$" + +gText_ItSuckedLiquidOoze:: @ 85CB25A + .string "It sucked up the\nLIQUID OOZE!$" + +gText_PkmnTransformed:: @ 85CB278 + .string "{STRING 19} transformed!$" + +gText_PkmnsXTookAttack:: @ 85CB288 + .string "{STRING 16}’s {STRING 25}\ntook the attack!$" + +gText_PkmnsXPreventsSwitching:: @ 85CB2A1 + .string "{STRING 0}’s {STRING 23}\nprevents switching!\p$" + +gText_PreventedFromWorking:: @ 85CB2BE + .string "{STRING 16}’s {STRING 25}\nprevented {STRING 19}’s\l{STRING 0} from working!$" + +gText_PkmnsXMadeItIneffective:: @ 85CB2E6 + .string "{STRING 19}’s {STRING 26}\nmade it ineffective!$" + +gText_PkmnsXPreventsFlinching:: @ 85CB303 + .string "{STRING 17}’s {STRING 27}\nprevents flinching!$" + +gText_PkmnsXPreventsYsZ:: @ 85CB31F + .string "{STRING 15}’s {STRING 24}\nprevents {STRING 16}’s\l{STRING 25} from working!$" + +gText_PkmnsXCuredItsYProblem:: @ 85CB346 + .string "{STRING 19}’s {STRING 26}\ncured its {STRING 0} problem!$" + +gText_PkmnsXHadNoEffectOnY:: @ 85CB364 + .string "{STRING 19}’s {STRING 26}\nhad no effect on {STRING 17}!$" + +gText_StatSharply:: @ 85CB381 + .string "sharply $" + +gText_StatRose:: @ 85CB38A + .string "rose!$" + +gText_StatHarshly:: @ 85CB390 + .string "harshly $" + +gText_StatFell:: @ 85CB399 + .string "fell!$" + +gText_PkmnsStatChanged:: @ 85CB39F + .string "{STRING 15}’s {STRING 0}\n{PLAYER}$" + +gText_PkmnsStatChanged2:: @ 85CB3AA + .string "{STRING 16}’s {STRING 0}\n{PLAYER}$" + +gText_UsingXTheYOfZN:: @ 85CB3B5 + .string "Using {STRING 22}, the {STRING 0}\nof {STRING 19} {PLAYER}$" + +gText_PkmnsStatChanged3:: @ 85CB3CF + .string "{STRING 15}’s {STRING 0}\n{PLAYER}$" + +gText_PkmnsStatChanged4:: @ 85CB3DA + .string "{STRING 16}’s {STRING 0}\n{PLAYER}$" + +gText_StatsWontIncrease2:: @ 85CB3E5 + .string "{STRING 15}’s stats won’t\ngo any higher!$" + +gText_StatsWontDecrease2:: @ 85CB405 + .string "{STRING 16}’s stats won’t\ngo any lower!$" + +gText_CriticalHit:: @ 85CB424 + .string "A critical hit!$" + +gText_OneHitKO:: @ 85CB434 + .string "It’s a one-hit KO!$" + +gText_123Poof:: @ 85CB447 + .string "{PAUSE 32}1, {PAUSE 15}2, and{PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE 0x0038}Poof!\p$" + +gText_AndEllipsis:: @ 85CB473 + .string "And…\p$" + +gText_HMMovesCantBeForgotten:: @ 85CB479 + .string "HM moves can’t be\nforgotten now.\p$" + +gText_NotVeryEffective:: @ 85CB49B + .string "It’s not very effective…$" + +gText_SuperEffective:: @ 85CB4B4 + .string "It’s super effective!$" + +gText_GotAwaySafely:: @ 85CB4CA + .string "{PLAY_SE 0x0011}Got away safely!\p$" + +gText_PkmnFledUsingIts:: @ 85CB4E0 + .string "{PLAY_SE 0x0011}{STRING 15} fled\nusing its {STRING 22}!\p$" + +gText_PkmnFledUsing:: @ 85CB4FB + .string "{PLAY_SE 0x0011}{STRING 15} fled\nusing {STRING 24}!\p$" + +gText_WildPkmnFled:: @ 85CB512 + .string "{PLAY_SE 0x0011}Wild {STRING 0} fled!$" + +gText_PlayerDefeated:: @ 85CB524 + .string "Player defeated\n{STRING 32}!$" + +gText_PlayerBeatTwo:: @ 85CB538 + .string "Player beat {STRING 32}\nand {STRING 33}!$" + +gText_PlayerLostAgainst:: @ 85CB54F + .string "Player lost against\n{STRING 32}!$" + +gText_PlayerLostToTwo:: @ 85CB567 + .string "Player lost to {STRING 32}\nand {STRING 33}!$" + +gText_PlayerBattledToDraw:: @ 85CB581 + .string "Player battled to a draw against\n{STRING 32}!$" + +gText_PlayerBattledToDrawVsTwo:: @ 85CB5A6 + .string "Player battled to a draw against\n{STRING 32} and {STRING 33}!$" + +gText_WildFled:: @ 85CB5D2 + .string "{PLAY_SE 0x0011}{STRING 32} fled!$" + +gText_TwoWildFled:: @ 85CB5DF + .string "{PLAY_SE 0x0011}{STRING 32} and\n{STRING 33} fled!$" + +gText_NoRunningFromTrainers:: @ 85CB5F3 + .string "No! There’s no running\nfrom a TRAINER battle!\p$" + +gText_CantEscape:: @ 85CB622 + .string "Can’t escape!\p$" + +gText_DontLeaveBirch:: @ 85CB631 + .string "PROF. BIRCH: Don’t leave me like this!\p$" + +gText_ButNothingHappened:: @ 85CB659 + .string "But nothing happened!$" + +gText_ButItFailed:: @ 85CB66F + .string "But it failed!$" + +gText_ItHurtConfusion:: @ 85CB67E + .string "It hurt itself in its\nconfusion!$" + +gText_MirrorMoveFailed:: @ 85CB69F + .string "The MIRROR MOVE failed!$" + +gText_StartedToRain:: @ 85CB6B7 + .string "It started to rain!$" + +gText_DownpourStarted:: @ 85CB6CB + .string "A downpour started!$" + +gText_RainContinues:: @ 85CB6DF + .string "Rain continues to fall.$" + +gText_DownpourContinues:: @ 85CB6F7 + .string "The downpour continues.$" + +gText_RainStopped:: @ 85CB70F + .string "The rain stopped.$" + +gText_SandstormBrewed:: @ 85CB721 + .string "A sandstorm brewed!$" + +gText_SandstormRages:: @ 85CB735 + .string "The sandstorm rages.$" + +gText_SandstormSubsided:: @ 85CB74A + .string "The sandstorm subsided.$" + +gText_SunlightGotBright:: @ 85CB762 + .string "The sunlight got bright!$" + +gText_SunlightStrong:: @ 85CB77B + .string "The sunlight is strong.$" + +gText_SunlightFaded:: @ 85CB793 + .string "The sunlight faded.$" + +gText_StartedHail:: @ 85CB7A7 + .string "It started to hail!$" + +gText_HailContinues:: @ 85CB7BB + .string "Hail continues to fall.$" + +gText_HailStopped:: @ 85CB7D3 + .string "The hail stopped.$" + +gText_FailedToSpitUp:: @ 85CB7E5 + .string "But it failed to SPIT UP\na thing!$" + +gText_FailedToSwallow:: @ 85CB807 + .string "But it failed to SWALLOW\na thing!$" + +gText_WindBecameHeatWave:: @ 85CB829 + .string "The wind turned into a\nHEAT WAVE!$" + +gText_StatChangesGone:: @ 85CB84B + .string "All stat changes were\neliminated!$" + +gText_CoinsScattered:: @ 85CB86D + .string "Coins scattered everywhere!$" + +gText_TooWeakForSubstitute:: @ 85CB889 + .string "It was too weak to make\na SUBSTITUTE!$" + +gText_SharedPain:: @ 85CB8AF + .string "The battlers shared\ntheir pain!$" + +gText_BellChimed:: @ 85CB8CF + .string "A bell chimed!$" + +gText_FaintInThree:: @ 85CB8DE + .string "All affected POKéMON will\nfaint in three turns!$" + +gText_NoPPLeft:: @ 85CB90E + .string "There’s no PP left for\nthis move!\p$" + +gText_ButNoPPLeft:: @ 85CB931 + .string "But there was no PP left\nfor the move!$" + +gText_PkmnIgnoresAsleep:: @ 85CB958 + .string "{STRING 15} ignored\norders while asleep!$" + +gText_PkmnIgnoredOrders:: @ 85CB978 + .string "{STRING 15} ignored\norders!$" + +gText_PkmnBeganToNap:: @ 85CB98B + .string "{STRING 15} began to nap!$" + +gText_PkmnLoafing:: @ 85CB99C + .string "{STRING 15} is\nloafing around!$" + +gText_PkmnWontObey:: @ 85CB9B2 + .string "{STRING 15} won’t\nobey!$" + +gText_PkmnTurnedAway:: @ 85CB9C1 + .string "{STRING 15} turned away!$" + +gText_PkmnPretendNotNotice:: @ 85CB9D1 + .string "{STRING 15} pretended\nnot to notice!$" + +gText_EnemyAboutToSwitchPkmn:: @ 85CB9ED + .string "{STRING 28} {STRING 29} is\nabout to use {PLAYER}.\pWill {STRING 35} change\nPOKéMON?$" + +gText_PkmnLearnedMove2:: @ 85CBA1F + .string "{STRING 15} learned\n{STRING 0}!$" + +gText_PlayerDefeatedXY:: @ 85CBA2E + .string "Player defeated\n{STRING 28} {STRING 29}!\p$" + +gText_CreptCloser:: @ 85CBA46 + .string "{STRING 35} crept closer to\n{RIVAL}!$" + +gText_CantGetCloser:: @ 85CBA5D + .string "{STRING 35} can’t get any closer!$" + +gText_PkmnWatchingCarefully:: @ 85CBA76 + .string "{RIVAL} is watching\ncarefully!$" + +gText_PkmnCuriousAboutX:: @ 85CBA90 + .string "{RIVAL} is curious about\nthe {STRING 0}!$" + +gText_PkmnEnthralledByX:: @ 85CBAAC + .string "{RIVAL} is enthralled by\nthe {STRING 0}!$" + +gText_PkmnIgnoredX:: @ 85CBAC8 + .string "{RIVAL} completely ignored\nthe {STRING 0}!$" + +gText_ThrewPokeblockAtPkmn:: @ 85CBAE6 + .string "{STRING 35} threw a {POKEBLOCK}\nat the {RIVAL}!$" + +gText_OutOfSafariBalls:: @ 85CBB02 + .string "{PLAY_SE 0x0049}ANNOUNCER: You’re out of\nSAFARI BALLS! Game over!\p$" + + .string "{RIVAL} appeared!\p$" + +gText_WildPkmnAppeared:: @ 85CBB47 + .string "Wild {RIVAL} appeared!\p$" + +gText_WildPkmnAppeared2:: @ 85CBB5A + .string "Wild {RIVAL} appeared!\p$" + +gText_WildPkmnAppearedPause:: @ 85CBB6D + .string "Wild {RIVAL} appeared!{PAUSE 127}$" + +gText_TwoWildPkmnAppeared:: @ 85CBB82 + .string "Wild {RIVAL} and\n{AQUA} appeared!\p$" + +gText_TrainerXYWantsToBattle:: @ 85CBB9C + .string "{STRING 28} {STRING 29}\nwould like to battle!\p$" + +gText_TrainerXWantsToBattle:: @ 85CBBB9 + .string "{STRING 32}\nwants to battle!$" + +gText_TwoTrainersWantToBattle:: @ 85CBBCD + .string "{STRING 32} and {STRING 33}\nwant to battle!$" + +gText_TrainerXYSentOutPkmn:: @ 85CBBE7 + .string "{STRING 28} {STRING 29} sent\nout {RIVAL}!$" + +gText_TrainerXYSentOutTwoPkmn:: @ 85CBBFA + .string "{STRING 28} {STRING 29} sent\nout {RIVAL} and {AQUA}!$" + +gText_TrainerXYSentOutPkmn2:: @ 85CBC14 + .string "{STRING 28} {STRING 29} sent\nout {STRING 0}!$" + +gText_TrainerXSentOutPkmn:: @ 85CBC27 + .string "{STRING 32} sent out\n{RIVAL}!$" + +gText_TrainerXSentOutTwoPkmn:: @ 85CBC37 + .string "{STRING 32} sent out\n{RIVAL} and {AQUA}!$" + +gText_TwoTrainersSentOutPkmn:: @ 85CBC4E + .string "{STRING 32} sent out {STRING 10}!\n{STRING 33} sent out {STRING 12}!$" + +gText_TrainerXSentOutPkmn2:: @ 85CBC6E + .string "{STRING 32} sent out\n{STRING 0}!$" + +gText_TrainerXSentOutPkmn3:: @ 85CBC7E + .string "{STRING 34} sent out\n{STRING 0}!$" + +gText_GoPkmn:: @ 85CBC8E + .string "Go! {STRING 5}!$" + +gText_GoTwoPkmn:: @ 85CBC96 + .string "Go! {STRING 5} and\n{VERSION}!$" + +gText_GoPkmn2:: @ 85CBCA5 + .string "Go! {STRING 0}!$" + +gText_DoItPkmn:: @ 85CBCAD + .string "Do it! {STRING 0}!$" + +gText_GoForItPkmn:: @ 85CBCB8 + .string "Go for it, {STRING 0}!$" + +gText_YourFoesWeakGetEmPkmn:: @ 85CBCC7 + .string "Your foe’s weak!\nGet ’em, {STRING 0}!$" + +gText_EnemySentOutPkmnGoPkmn:: @ 85CBCE5 + .string "{STRING 31} sent out {STRING 11}!\nGo! {STRING 9}!$" + +gText_PkmnThatsEnough:: @ 85CBCFD + .string "{STRING 0}, that’s enough!\nCome back!$" + +gText_PkmnComeBack:: @ 85CBD1B + .string "{STRING 0}, come back!$" + +gText_PkmnOkComeBack:: @ 85CBD2A + .string "{STRING 0}, OK!\nCome back!$" + +gText_PkmnGoodComeBack:: @ 85CBD3D + .string "{STRING 0}, good!\nCome back!$" + +gText_TrainerXYWithdrewPkmn:: @ 85CBD52 + .string "{STRING 28} {STRING 29}\nwithdrew {STRING 0}!$" + +gText_TrainerXWithdrewPkmn:: @ 85CBD65 + .string "{STRING 32} withdrew\n{STRING 0}!$" + +gText_TrainerXWithdrewPkmn2:: @ 85CBD75 + .string "{STRING 34} withdrew\n{STRING 0}!$" + +gText_WildPkmnPrefix:: @ 85CBD85 + .string "Wild $" + +gText_FoePkmnPrefix:: @ 85CBD8B + .string "Foe $" + + .string "$" + +gText_FoePkmnPrefix2:: @ 85CBD91 + .string "Foe$" + +gText_AllyPkmnPrefix:: @ 85CBD95 + .string "Ally$" + +gText_FoePkmnPrefix3:: @ 85CBD9A + .string "Foe$" + +gText_AllyPkmnPrefix2:: @ 85CBD9E + .string "Ally$" + +gText_FoePkmnPrefix4:: @ 85CBDA3 + .string "Foe$" + +gText_AllyPkmnPrefix3:: @ 85CBDA7 + .string "Ally$" + +gText_XUsedY2:: @ 85CBDAC + .string "{STRING 15} used\n{PLAYER}$" + +gText_ExclamationMark:: @ 85CBDB7 + .string "!$" + +gText_ExclamationMark2:: @ 85CBDB9 + .string "!$" + +gText_ExclamationMark3:: @ 85CBDBB + .string "!$" + +gText_ExclamationMark4:: @ 85CBDBD + .string "!$" + +gText_ExclamationMark5:: @ 85CBDBF + .string "!$" + +gText_HP2:: @ 85CBDC1 + .string "HP$" + +gText_Attack2:: @ 85CBDC4 + .string "ATTACK$" + +gText_Defense2:: @ 85CBDCB + .string "DEFENSE$" + +gText_Speed:: @ 85CBDD3 + .string "SPEED$" + +gText_SpAtk2:: @ 85CBDD9 + .string "SP. ATK$" + +gText_SpDef2:: @ 85CBDE1 + .string "SP. DEF$" + +gText_Accuracy:: @ 85CBDE9 + .string "accuracy$" + +gText_Evasiveness:: @ 85CBDF2 + .string "evasiveness$" + + .align 2 gStatNamesTable:: @ 85CBE00 - .incbin "baserom.gba", 0x5cbe00, 0x6c + .4byte gText_HP2 + .4byte gText_Attack2 + .4byte gText_Defense2 + .4byte gText_Speed + .4byte gText_SpAtk2 + .4byte gText_SpDef2 + .4byte gText_Accuracy + .4byte gText_Evasiveness -gUnknown_085CBE6C:: @ 85CBE6C - .incbin "baserom.gba", 0x5cbe6c, 0x1a9 +gText_PokeblockWasTooSpicy:: @ 85CBE20 + .string "was too spicy!$" + +gText_PokeblockWasTooDry:: @ 85CBE2F + .string "was too dry!$" + +gText_PokeblockWasTooSweet:: @ 85CBE3C + .string "was too sweet!$" + +gText_PokeblockWasTooBitter:: @ 85CBE4B + .string "was too bitter!$" + +gText_PokeblockWasTooSour:: @ 85CBE5B + .string "was too sour!$" + + .align 2 +gPokeblockWasTooXStringTable:: @ 85CBE6C + .4byte gText_PokeblockWasTooSpicy + .4byte gText_PokeblockWasTooDry + .4byte gText_PokeblockWasTooSweet + .4byte gText_PokeblockWasTooBitter + .4byte gText_PokeblockWasTooSour + +gText_XUsedY:: @ 85CBE80 + .string "{STRING 35} used\n{STRING 22}!$" + +gText_WallyUsedY:: @ 85CBE8C + .string "WALLY used\n{STRING 22}!$" + +gText_XYUsedZ:: @ 85CBE9B + .string "{STRING 28} {STRING 29}\nused {STRING 22}!$" + +gText_TrainerBlockedBall:: @ 85CBEAA + .string "The TRAINER blocked the BALL!$" + +gText_DontBeAThief:: @ 85CBEC8 + .string "Don’t be a thief!$" + +gText_ItDodgedBall:: @ 85CBEDA + .string "It dodged the thrown BALL!\nThis POKéMON can’t be caught!$" + +gText_YouMissedPkmn:: @ 85CBF13 + .string "You missed the POKéMON!$" + +gText_PkmnBrokeFree:: @ 85CBF2B + .string "Oh, no!\nThe POKéMON broke free!$" + +gText_ItAppearedCaught:: @ 85CBF4B + .string "Aww!\nIt appeared to be caught!$" + +gText_AarghAlmostHadIt:: @ 85CBF6A + .string "Aargh!\nAlmost had it!$" + +gText_ShootSoClose:: @ 85CBF80 + .string "Shoot!\nIt was so close, too!$" + +gText_GotchaPkmnCaught:: @ 85CBF9D + .string "Gotcha!\n{RIVAL} was caught!{UNKNOWN_A}{PLAY_BGM BGM_KACHI22}\p$" + +gText_GotchaPkmnCaught2:: @ 85CBFBB + .string "Gotcha!\n{RIVAL} was caught!{UNKNOWN_A}{PLAY_BGM BGM_KACHI22}{PAUSE 127}$" + +gText_GiveNicknameCaptured:: @ 85CBFDB + .string "Give a nickname to the\ncaptured {RIVAL}?$" + +gText_PkmnSentToPC:: @ 85CBFFF + .string "{RIVAL} was sent to\n{STRING 39} PC.$" + +gText_Someones:: @ 85CC015 + .string "someone’s$" + +gText_Lanettes:: @ 85CC01F + .string "LANETTE’s$" + +gText_PkmnDataAddedToDex:: @ 85CC029 + .string "{RIVAL}’s data was\nadded to the POKéDEX.\p$" + +gText_ItIsRaining:: @ 85CC04E + .string "It is raining.$" + +gText_SandstormIsRaging:: @ 85CC05D + .string "A sandstorm is raging.$" + +gText_BoxIsFull:: @ 85CC074 + .string "The BOX is full!\nYou can’t catch any more!\p$" + +gText_EnigmaBerry:: @ 85CC0A0 + .string "ENIGMA BERRY$" + +gText_BerrySuffix:: @ 85CC0AD + .string " BERRY$" + +gText_PkmnsXCuredParalysis:: @ 85CC0B4 + .string "{STRING 19}’s {STRING 22}\ncured paralysis!$" + +gText_PkmnsXCuredPoison:: @ 85CC0CD + .string "{STRING 19}’s {STRING 22}\ncured poison!$" + +gText_PkmnsXHealedBurn:: @ 85CC0E3 + .string "{STRING 19}’s {STRING 22}\nhealed its burn!$" + +gText_PkmnsXDefrostedIt:: @ 85CC0FC + .string "{STRING 19}’s {STRING 22}\ndefrosted it!$" + +gText_PkmnsXWokeIt:: @ 85CC112 + .string "{STRING 19}’s {STRING 22}\nwoke it from its sleep!$" + +gText_PkmnsXSnappedOut:: @ 85CC132 + .string "{STRING 19}’s {STRING 22}\nsnapped it out of confusion!$" + +gText_PkmnsXCuredProblem:: @ 85CC157 + .string "{STRING 19}’s {STRING 22}\ncured its {STRING 0} problem!$" + +gText_PkmnsXNormalizedStatus:: @ 85CC175 + .string "{STRING 19}’s {STRING 22}\nnormalized its status!$" + +gText_PkmnsXRestoredHealth:: @ 85CC194 + .string "{STRING 19}’s {STRING 22}\nrestored health!$" + +gText_PkmnsXRestoredPP:: @ 85CC1AD + .string "{STRING 19}’s {STRING 22}\nrestored {STRING 0}’s PP!$" + +gText_PkmnsXRestoredStatus:: @ 85CC1C7 + .string "{STRING 19}’s {STRING 22}\nrestored its status!$" + +gText_PkmnsXRestoredHPALittle:: @ 85CC1E4 + .string "{STRING 19}’s {STRING 22}\nrestored its HP a little!$" + +gText_XAllowsOnlyY:: @ 85CC206 + .string "{STRING 22} allows the\nuse of only {STRING 20}!\p$" + +gText_PkmnHungOnWithX:: @ 85CC225 + .string "{STRING 16} hung on\nusing its {STRING 22}!$" + +gText_EmptyString3:: @ 85CC23E + .string "$" + +gText_YouThrowABallNowRight:: @ 85CC23F + .string "You throw a BALL now, right?\nI… I’ll do my best!$" + + .align 2 +gBattleStringsTable:: @ 85CC270 + .4byte gText_Buffer36 + .4byte gText_PkmnGainedEXP + .4byte gText_PkmnGrewToLv + .4byte gText_PkmnLearnedMove + .4byte gText_TryToLearnMove1 + .4byte gText_TryToLearnMove2 + .4byte gText_TryToLearnMove3 + .4byte gText_PkmnForgotMove + .4byte gText_StopLearningMove + .4byte gText_DidNotLearnMove + .4byte gText_PkmnLearnedMove2 + .4byte gText_AttackMissed + .4byte gText_PkmnProtectedItself + .4byte gText_StatsWontIncrease2 + .4byte gText_AvoidedDamage + .4byte gText_ItDoesntAffect + .4byte gText_PkmnFainted + .4byte gText_PkmnFainted2 + .4byte gText_PlayerGotMoney + .4byte gText_PlayerWhiteout + .4byte gText_PlayerWhiteout2 + .4byte gText_PreventsEscape + .4byte gText_HitXTimes + .4byte gText_PkmnFellAsleep + .4byte gText_PkmnMadeSleep + .4byte gText_PkmnAlreadyAsleep + .4byte gText_PkmnAlreadyAsleep2 + .4byte gText_PkmnWasntAffected + .4byte gText_PkmnWasPoisoned + .4byte gText_PkmnPoisonedBy + .4byte gText_PkmnHurtByPoison + .4byte gText_PkmnAlreadyPoisoned + .4byte gText_PkmnBadlyPoisoned + .4byte gText_PkmnEnergyDrained + .4byte gText_PkmnWasBurned + .4byte gText_PkmnBurnedBy + .4byte gText_PkmnHurtByBurn + .4byte gText_PkmnWasFrozen + .4byte gText_PkmnFrozenBy + .4byte gText_PkmnIsFrozen + .4byte gText_PkmnWasDefrosted + .4byte gText_PkmnWasDefrosted2 + .4byte gText_PkmnWasDefrostedBy + .4byte gText_PkmnWasParalyzed + .4byte gText_PkmnWasParalyzedBy + .4byte gText_PkmnIsParalyzed + .4byte gText_PkmnIsAlreadyParalyzed + .4byte gText_PkmnHealedParalysis + .4byte gText_PkmnDreamEaten + .4byte gText_StatsWontIncrease + .4byte gText_StatsWontDecrease + .4byte gText_TeamStoppedWorking + .4byte gText_FoeStoppedWorking + .4byte gText_PkmnIsConfused + .4byte gText_PkmnHealedConfusion + .4byte gText_PkmnWasConfused + .4byte gText_PkmnAlreadyConfused + .4byte gText_PkmnFellInLove + .4byte gText_PkmnInLove + .4byte gText_PkmnImmobilizedByLove + .4byte gText_PkmnBlownAway + .4byte gText_PkmnChangedType + .4byte gText_PkmnFlinched + .4byte gText_PkmnRegainedHealth + .4byte gText_PkmnHPFull + .4byte gText_PkmnRaisedSpDef + .4byte gText_PkmnRaisedDef + .4byte gText_PkmnCoveredByVeil + .4byte gText_PkmnUsedSafeguard + .4byte gText_PkmnSafeguardExpired + .4byte gText_PkmnWentToSleep + .4byte gText_PkmnSleptHealthy + .4byte gText_PkmnWhippedWhirlwind + .4byte gText_PkmnTookSunlight + .4byte gText_PkmnLoweredHead + .4byte gText_PkmnIsGlowing + .4byte gText_PkmnFlewHigh + .4byte gText_PkmnDugHole + .4byte gText_PkmnSqueezedByBind + .4byte gText_PkmnTrappedInVortex + .4byte gText_PkmnWrappedBy + .4byte gText_PkmnClamped + .4byte gText_PkmnHurtBy + .4byte gText_PkmnFreedFrom + .4byte gText_PkmnCrashed + .4byte gText_PkmnShroudedInMist + .4byte gText_PkmnProtectedByMist + .4byte gText_PkmnGettingPumped + .4byte gText_PkmnHitWithRecoil + .4byte gText_PkmnProtectedItself2 + .4byte gText_PkmnBuffetedBySandstorm + .4byte gText_PkmnPeltedByHail + .4byte gText_PkmnSeeded + .4byte gText_PkmnEvadedAttack + .4byte gText_PkmnSappedByLeechSeed + .4byte gText_PkmnFastAsleep + .4byte gText_PkmnWokeUp + .4byte gText_PkmnUproarKeptAwake + .4byte gText_PkmnWokeUpInUproar + .4byte gText_PkmnCausedUproar + .4byte gText_PkmnMakingUproar + .4byte gText_PkmnCalmedDown + .4byte gText_PkmnCantSleepInUproar + .4byte gText_PkmnStockpiled + .4byte gText_PkmnCantStockpile + .4byte gText_PkmnCantSleepInUproar2 + .4byte gText_UproarKeptPkmnAwake + .4byte gText_PkmnStayedAwakeUsing + .4byte gText_PkmnStoringEnergy + .4byte gText_PkmnUnleashedEnergy + .4byte gText_PkmnFatigueConfusion + .4byte gText_PkmnPickedUpItem + .4byte gText_PkmnUnaffected + .4byte gText_PkmnTransformedInto + .4byte gText_PkmnMadeSubstitute + .4byte gText_PkmnHasSubstitute + .4byte gText_SubstituteDamaged + .4byte gText_PkmnSubstituteFaded + .4byte gText_PkmnMustRecharge + .4byte gText_PkmnRageBuilding + .4byte gText_PkmnMoveWasDisabled + .4byte gText_PkmnMoveIsDisabled + .4byte gText_PkmnMoveDisabledNoMore + .4byte gText_PkmnGotEncore + .4byte gText_PkmnEncoreEnded + .4byte gText_PkmnTookAim + .4byte gText_PkmnSketchedMove + .4byte gText_PkmnTryingToTakeFoe + .4byte gText_PkmnTookFoe + .4byte gText_PkmnReducedPP + .4byte gText_PkmnStoleItem + .4byte gText_PkmnCantEscape + .4byte gText_PkmnFellIntoNightmare + .4byte gText_PkmnLockedInNightmare + .4byte gText_PkmnLaidCurse + .4byte gText_PkmnAfflictedByCurse + .4byte gText_SpikesScattered + .4byte gText_PkmnHurtBySpikes + .4byte gText_PkmnIdentified + .4byte gText_PkmnPerishCountFell + .4byte gText_PkmnBracedItself + .4byte gText_PkmnEnduredHit + .4byte gText_MagnitudeStrength + .4byte gText_PkmnCutHPMaxedAttack + .4byte gText_PkmnCopiedStatChanges + .4byte gText_PkmnGotFree + .4byte gText_PkmnShedLeechSeed + .4byte gText_PkmnBlewAwaySpikes + .4byte gText_PkmnFledFromBattle + .4byte gText_PkmnForesawAttack + .4byte gText_PkmnTookAttack + .4byte gText_PkmnAttack + .4byte gText_PkmnCenterAttention + .4byte gText_PkmnChargingPower + .4byte gText_NaturePowerTurnedInto + .4byte gText_PkmnStatusNormal + .4byte gText_PkmnHasNoMovesLeft + .4byte gText_PkmnSubjectedToTorment + .4byte gText_PkmnCantUseMoveTorment + .4byte gText_PkmnTighteningFocus + .4byte gText_PkmnFellForTaunt + .4byte gText_PkmnCantUseMoveTaunt + .4byte gText_PkmnReadyToHelp + .4byte gText_PkmnSwitchedItems + .4byte gText_PkmnCopiedFoe + .4byte gText_PkmnMadeWish + .4byte gText_PkmnWishCameTrue + .4byte gText_PkmnPlantedRoots + .4byte gText_PkmnAbsorbedNutrients + .4byte gText_PkmnAnchoredItself + .4byte gText_PkmnWasMadeDrowsy + .4byte gText_PkmnKnockedOff + .4byte gText_PkmnSwappedAbilities + .4byte gText_PkmnSealedOpponentMove + .4byte gText_PkmnCantUseMoveSealed + .4byte gText_PkmnWantsGrudge + .4byte gText_PkmnLostPPGrudge + .4byte gText_PkmnShroudedItself + .4byte gText_PkmnMoveBounced + .4byte gText_PkmnWaitsForTarget + .4byte gText_PkmnSnatchedMove + .4byte gText_PkmnMadeItRain + .4byte gText_PkmnRaisedSpeed + .4byte gText_PkmnProtectedBy + .4byte gText_PkmnPreventsUsage + .4byte gText_PkmnRestoredHPUsing + .4byte gText_PkmnChangedTypeWith + .4byte gText_PkmnPreventsParalysisWith + .4byte gText_PkmnPreventsRomanceWith + .4byte gText_PkmnPreventsPoisoningWith + .4byte gText_PkmnPreventsConfusionWith + .4byte gText_PkmnRaisedFirePowerWith + .4byte gText_PkmnAnchorsItselfWith + .4byte gText_PkmnCutsAttackWith + .4byte gText_PkmnPreventsStatLossWith + .4byte gText_PkmnHurtsWith + .4byte gText_PkmnTraced + .4byte gText_StatSharply + .4byte gText_StatRose + .4byte gText_StatHarshly + .4byte gText_StatFell + .4byte gText_PkmnsStatChanged + .4byte gText_PkmnsStatChanged2 + .4byte gText_PkmnsStatChanged3 + .4byte gText_PkmnsStatChanged4 + .4byte gText_CriticalHit + .4byte gText_OneHitKO + .4byte gText_123Poof + .4byte gText_AndEllipsis + .4byte gText_NotVeryEffective + .4byte gText_SuperEffective + .4byte gText_GotAwaySafely + .4byte gText_WildPkmnFled + .4byte gText_NoRunningFromTrainers + .4byte gText_CantEscape + .4byte gText_DontLeaveBirch + .4byte gText_ButNothingHappened + .4byte gText_ButItFailed + .4byte gText_ItHurtConfusion + .4byte gText_MirrorMoveFailed + .4byte gText_StartedToRain + .4byte gText_DownpourStarted + .4byte gText_RainContinues + .4byte gText_DownpourContinues + .4byte gText_RainStopped + .4byte gText_SandstormBrewed + .4byte gText_SandstormRages + .4byte gText_SandstormSubsided + .4byte gText_SunlightGotBright + .4byte gText_SunlightStrong + .4byte gText_SunlightFaded + .4byte gText_StartedHail + .4byte gText_HailContinues + .4byte gText_HailStopped + .4byte gText_FailedToSpitUp + .4byte gText_FailedToSwallow + .4byte gText_WindBecameHeatWave + .4byte gText_StatChangesGone + .4byte gText_CoinsScattered + .4byte gText_TooWeakForSubstitute + .4byte gText_SharedPain + .4byte gText_BellChimed + .4byte gText_FaintInThree + .4byte gText_NoPPLeft + .4byte gText_ButNoPPLeft + .4byte gText_XUsedY + .4byte gText_WallyUsedY + .4byte gText_TrainerBlockedBall + .4byte gText_DontBeAThief + .4byte gText_ItDodgedBall + .4byte gText_YouMissedPkmn + .4byte gText_PkmnBrokeFree + .4byte gText_ItAppearedCaught + .4byte gText_AarghAlmostHadIt + .4byte gText_ShootSoClose + .4byte gText_GotchaPkmnCaught + .4byte gText_GotchaPkmnCaught2 + .4byte gText_GiveNicknameCaptured + .4byte gText_PkmnSentToPC + .4byte gText_PkmnDataAddedToDex + .4byte gText_ItIsRaining + .4byte gText_SandstormIsRaging + .4byte gText_CantEscape2 + .4byte gText_PkmnIgnoresAsleep + .4byte gText_PkmnIgnoredOrders + .4byte gText_PkmnBeganToNap + .4byte gText_PkmnLoafing + .4byte gText_PkmnWontObey + .4byte gText_PkmnTurnedAway + .4byte gText_PkmnPretendNotNotice + .4byte gText_EnemyAboutToSwitchPkmn + .4byte gText_CreptCloser + .4byte gText_CantGetCloser + .4byte gText_PkmnWatchingCarefully + .4byte gText_PkmnCuriousAboutX + .4byte gText_PkmnEnthralledByX + .4byte gText_PkmnIgnoredX + .4byte gText_ThrewPokeblockAtPkmn + .4byte gText_OutOfSafariBalls + .4byte gText_PkmnsXCuredParalysis + .4byte gText_PkmnsXCuredPoison + .4byte gText_PkmnsXHealedBurn + .4byte gText_PkmnsXDefrostedIt + .4byte gText_PkmnsXWokeIt + .4byte gText_PkmnsXSnappedOut + .4byte gText_PkmnsXCuredProblem + .4byte gText_PkmnsXRestoredHealth + .4byte gText_PkmnsXRestoredPP + .4byte gText_PkmnsXRestoredStatus + .4byte gText_PkmnsXRestoredHPALittle + .4byte gText_XAllowsOnlyY + .4byte gText_PkmnHungOnWithX + .4byte gText_EmptyString3 + .4byte gText_PkmnsXPreventsBurns + .4byte gText_PkmnsXBlocksY + .4byte gText_PkmnsXRestoredHPALittle2 + .4byte gText_PkmnsXWhippedUpSandstorm + .4byte gText_PkmnsXPreventsYLoss + .4byte gText_PkmnsXInfatuatedY + .4byte gText_PkmnsXMadeYIneffective + .4byte gText_PkmnsXCuredYProblem + .4byte gText_ItSuckedLiquidOoze + .4byte gText_PkmnTransformed + .4byte gText_ElectricityWeakened + .4byte gText_FireWeakened + .4byte gText_PkmnHidUnderwater + .4byte gText_PkmnSprangUp + .4byte gText_HMMovesCantBeForgotten + .4byte gText_XFoundOneY + .4byte gText_PlayerDefeatedXY + .4byte gText_SoothingAroma + .4byte gText_ItemsCantBeUsedNow + .4byte gText_ForXCommaYZ + .4byte gText_UsingXTheYOfZN + .4byte gText_PkmnUsedXToGetPumped + .4byte gText_PkmnsXMadeYUseless + .4byte gText_PkmnTrappedBySandTomb + .4byte gText_EmptyString4 + .4byte gText_ABoosted + .4byte gText_PkmnsXIntensifiedSun + .4byte gText_PkmnMakesGroundMiss + .4byte gText_YouThrowABallNowRight + .4byte gText_PkmnsXTookAttack + .4byte gText_PkmnChoseXAsDestiny + .4byte gText_PkmnLostFocus + .4byte gText_UseNextPkmn + .4byte gText_PkmnFledUsingIts + .4byte gText_PkmnFledUsing + .4byte gText_PkmnWasDraggedOut + .4byte gText_PreventedFromWorking + .4byte gText_PkmnsXNormalizedStatus + .4byte gText_XYUsedZ + .4byte gText_BoxIsFull + .4byte gText_PkmnAvoidedAttack + .4byte gText_PkmnsXMadeItIneffective + .4byte gText_PkmnsXPreventsFlinching + .4byte gText_PkmnAlreadyHasBurn + .4byte gText_StatsWontDecrease2 + .4byte gText_PkmnsXBlocksY2 + .4byte gText_PkmnsXWoreOff + .4byte gText_PkmnRaisedDefALittle + .4byte gText_PkmnRaisedSpDefALittle + .4byte gText_TheWallShattered + .4byte gText_PkmnsXPreventsYsZ + .4byte gText_PkmnsXCuredItsYProblem + .4byte gText_PkmnCantEscape2 + .4byte gText_PkmnObtainedX + .4byte gText_PkmnObtainedX2 + .4byte gText_PkmnObtainedXYObtainedZ + .4byte gText_ButNoEffect + .4byte gText_PkmnsXHadNoEffectOnY + .4byte gText_TwoEnemiesDefeated + .4byte gText_String48 + .4byte gText_PkmnIncapableOfPower + .4byte gText_GlintAppearsInEye + .4byte gText_PkmnGettingIntoPosition + .4byte gText_PkmnBeganGrowlingDeeply + .4byte gText_PkmnEagerForMore + .4byte gText_DefeatedOpponentByReferee + .4byte gText_LostToOpponentByReferee + .4byte gText_TiedOpponentByReferee + .4byte gText_QuestionForfeitMatch + .4byte gText_ForfeitedMatch + .4byte gText_PkmnTransferredSomeonesPC + .4byte gText_PkmnTransferredLanettesPC + .4byte gText_PkmnBoxSomeonesPCFull + .4byte gText_PkmnBoxLanettesPCFull + .4byte gText_String37 + .4byte gText_String49 + + .align 2 +gMissStringIds:: @ 85CC834 + .2byte 0x0017, 0x0018, 0x0159, 0x001a, 0x014c -gUnknown_085CC015:: @ 85CC015 +gUnknown_085CC83E:: @ 85CC83E + .2byte 0x00e2, 0x00e3, 0x0021 + .2byte 0x0112, 0x0165, 0x00e8, 0x00e9, 0x00e5, 0x00ed, 0x00f0, 0x00f3 + .2byte 0x00ee, 0x00f4, 0x0066, 0x0067, 0x00ef, 0x00f5, 0x00ea, 0x00eb + .2byte 0x00ec, 0x0065, 0x0098, 0x00e5, 0x00e5, 0x004e, 0x0160, 0x004d + .2byte 0x0161, 0x004f, 0x0068, 0x0069, 0x001b, 0x006a, 0x0139, 0x0052 + .2byte 0x0053, 0x0070, 0x0071, 0x0073, 0x0074, 0x006c, 0x006e, 0x00f7 + .2byte 0x004c, 0x0075, 0x0076, 0x0077, 0x00d5, 0x00d6, 0x003d, 0x0130 + .2byte 0x0145, 0x0146, 0x00d7, 0x00d8, 0x003e, 0x0130, 0x0054, 0x0055 + .2byte 0x0056, 0x0057, 0x0058, 0x0059, 0x013d, 0x013e, 0x005a, 0x005c + .2byte 0x005b, 0x005d, 0x005b, 0x0148, 0x0061, 0x00e5, 0x0063, 0x00e5 + .2byte 0x007d, 0x00e5, 0x007e, 0x00fb, 0x0028, 0x0029, 0x0037, 0x0038 + .2byte 0x0023, 0x0024, 0x002e, 0x002f, 0x0031, 0x0032, 0x0035, 0x0036 + .2byte 0x0017, 0x007c, 0x0045, 0x0136, 0x002d, 0x0139, 0x013b, 0x013c + .2byte 0x00fd, 0x00fd, 0x00fd, 0x00fd, 0x0142, 0x00a1, 0x014f, 0x0107 + .2byte 0x0108, 0x0109, 0x010a, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110 + .2byte 0x0110, 0x0110, 0x0110, 0x0111, 0x0110, 0x0110, 0x0110, 0x00f1 + .2byte 0x0110, 0x0110, 0x0110, 0x0116, 0x0117, 0x0118, 0x0119, 0x016d + .2byte 0x011b, 0x011c, 0x011e, 0x011f, 0x0120, 0x0128, 0x0123, 0x0126 + .2byte 0x0125, 0x0124, 0x0127, 0x0129, 0x0156, 0x0131, 0x0163, 0x016a + .2byte 0x00c7, 0x0163, 0x016a, 0x00c9, 0x0163, 0x016a, 0x0166, 0x0167 + .2byte 0x0168, 0x00cb, 0x0137, 0x0177, 0x0178, 0x0179, 0x017a + +gTrappingMoves:: @ 85CC982 + .2byte MOVE_BIND, MOVE_WRAP, MOVE_FIRE_SPIN, MOVE_CLAMP, MOVE_WHIRLPOOL, MOVE_SAND_TOMB, 0xffff + +gText_PkmnIsEvolving:: @ 85CC990 + .string "What?\n{STR_VAR_1} is evolving!$" + +gText_CongratsPkmnEvolved:: @ 85CC9A6 + .string "Congratulations! Your {STR_VAR_1}\nevolved into {STR_VAR_2}!{UNKNOWN_A}\p$" + +gText_PkmnStoppedEvolving:: @ 85CC9D3 + .string "Huh? {STR_VAR_1}\nstopped evolving!\p$" -.string "someone’s$" +gText_EllipsisQuestionMark:: @ 85CC9EE + .string "……?\p$" -gUnknown_085CC01F:: @ 85CC01F +gText_WhatWillPkmnDo:: @ 85CC9F3 + .string "What will\n{STRING 18} do?$" -.string "LANETTE’s$" -.string "{RIVAL}’s data was\nadded to the POKéDEX.\p$" -.string "It is raining.$" -.string "A sandstorm is raging.$" -.string "The BOX is full!\nYou can’t catch any more!\p$" +gText_WhatWillPkmnDo2:: @ 85CCA04 + .string "What will\n{STRING 35} do?$" -gUnknown_085CC0A0:: @ 85CC0A0 +gText_WhatWillWallyDo:: @ 85CCA15 + .string "What will\nWALLY do?$" -.string "ENIGMA BERRY$" +gText_LinkStandby:: @ 85CCA29 + .string "{PAUSE 16}Link standby…$" -gUnknown_085CC0AD:: @ 85CC0AD +gText_BattleMenu:: @ 85CCA3A + .string "FIGHT{CLEAR_TO 56}BAG\nPOKéMON{CLEAR_TO 56}RUN$" -.string " BERRY$" -.string "{STRING 19}’s {STRING 22}\ncured paralysis!$" -.string "{STRING 19}’s {STRING 22}\ncured poison!$" -.string "{STRING 19}’s {STRING 22}\nhealed its burn!$" -.string "{STRING 19}’s {STRING 22}\ndefrosted it!$" -.string "{STRING 19}’s {STRING 22}\nwoke it from its sleep!$" -.string "{STRING 19}’s {STRING 22}\nsnapped it out of confusion!$" -.string "{STRING 19}’s {STRING 22}\ncured its {STRING 0} problem!$" -.string "{STRING 19}’s {STRING 22}\nnormalized its status!$" -.string "{STRING 19}’s {STRING 22}\nrestored health!$" -.string "{STRING 19}’s {STRING 22}\nrestored {STRING 0}’s PP!$" -.string "{STRING 19}’s {STRING 22}\nrestored its status!$" -.string "{STRING 19}’s {STRING 22}\nrestored its HP a little!$" -.string "{STRING 22} allows the\nuse of only {STRING 20}!\p$" -.string "{STRING 16} hung on\nusing its {STRING 22}!$" +gText_SafariZoneMenu:: @ 85CCA54 + .string "BALL{CLEAR_TO 56}{POKEBLOCK}\nGO NEAR{CLEAR_TO 56}RUN$" -gUnknown_085CC23E:: @ 85CC23E +gText_MoveInterfacePP:: @ 85CCA6F + .string "PP $" -.string "$" -.string "You throw a BALL now, right?\nI‥ I’ll do my best!$" +gText_MoveInterfaceType:: @ 85CCA73 + .string "TYPE/$" -gUnknown_085CC270:: @ 85CC270 - .incbin "baserom.gba", 0x5cc270, 0x5c4 + .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR4 DYNAMIC_COLOR5 DYNAMIC_COLOR6}PP\nTYPE/$" + .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR4 DYNAMIC_COLOR5 DYNAMIC_COLOR6}$" + .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR4 DYNAMIC_COLOR5 DYNAMIC_COLOR6}Which move should\nbe forgotten?$" + +gText_BattleYesNoChoice:: @ 85CCABB + .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR4 DYNAMIC_COLOR5 DYNAMIC_COLOR6}Yes\nNo$" + +gText_BattleSwitchWhich:: @ 85CCACA + .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR4 DYNAMIC_COLOR5 DYNAMIC_COLOR6}Switch\nwhich?$" + + .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR4 DYNAMIC_COLOR5 DYNAMIC_COLOR6}$" + .string "{UP_ARROW}$" + .string "{ESCAPE 4}$" + .string "-$" + +gText_HP:: @ 85CCAF1 + .string "HP$" + +gText_Attack:: @ 85CCAF4 + .string "ATTACK$" + +gText_Defense:: @ 85CCAFB + .string "DEFENSE$" + +gText_SpAtk:: @ 85CCB03 + .string "SP. ATK$" + +gText_SpDef:: @ 85CCB0B + .string "SP. DEF$" + + .align 2 + .4byte gText_HP + .4byte gText_SpAtk + .4byte gText_Attack + .4byte gText_SpDef + .4byte gText_Defense + .4byte gText_Speed + +gText_SafariBalls:: @ 85CCB2C + .string "{HIGHLIGHT DARK_GREY}SAFARI BALLS$" + +gText_SafariBallLeft:: @ 85CCB3C + .string "{HIGHLIGHT DARK_GREY}Left: $" + .string "{HIGHLIGHT DARK_GREY}$" + .string "sleep$" + .string "poison$" + .string "burn$" + .string "paralysis$" + .string "ice$" + .string "confusion$" + .string "love$" -gUnknown_085CC834:: @ 85CC834 - .incbin "baserom.gba", 0x5cc834, 0x14e +gText_SpaceAndSpace:: @ 85CCB79 + .string " and $" -gUnknown_085CC982:: @ 85CC982 - .incbin "baserom.gba", 0x5cc982, 0xe +gText_CommaSpace:: @ 85CCB7F + .string ", $" -gUnknown_085CC990:: @ 85CC990 +gText_Space2:: @ 85CCB82 + .string " $" -.string "What?\n{STR_VAR_1} is evolving!$" +gText_ScrollTextUp:: @ 85CCB84 + .string "\l$" -gUnknown_085CC9A6:: @ 85CC9A6 +gText_NewLine:: @ 85CCB86 + .string "\n$" -.string "Congratulations! Your {STR_VAR_1}\nevolved into {STR_VAR_2}!{UNKNOWN_A}\p$" +gText_Are:: @ 85CCB88 + .string "are$" -gUnknown_085CC9D3:: @ 85CC9D3 +gText_Are2:: @ 85CCB8C + .string "are$" -.string "Huh? {STR_VAR_1}\nstopped evolving!\p$" +gText_BadEgg:: @ 85CCB90 + .string "Bad EGG$" -gUnknown_085CC9EE:: @ 85CC9EE +gText_BattleWallyName:: @ 85CCB98 + .string "WALLY$" -.string "‥‥?\p$" +gText_Win:: @ 85CCB9E + .string "{HIGHLIGHT TRANSPARENT}Win$" -gUnknown_085CC9F3:: @ 85CC9F3 +gText_Loss:: @ 85CCBA5 + .string "{HIGHLIGHT TRANSPARENT}Loss$" -.string "What will\n{STRING 18} do?$" +gText_Draw:: @ 85CCBAD + .string "{HIGHLIGHT TRANSPARENT}Draw$" -gUnknown_085CCA04:: @ 85CCA04 +gText_SpaceIs:: @ 85CCBB5 + .string " is$" -.string "What will\n{STRING 35} do?$" +gText_ApostropheS:: @ 85CCBB9 + .string "’s$" -gUnknown_085CCA15:: @ 85CCA15 +gText_UnknownMoveTypes:: @ 85CCBBC + .string "a NORMAL move$ " + .string "a FIGHTING move$ " + .string "a FLYING move$ " + .string "a POISON move$ " + .string "a GROUND move$ " + .string "a ROCK move$ " + .string "a BUG move$ " + .string "a GHOST move$ " + .string "a STEEL move$ " + .string "a ??? move$ " + .string "a FIRE move$ " + .string "a WATER move$ " + .string "a GRASS move$ " + .string "an ELECTRIC move$" + .string "a PSYCHIC move$ " + .string "an ICE move$ " + .string "a DRAGON move$ " + .string "a DARK move$ " -.string "What will\nWALLY do?$" +gText_BattleTourney:: @ 85CCCEE + .string "BATTLE TOURNEY$" -gUnknown_085CCA29:: @ 85CCA29 +gText_Round1:: @ 85CCCFD + .string "Round 1$" -.string "{PAUSE 16}Link standby‥$" +gText_Round2:: @ 85CCD05 + .string "Round 2$" -gUnknown_085CCA3A:: @ 85CCA3A - .incbin "baserom.gba", 0x5cca3a, 0x1a +gText_Semifinal:: @ 85CCC0D + .string "Semifinal$" -gUnknown_085CCA54:: @ 85CCA54 - .incbin "baserom.gba", 0x5cca54, 0x1b +gText_Final:: @ 85CCD17 + .string "Final$" -gUnknown_085CCA6F:: @ 85CCA6F - .incbin "baserom.gba", 0x5cca6f, 0x4 + .align 2 +gRoundsStringTable:: @ 85CCD20 + .4byte gText_Round1 + .4byte gText_Round2 + .4byte gText_Semifinal + .4byte gText_Final -gUnknown_085CCA73:: @ 85CCA73 - .incbin "baserom.gba", 0x5cca73, 0x48 + .string "The great new hope!\p$" + .string "Will the championship dream come true?!\p$" + .string "A former CHAMPION!\p$" + .string "The previous CHAMPION!\p$" + .string "The unbeaten CHAMPION!\p$" -gUnknown_085CCABB:: @ 85CCABB - .incbin "baserom.gba", 0x5ccabb, 0xf +gText_JapaneseHonorific:: @ 85CCDB2 + .string "{KUN}$" -gUnknown_085CCACA:: @ 85CCACA - .incbin "baserom.gba", 0x5ccaca, 0x62 +gText_Vs:: @ 85CCDB5 + .string "VS$" -gUnknown_085CCB2C:: @ 85CCB2C - .incbin "baserom.gba", 0x5ccb2c, 0x10 +gText_RivalBuffer:: @ 85CCDB8 + .string "{RIVAL}$" -gUnknown_085CCB3C:: @ 85CCB3C - .incbin "baserom.gba", 0x5ccb3c, 0x3d +gText_Mind:: @ 85CCDBB + .string "Mind$" -gUnknown_085CCB79:: @ 85CCB79 - .incbin "baserom.gba", 0x5ccb79, 0x6 +gText_Skill:: @ 85CCDC0 + .string "Skill$" -gUnknown_085CCB7F:: @ 85CCB7F - .incbin "baserom.gba", 0x5ccb7f, 0x3 +gText_Body:: @ 85CCDC6 + .string "Body$" -gUnknown_085CCB82:: @ 85CCB82 - .incbin "baserom.gba", 0x5ccb82, 0x2 +gText_Judgement:: @ 85CCDCB + .string "{STRING 0}{CLEAR 13}Judgment{CLEAR 13}{PLAYER}$" -gUnknown_085CCB84:: @ 85CCB84 - .incbin "baserom.gba", 0x5ccb84, 0x2 +gText_TwoTrainersSentPkmn:: @ 85CCDDE + .string "{STRING 28} {STRING 29} sent\nout {RIVAL}!\p{STRING 46} {STRING 47} sent\nout {AQUA}!$" -gUnknown_085CCB86:: @ 85CCB86 - .incbin "baserom.gba", 0x5ccb86, 0x2 +gText_TrainerXYSentOutPkmn3:: @ 85CCE04 + .string "{STRING 46} {STRING 47} sent\nout {STRING 0}!$" -gUnknown_085CCB88:: @ 85CCB88 - .incbin "baserom.gba", 0x5ccb88, 0x4 +gText_TwoTrainersWantToBattle2:: @ 85CCE17 + .string "{STRING 28} {STRING 29} and\n{STRING 46} {STRING 47}\lwant to battle!\p$" -gUnknown_085CCB8C:: @ 85CCB8C - .incbin "baserom.gba", 0x5ccb8c, 0x4 +gText_TrainerXYSentOutZGoN:: @ 85CCE38 + .string "{STRING 50} {STRING 51} sent\nout {VERSION}!\lGo, {STRING 5}!$" -gBadEggNickname:: @ 85CCB90 - .incbin "baserom.gba", 0x5ccb90, 0x8 +gText_TwoEnemiesDefeated:: @ 85CCE53 + .string "{STRING 28} {STRING 29} and\n{STRING 46} {STRING 47}\lwere defeated!\p$" -BattleText_Wally:: @ 85CCB98 - .incbin "baserom.gba", 0x5ccb98, 0x6 +gText_String48:: @ 85CCE73 + .string "{STRING 48}$" -gUnknown_085CCB9E:: @ 85CCB9E - .incbin "baserom.gba", 0x5ccb9e, 0x7 +gText_PkmnIncapableOfPower:: @ 85CCE76 + .string "{STRING 15} appears incapable\nof using its power!$" -gUnknown_085CCBA5:: @ 85CCBA5 - .incbin "baserom.gba", 0x5ccba5, 0x8 +gText_GlintAppearsInEye:: @ 85CCE9F + .string "A glint appears in\n{STRING 19}’s eyes!$" -gUnknown_085CCBAD:: @ 85CCBAD - .incbin "baserom.gba", 0x5ccbad, 0x8 +gText_PkmnGettingIntoPosition:: @ 85CCEBD + .string "{STRING 19} is getting into\nposition!$" -gUnknown_085CCBB5:: @ 85CCBB5 - .incbin "baserom.gba", 0x5ccbb5, 0x4 +gText_PkmnBeganGrowlingDeeply:: @ 85CCEDA + .string "{STRING 19} began growling deeply!$" -gUnknown_085CCBB9:: @ 85CCBB9 - .incbin "baserom.gba", 0x5ccbb9, 0x3 +gText_PkmnEagerForMore:: @ 85CCEF4 + .string "{STRING 19} is eager for more!$" -gUnknown_085CCBBC:: @ 85CCBBC - .incbin "baserom.gba", 0x5ccbbc, 0x132 +gUnknown_085CCF0A:: @ 85CCF0A + .2byte 0x016E, 0x016F, 0x0170, 0x0171 -gUnknown_085CCCEE:: @ 85CCCEE - .incbin "baserom.gba", 0x5cccee, 0x32 +gText_RefIfNothingIsDecided:: @ 85CCF12 + .string "REFEREE: If nothing is decided in\n3 turns, we will go to judging!$" -gUnknown_085CCD20:: @ 85CCD20 - .incbin "baserom.gba", 0x5ccd20, 0x92 +gText_RefThatsIt:: @ 85CCF54 + .string "REFEREE: That’s it! We will now go to\njudging to determine the winner!$" -gUnknown_085CCDB2:: @ 85CCDB2 - .incbin "baserom.gba", 0x5ccdb2, 0x3 +gText_RefJudgeMind:: @ 85CCF9B + .string "REFEREE: Judging category 1, Mind!\nThe POKéMON showing the most guts!\p$" -gUnknown_085CCDB5:: @ 85CCDB5 - .incbin "baserom.gba", 0x5ccdb5, 0x3 +gText_RefJudgeSkill:: @ 85CCFE2 + .string "REFEREE: Judging category 2, Skill!\nThe POKéMON using moves the best!\p$" -gUnknown_085CCDB8:: @ 85CCDB8 - .incbin "baserom.gba", 0x5ccdb8, 0x3 +gText_RefJudgeBody:: @ 85CD029 + .string "REFEREE: Judging category 3, Body!\nThe POKéMON with the most vitality!\p$" -gUnknown_085CCDBB:: @ 85CCDBB - .incbin "baserom.gba", 0x5ccdbb, 0x5 +gText_RefJudgement1:: @ 85CD071 + .string "REFEREE: Judgment: {STRING 0} to {PLAYER}!\nThe winner is {STRING 35}’s {STRING 5}!\p$" -gUnknown_085CCDC0:: @ 85CCDC0 - .incbin "baserom.gba", 0x5ccdc0, 0x6 +gText_RefJudgement2:: @ 85CD0A6 + .string "REFEREE: Judgment: {STRING 0} to {PLAYER}!\nThe winner is {STRING 29}’s {RIVAL}!\p$" -gUnknown_085CCDC6:: @ 85CCDC6 - .incbin "baserom.gba", 0x5ccdc6, 0x5 +gText_RefJudgement3:: @ 85CD0DB + .string "REFEREE: Judgment: 3 to 3!\nWe have a draw!\p$" -gUnknown_085CCDCB:: @ 85CCDCB - .incbin "baserom.gba", 0x5ccdcb, 0x13 +gText_DefeatedOpponentByReferee:: @ 85CD107 + .string "{STRING 5} defeated the opponent\n{RIVAL} in a REFEREE’s decision!$" -gUnknown_085CCDDE:: @ 85CCDDE - .incbin "baserom.gba", 0x5ccdde, 0x26 +gText_LostToOpponentByReferee:: @ 85CD13C + .string "{STRING 5} lost to the opponent\n{RIVAL} in a REFEREE’s decision!$" -gUnknown_085CCE04:: @ 85CCE04 - .incbin "baserom.gba", 0x5cce04, 0x13 +gText_TiedOpponentByReferee:: @ 85CD170 + .string "{STRING 5} tied the opponent\n{RIVAL} in a REFEREE’s decision!$" -gUnknown_085CCE17:: @ 85CCE17 - .incbin "baserom.gba", 0x5cce17, 0x21 +gText_RefCommenceBattle:: @ 85CD1A1 + .string "REFEREE: {STRING 5} VS {RIVAL}!\nCommence battling!$" -gUnknown_085CCE38:: @ 85CCE38 - .incbin "baserom.gba", 0x5cce38, 0x1b + .align 2 +gRefereeStringsTable:: @ 85CD1C8 + .4byte gText_RefIfNothingIsDecided + .4byte gText_RefThatsIt + .4byte gText_RefJudgeMind + .4byte gText_RefJudgeSkill + .4byte gText_RefJudgeBody + .4byte gText_RefJudgement1 + .4byte gText_RefJudgement2 + .4byte gText_RefJudgement3 + .4byte gText_RefCommenceBattle -gUnknown_085CCE53:: @ 85CCE53 - .incbin "baserom.gba", 0x5cce53, 0x375 +gText_QuestionForfeitMatch:: @ 85CD1EC + .string "Would you like to forfeit the match\nand quit now?$" -gUnknown_085CD1C8:: @ 85CD1C8 - .incbin "baserom.gba", 0x5cd1c8, 0x84 +gText_ForfeitedMatch:: @ 85CD21E + .string "{STRING 35} forfeited the match!$" -gUnknown_085CD24C:: @ 85CD24C - .incbin "baserom.gba", 0x5cd24c, 0x1b +gText_String37:: @ 85CD236 + .string "{STRING 37}$" -gUnknown_085CD267:: @ 85CD267 - .incbin "baserom.gba", 0x5cd267, 0x28 +gText_String49:: @ 85CD239 + .string "{STRING 49}$" -gUnknown_085CD28F:: @ 85CD28F - .incbin "baserom.gba", 0x5cd28f, 0x3c + .string "{PLAY_SE 0x0011}{STRING 28} {STRING 29} fled!$" -gUnknown_085CD2CB:: @ 85CD2CB - .incbin "baserom.gba", 0x5cd2cb, 0x36 +gText_PlayerLostAgainst2:: @ 85CD24C + .string "Player lost against\n{STRING 28} {STRING 29}!$" -gUnknown_085CD301:: @ 85CD301 - .incbin "baserom.gba", 0x5cd301, 0x17 +gText_PlayerBattledToDraw2:: @ 85CD267 + .string "Player battled to a draw against\n{STRING 28} {STRING 29}!$" -gUnknown_085CD318:: @ 85CD318 - .incbin "baserom.gba", 0x5cd318, 0x1e +gText_RecordBattleToPass:: @ 85CD28F + .string "Would you like to record your battle\non your FRONTIER PASS?$" +gText_BattleRecordedOnPass:: @ 85CD2CB + .string "{STRING 35}’s battle result was recorded\non the FRONTIER PASS.$" + +gText_TrainerWantsToBattle:: @ 85CD301 + .string "{STRING 32}\nwants to battle!{PAUSE 49}$" + +gText_TwoTrainersWantToBattle3:: @ 85CD318 + .string "{STRING 32} and {STRING 33}\nwant to battle!{PAUSE 49}$" + + .align 1 gUnknown_085CD336:: @ 85CD336 - .incbin "baserom.gba", 0x5cd336, 0xec + .2byte 0x000e, 0x0046, 0x004a, 0x006a, 0x006b, 0x006c, 0x006e, 0x006f + .2byte 0x0079, 0x007b, 0x007d, 0x0094, 0x0096, 0x0097, 0x009b, 0x009c + .2byte 0x009f, 0x00a4, 0x00aa, 0x00ad, 0x00b6, 0x00bf, 0x00cb, 0x00cd + .2byte 0x00cf, 0x00d6, 0x00ed, 0x00f4, 0x00f5, 0x010a, 0x010f, 0x0112 + .2byte 0x0113, 0x011a, 0x0125, 0x0136, 0x013c, 0x0140, 0x0149, 0x014a + .2byte 0x014e, 0x0154, 0x0000, 0x0064, 0x0069, 0x0075, 0x0085, 0x00af + .2byte 0x010d, 0x0153, 0x0000, 0x0060, 0x0061, 0x0066, 0x0068, 0x008c + .2byte 0x0090, 0x00a5, 0x00b8, 0x010c, 0x0111, 0x0118, 0x0119, 0x0129 + .2byte 0x012a, 0x012c, 0x0139, 0x015a, 0x015b, 0x0000, 0x0001, 0x000a + .2byte 0x000b, 0x0011, 0x0013, 0x0014, 0x0015, 0x001e, 0x0023, 0x0025 + .2byte 0x0027, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0040, 0x0047 + .2byte 0x0051, 0x0059, 0x005a, 0x005b, 0x005c, 0x0067, 0x0076, 0x007a + .2byte 0x0080, 0x0084, 0x008b, 0x0091, 0x00a3, 0x00a9, 0x00ab, 0x00ae + .2byte 0x00c1, 0x00cc, 0x00d5, 0x00f9, 0x00fd, 0x00ff, 0x0100, 0x0103 + .2byte 0x0104, 0x0110, 0x011b, 0x0141, 0x0157, 0x0000 gUnknown_085CD422:: @ 85CD422 - .incbin "baserom.gba", 0x5cd422, 0x23e + .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + .align 2 +gUnknown_085CD42C:: @ 85CD42C + .2byte 0x01ff, 0x0100, 0x0000, 0x0101, 0x060f, 0x0000, 0x01ff, 0x0101 + .2byte 0x0000, 0x0100, 0x060f, 0x0000, 0x01ee, 0x0100, 0x0000, 0x0d00 + .2byte 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000 + .2byte 0x07ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x07ee, 0x0100 + .2byte 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00 + .2byte 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0c00, 0x0b0e, 0x0000 + .2byte 0x01ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x0102 + .2byte 0x0000, 0x0c00, 0x0b0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00 + .2byte 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000 + .2byte 0x01ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x0100 + .2byte 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x0100, 0x0120, 0x0000, 0x0100 + .2byte 0x0200, 0x0000, 0x01ee, 0x01ff, 0x0000, 0x0d00, 0x0f0e, 0x0000 + .2byte 0x01ee, 0x01ff, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x01ff + .2byte 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x01ff, 0x0000, 0x0d00 + .2byte 0x0f0e, 0x0000, 0x01ee, 0x01ff, 0x0000, 0x0d00, 0x0f0e, 0x0000 + .2byte 0x01ee, 0x01ff, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x0100, 0x01ff + .2byte 0x0000, 0x0100, 0x0600, 0x0000, 0x0100, 0x01ff, 0x0000, 0x0100 + .2byte 0x0600, 0x0000, 0x0100, 0x01ff, 0x0000, 0x0100, 0x0600, 0x0000 + + .align 2 +gUnknown_085CD54C:: @ 85C54C + .2byte 0x01ff, 0x0100, 0x0000, 0x0101, 0x060f, 0x0000, 0x01ff, 0x0101 + .2byte 0x0000, 0x0100, 0x060f, 0x0000, 0x01ee, 0x0100, 0x0000, 0x0d00 + .2byte 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000 + .2byte 0x07ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x07ee, 0x0100 + .2byte 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00 + .2byte 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0c00, 0x0b0e, 0x0000 + .2byte 0x01ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x0102 + .2byte 0x0000, 0x0c00, 0x0b0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00 + .2byte 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000 + .2byte 0x01ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x0100 + .2byte 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x0100, 0x0120, 0x0000, 0x0100 + .2byte 0x0200, 0x0000, 0x01ee, 0x01ff, 0x0000, 0x0100, 0x0f0e, 0x0000 + .2byte 0x01ee, 0x01ff, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x01ff + .2byte 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x01ff, 0x0000, 0x0d00 + .2byte 0x0f0e, 0x0000, 0x01ee, 0x01ff, 0x0000, 0x0d00, 0x0f0e, 0x0000 + .2byte 0x01ee, 0x01ff, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x01ff + .2byte 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x0111, 0x0100, 0x0000, 0x0201 + .2byte 0x0301, 0x0000 + + .align 2 gUnknown_085CD660:: @ 85CD660 - .incbin "baserom.gba", 0x5cd660, 0x8 + .4byte gUnknown_085CD42C + .4byte gUnknown_085CD54C + .align 2 gUnknown_085CD668:: @ 85CD668 - .incbin "baserom.gba", 0x5cd668, 0x4 - + .byte 0x08, 0x04, 0x01, 0x00 diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index da05b9367..206519f40 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -3,40 +3,40 @@ .section script_data, "aw", %progbits -gUnknown_082D86A8:: @ 82D86A8 +gBattleScriptsForMoveEffects:: @ 82D86A8 .incbin "baserom.gba", 0x2d86a8, 0x388 -gUnknown_082D8A30:: @ 82D8A30 +BattleScript_PresentDamageTarget:: @ 82D8A30 .incbin "baserom.gba", 0x2d8a30, 0x1e -gUnknown_082D8A4E:: @ 82D8A4E +BattleScript_MoveEnd:: @ 82D8A4E .incbin "baserom.gba", 0x2d8a4e, 0x12 -gUnknown_082D8A60:: @ 82D8A60 +BattleScript_PauseEffectivenessSoundResultMsgEndMove:: @ 82D8A60 .incbin "baserom.gba", 0x2d8a60, 0x274 -gUnknown_082D8CD4:: @ 82D8CD4 +BattleScript_StatUp:: @ 82D8CD4 .incbin "baserom.gba", 0x2d8cd4, 0x91 -gUnknown_082D8D65:: @ 82D8D65 +BattleScript_StatDown:: @ 82D8D65 .incbin "baserom.gba", 0x2d8d65, 0x6fd -gUnknown_082D9462:: @ 82D9462 +BattleScript_MoveUsedMustRecharge:: @ 82D9462 .incbin "baserom.gba", 0x2d9462, 0xa7f -gUnknown_082D9EE1:: @ 82D9EE1 +BattleScript_PresentHealTarget:: @ 82D9EE1 .incbin "baserom.gba", 0x2d9ee1, 0x1a -gUnknown_082D9EFB:: @ 82D9EFB +BattleScript_AlreadyAtFullHp:: @ 82D9EFB .incbin "baserom.gba", 0x2d9efb, 0x21 -gUnknown_082D9F1C:: @ 82D9F1C +BattleScript_ButItFailed:: @ 82D9F1C .incbin "baserom.gba", 0x2d9f1c, 0x88e -gUnknown_082DA7AA:: @ 82DA7AA +BattleScript_FaintAttacker:: @ 82DA7AA .incbin "baserom.gba", 0x2da7aa, 0xd -gUnknown_082DA7B7:: @ 82DA7B7 +BattleScript_FaintTarget:: @ 82DA7B7 .incbin "baserom.gba", 0x2da7b7, 0xd gUnknown_082DA7C4:: @ 82DA7C4 @@ -90,10 +90,10 @@ gUnknown_082DAB11:: @ 82DAB11 gUnknown_082DAB15:: @ 82DAB15 .incbin "baserom.gba", 0x2dab15, 0xa4 -gUnknown_082DABB9:: @ 82DABB9 +BattleScript_Pausex20:: @ 82DABB9 .incbin "baserom.gba", 0x2dabb9, 0x4 -gUnknown_082DABBD:: @ 82DABBD +BattleScript_LevelUp:: @ 82DABBD .incbin "baserom.gba", 0x2dabbd, 0x6f gUnknown_082DAC2C:: @ 82DAC2C @@ -120,43 +120,43 @@ gUnknown_082DACFA:: @ 82DACFA gUnknown_082DAD0B:: @ 82DAD0B .incbin "baserom.gba", 0x2dad0b, 0xa -gUnknown_082DAD15:: @ 82DAD15 +BattleScript_LeechSeedTurnDrain:: @ 82DAD15 .incbin "baserom.gba", 0x2dad15, 0x5c -gUnknown_082DAD71:: @ 82DAD71 +BattleScript_BideStoringEnergy:: @ 82DAD71 .incbin "baserom.gba", 0x2dad71, 0xb -gUnknown_082DAD7C:: @ 82DAD7C +BattleScript_BideAttack:: @ 82DAD7C .incbin "baserom.gba", 0x2dad7c, 0x48 -gUnknown_082DADC4:: @ 82DADC4 +BattleScript_BideNoEnergyToAttack:: @ 82DADC4 .incbin "baserom.gba", 0x2dadc4, 0x14 gUnknown_082DADD8:: @ 82DADD8 .incbin "baserom.gba", 0x2dadd8, 0x2b -gUnknown_082DAE03:: @ 82DAE03 +BattleScript_MistProtected:: @ 82DAE03 .incbin "baserom.gba", 0x2dae03, 0xa -gUnknown_082DAE0D:: @ 82DAE0D +BattleScript_RageIsBuilding:: @ 82DAE0D .incbin "baserom.gba", 0x2dae0d, 0x7 -gUnknown_082DAE14:: @ 82DAE14 +BattleScript_MoveUsedIsDisabled:: @ 82DAE14 .incbin "baserom.gba", 0x2dae14, 0xb gUnknown_082DAE1F:: @ 82DAE1F .incbin "baserom.gba", 0x2dae1f, 0x4 -gUnknown_082DAE23:: @ 82DAE23 +BattleScript_DisabledNoMore:: @ 82DAE23 .incbin "baserom.gba", 0x2dae23, 0x7 gUnknown_082DAE2A:: @ 82DAE2A .incbin "baserom.gba", 0x2dae2a, 0xd -gUnknown_082DAE37:: @ 82DAE37 +BattleScript_EncoredNoMore:: @ 82DAE37 .incbin "baserom.gba", 0x2dae37, 0x7 -gUnknown_082DAE3E:: @ 82DAE3E +BattleScript_DestinyBondTakesLife:: @ 82DAE3E .incbin "baserom.gba", 0x2dae3e, 0x1b gUnknown_082DAE59:: @ 82DAE59 @@ -174,31 +174,31 @@ gUnknown_082DAF05:: @ 82DAF05 gUnknown_082DAF20:: @ 82DAF20 .incbin "baserom.gba", 0x2daf20, 0x7 -gUnknown_082DAF27:: @ 82DAF27 +BattleScript_AllStatsUp:: @ 82DAF27 .incbin "baserom.gba", 0x2daf27, 0x9c -gUnknown_082DAFC3:: @ 82DAFC3 +BattleScript_RapidSpinAway:: @ 82DAFC3 .incbin "baserom.gba", 0x2dafc3, 0x2 -gUnknown_082DAFC5:: @ 82DAFC5 +BattleScript_WrapFree:: @ 82DAFC5 .incbin "baserom.gba", 0x2dafc5, 0x11 -gUnknown_082DAFD6:: @ 82DAFD6 +BattleScript_LeechSeedFree:: @ 82DAFD6 .incbin "baserom.gba", 0x2dafd6, 0x7 -gUnknown_082DAFDD:: @ 82DAFDD +BattleScript_SpikesFree:: @ 82DAFDD .incbin "baserom.gba", 0x2dafdd, 0x7 gUnknown_082DAFE4:: @ 82DAFE4 .incbin "baserom.gba", 0x2dafe4, 0x8e -gUnknown_082DB072:: @ 82DB072 +BattleScript_NoMovesLeft:: @ 82DB072 .incbin "baserom.gba", 0x2db072, 0x4 gUnknown_082DB076:: @ 82DB076 .incbin "baserom.gba", 0x2db076, 0x4 -gUnknown_082DB07A:: @ 82DB07A +BattleScript_NoPPForMove:: @ 82DB07A .incbin "baserom.gba", 0x2db07a, 0xf gUnknown_082DB089:: @ 82DB089 @@ -210,25 +210,25 @@ gUnknown_082DB098:: @ 82DB098 gUnknown_082DB0A0:: @ 82DB0A0 .incbin "baserom.gba", 0x2db0a0, 0x4 -gUnknown_082DB0A4:: @ 82DB0A4 +BattleScript_MoveUsedIsTaunted:: @ 82DB0A4 .incbin "baserom.gba", 0x2db0a4, 0xb gUnknown_082DB0AF:: @ 82DB0AF .incbin "baserom.gba", 0x2db0af, 0x8 -gUnknown_082DB0B7:: @ 82DB0B7 +BattleScript_WishComesTrue:: @ 82DB0B7 .incbin "baserom.gba", 0x2db0b7, 0x37 -gUnknown_082DB0EE:: @ 82DB0EE +BattleScript_IngrainTurnHeal:: @ 82DB0EE .incbin "baserom.gba", 0x2db0ee, 0x29 -gUnknown_082DB117:: @ 82DB117 +BattleScript_AtkDefDown:: @ 82DB117 .incbin "baserom.gba", 0x2db117, 0x51 -gUnknown_082DB168:: @ 82DB168 +BattleScript_KnockedOff:: @ 82DB168 .incbin "baserom.gba", 0x2db168, 0xe -gUnknown_082DB176:: @ 82DB176 +BattleScript_MoveUsedIsImprisoned:: @ 82DB176 .incbin "baserom.gba", 0x2db176, 0xb gUnknown_082DB181:: @ 82DB181 @@ -237,118 +237,151 @@ gUnknown_082DB181:: @ 82DB181 gUnknown_082DB185:: @ 82DB185 .incbin "baserom.gba", 0x2db185, 0x8 -gUnknown_082DB18D:: @ 82DB18D +BattleScript_GrudgeTakesPp:: @ 82DB18D .incbin "baserom.gba", 0x2db18d, 0x7 -gUnknown_082DB194:: @ 82DB194 +BattleScript_MagicCoatBounce:: @ 82DB194 .incbin "baserom.gba", 0x2db194, 0x18 -gUnknown_082DB1AC:: @ 82DB1AC +BattleScript_SnatchedMove:: @ 82DB1AC .incbin "baserom.gba", 0x2db1ac, 0x1b -gUnknown_082DB1C7:: @ 82DB1C7 +BattleScript_EnduredMsg:: @ 82DB1C7 .incbin "baserom.gba", 0x2db1c7, 0x7 -gUnknown_082DB1CE:: @ 82DB1CE +BattleScript_OneHitKOMsg:: @ 82DB1CE .incbin "baserom.gba", 0x2db1ce, 0x7 -gUnknown_082DB1D5:: @ 82DB1D5 +BattleScript_SAtkDown2:: @ 82DB1D5 .incbin "baserom.gba", 0x2db1d5, 0x2a gUnknown_082DB1FF:: @ 82DB1FF .incbin "baserom.gba", 0x2db1ff, 0x14 -gUnknown_082DB213:: @ 82DB213 +BattleScript_MoveUsedIsAsleep:: @ 82DB213 .incbin "baserom.gba", 0x2db213, 0xd -gUnknown_082DB220:: @ 82DB220 +BattleScript_MoveUsedWokeUp:: @ 82DB220 .incbin "baserom.gba", 0x2db220, 0x14 gUnknown_082DB234:: @ 82DB234 .incbin "baserom.gba", 0x2db234, 0x9 -gUnknown_082DB23D:: @ 82DB23D +BattleScript_PoisonTurnDmg:: @ 82DB23D .incbin "baserom.gba", 0x2db23d, 0x22 -gUnknown_082DB25F:: @ 82DB25F +BattleScript_BurnTurnDmg:: @ 82DB25F .incbin "baserom.gba", 0x2db25f, 0xb -gUnknown_082DB26A:: @ 82DB26A +BattleScript_MoveUsedIsFrozen:: @ 82DB26A .incbin "baserom.gba", 0x2db26a, 0xd -gUnknown_082DB277:: @ 82DB277 +BattleScript_MoveUsedUnfroze:: @ 82DB277 .incbin "baserom.gba", 0x2db277, 0xb -gUnknown_082DB282:: @ 82DB282 +BattleScript_DefrostedViaFireMove:: @ 82DB282 .incbin "baserom.gba", 0x2db282, 0x9 -gUnknown_082DB28B:: @ 82DB28B +BattleScript_MoveUsedIsParalyzed:: @ 82DB28B .incbin "baserom.gba", 0x2db28b, 0x10 -gUnknown_082DB29B:: @ 82DB29B +BattleScript_MoveUsedFlinched:: @ 82DB29B .incbin "baserom.gba", 0x2db29b, 0xb gUnknown_082DB2A6:: @ 82DB2A6 .incbin "baserom.gba", 0x2db2a6, 0x9 -gUnknown_082DB2AF:: @ 82DB2AF +BattleScript_ThrashConfuses:: @ 82DB2AF .incbin "baserom.gba", 0x2db2af, 0xe -gUnknown_082DB2BD:: @ 82DB2BD +BattleScript_MoveUsedIsConfused:: @ 82DB2BD .incbin "baserom.gba", 0x2db2bd, 0x43 -gUnknown_082DB300:: @ 82DB300 +BattleScript_MoveUsedIsConfusedNoMore:: @ 82DB300 .incbin "baserom.gba", 0x2db300, 0x7 -gUnknown_082DB307:: @ 82DB307 +BattleScript_PrintPayDayMoneyString:: @ 82DB307 .incbin "baserom.gba", 0x2db307, 0x7 -gUnknown_082DB30E:: @ 82DB30E +BattleScript_WrapTurnDmg:: @ 82DB30E .incbin "baserom.gba", 0x2db30e, 0x12 -gUnknown_082DB320:: @ 82DB320 +BattleScript_WrapEnds:: @ 82DB320 .incbin "baserom.gba", 0x2db320, 0x7 -gUnknown_082DB327:: @ 82DB327 +BattleScript_MoveUsedIsInLove:: @ 82DB327 .incbin "baserom.gba", 0x2db327, 0xd -gUnknown_082DB334:: @ 82DB334 +BattleScript_MoveUsedIsParalyzedCantAttack:: @ 82DB334 .incbin "baserom.gba", 0x2db334, 0xb -gUnknown_082DB33F:: @ 82DB33F +BattleScript_NightmareTurnDmg:: @ 82DB33F .incbin "baserom.gba", 0x2db33f, 0x11 -gUnknown_082DB350:: @ 82DB350 +BattleScript_CurseTurnDmg:: @ 82DB350 .incbin "baserom.gba", 0x2db350, 0x11 -gUnknown_082DB361:: @ 82DB361 - .incbin "baserom.gba", 0x2db361, 0x17 +BattleScript_TargetPRLZHeal:: @ 82DB361 + .incbin "baserom.gba", 0x2db361, 0x9 -gUnknown_082DB378:: @ 82DB378 - .incbin "baserom.gba", 0x2db378, 0xaa +BattleScript_MoveEffectSleep:: @ 82DB36A + .incbin "baserom.gba", 0x2db36A, 0xE -gUnknown_082DB422:: @ 82DB422 +BattleScript_YawnMakesAsleep:: @ 82DB378 + .incbin "baserom.gba", 0x2db378, 0xE + +BattleScript_MoveEffectPoison:: @ 82DB386 + .incbin "baserom.gba", 0x2db386, 0xF + +BattleScript_MoveEffectBurn:: @ 82DB395 + .incbin "baserom.gba", 0x2db395, 0xF + +BattleScript_MoveEffectFreeze:: @ 82DB3A4 + .incbin "baserom.gba", 0x2db3A4, 0xF + +BattleScript_MoveEffectParalysis:: @ 82DB3B3 + .incbin "baserom.gba", 0x2db3B3, 0xF + +BattleScript_MoveEffectUproar:: @ 82DB3C2 + .incbin "baserom.gba", 0x2db3C2, 0x7 + +BattleScript_MoveEffectToxic:: @ 82DB3C9 + .incbin "baserom.gba", 0x2db3C9, 0xD + +BattleScript_MoveEffectPayDay:: @ 82DB3D6 + .incbin "baserom.gba", 0x2db3D6, 0x7 + +BattleScript_MoveEffectWrap:: @ 82DB3DD + .incbin "baserom.gba", 0x2db3DD, 0x9 + +BattleScript_MoveEffectConfusion:: @ 82DB3E6 + .incbin "baserom.gba", 0x2db3E6, 0xE + +BattleScript_MoveEffectRecoil33:: @ 82DB3F4 + .incbin "baserom.gba", 0x2db3F4, 0x2e + +BattleScript_ItemSteal:: @ 82DB422 .incbin "baserom.gba", 0x2db422, 0xe -gUnknown_082DB430:: @ 82DB430 +BattleScript_DrizzleActivates:: @ 82DB430 .incbin "baserom.gba", 0x2db430, 0x14 -gUnknown_082DB444:: @ 82DB444 +BattleScript_SpeedBoostActivates:: @ 82DB444 .incbin "baserom.gba", 0x2db444, 0xe -gUnknown_082DB452:: @ 82DB452 +BattleScript_TraceActivates:: @ 82DB452 .incbin "baserom.gba", 0x2db452, 0xa -gUnknown_082DB45C:: @ 82DB45C +BattleScript_RainDishActivates:: @ 82DB45C .incbin "baserom.gba", 0x2db45c, 0x14 -gUnknown_082DB470:: @ 82DB470 +BattleScript_SandstreamActivates:: @ 82DB470 .incbin "baserom.gba", 0x2db470, 0x14 -gUnknown_082DB484:: @ 82DB484 +BattleScript_ShedSkinActivates:: @ 82DB484 .incbin "baserom.gba", 0x2db484, 0x25 -gUnknown_082DB4A9:: @ 82DB4A9 +BattleScript_CastformChange:: @ 82DB4A9 .incbin "baserom.gba", 0x2db4a9, 0xf gUnknown_082DB4B8:: @ 82DB4B8 @@ -357,22 +390,22 @@ gUnknown_082DB4B8:: @ 82DB4B8 gUnknown_082DB4C1:: @ 82DB4C1 .incbin "baserom.gba", 0x2db4c1, 0x69 -gUnknown_082DB52A:: @ 82DB52A +BattleScript_DroughtActivates:: @ 82DB52A .incbin "baserom.gba", 0x2db52a, 0x14 -gUnknown_082DB53E:: @ 82DB53E +BattleScript_TookAttack:: @ 82DB53E .incbin "baserom.gba", 0x2db53e, 0x14 -gUnknown_082DB552:: @ 82DB552 +BattleScript_SturdyPreventsOHKO:: @ 82DB552 .incbin "baserom.gba", 0x2db552, 0xe -gUnknown_082DB560:: @ 82DB560 +BattleScript_DampStopsExplosion:: @ 82DB560 .incbin "baserom.gba", 0x2db560, 0xe -gUnknown_082DB56E:: @ 82DB56E +BattleScript_MoveHPDrain_PPLoss:: @ 82DB56E .incbin "baserom.gba", 0x2db56e, 0x1 -gUnknown_082DB56F:: @ 82DB56F +BattleScript_MoveHPDrain:: @ 82DB56F .incbin "baserom.gba", 0x2db56f, 0x22 gUnknown_082DB591:: @ 82DB591 @@ -381,55 +414,55 @@ gUnknown_082DB591:: @ 82DB591 gUnknown_082DB592:: @ 82DB592 .incbin "baserom.gba", 0x2db592, 0x15 -gUnknown_082DB5A7:: @ 82DB5A7 +BattleScript_FlashFireBoost_PPLoss:: @ 82DB5A7 .incbin "baserom.gba", 0x2db5a7, 0x1 -gUnknown_082DB5A8:: @ 82DB5A8 +BattleScript_FlashFireBoost:: @ 82DB5A8 .incbin "baserom.gba", 0x2db5a8, 0x1f -gUnknown_082DB5C7:: @ 82DB5C7 +BattleScript_AbilityNoStatLoss:: @ 82DB5C7 .incbin "baserom.gba", 0x2db5c7, 0xa -gUnknown_082DB5D1:: @ 82DB5D1 +BattleScript_BRNPrevention:: @ 82DB5D1 .incbin "baserom.gba", 0x2db5d1, 0xc -gUnknown_082DB5DD:: @ 82DB5DD +BattleScript_PRLZPrevention:: @ 82DB5DD .incbin "baserom.gba", 0x2db5dd, 0xc -gUnknown_082DB5E9:: @ 82DB5E9 +BattleScript_PSNPrevention:: @ 82DB5E9 .incbin "baserom.gba", 0x2db5e9, 0xc -gUnknown_082DB5F5:: @ 82DB5F5 +BattleScript_ObliviousPreventsAttraction:: @ 82DB5F5 .incbin "baserom.gba", 0x2db5f5, 0xe -gUnknown_082DB603:: @ 82DB603 +BattleScript_FlinchPrevention:: @ 82DB603 .incbin "baserom.gba", 0x2db603, 0x1c -gUnknown_082DB61F:: @ 82DB61F +BattleScript_SoundproofProtected:: @ 82DB61F .incbin "baserom.gba", 0x2db61f, 0x10 -gUnknown_082DB62F:: @ 82DB62F +BattleScript_AbilityNoSpecificStatLoss:: @ 82DB62F .incbin "baserom.gba", 0x2db62f, 0x10 -gUnknown_082DB63F:: @ 82DB63F +BattleScript_StickyHoldActivates:: @ 82DB63F .incbin "baserom.gba", 0x2db63f, 0xe -gUnknown_082DB64D:: @ 82DB64D +BattleScript_ColorChangeActivates:: @ 82DB64D .incbin "baserom.gba", 0x2db64d, 0x7 -gUnknown_082DB654:: @ 82DB654 +BattleScript_RoughSkinActivates:: @ 82DB654 .incbin "baserom.gba", 0x2db654, 0x1b -gUnknown_082DB66F:: @ 82DB66F +BattleScript_CuteCharmActivates:: @ 82DB66F .incbin "baserom.gba", 0x2db66f, 0xd -gUnknown_082DB67C:: @ 82DB67C +BattleScript_ApplySecondaryEffect:: @ 82DB67C .incbin "baserom.gba", 0x2db67c, 0x3 -gUnknown_082DB67F:: @ 82DB67F +BattleScript_SynchronizeActivates:: @ 82DB67F .incbin "baserom.gba", 0x2db67f, 0x3 -gUnknown_082DB682:: @ 82DB682 +BattleScript_NoItemSteal:: @ 82DB682 .incbin "baserom.gba", 0x2db682, 0xa gUnknown_082DB68C:: @ 82DB68C @@ -441,7 +474,7 @@ gUnknown_082DB695:: @ 82DB695 gUnknown_082DB6A5:: @ 82DB6A5 .incbin "baserom.gba", 0x2db6a5, 0x8 -gUnknown_082DB6AD:: @ 82DB6AD +BattleScript_MoveUsedLoafingAround:: @ 82DB6AD .incbin "baserom.gba", 0x2db6ad, 0x2c gUnknown_082DB6D9:: @ 82DB6D9 @@ -450,82 +483,82 @@ gUnknown_082DB6D9:: @ 82DB6D9 gUnknown_082DB6F0:: @ 82DB6F0 .incbin "baserom.gba", 0x2db6f0, 0xb -gUnknown_082DB6FB:: @ 82DB6FB +BattleScript_SubstituteFade:: @ 82DB6FB .incbin "baserom.gba", 0x2db6fb, 0xb -gUnknown_082DB706:: @ 82DB706 +BattleScript_BerryCurePrlzEnd2:: @ 82DB706 .incbin "baserom.gba", 0x2db706, 0x6 -gUnknown_082DB70C:: @ 82DB70C +BattleScript_BerryCureParRet:: @ 82DB70C .incbin "baserom.gba", 0x2db70c, 0x12 -gUnknown_082DB71E:: @ 82DB71E +BattleScript_BerryCurePsnEnd2:: @ 82DB71E .incbin "baserom.gba", 0x2db71e, 0x6 -gUnknown_082DB724:: @ 82DB724 +BattleScript_BerryCurePsnRet:: @ 82DB724 .incbin "baserom.gba", 0x2db724, 0x12 -gUnknown_082DB736:: @ 82DB736 +BattleScript_BerryCureBrnEnd2:: @ 82DB736 .incbin "baserom.gba", 0x2db736, 0x6 -gUnknown_082DB73C:: @ 82DB73C +BattleScript_BerryCureBrnRet:: @ 82DB73C .incbin "baserom.gba", 0x2db73c, 0x12 -gUnknown_082DB74E:: @ 82DB74E +BattleScript_BerryCureFrzEnd2:: @ 82DB74E .incbin "baserom.gba", 0x2db74e, 0x6 -gUnknown_082DB754:: @ 82DB754 +BattleScript_BerryCureFrzRet:: @ 82DB754 .incbin "baserom.gba", 0x2db754, 0x12 -gUnknown_082DB766:: @ 82DB766 +BattleScript_BerryCureSlpEnd2:: @ 82DB766 .incbin "baserom.gba", 0x2db766, 0x6 -gUnknown_082DB76C:: @ 82DB76C +BattleScript_BerryCureSlpRet:: @ 82DB76C .incbin "baserom.gba", 0x2db76c, 0x12 -gUnknown_082DB77E:: @ 82DB77E +BattleScript_BerryCureConfusionEnd2:: @ 82DB77E .incbin "baserom.gba", 0x2db77e, 0x6 -gUnknown_082DB784:: @ 82DB784 +BattleScript_BerryCureConfusionRet:: @ 82DB784 .incbin "baserom.gba", 0x2db784, 0x10 -gUnknown_082DB794:: @ 82DB794 +BattleScript_BerryCureChosenStatusEnd2:: @ 82DB794 .incbin "baserom.gba", 0x2db794, 0x6 -gUnknown_082DB79A:: @ 82DB79A +BattleScript_BerryCureChosenStatusRet:: @ 82DB79A .incbin "baserom.gba", 0x2db79a, 0x14 -gUnknown_082DB7AE:: @ 82DB7AE +BattleScript_WhiteHerbEnd2:: @ 82DB7AE .incbin "baserom.gba", 0x2db7ae, 0x6 -gUnknown_082DB7B4:: @ 82DB7B4 +BattleScript_WhiteHerbRet:: @ 82DB7B4 .incbin "baserom.gba", 0x2db7b4, 0x10 -gUnknown_082DB7C4:: @ 82DB7C4 +BattleScript_ItemHealHP_RemoveItem:: @ 82DB7C4 .incbin "baserom.gba", 0x2db7c4, 0x1d -gUnknown_082DB7E1:: @ 82DB7E1 +BattleScript_BerryPPHealEnd2:: @ 82DB7E1 .incbin "baserom.gba", 0x2db7e1, 0x10 -gUnknown_082DB7F1:: @ 82DB7F1 +BattleScript_ItemHealHP_End2:: @ 82DB7F1 .incbin "baserom.gba", 0x2db7f1, 0x6 -gUnknown_082DB7F7:: @ 82DB7F7 +BattleScript_ItemHealHP_Ret:: @ 82DB7F7 .incbin "baserom.gba", 0x2db7f7, 0x1b gUnknown_082DB812:: @ 82DB812 .incbin "baserom.gba", 0x2db812, 0x4 -gUnknown_082DB816:: @ 82DB816 +BattleScript_HangedOnMsg:: @ 82DB816 .incbin "baserom.gba", 0x2db816, 0xe -gUnknown_082DB824:: @ 82DB824 +BattleScript_BerryConfuseHealEnd2:: @ 82DB824 .incbin "baserom.gba", 0x2db824, 0x2a -gUnknown_082DB84E:: @ 82DB84E +BattleScript_BerryStatRaiseEnd2:: @ 82DB84E .incbin "baserom.gba", 0x2db84e, 0x1b -gUnknown_082DB869:: @ 82DB869 +BattleScript_BerryFocusEnergyEnd2:: @ 82DB869 .incbin "baserom.gba", 0x2db869, 0x10 gUnknown_082DB879:: @ 82DB879 diff --git a/data/battle_scripts_2.s b/data/battle_scripts_2.s index e76bb397b..adabccb88 100644 --- a/data/battle_scripts_2.s +++ b/data/battle_scripts_2.s @@ -5,25 +5,84 @@ .align 2 gUnknown_082DBD08:: @ 82DBD08 - .incbin "baserom.gba", 0x2dbd08, 0x34 + .4byte gUnknown_082DBD68 + .4byte gUnknown_082DBD68 + .4byte gUnknown_082DBD68 + .4byte gUnknown_082DBD68 + .4byte gUnknown_082DBD68 + .4byte gUnknown_082DBD7E + .4byte gUnknown_082DBD68 + .4byte gUnknown_082DBD68 + .4byte gUnknown_082DBD68 + .4byte gUnknown_082DBD68 + .4byte gUnknown_082DBD68 + .4byte gUnknown_082DBD68 + .4byte gUnknown_082DBD68 + .align 2 gUnknown_082DBD3C:: @ 82DBD3C - .incbin "baserom.gba", 0x2dbd3c, 0x18 + .4byte gUnknown_082DBE12 + .4byte gUnknown_082DBE1C + .4byte gUnknown_082DBE1C + .4byte gUnknown_082DBE4B + .4byte gUnknown_082DBE6F + .4byte gUnknown_082DBE91 + .align 2 gUnknown_082DBD54:: @ 82DBD54 - .incbin "baserom.gba", 0x2dbd54, 0x4 + .4byte gUnknown_082DBEB3 + .align 2 gUnknown_082DBD58:: @ 82DBD58 - .incbin "baserom.gba", 0x2dbd58, 0x2c + .4byte gUnknown_082DBEBD + .4byte gUnknown_082DBEC4 + .4byte gUnknown_082DBECD + .4byte gUnknown_082DBEE3 -gUnknown_082DBD84:: @ 82DBD84 +gUnknown_082DBD68:: @ 82DBD68 + .incbin "baserom.gba", 0x2dbd68, 0x16 + +gUnknown_082DBD7E:: @ 82DBD7E + .incbin "baserom.gba", 0x2dbd7e, 0x6 + +BattleScript_SuccessBallThrow:: @ 82DBD84 .incbin "baserom.gba", 0x2dbd84, 0x46 -gUnknown_082DBDCA:: @ 82DBDCA +BattleScript_WallyBallThrow:: @ 82DBDCA .incbin "baserom.gba", 0x2dbdca, 0xa -gUnknown_082DBDD4:: @ 82DBDD4 +BattleScript_ShakeBallThrow:: @ 82DBDD4 .incbin "baserom.gba", 0x2dbdd4, 0x2e -gUnknown_082DBE02:: @ 82DBE02 - .incbin "baserom.gba", 0x2dbe02, 0xf6 +BattleScript_TrainerBallBlock:: @ 82DBE02 + .incbin "baserom.gba", 0x2dbe02, 0x10 + +gUnknown_082DBE12:: @ 82DBE12 + .incbin "baserom.gba", 0x2dbe12, 0xa + +gUnknown_082DBE1C:: @ 82DBE1C + .incbin "baserom.gba", 0x2dbe1c, 0x2f + +gUnknown_082DBE4B:: @ 82DBE4B + .incbin "baserom.gba", 0x2dbe4b, 0x24 + +gUnknown_082DBE6F:: @ 82DBE6F + .incbin "baserom.gba", 0x2dbe6f, 0x22 + +gUnknown_082DBE91:: @ 82DBE91 + .incbin "baserom.gba", 0x2dbe91, 0x22 + +gUnknown_082DBEB3:: @ 82DBEB3 + .incbin "baserom.gba", 0x2dbeb3, 0xA + +gUnknown_082DBEBD:: @ 82DBEBD + .incbin "baserom.gba", 0x2dbebd, 0x7 + +gUnknown_082DBEC4:: @ 82DBEC4 + .incbin "baserom.gba", 0x2dbec4, 0x9 + +gUnknown_082DBECD:: @ 82DBECD + .incbin "baserom.gba", 0x2dbecd, 0x16 + +gUnknown_082DBEE3:: @ 82DBEE3 + .incbin "baserom.gba", 0x2dbee3, 0x15 diff --git a/data/battle_setup.s b/data/battle_setup.s new file mode 100644 index 000000000..d5043aae9 --- /dev/null +++ b/data/battle_setup.s @@ -0,0 +1,190 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_0854FE88:: @ 854FE88 + .byte 0x08, 0x09, 0x05, 0x0a, 0x00, 0x0a, 0x07, 0x06 + +gUnknown_0854FE90:: @ 854FE90 + .byte 0x04, 0x0b, 0x02, 0x03, 0x00, 0x0a, 0x01, 0x06 + +gUnknown_0854FE98:: @ 854FE98 + .byte 0x1d, 0x1e, 0x1f, 0x20, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29 + +gUnknown_0854FEA4:: @ 854FEA4 + .byte 0x1f, 0x20, 0x21 + +gUnknown_0854FEA7:: @ 854FEA7 + .byte 0x1d, 0x1f, 0x20, 0x21, 0x00 + + .align 2 +gUnknown_0854FEAC:: @ 854FEAC + .4byte gUnknown_02038BC8, 0x00000000 + .4byte gTrainerBattleOpponent_A, 0x00000001 + .4byte gUnknown_02038BD0, 0x00000001 + .4byte gUnknown_02038BD4, 0x00000002 + .4byte gUnknown_02038BDC, 0x00000002 + .4byte gUnknown_02038BE4, 0x00000005 + .4byte gUnknown_02038BE8, 0x00000005 + .4byte gUnknown_02038BF0, 0x00000005 + .4byte gUnknown_02038BEC, 0x00000006 + + .align 2 +gUnknown_0854FEF4:: @ 854FEF4 + .4byte gUnknown_02038BC8, 0x00000000 + .4byte gTrainerBattleOpponent_A, 0x00000001 + .4byte gUnknown_02038BD0, 0x00000001 + .4byte gUnknown_02038BD4, 0x00000002 + .4byte gUnknown_02038BDC, 0x00000002 + .4byte gUnknown_02038BE4, 0x00000005 + .4byte gUnknown_02038BE8, 0x00000005 + .4byte gUnknown_02038BF0, 0x00000002 + .4byte gUnknown_02038BEC, 0x00000006 + + .align 2 +gUnknown_0854FF3C:: @ 854FF3C + .4byte gUnknown_02038BC8, 0x00000000 + .4byte gTrainerBattleOpponent_A, 0x00000001 + .4byte gUnknown_02038BD0, 0x00000001 + .4byte gUnknown_02038BD4, 0x00000002 + .4byte gUnknown_02038BDC, 0x00000002 + .4byte gUnknown_02038BE4, 0x00000005 + .4byte gUnknown_02038BE8, 0x00000002 + .4byte gUnknown_02038BF0, 0x00000005 + .4byte gUnknown_02038BEC, 0x00000006 + + .align 2 +gUnknown_0854FF84:: @ 854FF84 + .4byte gUnknown_02038BC8, 0x00000000 + .4byte gTrainerBattleOpponent_A, 0x00000001 + .4byte gUnknown_02038BD0, 0x00000001 + .4byte gUnknown_02038BD4, 0x00000005 + .4byte gUnknown_02038BDC, 0x00000002 + .4byte gUnknown_02038BE4, 0x00000005 + .4byte gUnknown_02038BE8, 0x00000005 + .4byte gUnknown_02038BF0, 0x00000005 + .4byte gUnknown_02038BEC, 0x00000006 + + .align 2 +gUnknown_0854FFCC:: @ 854FFCC + .4byte gUnknown_02038BC8, 0x00000000 + .4byte gTrainerBattleOpponent_A, 0x00000001 + .4byte gUnknown_02038BD0, 0x00000001 + .4byte gUnknown_02038BD4, 0x00000002 + .4byte gUnknown_02038BDC, 0x00000002 + .4byte gUnknown_02038BE4, 0x00000005 + .4byte gUnknown_02038BE8, 0x00000002 + .4byte gUnknown_02038BF0, 0x00000002 + .4byte gUnknown_02038BEC, 0x00000006 + + .align 2 +gUnknown_08550014:: @ 8550014 + .4byte gUnknown_02038BC8, 0x00000000 + .4byte gTrainerBattleOpponent_B, 0x00000001 + .4byte gUnknown_02038BD0, 0x00000001 + .4byte gUnknown_02038BD8, 0x00000002 + .4byte gUnknown_02038BE0, 0x00000002 + .4byte gUnknown_02038BE4, 0x00000005 + .4byte gUnknown_02038BE8, 0x00000005 + .4byte gUnknown_02038BF4, 0x00000005 + .4byte gUnknown_02038BEC, 0x00000006 + + .align 2 +gUnknown_0855005C:: @ 855005C + .4byte gUnknown_02038BC8, 0x00000000 + .4byte gTrainerBattleOpponent_B, 0x00000001 + .4byte gUnknown_02038BD0, 0x00000001 + .4byte gUnknown_02038BD8, 0x00000002 + .4byte gUnknown_02038BE0, 0x00000002 + .4byte gUnknown_02038BE4, 0x00000005 + .4byte gUnknown_02038BE8, 0x00000005 + .4byte gUnknown_02038BF4, 0x00000002 + .4byte gUnknown_02038BEC, 0x00000006 + + .align 2 +gUnknown_085500A4:: @ 85500A4 + .2byte 0x0025, 0x0028, 0x0029, 0x002a, 0x002b, 0x0000, 0x0021, 0x0000 + .2byte 0x02e1, 0x032c, 0x032d, 0x032e, 0x032f, 0x0000, 0x0014, 0x0000 + .2byte 0x002c, 0x002f, 0x0030, 0x0031, 0x0032, 0x0000, 0x001a, 0x0000 + .2byte 0x0039, 0x003c, 0x003d, 0x003e, 0x003f, 0x0000, 0x0018, 0x0000 + .2byte 0x0040, 0x0043, 0x0044, 0x0045, 0x0046, 0x0000, 0x0018, 0x0000 + .2byte 0x02af, 0x02b0, 0x02b1, 0x02b2, 0x02b3, 0x0000, 0x0027, 0x0000 + .2byte 0x02ff, 0x033c, 0x033d, 0x033e, 0x033f, 0x0000, 0x0024, 0x0000 + .2byte 0x005e, 0x0065, 0x0066, 0x0067, 0x0068, 0x0000, 0x001a, 0x0000 + .2byte 0x004e, 0x0054, 0x0055, 0x0056, 0x0057, 0x0000, 0x001a, 0x0000 + .2byte 0x006c, 0x006e, 0x006f, 0x0070, 0x0071, 0x0018, 0x0014, 0x0000 + .2byte 0x0072, 0x0078, 0x0079, 0x007a, 0x007b, 0x0000, 0x0013, 0x0000 + .2byte 0x0090, 0x034c, 0x034d, 0x034e, 0x034f, 0x0018, 0x0038, 0x0000 + .2byte 0x007f, 0x0084, 0x0085, 0x0086, 0x0087, 0x0000, 0x0024, 0x0000 + .2byte 0x0088, 0x008b, 0x008c, 0x008d, 0x008e, 0x0000, 0x0013, 0x0000 + .2byte 0x008f, 0x0093, 0x0094, 0x0095, 0x0096, 0x0000, 0x001d, 0x0000 + .2byte 0x009b, 0x00af, 0x00b0, 0x00b1, 0x00b2, 0x0000, 0x0016, 0x0000 + .2byte 0x00b7, 0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x0000, 0x001e, 0x0000 + .2byte 0x02a0, 0x0338, 0x0339, 0x033a, 0x033b, 0x0000, 0x002a, 0x0000 + .2byte 0x00c3, 0x0340, 0x0341, 0x0342, 0x0343, 0x0000, 0x0026, 0x0000 + .2byte 0x00c4, 0x00c5, 0x00c6, 0x00c7, 0x00c8, 0x0000, 0x0021, 0x0000 + .2byte 0x00ce, 0x00cf, 0x00d0, 0x00d1, 0x00d2, 0x0000, 0x001d, 0x0000 + .2byte 0x00d8, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x0018, 0x000d, 0x0000 + .2byte 0x02a9, 0x02aa, 0x02ab, 0x02ac, 0x02ad, 0x0018, 0x0001, 0x0000 + .2byte 0x00e2, 0x00e4, 0x00e5, 0x00e6, 0x00e7, 0x0000, 0x0023, 0x0000 + .2byte 0x00ee, 0x00ef, 0x00f0, 0x00f1, 0x00f2, 0x0000, 0x0026, 0x0000 + .2byte 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x0000, 0x0026, 0x0000 + .2byte 0x00fe, 0x0101, 0x0102, 0x0103, 0x0104, 0x0000, 0x0024, 0x0000 + .2byte 0x0118, 0x011a, 0x011b, 0x011c, 0x011d, 0x0000, 0x001f, 0x0000 + .2byte 0x0111, 0x0114, 0x0115, 0x0116, 0x0117, 0x0000, 0x001f, 0x0000 + .2byte 0x011f, 0x0120, 0x0121, 0x0122, 0x0123, 0x0000, 0x0020, 0x0000 + .2byte 0x012e, 0x012f, 0x0130, 0x0131, 0x0132, 0x0000, 0x0019, 0x0000 + .2byte 0x0125, 0x0127, 0x0128, 0x0129, 0x012a, 0x0000, 0x0012, 0x0000 + .2byte 0x0133, 0x0134, 0x0135, 0x0136, 0x0137, 0x0000, 0x001e, 0x0000 + .2byte 0x0139, 0x013a, 0x013b, 0x013c, 0x013d, 0x0018, 0x000c, 0x0000 + .2byte 0x013e, 0x0148, 0x0149, 0x014a, 0x014b, 0x0000, 0x0011, 0x0000 + .2byte 0x0153, 0x015a, 0x015b, 0x015c, 0x015d, 0x0000, 0x0015, 0x0000 + .2byte 0x0178, 0x017b, 0x017c, 0x017d, 0x017e, 0x0000, 0x002b, 0x0000 + .2byte 0x0171, 0x0172, 0x0173, 0x0174, 0x0175, 0x0000, 0x0020, 0x0000 + .2byte 0x0166, 0x0168, 0x0169, 0x016a, 0x016b, 0x0000, 0x0019, 0x0000 + .2byte 0x016c, 0x016d, 0x016e, 0x016f, 0x0170, 0x0000, 0x0020, 0x0000 + .2byte 0x0182, 0x0184, 0x0185, 0x0186, 0x0187, 0x0000, 0x002b, 0x0000 + .2byte 0x0161, 0x0162, 0x0163, 0x0164, 0x0165, 0x0000, 0x0019, 0x0000 + .2byte 0x0179, 0x0334, 0x0335, 0x0336, 0x0337, 0x0000, 0x0029, 0x0000 + .2byte 0x0188, 0x0189, 0x018a, 0x018b, 0x018c, 0x0018, 0x0001, 0x0000 + .2byte 0x0196, 0x0199, 0x019a, 0x019b, 0x019c, 0x0000, 0x0023, 0x0000 + .2byte 0x01a3, 0x01a5, 0x01a6, 0x01a7, 0x01a8, 0x0000, 0x001c, 0x0000 + .2byte 0x01ab, 0x01ae, 0x01af, 0x01b0, 0x01b1, 0x0000, 0x001e, 0x0000 + .2byte 0x01b2, 0x01b5, 0x01b6, 0x01b7, 0x01b8, 0x0000, 0x001c, 0x0000 + .2byte 0x01c1, 0x01d1, 0x01d2, 0x01d3, 0x01d4, 0x0000, 0x0027, 0x0000 + .2byte 0x01da, 0x01dd, 0x01de, 0x01df, 0x01e0, 0x0018, 0x000d, 0x0000 + .2byte 0x01e1, 0x01e2, 0x01e7, 0x01e8, 0x01e9, 0x0000, 0x0012, 0x0000 + .2byte 0x01ec, 0x01f1, 0x01f2, 0x01f3, 0x01f4, 0x0000, 0x0028, 0x0000 + .2byte 0x02e4, 0x0330, 0x0331, 0x0332, 0x0333, 0x0000, 0x0017, 0x0000 + .2byte 0x0200, 0x0203, 0x0204, 0x0205, 0x0206, 0x0000, 0x0019, 0x0000 + .2byte 0x0221, 0x0224, 0x0225, 0x0226, 0x0227, 0x0000, 0x0020, 0x0000 + .2byte 0x021a, 0x021d, 0x021e, 0x021f, 0x0220, 0x0000, 0x0020, 0x0000 + .2byte 0x0009, 0x0348, 0x0349, 0x034a, 0x034b, 0x0018, 0x0011, 0x0000 + .2byte 0x022f, 0x0232, 0x0233, 0x0234, 0x0235, 0x0000, 0x0022, 0x0000 + .2byte 0x0228, 0x022b, 0x022c, 0x022d, 0x022e, 0x0000, 0x0022, 0x0000 + .2byte 0x025c, 0x025f, 0x0260, 0x0261, 0x0262, 0x0000, 0x0013, 0x0000 + .2byte 0x026d, 0x026e, 0x026f, 0x0270, 0x0271, 0x0018, 0x000b, 0x0000 + .2byte 0x0273, 0x027c, 0x027d, 0x027e, 0x027f, 0x0000, 0x001b, 0x0000 + .2byte 0x0001, 0x0344, 0x0345, 0x0346, 0x0347, 0x0018, 0x000c, 0x0000 + .2byte 0x0282, 0x0283, 0x0284, 0x0285, 0x0286, 0x0018, 0x003e, 0x0000 + .2byte 0x0291, 0x0292, 0x0293, 0x0294, 0x0294, 0x0018, 0x002b, 0x0000 + .2byte 0x0109, 0x0302, 0x0303, 0x0304, 0x0305, 0x0000, 0x0003, 0x0000 + .2byte 0x010a, 0x0306, 0x0307, 0x0308, 0x0309, 0x0000, 0x000b, 0x0000 + .2byte 0x010b, 0x030a, 0x030b, 0x030c, 0x030d, 0x0000, 0x0002, 0x0000 + .2byte 0x010c, 0x030e, 0x030f, 0x0310, 0x0311, 0x0000, 0x000c, 0x0000 + .2byte 0x010d, 0x0312, 0x0313, 0x0314, 0x0315, 0x0000, 0x0000, 0x0000 + .2byte 0x010e, 0x0316, 0x0317, 0x0318, 0x0319, 0x0000, 0x0004, 0x0000 + .2byte 0x010f, 0x031a, 0x031b, 0x031c, 0x031d, 0x0000, 0x0006, 0x0000 + .2byte 0x0110, 0x031e, 0x031f, 0x0320, 0x0321, 0x0000, 0x0007, 0x0000 + .2byte 0x0105, 0x0105, 0x0105, 0x0105, 0x0105, 0x0000, 0x0008, 0x0000 + .2byte 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0000, 0x0008, 0x0000 + .2byte 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x0000, 0x0008, 0x0000 + .2byte 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0000, 0x0008, 0x0000 + .2byte 0x014f, 0x014f, 0x014f, 0x014f, 0x014f, 0x0000, 0x0008, 0x0000 + + .align 2 +gUnknown_08550584:: @ 8550584 + .2byte 0x0867, 0x0868, 0x0869, 0x086a, 0x086b, 0x086c, 0x086d, 0x086e + diff --git a/data/battle_tent.s b/data/battle_tent.s new file mode 100644 index 000000000..0fd1f28ea --- /dev/null +++ b/data/battle_tent.s @@ -0,0 +1,22 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + +gUnknown_086160B4:: @ 86160B4 + .incbin "baserom.gba", 0x6160b4, 0x20 + +gUnknown_086160D4:: @ 86160D4 + .incbin "baserom.gba", 0x6160d4, 0x4 + +gUnknown_086160D8:: @ 86160D8 + .incbin "baserom.gba", 0x6160d8, 0x1c + +gUnknown_086160F4:: @ 86160F4 + .incbin "baserom.gba", 0x6160f4, 0x4 + +gUnknown_086160F8:: @ 86160F8 + .incbin "baserom.gba", 0x6160f8, 0x28 + +gUnknown_08616120:: @ 8616120 + .incbin "baserom.gba", 0x616120, 0x4 diff --git a/data/battle_tower.s b/data/battle_tower.s new file mode 100644 index 000000000..a952e0773 --- /dev/null +++ b/data/battle_tower.s @@ -0,0 +1,103 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + +@ 85CECB0 + .include "data/battle_frontier/battle_frontier_held_items.inc" + +@ 85CED2E + .include "data/battle_frontier/battle_frontier_trainer_mons.inc" + +@ 85D5ACC + .include "data/battle_frontier/battle_frontier_trainers.inc" + +@ 85D97BC + .include "data/battle_frontier/battle_frontier_mons.inc" + +gUnknown_085DCEDC:: @ 85DCEDC + .incbin "baserom.gba", 0x5dcedc, 0x1e + +gUnknown_085DCEFA:: @ 85DCEFA + .incbin "baserom.gba", 0x5dcefa, 0x14 + +gUnknown_085DCF0E:: @ 85DCF0E + .incbin "baserom.gba", 0x5dcf0e, 0x1e + +gUnknown_085DCF2C:: @ 85DCF2C + .incbin "baserom.gba", 0x5dcf2c, 0x14 + +gUnknown_085DCF40:: @ 85DCF40 + .incbin "baserom.gba", 0x5dcf40, 0x5c0 + +gUnknown_085DD500:: @ 85DD500 + .incbin "baserom.gba", 0x5dd500, 0x190 + +gUnknown_085DD690:: @ 85DD690 + .incbin "baserom.gba", 0x5dd690, 0x40 + +gUnknown_085DD6D0:: @ 85DD6D0 + .incbin "baserom.gba", 0x5dd6d0, 0x5 + +gUnknown_085DD6D5:: @ 85DD6D5 + .incbin "baserom.gba", 0x5dd6d5, 0x7 + +gUnknown_085DD6DC:: @ 85DD6DC + .incbin "baserom.gba", 0x5dd6dc, 0x30 + +@ 85DD70C + .include "data/battle_frontier/slateport_battle_tent_trainer_mons.inc" + +@ 85DDA14 + .include "data/battle_frontier/slateport_battle_tent_trainers.inc" + +@ 85DE02C + .include "data/battle_frontier/slateport_battle_tent_mons.inc" + +@ 85DE48C + .include "data/battle_frontier/verdanturf_battle_tent_trainer_mons.inc" + +@ 85DE610 + .include "data/battle_frontier/verdanturf_battle_tent_trainers.inc" + +@ 85DEC28 + .include "data/battle_frontier/verdanturf_battle_tent_mons.inc" + +@ 85DEEF8 + .include "data/battle_frontier/fallarbor_battle_tent_trainer_mons.inc" + +@ 85DF084 + .include "data/battle_frontier/fallarbor_battle_tent_trainers.inc" + +@ 85DF69C + .include "data/battle_frontier/fallarbor_battle_tent_mons.inc" + +gUnknown_085DF96C:: @ 85DF96C + .incbin "baserom.gba", 0x5df96c, 0x40 + +gUnknown_085DF9AC:: @ 85DF9AC + .incbin "baserom.gba", 0x5df9ac, 0x20 + +gUnknown_085DF9CC:: @ 85DF9CC + .incbin "baserom.gba", 0x5df9cc, 0x20 + +gUnknown_085DF9EC:: @ 85DF9EC + .incbin "baserom.gba", 0x5df9ec, 0xa + +gUnknown_085DF9F6:: @ 85DF9F6 + .incbin "baserom.gba", 0x5df9f6, 0x4 + +gUnknown_085DF9FA:: @ 85DF9FA + .incbin "baserom.gba", 0x5df9fa, 0x20 + +gUnknown_085DFA1A:: @ 85DFA1A + .incbin "baserom.gba", 0x5dfa1a, 0x28 + +gUnknown_085DFA42:: @ 85DFA42 + .incbin "baserom.gba", 0x5dfa42, 0x4 + +gUnknown_085DFA46:: @ 85DFA46 + .incbin "baserom.gba", 0x5dfa46, 0xc + +gUnknown_085DFA52:: @ 85DFA52 + .incbin "baserom.gba", 0x5dfa52, 0xe diff --git a/data/berry_blender.s b/data/berry_blender.s new file mode 100644 index 000000000..d3360d4d8 --- /dev/null +++ b/data/berry_blender.s @@ -0,0 +1,167 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_083390D4:: @ 83390D4 + .incbin "baserom.gba", 0x3390d4, 0x20 + +gUnknown_083390F4:: @ 83390F4 + .incbin "baserom.gba", 0x3390f4, 0x400 + +gUnknown_083394F4:: @ 83394F4 + .incbin "baserom.gba", 0x3394f4, 0x246 + +gUnknown_0833973A:: @ 833973A + .incbin "baserom.gba", 0x33973a, 0x61 + +gUnknown_0833979B:: @ 833979B + .incbin "baserom.gba", 0x33979b, 0x2 + +gUnknown_0833979D:: @ 833979D + .incbin "baserom.gba", 0x33979d, 0x33 + +gUnknown_083397D0:: @ 83397D0 + .incbin "baserom.gba", 0x3397d0, 0x4a + +gUnknown_0833981A:: @ 833981A + .incbin "baserom.gba", 0x33981a, 0x17 + +gUnknown_08339831:: @ 8339831 + .incbin "baserom.gba", 0x339831, 0x27 + +gUnknown_08339858:: @ 8339858 + .incbin "baserom.gba", 0x339858, 0x3e + +gUnknown_08339896:: @ 8339896 + .incbin "baserom.gba", 0x339896, 0x1a + +gUnknown_083398B0:: @ 83398B0 + .incbin "baserom.gba", 0x3398b0, 0x2d + +gUnknown_083398DD:: @ 83398DD + .incbin "baserom.gba", 0x3398dd, 0x18 + +gUnknown_083398F5:: @ 83398F5 + .incbin "baserom.gba", 0x3398f5, 0x1f + +gUnknown_08339914:: @ 8339914 + .incbin "baserom.gba", 0x339914, 0x7 + +gUnknown_0833991B:: @ 833991B + .incbin "baserom.gba", 0x33991b, 0x6 + +gUnknown_08339921:: @ 8339921 + .incbin "baserom.gba", 0x339921, 0x7 + +gUnknown_08339928:: @ 8339928 + .incbin "baserom.gba", 0x339928, 0x6 + +gUnknown_0833992E:: @ 833992E + .incbin "baserom.gba", 0x33992e, 0xe + +gUnknown_0833993C:: @ 833993C + .incbin "baserom.gba", 0x33993c, 0x5 + +gUnknown_08339941:: @ 8339941 + .incbin "baserom.gba", 0x339941, 0x2 + +gUnknown_08339943:: @ 8339943 + .incbin "baserom.gba", 0x339943, 0x4 + +gUnknown_08339947:: @ 8339947 + .incbin "baserom.gba", 0x339947, 0x8 + +gUnknown_0833994F:: @ 833994F + .incbin "baserom.gba", 0x33994f, 0xe + +gUnknown_0833995D:: @ 833995D + .incbin "baserom.gba", 0x33995d, 0x13 + +gUnknown_08339970:: @ 8339970 + .incbin "baserom.gba", 0x339970, 0x4 + +gUnknown_08339974:: @ 8339974 + .incbin "baserom.gba", 0x339974, 0xc + +gUnknown_08339980:: @ 8339980 + .incbin "baserom.gba", 0x339980, 0x38 + +gUnknown_083399B8:: @ 83399B8 + .incbin "baserom.gba", 0x3399b8, 0x8 + +gUnknown_083399C0:: @ 83399C0 + .incbin "baserom.gba", 0x3399c0, 0x8 + +gUnknown_083399C8:: @ 83399C8 + .incbin "baserom.gba", 0x3399c8, 0x8 + +gUnknown_083399D0:: @ 83399D0 + .incbin "baserom.gba", 0x3399d0, 0xc + +gUnknown_083399DC:: @ 83399DC + .incbin "baserom.gba", 0x3399dc, 0x8 + +gUnknown_083399E4:: @ 83399E4 + .incbin "baserom.gba", 0x3399e4, 0x3 + +gUnknown_083399E7:: @ 83399E7 + .incbin "baserom.gba", 0x3399e7, 0x5 + +gUnknown_083399EC:: @ 83399EC + .incbin "baserom.gba", 0x3399ec, 0xd4 + +gUnknown_08339AC0:: @ 8339AC0 + .incbin "baserom.gba", 0x339ac0, 0x8 + +gUnknown_08339AC8:: @ 8339AC8 + .incbin "baserom.gba", 0x339ac8, 0x8 + +gUnknown_08339AD0:: @ 8339AD0 + .incbin "baserom.gba", 0x339ad0, 0x8 + +gUnknown_08339AD8:: @ 8339AD8 + .incbin "baserom.gba", 0x339ad8, 0x60 + +gUnknown_08339B38:: @ 8339B38 + .incbin "baserom.gba", 0x339b38, 0x8 + +gUnknown_08339B40:: @ 8339B40 + .incbin "baserom.gba", 0x339b40, 0x98 + +gUnknown_08339BD8:: @ 8339BD8 + .incbin "baserom.gba", 0x339bd8, 0x8 + +gUnknown_08339BE0:: @ 8339BE0 + .incbin "baserom.gba", 0x339be0, 0x44 + +gUnknown_08339C24:: @ 8339C24 + .incbin "baserom.gba", 0x339c24, 0x8 + +gUnknown_08339C2C:: @ 8339C2C + .incbin "baserom.gba", 0x339c2c, 0x2c + +gUnknown_08339C58:: @ 8339C58 + .incbin "baserom.gba", 0x339c58, 0x8 + +gUnknown_08339C60:: @ 8339C60 + .incbin "baserom.gba", 0x339c60, 0x18 + +gUnknown_08339C78:: @ 8339C78 + .incbin "baserom.gba", 0x339c78, 0x28 + +gUnknown_08339CA0:: @ 8339CA0 + .incbin "baserom.gba", 0x339ca0, 0x1e + +gUnknown_08339CBE:: @ 8339CBE + .incbin "baserom.gba", 0x339cbe, 0x5 + +gUnknown_08339CC3:: @ 8339CC3 + .incbin "baserom.gba", 0x339cc3, 0x5 + +gUnknown_08339CC8:: @ 8339CC8 + .incbin "baserom.gba", 0x339cc8, 0x4c + +gUnknown_08339D14:: @ 8339D14 + .incbin "baserom.gba", 0x339d14, 0x8 diff --git a/data/berry_fix.mb b/data/berry_fix.mb new file mode 100644 index 000000000..0afff07f5 Binary files /dev/null and b/data/berry_fix.mb differ diff --git a/data/berry_tag_screen.s b/data/berry_tag_screen.s index 89197d744..01a44bb14 100644 --- a/data/berry_tag_screen.s +++ b/data/berry_tag_screen.s @@ -5,17 +5,27 @@ .align 2 gUnknown_085EFCF0:: @ 85EFCF0 - .incbin "baserom.gba", 0x5efcf0, 0x10 + .4byte 0x000001f0, 0x000011e1, 0x000021d2, 0x000031c3 + .align 2 gUnknown_085EFD00:: @ 85EFD00 - .incbin "baserom.gba", 0x5efd00, 0x20 + .incbin "graphics/interface/berry_tag_screen.gbapal" -gUnknown_085EFD20:: @ 85EFD20 - .incbin "baserom.gba", 0x5efd20, 0x8 + .align 2 +gUnknown_085EFD20:: @ 85EFD20 struct TextColor + .byte 0x00, 0x02, 0x03 + .byte 0x0F, 0x0E, 0x0D + + .align 2 gUnknown_085EFD28:: @ 85EFD28 - .incbin "baserom.gba", 0x5efd28, 0x28 + window_template 0x01, 0x0b, 0x04, 0x08, 0x02, 0x0f, 0x0045 + window_template 0x01, 0x0b, 0x07, 0x12, 0x04, 0x0f, 0x0055 + window_template 0x01, 0x04, 0x0e, 0x19, 0x04, 0x0f, 0x009d + window_template 0x00, 0x02, 0x00, 0x08, 0x02, 0x0f, 0x0101 + window_template_terminator + .align 2 gBerryFirmnessStringPointers:: @ 85EFD50 .4byte gBerryFirmnessString_VerySoft .4byte gBerryFirmnessString_Soft diff --git a/data/bike.s b/data/bike.s new file mode 100644 index 000000000..26bcc8745 --- /dev/null +++ b/data/bike.s @@ -0,0 +1,23 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_0859744C:: @ 859744C + .incbin "baserom.gba", 0x59744c, 0x10 + +gUnknown_0859745C:: @ 859745C + .incbin "baserom.gba", 0x59745c, 0xc + +gUnknown_08597468:: @ 8597468 + .incbin "baserom.gba", 0x597468, 0x34 + +gUnknown_0859749C:: @ 859749C + .incbin "baserom.gba", 0x59749c, 0x1c + +gUnknown_085974B8:: @ 85974B8 + .incbin "baserom.gba", 0x5974b8, 0x8 + +gUnknown_085974C0:: @ 85974C0 + .incbin "baserom.gba", 0x5974c0, 0x70 diff --git a/data/braille_puzzles.s b/data/braille_puzzles.s index 36ebefb4f..55dcb3a26 100644 --- a/data/braille_puzzles.s +++ b/data/braille_puzzles.s @@ -3,5 +3,14 @@ .section .rodata + .align 2 gUnknown_085EFE74:: @ 85EFE74 - .incbin "baserom.gba", 0x5efe74, 0x48 + .byte 0x04, 0x15, 0x05, 0x15, 0x06, 0x15, 0x07, 0x15 + .byte 0x08, 0x15, 0x09, 0x15, 0x0a, 0x15, 0x0b, 0x15 + .byte 0x0c, 0x15, 0x0c, 0x16, 0x0c, 0x17, 0x0d, 0x17 + .byte 0x0d, 0x18, 0x0d, 0x19, 0x0d, 0x1a, 0x0d, 0x1b + .byte 0x0c, 0x1b, 0x0c, 0x1c, 0x04, 0x1d, 0x05, 0x1d + .byte 0x06, 0x1d, 0x07, 0x1d, 0x08, 0x1d, 0x09, 0x1d + .byte 0x0a, 0x1d, 0x0b, 0x1d, 0x0c, 0x1d, 0x04, 0x1c + .byte 0x04, 0x1b, 0x03, 0x1b, 0x03, 0x1a, 0x03, 0x19 + .byte 0x03, 0x18, 0x03, 0x17, 0x04, 0x17, 0x04, 0x16 diff --git a/data/cable_car.s b/data/cable_car.s index 5fe7568c0..23b81cba7 100644 --- a/data/cable_car.s +++ b/data/cable_car.s @@ -3,47 +3,103 @@ .section .rodata + .align 2 gUnknown_085CD66C:: @ 85CD66C - .incbin "baserom.gba", 0x5cd66c, 0x10 + .4byte 0x000011c0, 0x000021d1, 0x000031e2, 0x000001f3 -gUnknown_085CD67C:: @ 85CD67C - .incbin "baserom.gba", 0x5cd67c, 0x158 + .align 2 +gCableCarMtChimneyTilemap:: @ 85CD67C + .incbin "graphics/misc/cable_car_mt_chimney_map.bin.lz" -gUnknown_085CD7D4:: @ 85CD7D4 - .incbin "baserom.gba", 0x5cd7d4, 0x184 + .align 2 +gCableCarTreeTilemap:: @ 85CD7D4 + .incbin "graphics/misc/cable_car_tree_map.bin.lz" -gUnknown_085CD958:: @ 85CD958 - .incbin "baserom.gba", 0x5cd958, 0x1c4 + .align 2 +gCableCarMountainTilemap:: @ 85CD958 + .incbin "graphics/misc/cable_car_mountain_map.bin.lz" -gUnknown_085CDB1C:: @ 85CDB1C - .incbin "baserom.gba", 0x5cdb1c, 0x14 + .align 2 +gCableCarPylonHookTilemapEntries:: @ 85CDB1C + .2byte 0x3000 + .2byte 0x3001 + .2byte 0x3002 + .2byte 0x3003 + .2byte 0x3004 + .2byte 0x3005 + .2byte 0x3006 + .2byte 0x3007 + .2byte 0x3008 + .2byte 0x3009 -gUnknown_085CDB30:: @ 85CDB30 - .incbin "baserom.gba", 0x5cdb30, 0x24 + .align 2 +gCableCarPylonStemTilemap:: @ 85CDB30 + .incbin "graphics/misc/cable_car_pylon_stem_map.bin.lz" + .align 2 gUnknown_085CDB54:: @ 85CDB54 - .incbin "baserom.gba", 0x5cdb54, 0x20 + obj_tiles gCableCar_Gfx, 0x800, 1 + obj_tiles gCableCarDoor_Gfx, 0x40, 2 + obj_tiles gCableCarCord_Gfx, 0x80, 3 + null_obj_tiles + .align 2 gUnknown_085CDB74:: @ 85CDB74 - .incbin "baserom.gba", 0x5cdb74, 0x28 + obj_pal gCableCar_Pal, 1 + null_obj_pal -gUnknown_085CDB9C:: @ 85CDB9C - .incbin "baserom.gba", 0x5cdb9c, 0x30 + .align 2 +gOamData_85CDB84:: @ 85CDB84 + .2byte 0x0300 + .2byte 0xC000 + .2byte 0x0800 -gUnknown_085CDBCC:: @ 85CDBCC - .incbin "baserom.gba", 0x5cdbcc, 0x18 + .align 2 +gOamData_85CDB8C:: @ 85CDB8C + .2byte 0x4300 + .2byte 0x0000 + .2byte 0x0800 -gUnknown_085CDBE4:: @ 85CDBE4 - .incbin "baserom.gba", 0x5cdbe4, 0x2 + .align 2 +gOamData_85CDB94:: @ 85CDB94 + .2byte 0x0300 + .2byte 0x4000 + .2byte 0x0800 -gUnknown_085CDBE6:: @ 85CDBE6 - .incbin "baserom.gba", 0x5cdbe6, 0x4 + .align 2 +gSpriteTemplate_85CDB9C:: @ 85CDB9C + spr_template 1, 1, gOamData_85CDB84, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8150868 -gUnknown_085CDBEA:: @ 85CDBEA - .incbin "baserom.gba", 0x5cdbea, 0x8 + .align 2 +gSpriteTemplate_85CDBB4:: @ 85CDBB4 + spr_template 2, 1, gOamData_85CDB8C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8150868 -gUnknown_085CDBF2:: @ 85CDBF2 - .incbin "baserom.gba", 0x5cdbf2, 0x6 + .align 2 +gSpriteTemplate_85CDBCC:: @ 85CDBCC + spr_template 3, 1, gOamData_85CDB94, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, nullsub_58 +gCableCarPlayerGraphicsIDs:: @ 85CDBE4 + .byte MAP_OBJ_GFX_RIVAL_BRENDAN_NORMAL + .byte MAP_OBJ_GFX_RIVAL_MAY_NORMAL + +gMtChimneyHikerGraphicsIDs:: @ 85CDBE6 + .byte MAP_OBJ_GFX_HIKER + .byte MAP_OBJ_GFX_CAMPER + .byte MAP_OBJ_GFX_PICNICKER + .byte MAP_OBJ_GFX_ZIGZAGOON @ not used + + .align 1 +gMtChimneyHikerCoords:: @ 85CDBEA + .2byte 0, 80 + .2byte 240, 146 + +gMtChimneyHikerMovementDelayTable:: @ 85CDBF2 + .byte 0 + .byte 60 + .byte 120 + .byte 170 + + .align 2 gUnknown_085CDBF8:: @ 85CDBF8 - .incbin "baserom.gba", 0x5cdbf8, 0x8 + .4byte sub_8150A68 + .4byte sub_8150AF4 diff --git a/data/cable_club.s b/data/cable_club.s new file mode 100644 index 000000000..4961cb1cc --- /dev/null +++ b/data/cable_club.s @@ -0,0 +1,11 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_08550594:: @ 8550594 + .incbin "baserom.gba", 0x550594, 0x8 + +gUnknown_0855059C:: @ 855059C + .incbin "baserom.gba", 0x55059c, 0x190 diff --git a/data/clear_save_data_screen.s b/data/clear_save_data_screen.s index a566152be..3abf9bf6d 100644 --- a/data/clear_save_data_screen.s +++ b/data/clear_save_data_screen.s @@ -3,11 +3,15 @@ .section .rodata + .align 2 gUnknown_085F06C0:: @ 85F06C0 - .incbin "baserom.gba", 0x5f06c0, 0x8 + .4byte 0x000001f0, 0x000011e3 + .align 2 gUnknown_085F06C8:: @ 85F06C8 - .incbin "baserom.gba", 0x5f06c8, 0x10 + window_template 0x00, 0x03, 0x0f, 0x1a, 0x04, 0x0f, 0x000b + window_template_terminator + .align 2 gUnknown_085F06D8:: @ 85F06D8 - .incbin "baserom.gba", 0x5f06d8, 0x8 + window_template 0x00, 0x03, 0x02, 0x05, 0x04, 0x0f, 0x0073 diff --git a/data/contest.s b/data/contest.s new file mode 100644 index 000000000..09754327b --- /dev/null +++ b/data/contest.s @@ -0,0 +1,104 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_08587A6C:: @ 8587A6C + .incbin "baserom.gba", 0x587a6c, 0x4 + +gUnknown_08587A70:: @ 8587A70 + .incbin "baserom.gba", 0x587a70, 0x4 + +gUnknown_08587A74:: @ 8587A74 + .incbin "baserom.gba", 0x587a74, 0x5c + +gUnknown_08587AD0:: @ 8587AD0 + .incbin "baserom.gba", 0x587ad0, 0x18 + +gUnknown_08587AE8:: @ 8587AE8 + .incbin "baserom.gba", 0x587ae8, 0x20 + +gUnknown_08587B08:: @ 8587B08 + .incbin "baserom.gba", 0x587b08, 0x10 + +gUnknown_08587B18:: @ 8587B18 + .incbin "baserom.gba", 0x587b18, 0x68 + +gUnknown_08587B80:: @ 8587B80 + .incbin "baserom.gba", 0x587b80, 0x30 + +gUnknown_08587BB0:: @ 8587BB0 + .incbin "baserom.gba", 0x587bb0, 0x8 + +gUnknown_08587BB8:: @ 8587BB8 + .incbin "baserom.gba", 0x587bb8, 0x10 + +gUnknown_08587BC8:: @ 8587BC8 + .incbin "baserom.gba", 0x587bc8, 0x20 + +gUnknown_08587BE8:: @ 8587BE8 + .incbin "baserom.gba", 0x587be8, 0x18 + +gUnknown_08587C00:: @ 8587C00 + .incbin "baserom.gba", 0x587c00, 0x8 + +gUnknown_08587C08:: @ 8587C08 + .incbin "baserom.gba", 0x587c08, 0x8 + +gUnknown_08587C10:: @ 8587C10 + .incbin "baserom.gba", 0x587c10, 0x8 + +gUnknown_08587C18:: @ 8587C18 + .incbin "baserom.gba", 0x587c18, 0x18 + +gUnknown_08587C30:: @ 8587C30 + .incbin "baserom.gba", 0x587c30, 0x20 + +@ 8587C50 + .include "data/text/contest_text_pointers.inc" + +@ 8587D5C + .incbin "baserom.gba", 0x587d5c, 0x34 + +gUnknown_08587D90:: @ 8587D90 + .incbin "baserom.gba", 0x587d90, 0x80 + +gUnknown_08587E10:: @ 8587E10 + .incbin "baserom.gba", 0x587e10, 0xf8 + +gUnknown_08587F08:: @ 8587F08 + .incbin "baserom.gba", 0x587f08, 0x14 + +gUnknown_08587F1C:: @ 8587F1C + .incbin "baserom.gba", 0x587f1c, 0x18 + +gUnknown_08587F34:: @ 8587F34 + .incbin "baserom.gba", 0x587f34, 0x10 + +gUnknown_08587F44:: @ 8587F44 + .incbin "baserom.gba", 0x587f44, 0x60 + +gUnknown_08587FA4:: @ 8587FA4 + .incbin "baserom.gba", 0x587fa4, 0x100 + +gUnknown_085880A4:: @ 85880A4 + .incbin "baserom.gba", 0x5880a4, 0x1740 + +gUnknown_085897E4:: @ 85897E4 + .incbin "baserom.gba", 0x5897e4, 0xc0 + +gUnknown_085898A4:: @ 85898A4 + .incbin "baserom.gba", 0x5898a4, 0x60 + +gUnknown_08589904:: @ 8589904 + .incbin "baserom.gba", 0x589904, 0x20 + +gUnknown_08589924:: @ 8589924 + .incbin "baserom.gba", 0x589924, 0x68 + +gUnknown_0858998C:: @ 858998C + .incbin "baserom.gba", 0x58998c, 0x60 + +gUnknown_085899EC:: @ 85899EC + .incbin "baserom.gba", 0x5899ec, 0x1c diff --git a/data/contest_ai.s b/data/contest_ai.s index 724fbfbfc..c7cb848a7 100644 --- a/data/contest_ai.s +++ b/data/contest_ai.s @@ -3,5 +3,142 @@ .section .rodata + .align 2 gUnknown_085CDD00:: @ 85CDD00 - .incbin "baserom.gba", 0x5cdd00, 0x220 + .4byte sub_81564DC + .4byte sub_8156530 + .4byte sub_8156550 + .4byte sub_8156594 + .4byte sub_81565D8 + .4byte sub_815661C + .4byte sub_8156660 + .4byte sub_8156684 + .4byte sub_81566C8 + .4byte sub_815670C + .4byte sub_8156750 + .4byte sub_8156794 + .4byte sub_81567BC + .4byte sub_8156800 + .4byte sub_8156844 + .4byte sub_8156888 + .4byte sub_81568CC + .4byte sub_815690C + .4byte sub_8156950 + .4byte sub_8156994 + .4byte sub_81569D8 + .4byte sub_8156A1C + .4byte sub_8156A48 + .4byte sub_8156A98 + .4byte sub_8156AE8 + .4byte sub_8156B38 + .4byte sub_8156B88 + .4byte sub_8156BB4 + .4byte sub_8156C04 + .4byte sub_8156C54 + .4byte sub_8156CA4 + .4byte sub_8156CF4 + .4byte sub_8156D18 + .4byte sub_8156D5C + .4byte sub_8156DA0 + .4byte sub_8156DE4 + .4byte sub_8156E2C + .4byte sub_8156E74 + .4byte sub_8156EBC + .4byte sub_8156F04 + .4byte sub_8156F44 + .4byte sub_8156F88 + .4byte sub_8156FCC + .4byte sub_8157018 + .4byte sub_815705C + .4byte sub_81570A0 + .4byte sub_815712C + .4byte sub_8157174 + .4byte sub_8157200 + .4byte sub_8157248 + .4byte sub_81572A4 + .4byte sub_81572E8 + .4byte sub_815732C + .4byte sub_8157370 + .4byte sub_81573B4 + .4byte sub_8157410 + .4byte sub_8157454 + .4byte sub_8157498 + .4byte sub_81574DC + .4byte sub_8157520 + .4byte sub_8157578 + .4byte sub_81575BC + .4byte sub_8157600 + .4byte sub_8157644 + .4byte sub_8157688 + .4byte sub_8157700 + .4byte sub_8157748 + .4byte sub_8157790 + .4byte sub_8157808 + .4byte sub_8157850 + .4byte sub_8157898 + .4byte sub_81578F8 + .4byte sub_8157940 + .4byte sub_8157988 + .4byte sub_81579CC + .4byte sub_8157A10 + .4byte sub_8157A54 + .4byte sub_8157A98 + .4byte sub_8157ADC + .4byte sub_8157B38 + .4byte sub_8157B7C + .4byte sub_8157BC0 + .4byte sub_8157C04 + .4byte sub_8157C48 + .4byte sub_8157C94 + .4byte sub_8157CDC + .4byte sub_8157D24 + .4byte sub_8157D60 + .4byte sub_8157DA8 + .4byte sub_8157DF0 + .4byte sub_8157E3C + .4byte sub_8157E84 + .4byte sub_8157ECC + .4byte sub_8157F14 + .4byte sub_8157F5C + .4byte sub_8157FA0 + .4byte sub_8157FE8 + .4byte sub_8158030 + .4byte sub_8158078 + .4byte sub_81580C0 + .4byte sub_8158108 + .4byte sub_815814C + .4byte sub_8158190 + .4byte sub_81581D4 + .4byte sub_8158218 + .4byte sub_8158254 + .4byte sub_8158298 + .4byte sub_81582DC + .4byte sub_8158320 + .4byte sub_8158364 + .4byte sub_81583B8 + .4byte sub_81583FC + .4byte sub_8158440 + .4byte sub_815846C + .4byte sub_815849C + .4byte sub_81584D4 + .4byte sub_8158508 + .4byte sub_815853C + .4byte sub_815858C + .4byte sub_81585DC + .4byte sub_815862C + .4byte sub_815867C + .4byte sub_81586D0 + .4byte sub_8158724 + .4byte sub_8158778 + .4byte sub_81587CC + .4byte sub_815881C + .4byte sub_815886C + .4byte dp15_call + .4byte sub_81588BC + .4byte sub_8158948 + .4byte sub_81589A4 + .4byte sub_81589EC + .4byte sub_8158A34 + .4byte sub_8158AA0 + .4byte sub_8158AE8 + diff --git a/data/contest_effect.s b/data/contest_effect.s new file mode 100644 index 000000000..31b294836 --- /dev/null +++ b/data/contest_effect.s @@ -0,0 +1,22 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + +@ 858C2B4 + .include "data/contest_moves.inc" + +@ 858CDCC + .include "data/contest_effects.inc" + +@ A lookup table with a 1 for each combo starter ID and a 0 for ID 0, +@ which means "not a combo starter move". +gComboStarterLookupTable:: @ 858CE8C + .byte 0 + .rept 62 + .byte 1 + .endr + + .align 2 +@ 858CECC + .include "data/contest_effect_function_table.inc" diff --git a/data/contest_link_80F57C4.s b/data/contest_link_80F57C4.s new file mode 100644 index 000000000..7d30cea57 --- /dev/null +++ b/data/contest_link_80F57C4.s @@ -0,0 +1,46 @@ +@ the third big chunk of data + + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_0858D6B0:: @ 858D6B0 + .incbin "baserom.gba", 0x58d6b0, 0x20 + +gUnknown_0858D6D0:: @ 858D6D0 + .incbin "baserom.gba", 0x58d6d0, 0x128 + +gUnknown_0858D7F8:: @ 858D7F8 + .incbin "baserom.gba", 0x58d7f8, 0x18 + +gUnknown_0858D810:: @ 858D810 + .incbin "baserom.gba", 0x58d810, 0x40 + +gUnknown_0858D850:: @ 858D850 + .incbin "baserom.gba", 0x58d850, 0x10 + +gUnknown_0858D860:: @ 858D860 + .incbin "baserom.gba", 0x58d860, 0x18 + +gUnknown_0858D878:: @ 858D878 + .incbin "baserom.gba", 0x58d878, 0x8 + +gUnknown_0858D880:: @ 858D880 + .incbin "baserom.gba", 0x58d880, 0x8 + +gUnknown_0858D888:: @ 858D888 + .incbin "baserom.gba", 0x58d888, 0x10 + +gUnknown_0858D898:: @ 858D898 + .incbin "baserom.gba", 0x58d898, 0x30 + +gUnknown_0858D8C8:: @ 858D8C8 + .incbin "baserom.gba", 0x58d8c8, 0x18 + +gUnknown_0858D8E0:: @ 858D8E0 + .incbin "baserom.gba", 0x58d8e0, 0x8 + +gUnknown_0858D8E8:: @ 858D8E8 + .incbin "baserom.gba", 0x58d8e8, 0x4 diff --git a/data/contest_painting.s b/data/contest_painting.s new file mode 100644 index 000000000..728649dec --- /dev/null +++ b/data/contest_painting.s @@ -0,0 +1,64 @@ +@ the third big chunk of data + + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_085A989C:: @ 85A989C + .incbin "baserom.gba", 0x5a989c, 0x200 + +gUnknown_085A9A9C:: @ 85A9A9C + .incbin "baserom.gba", 0x5a9a9c, 0x1084 + +gUnknown_085AAB20:: @ 85AAB20 + .incbin "baserom.gba", 0x5aab20, 0xc30 + +gUnknown_085AB750:: @ 85AB750 + .incbin "baserom.gba", 0x5ab750, 0xb38 + +gUnknown_085AC288:: @ 85AC288 + .incbin "baserom.gba", 0x5ac288, 0xfb8 + +gUnknown_085AD240:: @ 85AD240 + .incbin "baserom.gba", 0x5ad240, 0x1130 + +gUnknown_085AE370:: @ 85AE370 + .incbin "baserom.gba", 0x5ae370, 0x604 + +gUnknown_085AE974:: @ 85AE974 + .incbin "baserom.gba", 0x5ae974, 0x50c + +gUnknown_085AEE80:: @ 85AEE80 + .incbin "baserom.gba", 0x5aee80, 0x50c + +gUnknown_085AF38C:: @ 85AF38C + .incbin "baserom.gba", 0x5af38c, 0x50c + +gUnknown_085AF898:: @ 85AF898 + .incbin "baserom.gba", 0x5af898, 0x50c + +gUnknown_085AFDA4:: @ 85AFDA4 + .incbin "baserom.gba", 0x5afda4, 0x50c + +gUnknown_085B02B0:: @ 85B02B0 + .incbin "baserom.gba", 0x5b02b0, 0x524 + +gUnknown_085B07D4:: @ 85B07D4 + .incbin "baserom.gba", 0x5b07d4, 0x14 + +gUnknown_085B07E8:: @ 85B07E8 + .incbin "baserom.gba", 0x5b07e8, 0x4 + +gUnknown_085B07EC:: @ 85B07EC + .incbin "baserom.gba", 0x5b07ec, 0x8 + +gUnknown_085B07F4:: @ 85B07F4 + .incbin "baserom.gba", 0x5b07f4, 0x3c + +gUnknown_085B0830:: @ 85B0830 + .incbin "baserom.gba", 0x5b0830, 0x8 + +gUnknown_085B0838:: @ 85B0838 + .incbin "baserom.gba", 0x5b0838, 0x4 diff --git a/data/coord_event_weather.s b/data/coord_event_weather.s new file mode 100644 index 000000000..907a7c09f --- /dev/null +++ b/data/coord_event_weather.s @@ -0,0 +1,8 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_085102E0:: @ 85102E0 + .incbin "baserom.gba", 0x5102e0, 0x68 diff --git a/data/credits.s b/data/credits.s index 63565a24f..cc75915a0 100644 --- a/data/credits.s +++ b/data/credits.s @@ -3,50 +3,1575 @@ .section .rodata + .align 2 gUnknown_085E56F0:: @ 85E56F0 - .incbin "baserom.gba", 0x5e56f0, 0x80 + .incbin "graphics/credits/credits_1.gbapal" + .incbin "graphics/credits/credits_2.gbapal" + .incbin "graphics/credits/credits_3.gbapal" + .incbin "graphics/credits/credits_4.gbapal" + .align 2 gUnknown_085E5770:: @ 85E5770 - .incbin "baserom.gba", 0x5e5770, 0x43c + .incbin "graphics/credits/the_end_copyright.4bpp.lz" gUnknown_085E5BAC:: @ 85E5BAC - .incbin "baserom.gba", 0x5e5bac, 0xf + .byte 0x00, 0x01, 0x00, 0xff, 0x01, 0xff, 0xff, 0x01, 0xff, 0xff, 0x01, 0xff, 0xff, 0x01, 0xff gUnknown_085E5BBB:: @ 85E5BBB - .incbin "baserom.gba", 0x5e5bbb, 0xf + .byte 0x01, 0xff, 0x01, 0x01, 0xff, 0x01, 0x01, 0x02, 0x01, 0x01, 0xff, 0x01, 0x01, 0xff, 0x01 gUnknown_085E5BCA:: @ 85E5BCA - .incbin "baserom.gba", 0x5e5bca, 0xf + .byte 0x01, 0x00, 0x00, 0x01, 0xff, 0xff, 0x01, 0x02, 0x02, 0x01, 0xff, 0xff, 0x01, 0x80, 0x80 gUnknown_085E5BD9:: @ 85E5BD9 - .incbin "baserom.gba", 0x5e5bd9, 0xf + .byte 0x01, 0x03, 0x01, 0x01, 0x04, 0x01, 0x01, 0x05, 0x01, 0x01, 0xc4, 0x01, 0x01, 0xc3, 0x01 gUnknown_085E5BE8:: @ 85E5BE8 - .incbin "baserom.gba", 0x5e5be8, 0xf0c + .byte 0x01, 0x06, 0x07, 0x01, 0x08, 0x09, 0x01, 0xff, 0x01, 0x01, 0x88, 0x89, 0x01, 0x86, 0x87 +gCreditsText_EmptyString:: @ 85E5BF7 + .string "$" + +gCreditsText_PkmnEmeraldVersion:: @ 85E5BF8 + .string "POKéMON EMERALD VERSION$" + +gCreditsText_Credits:: @ 85E5C10 + .string "Credits$" + +gCreditsText_ExecutiveDirector:: @ 85E5C18 + .string "Executive Director$" + +gCreditsText_Director:: @ 85E5C2B + .string "Director$" + +gCreditsText_ArtDirector:: @ 85E5C34 + .string "Art Director$" + +gCreditsText_BattleDirector:: @ 85E5C41 + .string "Battle Director$" + +gCreditsText_MainProgrammer:: @ 85E5C51 + .string "Main Programmer$" + +gCreditsText_BattleSystemPgrms:: @ 85E5C61 + .string "Battle System Programmers$" + +gCreditsText_FieldSystemPgrms:: @ 85E5C7B + .string "Field System Programmer$" + +gCreditsText_Programmers:: @ 85E5C93 + .string "Programmers$" + +gCreditsText_MainGraphicDesigner:: @ 85E5C9F + .string "Main Graphic Designer$" + +gCreditsText_GraphicDesigners:: @ 85E5CB5 + .string "Graphic Designers$" + +gCreditsText_PkmnDesigners:: @ 85E5CC7 + .string "POKéMON Designers$" + +gCreditsText_MusicComposition:: @ 85E5CD9 + .string "Music Composition$" + +gCreditsText_SoundEffectsAndPkmnVoices:: @ 85E5CEB + .string "Sound Effects & POKéMON Voices$" + +gCreditsText_GameDesigners:: @ 85E5D0A + .string "Game Designers$" + +gCreditsText_ScenarioPlot:: @ 85E5D19 + .string "Scenario Plot$" + +gCreditsText_Scenario:: @ 85E5D27 + .string "Scenario$" + +gCreditsText_ScriptDesigners:: @ 85E5D30 + .string "Script Designers$" + +gCreditsText_MapDesigners:: @ 85E5D41 + .string "Map Designers$" + +gCreditsText_MapDataDesigners:: @ 85E5D4F + .string "Map Data Designers$" + +gCreditsText_ParametricDesigners:: @ 85E5D62 + .string "Parametric Designers$" + +gCreditsText_PokedexText:: @ 85E5D77 + .string "POKéDEX Text$" + +gCreditsText_EnvAndToolPgrms:: @ 85E5D84 + .string "Environment & Tool Programmers$" + +gCreditsText_NCLProductTesting:: @ 85E5DA3 + .string "NCL Product Testing$" + +gCreditsText_SpecialThanks:: @ 85E5DB7 + .string "Special Thanks$" + +gCreditsText_Coordinators:: @ 85E5DC6 + .string "Coordinators$" + +gCreditsText_Producers:: @ 85E5DD3 + .string "Producers$" + +gCreditsText_ExecProducers:: @ 85E5DDD + .string "Executive Producers$" + +gCreditsText_InfoSupervisors:: @ 85E5DF1 + .string "Information Supervisors$" + +gCreditsText_TaskManagers:: @ 85E5E09 + .string "Task Managers$" + +gCreditsText_BrailleCodeCheck:: @ 85E5E17 + .string "Braille Code Check$" + +gCreditsText_WorldDirector:: @ 85E5E2A + .string "World Director$" + +gCreditsText_BattleFrontierData:: @ 85E5E39 + .string "Battle Frontier Data$" + +gCreditsText_SupportProgrammers:: @ 85E5E4E + .string "Support Programmers$" + +gCreditsText_Artwork:: @ 85E5E62 + .string "Artwork$" + +gCreditsText_LeadProgrammer:: @ 85E5E6A + .string "Lead Programmer$" + +gCreditsText_LeadGraphicArtist:: @ 85E5E7A + .string "Lead Graphic Artist$" + +gCreditsText_SatoshiTajiri:: @ 85E5E8E + .string "Satoshi Tajiri$" + +gCreditsText_JunichiMasuda:: @ 85E5E9D + .string "Junichi Masuda$" + +gCreditsText_KenSugimori:: @ 85E5EAC + .string "Ken Sugimori$" + +gCreditsText_ShigekiMorimoto:: @ 85E5EB9 + .string "Shigeki Morimoto$" + +gCreditsText_TetsuyaWatanabe:: @ 85E5ECA + .string "Tetsuya Watanabe$" + +gCreditsText_HisashiSogabe:: @ 85E5EDB + .string "Hisashi Sogabe$" + +gCreditsText_SosukeTamada:: @ 85E5EEA + .string "Sosuke Tamada$" + +gCreditsText_AkitoMori:: @ 85E5EF8 + .string "Akito Mori$" + +gCreditsText_KeitaKagaya:: @ 85E5F03 + .string "Keita Kagaya$" + +gCreditsText_YoshinoriMatsuda:: @ 85E5F10 + .string "Yoshinori Matsuda$" + +gCreditsText_HiroyukiNakamura:: @ 85E5F22 + .string "Hiroyuki Nakamura$" + +gCreditsText_MasaoTaya:: @ 85E5F34 + .string "Masao Taya$" + +gCreditsText_SatoshiNohara:: @ 85E5F3F + .string "Satoshi Nohara$" + +gCreditsText_TomomichiOhta:: @ 85E5F4E + .string "Tomomichi Ohta$" + +gCreditsText_MiyukiIwasawa:: @ 85E5F5D + .string "Miyuki Iwasawa$" + +gCreditsText_TakenoriOhta:: @ 85E5F6C + .string "Takenori Ohta$" + +gCreditsText_HironobuYoshida:: @ 85E5F7A + .string "Hironobu Yoshida$" + +gCreditsText_MotofumiFujiwara:: @ 85E5F8B + .string "Motofumi Fujiwara$" + +gCreditsText_SatoshiOhta:: @ 85E5F9D + .string "Satoshi Ohta$" + +gCreditsText_AsukaIwashita:: @ 85E5FAA + .string "Asuka Iwashita$" + +gCreditsText_AimiTomita:: @ 85E5FB9 + .string "Aimi Tomita$" + +gCreditsText_TakaoUnno:: @ 85E5FC5 + .string "Takao Unno$" + +gCreditsText_KanakoEo:: @ 85E5FD0 + .string "Kanako Eo$" + +gCreditsText_JunOkutani:: @ 85E5FDA + .string "Jun Okutani$" + +gCreditsText_AtsukoNishida:: @ 85E5FE6 + .string "Atsuko Nishida$" + +gCreditsText_MuneoSaito:: @ 85E5FF5 + .string "Muneo Saito$" + +gCreditsText_RenaYoshikawa:: @ 85E6001 + .string "Rena Yoshikawa$" + +gCreditsText_GoIchinose:: @ 85E6010 + .string "Go Ichinose$" + +gCreditsText_MorikazuAoki:: @ 85E601C + .string "Morikazu Aoki$" + +gCreditsText_KojiNishino:: @ 85E602A + .string "Koji Nishino$" + +gCreditsText_KenjiMatsushima:: @ 85E6037 + .string "Kenji Matsushima$" + +gCreditsText_TetsujiOhta:: @ 85E6048 + .string "Tetsuji Ohta$" + +gCreditsText_HitomiSato:: @ 85E6055 + .string "Hitomi Sato$" + +gCreditsText_TakeshiKawachimaru:: @ 85E6061 + .string "Takeshi Kawachimaru$" + +gCreditsText_TeruyukiShimoyamada:: @ 85E6075 + .string "Teruyuki Shimoyamada$" + +gCreditsText_ShigeruOhmori:: @ 85E608A + .string "Shigeru Ohmori$" + +gCreditsText_TadashiTakahashi:: @ 85E6099 + .string "Tadashi Takahashi$" + +gCreditsText_ToshinobuMatsumiya:: @ 85E60AB + .string "Toshinobu Matsumiya$" + +gCreditsText_AkihitoTomisawa:: @ 85E60BF + .string "Akihito Tomisawa$" + +gCreditsText_HirokiEnomoto:: @ 85E60D0 + .string "Hiroki Enomoto$" + +gCreditsText_KazuyukiTerada:: @ 85E60DF + .string "Kazuyuki Terada$" + +gCreditsText_YuriSakurai:: @ 85E60EF + .string "Yuri Sakurai$" + +gCreditsText_HiromiSagawa:: @ 85E60FC + .string "Hiromi Sagawa$" + +gCreditsText_KenjiTominaga:: @ 85E610A + .string "Kenji Tominaga$" + +gCreditsText_YoshioTajiri:: @ 85E6119 + .string "Yoshio Tajiri$" + +gCreditsText_TeikoSasaki:: @ 85E6127 + .string "Teiko Sasaki$" + +gCreditsText_SachikoHamano:: @ 85E6134 + .string "Sachiko Hamano$" + +gCreditsText_ChieMatsumiya:: @ 85E6143 + .string "Chie Matsumiya$" + +gCreditsText_AkikoShinozaki:: @ 85E6152 + .string "Akiko Shinozaki$" + +gCreditsText_AstukoFujii:: @ 85E6162 + .string "Astuko Fujii$" + +gCreditsText_NozomuSaito:: @ 85E616F + .string "Nozomu Saito$" + +gCreditsText_KenkichiToyama:: @ 85E617C + .string "Kenkichi Toyama$" + +gCreditsText_SuguruNakatsui:: @ 85E618C + .string "Suguru Nakatsui$" + +gCreditsText_YumiFunasaka:: @ 85E619C + .string "Yumi Funasaka$" + +gCreditsText_NaokoYanase:: @ 85E61AA + .string "Naoko Yanase$" + +gCreditsText_NCLSuperMarioClub:: @ 85E61B7 + .string "NCL Super Mario Club$" + +gCreditsText_AtsushiTada:: @ 85E61CC + .string "Atsushi Tada$" + +gCreditsText_TakahiroOhnishi:: @ 85E61D9 + .string "Takahiro Ohnishi$" + +gCreditsText_NorihideOkamura:: @ 85E61EA + .string "Norihide Okamura$" + +gCreditsText_HiroNakamura:: @ 85E61FB + .string "Hiro Nakamura$" + +gCreditsText_HiroyukiUesugi:: @ 85E6209 + .string "Hiroyuki Uesugi$" + +gCreditsText_TerukiMurakawa:: @ 85E6219 + .string "Teruki Murakawa$" + +gCreditsText_AkiraKinashi:: @ 85E6229 + .string "Akira Kinashi$" + +gCreditsText_MichikoTakizawa:: @ 85E6237 + .string "Michiko Takizawa$" + +gCreditsText_MakikoTakada:: @ 85E6248 + .string "Makiko Takada$" + +gCreditsText_TakanaoKondo:: @ 85E6256 + .string "Takanao Kondo$" + +gCreditsText_AiMashima:: @ 85E6264 + .string "Ai Mashima$" + +gCreditsText_GakujiNomoto:: @ 85E626F + .string "Gakuji Nomoto$" + +gCreditsText_TakehiroIzushi:: @ 85E627D + .string "Takehiro Izushi$" + +gCreditsText_HitoshiYamagami:: @ 85E628D + .string "Hitoshi Yamagami$" + +gCreditsText_KyokoWatanabe:: @ 85E629E + .string "Kyoko Watanabe$" + +gCreditsText_TakaoNakano:: @ 85E62AD + .string "Takao Nakano$" + +gCreditsText_HiroyukiJinnai:: @ 85E62BA + .string "Hiroyuki Jinnai$" + +gCreditsText_HiroakiTsuru:: @ 85E62CA + .string "Hiroaki Tsuru$" + +gCreditsText_TsunekazIshihara:: @ 85E62D8 + .string "Tsunekaz Ishihara$" + +gCreditsText_SatoruIwata:: @ 85E62EA + .string "Satoru Iwata$" + +gCreditsText_KazuyaSuyama:: @ 85E62F7 + .string "Kazuya Suyama$" + +gCreditsText_SatoshiMitsuhara:: @ 85E6305 + .string "Satoshi Mitsuhara$" + +gCreditsText_JapanBrailleLibrary:: @ 85E6317 + .string "Japan Braille Library$" + +gCreditsText_TomotakaKomura:: @ 85E632D + .string "Tomotaka Komura$" + +gCreditsText_MikikoOhhashi:: @ 85E633D + .string "Mikiko Ohhashi$" + +gCreditsText_DaisukeHoshino:: @ 85E634C + .string "Daisuke Hoshino$" + +gCreditsText_KenjiroIto:: @ 85E635C + .string "Kenjiro Ito$" + +gCreditsText_RuiKawaguchi:: @ 85E6368 + .string "Rui Kawaguchi$" + +gCreditsText_ShunsukeKohori:: @ 85E6376 + .string "Shunsuke Kohori$" + +gCreditsText_SachikoNakamichi:: @ 85E6386 + .string "Sachiko Nakamichi$" + +gCreditsText_FujikoNomura:: @ 85E6398 + .string "Fujiko Nomura$" + +gCreditsText_KazukiYoshihara:: @ 85E63A6 + .string "Kazuki Yoshihara$" + +gCreditsText_RetsujiNomoto:: @ 85E63B7 + .string "Retsuji Nomoto$" + +gCreditsText_AzusaTajima:: @ 85E63C6 + .string "Azusa Tajima$" + +gCreditsText_ShusakuEgami:: @ 85E63D3 + .string "Shusaku Egami$" + +gCreditsText_PackageAndManual:: @ 85E63E1 + .string "Package & Manual Illustration$" + +gCreditsText_EnglishVersion:: @ 85E63FF + .string "English Version Coordinators$" + +gCreditsText_Translator:: @ 85E641C + .string "Translator$" + +gCreditsText_TextEditor:: @ 85E6427 + .string "Text Editor$" + +gCreditsText_NCLCoordinator:: @ 85E6433 + .string "NCL Coordinator$" + +gCreditsText_GraphicDesigner:: @ 85E6443 + .string "Graphic Designer$" + +gCreditsText_NOAProductTesting:: @ 85E6454 + .string "NOA Product Testing$" + +gCreditsText_HideyukiNakajima:: @ 85E6468 + .string "Hideyuki Nakajima$" + +gCreditsText_HidenoriSaeki:: @ 85E647A + .string "Hidenori Saeki$" + +gCreditsText_YokoWatanabe:: @ 85E6489 + .string "Yoko Watanabe$" + +gCreditsText_SakaeKimura:: @ 85E6497 + .string "Sakae Kimura$" + +gCreditsText_ChiakiShinkai:: @ 85E64A4 + .string "Chiaki Shinkai$" + +gCreditsText_SethMcMahill:: @ 85E64B3 + .string "Seth McMahill$" + +gCreditsText_NobOgasawara:: @ 85E64C1 + .string "Nob Ogasawara$" + +gCreditsText_TeresaLillygren:: @ 85E64CF + .string "Teresa Lillygren$" + +gCreditsText_KimikoNakamichi:: @ 85E64E0 + .string "Kimiko Nakamichi$" + +gCreditsText_SouichiYamamoto:: @ 85E64F1 + .string "Souichi Yamamoto$" + +gCreditsText_YuichiroIto:: @ 85E6502 + .string "Yuichiro Ito$" + +gCreditsText_ThomasHertzog:: @ 85E650F + .string "Thomas Hertzog$" + +gCreditsText_MikaKurosawa:: @ 85E651E + .string "Mika Kurosawa$" + +gCreditsText_NationalFederationBlind:: @ 85E652C + .string "National Federation of the Blind$" + +gCreditsText_PatriciaAMaurer:: @ 85E654D + .string "Patricia A. Maurer$" + +gCreditsText_EuropeanBlindUnion:: @ 85E6560 + .string "European Blind Union$" + +gCreditsText_AustralianBrailleAuthority:: @ 85E6575 + .string "Australian Braille Authority$" + +gCreditsText_RoyalNewZealandFederationBlind:: @ 85E6592 + .string "Royal New Zealand Federation for the Blind$" + +gCreditsText_MotoyasuTojima:: @ 85E65BD + .string "Motoyasu Tojima$" + +gCreditsText_NicolaPrattBarlow:: @ 85E65CD + .string "Nicola Pratt-Barlow$" + +gCreditsText_ShellieDow:: @ 85E65E1 + .string "Shellie Dow$" + +gCreditsText_ErikJohnson:: @ 85E65ED + .string "Erik Johnson$" + + .align 2 +gCreditsEntry_EmptyString:: @ 85E65FC + .4byte 0x00000000, gCreditsText_EmptyString + + .align 2 +gCreditsEntry_PkmnEmeraldVersion:: @ 85E6604 + .4byte 0x00000107, gCreditsText_PkmnEmeraldVersion + + .align 2 +gCreditsEntry_Credits:: @ 85E660C + .4byte 0x0000010b, gCreditsText_Credits + + .align 2 +gCreditsEntry_ExecutiveDirector:: @ 85E6614 + .4byte 0x00000108, gCreditsText_ExecutiveDirector + + .align 2 +gCreditsEntry_Director:: @ 85E661C + .4byte 0x0000010c, gCreditsText_Director + + .align 2 +gCreditsEntry_ArtDirector:: @ 85E6624 + .4byte 0x0000010a, gCreditsText_ArtDirector + + .align 2 +gCreditsEntry_BattleDirector:: @ 85E662C + .4byte 0x0000010a, gCreditsText_BattleDirector + + .align 2 +gCreditsEntry_MainProgrammer:: @ 85E6634 + .4byte 0x0000010a, gCreditsText_MainProgrammer + + .align 2 +gCreditsEntry_BattleSystemPgrms:: @ 85E663C + .4byte 0x00000108, gCreditsText_BattleSystemPgrms + + .align 2 +gCreditsEntry_FieldSystemPgrms:: @ 85E6644 + .4byte 0x00000107, gCreditsText_FieldSystemPgrms + + .align 2 +gCreditsEntry_Programmers:: @ 85E664C + .4byte 0x0000010c, gCreditsText_Programmers + + .align 2 +gCreditsEntry_MainGraphicDesigner:: @ 85E6654 + .4byte 0x00000107, gCreditsText_MainGraphicDesigner + + .align 2 +gCreditsEntry_GraphicDesigners:: @ 85E665C + .4byte 0x00000109, gCreditsText_GraphicDesigners + + .align 2 +gCreditsEntry_PkmnDesigners:: @ 85E6664 + .4byte 0x0000010a, gCreditsText_PkmnDesigners + + .align 2 +gCreditsEntry_MusicComposition:: @ 85E666C + .4byte 0x0000010d, gCreditsText_MusicComposition + + .align 2 +gCreditsEntry_SoundEffectsAndPkmnVoices:: @ 85E6674 + .4byte 0x00000104, gCreditsText_SoundEffectsAndPkmnVoices + + .align 2 +gCreditsEntry_GameDesigners:: @ 85E667C + .4byte 0x0000010b, gCreditsText_GameDesigners + + .align 2 +gCreditsEntry_ScenarioPlot:: @ 85E6684 + .4byte 0x0000010b, gCreditsText_ScenarioPlot + + .align 2 +gCreditsEntry_Scenario:: @ 85E668C + .4byte 0x0000010d, gCreditsText_Scenario + + .align 2 +gCreditsEntry_ScriptDesigners:: @ 85E6694 + .4byte 0x0000010a, gCreditsText_ScriptDesigners + + .align 2 +gCreditsEntry_MapDesigners:: @ 85E669C + .4byte 0x0000010b, gCreditsText_MapDesigners + + .align 2 +gCreditsEntry_MapDataDesigners:: @ 85E66A4 + .4byte 0x00000109, gCreditsText_MapDataDesigners + + .align 2 +gCreditsEntry_ParametricDesigners:: @ 85E66AC + .4byte 0x00000109, gCreditsText_ParametricDesigners + + .align 2 +gCreditsEntry_PokedexText:: @ 85E66B4 + .4byte 0x0000010b, gCreditsText_PokedexText + + .align 2 +gCreditsEntry_EnvAndToolPgrms:: @ 85E66BC + .4byte 0x00000106, gCreditsText_EnvAndToolPgrms + + .align 2 +gCreditsEntry_NCLProductTesting:: @ 85E66C4 + .4byte 0x0000010b, gCreditsText_NCLProductTesting + + .align 2 +gCreditsEntry_SpecialThanks:: @ 85E66CC + .4byte 0x0000010a, gCreditsText_SpecialThanks + + .align 2 +gCreditsEntry_Coordinators:: @ 85E66D4 + .4byte 0x0000010b, gCreditsText_Coordinators + + .align 2 +gCreditsEntry_Producers:: @ 85E66DC + .4byte 0x0000010b, gCreditsText_Producers + + .align 2 +gCreditsEntry_ExecProducers:: @ 85E66E4 + .4byte 0x00000107, gCreditsText_ExecProducers + + .align 2 +gCreditsEntry_InfoSupervisors:: @ 85E66EC + .4byte 0x0000010a, gCreditsText_InfoSupervisors + + .align 2 +gCreditsEntry_TaskManagers:: @ 85E66F4 + .4byte 0x00000108, gCreditsText_TaskManagers + + .align 2 +gCreditsEntry_BrailleCodeCheck:: @ 85E66FC + .4byte 0x0000010a, gCreditsText_BrailleCodeCheck + + .align 2 +gCreditsEntry_WorldDirector:: @ 85E6704 + .4byte 0x0000010a, gCreditsText_WorldDirector + + .align 2 +gCreditsEntry_BattleFrontierData:: @ 85E670C + .4byte 0x00000108, gCreditsText_BattleFrontierData + + .align 2 +gCreditsEntry_SupportProgrammers:: @ 85E6714 + .4byte 0x0000010a, gCreditsText_SupportProgrammers + + .align 2 +gCreditsEntry_Artwork:: @ 85E671C + .4byte 0x0000010c, gCreditsText_Artwork + + .align 2 +gCreditsEntry_LeadProgrammer:: @ 85E6724 + .4byte 0x0000010a, gCreditsText_LeadProgrammer + + .align 2 +gCreditsEntry_LeadGraphicArtist:: @ 85E672C + .4byte 0x00000109, gCreditsText_LeadGraphicArtist + + .align 2 +gCreditsEntry_SatoshiTajiri:: @ 85E6734 + .4byte 0x0000000b, gCreditsText_SatoshiTajiri + + .align 2 +gCreditsEntry_JunichiMasuda:: @ 85E673C + .4byte 0x0000000b, gCreditsText_JunichiMasuda + + .align 2 +gCreditsEntry_KenSugimori:: @ 85E6744 + .4byte 0x0000000b, gCreditsText_KenSugimori + + .align 2 +gCreditsEntry_ShigekiMorimoto:: @ 85E674C + .4byte 0x0000000b, gCreditsText_ShigekiMorimoto + + .align 2 +gCreditsEntry_TetsuyaWatanabe:: @ 85E6754 + .4byte 0x0000000b, gCreditsText_TetsuyaWatanabe + + .align 2 +gCreditsEntry_HisashiSogabe:: @ 85E675C + .4byte 0x0000000b, gCreditsText_HisashiSogabe + + .align 2 +gCreditsEntry_SosukeTamada:: @ 85E6764 + .4byte 0x0000000b, gCreditsText_SosukeTamada + + .align 2 +gCreditsEntry_AkitoMori:: @ 85E676C + .4byte 0x0000000b, gCreditsText_AkitoMori + + .align 2 +gCreditsEntry_KeitaKagaya:: @ 85E6774 + .4byte 0x0000000b, gCreditsText_KeitaKagaya + + .align 2 +gCreditsEntry_YoshinoriMatsuda:: @ 85E677C + .4byte 0x0000000b, gCreditsText_YoshinoriMatsuda + + .align 2 +gCreditsEntry_HiroyukiNakamura:: @ 85E6784 + .4byte 0x0000000b, gCreditsText_HiroyukiNakamura + + .align 2 +gCreditsEntry_MasaoTaya:: @ 85E678C + .4byte 0x0000000b, gCreditsText_MasaoTaya + + .align 2 +gCreditsEntry_SatoshiNohara:: @ 85E6794 + .4byte 0x0000000b, gCreditsText_SatoshiNohara + + .align 2 +gCreditsEntry_TomomichiOhta:: @ 85E679C + .4byte 0x0000000b, gCreditsText_TomomichiOhta + + .align 2 +gCreditsEntry_MiyukiIwasawa:: @ 85E67A4 + .4byte 0x0000000b, gCreditsText_MiyukiIwasawa + + .align 2 +gCreditsEntry_TakenoriOhta:: @ 85E67AC + .4byte 0x0000000b, gCreditsText_TakenoriOhta + + .align 2 +gCreditsEntry_HironobuYoshida:: @ 85E67B4 + .4byte 0x0000000b, gCreditsText_HironobuYoshida + + .align 2 +gCreditsEntry_MotofumiFujiwara:: @ 85E67BC + .4byte 0x0000000b, gCreditsText_MotofumiFujiwara + + .align 2 +gCreditsEntry_SatoshiOhta:: @ 85E67C4 + .4byte 0x0000000b, gCreditsText_SatoshiOhta + + .align 2 +gCreditsEntry_AsukaIwashita:: @ 85E67CC + .4byte 0x0000000b, gCreditsText_AsukaIwashita + + .align 2 +gCreditsEntry_AimiTomita:: @ 85E67D4 + .4byte 0x0000000b, gCreditsText_AimiTomita + + .align 2 +gCreditsEntry_TakaoUnno:: @ 85E67DC + .4byte 0x0000000b, gCreditsText_TakaoUnno + + .align 2 +gCreditsEntry_KanakoEo:: @ 85E67E4 + .4byte 0x0000000b, gCreditsText_KanakoEo + + .align 2 +gCreditsEntry_JunOkutani:: @ 85E67EC + .4byte 0x0000000b, gCreditsText_JunOkutani + + .align 2 +gCreditsEntry_AtsukoNishida:: @ 85E67F4 + .4byte 0x0000000b, gCreditsText_AtsukoNishida + + .align 2 +gCreditsEntry_MuneoSaito:: @ 85E67FC + .4byte 0x0000000b, gCreditsText_MuneoSaito + + .align 2 +gCreditsEntry_RenaYoshikawa:: @ 85E6804 + .4byte 0x0000000b, gCreditsText_RenaYoshikawa + + .align 2 +gCreditsEntry_GoIchinose:: @ 85E680C + .4byte 0x0000000b, gCreditsText_GoIchinose + + .align 2 +gCreditsEntry_MorikazuAoki:: @ 85E6814 + .4byte 0x0000000b, gCreditsText_MorikazuAoki + + .align 2 +gCreditsEntry_KojiNishino:: @ 85E681C + .4byte 0x0000000b, gCreditsText_KojiNishino + + .align 2 +gCreditsEntry_KenjiMatsushima:: @ 85E6824 + .4byte 0x0000000b, gCreditsText_KenjiMatsushima + + .align 2 +gCreditsEntry_TetsujiOhta:: @ 85E682C + .4byte 0x0000000b, gCreditsText_TetsujiOhta + + .align 2 +gCreditsEntry_HitomiSato:: @ 85E6834 + .4byte 0x0000000b, gCreditsText_HitomiSato + + .align 2 +gCreditsEntry_TakeshiKawachimaru:: @ 85E683C + .4byte 0x0000000b, gCreditsText_TakeshiKawachimaru + + .align 2 +gCreditsEntry_TeruyukiShimoyamada:: @ 85E6844 + .4byte 0x0000000b, gCreditsText_TeruyukiShimoyamada + + .align 2 +gCreditsEntry_ShigeruOhmori:: @ 85E684C + .4byte 0x0000000b, gCreditsText_ShigeruOhmori + + .align 2 +gCreditsEntry_TadashiTakahashi:: @ 85E6854 + .4byte 0x0000000b, gCreditsText_TadashiTakahashi + + .align 2 +gCreditsEntry_ToshinobuMatsumiya:: @ 85E685C + .4byte 0x0000000b, gCreditsText_ToshinobuMatsumiya + + .align 2 +gCreditsEntry_AkihitoTomisawa:: @ 85E6864 + .4byte 0x0000000b, gCreditsText_AkihitoTomisawa + + .align 2 +gCreditsEntry_HirokiEnomoto:: @ 85E686C + .4byte 0x0000000b, gCreditsText_HirokiEnomoto + + .align 2 +gCreditsEntry_KazuyukiTerada:: @ 85E6874 + .4byte 0x0000000b, gCreditsText_KazuyukiTerada + + .align 2 +gCreditsEntry_YuriSakurai:: @ 85E687C + .4byte 0x0000000b, gCreditsText_YuriSakurai + + .align 2 +gCreditsEntry_HiromiSagawa:: @ 85E6884 + .4byte 0x0000000b, gCreditsText_HiromiSagawa + + .align 2 +gCreditsEntry_KenjiTominaga:: @ 85E688C + .4byte 0x0000000b, gCreditsText_KenjiTominaga + + .align 2 +gCreditsEntry_YoshioTajiri:: @ 85E6894 + .4byte 0x0000000b, gCreditsText_YoshioTajiri + + .align 2 +gCreditsEntry_TeikoSasaki:: @ 85E689C + .4byte 0x0000000b, gCreditsText_TeikoSasaki + + .align 2 +gCreditsEntry_SachikoHamano:: @ 85E68A4 + .4byte 0x0000000b, gCreditsText_SachikoHamano + + .align 2 +gCreditsEntry_ChieMatsumiya:: @ 85E68AC + .4byte 0x0000000b, gCreditsText_ChieMatsumiya + + .align 2 +gCreditsEntry_AkikoShinozaki:: @ 85E68B4 + .4byte 0x0000000b, gCreditsText_AkikoShinozaki + + .align 2 +gCreditsEntry_AstukoFujii:: @ 85E68BC + .4byte 0x0000000b, gCreditsText_AstukoFujii + + .align 2 +gCreditsEntry_NozomuSaito:: @ 85E68C4 + .4byte 0x0000000b, gCreditsText_NozomuSaito + + .align 2 +gCreditsEntry_KenkichiToyama:: @ 85E68CC + .4byte 0x0000000b, gCreditsText_KenkichiToyama + + .align 2 +gCreditsEntry_SuguruNakatsui:: @ 85E68D4 + .4byte 0x0000000b, gCreditsText_SuguruNakatsui + + .align 2 +gCreditsEntry_YumiFunasaka:: @ 85E68DC + .4byte 0x0000000b, gCreditsText_YumiFunasaka + + .align 2 +gCreditsEntry_NaokoYanase:: @ 85E68E4 + .4byte 0x0000000b, gCreditsText_NaokoYanase + + .align 2 +gCreditsEntry_NCLSuperMarioClub:: @ 85E68EC + .4byte 0x0000000b, gCreditsText_NCLSuperMarioClub + + .align 2 +gCreditsEntry_AtsushiTada:: @ 85E68F4 + .4byte 0x0000000b, gCreditsText_AtsushiTada + + .align 2 +gCreditsEntry_TakahiroOhnishi:: @ 85E68FC + .4byte 0x0000000b, gCreditsText_TakahiroOhnishi + + .align 2 +gCreditsEntry_NorihideOkamura:: @ 85E6904 + .4byte 0x0000000b, gCreditsText_NorihideOkamura + + .align 2 +gCreditsEntry_HiroNakamura:: @ 85E690C + .4byte 0x0000000b, gCreditsText_HiroNakamura + + .align 2 +gCreditsEntry_HiroyukiUesugi:: @ 85E6914 + .4byte 0x0000000b, gCreditsText_HiroyukiUesugi + + .align 2 +gCreditsEntry_TerukiMurakawa:: @ 85E691C + .4byte 0x0000000b, gCreditsText_TerukiMurakawa + + .align 2 +gCreditsEntry_AkiraKinashi:: @ 85E6924 + .4byte 0x0000000b, gCreditsText_AkiraKinashi + + .align 2 +gCreditsEntry_MichikoTakizawa:: @ 85E692C + .4byte 0x0000000b, gCreditsText_MichikoTakizawa + + .align 2 +gCreditsEntry_MakikoTakada:: @ 85E6934 + .4byte 0x0000000b, gCreditsText_MakikoTakada + + .align 2 +gCreditsEntry_TakanaoKondo:: @ 85E693C + .4byte 0x0000000b, gCreditsText_TakanaoKondo + + .align 2 +gCreditsEntry_AiMashima:: @ 85E6944 + .4byte 0x0000000b, gCreditsText_AiMashima + + .align 2 +gCreditsEntry_GakujiNomoto:: @ 85E694C + .4byte 0x0000000b, gCreditsText_GakujiNomoto + + .align 2 +gCreditsEntry_TakehiroIzushi:: @ 85E6954 + .4byte 0x0000000b, gCreditsText_TakehiroIzushi + + .align 2 +gCreditsEntry_HitoshiYamagami:: @ 85E695C + .4byte 0x0000000b, gCreditsText_HitoshiYamagami + + .align 2 +gCreditsEntry_KyokoWatanabe:: @ 85E6964 + .4byte 0x0000000b, gCreditsText_KyokoWatanabe + + .align 2 +gCreditsEntry_TakaoNakano:: @ 85E696C + .4byte 0x0000000b, gCreditsText_TakaoNakano + + .align 2 +gCreditsEntry_HiroyukiJinnai:: @ 85E6974 + .4byte 0x0000000b, gCreditsText_HiroyukiJinnai + + .align 2 +gCreditsEntry_HiroakiTsuru:: @ 85E697C + .4byte 0x0000000b, gCreditsText_HiroakiTsuru + + .align 2 +gCreditsEntry_TsunekazIshihara:: @ 85E6984 + .4byte 0x0000000b, gCreditsText_TsunekazIshihara + + .align 2 +gCreditsEntry_SatoruIwata:: @ 85E698C + .4byte 0x0000000b, gCreditsText_SatoruIwata + + .align 2 +gCreditsEntry_KazuyaSuyama:: @ 85E6994 + .4byte 0x0000000b, gCreditsText_KazuyaSuyama + + .align 2 +gCreditsEntry_SatoshiMitsuhara:: @ 85E699C + .4byte 0x0000000b, gCreditsText_SatoshiMitsuhara + + .align 2 +gCreditsEntry_JapanBrailleLibrary:: @ 85E69A4 + .4byte 0x00000009, gCreditsText_JapanBrailleLibrary + + .align 2 +gCreditsEntry_TomotakaKomura:: @ 85E69AC + .4byte 0x0000000b, gCreditsText_TomotakaKomura + + .align 2 +gCreditsEntry_MikikoOhhashi:: @ 85E69B4 + .4byte 0x0000000b, gCreditsText_MikikoOhhashi + + .align 2 +gCreditsEntry_DaisukeHoshino:: @ 85E69BC + .4byte 0x0000000b, gCreditsText_DaisukeHoshino + + .align 2 +gCreditsEntry_KenjiroIto:: @ 85E69C4 + .4byte 0x0000000b, gCreditsText_KenjiroIto + + .align 2 +gCreditsEntry_RuiKawaguchi:: @ 85E69CC + .4byte 0x0000000b, gCreditsText_RuiKawaguchi + + .align 2 +gCreditsEntry_ShunsukeKohori:: @ 85E69D4 + .4byte 0x0000000b, gCreditsText_ShunsukeKohori + + .align 2 +gCreditsEntry_SachikoNakamichi:: @ 85E69DC + .4byte 0x0000000b, gCreditsText_SachikoNakamichi + + .align 2 +gCreditsEntry_FujikoNomura:: @ 85E69E4 + .4byte 0x0000000b, gCreditsText_FujikoNomura + + .align 2 +gCreditsEntry_KazukiYoshihara:: @ 85E69EC + .4byte 0x0000000b, gCreditsText_KazukiYoshihara + + .align 2 +gCreditsEntry_RetsujiNomoto:: @ 85E69F4 + .4byte 0x0000000b, gCreditsText_RetsujiNomoto + + .align 2 +gCreditsEntry_AzusaTajima:: @ 85E69FC + .4byte 0x0000000b, gCreditsText_AzusaTajima + + .align 2 +gCreditsEntry_ShusakuEgami:: @ 85E6A04 + .4byte 0x0000000b, gCreditsText_ShusakuEgami + + .align 2 +gCreditsEntry_PackageAndManual:: @ 85E6A0C + .4byte 0x00000100, gCreditsText_PackageAndManual + + .align 2 +gCreditsEntry_EnglishVersion:: @ 85E6A14 + .4byte 0x00000100, gCreditsText_EnglishVersion + + .align 2 +gCreditsEntry_Translator:: @ 85E6A1C + .4byte 0x00000100, gCreditsText_Translator + + .align 2 +gCreditsEntry_TextEditor:: @ 85E6A24 + .4byte 0x00000100, gCreditsText_TextEditor + + .align 2 +gCreditsEntry_NCLCoordinator:: @ 85E6A2C + .4byte 0x00000100, gCreditsText_NCLCoordinator + + .align 2 +gCreditsEntry_GraphicDesigner:: @ 85E6A34 + .4byte 0x00000100, gCreditsText_GraphicDesigner + + .align 2 +gCreditsEntry_NOAProductTesting:: @ 85E6A3C + .4byte 0x00000100, gCreditsText_NOAProductTesting + + .align 2 +gCreditsEntry_HideyukiNakajima:: @ 85E6A44 + .4byte 0x00000000, gCreditsText_HideyukiNakajima + + .align 2 +gCreditsEntry_HidenoriSaeki:: @ 85E6A4C + .4byte 0x00000000, gCreditsText_HidenoriSaeki + + .align 2 +gCreditsEntry_YokoWatanabe:: @ 85E6A54 + .4byte 0x00000000, gCreditsText_YokoWatanabe + + .align 2 +gCreditsEntry_SakaeKimura:: @ 85E6A5C + .4byte 0x00000000, gCreditsText_SakaeKimura + + .align 2 +gCreditsEntry_ChiakiShinkai:: @ 85E6A64 + .4byte 0x00000000, gCreditsText_ChiakiShinkai + + .align 2 +gCreditsEntry_SethMcMahill:: @ 85E6A6C + .4byte 0x00000000, gCreditsText_SethMcMahill + + .align 2 +gCreditsEntry_NobOgasawara:: @ 85E6A74 + .4byte 0x00000000, gCreditsText_NobOgasawara + + .align 2 +gCreditsEntry_TeresaLillygren:: @ 85E6A7C + .4byte 0x00000000, gCreditsText_TeresaLillygren + + .align 2 +gCreditsEntry_KimikoNakamichi:: @ 85E6A84 + .4byte 0x00000000, gCreditsText_KimikoNakamichi + + .align 2 +gCreditsEntry_SouichiYamamoto:: @ 85E6A8C + .4byte 0x00000000, gCreditsText_SouichiYamamoto + + .align 2 +gCreditsEntry_YuichiroIto:: @ 85E6A94 + .4byte 0x00000000, gCreditsText_YuichiroIto + + .align 2 +gCreditsEntry_ThomasHertzog:: @ 85E6A9C + .4byte 0x00000000, gCreditsText_ThomasHertzog + + .align 2 +gCreditsEntry_MikaKurosawa:: @ 85E6AA4 + .4byte 0x00000000, gCreditsText_MikaKurosawa + + .align 2 +gCreditsEntry_NationalFederationBlind:: @ 85E6AAC + .4byte 0x00000000, gCreditsText_NationalFederationBlind + + .align 2 +gCreditsEntry_PatriciaAMaurer:: @ 85E6AB4 + .4byte 0x00000000, gCreditsText_PatriciaAMaurer + + .align 2 +gCreditsEntry_EuropeanBlindUnion:: @ 85E6ABC + .4byte 0x00000000, gCreditsText_EuropeanBlindUnion + + .align 2 +gCreditsEntry_AustralianBrailleAuthority:: @ 85E6AC4 + .4byte 0x00000000, gCreditsText_AustralianBrailleAuthority + + .align 2 +gCreditsEntry_RoyalNewZealandFederationBlind:: @ 85E6ACC + .4byte 0x00000000, gCreditsText_RoyalNewZealandFederationBlind + + .align 2 +gCreditsEntry_MotoyasuTojima:: @ 85E6AD4 + .4byte 0x00000000, gCreditsText_MotoyasuTojima + + .align 2 +gCreditsEntry_NicolaPrattBarlow:: @ 85E6ADC + .4byte 0x00000000, gCreditsText_NicolaPrattBarlow + + .align 2 +gCreditsEntry_ShellieDow:: @ 85E6AE4 + .4byte 0x00000000, gCreditsText_ShellieDow + + .align 2 +gCreditsEntry_ErikJohnson:: @ 85E6AEC + .4byte 0x00000000, gCreditsText_ErikJohnson + + .align 2 gUnknown_085E6AF4:: @ 85E6AF4 - .incbin "baserom.gba", 0x5e6af4, 0x474 + .4byte gCreditsEntry_EmptyString + .4byte gCreditsEntry_PkmnEmeraldVersion + .4byte gCreditsEntry_Credits + .4byte gCreditsEntry_EmptyString + .4byte gCreditsEntry_EmptyString -gUnknown_085E6F68:: @ 85E6F68 - .incbin "baserom.gba", 0x5e6f68, 0x4 + .4byte gCreditsEntry_EmptyString + .4byte gCreditsEntry_Director + .4byte gCreditsEntry_ShigekiMorimoto + .4byte gCreditsEntry_EmptyString + .4byte gCreditsEntry_EmptyString + .4byte gCreditsEntry_EmptyString + .4byte gCreditsEntry_ArtDirector + .4byte gCreditsEntry_KenSugimori + .4byte gCreditsEntry_EmptyString + .4byte gCreditsEntry_EmptyString + + .4byte gCreditsEntry_EmptyString + .4byte gCreditsEntry_WorldDirector + .4byte gCreditsEntry_JunichiMasuda + .4byte gCreditsEntry_EmptyString + .4byte gCreditsEntry_EmptyString + + .4byte gCreditsEntry_LeadProgrammer + .4byte gCreditsEntry_HisashiSogabe + .4byte gCreditsEntry_LeadGraphicArtist + .4byte gCreditsEntry_MotofumiFujiwara + .4byte gCreditsEntry_EmptyString + + .4byte gCreditsEntry_Programmers + .4byte gCreditsEntry_HisashiSogabe + .4byte gCreditsEntry_TomomichiOhta + .4byte gCreditsEntry_NozomuSaito + .4byte gCreditsEntry_EmptyString + + .4byte gCreditsEntry_Programmers + .4byte gCreditsEntry_AkitoMori + .4byte gCreditsEntry_HiroyukiNakamura + .4byte gCreditsEntry_MasaoTaya + .4byte gCreditsEntry_EmptyString + + .4byte gCreditsEntry_Programmers + .4byte gCreditsEntry_SatoshiNohara + .4byte gCreditsEntry_MiyukiIwasawa + .4byte gCreditsEntry_YoshinoriMatsuda + .4byte gCreditsEntry_KeitaKagaya + + .4byte gCreditsEntry_Programmers + .4byte gCreditsEntry_TetsuyaWatanabe + .4byte gCreditsEntry_SosukeTamada + .4byte gCreditsEntry_TakenoriOhta + .4byte gCreditsEntry_EmptyString + + .4byte gCreditsEntry_EmptyString + .4byte gCreditsEntry_GraphicDesigners + .4byte gCreditsEntry_MotofumiFujiwara + .4byte gCreditsEntry_SatoshiOhta + .4byte gCreditsEntry_EmptyString + + .4byte gCreditsEntry_GraphicDesigners + .4byte gCreditsEntry_KenkichiToyama + .4byte gCreditsEntry_AsukaIwashita + .4byte gCreditsEntry_TakaoUnno + .4byte gCreditsEntry_EmptyString + + .4byte gCreditsEntry_GraphicDesigners + .4byte gCreditsEntry_KenSugimori + .4byte gCreditsEntry_HironobuYoshida + .4byte gCreditsEntry_AimiTomita + .4byte gCreditsEntry_KanakoEo + + .4byte gCreditsEntry_MusicComposition + .4byte gCreditsEntry_GoIchinose + .4byte gCreditsEntry_JunichiMasuda + .4byte gCreditsEntry_MorikazuAoki + .4byte gCreditsEntry_HitomiSato + + .4byte gCreditsEntry_EmptyString + .4byte gCreditsEntry_SoundEffectsAndPkmnVoices + .4byte gCreditsEntry_GoIchinose + .4byte gCreditsEntry_MorikazuAoki + .4byte gCreditsEntry_EmptyString + + .4byte gCreditsEntry_GameDesigners + .4byte gCreditsEntry_ShigekiMorimoto + .4byte gCreditsEntry_TeruyukiShimoyamada + .4byte gCreditsEntry_TakeshiKawachimaru + .4byte gCreditsEntry_AkihitoTomisawa + + .4byte gCreditsEntry_GameDesigners + .4byte gCreditsEntry_SuguruNakatsui + .4byte gCreditsEntry_TetsujiOhta + .4byte gCreditsEntry_HitomiSato + .4byte gCreditsEntry_KenjiMatsushima + + .4byte gCreditsEntry_GameDesigners + .4byte gCreditsEntry_JunichiMasuda + .4byte gCreditsEntry_KojiNishino + .4byte gCreditsEntry_ShigeruOhmori + .4byte gCreditsEntry_TadashiTakahashi + + .4byte gCreditsEntry_ScenarioPlot + .4byte gCreditsEntry_AkihitoTomisawa + .4byte gCreditsEntry_JunichiMasuda + .4byte gCreditsEntry_KojiNishino + .4byte gCreditsEntry_EmptyString + + .4byte gCreditsEntry_Scenario + .4byte gCreditsEntry_AkihitoTomisawa + .4byte gCreditsEntry_HitomiSato + .4byte gCreditsEntry_ToshinobuMatsumiya + .4byte gCreditsEntry_EmptyString + + .4byte gCreditsEntry_ScriptDesigners + .4byte gCreditsEntry_TomomichiOhta + .4byte gCreditsEntry_SatoshiNohara + .4byte gCreditsEntry_EmptyString + .4byte gCreditsEntry_EmptyString + + .4byte gCreditsEntry_MapDesigners + .4byte gCreditsEntry_SuguruNakatsui + .4byte gCreditsEntry_TeruyukiShimoyamada + .4byte gCreditsEntry_ShigeruOhmori + .4byte gCreditsEntry_TetsujiOhta + + .4byte gCreditsEntry_EmptyString + .4byte gCreditsEntry_BattleFrontierData + .4byte gCreditsEntry_TetsujiOhta + .4byte gCreditsEntry_EmptyString + .4byte gCreditsEntry_EmptyString + + .4byte gCreditsEntry_ParametricDesigners + .4byte gCreditsEntry_TeruyukiShimoyamada + .4byte gCreditsEntry_ShigekiMorimoto + .4byte gCreditsEntry_TetsujiOhta + .4byte gCreditsEntry_KojiNishino + + .4byte gCreditsEntry_EmptyString + .4byte gCreditsEntry_PokedexText + .4byte gCreditsEntry_KenjiMatsushima + .4byte gCreditsEntry_EmptyString + .4byte gCreditsEntry_EmptyString + + .4byte gCreditsEntry_EnvAndToolPgrms + .4byte gCreditsEntry_HisashiSogabe + .4byte gCreditsEntry_SosukeTamada + .4byte gCreditsEntry_HiroyukiNakamura + .4byte gCreditsEntry_AkitoMori + + .4byte gCreditsEntry_PkmnDesigners + .4byte gCreditsEntry_KenSugimori + .4byte gCreditsEntry_MotofumiFujiwara + .4byte gCreditsEntry_ShigekiMorimoto + .4byte gCreditsEntry_EmptyString + + .4byte gCreditsEntry_PkmnDesigners + .4byte gCreditsEntry_HironobuYoshida + .4byte gCreditsEntry_SatoshiOhta + .4byte gCreditsEntry_AsukaIwashita + .4byte gCreditsEntry_EmptyString + + .4byte gCreditsEntry_PkmnDesigners + .4byte gCreditsEntry_TakaoUnno + .4byte gCreditsEntry_KanakoEo + .4byte gCreditsEntry_AimiTomita + .4byte gCreditsEntry_EmptyString + + .4byte gCreditsEntry_PkmnDesigners + .4byte gCreditsEntry_AtsukoNishida + .4byte gCreditsEntry_MuneoSaito + .4byte gCreditsEntry_RenaYoshikawa + .4byte gCreditsEntry_JunOkutani + + .4byte gCreditsEntry_EmptyString + .4byte gCreditsEntry_SupportProgrammers + .4byte gCreditsEntry_SatoshiMitsuhara + .4byte gCreditsEntry_DaisukeHoshino + .4byte gCreditsEntry_EmptyString + + .4byte gCreditsEntry_EmptyString + .4byte gCreditsEntry_NCLProductTesting + .4byte gCreditsEntry_NCLSuperMarioClub + .4byte gCreditsEntry_EmptyString + .4byte gCreditsEntry_EmptyString + + .4byte gCreditsEntry_EmptyString + .4byte gCreditsEntry_PackageAndManual + .4byte gCreditsEntry_KenSugimori + .4byte gCreditsEntry_EmptyString + .4byte gCreditsEntry_EmptyString + + .4byte gCreditsEntry_EmptyString + .4byte gCreditsEntry_SpecialThanks + .4byte gCreditsEntry_KenjiTominaga + .4byte gCreditsEntry_HirokiEnomoto + .4byte gCreditsEntry_EmptyString + + .4byte gCreditsEntry_SpecialThanks + .4byte gCreditsEntry_KazuyaSuyama + .4byte gCreditsEntry_KenjiroIto + .4byte gCreditsEntry_MichikoTakizawa + .4byte gCreditsEntry_MakikoTakada + + .4byte gCreditsEntry_SpecialThanks + .4byte gCreditsEntry_MikikoOhhashi + .4byte gCreditsEntry_TakanaoKondo + .4byte gCreditsEntry_RuiKawaguchi + .4byte gCreditsEntry_EmptyString + + .4byte gCreditsEntry_SpecialThanks + .4byte gCreditsEntry_TakahiroOhnishi + .4byte gCreditsEntry_NorihideOkamura + .4byte gCreditsEntry_ShunsukeKohori + .4byte gCreditsEntry_EmptyString + + .4byte gCreditsEntry_InfoSupervisors + .4byte gCreditsEntry_KazuyukiTerada + .4byte gCreditsEntry_YuriSakurai + .4byte gCreditsEntry_YumiFunasaka + .4byte gCreditsEntry_NaokoYanase + + .4byte gCreditsEntry_EmptyString + .4byte gCreditsEntry_Artwork + .4byte gCreditsEntry_SachikoNakamichi + .4byte gCreditsEntry_FujikoNomura + .4byte gCreditsEntry_EmptyString + + .4byte gCreditsEntry_EmptyString + .4byte gCreditsEntry_Artwork + .4byte gCreditsEntry_HideyukiNakajima + .4byte gCreditsEntry_HidenoriSaeki + .4byte gCreditsEntry_EmptyString + + .4byte gCreditsEntry_Artwork + .4byte gCreditsEntry_YokoWatanabe + .4byte gCreditsEntry_SakaeKimura + .4byte gCreditsEntry_ChiakiShinkai + .4byte gCreditsEntry_EmptyString + + .4byte gCreditsEntry_Coordinators + .4byte gCreditsEntry_KazukiYoshihara + .4byte gCreditsEntry_AkiraKinashi + .4byte gCreditsEntry_RetsujiNomoto + .4byte gCreditsEntry_EmptyString + + .4byte gCreditsEntry_EmptyString + .4byte gCreditsEntry_EnglishVersion + .4byte gCreditsEntry_HiroNakamura + .4byte gCreditsEntry_SethMcMahill + .4byte gCreditsEntry_EmptyString + + .4byte gCreditsEntry_EmptyString + .4byte gCreditsEntry_Translator + .4byte gCreditsEntry_NobOgasawara + .4byte gCreditsEntry_EmptyString + .4byte gCreditsEntry_EmptyString + + .4byte gCreditsEntry_EmptyString + .4byte gCreditsEntry_TextEditor + .4byte gCreditsEntry_TeresaLillygren + .4byte gCreditsEntry_EmptyString + .4byte gCreditsEntry_EmptyString + + .4byte gCreditsEntry_EmptyString + .4byte gCreditsEntry_NCLCoordinator + .4byte gCreditsEntry_KimikoNakamichi + .4byte gCreditsEntry_EmptyString + .4byte gCreditsEntry_EmptyString + + .4byte gCreditsEntry_Programmers + .4byte gCreditsEntry_TerukiMurakawa + .4byte gCreditsEntry_SouichiYamamoto + .4byte gCreditsEntry_YuichiroIto + .4byte gCreditsEntry_AkiraKinashi + + .4byte gCreditsEntry_EmptyString + .4byte gCreditsEntry_GraphicDesigner + .4byte gCreditsEntry_AkiraKinashi + .4byte gCreditsEntry_EmptyString + .4byte gCreditsEntry_EmptyString + + .4byte gCreditsEntry_EnvAndToolPgrms + .4byte gCreditsEntry_TerukiMurakawa + .4byte gCreditsEntry_SouichiYamamoto + .4byte gCreditsEntry_KimikoNakamichi + .4byte gCreditsEntry_EmptyString + + .4byte gCreditsEntry_NOAProductTesting + .4byte gCreditsEntry_ThomasHertzog + .4byte gCreditsEntry_ErikJohnson + .4byte gCreditsEntry_MikaKurosawa + .4byte gCreditsEntry_EmptyString + + .4byte gCreditsEntry_BrailleCodeCheck + .4byte gCreditsEntry_NationalFederationBlind + .4byte gCreditsEntry_PatriciaAMaurer + .4byte gCreditsEntry_JapanBrailleLibrary + .4byte gCreditsEntry_EuropeanBlindUnion + + .4byte gCreditsEntry_EmptyString + .4byte gCreditsEntry_BrailleCodeCheck + .4byte gCreditsEntry_AustralianBrailleAuthority + .4byte gCreditsEntry_RoyalNewZealandFederationBlind + .4byte gCreditsEntry_EmptyString + + .4byte gCreditsEntry_SpecialThanks + .4byte gCreditsEntry_HiroyukiUesugi + .4byte gCreditsEntry_MotoyasuTojima + .4byte gCreditsEntry_NicolaPrattBarlow + .4byte gCreditsEntry_ShellieDow + + .4byte gCreditsEntry_EmptyString + .4byte gCreditsEntry_TaskManagers + .4byte gCreditsEntry_AzusaTajima + .4byte gCreditsEntry_ShusakuEgami + .4byte gCreditsEntry_EmptyString + + .4byte gCreditsEntry_Producers + .4byte gCreditsEntry_HiroyukiJinnai + .4byte gCreditsEntry_HitoshiYamagami + .4byte gCreditsEntry_GakujiNomoto + .4byte gCreditsEntry_HiroakiTsuru + + .4byte gCreditsEntry_EmptyString + .4byte gCreditsEntry_ExecutiveDirector + .4byte gCreditsEntry_SatoshiTajiri + .4byte gCreditsEntry_EmptyString + .4byte gCreditsEntry_EmptyString + + .4byte gCreditsEntry_EmptyString + .4byte gCreditsEntry_ExecProducers + .4byte gCreditsEntry_SatoruIwata + .4byte gCreditsEntry_EmptyString + .4byte gCreditsEntry_EmptyString + + .4byte gCreditsEntry_EmptyString + .4byte gCreditsEntry_ExecProducers + .4byte gCreditsEntry_TsunekazIshihara + .4byte gCreditsEntry_EmptyString + .4byte gCreditsEntry_EmptyString + + .align 2 +gUnknown_085E6F68:: @ 85E6F68 struct BgTemplate + .4byte 0x000001C8 + + .align 2 gUnknown_085E6F6C:: @ 85E6F6C - .incbin "baserom.gba", 0x5e6f6c, 0x10 + window_template 0x00, 0x00, 0x09, 0x1e, 0x0c, 0x08, 0x0001 + window_template_terminator + .align 2 gUnknown_085E6F7C:: @ 85E6F7C - .incbin "baserom.gba", 0x5e6f7c, 0x54 + .byte 0x68, 0x24, 0x78, 0x24, 0x88, 0x24, 0x00, 0x00 + .align 2 +gUnknown_085E6F84:: @ 85E6F84 + .2byte 0x0000, 0x0008, 0x0040, 0x0008, 0x0080, 0x0008, 0x00c0, 0x0008, 0xfffe, 0x0000 + + .align 2 +gUnknown_085E6F98:: @ 85E6F98 + .2byte 0x0000, 0x0004, 0x0040, 0x0004, 0x0080, 0x0004, 0x00c0, 0x0004, 0xfffe, 0x0000 + + .align 2 +gUnknown_085E6FAC:: @ 85E6FAC + .2byte 0x0100, 0x0004, 0x0140, 0x0004, 0x0180, 0x0004, 0xffff, 0x0000 + + .align 2 +gUnknown_085E6FBC:: @ 85E6FBC + .2byte 0x0180, 0x001e, 0x0140, 0x001e, 0x0100, 0x001e, 0x0100, 0x001e, 0xffff, 0x0000 + + .align 2 gUnknown_085E6FD0:: @ 85E6FD0 - .incbin "baserom.gba", 0x5e6fd0, 0x40 + .4byte gUnknown_085E6F84 + .4byte gUnknown_085E6F98 + .4byte gUnknown_085E6FAC + .4byte gUnknown_085E6FBC + .align 2 +gUnknown_085E6FE0:: @ 85E6FE0 + .2byte 0x0000, 0x0008, 0x0040, 0x0008, 0x0080, 0x0008, 0x00c0, 0x0008, 0xfffe, 0x0000 + + .align 2 +gUnknown_085E6FF4:: @ 85E6FF4 + .2byte 0x0000, 0x0004, 0x0040, 0x0004, 0x0080, 0x0004, 0x00c0, 0x0004, 0xfffe, 0x0000 + + .align 2 +gUnknown_085E7008:: @ 85E7008 + .2byte 0x0000, 0x0004, 0xffff, 0x0000 + + .align 2 gUnknown_085E7010:: @ 85E7010 - .incbin "baserom.gba", 0x5e7010, 0xc + .4byte gUnknown_085E6FE0 + .4byte gUnknown_085E6FF4 + .4byte gUnknown_085E7008 + .align 2 gUnknown_085E701C:: @ 85E701C - .incbin "baserom.gba", 0x5e701c, 0x10 + obj_tiles gDecompressionBuffer, 0x1800, 0x03E9 + null_obj_tiles + .align 2 gUnknown_085E702C:: @ 85E702C - .incbin "baserom.gba", 0x5e702c, 0x3c + obj_pal gDecompressionBuffer + 0x1800, 0x03E9 + null_obj_pal + .align 2 +gUnknown_085E703C:: @ 85E703C + .2byte 0x00a0, 0xc000, 0x0400, 0x0000 + + .align 2 +gUnknown_085E7044:: @ 85E7044 + .2byte 0x0000, 0x0008, 0xffff, 0x0000 + + .align 2 +gUnknown_085E704C:: @ 85E704C + .2byte 0x0040, 0x0008, 0xffff, 0x0000 + + .align 2 +gUnknown_085E7054:: @ 85E7054 + .2byte 0x0080, 0x0008, 0xffff, 0x0000 + + .align 2 +gUnknown_085E705C:: @ 85E705C + .4byte gUnknown_085E7044 + .4byte gUnknown_085E704C + .4byte gUnknown_085E7054 + + .align 2 gUnknown_085E7068:: @ 85E7068 - .incbin "baserom.gba", 0x5e7068, 0x18 + spr_template 0x03e9, 0x03e9, gUnknown_085E703C, gUnknown_085E705C, NULL, gDummySpriteAffineAnimTable, sub_81772B8 diff --git a/data/cute_sketch.s b/data/cute_sketch.s new file mode 100644 index 000000000..ebdf1e39d --- /dev/null +++ b/data/cute_sketch.s @@ -0,0 +1,8 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_085A1F94:: @ 85A1F94 + .incbin "baserom.gba", 0x5a1f94, 0x3c74 diff --git a/data/data2b.s b/data/data2b.s index 28d34f79b..fd72e835e 100644 --- a/data/data2b.s +++ b/data/data2b.s @@ -202,14 +202,14 @@ gUnknown_0831ACA0:: @ 831ACA0 gUnknown_0831ACE0:: @ 831ACE0 .incbin "baserom.gba", 0x31ace0, 0x8 -gUnknown_0831ACE8:: @ 831ACE8 +gTypeEffectiveness:: @ 831ACE8 .incbin "baserom.gba", 0x31ace8, 0x150 @ 831AE38 .include "data/text/type_names.inc" .align 2 -gUnknown_0831AEB8:: @ 831AEB8 +gTrainerMoneyTable:: @ 831AEB8 .incbin "baserom.gba", 0x31aeb8, 0xe0 @ 831AF98 @@ -227,25 +227,25 @@ gUnknown_0831BC0C:: @ 831BC0C gUnknown_0831BC44:: @ 831BC44 .incbin "baserom.gba", 0x31bc44, 0x2c -gUnknown_0831BC70:: @ 831BC70 +gStatusConditionString_PoisonJpn:: @ 831BC70 .incbin "baserom.gba", 0x31bc70, 0x8 -gUnknown_0831BC78:: @ 831BC78 +gStatusConditionString_SleepJpn:: @ 831BC78 .incbin "baserom.gba", 0x31bc78, 0x8 -gUnknown_0831BC80:: @ 831BC80 +gStatusConditionString_ParalysisJpn:: @ 831BC80 .incbin "baserom.gba", 0x31bc80, 0x8 -gUnknown_0831BC88:: @ 831BC88 +gStatusConditionString_BurnJpn:: @ 831BC88 .incbin "baserom.gba", 0x31bc88, 0x8 -gUnknown_0831BC90:: @ 831BC90 +gStatusConditionString_IceJpn:: @ 831BC90 .incbin "baserom.gba", 0x31bc90, 0x8 -gUnknown_0831BC98:: @ 831BC98 +gStatusConditionString_ConfusionJpn:: @ 831BC98 .incbin "baserom.gba", 0x31bc98, 0x8 -gUnknown_0831BCA0:: @ 831BCA0 +gStatusConditionString_LoveJpn:: @ 831BCA0 .incbin "baserom.gba", 0x31bca0, 0x8 gUnknown_0831BCA8:: @ 831BCA8 @@ -260,6 +260,6 @@ gUnknown_0831BCEF:: @ 831BCEF gUnknown_0831BCF3:: @ 831BCF3 .incbin "baserom.gba", 0x31bcf3, 0x5 -gUnknown_0831BCF8:: @ 831BCF8 +gSoundMovesTable:: @ 831BCF8 .incbin "baserom.gba", 0x31bcf8, 0x18 diff --git a/data/data2b_2.s b/data/data2b_2.s deleted file mode 100644 index a1088768e..000000000 --- a/data/data2b_2.s +++ /dev/null @@ -1,30 +0,0 @@ -@ the second big chunk of data - - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 - - -gUnknown_0831C5F8:: @ 831C5F8 - .incbin "baserom.gba", 0x31c5f8, 0xc - -gUnknown_0831C604:: @ 831C604 - .incbin "baserom.gba", 0x31c604, 0x1c - -gUnknown_0831C620:: @ 831C620 - .incbin "baserom.gba", 0x31c620, 0x8 - -gUnknown_0831C628:: @ 831C628 - .incbin "baserom.gba", 0x31c628, 0x60 - -gUnknown_0831C688:: @ 831C688 - .incbin "baserom.gba", 0x31c688, 0x18 - -gUnknown_0831C6A0:: @ 831C6A0 - .incbin "baserom.gba", 0x31c6a0, 0x10 - -gUnknown_0831C6B0:: @ 831C6B0 - .incbin "baserom.gba", 0x31c6b0, 0x18 diff --git a/data/data3.s b/data/data3.s deleted file mode 100644 index 7af7a70e8..000000000 --- a/data/data3.s +++ /dev/null @@ -1,2896 +0,0 @@ -@ the third big chunk of data - - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - - -@ 832ADD8 - .include "data/egg_moves.inc" - - .align 2 -gUnknown_0832B6C0:: @ 832B6C0 - .incbin "baserom.gba", 0x32b6c0, 0x20 - -gUnknown_0832B6E0:: @ 832B6E0 - .incbin "baserom.gba", 0x32b6e0, 0x18 - -gUnknown_0832B6F8:: @ 832B6F8 - .incbin "baserom.gba", 0x32b6f8, 0x10 - -gEggName:: @ 832B708 - .string "タマゴ$" @ "tamago" ("egg" in Japanese) - -@ 832B70C - .incbin "baserom.gba", 0x32b70c, 0x8d8 - -gUnknown_0832BFE4:: @ 832BFE4 - .incbin "baserom.gba", 0x32bfe4, 0x8 - -gUnknown_0832BFEC:: @ 832BFEC - .incbin "baserom.gba", 0x32bfec, 0x8 - -gUnknown_0832BFF4:: @ 832BFF4 - .incbin "baserom.gba", 0x32bff4, 0x8 - -gUnknown_0832BFFC:: @ 832BFFC - .incbin "baserom.gba", 0x32bffc, 0x50 - -gUnknown_0832C04C:: @ 832C04C - .incbin "baserom.gba", 0x32c04c, 0x18 - -gUnknown_0832C064:: @ 832C064 - .incbin "baserom.gba", 0x32c064, 0x8 - -gUnknown_0832C06C:: @ 832C06C - .incbin "baserom.gba", 0x32c06c, 0x10 - -gUnknown_0832C07C:: @ 832C07C - .incbin "baserom.gba", 0x32c07c, 0x8 - -gUnknown_0832C084:: @ 832C084 - .incbin "baserom.gba", 0x32c084, 0x4c - -gUnknown_0832C0D0:: @ 832C0D0 - .incbin "baserom.gba", 0x32c0d0, 0x8 - -gUnknown_0832C0D8:: @ 832C0D8 - .incbin "baserom.gba", 0x32c0d8, 0x8 - -gUnknown_0832C0E0:: @ 832C0E0 - .incbin "baserom.gba", 0x32c0e0, 0x8 - -gUnknown_0832C0E8:: @ 832C0E8 - .incbin "baserom.gba", 0x32c0e8, 0x8 - -gUnknown_0832C0F0:: @ 832C0F0 - .incbin "baserom.gba", 0x32c0f0, 0x8 - -gUnknown_0832C0F8:: @ 832C0F8 - .incbin "baserom.gba", 0x32c0f8, 0x8 - -gUnknown_0832C100:: @ 832C100 - .incbin "baserom.gba", 0x32c100, 0x8 - -gUnknown_0832C108:: @ 832C108 - .incbin "baserom.gba", 0x32c108, 0x20 - -gUnknown_0832C128:: @ 832C128 - .incbin "baserom.gba", 0x32c128, 0x18 - -gUnknown_0832C140:: @ 832C140 - .incbin "baserom.gba", 0x32c140, 0x30 - -gUnknown_0832C170:: @ 832C170 - .incbin "baserom.gba", 0x32c170, 0x30 - -gUnknown_0832C1A0:: @ 832C1A0 - .incbin "baserom.gba", 0x32c1a0, 0x20 - -gUnknown_0832C1C0:: @ 832C1C0 - .incbin "baserom.gba", 0x32c1c0, 0xcc - -gUnknown_0832C28C:: @ 832C28C - .incbin "baserom.gba", 0x32c28c, 0x38 - -gUnknown_0832C2C4:: @ 832C2C4 - .incbin "baserom.gba", 0x32c2c4, 0x8 - -gUnknown_0832C2CC:: @ 832C2CC - .incbin "baserom.gba", 0x32c2cc, 0x68 - -gUnknown_0832C334:: @ 832C334 - .incbin "baserom.gba", 0x32c334, 0x8 - -gUnknown_0832C33C:: @ 832C33C - .incbin "baserom.gba", 0x32c33c, 0x8 - -gUnknown_0832C344:: @ 832C344 - .incbin "baserom.gba", 0x32c344, 0x8 - -gUnknown_0832C34C:: @ 832C34C - .incbin "baserom.gba", 0x32c34c, 0x18 - -gUnknown_0832C364:: @ 832C364 - .incbin "baserom.gba", 0x32c364, 0x30 - -gUnknown_0832C394:: @ 832C394 - .incbin "baserom.gba", 0x32c394, 0x30 - -gUnknown_0832C3C4:: @ 832C3C4 - .incbin "baserom.gba", 0x32c3c4, 0x14 - -gUnknown_0832C3D8:: @ 832C3D8 - .incbin "baserom.gba", 0x32c3d8, 0x14 - -gUnknown_0832C3EC:: @ 832C3EC - .incbin "baserom.gba", 0x32c3ec, 0xc - -gUnknown_0832C3F8:: @ 832C3F8 - .incbin "baserom.gba", 0x32c3f8, 0x8 - -gUnknown_0832C400:: @ 832C400 - .incbin "baserom.gba", 0x32c400, 0x60 - -gUnknown_0832C460:: @ 832C460 - .incbin "baserom.gba", 0x32c460, 0x128 - -gUnknown_0832C588:: @ 832C588 - .incbin "baserom.gba", 0x32c588, 0x138 - -gUnknown_0832C6C0:: @ 832C6C0 - .incbin "baserom.gba", 0x32c6c0, 0x1fe - -gUnknown_0832C8BE:: @ 832C8BE - .incbin "baserom.gba", 0x32c8be, 0x1fe - -gUnknown_0832CABC:: @ 832CABC - .incbin "baserom.gba", 0x32cabc, 0x800 - -gUnknown_0832D2BC:: @ 832D2BC - .incbin "baserom.gba", 0x32d2bc, 0x800 - -gUnknown_0832DABC:: @ 832DABC - .incbin "baserom.gba", 0x32dabc, 0xb - -gUnknown_0832DAC7:: @ 832DAC7 - .incbin "baserom.gba", 0x32dac7, 0x2 - -gUnknown_0832DAC9:: @ 832DAC9 - .incbin "baserom.gba", 0x32dac9, 0x2 - -gUnknown_0832DACB:: @ 832DACB - .incbin "baserom.gba", 0x32dacb, 0x7 - -gUnknown_0832DAD2:: @ 832DAD2 - .incbin "baserom.gba", 0x32dad2, 0xd - -gUnknown_0832DADF:: @ 832DADF - .incbin "baserom.gba", 0x32dadf, 0x6 - -gUnknown_0832DAE5:: @ 832DAE5 - .incbin "baserom.gba", 0x32dae5, 0x157 - -gUnknown_0832DC3C:: @ 832DC3C - .incbin "baserom.gba", 0x32dc3c, 0x8 - -gUnknown_0832DC44:: @ 832DC44 - .incbin "baserom.gba", 0x32dc44, 0x50 - -gUnknown_0832DC94:: @ 832DC94 - .incbin "baserom.gba", 0x32dc94, 0x18 - -gUnknown_0832DCAC:: @ 832DCAC - .incbin "baserom.gba", 0x32dcac, 0x38 - -gUnknown_0832DCE4:: @ 832DCE4 - .incbin "baserom.gba", 0x32dce4, 0x8 - -gUnknown_0832DCEC:: @ 832DCEC - .incbin "baserom.gba", 0x32dcec, 0x138 - -gUnknown_0832DE24:: @ 832DE24 - .incbin "baserom.gba", 0x32de24, 0x1a - -gUnknown_0832DE3E:: @ 832DE3E - .incbin "baserom.gba", 0x32de3e, 0x18 - -gUnknown_0832DE56:: @ 832DE56 - .incbin "baserom.gba", 0x32de56, 0x3e - -gUnknown_0832DE94:: @ 832DE94 - .incbin "baserom.gba", 0x32de94, 0x18 - -gUnknown_0832DEAC:: @ 832DEAC - .incbin "baserom.gba", 0x32deac, 0x10 - -gUnknown_0832DEBC:: @ 832DEBC - .incbin "baserom.gba", 0x32debc, 0x24 - -gUnknown_0832DEE0:: @ 832DEE0 - .incbin "baserom.gba", 0x32dee0, 0x4 - -gUnknown_0832DEE4:: @ 832DEE4 - .incbin "baserom.gba", 0x32dee4, 0x10 - -gUnknown_0832DEF4:: @ 832DEF4 - .incbin "baserom.gba", 0x32def4, 0x98 - -gUnknown_0832DF8C:: @ 832DF8C - .incbin "baserom.gba", 0x32df8c, 0x8 - -gUnknown_0832DF94:: @ 832DF94 - .incbin "baserom.gba", 0x32df94, 0x5 - -gUnknown_0832DF99:: @ 832DF99 - .incbin "baserom.gba", 0x32df99, 0x2027 - -gUnknown_0832FFC0:: @ 832FFC0 - .incbin "baserom.gba", 0x32ffc0, 0x1fa0 - -gUnknown_08331F60:: @ 8331F60 - .incbin "baserom.gba", 0x331f60, 0x1000 - -gUnknown_08332F60:: @ 8332F60 - .incbin "baserom.gba", 0x332f60, 0x2840 - -gUnknown_083357A0:: @ 83357A0 - .incbin "baserom.gba", 0x3357a0, 0x100 - -gUnknown_083358A0:: @ 83358A0 - .incbin "baserom.gba", 0x3358a0, 0x100 - -gUnknown_083359A0:: @ 83359A0 - .incbin "baserom.gba", 0x3359a0, 0x1000 - -gUnknown_083369A0:: @ 83369A0 - .incbin "baserom.gba", 0x3369a0, 0x1000 - -gUnknown_083379A0:: @ 83379A0 - .incbin "baserom.gba", 0x3379a0, 0x100 - -gUnknown_08337AA0:: @ 8337AA0 - .incbin "baserom.gba", 0x337aa0, 0x200 - -gUnknown_08337CA0:: @ 8337CA0 - .incbin "baserom.gba", 0x337ca0, 0x200 - -gUnknown_08337EA0:: @ 8337EA0 - .incbin "baserom.gba", 0x337ea0, 0x20 - -gUnknown_08337EC0:: @ 8337EC0 - .incbin "baserom.gba", 0x337ec0, 0x690 - -gUnknown_08338550:: @ 8338550 - .incbin "baserom.gba", 0x338550, 0x7c8 - -gUnknown_08338D18:: @ 8338D18 - .incbin "baserom.gba", 0x338d18, 0x8 - -gUnknown_08338D20:: @ 8338D20 - .incbin "baserom.gba", 0x338d20, 0x8 - -gUnknown_08338D28:: @ 8338D28 - .incbin "baserom.gba", 0x338d28, 0x48 - -gUnknown_08338D70:: @ 8338D70 - .incbin "baserom.gba", 0x338d70, 0x8 - -gUnknown_08338D78:: @ 8338D78 - .incbin "baserom.gba", 0x338d78, 0x8 - -gUnknown_08338D80:: @ 8338D80 - .incbin "baserom.gba", 0x338d80, 0x8 - -gUnknown_08338D88:: @ 8338D88 - .incbin "baserom.gba", 0x338d88, 0x38 - -gUnknown_08338DC0:: @ 8338DC0 - .incbin "baserom.gba", 0x338dc0, 0x8 - -gUnknown_08338DC8:: @ 8338DC8 - .incbin "baserom.gba", 0x338dc8, 0x2c - -gUnknown_08338DF4:: @ 8338DF4 - .incbin "baserom.gba", 0x338df4, 0x8 - -gUnknown_08338DFC:: @ 8338DFC - .incbin "baserom.gba", 0x338dfc, 0x70 - -gUnknown_08338E6C:: @ 8338E6C - .incbin "baserom.gba", 0x338e6c, 0x8 - -gUnknown_08338E74:: @ 8338E74 - .incbin "baserom.gba", 0x338e74, 0x18 - -gUnknown_08338E8C:: @ 8338E8C - .incbin "baserom.gba", 0x338e8c, 0x18 - -gUnknown_08338EA4:: @ 8338EA4 - .incbin "baserom.gba", 0x338ea4, 0x28 - -gUnknown_08338ECC:: @ 8338ECC - .incbin "baserom.gba", 0x338ecc, 0x4 - -gUnknown_08338ED0:: @ 8338ED0 - .incbin "baserom.gba", 0x338ed0, 0xf0 - -gUnknown_08338FC0:: @ 8338FC0 - .incbin "baserom.gba", 0x338fc0, 0x3c - -gUnknown_08338FFC:: @ 8338FFC - .incbin "baserom.gba", 0x338ffc, 0x10 - -gUnknown_0833900C:: @ 833900C - .incbin "baserom.gba", 0x33900c, 0x8 - -gUnknown_08339014:: @ 8339014 - .incbin "baserom.gba", 0x339014, 0x10 - -gUnknown_08339024:: @ 8339024 - .incbin "baserom.gba", 0x339024, 0x6c - -gUnknown_08339090:: @ 8339090 - .incbin "baserom.gba", 0x339090, 0x44 - -gUnknown_083390D4:: @ 83390D4 - .incbin "baserom.gba", 0x3390d4, 0x20 - -gUnknown_083390F4:: @ 83390F4 - .incbin "baserom.gba", 0x3390f4, 0x400 - -gUnknown_083394F4:: @ 83394F4 - .incbin "baserom.gba", 0x3394f4, 0x246 - -gUnknown_0833973A:: @ 833973A - .incbin "baserom.gba", 0x33973a, 0x61 - -gUnknown_0833979B:: @ 833979B - .incbin "baserom.gba", 0x33979b, 0x2 - -gUnknown_0833979D:: @ 833979D - .incbin "baserom.gba", 0x33979d, 0x33 - -gUnknown_083397D0:: @ 83397D0 - .incbin "baserom.gba", 0x3397d0, 0x4a - -gUnknown_0833981A:: @ 833981A - .incbin "baserom.gba", 0x33981a, 0x17 - -gUnknown_08339831:: @ 8339831 - .incbin "baserom.gba", 0x339831, 0x27 - -gUnknown_08339858:: @ 8339858 - .incbin "baserom.gba", 0x339858, 0x3e - -gUnknown_08339896:: @ 8339896 - .incbin "baserom.gba", 0x339896, 0x1a - -gUnknown_083398B0:: @ 83398B0 - .incbin "baserom.gba", 0x3398b0, 0x2d - -gUnknown_083398DD:: @ 83398DD - .incbin "baserom.gba", 0x3398dd, 0x18 - -gUnknown_083398F5:: @ 83398F5 - .incbin "baserom.gba", 0x3398f5, 0x1f - -gUnknown_08339914:: @ 8339914 - .incbin "baserom.gba", 0x339914, 0x7 - -gUnknown_0833991B:: @ 833991B - .incbin "baserom.gba", 0x33991b, 0x6 - -gUnknown_08339921:: @ 8339921 - .incbin "baserom.gba", 0x339921, 0x7 - -gUnknown_08339928:: @ 8339928 - .incbin "baserom.gba", 0x339928, 0x6 - -gUnknown_0833992E:: @ 833992E - .incbin "baserom.gba", 0x33992e, 0xe - -gUnknown_0833993C:: @ 833993C - .incbin "baserom.gba", 0x33993c, 0x5 - -gUnknown_08339941:: @ 8339941 - .incbin "baserom.gba", 0x339941, 0x2 - -gUnknown_08339943:: @ 8339943 - .incbin "baserom.gba", 0x339943, 0x4 - -gUnknown_08339947:: @ 8339947 - .incbin "baserom.gba", 0x339947, 0x8 - -gUnknown_0833994F:: @ 833994F - .incbin "baserom.gba", 0x33994f, 0xe - -gUnknown_0833995D:: @ 833995D - .incbin "baserom.gba", 0x33995d, 0x13 - -gUnknown_08339970:: @ 8339970 - .incbin "baserom.gba", 0x339970, 0x4 - -gUnknown_08339974:: @ 8339974 - .incbin "baserom.gba", 0x339974, 0xc - -gUnknown_08339980:: @ 8339980 - .incbin "baserom.gba", 0x339980, 0x38 - -gUnknown_083399B8:: @ 83399B8 - .incbin "baserom.gba", 0x3399b8, 0x8 - -gUnknown_083399C0:: @ 83399C0 - .incbin "baserom.gba", 0x3399c0, 0x8 - -gUnknown_083399C8:: @ 83399C8 - .incbin "baserom.gba", 0x3399c8, 0x8 - -gUnknown_083399D0:: @ 83399D0 - .incbin "baserom.gba", 0x3399d0, 0xc - -gUnknown_083399DC:: @ 83399DC - .incbin "baserom.gba", 0x3399dc, 0x8 - -gUnknown_083399E4:: @ 83399E4 - .incbin "baserom.gba", 0x3399e4, 0x3 - -gUnknown_083399E7:: @ 83399E7 - .incbin "baserom.gba", 0x3399e7, 0x5 - -gUnknown_083399EC:: @ 83399EC - .incbin "baserom.gba", 0x3399ec, 0xd4 - -gUnknown_08339AC0:: @ 8339AC0 - .incbin "baserom.gba", 0x339ac0, 0x8 - -gUnknown_08339AC8:: @ 8339AC8 - .incbin "baserom.gba", 0x339ac8, 0x8 - -gUnknown_08339AD0:: @ 8339AD0 - .incbin "baserom.gba", 0x339ad0, 0x8 - -gUnknown_08339AD8:: @ 8339AD8 - .incbin "baserom.gba", 0x339ad8, 0x60 - -gUnknown_08339B38:: @ 8339B38 - .incbin "baserom.gba", 0x339b38, 0x8 - -gUnknown_08339B40:: @ 8339B40 - .incbin "baserom.gba", 0x339b40, 0x98 - -gUnknown_08339BD8:: @ 8339BD8 - .incbin "baserom.gba", 0x339bd8, 0x8 - -gUnknown_08339BE0:: @ 8339BE0 - .incbin "baserom.gba", 0x339be0, 0x44 - -gUnknown_08339C24:: @ 8339C24 - .incbin "baserom.gba", 0x339c24, 0x8 - -gUnknown_08339C2C:: @ 8339C2C - .incbin "baserom.gba", 0x339c2c, 0x2c - -gUnknown_08339C58:: @ 8339C58 - .incbin "baserom.gba", 0x339c58, 0x8 - -gUnknown_08339C60:: @ 8339C60 - .incbin "baserom.gba", 0x339c60, 0x18 - -gUnknown_08339C78:: @ 8339C78 - .incbin "baserom.gba", 0x339c78, 0x28 - -gUnknown_08339CA0:: @ 8339CA0 - .incbin "baserom.gba", 0x339ca0, 0x1e - -gUnknown_08339CBE:: @ 8339CBE - .incbin "baserom.gba", 0x339cbe, 0x5 - -gUnknown_08339CC3:: @ 8339CC3 - .incbin "baserom.gba", 0x339cc3, 0x5 - -gUnknown_08339CC8:: @ 8339CC8 - .incbin "baserom.gba", 0x339cc8, 0x4c - -gUnknown_08339D14:: @ 8339D14 - .incbin "baserom.gba", 0x339d14, 0x8 - -gContestWinnerPicDummy:: @ 8339D1C - .incbin "baserom.gba", 0x339d1c, 0x20 - -gUnknown_08339D3C:: @ 8339D3C - .incbin "baserom.gba", 0x339d3c, 0x28 - -gUnknown_08339D64:: @ 8339D64 - .incbin "baserom.gba", 0x339d64, 0x48 - -gUnknown_08339DAC:: @ 8339DAC - .incbin "baserom.gba", 0x339dac, 0x10 - -gUnknown_08339DBC:: @ 8339DBC - .incbin "baserom.gba", 0x339dbc, 0xc - -gUnknown_08339DC8:: @ 8339DC8 - .incbin "baserom.gba", 0x339dc8, 0xc - -gUnknown_08339DD4:: @ 8339DD4 - .incbin "baserom.gba", 0x339dd4, 0x2c - -gUnknown_08339E00:: @ 8339E00 - .incbin "baserom.gba", 0x339e00, 0x8 - -@ 8339E08 - .include "data/tilesets/tileset_graphics.inc" - -@ 83960F0 - .include "data/tilesets/metatiles.inc" - -@ 83DF704 - .include "data/tilesets/tilesets.inc" - -@ 83DFE14 - .incbin "baserom.gba", 0x3dfe14, 0xa1fc0 - -gUnknown_08481DD4:: @ 8481DD4 - .incbin "baserom.gba", 0x481dd4, 0x47a4 - -gUnknown_08486578:: @ 8486578 - .incbin "baserom.gba", 0x486578, 0x980 - -gUnknown_08486EF8:: @ 8486EF8 - .incbin "baserom.gba", 0x486ef8, 0x4 - -gUnknown_08486EFC:: @ 8486EFC - .incbin "baserom.gba", 0x486efc, 0x10090 - -gUnknown_08496F8C:: @ 8496F8C - .incbin "baserom.gba", 0x496f8c, 0x14 - -gUnknown_08496FA0:: @ 8496FA0 - .incbin "baserom.gba", 0x496fa0, 0x14 - -gUnknown_08496FB4:: @ 8496FB4 - .incbin "baserom.gba", 0x496fb4, 0x1c0 - -gUnknown_08497174:: @ 8497174 - .incbin "baserom.gba", 0x497174, 0x288 - -gUnknown_084973FC:: @ 84973FC - .incbin "baserom.gba", 0x4973fc, 0x48 - -gUnknown_08497444:: @ 8497444 - .incbin "baserom.gba", 0x497444, 0x4c - -gUnknown_08497490:: @ 8497490 - .incbin "baserom.gba", 0x497490, 0xc - -gUnknown_0849749C:: @ 849749C - .incbin "baserom.gba", 0x49749c, 0x14 - -gUnknown_084974B0:: @ 84974B0 - .incbin "baserom.gba", 0x4974b0, 0x8 - -gUnknown_084974B8:: @ 84974B8 - .incbin "baserom.gba", 0x4974b8, 0x20 - -gUnknown_084974D8:: @ 84974D8 - .incbin "baserom.gba", 0x4974d8, 0x10 - -gUnknown_084974E8:: @ 84974E8 - .incbin "baserom.gba", 0x4974e8, 0x10 - -gUnknown_084974F8:: @ 84974F8 - .incbin "baserom.gba", 0x4974f8, 0x10 - -gUnknown_08497508:: @ 8497508 - .incbin "baserom.gba", 0x497508, 0x2 - -gUnknown_0849750A:: @ 849750A - .incbin "baserom.gba", 0x49750a, 0x2 - -gUnknown_0849750C:: @ 849750C - .incbin "baserom.gba", 0x49750c, 0x14 - -gUnknown_08497520:: @ 8497520 - .incbin "baserom.gba", 0x497520, 0x10 - -gUnknown_08497530:: @ 8497530 - .incbin "baserom.gba", 0x497530, 0xc - -gUnknown_0849753C:: @ 849753C - .incbin "baserom.gba", 0x49753c, 0x4 - -gUnknown_08497540:: @ 8497540 - .incbin "baserom.gba", 0x497540, 0x10 - -gUnknown_08497550:: @ 8497550 - .incbin "baserom.gba", 0x497550, 0x4 - -gUnknown_08497554:: @ 8497554 - .incbin "baserom.gba", 0x497554, 0x8 - -gUnknown_0849755C:: @ 849755C - .incbin "baserom.gba", 0x49755c, 0x40 - -gUnknown_0849759C:: @ 849759C - .incbin "baserom.gba", 0x49759c, 0x6 - -gUnknown_084975A2:: @ 84975A2 - .incbin "baserom.gba", 0x4975a2, 0x6 - -gUnknown_084975A8:: @ 84975A8 - .incbin "baserom.gba", 0x4975a8, 0x2 - -gUnknown_084975AA:: @ 84975AA - .incbin "baserom.gba", 0x4975aa, 0x6 - -gUnknown_084975B0:: @ 84975B0 - .incbin "baserom.gba", 0x4975b0, 0xc - -gUnknown_084975BC:: @ 84975BC - .incbin "baserom.gba", 0x4975bc, 0x8 - -gUnknown_084975C4:: @ 84975C4 - .incbin "baserom.gba", 0x4975c4, 0x10 - -gUnknown_084975D4:: @ 84975D4 - .incbin "baserom.gba", 0x4975d4, 0x18 - -gUnknown_084975EC:: @ 84975EC - .incbin "baserom.gba", 0x4975ec, 0xc - -@ 84975F8 - .include "data/graphics/field_objects/field_object_graphics.inc" - -gUnknown_08505438:: @ 8505438 - .incbin "baserom.gba", 0x505438, 0x144 - -gUnknown_0850557C:: @ 850557C - .incbin "baserom.gba", 0x50557c, 0x51 - -gUnknown_085055CD:: @ 85055CD - .incbin "baserom.gba", 0x5055cd, 0x53 - -@ 8505620 - .include "data/graphics/field_objects/field_object_graphics_info_pointers.inc" - -@ 85059F8 - .include "data/graphics/field_objects/field_effect_object_template_pointers.inc" - -@ 8505A8C - .include "data/graphics/field_objects/field_object_pic_tables.inc" - -@ 85089FC - .include "data/graphics/field_objects/field_object_anims.inc" - -gUnknown_085094AC:: @ 85094AC - .incbin "baserom.gba", 0x5094ac, 0x40 - -@ 85094EC - .include "data/graphics/field_objects/field_object_oam.inc" - -@ 8509954 - .include "data/graphics/field_objects/field_object_graphics_info.inc" - -gUnknown_0850BBC8:: @ 850BBC8 - .incbin "baserom.gba", 0x50bbc8, 0x138 - -gUnknown_0850BD00:: @ 850BD00 - .incbin "baserom.gba", 0x50bd00, 0x78 - -gUnknown_0850BD78:: @ 850BD78 - .incbin "baserom.gba", 0x50bd78, 0xc0 - -gUnknown_0850BE38:: @ 850BE38 - .incbin "baserom.gba", 0x50be38, 0x10 - -@ 850BE48 - .include "data/graphics/field_objects/berry_tree_graphics_tables.inc" - -@ 850C9C0 - .include "data/graphics/field_objects/field_effect_objects.inc" - - .incbin "baserom.gba", 0x50d6d4, 0x8 - -gUnknown_0850D6DC:: @ 850D6DC - .incbin "baserom.gba", 0x50d6dc, 0x10 - -gUnknown_0850D6EC:: @ 850D6EC - .incbin "baserom.gba", 0x50d6ec, 0x8 - -gUnknown_0850D6F4:: @ 850D6F4 - .incbin "baserom.gba", 0x50d6f4, 0x1c - -gUnknown_0850D710:: @ 850D710 - .incbin "baserom.gba", 0x50d710, 0x4 - -gUnknown_0850D714:: @ 850D714 - .incbin "baserom.gba", 0x50d714, 0x2c - -gUnknown_0850D740:: @ 850D740 - .incbin "baserom.gba", 0x50d740, 0x14 - -gUnknown_0850D754:: @ 850D754 - .incbin "baserom.gba", 0x50d754, 0x1c - -gUnknown_0850D770:: @ 850D770 - .incbin "baserom.gba", 0x50d770, 0x4 - -gUnknown_0850D774:: @ 850D774 - .incbin "baserom.gba", 0x50d774, 0x1c - -gUnknown_0850D790:: @ 850D790 - .incbin "baserom.gba", 0x50d790, 0x4 - -gUnknown_0850D794:: @ 850D794 - .incbin "baserom.gba", 0x50d794, 0xc - -gUnknown_0850D7A0:: @ 850D7A0 - .incbin "baserom.gba", 0x50d7a0, 0x14 - -gUnknown_0850D7B4:: @ 850D7B4 - .incbin "baserom.gba", 0x50d7b4, 0x14 - -gUnknown_0850D7C8:: @ 850D7C8 - .incbin "baserom.gba", 0x50d7c8, 0x14 - -gUnknown_0850D7DC:: @ 850D7DC - .incbin "baserom.gba", 0x50d7dc, 0x14 - -gUnknown_0850D7F0:: @ 850D7F0 - .incbin "baserom.gba", 0x50d7f0, 0x4 - -gUnknown_0850D7F4:: @ 850D7F4 - .incbin "baserom.gba", 0x50d7f4, 0x14 - -gUnknown_0850D808:: @ 850D808 - .incbin "baserom.gba", 0x50d808, 0x4 - -gUnknown_0850D80C:: @ 850D80C - .incbin "baserom.gba", 0x50d80c, 0x14 - -gUnknown_0850D820:: @ 850D820 - .incbin "baserom.gba", 0x50d820, 0x4 - -gUnknown_0850D824:: @ 850D824 - .incbin "baserom.gba", 0x50d824, 0x14 - -gUnknown_0850D838:: @ 850D838 - .incbin "baserom.gba", 0x50d838, 0x4 - -gUnknown_0850D83C:: @ 850D83C - .incbin "baserom.gba", 0x50d83c, 0x14 - -gUnknown_0850D850:: @ 850D850 - .incbin "baserom.gba", 0x50d850, 0x4 - -gUnknown_0850D854:: @ 850D854 - .incbin "baserom.gba", 0x50d854, 0x14 - -gUnknown_0850D868:: @ 850D868 - .incbin "baserom.gba", 0x50d868, 0x4 - -gUnknown_0850D86C:: @ 850D86C - .incbin "baserom.gba", 0x50d86c, 0x14 - -gUnknown_0850D880:: @ 850D880 - .incbin "baserom.gba", 0x50d880, 0x4 - -gUnknown_0850D884:: @ 850D884 - .incbin "baserom.gba", 0x50d884, 0x14 - -gUnknown_0850D898:: @ 850D898 - .incbin "baserom.gba", 0x50d898, 0x4 - -gUnknown_0850D89C:: @ 850D89C - .incbin "baserom.gba", 0x50d89c, 0x10 - -gUnknown_0850D8AC:: @ 850D8AC - .incbin "baserom.gba", 0x50d8ac, 0x8 - -gUnknown_0850D8B4:: @ 850D8B4 - .incbin "baserom.gba", 0x50d8b4, 0x10 - -gUnknown_0850D8C4:: @ 850D8C4 - .incbin "baserom.gba", 0x50d8c4, 0x8 - -gUnknown_0850D8CC:: @ 850D8CC - .incbin "baserom.gba", 0x50d8cc, 0x10 - -gUnknown_0850D8DC:: @ 850D8DC - .incbin "baserom.gba", 0x50d8dc, 0xc - -gUnknown_0850D8E8:: @ 850D8E8 - .incbin "baserom.gba", 0x50d8e8, 0x4 - -gUnknown_0850D8EC:: @ 850D8EC - .incbin "baserom.gba", 0x50d8ec, 0xc - -gUnknown_0850D8F8:: @ 850D8F8 - .incbin "baserom.gba", 0x50d8f8, 0x4 - -gUnknown_0850D8FC:: @ 850D8FC - .incbin "baserom.gba", 0x50d8fc, 0xc - -gUnknown_0850D908:: @ 850D908 - .incbin "baserom.gba", 0x50d908, 0x4 - -gUnknown_0850D90C:: @ 850D90C - .incbin "baserom.gba", 0x50d90c, 0xc - -gUnknown_0850D918:: @ 850D918 - .incbin "baserom.gba", 0x50d918, 0x4 - -gUnknown_0850D91C:: @ 850D91C - .incbin "baserom.gba", 0x50d91c, 0xc - -gUnknown_0850D928:: @ 850D928 - .incbin "baserom.gba", 0x50d928, 0x4 - -gUnknown_0850D92C:: @ 850D92C - .incbin "baserom.gba", 0x50d92c, 0xc - -gUnknown_0850D938:: @ 850D938 - .incbin "baserom.gba", 0x50d938, 0x4 - -gUnknown_0850D93C:: @ 850D93C - .incbin "baserom.gba", 0x50d93c, 0xc - -gUnknown_0850D948:: @ 850D948 - .incbin "baserom.gba", 0x50d948, 0xc - -gUnknown_0850D954:: @ 850D954 - .incbin "baserom.gba", 0x50d954, 0x4 - -gUnknown_0850D958:: @ 850D958 - .incbin "baserom.gba", 0x50d958, 0xc - -gUnknown_0850D964:: @ 850D964 - .incbin "baserom.gba", 0x50d964, 0x4 - -gUnknown_0850D968:: @ 850D968 - .incbin "baserom.gba", 0x50d968, 0xc - -gUnknown_0850D974:: @ 850D974 - .incbin "baserom.gba", 0x50d974, 0x4 - -gUnknown_0850D978:: @ 850D978 - .incbin "baserom.gba", 0x50d978, 0xc - -gUnknown_0850D984:: @ 850D984 - .incbin "baserom.gba", 0x50d984, 0x4 - -gUnknown_0850D988:: @ 850D988 - .incbin "baserom.gba", 0x50d988, 0xc - -gUnknown_0850D994:: @ 850D994 - .incbin "baserom.gba", 0x50d994, 0x4 - -gUnknown_0850D998:: @ 850D998 - .incbin "baserom.gba", 0x50d998, 0xc - -gUnknown_0850D9A4:: @ 850D9A4 - .incbin "baserom.gba", 0x50d9a4, 0x4 - -gUnknown_0850D9A8:: @ 850D9A8 - .incbin "baserom.gba", 0x50d9a8, 0xc - -gUnknown_0850D9B4:: @ 850D9B4 - .incbin "baserom.gba", 0x50d9b4, 0x4 - -gUnknown_0850D9B8:: @ 850D9B8 - .incbin "baserom.gba", 0x50d9b8, 0xc - -gUnknown_0850D9C4:: @ 850D9C4 - .incbin "baserom.gba", 0x50d9c4, 0x4 - -gUnknown_0850D9C8:: @ 850D9C8 - .incbin "baserom.gba", 0x50d9c8, 0xc - -gUnknown_0850D9D4:: @ 850D9D4 - .incbin "baserom.gba", 0x50d9d4, 0x4 - -gUnknown_0850D9D8:: @ 850D9D8 - .incbin "baserom.gba", 0x50d9d8, 0xc - -gUnknown_0850D9E4:: @ 850D9E4 - .incbin "baserom.gba", 0x50d9e4, 0x4 - -gUnknown_0850D9E8:: @ 850D9E8 - .incbin "baserom.gba", 0x50d9e8, 0xc - -gUnknown_0850D9F4:: @ 850D9F4 - .incbin "baserom.gba", 0x50d9f4, 0x4 - -gUnknown_0850D9F8:: @ 850D9F8 - .incbin "baserom.gba", 0x50d9f8, 0xc - -gUnknown_0850DA04:: @ 850DA04 - .incbin "baserom.gba", 0x50da04, 0x4 - -gUnknown_0850DA08:: @ 850DA08 - .incbin "baserom.gba", 0x50da08, 0xc - -gUnknown_0850DA14:: @ 850DA14 - .incbin "baserom.gba", 0x50da14, 0x4 - -gUnknown_0850DA18:: @ 850DA18 - .incbin "baserom.gba", 0x50da18, 0xc - -gUnknown_0850DA24:: @ 850DA24 - .incbin "baserom.gba", 0x50da24, 0x4 - -gUnknown_0850DA28:: @ 850DA28 - .incbin "baserom.gba", 0x50da28, 0xc - -gUnknown_0850DA34:: @ 850DA34 - .incbin "baserom.gba", 0x50da34, 0x4 - -gUnknown_0850DA38:: @ 850DA38 - .incbin "baserom.gba", 0x50da38, 0xc - -gUnknown_0850DA44:: @ 850DA44 - .incbin "baserom.gba", 0x50da44, 0x4 - -gUnknown_0850DA48:: @ 850DA48 - .incbin "baserom.gba", 0x50da48, 0xc - -gUnknown_0850DA54:: @ 850DA54 - .incbin "baserom.gba", 0x50da54, 0x4 - -gUnknown_0850DA58:: @ 850DA58 - .incbin "baserom.gba", 0x50da58, 0xc - -gUnknown_0850DA64:: @ 850DA64 - .incbin "baserom.gba", 0x50da64, 0x2c - -gUnknown_0850DA90:: @ 850DA90 - .incbin "baserom.gba", 0x50da90, 0xc - -gUnknown_0850DA9C:: @ 850DA9C - .incbin "baserom.gba", 0x50da9c, 0x4 - -gUnknown_0850DAA0:: @ 850DAA0 - .incbin "baserom.gba", 0x50daa0, 0x8 - -gUnknown_0850DAA8:: @ 850DAA8 - .incbin "baserom.gba", 0x50daa8, 0x8 - -gUnknown_0850DAB0:: @ 850DAB0 - .incbin "baserom.gba", 0x50dab0, 0x8 - -gUnknown_0850DAB8:: @ 850DAB8 - .incbin "baserom.gba", 0x50dab8, 0x8 - -gUnknown_0850DAC0:: @ 850DAC0 - .incbin "baserom.gba", 0x50dac0, 0xc - -gUnknown_0850DACC:: @ 850DACC - .incbin "baserom.gba", 0x50dacc, 0x9 - -gUnknown_0850DAD5:: @ 850DAD5 - .incbin "baserom.gba", 0x50dad5, 0x9 - -gUnknown_0850DADE:: @ 850DADE - .incbin "baserom.gba", 0x50dade, 0x9 - -gUnknown_0850DAE7:: @ 850DAE7 - .incbin "baserom.gba", 0x50dae7, 0x9 - -gUnknown_0850DAF0:: @ 850DAF0 - .incbin "baserom.gba", 0x50daf0, 0x9 - -gUnknown_0850DAF9:: @ 850DAF9 - .incbin "baserom.gba", 0x50daf9, 0x9 - -gUnknown_0850DB02:: @ 850DB02 - .incbin "baserom.gba", 0x50db02, 0x9 - -gUnknown_0850DB0B:: @ 850DB0B - .incbin "baserom.gba", 0x50db0b, 0x9 - -gUnknown_0850DB14:: @ 850DB14 - .incbin "baserom.gba", 0x50db14, 0x9 - -gUnknown_0850DB1D:: @ 850DB1D - .incbin "baserom.gba", 0x50db1d, 0x9 - -gUnknown_0850DB26:: @ 850DB26 - .incbin "baserom.gba", 0x50db26, 0x9 - -gUnknown_0850DB2F:: @ 850DB2F - .incbin "baserom.gba", 0x50db2f, 0x9 - -gUnknown_0850DB38:: @ 850DB38 - .incbin "baserom.gba", 0x50db38, 0x9 - -gUnknown_0850DB41:: @ 850DB41 - .incbin "baserom.gba", 0x50db41, 0x9 - -gUnknown_0850DB4A:: @ 850DB4A - .incbin "baserom.gba", 0x50db4a, 0x9 - -gUnknown_0850DB53:: @ 850DB53 - .incbin "baserom.gba", 0x50db53, 0x9 - -gUnknown_0850DB5C:: @ 850DB5C - .incbin "baserom.gba", 0x50db5c, 0x10 - -gUnknown_0850DB6C:: @ 850DB6C - .incbin "baserom.gba", 0x50db6c, 0x10 - -gUnknown_0850DB7C:: @ 850DB7C - .incbin "baserom.gba", 0x50db7c, 0x24 - -gUnknown_0850DBA0:: @ 850DBA0 - .incbin "baserom.gba", 0x50dba0, 0x5 - -gUnknown_0850DBA5:: @ 850DBA5 - .incbin "baserom.gba", 0x50dba5, 0x5 - -gUnknown_0850DBAA:: @ 850DBAA - .incbin "baserom.gba", 0x50dbaa, 0x5 - -gUnknown_0850DBAF:: @ 850DBAF - .incbin "baserom.gba", 0x50dbaf, 0x5 - -gUnknown_0850DBB4:: @ 850DBB4 - .incbin "baserom.gba", 0x50dbb4, 0x5 - -gUnknown_0850DBB9:: @ 850DBB9 - .incbin "baserom.gba", 0x50dbb9, 0x5 - -gUnknown_0850DBBE:: @ 850DBBE - .incbin "baserom.gba", 0x50dbbe, 0x5 - -gUnknown_0850DBC3:: @ 850DBC3 - .incbin "baserom.gba", 0x50dbc3, 0x5 - -gUnknown_0850DBC8:: @ 850DBC8 - .incbin "baserom.gba", 0x50dbc8, 0x5 - -gUnknown_0850DBCD:: @ 850DBCD - .incbin "baserom.gba", 0x50dbcd, 0x5 - -gUnknown_0850DBD2:: @ 850DBD2 - .incbin "baserom.gba", 0x50dbd2, 0x5 - -gUnknown_0850DBD7:: @ 850DBD7 - .incbin "baserom.gba", 0x50dbd7, 0x5 - -gUnknown_0850DBDC:: @ 850DBDC - .incbin "baserom.gba", 0x50dbdc, 0x5 - -gUnknown_0850DBE1:: @ 850DBE1 - .incbin "baserom.gba", 0x50dbe1, 0x5 - -gUnknown_0850DBE6:: @ 850DBE6 - .incbin "baserom.gba", 0x50dbe6, 0x5 - -gUnknown_0850DBEB:: @ 850DBEB - .incbin "baserom.gba", 0x50dbeb, 0x5 - -gUnknown_0850DBF0:: @ 850DBF0 - .incbin "baserom.gba", 0x50dbf0, 0x5 - -gUnknown_0850DBF5:: @ 850DBF5 - .incbin "baserom.gba", 0x50dbf5, 0x5 - -gUnknown_0850DBFA:: @ 850DBFA - .incbin "baserom.gba", 0x50dbfa, 0x5 - -gUnknown_0850DBFF:: @ 850DBFF - .incbin "baserom.gba", 0x50dbff, 0x5 - -gUnknown_0850DC04:: @ 850DC04 - .incbin "baserom.gba", 0x50dc04, 0x5 - -gUnknown_0850DC09:: @ 850DC09 - .incbin "baserom.gba", 0x50dc09, 0x5 - -gUnknown_0850DC0E:: @ 850DC0E - .incbin "baserom.gba", 0x50dc0e, 0x5 - -gUnknown_0850DC13:: @ 850DC13 - .incbin "baserom.gba", 0x50dc13, 0x5 - -gUnknown_0850DC18:: @ 850DC18 - .incbin "baserom.gba", 0x50dc18, 0x5 - -gUnknown_0850DC1D:: @ 850DC1D - .incbin "baserom.gba", 0x50dc1d, 0x5 - -gUnknown_0850DC22:: @ 850DC22 - .incbin "baserom.gba", 0x50dc22, 0x5 - -gUnknown_0850DC27:: @ 850DC27 - .incbin "baserom.gba", 0x50dc27, 0x8 - -gUnknown_0850DC2F:: @ 850DC2F - .incbin "baserom.gba", 0x50dc2f, 0x10 - -gUnknown_0850DC3F:: @ 850DC3F - .incbin "baserom.gba", 0x50dc3f, 0x11 - -gUnknown_0850DC50:: @ 850DC50 - .incbin "baserom.gba", 0x50dc50, 0x298 - -gUnknown_0850DEE8:: @ 850DEE8 - .incbin "baserom.gba", 0x50dee8, 0xd4 - -gUnknown_0850DFBC:: @ 850DFBC - .incbin "baserom.gba", 0x50dfbc, 0x6 - -gUnknown_0850DFC2:: @ 850DFC2 - .incbin "baserom.gba", 0x50dfc2, 0x61a - -gUnknown_0850E5DC:: @ 850E5DC - .incbin "baserom.gba", 0x50e5dc, 0x8 - -gUnknown_0850E5E4:: @ 850E5E4 - .incbin "baserom.gba", 0x50e5e4, 0x18 - -gUnknown_0850E5FC:: @ 850E5FC - .incbin "baserom.gba", 0x50e5fc, 0x18 - -gUnknown_0850E614:: @ 850E614 - .incbin "baserom.gba", 0x50e614, 0x10 - -gUnknown_0850E624:: @ 850E624 - .incbin "baserom.gba", 0x50e624, 0x10 - -gUnknown_0850E634:: @ 850E634 - .incbin "baserom.gba", 0x50e634, 0x10 - -gUnknown_0850E644:: @ 850E644 - .incbin "baserom.gba", 0x50e644, 0x10 - -gUnknown_0850E654:: @ 850E654 - .incbin "baserom.gba", 0x50e654, 0xc - -gUnknown_0850E660:: @ 850E660 - .incbin "baserom.gba", 0x50e660, 0x4 - -gUnknown_0850E664:: @ 850E664 - .incbin "baserom.gba", 0x50e664, 0x10 - -gUnknown_0850E674:: @ 850E674 - .incbin "baserom.gba", 0x50e674, 0xe0 - -gUnknown_0850E754:: @ 850E754 - .incbin "baserom.gba", 0x50e754, 0x14 - -gUnknown_0850E768:: @ 850E768 - .incbin "baserom.gba", 0x50e768, 0xa - -gUnknown_0850E772:: @ 850E772 - .incbin "baserom.gba", 0x50e772, 0x48 - -gUnknown_0850E7BA:: @ 850E7BA - .incbin "baserom.gba", 0x50e7ba, 0x7a - -gUnknown_0850E834:: @ 850E834 - .incbin "baserom.gba", 0x50e834, 0xc - -gUnknown_0850E840:: @ 850E840 - .incbin "baserom.gba", 0x50e840, 0x6 - -gUnknown_0850E846:: @ 850E846 - .incbin "baserom.gba", 0x50e846, 0x4 - -gUnknown_0850E84A:: @ 850E84A - .incbin "baserom.gba", 0x50e84a, 0x6 - -gUnknown_0850E850:: @ 850E850 - .incbin "baserom.gba", 0x50e850, 0x2c - -gUnknown_0850E87C:: @ 850E87C - .incbin "baserom.gba", 0x50e87c, 0x1680 - -gUnknown_0850FEFC:: @ 850FEFC - .incbin "baserom.gba", 0x50fefc, 0x280 - -gUnknown_0851017C:: @ 851017C - .incbin "baserom.gba", 0x51017c, 0xa0 - -gUnknown_0851021C:: @ 851021C - .incbin "baserom.gba", 0x51021c, 0xa0 - -gNullScriptPtr:: @ 85102BC - .incbin "baserom.gba", 0x5102bc, 0x4 - -gUnknown_085102C0:: @ 85102C0 - .incbin "baserom.gba", 0x5102c0, 0x14 - -gUnknown_085102D4:: @ 85102D4 - .incbin "baserom.gba", 0x5102d4, 0xc - -gUnknown_085102E0:: @ 85102E0 - .incbin "baserom.gba", 0x5102e0, 0x68 - -gUnknown_08510348:: @ 8510348 - .incbin "baserom.gba", 0x510348, 0x20 - -gUnknown_08510368:: @ 8510368 - .incbin "baserom.gba", 0x510368, 0x20 - -gUnknown_08510388:: @ 8510388 - .incbin "baserom.gba", 0x510388, 0x20 - -gUnknown_085103A8:: @ 85103A8 - .incbin "baserom.gba", 0x5103a8, 0x20 - -gUnknown_085103C8:: @ 85103C8 - .incbin "baserom.gba", 0x5103c8, 0x34 - -gUnknown_085103FC:: @ 85103FC - .incbin "baserom.gba", 0x5103fc, 0x8 - -gUnknown_08510404:: @ 8510404 - .incbin "baserom.gba", 0x510404, 0x4 - -gUnknown_08510408:: @ 8510408 - .incbin "baserom.gba", 0x510408, 0x14 - -gUnknown_0851041C:: @ 851041C - .incbin "baserom.gba", 0x51041c, 0x4 - -gUnknown_08510420:: @ 8510420 - .incbin "baserom.gba", 0x510420, 0xa4 - -gUnknown_085104C4:: @ 85104C4 - .incbin "baserom.gba", 0x5104c4, 0x2c - -gUnknown_085104F0:: @ 85104F0 - .incbin "baserom.gba", 0x5104f0, 0x18 - -gSafariBallsWindowTemplate:: @ 8510508 - .incbin "baserom.gba", 0x510508, 0x8 - -gUnknown_08510510:: @ 8510510 - .incbin "baserom.gba", 0x510510, 0x20 - -gPyramidFloorWindowTemplate_2:: @ 8510530 - .incbin "baserom.gba", 0x510530, 0x8 - -gPyramidFloorWindowTemplate_1:: @ 8510538 - .incbin "baserom.gba", 0x510538, 0x8 - -sStartMenuItems:: @ 8510540 - .incbin "baserom.gba", 0x510540, 0x68 - -gUnknown_085105A8:: @ 85105A8 - .incbin "baserom.gba", 0x5105a8, 0x4 - -gUnknown_085105AC:: @ 85105AC - .incbin "baserom.gba", 0x5105ac, 0x10 - -gUnknown_085105BC:: @ 85105BC - .incbin "baserom.gba", 0x5105bc, 0x1a8 - -gUnknown_08510764:: @ 8510764 - .incbin "baserom.gba", 0x510764, 0xb60 - -gUnknown_085112C4:: @ 85112C4 - .incbin "baserom.gba", 0x5112c4, 0x908 - -gUnknown_08511BCC:: @ 8511BCC - .incbin "baserom.gba", 0x511bcc, 0x9a8 - -gUnknown_08512574:: @ 8512574 - .incbin "baserom.gba", 0x512574, 0x8e0 - -gUnknown_08512E54:: @ 8512E54 - .incbin "baserom.gba", 0x512e54, 0x320 - -gUnknown_08513174:: @ 8513174 - .incbin "baserom.gba", 0x513174, 0x510 - -gUnknown_08513684:: @ 8513684 - .incbin "baserom.gba", 0x513684, 0x210 - -gUnknown_08513894:: @ 8513894 - .incbin "baserom.gba", 0x513894, 0xb50 - -gUnknown_085143E4:: @ 85143E4 - .incbin "baserom.gba", 0x5143e4, 0x210 - -gUnknown_085145F4:: @ 85145F4 - .incbin "baserom.gba", 0x5145f4, 0x810 - -gUnknown_08514E04:: @ 8514E04 - .incbin "baserom.gba", 0x514e04, 0x540 - -gUnknown_08515344:: @ 8515344 - .incbin "baserom.gba", 0x515344, 0x20 - -gUnknown_08515364:: @ 8515364 - .incbin "baserom.gba", 0x515364, 0x20 - -gUnknown_08515384:: @ 8515384 - .incbin "baserom.gba", 0x515384, 0x30 - -gUnknown_085153B4:: @ 85153B4 - .incbin "baserom.gba", 0x5153b4, 0x30 - -gUnknown_085153E4:: @ 85153E4 - .incbin "baserom.gba", 0x5153e4, 0x10 - -gUnknown_085153F4:: @ 85153F4 - .incbin "baserom.gba", 0x5153f4, 0x410 - -gUnknown_08515804:: @ 8515804 - .incbin "baserom.gba", 0x515804, 0x20 - -gUnknown_08515824:: @ 8515824 - .incbin "baserom.gba", 0x515824, 0x140 - -gUnknown_08515964:: @ 8515964 - .incbin "baserom.gba", 0x515964, 0x428 - -gUnknown_08515D8C:: @ 8515D8C - .incbin "baserom.gba", 0x515d8c, 0x430 - -gUnknown_085161BC:: @ 85161BC - .incbin "baserom.gba", 0x5161bc, 0x20 - -gUnknown_085161DC:: @ 85161DC - .incbin "baserom.gba", 0x5161dc, 0x320 - -gUnknown_085164FC:: @ 85164FC - .incbin "baserom.gba", 0x5164fc, 0x310 - -gUnknown_0851680C:: @ 851680C - .incbin "baserom.gba", 0x51680c, 0x310 - -gUnknown_08516B1C:: @ 8516B1C - .incbin "baserom.gba", 0x516b1c, 0x210 - -gUnknown_08516D2C:: @ 8516D2C - .incbin "baserom.gba", 0x516d2c, 0x110 - -gUnknown_08516E3C:: @ 8516E3C - .incbin "baserom.gba", 0x516e3c, 0xc08 - -gUnknown_08517A44:: @ 8517A44 - .incbin "baserom.gba", 0x517a44, 0xc - -gUnknown_08517A50:: @ 8517A50 - .incbin "baserom.gba", 0x517a50, 0x1ac - -gUnknown_08517BFC:: @ 8517BFC - .incbin "baserom.gba", 0x517bfc, 0x10 - -gUnknown_08517C0C:: @ 8517C0C - .incbin "baserom.gba", 0x517c0c, 0x428 - -gUnknown_08518034:: @ 8518034 - .incbin "baserom.gba", 0x518034, 0x268 - -gUnknown_0851829C:: @ 851829C - .incbin "baserom.gba", 0x51829c, 0x8028 - -gUnknown_085202C4:: @ 85202C4 - .incbin "baserom.gba", 0x5202c4, 0x45a0 - -gUnknown_08524864:: @ 8524864 - .incbin "baserom.gba", 0x524864, 0xc - -gUnknown_08524870:: @ 8524870 - .incbin "baserom.gba", 0x524870, 0xc - -gUnknown_0852487C:: @ 852487C - .incbin "baserom.gba", 0x52487c, 0x10 - -gDummyPaletteStructTemplate:: @ 852488C - .2byte 0xFFFF - .space 9 - .byte 0x20 - .space 4 - - .align 2 -gUnknown_0852489C:: @ 852489C - .incbin "baserom.gba", 0x52489c, 0x20 - -sFanfares:: @ 85248BC - .incbin "baserom.gba", 0x5248bc, 0x48 - -gUnknown_08524904:: @ 8524904 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_0852490C:: @ 852490C - .byte 0x00, 0x00, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524914:: @ 8524914 - .byte 0x00, 0x00, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_0852491C:: @ 852491C - .byte 0x00, 0x00, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524924:: @ 8524924 - .byte 0x00, 0x40, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_0852492C:: @ 852492C - .byte 0x00, 0x40, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524934:: @ 8524934 - .byte 0x00, 0x40, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_0852493C:: @ 852493C - .byte 0x00, 0x40, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524944:: @ 8524944 - .byte 0x00, 0x80, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_0852494C:: @ 852494C - .byte 0x00, 0x80, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524954:: @ 8524954 - .byte 0x00, 0x80, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_0852495C:: @ 852495C - .byte 0x00, 0x80, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524964:: @ 8524964 - .byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_0852496C:: @ 852496C - .byte 0x00, 0x01, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524974:: @ 8524974 - .byte 0x00, 0x01, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_0852497C:: @ 852497C - .byte 0x00, 0x01, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524984:: @ 8524984 - .byte 0x00, 0x41, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_0852498C:: @ 852498C - .byte 0x00, 0x41, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524994:: @ 8524994 - .byte 0x00, 0x41, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_0852499C:: @ 852499C - .byte 0x00, 0x41, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_085249A4:: @ 85249A4 - .byte 0x00, 0x81, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_085249AC:: @ 85249AC - .byte 0x00, 0x81, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_085249B4:: @ 85249B4 - .byte 0x00, 0x81, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_085249BC:: @ 85249BC - .byte 0x00, 0x81, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_085249C4:: @ 85249C4 - .byte 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_085249CC:: @ 85249CC - .byte 0x00, 0x03, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_085249D4:: @ 85249D4 - .byte 0x00, 0x03, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_085249DC:: @ 85249DC - .byte 0x00, 0x03, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_085249E4:: @ 85249E4 - .byte 0x00, 0x43, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_085249EC:: @ 85249EC - .byte 0x00, 0x43, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_085249F4:: @ 85249F4 - .byte 0x00, 0x43, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_085249FC:: @ 85249FC - .byte 0x00, 0x43, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524A04:: @ 8524A04 - .byte 0x00, 0x83, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524A0C:: @ 8524A0C - .byte 0x00, 0x83, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524A14:: @ 8524A14 - .byte 0x00, 0x83, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524A1C:: @ 8524A1C - .byte 0x00, 0x83, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524A24:: @ 8524A24 - .byte 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524A2C:: @ 8524A2C - .byte 0x00, 0x04, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524A34:: @ 8524A34 - .byte 0x00, 0x04, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524A3C:: @ 8524A3C - .byte 0x00, 0x04, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524A44:: @ 8524A44 - .byte 0x00, 0x44, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524A4C:: @ 8524A4C - .byte 0x00, 0x44, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524A54:: @ 8524A54 - .byte 0x00, 0x44, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524A5C:: @ 8524A5C - .byte 0x00, 0x44, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524A64:: @ 8524A64 - .byte 0x00, 0x84, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524A6C:: @ 8524A6C - .byte 0x00, 0x84, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524A74:: @ 8524A74 - .byte 0x00, 0x84, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524A7C:: @ 8524A7C - .byte 0x00, 0x84, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524A84:: @ 8524A84 - .byte 0x00, 0x05, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524A8C:: @ 8524A8C - .byte 0x00, 0x05, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524A94:: @ 8524A94 - .byte 0x00, 0x05, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524A9C:: @ 8524A9C - .byte 0x00, 0x05, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524AA4:: @ 8524AA4 - .byte 0x00, 0x45, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524AAC:: @ 8524AAC - .byte 0x00, 0x45, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524AB4:: @ 8524AB4 - .byte 0x00, 0x45, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524ABC:: @ 8524ABC - .byte 0x00, 0x45, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524AC4:: @ 8524AC4 - .byte 0x00, 0x85, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524ACC:: @ 8524ACC - .byte 0x00, 0x85, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524AD4:: @ 8524AD4 - .byte 0x00, 0x85, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524ADC:: @ 8524ADC - .byte 0x00, 0x85, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524AE4:: @ 8524AE4 - .byte 0x00, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524AEC:: @ 8524AEC - .byte 0x00, 0x07, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524AF4:: @ 8524AF4 - .byte 0x00, 0x07, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524AFC:: @ 8524AFC - .byte 0x00, 0x07, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524B04:: @ 8524B04 - .byte 0x00, 0x47, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524B0C:: @ 8524B0C - .byte 0x00, 0x47, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524B14:: @ 8524B14 - .byte 0x00, 0x47, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524B1C:: @ 8524B1C - .byte 0x00, 0x47, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524B24:: @ 8524B24 - .byte 0x00, 0x87, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524B2C:: @ 8524B2C - .byte 0x00, 0x87, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524B34:: @ 8524B34 - .byte 0x00, 0x87, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08524B3C:: @ 8524B3C - .byte 0x00, 0x87, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00 - -gUnknown_08524B44:: @ 8524B44 - .incbin "baserom.gba", 0x524b44, 0x1d0 - -gUnknown_08524D14:: @ 8524D14 - .incbin "baserom.gba", 0x524d14, 0x270 - -gUnknown_08524F84:: @ 8524F84 - .incbin "baserom.gba", 0x524f84, 0x308 - -gUnknown_0852528C:: @ 852528C - .incbin "baserom.gba", 0x52528c, 0x120 - -gUnknown_085253AC:: @ 85253AC - .incbin "baserom.gba", 0x5253ac, 0x270 - -gUnknown_0852561C:: @ 852561C - .incbin "baserom.gba", 0x52561c, 0x270 - -gUnknown_0852588C:: @ 852588C - .incbin "baserom.gba", 0x52588c, 0x308 - -gUnknown_08525B94:: @ 8525B94 - .incbin "baserom.gba", 0x525b94, 0x120 - -gUnknown_08525CB4:: @ 8525CB4 - .incbin "baserom.gba", 0x525cb4, 0xa0 - -gUnknown_08525D54:: @ 8525D54 - .incbin "baserom.gba", 0x525d54, 0x144 - -gUnknown_08525E98:: @ 8525E98 - .incbin "baserom.gba", 0x525e98, 0xc0 - -gUnknown_08525F58:: @ 8525F58 - .incbin "baserom.gba", 0x525f58, 0x20 - -gUnknown_08525F78:: @ 8525F78 - .incbin "baserom.gba", 0x525f78, 0x10 - -gUnknown_08525F88:: @ 8525F88 - .incbin "baserom.gba", 0x525f88, 0x4 - -gUnknown_08525F8C:: @ 8525F8C - .incbin "baserom.gba", 0x525f8c, 0x4 - -gUnknown_08525F90:: @ 8525F90 - .incbin "baserom.gba", 0x525f90, 0x30 - -gUnknown_08525FC0:: @ 8525FC0 - .incbin "baserom.gba", 0x525fc0, 0x18f80 - -gUnknown_0853EF40:: @ 853EF40 - .incbin "baserom.gba", 0x53ef40, 0x8 - -gUnknown_0853EF48:: @ 853EF48 - .incbin "baserom.gba", 0x53ef48, 0x18 - -gUnknown_0853EF60:: @ 853EF60 - .incbin "baserom.gba", 0x53ef60, 0xf8 - -gTitleScreenRayquazaTiles:: @ 853F058 - .incbin "graphics/title_screen/rayquaza.4bpp.lz" - - .align 2 -gUnknown_0853F83C:: @ 853F83C - .incbin "baserom.gba", 0x53f83c, 0x450 - -gTitleScreenCloudsTiles:: @ 853FC8C - .incbin "graphics/title_screen/clouds.4bpp.lz" - - .align 2 -gUnknown_0853FF70:: @ 853FF70 - .incbin "baserom.gba", 0x53ff70, 0xa8 - -gUnknown_08540018:: @ 8540018 - .incbin "baserom.gba", 0x540018, 0x18 - -gUnknown_08540030:: @ 8540030 - .incbin "baserom.gba", 0x540030, 0x18 - -gUnknown_08540048:: @ 8540048 - .incbin "baserom.gba", 0x540048, 0x90 - -gUnknown_085400D8:: @ 85400D8 - .incbin "baserom.gba", 0x5400d8, 0x18 - -gUnknown_085400F0:: @ 85400F0 - .incbin "baserom.gba", 0x5400f0, 0x10 - -gUnknown_08540100:: @ 8540100 - .incbin "baserom.gba", 0x540100, 0x24 - -gUnknown_08540124:: @ 8540124 - .incbin "baserom.gba", 0x540124, 0x18 - -gUnknown_0854013C:: @ 854013C - .incbin "baserom.gba", 0x54013c, 0x10 - -gUnknown_0854014C:: @ 854014C - .incbin "baserom.gba", 0x54014c, 0xc000 - -gUnknown_0854C14C:: @ 854C14C - .incbin "baserom.gba", 0x54c14c, 0x4 - -gUnknown_0854C150:: @ 854C150 - .incbin "baserom.gba", 0x54c150, 0xf0 - -gUnknown_0854C240:: @ 854C240 - .incbin "baserom.gba", 0x54c240, 0x10 - -gUnknown_0854C250:: @ 854C250 - .incbin "baserom.gba", 0x54c250, 0x20 - -gUnknown_0854C270:: @ 854C270 - .incbin "baserom.gba", 0x54c270, 0x20 - -gUnknown_0854C290:: @ 854C290 - .incbin "baserom.gba", 0x54c290, 0x20 - -gUnknown_0854C2B0:: @ 854C2B0 - .incbin "baserom.gba", 0x54c2b0, 0x820 - -gUnknown_0854CAD0:: @ 854CAD0 - .incbin "baserom.gba", 0x54cad0, 0x3080 - -gUnknown_0854FB50:: @ 854FB50 - .incbin "baserom.gba", 0x54fb50, 0xc - -gUnknown_0854FB5C:: @ 854FB5C - .incbin "baserom.gba", 0x54fb5c, 0x1c - -gUnknown_0854FB78:: @ 854FB78 - .incbin "baserom.gba", 0x54fb78, 0x18 - -gUnknown_0854FB90:: @ 854FB90 - .incbin "baserom.gba", 0x54fb90, 0x9c - -gUnknown_0854FC2C:: @ 854FC2C - .incbin "baserom.gba", 0x54fc2c, 0x18 - -gUnknown_0854FC44:: @ 854FC44 - .incbin "baserom.gba", 0x54fc44, 0x8 - -gUnknown_0854FC4C:: @ 854FC4C - .incbin "baserom.gba", 0x54fc4c, 0x8 - -gUnknown_0854FC54:: @ 854FC54 - .incbin "baserom.gba", 0x54fc54, 0x38 - -gUnknown_0854FC8C:: @ 854FC8C - .incbin "baserom.gba", 0x54fc8c, 0x8c - -gUnknown_0854FD18:: @ 854FD18 - .incbin "baserom.gba", 0x54fd18, 0x18 - -gUnknown_0854FD30:: @ 854FD30 - .incbin "baserom.gba", 0x54fd30, 0x8 - -gUnknown_0854FD38:: @ 854FD38 - .incbin "baserom.gba", 0x54fd38, 0x20 - -gUnknown_0854FD58:: @ 854FD58 - .incbin "baserom.gba", 0x54fd58, 0x18 - -gUnknown_0854FD70:: @ 854FD70 - .incbin "baserom.gba", 0x54fd70, 0x1c - -gUnknown_0854FD8C:: @ 854FD8C - .incbin "baserom.gba", 0x54fd8c, 0x38 - -gUnknown_0854FDC4:: @ 854FDC4 - .incbin "baserom.gba", 0x54fdc4, 0x18 - -gUnknown_0854FDDC:: @ 854FDDC - .incbin "baserom.gba", 0x54fddc, 0x8 - -gUnknown_0854FDE4:: @ 854FDE4 - .incbin "baserom.gba", 0x54fde4, 0xc - -gUnknown_0854FDF0:: @ 854FDF0 - .incbin "baserom.gba", 0x54fdf0, 0x8 - -gUnknown_0854FDF8:: @ 854FDF8 - .incbin "baserom.gba", 0x54fdf8, 0x8 - -gUnknown_0854FE00:: @ 854FE00 - .incbin "baserom.gba", 0x54fe00, 0x44 - -gUnknown_0854FE44:: @ 854FE44 - .incbin "baserom.gba", 0x54fe44, 0x18 - -gUnknown_0854FE5C:: @ 854FE5C - .incbin "baserom.gba", 0x54fe5c, 0x4 - -gUnknown_0854FE60:: @ 854FE60 - .incbin "baserom.gba", 0x54fe60, 0x4 - -gUnknown_0854FE64:: @ 854FE64 - .incbin "baserom.gba", 0x54fe64, 0x14 - -gUnknown_0854FE78:: @ 854FE78 - .incbin "baserom.gba", 0x54fe78, 0x4 - -gUnknown_0854FE7C:: @ 854FE7C - .incbin "baserom.gba", 0x54fe7c, 0xc - -gUnknown_0854FE88:: @ 854FE88 - .incbin "baserom.gba", 0x54fe88, 0x8 - -gUnknown_0854FE90:: @ 854FE90 - .incbin "baserom.gba", 0x54fe90, 0x8 - -gUnknown_0854FE98:: @ 854FE98 - .incbin "baserom.gba", 0x54fe98, 0xc - -gUnknown_0854FEA4:: @ 854FEA4 - .incbin "baserom.gba", 0x54fea4, 0x3 - -gUnknown_0854FEA7:: @ 854FEA7 - .incbin "baserom.gba", 0x54fea7, 0x5 - -gUnknown_0854FEAC:: @ 854FEAC - .incbin "baserom.gba", 0x54feac, 0x48 - -gUnknown_0854FEF4:: @ 854FEF4 - .incbin "baserom.gba", 0x54fef4, 0x48 - -gUnknown_0854FF3C:: @ 854FF3C - .incbin "baserom.gba", 0x54ff3c, 0x48 - -gUnknown_0854FF84:: @ 854FF84 - .incbin "baserom.gba", 0x54ff84, 0x48 - -gUnknown_0854FFCC:: @ 854FFCC - .incbin "baserom.gba", 0x54ffcc, 0x48 - -gUnknown_08550014:: @ 8550014 - .incbin "baserom.gba", 0x550014, 0x48 - -gUnknown_0855005C:: @ 855005C - .incbin "baserom.gba", 0x55005c, 0x48 - -gUnknown_085500A4:: @ 85500A4 - .incbin "baserom.gba", 0x5500a4, 0x4e0 - -gUnknown_08550584:: @ 8550584 - .incbin "baserom.gba", 0x550584, 0x10 - -gUnknown_08550594:: @ 8550594 - .incbin "baserom.gba", 0x550594, 0x8 - -gUnknown_0855059C:: @ 855059C - .incbin "baserom.gba", 0x55059c, 0x190 - -gUnknown_0855072C:: @ 855072C - .incbin "baserom.gba", 0x55072c, 0x10 - -gUnknown_0855073C:: @ 855073C - .incbin "baserom.gba", 0x55073c, 0x30 - -gUnknown_0855076C:: @ 855076C - .incbin "baserom.gba", 0x55076c, 0x48 - -gUnknown_085507B4:: @ 85507B4 - .incbin "baserom.gba", 0x5507b4, 0x18 - -gUnknown_085507CC:: @ 85507CC - .incbin "baserom.gba", 0x5507cc, 0x18 - -@ 85507E4 - .include "data/wild_mons.inc" - - .incbin "baserom.gba", 0x55370c, 0x188 - -gUnknown_08553894:: @ 8553894 - .incbin "baserom.gba", 0x553894, 0x180 - -gUnknown_08553A14:: @ 8553A14 - .incbin "baserom.gba", 0x553a14, 0x64 - -gUnknown_08553A78:: @ 8553A78 - .incbin "baserom.gba", 0x553a78, 0x4 - -gUnknown_08553A7C:: @ 8553A7C - .incbin "baserom.gba", 0x553a7c, 0x14 - - .align 2 -gNewGameBirchPic:: @ 8553A90 - .incbin "graphics/birch_speech/birch.4bpp" - - .incbin "baserom.gba", 0x554290, 0x66c0 - - .align 2 -gNewGameBirchPalette:: @ 855A950 - .incbin "graphics/birch_speech/birch.gbapal" - - .align 2 - .incbin "baserom.gba", 0x55a970, 0x20 - - .align 2 -gFieldEffectObjectPalette4:: @ 855A990 - .incbin "graphics/map_objects/palettes/field_effect_object_palette_04.gbapal" - - .incbin "baserom.gba", 0x55a9b0, 0x480 - - .align 2 -gFieldEffectObjectPalette5:: @ 855AE30 - .incbin "graphics/map_objects/palettes/field_effect_object_palette_05.gbapal" - -gUnknown_0855AE50:: @ 855AE50 - .incbin "baserom.gba", 0x55ae50, 0x200 - -gUnknown_0855B050:: @ 855B050 - .incbin "baserom.gba", 0x55b050, 0x20 - -gUnknown_0855B070:: @ 855B070 - .incbin "baserom.gba", 0x55b070, 0x280 - -gUnknown_0855B2F0:: @ 855B2F0 - .incbin "baserom.gba", 0x55b2f0, 0x80 - -gUnknown_0855B370:: @ 855B370 - .incbin "baserom.gba", 0x55b370, 0x20 - -gUnknown_0855B390:: @ 855B390 - .incbin "baserom.gba", 0x55b390, 0x280 - -gUnknown_0855B610:: @ 855B610 - .incbin "baserom.gba", 0x55b610, 0x20 - -gUnknown_0855B630:: @ 855B630 - .incbin "baserom.gba", 0x55b630, 0xbc0 - -gUnknown_0855C1F0:: @ 855C1F0 - .incbin "baserom.gba", 0x55c1f0, 0x20 - - .align 2 -@ TODO: something else uses these too -gNewGameBirchOamAttributes:: @ 855C210 - .4byte OAM_SIZE_64x64 - .2byte 0 - - .align 2 - .incbin "baserom.gba", 0x55c218, 0x10 - - .align 2 -gNewGameBirchPicTable:: @ 855C228 - obj_tiles gNewGameBirchPic, 0x800 - - .align 2 -gNewGameBirchObjectPaletteInfo:: @ 855C230 - obj_pal gNewGameBirchPalette, 0x1006 - - .align 2 -gNewGameBirchImageAnim:: @ 855C238 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gNewGameBirchImageAnimTable:: @ 855C240 - .4byte gNewGameBirchImageAnim - - .align 2 -gNewGameBirchObjectTemplate:: @ 855C244 - .2byte 0xFFFF @ tiles tag - .2byte 0x1006 @ palette tag - .4byte gNewGameBirchOamAttributes - .4byte gNewGameBirchImageAnimTable - .4byte gNewGameBirchPicTable - .4byte gDummySpriteAffineAnimTable - .4byte SpriteCallbackDummy - - .align 2 -gFieldEffectObjectPaletteInfo4:: @ 855C25C - obj_pal gFieldEffectObjectPalette4, 0x1007 - - .align 2 -gFieldEffectObjectPaletteInfo5:: @ 855C264 - obj_pal gFieldEffectObjectPalette5, 0x1010 - - .incbin "baserom.gba", 0x55c26c, 0x40 - -gUnknown_0855C2AC:: @ 855C2AC - .incbin "baserom.gba", 0x55c2ac, 0x18 - -gUnknown_0855C2C4:: @ 855C2C4 - .incbin "baserom.gba", 0x55c2c4, 0x40 - -gUnknown_0855C304:: @ 855C304 - .incbin "baserom.gba", 0x55c304, 0x18 - -gUnknown_0855C31C:: @ 855C31C - .incbin "baserom.gba", 0x55c31c, 0x18 - -gUnknown_0855C334:: @ 855C334 - .incbin "baserom.gba", 0x55c334, 0x18 - -gUnknown_0855C34C:: @ 855C34C - .incbin "baserom.gba", 0x55c34c, 0x18 - -gUnknown_0855C364:: @ 855C364 - .incbin "baserom.gba", 0x55c364, 0x10 - -gUnknown_0855C374:: @ 855C374 - .incbin "baserom.gba", 0x55c374, 0x10 - -gUnknown_0855C384:: @ 855C384 - .incbin "baserom.gba", 0x55c384, 0x20 - -gUnknown_0855C3A4:: @ 855C3A4 - .incbin "baserom.gba", 0x55c3a4, 0x18 - -gUnknown_0855C3BC:: @ 855C3BC - .incbin "baserom.gba", 0x55c3bc, 0x4 - -gUnknown_0855C3C0:: @ 855C3C0 - .incbin "baserom.gba", 0x55c3c0, 0x4 - -gUnknown_0855C3C4:: @ 855C3C4 - .incbin "baserom.gba", 0x55c3c4, 0x4 - -gUnknown_0855C3C8:: @ 855C3C8 - .incbin "baserom.gba", 0x55c3c8, 0x1c - -gUnknown_0855C3E4:: @ 855C3E4 - .incbin "baserom.gba", 0x55c3e4, 0x18 - -gUnknown_0855C3FC:: @ 855C3FC - .incbin "baserom.gba", 0x55c3fc, 0x1c - -gUnknown_0855C418:: @ 855C418 - .incbin "baserom.gba", 0x55c418, 0x14 - -gUnknown_0855C42C:: @ 855C42C - .incbin "baserom.gba", 0x55c42c, 0xc - -gUnknown_0855C438:: @ 855C438 - .incbin "baserom.gba", 0x55c438, 0x18 - -gUnknown_0855C450:: @ 855C450 - .incbin "baserom.gba", 0x55c450, 0x10 - -gUnknown_0855C460:: @ 855C460 - .incbin "baserom.gba", 0x55c460, 0x14 - -gUnknown_0855C474:: @ 855C474 - .incbin "baserom.gba", 0x55c474, 0x8 - -gUnknown_0855C47C:: @ 855C47C - .incbin "baserom.gba", 0x55c47c, 0x8 - -gUnknown_0855C484:: @ 855C484 - .incbin "baserom.gba", 0x55c484, 0x8 - -gUnknown_0855C48C:: @ 855C48C - .incbin "baserom.gba", 0x55c48c, 0x10 - -gUnknown_0855C49C:: @ 855C49C - .incbin "baserom.gba", 0x55c49c, 0xc - -gUnknown_0855C4A8:: @ 855C4A8 - .incbin "baserom.gba", 0x55c4a8, 0x1c - -gUnknown_0855C4C4:: @ 855C4C4 - .incbin "baserom.gba", 0x55c4c4, 0x1c - -gUnknown_0855C4E0:: @ 855C4E0 - .incbin "baserom.gba", 0x55c4e0, 0x14 - -gUnknown_0855C4F4:: @ 855C4F4 - .incbin "baserom.gba", 0x55c4f4, 0x54 - -gUnknown_0855C548:: @ 855C548 - .incbin "baserom.gba", 0x55c548, 0x8 - -gUnknown_0855C550:: @ 855C550 - .incbin "baserom.gba", 0x55c550, 0x1c - -gUnknown_0855C56C:: @ 855C56C - .incbin "baserom.gba", 0x55c56c, 0x24 - -gUnknown_0855C590:: @ 855C590 - .incbin "baserom.gba", 0x55c590, 0x5c - -gUnknown_0855C5EC:: @ 855C5EC - .incbin "baserom.gba", 0x55c5ec, 0x18 - -gUnknown_0855C604:: @ 855C604 - .incbin "baserom.gba", 0x55c604, 0x60 - -gUnknown_0855C664:: @ 855C664 - .incbin "baserom.gba", 0x55c664, 0x1c - -gUnknown_0855C680:: @ 855C680 - .incbin "baserom.gba", 0x55c680, 0x18 - -gUnknown_0855C698:: @ 855C698 - .incbin "baserom.gba", 0x55c698, 0x8 - -gUnknown_0855C6A0:: @ 855C6A0 - .incbin "baserom.gba", 0x55c6a0, 0x4 - -gUnknown_0855C6A4:: @ 855C6A4 - .incbin "baserom.gba", 0x55c6a4, 0x336 - -gUnknown_0855C9DA:: @ 855C9DA - .incbin "baserom.gba", 0x55c9da, 0x304 - -gUnknown_0855CCDE:: @ 855CCDE - .incbin "baserom.gba", 0x55ccde, 0x4b6 - -gUnknown_0855D194:: @ 855D194 - .incbin "baserom.gba", 0x55d194, 0x18 - -gUnknown_0855D1AC:: @ 855D1AC - .incbin "baserom.gba", 0x55d1ac, 0x18 - -gUnknown_0855D1C4:: @ 855D1C4 - .incbin "baserom.gba", 0x55d1c4, 0x18 - -gUnknown_0855D1DC:: @ 855D1DC - .incbin "baserom.gba", 0x55d1dc, 0x18 - -gUnknown_0855D1F4:: @ 855D1F4 - .incbin "baserom.gba", 0x55d1f4, 0x18 - -gUnknown_0855D20C:: @ 855D20C - .incbin "baserom.gba", 0x55d20c, 0x18 - -gUnknown_0855D224:: @ 855D224 - .incbin "baserom.gba", 0x55d224, 0x18 - -gUnknown_0855D23C:: @ 855D23C - .incbin "baserom.gba", 0x55d23c, 0x18 - -gUnknown_0855D254:: @ 855D254 - .incbin "baserom.gba", 0x55d254, 0x18 - -gUnknown_0855D26C:: @ 855D26C - .incbin "baserom.gba", 0x55d26c, 0x10 - -gUnknown_0855D27C:: @ 855D27C - .incbin "baserom.gba", 0x55d27c, 0x10 - -gUnknown_0855D28C:: @ 855D28C - .incbin "baserom.gba", 0x55d28c, 0x5 - -gUnknown_0855D291:: @ 855D291 - .incbin "baserom.gba", 0x55d291, 0x7 - -gUnknown_0855D298:: @ 855D298 - .incbin "baserom.gba", 0x55d298, 0x10 - -gUnknown_0855D2A8:: @ 855D2A8 - .incbin "baserom.gba", 0x55d2a8, 0x10 - -gUnknown_0855D2B8:: @ 855D2B8 - .incbin "baserom.gba", 0x55d2b8, 0x6 - -gUnknown_0855D2BE:: @ 855D2BE - .incbin "baserom.gba", 0x55d2be, 0x40 - -gUnknown_0855D2FE:: @ 855D2FE - .incbin "baserom.gba", 0x55d2fe, 0xe - -gUnknown_0855D30C:: @ 855D30C - .string "$" - -@ 855D30D - .include "data/text/pokedex_text.inc" - -@ 856B5B0 - .include "data/pokedex_entries.inc" - -gUnknown_0856E610:: @ 856E610 - .incbin "baserom.gba", 0x56e610, 0x20 - -gUnknown_0856E630:: @ 856E630 - .incbin "baserom.gba", 0x56e630, 0x10 - -gUnknown_0856E640:: @ 856E640 - .incbin "baserom.gba", 0x56e640, 0x28 - -gUnknown_0856E668:: @ 856E668 - .incbin "baserom.gba", 0x56e668, 0x8 - -gUnknown_0856E670:: @ 856E670 - .incbin "baserom.gba", 0x56e670, 0x18 - -gUnknown_0856E688:: @ 856E688 - .incbin "baserom.gba", 0x56e688, 0xc - -@ 856E694 - .include "data/graphics/pokemon/mon_footprint_table.inc" - -gUnknown_0856ED08:: @ 856ED08 - .incbin "baserom.gba", 0x56ed08, 0x28 - -gUnknown_0856ED30:: @ 856ED30 - .incbin "baserom.gba", 0x56ed30, 0x18 - -gUnknown_0856ED48:: @ 856ED48 - .incbin "baserom.gba", 0x56ed48, 0x54 - -gUnknown_0856ED9C:: @ 856ED9C - .incbin "baserom.gba", 0x56ed9c, 0x1c - -gUnknown_0856EDB8:: @ 856EDB8 - .incbin "baserom.gba", 0x56edb8, 0x1c - -gUnknown_0856EDD4:: @ 856EDD4 - .incbin "baserom.gba", 0x56edd4, 0x1c - -gUnknown_0856EDF0:: @ 856EDF0 - .incbin "baserom.gba", 0x56edf0, 0x1c - -gUnknown_0856EE0C:: @ 856EE0C - .incbin "baserom.gba", 0x56ee0c, 0x18 - -gUnknown_0856EE24:: @ 856EE24 - .incbin "baserom.gba", 0x56ee24, 0x38 - -gUnknown_0856EE5C:: @ 856EE5C - .incbin "baserom.gba", 0x56ee5c, 0x58 - -gUnknown_0856EEB4:: @ 856EEB4 - .incbin "baserom.gba", 0x56eeb4, 0x60 - -gUnknown_0856EF14:: @ 856EF14 - .incbin "baserom.gba", 0x56ef14, 0x98 - -gUnknown_0856EFAC:: @ 856EFAC - .incbin "baserom.gba", 0x56efac, 0x2 - -gUnknown_0856EFAE:: @ 856EFAE - .incbin "baserom.gba", 0x56efae, 0x6 - -gUnknown_0856EFB4:: @ 856EFB4 - .incbin "baserom.gba", 0x56efb4, 0x14 - -gUnknown_0856EFC8:: @ 856EFC8 - .incbin "baserom.gba", 0x56efc8, 0x30 - -gUnknown_0856EFF8:: @ 856EFF8 - .incbin "baserom.gba", 0x56eff8, 0x10 - -gUnknown_0856F008:: @ 856F008 - .incbin "baserom.gba", 0x56f008, 0x10 - -gUnknown_0856F018:: @ 856F018 - .incbin "baserom.gba", 0x56f018, 0x494 - -gUnknown_0856F4AC:: @ 856F4AC - .incbin "baserom.gba", 0x56f4ac, 0x20 - -gUnknown_0856F4CC:: @ 856F4CC - .incbin "baserom.gba", 0x56f4cc, 0x20 - -gUnknown_0856F4EC:: @ 856F4EC - .incbin "baserom.gba", 0x56f4ec, 0x20 - -gUnknown_0856F50C:: @ 856F50C - .incbin "baserom.gba", 0x56f50c, 0x20 - -gUnknown_0856F52C:: @ 856F52C - .incbin "baserom.gba", 0x56f52c, 0x20 - -gUnknown_0856F54C:: @ 856F54C - .incbin "baserom.gba", 0x56f54c, 0x20 - -gUnknown_0856F56C:: @ 856F56C - .incbin "baserom.gba", 0x56f56c, 0x20 - -gUnknown_0856F58C:: @ 856F58C - .incbin "baserom.gba", 0x56f58c, 0x20 - -gUnknown_0856F5AC:: @ 856F5AC - .incbin "baserom.gba", 0x56f5ac, 0x20 - -gUnknown_0856F5CC:: @ 856F5CC - .incbin "baserom.gba", 0x56f5cc, 0x248 - -gUnknown_0856F814:: @ 856F814 - .incbin "baserom.gba", 0x56f814, 0x2a0 - -gUnknown_0856FAB4:: @ 856FAB4 - .incbin "baserom.gba", 0x56fab4, 0x10 - -gUnknown_0856FAC4:: @ 856FAC4 - .incbin "baserom.gba", 0x56fac4, 0x20 - -gUnknown_0856FAE4:: @ 856FAE4 - .incbin "baserom.gba", 0x56fae4, 0x14 - -gUnknown_0856FAF8:: @ 856FAF8 - .incbin "baserom.gba", 0x56faf8, 0x14 - -gUnknown_0856FB0C:: @ 856FB0C - .incbin "baserom.gba", 0x56fb0c, 0x3 - -gUnknown_0856FB0F:: @ 856FB0F - .incbin "baserom.gba", 0x56fb0f, 0x9 - -gUnknown_0856FB18:: @ 856FB18 - .incbin "baserom.gba", 0x56fb18, 0x8 - -gUnknown_0856FB20:: @ 856FB20 - .incbin "baserom.gba", 0x56fb20, 0x8 - -gUnknown_0856FB28:: @ 856FB28 - .incbin "baserom.gba", 0x56fb28, 0x18 - -gUnknown_0856FB40:: @ 856FB40 - .incbin "baserom.gba", 0x56fb40, 0x8 - -gUnknown_0856FB48:: @ 856FB48 - .incbin "baserom.gba", 0x56fb48, 0x2 - -gUnknown_0856FB4A:: @ 856FB4A - .incbin "baserom.gba", 0x56fb4a, 0x2 - -gUnknown_0856FB4C:: @ 856FB4C - .incbin "baserom.gba", 0x56fb4c, 0x9 - -gUnknown_0856FB55:: @ 856FB55 - .incbin "baserom.gba", 0x56fb55, 0x2 - -gUnknown_0856FB57:: @ 856FB57 - .incbin "baserom.gba", 0x56fb57, 0x5 - -gUnknown_0856FB5C:: @ 856FB5C - .incbin "baserom.gba", 0x56fb5c, 0xc - -gUnknown_0856FB68:: @ 856FB68 - .incbin "baserom.gba", 0x56fb68, 0x6 - -gUnknown_0856FB6E:: @ 856FB6E - .incbin "baserom.gba", 0x56fb6e, 0x6 - -gUnknown_0856FB74:: @ 856FB74 - .incbin "baserom.gba", 0x56fb74, 0x4 - -gUnknown_0856FB78:: @ 856FB78 - .incbin "baserom.gba", 0x56fb78, 0x44 - -gUnknown_0856FBBC:: @ 856FBBC - .incbin "baserom.gba", 0x56fbbc, 0x1244 - -gUnknown_08570E00:: @ 8570E00 - .incbin "baserom.gba", 0x570e00, 0x260 - -gUnknown_08571060:: @ 8571060 - .incbin "baserom.gba", 0x571060, 0x260 - -gUnknown_085712C0:: @ 85712C0 - .incbin "baserom.gba", 0x5712c0, 0x38 - -gUnknown_085712F8:: @ 85712F8 - .incbin "baserom.gba", 0x5712f8, 0xe8 - -gUnknown_085713E0:: @ 85713E0 - .incbin "baserom.gba", 0x5713e0, 0x8 - -gUnknown_085713E8:: @ 85713E8 - .incbin "baserom.gba", 0x5713e8, 0xc - -gUnknown_085713F4:: @ 85713F4 - .incbin "baserom.gba", 0x5713f4, 0xc - -gUnknown_08571400:: @ 8571400 - .incbin "baserom.gba", 0x571400, 0x28 - -gUnknown_08571428:: @ 8571428 - .incbin "baserom.gba", 0x571428, 0x20 - -gUnknown_08571448:: @ 8571448 - .incbin "baserom.gba", 0x571448, 0x3 - -gUnknown_0857144B:: @ 857144B - .incbin "baserom.gba", 0x57144b, 0x3 - -gUnknown_0857144E:: @ 857144E - .incbin "baserom.gba", 0x57144e, 0x6 - -gUnknown_08571454:: @ 8571454 - .incbin "baserom.gba", 0x571454, 0x68 - -gUnknown_085714BC:: @ 85714BC - .incbin "baserom.gba", 0x5714bc, 0x18 - -gUnknown_085714D4:: @ 85714D4 - .incbin "baserom.gba", 0x5714d4, 0x10 - -gUnknown_085714E4:: @ 85714E4 - .incbin "baserom.gba", 0x5714e4, 0xd0 - -gUnknown_085715B4:: @ 85715B4 - .incbin "baserom.gba", 0x5715b4, 0x30 - -gUnknown_085715E4:: @ 85715E4 - .incbin "baserom.gba", 0x5715e4, 0x18 - -gUnknown_085715FC:: @ 85715FC - .incbin "baserom.gba", 0x5715fc, 0x18 - -gUnknown_08571614:: @ 8571614 - .incbin "baserom.gba", 0x571614, 0x3c - -gUnknown_08571650:: @ 8571650 - .incbin "baserom.gba", 0x571650, 0x70 - -gUnknown_085716C0:: @ 85716C0 - .incbin "baserom.gba", 0x5716c0, 0x28 - -gUnknown_085716E8:: @ 85716E8 - .incbin "baserom.gba", 0x5716e8, 0x28 - -gUnknown_08571710:: @ 8571710 - .incbin "baserom.gba", 0x571710, 0x24 - -gUnknown_08571734:: @ 8571734 - .incbin "baserom.gba", 0x571734, 0x3 - -gUnknown_08571737:: @ 8571737 - .incbin "baserom.gba", 0x571737, 0x5 - -gUnknown_0857173C:: @ 857173C - .incbin "baserom.gba", 0x57173c, 0x20 - -gUnknown_0857175C:: @ 857175C - .incbin "baserom.gba", 0x57175c, 0x800 - -gUnknown_08571F5C:: @ 8571F5C - .incbin "baserom.gba", 0x571f5c, 0x180 - -gUnknown_085720DC:: @ 85720DC - .incbin "baserom.gba", 0x5720dc, 0x98 - -gUnknown_08572174:: @ 8572174 - .incbin "baserom.gba", 0x572174, 0x12c - -gUnknown_085722A0:: @ 85722A0 - .incbin "baserom.gba", 0x5722a0, 0xfc - -gUnknown_0857239C:: @ 857239C - .incbin "baserom.gba", 0x57239c, 0x40 - -gUnknown_085723DC:: @ 85723DC - .incbin "baserom.gba", 0x5723dc, 0x20 - -gUnknown_085723FC:: @ 85723FC - .incbin "baserom.gba", 0x5723fc, 0x20 - -gUnknown_0857241C:: @ 857241C - .incbin "baserom.gba", 0x57241c, 0x20 - -gUnknown_0857243C:: @ 857243C - .incbin "baserom.gba", 0x57243c, 0x20 - -gUnknown_0857245C:: @ 857245C - .incbin "baserom.gba", 0x57245c, 0x48 - -gUnknown_085724A4:: @ 85724A4 - .incbin "baserom.gba", 0x5724a4, 0x18 - -gUnknown_085724BC:: @ 85724BC - .incbin "baserom.gba", 0x5724bc, 0x238 - -gUnknown_085726F4:: @ 85726F4 - .incbin "baserom.gba", 0x5726f4, 0x20 - -gUnknown_08572714:: @ 8572714 - .incbin "baserom.gba", 0x572714, 0x20 - -gUnknown_08572734:: @ 8572734 - .incbin "baserom.gba", 0x572734, 0x10 - -gUnknown_08572744:: @ 8572744 - .incbin "baserom.gba", 0x572744, 0x8 - -gUnknown_0857274C:: @ 857274C - .incbin "baserom.gba", 0x57274c, 0x8 - -gUnknown_08572754:: @ 8572754 - .incbin "baserom.gba", 0x572754, 0x18 - -gUnknown_0857276C:: @ 857276C - .incbin "baserom.gba", 0x57276c, 0xf8 - -gUnknown_08572864:: @ 8572864 - .incbin "baserom.gba", 0x572864, 0x58 - -gUnknown_085728BC:: @ 85728BC - .incbin "baserom.gba", 0x5728bc, 0x18 - -gUnknown_085728D4:: @ 85728D4 - .incbin "baserom.gba", 0x5728d4, 0x48 - -gUnknown_0857291C:: @ 857291C - .incbin "baserom.gba", 0x57291c, 0x4c58 - -gUnknown_08577574:: @ 8577574 - .incbin "baserom.gba", 0x577574, 0x44 - -gUnknown_085775B8:: @ 85775B8 - .incbin "baserom.gba", 0x5775b8, 0x398c - -gUnknown_0857AF44:: @ 857AF44 - .incbin "baserom.gba", 0x57af44, 0xc0 - -gUnknown_0857B004:: @ 857B004 - .incbin "baserom.gba", 0x57b004, 0x7c - -gUnknown_0857B080:: @ 857B080 - .incbin "baserom.gba", 0x57b080, 0x28 - -gUnknown_0857B0A8:: @ 857B0A8 - .incbin "baserom.gba", 0x57b0a8, 0x38 - -gUnknown_0857B0E0:: @ 857B0E0 - .incbin "baserom.gba", 0x57b0e0, 0x8b8 - -gUnknown_0857B998:: @ 857B998 - .incbin "baserom.gba", 0x57b998, 0xc - -gUnknown_0857B9A4:: @ 857B9A4 - .incbin "baserom.gba", 0x57b9a4, 0x18 - -gUnknown_0857B9BC:: @ 857B9BC - .incbin "baserom.gba", 0x57b9bc, 0x28 - -gUnknown_0857B9E4:: @ 857B9E4 - .incbin "baserom.gba", 0x57b9e4, 0x18 - -gUnknown_0857B9FC:: @ 857B9FC - .incbin "baserom.gba", 0x57b9fc, 0x54 - -gUnknown_0857BA50:: @ 857BA50 - .incbin "baserom.gba", 0x57ba50, 0x18 - -gUnknown_0857BA68:: @ 857BA68 - .incbin "baserom.gba", 0x57ba68, 0x18 - -gUnknown_0857BA80:: @ 857BA80 - .incbin "baserom.gba", 0x57ba80, 0x9c - -gUnknown_0857BB1C:: @ 857BB1C - .incbin "baserom.gba", 0x57bb1c, 0x8 - -gUnknown_0857BB24:: @ 857BB24 - .incbin "baserom.gba", 0x57bb24, 0x14c - -gUnknown_0857BC70:: @ 857BC70 - .incbin "baserom.gba", 0x57bc70, 0x18 - -gUnknown_0857BC88:: @ 857BC88 - .incbin "baserom.gba", 0x57bc88, 0x20 - -@ 857BCA8 - .include "data/graphics/pokemon/mon_icon_table.inc" - -@ 857C388 - .include "data/graphics/pokemon/mon_icon_palette_indices.inc" - -@ 857C540 - .include "data/graphics/pokemon/mon_icon_palette_table.inc" - -gUnknown_0857C570:: @ 857C570 - .incbin "baserom.gba", 0x57c570, 0x44 - -gUnknown_0857C5B4:: @ 857C5B4 - .incbin "baserom.gba", 0x57c5b4, 0x34 - -gUnknown_0857C5E8:: @ 857C5E8 - .incbin "baserom.gba", 0x57c5e8, 0x8 - -gUnknown_0857C5F0:: @ 857C5F0 - .incbin "baserom.gba", 0x57c5f0, 0x18 - -gUnknown_0857C608:: @ 857C608 - .incbin "baserom.gba", 0x57c608, 0x2 - -gUnknown_0857C60A:: @ 857C60A - .incbin "baserom.gba", 0x57c60a, 0x5a - - .align 2 -gFieldEffectObjectPaletteInfo6:: @ 857C664 - obj_pal gFieldEffectObjectPalette6, 0x1000 - -gUnknown_0857C66C:: @ 857C66C - .incbin "baserom.gba", 0x57c66c, 0x18 - -gUnknown_0857C684:: @ 857C684 - .incbin "baserom.gba", 0x57c684, 0x1680 - -gUnknown_0857DD04:: @ 857DD04 - .incbin "baserom.gba", 0x57dd04, 0x1680 - -gUnknown_0857F384:: @ 857F384 - .incbin "baserom.gba", 0x57f384, 0xc0 - -gUnknown_0857F444:: @ 857F444 - .incbin "baserom.gba", 0x57f444, 0x20 - -gUnknown_0857F464:: @ 857F464 - .incbin "baserom.gba", 0x57f464, 0xe0 - -gUnknown_0857F544:: @ 857F544 - .incbin "baserom.gba", 0x57f544, 0x5f0 - -gUnknown_0857FB34:: @ 857FB34 - .incbin "baserom.gba", 0x57fb34, 0x8 - -gUnknown_0857FB3C:: @ 857FB3C - .incbin "baserom.gba", 0x57fb3c, 0x8 - -gUnknown_0857FB44:: @ 857FB44 - .incbin "baserom.gba", 0x57fb44, 0x8 - -gUnknown_0857FB4C:: @ 857FB4C - .incbin "baserom.gba", 0x57fb4c, 0x4c - -gUnknown_0857FB98:: @ 857FB98 - .incbin "baserom.gba", 0x57fb98, 0x4 - -gUnknown_0857FB9C:: @ 857FB9C - .incbin "baserom.gba", 0x57fb9c, 0x4 - -gUnknown_0857FBA0:: @ 857FBA0 - .incbin "baserom.gba", 0x57fba0, 0x8 - -gUnknown_0857FBA8:: @ 857FBA8 - .incbin "baserom.gba", 0x57fba8, 0x8 - -gUnknown_0857FBB0:: @ 857FBB0 - .incbin "baserom.gba", 0x57fbb0, 0x3c - -gUnknown_0857FBEC:: @ 857FBEC - .incbin "baserom.gba", 0x57fbec, 0x90 - -gUnknown_0857FC7C:: @ 857FC7C - .incbin "baserom.gba", 0x57fc7c, 0x18 - -@ 857FC94 - .include "data/graphics/berries/berry_pic_table.inc" - -gUnknown_0857FDEC:: @ 857FDEC - .incbin "baserom.gba", 0x57fdec, 0x8 - -gUnknown_0857FDF4:: @ 857FDF4 - .incbin "baserom.gba", 0x57fdf4, 0x1c - -gUnknown_0857FE10:: @ 857FE10 - .incbin "baserom.gba", 0x57fe10, 0x90 - -@ 857FEA0 - .include "data/text/item_descriptions.inc" - -@ 85839A0 - .include "data/items.inc" - -gUnknown_08587A6C:: @ 8587A6C - .incbin "baserom.gba", 0x587a6c, 0x4 - -gUnknown_08587A70:: @ 8587A70 - .incbin "baserom.gba", 0x587a70, 0x4 - -gUnknown_08587A74:: @ 8587A74 - .incbin "baserom.gba", 0x587a74, 0x5c - -gUnknown_08587AD0:: @ 8587AD0 - .incbin "baserom.gba", 0x587ad0, 0x18 - -gUnknown_08587AE8:: @ 8587AE8 - .incbin "baserom.gba", 0x587ae8, 0x20 - -gUnknown_08587B08:: @ 8587B08 - .incbin "baserom.gba", 0x587b08, 0x10 - -gUnknown_08587B18:: @ 8587B18 - .incbin "baserom.gba", 0x587b18, 0x68 - -gUnknown_08587B80:: @ 8587B80 - .incbin "baserom.gba", 0x587b80, 0x30 - -gUnknown_08587BB0:: @ 8587BB0 - .incbin "baserom.gba", 0x587bb0, 0x8 - -gUnknown_08587BB8:: @ 8587BB8 - .incbin "baserom.gba", 0x587bb8, 0x10 - -gUnknown_08587BC8:: @ 8587BC8 - .incbin "baserom.gba", 0x587bc8, 0x20 - -gUnknown_08587BE8:: @ 8587BE8 - .incbin "baserom.gba", 0x587be8, 0x18 - -gUnknown_08587C00:: @ 8587C00 - .incbin "baserom.gba", 0x587c00, 0x8 - -gUnknown_08587C08:: @ 8587C08 - .incbin "baserom.gba", 0x587c08, 0x8 - -gUnknown_08587C10:: @ 8587C10 - .incbin "baserom.gba", 0x587c10, 0x8 - -gUnknown_08587C18:: @ 8587C18 - .incbin "baserom.gba", 0x587c18, 0x18 - -gUnknown_08587C30:: @ 8587C30 - .incbin "baserom.gba", 0x587c30, 0x20 - -@ 8587C50 - .include "data/text/contest_text_pointers.inc" - -@ 8587D5C - .incbin "baserom.gba", 0x587d5c, 0x34 - -gUnknown_08587D90:: @ 8587D90 - .incbin "baserom.gba", 0x587d90, 0x80 - -gUnknown_08587E10:: @ 8587E10 - .incbin "baserom.gba", 0x587e10, 0xf8 - -gUnknown_08587F08:: @ 8587F08 - .incbin "baserom.gba", 0x587f08, 0x14 - -gUnknown_08587F1C:: @ 8587F1C - .incbin "baserom.gba", 0x587f1c, 0x18 - -gUnknown_08587F34:: @ 8587F34 - .incbin "baserom.gba", 0x587f34, 0x10 - -gUnknown_08587F44:: @ 8587F44 - .incbin "baserom.gba", 0x587f44, 0x60 - -gUnknown_08587FA4:: @ 8587FA4 - .incbin "baserom.gba", 0x587fa4, 0x100 - -gUnknown_085880A4:: @ 85880A4 - .incbin "baserom.gba", 0x5880a4, 0x1740 - -gUnknown_085897E4:: @ 85897E4 - .incbin "baserom.gba", 0x5897e4, 0xc0 - -gUnknown_085898A4:: @ 85898A4 - .incbin "baserom.gba", 0x5898a4, 0x60 - -gUnknown_08589904:: @ 8589904 - .incbin "baserom.gba", 0x589904, 0x20 - -gUnknown_08589924:: @ 8589924 - .incbin "baserom.gba", 0x589924, 0x68 - -gUnknown_0858998C:: @ 858998C - .incbin "baserom.gba", 0x58998c, 0x60 - -gUnknown_085899EC:: @ 85899EC - .incbin "baserom.gba", 0x5899ec, 0x1c - -gUnknown_08589A08:: @ 8589A08 - .incbin "baserom.gba", 0x589a08, 0x8 - -gUnknown_08589A10:: @ 8589A10 - .incbin "baserom.gba", 0x589a10, 0x18 - -gUnknown_08589A28:: @ 8589A28 - .incbin "baserom.gba", 0x589a28, 0x10 - -gUnknown_08589A38:: @ 8589A38 - .incbin "baserom.gba", 0x589a38, 0x10 - -gUnknown_08589A48:: @ 8589A48 - .incbin "baserom.gba", 0x589a48, 0x18 - -gUnknown_08589A60:: @ 8589A60 - .incbin "baserom.gba", 0x589a60, 0x10 - -gUnknown_08589A70:: @ 8589A70 - .incbin "baserom.gba", 0x589a70, 0x38 - -gUnknown_08589AA8:: @ 8589AA8 - .incbin "baserom.gba", 0x589aa8, 0x8 - -gUnknown_08589AB0:: @ 8589AB0 - .incbin "baserom.gba", 0x589ab0, 0x3 - -gUnknown_08589AB3:: @ 8589AB3 - .incbin "baserom.gba", 0x589ab3, 0x7 - -gUnknown_08589ABA:: @ 8589ABA - .incbin "baserom.gba", 0x589aba, 0x6 - -gUnknown_08589AC0:: @ 8589AC0 - .incbin "baserom.gba", 0x589ac0, 0x6 - -gUnknown_08589AC6:: @ 8589AC6 - .incbin "baserom.gba", 0x589ac6, 0x6 - -gUnknown_08589ACC:: @ 8589ACC - .incbin "baserom.gba", 0x589acc, 0x6 - -gUnknown_08589AD2:: @ 8589AD2 - .incbin "baserom.gba", 0x589ad2, 0x6 - -gUnknown_08589AD8:: @ 8589AD8 - .incbin "baserom.gba", 0x589ad8, 0x6 - -gUnknown_08589ADE:: @ 8589ADE - .incbin "baserom.gba", 0x589ade, 0x6 diff --git a/data/data3_a1.s b/data/data3_a1.s deleted file mode 100644 index 20eb6d6a6..000000000 --- a/data/data3_a1.s +++ /dev/null @@ -1,423 +0,0 @@ -@ the third big chunk of data - - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - -gUnknown_0858AB24:: @ 858AB24 - .incbin "baserom.gba", 0x58ab24, 0xac - -gBlankBerryTree:: @ 858ABD0 - .4byte 0x0, 0x0 - -gUnknown_0858ABD8:: @ 858ABD8 - .incbin "baserom.gba", 0x58abd8, 0xb88 - -gUnknown_0858B760:: @ 858B760 - .incbin "baserom.gba", 0x58b760, 0x390 - -gUnknown_0858BAF0:: @ 858BAF0 - .incbin "baserom.gba", 0x58baf0, 0x78 - -gUnknown_0858BB68:: @ 858BB68 - .incbin "baserom.gba", 0x58bb68, 0x8 - -gUnknown_0858BB70:: @ 858BB70 - .incbin "baserom.gba", 0x58bb70, 0x10 - -gUnknown_0858BB80:: @ 858BB80 - .incbin "baserom.gba", 0x58bb80, 0x1c - -gUnknown_0858BB9C:: @ 858BB9C - .incbin "baserom.gba", 0x58bb9c, 0x10 - -gUnknown_0858BBAC:: @ 858BBAC - .incbin "baserom.gba", 0x58bbac, 0x10 - -gUnknown_0858BBBC:: @ 858BBBC - .incbin "baserom.gba", 0x58bbbc, 0x10 - -gUnknown_0858BBCC:: @ 858BBCC - .incbin "baserom.gba", 0x58bbcc, 0x14 - -gUnknown_0858BBE0:: @ 858BBE0 - .incbin "baserom.gba", 0x58bbe0, 0xc - -gUnknown_0858BBEC:: @ 858BBEC - .incbin "baserom.gba", 0x58bbec, 0x18c - -gUnknown_0858BD78:: @ 858BD78 - .incbin "baserom.gba", 0x58bd78, 0x40 - -gUnknown_0858BDB8:: @ 858BDB8 - .incbin "baserom.gba", 0x58bdb8, 0x10 - -gUnknown_0858BDC8:: @ 858BDC8 - .incbin "baserom.gba", 0x58bdc8, 0x38 - -gUnknown_0858BE00:: @ 858BE00 - .incbin "baserom.gba", 0x58be00, 0x10 - -gUnknown_0858BE10:: @ 858BE10 - .incbin "baserom.gba", 0x58be10, 0x30 - -gUnknown_0858BE40:: @ 858BE40 - .incbin "baserom.gba", 0x58be40, 0x60 - -gUnknown_0858BEA0:: @ 858BEA0 - .incbin "baserom.gba", 0x58bea0, 0x3 - -gUnknown_0858BEA3:: @ 858BEA3 - .incbin "baserom.gba", 0x58bea3, 0x18 - -gUnknown_0858BEBB:: @ 858BEBB - .incbin "baserom.gba", 0x58bebb, 0x3 - -gUnknown_0858BEBE:: @ 858BEBE - .incbin "baserom.gba", 0x58bebe, 0x3 - -gUnknown_0858BEC1:: @ 858BEC1 - .incbin "baserom.gba", 0x58bec1, 0x3 - -gUnknown_0858BEC4:: @ 858BEC4 - .incbin "baserom.gba", 0x58bec4, 0x10 - -gUnknown_0858BED4:: @ 858BED4 - .incbin "baserom.gba", 0x58bed4, 0x8 - -gUnknown_0858BEDC:: @ 858BEDC - .incbin "baserom.gba", 0x58bedc, 0x8 - -gUnknown_0858BEE4:: @ 858BEE4 - .incbin "baserom.gba", 0x58bee4, 0x4 - -gUnknown_0858BEE8:: @ 858BEE8 - .incbin "baserom.gba", 0x58bee8, 0x10 - -gUnknown_0858BEF8:: @ 858BEF8 - .incbin "baserom.gba", 0x58bef8, 0x6 - -gUnknown_0858BEFE:: @ 858BEFE - .incbin "baserom.gba", 0x58befe, 0x6 - -gUnknown_0858BF04:: @ 858BF04 - .incbin "baserom.gba", 0x58bf04, 0x14 - -gUnknown_0858BF18:: @ 858BF18 - .incbin "baserom.gba", 0x58bf18, 0x10 - -gUnknown_0858BF28:: @ 858BF28 - .incbin "baserom.gba", 0x58bf28, 0xc - -gUnknown_0858BF34:: @ 858BF34 - .incbin "baserom.gba", 0x58bf34, 0xa - -gUnknown_0858BF3E:: @ 858BF3E - .incbin "baserom.gba", 0x58bf3e, 0xa - -gUnknown_0858BF48:: @ 858BF48 - .incbin "baserom.gba", 0x58bf48, 0x8 - -gUnknown_0858BF50:: @ 858BF50 - .incbin "baserom.gba", 0x58bf50, 0x8 - -gUnknown_0858BF58:: @ 858BF58 - .incbin "baserom.gba", 0x58bf58, 0x14 - -gUnknown_0858BF6C:: @ 858BF6C - .incbin "baserom.gba", 0x58bf6c, 0x8 - -gUnknown_0858BF74:: @ 858BF74 - .incbin "baserom.gba", 0x58bf74, 0x14 - -gUnknown_0858BF88:: @ 858BF88 - .incbin "baserom.gba", 0x58bf88, 0x4 - -gUnknown_0858BF8C:: @ 858BF8C - .incbin "baserom.gba", 0x58bf8c, 0xc - -gUnknown_0858BF98:: @ 858BF98 - .incbin "baserom.gba", 0x58bf98, 0xc - -gUnknown_0858BFA4:: @ 858BFA4 - .incbin "baserom.gba", 0x58bfa4, 0x34 - -gUnknown_0858BFD8:: @ 858BFD8 - .incbin "baserom.gba", 0x58bfd8, 0x78 - -gUnknown_0858C050:: @ 858C050 - .incbin "baserom.gba", 0x58c050, 0x8 - -gUnknown_0858C058:: @ 858C058 - .incbin "baserom.gba", 0x58c058, 0x18 - -gUnknown_0858C070:: @ 858C070 - .incbin "baserom.gba", 0x58c070, 0x8 - -gUnknown_0858C078:: @ 858C078 - .incbin "baserom.gba", 0x58c078, 0x48 - -gUnknown_0858C0C0:: @ 858C0C0 - .incbin "baserom.gba", 0x58c0c0, 0x18 - -gUnknown_0858C0D8:: @ 858C0D8 - .incbin "baserom.gba", 0x58c0d8, 0x18 - -gUnknown_0858C0F0:: @ 858C0F0 - .incbin "baserom.gba", 0x58c0f0, 0x18 - -gUnknown_0858C108:: @ 858C108 - .incbin "baserom.gba", 0x58c108, 0x18 - -gUnknown_0858C120:: @ 858C120 - .incbin "baserom.gba", 0x58c120, 0x18 - -gUnknown_0858C138:: @ 858C138 - .incbin "baserom.gba", 0x58c138, 0x18 - -gUnknown_0858C150:: @ 858C150 - .incbin "baserom.gba", 0x58c150, 0x18 - -gUnknown_0858C168:: @ 858C168 - .incbin "baserom.gba", 0x58c168, 0x18 - -gUnknown_0858C180:: @ 858C180 - .incbin "baserom.gba", 0x58c180, 0x18 - -gUnknown_0858C198:: @ 858C198 - .incbin "baserom.gba", 0x58c198, 0x30 - -gUnknown_0858C1C8:: @ 858C1C8 - .incbin "baserom.gba", 0x58c1c8, 0x68 - -gUnknown_0858C230:: @ 858C230 - .incbin "baserom.gba", 0x58c230, 0x5c - -gUnknown_0858C28C:: @ 858C28C - .incbin "baserom.gba", 0x58c28c, 0x18 - -gUnknown_0858C2A4:: @ 858C2A4 - .incbin "baserom.gba", 0x58c2a4, 0x8 - -gUnknown_0858C2AC:: @ 858C2AC - .incbin "baserom.gba", 0x58c2ac, 0x8 - -@ 858C2B4 - .include "data/contest_moves.inc" - -@ 858CDCC - .include "data/contest_effects.inc" - -@ A lookup table with a 1 for each combo starter ID and a 0 for ID 0, -@ which means "not a combo starter move". -gComboStarterLookupTable:: @ 858CE8C - .byte 0 - .rept 62 - .byte 1 - .endr - - .align 2 -@ 858CECC - .include "data/contest_effect_function_table.inc" - -gUnknown_0858CF8C:: @ 858CF8C - .incbin "baserom.gba", 0x58cf8c, 0x2 - -gUnknown_0858CF8E:: @ 858CF8E - .incbin "baserom.gba", 0x58cf8e, 0x6 - -gUnknown_0858CF94:: @ 858CF94 - .incbin "baserom.gba", 0x58cf94, 0x24 - -gUnknown_0858CFB8:: @ 858CFB8 - .incbin "baserom.gba", 0x58cfb8, 0x6 - -gUnknown_0858CFBE:: @ 858CFBE - .incbin "baserom.gba", 0x58cfbe, 0xe - -gUnknown_0858CFCC:: @ 858CFCC - .incbin "baserom.gba", 0x58cfcc, 0x1c - -gUnknown_0858CFE8:: @ 858CFE8 - .incbin "baserom.gba", 0x58cfe8, 0x60 - -gUnknown_0858D048:: @ 858D048 - .incbin "baserom.gba", 0x58d048, 0x10 - -gUnknown_0858D058:: @ 858D058 - .incbin "baserom.gba", 0x58d058, 0x8 - -gUnknown_0858D060:: @ 858D060 - .incbin "baserom.gba", 0x58d060, 0xc - -gUnknown_0858D06C:: @ 858D06C - .incbin "baserom.gba", 0x58d06c, 0x10 - -gUnknown_0858D07C:: @ 858D07C - .incbin "baserom.gba", 0x58d07c, 0x18 - -gUnknown_0858D094:: @ 858D094 - .incbin "baserom.gba", 0x58d094, 0x3c - -gUnknown_0858D0D0:: @ 858D0D0 - .incbin "baserom.gba", 0x58d0d0, 0xe - -gUnknown_0858D0DE:: @ 858D0DE - .incbin "baserom.gba", 0x58d0de, 0xe - -gUnknown_0858D0EC:: @ 858D0EC - .incbin "baserom.gba", 0x58d0ec, 0x1c - -gUnknown_0858D108:: @ 858D108 - .incbin "baserom.gba", 0x58d108, 0x14 - -gUnknown_0858D11C:: @ 858D11C - .incbin "baserom.gba", 0x58d11c, 0x14 - -gUnknown_0858D130:: @ 858D130 - .incbin "baserom.gba", 0x58d130, 0x14 - -gUnknown_0858D144:: @ 858D144 - .incbin "baserom.gba", 0x58d144, 0xc - -gUnknown_0858D150:: @ 858D150 - .incbin "baserom.gba", 0x58d150, 0x20 - -gUnknown_0858D170:: @ 858D170 - .incbin "baserom.gba", 0x58d170, 0x18 - -gUnknown_0858D188:: @ 858D188 - .incbin "baserom.gba", 0x58d188, 0x14 - -gUnknown_0858D19C:: @ 858D19C - .incbin "baserom.gba", 0x58d19c, 0x4 - -gUnknown_0858D1A0:: @ 858D1A0 - .incbin "baserom.gba", 0x58d1a0, 0x30 - -gUnknown_0858D1D0:: @ 858D1D0 - .incbin "baserom.gba", 0x58d1d0, 0x34 - -gUnknown_0858D204:: @ 858D204 - .incbin "baserom.gba", 0x58d204, 0x24 - -gUnknown_0858D228:: @ 858D228 - .incbin "baserom.gba", 0x58d228, 0x18 - -gUnknown_0858D240:: @ 858D240 - .incbin "baserom.gba", 0x58d240, 0x3c - -gUnknown_0858D27C:: @ 858D27C - .incbin "baserom.gba", 0x58d27c, 0x84 - -gUnknown_0858D300:: @ 858D300 - .incbin "baserom.gba", 0x58d300, 0x20 - -gUnknown_0858D320:: @ 858D320 - .incbin "baserom.gba", 0x58d320, 0x18 - -gUnknown_0858D338:: @ 858D338 - .incbin "baserom.gba", 0x58d338, 0x4c - -gUnknown_0858D384:: @ 858D384 - .incbin "baserom.gba", 0x58d384, 0x10 - -gUnknown_0858D394:: @ 858D394 - .incbin "baserom.gba", 0x58d394, 0x1c - -gUnknown_0858D3B0:: @ 858D3B0 - .incbin "baserom.gba", 0x58d3b0, 0x8 - -gUnknown_0858D3B8:: @ 858D3B8 - .incbin "baserom.gba", 0x58d3b8, 0xc - -gUnknown_0858D3C4:: @ 858D3C4 - .incbin "baserom.gba", 0x58d3c4, 0x2c - -gUnknown_0858D3F0:: @ 858D3F0 - .incbin "baserom.gba", 0x58d3f0, 0x1c - -gUnknown_0858D40C:: @ 858D40C - .incbin "baserom.gba", 0x58d40c, 0xc - -gUnknown_0858D418:: @ 858D418 - .incbin "baserom.gba", 0x58d418, 0x10 - -gUnknown_0858D428:: @ 858D428 - .incbin "baserom.gba", 0x58d428, 0x34 - -gUnknown_0858D45C:: @ 858D45C - .incbin "baserom.gba", 0x58d45c, 0x38 - -gUnknown_0858D494:: @ 858D494 - .incbin "baserom.gba", 0x58d494, 0x4 - -gUnknown_0858D498:: @ 858D498 - .incbin "baserom.gba", 0x58d498, 0x1c - -gUnknown_0858D4B4:: @ 858D4B4 - .incbin "baserom.gba", 0x58d4b4, 0x30 - -gUnknown_0858D4E4:: @ 858D4E4 - .incbin "baserom.gba", 0x58d4e4, 0x40 - -gUnknown_0858D524:: @ 858D524 - .incbin "baserom.gba", 0x58d524, 0x4c - -gUnknown_0858D570:: @ 858D570 - .incbin "baserom.gba", 0x58d570, 0x24 - -gUnknown_0858D594:: @ 858D594 - .incbin "baserom.gba", 0x58d594, 0xac - -gUnknown_0858D640:: @ 858D640 - .incbin "baserom.gba", 0x58d640, 0x2c - -gUnknown_0858D66C:: @ 858D66C - .incbin "baserom.gba", 0x58d66c, 0x24 - -gUnknown_0858D690:: @ 858D690 - .incbin "baserom.gba", 0x58d690, 0x20 - -gUnknown_0858D6B0:: @ 858D6B0 - .incbin "baserom.gba", 0x58d6b0, 0x20 - -gUnknown_0858D6D0:: @ 858D6D0 - .incbin "baserom.gba", 0x58d6d0, 0x128 - -gUnknown_0858D7F8:: @ 858D7F8 - .incbin "baserom.gba", 0x58d7f8, 0x18 - -gUnknown_0858D810:: @ 858D810 - .incbin "baserom.gba", 0x58d810, 0x40 - -gUnknown_0858D850:: @ 858D850 - .incbin "baserom.gba", 0x58d850, 0x10 - -gUnknown_0858D860:: @ 858D860 - .incbin "baserom.gba", 0x58d860, 0x18 - -gUnknown_0858D878:: @ 858D878 - .incbin "baserom.gba", 0x58d878, 0x8 - -gUnknown_0858D880:: @ 858D880 - .incbin "baserom.gba", 0x58d880, 0x8 - -gUnknown_0858D888:: @ 858D888 - .incbin "baserom.gba", 0x58d888, 0x10 - -gUnknown_0858D898:: @ 858D898 - .incbin "baserom.gba", 0x58d898, 0x30 - -gUnknown_0858D8C8:: @ 858D8C8 - .incbin "baserom.gba", 0x58d8c8, 0x18 - -gUnknown_0858D8E0:: @ 858D8E0 - .incbin "baserom.gba", 0x58d8e0, 0x8 - -gUnknown_0858D8E8:: @ 858D8E8 - .incbin "baserom.gba", 0x58d8e8, 0x4 - -gUnknown_0858D8EC:: @ 858D8EC - .incbin "baserom.gba", 0x58d8ec, 0x4 diff --git a/data/data3b.s b/data/data3b.s deleted file mode 100644 index 3faa3d290..000000000 --- a/data/data3b.s +++ /dev/null @@ -1,1017 +0,0 @@ -@ the third big chunk of data - - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 - .incbin "baserom.gba", 0x58d978, 0x2a0 - - .align 2 -gFieldEffectObjectPalette7:: @ 858DC18 - .incbin "graphics/map_objects/palettes/field_effect_object_palette_07.gbapal" - - .incbin "baserom.gba", 0x58dc38, 0x580 - - .align 2 -gFieldEffectObjectPalette8:: @ 858E1B8 - .incbin "graphics/map_objects/palettes/field_effect_object_palette_08.gbapal" - - .incbin "baserom.gba", 0x58e1d8, 0x428 - -gUnknown_0858E600:: @ 858E600 - .incbin "baserom.gba", 0x58e600, 0x18 - -gUnknown_0858E618:: @ 858E618 - .incbin "baserom.gba", 0x58e618, 0x18 - -gUnknown_0858E630:: @ 858E630 - .incbin "baserom.gba", 0x58e630, 0x18 - - .align 2 -gFieldEffectObjectPaletteInfo7:: @ 858E648 - obj_pal gFieldEffectObjectPalette7, 0x1003 - - .align 2 -gFieldEffectObjectPaletteInfo8:: @ 858E650 - obj_pal gFieldEffectObjectPalette8, 0x1008 - - .incbin "baserom.gba", 0x58e658, 0x34 - -gUnknown_0858E68C:: @ 858E68C - .incbin "baserom.gba", 0x58e68c, 0x18 - - .align 2 -@ This uses one of the secret base palettes, so there is no -@ "field_effect_object_palette_09.pal" file. -gFieldEffectObjectPaletteInfo9:: @ 858E6A4 - obj_pal gTilesetPalettes_SecretBase + 5 * 0x20, 0x100E - - .incbin "baserom.gba", 0x58e6ac, 0x1b8 - -gUnknown_0858E864:: @ 858E864 - .incbin "baserom.gba", 0x58e864, 0x1c - -gUnknown_0858E880:: @ 858E880 - .incbin "baserom.gba", 0x58e880, 0x18 - -gUnknown_0858E898:: @ 858E898 - .incbin "baserom.gba", 0x58e898, 0x13 - -gUnknown_0858E8AB:: @ 858E8AB - .incbin "baserom.gba", 0x58e8ab, 0x2 - -gUnknown_0858E8AD:: @ 858E8AD - .incbin "baserom.gba", 0x58e8ad, 0x3 - -gUnknown_0858E8B0:: @ 858E8B0 - .incbin "baserom.gba", 0x58e8b0, 0x40 - -gUnknown_0858E8F0:: @ 858E8F0 - .incbin "baserom.gba", 0x58e8f0, 0x3468 - -gUnknown_08591D58:: @ 8591D58 - .incbin "baserom.gba", 0x591d58, 0x270 - -gUnknown_08591FC8:: @ 8591FC8 - .incbin "baserom.gba", 0x591fc8, 0x18 - -gUnknown_08591FE0:: @ 8591FE0 - .incbin "baserom.gba", 0x591fe0, 0x18 - -gUnknown_08591FF8:: @ 8591FF8 - .incbin "baserom.gba", 0x591ff8, 0x10 - -gUnknown_08592008:: @ 8592008 - .incbin "baserom.gba", 0x592008, 0x10 - -gUnknown_08592018:: @ 8592018 - .incbin "baserom.gba", 0x592018, 0x10 - -gUnknown_08592028:: @ 8592028 - .incbin "baserom.gba", 0x592028, 0x10 - -gUnknown_08592038:: @ 8592038 - .incbin "baserom.gba", 0x592038, 0x20 - -gUnknown_08592058:: @ 8592058 - .incbin "baserom.gba", 0x592058, 0x20 - -gUnknown_08592078:: @ 8592078 - .incbin "baserom.gba", 0x592078, 0x60 - -gUnknown_085920D8:: @ 85920D8 - .incbin "baserom.gba", 0x5920d8, 0xc - -gUnknown_085920E4:: @ 85920E4 - .incbin "baserom.gba", 0x5920e4, 0x4 - -gUnknown_085920E8:: @ 85920E8 - .incbin "baserom.gba", 0x5920e8, 0x128 - -gUnknown_08592210:: @ 8592210 - .incbin "baserom.gba", 0x592210, 0x4f0 - -gUnknown_08592700:: @ 8592700 - .incbin "baserom.gba", 0x592700, 0x78 - -gUnknown_08592778:: @ 8592778 - .incbin "baserom.gba", 0x592778, 0x100 - -gUnknown_08592878:: @ 8592878 - .incbin "baserom.gba", 0x592878, 0x458 - -gUnknown_08592CD0:: @ 8592CD0 - .incbin "baserom.gba", 0x592cd0, 0x1ec - -gUnknown_08592EBC:: @ 8592EBC - .incbin "baserom.gba", 0x592ebc, 0x30 - -gUnknown_08592EEC:: @ 8592EEC - .incbin "baserom.gba", 0x592eec, 0x134 - -gUnknown_08593020:: @ 8593020 - .incbin "baserom.gba", 0x593020, 0xf4 - -gUnknown_08593114:: @ 8593114 - .incbin "baserom.gba", 0x593114, 0x29c - -gUnknown_085933B0:: @ 85933B0 - .incbin "baserom.gba", 0x5933b0, 0xf0 - -gUnknown_085934A0:: @ 85934A0 - .incbin "baserom.gba", 0x5934a0, 0x148 - -gUnknown_085935E8:: @ 85935E8 - .incbin "baserom.gba", 0x5935e8, 0x20 - -gUnknown_08593608:: @ 8593608 - .incbin "baserom.gba", 0x593608, 0x9c - -gUnknown_085936A4:: @ 85936A4 - .incbin "baserom.gba", 0x5936a4, 0x20c - -gUnknown_085938B0:: @ 85938B0 - .incbin "baserom.gba", 0x5938b0, 0x2c - -gUnknown_085938DC:: @ 85938DC - .incbin "baserom.gba", 0x5938dc, 0x18 - -gUnknown_085938F4:: @ 85938F4 - .incbin "baserom.gba", 0x5938f4, 0x5c - -gUnknown_08593950:: @ 8593950 - .incbin "baserom.gba", 0x593950, 0x38 - -gUnknown_08593988:: @ 8593988 - .incbin "baserom.gba", 0x593988, 0x210 - -gUnknown_08593B98:: @ 8593B98 - .incbin "baserom.gba", 0x593b98, 0x1488 - -gUnknown_08595020:: @ 8595020 - .incbin "baserom.gba", 0x595020, 0x248 - -gUnknown_08595268:: @ 8595268 - .incbin "baserom.gba", 0x595268, 0xa8 - -gUnknown_08595310:: @ 8595310 - .incbin "baserom.gba", 0x595310, 0x2a4 - -gUnknown_085955B4:: @ 85955B4 - .incbin "baserom.gba", 0x5955b4, 0x18 - -gUnknown_085955CC:: @ 85955CC - .incbin "baserom.gba", 0x5955cc, 0x2 - -gUnknown_085955CE:: @ 85955CE - .incbin "baserom.gba", 0x5955ce, 0xb6 - -gUnknown_08595684:: @ 8595684 - .incbin "baserom.gba", 0x595684, 0x10 - -gUnknown_08595694:: @ 8595694 - .incbin "baserom.gba", 0x595694, 0x2c - -gUnknown_085956C0:: @ 85956C0 - .incbin "baserom.gba", 0x5956c0, 0x168 - -gUnknown_08595828:: @ 8595828 - .incbin "baserom.gba", 0x595828, 0x18 - -gUnknown_08595840:: @ 8595840 - .incbin "baserom.gba", 0x595840, 0x18 - -gUnknown_08595858:: @ 8595858 - .incbin "baserom.gba", 0x595858, 0x50 - -gUnknown_085958A8:: @ 85958A8 - .incbin "baserom.gba", 0x5958a8, 0x158 - -gUnknown_08595A00:: @ 8595A00 - .incbin "baserom.gba", 0x595a00, 0x30 - -gUnknown_08595A30:: @ 8595A30 - .incbin "baserom.gba", 0x595a30, 0x138 - -gUnknown_08595B68:: @ 8595B68 - .incbin "baserom.gba", 0x595b68, 0xf4 - -gUnknown_08595C5C:: @ 8595C5C - .incbin "baserom.gba", 0x595c5c, 0x2c - -gUnknown_08595C88:: @ 8595C88 - .incbin "baserom.gba", 0x595c88, 0x2c - -gUnknown_08595CB4:: @ 8595CB4 - .incbin "baserom.gba", 0x595cb4, 0x78 - -gUnknown_08595D2C:: @ 8595D2C - .incbin "baserom.gba", 0x595d2c, 0xa14 - -gUnknown_08596740:: @ 8596740 - .incbin "baserom.gba", 0x596740, 0x1c - -gUnknown_0859675C:: @ 859675C - .incbin "baserom.gba", 0x59675c, 0x20 - -gUnknown_0859677C:: @ 859677C - .incbin "baserom.gba", 0x59677c, 0x18 - -gUnknown_08596794:: @ 8596794 - .incbin "baserom.gba", 0x596794, 0xd0 - -gUnknown_08596864:: @ 8596864 - .incbin "baserom.gba", 0x596864, 0x35c - -gUnknown_08596BC0:: @ 8596BC0 - .incbin "baserom.gba", 0x596bc0, 0x50 - -gUnknown_08596C10:: @ 8596C10 - .incbin "baserom.gba", 0x596c10, 0x18 - -gUnknown_08596C28:: @ 8596C28 - .incbin "baserom.gba", 0x596c28, 0x18 - -gUnknown_08596C40:: @ 8596C40 - .incbin "baserom.gba", 0x596c40, 0x178 - -gUnknown_08596DB8:: @ 8596DB8 - .incbin "baserom.gba", 0x596db8, 0x78 - -gUnknown_08596E30:: @ 8596E30 - .incbin "baserom.gba", 0x596e30, 0x528 - -gUnknown_08597358:: @ 8597358 - .incbin "baserom.gba", 0x597358, 0x30 - -gUnknown_08597388:: @ 8597388 - .incbin "baserom.gba", 0x597388, 0x60 - -gUnknown_085973E8:: @ 85973E8 - .incbin "baserom.gba", 0x5973e8, 0x30 - -gUnknown_08597418:: @ 8597418 - .incbin "baserom.gba", 0x597418, 0x2 - -gUnknown_0859741A:: @ 859741A - .incbin "baserom.gba", 0x59741a, 0x4 - -gUnknown_0859741E:: @ 859741E - .incbin "baserom.gba", 0x59741e, 0x6 - -gUnknown_08597424:: @ 8597424 - .incbin "baserom.gba", 0x597424, 0x28 - -gUnknown_0859744C:: @ 859744C - .incbin "baserom.gba", 0x59744c, 0x10 - -gUnknown_0859745C:: @ 859745C - .incbin "baserom.gba", 0x59745c, 0xc - -gUnknown_08597468:: @ 8597468 - .incbin "baserom.gba", 0x597468, 0x34 - -gUnknown_0859749C:: @ 859749C - .incbin "baserom.gba", 0x59749c, 0x1c - -gUnknown_085974B8:: @ 85974B8 - .incbin "baserom.gba", 0x5974b8, 0x8 - -gUnknown_085974C0:: @ 85974C0 - .incbin "baserom.gba", 0x5974c0, 0x70 - -gUnknown_08597530:: @ 8597530 - .incbin "baserom.gba", 0x597530, 0x20 - -gUnknown_08597550:: @ 8597550 - .incbin "baserom.gba", 0x597550, 0x1f8 - -gUnknown_08597748:: @ 8597748 - .incbin "baserom.gba", 0x597748, 0x1c - -gUnknown_08597764:: @ 8597764 - .incbin "baserom.gba", 0x597764, 0x8 - -gUnknown_0859776C:: @ 859776C - .incbin "baserom.gba", 0x59776c, 0x3a8 - -gUnknown_08597B14:: @ 8597B14 - .incbin "baserom.gba", 0x597b14, 0x20 - -gUnknown_08597B34:: @ 8597B34 - .incbin "baserom.gba", 0x597b34, 0x20 - -gUnknown_08597B54:: @ 8597B54 - .incbin "baserom.gba", 0x597b54, 0xc8 - -gUnknown_08597C1C:: @ 8597C1C - .incbin "baserom.gba", 0x597c1c, 0x8 - -gUnknown_08597C24:: @ 8597C24 - .incbin "baserom.gba", 0x597c24, 0xc - -gUnknown_08597C30:: @ 8597C30 - .incbin "baserom.gba", 0x597c30, 0x24 - -gUnknown_08597C54:: @ 8597C54 - .incbin "baserom.gba", 0x597c54, 0x10 - -gUnknown_08597C64:: @ 8597C64 - .incbin "baserom.gba", 0x597c64, 0x20 - -gUnknown_08597C84:: @ 8597C84 - .incbin "baserom.gba", 0x597c84, 0x8 - -gUnknown_08597C8C:: @ 8597C8C - .incbin "baserom.gba", 0x597c8c, 0x4 - -gUnknown_08597C90:: @ 8597C90 - .incbin "baserom.gba", 0x597c90, 0x10 - -gUnknown_08597CA0:: @ 8597CA0 - .incbin "baserom.gba", 0x597ca0, 0x20 - -gUnknown_08597CC0:: @ 8597CC0 - .incbin "baserom.gba", 0x597cc0, 0x28 - -gUnknown_08597CE8:: @ 8597CE8 - .incbin "baserom.gba", 0x597ce8, 0x20 - -gUnknown_08597D08:: @ 8597D08 - .incbin "baserom.gba", 0x597d08, 0x10 - -gUnknown_08597D18:: @ 8597D18 - .incbin "baserom.gba", 0x597d18, 0x50 - -gUnknown_08597D68:: @ 8597D68 - .incbin "baserom.gba", 0x597d68, 0x68 - -gUnknown_08597DD0:: @ 8597DD0 - .incbin "baserom.gba", 0x597dd0, 0x20 - -gUnknown_08597DF0:: @ 8597DF0 - .incbin "baserom.gba", 0x597df0, 0x40 - -gUnknown_08597E30:: @ 8597E30 - .incbin "baserom.gba", 0x597e30, 0x18 - -gUnknown_08597E48:: @ 8597E48 - .incbin "baserom.gba", 0x597e48, 0x18 - -gUnknown_08597E60:: @ 8597E60 - .incbin "baserom.gba", 0x597e60, 0xc - -gUnknown_08597E6C:: @ 8597E6C - .incbin "baserom.gba", 0x597e6c, 0x30 - -@ 8597E9C - .include "data/text/easy_chat/easy_chat_groups.inc" - -@ 859D0B4 - .include "data/text/easy_chat/easy_chat_words_by_letter.inc" - -@ 859E5D4 - .include "data/text/easy_chat/easy_chat_group_name_pointers.inc" - -gUnknown_0859E62C:: @ 859E62C - .incbin "baserom.gba", 0x59e62c, 0x8 - -gUnknown_0859E634:: @ 859E634 - .incbin "baserom.gba", 0x59e634, 0xc - -gUnknown_0859E640:: @ 859E640 - .incbin "baserom.gba", 0x59e640, 0xc - -gUnknown_0859E64C:: @ 859E64C - .incbin "baserom.gba", 0x59e64c, 0xc - -gUnknown_0859E658:: @ 859E658 - .incbin "baserom.gba", 0x59e658, 0x4 - -gUnknown_0859E65C:: @ 859E65C - .incbin "baserom.gba", 0x59e65c, 0x20 - -gUnknown_0859E67C:: @ 859E67C - .incbin "baserom.gba", 0x59e67c, 0x800 - -gUnknown_0859EE7C:: @ 859EE7C - .incbin "baserom.gba", 0x59ee7c, 0x8 - -gUnknown_0859EE84:: @ 859EE84 - .incbin "baserom.gba", 0x59ee84, 0x58 - -gUnknown_0859EEDC:: @ 859EEDC - .incbin "baserom.gba", 0x59eedc, 0x38 - -gUnknown_0859EF14:: @ 859EF14 - .incbin "baserom.gba", 0x59ef14, 0x8 - -gUnknown_0859EF1C:: @ 859EF1C - .incbin "baserom.gba", 0x59ef1c, 0x88 - -gUnknown_0859EFA4:: @ 859EFA4 - .incbin "baserom.gba", 0x59efa4, 0x40 - -gUnknown_0859EFE4:: @ 859EFE4 - .incbin "baserom.gba", 0x59efe4, 0xc - -gUnknown_0859EFF0:: @ 859EFF0 - .incbin "baserom.gba", 0x59eff0, 0x20 - -gUnknown_0859F010:: @ 859F010 - .incbin "baserom.gba", 0x59f010, 0x20 - -gUnknown_0859F030:: @ 859F030 - .incbin "baserom.gba", 0x59f030, 0x18 - -gUnknown_0859F048:: @ 859F048 - .incbin "baserom.gba", 0x59f048, 0x230 - -gUnknown_0859F278:: @ 859F278 - .incbin "baserom.gba", 0x59f278, 0x10 - -gUnknown_0859F288:: @ 859F288 - .incbin "baserom.gba", 0x59f288, 0x8 - -gUnknown_0859F290:: @ 859F290 - .incbin "baserom.gba", 0x59f290, 0xc - -gUnknown_0859F29C:: @ 859F29C - .incbin "baserom.gba", 0x59f29c, 0x10 - -gUnknown_0859F2AC:: @ 859F2AC - .incbin "baserom.gba", 0x59f2ac, 0x4 - -gUnknown_0859F2B0:: @ 859F2B0 - .incbin "baserom.gba", 0x59f2b0, 0x8 - -gUnknown_0859F2B8:: @ 859F2B8 - .incbin "baserom.gba", 0x59f2b8, 0xfc - -gUnknown_0859F3B4:: @ 859F3B4 - .incbin "baserom.gba", 0x59f3b4, 0xa4 - -gUnknown_0859F458:: @ 859F458 - .incbin "baserom.gba", 0x59f458, 0xbc - -gUnknown_0859F514:: @ 859F514 - .incbin "baserom.gba", 0x59f514, 0x8 - -gUnknown_0859F51C:: @ 859F51C - .incbin "baserom.gba", 0x59f51c, 0x8 - -gUnknown_0859F524:: @ 859F524 - .incbin "baserom.gba", 0x59f524, 0x10 - -gUnknown_0859F534:: @ 859F534 - .incbin "baserom.gba", 0x59f534, 0x8 - -gUnknown_0859F53C:: @ 859F53C - .incbin "baserom.gba", 0x59f53c, 0xd0 - -gUnknown_0859F60C:: @ 859F60C - .incbin "baserom.gba", 0x59f60c, 0x44 - -gUnknown_0859F650:: @ 859F650 - .incbin "baserom.gba", 0x59f650, 0xec - -gUnknown_0859F73C:: @ 859F73C - .incbin "baserom.gba", 0x59f73c, 0x40 - -gUnknown_0859F77C:: @ 859F77C - .incbin "baserom.gba", 0x59f77c, 0xd64 - -gUnknown_085A04E0:: @ 85A04E0 - .incbin "baserom.gba", 0x5a04e0, 0x34c - -gUnknown_085A082C:: @ 85A082C - .incbin "baserom.gba", 0x5a082c, 0x20 - -gUnknown_085A084C:: @ 85A084C - .incbin "baserom.gba", 0x5a084c, 0x80 - -gUnknown_085A08CC:: @ 85A08CC - .incbin "baserom.gba", 0x5a08cc, 0x20 - -gUnknown_085A08EC:: @ 85A08EC - .incbin "baserom.gba", 0x5a08ec, 0x80 - -gUnknown_085A096C:: @ 85A096C - .incbin "baserom.gba", 0x5a096c, 0x1a4 - -@ 85A0B10 - .include "data/region_map_entries.inc" - -gUnknown_085A1B24:: @ 85A1B24 - .incbin "baserom.gba", 0x5a1b24, 0x60 - -gUnknown_085A1B84:: @ 85A1B84 - .incbin "baserom.gba", 0x5a1b84, 0x6 - -gUnknown_085A1B8A:: @ 85A1B8A - .incbin "baserom.gba", 0x5a1b8a, 0x22 - -gUnknown_085A1BAC:: @ 85A1BAC - .incbin "baserom.gba", 0x5a1bac, 0x20 - -gUnknown_085A1BCC:: @ 85A1BCC - .incbin "baserom.gba", 0x5a1bcc, 0x34 - -gUnknown_085A1C00:: @ 85A1C00 - .incbin "baserom.gba", 0x5a1c00, 0x8 - -gUnknown_085A1C08:: @ 85A1C08 - .incbin "baserom.gba", 0x5a1c08, 0x18 - -gUnknown_085A1C20:: @ 85A1C20 - .incbin "baserom.gba", 0x5a1c20, 0x10 - -gUnknown_085A1C30:: @ 85A1C30 - .incbin "baserom.gba", 0x5a1c30, 0x4 - -gUnknown_085A1C34:: @ 85A1C34 - .incbin "baserom.gba", 0x5a1c34, 0x4 - -gUnknown_085A1C38:: @ 85A1C38 - .incbin "baserom.gba", 0x5a1c38, 0x20 - -gUnknown_085A1C58:: @ 85A1C58 - .incbin "baserom.gba", 0x5a1c58, 0x38 - -gUnknown_085A1C90:: @ 85A1C90 - .incbin "baserom.gba", 0x5a1c90, 0xd8 - -gUnknown_085A1D68:: @ 85A1D68 - .incbin "baserom.gba", 0x5a1d68, 0xd4 - -gUnknown_085A1E3C:: @ 85A1E3C - .incbin "baserom.gba", 0x5a1e3c, 0xa0 - -gUnknown_085A1EDC:: @ 85A1EDC - .incbin "baserom.gba", 0x5a1edc, 0x8 - -gUnknown_085A1EE4:: @ 85A1EE4 - .incbin "baserom.gba", 0x5a1ee4, 0xc - -gUnknown_085A1EF0:: @ 85A1EF0 - .incbin "baserom.gba", 0x5a1ef0, 0x20 - -gUnknown_085A1F10:: @ 85A1F10 - .incbin "baserom.gba", 0x5a1f10, 0x8 - -gUnknown_085A1F18:: @ 85A1F18 - .incbin "baserom.gba", 0x5a1f18, 0x64 - -gUnknown_085A1F7C:: @ 85A1F7C - .incbin "baserom.gba", 0x5a1f7c, 0x18 - -gUnknown_085A1F94:: @ 85A1F94 - .incbin "baserom.gba", 0x5a1f94, 0x3c74 - -gDecorations:: @ 85A5C08 - .incbin "baserom.gba", 0x5a5c08, 0x1 - -gUnknown_085A5C09:: @ 85A5C09 - .incbin "baserom.gba", 0x5a5c09, 0x1b - -gUnknown_085A5C24:: @ 85A5C24 - .incbin "baserom.gba", 0x5a5c24, 0xf04 - -gUnknown_085A6B28:: @ 85A6B28 - .incbin "baserom.gba", 0x5a6b28, 0x20 - -gUnknown_085A6B48:: @ 85A6B48 - .incbin "baserom.gba", 0x5a6b48, 0x20 - -gUnknown_085A6B68:: @ 85A6B68 - .incbin "baserom.gba", 0x5a6b68, 0x10 - -gUnknown_085A6B78:: @ 85A6B78 - .incbin "baserom.gba", 0x5a6b78, 0x18 - -gUnknown_085A6B90:: @ 85A6B90 - .incbin "baserom.gba", 0x5a6b90, 0x20 - -gUnknown_085A6BB0:: @ 85A6BB0 - .incbin "baserom.gba", 0x5a6bb0, 0x20 - -gUnknown_085A6BD0:: @ 85A6BD0 - .incbin "baserom.gba", 0x5a6bd0, 0x18 - -gUnknown_085A6BE8:: @ 85A6BE8 - .incbin "baserom.gba", 0x5a6be8, 0x5c8 - -gUnknown_085A71B0:: @ 85A71B0 - .incbin "baserom.gba", 0x5a71b0, 0xa0 - -gUnknown_085A7250:: @ 85A7250 - .incbin "baserom.gba", 0x5a7250, 0x3c - -gUnknown_085A728C:: @ 85A728C - .incbin "baserom.gba", 0x5a728c, 0x18 - -gUnknown_085A72A4:: @ 85A72A4 - .incbin "baserom.gba", 0x5a72a4, 0x18 - -gUnknown_085A72BC:: @ 85A72BC - .incbin "baserom.gba", 0x5a72bc, 0x8 - -gUnknown_085A72C4:: @ 85A72C4 - .incbin "baserom.gba", 0x5a72c4, 0x8 - -gUnknown_085A72CC:: @ 85A72CC - .incbin "baserom.gba", 0x5a72cc, 0x8 - -gUnknown_085A72D4:: @ 85A72D4 - .incbin "baserom.gba", 0x5a72d4, 0x10 - -gUnknown_085A72E4:: @ 85A72E4 - .incbin "baserom.gba", 0x5a72e4, 0x8 - -gUnknown_085A72EC:: @ 85A72EC - .incbin "baserom.gba", 0x5a72ec, 0x8 - -gUnknown_085A72F4:: @ 85A72F4 - .incbin "baserom.gba", 0x5a72f4, 0x54 - -gUnknown_085A7348:: @ 85A7348 - .incbin "baserom.gba", 0x5a7348, 0x8 - -gUnknown_085A7350:: @ 85A7350 - .incbin "baserom.gba", 0x5a7350, 0x88 - -gUnknown_085A73D8:: @ 85A73D8 - .incbin "baserom.gba", 0x5a73d8, 0x8 - -gUnknown_085A73E0:: @ 85A73E0 - .incbin "baserom.gba", 0x5a73e0, 0x24 - -gUnknown_085A7404:: @ 85A7404 - .incbin "baserom.gba", 0x5a7404, 0x18 - -gUnknown_085A741C:: @ 85A741C - .incbin "baserom.gba", 0x5a741c, 0x8 - -gUnknown_085A7424:: @ 85A7424 - .incbin "baserom.gba", 0x5a7424, 0x10 - -gUnknown_085A7434:: @ 85A7434 - .incbin "baserom.gba", 0x5a7434, 0x10 - -gUnknown_085A7444:: @ 85A7444 - .incbin "baserom.gba", 0x5a7444, 0x8 - -gUnknown_085A744C:: @ 85A744C - .incbin "baserom.gba", 0x5a744c, 0x4 - -gUnknown_085A7450:: @ 85A7450 - .incbin "baserom.gba", 0x5a7450, 0x74 - -gUnknown_085A74C4:: @ 85A74C4 - .incbin "baserom.gba", 0x5a74c4, 0xc - -gUnknown_085A74D0:: @ 85A74D0 - .incbin "baserom.gba", 0x5a74d0, 0x14 - -gUnknown_085A74E4:: @ 85A74E4 - .incbin "baserom.gba", 0x5a74e4, 0xc - -gUnknown_085A74F0:: @ 85A74F0 - .incbin "baserom.gba", 0x5a74f0, 0xc - -gUnknown_085A74FC:: @ 85A74FC - .incbin "baserom.gba", 0x5a74fc, 0xc - -gUnknown_085A7508:: @ 85A7508 - .incbin "baserom.gba", 0x5a7508, 0xc - -gUnknown_085A7514:: @ 85A7514 - .incbin "baserom.gba", 0x5a7514, 0xc - -gUnknown_085A7520:: @ 85A7520 - .incbin "baserom.gba", 0x5a7520, 0xc - -gUnknown_085A752C:: @ 85A752C - .incbin "baserom.gba", 0x5a752c, 0xc - -gUnknown_085A7538:: @ 85A7538 - .incbin "baserom.gba", 0x5a7538, 0xc - -gUnknown_085A7544:: @ 85A7544 - .incbin "baserom.gba", 0x5a7544, 0xc - -gUnknown_085A7550:: @ 85A7550 - .incbin "baserom.gba", 0x5a7550, 0x8 - -gUnknown_085A7558:: @ 85A7558 - .incbin "baserom.gba", 0x5a7558, 0x10 - -gUnknown_085A7568:: @ 85A7568 - .incbin "baserom.gba", 0x5a7568, 0x2 - -gUnknown_085A756A:: @ 85A756A - .incbin "baserom.gba", 0x5a756a, 0xa - -gUnknown_085A7574:: @ 85A7574 - .incbin "baserom.gba", 0x5a7574, 0x4c - -gUnknown_085A75C0:: @ 85A75C0 - .incbin "baserom.gba", 0x5a75c0, 0x4 - -gUnknown_085A75C4:: @ 85A75C4 - .incbin "baserom.gba", 0x5a75c4, 0x8 - -gUnknown_085A75CC:: @ 85A75CC - .incbin "baserom.gba", 0x5a75cc, 0x8 - -gUnknown_085A75D4:: @ 85A75D4 - .incbin "baserom.gba", 0x5a75d4, 0x3c - -gUnknown_085A7610:: @ 85A7610 - .incbin "baserom.gba", 0x5a7610, 0x4 - -gUnknown_085A7614:: @ 85A7614 - .incbin "baserom.gba", 0x5a7614, 0x2 - -gUnknown_085A7616:: @ 85A7616 - .incbin "baserom.gba", 0x5a7616, 0x8 - -gUnknown_085A761E:: @ 85A761E - .incbin "baserom.gba", 0x5a761e, 0x8 - -gUnknown_085A7626:: @ 85A7626 - .incbin "baserom.gba", 0x5a7626, 0x8 - -gUnknown_085A762E:: @ 85A762E - .incbin "baserom.gba", 0x5a762e, 0x10 - -gUnknown_085A763E:: @ 85A763E - .incbin "baserom.gba", 0x5a763e, 0x10 - -gUnknown_085A764E:: @ 85A764E - .incbin "baserom.gba", 0x5a764e, 0x10 - -gUnknown_085A765E:: @ 85A765E - .incbin "baserom.gba", 0x5a765e, 0x10 - -gUnknown_085A766E:: @ 85A766E - .incbin "baserom.gba", 0x5a766e, 0x3f - -gUnknown_085A76AD:: @ 85A76AD - .incbin "baserom.gba", 0x5a76ad, 0x7 - -gUnknown_085A76B4:: @ 85A76B4 - .incbin "baserom.gba", 0x5a76b4, 0xc - -gUnknown_085A76C0:: @ 85A76C0 - .incbin "baserom.gba", 0x5a76c0, 0x12 - -gUnknown_085A76D2:: @ 85A76D2 - .incbin "baserom.gba", 0x5a76d2, 0x12 - -gUnknown_085A76E4:: @ 85A76E4 - .incbin "baserom.gba", 0x5a76e4, 0x1e - -gUnknown_085A7702:: @ 85A7702 - .incbin "baserom.gba", 0x5a7702, 0x66 - -gUnknown_085A7768:: @ 85A7768 - .incbin "baserom.gba", 0x5a7768, 0x66 - -gUnknown_085A77CE:: @ 85A77CE - .incbin "baserom.gba", 0x5a77ce, 0xa - -gUnknown_085A77D8:: @ 85A77D8 - .incbin "baserom.gba", 0x5a77d8, 0x14 - -gUnknown_085A77EC:: @ 85A77EC - .incbin "baserom.gba", 0x5a77ec, 0xa - -gUnknown_085A77F6:: @ 85A77F6 - .incbin "baserom.gba", 0x5a77f6, 0x8 - -gUnknown_085A77FE:: @ 85A77FE - .incbin "baserom.gba", 0x5a77fe, 0x6 - -gUnknown_085A7804:: @ 85A7804 - .incbin "baserom.gba", 0x5a7804, 0xa - -gUnknown_085A780E:: @ 85A780E - .incbin "baserom.gba", 0x5a780e, 0x8 - -gUnknown_085A7816:: @ 85A7816 - .incbin "baserom.gba", 0x5a7816, 0x12 - -gUnknown_085A7828:: @ 85A7828 - .incbin "baserom.gba", 0x5a7828, 0x12 - -gUnknown_085A783A:: @ 85A783A - .incbin "baserom.gba", 0x5a783a, 0x8e - -gUnknown_085A78C8:: @ 85A78C8 - .incbin "baserom.gba", 0x5a78c8, 0x13c - -gUnknown_085A7A04:: @ 85A7A04 - .incbin "baserom.gba", 0x5a7a04, 0x1c - -gUnknown_085A7A20:: @ 85A7A20 - .incbin "baserom.gba", 0x5a7a20, 0x2c0 - -gUnknown_085A7CE0:: @ 85A7CE0 - .incbin "baserom.gba", 0x5a7ce0, 0x18 - -gUnknown_085A7CF8:: @ 85A7CF8 - .incbin "baserom.gba", 0x5a7cf8, 0x18 - -gUnknown_085A7D10:: @ 85A7D10 - .incbin "baserom.gba", 0x5a7d10, 0x18 - -gUnknown_085A7D28:: @ 85A7D28 - .incbin "baserom.gba", 0x5a7d28, 0x18 - -gUnknown_085A7D40:: @ 85A7D40 - .incbin "baserom.gba", 0x5a7d40, 0x18 - -gUnknown_085A7D58:: @ 85A7D58 - .incbin "baserom.gba", 0x5a7d58, 0x18 - -gUnknown_085A7D70:: @ 85A7D70 - .incbin "baserom.gba", 0x5a7d70, 0x18 - -gUnknown_085A7D88:: @ 85A7D88 - .incbin "baserom.gba", 0x5a7d88, 0x18 - -gUnknown_085A7DA0:: @ 85A7DA0 - .incbin "baserom.gba", 0x5a7da0, 0x18 - -gUnknown_085A7DB8:: @ 85A7DB8 - .incbin "baserom.gba", 0x5a7db8, 0x18 - -gUnknown_085A7DD0:: @ 85A7DD0 - .incbin "baserom.gba", 0x5a7dd0, 0x18 - -gUnknown_085A7DE8:: @ 85A7DE8 - .incbin "baserom.gba", 0x5a7de8, 0x18 - -gUnknown_085A7E00:: @ 85A7E00 - .incbin "baserom.gba", 0x5a7e00, 0x18 - -gUnknown_085A7E18:: @ 85A7E18 - .incbin "baserom.gba", 0x5a7e18, 0x18 - -gUnknown_085A7E30:: @ 85A7E30 - .incbin "baserom.gba", 0x5a7e30, 0x168 - -gUnknown_085A7F98:: @ 85A7F98 - .incbin "baserom.gba", 0x5a7f98, 0x28 - -gUnknown_085A7FC0:: @ 85A7FC0 - .incbin "baserom.gba", 0x5a7fc0, 0x20 - -gUnknown_085A7FE0:: @ 85A7FE0 - .incbin "baserom.gba", 0x5a7fe0, 0x14 - -gUnknown_085A7FF4:: @ 85A7FF4 - .incbin "baserom.gba", 0x5a7ff4, 0x1c - -gUnknown_085A8010:: @ 85A8010 - .incbin "baserom.gba", 0x5a8010, 0x18 - -gUnknown_085A8028:: @ 85A8028 - .incbin "baserom.gba", 0x5a8028, 0x14 - -gUnknown_085A803C:: @ 85A803C - .incbin "baserom.gba", 0x5a803c, 0x228 - -gUnknown_085A8264:: @ 85A8264 - .incbin "baserom.gba", 0x5a8264, 0x68 - -gUnknown_085A82CC:: @ 85A82CC - .incbin "baserom.gba", 0x5a82cc, 0x68 - -gUnknown_085A8334:: @ 85A8334 - .incbin "baserom.gba", 0x5a8334, 0xb0 - -gUnknown_085A83E4:: @ 85A83E4 - .incbin "baserom.gba", 0x5a83e4, 0x24 - -gUnknown_085A8408:: @ 85A8408 - .incbin "baserom.gba", 0x5a8408, 0x14 - -gUnknown_085A841C:: @ 85A841C - .incbin "baserom.gba", 0x5a841c, 0x14 - -gUnknown_085A8430:: @ 85A8430 - .incbin "baserom.gba", 0x5a8430, 0x5 - -gUnknown_085A8435:: @ 85A8435 - .incbin "baserom.gba", 0x5a8435, 0x6 - -gUnknown_085A843B:: @ 85A843B - .incbin "baserom.gba", 0x5a843b, 0x65 - -gUnknown_085A84A0:: @ 85A84A0 - .incbin "baserom.gba", 0x5a84a0, 0xc - -gUnknown_085A84AC:: @ 85A84AC - .incbin "baserom.gba", 0x5a84ac, 0x64 - -gUnknown_085A8510:: @ 85A8510 - .incbin "baserom.gba", 0x5a8510, 0x10 - -gUnknown_085A8520:: @ 85A8520 - .incbin "baserom.gba", 0x5a8520, 0x4 - -gUnknown_085A8524:: @ 85A8524 - .incbin "baserom.gba", 0x5a8524, 0x20 - -gUnknown_085A8544:: @ 85A8544 - .incbin "baserom.gba", 0x5a8544, 0x48 - -gUnknown_085A858C:: @ 85A858C - .incbin "baserom.gba", 0x5a858c, 0x1154 - -gUnknown_085A96E0:: @ 85A96E0 - .incbin "baserom.gba", 0x5a96e0, 0x1b8 - -gUnknown_085A9898:: @ 85A9898 - .incbin "baserom.gba", 0x5a9898, 0x4 - -gUnknown_085A989C:: @ 85A989C - .incbin "baserom.gba", 0x5a989c, 0x200 - -gUnknown_085A9A9C:: @ 85A9A9C - .incbin "baserom.gba", 0x5a9a9c, 0x1084 - -gUnknown_085AAB20:: @ 85AAB20 - .incbin "baserom.gba", 0x5aab20, 0xc30 - -gUnknown_085AB750:: @ 85AB750 - .incbin "baserom.gba", 0x5ab750, 0xb38 - -gUnknown_085AC288:: @ 85AC288 - .incbin "baserom.gba", 0x5ac288, 0xfb8 - -gUnknown_085AD240:: @ 85AD240 - .incbin "baserom.gba", 0x5ad240, 0x1130 - -gUnknown_085AE370:: @ 85AE370 - .incbin "baserom.gba", 0x5ae370, 0x604 - -gUnknown_085AE974:: @ 85AE974 - .incbin "baserom.gba", 0x5ae974, 0x50c - -gUnknown_085AEE80:: @ 85AEE80 - .incbin "baserom.gba", 0x5aee80, 0x50c - -gUnknown_085AF38C:: @ 85AF38C - .incbin "baserom.gba", 0x5af38c, 0x50c - -gUnknown_085AF898:: @ 85AF898 - .incbin "baserom.gba", 0x5af898, 0x50c - -gUnknown_085AFDA4:: @ 85AFDA4 - .incbin "baserom.gba", 0x5afda4, 0x50c - -gUnknown_085B02B0:: @ 85B02B0 - .incbin "baserom.gba", 0x5b02b0, 0x524 - -gUnknown_085B07D4:: @ 85B07D4 - .incbin "baserom.gba", 0x5b07d4, 0x14 - -gUnknown_085B07E8:: @ 85B07E8 - .incbin "baserom.gba", 0x5b07e8, 0x4 - -gUnknown_085B07EC:: @ 85B07EC - .incbin "baserom.gba", 0x5b07ec, 0x8 - -gUnknown_085B07F4:: @ 85B07F4 - .incbin "baserom.gba", 0x5b07f4, 0x3c - -gUnknown_085B0830:: @ 85B0830 - .incbin "baserom.gba", 0x5b0830, 0x8 - -gUnknown_085B0838:: @ 85B0838 - .incbin "baserom.gba", 0x5b0838, 0x4 diff --git a/data/data_emerald.s b/data/data_emerald.s deleted file mode 100644 index 54bda4a0e..000000000 --- a/data/data_emerald.s +++ /dev/null @@ -1,999 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - -gUnknown_0860B058:: @ 860B058 - .incbin "baserom.gba", 0x60b058, 0xc - -gUnknown_0860B064:: @ 860B064 - .incbin "baserom.gba", 0x60b064, 0x8 - -gUnknown_0860B06C:: @ 860B06C - .incbin "baserom.gba", 0x60b06c, 0x8 - -gUnknown_0860B074:: @ 860B074 - .incbin "baserom.gba", 0x60b074, 0xa - -gUnknown_0860B07E:: @ 860B07E - .incbin "baserom.gba", 0x60b07e, 0x126 - -gUnknown_0860B1A4:: @ 860B1A4 - .incbin "baserom.gba", 0x60b1a4, 0x40 - -gUnknown_0860B1E4:: @ 860B1E4 - .incbin "baserom.gba", 0x60b1e4, 0x20 - -gUnknown_0860B204:: @ 860B204 - .incbin "baserom.gba", 0x60b204, 0x20 - -gUnknown_0860B224:: @ 860B224 - .incbin "baserom.gba", 0x60b224, 0xc8 - -gUnknown_0860B2EC:: @ 860B2EC - .incbin "baserom.gba", 0x60b2ec, 0x18 - -gUnknown_0860B304:: @ 860B304 - .incbin "baserom.gba", 0x60b304, 0xc - -gUnknown_0860B310:: @ 860B310 - .incbin "baserom.gba", 0x60b310, 0x14 - -gUnknown_0860B324:: @ 860B324 - .incbin "baserom.gba", 0x60b324, 0x14 - -gUnknown_0860B338:: @ 860B338 - .incbin "baserom.gba", 0x60b338, 0x14 - -gUnknown_0860B34C:: @ 860B34C - .incbin "baserom.gba", 0x60b34c, 0xc - -gUnknown_0860B358:: @ 860B358 - .incbin "baserom.gba", 0x60b358, 0x1630 - -gUnknown_0860C988:: @ 860C988 - .incbin "baserom.gba", 0x60c988, 0x269 - -gUnknown_0860CBF1:: @ 860CBF1 - .incbin "baserom.gba", 0x60cbf1, 0x283 - -gUnknown_0860CE74:: @ 860CE74 - .incbin "baserom.gba", 0x60ce74, 0x10 - -gUnknown_0860CE84:: @ 860CE84 - .incbin "baserom.gba", 0x60ce84, 0x10 - -gUnknown_0860CE94:: @ 860CE94 - .incbin "baserom.gba", 0x60ce94, 0x20 - -gUnknown_0860CEB4:: @ 860CEB4 - .incbin "baserom.gba", 0x60ceb4, 0x90 - -gUnknown_0860CF44:: @ 860CF44 - .incbin "baserom.gba", 0x60cf44, 0xc - -gUnknown_0860CF50:: @ 860CF50 - .incbin "baserom.gba", 0x60cf50, 0x58 - -gUnknown_0860CFA8:: @ 860CFA8 - .incbin "baserom.gba", 0x60cfa8, 0x30 - -gUnknown_0860CFD8:: @ 860CFD8 - .incbin "baserom.gba", 0x60cfd8, 0x30 - -gUnknown_0860D008:: @ 860D008 - .incbin "baserom.gba", 0x60d008, 0x48 - -gUnknown_0860D050:: @ 860D050 - .incbin "baserom.gba", 0x60d050, 0x18 - -gUnknown_0860D068:: @ 860D068 - .incbin "baserom.gba", 0x60d068, 0x18 - -gUnknown_0860D080:: @ 860D080 - .incbin "baserom.gba", 0x60d080, 0x10 - -gUnknown_0860D090:: @ 860D090 - .incbin "baserom.gba", 0x60d090, 0x5c - -gUnknown_0860D0EC:: @ 860D0EC - .incbin "baserom.gba", 0x60d0ec, 0x10 - -gUnknown_0860D0FC:: @ 860D0FC - .incbin "baserom.gba", 0x60d0fc, 0x10 - -gUnknown_0860D10C:: @ 860D10C - .incbin "baserom.gba", 0x60d10c, 0x40 - -gUnknown_0860D14C:: @ 860D14C - .incbin "baserom.gba", 0x60d14c, 0x10 - -gUnknown_0860D15C:: @ 860D15C - .incbin "baserom.gba", 0x60d15c, 0x40 - -gUnknown_0860D19C:: @ 860D19C - .incbin "baserom.gba", 0x60d19c, 0x4 - -gUnknown_0860D1A0:: @ 860D1A0 - .incbin "baserom.gba", 0x60d1a0, 0x20 - -gUnknown_0860D1C0:: @ 860D1C0 - .incbin "baserom.gba", 0x60d1c0, 0x10 - -gUnknown_0860D1D0:: @ 860D1D0 - .incbin "baserom.gba", 0x60d1d0, 0x44 - -gUnknown_0860D214:: @ 860D214 - .incbin "baserom.gba", 0x60d214, 0x80 - -gUnknown_0860D294:: @ 860D294 - .incbin "baserom.gba", 0x60d294, 0xac - -gUnknown_0860D340:: @ 860D340 - .incbin "baserom.gba", 0x60d340, 0x3 - -gUnknown_0860D343:: @ 860D343 - .incbin "baserom.gba", 0x60d343, 0x3 - -gUnknown_0860D346:: @ 860D346 - .incbin "baserom.gba", 0x60d346, 0x3 - -gUnknown_0860D349:: @ 860D349 - .incbin "baserom.gba", 0x60d349, 0x7 - -gUnknown_0860D350:: @ 860D350 - .incbin "baserom.gba", 0x60d350, 0x3c - -gUnknown_0860D38C:: @ 860D38C - .incbin "baserom.gba", 0x60d38c, 0x1c - -gUnknown_0860D3A8:: @ 860D3A8 - .incbin "baserom.gba", 0x60d3a8, 0x3 - -gUnknown_0860D3AB:: @ 860D3AB - .incbin "baserom.gba", 0x60d3ab, 0x3 - -gUnknown_0860D3AE:: @ 860D3AE - .incbin "baserom.gba", 0x60d3ae, 0x3 - -gUnknown_0860D3B1:: @ 860D3B1 - .incbin "baserom.gba", 0x60d3b1, 0x3 - -gUnknown_0860D3B4:: @ 860D3B4 - .incbin "baserom.gba", 0x60d3b4, 0x10 - -gUnknown_0860D3C4:: @ 860D3C4 - .incbin "baserom.gba", 0x60d3c4, 0x2 - -gUnknown_0860D3C6:: @ 860D3C6 - .incbin "baserom.gba", 0x60d3c6, 0x2b - -gUnknown_0860D3F1:: @ 860D3F1 - .incbin "baserom.gba", 0x60d3f1, 0x1 - -gUnknown_0860D3F2:: @ 860D3F2 - .incbin "baserom.gba", 0x60d3f2, 0x1f - -gUnknown_0860D411:: @ 860D411 - .incbin "baserom.gba", 0x60d411, 0x8ff - -gUnknown_0860DD10:: @ 860DD10 - .incbin "baserom.gba", 0x60dd10, 0x100 - -gUnknown_0860DE10:: @ 860DE10 - .incbin "baserom.gba", 0x60de10, 0x40 - -gUnknown_0860DE50:: @ 860DE50 - .incbin "baserom.gba", 0x60de50, 0x28 - -gUnknown_0860DE78:: @ 860DE78 - .incbin "baserom.gba", 0x60de78, 0xc - -gUnknown_0860DE84:: @ 860DE84 - .incbin "baserom.gba", 0x60de84, 0x14 - -gUnknown_0860DE98:: @ 860DE98 - .incbin "baserom.gba", 0x60de98, 0x10 - -gUnknown_0860DEA8:: @ 860DEA8 - .incbin "baserom.gba", 0x60dea8, 0x10 - -gUnknown_0860DEB8:: @ 860DEB8 - .incbin "baserom.gba", 0x60deb8, 0xb68 - -gUnknown_0860EA20:: @ 860EA20 - .incbin "baserom.gba", 0x60ea20, 0xc - -gUnknown_0860EA2C:: @ 860EA2C - .incbin "baserom.gba", 0x60ea2c, 0x8 - -gUnknown_0860EA34:: @ 860EA34 - .incbin "baserom.gba", 0x60ea34, 0x18 - -gUnknown_0860EA4C:: @ 860EA4C - .incbin "baserom.gba", 0x60ea4c, 0x20 - -gUnknown_0860EA6C:: @ 860EA6C - .incbin "baserom.gba", 0x60ea6c, 0x100 - -gUnknown_0860EB6C:: @ 860EB6C - .incbin "baserom.gba", 0x60eb6c, 0x20 - -gUnknown_0860EB8C:: @ 860EB8C - .incbin "baserom.gba", 0x60eb8c, 0x3e4 - -gUnknown_0860EF70:: @ 860EF70 - .incbin "baserom.gba", 0x60ef70, 0x8 - -gUnknown_0860EF78:: @ 860EF78 - .incbin "baserom.gba", 0x60ef78, 0x20 - -gUnknown_0860EF98:: @ 860EF98 - .incbin "baserom.gba", 0x60ef98, 0x8 - -gUnknown_0860EFA0:: @ 860EFA0 - .incbin "baserom.gba", 0x60efa0, 0xc - -gUnknown_0860EFAC:: @ 860EFAC - .incbin "baserom.gba", 0x60efac, 0x18 - -gUnknown_0860EFC4:: @ 860EFC4 - .incbin "baserom.gba", 0x60efc4, 0x30 - -gUnknown_0860EFF4:: @ 860EFF4 - .incbin "baserom.gba", 0x60eff4, 0x1c - -gUnknown_0860F010:: @ 860F010 - .incbin "baserom.gba", 0x60f010, 0x10 - -gUnknown_0860F020:: @ 860F020 - .incbin "baserom.gba", 0x60f020, 0x54 - -gUnknown_0860F074:: @ 860F074 - .incbin "baserom.gba", 0x60f074, 0x20 - -gUnknown_0860F094:: @ 860F094 - .incbin "baserom.gba", 0x60f094, 0x4 - -gUnknown_0860F098:: @ 860F098 - .incbin "baserom.gba", 0x60f098, 0x10 - -gUnknown_0860F0A8:: @ 860F0A8 - .incbin "baserom.gba", 0x60f0a8, 0x8 - -gUnknown_0860F0B0:: @ 860F0B0 - .incbin "baserom.gba", 0x60f0b0, 0x20 - -gUnknown_0860F0D0:: @ 860F0D0 - .incbin "baserom.gba", 0x60f0d0, 0x4 - -gUnknown_0860F0D4:: @ 860F0D4 - .incbin "baserom.gba", 0x60f0d4, 0x68 - -gUnknown_0860F13C:: @ 860F13C - .incbin "baserom.gba", 0x60f13c, 0x1100 - -gUnknown_0861023C:: @ 861023C - .incbin "baserom.gba", 0x61023c, 0x100 - -gUnknown_0861033C:: @ 861033C - .incbin "baserom.gba", 0x61033c, 0x60 - -gUnknown_0861039C:: @ 861039C - .incbin "baserom.gba", 0x61039c, 0x20 - -gUnknown_086103BC:: @ 86103BC - .incbin "baserom.gba", 0x6103bc, 0x28 - -gUnknown_086103E4:: @ 86103E4 - .incbin "baserom.gba", 0x6103e4, 0x10 - -gUnknown_086103F4:: @ 86103F4 - .incbin "baserom.gba", 0x6103f4, 0x28 - -gUnknown_0861041C:: @ 861041C - .incbin "baserom.gba", 0x61041c, 0xc - -gUnknown_08610428:: @ 8610428 - .incbin "baserom.gba", 0x610428, 0xc - -gUnknown_08610434:: @ 8610434 - .incbin "baserom.gba", 0x610434, 0x38 - -gUnknown_0861046C:: @ 861046C - .incbin "baserom.gba", 0x61046c, 0xa - -gUnknown_08610476:: @ 8610476 - .incbin "baserom.gba", 0x610476, 0x3 - -gUnknown_08610479:: @ 8610479 - .incbin "baserom.gba", 0x610479, 0x15f - -gUnknown_086105D8:: @ 86105D8 - .incbin "baserom.gba", 0x6105d8, 0x18 - -gUnknown_086105F0:: @ 86105F0 - .incbin "baserom.gba", 0x6105f0, 0x18 - -gUnknown_08610608:: @ 8610608 - .incbin "baserom.gba", 0x610608, 0x18 - -gUnknown_08610620:: @ 8610620 - .incbin "baserom.gba", 0x610620, 0x18 - -gUnknown_08610638:: @ 8610638 - .incbin "baserom.gba", 0x610638, 0x18 - -gUnknown_08610650:: @ 8610650 - .incbin "baserom.gba", 0x610650, 0x50 - -gUnknown_086106A0:: @ 86106A0 - .incbin "baserom.gba", 0x6106a0, 0x10 - -gUnknown_086106B0:: @ 86106B0 - .incbin "baserom.gba", 0x6106b0, 0x184 - -gUnknown_08610834:: @ 8610834 - .incbin "baserom.gba", 0x610834, 0x18 - -gUnknown_0861084C:: @ 861084C - .incbin "baserom.gba", 0x61084c, 0x18 - -gUnknown_08610864:: @ 8610864 - .incbin "baserom.gba", 0x610864, 0x18 - -gUnknown_0861087C:: @ 861087C - .incbin "baserom.gba", 0x61087c, 0x18 - -gUnknown_08610894:: @ 8610894 - .incbin "baserom.gba", 0x610894, 0x18 - -gUnknown_086108AC:: @ 86108AC - .incbin "baserom.gba", 0x6108ac, 0xc - -gUnknown_086108B8:: @ 86108B8 - .incbin "baserom.gba", 0x6108b8, 0x10 - -gUnknown_086108C8:: @ 86108C8 - .incbin "baserom.gba", 0x6108c8, 0x50 - -gUnknown_08610918:: @ 8610918 - .incbin "baserom.gba", 0x610918, 0xa - -gUnknown_08610922:: @ 8610922 - .incbin "baserom.gba", 0x610922, 0x3 - -gUnknown_08610925:: @ 8610925 - .incbin "baserom.gba", 0x610925, 0x3 - -gUnknown_08610928:: @ 8610928 - .incbin "baserom.gba", 0x610928, 0x20 - -gUnknown_08610948:: @ 8610948 - .incbin "baserom.gba", 0x610948, 0x28 - -gUnknown_08610970:: @ 8610970 - .incbin "baserom.gba", 0x610970, 0x34 - -gUnknown_086109A4:: @ 86109A4 - .incbin "baserom.gba", 0x6109a4, 0x16 - -gUnknown_086109BA:: @ 86109BA - .incbin "baserom.gba", 0x6109ba, 0x536 - -gUnknown_08610EF0:: @ 8610EF0 - .incbin "baserom.gba", 0x610ef0, 0x100 - -gUnknown_08610FF0:: @ 8610FF0 - .incbin "baserom.gba", 0x610ff0, 0x80 - -gUnknown_08611070:: @ 8611070 - .incbin "baserom.gba", 0x611070, 0x140 - -gUnknown_086111B0:: @ 86111B0 - .incbin "baserom.gba", 0x6111b0, 0x80 - -gUnknown_08611230:: @ 8611230 - .incbin "baserom.gba", 0x611230, 0x80 - -gUnknown_086112B0:: @ 86112B0 - .incbin "baserom.gba", 0x6112b0, 0x80 - -gUnknown_08611330:: @ 8611330 - .incbin "baserom.gba", 0x611330, 0x40 - -gUnknown_08611370:: @ 8611370 - .incbin "baserom.gba", 0x611370, 0x163 - -gUnknown_086114D3:: @ 86114D3 - .incbin "baserom.gba", 0x6114d3, 0xd - -gUnknown_086114E0:: @ 86114E0 - .incbin "baserom.gba", 0x6114e0, 0x68 - -gUnknown_08611548:: @ 8611548 - .incbin "baserom.gba", 0x611548, 0x8 - -gUnknown_08611550:: @ 8611550 - .incbin "baserom.gba", 0x611550, 0x1c - -gUnknown_0861156C:: @ 861156C - .incbin "baserom.gba", 0x61156c, 0xc - -gUnknown_08611578:: @ 8611578 - .incbin "baserom.gba", 0x611578, 0x33c - -gUnknown_086118B4:: @ 86118B4 - .incbin "baserom.gba", 0x6118b4, 0x348 - -gUnknown_08611BFC:: @ 8611BFC - .incbin "baserom.gba", 0x611bfc, 0x1c - -gUnknown_08611C18:: @ 8611C18 - .incbin "baserom.gba", 0x611c18, 0x5c - -gUnknown_08611C74:: @ 8611C74 - .incbin "baserom.gba", 0x611c74, 0x8 - -gUnknown_08611C7C:: @ 8611C7C - .incbin "baserom.gba", 0x611c7c, 0x8 - -gUnknown_08611C84:: @ 8611C84 - .incbin "baserom.gba", 0x611c84, 0x8 - -gUnknown_08611C8C:: @ 8611C8C - .incbin "baserom.gba", 0x611c8c, 0xe - -gUnknown_08611C9A:: @ 8611C9A - .incbin "baserom.gba", 0x611c9a, 0x16 - -gUnknown_08611CB0:: @ 8611CB0 - .incbin "baserom.gba", 0x611cb0, 0x50 - -gUnknown_08611D00:: @ 8611D00 - .incbin "baserom.gba", 0x611d00, 0x8 - -gUnknown_08611D08:: @ 8611D08 - .incbin "baserom.gba", 0x611d08, 0x28 - -gUnknown_08611D30:: @ 8611D30 - .incbin "baserom.gba", 0x611d30, 0x80 - -gUnknown_08611DB0:: @ 8611DB0 - .incbin "baserom.gba", 0x611db0, 0x8 - -gUnknown_08611DB8:: @ 8611DB8 - .incbin "baserom.gba", 0x611db8, 0x8 - -@ 8611DC0 - .include "data/battle_frontier/battle_arena_move_mind_ratings.inc" - - .align 2 -@ 8611F24 - .incbin "baserom.gba", 0x611f24, 0x38 - -gUnknown_08611F5C:: @ 8611F5C - .incbin "baserom.gba", 0x611f5c, 0x18 - -gUnknown_08611F74:: @ 8611F74 - .incbin "baserom.gba", 0x611f74, 0x10 - -gUnknown_08611F84:: @ 8611F84 - .incbin "baserom.gba", 0x611f84, 0x1c - -gUnknown_08611FA0:: @ 8611FA0 - .incbin "baserom.gba", 0x611fa0, 0xc - -gUnknown_08611FAC:: @ 8611FAC - .incbin "baserom.gba", 0x611fac, 0x14 - -@ 8611FC0 - .include "data/battle_frontier/battle_factory_style_move_lists.inc" - -gUnknown_08612120:: @ 8612120 - .incbin "baserom.gba", 0x612120, 0x44 - -gUnknown_08612164:: @ 8612164 - .incbin "baserom.gba", 0x612164, 0x10 - -gUnknown_08612174:: @ 8612174 - .incbin "baserom.gba", 0x612174, 0x10 - -gUnknown_08612184:: @ 8612184 - .incbin "baserom.gba", 0x612184, 0x10 - -gUnknown_08612194:: @ 8612194 - .incbin "baserom.gba", 0x612194, 0x180 - -gUnknown_08612314:: @ 8612314 - .incbin "baserom.gba", 0x612314, 0x8 - -gUnknown_0861231C:: @ 861231C - .incbin "baserom.gba", 0x61231c, 0xc8 - -gUnknown_086123E4:: @ 86123E4 - .incbin "baserom.gba", 0x6123e4, 0x1f8 - -gUnknown_086125DC:: @ 86125DC - .incbin "baserom.gba", 0x6125dc, 0x1c - -gUnknown_086125F8:: @ 86125F8 - .incbin "baserom.gba", 0x6125f8, 0x74 - -gUnknown_0861266C:: @ 861266C - .incbin "baserom.gba", 0x61266c, 0x9 - -gUnknown_08612675:: @ 8612675 - .incbin "baserom.gba", 0x612675, 0x13 - -gUnknown_08612688:: @ 8612688 - .incbin "baserom.gba", 0x612688, 0x8 - -gUnknown_08612690:: @ 8612690 - .incbin "baserom.gba", 0x612690, 0x8 - -gUnknown_08612698:: @ 8612698 - .incbin "baserom.gba", 0x612698, 0x4 - -gUnknown_0861269C:: @ 861269C - .incbin "baserom.gba", 0x61269c, 0x4 - -gUnknown_086126A0:: @ 86126A0 - .incbin "baserom.gba", 0x6126a0, 0x4 - -gUnknown_086126A4:: @ 86126A4 - .incbin "baserom.gba", 0x6126a4, 0x4 - -gUnknown_086126A8:: @ 86126A8 - .incbin "baserom.gba", 0x6126a8, 0x2 - -gUnknown_086126AA:: @ 86126AA - .incbin "baserom.gba", 0x6126aa, 0x2 - -gUnknown_086126AC:: @ 86126AC - .incbin "baserom.gba", 0x6126ac, 0x2 - -gUnknown_086126AE:: @ 86126AE - .incbin "baserom.gba", 0x6126ae, 0x2 - -@ 86126B0 - .include "data/battle_frontier/battle_pyramid_level_50_wild_mons.inc" - -@ 8612E80 - .include "data/battle_frontier/battle_pyramid_open_level_wild_mons.inc" - -gUnknown_08613650:: @ 8613650 - .incbin "baserom.gba", 0x613650, 0x5 - -gUnknown_08613655:: @ 8613655 - .incbin "baserom.gba", 0x613655, 0xfb - -gUnknown_08613750:: @ 8613750 - .incbin "baserom.gba", 0x613750, 0x44 - -gUnknown_08613794:: @ 8613794 - .incbin "baserom.gba", 0x613794, 0x8 - -gUnknown_0861379C:: @ 861379C - .incbin "baserom.gba", 0x61379c, 0x190 - -gUnknown_0861392C:: @ 861392C - .incbin "baserom.gba", 0x61392c, 0x190 - -gUnknown_08613ABC:: @ 8613ABC - .incbin "baserom.gba", 0x613abc, 0x7e - -gUnknown_08613B3A:: @ 8613B3A - .incbin "baserom.gba", 0x613b3a, 0xa - -gUnknown_08613B44:: @ 8613B44 - .incbin "baserom.gba", 0x613b44, 0xd8 - -gUnknown_08613C1C:: @ 8613C1C - .incbin "baserom.gba", 0x613c1c, 0x2a4 - -gUnknown_08613EC0:: @ 8613EC0 - .incbin "baserom.gba", 0x613ec0, 0x18 - -gUnknown_08613ED8:: @ 8613ED8 - .incbin "baserom.gba", 0x613ed8, 0x8 - -gUnknown_08613EE0:: @ 8613EE0 - .incbin "baserom.gba", 0x613ee0, 0x48 - -gUnknown_08613F28:: @ 8613F28 - .incbin "baserom.gba", 0x613f28, 0xc - -gUnknown_08613F34:: @ 8613F34 - .incbin "baserom.gba", 0x613f34, 0x12 - -gUnknown_08613F46:: @ 8613F46 - .incbin "baserom.gba", 0x613f46, 0x40 - -gUnknown_08613F86:: @ 8613F86 - .incbin "baserom.gba", 0x613f86, 0xa - -gUnknown_08613F90:: @ 8613F90 - .incbin "baserom.gba", 0x613f90, 0xc - -gUnknown_08613F9C:: @ 8613F9C - .incbin "baserom.gba", 0x613f9c, 0x18 - -gUnknown_08613FB4:: @ 8613FB4 - .incbin "baserom.gba", 0x613fb4, 0x78 - -gUnknown_0861402C:: @ 861402C - .incbin "baserom.gba", 0x61402c, 0x4 - -gUnknown_08614030:: @ 8614030 - .incbin "baserom.gba", 0x614030, 0x4 - -gUnknown_08614034:: @ 8614034 - .incbin "baserom.gba", 0x614034, 0x4 - -gUnknown_08614038:: @ 8614038 - .incbin "baserom.gba", 0x614038, 0x4 - -gUnknown_0861403C:: @ 861403C - .incbin "baserom.gba", 0x61403c, 0x6 - -gUnknown_08614042:: @ 8614042 - .incbin "baserom.gba", 0x614042, 0x2 - -gUnknown_08614044:: @ 8614044 - .incbin "baserom.gba", 0x614044, 0x2 - -gUnknown_08614046:: @ 8614046 - .incbin "baserom.gba", 0x614046, 0x1 - -gUnknown_08614047:: @ 8614047 - .incbin "baserom.gba", 0x614047, 0x4 - -gUnknown_0861404B:: @ 861404B - .incbin "baserom.gba", 0x61404b, 0x2 - -gUnknown_0861404D:: @ 861404D - .incbin "baserom.gba", 0x61404d, 0x2 - -gUnknown_0861404F:: @ 861404F - .incbin "baserom.gba", 0x61404f, 0x5 - -gUnknown_08614054:: @ 8614054 - .incbin "baserom.gba", 0x614054, 0x30 - -gUnknown_08614084:: @ 8614084 - .incbin "baserom.gba", 0x614084, 0x8 - -gUnknown_0861408C:: @ 861408C - .incbin "baserom.gba", 0x61408c, 0x8 - -gUnknown_08614094:: @ 8614094 - .incbin "baserom.gba", 0x614094, 0x10 - -gUnknown_086140A4:: @ 86140A4 - .incbin "baserom.gba", 0x6140a4, 0xc0 - -gUnknown_08614164:: @ 8614164 - .incbin "baserom.gba", 0x614164, 0x10 - -gUnknown_08614174:: @ 8614174 - .incbin "baserom.gba", 0x614174, 0x38 - -gUnknown_086141AC:: @ 86141AC - .incbin "baserom.gba", 0x6141ac, 0x50 - -gUnknown_086141FC:: @ 86141FC - .incbin "baserom.gba", 0x6141fc, 0x48 - -gUnknown_08614244:: @ 8614244 - .incbin "baserom.gba", 0x614244, 0x18 - -gUnknown_0861425C:: @ 861425C - .incbin "baserom.gba", 0x61425c, 0x4 - -gUnknown_08614260:: @ 8614260 - .incbin "baserom.gba", 0x614260, 0x4 - -gUnknown_08614264:: @ 8614264 - .incbin "baserom.gba", 0x614264, 0x4 - -gUnknown_08614268:: @ 8614268 - .incbin "baserom.gba", 0x614268, 0x4 - -gUnknown_0861426C:: @ 861426C - .incbin "baserom.gba", 0x61426c, 0x4 - -gUnknown_08614270:: @ 8614270 - .incbin "baserom.gba", 0x614270, 0x4 - -gUnknown_08614274:: @ 8614274 - .incbin "baserom.gba", 0x614274, 0x4 - -gUnknown_08614278:: @ 8614278 - .incbin "baserom.gba", 0x614278, 0x18 - -gUnknown_08614290:: @ 8614290 - .incbin "baserom.gba", 0x614290, 0x18 - -gUnknown_086142A8:: @ 86142A8 - .incbin "baserom.gba", 0x6142a8, 0x20 - -gUnknown_086142C8:: @ 86142C8 - .incbin "baserom.gba", 0x6142c8, 0x70 - -gUnknown_08614338:: @ 8614338 - .incbin "baserom.gba", 0x614338, 0x40 - -gUnknown_08614378:: @ 8614378 - .incbin "baserom.gba", 0x614378, 0x44 - -gUnknown_086143BC:: @ 86143BC - .incbin "baserom.gba", 0x6143bc, 0x4e - -gUnknown_0861440A:: @ 861440A - .incbin "baserom.gba", 0x61440a, 0x4 - -gUnknown_0861440E:: @ 861440E - .incbin "baserom.gba", 0x61440e, 0x2 - -@ 8614410 - .include "data/graphics/items/item_icon_table.inc" - -@ 8614FE0 - .incbin "baserom.gba", 0x614fe0, 0x14 - -gUnknown_08614FF4:: @ 8614FF4 - .incbin "baserom.gba", 0x614ff4, 0x18 - -gUnknown_0861500C:: @ 861500C - .incbin "baserom.gba", 0x61500c, 0x3c - -gUnknown_08615048:: @ 8615048 - .incbin "baserom.gba", 0x615048, 0x670 - -gUnknown_086156B8:: @ 86156B8 - .incbin "baserom.gba", 0x6156b8, 0x2c - -gUnknown_086156E4:: @ 86156E4 - .incbin "baserom.gba", 0x6156e4, 0x20 - -gUnknown_08615704:: @ 8615704 - .incbin "baserom.gba", 0x615704, 0xc0 - -gUnknown_086157C4:: @ 86157C4 - .incbin "baserom.gba", 0x6157c4, 0x1c - -gUnknown_086157E0:: @ 86157E0 - .incbin "baserom.gba", 0x6157e0, 0x1c - -gUnknown_086157FC:: @ 86157FC - .incbin "baserom.gba", 0x6157fc, 0x14 - -gUnknown_08615810:: @ 8615810 - .incbin "baserom.gba", 0x615810, 0x40 - -gUnknown_08615850:: @ 8615850 - .incbin "baserom.gba", 0x615850, 0x40 - -gUnknown_08615890:: @ 8615890 - .incbin "baserom.gba", 0x615890, 0x40 - -gUnknown_086158D0:: @ 86158D0 - .incbin "baserom.gba", 0x6158d0, 0x38 - -gUnknown_08615908:: @ 8615908 - .incbin "baserom.gba", 0x615908, 0x8 - -gUnknown_08615910:: @ 8615910 - .incbin "baserom.gba", 0x615910, 0x8 - -gUnknown_08615918:: @ 8615918 - .incbin "baserom.gba", 0x615918, 0x8 - -gUnknown_08615920:: @ 8615920 - .incbin "baserom.gba", 0x615920, 0x8 - -gUnknown_08615928:: @ 8615928 - .incbin "baserom.gba", 0x615928, 0x8 - -gUnknown_08615930:: @ 8615930 - .incbin "baserom.gba", 0x615930, 0x8 - -gUnknown_08615938:: @ 8615938 - .incbin "baserom.gba", 0x615938, 0x8 - -gUnknown_08615940:: @ 8615940 - .incbin "baserom.gba", 0x615940, 0x8 - -gUnknown_08615948:: @ 8615948 - .incbin "baserom.gba", 0x615948, 0x8 - -gUnknown_08615950:: @ 8615950 - .incbin "baserom.gba", 0x615950, 0x8 - -gUnknown_08615958:: @ 8615958 - .incbin "baserom.gba", 0x615958, 0x8 - -gUnknown_08615960:: @ 8615960 - .incbin "baserom.gba", 0x615960, 0x8 - -gUnknown_08615968:: @ 8615968 - .incbin "baserom.gba", 0x615968, 0x8 - -gUnknown_08615970:: @ 8615970 - .incbin "baserom.gba", 0x615970, 0x18 - -gUnknown_08615988:: @ 8615988 - .incbin "baserom.gba", 0x615988, 0x46 - -gUnknown_086159CE:: @ 86159CE - .incbin "baserom.gba", 0x6159ce, 0x46 - -gUnknown_08615A14:: @ 8615A14 - .incbin "baserom.gba", 0x615a14, 0x36 - -gUnknown_08615A4A:: @ 8615A4A - .incbin "baserom.gba", 0x615a4a, 0x36 - -gUnknown_08615A80:: @ 8615A80 - .incbin "baserom.gba", 0x615a80, 0x36 - -gUnknown_08615AB6:: @ 8615AB6 - .incbin "baserom.gba", 0x615ab6, 0x2 - -gUnknown_08615AB8:: @ 8615AB8 - .incbin "baserom.gba", 0x615ab8, 0x2 - -gUnknown_08615ABA:: @ 8615ABA - .incbin "baserom.gba", 0x615aba, 0x3 - -gUnknown_08615ABD:: @ 8615ABD - .incbin "baserom.gba", 0x615abd, 0x3 - -gUnknown_08615AC0:: @ 8615AC0 - .incbin "baserom.gba", 0x615ac0, 0x3 - -gUnknown_08615AC3:: @ 8615AC3 - .incbin "baserom.gba", 0x615ac3, 0x2 - -gUnknown_08615AC5:: @ 8615AC5 - .incbin "baserom.gba", 0x615ac5, 0x2 - -gUnknown_08615AC7:: @ 8615AC7 - .incbin "baserom.gba", 0x615ac7, 0x2 - -gUnknown_08615AC9:: @ 8615AC9 - .incbin "baserom.gba", 0x615ac9, 0x2 - -gUnknown_08615ACB:: @ 8615ACB - .incbin "baserom.gba", 0x615acb, 0x2 - -gUnknown_08615ACD:: @ 8615ACD - .incbin "baserom.gba", 0x615acd, 0x3 - -gUnknown_08615AD0:: @ 8615AD0 - .incbin "baserom.gba", 0x615ad0, 0x3 - -gUnknown_08615AD3:: @ 8615AD3 - .incbin "baserom.gba", 0x615ad3, 0x3 - -gUnknown_08615AD6:: @ 8615AD6 - .incbin "baserom.gba", 0x615ad6, 0x3 - -gUnknown_08615AD9:: @ 8615AD9 - .incbin "baserom.gba", 0x615ad9, 0x3 - -gUnknown_08615ADC:: @ 8615ADC - .incbin "baserom.gba", 0x615adc, 0x3 - -gUnknown_08615ADF:: @ 8615ADF - .incbin "baserom.gba", 0x615adf, 0x3 - -gUnknown_08615AE2:: @ 8615AE2 - .incbin "baserom.gba", 0x615ae2, 0x3 - -gUnknown_08615AE5:: @ 8615AE5 - .incbin "baserom.gba", 0x615ae5, 0x3 - -gUnknown_08615AE8:: @ 8615AE8 - .incbin "baserom.gba", 0x615ae8, 0x3 - -gUnknown_08615AEB:: @ 8615AEB - .incbin "baserom.gba", 0x615aeb, 0x3 - -gUnknown_08615AEE:: @ 8615AEE - .incbin "baserom.gba", 0x615aee, 0x3 - -gUnknown_08615AF1:: @ 8615AF1 - .incbin "baserom.gba", 0x615af1, 0x3 - -gUnknown_08615AF4:: @ 8615AF4 - .incbin "baserom.gba", 0x615af4, 0x6c - -gUnknown_08615B60:: @ 8615B60 - .incbin "baserom.gba", 0x615b60, 0xa8 - -gUnknown_08615C08:: @ 8615C08 - .incbin "baserom.gba", 0x615c08, 0x130 - -gUnknown_08615D38:: @ 8615D38 - .incbin "baserom.gba", 0x615d38, 0x38 - -gUnknown_08615D70:: @ 8615D70 - .incbin "baserom.gba", 0x615d70, 0xe - -gUnknown_08615D7E:: @ 8615D7E - .incbin "baserom.gba", 0x615d7e, 0x1e - -gUnknown_08615D9C:: @ 8615D9C - .incbin "baserom.gba", 0x615d9c, 0x70 - -gUnknown_08615E0C:: @ 8615E0C - .incbin "baserom.gba", 0x615e0c, 0xa4 - -gUnknown_08615EB0:: @ 8615EB0 - .incbin "baserom.gba", 0x615eb0, 0x8 - -gUnknown_08615EB8:: @ 8615EB8 - .incbin "baserom.gba", 0x615eb8, 0x8 - -gUnknown_08615EC0:: @ 8615EC0 - .incbin "baserom.gba", 0x615ec0, 0x38 - -gUnknown_08615EF8:: @ 8615EF8 - .incbin "baserom.gba", 0x615ef8, 0x8 - -gUnknown_08615F00:: @ 8615F00 - .incbin "baserom.gba", 0x615f00, 0x8 - -gUnknown_08615F08:: @ 8615F08 - .incbin "baserom.gba", 0x615f08, 0x68 - -gUnknown_08615F70:: @ 8615F70 - .incbin "baserom.gba", 0x615f70, 0x8 - -gUnknown_08615F78:: @ 8615F78 - .incbin "baserom.gba", 0x615f78, 0x80 - -gUnknown_08615FF8:: @ 8615FF8 - .incbin "baserom.gba", 0x615ff8, 0x8 - -gUnknown_08616000:: @ 8616000 - .incbin "baserom.gba", 0x616000, 0x8 - -gUnknown_08616008:: @ 8616008 - .incbin "baserom.gba", 0x616008, 0x18 - -gUnknown_08616020:: @ 8616020 - .incbin "baserom.gba", 0x616020, 0x20 - -gUnknown_08616040:: @ 8616040 - .incbin "baserom.gba", 0x616040, 0x74 - -gUnknown_086160B4:: @ 86160B4 - .incbin "baserom.gba", 0x6160b4, 0x20 - -gUnknown_086160D4:: @ 86160D4 - .incbin "baserom.gba", 0x6160d4, 0x4 - -gUnknown_086160D8:: @ 86160D8 - .incbin "baserom.gba", 0x6160d8, 0x1c - -gUnknown_086160F4:: @ 86160F4 - .incbin "baserom.gba", 0x6160f4, 0x4 - -gUnknown_086160F8:: @ 86160F8 - .incbin "baserom.gba", 0x6160f8, 0x28 - -gUnknown_08616120:: @ 8616120 - .incbin "baserom.gba", 0x616120, 0x4 - -gUnknown_08616124:: @ 8616124 - .incbin "baserom.gba", 0x616124, 0x4 - - .align 2 -gFont6BrailleGlyphs:: @ 8616128 - .incbin "data/graphics/fonts/font6.fwjpnfont" - -gUnknown_08617128:: @ 8617128 - .incbin "baserom.gba", 0x617128, 0x48 diff --git a/data/data_emerald2.s b/data/data_emerald2.s deleted file mode 100644 index 7efcbbecf..000000000 --- a/data/data_emerald2.s +++ /dev/null @@ -1,1045 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - -gUnknown_08617274:: @ 8617274 - .incbin "baserom.gba", 0x617274, 0x920 - -gUnknown_08617B94:: @ 8617B94 - .incbin "baserom.gba", 0x617b94, 0xb0 - -gUnknown_08617C44:: @ 8617C44 - .incbin "baserom.gba", 0x617c44, 0x120 - -gUnknown_08617D64:: @ 8617D64 - .incbin "baserom.gba", 0x617d64, 0x30 - -gUnknown_08617D94:: @ 8617D94 - .incbin "baserom.gba", 0x617d94, 0x10 - -gUnknown_08617DA4:: @ 8617DA4 - .incbin "baserom.gba", 0x617da4, 0x5c - -gUnknown_08617E00:: @ 8617E00 - .incbin "baserom.gba", 0x617e00, 0x18 - -gUnknown_08617E18:: @ 8617E18 - .incbin "baserom.gba", 0x617e18, 0x1c - -gUnknown_08617E34:: @ 8617E34 - .incbin "baserom.gba", 0x617e34, 0x2c - -gUnknown_08617E60:: @ 8617E60 - .incbin "baserom.gba", 0x617e60, 0x18 - -gUnknown_08617E78:: @ 8617E78 - .incbin "baserom.gba", 0x617e78, 0x15 - -gUnknown_08617E8D:: @ 8617E8D - .incbin "baserom.gba", 0x617e8d, 0xe - -gUnknown_08617E9B:: @ 8617E9B - .incbin "baserom.gba", 0x617e9b, 0x26d - -gUnknown_08618108:: @ 8618108 - .incbin "baserom.gba", 0x618108, 0x8 - -gUnknown_08618110:: @ 8618110 - .incbin "baserom.gba", 0x618110, 0x28 - -gUnknown_08618138:: @ 8618138 - .incbin "baserom.gba", 0x618138, 0x20 - -gUnknown_08618158:: @ 8618158 - .incbin "baserom.gba", 0x618158, 0x3 - -gUnknown_0861815B:: @ 861815B - .incbin "baserom.gba", 0x61815b, 0x5 - -gUnknown_08618160:: @ 8618160 - .incbin "baserom.gba", 0x618160, 0x18 - -gUnknown_08618178:: @ 8618178 - .incbin "baserom.gba", 0x618178, 0x49 - -@ 86181C1 - .include "data/text/move_descriptions.inc" - -@ 861CAAC - .include "data/text/nature_names.inc" - -gUnknown_0861CBB4:: @ 861CBB4 - .incbin "baserom.gba", 0x61cbb4, 0x38 - -gUnknown_0861CBEC:: @ 861CBEC - .incbin "baserom.gba", 0x61cbec, 0xc - -gUnknown_0861CBF8:: @ 861CBF8 - .incbin "baserom.gba", 0x61cbf8, 0xc - -gUnknown_0861CC04:: @ 861CC04 - .incbin "baserom.gba", 0x61cc04, 0xc - -gUnknown_0861CC10:: @ 861CC10 - .incbin "baserom.gba", 0x61cc10, 0xc - -gUnknown_0861CC1C:: @ 861CC1C - .incbin "baserom.gba", 0x61cc1c, 0x8 - -gUnknown_0861CC24:: @ 861CC24 - .incbin "baserom.gba", 0x61cc24, 0xa8 - -gUnknown_0861CCCC:: @ 861CCCC - .incbin "baserom.gba", 0x61cccc, 0x20 - -gUnknown_0861CCEC:: @ 861CCEC - .incbin "baserom.gba", 0x61ccec, 0x28 - -gUnknown_0861CD14:: @ 861CD14 - .incbin "baserom.gba", 0x61cd14, 0x18 - -gUnknown_0861CD2C:: @ 861CD2C - .incbin "baserom.gba", 0x61cd2c, 0xa7 - -gUnknown_0861CDD3:: @ 861CDD3 - .incbin "baserom.gba", 0x61cdd3, 0x81 - -gUnknown_0861CE54:: @ 861CE54 - .incbin "baserom.gba", 0x61ce54, 0x10 - -gUnknown_0861CE64:: @ 861CE64 - .incbin "baserom.gba", 0x61ce64, 0x10 - -gUnknown_0861CE74:: @ 861CE74 - .incbin "baserom.gba", 0x61ce74, 0x7 - -gUnknown_0861CE7B:: @ 861CE7B - .incbin "baserom.gba", 0x61ce7b, 0x7 - -gUnknown_0861CE82:: @ 861CE82 - .incbin "baserom.gba", 0x61ce82, 0xc - -gUnknown_0861CE8E:: @ 861CE8E - .incbin "baserom.gba", 0x61ce8e, 0x9 - -gUnknown_0861CE97:: @ 861CE97 - .incbin "baserom.gba", 0x61ce97, 0x125 - -gUnknown_0861CFBC:: @ 861CFBC - .incbin "baserom.gba", 0x61cfbc, 0x8 - -gUnknown_0861CFC4:: @ 861CFC4 - .incbin "baserom.gba", 0x61cfc4, 0x18 - -gUnknown_0861CFDC:: @ 861CFDC - .incbin "baserom.gba", 0x61cfdc, 0x98 - -gUnknown_0861D074:: @ 861D074 - .incbin "baserom.gba", 0x61d074, 0x8 - -gUnknown_0861D07C:: @ 861D07C - .incbin "baserom.gba", 0x61d07c, 0x8 - -gUnknown_0861D084:: @ 861D084 - .incbin "baserom.gba", 0x61d084, 0x74 - -gUnknown_0861D0F8:: @ 861D0F8 - .incbin "baserom.gba", 0x61d0f8, 0x8 - -gUnknown_0861D100:: @ 861D100 - .incbin "baserom.gba", 0x61d100, 0x8 - -gUnknown_0861D108:: @ 861D108 - .incbin "baserom.gba", 0x61d108, 0x18 - -gUnknown_0861D120:: @ 861D120 - .incbin "baserom.gba", 0x61d120, 0x20 - -gUnknown_0861D140:: @ 861D140 - .incbin "baserom.gba", 0x61d140, 0x60 - -gUnknown_0861D1A0:: @ 861D1A0 - .incbin "baserom.gba", 0x61d1a0, 0xd54 - -gUnknown_0861DEF4:: @ 861DEF4 - .incbin "baserom.gba", 0x61def4, 0x314 - -gUnknown_0861E208:: @ 861E208 - .incbin "baserom.gba", 0x61e208, 0xd5c - -gUnknown_0861EF64:: @ 861EF64 - .incbin "baserom.gba", 0x61ef64, 0x350 - -gUnknown_0861F2B4:: @ 861F2B4 - .incbin "baserom.gba", 0x61f2b4, 0xc - -gUnknown_0861F2C0:: @ 861F2C0 - .incbin "baserom.gba", 0x61f2c0, 0x18 - -gUnknown_0861F2D8:: @ 861F2D8 - .incbin "baserom.gba", 0x61f2d8, 0x30 - -gUnknown_0861F308:: @ 861F308 - .incbin "baserom.gba", 0x61f308, 0x4 - -gUnknown_0861F30C:: @ 861F30C - .incbin "baserom.gba", 0x61f30c, 0x2 - -gUnknown_0861F30E:: @ 861F30E - .incbin "baserom.gba", 0x61f30e, 0x2 - -gUnknown_0861F310:: @ 861F310 - .incbin "baserom.gba", 0x61f310, 0x4 - -gUnknown_0861F314:: @ 861F314 - .incbin "baserom.gba", 0x61f314, 0x8 - -gUnknown_0861F31C:: @ 861F31C - .incbin "baserom.gba", 0x61f31c, 0xc - -gUnknown_0861F328:: @ 861F328 - .incbin "baserom.gba", 0x61f328, 0x28 - -gUnknown_0861F350:: @ 861F350 - .incbin "baserom.gba", 0x61f350, 0x20 - -gUnknown_0861F370:: @ 861F370 - .incbin "baserom.gba", 0x61f370, 0x5c - -gUnknown_0861F3CC:: @ 861F3CC - .incbin "baserom.gba", 0x61f3cc, 0x8 - -gUnknown_0861F3D4:: @ 861F3D4 - .incbin "baserom.gba", 0x61f3d4, 0x18 - -gUnknown_0861F3EC:: @ 861F3EC - .incbin "baserom.gba", 0x61f3ec, 0x618 - -gUnknown_0861FA04:: @ 861FA04 - .incbin "baserom.gba", 0x61fa04, 0x4 - -gUnknown_0861FA08:: @ 861FA08 - .incbin "baserom.gba", 0x61fa08, 0x10 - -gUnknown_0861FA18:: @ 861FA18 - .incbin "baserom.gba", 0x61fa18, 0x30 - -gUnknown_0861FA48:: @ 861FA48 - .incbin "baserom.gba", 0x61fa48, 0x4 - -gUnknown_0861FA4C:: @ 861FA4C - .incbin "baserom.gba", 0x61fa4c, 0x8 - -gUnknown_0861FA54:: @ 861FA54 - .incbin "baserom.gba", 0x61fa54, 0x10 - -gUnknown_0861FA64:: @ 861FA64 - .incbin "baserom.gba", 0x61fa64, 0x8 - -gUnknown_0861FA6C:: @ 861FA6C - .incbin "baserom.gba", 0x61fa6c, 0x30 - -gUnknown_0861FA9C:: @ 861FA9C - .incbin "baserom.gba", 0x61fa9c, 0x68 - -gUnknown_0861FB04:: @ 861FB04 - .incbin "baserom.gba", 0x61fb04, 0x28 - -gUnknown_0861FB2C:: @ 861FB2C - .incbin "baserom.gba", 0x61fb2c, 0x18 - -gUnknown_0861FB44:: @ 861FB44 - .incbin "baserom.gba", 0x61fb44, 0xa0 - -gUnknown_0861FBE4:: @ 861FBE4 - .incbin "baserom.gba", 0x61fbe4, 0x4 - -gUnknown_0861FBE8:: @ 861FBE8 - .incbin "baserom.gba", 0x61fbe8, 0xc - -gUnknown_0861FBF4:: @ 861FBF4 - .incbin "baserom.gba", 0x61fbf4, 0x3 - -gUnknown_0861FBF7:: @ 861FBF7 - .incbin "baserom.gba", 0x61fbf7, 0x5 - -gUnknown_0861FBFC:: @ 861FBFC - .incbin "baserom.gba", 0x61fbfc, 0x8 - -gUnknown_0861FC04:: @ 861FC04 - .incbin "baserom.gba", 0x61fc04, 0x18 - -gUnknown_0861FC1C:: @ 861FC1C - .incbin "baserom.gba", 0x61fc1c, 0x20 - -gUnknown_0861FC3C:: @ 861FC3C - .incbin "baserom.gba", 0x61fc3c, 0x18 - -gUnknown_0861FC54:: @ 861FC54 - .incbin "baserom.gba", 0x61fc54, 0x5 - -gUnknown_0861FC59:: @ 861FC59 - .incbin "baserom.gba", 0x61fc59, 0x1f - -gUnknown_0861FC78:: @ 861FC78 - .incbin "baserom.gba", 0x61fc78, 0x2 - -gUnknown_0861FC7A:: @ 861FC7A - .incbin "baserom.gba", 0x61fc7a, 0xc - -gUnknown_0861FC86:: @ 861FC86 - .incbin "baserom.gba", 0x61fc86, 0x12 - -gUnknown_0861FC98:: @ 861FC98 - .incbin "baserom.gba", 0x61fc98, 0x14 - -gUnknown_0861FCAC:: @ 861FCAC - .incbin "baserom.gba", 0x61fcac, 0xa0 - -gUnknown_0861FD4C:: @ 861FD4C - .incbin "baserom.gba", 0x61fd4c, 0x20 - -gUnknown_0861FD6C:: @ 861FD6C - .incbin "baserom.gba", 0x61fd6c, 0x288 - -gUnknown_0861FFF4:: @ 861FFF4 - .incbin "baserom.gba", 0x61fff4, 0x1a0 - -gUnknown_08620194:: @ 8620194 - .incbin "baserom.gba", 0x620194, 0xc - -gUnknown_086201A0:: @ 86201A0 - .incbin "baserom.gba", 0x6201a0, 0x24 - -gUnknown_086201C4:: @ 86201C4 - .incbin "baserom.gba", 0x6201c4, 0x10 - -gUnknown_086201D4:: @ 86201D4 - .incbin "baserom.gba", 0x6201d4, 0x6c - -gUnknown_08620240:: @ 8620240 - .incbin "baserom.gba", 0x620240, 0x4 - -gUnknown_08620244:: @ 8620244 - .incbin "baserom.gba", 0x620244, 0x88 - -gUnknown_086202CC:: @ 86202CC - .incbin "baserom.gba", 0x6202cc, 0x8 - -gUnknown_086202D4:: @ 86202D4 - .incbin "baserom.gba", 0x6202d4, 0x38 - -gUnknown_0862030C:: @ 862030C - .incbin "baserom.gba", 0x62030c, 0x3 - -gUnknown_0862030F:: @ 862030F - .incbin "baserom.gba", 0x62030f, 0x3d - -gUnknown_0862034C:: @ 862034C - .incbin "baserom.gba", 0x62034c, 0x20 - -gUnknown_0862036C:: @ 862036C - .incbin "baserom.gba", 0x62036c, 0x18 - -gUnknown_08620384:: @ 8620384 - .incbin "baserom.gba", 0x620384, 0x1ca4 - -gUnknown_08622028:: @ 8622028 - .incbin "baserom.gba", 0x622028, 0x4e0 - -gUnknown_08622508:: @ 8622508 - .incbin "baserom.gba", 0x622508, 0x2 - -gUnknown_0862250A:: @ 862250A - .incbin "baserom.gba", 0x62250a, 0x6 - -gUnknown_08622510:: @ 8622510 - .incbin "baserom.gba", 0x622510, 0x20 - -gUnknown_08622530:: @ 8622530 - .incbin "baserom.gba", 0x622530, 0xa4 - -gUnknown_086225D4:: @ 86225D4 - .incbin "baserom.gba", 0x6225d4, 0x10c - -gUnknown_086226E0:: @ 86226E0 - .incbin "baserom.gba", 0x6226e0, 0x20 - -gUnknown_08622700:: @ 8622700 - .incbin "baserom.gba", 0x622700, 0x20 - -gUnknown_08622720:: @ 8622720 - .incbin "baserom.gba", 0x622720, 0x40 - -gUnknown_08622760:: @ 8622760 - .incbin "baserom.gba", 0x622760, 0x2c - -gUnknown_0862278C:: @ 862278C - .incbin "baserom.gba", 0x62278c, 0x8 - -gUnknown_08622794:: @ 8622794 - .incbin "baserom.gba", 0x622794, 0x4 - -gUnknown_08622798:: @ 8622798 - .incbin "baserom.gba", 0x622798, 0x40 - -gUnknown_086227D8:: @ 86227D8 - .incbin "baserom.gba", 0x6227d8, 0x8 - -gUnknown_086227E0:: @ 86227E0 - .incbin "baserom.gba", 0x6227e0, 0x8 - -gUnknown_086227E8:: @ 86227E8 - .incbin "baserom.gba", 0x6227e8, 0xc - -gUnknown_086227F4:: @ 86227F4 - .incbin "baserom.gba", 0x6227f4, 0x14 - -gUnknown_08622808:: @ 8622808 - .incbin "baserom.gba", 0x622808, 0x8 - -gUnknown_08622810:: @ 8622810 - .incbin "baserom.gba", 0x622810, 0x8 - -gUnknown_08622818:: @ 8622818 - .incbin "baserom.gba", 0x622818, 0x18 - -gUnknown_08622830:: @ 8622830 - .incbin "baserom.gba", 0x622830, 0x20 - -gUnknown_08622850:: @ 8622850 - .incbin "baserom.gba", 0x622850, 0x18 - -gUnknown_08622868:: @ 8622868 - .incbin "baserom.gba", 0x622868, 0x20 - -gUnknown_08622888:: @ 8622888 - .incbin "baserom.gba", 0x622888, 0x850 - -gUnknown_086230D8:: @ 86230D8 - .incbin "baserom.gba", 0x6230d8, 0xc - -gUnknown_086230E4:: @ 86230E4 - .incbin "baserom.gba", 0x6230e4, 0x14 - -gUnknown_086230F8:: @ 86230F8 - .incbin "baserom.gba", 0x6230f8, 0x8 - -gUnknown_08623100:: @ 8623100 - .incbin "baserom.gba", 0x623100, 0x10 - -gUnknown_08623110:: @ 8623110 - .incbin "baserom.gba", 0x623110, 0x8 - -gUnknown_08623118:: @ 8623118 - .incbin "baserom.gba", 0x623118, 0xb8 - -gUnknown_086231D0:: @ 86231D0 - .incbin "baserom.gba", 0x6231d0, 0x18 - -gUnknown_086231E8:: @ 86231E8 - .incbin "baserom.gba", 0x6231e8, 0x20 - -gUnknown_08623208:: @ 8623208 - .incbin "baserom.gba", 0x623208, 0x20 - -gUnknown_08623228:: @ 8623228 - .incbin "baserom.gba", 0x623228, 0x14 - -gUnknown_0862323C:: @ 862323C - .incbin "baserom.gba", 0x62323c, 0xfc - -gUnknown_08623338:: @ 8623338 - .incbin "baserom.gba", 0x623338, 0x20 - -gUnknown_08623358:: @ 8623358 - .incbin "baserom.gba", 0x623358, 0xc - -gUnknown_08623364:: @ 8623364 - .incbin "baserom.gba", 0x623364, 0x8 - -gUnknown_0862336C:: @ 862336C - .incbin "baserom.gba", 0x62336c, 0x8 - -gUnknown_08623374:: @ 8623374 - .incbin "baserom.gba", 0x623374, 0x8 - -gUnknown_0862337C:: @ 862337C - .incbin "baserom.gba", 0x62337c, 0x8 - -gUnknown_08623384:: @ 8623384 - .incbin "baserom.gba", 0x623384, 0x1c - -gUnknown_086233A0:: @ 86233A0 - .incbin "baserom.gba", 0x6233a0, 0x14 - -gUnknown_086233B4:: @ 86233B4 - .incbin "baserom.gba", 0x6233b4, 0x10 - -gUnknown_086233C4:: @ 86233C4 - .incbin "baserom.gba", 0x6233c4, 0x20 - -gUnknown_086233E4:: @ 86233E4 - .incbin "baserom.gba", 0x6233e4, 0xc8 - -gUnknown_086234AC:: @ 86234AC - .incbin "baserom.gba", 0x6234ac, 0xc4 - -gUnknown_08623570:: @ 8623570 - .incbin "baserom.gba", 0x623570, 0x20 - -gUnknown_08623590:: @ 8623590 - .incbin "baserom.gba", 0x623590, 0x4 - -gUnknown_08623594:: @ 8623594 - .incbin "baserom.gba", 0x623594, 0x4 - -gUnknown_08623598:: @ 8623598 - .incbin "baserom.gba", 0x623598, 0x1c - -gUnknown_086235B4:: @ 86235B4 - .incbin "baserom.gba", 0x6235b4, 0x8 - -gUnknown_086235BC:: @ 86235BC - .incbin "baserom.gba", 0x6235bc, 0xc - -gUnknown_086235C8:: @ 86235C8 - .incbin "baserom.gba", 0x6235c8, 0xc - -gUnknown_086235D4:: @ 86235D4 - .incbin "baserom.gba", 0x6235d4, 0x4 - -gUnknown_086235D8:: @ 86235D8 - .incbin "baserom.gba", 0x6235d8, 0xc - -gUnknown_086235E4:: @ 86235E4 - .incbin "baserom.gba", 0x6235e4, 0x20 - -gUnknown_08623604:: @ 8623604 - .incbin "baserom.gba", 0x623604, 0xc8 - -gUnknown_086236CC:: @ 86236CC - .incbin "baserom.gba", 0x6236cc, 0xc4 - -gUnknown_08623790:: @ 8623790 - .incbin "baserom.gba", 0x623790, 0x20 - -gUnknown_086237B0:: @ 86237B0 - .incbin "baserom.gba", 0x6237b0, 0x4 - -gUnknown_086237B4:: @ 86237B4 - .incbin "baserom.gba", 0x6237b4, 0x4 - -gUnknown_086237B8:: @ 86237B8 - .incbin "baserom.gba", 0x6237b8, 0x1c - -gUnknown_086237D4:: @ 86237D4 - .incbin "baserom.gba", 0x6237d4, 0x8 - -gUnknown_086237DC:: @ 86237DC - .incbin "baserom.gba", 0x6237dc, 0xc - -gUnknown_086237E8:: @ 86237E8 - .incbin "baserom.gba", 0x6237e8, 0xc - -gUnknown_086237F4:: @ 86237F4 - .incbin "baserom.gba", 0x6237f4, 0x4 - -gUnknown_086237F8:: @ 86237F8 - .incbin "baserom.gba", 0x6237f8, 0x44 - -@ 862383C - .include "data/text/ribbon_descriptions.inc" - -@ 8623A74 - .include "data/text/gift_ribbon_descriptions.inc" - -gUnknown_08623FF8:: @ 8623FF8 - .incbin "baserom.gba", 0x623ff8, 0xa0 - -gUnknown_08624098:: @ 8624098 - .incbin "baserom.gba", 0x624098, 0x20 - -gUnknown_086240B8:: @ 86240B8 - .incbin "baserom.gba", 0x6240b8, 0xae0 - -gUnknown_08624B98:: @ 8624B98 - .incbin "baserom.gba", 0x624b98, 0x8 - -gUnknown_08624BA0:: @ 8624BA0 - .incbin "baserom.gba", 0x624ba0, 0x18 - -gUnknown_08624BB8:: @ 8624BB8 - .incbin "baserom.gba", 0x624bb8, 0x8 - -gUnknown_08624BC0:: @ 8624BC0 - .incbin "baserom.gba", 0x624bc0, 0x4 - -gUnknown_08624BC4:: @ 8624BC4 - .incbin "baserom.gba", 0x624bc4, 0x8 - -gUnknown_08624BCC:: @ 8624BCC - .incbin "baserom.gba", 0x624bcc, 0xc - -gUnknown_08624BD8:: @ 8624BD8 - .incbin "baserom.gba", 0x624bd8, 0xc - -gUnknown_08624BE4:: @ 8624BE4 - .incbin "baserom.gba", 0x624be4, 0x4 - -gUnknown_08624BE8:: @ 8624BE8 - .incbin "baserom.gba", 0x624be8, 0x10 - -gUnknown_08624BF8:: @ 8624BF8 - .incbin "baserom.gba", 0x624bf8, 0x80 - -gUnknown_08624C78:: @ 8624C78 - .incbin "baserom.gba", 0x624c78, 0x8 - -gUnknown_08624C80:: @ 8624C80 - .incbin "baserom.gba", 0x624c80, 0x84 - -gUnknown_08624D04:: @ 8624D04 - .incbin "baserom.gba", 0x624d04, 0x5a4 - -gUnknown_086252A8:: @ 86252A8 - .incbin "baserom.gba", 0x6252a8, 0x54 - -gUnknown_086252FC:: @ 86252FC - .incbin "baserom.gba", 0x6252fc, 0x14 - -gUnknown_08625310:: @ 8625310 - .incbin "baserom.gba", 0x625310, 0x14 - -gUnknown_08625324:: @ 8625324 - .incbin "baserom.gba", 0x625324, 0x14 - -gUnknown_08625338:: @ 8625338 - .incbin "baserom.gba", 0x625338, 0x14 - -gUnknown_0862534C:: @ 862534C - .incbin "baserom.gba", 0x62534c, 0x14 - -gUnknown_08625360:: @ 8625360 - .incbin "baserom.gba", 0x625360, 0x14 - -gUnknown_08625374:: @ 8625374 - .incbin "baserom.gba", 0x625374, 0x14 - -gUnknown_08625388:: @ 8625388 - .incbin "baserom.gba", 0x625388, 0x60 - -gUnknown_086253E8:: @ 86253E8 - .incbin "baserom.gba", 0x6253e8, 0x18 - -gUnknown_08625400:: @ 8625400 - .incbin "baserom.gba", 0x625400, 0x3 - -gUnknown_08625403:: @ 8625403 - .incbin "baserom.gba", 0x625403, 0x1 - -gUnknown_08625404:: @ 8625404 - .incbin "baserom.gba", 0x625404, 0xc - -gUnknown_08625410:: @ 8625410 - .incbin "baserom.gba", 0x625410, 0x100 - -gUnknown_08625510:: @ 8625510 - .incbin "baserom.gba", 0x625510, 0x30 - -gUnknown_08625540:: @ 8625540 - .incbin "baserom.gba", 0x625540, 0x8 - -gUnknown_08625548:: @ 8625548 - .incbin "baserom.gba", 0x625548, 0x500 - -gUnknown_08625A48:: @ 8625A48 - .incbin "baserom.gba", 0x625a48, 0x8 - -gUnknown_08625A50:: @ 8625A50 - .incbin "baserom.gba", 0x625a50, 0x18 - -gUnknown_08625A68:: @ 8625A68 - .incbin "baserom.gba", 0x625a68, 0x8 - -gUnknown_08625A70:: @ 8625A70 - .incbin "baserom.gba", 0x625a70, 0x20 - -gUnknown_08625A90:: @ 8625A90 - .incbin "baserom.gba", 0x625a90, 0x18 - -gUnknown_08625AA8:: @ 8625AA8 - .incbin "baserom.gba", 0x625aa8, 0x18 - -gUnknown_08625AC0:: @ 8625AC0 - .incbin "baserom.gba", 0x625ac0, 0x8 - -gUnknown_08625AC8:: @ 8625AC8 - .incbin "baserom.gba", 0x625ac8, 0x4c - -gUnknown_08625B14:: @ 8625B14 - .incbin "baserom.gba", 0x625b14, 0x18 - -gUnknown_08625B2C:: @ 8625B2C - .incbin "baserom.gba", 0x625b2c, 0x28 - -gUnknown_08625B54:: @ 8625B54 - .incbin "baserom.gba", 0x625b54, 0x18 - -gUnknown_08625B6C:: @ 8625B6C - .incbin "baserom.gba", 0x625b6c, 0x520 - -gUnknown_0862608C:: @ 862608C - .incbin "baserom.gba", 0x62608c, 0x2 - -gUnknown_0862608E:: @ 862608E - .incbin "baserom.gba", 0x62608e, 0x4326 - -gUnknown_0862A3B4:: @ 862A3B4 - .incbin "baserom.gba", 0x62a3b4, 0x218 - -gUnknown_0862A5CC:: @ 862A5CC - .incbin "baserom.gba", 0x62a5cc, 0x8 - -gUnknown_0862A5D4:: @ 862A5D4 - .incbin "baserom.gba", 0x62a5d4, 0x20 - -gUnknown_0862A5F4:: @ 862A5F4 - .incbin "baserom.gba", 0x62a5f4, 0x4 - -gUnknown_0862A5F8:: @ 862A5F8 - .incbin "baserom.gba", 0x62a5f8, 0x20 - -gUnknown_0862A618:: @ 862A618 - .incbin "baserom.gba", 0x62a618, 0x48 - -gUnknown_0862A660:: @ 862A660 - .incbin "baserom.gba", 0x62a660, 0x10 - -gUnknown_0862A670:: @ 862A670 - .incbin "baserom.gba", 0x62a670, 0x18 - -gUnknown_0862A688:: @ 862A688 - .incbin "baserom.gba", 0x62a688, 0x10 - -gUnknown_0862A698:: @ 862A698 - .incbin "baserom.gba", 0x62a698, 0x8 - -gUnknown_0862A6A0:: @ 862A6A0 - .incbin "baserom.gba", 0x62a6a0, 0x8c - -gUnknown_0862A72C:: @ 862A72C - .incbin "baserom.gba", 0x62a72c, 0x24 - -gUnknown_0862A750:: @ 862A750 - .incbin "baserom.gba", 0x62a750, 0x24 - -gUnknown_0862A774:: @ 862A774 - .incbin "baserom.gba", 0x62a774, 0xa8 - -gUnknown_0862A81C:: @ 862A81C - .incbin "baserom.gba", 0x62a81c, 0x30 - -gUnknown_0862A84C:: @ 862A84C - .incbin "baserom.gba", 0x62a84c, 0x18 - -gUnknown_0862A864:: @ 862A864 - .incbin "baserom.gba", 0x62a864, 0x18 - -gUnknown_0862A87C:: @ 862A87C - .incbin "baserom.gba", 0x62a87c, 0xc - -gUnknown_0862A888:: @ 862A888 - .incbin "baserom.gba", 0x62a888, 0x3c - -gUnknown_0862A8C4:: @ 862A8C4 - .incbin "baserom.gba", 0x62a8c4, 0x8 - -gUnknown_0862A8CC:: @ 862A8CC - .incbin "baserom.gba", 0x62a8cc, 0x8 - -gUnknown_0862A8D4:: @ 862A8D4 - .incbin "baserom.gba", 0x62a8d4, 0x24 - -gUnknown_0862A8F8:: @ 862A8F8 - .incbin "baserom.gba", 0x62a8f8, 0x8 - -gUnknown_0862A900:: @ 862A900 - .incbin "baserom.gba", 0x62a900, 0x24 - -gUnknown_0862A924:: @ 862A924 - .incbin "baserom.gba", 0x62a924, 0x8 - -gUnknown_0862A92C:: @ 862A92C - .incbin "baserom.gba", 0x62a92c, 0xa8 - -gUnknown_0862A9D4:: @ 862A9D4 - .incbin "baserom.gba", 0x62a9d4, 0x8 - -gUnknown_0862A9DC:: @ 862A9DC - .incbin "baserom.gba", 0x62a9dc, 0x8 - -gUnknown_0862A9E4:: @ 862A9E4 - .incbin "baserom.gba", 0x62a9e4, 0x30 - -gUnknown_0862AA14:: @ 862AA14 - .incbin "baserom.gba", 0x62aa14, 0x8 - -gUnknown_0862AA1C:: @ 862AA1C - .incbin "baserom.gba", 0x62aa1c, 0x18 - -gUnknown_0862AA34:: @ 862AA34 - .incbin "baserom.gba", 0x62aa34, 0x8 - -gUnknown_0862AA3C:: @ 862AA3C - .incbin "baserom.gba", 0x62aa3c, 0x18 - -gUnknown_0862AA54:: @ 862AA54 - .incbin "baserom.gba", 0x62aa54, 0x3c - -gUnknown_0862AA90:: @ 862AA90 - .incbin "baserom.gba", 0x62aa90, 0x8 - -gUnknown_0862AA98:: @ 862AA98 - .incbin "baserom.gba", 0x62aa98, 0x8 - -gUnknown_0862AAA0:: @ 862AAA0 - .incbin "baserom.gba", 0x62aaa0, 0x18 - -gUnknown_0862AAB8:: @ 862AAB8 - .incbin "baserom.gba", 0x62aab8, 0x14 - -gUnknown_0862AACC:: @ 862AACC - .incbin "baserom.gba", 0x62aacc, 0x30 - -gUnknown_0862AAFC:: @ 862AAFC - .incbin "baserom.gba", 0x62aafc, 0x8 - -gUnknown_0862AB04:: @ 862AB04 - .incbin "baserom.gba", 0x62ab04, 0x8 - -gUnknown_0862AB0C:: @ 862AB0C - .incbin "baserom.gba", 0x62ab0c, 0x8 - -gUnknown_0862AB14:: @ 862AB14 - .incbin "baserom.gba", 0x62ab14, 0x18 - -gUnknown_0862AB2C:: @ 862AB2C - .incbin "baserom.gba", 0x62ab2c, 0x18 - -gUnknown_0862AB44:: @ 862AB44 - .incbin "baserom.gba", 0x62ab44, 0xe4 - -gUnknown_0862AC28:: @ 862AC28 - .incbin "baserom.gba", 0x62ac28, 0x8 - -gUnknown_0862AC30:: @ 862AC30 - .incbin "baserom.gba", 0x62ac30, 0x8 - -gUnknown_0862AC38:: @ 862AC38 - .incbin "baserom.gba", 0x62ac38, 0x8 - -gUnknown_0862AC40:: @ 862AC40 - .incbin "baserom.gba", 0x62ac40, 0x8 - -gUnknown_0862AC48:: @ 862AC48 - .incbin "baserom.gba", 0x62ac48, 0x8 - -gUnknown_0862AC50:: @ 862AC50 - .incbin "baserom.gba", 0x62ac50, 0x8 - -gUnknown_0862AC58:: @ 862AC58 - .incbin "baserom.gba", 0x62ac58, 0x8 - -gUnknown_0862AC60:: @ 862AC60 - .incbin "baserom.gba", 0x62ac60, 0x8 - -gUnknown_0862AC68:: @ 862AC68 - .incbin "baserom.gba", 0x62ac68, 0x8 - -gUnknown_0862AC70:: @ 862AC70 - .incbin "baserom.gba", 0x62ac70, 0x8 - -gUnknown_0862AC78:: @ 862AC78 - .incbin "baserom.gba", 0x62ac78, 0x18 - -gUnknown_0862AC90:: @ 862AC90 - .incbin "baserom.gba", 0x62ac90, 0x18 - -gUnknown_0862ACA8:: @ 862ACA8 - .incbin "baserom.gba", 0x62aca8, 0x18 - -gUnknown_0862ACC0:: @ 862ACC0 - .incbin "baserom.gba", 0x62acc0, 0x18 - -gUnknown_0862ACD8:: @ 862ACD8 - .incbin "baserom.gba", 0x62acd8, 0x18 - -gUnknown_0862ACF0:: @ 862ACF0 - .incbin "baserom.gba", 0x62acf0, 0x18 - -gUnknown_0862AD08:: @ 862AD08 - .incbin "baserom.gba", 0x62ad08, 0xc - -gUnknown_0862AD14:: @ 862AD14 - .incbin "baserom.gba", 0x62ad14, 0x20 - -gUnknown_0862AD34:: @ 862AD34 - .incbin "baserom.gba", 0x62ad34, 0x10 - -gUnknown_0862AD44:: @ 862AD44 - .incbin "baserom.gba", 0x62ad44, 0x10 - -gUnknown_0862AD54:: @ 862AD54 - .incbin "baserom.gba", 0x62ad54, 0x1dc - -gUnknown_0862AF30:: @ 862AF30 - .incbin "baserom.gba", 0x62af30, 0x60c - -gUnknown_0862B53C:: @ 862B53C - .incbin "baserom.gba", 0x62b53c, 0x1e8 - -gUnknown_0862B724:: @ 862B724 - .incbin "baserom.gba", 0x62b724, 0x8 - -gUnknown_0862B72C:: @ 862B72C - .incbin "baserom.gba", 0x62b72c, 0x2c - -gUnknown_0862B758:: @ 862B758 - .incbin "baserom.gba", 0x62b758, 0x18 - -gUnknown_0862B770:: @ 862B770 - .incbin "baserom.gba", 0x62b770, 0x14 - -gUnknown_0862B784:: @ 862B784 - .incbin "baserom.gba", 0x62b784, 0x14 - -gUnknown_0862B798:: @ 862B798 - .incbin "baserom.gba", 0x62b798, 0x14 - -gUnknown_0862B7AC:: @ 862B7AC - .incbin "baserom.gba", 0x62b7ac, 0x14 - -gUnknown_0862B7C0:: @ 862B7C0 - .incbin "baserom.gba", 0x62b7c0, 0x14 - -gUnknown_0862B7D4:: @ 862B7D4 - .incbin "baserom.gba", 0x62b7d4, 0x14 - -gUnknown_0862B7E8:: @ 862B7E8 - .incbin "baserom.gba", 0x62b7e8, 0x14 - -gUnknown_0862B7FC:: @ 862B7FC - .incbin "baserom.gba", 0x62b7fc, 0x14 - - .align 2 - .string "{CLEAR 11}A{CLEAR 6}B{CLEAR 6}C{CLEAR 26}D{CLEAR 6}E{CLEAR 6}F{CLEAR 26}others$" - .string "{CLEAR 11}G{CLEAR 6}H{CLEAR 6}I{CLEAR 26}J{CLEAR 6}K{CLEAR 6}L$" - .string "{CLEAR 11}M{CLEAR 6}N{CLEAR 6}O{CLEAR 26}P{CLEAR 6}Q{CLEAR 6}R{CLEAR 6}S{CLEAR 26} $" - .string "{CLEAR 11}T{CLEAR 6}U{CLEAR 6}V{CLEAR 26}W{CLEAR 6}X{CLEAR 6}Y{CLEAR 6}Z{CLEAR 26} $" - .string "{CLEAR 11}a{CLEAR 6}b{CLEAR 6}c{CLEAR 26}d{CLEAR 6}e{CLEAR 6}f{CLEAR 6} {CLEAR 30}.$" - .string "{CLEAR 11}g{CLEAR 6}h{CLEAR 7}i{CLEAR 27}j{CLEAR 7}k{CLEAR 7}l{CLEAR 7} {CLEAR 30},$" - .string "{CLEAR 11}m{CLEAR 6}n{CLEAR 6}o{CLEAR 26}p{CLEAR 6}q{CLEAR 7}r{CLEAR 6}s{CLEAR 27} $" - .string "{CLEAR 11}t{CLEAR 6}u{CLEAR 6}v{CLEAR 26}w{CLEAR 6}x{CLEAR 6}y{CLEAR 6}z{CLEAR 26} $" - .string "{CLEAR 11}A{CLEAR 6}B{CLEAR 6}C{CLEAR 26}D{CLEAR 6}E{CLEAR 6}F{CLEAR 6} {CLEAR 30}.$" - .string "{CLEAR 11}G{CLEAR 6}H{CLEAR 6}I{CLEAR 26}J{CLEAR 6}K{CLEAR 6}L{CLEAR 6} {CLEAR 30},$" - .string "{CLEAR 11}M{CLEAR 6}N{CLEAR 6}O{CLEAR 26}P{CLEAR 6}Q{CLEAR 6}R{CLEAR 6}S{CLEAR 26} $" - .string "{CLEAR 11}T{CLEAR 6}U{CLEAR 6}V{CLEAR 26}W{CLEAR 6}X{CLEAR 6}Y{CLEAR 6}Z{CLEAR 26} $" - .string "{CLEAR 11}0{CLEAR 16}1{CLEAR 16}2{CLEAR 16}3{CLEAR 16}4{CLEAR 16} $" - .string "{CLEAR 11}5{CLEAR 16}6{CLEAR 16}7{CLEAR 16}8{CLEAR 16}9{CLEAR 16} $" - .string "{CLEAR 12}!{CLEAR 17}?{CLEAR 16}♂{CLEAR 16}♀{CLEAR 16}/{CLEAR 17}-$" - .string "{CLEAR 11}…{CLEAR 16}“{CLEAR 16}”{CLEAR 18}‘{CLEAR 19}’{CLEAR 18} $" - -gUnknown_0862B9F9:: @ 862B9F9 - .string "ABCDE$" - -gUnknown_0862B9FF:: @ 862B9FF - .string "FGHIJ$" - -gUnknown_0862BA05:: @ 862BA05 - .string "KLMNO$" - -gUnknown_0862BA0B:: @ 862BA0B - .string "PQRST$" - -gUnknown_0862BA11:: @ 862BA11 - .string "UVWXY$" - -gUnknown_0862BA17:: @ 862BA17 - .string "Z $" - -gUnknown_0862BA1D:: @ 862BA1D - .string "01234$" - -gUnknown_0862BA23:: @ 862BA23 - .string "56789$" - -gUnknown_0862BA29:: @ 862BA29 - .string ".,!? $" - -gUnknown_0862BA2F:: @ 862BA2F - .string "-/&… $" - -gUnknown_0862BA35:: @ 862BA35 - .string "abcde$" - -gUnknown_0862BA3B:: @ 862BA3B - .string "fghij$" - -gUnknown_0862BA41:: @ 862BA41 - .string "klmno$" - -gUnknown_0862BA47:: @ 862BA47 - .string "pqrst$" - -gUnknown_0862BA4D:: @ 862BA4D - .string "uvwxy$" - -gUnknown_0862BA53:: @ 862BA53 - .string "z $" - -gUnknown_0862BA59:: @ 862BA59 - .string "01234$" - -gUnknown_0862BA5F:: @ 862BA5F - .string "56789$" - -gUnknown_0862BA65:: @ 862BA65 - .string ".,!? $" - -gUnknown_0862BA6B:: @ 862BA6B - .string "-/&… $" - - .string "$$$$$$$$" - -gUnknown_0862BA79:: @ 862BA79 - .string "{UNK_CTRL_F9 245}{UNK_CTRL_F9 246}{UNK_CTRL_F9 247}{UNK_CTRL_F9 248}{UNK_CTRL_F9 254}$" - -gUnknown_0862BA84:: @ 862BA84 - .string "{UNK_CTRL_F9 249}{UNK_CTRL_F9 250}{UNK_CTRL_F9 252}{UNK_CTRL_F9 251}{UNK_CTRL_F9 253}$" - -gUnknown_0862BA8F:: @ 862BA8F - .string "{UNK_CTRL_F9 236}{UNK_CTRL_F9 237}{UNK_CTRL_F9 238}{UNK_CTRL_F9 235}{UNK_CTRL_F9 234}$" - -gUnknown_0862BA9A:: @ 862BA9A - .string "♂♀{UNK_CTRL_F9 212}{UNK_CTRL_F9 213}{UNK_CTRL_F9 211}$" - -gUnknown_0862BAA3:: @ 862BAA3 - .string "{UNK_CTRL_F9 216}{UNK_CTRL_F9 217}{UNK_CTRL_F9 242}{UNK_CTRL_F9 243}{UNK_CTRL_F9 244}$" - -gUnknown_0862BAAE:: @ 862BAAE - .string "{UNK_CTRL_F9 218}{UNK_CTRL_F9 241}{UNK_CTRL_F9 224}{UNK_CTRL_F9 226}{UNK_CTRL_F9 227}$" - -gUnknown_0862BAB9:: @ 862BAB9 - .string "{UNK_CTRL_F9 240}{UNK_CTRL_F9 239}{UNK_CTRL_F9 225}{UNK_CTRL_F9 214}{UNK_CTRL_F9 215}$" - -gUnknown_0862BAC4:: @ 862BAC4 - .string "{UNK_CTRL_F9 228}{UNK_CTRL_F9 229}{UNK_CTRL_F9 230}{UNK_CTRL_F9 231}{UNK_CTRL_F9 232}$" - -gUnknown_0862BACF:: @ 862BACF - .string "{UNK_CTRL_F9 233}{UNK_CTRL_F9 220}{UNK_CTRL_F9 221}{UNK_CTRL_F9 222}{UNK_CTRL_F9 209}$" - -gUnknown_0862BADA:: @ 862BADA - .string "{UNK_CTRL_F9 210}{UNK_CTRL_F9 208}ょ: $" diff --git a/data/daycare.s b/data/daycare.s new file mode 100644 index 000000000..c249a668c --- /dev/null +++ b/data/daycare.s @@ -0,0 +1,24 @@ +@ the third big chunk of data + + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + + + +@ 832ADD8 + .include "data/egg_moves.inc" + + .align 2 +gUnknown_0832B6C0:: @ 832B6C0 + .incbin "baserom.gba", 0x32b6c0, 0x20 + +gUnknown_0832B6E0:: @ 832B6E0 + .incbin "baserom.gba", 0x32b6e0, 0x18 + +gUnknown_0832B6F8:: @ 832B6F8 + .incbin "baserom.gba", 0x32b6f8, 0x10 + +gEggName:: @ 832B708 + .string "タマゴ$" @ "tamago" ("egg" in Japanese) diff --git a/data/decoration.s b/data/decoration.s new file mode 100644 index 000000000..de4478f8d --- /dev/null +++ b/data/decoration.s @@ -0,0 +1,86 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gDecorations:: @ 85A5C08 + .incbin "baserom.gba", 0x5a5c08, 0x1c + +gUnknown_085A5C24:: @ 85A5C24 + .incbin "baserom.gba", 0x5a5c24, 0xf04 + +gUnknown_085A6B28:: @ 85A6B28 + .incbin "baserom.gba", 0x5a6b28, 0x20 + +gUnknown_085A6B48:: @ 85A6B48 + .incbin "baserom.gba", 0x5a6b48, 0x20 + +gUnknown_085A6B68:: @ 85A6B68 + .incbin "baserom.gba", 0x5a6b68, 0x10 + +gUnknown_085A6B78:: @ 85A6B78 + .incbin "baserom.gba", 0x5a6b78, 0x18 + +gUnknown_085A6B90:: @ 85A6B90 + .incbin "baserom.gba", 0x5a6b90, 0x20 + +gUnknown_085A6BB0:: @ 85A6BB0 + .incbin "baserom.gba", 0x5a6bb0, 0x20 + +gUnknown_085A6BD0:: @ 85A6BD0 + .incbin "baserom.gba", 0x5a6bd0, 0x18 + +gUnknown_085A6BE8:: @ 85A6BE8 + .incbin "baserom.gba", 0x5a6be8, 0x5c8 + +gUnknown_085A71B0:: @ 85A71B0 + .incbin "baserom.gba", 0x5a71b0, 0xa0 + +gUnknown_085A7250:: @ 85A7250 + .incbin "baserom.gba", 0x5a7250, 0x3c + +gUnknown_085A728C:: @ 85A728C + .incbin "baserom.gba", 0x5a728c, 0x18 + +gUnknown_085A72A4:: @ 85A72A4 + .incbin "baserom.gba", 0x5a72a4, 0x18 + +gUnknown_085A72BC:: @ 85A72BC + .incbin "baserom.gba", 0x5a72bc, 0x8 + +gUnknown_085A72C4:: @ 85A72C4 + .incbin "baserom.gba", 0x5a72c4, 0x8 + +gUnknown_085A72CC:: @ 85A72CC + .incbin "baserom.gba", 0x5a72cc, 0x8 + +gUnknown_085A72D4:: @ 85A72D4 + .incbin "baserom.gba", 0x5a72d4, 0x10 + +gUnknown_085A72E4:: @ 85A72E4 + .incbin "baserom.gba", 0x5a72e4, 0x8 + +gUnknown_085A72EC:: @ 85A72EC + .incbin "baserom.gba", 0x5a72ec, 0x8 + +gUnknown_085A72F4:: @ 85A72F4 + .incbin "baserom.gba", 0x5a72f4, 0x54 + +gUnknown_085A7348:: @ 85A7348 + .incbin "baserom.gba", 0x5a7348, 0x8 + +gUnknown_085A7350:: @ 85A7350 + .incbin "baserom.gba", 0x5a7350, 0x88 + +gUnknown_085A73D8:: @ 85A73D8 + .incbin "baserom.gba", 0x5a73d8, 0x8 + +gUnknown_085A73E0:: @ 85A73E0 + .incbin "baserom.gba", 0x5a73e0, 0x24 + +gUnknown_085A7404:: @ 85A7404 + .incbin "baserom.gba", 0x5a7404, 0x18 + +gUnknown_085A741C:: @ 85A741C + .incbin "baserom.gba", 0x5a741c, 0x8 diff --git a/data/easy_chat.s b/data/easy_chat.s new file mode 100644 index 000000000..d6efc1c7f --- /dev/null +++ b/data/easy_chat.s @@ -0,0 +1,113 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_08597530:: @ 8597530 + .incbin "baserom.gba", 0x597530, 0x20 + +gUnknown_08597550:: @ 8597550 + .incbin "baserom.gba", 0x597550, 0x1f8 + +gUnknown_08597748:: @ 8597748 + .incbin "baserom.gba", 0x597748, 0x1c + +gUnknown_08597764:: @ 8597764 + .incbin "baserom.gba", 0x597764, 0x8 + +gUnknown_0859776C:: @ 859776C + .incbin "baserom.gba", 0x59776c, 0x3a8 + +gUnknown_08597B14:: @ 8597B14 + .incbin "baserom.gba", 0x597b14, 0x20 + +gUnknown_08597B34:: @ 8597B34 + .incbin "baserom.gba", 0x597b34, 0x20 + +gUnknown_08597B54:: @ 8597B54 + .incbin "baserom.gba", 0x597b54, 0xc8 + +gUnknown_08597C1C:: @ 8597C1C + .incbin "baserom.gba", 0x597c1c, 0x8 + +gUnknown_08597C24:: @ 8597C24 + .incbin "baserom.gba", 0x597c24, 0xc + +gUnknown_08597C30:: @ 8597C30 + .incbin "baserom.gba", 0x597c30, 0x24 + +gUnknown_08597C54:: @ 8597C54 + .incbin "baserom.gba", 0x597c54, 0x10 + +gUnknown_08597C64:: @ 8597C64 + .incbin "baserom.gba", 0x597c64, 0x20 + +gUnknown_08597C84:: @ 8597C84 + .incbin "baserom.gba", 0x597c84, 0x8 + +gUnknown_08597C8C:: @ 8597C8C + .incbin "baserom.gba", 0x597c8c, 0x4 + +gUnknown_08597C90:: @ 8597C90 + .incbin "baserom.gba", 0x597c90, 0x10 + +gUnknown_08597CA0:: @ 8597CA0 + .incbin "baserom.gba", 0x597ca0, 0x20 + +gUnknown_08597CC0:: @ 8597CC0 + .incbin "baserom.gba", 0x597cc0, 0x28 + +gUnknown_08597CE8:: @ 8597CE8 + .incbin "baserom.gba", 0x597ce8, 0x20 + +gUnknown_08597D08:: @ 8597D08 + .incbin "baserom.gba", 0x597d08, 0x10 + +gUnknown_08597D18:: @ 8597D18 + .incbin "baserom.gba", 0x597d18, 0x50 + +gUnknown_08597D68:: @ 8597D68 + .incbin "baserom.gba", 0x597d68, 0x68 + +gUnknown_08597DD0:: @ 8597DD0 + .incbin "baserom.gba", 0x597dd0, 0x20 + +gUnknown_08597DF0:: @ 8597DF0 + .incbin "baserom.gba", 0x597df0, 0x40 + +gUnknown_08597E30:: @ 8597E30 + .incbin "baserom.gba", 0x597e30, 0x18 + +gUnknown_08597E48:: @ 8597E48 + .incbin "baserom.gba", 0x597e48, 0x18 + +gUnknown_08597E60:: @ 8597E60 + .incbin "baserom.gba", 0x597e60, 0xc + +gUnknown_08597E6C:: @ 8597E6C + .incbin "baserom.gba", 0x597e6c, 0x30 + +@ 8597E9C + .include "data/text/easy_chat/easy_chat_groups.inc" + +@ 859D0B4 + .include "data/text/easy_chat/easy_chat_words_by_letter.inc" + +@ 859E5D4 + .include "data/text/easy_chat/easy_chat_group_name_pointers.inc" + +gUnknown_0859E62C:: @ 859E62C + .incbin "baserom.gba", 0x59e62c, 0x8 + +gUnknown_0859E634:: @ 859E634 + .incbin "baserom.gba", 0x59e634, 0xc + +gUnknown_0859E640:: @ 859E640 + .incbin "baserom.gba", 0x59e640, 0xc + +gUnknown_0859E64C:: @ 859E64C + .incbin "baserom.gba", 0x59e64c, 0xc + +gUnknown_0859E658:: @ 859E658 + .incbin "baserom.gba", 0x59e658, 0x4 diff --git a/data/event_scripts.s b/data/event_scripts.s index f058d75db..e4293570d 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -181,7 +181,279 @@ gUnknown_08272604:: @ 8272604 .incbin "baserom.gba", 0x272604, 0x6b gUnknown_0827266F:: @ 827266F - .incbin "baserom.gba", 0x27266f, 0x1044 + .string "Which PC should be accessed?$" + + +gUnknown_0827268C:: @ 827268C + .string "Accessed SOMEONE’S PC.$" + + +gUnknown_082726A3:: @ 82726A3 + .string "POKéMON Storage System opened.$" + + +gUnknown_082726C2:: @ 82726C2 + .string "Accessed {PLAYER}’s PC.$" + + +gUnknown_082726D4:: @ 82726D4 + .string "Accessed LANETTE’s PC.$" + + +gUnknown_082726EB:: @ 82726EB + .string "Hello, and welcome to\nthe POKéMON CENTER.\pWe restore your tired POKéMON\nto full health.\pWould you like to rest your POKéMON?$" + + +gUnknown_08272768:: @ 8272768 + .string "Okay, I’ll take your POKéMON\nfor a few seconds.$" + + +gUnknown_08272798:: @ 8272798 + .string "Thank you for waiting.\pWe’ve restored your POKéMON\nto full health.$" + + +gUnknown_082727DB:: @ 82727DB + .string "We hope to see you again!$" + + +gUnknown_082727F5:: @ 82727F5 + .string "Hello, and welcome to\nthe POKéMON CENTER.\pWe restore your tired POKéMON\nto full health.\pWould you like to…$" + + +gUnknown_08272860:: @ 8272860 + .string "Th-that card…\nCould it be… The GOLD CARD?!\pOh, the gold color is brilliant!\nThe four stars seem to sparkle!\pI’ve seen several TRAINERS with\na SILVER CARD before, but, {PLAYER},\lyou’re the first TRAINER I’ve ever\lseen with a GOLD CARD!\pOkay, {PLAYER}, please allow me\nthe honor of resting your POKéMON!$" + + +gUnknown_08272982:: @ 8272982 + .string "I’m delighted to see you, {PLAYER}!\nYou want the usual, am I right?$" + + +gUnknown_082729C0:: @ 82729C0 + .string "Okay, I’ll take your POKéMON\nfor a few seconds.$" + + +gUnknown_082729F0:: @ 82729F0 + .string "Thank you for waiting.$" + + +gUnknown_08272A07:: @ 8272A07 + .string "We hope to see you again!$" + + +gUnknown_08272A21:: @ 8272A21 + .string "Welcome!\pHow may I serve you?$" + + +gUnknown_08272A3F:: @ 8272A3F + .string "Please come again!$" + + +gUnknown_08272A52:: @ 8272A52 + .string "{PLAYER}{STRING 5}, welcome!\pWhat can I do for you?$" + + +gUnknown_08272A78:: @ 8272A78 + .string "Obtained the {STR_VAR_2}!$" + + +gUnknown_08272A89:: @ 8272A89 + .string "The BAG is full…$" + + +gUnknown_08272A9A:: @ 8272A9A + .string "{PLAYER} put away the {STR_VAR_2}\nin the {STR_VAR_3} POCKET.$" + + +gUnknown_08272ABF:: @ 8272ABF + .string "{PLAYER} found one {STR_VAR_2}!$" + + +gUnknown_08272AD0:: @ 8272AD0 + .string "Too bad!\nThe BAG is full…$" + + +gUnknown_08272AEA:: @ 8272AEA + .string "{PLAYER} put away the {STR_VAR_2}\nin the BAG.$" + + +gUnknown_08272B09:: @ 8272B09 + .string "Obtained the {STR_VAR_2}!$" + + +gUnknown_08272B1A:: @ 8272B1A + .string "Too bad! There’s no room left for\nanother {STR_VAR_2}…$" + + +gUnknown_08272B48:: @ 8272B48 + .string "The {STR_VAR_2} was transferred\nto the PC.$" + + +gUnknown_08272B6A:: @ 8272B6A + .string "“Selected items for your convenience!”\nPOKéMON MART$" + + +gUnknown_08272B9E:: @ 8272B9E + .string "“Rejuvenate your tired partners!”\nPOKéMON CENTER$" + + +gUnknown_08272BCF:: @ 8272BCF + .string "{STR_VAR_1} might like this program.\n… … … … … … … … … … … … … … … …\pBetter get going!$" + + +gUnknown_08272C1D:: @ 8272C1D + .string "Welcome to LILYCOVE DEPARTMENT STORE.\pWhich floor would you like?$" + + +gUnknown_08272C5F:: @ 8272C5F + .string "The sandstorm is vicious.\nIt’s impossible to keep going.$" + + +gUnknown_08272C98:: @ 8272C98 + .string "An item in the BAG can be\nregistered to SELECT for easy use.$" + + +gUnknown_08272CD5:: @ 8272CD5 + .string "There’s an e-mail from POKéMON TRAINER\nSCHOOL.\p… … … … … …\pA POKéMON may learn up to four moves.\pA TRAINER’s expertise is tested on the\nmove sets chosen for POKéMON.\p… … … … … …$" + + +gUnknown_08272D87:: @ 8272D87 + .string "{PLAYER} booted up the PC.$" + + +gUnknown_08272D9C:: @ 8272D9C + .string "The link was canceled.$" + + +gUnknown_08272DB3:: @ 8272DB3 + .string "Want to give a nickname to\nthe {STR_VAR_2} you received?$" + + +gUnknown_08272DE3:: @ 8272DE3 + .string "{PLAYER} is out of usable\nPOKéMON!\p{PLAYER} whited out!$" + + +gUnknown_08272E0F:: @ 8272E0F + .string "Registered {STR_VAR_1} {STR_VAR_2}\nin the POKéNAV.$" + + +gUnknown_08272E30:: @ 8272E30 + .string "Do you know the TM SECRET POWER?\pOur group, we love the TM SECRET\nPOWER.\pOne of our members will give it to you.\nCome back and show me if you get it.\pWe’ll accept you as a member and sell\nyou good stuff in secrecy.$" + + +gUnknown_08272F07:: @ 8272F07 + .string "Your POKéMON may be infected with\nPOKéRUS.\pLittle is known about the POKéRUS\nexcept that they are microscopic life-\lforms that attach to POKéMON.\pWhile infected, POKéMON are said to\ngrow exceptionally well.$" + + +gUnknown_08272FD6:: @ 8272FD6 + .string "The water is dyed a deep blue…\nWould you like to SURF?$" + + +gUnknown_0827300D:: @ 827300D + .string "{STR_VAR_1} used SURF!$" + + +gUnknown_0827301B:: @ 827301B + .string "It sounded as if a door opened\nsomewhere far away.$" + + +gUnknown_0827304E:: @ 827304E + .string "There is a big hole in the wall.$" + + +gUnknown_0827306F:: @ 827306F + .string "I’m terribly sorry.\nThe POKéMON WIRELESS CLUB is\lundergoing adjustments now.$" + + +gUnknown_082730BC:: @ 82730BC + .string "It appears to be undergoing\nadjustments…$" + + +gUnknown_082730E5:: @ 82730E5 + .string "I’m terribly sorry. The TRADE CENTER\nis undergoing inspections.$" + + +gUnknown_08273125:: @ 8273125 + .string "I’m terribly sorry. The RECORD CORNER\nis under preparation.$" + + +gUnknown_08273161:: @ 8273161 + .string "{PLAYER} handed over the\n{STR_VAR_1}.$" + + +gUnknown_08273178:: @ 8273178 + .string "Thank you for accessing the\nMYSTERY GIFT System.$" + + +gUnknown_082731A9:: @ 82731A9 + .string "{PLAYER} found one {STR_VAR_1}\n{STR_VAR_2}!$" + + +gUnknown_082731BD:: @ 82731BD + .string "The weird tree doesn’t like the\nWAILMER PAIL!\pThe weird tree attacked!$" + + +gUnknown_08273204:: @ 8273204 + .string "The {STR_VAR_1} flew away!$" + +gText_PkmnTransferredSomeonesPC:: @ 8273216 + .string "{STR_VAR_2} was transferred to\nSOMEONE’S PC.\pIt was placed in \nBOX “{STR_VAR_1}.”$" + +gText_PkmnTransferredLanettesPC:: @ 8273256 + .string "{STR_VAR_2} was transferred to\nLANETTE’S PC.\pIt was placed in \nBOX “{STR_VAR_1}.”$" + +gText_PkmnBoxSomeonesPCFull:: @ 8273296 + .string "BOX “{STR_VAR_3}” on\nSOMEONE’S PC was full.\p{STR_VAR_2} was transferred to\nBOX “{STR_VAR_1}.”$" + +gText_PkmnBoxLanettesPCFull:: @ 82732D9 + .string "BOX “{STR_VAR_3}” on\nLANETTE’S PC was full.\p{STR_VAR_2} was transferred to\nBOX “{STR_VAR_1}.”$" + + +gUnknown_0827331C:: @ 827331C + .string "There’s no more room for POKéMON!\pThe POKéMON BOXES are full and\ncan’t accept any more!$" + + +gUnknown_08273374:: @ 8273374 + .string "Do you want to give a nickname to\nthis {STR_VAR_1}?$" + + +gUnknown_0827339F:: @ 827339F + .string "There is a questionnaire.\nWould you like to fill it out?$" + + +gUnknown_082733D8:: @ 82733D8 + .string "Thank you for taking the time to\nfill out our questionnaire.\pYour feedback will be used for\nfuture reference.$" + + +gUnknown_08273446:: @ 8273446 + .string "Oh, hello!\nYou know those words?\pThat means you must know about\nthe MYSTERY GIFT.\pFrom now on, you should be\nreceiving MYSTERY GIFTS!$" + + +gUnknown_082734CC:: @ 82734CC + .string "Once you save your game, you can\naccess the MYSTERY GIFT.$" + + +gUnknown_08273506:: @ 8273506 + .string "Oh, hello!\nYou know those words?\pThat means you must know about\nthe MYSTERY EVENT.$" + + +gUnknown_08273559:: @ 8273559 + .string "Once you save your game, you can\naccess the MYSTERY EVENT.$" + + +gUnknown_08273594:: @ 8273594 + .string "Thank you for using the MYSTERY\nEVENT System.\pYou must be {PLAYER}.\nThere is a ticket here for you.$" + + +gUnknown_082735F2:: @ 82735F2 + .string "It appears to be for use at\nthe LILYCOVE CITY port.\pWhy not give it a try and see what\nit is about?$" + + +gUnknown_08273656:: @ 8273656 + .string "The massive downpour appears to\nhave stopped…$" + + +gUnknown_08273684:: @ 8273684 + .string "The intense sunshine appears to\nhave subsided…$" gUnknown_082736B3:: @ 82736B3 .incbin "baserom.gba", 0x2736b3, 0x9 @@ -412,7 +684,142 @@ gUnknown_0827E8DA:: @ 827E8DA .incbin "baserom.gba", 0x27e8da, 0x132 gUnknown_0827EA0C:: @ 827EA0C - .incbin "baserom.gba", 0x27ea0c, 0x3ff + .incbin "baserom.gba", 0x27ea0c, 0x2b0 + +gUnknown_0827ECBC:: @ 27ECBC + .incbin "baserom.gba", 0x27ecbc, 0x7 + +gUnknown_0827ECC3:: @ 27ECC3 + .incbin "baserom.gba", 0x27ecc3, 0xa + +gUnknown_0827ECCD:: @ 27ECCD + .incbin "baserom.gba", 0x27eccd, 0x8 + +gUnknown_0827ECD5:: @ 27ECD5 + .incbin "baserom.gba", 0x27ecd5, 0x8 + +gUnknown_0827ECDD:: @ 27ECDD + .incbin "baserom.gba", 0x27ecdd, 0x6 + +gUnknown_0827ECE3:: @ 27ECE3 + .incbin "baserom.gba", 0x27ece3, 0x8 + +gUnknown_0827ECEB:: @ 27ECEB + .incbin "baserom.gba", 0x27eceb, 0x7 + +gUnknown_0827ECF2:: @ 27ECF2 + .incbin "baserom.gba", 0x27ecf2, 0x6 + +gUnknown_0827ECF8:: @ 27ECF8 + .incbin "baserom.gba", 0x27ecf8, 0x8 + +gUnknown_0827ED00:: @ 27ED00 + .incbin "baserom.gba", 0x27ed00, 0x6 + +gUnknown_0827ED06:: @ 27ED06 + .incbin "baserom.gba", 0x27ed06, 0xa + +gUnknown_0827ED10:: @ 27ED10 + .incbin "baserom.gba", 0x27ed10, 0x8 + +gUnknown_0827ED18:: @ 27ED18 + .incbin "baserom.gba", 0x27ed18, 0xa + +gUnknown_0827ED22:: @ 27ED22 + .incbin "baserom.gba", 0x27ed22, 0xa + +gUnknown_0827ED2C:: @ 27ED2C + .incbin "baserom.gba", 0x27ed2c, 0xa + +gUnknown_0827ED36:: @ 27ED36 + .incbin "baserom.gba", 0x27ed36, 0xa + +gUnknown_0827ED40:: @ 27ED40 + .incbin "baserom.gba", 0x27ed40, 0x6 + +gUnknown_0827ED46:: @ 27ED46 + .incbin "baserom.gba", 0x27ed46, 0x9 + +gUnknown_0827ED4F:: @ 27ED4F + .incbin "baserom.gba", 0x27ed4f, 0xa + +gUnknown_0827ED59:: @ 27ED59 + .incbin "baserom.gba", 0x27ed59, 0xc + +gUnknown_0827ED65:: @ 27ED65 + .incbin "baserom.gba", 0x27ed65, 0xb + +gUnknown_0827ED70:: @ 27ED70 + .incbin "baserom.gba", 0x27ed70, 0x4 + +gUnknown_0827ED74:: @ 27ED74 + .incbin "baserom.gba", 0x27ed74, 0x4 + +gUnknown_0827ED78:: @ 27ED78 + .incbin "baserom.gba", 0x27ed78, 0x8 + +gUnknown_0827ED80:: @ 27ED80 + .incbin "baserom.gba", 0x27ed80, 0x15 + +gUnknown_0827ED95:: @ 27ED95 + .incbin "baserom.gba", 0x27ed95, 0x15 + +gUnknown_0827EDAA:: @ 27EDAA + .incbin "baserom.gba", 0x27edaa, 0xb + +gUnknown_0827EDB5:: @ 27EDB5 + .incbin "baserom.gba", 0x27edb5, 0x5 + +gUnknown_0827EDBA:: @ 27EDBA + .incbin "baserom.gba", 0x27edba, 0x7 + +gUnknown_0827EDC1:: @ 27EDC1 + .incbin "baserom.gba", 0x27edc1, 0x8 + +gUnknown_0827EDC9:: @ 27EDC9 + .incbin "baserom.gba", 0x27edc9, 0xc + +gUnknown_0827EDD5:: @ 27EDD5 + .incbin "baserom.gba", 0x27edd5, 0xf + +gUnknown_0827EDE4:: @ 27EDE4 + .incbin "baserom.gba", 0x27ede4, 0xc + +gUnknown_0827EDF0:: @ 27EDF0 + .incbin "baserom.gba", 0x27edf0, 0x5 + +gUnknown_0827EDF5:: @ 27EDF5 + .incbin "baserom.gba", 0x27edf5, 0x2 + +gUnknown_0827EDF7:: @ 27EDF7 + .incbin "baserom.gba", 0x27edf7, 0x2 + +gUnknown_0827EDF9:: @ 27EDF9 + .incbin "baserom.gba", 0x27edf9, 0x2 + +gUnknown_0827EDFB:: @ 27EDFB + .incbin "baserom.gba", 0x27edfb, 0x2 + +gUnknown_0827EDFD:: @ 27EDFD + .incbin "baserom.gba", 0x27edfd, 0x2 + +gUnknown_0827EDFF:: @ 27EDFF + .incbin "baserom.gba", 0x27edff, 0x2 + +gUnknown_0827EE01:: @ 27EE01 + .incbin "baserom.gba", 0x27ee01, 0x2 + +gUnknown_0827EE03:: @ 27EE03 + .incbin "baserom.gba", 0x27ee03, 0x2 + +gUnknown_0827EE05:: @ 27EE05 + .incbin "baserom.gba", 0x27ee05, 0x2 + +gUnknown_0827EE07:: @ 27EE07 + .incbin "baserom.gba", 0x27ee07, 0x2 + +gUnknown_0827EE09:: @ 27EE09 + .incbin "baserom.gba", 0x27ee09, 0x2 gUnknown_0827EE0B:: @ 827EE0B .incbin "baserom.gba", 0x27ee0b, 0x118fa diff --git a/data/evolution_graphics.s b/data/evolution_graphics.s index c357efb12..d6ad2e578 100644 --- a/data/evolution_graphics.s +++ b/data/evolution_graphics.s @@ -3,7 +3,7 @@ .section .rodata - .incbin "baserom.gba", 0x5f53c4, 0x48 + .incbin "baserom.gba", 0x5f53cc, 0x40 gUnknown_085F540C:: @ 85F540C .incbin "baserom.gba", 0x5f540c, 0x10 diff --git a/data/fanfares.s b/data/fanfares.s new file mode 100644 index 000000000..26d2d82d1 --- /dev/null +++ b/data/fanfares.s @@ -0,0 +1,8 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +sFanfares:: @ 85248BC + .incbin "baserom.gba", 0x5248bc, 0x48 diff --git a/data/field_door.s b/data/field_door.s new file mode 100644 index 000000000..69a7c6534 --- /dev/null +++ b/data/field_door.s @@ -0,0 +1,17 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_08496F8C:: @ 8496F8C + .incbin "baserom.gba", 0x496f8c, 0x14 + +gUnknown_08496FA0:: @ 8496FA0 + .incbin "baserom.gba", 0x496fa0, 0x14 + +gUnknown_08496FB4:: @ 8496FB4 + .incbin "baserom.gba", 0x496fb4, 0x1c0 + +gUnknown_08497174:: @ 8497174 + .incbin "baserom.gba", 0x497174, 0x288 diff --git a/data/field_effect.s b/data/field_effect.s new file mode 100644 index 000000000..a1ddcc247 --- /dev/null +++ b/data/field_effect.s @@ -0,0 +1,206 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + + .align 2 +gNewGameBirchPic:: @ 8553A90 + .incbin "graphics/birch_speech/birch.4bpp" + + .incbin "baserom.gba", 0x554290, 0x66c0 + + .align 2 +gNewGameBirchPalette:: @ 855A950 + .incbin "graphics/birch_speech/birch.gbapal" + + .align 2 + .incbin "baserom.gba", 0x55a970, 0x20 + + .align 2 +gFieldEffectObjectPalette4:: @ 855A990 + .incbin "graphics/map_objects/palettes/field_effect_object_palette_04.gbapal" + + .incbin "baserom.gba", 0x55a9b0, 0x480 + + .align 2 +gFieldEffectObjectPalette5:: @ 855AE30 + .incbin "graphics/map_objects/palettes/field_effect_object_palette_05.gbapal" + +gUnknown_0855AE50:: @ 855AE50 + .incbin "baserom.gba", 0x55ae50, 0x200 + +gUnknown_0855B050:: @ 855B050 + .incbin "baserom.gba", 0x55b050, 0x20 + +gUnknown_0855B070:: @ 855B070 + .incbin "baserom.gba", 0x55b070, 0x280 + +gUnknown_0855B2F0:: @ 855B2F0 + .incbin "baserom.gba", 0x55b2f0, 0x80 + +gUnknown_0855B370:: @ 855B370 + .incbin "baserom.gba", 0x55b370, 0x20 + +gUnknown_0855B390:: @ 855B390 + .incbin "baserom.gba", 0x55b390, 0x280 + +gUnknown_0855B610:: @ 855B610 + .incbin "baserom.gba", 0x55b610, 0x20 + +gUnknown_0855B630:: @ 855B630 + .incbin "baserom.gba", 0x55b630, 0xbc0 + +gUnknown_0855C1F0:: @ 855C1F0 + .incbin "baserom.gba", 0x55c1f0, 0x20 + + .align 2 +@ TODO: something else uses these too +gNewGameBirchOamAttributes:: @ 855C210 + .4byte OAM_SIZE_64x64 + .2byte 0 + + .align 2 + .incbin "baserom.gba", 0x55c218, 0x10 + + .align 2 +gNewGameBirchPicTable:: @ 855C228 + obj_tiles gNewGameBirchPic, 0x800 + + .align 2 +gNewGameBirchObjectPaletteInfo:: @ 855C230 + obj_pal gNewGameBirchPalette, 0x1006 + + .align 2 +gNewGameBirchImageAnim:: @ 855C238 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gNewGameBirchImageAnimTable:: @ 855C240 + .4byte gNewGameBirchImageAnim + + .align 2 +gNewGameBirchObjectTemplate:: @ 855C244 + .2byte 0xFFFF @ tiles tag + .2byte 0x1006 @ palette tag + .4byte gNewGameBirchOamAttributes + .4byte gNewGameBirchImageAnimTable + .4byte gNewGameBirchPicTable + .4byte gDummySpriteAffineAnimTable + .4byte SpriteCallbackDummy + + .align 2 +gFieldEffectObjectPaletteInfo4:: @ 855C25C + obj_pal gFieldEffectObjectPalette4, 0x1007 + + .align 2 +gFieldEffectObjectPaletteInfo5:: @ 855C264 + obj_pal gFieldEffectObjectPalette5, 0x1010 + + .incbin "baserom.gba", 0x55c26c, 0x40 + +gUnknown_0855C2AC:: @ 855C2AC + .incbin "baserom.gba", 0x55c2ac, 0x18 + +gUnknown_0855C2C4:: @ 855C2C4 + .incbin "baserom.gba", 0x55c2c4, 0x40 + +gUnknown_0855C304:: @ 855C304 + .incbin "baserom.gba", 0x55c304, 0x18 + +gUnknown_0855C31C:: @ 855C31C + .incbin "baserom.gba", 0x55c31c, 0x18 + +gUnknown_0855C334:: @ 855C334 + .incbin "baserom.gba", 0x55c334, 0x18 + +gUnknown_0855C34C:: @ 855C34C + .incbin "baserom.gba", 0x55c34c, 0x18 + +gUnknown_0855C364:: @ 855C364 + .incbin "baserom.gba", 0x55c364, 0x10 + +gUnknown_0855C374:: @ 855C374 + .incbin "baserom.gba", 0x55c374, 0x10 + +gUnknown_0855C384:: @ 855C384 + .incbin "baserom.gba", 0x55c384, 0x20 + +gUnknown_0855C3A4:: @ 855C3A4 + .incbin "baserom.gba", 0x55c3a4, 0x18 + +gUnknown_0855C3BC:: @ 855C3BC + .incbin "baserom.gba", 0x55c3bc, 0x4 + +gUnknown_0855C3C0:: @ 855C3C0 + .incbin "baserom.gba", 0x55c3c0, 0x4 + +gUnknown_0855C3C4:: @ 855C3C4 + .incbin "baserom.gba", 0x55c3c4, 0x4 + +gUnknown_0855C3C8:: @ 855C3C8 + .incbin "baserom.gba", 0x55c3c8, 0x1c + +gUnknown_0855C3E4:: @ 855C3E4 + .incbin "baserom.gba", 0x55c3e4, 0x18 + +gUnknown_0855C3FC:: @ 855C3FC + .incbin "baserom.gba", 0x55c3fc, 0x1c + +gUnknown_0855C418:: @ 855C418 + .incbin "baserom.gba", 0x55c418, 0x14 + +gUnknown_0855C42C:: @ 855C42C + .incbin "baserom.gba", 0x55c42c, 0xc + +gUnknown_0855C438:: @ 855C438 + .incbin "baserom.gba", 0x55c438, 0x18 + +gUnknown_0855C450:: @ 855C450 + .incbin "baserom.gba", 0x55c450, 0x10 + +gUnknown_0855C460:: @ 855C460 + .incbin "baserom.gba", 0x55c460, 0x14 + +gUnknown_0855C474:: @ 855C474 + .incbin "baserom.gba", 0x55c474, 0x8 + +gUnknown_0855C47C:: @ 855C47C + .incbin "baserom.gba", 0x55c47c, 0x8 + +gUnknown_0855C484:: @ 855C484 + .incbin "baserom.gba", 0x55c484, 0x8 + +gUnknown_0855C48C:: @ 855C48C + .incbin "baserom.gba", 0x55c48c, 0x10 + +gUnknown_0855C49C:: @ 855C49C + .incbin "baserom.gba", 0x55c49c, 0xc + +gUnknown_0855C4A8:: @ 855C4A8 + .incbin "baserom.gba", 0x55c4a8, 0x1c + +gUnknown_0855C4C4:: @ 855C4C4 + .incbin "baserom.gba", 0x55c4c4, 0x1c + +gUnknown_0855C4E0:: @ 855C4E0 + .incbin "baserom.gba", 0x55c4e0, 0x14 + +gUnknown_0855C4F4:: @ 855C4F4 + .incbin "baserom.gba", 0x55c4f4, 0x54 + +gUnknown_0855C548:: @ 855C548 + .incbin "baserom.gba", 0x55c548, 0x8 + +gUnknown_0855C550:: @ 855C550 + .incbin "baserom.gba", 0x55c550, 0x1c + +gUnknown_0855C56C:: @ 855C56C + .incbin "baserom.gba", 0x55c56c, 0x24 + +gUnknown_0855C590:: @ 855C590 + .incbin "baserom.gba", 0x55c590, 0x5c + +gUnknown_0855C5EC:: @ 855C5EC + .incbin "baserom.gba", 0x55c5ec, 0x18 diff --git a/data/field_effect_misc.s b/data/field_effect_misc.s new file mode 100644 index 000000000..88f9f1c94 --- /dev/null +++ b/data/field_effect_misc.s @@ -0,0 +1,55 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + + .align 2 + .incbin "baserom.gba", 0x58d978, 0x2a0 + + .align 2 +gFieldEffectObjectPalette7:: @ 858DC18 + .incbin "graphics/map_objects/palettes/field_effect_object_palette_07.gbapal" + + .incbin "baserom.gba", 0x58dc38, 0x580 + + .align 2 +gFieldEffectObjectPalette8:: @ 858E1B8 + .incbin "graphics/map_objects/palettes/field_effect_object_palette_08.gbapal" + + .incbin "baserom.gba", 0x58e1d8, 0x428 + +gUnknown_0858E600:: @ 858E600 + .incbin "baserom.gba", 0x58e600, 0x18 + +gUnknown_0858E618:: @ 858E618 + .incbin "baserom.gba", 0x58e618, 0x18 + +gUnknown_0858E630:: @ 858E630 + .incbin "baserom.gba", 0x58e630, 0x18 + + .align 2 +gFieldEffectObjectPaletteInfo7:: @ 858E648 + obj_pal gFieldEffectObjectPalette7, 0x1003 + + .align 2 +gFieldEffectObjectPaletteInfo8:: @ 858E650 + obj_pal gFieldEffectObjectPalette8, 0x1008 + + .incbin "baserom.gba", 0x58e658, 0x34 + +gUnknown_0858E68C:: @ 858E68C + .incbin "baserom.gba", 0x58e68c, 0x18 + + .align 2 +@ This uses one of the secret base palettes, so there is no +@ "field_effect_object_palette_09.pal" file. +gFieldEffectObjectPaletteInfo9:: @ 858E6A4 + obj_pal gTilesetPalettes_SecretBase + 5 * 0x20, 0x100E + + .incbin "baserom.gba", 0x58e6ac, 0x1b8 + +gUnknown_0858E864:: @ 858E864 + .incbin "baserom.gba", 0x58e864, 0x1c + +gUnknown_0858E880:: @ 858E880 + .incbin "baserom.gba", 0x58e880, 0x18 diff --git a/data/field_ground_effect.s b/data/field_ground_effect.s new file mode 100644 index 000000000..8b8b00cf9 --- /dev/null +++ b/data/field_ground_effect.s @@ -0,0 +1,38 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_0850E5DC:: @ 850E5DC + .incbin "baserom.gba", 0x50e5dc, 0x8 + +gUnknown_0850E5E4:: @ 850E5E4 + .incbin "baserom.gba", 0x50e5e4, 0x18 + +gUnknown_0850E5FC:: @ 850E5FC + .incbin "baserom.gba", 0x50e5fc, 0x18 + +gUnknown_0850E614:: @ 850E614 + .incbin "baserom.gba", 0x50e614, 0x10 + +gUnknown_0850E624:: @ 850E624 + .incbin "baserom.gba", 0x50e624, 0x10 + +gUnknown_0850E634:: @ 850E634 + .incbin "baserom.gba", 0x50e634, 0x10 + +gUnknown_0850E644:: @ 850E644 + .incbin "baserom.gba", 0x50e644, 0x10 + +gUnknown_0850E654:: @ 850E654 + .incbin "baserom.gba", 0x50e654, 0xc + +gUnknown_0850E660:: @ 850E660 + .incbin "baserom.gba", 0x50e660, 0x4 + +gUnknown_0850E664:: @ 850E664 + .incbin "baserom.gba", 0x50e664, 0x10 + +gUnknown_0850E674:: @ 850E674 + .incbin "baserom.gba", 0x50e674, 0xe0 diff --git a/data/field_map_obj.s b/data/field_map_obj.s new file mode 100644 index 000000000..52b39f932 --- /dev/null +++ b/data/field_map_obj.s @@ -0,0 +1,1903 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + +gUnknown_084975C4:: @ 84975C4 +@ replacing .incbin "baserom.gba", 0x004975c4, 0x10 + .byte 0x01, 0x01, 0x06, 0x07, 0x08, 0x09, 0x06, 0x07, 0x08, 0x09, 0x0b, 0x0b, 0x00, 0x00, 0x00, 0x00 + +gUnknown_084975D4:: @ 84975D4 +@ replacing .incbin "baserom.gba", 0x004975d4, 0x18 + .2byte 0, 65535 + .4byte gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, ObjectCB_CameraObject + +gUnknown_084975EC:: @ 84975EC +@ replacing .incbin "baserom.gba", 0x004975ec, 0xc + .4byte CameraObject_0 + .4byte CameraObject_1 + .4byte CameraObject_2 + +@ 84975F8 + .include "data/graphics/field_objects/field_object_graphics.inc" + +gUnknown_08505438:: @ 8505438 +@ replacing .incbin "baserom.gba", 0x00505438, 0x144 + .4byte FieldObjectCB_NoMovement1 + .4byte FieldObjectCB_LookRandomDirections + .4byte FieldObjectCB_GoRandomDirections + .4byte FieldObjectCB_RandomlyGoNorthOrSouth + .4byte FieldObjectCB_RandomlyGoNorthOrSouth + .4byte FieldObjectCB_RandomlyGoEastOrWest + .4byte FieldObjectCB_RandomlyGoEastOrWest + .4byte FieldObjectCB_FaceFixedDirection + .4byte FieldObjectCB_FaceFixedDirection + .4byte FieldObjectCB_FaceFixedDirection + .4byte FieldObjectCB_FaceFixedDirection + .4byte FieldObjectCB_NoMovement2 + .4byte FieldObjectCB_BerryTree + .4byte FieldObjectCB_RandomlyLookNorthOrSouth + .4byte FieldObjectCB_RandomlyLookEastOrWest + .4byte FieldObjectCB_RandomlyLookNorthOrWest + .4byte FieldObjectCB_RandomlyLookNorthOrEast + .4byte FieldObjectCB_RandomlyLookSouthOrWest + .4byte FieldObjectCB_RandomlyLookSouthOrEast + .4byte FieldObjectCB_RandomlyLookNorthOrSouthOrWest + .4byte FieldObjectCB_RandomlyLookNorthOrSouthOrEast + .4byte FieldObjectCB_RandomlyLookNorthOrEastOrWest + .4byte FieldObjectCB_RandomlyLookSouthOrEastOrWest + .4byte FieldObjectCB_LookAroundCounterclockwise + .4byte FieldObjectCB_LookAroundClockwise + .4byte FieldObjectCB_AlternatelyGoInOppositeDirections + .4byte FieldObjectCB_AlternatelyGoInOppositeDirections + .4byte FieldObjectCB_AlternatelyGoInOppositeDirections + .4byte FieldObjectCB_AlternatelyGoInOppositeDirections + .4byte FieldObjectCB_GoInDirectionSequence1 + .4byte FieldObjectCB_GoInDirectionSequence2 + .4byte FieldObjectCB_GoInDirectionSequence3 + .4byte FieldObjectCB_GoInDirectionSequence4 + .4byte FieldObjectCB_GoInDirectionSequence5 + .4byte FieldObjectCB_GoInDirectionSequence6 + .4byte FieldObjectCB_GoInDirectionSequence7 + .4byte FieldObjectCB_GoInDirectionSequence8 + .4byte FieldObjectCB_GoInDirectionSequence9 + .4byte FieldObjectCB_GoInDirectionSequence10 + .4byte FieldObjectCB_GoInDirectionSequence11 + .4byte FieldObjectCB_GoInDirectionSequence12 + .4byte FieldObjectCB_GoInDirectionSequence13 + .4byte FieldObjectCB_GoInDirectionSequence14 + .4byte FieldObjectCB_GoInDirectionSequence15 + .4byte FieldObjectCB_GoInDirectionSequence16 + .4byte FieldObjectCB_GoInDirectionSequence17 + .4byte FieldObjectCB_GoInDirectionSequence18 + .4byte FieldObjectCB_GoInDirectionSequence19 + .4byte FieldObjectCB_GoInDirectionSequence20 + .4byte FieldObjectCB_GoInDirectionSequence21 + .4byte FieldObjectCB_GoInDirectionSequence22 + .4byte FieldObjectCB_GoInDirectionSequence23 + .4byte FieldObjectCB_GoInDirectionSequence24 + .4byte FieldObjectCB_CopyPlayer1 + .4byte FieldObjectCB_CopyPlayer1 + .4byte FieldObjectCB_CopyPlayer1 + .4byte FieldObjectCB_CopyPlayer1 + .4byte FieldObjectCB_TreeDisguise + .4byte FieldObjectCB_MountainDisguise + .4byte FieldObjectCB_CopyPlayer2 + .4byte FieldObjectCB_CopyPlayer2 + .4byte FieldObjectCB_CopyPlayer2 + .4byte FieldObjectCB_CopyPlayer2 + .4byte FieldObjectCB_Hidden1 + .4byte FieldObjectCB_WalkInPlace1 + .4byte FieldObjectCB_WalkInPlace1 + .4byte FieldObjectCB_WalkInPlace1 + .4byte FieldObjectCB_WalkInPlace1 + .4byte FieldObjectCB_WalkInPlace2 + .4byte FieldObjectCB_WalkInPlace2 + .4byte FieldObjectCB_WalkInPlace2 + .4byte FieldObjectCB_WalkInPlace2 + .4byte FieldObjectCB_WalkInPlace3 + .4byte FieldObjectCB_WalkInPlace3 + .4byte FieldObjectCB_WalkInPlace3 + .4byte FieldObjectCB_WalkInPlace3 + .4byte FieldObjectCB_Hidden2 + .4byte FieldObjectCB_WalkInPlace4 + .4byte FieldObjectCB_WalkInPlace4 + .4byte FieldObjectCB_WalkInPlace4 + .4byte FieldObjectCB_WalkInPlace4 + +gUnknown_0850557C:: @ 850557C +@ replacing .incbin "baserom.gba", 0x0050557c, 0x51 + .byte 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 + .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + +gUnknown_085055CD:: @ 85055CD +@ replacing .incbin "baserom.gba", 0x005055cd, 0x51 + .byte 0x01, 0x01, 0x01, 0x02, 0x01, 0x03, 0x04, 0x02, 0x01, 0x03, 0x04, 0x01, 0x01, 0x01, 0x03, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x02, 0x01, 0x01, 0x01, 0x02, 0x01, 0x03, 0x04, 0x02, 0x04, 0x01 + .byte 0x03, 0x02, 0x03, 0x01, 0x04, 0x03, 0x02, 0x04, 0x01, 0x04, 0x02, 0x03, 0x01, 0x02, 0x01, 0x03, 0x04, 0x02, 0x01, 0x03, 0x04, 0x02, 0x01, 0x03, 0x04, 0x01, 0x01, 0x02, 0x01, 0x03, 0x04, 0x01 + .byte 0x01, 0x02, 0x03, 0x04, 0x01, 0x02, 0x03, 0x04, 0x01, 0x02, 0x03, 0x04, 0x01, 0x01, 0x02, 0x03, 0x04 + + .align 2, 0 +@ 8505620 + .include "data/graphics/field_objects/field_object_graphics_info_pointers.inc" + +@ 85059F8 + .include "data/graphics/field_objects/field_effect_object_template_pointers.inc" + +@ 8505A8C + .include "data/graphics/field_objects/field_object_pic_tables.inc" + +@ 85089FC + .include "data/graphics/field_objects/field_object_anims.inc" + +gUnknown_085094AC:: @ 85094AC +@ replacing .incbin "baserom.gba", 0x005094ac, 0x40 + .4byte gFieldObjectImageAnimTable_QuintyPlump + .byte 1, 3, 0, 2 + .4byte gFieldObjectImageAnimTable_Standard + .byte 1, 3, 0, 2 + .4byte gFieldObjectImageAnimTable_BrendanMayNormal + .byte 1, 3, 0, 2 + .4byte gFieldObjectImageAnimTable_AcroBike + .byte 1, 3, 0, 2 + .4byte gFieldObjectImageAnimTable_Surfing + .byte 1, 3, 0, 2 + .4byte gFieldObjectImageAnimTable_Nurse + .byte 1, 3, 0, 2 + .4byte gFieldObjectImageAnimTable_Fishing + .byte 1, 3, 0, 2 + .4byte NULL + .byte 0, 0, 0, 0 + +@ 85094EC + .include "data/graphics/field_objects/field_object_oam.inc" + +@ 8509954 + .include "data/graphics/field_objects/field_object_graphics_info.inc" + +gUnknown_0850BBC8:: @ 850BBC8 +@ replacing .incbin "baserom.gba", 0x0050bbc8, 0x138 + .align 2, 0 + .4byte gFieldObjectPalette0 + .2byte 4355 + .align 2, 0 + .4byte gFieldObjectPalette1 + .2byte 4356 + .align 2, 0 + .4byte gFieldObjectPalette2 + .2byte 4357 + .align 2, 0 + .4byte gFieldObjectPalette3 + .2byte 4358 + .align 2, 0 + .4byte gFieldObjectPalette4 + .2byte 4359 + .align 2, 0 + .4byte gFieldObjectPalette5 + .2byte 4360 + .align 2, 0 + .4byte gFieldObjectPalette6 + .2byte 4361 + .align 2, 0 + .4byte gFieldObjectPalette7 + .2byte 4362 + .align 2, 0 + .4byte gFieldObjectPalette8 + .2byte 4352 + .align 2, 0 + .4byte gFieldObjectPalette9 + .2byte 4353 + .align 2, 0 + .4byte gFieldObjectPalette10 + .2byte 4354 + .align 2, 0 + .4byte gFieldObjectPalette11 + .2byte 4373 + .align 2, 0 + .4byte gFieldObjectPalette12 + .2byte 4363 + .align 2, 0 + .4byte gFieldObjectPalette13 + .2byte 4364 + .align 2, 0 + .4byte gFieldObjectPalette14 + .2byte 4365 + .align 2, 0 + .4byte gFieldObjectPalette15 + .2byte 4366 + .align 2, 0 + .4byte gFieldObjectPalette16 + .2byte 4367 + .align 2, 0 + .4byte gFieldObjectPalette17 + .2byte 4368 + .align 2, 0 + .4byte gFieldObjectPalette18 + .2byte 4369 + .align 2, 0 + .4byte gFieldObjectPalette19 + .2byte 4370 + .align 2, 0 + .4byte gFieldObjectPalette20 + .2byte 4371 + .align 2, 0 + .4byte gFieldObjectPalette21 + .2byte 4372 + .align 2, 0 + .4byte gFieldObjectPalette22 + .2byte 4374 + .align 2, 0 + .4byte gFieldObjectPalette23 + .2byte 4375 + .align 2, 0 + .4byte gFieldObjectPalette24 + .2byte 4376 + .align 2, 0 + .4byte gFieldObjectPalette25 + .2byte 4377 + .align 2, 0 + .4byte gFieldObjectPalette26 + .2byte 4379 + .align 2, 0 + .4byte gFieldObjectPalette27 + .2byte 4380 + .align 2, 0 + .4byte gFieldObjectPalette28 + .2byte 4381 + .align 2, 0 + .4byte gFieldObjectPalette29 + .2byte 4382 + .align 2, 0 + .4byte gFieldObjectPalette30 + .2byte 4383 + .align 2, 0 + .4byte gFieldObjectPalette31 + .2byte 4384 + .align 2, 0 + .4byte gFieldObjectPalette32 + .2byte 4385 + .align 2, 0 + .4byte gFieldObjectPalette33 + .2byte 4386 + .align 2, 0 + .4byte gFieldObjectPalette34 + .2byte 4387 + .align 2, 0 + .4byte NULL + .2byte 0 + .align 2, 0 + +Unknown_0850BCE8:: @ 0850BCE8 +@ replacing .incbin "baserom.gba", 0x0050bce8, 0x8 +.2byte 0x1101, 0x1101, 0x1101, 0x1101 + +Unknown_0850BCF0:: @ 0850BCF0 +@ replacing .incbin "baserom.gba", 0x0050bcf0, 0x8 +.2byte 0x1111, 0x1111, 0x1111, 0x1111 + +Unknown_0850BCF8:: @ 0850BCF8 +@ replacing .incbin "baserom.gba", 0x0050bcf8, 0x8 +.2byte 0x1115, 0x1115, 0x1115, 0x1115 + +gUnknown_0850BD00:: @ 850BD00 +@ replacing .incbin "baserom.gba", 0x0050bd00, 0x78 + .2byte 4352, 0 + .4byte Unknown_0850BCE8 + .2byte 4368, 0 + .4byte Unknown_0850BCF0 + .2byte 4373, 0 + .4byte Unknown_0850BCF8 + .2byte 4607, 0 + .4byte NULL + +Unknown_0850BD20:: @ 0850BD20 +@ replacing .incbin "baserom.gba", 0x0050bd20, 0x8 +.2byte 0x110c, 0x110c, 0x110c, 0x110c + +Unknown_0850BD28:: @ 0x0850bd28 +@ replacing .incbin "baserom.gba", 0x0050bd28, 0x8 +.2byte 0x110d, 0x110d, 0x110d, 0x110d + +Unknown_0850BD30:: @ 0x0850bd30 +@ replacing .incbin "baserom.gba", 0x0050bd30, 0x8 +.2byte 0x110e, 0x110e, 0x110e, 0x110e + +Unknown_0850BD38:: @ 0x0850bd38 +@ replacing .incbin "baserom.gba", 0x0050bd38, 0x8 +.2byte 0x1112, 0x1112, 0x1112, 0x1112 + +Unknown_0850BD40:: @ 0x0850bd40 +@ replacing .incbin "baserom.gba", 0x0050bd40, 0x8 +.2byte 0x1113, 0x1113, 0x1113, 0x1113 + +Unknown_0850BD48:: @ 0x0850bd48 +@ replacing .incbin "baserom.gba", 0x0050bd48, 0x8 +.2byte 0x1114, 0x1114, 0x1114, 0x1114 + +Unknown_0850BD50:: @ 0x0850bd50 +@ replacing .incbin "baserom.gba", 0x0050bd50, 0x8 +.2byte 0x111b, 0x111b, 0x111b, 0x111b + +Unknown_0850BD58:: @ 0x0850bd58 +@ replacing .incbin "baserom.gba", 0x0050bd58, 0x8 +.2byte 0x1117, 0x1117, 0x1117, 0x1117 + +Unknown_0850BD60:: @ 0x0850bd60 +@ replacing .incbin "baserom.gba", 0x0050bd60, 0x8 +.2byte 0x1119, 0x1119, 0x1119, 0x1119 + +Unknown_0850BD68:: @ 0x0850bd68 +@ replacing .incbin "baserom.gba", 0x0050bd68, 0x8 +.2byte 0x1109, 0x1109, 0x1109, 0x1109 + +Unknown_0850BD70:: @ 0x0850bd70 +@ replacing .incbin "baserom.gba", 0x0050bd70, 0x8 +.2byte 0x111d, 0x111d, 0x111d, 0x111d + +gUnknown_0850BD78:: @ 850BD78 +@ replacing .incbin "baserom.gba", 0x0050bd78, 0xc0 + .2byte 4352, 0 + .4byte Unknown_0850BCE8 + .2byte 4368, 0 + .4byte Unknown_0850BCF0 + .2byte 4363, 0 + .4byte Unknown_0850BD20 + .2byte 4365, 0 + .4byte Unknown_0850BD28 + .2byte 4366, 0 + .4byte Unknown_0850BD30 + .2byte 4370, 0 + .4byte Unknown_0850BD38 + .2byte 4371, 0 + .4byte Unknown_0850BD40 + .2byte 4372, 0 + .4byte Unknown_0850BD48 + .2byte 4374, 0 + .4byte Unknown_0850BD58 + .2byte 4376, 0 + .4byte Unknown_0850BD60 + .2byte 4357, 0 + .4byte Unknown_0850BD68 + .2byte 4379, 0 + .4byte Unknown_0850BD50 + .2byte 4381, 0 + .4byte Unknown_0850BD70 + .2byte 4607, 0 + .4byte NULL + +gUnknown_0850BDE8:: @ 850BDE8 +@ replacing .incbin "baserom.gba", 0x0050bde8, 0x50 + .2byte 0x1100, 0x1101, 0x1103, 0x1104, 0x1105, 0x1106, 0x1107, 0x1108, 0x1109, 0x110a +gUnknown_0850BDFC:: + .2byte 0x1100, 0x1101, 0x1103, 0x1104, 0x1105, 0x1106, 0x1107, 0x1108, 0x1109, 0x110a +gUnknown_0850BE10:: + .2byte 0x1100, 0x1101, 0x1103, 0x1104, 0x1105, 0x1106, 0x1107, 0x1108, 0x1109, 0x110a +gUnknown_0850BE24:: + .2byte 0x1100, 0x1101, 0x1103, 0x1104, 0x1105, 0x1106, 0x1107, 0x1108, 0x1109, 0x110a + +gUnknown_0850BE38:: @ 850BE38 +@ replacing .incbin "baserom.gba", 0x0050be38, 0x10 + .4byte gUnknown_0850BDE8 + .4byte gUnknown_0850BDFC + .4byte gUnknown_0850BE10 + .4byte gUnknown_0850BE24 + +@ 850BE48 + .include "data/graphics/field_objects/berry_tree_graphics_tables.inc" + +@ 850C9C0 + .include "data/graphics/field_objects/field_effect_objects.inc" + +@ replacing .incbin "baserom.gba", 0x0050d6d4, 0x8 + .align 2, 0 + .4byte gFieldObjectPalette2 + .2byte 4113 + + .align 2, 0 +gUnknown_0850D6DC:: @ 850D6DC +@ replacing .incbin "baserom.gba", 0x0050d6dc, 0x10 + .2byte 0x0020, 0x0040, 0x0060, 0x0080, 0x0020, 0x0040, 0x0080, 0x00c0 + +gUnknown_0850D6EC:: @ 850D6EC +@ replacing .incbin "baserom.gba", 0x0050d6ec, 0x8 + .2byte 0x0020, 0x0030, 0x0040, 0x0050 + +gUnknown_0850D6F4:: @ 850D6F4 +@ replacing .incbin "baserom.gba", 0x0050d6f4, 0x1c + .4byte sub_808F44C + .4byte sub_808F460 + .4byte sub_808F48C + .4byte sub_808F4C8 + .4byte sub_808F4E8 + .4byte sub_808F534 + .4byte sub_808F564 + +gUnknown_0850D710:: @ 850D710 +@ replacing .incbin "baserom.gba", 0x0050d710, 0x4 + .byte 0x01, 0x02, 0x03, 0x04 + +gUnknown_0850D714:: @ 850D714 +@ replacing .incbin "baserom.gba", 0x0050d714, 0x2c + .4byte GetRegularRunningPastFacingDirection + .4byte GetNorthSouthRunningPastFacingDirection + .4byte GetEastWestRunningPastFacingDirection + .4byte GetNorthEastRunningPastFacingDirection + .4byte GetNorthWestRunningPastFacingDirection + .4byte GetSouthEastRunningPastFacingDirection + .4byte GetSouthWestRunningPastFacingDirection + .4byte GetNonEastRunningPastFacingDirection + .4byte GetNonWestRunningPastFacingDirection + .4byte GetNonSouthRunningPastFacingDirection + .4byte GetNonNorthRunningPastFacingDirection + +gUnknown_0850D740:: @ 850D740 +@ replacing .incbin "baserom.gba", 0x0050d740, 0x14 + .4byte sub_808F988 + .4byte sub_808F99C + .4byte sub_808F9C8 + .4byte sub_808FA0C + .4byte sub_808FA3C + +gUnknown_0850D754:: @ 850D754 +@ replacing .incbin "baserom.gba", 0x0050d754, 0x1c + .4byte sub_808FAC8 + .4byte sub_808FADC + .4byte sub_808FB08 + .4byte sub_808FB44 + .4byte sub_808FB64 + .4byte sub_808FBB0 + .4byte sub_808FBE0 + +gUnknown_0850D770:: @ 850D770 +@ replacing .incbin "baserom.gba", 0x0050d770, 0x4 + .byte 0x01, 0x02, 0x00, 0x00 + +gUnknown_0850D774:: @ 850D774 +@ replacing .incbin "baserom.gba", 0x0050d774, 0x1c + .4byte sub_808FC4C + .4byte sub_808FC60 + .4byte sub_808FC8C + .4byte sub_808FCC8 + .4byte sub_808FCE8 + .4byte sub_808FD34 + .4byte sub_808FD64 + +gUnknown_0850D790:: @ 850D790 +@ replacing .incbin "baserom.gba", 0x0050d790, 0x4 + .byte 0x03, 0x04, 0x00, 0x00 + +gUnknown_0850D794:: @ 850D794 +@ replacing .incbin "baserom.gba", 0x0050d794, 0xc + .4byte sub_808FDD0 + .4byte sub_808FDFC + .4byte sub_808FE1C + +gUnknown_0850D7A0:: @ 850D7A0 +@ replacing .incbin "baserom.gba", 0x0050d7a0, 0x14 + .4byte do_berry_tree_growth_sparkle_1 + .4byte sub_808FF48 + .4byte do_berry_tree_growth_sparkle_2 + .4byte sub_808FFB4 + .4byte sub_8090004 + +gUnknown_0850D7B4:: @ 850D7B4 +@ replacing .incbin "baserom.gba", 0x0050d7b4, 0x14 + .4byte sub_8090094 + .4byte sub_80900A8 + .4byte sub_80900D4 + .4byte sub_8090118 + .4byte sub_8090148 + +gUnknown_0850D7C8:: @ 850D7C8 +@ replacing .incbin "baserom.gba", 0x0050d7c8, 0x14 + .4byte sub_80901D4 + .4byte sub_80901E8 + .4byte sub_8090214 + .4byte sub_8090258 + .4byte sub_8090288 + +gUnknown_0850D7DC:: @ 850D7DC +@ replacing .incbin "baserom.gba", 0x0050d7dc, 0x14 + .4byte sub_8090314 + .4byte sub_8090328 + .4byte sub_8090354 + .4byte sub_8090398 + .4byte sub_80903C8 + +gUnknown_0850D7F0:: @ 850D7F0 +@ replacing .incbin "baserom.gba", 0x0050d7f0, 0x4 + .byte 0x02, 0x03, 0x00, 0x00 + +gUnknown_0850D7F4:: @ 850D7F4 +@ replacing .incbin "baserom.gba", 0x0050d7f4, 0x14 + .4byte sub_8090454 + .4byte sub_8090468 + .4byte sub_8090494 + .4byte sub_80904D8 + .4byte sub_8090508 + +gUnknown_0850D808:: @ 850D808 +@ replacing .incbin "baserom.gba", 0x0050d808, 0x4 + .byte 0x02, 0x04, 0x00, 0x00 + +gUnknown_0850D80C:: @ 850D80C +@ replacing .incbin "baserom.gba", 0x0050d80c, 0x14 + .4byte sub_8090594 + .4byte sub_80905A8 + .4byte sub_80905D4 + .4byte sub_8090618 + .4byte sub_8090648 + +gUnknown_0850D820:: @ 850D820 +@ replacing .incbin "baserom.gba", 0x0050d820, 0x4 + .byte 0x01, 0x03, 0x00, 0x00 + +gUnknown_0850D824:: @ 850D824 +@ replacing .incbin "baserom.gba", 0x0050d824, 0x14 + .4byte sub_80906D4 + .4byte sub_80906E8 + .4byte sub_8090714 + .4byte sub_8090758 + .4byte sub_8090788 + +gUnknown_0850D838:: @ 850D838 +@ replacing .incbin "baserom.gba", 0x0050d838, 0x4 + .byte 0x01, 0x04, 0x00, 0x00 + +gUnknown_0850D83C:: @ 850D83C +@ replacing .incbin "baserom.gba", 0x0050d83c, 0x14 + .4byte sub_8090814 + .4byte sub_8090828 + .4byte sub_8090854 + .4byte sub_8090898 + .4byte sub_80908C8 + +gUnknown_0850D850:: @ 850D850 +@ replacing .incbin "baserom.gba", 0x0050d850, 0x4 + .byte 0x02, 0x01, 0x03, 0x01 + +gUnknown_0850D854:: @ 850D854 +@ replacing .incbin "baserom.gba", 0x0050d854, 0x14 + .4byte sub_8090954 + .4byte sub_8090968 + .4byte sub_8090994 + .4byte sub_80909D8 + .4byte sub_8090A08 + +gUnknown_0850D868:: @ 850D868 +@ replacing .incbin "baserom.gba", 0x0050d868, 0x4 + .byte 0x01, 0x02, 0x04, 0x01 + +gUnknown_0850D86C:: @ 850D86C +@ replacing .incbin "baserom.gba", 0x0050d86c, 0x14 + .4byte sub_8090A94 + .4byte sub_8090AA8 + .4byte sub_8090AD4 + .4byte sub_8090B18 + .4byte sub_8090B48 + +gUnknown_0850D880:: @ 850D880 +@ replacing .incbin "baserom.gba", 0x0050d880, 0x4 + .byte 0x02, 0x03, 0x04, 0x02 + +gUnknown_0850D884:: @ 850D884 +@ replacing .incbin "baserom.gba", 0x0050d884, 0x14 + .4byte sub_8090BD4 + .4byte sub_8090BE8 + .4byte sub_8090C14 + .4byte sub_8090C58 + .4byte sub_8090C88 + +gUnknown_0850D898:: @ 850D898 +@ replacing .incbin "baserom.gba", 0x0050d898, 0x4 + .byte 0x03, 0x04, 0x01, 0x01 + +gUnknown_0850D89C:: @ 850D89C +@ replacing .incbin "baserom.gba", 0x0050d89c, 0x10 + .4byte sub_8090D14 + .4byte sub_8090D40 + .4byte sub_8090D64 + .4byte sub_8090D90 + +gUnknown_0850D8AC:: @ 850D8AC +@ replacing .incbin "baserom.gba", 0x0050d8ac, 0x8 + .byte 0x01, 0x04, 0x03, 0x01, 0x02, 0x00, 0x00, 0x00 + +gUnknown_0850D8B4:: @ 850D8B4 +@ replacing .incbin "baserom.gba", 0x0050d8b4, 0x10 + .4byte sub_8090E18 + .4byte sub_8090E44 + .4byte sub_8090E68 + .4byte sub_8090E94 + +gUnknown_0850D8C4:: @ 850D8C4 +@ replacing .incbin "baserom.gba", 0x0050d8c4, 0x8 + .byte 0x01, 0x03, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00 + +gUnknown_0850D8CC:: @ 850D8CC +@ replacing .incbin "baserom.gba", 0x0050d8cc, 0x10 + .4byte sub_8090F1C + .4byte sub_8090F30 + .4byte sub_8090F68 + .4byte sub_8091020 + +gUnknown_0850D8DC:: @ 850D8DC +@ replacing .incbin "baserom.gba", 0x0050d8dc, 0xc + .4byte sub_8091048 + .4byte sub_809117C + .4byte sub_8091110 + +gUnknown_0850D8E8:: @ 850D8E8 +@ replacing .incbin "baserom.gba", 0x0050d8e8, 0x4 + .byte 0x02, 0x04, 0x03, 0x01 + +gUnknown_0850D8EC:: @ 850D8EC +@ replacing .incbin "baserom.gba", 0x0050d8ec, 0xc + .4byte sub_8091048 + .4byte sub_8091208 + .4byte sub_8091110 + +gUnknown_0850D8F8:: @ 850D8F8 +@ replacing .incbin "baserom.gba", 0x0050d8f8, 0x4 + .byte 0x04, 0x03, 0x01, 0x02 + +gUnknown_0850D8FC:: @ 850D8FC +@ replacing .incbin "baserom.gba", 0x0050d8fc, 0xc + .4byte sub_8091048 + .4byte sub_8091294 + .4byte sub_8091110 + +gUnknown_0850D908:: @ 850D908 +@ replacing .incbin "baserom.gba", 0x0050d908, 0x4 + .byte 0x01, 0x02, 0x04, 0x03 + +gUnknown_0850D90C:: @ 850D90C +@ replacing .incbin "baserom.gba", 0x0050d90c, 0xc + .4byte sub_8091048 + .4byte sub_8091320 + .4byte sub_8091110 + +gUnknown_0850D918:: @ 850D918 +@ replacing .incbin "baserom.gba", 0x0050d918, 0x4 + .byte 0x03, 0x01, 0x02, 0x04 + +gUnknown_0850D91C:: @ 850D91C +@ replacing .incbin "baserom.gba", 0x0050d91c, 0xc + .4byte sub_8091048 + .4byte sub_80913AC + .4byte sub_8091110 + +gUnknown_0850D928:: @ 850D928 +@ replacing .incbin "baserom.gba", 0x0050d928, 0x4 + .byte 0x02, 0x03, 0x04, 0x01 + +gUnknown_0850D92C:: @ 850D92C +@ replacing .incbin "baserom.gba", 0x0050d92c, 0xc + .4byte sub_8091048 + .4byte sub_8091438 + .4byte sub_8091110 + +gUnknown_0850D938:: @ 850D938 +@ replacing .incbin "baserom.gba", 0x0050d938, 0x4 + .byte 0x03, 0x04, 0x01, 0x02 + +gUnknown_0850D93C:: @ 850D93C +@ replacing .incbin "baserom.gba", 0x0050d93c, 0xc + .4byte sub_8091048 + .4byte sub_80914C4 + .4byte sub_8091110 + +gUnknown_0850D948:: @ 850D948 +@ replacing .incbin "baserom.gba", 0x0050d948, 0xc + .4byte sub_8091048 + .4byte sub_8091550 + .4byte sub_8091110 + +gUnknown_0850D954:: @ 850D954 +@ replacing .incbin "baserom.gba", 0x0050d954, 0x4 + .byte 0x04, 0x01, 0x02, 0x03 + +gUnknown_0850D958:: @ 850D958 +@ replacing .incbin "baserom.gba", 0x0050d958, 0xc + .4byte sub_8091048 + .4byte sub_80915DC + .4byte sub_8091110 + +gUnknown_0850D964:: @ 850D964 +@ replacing .incbin "baserom.gba", 0x0050d964, 0x4 + .byte 0x03, 0x02, 0x01, 0x04 + +gUnknown_0850D968:: @ 850D968 +@ replacing .incbin "baserom.gba", 0x0050d968, 0xc + .4byte sub_8091048 + .4byte sub_8091668 + .4byte sub_8091110 + +gUnknown_0850D974:: @ 850D974 +@ replacing .incbin "baserom.gba", 0x0050d974, 0x4 + .byte 0x02, 0x01, 0x04, 0x03 + +gUnknown_0850D978:: @ 850D978 +@ replacing .incbin "baserom.gba", 0x0050d978, 0xc + .4byte sub_8091048 + .4byte sub_80916F4 + .4byte sub_8091110 + +gUnknown_0850D984:: @ 850D984 +@ replacing .incbin "baserom.gba", 0x0050d984, 0x4 + .byte 0x04, 0x03, 0x02, 0x01 + +gUnknown_0850D988:: @ 850D988 +@ replacing .incbin "baserom.gba", 0x0050d988, 0xc + .4byte sub_8091048 + .4byte sub_8091780 + .4byte sub_8091110 + +gUnknown_0850D994:: @ 850D994 +@ replacing .incbin "baserom.gba", 0x0050d994, 0x4 + .byte 0x01, 0x04, 0x03, 0x02 + +gUnknown_0850D998:: @ 850D998 +@ replacing .incbin "baserom.gba", 0x0050d998, 0xc + .4byte sub_8091048 + .4byte sub_809180C + .4byte sub_8091110 + +gUnknown_0850D9A4:: @ 850D9A4 +@ replacing .incbin "baserom.gba", 0x0050d9a4, 0x4 + .byte 0x04, 0x02, 0x01, 0x03 + +gUnknown_0850D9A8:: @ 850D9A8 +@ replacing .incbin "baserom.gba", 0x0050d9a8, 0xc + .4byte sub_8091048 + .4byte sub_8091898 + .4byte sub_8091110 + +gUnknown_0850D9B4:: @ 850D9B4 +@ replacing .incbin "baserom.gba", 0x0050d9b4, 0x4 + .byte 0x02, 0x01, 0x03, 0x04 + +gUnknown_0850D9B8:: @ 850D9B8 +@ replacing .incbin "baserom.gba", 0x0050d9b8, 0xc + .4byte sub_8091048 + .4byte sub_8091924 + .4byte sub_8091110 + +gUnknown_0850D9C4:: @ 850D9C4 +@ replacing .incbin "baserom.gba", 0x0050d9c4, 0x4 + .byte 0x03, 0x04, 0x02, 0x01 + +gUnknown_0850D9C8:: @ 850D9C8 +@ replacing .incbin "baserom.gba", 0x0050d9c8, 0xc + .4byte sub_8091048 + .4byte sub_80919B0 + .4byte sub_8091110 + +gUnknown_0850D9D4:: @ 850D9D4 +@ replacing .incbin "baserom.gba", 0x0050d9d4, 0x4 + .byte 0x01, 0x03, 0x04, 0x02 + +gUnknown_0850D9D8:: @ 850D9D8 +@ replacing .incbin "baserom.gba", 0x0050d9d8, 0xc + .4byte sub_8091048 + .4byte sub_8091A3C + .4byte sub_8091110 + +gUnknown_0850D9E4:: @ 850D9E4 +@ replacing .incbin "baserom.gba", 0x0050d9e4, 0x4 + .byte 0x02, 0x03, 0x01, 0x04 + +gUnknown_0850D9E8:: @ 850D9E8 +@ replacing .incbin "baserom.gba", 0x0050d9e8, 0xc + .4byte sub_8091048 + .4byte sub_8091AC8 + .4byte sub_8091110 + +gUnknown_0850D9F4:: @ 850D9F4 +@ replacing .incbin "baserom.gba", 0x0050d9f4, 0x4 + .byte 0x01, 0x04, 0x02, 0x03 + +gUnknown_0850D9F8:: @ 850D9F8 +@ replacing .incbin "baserom.gba", 0x0050d9f8, 0xc + .4byte sub_8091048 + .4byte sub_8091B54 + .4byte sub_8091110 + +gUnknown_0850DA04:: @ 850DA04 +@ replacing .incbin "baserom.gba", 0x0050da04, 0x4 + .byte 0x03, 0x01, 0x04, 0x02 + +gUnknown_0850DA08:: @ 850DA08 +@ replacing .incbin "baserom.gba", 0x0050da08, 0xc + .4byte sub_8091048 + .4byte sub_8091BE0 + .4byte sub_8091110 + +gUnknown_0850DA14:: @ 850DA14 +@ replacing .incbin "baserom.gba", 0x0050da14, 0x4 + .byte 0x04, 0x02, 0x03, 0x01 + +gUnknown_0850DA18:: @ 850DA18 +@ replacing .incbin "baserom.gba", 0x0050da18, 0xc + .4byte sub_8091048 + .4byte sub_8091C6C + .4byte sub_8091110 + +gUnknown_0850DA24:: @ 850DA24 +@ replacing .incbin "baserom.gba", 0x0050da24, 0x4 + .byte 0x02, 0x04, 0x01, 0x03 + +gUnknown_0850DA28:: @ 850DA28 +@ replacing .incbin "baserom.gba", 0x0050da28, 0xc + .4byte sub_8091048 + .4byte sub_8091CF8 + .4byte sub_8091110 + +gUnknown_0850DA34:: @ 850DA34 +@ replacing .incbin "baserom.gba", 0x0050da34, 0x4 + .byte 0x01, 0x03, 0x02, 0x04 + +gUnknown_0850DA38:: @ 850DA38 +@ replacing .incbin "baserom.gba", 0x0050da38, 0xc + .4byte sub_8091048 + .4byte sub_8091D84 + .4byte sub_8091110 + +gUnknown_0850DA44:: @ 850DA44 +@ replacing .incbin "baserom.gba", 0x0050da44, 0x4 + .byte 0x03, 0x02, 0x04, 0x01 + +gUnknown_0850DA48:: @ 850DA48 +@ replacing .incbin "baserom.gba", 0x0050da48, 0xc + .4byte sub_8091048 + .4byte sub_8091E10 + .4byte sub_8091110 + +gUnknown_0850DA54:: @ 850DA54 +@ replacing .incbin "baserom.gba", 0x0050da54, 0x4 + .byte 0x04, 0x01, 0x03, 0x02 + +gUnknown_0850DA58:: @ 850DA58 +@ replacing .incbin "baserom.gba", 0x0050da58, 0xc + .4byte mss_npc_reset_oampriv3_1_unk2_unk3 + .4byte sub_8091EC0 + .4byte sub_8091F20 + +gUnknown_0850DA64:: @ 850DA64 +@ replacing .incbin "baserom.gba", 0x0050da64, 0x2c + .4byte sub_8091F48 + .4byte sub_8091F4C + .4byte sub_8091F94 + .4byte sub_80920A4 + .4byte sub_809215C + .4byte sub_8092214 + .4byte cph_IM_DIFFERENT + .4byte sub_8092314 + .4byte oac_hopping + .4byte sub_8091F48 + .4byte sub_8091F48 + +gUnknown_0850DA90:: @ 850DA90 +@ replacing .incbin "baserom.gba", 0x0050da90, 0xc + .4byte mss_npc_reset_oampriv3_1_unk2_unk3 + .4byte mss_08062EA4 + .4byte sub_8091F20 + +gUnknown_0850DA9C:: @ 850DA9C +@ replacing .incbin "baserom.gba", 0x0050da9c, 0x4 + .4byte sub_80926AC + +gUnknown_0850DAA0:: @ 850DAA0 +@ replacing .incbin "baserom.gba", 0x0050daa0, 0x8 + .4byte sub_8092718 + .4byte sub_80926B8 + +gUnknown_0850DAA8:: @ 850DAA8 +@ replacing .incbin "baserom.gba", 0x0050daa8, 0x8 + .4byte sub_8092788 + .4byte sub_80926B8 + +gUnknown_0850DAB0:: @ 850DAB0 +@ replacing .incbin "baserom.gba", 0x0050dab0, 0x8 + .4byte sub_80927F8 + .4byte sub_80926B8 + +gUnknown_0850DAB8:: @ 850DAB8 +@ replacing .incbin "baserom.gba", 0x0050dab8, 0x8 + .4byte sub_8092868 + .4byte sub_80926B8 + +gUnknown_0850DAC0:: @ 850DAC0 +@ replacing .incbin "baserom.gba", 0x0050dac0, 0xc + .4byte sub_80928D8 + .4byte sub_809290C + .4byte sub_809292C + +gUnknown_0850DACC:: @ 850DACC +@ replacing .incbin "baserom.gba", 0x0050dacc, 0x9 + .byte 0x00, 0x00, 0x01, 0x02, 0x03, 0x00, 0x00, 0x01, 0x01 + +gUnknown_0850DAD5:: @ 850DAD5 +@ replacing .incbin "baserom.gba", 0x0050dad5, 0x9 + .byte 0x04, 0x04, 0x05, 0x06, 0x07, 0x04, 0x04, 0x05, 0x05 + +gUnknown_0850DADE:: @ 850DADE +@ replacing .incbin "baserom.gba", 0x0050dade, 0x9 + .byte 0x08, 0x08, 0x09, 0x0a, 0x0b, 0x08, 0x08, 0x09, 0x09 + +gUnknown_0850DAE7:: @ 850DAE7 +@ replacing .incbin "baserom.gba", 0x0050dae7, 0x9 + .byte 0x0c, 0x0c, 0x0d, 0x0e, 0x0f, 0x0c, 0x0c, 0x0d, 0x0d + +gUnknown_0850DAF0:: @ 850DAF0 +@ replacing .incbin "baserom.gba", 0x0050daf0, 0x9 + .byte 0x10, 0x10, 0x11, 0x12, 0x13, 0x10, 0x10, 0x11, 0x11 + +gUnknown_0850DAF9:: @ 850DAF9 +@ replacing .incbin "baserom.gba", 0x0050daf9, 0x9 + .byte 0x14, 0x14, 0x15, 0x16, 0x17, 0x14, 0x14, 0x15, 0x15 + +gUnknown_0850DB02:: @ 850DB02 +@ replacing .incbin "baserom.gba", 0x0050db02, 0x9 + .byte 0x14, 0x14, 0x15, 0x16, 0x17, 0x14, 0x14, 0x15, 0x15 + +gUnknown_0850DB0B:: @ 850DB0B +@ replacing .incbin "baserom.gba", 0x0050db0b, 0x9 + .byte 0x18, 0x18, 0x19, 0x1a, 0x1b, 0x18, 0x18, 0x19, 0x19 + +gUnknown_0850DB14:: @ 850DB14 +@ replacing .incbin "baserom.gba", 0x0050db14, 0x9 + .byte 0x1c, 0x1c, 0x1d, 0x1e, 0x1f, 0x1c, 0x1c, 0x1d, 0x1d + +gUnknown_0850DB1D:: @ 850DB1D +@ replacing .incbin "baserom.gba", 0x0050db1d, 0x9 + .byte 0x20, 0x20, 0x21, 0x22, 0x23, 0x20, 0x20, 0x21, 0x21 + +gUnknown_0850DB26:: @ 850DB26 +@ replacing .incbin "baserom.gba", 0x0050db26, 0x9 + .byte 0x24, 0x24, 0x25, 0x26, 0x27, 0x24, 0x24, 0x25, 0x25 + +gUnknown_0850DB2F:: @ 850DB2F +@ replacing .incbin "baserom.gba", 0x0050db2f, 0x9 + .byte 0x00, 0x00, 0x01, 0x02, 0x03, 0x00, 0x00, 0x01, 0x01 + +gUnknown_0850DB38:: @ 850DB38 +@ replacing .incbin "baserom.gba", 0x0050db38, 0x9 + .byte 0x04, 0x04, 0x05, 0x06, 0x07, 0x04, 0x04, 0x05, 0x05 + +gUnknown_0850DB41:: @ 850DB41 +@ replacing .incbin "baserom.gba", 0x0050db41, 0x9 + .byte 0x08, 0x08, 0x09, 0x0a, 0x0b, 0x08, 0x08, 0x09, 0x09 + +gUnknown_0850DB4A:: @ 850DB4A +@ replacing .incbin "baserom.gba", 0x0050db4a, 0x9 + .byte 0x14, 0x14, 0x15, 0x16, 0x17, 0x14, 0x14, 0x15, 0x15 + +gUnknown_0850DB53:: @ 850DB53 +@ replacing .incbin "baserom.gba", 0x0050db53, 0x9 + .byte 0x08, 0x08, 0x07, 0x09, 0x0a, 0x08, 0x08, 0x07, 0x07 + + .align 2, 0 +gUnknown_0850DB5C:: @ 850DB5C +@ replacing .incbin "baserom.gba", 0x0050db5c, 0x10 + .4byte MetatileBehavior_IsSouthBlocked + .4byte MetatileBehavior_IsNorthBlocked + .4byte MetatileBehavior_IsWestBlocked + .4byte MetatileBehavior_IsEastBlocked + +gUnknown_0850DB6C:: @ 850DB6C +@ replacing .incbin "baserom.gba", 0x0050db6c, 0x10 + .4byte MetatileBehavior_IsNorthBlocked + .4byte MetatileBehavior_IsSouthBlocked + .4byte MetatileBehavior_IsEastBlocked + .4byte MetatileBehavior_IsWestBlocked + +gUnknown_0850DB7C:: @ 850DB7C +@ replacing .incbin "baserom.gba", 0x0050db7c, 0x24 + .2byte 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0xffff, 0xffff, 0x0000, 0x0001, 0x0000, 0xffff, 0x0001, 0x0001, 0x0001, 0xffff, 0xffff + .2byte 0x0001, 0xffff + +gUnknown_0850DBA0:: @ 850DBA0 +@ replacing .incbin "baserom.gba", 0x0050dba0, 0x5 + .byte 0x00, 0x00, 0x01, 0x02, 0x03 + +gUnknown_0850DBA5:: @ 850DBA5 +@ replacing .incbin "baserom.gba", 0x0050dba5, 0x5 + .byte 0x04, 0x04, 0x05, 0x06, 0x07 + +gUnknown_0850DBAA:: @ 850DBAA +@ replacing .incbin "baserom.gba", 0x0050dbaa, 0x5 + .byte 0x08, 0x08, 0x09, 0x0a, 0x0b + +gUnknown_0850DBAF:: @ 850DBAF +@ replacing .incbin "baserom.gba", 0x0050dbaf, 0x5 + .byte 0x15, 0x15, 0x16, 0x17, 0x18 + +gUnknown_0850DBB4:: @ 850DBB4 +@ replacing .incbin "baserom.gba", 0x0050dbb4, 0x5 + .byte 0x29, 0x29, 0x2a, 0x2b, 0x2c + +gUnknown_0850DBB9:: @ 850DBB9 +@ replacing .incbin "baserom.gba", 0x0050dbb9, 0x5 + .byte 0x2d, 0x2d, 0x2e, 0x2f, 0x30 + +gUnknown_0850DBBE:: @ 850DBBE +@ replacing .incbin "baserom.gba", 0x0050dbbe, 0x5 + .byte 0x31, 0x31, 0x32, 0x33, 0x34 + +gUnknown_0850DBC3:: @ 850DBC3 +@ replacing .incbin "baserom.gba", 0x0050dbc3, 0x5 + .byte 0x35, 0x35, 0x36, 0x37, 0x38 + +gUnknown_0850DBC8:: @ 850DBC8 +@ replacing .incbin "baserom.gba", 0x0050dbc8, 0x5 + .byte 0x0c, 0x0c, 0x0d, 0x0e, 0x0f + +gUnknown_0850DBCD:: @ 850DBCD +@ replacing .incbin "baserom.gba", 0x0050dbcd, 0x5 + .byte 0x46, 0x46, 0x47, 0x48, 0x49 + +gUnknown_0850DBD2:: @ 850DBD2 +@ replacing .incbin "baserom.gba", 0x0050dbd2, 0x5 + .byte 0x4b, 0x4b, 0x4a, 0x4d, 0x4c + +gUnknown_0850DBD7:: @ 850DBD7 +@ replacing .incbin "baserom.gba", 0x0050dbd7, 0x5 + .byte 0x42, 0x42, 0x43, 0x44, 0x45 + +gUnknown_0850DBDC:: @ 850DBDC +@ replacing .incbin "baserom.gba", 0x0050dbdc, 0x5 + .byte 0x3a, 0x3a, 0x3b, 0x3c, 0x3d + +gUnknown_0850DBE1:: @ 850DBE1 +@ replacing .incbin "baserom.gba", 0x0050dbe1, 0x5 + .byte 0x19, 0x19, 0x1a, 0x1b, 0x1c + +gUnknown_0850DBE6:: @ 850DBE6 +@ replacing .incbin "baserom.gba", 0x0050dbe6, 0x5 + .byte 0x1d, 0x1d, 0x1e, 0x1f, 0x20 + +gUnknown_0850DBEB:: @ 850DBEB +@ replacing .incbin "baserom.gba", 0x0050dbeb, 0x5 + .byte 0x21, 0x21, 0x22, 0x23, 0x24 + +gUnknown_0850DBF0:: @ 850DBF0 +@ replacing .incbin "baserom.gba", 0x0050dbf0, 0x5 + .byte 0x25, 0x25, 0x26, 0x27, 0x28 + +gUnknown_0850DBF5:: @ 850DBF5 +@ replacing .incbin "baserom.gba", 0x0050dbf5, 0x5 + .byte 0x64, 0x64, 0x65, 0x66, 0x67 + +gUnknown_0850DBFA:: @ 850DBFA +@ replacing .incbin "baserom.gba", 0x0050dbfa, 0x5 + .byte 0x68, 0x68, 0x69, 0x6a, 0x6b + +gUnknown_0850DBFF:: @ 850DBFF +@ replacing .incbin "baserom.gba", 0x0050dbff, 0x5 + .byte 0x6c, 0x6c, 0x6d, 0x6e, 0x6f + +gUnknown_0850DC04:: @ 850DC04 +@ replacing .incbin "baserom.gba", 0x0050dc04, 0x5 + .byte 0x70, 0x70, 0x71, 0x72, 0x73 + +gUnknown_0850DC09:: @ 850DC09 +@ replacing .incbin "baserom.gba", 0x0050dc09, 0x5 + .byte 0x74, 0x74, 0x75, 0x76, 0x77 + +gUnknown_0850DC0E:: @ 850DC0E +@ replacing .incbin "baserom.gba", 0x0050dc0e, 0x5 + .byte 0x78, 0x78, 0x79, 0x7a, 0x7b + +gUnknown_0850DC13:: @ 850DC13 +@ replacing .incbin "baserom.gba", 0x0050dc13, 0x5 + .byte 0x7c, 0x7c, 0x7d, 0x7e, 0x7f + +gUnknown_0850DC18:: @ 850DC18 +@ replacing .incbin "baserom.gba", 0x0050dc18, 0x5 + .byte 0x80, 0x80, 0x81, 0x82, 0x83 + +gUnknown_0850DC1D:: @ 850DC1D +@ replacing .incbin "baserom.gba", 0x0050dc1d, 0x5 + .byte 0x84, 0x84, 0x85, 0x86, 0x87 + +gUnknown_0850DC22:: @ 850DC22 +@ replacing .incbin "baserom.gba", 0x0050dc22, 0x5 + .byte 0x88, 0x88, 0x89, 0x8a, 0x8b + +gUnknown_0850DC27:: @ 850DC27 +@ replacing .incbin "baserom.gba", 0x0050dc27, 0x8 + .byte 0x02, 0x01, 0x04, 0x03, 0x08, 0x07, 0x06, 0x05 + +gUnknown_0850DC2F:: @ 850DC2F +@ replacing .incbin "baserom.gba", 0x0050dc2f, 0x10 + .byte 0x02, 0x01, 0x04, 0x03, 0x01, 0x02, 0x03, 0x04, 0x03, 0x04, 0x02, 0x01, 0x04, 0x03, 0x01, 0x02 + +gUnknown_0850DC3F:: @ 850DC3F +@ replacing .incbin "baserom.gba", 0x0050dc3f, 0x11 + .byte 0x02, 0x01, 0x04, 0x03, 0x01, 0x02, 0x03, 0x04, 0x04, 0x03, 0x01, 0x02, 0x03, 0x04, 0x02, 0x01, 0x00 + + .align 2, 0 +gUnknown_0850DC50:: @ 850DC50 +@ replacing .incbin "baserom.gba", 0x0050dc50, 0x278 +.4byte gUnknown_0850DEC8 +.4byte gUnknown_0850DED0 +.4byte gUnknown_0850DED8 +.4byte gUnknown_0850DEE0 +.4byte gUnknown_0850DF2C +.4byte gUnknown_0850DF38 +.4byte gUnknown_0850DF44 +.4byte gUnknown_0850DF50 +.4byte gUnknown_0850DF8C +.4byte gUnknown_0850DF98 +.4byte gUnknown_0850DFA4 +.4byte gUnknown_0850DFB0 +.4byte gUnknown_0850DFC8 +.4byte gUnknown_0850DFD4 +.4byte gUnknown_0850DFE0 +.4byte gUnknown_0850DFEC +.4byte gUnknown_0850DFF8 +.4byte gUnknown_0850E004 +.4byte gUnknown_0850E010 +.4byte gUnknown_0850E01C +.4byte gUnknown_0850E028 +.4byte gUnknown_0850E034 +.4byte gUnknown_0850E040 +.4byte gUnknown_0850E04C +.4byte gUnknown_0850E058 +.4byte gUnknown_0850E064 +.4byte gUnknown_0850E070 +.4byte gUnknown_0850E07C +.4byte gUnknown_0850E088 +.4byte gUnknown_0850E094 +.4byte gUnknown_0850E0A0 +.4byte gUnknown_0850E0AC +.4byte gUnknown_0850E0B8 +.4byte gUnknown_0850E0C4 +.4byte gUnknown_0850E0D0 +.4byte gUnknown_0850E0DC +.4byte gUnknown_0850E0E8 +.4byte gUnknown_0850E0F4 +.4byte gUnknown_0850E100 +.4byte gUnknown_0850E10C +.4byte gUnknown_0850E118 +.4byte gUnknown_0850E124 +.4byte gUnknown_0850E130 +.4byte gUnknown_0850E13C +.4byte gUnknown_0850E148 +.4byte gUnknown_0850E154 +.4byte gUnknown_0850E160 +.4byte gUnknown_0850E16C +.4byte gUnknown_0850E178 +.4byte gUnknown_0850E184 +.4byte gUnknown_0850E190 +.4byte gUnknown_0850E19C +.4byte gUnknown_0850E1A8 +.4byte gUnknown_0850E1B4 +.4byte gUnknown_0850E1C0 +.4byte gUnknown_0850E1CC +.4byte gUnknown_0850E1D8 +.4byte gUnknown_0850E1E4 +.4byte gUnknown_0850E1F0 +.4byte gUnknown_0850E1FC +.4byte gUnknown_0850E208 +.4byte gUnknown_0850E214 +.4byte gUnknown_0850E220 +.4byte gUnknown_0850E228 +.4byte gUnknown_0850E230 +.4byte gUnknown_0850E238 +.4byte gUnknown_0850E240 +.4byte gUnknown_0850E24C +.4byte gUnknown_0850E258 +.4byte gUnknown_0850E264 +.4byte gUnknown_0850E270 +.4byte gUnknown_0850E27C +.4byte gUnknown_0850E288 +.4byte gUnknown_0850E294 +.4byte gUnknown_0850E2A0 +.4byte gUnknown_0850E2AC +.4byte gUnknown_0850E2B8 +.4byte gUnknown_0850E2C4 +.4byte gUnknown_0850E2D0 +.4byte gUnknown_0850E2D8 +.4byte gUnknown_0850E2E4 +.4byte gUnknown_0850E2EC +.4byte gUnknown_0850E2F4 +.4byte gUnknown_0850E2FC +.4byte gUnknown_0850E304 +.4byte gUnknown_0850E30C +.4byte gUnknown_0850E314 +.4byte gUnknown_0850E31C +.4byte gUnknown_0850E324 +.4byte gUnknown_0850E32C +.4byte gUnknown_0850E338 +.4byte gUnknown_0850E348 +.4byte gUnknown_0850E358 +.4byte gUnknown_0850E360 +.4byte gUnknown_0850E368 +.4byte gUnknown_0850E370 +.4byte gUnknown_0850E378 +.4byte gUnknown_0850E380 +.4byte gUnknown_0850E388 +.4byte gUnknown_0850E394 +.4byte gUnknown_0850E3B8 +.4byte gUnknown_0850E3C0 +.4byte gUnknown_0850E3C8 +.4byte gUnknown_0850E3D0 +.4byte gUnknown_0850E3D8 +.4byte gUnknown_0850E3E4 +.4byte gUnknown_0850E3F0 +.4byte gUnknown_0850E3FC +.4byte gUnknown_0850E408 +.4byte gUnknown_0850E414 +.4byte gUnknown_0850E420 +.4byte gUnknown_0850E42C +.4byte gUnknown_0850E474 +.4byte gUnknown_0850E480 +.4byte gUnknown_0850E48C +.4byte gUnknown_0850E498 +.4byte gUnknown_0850E4A4 +.4byte gUnknown_0850E4B0 +.4byte gUnknown_0850E4BC +.4byte gUnknown_0850E4C8 +.4byte gUnknown_0850E4D4 +.4byte gUnknown_0850E4E0 +.4byte gUnknown_0850E4EC +.4byte gUnknown_0850E4F8 +.4byte gUnknown_0850E504 +.4byte gUnknown_0850E510 +.4byte gUnknown_0850E51C +.4byte gUnknown_0850E528 +.4byte gUnknown_0850E534 +.4byte gUnknown_0850E540 +.4byte gUnknown_0850E54C +.4byte gUnknown_0850E558 +.4byte gUnknown_0850E564 +.4byte gUnknown_0850E570 +.4byte gUnknown_0850E57C +.4byte gUnknown_0850E588 +.4byte gUnknown_0850E594 +.4byte gUnknown_0850E5A0 +.4byte gUnknown_0850E5AC +.4byte gUnknown_0850E5B8 +.4byte gUnknown_0850DF5C +.4byte gUnknown_0850DF68 +.4byte gUnknown_0850DF74 +.4byte gUnknown_0850DF80 +.4byte gUnknown_0850DEFC +.4byte gUnknown_0850DF08 +.4byte gUnknown_0850DF14 +.4byte gUnknown_0850DF20 +.4byte gUnknown_0850E854 +.4byte gUnknown_0850E85C +.4byte gUnknown_0850E3A0 +.4byte gUnknown_0850E3AC +.4byte gUnknown_0850E5C4 +.4byte gUnknown_0850E5CC +.4byte gUnknown_0850E5D4 +.4byte gUnknown_0850E468 +.4byte gUnknown_0850E864 +.4byte gUnknown_0850E870 + +gUnknown_0850DEC8:: @ 850DEC8 + .4byte sub_8093950 + .4byte sub_80964BC + +gUnknown_0850DED0:: + .4byte sub_8093960 + .4byte sub_80964BC + +gUnknown_0850DED8:: + .4byte sub_8093970 + .4byte sub_80964BC + +gUnknown_0850DEE0:: + .4byte sub_8093980 + .4byte sub_80964BC + +gUnknown_0850DEE8:: @ 850DEE8 +@ replacing .incbin "baserom.gba", 0x0050dee8, 0xd4 + .4byte get_go_image_anim_num + .4byte get_go_fast_image_anim_num + .4byte get_go_fast_image_anim_num + .4byte get_go_faster_image_anim_num + .4byte get_go_fastest_image_anim_num + +gUnknown_0850DEFC:: + .4byte sub_8093BC4 + .4byte sub_8093BC4_2 + .4byte sub_80964BC +gUnknown_0850DF08:: + .4byte sub_8093C04 + .4byte sub_8093C04_2 + .4byte sub_80964BC +gUnknown_0850DF14:: + .4byte sub_8093C44 + .4byte sub_8093C44_2 + .4byte sub_80964BC +gUnknown_0850DF20:: + .4byte sub_8093C84 + .4byte sub_8093C84_2 + .4byte sub_80964BC +gUnknown_0850DF2C:: + .4byte sub_8093CC4 + .4byte sub_8093CC4_2 + .4byte sub_80964BC +gUnknown_0850DF38:: + .4byte sub_8093D04 + .4byte sub_8093D04_2 + .4byte sub_80964BC +gUnknown_0850DF44:: + .4byte sub_8093D44 + .4byte sub_8093D44_2 + .4byte sub_80964BC +gUnknown_0850DF50:: + .4byte sub_8093D84 + .4byte sub_8093D84_2 + .4byte sub_80964BC +gUnknown_0850DF5C:: + .4byte sub_8093DC4 + .4byte sub_8093DC4_2 + .4byte sub_80964BC +gUnknown_0850DF68:: + .4byte sub_8093E04 + .4byte sub_8093E04_2 + .4byte sub_80964BC +gUnknown_0850DF74:: + .4byte sub_8093E44 + .4byte sub_8093E44_2 + .4byte sub_80964BC +gUnknown_0850DF80:: + .4byte sub_8093E84 + .4byte sub_8093E84_2 + .4byte sub_80964BC +gUnknown_0850DF8C:: + .4byte sub_8093EC4 + .4byte sub_8093EC4_2 + .4byte sub_80964BC +gUnknown_0850DF98:: + .4byte sub_8093F04 + .4byte sub_8093F04_2 + .4byte sub_80964BC +gUnknown_0850DFA4:: + .4byte sub_8093F44 + .4byte sub_8093F44_2 + .4byte sub_80964BC +gUnknown_0850DFB0:: + .4byte sub_8093F84 + .4byte sub_8093F84_2 + .4byte sub_80964BC + +gUnknown_0850DFBC:: @ 850DFBC +@ replacing .incbin "baserom.gba", 0x0050dfbc, 0x6 + .byte 0x00, 0x00, 0x01, 0x00, 0x01, 0x00 + +gUnknown_0850DFC2:: @ 850DFC2 +@ replacing .incbin "baserom.gba", 0x0050dfc2, 0x6 + .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00 + +gUnknown_0850DFC8:: @ 850DFC8 +@ replacing .incbin "baserom.gba", 0x0050dfc8, 0x614 + .4byte sub_8094230 + .4byte sub_8094230_2 + .4byte sub_80964BC +gUnknown_0850DFD4:: + .4byte sub_8094288 + .4byte sub_8094288_2 + .4byte sub_80964BC +gUnknown_0850DFE0:: + .4byte sub_80942E0 + .4byte sub_80942E0_2 + .4byte sub_80964BC +gUnknown_0850DFEC:: + .4byte sub_8094338 + .4byte sub_8094338_2 + .4byte sub_80964BC +gUnknown_0850DFF8:: + .4byte sub_80943B4 + .4byte sub_8094398 + .4byte sub_80964B8 +gUnknown_0850E004:: + .4byte sub_80943D4 + .4byte sub_8094398 + .4byte sub_80964B8 +gUnknown_0850E010:: + .4byte sub_80943F4 + .4byte sub_8094398 + .4byte sub_80964B8 +gUnknown_0850E01C:: + .4byte sub_8094414 + .4byte sub_8094398 + .4byte sub_80964B8 +gUnknown_0850E028:: + .4byte sub_8094434 + .4byte sub_8094398 + .4byte sub_80964B8 +gUnknown_0850E034:: + .4byte sub_8094454 + .4byte sub_8094454_2 + .4byte sub_80964BC +gUnknown_0850E040:: + .4byte sub_8094494 + .4byte sub_8094494_2 + .4byte sub_80964BC +gUnknown_0850E04C:: + .4byte sub_80944D4 + .4byte sub_80944D4_2 + .4byte sub_80964BC +gUnknown_0850E058:: + .4byte sub_8094514 + .4byte sub_8094514_2 + .4byte sub_80964BC +gUnknown_0850E064:: + .4byte sub_8094600 + .4byte sub_80945C4 + .4byte sub_80964BC +gUnknown_0850E070:: + .4byte sub_8094638 + .4byte sub_80945C4 + .4byte sub_80964BC +gUnknown_0850E07C:: + .4byte sub_8094670 + .4byte sub_80945C4 + .4byte sub_80964BC +gUnknown_0850E088:: + .4byte sub_80946A8 + .4byte sub_80945C4 + .4byte sub_80964BC +gUnknown_0850E094:: + .4byte sub_80946E0 + .4byte sub_809459C + .4byte sub_80964BC +gUnknown_0850E0A0:: + .4byte sub_8094718 + .4byte sub_809459C + .4byte sub_80964BC +gUnknown_0850E0AC:: + .4byte sub_8094750 + .4byte sub_809459C + .4byte sub_80964BC +gUnknown_0850E0B8:: + .4byte sub_8094788 + .4byte sub_809459C + .4byte sub_80964BC +gUnknown_0850E0C4:: + .4byte sub_80947C0 + .4byte sub_809459C + .4byte sub_80964BC +gUnknown_0850E0D0:: + .4byte sub_80947F8 + .4byte sub_809459C + .4byte sub_80964BC +gUnknown_0850E0DC:: + .4byte sub_8094830 + .4byte sub_809459C + .4byte sub_80964BC +gUnknown_0850E0E8:: + .4byte sub_8094868 + .4byte sub_809459C + .4byte sub_80964BC +gUnknown_0850E0F4:: + .4byte sub_80948A0 + .4byte sub_809459C + .4byte sub_80964BC +gUnknown_0850E100:: + .4byte sub_80948D8 + .4byte sub_809459C + .4byte sub_80964BC +gUnknown_0850E10C:: + .4byte sub_8094910 + .4byte sub_809459C + .4byte sub_80964BC +gUnknown_0850E118:: + .4byte sub_8094948 + .4byte sub_809459C + .4byte sub_80964BC +gUnknown_0850E124:: + .4byte sub_8094980 + .4byte sub_8094980_2 + .4byte sub_80964BC +gUnknown_0850E130:: + .4byte sub_80949C0 + .4byte sub_80949C0_2 + .4byte sub_80964BC +gUnknown_0850E13C:: + .4byte sub_8094A00 + .4byte sub_8094A00_2 + .4byte sub_80964BC +gUnknown_0850E148:: + .4byte sub_8094A40 + .4byte sub_8094A40_2 + .4byte sub_80964BC +gUnknown_0850E154:: + .4byte sub_8094A80 + .4byte sub_8094A80_2 + .4byte sub_80964BC +gUnknown_0850E160:: + .4byte sub_8094AC0 + .4byte sub_8094AC0_2 + .4byte sub_80964BC +gUnknown_0850E16C:: + .4byte sub_8094B00 + .4byte sub_8094B00_2 + .4byte sub_80964BC +gUnknown_0850E178:: + .4byte sub_8094B40 + .4byte sub_8094B40_2 + .4byte sub_80964BC +gUnknown_0850E184:: + .4byte sub_8094B80 + .4byte sub_8094B80_2 + .4byte sub_80964BC +gUnknown_0850E190:: + .4byte sub_8094BC0 + .4byte sub_8094BC0_2 + .4byte sub_80964BC +gUnknown_0850E19C:: + .4byte sub_8094C00 + .4byte sub_8094C00_2 + .4byte sub_80964BC +gUnknown_0850E1A8:: + .4byte sub_8094C40 + .4byte sub_8094C40_2 + .4byte sub_80964BC +gUnknown_0850E1B4:: + .4byte sub_8094C80 + .4byte sub_8094C80_2 + .4byte sub_80964BC +gUnknown_0850E1C0:: + .4byte sub_8094CC0 + .4byte sub_8094CC0_2 + .4byte sub_80964BC +gUnknown_0850E1CC:: + .4byte sub_8094D00 + .4byte sub_8094D00_2 + .4byte sub_80964BC +gUnknown_0850E1D8:: + .4byte sub_8094D40 + .4byte sub_8094D40_2 + .4byte sub_80964BC +gUnknown_0850E1E4:: + .4byte sub_8094DAC + .4byte sub_8094DC4 + .4byte sub_80964BC +gUnknown_0850E1F0:: + .4byte sub_8094E18 + .4byte sub_8094E18_2 + .4byte sub_80964BC +gUnknown_0850E1FC:: + .4byte sub_8094E60 + .4byte sub_8094E60_2 + .4byte sub_80964BC +gUnknown_0850E208:: + .4byte sub_8094EB8 + .4byte sub_8094EB8_2 + .4byte sub_80964BC +gUnknown_0850E214:: + .4byte sub_8094710 + .4byte sub_8094710_2 + .4byte sub_80964BC +gUnknown_0850E220:: + .4byte sub_8094F38 + .4byte sub_80964BC +gUnknown_0850E228:: + .4byte sub_8094F94 + .4byte sub_80964BC +gUnknown_0850E230:: + .4byte sub_8094FF8 + .4byte sub_80964BC +gUnknown_0850E238:: + .4byte sub_8095008 + .4byte sub_80964BC +gUnknown_0850E240:: + .4byte sub_8095018 + .4byte sub_8095018_2 + .4byte sub_80964BC +gUnknown_0850E24C:: + .4byte sub_8095070 + .4byte sub_8095070_2 + .4byte sub_80964BC +gUnknown_0850E258:: + .4byte sub_80950C8 + .4byte sub_80950C8_2 + .4byte sub_80964BC +gUnknown_0850E264:: + .4byte sub_8095120 + .4byte sub_8095120_2 + .4byte sub_80964BC +gUnknown_0850E270:: + .4byte sub_8095178 + .4byte sub_8095178_2 + .4byte sub_80964BC +gUnknown_0850E27C:: + .4byte sub_80951D0 + .4byte sub_80951D0_2 + .4byte sub_80964BC +gUnknown_0850E288:: + .4byte sub_8095228 + .4byte sub_8095228_2 + .4byte sub_80964BC +gUnknown_0850E294:: + .4byte sub_8095280 + .4byte sub_8095280_2 + .4byte sub_80964BC +gUnknown_0850E2A0:: + .4byte sub_80952D8 + .4byte sub_80952D8_2 + .4byte sub_80964BC +gUnknown_0850E2AC:: + .4byte sub_8095330 + .4byte sub_8095330_2 + .4byte sub_80964BC +gUnknown_0850E2B8:: + .4byte sub_8095388 + .4byte sub_8095388_2 + .4byte sub_80964BC +gUnknown_0850E2C4:: + .4byte sub_80953E0 + .4byte sub_80953E0_2 + .4byte sub_80964BC +gUnknown_0850E2D0:: + .4byte sub_8095438 + .4byte sub_80964BC +gUnknown_0850E2D8:: + .4byte sub_8095450 + .4byte sub_8094DC4 + .4byte sub_80964BC +gUnknown_0850E2E4:: + .4byte sub_8095460 + .4byte sub_80964B8 +gUnknown_0850E2EC:: + .4byte sub_8095470 + .4byte sub_80964B8 +gUnknown_0850E2F4:: + .4byte sub_8095480 + .4byte sub_80964B8 +gUnknown_0850E2FC:: + .4byte sub_8095490 + .4byte sub_80964B8 +gUnknown_0850E304:: + .4byte sub_80954BC + .4byte sub_80964B8 +gUnknown_0850E30C:: + .4byte sub_80954CC + .4byte sub_80964B8 +gUnknown_0850E314:: + .4byte do_exclamation_mark_bubble_1 + .4byte sub_80964B8 +gUnknown_0850E31C:: + .4byte do_exclamation_mark_bubble_2 + .4byte sub_80964B8 +gUnknown_0850E324:: + .4byte do_heart_bubble + .4byte sub_80964B8 +gUnknown_0850E32C:: + .4byte sub_8095548 + .4byte sub_809558C + .4byte sub_80964B8 +gUnknown_0850E338:: + .4byte sub_80955AC + .4byte sub_80955C8 + .4byte sub_80955EC + .4byte sub_80964B8 +gUnknown_0850E348:: + .4byte sub_8095628 + .4byte sub_8095644 + .4byte sub_8095668 + .4byte sub_80964B8 +gUnknown_0850E358:: + .4byte sub_80956A4 + .4byte sub_80964B8 +gUnknown_0850E360:: + .4byte sub_80956B4 + .4byte sub_80964B8 +gUnknown_0850E368:: + .4byte sub_80956C4 + .4byte sub_80964B8 +gUnknown_0850E370:: + .4byte sub_80956F4 + .4byte sub_80964B8 +gUnknown_0850E378:: + .4byte sub_8095724 + .4byte sub_80964B8 +gUnknown_0850E380:: + .4byte sub_8095730 + .4byte sub_80964B8 +gUnknown_0850E388:: + .4byte sub_8095740 + .4byte sub_8095740_2 + .4byte sub_80964BC +gUnknown_0850E394:: + .4byte sub_80957A0 + .4byte sub_80957A0_2 + .4byte sub_80964BC +gUnknown_0850E3A0:: + .4byte sub_8095800 + .4byte sub_8095800_2 + .4byte sub_80964BC +gUnknown_0850E3AC:: + .4byte sub_8095860 + .4byte sub_8095860_2 + .4byte sub_80964BC +gUnknown_0850E3B8:: + .4byte sub_8095900 + .4byte sub_80964BC +gUnknown_0850E3C0:: + .4byte sub_8095910 + .4byte sub_80964BC +gUnknown_0850E3C8:: + .4byte sub_8095920 + .4byte sub_80964BC +gUnknown_0850E3D0:: + .4byte sub_8095930 + .4byte sub_80964BC +gUnknown_0850E3D8:: + .4byte sub_8095940 + .4byte sub_8094DC4 + .4byte sub_80964BC +gUnknown_0850E3E4:: + .4byte sub_8095964 + .4byte sub_8094DC4 + .4byte sub_80964BC +gUnknown_0850E3F0:: + .4byte sub_8095988 + .4byte sub_8094DC4 + .4byte sub_80964BC +gUnknown_0850E3FC:: + .4byte sub_80959AC + .4byte sub_8094DC4 + .4byte sub_80964BC +gUnknown_0850E408:: + .4byte sub_80959D0 + .4byte sub_8094DC4 + .4byte sub_80964BC +gUnknown_0850E414:: + .4byte sub_80959F4 + .4byte sub_8094DC4 + .4byte sub_80964BC +gUnknown_0850E420:: + .4byte sub_8095A18 + .4byte sub_8094DC4 + .4byte sub_80964BC +gUnknown_0850E42C:: + .4byte sub_8095A3C + .4byte sub_8094DC4 + .4byte sub_80964BC + .4byte sub_8095A60 + .4byte sub_8094DC4 + .4byte sub_80964BC + .4byte sub_8095A84 + .4byte sub_8094DC4 + .4byte sub_80964BC + .4byte sub_8095AA8 + .4byte sub_8094DC4 + .4byte sub_80964BC + .4byte sub_8095ACC + .4byte sub_8094DC4 + .4byte sub_80964BC +gUnknown_0850E468:: + .4byte sub_8095B44 + .4byte sub_8095B64 + .4byte sub_80964BC +gUnknown_0850E474:: + .4byte sub_8095BC8 + .4byte sub_8095BC8_2 + .4byte sub_80964BC +gUnknown_0850E480:: + .4byte sub_8095C20 + .4byte sub_8095C20_2 + .4byte sub_80964BC +gUnknown_0850E48C:: + .4byte sub_8095C78 + .4byte sub_8095C78_2 + .4byte sub_80964BC +gUnknown_0850E498:: + .4byte sub_8095CD0 + .4byte sub_8095CD0_2 + .4byte sub_80964BC +gUnknown_0850E4A4:: + .4byte sub_8095D28 + .4byte sub_8095D28_2 + .4byte sub_80964BC +gUnknown_0850E4B0:: + .4byte sub_8095D80 + .4byte sub_8095D80_2 + .4byte sub_80964BC +gUnknown_0850E4BC:: + .4byte sub_8095DD8 + .4byte sub_8095DD8_2 + .4byte sub_80964BC +gUnknown_0850E4C8:: + .4byte sub_8095E30 + .4byte sub_8095E30_2 + .4byte sub_80964BC +gUnknown_0850E4D4:: + .4byte sub_8095E88 + .4byte sub_8095E88_2 + .4byte sub_80964BC +gUnknown_0850E4E0:: + .4byte sub_8095EE0 + .4byte sub_8095EE0_2 + .4byte sub_80964BC +gUnknown_0850E4EC:: + .4byte sub_8095F38 + .4byte sub_8095F38_2 + .4byte sub_80964BC +gUnknown_0850E4F8:: + .4byte sub_8095F90 + .4byte sub_8095F90_2 + .4byte sub_80964BC +gUnknown_0850E504:: + .4byte sub_8095FE8 + .4byte sub_809459C + .4byte sub_80964BC +gUnknown_0850E510:: + .4byte sub_8096020 + .4byte sub_809459C + .4byte sub_80964BC +gUnknown_0850E51C:: + .4byte sub_8096058 + .4byte sub_809459C + .4byte sub_80964BC +gUnknown_0850E528:: + .4byte sub_8096090 + .4byte sub_809459C + .4byte sub_80964BC +gUnknown_0850E534:: + .4byte sub_8096100 + .4byte sub_8096100_2 + .4byte sub_80964BC +gUnknown_0850E540:: + .4byte sub_8096140 + .4byte sub_8096140_2 + .4byte sub_80964BC +gUnknown_0850E54C:: + .4byte sub_8096180 + .4byte sub_8096180_2 + .4byte sub_80964BC +gUnknown_0850E558:: + .4byte sub_80961C0 + .4byte sub_80961C0_2 + .4byte sub_80964BC +gUnknown_0850E564:: + .4byte sub_8096230 + .4byte sub_8096230_2 + .4byte sub_80964BC +gUnknown_0850E570:: + .4byte sub_8096270 + .4byte sub_8096270_2 + .4byte sub_80964BC +gUnknown_0850E57C:: + .4byte sub_80962B0 + .4byte sub_80962B0_2 + .4byte sub_80964BC +gUnknown_0850E588:: + .4byte sub_80962F0 + .4byte sub_80962F0_2 + .4byte sub_80964BC +gUnknown_0850E594:: + .4byte sub_8096368 + .4byte sub_8096368_2 + .4byte sub_80964BC +gUnknown_0850E5A0:: + .4byte sub_80963A8 + .4byte sub_80963A8_2 + .4byte sub_80964BC +gUnknown_0850E5AC:: + .4byte sub_80963E8 + .4byte sub_80963E8_2 + .4byte sub_80964BC +gUnknown_0850E5B8:: + .4byte sub_8096428 + .4byte sub_8096428_2 + .4byte sub_80964BC +gUnknown_0850E5C4:: + .4byte sub_8096468 + .4byte sub_80964B8 +gUnknown_0850E5CC:: + .4byte sub_809647C + .4byte sub_80964B8 +gUnknown_0850E5D4:: + .4byte sub_8096494 + .4byte sub_80964B8 + diff --git a/data/field_player_avatar.s b/data/field_player_avatar.s new file mode 100644 index 000000000..952485463 --- /dev/null +++ b/data/field_player_avatar.s @@ -0,0 +1,83 @@ +@ the third big chunk of data + + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + + +gUnknown_084973FC:: @ 84973FC + .incbin "baserom.gba", 0x4973fc, 0x48 + +gUnknown_08497444:: @ 8497444 + .incbin "baserom.gba", 0x497444, 0x4c + +gUnknown_08497490:: @ 8497490 + .incbin "baserom.gba", 0x497490, 0xc + +gUnknown_0849749C:: @ 849749C + .incbin "baserom.gba", 0x49749c, 0x14 + +gUnknown_084974B0:: @ 84974B0 + .incbin "baserom.gba", 0x4974b0, 0x8 + +gUnknown_084974B8:: @ 84974B8 + .incbin "baserom.gba", 0x4974b8, 0x20 + +gUnknown_084974D8:: @ 84974D8 + .incbin "baserom.gba", 0x4974d8, 0x10 + +gUnknown_084974E8:: @ 84974E8 + .incbin "baserom.gba", 0x4974e8, 0x10 + +gUnknown_084974F8:: @ 84974F8 + .incbin "baserom.gba", 0x4974f8, 0x10 + +gUnknown_08497508:: @ 8497508 + .incbin "baserom.gba", 0x497508, 0x2 + +gUnknown_0849750A:: @ 849750A + .incbin "baserom.gba", 0x49750a, 0x2 + +gUnknown_0849750C:: @ 849750C + .incbin "baserom.gba", 0x49750c, 0x14 + +gUnknown_08497520:: @ 8497520 + .incbin "baserom.gba", 0x497520, 0x10 + +gUnknown_08497530:: @ 8497530 + .incbin "baserom.gba", 0x497530, 0xc + +gUnknown_0849753C:: @ 849753C + .incbin "baserom.gba", 0x49753c, 0x4 + +gUnknown_08497540:: @ 8497540 + .incbin "baserom.gba", 0x497540, 0x10 + +gUnknown_08497550:: @ 8497550 + .incbin "baserom.gba", 0x497550, 0x4 + +gUnknown_08497554:: @ 8497554 + .incbin "baserom.gba", 0x497554, 0x8 + +gUnknown_0849755C:: @ 849755C + .incbin "baserom.gba", 0x49755c, 0x40 + +gUnknown_0849759C:: @ 849759C + .incbin "baserom.gba", 0x49759c, 0x6 + +gUnknown_084975A2:: @ 84975A2 + .incbin "baserom.gba", 0x4975a2, 0x6 + +gUnknown_084975A8:: @ 84975A8 + .incbin "baserom.gba", 0x4975a8, 0x2 + +gUnknown_084975AA:: @ 84975AA + .incbin "baserom.gba", 0x4975aa, 0x6 + +gUnknown_084975B0:: @ 84975B0 + .incbin "baserom.gba", 0x4975b0, 0xc + +gUnknown_084975BC:: @ 84975BC + .incbin "baserom.gba", 0x4975bc, 0x8 diff --git a/data/field_region_map.s b/data/field_region_map.s index 2ddc65739..f179ba8ce 100644 --- a/data/field_region_map.s +++ b/data/field_region_map.s @@ -3,8 +3,12 @@ .section .rodata -gUnknown_085E5068:: @ 85E5068 - .incbin "baserom.gba", 0x5e5068, 0x8 + .align 2 +gUnknown_085E5068:: @ 85E5068 struct BgTemplate + .4byte 0x000001f0, 0x00002dca + .align 2 gUnknown_085E5070:: @ 85E5070 - .incbin "baserom.gba", 0x5e5070, 0x18 + window_template 0x00, 0x11, 0x11, 0x0c, 0x02, 0x0f, 0x0001 + window_template 0x00, 0x16, 0x01, 0x07, 0x02, 0x0f, 0x0019 + window_template 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 diff --git a/data/field_screen.s b/data/field_screen.s new file mode 100644 index 000000000..fd1b1f466 --- /dev/null +++ b/data/field_screen.s @@ -0,0 +1,113 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_0854014C:: @ 854014C + .incbin "baserom.gba", 0x54014c, 0xc000 + +gUnknown_0854C14C:: @ 854C14C + .incbin "baserom.gba", 0x54c14c, 0x4 + +gUnknown_0854C150:: @ 854C150 + .incbin "baserom.gba", 0x54c150, 0xf0 + +gUnknown_0854C240:: @ 854C240 + .incbin "baserom.gba", 0x54c240, 0x10 + +gUnknown_0854C250:: @ 854C250 + .incbin "baserom.gba", 0x54c250, 0x20 + +gUnknown_0854C270:: @ 854C270 + .incbin "baserom.gba", 0x54c270, 0x20 + +gUnknown_0854C290:: @ 854C290 + .incbin "baserom.gba", 0x54c290, 0x20 + +gUnknown_0854C2B0:: @ 854C2B0 + .incbin "baserom.gba", 0x54c2b0, 0x820 + +gUnknown_0854CAD0:: @ 854CAD0 + .incbin "baserom.gba", 0x54cad0, 0x3080 + +gUnknown_0854FB50:: @ 854FB50 + .incbin "baserom.gba", 0x54fb50, 0xc + +gUnknown_0854FB5C:: @ 854FB5C + .incbin "baserom.gba", 0x54fb5c, 0x1c + +gUnknown_0854FB78:: @ 854FB78 + .incbin "baserom.gba", 0x54fb78, 0x18 + +gUnknown_0854FB90:: @ 854FB90 + .incbin "baserom.gba", 0x54fb90, 0x9c + +gUnknown_0854FC2C:: @ 854FC2C + .incbin "baserom.gba", 0x54fc2c, 0x18 + +gUnknown_0854FC44:: @ 854FC44 + .incbin "baserom.gba", 0x54fc44, 0x8 + +gUnknown_0854FC4C:: @ 854FC4C + .incbin "baserom.gba", 0x54fc4c, 0x8 + +gUnknown_0854FC54:: @ 854FC54 + .incbin "baserom.gba", 0x54fc54, 0x38 + +gUnknown_0854FC8C:: @ 854FC8C + .incbin "baserom.gba", 0x54fc8c, 0x8c + +gUnknown_0854FD18:: @ 854FD18 + .incbin "baserom.gba", 0x54fd18, 0x18 + +gUnknown_0854FD30:: @ 854FD30 + .incbin "baserom.gba", 0x54fd30, 0x8 + +gUnknown_0854FD38:: @ 854FD38 + .incbin "baserom.gba", 0x54fd38, 0x20 + +gUnknown_0854FD58:: @ 854FD58 + .incbin "baserom.gba", 0x54fd58, 0x18 + +gUnknown_0854FD70:: @ 854FD70 + .incbin "baserom.gba", 0x54fd70, 0x1c + +gUnknown_0854FD8C:: @ 854FD8C + .incbin "baserom.gba", 0x54fd8c, 0x38 + +gUnknown_0854FDC4:: @ 854FDC4 + .incbin "baserom.gba", 0x54fdc4, 0x18 + +gUnknown_0854FDDC:: @ 854FDDC + .incbin "baserom.gba", 0x54fddc, 0x8 + +gUnknown_0854FDE4:: @ 854FDE4 + .incbin "baserom.gba", 0x54fde4, 0xc + +gUnknown_0854FDF0:: @ 854FDF0 + .incbin "baserom.gba", 0x54fdf0, 0x8 + +gUnknown_0854FDF8:: @ 854FDF8 + .incbin "baserom.gba", 0x54fdf8, 0x8 + +gUnknown_0854FE00:: @ 854FE00 + .incbin "baserom.gba", 0x54fe00, 0x44 + +gUnknown_0854FE44:: @ 854FE44 + .incbin "baserom.gba", 0x54fe44, 0x18 + +gUnknown_0854FE5C:: @ 854FE5C + .incbin "baserom.gba", 0x54fe5c, 0x4 + +gUnknown_0854FE60:: @ 854FE60 + .incbin "baserom.gba", 0x54fe60, 0x4 + +gUnknown_0854FE64:: @ 854FE64 + .incbin "baserom.gba", 0x54fe64, 0x14 + +gUnknown_0854FE78:: @ 854FE78 + .incbin "baserom.gba", 0x54fe78, 0x4 + +gUnknown_0854FE7C:: @ 854FE7C + .incbin "baserom.gba", 0x54fe7c, 0xc diff --git a/data/field_special_scene.s b/data/field_special_scene.s new file mode 100644 index 000000000..fe8ef1622 --- /dev/null +++ b/data/field_special_scene.s @@ -0,0 +1,15 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + + .align 2, 0 + +gTruckCamera_HorizontalTable:: @ 858E898 + .incbin "baserom.gba", 0x58e898, 0x13 + +gUnknown_0858E8AB:: @ 858E8AB + .incbin "baserom.gba", 0x58e8ab, 0x2 + +gUnknown_0858E8AD:: @ 858E8AD + .incbin "baserom.gba", 0x58e8ad, 0x3 diff --git a/data/field_tasks.s b/data/field_tasks.s new file mode 100644 index 000000000..8405c64d5 --- /dev/null +++ b/data/field_tasks.s @@ -0,0 +1,23 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_08510348:: @ 8510348 + .incbin "baserom.gba", 0x510348, 0x20 + +gUnknown_08510368:: @ 8510368 + .incbin "baserom.gba", 0x510368, 0x20 + +gUnknown_08510388:: @ 8510388 + .incbin "baserom.gba", 0x510388, 0x20 + +gUnknown_085103A8:: @ 85103A8 + .incbin "baserom.gba", 0x5103a8, 0x20 + +gUnknown_085103C8:: @ 85103C8 + .incbin "baserom.gba", 0x5103c8, 0x34 + +gUnknown_085103FC:: @ 85103FC + .incbin "baserom.gba", 0x5103fc, 0x8 diff --git a/data/fieldmap.s b/data/fieldmap.s new file mode 100644 index 000000000..e2cc537da --- /dev/null +++ b/data/fieldmap.s @@ -0,0 +1,8 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_08486EF8:: @ 8486EF8 + .incbin "baserom.gba", 0x486ef8, 0x4 diff --git a/data/fldeff_cut.s b/data/fldeff_cut.s new file mode 100644 index 000000000..96bdcede4 --- /dev/null +++ b/data/fldeff_cut.s @@ -0,0 +1,18 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_0857C608:: @ 857C608 + .incbin "baserom.gba", 0x57c608, 0x2 + +gUnknown_0857C60A:: @ 857C60A + .incbin "baserom.gba", 0x57c60a, 0x5a + + .align 2 +gFieldEffectObjectPaletteInfo6:: @ 857C664 + obj_pal gFieldEffectObjectPalette6, 0x1000 + +gUnknown_0857C66C:: @ 857C66C + .incbin "baserom.gba", 0x57c66c, 0x18 diff --git a/data/fldeff_emotion.s b/data/fldeff_emotion.s new file mode 100644 index 000000000..f2c90d637 --- /dev/null +++ b/data/fldeff_emotion.s @@ -0,0 +1,11 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_085507B4:: @ 85507B4 + .incbin "baserom.gba", 0x5507b4, 0x18 + +gUnknown_085507CC:: @ 85507CC + .incbin "baserom.gba", 0x5507cc, 0x18 diff --git a/data/fossil_special_fldeff_groundshake.s b/data/fossil_special_fldeff_groundshake.s new file mode 100644 index 000000000..8f968d409 --- /dev/null +++ b/data/fossil_special_fldeff_groundshake.s @@ -0,0 +1,34 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + +gUnknown_08617274:: @ 8617274 + .incbin "baserom.gba", 0x617274, 0x920 + +gUnknown_08617B94:: @ 8617B94 + .incbin "baserom.gba", 0x617b94, 0xb0 + +gUnknown_08617C44:: @ 8617C44 + .incbin "baserom.gba", 0x617c44, 0x120 + +gUnknown_08617D64:: @ 8617D64 + .incbin "baserom.gba", 0x617d64, 0x30 + +gUnknown_08617D94:: @ 8617D94 + .incbin "baserom.gba", 0x617d94, 0x10 + +gUnknown_08617DA4:: @ 8617DA4 + .incbin "baserom.gba", 0x617da4, 0x5c + +gUnknown_08617E00:: @ 8617E00 + .incbin "baserom.gba", 0x617e00, 0x18 + +gUnknown_08617E18:: @ 8617E18 + .incbin "baserom.gba", 0x617e18, 0x1c + +gUnknown_08617E34:: @ 8617E34 + .incbin "baserom.gba", 0x617e34, 0x2c + +gUnknown_08617E60:: @ 8617E60 + .incbin "baserom.gba", 0x617e60, 0x18 diff --git a/data/graphics.s b/data/graphics.s index bf080fd95..e817e62dd 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -13,16 +13,42 @@ gUnknown_08C00524:: @ 8C00524 .include "data/graphics/pokemon/circled_question_mark_graphics.inc" @ 8C00C10 - .incbin "baserom.gba", 0xc00c10, 0x16f0 + .incbin "baserom.gba", 0xc00c10, 0xa34 + +gUnknown_08C01644:: @ 8C01644 + .incbin "baserom.gba", 0xc01644, 0xE0 + +gUnknown_08C01724:: @ 8C01724 + .incbin "baserom.gba", 0xc01724, 0xBDC gUnknown_08C02300:: @ 8C02300 - .incbin "baserom.gba", 0xc02300, 0x70f0 + .incbin "baserom.gba", 0xc02300, 0x7c + +gUnknown_08C0237C:: @ 8C0237C + .incbin "baserom.gba", 0xc0237c, 0x7074 gUnknown_08C093F0:: @ 8C093F0 - .incbin "baserom.gba", 0xc093f0, 0x87ec + .incbin "baserom.gba", 0xc093f0, 0x87ac + .align 2 +gBattleInterface_BallStatusBarPal:: @ 8C11B9C + .incbin "graphics/battle_interface/ball_status_bar.gbapal" + + .align 2 +gBattleInterface_BallDisplayPal:: @ 8C11BBC + .incbin "graphics/battle_interface/ball_display.gbapal" + + .align 2 gUnknown_08C11BDC:: @ 8C11BDC - .incbin "baserom.gba", 0xc11bdc, 0x52b4 + .incbin "baserom.gba", 0xc11bdc, 0x840 + + .align 2 +gBattleInterface_BallDisplayGfx:: @ 8C1241C + .incbin "graphics/battle_interface/ball_display.4bpp" + + .align 2 +gUnknown_08C1249C:: @ 8C1249C + .incbin "baserom.gba", 0xc1249c, 0x49f4 gUnknown_08C16E90:: @ 8C16E90 .incbin "baserom.gba", 0xc16e90, 0x118 @@ -55,7 +81,13 @@ gUnknown_08C1A12C:: @ 8C1A12C .incbin "baserom.gba", 0xc1a12c, 0x188 gUnknown_08C1A2B4:: @ 8C1A2B4 - .incbin "baserom.gba", 0xc1a2b4, 0x2404 + .incbin "baserom.gba", 0xc1a2b4, 0x1DC + +gUnknown_08C1A490:: @ 8C1A490 + .incbin "baserom.gba", 0xc1a490, 0xD4 + +gUnknown_08C1A564:: @ 8C1A564 + .incbin "baserom.gba", 0xc1a564, 0x2154 gUnknown_08C1C6B8:: @ 8C1C6B8 .incbin "baserom.gba", 0xc1c6b8, 0x9f4 @@ -67,7 +99,22 @@ gUnknown_08C1D1E8:: @ 8C1D1E8 .incbin "baserom.gba", 0xc1d1e8, 0x28 gUnknown_08C1D210:: @ 8C1D210 - .incbin "baserom.gba", 0xc1d210, 0x3458 + .incbin "baserom.gba", 0xc1d210, 0x1fb8 + +gUnknown_08C1F1C8:: @ 8C1F1C8 + .incbin "baserom.gba", 0xc1f1c8, 0x2a4 + +gUnknown_08C1F46C:: @ 8C1F46C + .incbin "baserom.gba", 0xc1f46c, 0x17c + +gUnknown_08C1F5E8:: @ 8C1F5E8 + .incbin "baserom.gba", 0xc1f5e8, 0x184 + +gUnknown_08C1F76C:: @ 8C1F76C + .incbin "baserom.gba", 0xc1f76c, 0x17c + +gUnknown_08C1F8E8:: @ 8C1F8E8 + .incbin "baserom.gba", 0xc1f8e8, 0xd80 gUnknown_08C20668:: @ 8C20668 .incbin "baserom.gba", 0xc20668, 0x1c @@ -318,7 +365,19 @@ gUnknown_08D85600:: @ 8D85600 .incbin "baserom.gba", 0xd85600, 0x20 gUnknown_08D85620:: @ 8D85620 - .incbin "baserom.gba", 0xd85620, 0xa8 + .incbin "baserom.gba", 0xd85620, 0x20 + +gUnknown_08D85640:: @ 8D85640 + .incbin "baserom.gba", 0xd85640, 0x20 + +gUnknown_08D85660:: @ 8D85660 + .incbin "baserom.gba", 0xd85660, 0x20 + +gUnknown_08D85680:: @ 8D85680 + .incbin "baserom.gba", 0xd85680, 0x20 + +gUnknown_08D856A0:: @ 8D856A0 + .incbin "baserom.gba", 0xd856a0, 0x28 gUnknown_08D856C8:: @ 8D856C8 .incbin "baserom.gba", 0xd856c8, 0xe0 @@ -330,8 +389,13 @@ gUnknown_08D85A1C:: @ 8D85A1C .incbin "baserom.gba", 0xd85a1c, 0x234 gUnknown_08D85C50:: @ 8D85C50 - .incbin "baserom.gba", 0xd85c50, 0x80 + .incbin "baserom.gba", 0xd85c50, 0x60 + .align 2 +gIntro2BrendanNoTurnPal:: @ 8D85CB0 + .incbin "graphics/intro/intro2_brendan_noturn.gbapal" + + .align 2 gUnknown_08D85CD0:: @ 8D85CD0 .incbin "baserom.gba", 0xd85cd0, 0x182 @@ -342,8 +406,49 @@ gUnknown_08D85E72:: @ 8D85E72 .incbin "baserom.gba", 0xd85e72, 0xa gUnknown_08D85E7C:: @ 8D85E7C - .incbin "baserom.gba", 0xd85e7c, 0x2618 + .incbin "baserom.gba", 0xd85e7c, 0x54 + .align 2 +gIntro2VolbeatPal:: @ 8D85ED0 + .incbin "graphics/intro/intro2_volbeat.gbapal" + + .align 2 +gIntro2TorchicPal:: @ 8D85EF0 + .incbin "graphics/intro/intro2_torchic.gbapal" + + .align 2 +gIntro2ManectricPal:: @ 8D85ED0 + .incbin "graphics/intro/intro2_manectric.gbapal" + + .align 2 +gIntro2FlygonPal:: @ 8D85F30 + .incbin "graphics/intro/intro2_flygon.gbapal" + + .align 2 +gIntro2VolbeatGfx:: @ 8D85F50 + .incbin "graphics/intro/intro2_volbeat.4bpp.lz" + + .align 2 +gIntro2TorchicGfx:: @ 8D86130 + .incbin "graphics/intro/intro2_torchic.4bpp.lz" + + .align 2 +gIntro2ManectricGfx:: @ 8D86550 + .incbin "graphics/intro/intro2_manectric.4bpp.lz" + + .align 2 +gIntro2FlygonGfx:: @ 8D8702C + .incbin "graphics/intro/intro2_flygon.4bpp.lz" + + .align 2 +gIntro2BrendanNoTurnGfx:: @ 8D87568 + .incbin "graphics/intro/intro2_brendan_noturn.4bpp.lz" + + .align 2 +gIntro2MayNoTurnGfx:: @ 8D87CA4 + .incbin "graphics/intro/intro2_may_noturn.4bpp.lz" + + .align 2 gUnknown_08D88494:: @ 8D88494 .incbin "baserom.gba", 0xd88494, 0x8ac @@ -375,8 +480,17 @@ gUnknown_08D8B440:: @ 8D8B440 .incbin "baserom.gba", 0xd8b440, 0x2a8 gUnknown_08D8B6E8:: @ 8D8B6E8 - .incbin "baserom.gba", 0xd8b6e8, 0x38c + .incbin "baserom.gba", 0xd8b6e8, 0x124 + .align 2 +gIntro3LightningGfx:: @ 8D8B80C + .incbin "graphics/intro/intro3_lightning.4bpp.lz" + + .align 2 +gIntro3LightningPal:: @ 8D8BA54 + .incbin "graphics/intro/intro3_lightning.gbapal" + + .align 2 gUnknown_08D8BA74:: @ 8D8BA74 .incbin "baserom.gba", 0xd8ba74, 0x6f8 @@ -387,7 +501,26 @@ gUnknown_08D8C838:: @ 8D8C838 .incbin "baserom.gba", 0xd8c838, 0x490 gUnknown_08D8CCC8:: @ 8D8CCC8 - .incbin "baserom.gba", 0xd8ccc8, 0x748 + .incbin "baserom.gba", 0xd8ccc8, 0x27c + + .align 2 +gIntro2BubblesGfx:: @ 8D8CF44 + .incbin "graphics/intro/intro2_bubbles.4bpp.lz" + + .align 2 +gIntro2BubblesPal:: @ 8D8D110 + .incbin "graphics/intro/intro2_bubbles.gbapal" + + .align 2 +gIntro1FlygonGfx:: @ 8D8D130 + .incbin "graphics/intro/intro1_flygon.4bpp.lz" + + .align 2 +gIntro1SparkleGfx:: @ 8D8D208 + .incbin "graphics/intro/intro1_sparkle.4bpp.lz" + + .align 2 + .incbin "baserom.gba", 0xd8d2a4, 0x16c gUnknown_08D8D410:: @ 8D8D410 .incbin "baserom.gba", 0xd8d410, 0x17c @@ -408,7 +541,14 @@ gUnknown_08D8EC24:: @ 8D8EC24 .incbin "baserom.gba", 0xd8ec24, 0xf78 gUnknown_08D8FB9C:: @ 8D8FB9C - .incbin "baserom.gba", 0xd8fb9c, 0xd8 + .incbin "baserom.gba", 0xd8fb9c, 0x24 + +gUnknown_08D8FBC0:: @ 8D8FBC0 + .incbin "baserom.gba", 0xd8fbc0, 0x30 + + .align 2 +gBattleInterface_BallStatusBarGfx:: @ 8D8FBF0 + .incbin "graphics/battle_interface/ball_status_bar.4bpp.lz" .align 2 gMonIcon_Egg:: @ 8D8FC74 @@ -506,14 +646,17 @@ gUnknown_08D9AE04:: @ 8D9AE04 gUnknown_08D9AF44:: @ 8D9AF44 .incbin "baserom.gba", 0xd9af44, 0x78 -gUnknown_08D9AFBC:: @ 8D9AFBC +gBuyMenuFrame_Gfx:: @ 8D9AFBC .incbin "baserom.gba", 0xd9afbc, 0x10c -gUnknown_08D9B0C8:: @ 8D9B0C8 +gMenuMoneyPal:: @ 8D9B0C8 .incbin "baserom.gba", 0xd9b0c8, 0x28 -gUnknown_08D9B0F0:: @ 8D9B0F0 - .incbin "baserom.gba", 0xd9b0f0, 0x1c4 +gBuyMenuFrame_Tilemap:: @ 8D9B0F0 + .incbin "baserom.gba", 0xd9b0f0, 0x140 + +gMenuMoneyGfx:: @ 8D9B230 + .incbin "baserom.gba", 0xd9b230, 0x84 gUnknown_08D9B2B4:: @ 8D9B2B4 .incbin "baserom.gba", 0xd9b2b4, 0x1bc @@ -639,11 +782,29 @@ gUnknown_08DAAFEC:: @ 8DAAFEC .incbin "baserom.gba", 0xdb7aa0, 0x2a78 gUnknown_08DBA518:: @ 8DBA518 - .incbin "baserom.gba", 0xdba518, 0xa0 + .incbin "baserom.gba", 0xdba518, 0x80 + .align 2 +gCableCar_Pal:: @ 8DBA598 + .incbin "graphics/misc/cable_car.gbapal" + + .align 2 gUnknown_08DBA5B8:: @ 8DBA5B8 - .incbin "baserom.gba", 0xdba5b8, 0x1d30 + .incbin "baserom.gba", 0xdba5b8, 0x19d8 + .align 2 +gCableCar_Gfx:: @ 8DBBF90 + .incbin "graphics/misc/cable_car.4bpp.lz" + + .align 2 +gCableCarDoor_Gfx:: @ 8DBC290 + .incbin "graphics/misc/cable_car_door.4bpp.lz" + + .align 2 +gCableCarCord_Gfx:: @ 8DBC2C0 + .incbin "graphics/misc/cable_car_cord.4bpp.lz" + + .align 2 gUnknown_08DBC2E8:: @ 8DBC2E8 .incbin "baserom.gba", 0xdbc2e8, 0x72c @@ -953,7 +1114,7 @@ gUnknown_08DD4BF0:: @ 8DD4BF0 gUnknown_08DD4C4C:: @ 8DD4C4C .incbin "baserom.gba", 0xdd4c4c, 0xac - + .align 2 gUnknown_08DD4CF8:: @ 8DD4CF8 .incbin "graphics/interface/unk_change_case.4bpp.lz" @@ -988,7 +1149,61 @@ gUnknown_08DD7300:: @ 8DD7300 .incbin "baserom.gba", 0xdd7300, 0x60 gUnknown_08DD7360:: @ 8DD7360 - .incbin "baserom.gba", 0xdd7360, 0x4084 + .incbin "baserom.gba", 0xdd7360, 0x1420 + +gUnknown_08DD8780:: @ 8DD8780 + .incbin "baserom.gba", 0xdd8780, 0x40 + +gUnknown_08DD87C0:: @ 8DD87C0 + .incbin "baserom.gba", 0xdd87c0, 0x720 + +gUnknown_08DD8EE0:: @ 8DD8EE0 + .incbin "baserom.gba", 0xdd8ee0, 0x1a0 + +gUnknown_08DD9080:: @ 8DD9080 + .incbin "baserom.gba", 0xdd9080, 0x60 + +gUnknown_08DD90E0:: @ 8DD90E0 + .incbin "baserom.gba", 0xdd90e0, 0x638 + +gUnknown_08DD9718:: @ 8DD9718 + .incbin "baserom.gba", 0xdd9718, 0x15c + +gUnknown_08DD9874:: @ 8DD9874 + .incbin "baserom.gba", 0xdd9874, 0x40 + +gUnknown_08DD98B4:: @ 8DD98B4 + .incbin "baserom.gba", 0xdd98b4, 0x5a4 + +gUnknown_08DD9E58:: @ 8DD9E58 + .incbin "baserom.gba", 0xdd9e58, 0x194 + +gUnknown_08DD9FEC:: @ 8DD9FEC + .incbin "baserom.gba", 0xdd9fec, 0x40 + +gUnknown_08DDA02C:: @ 8DDA02C + .incbin "baserom.gba", 0xdda02c, 0x610 + +gUnknown_08DDA63C:: @ 8DDA63C + .incbin "baserom.gba", 0xdda63c, 0x1c4 + +gUnknown_08DDA800:: @ 8DDA800 + .incbin "baserom.gba", 0xdda800, 0x40 + +gUnknown_08DDA840:: @ 8DDA840 + .incbin "baserom.gba", 0xdda840, 0x600 + +gUnknown_08DDAE40:: @ 8DDAE40 + .incbin "baserom.gba", 0xddae40, 0x1a0 + +gUnknown_08DDAFE0:: @ 8DDAFE0 + .incbin "baserom.gba", 0xddafe0, 0x40 + +gUnknown_08DDB020:: @ 8DDB020 + .incbin "baserom.gba", 0xddb020, 0x2a4 + +gUnknown_08DDB2C4:: @ 8DDB2C4 + .incbin "baserom.gba", 0xddb2c4, 0x120 gUnknown_08DDB3E4:: @ 8DDB3E4 .incbin "baserom.gba", 0xddb3e4, 0x80 @@ -1029,19 +1244,29 @@ gTitleScreenBgPalettes:: @ 8DDE258 .incbin "graphics/title_screen/rayquaza_and_clouds.gbapal" .align 2 -gUnknown_08DDE438:: @ 8DDE438 - .incbin "baserom.gba", 0xdde438, 0x20 +gTitleScreenEmeraldVersionPal:: @ 8DDE438 + .incbin "graphics/title_screen/emerald_version.gbapal" + .align 2 gUnknown_08DDE458:: @ 8DDE458 .incbin "baserom.gba", 0xdde458, 0x238 -gTitleScreenPokemonLogoTiles:: @ 8DDE690 +gTitleScreenPokemonLogoGfx:: @ 8DDE690 .incbin "graphics/title_screen/pokemon_logo.8bpp.lz" .align 2 -@ 8DDFD94 - .incbin "baserom.gba", 0xddfd94, 0x8b0 +gTitleScreenEmeraldVersionGfx:: @ 8DDFD94 + .incbin "graphics/title_screen/emerald_version.8bpp.lz" + .align 2 +gTitleScreenPressStartPal:: @ 8DE03C8 + .incbin "graphics/title_screen/press_start.gbapal" + + .align 2 +gTitleScreenPressStartGfx:: @ 8DE03E8 + .incbin "graphics/title_screen/press_start.4bpp.lz" + + .align 2 gUnknown_08DE0644:: @ 8DE0644 .incbin "baserom.gba", 0xde0644, 0x184 diff --git a/data/heal_location.s b/data/heal_location.s new file mode 100644 index 000000000..31aa1a351 --- /dev/null +++ b/data/heal_location.s @@ -0,0 +1,11 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_0859F534:: @ 859F534 + .incbin "baserom.gba", 0x59f534, 0x8 + +gUnknown_0859F53C:: @ 859F53C + .incbin "baserom.gba", 0x59f53c, 0xd0 diff --git a/data/intro.s b/data/intro.s index 552799951..d43a57972 100644 --- a/data/intro.s +++ b/data/intro.s @@ -3,122 +3,527 @@ .section .rodata -gUnknown_085E05C4:: @ 85E05C4 - .incbin "baserom.gba", 0x5e05c4, 0x200 + .align 2 +gIntro1DropsPal:: @ 85DFF90 + .incbin "graphics/intro/intro1_drops.gbapal" -gUnknown_085E07C4:: @ 85E07C4 - .incbin "baserom.gba", 0x5e07c4, 0x3b4 + .align 2 +gIntro1GFLogoPal:: @ 85DFFB0 + .incbin "graphics/intro/intro1_gflogo.gbapal" -gUnknown_085E0B78:: @ 85E0B78 - .incbin "baserom.gba", 0x5e0b78, 0x334 + .align 2 +gIntroTiles:: @ 85DFFD0 + .incbin "graphics/intro/intro.4bpp.lz" -gUnknown_085E0EAC:: @ 85E0EAC - .incbin "baserom.gba", 0x5e0eac, 0x2f0 + .align 2 +gIntro1BGPals:: @ 85E05C4 + .incbin "graphics/intro/intro1_bgpal.gbapal" -gUnknown_085E119C:: @ 85E119C - .incbin "baserom.gba", 0x5e119c, 0x218 + .align 2 +gIntro1BG0_Tilemap:: @ 85E07C4 + .incbin "graphics/intro/intro1_bg0_map.bin.lz" -gUnknown_085E13B4:: @ 85E13B4 - .incbin "baserom.gba", 0x5e13b4, 0x2170 + .align 2 +gIntro1BG1_Tilemap:: @ 85E0B78 + .incbin "graphics/intro/intro1_bg1_map.bin.lz" -gUnknown_085E3524:: @ 85E3524 - .incbin "baserom.gba", 0x5e3524, 0x200 + .align 2 +gIntro1BG2_Tilemap:: @ 85E0EAC + .incbin "graphics/intro/intro1_bg2_map.bin.lz" -gUnknown_085E3724:: @ 85E3724 - .incbin "baserom.gba", 0x5e3724, 0x130 + .align 2 +gIntro1BG3_Tilemap:: @ 85E119C + .incbin "graphics/intro/intro1_bg3_map.bin.lz" -gUnknown_085E3854:: @ 85E3854 - .incbin "baserom.gba", 0x5e3854, 0x1220 + .align 2 +gIntro1BGLeavesGfx:: @ 85E13B4 + .incbin "graphics/intro/introgfx.4bpp.lz" + .align 2 +gIntro3PokeballPal:: @ 85E3524 + .incbin "graphics/intro/intro3_pokeball.gbapal" + + .align 2 +gIntro3Pokeball_Tilemap:: @ 85E3724 + .incbin "graphics/intro/intro3_pokeball_map.bin.lz" + + .align 2 +gIntro3Pokeball_Gfx:: @ 85E3854 + .incbin "graphics/intro/intro3_pokeball.8bpp.lz" + + .align 2 + .incbin "graphics/intro/intro3_streaks.gbapal" + + .align 2 + .incbin "graphics/intro/intro3_streaks.4bpp.lz" + + .align 2 + .incbin "graphics/intro/intro3_streaks_map.bin.lz" + + .align 2 +gIntro3Misc1Pal:: @ 85E4570 + .incbin "graphics/intro/intro3_misc1.gbapal" + + .align 2 + .incbin "graphics/intro/intro3_misc2.gbapal" + + .align 2 +gIntro3MiscTiles:: @ 85E45B0 + .incbin "graphics/intro/intro3_misc.4bpp.lz" + + .align 2 +gIntro1FlygonPal:: @ 85E492C + .incbin "graphics/intro/intro1_flygon.gbapal" + + .align 2 + .incbin "graphics/intro/intro1_eon.4bpp.lz" + + .align 2 + .byte 0x02, 0x03, 0x04, 0x05, 0x01, 0x01, 0x01, 0x06 + .byte 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x02, 0x0d + .byte 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15 + .byte 0x16, 0x17, 0x18, 0x19, 0x02, 0x0d, 0x0e, 0x0f + .byte 0x10, 0x11, 0x12, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e + .byte 0x1f, 0x20, 0x21, 0x02, 0x0d, 0x0e, 0x0f, 0x10 + .byte 0x11, 0x12, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27 + .byte 0x28, 0x29, 0x2a, 0x00 + + .align 2 gUnknown_085E4A74:: @ 85E4A74 - .incbin "baserom.gba", 0x5e4a74, 0x10 + obj_tiles gIntro1SparkleGfx, 0x0400, 0x05e1 + null_obj_tiles + .align 2 gUnknown_085E4A84:: @ 85E4A84 - .incbin "baserom.gba", 0x5e4a84, 0x34 + obj_pal gIntro3LightningPal, 0x05e1 + null_obj_pal + .align 2 +gUnknown_085E4A94:: @ 85E4A94 + .byte 0xa0, 0x00, 0x00, 0x40, 0x00, 0x04, 0x00, 0x00 + + .align 2 +gUnknown_085E4A9C:: @ 85E4A9C + .2byte 0x0000, 0x0002, 0x0004, 0x0002, 0x0008, 0x0002, 0x000c, 0x0002, 0x0010, 0x0002, 0xfffe, 0x0000 + + .align 2 +gUnknown_085E4AB4:: @ 85E4AB4 + .4byte gUnknown_085E4A9C + + .align 2 gUnknown_085E4AB8:: @ 85E4AB8 - .incbin "baserom.gba", 0x5e4ab8, 0x18 + spr_template 0x05e1, 0x05e1, gUnknown_085E4A94, gUnknown_085E4AB4, NULL, gDummySpriteAffineAnimTable, sub_816D338 + .align 2 gUnknown_085E4AD0:: @ 85E4AD0 - .incbin "baserom.gba", 0x5e4ad0, 0x18 + .byte 0x7c, 0x28, 0x66, 0x1e, 0x4d, 0x1e, 0x36, 0x0f + .byte 0x94, 0x09, 0x3f, 0x1c, 0x5d, 0x28, 0x94, 0x20 + .byte 0xad, 0x29, 0x5e, 0x14, 0xd0, 0x26, 0x00, 0x00 + .align 2 gUnknown_085E4AE8:: @ 85E4AE8 - .incbin "baserom.gba", 0x5e4ae8, 0x20 + obj_tiles gIntro2VolbeatGfx, 0x0400, 0x05dc + obj_tiles gIntro2TorchicGfx, 0x0c00, 0x05dd + obj_tiles gIntro2ManectricGfx, 0x2000, 0x05de + null_obj_tiles + .align 2 gUnknown_085E4B08:: @ 85E4B08 - .incbin "baserom.gba", 0x5e4b08, 0x38 + obj_pal gIntro2VolbeatPal, 0x05dc + obj_pal gIntro2TorchicPal, 0x05dd + obj_pal gIntro2ManectricPal, 0x05de + null_obj_pal + .align 2 +gUnknown_085E4B28:: @ 85E4B28 + .byte 0xa0, 0x00, 0x00, 0x80, 0x00, 0x04, 0x00, 0x00 + + .align 2 +gUnknown_085E4B30:: @ 85E4B30 + .2byte 0x0000, 0x0002, 0x0010, 0x0002, 0xfffe, 0x0000 + + .align 2 +gUnknown_085E4B3C:: @ 85E4B3C + .4byte gUnknown_085E4B30 + + .align 2 gUnknown_085E4B40:: @ 85E4B40 - .incbin "baserom.gba", 0x5e4b40, 0x64 + spr_template 0x05dc, 0x05dc, gUnknown_085E4B28, gUnknown_085E4B3C, NULL, gDummySpriteAffineAnimTable, sub_816D81C + .align 2 +gUnknown_085E4B58:: @ 85E4B58 + .byte 0xa0, 0x00, 0x00, 0x80, 0x00, 0x04, 0x00, 0x00 + + .align 2 +gUnknown_085E4B60:: @ 85E4B60 + .2byte 0x0000, 0x0005, 0x0010, 0x0005, 0x0020, 0x0005, 0x0010, 0x0005, 0xfffe, 0x0000 + + .align 2 +gUnknown_085E4B74:: @ 85E4B74 + .2byte 0x0000, 0x0003, 0x0010, 0x0003, 0x0020, 0x0003, 0x0010, 0x0003, 0xfffe, 0x0000 + + .align 2 +gUnknown_085E4B88:: @ 85E4B88 + .2byte 0x0030, 0x0004, 0x0040, 0x0006, 0x0050, 0x0000, 0xffff, 0x0000 + + .align 2 +gUnknown_085E4B98:: @ 85E4B98 + .4byte gUnknown_085E4B60 + .4byte gUnknown_085E4B74 + .4byte gUnknown_085E4B88 + + .align 2 gUnknown_085E4BA4:: @ 85E4BA4 - .incbin "baserom.gba", 0x5e4ba4, 0x38 + spr_template 0x05dd, 0x05dd, gUnknown_085E4B58, gUnknown_085E4B98, NULL, gDummySpriteAffineAnimTable, sub_816D9C0 + .align 2 +gUnknown_085E4BBC:: @ 85E4BBC + .byte 0xa0, 0x00, 0x00, 0xc0, 0x00, 0x04, 0x00, 0x00 + + .align 2 +gUnknown_085E4BC4:: @ 85E4BC4 + .2byte 0x0000, 0x0004, 0x0040, 0x0004, 0x0080, 0x0004, 0x00c0, 0x0004, 0xfffe, 0x0000 + + .align 2 +gUnknown_085E4BD8:: @ 85E4BD8 + .4byte gUnknown_085E4BC4 + + .align 2 gUnknown_085E4BDC:: @ 85E4BDC - .incbin "baserom.gba", 0x5e4bdc, 0x18 + spr_template 0x05de, 0x05de, gUnknown_085E4BBC, gUnknown_085E4BD8, NULL, gDummySpriteAffineAnimTable, sub_816DAE8 + .align 2 gUnknown_085E4BF4:: @ 85E4BF4 - .incbin "baserom.gba", 0x5e4bf4, 0x10 + obj_tiles gIntro3LightningGfx, 0x0c00, 0x05df + null_obj_tiles + .align 2 gUnknown_085E4C04:: @ 85E4C04 - .incbin "baserom.gba", 0x5e4c04, 0x48 + obj_pal gIntro3LightningPal, 0x05df + null_obj_pal + .align 2 +gUnknown_085E4C14:: @ 85E4C14 + .byte 0xa0, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00 + + .align 2 +gUnknown_085E4C1C:: @ 85E4C1C + .2byte 0x0000, 0x0002, 0x0030, 0x0002, 0xffff, 0x0000 + + .align 2 +gUnknown_085E4C28:: @ 85E4C28 + .2byte 0x0010, 0x0002, 0x0040, 0x0002, 0xffff, 0x0000 + + .align 2 +gUnknown_085E4C34:: @ 85E4C34 + .2byte 0x0020, 0x0002, 0x0050, 0x0002, 0xffff, 0x0000 + + .align 2 +gUnknown_085E4C40:: @ 85E4C40 + .4byte gUnknown_085E4C1C + .4byte gUnknown_085E4C28 + .4byte gUnknown_085E4C34 + + .align 2 gUnknown_085E4C4C:: @ 85E4C4C - .incbin "baserom.gba", 0x5e4c4c, 0x18 + spr_template 0x05df, 0x05df, gUnknown_085E4C14, gUnknown_085E4C40, NULL, gDummySpriteAffineAnimTable, sub_816EC6C + .align 2 gUnknown_085E4C64:: @ 85E4C64 - .incbin "baserom.gba", 0x5e4c64, 0x24 + .2byte 0x0068, 0x0000, 0x00c0, 0x008e, 0x0003, 0x0280, 0x0053, 0x0001 + .2byte 0x0180, 0x009b, 0x0000, 0x0080, 0x0038, 0x0002, 0x0200, 0x00ae + .2byte 0x0001, 0x0100 + .align 2 gUnknown_085E4C88:: @ 85E4C88 - .incbin "baserom.gba", 0x5e4c88, 0x10 + obj_tiles gIntro2BubblesGfx, 0x0600, 0x05e0 + null_obj_tiles + .align 2 gUnknown_085E4C98:: @ 85E4C98 - .incbin "baserom.gba", 0x5e4c98, 0x10 + obj_pal gIntro2BubblesPal, 0x05e0 + null_obj_pal + .align 2 gUnknown_085E4CA8:: @ 85E4CA8 - .incbin "baserom.gba", 0x5e4ca8, 0x6c + .2byte 0x0042, 0x0040, 0x0001, 0x0060, 0x0060, 0x0008, 0x0080, 0x0040 + .2byte 0x0001, 0x0090, 0x0030, 0x0008, 0x00a0, 0x0048, 0x0001, 0x00b0 + .2byte 0x0060, 0x0008, 0x0060, 0x0060, 0x0004, 0x0070, 0x0068, 0x0008 + .2byte 0x0080, 0x0060, 0x0004, 0x0058, 0x0020, 0x0004, 0x0068, 0x0018 + .2byte 0x0008, 0x0078, 0x0020, 0x0004 + .align 2 +gUnknown_085E4CF0:: @ 85E4CF0 + .byte 0xa0, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00 + + .align 2 +gUnknown_085E4CF8:: @ 85E4CF8 + .2byte 0x0000, 0x0004, 0x0008, 0x0004, 0x0010, 0x0004, 0x0018, 0x0004 + .2byte 0x0020, 0x0004, 0xffff, 0x0000 + + .align 2 +gUnknown_085E4D10:: @ 85E4D10 + .4byte gUnknown_085E4CF8 + + .align 2 gUnknown_085E4D14:: @ 85E4D14 - .incbin "baserom.gba", 0x5e4d14, 0x50 + spr_template 0x05e0, 0x05e0, gUnknown_085E4CF0, gUnknown_085E4D10, NULL, gDummySpriteAffineAnimTable, sub_816E7B4 + .align 2 +gUnknown_085E4D2C:: @ 85E4D2C + .byte 0xa0, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00 + + .align 2 +gUnknown_085E4D34:: @ 85E4D34 + .2byte 0x0010, 0x0008, 0xffff, 0x0000 + + .align 2 +gUnknown_085E4D3C:: @ 85E4D3C + .2byte 0x0018, 0x0008, 0xffff, 0x0000 + + .align 2 +gUnknown_085E4D44:: @ 85E4D44 + .2byte 0x0000, 0x0008, 0xffff, 0x0000 + + .align 2 +gUnknown_085E4D4C:: @ 85E4D4C + .2byte 0x0030, 0x0008, 0xffff, 0x0000 + + .align 2 +gUnknown_085E4D54:: @ 85E4D54 + .4byte gUnknown_085E4D34 + .4byte gUnknown_085E4D3C + .4byte gUnknown_085E4D44 + .4byte gUnknown_085E4D4C + + .align 2 gUnknown_085E4D64:: @ 85E4D64 - .incbin "baserom.gba", 0x5e4d64, 0x60 + spr_template 0x07d0, 0x07d0, gUnknown_085E4D2C, gUnknown_085E4D54, NULL, gDummySpriteAffineAnimTable, sub_816F454 + .align 2 +gUnknown_085E4D7C:: @ 85E4D7C + .byte 0x00, 0x00, 0x04, 0x00, 0x40, 0x00, 0x04, 0x00 + + .align 2 +gUnknown_085E4D84:: @ 85E4D84 + .2byte 0x0080, 0x0004, 0x00c0, 0x0004, 0xfffe, 0x0000 + + .align 2 +gUnknown_085E4D90:: @ 85E4D90 + .2byte 0x0000, 0x0008, 0x0040, 0x0008, 0x0080, 0x0008, 0x00c0, 0x0008, 0xfffe, 0x0000 + + .align 2 +gUnknown_085E4DA4:: @ 85E4DA4 + .2byte 0x0100, 0x0004, 0x0140, 0x0004, 0x0180, 0x0004, 0xffff, 0x0000 + + .align 2 +gUnknown_085E4DB4:: @ 85E4DB4 + .2byte 0x0180, 0x0010, 0x0140, 0x0010, 0x0100, 0x0010, 0xffff, 0x0000 + + .align 2 gUnknown_085E4DC4:: @ 85E4DC4 - .incbin "baserom.gba", 0x5e4dc4, 0xd0 + .4byte gUnknown_085E4D7C + .4byte gUnknown_085E4D90 + .4byte gUnknown_085E4DA4 + .4byte gUnknown_085E4DB4 + .align 2 +gUnknown_085E4DD4:: @ 85E4DD4 + .2byte 0x03a0, 0x4000, 0x0000, 0x0000 + + .align 2 +gUnknown_085E4DDC:: @ 85E4DDC + .2byte 0x00a0, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_085E4DE4:: @ 85E4DE4 + .2byte 0x87a0, 0xc000, 0x0000, 0x0000 + + .align 2 +gUnknown_085E4DEC:: @ 85E4DEC + .2byte 0x0050, 0x0008, 0xffff, 0x0000 + + .align 2 +gUnknown_085E4DF4:: @ 85E4DF4 + .2byte 0x0054, 0x0008, 0xffff, 0x0000 + + .align 2 +gUnknown_085E4DFC:: @ 85E4DFC + .2byte 0x0058, 0x0008, 0xffff, 0x0000 + + .align 2 +gUnknown_085E4E04:: @ 85E4E04 + .2byte 0x005c, 0x0008, 0xffff, 0x0000 + + .align 2 +gUnknown_085E4E0C:: @ 85E4E0C + .2byte 0x0060, 0x0008, 0xffff, 0x0000 + + .align 2 +gUnknown_085E4E14:: @ 85E4E14 + .2byte 0x0064, 0x0008, 0xffff, 0x0000 + + .align 2 +gUnknown_085E4E1C:: @ 85E4E1C + .2byte 0x0068, 0x0008, 0xffff, 0x0000 + + .align 2 +gUnknown_085E4E24:: @ 85E4E24 + .2byte 0x0070, 0x0008, 0xffff, 0x0000 + + .align 2 +gUnknown_085E4E2C:: @ 85E4E2C + .2byte 0x0071, 0x0008, 0xffff, 0x0000 + + .align 2 +gUnknown_085E4E34:: @ 85E4E34 + .2byte 0x0072, 0x0008, 0xffff, 0x0000 + + .align 2 +gUnknown_085E4E3C:: @ 85E4E3C + .2byte 0x0073, 0x0008, 0xffff, 0x0000 + + .align 2 +gUnknown_085E4E44:: @ 85E4E44 + .2byte 0x0074, 0x0008, 0xffff, 0x0000 + + .align 2 +gUnknown_085E4E4C:: @ 85E4E4C + .2byte 0x0075, 0x0008, 0xffff, 0x0000 + + .align 2 +gUnknown_085E4E54:: @ 85E4E54 + .2byte 0x0080, 0x0008, 0xffff, 0x0000 + + .align 2 +gUnknown_085E4E5C:: @ 85E4E5C + .4byte gUnknown_085E4DEC + .4byte gUnknown_085E4DF4 + .4byte gUnknown_085E4DFC + .4byte gUnknown_085E4E04 + .4byte gUnknown_085E4E0C + .4byte gUnknown_085E4E14 + .4byte gUnknown_085E4E1C + + .align 2 +gUnknown_085E4E78:: @ 85E4E78 + .4byte gUnknown_085E4E24 + .4byte gUnknown_085E4E2C + .4byte gUnknown_085E4E34 + .4byte gUnknown_085E4E3C + .4byte gUnknown_085E4E44 + .4byte gUnknown_085E4E4C + + .align 2 +gUnknown_085E4E90:: @ 85E4E90 + .4byte gUnknown_085E4E54 + + .align 2 gUnknown_085E4E94:: @ 85E4E94 - .incbin "baserom.gba", 0x5e4e94, 0xb4 + .2byte 0x0000, 0xffb8, 0x0001, 0xffc8, 0x0002, 0xffd8, 0x0003, 0xffe8 + .2byte 0x0004, 0x0008, 0x0005, 0x0018, 0x0003, 0x0028, 0x0001, 0x0038 + .2byte 0x0006, 0x0048, 0x0000, 0xffe4, 0x0001, 0xffec, 0x0002, 0xfff4 + .2byte 0x0003, 0xfffc, 0x0002, 0x0004, 0x0004, 0x000c, 0x0005, 0x0014 + .2byte 0x0003, 0x001c + .align 2 +gUnknown_085E4ED8:: @ 85E4ED8 + .2byte 0x0080, 0x0080, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_085E4EE8:: @ 85E4EE8 + .2byte 0x0080, 0x0080, 0x0000, 0x0000, 0x0010, 0x0010, 0x1000, 0x0000 + .2byte 0xfff0, 0xfff0, 0x0800, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_085E4F08:: @ 85E4F08 + .2byte 0x0100, 0x0100, 0x0000, 0x0000, 0x0008, 0x0008, 0x3000, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_085E4F20:: @ 85E4F20 + .2byte 0x0100, 0x0100, 0x0000, 0x0000, 0x0002, 0x0002, 0x3000, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_085E4F38:: @ 85E4F38 + .4byte gUnknown_085E4ED8 + .4byte gUnknown_085E4EE8 + .4byte gUnknown_085E4F08 + .4byte gUnknown_085E4F20 + + .align 2 gUnknown_085E4F48:: @ 85E4F48 - .incbin "baserom.gba", 0x5e4f48, 0x14 + .2byte 0x0100, 0x00c0, 0x0080, 0x0040, 0x0000, 0x0040, 0x0080, 0x00c0 + .2byte 0x0100, 0x0000 + .align 2 gUnknown_085E4F5C:: @ 85E4F5C - .incbin "baserom.gba", 0x5e4f5c, 0x30 + spr_template 0x07d0, 0x07d1, gUnknown_085E4DD4, gUnknown_085E4E5C, NULL, gUnknown_085E4F38, sub_816FB38 + spr_template 0x07d0, 0x07d1, gUnknown_085E4DDC, gUnknown_085E4E78, NULL, gDummySpriteAffineAnimTable, sub_816FB38 + .align 2 gUnknown_085E4F8C:: @ 85E4F8C - .incbin "baserom.gba", 0x5e4f8c, 0x18 + spr_template 0x07d0, 0x07d1, gUnknown_085E4DE4, gUnknown_085E4E90, NULL, gUnknown_085E4F38, sub_816FD44 + .align 2 gUnknown_085E4FA4:: @ 85E4FA4 - .incbin "baserom.gba", 0x5e4fa4, 0x20 + .byte 0x00, 0x17, 0x17, 0x31, 0x3e, 0x24, 0x24, 0x0a, 0x0a, 0x00, 0x00, 0x00 + .align 2 +gUnknown_085E4FB0:: @ 85E4FB0 + .byte 0xa0, 0x40, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00 + + .align 2 +gUnknown_085E4FB8:: @ 85E4FB8 + .2byte 0x0000, 0x000a, 0xfffe, 0x0000 + + .align 2 +gUnknown_085E4FC0:: @ 85E4FC0 + .4byte gUnknown_085E4FB8 + + .align 2 gUnknown_085E4FC4:: @ 85E4FC4 - .incbin "baserom.gba", 0x5e4fc4, 0x18 + spr_template 0x07d2, 0x07d2, gUnknown_085E4FB0, gUnknown_085E4FC0, NULL, gDummySpriteAffineAnimTable, sub_816FEDC + .align 2 gUnknown_085E4FDC:: @ 85E4FDC - .incbin "baserom.gba", 0x5e4fdc, 0x10 + obj_tiles gIntroTiles, 0x1400, 0x07d0 + null_obj_tiles gUnknown_085E4FEC:: @ 85E4FEC - .incbin "baserom.gba", 0x5e4fec, 0x10 + obj_tiles gIntro1FlygonGfx, 0x0400, 0x07d2 + null_obj_tiles + .align 2 gUnknown_085E4FFC:: @ 85E4FFC - .incbin "baserom.gba", 0x5e4ffc, 0x34 + obj_pal gIntro1DropsPal, 0x07d0 + obj_pal gIntro1GFLogoPal, 0x07d1 + obj_pal gIntro1FlygonPal, 0x07d2 + null_obj_pal + .align 2 +gUnknown_085E501C:: @ 85E501C + .byte 0xa0, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00 + + .align 2 +gUnknown_085E5024:: @ 85E5024 + .2byte 0x0010, 0x0008, 0xffff, 0x0000 + + .align 2 +gUnknown_085E502C:: @ 85E502C + .4byte gUnknown_085E5024 + + .align 2 gUnknown_085E5030:: @ 85E5030 - .incbin "baserom.gba", 0x5e5030, 0x18 + spr_template 0x07d3, 0x07d3, gUnknown_085E501C, gUnknown_085E502C, NULL, gDummySpriteAffineAnimTable, sub_8170040 + .align 2 gUnknown_085E5048:: @ 85E5048 - .incbin "baserom.gba", 0x5e5048, 0x10 + obj_tiles gIntro3MiscTiles, 0x0a00, 0x07d3 + null_obj_tiles gUnknown_085E5058:: @ 85E5058 - .incbin "baserom.gba", 0x5e5058, 0x10 + obj_pal gIntro3Misc1Pal, 0x07d3 + null_obj_pal + diff --git a/data/intro_credits_graphics.s b/data/intro_credits_graphics.s index a1a0eb460..636c1a8fb 100644 --- a/data/intro_credits_graphics.s +++ b/data/intro_credits_graphics.s @@ -3,146 +3,457 @@ .section .rodata + .align 2 gUnknown_085F06E0:: @ 85F06E0 - .incbin "baserom.gba", 0x5f06e0, 0x20 + .incbin "graphics/intro/intro2_grass.gbapal" + .align 2 gUnknown_085F0700:: @ 85F0700 - .incbin "baserom.gba", 0x5f0700, 0x20 + .incbin "graphics/intro/intro2_grass_afternoon.gbapal" + .align 2 gUnknown_085F0720:: @ 85F0720 - .incbin "baserom.gba", 0x5f0720, 0x20 + .incbin "graphics/intro/intro2_grass_night.gbapal" + .align 2 gUnknown_085F0740:: @ 85F0740 - .incbin "baserom.gba", 0x5f0740, 0x480 + .incbin "graphics/intro/intro2_grass.4bpp.lz" + .align 2 gUnknown_085F0BC0:: @ 85F0BC0 - .incbin "baserom.gba", 0x5f0bc0, 0x13c + .incbin "graphics/intro/intro2_grass_map.bin.lz" + .align 2 gUnknown_085F0CFC:: @ 85F0CFC - .incbin "baserom.gba", 0x5f0cfc, 0x60 + .incbin "graphics/intro/85F0CFC.gbapal" + .align 2 gUnknown_085F0D5C:: @ 85F0D5C - .incbin "baserom.gba", 0x5f0d5c, 0x60 + .incbin "graphics/intro/85F0D5C.gbapal" + .align 2 gUnknown_085F0DBC:: @ 85F0DBC - .incbin "baserom.gba", 0x5f0dbc, 0x5dc + .incbin "graphics/intro/intro2_bgclouds.4bpp.lz" + .align 2 gUnknown_085F1398:: @ 85F1398 - .incbin "baserom.gba", 0x5f1398, 0x2d0 + .incbin "graphics/intro/intro2_bgclouds_map.bin.lz" + .align 2 gUnknown_085F1668:: @ 85F1668 - .incbin "baserom.gba", 0x5f1668, 0x20 + .incbin "graphics/intro/intro2_bgclouds.gbapal" + .align 2 gUnknown_085F1688:: @ 85F1688 - .incbin "baserom.gba", 0x5f1688, 0x20 + .incbin "graphics/intro/intro2_bgclouds_afternoon.gbapal" + .align 2 gUnknown_085F16A8:: @ 85F16A8 - .incbin "baserom.gba", 0x5f16a8, 0x13c + .incbin "graphics/intro/intro2_bgclouds2.4bpp.lz" + .align 2 gUnknown_085F17E4:: @ 85F17E4 - .incbin "baserom.gba", 0x5f17e4, 0x20 + .incbin "graphics/intro/intro2_bgtrees2.gbapal" + .align 2 gUnknown_085F1804:: @ 85F1804 - .incbin "baserom.gba", 0x5f1804, 0x20 + .incbin "graphics/intro/intro2_bgtrees2_afternoon.gbapal" + .align 2 gUnknown_085F1824:: @ 85F1824 - .incbin "baserom.gba", 0x5f1824, 0x688 + .incbin "graphics/intro/intro2_bgtrees.4bpp.lz" + .align 2 gUnknown_085F1EAC:: @ 85F1EAC - .incbin "baserom.gba", 0x5f1eac, 0x304 + .incbin "graphics/intro/intro2_bgtrees_map.bin.lz" + .align 2 gUnknown_085F21B0:: @ 85F21B0 - .incbin "baserom.gba", 0x5f21b0, 0x16c + .incbin "graphics/intro/intro2_bgtrees.gbapal" + .align 2 +gIntro2TreeGfx:: @ 85F21D0 + .incbin "graphics/intro/intro2_bgtreessmall.4bpp.lz" + + .align 2 gUnknown_085F231C:: @ 85F231C - .incbin "baserom.gba", 0x5f231c, 0x40 + .incbin "graphics/intro/85F231C.gbapal" + .align 2 gUnknown_085F235C:: @ 85F235C - .incbin "baserom.gba", 0x5f235c, 0x1ec + .incbin "graphics/intro/intro2_bgnight.4bpp.lz" + .align 2 gUnknown_085F2548:: @ 85F2548 - .incbin "baserom.gba", 0x5f2548, 0x20 + .incbin "graphics/intro/intro2_bgnight.gbapal" + .align 2 gUnknown_085F2568:: @ 85F2568 - .incbin "baserom.gba", 0x5f2568, 0x2ae4 + .incbin "graphics/intro/intro2_bgnight_map.bin.lz" + .align 2 +gIntro2NightGfx:: @ 85F2814 + .incbin "graphics/intro/intro2_night.4bpp.lz" + + .align 2 +gIntro2BrendanPal:: @ 85F2898 + .incbin "graphics/intro/intro2_brendan.gbapal" + + .align 2 +gIntro2BrendanGfx:: @ 85F28B8 + .incbin "graphics/intro/intro2_brendan.4bpp.lz" + + .align 2 +gIntro2MayPal:: @ 85F3470 + .incbin "graphics/intro/intro2_may.gbapal" + + .align 2 +gUnknown_085F3490:: @ 85F3490 + .space 0x1E0 + + .align 2 +gIntro2MayGfx:: @ 85F3670 + .incbin "graphics/intro/intro2_may.4bpp.lz" + + .align 2 +gIntro2BicycleGfx:: @ 85F4318 + .incbin "graphics/intro/intro2_bicycle.4bpp.lz" + + .align 2 +gIntro2LatiosPal:: @ 85F4744 + .incbin "graphics/intro/intro2_latios.gbapal" + + .align 2 +gIntro2LatiosGfx:: @ 85F4764 + .incbin "graphics/intro/intro2_latios.4bpp.lz" + + .align 2 +gIntro2LatiasPal:: @ 85F4C08 + .incbin "graphics/intro/intro2_latias.gbapal" + + .align 2 +gIntro2LatiasGfx:: @ 85F4C28 + .incbin "graphics/intro/intro2_latias.4bpp.lz" + + .align 2 gUnknown_085F504C:: @ 85F504C - .incbin "baserom.gba", 0x5f504c, 0x18 + spr_template 0x07d0, 0xffff, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_817B62C + .align 2 gUnknown_085F5064:: @ 85F5064 - .incbin "baserom.gba", 0x5f5064, 0x30 + obj_tiles gUnknown_085F16A8, 0x0400, 0x07d0 + null_obj_tiles + .align 2 +gUnknown_085F5074:: @ 85F5074 + obj_image_anim_frame 0, 30 + obj_image_anim_end + + .align 2 +gUnknown_085F507C:: @ 85F507C + obj_image_anim_frame 16, 30 + obj_image_anim_end + + .align 2 +gUnknown_085F5084:: @ 85F5084 + obj_image_anim_frame 20, 30 + obj_image_anim_end + + .align 2 +gUnknown_085F508C:: @ 85F508C + obj_image_anim_frame 22, 30 + obj_image_anim_end + + .align 2 gUnknown_085F5094:: @ 85F5094 - .incbin "baserom.gba", 0x5f5094, 0x10 + .4byte gUnknown_085F5074 + .4byte gUnknown_085F507C + .4byte gUnknown_085F5084 + .4byte gUnknown_085F508C + .align 2 gUnknown_085F50A4:: @ 85F50A4 - .incbin "baserom.gba", 0x5f50a4, 0x48 + .byte -128, 72, 32, 100 + .2byte 0xC00 + .space 2 + .byte -128, -98, 32, 100 + .2byte 0xC00 + .space 2 + .byte 65, -64, 40, 101 + .2byte 0x800 + .space 2 + .byte 65, 56, 40, 101 + .2byte 0x800 + .space 2 + .byte 18, 100, 44, 102 + .2byte 0x400 + .space 2 + .byte 18, -104, 44, 102 + .2byte 0x400 + .space 2 + .byte 19, 8, 46, 103 + .2byte 0x100 + .space 2 + .byte 19, 56, 46, 103 + .2byte 0x100 + .space 2 + .byte 19, -16, 46, 103 + .2byte 0x100 + .space 2 + .align 2 gUnknown_085F50EC:: @ 85F50EC - .incbin "baserom.gba", 0x5f50ec, 0x28 + obj_tiles gIntro2TreeGfx, 0x0400, 0x07d0 + null_obj_tiles + .align 2 +gUnknown_085F50FC:: @ 85F50FC + obj_image_anim_frame 0, 30 + obj_image_anim_end + + .align 2 +gUnknown_085F5104:: @ 85F5104 + obj_image_anim_frame 16, 30 + obj_image_anim_end + + .align 2 +gUnknown_085F510C:: @ 85F510C + obj_image_anim_frame 24, 30 + obj_image_anim_end + + .align 2 gUnknown_085F5114:: @ 85F5114 - .incbin "baserom.gba", 0x5f5114, 0xc + .4byte gUnknown_085F50FC + .4byte gUnknown_085F5104 + .4byte gUnknown_085F510C + .align 2 gUnknown_085F5120:: @ 85F5120 - .incbin "baserom.gba", 0x5f5120, 0x60 + .byte -128, 16, 88, 100 + .2byte 0x2000 + .space 2 + .byte -128, 80, 88, 100 + .2byte 0x2000 + .space 2 + .byte -128, -112, 88, 100 + .2byte 0x2000 + .space 2 + .byte -128, -48, 88, 100 + .2byte 0x2000 + .space 2 + .byte -95, 40, 88, 101 + .2byte 0x1000 + .space 2 + .byte -95, 104, 88, 101 + .2byte 0x1000 + .space 2 + .byte -95, -88, 88, 101 + .2byte 0x1000 + .space 2 + .byte -95, -24, 88, 101 + .2byte 0x1000 + .space 2 + .byte -94, 56, 88, 102 + .2byte 0x800 + .space 2 + .byte -94, 120, 88, 102 + .2byte 0x800 + .space 2 + .byte -94, -72, 88, 102 + .2byte 0x800 + .space 2 + .byte -94, -8, 88, 102 + .2byte 0x800 + .space 2 + .align 2 gUnknown_085F5180:: @ 85F5180 - .incbin "baserom.gba", 0x5f5180, 0x18 + obj_tiles gIntro2NightGfx, 0x0400, 0x07d0 + null_obj_tiles + .align 2 +gUnknown_085F5190:: @ 85F5190 + obj_image_anim_frame 0, 30 + obj_image_anim_end + + .align 2 gUnknown_085F5198:: @ 85F5198 - .incbin "baserom.gba", 0x5f5198, 0x4 + .4byte gUnknown_085F5190 + .align 2 gUnknown_085F519C:: @ 85F519C - .incbin "baserom.gba", 0x5f519c, 0x50 + .byte -128, 24, 88, 100 + .2byte 0x1000 + .space 2 + .byte -128, 64, 88, 100 + .2byte 0x1000 + .space 2 + .byte -128, 104, 88, 100 + .2byte 0x1000 + .space 2 + .byte -128, -112, 88, 100 + .2byte 0x1000 + .space 2 + .byte -128, -72, 88, 100 + .2byte 0x1000 + .space 2 + .byte -128, -32, 88, 100 + .2byte 0x1000 + .space 2 + .align 2 +gOamData_85F51CC:: @ 85F51CC + .2byte 0x00A0 + .2byte 0xC000 + .2byte 0x0400 + + .align 2 +gUnknown_085F51D4:: @ 85F51D4 + obj_image_anim_frame 0, 8 + obj_image_anim_frame 64, 8 + obj_image_anim_frame 128, 8 + obj_image_anim_frame 192, 8 + obj_image_anim_jump 0 + + .align 2 +gUnknown_085F51E8:: @ 85F51E8 + .4byte gUnknown_085F51D4 + + .align 2 gUnknown_085F51EC:: @ 85F51EC - .incbin "baserom.gba", 0x5f51ec, 0x18 + spr_template 0x03ea, 0x03ea, gOamData_85F51CC, gUnknown_085F51E8, NULL, gDummySpriteAffineAnimTable, nullsub_65 + .align 2 gUnknown_085F5204:: @ 85F5204 - .incbin "baserom.gba", 0x5f5204, 0x38 + spr_template 0x03eb, 0x03eb, gOamData_85F51CC, gUnknown_085F51E8, NULL, gDummySpriteAffineAnimTable, nullsub_65 + .align 2 +gUnknown_085F521C:: @ 85F521C + .2byte 0x40A0 + .2byte 0xC000 + .2byte 0x0400 + + .align 2 +gUnknown_085F5224:: @ 85F5224 + obj_image_anim_frame 0, 8 + obj_image_anim_frame 32, 8 + obj_image_anim_frame 64, 8 + obj_image_anim_frame 96, 8 + obj_image_anim_jump 0 + + .align 2 +gUnknown_085F5238:: @ 85F5238 + .4byte gUnknown_085F5224 + + .align 2 gUnknown_085F523C:: @ 85F523C - .incbin "baserom.gba", 0x5f523c, 0x18 + spr_template 0x03e9, 0x03ea, gUnknown_085F521C, gUnknown_085F5238, NULL, gDummySpriteAffineAnimTable, sub_817B7C4 + .align 2 gUnknown_085F5254:: @ 85F5254 - .incbin "baserom.gba", 0x5f5254, 0x38 + spr_template 0x03e9, 0x03eb, gUnknown_085F521C, gUnknown_085F5238, NULL, gDummySpriteAffineAnimTable, sub_817B7C4 + .align 2 +gUnknown_085F526C:: @ 85F526C + .2byte 0x00A0 + .2byte 0xC000 + .2byte 0x0400 + + .align 2 +gUnknown_085F5274:: @ 85F5274 + obj_image_anim_frame 0, 16 + obj_image_anim_end + + .align 2 +gUnknown_085F527C:: @ 85F527C + obj_image_anim_frame 64, 16 + obj_image_anim_end + + .align 2 +gUnknown_085F5284:: @ 85F5284 + .4byte gUnknown_085F5274 + .4byte gUnknown_085F527C + + .align 2 gUnknown_085F528C:: @ 85F528C - .incbin "baserom.gba", 0x5f528c, 0x18 + spr_template 0x03ec, 0x03ec, gUnknown_085F526C, gUnknown_085F5284, NULL, gDummySpriteAffineAnimTable, nullsub_66 + .align 2 gUnknown_085F52A4:: @ 85F52A4 - .incbin "baserom.gba", 0x5f52a4, 0x18 + spr_template 0x03ed, 0x03ed, gUnknown_085F526C, gUnknown_085F5284, NULL, gDummySpriteAffineAnimTable, nullsub_66 + .align 2 gUnknown_085F52BC:: @ 85F52BC - .incbin "baserom.gba", 0x5f52bc, 0x10 + obj_tiles gIntro2BrendanNoTurnGfx, 0x2000, 0x03ea + null_obj_tiles + .align 2 gUnknown_085F52CC:: @ 85F52CC - .incbin "baserom.gba", 0x5f52cc, 0x10 + obj_tiles gIntro2MayNoTurnGfx, 0x2000, 0x03eb + null_obj_tiles + .align 2 gUnknown_085F52DC:: @ 85F52DC - .incbin "baserom.gba", 0x5f52dc, 0x20 + obj_tiles gIntro2BicycleGfx, 0x1000, 0x03e9 + null_obj_tiles + .align 2 +gUnknown_085F52EC:: @ 85F52EC + obj_tiles gIntro2FlygonGfx, 0x1000, 0x03ec + null_obj_tiles + + .align 2 gUnknown_085F52FC:: @ 85F52FC - .incbin "baserom.gba", 0x5f52fc, 0x10 + obj_tiles gIntro2FlygonGfx, 0x1000, 0x03ed + null_obj_tiles + .align 2 gUnknown_085F530C:: @ 85F530C - .incbin "baserom.gba", 0x5f530c, 0x28 + obj_pal gIntro2BrendanNoTurnPal, 0x03ea + obj_pal gIntro2BrendanNoTurnPal, 0x03eb + obj_pal gIntro2FlygonPal, 0x03ec + obj_pal gIntro2FlygonPal, 0x03ed + null_obj_pal + .align 2 gUnknown_085F5334:: @ 85F5334 - .incbin "baserom.gba", 0x5f5334, 0x10 + obj_tiles gIntro2BrendanGfx, 0x3800, 0x03ea + null_obj_tiles + .align 2 gUnknown_085F5344:: @ 85F5344 - .incbin "baserom.gba", 0x5f5344, 0x10 + obj_tiles gIntro2MayGfx, 0x3800, 0x03eb + null_obj_tiles + .align 2 gUnknown_085F5354:: @ 85F5354 - .incbin "baserom.gba", 0x5f5354, 0x30 + obj_tiles gIntro2BicycleGfx, 0x1000, 0x03e9 + null_obj_tiles + .align 2 +gUnknown_085F5364:: @ 85F5364 + obj_tiles gIntro2LatiosGfx, 0x1000, 0x03ec + null_obj_tiles + + .align 2 +gUnknown_085F5374:: @ 85F5374 + obj_tiles gIntro2LatiasGfx, 0x1000, 0x03ed + null_obj_pal + + .align 2 gUnknown_085F5384:: @ 85F5384 - .incbin "baserom.gba", 0x5f5384, 0x28 + obj_pal gIntro2BrendanPal, 0x03ea + obj_pal gIntro2MayPal, 0x03eb + obj_pal gIntro2LatiosPal, 0x03ec + obj_pal gIntro2LatiasPal, 0x03ed + null_obj_pal + .align 2 gUnknown_085F53AC:: @ 85F53AC - .incbin "baserom.gba", 0x5f53ac, 0x10 + obj_tiles gIntro2BrendanGfx, 0x2000, 0x03ea + null_obj_tiles + .align 2 gUnknown_085F53BC:: @ 85F53BC - .incbin "baserom.gba", 0x5f53bc, 0x8 + obj_tiles gIntro2MayGfx, 0x2000, 0x03eb + null_obj_tiles diff --git a/data/item_icon.s b/data/item_icon.s new file mode 100644 index 000000000..dac00dc6c --- /dev/null +++ b/data/item_icon.s @@ -0,0 +1,13 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + +@ 8614410 + .include "data/graphics/items/item_icon_table.inc" + +@ 8614FE0 + .incbin "baserom.gba", 0x614fe0, 0x14 + +gUnknown_08614FF4:: @ 8614FF4 + .incbin "baserom.gba", 0x614ff4, 0x18 diff --git a/data/item_menu.s b/data/item_menu.s new file mode 100644 index 000000000..762f10ca4 --- /dev/null +++ b/data/item_menu.s @@ -0,0 +1,73 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + +gUnknown_08613F90:: @ 8613F90 + .incbin "baserom.gba", 0x613f90, 0xc + +gUnknown_08613F9C:: @ 8613F9C + .incbin "baserom.gba", 0x613f9c, 0x18 + +gUnknown_08613FB4:: @ 8613FB4 + .incbin "baserom.gba", 0x613fb4, 0x78 + +gUnknown_0861402C:: @ 861402C + .incbin "baserom.gba", 0x61402c, 0x4 + +gUnknown_08614030:: @ 8614030 + .incbin "baserom.gba", 0x614030, 0x4 + +gUnknown_08614034:: @ 8614034 + .incbin "baserom.gba", 0x614034, 0x4 + +gUnknown_08614038:: @ 8614038 + .incbin "baserom.gba", 0x614038, 0x4 + +gUnknown_0861403C:: @ 861403C + .incbin "baserom.gba", 0x61403c, 0x6 + +gUnknown_08614042:: @ 8614042 + .incbin "baserom.gba", 0x614042, 0x2 + +gUnknown_08614044:: @ 8614044 + .incbin "baserom.gba", 0x614044, 0x2 + +gUnknown_08614046:: @ 8614046 + .incbin "baserom.gba", 0x614046, 0x1 + +gUnknown_08614047:: @ 8614047 + .incbin "baserom.gba", 0x614047, 0x4 + +gUnknown_0861404B:: @ 861404B + .incbin "baserom.gba", 0x61404b, 0x2 + +gUnknown_0861404D:: @ 861404D + .incbin "baserom.gba", 0x61404d, 0x2 + +gUnknown_0861404F:: @ 861404F + .incbin "baserom.gba", 0x61404f, 0x5 + +gUnknown_08614054:: @ 8614054 + .incbin "baserom.gba", 0x614054, 0x30 + +gUnknown_08614084:: @ 8614084 + .incbin "baserom.gba", 0x614084, 0x8 + +gUnknown_0861408C:: @ 861408C + .incbin "baserom.gba", 0x61408c, 0x8 + +gUnknown_08614094:: @ 8614094 + .incbin "baserom.gba", 0x614094, 0x10 + +gUnknown_086140A4:: @ 86140A4 + .incbin "baserom.gba", 0x6140a4, 0xc0 + +gUnknown_08614164:: @ 8614164 + .incbin "baserom.gba", 0x614164, 0x10 + +gUnknown_08614174:: @ 8614174 + .incbin "baserom.gba", 0x614174, 0x38 + +gUnknown_086141AC:: @ 86141AC + .incbin "baserom.gba", 0x6141ac, 0x50 diff --git a/data/item_menu_icons.s b/data/item_menu_icons.s new file mode 100644 index 000000000..3b7b0ef89 --- /dev/null +++ b/data/item_menu_icons.s @@ -0,0 +1,62 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_0857F464:: @ 857F464 + .incbin "baserom.gba", 0x57f464, 0xe0 + +gUnknown_0857F544:: @ 857F544 + .incbin "baserom.gba", 0x57f544, 0x5f0 + +gUnknown_0857FB34:: @ 857FB34 + .incbin "baserom.gba", 0x57fb34, 0x8 + +gUnknown_0857FB3C:: @ 857FB3C + .incbin "baserom.gba", 0x57fb3c, 0x8 + +gUnknown_0857FB44:: @ 857FB44 + .incbin "baserom.gba", 0x57fb44, 0x8 + +gUnknown_0857FB4C:: @ 857FB4C + .incbin "baserom.gba", 0x57fb4c, 0x4c + +gUnknown_0857FB98:: @ 857FB98 + .incbin "baserom.gba", 0x57fb98, 0x4 + +gUnknown_0857FB9C:: @ 857FB9C + .incbin "baserom.gba", 0x57fb9c, 0x4 + +gUnknown_0857FBA0:: @ 857FBA0 + .incbin "baserom.gba", 0x57fba0, 0x8 + +gUnknown_0857FBA8:: @ 857FBA8 + .incbin "baserom.gba", 0x57fba8, 0x8 + +gUnknown_0857FBB0:: @ 857FBB0 + .incbin "baserom.gba", 0x57fbb0, 0x3c + +gUnknown_0857FBEC:: @ 857FBEC + .incbin "baserom.gba", 0x57fbec, 0x90 + +gUnknown_0857FC7C:: @ 857FC7C + .incbin "baserom.gba", 0x57fc7c, 0x18 + +@ 857FC94 + .include "data/graphics/berries/berry_pic_table.inc" + +gUnknown_0857FDEC:: @ 857FDEC + .incbin "baserom.gba", 0x57fdec, 0x8 + +gUnknown_0857FDF4:: @ 857FDF4 + .incbin "baserom.gba", 0x57fdf4, 0x1c + +gUnknown_0857FE10:: @ 857FE10 + .incbin "baserom.gba", 0x57fe10, 0x90 + +@ 857FEA0 + .include "data/text/item_descriptions.inc" + +@ 85839A0 + .include "data/items.inc" diff --git a/data/item_use.s b/data/item_use.s new file mode 100644 index 000000000..d9bcc44f6 --- /dev/null +++ b/data/item_use.s @@ -0,0 +1,21 @@ + + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + + .align 2 +gUnknown_085920D8:: @ 85920D8 + .4byte sub_81B617C + .4byte c2_exit_to_overworld_2_switch + .4byte NULL + + .align 2 +gUnknown_085920E4:: @ 85920E4 + .byte 0x02, 0x04, 0x01, 0x03 + + .align 2 +gUnknown_085920E8:: @ 85920E8 + .4byte sub_80FE03C + .4byte bag_menu_inits_lists_menu diff --git a/data/learn_move.s b/data/learn_move.s new file mode 100644 index 000000000..bcb8aeba1 --- /dev/null +++ b/data/learn_move.s @@ -0,0 +1,22 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + +gUnknown_085CEBB0:: @ 85CEBB0 + .incbin "baserom.gba", 0x5cebb0, 0x8 + +gUnknown_085CEBB8:: @ 85CEBB8 + .incbin "baserom.gba", 0x5cebb8, 0x8 + +gUnknown_085CEBC0:: @ 85CEBC0 + .incbin "baserom.gba", 0x5cebc0, 0x10 + +gUnknown_085CEBD0:: @ 85CEBD0 + .incbin "baserom.gba", 0x5cebd0, 0x40 + +gUnknown_085CEC10:: @ 85CEC10 + .incbin "baserom.gba", 0x5cec10, 0x18 + +gUnknown_085CEC28:: @ 85CEC28 + .incbin "baserom.gba", 0x5cec28, 0x8 diff --git a/data/link.s b/data/link.s index 900659502..d9cf886c5 100644 --- a/data/link.s +++ b/data/link.s @@ -54,48 +54,26 @@ gUnknown_082ED1FC:: @ 82ED1FC BgTemplate .4byte 0x000001F8 .4byte 0x00001081 -gUnknown_082ED204:: @ 82ED204 WindowTemplate - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x1E - .byte 0x05 - .byte 0x0F - .2byte 0x0002 - - .byte 0x00 - .byte 0x00 - .byte 0x06 - .byte 0x1E - .byte 0x07 - .byte 0x0F - .2byte 0x0098 - - .byte 0x00 - .byte 0x00 - .byte 0x0D - .byte 0x1E - .byte 0x07 - .byte 0x0F - .2byte 0x016A - - .byte 0xFF - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .2byte 0x0000 + .align 2 +gUnknown_082ED204:: @ 82ED204 + window_template 0x00, 0x00, 0x00, 0x1E, 0x05, 0x0F, 0x0002 + window_template 0x00, 0x00, 0x06, 0x1E, 0x07, 0x0F, 0x0098 + window_template 0x00, 0x00, 0x0D, 0x1E, 0x07, 0x0F, 0x016A + window_template_terminator + .align 2 gUnknown_082ED224:: @ 82ED224 .byte 0x00, 0x01, 0x02, 0x00, 0xff, 0xfe, 0xff, 0x00 + .align 2 gWirelessLinkIconPalette:: @ 82ED22C .incbin "graphics/interface/wireless_link_icon.gbapal" + .align 2 gWirelessLinkIconPic:: @ 82ED22C .incbin "graphics/interface/wireless_link_icon.4bpp.lz" + .align 2 gUnknown_082ED370:: @ 82ED370 .byte 0xff, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x37 .byte 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f @@ -130,6 +108,7 @@ gUnknown_082ED370:: @ 82ED370 .byte 0x2c, 0x2e, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c .byte 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94 + .align 2 gUnknown_082ED470:: @ 82ED470 .byte 0x20, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c .byte 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94 @@ -164,26 +143,33 @@ gUnknown_082ED470:: @ 82ED470 .byte 0x20, 0x2b, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x20 .byte 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00 + .align 2 gUnknown_082ED570:: @ 82ED570 .byte 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00 + .align 2 gUnknown_082ED578:: @ 82ED578 .2byte 0x0004, 0x0005, 0x0008, 0x0005, 0x000c, 0x0005, 0x0010, 0x000a .2byte 0x000c, 0x0005, 0x0008, 0x0005, 0xfffe, 0x0000 + .align 2 gUnknown_082ED594:: @ 82ED594 .2byte 0x0004, 0x0005, 0x0008, 0x0005, 0x000c, 0x000a, 0x0008, 0x0005 .2byte 0xfffe, 0x0000 + .align 2 gUnknown_082ED5A8:: @ 82ED5A8 .2byte 0x0004, 0x0005, 0x0008, 0x0005, 0xfffe, 0x0000 + .align 2 gUnknown_082ED5B4:: @ 82ED5B4 .2byte 0x0004, 0x000a, 0x0014, 0x000a, 0xfffe, 0x0000 + .align 2 gUnknown_082ED5C0:: @ 82ED5C0 .2byte 0x0018, 0x000a, 0x0004, 0x000a, 0xfffe, 0x0000 + .align 2 gUnknown_082ED5CC:: @ 82ED5CC .4byte gUnknown_082ED578 .4byte gUnknown_082ED594 @@ -191,33 +177,29 @@ gUnknown_082ED5CC:: @ 82ED5CC .4byte gUnknown_082ED5B4 .4byte gUnknown_082ED5C0 -gUnknown_082ED5E0:: @ 82ED5E0 struct CompressedSpriteSheet - .4byte gWirelessLinkIconPic - .2byte 0x0380 @ uncompressed size - .2byte 0xD431 @ tag + .align 2 +gUnknown_082ED5E0:: @ 82ED5E0 + obj_tiles gWirelessLinkIconPic, 0x0380, 0xD431 -gUnknown_082ED5E8:: @ 82ED5E8 struct SpritePalette - .4byte gWirelessLinkIconPalette - .2byte 0xD432 @ tag - .2byte 0x0000 @ padding + .align 2 +gUnknown_082ED5E8:: @ 82ED5E8 + obj_pal gWirelessLinkIconPalette, 0xD432 -gUnknown_082ED5F0:: @ 82ED5F0 struct SpriteTemplate - .2byte 0xD431 @ tileTag - .2byte 0xD432 @ paletteTag - .4byte gUnknown_082ED570 - .4byte gUnknown_082ED5CC - .4byte NULL - .4byte gDummySpriteAffineAnimTable - .4byte SpriteCallbackDummy + .align 2 +gUnknown_082ED5F0:: @ 82ED5F0 + spr_template 0xD431, 0xD432, gUnknown_082ED570, gUnknown_082ED5CC, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + .align 2 gUnknown_082ED608:: @ 82ED608 .byte 0x04, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00 .byte 0x14, 0x2b, 0x02, 0x02, 0x22, 0x2b, 0x02, 0x02 .byte 0x01, 0x00, 0x58, 0x02, 0x2c, 0x01, 0x00, 0x00 + .align 2 gUnknown_082ED620:: @ 82ED620 .byte 0x00, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00 + .align 2 gUnknown_082ED628:: @ 82ED628 .4byte 0x00000000, 0x00000001, 0x00000003, 0x00000007 .4byte 0x0000000f, 0x0000001f, 0x0000003f, 0x0000007f @@ -240,6 +222,7 @@ gUnknown_082ED6A5:: @ 82ED6A5 .byte 0x03, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00 .byte 0x00, 0x00, 0x00 + .align 2 gUnknown_082ED6B8:: @ 82ED6B8 .4byte gUnknown_020228C4 .4byte 0x000000c8 @@ -252,56 +235,57 @@ gUnknown_082ED6B8:: @ 82ED6B8 .4byte gUnknown_020228C4 .4byte 0x00000028 + .align 2 gUnknown_082ED6E0:: @ 82ED6E0 .2byte 0x0002, 0x7f7d, 0x0000, 0xffff .ascii "RFU WAIT" - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .space 7 .ascii "RFU BOOT" - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .space 7 .ascii "RFU ERROR" - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .space 6 .ascii "RFU RESET" - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .space 6 .ascii "RFU CONFIG" - .byte 0x00, 0x00, 0x00, 0x00, 0x00 + .space 5 .ascii "RFU START" - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .space 6 .ascii "RFU SC POLL" - .byte 0x00, 0x00, 0x00, 0x00 + .space 4 .ascii "RFU SP POLL" - .byte 0x00, 0x00, 0x00, 0x00 + .space 4 .ascii "RFU START" - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .space 6 .ascii "RFU SEND ERR" - .byte 0x00, 0x00, 0x00 + .space 3 .ascii "RFU CP POLL" - .byte 0x00, 0x00, 0x00, 0x00 + .space 4 .ascii " " - .byte 0x00, 0x00 + .space 2 .ascii "RECOVER START " - .byte 0x00, 0x00 + .space 2 .ascii "DISSCONECT " - .byte 0x00, 0x00 + .space 2 .ascii "RECOVER SUUSES" - .byte 0x00, 0x00 + .space 2 .ascii "RECOVER FAILED" - .byte 0x00, 0x00 + .space 2 .align 2 gUnknown_082ED7E0:: @ 82ED7E0 @@ -309,6 +293,7 @@ gUnknown_082ED7E0:: @ 82ED7E0 .4byte sub_8010AAC .4byte sub_8010D0C + .align 2 gUnknown_082ED7EC:: @ 82ED7EC .ascii "PokemonSioInfo" @@ -1657,7 +1642,7 @@ gUnknown_082F025C:: @ 82F025C window_template 0x00, 0x12, 0x07, 0x10, 0x06, 0x0f, 0x0001 gUnknown_082F0264:: @ 82F0264 - .4byte gUnknown_085EA333, 0x00000001 + .4byte gText_Register, 0x00000001 .4byte gUnknown_082EFD8C, 0x00000002 .4byte gUnknown_082EFD7C, 0x00000003 @@ -1901,7 +1886,7 @@ gUnknown_082F05A8:: @ 82F05A8 window_template 0x00, 0x00, 0x00, 0x1e, 0x02, 0x0c, 0x0013 window_template 0x00, 0x01, 0x0f, 0x1c, 0x04, 0x0c, 0x004f window_template 0x00, 0x00, 0x0f, 0x1e, 0x05, 0x0d, 0x004f - window_template 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 + window_template_terminator .align 2 gUnknown_082F05C8:: @ 82F05C8 @@ -1937,14 +1922,14 @@ gUnknown_082F0600:: @ 82F0600 .align 2 gUnknown_082F0608:: @ 82F0608 - .4byte gUnknown_085EEDEC, 0x00000000 - .4byte gUnknown_085EEDFC, 0x00000001 - .4byte gUnknown_085EEE28, 0xfffffffe + .4byte gText_WonderCards, 0x00000000 + .4byte gText_WonderNews, 0x00000001 + .4byte gText_Exit3, 0xfffffffe .align 2 gUnknown_082F0620:: @ 82F0620 - .4byte gUnknown_085EEE08, 0x00000000 - .4byte gUnknown_085EEE20, 0x00000001 + .4byte gText_WirelessCommunication, 0x00000000 + .4byte gText_Friend2, 0x00000001 .4byte gText_Cancel2, 0xfffffffe .align 2 @@ -1957,26 +1942,26 @@ gUnknown_082F0638:: @ 82F0638 struct ListMenuTemplate .align 2 gUnknown_082F0650:: @ 82F0650 - .4byte gUnknown_085EEE30, 0x00000000 - .4byte gUnknown_085EEE38, 0x00000001 - .4byte gUnknown_085EEE40, 0x00000002 + .4byte gText_Receive, 0x00000000 + .4byte gText_Send, 0x00000001 + .4byte gText_Toss, 0x00000002 .4byte gText_Cancel2, 0xfffffffe .align 2 gUnknown_082F0670:: @ 82F0670 - .4byte gUnknown_085EEE30, 0x00000000 - .4byte gUnknown_085EEE40, 0x00000002 + .4byte gText_Receive, 0x00000000 + .4byte gText_Toss, 0x00000002 .4byte gText_Cancel2, 0xfffffffe .align 2 gUnknown_082F0688:: @ 82F0688 - .4byte gUnknown_085EEE30, 0x00000000 - .4byte gUnknown_085EEE38, 0x00000001 + .4byte gText_Receive, 0x00000000 + .4byte gText_Send, 0x00000001 .4byte gText_Cancel2, 0xfffffffe .align 2 gUnknown_082F06A0:: @ 82F06A0 - .4byte gUnknown_085EEE30, 0x00000000 + .4byte gText_Receive, 0x00000000 .4byte gText_Cancel2, 0xfffffffe .align 2 @@ -2012,10 +1997,10 @@ gUnknown_082F06F8:: @ 82F06F8 .byte 0x21, 0x31, 0x00, 0x01 .align 2 - .4byte gUnknown_085EEE48 - .4byte gUnknown_085EEE8C - .4byte gUnknown_085EEEB8 - .4byte gUnknown_085EEED4 + .4byte gText_VarietyOfEventsImportedWireless + .4byte gText_WonderCardsInPossession + .4byte gText_ReadNewsThatArrived + .4byte gText_ReturnToTitle .align 2 gUnknown_082F0720:: @ 82F0720 struct TextColor @@ -2085,15 +2070,15 @@ gUnknown_082F0D3C:: @ 82F0D3C window_template 0x00, 0x03, 0x00, 0x18, 0x03, 0x0f, 0x0001 window_template 0x00, 0x03, 0x04, 0x15, 0x0f, 0x0f, 0x0049 window_template 0x00, 0x18, 0x04, 0x03, 0x0f, 0x0f, 0x0184 - window_template 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 + window_template_terminator .align 2 gUnknown_082F0D5C:: @ 82F0D5C - .4byte gUnknown_085EED41 - .4byte gUnknown_085EED5F - .4byte gUnknown_085EED6F - .4byte gUnknown_085EED80 - .4byte gUnknown_085EED9A + .4byte gText_WirelessCommStatus + .4byte gText_PeopleTrading + .4byte gText_PeopleBattling + .4byte gText_PeopleInUnionRoom + .4byte gText_PeopleCommunicating .align 2 gUnknown_082F0D70:: @ 82F0D70 @@ -2117,7 +2102,7 @@ gUnknown_082F0DD0:: @ 82F0DD0 .align 2 gUnknown_082F0DD4:: @ 82F0DD4 window_template 0x00, 0x03, 0x0f, 0x18, 0x04, 0x0e, 0x0014 - window_template 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 + window_template_terminator .align 2 gUnknown_082F0DE4:: @ 82F0DE4 @@ -2292,14 +2277,8 @@ gUnknown_082F1D08:: @ 82F1D08 struct SpritePalette .2byte 0x8000 .align 2 -gUnknown_082F1D48:: @ 82F1D48 struct SpriteTemplate - .2byte 0x8000 - .2byte 0x8000 - .4byte gUnknown_08524934 - .4byte gDummySpriteAnimTable - .4byte NULL - .4byte gDummySpriteAffineAnimTable - .4byte SpriteCallbackDummy +gUnknown_082F1D48:: @ 82F1D48 + spr_template 0x8000, 0x8000, gUnknown_08524934, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy .align 2 gUnknown_082F1D60:: @ 82F1D60 @@ -2776,7 +2755,7 @@ gUnknown_082F2C70:: @ 82F2C70 window_template 0x01, 0x09, 0x12, 0x0f, 0x02, 0x0c, 0x007a window_template 0x01, 0x00, 0x02, 0x06, 0x0f, 0x07, 0x0020 window_template 0x00, 0x01, 0x02, 0x07, 0x09, 0x0e, 0x0013 - window_template 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 + window_template_terminator .align 2 gUnknown_082F2C98:: @ 82F2C98 @@ -2804,37 +2783,37 @@ gUnknown_082F2C98:: @ 82F2C98 .align 2 gUnknown_082F2D40:: @ 82F2D40 - .4byte gUnknown_085ED265 + .4byte gText_QuitChatting .byte 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 - .4byte gUnknown_085ED274 + .4byte gText_RegisterTextWhere .byte 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 - .4byte gUnknown_085ED289 + .4byte gText_RegisterTextHere .byte 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 - .4byte gUnknown_085ED29D + .4byte gText_InputText .byte 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 - .4byte gUnknown_085ED2E8 + .4byte gText_ExitingChat .byte 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 - .4byte gUnknown_085ED2FA + .4byte gText_LeaderLeftEndingChat .byte 0x02, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00 - .4byte gUnknown_085ED325 + .4byte gText_RegisteredTextChanged .byte 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00 - .4byte gUnknown_085ED368 + .4byte gText_AlreadySavedFile .byte 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00 - .4byte gUnknown_085ED3A3 + .4byte gText_SavingDontTurnOff .byte 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00 - .4byte gUnknown_085ED3C5 + .4byte gText_PlayerSavedGame .byte 0x02, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00 - .4byte gUnknown_085ED3D8 + .4byte gText_IfLeaderLeavesChatEnds .byte 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00 .align 2 @@ -2843,11 +2822,11 @@ gText_Ellipsis:: @ 82F2DC4 .align 2 gUnknown_082F2DC8:: @ 82F2DC8 - .4byte gUnknown_085ED23C, 0x00000000 - .4byte gUnknown_085ED242, 0x00000000 - .4byte gUnknown_085ED24F, 0x00000000 - .4byte gUnknown_085ED257, 0x00000000 - .4byte gUnknown_085ED260, 0x00000000 + .4byte gText_Upper, 0x00000000 + .4byte gText_Lower, 0x00000000 + .4byte gText_Symbols, 0x00000000 + .4byte gText_Register2, 0x00000000 + .4byte gText_Exit2, 0x00000000 .align 2 gUnknown_082F2DF0:: @ 82F2DF0 @@ -2919,13 +2898,7 @@ gUnknown_082F318C:: @ 82F318C .align 2 gUnknown_082F319C:: @ 82F319C - .2byte 0x0000 @ tileTag - .2byte 0x0000 @ paletteTag - .4byte gUnknown_082F3164 - .4byte gUnknown_082F318C - .4byte NULL - .4byte gDummySpriteAffineAnimTable - .4byte SpriteCallbackDummy + spr_template 0x0000, 0x0000, gUnknown_082F3164, gUnknown_082F318C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy .align 2 gUnknown_082F31B4:: @ 82F31B4 @@ -2933,23 +2906,11 @@ gUnknown_082F31B4:: @ 82F31B4 .align 2 gUnknown_082F31BC:: @ 82F31BC - .2byte 0x0002 @ tileTag - .2byte 0x0000 @ paletteTag - .4byte gUnknown_082F31B4 - .4byte gDummySpriteAnimTable - .4byte NULL - .4byte gDummySpriteAffineAnimTable - .4byte sub_8020ABC + spr_template 0x0002, 0x0000, gUnknown_082F31B4, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8020ABC .align 2 gUnknown_082F31D4:: @ 82F31D4 - .2byte 0x0001 @ tileTag - .2byte 0x0000 @ paletteTag - .4byte gUnknown_082F31B4 - .4byte gDummySpriteAnimTable - .4byte NULL - .4byte gDummySpriteAffineAnimTable - .4byte sub_8020AF4 + spr_template 0x0001, 0x0000, gUnknown_082F31B4, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8020AF4 .align 2 gUnknown_082F31EC:: @ 82F31EC @@ -2984,23 +2945,11 @@ gUnknown_082F321C:: @ 82F321C .align 2 gUnknown_082F322C:: @ 82F322C - .2byte 0x0003 @ tileTag - .2byte 0x0000 @ paletteTag - .4byte gUnknown_082F31EC - .4byte gDummySpriteAnimTable - .4byte NULL - .4byte gDummySpriteAffineAnimTable - .4byte SpriteCallbackDummy + spr_template 0x0003, 0x0000, gUnknown_082F31EC, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy .align 2 gUnknown_082F3244:: @ 82F3244 - .2byte 0x0004 @ tileTag - .2byte 0x0000 @ paletteTag - .4byte gUnknown_082F31F4 - .4byte gUnknown_082F321C - .4byte NULL - .4byte gDummySpriteAffineAnimTable - .4byte SpriteCallbackDummy + spr_template 0x0004, 0x0000, gUnknown_082F31F4, gUnknown_082F321C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy .align 2 gUnknown_082F325C:: @ 82F325C @@ -3026,22 +2975,22 @@ gUnknown_082F3290:: @ 82F3290 .align 2 gUnknown_082F32A4:: @ 82F32A4 - .4byte gUnknown_085ED5F0 - .4byte gUnknown_085ED62C - .4byte gUnknown_085ED65C - .4byte gUnknown_085ED6C8 - .4byte gUnknown_085ED704 - .4byte gUnknown_085ED724 - .4byte gUnknown_085ED754 - .4byte gUnknown_085ED788 - .4byte gUnknown_085ED7BC + .4byte gText_ReadyToBerryCrush + .4byte gText_WaitForAllChooseBerry + .4byte gText_EndedWithXUnitsPowder + .4byte gText_RecordingGameResults + .4byte gText_PlayBerryCrushAgain + .4byte gText_YouHaveNoBerries + .4byte gText_MemberDroppedOut + .4byte gText_TimesUpNoGoodPowder + .4byte gText_CommunicationStandby2 .align 2 gUnknown_082F32C8:: @ 82F32C8 struct BgTemplate .4byte 0x000000F8 .align 2 -gUnknown_082F32CC:: @ 82F32CC struct WindowTemplate? not sure +gUnknown_082F32CC:: @ 82F32CC struct BgTemplate? not sure .byte 0xd1, 0x14, 0x00, 0x00, 0xc2, 0x20, 0x00, 0x00 .byte 0xb3, 0x30, 0x00, 0x00 @@ -3073,11 +3022,12 @@ gUnknown_082F32F4:: @ 82F32F4 window_template 0x00, 0x00, 0x06, 0x09, 0x02, 0x08, 0x03c9 window_template 0x00, 0x15, 0x03, 0x09, 0x02, 0x08, 0x03b7 window_template 0x00, 0x15, 0x06, 0x09, 0x02, 0x08, 0x03a5 - window_template 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 + window_template_terminator + window_template 0x00, 0x05, 0x02, 0x14, 0x10, 0x0f, 0x0001 window_template 0x00, 0x05, 0x02, 0x14, 0x10, 0x0f, 0x0001 window_template 0x00, 0x04, 0x02, 0x16, 0x10, 0x0f, 0x0001 - window_template 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 + window_template_terminator .align 2 gUnknown_082F3344:: @ 82F3344 @@ -3267,53 +3217,23 @@ gUnknown_082F4304:: @ 82F4304 .align 2 gUnknown_082F430C:: @ 82F430C - .2byte 0x0001 @ tileTag - .2byte 0x0001 @ paletteTag - .4byte gUnknown_0852491C - .4byte gUnknown_082F42E8 - .4byte NULL - .4byte gDummySpriteAffineAnimTable - .4byte SpriteCallbackDummy + spr_template 0x0001, 0x0001, gUnknown_0852491C, gUnknown_082F42E8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy .align 2 gUnknown_082F4324:: @ 82F4324 - .2byte 0x0002 @ tileTag - .2byte 0x0002 @ paletteTag - .4byte gUnknown_08524914 - .4byte gUnknown_082F42EC - .4byte NULL - .4byte gDummySpriteAffineAnimTable - .4byte sub_8022A20 + spr_template 0x0002, 0x0002, gUnknown_08524914, gUnknown_082F42EC, NULL, gDummySpriteAffineAnimTable, sub_8022A20 .align 2 gUnknown_082F433C:: @ 82F433C - .2byte 0x0003 @ tileTag - .2byte 0x0002 @ paletteTag - .4byte gUnknown_0852490C - .4byte gUnknown_082F42F4 - .4byte NULL - .4byte gDummySpriteAffineAnimTable - .4byte SpriteCallbackDummy + spr_template 0x0003, 0x0002, gUnknown_0852490C, gUnknown_082F42F4, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy .align 2 gUnknown_082F4354:: @ 82F4354 - .2byte 0x0004 @ tileTag - .2byte 0x0004 @ paletteTag - .4byte gUnknown_08524944 - .4byte gUnknown_082F42FC - .4byte NULL - .4byte gDummySpriteAffineAnimTable - .4byte SpriteCallbackDummy + spr_template 0x0004, 0x0004, gUnknown_08524944, gUnknown_082F42FC, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy .align 2 gUnknown_082F436C:: @ 82F436C - .2byte 0x0005 @ tileTag - .2byte 0x0005 @ paletteTag - .4byte gUnknown_085249D4 - .4byte gUnknown_082F4300 - .4byte NULL - .4byte gUnknown_082F4304 - .4byte SpriteCallbackDummy + spr_template 0x0005, 0x0005, gUnknown_085249D4, gUnknown_082F4300, NULL, gUnknown_082F4304, SpriteCallbackDummy .align 2 gUnknown_082F4384:: @ 82F4384 @@ -3331,12 +3251,12 @@ gUnknown_082F4384:: @ 82F4384 .align 2 gUnknown_082F43B4:: @ 82F43B4 - .4byte gUnknown_085ED7E8 - .4byte gUnknown_085ED7F4 - .4byte gUnknown_085ED7FC - .4byte gUnknown_085ED88C - .4byte gUnknown_085ED8A0 - .4byte gUnknown_085ED8B8 + .4byte gText_SpaceTimes2 + .4byte gText_XDotY + .4byte gText_Var1Berry + .4byte gText_NeatnessRankings + .4byte gText_CoopRankings + .4byte gText_PressingPowerRankings .align 2 gUnknown_082F43CC:: @ 82F43CC @@ -3599,9 +3519,9 @@ gUnknown_082F7B2C:: @ 82F7B2C .align 2 gUnknown_082F7B34:: @ 82F7B34 - .4byte gUnknown_085EDD02 - .4byte gUnknown_085EDD12 - .4byte gUnknown_085EDD1E + .4byte gText_BerriesPicked + .4byte gText_BestScore + .4byte gText_BerriesInRowFivePlayers .align 2 gUnknown_082F7B40:: @ 82F7B40 @@ -3939,28 +3859,19 @@ gUnknown_082FB2D4:: @ 82FB2D4 .align 2 gUnknown_082FB2D8:: @ 82FB2D8 - .4byte gDodrioBerryPkmnPal - .2byte 0x0000 + obj_pal gDodrioBerryPkmnPal, 0x0000 .align 2 gUnknown_082FB2E0:: @ 82FB2E0 - .4byte gDodrioBerryShinyPal - .2byte 0x0001 + obj_pal gDodrioBerryShinyPal, 0x0001 .align 2 gUnknown_082FB2E8:: @ 82FB2E8 - .4byte gDodrioBerryStatusPal - .2byte 0x0002 + obj_pal gDodrioBerryStatusPal, 0x0002 .align 2 -gUnknown_082FB2F0:: @ 82FB2F0 struct SpriteTemplate - .2byte 0x0001 @ tileTag - .2byte 0x0002 @ paletteTag - .4byte gUnknown_082FB1E8 - .4byte gUnknown_082FB254 - .4byte NULL - .4byte gDummySpriteAffineAnimTable - .4byte nullsub_15 +gUnknown_082FB2F0:: @ 82FB2F0 + spr_template 0x0001, 0x0002, gUnknown_082FB1E8, gUnknown_082FB254, NULL, gDummySpriteAffineAnimTable, nullsub_15 .align 2 .byte 0xD4, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44 @@ -3968,32 +3879,19 @@ gUnknown_082FB2F0:: @ 82FB2F0 struct SpriteTemplate .align 2 gUnknown_082FB314:: @ 82FB314 - .4byte gDodrioBerrySpritesPal - .2byte 0x0003 + obj_pal gDodrioBerrySpritesPal, 0x0003 .align 2 gUnknown_082FB31C:: @ 82FB31C .2byte 0x0058, 0x0080, 0x00a8, 0x00d0 .align 2 -gUnknown_082FB324:: @ 82FB324 struct SpriteTemplate - .2byte 0x0002 @ tileTag - .2byte 0x0003 @ paletteTag - .4byte gUnknown_082FB1F0 - .4byte gUnknown_082FB2A8 - .4byte NULL - .4byte gDummySpriteAffineAnimTable - .4byte SpriteCallbackDummy +gUnknown_082FB324:: @ 82FB324 + spr_template 0x0002, 0x0003, gUnknown_082FB1F0, gUnknown_082FB2A8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy .align 2 -gUnknown_082FB33C:: @ 82FB33C struct SpriteTemplate - .2byte 0x0002 @ tileTag - .2byte 0x0003 @ paletteTag - .4byte gUnknown_082FB1E8 - .4byte gUnknown_082FB2A8 - .4byte NULL - .4byte gDummySpriteAffineAnimTable - .4byte SpriteCallbackDummy +gUnknown_082FB33C:: @ 82FB33C + spr_template 0x0002, 0x0003, gUnknown_082FB1E8, gUnknown_082FB2A8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy .align 2 gUnknown_082FB354:: @ 82FB354 @@ -4008,18 +3906,11 @@ gUnknown_082FB358:: @ 82FB358 .align 2 gUnknown_082FB360:: @ 82FB360 - .4byte gDodrioBerryPlatformPal - .2byte 0x0006 + obj_pal gDodrioBerryPlatformPal, 0x0006 .align 2 -gUnknown_082FB368:: @ 82FB368 struct SpriteTemplate - .2byte 0x0005 @ tileTag - .2byte 0x0006 @ paletteTag - .4byte gUnknown_082FB1F8 - .4byte gUnknown_082FB2D4 - .4byte NULL - .4byte gDummySpriteAffineAnimTable - .4byte sub_8028CF4 +gUnknown_082FB368:: @ 82FB368 + spr_template 0x0005, 0x0006, gUnknown_082FB1F8, gUnknown_082FB2D4, NULL, gDummySpriteAffineAnimTable, sub_8028CF4 .align 2 gUnknown_082FB380:: @ 82FB380 @@ -4064,11 +3955,11 @@ gUnknown_082FB3C8:: @ 82FB3C8 .align 2 gUnknown_082FB3DC:: @ 82FB3DC - .4byte gUnknown_085EDDAE - .4byte gUnknown_085EDDB1 - .4byte gUnknown_085EDDB4 - .4byte gUnknown_085EDDB7 - .4byte gUnknown_085EDDBA + .4byte gText_1Colon + .4byte gText_2Colon + .4byte gText_3Colon + .4byte gText_4Colon + .4byte gText_5Colon .align 2 gUnknown_082FB3F0:: @ 82FB3F0 @@ -4099,106 +3990,106 @@ gUnknown_082FB45C:: @ 82FB45C .align 2 gPkmnJumpSpecies:: @ 82FB464 - .2byte SPECIES_BULBASAUR, 0x0002 - .2byte SPECIES_CHARMANDER, 0x0001 - .2byte SPECIES_SQUIRTLE, 0x0000 - .2byte SPECIES_CATERPIE, 0x0001 - .2byte SPECIES_METAPOD, 0x0001 - .2byte SPECIES_WEEDLE, 0x0001 - .2byte SPECIES_KAKUNA, 0x0001 - .2byte SPECIES_RATTATA, 0x0001 - .2byte SPECIES_RATICATE, 0x0001 - .2byte SPECIES_PIKACHU, 0x0000 - .2byte SPECIES_SANDSHREW, 0x0000 - .2byte SPECIES_NIDORAN_F, 0x0000 - .2byte SPECIES_NIDORAN_M, 0x0000 - .2byte SPECIES_CLEFAIRY, 0x0000 - .2byte SPECIES_VULPIX, 0x0000 - .2byte SPECIES_JIGGLYPUFF, 0x0002 - .2byte SPECIES_ODDISH, 0x0002 - .2byte SPECIES_PARAS, 0x0001 - .2byte SPECIES_MEOWTH, 0x0000 - .2byte SPECIES_PSYDUCK, 0x0002 - .2byte SPECIES_MANKEY, 0x0001 - .2byte SPECIES_GROWLITHE, 0x0001 - .2byte SPECIES_POLIWAG, 0x0002 - .2byte SPECIES_BELLSPROUT, 0x0002 - .2byte SPECIES_SHELLDER, 0x0001 - .2byte SPECIES_KRABBY, 0x0001 - .2byte SPECIES_EXEGGCUTE, 0x0002 - .2byte SPECIES_CUBONE, 0x0000 - .2byte SPECIES_DITTO, 0x0002 - .2byte SPECIES_EEVEE, 0x0000 - .2byte SPECIES_OMANYTE, 0x0001 - .2byte SPECIES_KABUTO, 0x0001 - .2byte SPECIES_CHIKORITA, 0x0002 - .2byte SPECIES_CYNDAQUIL, 0x0001 - .2byte SPECIES_TOTODILE, 0x0000 - .2byte SPECIES_SPINARAK, 0x0001 - .2byte SPECIES_PICHU, 0x0000 - .2byte SPECIES_CLEFFA, 0x0000 - .2byte SPECIES_IGGLYBUFF, 0x0002 - .2byte SPECIES_TOGEPI, 0x0002 - .2byte SPECIES_MAREEP, 0x0000 - .2byte SPECIES_BELLOSSOM, 0x0002 - .2byte SPECIES_MARILL, 0x0002 - .2byte SPECIES_SUNKERN, 0x0002 - .2byte SPECIES_WOOPER, 0x0002 - .2byte SPECIES_PINECO, 0x0002 - .2byte SPECIES_SNUBBULL, 0x0000 - .2byte SPECIES_SHUCKLE, 0x0002 - .2byte SPECIES_TEDDIURSA, 0x0000 - .2byte SPECIES_SLUGMA, 0x0002 - .2byte SPECIES_SWINUB, 0x0000 - .2byte SPECIES_HOUNDOUR, 0x0001 - .2byte SPECIES_PHANPY, 0x0000 - .2byte SPECIES_PORYGON2, 0x0000 - .2byte SPECIES_TYROGUE, 0x0001 - .2byte SPECIES_SMOOCHUM, 0x0002 - .2byte SPECIES_ELEKID, 0x0001 - .2byte SPECIES_MAGBY, 0x0001 - .2byte SPECIES_LARVITAR, 0x0001 - .2byte SPECIES_TREECKO, 0x0001 - .2byte SPECIES_TORCHIC, 0x0002 - .2byte SPECIES_MUDKIP, 0x0000 - .2byte SPECIES_MARSHTOMP, 0x0000 - .2byte SPECIES_POOCHYENA, 0x0001 - .2byte SPECIES_ZIGZAGOON, 0x0000 - .2byte SPECIES_LINOONE, 0x0000 - .2byte SPECIES_WURMPLE, 0x0001 - .2byte SPECIES_SILCOON, 0x0002 - .2byte SPECIES_CASCOON, 0x0002 - .2byte SPECIES_LOTAD, 0x0002 - .2byte SPECIES_SEEDOT, 0x0001 - .2byte SPECIES_RALTS, 0x0000 - .2byte SPECIES_KIRLIA, 0x0000 - .2byte SPECIES_SURSKIT, 0x0002 - .2byte SPECIES_SHROOMISH, 0x0002 - .2byte SPECIES_NINCADA, 0x0001 - .2byte SPECIES_WHISMUR, 0x0000 - .2byte SPECIES_AZURILL, 0x0002 - .2byte SPECIES_SKITTY, 0x0000 - .2byte SPECIES_SABLEYE, 0x0000 - .2byte SPECIES_MAWILE, 0x0000 - .2byte SPECIES_ARON, 0x0001 - .2byte SPECIES_MEDITITE, 0x0002 - .2byte SPECIES_ELECTRIKE, 0x0001 - .2byte SPECIES_PLUSLE, 0x0001 - .2byte SPECIES_MINUN, 0x0001 - .2byte SPECIES_VOLBEAT, 0x0000 - .2byte SPECIES_ILLUMISE, 0x0000 - .2byte SPECIES_ROSELIA, 0x0002 - .2byte SPECIES_GULPIN, 0x0002 - .2byte SPECIES_NUMEL, 0x0002 - .2byte SPECIES_TORKOAL, 0x0002 - .2byte SPECIES_SPOINK, 0x0000 - .2byte SPECIES_TRAPINCH, 0x0002 - .2byte SPECIES_CACNEA, 0x0002 - .2byte SPECIES_ANORITH, 0x0001 - .2byte SPECIES_WYNAUT, 0x0000 - .2byte SPECIES_SNORUNT, 0x0000 - .2byte SPECIES_CLAMPERL, 0x0001 - .2byte SPECIES_BAGON, 0x0001 + .2byte SPECIES_BULBASAUR, 0x0002 + .2byte SPECIES_CHARMANDER, 0x0001 + .2byte SPECIES_SQUIRTLE, 0x0000 + .2byte SPECIES_CATERPIE, 0x0001 + .2byte SPECIES_METAPOD, 0x0001 + .2byte SPECIES_WEEDLE, 0x0001 + .2byte SPECIES_KAKUNA, 0x0001 + .2byte SPECIES_RATTATA, 0x0001 + .2byte SPECIES_RATICATE, 0x0001 + .2byte SPECIES_PIKACHU, 0x0000 + .2byte SPECIES_SANDSHREW, 0x0000 + .2byte SPECIES_NIDORAN_F, 0x0000 + .2byte SPECIES_NIDORAN_M, 0x0000 + .2byte SPECIES_CLEFAIRY, 0x0000 + .2byte SPECIES_VULPIX, 0x0000 + .2byte SPECIES_JIGGLYPUFF, 0x0002 + .2byte SPECIES_ODDISH, 0x0002 + .2byte SPECIES_PARAS, 0x0001 + .2byte SPECIES_MEOWTH, 0x0000 + .2byte SPECIES_PSYDUCK, 0x0002 + .2byte SPECIES_MANKEY, 0x0001 + .2byte SPECIES_GROWLITHE, 0x0001 + .2byte SPECIES_POLIWAG, 0x0002 + .2byte SPECIES_BELLSPROUT, 0x0002 + .2byte SPECIES_SHELLDER, 0x0001 + .2byte SPECIES_KRABBY, 0x0001 + .2byte SPECIES_EXEGGCUTE, 0x0002 + .2byte SPECIES_CUBONE, 0x0000 + .2byte SPECIES_DITTO, 0x0002 + .2byte SPECIES_EEVEE, 0x0000 + .2byte SPECIES_OMANYTE, 0x0001 + .2byte SPECIES_KABUTO, 0x0001 + .2byte SPECIES_CHIKORITA, 0x0002 + .2byte SPECIES_CYNDAQUIL, 0x0001 + .2byte SPECIES_TOTODILE, 0x0000 + .2byte SPECIES_SPINARAK, 0x0001 + .2byte SPECIES_PICHU, 0x0000 + .2byte SPECIES_CLEFFA, 0x0000 + .2byte SPECIES_IGGLYBUFF, 0x0002 + .2byte SPECIES_TOGEPI, 0x0002 + .2byte SPECIES_MAREEP, 0x0000 + .2byte SPECIES_BELLOSSOM, 0x0002 + .2byte SPECIES_MARILL, 0x0002 + .2byte SPECIES_SUNKERN, 0x0002 + .2byte SPECIES_WOOPER, 0x0002 + .2byte SPECIES_PINECO, 0x0002 + .2byte SPECIES_SNUBBULL, 0x0000 + .2byte SPECIES_SHUCKLE, 0x0002 + .2byte SPECIES_TEDDIURSA, 0x0000 + .2byte SPECIES_SLUGMA, 0x0002 + .2byte SPECIES_SWINUB, 0x0000 + .2byte SPECIES_HOUNDOUR, 0x0001 + .2byte SPECIES_PHANPY, 0x0000 + .2byte SPECIES_PORYGON2, 0x0000 + .2byte SPECIES_TYROGUE, 0x0001 + .2byte SPECIES_SMOOCHUM, 0x0002 + .2byte SPECIES_ELEKID, 0x0001 + .2byte SPECIES_MAGBY, 0x0001 + .2byte SPECIES_LARVITAR, 0x0001 + .2byte SPECIES_TREECKO, 0x0001 + .2byte SPECIES_TORCHIC, 0x0002 + .2byte SPECIES_MUDKIP, 0x0000 + .2byte SPECIES_MARSHTOMP, 0x0000 + .2byte SPECIES_POOCHYENA, 0x0001 + .2byte SPECIES_ZIGZAGOON, 0x0000 + .2byte SPECIES_LINOONE, 0x0000 + .2byte SPECIES_WURMPLE, 0x0001 + .2byte SPECIES_SILCOON, 0x0002 + .2byte SPECIES_CASCOON, 0x0002 + .2byte SPECIES_LOTAD, 0x0002 + .2byte SPECIES_SEEDOT, 0x0001 + .2byte SPECIES_RALTS, 0x0000 + .2byte SPECIES_KIRLIA, 0x0000 + .2byte SPECIES_SURSKIT, 0x0002 + .2byte SPECIES_SHROOMISH, 0x0002 + .2byte SPECIES_NINCADA, 0x0001 + .2byte SPECIES_WHISMUR, 0x0000 + .2byte SPECIES_AZURILL, 0x0002 + .2byte SPECIES_SKITTY, 0x0000 + .2byte SPECIES_SABLEYE, 0x0000 + .2byte SPECIES_MAWILE, 0x0000 + .2byte SPECIES_ARON, 0x0001 + .2byte SPECIES_MEDITITE, 0x0002 + .2byte SPECIES_ELECTRIKE, 0x0001 + .2byte SPECIES_PLUSLE, 0x0001 + .2byte SPECIES_MINUN, 0x0001 + .2byte SPECIES_VOLBEAT, 0x0000 + .2byte SPECIES_ILLUMISE, 0x0000 + .2byte SPECIES_ROSELIA, 0x0002 + .2byte SPECIES_GULPIN, 0x0002 + .2byte SPECIES_NUMEL, 0x0002 + .2byte SPECIES_TORKOAL, 0x0002 + .2byte SPECIES_SPOINK, 0x0000 + .2byte SPECIES_TRAPINCH, 0x0002 + .2byte SPECIES_CACNEA, 0x0002 + .2byte SPECIES_ANORITH, 0x0001 + .2byte SPECIES_WYNAUT, 0x0000 + .2byte SPECIES_SNORUNT, 0x0000 + .2byte SPECIES_CLAMPERL, 0x0001 + .2byte SPECIES_BAGON, 0x0001 .align 2 gUnknown_082FB5F4:: @ 82FB5F4 @@ -4302,43 +4193,30 @@ gPkmnJumpStarGfx:: @ 82FBC9C .align 2 gUnknown_082FBE08:: @ 82FBE08 - .4byte gPkmnJumpRopeGfx1 - .2byte 0x0600, 0x0005 + obj_tiles gPkmnJumpRopeGfx1, 0x0600, 0x0005 .align 2 - .4byte gPkmnJumpRopeGfx2 - .2byte 0x0c00, 0x0006 + obj_tiles gPkmnJumpRopeGfx2, 0x0c00, 0x0006 .align 2 - .4byte gPkmnJumpRopeGfx3 - .2byte 0x0600, 0x0007 + obj_tiles gPkmnJumpRopeGfx3, 0x0600, 0x0007 .align 2 - .4byte gPkmnJumpRopeGfx4 - .2byte 0x0600, 0x0008 + obj_tiles gPkmnJumpRopeGfx4, 0x0600, 0x0008 .align 2 - .4byte gPkmnJumpStarGfx - .2byte 0x0200, 0x000a + obj_tiles gPkmnJumpStarGfx, 0x0200, 0x000a .align 2 gUnknown_082FBE30:: @ 82FBE30 - .4byte gPkmnJumpPal1 - .2byte 0x0005 + obj_pal gPkmnJumpPal1, 0x0005 .align 2 - .4byte gPkmnJumpPal2 - .2byte 0x0006 + obj_pal gPkmnJumpPal2, 0x0006 .align 2 gUnknown_082FBE40:: @ 82FBE40 - .2byte 0x0000 @ tileTag - .2byte 0x0000 @ paletteTag - .4byte gUnknown_082FBEC8 - .4byte gDummySpriteAnimTable - .4byte NULL - .4byte gDummySpriteAffineAnimTable - .4byte SpriteCallbackDummy + spr_template 0x0000, 0x0000, gUnknown_082FBEC8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy gUnknown_082FBE58:: @ 82FBE58 .2byte 0x0060, 0x0060, 0x0060, 0x0072, 0x0078, 0x0078, 0x0078, 0x0072 @@ -4453,43 +4331,19 @@ gUnknown_082FBF60:: @ 82FBF60 .align 2 gUnknown_082FBF78:: @ 82FBF78 - .2byte 0x0005 @ tileTag - .2byte 0x0005 @ paletteTag - .4byte gUnknown_082FBED0 - .4byte gUnknown_082FBF48 - .4byte NULL - .4byte gDummySpriteAffineAnimTable - .4byte SpriteCallbackDummy + spr_template 0x0005, 0x0005, gUnknown_082FBED0, gUnknown_082FBF48, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy .align 2 gUnknown_082FBF90:: @ 82FBF90 - .2byte 0x0006 @ tileTag - .2byte 0x0005 @ paletteTag - .4byte gUnknown_082FBED8 - .4byte gUnknown_082FBF60 - .4byte NULL - .4byte gDummySpriteAffineAnimTable - .4byte SpriteCallbackDummy + spr_template 0x0006, 0x0005, gUnknown_082FBED8, gUnknown_082FBF60, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy .align 2 gUnknown_082FBFA8:: @ 82FBFA8 - .2byte 0x0007 @ tileTag - .2byte 0x0005 @ paletteTag - .4byte gUnknown_082FBEE0 - .4byte gUnknown_082FBF48 - .4byte NULL - .4byte gDummySpriteAffineAnimTable - .4byte SpriteCallbackDummy + spr_template 0x0007, 0x0005, gUnknown_082FBEE0, gUnknown_082FBF48, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy .align 2 gUnknown_082FBFC0:: @ 82FBFC0 - .2byte 0x0008 @ tileTag - .2byte 0x0005 @ paletteTag - .4byte gUnknown_082FBEE0 - .4byte gUnknown_082FBF48 - .4byte NULL - .4byte gDummySpriteAffineAnimTable - .4byte SpriteCallbackDummy + spr_template 0x0008, 0x0005, gUnknown_082FBEE0, gUnknown_082FBF48, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy .align 2 gUnknown_082FBFD8:: @ 82FBFD8 @@ -4517,13 +4371,7 @@ gUnknown_082FC004:: @ 82FC004 .align 2 gUnknown_082FC00C:: @ 82FC00C - .2byte 0x000a @ tileTag - .2byte 0x0005 @ paletteTag - .4byte gUnknown_082FBFD8 - .4byte gUnknown_082FC004 - .4byte NULL - .4byte gDummySpriteAffineAnimTable - .4byte SpriteCallbackDummy + spr_template 0x000a, 0x0005, gUnknown_082FBFD8, gUnknown_082FC004, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy .align 2 gPkmnJumpPal3:: @ 82FC024 @@ -4573,7 +4421,7 @@ gUnknown_082FE164:: @ 82FE164 struct BgTemplate gUnknown_082FE174:: @ 82FE174 window_template 0x00, 0x13, 0x00, 0x06, 0x02, 0x02, 0x0013 window_template 0x00, 0x08, 0x00, 0x06, 0x02, 0x02, 0x001f - window_template 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 + window_template_terminator .align 2 gUnknown_082FE18C:: @ 82FE18C @@ -4598,13 +4446,11 @@ gUnknown_082FE1DF:: @ 82FE1DF .align 2 gUnknown_082FE1EC:: @ 82FE1EC - .4byte gUnknown_082FF1F8 - .2byte 0x0000, 0x0320 + obj_tiles gUnknown_082FF1F8, 0x0000, 0x0320 .align 2 gUnknown_082FE1F4:: @ 82FE1F4 - .4byte gUnknown_082FF1D8 - .2byte 0x0320, 0x0000 + obj_pal gUnknown_082FF1D8, 0x0320 .align 2 gUnknown_082FE1FC:: @ 82FE1FC @@ -4656,9 +4502,9 @@ gUnknown_082FE270:: @ 82FE270 .align 2 gUnknown_082FE278:: @ 82FE278 - .4byte gUnknown_085EDEA2 - .4byte gUnknown_085EDEB2 - .4byte gUnknown_085EDEBE + .4byte gText_JumpsInARow + .4byte gText_BestScore2 + .4byte gText_ExcellentsInARow .align 2 gPkmnJump321StartPal1:: @ 82FE284 @@ -4670,17 +4516,13 @@ gPkmnJump321StartGfx1:: @ 82FE2A4 .align 2 gUnknown_082FE6C8:: @ 82FE6C8 - .4byte gPkmnJump321StartGfx1 - .2byte 0x0c00, 0x2000 - - .4byte 0x00000000, 0x00000000 + obj_tiles gPkmnJump321StartGfx1, 0x0c00, 0x2000 + null_obj_tiles .align 2 gUnknown_082FE6D8:: @ 82FE6D8 - .4byte gPkmnJump321StartPal1 - .2byte 0x2000, 0x0000 - - .4byte 0x00000000, 0x00000000 + obj_pal gPkmnJump321StartPal1, 0x2000 + null_obj_pal .align 2 gUnknown_082FE6E8:: @ 82FE6E8 @@ -4723,13 +4565,7 @@ gUnknown_082FE718:: @ 82FE718 .align 2 gUnknown_082FE730:: @ 82FE730 - .2byte 0x2000 @ tileTag - .2byte 0x2000 @ paletteTag - .4byte gUnknown_08524914 - .4byte gUnknown_082FE718 - .4byte NULL - .4byte gDummySpriteAffineAnimTable - .4byte SpriteCallbackDummy + spr_template 0x2000, 0x2000, gUnknown_08524914, gUnknown_082FE718, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy .align 2 gUnknown_082FE748:: @ 82FE748 @@ -4748,13 +4584,11 @@ gPkmnJump321StartGfx2:: @ 82FE778 .align 2 gUnknown_082FEBCC:: @ 82FEBCC - .4byte gPkmnJump321StartGfx2 - .2byte 0x0e00 + obj_tiles gPkmnJump321StartGfx2, 0x0e00, 0x0000 .align 2 gUnknown_082FEBD4:: @ 82FEBD4 - .4byte gPkmnJump321StartPal2 - .2byte 0x0000, 0x0000 + obj_pal gPkmnJump321StartPal2, 0x0000 .align 2 gUnknown_082FEBDC:: @ 82FEBDC @@ -4842,20 +4676,8 @@ gUnknown_082FEC80:: @ 82FEC80 .4byte gUnknown_082FEC60 gUnknown_082FEC90:: @ 82FEC90 - .2byte 0x0000 @ tileTag - .2byte 0x0000 @ paletteTag - .4byte gUnknown_082FEBDC - .4byte gUnknown_082FEC04 - .4byte NULL - .4byte gUnknown_082FEC80 - .4byte SpriteCallbackDummy + spr_template 0x0000, 0x0000, gUnknown_082FEBDC, gUnknown_082FEC04, NULL, gUnknown_082FEC80, SpriteCallbackDummy gUnknown_082FECA8:: @ 82FECA8 - .2byte 0x0000 @ tileTag - .2byte 0x0000 @ paletteTag - .4byte gUnknown_082FEBE4 - .4byte gUnknown_082FEC20 - .4byte NULL - .4byte gDummySpriteAffineAnimTable - .4byte SpriteCallbackDummy + spr_template 0x0000, 0x0000, gUnknown_082FEBE4, gUnknown_082FEC20, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy diff --git a/data/link_strings.s b/data/link_strings.s new file mode 100644 index 000000000..6836863e0 --- /dev/null +++ b/data/link_strings.s @@ -0,0 +1,114 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + + .align 2 + .string "{CLEAR 11}A{CLEAR 6}B{CLEAR 6}C{CLEAR 26}D{CLEAR 6}E{CLEAR 6}F{CLEAR 26}others$" + .string "{CLEAR 11}G{CLEAR 6}H{CLEAR 6}I{CLEAR 26}J{CLEAR 6}K{CLEAR 6}L$" + .string "{CLEAR 11}M{CLEAR 6}N{CLEAR 6}O{CLEAR 26}P{CLEAR 6}Q{CLEAR 6}R{CLEAR 6}S{CLEAR 26} $" + .string "{CLEAR 11}T{CLEAR 6}U{CLEAR 6}V{CLEAR 26}W{CLEAR 6}X{CLEAR 6}Y{CLEAR 6}Z{CLEAR 26} $" + .string "{CLEAR 11}a{CLEAR 6}b{CLEAR 6}c{CLEAR 26}d{CLEAR 6}e{CLEAR 6}f{CLEAR 6} {CLEAR 30}.$" + .string "{CLEAR 11}g{CLEAR 6}h{CLEAR 7}i{CLEAR 27}j{CLEAR 7}k{CLEAR 7}l{CLEAR 7} {CLEAR 30},$" + .string "{CLEAR 11}m{CLEAR 6}n{CLEAR 6}o{CLEAR 26}p{CLEAR 6}q{CLEAR 7}r{CLEAR 6}s{CLEAR 27} $" + .string "{CLEAR 11}t{CLEAR 6}u{CLEAR 6}v{CLEAR 26}w{CLEAR 6}x{CLEAR 6}y{CLEAR 6}z{CLEAR 26} $" + .string "{CLEAR 11}A{CLEAR 6}B{CLEAR 6}C{CLEAR 26}D{CLEAR 6}E{CLEAR 6}F{CLEAR 6} {CLEAR 30}.$" + .string "{CLEAR 11}G{CLEAR 6}H{CLEAR 6}I{CLEAR 26}J{CLEAR 6}K{CLEAR 6}L{CLEAR 6} {CLEAR 30},$" + .string "{CLEAR 11}M{CLEAR 6}N{CLEAR 6}O{CLEAR 26}P{CLEAR 6}Q{CLEAR 6}R{CLEAR 6}S{CLEAR 26} $" + .string "{CLEAR 11}T{CLEAR 6}U{CLEAR 6}V{CLEAR 26}W{CLEAR 6}X{CLEAR 6}Y{CLEAR 6}Z{CLEAR 26} $" + .string "{CLEAR 11}0{CLEAR 16}1{CLEAR 16}2{CLEAR 16}3{CLEAR 16}4{CLEAR 16} $" + .string "{CLEAR 11}5{CLEAR 16}6{CLEAR 16}7{CLEAR 16}8{CLEAR 16}9{CLEAR 16} $" + .string "{CLEAR 12}!{CLEAR 17}?{CLEAR 16}♂{CLEAR 16}♀{CLEAR 16}/{CLEAR 17}-$" + .string "{CLEAR 11}…{CLEAR 16}“{CLEAR 16}”{CLEAR 18}‘{CLEAR 19}’{CLEAR 18} $" + +gUnknown_0862B9F9:: @ 862B9F9 + .string "ABCDE$" + +gUnknown_0862B9FF:: @ 862B9FF + .string "FGHIJ$" + +gUnknown_0862BA05:: @ 862BA05 + .string "KLMNO$" + +gUnknown_0862BA0B:: @ 862BA0B + .string "PQRST$" + +gUnknown_0862BA11:: @ 862BA11 + .string "UVWXY$" + +gUnknown_0862BA17:: @ 862BA17 + .string "Z $" + +gUnknown_0862BA1D:: @ 862BA1D + .string "01234$" + +gUnknown_0862BA23:: @ 862BA23 + .string "56789$" + +gUnknown_0862BA29:: @ 862BA29 + .string ".,!? $" + +gUnknown_0862BA2F:: @ 862BA2F + .string "-/&… $" + +gUnknown_0862BA35:: @ 862BA35 + .string "abcde$" + +gUnknown_0862BA3B:: @ 862BA3B + .string "fghij$" + +gUnknown_0862BA41:: @ 862BA41 + .string "klmno$" + +gUnknown_0862BA47:: @ 862BA47 + .string "pqrst$" + +gUnknown_0862BA4D:: @ 862BA4D + .string "uvwxy$" + +gUnknown_0862BA53:: @ 862BA53 + .string "z $" + +gUnknown_0862BA59:: @ 862BA59 + .string "01234$" + +gUnknown_0862BA5F:: @ 862BA5F + .string "56789$" + +gUnknown_0862BA65:: @ 862BA65 + .string ".,!? $" + +gUnknown_0862BA6B:: @ 862BA6B + .string "-/&… $" + + .string "$$$$$$$$" + +gUnknown_0862BA79:: @ 862BA79 + .string "{UNK_CTRL_F9 245}{UNK_CTRL_F9 246}{UNK_CTRL_F9 247}{UNK_CTRL_F9 248}{UNK_CTRL_F9 254}$" + +gUnknown_0862BA84:: @ 862BA84 + .string "{UNK_CTRL_F9 249}{UNK_CTRL_F9 250}{UNK_CTRL_F9 252}{UNK_CTRL_F9 251}{UNK_CTRL_F9 253}$" + +gUnknown_0862BA8F:: @ 862BA8F + .string "{UNK_CTRL_F9 236}{UNK_CTRL_F9 237}{UNK_CTRL_F9 238}{UNK_CTRL_F9 235}{UNK_CTRL_F9 234}$" + +gUnknown_0862BA9A:: @ 862BA9A + .string "♂♀{UNK_CTRL_F9 212}{UNK_CTRL_F9 213}{UNK_CTRL_F9 211}$" + +gUnknown_0862BAA3:: @ 862BAA3 + .string "{UNK_CTRL_F9 216}{UNK_CTRL_F9 217}{UNK_CTRL_F9 242}{UNK_CTRL_F9 243}{UNK_CTRL_F9 244}$" + +gUnknown_0862BAAE:: @ 862BAAE + .string "{UNK_CTRL_F9 218}{UNK_CTRL_F9 241}{UNK_CTRL_F9 224}{UNK_CTRL_F9 226}{UNK_CTRL_F9 227}$" + +gUnknown_0862BAB9:: @ 862BAB9 + .string "{UNK_CTRL_F9 240}{UNK_CTRL_F9 239}{UNK_CTRL_F9 225}{UNK_CTRL_F9 214}{UNK_CTRL_F9 215}$" + +gUnknown_0862BAC4:: @ 862BAC4 + .string "{UNK_CTRL_F9 228}{UNK_CTRL_F9 229}{UNK_CTRL_F9 230}{UNK_CTRL_F9 231}{UNK_CTRL_F9 232}$" + +gUnknown_0862BACF:: @ 862BACF + .string "{UNK_CTRL_F9 233}{UNK_CTRL_F9 220}{UNK_CTRL_F9 221}{UNK_CTRL_F9 222}{UNK_CTRL_F9 209}$" + +gUnknown_0862BADA:: @ 862BADA + .string "{UNK_CTRL_F9 210}{UNK_CTRL_F9 208}ょ: $" diff --git a/data/mail.s b/data/mail.s new file mode 100644 index 000000000..5dc8270bc --- /dev/null +++ b/data/mail.s @@ -0,0 +1,26 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_0859F290:: @ 859F290 + .incbin "baserom.gba", 0x59f290, 0xc + +gUnknown_0859F29C:: @ 859F29C + .incbin "baserom.gba", 0x59f29c, 0x10 + +gUnknown_0859F2AC:: @ 859F2AC + .incbin "baserom.gba", 0x59f2ac, 0x4 + +gUnknown_0859F2B0:: @ 859F2B0 + .incbin "baserom.gba", 0x59f2b0, 0x8 + +gUnknown_0859F2B8:: @ 859F2B8 + .incbin "baserom.gba", 0x59f2b8, 0xfc + +gUnknown_0859F3B4:: @ 859F3B4 + .incbin "baserom.gba", 0x59f3b4, 0xa4 + +gUnknown_0859F458:: @ 859F458 + .incbin "baserom.gba", 0x59f458, 0xbc diff --git a/data/map_name_popup.s b/data/map_name_popup.s new file mode 100644 index 000000000..ff7c3ea4e --- /dev/null +++ b/data/map_name_popup.s @@ -0,0 +1,17 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_0857C684:: @ 857C684 + .incbin "baserom.gba", 0x57c684, 0x1680 + +gUnknown_0857DD04:: @ 857DD04 + .incbin "baserom.gba", 0x57dd04, 0x1680 + +gUnknown_0857F384:: @ 857F384 + .incbin "baserom.gba", 0x57f384, 0xc0 + +gUnknown_0857F444:: @ 857F444 + .incbin "baserom.gba", 0x57f444, 0x20 diff --git a/data/map_obj_8097404.s b/data/map_obj_8097404.s new file mode 100644 index 000000000..161796765 --- /dev/null +++ b/data/map_obj_8097404.s @@ -0,0 +1,45 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_0850E754:: @ 850E754 + .incbin "baserom.gba", 0x50e754, 0x14 + +gUnknown_0850E768:: @ 850E768 + .incbin "baserom.gba", 0x50e768, 0xa + +gUnknown_0850E772:: @ 850E772 + .incbin "baserom.gba", 0x50e772, 0x48 + +gUnknown_0850E7BA:: @ 850E7BA + .incbin "baserom.gba", 0x50e7ba, 0x7a + +gUnknown_0850E834:: @ 850E834 + .incbin "baserom.gba", 0x50e834, 0xc + +gUnknown_0850E840:: @ 850E840 + .incbin "baserom.gba", 0x50e840, 0x6 + +gUnknown_0850E846:: @ 850E846 + .incbin "baserom.gba", 0x50e846, 0x4 + +gUnknown_0850E84A:: @ 850E84A + .incbin "baserom.gba", 0x50e84a, 0x6 + +gUnknown_0850E850:: @ 850E850 + .incbin "baserom.gba", 0x50e850, 0x4 + +// referenced in src/field_map_obj.o +gUnknown_0850E854:: + .incbin "baserom.gba", 0x50e854, 0x8 + +gUnknown_0850E85C:: + .incbin "baserom.gba", 0x50e85C, 0x8 + +gUnknown_0850E864:: + .incbin "baserom.gba", 0x50e864, 0xc + +gUnknown_0850E870:: + .incbin "baserom.gba", 0x50e870, 0xc diff --git a/data/mauville_old_man.s b/data/mauville_old_man.s new file mode 100644 index 000000000..539cace62 --- /dev/null +++ b/data/mauville_old_man.s @@ -0,0 +1,26 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_0859EFE4:: @ 859EFE4 + .incbin "baserom.gba", 0x59efe4, 0xc + +gUnknown_0859EFF0:: @ 859EFF0 + .incbin "baserom.gba", 0x59eff0, 0x20 + +gUnknown_0859F010:: @ 859F010 + .incbin "baserom.gba", 0x59f010, 0x20 + +gUnknown_0859F030:: @ 859F030 + .incbin "baserom.gba", 0x59f030, 0x18 + +gUnknown_0859F048:: @ 859F048 + .incbin "baserom.gba", 0x59f048, 0x230 + +gUnknown_0859F278:: @ 859F278 + .incbin "baserom.gba", 0x59f278, 0x10 + +gUnknown_0859F288:: @ 859F288 + .incbin "baserom.gba", 0x59f288, 0x8 diff --git a/data/menu_helpers.s b/data/menu_helpers.s new file mode 100644 index 000000000..b43af0bc4 --- /dev/null +++ b/data/menu_helpers.s @@ -0,0 +1,14 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_0859F514:: @ 859F514 + .incbin "baserom.gba", 0x59f514, 0x8 + +gUnknown_0859F51C:: @ 859F51C + .incbin "baserom.gba", 0x59f51c, 0x8 + +gUnknown_0859F524:: @ 859F524 + .incbin "baserom.gba", 0x59f524, 0x10 diff --git a/data/menu_indicators.s b/data/menu_indicators.s new file mode 100644 index 000000000..ee97261cd --- /dev/null +++ b/data/menu_indicators.s @@ -0,0 +1,49 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + +gUnknown_086141FC:: @ 86141FC + .incbin "baserom.gba", 0x6141fc, 0x48 + +gUnknown_08614244:: @ 8614244 + .incbin "baserom.gba", 0x614244, 0x18 + +gUnknown_0861425C:: @ 861425C + .incbin "baserom.gba", 0x61425c, 0x4 + +gUnknown_08614260:: @ 8614260 + .incbin "baserom.gba", 0x614260, 0x4 + +gUnknown_08614264:: @ 8614264 + .incbin "baserom.gba", 0x614264, 0x4 + +gUnknown_08614268:: @ 8614268 + .incbin "baserom.gba", 0x614268, 0x4 + +gUnknown_0861426C:: @ 861426C + .incbin "baserom.gba", 0x61426c, 0x4 + +gUnknown_08614270:: @ 8614270 + .incbin "baserom.gba", 0x614270, 0x4 + +gUnknown_08614274:: @ 8614274 + .incbin "baserom.gba", 0x614274, 0x4 + +gUnknown_08614278:: @ 8614278 + .incbin "baserom.gba", 0x614278, 0x18 + +gUnknown_08614290:: @ 8614290 + .incbin "baserom.gba", 0x614290, 0x18 + +gUnknown_086142A8:: @ 86142A8 + .incbin "baserom.gba", 0x6142a8, 0x20 + +gUnknown_086142C8:: @ 86142C8 + .incbin "baserom.gba", 0x6142c8, 0x70 + +gUnknown_08614338:: @ 8614338 + .incbin "baserom.gba", 0x614338, 0x40 + +gUnknown_08614378:: @ 8614378 + .incbin "baserom.gba", 0x614378, 0x44 diff --git a/data/mon_markings.s b/data/mon_markings.s new file mode 100644 index 000000000..795b8d8a6 --- /dev/null +++ b/data/mon_markings.s @@ -0,0 +1,29 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_0859E65C:: @ 859E65C + .incbin "baserom.gba", 0x59e65c, 0x20 + +gUnknown_0859E67C:: @ 859E67C + .incbin "baserom.gba", 0x59e67c, 0x800 + +gUnknown_0859EE7C:: @ 859EE7C + .incbin "baserom.gba", 0x59ee7c, 0x8 + +gUnknown_0859EE84:: @ 859EE84 + .incbin "baserom.gba", 0x59ee84, 0x58 + +gUnknown_0859EEDC:: @ 859EEDC + .incbin "baserom.gba", 0x59eedc, 0x38 + +gUnknown_0859EF14:: @ 859EF14 + .incbin "baserom.gba", 0x59ef14, 0x8 + +gUnknown_0859EF1C:: @ 859EF1C + .incbin "baserom.gba", 0x59ef1c, 0x88 + +gUnknown_0859EFA4:: @ 859EFA4 + .incbin "baserom.gba", 0x59efa4, 0x40 diff --git a/data/multiboot_berry_glitch_fix.s b/data/multiboot_berry_glitch_fix.s index bc97eb553..c77fc2c5e 100644 --- a/data/multiboot_berry_glitch_fix.s +++ b/data/multiboot_berry_glitch_fix.s @@ -1,8 +1,5 @@ .section .rodata -gUnknown_089A6550:: @ 89A6550 - .incbin "baserom.gba", 0x9a6550, 0xc0 - -gMultiBootProgram_BerryGlitchFix_Start:: @ 89A6610 - .incbin "baserom.gba", 0x9a6610, 0x3b34 -gMultiBootProgram_BerryGlitchFix_End:: +gMultiBootProgram_BerryGlitchFix_Start:: @ 89A6550 + .incbin "data/berry_fix.mb" +gMultiBootProgram_BerryGlitchFix_End:: @ 89AA144 diff --git a/data/multiboot_pokemon_colosseum.s b/data/multiboot_pokemon_colosseum.s index 4c0282068..59d0b430d 100644 --- a/data/multiboot_pokemon_colosseum.s +++ b/data/multiboot_pokemon_colosseum.s @@ -1,5 +1,5 @@ .section .rodata gMultiBootProgram_PokemonColosseum_Start:: @ 89AA144 - .incbin "baserom.gba", 0x9aa144, 0x28000 + .incbin "data/pokemon_colosseum.mb" gMultiBootProgram_PokemonColosseum_End:: diff --git a/data/naming_screen.s b/data/naming_screen.s new file mode 100644 index 000000000..80cbd0b09 --- /dev/null +++ b/data/naming_screen.s @@ -0,0 +1,151 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + +gUnknown_0858BD78:: @ 858BD78 + .incbin "baserom.gba", 0x58bd78, 0x40 + +gUnknown_0858BDB8:: @ 858BDB8 + .incbin "baserom.gba", 0x58bdb8, 0x10 + +gUnknown_0858BDC8:: @ 858BDC8 + .incbin "baserom.gba", 0x58bdc8, 0x38 + +gUnknown_0858BE00:: @ 858BE00 + .incbin "baserom.gba", 0x58be00, 0x10 + +gUnknown_0858BE10:: @ 858BE10 + .incbin "baserom.gba", 0x58be10, 0x30 + +gUnknown_0858BE40:: @ 858BE40 + .incbin "baserom.gba", 0x58be40, 0x60 + +gUnknown_0858BEA0:: @ 858BEA0 + .incbin "baserom.gba", 0x58bea0, 0x3 + +gUnknown_0858BEA3:: @ 858BEA3 + .incbin "baserom.gba", 0x58bea3, 0x18 + +gUnknown_0858BEBB:: @ 858BEBB + .incbin "baserom.gba", 0x58bebb, 0x3 + +gUnknown_0858BEBE:: @ 858BEBE + .incbin "baserom.gba", 0x58bebe, 0x3 + +gUnknown_0858BEC1:: @ 858BEC1 + .incbin "baserom.gba", 0x58bec1, 0x3 + +gUnknown_0858BEC4:: @ 858BEC4 + .incbin "baserom.gba", 0x58bec4, 0x10 + +gUnknown_0858BED4:: @ 858BED4 + .incbin "baserom.gba", 0x58bed4, 0x8 + +gUnknown_0858BEDC:: @ 858BEDC + .incbin "baserom.gba", 0x58bedc, 0x8 + +gUnknown_0858BEE4:: @ 858BEE4 + .incbin "baserom.gba", 0x58bee4, 0x4 + +gUnknown_0858BEE8:: @ 858BEE8 + .incbin "baserom.gba", 0x58bee8, 0x10 + +gUnknown_0858BEF8:: @ 858BEF8 + .incbin "baserom.gba", 0x58bef8, 0x6 + +gUnknown_0858BEFE:: @ 858BEFE + .incbin "baserom.gba", 0x58befe, 0x6 + +gUnknown_0858BF04:: @ 858BF04 + .incbin "baserom.gba", 0x58bf04, 0x14 + +gUnknown_0858BF18:: @ 858BF18 + .incbin "baserom.gba", 0x58bf18, 0x10 + +gUnknown_0858BF28:: @ 858BF28 + .incbin "baserom.gba", 0x58bf28, 0xc + +gUnknown_0858BF34:: @ 858BF34 + .incbin "baserom.gba", 0x58bf34, 0xa + +gUnknown_0858BF3E:: @ 858BF3E + .incbin "baserom.gba", 0x58bf3e, 0xa + +gUnknown_0858BF48:: @ 858BF48 + .incbin "baserom.gba", 0x58bf48, 0x8 + +gUnknown_0858BF50:: @ 858BF50 + .incbin "baserom.gba", 0x58bf50, 0x8 + +gUnknown_0858BF58:: @ 858BF58 + .incbin "baserom.gba", 0x58bf58, 0x14 + +gUnknown_0858BF6C:: @ 858BF6C + .incbin "baserom.gba", 0x58bf6c, 0x8 + +gUnknown_0858BF74:: @ 858BF74 + .incbin "baserom.gba", 0x58bf74, 0x14 + +gUnknown_0858BF88:: @ 858BF88 + .incbin "baserom.gba", 0x58bf88, 0x4 + +gUnknown_0858BF8C:: @ 858BF8C + .incbin "baserom.gba", 0x58bf8c, 0xc + +gUnknown_0858BF98:: @ 858BF98 + .incbin "baserom.gba", 0x58bf98, 0xc + +gUnknown_0858BFA4:: @ 858BFA4 + .incbin "baserom.gba", 0x58bfa4, 0x34 + +gUnknown_0858BFD8:: @ 858BFD8 + .incbin "baserom.gba", 0x58bfd8, 0x78 + +gUnknown_0858C050:: @ 858C050 + .incbin "baserom.gba", 0x58c050, 0x8 + +gUnknown_0858C058:: @ 858C058 + .incbin "baserom.gba", 0x58c058, 0x18 + +gUnknown_0858C070:: @ 858C070 + .incbin "baserom.gba", 0x58c070, 0x8 + +gUnknown_0858C078:: @ 858C078 + .incbin "baserom.gba", 0x58c078, 0x48 + +gUnknown_0858C0C0:: @ 858C0C0 + .incbin "baserom.gba", 0x58c0c0, 0x18 + +gUnknown_0858C0D8:: @ 858C0D8 + .incbin "baserom.gba", 0x58c0d8, 0x18 + +gUnknown_0858C0F0:: @ 858C0F0 + .incbin "baserom.gba", 0x58c0f0, 0x18 + +gUnknown_0858C108:: @ 858C108 + .incbin "baserom.gba", 0x58c108, 0x18 + +gUnknown_0858C120:: @ 858C120 + .incbin "baserom.gba", 0x58c120, 0x18 + +gUnknown_0858C138:: @ 858C138 + .incbin "baserom.gba", 0x58c138, 0x18 + +gUnknown_0858C150:: @ 858C150 + .incbin "baserom.gba", 0x58c150, 0x18 + +gUnknown_0858C168:: @ 858C168 + .incbin "baserom.gba", 0x58c168, 0x18 + +gUnknown_0858C180:: @ 858C180 + .incbin "baserom.gba", 0x58c180, 0x18 + +gUnknown_0858C198:: @ 858C198 + .incbin "baserom.gba", 0x58c198, 0x30 + +gUnknown_0858C1C8:: @ 858C1C8 + .incbin "baserom.gba", 0x58c1c8, 0x68 + +gUnknown_0858C230:: @ 858C230 + .incbin "baserom.gba", 0x58c230, 0x48 diff --git a/data/new_menu_helpers.s b/data/new_menu_helpers.s new file mode 100644 index 000000000..8d4e43b15 --- /dev/null +++ b/data/new_menu_helpers.s @@ -0,0 +1,27 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + +gUnknown_0860F074:: @ 860F074 + .incbin "baserom.gba", 0x60f074, 0x20 + +gUnknown_0860F094:: @ 860F094 + .incbin "baserom.gba", 0x60f094, 0x4 + +gUnknown_0860F098:: @ 860F098 + .incbin "baserom.gba", 0x60f098, 0x10 + +gUnknown_0860F0A8:: @ 860F0A8 + .incbin "baserom.gba", 0x60f0a8, 0x8 + + @ These are not referenced in src/new_menu_helpers.c; rather, they are in src/menu.c. Regardless, they were plopped here. + +gUnknown_0860F0B0:: @ 860F0B0 + .incbin "baserom.gba", 0x60f0b0, 0x20 + +gUnknown_0860F0D0:: @ 860F0D0 + .incbin "baserom.gba", 0x60f0d0, 0x4 + +gUnknown_0860F0D4:: @ 860F0D4 + .incbin "baserom.gba", 0x60f0d4, 0x68 diff --git a/data/option_menu.s b/data/option_menu.s new file mode 100644 index 000000000..05db7fddf --- /dev/null +++ b/data/option_menu.s @@ -0,0 +1,20 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_0855C604:: @ 855C604 + .incbin "baserom.gba", 0x55c604, 0x60 + +gUnknown_0855C664:: @ 855C664 + .incbin "baserom.gba", 0x55c664, 0x1c + +gUnknown_0855C680:: @ 855C680 + .incbin "baserom.gba", 0x55c680, 0x18 + +gUnknown_0855C698:: @ 855C698 + .incbin "baserom.gba", 0x55c698, 0x8 + +gUnknown_0855C6A0:: @ 855C6A0 + .incbin "baserom.gba", 0x55c6a0, 0x4 diff --git a/data/party_menu.s b/data/party_menu.s new file mode 100644 index 000000000..36ee4f960 --- /dev/null +++ b/data/party_menu.s @@ -0,0 +1,229 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + +gUnknown_0861500C:: @ 861500C + .incbin "baserom.gba", 0x61500c, 0x3c + +gUnknown_08615048:: @ 8615048 + .incbin "baserom.gba", 0x615048, 0x670 + +gUnknown_086156B8:: @ 86156B8 + .incbin "baserom.gba", 0x6156b8, 0x2c + +gUnknown_086156E4:: @ 86156E4 + .incbin "baserom.gba", 0x6156e4, 0x20 + +gUnknown_08615704:: @ 8615704 + .incbin "baserom.gba", 0x615704, 0xc0 + +gUnknown_086157C4:: @ 86157C4 + .incbin "baserom.gba", 0x6157c4, 0x1c + +gUnknown_086157E0:: @ 86157E0 + .incbin "baserom.gba", 0x6157e0, 0x1c + +gUnknown_086157FC:: @ 86157FC + .incbin "baserom.gba", 0x6157fc, 0x14 + +gUnknown_08615810:: @ 8615810 + .incbin "baserom.gba", 0x615810, 0x40 + +gUnknown_08615850:: @ 8615850 + .incbin "baserom.gba", 0x615850, 0x40 + +gUnknown_08615890:: @ 8615890 + .incbin "baserom.gba", 0x615890, 0x40 + +gUnknown_086158D0:: @ 86158D0 + .incbin "baserom.gba", 0x6158d0, 0x38 + +gUnknown_08615908:: @ 8615908 + .incbin "baserom.gba", 0x615908, 0x8 + +gUnknown_08615910:: @ 8615910 + .incbin "baserom.gba", 0x615910, 0x8 + +gUnknown_08615918:: @ 8615918 + .incbin "baserom.gba", 0x615918, 0x8 + +gUnknown_08615920:: @ 8615920 + .incbin "baserom.gba", 0x615920, 0x8 + +gUnknown_08615928:: @ 8615928 + .incbin "baserom.gba", 0x615928, 0x8 + +gUnknown_08615930:: @ 8615930 + .incbin "baserom.gba", 0x615930, 0x8 + +gUnknown_08615938:: @ 8615938 + .incbin "baserom.gba", 0x615938, 0x8 + +gUnknown_08615940:: @ 8615940 + .incbin "baserom.gba", 0x615940, 0x8 + +gUnknown_08615948:: @ 8615948 + .incbin "baserom.gba", 0x615948, 0x8 + +gUnknown_08615950:: @ 8615950 + .incbin "baserom.gba", 0x615950, 0x8 + +gUnknown_08615958:: @ 8615958 + .incbin "baserom.gba", 0x615958, 0x8 + +gUnknown_08615960:: @ 8615960 + .incbin "baserom.gba", 0x615960, 0x8 + +gUnknown_08615968:: @ 8615968 + .incbin "baserom.gba", 0x615968, 0x8 + +gUnknown_08615970:: @ 8615970 + .incbin "baserom.gba", 0x615970, 0x18 + +gUnknown_08615988:: @ 8615988 + .incbin "baserom.gba", 0x615988, 0x46 + +gUnknown_086159CE:: @ 86159CE + .incbin "baserom.gba", 0x6159ce, 0x46 + +gUnknown_08615A14:: @ 8615A14 + .incbin "baserom.gba", 0x615a14, 0x36 + +gUnknown_08615A4A:: @ 8615A4A + .incbin "baserom.gba", 0x615a4a, 0x36 + +gUnknown_08615A80:: @ 8615A80 + .incbin "baserom.gba", 0x615a80, 0x36 + +gUnknown_08615AB6:: @ 8615AB6 + .incbin "baserom.gba", 0x615ab6, 0x2 + +gUnknown_08615AB8:: @ 8615AB8 + .incbin "baserom.gba", 0x615ab8, 0x2 + +gUnknown_08615ABA:: @ 8615ABA + .incbin "baserom.gba", 0x615aba, 0x3 + +gUnknown_08615ABD:: @ 8615ABD + .incbin "baserom.gba", 0x615abd, 0x3 + +gUnknown_08615AC0:: @ 8615AC0 + .incbin "baserom.gba", 0x615ac0, 0x3 + +gUnknown_08615AC3:: @ 8615AC3 + .incbin "baserom.gba", 0x615ac3, 0x2 + +gUnknown_08615AC5:: @ 8615AC5 + .incbin "baserom.gba", 0x615ac5, 0x2 + +gUnknown_08615AC7:: @ 8615AC7 + .incbin "baserom.gba", 0x615ac7, 0x2 + +gUnknown_08615AC9:: @ 8615AC9 + .incbin "baserom.gba", 0x615ac9, 0x2 + +gUnknown_08615ACB:: @ 8615ACB + .incbin "baserom.gba", 0x615acb, 0x2 + +gUnknown_08615ACD:: @ 8615ACD + .incbin "baserom.gba", 0x615acd, 0x3 + +gUnknown_08615AD0:: @ 8615AD0 + .incbin "baserom.gba", 0x615ad0, 0x3 + +gUnknown_08615AD3:: @ 8615AD3 + .incbin "baserom.gba", 0x615ad3, 0x3 + +gUnknown_08615AD6:: @ 8615AD6 + .incbin "baserom.gba", 0x615ad6, 0x3 + +gUnknown_08615AD9:: @ 8615AD9 + .incbin "baserom.gba", 0x615ad9, 0x3 + +gUnknown_08615ADC:: @ 8615ADC + .incbin "baserom.gba", 0x615adc, 0x3 + +gUnknown_08615ADF:: @ 8615ADF + .incbin "baserom.gba", 0x615adf, 0x3 + +gUnknown_08615AE2:: @ 8615AE2 + .incbin "baserom.gba", 0x615ae2, 0x3 + +gUnknown_08615AE5:: @ 8615AE5 + .incbin "baserom.gba", 0x615ae5, 0x3 + +gUnknown_08615AE8:: @ 8615AE8 + .incbin "baserom.gba", 0x615ae8, 0x3 + +gUnknown_08615AEB:: @ 8615AEB + .incbin "baserom.gba", 0x615aeb, 0x3 + +gUnknown_08615AEE:: @ 8615AEE + .incbin "baserom.gba", 0x615aee, 0x3 + +gUnknown_08615AF1:: @ 8615AF1 + .incbin "baserom.gba", 0x615af1, 0x3 + +gUnknown_08615AF4:: @ 8615AF4 + .incbin "baserom.gba", 0x615af4, 0x6c + +gUnknown_08615B60:: @ 8615B60 + .incbin "baserom.gba", 0x615b60, 0xa8 + +gUnknown_08615C08:: @ 8615C08 + .incbin "baserom.gba", 0x615c08, 0x130 + +gUnknown_08615D38:: @ 8615D38 + .incbin "baserom.gba", 0x615d38, 0x38 + +gUnknown_08615D70:: @ 8615D70 + .incbin "baserom.gba", 0x615d70, 0xe + +gUnknown_08615D7E:: @ 8615D7E + .incbin "baserom.gba", 0x615d7e, 0x1e + +gUnknown_08615D9C:: @ 8615D9C + .incbin "baserom.gba", 0x615d9c, 0x70 + +gUnknown_08615E0C:: @ 8615E0C + .incbin "baserom.gba", 0x615e0c, 0xa4 + +gUnknown_08615EB0:: @ 8615EB0 + .incbin "baserom.gba", 0x615eb0, 0x8 + +gUnknown_08615EB8:: @ 8615EB8 + .incbin "baserom.gba", 0x615eb8, 0x8 + +gUnknown_08615EC0:: @ 8615EC0 + .incbin "baserom.gba", 0x615ec0, 0x38 + +gUnknown_08615EF8:: @ 8615EF8 + .incbin "baserom.gba", 0x615ef8, 0x8 + +gUnknown_08615F00:: @ 8615F00 + .incbin "baserom.gba", 0x615f00, 0x8 + +gUnknown_08615F08:: @ 8615F08 + .incbin "baserom.gba", 0x615f08, 0x68 + +gUnknown_08615F70:: @ 8615F70 + .incbin "baserom.gba", 0x615f70, 0x8 + +gUnknown_08615F78:: @ 8615F78 + .incbin "baserom.gba", 0x615f78, 0x80 + +gUnknown_08615FF8:: @ 8615FF8 + .incbin "baserom.gba", 0x615ff8, 0x8 + +gUnknown_08616000:: @ 8616000 + .incbin "baserom.gba", 0x616000, 0x8 + +gUnknown_08616008:: @ 8616008 + .incbin "baserom.gba", 0x616008, 0x18 + +gUnknown_08616020:: @ 8616020 + .incbin "baserom.gba", 0x616020, 0x20 + +gUnknown_08616040:: @ 8616040 + .incbin "baserom.gba", 0x616040, 0x74 diff --git a/data/pickup_items.inc b/data/pickup_items.inc deleted file mode 100644 index 88ad1a43d..000000000 --- a/data/pickup_items.inc +++ /dev/null @@ -1,45 +0,0 @@ - .align 1 -gPickupItems:: @ 831C440 - .2byte ITEM_POTION - .2byte ITEM_ANTIDOTE - .2byte ITEM_SUPER_POTION - .2byte ITEM_GREAT_BALL - .2byte ITEM_REPEL - .2byte ITEM_ESCAPE_ROPE - .2byte ITEM_X_ATTACK - .2byte ITEM_FULL_HEAL - .2byte ITEM_ULTRA_BALL - .2byte ITEM_HYPER_POTION - .2byte ITEM_RARE_CANDY - .2byte ITEM_PROTEIN - .2byte ITEM_REVIVE - .2byte ITEM_HP_UP - .2byte ITEM_FULL_RESTORE - .2byte ITEM_MAX_REVIVE - .2byte ITEM_PP_UP - .2byte ITEM_MAX_ELIXIR - - .align 1 -gRarePickupItems:: @ 831C464 - .2byte ITEM_HYPER_POTION - .2byte ITEM_NUGGET - .2byte ITEM_KINGS_ROCK - .2byte ITEM_FULL_RESTORE - .2byte ITEM_ETHER - .2byte ITEM_WHITE_HERB - .2byte ITEM_TM44 - .2byte ITEM_ELIXIR - .2byte ITEM_TM01 - .2byte ITEM_LEFTOVERS - .2byte ITEM_TM26 - -gPickupProbabilities:: @ 831C47A - .byte 30 - .byte 40 - .byte 50 - .byte 60 - .byte 70 - .byte 80 - .byte 90 - .byte 94 - .byte 98 diff --git a/data/player_pc.s b/data/player_pc.s index 1a4f62b4f..c3422db30 100644 --- a/data/player_pc.s +++ b/data/player_pc.s @@ -3,41 +3,72 @@ .section .rodata + .align 2 gUnknown_085DFEA4:: @ 85DFEA4 - .incbin "baserom.gba", 0x5dfea4, 0x10 + .4byte gText_TakeOutItemsFromPC + .4byte gText_StoreItemsInPC + .4byte gText_ThrowAwayItemsInPC + .4byte gText_GoBackPrevMenu + .align 2 gUnknown_085DFEB4:: @ 85DFEB4 - .incbin "baserom.gba", 0x5dfeb4, 0x20 + .4byte gText_ItemStorage, task_pc_itemstorage + .4byte gText_Mailbox, sub_816B0A8 + .4byte gText_Decoration, sub_816B138 + .4byte gText_TurnOff, sub_816B148 + .align 2 gUnknown_085DFED4:: @ 85DFED4 - .incbin "baserom.gba", 0x5dfed4, 0x4 + .byte 0x00, 0x01, 0x02, 0x03 + .align 2 gUnknown_085DFED8:: @ 85DFED8 - .incbin "baserom.gba", 0x5dfed8, 0x4 + .byte 0x00, 0x01, 0x03, 0x00 + .align 2 gUnknown_085DFEDC:: @ 85DFEDC - .incbin "baserom.gba", 0x5dfedc, 0x20 + .4byte gText_WithdrawItem, sub_816B398 + .4byte gText_DepositItem, sub_816B2C8 + .4byte gText_TossItem, sub_816B3E4 + .4byte gText_Cancel, sub_816B4A4 + .align 2 gUnknown_085DFEFC:: @ 85DFEFC - .incbin "baserom.gba", 0x5dfefc, 0x8 + .2byte ITEM_POTION, 0x0001 + .2byte 0x0000, 0x0000 + .align 2 gUnknown_085DFF04:: @ 85DFF04 - .incbin "baserom.gba", 0x5dff04, 0x20 + .4byte gText_Read, sub_816B878 + .4byte gText_MoveToBag, sub_816B994 + .4byte gText_Give2, sub_816BABC + .4byte gText_Cancel2, sub_816BBD4 + .align 2 gUnknown_085DFF24:: @ 85DFF24 - .incbin "baserom.gba", 0x5dff24, 0x18 + .4byte 0x09010100, 0x00010f06, 0x09010100, 0x00010f08, 0x0a010100, 0x00010f08 + .align 2 gUnknown_085DFF3C:: @ 85DFF3C - .incbin "baserom.gba", 0x5dff3c, 0x8 + .4byte sub_816CA94 + .4byte sub_816CAC8 + .align 2 gUnknown_085DFF44:: @ 85DFF44 - .incbin "baserom.gba", 0x5dff44, 0x18 + .4byte 0x00000000, sub_816BDDC, fish4_goto_x5_or_x6, 0x00000000, 0x00080000, 0x07003129 + .align 2 gUnknown_085DFF5C:: @ 85DFF5C - .incbin "baserom.gba", 0x5dff5c, 0x28 + window_template 0x00, 0x10, 0x01, 0x0d, 0x12, 0x0f, 0x0001 + window_template 0x00, 0x01, 0x0d, 0x0d, 0x06, 0x0f, 0x00eb + window_template 0x00, 0x01, 0x08, 0x03, 0x03, 0x0f, 0x0153 + window_template 0x00, 0x01, 0x01, 0x0d, 0x02, 0x0f, 0x0139 + window_template 0x00, 0x08, 0x09, 0x06, 0x02, 0x0f, 0x015c + .align 2 gUnknown_085DFF84:: @ 85DFF84 - .incbin "baserom.gba", 0x5dff84, 0x8 + window_template 0x00, 0x09, 0x07, 0x05, 0x04, 0x0f, 0x0168 + .align 2 gUnknown_085DFF8C:: @ 85DFF8C - .incbin "baserom.gba", 0x5dff8c, 0x638 + .byte 0x01, 0x03, 0x02, 0x00 diff --git a/data/pokeball.s b/data/pokeball.s new file mode 100644 index 000000000..4e7b4315a --- /dev/null +++ b/data/pokeball.s @@ -0,0 +1,14 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_0832C400:: @ 832C400 + .incbin "baserom.gba", 0x32c400, 0x60 + +gUnknown_0832C460:: @ 832C460 + .incbin "baserom.gba", 0x32c460, 0x128 + +gUnknown_0832C588:: @ 832C588 + .incbin "baserom.gba", 0x32c588, 0x138 diff --git a/data/pokedex.s b/data/pokedex.s new file mode 100644 index 000000000..e81a3d78a --- /dev/null +++ b/data/pokedex.s @@ -0,0 +1,152 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_0855C6A4:: @ 855C6A4 + .incbin "baserom.gba", 0x55c6a4, 0x336 + +gUnknown_0855C9DA:: @ 855C9DA + .incbin "baserom.gba", 0x55c9da, 0x304 + +gUnknown_0855CCDE:: @ 855CCDE + .incbin "baserom.gba", 0x55ccde, 0x4b6 + +gUnknown_0855D194:: @ 855D194 + .incbin "baserom.gba", 0x55d194, 0x18 + +gUnknown_0855D1AC:: @ 855D1AC + .incbin "baserom.gba", 0x55d1ac, 0x18 + +gUnknown_0855D1C4:: @ 855D1C4 + .incbin "baserom.gba", 0x55d1c4, 0x18 + +gUnknown_0855D1DC:: @ 855D1DC + .incbin "baserom.gba", 0x55d1dc, 0x18 + +gUnknown_0855D1F4:: @ 855D1F4 + .incbin "baserom.gba", 0x55d1f4, 0x18 + +gUnknown_0855D20C:: @ 855D20C + .incbin "baserom.gba", 0x55d20c, 0x18 + +gUnknown_0855D224:: @ 855D224 + .incbin "baserom.gba", 0x55d224, 0x18 + +gUnknown_0855D23C:: @ 855D23C + .incbin "baserom.gba", 0x55d23c, 0x18 + +gUnknown_0855D254:: @ 855D254 + .incbin "baserom.gba", 0x55d254, 0x18 + +gUnknown_0855D26C:: @ 855D26C + .incbin "baserom.gba", 0x55d26c, 0x10 + +gUnknown_0855D27C:: @ 855D27C + .incbin "baserom.gba", 0x55d27c, 0x10 + +gUnknown_0855D28C:: @ 855D28C + .incbin "baserom.gba", 0x55d28c, 0x5 + +gUnknown_0855D291:: @ 855D291 + .incbin "baserom.gba", 0x55d291, 0x7 + +gUnknown_0855D298:: @ 855D298 + .incbin "baserom.gba", 0x55d298, 0x10 + +gUnknown_0855D2A8:: @ 855D2A8 + .incbin "baserom.gba", 0x55d2a8, 0x10 + +gUnknown_0855D2B8:: @ 855D2B8 + .incbin "baserom.gba", 0x55d2b8, 0x6 + +gUnknown_0855D2BE:: @ 855D2BE + .incbin "baserom.gba", 0x55d2be, 0x40 + +gUnknown_0855D2FE:: @ 855D2FE + .incbin "baserom.gba", 0x55d2fe, 0xe + +gUnknown_0855D30C:: @ 855D30C + .string "$" + +@ 855D30D + .include "data/text/pokedex_text.inc" + +@ 856B5B0 + .include "data/pokedex_entries.inc" + +gUnknown_0856E610:: @ 856E610 + .incbin "baserom.gba", 0x56e610, 0x20 + +gUnknown_0856E630:: @ 856E630 + .incbin "baserom.gba", 0x56e630, 0x10 + +gUnknown_0856E640:: @ 856E640 + .incbin "baserom.gba", 0x56e640, 0x28 + +gUnknown_0856E668:: @ 856E668 + .incbin "baserom.gba", 0x56e668, 0x8 + +gUnknown_0856E670:: @ 856E670 + .incbin "baserom.gba", 0x56e670, 0x18 + +gUnknown_0856E688:: @ 856E688 + .incbin "baserom.gba", 0x56e688, 0xc + +@ 856E694 + .include "data/graphics/pokemon/mon_footprint_table.inc" + +gUnknown_0856ED08:: @ 856ED08 + .incbin "baserom.gba", 0x56ed08, 0x28 + +gUnknown_0856ED30:: @ 856ED30 + .incbin "baserom.gba", 0x56ed30, 0x18 + +gUnknown_0856ED48:: @ 856ED48 + .incbin "baserom.gba", 0x56ed48, 0x54 + +gUnknown_0856ED9C:: @ 856ED9C + .incbin "baserom.gba", 0x56ed9c, 0x1c + +gUnknown_0856EDB8:: @ 856EDB8 + .incbin "baserom.gba", 0x56edb8, 0x1c + +gUnknown_0856EDD4:: @ 856EDD4 + .incbin "baserom.gba", 0x56edd4, 0x1c + +gUnknown_0856EDF0:: @ 856EDF0 + .incbin "baserom.gba", 0x56edf0, 0x1c + +gUnknown_0856EE0C:: @ 856EE0C + .incbin "baserom.gba", 0x56ee0c, 0x18 + +gUnknown_0856EE24:: @ 856EE24 + .incbin "baserom.gba", 0x56ee24, 0x38 + +gUnknown_0856EE5C:: @ 856EE5C + .incbin "baserom.gba", 0x56ee5c, 0x58 + +gUnknown_0856EEB4:: @ 856EEB4 + .incbin "baserom.gba", 0x56eeb4, 0x60 + +gUnknown_0856EF14:: @ 856EF14 + .incbin "baserom.gba", 0x56ef14, 0x98 + +gUnknown_0856EFAC:: @ 856EFAC + .incbin "baserom.gba", 0x56efac, 0x2 + +gUnknown_0856EFAE:: @ 856EFAE + .incbin "baserom.gba", 0x56efae, 0x6 + +gUnknown_0856EFB4:: @ 856EFB4 + .incbin "baserom.gba", 0x56efb4, 0x14 + +gUnknown_0856EFC8:: @ 856EFC8 + .incbin "baserom.gba", 0x56efc8, 0x30 + +gUnknown_0856EFF8:: @ 856EFF8 + .incbin "baserom.gba", 0x56eff8, 0x10 + +gUnknown_0856F008:: @ 856F008 + .incbin "baserom.gba", 0x56f008, 0x10 diff --git a/data/pokemon_colosseum.mb b/data/pokemon_colosseum.mb new file mode 100644 index 000000000..fdeb854a0 Binary files /dev/null and b/data/pokemon_colosseum.mb differ diff --git a/data/pokemon_icon.s b/data/pokemon_icon.s new file mode 100644 index 000000000..ab3824f35 --- /dev/null +++ b/data/pokemon_icon.s @@ -0,0 +1,26 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +@ 857BCA8 + .include "data/graphics/pokemon/mon_icon_table.inc" + +@ 857C388 + .include "data/graphics/pokemon/mon_icon_palette_indices.inc" + +@ 857C540 + .include "data/graphics/pokemon/mon_icon_palette_table.inc" + +gUnknown_0857C570:: @ 857C570 + .incbin "baserom.gba", 0x57c570, 0x44 + +gUnknown_0857C5B4:: @ 857C5B4 + .incbin "baserom.gba", 0x57c5b4, 0x34 + +gUnknown_0857C5E8:: @ 857C5E8 + .incbin "baserom.gba", 0x57c5e8, 0x8 + +gUnknown_0857C5F0:: @ 857C5F0 + .incbin "baserom.gba", 0x57c5f0, 0x18 diff --git a/data/pokemon_storage_system.s b/data/pokemon_storage_system.s new file mode 100644 index 000000000..4f2815713 --- /dev/null +++ b/data/pokemon_storage_system.s @@ -0,0 +1,152 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_085716C0:: @ 85716C0 + .incbin "baserom.gba", 0x5716c0, 0x28 + +gUnknown_085716E8:: @ 85716E8 + .incbin "baserom.gba", 0x5716e8, 0x28 + +gUnknown_08571710:: @ 8571710 + .incbin "baserom.gba", 0x571710, 0x24 + +gUnknown_08571734:: @ 8571734 + .incbin "baserom.gba", 0x571734, 0x3 + +gUnknown_08571737:: @ 8571737 + .incbin "baserom.gba", 0x571737, 0x5 + +gUnknown_0857173C:: @ 857173C + .incbin "baserom.gba", 0x57173c, 0x20 + +gUnknown_0857175C:: @ 857175C + .incbin "baserom.gba", 0x57175c, 0x800 + +gUnknown_08571F5C:: @ 8571F5C + .incbin "baserom.gba", 0x571f5c, 0x180 + +gUnknown_085720DC:: @ 85720DC + .incbin "baserom.gba", 0x5720dc, 0x98 + +gUnknown_08572174:: @ 8572174 + .incbin "baserom.gba", 0x572174, 0x12c + +gUnknown_085722A0:: @ 85722A0 + .incbin "baserom.gba", 0x5722a0, 0xfc + +gUnknown_0857239C:: @ 857239C + .incbin "baserom.gba", 0x57239c, 0x40 + +gUnknown_085723DC:: @ 85723DC + .incbin "baserom.gba", 0x5723dc, 0x20 + +gUnknown_085723FC:: @ 85723FC + .incbin "baserom.gba", 0x5723fc, 0x20 + +gUnknown_0857241C:: @ 857241C + .incbin "baserom.gba", 0x57241c, 0x20 + +gUnknown_0857243C:: @ 857243C + .incbin "baserom.gba", 0x57243c, 0x20 + +gUnknown_0857245C:: @ 857245C + .incbin "baserom.gba", 0x57245c, 0x48 + +gUnknown_085724A4:: @ 85724A4 + .incbin "baserom.gba", 0x5724a4, 0x18 + +gUnknown_085724BC:: @ 85724BC + .incbin "baserom.gba", 0x5724bc, 0x238 + +gUnknown_085726F4:: @ 85726F4 + .incbin "baserom.gba", 0x5726f4, 0x20 + +gUnknown_08572714:: @ 8572714 + .incbin "baserom.gba", 0x572714, 0x20 + +gUnknown_08572734:: @ 8572734 + .incbin "baserom.gba", 0x572734, 0x10 + +gUnknown_08572744:: @ 8572744 + .incbin "baserom.gba", 0x572744, 0x8 + +gUnknown_0857274C:: @ 857274C + .incbin "baserom.gba", 0x57274c, 0x8 + +gUnknown_08572754:: @ 8572754 + .incbin "baserom.gba", 0x572754, 0x18 + +gUnknown_0857276C:: @ 857276C + .incbin "baserom.gba", 0x57276c, 0xf8 + +gUnknown_08572864:: @ 8572864 + .incbin "baserom.gba", 0x572864, 0x58 + +gUnknown_085728BC:: @ 85728BC + .incbin "baserom.gba", 0x5728bc, 0x18 + +gUnknown_085728D4:: @ 85728D4 + .incbin "baserom.gba", 0x5728d4, 0x48 + +gUnknown_0857291C:: @ 857291C + .incbin "baserom.gba", 0x57291c, 0x4c58 + +gUnknown_08577574:: @ 8577574 + .incbin "baserom.gba", 0x577574, 0x44 + +gUnknown_085775B8:: @ 85775B8 + .incbin "baserom.gba", 0x5775b8, 0x398c + +gUnknown_0857AF44:: @ 857AF44 + .incbin "baserom.gba", 0x57af44, 0xc0 + +gUnknown_0857B004:: @ 857B004 + .incbin "baserom.gba", 0x57b004, 0x7c + +gUnknown_0857B080:: @ 857B080 + .incbin "baserom.gba", 0x57b080, 0x28 + +gUnknown_0857B0A8:: @ 857B0A8 + .incbin "baserom.gba", 0x57b0a8, 0x38 + +gUnknown_0857B0E0:: @ 857B0E0 + .incbin "baserom.gba", 0x57b0e0, 0x8b8 + +gUnknown_0857B998:: @ 857B998 + .incbin "baserom.gba", 0x57b998, 0xc + +gUnknown_0857B9A4:: @ 857B9A4 + .incbin "baserom.gba", 0x57b9a4, 0x18 + +gUnknown_0857B9BC:: @ 857B9BC + .incbin "baserom.gba", 0x57b9bc, 0x28 + +gUnknown_0857B9E4:: @ 857B9E4 + .incbin "baserom.gba", 0x57b9e4, 0x18 + +gUnknown_0857B9FC:: @ 857B9FC + .incbin "baserom.gba", 0x57b9fc, 0x54 + +gUnknown_0857BA50:: @ 857BA50 + .incbin "baserom.gba", 0x57ba50, 0x18 + +gUnknown_0857BA68:: @ 857BA68 + .incbin "baserom.gba", 0x57ba68, 0x18 + +gUnknown_0857BA80:: @ 857BA80 + .incbin "baserom.gba", 0x57ba80, 0x9c + +gUnknown_0857BB1C:: @ 857BB1C + .incbin "baserom.gba", 0x57bb1c, 0x8 + +gUnknown_0857BB24:: @ 857BB24 + .incbin "baserom.gba", 0x57bb24, 0x14c + +gUnknown_0857BC70:: @ 857BC70 + .incbin "baserom.gba", 0x57bc70, 0x18 + +gUnknown_0857BC88:: @ 857BC88 + .incbin "baserom.gba", 0x57bc88, 0x20 diff --git a/data/pokemon_summary_screen.s b/data/pokemon_summary_screen.s new file mode 100644 index 000000000..ac28d47c5 --- /dev/null +++ b/data/pokemon_summary_screen.s @@ -0,0 +1,154 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + +@ 86181C1 + .include "data/text/move_descriptions.inc" + +@ 861CAAC + .include "data/text/nature_names.inc" + +gUnknown_0861CBB4:: @ 861CBB4 + .incbin "baserom.gba", 0x61cbb4, 0x38 + +gUnknown_0861CBEC:: @ 861CBEC + .incbin "baserom.gba", 0x61cbec, 0xc + +gUnknown_0861CBF8:: @ 861CBF8 + .incbin "baserom.gba", 0x61cbf8, 0xc + +gUnknown_0861CC04:: @ 861CC04 + .incbin "baserom.gba", 0x61cc04, 0xc + +gUnknown_0861CC10:: @ 861CC10 + .incbin "baserom.gba", 0x61cc10, 0xc + +gUnknown_0861CC1C:: @ 861CC1C + .incbin "baserom.gba", 0x61cc1c, 0x8 + +gUnknown_0861CC24:: @ 861CC24 + .incbin "baserom.gba", 0x61cc24, 0xa8 + +gUnknown_0861CCCC:: @ 861CCCC + .incbin "baserom.gba", 0x61cccc, 0x20 + +gUnknown_0861CCEC:: @ 861CCEC + .incbin "baserom.gba", 0x61ccec, 0x28 + +gUnknown_0861CD14:: @ 861CD14 + .incbin "baserom.gba", 0x61cd14, 0x18 + +gUnknown_0861CD2C:: @ 861CD2C + .incbin "baserom.gba", 0x61cd2c, 0xa7 + +gUnknown_0861CDD3:: @ 861CDD3 + .incbin "baserom.gba", 0x61cdd3, 0x81 + +gUnknown_0861CE54:: @ 861CE54 + .incbin "baserom.gba", 0x61ce54, 0x10 + +gUnknown_0861CE64:: @ 861CE64 + .incbin "baserom.gba", 0x61ce64, 0x10 + +gUnknown_0861CE74:: @ 861CE74 + .incbin "baserom.gba", 0x61ce74, 0x7 + +gUnknown_0861CE7B:: @ 861CE7B + .incbin "baserom.gba", 0x61ce7b, 0x7 + +gUnknown_0861CE82:: @ 861CE82 + .incbin "baserom.gba", 0x61ce82, 0xc + +gUnknown_0861CE8E:: @ 861CE8E + .incbin "baserom.gba", 0x61ce8e, 0x9 + +gUnknown_0861CE97:: @ 861CE97 + .incbin "baserom.gba", 0x61ce97, 0x125 + +gUnknown_0861CFBC:: @ 861CFBC + .incbin "baserom.gba", 0x61cfbc, 0x8 + +gUnknown_0861CFC4:: @ 861CFC4 + .incbin "baserom.gba", 0x61cfc4, 0x18 + +gUnknown_0861CFDC:: @ 861CFDC + .incbin "baserom.gba", 0x61cfdc, 0x98 + +gUnknown_0861D074:: @ 861D074 + .incbin "baserom.gba", 0x61d074, 0x8 + +gUnknown_0861D07C:: @ 861D07C + .incbin "baserom.gba", 0x61d07c, 0x8 + +gUnknown_0861D084:: @ 861D084 + .incbin "baserom.gba", 0x61d084, 0x74 + +gUnknown_0861D0F8:: @ 861D0F8 + .incbin "baserom.gba", 0x61d0f8, 0x8 + +gUnknown_0861D100:: @ 861D100 + .incbin "baserom.gba", 0x61d100, 0x8 + +gUnknown_0861D108:: @ 861D108 + .incbin "baserom.gba", 0x61d108, 0x18 + +gUnknown_0861D120:: @ 861D120 + .incbin "baserom.gba", 0x61d120, 0x20 + +gUnknown_0861D140:: @ 861D140 + .incbin "baserom.gba", 0x61d140, 0x60 + +gUnknown_0861D1A0:: @ 861D1A0 + .incbin "baserom.gba", 0x61d1a0, 0xd54 + +gUnknown_0861DEF4:: @ 861DEF4 + .incbin "baserom.gba", 0x61def4, 0x314 + +gUnknown_0861E208:: @ 861E208 + .incbin "baserom.gba", 0x61e208, 0xd5c + +gUnknown_0861EF64:: @ 861EF64 + .incbin "baserom.gba", 0x61ef64, 0x350 + +gUnknown_0861F2B4:: @ 861F2B4 + .incbin "baserom.gba", 0x61f2b4, 0xc + +gUnknown_0861F2C0:: @ 861F2C0 + .incbin "baserom.gba", 0x61f2c0, 0x18 + +gUnknown_0861F2D8:: @ 861F2D8 + .incbin "baserom.gba", 0x61f2d8, 0x30 + +gUnknown_0861F308:: @ 861F308 + .incbin "baserom.gba", 0x61f308, 0x4 + +gUnknown_0861F30C:: @ 861F30C + .incbin "baserom.gba", 0x61f30c, 0x2 + +gUnknown_0861F30E:: @ 861F30E + .incbin "baserom.gba", 0x61f30e, 0x2 + +gUnknown_0861F310:: @ 861F310 + .incbin "baserom.gba", 0x61f310, 0x4 + +gUnknown_0861F314:: @ 861F314 + .incbin "baserom.gba", 0x61f314, 0x8 + +gUnknown_0861F31C:: @ 861F31C + .incbin "baserom.gba", 0x61f31c, 0xc + +gUnknown_0861F328:: @ 861F328 + .incbin "baserom.gba", 0x61f328, 0x28 + +gUnknown_0861F350:: @ 861F350 + .incbin "baserom.gba", 0x61f350, 0x20 + +gUnknown_0861F370:: @ 861F370 + .incbin "baserom.gba", 0x61f370, 0x5c + +gUnknown_0861F3CC:: @ 861F3CC + .incbin "baserom.gba", 0x61f3cc, 0x8 + +gUnknown_0861F3D4:: @ 861F3D4 + .incbin "baserom.gba", 0x61f3d4, 0x18 diff --git a/data/pokenav.s b/data/pokenav.s new file mode 100644 index 000000000..8e8e24b65 --- /dev/null +++ b/data/pokenav.s @@ -0,0 +1,517 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + +gUnknown_0861F3EC:: @ 861F3EC + .incbin "baserom.gba", 0x61f3ec, 0x618 + +gUnknown_0861FA04:: @ 861FA04 + .incbin "baserom.gba", 0x61fa04, 0x4 + +gUnknown_0861FA08:: @ 861FA08 + .incbin "baserom.gba", 0x61fa08, 0x10 + +gUnknown_0861FA18:: @ 861FA18 + .incbin "baserom.gba", 0x61fa18, 0x30 + +gUnknown_0861FA48:: @ 861FA48 + .incbin "baserom.gba", 0x61fa48, 0x4 + +gUnknown_0861FA4C:: @ 861FA4C + .incbin "baserom.gba", 0x61fa4c, 0x8 + +gUnknown_0861FA54:: @ 861FA54 + .incbin "baserom.gba", 0x61fa54, 0x10 + +gUnknown_0861FA64:: @ 861FA64 + .incbin "baserom.gba", 0x61fa64, 0x8 + +gUnknown_0861FA6C:: @ 861FA6C + .incbin "baserom.gba", 0x61fa6c, 0x30 + +gUnknown_0861FA9C:: @ 861FA9C + .incbin "baserom.gba", 0x61fa9c, 0x68 + +gUnknown_0861FB04:: @ 861FB04 + .incbin "baserom.gba", 0x61fb04, 0x28 + +gUnknown_0861FB2C:: @ 861FB2C + .incbin "baserom.gba", 0x61fb2c, 0x18 + +gUnknown_0861FB44:: @ 861FB44 + .incbin "baserom.gba", 0x61fb44, 0xa0 + +gUnknown_0861FBE4:: @ 861FBE4 + .incbin "baserom.gba", 0x61fbe4, 0x4 + +gUnknown_0861FBE8:: @ 861FBE8 + .incbin "baserom.gba", 0x61fbe8, 0xc + +gUnknown_0861FBF4:: @ 861FBF4 + .incbin "baserom.gba", 0x61fbf4, 0x3 + +gUnknown_0861FBF7:: @ 861FBF7 + .incbin "baserom.gba", 0x61fbf7, 0x5 + +gUnknown_0861FBFC:: @ 861FBFC + .incbin "baserom.gba", 0x61fbfc, 0x8 + +gUnknown_0861FC04:: @ 861FC04 + .incbin "baserom.gba", 0x61fc04, 0x18 + +gUnknown_0861FC1C:: @ 861FC1C + .incbin "baserom.gba", 0x61fc1c, 0x20 + +gUnknown_0861FC3C:: @ 861FC3C + .incbin "baserom.gba", 0x61fc3c, 0x18 + +gUnknown_0861FC54:: @ 861FC54 + .incbin "baserom.gba", 0x61fc54, 0x5 + +gUnknown_0861FC59:: @ 861FC59 + .incbin "baserom.gba", 0x61fc59, 0x1f + +gUnknown_0861FC78:: @ 861FC78 + .incbin "baserom.gba", 0x61fc78, 0x2 + +gUnknown_0861FC7A:: @ 861FC7A + .incbin "baserom.gba", 0x61fc7a, 0xc + +gUnknown_0861FC86:: @ 861FC86 + .incbin "baserom.gba", 0x61fc86, 0x12 + +gUnknown_0861FC98:: @ 861FC98 + .incbin "baserom.gba", 0x61fc98, 0x14 + +gUnknown_0861FCAC:: @ 861FCAC + .incbin "baserom.gba", 0x61fcac, 0xa0 + +gUnknown_0861FD4C:: @ 861FD4C + .incbin "baserom.gba", 0x61fd4c, 0x20 + +gUnknown_0861FD6C:: @ 861FD6C + .incbin "baserom.gba", 0x61fd6c, 0x288 + +gUnknown_0861FFF4:: @ 861FFF4 + .incbin "baserom.gba", 0x61fff4, 0x1a0 + +gUnknown_08620194:: @ 8620194 + .incbin "baserom.gba", 0x620194, 0xc + +gUnknown_086201A0:: @ 86201A0 + .incbin "baserom.gba", 0x6201a0, 0x24 + +gUnknown_086201C4:: @ 86201C4 + .incbin "baserom.gba", 0x6201c4, 0x10 + +gUnknown_086201D4:: @ 86201D4 + .incbin "baserom.gba", 0x6201d4, 0x6c + +gUnknown_08620240:: @ 8620240 + .incbin "baserom.gba", 0x620240, 0x4 + +gUnknown_08620244:: @ 8620244 + .incbin "baserom.gba", 0x620244, 0x88 + +gUnknown_086202CC:: @ 86202CC + .incbin "baserom.gba", 0x6202cc, 0x8 + +gUnknown_086202D4:: @ 86202D4 + .incbin "baserom.gba", 0x6202d4, 0x38 + +gUnknown_0862030C:: @ 862030C + .incbin "baserom.gba", 0x62030c, 0x3 + +gUnknown_0862030F:: @ 862030F + .incbin "baserom.gba", 0x62030f, 0x3d + +gUnknown_0862034C:: @ 862034C + .incbin "baserom.gba", 0x62034c, 0x20 + +gUnknown_0862036C:: @ 862036C + .incbin "baserom.gba", 0x62036c, 0x18 + +gUnknown_08620384:: @ 8620384 + .incbin "baserom.gba", 0x620384, 0x1ca4 + +gUnknown_08622028:: @ 8622028 + .incbin "baserom.gba", 0x622028, 0x4e0 + +gUnknown_08622508:: @ 8622508 + .incbin "baserom.gba", 0x622508, 0x2 + +gUnknown_0862250A:: @ 862250A + .incbin "baserom.gba", 0x62250a, 0x6 + +gUnknown_08622510:: @ 8622510 + .incbin "baserom.gba", 0x622510, 0x20 + +gUnknown_08622530:: @ 8622530 + .incbin "baserom.gba", 0x622530, 0xa4 + +gUnknown_086225D4:: @ 86225D4 + .incbin "baserom.gba", 0x6225d4, 0x10c + +gUnknown_086226E0:: @ 86226E0 + .incbin "baserom.gba", 0x6226e0, 0x20 + +gUnknown_08622700:: @ 8622700 + .incbin "baserom.gba", 0x622700, 0x20 + +gUnknown_08622720:: @ 8622720 + .incbin "baserom.gba", 0x622720, 0x40 + +gUnknown_08622760:: @ 8622760 + .incbin "baserom.gba", 0x622760, 0x2c + +gUnknown_0862278C:: @ 862278C + .incbin "baserom.gba", 0x62278c, 0x8 + +gUnknown_08622794:: @ 8622794 + .incbin "baserom.gba", 0x622794, 0x4 + +gUnknown_08622798:: @ 8622798 + .incbin "baserom.gba", 0x622798, 0x40 + +gUnknown_086227D8:: @ 86227D8 + .incbin "baserom.gba", 0x6227d8, 0x8 + +gUnknown_086227E0:: @ 86227E0 + .incbin "baserom.gba", 0x6227e0, 0x8 + +gUnknown_086227E8:: @ 86227E8 + .incbin "baserom.gba", 0x6227e8, 0xc + +gUnknown_086227F4:: @ 86227F4 + .incbin "baserom.gba", 0x6227f4, 0x14 + +gUnknown_08622808:: @ 8622808 + .incbin "baserom.gba", 0x622808, 0x8 + +gUnknown_08622810:: @ 8622810 + .incbin "baserom.gba", 0x622810, 0x8 + +gUnknown_08622818:: @ 8622818 + .incbin "baserom.gba", 0x622818, 0x18 + +gUnknown_08622830:: @ 8622830 + .incbin "baserom.gba", 0x622830, 0x20 + +gUnknown_08622850:: @ 8622850 + .incbin "baserom.gba", 0x622850, 0x18 + +gUnknown_08622868:: @ 8622868 + .incbin "baserom.gba", 0x622868, 0x20 + +gUnknown_08622888:: @ 8622888 + .incbin "baserom.gba", 0x622888, 0x850 + +gUnknown_086230D8:: @ 86230D8 + .incbin "baserom.gba", 0x6230d8, 0xc + +gUnknown_086230E4:: @ 86230E4 + .incbin "baserom.gba", 0x6230e4, 0x14 + +gUnknown_086230F8:: @ 86230F8 + .incbin "baserom.gba", 0x6230f8, 0x8 + +gUnknown_08623100:: @ 8623100 + .incbin "baserom.gba", 0x623100, 0x10 + +gUnknown_08623110:: @ 8623110 + .incbin "baserom.gba", 0x623110, 0x8 + +gUnknown_08623118:: @ 8623118 + .incbin "baserom.gba", 0x623118, 0xb8 + +gUnknown_086231D0:: @ 86231D0 + .incbin "baserom.gba", 0x6231d0, 0x18 + +gUnknown_086231E8:: @ 86231E8 + .incbin "baserom.gba", 0x6231e8, 0x20 + +gUnknown_08623208:: @ 8623208 + .incbin "baserom.gba", 0x623208, 0x20 + +gUnknown_08623228:: @ 8623228 + .incbin "baserom.gba", 0x623228, 0x14 + +gUnknown_0862323C:: @ 862323C + .incbin "baserom.gba", 0x62323c, 0xfc + +gUnknown_08623338:: @ 8623338 + .incbin "baserom.gba", 0x623338, 0x20 + +gUnknown_08623358:: @ 8623358 + .incbin "baserom.gba", 0x623358, 0xc + +gUnknown_08623364:: @ 8623364 + .incbin "baserom.gba", 0x623364, 0x8 + +gUnknown_0862336C:: @ 862336C + .incbin "baserom.gba", 0x62336c, 0x8 + +gUnknown_08623374:: @ 8623374 + .incbin "baserom.gba", 0x623374, 0x8 + +gUnknown_0862337C:: @ 862337C + .incbin "baserom.gba", 0x62337c, 0x8 + +gUnknown_08623384:: @ 8623384 + .incbin "baserom.gba", 0x623384, 0x1c + +gUnknown_086233A0:: @ 86233A0 + .incbin "baserom.gba", 0x6233a0, 0x14 + +gUnknown_086233B4:: @ 86233B4 + .incbin "baserom.gba", 0x6233b4, 0x10 + +gUnknown_086233C4:: @ 86233C4 + .incbin "baserom.gba", 0x6233c4, 0x20 + +gUnknown_086233E4:: @ 86233E4 + .incbin "baserom.gba", 0x6233e4, 0xc8 + +gUnknown_086234AC:: @ 86234AC + .incbin "baserom.gba", 0x6234ac, 0xc4 + +gUnknown_08623570:: @ 8623570 + .incbin "baserom.gba", 0x623570, 0x20 + +gUnknown_08623590:: @ 8623590 + .incbin "baserom.gba", 0x623590, 0x4 + +gUnknown_08623594:: @ 8623594 + .incbin "baserom.gba", 0x623594, 0x4 + +gUnknown_08623598:: @ 8623598 + .incbin "baserom.gba", 0x623598, 0x1c + +gUnknown_086235B4:: @ 86235B4 + .incbin "baserom.gba", 0x6235b4, 0x8 + +gUnknown_086235BC:: @ 86235BC + .incbin "baserom.gba", 0x6235bc, 0xc + +gUnknown_086235C8:: @ 86235C8 + .incbin "baserom.gba", 0x6235c8, 0xc + +gUnknown_086235D4:: @ 86235D4 + .incbin "baserom.gba", 0x6235d4, 0x4 + +gUnknown_086235D8:: @ 86235D8 + .incbin "baserom.gba", 0x6235d8, 0xc + +gUnknown_086235E4:: @ 86235E4 + .incbin "baserom.gba", 0x6235e4, 0x20 + +gUnknown_08623604:: @ 8623604 + .incbin "baserom.gba", 0x623604, 0xc8 + +gUnknown_086236CC:: @ 86236CC + .incbin "baserom.gba", 0x6236cc, 0xc4 + +gUnknown_08623790:: @ 8623790 + .incbin "baserom.gba", 0x623790, 0x20 + +gUnknown_086237B0:: @ 86237B0 + .incbin "baserom.gba", 0x6237b0, 0x4 + +gUnknown_086237B4:: @ 86237B4 + .incbin "baserom.gba", 0x6237b4, 0x4 + +gUnknown_086237B8:: @ 86237B8 + .incbin "baserom.gba", 0x6237b8, 0x1c + +gUnknown_086237D4:: @ 86237D4 + .incbin "baserom.gba", 0x6237d4, 0x8 + +gUnknown_086237DC:: @ 86237DC + .incbin "baserom.gba", 0x6237dc, 0xc + +gUnknown_086237E8:: @ 86237E8 + .incbin "baserom.gba", 0x6237e8, 0xc + +gUnknown_086237F4:: @ 86237F4 + .incbin "baserom.gba", 0x6237f4, 0x4 + +gUnknown_086237F8:: @ 86237F8 + .incbin "baserom.gba", 0x6237f8, 0x44 + +@ 862383C + .include "data/text/ribbon_descriptions.inc" + +@ 8623A74 + .include "data/text/gift_ribbon_descriptions.inc" + +gUnknown_08623FF8:: @ 8623FF8 + .incbin "baserom.gba", 0x623ff8, 0xa0 + +gUnknown_08624098:: @ 8624098 + .incbin "baserom.gba", 0x624098, 0x20 + +gUnknown_086240B8:: @ 86240B8 + .incbin "baserom.gba", 0x6240b8, 0xae0 + +gUnknown_08624B98:: @ 8624B98 + .incbin "baserom.gba", 0x624b98, 0x8 + +gUnknown_08624BA0:: @ 8624BA0 + .incbin "baserom.gba", 0x624ba0, 0x18 + +gUnknown_08624BB8:: @ 8624BB8 + .incbin "baserom.gba", 0x624bb8, 0x8 + +gUnknown_08624BC0:: @ 8624BC0 + .incbin "baserom.gba", 0x624bc0, 0x4 + +gUnknown_08624BC4:: @ 8624BC4 + .incbin "baserom.gba", 0x624bc4, 0x8 + +gUnknown_08624BCC:: @ 8624BCC + .incbin "baserom.gba", 0x624bcc, 0xc + +gUnknown_08624BD8:: @ 8624BD8 + .incbin "baserom.gba", 0x624bd8, 0xc + +gUnknown_08624BE4:: @ 8624BE4 + .incbin "baserom.gba", 0x624be4, 0x4 + +gUnknown_08624BE8:: @ 8624BE8 + .incbin "baserom.gba", 0x624be8, 0x10 + +gUnknown_08624BF8:: @ 8624BF8 + .incbin "baserom.gba", 0x624bf8, 0x80 + +gUnknown_08624C78:: @ 8624C78 + .incbin "baserom.gba", 0x624c78, 0x8 + +gUnknown_08624C80:: @ 8624C80 + .incbin "baserom.gba", 0x624c80, 0x84 + +gUnknown_08624D04:: @ 8624D04 + .incbin "baserom.gba", 0x624d04, 0x5a4 + +gUnknown_086252A8:: @ 86252A8 + .incbin "baserom.gba", 0x6252a8, 0x54 + +gUnknown_086252FC:: @ 86252FC + .incbin "baserom.gba", 0x6252fc, 0x14 + +gUnknown_08625310:: @ 8625310 + .incbin "baserom.gba", 0x625310, 0x14 + +gUnknown_08625324:: @ 8625324 + .incbin "baserom.gba", 0x625324, 0x14 + +gUnknown_08625338:: @ 8625338 + .incbin "baserom.gba", 0x625338, 0x14 + +gUnknown_0862534C:: @ 862534C + .incbin "baserom.gba", 0x62534c, 0x14 + +gUnknown_08625360:: @ 8625360 + .incbin "baserom.gba", 0x625360, 0x14 + +gUnknown_08625374:: @ 8625374 + .incbin "baserom.gba", 0x625374, 0x14 + +gUnknown_08625388:: @ 8625388 + .incbin "baserom.gba", 0x625388, 0x60 + +gUnknown_086253E8:: @ 86253E8 + .incbin "baserom.gba", 0x6253e8, 0x18 + +gUnknown_08625400:: @ 8625400 + .incbin "baserom.gba", 0x625400, 0x3 + +gUnknown_08625403:: @ 8625403 + .incbin "baserom.gba", 0x625403, 0x1 + +gUnknown_08625404:: @ 8625404 + .incbin "baserom.gba", 0x625404, 0xc + +gUnknown_08625410:: @ 8625410 + .incbin "baserom.gba", 0x625410, 0x100 + +gUnknown_08625510:: @ 8625510 + .incbin "baserom.gba", 0x625510, 0x30 + +gUnknown_08625540:: @ 8625540 + .incbin "baserom.gba", 0x625540, 0x8 + +gUnknown_08625548:: @ 8625548 + .incbin "baserom.gba", 0x625548, 0x500 + +gUnknown_08625A48:: @ 8625A48 + .incbin "baserom.gba", 0x625a48, 0x8 + +gUnknown_08625A50:: @ 8625A50 + .incbin "baserom.gba", 0x625a50, 0x18 + +gUnknown_08625A68:: @ 8625A68 + .incbin "baserom.gba", 0x625a68, 0x8 + +gUnknown_08625A70:: @ 8625A70 + .incbin "baserom.gba", 0x625a70, 0x20 + +gUnknown_08625A90:: @ 8625A90 + .incbin "baserom.gba", 0x625a90, 0x18 + +gUnknown_08625AA8:: @ 8625AA8 + .incbin "baserom.gba", 0x625aa8, 0x18 + +gUnknown_08625AC0:: @ 8625AC0 + .incbin "baserom.gba", 0x625ac0, 0x8 + +gUnknown_08625AC8:: @ 8625AC8 + .incbin "baserom.gba", 0x625ac8, 0x4c + +gUnknown_08625B14:: @ 8625B14 + .incbin "baserom.gba", 0x625b14, 0x18 + +gUnknown_08625B2C:: @ 8625B2C + .incbin "baserom.gba", 0x625b2c, 0x28 + +gUnknown_08625B54:: @ 8625B54 + .incbin "baserom.gba", 0x625b54, 0x18 + +gUnknown_08625B6C:: @ 8625B6C + .incbin "baserom.gba", 0x625b6c, 0x520 + +gUnknown_0862608C:: @ 862608C + .incbin "baserom.gba", 0x62608c, 0x2 + +gUnknown_0862608E:: @ 862608E + .incbin "baserom.gba", 0x62608e, 0x4326 + +gUnknown_0862A3B4:: @ 862A3B4 + .incbin "baserom.gba", 0x62a3b4, 0x218 + +gUnknown_0862A5CC:: @ 862A5CC + .incbin "baserom.gba", 0x62a5cc, 0x8 + +gUnknown_0862A5D4:: @ 862A5D4 + .incbin "baserom.gba", 0x62a5d4, 0x20 + +gUnknown_0862A5F4:: @ 862A5F4 + .incbin "baserom.gba", 0x62a5f4, 0x4 + +gUnknown_0862A5F8:: @ 862A5F8 + .incbin "baserom.gba", 0x62a5f8, 0x20 + +gUnknown_0862A618:: @ 862A618 + .incbin "baserom.gba", 0x62a618, 0x48 + +gUnknown_0862A660:: @ 862A660 + .incbin "baserom.gba", 0x62a660, 0x10 + +gUnknown_0862A670:: @ 862A670 + .incbin "baserom.gba", 0x62a670, 0x18 + +gUnknown_0862A688:: @ 862A688 + .incbin "baserom.gba", 0x62a688, 0x10 + +gUnknown_0862A698:: @ 862A698 + .incbin "baserom.gba", 0x62a698, 0x8 diff --git a/data/rayquaza_scene.s b/data/rayquaza_scene.s new file mode 100644 index 000000000..51a285285 --- /dev/null +++ b/data/rayquaza_scene.s @@ -0,0 +1,160 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + +gUnknown_0862A6A0:: @ 862A6A0 + .incbin "baserom.gba", 0x62a6a0, 0x8c + +gUnknown_0862A72C:: @ 862A72C + .incbin "baserom.gba", 0x62a72c, 0x24 + +gUnknown_0862A750:: @ 862A750 + .incbin "baserom.gba", 0x62a750, 0x24 + +gUnknown_0862A774:: @ 862A774 + .incbin "baserom.gba", 0x62a774, 0xa8 + +gUnknown_0862A81C:: @ 862A81C + .incbin "baserom.gba", 0x62a81c, 0x30 + +gUnknown_0862A84C:: @ 862A84C + .incbin "baserom.gba", 0x62a84c, 0x18 + +gUnknown_0862A864:: @ 862A864 + .incbin "baserom.gba", 0x62a864, 0x18 + +gUnknown_0862A87C:: @ 862A87C + .incbin "baserom.gba", 0x62a87c, 0xc + +gUnknown_0862A888:: @ 862A888 + .incbin "baserom.gba", 0x62a888, 0x3c + +gUnknown_0862A8C4:: @ 862A8C4 + .incbin "baserom.gba", 0x62a8c4, 0x8 + +gUnknown_0862A8CC:: @ 862A8CC + .incbin "baserom.gba", 0x62a8cc, 0x8 + +gUnknown_0862A8D4:: @ 862A8D4 + .incbin "baserom.gba", 0x62a8d4, 0x24 + +gUnknown_0862A8F8:: @ 862A8F8 + .incbin "baserom.gba", 0x62a8f8, 0x8 + +gUnknown_0862A900:: @ 862A900 + .incbin "baserom.gba", 0x62a900, 0x24 + +gUnknown_0862A924:: @ 862A924 + .incbin "baserom.gba", 0x62a924, 0x8 + +gUnknown_0862A92C:: @ 862A92C + .incbin "baserom.gba", 0x62a92c, 0xa8 + +gUnknown_0862A9D4:: @ 862A9D4 + .incbin "baserom.gba", 0x62a9d4, 0x8 + +gUnknown_0862A9DC:: @ 862A9DC + .incbin "baserom.gba", 0x62a9dc, 0x8 + +gUnknown_0862A9E4:: @ 862A9E4 + .incbin "baserom.gba", 0x62a9e4, 0x30 + +gUnknown_0862AA14:: @ 862AA14 + .incbin "baserom.gba", 0x62aa14, 0x8 + +gUnknown_0862AA1C:: @ 862AA1C + .incbin "baserom.gba", 0x62aa1c, 0x18 + +gUnknown_0862AA34:: @ 862AA34 + .incbin "baserom.gba", 0x62aa34, 0x8 + +gUnknown_0862AA3C:: @ 862AA3C + .incbin "baserom.gba", 0x62aa3c, 0x18 + +gUnknown_0862AA54:: @ 862AA54 + .incbin "baserom.gba", 0x62aa54, 0x3c + +gUnknown_0862AA90:: @ 862AA90 + .incbin "baserom.gba", 0x62aa90, 0x8 + +gUnknown_0862AA98:: @ 862AA98 + .incbin "baserom.gba", 0x62aa98, 0x8 + +gUnknown_0862AAA0:: @ 862AAA0 + .incbin "baserom.gba", 0x62aaa0, 0x18 + +gUnknown_0862AAB8:: @ 862AAB8 + .incbin "baserom.gba", 0x62aab8, 0x14 + +gUnknown_0862AACC:: @ 862AACC + .incbin "baserom.gba", 0x62aacc, 0x30 + +gUnknown_0862AAFC:: @ 862AAFC + .incbin "baserom.gba", 0x62aafc, 0x8 + +gUnknown_0862AB04:: @ 862AB04 + .incbin "baserom.gba", 0x62ab04, 0x8 + +gUnknown_0862AB0C:: @ 862AB0C + .incbin "baserom.gba", 0x62ab0c, 0x8 + +gUnknown_0862AB14:: @ 862AB14 + .incbin "baserom.gba", 0x62ab14, 0x18 + +gUnknown_0862AB2C:: @ 862AB2C + .incbin "baserom.gba", 0x62ab2c, 0x18 + +gUnknown_0862AB44:: @ 862AB44 + .incbin "baserom.gba", 0x62ab44, 0xe4 + +gUnknown_0862AC28:: @ 862AC28 + .incbin "baserom.gba", 0x62ac28, 0x8 + +gUnknown_0862AC30:: @ 862AC30 + .incbin "baserom.gba", 0x62ac30, 0x8 + +gUnknown_0862AC38:: @ 862AC38 + .incbin "baserom.gba", 0x62ac38, 0x8 + +gUnknown_0862AC40:: @ 862AC40 + .incbin "baserom.gba", 0x62ac40, 0x8 + +gUnknown_0862AC48:: @ 862AC48 + .incbin "baserom.gba", 0x62ac48, 0x8 + +gUnknown_0862AC50:: @ 862AC50 + .incbin "baserom.gba", 0x62ac50, 0x8 + +gUnknown_0862AC58:: @ 862AC58 + .incbin "baserom.gba", 0x62ac58, 0x8 + +gUnknown_0862AC60:: @ 862AC60 + .incbin "baserom.gba", 0x62ac60, 0x8 + +gUnknown_0862AC68:: @ 862AC68 + .incbin "baserom.gba", 0x62ac68, 0x8 + +gUnknown_0862AC70:: @ 862AC70 + .incbin "baserom.gba", 0x62ac70, 0x8 + +gUnknown_0862AC78:: @ 862AC78 + .incbin "baserom.gba", 0x62ac78, 0x18 + +gUnknown_0862AC90:: @ 862AC90 + .incbin "baserom.gba", 0x62ac90, 0x18 + +gUnknown_0862ACA8:: @ 862ACA8 + .incbin "baserom.gba", 0x62aca8, 0x18 + +gUnknown_0862ACC0:: @ 862ACC0 + .incbin "baserom.gba", 0x62acc0, 0x18 + +gUnknown_0862ACD8:: @ 862ACD8 + .incbin "baserom.gba", 0x62acd8, 0x18 + +gUnknown_0862ACF0:: @ 862ACF0 + .incbin "baserom.gba", 0x62acf0, 0x18 + +gUnknown_0862AD08:: @ 862AD08 + .incbin "baserom.gba", 0x62ad08, 0xc diff --git a/data/record_mixing.s b/data/record_mixing.s new file mode 100644 index 000000000..6531633a5 --- /dev/null +++ b/data/record_mixing.s @@ -0,0 +1,20 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_0858CF8C:: @ 858CF8C + .incbin "baserom.gba", 0x58cf8c, 0x2 + +gUnknown_0858CF8E:: @ 858CF8E + .incbin "baserom.gba", 0x58cf8e, 0x6 + +gUnknown_0858CF94:: @ 858CF94 + .incbin "baserom.gba", 0x58cf94, 0x24 + +gUnknown_0858CFB8:: @ 858CFB8 + .incbin "baserom.gba", 0x58cfb8, 0x6 + +gUnknown_0858CFBE:: @ 858CFBE + .incbin "baserom.gba", 0x58cfbe, 0xe diff --git a/data/region_map.s b/data/region_map.s new file mode 100644 index 000000000..78e6cec2f --- /dev/null +++ b/data/region_map.s @@ -0,0 +1,101 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_0859F60C:: @ 859F60C + .incbin "baserom.gba", 0x59f60c, 0x44 + +gUnknown_0859F650:: @ 859F650 + .incbin "baserom.gba", 0x59f650, 0xec + +gUnknown_0859F73C:: @ 859F73C + .incbin "baserom.gba", 0x59f73c, 0x40 + +gUnknown_0859F77C:: @ 859F77C + .incbin "baserom.gba", 0x59f77c, 0xd64 + +gUnknown_085A04E0:: @ 85A04E0 + .incbin "baserom.gba", 0x5a04e0, 0x34c + +gUnknown_085A082C:: @ 85A082C + .incbin "baserom.gba", 0x5a082c, 0x20 + +gUnknown_085A084C:: @ 85A084C + .incbin "baserom.gba", 0x5a084c, 0x80 + +gUnknown_085A08CC:: @ 85A08CC + .incbin "baserom.gba", 0x5a08cc, 0x20 + +gUnknown_085A08EC:: @ 85A08EC + .incbin "baserom.gba", 0x5a08ec, 0x80 + +gUnknown_085A096C:: @ 85A096C + .incbin "baserom.gba", 0x5a096c, 0x1a4 + +@ 85A0B10 + .include "data/region_map_entries.inc" + +gUnknown_085A1B24:: @ 85A1B24 + .incbin "baserom.gba", 0x5a1b24, 0x60 + +gUnknown_085A1B84:: @ 85A1B84 + .incbin "baserom.gba", 0x5a1b84, 0x6 + +gUnknown_085A1B8A:: @ 85A1B8A + .incbin "baserom.gba", 0x5a1b8a, 0x22 + +gUnknown_085A1BAC:: @ 85A1BAC + .incbin "baserom.gba", 0x5a1bac, 0x20 + +gUnknown_085A1BCC:: @ 85A1BCC + .incbin "baserom.gba", 0x5a1bcc, 0x34 + +gUnknown_085A1C00:: @ 85A1C00 + .incbin "baserom.gba", 0x5a1c00, 0x8 + +gUnknown_085A1C08:: @ 85A1C08 + .incbin "baserom.gba", 0x5a1c08, 0x18 + +gUnknown_085A1C20:: @ 85A1C20 + .incbin "baserom.gba", 0x5a1c20, 0x10 + +gUnknown_085A1C30:: @ 85A1C30 + .incbin "baserom.gba", 0x5a1c30, 0x4 + +gUnknown_085A1C34:: @ 85A1C34 + .incbin "baserom.gba", 0x5a1c34, 0x4 + +gUnknown_085A1C38:: @ 85A1C38 + .incbin "baserom.gba", 0x5a1c38, 0x20 + +gUnknown_085A1C58:: @ 85A1C58 + .incbin "baserom.gba", 0x5a1c58, 0x38 + +gUnknown_085A1C90:: @ 85A1C90 + .incbin "baserom.gba", 0x5a1c90, 0xd8 + +gUnknown_085A1D68:: @ 85A1D68 + .incbin "baserom.gba", 0x5a1d68, 0xd4 + +gUnknown_085A1E3C:: @ 85A1E3C + .incbin "baserom.gba", 0x5a1e3c, 0xa0 + +gUnknown_085A1EDC:: @ 85A1EDC + .incbin "baserom.gba", 0x5a1edc, 0x8 + +gUnknown_085A1EE4:: @ 85A1EE4 + .incbin "baserom.gba", 0x5a1ee4, 0xc + +gUnknown_085A1EF0:: @ 85A1EF0 + .incbin "baserom.gba", 0x5a1ef0, 0x20 + +gUnknown_085A1F10:: @ 85A1F10 + .incbin "baserom.gba", 0x5a1f10, 0x8 + +gUnknown_085A1F18:: @ 85A1F18 + .incbin "baserom.gba", 0x5a1f18, 0x64 + +gUnknown_085A1F7C:: @ 85A1F7C + .incbin "baserom.gba", 0x5a1f7c, 0x18 diff --git a/data/reset_rtc_screen.s b/data/reset_rtc_screen.s new file mode 100644 index 000000000..2ed5f746c --- /dev/null +++ b/data/reset_rtc_screen.s @@ -0,0 +1,23 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_08510404:: @ 8510404 + .incbin "baserom.gba", 0x510404, 0x4 + +gUnknown_08510408:: @ 8510408 + .incbin "baserom.gba", 0x510408, 0x14 + +gUnknown_0851041C:: @ 851041C + .incbin "baserom.gba", 0x51041c, 0x4 + +gUnknown_08510420:: @ 8510420 + .incbin "baserom.gba", 0x510420, 0xa4 + +gUnknown_085104C4:: @ 85104C4 + .incbin "baserom.gba", 0x5104c4, 0x2c + +gUnknown_085104F0:: @ 85104F0 + .incbin "baserom.gba", 0x5104f0, 0x18 diff --git a/data/rom4.s b/data/rom4.s new file mode 100644 index 000000000..aa57174d9 --- /dev/null +++ b/data/rom4.s @@ -0,0 +1,43 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 +gUnknown_08339D3C:: @ 8339D3C + .incbin "baserom.gba", 0x339d3c, 0x28 + +gUnknown_08339D64:: @ 8339D64 + .incbin "baserom.gba", 0x339d64, 0x48 + +gUnknown_08339DAC:: @ 8339DAC + .incbin "baserom.gba", 0x339dac, 0x10 + +gUnknown_08339DBC:: @ 8339DBC + .incbin "baserom.gba", 0x339dbc, 0xc + +gUnknown_08339DC8:: @ 8339DC8 + .incbin "baserom.gba", 0x339dc8, 0xc + +gUnknown_08339DD4:: @ 8339DD4 + .incbin "baserom.gba", 0x339dd4, 0x2c + +gUnknown_08339E00:: @ 8339E00 + .incbin "baserom.gba", 0x339e00, 0x8 + +@ 8339E08 + .include "data/tilesets/tileset_graphics.inc" + +@ 83960F0 + .include "data/tilesets/metatiles.inc" + +@ 83DF704 + .include "data/tilesets/tilesets.inc" + +@ 83DFE14 + .incbin "baserom.gba", 0x3dfe14, 0xa1fc0 + +gUnknown_08481DD4:: @ 8481DD4 + .incbin "baserom.gba", 0x481dd4, 0x47a4 + +gUnknown_08486578:: @ 8486578 + .incbin "baserom.gba", 0x486578, 0x980 diff --git a/data/rom_8158B30.s b/data/rom_8158B30.s deleted file mode 100644 index c8d9baa1a..000000000 --- a/data/rom_8158B30.s +++ /dev/null @@ -1,236 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - -gUnknown_085CE2A0:: @ 85CE2A0 - .incbin "baserom.gba", 0x5ce2a0, 0xb0 - -gUnknown_085CE350:: @ 85CE350 - .incbin "baserom.gba", 0x5ce350, 0x38 - -gUnknown_085CE388:: @ 85CE388 - .incbin "baserom.gba", 0x5ce388, 0x18 - -gUnknown_085CE3A0:: @ 85CE3A0 - .incbin "baserom.gba", 0x5ce3a0, 0x18 - -gUnknown_085CE3B8:: @ 85CE3B8 - .incbin "baserom.gba", 0x5ce3b8, 0x28 - -gUnknown_085CE3E0:: @ 85CE3E0 - .incbin "baserom.gba", 0x5ce3e0, 0x50 - -gUnknown_085CE430:: @ 85CE430 - .incbin "baserom.gba", 0x5ce430, 0x30 - -gUnknown_085CE460:: @ 85CE460 - .incbin "baserom.gba", 0x5ce460, 0x2c - -gUnknown_085CE48C:: @ 85CE48C - .incbin "baserom.gba", 0x5ce48c, 0x18 - -gUnknown_085CE4A4:: @ 85CE4A4 - .incbin "baserom.gba", 0x5ce4a4, 0x4 - -gUnknown_085CE4A8:: @ 85CE4A8 - .incbin "baserom.gba", 0x5ce4a8, 0x8 - -gUnknown_085CE4B0:: @ 85CE4B0 - .incbin "baserom.gba", 0x5ce4b0, 0x140 - -gUnknown_085CE5F0:: @ 85CE5F0 - .incbin "baserom.gba", 0x5ce5f0, 0x15c - -gUnknown_085CE74C:: @ 85CE74C - .incbin "baserom.gba", 0x5ce74c, 0x20 - -gUnknown_085CE76C:: @ 85CE76C - .incbin "baserom.gba", 0x5ce76c, 0x18 - -gUnknown_085CE784:: @ 85CE784 - .incbin "baserom.gba", 0x5ce784, 0x68 - -gUnknown_085CE7EC:: @ 85CE7EC - .incbin "baserom.gba", 0x5ce7ec, 0x60 - -gUnknown_085CE84C:: @ 85CE84C - .incbin "baserom.gba", 0x5ce84c, 0x30 - -gUnknown_085CE87C:: @ 85CE87C - .incbin "baserom.gba", 0x5ce87c, 0x14c - -gUnknown_085CE9C8:: @ 85CE9C8 - .incbin "baserom.gba", 0x5ce9c8, 0x1e8 - -gUnknown_085CEBB0:: @ 85CEBB0 - .incbin "baserom.gba", 0x5cebb0, 0x8 - -gUnknown_085CEBB8:: @ 85CEBB8 - .incbin "baserom.gba", 0x5cebb8, 0x8 - -gUnknown_085CEBC0:: @ 85CEBC0 - .incbin "baserom.gba", 0x5cebc0, 0x10 - -gUnknown_085CEBD0:: @ 85CEBD0 - .incbin "baserom.gba", 0x5cebd0, 0x40 - -gUnknown_085CEC10:: @ 85CEC10 - .incbin "baserom.gba", 0x5cec10, 0x18 - -gUnknown_085CEC28:: @ 85CEC28 - .incbin "baserom.gba", 0x5cec28, 0x8 - -sRoamerLocations:: @ 85CEC30 - .incbin "baserom.gba", 0x5cec30, 0x80 - -@ 85CECB0 - .include "data/battle_frontier/battle_frontier_held_items.inc" - -@ 85CED2E - .include "data/battle_frontier/battle_frontier_trainer_mons.inc" - -@ 85D5ACC - .include "data/battle_frontier/battle_frontier_trainers.inc" - -@ 85D97BC - .include "data/battle_frontier/battle_frontier_mons.inc" - -gUnknown_085DCEDC:: @ 85DCEDC - .incbin "baserom.gba", 0x5dcedc, 0x1e - -gUnknown_085DCEFA:: @ 85DCEFA - .incbin "baserom.gba", 0x5dcefa, 0x14 - -gUnknown_085DCF0E:: @ 85DCF0E - .incbin "baserom.gba", 0x5dcf0e, 0x1e - -gUnknown_085DCF2C:: @ 85DCF2C - .incbin "baserom.gba", 0x5dcf2c, 0x14 - -gUnknown_085DCF40:: @ 85DCF40 - .incbin "baserom.gba", 0x5dcf40, 0x5c0 - -gUnknown_085DD500:: @ 85DD500 - .incbin "baserom.gba", 0x5dd500, 0x190 - -gUnknown_085DD690:: @ 85DD690 - .incbin "baserom.gba", 0x5dd690, 0x40 - -gUnknown_085DD6D0:: @ 85DD6D0 - .incbin "baserom.gba", 0x5dd6d0, 0x5 - -gUnknown_085DD6D5:: @ 85DD6D5 - .incbin "baserom.gba", 0x5dd6d5, 0x7 - -gUnknown_085DD6DC:: @ 85DD6DC - .incbin "baserom.gba", 0x5dd6dc, 0x30 - -@ 85DD70C - .include "data/battle_frontier/slateport_battle_tent_trainer_mons.inc" - -@ 85DDA14 - .include "data/battle_frontier/slateport_battle_tent_trainers.inc" - -@ 85DE02C - .include "data/battle_frontier/slateport_battle_tent_mons.inc" - -@ 85DE48C - .include "data/battle_frontier/verdanturf_battle_tent_trainer_mons.inc" - -@ 85DE610 - .include "data/battle_frontier/verdanturf_battle_tent_trainers.inc" - -@ 85DEC28 - .include "data/battle_frontier/verdanturf_battle_tent_mons.inc" - -@ 85DEEF8 - .include "data/battle_frontier/fallarbor_battle_tent_trainer_mons.inc" - -@ 85DF084 - .include "data/battle_frontier/fallarbor_battle_tent_trainers.inc" - -@ 85DF69C - .include "data/battle_frontier/fallarbor_battle_tent_mons.inc" - -gUnknown_085DF96C:: @ 85DF96C - .incbin "baserom.gba", 0x5df96c, 0x40 - -gUnknown_085DF9AC:: @ 85DF9AC - .incbin "baserom.gba", 0x5df9ac, 0x20 - -gUnknown_085DF9CC:: @ 85DF9CC - .incbin "baserom.gba", 0x5df9cc, 0x20 - -gUnknown_085DF9EC:: @ 85DF9EC - .incbin "baserom.gba", 0x5df9ec, 0xa - -gUnknown_085DF9F6:: @ 85DF9F6 - .incbin "baserom.gba", 0x5df9f6, 0x4 - -gUnknown_085DF9FA:: @ 85DF9FA - .incbin "baserom.gba", 0x5df9fa, 0x20 - -gUnknown_085DFA1A:: @ 85DFA1A - .incbin "baserom.gba", 0x5dfa1a, 0x28 - -gUnknown_085DFA42:: @ 85DFA42 - .incbin "baserom.gba", 0x5dfa42, 0x4 - -gUnknown_085DFA46:: @ 85DFA46 - .incbin "baserom.gba", 0x5dfa46, 0xc - -gUnknown_085DFA52:: @ 85DFA52 - .incbin "baserom.gba", 0x5dfa52, 0xe - -gUnknown_085DFA60:: @ 85DFA60 - .incbin "baserom.gba", 0x5dfa60, 0x20 - -gUnknown_085DFA80:: @ 85DFA80 - .incbin "baserom.gba", 0x5dfa80, 0xe0 - -gUnknown_085DFB60:: @ 85DFB60 - .incbin "baserom.gba", 0x5dfb60, 0xac - -gUnknown_085DFC0C:: @ 85DFC0C - .incbin "baserom.gba", 0x5dfc0c, 0xa4 - -gUnknown_085DFCB0:: @ 85DFCB0 - .incbin "baserom.gba", 0x5dfcb0, 0x14 - -gUnknown_085DFCC4:: @ 85DFCC4 - .incbin "baserom.gba", 0x5dfcc4, 0x5 - -gUnknown_085DFCC9:: @ 85DFCC9 - .incbin "baserom.gba", 0x5dfcc9, 0x3 - -gUnknown_085DFCCC:: @ 85DFCCC - .incbin "baserom.gba", 0x5dfccc, 0x10 - -gUnknown_085DFCDC:: @ 85DFCDC - .incbin "baserom.gba", 0x5dfcdc, 0x20 - -gUnknown_085DFCFC:: @ 85DFCFC - .incbin "baserom.gba", 0x5dfcfc, 0x8 - -gUnknown_085DFD04:: @ 85DFD04 - .incbin "baserom.gba", 0x5dfd04, 0x14 - -gUnknown_085DFD18:: @ 85DFD18 - .incbin "baserom.gba", 0x5dfd18, 0x8 - -gUnknown_085DFD20:: @ 85DFD20 - .incbin "baserom.gba", 0x5dfd20, 0x8 - -gUnknown_085DFD28:: @ 85DFD28 - .incbin "baserom.gba", 0x5dfd28, 0x34 - -gUnknown_085DFD5C:: @ 85DFD5C - .incbin "baserom.gba", 0x5dfd5c, 0x44 - -gUnknown_085DFDA0:: @ 85DFDA0 - .incbin "baserom.gba", 0x5dfda0, 0x18 - -gUnknown_085DFDB8:: @ 85DFDB8 - .incbin "baserom.gba", 0x5dfdb8, 0x8 diff --git a/data/rom_8486FEC.s b/data/rom_8486FEC.s new file mode 100644 index 000000000..9b7834a32 --- /dev/null +++ b/data/rom_8486FEC.s @@ -0,0 +1,8 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_8486FEC:: @ 8486FEC + .incbin "baserom.gba", 0x486fec, 0xFFA0 diff --git a/data/rotating_gate.s b/data/rotating_gate.s new file mode 100644 index 000000000..90568caa5 --- /dev/null +++ b/data/rotating_gate.s @@ -0,0 +1,41 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_0858E8B0:: @ 858E8B0 + .incbin "baserom.gba", 0x58e8b0, 0x40 + +gUnknown_0858E8F0:: @ 858E8F0 + .incbin "baserom.gba", 0x58e8f0, 0x3468 + +gUnknown_08591D58:: @ 8591D58 + .incbin "baserom.gba", 0x591d58, 0x270 + +gUnknown_08591FC8:: @ 8591FC8 + .incbin "baserom.gba", 0x591fc8, 0x18 + +gUnknown_08591FE0:: @ 8591FE0 + .incbin "baserom.gba", 0x591fe0, 0x18 + +gUnknown_08591FF8:: @ 8591FF8 + .incbin "baserom.gba", 0x591ff8, 0x10 + +gUnknown_08592008:: @ 8592008 + .incbin "baserom.gba", 0x592008, 0x10 + +gUnknown_08592018:: @ 8592018 + .incbin "baserom.gba", 0x592018, 0x10 + +gUnknown_08592028:: @ 8592028 + .incbin "baserom.gba", 0x592028, 0x10 + +gUnknown_08592038:: @ 8592038 + .incbin "baserom.gba", 0x592038, 0x20 + +gUnknown_08592058:: @ 8592058 + .incbin "baserom.gba", 0x592058, 0x20 + +gUnknown_08592078:: @ 8592078 + .incbin "baserom.gba", 0x592078, 0x60 diff --git a/data/save_location.s b/data/save_location.s new file mode 100644 index 000000000..eabed7d86 --- /dev/null +++ b/data/save_location.s @@ -0,0 +1,13 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + +gUnknown_086143BC:: @ 86143BC + .incbin "baserom.gba", 0x6143bc, 0x4e + +gUnknown_0861440A:: @ 861440A + .incbin "baserom.gba", 0x61440a, 0x4 + +gUnknown_0861440E:: @ 861440E + .incbin "baserom.gba", 0x61440e, 0x2 diff --git a/data/scrcmd.s b/data/scrcmd.s new file mode 100644 index 000000000..dfa802684 --- /dev/null +++ b/data/scrcmd.s @@ -0,0 +1,14 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gNullScriptPtr:: @ 85102BC + .incbin "baserom.gba", 0x5102bc, 0x4 + +gUnknown_085102C0:: @ 85102C0 + .incbin "baserom.gba", 0x5102c0, 0x14 + +gUnknown_085102D4:: @ 85102D4 + .incbin "baserom.gba", 0x5102d4, 0xc diff --git a/data/script_menu.s b/data/script_menu.s new file mode 100644 index 000000000..8cf395c04 --- /dev/null +++ b/data/script_menu.s @@ -0,0 +1,827 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + +gUnknown_0858ABD8:: @ 858ABD8 +@ replacing .incbin "baserom.gba", 0x0058abd8, 0x18 + .4byte gUnknown_085EAD37, 0 + .4byte gUnknown_085EAD41, 0 + .4byte gText_Exit, 0 + +gUnknown_0858ABF0:: @ 58ABF0 +@ replacing .incbin "baserom.gba", 0x0058abf0, 0x18 + .4byte gUnknown_085EAD67, 0 + .4byte gUnknown_085EAD6D, 0 + .4byte gText_Exit, 0 + +gUnknown_0858AC08:: @ 58AC08 +@ replacing .incbin "baserom.gba", 0x0058ac08, 0x20 + .4byte gUnknown_085EAD72, 0 + .4byte gUnknown_085EAD84, 0 + .4byte gUnknown_085EAD96, 0 + .4byte gText_Cancel2, 0 + +gUnknown_0858AC28:: @ 58AC28 +@ replacing .incbin "baserom.gba", 0x0058ac28, 0x30 + .4byte gUnknown_085EADA4, 0 + .4byte gUnknown_085EADB5, 0 + .4byte gUnknown_085EADC4, 0 + .4byte gUnknown_085EADD5, 0 + .4byte gUnknown_085EADE7, 0 + .4byte gText_Exit, 0 + +gUnknown_0858AC58:: @ 58AC58 +@ replacing .incbin "baserom.gba", 0x0058ac58, 0x20 + .4byte gUnknown_085EADF9, 0 + .4byte gUnknown_085EAE04, 0 + .4byte gUnknown_085EAE12, 0 + .4byte gText_Exit, 0 + +gUnknown_0858AC78:: @ 58AC78 +@ replacing .incbin "baserom.gba", 0x0058ac78, 0x18 + .4byte gUnknown_085EADF9, 0 + .4byte gUnknown_085EAE04, 0 + .4byte gText_Exit, 0 + +gUnknown_0858AC90:: @ 58AC90 +@ replacing .incbin "baserom.gba", 0x0058ac90, 0x20 + .4byte gUnknown_085E8CCB, 0 + .4byte gUnknown_085EAE12, 0 + .4byte gUnknown_085EAE1B, 0 + .4byte gText_Cancel2, 0 + +gUnknown_0858ACB0:: @ 58ACB0 +@ replacing .incbin "baserom.gba", 0x0058acb0, 0x10 + .4byte gUnknown_085EAE27, 0 + .4byte gUnknown_085EAE2C, 0 + +gUnknown_0858ACC0:: @ 58ACC0 +@ replacing .incbin "baserom.gba", 0x0058acc0, 0x30 + .4byte gUnknown_085EAE31, 0 + .4byte gUnknown_085EAE35, 0 + .4byte gUnknown_085EAE39, 0 + .4byte gUnknown_085EAE3D, 0 + .4byte gUnknown_085EAE41, 0 + .4byte gText_Exit, 0 + +gUnknown_0858ACF0:: @ 58ACF0 +@ replacing .incbin "baserom.gba", 0x0058acf0, 0x10 + .4byte gUnknown_085EAD5F, 0 + .4byte gText_Exit, 0 + +gUnknown_0858AD00:: @ 58AD00 +@ replacing .incbin "baserom.gba", 0x0058ad00, 0x10 + .4byte gUnknown_085EAE53, 0 + .4byte gUnknown_085EAE5A, 0 + +gUnknown_0858AD10:: @ 58AD10 +@ replacing .incbin "baserom.gba", 0x0058ad10, 0x18 + .4byte gText_Yes, 0 + .4byte gText_No, 0 + .4byte gUnknown_085EAD6D, 0 + +gUnknown_0858AD28:: @ 58AD28 +@ replacing .incbin "baserom.gba", 0x0058ad28, 0x18 + .4byte gUnknown_085EAEA2, 0 + .4byte gUnknown_085EAEAC, 0 + .4byte gText_Exit, 0 + +gUnknown_0858AD40:: @ 58AD40 +@ replacing .incbin "baserom.gba", 0x0058ad40, 0x18 + .4byte gText_Lv50, 0 + .4byte gText_OpenLevel, 0 + .4byte gText_Exit, 0 + +gUnknown_0858AD58:: @ 58AD58 +@ replacing .incbin "baserom.gba", 0x0058ad58, 0x18 + .4byte gUnknown_0827ECBC, 0 + .4byte gUnknown_0827ECC3, 0 + .4byte gUnknown_0827ECCD, 0 + +gUnknown_0858AD70:: @ 58AD70 +@ replacing .incbin "baserom.gba", 0x0058ad70, 0x18 + .4byte gUnknown_0827ECD5, 0 + .4byte gUnknown_0827ECDD, 0 + .4byte gUnknown_0827ECE3, 0 + +gUnknown_0858AD88:: @ 58AD88 +@ replacing .incbin "baserom.gba", 0x0058ad88, 0x18 + .4byte gUnknown_0827ECEB, 0 + .4byte gUnknown_0827ECF2, 0 + .4byte gUnknown_0827ECF8, 0 + +gUnknown_0858ADA0:: @ 58ADA0 +@ replacing .incbin "baserom.gba", 0x0058ada0, 0x18 + .4byte gUnknown_0827ED00, 0 + .4byte gUnknown_0827ED06, 0 + .4byte gUnknown_0827ED10, 0 + +gUnknown_0858ADB8:: @ 58ADB8 +@ replacing .incbin "baserom.gba", 0x0058adb8, 0x18 + .4byte gUnknown_0827ED18, 0 + .4byte gUnknown_0827ED22, 0 + .4byte gUnknown_0827ED2C, 0 + +gUnknown_0858ADD0:: @ 58ADD0 +@ replacing .incbin "baserom.gba", 0x0058add0, 0x18 + .4byte gUnknown_0827ED36, 0 + .4byte gUnknown_0827ED40, 0 + .4byte gUnknown_0827ED46, 0 + +gUnknown_0858ADE8:: @ 58ADE8 +@ replacing .incbin "baserom.gba", 0x0058ade8, 0x18 + .4byte gUnknown_0827ED4F, 0 + .4byte gUnknown_0827ED59, 0 + .4byte gUnknown_0827ED65, 0 + +gUnknown_0858AE00:: @ 58AE00 +@ replacing .incbin "baserom.gba", 0x0058ae00, 0x18 + .4byte gUnknown_0827ED70, 0 + .4byte gUnknown_0827ED74, 0 + .4byte gUnknown_0827ED78, 0 + +gUnknown_0858AE18:: @ 58AE18 +@ replacing .incbin "baserom.gba", 0x0058ae18, 0x18 + .4byte gUnknown_0827ED80, 0 + .4byte gUnknown_0827ED95, 0 + .4byte gUnknown_0827EDAA, 0 + +gUnknown_0858AE30:: @ 58AE30 +@ replacing .incbin "baserom.gba", 0x0058ae30, 0x18 + .4byte gUnknown_0827EDB5, 0 + .4byte gUnknown_0827EDBA, 0 + .4byte gUnknown_0827EDC1, 0 + +gUnknown_0858AE48:: @ 58AE48 +@ replacing .incbin "baserom.gba", 0x0058ae48, 0x18 + .4byte gUnknown_0827EDC9, 0 + .4byte gUnknown_0827EDD5, 0 + .4byte gUnknown_0827EDE4, 0 + +gUnknown_0858AE60:: @ 58AE60 +@ replacing .incbin "baserom.gba", 0x0058ae60, 0x18 + .4byte gUnknown_0827EDF0, 0 + .4byte gUnknown_0827EDF5, 0 + .4byte gUnknown_0827EDF7, 0 + +gUnknown_0858AE78:: @ 58AE78 +@ replacing .incbin "baserom.gba", 0x0058ae78, 0x18 + .4byte gUnknown_0827EDF9, 0 + .4byte gUnknown_0827EDFB, 0 + .4byte gUnknown_0827EDFD, 0 + +gUnknown_0858AE90:: @ 58AE90 +@ replacing .incbin "baserom.gba", 0x0058ae90, 0x18 + .4byte gUnknown_0827EDFF, 0 + .4byte gUnknown_0827EE01, 0 + .4byte gUnknown_0827EE03, 0 + +gUnknown_0858AEA8:: @ 58AEA8 +@ replacing .incbin "baserom.gba", 0x0058aea8, 0x18 + .4byte gUnknown_0827EE05, 0 + .4byte gUnknown_0827EE07, 0 + .4byte gUnknown_0827EE09, 0 + +gUnknown_0858AEC0:: @ 58AEC0 +@ replacing .incbin "baserom.gba", 0x0058aec0, 0x20 + .4byte gUnknown_085EAEC3, 0 + .4byte gUnknown_085EAED6, 0 + .4byte gUnknown_085EAEE6, 0 + .4byte gText_Exit, 0 + +gUnknown_0858AEE0:: @ 58AEE0 +@ replacing .incbin "baserom.gba", 0x0058aee0, 0x20 + .4byte gUnknown_085EAEF6, 0 + .4byte gUnknown_085EAF02, 0 + .4byte gUnknown_085EAF0E, 0 + .4byte gText_Exit, 0 + +gUnknown_0858AF00:: @ 58AF00 +@ replacing .incbin "baserom.gba", 0x0058af00, 0x20 + .4byte gUnknown_085EAF1B, 0 + .4byte gUnknown_085EAF24, 0 + .4byte gUnknown_085EAF2F, 0 + .4byte gText_Exit, 0 + +gUnknown_0858AF20:: @ 58AF20 +@ replacing .incbin "baserom.gba", 0x0058af20, 0x10 + .4byte gUnknown_085EAF34, 0 + .4byte gUnknown_085EAF3E, 0 + +gUnknown_0858AF30:: @ 58AF30 +@ replacing .incbin "baserom.gba", 0x0058af30, 0x18 + .4byte gUnknown_085EAF4B, 0 + .4byte gUnknown_085EAF58, 0 + .4byte gText_Exit, 0 + +gUnknown_0858AF48:: @ 58AF48 +@ replacing .incbin "baserom.gba", 0x0058af48, 0x40 + .4byte gUnknown_085EAF65, 0 + .4byte gUnknown_085EAF70, 0 + .4byte gUnknown_085EAF7D, 0 + .4byte gUnknown_085EAF87, 0 + .4byte gUnknown_085EAF93, 0 + .4byte gUnknown_085EAF9F, 0 + .4byte gUnknown_085EAFAB, 0 + .4byte gText_Cancel2, 0 + +gUnknown_0858AF88:: @ 58AF88 +@ replacing .incbin "baserom.gba", 0x0058af88, 0x20 + .4byte gUnknown_085EAFB6, 0 + .4byte gUnknown_085EAFCF, 0 + .4byte gUnknown_085EAFE8, 0 + .4byte gText_Exit, 0 + +gUnknown_0858AFA8:: @ 58AFA8 +@ replacing .incbin "baserom.gba", 0x0058afa8, 0x30 + .4byte gUnknown_085EB089, 0 + .4byte gUnknown_085EB09C, 0 + .4byte gUnknown_085EB0AF, 0 + .4byte gUnknown_085EB0C2, 0 + .4byte gUnknown_085EB0D5, 0 + .4byte gText_Exit, 0 + +gUnknown_0858AFD8:: @ 58AFD8 +@ replacing .incbin "baserom.gba", 0x0058afd8, 0x18 + .4byte gUnknown_085EB002, 0 + .4byte gUnknown_085EB017, 0 + .4byte gText_Exit, 0 + +gUnknown_0858AFF0:: @ 58AFF0 +@ replacing .incbin "baserom.gba", 0x0058aff0, 0x10 + .4byte gUnknown_085EB02A, 0 + .4byte gUnknown_085EB034, 0 + +gUnknown_0858B000:: @ 58B000 +@ replacing .incbin "baserom.gba", 0x0058b000, 0x18 + .4byte gUnknown_085EB79B, 0 + .4byte gUnknown_085EB06E, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B018:: @ 58B018 +@ replacing .incbin "baserom.gba", 0x0058b018, 0x18 + .4byte gUnknown_085EB7A9, 0 + .4byte gUnknown_085EB79B, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B030:: @ 58B030 +@ replacing .incbin "baserom.gba", 0x0058b030, 0x10 + .4byte gUnknown_085EB07E, 0 + .4byte gUnknown_085EB084, 0 + +gUnknown_0858B040:: @ 58B040 +@ replacing .incbin "baserom.gba", 0x0058b040, 0x10 + .4byte gUnknown_085EB79B, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B050:: @ 58B050 +@ replacing .incbin "baserom.gba", 0x0058b050, 0x30 + .4byte gUnknown_085EB676, 0 + .4byte gUnknown_085EB673, 0 + .4byte gUnknown_085EB670, 0 + .4byte gUnknown_085EB66D, 0 + .4byte gUnknown_085EB66A, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B080:: @ 58B080 +@ replacing .incbin "baserom.gba", 0x0058b080, 0x10 + .4byte gUnknown_085EB040, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B090:: @ 58B090 +@ replacing .incbin "baserom.gba", 0x0058b090, 0x10 + .4byte gUnknown_085EB04A, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B0A0:: @ 58B0A0 +@ replacing .incbin "baserom.gba", 0x0058b0a0, 0x18 + .4byte gUnknown_085EB040, 0 + .4byte gUnknown_085EB04A, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B0B8:: @ 58B0B8 +@ replacing .incbin "baserom.gba", 0x0058b0b8, 0x10 + .4byte gUnknown_085EB057, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B0C8:: @ 58B0C8 +@ replacing .incbin "baserom.gba", 0x0058b0c8, 0x18 + .4byte gUnknown_085EB040, 0 + .4byte gUnknown_085EB057, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B0E0:: @ 58B0E0 +@ replacing .incbin "baserom.gba", 0x0058b0e0, 0x18 + .4byte gUnknown_085EB04A, 0 + .4byte gUnknown_085EB057, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B0F8:: @ 58B0F8 +@ replacing .incbin "baserom.gba", 0x0058b0f8, 0x20 + .4byte gUnknown_085EB040, 0 + .4byte gUnknown_085EB04A, 0 + .4byte gUnknown_085EB057, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B118:: @ 58B118 +@ replacing .incbin "baserom.gba", 0x0058b118, 0x10 + .4byte gUnknown_085EB062, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B128:: @ 58B128 +@ replacing .incbin "baserom.gba", 0x0058b128, 0x18 + .4byte gUnknown_085EB040, 0 + .4byte gUnknown_085EB062, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B140:: @ 58B140 +@ replacing .incbin "baserom.gba", 0x0058b140, 0x18 + .4byte gUnknown_085EB04A, 0 + .4byte gUnknown_085EB062, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B158:: @ 58B158 +@ replacing .incbin "baserom.gba", 0x0058b158, 0x20 + .4byte gUnknown_085EB040, 0 + .4byte gUnknown_085EB04A, 0 + .4byte gUnknown_085EB062, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B178:: @ 58B178 +@ replacing .incbin "baserom.gba", 0x0058b178, 0x18 + .4byte gUnknown_085EB057, 0 + .4byte gUnknown_085EB062, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B190:: @ 58B190 +@ replacing .incbin "baserom.gba", 0x0058b190, 0x20 + .4byte gUnknown_085EB040, 0 + .4byte gUnknown_085EB057, 0 + .4byte gUnknown_085EB062, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B1B0:: @ 58B1B0 +@ replacing .incbin "baserom.gba", 0x0058b1b0, 0x20 + .4byte gUnknown_085EB04A, 0 + .4byte gUnknown_085EB057, 0 + .4byte gUnknown_085EB062, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B1D0:: @ 58B1D0 +@ replacing .incbin "baserom.gba", 0x0058b1d0, 0x28 + .4byte gUnknown_085EB040, 0 + .4byte gUnknown_085EB04A, 0 + .4byte gUnknown_085EB057, 0 + .4byte gUnknown_085EB062, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B1F8:: @ 58B1F8 +@ replacing .incbin "baserom.gba", 0x0058b1f8, 0x30 + .4byte gUnknown_085EB1A0, 0 + .4byte gUnknown_085EB1A9, 0 + .4byte gUnknown_085EB1B6, 0 + .4byte gUnknown_085EB5BC, 0 + .4byte gUnknown_085EB5C3, 0 + .4byte gUnknown_085EB5C8, 0 + +gUnknown_0858B228:: @ 58B228 +@ replacing .incbin "baserom.gba", 0x0058b228, 0x28 + .4byte gUnknown_085EB1A0, 0 + .4byte gUnknown_085EB1A9, 0 + .4byte gUnknown_085EB1B6, 0 + .4byte gUnknown_085EB5C3, 0 + .4byte gUnknown_085EB5C8, 0 + +gUnknown_0858B250:: @ 58B250 +@ replacing .incbin "baserom.gba", 0x0058b250, 0x10 + .4byte gUnknown_085EB29A, 0 + .4byte gUnknown_085EB2A3, 0 + +gUnknown_0858B260:: @ 58B260 +@ replacing .incbin "baserom.gba", 0x0058b260, 0x20 + .4byte gUnknown_085EB372, 0 + .4byte gUnknown_085EB37F, 0 + .4byte gUnknown_085EB389, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B280:: @ 58B280 +@ replacing .incbin "baserom.gba", 0x0058b280, 0x18 + .4byte gText_Yes, 0 + .4byte gText_No, 0 + .4byte gUnknown_085EAD6D, 0 + +gUnknown_0858B298:: @ 58B298 +@ replacing .incbin "baserom.gba", 0x0058b298, 0x28 + .4byte gUnknown_085EAE6E, 0 + .4byte gUnknown_085EAE7C, 0 + .4byte gUnknown_085EAE8A, 0 + .4byte gUnknown_085EAD6D, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B2C0:: @ 58B2C0 +@ replacing .incbin "baserom.gba", 0x0058b2c0, 0x20 + .4byte gUnknown_085EB372, 0 + .4byte gUnknown_085EB37F, 0 + .4byte gUnknown_085EB397, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B2E0:: @ 58B2E0 +@ replacing .incbin "baserom.gba", 0x0058b2e0, 0x28 + .4byte gUnknown_085EB372, 0 + .4byte gUnknown_085EB37F, 0 + .4byte gUnknown_085EB389, 0 + .4byte gUnknown_085EB397, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B308:: @ 58B308 +@ replacing .incbin "baserom.gba", 0x0058b308, 0x18 + .4byte gUnknown_085EB372, 0 + .4byte gUnknown_085EB37F, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B320:: @ 58B320 +@ replacing .incbin "baserom.gba", 0x0058b320, 0x18 + .4byte gUnknown_085EB3A4, 0 + .4byte gUnknown_085EB3B1, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B338:: @ 58B338 +@ replacing .incbin "baserom.gba", 0x0058b338, 0x18 + .4byte gUnknown_085EB3D4, 0 + .4byte gUnknown_085EB3C6, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B350:: @ 58B350 +@ replacing .incbin "baserom.gba", 0x0058b350, 0x28 + .4byte gUnknown_085EB1C5, 0 + .4byte gUnknown_085EB1D1, 0 + .4byte gUnknown_085EB1DC, 0 + .4byte gUnknown_085EB1E7, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B378:: @ 58B378 +@ replacing .incbin "baserom.gba", 0x0058b378, 0x18 + .4byte gUnknown_085EB212, 0 + .4byte gUnknown_085EB21D, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B390:: @ 58B390 +@ replacing .incbin "baserom.gba", 0x0058b390, 0x20 + .4byte gUnknown_085EB227, 0 + .4byte gUnknown_085EB234, 0 + .4byte gUnknown_085EB241, 0 + .4byte gText_Cancel2, 0 + +gUnknown_0858B3B0:: @ 58B3B0 +@ replacing .incbin "baserom.gba", 0x0058b3b0, 0x18 + .4byte gUnknown_085EB24E, 0 + .4byte gUnknown_085EB255, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B3C8:: @ 58B3C8 +@ replacing .incbin "baserom.gba", 0x0058b3c8, 0x40 + .4byte gText_MenuOptionPokedex, 0 + .4byte gText_MenuOptionPokemon, 0 + .4byte gText_MenuOptionBag, 0 + .4byte gText_MenuOptionPokenav, 0 + .4byte gUnknown_085EB278, 0 + .4byte gText_MenuOptionSave, 0 + .4byte gText_MenuOptionOption, 0 + .4byte gText_MenuOptionExit, 0 + +gUnknown_0858B408:: @ 58B408 +@ replacing .incbin "baserom.gba", 0x0058b408, 0x20 + .4byte gUnknown_085EB28A, 0 + .4byte gUnknown_085EB290, 0 + .4byte gUnknown_085EB295, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B428:: @ 58B428 +@ replacing .incbin "baserom.gba", 0x0058b428, 0x18 + .4byte gUnknown_085EB2AD, 0 + .4byte gUnknown_085EB2BD, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B440:: @ 58B440 +@ replacing .incbin "baserom.gba", 0x0058b440, 0x18 + .4byte gUnknown_085EB2AD, 0 + .4byte gUnknown_085EB2CA, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B458:: @ 58B458 +@ replacing .incbin "baserom.gba", 0x0058b458, 0x18 + .4byte gUnknown_085EB2BD, 0 + .4byte gUnknown_085EB2CA, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B470:: @ 58B470 +@ replacing .incbin "baserom.gba", 0x0058b470, 0x20 + .4byte gUnknown_085EB2AD, 0 + .4byte gUnknown_085EB2BD, 0 + .4byte gUnknown_085EB2CA, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B490:: @ 58B490 +@ replacing .incbin "baserom.gba", 0x0058b490, 0x18 + .4byte gUnknown_085EB2E4, 0 + .4byte gUnknown_085EB2F0, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B4A8:: @ 58B4A8 +@ replacing .incbin "baserom.gba", 0x0058b4a8, 0x10 + .4byte gText_Yes, 0 + .4byte gUnknown_085EB2FC, 0 + +gUnknown_0858B4B8:: @ 58B4B8 +@ replacing .incbin "baserom.gba", 0x0058b4b8, 0x30 + .4byte gUnknown_085EB3DF, 0 + .4byte gUnknown_085EB3EA, 0 + .4byte gUnknown_085EB3F1, 0 + .4byte gUnknown_085EB3FC, 0 + .4byte gUnknown_085EB40A, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B4E8:: @ 58B4E8 +@ replacing .incbin "baserom.gba", 0x0058b4e8, 0x20 + .4byte gUnknown_085EB415, 0 + .4byte gUnknown_085EB41D, 0 + .4byte gUnknown_085EB424, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B508:: @ 58B508 +@ replacing .incbin "baserom.gba", 0x0058b508, 0x28 + .4byte gUnknown_085EB45C, 0 + .4byte gUnknown_085EB469, 0 + .4byte gUnknown_085EB475, 0 + .4byte gUnknown_085EB482, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B530:: @ 58B530 +@ replacing .incbin "baserom.gba", 0x0058b530, 0x28 + .4byte gUnknown_085EB42F, 0 + .4byte gUnknown_085EB43A, 0 + .4byte gUnknown_085EB444, 0 + .4byte gUnknown_085EB451, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B558:: @ 58B558 +@ replacing .incbin "baserom.gba", 0x0058b558, 0x20 + .4byte gUnknown_085EB48E, 0 + .4byte gUnknown_085EB496, 0 + .4byte gUnknown_085EB4A3, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B578:: @ 58B578 +@ replacing .incbin "baserom.gba", 0x0058b578, 0x30 + .4byte gUnknown_085EB4AD, 0 + .4byte gUnknown_085EB4B9, 0 + .4byte gUnknown_085EB4C7, 0 + .4byte gUnknown_085EB4D4, 0 + .4byte gUnknown_085EB4E0, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B5A8:: @ 58B5A8 +@ replacing .incbin "baserom.gba", 0x0058b5a8, 0x30 + .4byte gUnknown_085EB4EB, 0 + .4byte gUnknown_085EB4F9, 0 + .4byte gUnknown_085EB508, 0 + .4byte gUnknown_085EB516, 0 + .4byte gUnknown_085EB523, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B5D8:: @ 58B5D8 +@ replacing .incbin "baserom.gba", 0x0058b5d8, 0x28 + .4byte gUnknown_085EB532, 0 + .4byte gUnknown_085EB543, 0 + .4byte gUnknown_085EB555, 0 + .4byte gUnknown_085EB563, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B600:: @ 58B600 +@ replacing .incbin "baserom.gba", 0x0058b600, 0x20 + .4byte gUnknown_085EB56E, 0 + .4byte gUnknown_085EB57E, 0 + .4byte gUnknown_085EB589, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B620:: @ 58B620 +@ replacing .incbin "baserom.gba", 0x0058b620, 0x20 + .4byte gUnknown_085EB5B6, 0 + .4byte gUnknown_085EB5BC, 0 + .4byte gUnknown_085EB5C3, 0 + .4byte gUnknown_085EB5C8, 0 + +gUnknown_0858B640:: @ 58B640 +@ replacing .incbin "baserom.gba", 0x0058b640, 0x18 + .4byte gUnknown_085EB5B6, 0 + .4byte gUnknown_085EB5C3, 0 + .4byte gUnknown_085EB5C8, 0 + +gUnknown_0858B658:: @ 58B658 +@ replacing .incbin "baserom.gba", 0x0058b658, 0x18 + .4byte gUnknown_085EB5B6, 0 + .4byte gUnknown_085EB5BC, 0 + .4byte gUnknown_085EB5C8, 0 + +gUnknown_0858B670:: @ 58B670 +@ replacing .incbin "baserom.gba", 0x0058b670, 0x10 + .4byte gUnknown_085EB5B6, 0 + .4byte gUnknown_085EB5C8, 0 + +gUnknown_0858B680:: @ 58B680 +@ replacing .incbin "baserom.gba", 0x0058b680, 0x10 + .4byte gUnknown_085EE14B, 0 + .4byte gUnknown_085EE14F, 0 + +gUnknown_0858B690:: @ 58B690 +@ replacing .incbin "baserom.gba", 0x0058b690, 0x20 + .4byte gUnknown_085EB2FF, 0 + .4byte gUnknown_085EB310, 0 + .4byte gUnknown_085EB317, 0 + .4byte gUnknown_085EB31F, 0 + +gUnknown_0858B6B0:: @ 58B6B0 +@ replacing .incbin "baserom.gba", 0x0058b6b0, 0x20 + .4byte gUnknown_085EB7B8, 0 + .4byte gUnknown_085EB7C7, 0 + .4byte gUnknown_085EB7D0, 0 + .4byte gUnknown_085EB7DB, 0 + +gUnknown_0858B6D0:: @ 58B6D0 +@ replacing .incbin "baserom.gba", 0x0058b6d0, 0x30 + .4byte gUnknown_085EB4AD, 0 + .4byte gUnknown_085EB4B9, 0 + .4byte gUnknown_085EB4C7, 0 + .4byte gUnknown_085EB4D4, 0 + .4byte gUnknown_085EB597, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B700:: @ 58B700 +@ replacing .incbin "baserom.gba", 0x0058b700, 0x30 + .4byte gUnknown_085EB5A6, 0 + .4byte gUnknown_085EB45C, 0 + .4byte gUnknown_085EB469, 0 + .4byte gUnknown_085EB475, 0 + .4byte gUnknown_085EB482, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B730:: @ 58B730 +@ replacing .incbin "baserom.gba", 0x0058b730, 0x28 + .4byte gUnknown_085EB32D, 0 + .4byte gUnknown_085EB33E, 0 + .4byte gUnknown_085EB350, 0 + .4byte gUnknown_085EB361, 0 + .4byte gText_Exit, 0 + +gUnknown_0858B758:: @ 58B758 +@ replacing .incbin "baserom.gba", 0x0058b758, 0x8 + .4byte gText_Exit, 0 + + +gUnknown_0858B760:: @ 858B760 +@ replacing .incbin "baserom.gba", 0x0058b760, 0x390 + .4byte 0x0858abd8, 3 + .4byte gUnknown_0858B758, 1 + .4byte gUnknown_0858ABF0, 3 + .4byte gUnknown_0858AC08, 4 + .4byte gUnknown_0858AC28, 6 + .4byte gUnknown_0858AC78, 3 + .4byte gUnknown_0858AC58, 4 + .4byte gUnknown_0858AC90, 4 + .4byte gUnknown_0858B758, 1 + .4byte gUnknown_0858B758, 1 + .4byte gUnknown_0858B758, 1 + .4byte gUnknown_0858B4E8, 4 + .4byte gUnknown_0858ACB0, 2 + .4byte gUnknown_0858ACC0, 6 + .4byte gUnknown_0858ACF0, 2 + .4byte gUnknown_0858B758, 1 + .4byte gUnknown_0858AD00, 2 + .4byte gUnknown_0858B280, 3 + .4byte gUnknown_0858B298, 5 + .4byte gUnknown_0858B758, 1 + .4byte gUnknown_0858AD10, 3 + .4byte gUnknown_0858B758, 1 + .4byte gUnknown_0858B758, 1 + .4byte gUnknown_0858AD28, 3 + .4byte gUnknown_0858AD40, 3 + .4byte gUnknown_0858AD58, 3 + .4byte gUnknown_0858AD70, 3 + .4byte gUnknown_0858AD88, 3 + .4byte gUnknown_0858ADA0, 3 + .4byte gUnknown_0858ADB8, 3 + .4byte gUnknown_0858ADD0, 3 + .4byte gUnknown_0858ADE8, 3 + .4byte gUnknown_0858AE00, 3 + .4byte gUnknown_0858AE18, 3 + .4byte gUnknown_0858AE30, 3 + .4byte gUnknown_0858AE48, 3 + .4byte gUnknown_0858AE60, 3 + .4byte gUnknown_0858AE78, 3 + .4byte gUnknown_0858AE90, 3 + .4byte gUnknown_0858AEA8, 3 + .4byte gUnknown_0858B758, 1 + .4byte gUnknown_0858B758, 1 + .4byte gUnknown_0858AEC0, 4 + .4byte gUnknown_0858AEE0, 4 + .4byte gUnknown_0858AF00, 4 + .4byte gUnknown_0858AF20, 2 + .4byte gUnknown_0858AF30, 3 + .4byte gUnknown_0858AF48, 8 + .4byte gUnknown_0858AF88, 4 + .4byte gUnknown_0858AFD8, 3 + .4byte gUnknown_0858AFF0, 2 + .4byte gUnknown_0858B758, 1 + .4byte gUnknown_0858B000, 3 + .4byte gUnknown_0858B018, 3 + .4byte gUnknown_0858B030, 2 + .4byte gUnknown_0858AFA8, 6 + .4byte gUnknown_0858B040, 2 + .4byte gUnknown_0858B050, 6 + .4byte gUnknown_0858B080, 2 + .4byte gUnknown_0858B090, 2 + .4byte gUnknown_0858B0A0, 3 + .4byte gUnknown_0858B0B8, 2 + .4byte gUnknown_0858B0C8, 3 + .4byte gUnknown_0858B0E0, 3 + .4byte gUnknown_0858B0F8, 4 + .4byte gUnknown_0858B118, 2 + .4byte gUnknown_0858B128, 3 + .4byte gUnknown_0858B140, 3 + .4byte gUnknown_0858B158, 4 + .4byte gUnknown_0858B178, 3 + .4byte gUnknown_0858B190, 4 + .4byte gUnknown_0858B1B0, 4 + .4byte gUnknown_0858B1D0, 5 + .4byte gUnknown_0858B1F8, 6 + .4byte gUnknown_0858B308, 3 + .4byte gUnknown_0858B308, 3 + .4byte gUnknown_0858B260, 4 + .4byte gUnknown_0858B260, 4 + .4byte gUnknown_0858B2C0, 4 + .4byte gUnknown_0858B2E0, 5 + .4byte gUnknown_0858B320, 3 + .4byte gUnknown_0858B338, 3 + .4byte gUnknown_0858B350, 5 + .4byte gUnknown_0858B378, 3 + .4byte gUnknown_0858B390, 4 + .4byte gUnknown_0858B3B0, 3 + .4byte gUnknown_0858B3C8, 8 + .4byte gUnknown_0858B408, 4 + .4byte gUnknown_0858B250, 2 + .4byte gUnknown_0858B428, 3 + .4byte gUnknown_0858B440, 3 + .4byte gUnknown_0858B458, 3 + .4byte gUnknown_0858B470, 4 + .4byte gUnknown_0858B490, 3 + .4byte gUnknown_0858B4A8, 2 + .4byte gUnknown_0858B4B8, 6 + .4byte gUnknown_0858B508, 5 + .4byte gUnknown_0858B530, 5 + .4byte gUnknown_0858B558, 4 + .4byte gUnknown_0858B578, 6 + .4byte gUnknown_0858B5A8, 6 + .4byte gUnknown_0858B5D8, 5 + .4byte gUnknown_0858B600, 4 + .4byte gUnknown_0858B620, 4 + .4byte gUnknown_0858B640, 3 + .4byte gUnknown_0858B658, 3 + .4byte gUnknown_0858B670, 2 + .4byte gUnknown_0858B228, 5 + .4byte gUnknown_0858B680, 2 + .4byte gUnknown_0858B690, 4 + .4byte gUnknown_0858B6B0, 4 + .4byte gUnknown_0858B6D0, 6 + .4byte gUnknown_0858B700, 6 + .4byte gUnknown_0858B730, 5 + +gUnknown_0858BAF0:: @ 858BAF0 + .incbin "baserom.gba", 0x58baf0, 0x78 + +gUnknown_0858BB68:: @ 858BB68 + .incbin "baserom.gba", 0x58bb68, 0x8 + +gUnknown_0858BB70:: @ 858BB70 + .incbin "baserom.gba", 0x58bb70, 0x10 + +gUnknown_0858BB80:: @ 858BB80 + .incbin "baserom.gba", 0x58bb80, 0x1c + +gUnknown_0858BB9C:: @ 858BB9C + .incbin "baserom.gba", 0x58bb9c, 0x10 + +gUnknown_0858BBAC:: @ 858BBAC + .incbin "baserom.gba", 0x58bbac, 0x10 + +gUnknown_0858BBBC:: @ 858BBBC + .incbin "baserom.gba", 0x58bbbc, 0x10 + +gUnknown_0858BBCC:: @ 858BBCC + .incbin "baserom.gba", 0x58bbcc, 0x14 + +gUnknown_0858BBE0:: @ 858BBE0 + .incbin "baserom.gba", 0x58bbe0, 0xc + +gUnknown_0858BBEC:: @ 858BBEC + .incbin "baserom.gba", 0x58bbec, 0x18c diff --git a/data/script_pokemon_util_80F87D8.s b/data/script_pokemon_util_80F87D8.s new file mode 100644 index 000000000..beda525c8 --- /dev/null +++ b/data/script_pokemon_util_80F87D8.s @@ -0,0 +1,7 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 +gUnknown_0858D8EC:: @ 858D8EC + .incbin "baserom.gba", 0x58d8ec, 0x4 diff --git a/data/secret_base.s b/data/secret_base.s new file mode 100644 index 000000000..3dd2d808f --- /dev/null +++ b/data/secret_base.s @@ -0,0 +1,26 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_0858CFCC:: @ 858CFCC + .incbin "baserom.gba", 0x58cfcc, 0x1c + +gUnknown_0858CFE8:: @ 858CFE8 + .incbin "baserom.gba", 0x58cfe8, 0x60 + +gUnknown_0858D048:: @ 858D048 + .incbin "baserom.gba", 0x58d048, 0x10 + +gUnknown_0858D058:: @ 858D058 + .incbin "baserom.gba", 0x58d058, 0x8 + +gUnknown_0858D060:: @ 858D060 + .incbin "baserom.gba", 0x58d060, 0xc + +gUnknown_0858D06C:: @ 858D06C + .incbin "baserom.gba", 0x58d06c, 0x10 + +gUnknown_0858D07C:: @ 858D07C + .incbin "baserom.gba", 0x58d07c, 0x18 diff --git a/data/shop.s b/data/shop.s new file mode 100644 index 000000000..8fd64c0bb --- /dev/null +++ b/data/shop.s @@ -0,0 +1,57 @@ +@ the third big chunk of data + + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + +gUnknown_08589A08:: @ 8589A08 + .incbin "baserom.gba", 0x589a08, 0x8 + +gUnknown_08589A10:: @ 8589A10 + .incbin "baserom.gba", 0x589a10, 0x18 + +gUnknown_08589A28:: @ 8589A28 + .incbin "baserom.gba", 0x589a28, 0x10 + +gUnknown_08589A38:: @ 8589A38 + .incbin "baserom.gba", 0x589a38, 0x10 + +gUnknown_08589A48:: @ 8589A48 + .incbin "baserom.gba", 0x589a48, 0x18 + +gUnknown_08589A60:: @ 8589A60 + .incbin "baserom.gba", 0x589a60, 0x10 + +gUnknown_08589A70:: @ 8589A70 + .incbin "baserom.gba", 0x589a70, 0x38 + +gUnknown_08589AA8:: @ 8589AA8 + .incbin "baserom.gba", 0x589aa8, 0x8 + +gUnknown_08589AB0:: @ 8589AB0 + .incbin "baserom.gba", 0x589ab0, 0x3 + +gUnknown_08589AB3:: @ 8589AB3 + .incbin "baserom.gba", 0x589ab3, 0x7 + +gUnknown_08589ABA:: @ 8589ABA + .incbin "baserom.gba", 0x589aba, 0x6 + +gUnknown_08589AC0:: @ 8589AC0 + .incbin "baserom.gba", 0x589ac0, 0x6 + +gUnknown_08589AC6:: @ 8589AC6 + .incbin "baserom.gba", 0x589ac6, 0x6 + +gUnknown_08589ACC:: @ 8589ACC + .incbin "baserom.gba", 0x589acc, 0x6 + +gUnknown_08589AD2:: @ 8589AD2 + .incbin "baserom.gba", 0x589ad2, 0x6 + +gUnknown_08589AD8:: @ 8589AD8 + .incbin "baserom.gba", 0x589ad8, 0x6 + +gUnknown_08589ADE:: @ 8589ADE + .incbin "baserom.gba", 0x589ade, 0x6 diff --git a/data/slot_machine.s b/data/slot_machine.s new file mode 100644 index 000000000..08989ccdc --- /dev/null +++ b/data/slot_machine.s @@ -0,0 +1,290 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_085A7424:: @ 85A7424 + .incbin "baserom.gba", 0x5a7424, 0x10 + +gUnknown_085A7434:: @ 85A7434 + .incbin "baserom.gba", 0x5a7434, 0x10 + +gUnknown_085A7444:: @ 85A7444 + .incbin "baserom.gba", 0x5a7444, 0x8 + +gUnknown_085A744C:: @ 85A744C + .incbin "baserom.gba", 0x5a744c, 0x4 + +gUnknown_085A7450:: @ 85A7450 + .incbin "baserom.gba", 0x5a7450, 0x74 + +gUnknown_085A74C4:: @ 85A74C4 + .incbin "baserom.gba", 0x5a74c4, 0xc + +gUnknown_085A74D0:: @ 85A74D0 + .incbin "baserom.gba", 0x5a74d0, 0x14 + +gUnknown_085A74E4:: @ 85A74E4 + .incbin "baserom.gba", 0x5a74e4, 0xc + +gUnknown_085A74F0:: @ 85A74F0 + .incbin "baserom.gba", 0x5a74f0, 0xc + +gUnknown_085A74FC:: @ 85A74FC + .incbin "baserom.gba", 0x5a74fc, 0xc + +gUnknown_085A7508:: @ 85A7508 + .incbin "baserom.gba", 0x5a7508, 0xc + +gUnknown_085A7514:: @ 85A7514 + .incbin "baserom.gba", 0x5a7514, 0xc + +gUnknown_085A7520:: @ 85A7520 + .incbin "baserom.gba", 0x5a7520, 0xc + +gUnknown_085A752C:: @ 85A752C + .incbin "baserom.gba", 0x5a752c, 0xc + +gUnknown_085A7538:: @ 85A7538 + .incbin "baserom.gba", 0x5a7538, 0xc + +gUnknown_085A7544:: @ 85A7544 + .incbin "baserom.gba", 0x5a7544, 0xc + +gUnknown_085A7550:: @ 85A7550 + .incbin "baserom.gba", 0x5a7550, 0x8 + +gUnknown_085A7558:: @ 85A7558 + .incbin "baserom.gba", 0x5a7558, 0x10 + +gUnknown_085A7568:: @ 85A7568 + .incbin "baserom.gba", 0x5a7568, 0x2 + +gUnknown_085A756A:: @ 85A756A + .incbin "baserom.gba", 0x5a756a, 0xa + +gUnknown_085A7574:: @ 85A7574 + .incbin "baserom.gba", 0x5a7574, 0x4c + +gUnknown_085A75C0:: @ 85A75C0 + .incbin "baserom.gba", 0x5a75c0, 0x4 + +gUnknown_085A75C4:: @ 85A75C4 + .incbin "baserom.gba", 0x5a75c4, 0x8 + +gUnknown_085A75CC:: @ 85A75CC + .incbin "baserom.gba", 0x5a75cc, 0x8 + +gUnknown_085A75D4:: @ 85A75D4 + .incbin "baserom.gba", 0x5a75d4, 0x3c + +gUnknown_085A7610:: @ 85A7610 + .incbin "baserom.gba", 0x5a7610, 0x4 + +gUnknown_085A7614:: @ 85A7614 + .incbin "baserom.gba", 0x5a7614, 0x2 + +gUnknown_085A7616:: @ 85A7616 + .incbin "baserom.gba", 0x5a7616, 0x8 + +gUnknown_085A761E:: @ 85A761E + .incbin "baserom.gba", 0x5a761e, 0x8 + +gUnknown_085A7626:: @ 85A7626 + .incbin "baserom.gba", 0x5a7626, 0x8 + +gUnknown_085A762E:: @ 85A762E + .incbin "baserom.gba", 0x5a762e, 0x10 + +gUnknown_085A763E:: @ 85A763E + .incbin "baserom.gba", 0x5a763e, 0x10 + +gUnknown_085A764E:: @ 85A764E + .incbin "baserom.gba", 0x5a764e, 0x10 + +gUnknown_085A765E:: @ 85A765E + .incbin "baserom.gba", 0x5a765e, 0x10 + +gUnknown_085A766E:: @ 85A766E + .incbin "baserom.gba", 0x5a766e, 0x3f + +gUnknown_085A76AD:: @ 85A76AD + .incbin "baserom.gba", 0x5a76ad, 0x7 + +gUnknown_085A76B4:: @ 85A76B4 + .incbin "baserom.gba", 0x5a76b4, 0xc + +gUnknown_085A76C0:: @ 85A76C0 + .incbin "baserom.gba", 0x5a76c0, 0x12 + +gUnknown_085A76D2:: @ 85A76D2 + .incbin "baserom.gba", 0x5a76d2, 0x12 + +gUnknown_085A76E4:: @ 85A76E4 + .incbin "baserom.gba", 0x5a76e4, 0x1e + +gUnknown_085A7702:: @ 85A7702 + .incbin "baserom.gba", 0x5a7702, 0x66 + +gUnknown_085A7768:: @ 85A7768 + .incbin "baserom.gba", 0x5a7768, 0x66 + +gUnknown_085A77CE:: @ 85A77CE + .incbin "baserom.gba", 0x5a77ce, 0xa + +gUnknown_085A77D8:: @ 85A77D8 + .incbin "baserom.gba", 0x5a77d8, 0x14 + +gUnknown_085A77EC:: @ 85A77EC + .incbin "baserom.gba", 0x5a77ec, 0xa + +gUnknown_085A77F6:: @ 85A77F6 + .incbin "baserom.gba", 0x5a77f6, 0x8 + +gUnknown_085A77FE:: @ 85A77FE + .incbin "baserom.gba", 0x5a77fe, 0x6 + +gUnknown_085A7804:: @ 85A7804 + .incbin "baserom.gba", 0x5a7804, 0xa + +gUnknown_085A780E:: @ 85A780E + .incbin "baserom.gba", 0x5a780e, 0x8 + +gUnknown_085A7816:: @ 85A7816 + .incbin "baserom.gba", 0x5a7816, 0x12 + +gUnknown_085A7828:: @ 85A7828 + .incbin "baserom.gba", 0x5a7828, 0x12 + +gUnknown_085A783A:: @ 85A783A + .incbin "baserom.gba", 0x5a783a, 0x8e + +gUnknown_085A78C8:: @ 85A78C8 + .incbin "baserom.gba", 0x5a78c8, 0x13c + +gUnknown_085A7A04:: @ 85A7A04 + .incbin "baserom.gba", 0x5a7a04, 0x1c + +gUnknown_085A7A20:: @ 85A7A20 + .incbin "baserom.gba", 0x5a7a20, 0x2c0 + +gUnknown_085A7CE0:: @ 85A7CE0 + .incbin "baserom.gba", 0x5a7ce0, 0x18 + +gUnknown_085A7CF8:: @ 85A7CF8 + .incbin "baserom.gba", 0x5a7cf8, 0x18 + +gUnknown_085A7D10:: @ 85A7D10 + .incbin "baserom.gba", 0x5a7d10, 0x18 + +gUnknown_085A7D28:: @ 85A7D28 + .incbin "baserom.gba", 0x5a7d28, 0x18 + +gUnknown_085A7D40:: @ 85A7D40 + .incbin "baserom.gba", 0x5a7d40, 0x18 + +gUnknown_085A7D58:: @ 85A7D58 + .incbin "baserom.gba", 0x5a7d58, 0x18 + +gUnknown_085A7D70:: @ 85A7D70 + .incbin "baserom.gba", 0x5a7d70, 0x18 + +gUnknown_085A7D88:: @ 85A7D88 + .incbin "baserom.gba", 0x5a7d88, 0x18 + +gUnknown_085A7DA0:: @ 85A7DA0 + .incbin "baserom.gba", 0x5a7da0, 0x18 + +gUnknown_085A7DB8:: @ 85A7DB8 + .incbin "baserom.gba", 0x5a7db8, 0x18 + +gUnknown_085A7DD0:: @ 85A7DD0 + .incbin "baserom.gba", 0x5a7dd0, 0x18 + +gUnknown_085A7DE8:: @ 85A7DE8 + .incbin "baserom.gba", 0x5a7de8, 0x18 + +gUnknown_085A7E00:: @ 85A7E00 + .incbin "baserom.gba", 0x5a7e00, 0x18 + +gUnknown_085A7E18:: @ 85A7E18 + .incbin "baserom.gba", 0x5a7e18, 0x18 + +gUnknown_085A7E30:: @ 85A7E30 + .incbin "baserom.gba", 0x5a7e30, 0x168 + +gUnknown_085A7F98:: @ 85A7F98 + .incbin "baserom.gba", 0x5a7f98, 0x28 + +gUnknown_085A7FC0:: @ 85A7FC0 + .incbin "baserom.gba", 0x5a7fc0, 0x20 + +gUnknown_085A7FE0:: @ 85A7FE0 + .incbin "baserom.gba", 0x5a7fe0, 0x14 + +gUnknown_085A7FF4:: @ 85A7FF4 + .incbin "baserom.gba", 0x5a7ff4, 0x1c + +gUnknown_085A8010:: @ 85A8010 + .incbin "baserom.gba", 0x5a8010, 0x18 + +gUnknown_085A8028:: @ 85A8028 + .incbin "baserom.gba", 0x5a8028, 0x14 + +gUnknown_085A803C:: @ 85A803C + .incbin "baserom.gba", 0x5a803c, 0x228 + +gUnknown_085A8264:: @ 85A8264 + .incbin "baserom.gba", 0x5a8264, 0x68 + +gUnknown_085A82CC:: @ 85A82CC + .incbin "baserom.gba", 0x5a82cc, 0x68 + +gUnknown_085A8334:: @ 85A8334 + .incbin "baserom.gba", 0x5a8334, 0xb0 + +gUnknown_085A83E4:: @ 85A83E4 + .incbin "baserom.gba", 0x5a83e4, 0x24 + +gUnknown_085A8408:: @ 85A8408 + .incbin "baserom.gba", 0x5a8408, 0x14 + +gUnknown_085A841C:: @ 85A841C + .incbin "baserom.gba", 0x5a841c, 0x14 + +gUnknown_085A8430:: @ 85A8430 + .incbin "baserom.gba", 0x5a8430, 0x5 + +gUnknown_085A8435:: @ 85A8435 + .incbin "baserom.gba", 0x5a8435, 0x6 + +gUnknown_085A843B:: @ 85A843B + .incbin "baserom.gba", 0x5a843b, 0x65 + +gUnknown_085A84A0:: @ 85A84A0 + .incbin "baserom.gba", 0x5a84a0, 0xc + +gUnknown_085A84AC:: @ 85A84AC + .incbin "baserom.gba", 0x5a84ac, 0x64 + +gUnknown_085A8510:: @ 85A8510 + .incbin "baserom.gba", 0x5a8510, 0x10 + +gUnknown_085A8520:: @ 85A8520 + .incbin "baserom.gba", 0x5a8520, 0x4 + +gUnknown_085A8524:: @ 85A8524 + .incbin "baserom.gba", 0x5a8524, 0x20 + +gUnknown_085A8544:: @ 85A8544 + .incbin "baserom.gba", 0x5a8544, 0x48 + +gUnknown_085A858C:: @ 85A858C + .incbin "baserom.gba", 0x5a858c, 0x1154 + +gUnknown_085A96E0:: @ 85A96E0 + .incbin "baserom.gba", 0x5a96e0, 0x1b8 + +gUnknown_085A9898:: @ 85A9898 + .incbin "baserom.gba", 0x5a9898, 0x4 diff --git a/data/smokescreen.s b/data/smokescreen.s new file mode 100644 index 000000000..6f2478842 --- /dev/null +++ b/data/smokescreen.s @@ -0,0 +1,64 @@ +@ data used in battle_7.s and smokescreen.s, can't split because they're interleaved + + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + + .align 2 +gUnknown_0831C604:: @ 831C604 + .byte 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x02, 0x00 + .byte 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x02, 0x01 + .byte 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01 + .byte 0x00, 0x00, 0x00, 0x00 + + .align 2 +gUnknown_0831C620:: @ 831C620 + obj_tiles gUnknown_08C01644, 0x0180, 0xd6eb + + .align 2 +gUnknown_0831C628:: @ 831C628 + obj_pal gUnknown_08C01724, 0xd6eb + + .align 2 +gUnknown_0831C630:: @ 831C630 + .byte 0x00, 0x00, 0x00, 0x40, 0x00, 0x04, 0x00, 0x00 + + .align 2 +gUnknown_0831C638:: @ 831C638 + .2byte 0x0000, 0x0004, 0x0004, 0x0004, 0x0008, 0x0004, 0xffff, 0x0000 + + .align 2 +gUnknown_0831C648:: @ 831C648 + .2byte 0x0000, 0x0044, 0x0004, 0x0044, 0x0008, 0x0044, 0xffff, 0x0000 + + .align 2 +gUnknown_0831C658:: @ 831C658 + .2byte 0x0000, 0x0084, 0x0004, 0x0084, 0x0008, 0x0084, 0xffff, 0x0000 + + .align 2 +gUnknown_0831C668:: @ 831C668 + .2byte 0x0000, 0x00c4, 0x0004, 0x00c4, 0x0008, 0x00c4, 0xffff, 0x0000 + + .align 2 +gUnknown_0831C678:: @ 831C678 + .4byte gUnknown_0831C638 + .4byte gUnknown_0831C648 + .4byte gUnknown_0831C658 + .4byte gUnknown_0831C668 + + .align 2 +gUnknown_0831C688:: @ 831C688 + spr_template 0xd6eb, 0xd6eb, gUnknown_0831C630, gUnknown_0831C678, NULL, gDummySpriteAffineAnimTable, sub_80753B4 + + .align 2 +gUnknown_0831C6A0:: @ 831C6A0 + obj_tiles gUnknown_08D8FBC0, 0x0080, 0xd759 + + .align 2 +gUnknown_0831C6A8:: @ 831C6A8 + .byte 0x00, 0x40, 0x00, 0x40, 0x00, 0x0c, 0x00, 0x00 + + .align 2 +gUnknown_0831C6B0:: @ 831C6B0 + spr_template 0xd759, 0xd6ff, gUnknown_0831C6A8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_805EE48 diff --git a/data/start_menu.s b/data/start_menu.s new file mode 100644 index 000000000..07e428d0d --- /dev/null +++ b/data/start_menu.s @@ -0,0 +1,29 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gSafariBallsWindowTemplate:: @ 8510508 + .incbin "baserom.gba", 0x510508, 0x8 + +gUnknown_08510510:: @ 8510510 + .incbin "baserom.gba", 0x510510, 0x20 + +gPyramidFloorWindowTemplate_2:: @ 8510530 + .incbin "baserom.gba", 0x510530, 0x8 + +gPyramidFloorWindowTemplate_1:: @ 8510538 + .incbin "baserom.gba", 0x510538, 0x8 + +sStartMenuItems:: @ 8510540 + .incbin "baserom.gba", 0x510540, 0x68 + +gUnknown_085105A8:: @ 85105A8 + .incbin "baserom.gba", 0x5105a8, 0x4 + +gUnknown_085105AC:: @ 85105AC + .incbin "baserom.gba", 0x5105ac, 0x10 + +gUnknown_085105BC:: @ 85105BC + .incbin "baserom.gba", 0x5105bc, 0x8 diff --git a/data/strings.s b/data/strings.s index c8a1b7683..5fb8ca902 100644 --- a/data/strings.s +++ b/data/strings.s @@ -50,6 +50,8 @@ gText_EggNickname:: @ 85E8264 gText_Pokemon:: @ 85E8268 .string "POKéMON$" + +gUnknown_085E8270:: @ 85E8270 .string "PROF. BIRCH$" gText_MainMenuNewGame:: @ 85E827C @@ -78,7 +80,11 @@ gText_MysteryGiftCantUse:: @ 85E82E5 gText_MysteryEventsCantUse:: @ 85E8328 .string "MYSTERY EVENTS can’t be used while\nthe Wireless Adapter is attached.$" + +gUnknown_085E836D:: @ 85E836D .string "Updating save file using external\ndata. Please wait.$" + +gUnknown_085E83A2:: @ 85E83A2 .string "The save file has been updated.$" gText_SaveFileCorrupted:: @ 85E83C2 @@ -92,29 +98,59 @@ gJPText_No1MSubCircuit:: @ 85E8440 gText_BatteryRunDry:: @ 85E8453 .string "The internal battery has run dry.\nThe game can be played.\pHowever, clock-based events will\nno longer occur.$" + +gUnknown_085E84BF:: @ 85E84BF .string "PLAYER$" + +gUnknown_085E84C6:: @ 85E84C6 .string "POKéDEX$" gText_MainMenuTime:: @ 85E84CE .string "TIME$" + +gUnknown_085E84D3:: @ 85E84D3 .string "BADGES$" + +gUnknown_085E84DA:: @ 85E84DA .string "A Button$" + +gUnknown_085E84E3:: @ 85E84E3 .string "B Button$" + +gUnknown_085E84EC:: @ 85E84EC .string "R Button$" + +gUnknown_085E84F5:: @ 85E84F5 .string "L Button$" + +gUnknown_085E84FE:: @ 85E84FE .string "START$" + +gUnknown_085E8504:: @ 85E8504 .string "SELECT$" + +gUnknown_085E850B:: @ 85E850B .string "+ Control Pad$" + +gUnknown_085E8519:: @ 85E8519 .string "L Button R Button$" + +gUnknown_085E852C:: @ 85E852C .string "CONTROLS$" .align 2 + +gUnknown_085E8538:: @ 85E8538 .string "{UNK_CTRL_F80A}PICK {UNK_CTRL_F800}OK$" .align 2 + +gUnknown_085E8544:: @ 85E8544 .string "{UNK_CTRL_F800}NEXT$" .align 2 + +gUnknown_085E854C:: @ 85E854C .string "{UNK_CTRL_F800}NEXT {UNK_CTRL_F801}BACK$" .align 2 @@ -128,47 +164,131 @@ gText_PickCancel:: @ 85E8574 .align 2 gText_UnkCtrlF800Exit:: @ 85E8588 .string "{UNK_CTRL_F800}EXIT$" + +gUnknown_085E858F:: @ 85E858F .string "BOY$" + +gUnknown_085E8593:: @ 85E8593 .string "GIRL$" + +gUnknown_085E8598:: @ 85E8598 .string "STU$" + +gUnknown_085E859C:: @ 85E859C .string "MILTON$" + +gUnknown_085E85A3:: @ 85E85A3 .string "TOM$" + +gUnknown_085E85A7:: @ 85E85A7 .string "KENNY$" + +gUnknown_085E85AD:: @ 85E85AD .string "REID$" + +gUnknown_085E85B2:: @ 85E85B2 .string "JUDE$" + +gUnknown_085E85B7:: @ 85E85B7 .string "JAXSON$" + +gUnknown_085E85BE:: @ 85E85BE .string "EASTON$" + +gUnknown_085E85C5:: @ 85E85C5 .string "WALKER$" + +gUnknown_085E85CC:: @ 85E85CC .string "TERU$" + +gUnknown_085E85D1:: @ 85E85D1 .string "JOHNNY$" + +gUnknown_085E85D8:: @ 85E85D8 .string "BRETT$" + +gUnknown_085E85DE:: @ 85E85DE .string "SETH$" + +gUnknown_085E85E3:: @ 85E85E3 .string "TERRY$" + +gUnknown_085E85E9:: @ 85E85E9 .string "CASEY$" + +gUnknown_085E85EF:: @ 85E85EF .string "DARREN$" + +gUnknown_085E85F6:: @ 85E85F6 .string "LANDON$" + +gUnknown_085E85FD:: @ 85E85FD .string "COLLIN$" + +gUnknown_085E8604:: @ 85E8604 .string "STANLEY$" + +gUnknown_085E860C:: @ 85E860C .string "QUINCY$" + +gUnknown_085E8613:: @ 85E8613 .string "KIMMY$" + +gUnknown_085E8619:: @ 85E8619 .string "TIARA$" + +gUnknown_085E861F:: @ 85E861F .string "BELLA$" + +gUnknown_085E8625:: @ 85E8625 .string "JAYLA$" + +gUnknown_085E862B:: @ 85E862B .string "ALLIE$" + +gUnknown_085E8631:: @ 85E8631 .string "LIANNA$" + +gUnknown_085E8638:: @ 85E8638 .string "SARA$" + +gUnknown_085E863D:: @ 85E863D .string "MONICA$" + +gUnknown_085E8644:: @ 85E8644 .string "CAMILA$" + +gUnknown_085E864B:: @ 85E864B .string "AUBREE$" + +gUnknown_085E8652:: @ 85E8652 .string "RUTHIE$" + +gUnknown_085E8659:: @ 85E8659 .string "HAZEL$" + +gUnknown_085E865F:: @ 85E865F .string "NADINE$" + +gUnknown_085E8666:: @ 85E8666 .string "TANJA$" + +gUnknown_085E866C:: @ 85E866C .string "YASMIN$" + +gUnknown_085E8673:: @ 85E8673 .string "NICOLA$" + +gUnknown_085E867A:: @ 85E867A .string "LILLIE$" + +gUnknown_085E8681:: @ 85E8681 .string "TERRA$" + +gUnknown_085E8687:: @ 85E8687 .string "LUCY$" + +gUnknown_085E868C:: @ 85E868C .string "HALIE$" gText_ThisIsAPokemon:: @ 85E8692 @@ -182,13 +302,23 @@ gText_UnkHeight:: @ 85E86C6 gText_UnkWeight:: @ 85E86D0 .string "????.? lbs.$" + +gUnknown_085E86DC:: @ 85E86DC .string " POKéMON$" + +gUnknown_085E86FB:: @ 85E86FB .string "{CLEAR_TO 0x0C} ’ ”$" + +gUnknown_085E8709:: @ 85E8709 .string " . lbs.$" + +gUnknown_085E871A:: @ 85E871A .string "$" gText_CryOf:: @ 85E871B .string "CRY OF$" + +gUnknown_085E8722:: @ 85E8722 .string "$" gText_SizeComparedTo:: @ 85E8723 @@ -211,61 +341,161 @@ gText_SearchCompleted:: @ 85E8773 gUnknown_085E8785:: @ 85E8785 .string "No matching POKéMON were found.$" + +gUnknown_085E87A5:: @ 85E87A5 .string "Search for POKéMON based on\nselected parameters.$" + +gUnknown_085E87D6:: @ 85E87D6 .string "Switch POKéDEX listings.$" + +gUnknown_085E87EF:: @ 85E87EF .string "Return to the POKéDEX.$" + +gUnknown_085E8806:: @ 85E8806 .string "Select the POKéDEX mode.$" + +gUnknown_085E881F:: @ 85E881F .string "Select the POKéDEX listing mode.$" + +gUnknown_085E8840:: @ 85E8840 .string "List by the first letter in the name.\nSpotted POKéMON only.$" + +gUnknown_085E887C:: @ 85E887C .string "List by body color.\nSpotted POKéMON only.$" + +gUnknown_085E88A6:: @ 85E88A6 .string "List by type.\nOwned POKéMON only.$" + +gUnknown_085E88C8:: @ 85E88C8 .string "Execute search/switch.$" + +gUnknown_085E88DF:: @ 85E88DF .string "HOENN DEX$" + +gUnknown_085E88E9:: @ 85E88E9 .string "NATIONAL DEX$" + +gUnknown_085E88F6:: @ 85E88F6 .string "NUMERICAL MODE$" + +gUnknown_085E8905:: @ 85E8905 .string "A TO Z MODE$" + +gUnknown_085E8911:: @ 85E8911 .string "HEAVIEST MODE$" + +gUnknown_085E891F:: @ 85E891F .string "LIGHTEST MODE$" + +gUnknown_085E892D:: @ 85E892D .string "TALLEST MODE$" + +gUnknown_085E893A:: @ 85E893A .string "SMALLEST MODE$" + +gUnknown_085E8948:: @ 85E8948 .string "ABC$" + +gUnknown_085E894C:: @ 85E894C .string "DEF$" + +gUnknown_085E8950:: @ 85E8950 .string "GHI$" + +gUnknown_085E8954:: @ 85E8954 .string "JKL$" + +gUnknown_085E8958:: @ 85E8958 .string "MNO$" + +gUnknown_085E895C:: @ 85E895C .string "PQR$" + +gUnknown_085E8960:: @ 85E8960 .string "STU$" + +gUnknown_085E8964:: @ 85E8964 .string "VWX$" + +gUnknown_085E8968:: @ 85E8968 .string "YZ$" + +gUnknown_085E896B:: @ 85E896B .string "RED$" + +gUnknown_085E896F:: @ 85E896F .string "BLUE$" + +gUnknown_085E8974:: @ 85E8974 .string "YELLOW$" + +gUnknown_085E897B:: @ 85E897B .string "GREEN$" + +gUnknown_085E8981:: @ 85E8981 .string "BLACK$" + +gUnknown_085E8987:: @ 85E8987 .string "BROWN$" + +gUnknown_085E898D:: @ 85E898D .string "PURPLE$" + +gUnknown_085E8994:: @ 85E8994 .string "GRAY$" + +gUnknown_085E8999:: @ 85E8999 .string "WHITE$" + +gUnknown_085E899F:: @ 85E899F .string "PINK$" + +gUnknown_085E89A4:: @ 85E89A4 .string "HOENN region’s POKéDEX$" + +gUnknown_085E89BB:: @ 85E89BB .string "National edition POKéDEX$" + +gUnknown_085E89D4:: @ 85E89D4 .string "POKéMON are listed according to their\nnumber.$" + +gUnknown_085E8A02:: @ 85E8A02 .string "Spotted and owned POKéMON are listed\nalphabetically.$" + +gUnknown_085E8A37:: @ 85E8A37 .string "Owned POKéMON are listed from the\nheaviest to the lightest.$" + +gUnknown_085E8A73:: @ 85E8A73 .string "Owned POKéMON are listed from the\nlightest to the heaviest.$" + +gUnknown_085E8AAF:: @ 85E8AAF .string "Owned POKéMON are listed from the\ntallest to the smallest.$" + +gUnknown_085E8AEA:: @ 85E8AEA .string "Owned POKéMON are listed from the\nsmallest to the tallest.$" + +gUnknown_085E8B25:: @ 85E8B25 .string "$" + +gUnknown_085E8B26:: @ 85E8B26 .string "DON’T SPECIFY.$" + +gUnknown_085E8B35:: @ 85E8B35 .string "NONE$" gText_SelectorArrow:: @ 85E8B3A .string "▶$" + +gUnknown_085E8B3C:: @ 85E8B3C .string " $" gText_WelcomeToHOF:: @ 85E8B3E .string "Welcome to the HALL OF FAME!$" + +gUnknown_085E8B5B:: @ 85E8B5B .string "Spotted POKéMON: {STR_VAR_1}!\nOwned POKéMON: {STR_VAR_2}!\pPROF. BIRCH’s POKéDEX rating!\pPROF. BIRCH: Let’s see…\p$" + +gUnknown_085E8BBA:: @ 85E8BBA .string "SAVING…\nDON’T TURN OFF THE POWER.$" gText_HOFCorrupted:: @ 85E8BDC @@ -282,6 +512,8 @@ gText_Number:: @ 85E8C36 gText_Level:: @ 85E8C3B .string "Lv. $" + +gUnknown_085E8C40:: @ 85E8C40 .string "IDNo. /$" gText_Name:: @ 85E8C48 @@ -295,18 +527,32 @@ gText_BirchInTrouble:: @ 85E8C53 gText_ConfirmStarterChoice:: @ 85E8C90 .string "Do you choose this POKéMON?$" + +gUnknown_085E8CAC:: @ 85E8CAC .string "POKéMON$" gText_FlyToWhere:: @ 85E8CB4 .string "FLY to where?$" + +gUnknown_085E8CC2:: @ 85E8CC2 .string "USE$" + +gUnknown_085E8CC6:: @ 85E8CC6 .string "TOSS$" + +gUnknown_085E8CCB:: @ 85E8CCB .string "REGISTER$" + +gUnknown_085E8CD4:: @ 85E8CD4 .string "GIVE$" + +gUnknown_085E8CD9:: @ 85E8CD9 .string "CHECK TAG$" gText_Confirm:: @ 85E8CE3 .string "CONFIRM$" + +gUnknown_085E8CEB:: @ 85E8CEB .string "WALK$" gText_Cancel:: @ 85E8CF0 @@ -314,19 +560,35 @@ gText_Cancel:: @ 85E8CF0 gText_Cancel2:: @ 85E8CF7 .string "CANCEL$" + +gUnknown_085E8CFE:: @ 85E8CFE .string "SHOW$" gText_EmptyString2:: @ 85E8D03 .string "$" + +gUnknown_085E8D04:: @ 85E8D04 .string "CANCEL$" + +gUnknown_085E8D0B:: @ 85E8D0B .string "ITEM$" + +gUnknown_085E8D10:: @ 85E8D10 .string "MAIL$" + +gUnknown_085E8D15:: @ 85E8D15 .string "TAKE$" + +gUnknown_085E8D1A:: @ 85E8D1A .string "STORE$" + +gUnknown_085E8D20:: @ 85E8D20 .string "CHECK$" gText_None:: @ 85E8D26 .string "NONE$" + +gUnknown_085E8D2B:: @ 85E8D2B .string "DESELECT$" gText_ThreeMarks:: @ 85E8D34 @@ -358,7 +620,11 @@ gText_LevelSymbol:: @ 85E8D4D gText_UnkCtrlF908Clear01:: @ 85E8D4F .string "{UNK_CTRL_F908}{CLEAR 0x01}$" + +gUnknown_085E8D55:: @ 85E8D55 .string "+$" + +gUnknown_085E8D57:: @ 85E8D57 .string "{RIGHT_ARROW}$" gText_UnkCtrlF907F908:: @ 85E8D59 @@ -375,10 +641,14 @@ gText_GoBackPrevMenu:: @ 85E8D62 gText_WhatWouldYouLike:: @ 85E8D80 .string "What would you like to do?$" + +gUnknown_085E8D9B:: @ 85E8D9B .string "GIVE$" gText_xVar1:: @ 85E8DA0 .string "×{STR_VAR_1}$" + +gUnknown_085E8DA4:: @ 85E8DA4 .string " BERRY$" gText_Coins:: @ 85E8DAB @@ -490,7 +760,7 @@ gText_ThePC:: @ 85E9178 .string "the PC$" .align 2 -gUnknown_085E9180:: @ 85E9180 +gReturnToXStringsTable:: @ 85E9180 .4byte gText_TheField .4byte gText_TheBattle .4byte gText_ThePokemonList @@ -505,7 +775,7 @@ gUnknown_085E9180:: @ 85E9180 .4byte gText_ThePC .align 2 -gUnknown_085E91B0:: @ 85E91B0 +gReturnToXStringsTable2:: @ 85E91B0 .4byte gText_TheField .4byte gText_TheBattle .4byte gText_ThePokemonList @@ -531,7 +801,7 @@ gText_KeyItemsPocket:: @ 85E91F1 .string "KEY ITEMS$" .align 2 -gPocketNames:: @ 85E91FC +gPocketNamesStringsTable:: @ 85E91FC .4byte gText_ItemsPocket .4byte gText_PokeBallsPocket .4byte gText_TMHMPocket @@ -539,2048 +809,3364 @@ gPocketNames:: @ 85E91FC .4byte gText_KeyItemsPocket .align 2 -gUnknown_085E9210:: @ 85E9210 +gText_UnkF908Var1Clear7Var2:: @ 85E9210 .string "{UNK_CTRL_F908}{STR_VAR_1}{CLEAR 0x07}{STR_VAR_2}$" -gUnknown_085E921A:: @ 85E921A +gText_ClearTo11Var1Clear5Var2:: @ 85E921A .string "{CLEAR_TO 0x11}{STR_VAR_1}{CLEAR 0x05}{STR_VAR_2}$" -gUnknown_085E9225:: @ 85E9225 +gText_SizeSlash:: @ 85E9225 .string "SIZE /$" -gUnknown_085E922C:: @ 85E922C +gText_FirmSlash:: @ 85E922C .string "FIRM /$" -gUnknown_085E9233:: @ 85E9233 +gText_Var1DotVar2:: @ 85E9233 .string "{STR_VAR_1}.{STR_VAR_2}”$" - .include "data/text/berry_firmness_strings.inc" -gUnknown_085E9263:: @ 85E9263 +gText_UnkF908Var1Var2:: @ 85E9263 .string "{UNK_CTRL_F908}{STR_VAR_1} {STR_VAR_2}$" -gUnknown_085E926B:: @ 85E926B +gText_BerryTag:: @ 85E926B .string "BERRY TAG$" + +gUnknown_085E9275:: @ 85E9275 .string "RED {POKEBLOCK}$" + +gUnknown_085E927F:: @ 85E927F .string "BLUE {POKEBLOCK}$" + +gUnknown_085E928A:: @ 85E928A .string "PINK {POKEBLOCK}$" + +gUnknown_085E9295:: @ 85E9295 .string "GREEN {POKEBLOCK}$" + +gUnknown_085E92A1:: @ 85E92A1 .string "YELLOW {POKEBLOCK}$" + +gUnknown_085E92AE:: @ 85E92AE .string "PURPLE {POKEBLOCK}$" + +gUnknown_085E92BB:: @ 85E92BB .string "INDIGO {POKEBLOCK}$" + +gUnknown_085E92C8:: @ 85E92C8 .string "BROWN {POKEBLOCK}$" + +gUnknown_085E92D4:: @ 85E92D4 .string "LITEBLUE {POKEBLOCK}$" + +gUnknown_085E92E3:: @ 85E92E3 .string "OLIVE {POKEBLOCK}$" + +gUnknown_085E92EF:: @ 85E92EF .string "GRAY {POKEBLOCK}$" + +gUnknown_085E92FA:: @ 85E92FA .string "BLACK {POKEBLOCK}$" + +gUnknown_085E9306:: @ 85E9306 .string "WHITE {POKEBLOCK}$" + +gUnknown_085E9312:: @ 85E9312 .string "GOLD {POKEBLOCK}$" -gUnknown_085E931D:: @ 85E931D +gText_Spicy:: @ 85E931D .string "SPICY$" -gUnknown_085E9323:: @ 85E9323 +gText_Dry:: @ 85E9323 .string "DRY$" -gUnknown_085E9327:: @ 85E9327 +gText_Sweet:: @ 85E9327 .string "SWEET$" -gUnknown_085E932D:: @ 85E932D +gText_Bitter:: @ 85E932D .string "BITTER$" -gUnknown_085E9334:: @ 85E9334 +gText_Sour:: @ 85E9334 .string "SOUR$" + +gUnknown_085E9339:: @ 85E9339 .string "TASTY$" + +gUnknown_085E933F:: @ 85E933F .string "FEEL$" -gUnknown_085E9344:: @ 85E9344 +gText_StowCase:: @ 85E9344 .string "Stow CASE.$" -gUnknown_085E934F:: @ 85E934F +gText_LvVar1:: @ 85E934F .string "{LV}{STR_VAR_1}$" -gUnknown_085E9353:: @ 85E9353 +gText_ThrowAwayVar1:: @ 85E9353 .string "Throw away this\n{STR_VAR_1}?$" -gUnknown_085E9367:: @ 85E9367 +gText_Var1ThrownAway:: @ 85E9367 .string "The {STR_VAR_1}\nwas thrown away.$" -gUnknown_085E937F:: @ 85E937F +gText_Var1AteTheVar2:: @ 85E937F .string "{STR_VAR_1} ate the\n{STR_VAR_2}.{PAUSE_UNTIL_PRESS}$" -gUnknown_085E9390:: @ 85E9390 +gText_Var1HappilyAteVar2:: @ 85E9390 .string "{STR_VAR_1} happily ate the\n{STR_VAR_2}.{PAUSE_UNTIL_PRESS}$" -gUnknown_085E93A9:: @ 85E93A9 +gText_Var1DisdainfullyAteVar2:: @ 85E93A9 .string "{STR_VAR_1} disdainfully ate the\n{STR_VAR_2}.{PAUSE_UNTIL_PRESS}$" + +gUnknown_085E93C7:: @ 85E93C7 .string "BUY$" + +gUnknown_085E93CB:: @ 85E93CB .string "SELL$" + +gUnknown_085E93D0:: @ 85E93D0 .string "QUIT$" -gUnknown_085E93D5:: @ 85E93D5 +gText_InBagVar1:: @ 85E93D5 .string "IN BAG: {STR_VAR_1}$" -gUnknown_085E93E0:: @ 85E93E0 +gText_QuitShopping:: @ 85E93E0 .string "Quit shopping.$" -gUnknown_085E93EF:: @ 85E93EF +gText_Var1CertainlyHowMany:: @ 85E93EF .string "{STR_VAR_1}? Certainly.\nHow many would you like?$" -gUnknown_085E9417:: @ 85E9417 +gText_Var1CertainlyHowMany2:: @ 85E9417 .string "{STR_VAR_1}? Certainly.\nHow many would you like?$" -gUnknown_085E943F:: @ 85E943F +gText_Var1AndYouWantedVar2:: @ 85E943F .string "{STR_VAR_1}? And you wanted {STR_VAR_2}?\nThat will be ¥{STR_VAR_3}.$" -gUnknown_085E9468:: @ 85E9468 +gText_Var1IsItThatllBeVar2:: @ 85E9468 .string "{STR_VAR_1}, is it?\nThat’ll be ¥{STR_VAR_2}. Do you want it?$" -gUnknown_085E9493:: @ 85E9493 +gText_YouWantedVar1ThatllBeVar2:: @ 85E9493 .string "You wanted {STR_VAR_1}?\nThat’ll be ¥{STR_VAR_2}. Will that be okay?$" -gUnknown_085E94C5:: @ 85E94C5 +gText_HereYouGoThankYou:: @ 85E94C5 .string "Here you go!\nThank you very much.$" -gUnknown_085E94E7:: @ 85E94E7 +gText_ThankYouIllSendItHome:: @ 85E94E7 .string "Thank you!\nI’ll send it to your home PC.$" -gUnknown_085E9510:: @ 85E9510 +gText_ThanksIllSendItHome:: @ 85E9510 .string "Thanks!\nI’ll send it to your PC at home.$" -gUnknown_085E9539:: @ 85E9539 +gText_YouDontHaveMoney:: @ 85E9539 .string "You don’t have enough money.{PAUSE_UNTIL_PRESS}$" -gUnknown_085E9558:: @ 85E9558 +gText_NoMoreRoomForThis:: @ 85E9558 .string "You have no more room for this\nitem.{PAUSE_UNTIL_PRESS}$" -gUnknown_085E957F:: @ 85E957F +gText_SpaceForVar1Full:: @ 85E957F .string "The space for {STR_VAR_1} is full.{PAUSE_UNTIL_PRESS}$" -gUnknown_085E959B:: @ 85E959B +gText_AnythingElseICanHelp:: @ 85E959B .string "Is there anything else I can help\nyou with?$" -gUnknown_085E95C7:: @ 85E95C7 +gText_CanIHelpWithAnythingElse:: @ 85E95C7 .string "Can I help you with anything else?$" -gUnknown_085E95EA:: @ 85E95EA +gText_ThrowInPremierBall:: @ 85E95EA .string "I’ll throw in a PREMIER BALL, too.{PAUSE_UNTIL_PRESS}$" -gUnknown_085E960F:: @ 85E960F +gText_CantBuyKeyItem:: @ 85E960F .string "{STR_VAR_2}? Oh, no.\nI can’t buy that.{PAUSE_UNTIL_PRESS}$" -gUnknown_085E962F:: @ 85E962F +gText_HowManyToSell:: @ 85E962F .string "{STR_VAR_2}?\nHow many would you like to sell?$" -gUnknown_085E9654:: @ 85E9654 +gText_ICanPayVar1:: @ 85E9654 .string "I can pay ¥{STR_VAR_1}.\nWould that be okay?$" -gUnknown_085E9677:: @ 85E9677 +gText_TurnedOverVar1ForVar2:: @ 85E9677 .string "Turned over the {STR_VAR_2}\nand received ¥{STR_VAR_1}.$" -gUnknown_085E969C:: @ 85E969C +gText_PokedollarVar1:: @ 85E969C .string "¥{STR_VAR_1}$" + +gUnknown_085E96A0:: @ 85E96A0 .string "SHIFT$" + +gUnknown_085E96A6:: @ 85E96A6 .string "SEND OUT$" + +gUnknown_085E96AF:: @ 85E96AF .string "SWITCH$" + +gUnknown_085E96B6:: @ 85E96B6 .string "SUMMARY$" + +gUnknown_085E96BE:: @ 85E96BE .string "MOVES$" + +gUnknown_085E96C4:: @ 85E96C4 .string "ENTER$" + +gUnknown_085E96CA:: @ 85E96CA .string "NO ENTRY$" + +gUnknown_085E96D3:: @ 85E96D3 .string "TAKE$" + +gUnknown_085E96D8:: @ 85E96D8 .string "READ$" + +gUnknown_085E96DD:: @ 85E96DD .string "TRADE$" -gUnknown_085E96E3:: @ 85E96E3 +gText_HP3:: @ 85E96E3 .string "HP$" -gUnknown_085E96E6:: @ 85E96E6 +gText_SpAtk3:: @ 85E96E6 .string "SP. ATK$" -gUnknown_085E96EE:: @ 85E96EE +gText_SpDef3:: @ 85E96EE .string "SP. DEF$" -gUnknown_085E96F6:: @ 85E96F6 +gText_WontHaveEffect:: @ 85E96F6 .string "It won’t have any effect.{PAUSE_UNTIL_PRESS}$" -gUnknown_085E9712:: @ 85E9712 +gText_CantBeUsedOnPkmn:: @ 85E9712 .string "This can’t be used on\nthat POKéMON.{PAUSE_UNTIL_PRESS}$" -gUnknown_085E9738:: @ 85E9738 +gText_PkmnCantSwitchOut:: @ 85E9738 .string "{STR_VAR_1} can’t be switched\nout!{PAUSE_UNTIL_PRESS}$" -gUnknown_085E9754:: @ 85E9754 +gText_PkmnAlreadyInBattle:: @ 85E9754 .string "{STR_VAR_1} is already\nin battle!{PAUSE_UNTIL_PRESS}$" -gUnknown_085E976F:: @ 85E976F +gText_PkmnAlreadySelected:: @ 85E976F .string "{STR_VAR_1} has already been\nselected.{PAUSE_UNTIL_PRESS}$" -gUnknown_085E978F:: @ 85E978F +gText_PkmnHasNoEnergy:: @ 85E978F .string "{STR_VAR_1} has no energy\nleft to battle!{PAUSE_UNTIL_PRESS}$" -gUnknown_085E97B2:: @ 85E97B2 +gText_CantSwitchWithAlly:: @ 85E97B2 .string "You can’t switch {STR_VAR_1}’s\nPOKéMON with one of yours!{PAUSE_UNTIL_PRESS}$" -gUnknown_085E97E5:: @ 85E97E5 +gText_EggCantBattle:: @ 85E97E5 .string "An EGG can’t battle!{PAUSE_UNTIL_PRESS}$" -gUnknown_085E97FC:: @ 85E97FC +gText_CantUseUntilNewBadge:: @ 85E97FC .string "This can’t be used until a new\nBADGE is obtained.{PAUSE_UNTIL_PRESS}$" -gUnknown_085E9830:: @ 85E9830 +gText_NoMoreThanVar1Pkmn:: @ 85E9830 .string "No more than {STR_VAR_1} POKéMON\nmay enter.{PAUSE_UNTIL_PRESS}$" -gUnknown_085E9855:: @ 85E9855 +gText_SendMailToPC:: @ 85E9855 .string "Send the removed MAIL to\nyour PC?$" -gUnknown_085E9877:: @ 85E9877 +gText_MailSentToPC:: @ 85E9877 .string "The MAIL was sent to your PC.{PAUSE_UNTIL_PRESS}$" -gUnknown_085E9897:: @ 85E9897 +gText_PCMailboxFull:: @ 85E9897 .string "Your PC’s MAILBOX is full.{PAUSE_UNTIL_PRESS}$" -gUnknown_085E98B4:: @ 85E98B4 +gText_MailMessageWillBeLost:: @ 85E98B4 .string "If the MAIL is removed, the\nmessage will be lost. Okay?$" -gUnknown_085E98EC:: @ 85E98EC +gText_RemoveMailBeforeItem:: @ 85E98EC .string "MAIL must be removed before\nholding an item.{PAUSE_UNTIL_PRESS}$" -gUnknown_085E991B:: @ 85E991B +gText_PkmnWasGivenItem:: @ 85E991B .string "{STR_VAR_1} was given the\n{STR_VAR_2} to hold.{PAUSE_UNTIL_PRESS}$" -gUnknown_085E993A:: @ 85E993A +gText_SwitchPkmnItem:: @ 85E993A .string "{STR_VAR_1} is already holding\none {STR_VAR_2}.\pWould you like to switch the\ntwo items?$" -gUnknown_085E9980:: @ 85E9980 +gText_PkmnNotHolding:: @ 85E9980 .string "{STR_VAR_1} isn’t holding\nanything.{PAUSE_UNTIL_PRESS}$" -gUnknown_085E999D:: @ 85E999D +gText_RecievedItemFromPkmn:: @ 85E999D .string "Received the {STR_VAR_2}\nfrom {STR_VAR_1}.{PAUSE_UNTIL_PRESS}$" -gUnknown_085E99B8:: @ 85E99B8 +gText_MailTakenFromPkmn:: @ 85E99B8 .string "MAIL was taken from the\nPOKéMON.{PAUSE_UNTIL_PRESS}$" -gUnknown_085E99DB:: @ 85E99DB +gText_SwitchedPkmnItem:: @ 85E99DB .string "The {STR_VAR_2} was taken and\nreplaced with the {STR_VAR_1}.{PAUSE_UNTIL_PRESS}$" -gUnknown_085E9A08:: @ 85E9A08 +gText_PkmnHoldingItemCantHoldMail:: @ 85E9A08 .string "This POKéMON is holding an\nitem. It cannot hold MAIL.{PAUSE_UNTIL_PRESS}$" -gUnknown_085E9A40:: @ 85E9A40 +gText_MailTransferredFromMailbox:: @ 85E9A40 .string "MAIL was transferred from\nthe MAILBOX.{PAUSE_UNTIL_PRESS}$" -gUnknown_085E9A69:: @ 85E9A69 +gText_BagFullCouldNotRemoveItem:: @ 85E9A69 .string "The BAG is full. The POKéMON’s\nitem could not be removed.{PAUSE_UNTIL_PRESS}$" -gUnknown_085E9AA5:: @ 85E9AA5 +gText_PkmnLearnedMove3:: @ 85E9AA5 .string "{STR_VAR_1} learned\n{STR_VAR_2}!$" -gUnknown_085E9AB4:: @ 85E9AB4 +gText_PkmnCantLearnMove:: @ 85E9AB4 .string "{STR_VAR_1} and {STR_VAR_2}\nare not compatible.\p{STR_VAR_2} can’t be\nlearned.{PAUSE_UNTIL_PRESS}$" -gUnknown_085E9AE9:: @ 85E9AE9 +gText_PkmnNeedsToReplaceMove:: @ 85E9AE9 .string "{STR_VAR_1} wants to learn the\nmove {STR_VAR_2}.\pHowever, {STR_VAR_1} already\nknows four moves.\pShould a move be deleted and\nreplaced with {STR_VAR_2}?$" -gUnknown_085E9B5D:: @ 85E9B5D +gText_StopLearningMove2:: @ 85E9B5D .string "Stop trying to teach\n{STR_VAR_2}?$" -gUnknown_085E9B76:: @ 85E9B76 +gText_MoveNotLearned:: @ 85E9B76 .string "{STR_VAR_1} did not learn the\nmove {STR_VAR_2}.{PAUSE_UNTIL_PRESS}$" -gUnknown_085E9B96:: @ 85E9B96 +gText_WhichMoveToForget:: @ 85E9B96 .string "Which move should be forgotten?{PAUSE_UNTIL_PRESS}$" -gUnknown_085E9BB8:: @ 85E9BB8 +gText_12PoofForgotMove:: @ 85E9BB8 .string "1, {PAUSE 15}2, and{PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE 0x0038}Poof!\p{STR_VAR_1} forgot how to\nuse {STR_VAR_2}.\pAnd…{PAUSE_UNTIL_PRESS}$" -gUnknown_085E9C00:: @ 85E9C00 +gText_PkmnAlreadyKnows:: @ 85E9C00 .string "{STR_VAR_1} already knows\n{STR_VAR_2}.{PAUSE_UNTIL_PRESS}$" -gUnknown_085E9C17:: @ 85E9C17 +gText_PkmnHPRestoredByVar2:: @ 85E9C17 .string "{STR_VAR_1}’s HP was restored\nby {STR_VAR_2} point(s).{PAUSE_UNTIL_PRESS}$" -gUnknown_085E9C3E:: @ 85E9C3E +gText_PkmnCuredOfPoison:: @ 85E9C3E .string "{STR_VAR_1} was cured of its\npoisoning.{PAUSE_UNTIL_PRESS}$" -gUnknown_085E9C5F:: @ 85E9C5F +gText_PkmnCuredOfParalysis:: @ 85E9C5F .string "{STR_VAR_1} was cured of\nparalysis.{PAUSE_UNTIL_PRESS}$" -gUnknown_085E9C7C:: @ 85E9C7C +gText_PkmnWokeUp2:: @ 85E9C7C .string "{STR_VAR_1} woke up.{PAUSE_UNTIL_PRESS}$" -gUnknown_085E9C8A:: @ 85E9C8A +gText_PkmnBurnHealed:: @ 85E9C8A .string "{STR_VAR_1}’s burn was healed.{PAUSE_UNTIL_PRESS}$" -gUnknown_085E9CA2:: @ 85E9CA2 +gText_PkmnThawedOut:: @ 85E9CA2 .string "{STR_VAR_1} was thawed out.{PAUSE_UNTIL_PRESS}$" -gUnknown_085E9CB7:: @ 85E9CB7 +gText_PPWasRestored:: @ 85E9CB7 .string "PP was restored.{PAUSE_UNTIL_PRESS}$" + +gUnknown_085E9CCA:: @ 85E9CCA .string "{STR_VAR_1} regained health.{PAUSE_UNTIL_PRESS}$" -gUnknown_085E9CE0:: @ 85E9CE0 +gText_PkmnBecameHealthy:: @ 85E9CE0 .string "{STR_VAR_1} became healthy.{PAUSE_UNTIL_PRESS}$" -gUnknown_085E9CF5:: @ 85E9CF5 +gText_MovesPPIncreased:: @ 85E9CF5 .string "{STR_VAR_1}’s PP increased.{PAUSE_UNTIL_PRESS}$" -gUnknown_085E9D0A:: @ 85E9D0A +gText_PkmnElevatedToLvVar2:: @ 85E9D0A .string "{STR_VAR_1} was elevated to\nLv. {STR_VAR_2}.$" -gUnknown_085E9D25:: @ 85E9D25 +gText_PkmnBaseVar2StatIncreased:: @ 85E9D25 .string "{STR_VAR_1}’s base {STR_VAR_2}\nstat was raised.{PAUSE_UNTIL_PRESS}$" -gUnknown_085E9D45:: @ 85E9D45 +gText_PkmnFriendlyBaseVar2Fell:: @ 85E9D45 .string "{STR_VAR_1} turned friendly.\nThe base {STR_VAR_2} fell!{PAUSE_UNTIL_PRESS}$" -gUnknown_085E9D6D:: @ 85E9D6D +gText_PkmnAdoresBaseVar2Fell:: @ 85E9D6D .string "{STR_VAR_1} adores you!\nThe base {STR_VAR_2} fell!{PAUSE_UNTIL_PRESS}$" -gUnknown_085E9D90:: @ 85E9D90 +gText_PkmnFriendlyBaseVar2CantFall:: @ 85E9D90 .string "{STR_VAR_1} turned friendly.\nThe base {STR_VAR_2} can’t fall!{PAUSE_UNTIL_PRESS}$" -gUnknown_085E9DBE:: @ 85E9DBE +gText_PkmnSnappedOutOfConfusion:: @ 85E9DBE .string "{STR_VAR_1} snapped out of its\nconfusion.{PAUSE_UNTIL_PRESS}$" -gUnknown_085E9DE1:: @ 85E9DE1 +gText_PkmnGotOverInfatuation:: @ 85E9DE1 .string "{STR_VAR_1} got over its\ninfatuation.{PAUSE_UNTIL_PRESS}$" -gUnknown_085E9E00:: @ 85E9E00 +gText_ThrowAwayItem:: @ 85E9E00 .string "Throw away this\n{STR_VAR_1}?$" -gUnknown_085E9E14:: @ 85E9E14 +gText_ItemThrownAway:: @ 85E9E14 .string "The {STR_VAR_1}\nwas thrown away.{PAUSE_UNTIL_PRESS}$" + +gUnknown_085E9E2E:: @ 85E9E2E .string "Teach which POKéMON?$" + +gUnknown_085E9E43:: @ 85E9E43 .string "Choose a POKéMON.$" + +gUnknown_085E9E55:: @ 85E9E55 .string "Move to where?$" + +gUnknown_085E9E64:: @ 85E9E64 .string "Teach which POKéMON?$" + +gUnknown_085E9E79:: @ 85E9E79 .string "Use on which POKéMON?$" + +gUnknown_085E9E8F:: @ 85E9E8F .string "Give to which POKéMON?$" + +gUnknown_085E9EA6:: @ 85E9EA6 .string "Do what with this {PKMN}?$" + +gUnknown_085E9EBC:: @ 85E9EBC .string "There’s nothing to CUT.$" + +gUnknown_085E9ED4:: @ 85E9ED4 .string "You can’t SURF here.$" + +gUnknown_085E9EE9:: @ 85E9EE9 .string "You’re already SURFING.$" + +gUnknown_085E9F01:: @ 85E9F01 .string "Can’t use that here.$" + +gUnknown_085E9F16:: @ 85E9F16 .string "Restore which move?$" + +gUnknown_085E9F2A:: @ 85E9F2A .string "Boost PP of which move?$" + +gUnknown_085E9F42:: @ 85E9F42 .string "Do what with an item?$" + +gUnknown_085E9F58:: @ 85E9F58 .string "No POKéMON for battle!$" + +gUnknown_085E9F6F:: @ 85E9F6F .string "Choose a POKéMON.$" + +gUnknown_085E9F81:: @ 85E9F81 .string "Not enough HP…$" + +gUnknown_085E9F90:: @ 85E9F90 .string "{STR_VAR_1} POKéMON are needed.$" + +gUnknown_085E9FA7:: @ 85E9FA7 .string "POKéMON can’t be the same.$" + +gUnknown_085E9FC2:: @ 85E9FC2 .string "No identical hold items.$" + +gUnknown_085E9FDB:: @ 85E9FDB .string "The current is much too fast!$" + +gUnknown_085E9FF9:: @ 85E9FF9 .string "Do what with the MAIL?$" + +gUnknown_085EA010:: @ 85EA010 .string "Choose POKéMON or CANCEL.$" + +gUnknown_085EA02A:: @ 85EA02A .string "Choose POKéMON and confirm.$" + +gUnknown_085EA046:: @ 85EA046 .string "Let’s enjoy cycling!$" + +gUnknown_085EA05B:: @ 85EA05B .string "This is in use already.$" + +gUnknown_085EA073:: @ 85EA073 .string "{STR_VAR_1} is already holding\none {STR_VAR_2}.$" + +gUnknown_085EA091:: @ 85EA091 .string "No use.$" + +gUnknown_085EA099:: @ 85EA099 .string "ABLE$" + +gUnknown_085EA09E:: @ 85EA09E .string "FIRST$" + +gUnknown_085EA0A4:: @ 85EA0A4 .string "SECOND$" + +gUnknown_085EA0AB:: @ 85EA0AB .string "THIRD$" + +gUnknown_085EA0B1:: @ 85EA0B1 .string "ABLE$" + +gUnknown_085EA0B6:: @ 85EA0B6 .string "NOT ABLE$" + +gUnknown_085EA0BF:: @ 85EA0BF .string "ABLE!$" + +gUnknown_085EA0C5:: @ 85EA0C5 .string "NOT ABLE!$" + +gUnknown_085EA0CF:: @ 85EA0CF .string "LEARNED$" + +gUnknown_085EA0D7:: @ 85EA0D7 .string "HAVE$" + +gUnknown_085EA0DC:: @ 85EA0DC .string "DON’T HAVE$" + +gUnknown_085EA0E7:: @ 85EA0E7 .string "FOURTH$" -gUnknown_085EA0EE:: @ 85EA0EE +gText_PkmnCantParticipate:: @ 85EA0EE .string "That POKéMON can’t participate.{PAUSE_UNTIL_PRESS}$" -gUnknown_085EA110:: @ 85EA110 +gText_CancelParticipation:: @ 85EA110 .string "Cancel participation?$" -gUnknown_085EA126:: @ 85EA126 +gText_CancelBattle:: @ 85EA126 .string "Cancel the battle?$" -gUnknown_085EA139:: @ 85EA139 +gText_ReturnToWaitingRoom:: @ 85EA139 .string "Return to the WAITING ROOM?$" -gUnknown_085EA155:: @ 85EA155 +gText_CancelChallenge:: @ 85EA155 .string "Cancel the challenge?$" -gUnknown_085EA16B:: @ 85EA16B +gText_EscapeFromHere:: @ 85EA16B .string "Want to escape from here and return\nto {STR_VAR_1}?$" -gUnknown_085EA196:: @ 85EA196 +gText_ReturnToHealingSpot:: @ 85EA196 .string "Want to return to the healing spot\nused last in {STR_VAR_1}?$" -gUnknown_085EA1CA:: @ 85EA1CA +gText_PauseUntilPress:: @ 85EA1CA .string "{PAUSE_UNTIL_PRESS}$" -gUnknown_085EA1CD:: @ 85EA1CD - .string "{STR_VAR_1}を ぐるぐるこうかんに\nだして よろしいですか?$" @ "{STR_VAR_1}wo gurugurukoukanni\ndashite yoroshiidesuka?" ("do you want to put {STR_VAR_1} into the spinner?" in Japanese) +gJPText_PutVar1IntoSpinner:: @ 85EA1CD + .string "{STR_VAR_1}を ぐるぐるこうかんに\nだして よろしいですか?$" @ "{STR_VAR_1}wo gurugurukoukanni\ndashite yoroshiidesuka?" ("do you want to put {STR_VAR_1} into the spinner?" in Japanese) - .align 2 -gUnknown_085EA1E8:: @ 85EA1E8 + .align 2 +gText_OnlyPkmnForBattle:: @ 85EA1E8 .string "That’s your only\nPOKéMON for battle.$" - .align 2 -gUnknown_085EA210:: @ 85EA210 + .align 2 +gText_PkmnCantBeTradedNow:: @ 85EA210 .string "That POKéMON can’t be traded\nnow.$" - .align 2 -gUnknown_085EA234:: @ 85EA234 - .string "An EGG can’t be traded now.$" - - .align 2 - .string "The other TRAINER’s POKéMON\ncan’t be traded now.$" - - .align 2 - .string "The other TRAINER can’t accept\nthat POKéMON now.$" - - .align 2 - .string "You can’t trade with that\nTRAINER now.$" - - .align 2 - .string "That isn’t the type of POKéMON\nthat the other TRAINER wants.$" - - .align 2 - .string "That isn’t an EGG.$" + .align 2 +gText_EggCantBeTradedNow:: @ 85EA234 + .string "An EGG can’t be traded now.$" -gUnknown_085EA333:: @ 85EA333 + .align 2 + +gUnknown_085EA250:: @ 85EA250 + .string "The other TRAINER’s POKéMON\ncan’t be traded now.$" + + .align 2 + +gUnknown_085EA284:: @ 85EA284 + .string "The other TRAINER can’t accept\nthat POKéMON now.$" + + .align 2 + +gUnknown_085EA2B8:: @ 85EA2B8 + .string "You can’t trade with that\nTRAINER now.$" + + .align 2 + +gUnknown_085EA2E0:: @ 85EA2E0 + .string "That isn’t the type of POKéMON\nthat the other TRAINER wants.$" + + .align 2 + +gUnknown_085EA320:: @ 85EA320 + .string "That isn’t an EGG.$" + +gText_Register:: @ 85EA333 .string "REGISTER$" -gUnknown_085EA33C:: @ 85EA33C +gText_Attack3:: @ 85EA33C .string "ATTACK$" -gUnknown_085EA343:: @ 85EA343 +gText_Defense3:: @ 85EA343 .string "DEFENSE$" -gUnknown_085EA34B:: @ 85EA34B +gText_SpAtk4:: @ 85EA34B .string "SP. ATK$" -gUnknown_085EA353:: @ 85EA353 +gText_SpDef4:: @ 85EA353 .string "SP. DEF$" -gUnknown_085EA35B:: @ 85EA35B +gText_Speed2:: @ 85EA35B .string "SPEED$" -gUnknown_085EA361:: @ 85EA361 +gText_HP4:: @ 85EA361 .string "HP$" + +gUnknown_085EA364:: @ 85EA364 .string "$" -gUnknown_085EA365:: @ 85EA365 +gText_OTSlash:: @ 85EA365 .string "OT/$" -gUnknown_085EA369:: @ 85EA369 +gText_RentalPkmn:: @ 85EA369 .string "RENTAL POKéMON$" -gUnknown_085EA378:: @ 85EA378 +gText_TypeSlash:: @ 85EA378 .string "TYPE/$" -gUnknown_085EA37E:: @ 85EA37E +gText_Power:: @ 85EA37E .string "POWER$" -gUnknown_085EA384:: @ 85EA384 +gText_Accuracy2:: @ 85EA384 .string "ACCURACY$" -gUnknown_085EA38D:: @ 85EA38D +gText_Appeal:: @ 85EA38D .string "APPEAL$" -gUnknown_085EA394:: @ 85EA394 +gText_Jam:: @ 85EA394 .string "JAM$" -gUnknown_085EA398:: @ 85EA398 +gText_Status:: @ 85EA398 .string "STATUS$" -gUnknown_085EA39F:: @ 85EA39F +gText_ExpPoints:: @ 85EA39F .string "EXP. POINTS$" -gUnknown_085EA3AB:: @ 85EA3AB +gText_NextLv:: @ 85EA3AB .string "NEXT LV.$" -gUnknown_085EA3B4:: @ 85EA3B4 +gText_RibbonsVar1:: @ 85EA3B4 .string "RIBBONS: {STR_VAR_1}$" -gUnknown_085EA3C0:: @ 85EA3C0 +gText_EmptyString5:: @ 85EA3C0 .string "$" + +gUnknown_085EA3C1:: @ 85EA3C1 .string "EVENTS$" -gUnknown_085EA3C8:: @ 85EA3C8 +gText_Switch:: @ 85EA3C8 .string "SWITCH$" -gUnknown_085EA3CF:: @ 85EA3CF +gText_PkmnInfo:: @ 85EA3CF .string "POKéMON INFO$" -gUnknown_085EA3DC:: @ 85EA3DC +gText_PkmnSkills:: @ 85EA3DC .string "POKéMON SKILLS$" -gUnknown_085EA3EB:: @ 85EA3EB +gText_BattleMoves:: @ 85EA3EB .string "BATTLE MOVES$" -gUnknown_085EA3F8:: @ 85EA3F8 +gText_ContestMoves:: @ 85EA3F8 .string "C0NTEST MOVES$" -gUnknown_085EA406:: @ 85EA406 +gText_Info:: @ 85EA406 .string "INFO$" -gUnknown_085EA40B:: @ 85EA40B +gText_EggWillTakeALongTime:: @ 85EA40B .string "It looks like this EGG will\ntake a long time to hatch.$" -gUnknown_085EA442:: @ 85EA442 +gText_EggWillTakeSomeTime:: @ 85EA442 .string "What will hatch from this?\nIt will take some time.$" -gUnknown_085EA475:: @ 85EA475 +gText_EggWillHatchSoon:: @ 85EA475 .string "It moves occasionally.\nIt should hatch soon.$" -gUnknown_085EA4A2:: @ 85EA4A2 +gText_EggAboutToHatch:: @ 85EA4A2 .string "It’s making sounds.\nIt’s about to hatch!$" -gUnknown_085EA4CB:: @ 85EA4CB +gText_HMMovesCantBeForgotten2:: @ 85EA4CB .string "HM moves can’t be\nforgotten now.$" -gUnknown_085EA4EC:: @ 85EA4EC +gText_XNatureMetAtYZ:: @ 85EA4EC .string "{SPECIAL_F7 0x00}{SPECIAL_F7 0x02}{SPECIAL_F7 0x01}{SPECIAL_F7 0x05} nature,\nmet at {UNK_CTRL_F905}{SPECIAL_F7 0x00}{SPECIAL_F7 0x03}{SPECIAL_F7 0x01},\n{SPECIAL_F7 0x00}{SPECIAL_F7 0x04}{SPECIAL_F7 0x01}.$" -gUnknown_085EA516:: @ 85EA516 +gText_XNatureHatchedAtYZ:: @ 85EA516 .string "{SPECIAL_F7 0x00}{SPECIAL_F7 0x02}{SPECIAL_F7 0x01}{SPECIAL_F7 0x05} nature,\nhatched at {UNK_CTRL_F905}{SPECIAL_F7 0x00}{SPECIAL_F7 0x03}{SPECIAL_F7 0x01},\n{SPECIAL_F7 0x00}{SPECIAL_F7 0x04}{SPECIAL_F7 0x01}.$" -gUnknown_085EA544:: @ 85EA544 +gText_XNatureObtainedInTrade:: @ 85EA544 .string "{SPECIAL_F7 0x00}{SPECIAL_F7 0x02}{SPECIAL_F7 0x01}{SPECIAL_F7 0x05} nature,\nobtained in a trade.$" -gUnknown_085EA56A:: @ 85EA56A +gText_XNatureFatefulEncounter:: @ 85EA56A .string "{SPECIAL_F7 0x00}{SPECIAL_F7 0x02}{SPECIAL_F7 0x01}{SPECIAL_F7 0x05} nature,\nobtained in a fateful\nencounter at {UNK_CTRL_F905}{SPECIAL_F7 0x00}{SPECIAL_F7 0x03}{SPECIAL_F7 0x01}.$" -gUnknown_085EA5A8:: @ 85EA5A8 +gText_XNatureProbablyMetAt:: @ 85EA5A8 .string "{SPECIAL_F7 0x00}{SPECIAL_F7 0x02}{SPECIAL_F7 0x01}{SPECIAL_F7 0x05} nature,\nprobably met at {UNK_CTRL_F905}{SPECIAL_F7 0x00}{SPECIAL_F7 0x03}{SPECIAL_F7 0x01},\n{SPECIAL_F7 0x00}{SPECIAL_F7 0x04}{SPECIAL_F7 0x01}.$" -gUnknown_085EA5DB:: @ 85EA5DB +gText_XNature:: @ 85EA5DB .string "{SPECIAL_F7 0x00}{SPECIAL_F7 0x02}{SPECIAL_F7 0x01}{SPECIAL_F7 0x05} nature$" -gUnknown_085EA5EB:: @ 85EA5EB +gText_XNatureMetSomewhereAt:: @ 85EA5EB .string "{SPECIAL_F7 0x00}{SPECIAL_F7 0x02}{SPECIAL_F7 0x01}{SPECIAL_F7 0x05} nature,\nmet somewhere at {UNK_CTRL_F905}{SPECIAL_F7 0x00}{SPECIAL_F7 0x03}{SPECIAL_F7 0x01}.$" -gUnknown_085EA617:: @ 85EA617 +gText_XNatureHatchedSomewhereAt:: @ 85EA617 .string "{SPECIAL_F7 0x00}{SPECIAL_F7 0x02}{SPECIAL_F7 0x01}{SPECIAL_F7 0x05} nature,\nhatched somewhere at {UNK_CTRL_F905}{SPECIAL_F7 0x00}{SPECIAL_F7 0x03}{SPECIAL_F7 0x01}.$" -gUnknown_085EA647:: @ 85EA647 +gText_OddEggFoundByCouple:: @ 85EA647 .string "An odd POKéMON EGG found\nby the DAY CARE couple.$" -gUnknown_085EA678:: @ 85EA678 +gText_PeculiarEggNicePlace:: @ 85EA678 .string "A peculiar POKéMON EGG\nobtained at the nice place.$" -gUnknown_085EA6AB:: @ 85EA6AB +gText_PeculiarEggTrade:: @ 85EA6AB .string "A peculiar POKéMON EGG\nobtained in a trade.$" -gUnknown_085EA6D7:: @ 85EA6D7 +gText_EggFromHotSprings:: @ 85EA6D7 .string "A POKéMON EGG obtained\nat the hot springs.$" -gUnknown_085EA702:: @ 85EA702 +gText_EggFromTraveler:: @ 85EA702 .string "An odd POKéMON EGG\nobtained from a traveler.$" -gUnknown_085EA72F:: @ 85EA72F +gText_ApostropheSBase:: @ 85EA72F .string "’s BASE$" -gUnknown_085EA737:: @ 85EA737 +gText_OkayToDeleteFromRegistry:: @ 85EA737 .string "Is it okay to delete {STR_VAR_1}\nfrom the REGISTRY?$" -gUnknown_085EA762:: @ 85EA762 +gText_RegisteredDataDeleted:: @ 85EA762 .string "The registered data was deleted.{PAUSE_UNTIL_PRESS}$" -gUnknown_085EA785:: @ 85EA785 +gText_NoRegistry:: @ 85EA785 .string "There is no REGISTRY.{PAUSE_UNTIL_PRESS}$" + +gUnknown_085EA79D:: @ 85EA79D .string "DEL REGIST.$" + +gUnknown_085EA7A9:: @ 85EA7A9 .string "{STR_VAR_3}{STR_VAR_1}/{STR_VAR_2}$" + +gUnknown_085EA7B1:: @ 85EA7B1 .string "DECORATE$" + +gUnknown_085EA7BA:: @ 85EA7BA .string "PUT AWAY$" + +gUnknown_085EA7C3:: @ 85EA7C3 .string "TOSS$" -gUnknown_085EA7C8:: @ 85EA7C8 +gText_Color161Shadow161:: @ 85EA7C8 .string "{COLOR 161}{SHADOW 161}$" + +gUnknown_085EA7CF:: @ 85EA7CF .string "Put out the selected decoration item.$" + +gUnknown_085EA7F5:: @ 85EA7F5 .string "Store the chosen decoration in the PC.$" + +gUnknown_085EA81C:: @ 85EA81C .string "Throw away unwanted decorations.$" -gUnknown_085EA83D:: @ 85EA83D +gText_NoDecorations:: @ 85EA83D .string "There are no decorations.{PAUSE_UNTIL_PRESS}$" + +gUnknown_085EA859:: @ 85EA859 .string "DESK$" + +gUnknown_085EA85E:: @ 85EA85E .string "CHAIR$" + +gUnknown_085EA864:: @ 85EA864 .string "PLANT$" + +gUnknown_085EA86A:: @ 85EA86A .string "ORNAMENT$" + +gUnknown_085EA873:: @ 85EA873 .string "MAT$" + +gUnknown_085EA877:: @ 85EA877 .string "POSTER$" + +gUnknown_085EA87E:: @ 85EA87E .string "DOLL$" + +gUnknown_085EA883:: @ 85EA883 .string "CUSHION$" -gUnknown_085EA88B:: @ 85EA88B +gText_Gold:: @ 85EA88B .string "GOLD$" -gUnknown_085EA890:: @ 85EA890 +gText_Silver:: @ 85EA890 .string "SILVER$" -gUnknown_085EA897:: @ 85EA897 +gText_PlaceItHere:: @ 85EA897 .string "Place it here?$" -gUnknown_085EA8A6:: @ 85EA8A6 +gText_CantBePlacedHere:: @ 85EA8A6 .string "It can’t be placed here.$" -gUnknown_085EA8BF:: @ 85EA8BF +gText_CancelDecorating:: @ 85EA8BF .string "Cancel decorating?$" -gUnknown_085EA8D2:: @ 85EA8D2 +gText_InUseAlready:: @ 85EA8D2 .string "This is in use already.$" -gUnknown_085EA8EA:: @ 85EA8EA +gText_NoMoreDecorations:: @ 85EA8EA .string "No more decorations can be placed.\nThe most that can be placed are {STR_VAR_1}.$" -gUnknown_085EA931:: @ 85EA931 +gText_NoMoreDecorations2:: @ 85EA931 .string "No more decorations can be placed.\nThe most that can be placed are {STR_VAR_1}.$" + +gUnknown_085EA978:: @ 85EA978 .string "This can’t be placed here.\nIt must be on a DESK, etc.$" -gUnknown_085EA9AE:: @ 85EA9AE +gText_CantPlaceInRoom:: @ 85EA9AE .string "This decoration can’t be placed in\nyour own room.$" -gUnknown_085EA9E0:: @ 85EA9E0 +gText_CantThrowAwayInUse:: @ 85EA9E0 .string "This decoration is in use.\nIt can’t be thrown away.$" -gUnknown_085EAA14:: @ 85EAA14 +gText_DecorationWillBeDiscarded:: @ 85EAA14 .string "This {STR_VAR_1} will be discarded.\nIs that okay?$" -gUnknown_085EAA3D:: @ 85EAA3D +gText_DecorationThrownAway:: @ 85EAA3D .string "The decoration item was thrown away.$" -gUnknown_085EAA62:: @ 85EAA62 +gText_StopPuttingAwayDecorations:: @ 85EAA62 .string "Stop putting away decorations?$" -gUnknown_085EAA81:: @ 85EAA81 +gText_NoDecorationHere:: @ 85EAA81 .string "There is no decoration item here.$" -gUnknown_085EAAA3:: @ 85EAAA3 +gText_ReturnDecorationToPC:: @ 85EAAA3 .string "Return this decoration to the PC?$" -gUnknown_085EAAC5:: @ 85EAAC5 +gText_DecorationReturnedToPC:: @ 85EAAC5 .string "The decoration was returned to the PC.$" -gUnknown_085EAAEC:: @ 85EAAEC +gText_NoDecorationsInUse:: @ 85EAAEC .string "There are no decorations in use.{PAUSE_UNTIL_PRESS}$" + +gUnknown_085EAB0F:: @ 85EAB0F .string "TRISTAN$" + +gUnknown_085EAB17:: @ 85EAB17 .string "PHILIP$" + +gUnknown_085EAB1E:: @ 85EAB1E .string "DENNIS$" + +gUnknown_085EAB25:: @ 85EAB25 .string "ROBERTO$" + +gText_TurnOff:: @ 85EAB2D .string "TURN OFF$" + +gText_Decoration:: @ 85EAB36 .string "DECORATION$" + +gText_ItemStorage:: @ 85EAB41 .string "ITEM STORAGE$" -gUnknown_085EAB4E:: @ 85EAB4E +gText_Mailbox:: @ 85EAB4E .string "MAILBOX$" + +gText_DepositItem:: @ 85EAB56 .string "DEPOSIT ITEM$" -gUnknown_085EAB63:: @ 85EAB63 +gText_WithdrawItem:: @ 85EAB63 .string "WITHDRAW ITEM$" -gUnknown_085EAB71:: @ 85EAB71 +gText_TossItem:: @ 85EAB71 .string "TOSS ITEM$" + +gText_StoreItemsInPC:: @ 85EAB7B .string "Store items in the PC.$" + +gText_TakeOutItemsFromPC:: @ 85EAB92 .string "Take out items from the PC.$" + +gText_ThrowAwayItemsInPC:: @ 85EABAE .string "Throw away items stored in the PC.$" -gUnknown_085EABD1:: @ 85EABD1 +gText_NoItems:: @ 85EABD1 .string "There are no items.{PAUSE_UNTIL_PRESS}$" -gUnknown_085EABE7:: @ 85EABE7 +gText_NoRoomInBag:: @ 85EABE7 .string "There is no more\nroom in the BAG.$" -gUnknown_085EAC09:: @ 85EAC09 +gText_WithdrawHowManyItems:: @ 85EAC09 .string "Withdraw how many\n{STR_VAR_1}(s)?$" -gUnknown_085EAC22:: @ 85EAC22 +gText_WithdrawXItems:: @ 85EAC22 .string "Withdrew {STR_VAR_2}\n{STR_VAR_1}(s).$" + +gText_Read:: @ 85EAC35 .string "READ$" + +gText_MoveToBag:: @ 85EAC3A .string "MOVE TO BAG$" + +gText_Give2:: @ 85EAC46 .string "GIVE$" -gUnknown_085EAC4B:: @ 85EAC4B +gText_NoMailHere:: @ 85EAC4B .string "There’s no MAIL here.{PAUSE_UNTIL_PRESS}$" -gUnknown_085EAC63:: @ 85EAC63 +gText_WhatToDoWithVar1sMail:: @ 85EAC63 .string "What would you like to do with\n{STR_VAR_1}’s MAIL?$" -gUnknown_085EAC8D:: @ 85EAC8D +gText_MessageWillBeLost:: @ 85EAC8D .string "The message will be lost.\nIs that okay?$" -gUnknown_085EACB5:: @ 85EACB5 +gText_BagIsFull:: @ 85EACB5 .string "The BAG is full.{PAUSE_UNTIL_PRESS}$" -gUnknown_085EACC8:: @ 85EACC8 +gText_MailToBagMessageErased:: @ 85EACC8 .string "The MAIL was returned to the BAG\nwith its message erased.{PAUSE_UNTIL_PRESS}$" -gUnknown_085EAD04:: @ 85EAD04 +gText_Dad:: @ 85EAD04 .string "DAD$" -gUnknown_085EAD08:: @ 85EAD08 +gText_Mom:: @ 85EAD08 .string "MOM$" -gUnknown_085EAD0C:: @ 85EAD0C +gText_Wallace:: @ 85EAD0C .string "WALLACE$" -gUnknown_085EAD14:: @ 85EAD14 +gText_Steven:: @ 85EAD14 .string "STEVEN$" -gUnknown_085EAD1B:: @ 85EAD1B +gText_Brawly:: @ 85EAD1B .string "BRAWLY$" -gUnknown_085EAD22:: @ 85EAD22 +gText_Winona:: @ 85EAD22 .string "WINONA$" -gUnknown_085EAD29:: @ 85EAD29 +gText_Phoebe:: @ 85EAD29 .string "PHOEBE$" -gUnknown_085EAD30:: @ 85EAD30 +gText_Glacia:: @ 85EAD30 .string "GLACIA$" + +gUnknown_085EAD37:: @ 85EAD37 .string "PETALBURG$" + +gUnknown_085EAD41:: @ 85EAD41 .string "SLATEPORT$" + +gUnknown_085EAD4B:: @ 85EAD4B .string "LITTLEROOT$" + +gUnknown_085EAD56:: @ 85EAD56 .string "LILYCOVE$" + +gUnknown_085EAD5F:: @ 85EAD5F .string "DEWFORD$" + +gUnknown_085EAD67:: @ 85EAD67 .string "ENTER$" + +gUnknown_085EAD6D:: @ 85EAD6D .string "INFO$" + +gUnknown_085EAD72:: @ 85EAD72 .string "What’s a CONTEST?$" + +gUnknown_085EAD84:: @ 85EAD84 .string "Types of CONTESTS$" + +gUnknown_085EAD96:: @ 85EAD96 .string "Ranks$" + +gUnknown_085EAD9C:: @ 85EAD9C .string "Judging$" + +gUnknown_085EADA4:: .string "COOLNESS CONTEST$" + +gUnknown_085EADB5:: .string "BEAUTY CONTEST$" + +gUnknown_085EADC4:: .string "CUTENESS CONTEST$" + +gUnknown_085EADD5:: .string "SMARTNESS CONTEST$" + +gUnknown_085EADE7:: .string "TOUGHNESS CONTEST$" + +gUnknown_085EADF9:: @ 85EADF9 .string "DECORATION$" + +gUnknown_085EAE04:: @ 85EAE04 .string "PACK UP$" + +gUnknown_085EAE0C:: @ 85EAE0C .string "COUNT$" + +gUnknown_085EAE12:: @ 85EAE12 .string "REGISTRY$" + +gUnknown_085EAE1B:: @ 85EAE1B .string "INFORMATION$" + +gUnknown_085EAE27:: @ 85EAE27 .string "MACH$" + +gUnknown_085EAE2C:: @ 85EAE2C .string "ACRO$" + +gUnknown_085EAE31:: @ 85EAE31 .string "PSN$" + +gUnknown_085EAE35:: @ 85EAE35 .string "PAR$" + +gUnknown_085EAE39:: @ 85EAE39 .string "SLP$" + +gUnknown_085EAE3D:: @ 85EAE3D .string "BRN$" + +gUnknown_085EAE41:: @ 85EAE41 .string "FRZ$" + +gUnknown_085EAE45:: @ 85EAE45 .string "TOXIC$" + +gUnknown_085EAE4B:: @ 85EAE4B .string "OK$" + +gUnknown_085EAE4E:: @ 85EAE4E .string "QUIT$" + +gUnknown_085EAE53:: @ 85EAE53 .string "Saw it$" + +gUnknown_085EAE5A:: @ 85EAE5A .string "Not yet$" -gUnknown_085EAE62:: @ 85EAE62 +gText_Yes:: @ 85EAE62 .string "YES$" -gUnknown_085EAE66:: @ 85EAE66 +gText_No:: @ 85EAE66 .string "NO$" - .string "INFO$" - .string "SINGLE BATTLE$" - .string "DOUBLE BATTLE$" - .string "MULTI BATTLE$" - .string "MR. BRINEY$" - .string "CHALLENGE$" + +gUnknown_085EAE69:: @ 85EAE69 .string "INFO$" -gUnknown_085EAEB1:: @ 85EAEB1 +gUnknown_085EAE6E:: @ 85EAE6E + .string "SINGLE BATTLE$" + +gUnknown_085EAE7C:: @ 85EAE7C + .string "DOUBLE BATTLE$" + +gUnknown_085EAE8A:: @ 85EAE8A + .string "MULTI BATTLE$" + +gUnknown_085EAE97:: @ 85EAE97 + .string "MR. BRINEY$" + +gUnknown_085EAEA2:: @ 85EAEA2 + .string "CHALLENGE$" + +gUnknown_085EAEAC:: @ 85EAEAC + .string "INFO$" + +gText_Lv50:: @ 85EAEB1 .string "LV. 50$" -gUnknown_085EAEB8:: @ 85EAEB8 +gText_OpenLevel:: @ 85EAEB8 .string "OPEN LEVEL$" + +gUnknown_085EAEC3:: @ 85EAEC3 .string "FRESH WATER{CLEAR_TO 0x48}¥200$" + +gUnknown_085EAED6:: @ 85EAED6 .string "SODA POP{CLEAR_TO 0x48}¥300$" + +gUnknown_085EAEE6:: @ 85EAEE6 .string "LEMONADE{CLEAR_TO 0x48}¥350$" + +gUnknown_085EAEF6:: @ 85EAEF6 .string "HOW TO RIDE$" + +gUnknown_085EAF02:: @ 85EAF02 .string "HOW TO TURN$" + +gUnknown_085EAF0E:: @ 85EAF0E .string "SANDY SLOPES$" + +gUnknown_085EAF1B:: @ 85EAF1B .string "WHEELIES$" + +gUnknown_085EAF24:: @ 85EAF24 .string "BUNNY-HOPS$" + +gUnknown_085EAF2F:: @ 85EAF2F .string "JUMP$" + +gUnknown_085EAF34:: @ 85EAF34 .string "Satisfied$" + +gUnknown_085EAF3E:: @ 85EAF3E .string "Dissatisfied$" + +gUnknown_085EAF4B:: @ 85EAF4B .string "DEEPSEATOOTH$" + +gUnknown_085EAF58:: @ 85EAF58 .string "DEEPSEASCALE$" + +gUnknown_085EAF65:: @ 85EAF65 .string "BLUE FLUTE$" + +gUnknown_085EAF70:: @ 85EAF70 .string "YELLOW FLUTE$" + +gUnknown_085EAF7D:: @ 85EAF7D .string "RED FLUTE$" + +gUnknown_085EAF87:: @ 85EAF87 .string "WHITE FLUTE$" + +gUnknown_085EAF93:: @ 85EAF93 .string "BLACK FLUTE$" + +gUnknown_085EAF9F:: @ 85EAF9F .string "GLASS CHAIR$" + +gUnknown_085EAFAB:: @ 85EAFAB .string "GLASS DESK$" + +gUnknown_085EAFB6:: @ 85EAFB6 .string "TREECKO DOLL 1,000 COINS$" + +gUnknown_085EAFCF:: @ 85EAFCF .string "TORCHIC DOLL 1,000 COINS$" + +gUnknown_085EAFE8:: @ 85EAFE8 .string "MUDKIP DOLL 1,000 COINS$" + +gUnknown_085EB002:: @ 85EB002 .string " 50 COINS ¥1,000$" + +gUnknown_085EB017:: @ 85EB017 .string "500 COINS ¥10,000$" + +gUnknown_085EB02A:: @ 85EB02A .string "Excellent$" + +gUnknown_085EB034:: @ 85EB034 .string "Not so good$" + +gUnknown_085EB040:: @ 85EB040 .string "RED SHARD$" + +gUnknown_085EB04A:: @ 85EB04A .string "YELLOW SHARD$" + +gUnknown_085EB057:: @ 85EB057 .string "BLUE SHARD$" + +gUnknown_085EB062:: @ 85EB062 .string "GREEN SHARD$" + +gUnknown_085EB06E:: @ 85EB06E .string "BATTLE FRONTIER$" + +gUnknown_085EB07E:: @ 85EB07E .string "Right$" + +gUnknown_085EB084:: @ 85EB084 .string "Left$" + +gUnknown_085EB089:: @ 85EB089 .string "TM32{CLEAR_TO 0x48}1,500 COINS$" + +gUnknown_085EB09C:: @ 85EB09C .string "TM29{CLEAR_TO 0x48}3,500 COINS$" + +gUnknown_085EB0AF:: @ 85EB0AF .string "TM35{CLEAR_TO 0x48}4,000 COINS$" + +gUnknown_085EB0C2:: @ 85EB0C2 .string "TM24{CLEAR_TO 0x48}4,000 COINS$" + +gUnknown_085EB0D5:: @ 85EB0D5 .string "TM13{CLEAR_TO 0x48}4,000 COINS$" -gUnknown_085EB0E8:: @ 85EB0E8 +gText_Cool:: @ 85EB0E8 .string "COOL$" -gUnknown_085EB0ED:: @ 85EB0ED +gText_Beauty:: @ 85EB0ED .string "BEAUTY$" -gUnknown_085EB0F4:: @ 85EB0F4 +gText_Cute:: @ 85EB0F4 .string "CUTE$" -gUnknown_085EB0F9:: @ 85EB0F9 +gText_Smart:: @ 85EB0F9 .string "SMART$" -gUnknown_085EB0FF:: @ 85EB0FF +gText_Tough:: @ 85EB0FF .string "TOUGH$" + +gUnknown_085EB105:: @ 85EB105 .string "NORMAL$" + +gUnknown_085EB10C:: @ 85EB10C .string "SUPER$" + +gUnknown_085EB112:: @ 85EB112 .string "HYPER$" + +gUnknown_085EB118:: @ 85EB118 .string "MASTER$" + +gUnknown_085EB11F:: @ 85EB11F .string "COOL$" + +gUnknown_085EB124:: @ 85EB124 .string "BEAUTY$" + +gUnknown_085EB12B:: @ 85EB12B .string "CUTE$" + +gUnknown_085EB130:: @ 85EB130 .string "SMART$" + +gUnknown_085EB136:: @ 85EB136 .string "TOUGH$" + +gUnknown_085EB13C:: @ 85EB13C .string "ITEMS$" + +gUnknown_085EB142:: @ 85EB142 .string "KEY ITEMS$" + +gUnknown_085EB14C:: @ 85EB14C .string "POKé BALLS$" + +gUnknown_085EB157:: @ 85EB157 .string "TMs & HMs$" + +gUnknown_085EB161:: @ 85EB161 .string "BERRIES$" -gUnknown_085EB169:: @ 85EB169 +gText_SomeonesPC:: @ 85EB169 .string "SOMEONE’S PC$" -gUnknown_085EB176:: @ 85EB176 +gText_LanettesPC:: @ 85EB176 .string "LANETTE’S PC$" -gUnknown_085EB183:: @ 85EB183 +gText_PlayersPC:: @ 85EB183 .string "{PLAYER}’s PC$" -gUnknown_085EB18B:: @ 85EB18B +gText_HallOfFame:: @ 85EB18B .string "HALL OF FAME$" -gUnknown_085EB198:: @ 85EB198 +gText_LogOff:: @ 85EB198 .string "LOG OFF$" + +gUnknown_085EB1A0:: @ 85EB1A0 .string "OPPONENT$" + +gUnknown_085EB1A9:: @ 85EB1A9 .string "TOURNEY TREE$" + +gUnknown_085EB1B6:: @ 85EB1B6 .string "READY TO START$" + +gUnknown_085EB1C5:: @ 85EB1C5 .string "NORMAL RANK$" + +gUnknown_085EB1D1:: @ 85EB1D1 .string "SUPER RANK$" + +gUnknown_085EB1DC:: @ 85EB1DC .string "HYPER RANK$" + +gUnknown_085EB1E7:: @ 85EB1E7 .string "MASTER RANK$" + +gUnknown_085EB1F3:: @ 85EB1F3 .string "SINGLE$" + +gUnknown_085EB1FA:: @ 85EB1FA .string "DOUBLE$" + +gUnknown_085EB201:: @ 85EB201 .string "MULTI$" + +gUnknown_085EB207:: @ 85EB207 .string "MULTI-LINK$" + +gUnknown_085EB212:: @ 85EB212 .string "BATTLE BAG$" + +gUnknown_085EB21D:: @ 85EB21D .string "HELD ITEM$" + +gUnknown_085EB227:: @ 85EB227 .string "LINK CONTEST$" + +gUnknown_085EB234:: @ 85EB234 .string "ABOUT E-MODE$" + +gUnknown_085EB241:: @ 85EB241 .string "ABOUT G-MODE$" + +gUnknown_085EB24E:: @ 85EB24E .string "E-MODE$" + +gUnknown_085EB255:: @ 85EB255 .string "G-MODE$" -gUnknown_085EB25C:: @ 85EB25C +gText_MenuOptionPokedex:: @ 85EB25C .string "POKéDEX$" -gUnknown_085EB264:: @ 85EB264 +gText_MenuOptionPokemon:: @ 85EB264 .string "POKéMON$" -gUnknown_085EB26C:: @ 85EB26C +gText_MenuOptionBag:: @ 85EB26C .string "BAG$" -gUnknown_085EB270:: @ 85EB270 +gText_MenuOptionPokenav:: @ 85EB270 .string "POKéNAV$" + +gUnknown_085EB278:: @ 85EB278 .string "$" -gUnknown_085EB279:: @ 85EB279 +gText_MenuOptionSave:: @ 85EB279 .string "SAVE$" -gUnknown_085EB27E:: @ 85EB27E +gText_MenuOptionOption:: @ 85EB27E .string "OPTION$" -gUnknown_085EB285:: @ 85EB285 +gText_MenuOptionExit:: @ 85EB285 .string "EXIT$" - .string " 5BP$" + +gUnknown_085EB28A:: @ 85EB28A + .string " " + +gUnknown_085EB28C:: @ 85EB28C + .string "5BP$" + +gUnknown_085EB290:: @ 85EB290 .string "10BP$" + +gUnknown_085EB295:: @ 85EB295 .string "15BP$" + +gUnknown_085EB29A:: @ 85EB29A .string "RED TENT$" + +gUnknown_085EB2A3:: @ 85EB2A3 .string "BLUE TENT$" + +gUnknown_085EB2AD:: @ 85EB2AD .string "SOUTHERN ISLAND$" + +gUnknown_085EB2BD:: @ 85EB2BD .string "BIRTH ISLAND$" + +gUnknown_085EB2CA:: @ 85EB2CA .string "FARAWAY ISLAND$" + +gUnknown_085EB2D9:: @ 85EB2D9 .string "NAVEL ROCK$" + +gUnknown_085EB2E4:: @ 85EB2E4 .string "CLAW FOSSIL$" + +gUnknown_085EB2F0:: @ 85EB2F0 .string "ROOT FOSSIL$" + +gUnknown_085EB2FC:: @ 85EB2FC .string "NO$" + +gUnknown_085EB2FF:: @ 85EB2FF .string "I’ll battle now!$" + +gUnknown_085EB310:: @ 85EB310 .string "I won!$" + +gUnknown_085EB317:: @ 85EB317 .string "I lost!$" + +gUnknown_085EB31F:: @ 85EB31F .string "I won’t tell.$" + +gUnknown_085EB32D:: @ 85EB32D .string "NORMAL TAG MATCH$" + +gUnknown_085EB33E:: @ 85EB33E .string "VARIETY TAG MATCH$" + +gUnknown_085EB350:: @ 85EB350 .string "UNIQUE TAG MATCH$" + +gUnknown_085EB361:: @ 85EB361 .string "EXPERT TAG MATCH$" + +gUnknown_085EB372:: @ 85EB372 .string "TRADE CENTER$" + +gUnknown_085EB37F:: @ 85EB37F .string "COLOSSEUM$" + +gUnknown_085EB389:: @ 85EB389 .string "RECORD CORNER$" + +gUnknown_085EB397:: @ 85EB397 .string "BERRY CRUSH$" + +gUnknown_085EB3A3:: @ 85EB3A3 .string "$" + +gUnknown_085EB3A4:: @ 85EB3A4 .string "POKéMON JUMP$" + +gUnknown_085EB3B1:: @ 85EB3B1 .string "DODRIO BERRY-PICKING$" + +gUnknown_085EB3C6:: @ 85EB3C6 .string "BECOME LEADER$" + +gUnknown_085EB3D4:: @ 85EB3D4 .string "JOIN GROUP$" + +gUnknown_085EB3DF:: @ 85EB3DF .string "TWO STYLES$" + +gUnknown_085EB3EA:: @ 85EB3EA .string "LV. 50$" + +gUnknown_085EB3F1:: @ 85EB3F1 .string "OPEN LEVEL$" + +gUnknown_085EB3FC:: @ 85EB3FC .string "{PKMN} TYPE & NO.$" + +gUnknown_085EB40A:: @ 85EB40A .string "HOLD ITEMS$" + +gUnknown_085EB415:: @ 85EB415 .string "SYMBOLS$" + +gUnknown_085EB41D:: @ 85EB41D .string "RECORD$" + +gUnknown_085EB424:: @ 85EB424 .string "BATTLE PTS$" + +gUnknown_085EB42F:: @ 85EB42F .string "TOWER INFO$" + +gUnknown_085EB43A:: @ 85EB43A .string "BATTLE {PKMN}$" + +gUnknown_085EB444:: @ 85EB444 .string "BATTLE SALON$" + +gUnknown_085EB451:: @ 85EB451 .string "MULTI-LINK$" + +gUnknown_085EB45C:: @ 85EB45C .string "BATTLE RULES$" + +gUnknown_085EB469:: @ 85EB469 .string "JUDGE: MIND$" + +gUnknown_085EB475:: @ 85EB475 .string "JUDGE: SKILL$" + +gUnknown_085EB482:: @ 85EB482 .string "JUDGE: BODY$" + +gUnknown_085EB48E:: @ 85EB48E .string "MATCHUP$" + +gUnknown_085EB496:: @ 85EB496 .string "TOURNEY TREE$" + +gUnknown_085EB4A3:: @ 85EB4A3 .string "DOUBLE KO$" + +gUnknown_085EB4AD:: @ 85EB4AD .string "BASIC RULES$" + +gUnknown_085EB4B9:: @ 85EB4B9 .string "SWAP: PARTNER$" + +gUnknown_085EB4C7:: @ 85EB4C7 .string "SWAP: NUMBER$" + +gUnknown_085EB4D4:: @ 85EB4D4 .string "SWAP: NOTES$" + +gUnknown_085EB4E0:: @ 85EB4E0 .string "OPEN LEVEL$" + +gUnknown_085EB4EB:: @ 85EB4EB .string "BATTLE BASICS$" + +gUnknown_085EB4F9:: @ 85EB4F9 .string "POKéMON NATURE$" + +gUnknown_085EB508:: @ 85EB508 .string "POKéMON MOVES$" + +gUnknown_085EB516:: @ 85EB516 .string "UNDERPOWERED$" + +gUnknown_085EB523:: @ 85EB523 .string "WHEN IN DANGER$" + +gUnknown_085EB532:: @ 85EB532 .string "PYRAMID: POKéMON$" + +gUnknown_085EB543:: @ 85EB543 .string "PYRAMID: TRAINERS$" + +gUnknown_085EB555:: @ 85EB555 .string "PYRAMID: MAZE$" + +gUnknown_085EB563:: @ 85EB563 .string "BATTLE BAG$" + +gUnknown_085EB56E:: @ 85EB56E .string "POKéNAV AND BAG$" + +gUnknown_085EB57E:: @ 85EB57E .string "HELD ITEMS$" + +gUnknown_085EB589:: @ 85EB589 .string "POKéMON ORDER$" + +gUnknown_085EB597:: @ 85EB597 .string "BATTLE POKéMON$" + +gUnknown_085EB5A6:: @ 85EB5A6 .string "BATTLE TRAINERS$" + +gUnknown_085EB5B6:: @ 85EB5B6 .string "GO ON$" + +gUnknown_085EB5BC:: @ 85EB5BC .string "RECORD$" + +gUnknown_085EB5C3:: @ 85EB5C3 .string "REST$" + +gUnknown_085EB5C8:: @ 85EB5C8 .string "RETIRE$" -gUnknown_085EB5CF:: @ 85EB5CF +gText_99TimesPlus:: @ 85EB5CF .string "99 times +$" -gUnknown_085EB5DA:: @ 85EB5DA +gText_1MinutePlus:: @ 85EB5DA .string "1 minute +$" -gUnknown_085EB5E5:: @ 85EB5E5 +gText_SpaceSeconds:: @ 85EB5E5 .string " seconds$" -gUnknown_085EB5EE:: @ 85EB5EE +gText_SpaceTimes:: @ 85EB5EE .string " time(s)$" + +gUnknown_085EB5F7:: @ 85EB5F7 .string ".$" -gUnknown_085EB5F9:: @ 85EB5F9 +gText_BigGuy:: @ 85EB5F9 .string "Big guy$" -gUnknown_085EB601:: @ 85EB601 +gText_BigGirl:: @ 85EB601 .string "Big girl$" -gUnknown_085EB60A:: @ 85EB60A +gText_Son:: @ 85EB60A .string "son$" -gUnknown_085EB60E:: @ 85EB60E +gText_Daughter:: @ 85EB60E .string "daughter$" + +gUnknown_085EB617:: @ 85EB617 .string "BLUE FLUTE$" + +gUnknown_085EB622:: @ 85EB622 .string "YELLOW FLUTE$" + +gUnknown_085EB62F:: @ 85EB62F .string "RED FLUTE$" + +gUnknown_085EB639:: @ 85EB639 .string "WHITE FLUTE$" + +gUnknown_085EB645:: @ 85EB645 .string "BLACK FLUTE$" + +gUnknown_085EB651:: @ 85EB651 .string "PRETTY CHAIR$" + +gUnknown_085EB65E:: @ 85EB65E .string "PRETTY DESK$" + +gUnknown_085EB66A:: @ 85EB66A .string "1F$" + +gUnknown_085EB66D:: @ 85EB66D .string "2F$" + +gUnknown_085EB670:: @ 85EB670 .string "3F$" + +gUnknown_085EB673:: @ 85EB673 .string "4F$" + +gUnknown_085EB676:: @ 85EB676 .string "5F$" + +gUnknown_085EB679:: @ 85EB679 .string "6F$" + +gUnknown_085EB67C:: @ 85EB67C .string "7F$" + +gUnknown_085EB67F:: @ 85EB67F .string "8F$" + +gUnknown_085EB682:: @ 85EB682 .string "9F$" + +gUnknown_085EB685:: @ 85EB685 .string "10F$" + +gUnknown_085EB689:: @ 85EB689 .string "11F$" + +gUnknown_085EB68D:: @ 85EB68D .string "B1F$" + +gUnknown_085EB691:: @ 85EB691 .string "B2F$" + +gUnknown_085EB695:: @ 85EB695 .string "B3F$" + +gUnknown_085EB699:: @ 85EB699 .string "B4F$" + +gUnknown_085EB69D:: @ 85EB69D .string "ROOFTOP$" -gUnknown_085EB6A5:: @ 85EB6A5 +gText_ElevatorNowOn:: @ 85EB6A5 .string "Now on:$" -gUnknown_085EB6AD:: @ 85EB6AD +gText_BP:: @ 85EB6AD .string "BP$" + +gUnknown_085EB6B0:: @ 85EB6B0 .string "ENERGYPOWDER{CLEAR_TO 0x72}{SIZE 0}50$" + +gUnknown_085EB6C5:: @ 85EB6C5 .string "ENERGY ROOT{CLEAR_TO 0x72}{SIZE 0}80$" + +gUnknown_085EB6D9:: @ 85EB6D9 .string "HEAL POWDER{CLEAR_TO 0x72}{SIZE 0}50$" + +gUnknown_085EB6ED:: @ 85EB6ED .string "REVIVAL HERB{CLEAR_TO 0x6C}{SIZE 0}300$" + +gUnknown_085EB703:: @ 85EB703 .string "PROTEIN{CLEAR_TO 0x63}{SIZE 0}1,000$" + +gUnknown_085EB716:: @ 85EB716 .string "IRON{CLEAR_TO 0x63}{SIZE 0}1,000$" + +gUnknown_085EB726:: @ 85EB726 .string "CARBOS{CLEAR_TO 0x63}{SIZE 0}1,000$" + +gUnknown_085EB738:: @ 85EB738 .string "CALCIUM{CLEAR_TO 0x63}{SIZE 0}1,000$" + +gUnknown_085EB74B:: @ 85EB74B .string "ZINC{CLEAR_TO 0x63}{SIZE 0}1,000$" + +gUnknown_085EB75B:: @ 85EB75B .string "HP UP{CLEAR_TO 0x63}{SIZE 0}1,000$" + +gUnknown_085EB76C:: @ 85EB76C .string "PP UP{CLEAR_TO 0x63}{SIZE 0}3,000$" + +gUnknown_085EB77D:: @ 85EB77D .string "RANKING HALL$" + +gUnknown_085EB78A:: @ 85EB78A .string "EXCHANGE SERVICE$" + +gUnknown_085EB79B:: @ 85EB79B .string "LILYCOVE CITY$" + +gUnknown_085EB7A9:: @ 85EB7A9 .string "SLATEPORT CITY$" + +gUnknown_085EB7B8:: @ 85EB7B8 .string "CAVE OF ORIGIN$" + +gUnknown_085EB7C7:: @ 85EB7C7 .string "MT. PYRE$" + +gUnknown_085EB7D0:: @ 85EB7D0 .string "SKY PILLAR$" + +gUnknown_085EB7DB:: @ 85EB7DB .string "Don’t remember$" -gUnknown_085EB7EA:: @ 85EB7EA +gText_Exit:: @ 85EB7EA .string "EXIT$" + +gUnknown_085EB7EF:: @ 85EB7EF .string "Exit from the BOX?$" + +gUnknown_085EB802:: @ 85EB802 .string "What do you want to do?$" + +gUnknown_085EB81A:: @ 85EB81A .string "Please pick a theme.$" + +gUnknown_085EB82F:: @ 85EB82F .string "Pick the wallpaper.$" + +gUnknown_085EB843:: @ 85EB843 .string "{SPECIAL_F7 0x00} is selected.$" + +gUnknown_085EB853:: @ 85EB853 .string "Jump to which BOX?$" + +gUnknown_085EB866:: @ 85EB866 .string "Deposit in which BOX?$" + +gUnknown_085EB87C:: @ 85EB87C .string "{SPECIAL_F7 0x00} was deposited.$" + +gUnknown_085EB88E:: @ 85EB88E .string "The BOX is full.$" + +gUnknown_085EB89F:: @ 85EB89F .string "Release this POKéMON?$" + +gUnknown_085EB8B5:: @ 85EB8B5 .string "{SPECIAL_F7 0x00} was released.$" + +gUnknown_085EB8C6:: @ 85EB8C6 .string "Bye-bye, {SPECIAL_F7 0x00}!$" + +gUnknown_085EB8D3:: @ 85EB8D3 .string "Mark your POKéMON.$" + +gUnknown_085EB8E6:: @ 85EB8E6 .string "That’s your last POKéMON!$" + +gUnknown_085EB900:: @ 85EB900 .string "Your party’s full!$" + +gUnknown_085EB913:: @ 85EB913 .string "You’re holding a POKéMON!$" + +gUnknown_085EB92D:: @ 85EB92D .string "Which one will you take?$" + +gUnknown_085EB946:: @ 85EB946 .string "You can’t release an EGG.$" + +gUnknown_085EB960:: @ 85EB960 .string "Continue BOX operations?$" + +gUnknown_085EB979:: @ 85EB979 .string "{SPECIAL_F7 0x00} came back!$" + +gUnknown_085EB987:: @ 85EB987 .string "Was it worried about you?$" + +gUnknown_085EB9A1:: @ 85EB9A1 .string "… … … … !$" + +gUnknown_085EB9AB:: @ 85EB9AB .string "Please remove the MAIL.$" + +gUnknown_085EB9C3:: @ 85EB9C3 .string "GIVE to a POKéMON?$" + +gUnknown_085EB9D6:: @ 85EB9D6 .string "Placed item in the BAG.$" + +gUnknown_085EB9EE:: @ 85EB9EE .string "The BAG is full.$" + +gUnknown_085EB9FF:: @ 85EB9FF .string "Put this item in the BAG?$" + +gUnknown_085EBA19:: @ 85EBA19 .string "{SPECIAL_F7 0x00} is now held.$" + +gUnknown_085EBA29:: @ 85EBA29 .string "Changed to {SPECIAL_F7 0x00}.$" + +gUnknown_085EBA38:: @ 85EBA38 .string "MAIL can’t be stored!$" + +gUnknown_085EBA4E:: @ 85EBA4E .string "CANCEL$" + +gUnknown_085EBA55:: @ 85EBA55 .string "STORE$" + +gUnknown_085EBA5B:: @ 85EBA5B .string "WITHDRAW$" + +gUnknown_085EBA64:: @ 85EBA64 .string "SHIFT$" + +gUnknown_085EBA6A:: @ 85EBA6A .string "MOVE$" + +gUnknown_085EBA6F:: @ 85EBA6F .string "PLACE$" + +gUnknown_085EBA75:: @ 85EBA75 .string "SUMMARY$" + +gUnknown_085EBA7D:: @ 85EBA7D .string "RELEASE$" + +gUnknown_085EBA85:: @ 85EBA85 .string "MARK$" + +gUnknown_085EBA8A:: @ 85EBA8A .string "NAME$" + +gUnknown_085EBA8F:: @ 85EBA8F .string "JUMP$" + +gUnknown_085EBA94:: @ 85EBA94 .string "WALLPAPER$" + +gUnknown_085EBA9E:: @ 85EBA9E .string "TAKE$" + +gUnknown_085EBAA3:: @ 85EBAA3 .string "GIVE$" + +gUnknown_085EBAA8:: @ 85EBAA8 .string "SWITCH$" + +gUnknown_085EBAAF:: @ 85EBAAF .string "BAG$" + +gUnknown_085EBAB3:: @ 85EBAB3 .string "INFO$" + +gUnknown_085EBAB8:: @ 85EBAB8 .string "SCENERY 1$" + +gUnknown_085EBAC2:: @ 85EBAC2 .string "SCENERY 2$" + +gUnknown_085EBACC:: @ 85EBACC .string "SCENERY 3$" + +gUnknown_085EBAD6:: @ 85EBAD6 .string "ETCETERA$" + +gUnknown_085EBADF:: @ 85EBADF .string "FRIENDS$" + +gUnknown_085EBAE7:: @ 85EBAE7 .string "FOREST$" + +gUnknown_085EBAEE:: @ 85EBAEE .string "CITY$" + +gUnknown_085EBAF3:: @ 85EBAF3 .string "DESERT$" + +gUnknown_085EBAFA:: @ 85EBAFA .string "SAVANNA$" + +gUnknown_085EBB02:: @ 85EBB02 .string "CRAG$" + +gUnknown_085EBB07:: @ 85EBB07 .string "VOLCANO$" + +gUnknown_085EBB0F:: @ 85EBB0F .string "SNOW$" + +gUnknown_085EBB14:: @ 85EBB14 .string "CAVE$" + +gUnknown_085EBB19:: @ 85EBB19 .string "BEACH$" + +gUnknown_085EBB1F:: @ 85EBB1F .string "SEAFLOOR$" + +gUnknown_085EBB28:: @ 85EBB28 .string "RIVER$" + +gUnknown_085EBB2E:: @ 85EBB2E .string "SKY$" + +gUnknown_085EBB32:: @ 85EBB32 .string "POLKA-DOT$" + +gUnknown_085EBB3C:: @ 85EBB3C .string "POKéCENTER$" + +gUnknown_085EBB47:: @ 85EBB47 .string "MACHINE$" + +gUnknown_085EBB4F:: @ 85EBB4F .string "SIMPLE$" + +gUnknown_085EBB56:: @ 85EBB56 .string "What would you like to do?$" + +gUnknown_085EBB71:: @ 85EBB71 .string "WITHDRAW POKéMON$" + +gUnknown_085EBB82:: @ 85EBB82 .string "DEPOSIT POKéMON$" + +gUnknown_085EBB92:: @ 85EBB92 .string "MOVE POKéMON$" + +gUnknown_085EBB9F:: @ 85EBB9F .string "MOVE ITEMS$" + +gUnknown_085EBBAA:: @ 85EBBAA .string "SEE YA!$" + +gUnknown_085EBBB2:: @ 85EBBB2 .string "Move POKéMON stored in BOXES to\nyour party.$" + +gUnknown_085EBBDE:: @ 85EBBDE .string "Store POKéMON in your party in BOXES.$" + +gUnknown_085EBC04:: @ 85EBC04 .string "Organize the POKéMON in BOXES and\nin your party.$" + +gUnknown_085EBC35:: @ 85EBC35 .string "Move items held by any POKéMON\nin a BOX or your party.$" + +gUnknown_085EBC6C:: @ 85EBC6C .string "Return to the previous menu.$" -gUnknown_085EBC89:: @ 85EBC89 +gText_JustOnePkmn:: @ 85EBC89 .string "There is just one POKéMON with you.$" -gUnknown_085EBCAD:: @ 85EBCAD +gText_PartyFull:: @ 85EBCAD .string "Your party is full!$" -gUnknown_085EBCC1:: @ 85EBCC1 +gText_Box:: @ 85EBCC1 .string "BOX$" + +gUnknown_085EBCC5:: @ 85EBCC5 .string "Check the map of the HOENN region.$" + +gUnknown_085EBCE8:: @ 85EBCE8 .string "Check POKéMON in detail.$" + +gUnknown_085EBD01:: @ 85EBD01 .string "Call a registered TRAINER.$" + +gUnknown_085EBD1C:: @ 85EBD1C .string "Check obtained RIBBONS.$" + +gUnknown_085EBD34:: @ 85EBD34 .string "Put away the POKéNAV.$" -gUnknown_085EBD4A:: @ 85EBD4A +gText_NoRibbonWinners:: @ 85EBD4A .string "There are no RIBBON winners.$" + +gUnknown_085EBD67:: @ 85EBD67 .string "No TRAINERS are registered.$" + +gUnknown_085EBD83:: @ 85EBD83 .string "Check party POKéMON in detail.$" + +gUnknown_085EBDA2:: @ 85EBDA2 .string "Check all POKéMON in detail.$" + +gUnknown_085EBDBF:: @ 85EBDBF .string "Return to the POKéNAV menu.$" + +gUnknown_085EBDDB:: @ 85EBDDB .string "Find cool POKéMON.$" + +gUnknown_085EBDEE:: @ 85EBDEE .string "Find beautiful POKéMON.$" + +gUnknown_085EBE06:: @ 85EBE06 .string "Find cute POKéMON.$" + +gUnknown_085EBE19:: @ 85EBE19 .string "Find smart POKéMON.$" + +gUnknown_085EBE2D:: @ 85EBE2D .string "Find tough POKéMON.$" + +gUnknown_085EBE41:: @ 85EBE41 .string "Return to the CONDITION menu.$" -gUnknown_085EBE5F:: @ 85EBE5F +gText_NumberRegistered:: @ 85EBE5F .string "No. registered$" -gUnknown_085EBE6E:: @ 85EBE6E +gText_NumberOfBattles:: @ 85EBE6E .string "No. of battles$" + +gUnknown_085EBE7D:: @ 85EBE7D .string "DETAIL$" + +gUnknown_085EBE84:: @ 85EBE84 .string "CALL$" + +gUnknown_085EBE89:: @ 85EBE89 .string "EXIT$" + +gUnknown_085EBE8E:: @ 85EBE8E .string "Can’t call opponent here.$" + +gUnknown_085EBEA8:: @ 85EBEA8 .string "STRATEGY$" + +gUnknown_085EBEB1:: @ 85EBEB1 .string "TRAINER’S POKéMON$" + +gUnknown_085EBEC3:: @ 85EBEC3 .string "SELF-INTRODUCTION$" + +gUnknown_085EBED5:: @ 85EBED5 .string "{CLEAR 0x80}$" + +gUnknown_085EBED9:: @ 85EBED9 .string "{UNK_CTRL_F800}ZOOM {UNK_CTRL_F801}CANCEL$" + +gUnknown_085EBEE9:: @ 85EBEE9 .string "{UNK_CTRL_F800}FULL {UNK_CTRL_F801}CANCEL$" + +gUnknown_085EBEF9:: @ 85EBEF9 .string "{UNK_CTRL_F800}CONDITION {UNK_CTRL_F801}CANCEL$" + +gUnknown_085EBF0E:: @ 85EBF0E .string "{UNK_CTRL_F800}MARKINGS {UNK_CTRL_F801}CANCEL$" + +gUnknown_085EBF22:: @ 85EBF22 .string "{UNK_CTRL_F800}SELECT MARK {UNK_CTRL_F801}CANCEL$" + +gUnknown_085EBF39:: @ 85EBF39 .string "{UNK_CTRL_F800}MENU {UNK_CTRL_F801}CANCEL$" + +gUnknown_085EBF49:: @ 85EBF49 .string "{UNK_CTRL_F800}OK {UNK_CTRL_F801}CANCEL$" - .string "{UNK_CTRL_F801}CANCEL$" - .string "{UNK_CTRL_F800}RIBBONS {UNK_CTRL_F801}CANCEL$" - .string "{UNK_CTRL_F800}CHECK {UNK_CTRL_F801}CANCEL$" + +gUnknown_085EBF57:: @ 85EBF57 .string "{UNK_CTRL_F801}CANCEL$" -gUnknown_085EBF8D:: @ 85EBF8D +gUnknown_085EBF60:: @ 85EBF60 + .string "{UNK_CTRL_F800}RIBBONS {UNK_CTRL_F801}CANCEL$" + +gUnknown_085EBF73:: @ 85EBF73 + .string "{UNK_CTRL_F800}CHECK {UNK_CTRL_F801}CANCEL$" + +gUnknown_085EBF84:: @ 85EBF84 + .string "{UNK_CTRL_F801}CANCEL$" + +gText_NatureSlash:: @ 85EBF8D .string "NATURE/$" -gUnknown_085EBF95:: @ 85EBF95 +gText_TrainerCloseBy:: @ 85EBF95 .string "That TRAINER is close by.\nTalk to the TRAINER in person!$" -gUnknown_085EBFCE:: @ 85EBFCE +gText_InParty:: @ 85EBFCE .string "IN PARTY$" -gUnknown_085EBFD7:: @ 85EBFD7 +gText_Number2:: @ 85EBFD7 .string "No. $" + +gUnknown_085EBFDC:: @ 85EBFDC .string "RIBBONS$" + +gUnknown_085EBFE4:: @ 85EBFE4 .string "{SPECIAL_F7 0x00}{COLOR_HIGHLIGHT_SHADOW LIGHT_RED WHITE GREEN}♂{COLOR_HIGHLIGHT_SHADOW DARK_GREY WHITE LIGHT_GREY}/{LV}{SPECIAL_F7 0x01}$" + +gUnknown_085EBFF6:: @ 85EBFF6 .string "{SPECIAL_F7 0x00}{COLOR_HIGHLIGHT_SHADOW LIGHT_GREEN WHITE BLUE}♀{COLOR_HIGHLIGHT_SHADOW DARK_GREY WHITE LIGHT_GREY}/{LV}{SPECIAL_F7 0x01}$" + +gUnknown_085EC008:: @ 85EC008 .string "{SPECIAL_F7 0x00}/{LV}{SPECIAL_F7 0x01}$" -gUnknown_085EC00F:: @ 85EC00F +gText_Unknown:: @ 85EC00F .string "UNKNOWN$" + +gUnknown_085EC017:: @ 85EC017 .string "CALL$" + +gUnknown_085EC01C:: @ 85EC01C .string "CHECK$" + +gUnknown_085EC022:: @ 85EC022 .string "CANCEL$" -gUnknown_085EC029:: @ 85EC029 +gText_NumberF700:: @ 85EC029 .string "No. {SPECIAL_F7 0x00}$" -gUnknown_085EC030:: @ 85EC030 +gText_RibbonsF700:: @ 85EC030 .string "RIBBONS {SPECIAL_F7 0x00}$" + +gUnknown_085EC03B:: @ 85EC03B .string "{SPECIAL_F7 0x00}{COLOR_HIGHLIGHT_SHADOW LIGHT_RED WHITE GREEN}♂{COLOR_HIGHLIGHT_SHADOW DARK_GREY WHITE LIGHT_GREY}/{LV}{SPECIAL_F7 0x01}{SPECIAL_F7 0x02}$" + +gUnknown_085EC04F:: @ 85EC04F .string "{SPECIAL_F7 0x00}{COLOR_HIGHLIGHT_SHADOW LIGHT_GREEN WHITE BLUE}♀{COLOR_HIGHLIGHT_SHADOW DARK_GREY WHITE LIGHT_GREY}/{LV}{SPECIAL_F7 0x01}{SPECIAL_F7 0x02}$" + +gUnknown_085EC063:: @ 85EC063 .string "{SPECIAL_F7 0x00}/{LV}{SPECIAL_F7 0x01}{SPECIAL_F7 0x02}$" + +gUnknown_085EC06C:: @ 85EC06C .string "Combine four words or phrases$" + +gUnknown_085EC08A:: @ 85EC08A .string "and make your profile.$" + +gUnknown_085EC0A1:: @ 85EC0A1 .string "Combine six words or phrases$" + +gUnknown_085EC0BE:: @ 85EC0BE .string "and make a message.$" + +gUnknown_085EC0D2:: @ 85EC0D2 .string "Find words that describe your$" + +gUnknown_085EC0F0:: @ 85EC0F0 .string "feelings right now.$" + +gUnknown_085EC104:: @ 85EC104 .string "With four phrases,$" + +gUnknown_085EC117:: @ 85EC117 .string "Combine nine words or phrases$" + +gUnknown_085EC135:: @ 85EC135 .string "and make a message.$" + +gUnknown_085EC149:: @ 85EC149 .string "Change just one word or phrase$" + +gUnknown_085EC168:: @ 85EC168 .string "and improve the BARD’s song.$" + +gUnknown_085EC185:: @ 85EC185 .string "Your profile$" + +gUnknown_085EC192:: @ 85EC192 .string "Your feeling at the battle’s start$" + +gUnknown_085EC1B5:: @ 85EC1B5 .string "What you say if you win a battle$" + +gUnknown_085EC1D6:: @ 85EC1D6 .string "What you say if you lose a battle$" + +gUnknown_085EC1F8:: @ 85EC1F8 .string "The answer$" + +gUnknown_085EC203:: @ 85EC203 .string "The MAIL message$" + +gUnknown_085EC214:: @ 85EC214 .string "The MAIL salutation$" + +gUnknown_085EC228:: @ 85EC228 .string "The new song$" + +gUnknown_085EC235:: @ 85EC235 .string "Combine two words or phrases$" + +gUnknown_085EC252:: @ 85EC252 .string "and make a trendy saying.$" + +gUnknown_085EC26C:: @ 85EC26C .string "The trendy saying$" + +gUnknown_085EC27E:: @ 85EC27E .string "is as shown. Okay?$" + +gUnknown_085EC291:: @ 85EC291 .string "Combine two words or phrases$" + +gUnknown_085EC2AE:: @ 85EC2AE .string "to teach her a good saying.$" + +gUnknown_085EC2CA:: @ 85EC2CA .string "Find words which fit$" + +gUnknown_085EC2DF:: @ 85EC2DF .string "the TRAINER’s image.$" + +gUnknown_085EC2F4:: @ 85EC2F4 .string "The image:$" + +gUnknown_085EC2FF:: @ 85EC2FF .string "Out of the listed choices,$" + +gUnknown_085EC31A:: @ 85EC31A .string "select the answer to the quiz!$" + +gUnknown_085EC339:: @ 85EC339 .string "and create a quiz!$" + +gUnknown_085EC34C:: @ 85EC34C .string "Pick a word or phrase and$" + +gUnknown_085EC366:: @ 85EC366 .string "set the quiz answer.$" + +gUnknown_085EC37B:: @ 85EC37B .string "The answer:$" + +gUnknown_085EC387:: @ 85EC387 .string "The quiz:$" + +gUnknown_085EC391:: @ 85EC391 .string "Apprentice’s phrase:$" -gUnknown_085EC3A6:: @ 85EC3A6 +gText_QuitEditing:: @ 85EC3A6 .string "Quit editing?$" -gUnknown_085EC3B4:: @ 85EC3B4 +gText_StopGivingPkmnMail:: @ 85EC3B4 .string "Stop giving the POKéMON MAIL?$" + +gUnknown_085EC3D2:: @ 85EC3D2 .string "and fill out the questionnaire.$" + +gUnknown_085EC3F2:: @ 85EC3F2 .string "Let’s reply to the interview!$" -gUnknown_085EC410:: @ 85EC410 +gText_AllTextBeingEditedWill:: @ 85EC410 .string "All the text being edited will$" -gUnknown_085EC42F:: @ 85EC42F +gText_BeDeletedThatOkay:: @ 85EC42F .string "be deleted. Is that okay?$" + +gUnknown_085EC449:: @ 85EC449 .string "Quit editing?$" + +gUnknown_085EC457:: @ 85EC457 .string "The edited text will not be saved.$" + +gUnknown_085EC47A:: @ 85EC47A .string "Is that okay?$" + +gUnknown_085EC488:: @ 85EC488 .string "Please enter a phrase or word.$" + +gUnknown_085EC4A7:: @ 85EC4A7 .string "The entire text can’t be deleted.$" -gUnknown_085EC4C9:: @ 85EC4C9 +gText_OnlyOnePhrase:: @ 85EC4C9 .string "Only one phrase may be changed.$" -gUnknown_085EC4E9:: @ 85EC4E9 +gText_OriginalSongWillBeUsed:: @ 85EC4E9 .string "The original song will be used.$" + +gUnknown_085EC509:: @ 85EC509 .string "That’s trendy already!$" -gUnknown_085EC520:: @ 85EC520 +gText_CombineTwoWordsOrPhrases:: @ 85EC520 .string "Combine two words or phrases.$" + +gUnknown_085EC53E:: @ 85EC53E .string "Quit giving information?$" + +gUnknown_085EC557:: @ 85EC557 .string "Stop giving the POKéMON MAIL?$" + +gUnknown_085EC575:: @ 85EC575 .string "Create a quiz!$" + +gUnknown_085EC584:: @ 85EC584 .string "Set the answer!$" + +gUnknown_085EC594:: @ 85EC594 .string "Cancel the selection?$" + +gUnknown_085EC5AA:: @ 85EC5AA .string "PROFILE$" + +gUnknown_085EC5B2:: @ 85EC5B2 .string "At the battle’s start:$" + +gUnknown_085EC5C9:: @ 85EC5C9 .string "Upon winning a battle:$" + +gUnknown_085EC5E0:: @ 85EC5E0 .string "Upon losing a battle:$" + +gUnknown_085EC5F6:: @ 85EC5F6 .string "The BARD’s Song$" + +gUnknown_085EC606:: @ 85EC606 .string "What’s hip and happening?$" + +gUnknown_085EC620:: @ 85EC620 .string "Interview$" + +gUnknown_085EC62A:: @ 85EC62A .string "Good saying$" + +gUnknown_085EC636:: @ 85EC636 .string "Fan’s question$" + +gUnknown_085EC645:: @ 85EC645 .string "クイズの こたえは?$" @ "kuizuno kotaeha?" ("The quiz's answer is?" in Japanese) + +gUnknown_085EC650:: @ 85EC650 .string "Apprentice’s phrase$" + +gUnknown_085EC664:: @ 85EC664 .string "QUESTIONNAIRE$" -gUnknown_085EC672:: @ 85EC672 +gText_YouCannotQuitHere:: @ 85EC672 .string "You cannot quit here.$" -gUnknown_085EC688:: @ 85EC688 +gText_SectionMustBeCompleted:: @ 85EC688 .string "This section must be completed.$" -gUnknown_085EC6A8:: @ 85EC6A8 +gText_F700sQuiz:: @ 85EC6A8 .string "{SPECIAL_F7 0x00}’s quiz$" -gUnknown_085EC6B2:: @ 85EC6B2 +gText_Lady:: @ 85EC6B2 .string "Lady$" + +gUnknown_085EC6B7:: @ 85EC6B7 .string "After you have read the quiz$" + +gUnknown_085EC6D4:: @ 85EC6D4 .string "question, press the A Button.$" + +gUnknown_085EC6F2:: @ 85EC6F2 .string "The quiz answer is?$" -gUnknown_085EC706:: @ 85EC706 +gText_LikeToQuitQuiz:: @ 85EC706 .string "Would you like to quit this quiz$" -gUnknown_085EC727:: @ 85EC727 +gText_ChallengeQuestionMark:: @ 85EC727 .string "challenge?$" + +gUnknown_085EC732:: @ 85EC732 .string "Is this quiz OK?$" -gUnknown_085EC743:: @ 85EC743 +gText_CreateAQuiz:: @ 85EC743 .string "Create a quiz!$" -gUnknown_085EC752:: @ 85EC752 +gText_SelectTheAnswer:: @ 85EC752 .string "Select the answer!$" -gUnknown_085EC765:: @ 85EC765 +gText_LyricsCantBeDeleted:: @ 85EC765 .string "The lyrics can’t be deleted.$" + +gUnknown_085EC782:: @ 85EC782 .string "POKéMON LEAGUE$" + +gUnknown_085EC791:: @ 85EC791 .string "POKéMON CENTER$" -gUnknown_085EC7A0:: @ 85EC7A0 +gText_GetsAPokeBlockQuestion:: @ 85EC7A0 .string " gets a {POKEBLOCK}?$" + +gUnknown_085EC7AF:: @ 85EC7AF .string "Coolness $" + +gUnknown_085EC7B9:: @ 85EC7B9 .string "Beauty $" + +gUnknown_085EC7C1:: @ 85EC7C1 .string "Cuteness $" + +gUnknown_085EC7CB:: @ 85EC7CB .string "Smartness $" + +gUnknown_085EC7D6:: @ 85EC7D6 .string "Toughness $" -gUnknown_085EC7E1:: @ 85EC7E1 +gText_WasEnhanced:: @ 85EC7E1 .string "was enhanced!$" -gUnknown_085EC7EF:: @ 85EC7EF +gText_NothingChanged:: @ 85EC7EF .string "Nothing changed!$" -gUnknown_085EC800:: @ 85EC800 +gText_WontEatAnymore:: @ 85EC800 .string "It won’t eat anymore…$" -gUnknown_085EC816:: @ 85EC816 +gText_SaveFailedCheckingBackup:: @ 85EC816 .string "Save failed. Checking the backup\nmemory… Please wait.\n{COLOR RED}“Time required: about 1 minute”$" -gUnknown_085EC86F:: @ 85EC86F +gText_BackupMemoryDamaged:: @ 85EC86F .string "The backup memory is damaged, or\nthe internal battery has run dry.\nYou can still play, but not save.$" -gUnknown_085EC8D4:: @ 85EC8D4 +gText_GamePlayCannotBeContinued:: @ 85EC8D4 .string "{COLOR RED}“Game play cannot be continued.\nReturning to the title screen…”$" -gUnknown_085EC917:: @ 85EC917 +gText_CheckCompleted:: @ 85EC917 .string "Check completed.\nAttempting to save again.\nPlease wait.$" -gUnknown_085EC94F:: @ 85EC94F +gText_SaveCompleteGameCannotContinue:: @ 85EC94F .string "Save completed.\n{COLOR RED}“Game play cannot be continued.\nReturning to the title screen.”$" -gUnknown_085EC9A2:: @ 85EC9A2 +gText_SaveCompletePressA:: @ 85EC9A2 .string "Save completed.\n{COLOR RED}“Please press the A Button.”$" -gUnknown_085EC9D2:: @ 85EC9D2 +gText_Ferry:: @ 85EC9D2 .string "FERRY$" -gUnknown_085EC9D8:: @ 85EC9D8 +gText_SecretBase:: @ 85EC9D8 .string "SECRET BASE$" -gUnknown_085EC9E4:: @ 85EC9E4 +gText_Hideout:: @ 85EC9E4 .string "HIDEOUT$" -gUnknown_085EC9EC:: @ 85EC9EC +gText_ResetRTCConfirmCancel:: @ 85EC9EC .string "Reset RTC?\nA: Confirm, B: Cancel$" -gUnknown_085ECA0D:: @ 85ECA0D +gText_PresentTime:: @ 85ECA0D .string "Present time in game$" -gUnknown_085ECA22:: @ 85ECA22 +gText_PreviousTime:: @ 85ECA22 .string "Previous time in game$" -gUnknown_085ECA38:: @ 85ECA38 +gText_PleaseResetTime:: @ 85ECA38 .string "Please reset the time.$" -gUnknown_085ECA4F:: @ 85ECA4F +gText_ClockHasBeenReset:: @ 85ECA4F .string "The clock has been reset.\nData will be saved. Please wait.$" -gUnknown_085ECA8A:: @ 85ECA8A +gText_SaveCompleted:: @ 85ECA8A .string "Save completed.$" -gUnknown_085ECA9A:: @ 85ECA9A +gText_SaveFailed:: @ 85ECA9A .string "Save failed…$" -gUnknown_085ECAA7:: @ 85ECAA7 +gText_NoSaveFileCantSetTime:: @ 85ECAA7 .string "There is no save file, so the time\ncan’t be set.$" -gUnknown_085ECAD8:: @ 85ECAD8 +gText_InGameClockUsable:: @ 85ECAD8 .string "The in-game clock adjustment system\nis now useable.$" -gUnknown_085ECB0C:: @ 85ECB0C +gText_Slots:: @ 85ECB0C .string "SLOTS$" -gUnknown_085ECB12:: @ 85ECB12 +gText_Roulette:: @ 85ECB12 .string "ROULETTE$" -gUnknown_085ECB1B:: @ 85ECB1B +gText_Good:: @ 85ECB1B .string "Good$" -gUnknown_085ECB20:: @ 85ECB20 +gText_VeryGood:: @ 85ECB20 .string "Very good$" -gUnknown_085ECB2A:: @ 85ECB2A +gText_Excellent:: @ 85ECB2A .string "Excellent$" -gUnknown_085ECB34:: @ 85ECB34 +gText_SoSo:: @ 85ECB34 .string "So-so$" -gUnknown_085ECB3A:: @ 85ECB3A +gText_Bad:: @ 85ECB3A .string "Bad$" -gUnknown_085ECB3E:: @ 85ECB3E +gText_TheWorst:: @ 85ECB3E .string "The worst$" -gUnknown_085ECB48:: @ 85ECB48 +gText_Spicy2:: @ 85ECB48 .string "spicy$" -gUnknown_085ECB4E:: @ 85ECB4E +gText_Dry2:: @ 85ECB4E .string "dry$" -gUnknown_085ECB52:: @ 85ECB52 +gText_Sweet2:: @ 85ECB52 .string "sweet$" -gUnknown_085ECB58:: @ 85ECB58 +gText_Bitter2:: @ 85ECB58 .string "bitter$" -gUnknown_085ECB5F:: @ 85ECB5F +gText_Sour2:: @ 85ECB5F .string "sour$" -gUnknown_085ECB64:: @ 85ECB64 +gText_Single:: @ 85ECB64 .string "SINGLE$" -gUnknown_085ECB6B:: @ 85ECB6B +gText_Double:: @ 85ECB6B .string "DOUBLE$" -gUnknown_085ECB72:: @ 85ECB72 +gText_Jackpot:: @ 85ECB72 .string "jackpot$" -gUnknown_085ECB7A:: @ 85ECB7A +gText_First:: @ 85ECB7A .string "first$" -gUnknown_085ECB80:: @ 85ECB80 +gText_Second:: @ 85ECB80 .string "second$" -gUnknown_085ECB87:: @ 85ECB87 +gText_Third:: @ 85ECB87 .string "third$" + +gUnknown_085ECB8D:: @ 85ECB8D .string "0 pts$" + +gUnknown_085ECB93:: @ 85ECB93 .string "10 pts$" + +gUnknown_085ECB9A:: @ 85ECB9A .string "20 pts$" + +gUnknown_085ECBA1:: @ 85ECBA1 .string "30 pts$" + +gUnknown_085ECBA8:: @ 85ECBA8 .string "40 pts$" + +gUnknown_085ECBAF:: @ 85ECBAF .string "50 pts$" + +gUnknown_085ECBB6:: @ 85ECBB6 .string "60 pts$" + +gUnknown_085ECBBD:: @ 85ECBBD .string "70 pts$" + +gUnknown_085ECBC4:: @ 85ECBC4 .string "80 pts$" + +gUnknown_085ECBCB:: @ 85ECBCB .string "90 pts$" + +gUnknown_085ECBD2:: @ 85ECBD2 .string "100 pts$" + +gUnknown_085ECBDA:: @ 85ECBDA .string "?$" + +gUnknown_085ECBDC:: @ 85ECBDC .string "KISS POSTER{CLEAR_TO 0x5E}16BP$" + +gUnknown_085ECBEF:: @ 85ECBEF .string "KISS CUSHION{CLEAR_TO 0x5E}32BP$" + +gUnknown_085ECC03:: @ 85ECC03 .string "SMOOCHUM DOLL{CLEAR_TO 0x5E}32BP$" + +gUnknown_085ECC18:: @ 85ECC18 .string "TOGEPI DOLL{CLEAR_TO 0x5E}48BP$" + +gUnknown_085ECC2B:: @ 85ECC2B .string "MEOWTH DOLL{CLEAR_TO 0x5E}48BP$" + +gUnknown_085ECC3E:: @ 85ECC3E .string "CLEFAIRY DOLL{CLEAR_TO 0x5E}48BP$" + +gUnknown_085ECC53:: @ 85ECC53 .string "DITTO DOLL{CLEAR_TO 0x5E}48BP$" + +gUnknown_085ECC65:: @ 85ECC65 .string "CYNDAQUIL DOLL{CLEAR_TO 0x5E}80BP$" + +gUnknown_085ECC7B:: @ 85ECC7B .string "CHIKORITA DOLL{CLEAR_TO 0x5E}80BP$" + +gUnknown_085ECC91:: @ 85ECC91 .string "TOTODILE DOLL{CLEAR_TO 0x5E}80BP$" + +gUnknown_085ECCA6:: @ 85ECCA6 .string "LAPRAS DOLL{CLEAR_TO 0x58}128BP$" + +gUnknown_085ECCBA:: @ 85ECCBA .string "SNORLAX DOLL{CLEAR_TO 0x58}128BP$" + +gUnknown_085ECCCF:: @ 85ECCCF .string "VENUSAUR DOLL{CLEAR_TO 0x58}256BP$" + +gUnknown_085ECCE5:: @ 85ECCE5 .string "CHARIZARD DOLL{CLEAR_TO 0x58}256BP$" + +gUnknown_085ECCFC:: @ 85ECCFC .string "BLASTOISE DOLL{CLEAR_TO 0x58}256BP$" + +gUnknown_085ECD13:: @ 85ECD13 .string "PROTEIN{CLEAR_TO 0x64}1BP$" + +gUnknown_085ECD21:: @ 85ECD21 .string "CALCIUM{CLEAR_TO 0x64}1BP$" + +gUnknown_085ECD2F:: @ 85ECD2F .string "IRON{CLEAR_TO 0x64}1BP$" + +gUnknown_085ECD3A:: @ 85ECD3A .string "ZINC{CLEAR_TO 0x64}1BP$" + +gUnknown_085ECD45:: @ 85ECD45 .string "CARBOS{CLEAR_TO 0x64}1BP$" + +gUnknown_085ECD52:: @ 85ECD52 .string "HP UP{CLEAR_TO 0x64}1BP$" + +gUnknown_085ECD5E:: @ 85ECD5E .string "LEFTOVERS{CLEAR_TO 0x5E}48BP$" + +gUnknown_085ECD6F:: @ 85ECD6F .string "WHITE HERB{CLEAR_TO 0x5E}48BP$" + +gUnknown_085ECD81:: @ 85ECD81 .string "QUICK CLAW{CLEAR_TO 0x5E}48BP$" + +gUnknown_085ECD93:: @ 85ECD93 .string "MENTAL HERB{CLEAR_TO 0x5E}48BP$" + +gUnknown_085ECDA6:: @ 85ECDA6 .string "BRIGHTPOWDER{CLEAR_TO 0x5E}64BP$" + +gUnknown_085ECDBA:: @ 85ECDBA .string "CHOICE BAND{CLEAR_TO 0x5E}64BP$" + +gUnknown_085ECDCD:: @ 85ECDCD .string "KING’S ROCK{CLEAR_TO 0x5E}64BP$" + +gUnknown_085ECDE0:: @ 85ECDE0 .string "FOCUS BAND{CLEAR_TO 0x5E}64BP$" + +gUnknown_085ECDF2:: @ 85ECDF2 .string "SCOPE LENS{CLEAR_TO 0x5E}64BP$" + +gUnknown_085ECE04:: @ 85ECE04 .string "SOFTBOILED{CLEAR_TO 0x4E}16BP$" + +gUnknown_085ECE16:: @ 85ECE16 .string "SEISMIC TOSS{CLEAR_TO 0x4E}24BP$" + +gUnknown_085ECE2A:: @ 85ECE2A .string "DREAM EATER{CLEAR_TO 0x4E}24BP$" + +gUnknown_085ECE3D:: @ 85ECE3D .string "MEGA PUNCH{CLEAR_TO 0x4E}24BP$" + +gUnknown_085ECE4F:: @ 85ECE4F .string "MEGA KICK{CLEAR_TO 0x4E}48BP$" + +gUnknown_085ECE60:: @ 85ECE60 .string "BODY SLAM{CLEAR_TO 0x4E}48BP$" + +gUnknown_085ECE71:: @ 85ECE71 .string "ROCK SLIDE{CLEAR_TO 0x4E}48BP$" + +gUnknown_085ECE83:: @ 85ECE83 .string "COUNTER{CLEAR_TO 0x4E}48BP$" + +gUnknown_085ECE92:: @ 85ECE92 .string "THUNDER WAVE{CLEAR_TO 0x4E}48BP$" + +gUnknown_085ECEA6:: @ 85ECEA6 .string "SWORDS DANCE{CLEAR_TO 0x4E}48BP$" + +gUnknown_085ECEBA:: @ 85ECEBA .string "DEFENSE CURL{CLEAR_TO 0x4E}16BP$" + +gUnknown_085ECECE:: @ 85ECECE .string "SNORE{CLEAR_TO 0x4E}24BP$" + +gUnknown_085ECEDB:: @ 85ECEDB .string "MUD-SLAP{CLEAR_TO 0x4E}24BP$" + +gUnknown_085ECEEB:: @ 85ECEEB .string "SWIFT{CLEAR_TO 0x4E}24BP$" + +gUnknown_085ECEF8:: @ 85ECEF8 .string "ICY WIND{CLEAR_TO 0x4E}24BP$" + +gUnknown_085ECF08:: @ 85ECF08 .string "ENDURE{CLEAR_TO 0x4E}48BP$" + +gUnknown_085ECF16:: @ 85ECF16 .string "PSYCH UP{CLEAR_TO 0x4E}48BP$" + +gUnknown_085ECF26:: @ 85ECF26 .string "ICE PUNCH{CLEAR_TO 0x4E}48BP$" + +gUnknown_085ECF37:: @ 85ECF37 .string "THUNDERPUNCH{CLEAR_TO 0x4E}48BP$" + +gUnknown_085ECF4B:: @ 85ECF4B .string "FIRE PUNCH{CLEAR_TO 0x4E}48BP$" - -gUnknown_085ECF5D:: @ 85ECF5D + +gText_PkmnFainted3:: @ 85ECF5D .string "{STR_VAR_1} fainted…\p\n$" -gOtherText_Marco:: @ 85ECF6B +gText_Marco:: @ 85ECF6B .string "MARCO$" -gUnknown_085ECF71:: @ 85ECF71 +gText_TrainerCardName:: @ 85ECF71 .string "NAME: $" -gUnknown_085ECF78:: @ 85ECF78 +gText_TrainerCardIDNo:: @ 85ECF78 .string "IDNo.$" -gUnknown_085ECF7E:: @ 85ECF7E +gText_TrainerCardMoney:: @ 85ECF7E .string "MONEY$" + +gUnknown_085ECF84:: @ 85ECF84 .string "¥$" -gUnknown_085ECF86:: @ 85ECF86 +gText_TrainerCardPokedex:: @ 85ECF86 .string "POKéDEX$" -gUnknown_085ECF8E:: @ 85ECF8E +gText_EmptyString6:: @ 85ECF8E .string "$" -gUnknown_085ECF8F:: @ 85ECF8F +gText_Colon2:: @ 85ECF8F .string ":$" + +gUnknown_085ECF91:: @ 85ECF91 .string " points$" -gUnknown_085ECF99:: @ 85ECF99 +gText_TrainerCardTime:: @ 85ECF99 .string "TIME$" + +gUnknown_085ECF9E:: @ 85ECF9E .string "ゲ-ムポイント$" @ "geemupointo" ("game point" in Japanese) -gUnknown_085ECFA6:: @ 85ECFA6 +gText_Var1sTrainerCard:: @ 85ECFA6 .string "{STR_VAR_1}’s TRAINER CARD$" -gUnknown_085ECFB8:: @ 85ECFB8 +gText_HallOfFameDebut:: @ 85ECFB8 .string "HALL OF FAME DEBUT $" + +gUnknown_085ECFCD:: @ 85ECFCD .string "LINK BATTLES$" + +gUnknown_085ECFDA:: @ 85ECFDA .string "LINK CABLE BATTLES$" -gUnknown_085ECFED:: @ 85ECFED +gText_WinsLosses:: @ 85ECFED .string "W:{COLOR RED}{SHADOW LIGHT_RED}{STR_VAR_1}{COLOR DARK_GREY}{SHADOW LIGHT_GREY} L:{COLOR RED}{SHADOW LIGHT_RED}{STR_VAR_2}{COLOR DARK_GREY}{SHADOW LIGHT_GREY}$" -gUnknown_085ED010:: @ 85ED010 +gText_PokemonTrades:: @ 85ED010 .string "POKéMON TRADES$" -gUnknown_085ED01F:: @ 85ED01F +gText_UnionTradesAndBattles:: @ 85ED01F .string "UNION TRADES & BATTLES$" -gUnknown_085ED036:: @ 85ED036 +gText_BerryCrush:: @ 85ED036 .string "BERRY CRUSH$" -gUnknown_085ED042:: @ 85ED042 +gText_WaitingTrainerFinishReading:: @ 85ED042 .string "Waiting for the other TRAINER to\nfinish reading your TRAINER CARD.$" -gUnknown_085ED085:: @ 85ED085 +gText_PokeblocksWithFriends:: @ 85ED085 .string "{POKEBLOCK}S W/FRIENDS$" -gUnknown_085ED096:: @ 85ED096 +gText_Var1DarkGreyShadowLightGrey:: @ 85ED096 .string "{STR_VAR_1}{COLOR DARK_GREY}{SHADOW LIGHT_GREY}$" -gUnknown_085ED09F:: @ 85ED09F +gText_WonContestsWFriends:: @ 85ED09F .string "WON CONTESTS W/FRIENDS$" -gUnknown_085ED0B6:: @ 85ED0B6 +gText_BattlePtsWon:: @ 85ED0B6 .string "BATTLE POINTS WON$" -gUnknown_085ED0C8:: @ 85ED0C8 +gText_Var1DarkLightGreyBP:: @ 85ED0C8 .string "{STR_VAR_1}{COLOR DARK_GREY}{SHADOW LIGHT_GREY}BP$" -gUnknown_085ED0D3:: @ 85ED0D3 +gText_BattleTower:: @ 85ED0D3 .string "BATTLE TOWER$" -gUnknown_085ED0E0:: @ 85ED0E0 +gText_WSlashStraightSlash:: @ 85ED0E0 .string "W/{COLOR RED}{SHADOW LIGHT_RED}{STR_VAR_1}{COLOR DARK_GREY}{SHADOW LIGHT_GREY} STRAIGHT/{COLOR RED}{SHADOW LIGHT_RED}{STR_VAR_2}$" + +gUnknown_085ED104:: @ 85ED104 .string "BATTLE TOWER$" + +gUnknown_085ED111:: @ 85ED111 .string "BATTLE DOME$" + +gUnknown_085ED11D:: @ 85ED11D .string "BATTLE PALACE$" + +gUnknown_085ED12B:: @ 85ED12B .string "BATTLE FACTORY$" + +gUnknown_085ED13A:: @ 85ED13A .string "BATTLE ARENA$" + +gUnknown_085ED147:: @ 85ED147 .string "BATTLE PIKE$" + +gUnknown_085ED153:: @ 85ED153 .string "BATTLE PYRAMID$" .align 2 + +gUnknown_085ED164:: @ 85ED164 .string "{STR_VAR_1} SINGLE$" .align 2 + +gUnknown_085ED170:: @ 85ED170 .string "{STR_VAR_1} DOUBLE$" .align 2 + +gUnknown_085ED17C:: @ 85ED17C .string "{STR_VAR_1} MULTI$" .align 2 + +gUnknown_085ED188:: @ 85ED188 .string "{STR_VAR_1} LINK$" .align 2 + +gUnknown_085ED190:: @ 85ED190 .string "{STR_VAR_1}$" -gUnknown_085ED193:: @ 85ED193 +gText_Give:: @ 85ED193 .string "Give$" -gUnknown_085ED198:: @ 85ED198 +gText_NoNeed:: @ 85ED198 .string "No need$" -gUnknown_085ED1A0:: @ 85ED1A0 +gText_ColorLightShadowDarkGrey:: @ 85ED1A0 .string "{COLOR LIGHT_GREY}{SHADOW DARK_GREY}$" -gUnknown_085ED1A7:: @ 85ED1A7 +gText_ColorBlue:: @ 85ED1A7 .string "{COLOR BLUE}$" -gUnknown_085ED1AB:: @ 85ED1AB +gText_ColorTransparent:: @ 85ED1AB .string "{HIGHLIGHT TRANSPARENT}{COLOR TRANSPARENT}$" -gUnknown_085ED1B2:: @ 85ED1B2 +gText_CDot:: @ 85ED1B2 .string "C.$" -gUnknown_085ED1B5:: @ 85ED1B5 +gText_BDot:: @ 85ED1B5 .string "B.$" -gUnknown_085ED1B8:: @ 85ED1B8 +gText_AnnouncingResults:: @ 85ED1B8 .string "Announcing the results!$" -gUnknown_085ED1D0:: @ 85ED1D0 +gText_PreliminaryResults:: @ 85ED1D0 .string "The preliminary results!$" -gUnknown_085ED1E9:: @ 85ED1E9 +gText_Round2Results:: @ 85ED1E9 .string "Round 2 results!$" -gUnknown_085ED1FA:: @ 85ED1FA +gText_Var1sVar2Won:: @ 85ED1FA .string "{STR_VAR_1}’s {STR_VAR_2} won!$" -gUnknown_085ED207:: @ 85ED207 +gText_CommunicationStandby:: @ 85ED207 .string "Communication standby…$" -gUnknown_085ED21E:: @ 85ED21E +gText_ColorDarkGrey:: @ 85ED21E .string "{COLOR DARK_GREY}$" - .string "{COLOR_HIGHLIGHT_SHADOW BORDER_COLOR6 WHITE BORDER_COLOR5}$" -gUnknown_085ED228:: @ 85ED228 +gUnknown_085ED222:: @ 85ED222 + .string "{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR6 WHITE DYNAMIC_COLOR5}$" + +gText_HighlightDarkGrey:: @ 85ED228 .string "{HIGHLIGHT DARK_GREY}$" + +gUnknown_085ED22C:: @ 85ED22C .string " $" -gUnknown_085ED22E:: @ 85ED22E - .string "{COLOR BORDER_COLOR2}♂$" +gText_DynColor2Male:: @ 85ED22E + .string "{COLOR DYNAMIC_COLOR2}♂$" -gUnknown_085ED233:: @ 85ED233 - .string "{COLOR BORDER_COLOR1}♀$" +gText_DynColor1Female:: @ 85ED233 + .string "{COLOR DYNAMIC_COLOR1}♀$" -gUnknown_085ED238:: @ 85ED238 - .string "{COLOR BORDER_COLOR2}$" - -gUnknown_085ED23C:: @ 85ED23C +gText_DynColor2:: @ 85ED238 + .string "{COLOR DYNAMIC_COLOR2}$" + +gText_Upper:: @ 85ED23C .string "UPPER$" - -gUnknown_085ED242:: @ 85ED242 + +gText_Lower:: @ 85ED242 .string "lower$" - -gUnknown_085ED248:: @ 85ED248 + +gText_Others:: @ 85ED248 .string "OTHERS$" - -gUnknown_085ED24F:: @ 85ED24F + +gText_Symbols:: @ 85ED24F .string "SYMBOLS$" - -gUnknown_085ED257:: @ 85ED257 + +gText_Register2:: @ 85ED257 .string "REGISTER$" - -gUnknown_085ED260:: @ 85ED260 + +gText_Exit2:: @ 85ED260 .string "EXIT$" -gUnknown_085ED265:: @ 85ED265 +gText_QuitChatting:: @ 85ED265 .string "Quit chatting?$" -gUnknown_085ED274:: @ 85ED274 +gText_RegisterTextWhere:: @ 85ED274 .string "Register text where?$" -gUnknown_085ED289:: @ 85ED289 +gText_RegisterTextHere:: @ 85ED289 .string "Register text here?$" -gUnknown_085ED29D:: @ 85ED29D +gText_InputText:: @ 85ED29D .string "Input text.$" -gUnknown_085ED2A9:: @ 85ED2A9 +gText_F700JoinedChat:: @ 85ED2A9 .string "{SPECIAL_F7 0x00} joined the chat!$" -gUnknown_085ED2BD:: @ 85ED2BD +gText_F700LeftChat:: @ 85ED2BD .string "{SPECIAL_F7 0x00} left the chat.$" + +gUnknown_085ED2CF:: @ 85ED2CF .string "{SPECIAL_F7 0x00}の{SPECIAL_F7 0x01}ひきめ:$" @ "{SPECIAL_F7 0x00}'s {SPECIAL_F7 0x01}hikime" + +gUnknown_085ED2D9:: @ 85ED2D9 .string "{SPECIAL_F7 0x00}の{SPECIAL_F7 0x01}ひきめは いません$" @ "{SPECIAL_F7 0x00}'s {SPECIAL_F7 0x01}hikimeha imasen" -gUnknown_085ED2E8:: @ 85ED2E8 +gText_ExitingChat:: @ 85ED2E8 .string "Exiting the chat…$" -gUnknown_085ED2FA:: @ 85ED2FA +gText_LeaderLeftEndingChat:: @ 85ED2FA .string "The LEADER, {SPECIAL_F7 0x00}, has\nleft, ending the chat.$" -gUnknown_085ED325:: @ 85ED325 +gText_RegisteredTextChanged:: @ 85ED325 .string "The registered text has been changed.\nIs it okay to save the game?$" -gUnknown_085ED368:: @ 85ED368 +gText_AlreadySavedFile:: @ 85ED368 .string "There is already a saved file.\nIs it okay to overwrite it?$" -gUnknown_085ED3A3:: @ 85ED3A3 +gText_SavingDontTurnOff:: @ 85ED3A3 .string "SAVING…\nDON’T TURN OFF THE POWER.$" -gUnknown_085ED3C5:: @ 85ED3C5 +gText_PlayerSavedGame:: @ 85ED3C5 .string "{SPECIAL_F7 0x00} saved the game.$" -gUnknown_085ED3D8:: @ 85ED3D8 +gText_IfLeaderLeavesChatEnds:: @ 85ED3D8 .string "If the LEADER leaves, the chat\nwill end. Is that okay?$" -gUnknown_085ED40F:: @ 85ED40F +gText_Hello:: @ 85ED40F .string "HELLO$" -gUnknown_085ED415:: @ 85ED415 +gText_Pokemon2:: @ 85ED415 .string "POKéMON$" -gUnknown_085ED41D:: @ 85ED41D +gText_Trade:: @ 85ED41D .string "TRADE$" -gUnknown_085ED423:: @ 85ED423 +gText_Battle:: @ 85ED423 .string "BATTLE$" -gUnknown_085ED42A:: @ 85ED42A +gText_Lets:: @ 85ED42A .string "LET’S$" -gUnknown_085ED430:: @ 85ED430 +gText_Ok:: @ 85ED430 .string "OK!$" -gUnknown_085ED434:: @ 85ED434 +gText_Sorry:: @ 85ED434 .string "SORRY$" -gUnknown_085ED43A:: @ 85ED43A +gText_YayUnkF9F9:: @ 85ED43A .string "YAY{UNK_CTRL_F9F9}$" -gUnknown_085ED440:: @ 85ED440 +gText_ThankYou:: @ 85ED440 .string "THANK YOU$" -gUnknown_085ED44A:: @ 85ED44A +gText_ByeBye:: @ 85ED44A .string "BYE-BYE!$" + +gUnknown_085ED453:: @ 85ED453 .string "Attack the weak points!$" + +gUnknown_085ED46B:: @ 85ED46B .string "Ultimate STEEL POKéMON.$" + +gUnknown_085ED483:: @ 85ED483 .string "I’d climb even waterfalls$" + +gUnknown_085ED49D:: @ 85ED49D .string "to find a rare stone!$" + +gUnknown_085ED4B3:: @ 85ED4B3 .string "I’m the strongest and most$" + +gUnknown_085ED4CE:: @ 85ED4CE .string "energetic after all!$" + +gUnknown_085ED4E3:: @ 85ED4E3 .string "Battle with knowledge!$" + +gUnknown_085ED4FA:: @ 85ED4FA .string "I will use various POKéMON.$" + +gUnknown_085ED516:: @ 85ED516 .string "I’ll be a better POKéMON$" + +gUnknown_085ED52F:: @ 85ED52F .string "prof than my father is!$" + +gUnknown_085ED547:: @ 85ED547 .string "I’m not so good at battles.$" + +gUnknown_085ED563:: @ 85ED563 .string "I’ll use any POKéMON!$" + +gUnknown_085ED579:: @ 85ED579 .string "My POKéMON and I help$" + +gUnknown_085ED58F:: @ 85ED58F .string "my father’s research.$" -gUnknown_085ED5A5:: @ 85ED5A5 +gText_HatchedFromEgg:: @ 85ED5A5 .string "{STR_VAR_1} hatched from the EGG!$" -gUnknown_085ED5BE:: @ 85ED5BE +gText_NickHatchPrompt:: @ 85ED5BE .string "Would you like to nickname the newly\nhatched {STR_VAR_1}?$" .align 2 -gUnknown_085ED5F0:: @ 85ED5F0 +gText_ReadyToBerryCrush:: @ 85ED5F0 .string "Are you ready to BERRY-CRUSH?\nPlease pick a BERRY for use.\p$" .align 2 -gUnknown_085ED62C:: @ 85ED62C +gText_WaitForAllChooseBerry:: @ 85ED62C .string "Please wait while each member\nchooses a BERRY.$" .align 2 -gUnknown_085ED65C:: @ 85ED65C +gText_EndedWithXUnitsPowder:: @ 85ED65C .string "{PAUSE_MUSIC}{PLAY_BGM BGM_FANFA1}You ended up with {STR_VAR_1} units of\nsilky-smooth BERRY POWDER.{RESUME_MUSIC}\pYour total amount of BERRY POWDER\nis {STR_VAR_2}.\p$" .align 2 -gUnknown_085ED6C8:: @ 85ED6C8 +gText_RecordingGameResults:: @ 85ED6C8 .string "Recording your game results in the\nsave file.\lPlease wait.$" .align 2 -gUnknown_085ED704:: @ 85ED704 +gText_PlayBerryCrushAgain:: @ 85ED704 .string "Want to play BERRY CRUSH again?$" .align 2 -gUnknown_085ED724:: @ 85ED724 +gText_YouHaveNoBerries:: @ 85ED724 .string "You have no BERRIES.\nThe game will be canceled.$" .align 2 -gUnknown_085ED754:: @ 85ED754 +gText_MemberDroppedOut:: @ 85ED754 .string "A member dropped out.\nThe game will be canceled.$" .align 2 -gUnknown_085ED788:: @ 85ED788 +gText_TimesUpNoGoodPowder:: @ 85ED788 .string "Time’s up.\pGood BERRY POWDER could not be\nmade…\p$" .align 2 -gUnknown_085ED7BC:: @ 85ED7BC +gText_CommunicationStandby2:: @ 85ED7BC .string "Communication standby…$" .align 2 -gUnknown_085ED7D4:: @ 85ED7D4 +gText_1DotBlueF700:: @ 85ED7D4 .string "1. {COLOR BLUE}{SHADOW LIGHT_BLUE}{SPECIAL_F7 0x00}$" .align 2 -gUnknown_085ED7E0:: @ 85ED7E0 +gText_1DotF700:: @ 85ED7E0 .string "1. {SPECIAL_F7 0x00}$" .align 2 -gUnknown_085ED7E8:: @ 85ED7E8 +gText_SpaceTimes2:: @ 85ED7E8 .string " time(s)$" .align 2 -gUnknown_085ED7F4:: @ 85ED7F4 +gText_XDotY:: @ 85ED7F4 .string "{STR_VAR_1}.{STR_VAR_2}$" .align 2 -gUnknown_085ED7FC:: @ 85ED7FC +gText_Var1Berry:: @ 85ED7FC .string "{STR_VAR_1} BERRY$" .align 2 -gUnknown_085ED808:: @ 85ED808 +gText_TimeColon:: @ 85ED808 .string "Time:$" - + .align 2 -gUnknown_085ED810:: @ 85ED810 +gText_PressingSpeed:: @ 85ED810 .string "Pressing Speed:$" .align 2 -gUnknown_085ED820:: @ 85ED820 +gText_Silkiness:: @ 85ED820 .string "Silkiness:$" .align 2 -gUnknown_085ED82C:: @ 85ED82C +gText_StrVar1:: @ 85ED82C .string "{STR_VAR_1}$" .align 2 -gUnknown_085ED830:: @ 85ED830 +gText_SpaceMin:: @ 85ED830 .string " min. $" .align 2 -gUnknown_085ED838:: @ 85ED838 +gText_XDotY2:: @ 85ED838 .string "{STR_VAR_1}.{STR_VAR_2}$" .align 2 -gUnknown_085ED840:: @ 85ED840 +gText_SpaceSec:: @ 85ED840 .string " sec.$" .align 2 -gUnknown_085ED848:: @ 85ED848 +gText_XDotY3:: @ 85ED848 .string "{STR_VAR_1}.{STR_VAR_2}$" .align 2 -gUnknown_085ED850:: @ 85ED850 +gText_TimesPerSec:: @ 85ED850 .string " Times/sec.$" .align 2 -gUnknown_085ED85C:: @ 85ED85C +gText_Var1Percent:: @ 85ED85C .string "{STR_VAR_1}%$" .align 2 -gUnknown_085ED860:: @ 85ED860 +gText_PressesRankings:: @ 85ED860 .string "No. of Presses Rankings$" .align 2 -gUnknown_085ED878:: @ 85ED878 +gText_CrushingResults:: @ 85ED878 .string "Crushing Results$" .align 2 -gUnknown_085ED88C:: @ 85ED88C +gText_NeatnessRankings:: @ 85ED88C .string "Neatness Rankings$" .align 2 -gUnknown_085ED8A0:: @ 85ED8A0 +gText_CoopRankings:: @ 85ED8A0 .string "Cooperative Rankings$" .align 2 -gUnknown_085ED8B8:: @ 85ED8B8 +gText_PressingPowerRankings:: @ 85ED8B8 .string "Pressing-Power Rankings$" -gUnknown_085ED8D0:: @ 85ED8D0 +gText_BerryCrush2:: @ 85ED8D0 .string "BERRY CRUSH$" -gUnknown_085ED8DC:: @ 85ED8DC +gText_PressingSpeedRankings:: @ 85ED8DC .string "Pressing-Speed Rankings$" -gUnknown_085ED8F4:: @ 85ED8F4 +gText_Var1Players:: @ 85ED8F4 .string "{STR_VAR_1} PLAYERS$" -gUnknown_085ED8FF:: @ 85ED8FF +gText_SymbolsEarned:: @ 85ED8FF .string "Symbols Earned$" -gUnknown_085ED90E:: @ 85ED90E +gText_BattleRecord:: @ 85ED90E .string "Battle Record$" -gUnknown_085ED91C:: @ 85ED91C +gText_BattlePoints:: @ 85ED91C .string "Battle Points$" + +gUnknown_085ED92A:: @ 85ED92A .string "CANCEL$" + +gUnknown_085ED931:: @ 85ED931 .string "$" + +gUnknown_085ED932:: @ 85ED932 .string "Check BATTLE FRONTIER MAP.$" + +gUnknown_085ED94D:: @ 85ED94D .string "Check TRAINER CARD.$" + +gUnknown_085ED961:: @ 85ED961 .string "View recorded battle.$" + +gUnknown_085ED977:: @ 85ED977 .string "Put away the FRONTIER PASS.$" + +gUnknown_085ED993:: @ 85ED993 .string "Your current Battle Points.$" + +gUnknown_085ED9AF:: @ 85ED9AF .string "Your collected Symbols.$" + +gUnknown_085ED9C7:: @ 85ED9C7 .string "Battle Tower - Ability Symbol$" + +gUnknown_085ED9E5:: @ 85ED9E5 .string "Battle Dome - Tactics Symbol$" + +gUnknown_085EDA02:: @ 85EDA02 .string "Battle Palace - Spirits Symbol$" + +gUnknown_085EDA21:: @ 85EDA21 .string "Battle Arena - Guts Symbol$" + +gUnknown_085EDA3C:: @ 85EDA3C .string "Battle Factory - Knowledge Symbol$" + +gUnknown_085EDA5E:: @ 85EDA5E .string "Battle Pike - Luck Symbol$" + +gUnknown_085EDA78:: @ 85EDA78 .string "Battle Pyramid - Brave Symbol$" + +gUnknown_085EDA96:: @ 85EDA96 .string "There is no Battle Record.$" + +gUnknown_085EDAB1:: @ 85EDAB1 .string "BATTLE TOWER$" + +gUnknown_085EDABE:: @ 85EDABE .string "BATTLE DOME$" + +gUnknown_085EDACA:: @ 85EDACA .string "BATTLE PALACE$" + +gUnknown_085EDAD8:: @ 85EDAD8 .string "BATTLE ARENA$" + +gUnknown_085EDAE5:: @ 85EDAE5 .string "BATTLE FACTORY$" + +gUnknown_085EDAF4:: @ 85EDAF4 .string "BATTLE PIKE$" + +gUnknown_085EDB00:: @ 85EDB00 .string "BATTLE PYRAMID$" + +gUnknown_085EDB0F:: @ 85EDB0F .string "KO opponents and aim for the top!\nYour ability will be tested.$" + +gUnknown_085EDB4E:: @ 85EDB4E .string "Keep winning at the tournament!\nYour tactics will be tested.$" + +gUnknown_085EDB8B:: @ 85EDB8B .string "Watch your POKéMON battle!\nYour spirit will be tested.$" + +gUnknown_085EDBC2:: @ 85EDBC2 .string "Win battles with teamed-up POKéMON!\nYour guts will be tested.$" + +gUnknown_085EDC00:: @ 85EDC00 .string "Aim for victory using rental POKéMON!\nYour knowledge will be tested.$" + +gUnknown_085EDC45:: @ 85EDC45 .string "Select one of three paths to battle!\nYour luck will be tested.$" + +gUnknown_085EDC84:: @ 85EDC84 .string "Aim for the top with exploration!\nYour bravery will be tested.$" -gUnknown_085EDCC3:: @ 85EDCC3 +gText_ContinueMenuPlayer:: @ 85EDCC3 .string "PLAYER$" -gUnknown_085EDCCA:: @ 85EDCCA +gText_ContinueMenuTime:: @ 85EDCCA .string "TIME$" -gUnknown_085EDCCF:: @ 85EDCCF +gText_ContinueMenuPokedex:: @ 85EDCCF .string "POKéDEX$" -gUnknown_085EDCD7:: @ 85EDCD7 +gText_ContinueMenuBadges:: @ 85EDCD7 .string "BADGES$" -gUnknown_085EDCDE:: @ 85EDCDE +gText_Powder:: @ 85EDCDE .string "POWDER$" -gUnknown_085EDCE5:: @ 85EDCE5 +gText_BerryPickingRecords:: @ 85EDCE5 .string "DODRIO BERRY-PICKING RECORDS$" -gUnknown_085EDD02:: @ 85EDD02 +gText_BerriesPicked:: @ 85EDD02 .string "BERRIES picked:$" -gUnknown_085EDD12:: @ 85EDD12 +gText_BestScore:: @ 85EDD12 .string "Best score:$" -gUnknown_085EDD1E:: @ 85EDD1E +gText_BerriesInRowFivePlayers:: @ 85EDD1E .string "BERRIES picked in a row with\nfive players:$" -gUnknown_085EDD49:: @ 85EDD49 +gText_BerryPickingResults:: @ 85EDD49 .string "Announcing BERRY-PICKING results!$" -gUnknown_085EDD6B:: @ 85EDD6B +gText_10P30P50P50P:: @ 85EDD6B .string "{CLEAR_TO 0x03}10P{CLEAR_TO 0x2B}30P{CLEAR_TO 0x53}50P{CLEAR_TO 0x77}{UNK_CTRL_F9DD}50P$" - -gUnknown_085EDD86:: @ 85EDD86 + +gText_AnnouncingRankings:: @ 85EDD86 .string "Announcing rankings!$" -gUnknown_085EDD9B:: @ 85EDD9B +gText_AnnouncingPrizes:: @ 85EDD9B .string "Announcing prizes!$" -gUnknown_085EDDAE:: @ 85EDDAE +gText_1Colon:: @ 85EDDAE .string "1:$" -gUnknown_085EDDB1:: @ 85EDDB1 +gText_2Colon:: @ 85EDDB1 .string "2:$" -gUnknown_085EDDB4:: @ 85EDDB4 +gText_3Colon:: @ 85EDDB4 .string "3:$" -gUnknown_085EDDB7:: @ 85EDDB7 +gText_4Colon:: @ 85EDDB7 .string "4:$" -gUnknown_085EDDBA:: @ 85EDDBA +gText_5Colon:: @ 85EDDBA .string "5:$" -gUnknown_085EDDBD:: @ 85EDDBD +gText_FirstPlacePrize:: @ 85EDDBD .string "The first-place winner gets\nthis {SPECIAL_F7 0x00}!$" -gUnknown_085EDDE2:: @ 85EDDE2 +gText_CantHoldAnyMore:: @ 85EDDE2 .string "You can’t hold any more!$" -gUnknown_085EDDFB:: @ 85EDDFB +gText_FilledStorageSpace:: @ 85EDDFB .string "It filled its storage space.$" -gUnknown_085EDE18:: @ 85EDE18 +gText_WantToPlayAgain:: @ 85EDE18 .string "Want to play again?$" -gUnknown_085EDE2C:: @ 85EDE2C +gText_SomeoneDroppedOut:: @ 85EDE2C .string "Somebody dropped out.\nThe link will be canceled.$" -gUnknown_085EDE5D:: @ 85EDE5D +gText_SpacePoints:: @ 85EDE5D .string " points$" -gUnknown_085EDE65:: @ 85EDE65 +gText_CommunicationStandby3:: @ 85EDE65 .string "Communication standby…$" -gUnknown_085EDE7C:: @ 85EDE7C +gText_SpacePoints2:: @ 85EDE7C .string " points$" -gUnknown_085EDE84:: @ 85EDE84 +gText_SpaceTimes3:: @ 85EDE84 .string " time(s)$" -gUnknown_085EDE8D:: @ 85EDE8D +gText_PkmnJumpRecords:: @ 85EDE8D .string "POKéMON JUMP RECORDS$" -gUnknown_085EDEA2:: @ 85EDEA2 +gText_JumpsInARow:: @ 85EDEA2 .string "Jumps in a row:$" -gUnknown_085EDEB2:: @ 85EDEB2 +gText_BestScore2:: @ 85EDEB2 .string "Best score:$" -gUnknown_085EDEBE:: @ 85EDEBE +gText_ExcellentsInARow:: @ 85EDEBE .string "EXCELLENTS in a row:$" -gUnknown_085EDED3:: @ 85EDED3 +gText_AwesomeWonF701F700:: @ 85EDED3 .string "Awesome score! You’ve\nwon {SPECIAL_F7 0x01} {SPECIAL_F7 0x00}!$" -gUnknown_085EDEF4:: @ 85EDEF4 +gText_FilledStorageSpace2:: @ 85EDEF4 .string "It filled its storage space.$" -gUnknown_085EDF11:: @ 85EDF11 +gText_CantHoldMore:: @ 85EDF11 .string "You can’t hold any more!$" -gUnknown_085EDF2A:: @ 85EDF2A +gText_WantToPlayAgain2:: @ 85EDF2A .string "Want to play again?$" -gUnknown_085EDF3E:: @ 85EDF3E +gText_SomeoneDroppedOut2:: @ 85EDF3E .string "Somebody dropped out.\nThe link will be canceled.$" -gUnknown_085EDF6F:: @ 85EDF6F +gText_CommunicationStandby4:: @ 85EDF6F .string "Communication standby…$" -gUnknown_085EDF86:: @ 85EDF86 +gText_LinkContestResults:: @ 85EDF86 .string "{PLAYER}’s Link Contest Results$" -gUnknown_085EDFA0:: @ 85EDFA0 +gText_1st:: @ 85EDFA0 .string "1st$" -gUnknown_085EDFA4:: @ 85EDFA4 +gText_2nd:: @ 85EDFA4 .string "2nd$" -gUnknown_085EDFA8:: @ 85EDFA8 +gText_3rd:: @ 85EDFA8 .string "3rd$" -gUnknown_085EDFAC:: @ 85EDFAC +gText_4th:: @ 85EDFAC .string "4th$" -gUnknown_085EDFB0:: @ 85EDFB0 +gText_Friend:: @ 85EDFB0 .string "Friend$" + +gUnknown_085EDFB7:: @ 85EDFB7 .string "POKeMON$" -gUnknown_085EDFBF:: @ 85EDFBF +gJPText_MysteryGift:: @ 85EDFBF .string "ふしぎなもらいもの$" @ "fushiginamoraimono" ("Mystery Gift" in Japanese) -gUnknown_085EDFC9:: @ 85EDFC9 +gJPText_DecideStop:: @ 85EDFC9 .string "{UNK_CTRL_F800}けってい {UNK_CTRL_F801}やめる$" @ "{UNK_CTRL_F800}kettei {UNK_CTRL_F801}yameru" ("{UNK_CTRL_F800}decide {UNK_CTRL_F801}stop" in Japanese) @ A bunch of Japanese strings here, waiting for updated datadump to dump properly @@ -2626,913 +4212,1185 @@ gUnknown_085EE120:: @ 85EE120 gUnknown_085EE12D:: @ 85EE12D .byte 0x06, 0x07, 0x0a, 0x20, 0x00, 0x54, 0x77, 0xae, 0x00, 0x44, 0x0d, 0xfe, 0x94, 0xae, 0x60, 0x37, 0x00, 0x1e, 0x40, 0x2e, 0x00, 0x44, 0x07, 0x1f, 0x0e, 0x2e, 0x44, 0x0c, 0x10, 0xff +gUnknown_085EE14B:: @ 85EE14B .string "RED$" + +gUnknown_085EE14F:: @ 85EE14F .string "BLUE$" + +gUnknown_085EE154:: @ 85EE154 .string "---$" -gUnknown_085EE158:: @ 85EE158 +gText_SingleBattleRoomResults:: @ 85EE158 .string "{PLAYER}’s Single Battle Room Results$" -gUnknown_085EE178:: @ 85EE178 +gText_DoubleBattleRoomResults:: @ 85EE178 .string "{PLAYER}’s Double Battle Room Results$" -gUnknown_085EE198:: @ 85EE198 +gText_MultiBattleRoomResults:: @ 85EE198 .string "{PLAYER}’s Multi Battle Room Results$" -gUnknown_085EE1B7:: @ 85EE1B7 +gText_LinkMultiBattleRoomResults:: @ 85EE1B7 .string "{PLAYER}’s Link Multi Battle Room Results$" -gUnknown_085EE1DB:: @ 85EE1DB +gText_SingleBattleTourneyResults:: @ 85EE1DB .string "{PLAYER}’s Single Battle Tourney Results$" -gUnknown_085EE1FE:: @ 85EE1FE +gText_DoubleBattleTourneyResults:: @ 85EE1FE .string "{PLAYER}’s Double Battle Tourney Results$" -gUnknown_085EE221:: @ 85EE221 +gText_SingleBattleHallResults:: @ 85EE221 .string "{PLAYER}’s Single Battle Hall Results$" -gUnknown_085EE241:: @ 85EE241 +gText_DoubleBattleHallResults:: @ 85EE241 .string "{PLAYER}’s Double Battle Hall Results$" -gUnknown_085EE261:: @ 85EE261 +gText_BattleChoiceResults:: @ 85EE261 .string "{PLAYER}’s Battle Choice Results$" -gUnknown_085EE27C:: @ 85EE27C +gText_SetKOTourneyResults:: @ 85EE27C .string "{PLAYER}’s Set KO Tourney Results$" -gUnknown_085EE298:: @ 85EE298 +gText_BattleSwapSingleResults:: @ 85EE298 .string "{PLAYER}’s Battle Swap Single Results$" -gUnknown_085EE2B8:: @ 85EE2B8 +gText_BattleSwapDoubleResults:: @ 85EE2B8 .string "{PLAYER}’s Battle Swap Double Results$" -gUnknown_085EE2D8:: @ 85EE2D8 +gText_BattleQuestResults:: @ 85EE2D8 .string "{PLAYER}’s Battle Quest Results$" -gUnknown_085EE2F2:: @ 85EE2F2 +gText_Lv502:: @ 85EE2F2 .string "LV. 50$" -gUnknown_085EE2F9:: @ 85EE2F9 +gText_OpenLv:: @ 85EE2F9 .string "OPEN LV.$" -gUnknown_085EE302:: @ 85EE302 +gText_WinStreak:: @ 85EE302 .string "Win streak: {STR_VAR_1}$" -gUnknown_085EE311:: @ 85EE311 +gText_Current:: @ 85EE311 .string "CURRENT$" -gUnknown_085EE319:: @ 85EE319 +gText_Record:: @ 85EE319 .string "RECORD$" -gUnknown_085EE320:: @ 85EE320 +gText_Prev:: @ 85EE320 .string "PREV.$" -gUnknown_085EE326:: @ 85EE326 +gText_RentalSwap:: @ 85EE326 .string "Rental/Swap$" -gUnknown_085EE332:: @ 85EE332 +gText_Total:: @ 85EE332 .string "Total$" -gUnknown_085EE338:: @ 85EE338 +gText_ClearStreak:: @ 85EE338 .string "Clear streak: {STR_VAR_1}$" -gUnknown_085EE349:: @ 85EE349 +gText_Championships:: @ 85EE349 .string "Championships: {STR_VAR_1}$" -gUnknown_085EE35B:: @ 85EE35B +gText_RoomsCleared:: @ 85EE35B .string "Rooms cleared: {STR_VAR_1}$" -gUnknown_085EE36D:: @ 85EE36D +gText_TimesCleared:: @ 85EE36D .string "Times cleared:{CLEAR 0x05}{STR_VAR_1}$" -gUnknown_085EE381:: @ 85EE381 +gText_KOsInARow:: @ 85EE381 .string "KOs in a row: {STR_VAR_1}$" -gUnknown_085EE392:: @ 85EE392 +gText_TimesVar1:: @ 85EE392 .string "Times: {STR_VAR_1}$" - - .align 2 -gUnknown_085EE39C:: @ 85EE39C + +gText_FloorsCleared:: @ 85EE39C .string "Floors cleared: {STR_VAR_1}$" .align 2 + +gUnknown_085EE3B0:: @ 85EE3B0 .string "LV. 50$" .align 2 + +gUnknown_085EE3B8:: @ 85EE3B8 .string "OPEN LEVEL$" .align 2 + +gUnknown_085EE3C4:: @ 85EE3C4 .string "Win streak: {STR_VAR_2}$" .align 2 + +gUnknown_085EE3D4:: @ 85EE3D4 .string "Clear streak: {STR_VAR_2}$" .align 2 + +gUnknown_085EE3E8:: @ 85EE3E8 .string "Rooms cleared: {STR_VAR_2}$" .align 2 + +gUnknown_085EE3FC:: @ 85EE3FC .string "KOs in a row: {STR_VAR_2}$" .align 2 + +gUnknown_085EE410:: @ 85EE410 .string "Floors cleared: {STR_VAR_2}$" .align 2 -gUnknown_085EE424:: @ 85EE424 +gText_1Dot:: @ 85EE424 .string "1.$" + +gUnknown_085EE427:: @ 85EE427 .string "2.$" + +gUnknown_085EE42A:: @ 85EE42A .string "3.$" -gUnknown_085EE42D:: @ 85EE42D +gText_SavingDontTurnOff2:: @ 85EE42D .string "SAVING…\nDON’T TURN OFF THE POWER.$" -gUnknown_085EE44F:: @ 85EE44F +gText_BlenderMaxSpeedRecord:: @ 85EE44F .string "BERRY BLENDER\nMAXIMUM SPEED RECORD!$" -gUnknown_085EE473:: @ 85EE473 +gText_234Players:: @ 85EE473 .string "2 PLAYERS\n3 PLAYERS\n4 PLAYERS$" -gUnknown_085EE491:: @ 85EE491 +gText_YesNo:: @ 85EE491 .string "YES\nNO$" -gUnknown_085EE498:: @ 85EE498 +gText_SelectorArrow3:: @ 85EE498 .string "▶$" -gUnknown_085EE49A:: @ 85EE49A +gText_Peekaboo:: @ 85EE49A .string "PEEKABOO!$" -gUnknown_085EE4A4:: @ 85EE4A4 +gText_CommErrorCheckConnections:: @ 85EE4A4 .string "Communication error…\nPlease check all connections,\nthen turn the power OFF and ON.$" -gUnknown_085EE4F7:: @ 85EE4F7 +gText_CommErrorEllipsis:: @ 85EE4F7 .string "Communication error…$" -gUnknown_085EE50C:: @ 85EE50C +gText_MoveCloserToLinkPartner:: @ 85EE50C .string "Move closer to your link partner(s).\nAvoid obstacles between partners.$" -gUnknown_085EE553:: @ 85EE553 +gText_ABtnRegistrationCounter:: @ 85EE553 .string "A Button: Registration Counter$" -gUnknown_085EE572:: @ 85EE572 +gText_ABtnTitleScreen:: @ 85EE572 .string "A Button: Title Screen$" -gUnknown_085EE589:: @ 85EE589 +gText_Option:: @ 85EE589 .string "OPTION$" + +gUnknown_085EE590:: @ 85EE590 .string "TEXT SPEED$" + +gUnknown_085EE59B:: @ 85EE59B .string "BATTLE SCENE$" + +gUnknown_085EE5A8:: @ 85EE5A8 .string "BATTLE STYLE$" + +gUnknown_085EE5B5:: @ 85EE5B5 .string "SOUND$" + +gUnknown_085EE5BB:: @ 85EE5BB .string "FRAME$" + +gUnknown_085EE5C1:: @ 85EE5C1 .string "CANCEL$" + +gUnknown_085EE5C8:: @ 85EE5C8 .string "BUTTON MODE$" -gUnknown_085EE5D4:: @ 85EE5D4 +gText_TextSpeedSlow:: @ 85EE5D4 .string "{COLOR GREEN}{SHADOW LIGHT_GREEN}SLOW$" -gUnknown_085EE5DF:: @ 85EE5DF +gText_TextSpeedMid:: @ 85EE5DF .string "{COLOR GREEN}{SHADOW LIGHT_GREEN}MID$" -gUnknown_085EE5E9:: @ 85EE5E9 +gText_TextSpeedFast:: @ 85EE5E9 .string "{COLOR GREEN}{SHADOW LIGHT_GREEN}FAST$" -gUnknown_085EE5F4:: @ 85EE5F4 +gText_BattleSceneOn:: @ 85EE5F4 .string "{COLOR GREEN}{SHADOW LIGHT_GREEN}ON$" -gUnknown_085EE5FD:: @ 85EE5FD +gText_BattleSceneOff:: @ 85EE5FD .string "{COLOR GREEN}{SHADOW LIGHT_GREEN}OFF$" -gUnknown_085EE607:: @ 85EE607 +gText_BattleStyleShift:: @ 85EE607 .string "{COLOR GREEN}{SHADOW LIGHT_GREEN}SHIFT$" -gUnknown_085EE613:: @ 85EE613 +gText_BattleStyleSet:: @ 85EE613 .string "{COLOR GREEN}{SHADOW LIGHT_GREEN}SET$" -gUnknown_085EE61D:: @ 85EE61D +gText_SoundMono:: @ 85EE61D .string "{COLOR GREEN}{SHADOW LIGHT_GREEN}MONO$" -gUnknown_085EE628:: @ 85EE628 +gText_SoundStereo:: @ 85EE628 .string "{COLOR GREEN}{SHADOW LIGHT_GREEN}STEREO$" -gUnknown_085EE635:: @ 85EE635 +gText_FrameType:: @ 85EE635 .string "{COLOR GREEN}{SHADOW LIGHT_GREEN}TYPE$" -gUnknown_085EE640:: @ 85EE640 +gText_FrameTypeNumber:: @ 85EE640 .string "{COLOR GREEN}{SHADOW LIGHT_GREEN}$" -gUnknown_085EE647:: @ 85EE647 +gText_ButtonTypeNormal:: @ 85EE647 .string "{COLOR GREEN}{SHADOW LIGHT_GREEN}NORMAL$" -gUnknown_085EE654:: @ 85EE654 +gText_ButtonTypeLR:: @ 85EE654 .string "{COLOR GREEN}{SHADOW LIGHT_GREEN}LR$" -gUnknown_085EE65D:: @ 85EE65D +gText_ButtonTypeLEqualsA:: @ 85EE65D .string "{COLOR GREEN}{SHADOW LIGHT_GREEN}L=A$" -gUnknown_085EE667:: @ 85EE667 +gText_XPLink:: @ 85EE667 .string "{STR_VAR_1}P LINK$" + +gUnknown_085EE670:: @ 85EE670 .string "BRONZE$" + +gUnknown_085EE677:: @ 85EE677 .string "COPPER$" + +gUnknown_085EE67E:: @ 85EE67E .string "SILVER$" + +gUnknown_085EE685:: @ 85EE685 .string "GOLD$" -gUnknown_085EE68A:: @ 85EE68A +gText_Day:: @ 85EE68A .string "DAY$" -gUnknown_085EE68E:: @ 85EE68E +gText_Colon3:: @ 85EE68E .string ":$" -gUnknown_085EE690:: @ 85EE690 +gText_Confirm2:: @ 85EE690 .string "CONFIRM$" + +gUnknown_085EE698:: @ 85EE698 .string "Days$" + +gUnknown_085EE69D:: @ 85EE69D .string "Time:$" + +gUnknown_085EE6A3:: @ 85EE6A3 .string "Game time$" + +gUnknown_085EE6AD:: @ 85EE6AD .string "RTC time$" + +gUnknown_085EE6B6:: @ 85EE6B6 .string "Updated time$" + +gUnknown_085EE6C3:: @ 85EE6C3 .string "POKéDEX$" + +gUnknown_085EE6CB:: @ 85EE6CB .string "POKéMON$" + +gUnknown_085EE6D3:: @ 85EE6D3 .string "BAG$" + +gUnknown_085EE6D7:: @ 85EE6D7 .string "POKéNAV$" + +gUnknown_085EE6DF:: @ 85EE6DF .string "{PLAYER}$" + +gUnknown_085EE6E2:: @ 85EE6E2 .string "SAVE$" + +gUnknown_085EE6E7:: @ 85EE6E7 .string "OPTION$" + +gUnknown_085EE6EE:: @ 85EE6EE .string "EXIT$" + +gUnknown_085EE6F3:: @ 85EE6F3 .string "RETIRE$" + +gUnknown_085EE6FA:: @ 85EE6FA .string "REST$" -gOtherText_SafariStock:: @ 85EE6FF +gText_SafariBallStock:: @ 85EE6FF .string "SAFARI BALLS\nStock: {STR_VAR_1}$" -gOtherText_BattlePyramid_X:: @ 85EE716 +gText_BattlePyramidFloor:: @ 85EE716 .string "Battle Pyramid\n{STR_VAR_1}$" + +gUnknown_085EE728:: @ 85EE728 .string "Floor 1$" + +gUnknown_085EE730:: @ 85EE730 .string "Floor 2$" + +gUnknown_085EE738:: @ 85EE738 .string "Floor 3$" + +gUnknown_085EE740:: @ 85EE740 .string "Floor 4$" + +gUnknown_085EE748:: @ 85EE748 .string "Floor 5$" + +gUnknown_085EE750:: @ 85EE750 .string "Floor 6$" + +gUnknown_085EE758:: @ 85EE758 .string "Floor 7$" + +gUnknown_085EE760:: @ 85EE760 .string "Peak$" -gUnknown_085EE765:: @ 85EE765 +gText_LinkStandby2:: @ 85EE765 .string "Link standby…\n… … B Button: Cancel$" -gUnknown_085EE788:: @ 85EE788 +gText_PressAToLoadEvent:: @ 85EE788 .string "Press the A Button to load event.\n… … B Button: Cancel$" -gUnknown_085EE7BF:: @ 85EE7BF +gText_LoadingEvent:: @ 85EE7BF .string "Loading event…$" -gUnknown_085EE7CE:: @ 85EE7CE +gText_DontRemoveCableTurnOff:: @ 85EE7CE .string "Don’t remove the Game Link cable.\nDon’t turn off the power.$" -gUnknown_085EE80A:: @ 85EE80A +gText_EventSafelyLoaded:: @ 85EE80A .string "The event was safely loaded.$" -gUnknown_085EE827:: @ 85EE827 +gText_LoadErrorEndingSession:: @ 85EE827 .string "Loading error.\nEnding session.$" + +gUnknown_085EE846:: @ 85EE846 .string "プレイヤー$" @ "pureiyaa" ("player" in Japanese) + +gUnknown_085EE84C:: @ 85EE84C .string "さま$" @ "sama" (a very high honorific) -gUnknown_085EE84F:: @ 85EE84F +gText_DexHoenn:: @ 85EE84F .string "HOENN$" -gUnknown_085EE855:: @ 85EE855 +gText_DexNational:: @ 85EE855 .string "NATIONAL$" -gUnknown_085EE85E:: @ 85EE85E +gText_PokedexDiploma:: @ 85EE85E .string "PLAYER: {CLEAR 0x10}{COLOR RED}{SHADOW LIGHT_RED}{PLAYER}{COLOR DARK_GREY}{SHADOW LIGHT_GREY}\n\nThis document certifies\nthat you have successfully\ncompleted your\n{STR_VAR_1} POKéDEX.\n\n{CLEAR_TO 0x42}{COLOR RED}{SHADOW LIGHT_RED}GAME FREAK$" - + +gUnknown_085EE8DC:: @ 85EE8DC .string "{COLOR RED}{SHADOW LIGHT_RED}ゲ-ムフリ-ク$" @ geemufuriku ("Game Freak" in Japanese) + +gUnknown_085EE8EA:: @ 85EE8EA .string "{COLOR RED}{SHADOW LIGHT_RED}$" -gUnknown_085EE8F1:: @ 85EE8F1 +gText_Hoenn:: @ 85EE8F1 .string "HOENN$" -gUnknown_085EE8F7:: @ 85EE8F7 +gText_OhABite:: @ 85EE8F7 .string "Oh! A bite!$" -gUnknown_085EE903:: @ 85EE903 +gText_PokemonOnHook:: @ 85EE903 .string "A POKéMON’s on the hook!{PAUSE_UNTIL_PRESS}$" -gUnknown_085EE91E:: @ 85EE91E +gText_NotEvenANibble:: @ 85EE91E .string "Not even a nibble…{PAUSE_UNTIL_PRESS}$" -gUnknown_085EE933:: @ 85EE933 +gText_ItGotAway:: @ 85EE933 .string "It got away…{PAUSE_UNTIL_PRESS}$" -gUnknown_085EE942:: @ 85EE942 +gText_XWillBeSentToY:: @ 85EE942 .string "{STR_VAR_2} will be\nsent to {STR_VAR_1}.$" -gUnknown_085EE959:: @ 85EE959 +gText_ByeByeVar1:: @ 85EE959 .string "Bye-bye, {STR_VAR_2}!$" -gUnknown_085EE966:: @ 85EE966 +gText_XSentOverY:: @ 85EE966 .string "{STR_VAR_1} sent over {STR_VAR_3}.$" -gUnknown_085EE977:: @ 85EE977 +gText_TakeGoodCareOfX:: @ 85EE977 .string "Take good care of {STR_VAR_3}!$" - .include "data/text/easy_chat/easy_chat_group_names.inc" -gUnknown_085EEA42:: @ 85EEA42 +gText_ThreeQuestionMarks:: @ 85EEA42 .string "???$" + +gUnknown_085EEA46:: @ 85EEA46 .string "MAX. HP$" + +gUnknown_085EEA4E:: @ 85EEA4E .string "ATTACK$" + +gUnknown_085EEA55:: @ 85EEA55 .string "DEFENSE$" + +gUnknown_085EEA5D:: @ 85EEA5D .string "SPEED$" + +gUnknown_085EEA63:: @ 85EEA63 .string "SP. ATK$" + +gUnknown_085EEA6B:: @ 85EEA6B .string "SP. DEF$" -gUnknown_085EEA73:: @ 85EEA73 +gText_UnkCtrlF904:: @ 85EEA73 .string "{UNK_CTRL_F904}$" -gUnknown_085EEA76:: @ 85EEA76 +gText_Dash:: @ 85EEA76 .string "-$" -gUnknown_085EEA78:: @ 85EEA78 +gText_FromSpace:: @ 85EEA78 .string "From $" -gUnknown_085EEA7E:: @ 85EEA7E +gText_MixingRecords:: @ 85EEA7E .string "Mixing records…$" -gUnknown_085EEA8E:: @ 85EEA8E +gText_RecordMixingComplete:: @ 85EEA8E .string "Record mixing completed.\nThank you for waiting.$" + +gUnknown_085EEABE:: @ 85EEABE .string "YOUR NAME?$" + +gUnknown_085EEAC9:: @ 85EEAC9 .string "BOX NAME?$" + +gUnknown_085EEAD3:: @ 85EEAD3 .string "{STR_VAR_1}’s nickname?$" + +gUnknown_085EEAE2:: @ 85EEAE2 .string "Tell him the words.$" -gUnknown_085EEAF6:: @ 85EEAF6 +gText_MoveOkBack:: @ 85EEAF6 .string "{UNK_CTRL_F80C}MOVE {UNK_CTRL_F800}OK {UNK_CTRL_F801}BACK$" -gUnknown_085EEB0B:: @ 85EEB0B +gText_CallCantBeMadeHere:: @ 85EEB0B .string "A call can’t be made from here.$" + +gUnknown_085EEB2B:: .string "HANDSOME$" + +gUnknown_085EEB34:: .string "VINNY$" + +gUnknown_085EEB3A:: .string "MOREME$" + +gUnknown_085EEB41:: .string "IRONHARD$" + +gUnknown_085EEB4A:: .string "MUSCLE$" + +gUnknown_085EEB51:: .string "coolness$" + +gUnknown_085EEB5A:: .string "beauty$" + +gUnknown_085EEB61:: .string "cuteness$" + +gUnknown_085EEB6A:: .string "smartness$" + +gUnknown_085EEB74:: .string "toughness$" -gUnknown_085EEB7E:: @ 85EEB7E +gText_Lady2:: @ 85EEB7E .string "Lady$" + +gUnknown_085EEB83:: .string "slippery$" + +gUnknown_085EEB8C:: .string "roundish$" + +gUnknown_085EEB95:: .string "wham-ish$" + +gUnknown_085EEB9E:: .string "shiny$" + +gUnknown_085EEBA4:: .string "sticky$" + +gUnknown_085EEBAB:: .string "pointy$" -gUnknown_085EEBB2:: @ 85EEBB2 +gText_RentalPkmn2:: @ 85EEBB2 .string "RENTAL POKéMON$" -gUnknown_085EEBC1:: @ 85EEBC1 +gText_SelectFirstPkmn:: @ 85EEBC1 .string "Select the first POKéMON.$" -gUnknown_085EEBDB:: @ 85EEBDB +gText_SelectSecondPkmn:: @ 85EEBDB .string "Select the second POKéMON.$" -gUnknown_085EEBF6:: @ 85EEBF6 +gText_SelectThirdPkmn:: @ 85EEBF6 .string "Select the third POKéMON.$" -gUnknown_085EEC10:: @ 85EEC10 +gText_Rent:: @ 85EEC10 .string "RENT$" -gUnknown_085EEC15:: @ 85EEC15 +gText_Summary:: @ 85EEC15 .string "SUMMARY$" -gUnknown_085EEC1D:: @ 85EEC1D +gText_Others2:: @ 85EEC1D .string "OTHERS$" -gUnknown_085EEC24:: @ 85EEC24 +gText_Deselect:: @ 85EEC24 .string "DESELECT$" -gUnknown_085EEC2D:: @ 85EEC2D +gText_TheseThreePkmnOkay:: @ 85EEC2D .string "Are these three POKéMON OK?$" -gUnknown_085EEC49:: @ 85EEC49 +gText_Yes2:: @ 85EEC49 .string "YES$" -gUnknown_085EEC4D:: @ 85EEC4D +gText_No2:: @ 85EEC4D .string "NO$" -gUnknown_085EEC50:: @ 85EEC50 +gText_CantSelectSamePkmn:: @ 85EEC50 .string "Can’t select same {PKMN}.$" -gUnknown_085EEC66:: @ 85EEC66 +gText_PkmnSwap:: @ 85EEC66 .string "POKéMON SWAP$" -gUnknown_085EEC73:: @ 85EEC73 +gText_SelectPkmnToSwap:: @ 85EEC73 .string "Select POKéMON to swap.$" -gUnknown_085EEC8B:: @ 85EEC8B +gText_SelectPkmnToAccept:: @ 85EEC8B .string "Select POKéMON to accept.$" -gUnknown_085EECA5:: @ 85EECA5 +gText_Swap:: @ 85EECA5 .string "SWAP$" -gUnknown_085EECAA:: @ 85EECAA +gText_Summary2:: @ 85EECAA .string "SUMMARY$" -gUnknown_085EECB2:: @ 85EECB2 +gText_Rechoose:: @ 85EECB2 .string "RECHOOSE$" -gUnknown_085EECBB:: @ 85EECBB +gText_QuitSwapping:: @ 85EECBB .string "Quit swapping?$" -gUnknown_085EECCA:: @ 85EECCA +gText_Yes3:: @ 85EECCA .string "YES$" -gUnknown_085EECCE:: @ 85EECCE +gText_No3:: @ 85EECCE .string "NO$" -gUnknown_085EECD1:: @ 85EECD1 +gText_PkmnForSwap:: @ 85EECD1 .string "{PKMN} FOR SWAP$" -gUnknown_085EECDD:: @ 85EECDD +gText_Cancel3:: @ 85EECDD .string "CANCEL$" + +gUnknown_085EECE4:: @ 85EECE4 .string "SWAP$" + +gUnknown_085EECE9:: @ 85EECE9 .string "ACCEPT$" -gUnknown_085EECF0:: @ 85EECF0 +gText_AcceptThisPkmn:: @ 85EECF0 .string "Accept this POKéMON?$" + +gUnknown_085EED05:: @ 85EED05 .string " $" -gUnknown_085EED0A:: @ 85EED0A +gText_SamePkmnInPartyAlready:: @ 85EED0A .string "Same {PKMN} in party already.$" -gOtherText_DecimalPoint:: @ 85EED24 +gText_DecimalPoint:: @ 85EED24 .string ".$" -gUnknown_085EED26:: @ 85EED26 +gText_SavingPlayer:: @ 85EED26 .string "PLAYER$" -gUnknown_085EED2D:: @ 85EED2D +gText_SavingBadges:: @ 85EED2D .string "BADGES$" -gUnknown_085EED34:: @ 85EED34 +gText_SavingPokedex:: @ 85EED34 .string "POKéDEX$" -gUnknown_085EED3C:: @ 85EED3C +gText_SavingTime:: @ 85EED3C .string "TIME$" -gUnknown_085EED41:: @ 85EED41 +gText_WirelessCommStatus:: @ 85EED41 .string "Wireless Communication Status$" -gUnknown_085EED5F:: @ 85EED5F +gText_PeopleTrading:: @ 85EED5F .string "People trading:$" -gUnknown_085EED6F:: @ 85EED6F +gText_PeopleBattling:: @ 85EED6F .string "People battling:$" - -gUnknown_085EED80:: @ 85EED80 + +gText_PeopleInUnionRoom:: @ 85EED80 .string "People in the UNION ROOM:$" -gUnknown_085EED9A:: @ 85EED9A +gText_PeopleCommunicating:: @ 85EED9A .string "People communicating:$" -gUnknown_085EEDB0:: @ 85EEDB0 +gText_F700Players:: @ 85EEDB0 .string "{SPECIAL_F7 0} players$" - -gUnknown_085EEDBB:: @ 85EEDBB + +gText_F701Players:: @ 85EEDBB .string "{SPECIAL_F7 1} players$" - -gUnknown_085EEDC6:: @ 85EEDC6 + +gText_F702Players:: @ 85EEDC6 .string "{SPECIAL_F7 2} players$" - -gUnknown_085EEDD1:: @ 85EEDD1 + +gText_F703Players:: @ 85EEDD1 .string "{SPECIAL_F7 3} players$" .align 2 - .4byte gUnknown_085EEDB0 - .4byte gUnknown_085EEDBB - .4byte gUnknown_085EEDC6 - .4byte gUnknown_085EEDD1 - - .align 2 -gUnknown_085EEDEC:: @ 85EEDEC - .string "WONDER CARDS$" - - .align 2 -gUnknown_085EEDFC:: @ 85EEDFC - .string "WONDER NEWS$" - - .align 2 -gUnknown_085EEE08:: @ 85EEE08 - .string "WIRELESS COMMUNICATION$" - - .align 2 -gUnknown_085EEE20:: @ 85EEE20 - .string "FRIEND$" - - .align 2 -gUnknown_085EEE28:: @ 85EEE28 - .string "EXIT$" - - .align 2 -gUnknown_085EEE30:: @ 85EEE30 - .string "RECEIVE$" - - .align 2 -gUnknown_085EEE38:: @ 85EEE38 - .string "SEND$" - - .align 2 -gUnknown_085EEE40:: @ 85EEE40 - .string "TOSS$" - - .align 2 -gUnknown_085EEE48:: @ 85EEE48 - .string "A variety of events will be imported\nover Wireless Communication.$" - - .align 2 -gUnknown_085EEE8C:: @ 85EEE40 - .string "Read the WONDER CARDS in your\npossession.$" - - .align 2 -gUnknown_085EEEB8:: @ 85EEEB8 - .string "Read the NEWS that arrived.$" - - .align 2 -gUnknown_085EEED4:: @ 85EEED4 - .string "Return to the title screen.$" + .4byte gText_F700Players + .4byte gText_F701Players + .4byte gText_F702Players + .4byte gText_F703Players .align 2 -gUnknown_085EEEF0:: @ 85EEEF0 +gText_WonderCards:: @ 85EEDEC + .string "WONDER CARDS$" + + .align 2 +gText_WonderNews:: @ 85EEDFC + .string "WONDER NEWS$" + + .align 2 +gText_WirelessCommunication:: @ 85EEE08 + .string "WIRELESS COMMUNICATION$" + + .align 2 +gText_Friend2:: @ 85EEE20 + .string "FRIEND$" + + .align 2 +gText_Exit3:: @ 85EEE28 + .string "EXIT$" + + .align 2 +gText_Receive:: @ 85EEE30 + .string "RECEIVE$" + + .align 2 +gText_Send:: @ 85EEE38 + .string "SEND$" + + .align 2 +gText_Toss:: @ 85EEE40 + .string "TOSS$" + + .align 2 +gText_VarietyOfEventsImportedWireless:: @ 85EEE48 + .string "A variety of events will be imported\nover Wireless Communication.$" + + .align 2 +gText_WonderCardsInPossession:: @ 85EEE8C + .string "Read the WONDER CARDS in your\npossession.$" + + .align 2 +gText_ReadNewsThatArrived:: @ 85EEEB8 + .string "Read the NEWS that arrived.$" + + .align 2 +gText_ReturnToTitle:: @ 85EEED4 + .string "Return to the title screen.$" + + .align 2 +gText_DontHaveCardNewOneInput:: @ 85EEEF0 .string "You don’t have a WONDER CARD,\nso a new CARD will be input.$" .align 2 -gUnknown_085EEF2C:: @ 85EEF2C +gText_DontHaveNewsNewOneInput:: @ 85EEF2C .string "You don’t have any WONDER NEWS,\nso new NEWS will be input.$" .align 2 -gUnknown_085EEF68:: @ 85EEF68 +gText_WhereShouldCardBeAccessed:: @ 85EEF68 .string "Where should the WONDER CARD\nbe accessed?$" .align 2 -gUnknown_085EEF94:: @ 85EEF94 +gText_WhereShouldNewsBeAccessed:: @ 85EEF94 .string "Where should the WONDER NEWS\nbe accessed?$" .align 2 + +gUnknown_085EEFC0:: @ 85EEFC0 .string "Communication standby…\nB Button: Cancel$" .align 2 -gUnknown_085EEFE8:: @ 85EEFE8 - .string "Communicating…$" +gText_Communicating:: @ 85EEFE8 + .string "Communicating…$" .align 2 -gUnknown_085EEFF8:: @ 85EEFF8 - .string "Communication completed.$" +gText_CommunicationCompleted:: @ 85EEFF8 + .string "Communication completed.$" .align 2 -gUnknown_085EF014:: @ 85EF014 - .string "Communication error.$" +gText_CommunicationError:: @ 85EF014 + .string "Communication error.$" .align 2 -gUnknown_085EF02C:: @ 85EF02C - .string "Communication has been canceled.$" +gText_CommunicationCanceled:: @ 85EF02C + .string "Communication has been canceled.$" .align 2 -gUnknown_085EF050:: @ 85EF050 - .string "Throw away the WONDER CARD\nand input a new CARD?$" +gText_ThrowAwayWonderCard:: @ 85EF050 + .string "Throw away the WONDER CARD\nand input a new CARD?$" .align 2 -gUnknown_085EF084:: @ 85EF084 - .string "You haven’t received the CARD’s gift\nyet. Input a new CARD anyway?$" +gText_HaventReceivedCardsGift:: @ 85EF084 + .string "You haven’t received the CARD’s gift\nyet. Input a new CARD anyway?$" .align 2 -gUnknown_085EF0C8:: @ 85EF0C8 - .string "A WONDER CARD has been received\nfrom {STR_VAR_1}.$" +gText_WonderCardReceivedFrom:: @ 85EF0C8 + .string "A WONDER CARD has been received\nfrom {STR_VAR_1}.$" .align 2 -gUnknown_085EF0F4:: @ 85EF0F4 - .string "A WONDER NEWS item has been\nreceived from {STR_VAR_1}.$" +gText_WonderNewsReceivedFrom:: @ 85EF0F4 + .string "A WONDER NEWS item has been\nreceived from {STR_VAR_1}.$" .align 2 -gUnknown_085EF124:: @ 85EF124 - .string "A new WONDER CARD has been\nreceived.$" +gText_WonderCardReceived:: @ 85EF124 + .string "A new WONDER CARD has been\nreceived.$" .align 2 -gUnknown_085EF14C:: @ 85EF14C - .string "A new WONDER NEWS item has been\nreceived.$" +gText_WonderNewsReceived:: @ 85EF14C + .string "A new WONDER NEWS item has been\nreceived.$" .align 2 -gUnknown_085EF178:: @ 85EF178 - .string "A new STAMP has been received.$" +gText_NewStampReceived:: @ 85EF178 + .string "A new STAMP has been received.$" .align 2 -gUnknown_085EF198:: @ 85EF198 - .string "A new TRAINER has arrived.$" +gText_NewTrainerReceived:: @ 85EF198 + .string "A new TRAINER has arrived.$" .align 2 -gUnknown_085EF1B4:: @ 85EF1B4 - .string "You already had that\nWONDER CARD.$" +gText_AlreadyHadCard:: @ 85EF1B4 + .string "You already had that\nWONDER CARD.$" .align 2 -gUnknown_085EF1D8:: @ 85EF1D8 - .string "You already had that\nWONDER NEWS item.$" +gText_AlreadyHadNews:: @ 85EF1D8 + .string "You already had that\nWONDER NEWS item.$" .align 2 -gUnknown_085EF200:: @ 85EF200 +gText_AlreadyHadStamp:: @ 85EF200 .string "You already had that\nSTAMP.$" .align 2 -gUnknown_085EF21C:: @ 85EF21C +gText_NoMoreRoomForStamps:: @ 85EF21C .string "There’s no more room for adding\nSTAMPS.$" .align 2 -gUnknown_085EF244:: @ 85EF244 +gText_RecordUploadedViaWireless:: @ 85EF244 .string "Your record has been uploaded via\nWIRELESS COMMUNICATION.$" .align 2 -gUnknown_085EF280:: @ 85EF280 +gText_CantAcceptCardFromTrainer:: @ 85EF280 .string "You can’t accept a WONDER CARD\nfrom this TRAINER.$" .align 2 -gUnknown_085EF2B4:: @ 85EF2B4 +gText_CantAcceptNewsFromTrainer:: @ 85EF2B4 .string "You can’t accept WONDER NEWS\nfrom this TRAINER.$" .align 2 -gUnknown_085EF2E4:: @ 85EF2E4 +gText_NothingSentOver:: @ 85EF2E4 .string "Nothing was sent over…$" .align 2 -gUnknown_085EF2FC:: @ 85EF2FC +gText_WhatToDoWithCards:: @ 85EF2FC .string "What would you like to do\nwith the WONDER CARDS?$" .align 2 -gUnknown_085EF330:: @ 85EF330 +gText_WhatToDoWithNews:: @ 85EF330 .string "What would you like to do\nwith the WONDER NEWS?$" .align 2 -gUnknown_085EF360:: @ 85EF360 +gText_SendingWonderCard:: @ 85EF360 .string "Sending your WONDER CARD…$" .align 2 -gUnknown_085EF37C:: @ 85EF37C +gText_SendingWonderNews:: @ 85EF37C .string "Sending your WONDER NEWS item…$" .align 2 -gUnknown_085EF39C:: @ 85EF39C +gText_WonderCardSentTo:: @ 85EF39C .string "Your WONDER CARD has been sent\nto {STR_VAR_1}.$" .align 2 -gUnknown_085EF3C4:: @ 85EF3C4 +gText_WonderNewsSentTo:: @ 85EF3C4 .string "Your WONDER NEWS item has been\nsent to {STR_VAR_1}.$" .align 2 -gUnknown_085EF3F0:: @ 85EF3F0 +gText_StampSentTo:: @ 85EF3F0 .string "A STAMP has been sent to {STR_VAR_1}.$" .align 2 -gUnknown_085EF410:: @ 85EF410 +gText_GiftSentTo:: @ 85EF410 .string "A GIFT has been sent to {STR_VAR_1}.$" .align 2 -gUnknown_085EF42C:: @ 85EF42C +gText_OtherTrainerHasCard:: @ 85EF42C .string "The other TRAINER has the same\nWONDER CARD already.$" .align 2 -gUnknown_085EF460:: @ 85EF460 +gText_OtherTrainerHasNews:: @ 85EF460 .string "The other TRAINER has the same\nWONDER NEWS already.$" .align 2 -gUnknown_085EF494:: @ 85EF494 +gText_OtherTrainerHasStamp:: @ 85EF494 .string "The other TRAINER has the same\nSTAMP already.$" .align 2 -gUnknown_085EF4C4:: @ 85EF4C4 +gText_OtherTrainerCanceled:: @ 85EF4C4 .string "The other TRAINER canceled\ncommunication.$" .align 2 -gUnknown_085EF4F0:: @ 85EF4F0 +gText_CantSendGiftToTrainer:: @ 85EF4F0 .string "You can’t send a MYSTERY GIFT to\nthis TRAINER.$" .align 2 -gUnknown_085EF520:: @ 85EF520 +gText_IfThrowAwayCardEventWontHappen:: @ 85EF520 .string "If you throw away the CARD,\nits event won’t happen. Okay?$" .align 2 -gUnknown_085EF55C:: @ 85EF55C +gText_OkayToDiscardNews:: @ 85EF55C .string "Is it okay to discard this\nNEWS item?$" .align 2 -gUnknown_085EF584:: @ 85EF584 +gText_HaventReceivedGiftOkayToDiscard:: @ 85EF584 .string "You haven’t received the\nGIFT. Is it okay to discard?$" .align 2 -gUnknown_085EF5BC:: @ 85EF5BC +gText_DataWillBeSaved:: @ 85EF5BC .string "Data will be saved.\nPlease wait.$" .align 2 -gUnknown_085EF5E0:: @ 85EF5E0 +gText_SaveCompletedPressA:: @ 85EF5E0 .string "Save completed.\nPlease press the A Button.$" .align 2 -gUnknown_085EF60C:: @ 85EF60C +gText_WonderCardThrownAway:: @ 85EF60C .string "The WONDER CARD was thrown away.$" .align 2 -gUnknown_085EF630:: @ 85EF630 +gText_WonderNewsThrownAway:: @ 85EF630 .string "The WONDER NEWS was thrown away.$" .align 2 -gUnknown_085EF654:: @ 85EF654 +gText_MysteryGift:: @ 85EF654 .string "MYSTERY GIFT$" .align 2 -gUnknown_085EF664:: @ 85EF664 +gText_PickOKExit:: @ 85EF664 .string "{UNK_CTRL_F80A}PICK {UNK_CTRL_F800}OK {UNK_CTRL_F801}EXIT$" .align 2 -gUnknown_085EF678:: @ 85EF678 +gText_PickOKCancel:: @ 85EF678 .string "{UNK_CTRL_F80A}PICK {UNK_CTRL_F800}OK {UNK_CTRL_F801}CANCEL$" -gUnknown_085EF68D:: @ 85EF68D +gText_PlayersBattleResults:: @ 85EF68D .string "{PLAYER}’s BATTLE RESULTS$" -gUnknown_085EF6A1:: @ 85EF6A1 +gText_TotalRecordWLD:: @ 85EF6A1 .string "TOTAL RECORD W:{STR_VAR_1} L:{STR_VAR_2} D:{STR_VAR_3}$" -gUnknown_085EF6BD:: @ 85EF6BD +gText_WinLoseDraw:: @ 85EF6BD .string "{CLEAR_TO 0x53}WIN{CLEAR_TO 0x80}LOSE{CLEAR_TO 0xB0}DRAW$" - -gUnknown_085EF6D2:: @ 85EF6D2 + +gText_CommunicationStandby5:: @ 85EF6D2 .string "Communication standby…$" -gUnknown_085EF6E9:: @ 85EF6E9 +gText_QuitTheGame:: @ 85EF6E9 .string "Quit the game?$" -gUnknown_085EF6F8:: @ 85EF6F8 +gText_YouveGot9999Coins:: @ 85EF6F8 .string "You’ve got 9,999 COINS.$" -gUnknown_085EF710:: @ 85EF710 +gText_YouveRunOutOfCoins:: @ 85EF710 .string "You’ve run out of COINS.\nGame over!$" -gUnknown_085EF734:: @ 85EF734 +gText_YouDontHaveThreeCoins:: @ 85EF734 .string "You don’t have three COINS.$" -gUnknown_085EF750:: @ 85EF750 +gText_ReelTimeHelp:: @ 85EF750 .string "REEL TIME\nHere’s your chance to take\naim and nail marks!\nReel Time continues for the\nawarded number of spins.\nIt all ends on a Big Bonus.$" + +gUnknown_085EF7DA:: @ 85EF7DA .string "The two seem to get along\nvery well.$" + +gUnknown_085EF7FF:: @ 85EF7FF .string "The two seem to get along.$" + +gUnknown_085EF81A:: @ 85EF81A .string "The two don’t seem to like\neach other much.$" + +gUnknown_085EF846:: @ 85EF846 .string "The two prefer to play with other\nPOKéMON than each other.$" -gUnknown_085EF881:: @ 85EF881 +gText_NewLine2:: @ 85EF881 .string "\n$" -gUnknown_085EF883:: @ 85EF883 +gText_Exit4:: @ 85EF883 .string "EXIT$" -gUnknown_085EF888:: @ 85EF888 +gText_Lv:: @ 85EF888 .string "{LV}$" -gUnknown_085EF88A:: @ 85EF88A +gText_TimeBoard:: @ 85EF88A .string "TIME BOARD$" -gUnknown_085EF895:: @ 85EF895 +gText_TimeCleared:: @ 85EF895 .string "TIME CLEARED $" -gUnknown_085EF8A3:: @ 85EF8A3 +gText_XMinYDotZSec:: @ 85EF8A3 .string "{STR_VAR_1} min. {STR_VAR_2}.{STR_VAR_3} sec.$" + +gUnknown_085EF8B6:: @ 85EF8B6 .string "1F$" + +gUnknown_085EF8B9:: @ 85EF8B9 .string "2F$" + +gUnknown_085EF8BC:: @ 85EF8BC .string "3F$" + +gUnknown_085EF8BF:: @ 85EF8BF .string "4F$" -gUnknown_085EF8C2:: @ 85EF8C2 +gText_TeachWhichMoveToPkmn:: @ 85EF8C2 .string "Teach which move to {STR_VAR_1}?$" -gUnknown_085EF8DA:: @ 85EF8DA +gText_TeachX:: @ 85EF8DA .string "Teach {STR_VAR_2}?$" -gUnknown_085EF8E4:: @ 85EF8E4 +gText_PkmnLearnedMove4:: @ 85EF8E4 .string "{STR_VAR_1} learned\n{STR_VAR_2}!$" -gUnknown_085EF8F3:: @ 85EF8F3 +gText_PkmnTryingToLearnMove:: @ 85EF8F3 .string "{STR_VAR_1} is trying to learn\n{STR_VAR_2}.\pBut {STR_VAR_1} can’t learn more\nthan four moves.\pDelete an older move to make\nroom for {STR_VAR_2}?$" -gUnknown_085EF960:: @ 85EF960 +gText_StopTryingToTeachMove:: @ 85EF960 .string "Stop trying to teach\n{STR_VAR_2}?$" -gUnknown_085EF979:: @ 85EF979 +gText_12AndPoof:: @ 85EF979 .string "{PAUSE 32}1, {PAUSE 15}2, and {PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE 0x0038}Poof!\p$" -gUnknown_085EF9A6:: @ 85EF9A6 +gText_PkmnForgotMoveAndLearnedNew:: @ 85EF9A6 .string "{STR_VAR_1} forgot {STR_VAR_3}.\pAnd…\p{STR_VAR_1} learned {STR_VAR_2}.$" + +gUnknown_085EF9C8:: @ 85EF9C8 .string "{STR_VAR_1} did not learn the\nmove {STR_VAR_2}.$" -gUnknown_085EF9E6:: @ 85EF9E6 +gText_GiveUpTeachingNewMove:: @ 85EF9E6 .string "Give up trying to teach a new\nmove to {STR_VAR_1}?$" -gUnknown_085EFA10:: @ 85EFA10 +gText_WhichMoveToForget2:: @ 85EFA10 .string "Which move should be\nforgotten?\p$" -gUnknown_085EFA31:: @ 85EFA31 +gText_BattleMoves2:: @ 85EFA31 .string "BATTLE MOVES$" -gUnknown_085EFA3E:: @ 85EFA3E +gText_ContestMoves2:: @ 85EFA3E .string "CONTEST MOVES$" + +gUnknown_085EFA4C:: @ 85EFA4C .string "TYPE/$" -gUnknown_085EFA52:: @ 85EFA52 +gText_PPSlash:: @ 85EFA52 .string "PP/$" -gUnknown_085EFA56:: @ 85EFA56 +gText_PowerSlash:: @ 85EFA56 .string "POWER/$" -gUnknown_085EFA5D:: @ 85EFA5D +gText_AccuracySlash:: @ 85EFA5D .string "ACCURACY/$" -gUnknown_085EFA67:: @ 85EFA67 +gText_Appeal2:: @ 85EFA67 .string "APPEAL$" -gUnknown_085EFA6E:: @ 85EFA6E +gText_Jam2:: @ 85EFA6E .string "JAM$" + +gUnknown_085EFA72:: @ 85EFA72 .string "KIRA$" + +gUnknown_085EFA77:: @ 85EFA77 .string "AMY$" + +gUnknown_085EFA7B:: @ 85EFA7B .string "JOHN$" + +gUnknown_085EFA80:: @ 85EFA80 .string "ROY$" + +gUnknown_085EFA84:: @ 85EFA84 .string "GABBY$" + +gUnknown_085EFA8A:: @ 85EFA8A .string "ANNA$" -gUnknown_085EFA8F:: @ 85EFA8F +gText_ClearAllSaveData:: @ 85EFA8F .string "Clear all save data areas?$" -gUnknown_085EFAAA:: @ 85EFAAA +gText_ClearingData:: @ 85EFAAA .string "Clearing data…\nPlease wait.$" -gUnknown_085EFAC6:: @ 85EFAC6 +gText_IsThisTheCorrectTime:: @ 85EFAC6 .string "Is this the correct time?$" -gUnknown_085EFAE0:: @ 85EFAE0 +gText_Confirm3:: @ 85EFAE0 .string "CONFIRM$" -gUnknown_085EFAE8:: @ 85EFAE8 +gText_Cancel4:: @ 85EFAE8 .string "CANCEL$" + +gUnknown_085EFAEF:: @ 85EFAEF .string "DEVON PRES$" + +gUnknown_085EFAFA:: @ 85EFAFA .string "MR. STONE$" + +gUnknown_085EFB04:: @ 85EFB04 .string "HARD AS ROCK$" + +gUnknown_085EFB11:: @ 85EFB11 .string "STEVEN$" + +gUnknown_085EFB18:: @ 85EFB18 .string "RAD NEIGHBOR$" + +gUnknown_085EFB25:: @ 85EFB25 .string "RELIABLE ONE$" + +gUnknown_085EFB32:: @ 85EFB32 .string "CALM & KIND$" + +gUnknown_085EFB3E:: @ 85EFB3E .string "{PKMN} LOVER$" + +gUnknown_085EFB47:: @ 85EFB47 .string "DAD$" + +gUnknown_085EFB4B:: @ 85EFB4B .string "MOM$" + +gUnknown_085EFB4F:: @ 85EFB4F .string "ELUSIVE EYES$" + +gUnknown_085EFB5C:: @ 85EFB5C .string "SCOTT$" + +gUnknown_085EFB62:: @ 85EFB62 .string "ROCKIN’ WHIZ$" + +gUnknown_085EFB6F:: @ 85EFB6F .string "THE BIG HIT$" + +gUnknown_085EFB7B:: @ 85EFB7B .string "SWELL SHOCK$" + +gUnknown_085EFB87:: @ 85EFB87 .string "PASSION BURN$" + +gUnknown_085EFB94:: @ 85EFB94 .string "SKY TAMER$" + +gUnknown_085EFB9E:: @ 85EFB9E .string "MYSTIC DUO$" + +gUnknown_085EFBA9:: @ 85EFBA9 .string "DANDY CHARM$" + +gUnknown_085EFBB5:: @ 85EFBB5 .string "ELITE FOUR$" + +gUnknown_085EFBC0:: @ 85EFBC0 .string "CHAMPION$" + +gUnknown_085EFBC9:: @ 85EFBC9 .string "{PKMN} PROF.$" -gUnknown_085EFBD2:: @ 85EFBD2 +gText_CommStandbyAwaitingOtherPlayer:: @ 85EFBD2 .string "Communication standby…\nAwaiting another player to choose.$" -gUnknown_085EFC0C:: @ 85EFC0C +gText_BattleWasRefused:: @ 85EFC0C .string "The battle was refused.{PAUSE 60}$" -gUnknown_085EFC27:: @ 85EFC27 +gText_RefusedBattle:: @ 85EFC27 .string "Refused the battle.{PAUSE 60}$" + +gUnknown_085EFC3E:: @ 85EFC3E .string "NO WEATHER$" + +gUnknown_085EFC49:: @ 85EFC49 .string "SUNNY$" + +gUnknown_085EFC4F:: @ 85EFC4F .string "SUNNY2$" + +gUnknown_085EFC56:: @ 85EFC56 .string "RAIN$" + +gUnknown_085EFC5B:: @ 85EFC5B .string "SNOW$" + +gUnknown_085EFC60:: @ 85EFC60 .string "LIGHTNING$" + +gUnknown_085EFC6A:: @ 85EFC6A .string "FOG$" + +gUnknown_085EFC6E:: @ 85EFC6E .string "VOLCANO ASH$" + +gUnknown_085EFC7A:: @ 85EFC7A .string "SANDSTORM$" + +gUnknown_085EFC84:: @ 85EFC84 .string "FOG2$" + +gUnknown_085EFC89:: @ 85EFC89 .string "SEAFLOOR$" + +gUnknown_085EFC92:: @ 85EFC92 .string "CLOUDY$" + +gUnknown_085EFC99:: @ 85EFC99 .string "SUNNY3$" + +gUnknown_085EFCA0:: @ 85EFCA0 .string "HEAVY RAIN$" + +gUnknown_085EFCAB:: @ 85EFCAB .string "SEAFLOOR2$" + +gUnknown_085EFCB5:: @ 85EFCB5 .string "DEL. ALL$" + +gUnknown_085EFCBE:: @ 85EFCBE .string "CANCEL$" + +gUnknown_085EFCC5:: @ 85EFCC5 .string "OK$" + +gUnknown_085EFCC8:: @ 85EFCC8 .string "QUIZ$" + +gUnknown_085EFCCD:: @ 85EFCCD .string "ANSWER$" -gOtherText_PokeBalls:: @ 85EFCD4 +gText_PokeBalls:: @ 85EFCD4 .string "POKé BALLS$" -gOtherText_Berry:: @ 85EFCDF +gText_Berry:: @ 85EFCDF .string "BERRY$" -gOtherText_Berries:: @ 85EFCE5 +gText_Berries:: @ 85EFCE5 .string "BERRIES$" diff --git a/data/text/move_descriptions.inc b/data/text/move_descriptions.inc index 454e49ae1..0f6b1adbf 100644 --- a/data/text/move_descriptions.inc +++ b/data/text/move_descriptions.inc @@ -1,3 +1,6 @@ +gNullMoveDescription:: @ 86181C0 + .string "$" + gPoundMoveDescription:: @ 86181C1 .string "Pounds the foe with\nforelegs or tail.$" diff --git a/data/text_window.s b/data/text_window.s new file mode 100644 index 000000000..a7389572b --- /dev/null +++ b/data/text_window.s @@ -0,0 +1,17 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_0850E87C:: @ 850E87C + .incbin "baserom.gba", 0x50e87c, 0x1680 + +gUnknown_0850FEFC:: @ 850FEFC + .incbin "baserom.gba", 0x50fefc, 0x280 + +gUnknown_0851017C:: @ 851017C + .incbin "baserom.gba", 0x51017c, 0xa0 + +gUnknown_0851021C:: @ 851021C + .incbin "baserom.gba", 0x51021c, 0xa0 diff --git a/data/tilesets/primary/building/anim/0.png b/data/tilesets/primary/building/anim/0.png new file mode 100644 index 000000000..004eccc67 Binary files /dev/null and b/data/tilesets/primary/building/anim/0.png differ diff --git a/data/tilesets/primary/building/anim/1.png b/data/tilesets/primary/building/anim/1.png new file mode 100644 index 000000000..e28281dea Binary files /dev/null and b/data/tilesets/primary/building/anim/1.png differ diff --git a/data/tilesets/primary/general/anim/0/0.png b/data/tilesets/primary/general/anim/0/0.png new file mode 100644 index 000000000..d535d920e Binary files /dev/null and b/data/tilesets/primary/general/anim/0/0.png differ diff --git a/data/tilesets/primary/general/anim/0/1.png b/data/tilesets/primary/general/anim/0/1.png new file mode 100644 index 000000000..74f93ecce Binary files /dev/null and b/data/tilesets/primary/general/anim/0/1.png differ diff --git a/data/tilesets/primary/general/anim/0/2.png b/data/tilesets/primary/general/anim/0/2.png new file mode 100644 index 000000000..fb0bfe89f Binary files /dev/null and b/data/tilesets/primary/general/anim/0/2.png differ diff --git a/data/tilesets/primary/general/anim/1/0.png b/data/tilesets/primary/general/anim/1/0.png new file mode 100644 index 000000000..a7bb2e631 Binary files /dev/null and b/data/tilesets/primary/general/anim/1/0.png differ diff --git a/data/tilesets/primary/general/anim/1/1.png b/data/tilesets/primary/general/anim/1/1.png new file mode 100644 index 000000000..c215f1683 Binary files /dev/null and b/data/tilesets/primary/general/anim/1/1.png differ diff --git a/data/tilesets/primary/general/anim/1/2.png b/data/tilesets/primary/general/anim/1/2.png new file mode 100644 index 000000000..f8e0ee273 Binary files /dev/null and b/data/tilesets/primary/general/anim/1/2.png differ diff --git a/data/tilesets/primary/general/anim/1/3.png b/data/tilesets/primary/general/anim/1/3.png new file mode 100644 index 000000000..6c6ce3611 Binary files /dev/null and b/data/tilesets/primary/general/anim/1/3.png differ diff --git a/data/tilesets/primary/general/anim/1/4.png b/data/tilesets/primary/general/anim/1/4.png new file mode 100644 index 000000000..cc1f9576c Binary files /dev/null and b/data/tilesets/primary/general/anim/1/4.png differ diff --git a/data/tilesets/primary/general/anim/1/5.png b/data/tilesets/primary/general/anim/1/5.png new file mode 100644 index 000000000..3c0c57a86 Binary files /dev/null and b/data/tilesets/primary/general/anim/1/5.png differ diff --git a/data/tilesets/primary/general/anim/1/6.png b/data/tilesets/primary/general/anim/1/6.png new file mode 100644 index 000000000..be5ecacaa Binary files /dev/null and b/data/tilesets/primary/general/anim/1/6.png differ diff --git a/data/tilesets/primary/general/anim/1/7.png b/data/tilesets/primary/general/anim/1/7.png new file mode 100644 index 000000000..85bc7561a Binary files /dev/null and b/data/tilesets/primary/general/anim/1/7.png differ diff --git a/data/tilesets/primary/general/anim/2/0.png b/data/tilesets/primary/general/anim/2/0.png new file mode 100644 index 000000000..6f9f0c309 Binary files /dev/null and b/data/tilesets/primary/general/anim/2/0.png differ diff --git a/data/tilesets/primary/general/anim/2/1.png b/data/tilesets/primary/general/anim/2/1.png new file mode 100644 index 000000000..bef1f3023 Binary files /dev/null and b/data/tilesets/primary/general/anim/2/1.png differ diff --git a/data/tilesets/primary/general/anim/2/2.png b/data/tilesets/primary/general/anim/2/2.png new file mode 100644 index 000000000..b5d7a9ee9 Binary files /dev/null and b/data/tilesets/primary/general/anim/2/2.png differ diff --git a/data/tilesets/primary/general/anim/2/3.png b/data/tilesets/primary/general/anim/2/3.png new file mode 100644 index 000000000..42a953a83 Binary files /dev/null and b/data/tilesets/primary/general/anim/2/3.png differ diff --git a/data/tilesets/primary/general/anim/2/4.png b/data/tilesets/primary/general/anim/2/4.png new file mode 100644 index 000000000..112b20077 Binary files /dev/null and b/data/tilesets/primary/general/anim/2/4.png differ diff --git a/data/tilesets/primary/general/anim/2/5.png b/data/tilesets/primary/general/anim/2/5.png new file mode 100644 index 000000000..7f58c0b94 Binary files /dev/null and b/data/tilesets/primary/general/anim/2/5.png differ diff --git a/data/tilesets/primary/general/anim/2/6.png b/data/tilesets/primary/general/anim/2/6.png new file mode 100644 index 000000000..784a543b4 Binary files /dev/null and b/data/tilesets/primary/general/anim/2/6.png differ diff --git a/data/tilesets/primary/general/anim/3/0.png b/data/tilesets/primary/general/anim/3/0.png new file mode 100644 index 000000000..2f8bb49b6 Binary files /dev/null and b/data/tilesets/primary/general/anim/3/0.png differ diff --git a/data/tilesets/primary/general/anim/3/1.png b/data/tilesets/primary/general/anim/3/1.png new file mode 100644 index 000000000..5a2744a66 Binary files /dev/null and b/data/tilesets/primary/general/anim/3/1.png differ diff --git a/data/tilesets/primary/general/anim/3/2.png b/data/tilesets/primary/general/anim/3/2.png new file mode 100644 index 000000000..0ddf1cda7 Binary files /dev/null and b/data/tilesets/primary/general/anim/3/2.png differ diff --git a/data/tilesets/primary/general/anim/3/3.png b/data/tilesets/primary/general/anim/3/3.png new file mode 100644 index 000000000..f3fee8470 Binary files /dev/null and b/data/tilesets/primary/general/anim/3/3.png differ diff --git a/data/tilesets/primary/general/anim/4/0.png b/data/tilesets/primary/general/anim/4/0.png new file mode 100644 index 000000000..90dc0bc02 Binary files /dev/null and b/data/tilesets/primary/general/anim/4/0.png differ diff --git a/data/tilesets/primary/general/anim/4/1.png b/data/tilesets/primary/general/anim/4/1.png new file mode 100644 index 000000000..4459a94e5 Binary files /dev/null and b/data/tilesets/primary/general/anim/4/1.png differ diff --git a/data/tilesets/primary/general/anim/4/2.png b/data/tilesets/primary/general/anim/4/2.png new file mode 100644 index 000000000..389875c31 Binary files /dev/null and b/data/tilesets/primary/general/anim/4/2.png differ diff --git a/data/tilesets/primary/general/anim/4/3.png b/data/tilesets/primary/general/anim/4/3.png new file mode 100644 index 000000000..ac8936cce Binary files /dev/null and b/data/tilesets/primary/general/anim/4/3.png differ diff --git a/data/tilesets/primary/general/tiles.png b/data/tilesets/primary/general/tiles.png index 3d1e90510..121e835a2 100644 Binary files a/data/tilesets/primary/general/tiles.png and b/data/tilesets/primary/general/tiles.png differ diff --git a/data/tilesets/primary/inside_building/tiles.png b/data/tilesets/primary/inside_building/tiles.png index 7d267dfb7..506bb7400 100644 Binary files a/data/tilesets/primary/inside_building/tiles.png and b/data/tilesets/primary/inside_building/tiles.png differ diff --git a/data/tilesets/primary/secret_base/tiles.png b/data/tilesets/primary/secret_base/tiles.png index 9adc0e13f..9dee014ea 100644 Binary files a/data/tilesets/primary/secret_base/tiles.png and b/data/tilesets/primary/secret_base/tiles.png differ diff --git a/data/tilesets/primary/secret_base/unknown_tiles.png b/data/tilesets/primary/secret_base/unknown_tiles.png index dd5c4e16a..3ca4d9e87 100644 Binary files a/data/tilesets/primary/secret_base/unknown_tiles.png and b/data/tilesets/primary/secret_base/unknown_tiles.png differ diff --git a/data/tilesets/secondary/battle_arena/tiles.png b/data/tilesets/secondary/battle_arena/tiles.png index 43297aa7b..7414666df 100644 Binary files a/data/tilesets/secondary/battle_arena/tiles.png and b/data/tilesets/secondary/battle_arena/tiles.png differ diff --git a/data/tilesets/secondary/battle_dome/tiles.png b/data/tilesets/secondary/battle_dome/tiles.png index e0fce3196..be3708bfd 100644 Binary files a/data/tilesets/secondary/battle_dome/tiles.png and b/data/tilesets/secondary/battle_dome/tiles.png differ diff --git a/data/tilesets/secondary/battle_factory/tiles.png b/data/tilesets/secondary/battle_factory/tiles.png index 7857f0813..4d9463b20 100644 Binary files a/data/tilesets/secondary/battle_factory/tiles.png and b/data/tilesets/secondary/battle_factory/tiles.png differ diff --git a/data/tilesets/secondary/battle_frontier/tiles.png b/data/tilesets/secondary/battle_frontier/tiles.png index 70ec420e9..1b14ce555 100644 Binary files a/data/tilesets/secondary/battle_frontier/tiles.png and b/data/tilesets/secondary/battle_frontier/tiles.png differ diff --git a/data/tilesets/secondary/battle_frontier_outside_east/anim/0.png b/data/tilesets/secondary/battle_frontier_outside_east/anim/0.png new file mode 100644 index 000000000..8a9905198 Binary files /dev/null and b/data/tilesets/secondary/battle_frontier_outside_east/anim/0.png differ diff --git a/data/tilesets/secondary/battle_frontier_outside_east/anim/1.png b/data/tilesets/secondary/battle_frontier_outside_east/anim/1.png new file mode 100644 index 000000000..836986b12 Binary files /dev/null and b/data/tilesets/secondary/battle_frontier_outside_east/anim/1.png differ diff --git a/data/tilesets/secondary/battle_frontier_outside_east/anim/2.png b/data/tilesets/secondary/battle_frontier_outside_east/anim/2.png new file mode 100644 index 000000000..660d3080f Binary files /dev/null and b/data/tilesets/secondary/battle_frontier_outside_east/anim/2.png differ diff --git a/data/tilesets/secondary/battle_frontier_outside_east/anim/3.png b/data/tilesets/secondary/battle_frontier_outside_east/anim/3.png new file mode 100644 index 000000000..7fe571b4a Binary files /dev/null and b/data/tilesets/secondary/battle_frontier_outside_east/anim/3.png differ diff --git a/data/tilesets/secondary/battle_frontier_outside_east/tiles.png b/data/tilesets/secondary/battle_frontier_outside_east/tiles.png index 20cb7d67e..da34656d1 100644 Binary files a/data/tilesets/secondary/battle_frontier_outside_east/tiles.png and b/data/tilesets/secondary/battle_frontier_outside_east/tiles.png differ diff --git a/data/tilesets/secondary/battle_frontier_outside_west/anim/0.png b/data/tilesets/secondary/battle_frontier_outside_west/anim/0.png new file mode 100644 index 000000000..8a9905198 Binary files /dev/null and b/data/tilesets/secondary/battle_frontier_outside_west/anim/0.png differ diff --git a/data/tilesets/secondary/battle_frontier_outside_west/anim/1.png b/data/tilesets/secondary/battle_frontier_outside_west/anim/1.png new file mode 100644 index 000000000..836986b12 Binary files /dev/null and b/data/tilesets/secondary/battle_frontier_outside_west/anim/1.png differ diff --git a/data/tilesets/secondary/battle_frontier_outside_west/anim/2.png b/data/tilesets/secondary/battle_frontier_outside_west/anim/2.png new file mode 100644 index 000000000..660d3080f Binary files /dev/null and b/data/tilesets/secondary/battle_frontier_outside_west/anim/2.png differ diff --git a/data/tilesets/secondary/battle_frontier_outside_west/anim/3.png b/data/tilesets/secondary/battle_frontier_outside_west/anim/3.png new file mode 100644 index 000000000..7fe571b4a Binary files /dev/null and b/data/tilesets/secondary/battle_frontier_outside_west/anim/3.png differ diff --git a/data/tilesets/secondary/battle_frontier_outside_west/tiles.png b/data/tilesets/secondary/battle_frontier_outside_west/tiles.png index 3d5ea94f9..03704bfd0 100644 Binary files a/data/tilesets/secondary/battle_frontier_outside_west/tiles.png and b/data/tilesets/secondary/battle_frontier_outside_west/tiles.png differ diff --git a/data/tilesets/secondary/battle_frontier_ranking_hall/tiles.png b/data/tilesets/secondary/battle_frontier_ranking_hall/tiles.png index cf54e1d77..1c1f700c0 100644 Binary files a/data/tilesets/secondary/battle_frontier_ranking_hall/tiles.png and b/data/tilesets/secondary/battle_frontier_ranking_hall/tiles.png differ diff --git a/data/tilesets/secondary/battle_palace/tiles.png b/data/tilesets/secondary/battle_palace/tiles.png index a848a9eef..4e11e3596 100644 Binary files a/data/tilesets/secondary/battle_palace/tiles.png and b/data/tilesets/secondary/battle_palace/tiles.png differ diff --git a/data/tilesets/secondary/battle_pike/tiles.png b/data/tilesets/secondary/battle_pike/tiles.png index cba2f5794..fc11f1d1a 100644 Binary files a/data/tilesets/secondary/battle_pike/tiles.png and b/data/tilesets/secondary/battle_pike/tiles.png differ diff --git a/data/tilesets/secondary/battle_pyramid/anim/0/0.png b/data/tilesets/secondary/battle_pyramid/anim/0/0.png new file mode 100644 index 000000000..c0fb59c0e Binary files /dev/null and b/data/tilesets/secondary/battle_pyramid/anim/0/0.png differ diff --git a/data/tilesets/secondary/battle_pyramid/anim/0/1.png b/data/tilesets/secondary/battle_pyramid/anim/0/1.png new file mode 100644 index 000000000..29c019209 Binary files /dev/null and b/data/tilesets/secondary/battle_pyramid/anim/0/1.png differ diff --git a/data/tilesets/secondary/battle_pyramid/anim/0/2.png b/data/tilesets/secondary/battle_pyramid/anim/0/2.png new file mode 100644 index 000000000..7c463d9c3 Binary files /dev/null and b/data/tilesets/secondary/battle_pyramid/anim/0/2.png differ diff --git a/data/tilesets/secondary/battle_pyramid/anim/1/0.png b/data/tilesets/secondary/battle_pyramid/anim/1/0.png new file mode 100644 index 000000000..2a0921dea Binary files /dev/null and b/data/tilesets/secondary/battle_pyramid/anim/1/0.png differ diff --git a/data/tilesets/secondary/battle_pyramid/anim/1/1.png b/data/tilesets/secondary/battle_pyramid/anim/1/1.png new file mode 100644 index 000000000..3474d081f Binary files /dev/null and b/data/tilesets/secondary/battle_pyramid/anim/1/1.png differ diff --git a/data/tilesets/secondary/battle_pyramid/anim/1/2.png b/data/tilesets/secondary/battle_pyramid/anim/1/2.png new file mode 100644 index 000000000..b9f1c4423 Binary files /dev/null and b/data/tilesets/secondary/battle_pyramid/anim/1/2.png differ diff --git a/data/tilesets/secondary/battle_pyramid/anim/1/3.png b/data/tilesets/secondary/battle_pyramid/anim/1/3.png new file mode 100644 index 000000000..8ad81b1e1 Binary files /dev/null and b/data/tilesets/secondary/battle_pyramid/anim/1/3.png differ diff --git a/data/tilesets/secondary/battle_pyramid/anim/1/4.png b/data/tilesets/secondary/battle_pyramid/anim/1/4.png new file mode 100644 index 000000000..bea921d90 Binary files /dev/null and b/data/tilesets/secondary/battle_pyramid/anim/1/4.png differ diff --git a/data/tilesets/secondary/battle_pyramid/anim/1/5.png b/data/tilesets/secondary/battle_pyramid/anim/1/5.png new file mode 100644 index 000000000..bea921d90 Binary files /dev/null and b/data/tilesets/secondary/battle_pyramid/anim/1/5.png differ diff --git a/data/tilesets/secondary/battle_pyramid/anim/1/6.png b/data/tilesets/secondary/battle_pyramid/anim/1/6.png new file mode 100644 index 000000000..16652df19 Binary files /dev/null and b/data/tilesets/secondary/battle_pyramid/anim/1/6.png differ diff --git a/data/tilesets/secondary/battle_pyramid/anim/1/7.png b/data/tilesets/secondary/battle_pyramid/anim/1/7.png new file mode 100644 index 000000000..8ea7a49e6 Binary files /dev/null and b/data/tilesets/secondary/battle_pyramid/anim/1/7.png differ diff --git a/data/tilesets/secondary/battle_pyramid/anim/1/8.png b/data/tilesets/secondary/battle_pyramid/anim/1/8.png new file mode 100644 index 000000000..2895d3319 Binary files /dev/null and b/data/tilesets/secondary/battle_pyramid/anim/1/8.png differ diff --git a/data/tilesets/secondary/battle_pyramid/anim/1/9.png b/data/tilesets/secondary/battle_pyramid/anim/1/9.png new file mode 100644 index 000000000..63c22acf2 Binary files /dev/null and b/data/tilesets/secondary/battle_pyramid/anim/1/9.png differ diff --git a/data/tilesets/secondary/battle_pyramid/tiles.png b/data/tilesets/secondary/battle_pyramid/tiles.png index cd45ea045..d9609f3dd 100644 Binary files a/data/tilesets/secondary/battle_pyramid/tiles.png and b/data/tilesets/secondary/battle_pyramid/tiles.png differ diff --git a/data/tilesets/secondary/battle_tent/tiles.png b/data/tilesets/secondary/battle_tent/tiles.png index 919e3878f..35e5c4b65 100644 Binary files a/data/tilesets/secondary/battle_tent/tiles.png and b/data/tilesets/secondary/battle_tent/tiles.png differ diff --git a/data/tilesets/secondary/bike_shop/anim/0.png b/data/tilesets/secondary/bike_shop/anim/0.png new file mode 100644 index 000000000..069509b27 Binary files /dev/null and b/data/tilesets/secondary/bike_shop/anim/0.png differ diff --git a/data/tilesets/secondary/bike_shop/anim/1.png b/data/tilesets/secondary/bike_shop/anim/1.png new file mode 100644 index 000000000..4123bb0bf Binary files /dev/null and b/data/tilesets/secondary/bike_shop/anim/1.png differ diff --git a/data/tilesets/secondary/bike_shop/anim/2.png b/data/tilesets/secondary/bike_shop/anim/2.png new file mode 100644 index 000000000..7c463d9c3 Binary files /dev/null and b/data/tilesets/secondary/bike_shop/anim/2.png differ diff --git a/data/tilesets/secondary/bike_shop/tiles.png b/data/tilesets/secondary/bike_shop/tiles.png index ec109c3be..e068538f5 100644 Binary files a/data/tilesets/secondary/bike_shop/tiles.png and b/data/tilesets/secondary/bike_shop/tiles.png differ diff --git a/data/tilesets/secondary/brendans_mays_house/tiles.png b/data/tilesets/secondary/brendans_mays_house/tiles.png index 10163e9f1..6d6a5f047 100644 Binary files a/data/tilesets/secondary/brendans_mays_house/tiles.png and b/data/tilesets/secondary/brendans_mays_house/tiles.png differ diff --git a/data/tilesets/secondary/cable_club/tiles.png b/data/tilesets/secondary/cable_club/tiles.png index 2b153c1f4..c5ad4cfac 100644 Binary files a/data/tilesets/secondary/cable_club/tiles.png and b/data/tilesets/secondary/cable_club/tiles.png differ diff --git a/data/tilesets/secondary/cable_club/unknown_tiles.png b/data/tilesets/secondary/cable_club/unknown_tiles.png index da68cdff2..84e79f720 100644 Binary files a/data/tilesets/secondary/cable_club/unknown_tiles.png and b/data/tilesets/secondary/cable_club/unknown_tiles.png differ diff --git a/data/tilesets/secondary/cave/anim/0.png b/data/tilesets/secondary/cave/anim/0.png new file mode 100644 index 000000000..67f294ffe Binary files /dev/null and b/data/tilesets/secondary/cave/anim/0.png differ diff --git a/data/tilesets/secondary/cave/anim/1.png b/data/tilesets/secondary/cave/anim/1.png new file mode 100644 index 000000000..9c92be807 Binary files /dev/null and b/data/tilesets/secondary/cave/anim/1.png differ diff --git a/data/tilesets/secondary/cave/anim/2.png b/data/tilesets/secondary/cave/anim/2.png new file mode 100644 index 000000000..78ea00e04 Binary files /dev/null and b/data/tilesets/secondary/cave/anim/2.png differ diff --git a/data/tilesets/secondary/cave/anim/3.png b/data/tilesets/secondary/cave/anim/3.png new file mode 100644 index 000000000..7edd52eaa Binary files /dev/null and b/data/tilesets/secondary/cave/anim/3.png differ diff --git a/data/tilesets/secondary/cave/anim/unused/0.png b/data/tilesets/secondary/cave/anim/unused/0.png new file mode 100644 index 000000000..44564e67a Binary files /dev/null and b/data/tilesets/secondary/cave/anim/unused/0.png differ diff --git a/data/tilesets/secondary/cave/anim/unused/1.png b/data/tilesets/secondary/cave/anim/unused/1.png new file mode 100644 index 000000000..47e7e17ee Binary files /dev/null and b/data/tilesets/secondary/cave/anim/unused/1.png differ diff --git a/data/tilesets/secondary/cave/anim/unused/2.png b/data/tilesets/secondary/cave/anim/unused/2.png new file mode 100644 index 000000000..d1447cde2 Binary files /dev/null and b/data/tilesets/secondary/cave/anim/unused/2.png differ diff --git a/data/tilesets/secondary/cave/anim/unused/3.png b/data/tilesets/secondary/cave/anim/unused/3.png new file mode 100644 index 000000000..8ad81b1e1 Binary files /dev/null and b/data/tilesets/secondary/cave/anim/unused/3.png differ diff --git a/data/tilesets/secondary/cave/tiles.png b/data/tilesets/secondary/cave/tiles.png index f905c6b21..e8c98dd71 100644 Binary files a/data/tilesets/secondary/cave/tiles.png and b/data/tilesets/secondary/cave/tiles.png differ diff --git a/data/tilesets/secondary/contest/tiles.png b/data/tilesets/secondary/contest/tiles.png index 09ddee472..710654f5f 100644 Binary files a/data/tilesets/secondary/contest/tiles.png and b/data/tilesets/secondary/contest/tiles.png differ diff --git a/data/tilesets/secondary/dewford/anim/0.png b/data/tilesets/secondary/dewford/anim/0.png new file mode 100644 index 000000000..adf42975f Binary files /dev/null and b/data/tilesets/secondary/dewford/anim/0.png differ diff --git a/data/tilesets/secondary/dewford/anim/1.png b/data/tilesets/secondary/dewford/anim/1.png new file mode 100644 index 000000000..6e7c23a18 Binary files /dev/null and b/data/tilesets/secondary/dewford/anim/1.png differ diff --git a/data/tilesets/secondary/dewford/anim/2.png b/data/tilesets/secondary/dewford/anim/2.png new file mode 100644 index 000000000..86075ffb0 Binary files /dev/null and b/data/tilesets/secondary/dewford/anim/2.png differ diff --git a/data/tilesets/secondary/dewford/anim/3.png b/data/tilesets/secondary/dewford/anim/3.png new file mode 100644 index 000000000..6e3c57621 Binary files /dev/null and b/data/tilesets/secondary/dewford/anim/3.png differ diff --git a/data/tilesets/secondary/dewford/tiles.png b/data/tilesets/secondary/dewford/tiles.png index f79972197..1cf4c165c 100644 Binary files a/data/tilesets/secondary/dewford/tiles.png and b/data/tilesets/secondary/dewford/tiles.png differ diff --git a/data/tilesets/secondary/dewford_gym/tiles.png b/data/tilesets/secondary/dewford_gym/tiles.png index 1dad6f205..7d923b505 100644 Binary files a/data/tilesets/secondary/dewford_gym/tiles.png and b/data/tilesets/secondary/dewford_gym/tiles.png differ diff --git a/data/tilesets/secondary/elite_four/anim/0/0.png b/data/tilesets/secondary/elite_four/anim/0/0.png new file mode 100644 index 000000000..806d26e57 Binary files /dev/null and b/data/tilesets/secondary/elite_four/anim/0/0.png differ diff --git a/data/tilesets/secondary/elite_four/anim/0/1.png b/data/tilesets/secondary/elite_four/anim/0/1.png new file mode 100644 index 000000000..2a8e6a31c Binary files /dev/null and b/data/tilesets/secondary/elite_four/anim/0/1.png differ diff --git a/data/tilesets/secondary/elite_four/anim/0/2.png b/data/tilesets/secondary/elite_four/anim/0/2.png new file mode 100644 index 000000000..c4e6161a6 Binary files /dev/null and b/data/tilesets/secondary/elite_four/anim/0/2.png differ diff --git a/data/tilesets/secondary/elite_four/anim/0/3.png b/data/tilesets/secondary/elite_four/anim/0/3.png new file mode 100644 index 000000000..2a8e6a31c Binary files /dev/null and b/data/tilesets/secondary/elite_four/anim/0/3.png differ diff --git a/data/tilesets/secondary/elite_four/anim/1/0.png b/data/tilesets/secondary/elite_four/anim/1/0.png new file mode 100644 index 000000000..7822d1896 Binary files /dev/null and b/data/tilesets/secondary/elite_four/anim/1/0.png differ diff --git a/data/tilesets/secondary/elite_four/anim/1/1.png b/data/tilesets/secondary/elite_four/anim/1/1.png new file mode 100644 index 000000000..66d60e90b Binary files /dev/null and b/data/tilesets/secondary/elite_four/anim/1/1.png differ diff --git a/data/tilesets/secondary/elite_four/anim/1/2.png b/data/tilesets/secondary/elite_four/anim/1/2.png new file mode 100644 index 000000000..09fb59fbf Binary files /dev/null and b/data/tilesets/secondary/elite_four/anim/1/2.png differ diff --git a/data/tilesets/secondary/elite_four/anim/1/3.png b/data/tilesets/secondary/elite_four/anim/1/3.png new file mode 100644 index 000000000..0c7c05034 Binary files /dev/null and b/data/tilesets/secondary/elite_four/anim/1/3.png differ diff --git a/data/tilesets/secondary/elite_four/anim/1/4.png b/data/tilesets/secondary/elite_four/anim/1/4.png new file mode 100644 index 000000000..317db1714 Binary files /dev/null and b/data/tilesets/secondary/elite_four/anim/1/4.png differ diff --git a/data/tilesets/secondary/elite_four/anim/1/5.png b/data/tilesets/secondary/elite_four/anim/1/5.png new file mode 100644 index 000000000..d0cbfeb57 Binary files /dev/null and b/data/tilesets/secondary/elite_four/anim/1/5.png differ diff --git a/data/tilesets/secondary/elite_four/anim/1/6.png b/data/tilesets/secondary/elite_four/anim/1/6.png new file mode 100644 index 000000000..4b35ededd Binary files /dev/null and b/data/tilesets/secondary/elite_four/anim/1/6.png differ diff --git a/data/tilesets/secondary/elite_four/anim/1/7.png b/data/tilesets/secondary/elite_four/anim/1/7.png new file mode 100644 index 000000000..dfe698edb Binary files /dev/null and b/data/tilesets/secondary/elite_four/anim/1/7.png differ diff --git a/data/tilesets/secondary/elite_four/tiles.png b/data/tilesets/secondary/elite_four/tiles.png index 834be3701..d16b2db03 100644 Binary files a/data/tilesets/secondary/elite_four/tiles.png and b/data/tilesets/secondary/elite_four/tiles.png differ diff --git a/data/tilesets/secondary/ever_grande/anim/0.png b/data/tilesets/secondary/ever_grande/anim/0.png new file mode 100644 index 000000000..7536d08ad Binary files /dev/null and b/data/tilesets/secondary/ever_grande/anim/0.png differ diff --git a/data/tilesets/secondary/ever_grande/anim/1.png b/data/tilesets/secondary/ever_grande/anim/1.png new file mode 100644 index 000000000..7536d08ad Binary files /dev/null and b/data/tilesets/secondary/ever_grande/anim/1.png differ diff --git a/data/tilesets/secondary/ever_grande/anim/2.png b/data/tilesets/secondary/ever_grande/anim/2.png new file mode 100644 index 000000000..f0835aa3b Binary files /dev/null and b/data/tilesets/secondary/ever_grande/anim/2.png differ diff --git a/data/tilesets/secondary/ever_grande/anim/3.png b/data/tilesets/secondary/ever_grande/anim/3.png new file mode 100644 index 000000000..c07cbbd17 Binary files /dev/null and b/data/tilesets/secondary/ever_grande/anim/3.png differ diff --git a/data/tilesets/secondary/ever_grande/anim/4.png b/data/tilesets/secondary/ever_grande/anim/4.png new file mode 100644 index 000000000..7536d08ad Binary files /dev/null and b/data/tilesets/secondary/ever_grande/anim/4.png differ diff --git a/data/tilesets/secondary/ever_grande/anim/5.png b/data/tilesets/secondary/ever_grande/anim/5.png new file mode 100644 index 000000000..7536d08ad Binary files /dev/null and b/data/tilesets/secondary/ever_grande/anim/5.png differ diff --git a/data/tilesets/secondary/ever_grande/anim/6.png b/data/tilesets/secondary/ever_grande/anim/6.png new file mode 100644 index 000000000..9b5030306 Binary files /dev/null and b/data/tilesets/secondary/ever_grande/anim/6.png differ diff --git a/data/tilesets/secondary/ever_grande/anim/7.png b/data/tilesets/secondary/ever_grande/anim/7.png new file mode 100644 index 000000000..9b5030306 Binary files /dev/null and b/data/tilesets/secondary/ever_grande/anim/7.png differ diff --git a/data/tilesets/secondary/ever_grande/tiles.png b/data/tilesets/secondary/ever_grande/tiles.png index 0f3689c24..943a3f8f4 100644 Binary files a/data/tilesets/secondary/ever_grande/tiles.png and b/data/tilesets/secondary/ever_grande/tiles.png differ diff --git a/data/tilesets/secondary/facility/tiles.png b/data/tilesets/secondary/facility/tiles.png index 5585dee3b..f99c24150 100644 Binary files a/data/tilesets/secondary/facility/tiles.png and b/data/tilesets/secondary/facility/tiles.png differ diff --git a/data/tilesets/secondary/fallarbor/tiles.png b/data/tilesets/secondary/fallarbor/tiles.png index 4c5d72277..21ab321ef 100644 Binary files a/data/tilesets/secondary/fallarbor/tiles.png and b/data/tilesets/secondary/fallarbor/tiles.png differ diff --git a/data/tilesets/secondary/fortree/tiles.png b/data/tilesets/secondary/fortree/tiles.png index 0875d1d47..78cb1c1ae 100644 Binary files a/data/tilesets/secondary/fortree/tiles.png and b/data/tilesets/secondary/fortree/tiles.png differ diff --git a/data/tilesets/secondary/fortree_gym/tiles.png b/data/tilesets/secondary/fortree_gym/tiles.png index bb16dd0ca..932b5c06a 100644 Binary files a/data/tilesets/secondary/fortree_gym/tiles.png and b/data/tilesets/secondary/fortree_gym/tiles.png differ diff --git a/data/tilesets/secondary/generic_building/tiles.png b/data/tilesets/secondary/generic_building/tiles.png index d94085b06..6f681f837 100644 Binary files a/data/tilesets/secondary/generic_building/tiles.png and b/data/tilesets/secondary/generic_building/tiles.png differ diff --git a/data/tilesets/secondary/inside_of_truck/tiles.png b/data/tilesets/secondary/inside_of_truck/tiles.png index 44f923a5a..65a82e888 100644 Binary files a/data/tilesets/secondary/inside_of_truck/tiles.png and b/data/tilesets/secondary/inside_of_truck/tiles.png differ diff --git a/data/tilesets/secondary/inside_ship/tiles.png b/data/tilesets/secondary/inside_ship/tiles.png index d4b0471b2..77142a755 100644 Binary files a/data/tilesets/secondary/inside_ship/tiles.png and b/data/tilesets/secondary/inside_ship/tiles.png differ diff --git a/data/tilesets/secondary/island_harbor/tiles.png b/data/tilesets/secondary/island_harbor/tiles.png index e70a72977..82e419e72 100644 Binary files a/data/tilesets/secondary/island_harbor/tiles.png and b/data/tilesets/secondary/island_harbor/tiles.png differ diff --git a/data/tilesets/secondary/lab/tiles.png b/data/tilesets/secondary/lab/tiles.png index c2a86a73d..6a213d960 100644 Binary files a/data/tilesets/secondary/lab/tiles.png and b/data/tilesets/secondary/lab/tiles.png differ diff --git a/data/tilesets/secondary/lavaridge/anim/0.png b/data/tilesets/secondary/lavaridge/anim/0.png new file mode 100644 index 000000000..303855f71 Binary files /dev/null and b/data/tilesets/secondary/lavaridge/anim/0.png differ diff --git a/data/tilesets/secondary/lavaridge/anim/1.png b/data/tilesets/secondary/lavaridge/anim/1.png new file mode 100644 index 000000000..7cdee79e2 Binary files /dev/null and b/data/tilesets/secondary/lavaridge/anim/1.png differ diff --git a/data/tilesets/secondary/lavaridge/anim/2.png b/data/tilesets/secondary/lavaridge/anim/2.png new file mode 100644 index 000000000..b5810b806 Binary files /dev/null and b/data/tilesets/secondary/lavaridge/anim/2.png differ diff --git a/data/tilesets/secondary/lavaridge/anim/3.png b/data/tilesets/secondary/lavaridge/anim/3.png new file mode 100644 index 000000000..caf7b5698 Binary files /dev/null and b/data/tilesets/secondary/lavaridge/anim/3.png differ diff --git a/data/tilesets/secondary/lavaridge/tiles.png b/data/tilesets/secondary/lavaridge/tiles.png index 4886aa28e..896c43194 100644 Binary files a/data/tilesets/secondary/lavaridge/tiles.png and b/data/tilesets/secondary/lavaridge/tiles.png differ diff --git a/data/tilesets/secondary/lavaridge_gym/tiles.png b/data/tilesets/secondary/lavaridge_gym/tiles.png index 0865ea207..8734cc3bf 100644 Binary files a/data/tilesets/secondary/lavaridge_gym/tiles.png and b/data/tilesets/secondary/lavaridge_gym/tiles.png differ diff --git a/data/tilesets/secondary/lilycove/tiles.png b/data/tilesets/secondary/lilycove/tiles.png index 88c5c7a28..b77f3d379 100644 Binary files a/data/tilesets/secondary/lilycove/tiles.png and b/data/tilesets/secondary/lilycove/tiles.png differ diff --git a/data/tilesets/secondary/lilycove_museum/tiles.png b/data/tilesets/secondary/lilycove_museum/tiles.png index 495187301..5bcc0ecfe 100644 Binary files a/data/tilesets/secondary/lilycove_museum/tiles.png and b/data/tilesets/secondary/lilycove_museum/tiles.png differ diff --git a/data/tilesets/secondary/mauville/anim/0/a/0.png b/data/tilesets/secondary/mauville/anim/0/a/0.png new file mode 100644 index 000000000..88b028b52 Binary files /dev/null and b/data/tilesets/secondary/mauville/anim/0/a/0.png differ diff --git a/data/tilesets/secondary/mauville/anim/0/a/1.png b/data/tilesets/secondary/mauville/anim/0/a/1.png new file mode 100644 index 000000000..ce4010db2 Binary files /dev/null and b/data/tilesets/secondary/mauville/anim/0/a/1.png differ diff --git a/data/tilesets/secondary/mauville/anim/0/a/2.png b/data/tilesets/secondary/mauville/anim/0/a/2.png new file mode 100644 index 000000000..5ea20f6db Binary files /dev/null and b/data/tilesets/secondary/mauville/anim/0/a/2.png differ diff --git a/data/tilesets/secondary/mauville/anim/0/a/3.png b/data/tilesets/secondary/mauville/anim/0/a/3.png new file mode 100644 index 000000000..fdf4d30bf Binary files /dev/null and b/data/tilesets/secondary/mauville/anim/0/a/3.png differ diff --git a/data/tilesets/secondary/mauville/anim/0/a/4.png b/data/tilesets/secondary/mauville/anim/0/a/4.png new file mode 100644 index 000000000..c8097808c Binary files /dev/null and b/data/tilesets/secondary/mauville/anim/0/a/4.png differ diff --git a/data/tilesets/secondary/mauville/anim/0/a/5.png b/data/tilesets/secondary/mauville/anim/0/a/5.png new file mode 100644 index 000000000..88b028b52 Binary files /dev/null and b/data/tilesets/secondary/mauville/anim/0/a/5.png differ diff --git a/data/tilesets/secondary/mauville/anim/0/a/6.png b/data/tilesets/secondary/mauville/anim/0/a/6.png new file mode 100644 index 000000000..ce4010db2 Binary files /dev/null and b/data/tilesets/secondary/mauville/anim/0/a/6.png differ diff --git a/data/tilesets/secondary/mauville/anim/0/a/7.png b/data/tilesets/secondary/mauville/anim/0/a/7.png new file mode 100644 index 000000000..5ea20f6db Binary files /dev/null and b/data/tilesets/secondary/mauville/anim/0/a/7.png differ diff --git a/data/tilesets/secondary/mauville/anim/0/a/8.png b/data/tilesets/secondary/mauville/anim/0/a/8.png new file mode 100644 index 000000000..fdf4d30bf Binary files /dev/null and b/data/tilesets/secondary/mauville/anim/0/a/8.png differ diff --git a/data/tilesets/secondary/mauville/anim/0/a/9.png b/data/tilesets/secondary/mauville/anim/0/a/9.png new file mode 100644 index 000000000..c8097808c Binary files /dev/null and b/data/tilesets/secondary/mauville/anim/0/a/9.png differ diff --git a/data/tilesets/secondary/mauville/anim/0/b/0.png b/data/tilesets/secondary/mauville/anim/0/b/0.png new file mode 100644 index 000000000..88b028b52 Binary files /dev/null and b/data/tilesets/secondary/mauville/anim/0/b/0.png differ diff --git a/data/tilesets/secondary/mauville/anim/0/b/1.png b/data/tilesets/secondary/mauville/anim/0/b/1.png new file mode 100644 index 000000000..ce4010db2 Binary files /dev/null and b/data/tilesets/secondary/mauville/anim/0/b/1.png differ diff --git a/data/tilesets/secondary/mauville/anim/0/b/2.png b/data/tilesets/secondary/mauville/anim/0/b/2.png new file mode 100644 index 000000000..5ea20f6db Binary files /dev/null and b/data/tilesets/secondary/mauville/anim/0/b/2.png differ diff --git a/data/tilesets/secondary/mauville/anim/0/b/3.png b/data/tilesets/secondary/mauville/anim/0/b/3.png new file mode 100644 index 000000000..fdf4d30bf Binary files /dev/null and b/data/tilesets/secondary/mauville/anim/0/b/3.png differ diff --git a/data/tilesets/secondary/mauville/anim/0/b/4.png b/data/tilesets/secondary/mauville/anim/0/b/4.png new file mode 100644 index 000000000..91f368cf8 Binary files /dev/null and b/data/tilesets/secondary/mauville/anim/0/b/4.png differ diff --git a/data/tilesets/secondary/mauville/anim/0/b/5.png b/data/tilesets/secondary/mauville/anim/0/b/5.png new file mode 100644 index 000000000..91f368cf8 Binary files /dev/null and b/data/tilesets/secondary/mauville/anim/0/b/5.png differ diff --git a/data/tilesets/secondary/mauville/anim/0/b/6.png b/data/tilesets/secondary/mauville/anim/0/b/6.png new file mode 100644 index 000000000..91f368cf8 Binary files /dev/null and b/data/tilesets/secondary/mauville/anim/0/b/6.png differ diff --git a/data/tilesets/secondary/mauville/anim/0/b/7.png b/data/tilesets/secondary/mauville/anim/0/b/7.png new file mode 100644 index 000000000..91f368cf8 Binary files /dev/null and b/data/tilesets/secondary/mauville/anim/0/b/7.png differ diff --git a/data/tilesets/secondary/mauville/anim/1/a/0.png b/data/tilesets/secondary/mauville/anim/1/a/0.png new file mode 100644 index 000000000..88b028b52 Binary files /dev/null and b/data/tilesets/secondary/mauville/anim/1/a/0.png differ diff --git a/data/tilesets/secondary/mauville/anim/1/a/1.png b/data/tilesets/secondary/mauville/anim/1/a/1.png new file mode 100644 index 000000000..c8097808c Binary files /dev/null and b/data/tilesets/secondary/mauville/anim/1/a/1.png differ diff --git a/data/tilesets/secondary/mauville/anim/1/a/2.png b/data/tilesets/secondary/mauville/anim/1/a/2.png new file mode 100644 index 000000000..5ea20f6db Binary files /dev/null and b/data/tilesets/secondary/mauville/anim/1/a/2.png differ diff --git a/data/tilesets/secondary/mauville/anim/1/a/3.png b/data/tilesets/secondary/mauville/anim/1/a/3.png new file mode 100644 index 000000000..fdf4d30bf Binary files /dev/null and b/data/tilesets/secondary/mauville/anim/1/a/3.png differ diff --git a/data/tilesets/secondary/mauville/anim/1/b/0.png b/data/tilesets/secondary/mauville/anim/1/b/0.png new file mode 100644 index 000000000..88b028b52 Binary files /dev/null and b/data/tilesets/secondary/mauville/anim/1/b/0.png differ diff --git a/data/tilesets/secondary/mauville/anim/1/b/1.png b/data/tilesets/secondary/mauville/anim/1/b/1.png new file mode 100644 index 000000000..c8097808c Binary files /dev/null and b/data/tilesets/secondary/mauville/anim/1/b/1.png differ diff --git a/data/tilesets/secondary/mauville/anim/1/b/2.png b/data/tilesets/secondary/mauville/anim/1/b/2.png new file mode 100644 index 000000000..5ea20f6db Binary files /dev/null and b/data/tilesets/secondary/mauville/anim/1/b/2.png differ diff --git a/data/tilesets/secondary/mauville/anim/1/b/3.png b/data/tilesets/secondary/mauville/anim/1/b/3.png new file mode 100644 index 000000000..fdf4d30bf Binary files /dev/null and b/data/tilesets/secondary/mauville/anim/1/b/3.png differ diff --git a/data/tilesets/secondary/mauville/anim/1/b/4.png b/data/tilesets/secondary/mauville/anim/1/b/4.png new file mode 100644 index 000000000..44564e67a Binary files /dev/null and b/data/tilesets/secondary/mauville/anim/1/b/4.png differ diff --git a/data/tilesets/secondary/mauville/anim/1/b/5.png b/data/tilesets/secondary/mauville/anim/1/b/5.png new file mode 100644 index 000000000..47e7e17ee Binary files /dev/null and b/data/tilesets/secondary/mauville/anim/1/b/5.png differ diff --git a/data/tilesets/secondary/mauville/anim/1/b/6.png b/data/tilesets/secondary/mauville/anim/1/b/6.png new file mode 100644 index 000000000..d1447cde2 Binary files /dev/null and b/data/tilesets/secondary/mauville/anim/1/b/6.png differ diff --git a/data/tilesets/secondary/mauville/anim/1/b/7.png b/data/tilesets/secondary/mauville/anim/1/b/7.png new file mode 100644 index 000000000..8ad81b1e1 Binary files /dev/null and b/data/tilesets/secondary/mauville/anim/1/b/7.png differ diff --git a/data/tilesets/secondary/mauville/tiles.png b/data/tilesets/secondary/mauville/tiles.png index a015fe5b4..e4ce0d4f8 100644 Binary files a/data/tilesets/secondary/mauville/tiles.png and b/data/tilesets/secondary/mauville/tiles.png differ diff --git a/data/tilesets/secondary/mauville_game_corner/tiles.png b/data/tilesets/secondary/mauville_game_corner/tiles.png index c8f0dd1ee..3f7f565c9 100644 Binary files a/data/tilesets/secondary/mauville_game_corner/tiles.png and b/data/tilesets/secondary/mauville_game_corner/tiles.png differ diff --git a/data/tilesets/secondary/mauville_gym/anim/0.png b/data/tilesets/secondary/mauville_gym/anim/0.png new file mode 100644 index 000000000..090fe6a1a Binary files /dev/null and b/data/tilesets/secondary/mauville_gym/anim/0.png differ diff --git a/data/tilesets/secondary/mauville_gym/anim/1.png b/data/tilesets/secondary/mauville_gym/anim/1.png new file mode 100644 index 000000000..48f325890 Binary files /dev/null and b/data/tilesets/secondary/mauville_gym/anim/1.png differ diff --git a/data/tilesets/secondary/mauville_gym/anim/2.png b/data/tilesets/secondary/mauville_gym/anim/2.png new file mode 100644 index 000000000..16652df19 Binary files /dev/null and b/data/tilesets/secondary/mauville_gym/anim/2.png differ diff --git a/data/tilesets/secondary/mauville_gym/anim/3.png b/data/tilesets/secondary/mauville_gym/anim/3.png new file mode 100644 index 000000000..8ea7a49e6 Binary files /dev/null and b/data/tilesets/secondary/mauville_gym/anim/3.png differ diff --git a/data/tilesets/secondary/mauville_gym/tiles.png b/data/tilesets/secondary/mauville_gym/tiles.png index d710d2e40..5606bb101 100644 Binary files a/data/tilesets/secondary/mauville_gym/tiles.png and b/data/tilesets/secondary/mauville_gym/tiles.png differ diff --git a/data/tilesets/secondary/meteor_falls/tiles.png b/data/tilesets/secondary/meteor_falls/tiles.png index 5b0342f9b..9c7532805 100644 Binary files a/data/tilesets/secondary/meteor_falls/tiles.png and b/data/tilesets/secondary/meteor_falls/tiles.png differ diff --git a/data/tilesets/secondary/mirage_tower/tiles.png b/data/tilesets/secondary/mirage_tower/tiles.png index 8eab57f93..fd2904ca1 100644 Binary files a/data/tilesets/secondary/mirage_tower/tiles.png and b/data/tilesets/secondary/mirage_tower/tiles.png differ diff --git a/data/tilesets/secondary/mossdeep/tiles.png b/data/tilesets/secondary/mossdeep/tiles.png index 1933b8983..818406b23 100644 Binary files a/data/tilesets/secondary/mossdeep/tiles.png and b/data/tilesets/secondary/mossdeep/tiles.png differ diff --git a/data/tilesets/secondary/mossdeep_game_corner/tiles.png b/data/tilesets/secondary/mossdeep_game_corner/tiles.png index 379c4f42f..f09edf436 100644 Binary files a/data/tilesets/secondary/mossdeep_game_corner/tiles.png and b/data/tilesets/secondary/mossdeep_game_corner/tiles.png differ diff --git a/data/tilesets/secondary/mossdeep_gym/tiles.png b/data/tilesets/secondary/mossdeep_gym/tiles.png index 919d0334e..36a0873a4 100644 Binary files a/data/tilesets/secondary/mossdeep_gym/tiles.png and b/data/tilesets/secondary/mossdeep_gym/tiles.png differ diff --git a/data/tilesets/secondary/mystery_events_house/tiles.png b/data/tilesets/secondary/mystery_events_house/tiles.png index 1f5f8639b..5afa07fcf 100644 Binary files a/data/tilesets/secondary/mystery_events_house/tiles.png and b/data/tilesets/secondary/mystery_events_house/tiles.png differ diff --git a/data/tilesets/secondary/navel_rock/tiles.png b/data/tilesets/secondary/navel_rock/tiles.png index 06d8065f1..ffbc04584 100644 Binary files a/data/tilesets/secondary/navel_rock/tiles.png and b/data/tilesets/secondary/navel_rock/tiles.png differ diff --git a/data/tilesets/secondary/oceanic_museum/tiles.png b/data/tilesets/secondary/oceanic_museum/tiles.png index 25a20d586..a074d4a05 100644 Binary files a/data/tilesets/secondary/oceanic_museum/tiles.png and b/data/tilesets/secondary/oceanic_museum/tiles.png differ diff --git a/data/tilesets/secondary/pacifidlog/anim/0/0.png b/data/tilesets/secondary/pacifidlog/anim/0/0.png new file mode 100644 index 000000000..e7bcfd743 Binary files /dev/null and b/data/tilesets/secondary/pacifidlog/anim/0/0.png differ diff --git a/data/tilesets/secondary/pacifidlog/anim/0/1.png b/data/tilesets/secondary/pacifidlog/anim/0/1.png new file mode 100644 index 000000000..dde024f6e Binary files /dev/null and b/data/tilesets/secondary/pacifidlog/anim/0/1.png differ diff --git a/data/tilesets/secondary/pacifidlog/anim/0/2.png b/data/tilesets/secondary/pacifidlog/anim/0/2.png new file mode 100644 index 000000000..1a4cea24d Binary files /dev/null and b/data/tilesets/secondary/pacifidlog/anim/0/2.png differ diff --git a/data/tilesets/secondary/pacifidlog/anim/1/0.png b/data/tilesets/secondary/pacifidlog/anim/1/0.png new file mode 100644 index 000000000..beb8ee82d Binary files /dev/null and b/data/tilesets/secondary/pacifidlog/anim/1/0.png differ diff --git a/data/tilesets/secondary/pacifidlog/anim/1/1.png b/data/tilesets/secondary/pacifidlog/anim/1/1.png new file mode 100644 index 000000000..594655120 Binary files /dev/null and b/data/tilesets/secondary/pacifidlog/anim/1/1.png differ diff --git a/data/tilesets/secondary/pacifidlog/anim/1/2.png b/data/tilesets/secondary/pacifidlog/anim/1/2.png new file mode 100644 index 000000000..747306d5c Binary files /dev/null and b/data/tilesets/secondary/pacifidlog/anim/1/2.png differ diff --git a/data/tilesets/secondary/pacifidlog/anim/1/3.png b/data/tilesets/secondary/pacifidlog/anim/1/3.png new file mode 100644 index 000000000..20e0a7cdd Binary files /dev/null and b/data/tilesets/secondary/pacifidlog/anim/1/3.png differ diff --git a/data/tilesets/secondary/pacifidlog/anim/1/4.png b/data/tilesets/secondary/pacifidlog/anim/1/4.png new file mode 100644 index 000000000..7b74ee349 Binary files /dev/null and b/data/tilesets/secondary/pacifidlog/anim/1/4.png differ diff --git a/data/tilesets/secondary/pacifidlog/anim/1/5.png b/data/tilesets/secondary/pacifidlog/anim/1/5.png new file mode 100644 index 000000000..b135bdfbe Binary files /dev/null and b/data/tilesets/secondary/pacifidlog/anim/1/5.png differ diff --git a/data/tilesets/secondary/pacifidlog/anim/1/6.png b/data/tilesets/secondary/pacifidlog/anim/1/6.png new file mode 100644 index 000000000..4eae151e6 Binary files /dev/null and b/data/tilesets/secondary/pacifidlog/anim/1/6.png differ diff --git a/data/tilesets/secondary/pacifidlog/anim/1/7.png b/data/tilesets/secondary/pacifidlog/anim/1/7.png new file mode 100644 index 000000000..f1863fdd5 Binary files /dev/null and b/data/tilesets/secondary/pacifidlog/anim/1/7.png differ diff --git a/data/tilesets/secondary/pacifidlog/tiles.png b/data/tilesets/secondary/pacifidlog/tiles.png index 496232735..94fe6d96b 100644 Binary files a/data/tilesets/secondary/pacifidlog/tiles.png and b/data/tilesets/secondary/pacifidlog/tiles.png differ diff --git a/data/tilesets/secondary/petalburg/tiles.png b/data/tilesets/secondary/petalburg/tiles.png index 97e8bf187..dd0e23ca4 100644 Binary files a/data/tilesets/secondary/petalburg/tiles.png and b/data/tilesets/secondary/petalburg/tiles.png differ diff --git a/data/tilesets/secondary/petalburg_gym/tiles.png b/data/tilesets/secondary/petalburg_gym/tiles.png index 8c996f701..cb7c40e5a 100644 Binary files a/data/tilesets/secondary/petalburg_gym/tiles.png and b/data/tilesets/secondary/petalburg_gym/tiles.png differ diff --git a/data/tilesets/secondary/pokemon_center/tiles.png b/data/tilesets/secondary/pokemon_center/tiles.png index 826da07bf..673746c5a 100644 Binary files a/data/tilesets/secondary/pokemon_center/tiles.png and b/data/tilesets/secondary/pokemon_center/tiles.png differ diff --git a/data/tilesets/secondary/pokemon_day_care/tiles.png b/data/tilesets/secondary/pokemon_day_care/tiles.png index eab49af32..76cd9ab96 100644 Binary files a/data/tilesets/secondary/pokemon_day_care/tiles.png and b/data/tilesets/secondary/pokemon_day_care/tiles.png differ diff --git a/data/tilesets/secondary/pokemon_fan_club/tiles.png b/data/tilesets/secondary/pokemon_fan_club/tiles.png index 2714292f0..62dd0f03f 100644 Binary files a/data/tilesets/secondary/pokemon_fan_club/tiles.png and b/data/tilesets/secondary/pokemon_fan_club/tiles.png differ diff --git a/data/tilesets/secondary/pokemon_school/tiles.png b/data/tilesets/secondary/pokemon_school/tiles.png index 3c8c4dffe..20e3f32c8 100644 Binary files a/data/tilesets/secondary/pokemon_school/tiles.png and b/data/tilesets/secondary/pokemon_school/tiles.png differ diff --git a/data/tilesets/secondary/pretty_petal_flower_shop/tiles.png b/data/tilesets/secondary/pretty_petal_flower_shop/tiles.png index 7a9e44935..f10306e7a 100644 Binary files a/data/tilesets/secondary/pretty_petal_flower_shop/tiles.png and b/data/tilesets/secondary/pretty_petal_flower_shop/tiles.png differ diff --git a/data/tilesets/secondary/rustboro/anim/0/0.png b/data/tilesets/secondary/rustboro/anim/0/0.png new file mode 100644 index 000000000..358745e4b Binary files /dev/null and b/data/tilesets/secondary/rustboro/anim/0/0.png differ diff --git a/data/tilesets/secondary/rustboro/anim/0/1.png b/data/tilesets/secondary/rustboro/anim/0/1.png new file mode 100644 index 000000000..f5a095b15 Binary files /dev/null and b/data/tilesets/secondary/rustboro/anim/0/1.png differ diff --git a/data/tilesets/secondary/rustboro/anim/0/2.png b/data/tilesets/secondary/rustboro/anim/0/2.png new file mode 100644 index 000000000..91f368cf8 Binary files /dev/null and b/data/tilesets/secondary/rustboro/anim/0/2.png differ diff --git a/data/tilesets/secondary/rustboro/anim/0/3.png b/data/tilesets/secondary/rustboro/anim/0/3.png new file mode 100644 index 000000000..91f368cf8 Binary files /dev/null and b/data/tilesets/secondary/rustboro/anim/0/3.png differ diff --git a/data/tilesets/secondary/rustboro/anim/0/4.png b/data/tilesets/secondary/rustboro/anim/0/4.png new file mode 100644 index 000000000..91f368cf8 Binary files /dev/null and b/data/tilesets/secondary/rustboro/anim/0/4.png differ diff --git a/data/tilesets/secondary/rustboro/anim/0/5.png b/data/tilesets/secondary/rustboro/anim/0/5.png new file mode 100644 index 000000000..91f368cf8 Binary files /dev/null and b/data/tilesets/secondary/rustboro/anim/0/5.png differ diff --git a/data/tilesets/secondary/rustboro/anim/0/6.png b/data/tilesets/secondary/rustboro/anim/0/6.png new file mode 100644 index 000000000..91f368cf8 Binary files /dev/null and b/data/tilesets/secondary/rustboro/anim/0/6.png differ diff --git a/data/tilesets/secondary/rustboro/anim/0/7.png b/data/tilesets/secondary/rustboro/anim/0/7.png new file mode 100644 index 000000000..91f368cf8 Binary files /dev/null and b/data/tilesets/secondary/rustboro/anim/0/7.png differ diff --git a/data/tilesets/secondary/rustboro/anim/1/0.png b/data/tilesets/secondary/rustboro/anim/1/0.png new file mode 100644 index 000000000..75bd2f8a4 Binary files /dev/null and b/data/tilesets/secondary/rustboro/anim/1/0.png differ diff --git a/data/tilesets/secondary/rustboro/anim/1/1.png b/data/tilesets/secondary/rustboro/anim/1/1.png new file mode 100644 index 000000000..9f8b3a02f Binary files /dev/null and b/data/tilesets/secondary/rustboro/anim/1/1.png differ diff --git a/data/tilesets/secondary/rustboro/anim/1/2.png b/data/tilesets/secondary/rustboro/anim/1/2.png new file mode 100644 index 000000000..86075ffb0 Binary files /dev/null and b/data/tilesets/secondary/rustboro/anim/1/2.png differ diff --git a/data/tilesets/secondary/rustboro/anim/1/3.png b/data/tilesets/secondary/rustboro/anim/1/3.png new file mode 100644 index 000000000..6e3c57621 Binary files /dev/null and b/data/tilesets/secondary/rustboro/anim/1/3.png differ diff --git a/data/tilesets/secondary/rustboro/tiles.png b/data/tilesets/secondary/rustboro/tiles.png index 8cea2a4d9..fbfc72d46 100644 Binary files a/data/tilesets/secondary/rustboro/tiles.png and b/data/tilesets/secondary/rustboro/tiles.png differ diff --git a/data/tilesets/secondary/rustboro_gym/tiles.png b/data/tilesets/secondary/rustboro_gym/tiles.png index bfdc07c07..d4ebc14a1 100644 Binary files a/data/tilesets/secondary/rustboro_gym/tiles.png and b/data/tilesets/secondary/rustboro_gym/tiles.png differ diff --git a/data/tilesets/secondary/rusturf_tunnel/tiles.png b/data/tilesets/secondary/rusturf_tunnel/tiles.png index dc947bcc5..913935f77 100644 Binary files a/data/tilesets/secondary/rusturf_tunnel/tiles.png and b/data/tilesets/secondary/rusturf_tunnel/tiles.png differ diff --git a/data/tilesets/secondary/seashore_house/tiles.png b/data/tilesets/secondary/seashore_house/tiles.png index 695f83037..ea48f5006 100644 Binary files a/data/tilesets/secondary/seashore_house/tiles.png and b/data/tilesets/secondary/seashore_house/tiles.png differ diff --git a/data/tilesets/secondary/secret_base/blue_cave/tiles.png b/data/tilesets/secondary/secret_base/blue_cave/tiles.png index 207e8d845..9d820463b 100644 Binary files a/data/tilesets/secondary/secret_base/blue_cave/tiles.png and b/data/tilesets/secondary/secret_base/blue_cave/tiles.png differ diff --git a/data/tilesets/secondary/secret_base/blue_cave/unused_tiles.png b/data/tilesets/secondary/secret_base/blue_cave/unused_tiles.png new file mode 100644 index 000000000..1e42fed54 Binary files /dev/null and b/data/tilesets/secondary/secret_base/blue_cave/unused_tiles.png differ diff --git a/data/tilesets/secondary/secret_base/brown_cave/tiles.png b/data/tilesets/secondary/secret_base/brown_cave/tiles.png index 7888f8cc2..a1c8bfe72 100644 Binary files a/data/tilesets/secondary/secret_base/brown_cave/tiles.png and b/data/tilesets/secondary/secret_base/brown_cave/tiles.png differ diff --git a/data/tilesets/secondary/secret_base/brown_cave/unused_tiles.png b/data/tilesets/secondary/secret_base/brown_cave/unused_tiles.png new file mode 100644 index 000000000..dfd187d51 Binary files /dev/null and b/data/tilesets/secondary/secret_base/brown_cave/unused_tiles.png differ diff --git a/data/tilesets/secondary/secret_base/red_cave/tiles.png b/data/tilesets/secondary/secret_base/red_cave/tiles.png index 5c21865e2..2652f6bbf 100644 Binary files a/data/tilesets/secondary/secret_base/red_cave/tiles.png and b/data/tilesets/secondary/secret_base/red_cave/tiles.png differ diff --git a/data/tilesets/secondary/secret_base/red_cave/unused_tiles.png b/data/tilesets/secondary/secret_base/red_cave/unused_tiles.png new file mode 100644 index 000000000..5cfebd309 Binary files /dev/null and b/data/tilesets/secondary/secret_base/red_cave/unused_tiles.png differ diff --git a/data/tilesets/secondary/secret_base/shrub/tiles.png b/data/tilesets/secondary/secret_base/shrub/tiles.png index 2e0a6d028..692141b04 100644 Binary files a/data/tilesets/secondary/secret_base/shrub/tiles.png and b/data/tilesets/secondary/secret_base/shrub/tiles.png differ diff --git a/data/tilesets/secondary/secret_base/shrub/unused_tiles.png b/data/tilesets/secondary/secret_base/shrub/unused_tiles.png new file mode 100644 index 000000000..461d620ae Binary files /dev/null and b/data/tilesets/secondary/secret_base/shrub/unused_tiles.png differ diff --git a/data/tilesets/secondary/secret_base/tree/tiles.png b/data/tilesets/secondary/secret_base/tree/tiles.png index 83ddd6144..94887cc1f 100644 Binary files a/data/tilesets/secondary/secret_base/tree/tiles.png and b/data/tilesets/secondary/secret_base/tree/tiles.png differ diff --git a/data/tilesets/secondary/secret_base/tree/unused_tiles.png b/data/tilesets/secondary/secret_base/tree/unused_tiles.png new file mode 100644 index 000000000..567cf7800 Binary files /dev/null and b/data/tilesets/secondary/secret_base/tree/unused_tiles.png differ diff --git a/data/tilesets/secondary/secret_base/yellow_cave/tiles.png b/data/tilesets/secondary/secret_base/yellow_cave/tiles.png index e8386a804..b171b5ec6 100644 Binary files a/data/tilesets/secondary/secret_base/yellow_cave/tiles.png and b/data/tilesets/secondary/secret_base/yellow_cave/tiles.png differ diff --git a/data/tilesets/secondary/secret_base/yellow_cave/unused_tiles.png b/data/tilesets/secondary/secret_base/yellow_cave/unused_tiles.png new file mode 100644 index 000000000..f825201cc Binary files /dev/null and b/data/tilesets/secondary/secret_base/yellow_cave/unused_tiles.png differ diff --git a/data/tilesets/secondary/shop/tiles.png b/data/tilesets/secondary/shop/tiles.png index 31e3c5319..f253a2e53 100644 Binary files a/data/tilesets/secondary/shop/tiles.png and b/data/tilesets/secondary/shop/tiles.png differ diff --git a/data/tilesets/secondary/slateport/anim/0.png b/data/tilesets/secondary/slateport/anim/0.png new file mode 100644 index 000000000..ef62c4143 Binary files /dev/null and b/data/tilesets/secondary/slateport/anim/0.png differ diff --git a/data/tilesets/secondary/slateport/anim/1.png b/data/tilesets/secondary/slateport/anim/1.png new file mode 100644 index 000000000..9b926bdfc Binary files /dev/null and b/data/tilesets/secondary/slateport/anim/1.png differ diff --git a/data/tilesets/secondary/slateport/anim/2.png b/data/tilesets/secondary/slateport/anim/2.png new file mode 100644 index 000000000..c5974f105 Binary files /dev/null and b/data/tilesets/secondary/slateport/anim/2.png differ diff --git a/data/tilesets/secondary/slateport/anim/3.png b/data/tilesets/secondary/slateport/anim/3.png new file mode 100644 index 000000000..9b926bdfc Binary files /dev/null and b/data/tilesets/secondary/slateport/anim/3.png differ diff --git a/data/tilesets/secondary/slateport/tiles.png b/data/tilesets/secondary/slateport/tiles.png index f89ca2b0c..d8661b99a 100644 Binary files a/data/tilesets/secondary/slateport/tiles.png and b/data/tilesets/secondary/slateport/tiles.png differ diff --git a/data/tilesets/secondary/sootopolis/anim/0.png b/data/tilesets/secondary/sootopolis/anim/0.png new file mode 100644 index 000000000..63f97ad47 Binary files /dev/null and b/data/tilesets/secondary/sootopolis/anim/0.png differ diff --git a/data/tilesets/secondary/sootopolis/anim/1.png b/data/tilesets/secondary/sootopolis/anim/1.png new file mode 100644 index 000000000..aa14ec04a Binary files /dev/null and b/data/tilesets/secondary/sootopolis/anim/1.png differ diff --git a/data/tilesets/secondary/sootopolis/anim/2.png b/data/tilesets/secondary/sootopolis/anim/2.png new file mode 100644 index 000000000..09fb59fbf Binary files /dev/null and b/data/tilesets/secondary/sootopolis/anim/2.png differ diff --git a/data/tilesets/secondary/sootopolis/anim/3.png b/data/tilesets/secondary/sootopolis/anim/3.png new file mode 100644 index 000000000..0c7c05034 Binary files /dev/null and b/data/tilesets/secondary/sootopolis/anim/3.png differ diff --git a/data/tilesets/secondary/sootopolis/anim/4.png b/data/tilesets/secondary/sootopolis/anim/4.png new file mode 100644 index 000000000..317db1714 Binary files /dev/null and b/data/tilesets/secondary/sootopolis/anim/4.png differ diff --git a/data/tilesets/secondary/sootopolis/anim/5.png b/data/tilesets/secondary/sootopolis/anim/5.png new file mode 100644 index 000000000..d0cbfeb57 Binary files /dev/null and b/data/tilesets/secondary/sootopolis/anim/5.png differ diff --git a/data/tilesets/secondary/sootopolis/anim/6.png b/data/tilesets/secondary/sootopolis/anim/6.png new file mode 100644 index 000000000..4b35ededd Binary files /dev/null and b/data/tilesets/secondary/sootopolis/anim/6.png differ diff --git a/data/tilesets/secondary/sootopolis/anim/7.png b/data/tilesets/secondary/sootopolis/anim/7.png new file mode 100644 index 000000000..dfe698edb Binary files /dev/null and b/data/tilesets/secondary/sootopolis/anim/7.png differ diff --git a/data/tilesets/secondary/sootopolis/tiles.png b/data/tilesets/secondary/sootopolis/tiles.png index 5e9866821..92df774ae 100644 Binary files a/data/tilesets/secondary/sootopolis/tiles.png and b/data/tilesets/secondary/sootopolis/tiles.png differ diff --git a/data/tilesets/secondary/sootopolis_gym/anim/0/0.png b/data/tilesets/secondary/sootopolis_gym/anim/0/0.png new file mode 100644 index 000000000..f0ec1ac00 Binary files /dev/null and b/data/tilesets/secondary/sootopolis_gym/anim/0/0.png differ diff --git a/data/tilesets/secondary/sootopolis_gym/anim/0/1.png b/data/tilesets/secondary/sootopolis_gym/anim/0/1.png new file mode 100644 index 000000000..4fefe4598 Binary files /dev/null and b/data/tilesets/secondary/sootopolis_gym/anim/0/1.png differ diff --git a/data/tilesets/secondary/sootopolis_gym/anim/0/2.png b/data/tilesets/secondary/sootopolis_gym/anim/0/2.png new file mode 100644 index 000000000..f603b3046 Binary files /dev/null and b/data/tilesets/secondary/sootopolis_gym/anim/0/2.png differ diff --git a/data/tilesets/secondary/sootopolis_gym/anim/0/3.png b/data/tilesets/secondary/sootopolis_gym/anim/0/3.png new file mode 100644 index 000000000..2a8e6a31c Binary files /dev/null and b/data/tilesets/secondary/sootopolis_gym/anim/0/3.png differ diff --git a/data/tilesets/secondary/sootopolis_gym/anim/1/0.png b/data/tilesets/secondary/sootopolis_gym/anim/1/0.png new file mode 100644 index 000000000..e0f807ef4 Binary files /dev/null and b/data/tilesets/secondary/sootopolis_gym/anim/1/0.png differ diff --git a/data/tilesets/secondary/sootopolis_gym/anim/1/1.png b/data/tilesets/secondary/sootopolis_gym/anim/1/1.png new file mode 100644 index 000000000..08413b63c Binary files /dev/null and b/data/tilesets/secondary/sootopolis_gym/anim/1/1.png differ diff --git a/data/tilesets/secondary/sootopolis_gym/anim/1/2.png b/data/tilesets/secondary/sootopolis_gym/anim/1/2.png new file mode 100644 index 000000000..6681b5e96 Binary files /dev/null and b/data/tilesets/secondary/sootopolis_gym/anim/1/2.png differ diff --git a/data/tilesets/secondary/sootopolis_gym/tiles.png b/data/tilesets/secondary/sootopolis_gym/tiles.png index b2533b243..4f6b25769 100644 Binary files a/data/tilesets/secondary/sootopolis_gym/tiles.png and b/data/tilesets/secondary/sootopolis_gym/tiles.png differ diff --git a/data/tilesets/secondary/trainer_hill/tiles.png b/data/tilesets/secondary/trainer_hill/tiles.png index f5330af84..78d292513 100644 Binary files a/data/tilesets/secondary/trainer_hill/tiles.png and b/data/tilesets/secondary/trainer_hill/tiles.png differ diff --git a/data/tilesets/secondary/trick_house_puzzle/tiles.png b/data/tilesets/secondary/trick_house_puzzle/tiles.png index eb81554cc..5ef1bf9ca 100644 Binary files a/data/tilesets/secondary/trick_house_puzzle/tiles.png and b/data/tilesets/secondary/trick_house_puzzle/tiles.png differ diff --git a/data/tilesets/secondary/underwater/anim/0.png b/data/tilesets/secondary/underwater/anim/0.png new file mode 100644 index 000000000..7609cc82a Binary files /dev/null and b/data/tilesets/secondary/underwater/anim/0.png differ diff --git a/data/tilesets/secondary/underwater/anim/1.png b/data/tilesets/secondary/underwater/anim/1.png new file mode 100644 index 000000000..64cddd371 Binary files /dev/null and b/data/tilesets/secondary/underwater/anim/1.png differ diff --git a/data/tilesets/secondary/underwater/anim/2.png b/data/tilesets/secondary/underwater/anim/2.png new file mode 100644 index 000000000..ff6ff8437 Binary files /dev/null and b/data/tilesets/secondary/underwater/anim/2.png differ diff --git a/data/tilesets/secondary/underwater/anim/3.png b/data/tilesets/secondary/underwater/anim/3.png new file mode 100644 index 000000000..2863c2261 Binary files /dev/null and b/data/tilesets/secondary/underwater/anim/3.png differ diff --git a/data/tilesets/secondary/underwater/tiles.png b/data/tilesets/secondary/underwater/tiles.png index e0569d970..5af21f353 100644 Binary files a/data/tilesets/secondary/underwater/tiles.png and b/data/tilesets/secondary/underwater/tiles.png differ diff --git a/data/tilesets/secondary/union_room/tiles.png b/data/tilesets/secondary/union_room/tiles.png index 50d44bf93..b38ffe9e5 100644 Binary files a/data/tilesets/secondary/union_room/tiles.png and b/data/tilesets/secondary/union_room/tiles.png differ diff --git a/data/tilesets/secondary/unused_1/0.png b/data/tilesets/secondary/unused_1/0.png new file mode 100644 index 000000000..bea921d90 Binary files /dev/null and b/data/tilesets/secondary/unused_1/0.png differ diff --git a/data/tilesets/secondary/unused_1/1.png b/data/tilesets/secondary/unused_1/1.png new file mode 100644 index 000000000..bea921d90 Binary files /dev/null and b/data/tilesets/secondary/unused_1/1.png differ diff --git a/data/tilesets/secondary/unused_1/2.png b/data/tilesets/secondary/unused_1/2.png new file mode 100644 index 000000000..16652df19 Binary files /dev/null and b/data/tilesets/secondary/unused_1/2.png differ diff --git a/data/tilesets/secondary/unused_1/3.png b/data/tilesets/secondary/unused_1/3.png new file mode 100644 index 000000000..8ea7a49e6 Binary files /dev/null and b/data/tilesets/secondary/unused_1/3.png differ diff --git a/data/tilesets/secondary/unused_1/tiles.png b/data/tilesets/secondary/unused_1/tiles.png index 0a35187c8..3ae8bce42 100644 Binary files a/data/tilesets/secondary/unused_1/tiles.png and b/data/tilesets/secondary/unused_1/tiles.png differ diff --git a/data/tilesets/secondary/unused_2/0.png b/data/tilesets/secondary/unused_2/0.png new file mode 100644 index 000000000..2895d3319 Binary files /dev/null and b/data/tilesets/secondary/unused_2/0.png differ diff --git a/data/tilesets/secondary/unused_2/1.png b/data/tilesets/secondary/unused_2/1.png new file mode 100644 index 000000000..63c22acf2 Binary files /dev/null and b/data/tilesets/secondary/unused_2/1.png differ diff --git a/data/tilesets/secondary/unused_2/2.png b/data/tilesets/secondary/unused_2/2.png new file mode 100644 index 000000000..d1447cde2 Binary files /dev/null and b/data/tilesets/secondary/unused_2/2.png differ diff --git a/data/tilesets/secondary/unused_2/3.png b/data/tilesets/secondary/unused_2/3.png new file mode 100644 index 000000000..8ad81b1e1 Binary files /dev/null and b/data/tilesets/secondary/unused_2/3.png differ diff --git a/data/tilesets/secondary/unused_2/tiles.png b/data/tilesets/secondary/unused_2/tiles.png index b9c594303..2ab3b63d6 100644 Binary files a/data/tilesets/secondary/unused_2/tiles.png and b/data/tilesets/secondary/unused_2/tiles.png differ diff --git a/data/title_screen.s b/data/title_screen.s new file mode 100644 index 000000000..525790271 --- /dev/null +++ b/data/title_screen.s @@ -0,0 +1,160 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gTitleScreenRayquazaGfx:: @ 853F058 + .incbin "graphics/title_screen/rayquaza.4bpp.lz" + + .align 2 +gTitleScreenRayquazaTilemap:: @ 853F83C + .incbin "graphics/title_screen/rayquaza.bin.lz" + + .align 2 +gTitleScreenLogoShineGfx:: @ 853FB3C + .incbin "graphics/title_screen/logo_shine.4bpp.lz" + + .align 2 +gTitleScreenCloudsGfx:: @ 853FC8C + .incbin "graphics/title_screen/clouds.4bpp.lz" + + .align 2 +gUnknown_0853FF70:: @ 853FF70 + .2byte 0x0010, 0x0110, 0x0210, 0x0310, 0x0410, 0x0510, 0x0610, 0x0710 + .2byte 0x0810, 0x0910, 0x0a10, 0x0b10, 0x0c10, 0x0d10, 0x0e10, 0x0f10 + .2byte 0x100f, 0x100e, 0x100d, 0x100c, 0x100b, 0x100a, 0x1009, 0x1008 + .2byte 0x1007, 0x1006, 0x1005, 0x1004, 0x1003, 0x1002, 0x1001, 0x1000 + .2byte 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000 + .2byte 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000 + .2byte 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000 + .2byte 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000 + + .align 2 +gUnknown_0853FFF0:: @ 853FFF0 + .byte 0xa0, 0x60, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00 + + .align 2 +gUnknown_0853FFF8:: @ 853FFF8 + .byte 0xa0, 0x60, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00 + + .align 2 +gUnknown_08540000:: @ 8540000 + .2byte 0x0000, 0x001e, 0xffff, 0x0000 + + .align 2 +gUnknown_08540008:: @ 8540008 + .2byte 0x0040, 0x001e, 0xffff, 0x0000 + + .align 2 +gUnknown_08540010:: @ 8540010 + .4byte gUnknown_08540000 + + .align 2 +gUnknown_08540014:: @ 8540014 + .4byte gUnknown_08540008 + + .align 2 +gUnknown_08540018:: @ 8540018 + spr_template 0x03e8, 0x03e8, gUnknown_0853FFF0, gUnknown_08540010, NULL, gDummySpriteAffineAnimTable, sub_80AA40C + + .align 2 +gUnknown_08540030:: @ 8540030 + spr_template 0x03e8, 0x03e8, gUnknown_0853FFF8, gUnknown_08540014, NULL, gDummySpriteAffineAnimTable, sub_80AA474 + + .align 2 +gUnknown_08540048:: @ 8540048 + obj_tiles gTitleScreenEmeraldVersionGfx, 0x1000, 0x03e8 + null_obj_tiles + + .align 2 +gUnknown_08540058:: @ 8540058 + .byte 0xa0, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00 + + .align 2 +gUnknown_08540060:: @ 8540060 + .2byte 0x0001, 0x0004, 0xffff, 0x0000 + + .align 2 +gUnknown_08540068:: @ 8540068 + .2byte 0x0005, 0x0004, 0xffff, 0x0000 + + .align 2 +gUnknown_08540070:: @ 8540070 + .2byte 0x0009, 0x0004, 0xffff, 0x0000 + + .align 2 +gUnknown_08540078:: @ 8540078 + .2byte 0x000d, 0x0004, 0xffff, 0x0000 + + .align 2 +gUnknown_08540080:: @ 8540080 + .2byte 0x0011, 0x0004, 0xffff, 0x0000 + + .align 2 +gUnknown_08540088:: @ 8540088 + .2byte 0x0015, 0x0004, 0xffff, 0x0000 + + .align 2 +gUnknown_08540090:: @ 8540090 + .2byte 0x0019, 0x0004, 0xffff, 0x0000 + + .align 2 +gUnknown_08540098:: @ 8540098 + .2byte 0x001d, 0x0004, 0xffff, 0x0000 + + .align 2 +gUnknown_085400A0:: @ 85400A0 + .2byte 0x0021, 0x0004, 0xffff, 0x0000 + + .align 2 +gUnknown_085400A8:: @ 85400A8 + .2byte 0x0025, 0x0004, 0xffff, 0x0000 + + .align 2 +gUnknown_085400B0:: @ 85400B0 + .4byte gUnknown_08540060 + .4byte gUnknown_08540068 + .4byte gUnknown_08540070 + .4byte gUnknown_08540078 + .4byte gUnknown_08540080 + .4byte gUnknown_08540088 + .4byte gUnknown_08540090 + .4byte gUnknown_08540098 + .4byte gUnknown_085400A0 + .4byte gUnknown_085400A8 + + .align 2 +gUnknown_085400D8:: @ 85400D8 + spr_template 0x03e9, 0x03e9, gUnknown_08540058, gUnknown_085400B0, NULL, gDummySpriteAffineAnimTable, sub_80AA4B4 + + .align 2 +gUnknown_085400F0:: @ 85400F0 + obj_tiles gTitleScreenPressStartGfx, 0x0520, 0x03e9 + null_obj_tiles + + .align 2 +gUnknown_08540100:: @ 8540100 + obj_pal gTitleScreenPressStartPal, 0x03e9 + null_obj_pal + + .align 2 +gUnknown_08540110:: @ 8540110 + .byte 0xa0, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00 + + .align 2 +gUnknown_08540118:: @ 8540118 + .2byte 0x0000, 0x0004, 0xffff, 0x0000 + + .align 2 +gUnknown_08540120:: @ 8540120 + .4byte gUnknown_08540118 + + .align 2 +gUnknown_08540124:: @ 8540124 + spr_template 0x03ea, 0x03e9, gUnknown_08540110, gUnknown_08540120, NULL, gDummySpriteAffineAnimTable, title_screen_logo_shine_obj_callback_type1 + + .align 2 +gUnknown_0854013C:: @ 854013C + obj_tiles gTitleScreenLogoShineGfx, 0x0800, 0x03ea + null_obj_tiles diff --git a/data/trade.s b/data/trade.s new file mode 100644 index 000000000..601b597ed --- /dev/null +++ b/data/trade.s @@ -0,0 +1,200 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_0832C6C0:: @ 832C6C0 + .incbin "baserom.gba", 0x32c6c0, 0x1fe + +gUnknown_0832C8BE:: @ 832C8BE + .incbin "baserom.gba", 0x32c8be, 0x1fe + +gUnknown_0832CABC:: @ 832CABC + .incbin "baserom.gba", 0x32cabc, 0x800 + +gUnknown_0832D2BC:: @ 832D2BC + .incbin "baserom.gba", 0x32d2bc, 0x800 + +gUnknown_0832DABC:: @ 832DABC + .incbin "baserom.gba", 0x32dabc, 0xb + +gUnknown_0832DAC7:: @ 832DAC7 + .incbin "baserom.gba", 0x32dac7, 0x2 + +gUnknown_0832DAC9:: @ 832DAC9 + .incbin "baserom.gba", 0x32dac9, 0x2 + +gUnknown_0832DACB:: @ 832DACB + .incbin "baserom.gba", 0x32dacb, 0x7 + +gUnknown_0832DAD2:: @ 832DAD2 + .incbin "baserom.gba", 0x32dad2, 0xd + +gUnknown_0832DADF:: @ 832DADF + .incbin "baserom.gba", 0x32dadf, 0x6 + +gUnknown_0832DAE5:: @ 832DAE5 + .incbin "baserom.gba", 0x32dae5, 0x157 + +gUnknown_0832DC3C:: @ 832DC3C + .incbin "baserom.gba", 0x32dc3c, 0x8 + +gUnknown_0832DC44:: @ 832DC44 + .incbin "baserom.gba", 0x32dc44, 0x50 + +gUnknown_0832DC94:: @ 832DC94 + .incbin "baserom.gba", 0x32dc94, 0x18 + +gUnknown_0832DCAC:: @ 832DCAC + .incbin "baserom.gba", 0x32dcac, 0x38 + +gUnknown_0832DCE4:: @ 832DCE4 + .incbin "baserom.gba", 0x32dce4, 0x8 + +gUnknown_0832DCEC:: @ 832DCEC + .incbin "baserom.gba", 0x32dcec, 0x138 + +gUnknown_0832DE24:: @ 832DE24 + .incbin "baserom.gba", 0x32de24, 0x1a + +gUnknown_0832DE3E:: @ 832DE3E + .incbin "baserom.gba", 0x32de3e, 0x18 + +gUnknown_0832DE56:: @ 832DE56 + .incbin "baserom.gba", 0x32de56, 0x3e + +gUnknown_0832DE94:: @ 832DE94 + .incbin "baserom.gba", 0x32de94, 0x18 + +gUnknown_0832DEAC:: @ 832DEAC + .incbin "baserom.gba", 0x32deac, 0x10 + +gUnknown_0832DEBC:: @ 832DEBC + .incbin "baserom.gba", 0x32debc, 0x24 + +gUnknown_0832DEE0:: @ 832DEE0 + .incbin "baserom.gba", 0x32dee0, 0x4 + +gUnknown_0832DEE4:: @ 832DEE4 + .incbin "baserom.gba", 0x32dee4, 0x10 + +gUnknown_0832DEF4:: @ 832DEF4 + .incbin "baserom.gba", 0x32def4, 0x98 + +gUnknown_0832DF8C:: @ 832DF8C + .incbin "baserom.gba", 0x32df8c, 0x8 + +gUnknown_0832DF94:: @ 832DF94 + .incbin "baserom.gba", 0x32df94, 0x5 + +gUnknown_0832DF99:: @ 832DF99 + .incbin "baserom.gba", 0x32df99, 0x2027 + +gUnknown_0832FFC0:: @ 832FFC0 + .incbin "baserom.gba", 0x32ffc0, 0x1fa0 + +gUnknown_08331F60:: @ 8331F60 + .incbin "baserom.gba", 0x331f60, 0x1000 + +gUnknown_08332F60:: @ 8332F60 + .incbin "baserom.gba", 0x332f60, 0x2840 + +gUnknown_083357A0:: @ 83357A0 + .incbin "baserom.gba", 0x3357a0, 0x100 + +gUnknown_083358A0:: @ 83358A0 + .incbin "baserom.gba", 0x3358a0, 0x100 + +gUnknown_083359A0:: @ 83359A0 + .incbin "baserom.gba", 0x3359a0, 0x1000 + +gUnknown_083369A0:: @ 83369A0 + .incbin "baserom.gba", 0x3369a0, 0x1000 + +gUnknown_083379A0:: @ 83379A0 + .incbin "baserom.gba", 0x3379a0, 0x100 + +gUnknown_08337AA0:: @ 8337AA0 + .incbin "baserom.gba", 0x337aa0, 0x200 + +gUnknown_08337CA0:: @ 8337CA0 + .incbin "baserom.gba", 0x337ca0, 0x200 + +gUnknown_08337EA0:: @ 8337EA0 + .incbin "baserom.gba", 0x337ea0, 0x20 + +gUnknown_08337EC0:: @ 8337EC0 + .incbin "baserom.gba", 0x337ec0, 0x690 + +gUnknown_08338550:: @ 8338550 + .incbin "baserom.gba", 0x338550, 0x7c8 + +gUnknown_08338D18:: @ 8338D18 + .incbin "baserom.gba", 0x338d18, 0x8 + +gUnknown_08338D20:: @ 8338D20 + .incbin "baserom.gba", 0x338d20, 0x8 + +gUnknown_08338D28:: @ 8338D28 + .incbin "baserom.gba", 0x338d28, 0x48 + +gUnknown_08338D70:: @ 8338D70 + .incbin "baserom.gba", 0x338d70, 0x8 + +gUnknown_08338D78:: @ 8338D78 + .incbin "baserom.gba", 0x338d78, 0x8 + +gUnknown_08338D80:: @ 8338D80 + .incbin "baserom.gba", 0x338d80, 0x8 + +gUnknown_08338D88:: @ 8338D88 + .incbin "baserom.gba", 0x338d88, 0x38 + +gUnknown_08338DC0:: @ 8338DC0 + .incbin "baserom.gba", 0x338dc0, 0x8 + +gUnknown_08338DC8:: @ 8338DC8 + .incbin "baserom.gba", 0x338dc8, 0x2c + +gUnknown_08338DF4:: @ 8338DF4 + .incbin "baserom.gba", 0x338df4, 0x8 + +gUnknown_08338DFC:: @ 8338DFC + .incbin "baserom.gba", 0x338dfc, 0x70 + +gUnknown_08338E6C:: @ 8338E6C + .incbin "baserom.gba", 0x338e6c, 0x8 + +gUnknown_08338E74:: @ 8338E74 + .incbin "baserom.gba", 0x338e74, 0x18 + +gUnknown_08338E8C:: @ 8338E8C + .incbin "baserom.gba", 0x338e8c, 0x18 + +gUnknown_08338EA4:: @ 8338EA4 + .incbin "baserom.gba", 0x338ea4, 0x28 + +gUnknown_08338ECC:: @ 8338ECC + .incbin "baserom.gba", 0x338ecc, 0x4 + +gUnknown_08338ED0:: @ 8338ED0 + .incbin "baserom.gba", 0x338ed0, 0xf0 + +gUnknown_08338FC0:: @ 8338FC0 + .incbin "baserom.gba", 0x338fc0, 0x3c + +gUnknown_08338FFC:: @ 8338FFC + .incbin "baserom.gba", 0x338ffc, 0x10 + +gUnknown_0833900C:: @ 833900C + .incbin "baserom.gba", 0x33900c, 0x8 + +gUnknown_08339014:: @ 8339014 + .incbin "baserom.gba", 0x339014, 0x10 + +gUnknown_08339024:: @ 8339024 + .incbin "baserom.gba", 0x339024, 0x6c + +gUnknown_08339090:: @ 8339090 + .incbin "baserom.gba", 0x339090, 0x44 diff --git a/data/trainer_card.s b/data/trainer_card.s new file mode 100644 index 000000000..0d48cd0b6 --- /dev/null +++ b/data/trainer_card.s @@ -0,0 +1,167 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_0856F018:: @ 856F018 + .incbin "baserom.gba", 0x56f018, 0x494 + +gUnknown_0856F4AC:: @ 856F4AC + .incbin "baserom.gba", 0x56f4ac, 0x20 + +gUnknown_0856F4CC:: @ 856F4CC + .incbin "baserom.gba", 0x56f4cc, 0x20 + +gUnknown_0856F4EC:: @ 856F4EC + .incbin "baserom.gba", 0x56f4ec, 0x20 + +gUnknown_0856F50C:: @ 856F50C + .incbin "baserom.gba", 0x56f50c, 0x20 + +gUnknown_0856F52C:: @ 856F52C + .incbin "baserom.gba", 0x56f52c, 0x20 + +gUnknown_0856F54C:: @ 856F54C + .incbin "baserom.gba", 0x56f54c, 0x20 + +gUnknown_0856F56C:: @ 856F56C + .incbin "baserom.gba", 0x56f56c, 0x20 + +gUnknown_0856F58C:: @ 856F58C + .incbin "baserom.gba", 0x56f58c, 0x20 + +gUnknown_0856F5AC:: @ 856F5AC + .incbin "baserom.gba", 0x56f5ac, 0x20 + +gUnknown_0856F5CC:: @ 856F5CC + .incbin "baserom.gba", 0x56f5cc, 0x248 + +gUnknown_0856F814:: @ 856F814 + .incbin "baserom.gba", 0x56f814, 0x2a0 + +gUnknown_0856FAB4:: @ 856FAB4 + .incbin "baserom.gba", 0x56fab4, 0x10 + +gUnknown_0856FAC4:: @ 856FAC4 + .incbin "baserom.gba", 0x56fac4, 0x20 + +gUnknown_0856FAE4:: @ 856FAE4 + .incbin "baserom.gba", 0x56fae4, 0x14 + +gUnknown_0856FAF8:: @ 856FAF8 + .incbin "baserom.gba", 0x56faf8, 0x14 + +gUnknown_0856FB0C:: @ 856FB0C + .incbin "baserom.gba", 0x56fb0c, 0x3 + +gUnknown_0856FB0F:: @ 856FB0F + .incbin "baserom.gba", 0x56fb0f, 0x9 + +gUnknown_0856FB18:: @ 856FB18 + .incbin "baserom.gba", 0x56fb18, 0x8 + +gUnknown_0856FB20:: @ 856FB20 + .incbin "baserom.gba", 0x56fb20, 0x8 + +gUnknown_0856FB28:: @ 856FB28 + .incbin "baserom.gba", 0x56fb28, 0x18 + +gUnknown_0856FB40:: @ 856FB40 + .incbin "baserom.gba", 0x56fb40, 0x8 + +gUnknown_0856FB48:: @ 856FB48 + .incbin "baserom.gba", 0x56fb48, 0x2 + +gUnknown_0856FB4A:: @ 856FB4A + .incbin "baserom.gba", 0x56fb4a, 0x2 + +gUnknown_0856FB4C:: @ 856FB4C + .incbin "baserom.gba", 0x56fb4c, 0x9 + +gUnknown_0856FB55:: @ 856FB55 + .incbin "baserom.gba", 0x56fb55, 0x2 + +gUnknown_0856FB57:: @ 856FB57 + .incbin "baserom.gba", 0x56fb57, 0x5 + +gUnknown_0856FB5C:: @ 856FB5C + .incbin "baserom.gba", 0x56fb5c, 0xc + +gUnknown_0856FB68:: @ 856FB68 + .incbin "baserom.gba", 0x56fb68, 0x6 + +gUnknown_0856FB6E:: @ 856FB6E + .incbin "baserom.gba", 0x56fb6e, 0x6 + +gUnknown_0856FB74:: @ 856FB74 + .incbin "baserom.gba", 0x56fb74, 0x4 + +gUnknown_0856FB78:: @ 856FB78 + .incbin "baserom.gba", 0x56fb78, 0x44 + +gUnknown_0856FBBC:: @ 856FBBC + .incbin "baserom.gba", 0x56fbbc, 0x1244 + +gUnknown_08570E00:: @ 8570E00 + .incbin "baserom.gba", 0x570e00, 0x260 + +gUnknown_08571060:: @ 8571060 + .incbin "baserom.gba", 0x571060, 0x260 + +gUnknown_085712C0:: @ 85712C0 + .incbin "baserom.gba", 0x5712c0, 0x38 + +gUnknown_085712F8:: @ 85712F8 + .incbin "baserom.gba", 0x5712f8, 0xe8 + +gUnknown_085713E0:: @ 85713E0 + .incbin "baserom.gba", 0x5713e0, 0x8 + +gUnknown_085713E8:: @ 85713E8 + .incbin "baserom.gba", 0x5713e8, 0xc + +gUnknown_085713F4:: @ 85713F4 + .incbin "baserom.gba", 0x5713f4, 0xc + +gUnknown_08571400:: @ 8571400 + .incbin "baserom.gba", 0x571400, 0x28 + +gUnknown_08571428:: @ 8571428 + .incbin "baserom.gba", 0x571428, 0x20 + +gUnknown_08571448:: @ 8571448 + .incbin "baserom.gba", 0x571448, 0x3 + +gUnknown_0857144B:: @ 857144B + .incbin "baserom.gba", 0x57144b, 0x3 + +gUnknown_0857144E:: @ 857144E + .incbin "baserom.gba", 0x57144e, 0x6 + +gUnknown_08571454:: @ 8571454 + .incbin "baserom.gba", 0x571454, 0x68 + +gUnknown_085714BC:: @ 85714BC + .incbin "baserom.gba", 0x5714bc, 0x18 + +gUnknown_085714D4:: @ 85714D4 + .incbin "baserom.gba", 0x5714d4, 0x10 + +gUnknown_085714E4:: @ 85714E4 + .incbin "baserom.gba", 0x5714e4, 0xd0 + +gUnknown_085715B4:: @ 85715B4 + .incbin "baserom.gba", 0x5715b4, 0x30 + +gUnknown_085715E4:: @ 85715E4 + .incbin "baserom.gba", 0x5715e4, 0x18 + +gUnknown_085715FC:: @ 85715FC + .incbin "baserom.gba", 0x5715fc, 0x18 + +gUnknown_08571614:: @ 8571614 + .incbin "baserom.gba", 0x571614, 0x3c + +gUnknown_08571650:: @ 8571650 + .incbin "baserom.gba", 0x571650, 0x70 diff --git a/data/trainer_rematch.s b/data/trainer_rematch.s new file mode 100644 index 000000000..9d6fc7717 --- /dev/null +++ b/data/trainer_rematch.s @@ -0,0 +1,10 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + +gUnknown_0862AD34:: @ 862AD34 + .incbin "baserom.gba", 0x62ad34, 0x10 + +gUnknown_0862AD44:: @ 862AD44 + .incbin "baserom.gba", 0x62ad44, 0x10 diff --git a/data/trainer_see.s b/data/trainer_see.s new file mode 100644 index 000000000..7480cb290 --- /dev/null +++ b/data/trainer_see.s @@ -0,0 +1,14 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_0855072C:: @ 855072C + .incbin "baserom.gba", 0x55072c, 0x10 + +gUnknown_0855073C:: @ 855073C + .incbin "baserom.gba", 0x55073c, 0x30 + +gUnknown_0855076C:: @ 855076C + .incbin "baserom.gba", 0x55076c, 0x48 diff --git a/data/tv.s b/data/tv.s new file mode 100644 index 000000000..4d2a608c4 --- /dev/null +++ b/data/tv.s @@ -0,0 +1,128 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +gUnknown_0858D094:: @ 858D094 + .incbin "baserom.gba", 0x58d094, 0x3c + +gUnknown_0858D0D0:: @ 858D0D0 + .incbin "baserom.gba", 0x58d0d0, 0xe + +gUnknown_0858D0DE:: @ 858D0DE + .incbin "baserom.gba", 0x58d0de, 0xe + +gUnknown_0858D0EC:: @ 858D0EC + .incbin "baserom.gba", 0x58d0ec, 0x1c + +gUnknown_0858D108:: @ 858D108 + .incbin "baserom.gba", 0x58d108, 0x14 + +gUnknown_0858D11C:: @ 858D11C + .incbin "baserom.gba", 0x58d11c, 0x14 + +gUnknown_0858D130:: @ 858D130 + .incbin "baserom.gba", 0x58d130, 0x14 + +gUnknown_0858D144:: @ 858D144 + .incbin "baserom.gba", 0x58d144, 0xc + +gUnknown_0858D150:: @ 858D150 + .incbin "baserom.gba", 0x58d150, 0x20 + +gUnknown_0858D170:: @ 858D170 + .incbin "baserom.gba", 0x58d170, 0x18 + +gUnknown_0858D188:: @ 858D188 + .incbin "baserom.gba", 0x58d188, 0x14 + +gUnknown_0858D19C:: @ 858D19C + .incbin "baserom.gba", 0x58d19c, 0x4 + +gUnknown_0858D1A0:: @ 858D1A0 + .incbin "baserom.gba", 0x58d1a0, 0x30 + +gUnknown_0858D1D0:: @ 858D1D0 + .incbin "baserom.gba", 0x58d1d0, 0x34 + +gUnknown_0858D204:: @ 858D204 + .incbin "baserom.gba", 0x58d204, 0x24 + +gUnknown_0858D228:: @ 858D228 + .incbin "baserom.gba", 0x58d228, 0x18 + +gUnknown_0858D240:: @ 858D240 + .incbin "baserom.gba", 0x58d240, 0x3c + +gUnknown_0858D27C:: @ 858D27C + .incbin "baserom.gba", 0x58d27c, 0x84 + +gUnknown_0858D300:: @ 858D300 + .incbin "baserom.gba", 0x58d300, 0x20 + +gUnknown_0858D320:: @ 858D320 + .incbin "baserom.gba", 0x58d320, 0x18 + +gUnknown_0858D338:: @ 858D338 + .incbin "baserom.gba", 0x58d338, 0x4c + +gUnknown_0858D384:: @ 858D384 + .incbin "baserom.gba", 0x58d384, 0x10 + +gUnknown_0858D394:: @ 858D394 + .incbin "baserom.gba", 0x58d394, 0x1c + +gUnknown_0858D3B0:: @ 858D3B0 + .incbin "baserom.gba", 0x58d3b0, 0x8 + +gUnknown_0858D3B8:: @ 858D3B8 + .incbin "baserom.gba", 0x58d3b8, 0xc + +gUnknown_0858D3C4:: @ 858D3C4 + .incbin "baserom.gba", 0x58d3c4, 0x2c + +gUnknown_0858D3F0:: @ 858D3F0 + .incbin "baserom.gba", 0x58d3f0, 0x1c + +gUnknown_0858D40C:: @ 858D40C + .incbin "baserom.gba", 0x58d40c, 0xc + +gUnknown_0858D418:: @ 858D418 + .incbin "baserom.gba", 0x58d418, 0x10 + +gUnknown_0858D428:: @ 858D428 + .incbin "baserom.gba", 0x58d428, 0x34 + +gUnknown_0858D45C:: @ 858D45C + .incbin "baserom.gba", 0x58d45c, 0x38 + +gUnknown_0858D494:: @ 858D494 + .incbin "baserom.gba", 0x58d494, 0x4 + +gUnknown_0858D498:: @ 858D498 + .incbin "baserom.gba", 0x58d498, 0x1c + +gUnknown_0858D4B4:: @ 858D4B4 + .incbin "baserom.gba", 0x58d4b4, 0x30 + +gUnknown_0858D4E4:: @ 858D4E4 + .incbin "baserom.gba", 0x58d4e4, 0x40 + +gUnknown_0858D524:: @ 858D524 + .incbin "baserom.gba", 0x58d524, 0x4c + +gUnknown_0858D570:: @ 858D570 + .incbin "baserom.gba", 0x58d570, 0x24 + +gUnknown_0858D594:: @ 858D594 + .incbin "baserom.gba", 0x58d594, 0xac + +gUnknown_0858D640:: @ 858D640 + .incbin "baserom.gba", 0x58d640, 0x2c + +gUnknown_0858D66C:: @ 858D66C + .incbin "baserom.gba", 0x58d66c, 0x24 + +gUnknown_0858D690:: @ 858D690 + .incbin "baserom.gba", 0x58d690, 0x20 diff --git a/data/unk_81BAD84.s b/data/unk_81BAD84.s new file mode 100644 index 000000000..de88365ac --- /dev/null +++ b/data/unk_81BAD84.s @@ -0,0 +1,7 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + +gUnknown_08617128:: @ 8617128 + .incbin "baserom.gba", 0x617128, 0x48 diff --git a/data/unk_sprite_file.s b/data/unk_sprite_file.s new file mode 100644 index 000000000..837e87c3f --- /dev/null +++ b/data/unk_sprite_file.s @@ -0,0 +1,22 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + +gUnknown_0862AD54:: @ 862AD54 + .incbin "baserom.gba", 0x62ad54, 0x1dc + +gUnknown_0862AF30:: @ 862AF30 + .incbin "baserom.gba", 0x62af30, 0x60c + +gUnknown_0862B53C:: @ 862B53C + .incbin "baserom.gba", 0x62b53c, 0x1e8 + +gUnknown_0862B724:: @ 862B724 + .incbin "baserom.gba", 0x62b724, 0x8 + +gUnknown_0862B72C:: @ 862B72C + .incbin "baserom.gba", 0x62b72c, 0x2c + +gUnknown_0862B758:: @ 862B758 + .incbin "baserom.gba", 0x62b758, 0x18 diff --git a/data/unk_transition.s b/data/unk_transition.s new file mode 100644 index 000000000..5ed120d85 --- /dev/null +++ b/data/unk_transition.s @@ -0,0 +1,28 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + +gUnknown_0862B770:: @ 862B770 + .incbin "baserom.gba", 0x62b770, 0x14 + +gUnknown_0862B784:: @ 862B784 + .incbin "baserom.gba", 0x62b784, 0x14 + +gUnknown_0862B798:: @ 862B798 + .incbin "baserom.gba", 0x62b798, 0x14 + +gUnknown_0862B7AC:: @ 862B7AC + .incbin "baserom.gba", 0x62b7ac, 0x14 + +gUnknown_0862B7C0:: @ 862B7C0 + .incbin "baserom.gba", 0x62b7c0, 0x14 + +gUnknown_0862B7D4:: @ 862B7D4 + .incbin "baserom.gba", 0x62b7d4, 0x14 + +gUnknown_0862B7E8:: @ 862B7E8 + .incbin "baserom.gba", 0x62b7e8, 0x14 + +gUnknown_0862B7FC:: @ 862B7FC + .incbin "baserom.gba", 0x62b7fc, 0x14 diff --git a/data/use_pokeblock.s b/data/use_pokeblock.s new file mode 100644 index 000000000..9b557a0dd --- /dev/null +++ b/data/use_pokeblock.s @@ -0,0 +1,55 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + +gUnknown_085DFA60:: @ 85DFA60 + .incbin "baserom.gba", 0x5dfa60, 0x20 + +gUnknown_085DFA80:: @ 85DFA80 + .incbin "baserom.gba", 0x5dfa80, 0xe0 + +gUnknown_085DFB60:: @ 85DFB60 + .incbin "baserom.gba", 0x5dfb60, 0xac + +gUnknown_085DFC0C:: @ 85DFC0C + .incbin "baserom.gba", 0x5dfc0c, 0xa4 + +gUnknown_085DFCB0:: @ 85DFCB0 + .incbin "baserom.gba", 0x5dfcb0, 0x14 + +gUnknown_085DFCC4:: @ 85DFCC4 + .incbin "baserom.gba", 0x5dfcc4, 0x5 + +gUnknown_085DFCC9:: @ 85DFCC9 + .incbin "baserom.gba", 0x5dfcc9, 0x3 + +gUnknown_085DFCCC:: @ 85DFCCC + .incbin "baserom.gba", 0x5dfccc, 0x10 + +gUnknown_085DFCDC:: @ 85DFCDC + .incbin "baserom.gba", 0x5dfcdc, 0x20 + +gUnknown_085DFCFC:: @ 85DFCFC + .incbin "baserom.gba", 0x5dfcfc, 0x8 + +gUnknown_085DFD04:: @ 85DFD04 + .incbin "baserom.gba", 0x5dfd04, 0x14 + +gUnknown_085DFD18:: @ 85DFD18 + .incbin "baserom.gba", 0x5dfd18, 0x8 + +gUnknown_085DFD20:: @ 85DFD20 + .incbin "baserom.gba", 0x5dfd20, 0x8 + +gUnknown_085DFD28:: @ 85DFD28 + .incbin "baserom.gba", 0x5dfd28, 0x34 + +gUnknown_085DFD5C:: @ 85DFD5C + .incbin "baserom.gba", 0x5dfd5c, 0x44 + +gUnknown_085DFDA0:: @ 85DFDA0 + .incbin "baserom.gba", 0x5dfda0, 0x18 + +gUnknown_085DFDB8:: @ 85DFDB8 + .incbin "baserom.gba", 0x5dfdb8, 0x8 diff --git a/data/walda_phrase.s b/data/walda_phrase.s new file mode 100644 index 000000000..c168353b4 --- /dev/null +++ b/data/walda_phrase.s @@ -0,0 +1,7 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + +gUnknown_0862AD14:: @ 862AD14 + .incbin "baserom.gba", 0x62ad14, 0x20 diff --git a/data/wild_encounter.s b/data/wild_encounter.s new file mode 100644 index 000000000..ddb842a76 --- /dev/null +++ b/data/wild_encounter.s @@ -0,0 +1,22 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2, 0 + +@ 85507E4 + .include "data/wild_mons.inc" + + .incbin "baserom.gba", 0x55370c, 0x188 + +gUnknown_08553894:: @ 8553894 + .incbin "baserom.gba", 0x553894, 0x180 + +gUnknown_08553A14:: @ 8553A14 + .incbin "baserom.gba", 0x553a14, 0x64 + +gUnknown_08553A78:: @ 8553A78 + .incbin "baserom.gba", 0x553a78, 0x4 + +gUnknown_08553A7C:: @ 8553A7C + .incbin "baserom.gba", 0x553a7c, 0x14 diff --git a/graphics/battle_interface/ball_display.pal b/graphics/battle_interface/ball_display.pal new file mode 100644 index 000000000..ea646bb82 --- /dev/null +++ b/graphics/battle_interface/ball_display.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +57 57 57 +255 255 255 +213 205 189 +131 131 139 +74 65 90 +82 106 90 +255 180 123 +246 148 115 +222 106 90 +115 255 172 +90 213 131 +255 230 57 +205 172 8 +255 90 57 +172 65 74 diff --git a/graphics/battle_interface/ball_display.png b/graphics/battle_interface/ball_display.png new file mode 100644 index 000000000..0c49d7ac4 Binary files /dev/null and b/graphics/battle_interface/ball_display.png differ diff --git a/graphics/battle_interface/ball_status_bar.pal b/graphics/battle_interface/ball_status_bar.pal new file mode 100644 index 000000000..bc8e8f2bc --- /dev/null +++ b/graphics/battle_interface/ball_status_bar.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +65 65 65 +255 255 222 +222 213 180 +197 189 115 +123 148 131 +82 106 98 +32 57 0 +57 82 65 +255 230 0 +255 156 148 +65 205 255 +0 0 255 +0 255 0 +255 0 0 +106 148 255 diff --git a/graphics/battle_interface/ball_status_bar.png b/graphics/battle_interface/ball_status_bar.png new file mode 100644 index 000000000..b947a7803 Binary files /dev/null and b/graphics/battle_interface/ball_status_bar.png differ diff --git a/graphics/battle_interface/unk_battlebox.pal b/graphics/battle_interface/unk_battlebox.pal new file mode 100644 index 000000000..862165f3f --- /dev/null +++ b/graphics/battle_interface/unk_battlebox.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +255 255 255 +106 90 115 +0 0 0 +213 230 255 +189 205 238 +238 238 255 +106 172 197 +90 139 180 +123 197 205 +0 0 0 +0 0 0 +123 197 255 +0 0 139 +255 131 131 +164 0 0 diff --git a/graphics/battle_interface/unk_battlebox.png b/graphics/battle_interface/unk_battlebox.png new file mode 100644 index 000000000..24700ef4d Binary files /dev/null and b/graphics/battle_interface/unk_battlebox.png differ diff --git a/graphics/credits/credits_1.pal b/graphics/credits/credits_1.pal new file mode 100644 index 000000000..222be7101 --- /dev/null +++ b/graphics/credits/credits_1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 255 255 +164 164 164 +255 230 123 +255 82 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/credits/credits_2.pal b/graphics/credits/credits_2.pal new file mode 100644 index 000000000..7dac48572 --- /dev/null +++ b/graphics/credits/credits_2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 230 123 +255 82 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 +0 0 0 +0 0 0 diff --git a/graphics/credits/credits_3.pal b/graphics/credits/credits_3.pal new file mode 100644 index 000000000..cbd66ec0c --- /dev/null +++ b/graphics/credits/credits_3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +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 +131 65 32 +16 0 0 +8 139 65 +8 8 0 +8 8 0 +8 8 0 +148 131 32 +16 8 0 diff --git a/graphics/credits/credits_4.pal b/graphics/credits/credits_4.pal new file mode 100644 index 000000000..2df49dc85 --- /dev/null +++ b/graphics/credits/credits_4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 74 65 +16 65 65 +131 131 32 +148 131 65 +8 139 65 +8 139 0 +8 8 32 +148 131 0 +148 65 65 +16 74 65 +0 139 65 +0 131 65 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/credits/the_end_copyright.png b/graphics/credits/the_end_copyright.png new file mode 100644 index 000000000..e226adf5d Binary files /dev/null and b/graphics/credits/the_end_copyright.png differ diff --git a/graphics/interface/berry_tag_screen.pal b/graphics/interface/berry_tag_screen.pal new file mode 100644 index 000000000..a55550e8f --- /dev/null +++ b/graphics/interface/berry_tag_screen.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +255 255 255 +98 98 98 +213 213 205 +230 8 8 +255 189 115 +32 156 8 +148 246 148 +49 82 205 +164 197 246 +0 0 0 +0 0 0 +0 0 0 +189 131 65 +65 32 0 +238 222 172 diff --git a/graphics/intro/85F0CFC.pal b/graphics/intro/85F0CFC.pal new file mode 100644 index 000000000..09a1ee728 --- /dev/null +++ b/graphics/intro/85F0CFC.pal @@ -0,0 +1,51 @@ +JASC-PAL +0100 +48 +0 0 0 +74 82 82 +90 123 123 +205 205 197 +255 255 255 +82 131 246 +115 164 246 +139 197 246 +180 222 230 +197 246 230 +164 230 246 +131 164 255 +189 197 255 +156 197 255 +180 230 255 +189 197 255 +0 0 0 +255 255 255 +230 246 255 +205 238 255 +180 230 255 +164 222 255 +139 213 255 +115 205 255 +98 197 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +255 255 255 +230 246 255 +205 238 255 +180 230 255 +164 222 255 +139 213 255 +115 205 255 +98 197 255 +230 230 255 +246 255 255 +213 222 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/intro/85F0D5C.pal b/graphics/intro/85F0D5C.pal new file mode 100644 index 000000000..4ff388f48 --- /dev/null +++ b/graphics/intro/85F0D5C.pal @@ -0,0 +1,51 @@ +JASC-PAL +0100 +48 +0 0 0 +74 82 82 +90 123 123 +205 205 197 +255 255 255 +255 98 82 +255 123 106 +255 148 139 +255 172 172 +255 197 205 +255 222 238 +156 180 172 +197 197 156 +172 189 164 +255 222 156 +222 172 106 +0 0 0 +255 255 255 +255 238 205 +255 222 156 +255 222 156 +255 213 131 +255 197 106 +255 172 98 +255 156 90 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +255 255 255 +255 238 205 +255 222 156 +255 222 156 +255 213 131 +255 197 106 +255 172 98 +255 156 90 +255 238 205 +246 255 255 +255 222 156 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/intro/85F231C.pal b/graphics/intro/85F231C.pal new file mode 100644 index 000000000..82855d938 --- /dev/null +++ b/graphics/intro/85F231C.pal @@ -0,0 +1,35 @@ +JASC-PAL +0100 +32 +0 0 0 +49 115 246 +57 74 123 +57 74 123 +57 74 123 +49 57 98 +49 49 82 +49 32 57 +49 24 41 +0 0 0 +0 0 0 +0 0 0 +57 74 123 +57 74 123 +246 246 123 +41 65 90 +0 0 0 +0 0 0 +0 0 0 +82 90 148 +148 131 164 +57 74 123 +131 106 156 +98 90 123 +156 164 197 +139 148 172 +90 131 139 +189 197 213 +90 115 164 +230 230 82 +131 131 164 +246 246 123 diff --git a/graphics/intro/intro.png b/graphics/intro/intro.png new file mode 100644 index 000000000..e0f28c841 Binary files /dev/null and b/graphics/intro/intro.png differ diff --git a/graphics/intro/intro1_bg0_map.bin b/graphics/intro/intro1_bg0_map.bin new file mode 100644 index 000000000..8307cf656 Binary files /dev/null and b/graphics/intro/intro1_bg0_map.bin differ diff --git a/graphics/intro/intro1_bg1_map.bin b/graphics/intro/intro1_bg1_map.bin new file mode 100644 index 000000000..7d34e5bba Binary files /dev/null and b/graphics/intro/intro1_bg1_map.bin differ diff --git a/graphics/intro/intro1_bg2_map.bin b/graphics/intro/intro1_bg2_map.bin new file mode 100644 index 000000000..7781e8b08 Binary files /dev/null and b/graphics/intro/intro1_bg2_map.bin differ diff --git a/graphics/intro/intro1_bg3_map.bin b/graphics/intro/intro1_bg3_map.bin new file mode 100644 index 000000000..1af02a025 Binary files /dev/null and b/graphics/intro/intro1_bg3_map.bin differ diff --git a/graphics/intro/intro1_bgpal.pal b/graphics/intro/intro1_bgpal.pal new file mode 100644 index 000000000..95145b854 --- /dev/null +++ b/graphics/intro/intro1_bgpal.pal @@ -0,0 +1,259 @@ +JASC-PAL +0100 +256 +0 0 0 +24 90 0 +49 115 0 +65 139 0 +90 172 0 +164 172 255 +164 197 255 +139 213 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +148 205 98 +180 255 131 +164 238 98 +0 0 0 +24 90 0 +49 115 0 +65 139 0 +90 172 0 +164 172 255 +164 197 255 +139 213 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +148 205 98 +180 255 131 +164 238 98 +0 0 0 +24 82 0 +32 90 0 +41 98 0 +49 115 0 +57 123 0 +65 139 0 +74 148 0 +82 156 0 +90 172 0 +0 16 0 +8 41 0 +16 57 0 +123 197 16 +180 255 131 +164 238 98 +0 0 0 +24 82 0 +32 90 0 +41 98 0 +49 115 0 +57 123 0 +65 139 0 +74 148 0 +82 156 0 +90 172 0 +8 24 8 +8 41 0 +16 57 0 +148 205 98 +98 172 74 +238 255 238 +0 0 0 +24 90 0 +49 115 0 +65 139 0 +90 172 0 +164 172 255 +164 197 255 +139 213 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +148 205 98 +180 255 131 +164 238 98 +0 0 0 +255 255 255 +246 246 238 +238 246 230 +230 246 222 +205 238 222 +180 230 230 +172 213 238 +131 205 238 +180 180 156 +213 213 230 +205 197 213 +189 230 115 +156 213 98 +222 230 222 +115 172 98 +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 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +156 246 0 +65 90 156 +49 115 255 +82 82 82 +98 98 98 +115 115 115 +131 131 131 +148 148 148 +164 164 164 +180 180 180 +197 197 197 +213 213 213 +230 230 230 +255 255 255 +255 255 255 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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/intro/intro1_drops.pal b/graphics/intro/intro1_drops.pal new file mode 100644 index 000000000..1b8ce3d6e --- /dev/null +++ b/graphics/intro/intro1_drops.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +8 57 8 +32 74 32 +57 98 57 +90 123 90 +115 139 115 +139 164 139 +172 189 172 +197 205 197 +222 230 222 +255 255 255 diff --git a/graphics/intro/intro1_eon.png b/graphics/intro/intro1_eon.png new file mode 100644 index 000000000..cf8eedc08 Binary files /dev/null and b/graphics/intro/intro1_eon.png differ diff --git a/graphics/intro/intro1_flygon.pal b/graphics/intro/intro1_flygon.pal new file mode 100644 index 000000000..dcfc242a5 --- /dev/null +++ b/graphics/intro/intro1_flygon.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +74 74 82 +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 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/intro/intro1_flygon.png b/graphics/intro/intro1_flygon.png new file mode 100644 index 000000000..080ab1a65 Binary files /dev/null and b/graphics/intro/intro1_flygon.png differ diff --git a/graphics/intro/intro1_gflogo.pal b/graphics/intro/intro1_gflogo.pal new file mode 100644 index 000000000..aef9152e4 --- /dev/null +++ b/graphics/intro/intro1_gflogo.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +156 246 0 +65 90 156 +49 115 255 +82 82 82 +98 98 98 +115 115 115 +131 131 131 +148 148 148 +164 164 164 +180 180 180 +197 197 197 +213 213 213 +230 230 230 +255 255 255 +255 255 255 diff --git a/graphics/intro/intro1_sparkle.png b/graphics/intro/intro1_sparkle.png new file mode 100644 index 000000000..f8db885ec Binary files /dev/null and b/graphics/intro/intro1_sparkle.png differ diff --git a/graphics/intro/intro2_bgclouds.pal b/graphics/intro/intro2_bgclouds.pal new file mode 100644 index 000000000..6b312a16c --- /dev/null +++ b/graphics/intro/intro2_bgclouds.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 255 255 +230 246 255 +205 238 255 +180 230 255 +164 222 255 +139 213 255 +115 205 255 +98 197 255 +230 230 255 +246 255 255 +213 222 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/intro/intro2_bgclouds.png b/graphics/intro/intro2_bgclouds.png new file mode 100644 index 000000000..7ba3d78f4 Binary files /dev/null and b/graphics/intro/intro2_bgclouds.png differ diff --git a/graphics/intro/intro2_bgclouds2.png b/graphics/intro/intro2_bgclouds2.png new file mode 100644 index 000000000..933332fdd Binary files /dev/null and b/graphics/intro/intro2_bgclouds2.png differ diff --git a/graphics/intro/intro2_bgclouds_afternoon.pal b/graphics/intro/intro2_bgclouds_afternoon.pal new file mode 100644 index 000000000..6d5d9dbcd --- /dev/null +++ b/graphics/intro/intro2_bgclouds_afternoon.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 255 255 +255 238 205 +255 222 156 +255 222 156 +255 213 131 +255 197 106 +255 172 98 +255 156 90 +255 238 205 +246 255 255 +255 222 156 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/intro/intro2_bgclouds_map.bin b/graphics/intro/intro2_bgclouds_map.bin new file mode 100644 index 000000000..25b65f766 Binary files /dev/null and b/graphics/intro/intro2_bgclouds_map.bin differ diff --git a/graphics/intro/intro2_bgnight.pal b/graphics/intro/intro2_bgnight.pal new file mode 100644 index 000000000..765aad45a --- /dev/null +++ b/graphics/intro/intro2_bgnight.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +82 90 148 +148 131 164 +57 74 123 +131 106 156 +98 90 123 +156 164 197 +139 148 172 +90 131 139 +189 197 213 +90 115 164 +230 230 82 +131 131 164 +246 246 123 diff --git a/graphics/intro/intro2_bgnight.png b/graphics/intro/intro2_bgnight.png new file mode 100644 index 000000000..cb95bb04f Binary files /dev/null and b/graphics/intro/intro2_bgnight.png differ diff --git a/graphics/intro/intro2_bgnight_map.bin b/graphics/intro/intro2_bgnight_map.bin new file mode 100644 index 000000000..ef7c889ba Binary files /dev/null and b/graphics/intro/intro2_bgnight_map.bin differ diff --git a/graphics/intro/intro2_bgtrees.pal b/graphics/intro/intro2_bgtrees.pal new file mode 100644 index 000000000..5c506481a --- /dev/null +++ b/graphics/intro/intro2_bgtrees.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +156 189 246 +172 205 246 +197 230 255 +213 246 255 +238 255 255 +156 180 172 +197 197 156 +172 189 164 +98 139 98 +98 156 57 +123 164 131 +156 213 82 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/intro/intro2_bgtrees.png b/graphics/intro/intro2_bgtrees.png new file mode 100644 index 000000000..e6d163579 Binary files /dev/null and b/graphics/intro/intro2_bgtrees.png differ diff --git a/graphics/intro/intro2_bgtrees2.pal b/graphics/intro/intro2_bgtrees2.pal new file mode 100644 index 000000000..5c506481a --- /dev/null +++ b/graphics/intro/intro2_bgtrees2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +156 189 246 +172 205 246 +197 230 255 +213 246 255 +238 255 255 +156 180 172 +197 197 156 +172 189 164 +98 139 98 +98 156 57 +123 164 131 +156 213 82 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/intro/intro2_bgtrees2_afternoon.pal b/graphics/intro/intro2_bgtrees2_afternoon.pal new file mode 100644 index 000000000..9736a6e95 --- /dev/null +++ b/graphics/intro/intro2_bgtrees2_afternoon.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 106 57 +255 131 82 +255 197 106 +255 213 131 +255 222 156 +156 180 172 +197 197 156 +172 189 164 +115 139 57 +98 156 57 +131 172 57 +189 197 49 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/intro/intro2_bgtrees_map.bin b/graphics/intro/intro2_bgtrees_map.bin new file mode 100644 index 000000000..d1c23cc36 Binary files /dev/null and b/graphics/intro/intro2_bgtrees_map.bin differ diff --git a/graphics/intro/intro2_bgtreessmall.png b/graphics/intro/intro2_bgtreessmall.png new file mode 100644 index 000000000..33a7213b8 Binary files /dev/null and b/graphics/intro/intro2_bgtreessmall.png differ diff --git a/graphics/intro/intro2_bicycle.png b/graphics/intro/intro2_bicycle.png new file mode 100644 index 000000000..ff63f93a4 Binary files /dev/null and b/graphics/intro/intro2_bicycle.png differ diff --git a/graphics/intro/intro2_brendan.pal b/graphics/intro/intro2_brendan.pal new file mode 100644 index 000000000..a948fb920 --- /dev/null +++ b/graphics/intro/intro2_brendan.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 189 172 +82 74 74 +139 139 123 +197 189 222 +255 255 255 +230 49 0 +246 148 0 +0 0 0 +255 213 148 +222 164 139 +0 0 0 +246 57 131 +189 57 115 +131 255 131 +82 197 90 +131 164 65 diff --git a/graphics/intro/intro2_brendan.png b/graphics/intro/intro2_brendan.png new file mode 100644 index 000000000..045953002 Binary files /dev/null and b/graphics/intro/intro2_brendan.png differ diff --git a/graphics/intro/intro2_brendan_noturn.pal b/graphics/intro/intro2_brendan_noturn.pal new file mode 100644 index 000000000..49a329307 --- /dev/null +++ b/graphics/intro/intro2_brendan_noturn.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 189 172 +82 74 74 +139 139 123 +197 189 222 +255 255 255 +230 49 0 +246 148 0 +98 98 131 +255 213 148 +222 164 139 +180 172 115 +246 90 90 +189 57 115 +131 255 65 +82 197 90 +131 164 65 diff --git a/graphics/intro/intro2_brendan_noturn.png b/graphics/intro/intro2_brendan_noturn.png new file mode 100644 index 000000000..7c7a9e494 Binary files /dev/null and b/graphics/intro/intro2_brendan_noturn.png differ diff --git a/graphics/intro/intro2_bubbles.pal b/graphics/intro/intro2_bubbles.pal new file mode 100644 index 000000000..85c483666 --- /dev/null +++ b/graphics/intro/intro2_bubbles.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 148 98 +0 41 82 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +139 172 255 +106 148 222 +82 123 189 +49 98 156 +24 74 123 +0 49 98 +180 0 0 diff --git a/graphics/intro/intro2_bubbles.png b/graphics/intro/intro2_bubbles.png new file mode 100644 index 000000000..d1f18701c Binary files /dev/null and b/graphics/intro/intro2_bubbles.png differ diff --git a/graphics/intro/intro2_flygon.pal b/graphics/intro/intro2_flygon.pal new file mode 100644 index 000000000..09607ac17 --- /dev/null +++ b/graphics/intro/intro2_flygon.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 189 172 +82 74 74 +139 139 123 +197 189 222 +255 255 255 +164 98 106 +238 57 115 +255 106 139 +255 197 180 +246 255 139 +213 238 106 +172 213 65 +164 222 139 +123 197 115 +90 148 82 +0 0 0 diff --git a/graphics/intro/intro2_flygon.png b/graphics/intro/intro2_flygon.png new file mode 100644 index 000000000..ab0b8d728 Binary files /dev/null and b/graphics/intro/intro2_flygon.png differ diff --git a/graphics/intro/intro2_grass.pal b/graphics/intro/intro2_grass.pal new file mode 100644 index 000000000..389977abf --- /dev/null +++ b/graphics/intro/intro2_grass.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +74 82 82 +90 123 123 +205 205 197 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +106 164 98 +115 197 98 +164 230 90 diff --git a/graphics/intro/intro2_grass.png b/graphics/intro/intro2_grass.png new file mode 100644 index 000000000..e573ca45e Binary files /dev/null and b/graphics/intro/intro2_grass.png differ diff --git a/graphics/intro/intro2_grass_afternoon.pal b/graphics/intro/intro2_grass_afternoon.pal new file mode 100644 index 000000000..20b1e45f5 --- /dev/null +++ b/graphics/intro/intro2_grass_afternoon.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +74 82 82 +90 123 123 +205 205 197 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +106 164 98 +106 197 98 +164 197 131 diff --git a/graphics/intro/intro2_grass_map.bin b/graphics/intro/intro2_grass_map.bin new file mode 100644 index 000000000..2a6f1a72b Binary files /dev/null and b/graphics/intro/intro2_grass_map.bin differ diff --git a/graphics/intro/intro2_grass_night.pal b/graphics/intro/intro2_grass_night.pal new file mode 100644 index 000000000..e44980f78 --- /dev/null +++ b/graphics/intro/intro2_grass_night.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +74 82 82 +90 123 123 +205 205 197 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +106 164 98 +106 197 98 +131 197 164 diff --git a/graphics/intro/intro2_latias.pal b/graphics/intro/intro2_latias.pal new file mode 100644 index 000000000..0af96be29 --- /dev/null +++ b/graphics/intro/intro2_latias.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +123 106 106 +115 131 164 +222 213 238 +255 255 255 +213 65 57 +238 106 32 +172 74 65 +255 90 65 +180 172 197 +189 139 57 +189 98 41 +90 115 180 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/intro/intro2_latias.png b/graphics/intro/intro2_latias.png new file mode 100644 index 000000000..5623895ce Binary files /dev/null and b/graphics/intro/intro2_latias.png differ diff --git a/graphics/intro/intro2_latios.pal b/graphics/intro/intro2_latios.pal new file mode 100644 index 000000000..bb51c0a7d --- /dev/null +++ b/graphics/intro/intro2_latios.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +123 106 106 +115 131 164 +222 213 238 +255 255 255 +106 131 230 +139 197 255 +90 115 180 +139 156 230 +180 172 197 +238 82 32 +238 41 24 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/intro/intro2_latios.png b/graphics/intro/intro2_latios.png new file mode 100644 index 000000000..439e26fe6 Binary files /dev/null and b/graphics/intro/intro2_latios.png differ diff --git a/graphics/intro/intro2_manectric.pal b/graphics/intro/intro2_manectric.pal new file mode 100644 index 000000000..c6bf97aa3 --- /dev/null +++ b/graphics/intro/intro2_manectric.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 189 172 +82 74 74 +139 139 123 +197 189 222 +255 255 255 +230 49 0 +246 148 0 +0 0 0 +255 255 180 +246 246 90 +205 213 49 +148 123 8 +131 164 255 +106 106 255 +41 74 213 +0 0 0 diff --git a/graphics/intro/intro2_manectric.png b/graphics/intro/intro2_manectric.png new file mode 100644 index 000000000..bcb054d7b Binary files /dev/null and b/graphics/intro/intro2_manectric.png differ diff --git a/graphics/intro/intro2_may.pal b/graphics/intro/intro2_may.pal new file mode 100644 index 000000000..1ff2ecd1d --- /dev/null +++ b/graphics/intro/intro2_may.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 189 172 +82 74 74 +139 139 123 +197 189 222 +255 255 255 +82 197 0 +148 246 98 +98 98 131 +255 213 148 +222 164 139 +180 172 115 +246 90 90 +189 57 115 +131 255 65 +82 197 90 +131 164 65 diff --git a/graphics/intro/intro2_may.png b/graphics/intro/intro2_may.png new file mode 100644 index 000000000..238924d88 Binary files /dev/null and b/graphics/intro/intro2_may.png differ diff --git a/graphics/intro/intro2_may_noturn.png b/graphics/intro/intro2_may_noturn.png new file mode 100644 index 000000000..e88300610 Binary files /dev/null and b/graphics/intro/intro2_may_noturn.png differ diff --git a/graphics/intro/intro2_night.png b/graphics/intro/intro2_night.png new file mode 100644 index 000000000..9a10567bb Binary files /dev/null and b/graphics/intro/intro2_night.png differ diff --git a/graphics/intro/intro2_torchic.pal b/graphics/intro/intro2_torchic.pal new file mode 100644 index 000000000..860b76b60 --- /dev/null +++ b/graphics/intro/intro2_torchic.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 189 172 +82 74 74 +139 139 123 +197 189 222 +255 255 255 +131 98 41 +230 98 32 +238 148 74 +246 197 115 +255 255 148 +255 213 0 +205 189 49 +255 246 205 +255 213 148 +222 180 115 +0 0 0 diff --git a/graphics/intro/intro2_torchic.png b/graphics/intro/intro2_torchic.png new file mode 100644 index 000000000..1bd1b1184 Binary files /dev/null and b/graphics/intro/intro2_torchic.png differ diff --git a/graphics/intro/intro2_volbeat.pal b/graphics/intro/intro2_volbeat.pal new file mode 100644 index 000000000..8d2464800 --- /dev/null +++ b/graphics/intro/intro2_volbeat.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 189 172 +82 74 74 +139 139 123 +197 189 222 +255 255 255 +131 98 41 +230 98 32 +238 148 74 +246 197 115 +255 255 148 +255 213 0 +205 189 49 +238 156 255 +197 115 230 +156 82 213 +0 0 0 diff --git a/graphics/intro/intro2_volbeat.png b/graphics/intro/intro2_volbeat.png new file mode 100644 index 000000000..8b6c61eb0 Binary files /dev/null and b/graphics/intro/intro2_volbeat.png differ diff --git a/graphics/intro/intro3_lightning.pal b/graphics/intro/intro3_lightning.pal new file mode 100644 index 000000000..16aae4be3 --- /dev/null +++ b/graphics/intro/intro3_lightning.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 189 172 +255 255 148 +255 213 0 +205 189 49 +255 255 255 +82 74 74 +115 106 82 +148 139 98 +180 180 115 +213 213 131 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/intro/intro3_lightning.png b/graphics/intro/intro3_lightning.png new file mode 100644 index 000000000..e858926ec Binary files /dev/null and b/graphics/intro/intro3_lightning.png differ diff --git a/graphics/intro/intro3_misc.png b/graphics/intro/intro3_misc.png new file mode 100644 index 000000000..26be33c01 Binary files /dev/null and b/graphics/intro/intro3_misc.png differ diff --git a/graphics/intro/intro3_misc1.pal b/graphics/intro/intro3_misc1.pal new file mode 100644 index 000000000..a34bebc24 --- /dev/null +++ b/graphics/intro/intro3_misc1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +0 0 0 +255 255 0 +255 213 0 +255 180 0 +255 148 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +255 222 131 +255 230 172 +255 238 213 +255 255 255 diff --git a/graphics/intro/intro3_misc2.pal b/graphics/intro/intro3_misc2.pal new file mode 100644 index 000000000..3c985dc07 --- /dev/null +++ b/graphics/intro/intro3_misc2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +0 0 0 +98 49 90 +115 106 164 +139 164 238 +106 172 255 +131 197 255 +156 222 255 +255 222 57 +255 172 57 +230 106 57 +49 49 49 +98 98 98 +148 148 148 +197 197 197 +255 255 255 diff --git a/graphics/intro/intro3_pokeball.pal b/graphics/intro/intro3_pokeball.pal new file mode 100644 index 000000000..d520a5e82 --- /dev/null +++ b/graphics/intro/intro3_pokeball.pal @@ -0,0 +1,259 @@ +JASC-PAL +0100 +256 +255 255 255 +0 0 0 +49 41 24 +106 90 57 +164 139 90 +222 98 57 +131 131 189 +255 255 255 +74 32 16 +148 65 32 +41 41 57 +82 82 123 +82 82 82 +164 164 164 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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/intro/intro3_pokeball.png b/graphics/intro/intro3_pokeball.png new file mode 100644 index 000000000..4af0187f8 Binary files /dev/null and b/graphics/intro/intro3_pokeball.png differ diff --git a/graphics/intro/intro3_pokeball_map.bin b/graphics/intro/intro3_pokeball_map.bin new file mode 100644 index 000000000..2f968aa20 Binary files /dev/null and b/graphics/intro/intro3_pokeball_map.bin differ diff --git a/graphics/intro/intro3_streaks.pal b/graphics/intro/intro3_streaks.pal new file mode 100644 index 000000000..21ae1e434 --- /dev/null +++ b/graphics/intro/intro3_streaks.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +0 0 0 +255 230 74 +255 230 98 +255 238 123 +255 238 148 +255 246 172 +255 255 197 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +255 255 255 diff --git a/graphics/intro/intro3_streaks.png b/graphics/intro/intro3_streaks.png new file mode 100644 index 000000000..a19fa39c4 Binary files /dev/null and b/graphics/intro/intro3_streaks.png differ diff --git a/graphics/intro/intro3_streaks_map.bin b/graphics/intro/intro3_streaks_map.bin new file mode 100644 index 000000000..2d1b69924 Binary files /dev/null and b/graphics/intro/intro3_streaks_map.bin differ diff --git a/graphics/intro/introgfx.png b/graphics/intro/introgfx.png new file mode 100644 index 000000000..041901463 Binary files /dev/null and b/graphics/intro/introgfx.png differ diff --git a/graphics/misc/cable_car.pal b/graphics/misc/cable_car.pal new file mode 100644 index 000000000..64985f6da --- /dev/null +++ b/graphics/misc/cable_car.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 255 255 +164 222 222 +98 139 139 +139 180 180 +131 131 139 +98 98 123 +65 74 106 +41 49 90 +139 205 246 +98 172 238 +255 255 148 +238 213 82 +213 172 16 +180 106 0 +139 65 0 diff --git a/graphics/misc/cable_car.png b/graphics/misc/cable_car.png new file mode 100644 index 000000000..67f581fb9 Binary files /dev/null and b/graphics/misc/cable_car.png differ diff --git a/graphics/misc/cable_car_bg.pal b/graphics/misc/cable_car_bg.pal new file mode 100644 index 000000000..d543b4cce --- /dev/null +++ b/graphics/misc/cable_car_bg.pal @@ -0,0 +1,67 @@ +JASC-PAL +0100 +64 +0 0 0 +230 106 189 +230 106 189 +230 106 189 +230 106 189 +230 106 189 +230 106 189 +255 230 139 +238 205 123 +222 189 115 +205 172 106 +189 156 98 +180 139 90 +230 106 189 +230 106 189 +230 106 189 +0 0 0 +189 255 148 +156 222 98 +131 197 74 +106 164 49 +82 115 24 +57 82 0 +230 106 189 +230 106 189 +230 106 189 +230 106 189 +230 106 189 +230 106 189 +230 106 189 +230 106 189 +230 106 189 +0 0 0 +213 238 255 +189 230 255 +164 222 255 +139 213 255 +115 205 255 +98 205 255 +197 205 222 +189 189 197 +180 164 164 +156 131 131 +131 90 90 +123 65 65 +230 106 189 +230 106 189 +230 106 189 +0 0 0 +197 205 246 +172 189 238 +156 172 238 +131 156 230 +115 139 230 +98 123 230 +65 74 106 +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/cable_car_bg.png b/graphics/misc/cable_car_bg.png new file mode 100644 index 000000000..f268ea990 Binary files /dev/null and b/graphics/misc/cable_car_bg.png differ diff --git a/graphics/misc/cable_car_cord.png b/graphics/misc/cable_car_cord.png new file mode 100644 index 000000000..b8176d3ca Binary files /dev/null and b/graphics/misc/cable_car_cord.png differ diff --git a/graphics/misc/cable_car_door.png b/graphics/misc/cable_car_door.png new file mode 100644 index 000000000..a61b3f504 Binary files /dev/null and b/graphics/misc/cable_car_door.png differ diff --git a/graphics/misc/cable_car_mountain_map.bin b/graphics/misc/cable_car_mountain_map.bin new file mode 100644 index 000000000..3d4e092bc --- /dev/null +++ b/graphics/misc/cable_car_mountain_map.bin @@ -0,0 +1 @@ +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!!!!!!!!!!!!!!!!q!r!s!t!u!v!w!x!y!z!{!|!}!~!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! \ No newline at end of file diff --git a/graphics/misc/cable_car_mt_chimney_map.bin b/graphics/misc/cable_car_mt_chimney_map.bin new file mode 100644 index 000000000..8ae7818bf Binary files /dev/null and b/graphics/misc/cable_car_mt_chimney_map.bin differ diff --git a/graphics/misc/cable_car_pylon_stem_map.bin b/graphics/misc/cable_car_pylon_stem_map.bin new file mode 100644 index 000000000..e6f12efc6 --- /dev/null +++ b/graphics/misc/cable_car_pylon_stem_map.bin @@ -0,0 +1,2 @@ + +0 0 0 000000000000000000000000000000000000000000000000000000000 \ No newline at end of file diff --git a/graphics/misc/cable_car_tree_map.bin b/graphics/misc/cable_car_tree_map.bin new file mode 100644 index 000000000..1e9b7a8f8 Binary files /dev/null and b/graphics/misc/cable_car_tree_map.bin differ diff --git a/graphics/misc/egg_hatch.png b/graphics/misc/egg_hatch.png new file mode 100644 index 000000000..abea3122f Binary files /dev/null and b/graphics/misc/egg_hatch.png differ diff --git a/graphics/misc/egg_shard.png b/graphics/misc/egg_shard.png new file mode 100644 index 000000000..d404445b8 Binary files /dev/null and b/graphics/misc/egg_shard.png differ diff --git a/graphics/title_screen/emerald_version.pal b/graphics/title_screen/emerald_version.pal new file mode 100644 index 000000000..c5ed9a582 --- /dev/null +++ b/graphics/title_screen/emerald_version.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 74 238 +156 156 156 +90 90 90 +222 222 222 +24 16 24 +74 74 74 +238 238 238 +41 41 41 +172 172 172 +106 106 106 +189 189 189 +139 139 139 +205 205 205 +123 123 123 +65 57 57 +255 255 255 diff --git a/graphics/title_screen/emerald_version.png b/graphics/title_screen/emerald_version.png new file mode 100644 index 000000000..2e8b32da9 Binary files /dev/null and b/graphics/title_screen/emerald_version.png differ diff --git a/graphics/title_screen/logo_shine.png b/graphics/title_screen/logo_shine.png new file mode 100644 index 000000000..4e17d2877 Binary files /dev/null and b/graphics/title_screen/logo_shine.png differ diff --git a/graphics/title_screen/press_start.pal b/graphics/title_screen/press_start.pal new file mode 100644 index 000000000..561ab8f8f --- /dev/null +++ b/graphics/title_screen/press_start.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 156 98 +0 0 0 +148 156 164 +180 189 189 +222 222 238 +255 255 255 +255 0 0 +255 0 0 +255 0 0 +255 0 0 +255 0 0 +255 0 0 +255 0 0 +255 0 0 +255 0 0 +255 0 0 diff --git a/graphics/title_screen/press_start.png b/graphics/title_screen/press_start.png new file mode 100644 index 000000000..63a5c23d0 Binary files /dev/null and b/graphics/title_screen/press_start.png differ diff --git a/graphics/title_screen/rayquaza.bin b/graphics/title_screen/rayquaza.bin new file mode 100644 index 000000000..b112237a3 Binary files /dev/null and b/graphics/title_screen/rayquaza.bin differ diff --git a/graphics/unknown/unknown_593C80.png b/graphics/unknown/unknown_593C80.png new file mode 100644 index 000000000..c4a27b929 Binary files /dev/null and b/graphics/unknown/unknown_593C80.png differ diff --git a/graphics/unknown/unknown_593FFC.bin b/graphics/unknown/unknown_593FFC.bin new file mode 100644 index 000000000..dc2990b0a Binary files /dev/null and b/graphics/unknown/unknown_593FFC.bin differ diff --git a/include/battle.h b/include/battle.h index a681ca946..2c7b7db66 100644 --- a/include/battle.h +++ b/include/battle.h @@ -1,6 +1,28 @@ #ifndef GUARD_BATTLE_H #define GUARD_BATTLE_H +/* + Banks are a name given to what could be called a 'battlerId' or 'monControllerId'. + Each bank has a value consisting of two bits. + 0x1 bit is responsible for the side, 0 = player's side, 1 = opponent's side. + 0x2 bit is responsible for the id of sent out pokemon. 0 means it's the first sent out pokemon, 1 it's the second one. (Triple battle didn't exist at the time yet.) +*/ + +#define BATTLE_BANKS_COUNT 4 + +#define IDENTITY_PLAYER_MON1 0 +#define IDENTITY_OPPONENT_MON1 1 +#define IDENTITY_PLAYER_MON2 2 +#define IDENTITY_OPPONENT_MON2 3 + +#define SIDE_PLAYER 0x0 +#define SIDE_OPPONENT 0x1 + +#define BIT_SIDE 0x1 +#define BIT_MON 0x2 + +#define GET_BANK_SIDE(bank)((GetBankIdentity(bank) & BIT_SIDE)) + #define BATTLE_TYPE_DOUBLE 0x0001 #define BATTLE_TYPE_LINK 0x0002 #define BATTLE_TYPE_WILD 0x0004 @@ -24,6 +46,7 @@ #define BATTLE_TYPE_x100000 0x100000 #define BATTLE_TYPE_PYRAMID 0x200000 #define BATTLE_TYPE_INGAME_PARTNER 0x400000 +#define BATTLE_TYPE_x800000 0x800000 #define BATTLE_TYPE_RECORDED 0x1000000 #define BATTLE_TYPE_x2000000 0x2000000 #define BATTLE_TYPE_x4000000 0x4000000 @@ -37,9 +60,6 @@ #define BATTLE_TYPE_FRONTIER (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_x100000 | BATTLE_TYPE_PYRAMID) -#define SIDE_PLAYER 0x0 -#define SIDE_OPPONENT 0x1 - #define BATTLE_WON 0x1 #define BATTLE_LOST 0x2 #define BATTLE_DREW 0x3 @@ -63,11 +83,12 @@ #define STATUS2_CONFUSION 0x00000007 #define STATUS2_FLINCHED 0x00000008 #define STATUS2_UPROAR 0x00000070 -#define STATUS2_BIDE 0x00000300 //two bits 0x100 0x200 +#define STATUS2_BIDE 0x00000300 // two bits 0x100, 0x200 #define STATUS2_LOCK_CONFUSE 0x00000C00 #define STATUS2_MULTIPLETURNS 0x00001000 #define STATUS2_WRAPPED 0x0000E000 -#define STATUS2_INFATUATION 0x000F0000 +#define STATUS2_INFATUATION 0x000F0000 // 4 bits, one for every bank +#define STATUS2_INFATUATED_WITH(bank)((gBitTable[bank] << 16)) #define STATUS2_FOCUS_ENERGY 0x00100000 #define STATUS2_TRANSFORMED 0x00200000 #define STATUS2_RECHARGE 0x00400000 @@ -83,7 +104,7 @@ #define STATUS3_LEECHSEED_BANK 0x3 #define STATUS3_LEECHSEED 0x4 -#define STATUS3_ALWAYS_HITS 0x18 //two bits +#define STATUS3_ALWAYS_HITS 0x18 // two bits #define STATUS3_PERISH_SONG 0x20 #define STATUS3_ON_AIR 0x40 #define STATUS3_UNDERGROUND 0x80 @@ -91,7 +112,7 @@ #define STATUS3_ROOTED 0x400 #define STATUS3_CHARGED_UP 0x200 #define STATUS3_YAWN 0x1800 //two bits -#define STATUS3_IMPRISIONED 0x2000 +#define STATUS3_IMPRISONED_OTHERS 0x2000 #define STATUS3_GRUDGE 0x4000 #define STATUS3_CANT_SCORE_A_CRIT 0x8000 #define STATUS3_MUDSPORT 0x10000 @@ -135,26 +156,26 @@ #define SIDE_STATUS_MIST (1 << 8) #define SIDE_STATUS_SPIKES_DAMAGED (1 << 9) -#define ABILITYEFFECT_ON_SWITCHIN 0x0 -#define ABILITYEFFECT_ENDTURN 0x1 -#define ABILITYEFFECT_MOVES_BLOCK 0x2 -#define ABILITYEFFECT_ABSORBING 0x3 -#define ABILITYEFFECT_CONTACT 0x4 -#define ABILITYEFFECT_IMMUNITY 0x5 -#define ABILITYEFFECT_FORECAST 0x6 -#define ABILITYEFFECT_SYNCHRONIZE 0x7 -#define ABILITYEFFECT_ATK_SYNCHRONIZE 0x8 -#define ABILITYEFFECT_INTIMIDATE1 0x9 -#define ABILITYEFFECT_INTIMIDATE2 0xA -#define ABILITYEFFECT_TRACE 0xB -#define ABILITYEFFECT_CHECK_OTHER_SIDE 0xC -#define ABILITYEFFECT_CHECK_BANK_SIDE 0xD -#define ABILITYEFFECT_FIELD_SPORT 0xE +#define ABILITYEFFECT_ON_SWITCHIN 0x0 +#define ABILITYEFFECT_ENDTURN 0x1 +#define ABILITYEFFECT_MOVES_BLOCK 0x2 +#define ABILITYEFFECT_ABSORBING 0x3 +#define ABILITYEFFECT_CONTACT 0x4 +#define ABILITYEFFECT_IMMUNITY 0x5 +#define ABILITYEFFECT_FORECAST 0x6 +#define ABILITYEFFECT_SYNCHRONIZE 0x7 +#define ABILITYEFFECT_ATK_SYNCHRONIZE 0x8 +#define ABILITYEFFECT_INTIMIDATE1 0x9 +#define ABILITYEFFECT_INTIMIDATE2 0xA +#define ABILITYEFFECT_TRACE 0xB +#define ABILITYEFFECT_CHECK_OTHER_SIDE 0xC +#define ABILITYEFFECT_CHECK_BANK_SIDE 0xD +#define ABILITYEFFECT_FIELD_SPORT 0xE #define ABILITYEFFECT_CHECK_FIELD_EXCEPT_BANK 0xF -#define ABILITYEFFECT_COUNT_OTHER_SIZE 0x10 -#define ABILITYEFFECT_COUNT_BANK_SIDE 0x11 -#define ABILITYEFFECT_COUNT_ON_FIELD 0x12 -#define ABILITYEFFECT_CHECK_ON_FIELD 0x13 +#define ABILITYEFFECT_COUNT_OTHER_SIDE 0x10 +#define ABILITYEFFECT_COUNT_BANK_SIDE 0x11 +#define ABILITYEFFECT_COUNT_ON_FIELD 0x12 +#define ABILITYEFFECT_CHECK_ON_FIELD 0x13 #define WEATHER_HAS_EFFECT ((!AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_CLOUD_NINE, 0, 0) && !AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_AIR_LOCK, 0, 0))) @@ -171,7 +192,6 @@ #define MAX_TRAINER_ITEMS 4 #define MAX_MON_MOVES 4 -#define MAX_BANKS_BATTLE 4 #define WEATHER_RAIN_TEMPORARY (1 << 0) #define WEATHER_RAIN_DOWNPOUR (1 << 1) @@ -185,12 +205,103 @@ #define WEATHER_SUN_ANY ((WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT)) #define WEATHER_HAIL (1 << 7) #define WEATHER_HAIL_ANY ((WEATHER_HAIL)) +#define WEATHER_ANY ((WEATHER_RAIN_ANY | WEATHER_SANDSTORM_ANY | WEATHER_SUN_ANY | WEATHER_HAIL_ANY)) + +#define BATTLE_TERRAIN_GRASS 0 +#define BATTLE_TERRAIN_LONG_GRASS 1 +#define BATTLE_TERRAIN_SAND 2 +#define BATTLE_TERRAIN_UNDERWATER 3 +#define BATTLE_TERRAIN_WATER 4 +#define BATTLE_TERRAIN_POND 5 +#define BATTLE_TERRAIN_ROCK 6 +#define BATTLE_TERRAIN_CAVE 7 + +// array entries for battle communication +#define MULTIUSE_STATE 0x0 +#define CURSOR_POSITION 0x1 +#define TASK_ID 0x1 // task Id and cursor position share the same field +#define MOVE_EFFECT_BYTE 0x3 +#define MULTISTRING_CHOOSER 0x5 +#define MSG_DISPLAY 0x7 + +#define MOVE_TARGET_SELECTED 0x0 +#define MOVE_TARGET_DEPENDS 0x1 +#define MOVE_TARGET_USER 0x2 +#define MOVE_TARGET_RANDOM 0x4 +#define MOVE_TARGET_x10 0x10 +#define MOVE_TARGET_BOTH 0x8 +#define MOVE_TARGET_FOES_AND_ALLY 0x20 +#define MOVE_TARGET_OPPONENTS_FIELD 0x40 + +#define TYPE_MUL_NO_EFFECT 0 +#define TYPE_MUL_NOT_EFFECTIVE 5 +#define TYPE_MUL_NORMAL 10 +#define TYPE_MUL_SUPER_EFFECTIVE 20 + +#define BS_GET_TARGET 0 +#define BS_GET_ATTACKER 1 +#define BS_GET_EFFECT_BANK 2 +#define BS_ATTACKER_WITH_PARTNER 4 // for atk98_status_icon_update +#define BS_GET_ATTACKER_SIDE 8 // for atk1E_jumpifability +#define BS_GET_NOT_ATTACKER_SIDE 9 // for atk1E_jumpifability +#define BS_GET_SCRIPTING_BANK 10 +#define BS_GET_OPPONENT1 12 +#define BS_GET_PLAYER2 13 +#define BS_GET_OPPONENT2 14 + +// for battle script commands +#define CMP_EQUAL 0x0 +#define CMP_NOT_EQUAL 0x1 +#define CMP_GREATER_THAN 0x2 +#define CMP_LESS_THAN 0x3 +#define CMP_COMMON_BITS 0x4 +#define CMP_NO_COMMON_BITS 0x5 + +struct TrainerMonNoItemDefaultMoves +{ + u16 species; + u8 lvl; + u16 evsValue; +}; #include "global.h" u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg); u8 GetBankSide(u8 bank); +struct TrainerMonItemDefaultMoves +{ + u16 species; + u8 lvl; + u16 evsValue; + u16 heldItem; +}; + +struct TrainerMonNoItemCustomMoves +{ + u16 species; + u8 lvl; + u16 evsValue; + u16 moves[4]; +}; + +struct TrainerMonItemCustomMoves +{ + u16 species; + u8 lvl; + u16 evsValue; + u16 heldItem; + u16 moves[4]; +}; + +union TrainerMonPtr +{ + struct TrainerMonNoItemDefaultMoves* NoItemDefaultMoves; + struct TrainerMonNoItemCustomMoves* NoItemCustomMoves; + struct TrainerMonItemDefaultMoves* ItemDefaultMoves; + struct TrainerMonItemCustomMoves* ItemCustomMoves; +}; + struct Trainer { /*0x00*/ u8 partyFlags; @@ -202,9 +313,12 @@ struct Trainer /*0x18*/ bool8 doubleBattle; /*0x1C*/ u32 aiFlags; /*0x20*/ u8 partySize; - /*0x24*/ void *party; + /*0x24*/ union TrainerMonPtr party; }; +#define PARTY_FLAG_CUSTOM_MOVES 0x1 +#define PARTY_FLAG_HAS_ITEM 0x2 + extern const struct Trainer gTrainers[]; #define TRAINER_ENCOUNTER_MUSIC(trainer)((gTrainers[trainer].encounterMusic_gender & 0x7F)) @@ -244,15 +358,109 @@ struct DisableStruct /*0x16*/ u8 isFirstTurn; /*0x17*/ u8 unk17; /*0x18*/ u8 truantCounter : 1; - /*0x18*/ u8 unk18_a : 3; + /*0x18*/ u8 truantUnknownBit : 1; + /*0x18*/ u8 unk18_a_2 : 2; /*0x18*/ u8 unk18_b : 4; /*0x19*/ u8 rechargeCounter; /*0x1A*/ u8 unk1A[2]; }; -extern struct DisableStruct gDisableStructs[]; +extern struct DisableStruct gDisableStructs[BATTLE_BANKS_COUNT]; + +struct ProtectStruct +{ + /* field_0 */ + u32 protected:1; + u32 endured:1; + u32 onlyStruggle:1; + u32 helpingHand:1; + u32 bounceMove:1; + u32 stealMove:1; + u32 flag0Unknown:1; + u32 prlzImmobility:1; + /* field_1 */ + u32 confusionSelfDmg:1; + u32 notEffective:1; + u32 chargingTurn:1; + u32 fleeFlag:2; // for RunAway and Smoke Ball + u32 usedImprisionedMove:1; + u32 loveImmobility:1; + u32 usedDisabledMove:1; + /* field_2 */ + u32 usedTauntedMove:1; // 0x1 + u32 flag2Unknown:1; // 0x2 + u32 flinchImmobility:1; // 0x4 + u32 notFirstStrike:1; // 0x8 + u32 flag_x10 : 1; // 0x10 + u32 flag_x20 : 1; // 0x20 + u32 flag_x40 : 1; // 0x40 + u32 flag_x80 : 1; // 0x80 + /* field_3 */ + u32 field3 : 8; + + /* field_4 */ u32 physicalDmg; + /* field_8 */ u32 specialDmg; + /* field_C */ u8 physicalBank; + /* field_D */ u8 specialBank; + /* field_E */ u16 fieldE; +}; + +extern struct ProtectStruct gProtectStructs[BATTLE_BANKS_COUNT]; + +struct SpecialStatus +{ + u8 statLowered : 1; // 0x1 + u8 lightningRodRedirected : 1; // 0x2 + u8 restoredBankSprite: 1; // 0x4 + u8 intimidatedPoke : 1; // 0x8 + u8 traced : 1; // 0x10 + u8 flag20 : 1; + u8 flag40 : 1; + u8 focusBanded : 1; + u8 field1[3]; + s32 moveturnLostHP; + s32 moveturnLostHP_physical; + s32 moveturnLostHP_special; + u8 moveturnPhysicalBank; + u8 moveturnSpecialBank; + u8 field12; + u8 field13; +}; + +extern struct SpecialStatus gSpecialStatuses[BATTLE_BANKS_COUNT]; + +struct SideTimer +{ + /*0x00*/ u8 reflectTimer; + /*0x01*/ u8 reflectBank; + /*0x02*/ u8 lightscreenTimer; + /*0x03*/ u8 lightscreenBank; + /*0x04*/ u8 mistTimer; + /*0x05*/ u8 mistBank; + /*0x06*/ u8 safeguardTimer; + /*0x07*/ u8 safeguardBank; + /*0x08*/ u8 followmeTimer; + /*0x09*/ u8 followmeTarget; + /*0x0A*/ u8 spikesAmount; + /*0x0B*/ u8 fieldB; +}; + +extern struct SideTimer gSideTimers[]; + +struct WishFutureKnock +{ + u8 futureSightCounter[BATTLE_BANKS_COUNT]; + u8 futureSightAttacker[BATTLE_BANKS_COUNT]; + s32 futureSightDmg[BATTLE_BANKS_COUNT]; + u16 futureSightMove[BATTLE_BANKS_COUNT]; + u8 wishCounter[BATTLE_BANKS_COUNT]; + u8 wishUserID[BATTLE_BANKS_COUNT]; + u8 weatherDuration; + u8 knockedOffPokes[2]; +}; + +extern struct WishFutureKnock gWishFutureKnock; -//size should be 0x1C struct AI_ThinkingStruct { u8 aiState; @@ -269,33 +477,48 @@ struct AI_ThinkingStruct struct UsedMoves { - u16 moves[4]; - u16 unknown[4]; + u16 moves[BATTLE_BANKS_COUNT]; + u16 unknown[BATTLE_BANKS_COUNT]; }; -//size should be 0x54 struct BattleHistory { - struct UsedMoves usedMoves[4]; - u8 abilities[4]; - u8 itemEffects[4]; - u16 TrainerItems[4]; + struct UsedMoves usedMoves[BATTLE_BANKS_COUNT]; + u8 abilities[BATTLE_BANKS_COUNT]; + u8 itemEffects[BATTLE_BANKS_COUNT]; + u16 TrainerItems[BATTLE_BANKS_COUNT]; u8 itemsNo; }; struct BattleScriptsStack { - u8 *ptr[8]; + const u8 *ptr[8]; u8 size; }; +struct BattleCallbacksStack +{ + void (*function[8])(void); + u8 size; +}; + +struct StatsArray +{ + u16 hp; + u16 atk; + u16 def; + u16 spd; + u16 spAtk; + u16 spDef; +}; + struct BattleResources { struct SecretBaseRecord* secretBase; struct UnknownFlags *flags; struct BattleScriptsStack* battleScriptsStack; - void* battleCallbackStack; - void* statsBeforeLvlUp; + struct BattleCallbacksStack* battleCallbackStack; + struct StatsArray* statsBeforeLvlUp; struct AI_ThinkingStruct *ai; struct BattleHistory *battleHistory; struct BattleScriptsStack *AI_ScriptsStack; @@ -303,15 +526,22 @@ struct BattleResources extern struct BattleResources* gBattleResources; +#define BATTLESCRIPTS_STACK (gBattleResources->battleScriptsStack) +#define BATTLE_CALLBACKS_STACK (gBattleResources->battleCallbackStack) +#define BATTLE_LVLUP_STATS (gBattleResources->statsBeforeLvlUp) + struct BattleResults { u8 playerFaintCounter; // 0x0 u8 opponentFaintCounter; // 0x1 - u8 unk2; // 0x2 + u8 playerSwitchesCounter; // 0x2 u8 unk3; // 0x3 u8 unk4; // 0x4 u8 unk5_0:1; // 0x5 u8 unk5_1:1; // 0x5 + u8 caughtMonBall:4; // 0x5 + u8 unk5_6:1; // 0x5 + u8 unk5_7:1; // 0x5 u16 poke1Species; // 0x6 u8 pokeString1[10]; // 0x8 u8 unk12; @@ -323,68 +553,28 @@ struct BattleResults u16 lastUsedMove; // 0x22 u16 opponentMove; // 0x24 u16 opponentSpecies; // 0x26 - u16 caughtPoke; // 0x28 - u8 caughtNick[10]; // 0x2A + u16 caughtMonSpecies; // 0x28 + u8 caughtMonNick[10]; // 0x2A u8 filler34[2]; - u8 unk36[10]; // usedBalls? + u8 catchAttempts[10]; // 0x36 }; extern struct BattleResults gBattleResults; struct BattleStruct { - u8 field_1; - u8 field_2; - u8 field_3; - u8 field_4; - u8 wrappedMove1[4]; - u8 wrappedMove2[4]; + u8 turnEffectsTracker; + u8 turnEffectsBank; + u8 filler2; + u8 turncountersTracker; + u8 wrappedMove[8]; // ask gamefreak why they declared it that way u8 moveTarget[4]; u8 expGetterId; u8 field_11; u8 wildVictorySong; u8 dynamicMoveType; u8 wrappedBy[4]; - u8 field_18; - u8 field_19; - u8 field_1A; - u8 field_1B; - u8 field_1C; - u8 field_1D; - u8 field_1E; - u8 field_1F; - u8 field_20; - u8 field_21; - u8 field_22; - u8 field_23; - u8 field_24; - u8 field_25; - u8 field_26; - u8 field_27; - u8 field_28; - u8 field_29; - u8 field_2A; - u8 field_2B; - u8 field_2C; - u8 field_2D; - u8 field_2E; - u8 field_2F; - u8 field_30; - u8 field_31; - u8 field_32; - u8 field_33; - u8 field_34; - u8 field_35; - u8 field_36; - u8 field_37; - u8 field_38; - u8 field_39; - u8 field_3A; - u8 field_3B; - u8 field_3C; - u8 field_3D; - u8 field_3E; - u8 field_3F; + u16 assistPossibleMoves[5 * 4]; // 5 mons, each of them knowing 4 moves u8 field_40; u8 field_41; u8 field_42; @@ -395,52 +585,21 @@ struct BattleStruct u8 field_47; u8 field_48; u8 field_49; - u8 field_4A; + u8 moneyMultiplier; u8 field_4B; u8 field_4C; u8 field_4D; u8 field_4E; u8 field_4F; - u8 field_50; - u8 field_51; + u16 expValue; u8 field_52; - u8 field_53; - u8 field_54; - u8 field_55; - u8 field_56; - u8 field_57; - u8 field_58; - u8 field_59; - u8 field_5A; - u8 field_5B; - u8 field_5C; - u8 field_5D; - u8 field_5E; - u8 field_5F; - u8 field_60; - u8 field_61; - u8 field_62; - u8 field_63; - u8 field_64; - u8 field_65; - u8 field_66; - u8 field_67; - u8 field_68; - u8 field_69; - u8 field_6A; - u8 field_6B; + u8 sentInPokes; + u8 field_54[4]; + u8 field_58[4]; + u8 field_5C[4]; + u8 field_60[4][3]; u8 field_6C; - u8 field_6D; - u8 field_6E; - u8 field_6F; - u8 field_70; - u8 field_71; - u8 field_72; - u8 field_73; - u8 field_74; - u8 field_75; - u8 field_76; - u8 field_77; + u8 caughtMonNick[11]; u8 field_78; u8 field_79; u8 field_7A; @@ -470,14 +629,7 @@ struct BattleStruct u8 field_95; u8 field_96; u8 field_97; - u8 field_98; - u8 field_99; - u8 field_9A; - u8 field_9B; - u8 field_9C; - u8 field_9D; - u8 field_9E; - u8 field_9F; + u8 mirrorMoves[8]; // ask gamefreak why they declared it that way u8 field_A0; u8 field_A1; u8 field_A2; @@ -495,30 +647,296 @@ struct BattleStruct u8 field_B5; u8 field_B6; u8 field_B7; - u16 usedHeldItems[4]; + u16 usedHeldItems[BATTLE_BANKS_COUNT]; + u8 field_C0[8]; + u16 choicedMove[BATTLE_BANKS_COUNT]; + u16 changedItems[BATTLE_BANKS_COUNT]; + u8 intimidateBank; + u8 fillerD9[0xDA-0xD9]; + u8 field_DA; + u8 turnSideTracker; + u8 fillerDC[0xDF-0xDC]; + u8 field_DF; + u8 mirrorMoveArrays[32]; + u16 castformPalette[4][16]; + u8 field_180[32]; + u8 field_1A0; + u8 field_1A1; + u8 filler1A2; + u8 atkCancellerTracker; + u8 field_1A4[240]; + u8 field_294[4]; + u8 field_298[8]; + u8 field_2A0; + u8 field_2A1; + u8 field_2A2; }; extern struct BattleStruct* gBattleStruct; +#define MEME_ACCESS_U8(structName, structPtr, arrayId, offsetField, value) \ +{ \ + u8* var2 = (u8*)((u32)(arrayId)); \ + var2 = (u32)(structPtr) + var2; \ + var2[offsetof(struct structName, offsetField)] = value; \ +} + +#define GET_MOVE_TYPE(move, typeArg) \ +{ \ + if (gBattleStruct->dynamicMoveType) \ + typeArg = gBattleStruct->dynamicMoveType & 0x3F; \ + else \ + typeArg = gBattleMoves[move].type; \ +} + +#define MOVE_EFFECT_SLEEP 0x1 +#define MOVE_EFFECT_POISON 0x2 +#define MOVE_EFFECT_BURN 0x3 +#define MOVE_EFFECT_FREEZE 0x4 +#define MOVE_EFFECT_PARALYSIS 0x5 +#define MOVE_EFFECT_TOXIC 0x6 +#define MOVE_EFFECT_CONFUSION 0x7 +#define MOVE_EFFECT_FLINCH 0x8 +#define MOVE_EFFECT_TRI_ATTACK 0x9 +#define MOVE_EFFECT_UPROAR 0xA +#define MOVE_EFFECT_PAYDAY 0xB +#define MOVE_EFFECT_CHARGING 0xC +#define MOVE_EFFECT_WRAP 0xD +#define MOVE_EFFECT_RECOIL_25 0xE +#define MOVE_EFFECT_ATK_PLUS_1 0xF +#define MOVE_EFFECT_DEF_PLUS_1 0x10 +#define MOVE_EFFECT_SPD_PLUS_1 0x11 +#define MOVE_EFFECT_SP_ATK_PLUS_1 0x12 +#define MOVE_EFFECT_SP_DEF_PLUS_1 0x13 +#define MOVE_EFFECT_ACC_PLUS_1 0x14 +#define MOVE_EFFECT_EVS_PLUS_1 0x15 +#define MOVE_EFFECT_ATK_MINUS_1 0x16 +#define MOVE_EFFECT_DEF_MINUS_1 0x17 +#define MOVE_EFFECT_SPD_MINUS_1 0x18 +#define MOVE_EFFECT_SP_ATK_MINUS_1 0x19 +#define MOVE_EFFECT_SP_DEF_MINUS_1 0x1A +#define MOVE_EFFECT_ACC_MINUS_1 0x1B +#define MOVE_EFFECT_EVS_MINUS_1 0x1C +#define MOVE_EFFECT_RECHARGE 0x1D +#define MOVE_EFFECT_RAGE 0x1E +#define MOVE_EFFECT_STEAL_ITEM 0x1F +#define MOVE_EFFECT_PREVENT_ESCAPE 0x20 +#define MOVE_EFFECT_NIGHTMARE 0x21 +#define MOVE_EFFECT_ALL_STATS_UP 0x22 +#define MOVE_EFFECT_RAPIDSPIN 0x23 +#define MOVE_EFFECT_REMOVE_PARALYSIS 0x24 +#define MOVE_EFFECT_ATK_DEF_DOWN 0x25 +#define MOVE_EFFECT_RECOIL_33_PARALYSIS 0x26 +#define MOVE_EFFECT_ATK_PLUS_2 0x27 +#define MOVE_EFFECT_DEF_PLUS_2 0x28 +#define MOVE_EFFECT_SPD_PLUS_2 0x29 +#define MOVE_EFFECT_SP_ATK_PLUS_2 0x2A +#define MOVE_EFFECT_SP_DEF_PLUS_2 0x2B +#define MOVE_EFFECT_ACC_PLUS_2 0x2C +#define MOVE_EFFECT_EVS_PLUS_2 0x2D +#define MOVE_EFFECT_ATK_MINUS_2 0x2E +#define MOVE_EFFECT_DEF_MINUS_2 0x2F +#define MOVE_EFFECT_SPD_MINUS_2 0x30 +#define MOVE_EFFECT_SP_ATK_MINUS_2 0x31 +#define MOVE_EFFECT_SP_DEF_MINUS_2 0x32 +#define MOVE_EFFECT_ACC_MINUS_2 0x33 +#define MOVE_EFFECT_EVS_MINUS_2 0x34 +#define MOVE_EFFECT_THRASH 0x35 +#define MOVE_EFFECT_KNOCK_OFF 0x36 +#define MOVE_EFFECT_NOTHING_37 0x37 +#define MOVE_EFFECT_NOTHING_38 0x38 +#define MOVE_EFFECT_NOTHING_39 0x39 +#define MOVE_EFFECT_NOTHING_3A 0x3A +#define MOVE_EFFECT_SP_ATK_TWO_DOWN 0x3B +#define MOVE_EFFECT_NOTHING_3C 0x3C +#define MOVE_EFFECT_NOTHING_3D 0x3D +#define MOVE_EFFECT_NOTHING_3E 0x3E +#define MOVE_EFFECT_NOTHING_3F 0x3F +#define MOVE_EFFECT_AFFECTS_USER 0x40 +#define MOVE_EFFECT_CERTAIN 0x80 + +// battle animations ids + +#define B_ANIM_CASTFORM_CHANGE 0x0 +#define B_ANIM_STATS_CHANGE 0x1 +#define B_ANIM_SUBSTITUTE_FADE 0x2 +#define B_ANIM_SUBSTITUTE_APPEAR 0x3 +#define B_ANIM_x4 0x4 +#define B_ANIM_ITEM_KNOCKOFF 0x5 +#define B_ANIM_TURN_TRAP 0x6 +#define B_ANIM_ITEM_EFFECT 0x7 +#define B_ANIM_SMOKEBALL_ESCAPE 0x8 +#define B_ANIM_HANGED_ON 0x9 +#define B_ANIM_RAIN_CONTINUES 0xA +#define B_ANIM_SUN_CONTINUES 0xB +#define B_ANIM_SANDSTORM_CONTINUES 0xC +#define B_ANIM_HAIL_CONTINUES 0xD +#define B_ANIM_LEECH_SEED_DRAIN 0xE +#define B_ANIM_MON_HIT 0xF +#define B_ANIM_ITEM_STEAL 0x10 +#define B_ANIM_SNATCH_MOVE 0x11 +#define B_ANIM_FUTURE_SIGHT_HIT 0x12 +#define B_ANIM_x13 0x13 +#define B_ANIM_x14 0x14 +#define B_ANIM_INGRAIN_HEAL 0x15 +#define B_ANIM_WISH_HEAL 0x16 +#define B_ANIM_x17 0x17 +#define B_ANIM_x18 0x18 +#define B_ANIM_x19 0x19 +#define B_ANIM_x1A 0x1A +#define B_ANIM_x1B 0x1B +#define B_ANIM_x1C 0x1C +#define B_ANIM_x1D 0x1D + +#define ATK48_STAT_NEGATIVE 0x1 +#define ATK48_STAT_BY_TWO 0x2 +#define ATK48_BIT_x4 0x4 +#define ATK48_LOWER_FAIL_CHECK 0x8 + +#define ATK4F_DONT_CHECK_STATUSES 0x80 + +#define VARIOUS_CANCEL_MULTI_TURN_MOVES 0 +#define VARIOUS_SET_MAGIC_COAT_TARGET 1 +#define VARIOUS_GET_MOVE_TARGET 3 +#define VARIOUS_RESET_INTIMIDATE_TRACE_BITS 5 +#define VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP 6 +#define VARIOUS_WAIT_CRY 18 +#define VARIOUS_RETURN_OPPONENT_MON1 19 +#define VARIOUS_RETURN_OPPONENT_MON2 20 +#define VARIOUS_SET_TELEPORT_OUTCOME 25 +#define VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC 26 + +#define ATK80_DMG_CHANGE_SIGN 0 +#define ATK80_DMG_HALF_BY_TWO_NOT_MORE_THAN_HALF_MAX_HP 1 +#define ATK80_DMG_DOUBLED 2 + +#define GET_STAT_BUFF_ID(n)((n & 0xF)) // first four bits 0x1, 0x2, 0x4, 0x8 +#define GET_STAT_BUFF_VALUE(n)(((n >> 4) & 7)) // 0x10, 0x20, 0x40 +#define STAT_BUFF_NEGATIVE 0x80 // 0x80, the sign bit + +#define STAT_CHANGE_BS_PTR 0x1 +#define STAT_CHANGE_NOT_PROTECT_AFFECTED 0x20 + +#define STAT_CHANGE_WORKED 0 +#define STAT_CHANGE_DIDNT_WORK 1 + +#define SET_STAT_BUFF_ID(n)((n & 0xF)) +#define SET_STAT_BUFF_VALUE(n)(((s8)(((s8)(n) << 4)) & 0xF0)) + struct BattleScripting { - u8 field_0; - u8 field_1; - u8 field_2; - u8 field_3; - u32 bideDmg; - u8 field_8; - u8 field_9; - u8 field_A; - u8 field_B; - u8 field_C; - u8 field_D; + s32 painSplitHp; + s32 bideDmg; + u8 multihitString[6]; u8 dmgMultiplier; u8 field_F; + u8 animArg1; + u8 animArg2; + u8 field_12; + u8 field_13; + u8 atk49_state; + u8 field_15; + u8 field_16; + u8 bank; + u8 animTurn; + u8 animTargetsHit; + u8 statChanger; + u8 field_1B; + u8 atk23_state; + u8 field_1D; + u8 atk6C_state; + u8 learnMoveState; + u8 field_20; }; extern struct BattleScripting gBattleScripting; +// functions + +// battle_2 +void CancelMultiTurnMoves(u8 bank); +void PressurePPLose(u8 bankAtk, u8 bankDef, u16 move); +void PrepareStringBattle(u16 stringId, u8 bank); +u8 GetBattleBank(u8 caseId); +void UndoEffectsAfterFainting(void); +bool8 HasMoveFailed(u8 bank); +void SwitchInClearStructs(void); +void sub_803BDA0(u8 bank); +void sub_803FA70(u8 bank); +void BattleMainCB2(void); +void VBlankCB_Battle(void); +void ResetSentPokesToOpponentValue(void); +bool8 CanRunFromBattle(u8 bank); +bool8 IsRunningFromBattleImpossible(void); +void PressurePPLoseOnUsingPerishSong(u8 bankAtk); +void PressurePPLoseOnUsingImprision(u8 bankAtk); + +// battle_3 +#define MOVE_LIMITATION_ZEROMOVE (1 << 0) +#define MOVE_LIMITATION_PP (1 << 1) +#define MOVE_LIMITATION_DISABLED (1 << 2) +#define MOVE_LIMITATION_TORMENTED (1 << 3) +#define MOVE_LIMITATION_TAUNT (1 << 4) +#define MOVE_LIMITATION_IMPRISION (1 << 5) + +void BattleScriptPush(const u8* bsPtr); +void BattleScriptPushCursor(void); +void BattleScriptPop(void); +u8 sub_803FB4C(void); // msg, can't select a move +u8 CheckMoveLimitations(u8 bank, u8 unusableMoves, u8 check); +bool8 AreAllMovesUnusable(void); +u8 GetImprisonedMovesCount(u8 bank, u16 move); +u8 UpdateTurnCounters(void); +u8 TurnBasedEffects(void); +bool8 sub_8041364(void); +bool8 sub_8041728(void); +void b_clear_atk_up_if_hit_flag_unless_enraged(void); +u8 AtkCanceller_UnableToUseMove(void); +bool8 sub_80423F4(u8 bank, u8 r1, u8 r2); +u8 CastformDataTypeChange(u8 bank); +u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg); +void BattleScriptExecute(const u8* BS_ptr); +void BattleScriptPushCursorAndCallback(const u8* BS_ptr); +u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn); +void sub_8045868(u8 bank); +void sub_80458B4(void); +u8 GetMoveTarget(u16 move, u8 useMoveTarget); +u8 IsPokeDisobedient(void); + +// battle_script_commands +void AI_CalcDmg(u8 bankAtk, u8 bankDef); +u8 TypeCalc(u16 move, u8 bankAtk, u8 bankDef); +u8 AI_TypeCalc(u16 move, u16 species, u8 ability); +u8 BankGetTurnOrder(u8 bank); +void SetMoveEffect(bool8 primary, u8 certain); +void BattleDestroyCursorAt(u8 cursorPosition); +void BattleCreateCursorAt(u8 cursorPosition); +void BufferMoveToLearnIntoBattleTextBuff2(void); +void sub_8056A3C(u8 xStart, u8 yStart, u8 xEnd, u8 yEnd, u8 flags); +bool8 UproarWakeUpCheck(u8 bank); + +extern void (* const gBattleScriptingCommandsTable[])(void); +extern const u8 gUnknown_0831C494[]; + +// battle_5 +void AdjustFriendshipOnBattleFaint(u8 bank); +void sub_80571DC(u8 bank, u8 arg1); +u32 sub_805725C(u8 bank); + +// battle 7 +void BattleMusicStop(void); +void sub_805E990(struct Pokemon* mon, u8 bank); + +// rom_80A5C6C +u8 GetBankSide(u8 bank); +u8 GetBankIdentity(u8 bank); +u8 GetBankByIdentity(u8 bank); + +// battle_transition +void sub_8149DFC(u8 a1); + +// Move this somewhere else + #include "sprite.h" struct BattleSpritesGfx diff --git a/include/battle_ai.h b/include/battle_ai_script_commands.h similarity index 74% rename from include/battle_ai.h rename to include/battle_ai_script_commands.h index 2a315059b..5fb422b41 100644 --- a/include/battle_ai.h +++ b/include/battle_ai_script_commands.h @@ -1,5 +1,5 @@ -#ifndef GUARD_BATTLE_AI_H -#define GUARD_BATTLE_AI_H +#ifndef GUARD_BATTLE_AI_SCRIPT_COMMANDS_H +#define GUARD_BATTLE_AI_SCRIPT_COMMANDS_H void BattleAI_HandleItemUseBeforeAISetup(u8 defaultScoreMoves); void BattleAI_SetupAIData(u8 defaultScoreMoves); @@ -10,4 +10,4 @@ void ClearBankAbilityHistory(u8 bank); void RecordItemEffectBattle(u8 bank, u8 itemEffect); void ClearBankItemEffectHistory(u8 bank); -#endif // GUARD_BATTLE_AI_H +#endif // GUARD_BATTLE_AI_SCRIPT_COMMANDS_H diff --git a/include/battle_controllers.h b/include/battle_controllers.h new file mode 100644 index 000000000..b2846d7cf --- /dev/null +++ b/include/battle_controllers.h @@ -0,0 +1,73 @@ +#ifndef GUARD_BATTLE_CONTROLLERS_H +#define GUARD_BATTLE_CONTROLLERS_H + +struct HpAndStatus +{ + u16 hp; + u32 status; +}; + +struct MovePpInfo +{ + u16 move[4]; + u8 pp[4]; + u8 ppBonuses; +}; + +#define REQUEST_ALL_BATTLE 0x0 +#define REQUEST_SPECIES_BATTLE 0x1 +#define REQUEST_HELDITEM_BATTLE 0x2 +#define REQUEST_MOVES_PP_BATTLE 0x3 +#define REQUEST_PPMOVE1_BATTLE 0x9 +#define REQUEST_PPMOVE2_BATTLE 0xA +#define REQUEST_PPMOVE3_BATTLE 0xB +#define REQUEST_PPMOVE4_BATTLE 0xC +#define REQUEST_STATUS_BATTLE 0x28 +#define REQUEST_HP_BATTLE 0x2A + +// rom3.s, emitters +void EmitSetMonData(u8 bufferId, u8 request, u8 c, u8 bytes, void *data); +void EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, struct DisableStruct* disableStructPtr, u8 multihit); +void EmitHealthBarUpdate(u8 bufferId, u16 hpValue); +void EmitEffectivenessSound(u8 bufferId, u16 songId); +void EmitPlaySound(u8 bufferId, u16 songId, u8 arg2); +void EmitPrintStringPlayerOnly(u8 bufferId, u16 stringId); +void EmitFaintAnimation(u8 bufferId); +void Emit_x2A(u8 bufferId); +void EmitExpUpdate(u8 bufferId, u8 partyId, u16 expPoints); +void EmitBattleAnimation(u8 bufferId, u8 animationId, u16 argument); +void EmitSpriteInvisibility(u8 bufferId, bool8 isInvisible); +void EmitReturnPokeToBall(u8 bufferId, u8 arg1); +void EmitGetMonData(u8 bufferId, u8 arg1, u8 arg2); +void EmitSwitchInAnim(u8 bufferId, u8 partyId, bool8 dontClearSubstituteBit); +void EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, const u8* arg4); +void EmitLinkStandbyMsg(u8 bufferId, u8 arg1, u8 arg2); +void EmitTrainerSlide(u8 bufferId); +void EmitTrainerSlideBack(u8 bufferId); +void EmitFaintingCry(u8 bufferId); +void Emit_x37(u8 bufferId, u8 arg1); +void EmitHitAnimation(u8 bufferId); +void EmitCmd48(u8 bufferId, struct HpAndStatus* hpAndStatus, u8 arg2); +void EmitCmd49(u8 bufferId); +void EmitStatusAnimation(u8 bufferId, bool8 status2, u32 status); +void EmitCmd13(u8 bufferId); +void EmitStatusIconUpdate(u8 bufferId, u32 status1, u32 status2); + +#define RESET_ACTION_MOVE_SELECTION 0 +#define RESET_ACTION_SELECTION 1 +#define RESET_MOVE_SELECTION 2 + +void EmitResetActionMoveSelection(u8 bufferId, u8 caseId); + +#define BALL_NO_SHAKES 0 +#define BALL_1_SHAKE 1 +#define BALL_2_SHAKES 2 +#define BALL_3_SHAKES_FAIL 3 +#define BALL_3_SHAKES_SUCCESS 4 +#define BALL_TRAINER_BLOCK 5 + +void EmitBallThrow(u8 bufferId, u8 caseId); + +void MarkBufferBankForExecution(u8 bank); + +#endif // GUARD_BATTLE_CONTROLLERS_H diff --git a/include/battle_dome_cards.h b/include/battle_dome_cards.h new file mode 100644 index 000000000..a0696d156 --- /dev/null +++ b/include/battle_dome_cards.h @@ -0,0 +1,13 @@ +#ifndef GUARD_BATTLE_DOME_CARDS_H +#define GUARD_BATTLE_DOME_CARDS_H + +bool16 dp13_810BB8C(void); +u16 sub_818D3E4(u16 species, u32 otId, u32 personality, u8 flags, s16 x, s16 y, u8 paletteSlot, u16 paletteTag); +u16 sub_818D7D8(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag); +u16 sub_818D820(u16 spriteId); +u16 sub_818D8AC(u16 species, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag); +u16 sub_818D8F0(u16 spriteId); +u16 sub_818D938(u16 species, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId); +u8 sub_818D97C(u8 a0, u8 a1); + +#endif //GUARD_BATTLE_DOME_CARDS_H diff --git a/include/battle_message.h b/include/battle_message.h index ca310ae6f..3bc7117bb 100644 --- a/include/battle_message.h +++ b/include/battle_message.h @@ -1,6 +1,191 @@ #ifndef GUARD_BATTLE_MESSAGE_H #define GUARD_BATTLE_MESSAGE_H +// for 0xFD + +#define B_TXT_BUFF1 00 +#define B_TXT_BUFF2 01 +#define B_TXT_COPY_VAR_1 02 +#define B_TXT_COPY_VAR_2 03 +#define B_TXT_COPY_VAR_3 04 +#define B_TXT_PLAYER_MON1_NAME 05 +#define B_TXT_OPPONENT_MON1_NAME 06 +#define B_TXT_PLAYER_MON2_NAME 07 +#define B_TXT_OPPONENT_MON2_NAME 08 +#define B_TXT_LINK_PLAYER_MON1_NAME 09 +#define B_TXT_LINK_OPPONENT_MON1_NAME 0A +#define B_TXT_LINK_PLAYER_MON2_NAME 0B +#define B_TXT_LINK_OPPONENT_MON2_NAME 0C +#define B_TXT_ATK_NAME_WITH_PREFIX_MON1 0D +#define B_TXT_ATK_NAME 0E +#define B_TXT_ATK_NAME_WITH_PREFIX 0F +#define B_TXT_DEF_NAME_WITH_PREFIX 10 +#define B_TXT_EFF_NAME_WITH_PREFIX 11 // EFF = short for gEffectBank +#define B_TXT_SCR_ACTIVE_NAME_WITH_PREFIX 12 +#define B_TXT_ACTIVE_NAME_WITH_PREFIX 13 +#define B_TXT_CURRENT_MOVE 14 +#define B_TXT_LAST_MOVE 15 +#define B_TXT_LAST_ITEM 16 +#define B_TXT_LAST_ABILITY 17 +#define B_TXT_ATK_ABILITY 18 +#define B_TXT_DEF_ABILITY 19 +#define B_TXT_SCR_ACTIVE_ABILITY 1A +#define B_TXT_EFF_ABILITY 1B +#define B_TXT_TRAINER1_CLASS 1C +#define B_TXT_TRAINER1_NAME 1D +#define B_TXT_1E 1E // trainer name for a link player +#define B_TXT_1F 1F // trainer name for a link player +#define B_TXT_20 20 // trainer name for a link player +#define B_TXT_21 21 // trainer name for a link player +#define B_TXT_22 22 // trainer name for a link player +#define B_TXT_PLAYER_NAME 23 +#define B_TXT_TRAINER1_LOSE_TEXT 24 +#define B_TXT_TRAINER1_WIN_TEXT 25 +#define B_TXT_26 26 +#define B_TXT_PC_CREATOR_NAME 27 +#define B_TXT_ATK_PREFIX1 28 +#define B_TXT_DEF_PREFIX1 29 +#define B_TXT_ATK_PREFIX2 2A +#define B_TXT_DEF_PREFIX2 2B +#define B_TXT_ATK_PREFIX3 2C +#define B_TXT_DEF_PREFIX3 2D +#define B_TXT_TRAINER2_CLASS 2E +#define B_TXT_TRAINER2_NAME 2F +#define B_TXT_TRAINER2_LOSE_TEXT 30 +#define B_TXT_TRAINER2_WIN_TEXT 31 +#define B_TXT_PARTNER_CLASS 32 +#define B_TXT_PARTNER_NAME 33 +#define B_TXT_BUFF3 34 + +// for B_TXT_BUFF1, B_TXT_BUFF2 and B_TXT_BUFF3 + +#define B_BUFF_STRING 0 +#define B_BUFF_NUMBER 1 +#define B_BUFF_MOVE 2 +#define B_BUFF_TYPE 3 +#define B_BUFF_MON_NICK_WITH_PREFIX 4 +#define B_BUFF_STAT 5 +#define B_BUFF_SPECIES 6 +#define B_BUFF_MON_NICK 7 +#define B_BUFF_NEGATIVE_FLAVOUR 8 +#define B_BUFF_ABILITY 9 +#define B_BUFF_ITEM 10 + +#define B_BUFF_PLACEHOLDER_BEGIN 0xFD +#define B_BUFF_EOS 0xFF + +#define PREPARE_STAT_BUFFER(textVar, statId) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_STAT; \ + textVar[2] = statId; \ + textVar[3] = B_BUFF_EOS; \ +} + +#define PREPARE_ABILITY_BUFFER(textVar, abilityId) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_ABILITY; \ + textVar[2] = abilityId; \ + textVar[3] = B_BUFF_EOS; \ +} + +#define PREPARE_TYPE_BUFFER(textVar, typeId) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_TYPE; \ + textVar[2] = typeId; \ + textVar[3] = B_BUFF_EOS; \ +} + +#define PREPARE_BYTE_NUMBER_BUFFER(textVar, maxDigits, number) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_NUMBER; \ + textVar[2] = 1; \ + textVar[3] = maxDigits; \ + textVar[4] = (number); \ + textVar[5] = B_BUFF_EOS; \ +} + +#define PREPARE_HWORD_NUMBER_BUFFER(textVar, maxDigits, number) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_NUMBER; \ + textVar[2] = 2; \ + textVar[3] = maxDigits; \ + textVar[4] = (number); \ + textVar[5] = (number & 0x0000FF00) >> 8; \ + textVar[6] = B_BUFF_EOS; \ +} + +#define PREPARE_WORD_NUMBER_BUFFER(textVar, maxDigits, number) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_NUMBER; \ + textVar[2] = 4; \ + textVar[3] = maxDigits; \ + textVar[4] = (number); \ + textVar[5] = (number & 0x0000FF00) >> 8; \ + textVar[6] = (number & 0x00FF0000) >> 16; \ + textVar[7] = (number & 0xFF000000) >> 24; \ + textVar[8] = B_BUFF_EOS; \ +} + +#define PREPARE_STRING_BUFFER(textVar, stringId) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_STRING; \ + textVar[2] = stringId; \ + textVar[3] = (stringId & 0xFF00) >> 8; \ + textVar[4] = B_BUFF_EOS; \ +} + +#define PREPARE_MOVE_BUFFER(textVar, move) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_MOVE; \ + textVar[2] = move; \ + textVar[3] = (move & 0xFF00) >> 8; \ + textVar[4] = B_BUFF_EOS; \ +} + +#define PREPARE_ITEM_BUFFER(textVar, item) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_ITEM; \ + textVar[2] = item; \ + textVar[3] = (item & 0xFF00) >> 8; \ + textVar[4] = B_BUFF_EOS; \ +} + +#define PREPARE_SPECIES_BUFFER(textVar, species) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_SPECIES; \ + textVar[2] = species; \ + textVar[3] = (species & 0xFF00) >> 8; \ + textVar[4] = B_BUFF_EOS; \ +} + +#define PREPARE_MON_NICK_WITH_PREFIX_BUFFER(textVar, bank, partyId) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_MON_NICK_WITH_PREFIX; \ + textVar[2] = bank; \ + textVar[3] = partyId; \ + textVar[4] = B_BUFF_EOS; \ +} + +#define PREPARE_MON_NICK_BUFFER(textVar, bank, partyId) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_MON_NICK; \ + textVar[2] = bank; \ + textVar[3] = partyId; \ + textVar[4] = B_BUFF_EOS; \ +} + struct StringInfoBattle { u16 currentMove; @@ -17,12 +202,15 @@ struct StringInfoBattle }; void BufferStringBattle(u16 stringID); -u32 StrCpyDecodeToDisplayedStringBattle(const u8* src); -u32 StrCpyDecodeBattle(const u8* src, u8* dst); +u32 BattleStringExpandPlaceholdersToDisplayedString(const u8* src); +u32 BattleStringExpandPlaceholders(const u8* src, u8* dst); +void sub_814F9EC(const u8* text, u8 arg1); extern u8 gBattleTextBuff1[]; extern u8 gBattleTextBuff2[]; extern u8 gBattleTextBuff3[]; extern u8 gDisplayedStringBattle[]; +extern const u8* const gRefereeStringsTable[]; + #endif // GUARD_BATTLE_MESSAGE_H diff --git a/include/berry.h b/include/berry.h index 7c2636411..f51503d41 100644 --- a/include/berry.h +++ b/include/berry.h @@ -11,6 +11,12 @@ enum BERRY_FIRMNESS_SUPER_HARD, }; +#define NUM_BERRIES 44 + +extern const u8 *const gBerryTreeFieldObjectGraphicsIdTablePointers[NUM_BERRIES]; +extern const struct SpriteFrameImage *const gBerryTreePicTablePointers[NUM_BERRIES]; +extern const u8 *const gBerryTreePaletteSlotTablePointers[NUM_BERRIES]; + void ClearEnigmaBerries(void); void SetEnigmaBerry(u8 *src); u32 GetEnigmaBerryChecksum(struct EnigmaBerry *enigmaBerry); @@ -47,4 +53,11 @@ void ResetBerryTreeSparkleFlags(void); extern const struct Berry gBerries[]; +struct UnkStruct_0858AB24 { + u8 unk0; + u16 unk1; +}; + +extern const struct UnkStruct_0858AB24 gUnknown_0858AB24[]; + #endif // GUARD_BERRY_H diff --git a/include/bg.h b/include/bg.h new file mode 100644 index 000000000..0dcb84a34 --- /dev/null +++ b/include/bg.h @@ -0,0 +1,75 @@ +#ifndef GUARD_BG_H +#define GUARD_BG_H + +enum +{ + BG_CTRL_ATTR_VISIBLE = 1, + BG_CTRL_ATTR_CHARBASEINDEX = 2, + BG_CTRL_ATTR_MAPBASEINDEX = 3, + BG_CTRL_ATTR_SCREENSIZE = 4, + BG_CTRL_ATTR_PALETTEMODE = 5, + BG_CTRL_ATTR_PRIORITY = 6, + BG_CTRL_ATTR_MOSAIC = 7, + BG_CTRL_ATTR_WRAPAROUND = 8, +}; + +struct BgTemplate +{ + u32 bg:2; // 0x1, 0x2 -> 0x3 + u32 charBaseIndex:2; // 0x4, 0x8 -> 0xC + u32 mapBaseIndex:5; // 0x10, 0x20, 0x40, 0x80, 0x100 -> 0x1F0 + u32 screenSize:2; // 0x200, 0x400 -> 0x600 + u32 paletteMode:1; // 0x800 + u32 priority:2; // 0x1000, 0x2000 > 0x3000 + u32 baseTile:10; +}; + +void ResetBgs(void); +u8 GetBgMode(void); +void ResetBgControlStructs(void); +void Unused_ResetBgControlStruct(u8 bg); +void SetBgControlAttributes(u8 bg, u8 charBaseIndex, u8 mapBaseIndex, u8 screenSize, u8 paletteMode, u8 priority, u8 mosaic, u8 wraparound); +u16 GetBgControlAttribute(u8 bg, u8 attributeId); +u8 LoadBgVram(u8 bg, const void *src, u16 size, u16 destOffset, u8 mode); +void SetTextModeAndHideBgs(void); +bool8 IsInvalidBg(u8 bg); +int DummiedOutFireRedLeafGreenTileAllocFunc(int a1, int a2, int a3, int a4); +void ResetBgsAndClearDma3BusyFlags(u32 leftoverFireRedLeafGreenVariable); +void InitBgsFromTemplates(u8 bgMode, const struct BgTemplate *templates, u8 numTemplates); +void InitBgFromTemplate(const struct BgTemplate *template); +void SetBgMode(u8 bgMode); +u16 LoadBgTiles(u8 bg, const void* src, u16 size, u16 destOffset); +u16 LoadBgTilemap(u8 bg, const void *src, u16 size, u16 destOffset); +u16 Unused_LoadBgPalette(u8 bg, const void *src, u16 size, u16 destOffset); +bool8 IsDma3ManagerBusyWithBgCopy(void); +void ShowBg(u8 bg); +void HideBg(u8 bg); +void SetBgAttribute(u8 bg, u8 attributeId, u8 value); +u16 GetBgAttribute(u8 bg, u8 attributeId); +u32 ChangeBgX(u8 bg, u32 value, u8 op); +u32 GetBgX(u8 bg); +u32 ChangeBgY(u8 bg, u32 value, u8 op); +u32 ChangeBgY_ScreenOff(u8 bg, u32 value, u8 op); +u32 GetBgY(u8 bg); +void SetBgAffine(u8 bg, u32 srcCenterX, u32 srcCenterY, s16 dispCenterX, s16 dispCenterY, s16 scaleX, s16 scaleY, u16 rotationAngle); +u8 Unused_AdjustBgMosaic(u8 a1, u8 a2); +void SetBgTilemapBuffer(u8 bg, void *tilemap); +void UnsetBgTilemapBuffer(u8 bg); +void* GetBgTilemapBuffer(u8 bg); +void CopyToBgTilemapBuffer(u8 bg, const void *src, u16 mode, u16 destOffset); +void CopyBgTilemapBufferToVram(u8 bg); +void CopyToBgTilemapBufferRect(u8 bg, void* src, u8 destX, u8 destY, u8 width, u8 height); +void CopyToBgTilemapBufferRect_ChangePalette(u8 bg, void *src, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette); +void CopyRectToBgTilemapBufferRect(u8 bg, void* src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, u16 tileOffset, u16 palette2); +void FillBgTilemapBufferRect_Palette0(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height); +void FillBgTilemapBufferRect(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height, u8 palette); +void WriteSequenceToBgTilemapBuffer(u8 bg, u16 firstTileNum, u8 x, u8 y, u8 width, u8 height, u8 paletteSlot, s16 tileNumDelta); +u16 GetBgMetricTextMode(u8 bg, u8 whichMetric); +u32 GetBgMetricAffineMode(u8 bg, u8 whichMetric); +u32 GetTileMapIndexFromCoords(s32 x, s32 y, s32 screenSize, u32 screenWidth, u32 screenHeight); +void CopyTileMapEntry(u16 *src, u16 *dest, s32 palette1, u32 tileOffset, u32 palette2); +u32 GetBgType(u8 bg); +bool32 IsInvalidBg32(u8 bg); +bool32 IsTileMapOutsideWram(u8 bg); + +#endif // GUARD_BG_H diff --git a/include/blend_palette.h b/include/blend_palette.h new file mode 100644 index 000000000..1db3f4eb0 --- /dev/null +++ b/include/blend_palette.h @@ -0,0 +1,12 @@ +#ifndef GUARD_BLEND_PALETTE_H +#define GUARD_BLEND_PALETTE_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations + +void BlendPalette(u16, u16, u8, u16); + +#endif //GUARD_BLEND_PALETTE_H diff --git a/include/calculate_base_damage.h b/include/calculate_base_damage.h new file mode 100644 index 000000000..e9146c188 --- /dev/null +++ b/include/calculate_base_damage.h @@ -0,0 +1,6 @@ +#ifndef GUARD_CALCULATE_BASE_DAMAGE_H +#define GUARD_CALCULATE_BASE_DAMAGE_H + +s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *defender, u32 move, u16 sideStatus, u16 powerOverride, u8 typeOverride, u8 bankAtk, u8 bankDef); + +#endif // GUARD_CALCULATE_BASE_DAMAGE_H diff --git a/include/dma3.h b/include/dma3.h index beb00745d..265b47824 100644 --- a/include/dma3.h +++ b/include/dma3.h @@ -1,23 +1,10 @@ #ifndef GUARD_DMA3_H #define GUARD_DMA3_H -extern u8 gDma3ManagerLocked; -extern u8 gDma3RequestCursor; - -struct DmaRequestsStruct -{ - /* 0x00 */ u8 *src; - /* 0x04 */ u8 *dest; - /* 0x08 */ u16 size; - /* 0x0A */ u16 mode; - /* 0x0C */ u32 value; -}; - -extern struct DmaRequestsStruct gDma3Requests[128]; - void ClearDma3Requests(void); void ProcessDma3Requests(void); -int RequestDma3Copy(void *src, void *dest, u16 size, u8 mode); +int RequestDma3Copy(const void *src, void *dest, u16 size, u8 mode); int RequestDma3Fill(s32 value, void *dest, u16 size, u8 mode); +int CheckForSpaceForDma3Request(s16 index); -#endif +#endif // GUARD_DMA3_H diff --git a/include/easy_chat.h b/include/easy_chat.h index 5143aa39c..fc44b6a8a 100644 --- a/include/easy_chat.h +++ b/include/easy_chat.h @@ -29,5 +29,8 @@ enum }; void InitEasyChatPhrases(void); +void easy_chat_input_maybe(void); +void CopyEasyChatWord(u8 *, u16); +bool32 sub_811F8D8(u16); #endif // GUARD_EASYCHAT_H diff --git a/include/event_scripts.h b/include/event_scripts.h new file mode 100755 index 000000000..f1abdd6f6 --- /dev/null +++ b/include/event_scripts.h @@ -0,0 +1,11 @@ +// +// Created by scott on 9/12/2017. +// + +#ifndef GUARD_EVENT_SCRIPTS_H +#define GUARD_EVENT_SCRIPTS_H + +extern const u8 gUnknown_082766A2[]; +extern const u8 gUnknown_082766A6[]; + +#endif //GUARD_EVENT_SCRIPTS_H diff --git a/include/field_camera.h b/include/field_camera.h new file mode 100644 index 000000000..9fbaac6a2 --- /dev/null +++ b/include/field_camera.h @@ -0,0 +1,25 @@ +#ifndef GUARD_FIELD_CAMERA_H +#define GUARD_FIELD_CAMERA_H + +// Exported type declarations + +struct CameraObject +{ + void (*callback)(struct CameraObject *); + u32 unk4; + s32 unk8; + s32 unkC; + s32 x; + s32 y; +}; + +extern struct CameraObject gUnknown_03005DD0; + +// Exported RAM declarations + +extern u16 gUnknown_03005DEC; +extern u16 gUnknown_03005DE8; + +// Exported ROM declarations + +#endif //GUARD_FIELD_CAMERA_H diff --git a/include/field_effect.h b/include/field_effect.h new file mode 100644 index 000000000..7ec26b3d7 --- /dev/null +++ b/include/field_effect.h @@ -0,0 +1,80 @@ +// +// Created by Scott Norton on 9/15/17. +// + +#ifndef GUARD_FIELD_EFFECTS_H +#define GUARD_FIELD_EFFECTS_H + +enum FieldEffectScriptIdx +{ + FLDEFF_EXCLAMATION_MARK_ICON_1, + FLDEFF_USE_CUT_ON_GRASS, + FLDEFF_USE_CUT_ON_TREE, + FLDEFF_SHADOW, + FLDEFF_TALL_GRASS, + FLDEFF_RIPPLE, + FLDEFF_FIELD_MOVE_SHOW_MON, + FLDEFF_ASH, + FLDEFF_SURF_BLOB, + FLDEFF_USE_SURF, + FLDEFF_DUST, + FLDEFF_USE_SECRET_POWER_CAVE, + FLDEFF_JUMP_TALL_GRASS, + FLDEFF_SAND_FOOTPRINTS, + FLDEFF_JUMP_BIG_SPLASH, + FLDEFF_SPLASH, + FLDEFF_JUMP_SMALL_SPLASH, + FLDEFF_LONG_GRASS, + FLDEFF_JUMP_LONG_GRASS, + FLDEFF_UNKNOWN_19, + FLDEFF_UNKNOWN_20, + FLDEFF_UNKNOWN_21, + FLDEFF_UNKNOWN_22, + FLDEFF_BERRY_TREE_GROWTH_SPARKLE, + FLDEFF_DEEP_SAND_FOOTPRINTS, + FLDEFF_POKECENTER_HEAL, + FLDEFF_USE_SECRET_POWER_TREE, + FLDEFF_USE_SECRET_POWER_SHRUB, + FLDEFF_TREE_DISGUISE, + FLDEFF_MOUNTAIN_DISGUISE, + FLDEFF_NPCFLY_OUT, + FLDEFF_USE_FLY, + FLDEFF_FLY_IN, + FLDEFF_EXCLAMATION_MARK_ICON_2, + FLDEFF_FEET_IN_FLOWING_WATER, + FLDEFF_BIKE_TIRE_TRACKS, + FLDEFF_SAND_DISGUISE, + FLDEFF_USE_ROCK_SMASH, + FLDEFF_USE_DIG, + FLDEFF_SAND_PILE, + FLDEFF_USE_STRENGTH, + FLDEFF_SHORT_GRASS, + FLDEFF_HOT_SPRINGS_WATER, + FLDEFF_USE_WATERFALL, + FLDEFF_USE_DIVE, + FLDEFF_POKEBALL, + FLDEFF_HEART_ICON, + FLDEFF_NOP_47, + FLDEFF_NOP_48, + FLDEFF_POP_OUT_OF_ASH, + FLDEFF_LAVARIDGE_GYM_WARP, + FLDEFF_SWEET_SCENT, + FLDEFF_SAND_PILLAR, + FLDEFF_BUBBLES, + FLDEFF_SPARKLE, + FLDEFF_SECRET_POWER_CAVE, + FLDEFF_SECRET_POWER_TREE, + FLDEFF_SECRET_POWER_SHRUB, + FLDEFF_CUT_GRASS, + FLDEFF_FIELD_MOVE_SHOW_MON_INIT, + FLDEFF_USE_FLY_ANCIENT_TOMB, + FLDEFF_PCTURN_ON, + FLDEFF_HALL_OF_FAME_RECORD, + FLDEFF_USE_TELEPORT +}; + +extern u32 gFieldEffectSpawnParams[8]; + +u8 FieldEffectStart(u8); + +#endif //GUARD_FIELD_EFFECTS_H diff --git a/include/field_effect_helpers.h b/include/field_effect_helpers.h new file mode 100644 index 000000000..e80daf3bd --- /dev/null +++ b/include/field_effect_helpers.h @@ -0,0 +1,16 @@ +// +// Created by scott on 9/7/2017. +// + +#ifndef GUARD_FIELD_EFFECT_HELPERS_H +#define GUARD_FIELD_EFFECT_HELPERS_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations +u8 sub_8154228(void); +bool8 sub_8155DA0(struct MapObject *); + +#endif //GUARD_FIELD_EFFECT_HELPERS_H diff --git a/include/field_ground_effect.h b/include/field_ground_effect.h new file mode 100644 index 000000000..63b67ceaf --- /dev/null +++ b/include/field_ground_effect.h @@ -0,0 +1,22 @@ +// +// Created by scott on 9/6/2017. +// + +#ifndef GUARD_FIELD_GROUND_EFFECT_H +#define GUARD_FIELD_GROUND_EFFECT_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations +void SetObjectSubpriorityByZCoord(u8, struct Sprite *, u8); +void InitObjectPriorityByZCoord(struct Sprite *, u8); +bool8 IsZCoordMismatchAt(u8, s16, s16); +bool8 AreZCoordsCompatible(u8, u8); +void FieldObjectUpdateSubpriority(struct MapObject *, struct Sprite *); +void DoGroundEffects_OnSpawn(struct MapObject *, struct Sprite *); +void DoGroundEffects_OnBeginStep(struct MapObject *, struct Sprite *); +void DoGroundEffects_OnFinishStep(struct MapObject *, struct Sprite *); + +#endif //GUARD_FIELD_GROUND_EFFECT_H diff --git a/include/field_map_obj.h b/include/field_map_obj.h new file mode 100755 index 000000000..40cc64054 --- /dev/null +++ b/include/field_map_obj.h @@ -0,0 +1,79 @@ +#ifndef GUARD_FIELD_MAP_OBJ_H +#define GUARD_FIELD_MAP_OBJ_H + +#define NUM_OBJECT_GRAPHICS_INFO 239 +#define SPRITE_VAR 240 + +// Exported struct declarations + +enum SpinnerRunnerFollowPatterns { + RUNFOLLOW_ANY, + RUNFOLLOW_NORTH_SOUTH, + RUNFOLLOW_EAST_WEST, + RUNFOLLOW_NORTH_WEST, + RUNFOLLOW_NORTH_EAST, + RUNFOLLOW_SOUTH_WEST, + RUNFOLLOW_SOUTH_EAST, + RUNFOLLOW_NORTH_SOUTH_WEST, + RUNFOLLOW_NORTH_SOUTH_EAST, + RUNFOLLOW_NORTH_EAST_WEST, + RUNFOLLOW_SOUTH_EAST_WEST +}; + +// Exported RAM declarations + +// Exported ROM declarations + +void sub_808D438(void); +u8 GetFieldObjectIdByLocalIdAndMap(u8, u8, u8); +bool8 TryGetFieldObjectIdByLocalIdAndMap(u8, u8, u8, u8 *); +u8 GetFieldObjectIdByXY(s16, s16); +void FieldObjectSetDirection(struct MapObject *, u8); +u8 sub_808D4F4(void); +void RemoveFieldObjectByLocalIdAndMap(u8, u8, u8); +void npc_load_two_palettes__no_record(u16, u8); +void npc_load_two_palettes__and_record(u16, u8); +void pal_patch_for_npc(u16, u8); +void sub_808E16C(s16, s16); +void sub_8092FF0(s16, s16, s16 *, s16 *); +u8 FieldObjectDirectionToImageAnimId(u8); +void sub_80930E0(s16 *, s16 *, s16, s16); +void FieldObjectClearAnim(struct MapObject *); +void FieldObjectClearAnimIfSpecialAnimActive(struct MapObject *); +void SpawnFieldObjectsInView(s16, s16); +u8 sprite_new(u8, u8, s16, s16, u8, u8); +u8 AddPseudoFieldObject(u16, void (*)(struct Sprite *), s16, s16, u8); +u8 show_sprite(u8, u8, u8); +u8 SpawnSpecialFieldObjectParametrized(u8, u8, u8, s16, s16, u8); +u8 SpawnSpecialFieldObject(struct MapObjectTemplate *); +void sub_8093038(s16, s16, s16 *, s16 *); +void CameraObjectReset1(void); +void FieldObjectSetGraphicsId(struct MapObject *, u8); +void FieldObjectTurn(struct MapObject *, u8); +void FieldObjectTurnByLocalIdAndMap(u8, u8, u8, u8); +const struct MapObjectGraphicsInfo *GetFieldObjectGraphicsInfo(u8); +void npc_by_local_id_and_map_set_field_1_bit_x20(u8, u8, u8, u8); +void gpu_pal_allocator_reset__manage_upper_four(void); +void sub_808E82C(u8, u8, u8, s16, s16); +void sub_808E7E4(u8, u8, u8); +void sub_808E78C(u8, u8, u8, u8); +void sub_808E75C(s16, s16); +void FieldObjectGetLocalIdAndMap(struct MapObject *, u8 *, u8 *, u8 *); +void npc_coords_shift(struct MapObject *, s16, s16); +void sub_808EB08(struct MapObject *, s16, s16); +void sub_808F254(u8, u8, u8); +void FieldObjectStep(struct MapObject *, struct Sprite *, bool8(struct MapObject *, struct Sprite *)); +u8 GetOppositeDirection(u8); +u8 GetStepInPlaceDelay4AnimId(u32); +u8 GetStepInPlaceDelay8AnimId(u32); +u8 GetStepInPlaceDelay16AnimId(u32); +u8 GetStepInPlaceDelay32AnimId(u32); +u8 npc_block_way(struct MapObject *, s16, s16, u32); +void MoveCoords(u8, s16 *, s16 *); +bool8 FieldObjectIsSpecialAnimActive(struct MapObject *); + +// Exported data declarations + +extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[]; + +#endif //GUARD_FIELD_MAP_OBJ_H diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h new file mode 100644 index 000000000..a787cf805 --- /dev/null +++ b/include/field_player_avatar.h @@ -0,0 +1,17 @@ +// +// Created by Scott Norton on 9/6/17. +// + +#ifndef GUARD_FIELD_PLAYER_AVATAR_H +#define GUARD_FIELD_PLAYER_AVATAR_H + +void ClearPlayerAvatarInfo(void); +void SetPlayerAvatarExtraStateTransition(u8, u8); +u8 GetPlayerAvatarGenderByGraphicsId(u8); +bool8 TestPlayerAvatarFlags(u8); +void PlayerGetDestCoords(s16 *, s16 *); +u8 player_get_direction_lower_nybble(void); +u8 player_get_direction_upper_nybble(void); +u8 player_get_x22(void); + +#endif //GUARD_FIELD_PLAYER_AVATAR_H diff --git a/include/fieldmap.h b/include/fieldmap.h index f3b5a7668..7174d98cc 100644 --- a/include/fieldmap.h +++ b/include/fieldmap.h @@ -1,6 +1,19 @@ +// +// Created by scott on 9/16/2017. +// + #ifndef GUARD_FIELDMAP_H #define GUARD_FIELDMAP_H -void GetCameraCoords(u16*, u16*); +// Exported type declarations -#endif // GUARD_FIELDMAP_H +// Exported RAM declarations + +// Exported ROM declarations +u8 MapGridGetMetatileBehaviorAt(s16, s16); +void GetCameraCoords(u16*, u16*); +bool8 MapGridIsImpassableAt(s16, s16); +s32 GetMapBorderIdAt(s16, s16); +bool32 CanCameraMoveInDirection(u8); + +#endif //GUARD_FIELDMAP_H diff --git a/include/gba/defines.h b/include/gba/defines.h index e67d64777..41cc84f4a 100644 --- a/include/gba/defines.h +++ b/include/gba/defines.h @@ -50,6 +50,8 @@ #define OAM 0x7000000 #define OAM_SIZE 0x400 +#define ROM_HEADER_SIZE 0xC0 + #define DISPLAY_WIDTH 240 #define DISPLAY_HEIGHT 160 diff --git a/include/gba/multiboot.h b/include/gba/multiboot.h index e88b43a19..14b6594b2 100644 --- a/include/gba/multiboot.h +++ b/include/gba/multiboot.h @@ -8,19 +8,19 @@ struct MultiBootParam { - u32 system_work[5]; - u8 handshake_data; - u8 padding; - u16 handshake_timeout; - u8 probe_count; - u8 client_data[MULTIBOOT_NCHILD]; - u8 palette_data; - u8 response_bit; - u8 client_bit; - u8 reserved1; - u8 *boot_srcp; - u8 *boot_endp; - u8 *masterp; + u32 system_work[5]; // 00 + u8 handshake_data; // 14 + u8 padding; // 15 + u16 handshake_timeout; // 16 + u8 probe_count; // 18 + u8 client_data[MULTIBOOT_NCHILD]; // 19 + u8 palette_data; // 1c + u8 response_bit; // 1d + u8 client_bit; // 1e + u8 reserved1; // 1f + const u8 *boot_srcp; // 20 + const u8 *boot_endp; // 24 + const u8 *masterp; u8 *reserved2[MULTIBOOT_NCHILD]; u32 system_work2[4]; u8 sendflag; diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index 4029132e8..ed5054b7d 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -1,6 +1,8 @@ #ifndef GUARD_GLOBAL_FIELDMAP_H #define GUARD_GLOBAL_FIELDMAP_H +#define NUM_FIELD_OBJECTS 16 + enum { CONNECTION_SOUTH = 1, @@ -84,7 +86,7 @@ struct MapObjectTemplate ///*0x0B*/ u8 fillerB[1]; /*0x0C*/ u16 unkC; /*0x0E*/ u16 unkE; - /*0x10*/ u8 *script; + /*0x10*/ const u8 *script; /*0x14*/ u16 flagId; /*0x16*/ u8 filler_16[2]; }; /*size = 0x18*/ @@ -224,7 +226,13 @@ struct MapObject /*0x14*/ struct Coords16 coords3; /*0x18*/ u8 mapobj_unk_18:4; //current direction? /*0x18*/ u8 placeholder18:4; - /*0x19*/ u8 mapobj_unk_19; + /*0x19*/ union __attribute__((packed)) { + u8 as_byte; + struct __attribute__((packed)) { + u8 x:4; + u8 y:4; + } __attribute__((aligned (1))) as_nybbles; + } __attribute__((aligned (1))) range; /*0x1A*/ u8 mapobj_unk_1A; /*0x1B*/ u8 mapobj_unk_1B; /*0x1C*/ u8 mapobj_unk_1C; @@ -237,68 +245,6 @@ struct MapObject /*size = 0x24*/ }; -// THIS IS NEEDED TO MAKE TRAINER_SEE.C MATCH, PLEASE DO NOT REMOVE UNLESS YOU FIX CHECKPATHBETWEENTRAINERANDPLAYER -struct MapObject2 -{ - /*0x00*/ u32 active:1; - u32 mapobj_bit_1:1; - u32 mapobj_bit_2:1; - u32 mapobj_bit_3:1; - u32 mapobj_bit_4:1; - u32 mapobj_bit_5:1; - u32 mapobj_bit_6:1; - u32 mapobj_bit_7:1; - /*0x01*/ u32 mapobj_bit_8:1; - u32 mapobj_bit_9:1; - u32 mapobj_bit_10:1; - u32 mapobj_bit_11:1; - u32 mapobj_bit_12:1; - u32 mapobj_bit_13:1; - u32 mapobj_bit_14:1; - u32 mapobj_bit_15:1; - /*0x02*/ u32 mapobj_bit_16:1; - u32 mapobj_bit_17:1; - u32 mapobj_bit_18:1; - u32 mapobj_bit_19:1; - u32 mapobj_bit_20:1; - u32 mapobj_bit_21:1; - u32 mapobj_bit_22:1; - u32 mapobj_bit_23:1; - /*0x03*/ u32 mapobj_bit_24:1; - u32 mapobj_bit_25:1; - u32 mapobj_bit_26:1; - u32 mapobj_bit_27:1; - u32 mapobj_bit_28:1; - u32 mapobj_bit_29:1; - u32 mapobj_bit_30:1; - u32 mapobj_bit_31:1; - /*0x04*/ u8 spriteId; - /*0x05*/ u8 graphicsId; - /*0x06*/ u8 animPattern; - /*0x07*/ u8 trainerType; - /*0x08*/ u8 localId; - /*0x09*/ u8 mapNum; - /*0x0A*/ u8 mapGroup; - /*0x0B*/ u8 mapobj_unk_0B_0:4; - u8 elevation:4; - /*0x0C*/ struct Coords16 coords1; - /*0x10*/ struct Coords16 coords2; - /*0x14*/ struct Coords16 coords3; - /*0x18*/ u8 mapobj_unk_18:4; - /*0x18*/ u8 placeholder18:4; - /*0x19*/ u8 mapobj_unk_19:4; - /*0x19*/ u8 mapobj_unk_19b:4; - /*0x1A*/ u8 mapobj_unk_1A; - /*0x1B*/ u8 mapobj_unk_1B; - /*0x1C*/ u8 mapobj_unk_1C; - /*0x1D*/ u8 trainerRange_berryTreeId; - /*0x1E*/ u8 mapobj_unk_1E; - /*0x1F*/ u8 mapobj_unk_1F; - /*0x20*/ u8 mapobj_unk_20; - /*0x21*/ u8 mapobj_unk_21; - /*size = 0x24*/ -}; - struct MapObjectGraphicsInfo { /*0x00*/ u16 tileTag; @@ -376,14 +322,15 @@ struct PlayerAvatar /* 0x202E858 */ struct Camera { - bool8 field_0:1; + bool8 active:1; s32 x; s32 y; }; -extern struct MapObject gMapObjects[]; +extern struct MapObject gMapObjects[NUM_FIELD_OBJECTS]; extern u8 gSelectedMapObject; extern struct MapHeader gMapHeader; extern struct PlayerAvatar gPlayerAvatar; +extern struct Camera gCamera; #endif // GUARD_GLOBAL_FIELDMAP_H diff --git a/include/global.h b/include/global.h index e694a5974..4014c6dde 100644 --- a/include/global.h +++ b/include/global.h @@ -9,9 +9,23 @@ // to help in decompiling #define asm_comment(x) asm volatile("@ -- " x " -- ") +#define asm_unified(x) asm(".syntax unified\n" x "\n.syntax divided") + +#if defined (__APPLE__) || defined (__CYGWIN__) +void memset(void *, int, size_t); +void memcpy(void *, const void *, size_t); +#endif // __APPLE__ #define ARRAY_COUNT(array) (sizeof(array) / sizeof((array)[0])) +// useful math macros + +// Converts a number to Q8.8 fixed-point format +#define Q_8_8(n) ((s16)((n) * 256)) + +// Converts a number to Q4.12 fixed-point format +#define Q_4_12(n) ((s16)((n) * 4096)) + #define POKEMON_NAME_LENGTH 10 #define OT_NAME_LENGTH 7 @@ -639,7 +653,8 @@ struct DaycareMon struct MailStruct mail; u8 OT_name[OT_NAME_LENGTH + 1]; u8 monName[11]; - u8 language; + u8 language_maybe : 4; + u8 unknown : 4; u32 stepsTaken; }; @@ -655,6 +670,61 @@ struct DaycareData #define FLAGS_COUNT 300 #define VARS_COUNT 256 +enum { + LILYCOVE_LADY_QUIZ, + LILYCOVE_LADY_FAVOUR, + LILYCOVE_LADY_CONTEST +}; + +struct LilycoveLadyQuiz +{ + /*0x000*/ u8 id; + /*0x001*/ u8 phase; + /*0x002*/ u16 unk_002[9]; + /*0x014*/ u16 unk_014; + /*0x016*/ u16 unk_016; + /*0x018*/ u8 playerName[8]; + /*0x020*/ u16 playerTrainerId[4]; + /*0x028*/ u16 itemId; + /*0x02a*/ u8 unk_02a; + /*0x02b*/ u8 unk_02b; + /*0x02c*/ u8 unk_02c; + /*0x02d*/ u8 language; +}; + +struct LilycoveLadyFavour +{ + /*0x000*/ u8 id; + /*0x001*/ u8 phase; + /*0x002*/ u8 unk_002; + /*0x003*/ u8 unk_003; + /*0x004*/ u8 playerName[8]; + /*0x00c*/ u8 unk_00c; + /*0x00e*/ u16 itemId; + /*0x010*/ u16 unk_010; + /*0x012*/ u8 language; +}; + +struct LilycoveLadyContest +{ + /*0x000*/ u8 id; + /*0x001*/ u8 phase; + /*0x002*/ u8 fave_pkblk; + /*0x003*/ u8 other_pkblk; + /*0x004*/ u8 playerName[8]; + /*0x00c*/ u8 max_sheen; + /*0x00d*/ u8 category; + /*0x00e*/ u8 language; +}; + +typedef union // TODO +{ + struct LilycoveLadyQuiz quiz; + struct LilycoveLadyFavour favour; + struct LilycoveLadyContest contest; + u8 id; +} LilycoveLady; + struct SaveBlock1 { /*0x00*/ struct Coords16 pos; @@ -738,7 +808,8 @@ struct SaveBlock1 /*0x3728*/ struct RamScript ramScript; /*0x3B14*/ struct RecordMixingGift recordMixingGift; /*0x3B24*/ u8 seen2[52]; - /*0x3B58*/ u8 lilycoveLady[536]; // TODO: convert to a union + /*0x3B58*/ LilycoveLady lilycoveLady; + /*0x3B88*/ u8 filler_3B88[0x1E8]; /*0x3D70*/ u8 babyPhrase[24]; // TODO: convert to a struct // sizeof: 0x3D88 }; @@ -752,4 +823,6 @@ struct Bitmap // TODO: Find a better spot for this u32 height:16; }; +extern u8 gReservedSpritePaletteCount; + #endif // GUARD_GLOBAL_H diff --git a/include/gpu_regs.h b/include/gpu_regs.h new file mode 100644 index 000000000..89e0cb64b --- /dev/null +++ b/include/gpu_regs.h @@ -0,0 +1,19 @@ +#ifndef GUARD_GPU_REGS_H +#define GUARD_GPU_REGS_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations +void InitGpuRegManager(void); +void CopyBufferedValuesToGpuRegs(void); +void SetGpuReg(u8 regOffset, u16 value); +void SetGpuReg_ForcedBlank(u8 regOffset, u16 value); +u16 GetGpuReg(u8 regOffset); +void SetGpuRegBits(u8 regOffset, u16 mask); +void ClearGpuRegBits(u8 regOffset, u16 mask); +void EnableInterrupts(u16 mask); +void DisableInterrupts(u16 mask); + +#endif //GUARD_GPU_REGS_H diff --git a/include/hall_of_fame.h b/include/hall_of_fame.h new file mode 100644 index 000000000..62e84c39e --- /dev/null +++ b/include/hall_of_fame.h @@ -0,0 +1,9 @@ +#ifndef GUARD_HALL_OF_FAME_H +#define GUARD_HALL_OF_FAME_H + +void sub_8141F90(void); +void sub_8143648(u16 paletteTag, u8 arg1); +void sub_81428CC(void); +void sub_8143680(int, u8); + +#endif // GUARD_HALL_OF_FAME_H diff --git a/include/item_menu.h b/include/item_menu.h new file mode 100644 index 000000000..85655e9d5 --- /dev/null +++ b/include/item_menu.h @@ -0,0 +1,12 @@ +#ifndef GUARD_item_menu_H +#define GUARD_item_menu_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations +void sub_81AAC50(void); +void sub_81AAC70(void); + +#endif //GUARD_item_menu_H diff --git a/include/lilycove_lady.h b/include/lilycove_lady.h index 81825d8ac..c7776131b 100644 --- a/include/lilycove_lady.h +++ b/include/lilycove_lady.h @@ -1,6 +1,17 @@ #ifndef GUARD_LILYCOVE_LADY_H #define GUARD_LILYCOVE_LADY_H +u8 GetLilycoveLadyId(void); void SetLilycoveLady(void); +void sub_818DA78(void); +void sub_818DEF4(void); +void sub_818E564(void); +void sub_818E570(const struct LilycoveLadyQuiz *quiz); +bool8 sub_818E704(struct Pokeblock *pokeblock); +void sub_818E7E0(u8 *dest1, u8 *dest2); +void sub_818E81C(u8 *dest); +void sub_818E848(u8 *dest); +void sub_818E868(u8 *dest, u8 category); +u8 sub_818E880(void); #endif //GUARD_LILYCOVE_LADY_H diff --git a/include/load_save.h b/include/load_save.h index 0fedd720b..20848e1a7 100644 --- a/include/load_save.h +++ b/include/load_save.h @@ -18,5 +18,6 @@ void SaveSerializedGame(void); void LoadSerializedGame(void); void LoadPlayerBag(void); void SavePlayerBag(void); +void SetSaveBlocksPointers(u16); #endif // GUARD_LOAD_SAVE_H diff --git a/include/m4a.h b/include/m4a.h index b6c8f9072..8c3380dd8 100644 --- a/include/m4a.h +++ b/include/m4a.h @@ -4,6 +4,7 @@ #include "gba/m4a_internal.h" void m4aSoundVSync(void); +void m4aSoundVSyncOn(void); void m4aSoundInit(void); void m4aSoundMain(void); diff --git a/include/mail.h b/include/mail.h new file mode 100644 index 000000000..16ca1f676 --- /dev/null +++ b/include/mail.h @@ -0,0 +1,19 @@ +#ifndef GUARD_MAIL_H +#define GUARD_MAIL_H + +#include "items.h" + +#define IS_ITEM_MAIL(itemId)((itemId == ITEM_ORANGE_MAIL \ + || itemId == ITEM_HARBOR_MAIL \ + || itemId == ITEM_GLITTER_MAIL \ + || itemId == ITEM_MECH_MAIL \ + || itemId == ITEM_WOOD_MAIL \ + || itemId == ITEM_WAVE_MAIL \ + || itemId == ITEM_BEAD_MAIL \ + || itemId == ITEM_SHADOW_MAIL \ + || itemId == ITEM_TROPIC_MAIL \ + || itemId == ITEM_DREAM_MAIL \ + || itemId == ITEM_FAB_MAIL \ + || itemId == ITEM_RETRO_MAIL)) + +#endif // GUARD_MAIL_H diff --git a/include/malloc.h b/include/malloc.h index bd870ede3..4568e244a 100644 --- a/include/malloc.h +++ b/include/malloc.h @@ -1,8 +1,14 @@ #ifndef GUARD_MALLOC_H #define GUARD_MALLOC_H +#define malloc Alloc +#define calloc AllocZeroed +#define free Free + +extern u8 gHeap[]; void *Alloc(u32 size); void *AllocZeroed(u32 size); void Free(void *pointer); +void InitHeap(void *pointer, u32 size); #endif // GUARD_MALLOC_H diff --git a/include/map_constants.h b/include/map_constants.h new file mode 100644 index 000000000..6199793c8 --- /dev/null +++ b/include/map_constants.h @@ -0,0 +1,1342 @@ +#ifndef GUARD_MAP_CONSTANTS_H +#define GUARD_MAP_CONSTANTS_H + +//-------------------------------------------------- +// Map Group 0 +//-------------------------------------------------- + +enum +{ + MAP_ID_PETALBURG_CITY, + MAP_ID_SLATEPORT_CITY, + MAP_ID_MAUVILLE_CITY, + MAP_ID_RUSTBORO_CITY, + MAP_ID_FORTREE_CITY, + MAP_ID_LILYCOVE_CITY, + MAP_ID_MOSSDEEP_CITY, + MAP_ID_SOOTOPOLIS_CITY, + MAP_ID_EVER_GRANDE_CITY, + MAP_ID_LITTLEROOT_TOWN, + MAP_ID_OLDALE_TOWN, + MAP_ID_DEWFORD_TOWN, + MAP_ID_LAVARIDGE_TOWN, + MAP_ID_FALLARBOR_TOWN, + MAP_ID_VERDANTURF_TOWN, + MAP_ID_PACIFIDLOG_TOWN, + MAP_ID_ROUTE101, + MAP_ID_ROUTE102, + MAP_ID_ROUTE103, + MAP_ID_ROUTE104, + MAP_ID_ROUTE105, + MAP_ID_ROUTE106, + MAP_ID_ROUTE107, + MAP_ID_ROUTE108, + MAP_ID_ROUTE109, + MAP_ID_ROUTE110, + MAP_ID_ROUTE111, + MAP_ID_ROUTE112, + MAP_ID_ROUTE113, + MAP_ID_ROUTE114, + MAP_ID_ROUTE115, + MAP_ID_ROUTE116, + MAP_ID_ROUTE117, + MAP_ID_ROUTE118, + MAP_ID_ROUTE119, + MAP_ID_ROUTE120, + MAP_ID_ROUTE121, + MAP_ID_ROUTE122, + MAP_ID_ROUTE123, + MAP_ID_ROUTE124, + MAP_ID_ROUTE125, + MAP_ID_ROUTE126, + MAP_ID_ROUTE127, + MAP_ID_ROUTE128, + MAP_ID_ROUTE129, + MAP_ID_ROUTE130, + MAP_ID_ROUTE131, + MAP_ID_ROUTE132, + MAP_ID_ROUTE133, + MAP_ID_ROUTE134, + MAP_ID_UNDERWATER1, + MAP_ID_UNDERWATER2, + MAP_ID_UNDERWATER3, + MAP_ID_UNDERWATER4, + MAP_ID_UNDERWATER5, + MAP_ID_UNDERWATER6, + MAP_ID_UNDERWATER7, +}; + +#define MAP_GROUP_PETALBURG_CITY 0 +#define MAP_GROUP_SLATEPORT_CITY 0 +#define MAP_GROUP_MAUVILLE_CITY 0 +#define MAP_GROUP_RUSTBORO_CITY 0 +#define MAP_GROUP_FORTREE_CITY 0 +#define MAP_GROUP_LILYCOVE_CITY 0 +#define MAP_GROUP_MOSSDEEP_CITY 0 +#define MAP_GROUP_SOOTOPOLIS_CITY 0 +#define MAP_GROUP_EVER_GRANDE_CITY 0 +#define MAP_GROUP_LITTLEROOT_TOWN 0 +#define MAP_GROUP_OLDALE_TOWN 0 +#define MAP_GROUP_DEWFORD_TOWN 0 +#define MAP_GROUP_LAVARIDGE_TOWN 0 +#define MAP_GROUP_FALLARBOR_TOWN 0 +#define MAP_GROUP_VERDANTURF_TOWN 0 +#define MAP_GROUP_PACIFIDLOG_TOWN 0 +#define MAP_GROUP_ROUTE101 0 +#define MAP_GROUP_ROUTE102 0 +#define MAP_GROUP_ROUTE103 0 +#define MAP_GROUP_ROUTE104 0 +#define MAP_GROUP_ROUTE105 0 +#define MAP_GROUP_ROUTE106 0 +#define MAP_GROUP_ROUTE107 0 +#define MAP_GROUP_ROUTE108 0 +#define MAP_GROUP_ROUTE109 0 +#define MAP_GROUP_ROUTE110 0 +#define MAP_GROUP_ROUTE111 0 +#define MAP_GROUP_ROUTE112 0 +#define MAP_GROUP_ROUTE113 0 +#define MAP_GROUP_ROUTE114 0 +#define MAP_GROUP_ROUTE115 0 +#define MAP_GROUP_ROUTE116 0 +#define MAP_GROUP_ROUTE117 0 +#define MAP_GROUP_ROUTE118 0 +#define MAP_GROUP_ROUTE119 0 +#define MAP_GROUP_ROUTE120 0 +#define MAP_GROUP_ROUTE121 0 +#define MAP_GROUP_ROUTE122 0 +#define MAP_GROUP_ROUTE123 0 +#define MAP_GROUP_ROUTE124 0 +#define MAP_GROUP_ROUTE125 0 +#define MAP_GROUP_ROUTE126 0 +#define MAP_GROUP_ROUTE127 0 +#define MAP_GROUP_ROUTE128 0 +#define MAP_GROUP_ROUTE129 0 +#define MAP_GROUP_ROUTE130 0 +#define MAP_GROUP_ROUTE131 0 +#define MAP_GROUP_ROUTE132 0 +#define MAP_GROUP_ROUTE133 0 +#define MAP_GROUP_ROUTE134 0 +#define MAP_GROUP_UNDERWATER1 0 +#define MAP_GROUP_UNDERWATER2 0 +#define MAP_GROUP_UNDERWATER3 0 +#define MAP_GROUP_UNDERWATER4 0 +#define MAP_GROUP_UNDERWATER5 0 +#define MAP_GROUP_UNDERWATER6 0 +#define MAP_GROUP_UNDERWATER7 0 +//-------------------------------------------------- +// Map Group 1 +//-------------------------------------------------- + +enum +{ + MAP_ID_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F, + MAP_ID_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F, + MAP_ID_LITTLEROOT_TOWN_MAYS_HOUSE_1F, + MAP_ID_LITTLEROOT_TOWN_MAYS_HOUSE_2F, + MAP_ID_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB, +}; + +#define MAP_GROUP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F 1 +#define MAP_GROUP_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F 1 +#define MAP_GROUP_LITTLEROOT_TOWN_MAYS_HOUSE_1F 1 +#define MAP_GROUP_LITTLEROOT_TOWN_MAYS_HOUSE_2F 1 +#define MAP_GROUP_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB 1 + +//-------------------------------------------------- +// Map Group 2 +//-------------------------------------------------- + +enum +{ + MAP_ID_OLDALE_TOWN_HOUSE1, + MAP_ID_OLDALE_TOWN_HOUSE2, + MAP_ID_OLDALE_TOWN_POKEMON_CENTER_1F, + MAP_ID_OLDALE_TOWN_POKEMON_CENTER_2F, + MAP_ID_OLDALE_TOWN_MART, +}; + +#define MAP_GROUP_OLDALE_TOWN_HOUSE1 2 +#define MAP_GROUP_OLDALE_TOWN_HOUSE2 2 +#define MAP_GROUP_OLDALE_TOWN_POKEMON_CENTER_1F 2 +#define MAP_GROUP_OLDALE_TOWN_POKEMON_CENTER_2F 2 +#define MAP_GROUP_OLDALE_TOWN_MART 2 + +//-------------------------------------------------- +// Map Group 3 +//-------------------------------------------------- + +enum +{ + MAP_ID_DEWFORD_TOWN_HOUSE1, + MAP_ID_DEWFORD_TOWN_POKEMON_CENTER_1F, + MAP_ID_DEWFORD_TOWN_POKEMON_CENTER_2F, + MAP_ID_DEWFORD_TOWN_GYM, + MAP_ID_DEWFORD_TOWN_HALL, + MAP_ID_DEWFORD_TOWN_HOUSE2, +}; + +#define MAP_GROUP_DEWFORD_TOWN_HOUSE1 3 +#define MAP_GROUP_DEWFORD_TOWN_POKEMON_CENTER_1F 3 +#define MAP_GROUP_DEWFORD_TOWN_POKEMON_CENTER_2F 3 +#define MAP_GROUP_DEWFORD_TOWN_GYM 3 +#define MAP_GROUP_DEWFORD_TOWN_HALL 3 +#define MAP_GROUP_DEWFORD_TOWN_HOUSE2 3 + +//-------------------------------------------------- +// Map Group 4 +//-------------------------------------------------- + +enum +{ + MAP_ID_LAVARIDGE_TOWN_HERB_SHOP, + MAP_ID_LAVARIDGE_TOWN_GYM_1F, + MAP_ID_LAVARIDGE_TOWN_GYM_B1F, + MAP_ID_LAVARIDGE_TOWN_HOUSE, + MAP_ID_LAVARIDGE_TOWN_MART, + MAP_ID_LAVARIDGE_TOWN_POKEMON_CENTER_1F, + MAP_ID_LAVARIDGE_TOWN_POKEMON_CENTER_2F, +}; + +#define MAP_GROUP_LAVARIDGE_TOWN_HERB_SHOP 4 +#define MAP_GROUP_LAVARIDGE_TOWN_GYM_1F 4 +#define MAP_GROUP_LAVARIDGE_TOWN_GYM_B1F 4 +#define MAP_GROUP_LAVARIDGE_TOWN_HOUSE 4 +#define MAP_GROUP_LAVARIDGE_TOWN_MART 4 +#define MAP_GROUP_LAVARIDGE_TOWN_POKEMON_CENTER_1F 4 +#define MAP_GROUP_LAVARIDGE_TOWN_POKEMON_CENTER_2F 4 + +//-------------------------------------------------- +// Map Group 5 +//-------------------------------------------------- + +enum +{ + MAP_ID_FALLARBOR_TOWN_MART, + MAP_ID_FALLARBOR_TOWN_TENT_LOBBY, + MAP_ID_FALLARBOR_TOWN_TENT_HALL, + MAP_ID_FALLARBOR_TOWN_TENT_ARENA, + MAP_ID_FALLARBOR_TOWN_POKEMON_CENTER_1F, + MAP_ID_FALLARBOR_TOWN_POKEMON_CENTER_2F, + MAP_ID_FALLARBOR_TOWN_HOUSE1, + MAP_ID_FALLARBOR_TOWN_HOUSE2, +}; + +#define MAP_GROUP_FALLARBOR_TOWN_MART 5 +#define MAP_GROUP_FALLARBOR_TOWN_TENT_LOBBY 5 +#define MAP_GROUP_FALLARBOR_TOWN_TENT_HALL 5 +#define MAP_GROUP_FALLARBOR_TOWN_TENT_ARENA 5 +#define MAP_GROUP_FALLARBOR_TOWN_POKEMON_CENTER_1F 5 +#define MAP_GROUP_FALLARBOR_TOWN_POKEMON_CENTER_2F 5 +#define MAP_GROUP_FALLARBOR_TOWN_HOUSE1 5 +#define MAP_GROUP_FALLARBOR_TOWN_HOUSE2 5 + +//-------------------------------------------------- +// Map Group 6 +//-------------------------------------------------- + +enum +{ + MAP_ID_VERDANTURF_TOWN_TENT_LOBBY, + MAP_ID_VERDANTURF_TOWN_TENT_HALL, + MAP_ID_VERDANTURF_TOWN_TENT_ARENA, + MAP_ID_VERDANTURF_TOWN_MART, + MAP_ID_VERDANTURF_TOWN_POKEMON_CENTER_1F, + MAP_ID_VERDANTURF_TOWN_POKEMON_CENTER_2F, + MAP_ID_VERDANTURF_TOWN_WANDAS_HOUSE, + MAP_ID_VERDANTURF_TOWN_FRIENDSHIP_RATERS_HOUSE, + MAP_ID_VERDANTURF_TOWN_HOUSE, +}; + +#define MAP_GROUP_VERDANTURF_TOWN_TENT_LOBBY 6 +#define MAP_GROUP_VERDANTURF_TOWN_TENT_HALL 6 +#define MAP_GROUP_VERDANTURF_TOWN_TENT_ARENA 6 +#define MAP_GROUP_VERDANTURF_TOWN_MART 6 +#define MAP_GROUP_VERDANTURF_TOWN_POKEMON_CENTER_1F 6 +#define MAP_GROUP_VERDANTURF_TOWN_POKEMON_CENTER_2F 6 +#define MAP_GROUP_VERDANTURF_TOWN_WANDAS_HOUSE 6 +#define MAP_GROUP_VERDANTURF_TOWN_FRIENDSHIP_RATERS_HOUSE 6 +#define MAP_GROUP_VERDANTURF_TOWN_HOUSE 6 + +//-------------------------------------------------- +// Map Group 7 +//-------------------------------------------------- + +enum +{ + MAP_ID_PACIFIDLOG_TOWN_POKEMON_CENTER_1F, + MAP_ID_PACIFIDLOG_TOWN_POKEMON_CENTER_2F, + MAP_ID_PACIFIDLOG_TOWN_HOUSE1, + MAP_ID_PACIFIDLOG_TOWN_HOUSE2, + MAP_ID_PACIFIDLOG_TOWN_HOUSE3, + MAP_ID_PACIFIDLOG_TOWN_HOUSE4, + MAP_ID_PACIFIDLOG_TOWN_HOUSE5, +}; + +#define MAP_GROUP_PACIFIDLOG_TOWN_POKEMON_CENTER_1F 7 +#define MAP_GROUP_PACIFIDLOG_TOWN_POKEMON_CENTER_2F 7 +#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE1 7 +#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE2 7 +#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE3 7 +#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE4 7 +#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE5 7 + +//-------------------------------------------------- +// Map Group 8 +//-------------------------------------------------- + +enum +{ + MAP_ID_PETALBURG_CITY_WALLYS_HOUSE, + MAP_ID_PETALBURG_CITY_GYM, + MAP_ID_PETALBURG_CITY_HOUSE1, + MAP_ID_PETALBURG_CITY_HOUSE2, + MAP_ID_PETALBURG_CITY_POKEMON_CENTER_1F, + MAP_ID_PETALBURG_CITY_POKEMON_CENTER_2F, + MAP_ID_PETALBURG_CITY_MART, +}; + +#define MAP_GROUP_PETALBURG_CITY_WALLYS_HOUSE 8 +#define MAP_GROUP_PETALBURG_CITY_GYM 8 +#define MAP_GROUP_PETALBURG_CITY_HOUSE1 8 +#define MAP_GROUP_PETALBURG_CITY_HOUSE2 8 +#define MAP_GROUP_PETALBURG_CITY_POKEMON_CENTER_1F 8 +#define MAP_GROUP_PETALBURG_CITY_POKEMON_CENTER_2F 8 +#define MAP_GROUP_PETALBURG_CITY_MART 8 + +//-------------------------------------------------- +// Map Group 9 +//-------------------------------------------------- + +enum +{ + MAP_ID_SLATEPORT_CITY_STERNS_SHIPYARD_1F, + MAP_ID_SLATEPORT_CITY_STERNS_SHIPYARD_2F, + MAP_ID_SLATEPORT_CITY_TENT_LOBBY, + MAP_ID_SLATEPORT_CITY_TENT_HALL, + MAP_ID_SLATEPORT_CITY_TENT_ARENA, + MAP_ID_SLATEPORT_CITY_HOUSE1, + MAP_ID_SLATEPORT_CITY_POKEMON_FAN_CLUB, + MAP_ID_SLATEPORT_CITY_OCEANIC_MUSEUM_1F, + MAP_ID_SLATEPORT_CITY_OCEANIC_MUSEUM_2F, + MAP_ID_SLATEPORT_CITY_HARBOR, + MAP_ID_SLATEPORT_CITY_HOUSE2, + MAP_ID_SLATEPORT_CITY_POKEMON_CENTER_1F, + MAP_ID_SLATEPORT_CITY_POKEMON_CENTER_2F, + MAP_ID_SLATEPORT_CITY_MART, +}; + +#define MAP_GROUP_SLATEPORT_CITY_STERNS_SHIPYARD_1F 9 +#define MAP_GROUP_SLATEPORT_CITY_STERNS_SHIPYARD_2F 9 +#define MAP_GROUP_SLATEPORT_CITY_TENT_LOBBY 9 +#define MAP_GROUP_SLATEPORT_CITY_TENT_HALL 9 +#define MAP_GROUP_SLATEPORT_CITY_TENT_ARENA 9 +#define MAP_GROUP_SLATEPORT_CITY_HOUSE1 9 +#define MAP_GROUP_SLATEPORT_CITY_POKEMON_FAN_CLUB 9 +#define MAP_GROUP_SLATEPORT_CITY_OCEANIC_MUSEUM_1F 9 +#define MAP_GROUP_SLATEPORT_CITY_OCEANIC_MUSEUM_2F 9 +#define MAP_GROUP_SLATEPORT_CITY_HARBOR 9 +#define MAP_GROUP_SLATEPORT_CITY_HOUSE2 9 +#define MAP_GROUP_SLATEPORT_CITY_POKEMON_CENTER_1F 9 +#define MAP_GROUP_SLATEPORT_CITY_POKEMON_CENTER_2F 9 +#define MAP_GROUP_SLATEPORT_CITY_MART 9 + +//-------------------------------------------------- +// Map Group 10 +//-------------------------------------------------- + +enum +{ + MAP_ID_MAUVILLE_CITY_GYM, + MAP_ID_MAUVILLE_CITY_BIKE_SHOP, + MAP_ID_MAUVILLE_CITY_HOUSE1, + MAP_ID_MAUVILLE_CITY_GAME_CORNER, + MAP_ID_MAUVILLE_CITY_HOUSE2, + MAP_ID_MAUVILLE_CITY_POKEMON_CENTER_1F, + MAP_ID_MAUVILLE_CITY_POKEMON_CENTER_2F, + MAP_ID_MAUVILLE_CITY_MART, +}; + +#define MAP_GROUP_MAUVILLE_CITY_GYM 10 +#define MAP_GROUP_MAUVILLE_CITY_BIKE_SHOP 10 +#define MAP_GROUP_MAUVILLE_CITY_HOUSE1 10 +#define MAP_GROUP_MAUVILLE_CITY_GAME_CORNER 10 +#define MAP_GROUP_MAUVILLE_CITY_HOUSE2 10 +#define MAP_GROUP_MAUVILLE_CITY_POKEMON_CENTER_1F 10 +#define MAP_GROUP_MAUVILLE_CITY_POKEMON_CENTER_2F 10 +#define MAP_GROUP_MAUVILLE_CITY_MART 10 + +//-------------------------------------------------- +// Map Group 11 +//-------------------------------------------------- + +enum +{ + MAP_ID_RUSTBORO_CITY_DEVON_CORP_1F, + MAP_ID_RUSTBORO_CITY_DEVON_CORP_2F, + MAP_ID_RUSTBORO_CITY_DEVON_CORP_3F, + MAP_ID_RUSTBORO_CITY_GYM, + MAP_ID_RUSTBORO_CITY_POKEMON_SCHOOL, + MAP_ID_RUSTBORO_CITY_POKEMON_CENTER_1F, + MAP_ID_RUSTBORO_CITY_POKEMON_CENTER_2F, + MAP_ID_RUSTBORO_CITY_MART, + MAP_ID_RUSTBORO_CITY_FLAT1_1F, + MAP_ID_RUSTBORO_CITY_FLAT1_2F, + MAP_ID_RUSTBORO_CITY_HOUSE1, + MAP_ID_RUSTBORO_CITY_CUTTERS_HOUSE, + MAP_ID_RUSTBORO_CITY_HOUSE2, + MAP_ID_RUSTBORO_CITY_FLAT2_1F, + MAP_ID_RUSTBORO_CITY_FLAT2_2F, + MAP_ID_RUSTBORO_CITY_FLAT2_3F, + MAP_ID_RUSTBORO_CITY_HOUSE3, +}; + +#define MAP_GROUP_RUSTBORO_CITY_DEVON_CORP_1F 11 +#define MAP_GROUP_RUSTBORO_CITY_DEVON_CORP_2F 11 +#define MAP_GROUP_RUSTBORO_CITY_DEVON_CORP_3F 11 +#define MAP_GROUP_RUSTBORO_CITY_GYM 11 +#define MAP_GROUP_RUSTBORO_CITY_POKEMON_SCHOOL 11 +#define MAP_GROUP_RUSTBORO_CITY_POKEMON_CENTER_1F 11 +#define MAP_GROUP_RUSTBORO_CITY_POKEMON_CENTER_2F 11 +#define MAP_GROUP_RUSTBORO_CITY_MART 11 +#define MAP_GROUP_RUSTBORO_CITY_FLAT1_1F 11 +#define MAP_GROUP_RUSTBORO_CITY_FLAT1_2F 11 +#define MAP_GROUP_RUSTBORO_CITY_HOUSE1 11 +#define MAP_GROUP_RUSTBORO_CITY_CUTTERS_HOUSE 11 +#define MAP_GROUP_RUSTBORO_CITY_HOUSE2 11 +#define MAP_GROUP_RUSTBORO_CITY_FLAT2_1F 11 +#define MAP_GROUP_RUSTBORO_CITY_FLAT2_2F 11 +#define MAP_GROUP_RUSTBORO_CITY_FLAT2_3F 11 +#define MAP_GROUP_RUSTBORO_CITY_HOUSE3 11 + +//-------------------------------------------------- +// Map Group 12 +//-------------------------------------------------- + +enum +{ + MAP_ID_FORTREE_CITY_HOUSE1, + MAP_ID_FORTREE_CITY_GYM, + MAP_ID_FORTREE_CITY_POKEMON_CENTER_1F, + MAP_ID_FORTREE_CITY_POKEMON_CENTER_2F, + MAP_ID_FORTREE_CITY_MART, + MAP_ID_FORTREE_CITY_HOUSE2, + MAP_ID_FORTREE_CITY_HOUSE3, + MAP_ID_FORTREE_CITY_HOUSE4, + MAP_ID_FORTREE_CITY_HOUSE5, + MAP_ID_FORTREE_CITY_DECORATION_SHOP, +}; + +#define MAP_GROUP_FORTREE_CITY_HOUSE1 12 +#define MAP_GROUP_FORTREE_CITY_GYM 12 +#define MAP_GROUP_FORTREE_CITY_POKEMON_CENTER_1F 12 +#define MAP_GROUP_FORTREE_CITY_POKEMON_CENTER_2F 12 +#define MAP_GROUP_FORTREE_CITY_MART 12 +#define MAP_GROUP_FORTREE_CITY_HOUSE2 12 +#define MAP_GROUP_FORTREE_CITY_HOUSE3 12 +#define MAP_GROUP_FORTREE_CITY_HOUSE4 12 +#define MAP_GROUP_FORTREE_CITY_HOUSE5 12 +#define MAP_GROUP_FORTREE_CITY_DECORATION_SHOP 12 + +//-------------------------------------------------- +// Map Group 13 +//-------------------------------------------------- + +enum +{ + MAP_ID_LILYCOVE_CITY_COVE_LILY_MOTEL_1F, + MAP_ID_LILYCOVE_CITY_COVE_LILY_MOTEL_2F, + MAP_ID_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F, + MAP_ID_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F, + MAP_ID_LILYCOVE_CITY_CONTEST_LOBBY, + MAP_ID_LILYCOVE_CITY_CONTEST_HALL, + MAP_ID_LILYCOVE_CITY_POKEMON_CENTER_1F, + MAP_ID_LILYCOVE_CITY_POKEMON_CENTER_2F, + MAP_ID_LILYCOVE_CITY_UNUSED_MART, + MAP_ID_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB, + MAP_ID_LILYCOVE_CITY_HARBOR, + MAP_ID_LILYCOVE_CITY_MOVE_DELETERS_HOUSE, + MAP_ID_LILYCOVE_CITY_HOUSE1, + MAP_ID_LILYCOVE_CITY_HOUSE2, + MAP_ID_LILYCOVE_CITY_HOUSE3, + MAP_ID_LILYCOVE_CITY_HOUSE4, + MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_1F, + MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_2F, + MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_3F, + MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_4F, + MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_5F, + MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP, + MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR, +}; + +#define MAP_GROUP_LILYCOVE_CITY_COVE_LILY_MOTEL_1F 13 +#define MAP_GROUP_LILYCOVE_CITY_COVE_LILY_MOTEL_2F 13 +#define MAP_GROUP_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F 13 +#define MAP_GROUP_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F 13 +#define MAP_GROUP_LILYCOVE_CITY_CONTEST_LOBBY 13 +#define MAP_GROUP_LILYCOVE_CITY_CONTEST_HALL 13 +#define MAP_GROUP_LILYCOVE_CITY_POKEMON_CENTER_1F 13 +#define MAP_GROUP_LILYCOVE_CITY_POKEMON_CENTER_2F 13 +#define MAP_GROUP_LILYCOVE_CITY_UNUSED_MART 13 +#define MAP_GROUP_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB 13 +#define MAP_GROUP_LILYCOVE_CITY_HARBOR 13 +#define MAP_GROUP_LILYCOVE_CITY_MOVE_DELETERS_HOUSE 13 +#define MAP_GROUP_LILYCOVE_CITY_HOUSE1 13 +#define MAP_GROUP_LILYCOVE_CITY_HOUSE2 13 +#define MAP_GROUP_LILYCOVE_CITY_HOUSE3 13 +#define MAP_GROUP_LILYCOVE_CITY_HOUSE4 13 +#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_1F 13 +#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_2F 13 +#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_3F 13 +#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_4F 13 +#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_5F 13 +#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP 13 +#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR 13 + +//-------------------------------------------------- +// Map Group 14 +//-------------------------------------------------- + +enum +{ + MAP_ID_MOSSDEEP_CITY_GYM, + MAP_ID_MOSSDEEP_CITY_HOUSE1, + MAP_ID_MOSSDEEP_CITY_HOUSE2, + MAP_ID_MOSSDEEP_CITY_POKEMON_CENTER_1F, + MAP_ID_MOSSDEEP_CITY_POKEMON_CENTER_2F, + MAP_ID_MOSSDEEP_CITY_MART, + MAP_ID_MOSSDEEP_CITY_HOUSE3, + MAP_ID_MOSSDEEP_CITY_STEVENS_HOUSE, + MAP_ID_MOSSDEEP_CITY_HOUSE4, + MAP_ID_MOSSDEEP_CITY_SPACE_CENTER_1F, + MAP_ID_MOSSDEEP_CITY_SPACE_CENTER_2F, + MAP_ID_MOSSDEEP_CITY_GAME_CORNER_1F, + MAP_ID_MOSSDEEP_CITY_GAME_CORNER_B1F, +}; + +#define MAP_GROUP_MOSSDEEP_CITY_GYM 14 +#define MAP_GROUP_MOSSDEEP_CITY_HOUSE1 14 +#define MAP_GROUP_MOSSDEEP_CITY_HOUSE2 14 +#define MAP_GROUP_MOSSDEEP_CITY_POKEMON_CENTER_1F 14 +#define MAP_GROUP_MOSSDEEP_CITY_POKEMON_CENTER_2F 14 +#define MAP_GROUP_MOSSDEEP_CITY_MART 14 +#define MAP_GROUP_MOSSDEEP_CITY_HOUSE3 14 +#define MAP_GROUP_MOSSDEEP_CITY_STEVENS_HOUSE 14 +#define MAP_GROUP_MOSSDEEP_CITY_HOUSE4 14 +#define MAP_GROUP_MOSSDEEP_CITY_SPACE_CENTER_1F 14 +#define MAP_GROUP_MOSSDEEP_CITY_SPACE_CENTER_2F 14 +#define MAP_GROUP_MOSSDEEP_CITY_GAME_CORNER_1F 14 +#define MAP_GROUP_MOSSDEEP_CITY_GAME_CORNER_B1F 14 + +//-------------------------------------------------- +// Map Group 15 +//-------------------------------------------------- + +enum +{ + MAP_ID_SOOTOPOLIS_CITY_GYM_1F, + MAP_ID_SOOTOPOLIS_CITY_GYM_B1F, + MAP_ID_SOOTOPOLIS_CITY_POKEMON_CENTER_1F, + MAP_ID_SOOTOPOLIS_CITY_POKEMON_CENTER_2F, + MAP_ID_SOOTOPOLIS_CITY_MART, + MAP_ID_SOOTOPOLIS_CITY_HOUSE1, + MAP_ID_SOOTOPOLIS_CITY_HOUSE2, + MAP_ID_SOOTOPOLIS_CITY_HOUSE3, + MAP_ID_SOOTOPOLIS_CITY_HOUSE4, + MAP_ID_SOOTOPOLIS_CITY_HOUSE5, + MAP_ID_SOOTOPOLIS_CITY_HOUSE6, + MAP_ID_SOOTOPOLIS_CITY_HOUSE7, + MAP_ID_SOOTOPOLIS_CITY_HOUSE8, + MAP_ID_SOOTOPOLIS_CITY_BATTLEHOUSE_1, + MAP_ID_SOOTOPOLIS_CITY_BATTLEHOUSE_2, +}; + +#define MAP_GROUP_SOOTOPOLIS_CITY_GYM_1F 15 +#define MAP_GROUP_SOOTOPOLIS_CITY_GYM_B1F 15 +#define MAP_GROUP_SOOTOPOLIS_CITY_POKEMON_CENTER_1F 15 +#define MAP_GROUP_SOOTOPOLIS_CITY_POKEMON_CENTER_2F 15 +#define MAP_GROUP_SOOTOPOLIS_CITY_MART 15 +#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE1 15 +#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE2 15 +#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE3 15 +#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE4 15 +#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE5 15 +#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE6 15 +#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE7 15 +#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE8 15 +#define MAP_ID_SOOTOPOLIS_CITY_BATTLEHOUSE_1 15 +#define MAP_ID_SOOTOPOLIS_CITY_BATTLEHOUSE_2 15 +//-------------------------------------------------- +// Map Group 16 +//-------------------------------------------------- + +enum +{ + MAP_ID_EVER_GRANDE_CITY_SIDNEYS_ROOM, + MAP_ID_EVER_GRANDE_CITY_PHOEBES_ROOM, + MAP_ID_EVER_GRANDE_CITY_GLACIAS_ROOM, + MAP_ID_EVER_GRANDE_CITY_DRAKES_ROOM, + MAP_ID_EVER_GRANDE_CITY_CHAMPIONS_ROOM, + MAP_ID_EVER_GRANDE_CITY_CORRIDOR1, + MAP_ID_EVER_GRANDE_CITY_CORRIDOR2, + MAP_ID_EVER_GRANDE_CITY_CORRIDOR3, + MAP_ID_EVER_GRANDE_CITY_CORRIDOR4, + MAP_ID_EVER_GRANDE_CITY_CORRIDOR5, + MAP_ID_EVER_GRANDE_CITY_POKEMON_LEAGUE_1F, + MAP_ID_EVER_GRANDE_CITY_HALL_OF_FAME, + MAP_ID_EVER_GRANDE_CITY_POKEMON_CENTER_1F, + MAP_ID_EVER_GRANDE_CITY_POKEMON_CENTER_2F, + MAP_ID_EVER_GRANDE_CITY_POKEMON_LEAGUE_2F, +}; + +#define MAP_GROUP_EVER_GRANDE_CITY_SIDNEYS_ROOM 16 +#define MAP_GROUP_EVER_GRANDE_CITY_PHOEBES_ROOM 16 +#define MAP_GROUP_EVER_GRANDE_CITY_GLACIAS_ROOM 16 +#define MAP_GROUP_EVER_GRANDE_CITY_DRAKES_ROOM 16 +#define MAP_GROUP_EVER_GRANDE_CITY_CHAMPIONS_ROOM 16 +#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR1 16 +#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR2 16 +#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR3 16 +#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR4 16 +#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR5 16 +#define MAP_GROUP_EVER_GRANDE_CITY_POKEMON_LEAGUE_1F 16 +#define MAP_GROUP_EVER_GRANDE_CITY_HALL_OF_FAME 16 +#define MAP_GROUP_EVER_GRANDE_CITY_POKEMON_CENTER_1F 16 +#define MAP_GROUP_EVER_GRANDE_CITY_POKEMON_CENTER_2F 16 +#define MAP_GROUP_EVER_GRANDE_CITY_POKEMON_LEAGUE_2F 16 + +//-------------------------------------------------- +// Map Group 17 +//-------------------------------------------------- + +enum +{ + MAP_ID_ROUTE104_MR_BRINEYS_HOUSE, + MAP_ID_ROUTE104_PRETTY_PETAL_FLOWER_SHOP, +}; + +#define MAP_GROUP_ROUTE104_MR_BRINEYS_HOUSE 17 +#define MAP_GROUP_ROUTE104_PRETTY_PETAL_FLOWER_SHOP 17 + +//-------------------------------------------------- +// Map Group 18 +//-------------------------------------------------- + +enum +{ + MAP_ID_ROUTE111_WINSTRATE_FAMILYS_HOUSE, + MAP_ID_ROUTE111_OLD_LADYS_REST_STOP, +}; + +#define MAP_GROUP_ROUTE111_WINSTRATE_FAMILYS_HOUSE 18 +#define MAP_GROUP_ROUTE111_OLD_LADYS_REST_STOP 18 + +//-------------------------------------------------- +// Map Group 19 +//-------------------------------------------------- + +enum +{ + MAP_ID_ROUTE112_CABLE_CAR_STATION, + MAP_ID_MT_CHIMNEY_CABLE_CAR_STATION, +}; + +#define MAP_GROUP_ROUTE112_CABLE_CAR_STATION 19 +#define MAP_GROUP_MT_CHIMNEY_CABLE_CAR_STATION 19 + +//-------------------------------------------------- +// Map Group 20 +//-------------------------------------------------- + +enum +{ + MAP_ID_ROUTE114_FOSSIL_MANIACS_HOUSE, + MAP_ID_ROUTE114_FOSSIL_MANIACS_TUNNEL, + MAP_ID_ROUTE114_LANETTES_HOUSE, +}; + +#define MAP_GROUP_ROUTE114_FOSSIL_MANIACS_HOUSE 20 +#define MAP_GROUP_ROUTE114_FOSSIL_MANIACS_TUNNEL 20 +#define MAP_GROUP_ROUTE114_LANETTES_HOUSE 20 + +//-------------------------------------------------- +// Map Group 21 +//-------------------------------------------------- + +enum +{ + MAP_ID_ROUTE116_TUNNELERS_REST_HOUSE, +}; + +#define MAP_GROUP_ROUTE116_TUNNELERS_REST_HOUSE 21 + +//-------------------------------------------------- +// Map Group 22 +//-------------------------------------------------- + +enum +{ + MAP_ID_ROUTE117_POKEMON_DAY_CARE, +}; + +#define MAP_GROUP_ROUTE117_POKEMON_DAY_CARE 22 + +//-------------------------------------------------- +// Map Group 23 +//-------------------------------------------------- + +enum +{ + MAP_ID_ROUTE121_SAFARI_ZONE_ENTRANCE, +}; + +#define MAP_GROUP_ROUTE121_SAFARI_ZONE_ENTRANCE 23 + +//-------------------------------------------------- +// Map Group 24 +//-------------------------------------------------- + +enum +{ + MAP_ID_METEOR_FALLS_1F_1R, + MAP_ID_METEOR_FALLS_1F_2R, + MAP_ID_METEOR_FALLS_B1F_1R, + MAP_ID_METEOR_FALLS_B1F_2R, + MAP_ID_RUSTURF_TUNNEL, + MAP_ID_UNDERWATER_SOOTOPOLIS_CITY, + MAP_ID_DESERT_RUINS, + MAP_ID_GRANITE_CAVE_1F, + MAP_ID_GRANITE_CAVE_B1F, + MAP_ID_GRANITE_CAVE_B2F, + MAP_ID_GRANITE_CAVE_STEVENS_ROOM, + MAP_ID_PETALBURG_WOODS, + MAP_ID_MT_CHIMNEY, + MAP_ID_JAGGED_PASS, + MAP_ID_FIERY_PATH, + MAP_ID_MT_PYRE_1F, + MAP_ID_MT_PYRE_2F, + MAP_ID_MT_PYRE_3F, + MAP_ID_MT_PYRE_4F, + MAP_ID_MT_PYRE_5F, + MAP_ID_MT_PYRE_6F, + MAP_ID_MT_PYRE_EXTERIOR, + MAP_ID_MT_PYRE_SUMMIT, + MAP_ID_AQUA_HIDEOUT_1F, + MAP_ID_AQUA_HIDEOUT_B1F, + MAP_ID_AQUA_HIDEOUT_B2F, + MAP_ID_UNDERWATER_SEAFLOOR_CAVERN, + MAP_ID_SEAFLOOR_CAVERN_ENTRANCE, + MAP_ID_SEAFLOOR_CAVERN_ROOM1, + MAP_ID_SEAFLOOR_CAVERN_ROOM2, + MAP_ID_SEAFLOOR_CAVERN_ROOM3, + MAP_ID_SEAFLOOR_CAVERN_ROOM4, + MAP_ID_SEAFLOOR_CAVERN_ROOM5, + MAP_ID_SEAFLOOR_CAVERN_ROOM6, + MAP_ID_SEAFLOOR_CAVERN_ROOM7, + MAP_ID_SEAFLOOR_CAVERN_ROOM8, + MAP_ID_SEAFLOOR_CAVERN_ROOM9, + MAP_ID_CAVE_OF_ORIGIN_ENTRANCE, + MAP_ID_CAVE_OF_ORIGIN_1F, + MAP_ID_CAVE_OF_ORIGIN_B1F, + MAP_ID_CAVE_OF_ORIGIN_B2F, + MAP_ID_CAVE_OF_ORIGIN_B3F, + MAP_ID_CAVE_OF_ORIGIN_B4F, + MAP_ID_VICTORY_ROAD_1F, + MAP_ID_VICTORY_ROAD_B1F, + MAP_ID_VICTORY_ROAD_B2F, + MAP_ID_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM, + MAP_ID_SHOAL_CAVE_LOW_TIDE_INNER_ROOM, + MAP_ID_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM, + MAP_ID_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM, + MAP_ID_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM, + MAP_ID_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM, + MAP_ID_NEW_MAUVILLE_ENTRANCE, + MAP_ID_NEW_MAUVILLE_INSIDE, + MAP_ID_ABANDONED_SHIP_DECK, + MAP_ID_ABANDONED_SHIP_CORRIDORS_1F, + MAP_ID_ABANDONED_SHIP_ROOMS_1F, + MAP_ID_ABANDONED_SHIP_CORRIDORS_B1F, + MAP_ID_ABANDONED_SHIP_ROOMS_B1F, + MAP_ID_ABANDONED_SHIP_ROOMS2_B1F, + MAP_ID_ABANDONED_SHIP_UNDERWATER1, + MAP_ID_ABANDONED_SHIP_ROOM_B1F, + MAP_ID_ABANDONED_SHIP_ROOMS2_1F, + MAP_ID_ABANDONED_SHIP_CAPTAINS_OFFICE, + MAP_ID_ABANDONED_SHIP_UNDERWATER2, + MAP_ID_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS, + MAP_ID_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS, + MAP_ID_ISLAND_CAVE, + MAP_ID_ANCIENT_TOMB, + MAP_ID_UNDERWATER_ROUTE134, + MAP_ID_UNDERWATER_SEALED_CHAMBER, + MAP_ID_SEALED_CHAMBER_OUTER_ROOM, + MAP_ID_SEALED_CHAMBER_INNER_ROOM, + MAP_ID_SCORCHED_SLAB, + MAP_ID_UNUSED_AQUA_HIDEOUT_1F, + MAP_ID_UNUSED_AQUA_HIDEOUT_B1F, + MAP_ID_UNUSED_AQUA_HIDEOUT_B2F, + MAP_ID_SKY_PILLAR_ENTRANCE, + MAP_ID_SKY_PILLAR_OUTSIDE, + MAP_ID_SKY_PILLAR_1F, + MAP_ID_SKY_PILLAR_2F, + MAP_ID_SKY_PILLAR_3F, + MAP_ID_SKY_PILLAR_4F, + MAP_ID_SHOAL_CAVE_LOW_TIDE_ICE_ROOM, + MAP_ID_SKY_PILLAR_5F, + MAP_ID_SKY_PILLAR_TOP, + MAP_ID_MAGMA_HIDEOUT_ENTRANCE, + MAP_ID_MAGMA_HIDEOUT_B1F, + MAP_ID_MAGMA_HIDEOUT_B2F, + MAP_ID_MAGMA_HIDEOUT_B3F, + MAP_ID_MAGMA_HIDEOUT_B4F, + MAP_ID_MAGMA_HIDEOUT_B5F, + MAP_ID_MAGMA_HIDEOUT_B6F, + MAP_ID_MAGMA_HIDEOUT_B7F, + MAP_ID_MIRAGE_TOWER_1F, + MAP_ID_MIRAGE_TOWER_2F, + MAP_ID_MIRAGE_TOWER_3F, + MAP_ID_MIRAGE_TOWER_4F, + MAP_ID_DESERT_UNDERPASS, + MAP_ID_ARTISAN_CAVE_1F, + MAP_ID_ARTISAN_CAVE_2F, + MAP_ID_UNKNOWN_UNDERWATER, + MAP_ID_MARINE_CAVE_1F, + MAP_ID_MARINE_CAVE_2F, + MAP_ID_TERRA_CAVE_1F, + MAP_ID_TERRA_CAVE_2F, + MAP_ID_ALTERING_CAVE, + MAP_ID_METEOR_FALLS_B1F_3R, +}; + +#define MAP_GROUP_METEOR_FALLS_1F_1R 24 +#define MAP_GROUP_METEOR_FALLS_1F_2R 24 +#define MAP_GROUP_METEOR_FALLS_B1F_1R 24 +#define MAP_GROUP_METEOR_FALLS_B1F_2R 24 +#define MAP_GROUP_RUSTURF_TUNNEL 24 +#define MAP_GROUP_UNDERWATER_SOOTOPOLIS_CITY 24 +#define MAP_GROUP_DESERT_RUINS 24 +#define MAP_GROUP_GRANITE_CAVE_1F 24 +#define MAP_GROUP_GRANITE_CAVE_B1F 24 +#define MAP_GROUP_GRANITE_CAVE_B2F 24 +#define MAP_GROUP_GRANITE_CAVE_STEVENS_ROOM 24 +#define MAP_GROUP_PETALBURG_WOODS 24 +#define MAP_GROUP_MT_CHIMNEY 24 +#define MAP_GROUP_JAGGED_PASS 24 +#define MAP_GROUP_FIERY_PATH 24 +#define MAP_GROUP_MT_PYRE_1F 24 +#define MAP_GROUP_MT_PYRE_2F 24 +#define MAP_GROUP_MT_PYRE_3F 24 +#define MAP_GROUP_MT_PYRE_4F 24 +#define MAP_GROUP_MT_PYRE_5F 24 +#define MAP_GROUP_MT_PYRE_6F 24 +#define MAP_GROUP_MT_PYRE_EXTERIOR 24 +#define MAP_GROUP_MT_PYRE_SUMMIT 24 +#define MAP_GROUP_AQUA_HIDEOUT_1F 24 +#define MAP_GROUP_AQUA_HIDEOUT_B1F 24 +#define MAP_GROUP_AQUA_HIDEOUT_B2F 24 +#define MAP_GROUP_UNDERWATER_SEAFLOOR_CAVERN 24 +#define MAP_GROUP_SEAFLOOR_CAVERN_ENTRANCE 24 +#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM1 24 +#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM2 24 +#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM3 24 +#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM4 24 +#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM5 24 +#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM6 24 +#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM7 24 +#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM8 24 +#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM9 24 +#define MAP_GROUP_CAVE_OF_ORIGIN_ENTRANCE 24 +#define MAP_GROUP_CAVE_OF_ORIGIN_1F 24 +#define MAP_GROUP_CAVE_OF_ORIGIN_B1F 24 +#define MAP_GROUP_CAVE_OF_ORIGIN_B2F 24 +#define MAP_GROUP_CAVE_OF_ORIGIN_B3F 24 +#define MAP_GROUP_CAVE_OF_ORIGIN_B4F 24 +#define MAP_GROUP_VICTORY_ROAD_1F 24 +#define MAP_GROUP_VICTORY_ROAD_B1F 24 +#define MAP_GROUP_VICTORY_ROAD_B2F 24 +#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM 24 +#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_INNER_ROOM 24 +#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM 24 +#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM 24 +#define MAP_GROUP_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM 24 +#define MAP_GROUP_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM 24 +#define MAP_GROUP_NEW_MAUVILLE_ENTRANCE 24 +#define MAP_GROUP_NEW_MAUVILLE_INSIDE 24 +#define MAP_GROUP_ABANDONED_SHIP_DECK 24 +#define MAP_GROUP_ABANDONED_SHIP_CORRIDORS_1F 24 +#define MAP_GROUP_ABANDONED_SHIP_ROOMS_1F 24 +#define MAP_GROUP_ABANDONED_SHIP_CORRIDORS_B1F 24 +#define MAP_GROUP_ABANDONED_SHIP_ROOMS_B1F 24 +#define MAP_GROUP_ABANDONED_SHIP_ROOMS2_B1F 24 +#define MAP_GROUP_ABANDONED_SHIP_UNDERWATER1 24 +#define MAP_GROUP_ABANDONED_SHIP_ROOM_B1F 24 +#define MAP_GROUP_ABANDONED_SHIP_ROOMS2_1F 24 +#define MAP_GROUP_ABANDONED_SHIP_CAPTAINS_OFFICE 24 +#define MAP_GROUP_ABANDONED_SHIP_UNDERWATER2 24 +#define MAP_GROUP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS 24 +#define MAP_GROUP_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS 24 +#define MAP_GROUP_ISLAND_CAVE 24 +#define MAP_GROUP_ANCIENT_TOMB 24 +#define MAP_GROUP_UNDERWATER_ROUTE134 24 +#define MAP_GROUP_UNDERWATER_SEALED_CHAMBER 24 +#define MAP_GROUP_SEALED_CHAMBER_OUTER_ROOM 24 +#define MAP_GROUP_SEALED_CHAMBER_INNER_ROOM 24 +#define MAP_GROUP_SCORCHED_SLAB 24 +#define MAP_GROUP_UNUSED_AQUA_HIDEOUT_1F 24 +#define MAP_GROUP_UNUSED_AQUA_HIDEOUT_B1F 24 +#define MAP_GROUP_UNUSED_AQUA_HIDEOUT_B2F 24 +#define MAP_GROUP_SKY_PILLAR_ENTRANCE 24 +#define MAP_GROUP_SKY_PILLAR_OUTSIDE 24 +#define MAP_GROUP_SKY_PILLAR_1F 24 +#define MAP_GROUP_SKY_PILLAR_2F 24 +#define MAP_GROUP_SKY_PILLAR_3F 24 +#define MAP_GROUP_SKY_PILLAR_4F 24 +#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_ICE_ROOM 24 +#define MAP_GROUP_SKY_PILLAR_5F 24 +#define MAP_GROUP_SKY_PILLAR_TOP 24 +#define MAP_GROUP_MAGMA_HIDEOUT_ENTRANCE 24 +#define MAP_GROUP_MAGMA_HIDEOUT_B1F 24 +#define MAP_GROUP_MAGMA_HIDEOUT_B2F 24 +#define MAP_GROUP_MAGMA_HIDEOUT_B3F 24 +#define MAP_GROUP_MAGMA_HIDEOUT_B4F 24 +#define MAP_GROUP_MAGMA_HIDEOUT_B5F 24 +#define MAP_GROUP_MAGMA_HIDEOUT_B6F 24 +#define MAP_GROUP_MAGMA_HIDEOUT_B7F 24 +#define MAP_GROUP_MIRAGE_TOWER_1F 24 +#define MAP_GROUP_MIRAGE_TOWER_2F 24 +#define MAP_GROUP_MIRAGE_TOWER_3F 24 +#define MAP_GROUP_MIRAGE_TOWER_4F 24 +#define MAP_GROUP_DESERT_UNDERPASS 24 +#define MAP_GROUP_ARTISAN_CAVE_1F 24 +#define MAP_GROUP_ARTISAN_CAVE_2F 24 +#define MAP_GROUP_UNKNOWN_UNDERWATER 24 +#define MAP_GROUP_MARINE_CAVE_1F 24 +#define MAP_GROUP_MARINE_CAVE_2F 24 +#define MAP_GROUP_TERRA_CAVE_1F 24 +#define MAP_GROUP_TERRA_CAVE_2F 24 +#define MAP_GROUP_ALTERING_CAVE 24 +#define MAP_GROUP_METEOR_FALLS_B1F_3R 24 + +//-------------------------------------------------- +// Map Group 25 +//-------------------------------------------------- + +enum +{ + MAP_ID_SECRET_BASE_RED_CAVE1, + MAP_ID_SECRET_BASE_BROWN_CAVE1, + MAP_ID_SECRET_BASE_BLUE_CAVE1, + MAP_ID_SECRET_BASE_YELLOW_CAVE1, + MAP_ID_SECRET_BASE_TREE1, + MAP_ID_SECRET_BASE_SHRUB1, + MAP_ID_SECRET_BASE_RED_CAVE2, + MAP_ID_SECRET_BASE_BROWN_CAVE2, + MAP_ID_SECRET_BASE_BLUE_CAVE2, + MAP_ID_SECRET_BASE_YELLOW_CAVE2, + MAP_ID_SECRET_BASE_TREE2, + MAP_ID_SECRET_BASE_SHRUB2, + MAP_ID_SECRET_BASE_RED_CAVE3, + MAP_ID_SECRET_BASE_BROWN_CAVE3, + MAP_ID_SECRET_BASE_BLUE_CAVE3, + MAP_ID_SECRET_BASE_YELLOW_CAVE3, + MAP_ID_SECRET_BASE_TREE3, + MAP_ID_SECRET_BASE_SHRUB3, + MAP_ID_SECRET_BASE_RED_CAVE4, + MAP_ID_SECRET_BASE_BROWN_CAVE4, + MAP_ID_SECRET_BASE_BLUE_CAVE4, + MAP_ID_SECRET_BASE_YELLOW_CAVE4, + MAP_ID_SECRET_BASE_TREE4, + MAP_ID_SECRET_BASE_SHRUB4, + MAP_ID_SINGLE_BATTLE_COLOSSEUM, + MAP_ID_TRADE_CENTER, + MAP_ID_RECORD_CORNER, + MAP_ID_DOUBLE_BATTLE_COLOSSEUM, + MAP_ID_LINK_CONTEST_ROOM1, + MAP_ID_UNKNOWN_MAP_25_29, + MAP_ID_UNKNOWN_MAP_25_30, + MAP_ID_UNKNOWN_MAP_25_31, + MAP_ID_UNKNOWN_MAP_25_32, + MAP_ID_UNKNOWN_MAP_25_33, + MAP_ID_UNKNOWN_MAP_25_34, + MAP_ID_LINK_CONTEST_ROOM2, + MAP_ID_LINK_CONTEST_ROOM3, + MAP_ID_LINK_CONTEST_ROOM4, + MAP_ID_LINK_CONTEST_ROOM5, + MAP_ID_LINK_CONTEST_ROOM6, + MAP_ID_INSIDE_OF_TRUCK, + MAP_ID_SS_TIDAL_CORRIDOR, + MAP_ID_SS_TIDAL_LOWER_DECK, + MAP_ID_SS_TIDAL_ROOMS, + MAP_ID_TEST_ROOM_1, + MAP_ID_TEST_ROOM_2, + MAP_ID_TEST_ROOM_3, + MAP_ID_TEST_ROOM_4, + MAP_ID_TEST_ROOM_5, + MAP_ID_TEST_ROOM_6, + MAP_ID_TEST_ROOM_7, + MAP_ID_TEST_ROOM_8, + MAP_ID_TEST_ROOM_9, + MAP_ID_TEST_ROOM_10, + MAP_ID_TEST_ROOM_11, + MAP_ID_TEST_ROOM_12, + MAP_ID_TEST_ROOM_13, + MAP_ID_TEST_ROOM_14, + MAP_ID_TEST_ROOM_15, + MAP_ID_TEST_ROOM_16, + MAP_ID_UNION_ROOM, +}; + +#define MAP_GROUP_SECRET_BASE_RED_CAVE1 25 +#define MAP_GROUP_SECRET_BASE_BROWN_CAVE1 25 +#define MAP_GROUP_SECRET_BASE_BLUE_CAVE1 25 +#define MAP_GROUP_SECRET_BASE_YELLOW_CAVE1 25 +#define MAP_GROUP_SECRET_BASE_TREE1 25 +#define MAP_GROUP_SECRET_BASE_SHRUB1 25 +#define MAP_GROUP_SECRET_BASE_RED_CAVE2 25 +#define MAP_GROUP_SECRET_BASE_BROWN_CAVE2 25 +#define MAP_GROUP_SECRET_BASE_BLUE_CAVE2 25 +#define MAP_GROUP_SECRET_BASE_YELLOW_CAVE2 25 +#define MAP_GROUP_SECRET_BASE_TREE2 25 +#define MAP_GROUP_SECRET_BASE_SHRUB2 25 +#define MAP_GROUP_SECRET_BASE_RED_CAVE3 25 +#define MAP_GROUP_SECRET_BASE_BROWN_CAVE3 25 +#define MAP_GROUP_SECRET_BASE_BLUE_CAVE3 25 +#define MAP_GROUP_SECRET_BASE_YELLOW_CAVE3 25 +#define MAP_GROUP_SECRET_BASE_TREE3 25 +#define MAP_GROUP_SECRET_BASE_SHRUB3 25 +#define MAP_GROUP_SECRET_BASE_RED_CAVE4 25 +#define MAP_GROUP_SECRET_BASE_BROWN_CAVE4 25 +#define MAP_GROUP_SECRET_BASE_BLUE_CAVE4 25 +#define MAP_GROUP_SECRET_BASE_YELLOW_CAVE4 25 +#define MAP_GROUP_SECRET_BASE_TREE4 25 +#define MAP_GROUP_SECRET_BASE_SHRUB4 25 +#define MAP_GROUP_SINGLE_BATTLE_COLOSSEUM 25 +#define MAP_GROUP_TRADE_CENTER 25 +#define MAP_GROUP_RECORD_CORNER 25 +#define MAP_GROUP_DOUBLE_BATTLE_COLOSSEUM 25 +#define MAP_GROUP_LINK_CONTEST_ROOM1 25 +#define MAP_GROUP_UNKNOWN_MAP_25_29 25 +#define MAP_GROUP_UNKNOWN_MAP_25_30 25 +#define MAP_GROUP_UNKNOWN_MAP_25_31 25 +#define MAP_GROUP_UNKNOWN_MAP_25_32 25 +#define MAP_GROUP_UNKNOWN_MAP_25_33 25 +#define MAP_GROUP_UNKNOWN_MAP_25_34 25 +#define MAP_GROUP_LINK_CONTEST_ROOM2 25 +#define MAP_GROUP_LINK_CONTEST_ROOM3 25 +#define MAP_GROUP_LINK_CONTEST_ROOM4 25 +#define MAP_GROUP_LINK_CONTEST_ROOM5 25 +#define MAP_GROUP_LINK_CONTEST_ROOM6 25 +#define MAP_GROUP_INSIDE_OF_TRUCK 25 +#define MAP_GROUP_SS_TIDAL_CORRIDOR 25 +#define MAP_GROUP_SS_TIDAL_LOWER_DECK 25 +#define MAP_GROUP_SS_TIDAL_ROOMS 25 +#define MAP_GROUP_TEST_ROOM_1 25 +#define MAP_GROUP_TEST_ROOM_2 25 +#define MAP_GROUP_TEST_ROOM_3 25 +#define MAP_GROUP_TEST_ROOM_4 25 +#define MAP_GROUP_TEST_ROOM_5 25 +#define MAP_GROUP_TEST_ROOM_6 25 +#define MAP_GROUP_TEST_ROOM_7 25 +#define MAP_GROUP_TEST_ROOM_8 25 +#define MAP_GROUP_TEST_ROOM_9 25 +#define MAP_GROUP_TEST_ROOM_10 25 +#define MAP_GROUP_TEST_ROOM_11 25 +#define MAP_GROUP_TEST_ROOM_12 25 +#define MAP_GROUP_TEST_ROOM_13 25 +#define MAP_GROUP_TEST_ROOM_14 25 +#define MAP_GROUP_TEST_ROOM_15 25 +#define MAP_GROUP_TEST_ROOM_16 25 +#define MAP_GROUP_UNION_ROOM 25 +//-------------------------------------------------- +// Map Group 26 +//-------------------------------------------------- + +enum +{ + MAP_ID_SAFARI_ZONE_NORTHWEST, + MAP_ID_SAFARI_ZONE_NORTHEAST, + MAP_ID_SAFARI_ZONE_SOUTHWEST, + MAP_ID_SAFARI_ZONE_SOUTHEAST, + MAP_ID_BATTLE_FRONTIER_OUTSIDE_WEST, + MAP_ID_BATTLE_TOWER_LOBBY, + MAP_ID_BATTLE_TOWER_ELEVATOR, + MAP_ID_BATTLE_TOWER_CORRIDOR, + MAP_ID_BATTLE_TOWER_BATTLE_ROOM, + MAP_ID_SOUTHERN_ISLAND_EXTERIOR, + MAP_ID_SOUTHERN_ISLAND_INTERIOR, + MAP_ID_SAFARI_ZONE_REST_HOUSE, + MAP_ID_SAFARI_ZONE_EM_1, + MAP_ID_SAFARI_ZONE_EM_2, + MAP_ID_BATTLE_FRONTIER_OUTSIDE_EAST, + MAP_ID_BATTLE_FRONTIER_TAG_LINK, + MAP_ID_BATTLE_FRONTIER_TAG_LINK_CORRIDOR, + MAP_ID_BATTLE_FRONTIER_TAG_LINK_ARENA, + MAP_ID_BATTLE_DOME_LOBBY, + MAP_ID_BATTLE_DOME_CORRIDOR, + MAP_ID_BATTLE_DOME_ROOM, + MAP_ID_BATTLE_DOME_ARENA, + MAP_ID_BATTLE_PALACE_LOBBY, + MAP_ID_BATTLE_PALACE_CORRIDOR, + MAP_ID_BATTLE_PALACE_1F, + MAP_ID_BATTLE_PYRAMID_LOBBY, + MAP_ID_BATTLE_PYRAMID_UNKNOWN, + MAP_ID_BATTLE_PYRAMID_PEAK, + MAP_ID_BATTLE_ARENA_LOBBY, + MAP_ID_BATTLE_ARENA_CORRIDOR, + MAP_ID_BATTLE_ARENA_ARENA, + MAP_ID_BATTLE_FACTORY_LOBBY, + MAP_ID_BATTLE_FACTORY_CORRIDOR, + MAP_ID_BATTLE_FACTORY_ARENA, + MAP_ID_BATTLE_PALACE_2F, + MAP_ID_BATTLE_PALACE_3F, + MAP_ID_BATTLE_PALACE_4F, + MAP_ID_BATTLE_PALACE_5F, + MAP_ID_BATTLE_PALACE_6F, + MAP_ID_BATTLE_PALACE_TEST_ROOM, + MAP_ID_RANKING_HALL, + MAP_ID_STAT_RATER_HOUSE, + MAP_ID_BATTLE_FRONTIER_EXCHANGE, + MAP_ID_BATTLE_FRONTIER_MANIAC_HOUSE, + MAP_ID_BATTLE_FRONTIER_GAMBLING_HOUSE, + MAP_ID_BATTLE_FRONTIER_HOUSE1, + MAP_ID_BATTLE_FRONTIER_SCOTTS_HOUSE, + MAP_ID_BATTLE_FRONTIER_HOUSE2, + MAP_ID_BATTLE_FRONTIER_HOUSE3, + MAP_ID_BATTLE_FRONTIER_HOUSE4, + MAP_ID_BATTLE_FRONTIER_ENTRANCE_HALL, + MAP_ID_BATTLE_FRONTIER_HOUSE5, + MAP_ID_BATTLE_FRONTIER_UNUSED_HOUSE, + MAP_ID_BATTLE_FRONTIER_POKEMON_CENTER_1F, + MAP_ID_BATTLE_FRONTIER_POKEMON_CENTER_2F, + MAP_ID_BATTLE_FRONTIER_MART, + MAP_ID_FARAWAY_ISLAND_OUTSIDE, + MAP_ID_FARAWAY_ISLAND_FOREST, + MAP_ID_BIRTH_ISLAND_OUTSIDE, + MAP_ID_BIRTH_ISLAND_DOCKS, + MAP_ID_TRAINER_HILL_LOBBY, + MAP_ID_TRAINER_HILL_1F, + MAP_ID_TRAINER_HILL_2F, + MAP_ID_TRAINER_HILL_3F, + MAP_ID_TRAINER_HILL_4F, + MAP_ID_TRAINER_HILL_5F, + MAP_ID_NAVEL_ROCK_OUTSIDE, + MAP_ID_NAVEL_ROCK_DOCKS, + MAP_ID_NAVEL_ROCK_1F, + MAP_ID_NAVEL_ROCK_2F, + MAP_ID_NAVEL_ROCK_3F, + MAP_ID_NAVEL_ROCK_4F, + MAP_ID_NAVEL_ROCK_5F, + MAP_ID_NAVEL_ROCK_6F, + MAP_ID_NAVEL_ROCK_7F, + MAP_ID_NAVEL_ROCK_PEAK, + MAP_ID_NAVEL_ROCK_B1F, + MAP_ID_NAVEL_ROCK_B2F, + MAP_ID_NAVEL_ROCK_B3F, + MAP_ID_NAVEL_ROCK_B4F, + MAP_ID_NAVEL_ROCK_B5F, + MAP_ID_NAVEL_ROCK_B6F, + MAP_ID_NAVEL_ROCK_B7F, + MAP_ID_NAVEL_ROCK_B8F, + MAP_ID_NAVEL_ROCK_B9F, + MAP_ID_NAVEL_ROCK_B10F, + MAP_ID_NAVEL_ROCK_B11F, + MAP_ID_NAVEL_ROCK_INNER, + MAP_ID_TRAINER_HILL_ELEVATOR, +}; + +#define MAP_GROUP_SAFARI_ZONE_NORTHWEST 26 +#define MAP_GROUP_SAFARI_ZONE_NORTHEAST 26 +#define MAP_GROUP_SAFARI_ZONE_SOUTHWEST 26 +#define MAP_GROUP_SAFARI_ZONE_SOUTHEAST 26 +#define MAP_GROUP_BATTLE_FRONTIER_OUTSIDE_WEST 26 +#define MAP_GROUP_BATTLE_TOWER_LOBBY 26 +#define MAP_GROUP_BATTLE_TOWER_ELEVATOR 26 +#define MAP_GROUP_BATTLE_TOWER_CORRIDOR 26 +#define MAP_GROUP_BATTLE_TOWER_BATTLE_ROOM 26 +#define MAP_GROUP_SOUTHERN_ISLAND_EXTERIOR 26 +#define MAP_GROUP_SOUTHERN_ISLAND_INTERIOR 26 +#define MAP_GROUP_SAFARI_ZONE_REST_HOUSE 26 +#define MAP_GROUP_SAFARI_ZONE_EM_1 26 +#define MAP_GROUP_SAFARI_ZONE_EM_2 26 +#define MAP_GROUP_BATTLE_FRONTIER_OUTSIDE_EAST 26 +#define MAP_GROUP_BATTLE_FRONTIER_TAG_LINK 26 +#define MAP_GROUP_BATTLE_FRONTIER_TAG_LINK_CORRIDOR 26 +#define MAP_GROUP_BATTLE_FRONTIER_TAG_LINK_ARENA 26 +#define MAP_GROUP_BATTLE_DOME_LOBBY 26 +#define MAP_GROUP_BATTLE_DOME_CORRIDOR 26 +#define MAP_GROUP_BATTLE_DOME_ROOM 26 +#define MAP_GROUP_BATTLE_DOME_ARENA 26 +#define MAP_GROUP_BATTLE_PALACE_LOBBY 26 +#define MAP_GROUP_BATTLE_PALACE_CORRIDOR 26 +#define MAP_GROUP_BATTLE_PALACE_1F 26 +#define MAP_GROUP_BATTLE_PYRAMID_LOBBY 26 +#define MAP_GROUP_BATTLE_PYRAMID_UNKNOWN 26 +#define MAP_GROUP_BATTLE_PYRAMID_PEAK 26 +#define MAP_GROUP_BATTLE_ARENA_LOBBY 26 +#define MAP_GROUP_BATTLE_ARENA_CORRIDOR 26 +#define MAP_GROUP_BATTLE_ARENA_ARENA 26 // rename +#define MAP_GROUP_BATTLE_FACTORY_LOBBY 26 +#define MAP_GROUP_BATTLE_FACTORY_CORRIDOR 26 +#define MAP_GROUP_BATTLE_FACTORY_ARENA 26 +#define MAP_GROUP_BATTLE_PALACE_2F 26 +#define MAP_GROUP_BATTLE_PALACE_3F 26 +#define MAP_GROUP_BATTLE_PALACE_4F 26 +#define MAP_GROUP_BATTLE_PALACE_5F 26 +#define MAP_GROUP_BATTLE_PALACE_6F 26 +#define MAP_GROUP_BATTLE_PALACE_TEST_ROOM 26 +#define MAP_GROUP_RANKING_HALL 26 +#define MAP_GROUP_STAT_RATER_HOUSE 26 +#define MAP_GROUP_BATTLE_FRONTIER_EXCHANGE 26 +#define MAP_GROUP_BATTLE_FRONTIER_MANIAC_HOUSE 26 +#define MAP_GROUP_BATTLE_FRONTIER_GAMBLING_HOUSE 26 +#define MAP_GROUP_BATTLE_FRONTIER_HOUSE1 26 +#define MAP_GROUP_BATTLE_FRONTIER_SCOTTS_HOUSE 26 +#define MAP_GROUP_BATTLE_FRONTIER_HOUSE2 26 +#define MAP_GROUP_BATTLE_FRONTIER_HOUSE3 26 +#define MAP_GROUP_BATTLE_FRONTIER_HOUSE4 26 +#define MAP_GROUP_BATTLE_FRONTIER_ENTRANCE_HALL 26 +#define MAP_GROUP_BATTLE_FRONTIER_HOUSE5 26 +#define MAP_GROUP_BATTLE_FRONTIER_UNUSED_HOUSE 26 +#define MAP_GROUP_BATTLE_FRONTIER_POKEMON_CENTER_1F 26 +#define MAP_GROUP_BATTLE_FRONTIER_POKEMON_CENTER_2F 26 +#define MAP_GROUP_BATTLE_FRONTIER_MART 26 +#define MAP_GROUP_FARAWAY_ISLAND_OUTSIDE 26 +#define MAP_GROUP_FARAWAY_ISLAND_FOREST 26 +#define MAP_GROUP_BIRTH_ISLAND_OUTSIDE 26 +#define MAP_GROUP_BIRTH_ISLAND_DOCKS 26 +#define MAP_GROUP_TRAINER_HILL_LOBBY 26 +#define MAP_GROUP_TRAINER_HILL_1F 26 +#define MAP_GROUP_TRAINER_HILL_2F 26 +#define MAP_GROUP_TRAINER_HILL_3F 26 +#define MAP_GROUP_TRAINER_HILL_4F 26 +#define MAP_GROUP_TRAINER_HILL_5F 26 +#define MAP_GROUP_NAVEL_ROCK_OUTSIDE 26 +#define MAP_GROUP_NAVEL_ROCK_DOCKS 26 +#define MAP_GROUP_NAVEL_ROCK_1F 26 +#define MAP_GROUP_NAVEL_ROCK_2F 26 +#define MAP_GROUP_NAVEL_ROCK_3F 26 +#define MAP_GROUP_NAVEL_ROCK_4F 26 +#define MAP_GROUP_NAVEL_ROCK_5F 26 +#define MAP_GROUP_NAVEL_ROCK_6F 26 +#define MAP_GROUP_NAVEL_ROCK_7F 26 +#define MAP_GROUP_NAVEL_ROCK_PEAK 26 +#define MAP_GROUP_NAVEL_ROCK_B1F 26 +#define MAP_GROUP_NAVEL_ROCK_B2F 26 +#define MAP_GROUP_NAVEL_ROCK_B3F 26 +#define MAP_GROUP_NAVEL_ROCK_B4F 26 +#define MAP_GROUP_NAVEL_ROCK_B5F 26 +#define MAP_GROUP_NAVEL_ROCK_B6F 26 +#define MAP_GROUP_NAVEL_ROCK_B7F 26 +#define MAP_GROUP_NAVEL_ROCK_B8F 26 +#define MAP_GROUP_NAVEL_ROCK_B9F 26 +#define MAP_GROUP_NAVEL_ROCK_B10F 26 +#define MAP_GROUP_NAVEL_ROCK_B11F 26 +#define MAP_GROUP_NAVEL_ROCK_INNER 26 +#define MAP_GROUP_TRAINER_HILL_ELEVATOR 26 +//-------------------------------------------------- +// Map Group 27 +//-------------------------------------------------- + +enum +{ + MAP_ID_ROUTE104_PROTOTYPE, + MAP_ID_ROUTE104_PROTOTYPE_PRETTY_PETAL_FLOWER_SHOP, +}; + +#define MAP_GROUP_ROUTE104_PROTOTYPE 27 +#define MAP_GROUP_ROUTE104_PROTOTYPE_PRETTY_PETAL_FLOWER_SHOP 27 + +//-------------------------------------------------- +// Map Group 28 +//-------------------------------------------------- + +enum +{ + MAP_ID_ROUTE109_SEASHORE_HOUSE, +}; + +#define MAP_GROUP_ROUTE109_SEASHORE_HOUSE 28 + +//-------------------------------------------------- +// Map Group 29 +//-------------------------------------------------- + +enum +{ + MAP_ID_ROUTE110_TRICK_HOUSE_ENTRANCE, + MAP_ID_ROUTE110_TRICK_HOUSE_END, + MAP_ID_ROUTE110_TRICK_HOUSE_CORRIDOR, + MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE1, + MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE2, + MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE3, + MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE4, + MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE5, + MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE6, + MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE7, + MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE8, + MAP_ID_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE, + MAP_ID_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE, +}; + +#define MAP_GROUP_ROUTE110_TRICK_HOUSE_ENTRANCE 29 +#define MAP_GROUP_ROUTE110_TRICK_HOUSE_END 29 +#define MAP_GROUP_ROUTE110_TRICK_HOUSE_CORRIDOR 29 +#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE1 29 +#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE2 29 +#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE3 29 +#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE4 29 +#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE5 29 +#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE6 29 +#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE7 29 +#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE8 29 +#define MAP_GROUP_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE 29 +#define MAP_GROUP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE 29 + +//-------------------------------------------------- +// Map Group 30 +//-------------------------------------------------- + +enum +{ + MAP_ID_ROUTE113_GLASS_WORKSHOP, +}; + +#define MAP_GROUP_ROUTE113_GLASS_WORKSHOP 30 + +//-------------------------------------------------- +// Map Group 31 +//-------------------------------------------------- + +enum +{ + MAP_ID_ROUTE123_BERRY_MASTERS_HOUSE, +}; + +#define MAP_GROUP_ROUTE123_BERRY_MASTERS_HOUSE 31 + +//-------------------------------------------------- +// Map Group 32 +//-------------------------------------------------- + +enum +{ + MAP_ID_ROUTE119_WEATHER_INSTITUTE_1F, + MAP_ID_ROUTE119_WEATHER_INSTITUTE_2F, + MAP_ID_ROUTE119_HOUSE, +}; + +#define MAP_GROUP_ROUTE119_WEATHER_INSTITUTE_1F 32 +#define MAP_GROUP_ROUTE119_WEATHER_INSTITUTE_2F 32 +#define MAP_GROUP_ROUTE119_HOUSE 32 + +//-------------------------------------------------- +// Map Group 33 +//-------------------------------------------------- + +enum +{ + MAP_ID_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE, +}; + +#define MAP_GROUP_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE 33 + +#endif // GUARD_MAP_CONSTANTS_H \ No newline at end of file diff --git a/include/map_obj_8097404.h b/include/map_obj_8097404.h new file mode 100644 index 000000000..27ffd18cb --- /dev/null +++ b/include/map_obj_8097404.h @@ -0,0 +1,32 @@ +// +// Created by scott on 9/7/2017. +// + +#ifndef GUARD_MAP_OBJ_8097404_H +#define GUARD_MAP_OBJ_8097404_H + +// Exported type declarations + +// Exported RAM declarations +extern void *gUnknown_020375B8; + +// Exported ROM declarations +void sub_8097AC8(struct Sprite *); +void npc_sync_anim_pause_bits(struct MapObject *); +void oamt_npc_ministep_reset(struct Sprite *, u8, u8); +u8 sub_8097F78(struct MapObject *); +bool8 obj_npc_ministep(struct Sprite *sprite); +bool8 sub_80976EC(struct Sprite *sprite); +void sub_80976DC(struct Sprite *, u8); +void sub_809783C(struct Sprite *, u8, u8, u8); +void DoShadowFieldEffect(struct MapObject *); +u8 sub_809785C(struct Sprite *); +u8 sub_80978E4(struct Sprite *); +void obj_anim_image_set_and_seek(struct Sprite *, u8, u8); +bool8 sub_80979BC(struct Sprite *); +void sub_8097750(struct Sprite *); +bool8 sub_8097758(struct Sprite *); +void sub_8097FA4(struct MapObject *); +void sub_8098044(u8); + +#endif //GUARD_MAP_OBJ_8097404_H diff --git a/include/mauville_old_man.h b/include/mauville_old_man.h index d0526db88..aefc76083 100644 --- a/include/mauville_old_man.h +++ b/include/mauville_old_man.h @@ -1,6 +1,8 @@ + #ifndef GUARD_MAUVILLE_OLD_MAN_H #define GUARD_MAUVILLE_OLD_MAN_H void SetMauvilleOldMan(void); +u8 sub_81201C8(void); #endif // GUARD_MAUVILLE_OLD_MAN_H diff --git a/include/menu.h b/include/menu.h index c8aafcb30..766aa9d39 100644 --- a/include/menu.h +++ b/include/menu.h @@ -1,7 +1,7 @@ #ifndef GUARD_MENU_H #define GUARD_MENU_H -#include "text.h" +#include "window.h" struct MenuAction { @@ -15,4 +15,9 @@ struct MenuAction2 void (*func)(u8); }; +void box_print(u8, u8, u8, u8, const void *, s8, const u8 *); +void sub_8198070(u8 windowId, bool8 copyToVram); +void SetWindowTemplateFields(struct WindowTemplate* template, u8 priority, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 palNum, u16 baseBlock); +void SetWindowBorderStyle(u8 windowId, bool8 copyToVram, u16 tileStart, u8 palette); + #endif // GUARD_MENU_H diff --git a/include/metatile_behavior.h b/include/metatile_behavior.h new file mode 100644 index 000000000..d6743b788 --- /dev/null +++ b/include/metatile_behavior.h @@ -0,0 +1,149 @@ +#ifndef GUARD_METATILE_BEHAVIOR +#define GUARD_METATILE_BEHAVIOR + +bool8 ShouldDoJumpLandingDustEffect(u8); +bool8 MetatileBehavior_IsEncounterTile(u8); +bool8 MetatileBehavior_IsJumpEast(u8); +bool8 MetatileBehavior_IsJumpWest(u8); +bool8 MetatileBehavior_IsJumpNorth(u8); +bool8 MetatileBehavior_IsJumpSouth(u8); +bool8 MetatileBehavior_IsPokeGrass(u8); +bool8 MetatileBehavior_IsSandOrDeepSand(u8); +bool8 MetatileBehavior_IsDeepSand(u8); +bool8 MetatileBehavior_IsReflective(u8); +bool8 MetatileBehavior_IsIce(u8); +bool8 MetatileBehavior_IsWarpDoor(u8); +bool8 MetatileBehavior_IsDoor(u8); +bool8 MetatileBehavior_IsEscalator(u8); +bool8 MetatileBehavior_IsMB_04(u8); +bool8 MetatileBehavior_IsLadder(u8); +bool8 MetatileBehavior_IsNonAnimDoor(u8); +bool8 MetatileBehavior_IsDeepSouthWarp(u8); +bool8 MetatileBehavior_IsSurfableWaterOrUnderwater(u8); +bool8 MetatileBehavior_IsEastArrowWarp(u8); +bool8 MetatileBehavior_IsWestArrowWarp(u8); +bool8 MetatileBehavior_IsNorthArrowWarp(u8); +bool8 MetatileBehavior_IsSouthArrowWarp(u8); +bool8 MetatileBehavior_IsArrowWarp(u8); +bool8 MetatileBehavior_IsMoveTile(u8); +bool8 MetatileBehavior_IsIce_2(u8); +bool8 MetatileBehavior_IsTrickHouseSlipperyFloor(u8); +bool8 MetatileBehavior_IsMB_05(u8); +bool8 MetatileBehavior_IsWalkNorth(u8); +bool8 MetatileBehavior_IsWalkSouth(u8); +bool8 MetatileBehavior_IsWalkWest(u8); +bool8 MetatileBehavior_IsWalkEast(u8); +bool8 MetatileBehavior_IsNorthwardCurrent(u8); +bool8 MetatileBehavior_IsSouthwardCurrent(u8); +bool8 MetatileBehavior_IsWestwardCurrent(u8); +bool8 MetatileBehavior_IsEastwardCurrent(u8); +bool8 MetatileBehavior_IsSlideNorth(u8); +bool8 MetatileBehavior_IsSlideSouth(u8); +bool8 MetatileBehavior_IsSlideWest(u8); +bool8 MetatileBehavior_IsSlideEast(u8); +bool8 MetatileBehavior_IsCounter(u8); +bool8 MetatileBehavior_IsPlayerFacingTVScreen(u8 tile, u8 playerDir); +bool8 MetatileBehavior_IsPC(u8); +bool8 MetatileBehavior_IsCableBoxResults1(u8); +bool8 MetatileBehavior_IsSecretBaseOpen(u8); +bool8 MetatileBehavior_IsSecretBaseCave(u8); +bool8 MetatileBehavior_IsSecretBaseTree(u8); +bool8 MetatileBehavior_IsSecretBaseShrub(u8); +bool8 MetatileBehavior_IsSecretBasePC(u8); +bool8 MetatileBehavior_IsSecretBaseRegisterPC(u8); +bool8 MetatileBehavior_IsMB_B2(u8); +bool8 MetatileBehavior_IsMB_B3(u8); +bool8 MetatileBehavior_IsMB_B9(u8); +bool8 MetatileBehavior_IsMB_C6(u8); +bool8 MetatileBehavior_IsSecretBasePoster(u8); +bool8 MetatileBehavior_IsNormal(u8); +bool8 MetatileBehavior_IsMB_B7(u8); +bool8 MetatileBehavior_IsMB_B2_Duplicate(u8); +bool8 MetatileBehavior_IsMB_B5(u8); +bool8 MetatileBehavior_IsMB_C3(u8); +bool8 MetatileBehavior_IsMB_C2(u8); +bool8 MetatileBehavior_IsSecretBaseBalloon(u8); +bool8 MetatileBehavior_IsMB_BE(u8); +bool8 MetatileBehavior_IsSecretBaseSoundMat(u8); +bool8 MetatileBehavior_IsSecretBaseGlitterMat(u8); +bool8 MetatileBehavior_IsMB_BF(u8); +bool8 MetatileBehavior_IsSecretBaseTvOrShield(u8); +bool8 MetatileBehavior_IsMB_C5(u8); +bool8 MetatileBehavior_HasRipples(u8); +bool8 MetatileBehavior_IsPuddle(u8); +bool8 MetatileBehavior_IsTallGrass(u8); +bool8 MetatileBehavior_IsLongGrass(u8); +bool8 MetatileBehavior_IsBerryTreeSoil(u8); +bool8 MetatileBehavior_IsAsh(u8); +bool8 MetatileBehavior_IsUnusedFootprintMetatile(u8); +bool8 MetatileBehavior_IsBridge(u8); +u8 MetatileBehavior_GetBridgeSth(u8); +u8 MetatileBehavior_8089510(u8); +bool8 MetatileBehavior_IsLandWildEncounter(u8); +bool8 MetatileBehavior_IsWaterWildEncounter(u8); +bool8 MetatileBehavior_IsMB_0B(u8); +bool8 MetatileBehavior_IsMountain(u8); +bool8 MetatileBehavior_IsDiveable(u8); +bool8 MetatileBehavior_IsUnableToEmerge(u8); +bool8 MetatileBehavior_IsShallowFlowingWater(u8); +bool8 MetatileBehavior_IsThinIce(u8); +bool8 MetatileBehavior_IsCrackedIce(u8); +bool8 MetatileBehavior_IsDeepOrOceanWater(u8); +bool8 MetatileBehavior_IsMB_18_OrMB_1A(u8); +bool8 MetatileBehavior_IsSurfableAndNotWaterfall(u8); +bool8 MetatileBehavior_IsEastBlocked(u8); +bool8 MetatileBehavior_IsWestBlocked(u8); +bool8 MetatileBehavior_IsNorthBlocked(u8); +bool8 MetatileBehavior_IsSouthBlocked(u8); +bool8 MetatileBehavior_IsShortGrass(u8); +bool8 MetatileBehavior_IsHotSprings(u8); +bool8 MetatileBehavior_IsWaterfall(u8); +bool8 MetatileBehavior_IsFortreeBridge(u8); +bool8 MetatileBehavior_IsPacifilogVerticalLog1(u8); +bool8 MetatileBehavior_IsPacifilogVerticalLog2(u8); +bool8 MetatileBehavior_IsPacifilogHorizontalLog1(u8); +bool8 MetatileBehavior_IsPacifilogHorizontalLog2(u8); +bool8 MetatileBehavior_IsPacifidlogLog(u8); +bool8 MetatileBehavior_IsTrickHousePuzzleDoor(u8); +bool8 MetatileBehavior_IsRegionMap(u8); +bool8 MetatileBehavior_IsClosedSootopolisGymDoor(u8); +bool8 MetatileBehavior_IsUnknownClosedDoor(u8); +bool8 MetatileBehavior_IsRoulette(u8); +bool8 MetatileBehavior_IsPokeblockFeeder(u8); +bool8 MetatileBehavior_IsSecretBaseJumpMat(u8); +bool8 MetatileBehavior_IsSecretBaseSpinMat(u8); +bool8 MetatileBehavior_IsLavaridgeB1FWarp(u8); +bool8 MetatileBehavior_IsLavaridgeB1FWarp(u8); +bool8 MetatileBehavior_IsAquaHideoutWarp(u8); +bool8 MetatileBehavior_IsWarpOrBridge(u8); +bool8 MetatileBehavior_IsMossdeepGymWarp(u8); +bool8 MetatileBehavior_IsSurfableFishableWater(u8); +bool8 MetatileBehavior_IsMtPyreHole(u8); +bool8 MetatileBehavior_IsCrackedFloorHole(u8); +bool8 MetatileBehavior_IsCrackedFloor(u8); +bool8 MetatileBehavior_IsMuddySlope(u8); +bool8 MetatileBehavior_IsBumpySlope(u8); +bool8 MetatileBehavior_IsIsolatedVerticalRail(u8); +bool8 MetatileBehavior_IsIsolatedHorizontalRail(u8); +bool8 MetatileBehavior_IsVerticalRail(u8); +bool8 MetatileBehavior_IsHorizontalRail(u8); +bool8 MetatileBehavior_IsSeaweed(u8); +bool8 MetatileBehavior_IsRunningDisallowed(u8); +bool8 MetatileBehavior_IsCuttableGrass(u8); +bool8 MetatileBehavior_IsRunningShoesInstruction(u8); +bool8 MetatileBehavior_IsPictureBookShelf(u8); +bool8 MetatileBehavior_IsBookShelf(u8); +bool8 MetatileBehavior_IsPokeCenterBookShelf(u8); +bool8 MetatileBehavior_IsVase(u8); +bool8 MetatileBehavior_IsTrashCan(u8); +bool8 MetatileBehavior_IsShopShelf(u8); +bool8 MetatileBehavior_IsBlueprint(u8); +bool8 MetatileBehavior_IsBattlePyramidWarp(u8); +bool8 MetatileBehavior_IsPlayerFacingWirelessBoxResults(u8 tile, u8 playerDir); +bool8 MetatileBehavior_IsCableBoxResults2(u8 tile, u8 playerDir); +bool8 MetatileBehavior_IsQuestionnaire(u8); +bool8 MetatileBehavior_IsLongGrass_Duplicate(u8); +bool8 MetatileBehavior_IsLongGrassSouthEdge(u8); +bool8 MetatileBehavior_IsTrainerHillTimer(u8); + +#endif // GUARD_METATILE_BEHAVIOR diff --git a/include/metatile_behaviors.h b/include/metatile_behaviors.h new file mode 100644 index 000000000..dd3a8b4f4 --- /dev/null +++ b/include/metatile_behaviors.h @@ -0,0 +1,179 @@ +#ifndef GUARD_METATILE_BEHAVIORS +#define GUARD_METATILE_BEHAVIORS + +#define MB_NORMAL 0x00 +#define MB_TALL_GRASS 0x02 +#define MB_LONG_GRASS 0x03 +#define MB_04 0x04 +#define MB_05 0x05 +#define MB_DEEP_SAND 0x06 +#define MB_SHORT_GRASS 0x07 +#define MB_CAVE 0x08 +#define MB_LONG_GRASS_SOUTH_EDGE 0x09 +#define MB_NO_RUNNING 0x0A +#define MB_0B 0x0B +#define MB_MOUNTAIN_TOP 0x0C +#define MB_BATTLE_PYRAMID_WARP 0x0D +#define MB_MOSSDEEP_GYM_WARP 0x0E +#define MB_MT_PYRE_HOLE 0x0F +#define MB_POND_WATER 0x10 +#define MB_SEMI_DEEP_WATER 0x11 +#define MB_DEEP_WATER 0x12 +#define MB_WATERFALL 0x13 +#define MB_SOOTOPOLIS_DEEP_WATER 0x14 +#define MB_OCEAN_WATER 0x15 +#define MB_PUDDLE 0x16 +#define MB_SHALLOW_WATER 0x17 +#define MB_18 0x18 +#define MB_NO_SURFACING 0x19 +#define MB_1A 0x1A +#define MB_STAIRS_OUTSIDE_ABANDONED_SHIP 0x1B +#define MB_SHOAL_CAVE_ENTRANCE 0x1C +#define MB_ICE 0x20 +#define MB_SAND 0x21 +#define MB_SEAWEED 0x22 +#define MB_ASHGRASS 0x24 +#define MB_25 0x25 +#define MB_THIN_ICE 0x26 +#define MB_CRACKED_ICE 0x27 +#define MB_HOT_SPRINGS 0x28 +#define MB_LAVARIDGE_GYM_B1F_WARP 0x29 +#define MB_SEAWEED_NO_SURFACING 0x2A +#define MB_REFLECTION_UNDER_BRIDGE 0x2B +#define MB_IMPASSABLE_EAST 0x30 +#define MB_IMPASSABLE_WEST 0x31 +#define MB_IMPASSABLE_NORTH 0x32 +#define MB_IMPASSABLE_SOUTH 0x33 +#define MB_IMPASSABLE_NORTHEAST 0x34 +#define MB_IMPASSABLE_NORTHWEST 0x35 +#define MB_IMPASSABLE_SOUTHEAST 0x36 +#define MB_IMPASSABLE_SOUTHWEST 0x37 +#define MB_JUMP_EAST 0x38 +#define MB_JUMP_WEST 0x39 +#define MB_JUMP_NORTH 0x3A +#define MB_JUMP_SOUTH 0x3B +#define MB_JUMP_SOUTHEAST 0x3E +#define MB_JUMP_SOUTHWEST 0x3F +#define MB_WALK_EAST 0x40 +#define MB_WALK_WEST 0x41 +#define MB_WALK_NORTH 0x42 +#define MB_WALK_SOUTH 0x43 +#define MB_SLIDE_EAST 0x44 +#define MB_SLIDE_WEST 0x45 +#define MB_SLIDE_NORTH 0x46 +#define MB_SLIDE_SOUTH 0x47 +#define MB_TRICK_HOUSE_PUZZLE_8_FLOOR 0x48 +#define MB_EASTWARD_CURRENT 0x50 +#define MB_WESTWARD_CURRENT 0x51 +#define MB_NORTHWARD_CURRENT 0x52 +#define MB_SOUTHWARD_CURRENT 0x53 +#define MB_NON_ANIMATED_DOOR 0x60 +#define MB_LADDER 0x61 +#define MB_EAST_ARROW_WARP 0x62 +#define MB_WEST_ARROW_WARP 0x63 +#define MB_NORTH_ARROW_WARP 0x64 +#define MB_SOUTH_ARROW_WARP 0x65 +#define MB_CRACKED_FLOOR_HOLE 0x66 +#define MB_AQUA_HIDEOUT_WARP 0x67 +#define MB_LAVARIDGE_GYM_1F_WARP 0x68 +#define MB_ANIMATED_DOOR 0x69 +#define MB_UP_ESCALATOR 0x6A +#define MB_DOWN_ESCALATOR 0x6B +#define MB_WATER_DOOR 0x6C +#define MB_WATER_SOUTH_ARROW_WARP 0x6D +#define MB_DEEP_SOUTH_WARP 0x6E +#define MB_WARP_OR_BRIDGE 0x70 +#define MB_71 0x71 +#define MB_ROUTE120_NORTH_BRIDGE_1 0x72 +#define MB_ROUTE120_NORTH_BRIDGE_2 0x73 +#define MB_PACIFIDLOG_VERTICAL_LOG_1 0x74 +#define MB_PACIFIDLOG_VERTICAL_LOG_2 0x75 +#define MB_PACIFIDLOG_HORIZONTAL_LOG_1 0x76 +#define MB_PACIFIDLOG_HORIZONTAL_LOG_2 0x77 +#define MB_FORTREE_BRIDGE 0x78 +#define MB_ROUTE120_SOUTH_BRIDGE_1 0x7A +#define MB_ROUTE120_SOUTH_BRIDGE_2 0x7B +#define MB_ROUTE120_NORTH_BRIDGE_3 0x7C +#define MB_ROUTE120_NORTH_BRIDGE_4 0x7D +#define MB_7E 0x7E +#define MB_ROUTE110_BRIDGE 0x7F +#define MB_COUNTER 0x80 +#define MB_PC 0x83 +#define MB_CABLE_BOX_RESULTS_1 0x84 +#define MB_REGION_MAP 0x85 +#define MB_TELEVISION 0x86 +#define MB_POKEBLOCK_FEEDER 0x87 +#define MB_SLOT_MACHINE 0x89 +#define MB_ROULETTE 0x8A +#define MB_CLOSED_SOOTOPOLIS_GYM_DOOR 0x8B +#define MB_TRICK_HOUSE_PUZZLE_DOOR 0x8C +#define MB_8D 0x8D +#define MB_RUNNING_SHOES_INSTRUCTION 0x8E +#define MB_QUESTIONNAIRE 0x8F +#define MB_SECRET_BASE_SPOT_RED_CAVE 0x90 +#define MB_SECRET_BASE_SPOT_RED_CAVE_OPEN 0x91 +#define MB_SECRET_BASE_SPOT_BROWN_CAVE 0x92 +#define MB_SECRET_BASE_SPOT_BROWN_CAVE_OPEN 0x93 +#define MB_SECRET_BASE_SPOT_YELLOW_CAVE 0x94 +#define MB_SECRET_BASE_SPOT_YELLOW_CAVE_OPEN 0x95 +#define MB_SECRET_BASE_SPOT_TREE_LEFT 0x96 +#define MB_SECRET_BASE_SPOT_TREE_LEFT_OPEN 0x97 +#define MB_SECRET_BASE_SPOT_SHRUB 0x98 +#define MB_SECRET_BASE_SPOT_SHRUB_OPEN 0x99 +#define MB_SECRET_BASE_SPOT_BLUE_CAVE 0x9A +#define MB_SECRET_BASE_SPOT_BLUE_CAVE_OPEN 0x9B +#define MB_SECRET_BASE_SPOT_TREE_RIGHT 0x9C +#define MB_SECRET_BASE_SPOT_TREE_RIGHT_OPEN 0x9D +#define MB_BERRY_TREE_SOIL 0xA0 +#define MB_SECRET_BASE_PC 0xB0 +#define MB_SECRET_BASE_REGISTER_PC 0xB1 +#define MB_B2 0xB2 +#define MB_B3 0xB3 +#define MB_B4 0xB4 +#define MB_B5 0xB5 +#define MB_B6 0xB6 +#define MB_B7 0xB7 +#define MB_SECRET_BASE_BALLOON 0xB8 +#define MB_B9 0xB9 +#define MB_SECRET_BASE_GLITTER_MAT 0xBA +#define MB_SECRET_BASE_JUMP_MAT 0xBB +#define MB_SECRET_BASE_SPIN_MAT 0xBC +#define MB_SECRET_BASE_SOUND_MAT 0xBD +#define MB_BE 0xBE +#define MB_BF 0xBF +#define MB_BED 0xC0 +#define MB_C1 0xC1 +#define MB_C2 0xC2 +#define MB_C3 0xC3 +#define MB_SECRET_BASE_TV_SHIELD 0xC4 +#define MB_C5 0xC5 +#define MB_C6 0xC6 +#define MB_SECRET_BASE_POSTER 0xC7 +#define MB_C8 0xC8 +#define MB_C9 0xC9 +#define MB_CA 0xCA +#define MB_CB 0xCB +#define MB_CC 0xCC +#define MB_CD 0xCD +#define MB_CE 0xCE +#define MB_CF 0xCF +#define MB_MUDDY_SLOPE 0xD0 +#define MB_BUMPY_SLOPE 0xD1 +#define MB_CRACKED_FLOOR 0xD2 +#define MB_ISOLATED_VERTICAL_RAIL 0xD3 +#define MB_ISOLATED_HORIZONTAL_RAIL 0xD4 +#define MB_VERTICAL_RAIL 0xD5 +#define MB_HORIZONTAL_RAIL 0xD6 +#define MB_PICTURE_BOOK_SHELF 0xE0 +#define MB_BOOKSHELF 0xE1 +#define MB_POKEMON_CENTER_BOOKSHELF 0xE2 +#define MB_VASE 0xE3 +#define MB_TRASH_CAN 0xE4 +#define MB_SHOP_SHELF 0xE5 +#define MB_BLUEPRINT 0xE6 +#define MB_CABLE_BOX_RESULTS_2 0xE7 +#define MB_WIRELESS_BOX_RESULTS 0xE8 +#define MB_TRAINER_HILL_TIMER 0xE9 +#define MB_UNKNOWN_CLOSED_DOOR 0xEA + +#endif // GUARD_METATILE_BEHAVIORS diff --git a/include/money.h b/include/money.h index 316dbd697..22a3657f6 100644 --- a/include/money.h +++ b/include/money.h @@ -6,5 +6,15 @@ void SetMoney(u32* moneyPtr, u32 newValue); bool8 IsEnoughMoney(u32* moneyPtr, u32 cost); void AddMoney(u32* moneyPtr, u32 toAdd); void SubtractMoney(u32* moneyPtr, u32 toSub); +bool8 IsEnoughForCostInVar0x8005(void); +void SubtractMoneyFromVar0x8005(void); +void PrintMoneyAmountInMoneyBox(u8 windowId, int amount, u8 speed); +void PrintMoneyAmount(u8 windowId, u8 x, u8 y, int amount, u8 speed); +void PrintMoneyAmountInMoneyBoxWithBorder(u8 windowId, u16 tileStart, u8 pallete, int amount); +void ChangeAmountInMoneyBox(int amount); +void DrawMoneyBox(int amount, u8 x, u8 y); +void HideMoneyBox(void); +void AddMoneyLabelObject(u16 x, u16 y); +void RemoveMoneyLabelObject(void); #endif // GUARD_MONEY_H diff --git a/include/moves.h b/include/moves.h index e3b6d3113..bc213cbc7 100644 --- a/include/moves.h +++ b/include/moves.h @@ -360,4 +360,6 @@ enum MOVE_PSYCHO_BOOST, }; -#endif // GUARD_MOVES_H \ No newline at end of file +#define LAST_MOVE_INDEX MOVE_PSYCHO_BOOST + +#endif // GUARD_MOVES_H diff --git a/include/multiboot.h b/include/multiboot.h index 950c853d0..d4700ff4e 100644 --- a/include/multiboot.h +++ b/include/multiboot.h @@ -15,7 +15,7 @@ void MultiBootInit(struct MultiBootParam *mp); int MultiBootMain(struct MultiBootParam *mp); void MultiBootStartProbe(struct MultiBootParam *mp); -void MultiBootStartMaster(struct MultiBootParam *mp, u8 *srcp, int length, u8 palette_color, s8 palette_speed); +void MultiBootStartMaster(struct MultiBootParam *mp, const u8 *srcp, int length, u8 palette_color, s8 palette_speed); int MultiBootCheckComplete(struct MultiBootParam *mp); #endif // GUARD_MULTIBOOT_H diff --git a/include/naming_screen.h b/include/naming_screen.h new file mode 100644 index 000000000..55a8e75a3 --- /dev/null +++ b/include/naming_screen.h @@ -0,0 +1,12 @@ +#ifndef GUARD_NAMING_SCREEN_H +#define GUARD_NAMING_SCREEN_H + +#define NAMING_SCREEN_PLAYER 0 +#define NAMING_SCREEN_BOX 1 +#define NAMING_SCREEN_CAUGHT_MON 2 +#define NAMING_SCREEN_3 3 +#define NAMING_SCREEN_WANDA 4 + +void DoNamingScreen(u8 caseId, u8* dst, u16 monSpecies, u8 monGender, u32 monPersonality, void (*callback)(void)); + +#endif // GUARD_NAMING_SCREEN_H diff --git a/include/new_game.h b/include/new_game.h index f9ad7fcb8..060279c25 100644 --- a/include/new_game.h +++ b/include/new_game.h @@ -9,5 +9,7 @@ void ClearPokedexFlags(void); void WarpToTruck(void); void NewGameInitData(void); void ResetMiniGamesResults(void); +void sub_808447C(void); +void Sav2_ClearSetDefault(void); #endif // GUARD_NEW_GAME_H diff --git a/include/pokedex.h b/include/pokedex.h index 15f819a2a..38aca0915 100644 --- a/include/pokedex.h +++ b/include/pokedex.h @@ -6,6 +6,7 @@ const u8 *GetPokemonCategory(u16); u16 GetPokedexHeightWeight(u16 dexNum, u8 data); u16 GetNationalPokedexCount(u8); u16 GetHoennPokedexCount(u8); +u8 CreateDexDisplayMonDataTask(u16 dexNum, u32 trainerId, u32 personality); enum { diff --git a/include/pokemon.h b/include/pokemon.h index fefe2bd28..20e904f39 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -126,6 +126,8 @@ #define TYPE_DRAGON 0x10 #define TYPE_DARK 0x11 +#define NUMBER_OF_MON_TYPES 0x12 + #define PARTY_SIZE 6 #define MAX_TOTAL_EVS 510 #define NUM_STATS 6 @@ -333,6 +335,8 @@ struct UnknownPokemonStruct u8 friendship; }; +#define BATTLE_STATS_NO 8 + struct BattlePokemon { /*0x00*/ u16 species; @@ -350,7 +354,7 @@ struct BattlePokemon /*0x17*/ u32 spDefenseIV:5; /*0x17*/ u32 isEgg:1; /*0x17*/ u32 altAbility:1; - /*0x18*/ s8 statStages[8]; + /*0x18*/ s8 statStages[BATTLE_STATS_NO]; /*0x20*/ u8 ability; /*0x21*/ u8 type1; /*0x22*/ u8 type2; @@ -439,6 +443,13 @@ struct BattleMove u8 flags; }; +#define FLAG_MAKES_CONTACT 0x1 +#define FLAG_PROTECT_AFFECTED 0x2 +#define FLAG_MAGICCOAT_AFFECTED 0x4 +#define FLAG_SNATCH_AFFECTED 0x8 +#define FLAG_MIRROR_MOVE_AFFECTED 0x10 +#define FLAG_KINGSROCK_AFFECTED 0x20 + struct SpindaSpot { u8 x, y; @@ -514,6 +525,7 @@ extern struct PokemonStorage* gPokemonStoragePtr; extern const u32 gExperienceTables[][MAX_MON_LEVEL + 1]; extern const u16 *const gLevelUpLearnsets[]; +u8 CountAliveMonsInBattle(u8 caseId); #define BATTLE_ALIVE_EXCEPT_ACTIVE 0 #define BATTLE_ALIVE_ATK_SIDE 1 #define BATTLE_ALIVE_DEF_SIDE 2 @@ -614,4 +626,15 @@ bool8 IsPokeSpriteNotFlipped(u16 species); bool8 IsMonShiny(struct Pokemon *mon); bool8 IsShinyOtIdPersonality(u32 otId, u32 personality); +void MonGainEVs(struct Pokemon *mon, u16 defeatedSpecies); +bool8 IsTradedMon(struct Pokemon *mon); +void HandleSetPokedexFlag(u16 nationalNum, u8 caseId, u32 personality); +s32 sub_806D864(u16 a1); +bool16 sub_806D82C(u8 id); +u16 MonTryLearningNewMove(struct Pokemon* mon, bool8); + +#include "sprite.h" + +void DoMonFrontSpriteAnimation(struct Sprite* sprite, u16 species, bool8 noCry, u8 arg3); + #endif // GUARD_POKEMON_H diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h new file mode 100644 index 000000000..b82334355 --- /dev/null +++ b/include/pokemon_icon.h @@ -0,0 +1,7 @@ +#ifndef GUARD_POKEMON_ICON_H +#define GUARD_POKEMON_ICON_H + +const u8 *GetMonIconPtr(u16 speciesId, u32 personality, u32 frameNo); +const u16 *GetValidMonIconPalettePtr(u16 speciesId); + +#endif // GUARD_POKEMON_ICON_H diff --git a/include/pokemon_item_effects.h b/include/pokemon_item_effects.h new file mode 100644 index 000000000..88f341317 --- /dev/null +++ b/include/pokemon_item_effects.h @@ -0,0 +1,8 @@ +#ifndef GUARD_POKEMON_ITEM_EFFECTS +#define GUARD_POKEMON_ITEM_EFFECTS + +#include "pokemon.h" + +bool8 ExecuteTableBasedItemEffect(struct Pokemon *mon, u16 itemId, u8 partyId, u8 monMoveIndex, u8 a5); + +#endif // GUARD_POKEMON_ITEM_EFFECTS diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h new file mode 100644 index 000000000..5216e8450 --- /dev/null +++ b/include/pokemon_storage_system.h @@ -0,0 +1,6 @@ +#ifndef GUARD_POKEMON_STORAGE_SYSTEM_H +#define GUARD_POKEMON_STORAGE_SYSTEM_H + +u8* GetBoxNamePtr(u8 boxNumber); + +#endif // GUARD_POKEMON_STORAGE_SYSTEM_H diff --git a/include/recorded_battle.h b/include/recorded_battle.h new file mode 100644 index 000000000..d19a2b713 --- /dev/null +++ b/include/recorded_battle.h @@ -0,0 +1,6 @@ +#ifndef GUARD_RECORDED_BATTLE_H +#define GUARD_RECORDED_BATTLE_H + +void RecordedBattle_SetBankAction(u8 bank, u8 action); + +#endif // GUARD_RECORDED_BATTLE_H diff --git a/include/reshow_battle_screen.h b/include/reshow_battle_screen.h new file mode 100644 index 000000000..62773b48b --- /dev/null +++ b/include/reshow_battle_screen.h @@ -0,0 +1,6 @@ +#ifndef GUARD_RESHOW_BATTLE_SCREEN_H +#define GUARD_RESHOW_BATTLE_SCREEN_H + +void ReshowBattleScreenAfterMenu(void); + +#endif // GUARD_RESHOW_BATTLE_SCREEN_H diff --git a/include/roamer.h b/include/roamer.h index af7f86e79..ba1b09b54 100644 --- a/include/roamer.h +++ b/include/roamer.h @@ -3,9 +3,15 @@ void ClearRoamerData(void); void ClearRoamerLocationData(void); +void InitRoamer(void); void UpdateLocationHistoryForRoamer(void); void RoamerMoveToOtherLocationSet(void); -void RoamerMove(); +void RoamerMove(void); +bool8 IsRoamerAt(u8 mapGroup, u8 mapNum); +void CreateRoamerMonInstance(void); u8 TryStartRoamerEncounter(void); +void UpdateRoamerHPStatus(struct Pokemon *mon); +void SetRoamerInactive(void); +void GetRoamerLocation(u8 *mapGroup, u8 *mapNum); #endif // GUARD_ROAMER_H diff --git a/include/rom4.h b/include/rom4.h new file mode 100644 index 000000000..e19d277a6 --- /dev/null +++ b/include/rom4.h @@ -0,0 +1,33 @@ + +#ifndef GUARD_ROM4_H +#define GUARD_ROM4_H + +struct UnkPlayerStruct +{ + u8 player_field_0; + u8 player_field_1; +}; + +struct LinkPlayerMapObject +{ + u8 active; + u8 linkPlayerId; + u8 mapObjId; + u8 mode; +}; + +struct UCoords32 +{ + u32 x, y; +}; + + +extern struct LinkPlayerMapObject gLinkPlayerMapObjects[4]; + +void strange_npc_table_clear(void); +const struct MapHeader *get_mapheader_by_bank_and_number(u8, u8); +void FieldObjectMoveDestCoords(struct MapObject *, u32, s16 *, s16 *); +void sub_8086230(void); +void c2_exit_to_overworld_2_switch(void); + +#endif //GUARD_ROM4_H diff --git a/include/rom6.h b/include/rom6.h new file mode 100644 index 000000000..15070616d --- /dev/null +++ b/include/rom6.h @@ -0,0 +1,6 @@ +#ifndef GUARD_ROM6_H +#define GUARD_ROM6_H + +void sub_81357FC(u8, void(void)); + +#endif //GUARD_ROM6_H diff --git a/include/rom_818CFC8.h b/include/rom_818CFC8.h new file mode 100644 index 000000000..1d0626b2b --- /dev/null +++ b/include/rom_818CFC8.h @@ -0,0 +1,11 @@ +// +// Created by Scott Norton on 9/6/17. +// + +#ifndef GUARD_ROM_818CFC8_H +#define GUARD_ROM_818CFC8_H + +bool8 InBattlePyramid(void); +u8 sub_81AAA40(void); + +#endif //GUARD_ROM_818CFC8_H diff --git a/include/rom_81BE66C.h b/include/rom_81BE66C.h new file mode 100644 index 000000000..5b4f80249 --- /dev/null +++ b/include/rom_81BE66C.h @@ -0,0 +1,12 @@ +// +// Created by Scott Norton on 9/6/17. +// + +#ifndef GUARD_ROM_81BE66C_H +#define GUARD_ROM_81BE66C_H + +bool32 InTrainerHill(void); +bool8 FieldObjectIsFarawayIslandMew(struct MapObject *); +u32 sub_81D427C(void); + +#endif //GUARD_ROM_81BE66C_H diff --git a/include/save.h b/include/save.h index 1d7fdd6e3..e98233c67 100644 --- a/include/save.h +++ b/include/save.h @@ -1,6 +1,8 @@ #ifndef GUARD_SAVE_H #define GUARD_SAVE_H +extern u16 gSaveFileStatus; + struct SaveSectionLocation { void *data; @@ -88,5 +90,7 @@ u16 CalculateChecksum(void *, u16); //u8 unref_sub_8125FF0(u8 *data, u16 size); //u8 unref_sub_8126068(u8 sector, u8 *data, u32 size); //u8 unref_sub_8126080(u8 sector, u8 *data); +u16 sub_815355C(void); +u8 sub_81534D0(u8); #endif // GUARD_SAVE_H diff --git a/include/songs.h b/include/songs.h index afd26d683..d828e4068 100644 --- a/include/songs.h +++ b/include/songs.h @@ -15,8 +15,8 @@ enum /*0x09*/ SE_KAIDAN, /*0x0A*/ SE_DANSA, /*0x0B*/ SE_JITENSYA, - /*0x0C*/ SE_KOUKA_L, - /*0x0D*/ SE_KOUKA_M, + /*0x0C*/ SE_KOUKA_L, // Goggle told me Kouka means 'effectiveness' which makes sense, because + /*0x0D*/ SE_KOUKA_M, // those three sounds play whenever you use a move /*0x0E*/ SE_KOUKA_H, /*0x0F*/ SE_BOWA2, /*0x10*/ SE_POKE_DEAD, @@ -359,7 +359,24 @@ enum BGM_DAIGO, BGM_THANKFOR, BGM_END, - BGM_BATTLE27, // wild + /*0x1C9*/ BGM_BATTLE_FRONTIER, // human-readable names start here because we don't know the actual filenames + BGM_BATTLE_ARENA, + BGM_ME_BATTLE_POINTS, // ME_ as in messagebox? Used for KINOMI (berries) and stuff above + BGM_ME_MATCH_CALL, + BGM_BATTLE_PYRAMID, + BGM_BATTLE_PYRAMID_SUMMIT, + BGM_BATTLE_PALACE, + BGM_FANFA_RAYQUAZA, + BGM_BATTLE_TOWER, + BGM_ME_BATTLE_SYMBOL, + BGM_BATTLE_DOME_TOURNAMENT, + BGM_BATTLE_PIKE, + BGM_BATTLE_FACTORY, + BGM_BATTLE_LEGENDARY, + BGM_BATTLE_FRONTIER_BRAIN, + BGM_BATTLE_MEW, + BGM_BATTLE_DOME, // end of the human-readable names + /*0x1DA*/ BGM_BATTLE27, // wild BGM_BATTLE31, // aqua/magma grunt BGM_BATTLE20, // trainer BGM_BATTLE32, // gym leader @@ -369,6 +386,81 @@ enum BGM_BATTLE35, // rival BGM_BATTLE38, // elite four BGM_BATTLE30, // aqua/magma leader + /*0x1E4*/ BGM_FRLG_FOLLOW_ME, // FR/LG names not known, human-readable again! + BGM_FRLG_GAMECORNER, + BGM_FRLG_ROCKET_HIDEOUT, + BGM_FRLG_GYM, + BGM_FRLG_JIGGLYPUFF, + BGM_FRLG_OPENING, + BGM_FRLG_TITLE, + BGM_FRLG_CINNABAR_ISLAND, + BGM_FRLG_LAVENDER_TOWN, + BGM_FRLG_HEALING_TEST, + BGM_FRLG_BICYCLE, + BGM_FRLG_SUSPICIOUS_EYE, + BGM_FRLG_GIRL_EYE, + BGM_FRLG_BOY_EYE, + BGM_FRLG_CONGRATULATIONS_HALL_OF_FAME, + BGM_FRLG_VIRIDIAN_FOREST, + BGM_FRLG_MT_MOON, + BGM_FRLG_POKEMON_MANSION, + BGM_FRLG_CREDITS, + BGM_FRLG_ROUTE_1, + BGM_FRLG_ROUTE_24, + BGM_FRLG_ROUTE_3, + BGM_FRLG_ROUTE_11, + BGM_FRLG_INDIGO_PLATEAU, + BGM_FRLG_BATTLE_LEADER, + BGM_FRLG_BATTLE_TRAINER, + BGM_FRLG_BATTLE_WILD_POKEMON, + BGM_FRLG_BATTLE_CHAMPION, + BGM_FRLG_PALLET_TOWN, + BGM_FRLG_OAK_LAB, + BGM_FRLG_PROF_OAK, + BGM_FRLG_POKEMON_CENTER, + BGM_FRLG_SS_ANNE, + BGM_FRLG_SURF, + BGM_FRLG_POKEMON_TOWER, + BGM_FRLG_SILPH, + BGM_FRLG_CERULEAN_CITY, + BGM_FRLG_CELADON_CITY, + BGM_FRLG_KACHI_TRAINER, // KACHI used in RS test - victory + BGM_FRLG_KACHI_WILD_POKEMON, + BGM_FRLG_KACHI_LEADER, + BGM_FRLG_VERMILION_CITY, + BGM_FRLG_VIRIDIAN_CITY, + BGM_FRLG_RIVAL, + BGM_FRLG_RIVAL_POSTBATTLE, + BGM_FRLG_ME_POKEDEX_EVAL, + BGM_FRLG_ME_KEYITEM, + BGM_FRLG_FANFA_POKEMON_CAUGHT, + BGM_FRLG_FANFA_TRAINERCARD_PHOTO, + BGM_FRLG_GAMEFREAK_LOGO, + BGM_FRLG_CAUGHT_POKEMON, + BGM_FRLG_GAME_EXPLANATION_START, + BGM_FRLG_GAME_EXPLANATION_MIDDLE, + BGM_FRLG_GAME_EXPLANATION_END, + BGM_FRLG_POKEMON_JUMP, + BGM_FRLG_UNION_ROOM, + BGM_FRLG_POKEMON_NETWORK_CENTER, + BGM_FRLG_MYSTERY_GIFT, + BGM_FRLG_DODRIO_BERRY_PICK, + BGM_FRLG_MT_EMBER, + BGM_FRLG_TEACHY_TV_EPISODE, + BGM_FRLG_SEVII_ISLANDS, + BGM_FRLG_TANOBY_RUINS, + BGM_FRLG_ISLAND_ONE, + BGM_FRLG_ISLAND_FOUR, + BGM_FRLG_ISLAND_SIX, + BGM_FRLG_FLUTE, + BGM_FRLG_BATTLE_DEOXYS, + BGM_FRLG_BATTLE_MEWTWO, + BGM_FRLG_BATTLE_LEGENDARY, + BGM_FRLG_LEADER_EYE, + BGM_FRLG_DEOXYS_EYE, + BGM_FRLG_TRAINER_TOWER, + BGM_FRLG_HALL_OF_FAME_PALLET_TOWN, + /*0x22E*/BGM_FRLG_TEACHY_TV, }; #endif // GUARD_SONGS_H diff --git a/include/sprite.h b/include/sprite.h index 7b3c9fb5a..838b0d7c0 100644 --- a/include/sprite.h +++ b/include/sprite.h @@ -240,6 +240,8 @@ struct OamMatrix extern const struct OamData gDummyOamData; extern const union AnimCmd *const gDummySpriteAnimTable[]; extern const union AffineAnimCmd *const gDummySpriteAffineAnimTable[]; +extern s16 gSpriteCoordOffsetX; +extern s16 gSpriteCoordOffsetY; extern struct Sprite gSprites[]; diff --git a/include/text.h b/include/text.h index 73e6e5437..217de0687 100644 --- a/include/text.h +++ b/include/text.h @@ -65,54 +65,67 @@ #define CHAR_x 0xEC #define CHAR_y 0xED #define CHAR_z 0xEE +#define CHAR_SPECIAL_F9 0xF9 #define CHAR_COLON 0xF0 #define CHAR_PROMPT_SCROLL 0xFA // waits for button press and scrolls dialog #define CHAR_PROMPT_CLEAR 0xFB // waits for button press and clears dialog #define EXT_CTRL_CODE_BEGIN 0xFC // extended control code #define PLACEHOLDER_BEGIN 0xFD // string placeholder #define CHAR_NEWLINE 0xFE -#define EOS 0xFF // end of string +#define EOS 0xFF // end of string + +#define TEXT_COLOR_TRANSPARENT 0x0 +#define TEXT_COLOR_WHITE 0x1 +#define TEXT_COLOR_DARK_GREY 0x2 + +// battle placeholders are located in battle_message.h #define EXT_CTRL_CODE_JPN 0x15 #define EXT_CTRL_CODE_ENG 0x16 #define NUM_TEXT_PRINTERS 32 +struct TextPrinterSubStruct +{ + u8 font_type:4; // 0x14 + u8 font_type_upper:1; + u8 font_type_5:3; + u8 field_1:5; + u8 field_1_upmid:2; + u8 field_1_top:1; + u8 frames_visible_counter; + u8 field_3; + u8 field_4; // 0x18 + u8 field_5; + u8 field_6; + u8 active; +}; + +struct TextSubPrinter // TODO: Better name +{ + u8* current_text_offset; + u8 windowId; + u8 fontId; + u8 x; + u8 y; + u8 currentX; // 0x8 + u8 currentY; + u8 letterSpacing; + u8 lineSpacing; + u8 fontColor_l:4; // 0xC + u8 fontColor_h:4; + u8 bgColor:4; + u8 shadowColor:4; +}; + struct TextPrinter { - struct TextSubPrinter { // TODO: Better name - u8* current_text_offset; - u8 windowId; - u8 fontId; - u8 x; - u8 y; - u8 currentX; // 0x8 - u8 currentY; - u8 letterSpacing; - u8 lineSpacing; - u8 fontColor_l:4; // 0xC - u8 fontColor_h:4; - u8 bgColor:4; - u8 shadowColor:4; - } subPrinter; + struct TextSubPrinter subPrinter; void (*callback)(struct TextSubPrinter *, u16); // 0x10 union { - struct TextPrinterSubStruct - { - u8 font_type:4; // 0x14 - u8 font_type_upper:4; - u8 field_1:5; - u8 field_1_upmid:2; - u8 field_1_top:1; - u8 frames_visible_counter; - u8 field_3; - u8 field_4; // 0x18 - u8 field_5; - u8 field_6; - u8 active; - } sub; + struct TextPrinterSubStruct sub; u8 sub_fields[8]; } sub_union; @@ -138,28 +151,54 @@ struct FontInfo u8 shadowColor:4; }; -struct GlyphWidthFunc{ +extern const struct FontInfo *gFonts; + +struct GlyphWidthFunc +{ u32 font_id; u32 (*func)(u16 glyphId, bool32 isJapanese); }; -struct KeypadIcon { +struct KeypadIcon +{ u16 tile_offset; u8 width; u8 height; }; +typedef struct { + u8 flag_0:1; + u8 flag_1:1; + u8 flag_2:1; +} TextFlags; + +extern TextFlags gTextFlags; + +struct __attribute__((packed)) TextColor +{ + u8 fgColor; + u8 bgColor; + u8 shadowColor; +}; + extern u8 gStringVar1[]; extern u8 gStringVar2[]; extern u8 gStringVar3[]; extern u8 gStringVar4[]; +u8 gUnknown_03002F84; +u8 gUnknown_03002F90[0x20]; +u8 gUnknown_03002FB0[0x20]; +u8 gUnknown_03002FD0[0x20]; +u8 gUnknown_03002FF0[0x20]; +u8 gGlyphDimensions[0x2]; + void SetFontsPointer(const struct FontInfo *fonts); -void DeactivateAllTextPrinters (void); +void DeactivateAllTextPrinters(void); u16 PrintTextOnWindow(u8 windowId, u8 fontId, u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextSubPrinter *, u16)); bool16 AddTextPrinter(struct TextSubPrinter *textSubPrinter, u8 speed, void (*callback)(struct TextSubPrinter *, u16)); void RunTextPrinters(void); -bool8 IsTextPrinterActive(u8 id); +bool16 IsTextPrinterActive(u8 id); u32 RenderFont(struct TextPrinter *textPrinter); void GenerateFontHalfRowLookupTable(u8 fgColor, u8 bgColor, u8 shadowColor); void SaveTextColors(u8 *fgColor, u8 *bgColor, u8 *shadowColor); @@ -182,13 +221,13 @@ void TextPrinterInitDownArrowCounters(struct TextPrinter *textPrinter); void TextPrinterDrawDownArrow(struct TextPrinter *textPrinter); void TextPrinterClearDownArrow(struct TextPrinter *textPrinter); bool8 TextPrinterWaitAutoMode(struct TextPrinter *textPrinter); -bool8 TextPrinterWaitWithDownArrow(struct TextPrinter *textPrinter); -bool8 TextPrinterWait(struct TextPrinter *textPrinter); +bool16 TextPrinterWaitWithDownArrow(struct TextPrinter *textPrinter); +bool16 TextPrinterWait(struct TextPrinter *textPrinter); void DrawDownArrow(u8 windowId, u16 x, u16 y, u8 bgColor, bool8 drawArrow, u8 *counter, u8 *yCoordIndex); u16 RenderText(struct TextPrinter *textPrinter); -u32 GetStringWidthFixedWidthFont(u8 *str, u8 fontId, u8 letterSpacing); +u32 GetStringWidthFixedWidthFont(const u8 *str, u8 fontId, u8 letterSpacing); u32 (*GetFontWidthFunc(u8 glyphId))(u16, bool32); -s32 GetStringWidth(u8 fontId, u8 *str, s16 letterSpacing); +u32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing); u8 RenderTextFont9(u8 *pixels, u8 fontId, u8 *str); u8 DrawKeypadIcon(u8 windowId, u8 keypadIconId, u16 x, u16 y); u8 GetKeypadIconTileOffset(u8 keypadIconId); diff --git a/include/trainer_see.h b/include/trainer_see.h new file mode 100644 index 000000000..3f39783b8 --- /dev/null +++ b/include/trainer_see.h @@ -0,0 +1,7 @@ +#ifndef GUARD_TRAINER_SEE_H +#define GUARD_TRAINER_SEE_H + +void sub_80B4578(struct MapObject *); +void sub_8155D78(struct MapObject *); + +#endif //GUARD_TRAINER_SEE_H diff --git a/include/unknown_task.h b/include/unknown_task.h new file mode 100644 index 000000000..f59ca9ac3 --- /dev/null +++ b/include/unknown_task.h @@ -0,0 +1,11 @@ +#ifndef GUARD_unknown_task_H +#define GUARD_unknown_task_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations +void remove_some_task(void); + +#endif //GUARD_unknown_task_H diff --git a/include/vars.h b/include/vars.h index 5da960640..7c0edeb77 100644 --- a/include/vars.h +++ b/include/vars.h @@ -12,6 +12,8 @@ #define VAR_0x4008 0x4008 #define VAR_0x4009 0x4009 #define VAR_0x400A 0x400A +#define VAR_0x4010 0x4010 +#define VAR_0x4011 0x4011 #define VAR_0x401F 0x401F #define VAR_RECYCLE_GOODS 0x4020 #define VAR_REPEL_STEP_COUNT 0x4021 diff --git a/include/window.h b/include/window.h index 36a71a1e0..4e814ebc6 100644 --- a/include/window.h +++ b/include/window.h @@ -24,13 +24,24 @@ struct WindowTemplate u16 baseBlock; }; +#define DUMMY_WIN_TEMPLATE \ +{ \ + 0xFF, \ + 0, \ + 0, \ + 0, \ + 0, \ + 0, \ + 0, \ +} + struct Window { struct WindowTemplate window; u8 *tileData; }; -bool16 InitWindows(struct WindowTemplate *templates); +bool16 InitWindows(const struct WindowTemplate *templates); u16 AddWindow(const struct WindowTemplate *template); int AddWindowWithoutTileMap(struct WindowTemplate *template); void RemoveWindow(u8 windowId); @@ -44,7 +55,7 @@ void PutWindowRectTilemap(u8 windowId, u8 x, u8 y, u8 width, u8 height); void BlitBitmapToWindow(u8 windowId, u8 *pixels, u16 x, u16 y, u16 width, u16 height); void BlitBitmapRectToWindow(u8 windowId, const u8 *pixels, u16 srcX, u16 srcY, u16 srcWidth, int srcHeight, u16 destX, u16 destY, u16 rectWidth, u16 rectHeight); void FillWindowPixelRect(u8 windowId, u8 fillValue, u16 x, u16 y, u16 width, u16 height); -void CopyToWindowPixelBuffer(u8 windowId, u8 *src, u16 size, u16 tileOffset); +void CopyToWindowPixelBuffer(u8 windowId, const u8 *src, u16 size, u16 tileOffset); void FillWindowPixelBuffer(u8 windowId, u8 fillValue); void ScrollWindow(u8 windowId, u8 direction, u8 distance, u8 fillValue); void CallWindowFunction(u8 windowId, void ( *func)(u8, u8, u8, u8, u8, u8)); diff --git a/ld_script.txt b/ld_script.txt index bd0aae460..2ef26ac8d 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -58,9 +58,8 @@ SECTIONS { src/decompress.o(.text); asm/battle_1.o(.text); asm/battle_2.o(.text); - asm/battle_3.o(.text); - src/battle_4.o(.text); - asm/battle_4.o(.text); + src/battle_3.o(.text); + src/battle_script_commands.o(.text); asm/battle_5.o(.text); asm/battle_controller_player.o(.text); asm/battle_7.o(.text); @@ -71,7 +70,6 @@ SECTIONS { asm/pokemon_1.o(.text); src/calculate_base_damage.o(.text); src/pokemon_2.o(.text); - asm/pokemon_2.o(.text); asm/pokemon_item_effect.o(.text); src/pokemon_3.o(.text); asm/pokemon_3.o(.text); @@ -80,7 +78,7 @@ SECTIONS { src/util.o(.text); src/blend_palette.o(.text); asm/daycare.o(.text); - asm/egg_hatch.o(.text); + src/egg_hatch.o(.text); asm/battle_interface.o(.text); asm/smokescreen.o(.text); asm/pokeball.o(.text); @@ -92,11 +90,11 @@ SECTIONS { src/new_game.o(.text); asm/rom4.o(.text); asm/fieldmap.o(.text); - asm/metatile_behavior.o(.text); + src/metatile_behavior.o(.text); asm/field_camera.o(.text); asm/field_door.o(.text); asm/field_player_avatar.o(.text); - asm/field_map_obj.o(.text); + src/field_map_obj.o(.text); asm/field_ground_effect.o(.text); asm/map_obj_8097404.o(.text); asm/field_message_box.o(.text); @@ -112,7 +110,7 @@ SECTIONS { asm/reset_rtc_screen.o(.text); src/start_menu.o(.text); asm/start_menu.o(.text); - asm/tileset.o(.text); + src/tileset_anims.o(.text); src/palette.o(.text); src/sound.o(.text); asm/battle_anim.o(.text); @@ -148,7 +146,6 @@ SECTIONS { asm/script_menu.o(.text); asm/naming_screen.o(.text); src/money.o(.text); - asm/money.o(.text); asm/contest_effect.o(.text); asm/record_mixing.o(.text); asm/secret_base.o(.text); @@ -158,8 +155,7 @@ SECTIONS { asm/field_poison.o(.text); src/pokemon_size_record.o(.text); asm/fldeff_80F9BCC.o(.text); - asm/truck_scene.o(.text); - asm/porthole.o(.text); + src/field_special_scene.o(.text); asm/rotating_gate.o(.text); src/safari_zone.o(.text); asm/contest_link_80FC4F4.o(.text); @@ -178,7 +174,7 @@ SECTIONS { asm/decoration.o(.text); asm/slot_machine.o(.text); asm/contest_painting.o(.text); - src/battle_ai.o(.text); + src/battle_ai_script_commands.o(.text); asm/trader.o(.text); asm/starter_choose.o(.text); asm/wallclock.o(.text); @@ -200,7 +196,6 @@ SECTIONS { asm/roulette_util.o(.text); asm/cable_car_util.o(.text); src/save.o(.text); - asm/save.o(.text); asm/mystery_event_script.o(.text); asm/field_effect_helpers.o(.text); asm/contest_ai.o(.text); @@ -211,13 +206,13 @@ SECTIONS { asm/learn_move.o(.text); asm/fldeff_softboiled.o(.text); asm/decoration_inventory.o(.text); - asm/roamer.o(.text); + src/roamer.o(.text); asm/battle_tower.o(.text); asm/use_pokeblock.o(.text); asm/battle_controller_wally.o(.text); asm/player_pc.o(.text); asm/intro.o(.text); - asm/reset_save_heap.o(.text); + src/reset_save_heap.o(.text); asm/field_region_map.o(.text); asm/battle_anim_8170478.o(.text); asm/hall_of_fame.o(.text); @@ -239,8 +234,8 @@ SECTIONS { asm/recorded_battle.o(.text); asm/battle_controller_recorded_opponent.o(.text); asm/battle_controller_recorded_player.o(.text); - asm/battle_dome_cards.o(.text); - asm/lilycove_lady.o(.text); + src/battle_dome_cards.o(.text); + src/lilycove_lady.o(.text); asm/battle_frontier_1.o(.text); asm/new_menu_helpers.o(.text); asm/menu.o(.text); @@ -253,13 +248,13 @@ SECTIONS { asm/item_icon.o(.text); asm/party_menu.o(.text); asm/battle_tent.o(.text); - asm/unk_text_util_2.o(.text); + src/unk_text_util_2.o(.text); src/multiboot.o(.text); asm/unk_81BAD84.o(.text); asm/battle_controller_player_partner.o(.text); asm/fldeff_groundshake.o(.text); asm/fossil_specials.o(.text); - asm/berry_fix_program.o(.text); + src/berry_fix_program.o(.text); src/pokemon_summary_screen.o(.text); asm/pokemon_summary_screen.o(.text); asm/pokenav.o(.text); @@ -331,21 +326,88 @@ SECTIONS { data/link.o(.rodata); src/rtc.o(.rodata); data/data2b.o(.rodata); - src/battle_4.o(.rodata); - data/battle_4.o(.rodata); + src/battle_script_commands.o(.rodata); data/battle_controller_player.o(.rodata); - data/data2b_2.o(.rodata); + data/smokescreen.o(.rodata); data/battle_controller_opponent.o(.rodata); data/battle_controller_link_opponent.o(.rodata); data/data2c.o(.rodata); src/trig.o(.rodata); src/util.o(.rodata); - data/data3.o(.rodata); + data/daycare.o(.rodata); + src/egg_hatch.o(.rodata); + data/battle_7.o(.rodata); + data/battle_interface.o(.rodata); + data/pokeball.o(.rodata); + data/trade.o(.rodata); + data/berry_blender.o(.rodata); + src/new_game.o(.rodata); + data/rom4.o(.rodata); + data/fieldmap.o(.rodata); + src/metatile_behavior.o(.rodata); + data/rom_8486FEC.o(.rodata); + data/field_door.o(.rodata); + data/field_player_avatar.o(.rodata); + data/field_map_obj.o(.rodata); + data/field_ground_effect.o(.rodata); + data/map_obj_8097404.o(.rodata); + data/text_window.o(.rodata); + data/scrcmd.o(.rodata); + data/coord_event_weather.o(.rodata); + data/field_tasks.o(.rodata); + data/reset_rtc_screen.o(.rodata); + data/start_menu.o(.rodata); + src/tileset_anims.o(.rodata); + src/palette.o(.rodata); + data/fanfares.o(.rodata); + data/battle_anims.o(.rodata); + data/title_screen.o(.rodata); + data/field_screen.o(.rodata); + data/battle_setup.o(.rodata); + data/cable_club.o(.rodata); + data/trainer_see.o(.rodata); + data/fldeff_emotion.o(.rodata); + data/wild_encounter.o(.rodata); + data/field_effect.o(.rodata); + data/option_menu.o(.rodata); + data/pokedex.o(.rodata); + data/trainer_card.o(.rodata); + data/pokemon_storage_system.o(.rodata); + data/pokemon_icon.o(.rodata); + data/fldeff_cut.o(.rodata); + data/map_name_popup.o(.rodata); + data/item_menu_icons.o(.rodata); + data/contest.o(.rodata); + data/shop.o(.rodata); src/berry.o(.rodata); - data/data3_a1.o(.rodata); + data/script_menu.o(.rodata); + data/naming_screen.o(.rodata); + src/money.o(.rodata); + data/contest_effect.o(.rodata); + data/record_mixing.o(.rodata); + data/secret_base.o(.rodata); + data/tv.o(.rodata); + data/contest_link_80F57C4.o(.rodata); + data/script_pokemon_util_80F87D8.o(.rodata); src/pokemon_size_record.o(.rodata) - data/data3b.o(.rodata); - src/battle_ai.o(.rodata); + data/field_effect_misc.o(.rodata); + data/field_special_scene.o(.rodata); + data/rotating_gate.o(.rodata); + data/item_use.o(.rodata); + data/battle_anim_80FE840.o(.rodata); + data/bike.o(.rodata); + data/easy_chat.o(.rodata); + data/mon_markings.o(.rodata); + data/mauville_old_man.o(.rodata); + data/mail.o(.rodata); + data/menu_helpers.o(.rodata); + data/heal_location.o(.rodata); + data/region_map.o(.rodata); + data/cute_sketch.o(.rodata); + data/decoration.o(.rodata); + data/slot_machine.o(.rodata); + data/contest_painting.o(.rodata); + src/battle_ai_script_commands.o(.rodata); data/data4.o(.rodata); data/battle_controller_link_partner.o(.rodata); data/battle_message.o(.rodata); @@ -354,7 +416,11 @@ SECTIONS { data/field_effect_helpers.o(.rodata); data/contest_ai.o(.rodata); data/battle_controller_safari.o(.rodata); - data/rom_8158B30.o(.rodata); + data/battle_anim_815A0D4.o(.rodata); + data/learn_move.o(.rodata); + src/roamer.o(.rodata); + data/battle_tower.o(.rodata); + data/use_pokeblock.o(.rodata); data/battle_controller_wally.o(.rodata); data/player_pc.o(.rodata); data/intro.o(.rodata); @@ -377,9 +443,30 @@ SECTIONS { data/data_860A4AC.o(.rodata); data/battle_controller_recorded_opponent.o(.rodata); data/battle_controller_recorded_player.o(.rodata); - data/data_emerald.o(.rodata); + src/battle_dome_cards.o(.rodata); + src/lilycove_lady.o(.rodata); + data/battle_frontier_1.o(.rodata); + data/new_menu_helpers.o(.rodata); + data/battle_frontier_2.o(.rodata); + data/item_menu.o(.rodata); + data/menu_indicators.o(.rodata); + data/save_location.o(.rodata); + data/item_icon.o(.rodata); + data/party_menu.o(.rodata); + data/battle_tent.o(.rodata); + src/unk_text_util_2.o(.rodata); + data/unk_81BAD84.o(.rodata); data/battle_controller_player_partner.o(.rodata); - data/data_emerald2.o(.rodata); + data/fossil_special_fldeff_groundshake.o(.rodata); + src/berry_fix_program.o(.rodata); + data/pokemon_summary_screen.o(.rodata); + data/pokenav.o(.rodata); + data/rayquaza_scene.o(.rodata); + data/walda_phrase.o(.rodata); + data/trainer_rematch.o(.rodata); + data/unk_sprite_file.o(.rodata); + data/unk_transition.o(.rodata); + data/link_strings.o(.rodata); data/fonts.o(.rodata); data/mystery_event_msg.o(.rodata); src/m4a_tables.o(.rodata); diff --git a/src/battle_1.c b/src/battle_1.c new file mode 100644 index 000000000..5e4ef5583 --- /dev/null +++ b/src/battle_1.c @@ -0,0 +1,17 @@ + +// Includes +#include "global.h" + +// Static type declarations + +// Static RAM declarations + +IWRAM_DATA u32 gUnknown_03000DD4; +IWRAM_DATA u32 gUnknown_03000DD8; +IWRAM_DATA u32 gUnknown_03000DDC; + +// Static ROM declarations + +// .rodata + +// .text diff --git a/src/battle_3.c b/src/battle_3.c new file mode 100644 index 000000000..e42d9317d --- /dev/null +++ b/src/battle_3.c @@ -0,0 +1,6408 @@ +#include "global.h" +#include "battle.h" +#include "abilities.h" +#include "moves.h" +#include "hold_effects.h" +#include "pokemon.h" +#include "species.h" +#include "item.h" +#include "items.h" +#include "util.h" +#include "battle_move_effects.h" +#include "rng.h" +#include "text.h" +#include "string_util.h" +#include "battle_message.h" +#include "battle_ai_script_commands.h" +#include "battle_controllers.h" +#include "event_data.h" +#include "calculate_base_damage.h" + +extern const u8* gBattlescriptCurrInstr; +extern const u8* gUnknown_02024220[BATTLE_BANKS_COUNT]; +extern const u8* gUnknown_02024230[BATTLE_BANKS_COUNT]; +extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; +extern u8 gActiveBank; +extern u8 gStringBank; +extern u16 gCurrentMove; +extern u16 gLastUsedItem; +extern u8 gNoOfAllBanks; +extern u32 gStatuses3[BATTLE_BANKS_COUNT]; +extern u8 gBankAttacker; +extern u8 gBankTarget; +extern u8 gAbsentBankFlags; +extern u16 gBattleWeather; +extern u8 gTurnOrder[BATTLE_BANKS_COUNT]; +extern u16 gSideAffecting[]; +extern u8 gBattleCommunication[]; +extern void (*gBattleMainFunc)(void); +extern s32 gBattleMoveDamage; +extern struct BattleEnigmaBerry gEnigmaBerries[BATTLE_BANKS_COUNT]; +extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200]; +extern u32 gBattleTypeFlags; +extern u16 gLastUsedMovesByBanks[BATTLE_BANKS_COUNT]; +extern u32 gHitMarker; +extern u8 gEffectBank; +extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; +extern u8 gBank1; +extern u16 gChosenMovesByBanks[]; +extern u8 gBattleMoveFlags; +extern s32 gTakenDmg[BATTLE_BANKS_COUNT]; +extern u8 gTakenDmgBanks[BATTLE_BANKS_COUNT]; +extern u8 gLastUsedAbility; +extern u8 gFightStateTracker; +extern u32 gBattleExecBuffer; +extern u16 gRandomMove; +extern u8 gCurrMovePos; +extern u8 gUnknown_020241E9; + +extern const struct BattleMove gBattleMoves[]; + +// scripts +extern const u8 gUnknown_082DAE2A[]; +extern const u8 gUnknown_082DAE1F[]; +extern const u8 gUnknown_082DB089[]; +extern const u8 gUnknown_082DB098[]; +extern const u8 gUnknown_082DB0AF[]; +extern const u8 gUnknown_082DB0A0[]; +extern const u8 gUnknown_082DB185[]; +extern const u8 gUnknown_082DB181[]; +extern const u8 gUnknown_082DB812[]; +extern const u8 gUnknown_082DB076[]; +extern const u8 BattleScript_NoMovesLeft[]; +extern const u8 gUnknown_082DACFA[]; +extern const u8 gUnknown_082DAD0B[]; +extern const u8 gUnknown_082DACC9[]; +extern const u8 gUnknown_082DAC47[]; +extern const u8 gUnknown_082DACE0[]; +extern const u8 gUnknown_082DACD2[]; +extern const u8 BattleScript_WishComesTrue[]; +extern const u8 gUnknown_082DACC9[]; +extern const u8 gUnknown_082DAC2C[]; +extern const u8 BattleScript_IngrainTurnHeal[]; +extern const u8 BattleScript_LeechSeedTurnDrain[]; +extern const u8 BattleScript_PoisonTurnDmg[]; +extern const u8 BattleScript_BurnTurnDmg[]; +extern const u8 BattleScript_NightmareTurnDmg[]; +extern const u8 BattleScript_CurseTurnDmg[]; +extern const u8 BattleScript_WrapTurnDmg[]; +extern const u8 BattleScript_WrapEnds[]; +extern const u8 gUnknown_082DB234[]; +extern const u8 gUnknown_082DB2A6[]; +extern const u8 BattleScript_ThrashConfuses[]; +extern const u8 BattleScript_DisabledNoMore[]; +extern const u8 BattleScript_EncoredNoMore[]; +extern const u8 BattleScript_YawnMakesAsleep[]; +extern const u8 gUnknown_082DAFE4[]; +extern const u8 gUnknown_082DB8F3[]; +extern const u8 gUnknown_082DAF05[]; +extern const u8 gUnknown_082DAF20[]; +extern const u8 gUnknown_082DA7C4[]; +extern const u8 gUnknown_082DA7CD[]; +extern const u8 BattleScript_MoveUsedWokeUp[]; +extern const u8 BattleScript_MoveUsedIsAsleep[]; +extern const u8 BattleScript_MoveUsedIsFrozen[]; +extern const u8 BattleScript_MoveUsedUnfroze[]; +extern const u8 BattleScript_MoveUsedLoafingAround[]; +extern const u8 BattleScript_MoveUsedMustRecharge[]; +extern const u8 BattleScript_MoveUsedFlinched[]; +extern const u8 BattleScript_MoveUsedIsDisabled[]; +extern const u8 BattleScript_MoveUsedIsTaunted[]; +extern const u8 BattleScript_MoveUsedIsImprisoned[]; +extern const u8 BattleScript_MoveUsedIsConfused[]; +extern const u8 BattleScript_MoveUsedIsConfusedNoMore[]; +extern const u8 BattleScript_MoveUsedIsParalyzed[]; +extern const u8 BattleScript_MoveUsedIsParalyzedCantAttack[]; +extern const u8 BattleScript_MoveUsedIsInLove[]; +extern const u8 BattleScript_BideStoringEnergy[]; +extern const u8 BattleScript_BideAttack[]; +extern const u8 BattleScript_BideNoEnergyToAttack[]; +extern const u8 gUnknown_082DACE7[]; +extern const u8 BattleScript_DrizzleActivates[]; +extern const u8 BattleScript_SandstreamActivates[]; +extern const u8 BattleScript_DroughtActivates[]; +extern const u8 BattleScript_CastformChange[]; +extern const u8 BattleScript_RainDishActivates[]; +extern const u8 BattleScript_ShedSkinActivates[]; +extern const u8 BattleScript_SpeedBoostActivates[]; +extern const u8 BattleScript_SoundproofProtected[]; +extern const u8 BattleScript_MoveHPDrain[]; +extern const u8 BattleScript_MoveHPDrain_PPLoss[]; +extern const u8 BattleScript_FlashFireBoost[]; +extern const u8 BattleScript_FlashFireBoost_PPLoss[]; +extern const u8 BattleScript_ColorChangeActivates[]; +extern const u8 BattleScript_RoughSkinActivates[]; +extern const u8 BattleScript_ApplySecondaryEffect[]; +extern const u8 BattleScript_CuteCharmActivates[]; +extern const u8 gUnknown_082DB68C[]; +extern const u8 BattleScript_SynchronizeActivates[]; +extern const u8 gUnknown_082DB4B8[]; +extern const u8 gUnknown_082DB4C1[]; +extern const u8 BattleScript_TraceActivates[]; + +extern const u8 BattleScript_WhiteHerbEnd2[]; +extern const u8 BattleScript_WhiteHerbRet[]; +extern const u8 BattleScript_ItemHealHP_RemoveItem[]; +extern const u8 BattleScript_BerryPPHealEnd2[]; +extern const u8 BattleScript_ItemHealHP_End2[]; +extern const u8 BattleScript_BerryConfuseHealEnd2[]; +extern const u8 BattleScript_BerryStatRaiseEnd2[]; +extern const u8 BattleScript_BerryFocusEnergyEnd2[]; +extern const u8 BattleScript_BerryCurePrlzEnd2[]; +extern const u8 BattleScript_BerryCurePsnEnd2[]; +extern const u8 BattleScript_BerryCureBrnEnd2[]; +extern const u8 BattleScript_BerryCureFrzEnd2[]; +extern const u8 BattleScript_BerryCureSlpEnd2[]; +extern const u8 BattleScript_BerryCureConfusionEnd2[]; +extern const u8 BattleScript_BerryCureChosenStatusEnd2[]; +extern const u8 BattleScript_BerryCureParRet[]; +extern const u8 BattleScript_BerryCurePsnRet[]; +extern const u8 BattleScript_BerryCureBrnRet[]; +extern const u8 BattleScript_BerryCureFrzRet[]; +extern const u8 BattleScript_BerryCureSlpRet[]; +extern const u8 BattleScript_BerryCureConfusionRet[]; +extern const u8 BattleScript_BerryCureChosenStatusRet[]; +extern const u8 BattleScript_ItemHealHP_Ret[]; + +extern const u8 gUnknown_082DB695[]; //disobedient while asleep +extern const u8 gUnknown_082DB6A5[]; //disobedient, uses a random move +extern const u8 gUnknown_082DB6D9[]; //disobedient, went to sleep +extern const u8 gUnknown_082DB6F0[]; //disobedient, hits itself + +extern const u8 gStatusConditionString_PoisonJpn[]; +extern const u8 gStatusConditionString_SleepJpn[]; +extern const u8 gStatusConditionString_ParalysisJpn[]; +extern const u8 gStatusConditionString_BurnJpn[]; +extern const u8 gStatusConditionString_IceJpn[]; +extern const u8 gStatusConditionString_ConfusionJpn[]; +extern const u8 gStatusConditionString_LoveJpn[]; +extern const u16 gSoundMovesTable[]; + +extern u8 b_first_side(u8, u8, u8); +extern void sub_803CEDC(u8, u8); +extern void BattleTurnPassed(void); +extern void sub_803F9EC(); +extern bool8 sub_80423F4(u8 bank, u8, u8); +extern u8 weather_get_current(void); +extern void sub_803E08C(void); +extern void bc_move_exec_returning(void); +extern s8 GetFlavourRelationByPersonality(u32 personality, u8 flavor); + +void BattleScriptPush(const u8* bsPtr) +{ + BATTLESCRIPTS_STACK->ptr[BATTLESCRIPTS_STACK->size++] = bsPtr; +} + +void BattleScriptPushCursor(void) +{ + BATTLESCRIPTS_STACK->ptr[BATTLESCRIPTS_STACK->size++] = gBattlescriptCurrInstr; +} + +void BattleScriptPop(void) +{ + gBattlescriptCurrInstr = BATTLESCRIPTS_STACK->ptr[--BATTLESCRIPTS_STACK->size]; +} + +u8 sub_803FB4C(void) // msg, can't select a move +{ + u8 limitations = 0; + u16 move = gBattleMons[gActiveBank].moves[gBattleBufferB[gActiveBank][2]]; + u8 holdEffect; + u16* choicedMove = &gBattleStruct->choicedMove[gActiveBank]; + + if (gDisableStructs[gActiveBank].disabledMove == move && move != 0) + { + gBattleScripting.bank = gActiveBank; + gCurrentMove = move; + if (gBattleTypeFlags & BATTLE_TYPE_PALACE) + { + gUnknown_02024230[gActiveBank] = gUnknown_082DAE2A; + gProtectStructs[gActiveBank].flag_x10 = 1; + } + else + { + gUnknown_02024220[gActiveBank] = gUnknown_082DAE1F; + limitations = 1; + } + } + + if (move == gLastUsedMovesByBanks[gActiveBank] && move != MOVE_STRUGGLE && (gBattleMons[gActiveBank].status2 & STATUS2_TORMENT)) + { + CancelMultiTurnMoves(gActiveBank); + if (gBattleTypeFlags & BATTLE_TYPE_PALACE) + { + gUnknown_02024230[gActiveBank] = gUnknown_082DB098; + gProtectStructs[gActiveBank].flag_x10 = 1; + } + else + { + gUnknown_02024220[gActiveBank] = gUnknown_082DB089; + limitations++; + } + } + + if (gDisableStructs[gActiveBank].tauntTimer1 != 0 && gBattleMoves[move].power == 0) + { + gCurrentMove = move; + if (gBattleTypeFlags & BATTLE_TYPE_PALACE) + { + gUnknown_02024230[gActiveBank] = gUnknown_082DB0AF; + gProtectStructs[gActiveBank].flag_x10 = 1; + } + else + { + gUnknown_02024220[gActiveBank] = gUnknown_082DB0A0; + limitations++; + } + } + + if (GetImprisonedMovesCount(gActiveBank, move)) + { + gCurrentMove = move; + if (gBattleTypeFlags & BATTLE_TYPE_PALACE) + { + gUnknown_02024230[gActiveBank] = gUnknown_082DB185; + gProtectStructs[gActiveBank].flag_x10 = 1; + } + else + { + gUnknown_02024220[gActiveBank] = gUnknown_082DB181; + limitations++; + } + } + + if (gBattleMons[gActiveBank].item == ITEM_ENIGMA_BERRY) + holdEffect = gEnigmaBerries[gActiveBank].holdEffect; + else + holdEffect = ItemId_GetHoldEffect(gBattleMons[gActiveBank].item); + + gStringBank = gActiveBank; + + if (holdEffect == HOLD_EFFECT_CHOICE_BAND && *choicedMove != 0 && *choicedMove != 0xFFFF && *choicedMove != move) + { + gCurrentMove = *choicedMove; + gLastUsedItem = gBattleMons[gActiveBank].item; + if (gBattleTypeFlags & BATTLE_TYPE_PALACE) + { + gProtectStructs[gActiveBank].flag_x10 = 1; + } + else + { + gUnknown_02024220[gActiveBank] = gUnknown_082DB812; + limitations++; + } + } + + if (gBattleMons[gActiveBank].pp[gBattleBufferB[gActiveBank][2]] == 0) + { + if (gBattleTypeFlags & BATTLE_TYPE_PALACE) + { + gProtectStructs[gActiveBank].flag_x10 = 1; + } + else + { + gUnknown_02024220[gActiveBank] = gUnknown_082DB076; + limitations++; + } + } + + return limitations; +} + +u8 CheckMoveLimitations(u8 bank, u8 unusableMoves, u8 check) +{ + u8 holdEffect; + u16* choicedMove = &gBattleStruct->choicedMove[bank]; + s32 i; + + if (gBattleMons[bank].item == ITEM_ENIGMA_BERRY) + holdEffect = gEnigmaBerries[bank].holdEffect; + else + holdEffect = ItemId_GetHoldEffect(gBattleMons[bank].item); + + gStringBank = bank; + + for (i = 0; i < BATTLE_BANKS_COUNT; i++) + { + if (gBattleMons[bank].moves[i] == 0 && check & MOVE_LIMITATION_ZEROMOVE) + unusableMoves |= gBitTable[i]; + if (gBattleMons[bank].pp[i] == 0 && check & MOVE_LIMITATION_PP) + unusableMoves |= gBitTable[i]; + if (gBattleMons[bank].moves[i] == gDisableStructs[bank].disabledMove && check & MOVE_LIMITATION_DISABLED) + unusableMoves |= gBitTable[i]; + if (gBattleMons[bank].moves[i] == gLastUsedMovesByBanks[bank] && check & MOVE_LIMITATION_TORMENTED && gBattleMons[bank].status2 & STATUS2_TORMENT) + unusableMoves |= gBitTable[i]; + if (gDisableStructs[bank].tauntTimer1 && check & MOVE_LIMITATION_TAUNT && gBattleMoves[gBattleMons[bank].moves[i]].power == 0) + unusableMoves |= gBitTable[i]; + if (GetImprisonedMovesCount(bank, gBattleMons[bank].moves[i]) && check & MOVE_LIMITATION_IMPRISION) + unusableMoves |= gBitTable[i]; + if (gDisableStructs[bank].encoreTimer1 && gDisableStructs[bank].encoredMove != gBattleMons[bank].moves[i]) + unusableMoves |= gBitTable[i]; + if (holdEffect == HOLD_EFFECT_CHOICE_BAND && *choicedMove != 0 && *choicedMove != 0xFFFF && *choicedMove != gBattleMons[bank].moves[i]) + unusableMoves |= gBitTable[i]; + } + return unusableMoves; +} + +bool8 AreAllMovesUnusable(void) +{ + u8 unusable; + unusable = CheckMoveLimitations(gActiveBank, 0, 0xFF); + + if (unusable == 0xF) // all moves are unusable + { + gProtectStructs[gActiveBank].onlyStruggle = 1; + gUnknown_02024220[gActiveBank] = BattleScript_NoMovesLeft; + } + else + { + gProtectStructs[gActiveBank].onlyStruggle = 0; + } + + return (unusable == 0xF); +} + +u8 GetImprisonedMovesCount(u8 bank, u16 move) +{ + s32 i; + u8 imprisionedMoves = 0; + u8 bankSide = GetBankSide(bank); + + for (i = 0; i < gNoOfAllBanks; i++) + { + if (bankSide != GetBankSide(i) && gStatuses3[i] & STATUS3_IMPRISONED_OTHERS) + { + s32 j; + for (j = 0; j < 4; j++) + { + if (move == gBattleMons[i].moves[j]) + break; + } + if (j < 4) + imprisionedMoves++; + } + } + + return imprisionedMoves; +} + +u8 UpdateTurnCounters(void) +{ + u8 effect = 0; + s32 i; + + for (gBankAttacker = 0; gBankAttacker < gNoOfAllBanks && gAbsentBankFlags & gBitTable[gBankAttacker]; gBankAttacker++) + { + } + for (gBankTarget = 0; gBankTarget < gNoOfAllBanks && gAbsentBankFlags & gBitTable[gBankTarget]; gBankTarget++) + { + } + + do + { + u8 sideBank; + + switch (gBattleStruct->turncountersTracker) + { + case 0: + for (i = 0; i < gNoOfAllBanks; i++) + { + gTurnOrder[i] = i; + } + for (i = 0; i < gNoOfAllBanks - 1; i++) + { + s32 j; + for (j = i + 1; j < gNoOfAllBanks; j++) + { + if (b_first_side(gTurnOrder[i], gTurnOrder[j], 0)) + sub_803CEDC(i, j); + } + } + + // It's stupid, but won't match without it + { + u8* var = &gBattleStruct->turncountersTracker; + (*var)++; + gBattleStruct->turnSideTracker = 0; + } + // fall through + case 1: + while (gBattleStruct->turnSideTracker < 2) + { + sideBank = gBattleStruct->turnSideTracker; + gActiveBank = gBankAttacker = gSideTimers[sideBank].reflectBank; + if (gSideAffecting[sideBank] & SIDE_STATUS_REFLECT) + { + if (--gSideTimers[sideBank].reflectTimer == 0) + { + gSideAffecting[sideBank] &= ~SIDE_STATUS_REFLECT; + BattleScriptExecute(gUnknown_082DACFA); + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 2; + gBattleTextBuff1[2] = MOVE_REFLECT; + gBattleTextBuff1[3] = MOVE_REFLECT >> 8; + gBattleTextBuff1[4] = EOS; + effect++; + } + } + gBattleStruct->turnSideTracker++; + if (effect) + break; + } + if (!effect) + { + gBattleStruct->turncountersTracker++; + gBattleStruct->turnSideTracker = 0; + } + break; + case 2: + while (gBattleStruct->turnSideTracker < 2) + { + sideBank = gBattleStruct->turnSideTracker; + gActiveBank = gBankAttacker = gSideTimers[sideBank].lightscreenBank; + if (gSideAffecting[sideBank] & SIDE_STATUS_LIGHTSCREEN) + { + if (--gSideTimers[sideBank].lightscreenTimer == 0) + { + gSideAffecting[sideBank] &= ~SIDE_STATUS_LIGHTSCREEN; + BattleScriptExecute(gUnknown_082DACFA); + gBattleCommunication[MULTISTRING_CHOOSER] = sideBank; + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 2; + gBattleTextBuff1[2] = MOVE_LIGHT_SCREEN; + gBattleTextBuff1[3] = MOVE_LIGHT_SCREEN >> 8; + gBattleTextBuff1[4] = EOS; + effect++; + } + } + gBattleStruct->turnSideTracker++; + if (effect) + break; + } + if (!effect) + { + gBattleStruct->turncountersTracker++; + gBattleStruct->turnSideTracker = 0; + } + break; + case 3: + while (gBattleStruct->turnSideTracker < 2) + { + sideBank = gBattleStruct->turnSideTracker; + gActiveBank = gBankAttacker = gSideTimers[sideBank].mistBank; + if (gSideTimers[sideBank].mistTimer != 0 + && --gSideTimers[sideBank].mistTimer == 0) + { + gSideAffecting[sideBank] &= ~SIDE_STATUS_MIST; + BattleScriptExecute(gUnknown_082DACFA); + gBattleCommunication[MULTISTRING_CHOOSER] = sideBank; + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 2; + gBattleTextBuff1[2] = MOVE_MIST; + gBattleTextBuff1[3] = MOVE_MIST >> 8; + gBattleTextBuff1[4] = EOS; + effect++; + } + gBattleStruct->turnSideTracker++; + if (effect) + break; + } + if (!effect) + { + gBattleStruct->turncountersTracker++; + gBattleStruct->turnSideTracker = 0; + } + break; + case 4: + while (gBattleStruct->turnSideTracker < 2) + { + sideBank = gBattleStruct->turnSideTracker; + gActiveBank = gBankAttacker = gSideTimers[sideBank].safeguardBank; + if (gSideAffecting[sideBank] & SIDE_STATUS_SAFEGUARD) + { + if (--gSideTimers[sideBank].safeguardTimer == 0) + { + gSideAffecting[sideBank] &= ~SIDE_STATUS_SAFEGUARD; + BattleScriptExecute(gUnknown_082DAD0B); + effect++; + } + } + gBattleStruct->turnSideTracker++; + if (effect) + break; + } + if (!effect) + { + gBattleStruct->turncountersTracker++; + gBattleStruct->turnSideTracker = 0; + } + break; + case 5: + while (gBattleStruct->turnSideTracker < gNoOfAllBanks) + { + gActiveBank = gTurnOrder[gBattleStruct->turnSideTracker]; + if (gWishFutureKnock.wishCounter[gActiveBank] != 0 + && --gWishFutureKnock.wishCounter[gActiveBank] == 0 + && gBattleMons[gActiveBank].hp != 0) + { + gBankTarget = gActiveBank; + BattleScriptExecute(BattleScript_WishComesTrue); + effect++; + } + gBattleStruct->turnSideTracker++; + if (effect) + break; + } + if (!effect) + { + gBattleStruct->turncountersTracker++; + } + break; + case 6: + if (gBattleWeather & WEATHER_RAIN_ANY) + { + if (!(gBattleWeather & WEATHER_RAIN_PERMANENT)) + { + if (--gWishFutureKnock.weatherDuration == 0) + { + gBattleWeather &= ~WEATHER_RAIN_TEMPORARY; + gBattleWeather &= ~WEATHER_RAIN_DOWNPOUR; + gBattleCommunication[MULTISTRING_CHOOSER] = 2; + } + else if (gBattleWeather & WEATHER_RAIN_DOWNPOUR) + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + else + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + } + else if (gBattleWeather & WEATHER_RAIN_DOWNPOUR) + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + else + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + BattleScriptExecute(gUnknown_082DAC2C); + effect++; + } + gBattleStruct->turncountersTracker++; + break; + case 7: + if (gBattleWeather & WEATHER_SANDSTORM_ANY) + { + if (!(gBattleWeather & WEATHER_SANDSTORM_PERMANENT) && --gWishFutureKnock.weatherDuration == 0) + { + gBattleWeather &= ~WEATHER_SANDSTORM_TEMPORARY; + gBattlescriptCurrInstr = gUnknown_082DACC9; + } + else + gBattlescriptCurrInstr = gUnknown_082DAC47; + + gBattleScripting.animArg1 = 0xC; + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + BattleScriptExecute(gBattlescriptCurrInstr); + effect++; + } + gBattleStruct->turncountersTracker++; + break; + case 8: + if (gBattleWeather & WEATHER_SUN_ANY) + { + if (!(gBattleWeather & WEATHER_SUN_PERMANENT) && --gWishFutureKnock.weatherDuration == 0) + { + gBattleWeather &= ~WEATHER_SUN_TEMPORARY; + gBattlescriptCurrInstr = gUnknown_082DACE0; + } + else + gBattlescriptCurrInstr = gUnknown_082DACD2; + + BattleScriptExecute(gBattlescriptCurrInstr); + effect++; + } + gBattleStruct->turncountersTracker++; + break; + case 9: + if (gBattleWeather & WEATHER_HAIL) + { + if (--gWishFutureKnock.weatherDuration == 0) + { + gBattleWeather &= ~WEATHER_HAIL; + gBattlescriptCurrInstr = gUnknown_082DACC9; + } + else + gBattlescriptCurrInstr = gUnknown_082DAC47; + + gBattleScripting.animArg1 = 0xD; + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + BattleScriptExecute(gBattlescriptCurrInstr); + effect++; + } + gBattleStruct->turncountersTracker++; + break; + case 10: + effect++; + break; + } + } while (effect == 0); + return (gBattleMainFunc != BattleTurnPassed); +} + +#define TURNBASED_MAX_CASE 19 + +u8 TurnBasedEffects(void) +{ + u8 effect = 0; + + gHitMarker |= (HITMARKER_GRUDGE | HITMARKER_x20); + while (gBattleStruct->turnEffectsBank < gNoOfAllBanks && gBattleStruct->turnEffectsTracker <= TURNBASED_MAX_CASE) + { + gActiveBank = gBankAttacker = gTurnOrder[gBattleStruct->turnEffectsBank]; + if (gAbsentBankFlags & gBitTable[gActiveBank]) + { + gBattleStruct->turnEffectsBank++; + } + else + { + switch (gBattleStruct->turnEffectsTracker) + { + case 0: // ingrain + if ((gStatuses3[gActiveBank] & STATUS3_ROOTED) + && gBattleMons[gActiveBank].hp != gBattleMons[gActiveBank].maxHP + && gBattleMons[gActiveBank].hp != 0) + { + gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 16; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + gBattleMoveDamage *= -1; + BattleScriptExecute(BattleScript_IngrainTurnHeal); + effect++; + } + gBattleStruct->turnEffectsTracker++; + break; + case 1: // end turn abilities + if (AbilityBattleEffects(ABILITYEFFECT_ENDTURN, gActiveBank, 0, 0, 0)) + effect++; + gBattleStruct->turnEffectsTracker++; + break; + case 2: // item effects + if (ItemBattleEffects(1, gActiveBank, 0)) + effect++; + gBattleStruct->turnEffectsTracker++; + break; + case 18: // item effects again + if (ItemBattleEffects(1, gActiveBank, 1)) + effect++; + gBattleStruct->turnEffectsTracker++; + break; + case 3: // leech seed + if ((gStatuses3[gActiveBank] & STATUS3_LEECHSEED) + && gBattleMons[gStatuses3[gActiveBank] & STATUS3_LEECHSEED_BANK].hp != 0 + && gBattleMons[gActiveBank].hp != 0) + { + gBankTarget = gStatuses3[gActiveBank] & STATUS3_LEECHSEED_BANK; //funny how the 'target' is actually the bank that receives HP + gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 8; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + gBattleScripting.animArg1 = gBankTarget; + gBattleScripting.animArg2 = gBankAttacker; + BattleScriptExecute(BattleScript_LeechSeedTurnDrain); + effect++; + } + gBattleStruct->turnEffectsTracker++; + break; + case 4: // poison + if ((gBattleMons[gActiveBank].status1 & STATUS_POISON) && gBattleMons[gActiveBank].hp != 0) + { + gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 8; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + BattleScriptExecute(BattleScript_PoisonTurnDmg); + effect++; + } + gBattleStruct->turnEffectsTracker++; + break; + case 5: // toxic poison + if ((gBattleMons[gActiveBank].status1 & STATUS_TOXIC_POISON) && gBattleMons[gActiveBank].hp != 0) + { + gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 16; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + if ((gBattleMons[gActiveBank].status1 & 0xF00) != 0xF00) //not 16 turns + gBattleMons[gActiveBank].status1 += 0x100; + gBattleMoveDamage *= (gBattleMons[gActiveBank].status1 & 0xF00) >> 8; + BattleScriptExecute(BattleScript_PoisonTurnDmg); + effect++; + } + gBattleStruct->turnEffectsTracker++; + break; + case 6: // burn + if ((gBattleMons[gActiveBank].status1 & STATUS_BURN) && gBattleMons[gActiveBank].hp != 0) + { + gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 8; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + BattleScriptExecute(BattleScript_BurnTurnDmg); + effect++; + } + gBattleStruct->turnEffectsTracker++; + break; + case 7: // spooky nightmares + if ((gBattleMons[gActiveBank].status2 & STATUS2_NIGHTMARE) && gBattleMons[gActiveBank].hp != 0) + { + // R/S does not perform this sleep check, which causes the nighmare effect to + // persist even after the affected Pokemon has been awakened by Shed Skin + if (gBattleMons[gActiveBank].status1 & STATUS_SLEEP) + { + gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 4; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + BattleScriptExecute(BattleScript_NightmareTurnDmg); + effect++; + } + else + { + gBattleMons[gActiveBank].status2 &= ~STATUS2_NIGHTMARE; + } + } + gBattleStruct->turnEffectsTracker++; + break; + case 8: // curse + if ((gBattleMons[gActiveBank].status2 & STATUS2_CURSED) && gBattleMons[gActiveBank].hp != 0) + { + gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 4; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + BattleScriptExecute(BattleScript_CurseTurnDmg); + effect++; + } + gBattleStruct->turnEffectsTracker++; + break; + case 9: // wrap + if ((gBattleMons[gActiveBank].status2 & STATUS2_WRAPPED) && gBattleMons[gActiveBank].hp != 0) + { + gBattleMons[gActiveBank].status2 -= 0x2000; + if (gBattleMons[gActiveBank].status2 & STATUS2_WRAPPED) // damaged by wrap + { + // This is the only way I could get this array access to match. + gBattleScripting.animArg1 = *(gBattleStruct->wrappedMove + gActiveBank * 2 + 0); + gBattleScripting.animArg2 = *(gBattleStruct->wrappedMove + gActiveBank * 2 + 1); + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 2; + gBattleTextBuff1[2] = *(gBattleStruct->wrappedMove + gActiveBank * 2 + 0); + gBattleTextBuff1[3] = *(gBattleStruct->wrappedMove + gActiveBank * 2 + 1); + gBattleTextBuff1[4] = EOS; + gBattlescriptCurrInstr = BattleScript_WrapTurnDmg; + gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 16; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + } + else // broke free + { + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 2; + gBattleTextBuff1[2] = *(gBattleStruct->wrappedMove + gActiveBank * 2 + 0); + gBattleTextBuff1[3] = *(gBattleStruct->wrappedMove + gActiveBank * 2 + 1); + gBattleTextBuff1[4] = EOS; + gBattlescriptCurrInstr = BattleScript_WrapEnds; + } + BattleScriptExecute(gBattlescriptCurrInstr); + effect++; + } + gBattleStruct->turnEffectsTracker++; + break; + case 10: // uproar + if (gBattleMons[gActiveBank].status2 & STATUS2_UPROAR) + { + for (gBankAttacker = 0; gBankAttacker < gNoOfAllBanks; gBankAttacker++) + { + if ((gBattleMons[gBankAttacker].status1 & STATUS_SLEEP) + && gBattleMons[gBankAttacker].ability != ABILITY_SOUNDPROOF) + { + gBattleMons[gBankAttacker].status1 &= ~(STATUS_SLEEP); + gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE); + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + BattleScriptExecute(gUnknown_082DB234); + gActiveBank = gBankAttacker; + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); + MarkBufferBankForExecution(gActiveBank); + break; + } + } + if (gBankAttacker != gNoOfAllBanks) + { + effect = 2; // a pokemon was awaken + break; + } + else + { + gBankAttacker = gActiveBank; + gBattleMons[gActiveBank].status2 -= 0x10; // uproar timer goes down + if (HasMoveFailed(gActiveBank)) + { + CancelMultiTurnMoves(gActiveBank); + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + } + else if (gBattleMons[gActiveBank].status2 & STATUS2_UPROAR) + { + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleMons[gActiveBank].status2 |= STATUS2_MULTIPLETURNS; + } + else + { + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + CancelMultiTurnMoves(gActiveBank); + } + BattleScriptExecute(gUnknown_082DB2A6); + effect = 1; + } + } + if (effect != 2) + gBattleStruct->turnEffectsTracker++; + break; + case 11: // thrash + if (gBattleMons[gActiveBank].status2 & STATUS2_LOCK_CONFUSE) + { + gBattleMons[gActiveBank].status2 -= 0x400; + if (HasMoveFailed(gActiveBank)) + CancelMultiTurnMoves(gActiveBank); + else if (!(gBattleMons[gActiveBank].status2 & STATUS2_LOCK_CONFUSE) + && (gBattleMons[gActiveBank].status2 & STATUS2_MULTIPLETURNS)) + { + gBattleMons[gActiveBank].status2 &= ~(STATUS2_MULTIPLETURNS); + if (!(gBattleMons[gActiveBank].status2 & STATUS2_CONFUSION)) + { + gBattleCommunication[MOVE_EFFECT_BYTE] = 0x47; + SetMoveEffect(1, 0); + if (gBattleMons[gActiveBank].status2 & STATUS2_CONFUSION) + BattleScriptExecute(BattleScript_ThrashConfuses); + effect++; + } + } + } + gBattleStruct->turnEffectsTracker++; + break; + case 12: // disable + if (gDisableStructs[gActiveBank].disableTimer1 != 0) + { + int i; + for (i = 0; i < 4; i++) + { + if (gDisableStructs[gActiveBank].disabledMove == gBattleMons[gActiveBank].moves[i]) + break; + } + if (i == 4) // pokemon does not have the disabled move anymore + { + gDisableStructs[gActiveBank].disabledMove = 0; + gDisableStructs[gActiveBank].disableTimer1 = 0; + } + else if (--gDisableStructs[gActiveBank].disableTimer1 == 0) // disable ends + { + gDisableStructs[gActiveBank].disabledMove = 0; + BattleScriptExecute(BattleScript_DisabledNoMore); + effect++; + } + } + gBattleStruct->turnEffectsTracker++; + break; + case 13: // encore + if (gDisableStructs[gActiveBank].encoreTimer1 != 0) + { + if (gBattleMons[gActiveBank].moves[gDisableStructs[gActiveBank].encoredMovePos] != gDisableStructs[gActiveBank].encoredMove) // pokemon does not have the encored move anymore + { + gDisableStructs[gActiveBank].encoredMove = 0; + gDisableStructs[gActiveBank].encoreTimer1 = 0; + } + else if (--gDisableStructs[gActiveBank].encoreTimer1 == 0 + || gBattleMons[gActiveBank].pp[gDisableStructs[gActiveBank].encoredMovePos] == 0) + { + gDisableStructs[gActiveBank].encoredMove = 0; + gDisableStructs[gActiveBank].encoreTimer1 = 0; + BattleScriptExecute(BattleScript_EncoredNoMore); + effect++; + } + } + gBattleStruct->turnEffectsTracker++; + break; + case 14: // lock-on decrement + if (gStatuses3[gActiveBank] & STATUS3_ALWAYS_HITS) + gStatuses3[gActiveBank] -= 0x8; + gBattleStruct->turnEffectsTracker++; + break; + case 15: // charge + if (gDisableStructs[gActiveBank].chargeTimer1 && --gDisableStructs[gActiveBank].chargeTimer1 == 0) + gStatuses3[gActiveBank] &= ~STATUS3_CHARGED_UP; + gBattleStruct->turnEffectsTracker++; + break; + case 16: // taunt + if (gDisableStructs[gActiveBank].tauntTimer1) + gDisableStructs[gActiveBank].tauntTimer1--; + gBattleStruct->turnEffectsTracker++; + break; + case 17: // yawn + if (gStatuses3[gActiveBank] & STATUS3_YAWN) + { + gStatuses3[gActiveBank] -= 0x800; + if (!(gStatuses3[gActiveBank] & STATUS3_YAWN) && !(gBattleMons[gActiveBank].status1 & STATUS_ANY) + && gBattleMons[gActiveBank].ability != ABILITY_VITAL_SPIRIT + && gBattleMons[gActiveBank].ability != ABILITY_INSOMNIA && !UproarWakeUpCheck(gActiveBank)) + { + CancelMultiTurnMoves(gActiveBank); + gBattleMons[gActiveBank].status1 |= (Random() & 3) + 2; + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); + MarkBufferBankForExecution(gActiveBank); + gEffectBank = gActiveBank; + BattleScriptExecute(BattleScript_YawnMakesAsleep); + effect++; + } + } + gBattleStruct->turnEffectsTracker++; + break; + case 19: // done + gBattleStruct->turnEffectsTracker = 0; + gBattleStruct->turnEffectsBank++; + break; + } + if (effect != 0) + return effect; + } + } + gHitMarker &= ~(HITMARKER_GRUDGE | HITMARKER_x20); + return 0; +} + +bool8 sub_8041364(void) +{ + gHitMarker |= (HITMARKER_GRUDGE | HITMARKER_x20); + + switch (gBattleStruct->field_1A0) + { + case 0: + while (gBattleStruct->field_1A1 < gNoOfAllBanks) + { + gActiveBank = gBattleStruct->field_1A1; + if (gAbsentBankFlags & gBitTable[gActiveBank]) + { + gBattleStruct->field_1A1++; + continue; + } + + gBattleStruct->field_1A1++; + if (gWishFutureKnock.futureSightCounter[gActiveBank] != 0 + && --gWishFutureKnock.futureSightCounter[gActiveBank] == 0 + && gBattleMons[gActiveBank].hp != 0) + { + if (gWishFutureKnock.futureSightMove[gActiveBank] == MOVE_FUTURE_SIGHT) + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + else + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 2; + gBattleTextBuff1[2] = gWishFutureKnock.futureSightMove[gActiveBank]; + gBattleTextBuff1[3] = gWishFutureKnock.futureSightMove[gActiveBank] >> 8; + gBattleTextBuff1[4] = EOS; + gBankTarget = gActiveBank; + gBankAttacker = gWishFutureKnock.futureSightAttacker[gActiveBank]; + gBattleMoveDamage = gWishFutureKnock.futureSightDmg[gActiveBank]; + gSpecialStatuses[gBankTarget].moveturnLostHP = 0xFFFF; + BattleScriptExecute(gUnknown_082DAFE4); + + if (gWishFutureKnock.futureSightCounter[gActiveBank] == 0 + && gWishFutureKnock.futureSightCounter[gActiveBank ^ 2] == 0) + { + gSideAffecting[GetBankIdentity(gBankTarget) & 1] &= ~SIDE_STATUS_FUTUREATTACK; + } + return 1; + } + } + // Why do I have to keep doing this to match? + { + u8* var = &gBattleStruct->field_1A0; + *var = 1; + gBattleStruct->field_1A1 = 0; + } + // fall through + case 1: + while (gBattleStruct->field_1A1 < gNoOfAllBanks) + { + gActiveBank = gBankAttacker = gTurnOrder[gBattleStruct->field_1A1]; + if (gAbsentBankFlags & gBitTable[gActiveBank]) + { + gBattleStruct->field_1A1++; + continue; + } + gBattleStruct->field_1A1++; + if (gStatuses3[gActiveBank] & STATUS3_PERISH_SONG) + { + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 1; + gBattleTextBuff1[2] = 1; + gBattleTextBuff1[3] = 1; + gBattleTextBuff1[4] = gDisableStructs[gActiveBank].perishSong1; + gBattleTextBuff1[5] = EOS; + if (gDisableStructs[gActiveBank].perishSong1 == 0) + { + gStatuses3[gActiveBank] &= ~STATUS3_PERISH_SONG; + gBattleMoveDamage = gBattleMons[gActiveBank].hp; + gBattlescriptCurrInstr = gUnknown_082DAF05; + } + else + { + gDisableStructs[gActiveBank].perishSong1--; + gBattlescriptCurrInstr = gUnknown_082DAF20; + } + BattleScriptExecute(gBattlescriptCurrInstr); + return 1; + } + } + // Hm... + { + u8* var = &gBattleStruct->field_1A0; + *var = 2; + gBattleStruct->field_1A1 = 0; + } + // fall through + case 2: + if ((gBattleTypeFlags & BATTLE_TYPE_ARENA) + && gBattleStruct->field_DA == 2 + && gBattleMons[0].hp != 0 && gBattleMons[1].hp != 0) + { + s32 i; + + for (i = 0; i < 2; i++) + CancelMultiTurnMoves(i); + + gBattlescriptCurrInstr = gUnknown_082DB8F3; + BattleScriptExecute(gUnknown_082DB8F3); + gBattleStruct->field_1A0++; + return 1; + } + break; + } + + gHitMarker &= ~(HITMARKER_GRUDGE | HITMARKER_x20); + + return 0; +} + +#define sub_8041728_MAX_CASE 7 + +bool8 sub_8041728(void) +{ + if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) + return FALSE; + do + { + int i; + switch (gBattleStruct->field_4D) + { + case 0: + gBattleStruct->field_4E = 0; + gBattleStruct->field_4D++; + for (i = 0; i < gNoOfAllBanks; i++) + { + if (gAbsentBankFlags & gBitTable[i] && !sub_80423F4(i, 6, 6)) + gAbsentBankFlags &= ~(gBitTable[i]); + } + // fall through + case 1: + do + { + gBank1 = gBankTarget = gBattleStruct->field_4E; + if (gBattleMons[gBattleStruct->field_4E].hp == 0 + && !(gBattleStruct->field_DF & gBitTable[gBattlePartyID[gBattleStruct->field_4E]]) + && !(gAbsentBankFlags & gBitTable[gBattleStruct->field_4E])) + { + BattleScriptExecute(gUnknown_082DA7C4); + gBattleStruct->field_4D = 2; + return TRUE; + } + } while (++gBattleStruct->field_4E != gNoOfAllBanks); + gBattleStruct->field_4D = 3; + break; + case 2: + sub_803F9EC(gBank1); + if (++gBattleStruct->field_4E == gNoOfAllBanks) + gBattleStruct->field_4D = 3; + else + gBattleStruct->field_4D = 1; + break; + case 3: + gBattleStruct->field_4E = 0; + gBattleStruct->field_4D++; + // fall through + case 4: + do + { + gBank1 = gBankTarget = gBattleStruct->field_4E; //or should banks be switched? + if (gBattleMons[gBattleStruct->field_4E].hp == 0 + && !(gAbsentBankFlags & gBitTable[gBattleStruct->field_4E])) + { + BattleScriptExecute(gUnknown_082DA7CD); + gBattleStruct->field_4D = 5; + return TRUE; + } + } while (++gBattleStruct->field_4E != gNoOfAllBanks); + gBattleStruct->field_4D = 6; + break; + case 5: + if (++gBattleStruct->field_4E == gNoOfAllBanks) + gBattleStruct->field_4D = 6; + else + gBattleStruct->field_4D = 4; + break; + case 6: + if (AbilityBattleEffects(ABILITYEFFECT_INTIMIDATE1, 0, 0, 0, 0) || AbilityBattleEffects(ABILITYEFFECT_TRACE, 0, 0, 0, 0) || ItemBattleEffects(1, 0, 1) || AbilityBattleEffects(ABILITYEFFECT_FORECAST, 0, 0, 0, 0)) + return TRUE; + gBattleStruct->field_4D++; + break; + case 7: + break; + } + } while (gBattleStruct->field_4D != sub_8041728_MAX_CASE); + return FALSE; +} + +void b_clear_atk_up_if_hit_flag_unless_enraged(void) +{ + int i; + for (i = 0; i < gNoOfAllBanks; i++) + { + if ((gBattleMons[i].status2 & STATUS2_RAGE) && gChosenMovesByBanks[i] != MOVE_RAGE) + gBattleMons[i].status2 &= ~(STATUS2_RAGE); + } +} + +#define ATKCANCELLER_MAX_CASE 14 + +u8 AtkCanceller_UnableToUseMove(void) +{ + u8 effect = 0; + s32* bideDmg = &gBattleScripting.bideDmg; + do + { + switch (gBattleStruct->atkCancellerTracker) + { + case 0: // flags clear + gBattleMons[gBankAttacker].status2 &= ~(STATUS2_DESTINY_BOND); + gStatuses3[gBankAttacker] &= ~(STATUS3_GRUDGE); + gBattleStruct->atkCancellerTracker++; + break; + case 1: // check being asleep + if (gBattleMons[gBankAttacker].status1 & STATUS_SLEEP) + { + if (UproarWakeUpCheck(gBankAttacker)) + { + gBattleMons[gBankAttacker].status1 &= ~(STATUS_SLEEP); + gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE); + BattleScriptPushCursor(); + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattlescriptCurrInstr = BattleScript_MoveUsedWokeUp; + effect = 2; + } + else + { + u8 toSub; + if (gBattleMons[gBankAttacker].ability == ABILITY_EARLY_BIRD) + toSub = 2; + else + toSub = 1; + if ((gBattleMons[gBankAttacker].status1 & STATUS_SLEEP) < toSub) + gBattleMons[gBankAttacker].status1 &= ~(STATUS_SLEEP); + else + gBattleMons[gBankAttacker].status1 -= toSub; + if (gBattleMons[gBankAttacker].status1 & STATUS_SLEEP) + { + if (gCurrentMove != MOVE_SNORE && gCurrentMove != MOVE_SLEEP_TALK) + { + gBattlescriptCurrInstr = BattleScript_MoveUsedIsAsleep; + gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; + effect = 2; + } + } + else + { + gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE); + BattleScriptPushCursor(); + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattlescriptCurrInstr = BattleScript_MoveUsedWokeUp; + effect = 2; + } + } + } + gBattleStruct->atkCancellerTracker++; + break; + case 2: // check being frozen + if (gBattleMons[gBankAttacker].status1 & STATUS_FREEZE) + { + if (Random() % 5) + { + if (gBattleMoves[gCurrentMove].effect != EFFECT_THAW_HIT) // unfreezing via a move effect happens in case 13 + { + gBattlescriptCurrInstr = BattleScript_MoveUsedIsFrozen; + gHitMarker |= HITMARKER_NO_ATTACKSTRING; + } + else + { + gBattleStruct->atkCancellerTracker++; + break; + } + } + else // unfreeze + { + gBattleMons[gBankAttacker].status1 &= ~(STATUS_FREEZE); + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_MoveUsedUnfroze; + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + } + effect = 2; + } + gBattleStruct->atkCancellerTracker++; + break; + case 3: // truant + if (gBattleMons[gBankAttacker].ability == ABILITY_TRUANT && gDisableStructs[gBankAttacker].truantCounter) + { + CancelMultiTurnMoves(gBankAttacker); + gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattlescriptCurrInstr = BattleScript_MoveUsedLoafingAround; + gBattleMoveFlags |= MOVESTATUS_MISSED; + effect = 1; + } + gBattleStruct->atkCancellerTracker++; + break; + case 4: // recharge + if (gBattleMons[gBankAttacker].status2 & STATUS2_RECHARGE) + { + gBattleMons[gBankAttacker].status2 &= ~(STATUS2_RECHARGE); + gDisableStructs[gBankAttacker].rechargeCounter = 0; + CancelMultiTurnMoves(gBankAttacker); + gBattlescriptCurrInstr = BattleScript_MoveUsedMustRecharge; + gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; + effect = 1; + } + gBattleStruct->atkCancellerTracker++; + break; + case 5: // flinch + if (gBattleMons[gBankAttacker].status2 & STATUS2_FLINCHED) + { + gBattleMons[gBankAttacker].status2 &= ~(STATUS2_FLINCHED); + gProtectStructs[gBankAttacker].flinchImmobility = 1; + CancelMultiTurnMoves(gBankAttacker); + gBattlescriptCurrInstr = BattleScript_MoveUsedFlinched; + gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; + effect = 1; + } + gBattleStruct->atkCancellerTracker++; + break; + case 6: // disabled move + if (gDisableStructs[gBankAttacker].disabledMove == gCurrentMove && gDisableStructs[gBankAttacker].disabledMove != 0) + { + gProtectStructs[gBankAttacker].usedDisabledMove = 1; + gBattleScripting.bank = gBankAttacker; + CancelMultiTurnMoves(gBankAttacker); + gBattlescriptCurrInstr = BattleScript_MoveUsedIsDisabled; + gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; + effect = 1; + } + gBattleStruct->atkCancellerTracker++; + break; + case 7: // taunt + if (gDisableStructs[gBankAttacker].tauntTimer1 && gBattleMoves[gCurrentMove].power == 0) + { + gProtectStructs[gBankAttacker].usedTauntedMove = 1; + CancelMultiTurnMoves(gBankAttacker); + gBattlescriptCurrInstr = BattleScript_MoveUsedIsTaunted; + gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; + effect = 1; + } + gBattleStruct->atkCancellerTracker++; + break; + case 8: // imprisoned + if (GetImprisonedMovesCount(gBankAttacker, gCurrentMove)) + { + gProtectStructs[gBankAttacker].usedImprisionedMove = 1; + CancelMultiTurnMoves(gBankAttacker); + gBattlescriptCurrInstr = BattleScript_MoveUsedIsImprisoned; + gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; + effect = 1; + } + gBattleStruct->atkCancellerTracker++; + break; + case 9: // confusion + if (gBattleMons[gBankAttacker].status2 & STATUS2_CONFUSION) + { + gBattleMons[gBankAttacker].status2--; + if (gBattleMons[gBankAttacker].status2 & STATUS2_CONFUSION) + { + if (Random() & 1) + { + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + BattleScriptPushCursor(); + } + else // confusion dmg + { + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBankTarget = gBankAttacker; + gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankAttacker], MOVE_POUND, 0, 40, 0, gBankAttacker, gBankAttacker); + gProtectStructs[gBankAttacker].confusionSelfDmg = 1; + gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; + } + gBattlescriptCurrInstr = BattleScript_MoveUsedIsConfused; + } + else // snapped out of confusion + { + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_MoveUsedIsConfusedNoMore; + } + effect = 1; + } + gBattleStruct->atkCancellerTracker++; + break; + case 10: // paralysis + if ((gBattleMons[gBankAttacker].status1 & STATUS_PARALYSIS) && (Random() % 4) == 0) + { + gProtectStructs[gBankAttacker].prlzImmobility = 1; + // This is removed in Emerald for some reason + //CancelMultiTurnMoves(gBankAttacker); + gBattlescriptCurrInstr = BattleScript_MoveUsedIsParalyzed; + gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; + effect = 1; + } + gBattleStruct->atkCancellerTracker++; + break; + case 11: // infatuation + if (gBattleMons[gBankAttacker].status2 & STATUS2_INFATUATION) + { + gBattleScripting.bank = CountTrailingZeroBits((gBattleMons[gBankAttacker].status2 & STATUS2_INFATUATION) >> 0x10); + if (Random() & 1) + BattleScriptPushCursor(); + else + { + BattleScriptPush(BattleScript_MoveUsedIsParalyzedCantAttack); + gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; + gProtectStructs[gBankAttacker].loveImmobility = 1; + CancelMultiTurnMoves(gBankAttacker); + } + gBattlescriptCurrInstr = BattleScript_MoveUsedIsInLove; + effect = 1; + } + gBattleStruct->atkCancellerTracker++; + break; + case 12: // bide + if (gBattleMons[gBankAttacker].status2 & STATUS2_BIDE) + { + gBattleMons[gBankAttacker].status2 -= 0x100; + if (gBattleMons[gBankAttacker].status2 & STATUS2_BIDE) + gBattlescriptCurrInstr = BattleScript_BideStoringEnergy; + else + { + // This is removed in Emerald for some reason + //gBattleMons[gBankAttacker].status2 &= ~(STATUS2_MULTIPLETURNS); + if (gTakenDmg[gBankAttacker]) + { + gCurrentMove = MOVE_BIDE; + *bideDmg = gTakenDmg[gBankAttacker] * 2; + gBankTarget = gTakenDmgBanks[gBankAttacker]; + if (gAbsentBankFlags & gBitTable[gBankTarget]) + gBankTarget = GetMoveTarget(MOVE_BIDE, 1); + gBattlescriptCurrInstr = BattleScript_BideAttack; + } + else + gBattlescriptCurrInstr = BattleScript_BideNoEnergyToAttack; + } + effect = 1; + } + gBattleStruct->atkCancellerTracker++; + break; + case 13: // move thawing + if (gBattleMons[gBankAttacker].status1 & STATUS_FREEZE) + { + if (gBattleMoves[gCurrentMove].effect == EFFECT_THAW_HIT) + { + gBattleMons[gBankAttacker].status1 &= ~(STATUS_FREEZE); + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_MoveUsedUnfroze; + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + } + effect = 2; + } + gBattleStruct->atkCancellerTracker++; + break; + case 14: // last case + break; + } + + } while (gBattleStruct->atkCancellerTracker != ATKCANCELLER_MAX_CASE && effect == 0); + + if (effect == 2) + { + gActiveBank = gBankAttacker; + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); + MarkBufferBankForExecution(gActiveBank); + } + return effect; +} + +bool8 sub_80423F4(u8 bank, u8 r1, u8 r2) +{ + struct Pokemon* party; + u8 r7; + u8 r6; + s32 i; + if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) + return FALSE; + if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) + { + if (GetBankSide(bank) == SIDE_PLAYER) + party = gPlayerParty; + else + party = gEnemyParty; + r6 = ((bank & 2) / 2); + for (i = r6 * 3; i < r6 * 3 + 3; i++) + { + if (GetMonData(&party[i], MON_DATA_HP) != 0 + && GetMonData(&party[i], MON_DATA_SPECIES2) != 0 + && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_EGG) + break; + } + return (i == r6 * 3 + 3); + } + else if (gBattleTypeFlags & BATTLE_TYPE_MULTI) + { + if (gBattleTypeFlags & BATTLE_TYPE_x800000) + { + if (GetBankSide(bank) == SIDE_PLAYER) + { + party = gPlayerParty; + r7 = sub_806D864(bank); + r6 = sub_806D82C(r7); + } + else + { + // FIXME: Compiler insists on moving r4 into r1 before doing the eor + #ifndef NONMATCHING + register u32 var asm("r1"); + #else + u32 var; + #endif // NONMATCHING + + party = gEnemyParty; + var = bank ^ 1; + r6 = (var != 0) ? 1 : 0; + } + } + else + { + r7 = sub_806D864(bank); + if (GetBankSide(bank) == SIDE_PLAYER) + party = gPlayerParty; + else + party = gEnemyParty; + r6 = sub_806D82C(r7); + } + for (i = r6 * 3; i < r6 * 3 + 3; i++) + { + if (GetMonData(&party[i], MON_DATA_HP) != 0 + && GetMonData(&party[i], MON_DATA_SPECIES2) != 0 + && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_EGG) + break; + } + return (i == r6 * 3 + 3); + } + else if ((gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) && GetBankSide(bank) == SIDE_OPPONENT) + { + party = gEnemyParty; + + if (bank == 1) + r6 = 0; + else + r6 = 3; + for (i = r6; i < r6 + 3; i++) + { + if (GetMonData(&party[i], MON_DATA_HP) != 0 + && GetMonData(&party[i], MON_DATA_SPECIES2) != 0 + && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_EGG) + break; + } + return (i == r6 + 3); + } + else + { + if (GetBankSide(bank) == SIDE_OPPONENT) + { + r7 = GetBankByIdentity(1); + r6 = GetBankByIdentity(3); + party = gEnemyParty; + } + else + { + r7 = GetBankByIdentity(0); + r6 = GetBankByIdentity(2); + party = gPlayerParty; + } + if (r1 == 6) + r1 = gBattlePartyID[r7]; + if (r2 == 6) + r2 = gBattlePartyID[r6]; + for (i = 0; i < 6; i++) + { + if (GetMonData(&party[i], MON_DATA_HP) != 0 + && GetMonData(&party[i], MON_DATA_SPECIES2) != 0 + && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_EGG + // FIXME: Using index[array] instead of array[index] is BAD! + && i != r1 && i != r2 && i != r7[gBattleStruct->field_5C] && i != r6[gBattleStruct->field_5C]) + break; + } + return (i == 6); + } +} + +enum +{ + CASTFORM_NO_CHANGE, //0 + CASTFORM_TO_NORMAL, //1 + CASTFORM_TO_FIRE, //2 + CASTFORM_TO_WATER, //3 + CASTFORM_TO_ICE, //4 +}; + +u8 CastformDataTypeChange(u8 bank) +{ + u8 formChange = 0; + if (gBattleMons[bank].species != SPECIES_CASTFORM || gBattleMons[bank].ability != ABILITY_FORECAST || gBattleMons[bank].hp == 0) + return CASTFORM_NO_CHANGE; + if (!WEATHER_HAS_EFFECT && gBattleMons[bank].type1 != TYPE_NORMAL && gBattleMons[bank].type2 != TYPE_NORMAL) + { + gBattleMons[bank].type1 = TYPE_NORMAL; + gBattleMons[bank].type2 = TYPE_NORMAL; + return CASTFORM_TO_NORMAL; + } + if (!WEATHER_HAS_EFFECT) + return CASTFORM_NO_CHANGE; + if (!(gBattleWeather & (WEATHER_RAIN_ANY | WEATHER_SUN_ANY | WEATHER_HAIL)) && gBattleMons[bank].type1 != TYPE_NORMAL && gBattleMons[bank].type2 != TYPE_NORMAL) + { + gBattleMons[bank].type1 = TYPE_NORMAL; + gBattleMons[bank].type2 = TYPE_NORMAL; + formChange = CASTFORM_TO_NORMAL; + } + if (gBattleWeather & WEATHER_SUN_ANY && gBattleMons[bank].type1 != TYPE_FIRE && gBattleMons[bank].type2 != TYPE_FIRE) + { + gBattleMons[bank].type1 = TYPE_FIRE; + gBattleMons[bank].type2 = TYPE_FIRE; + formChange = CASTFORM_TO_FIRE; + } + if (gBattleWeather & WEATHER_RAIN_ANY && gBattleMons[bank].type1 != TYPE_WATER && gBattleMons[bank].type2 != TYPE_WATER) + { + gBattleMons[bank].type1 = TYPE_WATER; + gBattleMons[bank].type2 = TYPE_WATER; + formChange = CASTFORM_TO_WATER; + } + if (gBattleWeather & WEATHER_HAIL && gBattleMons[bank].type1 != TYPE_ICE && gBattleMons[bank].type2 != TYPE_ICE) + { + gBattleMons[bank].type1 = TYPE_ICE; + gBattleMons[bank].type2 = TYPE_ICE; + formChange = CASTFORM_TO_ICE; + } + return formChange; +} + +// We meet again, ABE. +#ifdef NONMATCHING +u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) +{ + u8 effect = 0; + struct Pokemon* pokeAtk; + struct Pokemon* pokeDef; + u16 speciesAtk; + u16 speciesDef; + u32 pidAtk; + u32 pidDef; + + if (gBankAttacker >= gNoOfAllBanks) + gBankAttacker = bank; + if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + pokeAtk = &gPlayerParty[gBattlePartyID[gBankAttacker]]; + else + pokeAtk = &gEnemyParty[gBattlePartyID[gBankAttacker]]; + + if (gBankTarget >= gNoOfAllBanks) + gBankTarget = bank; + if (GetBankSide(gBankTarget) == SIDE_PLAYER) + pokeDef = &gPlayerParty[gBattlePartyID[gBankTarget]]; + else + pokeDef = &gEnemyParty[gBattlePartyID[gBankTarget]]; + + speciesAtk = GetMonData(pokeAtk, MON_DATA_SPECIES); + pidAtk = GetMonData(pokeAtk, MON_DATA_PERSONALITY); + + speciesDef = GetMonData(pokeDef, MON_DATA_SPECIES); + pidDef = GetMonData(pokeDef, MON_DATA_PERSONALITY); + + if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI)) // why isn't that check done at the beginning? + { + int i; // r4 + u16 move; + // Hmm... + #define moveType moveArg + //u16 moveType; + u8 side; + + if (special) + gLastUsedAbility = special; + else + gLastUsedAbility = gBattleMons[bank].ability; + + if (moveArg) + move = moveArg; + else + move = gCurrentMove; + + if (gBattleStruct->dynamicMoveType) + moveType = gBattleStruct->dynamicMoveType & 0x3F; + else + moveType = gBattleMoves[move].type; + + switch (caseID) + { + case ABILITYEFFECT_ON_SWITCHIN: // 0 + //_08042A18 + if (gBankAttacker >= gNoOfAllBanks) + gBankAttacker = bank; + switch (gLastUsedAbility) + { + case 0xFF: //weather from overworld + //_08042A86 + switch (weather_get_current()) + { + case 3: + case 5: + case 13: + if (!(gBattleWeather & WEATHER_RAIN_ANY)) + { + gBattleWeather = (WEATHER_RAIN_TEMPORARY | WEATHER_RAIN_PERMANENT); + gBattleScripting.animArg1 = 0xA; + gBattleScripting.bank = bank; + effect++; + } + break; + case 8: + if (!(gBattleWeather & WEATHER_SANDSTORM_ANY)) + { + gBattleWeather = (WEATHER_SANDSTORM_PERMANENT | WEATHER_SANDSTORM_TEMPORARY); + gBattleScripting.animArg1 = 0xC; + gBattleScripting.bank = bank; + effect++; + } + break; + case 12: + if (!(gBattleWeather & WEATHER_SUN_ANY)) + { + gBattleWeather = (WEATHER_SUN_PERMANENT | WEATHER_SUN_TEMPORARY); + gBattleScripting.animArg1 = 0xB; + gBattleScripting.bank = bank; + effect++; + } + break; + } + if (effect) + { + gBattleCommunication[MULTISTRING_CHOOSER] = weather_get_current(); + BattleScriptPushCursorAndCallback(gUnknown_082DACE7); + } + break; + case ABILITY_DRIZZLE: + //_08042B78 + if (!(gBattleWeather & WEATHER_RAIN_PERMANENT)) + { + gBattleWeather = (WEATHER_RAIN_PERMANENT | WEATHER_RAIN_TEMPORARY); + BattleScriptPushCursorAndCallback(BattleScript_DrizzleActivates); + gBattleScripting.bank = bank; + effect++; + } + break; + case ABILITY_SAND_STREAM: + //_08042BA8 + if (!(gBattleWeather & WEATHER_SANDSTORM_PERMANENT)) + { + gBattleWeather = (WEATHER_SANDSTORM_PERMANENT | WEATHER_SANDSTORM_TEMPORARY); + BattleScriptPushCursorAndCallback(BattleScript_SandstreamActivates); + gBattleScripting.bank = bank; + effect++; + } + break; + case ABILITY_DROUGHT: + //_08042BD8 + if (!(gBattleWeather & WEATHER_SUN_PERMANENT)) + { + gBattleWeather = (WEATHER_SUN_PERMANENT | WEATHER_SUN_TEMPORARY); + BattleScriptPushCursorAndCallback(BattleScript_DroughtActivates); + gBattleScripting.bank = bank; + effect++; + } + break; + case ABILITY_INTIMIDATE: + //_08042C08 + if (!(gSpecialStatuses[bank].intimidatedPoke)) + { + gStatuses3[bank] |= STATUS3_INTIMIDATE_POKES; + gSpecialStatuses[bank].intimidatedPoke = 1; + } + break; + case ABILITY_FORECAST: + //_08042C3C + effect = CastformDataTypeChange(bank); + if (effect != 0) + { + BattleScriptPushCursorAndCallback(BattleScript_CastformChange); + gBattleScripting.bank = bank; + gBattleStruct->formToChangeInto = effect - 1; + } + break; + case ABILITY_TRACE: + if (!(gSpecialStatuses[bank].traced)) + { + gStatuses3[bank] |= STATUS3_TRACE; + gSpecialStatuses[bank].traced = 1; + } + break; + case ABILITY_CLOUD_NINE: + case ABILITY_AIR_LOCK: + { + u8 i; + + for (i = 0; i < gNoOfAllBanks; i++) + { + // TODO: i should be in r6 here + //asm("":::"r4","r5"); + effect = CastformDataTypeChange(i); + if (effect != 0) + { + BattleScriptPushCursorAndCallback(BattleScript_CastformChange); + gBattleScripting.bank = i; + gBattleStruct->formToChangeInto = effect - 1; + break; + } + } + } + break; + } + break; + case ABILITYEFFECT_ENDTURN: // 1 + //_08042CDC + if (gBattleMons[bank].hp != 0) + { + gBankAttacker = bank; + switch (gLastUsedAbility) + { + case ABILITY_RAIN_DISH: + //_08042D22 + if (WEATHER_HAS_EFFECT && (gBattleWeather & WEATHER_RAIN_ANY) + && gBattleMons[bank].maxHP > gBattleMons[bank].hp) + { + gLastUsedAbility = ABILITY_RAIN_DISH; //why + BattleScriptPushCursorAndCallback(BattleScript_RainDishActivates); + gBattleMoveDamage = gBattleMons[bank].maxHP / 16; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + gBattleMoveDamage *= -1; + effect++; + } + break; + case ABILITY_SHED_SKIN: + //_08042DA0 + if ((gBattleMons[bank].status1 & STATUS_ANY) && (Random() % 3) == 0) + { + if (gBattleMons[bank].status1 & (STATUS_POISON | STATUS_TOXIC_POISON)) + StringCopy(gBattleTextBuff1, gStatusConditionString_PoisonJpn); + if (gBattleMons[bank].status1 & STATUS_SLEEP) + StringCopy(gBattleTextBuff1, gStatusConditionString_SleepJpn); + if (gBattleMons[bank].status1 & STATUS_PARALYSIS) + StringCopy(gBattleTextBuff1, gStatusConditionString_ParalysisJpn); + if (gBattleMons[bank].status1 & STATUS_BURN) + StringCopy(gBattleTextBuff1, gStatusConditionString_BurnJpn); + if (gBattleMons[bank].status1 & STATUS_FREEZE) + StringCopy(gBattleTextBuff1, gStatusConditionString_IceJpn); + gBattleMons[bank].status1 = 0; + gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE); // fix nighmare glitch + gBattleScripting.bank = gActiveBank = bank; + BattleScriptPushCursorAndCallback(BattleScript_ShedSkinActivates); + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[bank].status1); + MarkBufferBankForExecution(gActiveBank); + effect++; + } + break; + case ABILITY_SPEED_BOOST: + //_08042E84 + if (gBattleMons[bank].statStages[STAT_STAGE_SPEED] < 0xC && gDisableStructs[bank].isFirstTurn != 2) + { + gBattleMons[bank].statStages[STAT_STAGE_SPEED]++; + gBattleScripting.animArg1 = 0x11; + gBattleScripting.animArg2 = 0; + BattleScriptPushCursorAndCallback(BattleScript_SpeedBoostActivates); + gBattleScripting.bank = bank; + effect++; + } + break; + case ABILITY_TRUANT: + gDisableStructs[gBankAttacker].truantCounter ^= 1; + break; + } + } + break; + case ABILITYEFFECT_MOVES_BLOCK: // 2 + //_08042EF8 + if (gLastUsedAbility == ABILITY_SOUNDPROOF) + { + for (i = 0; gSoundMovesTable[i] != 0xFFFF; i++) + { + if (gSoundMovesTable[i] == move) + break; + } + if (gSoundMovesTable[i] != 0xFFFF) + { + if (gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS) + gHitMarker |= HITMARKER_NO_PPDEDUCT; + gBattlescriptCurrInstr = BattleScript_SoundproofProtected; + effect = 1; + } + } + break; + case ABILITYEFFECT_ABSORBING: // 3 + if (move) + { + switch (gLastUsedAbility) + { + case ABILITY_VOLT_ABSORB: + if (moveType == TYPE_ELECTRIC && gBattleMoves[move].power != 0) + { + if (gProtectStructs[gBankAttacker].notFirstStrike) + gBattlescriptCurrInstr = BattleScript_MoveHPDrain; + else + gBattlescriptCurrInstr = BattleScript_MoveHPDrain_PPLoss; + effect = 1; + } + break; + case ABILITY_WATER_ABSORB: + if (moveType == TYPE_WATER && gBattleMoves[move].power != 0) + { + if (gProtectStructs[gBankAttacker].notFirstStrike) + gBattlescriptCurrInstr = BattleScript_MoveHPDrain; + else + gBattlescriptCurrInstr = BattleScript_MoveHPDrain_PPLoss; + effect = 1; + } + break; + case ABILITY_FLASH_FIRE: + //_0804305C + if (moveType == TYPE_FIRE && !(gBattleMons[bank].status1 & STATUS_FREEZE)) + { + if (!(gBattleResources->flags->flags[bank] & UNKNOWN_FLAG_FLASH_FIRE)) + { + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + if (gProtectStructs[gBankAttacker].notFirstStrike) + gBattlescriptCurrInstr = BattleScript_FlashFireBoost; + else + gBattlescriptCurrInstr = BattleScript_FlashFireBoost_PPLoss; + gBattleResources->flags->flags[bank] |= UNKNOWN_FLAG_FLASH_FIRE; + effect = 2; + } + else + { + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + if (gProtectStructs[gBankAttacker].notFirstStrike) + gBattlescriptCurrInstr = BattleScript_FlashFireBoost; + else + gBattlescriptCurrInstr = BattleScript_FlashFireBoost_PPLoss; + effect = 2; + } + } + break; + } + if (effect == 1) + { + if (gBattleMons[bank].maxHP == gBattleMons[bank].hp) + { + if ((gProtectStructs[gBankAttacker].notFirstStrike)) + gBattlescriptCurrInstr = BattleScript_MoveHPDrain; + else + gBattlescriptCurrInstr = BattleScript_MoveHPDrain_PPLoss; + } + else + { + gBattleMoveDamage = gBattleMons[bank].maxHP / 4; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + gBattleMoveDamage *= -1; + } + } + } + break; + case ABILITYEFFECT_CONTACT: // 4 + //_080431AC + switch (gLastUsedAbility) + { + case ABILITY_COLOR_CHANGE: + //_08043288 + if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + && move != MOVE_STRUGGLE + && gBattleMoves[move].power != 0 + && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && gBattleMons[bank].type1 != moveType + && gBattleMons[bank].type2 != moveType + && gBattleMons[bank].hp != 0) + { + gBattleMons[bank].type1 = moveType; + gBattleMons[bank].type2 = moveType; + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 3; + gBattleTextBuff1[2] = moveType; + gBattleTextBuff1[3] = 0xFF; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_ColorChangeActivates; + effect++; + } + break; + case ABILITY_ROUGH_SKIN: + //_08043350 + if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + && gBattleMons[gBankAttacker].hp != 0 + && !gProtectStructs[gBankAttacker].confusionSelfDmg + && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT)) + { + gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 16; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_RoughSkinActivates; + effect++; + } + break; + case ABILITY_EFFECT_SPORE: + //_08043410 + if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + && gBattleMons[gBankAttacker].hp != 0 + && !gProtectStructs[gBankAttacker].confusionSelfDmg + && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) + && (Random() % 10) == 0) + { + do + { + gBattleCommunication[MOVE_EFFECT_BYTE] = Random() & 3; + } while (gBattleCommunication[MOVE_EFFECT_BYTE] == 0); + if (gBattleCommunication[MOVE_EFFECT_BYTE] == 3) + gBattleCommunication[MOVE_EFFECT_BYTE] += 2; + gBattleCommunication[MOVE_EFFECT_BYTE] += 0x40; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; + gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + effect++; + } + break; + case ABILITY_POISON_POINT: + if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + && gBattleMons[gBankAttacker].hp != 0 + && !gProtectStructs[gBankAttacker].confusionSelfDmg + && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) + && (Random() % 3) == 0) + { + gBattleCommunication[MOVE_EFFECT_BYTE] = 0x42; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; + gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + effect++; + } + break; + case ABILITY_STATIC: + if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + && gBattleMons[gBankAttacker].hp != 0 + && !gProtectStructs[gBankAttacker].confusionSelfDmg + && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) + && (Random() % 3) == 0) + { + gBattleCommunication[MOVE_EFFECT_BYTE] = 0x45; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; + gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + effect++; + } + break; + case ABILITY_FLAME_BODY: + if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + && gBattleMons[gBankAttacker].hp != 0 + && !gProtectStructs[gBankAttacker].confusionSelfDmg + && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) + && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && (Random() % 3) == 0) + { + gBattleCommunication[MOVE_EFFECT_BYTE] = 0x43; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; + gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + effect++; + } + break; + case ABILITY_CUTE_CHARM: + //_0804379C + if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + && gBattleMons[gBankAttacker].hp != 0 + && !gProtectStructs[gBankAttacker].confusionSelfDmg + && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) + && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && gBattleMons[gBankTarget].hp != 0 + && (Random() % 3) == 0 + && gBattleMons[gBankAttacker].ability != ABILITY_OBLIVIOUS + && GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != GetGenderFromSpeciesAndPersonality(speciesDef, pidDef) + && !(gBattleMons[gBankAttacker].status2 & STATUS2_INFATUATION) + && GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != 0xFF + && GetGenderFromSpeciesAndPersonality(speciesDef, pidDef) != 0xFF) + { + gBattleMons[gBankAttacker].status2 |= (gBitTable[gBankTarget] << 0x10); + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_CuteCharmActivates; + effect++; + } + break; + } + break; + case ABILITYEFFECT_IMMUNITY: // 5 + { + #define i bank + for (i = 0; i < gNoOfAllBanks; i++) + { + switch (gBattleMons[i].ability) + { + case ABILITY_IMMUNITY: + if (gBattleMons[i].status1 & (STATUS_POISON | STATUS_TOXIC_POISON | 0xF00)) // TODO: what is 0xF00? + { + StringCopy(gBattleTextBuff1, gStatusConditionString_PoisonJpn); + effect = 1; + } + break; + case ABILITY_OWN_TEMPO: + //_08043A7C + if (gBattleMons[i].status2 & STATUS2_CONFUSION) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_ConfusionJpn); + effect = 2; + } + break; + case ABILITY_LIMBER: + if (gBattleMons[i].status1 & STATUS_PARALYSIS) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_ParalysisJpn); + effect = 1; + } + break; + case ABILITY_INSOMNIA: + case ABILITY_VITAL_SPIRIT: + if (gBattleMons[i].status1 & STATUS_SLEEP) + { + gBattleMons[i].status2 &= ~(STATUS2_NIGHTMARE); + StringCopy(gBattleTextBuff1, gStatusConditionString_SleepJpn); + effect = 1; + } + break; + case ABILITY_WATER_VEIL: + if (gBattleMons[i].status1 & STATUS_BURN) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_BurnJpn); + effect = 1; + } + break; + case ABILITY_MAGMA_ARMOR: + if (gBattleMons[i].status1 & STATUS_FREEZE) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_IceJpn); + effect = 1; + } + break; + case ABILITY_OBLIVIOUS: + //_08043B70 + if (gBattleMons[i].status2 & STATUS2_INFATUATION) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_LoveJpn); + effect = 3; + } + break; + } + if (effect) + { + switch (effect) + { + case 1: // status cleared + gBattleMons[i].status1 = 0; + break; + case 2: // get rid of confusion + gBattleMons[i].status2 &= ~(STATUS2_CONFUSION); + break; + case 3: // get rid of infatuation + gBattleMons[i].status2 &= ~(STATUS2_INFATUATION); + break; + } + BattleScriptPushCursor(); + gBattlescriptCurrInstr = gUnknown_082DB68C; + gBattleScripting.bank = i; + gActiveBank = i; + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); + MarkBufferBankForExecution(gActiveBank); + return effect; + } + } + #undef i + } + break; + case ABILITYEFFECT_FORECAST: // 6 + { + #define i bank + for (i = 0; i < gNoOfAllBanks; i++) + { + if (gBattleMons[i].ability == ABILITY_FORECAST) + { + effect = CastformDataTypeChange(i); + if (effect) + { + BattleScriptPushCursorAndCallback(BattleScript_CastformChange); + gBattleScripting.bank = i; + gBattleStruct->formToChangeInto = effect - 1; + return effect; + } + } + } + #undef i + } + break; + case ABILITYEFFECT_SYNCHRONIZE: // 7 + //_08043CBC + if (gLastUsedAbility == ABILITY_SYNCHRONIZE && (gHitMarker & HITMARKER_SYNCHRONISE_EFFECT)) + { + gHitMarker &= ~(HITMARKER_SYNCHRONISE_EFFECT); + gBattleStruct->synchronizeMoveEffect &= 0x3F; + if (gBattleStruct->synchronizeMoveEffect == 6) + gBattleStruct->synchronizeMoveEffect = 2; + gBattleCommunication[MOVE_EFFECT_BYTE] = gBattleStruct->synchronizeMoveEffect + 0x40; + gBattleScripting.bank = gBankTarget; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_SynchronizeActivates; + gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + effect++; + } + break; + case ABILITYEFFECT_ATK_SYNCHRONIZE: // 8 + if (gLastUsedAbility == ABILITY_SYNCHRONIZE && (gHitMarker & HITMARKER_SYNCHRONISE_EFFECT)) + { + gHitMarker &= ~(HITMARKER_SYNCHRONISE_EFFECT); + gBattleStruct->synchronizeMoveEffect &= 0x3F; + if (gBattleStruct->synchronizeMoveEffect == 6) + gBattleStruct->synchronizeMoveEffect = 2; + gBattleCommunication[MOVE_EFFECT_BYTE] = gBattleStruct->synchronizeMoveEffect; + gBattleScripting.bank = gBankAttacker; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_SynchronizeActivates; + gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + effect++; + } + break; + case ABILITYEFFECT_INTIMIDATE1: // 9 + for (i = 0; i < gNoOfAllBanks; i++) + { + if (gBattleMons[i].ability == ABILITY_INTIMIDATE && gStatuses3[i] & STATUS3_INTIMIDATE_POKES) + { + gLastUsedAbility = ABILITY_INTIMIDATE; + gStatuses3[i] &= ~(STATUS3_INTIMIDATE_POKES); + BattleScriptPushCursorAndCallback(gUnknown_082DB4B8); + gBattleStruct->intimidateBank = i; + effect++; + break; + } + } + break; + case ABILITYEFFECT_TRACE: // 11 + for (i = 0; i < gNoOfAllBanks; i++) + { + if (gBattleMons[i].ability == ABILITY_TRACE && (gStatuses3[i] & STATUS3_TRACE)) + { + u8 opposite = (GetBankIdentity(i) ^ 1) & 1; + u8 target1 = GetBankByIdentity(opposite); + u8 target2 = GetBankByIdentity(opposite + 2); + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + { + if (gBattleMons[target1].ability != 0 && gBattleMons[target1].hp != 0 + && gBattleMons[target2].ability != 0 && gBattleMons[target2].hp != 0) + { + gActiveBank = GetBankByIdentity(((Random() & 1) * 2) | opposite); + gBattleMons[i].ability = gBattleMons[gActiveBank].ability; + gLastUsedAbility = gBattleMons[gActiveBank].ability; + effect++; + } + else if (gBattleMons[target1].ability != 0 && gBattleMons[target1].hp != 0) + { + gActiveBank = target1; + gBattleMons[i].ability = gBattleMons[gActiveBank].ability; + gLastUsedAbility = gBattleMons[gActiveBank].ability; + effect++; + } + else if (gBattleMons[target2].ability != 0 && gBattleMons[target2].hp != 0) + { + gActiveBank = target2; + gBattleMons[i].ability = gBattleMons[gActiveBank].ability; + gLastUsedAbility = gBattleMons[gActiveBank].ability; + effect++; + } + } + else + { + gActiveBank = target1; + if (gBattleMons[target1].ability && gBattleMons[target1].hp) + { + gBattleMons[i].ability = gBattleMons[target1].ability; + gLastUsedAbility = gBattleMons[target1].ability; + effect++; + } + } + if (effect) + { + BattleScriptPushCursorAndCallback(BattleScript_TraceActivates); + gStatuses3[i] &= ~(STATUS3_TRACE); + gBattleScripting.bank = i; + + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 4; + gBattleTextBuff1[2] = gActiveBank; + gBattleTextBuff1[3] = gBattlePartyID[gActiveBank]; + gBattleTextBuff1[4] = EOS; + + gBattleTextBuff2[0] = 0xFD; + gBattleTextBuff2[1] = 9; + gBattleTextBuff2[2] = gLastUsedAbility; + gBattleTextBuff2[3] = EOS; + break; + } + } + } + break; + case ABILITYEFFECT_INTIMIDATE2: // 10 + for (i = 0; i < gNoOfAllBanks; i++) + { + if (gBattleMons[i].ability == ABILITY_INTIMIDATE && (gStatuses3[i] & STATUS3_INTIMIDATE_POKES)) + { + gLastUsedAbility = ABILITY_INTIMIDATE; + gStatuses3[i] &= ~(STATUS3_INTIMIDATE_POKES); + BattleScriptPushCursor(); + gBattlescriptCurrInstr = gUnknown_082DB4C1; + gBattleStruct->intimidateBank = i; + effect++; + break; + } + } + break; + case ABILITYEFFECT_CHECK_OTHER_SIDE: // 12 + side = GetBankSide(bank); + for (i = 0; i < gNoOfAllBanks; i++) + { + if (GetBankSide(i) != side && gBattleMons[i].ability == ability) + { + gLastUsedAbility = ability; + effect = i + 1; + } + } + break; + case ABILITYEFFECT_CHECK_BANK_SIDE: // 13 + side = GetBankSide(bank); + for (i = 0; i < gNoOfAllBanks; i++) + { + if (GetBankSide(i) == side && gBattleMons[i].ability == ability) + { + gLastUsedAbility = ability; + effect = i + 1; + } + } + break; + case ABILITYEFFECT_FIELD_SPORT: // 14 + switch (gLastUsedAbility) + { + case 0xFD: + for (i = 0; i < gNoOfAllBanks; i++) + { + if (gStatuses3[i] & STATUS3_MUDSPORT) + effect = i + 1; + } + break; + case 0xFE: + for (i = 0; i < gNoOfAllBanks; i++) + { + if (gStatuses3[i] & STATUS3_WATERSPORT) + effect = i + 1; + } + break; + default: + for (i = 0; i < gNoOfAllBanks; i++) + { + if (gBattleMons[i].ability == ability) + { + gLastUsedAbility = ability; + effect = i + 1; + } + } + break; + } + break; + case ABILITYEFFECT_CHECK_ON_FIELD: // 19 + for (i = 0; i < gNoOfAllBanks; i++) + { + if (gBattleMons[i].ability == ability && gBattleMons[i].hp != 0) + { + gLastUsedAbility = ability; + effect = i + 1; + } + } + break; + case ABILITYEFFECT_CHECK_FIELD_EXCEPT_BANK: // 15 + for (i = 0; i < gNoOfAllBanks; i++) + { + if (gBattleMons[i].ability == ability && i != bank) + { + gLastUsedAbility = ability; + effect = i + 1; + } + } + break; + case ABILITYEFFECT_COUNT_OTHER_SIDE: // 16 + side = GetBankSide(bank); + for (i = 0; i < gNoOfAllBanks; i++) + { + if (GetBankSide(i) != side && gBattleMons[i].ability == ability) + { + gLastUsedAbility = ability; + effect++; + } + } + break; + case ABILITYEFFECT_COUNT_BANK_SIDE: // 17 + side = GetBankSide(bank); + for (i = 0; i < gNoOfAllBanks; i++) + { + if (GetBankSide(i) == side && gBattleMons[i].ability == ability) + { + gLastUsedAbility = ability; + effect++; + } + } + break; + case ABILITYEFFECT_COUNT_ON_FIELD: // 18 + for (i = 0; i < gNoOfAllBanks; i++) + { + if (gBattleMons[i].ability == ability && i != bank) + { + gLastUsedAbility = ability; + effect++; + } + } + break; + } + if (effect && caseID < 0xC && gLastUsedAbility != 0xFF) + RecordAbilityBattle(bank, gLastUsedAbility); + } + + return effect; +} +#else +__attribute__((naked)) +u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) +{ + asm( + "\n\ + .syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x28\n\ + ldr r4, [sp, 0x48]\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + str r0, [sp, 0x4]\n\ + lsls r1, 24\n\ + lsrs r1, 24\n\ + mov r10, r1\n\ + lsls r2, 24\n\ + lsrs r6, r2, 24\n\ + lsls r3, 24\n\ + lsrs r3, 24\n\ + mov r8, r3\n\ + lsls r4, 16\n\ + lsrs r4, 16\n\ + movs r0, 0\n\ + mov r9, r0\n\ + ldr r5, =gBankAttacker\n\ + ldr r1, =gNoOfAllBanks\n\ + ldrb r0, [r5]\n\ + ldrb r1, [r1]\n\ + cmp r0, r1\n\ + bcc _08042864\n\ + mov r1, r10\n\ + strb r1, [r5]\n\ +_08042864:\n\ + ldrb r0, [r5]\n\ + bl GetBankSide\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + bne _08042894\n\ + ldr r1, =gBattlePartyID\n\ + ldrb r0, [r5]\n\ + lsls r0, 1\n\ + adds r0, r1\n\ + ldrh r1, [r0]\n\ + movs r0, 0x64\n\ + muls r1, r0\n\ + ldr r0, =gPlayerParty\n\ + b _080428A4\n\ + .pool\n\ +_08042894:\n\ + ldr r1, =gBattlePartyID\n\ + ldrb r0, [r5]\n\ + lsls r0, 1\n\ + adds r0, r1\n\ + ldrh r1, [r0]\n\ + movs r0, 0x64\n\ + muls r1, r0\n\ + ldr r0, =gEnemyParty\n\ +_080428A4:\n\ + adds r7, r1, r0\n\ + ldr r5, =gBankTarget\n\ + ldr r1, =gNoOfAllBanks\n\ + ldrb r0, [r5]\n\ + ldrb r1, [r1]\n\ + cmp r0, r1\n\ + bcc _080428B6\n\ + mov r2, r10\n\ + strb r2, [r5]\n\ +_080428B6:\n\ + ldrb r0, [r5]\n\ + bl GetBankSide\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + bne _080428E8\n\ + ldr r1, =gBattlePartyID\n\ + ldrb r0, [r5]\n\ + lsls r0, 1\n\ + adds r0, r1\n\ + ldrh r1, [r0]\n\ + movs r0, 0x64\n\ + muls r1, r0\n\ + ldr r0, =gPlayerParty\n\ + b _080428F8\n\ + .pool\n\ +_080428E8:\n\ + ldr r1, =gBattlePartyID\n\ + ldrb r0, [r5]\n\ + lsls r0, 1\n\ + adds r0, r1\n\ + ldrh r1, [r0]\n\ + movs r0, 0x64\n\ + muls r1, r0\n\ + ldr r0, =gEnemyParty\n\ +_080428F8:\n\ + adds r5, r1, r0\n\ + adds r0, r7, 0\n\ + movs r1, 0xB\n\ + bl GetMonData\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + str r0, [sp, 0x8]\n\ + adds r0, r7, 0\n\ + movs r1, 0\n\ + bl GetMonData\n\ + str r0, [sp, 0x10]\n\ + adds r0, r5, 0\n\ + movs r1, 0xB\n\ + bl GetMonData\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + str r0, [sp, 0xC]\n\ + adds r0, r5, 0\n\ + movs r1, 0\n\ + bl GetMonData\n\ + str r0, [sp, 0x14]\n\ + ldr r0, =gBattleTypeFlags\n\ + ldr r0, [r0]\n\ + movs r1, 0x80\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _0804293A\n\ + bl _0804443A\n\ +_0804293A:\n\ + mov r3, r8\n\ + cmp r3, 0\n\ + beq _08042958\n\ + ldr r0, =gLastUsedAbility\n\ + strb r3, [r0]\n\ + adds r7, r0, 0\n\ + b _0804296E\n\ + .pool\n\ +_08042958:\n\ + ldr r2, =gLastUsedAbility\n\ + ldr r1, =gBattleMons\n\ + movs r0, 0x58\n\ + mov r5, r10\n\ + muls r5, r0\n\ + adds r0, r5, 0\n\ + adds r0, r1\n\ + adds r0, 0x20\n\ + ldrb r0, [r0]\n\ + strb r0, [r2]\n\ + adds r7, r2, 0\n\ +_0804296E:\n\ + cmp r4, 0\n\ + beq _08042980\n\ + adds r5, r4, 0\n\ + b _08042984\n\ + .pool\n\ +_08042980:\n\ + ldr r0, =gCurrentMove\n\ + ldrh r5, [r0]\n\ +_08042984:\n\ + ldr r1, =gBattleStruct\n\ + ldr r0, [r1]\n\ + ldrb r0, [r0, 0x13]\n\ + mov r8, r1\n\ + cmp r0, 0\n\ + beq _080429A0\n\ + movs r3, 0x3F\n\ + ands r3, r0\n\ + b _080429AC\n\ + .pool\n\ +_080429A0:\n\ + ldr r1, =gBattleMoves\n\ + lsls r0, r5, 1\n\ + adds r0, r5\n\ + lsls r0, 2\n\ + adds r0, r1\n\ + ldrb r3, [r0, 0x2]\n\ +_080429AC:\n\ + ldr r0, [sp, 0x4]\n\ + cmp r0, 0x13\n\ + bls _080429B6\n\ + bl _0804441E\n\ +_080429B6:\n\ + lsls r0, 2\n\ + ldr r1, =_080429C8\n\ + adds r0, r1\n\ + ldr r0, [r0]\n\ + mov pc, r0\n\ + .pool\n\ + .align 2, 0\n\ +_080429C8:\n\ + .4byte _08042A18\n\ + .4byte _08042CDC\n\ + .4byte _08042EF8\n\ + .4byte _08042F8C\n\ + .4byte _080431AC\n\ + .4byte _08043908\n\ + .4byte _08043C6C\n\ + .4byte _08043CBC\n\ + .4byte _08043D40\n\ + .4byte _08043DC4\n\ + .4byte _08043FE4\n\ + .4byte _08043E08\n\ + .4byte _08044028\n\ + .4byte _08044084\n\ + .4byte _080440E0\n\ + .4byte _080441DC\n\ + .4byte _08044220\n\ + .4byte _0804427C\n\ + .4byte _080443EC\n\ + .4byte _08044196\n\ +_08042A18:\n\ + ldr r2, =gBankAttacker\n\ + ldr r0, =gNoOfAllBanks\n\ + ldrb r1, [r2]\n\ + adds r5, r0, 0\n\ + ldrb r3, [r5]\n\ + cmp r1, r3\n\ + bcc _08042A2A\n\ + mov r0, r10\n\ + strb r0, [r2]\n\ +_08042A2A:\n\ + ldrb r0, [r7]\n\ + cmp r0, 0x2D\n\ + bne _08042A32\n\ + b _08042BA8\n\ +_08042A32:\n\ + cmp r0, 0x2D\n\ + bgt _08042A64\n\ + cmp r0, 0xD\n\ + bne _08042A3C\n\ + b _08042CA4\n\ +_08042A3C:\n\ + cmp r0, 0xD\n\ + bgt _08042A54\n\ + cmp r0, 0x2\n\ + bne _08042A46\n\ + b _08042B78\n\ +_08042A46:\n\ + bl _0804441E\n\ + .pool\n\ +_08042A54:\n\ + cmp r0, 0x16\n\ + bne _08042A5A\n\ + b _08042C08\n\ +_08042A5A:\n\ + cmp r0, 0x24\n\ + bne _08042A60\n\ + b _08042C68\n\ +_08042A60:\n\ + bl _0804441E\n\ +_08042A64:\n\ + cmp r0, 0x46\n\ + bne _08042A6A\n\ + b _08042BD8\n\ +_08042A6A:\n\ + cmp r0, 0x46\n\ + bgt _08042A78\n\ + cmp r0, 0x3B\n\ + bne _08042A74\n\ + b _08042C3C\n\ +_08042A74:\n\ + bl _0804441E\n\ +_08042A78:\n\ + cmp r0, 0x4D\n\ + bne _08042A7E\n\ + b _08042CA4\n\ +_08042A7E:\n\ + cmp r0, 0xFF\n\ + beq _08042A86\n\ + bl _0804441E\n\ +_08042A86:\n\ + ldr r0, =gBattleTypeFlags\n\ + ldr r0, [r0]\n\ + movs r1, 0x80\n\ + lsls r1, 17\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _08042B4C\n\ + bl weather_get_current\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + subs r0, 0x3\n\ + cmp r0, 0xA\n\ + bhi _08042B4C\n\ + lsls r0, 2\n\ + ldr r1, =_08042AB4\n\ + adds r0, r1\n\ + ldr r0, [r0]\n\ + mov pc, r0\n\ + .pool\n\ + .align 2, 0\n\ +_08042AB4:\n\ + .4byte _08042AE0\n\ + .4byte _08042B4C\n\ + .4byte _08042AE0\n\ + .4byte _08042B4C\n\ + .4byte _08042B4C\n\ + .4byte _08042B04\n\ + .4byte _08042B4C\n\ + .4byte _08042B4C\n\ + .4byte _08042B4C\n\ + .4byte _08042B28\n\ + .4byte _08042AE0\n\ +_08042AE0:\n\ + ldr r2, =gBattleWeather\n\ + ldrh r1, [r2]\n\ + movs r0, 0x7\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _08042B4C\n\ + movs r0, 0x5\n\ + strh r0, [r2]\n\ + ldr r1, =gBattleScripting\n\ + movs r0, 0xA\n\ + strb r0, [r1, 0x10]\n\ + mov r2, r10\n\ + strb r2, [r1, 0x17]\n\ + b _08042B42\n\ + .pool\n\ +_08042B04:\n\ + ldr r3, =gBattleWeather\n\ + ldrh r1, [r3]\n\ + movs r2, 0x18\n\ + adds r0, r2, 0\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _08042B4C\n\ + strh r2, [r3]\n\ + ldr r1, =gBattleScripting\n\ + movs r0, 0xC\n\ + strb r0, [r1, 0x10]\n\ + mov r3, r10\n\ + strb r3, [r1, 0x17]\n\ + b _08042B42\n\ + .pool\n\ +_08042B28:\n\ + ldr r3, =gBattleWeather\n\ + ldrh r1, [r3]\n\ + movs r2, 0x60\n\ + adds r0, r2, 0\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _08042B4C\n\ + strh r2, [r3]\n\ + ldr r1, =gBattleScripting\n\ + movs r0, 0xB\n\ + strb r0, [r1, 0x10]\n\ + mov r5, r10\n\ + strb r5, [r1, 0x17]\n\ +_08042B42:\n\ + mov r0, r9\n\ + adds r0, 0x1\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + mov r9, r0\n\ +_08042B4C:\n\ + mov r0, r9\n\ + cmp r0, 0\n\ + bne _08042B56\n\ + bl _0804443A\n\ +_08042B56:\n\ + bl weather_get_current\n\ + ldr r1, =gBattleCommunication\n\ + strb r0, [r1, 0x5]\n\ + ldr r0, =gUnknown_082DACE7\n\ + bl BattleScriptPushCursorAndCallback\n\ + bl _0804441E\n\ + .pool\n\ +_08042B78:\n\ + ldr r2, =gBattleWeather\n\ + ldrh r1, [r2]\n\ + movs r0, 0x4\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _08042B88\n\ + bl _0804441E\n\ +_08042B88:\n\ + movs r0, 0x5\n\ + strh r0, [r2]\n\ + ldr r0, =BattleScript_DrizzleActivates\n\ + bl BattleScriptPushCursorAndCallback\n\ + ldr r0, =gBattleScripting\n\ + mov r1, r10\n\ + strb r1, [r0, 0x17]\n\ + bl _080443D0\n\ + .pool\n\ +_08042BA8:\n\ + ldr r2, =gBattleWeather\n\ + ldrh r1, [r2]\n\ + movs r0, 0x10\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _08042BB8\n\ + bl _0804441E\n\ +_08042BB8:\n\ + movs r0, 0x18\n\ + strh r0, [r2]\n\ + ldr r0, =BattleScript_SandstreamActivates\n\ + bl BattleScriptPushCursorAndCallback\n\ + ldr r0, =gBattleScripting\n\ + mov r2, r10\n\ + strb r2, [r0, 0x17]\n\ + bl _080443D0\n\ + .pool\n\ +_08042BD8:\n\ + ldr r2, =gBattleWeather\n\ + ldrh r1, [r2]\n\ + movs r0, 0x40\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _08042BE8\n\ + bl _0804441E\n\ +_08042BE8:\n\ + movs r0, 0x60\n\ + strh r0, [r2]\n\ + ldr r0, =BattleScript_DroughtActivates\n\ + bl BattleScriptPushCursorAndCallback\n\ + ldr r0, =gBattleScripting\n\ + mov r3, r10\n\ + strb r3, [r0, 0x17]\n\ + bl _080443D0\n\ + .pool\n\ +_08042C08:\n\ + ldr r0, =gSpecialStatuses\n\ + mov r5, r10\n\ + lsls r2, r5, 2\n\ + adds r1, r2, r5\n\ + lsls r1, 2\n\ + adds r3, r1, r0\n\ + ldrb r0, [r3]\n\ + lsls r0, 28\n\ + cmp r0, 0\n\ + bge _08042C20\n\ + bl _0804441E\n\ +_08042C20:\n\ + ldr r1, =gStatuses3\n\ + adds r1, r2, r1\n\ + ldr r0, [r1]\n\ + movs r2, 0x80\n\ + lsls r2, 12\n\ + orrs r0, r2\n\ + str r0, [r1]\n\ + ldrb r0, [r3]\n\ + movs r1, 0x8\n\ + b _08042C92\n\ + .pool\n\ +_08042C3C:\n\ + mov r0, r10\n\ + bl CastformDataTypeChange\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + mov r9, r0\n\ + cmp r0, 0\n\ + bne _08042C50\n\ + bl _0804443A\n\ +_08042C50:\n\ + ldr r0, =BattleScript_CastformChange\n\ + bl BattleScriptPushCursorAndCallback\n\ + ldr r0, =gBattleScripting\n\ + mov r1, r10\n\ + strb r1, [r0, 0x17]\n\ + bl _080442E2\n\ + .pool\n\ +_08042C68:\n\ + ldr r0, =gSpecialStatuses\n\ + mov r3, r10\n\ + lsls r2, r3, 2\n\ + adds r1, r2, r3\n\ + lsls r1, 2\n\ + adds r3, r1, r0\n\ + ldrb r0, [r3]\n\ + lsls r0, 27\n\ + cmp r0, 0\n\ + bge _08042C80\n\ + bl _0804441E\n\ +_08042C80:\n\ + ldr r1, =gStatuses3\n\ + adds r1, r2, r1\n\ + ldr r0, [r1]\n\ + movs r2, 0x80\n\ + lsls r2, 13\n\ + orrs r0, r2\n\ + str r0, [r1]\n\ + ldrb r0, [r3]\n\ + movs r1, 0x10\n\ +_08042C92:\n\ + orrs r0, r1\n\ + strb r0, [r3]\n\ + bl _0804441E\n\ + .pool\n\ +_08042CA4:\n\ + movs r6, 0\n\ + ldrb r5, [r5]\n\ + cmp r6, r5\n\ + bcc _08042CB0\n\ + bl _0804441E\n\ +_08042CB0:\n\ + adds r0, r6, 0\n\ + bl CastformDataTypeChange\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + mov r9, r0\n\ + cmp r0, 0\n\ + beq _08042CC4\n\ + bl _080442D8\n\ +_08042CC4:\n\ + adds r0, r6, 0x1\n\ + lsls r0, 24\n\ + lsrs r6, r0, 24\n\ + ldr r0, =gNoOfAllBanks\n\ + ldrb r0, [r0]\n\ + cmp r6, r0\n\ + bcc _08042CB0\n\ + bl _0804441E\n\ + .pool\n\ +_08042CDC:\n\ + ldr r5, =gBattleMons\n\ + mov r8, r5\n\ + movs r0, 0x58\n\ + mov r6, r10\n\ + muls r6, r0\n\ + adds r4, r6, r5\n\ + ldrh r0, [r4, 0x28]\n\ + cmp r0, 0\n\ + bne _08042CF2\n\ + bl _0804441E\n\ +_08042CF2:\n\ + ldr r0, =gBankAttacker\n\ + mov r1, r10\n\ + strb r1, [r0]\n\ + ldrb r5, [r7]\n\ + cmp r5, 0x2C\n\ + beq _08042D22\n\ + cmp r5, 0x2C\n\ + bgt _08042D14\n\ + cmp r5, 0x3\n\ + bne _08042D08\n\ + b _08042E84\n\ +_08042D08:\n\ + bl _0804441E\n\ + .pool\n\ +_08042D14:\n\ + cmp r5, 0x36\n\ + bne _08042D1A\n\ + b _08042ED0\n\ +_08042D1A:\n\ + cmp r5, 0x3D\n\ + beq _08042DA0\n\ + bl _0804441E\n\ +_08042D22:\n\ + movs r0, 0\n\ + str r0, [sp]\n\ + movs r0, 0x13\n\ + movs r1, 0\n\ + movs r2, 0xD\n\ + movs r3, 0\n\ + bl AbilityBattleEffects\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + cmp r0, 0\n\ + beq _08042D3E\n\ + bl _0804441E\n\ +_08042D3E:\n\ + str r0, [sp]\n\ + movs r0, 0x13\n\ + movs r1, 0\n\ + movs r2, 0x4D\n\ + movs r3, 0\n\ + bl AbilityBattleEffects\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + beq _08042D56\n\ + bl _0804441E\n\ +_08042D56:\n\ + ldr r0, =gBattleWeather\n\ + ldrh r1, [r0]\n\ + movs r0, 0x7\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _08042D66\n\ + bl _0804441E\n\ +_08042D66:\n\ + ldrh r0, [r4, 0x2C]\n\ + ldrh r2, [r4, 0x28]\n\ + cmp r0, r2\n\ + bhi _08042D72\n\ + bl _0804441E\n\ +_08042D72:\n\ + strb r5, [r7]\n\ + ldr r0, =BattleScript_RainDishActivates\n\ + bl BattleScriptPushCursorAndCallback\n\ + ldr r1, =gBattleMoveDamage\n\ + ldrh r0, [r4, 0x2C]\n\ + lsrs r0, 4\n\ + str r0, [r1]\n\ + cmp r0, 0\n\ + bne _08042D8A\n\ + movs r0, 0x1\n\ + str r0, [r1]\n\ +_08042D8A:\n\ + ldr r0, [r1]\n\ + negs r0, r0\n\ + str r0, [r1]\n\ + bl _080443D0\n\ + .pool\n\ +_08042DA0:\n\ + mov r0, r8\n\ + adds r0, 0x4C\n\ + adds r5, r6, r0\n\ + ldrb r0, [r5]\n\ + cmp r0, 0\n\ + bne _08042DB0\n\ + bl _0804441E\n\ +_08042DB0:\n\ + bl Random\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + movs r1, 0x3\n\ + bl __umodsi3\n\ + lsls r0, 16\n\ + lsrs r4, r0, 16\n\ + cmp r4, 0\n\ + beq _08042DCA\n\ + bl _0804441E\n\ +_08042DCA:\n\ + ldr r0, [r5]\n\ + movs r1, 0x88\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _08042DDC\n\ + ldr r0, =gBattleTextBuff1\n\ + ldr r1, =gStatusConditionString_PoisonJpn\n\ + bl StringCopy\n\ +_08042DDC:\n\ + ldr r0, [r5]\n\ + movs r1, 0x7\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _08042DEE\n\ + ldr r0, =gBattleTextBuff1\n\ + ldr r1, =gStatusConditionString_SleepJpn\n\ + bl StringCopy\n\ +_08042DEE:\n\ + ldr r0, [r5]\n\ + movs r1, 0x40\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _08042E00\n\ + ldr r0, =gBattleTextBuff1\n\ + ldr r1, =gStatusConditionString_ParalysisJpn\n\ + bl StringCopy\n\ +_08042E00:\n\ + ldr r0, [r5]\n\ + movs r1, 0x10\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _08042E12\n\ + ldr r0, =gBattleTextBuff1\n\ + ldr r1, =gStatusConditionString_BurnJpn\n\ + bl StringCopy\n\ +_08042E12:\n\ + ldr r0, [r5]\n\ + movs r1, 0x20\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _08042E24\n\ + ldr r0, =gBattleTextBuff1\n\ + ldr r1, =gStatusConditionString_IceJpn\n\ + bl StringCopy\n\ +_08042E24:\n\ + str r4, [r5]\n\ + mov r1, r8\n\ + adds r1, 0x50\n\ + adds r1, r6, r1\n\ + ldr r0, [r1]\n\ + ldr r2, =0xf7ffffff\n\ + ands r0, r2\n\ + str r0, [r1]\n\ + ldr r0, =gBattleScripting\n\ + ldr r4, =gActiveBank\n\ + mov r3, r10\n\ + strb r3, [r4]\n\ + strb r3, [r0, 0x17]\n\ + ldr r0, =BattleScript_ShedSkinActivates\n\ + bl BattleScriptPushCursorAndCallback\n\ + str r5, [sp]\n\ + movs r0, 0\n\ + movs r1, 0x28\n\ + movs r2, 0\n\ + movs r3, 0x4\n\ + bl EmitSetMonData\n\ + ldrb r0, [r4]\n\ + bl MarkBufferBankForExecution\n\ + bl _080443D0\n\ + .pool\n\ +_08042E84:\n\ + ldrb r2, [r4, 0x1B]\n\ + movs r0, 0x1B\n\ + ldrsb r0, [r4, r0]\n\ + cmp r0, 0xB\n\ + ble _08042E92\n\ + bl _0804441E\n\ +_08042E92:\n\ + ldr r0, =gDisableStructs\n\ + mov r5, r10\n\ + lsls r1, r5, 3\n\ + subs r1, r5\n\ + lsls r1, 2\n\ + adds r1, r0\n\ + ldrb r0, [r1, 0x16]\n\ + cmp r0, 0x2\n\ + bne _08042EA8\n\ + bl _0804441E\n\ +_08042EA8:\n\ + adds r0, r2, 0x1\n\ + movs r1, 0\n\ + strb r0, [r4, 0x1B]\n\ + ldr r4, =gBattleScripting\n\ + movs r0, 0x11\n\ + strb r0, [r4, 0x10]\n\ + strb r1, [r4, 0x11]\n\ + ldr r0, =BattleScript_SpeedBoostActivates\n\ + bl BattleScriptPushCursorAndCallback\n\ + strb r5, [r4, 0x17]\n\ + bl _080443D0\n\ + .pool\n\ +_08042ED0:\n\ + ldr r2, =gDisableStructs\n\ + ldrb r0, [r0]\n\ + lsls r1, r0, 3\n\ + subs r1, r0\n\ + lsls r1, 2\n\ + adds r1, r2\n\ + ldrb r3, [r1, 0x18]\n\ + lsls r0, r3, 31\n\ + lsrs r0, 31\n\ + movs r2, 0x1\n\ + eors r2, r0\n\ + movs r0, 0x2\n\ + negs r0, r0\n\ + ands r0, r3\n\ + orrs r0, r2\n\ + strb r0, [r1, 0x18]\n\ + bl _0804441E\n\ + .pool\n\ +_08042EF8:\n\ + ldrb r0, [r7]\n\ + cmp r0, 0x2B\n\ + beq _08042F02\n\ + bl _0804441E\n\ +_08042F02:\n\ + movs r4, 0\n\ + ldr r0, =gSoundMovesTable\n\ + ldrh r2, [r0]\n\ + ldr r3, =0x0000ffff\n\ + adds r1, r0, 0\n\ + cmp r2, r3\n\ + bne _08042F14\n\ + bl _0804441E\n\ +_08042F14:\n\ + cmp r2, r5\n\ + beq _08042F2C\n\ + adds r2, r1, 0\n\ +_08042F1A:\n\ + adds r2, 0x2\n\ + adds r4, 0x1\n\ + ldrh r0, [r2]\n\ + cmp r0, r3\n\ + bne _08042F28\n\ + bl _0804441E\n\ +_08042F28:\n\ + cmp r0, r5\n\ + bne _08042F1A\n\ +_08042F2C:\n\ + lsls r0, r4, 1\n\ + adds r0, r1\n\ + ldrh r1, [r0]\n\ + ldr r0, =0x0000ffff\n\ + cmp r1, r0\n\ + bne _08042F3C\n\ + bl _0804441E\n\ +_08042F3C:\n\ + ldr r1, =gBattleMons\n\ + ldr r0, =gBankAttacker\n\ + ldrb r2, [r0]\n\ + movs r0, 0x58\n\ + muls r0, r2\n\ + adds r1, 0x50\n\ + adds r0, r1\n\ + ldr r0, [r0]\n\ + movs r1, 0x80\n\ + lsls r1, 5\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _08042F62\n\ + ldr r0, =gHitMarker\n\ + ldr r1, [r0]\n\ + movs r2, 0x80\n\ + lsls r2, 4\n\ + orrs r1, r2\n\ + str r1, [r0]\n\ +_08042F62:\n\ + ldr r1, =gBattlescriptCurrInstr\n\ + ldr r0, =BattleScript_SoundproofProtected\n\ + str r0, [r1]\n\ + movs r0, 0x1\n\ + mov r9, r0\n\ + bl _08044424\n\ + .pool\n\ +_08042F8C:\n\ + cmp r5, 0\n\ + bne _08042F94\n\ + bl _0804441E\n\ +_08042F94:\n\ + ldrb r0, [r7]\n\ + cmp r0, 0xB\n\ + beq _08043004\n\ + cmp r0, 0xB\n\ + bgt _08042FA4\n\ + cmp r0, 0xA\n\ + beq _08042FAA\n\ + b _08043126\n\ +_08042FA4:\n\ + cmp r0, 0x12\n\ + beq _0804305C\n\ + b _08043126\n\ +_08042FAA:\n\ + cmp r3, 0xD\n\ + beq _08042FB0\n\ + b _08043126\n\ +_08042FB0:\n\ + ldr r0, =gBattleMoves\n\ + lsls r1, r5, 1\n\ + adds r1, r5\n\ + lsls r1, 2\n\ + adds r1, r0\n\ + ldrb r0, [r1, 0x1]\n\ + cmp r0, 0\n\ + bne _08042FC2\n\ + b _08043126\n\ +_08042FC2:\n\ + ldr r1, =gProtectStructs\n\ + ldr r0, =gBankAttacker\n\ + ldrb r0, [r0]\n\ + lsls r0, 4\n\ + adds r0, r1\n\ + ldrb r0, [r0, 0x2]\n\ + lsls r0, 28\n\ + cmp r0, 0\n\ + bge _08042FF0\n\ + ldr r1, =gBattlescriptCurrInstr\n\ + ldr r0, =BattleScript_MoveHPDrain\n\ + b _08042FF4\n\ + .pool\n\ +_08042FF0:\n\ + ldr r1, =gBattlescriptCurrInstr\n\ + ldr r0, =BattleScript_MoveHPDrain_PPLoss\n\ +_08042FF4:\n\ + str r0, [r1]\n\ + movs r1, 0x1\n\ + b _08043124\n\ + .pool\n\ +_08043004:\n\ + cmp r3, 0xB\n\ + beq _0804300A\n\ + b _08043126\n\ +_0804300A:\n\ + ldr r0, =gBattleMoves\n\ + lsls r1, r5, 1\n\ + adds r1, r5\n\ + lsls r1, 2\n\ + adds r1, r0\n\ + ldrb r0, [r1, 0x1]\n\ + cmp r0, 0\n\ + bne _0804301C\n\ + b _08043126\n\ +_0804301C:\n\ + ldr r1, =gProtectStructs\n\ + ldr r0, =gBankAttacker\n\ + ldrb r0, [r0]\n\ + lsls r0, 4\n\ + adds r0, r1\n\ + ldrb r0, [r0, 0x2]\n\ + lsls r0, 28\n\ + cmp r0, 0\n\ + bge _08043048\n\ + ldr r1, =gBattlescriptCurrInstr\n\ + ldr r0, =BattleScript_MoveHPDrain\n\ + b _0804304C\n\ + .pool\n\ +_08043048:\n\ + ldr r1, =gBattlescriptCurrInstr\n\ + ldr r0, =BattleScript_MoveHPDrain_PPLoss\n\ +_0804304C:\n\ + str r0, [r1]\n\ + movs r2, 0x1\n\ + mov r9, r2\n\ + b _08043126\n\ + .pool\n\ +_0804305C:\n\ + cmp r3, 0xA\n\ + bne _08043126\n\ + ldr r1, =gBattleMons\n\ + movs r0, 0x58\n\ + mov r3, r10\n\ + muls r3, r0\n\ + adds r0, r3, 0\n\ + adds r1, 0x4C\n\ + adds r0, r1\n\ + ldr r0, [r0]\n\ + movs r1, 0x20\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _08043126\n\ + ldr r2, =gBattleResources\n\ + ldr r0, [r2]\n\ + ldr r0, [r0, 0x4]\n\ + mov r5, r10\n\ + lsls r1, r5, 2\n\ + adds r0, r1\n\ + ldr r3, [r0]\n\ + movs r4, 0x1\n\ + ands r3, r4\n\ + adds r5, r1, 0\n\ + cmp r3, 0\n\ + bne _080430EC\n\ + ldr r0, =gBattleCommunication\n\ + strb r3, [r0, 0x5]\n\ + ldr r1, =gProtectStructs\n\ + ldr r0, =gBankAttacker\n\ + ldrb r0, [r0]\n\ + lsls r0, 4\n\ + adds r0, r1\n\ + ldrb r0, [r0, 0x2]\n\ + lsls r0, 28\n\ + cmp r0, 0\n\ + bge _080430C8\n\ + ldr r1, =gBattlescriptCurrInstr\n\ + ldr r0, =BattleScript_FlashFireBoost\n\ + b _080430CC\n\ + .pool\n\ +_080430C8:\n\ + ldr r1, =gBattlescriptCurrInstr\n\ + ldr r0, =BattleScript_FlashFireBoost_PPLoss\n\ +_080430CC:\n\ + str r0, [r1]\n\ + ldr r0, [r2]\n\ + ldr r1, [r0, 0x4]\n\ + adds r1, r5\n\ + ldr r0, [r1]\n\ + movs r2, 0x1\n\ + orrs r0, r2\n\ + str r0, [r1]\n\ + movs r0, 0x2\n\ + mov r9, r0\n\ + b _08043126\n\ + .pool\n\ +_080430EC:\n\ + ldr r0, =gBattleCommunication\n\ + strb r4, [r0, 0x5]\n\ + ldr r1, =gProtectStructs\n\ + ldr r0, =gBankAttacker\n\ + ldrb r0, [r0]\n\ + lsls r0, 4\n\ + adds r0, r1\n\ + ldrb r0, [r0, 0x2]\n\ + lsls r0, 28\n\ + cmp r0, 0\n\ + bge _0804311C\n\ + ldr r1, =gBattlescriptCurrInstr\n\ + ldr r0, =BattleScript_FlashFireBoost\n\ + b _08043120\n\ + .pool\n\ +_0804311C:\n\ + ldr r1, =gBattlescriptCurrInstr\n\ + ldr r0, =BattleScript_FlashFireBoost_PPLoss\n\ +_08043120:\n\ + str r0, [r1]\n\ + movs r1, 0x2\n\ +_08043124:\n\ + mov r9, r1\n\ +_08043126:\n\ + mov r2, r9\n\ + cmp r2, 0x1\n\ + beq _08043130\n\ + bl _0804441E\n\ +_08043130:\n\ + ldr r1, =gBattleMons\n\ + movs r0, 0x58\n\ + mov r3, r10\n\ + muls r3, r0\n\ + adds r0, r3, 0\n\ + adds r1, r0, r1\n\ + ldrh r0, [r1, 0x2C]\n\ + ldrh r5, [r1, 0x28]\n\ + cmp r0, r5\n\ + bne _0804318C\n\ + ldr r1, =gProtectStructs\n\ + ldr r0, =gBankAttacker\n\ + ldrb r0, [r0]\n\ + lsls r0, 4\n\ + adds r0, r1\n\ + ldrb r0, [r0, 0x2]\n\ + lsls r0, 28\n\ + cmp r0, 0\n\ + bge _08043178\n\ + ldr r1, =gBattlescriptCurrInstr\n\ + ldr r0, =gUnknown_082DB592\n\ + str r0, [r1]\n\ + bl _0804441E\n\ + .pool\n\ +_08043178:\n\ + ldr r1, =gBattlescriptCurrInstr\n\ + ldr r0, =gUnknown_082DB591\n\ + str r0, [r1]\n\ + bl _0804441E\n\ + .pool\n\ +_0804318C:\n\ + ldr r2, =gBattleMoveDamage\n\ + ldrh r0, [r1, 0x2C]\n\ + lsrs r0, 2\n\ + str r0, [r2]\n\ + cmp r0, 0\n\ + bne _0804319C\n\ + mov r0, r9\n\ + str r0, [r2]\n\ +_0804319C:\n\ + ldr r0, [r2]\n\ + negs r0, r0\n\ + str r0, [r2]\n\ + bl _0804441E\n\ + .pool\n\ +_080431AC:\n\ + ldrb r0, [r7]\n\ + subs r0, 0x9\n\ + cmp r0, 0x2F\n\ + bls _080431B8\n\ + bl _0804441E\n\ +_080431B8:\n\ + lsls r0, 2\n\ + ldr r1, =_080431C8\n\ + adds r0, r1\n\ + ldr r0, [r0]\n\ + mov pc, r0\n\ + .pool\n\ + .align 2, 0\n\ +_080431C8:\n\ + .4byte _080435E4\n\ + .4byte _0804441E\n\ + .4byte _0804441E\n\ + .4byte _0804441E\n\ + .4byte _0804441E\n\ + .4byte _0804441E\n\ + .4byte _0804441E\n\ + .4byte _08043288\n\ + .4byte _0804441E\n\ + .4byte _0804441E\n\ + .4byte _0804441E\n\ + .4byte _0804441E\n\ + .4byte _0804441E\n\ + .4byte _0804441E\n\ + .4byte _0804441E\n\ + .4byte _08043350\n\ + .4byte _0804441E\n\ + .4byte _0804441E\n\ + .4byte _08043410\n\ + .4byte _0804441E\n\ + .4byte _0804441E\n\ + .4byte _0804441E\n\ + .4byte _0804441E\n\ + .4byte _0804441E\n\ + .4byte _0804441E\n\ + .4byte _0804441E\n\ + .4byte _0804441E\n\ + .4byte _0804441E\n\ + .4byte _0804441E\n\ + .4byte _08043508\n\ + .4byte _0804441E\n\ + .4byte _0804441E\n\ + .4byte _0804441E\n\ + .4byte _0804441E\n\ + .4byte _0804441E\n\ + .4byte _0804441E\n\ + .4byte _0804441E\n\ + .4byte _0804441E\n\ + .4byte _0804441E\n\ + .4byte _0804441E\n\ + .4byte _080436C0\n\ + .4byte _0804441E\n\ + .4byte _0804441E\n\ + .4byte _0804441E\n\ + .4byte _0804441E\n\ + .4byte _0804441E\n\ + .4byte _0804441E\n\ + .4byte _0804379C\n\ +_08043288:\n\ + ldr r0, =gBattleMoveFlags\n\ + ldrb r1, [r0]\n\ + movs r0, 0x29\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _08043298\n\ + bl _0804441E\n\ +_08043298:\n\ + cmp r5, 0xA5\n\ + bne _080432A0\n\ + bl _0804441E\n\ +_080432A0:\n\ + ldr r0, =gBattleMoves\n\ + lsls r1, r5, 1\n\ + adds r1, r5\n\ + lsls r1, 2\n\ + adds r1, r0\n\ + ldrb r0, [r1, 0x1]\n\ + cmp r0, 0\n\ + bne _080432B4\n\ + bl _0804441E\n\ +_080432B4:\n\ + ldr r2, =gSpecialStatuses\n\ + ldr r0, =gBankTarget\n\ + ldrb r1, [r0]\n\ + lsls r0, r1, 2\n\ + adds r0, r1\n\ + lsls r1, r0, 2\n\ + adds r0, r2, 0\n\ + adds r0, 0x8\n\ + adds r0, r1, r0\n\ + ldr r0, [r0]\n\ + cmp r0, 0\n\ + bne _080432DC\n\ + adds r0, r2, 0\n\ + adds r0, 0xC\n\ + adds r0, r1, r0\n\ + ldr r0, [r0]\n\ + cmp r0, 0\n\ + bne _080432DC\n\ + bl _0804441E\n\ +_080432DC:\n\ + ldr r1, =gBattleMons\n\ + movs r0, 0x58\n\ + mov r2, r10\n\ + muls r2, r0\n\ + adds r0, r2, 0\n\ + adds r1, r0, r1\n\ + adds r4, r1, 0\n\ + adds r4, 0x21\n\ + ldrb r0, [r4]\n\ + cmp r0, r3\n\ + bne _080432F6\n\ + bl _0804441E\n\ +_080432F6:\n\ + adds r2, r1, 0\n\ + adds r2, 0x22\n\ + ldrb r0, [r2]\n\ + cmp r0, r3\n\ + bne _08043304\n\ + bl _0804441E\n\ +_08043304:\n\ + ldrh r0, [r1, 0x28]\n\ + cmp r0, 0\n\ + bne _0804330E\n\ + bl _0804441E\n\ +_0804330E:\n\ + strb r3, [r4]\n\ + strb r3, [r2]\n\ + ldr r1, =gBattleTextBuff1\n\ + movs r0, 0xFD\n\ + strb r0, [r1]\n\ + movs r0, 0x3\n\ + strb r0, [r1, 0x1]\n\ + strb r3, [r1, 0x2]\n\ + movs r0, 0xFF\n\ + strb r0, [r1, 0x3]\n\ + bl BattleScriptPushCursor\n\ + ldr r1, =gBattlescriptCurrInstr\n\ + ldr r0, =BattleScript_ColorChangeActivates\n\ + str r0, [r1]\n\ + bl _080443D0\n\ + .pool\n\ +_08043350:\n\ + ldr r0, =gBattleMoveFlags\n\ + ldrb r1, [r0]\n\ + movs r0, 0x29\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _08043360\n\ + bl _0804441E\n\ +_08043360:\n\ + ldr r1, =gBattleMons\n\ + ldr r0, =gBankAttacker\n\ + ldrb r2, [r0]\n\ + movs r0, 0x58\n\ + muls r0, r2\n\ + adds r3, r0, r1\n\ + ldrh r0, [r3, 0x28]\n\ + cmp r0, 0\n\ + bne _08043376\n\ + bl _0804441E\n\ +_08043376:\n\ + ldr r0, =gProtectStructs\n\ + lsls r1, r2, 4\n\ + adds r1, r0\n\ + ldrb r0, [r1, 0x1]\n\ + lsls r0, 31\n\ + cmp r0, 0\n\ + beq _08043388\n\ + bl _0804441E\n\ +_08043388:\n\ + ldr r2, =gSpecialStatuses\n\ + ldr r0, =gBankTarget\n\ + ldrb r1, [r0]\n\ + lsls r0, r1, 2\n\ + adds r0, r1\n\ + lsls r1, r0, 2\n\ + adds r0, r2, 0\n\ + adds r0, 0x8\n\ + adds r0, r1, r0\n\ + ldr r0, [r0]\n\ + cmp r0, 0\n\ + bne _080433B0\n\ + adds r0, r2, 0\n\ + adds r0, 0xC\n\ + adds r0, r1, r0\n\ + ldr r0, [r0]\n\ + cmp r0, 0\n\ + bne _080433B0\n\ + bl _0804441E\n\ +_080433B0:\n\ + ldr r1, =gBattleMoves\n\ + lsls r0, r5, 1\n\ + adds r0, r5\n\ + lsls r0, 2\n\ + adds r0, r1\n\ + ldrb r1, [r0, 0x8]\n\ + movs r2, 0x1\n\ + adds r0, r2, 0\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _080433CA\n\ + bl _0804441E\n\ +_080433CA:\n\ + ldr r1, =gBattleMoveDamage\n\ + ldrh r0, [r3, 0x2C]\n\ + lsrs r0, 4\n\ + str r0, [r1]\n\ + cmp r0, 0\n\ + bne _080433D8\n\ + str r2, [r1]\n\ +_080433D8:\n\ + bl BattleScriptPushCursor\n\ + ldr r1, =gBattlescriptCurrInstr\n\ + ldr r0, =BattleScript_RoughSkinActivates\n\ + str r0, [r1]\n\ + bl _080443D0\n\ + .pool\n\ +_08043410:\n\ + ldr r0, =gBattleMoveFlags\n\ + ldrb r1, [r0]\n\ + movs r0, 0x29\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _08043420\n\ + bl _0804441E\n\ +_08043420:\n\ + ldr r1, =gBattleMons\n\ + ldr r0, =gBankAttacker\n\ + ldrb r2, [r0]\n\ + movs r0, 0x58\n\ + muls r0, r2\n\ + adds r0, r1\n\ + ldrh r0, [r0, 0x28]\n\ + cmp r0, 0\n\ + bne _08043436\n\ + bl _0804441E\n\ +_08043436:\n\ + ldr r0, =gProtectStructs\n\ + lsls r1, r2, 4\n\ + adds r1, r0\n\ + ldrb r0, [r1, 0x1]\n\ + lsls r0, 31\n\ + cmp r0, 0\n\ + beq _08043448\n\ + bl _0804441E\n\ +_08043448:\n\ + ldr r2, =gSpecialStatuses\n\ + ldr r0, =gBankTarget\n\ + ldrb r1, [r0]\n\ + lsls r0, r1, 2\n\ + adds r0, r1\n\ + lsls r1, r0, 2\n\ + adds r0, r2, 0\n\ + adds r0, 0x8\n\ + adds r0, r1, r0\n\ + ldr r0, [r0]\n\ + cmp r0, 0\n\ + bne _08043470\n\ + adds r0, r2, 0\n\ + adds r0, 0xC\n\ + adds r0, r1, r0\n\ + ldr r0, [r0]\n\ + cmp r0, 0\n\ + bne _08043470\n\ + bl _0804441E\n\ +_08043470:\n\ + ldr r1, =gBattleMoves\n\ + lsls r0, r5, 1\n\ + adds r0, r5\n\ + lsls r0, 2\n\ + adds r0, r1\n\ + ldrb r1, [r0, 0x8]\n\ + movs r0, 0x1\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _08043488\n\ + bl _0804441E\n\ +_08043488:\n\ + bl Random\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + movs r1, 0xA\n\ + bl __umodsi3\n\ + lsls r0, 16\n\ + cmp r0, 0\n\ + beq _080434A0\n\ + bl _0804441E\n\ +_080434A0:\n\ + ldr r5, =gBattleCommunication\n\ + movs r4, 0x3\n\ +_080434A4:\n\ + bl Random\n\ + ands r0, r4\n\ + strb r0, [r5, 0x3]\n\ + cmp r0, 0\n\ + beq _080434A4\n\ + ldr r1, =gBattleCommunication\n\ + ldrb r0, [r1, 0x3]\n\ + cmp r0, 0x3\n\ + bne _080434BC\n\ + adds r0, 0x2\n\ + strb r0, [r1, 0x3]\n\ +_080434BC:\n\ + ldrb r0, [r1, 0x3]\n\ + adds r0, 0x40\n\ + strb r0, [r1, 0x3]\n\ + bl BattleScriptPushCursor\n\ + ldr r1, =gBattlescriptCurrInstr\n\ + ldr r0, =BattleScript_ApplySecondaryEffect\n\ + str r0, [r1]\n\ + ldr r2, =gHitMarker\n\ + ldr r0, [r2]\n\ + movs r1, 0x80\n\ + lsls r1, 6\n\ + orrs r0, r1\n\ + str r0, [r2]\n\ + bl _080443D0\n\ + .pool\n\ +_08043508:\n\ + ldr r0, =gBattleMoveFlags\n\ + ldrb r1, [r0]\n\ + movs r0, 0x29\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _08043518\n\ + bl _0804441E\n\ +_08043518:\n\ + ldr r1, =gBattleMons\n\ + ldr r0, =gBankAttacker\n\ + ldrb r2, [r0]\n\ + movs r0, 0x58\n\ + muls r0, r2\n\ + adds r0, r1\n\ + ldrh r0, [r0, 0x28]\n\ + cmp r0, 0\n\ + bne _0804352E\n\ + bl _0804441E\n\ +_0804352E:\n\ + ldr r0, =gProtectStructs\n\ + lsls r1, r2, 4\n\ + adds r1, r0\n\ + ldrb r0, [r1, 0x1]\n\ + lsls r0, 31\n\ + cmp r0, 0\n\ + beq _08043540\n\ + bl _0804441E\n\ +_08043540:\n\ + ldr r2, =gSpecialStatuses\n\ + ldr r0, =gBankTarget\n\ + ldrb r1, [r0]\n\ + lsls r0, r1, 2\n\ + adds r0, r1\n\ + lsls r1, r0, 2\n\ + adds r0, r2, 0\n\ + adds r0, 0x8\n\ + adds r0, r1, r0\n\ + ldr r0, [r0]\n\ + cmp r0, 0\n\ + bne _08043568\n\ + adds r0, r2, 0\n\ + adds r0, 0xC\n\ + adds r0, r1, r0\n\ + ldr r0, [r0]\n\ + cmp r0, 0\n\ + bne _08043568\n\ + bl _0804441E\n\ +_08043568:\n\ + ldr r1, =gBattleMoves\n\ + lsls r0, r5, 1\n\ + adds r0, r5\n\ + lsls r0, 2\n\ + adds r0, r1\n\ + ldrb r1, [r0, 0x8]\n\ + movs r0, 0x1\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _08043580\n\ + bl _0804441E\n\ +_08043580:\n\ + bl Random\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + movs r1, 0x3\n\ + bl __umodsi3\n\ + lsls r0, 16\n\ + cmp r0, 0\n\ + beq _08043598\n\ + bl _0804441E\n\ +_08043598:\n\ + ldr r1, =gBattleCommunication\n\ + movs r0, 0x42\n\ + strb r0, [r1, 0x3]\n\ + bl BattleScriptPushCursor\n\ + ldr r1, =gBattlescriptCurrInstr\n\ + ldr r0, =BattleScript_ApplySecondaryEffect\n\ + str r0, [r1]\n\ + ldr r2, =gHitMarker\n\ + ldr r0, [r2]\n\ + movs r1, 0x80\n\ + lsls r1, 6\n\ + orrs r0, r1\n\ + str r0, [r2]\n\ + bl _080443D0\n\ + .pool\n\ +_080435E4:\n\ + ldr r0, =gBattleMoveFlags\n\ + ldrb r1, [r0]\n\ + movs r0, 0x29\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _080435F4\n\ + bl _0804441E\n\ +_080435F4:\n\ + ldr r1, =gBattleMons\n\ + ldr r0, =gBankAttacker\n\ + ldrb r2, [r0]\n\ + movs r0, 0x58\n\ + muls r0, r2\n\ + adds r0, r1\n\ + ldrh r0, [r0, 0x28]\n\ + cmp r0, 0\n\ + bne _0804360A\n\ + bl _0804441E\n\ +_0804360A:\n\ + ldr r0, =gProtectStructs\n\ + lsls r1, r2, 4\n\ + adds r1, r0\n\ + ldrb r0, [r1, 0x1]\n\ + lsls r0, 31\n\ + cmp r0, 0\n\ + beq _0804361C\n\ + bl _0804441E\n\ +_0804361C:\n\ + ldr r2, =gSpecialStatuses\n\ + ldr r0, =gBankTarget\n\ + ldrb r1, [r0]\n\ + lsls r0, r1, 2\n\ + adds r0, r1\n\ + lsls r1, r0, 2\n\ + adds r0, r2, 0\n\ + adds r0, 0x8\n\ + adds r0, r1, r0\n\ + ldr r0, [r0]\n\ + cmp r0, 0\n\ + bne _08043644\n\ + adds r0, r2, 0\n\ + adds r0, 0xC\n\ + adds r0, r1, r0\n\ + ldr r0, [r0]\n\ + cmp r0, 0\n\ + bne _08043644\n\ + bl _0804441E\n\ +_08043644:\n\ + ldr r1, =gBattleMoves\n\ + lsls r0, r5, 1\n\ + adds r0, r5\n\ + lsls r0, 2\n\ + adds r0, r1\n\ + ldrb r1, [r0, 0x8]\n\ + movs r0, 0x1\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _0804365C\n\ + bl _0804441E\n\ +_0804365C:\n\ + bl Random\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + movs r1, 0x3\n\ + bl __umodsi3\n\ + lsls r0, 16\n\ + cmp r0, 0\n\ + beq _08043674\n\ + bl _0804441E\n\ +_08043674:\n\ + ldr r1, =gBattleCommunication\n\ + movs r0, 0x45\n\ + strb r0, [r1, 0x3]\n\ + bl BattleScriptPushCursor\n\ + ldr r1, =gBattlescriptCurrInstr\n\ + ldr r0, =BattleScript_ApplySecondaryEffect\n\ + str r0, [r1]\n\ + ldr r2, =gHitMarker\n\ + ldr r0, [r2]\n\ + movs r1, 0x80\n\ + lsls r1, 6\n\ + orrs r0, r1\n\ + str r0, [r2]\n\ + bl _080443D0\n\ + .pool\n\ +_080436C0:\n\ + ldr r0, =gBattleMoveFlags\n\ + ldrb r1, [r0]\n\ + movs r0, 0x29\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _080436D0\n\ + bl _0804441E\n\ +_080436D0:\n\ + ldr r1, =gBattleMons\n\ + ldr r0, =gBankAttacker\n\ + ldrb r2, [r0]\n\ + movs r0, 0x58\n\ + muls r0, r2\n\ + adds r0, r1\n\ + ldrh r0, [r0, 0x28]\n\ + cmp r0, 0\n\ + bne _080436E6\n\ + bl _0804441E\n\ +_080436E6:\n\ + ldr r0, =gProtectStructs\n\ + lsls r1, r2, 4\n\ + adds r1, r0\n\ + ldrb r0, [r1, 0x1]\n\ + lsls r0, 31\n\ + cmp r0, 0\n\ + beq _080436F8\n\ + bl _0804441E\n\ +_080436F8:\n\ + ldr r1, =gBattleMoves\n\ + lsls r0, r5, 1\n\ + adds r0, r5\n\ + lsls r0, 2\n\ + adds r0, r1\n\ + ldrb r1, [r0, 0x8]\n\ + movs r0, 0x1\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _08043710\n\ + bl _0804441E\n\ +_08043710:\n\ + ldr r2, =gSpecialStatuses\n\ + ldr r0, =gBankTarget\n\ + ldrb r1, [r0]\n\ + lsls r0, r1, 2\n\ + adds r0, r1\n\ + lsls r1, r0, 2\n\ + adds r0, r2, 0\n\ + adds r0, 0x8\n\ + adds r0, r1, r0\n\ + ldr r0, [r0]\n\ + cmp r0, 0\n\ + bne _08043738\n\ + adds r0, r2, 0\n\ + adds r0, 0xC\n\ + adds r0, r1, r0\n\ + ldr r0, [r0]\n\ + cmp r0, 0\n\ + bne _08043738\n\ + bl _0804441E\n\ +_08043738:\n\ + bl Random\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + movs r1, 0x3\n\ + bl __umodsi3\n\ + lsls r0, 16\n\ + cmp r0, 0\n\ + beq _08043750\n\ + bl _0804441E\n\ +_08043750:\n\ + ldr r1, =gBattleCommunication\n\ + movs r0, 0x43\n\ + strb r0, [r1, 0x3]\n\ + bl BattleScriptPushCursor\n\ + ldr r1, =gBattlescriptCurrInstr\n\ + ldr r0, =BattleScript_ApplySecondaryEffect\n\ + str r0, [r1]\n\ + ldr r2, =gHitMarker\n\ + ldr r0, [r2]\n\ + movs r1, 0x80\n\ + lsls r1, 6\n\ + orrs r0, r1\n\ + str r0, [r2]\n\ + bl _080443D0\n\ + .pool\n\ +_0804379C:\n\ + ldr r0, =gBattleMoveFlags\n\ + ldrb r1, [r0]\n\ + movs r0, 0x29\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _080437AC\n\ + bl _0804441E\n\ +_080437AC:\n\ + ldr r6, =gBattleMons\n\ + ldr r3, =gBankAttacker\n\ + mov r8, r3\n\ + ldrb r1, [r3]\n\ + movs r7, 0x58\n\ + adds r0, r1, 0\n\ + muls r0, r7\n\ + adds r0, r6\n\ + ldrh r0, [r0, 0x28]\n\ + cmp r0, 0\n\ + bne _080437C6\n\ + bl _0804441E\n\ +_080437C6:\n\ + ldr r0, =gProtectStructs\n\ + lsls r1, 4\n\ + adds r1, r0\n\ + ldrb r0, [r1, 0x1]\n\ + lsls r0, 31\n\ + cmp r0, 0\n\ + beq _080437D8\n\ + bl _0804441E\n\ +_080437D8:\n\ + ldr r1, =gBattleMoves\n\ + lsls r0, r5, 1\n\ + adds r0, r5\n\ + lsls r0, 2\n\ + adds r0, r1\n\ + ldrb r1, [r0, 0x8]\n\ + movs r0, 0x1\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _080437F0\n\ + bl _0804441E\n\ +_080437F0:\n\ + ldr r3, =gSpecialStatuses\n\ + ldr r5, =gBankTarget\n\ + ldrb r1, [r5]\n\ + lsls r0, r1, 2\n\ + adds r0, r1\n\ + lsls r2, r0, 2\n\ + adds r0, r3, 0\n\ + adds r0, 0x8\n\ + adds r0, r2, r0\n\ + ldr r0, [r0]\n\ + cmp r0, 0\n\ + bne _08043818\n\ + adds r0, r3, 0\n\ + adds r0, 0xC\n\ + adds r0, r2, r0\n\ + ldr r0, [r0]\n\ + cmp r0, 0\n\ + bne _08043818\n\ + bl _0804441E\n\ +_08043818:\n\ + adds r0, r1, 0\n\ + muls r0, r7\n\ + adds r0, r6\n\ + ldrh r0, [r0, 0x28]\n\ + cmp r0, 0\n\ + bne _08043828\n\ + bl _0804441E\n\ +_08043828:\n\ + bl Random\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + movs r1, 0x3\n\ + bl __umodsi3\n\ + lsls r0, 16\n\ + cmp r0, 0\n\ + beq _08043840\n\ + bl _0804441E\n\ +_08043840:\n\ + mov r1, r8\n\ + ldrb r0, [r1]\n\ + muls r0, r7\n\ + adds r0, r6\n\ + adds r0, 0x20\n\ + ldrb r0, [r0]\n\ + cmp r0, 0xC\n\ + bne _08043854\n\ + bl _0804441E\n\ +_08043854:\n\ + ldr r0, [sp, 0x8]\n\ + ldr r1, [sp, 0x10]\n\ + bl GetGenderFromSpeciesAndPersonality\n\ + adds r4, r0, 0\n\ + ldr r0, [sp, 0xC]\n\ + ldr r1, [sp, 0x14]\n\ + bl GetGenderFromSpeciesAndPersonality\n\ + lsls r4, 24\n\ + lsls r0, 24\n\ + cmp r4, r0\n\ + bne _08043872\n\ + bl _0804441E\n\ +_08043872:\n\ + mov r2, r8\n\ + ldrb r0, [r2]\n\ + muls r0, r7\n\ + adds r4, r6, 0\n\ + adds r4, 0x50\n\ + adds r0, r4\n\ + ldr r0, [r0]\n\ + movs r1, 0xF0\n\ + lsls r1, 12\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _0804388E\n\ + bl _0804441E\n\ +_0804388E:\n\ + ldr r0, [sp, 0x8]\n\ + ldr r1, [sp, 0x10]\n\ + bl GetGenderFromSpeciesAndPersonality\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + cmp r0, 0xFF\n\ + bne _080438A2\n\ + bl _0804441E\n\ +_080438A2:\n\ + ldr r0, [sp, 0xC]\n\ + ldr r1, [sp, 0x14]\n\ + bl GetGenderFromSpeciesAndPersonality\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + cmp r0, 0xFF\n\ + bne _080438B6\n\ + bl _0804441E\n\ +_080438B6:\n\ + mov r3, r8\n\ + ldrb r0, [r3]\n\ + adds r2, r0, 0\n\ + muls r2, r7\n\ + adds r2, r4\n\ + ldr r1, =gBitTable\n\ + ldrb r0, [r5]\n\ + lsls r0, 2\n\ + adds r0, r1\n\ + ldr r1, [r0]\n\ + lsls r1, 16\n\ + ldr r0, [r2]\n\ + orrs r0, r1\n\ + str r0, [r2]\n\ + bl BattleScriptPushCursor\n\ + ldr r1, =gBattlescriptCurrInstr\n\ + ldr r0, =BattleScript_CuteCharmActivates\n\ + str r0, [r1]\n\ + bl _080443D0\n\ + .pool\n\ +_08043908:\n\ + movs r5, 0\n\ + mov r10, r5\n\ + ldr r0, =gNoOfAllBanks\n\ + ldrb r0, [r0]\n\ + cmp r10, r0\n\ + bcc _08043918\n\ + bl _0804441E\n\ +_08043918:\n\ + ldr r1, =gBattleMons\n\ + movs r0, 0x58\n\ + mov r2, r10\n\ + muls r2, r0\n\ + adds r0, r2, 0\n\ + adds r0, r1\n\ + adds r0, 0x20\n\ + ldrb r0, [r0]\n\ + subs r0, 0x7\n\ + adds r2, r1, 0\n\ + cmp r0, 0x41\n\ + bls _08043932\n\ + b _08043B96\n\ +_08043932:\n\ + lsls r0, 2\n\ + ldr r1, =_08043948\n\ + adds r0, r1\n\ + ldr r0, [r0]\n\ + mov pc, r0\n\ + .pool\n\ + .align 2, 0\n\ +_08043948:\n\ + .4byte _08043AAC\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B70\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043AD4\n\ + .4byte _08043B96\n\ + .4byte _08043A50\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043A7C\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B40\n\ + .4byte _08043B10\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043B96\n\ + .4byte _08043AD4\n\ +_08043A50:\n\ + movs r0, 0x58\n\ + mov r3, r10\n\ + muls r3, r0\n\ + adds r0, r3, 0\n\ + adds r1, r2, 0\n\ + adds r1, 0x4C\n\ + adds r0, r1\n\ + ldr r0, [r0]\n\ + ldr r1, =0x00000f88\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _08043A6A\n\ + b _08043B96\n\ +_08043A6A:\n\ + ldr r0, =gBattleTextBuff1\n\ + ldr r1, =gStatusConditionString_PoisonJpn\n\ + b _08043B5C\n\ + .pool\n\ +_08043A7C:\n\ + movs r0, 0x58\n\ + mov r1, r10\n\ + muls r1, r0\n\ + adds r0, r1, 0\n\ + adds r1, r2, 0\n\ + adds r1, 0x50\n\ + adds r0, r1\n\ + ldr r0, [r0]\n\ + movs r1, 0x7\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _08043A96\n\ + b _08043B96\n\ +_08043A96:\n\ + ldr r0, =gBattleTextBuff1\n\ + ldr r1, =gStatusConditionString_ConfusionJpn\n\ + bl StringCopy\n\ + movs r2, 0x2\n\ + mov r9, r2\n\ + b _08043B9C\n\ + .pool\n\ +_08043AAC:\n\ + movs r0, 0x58\n\ + mov r3, r10\n\ + muls r3, r0\n\ + adds r0, r3, 0\n\ + adds r1, r2, 0\n\ + adds r1, 0x4C\n\ + adds r0, r1\n\ + ldr r0, [r0]\n\ + movs r1, 0x40\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _08043B96\n\ + ldr r0, =gBattleTextBuff1\n\ + ldr r1, =gStatusConditionString_ParalysisJpn\n\ + b _08043B5C\n\ + .pool\n\ +_08043AD4:\n\ + movs r0, 0x58\n\ + mov r3, r10\n\ + muls r3, r0\n\ + adds r0, r2, 0\n\ + adds r0, 0x4C\n\ + adds r0, r3, r0\n\ + ldr r0, [r0]\n\ + movs r1, 0x7\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _08043B96\n\ + adds r2, 0x50\n\ + adds r2, r3, r2\n\ + ldr r0, [r2]\n\ + ldr r1, =0xf7ffffff\n\ + ands r0, r1\n\ + str r0, [r2]\n\ + ldr r0, =gBattleTextBuff1\n\ + ldr r1, =gStatusConditionString_SleepJpn\n\ + bl StringCopy\n\ + movs r0, 0x1\n\ + mov r9, r0\n\ + b _08043B9C\n\ + .pool\n\ +_08043B10:\n\ + movs r0, 0x58\n\ + mov r1, r10\n\ + muls r1, r0\n\ + adds r0, r1, 0\n\ + adds r1, r2, 0\n\ + adds r1, 0x4C\n\ + adds r0, r1\n\ + ldr r0, [r0]\n\ + movs r1, 0x10\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _08043B96\n\ + ldr r0, =gBattleTextBuff1\n\ + ldr r1, =gStatusConditionString_BurnJpn\n\ + bl StringCopy\n\ + movs r2, 0x1\n\ + mov r9, r2\n\ + b _08043B9C\n\ + .pool\n\ +_08043B40:\n\ + movs r0, 0x58\n\ + mov r3, r10\n\ + muls r3, r0\n\ + adds r0, r3, 0\n\ + adds r1, r2, 0\n\ + adds r1, 0x4C\n\ + adds r0, r1\n\ + ldr r0, [r0]\n\ + movs r1, 0x20\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _08043B96\n\ + ldr r0, =gBattleTextBuff1\n\ + ldr r1, =gStatusConditionString_IceJpn\n\ +_08043B5C:\n\ + bl StringCopy\n\ + movs r5, 0x1\n\ + mov r9, r5\n\ + b _08043B9C\n\ + .pool\n\ +_08043B70:\n\ + movs r0, 0x58\n\ + mov r1, r10\n\ + muls r1, r0\n\ + adds r0, r1, 0\n\ + adds r1, r2, 0\n\ + adds r1, 0x50\n\ + adds r0, r1\n\ + ldr r0, [r0]\n\ + movs r1, 0xF0\n\ + lsls r1, 12\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _08043B96\n\ + ldr r0, =gBattleTextBuff1\n\ + ldr r1, =gStatusConditionString_LoveJpn\n\ + bl StringCopy\n\ + movs r2, 0x3\n\ + mov r9, r2\n\ +_08043B96:\n\ + mov r3, r9\n\ + cmp r3, 0\n\ + beq _08043C50\n\ +_08043B9C:\n\ + mov r5, r9\n\ + cmp r5, 0x2\n\ + beq _08043BD0\n\ + cmp r5, 0x2\n\ + bgt _08043BB4\n\ + cmp r5, 0x1\n\ + beq _08043BBC\n\ + b _08043BFC\n\ + .pool\n\ +_08043BB4:\n\ + mov r0, r9\n\ + cmp r0, 0x3\n\ + beq _08043BE8\n\ + b _08043BFC\n\ +_08043BBC:\n\ + ldr r1, =gBattleMons\n\ + movs r0, 0x58\n\ + mov r2, r10\n\ + muls r2, r0\n\ + adds r1, 0x4C\n\ + adds r2, r1\n\ + movs r0, 0\n\ + b _08043BFA\n\ + .pool\n\ +_08043BD0:\n\ + ldr r1, =gBattleMons\n\ + movs r0, 0x58\n\ + mov r2, r10\n\ + muls r2, r0\n\ + adds r1, 0x50\n\ + adds r2, r1\n\ + ldr r0, [r2]\n\ + movs r1, 0x8\n\ + negs r1, r1\n\ + b _08043BF8\n\ + .pool\n\ +_08043BE8:\n\ + ldr r1, =gBattleMons\n\ + movs r0, 0x58\n\ + mov r2, r10\n\ + muls r2, r0\n\ + adds r1, 0x50\n\ + adds r2, r1\n\ + ldr r0, [r2]\n\ + ldr r1, =0xfff0ffff\n\ +_08043BF8:\n\ + ands r0, r1\n\ +_08043BFA:\n\ + str r0, [r2]\n\ +_08043BFC:\n\ + bl BattleScriptPushCursor\n\ + ldr r1, =gBattlescriptCurrInstr\n\ + ldr r0, =gUnknown_082DB68C\n\ + str r0, [r1]\n\ + ldr r0, =gBattleScripting\n\ + mov r1, r10\n\ + strb r1, [r0, 0x17]\n\ + ldr r4, =gActiveBank\n\ + strb r1, [r4]\n\ + ldrb r1, [r4]\n\ + movs r0, 0x58\n\ + muls r0, r1\n\ + ldr r1, =gBattleMons + 0x4C\n\ + adds r0, r1\n\ + str r0, [sp]\n\ + movs r0, 0\n\ + movs r1, 0x28\n\ + movs r2, 0\n\ + movs r3, 0x4\n\ + bl EmitSetMonData\n\ + ldrb r0, [r4]\n\ + bl MarkBufferBankForExecution\n\ + bl _0804443A\n\ + .pool\n\ +_08043C50:\n\ + mov r0, r10\n\ + adds r0, 0x1\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + mov r10, r0\n\ + ldr r0, =gNoOfAllBanks\n\ + ldrb r0, [r0]\n\ + cmp r10, r0\n\ + bcs _08043C64\n\ + b _08043918\n\ +_08043C64:\n\ + bl _0804441E\n\ + .pool\n\ +_08043C6C:\n\ + movs r2, 0\n\ + mov r10, r2\n\ + ldr r0, =gNoOfAllBanks\n\ + ldrb r0, [r0]\n\ + cmp r10, r0\n\ + bcc _08043C7A\n\ + b _0804441E\n\ +_08043C7A:\n\ + ldr r4, =gBattleMons\n\ +_08043C7C:\n\ + movs r0, 0x58\n\ + mov r3, r10\n\ + muls r3, r0\n\ + adds r0, r3, 0\n\ + adds r0, r4\n\ + adds r0, 0x20\n\ + ldrb r0, [r0]\n\ + cmp r0, 0x3B\n\ + bne _08043CA0\n\ + mov r0, r10\n\ + bl CastformDataTypeChange\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + mov r9, r0\n\ + cmp r0, 0\n\ + beq _08043CA0\n\ + b _080442FC\n\ +_08043CA0:\n\ + mov r0, r10\n\ + adds r0, 0x1\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + mov r10, r0\n\ + ldr r0, =gNoOfAllBanks\n\ + ldrb r0, [r0]\n\ + cmp r10, r0\n\ + bcc _08043C7C\n\ + b _0804441E\n\ + .pool\n\ +_08043CBC:\n\ + ldrb r0, [r7]\n\ + cmp r0, 0x1C\n\ + beq _08043CC4\n\ + b _0804441E\n\ +_08043CC4:\n\ + ldr r4, =gHitMarker\n\ + ldr r1, [r4]\n\ + movs r0, 0x80\n\ + lsls r0, 7\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _08043CD4\n\ + b _0804441E\n\ +_08043CD4:\n\ + ldr r0, =0xffffbfff\n\ + ands r1, r0\n\ + str r1, [r4]\n\ + mov r5, r8\n\ + ldr r1, [r5]\n\ + adds r1, 0xB2\n\ + ldrb r2, [r1]\n\ + movs r0, 0x3F\n\ + ands r0, r2\n\ + strb r0, [r1]\n\ + ldr r0, [r5]\n\ + adds r1, r0, 0\n\ + adds r1, 0xB2\n\ + ldrb r0, [r1]\n\ + cmp r0, 0x6\n\ + bne _08043CF8\n\ + movs r0, 0x2\n\ + strb r0, [r1]\n\ +_08043CF8:\n\ + ldr r1, =gBattleCommunication\n\ + mov r2, r8\n\ + ldr r0, [r2]\n\ + adds r0, 0xB2\n\ + ldrb r0, [r0]\n\ + adds r0, 0x40\n\ + strb r0, [r1, 0x3]\n\ + ldr r1, =gBattleScripting\n\ + ldr r0, =gBankTarget\n\ + ldrb r0, [r0]\n\ + strb r0, [r1, 0x17]\n\ + bl BattleScriptPushCursor\n\ + ldr r1, =gBattlescriptCurrInstr\n\ + ldr r0, =BattleScript_SynchronizeActivates\n\ + str r0, [r1]\n\ + ldr r0, [r4]\n\ + movs r1, 0x80\n\ + lsls r1, 6\n\ + orrs r0, r1\n\ + str r0, [r4]\n\ + b _080443D0\n\ + .pool\n\ +_08043D40:\n\ + ldrb r0, [r7]\n\ + cmp r0, 0x1C\n\ + beq _08043D48\n\ + b _0804441E\n\ +_08043D48:\n\ + ldr r4, =gHitMarker\n\ + ldr r1, [r4]\n\ + movs r0, 0x80\n\ + lsls r0, 7\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _08043D58\n\ + b _0804441E\n\ +_08043D58:\n\ + ldr r0, =0xffffbfff\n\ + ands r1, r0\n\ + str r1, [r4]\n\ + mov r3, r8\n\ + ldr r1, [r3]\n\ + adds r1, 0xB2\n\ + ldrb r2, [r1]\n\ + movs r0, 0x3F\n\ + ands r0, r2\n\ + strb r0, [r1]\n\ + ldr r0, [r3]\n\ + adds r1, r0, 0\n\ + adds r1, 0xB2\n\ + ldrb r0, [r1]\n\ + cmp r0, 0x6\n\ + bne _08043D7C\n\ + movs r0, 0x2\n\ + strb r0, [r1]\n\ +_08043D7C:\n\ + ldr r1, =gBattleCommunication\n\ + mov r3, r8\n\ + ldr r0, [r3]\n\ + adds r0, 0xB2\n\ + ldrb r0, [r0]\n\ + strb r0, [r1, 0x3]\n\ + ldr r1, =gBattleScripting\n\ + ldr r0, =gBankAttacker\n\ + ldrb r0, [r0]\n\ + strb r0, [r1, 0x17]\n\ + bl BattleScriptPushCursor\n\ + ldr r1, =gBattlescriptCurrInstr\n\ + ldr r0, =BattleScript_SynchronizeActivates\n\ + str r0, [r1]\n\ + ldr r0, [r4]\n\ + movs r1, 0x80\n\ + lsls r1, 6\n\ + orrs r0, r1\n\ + str r0, [r4]\n\ + b _080443D0\n\ + .pool\n\ +_08043DC4:\n\ + movs r4, 0\n\ + ldr r0, =gNoOfAllBanks\n\ + ldrb r1, [r0]\n\ + cmp r4, r1\n\ + blt _08043DD0\n\ + b _0804441E\n\ +_08043DD0:\n\ + ldr r0, =gBattleMons\n\ + adds r5, r1, 0\n\ + ldr r2, =gStatuses3\n\ + adds r3, r0, 0\n\ + adds r3, 0x20\n\ + movs r6, 0x80\n\ + lsls r6, 12\n\ +_08043DDE:\n\ + ldrb r1, [r3]\n\ + cmp r1, 0x16\n\ + bne _08043DEE\n\ + ldr r0, [r2]\n\ + ands r0, r6\n\ + cmp r0, 0\n\ + beq _08043DEE\n\ + b _08044324\n\ +_08043DEE:\n\ + adds r2, 0x4\n\ + adds r3, 0x58\n\ + adds r4, 0x1\n\ + cmp r4, r5\n\ + blt _08043DDE\n\ + b _0804441E\n\ + .pool\n\ +_08043E08:\n\ + movs r4, 0\n\ + ldr r0, =gNoOfAllBanks\n\ + ldrb r0, [r0]\n\ + cmp r4, r0\n\ + blt _08043E14\n\ + b _0804441E\n\ +_08043E14:\n\ + ldr r5, =gActiveBank\n\ + mov r8, r5\n\ + ldr r0, =gBattleMons\n\ + adds r0, 0x20\n\ + str r0, [sp, 0x1C]\n\ + movs r1, 0\n\ + str r1, [sp, 0x20]\n\ +_08043E22:\n\ + ldr r2, [sp, 0x1C]\n\ + ldrb r0, [r2]\n\ + cmp r0, 0x24\n\ + beq _08043E2C\n\ + b _08043FBE\n\ +_08043E2C:\n\ + ldr r0, =gStatuses3\n\ + ldr r3, [sp, 0x20]\n\ + adds r0, r3, r0\n\ + ldr r1, [r0]\n\ + movs r0, 0x80\n\ + lsls r0, 13\n\ + ands r1, r0\n\ + str r3, [sp, 0x18]\n\ + cmp r1, 0\n\ + bne _08043E42\n\ + b _08043FBE\n\ +_08043E42:\n\ + lsls r0, r4, 24\n\ + lsrs r0, 24\n\ + bl GetBankIdentity\n\ + movs r1, 0x1\n\ + adds r5, r0, 0\n\ + eors r5, r1\n\ + ands r5, r1\n\ + adds r0, r5, 0\n\ + bl GetBankByIdentity\n\ + lsls r0, 24\n\ + lsrs r6, r0, 24\n\ + adds r0, r5, 0x2\n\ + bl GetBankByIdentity\n\ + lsls r0, 24\n\ + lsrs r7, r0, 24\n\ + ldr r0, =gBattleTypeFlags\n\ + ldr r0, [r0]\n\ + movs r2, 0x1\n\ + ands r0, r2\n\ + cmp r0, 0\n\ + bne _08043E74\n\ + b _08043F84\n\ +_08043E74:\n\ + movs r1, 0x58\n\ + adds r0, r6, 0\n\ + muls r0, r1\n\ + ldr r3, =gBattleMons\n\ + adds r1, r0, r3\n\ + adds r0, r1, 0\n\ + adds r0, 0x20\n\ + ldrb r0, [r0]\n\ + cmp r0, 0\n\ + beq _08043F40\n\ + ldrh r0, [r1, 0x28]\n\ + cmp r0, 0\n\ + beq _08043EFC\n\ + movs r1, 0x58\n\ + adds r0, r7, 0\n\ + muls r0, r1\n\ + adds r1, r0, r3\n\ + adds r0, r1, 0\n\ + adds r0, 0x20\n\ + ldrb r0, [r0]\n\ + cmp r0, 0\n\ + beq _08043EFC\n\ + ldrh r0, [r1, 0x28]\n\ + cmp r0, 0\n\ + beq _08043EFC\n\ + str r2, [sp, 0x24]\n\ + bl Random\n\ + ldr r2, [sp, 0x24]\n\ + adds r1, r2, 0\n\ + ands r1, r0\n\ + lsls r1, 1\n\ + orrs r5, r1\n\ + adds r0, r5, 0\n\ + bl GetBankByIdentity\n\ + mov r2, r8\n\ + strb r0, [r2]\n\ + ldrb r0, [r2]\n\ + movs r3, 0x58\n\ + muls r0, r3\n\ + ldr r5, =gBattleMons\n\ + adds r0, r5\n\ + adds r0, 0x20\n\ + ldrb r0, [r0]\n\ + ldr r1, [sp, 0x1C]\n\ + strb r0, [r1]\n\ + ldrb r0, [r2]\n\ + muls r0, r3\n\ + adds r0, r5\n\ + adds r0, 0x20\n\ + ldrb r0, [r0]\n\ + ldr r2, =gLastUsedAbility\n\ + strb r0, [r2]\n\ + b _08043FAC\n\ + .pool\n\ +_08043EFC:\n\ + ldr r3, =gBattleMons\n\ + movs r2, 0x58\n\ + adds r0, r6, 0\n\ + muls r0, r2\n\ + adds r1, r0, r3\n\ + adds r0, r1, 0\n\ + adds r0, 0x20\n\ + ldrb r0, [r0]\n\ + cmp r0, 0\n\ + beq _08043F40\n\ + ldrh r0, [r1, 0x28]\n\ + cmp r0, 0\n\ + beq _08043F40\n\ + mov r5, r8\n\ + strb r6, [r5]\n\ + adds r1, r4, 0\n\ + muls r1, r2\n\ + adds r1, r3\n\ + ldrb r0, [r5]\n\ + muls r0, r2\n\ + adds r0, r3\n\ + adds r0, 0x20\n\ + ldrb r0, [r0]\n\ + adds r1, 0x20\n\ + strb r0, [r1]\n\ + ldrb r0, [r5]\n\ + muls r0, r2\n\ + adds r0, r3\n\ + adds r0, 0x20\n\ + ldrb r0, [r0]\n\ + b _08043FA8\n\ + .pool\n\ +_08043F40:\n\ + ldr r3, =gBattleMons\n\ + movs r2, 0x58\n\ + adds r0, r7, 0\n\ + muls r0, r2\n\ + adds r1, r0, r3\n\ + adds r0, r1, 0\n\ + adds r0, 0x20\n\ + ldrb r0, [r0]\n\ + cmp r0, 0\n\ + beq _08043FB6\n\ + ldrh r0, [r1, 0x28]\n\ + cmp r0, 0\n\ + beq _08043FB6\n\ + mov r5, r8\n\ + strb r7, [r5]\n\ + adds r1, r4, 0\n\ + muls r1, r2\n\ + adds r1, r3\n\ + ldrb r0, [r5]\n\ + muls r0, r2\n\ + adds r0, r3\n\ + adds r0, 0x20\n\ + ldrb r0, [r0]\n\ + adds r1, 0x20\n\ + strb r0, [r1]\n\ + ldrb r0, [r5]\n\ + muls r0, r2\n\ + adds r0, r3\n\ + adds r0, 0x20\n\ + ldrb r0, [r0]\n\ + b _08043FA8\n\ + .pool\n\ +_08043F84:\n\ + mov r2, r8\n\ + strb r6, [r2]\n\ + movs r3, 0x58\n\ + adds r0, r6, 0\n\ + muls r0, r3\n\ + ldr r5, =gBattleMons\n\ + adds r0, r5\n\ + adds r2, r0, 0\n\ + adds r2, 0x20\n\ + ldrb r1, [r2]\n\ + cmp r1, 0\n\ + beq _08043FB6\n\ + ldrh r0, [r0, 0x28]\n\ + cmp r0, 0\n\ + beq _08043FB6\n\ + ldr r0, [sp, 0x1C]\n\ + strb r1, [r0]\n\ + ldrb r0, [r2]\n\ +_08043FA8:\n\ + ldr r1, =gLastUsedAbility\n\ + strb r0, [r1]\n\ +_08043FAC:\n\ + mov r0, r9\n\ + adds r0, 0x1\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + mov r9, r0\n\ +_08043FB6:\n\ + mov r2, r9\n\ + cmp r2, 0\n\ + beq _08043FBE\n\ + b _08044340\n\ +_08043FBE:\n\ + ldr r3, [sp, 0x1C]\n\ + adds r3, 0x58\n\ + str r3, [sp, 0x1C]\n\ + ldr r5, [sp, 0x20]\n\ + adds r5, 0x4\n\ + str r5, [sp, 0x20]\n\ + adds r4, 0x1\n\ + ldr r0, =gNoOfAllBanks\n\ + ldrb r0, [r0]\n\ + cmp r4, r0\n\ + bge _08043FD6\n\ + b _08043E22\n\ +_08043FD6:\n\ + b _0804441E\n\ + .pool\n\ +_08043FE4:\n\ + movs r4, 0\n\ + ldr r0, =gNoOfAllBanks\n\ + ldrb r1, [r0]\n\ + cmp r4, r1\n\ + blt _08043FF0\n\ + b _0804441E\n\ +_08043FF0:\n\ + ldr r0, =gBattleMons\n\ + adds r5, r1, 0\n\ + ldr r2, =gStatuses3\n\ + adds r3, r0, 0\n\ + adds r3, 0x20\n\ + movs r6, 0x80\n\ + lsls r6, 12\n\ +_08043FFE:\n\ + ldrb r1, [r3]\n\ + cmp r1, 0x16\n\ + bne _0804400E\n\ + ldr r0, [r2]\n\ + ands r0, r6\n\ + cmp r0, 0\n\ + beq _0804400E\n\ + b _080443B4\n\ +_0804400E:\n\ + adds r2, 0x4\n\ + adds r3, 0x58\n\ + adds r4, 0x1\n\ + cmp r4, r5\n\ + blt _08043FFE\n\ + b _0804441E\n\ + .pool\n\ +_08044028:\n\ + mov r0, r10\n\ + bl GetBankSide\n\ + lsls r0, 24\n\ + lsrs r5, r0, 24\n\ + movs r4, 0\n\ + ldr r0, =gNoOfAllBanks\n\ + ldrb r0, [r0]\n\ + cmp r4, r0\n\ + blt _0804403E\n\ + b _0804441E\n\ +_0804403E:\n\ + ldr r7, =gBattleMons\n\ +_08044040:\n\ + lsls r0, r4, 24\n\ + lsrs r0, 24\n\ + bl GetBankSide\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + adds r3, r4, 0x1\n\ + cmp r0, r5\n\ + beq _0804406A\n\ + movs r0, 0x58\n\ + muls r0, r4\n\ + adds r0, r7\n\ + adds r0, 0x20\n\ + ldrb r0, [r0]\n\ + cmp r0, r6\n\ + bne _0804406A\n\ + ldr r0, =gLastUsedAbility\n\ + strb r6, [r0]\n\ + lsls r0, r3, 24\n\ + lsrs r0, 24\n\ + mov r9, r0\n\ +_0804406A:\n\ + adds r4, r3, 0\n\ + ldr r0, =gNoOfAllBanks\n\ + ldrb r0, [r0]\n\ + cmp r4, r0\n\ + blt _08044040\n\ + b _0804441E\n\ + .pool\n\ +_08044084:\n\ + mov r0, r10\n\ + bl GetBankSide\n\ + lsls r0, 24\n\ + lsrs r5, r0, 24\n\ + movs r4, 0\n\ + ldr r0, =gNoOfAllBanks\n\ + ldrb r0, [r0]\n\ + cmp r4, r0\n\ + blt _0804409A\n\ + b _0804441E\n\ +_0804409A:\n\ + ldr r7, =gBattleMons\n\ +_0804409C:\n\ + lsls r0, r4, 24\n\ + lsrs r0, 24\n\ + bl GetBankSide\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + adds r3, r4, 0x1\n\ + cmp r0, r5\n\ + bne _080440C6\n\ + movs r0, 0x58\n\ + muls r0, r4\n\ + adds r0, r7\n\ + adds r0, 0x20\n\ + ldrb r0, [r0]\n\ + cmp r0, r6\n\ + bne _080440C6\n\ + ldr r0, =gLastUsedAbility\n\ + strb r6, [r0]\n\ + lsls r0, r3, 24\n\ + lsrs r0, 24\n\ + mov r9, r0\n\ +_080440C6:\n\ + adds r4, r3, 0\n\ + ldr r0, =gNoOfAllBanks\n\ + ldrb r0, [r0]\n\ + cmp r4, r0\n\ + blt _0804409C\n\ + b _0804441E\n\ + .pool\n\ +_080440E0:\n\ + ldrb r0, [r7]\n\ + cmp r0, 0xFD\n\ + beq _08044104\n\ + cmp r0, 0xFE\n\ + beq _0804413C\n\ + movs r4, 0\n\ + ldr r0, =gNoOfAllBanks\n\ + adds r5, r0, 0\n\ + ldrb r0, [r5]\n\ + cmp r4, r0\n\ + blt _080440F8\n\ + b _0804441E\n\ +_080440F8:\n\ + ldr r2, =gBattleMons\n\ + b _08044174\n\ + .pool\n\ +_08044104:\n\ + movs r4, 0\n\ + ldr r0, =gNoOfAllBanks\n\ + ldrb r0, [r0]\n\ + cmp r4, r0\n\ + blt _08044110\n\ + b _0804441E\n\ +_08044110:\n\ + ldr r5, =gStatuses3\n\ + movs r2, 0x80\n\ + lsls r2, 9\n\ + adds r1, r0, 0\n\ +_08044118:\n\ + lsls r0, r4, 2\n\ + adds r0, r5\n\ + ldr r0, [r0]\n\ + ands r0, r2\n\ + adds r3, r4, 0x1\n\ + cmp r0, 0\n\ + beq _0804412C\n\ + lsls r0, r3, 24\n\ + lsrs r0, 24\n\ + mov r9, r0\n\ +_0804412C:\n\ + adds r4, r3, 0\n\ + cmp r4, r1\n\ + blt _08044118\n\ + b _0804441E\n\ + .pool\n\ +_0804413C:\n\ + movs r4, 0\n\ + ldr r0, =gNoOfAllBanks\n\ + ldrb r0, [r0]\n\ + cmp r4, r0\n\ + blt _08044148\n\ + b _0804441E\n\ +_08044148:\n\ + ldr r5, =gStatuses3\n\ + movs r2, 0x80\n\ + lsls r2, 10\n\ + adds r1, r0, 0\n\ +_08044150:\n\ + lsls r0, r4, 2\n\ + adds r0, r5\n\ + ldr r0, [r0]\n\ + ands r0, r2\n\ + adds r3, r4, 0x1\n\ + cmp r0, 0\n\ + beq _08044164\n\ + lsls r0, r3, 24\n\ + lsrs r0, 24\n\ + mov r9, r0\n\ +_08044164:\n\ + adds r4, r3, 0\n\ + cmp r4, r1\n\ + blt _08044150\n\ + b _0804441E\n\ + .pool\n\ +_08044174:\n\ + movs r0, 0x58\n\ + muls r0, r4\n\ + adds r0, r2\n\ + adds r0, 0x20\n\ + ldrb r0, [r0]\n\ + adds r3, r4, 0x1\n\ + cmp r0, r6\n\ + bne _0804418C\n\ + strb r6, [r7]\n\ + lsls r0, r3, 24\n\ + lsrs r0, 24\n\ + mov r9, r0\n\ +_0804418C:\n\ + adds r4, r3, 0\n\ + ldrb r1, [r5]\n\ + cmp r4, r1\n\ + blt _08044174\n\ + b _0804441E\n\ +_08044196:\n\ + movs r4, 0\n\ + ldr r0, =gNoOfAllBanks\n\ + ldrb r0, [r0]\n\ + cmp r4, r0\n\ + blt _080441A2\n\ + b _0804441E\n\ +_080441A2:\n\ + ldr r2, =gBattleMons\n\ + mov r8, r2\n\ + adds r2, r0, 0\n\ + movs r5, 0x58\n\ +_080441AA:\n\ + adds r0, r4, 0\n\ + muls r0, r5\n\ + mov r3, r8\n\ + adds r1, r0, r3\n\ + adds r0, r1, 0\n\ + adds r0, 0x20\n\ + ldrb r0, [r0]\n\ + adds r3, r4, 0x1\n\ + cmp r0, r6\n\ + bne _080441CC\n\ + ldrh r0, [r1, 0x28]\n\ + cmp r0, 0\n\ + beq _080441CC\n\ + strb r6, [r7]\n\ + lsls r0, r3, 24\n\ + lsrs r0, 24\n\ + mov r9, r0\n\ +_080441CC:\n\ + adds r4, r3, 0\n\ + cmp r4, r2\n\ + blt _080441AA\n\ + b _0804441E\n\ + .pool\n\ +_080441DC:\n\ + movs r4, 0\n\ + ldr r0, =gNoOfAllBanks\n\ + ldrb r0, [r0]\n\ + cmp r4, r0\n\ + blt _080441E8\n\ + b _0804441E\n\ +_080441E8:\n\ + ldr r7, =gBattleMons\n\ + adds r1, r0, 0\n\ + movs r5, 0x58\n\ + ldr r2, =gLastUsedAbility\n\ +_080441F0:\n\ + adds r0, r4, 0\n\ + muls r0, r5\n\ + adds r0, r7\n\ + adds r0, 0x20\n\ + ldrb r0, [r0]\n\ + adds r3, r4, 0x1\n\ + cmp r0, r6\n\ + bne _0804420C\n\ + cmp r4, r10\n\ + beq _0804420C\n\ + strb r6, [r2]\n\ + lsls r0, r3, 24\n\ + lsrs r0, 24\n\ + mov r9, r0\n\ +_0804420C:\n\ + adds r4, r3, 0\n\ + cmp r4, r1\n\ + blt _080441F0\n\ + b _0804441E\n\ + .pool\n\ +_08044220:\n\ + mov r0, r10\n\ + bl GetBankSide\n\ + lsls r0, 24\n\ + lsrs r5, r0, 24\n\ + movs r4, 0\n\ + ldr r0, =gNoOfAllBanks\n\ + ldrb r0, [r0]\n\ + cmp r4, r0\n\ + blt _08044236\n\ + b _0804441E\n\ +_08044236:\n\ + ldr r7, =gBattleMons\n\ +_08044238:\n\ + lsls r0, r4, 24\n\ + lsrs r0, 24\n\ + bl GetBankSide\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + cmp r0, r5\n\ + beq _08044264\n\ + movs r0, 0x58\n\ + muls r0, r4\n\ + adds r0, r7\n\ + adds r0, 0x20\n\ + ldrb r0, [r0]\n\ + cmp r0, r6\n\ + bne _08044264\n\ + ldr r0, =gLastUsedAbility\n\ + strb r6, [r0]\n\ + mov r0, r9\n\ + adds r0, 0x1\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + mov r9, r0\n\ +_08044264:\n\ + adds r4, 0x1\n\ + ldr r0, =gNoOfAllBanks\n\ + ldrb r0, [r0]\n\ + cmp r4, r0\n\ + blt _08044238\n\ + b _0804441E\n\ + .pool\n\ +_0804427C:\n\ + mov r0, r10\n\ + bl GetBankSide\n\ + lsls r0, 24\n\ + lsrs r5, r0, 24\n\ + movs r4, 0\n\ + ldr r0, =gNoOfAllBanks\n\ + ldrb r0, [r0]\n\ + cmp r4, r0\n\ + blt _08044292\n\ + b _0804441E\n\ +_08044292:\n\ + ldr r7, =gBattleMons\n\ +_08044294:\n\ + lsls r0, r4, 24\n\ + lsrs r0, 24\n\ + bl GetBankSide\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + cmp r0, r5\n\ + bne _080442C0\n\ + movs r0, 0x58\n\ + muls r0, r4\n\ + adds r0, r7\n\ + adds r0, 0x20\n\ + ldrb r0, [r0]\n\ + cmp r0, r6\n\ + bne _080442C0\n\ + ldr r0, =gLastUsedAbility\n\ + strb r6, [r0]\n\ + mov r0, r9\n\ + adds r0, 0x1\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + mov r9, r0\n\ +_080442C0:\n\ + adds r4, 0x1\n\ + ldr r0, =gNoOfAllBanks\n\ + ldrb r0, [r0]\n\ + cmp r4, r0\n\ + blt _08044294\n\ + b _0804441E\n\ + .pool\n\ +_080442D8:\n\ + ldr r0, =BattleScript_CastformChange\n\ + bl BattleScriptPushCursorAndCallback\n\ + ldr r0, =gBattleScripting\n\ + strb r6, [r0, 0x17]\n\ +_080442E2:\n\ + ldr r0, =gBattleStruct\n\ + ldr r0, [r0]\n\ + adds r0, 0x7F\n\ + mov r1, r9\n\ + subs r1, 0x1\n\ + strb r1, [r0]\n\ + b _0804441E\n\ + .pool\n\ +_080442FC:\n\ + ldr r0, =BattleScript_CastformChange\n\ + bl BattleScriptPushCursorAndCallback\n\ + ldr r0, =gBattleScripting\n\ + mov r5, r10\n\ + strb r5, [r0, 0x17]\n\ + ldr r0, =gBattleStruct\n\ + ldr r0, [r0]\n\ + adds r0, 0x7F\n\ + mov r1, r9\n\ + subs r1, 0x1\n\ + strb r1, [r0]\n\ + b _0804443A\n\ + .pool\n\ +_08044324:\n\ + strb r1, [r7]\n\ + ldr r0, [r2]\n\ + ldr r1, =0xfff7ffff\n\ + ands r0, r1\n\ + str r0, [r2]\n\ + ldr r0, =gUnknown_082DB4B8\n\ + bl BattleScriptPushCursorAndCallback\n\ + b _080443C8\n\ + .pool\n\ +_08044340:\n\ + ldr r0, =BattleScript_TraceActivates\n\ + bl BattleScriptPushCursorAndCallback\n\ + ldr r1, =gStatuses3\n\ + ldr r0, [sp, 0x18]\n\ + adds r1, r0, r1\n\ + ldr r0, [r1]\n\ + ldr r2, =0xffefffff\n\ + ands r0, r2\n\ + str r0, [r1]\n\ + ldr r0, =gBattleScripting\n\ + strb r4, [r0, 0x17]\n\ + ldr r1, =gBattleTextBuff1\n\ + movs r4, 0xFD\n\ + strb r4, [r1]\n\ + movs r0, 0x4\n\ + strb r0, [r1, 0x1]\n\ + ldr r2, =gActiveBank\n\ + ldrb r0, [r2]\n\ + strb r0, [r1, 0x2]\n\ + ldr r3, =gBattlePartyID\n\ + ldrb r0, [r2]\n\ + lsls r0, 1\n\ + adds r0, r3\n\ + ldrh r0, [r0]\n\ + strb r0, [r1, 0x3]\n\ + movs r0, 0xFF\n\ + strb r0, [r1, 0x4]\n\ + ldr r1, =gBattleTextBuff2\n\ + strb r4, [r1]\n\ + movs r0, 0x9\n\ + strb r0, [r1, 0x1]\n\ + ldr r0, =gLastUsedAbility\n\ + ldrb r0, [r0]\n\ + strb r0, [r1, 0x2]\n\ + movs r0, 0x1\n\ + negs r0, r0\n\ + strb r0, [r1, 0x3]\n\ + b _0804441E\n\ + .pool\n\ +_080443B4:\n\ + strb r1, [r7]\n\ + ldr r0, [r2]\n\ + ldr r1, =0xfff7ffff\n\ + ands r0, r1\n\ + str r0, [r2]\n\ + bl BattleScriptPushCursor\n\ + ldr r1, =gBattlescriptCurrInstr\n\ + ldr r0, =gUnknown_082DB4C1\n\ + str r0, [r1]\n\ +_080443C8:\n\ + ldr r0, =gBattleStruct\n\ + ldr r0, [r0]\n\ + adds r0, 0xD8\n\ + strb r4, [r0]\n\ +_080443D0:\n\ + mov r0, r9\n\ + adds r0, 0x1\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + mov r9, r0\n\ + b _0804441E\n\ + .pool\n\ +_080443EC:\n\ + movs r4, 0\n\ + ldr r0, =gNoOfAllBanks\n\ + ldrb r1, [r0]\n\ + cmp r4, r1\n\ + bge _0804441E\n\ + ldr r0, =gBattleMons\n\ + adds r2, r1, 0\n\ + adds r1, r0, 0\n\ + adds r1, 0x20\n\ + ldr r3, =gLastUsedAbility\n\ +_08044400:\n\ + ldrb r0, [r1]\n\ + cmp r0, r6\n\ + bne _08044416\n\ + cmp r4, r10\n\ + beq _08044416\n\ + strb r6, [r3]\n\ + mov r0, r9\n\ + adds r0, 0x1\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + mov r9, r0\n\ +_08044416:\n\ + adds r1, 0x58\n\ + adds r4, 0x1\n\ + cmp r4, r2\n\ + blt _08044400\n\ +_0804441E:\n\ + mov r1, r9\n\ + cmp r1, 0\n\ + beq _0804443A\n\ +_08044424:\n\ + ldr r2, [sp, 0x4]\n\ + cmp r2, 0xB\n\ + bhi _0804443A\n\ + ldr r1, =gLastUsedAbility\n\ + ldrb r0, [r1]\n\ + cmp r0, 0xFF\n\ + beq _0804443A\n\ + adds r1, r0, 0\n\ + mov r0, r10\n\ + bl RecordAbilityBattle\n\ +_0804443A:\n\ + mov r0, r9\n\ + add sp, 0x28\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r1}\n\ + bx r1\n\ + .pool\n\ + .syntax divided"); +} +#endif // NONMATCHING + +void BattleScriptExecute(const u8* BS_ptr) +{ + gBattlescriptCurrInstr = BS_ptr; + BATTLE_CALLBACKS_STACK->function[BATTLE_CALLBACKS_STACK->size++] = gBattleMainFunc; + gBattleMainFunc = bc_move_exec_returning; + gFightStateTracker = 0; +} + +void BattleScriptPushCursorAndCallback(const u8* BS_ptr) +{ + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BS_ptr; + BATTLE_CALLBACKS_STACK->function[BATTLE_CALLBACKS_STACK->size++] = gBattleMainFunc; + gBattleMainFunc = sub_803E08C; +} + +enum +{ + ITEM_NO_EFFECT, // 0 + ITEM_STATUS_CHANGE, // 1 + ITEM_EFFECT_OTHER, // 2 + ITEM_PP_CHANGE, // 3 + ITEM_HP_CHANGE, // 4 + ITEM_STATS_CHANGE, // 5 +}; + +enum +{ + FLAVOR_SPICY, // 0 + FLAVOR_DRY, // 1 + FLAVOR_SWEET, // 2 + FLAVOR_BITTER, // 3 + FLAVOR_SOUR, // 4 +}; + +u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) +{ + int i = 0; + u8 effect = ITEM_NO_EFFECT; + u8 changedPP = 0; + u8 bankHoldEffect, atkHoldEffect, defHoldEffect; + u8 bankQuality, atkQuality, defQuality; + u16 atkItem, defItem; + + gLastUsedItem = gBattleMons[bank].item; + if (gLastUsedItem == ITEM_ENIGMA_BERRY) + { + bankHoldEffect = gEnigmaBerries[bank].holdEffect; + bankQuality = gEnigmaBerries[bank].holdEffectParam; + } + else + { + bankHoldEffect = ItemId_GetHoldEffect(gLastUsedItem); + bankQuality = ItemId_GetHoldEffectParam(gLastUsedItem); + } + + atkItem = gBattleMons[gBankAttacker].item; + if (atkItem == ITEM_ENIGMA_BERRY) + { + atkHoldEffect = gEnigmaBerries[gBankAttacker].holdEffect; + atkQuality = gEnigmaBerries[gBankAttacker].holdEffectParam; + } + else + { + atkHoldEffect = ItemId_GetHoldEffect(atkItem); + atkQuality = ItemId_GetHoldEffectParam(atkItem); + } + + // def variables are unused + defItem = gBattleMons[gBankTarget].item; + if (defItem == ITEM_ENIGMA_BERRY) + { + defHoldEffect = gEnigmaBerries[gBankTarget].holdEffect; + defQuality = gEnigmaBerries[gBankTarget].holdEffectParam; + } + else + { + defHoldEffect = ItemId_GetHoldEffect(defItem); + defQuality = ItemId_GetHoldEffectParam(defItem); + } + + switch (caseID) + { + case 0: + switch (bankHoldEffect) + { + case HOLD_EFFECT_DOUBLE_PRIZE: + if (GetBankSide(bank) == SIDE_PLAYER) + gBattleStruct->moneyMultiplier = 2; + break; + case HOLD_EFFECT_RESTORE_STATS: + for (i = 0; i < 8; i++) + { + if (gBattleMons[bank].statStages[i] < 6) + { + gBattleMons[bank].statStages[i] = 6; + effect = ITEM_STATS_CHANGE; + } + } + if (effect) + { + gBattleScripting.bank = bank; + gStringBank = bank; + gActiveBank = gBankAttacker = bank; + BattleScriptExecute(BattleScript_WhiteHerbEnd2); + } + break; + } + break; + case 1: + if (gBattleMons[bank].hp) + { + switch (bankHoldEffect) + { + case HOLD_EFFECT_RESTORE_HP: + if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / 2 && !moveTurn) + { + gBattleMoveDamage = bankQuality; + if (gBattleMons[bank].hp + bankQuality > gBattleMons[bank].maxHP) + gBattleMoveDamage = gBattleMons[bank].maxHP - gBattleMons[bank].hp; + gBattleMoveDamage *= -1; + BattleScriptExecute(BattleScript_ItemHealHP_RemoveItem); + effect = 4; + } + break; + case HOLD_EFFECT_RESTORE_PP: + if (!moveTurn) + { + struct Pokemon* poke; + u8 ppBonuses; + u16 move; + + if (GetBankSide(bank) == SIDE_PLAYER) + poke = &gPlayerParty[gBattlePartyID[bank]]; + else + poke = &gEnemyParty[gBattlePartyID[bank]]; + for (i = 0; i < 4; i++) + { + move = GetMonData(poke, MON_DATA_MOVE1 + i); + changedPP = GetMonData(poke, MON_DATA_PP1 + i); + ppBonuses = GetMonData(poke, MON_DATA_PP_BONUSES); + if (move && changedPP == 0) + break; + } + if (i != 4) + { + u8 maxPP = CalculatePPWithBonus(move, ppBonuses, i); + if (changedPP + bankQuality > maxPP) + changedPP = maxPP; + else + changedPP = changedPP + bankQuality; + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 2; + gBattleTextBuff1[2] = move; + gBattleTextBuff1[3] = move >> 8; + gBattleTextBuff1[4] = 0xFF; + BattleScriptExecute(BattleScript_BerryPPHealEnd2); + EmitSetMonData(0, i + REQUEST_PPMOVE1_BATTLE, 0, 1, &changedPP); + MarkBufferBankForExecution(gActiveBank); + effect = ITEM_PP_CHANGE; + } + } + break; + case HOLD_EFFECT_RESTORE_STATS: + for (i = 0; i < 8; i++) + { + if (gBattleMons[bank].statStages[i] < 6) + { + gBattleMons[bank].statStages[i] = 6; + effect = ITEM_STATS_CHANGE; + } + } + if (effect) + { + gBattleScripting.bank = bank; + gStringBank = bank; + gActiveBank = gBankAttacker = bank; + BattleScriptExecute(BattleScript_WhiteHerbEnd2); + } + break; + case HOLD_EFFECT_LEFTOVERS: + if (gBattleMons[bank].hp < gBattleMons[bank].maxHP && !moveTurn) + { + gBattleMoveDamage = gBattleMons[bank].maxHP / 16; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + if (gBattleMons[bank].hp + gBattleMoveDamage > gBattleMons[bank].maxHP) + gBattleMoveDamage = gBattleMons[bank].maxHP - gBattleMons[bank].hp; + gBattleMoveDamage *= -1; + BattleScriptExecute(BattleScript_ItemHealHP_End2); + effect = ITEM_HP_CHANGE; + RecordItemEffectBattle(bank, bankHoldEffect); + } + break; + // nice copy/paste there gamefreak, making a function for confuse berries was too much eh? + case HOLD_EFFECT_CONFUSE_SPICY: + if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / 2 && !moveTurn) + { + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 8; + gBattleTextBuff1[2] = FLAVOR_SPICY; + gBattleTextBuff1[3] = EOS; + gBattleMoveDamage = gBattleMons[bank].maxHP / bankQuality; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + if (gBattleMons[bank].hp + gBattleMoveDamage > gBattleMons[bank].maxHP) + gBattleMoveDamage = gBattleMons[bank].maxHP - gBattleMons[bank].hp; + gBattleMoveDamage *= -1; + if (GetFlavourRelationByPersonality(gBattleMons[bank].personality, FLAVOR_SPICY) < 0) + BattleScriptExecute(BattleScript_BerryConfuseHealEnd2); + else + BattleScriptExecute(BattleScript_ItemHealHP_RemoveItem); + effect = ITEM_HP_CHANGE; + } + break; + case HOLD_EFFECT_CONFUSE_DRY: + if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / 2 && !moveTurn) + { + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 8; + gBattleTextBuff1[2] = FLAVOR_DRY; + gBattleTextBuff1[3] = EOS; + gBattleMoveDamage = gBattleMons[bank].maxHP / bankQuality; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + if (gBattleMons[bank].hp + gBattleMoveDamage > gBattleMons[bank].maxHP) + gBattleMoveDamage = gBattleMons[bank].maxHP - gBattleMons[bank].hp; + gBattleMoveDamage *= -1; + if (GetFlavourRelationByPersonality(gBattleMons[bank].personality, FLAVOR_DRY) < 0) + BattleScriptExecute(BattleScript_BerryConfuseHealEnd2); + else + BattleScriptExecute(BattleScript_ItemHealHP_RemoveItem); + effect = ITEM_HP_CHANGE; + } + break; + case HOLD_EFFECT_CONFUSE_SWEET: + if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / 2 && !moveTurn) + { + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 8; + gBattleTextBuff1[2] = FLAVOR_SWEET; + gBattleTextBuff1[3] = EOS; + gBattleMoveDamage = gBattleMons[bank].maxHP / bankQuality; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + if (gBattleMons[bank].hp + gBattleMoveDamage > gBattleMons[bank].maxHP) + gBattleMoveDamage = gBattleMons[bank].maxHP - gBattleMons[bank].hp; + gBattleMoveDamage *= -1; + if (GetFlavourRelationByPersonality(gBattleMons[bank].personality, FLAVOR_SWEET) < 0) + BattleScriptExecute(BattleScript_BerryConfuseHealEnd2); + else + BattleScriptExecute(BattleScript_ItemHealHP_RemoveItem); + effect = ITEM_HP_CHANGE; + } + break; + case HOLD_EFFECT_CONFUSE_BITTER: + if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / 2 && !moveTurn) + { + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 8; + gBattleTextBuff1[2] = FLAVOR_BITTER; + gBattleTextBuff1[3] = EOS; + gBattleMoveDamage = gBattleMons[bank].maxHP / bankQuality; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + if (gBattleMons[bank].hp + gBattleMoveDamage > gBattleMons[bank].maxHP) + gBattleMoveDamage = gBattleMons[bank].maxHP - gBattleMons[bank].hp; + gBattleMoveDamage *= -1; + if (GetFlavourRelationByPersonality(gBattleMons[bank].personality, FLAVOR_BITTER) < 0) + BattleScriptExecute(BattleScript_BerryConfuseHealEnd2); + else + BattleScriptExecute(BattleScript_ItemHealHP_RemoveItem); + effect = ITEM_HP_CHANGE; + } + break; + case HOLD_EFFECT_CONFUSE_SOUR: + if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / 2 && !moveTurn) + { + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 8; + gBattleTextBuff1[2] = FLAVOR_SOUR; + gBattleTextBuff1[3] = EOS; + gBattleMoveDamage = gBattleMons[bank].maxHP / bankQuality; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + if (gBattleMons[bank].hp + gBattleMoveDamage > gBattleMons[bank].maxHP) + gBattleMoveDamage = gBattleMons[bank].maxHP - gBattleMons[bank].hp; + gBattleMoveDamage *= -1; + if (GetFlavourRelationByPersonality(gBattleMons[bank].personality, FLAVOR_SOUR) < 0) + BattleScriptExecute(BattleScript_BerryConfuseHealEnd2); + else + BattleScriptExecute(BattleScript_ItemHealHP_RemoveItem); + effect = ITEM_HP_CHANGE; + } + break; + // copy/paste again, smh + case HOLD_EFFECT_ATTACK_UP: + if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / bankQuality && !moveTurn && gBattleMons[bank].statStages[STAT_STAGE_ATK] < 0xC) + { + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 5; + gBattleTextBuff1[2] = STAT_STAGE_ATK; + gBattleTextBuff1[3] = EOS; + + gBattleTextBuff2[0] = 0xFD; + gBattleTextBuff2[1] = 0; + gBattleTextBuff2[2] = 0xD2; + gBattleTextBuff2[3] = 0xD2 >> 8; + gBattleTextBuff2[4] = EOS; + + gEffectBank = bank; + gBattleScripting.statChanger = 0x10 + STAT_STAGE_ATK; + gBattleScripting.animArg1 = 0xE + STAT_STAGE_ATK; + gBattleScripting.animArg2 = 0; + BattleScriptExecute(BattleScript_BerryStatRaiseEnd2); + effect = ITEM_STATS_CHANGE; + } + break; + case HOLD_EFFECT_DEFENSE_UP: + if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / bankQuality && !moveTurn && gBattleMons[bank].statStages[STAT_STAGE_DEF] < 0xC) + { + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 5; + gBattleTextBuff1[2] = STAT_STAGE_DEF; + gBattleTextBuff1[3] = EOS; + + gEffectBank = bank; + gBattleScripting.statChanger = 0x10 + STAT_STAGE_DEF; + gBattleScripting.animArg1 = 0xE + STAT_STAGE_DEF; + gBattleScripting.animArg2 = 0; + BattleScriptExecute(BattleScript_BerryStatRaiseEnd2); + effect = ITEM_STATS_CHANGE; + } + break; + case HOLD_EFFECT_SPEED_UP: + if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / bankQuality && !moveTurn && gBattleMons[bank].statStages[STAT_STAGE_SPEED] < 0xC) + { + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 5; + gBattleTextBuff1[2] = STAT_STAGE_SPEED; + gBattleTextBuff1[3] = EOS; + + gEffectBank = bank; + gBattleScripting.statChanger = 0x10 + STAT_STAGE_SPEED; + gBattleScripting.animArg1 = 0xE + STAT_STAGE_SPEED; + gBattleScripting.animArg2 = 0; + BattleScriptExecute(BattleScript_BerryStatRaiseEnd2); + effect = ITEM_STATS_CHANGE; + } + break; + case HOLD_EFFECT_SP_ATTACK_UP: + if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / bankQuality && !moveTurn && gBattleMons[bank].statStages[STAT_STAGE_SPATK] < 0xC) + { + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 5; + gBattleTextBuff1[2] = STAT_STAGE_SPATK; + gBattleTextBuff1[3] = EOS; + + gEffectBank = bank; + gBattleScripting.statChanger = 0x10 + STAT_STAGE_SPATK; + gBattleScripting.animArg1 = 0xE + STAT_STAGE_SPATK; + gBattleScripting.animArg2 = 0; + BattleScriptExecute(BattleScript_BerryStatRaiseEnd2); + effect = ITEM_STATS_CHANGE; + } + break; + case HOLD_EFFECT_SP_DEFENSE_UP: + if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / bankQuality && !moveTurn && gBattleMons[bank].statStages[STAT_STAGE_SPDEF] < 0xC) + { + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 5; + gBattleTextBuff1[2] = STAT_STAGE_SPDEF; + gBattleTextBuff1[3] = EOS; + + gEffectBank = bank; + gBattleScripting.statChanger = 0x10 + STAT_STAGE_SPDEF; + gBattleScripting.animArg1 = 0xE + STAT_STAGE_SPDEF; + gBattleScripting.animArg2 = 0; + BattleScriptExecute(BattleScript_BerryStatRaiseEnd2); + effect = ITEM_STATS_CHANGE; + } + break; + case HOLD_EFFECT_CRITICAL_UP: + if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / bankQuality && !moveTurn && !(gBattleMons[bank].status2 & STATUS2_FOCUS_ENERGY)) + { + gBattleMons[bank].status2 |= STATUS2_FOCUS_ENERGY; + BattleScriptExecute(BattleScript_BerryFocusEnergyEnd2); + effect = ITEM_EFFECT_OTHER; + } + break; + case HOLD_EFFECT_RANDOM_STAT_UP: + if (!moveTurn && gBattleMons[bank].hp <= gBattleMons[bank].maxHP / bankQuality) + { + for (i = 0; i < 5; i++) + { + if (gBattleMons[bank].statStages[STAT_STAGE_ATK + i] < 0xC) + break; + } + if (i != 5) + { + do + { + i = Random() % 5; + } while (gBattleMons[bank].statStages[STAT_STAGE_ATK + i] == 0xC); + + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 5; + gBattleTextBuff1[2] = i + 1; + gBattleTextBuff1[3] = EOS; + + gBattleTextBuff2[0] = 0xFD; + gBattleTextBuff2[1] = 0; + gBattleTextBuff2[2] = 0xD1; + gBattleTextBuff2[3] = 0xD1 >> 8; + gBattleTextBuff2[4] = 0; + gBattleTextBuff2[5] = 0xD2; + gBattleTextBuff2[6] = 0xD2 >> 8; + gBattleTextBuff2[7] = EOS; + + gEffectBank = bank; + gBattleScripting.statChanger = 0x21 + i; + gBattleScripting.animArg1 = 0x21 + i + 6; + gBattleScripting.animArg2 = 0; + BattleScriptExecute(BattleScript_BerryStatRaiseEnd2); + effect = ITEM_STATS_CHANGE; + } + } + break; + case HOLD_EFFECT_CURE_PAR: + if (gBattleMons[bank].status1 & STATUS_PARALYSIS) + { + gBattleMons[bank].status1 &= ~(STATUS_PARALYSIS); + BattleScriptExecute(BattleScript_BerryCurePrlzEnd2); + effect = ITEM_STATUS_CHANGE; + } + break; + case HOLD_EFFECT_CURE_PSN: + if (gBattleMons[bank].status1 & STATUS_PSN_ANY) + { + gBattleMons[bank].status1 &= ~(STATUS_PSN_ANY | STATUS_TOXIC_COUNTER); + BattleScriptExecute(BattleScript_BerryCurePsnEnd2); + effect = ITEM_STATUS_CHANGE; + } + break; + case HOLD_EFFECT_CURE_BRN: + if (gBattleMons[bank].status1 & STATUS_BURN) + { + gBattleMons[bank].status1 &= ~(STATUS_BURN); + BattleScriptExecute(BattleScript_BerryCureBrnEnd2); + effect = ITEM_STATUS_CHANGE; + } + break; + case HOLD_EFFECT_CURE_FRZ: + if (gBattleMons[bank].status1 & STATUS_FREEZE) + { + gBattleMons[bank].status1 &= ~(STATUS_FREEZE); + BattleScriptExecute(BattleScript_BerryCureFrzEnd2); + effect = ITEM_STATUS_CHANGE; + } + break; + case HOLD_EFFECT_CURE_SLP: + if (gBattleMons[bank].status1 & STATUS_SLEEP) + { + gBattleMons[bank].status1 &= ~(STATUS_SLEEP); + gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE); + BattleScriptExecute(BattleScript_BerryCureSlpEnd2); + effect = ITEM_STATUS_CHANGE; + } + break; + case HOLD_EFFECT_CURE_CONFUSION: + if (gBattleMons[bank].status2 & STATUS2_CONFUSION) + { + gBattleMons[bank].status2 &= ~(STATUS2_CONFUSION); + BattleScriptExecute(BattleScript_BerryCureConfusionEnd2); + effect = ITEM_EFFECT_OTHER; + } + break; + case HOLD_EFFECT_CURE_STATUS: + if (gBattleMons[bank].status1 & STATUS_ANY || gBattleMons[bank].status2 & STATUS2_CONFUSION) + { + i = 0; + if (gBattleMons[bank].status1 & STATUS_PSN_ANY) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_PoisonJpn); + i++; + } + if (gBattleMons[bank].status1 & STATUS_SLEEP) + { + gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE); + StringCopy(gBattleTextBuff1, gStatusConditionString_SleepJpn); + i++; + } + if (gBattleMons[bank].status1 & STATUS_PARALYSIS) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_ParalysisJpn); + i++; + } + if (gBattleMons[bank].status1 & STATUS_BURN) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_BurnJpn); + i++; + } + if (gBattleMons[bank].status1 & STATUS_FREEZE) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_IceJpn); + i++; + } + if (gBattleMons[bank].status2 & STATUS2_CONFUSION) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_ConfusionJpn); + i++; + } + if (!(i > 1)) + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + else + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleMons[bank].status1 = 0; + gBattleMons[bank].status2 &= ~(STATUS2_CONFUSION); + BattleScriptExecute(BattleScript_BerryCureChosenStatusEnd2); + effect = ITEM_STATUS_CHANGE; + } + break; + case HOLD_EFFECT_CURE_ATTRACT: + if (gBattleMons[bank].status2 & STATUS2_INFATUATION) + { + gBattleMons[bank].status2 &= ~(STATUS2_INFATUATION); + StringCopy(gBattleTextBuff1, gStatusConditionString_LoveJpn); + BattleScriptExecute(BattleScript_BerryCureChosenStatusEnd2); + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + effect = ITEM_EFFECT_OTHER; + } + break; + } + if (effect) + { + gBattleScripting.bank = bank; + gStringBank = bank; + gActiveBank = gBankAttacker = bank; + switch (effect) + { + case ITEM_STATUS_CHANGE: + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[bank].status1); + MarkBufferBankForExecution(gActiveBank); + break; + case ITEM_PP_CHANGE: + if (!(gBattleMons[bank].status2 & STATUS2_TRANSFORMED) && !(gDisableStructs[bank].unk18_b & gBitTable[i])) + gBattleMons[bank].pp[i] = changedPP; + break; + } + } + } + break; + case 2: + break; + case 3: + for (bank = 0; bank < gNoOfAllBanks; bank++) + { + gLastUsedItem = gBattleMons[bank].item; + if (gBattleMons[bank].item == ITEM_ENIGMA_BERRY) + { + bankHoldEffect = gEnigmaBerries[bank].holdEffect; + bankQuality = gEnigmaBerries[bank].holdEffectParam; + } + else + { + bankHoldEffect = ItemId_GetHoldEffect(gLastUsedItem); + bankQuality = ItemId_GetHoldEffectParam(gLastUsedItem); + } + switch (bankHoldEffect) + { + case HOLD_EFFECT_CURE_PAR: + if (gBattleMons[bank].status1 & STATUS_PARALYSIS) + { + gBattleMons[bank].status1 &= ~(STATUS_PARALYSIS); + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_BerryCureParRet; + effect = ITEM_STATUS_CHANGE; + } + break; + case HOLD_EFFECT_CURE_PSN: + if (gBattleMons[bank].status1 & STATUS_PSN_ANY) + { + gBattleMons[bank].status1 &= ~(STATUS_PSN_ANY | STATUS_TOXIC_COUNTER); + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_BerryCurePsnRet; + effect = ITEM_STATUS_CHANGE; + } + break; + case HOLD_EFFECT_CURE_BRN: + if (gBattleMons[bank].status1 & STATUS_BURN) + { + gBattleMons[bank].status1 &= ~(STATUS_BURN); + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_BerryCureBrnRet; + effect = ITEM_STATUS_CHANGE; + } + break; + case HOLD_EFFECT_CURE_FRZ: + if (gBattleMons[bank].status1 & STATUS_FREEZE) + { + gBattleMons[bank].status1 &= ~(STATUS_FREEZE); + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_BerryCureFrzRet; + effect = ITEM_STATUS_CHANGE; + } + break; + case HOLD_EFFECT_CURE_SLP: + if (gBattleMons[bank].status1 & STATUS_SLEEP) + { + gBattleMons[bank].status1 &= ~(STATUS_SLEEP); + gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE); + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_BerryCureSlpRet; + effect = ITEM_STATUS_CHANGE; + } + break; + case HOLD_EFFECT_CURE_CONFUSION: + if (gBattleMons[bank].status2 & STATUS2_CONFUSION) + { + gBattleMons[bank].status2 &= ~(STATUS2_CONFUSION); + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_BerryCureConfusionRet; + effect = ITEM_EFFECT_OTHER; + } + break; + case HOLD_EFFECT_CURE_ATTRACT: + if (gBattleMons[bank].status2 & STATUS2_INFATUATION) + { + gBattleMons[bank].status2 &= ~(STATUS2_INFATUATION); + StringCopy(gBattleTextBuff1, gStatusConditionString_LoveJpn); + BattleScriptPushCursor(); + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattlescriptCurrInstr = BattleScript_BerryCureChosenStatusRet; + effect = ITEM_EFFECT_OTHER; + } + break; + case HOLD_EFFECT_CURE_STATUS: + if (gBattleMons[bank].status1 & STATUS_ANY || gBattleMons[bank].status2 & STATUS2_CONFUSION) + { + if (gBattleMons[bank].status1 & STATUS_PSN_ANY) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_PoisonJpn); + } + if (gBattleMons[bank].status1 & STATUS_SLEEP) + { + gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE); + StringCopy(gBattleTextBuff1, gStatusConditionString_SleepJpn); + } + if (gBattleMons[bank].status1 & STATUS_PARALYSIS) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_ParalysisJpn); + } + if (gBattleMons[bank].status1 & STATUS_BURN) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_BurnJpn); + } + if (gBattleMons[bank].status1 & STATUS_FREEZE) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_IceJpn); + } + if (gBattleMons[bank].status2 & STATUS2_CONFUSION) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_ConfusionJpn); + } + gBattleMons[bank].status1 = 0; + gBattleMons[bank].status2 &= ~(STATUS2_CONFUSION); + BattleScriptPushCursor(); + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattlescriptCurrInstr = BattleScript_BerryCureChosenStatusRet; + effect = ITEM_STATUS_CHANGE; + } + break; + case HOLD_EFFECT_RESTORE_STATS: + for (i = 0; i < 8; i++) + { + if (gBattleMons[bank].statStages[i] < 6) + { + gBattleMons[bank].statStages[i] = 6; + effect = ITEM_STATS_CHANGE; + } + } + if (effect) + { + gBattleScripting.bank = bank; + gStringBank = bank; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_WhiteHerbRet; + return effect; // unnecessary return + } + break; + } + if (effect) + { + gBattleScripting.bank = bank; + gStringBank = bank; + gActiveBank = bank; + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); + MarkBufferBankForExecution(gActiveBank); + break; + } + } + break; + case 4: + if (gBattleMoveDamage) + { + switch (atkHoldEffect) + { + case HOLD_EFFECT_FLINCH: + if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && (Random() % 100) < atkQuality + && gBattleMoves[gCurrentMove].flags & FLAG_KINGSROCK_AFFECTED + && gBattleMons[gBankTarget].hp) + { + gBattleCommunication[MOVE_EFFECT_BYTE] = 8; + BattleScriptPushCursor(); + SetMoveEffect(0, 0); + BattleScriptPop(); + } + break; + case HOLD_EFFECT_SHELL_BELL: + if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + && gSpecialStatuses[gBankTarget].moveturnLostHP != 0 + && gSpecialStatuses[gBankTarget].moveturnLostHP != 0xFFFF + && gBankAttacker != gBankTarget + && gBattleMons[gBankAttacker].hp != gBattleMons[gBankAttacker].maxHP + && gBattleMons[gBankAttacker].hp != 0) + { + gLastUsedItem = atkItem; + gStringBank = gBankAttacker; + gBattleScripting.bank = gBankAttacker; + gBattleMoveDamage = (gSpecialStatuses[gBankTarget].moveturnLostHP / atkQuality) * -1; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = -1; + gSpecialStatuses[gBankTarget].moveturnLostHP = 0; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_ItemHealHP_Ret; + effect++; + } + break; + } + } + break; + } + + return effect; +} + +void sub_8045868(u8 bank) +{ + gDisableStructs[bank].furyCutterCounter = 0; + gBattleMons[bank].status2 &= ~(STATUS2_DESTINY_BOND); + gStatuses3[bank] &= ~(STATUS3_GRUDGE); +} + +void sub_80458B4(void) +{ + if (gBattleExecBuffer == 0) + gBattleScriptingCommandsTable[*gBattlescriptCurrInstr](); +} + +u8 GetMoveTarget(u16 move, u8 useMoveTarget) +{ + u8 targetBank = 0; + u8 moveTarget; + u8 side; + + if (useMoveTarget) + moveTarget = useMoveTarget - 1; + else + moveTarget = gBattleMoves[move].target; + + switch (moveTarget) + { + case MOVE_TARGET_SELECTED: + side = GetBankSide(gBankAttacker) ^ 1; + if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp) + targetBank = gSideTimers[side].followmeTarget; + else + { + side = GetBankSide(gBankAttacker); + do + { + targetBank = Random() % gNoOfAllBanks; + } while (targetBank == gBankAttacker || side == GetBankSide(targetBank) || gAbsentBankFlags & gBitTable[targetBank]); + if (gBattleMoves[move].type == TYPE_ELECTRIC + && AbilityBattleEffects(ABILITYEFFECT_COUNT_OTHER_SIDE, gBankAttacker, ABILITY_LIGHTNING_ROD, 0, 0) + && gBattleMons[targetBank].ability != ABILITY_LIGHTNING_ROD) + { + targetBank ^= 2; + RecordAbilityBattle(targetBank, gBattleMons[targetBank].ability); + gSpecialStatuses[targetBank].lightningRodRedirected = 1; + } + } + break; + case MOVE_TARGET_DEPENDS: + case MOVE_TARGET_BOTH: + case MOVE_TARGET_FOES_AND_ALLY: + case MOVE_TARGET_OPPONENTS_FIELD: + targetBank = GetBankByIdentity((GetBankIdentity(gBankAttacker) & 1) ^ 1); + if (gAbsentBankFlags & gBitTable[targetBank]) + targetBank ^= 2; + break; + case MOVE_TARGET_RANDOM: + side = GetBankSide(gBankAttacker) ^ 1; + if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp) + targetBank = gSideTimers[side].followmeTarget; + else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && moveTarget & MOVE_TARGET_RANDOM) + { + if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + { + if (Random() & 1) + targetBank = GetBankByIdentity(1); + else + targetBank = GetBankByIdentity(3); + } + else + { + if (Random() & 1) + targetBank = GetBankByIdentity(0); + else + targetBank = GetBankByIdentity(2); + } + if (gAbsentBankFlags & gBitTable[targetBank]) + targetBank ^= 2; + } + else + targetBank = GetBankByIdentity((GetBankIdentity(gBankAttacker) & 1) ^ 1); + break; + case MOVE_TARGET_USER: + case MOVE_TARGET_x10: + targetBank = gBankAttacker; + break; + } + + #ifndef NONMATCHING + MEME_ACCESS_U8(BattleStruct, gBattleStruct, gBankAttacker, moveTarget, targetBank); + #else + gBattleStruct->moveTarget[gBankAttacker] = targetBank; + #endif // NONMATCHING + + return targetBank; +} + +static bool32 HasObedientBitSet(u8 bank) +{ + if (GetBankSide(bank) == SIDE_OPPONENT) + return TRUE; + if (GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES, NULL) != SPECIES_DEOXYS + && GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES, NULL) != SPECIES_MEW) + return TRUE; + return GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_OBEDIENCE, NULL); +} + +u8 IsPokeDisobedient(void) +{ + s32 rnd; + s32 calc; + u8 obedienceLevel = 0; + + if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) + return 0; + if (GetBankSide(gBankAttacker) == SIDE_OPPONENT) + return 0; + + if (HasObedientBitSet(gBankAttacker)) // only if species is Mew or Deoxys + { + if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && GetBankIdentity(gBankAttacker) == 2) + return 0; + if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) + return 0; + if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) + return 0; + if (!IsOtherTrainer(gBattleMons[gBankAttacker].otId, gBattleMons[gBankAttacker].otName)) + return 0; + if (FlagGet(BADGE08_GET)) + return 0; + + obedienceLevel = 10; + + if (FlagGet(BADGE02_GET)) + obedienceLevel = 30; + if (FlagGet(BADGE04_GET)) + obedienceLevel = 50; + if (FlagGet(BADGE06_GET)) + obedienceLevel = 70; + } + + if (gBattleMons[gBankAttacker].level <= obedienceLevel) + return 0; + rnd = (Random() & 255); + calc = (gBattleMons[gBankAttacker].level + obedienceLevel) * rnd >> 8; + if (calc < obedienceLevel) + return 0; + + // is not obedient + if (gCurrentMove == MOVE_RAGE) + gBattleMons[gBankAttacker].status2 &= ~(STATUS2_RAGE); + if (gBattleMons[gBankAttacker].status1 & STATUS_SLEEP && (gCurrentMove == MOVE_SNORE || gCurrentMove == MOVE_SLEEP_TALK)) + { + gBattlescriptCurrInstr = gUnknown_082DB695; + return 1; + } + + rnd = (Random() & 255); + calc = (gBattleMons[gBankAttacker].level + obedienceLevel) * rnd >> 8; + if (calc < obedienceLevel) + { + calc = CheckMoveLimitations(gBankAttacker, gBitTable[gCurrMovePos], 0xFF); + if (calc == 0xF) // all moves cannot be used + { + gBattleCommunication[MULTISTRING_CHOOSER] = Random() & 3; + gBattlescriptCurrInstr = BattleScript_MoveUsedLoafingAround; + return 1; + } + else // use a random move + { + do + { + gCurrMovePos = gUnknown_020241E9 = Random() & 3; + } while (gBitTable[gCurrMovePos] & calc); + + gRandomMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; + gBattlescriptCurrInstr = gUnknown_082DB6A5; + gBankTarget = GetMoveTarget(gRandomMove, 0); + gHitMarker |= HITMARKER_x200000; + return 2; + } + } + else + { + obedienceLevel = gBattleMons[gBankAttacker].level - obedienceLevel; + + calc = (Random() & 255); + if (calc < obedienceLevel && !(gBattleMons[gBankAttacker].status1 & STATUS_ANY) && gBattleMons[gBankAttacker].ability != ABILITY_VITAL_SPIRIT && gBattleMons[gBankAttacker].ability != ABILITY_INSOMNIA) + { + // try putting asleep + int i; + for (i = 0; i < gNoOfAllBanks; i++) + { + if (gBattleMons[i].status2 & STATUS2_UPROAR) + break; + } + if (i == gNoOfAllBanks) + { + gBattlescriptCurrInstr = gUnknown_082DB6D9; + return 1; + } + } + calc -= obedienceLevel; + if (calc < obedienceLevel) + { + gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankAttacker], MOVE_POUND, 0, 40, 0, gBankAttacker, gBankAttacker); + gBankTarget = gBankAttacker; + gBattlescriptCurrInstr = gUnknown_082DB6F0; + gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; + return 2; + } + else + { + gBattleCommunication[MULTISTRING_CHOOSER] = Random() & 3; + gBattlescriptCurrInstr = BattleScript_MoveUsedLoafingAround; + return 1; + } + } +} diff --git a/src/battle_4.c b/src/battle_4.c deleted file mode 100644 index 92561251f..000000000 --- a/src/battle_4.c +++ /dev/null @@ -1,601 +0,0 @@ -#include "global.h" -#include "battle.h" -#include "battle_move_effects.h" -#include "moves.h" -#include "abilities.h" -#include "item.h" -#include "items.h" -#include "hold_effects.h" - -void atk00_attackcanceler(void); -void atk01_accuracycheck(void); -void atk02_attackstring(void); -void atk03_ppreduce(void); -void atk04_critcalc(void); -void atk05_damagecalc1(void); -void atk06_typecalc(void); -void atk07_dmg_adjustment(void); -void atk08_dmg_adjustment2(void); -void atk09_attackanimation(void); -void atk0A_waitanimation(void); -void atk0B_healthbarupdate(void); -void atk0C_datahpupdate(void); -void atk0D_critmessage(void); -void atk0E_effectiveness_sound(void); -void atk0F_resultmessage(void); -void atk10_printstring(void); -void atk11_printstring_playeronly(void); -void atk12_waitmessage(void); -void atk13_printfromtable(void); -void atk14_printfromtable_playeronly(void); -void atk15_seteffectwithchancetarget(void); -void atk16_seteffectprimary(void); -void atk17_seteffectsecondary(void); -void atk18_status_effect_clear(void); -void atk19_faint_pokemon(void); -void atk1A_faint_animation(void); -void atk1B_faint_effects_clear(void); -void atk1C_jumpifstatus(void); -void atk1D_jumpifstatus2(void); -void atk1E_jumpifability(void); -void atk1F_jumpifsideaffecting(void); -void atk20_jumpifstat(void); -void atk21_jumpifstatus3(void); -void atk22_jumpiftype(void); -void atk23_getexp(void); -void atk24(void); -void atk25_move_values_cleanup(void); -void atk26_set_multihit(void); -void atk27_decrement_multihit(void); -void atk28_goto(void); -void atk29_jumpifbyte(void); -void atk2A_jumpifhalfword(void); -void atk2B_jumpifword(void); -void atk2C_jumpifarrayequal(void); -void atk2D_jumpifarraynotequal(void); -void atk2E_setbyte(void); -void atk2F_addbyte(void); -void atk30_subbyte(void); -void atk31_copyarray(void); -void atk32_copyarray_withindex(void); -void atk33_orbyte(void); -void atk34_orhalfword(void); -void atk35_orword(void); -void atk36_bicbyte(void); -void atk37_bichalfword(void); -void atk38_bicword(void); -void atk39_pause(void); -void atk3A_waitstate(void); -void atk3B_healthbar_update(void); -void atk3C_return(void); -void atk3D_end(void); -void atk3E_end2(void); -void atk3F_end3(void); -void atk40_jump_if_move_affected_by_protect(void); -void atk41_call(void); -void atk42_jumpiftype2(void); -void atk43_jumpifabilitypresent(void); -void atk44(void); -void atk45_playanimation(void); -void atk46_playanimation2(void); -void atk47_setgraphicalstatchangevalues(void); -void atk48_playstatchangeanimation(void); -void atk49_moveendturn(void); -void atk4A_typecalc2(void); -void atk4B_return_atk_to_ball(void); -void atk4C_copy_poke_data(void); -void atk4D_switch_data_update(void); -void atk4E_switchin_anim(void); -void atk4F_jump_if_cannot_switch(void); -void atk50_openpartyscreen(void); -void atk51_switch_handle_order(void); -void atk52_switch_in_effects(void); -void atk53_trainer_slide(void); -void atk54_effectiveness_sound(void); -void atk55_play_sound(void); -void atk56_fainting_cry(void); -void atk57(void); -void atk58_return_to_ball(void); -void atk59_learnmove_inbattle(void); -void atk5A(void); -void atk5B_80256E0(void); -void atk5C_hitanimation(void); -void atk5D_getmoneyreward(void); -void atk5E_8025A70(void); -void atk5F_8025B24(void); -void atk60_increment_gamestat(void); -void atk61_8025BA4(void); -void atk62_08025C6C(void); -void atk63_jumptorandomattack(void); -void atk64_statusanimation(void); -void atk65_status2animation(void); -void atk66_chosenstatusanimation(void); -void atk67_8025ECC(void); -void atk68_80246A0(void); -void atk69_dmg_adjustment2(void); -void atk6A_removeitem(void); -void atk6B_atknameinbuff1(void); -void atk6C_lvlbox_display(void); -void atk6D_set_sentpokes_values(void); -void atk6E_set_atk_to_player0(void); -void atk6F_set_visible(void); -void atk70_record_ability(void); -void atk71_buffer_move_to_learn(void); -void atk72_jump_if_can_run_frombattle(void); -void atk73_hp_thresholds(void); -void atk74_hp_thresholds2(void); -void atk75_8026A58(void); -void atk76_various(void); -void atk77_setprotect(void); -void atk78_faintifabilitynotdamp(void); -void atk79_setatkhptozero(void); -void atk7A_jumpwhiletargetvalid(void); -void atk7B_healhalfHP_if_possible(void); -void atk7C_8025508(void); -void atk7D_set_rain(void); -void atk7E_setreflect(void); -void atk7F_setseeded(void); -void atk80_manipulatedamage(void); -void atk81_setrest(void); -void atk82_jumpifnotfirstturn(void); -void atk83_nop(void); -void atk84_jump_if_cant_sleep(void); -void atk85_stockpile(void); -void atk86_stockpiletobasedamage(void); -void atk87_stockpiletohpheal(void); -void atk88_negativedamage(void); -void atk89_statbuffchange(void); -void atk8A_normalisebuffs(void); -void atk8B_setbide(void); -void atk8C_confuseifrepeatingattackends(void); -void atk8D_setmultihit_counter(void); -void atk8E_prepare_multihit(void); -void atk8F_forcerandomswitch(void); -void atk90_conversion_type_change(void); -void atk91_givepaydaymoney(void); -void atk92_setlightscreen(void); -void atk93_ko_move(void); -void atk94_gethalfcurrentenemyhp(void); -void atk95_setsandstorm(void); -void atk96_weatherdamage(void); -void atk97_try_infatuation(void); -void atk98_status_icon_update(void); -void atk99_setmist(void); -void atk9A_set_focusenergy(void); -void atk9B_transformdataexecution(void); -void atk9C_set_substitute(void); -void atk9D_copyattack(void); -void atk9E_metronome(void); -void atk9F_dmgtolevel(void); -void atkA0_psywavedamageeffect(void); -void atkA1_counterdamagecalculator(void); -void atkA2_mirrorcoatdamagecalculator(void); -void atkA3_disablelastusedattack(void); -void atkA4_setencore(void); -void atkA5_painsplitdmgcalc(void); -void atkA6_settypetorandomresistance(void); -void atkA7_setalwayshitflag(void); -void atkA8_copymovepermanently(void); -void atkA9_sleeptalk_choose_move(void); -void atkAA_set_destinybond(void); -void atkAB_DestinyBondFlagUpdate(void); -void atkAC_remaininghptopower(void); -void atkAD_spite_ppreduce(void); -void atkAE_heal_party_status(void); -void atkAF_cursetarget(void); -void atkB0_set_spikes(void); -void atkB1_set_foresight(void); -void atkB2_setperishsong(void); -void atkB3_rolloutdamagecalculation(void); -void atkB4_jumpifconfusedandstatmaxed(void); -void atkB5_furycuttercalc(void); -void atkB6_happinesstodamagecalculation(void); -void atkB7_presentdamagecalculation(void); -void atkB8_set_safeguard(void); -void atkB9_magnitudedamagecalculation(void); -void atkBA_jumpifnopursuitswitchdmg(void); -void atkBB_setsunny(void); -void atkBC_maxattackhalvehp(void); -void atkBD_copyfoestats(void); -void atkBE_breakfree(void); -void atkBF_set_defense_curl(void); -void atkC0_recoverbasedonsunlight(void); -void atkC1_hidden_power(void); -void atkC2_selectnexttarget(void); -void atkC3_setfutureattack(void); -void atkC4_beat_up(void); -void atkC5_hidepreattack(void); -void atkC6_unhidepostattack(void); -void atkC7_setminimize(void); -void atkC8_sethail(void); -void atkC9_jumpifattackandspecialattackcannotfall(void); -void atkCA_setforcedtarget(void); -void atkCB_setcharge(void); -void atkCC_callterrainattack(void); -void atkCD_cureifburnedparalysedorpoisoned(void); -void atkCE_settorment(void); -void atkCF_jumpifnodamage(void); -void atkD0_settaunt(void); -void atkD1_set_helpinghand(void); -void atkD2_swap_items(void); -void atkD3_copy_ability(void); -void atkD4_wish_effect(void); -void atkD5_setroots(void); -void atkD6_doubledamagedealtifdamaged(void); -void atkD7_setyawn(void); -void atkD8_setdamagetohealthdifference(void); -void atkD9_scaledamagebyhealthratio(void); -void atkDA_abilityswap(void); -void atkDB_imprisoneffect(void); -void atkDC_setgrudge(void); -void atkDD_weightdamagecalculation(void); -void atkDE_asistattackselect(void); -void atkDF_setmagiccoat(void); -void atkE0_setstealstatchange(void); -void atkE1_intimidate_string_loader(void); -void atkE2_switchout_abilities(void); -void atkE3_jumpiffainted(void); -void atkE4_getsecretpowereffect(void); -void atkE5_pickup(void); -void atkE6_castform_change_animation(void); -void atkE7_castform_data_change(void); -void atkE8_settypebasedhalvers(void); -void atkE9_setweatherballtype(void); -void atkEA_recycleitem(void); -void atkEB_settypetoterrain(void); -void atkEC_pursuit_sth(void); -void atkED_802B4B4(void); -void atkEE_removelightscreenreflect(void); -void atkEF_pokeball_catch_calculation(void); -void atkF0_copy_caught_poke(void); -void atkF1_setpoke_as_caught(void); -void atkF2_display_dex_info(void); -void atkF3_nickname_caught_poke(void); -void atkF4_802BEF0(void); -void atkF5_removeattackerstatus1(void); -void atkF6_802BF48(void); -void atkF7_802BF54(void); -void sub_8056EF8(void); - -void (* const gBattleScriptingCommandsTable[])(void) = -{ - atk00_attackcanceler, - atk01_accuracycheck, - atk02_attackstring, - atk03_ppreduce, - atk04_critcalc, - atk05_damagecalc1, - atk06_typecalc, - atk07_dmg_adjustment, - atk08_dmg_adjustment2, - atk09_attackanimation, - atk0A_waitanimation, - atk0B_healthbarupdate, - atk0C_datahpupdate, - atk0D_critmessage, - atk0E_effectiveness_sound, - atk0F_resultmessage, - atk10_printstring, - atk11_printstring_playeronly, - atk12_waitmessage, - atk13_printfromtable, - atk14_printfromtable_playeronly, - atk15_seteffectwithchancetarget, - atk16_seteffectprimary, - atk17_seteffectsecondary, - atk18_status_effect_clear, - atk19_faint_pokemon, - atk1A_faint_animation, - atk1B_faint_effects_clear, - atk1C_jumpifstatus, - atk1D_jumpifstatus2, - atk1E_jumpifability, - atk1F_jumpifsideaffecting, - atk20_jumpifstat, - atk21_jumpifstatus3, - atk22_jumpiftype, - atk23_getexp, - atk24, - atk25_move_values_cleanup, - atk26_set_multihit, - atk27_decrement_multihit, - atk28_goto, - atk29_jumpifbyte, - atk2A_jumpifhalfword, - atk2B_jumpifword, - atk2C_jumpifarrayequal, - atk2D_jumpifarraynotequal, - atk2E_setbyte, - atk2F_addbyte, - atk30_subbyte, - atk31_copyarray, - atk32_copyarray_withindex, - atk33_orbyte, - atk34_orhalfword, - atk35_orword, - atk36_bicbyte, - atk37_bichalfword, - atk38_bicword, - atk39_pause, - atk3A_waitstate, - atk3B_healthbar_update, - atk3C_return, - atk3D_end, - atk3E_end2, - atk3F_end3, - atk40_jump_if_move_affected_by_protect, - atk41_call, - atk42_jumpiftype2, - atk43_jumpifabilitypresent, - atk44, - atk45_playanimation, - atk46_playanimation2, - atk47_setgraphicalstatchangevalues, - atk48_playstatchangeanimation, - atk49_moveendturn, - atk4A_typecalc2, - atk4B_return_atk_to_ball, - atk4C_copy_poke_data, - atk4D_switch_data_update, - atk4E_switchin_anim, - atk4F_jump_if_cannot_switch, - atk50_openpartyscreen, - atk51_switch_handle_order, - atk52_switch_in_effects, - atk53_trainer_slide, - atk54_effectiveness_sound, - atk55_play_sound, - atk56_fainting_cry, - atk57, - atk58_return_to_ball, - atk59_learnmove_inbattle, - atk5A, - atk5B_80256E0, - atk5C_hitanimation, - atk5D_getmoneyreward, - atk5E_8025A70, - atk5F_8025B24, - atk60_increment_gamestat, - atk61_8025BA4, - atk62_08025C6C, - atk63_jumptorandomattack, - atk64_statusanimation, - atk65_status2animation, - atk66_chosenstatusanimation, - atk67_8025ECC, - atk68_80246A0, - atk69_dmg_adjustment2, - atk6A_removeitem, - atk6B_atknameinbuff1, - atk6C_lvlbox_display, - atk6D_set_sentpokes_values, - atk6E_set_atk_to_player0, - atk6F_set_visible, - atk70_record_ability, - atk71_buffer_move_to_learn, - atk72_jump_if_can_run_frombattle, - atk73_hp_thresholds, - atk74_hp_thresholds2, - atk75_8026A58, - atk76_various, - atk77_setprotect, - atk78_faintifabilitynotdamp, - atk79_setatkhptozero, - atk7A_jumpwhiletargetvalid, - atk7B_healhalfHP_if_possible, - atk7C_8025508, - atk7D_set_rain, - atk7E_setreflect, - atk7F_setseeded, - atk80_manipulatedamage, - atk81_setrest, - atk82_jumpifnotfirstturn, - atk83_nop, - atk84_jump_if_cant_sleep, - atk85_stockpile, - atk86_stockpiletobasedamage, - atk87_stockpiletohpheal, - atk88_negativedamage, - atk89_statbuffchange, - atk8A_normalisebuffs, - atk8B_setbide, - atk8C_confuseifrepeatingattackends, - atk8D_setmultihit_counter, - atk8E_prepare_multihit, - atk8F_forcerandomswitch, - atk90_conversion_type_change, - atk91_givepaydaymoney, - atk92_setlightscreen, - atk93_ko_move, - atk94_gethalfcurrentenemyhp, - atk95_setsandstorm, - atk96_weatherdamage, - atk97_try_infatuation, - atk98_status_icon_update, - atk99_setmist, - atk9A_set_focusenergy, - atk9B_transformdataexecution, - atk9C_set_substitute, - atk9D_copyattack, - atk9E_metronome, - atk9F_dmgtolevel, - atkA0_psywavedamageeffect, - atkA1_counterdamagecalculator, - atkA2_mirrorcoatdamagecalculator, - atkA3_disablelastusedattack, - atkA4_setencore, - atkA5_painsplitdmgcalc, - atkA6_settypetorandomresistance, - atkA7_setalwayshitflag, - atkA8_copymovepermanently, - atkA9_sleeptalk_choose_move, - atkAA_set_destinybond, - atkAB_DestinyBondFlagUpdate, - atkAC_remaininghptopower, - atkAD_spite_ppreduce, - atkAE_heal_party_status, - atkAF_cursetarget, - atkB0_set_spikes, - atkB1_set_foresight, - atkB2_setperishsong, - atkB3_rolloutdamagecalculation, - atkB4_jumpifconfusedandstatmaxed, - atkB5_furycuttercalc, - atkB6_happinesstodamagecalculation, - atkB7_presentdamagecalculation, - atkB8_set_safeguard, - atkB9_magnitudedamagecalculation, - atkBA_jumpifnopursuitswitchdmg, - atkBB_setsunny, - atkBC_maxattackhalvehp, - atkBD_copyfoestats, - atkBE_breakfree, - atkBF_set_defense_curl, - atkC0_recoverbasedonsunlight, - atkC1_hidden_power, - atkC2_selectnexttarget, - atkC3_setfutureattack, - atkC4_beat_up, - atkC5_hidepreattack, - atkC6_unhidepostattack, - atkC7_setminimize, - atkC8_sethail, - atkC9_jumpifattackandspecialattackcannotfall, - atkCA_setforcedtarget, - atkCB_setcharge, - atkCC_callterrainattack, - atkCD_cureifburnedparalysedorpoisoned, - atkCE_settorment, - atkCF_jumpifnodamage, - atkD0_settaunt, - atkD1_set_helpinghand, - atkD2_swap_items, - atkD3_copy_ability, - atkD4_wish_effect, - atkD5_setroots, - atkD6_doubledamagedealtifdamaged, - atkD7_setyawn, - atkD8_setdamagetohealthdifference, - atkD9_scaledamagebyhealthratio, - atkDA_abilityswap, - atkDB_imprisoneffect, - atkDC_setgrudge, - atkDD_weightdamagecalculation, - atkDE_asistattackselect, - atkDF_setmagiccoat, - atkE0_setstealstatchange, - atkE1_intimidate_string_loader, - atkE2_switchout_abilities, - atkE3_jumpiffainted, - atkE4_getsecretpowereffect, - atkE5_pickup, - atkE6_castform_change_animation, - atkE7_castform_data_change, - atkE8_settypebasedhalvers, - atkE9_setweatherballtype, - atkEA_recycleitem, - atkEB_settypetoterrain, - atkEC_pursuit_sth, - atkED_802B4B4, - atkEE_removelightscreenreflect, - atkEF_pokeball_catch_calculation, - atkF0_copy_caught_poke, - atkF1_setpoke_as_caught, - atkF2_display_dex_info, - atkF3_nickname_caught_poke, - atkF4_802BEF0, - atkF5_removeattackerstatus1, - atkF6_802BF48, - atkF7_802BF54, - sub_8056EF8 -}; - -struct statFractions -{ - u8 dividend; - u8 divisor; -}; - -const struct statFractions gAccuracyStageRatios[] = -{ - { 33, 100}, // -6 - { 36, 100}, // -5 - { 43, 100}, // -4 - { 50, 100}, // -3 - { 60, 100}, // -2 - { 75, 100}, // -1 - { 1, 1}, // 0 - {133, 100}, // +1 - {166, 100}, // +2 - { 2, 1}, // +3 - {233, 100}, // +4 - {133, 50}, // +5 - { 3, 1}, // +6 -}; - -// The chance is 1/N for each stage. -const u16 gCriticalHitChance[] = {16, 8, 4, 3, 2}; - -const u32 gStatusFlagsForMoveEffects[] = -{ - 0x00000000, - 0x00000007, - 0x00000008, - 0x00000010, - 0x00000020, - 0x00000040, - 0x00000080, - 0x00000007, - 0x00000008, - 0x00000000, - 0x00000070, - 0x00000000, - 0x00001000, - 0x0000E000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00400000, - 0x00000000, - 0x00000000, - 0x04000000, - 0x08000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000C00, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000 -}; diff --git a/src/battle_ai.c b/src/battle_ai_script_commands.c similarity index 99% rename from src/battle_ai.c rename to src/battle_ai_script_commands.c index 76bf4156d..dae43f13c 100644 --- a/src/battle_ai.c +++ b/src/battle_ai_script_commands.c @@ -1,5 +1,5 @@ #include "global.h" -#include "battle_ai.h" +#include "battle_ai_script_commands.h" #include "pokemon.h" #include "battle.h" #include "species.h" @@ -73,10 +73,7 @@ extern const struct BaseStats gBaseStats[]; extern const u32 gBitTable[]; extern u8 * const gBattleAI_ScriptsTable[]; -extern u8 GetBankIdentity(u8); extern u8 b_first_side(u8, u8, u8); -extern u8 GetBankByPlayerAI(u8); -extern void TypeCalc(u16 move, u8 bankAtk, u8 bankDef); extern void AI_CalcDmg(u8, u8); extern u8 CheckMoveLimitations(); @@ -87,7 +84,7 @@ static u8 BattleAI_ChooseMoveOrAction_Singles(void); static u8 BattleAI_ChooseMoveOrAction_Doubles(void); static void RecordLastUsedMoveByTarget(void); static void BattleAI_DoAIProcessing(void); -static void AIStackPushVar(u8 *); +static void AIStackPushVar(const u8 *); static bool8 AIStackPop(void); static void BattleAICmd_if_random_less_than(void); @@ -192,7 +189,7 @@ static void BattleAICmd_if_holds_item(void); // ewram -EWRAM_DATA u8 *gAIScriptPtr = NULL; +EWRAM_DATA const u8 *gAIScriptPtr = NULL; EWRAM_DATA static u8 sBank_AI = 0; // const rom data @@ -1805,7 +1802,7 @@ static void BattleAICmd_count_alive_pokemon(void) u32 status; bankOnField1 = gBattlePartyID[index]; status = GetBankIdentity(index) ^ 2; - bankOnField2 = gBattlePartyID[GetBankByPlayerAI(status)]; + bankOnField2 = gBattlePartyID[GetBankByIdentity(status)]; } else // in singles there's only one bank by side { @@ -2902,7 +2899,7 @@ static void BattleAICmd_if_flash_fired(void) gAIScriptPtr += 6; } -static void AIStackPushVar(u8 *var) +static void AIStackPushVar(const u8 *var) { gBattleResources->AI_ScriptsStack->ptr[gBattleResources->AI_ScriptsStack->size++] = var; } diff --git a/src/battle_dome_cards.c b/src/battle_dome_cards.c new file mode 100644 index 000000000..c0557ac70 --- /dev/null +++ b/src/battle_dome_cards.c @@ -0,0 +1,430 @@ + +// Includes +#include "global.h" +#include "sprite.h" +#include "window.h" +#include "malloc.h" +#include "species.h" +#include "palette.h" +#include "decompress.h" +#include "battle_dome_cards.h" + +extern const struct CompressedSpriteSheet gMonFrontPicTable[NUM_SPECIES]; +extern const struct CompressedSpriteSheet gMonBackPicTable[NUM_SPECIES]; +extern const struct CompressedSpriteSheet gTrainerFrontPicTable[]; +extern const struct CompressedSpriteSheet gTrainerBackPicTable[]; +extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; +extern const union AffineAnimCmd *const gUnknown_082FF618[]; +extern const union AffineAnimCmd *const gUnknown_082FF694[]; +extern const union AnimCmd *const gUnknown_082FF70C[]; +extern const union AnimCmd *const *const gUnknown_08309AAC[NUM_SPECIES]; +extern const union AnimCmd *const *const gUnknown_0830536C[]; +extern const u8 gUnknown_0831F578[]; + +// Static type declarations + +struct BattleDomeCard { + u8 *frames; + struct SpriteFrameImage *images; + u16 paletteTag; + u8 spriteId; + u8 active; +}; + +// Static RAM declarations + +static EWRAM_DATA struct SpriteTemplate gUnknown_0203CCEC = {}; +static EWRAM_DATA struct BattleDomeCard gUnknown_0203CD04[8] = {}; + +// Static ROM declarations + +// .rodata + +static const struct BattleDomeCard gUnknown_0860B058 = {}; +static const struct OamData gUnknown_0860B064 = { + .size = 3 +}; +static const struct OamData gUnknown_0860B06C = { + .affineMode = 1, .size = 3 +}; + +// .text + +static void nullsub_122(struct Sprite *sprite) +{ + +} + +bool16 dp13_810BB8C(void) +{ + int i; + + for (i = 0; i < 8; i ++) + { + gUnknown_0203CD04[i] = gUnknown_0860B058; + } + return FALSE; +} + +static bool16 load_pokemon_image_TODO(u16 species, u32 personality, bool8 isFrontPic, u8 *dest, bool8 isTrainer, bool8 ignoreDeoxys) +{ + if (!isTrainer) + { + if (isFrontPic) + { + if (!ignoreDeoxys) + { + LoadSpecialPokePic(&gMonFrontPicTable[species], dest, species, personality, isFrontPic); + } + else + { + LoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species], dest, species, personality, isFrontPic); + } + } + else + { + if (!ignoreDeoxys) + { + LoadSpecialPokePic(&gMonBackPicTable[species], dest, species, personality, isFrontPic); + } + else + { + LoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[species], dest, species, personality, isFrontPic); + } + } + } + else + { + if (isFrontPic) + { + DecompressPicFromTable(&gTrainerFrontPicTable[species], dest, species); + } + else + { + DecompressPicFromTable(&gTrainerBackPicTable[species], dest, species); + } + } + return FALSE; +} + +static bool16 sub_818D09C(u16 species, u32 personality, bool8 isFrontPic, u8 *dest, bool8 isTrainer) +{ + return load_pokemon_image_TODO(species, personality, isFrontPic, dest, isTrainer, FALSE); +} + +static void sub_818D0C4(u16 species, u32 otId, u32 personality, u8 paletteSlot, u16 paletteTag, bool8 isTrainer) +{ + if (!isTrainer) + { + if (paletteTag == 0xFFFF) + { + gUnknown_0203CCEC.paletteTag |= 0xFFFF; + LoadCompressedPalette(species_and_otid_get_pal(species, otId, personality), 0x100 + paletteSlot * 0x10, 0x20); + } + else + { + gUnknown_0203CCEC.paletteTag = paletteTag; + LoadCompressedObjectPalette(sub_806E7CC(species, otId, personality)); + } + } + else + { + if (paletteTag == 0xFFFF) + { + gUnknown_0203CCEC.paletteTag |= 0xFFFF; + LoadCompressedPalette(gTrainerFrontPicPaletteTable[species].data, 0x100 + paletteSlot * 0x10, 0x20); + } + else + { + gUnknown_0203CCEC.paletteTag = paletteTag; + LoadCompressedObjectPalette(&gTrainerFrontPicPaletteTable[species]); + } + } +} + +static void sub_818D180(u16 species, u32 otId, u32 personality, u8 paletteSlot, bool8 isTrainer) +{ + if (!isTrainer) + { + LoadCompressedPalette(species_and_otid_get_pal(species, otId, personality), paletteSlot * 0x10, 0x20); + } + else + { + LoadCompressedPalette(gTrainerFrontPicPaletteTable[species].data, paletteSlot * 0x10, 0x20); + } +} + +static void uns_builder_assign_animtable1(bool8 isTrainer) +{ + if (!isTrainer) + { + gUnknown_0203CCEC.anims = gUnknown_082FF70C; + } + else + { + gUnknown_0203CCEC.anims = gUnknown_0830536C[0]; + } +} + +static u16 oamt_spawn_poke_or_trainer_picture(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 isTrainer, bool8 ignoreDeoxys) +{ + u8 i; + u8 *framePics; + struct SpriteFrameImage *images; + int j; + u8 spriteId; + + for (i = 0; i < 8; i ++) + { + if (!gUnknown_0203CD04[i].active) + { + break; + } + } + if (i == 8) + { + return 0xFFFF; + } + framePics = Alloc(4 * 0x800); + if (!framePics) + { + return 0xFFFF; + } + images = Alloc(4 * sizeof(struct SpriteFrameImage)); + if (!images) + { + Free(framePics); + return 0xFFFF; + } + if (load_pokemon_image_TODO(species, personality, isFrontPic, framePics, isTrainer, ignoreDeoxys)) + { + // debug trap? + return 0xFFFF; + } + for (j = 0; j < 4; j ++) + { + images[j].data = framePics + 0x800 * j; + images[j].size = 0x800; + } + gUnknown_0203CCEC.tileTag = 0xFFFF; + gUnknown_0203CCEC.oam = &gUnknown_0860B064; + uns_builder_assign_animtable1(isTrainer); + gUnknown_0203CCEC.images = images; + gUnknown_0203CCEC.affineAnims = gDummySpriteAffineAnimTable; + gUnknown_0203CCEC.callback = nullsub_122; + sub_818D0C4(species, otId, personality, paletteSlot, paletteTag, isTrainer); + spriteId = CreateSprite(&gUnknown_0203CCEC, x, y, 0); + if (paletteTag == 0xFFFF) + { + gSprites[spriteId].oam.paletteNum = paletteSlot; + } + gUnknown_0203CD04[i].frames = framePics; + gUnknown_0203CD04[i].images = images; + gUnknown_0203CD04[i].paletteTag = paletteTag; + gUnknown_0203CD04[i].spriteId = spriteId; + gUnknown_0203CD04[i].active = TRUE; + return spriteId; +} + +static u16 sub_818D384(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 isTrainer) +{ + return oamt_spawn_poke_or_trainer_picture(species, otId, personality, isFrontPic, x, y, paletteSlot, paletteTag, isTrainer, FALSE); +} + +u16 sub_818D3E4(u16 species, u32 otId, u32 personality, u8 flags, s16 x, s16 y, u8 paletteSlot, u16 paletteTag) +{ + u8 *framePics; + struct SpriteFrameImage *images; + int j; + u8 i; + u8 spriteId; + u8 flags2; + + for (i = 0; i < 8; i ++) + { + if (!gUnknown_0203CD04[i].active) + { + break; + } + } + if (i == 8) + { + return 0xFFFF; + } + framePics = Alloc(4 * 0x800); + if (!framePics) + { + return 0xFFFF; + } + if (flags & 0x80) + { + flags &= 0x7F; + flags2 = 3; + } + else + { + flags2 = flags; + } + images = Alloc(4 * sizeof(struct SpriteFrameImage)); + if (!images) + { + Free(framePics); + return 0xFFFF; + } + if (load_pokemon_image_TODO(species, personality, flags, framePics, FALSE, FALSE)) + { + // debug trap? + return 0xFFFF; + } + for (j = 0; j < 4; j ++) + { + images[j].data = framePics + 0x800 * j; + images[j].size = 0x800; + } + gUnknown_0203CCEC.tileTag = 0xFFFF; + gUnknown_0203CCEC.anims = gUnknown_08309AAC[species]; + gUnknown_0203CCEC.images = images; + if (flags2 == 0x01) + { + gUnknown_0203CCEC.affineAnims = gUnknown_082FF694; + gUnknown_0203CCEC.oam = &gUnknown_0860B06C; + } + else if (flags2 == 0x00) + { + gUnknown_0203CCEC.affineAnims = gUnknown_082FF618; + gUnknown_0203CCEC.oam = &gUnknown_0860B06C; + } + else + { + gUnknown_0203CCEC.oam = &gUnknown_0860B064; + gUnknown_0203CCEC.affineAnims = gDummySpriteAffineAnimTable; + } + gUnknown_0203CCEC.callback = nullsub_122; + sub_818D0C4(species, otId, personality, paletteSlot, paletteTag, FALSE); + spriteId = CreateSprite(&gUnknown_0203CCEC, x, y, 0); + if (paletteTag == 0xFFFF) + { + gSprites[spriteId].oam.paletteNum = paletteSlot; + } + gUnknown_0203CD04[i].frames = framePics; + gUnknown_0203CD04[i].images = images; + gUnknown_0203CD04[i].paletteTag = paletteTag; + gUnknown_0203CD04[i].spriteId = spriteId; + gUnknown_0203CD04[i].active = TRUE; + return spriteId; +} + +static u16 sub_818D5B0(u16 spriteId) +{ + u8 i; + u8 *framePics; + struct SpriteFrameImage *images; + + for (i = 0; i < 8; i ++) + { + if (gUnknown_0203CD04[i].spriteId == spriteId) + { + break; + } + } + if (i == 8) + { + return 0xFFFF; + } + framePics = gUnknown_0203CD04[i].frames; + images = gUnknown_0203CD04[i].images; + if (gUnknown_0203CD04[i].paletteTag != 0xFFFF) + { + FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(gSprites[spriteId].oam.paletteNum)); + } + DestroySprite(&gSprites[spriteId]); + Free(framePics); + Free(images); + gUnknown_0203CD04[i] = gUnknown_0860B058; + return 0; +} + +static u16 sub_818D65C(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u8 paletteSlot, u8 windowId, bool8 isTrainer) +{ + if (sub_818D09C(species, personality, isFrontPic, (u8 *)GetWindowAttribute(windowId, WINDOW_TILE_DATA), FALSE)) + { + return 0xFFFF; + } + sub_818D180(species, otId, personality, paletteSlot, isTrainer); + return 0; +} + +static u16 sub_818D6CC(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId, bool8 isTrainer) +{ + u8 *framePics; + + framePics = Alloc(4 * 0x800); + if (framePics && !sub_818D09C(species, personality, isFrontPic, framePics, isTrainer)) + { + BlitBitmapRectToWindow(windowId, framePics, 0, 0, 0x40, 0x40, destX, destY, 0x40, 0x40); + sub_818D180(species, otId, personality, paletteSlot, isTrainer); + Free(framePics); + return 0; + } + return 0xFFFF; +} + +static u16 sub_818D778(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 ignoreDeoxys) +{ + return oamt_spawn_poke_or_trainer_picture(species, otId, personality, isFrontPic, x, y, paletteSlot, paletteTag, FALSE, ignoreDeoxys); +} + +u16 sub_818D7D8(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag) +{ + return sub_818D778(species, otId, personality, isFrontPic, x, y, paletteSlot, paletteTag, FALSE); +} + +u16 sub_818D820(u16 spriteId) +{ + return sub_818D5B0(spriteId); +} + +u16 sub_818D834(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u8 paletteSlot, u8 windowId) +{ + return sub_818D65C(species, otId, personality, isFrontPic, paletteSlot, windowId, FALSE); +} + +u16 sub_818D864(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId) +{ + return sub_818D6CC(species, otId, personality, isFrontPic, destX, destY, paletteSlot, windowId, FALSE); +} + +u16 sub_818D8AC(u16 species, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag) +{ + return sub_818D384(species, 0, 0, isFrontPic, x, y, paletteSlot, paletteTag, TRUE); +} + +u16 sub_818D8F0(u16 spriteId) +{ + return sub_818D5B0(spriteId); +} + +u16 sub_818D904(u16 species, bool8 isFrontPic, u8 paletteSlot, u8 windowId) +{ + return sub_818D65C(species, 0, 0, isFrontPic, paletteSlot, windowId, TRUE); +} + +u16 sub_818D938(u16 species, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId) +{ + return sub_818D6CC(species, 0, 0, isFrontPic, destX, destY, paletteSlot, windowId, TRUE); +} + +u8 sub_818D97C(u8 a0, u8 a1) +{ + if (a1 == 1) + { + switch (a0) + { + default: + return gUnknown_0831F578[0x3F]; + case 0: + return gUnknown_0831F578[0x3C]; + } + } + return a0; +} diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c new file mode 100644 index 000000000..e0cb3e941 --- /dev/null +++ b/src/battle_script_commands.c @@ -0,0 +1,11415 @@ +#include "global.h" +#include "battle.h" +#include "battle_move_effects.h" +#include "battle_message.h" +#include "battle_ai_script_commands.h" +#include "moves.h" +#include "abilities.h" +#include "item.h" +#include "items.h" +#include "hold_effects.h" +#include "util.h" +#include "pokemon.h" +#include "calculate_base_damage.h" +#include "rng.h" +#include "battle_controllers.h" +#include "species.h" +#include "songs.h" +#include "text.h" +#include "sound.h" +#include "pokedex.h" +#include "recorded_battle.h" +#include "window.h" +#include "reshow_battle_screen.h" +#include "main.h" +#include "palette.h" +#include "money.h" +#include "bg.h" +#include "string_util.h" +#include "pokemon_icon.h" +#include "pokemon_item_effects.h" +#include "m4a.h" +#include "mail.h" +#include "event_data.h" +#include "pokemon_storage_system.h" +#include "task.h" +#include "naming_screen.h" + +// variables + +extern u8 gCritMultiplier; +extern s32 gBattleMoveDamage; +extern u32 gStatuses3[BATTLE_BANKS_COUNT]; +extern u32 gBattleTypeFlags; +extern struct BattleEnigmaBerry gEnigmaBerries[BATTLE_BANKS_COUNT]; +extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; +extern u8 gActiveBank; +extern u32 gBattleExecBuffer; +extern u8 gNoOfAllBanks; +extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; +extern u8 gTurnOrder[BATTLE_BANKS_COUNT]; +extern u8 gUnknown_0202407A[BATTLE_BANKS_COUNT]; +extern u16 gCurrentMove; +extern u8 gLastUsedAbility; +extern u16 gBattleWeather; +extern u8 gStringBank; +extern u8 gEffectBank; +extern u8 gAbsentBankFlags; +extern u8 gMultiHitCounter; +extern u16 gChosenMovesByBanks[BATTLE_BANKS_COUNT]; +extern u16 gSideAffecting[2]; +extern u16 gPauseCounterBattle; +extern u16 gPaydayMoney; +extern u16 gRandomTurnNumber; +extern u8 gBattleOutcome; +extern u8 gBattleTerrain; +extern u8 gBankAttacker; +extern u8 gBankTarget; +extern const u8* gBattlescriptCurrInstr; +extern u8 gCurrMovePos; +extern u8 gFightStateTracker; +extern u32 gHitMarker; +extern u8 gBattleMoveFlags; +extern u8 gBattleCommunication[]; +extern u16 gUnknown_02024250[4]; +extern u16 gUnknown_02024258[4]; +extern u16 gUnknown_02024260[4]; +extern u8 gUnknown_02024270[4]; +extern u8 gStringBank; +extern u16 gDynamicBasePower; +extern u16 gLastUsedItem; +extern u16 gBattleMovePower; +extern s32 gHpDealt; +extern s32 gTakenDmg[BATTLE_BANKS_COUNT]; +extern u8 gTakenDmgBanks[BATTLE_BANKS_COUNT]; +extern u8 gSentPokesToOpponent[2]; +extern u8 gBank1; +extern u16 gExpShareExp; +extern u8 gLeveledUpInBattle; +extern void (*gBattleMainFunc)(void); +extern u8 gPlayerPartyCount; +extern u16 gMoveToLearn; +extern u16 gRandomMove; +extern u8 gBankInMenu; +extern u8 gActionForBanks[BATTLE_BANKS_COUNT]; +extern u8 gCurrentMoveTurn; +extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200]; +extern u16 gLockedMoves[BATTLE_BANKS_COUNT]; +extern u16 gPartnerTrainerId; +extern u16 gLastUsedMove; +extern u16 gUnknownMovesUsedByBanks[BATTLE_BANKS_COUNT]; +extern u16 gLastUsedMovesByBanks[BATTLE_BANKS_COUNT]; +extern u16 gTrainerBattleOpponent_A; +extern u16 gTrainerBattleOpponent_B; +extern u8 gUnknown_020241E9; +extern u16 gBattle_BG1_X; +extern u16 gBattle_BG1_Y; +extern u16 gBattle_BG2_X; +extern u16 gBattle_BG2_Y; +extern u16 gBattle_BG3_X; +extern struct MusicPlayerInfo gMPlay_BGM; + +struct TrainerMoney +{ + u8 classId; + u8 value; +}; + +extern const struct BattleMove gBattleMoves[]; +extern const struct BaseStats gBaseStats[]; +extern const u8 gTypeEffectiveness[]; +extern const u16 gMissStringIds[]; +extern const u16 gTrappingMoves[]; +extern const struct TrainerMoney gTrainerMoneyTable[]; +extern const u8* const gBattleScriptsForMoveEffects[]; + +// functions +extern void sub_81A5718(u8 bank); // battle frontier 2 +extern void sub_81A56B4(void); // battle frontier 2 +extern void sub_81BFA38(struct Pokemon* party, u8 monPartyId, u8 monCount, void (*callback)(void), u16 move); // pokemon summary screen +extern u8 sub_81C1B94(void); // pokemon summary screen +extern void IncrementGameStat(u8 statId); // rom_4 +extern void sub_81D388C(struct Pokemon* mon, void* statStoreLocation); // pokenav.s +extern void sub_81D3640(u8 arg0, void* statStoreLocation1, void* statStoreLocation2, u8 arg3, u8 arg4, u8 arg5); // pokenav.s +extern void sub_81D3784(u8 arg0, void* statStoreLocation1, u8 arg2, u8 arg3, u8 arg4); // pokenav.s +extern u8* GetMonNickname(struct Pokemon* mon, u8* dst); // party_menu +extern u8 sub_81A5258(u8* arg0); // battle frontier 2 +extern void sub_81A5BF8(void); // battle frontier 2 +extern void sub_81A5D44(void); // battle frontier 2 +extern void sub_81B8E80(u8 bank, u8, u8); // party menu +extern bool8 sub_81B1250(void); // ? +extern u8 GetScaledHPFraction(s16 hp, s16 maxhp, u8 scale); // battle interface +extern bool8 InBattlePike(void); +extern bool8 InBattlePyramid(void); +extern u16 GetBattlePyramidPickupItemId(void); +extern u8 sav1_map_get_light_level(void); +extern u8 sub_813B21C(void); +extern u16 get_unknown_box_id(void); +extern void c2_berry_program_update_menu(void); +extern void sub_8035AA4(void); + +// BattleScripts +extern const u8 BattleScript_MoveEnd[]; +extern const u8 BattleScript_NoPPForMove[]; +extern const u8 BattleScript_MagicCoatBounce[]; +extern const u8 BattleScript_TookAttack[]; +extern const u8 BattleScript_SnatchedMove[]; +extern const u8 BattleScript_Pausex20[]; +extern const u8 BattleScript_SubstituteFade[]; +extern const u8 BattleScript_HangedOnMsg[]; +extern const u8 BattleScript_OneHitKOMsg[]; +extern const u8 BattleScript_EnduredMsg[]; +extern const u8 BattleScript_PSNPrevention[]; +extern const u8 BattleScript_BRNPrevention[]; +extern const u8 BattleScript_PRLZPrevention[]; +extern const u8 BattleScript_FlinchPrevention[]; +extern const u8 BattleScript_StatUp[]; +extern const u8 BattleScript_StatDown[]; +extern const u8 BattleScript_NoItemSteal[]; +extern const u8 BattleScript_ItemSteal[]; +extern const u8 BattleScript_RapidSpinAway[]; +extern const u8 BattleScript_TargetPRLZHeal[]; +extern const u8 BattleScript_KnockedOff[]; +extern const u8 BattleScript_StickyHoldActivates[]; +extern const u8 BattleScript_AllStatsUp[]; +extern const u8 BattleScript_AtkDefDown[]; +extern const u8 BattleScript_SAtkDown2[]; +extern const u8 BattleScript_LevelUp[]; +extern const u8 BattleScript_WrapFree[]; +extern const u8 BattleScript_LeechSeedFree[]; +extern const u8 BattleScript_SpikesFree[]; +extern const u8 BattleScript_ButItFailed[]; +extern const u8 BattleScript_ObliviousPreventsAttraction[]; +extern const u8 BattleScript_MistProtected[]; +extern const u8 BattleScript_AbilityNoStatLoss[]; +extern const u8 BattleScript_AbilityNoSpecificStatLoss[]; +extern const u8 BattleScript_TrainerBallBlock[]; +extern const u8 BattleScript_WallyBallThrow[]; +extern const u8 BattleScript_SuccessBallThrow[]; +extern const u8 BattleScript_ShakeBallThrow[]; +extern const u8 BattleScript_FaintAttacker[]; +extern const u8 BattleScript_FaintTarget[]; +extern const u8 BattleScript_DestinyBondTakesLife[]; +extern const u8 BattleScript_GrudgeTakesPp[]; +extern const u8 BattleScript_RageIsBuilding[]; +extern const u8 BattleScript_DefrostedViaFireMove[]; +extern const u8 gUnknown_082DB87D[]; +extern const u8 gUnknown_082DAE90[]; +extern const u8 gUnknown_082DAE59[]; +extern const u8 gUnknown_082DAEC7[]; +extern const u8 BattleScript_MoveEffectSleep[]; +extern const u8 BattleScript_MoveEffectPoison[]; +extern const u8 BattleScript_MoveEffectBurn[]; +extern const u8 BattleScript_MoveEffectFreeze[]; +extern const u8 BattleScript_MoveEffectParalysis[]; +extern const u8 BattleScript_MoveEffectToxic[]; +extern const u8 BattleScript_MoveEffectConfusion[]; +extern const u8 BattleScript_MoveEffectUproar[]; +extern const u8 BattleScript_MoveEffectPayDay[]; +extern const u8 BattleScript_MoveEffectWrap[]; +extern const u8 BattleScript_MoveEffectRecoil33[]; +extern const u8 BattleScript_DampStopsExplosion[]; +extern const u8 BattleScript_MistProtected[]; +extern const u8 BattleScript_AbilityNoStatLoss[]; +extern const u8 BattleScript_AbilityNoSpecificStatLoss[]; +extern const u8 BattleScript_ButItFailed[]; +extern const u8 gUnknown_082DADD8[]; +extern const u8 BattleScript_PrintPayDayMoneyString[]; +extern const u8 BattleScript_SturdyPreventsOHKO[]; +extern const u8 BattleScript_ObliviousPreventsAttraction[]; +extern const u8 BattleScript_PauseEffectivenessSoundResultMsgEndMove[]; +extern const u8 BattleScript_CastformChange[]; +extern const u8 BattleScript_TrainerBallBlock[]; +extern const u8 BattleScript_WallyBallThrow[]; +extern const u8 BattleScript_SuccessBallThrow[]; +extern const u8 BattleScript_ShakeBallThrow[]; +extern const u8 BattleScript_PresentDamageTarget[]; +extern const u8 BattleScript_AlreadyAtFullHp[]; +extern const u8 BattleScript_PresentHealTarget[]; +extern const u8 BattleScript_WrapFree[]; +extern const u8 BattleScript_LeechSeedFree[]; +extern const u8 BattleScript_SpikesFree[]; + +// strings +extern const u8 gText_BattleYesNoChoice[]; + +// read via orr +#define BSScriptRead32(ptr) ((ptr)[0] | (ptr)[1] << 8 | (ptr)[2] << 16 | (ptr)[3] << 24) +#define BSScriptRead16(ptr) ((ptr)[0] | ((ptr)[1] << 8)) +#define BSScriptReadPtr(ptr) ((void *)BSScriptRead32(ptr)) + +// read via add +#define BS2ScriptRead32(ptr) ((ptr)[0] + ((ptr)[1] << 8) + ((ptr)[2] << 16) + ((ptr)[3] << 24)) +#define BS2ScriptRead16(ptr) ((ptr)[0] + ((ptr)[1] << 8)) +#define BS2ScriptReadPtr(ptr) ((void *)BS2ScriptRead32(ptr)) + +#define TARGET_PROTECT_AFFECTED ((gProtectStructs[gBankTarget].protected && gBattleMoves[gCurrentMove].flags & FLAG_PROTECT_AFFECTED)) + +#define TARGET_TURN_DAMAGED (((gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special))) + +// this file's functions +static bool8 IsTwoTurnsMove(u16 move); +static void DestinyBondFlagUpdate(void); +static u8 AttacksThisTurn(u8 bank, u16 move); // Note: returns 1 if it's a charging turn, otherwise 2. +static void CheckWonderGuardAndLevitate(void); +static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8, const u8* BS_ptr); +static bool32 IsMonGettingExpSentOut(void); +static void sub_804F17C(void); +static bool8 sub_804F1CC(void); +static void sub_804F100(void); +static void sub_804F144(void); +static bool8 sub_804F344(void); +static void PutMonIconOnLvlUpBox(void); +static void PutLevelAndGenderOnLvlUpBox(void); + +static void SpriteCB_MonIconOnLvlUpBox(struct Sprite* sprite); + +static void atk00_attackcanceler(void); +static void atk01_accuracycheck(void); +static void atk02_attackstring(void); +static void atk03_ppreduce(void); +static void atk04_critcalc(void); +static void atk05_damagecalc1(void); +static void atk06_typecalc(void); +static void atk07_dmg_adjustment(void); +static void atk08_dmg_adjustment2(void); +static void atk09_attackanimation(void); +static void atk0A_waitanimation(void); +static void atk0B_healthbarupdate(void); +static void atk0C_datahpupdate(void); +static void atk0D_critmessage(void); +static void atk0E_effectiveness_sound(void); +static void atk0F_resultmessage(void); +static void atk10_printstring(void); +static void atk11_printstring_playeronly(void); +static void atk12_waitmessage(void); +static void atk13_printfromtable(void); +static void atk14_printfromtable_playeronly(void); +static void atk15_seteffectwithchance(void); +static void atk16_seteffectprimary(void); +static void atk17_seteffectsecondary(void); +static void atk18_status_effect_clear(void); +static void atk19_faint_pokemon(void); +static void atk1A_faint_animation(void); +static void atk1B_faint_effects_clear(void); +static void atk1C_jumpifstatus(void); +static void atk1D_jumpifstatus2(void); +static void atk1E_jumpifability(void); +static void atk1F_jumpifsideaffecting(void); +static void atk20_jumpifstat(void); +static void atk21_jumpifstatus3(void); +static void atk22_jumpiftype(void); +static void atk23_getexp(void); +static void atk24(void); +static void atk25_move_values_cleanup(void); +static void atk26_set_multihit(void); +static void atk27_decrement_multihit(void); +static void atk28_goto(void); +static void atk29_jumpifbyte(void); +static void atk2A_jumpifhalfword(void); +static void atk2B_jumpifword(void); +static void atk2C_jumpifarrayequal(void); +static void atk2D_jumpifarraynotequal(void); +static void atk2E_setbyte(void); +static void atk2F_addbyte(void); +static void atk30_subbyte(void); +static void atk31_copyarray(void); +static void atk32_copyarray_withindex(void); +static void atk33_orbyte(void); +static void atk34_orhalfword(void); +static void atk35_orword(void); +static void atk36_bicbyte(void); +static void atk37_bichalfword(void); +static void atk38_bicword(void); +static void atk39_pause(void); +static void atk3A_waitstate(void); +static void atk3B_healthbar_update(void); +static void atk3C_return(void); +static void atk3D_end(void); +static void atk3E_end2(void); +static void atk3F_end3(void); +static void atk40_jump_if_move_affected_by_protect(void); +static void atk41_call(void); +static void atk42_jumpiftype2(void); +static void atk43_jumpifabilitypresent(void); +static void atk44(void); +static void atk45_playanimation(void); +static void atk46_playanimation2(void); +static void atk47_setgraphicalstatchangevalues(void); +static void atk48_playstatchangeanimation(void); +static void atk49_moveend(void); +static void atk4A_typecalc2(void); +static void atk4B_return_atk_to_ball(void); +static void atk4C_copy_poke_data(void); +static void atk4D_switch_data_update(void); +static void atk4E_switchin_anim(void); +static void atk4F_jump_if_cannot_switch(void); +static void atk50_openpartyscreen(void); +static void atk51_switch_handle_order(void); +static void atk52_switch_in_effects(void); +static void atk53_trainer_slide(void); +static void atk54_effectiveness_sound(void); +static void atk55_play_sound(void); +static void atk56_fainting_cry(void); +static void atk57(void); +static void atk58_return_to_ball(void); +static void atk59_learnmove_inbattle(void); +static void atk5A_yesnoboxlearnmove(void); +static void atk5B_yesnoboxstoplearningmove(void); +static void atk5C_hitanimation(void); +static void atk5D_getmoneyreward(void); +static void atk5E_8025A70(void); +static void atk5F_8025B24(void); +static void atk60_increment_gamestat(void); +static void atk61_8025BA4(void); +static void atk62_08025C6C(void); +static void atk63_jumptorandomattack(void); +static void atk64_statusanimation(void); +static void atk65_status2animation(void); +static void atk66_chosenstatusanimation(void); +static void atk67_yesnobox(void); +static void atk68_80246A0(void); +static void atk69_dmg_adjustment3(void); +static void atk6A_removeitem(void); +static void atk6B_atknameinbuff1(void); +static void atk6C_draw_lvlupbox(void); +static void atk6D_reset_sentpokes_value(void); +static void atk6E_set_atk_to_player0(void); +static void atk6F_set_visible(void); +static void atk70_record_last_used_ability(void); +static void atk71_buffer_move_to_learn(void); +static void atk72_jump_if_can_run_frombattle(void); +static void atk73_hp_thresholds(void); +static void atk74_hp_thresholds2(void); +static void atk75_item_effect_on_opponent(void); +static void atk76_various(void); +static void atk77_set_protect_like(void); +static void atk78_faintifabilitynotdamp(void); +static void atk79_setatkhptozero(void); +static void atk7A_jumpwhiletargetvalid(void); +static void atk7B_healhalfHP_if_possible(void); +static void atk7C_trymirrormove(void); +static void atk7D_set_rain(void); +static void atk7E_setreflect(void); +static void atk7F_setseeded(void); +static void atk80_manipulatedamage(void); +static void atk81_setrest(void); +static void atk82_jumpifnotfirstturn(void); +static void atk83_nop(void); +static void atk84_jump_if_cant_sleep(void); +static void atk85_stockpile(void); +static void atk86_stockpiletobasedamage(void); +static void atk87_stockpiletohpheal(void); +static void atk88_negativedamage(void); +static void atk89_statbuffchange(void); +static void atk8A_normalisebuffs(void); +static void atk8B_setbide(void); +static void atk8C_confuseifrepeatingattackends(void); +static void atk8D_setmultihit_counter(void); +static void atk8E_init_multihit_string(void); +static void atk8F_forcerandomswitch(void); +static void atk90_conversion_type_change(void); +static void atk91_givepaydaymoney(void); +static void atk92_setlightscreen(void); +static void atk93_ko_move(void); +static void atk94_damagetohalftargethp(void); +static void atk95_setsandstorm(void); +static void atk96_weatherdamage(void); +static void atk97_try_infatuation(void); +static void atk98_status_icon_update(void); +static void atk99_setmist(void); +static void atk9A_set_focusenergy(void); +static void atk9B_transformdataexecution(void); +static void atk9C_set_substitute(void); +static void atk9D_mimicattackcopy(void); +static void atk9E_metronome(void); +static void atk9F_dmgtolevel(void); +static void atkA0_psywavedamageeffect(void); +static void atkA1_counterdamagecalculator(void); +static void atkA2_mirrorcoatdamagecalculator(void); +static void atkA3_disablelastusedattack(void); +static void atkA4_setencore(void); +static void atkA5_painsplitdmgcalc(void); +static void atkA6_settypetorandomresistance(void); +static void atkA7_setalwayshitflag(void); +static void atkA8_copymovepermanently(void); +static void atkA9_sleeptalk_choose_move(void); +static void atkAA_set_destinybond(void); +static void atkAB_DestinyBondFlagUpdate(void); +static void atkAC_remaininghptopower(void); +static void atkAD_spite_ppreduce(void); +static void atkAE_heal_party_status(void); +static void atkAF_cursetarget(void); +static void atkB0_set_spikes(void); +static void atkB1_set_foresight(void); +static void atkB2_setperishsong(void); +static void atkB3_rolloutdamagecalculation(void); +static void atkB4_jumpifconfusedandstatmaxed(void); +static void atkB5_furycuttercalc(void); +static void atkB6_happinesstodamagecalculation(void); +static void atkB7_presentdamagecalculation(void); +static void atkB8_set_safeguard(void); +static void atkB9_magnitudedamagecalculation(void); +static void atkBA_jumpifnopursuitswitchdmg(void); +static void atkBB_setsunny(void); +static void atkBC_maxattackhalvehp(void); +static void atkBD_copyfoestats(void); +static void atkBE_rapidspinfree(void); +static void atkBF_set_defense_curl(void); +static void atkC0_recoverbasedonsunlight(void); +static void atkC1_hidden_power(void); +static void atkC2_selectnexttarget(void); +static void atkC3_setfutureattack(void); +static void atkC4_beat_up(void); +static void atkC5_setsemiinvulnerablebit(void); +static void atkC6_clearsemiinvulnerablebit(void); +static void atkC7_setminimize(void); +static void atkC8_sethail(void); +static void atkC9_jumpifattackandspecialattackcannotfall(void); +static void atkCA_setforcedtarget(void); +static void atkCB_setcharge(void); +static void atkCC_callterrainattack(void); +static void atkCD_cureifburnedparalysedorpoisoned(void); +static void atkCE_settorment(void); +static void atkCF_jumpifnodamage(void); +static void atkD0_settaunt(void); +static void atkD1_set_helpinghand(void); +static void atkD2_swap_items(void); +static void atkD3_copy_ability(void); +static void atkD4_wish_effect(void); +static void atkD5_setroots(void); +static void atkD6_doubledamagedealtifdamaged(void); +static void atkD7_setyawn(void); +static void atkD8_setdamagetohealthdifference(void); +static void atkD9_scaledamagebyhealthratio(void); +static void atkDA_abilityswap(void); +static void atkDB_imprisoneffect(void); +static void atkDC_setgrudge(void); +static void atkDD_weightdamagecalculation(void); +static void atkDE_asistattackselect(void); +static void atkDF_setmagiccoat(void); +static void atkE0_setstealstatchange(void); +static void atkE1_intimidate_string_loader(void); +static void atkE2_switchout_abilities(void); +static void atkE3_jumpifhasnohp(void); +static void atkE4_getsecretpowereffect(void); +static void atkE5_pickup(void); +static void atkE6_castform_change_animation(void); +static void atkE7_castform_data_change(void); +static void atkE8_settypebasedhalvers(void); +static void atkE9_setweatherballtype(void); +static void atkEA_recycleitem(void); +static void atkEB_settypetoterrain(void); +static void atkEC_pursuit_sth(void); +static void atkED_802B4B4(void); +static void atkEE_removelightscreenreflect(void); +static void atkEF_pokeball_catch_calculation(void); +static void atkF0_give_caught_mon(void); +static void atkF1_set_caught_mon_dex_flags(void); +static void atkF2_display_dex_info(void); +static void atkF3_nickname_caught_poke(void); +static void atkF4_subattackerhpbydmg(void); +static void atkF5_removeattackerstatus1(void); +static void atkF6_802BF48(void); +static void atkF7_802BF54(void); +static void atkF8_trainer_slide_back(void); + +void (* const gBattleScriptingCommandsTable[])(void) = +{ + atk00_attackcanceler, + atk01_accuracycheck, + atk02_attackstring, + atk03_ppreduce, + atk04_critcalc, + atk05_damagecalc1, + atk06_typecalc, + atk07_dmg_adjustment, + atk08_dmg_adjustment2, + atk09_attackanimation, + atk0A_waitanimation, + atk0B_healthbarupdate, + atk0C_datahpupdate, + atk0D_critmessage, + atk0E_effectiveness_sound, + atk0F_resultmessage, + atk10_printstring, + atk11_printstring_playeronly, + atk12_waitmessage, + atk13_printfromtable, + atk14_printfromtable_playeronly, + atk15_seteffectwithchance, + atk16_seteffectprimary, + atk17_seteffectsecondary, + atk18_status_effect_clear, + atk19_faint_pokemon, + atk1A_faint_animation, + atk1B_faint_effects_clear, + atk1C_jumpifstatus, + atk1D_jumpifstatus2, + atk1E_jumpifability, + atk1F_jumpifsideaffecting, + atk20_jumpifstat, + atk21_jumpifstatus3, + atk22_jumpiftype, + atk23_getexp, + atk24, + atk25_move_values_cleanup, + atk26_set_multihit, + atk27_decrement_multihit, + atk28_goto, + atk29_jumpifbyte, + atk2A_jumpifhalfword, + atk2B_jumpifword, + atk2C_jumpifarrayequal, + atk2D_jumpifarraynotequal, + atk2E_setbyte, + atk2F_addbyte, + atk30_subbyte, + atk31_copyarray, + atk32_copyarray_withindex, + atk33_orbyte, + atk34_orhalfword, + atk35_orword, + atk36_bicbyte, + atk37_bichalfword, + atk38_bicword, + atk39_pause, + atk3A_waitstate, + atk3B_healthbar_update, + atk3C_return, + atk3D_end, + atk3E_end2, + atk3F_end3, + atk40_jump_if_move_affected_by_protect, + atk41_call, + atk42_jumpiftype2, + atk43_jumpifabilitypresent, + atk44, + atk45_playanimation, + atk46_playanimation2, + atk47_setgraphicalstatchangevalues, + atk48_playstatchangeanimation, + atk49_moveend, + atk4A_typecalc2, + atk4B_return_atk_to_ball, + atk4C_copy_poke_data, + atk4D_switch_data_update, + atk4E_switchin_anim, + atk4F_jump_if_cannot_switch, + atk50_openpartyscreen, + atk51_switch_handle_order, + atk52_switch_in_effects, + atk53_trainer_slide, + atk54_effectiveness_sound, + atk55_play_sound, + atk56_fainting_cry, + atk57, + atk58_return_to_ball, + atk59_learnmove_inbattle, + atk5A_yesnoboxlearnmove, + atk5B_yesnoboxstoplearningmove, + atk5C_hitanimation, + atk5D_getmoneyreward, + atk5E_8025A70, + atk5F_8025B24, + atk60_increment_gamestat, + atk61_8025BA4, + atk62_08025C6C, + atk63_jumptorandomattack, + atk64_statusanimation, + atk65_status2animation, + atk66_chosenstatusanimation, + atk67_yesnobox, + atk68_80246A0, + atk69_dmg_adjustment3, + atk6A_removeitem, + atk6B_atknameinbuff1, + atk6C_draw_lvlupbox, + atk6D_reset_sentpokes_value, + atk6E_set_atk_to_player0, + atk6F_set_visible, + atk70_record_last_used_ability, + atk71_buffer_move_to_learn, + atk72_jump_if_can_run_frombattle, + atk73_hp_thresholds, + atk74_hp_thresholds2, + atk75_item_effect_on_opponent, + atk76_various, + atk77_set_protect_like, + atk78_faintifabilitynotdamp, + atk79_setatkhptozero, + atk7A_jumpwhiletargetvalid, + atk7B_healhalfHP_if_possible, + atk7C_trymirrormove, + atk7D_set_rain, + atk7E_setreflect, + atk7F_setseeded, + atk80_manipulatedamage, + atk81_setrest, + atk82_jumpifnotfirstturn, + atk83_nop, + atk84_jump_if_cant_sleep, + atk85_stockpile, + atk86_stockpiletobasedamage, + atk87_stockpiletohpheal, + atk88_negativedamage, + atk89_statbuffchange, + atk8A_normalisebuffs, + atk8B_setbide, + atk8C_confuseifrepeatingattackends, + atk8D_setmultihit_counter, + atk8E_init_multihit_string, + atk8F_forcerandomswitch, + atk90_conversion_type_change, + atk91_givepaydaymoney, + atk92_setlightscreen, + atk93_ko_move, + atk94_damagetohalftargethp, + atk95_setsandstorm, + atk96_weatherdamage, + atk97_try_infatuation, + atk98_status_icon_update, + atk99_setmist, + atk9A_set_focusenergy, + atk9B_transformdataexecution, + atk9C_set_substitute, + atk9D_mimicattackcopy, + atk9E_metronome, + atk9F_dmgtolevel, + atkA0_psywavedamageeffect, + atkA1_counterdamagecalculator, + atkA2_mirrorcoatdamagecalculator, + atkA3_disablelastusedattack, + atkA4_setencore, + atkA5_painsplitdmgcalc, + atkA6_settypetorandomresistance, + atkA7_setalwayshitflag, + atkA8_copymovepermanently, + atkA9_sleeptalk_choose_move, + atkAA_set_destinybond, + atkAB_DestinyBondFlagUpdate, + atkAC_remaininghptopower, + atkAD_spite_ppreduce, + atkAE_heal_party_status, + atkAF_cursetarget, + atkB0_set_spikes, + atkB1_set_foresight, + atkB2_setperishsong, + atkB3_rolloutdamagecalculation, + atkB4_jumpifconfusedandstatmaxed, + atkB5_furycuttercalc, + atkB6_happinesstodamagecalculation, + atkB7_presentdamagecalculation, + atkB8_set_safeguard, + atkB9_magnitudedamagecalculation, + atkBA_jumpifnopursuitswitchdmg, + atkBB_setsunny, + atkBC_maxattackhalvehp, + atkBD_copyfoestats, + atkBE_rapidspinfree, + atkBF_set_defense_curl, + atkC0_recoverbasedonsunlight, + atkC1_hidden_power, + atkC2_selectnexttarget, + atkC3_setfutureattack, + atkC4_beat_up, + atkC5_setsemiinvulnerablebit, + atkC6_clearsemiinvulnerablebit, + atkC7_setminimize, + atkC8_sethail, + atkC9_jumpifattackandspecialattackcannotfall, + atkCA_setforcedtarget, + atkCB_setcharge, + atkCC_callterrainattack, + atkCD_cureifburnedparalysedorpoisoned, + atkCE_settorment, + atkCF_jumpifnodamage, + atkD0_settaunt, + atkD1_set_helpinghand, + atkD2_swap_items, + atkD3_copy_ability, + atkD4_wish_effect, + atkD5_setroots, + atkD6_doubledamagedealtifdamaged, + atkD7_setyawn, + atkD8_setdamagetohealthdifference, + atkD9_scaledamagebyhealthratio, + atkDA_abilityswap, + atkDB_imprisoneffect, + atkDC_setgrudge, + atkDD_weightdamagecalculation, + atkDE_asistattackselect, + atkDF_setmagiccoat, + atkE0_setstealstatchange, + atkE1_intimidate_string_loader, + atkE2_switchout_abilities, + atkE3_jumpifhasnohp, + atkE4_getsecretpowereffect, + atkE5_pickup, + atkE6_castform_change_animation, + atkE7_castform_data_change, + atkE8_settypebasedhalvers, + atkE9_setweatherballtype, + atkEA_recycleitem, + atkEB_settypetoterrain, + atkEC_pursuit_sth, + atkED_802B4B4, + atkEE_removelightscreenreflect, + atkEF_pokeball_catch_calculation, + atkF0_give_caught_mon, + atkF1_set_caught_mon_dex_flags, + atkF2_display_dex_info, + atkF3_nickname_caught_poke, + atkF4_subattackerhpbydmg, + atkF5_removeattackerstatus1, + atkF6_802BF48, + atkF7_802BF54, + atkF8_trainer_slide_back +}; + +struct StatFractions +{ + u8 dividend; + u8 divisor; +}; + +static const struct StatFractions sAccuracyStageRatios[] = +{ + { 33, 100}, // -6 + { 36, 100}, // -5 + { 43, 100}, // -4 + { 50, 100}, // -3 + { 60, 100}, // -2 + { 75, 100}, // -1 + { 1, 1}, // 0 + {133, 100}, // +1 + {166, 100}, // +2 + { 2, 1}, // +3 + {233, 100}, // +4 + {133, 50}, // +5 + { 3, 1}, // +6 +}; + +// The chance is 1/N for each stage. +static const u16 sCriticalHitChance[] = {16, 8, 4, 3, 2}; + +static const u32 sStatusFlagsForMoveEffects[] = +{ + 0x00000000, + STATUS_SLEEP, + STATUS_POISON, + STATUS_BURN, + STATUS_FREEZE, + STATUS_PARALYSIS, + STATUS_TOXIC_POISON, + STATUS2_CONFUSION, + STATUS2_FLINCHED, + 0x00000000, + STATUS2_UPROAR, + 0x00000000, + STATUS2_MULTIPLETURNS, + STATUS2_WRAPPED, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + STATUS2_RECHARGE, + 0x00000000, + 0x00000000, + STATUS2_ESCAPE_PREVENTION, + 0x08000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + STATUS2_LOCK_CONFUSE, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000 +}; + +static const u8* const sMoveEffectBS_Ptrs[] = +{ + BattleScript_MoveEffectSleep, // 0 + BattleScript_MoveEffectSleep, // MOVE_EFFECT_SLEEP + BattleScript_MoveEffectPoison, // MOVE_EFFECT_POISON + BattleScript_MoveEffectBurn, // MOVE_EFFECT_BURN + BattleScript_MoveEffectFreeze, // MOVE_EFFECT_FREEZE + BattleScript_MoveEffectParalysis, // MOVE_EFFECT_PARALYSIS + BattleScript_MoveEffectToxic, // MOVE_EFFECT_TOXIC + BattleScript_MoveEffectConfusion, // MOVE_EFFECT_CONFUSION + BattleScript_MoveEffectSleep, // MOVE_EFFECT_FLINCH + BattleScript_MoveEffectSleep, // MOVE_EFFECT_TRI_ATTACK + BattleScript_MoveEffectUproar, // MOVE_EFFECT_UPROAR + BattleScript_MoveEffectPayDay, // MOVE_EFFECT_PAYDAY + BattleScript_MoveEffectSleep, // MOVE_EFFECT_CHARGING + BattleScript_MoveEffectWrap, // MOVE_EFFECT_WRAP + BattleScript_MoveEffectRecoil33, // MOVE_EFFECT_RECOIL_25 + BattleScript_MoveEffectSleep, // MOVE_EFFECT_ATK_PLUS_1 + BattleScript_MoveEffectSleep, // MOVE_EFFECT_DEF_PLUS_1 + BattleScript_MoveEffectSleep, // MOVE_EFFECT_SPD_PLUS_1 + BattleScript_MoveEffectSleep, // MOVE_EFFECT_SP_ATK_PLUS_1 + BattleScript_MoveEffectSleep, // MOVE_EFFECT_SP_DEF_PLUS_1 + BattleScript_MoveEffectSleep, // MOVE_EFFECT_ACC_PLUS_1 + BattleScript_MoveEffectSleep, // MOVE_EFFECT_EVS_PLUS_1 + BattleScript_MoveEffectSleep, // MOVE_EFFECT_ATK_MINUS_1 + BattleScript_MoveEffectSleep, // MOVE_EFFECT_DEF_MINUS_1 + BattleScript_MoveEffectSleep, // MOVE_EFFECT_SPD_MINUS_1 + BattleScript_MoveEffectSleep, // MOVE_EFFECT_SP_ATK_MINUS_1 + BattleScript_MoveEffectSleep, // MOVE_EFFECT_SP_DEF_MINUS_1 + BattleScript_MoveEffectSleep, // MOVE_EFFECT_ACC_MINUS_1 + BattleScript_MoveEffectSleep, // MOVE_EFFECT_EVS_MINUS_1 + BattleScript_MoveEffectSleep, // MOVE_EFFECT_RECHARGE + BattleScript_MoveEffectSleep, // MOVE_EFFECT_RAGE + BattleScript_MoveEffectSleep, // MOVE_EFFECT_STEAL_ITEM + BattleScript_MoveEffectSleep, // MOVE_EFFECT_PREVENT_ESCAPE + BattleScript_MoveEffectSleep, // MOVE_EFFECT_NIGHTMARE + BattleScript_MoveEffectSleep, // MOVE_EFFECT_ALL_STATS_UP + BattleScript_MoveEffectSleep, // MOVE_EFFECT_RAPIDSPIN + BattleScript_MoveEffectSleep, // MOVE_EFFECT_REMOVE_PARALYSIS + BattleScript_MoveEffectSleep, // MOVE_EFFECT_ATK_DEF_DOWN + BattleScript_MoveEffectRecoil33, // MOVE_EFFECT_RECOIL_33_PARALYSIS +}; + +static const struct WindowTemplate sUnusedWinTemplate = {0, 1, 3, 7, 0xF, 0x1F, 0x3F}; + +static const u16 sUnknown_0831C2C8[] = INCBIN_U16("graphics/battle_interface/unk_battlebox.gbapal"); +static const u8 sUnknown_0831C2E8[] = INCBIN_U8("graphics/battle_interface/unk_battlebox.4bpp.lz"); + +// unused +static const u8 sRubyLevelUpStatBoxStats[] = +{ + MON_DATA_MAX_HP, MON_DATA_SPATK, MON_DATA_ATK, + MON_DATA_SPDEF, MON_DATA_DEF, MON_DATA_SPD +}; + +#define MON_ICON_LVLUP_BOX_TAG 0xD75A + +static const struct OamData sOamData_MonIconOnLvlUpBox = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 2, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct SpriteTemplate sSpriteTemplate_MonIconOnLvlUpBox = +{ + .tileTag = MON_ICON_LVLUP_BOX_TAG, + .paletteTag = MON_ICON_LVLUP_BOX_TAG, + .oam = &sOamData_MonIconOnLvlUpBox, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_MonIconOnLvlUpBox +}; + +static const u16 sProtectSuccessRates[] = {USHRT_MAX, USHRT_MAX / 2, USHRT_MAX / 4, USHRT_MAX / 8}; + +#define MIMIC_FORBIDDEN_END 0xFFFE +#define METRONOME_FORBIDDEN_END 0xFFFF +#define ASSIST_FORBIDDEN_END 0xFFFF + +static const u16 sMovesForbiddenToCopy[] = +{ + MOVE_METRONOME, + MOVE_STRUGGLE, + MOVE_SKETCH, + MOVE_MIMIC, + MIMIC_FORBIDDEN_END, + MOVE_COUNTER, + MOVE_MIRROR_COAT, + MOVE_PROTECT, + MOVE_DETECT, + MOVE_ENDURE, + MOVE_DESTINY_BOND, + MOVE_SLEEP_TALK, + MOVE_THIEF, + MOVE_FOLLOW_ME, + MOVE_SNATCH, + MOVE_HELPING_HAND, + MOVE_COVET, + MOVE_TRICK, + MOVE_FOCUS_PUNCH, + METRONOME_FORBIDDEN_END +}; + +static const u8 sFlailHpScaleToPowerTable[] = +{ + 1, 200, + 4, 150, + 9, 100, + 16, 80, + 32, 40, + 48, 20 +}; + +static const u16 sNaturePowerMoves[] = +{ + MOVE_STUN_SPORE, + MOVE_RAZOR_LEAF, + MOVE_EARTHQUAKE, + MOVE_HYDRO_PUMP, + MOVE_SURF, + MOVE_BUBBLE_BEAM, + MOVE_ROCK_SLIDE, + MOVE_SHADOW_BALL, + MOVE_SWIFT, + MOVE_SWIFT +}; + +// format: min. weight (hectograms), base power +static const u16 sWeightToDamageTable[] = +{ + 100, 20, + 250, 40, + 500, 60, + 1000, 80, + 2000, 100, + 0xFFFF, 0xFFFF +}; + +static const u16 sPickupItems[] = +{ + ITEM_POTION, + ITEM_ANTIDOTE, + ITEM_SUPER_POTION, + ITEM_GREAT_BALL, + ITEM_REPEL, + ITEM_ESCAPE_ROPE, + ITEM_X_ATTACK, + ITEM_FULL_HEAL, + ITEM_ULTRA_BALL, + ITEM_HYPER_POTION, + ITEM_RARE_CANDY, + ITEM_PROTEIN, + ITEM_REVIVE, + ITEM_HP_UP, + ITEM_FULL_RESTORE, + ITEM_MAX_REVIVE, + ITEM_PP_UP, + ITEM_MAX_ELIXIR, +}; + +static const u16 sRarePickupItems[] = +{ + ITEM_HYPER_POTION, + ITEM_NUGGET, + ITEM_KINGS_ROCK, + ITEM_FULL_RESTORE, + ITEM_ETHER, + ITEM_WHITE_HERB, + ITEM_TM44, + ITEM_ELIXIR, + ITEM_TM01, + ITEM_LEFTOVERS, + ITEM_TM26, +}; + +static const u8 sPickupProbabilities[] = +{ + 30, 40, 50, 60, 70, 80, 90, 94, 98 +}; + +static const u8 sTerrainToType[] = +{ + TYPE_GRASS, // tall grass + TYPE_GRASS, // long grass + TYPE_GROUND, // sand + TYPE_WATER, // underwater + TYPE_WATER, // water + TYPE_WATER, // pond water + TYPE_ROCK, // rock + TYPE_ROCK, // cave + TYPE_NORMAL, // building + TYPE_NORMAL, // plain +}; + +static const u8 sBallCatchBonuses[] = +{ + 20, 15, 10, 15 // Ultra, Great, Poke, Safari +}; + +// could be a 2d array or a struct +const ALIGNED(4) u8 gUnknown_0831C494[] = +{ + 0x3d, 0x44, 0x3d, 0x44, 0x14, 0x2d, 0x54, 0x5c, + 0x46, 0x55, 0x20, 0x5c, 0x26, 0x45, 0x46, 0x55, + 0x14, 0x5a, 0x46, 0x5c, 0x1e, 0x32, 0x20, 0x5a, + 0x38, 0x4e, 0x38, 0x4e, 0x19, 0x28, 0x4b, 0x5a, + 0x45, 0x4b, 0x1c, 0x53, 0x23, 0x2d, 0x1d, 0x23, + 0x3e, 0x48, 0x1e, 0x32, 0x3a, 0x5f, 0x58, 0x5e, + 0x22, 0x2d, 0x1d, 0x28, 0x23, 0x28, 0x23, 0x5f, + 0x38, 0x4e, 0x38, 0x4e, 0x23, 0x50, 0x22, 0x5e, + 0x2c, 0x5e, 0x22, 0x28, 0x38, 0x4e, 0x38, 0x4e, + 0x1e, 0x58, 0x1e, 0x58, 0x1e, 0x2b, 0x1b, 0x21, + 0x28, 0x5a, 0x19, 0x57, 0x12, 0x58, 0x5a, 0x5f, + 0x58, 0x5e, 0x16, 0x2a, 0x2a, 0x5c, 0x2a, 0x2f, + 0x38, 0x4e, 0x38, 0x4e +}; + +static const u8 sUnknown_0831C4F8[] = +{ + 0x03, 0x00, 0x01, 0x00, 0x00, 0x01, 0x03, 0x00, + 0x01, 0x02, 0x02, 0x00, 0x03, 0x01, 0x03, 0x01, + 0x02, 0x03, 0x03, 0x02, 0x01, 0x00, 0x02, 0x02, + 0x03, 0x00, 0x00, 0x00 +}; + +static void atk00_attackcanceler(void) +{ + s32 i; + + if (gBattleOutcome) + { + gFightStateTracker = 0xC; + return; + } + if (gBattleMons[gBankAttacker].hp == 0 && !(gHitMarker & HITMARKER_NO_ATTACKSTRING)) + { + gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; + gBattlescriptCurrInstr = BattleScript_MoveEnd; + return; + } + if (AtkCanceller_UnableToUseMove()) + return; + if (AbilityBattleEffects(ABILITYEFFECT_MOVES_BLOCK, gBankTarget, 0, 0, 0)) + return; + if (!gBattleMons[gBankAttacker].pp[gCurrMovePos] && gCurrentMove != MOVE_STRUGGLE && !(gHitMarker & 0x800200) + && !(gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS)) + { + gBattlescriptCurrInstr = BattleScript_NoPPForMove; + gBattleMoveFlags |= MOVESTATUS_MISSED; + return; + } + + gHitMarker &= ~(HITMARKER_x800000); + + if (!(gHitMarker & HITMARKER_OBEYS) && !(gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS)) + { + i = IsPokeDisobedient(); // why use the 'i' variable...? + switch (i) + { + case 0: + break; + case 2: + gHitMarker |= HITMARKER_OBEYS; + return; + default: + gBattleMoveFlags |= MOVESTATUS_MISSED; + return; + } + } + + gHitMarker |= HITMARKER_OBEYS; + + if (gProtectStructs[gBankTarget].bounceMove && gBattleMoves[gCurrentMove].flags & FLAG_MAGICCOAT_AFFECTED) + { + PressurePPLose(gBankAttacker, gBankTarget, MOVE_MAGIC_COAT); + gProtectStructs[gBankTarget].bounceMove = 0; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_MagicCoatBounce; + return; + } + + for (i = 0; i < gNoOfAllBanks; i++) + { + if ((gProtectStructs[gTurnOrder[i]].stealMove) && gBattleMoves[gCurrentMove].flags & FLAG_SNATCH_AFFECTED) + { + PressurePPLose(gBankAttacker, gTurnOrder[i], MOVE_SNATCH); + gProtectStructs[gTurnOrder[i]].stealMove = 0; + gBattleScripting.bank = gTurnOrder[i]; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_SnatchedMove; + return; + } + } + + if (gSpecialStatuses[gBankTarget].lightningRodRedirected) + { + gSpecialStatuses[gBankTarget].lightningRodRedirected = 0; + gLastUsedAbility = ABILITY_LIGHTNING_ROD; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_TookAttack; + RecordAbilityBattle(gBankTarget, gLastUsedAbility); + } + else if (TARGET_PROTECT_AFFECTED + && (gCurrentMove != MOVE_CURSE || (gBattleMons[gBankAttacker].type1 == TYPE_GHOST || gBattleMons[gBankAttacker].type2 == TYPE_GHOST)) + && ((!IsTwoTurnsMove(gCurrentMove) || (gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS)))) + { + CancelMultiTurnMoves(gBankAttacker); + gBattleMoveFlags |= MOVESTATUS_MISSED; + gUnknown_02024250[gBankTarget] = 0; + gUnknown_02024258[gBankTarget] = 0; + gBattleCommunication[6] = 1; + gBattlescriptCurrInstr++; + } + else + { + gBattlescriptCurrInstr++; + } +} + +static void JumpIfMoveFailed(u8 adder, u16 move) +{ + const void* BS_ptr = gBattlescriptCurrInstr + adder; + if (gBattleMoveFlags & MOVESTATUS_NOEFFECT) + { + gUnknown_02024250[gBankTarget] = 0; + gUnknown_02024258[gBankTarget] = 0; + BS_ptr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } + else + { + DestinyBondFlagUpdate(); + if (AbilityBattleEffects(ABILITYEFFECT_ABSORBING, gBankTarget, 0, 0, move)) + return; + } + gBattlescriptCurrInstr = BS_ptr; +} + +static void atk40_jump_if_move_affected_by_protect(void) +{ + if (TARGET_PROTECT_AFFECTED) + { + gBattleMoveFlags |= MOVESTATUS_MISSED; + JumpIfMoveFailed(5, 0); + gBattleCommunication[6] = 1; + } + else + { + gBattlescriptCurrInstr += 5; + } +} + +bool8 JumpIfMoveAffectedByProtect(u16 move) +{ + bool8 affected = FALSE; + if (TARGET_PROTECT_AFFECTED) + { + gBattleMoveFlags |= MOVESTATUS_MISSED; + JumpIfMoveFailed(7, move); + gBattleCommunication[6] = 1; + affected = TRUE; + } + return affected; +} + +bool8 AccuracyCalcHelper(u16 move) +{ + if (gStatuses3[gBankTarget] & STATUS3_ALWAYS_HITS && gDisableStructs[gBankTarget].bankWithSureHit == gBankAttacker) + { + JumpIfMoveFailed(7, move); + return TRUE; + } + + if (!(gHitMarker & HITMARKER_IGNORE_ON_AIR) && gStatuses3[gBankTarget] & STATUS3_ON_AIR) + { + gBattleMoveFlags |= MOVESTATUS_MISSED; + JumpIfMoveFailed(7, move); + return TRUE; + } + + gHitMarker &= ~HITMARKER_IGNORE_ON_AIR; + + if (!(gHitMarker & HITMARKER_IGNORE_UNDERGROUND) && gStatuses3[gBankTarget] & STATUS3_UNDERGROUND) + { + gBattleMoveFlags |= MOVESTATUS_MISSED; + JumpIfMoveFailed(7, move); + return TRUE; + } + + gHitMarker &= ~HITMARKER_IGNORE_UNDERGROUND; + + if (!(gHitMarker & HITMARKER_IGNORE_UNDERWATER) && gStatuses3[gBankTarget] & STATUS3_UNDERWATER) + { + gBattleMoveFlags |= MOVESTATUS_MISSED; + JumpIfMoveFailed(7, move); + return TRUE; + } + + gHitMarker &= ~HITMARKER_IGNORE_UNDERWATER; + + if ((WEATHER_HAS_EFFECT && (gBattleWeather & WEATHER_RAIN_ANY) && gBattleMoves[move].effect == EFFECT_THUNDER) + || (gBattleMoves[move].effect == EFFECT_ALWAYS_HIT || gBattleMoves[move].effect == EFFECT_VITAL_THROW)) + { + JumpIfMoveFailed(7, move); + return TRUE; + } + + return FALSE; +} + +static void atk01_accuracycheck(void) +{ + u16 move = BS2ScriptRead16(gBattlescriptCurrInstr + 5); + + if (move == 0xFFFE || move == 0xFFFF) + { + if (gStatuses3[gBankTarget] & STATUS3_ALWAYS_HITS && move == 0xFFFF && gDisableStructs[gBankTarget].bankWithSureHit == gBankAttacker) + gBattlescriptCurrInstr += 7; + else if (gStatuses3[gBankTarget] & (STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER)) + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + else if (!JumpIfMoveAffectedByProtect(0)) + gBattlescriptCurrInstr += 7; + } + else + { + u8 type, moveAcc, holdEffect, quality; + s8 buff; + u16 calc; + + if (move == 0) + move = gCurrentMove; + + GET_MOVE_TYPE(move, type); + + if (JumpIfMoveAffectedByProtect(move)) + return; + if (AccuracyCalcHelper(move)) + return; + + if (gBattleMons[gBankTarget].status2 & STATUS2_FORESIGHT) + { + u8 acc = gBattleMons[gBankAttacker].statStages[STAT_STAGE_ACC]; + buff = acc; + } + else + { + u8 acc = gBattleMons[gBankAttacker].statStages[STAT_STAGE_ACC]; + buff = acc + 6 - gBattleMons[gBankTarget].statStages[STAT_STAGE_EVASION]; + } + + if (buff < 0) + buff = 0; + if (buff > 0xC) + buff = 0xC; + + moveAcc = gBattleMoves[move].accuracy; + // check Thunder on sunny weather + if (WEATHER_HAS_EFFECT && gBattleWeather & WEATHER_SUN_ANY && gBattleMoves[move].effect == EFFECT_THUNDER) + moveAcc = 50; + + calc = sAccuracyStageRatios[buff].dividend * moveAcc; + calc /= sAccuracyStageRatios[buff].divisor; + + if (gBattleMons[gBankAttacker].ability == ABILITY_COMPOUND_EYES) + calc = (calc * 130) / 100; // 1.3 compound eyes boost + if (WEATHER_HAS_EFFECT && gBattleMons[gBankTarget].ability == ABILITY_SAND_VEIL && gBattleWeather & WEATHER_SANDSTORM_ANY) + calc = (calc * 80) / 100; // 1.2 sand veil loss + if (gBattleMons[gBankAttacker].ability == ABILITY_HUSTLE && type < 9) + calc = (calc * 80) / 100; // 1.2 hustle loss + + if (gBattleMons[gBankTarget].item == ITEM_ENIGMA_BERRY) + { + holdEffect = gEnigmaBerries[gBankTarget].holdEffect; + quality = gEnigmaBerries[gBankTarget].holdEffectParam; + } + else + { + holdEffect = ItemId_GetHoldEffect(gBattleMons[gBankTarget].item); + quality = ItemId_GetHoldEffectParam(gBattleMons[gBankTarget].item); + } + + gStringBank = gBankTarget; + + if (holdEffect == HOLD_EFFECT_EVASION_UP) + calc = (calc * (100 - quality)) / 100; + + // final calculation + if ((Random() % 100 + 1) > calc) + { + gBattleMoveFlags |= MOVESTATUS_MISSED; + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && + (gBattleMoves[move].target == MOVE_TARGET_BOTH || gBattleMoves[move].target == MOVE_TARGET_FOES_AND_ALLY)) + gBattleCommunication[6] = 2; + else + gBattleCommunication[6] = 0; + + CheckWonderGuardAndLevitate(); + } + JumpIfMoveFailed(7, move); + } +} + +static void atk02_attackstring(void) +{ + if (gBattleExecBuffer) + return; + if (!(gHitMarker & (HITMARKER_NO_ATTACKSTRING | HITMARKER_ATTACKSTRING_PRINTED))) + { + PrepareStringBattle(4, gBankAttacker); + gHitMarker |= HITMARKER_ATTACKSTRING_PRINTED; + } + gBattlescriptCurrInstr++; + gBattleCommunication[MSG_DISPLAY] = 0; +} + +static void atk03_ppreduce(void) +{ + s32 ppToDeduct = 1; + + if (gBattleExecBuffer) + return; + + if (!gSpecialStatuses[gBankAttacker].flag20) + { + switch (gBattleMoves[gCurrentMove].target) + { + case MOVE_TARGET_FOES_AND_ALLY: + ppToDeduct += AbilityBattleEffects(ABILITYEFFECT_COUNT_ON_FIELD, gBankAttacker, ABILITY_PRESSURE, 0, 0); + break; + case MOVE_TARGET_BOTH: + case MOVE_TARGET_OPPONENTS_FIELD: + ppToDeduct += AbilityBattleEffects(ABILITYEFFECT_COUNT_OTHER_SIDE, gBankAttacker, ABILITY_PRESSURE, 0, 0); + break; + default: + if (gBankAttacker != gBankTarget && gBattleMons[gBankTarget].ability == ABILITY_PRESSURE) + ppToDeduct++; + break; + } + } + + if (!(gHitMarker & (HITMARKER_NO_PPDEDUCT | HITMARKER_NO_ATTACKSTRING)) && gBattleMons[gBankAttacker].pp[gCurrMovePos]) + { + gProtectStructs[gBankAttacker].notFirstStrike = 1; + + if (gBattleMons[gBankAttacker].pp[gCurrMovePos] > ppToDeduct) + gBattleMons[gBankAttacker].pp[gCurrMovePos] -= ppToDeduct; + else + gBattleMons[gBankAttacker].pp[gCurrMovePos] = 0; + + if (!(gBattleMons[gBankAttacker].status2 & STATUS2_TRANSFORMED) + && !((gDisableStructs[gBankAttacker].unk18_b) & gBitTable[gCurrMovePos])) + { + gActiveBank = gBankAttacker; + EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + gCurrMovePos, 0, 1, &gBattleMons[gBankAttacker].pp[gCurrMovePos]); + MarkBufferBankForExecution(gBankAttacker); + } + } + + gHitMarker &= ~(HITMARKER_NO_PPDEDUCT); + gBattlescriptCurrInstr++; +} + +static void atk04_critcalc(void) +{ + u8 holdEffect; + u16 item, critChance; + + item = gBattleMons[gBankAttacker].item; + + if (item == ITEM_ENIGMA_BERRY) + holdEffect = gEnigmaBerries[gBankAttacker].holdEffect; + else + holdEffect = ItemId_GetHoldEffect(item); + + gStringBank = gBankAttacker; + + critChance = 2 * ((gBattleMons[gBankAttacker].status2 & STATUS2_FOCUS_ENERGY) != 0) + + (gBattleMoves[gCurrentMove].effect == EFFECT_HIGH_CRITICAL) + + (gBattleMoves[gCurrentMove].effect == EFFECT_SKY_ATTACK) + + (gBattleMoves[gCurrentMove].effect == EFFECT_BLAZE_KICK) + + (gBattleMoves[gCurrentMove].effect == EFFECT_POISON_TAIL) + + (holdEffect == HOLD_EFFECT_SCOPE_LENS) + + 2 * (holdEffect == HOLD_EFFECT_LUCKY_PUNCH && gBattleMons[gBankAttacker].species == SPECIES_CHANSEY) + + 2 * (holdEffect == HOLD_EFFECT_STICK && gBattleMons[gBankAttacker].species == SPECIES_FARFETCHD); + + if (critChance > 4) + critChance = 4; + + if ((gBattleMons[gBankTarget].ability != ABILITY_BATTLE_ARMOR && gBattleMons[gBankTarget].ability != ABILITY_SHELL_ARMOR) + && !(gStatuses3[gBankAttacker] & STATUS3_CANT_SCORE_A_CRIT) + && !(gBattleTypeFlags & (BATTLE_TYPE_WALLY_TUTORIAL | BATTLE_TYPE_FIRST_BATTLE)) + && !(Random() % sCriticalHitChance[critChance])) + gCritMultiplier = 2; + else + gCritMultiplier = 1; + + gBattlescriptCurrInstr++; +} + +static void atk05_damagecalc1(void) +{ + u16 sideStatus = gSideAffecting[GET_BANK_SIDE(gBankTarget)]; + gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankTarget], gCurrentMove, + sideStatus, gDynamicBasePower, + gBattleStruct->dynamicMoveType, gBankAttacker, gBankTarget); + gBattleMoveDamage = gBattleMoveDamage * gCritMultiplier * gBattleScripting.dmgMultiplier; + + if (gStatuses3[gBankAttacker] & STATUS3_CHARGED_UP && gBattleMoves[gCurrentMove].type == TYPE_ELECTRIC) + gBattleMoveDamage *= 2; + if (gProtectStructs[gBankAttacker].helpingHand) + gBattleMoveDamage = gBattleMoveDamage * 15 / 10; + + gBattlescriptCurrInstr++; +} + +void AI_CalcDmg(u8 bankAtk, u8 bankDef) +{ + u16 sideStatus = gSideAffecting[GET_BANK_SIDE(bankDef)]; + gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[bankAtk], &gBattleMons[bankDef], gCurrentMove, + sideStatus, gDynamicBasePower, + gBattleStruct->dynamicMoveType, bankAtk, bankDef); + gDynamicBasePower = 0; + gBattleMoveDamage = gBattleMoveDamage * gCritMultiplier * gBattleScripting.dmgMultiplier; + + if (gStatuses3[bankAtk] & STATUS3_CHARGED_UP && gBattleMoves[gCurrentMove].type == TYPE_ELECTRIC) + gBattleMoveDamage *= 2; + if (gProtectStructs[bankAtk].helpingHand) + gBattleMoveDamage = gBattleMoveDamage * 15 / 10; +} + +static void ModulateDmgByType(u8 multiplier) +{ + gBattleMoveDamage = gBattleMoveDamage * multiplier / 10; + if (gBattleMoveDamage == 0 && multiplier != 0) + gBattleMoveDamage = 1; + + switch (multiplier) + { + case TYPE_MUL_NO_EFFECT: + gBattleMoveFlags |= MOVESTATUS_NOTAFFECTED; + gBattleMoveFlags &= ~MOVESTATUS_NOTVERYEFFECTIVE; + gBattleMoveFlags &= ~MOVESTATUS_SUPEREFFECTIVE; + break; + case TYPE_MUL_NOT_EFFECTIVE: + if (gBattleMoves[gCurrentMove].power && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) + { + if (gBattleMoveFlags & MOVESTATUS_SUPEREFFECTIVE) + gBattleMoveFlags &= ~MOVESTATUS_SUPEREFFECTIVE; + else + gBattleMoveFlags |= MOVESTATUS_NOTVERYEFFECTIVE; + } + break; + case TYPE_MUL_SUPER_EFFECTIVE: + if (gBattleMoves[gCurrentMove].power && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) + { + if (gBattleMoveFlags & MOVESTATUS_NOTVERYEFFECTIVE) + gBattleMoveFlags &= ~MOVESTATUS_NOTVERYEFFECTIVE; + else + gBattleMoveFlags |= MOVESTATUS_SUPEREFFECTIVE; + } + break; + } +} + +#define TYPE_FORESIGHT 0xFE +#define TYPE_ENDTABLE 0xFF + +static void atk06_typecalc(void) +{ + s32 i = 0; + u8 moveType; + + if (gCurrentMove == MOVE_STRUGGLE) + { + gBattlescriptCurrInstr++; + return; + } + + GET_MOVE_TYPE(gCurrentMove, moveType); + + // check stab + if (gBattleMons[gBankAttacker].type1 == moveType || gBattleMons[gBankAttacker].type2 == moveType) + { + gBattleMoveDamage = gBattleMoveDamage * 15; + gBattleMoveDamage = gBattleMoveDamage / 10; + } + + if (gBattleMons[gBankTarget].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND) + { + gLastUsedAbility = gBattleMons[gBankTarget].ability; + gBattleMoveFlags |= (MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED); + gUnknown_02024250[gBankTarget] = 0; + gUnknown_02024258[gBankTarget] = 0; + gBattleCommunication[6] = moveType; + RecordAbilityBattle(gBankTarget, gLastUsedAbility); + } + else + { + while (gTypeEffectiveness[i] != TYPE_ENDTABLE) + { + if (gTypeEffectiveness[i] == TYPE_FORESIGHT) + { + if (gBattleMons[gBankTarget].status2 & STATUS2_FORESIGHT) + break; + i += 3; + continue; + } + else if (gTypeEffectiveness[i] == moveType) + { + // check type1 + if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type1) + ModulateDmgByType(gTypeEffectiveness[i + 2]); + // check type2 + if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type2 && + gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2) + ModulateDmgByType(gTypeEffectiveness[i + 2]); + } + i += 3; + } + } + + if (gBattleMons[gBankTarget].ability == ABILITY_WONDER_GUARD && AttacksThisTurn(gBankAttacker, gCurrentMove) == 2 + && (!(gBattleMoveFlags & MOVESTATUS_SUPEREFFECTIVE) || ((gBattleMoveFlags & (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE)) == (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE))) + && gBattleMoves[gCurrentMove].power) + { + gLastUsedAbility = ABILITY_WONDER_GUARD; + gBattleMoveFlags |= MOVESTATUS_MISSED; + gUnknown_02024250[gBankTarget] = 0; + gUnknown_02024258[gBankTarget] = 0; + gBattleCommunication[6] = 3; + RecordAbilityBattle(gBankTarget, gLastUsedAbility); + } + if (gBattleMoveFlags & MOVESTATUS_NOTAFFECTED) + gProtectStructs[gBankAttacker].notEffective = 1; + + gBattlescriptCurrInstr++; +} + +static void CheckWonderGuardAndLevitate(void) +{ + u8 flags = 0; + s32 i = 0; + u8 moveType; + + if (gCurrentMove == MOVE_STRUGGLE || !gBattleMoves[gCurrentMove].power) + return; + + GET_MOVE_TYPE(gCurrentMove, moveType); + + if (gBattleMons[gBankTarget].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND) + { + gLastUsedAbility = ABILITY_LEVITATE; + gBattleCommunication[6] = moveType; + RecordAbilityBattle(gBankTarget, ABILITY_LEVITATE); + return; + } + + while (gTypeEffectiveness[i] != TYPE_ENDTABLE) + { + if (gTypeEffectiveness[i] == TYPE_FORESIGHT) + { + if (gBattleMons[gBankTarget].status2 & STATUS2_FORESIGHT) + break; + i += 3; + continue; + } + if (gTypeEffectiveness[i] == moveType) + { + // check no effect + if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type1 && gTypeEffectiveness[i + 2] == 0) + { + gBattleMoveFlags |= MOVESTATUS_NOTAFFECTED; + gProtectStructs[gBankAttacker].notEffective = 1; + } + if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type2 && + gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2 && + gTypeEffectiveness[i + 2] == TYPE_MUL_NO_EFFECT) + { + gBattleMoveFlags |= MOVESTATUS_NOTAFFECTED; + gProtectStructs[gBankAttacker].notEffective = 1; + } + + // check super effective + if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type1 && gTypeEffectiveness[i + 2] == 20) + flags |= 1; + if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type2 + && gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2 + && gTypeEffectiveness[i + 2] == TYPE_MUL_SUPER_EFFECTIVE) + flags |= 1; + + // check not very effective + if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type1 && gTypeEffectiveness[i + 2] == 5) + flags |= 2; + if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type2 + && gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2 + && gTypeEffectiveness[i + 2] == TYPE_MUL_NOT_EFFECTIVE) + flags |= 2; + } + i += 3; + } + + if (gBattleMons[gBankTarget].ability == ABILITY_WONDER_GUARD && AttacksThisTurn(gBankAttacker, gCurrentMove) == 2) + { + if (((flags & 2) || !(flags & 1)) && gBattleMoves[gCurrentMove].power) + { + gLastUsedAbility = ABILITY_WONDER_GUARD; + gBattleCommunication[6] = 3; + RecordAbilityBattle(gBankTarget, ABILITY_WONDER_GUARD); + } + } +} + +static void ModulateDmgByType2(u8 multiplier, u16 move, u8* flags) // same as ModulateDmgByType except different arguments +{ + gBattleMoveDamage = gBattleMoveDamage * multiplier / 10; + if (gBattleMoveDamage == 0 && multiplier != 0) + gBattleMoveDamage = 1; + + switch (multiplier) + { + case TYPE_MUL_NO_EFFECT: + *flags |= MOVESTATUS_NOTAFFECTED; + *flags &= ~MOVESTATUS_NOTVERYEFFECTIVE; + *flags &= ~MOVESTATUS_SUPEREFFECTIVE; + break; + case TYPE_MUL_NOT_EFFECTIVE: + if (gBattleMoves[move].power && !(*flags & MOVESTATUS_NOEFFECT)) + { + if (*flags & MOVESTATUS_SUPEREFFECTIVE) + *flags &= ~MOVESTATUS_SUPEREFFECTIVE; + else + *flags |= MOVESTATUS_NOTVERYEFFECTIVE; + } + break; + case TYPE_MUL_SUPER_EFFECTIVE: + if (gBattleMoves[move].power && !(*flags & MOVESTATUS_NOEFFECT)) + { + if (*flags & MOVESTATUS_NOTVERYEFFECTIVE) + *flags &= ~MOVESTATUS_NOTVERYEFFECTIVE; + else + *flags |= MOVESTATUS_SUPEREFFECTIVE; + } + break; + } +} + +u8 TypeCalc(u16 move, u8 bankAtk, u8 bankDef) +{ + s32 i = 0; + u8 flags = 0; + u8 moveType; + + if (move == MOVE_STRUGGLE) + return 0; + + moveType = gBattleMoves[move].type; + + // check stab + if (gBattleMons[bankAtk].type1 == moveType || gBattleMons[bankAtk].type2 == moveType) + { + gBattleMoveDamage = gBattleMoveDamage * 15; + gBattleMoveDamage = gBattleMoveDamage / 10; + } + + if (gBattleMons[bankDef].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND) + { + flags |= (MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED); + } + else + { + while (gTypeEffectiveness[i]!= TYPE_ENDTABLE) + { + if (gTypeEffectiveness[i] == TYPE_FORESIGHT) + { + if (gBattleMons[bankDef].status2 & STATUS2_FORESIGHT) + break; + i += 3; + continue; + } + + else if (gTypeEffectiveness[i] == moveType) + { + // check type1 + if (gTypeEffectiveness[i + 1] == gBattleMons[bankDef].type1) + ModulateDmgByType2(gTypeEffectiveness[i + 2], move, &flags); + // check type2 + if (gTypeEffectiveness[i + 1] == gBattleMons[bankDef].type2 && + gBattleMons[bankDef].type1 != gBattleMons[bankDef].type2) + ModulateDmgByType2(gTypeEffectiveness[i + 2], move, &flags); + } + i += 3; + } + } + + if (gBattleMons[bankDef].ability == ABILITY_WONDER_GUARD && !(flags & MOVESTATUS_MISSED) + && AttacksThisTurn(bankAtk, move) == 2 + && (!(flags & MOVESTATUS_SUPEREFFECTIVE) || ((flags & (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE)) == (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE))) + && gBattleMoves[move].power) + { + flags |= MOVESTATUS_MISSED; + } + return flags; +} + +u8 AI_TypeCalc(u16 move, u16 species, u8 ability) +{ + s32 i = 0; + u8 flags = 0; + u8 type1 = gBaseStats[species].type1, type2 = gBaseStats[species].type2; + u8 moveType; + + if (move == MOVE_STRUGGLE) + return 0; + + moveType = gBattleMoves[move].type; + + if (ability == ABILITY_LEVITATE && moveType == TYPE_GROUND) + { + flags = MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED; + } + else + { + while (gTypeEffectiveness[i] != TYPE_ENDTABLE) + { + if (gTypeEffectiveness[i] == TYPE_FORESIGHT) + { + i += 3; + continue; + } + if (gTypeEffectiveness[i] == moveType) + { + // check type1 + if (gTypeEffectiveness[i + 1] == type1) + ModulateDmgByType2(gTypeEffectiveness[i + 2], move, &flags); + // check type2 + if (gTypeEffectiveness[i + 1] == type2 && type1 != type2) + ModulateDmgByType2(gTypeEffectiveness[i + 2], move, &flags); + } + i += 3; + } + } + if (ability == ABILITY_WONDER_GUARD + && (!(flags & MOVESTATUS_SUPEREFFECTIVE) || ((flags & (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE)) == (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE))) + && gBattleMoves[move].power) + flags |= MOVESTATUS_NOTAFFECTED; + return flags; +} + +// Multiplies the damage by a random factor between 85% to 100% inclusive +static inline void ApplyRandomDmgMultiplier(void) +{ + u16 rand = Random(); + u16 randPercent = 100 - (rand % 16); + + if (gBattleMoveDamage != 0) + { + gBattleMoveDamage *= randPercent; + gBattleMoveDamage /= 100; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + } +} + +static void Unused_ApplyRandomDmgMultiplier(void) +{ + ApplyRandomDmgMultiplier(); +} + +static void atk07_dmg_adjustment(void) +{ + u8 holdEffect, quality; + + ApplyRandomDmgMultiplier(); + + if (gBattleMons[gBankTarget].item == ITEM_ENIGMA_BERRY) + { + holdEffect = gEnigmaBerries[gBankTarget].holdEffect, quality = gEnigmaBerries[gBankTarget].holdEffectParam; + } + else + { + holdEffect = ItemId_GetHoldEffect(gBattleMons[gBankTarget].item); + quality = ItemId_GetHoldEffectParam(gBattleMons[gBankTarget].item); + } + + gStringBank = gBankTarget; + + if (holdEffect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < quality) + { + RecordItemEffectBattle(gBankTarget, holdEffect); + gSpecialStatuses[gBankTarget].focusBanded = 1; + } + if (gBattleMons[gBankTarget].status2 & STATUS2_SUBSTITUTE) + goto END; + if (gBattleMoves[gCurrentMove].effect != EFFECT_FALSE_SWIPE && !gProtectStructs[gBankTarget].endured + && !gSpecialStatuses[gBankTarget].focusBanded) + goto END; + + if (gBattleMons[gBankTarget].hp > gBattleMoveDamage) + goto END; + + gBattleMoveDamage = gBattleMons[gBankTarget].hp - 1; + + if (gProtectStructs[gBankTarget].endured) + { + gBattleMoveFlags |= MOVESTATUS_ENDURED; + } + else if (gSpecialStatuses[gBankTarget].focusBanded) + { + gBattleMoveFlags |= MOVESTATUS_HUNGON; + gLastUsedItem = gBattleMons[gBankTarget].item; + } + + END: + gBattlescriptCurrInstr++; +} + +static void atk08_dmg_adjustment2(void) // The same as 0x7 except it doesn't check for false swipe move effect. +{ + u8 holdEffect, quality; + + ApplyRandomDmgMultiplier(); + + if (gBattleMons[gBankTarget].item == ITEM_ENIGMA_BERRY) + { + holdEffect = gEnigmaBerries[gBankTarget].holdEffect, quality = gEnigmaBerries[gBankTarget].holdEffectParam; + } + else + { + holdEffect = ItemId_GetHoldEffect(gBattleMons[gBankTarget].item); + quality = ItemId_GetHoldEffectParam(gBattleMons[gBankTarget].item); + } + + gStringBank = gBankTarget; + + if (holdEffect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < quality) + { + RecordItemEffectBattle(gBankTarget, holdEffect); + gSpecialStatuses[gBankTarget].focusBanded = 1; + } + if (gBattleMons[gBankTarget].status2 & STATUS2_SUBSTITUTE) + goto END; + if (!gProtectStructs[gBankTarget].endured && !gSpecialStatuses[gBankTarget].focusBanded) + goto END; + if (gBattleMons[gBankTarget].hp > gBattleMoveDamage) + goto END; + + gBattleMoveDamage = gBattleMons[gBankTarget].hp - 1; + + if (gProtectStructs[gBankTarget].endured) + { + gBattleMoveFlags |= MOVESTATUS_ENDURED; + } + else if (gSpecialStatuses[gBankTarget].focusBanded) + { + gBattleMoveFlags |= MOVESTATUS_HUNGON; + gLastUsedItem = gBattleMons[gBankTarget].item; + } + + END: + gBattlescriptCurrInstr++; +} + +static void atk09_attackanimation(void) +{ + if (gBattleExecBuffer) + return; + + if ((gHitMarker & HITMARKER_NO_ANIMATIONS) && (gCurrentMove != MOVE_TRANSFORM && gCurrentMove != MOVE_SUBSTITUTE)) + { + BattleScriptPush(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = BattleScript_Pausex20; + gBattleScripting.animTurn++; + gBattleScripting.animTargetsHit++; + } + else + { + if ((gBattleMoves[gCurrentMove].target & MOVE_TARGET_BOTH + || gBattleMoves[gCurrentMove].target & MOVE_TARGET_FOES_AND_ALLY + || gBattleMoves[gCurrentMove].target & MOVE_TARGET_DEPENDS) + && gBattleScripting.animTargetsHit) + { + gBattlescriptCurrInstr++; + return; + } + if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) + { + u8 multihit; + + gActiveBank = gBankAttacker; + + if (gBattleMons[gBankTarget].status2 & STATUS2_SUBSTITUTE) + multihit = gMultiHitCounter; + else if (gMultiHitCounter != 0 && gMultiHitCounter != 1) + { + if (gBattleMons[gBankTarget].hp <= gBattleMoveDamage) + multihit = 1; + else + multihit = gMultiHitCounter; + } + else + multihit = gMultiHitCounter; + + EmitMoveAnimation(0, gCurrentMove, gBattleScripting.animTurn, gBattleMovePower, gBattleMoveDamage, gBattleMons[gBankAttacker].friendship, &gDisableStructs[gBankAttacker], multihit); + gBattleScripting.animTurn += 1; + gBattleScripting.animTargetsHit += 1; + MarkBufferBankForExecution(gBankAttacker); + gBattlescriptCurrInstr++; + } + else + { + BattleScriptPush(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = BattleScript_Pausex20; + } + } +} + +static void atk0A_waitanimation(void) +{ + if (gBattleExecBuffer == 0) + gBattlescriptCurrInstr++; +} + +static void atk0B_healthbarupdate(void) +{ + if (gBattleExecBuffer) + return; + + if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) + { + gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + + if (gBattleMons[gActiveBank].status2 & STATUS2_SUBSTITUTE && gDisableStructs[gActiveBank].substituteHP && !(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE)) + { + PrepareStringBattle(0x80, gActiveBank); + } + else + { + s16 healthValue; + + s32 currDmg = gBattleMoveDamage; + s32 maxPossibleDmgValue = 10000; // not present in R/S, ensures that huge damage values don't change sign + + if (currDmg <= maxPossibleDmgValue) + healthValue = currDmg; + else + healthValue = maxPossibleDmgValue; + + EmitHealthBarUpdate(0, healthValue); + MarkBufferBankForExecution(gActiveBank); + + if (GetBankSide(gActiveBank) == SIDE_PLAYER && gBattleMoveDamage > 0) + gBattleResults.unk5_0 = 1; + } + } + + gBattlescriptCurrInstr += 2; +} + +static void atk0C_datahpupdate(void) +{ + u32 moveType; + + if (gBattleExecBuffer) + return; + + if (gBattleStruct->dynamicMoveType == 0) + moveType = gBattleMoves[gCurrentMove].type; + else if (!(gBattleStruct->dynamicMoveType & 0x40)) + moveType = gBattleStruct->dynamicMoveType & 0x3F; + else + moveType = gBattleMoves[gCurrentMove].type; + + if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) + { + gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + if (gBattleMons[gActiveBank].status2 & STATUS2_SUBSTITUTE && gDisableStructs[gActiveBank].substituteHP && !(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE)) + { + if (gDisableStructs[gActiveBank].substituteHP >= gBattleMoveDamage) + { + if (gSpecialStatuses[gActiveBank].moveturnLostHP == 0) + gSpecialStatuses[gActiveBank].moveturnLostHP = gBattleMoveDamage; + gDisableStructs[gActiveBank].substituteHP -= gBattleMoveDamage; + gHpDealt = gBattleMoveDamage; + } + else + { + if (gSpecialStatuses[gActiveBank].moveturnLostHP == 0) + gSpecialStatuses[gActiveBank].moveturnLostHP = gDisableStructs[gActiveBank].substituteHP; + gHpDealt = gDisableStructs[gActiveBank].substituteHP; + gDisableStructs[gActiveBank].substituteHP = 0; + } + // check substitute fading + if (gDisableStructs[gActiveBank].substituteHP == 0) + { + gBattlescriptCurrInstr += 2; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_SubstituteFade; + return; + } + } + else + { + gHitMarker &= ~(HITMARKER_IGNORE_SUBSTITUTE); + if (gBattleMoveDamage < 0) // hp goes up + { + gBattleMons[gActiveBank].hp -= gBattleMoveDamage; + if (gBattleMons[gActiveBank].hp > gBattleMons[gActiveBank].maxHP) + gBattleMons[gActiveBank].hp = gBattleMons[gActiveBank].maxHP; + + } + else // hp goes down + { + if (gHitMarker & HITMARKER_x20) + { + gHitMarker &= ~(HITMARKER_x20); + } + else + { + gTakenDmg[gActiveBank] += gBattleMoveDamage; + if (gBattlescriptCurrInstr[1] == BS_GET_TARGET) + gTakenDmgBanks[gActiveBank] = gBankAttacker; + else + gTakenDmgBanks[gActiveBank] = gBankTarget; + } + + if (gBattleMons[gActiveBank].hp > gBattleMoveDamage) + { + gBattleMons[gActiveBank].hp -= gBattleMoveDamage; + gHpDealt = gBattleMoveDamage; + } + else + { + gHpDealt = gBattleMons[gActiveBank].hp; + gBattleMons[gActiveBank].hp = 0; + } + + if (!gSpecialStatuses[gActiveBank].moveturnLostHP && !(gHitMarker & HITMARKER_x100000)) + gSpecialStatuses[gActiveBank].moveturnLostHP = gHpDealt; + + if (moveType <= 8 && !(gHitMarker & HITMARKER_x100000) && gCurrentMove != MOVE_PAIN_SPLIT) + { + gProtectStructs[gActiveBank].physicalDmg = gHpDealt; + gSpecialStatuses[gActiveBank].moveturnLostHP_physical = gHpDealt; + if (gBattlescriptCurrInstr[1] == BS_GET_TARGET) + { + gProtectStructs[gActiveBank].physicalBank = gBankAttacker; + gSpecialStatuses[gActiveBank].moveturnPhysicalBank = gBankAttacker; + } + else + { + gProtectStructs[gActiveBank].physicalBank = gBankTarget; + gSpecialStatuses[gActiveBank].moveturnPhysicalBank = gBankTarget; + } + } + else if (moveType > 8 && !(gHitMarker & HITMARKER_x100000)) + { + gProtectStructs[gActiveBank].specialDmg = gHpDealt; + gSpecialStatuses[gActiveBank].moveturnLostHP_special = gHpDealt; + if (gBattlescriptCurrInstr[1] == BS_GET_TARGET) + { + gProtectStructs[gActiveBank].specialBank = gBankAttacker; + gSpecialStatuses[gActiveBank].moveturnSpecialBank = gBankAttacker; + } + else + { + gProtectStructs[gActiveBank].specialBank = gBankTarget; + gSpecialStatuses[gActiveBank].moveturnSpecialBank = gBankTarget; + } + } + } + gHitMarker &= ~(HITMARKER_x100000); + EmitSetMonData(0, REQUEST_HP_BATTLE, 0, 2, &gBattleMons[gActiveBank].hp); + MarkBufferBankForExecution(gActiveBank); + } + } + else + { + gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + if (gSpecialStatuses[gActiveBank].moveturnLostHP == 0) + gSpecialStatuses[gActiveBank].moveturnLostHP = 0xFFFF; + } + gBattlescriptCurrInstr += 2; +} + +static void atk0D_critmessage(void) +{ + if (gBattleExecBuffer == 0) + { + if (gCritMultiplier == 2 && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) + { + PrepareStringBattle(0xD9, gBankAttacker); + gBattleCommunication[MSG_DISPLAY] = 1; + } + gBattlescriptCurrInstr++; + } +} + +static void atk0E_effectiveness_sound(void) +{ + if (gBattleExecBuffer) + return; + + gActiveBank = gBankTarget; + if (!(gBattleMoveFlags & MOVESTATUS_MISSED)) + { + switch (gBattleMoveFlags & (u8)(~(MOVESTATUS_MISSED))) + { + case MOVESTATUS_SUPEREFFECTIVE: + EmitEffectivenessSound(0, SE_KOUKA_H); + MarkBufferBankForExecution(gActiveBank); + break; + case MOVESTATUS_NOTVERYEFFECTIVE: + EmitEffectivenessSound(0, SE_KOUKA_L); + MarkBufferBankForExecution(gActiveBank); + break; + case MOVESTATUS_NOTAFFECTED: + case MOVESTATUS_FAILED: + // no sound + break; + case MOVESTATUS_ENDURED: + case MOVESTATUS_ONEHITKO: + case MOVESTATUS_HUNGON: + default: + if (gBattleMoveFlags & MOVESTATUS_SUPEREFFECTIVE) + { + EmitEffectivenessSound(0, SE_KOUKA_H); + MarkBufferBankForExecution(gActiveBank); + } + else if (gBattleMoveFlags & MOVESTATUS_NOTVERYEFFECTIVE) + { + EmitEffectivenessSound(0, SE_KOUKA_L); + MarkBufferBankForExecution(gActiveBank); + } + else if (!(gBattleMoveFlags & (MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED))) + { + EmitEffectivenessSound(0, SE_KOUKA_M); + MarkBufferBankForExecution(gActiveBank); + } + break; + } + } + gBattlescriptCurrInstr++; +} + +static void atk0F_resultmessage(void) +{ + u32 stringId = 0; + + if (gBattleExecBuffer) + return; + + if (gBattleMoveFlags & MOVESTATUS_MISSED && (!(gBattleMoveFlags & MOVESTATUS_NOTAFFECTED) || gBattleCommunication[6] > 2)) + { + stringId = gMissStringIds[gBattleCommunication[6]]; + gBattleCommunication[MSG_DISPLAY] = 1; + } + else + { + gBattleCommunication[MSG_DISPLAY] = 1; + switch (gBattleMoveFlags & (u8)(~(MOVESTATUS_MISSED))) + { + case MOVESTATUS_SUPEREFFECTIVE: + stringId = 0xDE; + break; + case MOVESTATUS_NOTVERYEFFECTIVE: + stringId = 0xDD; + break; + case MOVESTATUS_ONEHITKO: + stringId = 0xDA; + break; + case MOVESTATUS_ENDURED: + stringId = 0x99; + break; + case MOVESTATUS_FAILED: + stringId = 0xE5; + break; + case MOVESTATUS_NOTAFFECTED: + stringId = 0x1B; + break; + case MOVESTATUS_HUNGON: + gLastUsedItem = gBattleMons[gBankTarget].item; + gStringBank = gBankTarget; + gBattleMoveFlags &= ~(MOVESTATUS_ENDURED | MOVESTATUS_HUNGON); + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_HangedOnMsg; + return; + default: + if (gBattleMoveFlags & MOVESTATUS_NOTAFFECTED) + { + stringId = 0x1B; + } + else if (gBattleMoveFlags & MOVESTATUS_ONEHITKO) + { + gBattleMoveFlags &= ~(MOVESTATUS_ONEHITKO); + gBattleMoveFlags &= ~(MOVESTATUS_SUPEREFFECTIVE); + gBattleMoveFlags &= ~(MOVESTATUS_NOTVERYEFFECTIVE); + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_OneHitKOMsg; + return; + } + else if (gBattleMoveFlags & MOVESTATUS_ENDURED) + { + gBattleMoveFlags &= ~(MOVESTATUS_ENDURED | MOVESTATUS_HUNGON); + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_EnduredMsg; + return; + } + else if (gBattleMoveFlags & MOVESTATUS_HUNGON) + { + gLastUsedItem = gBattleMons[gBankTarget].item; + gStringBank = gBankTarget; + gBattleMoveFlags &= ~(MOVESTATUS_ENDURED | MOVESTATUS_HUNGON); + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_HangedOnMsg; + return; + } + else if (gBattleMoveFlags & MOVESTATUS_FAILED) + { + stringId = 0xE5; + } + else + { + gBattleCommunication[MSG_DISPLAY] = 0; + } + } + } + + if (stringId) + PrepareStringBattle(stringId, gBankAttacker); + + gBattlescriptCurrInstr++; +} + +static void atk10_printstring(void) +{ + if (gBattleExecBuffer == 0) + { + u16 var = BS2ScriptRead16(gBattlescriptCurrInstr + 1); + PrepareStringBattle(var, gBankAttacker); + gBattlescriptCurrInstr += 3; + gBattleCommunication[MSG_DISPLAY] = 1; + } +} + +static void atk11_printstring_playeronly(void) +{ + gActiveBank = gBankAttacker; + + EmitPrintStringPlayerOnly(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1)); + MarkBufferBankForExecution(gActiveBank); + + gBattlescriptCurrInstr += 3; + gBattleCommunication[MSG_DISPLAY] = 1; +} + +static void atk12_waitmessage(void) +{ + if (gBattleExecBuffer == 0) + { + if (!gBattleCommunication[MSG_DISPLAY]) + { + gBattlescriptCurrInstr += 3; + } + else + { + u16 toWait = BS2ScriptRead16(gBattlescriptCurrInstr + 1); + if (++gPauseCounterBattle >= toWait) + { + gPauseCounterBattle = 0; + gBattlescriptCurrInstr += 3; + gBattleCommunication[MSG_DISPLAY] = 0; + } + } + } +} + +static void atk13_printfromtable(void) +{ + if (gBattleExecBuffer == 0) + { + const u16 *ptr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + ptr += gBattleCommunication[MULTISTRING_CHOOSER]; + + PrepareStringBattle(*ptr, gBankAttacker); + + gBattlescriptCurrInstr += 5; + gBattleCommunication[MSG_DISPLAY] = 1; + } +} + +static void atk14_printfromtable_playeronly(void) +{ + if (gBattleExecBuffer == 0) + { + const u16 *ptr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + ptr += gBattleCommunication[MULTISTRING_CHOOSER]; + + gActiveBank = gBankAttacker; + EmitPrintStringPlayerOnly(0, *ptr); + MarkBufferBankForExecution(gActiveBank); + + gBattlescriptCurrInstr += 5; + gBattleCommunication[MSG_DISPLAY] = 1; + } +} + +u8 BankGetTurnOrder(u8 bank) +{ + s32 i; + for (i = 0; i < gNoOfAllBanks; i++) + { + if (gTurnOrder[i] == bank) + break; + } + return i; +} + +#define INCREMENT_RESET_RETURN \ +{ \ + gBattlescriptCurrInstr++; \ + gBattleCommunication[MOVE_EFFECT_BYTE] = 0; \ + return; \ +} + +#define RESET_RETURN \ +{ \ + gBattleCommunication[MOVE_EFFECT_BYTE] = 0; \ + return; \ +} + +void SetMoveEffect(bool8 primary, u8 certain) +{ + bool32 statusChanged = FALSE; + u8 affectsUser = 0; // 0x40 otherwise + bool32 noSunCanFreeze = TRUE; + + if (gBattleCommunication[MOVE_EFFECT_BYTE] & MOVE_EFFECT_AFFECTS_USER) + { + gEffectBank = gBankAttacker; // bank that effects get applied on + gBattleCommunication[MOVE_EFFECT_BYTE] &= ~(MOVE_EFFECT_AFFECTS_USER); + affectsUser = MOVE_EFFECT_AFFECTS_USER; + gBattleScripting.bank = gBankTarget; // theoretically the attacker + } + else + { + gEffectBank = gBankTarget; + gBattleScripting.bank = gBankAttacker; + } + + if (gBattleMons[gEffectBank].ability == ABILITY_SHIELD_DUST && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) + && !primary && gBattleCommunication[MOVE_EFFECT_BYTE] <= 9) + INCREMENT_RESET_RETURN + + if (gSideAffecting[GET_BANK_SIDE(gEffectBank)] & SIDE_STATUS_SAFEGUARD && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) + && !primary && gBattleCommunication[MOVE_EFFECT_BYTE] <= 7) + INCREMENT_RESET_RETURN + + if (gBattleMons[gEffectBank].hp == 0 + && gBattleCommunication[MOVE_EFFECT_BYTE] != MOVE_EFFECT_PAYDAY + && gBattleCommunication[MOVE_EFFECT_BYTE] != MOVE_EFFECT_STEAL_ITEM) + INCREMENT_RESET_RETURN + + if (gBattleMons[gEffectBank].status2 & STATUS2_SUBSTITUTE && affectsUser != MOVE_EFFECT_AFFECTS_USER) + INCREMENT_RESET_RETURN + + if (gBattleCommunication[MOVE_EFFECT_BYTE] <= 6) // status change + { + switch (sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]) + { + case STATUS_SLEEP: + // check active uproar + if (gBattleMons[gEffectBank].ability != ABILITY_SOUNDPROOF) + { + for (gActiveBank = 0; + gActiveBank < gNoOfAllBanks && !(gBattleMons[gActiveBank].status2 & STATUS2_UPROAR); + gActiveBank++) + {} + } + else + gActiveBank = gNoOfAllBanks; + + if (gBattleMons[gEffectBank].status1) + break; + if (gActiveBank != gNoOfAllBanks) + break; + if (gBattleMons[gEffectBank].ability == ABILITY_VITAL_SPIRIT) + break; + if (gBattleMons[gEffectBank].ability == ABILITY_INSOMNIA) + break; + + CancelMultiTurnMoves(gEffectBank); + statusChanged = TRUE; + break; + case STATUS_POISON: + if (gBattleMons[gEffectBank].ability == ABILITY_IMMUNITY + && (primary == TRUE || certain == MOVE_EFFECT_CERTAIN)) + { + gLastUsedAbility = ABILITY_IMMUNITY; + RecordAbilityBattle(gEffectBank, ABILITY_IMMUNITY); + + BattleScriptPush(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = BattleScript_PSNPrevention; + + if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) + { + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gHitMarker &= ~(HITMARKER_IGNORE_SAFEGUARD); + } + else + { + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + } + RESET_RETURN + } + if ((gBattleMons[gEffectBank].type1 == TYPE_POISON || gBattleMons[gEffectBank].type2 == TYPE_POISON + || gBattleMons[gEffectBank].type1 == TYPE_STEEL || gBattleMons[gEffectBank].type2 == TYPE_STEEL) + && (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) + && (primary == TRUE || certain == MOVE_EFFECT_CERTAIN)) + { + BattleScriptPush(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = BattleScript_PSNPrevention; + + gBattleCommunication[MULTISTRING_CHOOSER] = 2; + RESET_RETURN + } + if (gBattleMons[gEffectBank].type1 == TYPE_POISON) + break; + if (gBattleMons[gEffectBank].type2 == TYPE_POISON) + break; + if (gBattleMons[gEffectBank].type1 == TYPE_STEEL) + break; + if (gBattleMons[gEffectBank].type2 == TYPE_STEEL) + break; + if (gBattleMons[gEffectBank].status1) + break; + if (gBattleMons[gEffectBank].ability == ABILITY_IMMUNITY) + break; + + statusChanged = TRUE; + break; + case STATUS_BURN: + if (gBattleMons[gEffectBank].ability == ABILITY_WATER_VEIL + && (primary == TRUE || certain == MOVE_EFFECT_CERTAIN)) + { + gLastUsedAbility = ABILITY_WATER_VEIL; + RecordAbilityBattle(gEffectBank, ABILITY_WATER_VEIL); + + BattleScriptPush(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = BattleScript_BRNPrevention; + if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) + { + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gHitMarker &= ~(HITMARKER_IGNORE_SAFEGUARD); + } + else + { + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + } + RESET_RETURN + } + if ((gBattleMons[gEffectBank].type1 == TYPE_FIRE + || gBattleMons[gEffectBank].type2 == TYPE_FIRE) + && (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) + && (primary == TRUE || certain == MOVE_EFFECT_CERTAIN)) + { + BattleScriptPush(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = BattleScript_BRNPrevention; + + gBattleCommunication[MULTISTRING_CHOOSER] = 2; + RESET_RETURN + } + if (gBattleMons[gEffectBank].type1 == TYPE_FIRE) + break; + if (gBattleMons[gEffectBank].type2 == TYPE_FIRE) + break; + if (gBattleMons[gEffectBank].ability == ABILITY_WATER_VEIL) + break; + if (gBattleMons[gEffectBank].status1) + break; + + statusChanged = TRUE; + break; + case STATUS_FREEZE: + if (WEATHER_HAS_EFFECT && gBattleWeather & WEATHER_SUN_ANY) + noSunCanFreeze = FALSE; + if (gBattleMons[gEffectBank].type1 == TYPE_ICE) + break; + if (gBattleMons[gEffectBank].type2 == TYPE_ICE) + break; + if (gBattleMons[gEffectBank].status1) + break; + if (noSunCanFreeze == 0) + break; + if (gBattleMons[gEffectBank].ability == ABILITY_MAGMA_ARMOR) + break; + + CancelMultiTurnMoves(gEffectBank); + statusChanged = TRUE; + break; + case STATUS_PARALYSIS: + if (gBattleMons[gEffectBank].ability == ABILITY_LIMBER) + { + if (primary == TRUE || certain == MOVE_EFFECT_CERTAIN) + { + gLastUsedAbility = ABILITY_LIMBER; + RecordAbilityBattle(gEffectBank, ABILITY_LIMBER); + + BattleScriptPush(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = BattleScript_PRLZPrevention; + + if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) + { + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gHitMarker &= ~(HITMARKER_IGNORE_SAFEGUARD); + } + else + { + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + } + RESET_RETURN + } + else + break; + } + if (gBattleMons[gEffectBank].status1) + break; + + statusChanged = TRUE; + break; + case STATUS_TOXIC_POISON: + if (gBattleMons[gEffectBank].ability == ABILITY_IMMUNITY && (primary == TRUE || certain == MOVE_EFFECT_CERTAIN)) + { + gLastUsedAbility = ABILITY_IMMUNITY; + RecordAbilityBattle(gEffectBank, ABILITY_IMMUNITY); + + BattleScriptPush(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = BattleScript_PSNPrevention; + + if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) + { + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gHitMarker &= ~(HITMARKER_IGNORE_SAFEGUARD); + } + else + { + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + } + RESET_RETURN + } + if ((gBattleMons[gEffectBank].type1 == TYPE_POISON || gBattleMons[gEffectBank].type2 == TYPE_POISON + || gBattleMons[gEffectBank].type1 == TYPE_STEEL || gBattleMons[gEffectBank].type2 == TYPE_STEEL) + && (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) + && (primary == TRUE || certain == MOVE_EFFECT_CERTAIN)) + { + BattleScriptPush(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = BattleScript_PSNPrevention; + + gBattleCommunication[MULTISTRING_CHOOSER] = 2; + RESET_RETURN + } + if (gBattleMons[gEffectBank].status1) + break; + if (gBattleMons[gEffectBank].type1 != TYPE_POISON + && gBattleMons[gEffectBank].type2 != TYPE_POISON + && gBattleMons[gEffectBank].type1 != TYPE_STEEL + && gBattleMons[gEffectBank].type2 != TYPE_STEEL) + { + if (gBattleMons[gEffectBank].ability == ABILITY_IMMUNITY) + break; + + // It's redundant, because at this point we know the status1 value is 0. + gBattleMons[gEffectBank].status1 &= ~(STATUS_TOXIC_POISON); + gBattleMons[gEffectBank].status1 &= ~(STATUS_POISON); + statusChanged = TRUE; + break; + } + else + { + gBattleMoveFlags |= MOVESTATUS_NOTAFFECTED; + } + break; + } + if (statusChanged == TRUE) + { + BattleScriptPush(gBattlescriptCurrInstr + 1); + + if (sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]] == STATUS_SLEEP) + gBattleMons[gEffectBank].status1 |= ((Random() & 3) + 2); + else + gBattleMons[gEffectBank].status1 |= sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]; + + gBattlescriptCurrInstr = sMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]]; + + gActiveBank = gEffectBank; + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gEffectBank].status1); + MarkBufferBankForExecution(gActiveBank); + + if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) + { + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gHitMarker &= ~(HITMARKER_IGNORE_SAFEGUARD); + } + else + { + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + } + + // for synchronize + + if (gBattleCommunication[MOVE_EFFECT_BYTE] == MOVE_EFFECT_POISON + || gBattleCommunication[MOVE_EFFECT_BYTE] == MOVE_EFFECT_TOXIC + || gBattleCommunication[MOVE_EFFECT_BYTE] == MOVE_EFFECT_PARALYSIS + || gBattleCommunication[MOVE_EFFECT_BYTE] == MOVE_EFFECT_BURN) + { + u8* synchronizeEffect = &gBattleStruct->synchronizeMoveEffect; + *synchronizeEffect = gBattleCommunication[MOVE_EFFECT_BYTE]; + gHitMarker |= HITMARKER_SYNCHRONISE_EFFECT; + } + return; + } + else if (statusChanged == FALSE) + { + gBattleCommunication[MOVE_EFFECT_BYTE] = 0; + gBattlescriptCurrInstr++; + return; + } + return; + } + else + { + if (gBattleMons[gEffectBank].status2 & sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]) + { + gBattlescriptCurrInstr++; + } + else + { + u8 side; + switch (gBattleCommunication[MOVE_EFFECT_BYTE]) + { + case MOVE_EFFECT_CONFUSION: + if (gBattleMons[gEffectBank].ability == ABILITY_OWN_TEMPO + || gBattleMons[gEffectBank].status2 & STATUS2_CONFUSION) + { + gBattlescriptCurrInstr++; + } + else + { + gBattleMons[gEffectBank].status2 |= (((Random()) % 0x4)) + 2; + + BattleScriptPush(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = sMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]]; + } + break; + case MOVE_EFFECT_FLINCH: + if (gBattleMons[gEffectBank].ability == ABILITY_INNER_FOCUS) + { + if (primary == TRUE || certain == MOVE_EFFECT_CERTAIN) + { + gLastUsedAbility = ABILITY_INNER_FOCUS; + RecordAbilityBattle(gEffectBank, ABILITY_INNER_FOCUS); + gBattlescriptCurrInstr = BattleScript_FlinchPrevention; + } + else + { + gBattlescriptCurrInstr++; + } + } + else + { + if (BankGetTurnOrder(gEffectBank) > gCurrentMoveTurn) + gBattleMons[gEffectBank].status2 |= sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]; + gBattlescriptCurrInstr++; + } + break; + case MOVE_EFFECT_UPROAR: + if (!(gBattleMons[gEffectBank].status2 & STATUS2_UPROAR)) + { + + gBattleMons[gEffectBank].status2 |= STATUS2_MULTIPLETURNS; + gLockedMoves[gEffectBank] = gCurrentMove; + gBattleMons[gEffectBank].status2 |= ((Random() & 3) + 2) << 4; + + BattleScriptPush(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = sMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]]; + } + else + { + gBattlescriptCurrInstr++; + } + break; + case MOVE_EFFECT_PAYDAY: + if (GET_BANK_SIDE(gBankAttacker) == SIDE_PLAYER) + { + u16 PayDay = gPaydayMoney; + gPaydayMoney += (gBattleMons[gBankAttacker].level * 5); + if (PayDay > gPaydayMoney) + gPaydayMoney = 0xFFFF; + } + BattleScriptPush(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = sMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]]; + break; + case MOVE_EFFECT_TRI_ATTACK: + if (gBattleMons[gEffectBank].status1) + { + gBattlescriptCurrInstr++; + } + else + { + gBattleCommunication[MOVE_EFFECT_BYTE] = Random() % 3 + 3; + SetMoveEffect(FALSE, 0); + } + break; + case MOVE_EFFECT_CHARGING: + gBattleMons[gEffectBank].status2 |= STATUS2_MULTIPLETURNS; + gLockedMoves[gEffectBank] = gCurrentMove; + gProtectStructs[gEffectBank].chargingTurn = 1; + gBattlescriptCurrInstr++; + break; + case MOVE_EFFECT_WRAP: + if (gBattleMons[gEffectBank].status2 & STATUS2_WRAPPED) + { + gBattlescriptCurrInstr++; + } + else + { + gBattleMons[gEffectBank].status2 |= ((Random() & 3) + 3) << 0xD; + + *(gBattleStruct->wrappedMove + gEffectBank * 2 + 0) = gCurrentMove; + *(gBattleStruct->wrappedMove + gEffectBank * 2 + 1) = gCurrentMove >> 8; + *(gBattleStruct->wrappedBy + gEffectBank) = gBankAttacker; + + BattleScriptPush(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = sMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]]; + + for (gBattleCommunication[MULTISTRING_CHOOSER] = 0; ; gBattleCommunication[MULTISTRING_CHOOSER]++) + { + if (gBattleCommunication[MULTISTRING_CHOOSER] > 4) + break; + if (gTrappingMoves[gBattleCommunication[MULTISTRING_CHOOSER]] == gCurrentMove) + break; + } + } + break; + case MOVE_EFFECT_RECOIL_25: // 25% recoil + gBattleMoveDamage = (gHpDealt) / 4; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + + BattleScriptPush(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = sMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]]; + break; + case MOVE_EFFECT_ATK_PLUS_1: + case MOVE_EFFECT_DEF_PLUS_1: + case MOVE_EFFECT_SPD_PLUS_1: + case MOVE_EFFECT_SP_ATK_PLUS_1: + case MOVE_EFFECT_SP_DEF_PLUS_1: + case MOVE_EFFECT_ACC_PLUS_1: + case MOVE_EFFECT_EVS_PLUS_1: + if (ChangeStatBuffs(SET_STAT_BUFF_VALUE(1), + gBattleCommunication[MOVE_EFFECT_BYTE] - MOVE_EFFECT_ATK_PLUS_1 + 1, + affectsUser, 0)) + { + gBattlescriptCurrInstr++; + } + else + { + gBattleScripting.animArg1 = gBattleCommunication[MOVE_EFFECT_BYTE] & ~(MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN); + gBattleScripting.animArg2 = 0; + BattleScriptPush(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = BattleScript_StatUp; + } + break; + case MOVE_EFFECT_ATK_MINUS_1: + case MOVE_EFFECT_DEF_MINUS_1: + case MOVE_EFFECT_SPD_MINUS_1: + case MOVE_EFFECT_SP_ATK_MINUS_1: + case MOVE_EFFECT_SP_DEF_MINUS_1: + case MOVE_EFFECT_ACC_MINUS_1: + case MOVE_EFFECT_EVS_MINUS_1: + if (ChangeStatBuffs(SET_STAT_BUFF_VALUE(1) | STAT_BUFF_NEGATIVE, + gBattleCommunication[MOVE_EFFECT_BYTE] - MOVE_EFFECT_ATK_MINUS_1 + 1, + affectsUser, 0)) + { + gBattlescriptCurrInstr++; + } + else + { + gBattleScripting.animArg1 = gBattleCommunication[MOVE_EFFECT_BYTE] & ~(MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN); + gBattleScripting.animArg2 = 0; + BattleScriptPush(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = BattleScript_StatDown; + } + break; + case MOVE_EFFECT_ATK_PLUS_2: + case MOVE_EFFECT_DEF_PLUS_2: + case MOVE_EFFECT_SPD_PLUS_2: + case MOVE_EFFECT_SP_ATK_PLUS_2: + case MOVE_EFFECT_SP_DEF_PLUS_2: + case MOVE_EFFECT_ACC_PLUS_2: + case MOVE_EFFECT_EVS_PLUS_2: + if (ChangeStatBuffs(SET_STAT_BUFF_VALUE(2), + gBattleCommunication[MOVE_EFFECT_BYTE] - MOVE_EFFECT_ATK_PLUS_2 + 1, + affectsUser, 0)) + { + gBattlescriptCurrInstr++; + } + else + { + gBattleScripting.animArg1 = gBattleCommunication[MOVE_EFFECT_BYTE] & ~(MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN); + gBattleScripting.animArg2 = 0; + BattleScriptPush(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = BattleScript_StatUp; + } + break; + case MOVE_EFFECT_ATK_MINUS_2: + case MOVE_EFFECT_DEF_MINUS_2: + case MOVE_EFFECT_SPD_MINUS_2: + case MOVE_EFFECT_SP_ATK_MINUS_2: + case MOVE_EFFECT_SP_DEF_MINUS_2: + case MOVE_EFFECT_ACC_MINUS_2: + case MOVE_EFFECT_EVS_MINUS_2: + if (ChangeStatBuffs(SET_STAT_BUFF_VALUE(2) | STAT_BUFF_NEGATIVE, + gBattleCommunication[MOVE_EFFECT_BYTE] - MOVE_EFFECT_ATK_MINUS_2 + 1, + affectsUser, 0)) + { + gBattlescriptCurrInstr++; + } + else + { + gBattleScripting.animArg1 = gBattleCommunication[MOVE_EFFECT_BYTE] & ~(MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN); + gBattleScripting.animArg2 = 0; + BattleScriptPush(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = BattleScript_StatDown; + } + break; + case MOVE_EFFECT_RECHARGE: + gBattleMons[gEffectBank].status2 |= STATUS2_RECHARGE; + gDisableStructs[gEffectBank].rechargeCounter = 2; + gLockedMoves[gEffectBank] = gCurrentMove; + gBattlescriptCurrInstr++; + break; + case MOVE_EFFECT_RAGE: + gBattleMons[gBankAttacker].status2 |= STATUS2_RAGE; + gBattlescriptCurrInstr++; + break; + case MOVE_EFFECT_STEAL_ITEM: + { + if (gBattleTypeFlags & BATTLE_TYPE_x4000000) + { + gBattlescriptCurrInstr++; + break; + } + + side = GetBankSide(gBankAttacker); + if (GetBankSide(gBankAttacker) == SIDE_OPPONENT + && !(gBattleTypeFlags & + (BATTLE_TYPE_EREADER_TRAINER + | BATTLE_TYPE_FRONTIER + | BATTLE_TYPE_LINK + | BATTLE_TYPE_x2000000 + | BATTLE_TYPE_SECRET_BASE))) + { + gBattlescriptCurrInstr++; + } + else if (!(gBattleTypeFlags & + (BATTLE_TYPE_EREADER_TRAINER + | BATTLE_TYPE_FRONTIER + | BATTLE_TYPE_LINK + | BATTLE_TYPE_x2000000 + | BATTLE_TYPE_SECRET_BASE)) + && (gWishFutureKnock.knockedOffPokes[side] & gBitTable[gBattlePartyID[gBankAttacker]])) + { + gBattlescriptCurrInstr++; + } + else if (gBattleMons[gBankTarget].item + && gBattleMons[gBankTarget].ability == ABILITY_STICKY_HOLD) + { + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_NoItemSteal; + + gLastUsedAbility = gBattleMons[gBankTarget].ability; + RecordAbilityBattle(gBankTarget, gLastUsedAbility); + } + else if (gBattleMons[gBankAttacker].item != 0 + || gBattleMons[gBankTarget].item == ITEM_ENIGMA_BERRY + || IS_ITEM_MAIL(gBattleMons[gBankTarget].item) + || gBattleMons[gBankTarget].item == 0) + { + gBattlescriptCurrInstr++; + } + else + { + u16* changedItem = &gBattleStruct->changedItems[gBankAttacker]; + gLastUsedItem = *changedItem = gBattleMons[gBankTarget].item; + gBattleMons[gBankTarget].item = 0; + + gActiveBank = gBankAttacker; + EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gLastUsedItem); + MarkBufferBankForExecution(gBankAttacker); + + gActiveBank = gBankTarget; + EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gBankTarget].item); + MarkBufferBankForExecution(gBankTarget); + + BattleScriptPush(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = BattleScript_ItemSteal; + + *(u8*)((u8*)(&gBattleStruct->choicedMove[gBankTarget]) + 0) = 0; + *(u8*)((u8*)(&gBattleStruct->choicedMove[gBankTarget]) + 1) = 0; + } + + } + break; + case MOVE_EFFECT_PREVENT_ESCAPE: + gBattleMons[gBankTarget].status2 |= STATUS2_ESCAPE_PREVENTION; + gDisableStructs[gBankTarget].bankPreventingEscape = gBankAttacker; + gBattlescriptCurrInstr++; + break; + case MOVE_EFFECT_NIGHTMARE: + gBattleMons[gBankTarget].status2 |= STATUS2_NIGHTMARE; + gBattlescriptCurrInstr++; + break; + case MOVE_EFFECT_ALL_STATS_UP: + BattleScriptPush(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = BattleScript_AllStatsUp; + break; + case MOVE_EFFECT_RAPIDSPIN: + BattleScriptPush(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = BattleScript_RapidSpinAway; + break; + case MOVE_EFFECT_REMOVE_PARALYSIS: // Smelling salts + if (!(gBattleMons[gBankTarget].status1 & STATUS_PARALYSIS)) + { + gBattlescriptCurrInstr++; + } + else + { + gBattleMons[gBankTarget].status1 &= ~(STATUS_PARALYSIS); + + gActiveBank = gBankTarget; + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); + MarkBufferBankForExecution(gActiveBank); + + BattleScriptPush(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = BattleScript_TargetPRLZHeal; + } + break; + case MOVE_EFFECT_ATK_DEF_DOWN: // SuperPower + BattleScriptPush(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = BattleScript_AtkDefDown; + break; + case MOVE_EFFECT_RECOIL_33_PARALYSIS: // Volt Tackle + gBattleMoveDamage = gHpDealt / 3; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + + BattleScriptPush(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = sMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]]; + break; + case MOVE_EFFECT_THRASH: + if (gBattleMons[gEffectBank].status2 & STATUS2_LOCK_CONFUSE) + { + gBattlescriptCurrInstr++; + } + else + { + gBattleMons[gEffectBank].status2 |= STATUS2_MULTIPLETURNS; + gLockedMoves[gEffectBank] = gCurrentMove; + gBattleMons[gEffectBank].status2 |= (((Random() & 1) + 2) << 0xA); + } + break; + case MOVE_EFFECT_KNOCK_OFF: + if (gBattleMons[gEffectBank].ability == ABILITY_STICKY_HOLD) + { + if (gBattleMons[gEffectBank].item == 0) + { + gBattlescriptCurrInstr++; + } + else + { + gLastUsedAbility = ABILITY_STICKY_HOLD; + gBattlescriptCurrInstr = BattleScript_StickyHoldActivates; + RecordAbilityBattle(gEffectBank, ABILITY_STICKY_HOLD); + } + break; + } + if (gBattleMons[gEffectBank].item) + { + side = GetBankSide(gEffectBank); + + gLastUsedItem = gBattleMons[gEffectBank].item; + gBattleMons[gEffectBank].item = 0; + gWishFutureKnock.knockedOffPokes[side] |= gBitTable[gBattlePartyID[gEffectBank]]; + + BattleScriptPush(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = BattleScript_KnockedOff; + + *(u8*)((u8*)(&gBattleStruct->choicedMove[gEffectBank]) + 0) = 0; + *(u8*)((u8*)(&gBattleStruct->choicedMove[gEffectBank]) + 1) = 0; + } + else + { + gBattlescriptCurrInstr++; + } + break; + case MOVE_EFFECT_SP_ATK_TWO_DOWN: // Overheat + BattleScriptPush(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = BattleScript_SAtkDown2; + break; + } + } + } + + gBattleCommunication[MOVE_EFFECT_BYTE] = 0; +} + +static void atk15_seteffectwithchance(void) +{ + u32 percentChance; + + if (gBattleMons[gBankAttacker].ability == ABILITY_SERENE_GRACE) + percentChance = gBattleMoves[gCurrentMove].secondaryEffectChance * 2; + else + percentChance = gBattleMoves[gCurrentMove].secondaryEffectChance; + + if (gBattleCommunication[MOVE_EFFECT_BYTE] & MOVE_EFFECT_CERTAIN + && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) + { + gBattleCommunication[MOVE_EFFECT_BYTE] &= ~(MOVE_EFFECT_CERTAIN); + SetMoveEffect(0, MOVE_EFFECT_CERTAIN); + } + else if (Random() % 100 < percentChance + && gBattleCommunication[MOVE_EFFECT_BYTE] + && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) + { + if (percentChance >= 100) + SetMoveEffect(0, MOVE_EFFECT_CERTAIN); + else + SetMoveEffect(0, 0); + } + else + { + gBattlescriptCurrInstr++; + } + + gBattleCommunication[MOVE_EFFECT_BYTE] = 0; + gBattleScripting.field_16 = 0; +} + +static void atk16_seteffectprimary(void) +{ + SetMoveEffect(TRUE, 0); +} + +static void atk17_seteffectsecondary(void) +{ + SetMoveEffect(FALSE, 0); +} + +static void atk18_status_effect_clear(void) +{ + gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + + if (gBattleCommunication[MOVE_EFFECT_BYTE] <= MOVE_EFFECT_TOXIC) + gBattleMons[gActiveBank].status1 &= (~sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]); + else + gBattleMons[gActiveBank].status2 &= (~sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]); + + gBattleCommunication[MOVE_EFFECT_BYTE] = 0; + gBattlescriptCurrInstr += 2; + gBattleScripting.field_16 = 0; +} + +static void atk19_faint_pokemon(void) +{ + const u8 *BS_ptr; + + if (gBattlescriptCurrInstr[2] != 0) + { + gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + if (gHitMarker & HITMARKER_FAINTED(gActiveBank)) + { + BS_ptr = BSScriptReadPtr(gBattlescriptCurrInstr + 3); + + BattleScriptPop(); + gBattlescriptCurrInstr = BS_ptr; + gSideAffecting[GetBankSide(gActiveBank)] &= ~(SIDE_STATUS_SPIKES_DAMAGED); + } + else + { + gBattlescriptCurrInstr += 7; + } + } + else + { + u8 bank; + + if (gBattlescriptCurrInstr[1] == BS_GET_ATTACKER) + { + gActiveBank = gBankAttacker; + bank = gBankTarget; + BS_ptr = BattleScript_FaintAttacker; + } + else + { + gActiveBank = gBankTarget; + bank = gBankAttacker; + BS_ptr = BattleScript_FaintTarget; + } + if (!(gAbsentBankFlags & gBitTable[gActiveBank]) + && gBattleMons[gActiveBank].hp == 0) + { + gHitMarker |= HITMARKER_FAINTED(gActiveBank); + BattleScriptPush(gBattlescriptCurrInstr + 7); + gBattlescriptCurrInstr = BS_ptr; + if (GetBankSide(gActiveBank) == SIDE_PLAYER) + { + gHitMarker |= HITMARKER_x400000; + if (gBattleResults.playerFaintCounter < 0xFF) + gBattleResults.playerFaintCounter++; + AdjustFriendshipOnBattleFaint(gActiveBank); + } + else + { + if (gBattleResults.opponentFaintCounter < 0xFF) + gBattleResults.opponentFaintCounter++; + gBattleResults.lastOpponentSpecies = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES, NULL); + } + if ((gHitMarker & HITMARKER_DESTINYBOND) && gBattleMons[gBankAttacker].hp != 0) + { + gHitMarker &= ~(HITMARKER_DESTINYBOND); + BattleScriptPush(gBattlescriptCurrInstr); + gBattleMoveDamage = gBattleMons[bank].hp; + gBattlescriptCurrInstr = BattleScript_DestinyBondTakesLife; + } + if ((gStatuses3[gBankTarget] & STATUS3_GRUDGE) + && !(gHitMarker & HITMARKER_GRUDGE) + && GetBankSide(gBankAttacker) != GetBankSide(gBankTarget) + && gBattleMons[gBankAttacker].hp != 0 + && gCurrentMove != MOVE_STRUGGLE) + { + u8 moveIndex = *(gBattleStruct->chosenMovesIds + gBankAttacker); + + gBattleMons[gBankAttacker].pp[moveIndex] = 0; + BattleScriptPush(gBattlescriptCurrInstr); + gBattlescriptCurrInstr = BattleScript_GrudgeTakesPp; + gActiveBank = gBankAttacker; + EmitSetMonData(0, moveIndex + REQUEST_PPMOVE1_BATTLE, 0, 1, &gBattleMons[gActiveBank].pp[moveIndex]); + MarkBufferBankForExecution(gActiveBank); + + PREPARE_MOVE_BUFFER(gBattleTextBuff1, gBattleMons[gBankAttacker].moves[moveIndex]) + } + } + else + { + gBattlescriptCurrInstr += 7; + } + } +} + +static void atk1A_faint_animation(void) +{ + if (gBattleExecBuffer == 0) + { + gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + EmitFaintAnimation(0); + MarkBufferBankForExecution(gActiveBank); + gBattlescriptCurrInstr += 2; + } +} + +static void atk1B_faint_effects_clear(void) +{ + if (gBattleExecBuffer == 0) + { + gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + + if (!(gBattleTypeFlags & BATTLE_TYPE_ARENA) || gBattleMons[gActiveBank].hp == 0) + { + gBattleMons[gActiveBank].status1 = 0; + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 0x4, &gBattleMons[gActiveBank].status1); + MarkBufferBankForExecution(gActiveBank); + } + + UndoEffectsAfterFainting(); // Effects like attractions, trapping, etc. + gBattlescriptCurrInstr += 2; + } +} + +static void atk1C_jumpifstatus(void) +{ + u8 bank = GetBattleBank(gBattlescriptCurrInstr[1]); + u32 flags = BS2ScriptRead32(gBattlescriptCurrInstr + 2); + const u8* jumpPtr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 6); + + if (gBattleMons[bank].status1 & flags && gBattleMons[bank].hp) + gBattlescriptCurrInstr = jumpPtr; + else + gBattlescriptCurrInstr += 10; +} + +static void atk1D_jumpifstatus2(void) +{ + u8 bank = GetBattleBank(gBattlescriptCurrInstr[1]); + u32 flags = BS2ScriptRead32(gBattlescriptCurrInstr + 2); + const u8* jumpPtr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 6); + + if (gBattleMons[bank].status2 & flags && gBattleMons[bank].hp) + gBattlescriptCurrInstr = jumpPtr; + else + gBattlescriptCurrInstr += 10; +} + +static void atk1E_jumpifability(void) +{ + u8 bank; + u8 ability = gBattlescriptCurrInstr[2]; + const u8* jumpPtr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 3); + + if (gBattlescriptCurrInstr[1] == BS_GET_ATTACKER_SIDE) + { + bank = AbilityBattleEffects(ABILITYEFFECT_CHECK_BANK_SIDE, gBankAttacker, ability, 0, 0); + if (bank) + { + gLastUsedAbility = ability; + gBattlescriptCurrInstr = jumpPtr; + RecordAbilityBattle(bank - 1, gLastUsedAbility); + gBattleScripting.field_15 = bank - 1; + } + else + gBattlescriptCurrInstr += 7; + } + else if (gBattlescriptCurrInstr[1] == BS_GET_NOT_ATTACKER_SIDE) + { + bank = AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gBankAttacker, ability, 0, 0); + if (bank) + { + gLastUsedAbility = ability; + gBattlescriptCurrInstr = jumpPtr; + RecordAbilityBattle(bank - 1, gLastUsedAbility); + gBattleScripting.field_15 = bank - 1; + } + else + gBattlescriptCurrInstr += 7; + } + else + { + bank = GetBattleBank(gBattlescriptCurrInstr[1]); + if (gBattleMons[bank].ability == ability) + { + gLastUsedAbility = ability; + gBattlescriptCurrInstr = jumpPtr; + RecordAbilityBattle(bank, gLastUsedAbility); + gBattleScripting.field_15 = bank; + } + else + gBattlescriptCurrInstr += 7; + } +} + +static void atk1F_jumpifsideaffecting(void) +{ + u8 side; + u16 flags; + const u8* jumpPtr; + + if (gBattlescriptCurrInstr[1] == BS_GET_ATTACKER) + side = GET_BANK_SIDE(gBankAttacker); + else + side = GET_BANK_SIDE(gBankTarget); + + flags = BS2ScriptRead16(gBattlescriptCurrInstr + 2); + jumpPtr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 4); + + if (gSideAffecting[side] & flags) + gBattlescriptCurrInstr = jumpPtr; + else + gBattlescriptCurrInstr += 8; +} + +static void atk20_jumpifstat(void) +{ + u8 ret = 0; + u8 bank = GetBattleBank(gBattlescriptCurrInstr[1]); + u8 value = gBattleMons[bank].statStages[gBattlescriptCurrInstr[3]]; + + switch (gBattlescriptCurrInstr[2]) + { + case CMP_EQUAL: + if (value == gBattlescriptCurrInstr[4]) + ret++; + break; + case CMP_NOT_EQUAL: + if (value != gBattlescriptCurrInstr[4]) + ret++; + break; + case CMP_GREATER_THAN: + if (value > gBattlescriptCurrInstr[4]) + ret++; + break; + case CMP_LESS_THAN: + if (value < gBattlescriptCurrInstr[4]) + ret++; + break; + case CMP_COMMON_BITS: + if (value & gBattlescriptCurrInstr[4]) + ret++; + break; + case CMP_NO_COMMON_BITS: + if (!(value & gBattlescriptCurrInstr[4])) + ret++; + break; + } + + if (ret) + gBattlescriptCurrInstr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 5); + else + gBattlescriptCurrInstr += 9; +} + +static void atk21_jumpifstatus3(void) +{ + u32 flags; + const u8* jumpPtr; + + gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + flags = BS2ScriptRead32(gBattlescriptCurrInstr + 2); + jumpPtr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 7); + + if (gBattlescriptCurrInstr[6]) + { + if ((gStatuses3[gActiveBank] & flags) != 0) + gBattlescriptCurrInstr += 11; + else + gBattlescriptCurrInstr = jumpPtr; + } + else + { + if ((gStatuses3[gActiveBank] & flags) != 0) + gBattlescriptCurrInstr = jumpPtr; + else + gBattlescriptCurrInstr += 11; + } +} + +static void atk22_jumpiftype(void) +{ + u8 bank = GetBattleBank(gBattlescriptCurrInstr[1]); + u8 type = gBattlescriptCurrInstr[2]; + const u8* jumpPtr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 3); + + if (gBattleMons[bank].type1 == type || gBattleMons[bank].type2 == type) + gBattlescriptCurrInstr = jumpPtr; + else + gBattlescriptCurrInstr += 7; +} + +static void atk23_getexp(void) +{ + u16 item; + s32 i; // also used as stringId + u8 holdEffect; + s32 sentIn; + + s32 viaExpShare = 0; + u16* exp = &gBattleStruct->expValue; + + gBank1 = GetBattleBank(gBattlescriptCurrInstr[1]); + sentIn = gSentPokesToOpponent[(gBank1 & 2) >> 1]; + + switch (gBattleScripting.atk23_state) + { + case 0: // check if should receive exp at all + if (GetBankSide(gBank1) != SIDE_OPPONENT || (gBattleTypeFlags & + (BATTLE_TYPE_LINK + | BATTLE_TYPE_x2000000 + | BATTLE_TYPE_x4000000 + | BATTLE_TYPE_FRONTIER + | BATTLE_TYPE_SAFARI + | BATTLE_TYPE_BATTLE_TOWER + | BATTLE_TYPE_EREADER_TRAINER))) + { + gBattleScripting.atk23_state = 6; // goto last case + } + else + { + gBattleScripting.atk23_state++; + gBattleStruct->field_DF |= gBitTable[gBattlePartyID[gBank1]]; + } + break; + case 1: // calculate experience points to redistribute + { + u16 calculatedExp; + s32 viaSentIn; + + for (viaSentIn = 0, i = 0; i < 6; i++) + { + if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) == SPECIES_NONE || GetMonData(&gPlayerParty[i], MON_DATA_HP) == 0) + continue; + if (gBitTable[i] & sentIn) + viaSentIn++; + + item = GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM); + + if (item == ITEM_ENIGMA_BERRY) + holdEffect = gSaveBlock1Ptr->enigmaBerry.holdEffect; + else + holdEffect = ItemId_GetHoldEffect(item); + + if (holdEffect == HOLD_EFFECT_EXP_SHARE) + viaExpShare++; + } + + calculatedExp = gBaseStats[gBattleMons[gBank1].species].expYield * gBattleMons[gBank1].level / 7; + + if (viaExpShare) // at least one mon is getting exp via exp share + { + *exp = calculatedExp / 2 / viaSentIn; + if (*exp == 0) + *exp = 1; + + gExpShareExp = calculatedExp / 2 / viaExpShare; + if (gExpShareExp == 0) + gExpShareExp = 1; + } + else + { + *exp = calculatedExp / viaSentIn; + if (*exp == 0) + *exp = 1; + gExpShareExp = 0; + } + + gBattleScripting.atk23_state++; + gBattleStruct->expGetterId = 0; + gBattleStruct->sentInPokes = sentIn; + } + // fall through + case 2: // set exp value to the poke in expgetter_id and print message + if (gBattleExecBuffer == 0) + { + item = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_HELD_ITEM); + + if (item == ITEM_ENIGMA_BERRY) + holdEffect = gSaveBlock1Ptr->enigmaBerry.holdEffect; + else + holdEffect = ItemId_GetHoldEffect(item); + + if (holdEffect != HOLD_EFFECT_EXP_SHARE && !(gBattleStruct->sentInPokes & 1)) + { + *(&gBattleStruct->sentInPokes) >>= 1; + gBattleScripting.atk23_state = 5; + gBattleMoveDamage = 0; // used for exp + } + else if (GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_LEVEL) == MAX_MON_LEVEL) + { + *(&gBattleStruct->sentInPokes) >>= 1; + gBattleScripting.atk23_state = 5; + gBattleMoveDamage = 0; // used for exp + } + else + { + // music change in wild battle after fainting a poke + if (!(gBattleTypeFlags & BATTLE_TYPE_TRAINER) && gBattleMons[0].hp && !gBattleStruct->wildVictorySong) + { + BattleMusicStop(); + PlayBGM(0x161); + gBattleStruct->wildVictorySong++; + } + + if (GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_HP)) + { + if (gBattleStruct->sentInPokes & 1) + gBattleMoveDamage = *exp; + else + gBattleMoveDamage = 0; + + if (holdEffect == HOLD_EFFECT_EXP_SHARE) + gBattleMoveDamage += gExpShareExp; + if (holdEffect == HOLD_EFFECT_LUCKY_EGG) + gBattleMoveDamage = (gBattleMoveDamage * 150) / 100; + if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) + gBattleMoveDamage = (gBattleMoveDamage * 150) / 100; + + if (IsTradedMon(&gPlayerParty[gBattleStruct->expGetterId])) + { + // check if the pokemon doesn't belong to the player + if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && gBattleStruct->expGetterId >= 3) + { + i = 0x149; + } + else + { + gBattleMoveDamage = (gBattleMoveDamage * 150) / 100; + i = 0x14A; + } + } + else + { + i = 0x149; + } + + // get exp getter bank + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + { + if (!(gBattlePartyID[2] != gBattleStruct->expGetterId) && !(gAbsentBankFlags & gBitTable[2])) + gBattleStruct->expGetterBank = 2; + else + { + if (!(gAbsentBankFlags & gBitTable[0])) + gBattleStruct->expGetterBank = 0; + else + gBattleStruct->expGetterBank = 2; + } + } + else + gBattleStruct->expGetterBank = 0; + + PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gBattleStruct->expGetterBank, gBattleStruct->expGetterId) + + // buffer 'gained' or 'gained a boosted' + PREPARE_STRING_BUFFER(gBattleTextBuff2, i) + + PREPARE_WORD_NUMBER_BUFFER(gBattleTextBuff3, 5, gBattleMoveDamage) + + PrepareStringBattle(0xD, gBattleStruct->expGetterBank); + MonGainEVs(&gPlayerParty[gBattleStruct->expGetterId], gBattleMons[gBank1].species); + } + gBattleStruct->sentInPokes >>= 1; + gBattleScripting.atk23_state++; + } + } + break; + case 3: // Set stats and give exp + if (gBattleExecBuffer == 0) + { + gBattleBufferB[gBattleStruct->expGetterBank][0] = 0; + if (GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_HP) && GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_LEVEL) != MAX_MON_LEVEL) + { + BATTLE_LVLUP_STATS->hp = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_MAX_HP); + BATTLE_LVLUP_STATS->atk = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_ATK); + BATTLE_LVLUP_STATS->def = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_DEF); + BATTLE_LVLUP_STATS->spd = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPD); + BATTLE_LVLUP_STATS->spAtk = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPATK); + BATTLE_LVLUP_STATS->spDef = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPDEF); + + gActiveBank = gBattleStruct->expGetterBank; + EmitExpUpdate(0, gBattleStruct->expGetterId, gBattleMoveDamage); + MarkBufferBankForExecution(gActiveBank); + } + gBattleScripting.atk23_state++; + } + break; + case 4: // lvl up if necessary + if (gBattleExecBuffer == 0) + { + gActiveBank = gBattleStruct->expGetterBank; + if (gBattleBufferB[gActiveBank][0] == 0x21 && gBattleBufferB[gActiveBank][1] == 0xB) + { + if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && gBattlePartyID[gActiveBank] == gBattleStruct->expGetterId) + sub_805E990(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); + + PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gActiveBank, gBattleStruct->expGetterId) + + PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff2, 3, GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_LEVEL)) + + BattleScriptPushCursor(); + gLeveledUpInBattle |= gBitTable[gBattleStruct->expGetterId]; + gBattlescriptCurrInstr = BattleScript_LevelUp; + gBattleMoveDamage = (gBattleBufferB[gActiveBank][2] | (gBattleBufferB[gActiveBank][3] << 8)); + AdjustFriendship(&gPlayerParty[gBattleStruct->expGetterId], 0); + + // update battle mon structure after level up + if (gBattlePartyID[0] == gBattleStruct->expGetterId && gBattleMons[0].hp) + { + gBattleMons[0].level = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_LEVEL); + gBattleMons[0].hp = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_HP); + gBattleMons[0].maxHP = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_MAX_HP); + gBattleMons[0].attack = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_ATK); + gBattleMons[0].defense = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_DEF); + // Why is this duplicated? + gBattleMons[0].speed = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPD); + gBattleMons[0].speed = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPD); + + gBattleMons[0].spAttack = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPATK); + gBattleMons[0].spDefense = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPDEF); + } + // What is else if? + if (gBattlePartyID[2] == gBattleStruct->expGetterId && gBattleMons[2].hp && (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) + { + gBattleMons[2].level = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_LEVEL); + gBattleMons[2].hp = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_HP); + gBattleMons[2].maxHP = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_MAX_HP); + gBattleMons[2].attack = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_ATK); + gBattleMons[2].defense = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_DEF); + // Duplicated again, but this time there's no Sp Defense + gBattleMons[2].speed = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPD); + gBattleMons[2].speed = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPD); + + gBattleMons[2].spAttack = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPATK); + } + gBattleScripting.atk23_state = 5; + } + else + { + gBattleMoveDamage = 0; + gBattleScripting.atk23_state = 5; + } + } + break; + case 5: // looper increment + if (gBattleMoveDamage) // there is exp to give, goto case 3 that gives exp + gBattleScripting.atk23_state = 3; + else + { + gBattleStruct->expGetterId++; + if (gBattleStruct->expGetterId <= 5) + gBattleScripting.atk23_state = 2; // loop again + else + gBattleScripting.atk23_state = 6; // we're done + } + break; + case 6: // increment instruction + if (gBattleExecBuffer == 0) + { + // not sure why gf clears the item and ability here + gBattleMons[gBank1].item = 0; + gBattleMons[gBank1].ability = 0; + gBattlescriptCurrInstr += 2; + } + break; + } +} + +#ifdef NONMATCHING +static void atk24(void) +{ + u16 HP_count = 0; + s32 i; + + if (gBattleExecBuffer) + return; + + if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && gPartnerTrainerId == STEVEN_PARTNER_ID) + { + for (i = 0; i < 3; i++) + { + if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) && !GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG)) + HP_count += GetMonData(&gPlayerParty[i], MON_DATA_HP); + } + } + else + { + for (i = 0; i < 6; i++) + { + if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) && !GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG) + && (!(gBattleTypeFlags & BATTLE_TYPE_ARENA) || !(gBattleStruct->field_2A0 & gBitTable[i]))) + { + HP_count += GetMonData(&gPlayerParty[i], MON_DATA_HP); + } + } + } + + if (HP_count == 0) + gBattleOutcome |= BATTLE_LOST; + + for (HP_count = 0, i = 0; i < 6; i++) + { + if (GetMonData(&gEnemyParty[i], MON_DATA_SPECIES) && !GetMonData(&gEnemyParty[i], MON_DATA_IS_EGG) + && (!(gBattleTypeFlags & BATTLE_TYPE_ARENA) || !(gBattleStruct->field_2A1 & gBitTable[i]))) + { + HP_count += GetMonData(&gEnemyParty[i], MON_DATA_HP); + } + } + + if (HP_count == 0) + gBattleOutcome |= BATTLE_WON; + + if (gBattleOutcome == 0 && (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000))) + { + s32 foundPlayer; + s32 foundOpponent; + + // Impossible to decompile loops. + for (foundPlayer = 0, i = 0; i < gNoOfAllBanks; i += 2) + { + if (HITMARKER_UNK(i) & gHitMarker && !gSpecialStatuses[i].flag40) + foundPlayer++; + } + + for (foundOpponent = 0, i = 1; i < gNoOfAllBanks; i += 2) + { + if (HITMARKER_UNK(i) & gHitMarker && !gSpecialStatuses[i].flag40) + foundOpponent++; + } + + if (gBattleTypeFlags & BATTLE_TYPE_MULTI) + { + if (foundOpponent + foundPlayer > 1) + gBattlescriptCurrInstr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1); + else + gBattlescriptCurrInstr += 5; + } + else + { + if (foundOpponent != 0 && foundPlayer != 0) + gBattlescriptCurrInstr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1); + else + gBattlescriptCurrInstr += 5; + } + } + else + { + gBattlescriptCurrInstr += 5; + } +} +#else +__attribute__((naked)) +static void atk24(void) +{ + asm("\n\ + .syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r8\n\ + push {r7}\n\ + movs r6, 0\n\ + ldr r0, =gBattleExecBuffer\n\ + ldr r0, [r0]\n\ + cmp r0, 0\n\ + beq _0804ACE2\n\ + b _0804AF22\n\ + _0804ACE2:\n\ + ldr r0, =gBattleTypeFlags\n\ + ldr r0, [r0]\n\ + movs r1, 0x80\n\ + lsls r1, 15\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _0804AD48\n\ + ldr r0, =gPartnerTrainerId\n\ + ldrh r1, [r0]\n\ + ldr r0, =0x00000c03\n\ + cmp r1, r0\n\ + bne _0804AD48\n\ + movs r5, 0\n\ + _0804ACFC:\n\ + movs r0, 0x64\n\ + adds r1, r5, 0\n\ + muls r1, r0\n\ + ldr r0, =gPlayerParty\n\ + adds r4, r1, r0\n\ + adds r0, r4, 0\n\ + movs r1, 0xB\n\ + bl GetMonData\n\ + cmp r0, 0\n\ + beq _0804AD2C\n\ + adds r0, r4, 0\n\ + movs r1, 0x2D\n\ + bl GetMonData\n\ + cmp r0, 0\n\ + bne _0804AD2C\n\ + adds r0, r4, 0\n\ + movs r1, 0x39\n\ + bl GetMonData\n\ + adds r0, r6, r0\n\ + lsls r0, 16\n\ + lsrs r6, r0, 16\n\ + _0804AD2C:\n\ + adds r5, 0x1\n\ + cmp r5, 0x2\n\ + ble _0804ACFC\n\ + b _0804ADA8\n\ + .pool\n\ + _0804AD48:\n\ + movs r5, 0\n\ + _0804AD4A:\n\ + movs r0, 0x64\n\ + adds r1, r5, 0\n\ + muls r1, r0\n\ + ldr r0, =gPlayerParty\n\ + adds r4, r1, r0\n\ + adds r0, r4, 0\n\ + movs r1, 0xB\n\ + bl GetMonData\n\ + cmp r0, 0\n\ + beq _0804ADA2\n\ + adds r0, r4, 0\n\ + movs r1, 0x2D\n\ + bl GetMonData\n\ + cmp r0, 0\n\ + bne _0804ADA2\n\ + ldr r0, =gBattleTypeFlags\n\ + ldr r0, [r0]\n\ + movs r1, 0x80\n\ + lsls r1, 11\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _0804AD94\n\ + ldr r0, =gBattleStruct\n\ + ldr r0, [r0]\n\ + movs r1, 0xA8\n\ + lsls r1, 2\n\ + adds r0, r1\n\ + ldrb r1, [r0]\n\ + ldr r2, =gBitTable\n\ + lsls r0, r5, 2\n\ + adds r0, r2\n\ + ldr r0, [r0]\n\ + ands r1, r0\n\ + cmp r1, 0\n\ + bne _0804ADA2\n\ + _0804AD94:\n\ + adds r0, r4, 0\n\ + movs r1, 0x39\n\ + bl GetMonData\n\ + adds r0, r6, r0\n\ + lsls r0, 16\n\ + lsrs r6, r0, 16\n\ + _0804ADA2:\n\ + adds r5, 0x1\n\ + cmp r5, 0x5\n\ + ble _0804AD4A\n\ + _0804ADA8:\n\ + cmp r6, 0\n\ + bne _0804ADB6\n\ + ldr r0, =gBattleOutcome\n\ + ldrb r1, [r0]\n\ + movs r2, 0x2\n\ + orrs r1, r2\n\ + strb r1, [r0]\n\ + _0804ADB6:\n\ + movs r6, 0\n\ + movs r5, 0\n\ + _0804ADBA:\n\ + movs r0, 0x64\n\ + adds r1, r5, 0\n\ + muls r1, r0\n\ + ldr r0, =gEnemyParty\n\ + adds r4, r1, r0\n\ + adds r0, r4, 0\n\ + movs r1, 0xB\n\ + bl GetMonData\n\ + cmp r0, 0\n\ + beq _0804AE10\n\ + adds r0, r4, 0\n\ + movs r1, 0x2D\n\ + bl GetMonData\n\ + cmp r0, 0\n\ + bne _0804AE10\n\ + ldr r0, =gBattleTypeFlags\n\ + ldr r0, [r0]\n\ + movs r1, 0x80\n\ + lsls r1, 11\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _0804AE02\n\ + ldr r0, =gBattleStruct\n\ + ldr r0, [r0]\n\ + ldr r1, =0x000002a1\n\ + adds r0, r1\n\ + ldrb r1, [r0]\n\ + ldr r2, =gBitTable\n\ + lsls r0, r5, 2\n\ + adds r0, r2\n\ + ldr r0, [r0]\n\ + ands r1, r0\n\ + cmp r1, 0\n\ + bne _0804AE10\n\ + _0804AE02:\n\ + adds r0, r4, 0\n\ + movs r1, 0x39\n\ + bl GetMonData\n\ + adds r0, r6, r0\n\ + lsls r0, 16\n\ + lsrs r6, r0, 16\n\ + _0804AE10:\n\ + adds r5, 0x1\n\ + cmp r5, 0x5\n\ + ble _0804ADBA\n\ + ldr r2, =gBattleOutcome\n\ + cmp r6, 0\n\ + bne _0804AE24\n\ + ldrb r0, [r2]\n\ + movs r1, 0x1\n\ + orrs r0, r1\n\ + strb r0, [r2]\n\ + _0804AE24:\n\ + ldrb r0, [r2]\n\ + cmp r0, 0\n\ + bne _0804AF1A\n\ + ldr r0, =gBattleTypeFlags\n\ + ldr r1, [r0]\n\ + ldr r2, =0x02000002\n\ + ands r1, r2\n\ + mov r8, r0\n\ + cmp r1, 0\n\ + beq _0804AF1A\n\ + movs r3, 0\n\ + movs r5, 0\n\ + ldr r0, =gNoOfAllBanks\n\ + ldrb r1, [r0]\n\ + mov r12, r0\n\ + ldr r7, =gBattlescriptCurrInstr\n\ + cmp r3, r1\n\ + bge _0804AE70\n\ + ldr r0, =gHitMarker\n\ + movs r6, 0x80\n\ + lsls r6, 21\n\ + ldr r4, [r0]\n\ + adds r2, r1, 0\n\ + ldr r1, =gSpecialStatuses\n\ + _0804AE54:\n\ + adds r0, r6, 0\n\ + lsls r0, r5\n\ + ands r0, r4\n\ + cmp r0, 0\n\ + beq _0804AE68\n\ + ldrb r0, [r1]\n\ + lsls r0, 25\n\ + cmp r0, 0\n\ + blt _0804AE68\n\ + adds r3, 0x1\n\ + _0804AE68:\n\ + adds r1, 0x28\n\ + adds r5, 0x2\n\ + cmp r5, r2\n\ + blt _0804AE54\n\ + _0804AE70:\n\ + movs r2, 0\n\ + movs r5, 0x1\n\ + mov r4, r12\n\ + ldrb r1, [r4]\n\ + cmp r5, r1\n\ + bge _0804AEAA\n\ + ldr r0, =gHitMarker\n\ + movs r4, 0x80\n\ + lsls r4, 21\n\ + mov r12, r4\n\ + ldr r6, [r0]\n\ + ldr r0, =gSpecialStatuses\n\ + adds r4, r1, 0\n\ + adds r1, r0, 0\n\ + adds r1, 0x14\n\ + _0804AE8E:\n\ + mov r0, r12\n\ + lsls r0, r5\n\ + ands r0, r6\n\ + cmp r0, 0\n\ + beq _0804AEA2\n\ + ldrb r0, [r1]\n\ + lsls r0, 25\n\ + cmp r0, 0\n\ + blt _0804AEA2\n\ + adds r2, 0x1\n\ + _0804AEA2:\n\ + adds r1, 0x28\n\ + adds r5, 0x2\n\ + cmp r5, r4\n\ + blt _0804AE8E\n\ + _0804AEAA:\n\ + mov r1, r8\n\ + ldr r0, [r1]\n\ + movs r1, 0x40\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _0804AEF0\n\ + adds r0, r2, r3\n\ + cmp r0, 0x1\n\ + bgt _0804AEF8\n\ + b _0804AF12\n\ + .pool\n\ + _0804AEF0:\n\ + cmp r2, 0\n\ + beq _0804AF12\n\ + cmp r3, 0\n\ + beq _0804AF12\n\ + _0804AEF8:\n\ + ldr r2, [r7]\n\ + ldrb r1, [r2, 0x1]\n\ + ldrb r0, [r2, 0x2]\n\ + lsls r0, 8\n\ + adds r1, r0\n\ + ldrb r0, [r2, 0x3]\n\ + lsls r0, 16\n\ + adds r1, r0\n\ + ldrb r0, [r2, 0x4]\n\ + lsls r0, 24\n\ + adds r1, r0\n\ + str r1, [r7]\n\ + b _0804AF22\n\ + _0804AF12:\n\ + ldr r0, [r7]\n\ + adds r0, 0x5\n\ + str r0, [r7]\n\ + b _0804AF22\n\ + _0804AF1A:\n\ + ldr r1, =gBattlescriptCurrInstr\n\ + ldr r0, [r1]\n\ + adds r0, 0x5\n\ + str r0, [r1]\n\ + _0804AF22:\n\ + pop {r3}\n\ + mov r8, r3\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided"); +} + +#endif // NONMATCHING + +static void MoveValuesCleanUp(void) +{ + gBattleMoveFlags = 0; + gBattleScripting.dmgMultiplier = 1; + gCritMultiplier = 1; + gBattleCommunication[MOVE_EFFECT_BYTE] = 0; + gBattleCommunication[6] = 0; + gHitMarker &= ~(HITMARKER_DESTINYBOND); + gHitMarker &= ~(HITMARKER_SYNCHRONISE_EFFECT); +} + +static void atk25_move_values_cleanup(void) +{ + MoveValuesCleanUp(); + gBattlescriptCurrInstr += 1; +} + +static void atk26_set_multihit(void) +{ + gMultiHitCounter = gBattlescriptCurrInstr[1]; + gBattlescriptCurrInstr += 2; +} + +static void atk27_decrement_multihit(void) +{ + if (--gMultiHitCounter == 0) + gBattlescriptCurrInstr += 5; + else + gBattlescriptCurrInstr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1); +} + +static void atk28_goto(void) +{ + gBattlescriptCurrInstr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1); +} + +static void atk29_jumpifbyte(void) +{ + u8 caseID = gBattlescriptCurrInstr[1]; + const u8* memByte = BS2ScriptReadPtr(gBattlescriptCurrInstr + 2); + u8 value = gBattlescriptCurrInstr[6]; + const u8* jumpPtr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 7); + + gBattlescriptCurrInstr += 11; + + switch (caseID) + { + case CMP_EQUAL: + if (*memByte == value) + gBattlescriptCurrInstr = jumpPtr; + break; + case CMP_NOT_EQUAL: + if (*memByte != value) + gBattlescriptCurrInstr = jumpPtr; + break; + case CMP_GREATER_THAN: + if (*memByte > value) + gBattlescriptCurrInstr = jumpPtr; + break; + case CMP_LESS_THAN: + if (*memByte < value) + gBattlescriptCurrInstr = jumpPtr; + break; + case CMP_COMMON_BITS: + if (*memByte & value) + gBattlescriptCurrInstr = jumpPtr; + break; + case CMP_NO_COMMON_BITS: + if (!(*memByte & value)) + gBattlescriptCurrInstr = jumpPtr; + break; + } +} + +static void atk2A_jumpifhalfword(void) +{ + u8 caseID = gBattlescriptCurrInstr[1]; + const u16* memHword = BS2ScriptReadPtr(gBattlescriptCurrInstr + 2); + u16 value = BS2ScriptRead16(gBattlescriptCurrInstr + 6); + const u8* jumpPtr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 8); + + gBattlescriptCurrInstr += 12; + + switch (caseID) + { + case CMP_EQUAL: + if (*memHword == value) + gBattlescriptCurrInstr = jumpPtr; + break; + case CMP_NOT_EQUAL: + if (*memHword != value) + gBattlescriptCurrInstr = jumpPtr; + break; + case CMP_GREATER_THAN: + if (*memHword > value) + gBattlescriptCurrInstr = jumpPtr; + break; + case CMP_LESS_THAN: + if (*memHword < value) + gBattlescriptCurrInstr = jumpPtr; + break; + case CMP_COMMON_BITS: + if (*memHword & value) + gBattlescriptCurrInstr = jumpPtr; + break; + case CMP_NO_COMMON_BITS: + if (!(*memHword & value)) + gBattlescriptCurrInstr = jumpPtr; + break; + } +} + +static void atk2B_jumpifword(void) +{ + u8 caseID = gBattlescriptCurrInstr[1]; + const u32* memWord = BS2ScriptReadPtr(gBattlescriptCurrInstr + 2); + u32 value = BSScriptRead32(gBattlescriptCurrInstr + 6); + const u8* jumpPtr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 10); + + gBattlescriptCurrInstr += 14; + + switch (caseID) + { + case CMP_EQUAL: + if (*memWord == value) + gBattlescriptCurrInstr = jumpPtr; + break; + case CMP_NOT_EQUAL: + if (*memWord != value) + gBattlescriptCurrInstr = jumpPtr; + break; + case CMP_GREATER_THAN: + if (*memWord > value) + gBattlescriptCurrInstr = jumpPtr; + break; + case CMP_LESS_THAN: + if (*memWord < value) + gBattlescriptCurrInstr = jumpPtr; + break; + case CMP_COMMON_BITS: + if (*memWord & value) + gBattlescriptCurrInstr = jumpPtr; + break; + case CMP_NO_COMMON_BITS: + if (!(*memWord & value)) + gBattlescriptCurrInstr = jumpPtr; + break; + } +} + +static void atk2C_jumpifarrayequal(void) +{ + const u8* mem1 = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1); + const u8* mem2 = BS2ScriptReadPtr(gBattlescriptCurrInstr + 5); + u32 size = gBattlescriptCurrInstr[9]; + const u8* jumpPtr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 10); + + u8 i; + for (i = 0; i < size; i++) + { + if (*mem1 != *mem2) + { + gBattlescriptCurrInstr += 14; + break; + } + mem1++, mem2++; + } + + if (i == size) + gBattlescriptCurrInstr = jumpPtr; +} + +static void atk2D_jumpifarraynotequal(void) +{ + u8 equalBytes = 0; + const u8* mem1 = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1); + const u8* mem2 = BS2ScriptReadPtr(gBattlescriptCurrInstr + 5); + u32 size = gBattlescriptCurrInstr[9]; + const u8* jumpPtr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 10); + + u8 i; + for (i = 0; i < size; i++) + { + if (*mem1 == *mem2) + { + equalBytes++; + } + mem1++, mem2++; + } + + if (equalBytes != size) + gBattlescriptCurrInstr = jumpPtr; + else + gBattlescriptCurrInstr += 14; +} + +static void atk2E_setbyte(void) +{ + u8* memByte = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1); + *memByte = gBattlescriptCurrInstr[5]; + + gBattlescriptCurrInstr += 6; +} + +static void atk2F_addbyte(void) +{ + u8* memByte = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1); + *memByte += gBattlescriptCurrInstr[5]; + gBattlescriptCurrInstr += 6; +} + +static void atk30_subbyte(void) +{ + u8* memByte = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1); + *memByte -= gBattlescriptCurrInstr[5]; + gBattlescriptCurrInstr += 6; +} + +static void atk31_copyarray(void) +{ + u8* dest = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1); + const u8* src = BS2ScriptReadPtr(gBattlescriptCurrInstr + 5); + s32 size = gBattlescriptCurrInstr[9]; + + s32 i; + for (i = 0; i < size; i++) + { + dest[i] = src[i]; + } + + gBattlescriptCurrInstr += 10; +} + +static void atk32_copyarray_withindex(void) +{ + u8* dest = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1); + const u8* src = BS2ScriptReadPtr(gBattlescriptCurrInstr + 5); + const u8* index = BS2ScriptReadPtr(gBattlescriptCurrInstr + 9); + s32 size = gBattlescriptCurrInstr[13]; + + s32 i; + for (i = 0; i < size; i++) + { + dest[i] = src[i + *index]; + } + + gBattlescriptCurrInstr += 14; +} + +static void atk33_orbyte(void) +{ + u8* memByte = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1); + *memByte |= gBattlescriptCurrInstr[5]; + gBattlescriptCurrInstr += 6; +} + +static void atk34_orhalfword(void) +{ + u16* memHword = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1); + u16 val = BS2ScriptRead16(gBattlescriptCurrInstr + 5); + + *memHword |= val; + gBattlescriptCurrInstr += 7; +} + +static void atk35_orword(void) +{ + u32* memWord = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1); + u32 val = BS2ScriptRead32(gBattlescriptCurrInstr + 5); + + *memWord |= val; + gBattlescriptCurrInstr += 9; +} + +static void atk36_bicbyte(void) +{ + u8* memByte = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1); + *memByte &= ~(gBattlescriptCurrInstr[5]); + gBattlescriptCurrInstr += 6; +} + +static void atk37_bichalfword(void) +{ + u16* memHword = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1); + u16 val = BS2ScriptRead16(gBattlescriptCurrInstr + 5); + + *memHword &= ~val; + gBattlescriptCurrInstr += 7; +} + +static void atk38_bicword(void) +{ + u32* memWord = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1); + u32 val = BS2ScriptRead32(gBattlescriptCurrInstr + 5); + + *memWord &= ~val; + gBattlescriptCurrInstr += 9; +} + +static void atk39_pause(void) +{ + if (gBattleExecBuffer == 0) + { + u16 value = BS2ScriptRead16(gBattlescriptCurrInstr + 1); + if (++gPauseCounterBattle >= value) + { + gPauseCounterBattle = 0; + gBattlescriptCurrInstr += 3; + } + } +} + +static void atk3A_waitstate(void) +{ + if (gBattleExecBuffer == 0) + gBattlescriptCurrInstr++; +} + +static void atk3B_healthbar_update(void) +{ + if (gBattlescriptCurrInstr[1] == BS_GET_TARGET) + gActiveBank = gBankTarget; + else + gActiveBank = gBankAttacker; + + EmitHealthBarUpdate(0, gBattleMoveDamage); + MarkBufferBankForExecution(gActiveBank); + gBattlescriptCurrInstr += 2; +} + +static void atk3C_return(void) +{ + BattleScriptPop(); +} + +static void atk3D_end(void) +{ + if (gBattleTypeFlags & BATTLE_TYPE_ARENA) + sub_81A5718(gBankAttacker); + + gBattleMoveFlags = 0; + gActiveBank = 0; + gFightStateTracker = 0xB; +} + +static void atk3E_end2(void) +{ + gActiveBank = 0; + gFightStateTracker = 0xB; +} + +static void atk3F_end3(void) // pops the main function stack +{ + BattleScriptPop(); + if (BATTLE_CALLBACKS_STACK->size) + BATTLE_CALLBACKS_STACK->size--; + gBattleMainFunc = BATTLE_CALLBACKS_STACK->function[BATTLE_CALLBACKS_STACK->size]; +} + +static void atk41_call(void) +{ + BattleScriptPush(gBattlescriptCurrInstr + 5); + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); +} + +static void atk42_jumpiftype2(void) +{ + u8 bank = GetBattleBank(gBattlescriptCurrInstr[1]); + + if (gBattlescriptCurrInstr[2] == gBattleMons[bank].type1 || gBattlescriptCurrInstr[2] == gBattleMons[bank].type2) + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 3); + else + gBattlescriptCurrInstr += 7; +} + +static void atk43_jumpifabilitypresent(void) +{ + if (AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, gBattlescriptCurrInstr[1], 0, 0)) + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 2); + else + gBattlescriptCurrInstr += 6; +} + +static void atk44(void) +{ + *(gBankAttacker + gBattleStruct->field_54) = 1; +} + +static void atk45_playanimation(void) +{ + const u16* argumentPtr; + + gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + argumentPtr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 3); + + if (gBattlescriptCurrInstr[2] == B_ANIM_STATS_CHANGE + || gBattlescriptCurrInstr[2] == B_ANIM_SNATCH_MOVE + || gBattlescriptCurrInstr[2] == B_ANIM_SUBSTITUTE_FADE) + { + EmitBattleAnimation(0, gBattlescriptCurrInstr[2], *argumentPtr); + MarkBufferBankForExecution(gActiveBank); + gBattlescriptCurrInstr += 7; + } + else if (gHitMarker & HITMARKER_NO_ANIMATIONS) + { + BattleScriptPush(gBattlescriptCurrInstr + 7); + gBattlescriptCurrInstr = BattleScript_Pausex20; + } + else if (gBattlescriptCurrInstr[2] == B_ANIM_RAIN_CONTINUES + || gBattlescriptCurrInstr[2] == B_ANIM_SUN_CONTINUES + || gBattlescriptCurrInstr[2] == B_ANIM_SANDSTORM_CONTINUES + || gBattlescriptCurrInstr[2] == B_ANIM_HAIL_CONTINUES) + { + EmitBattleAnimation(0, gBattlescriptCurrInstr[2], *argumentPtr); + MarkBufferBankForExecution(gActiveBank); + gBattlescriptCurrInstr += 7; + } + else if (gStatuses3[gActiveBank] & STATUS3_SEMI_INVULNERABLE) + { + gBattlescriptCurrInstr += 7; + } + else + { + EmitBattleAnimation(0, gBattlescriptCurrInstr[2], *argumentPtr); + MarkBufferBankForExecution(gActiveBank); + gBattlescriptCurrInstr += 7; + } +} + +static void atk46_playanimation2(void) // animation Id is stored in the first pointer +{ + const u16* argumentPtr; + const u8* animationIdPtr; + + gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + animationIdPtr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 2); + argumentPtr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 6); + + if (*animationIdPtr == B_ANIM_STATS_CHANGE + || *animationIdPtr == B_ANIM_SNATCH_MOVE + || *animationIdPtr == B_ANIM_SUBSTITUTE_FADE) + { + EmitBattleAnimation(0, *animationIdPtr, *argumentPtr); + MarkBufferBankForExecution(gActiveBank); + gBattlescriptCurrInstr += 10; + } + else if (gHitMarker & HITMARKER_NO_ANIMATIONS) + { + gBattlescriptCurrInstr += 10; + } + else if (*animationIdPtr == B_ANIM_RAIN_CONTINUES + || *animationIdPtr == B_ANIM_SUN_CONTINUES + || *animationIdPtr == B_ANIM_SANDSTORM_CONTINUES + || *animationIdPtr == B_ANIM_HAIL_CONTINUES) + { + EmitBattleAnimation(0, *animationIdPtr, *argumentPtr); + MarkBufferBankForExecution(gActiveBank); + gBattlescriptCurrInstr += 10; + } + else if (gStatuses3[gActiveBank] & STATUS3_SEMI_INVULNERABLE) + { + gBattlescriptCurrInstr += 10; + } + else + { + EmitBattleAnimation(0, *animationIdPtr, *argumentPtr); + MarkBufferBankForExecution(gActiveBank); + gBattlescriptCurrInstr += 10; + } +} + +static void atk47_setgraphicalstatchangevalues(void) +{ + u8 value = 0; + switch (gBattleScripting.statChanger & 0xF0) + { + case 0x10: // +1 + value = 0xF; + break; + case 0x20: // +2 + value = 0x27; + break; + case 0x90: // -1 + value = 0x16; + break; + case 0xA0: // -2 + value = 0x2E; + break; + } + gBattleScripting.animArg1 = (gBattleScripting.statChanger & 0xF) + value - 1; + gBattleScripting.animArg2 = 0; + gBattlescriptCurrInstr++; +} + +#ifdef NONMATCHING +static void atk48_playstatchangeanimation(void) +{ + u32 currStat = 0; + s16 statAnimId = 0; + s16 checkingStatAnimId = 0; + s32 changeableStats = 0; + u32 statsToCheck = 0; + + gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + statsToCheck = gBattlescriptCurrInstr[2]; + + if (gBattlescriptCurrInstr[3] & ATK48_STAT_NEGATIVE) // goes down + { + checkingStatAnimId = (gBattlescriptCurrInstr[3] & ATK48_STAT_BY_TWO) ? 0x2D : 0x15; + while (statsToCheck != 0) + { + if (statsToCheck & 1) + { + if (!(gBattlescriptCurrInstr[3] & ATK48_LOWER_FAIL_CHECK)) + { + if (gBattleMons[gActiveBank].statStages[currStat] > 0) + { + statAnimId = checkingStatAnimId; + changeableStats++; + } + } + else if (!gSideTimers[GET_BANK_SIDE(gActiveBank)].mistTimer + && gBattleMons[gActiveBank].ability != ABILITY_CLEAR_BODY + && gBattleMons[gActiveBank].ability != ABILITY_WHITE_SMOKE + && !(gBattleMons[gActiveBank].ability == ABILITY_KEEN_EYE && currStat == STAT_STAGE_ACC) + && !(gBattleMons[gActiveBank].ability == ABILITY_HYPER_CUTTER && currStat == STAT_STAGE_ATK)) + { + if (gBattleMons[gActiveBank].statStages[currStat] > 0) + { + statAnimId = checkingStatAnimId; + changeableStats++; + } + } + } + statsToCheck >>= 1, checkingStatAnimId++, currStat++; + } + + if (changeableStats > 1) // more than one stat, so the color is gray + { + if (gBattlescriptCurrInstr[3] & ATK48_STAT_BY_TWO) + statAnimId = 0x3A; + else + statAnimId = 0x39; + } + } + else // goes up + { + checkingStatAnimId = (gBattlescriptCurrInstr[3] & ATK48_STAT_BY_TWO) ? 0x26 : 0xE; + while (statsToCheck != 0) + { + if (statsToCheck & 1 && gBattleMons[gActiveBank].statStages[currStat] < 0xC) + { + statAnimId = checkingStatAnimId; + changeableStats++; + } + statsToCheck >>= 1, checkingStatAnimId += 1, currStat++; + } + + if (changeableStats > 1) // more than one stat, so the color is gray + { + if (gBattlescriptCurrInstr[3] & ATK48_STAT_BY_TWO) + statAnimId = 0x38; + else + statAnimId = 0x37; + } + } + + if (gBattlescriptCurrInstr[3] & ATK48_BIT_x4 && changeableStats < 2) + { + gBattlescriptCurrInstr += 4; + } + else if (changeableStats != 0 && gBattleScripting.field_1B == 0) + { + EmitBattleAnimation(0, B_ANIM_STATS_CHANGE, statAnimId); + MarkBufferBankForExecution(gActiveBank); + if (gBattlescriptCurrInstr[3] & ATK48_BIT_x4 && changeableStats > 1) + gBattleScripting.field_1B = 1; + gBattlescriptCurrInstr += 4; + } + else + { + gBattlescriptCurrInstr += 4; + } +} +#else +__attribute__((naked)) +static void atk48_playstatchangeanimation(void) +{ + asm("\n\ + .syntax unified\n\ + 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\ + movs r7, 0\n\ + movs r0, 0\n\ + mov r8, r0\n\ + movs r3, 0\n\ + ldr r5, =gBattlescriptCurrInstr\n\ + ldr r0, [r5]\n\ + ldrb r0, [r0, 0x1]\n\ + str r3, [sp]\n\ + bl GetBattleBank\n\ + ldr r2, =gActiveBank\n\ + strb r0, [r2]\n\ + ldr r0, [r5]\n\ + ldrb r4, [r0, 0x2]\n\ + ldrb r1, [r0, 0x3]\n\ + movs r0, 0x1\n\ + ands r0, r1\n\ + ldr r3, [sp]\n\ + cmp r0, 0\n\ + beq _0804BAEC\n\ + movs r0, 0x2\n\ + ands r0, r1\n\ + movs r1, 0x15\n\ + cmp r0, 0\n\ + beq _0804BA18\n\ + movs r1, 0x2D\n\ +_0804BA18:\n\ + cmp r4, 0\n\ + beq _0804BAC0\n\ + movs r0, 0x1\n\ + mov r10, r0\n\ + ldr r0, =gBattleMons + 0x18\n\ + mov r9, r0\n\ + lsls r5, r1, 16\n\ +_0804BA26:\n\ + adds r0, r4, 0\n\ + mov r1, r10\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _0804BAB2\n\ + ldr r0, =gBattlescriptCurrInstr\n\ + ldr r0, [r0]\n\ + ldrb r1, [r0, 0x3]\n\ + movs r0, 0x8\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _0804BA58\n\ + ldr r0, =gActiveBank\n\ + ldrb r1, [r0]\n\ + movs r0, 0x58\n\ + muls r0, r1\n\ + adds r0, r7, r0\n\ + b _0804BAA0\n\ + .pool\n\ +_0804BA58:\n\ + ldr r6, =gActiveBank\n\ + ldrb r0, [r6]\n\ + str r3, [sp]\n\ + bl GetBankIdentity\n\ + mov r1, r10\n\ + ands r1, r0\n\ + lsls r0, r1, 1\n\ + adds r0, r1\n\ + lsls r0, 2\n\ + ldr r1, =gSideTimers\n\ + adds r0, r1\n\ + ldrb r0, [r0, 0x4]\n\ + ldr r3, [sp]\n\ + cmp r0, 0\n\ + bne _0804BAB2\n\ + ldr r0, =gBattleMons\n\ + ldrb r2, [r6]\n\ + movs r1, 0x58\n\ + muls r2, r1\n\ + adds r0, r2, r0\n\ + adds r0, 0x20\n\ + ldrb r0, [r0]\n\ + cmp r0, 0x1D\n\ + beq _0804BAB2\n\ + cmp r0, 0x49\n\ + beq _0804BAB2\n\ + cmp r0, 0x33\n\ + bne _0804BA96\n\ + cmp r7, 0x6\n\ + beq _0804BAB2\n\ +_0804BA96:\n\ + cmp r0, 0x34\n\ + bne _0804BA9E\n\ + cmp r7, 0x1\n\ + beq _0804BAB2\n\ +_0804BA9E:\n\ + adds r0, r7, r2\n\ +_0804BAA0:\n\ + add r0, r9\n\ + ldrb r0, [r0]\n\ + lsls r0, 24\n\ + asrs r0, 24\n\ + cmp r0, 0\n\ + ble _0804BAB2\n\ + lsrs r0, r5, 16\n\ + mov r8, r0\n\ + adds r3, 0x1\n\ +_0804BAB2:\n\ + lsrs r4, 1\n\ + movs r1, 0x80\n\ + lsls r1, 9\n\ + adds r5, r1\n\ + adds r7, 0x1\n\ + cmp r4, 0\n\ + bne _0804BA26\n\ +_0804BAC0:\n\ + ldr r0, =gBattlescriptCurrInstr\n\ + mov r9, r0\n\ + cmp r3, 0x1\n\ + ble _0804BB4E\n\ + ldr r0, [r0]\n\ + ldrb r1, [r0, 0x3]\n\ + movs r0, 0x2\n\ + ands r0, r1\n\ + movs r1, 0x39\n\ + mov r8, r1\n\ + cmp r0, 0\n\ + beq _0804BB4E\n\ + movs r0, 0x3A\n\ + b _0804BB4C\n\ + .pool\n\ +_0804BAEC:\n\ + movs r0, 0x2\n\ + ands r0, r1\n\ + movs r1, 0xE\n\ + cmp r0, 0\n\ + beq _0804BAF8\n\ + movs r1, 0x26\n\ +_0804BAF8:\n\ + mov r9, r5\n\ + cmp r4, 0\n\ + beq _0804BB34\n\ + ldr r6, =gBattleMons + 0x18\n\ + adds r5, r2, 0\n\ + lsls r2, r1, 16\n\ +_0804BB04:\n\ + movs r0, 0x1\n\ + ands r0, r4\n\ + cmp r0, 0\n\ + beq _0804BB26\n\ + ldrb r1, [r5]\n\ + movs r0, 0x58\n\ + muls r0, r1\n\ + adds r0, r7, r0\n\ + adds r0, r6\n\ + ldrb r0, [r0]\n\ + lsls r0, 24\n\ + asrs r0, 24\n\ + cmp r0, 0xB\n\ + bgt _0804BB26\n\ + lsrs r1, r2, 16\n\ + mov r8, r1\n\ + adds r3, 0x1\n\ +_0804BB26:\n\ + lsrs r4, 1\n\ + movs r0, 0x80\n\ + lsls r0, 9\n\ + adds r2, r0\n\ + adds r7, 0x1\n\ + cmp r4, 0\n\ + bne _0804BB04\n\ +_0804BB34:\n\ + cmp r3, 0x1\n\ + ble _0804BB4E\n\ + mov r1, r9\n\ + ldr r0, [r1]\n\ + ldrb r1, [r0, 0x3]\n\ + movs r0, 0x2\n\ + ands r0, r1\n\ + movs r1, 0x37\n\ + mov r8, r1\n\ + cmp r0, 0\n\ + beq _0804BB4E\n\ + movs r0, 0x38\n\ +_0804BB4C:\n\ + mov r8, r0\n\ +_0804BB4E:\n\ + mov r1, r9\n\ + ldr r2, [r1]\n\ + ldrb r1, [r2, 0x3]\n\ + movs r0, 0x4\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _0804BB6C\n\ + cmp r3, 0x1\n\ + bgt _0804BB6C\n\ + adds r0, r2, 0x4\n\ + mov r1, r9\n\ + b _0804BBBA\n\ + .pool\n\ +_0804BB6C:\n\ + cmp r3, 0\n\ + beq _0804BBB4\n\ + ldr r4, =gBattleScripting\n\ + ldrb r0, [r4, 0x1B]\n\ + cmp r0, 0\n\ + bne _0804BBB4\n\ + movs r0, 0\n\ + movs r1, 0x1\n\ + mov r2, r8\n\ + str r3, [sp]\n\ + bl EmitBattleAnimation\n\ + ldr r0, =gActiveBank\n\ + ldrb r0, [r0]\n\ + bl MarkBufferBankForExecution\n\ + ldr r0, =gBattlescriptCurrInstr\n\ + ldr r0, [r0]\n\ + ldrb r1, [r0, 0x3]\n\ + movs r0, 0x4\n\ + ands r0, r1\n\ + ldr r3, [sp]\n\ + cmp r0, 0\n\ + beq _0804BBA4\n\ + cmp r3, 0x1\n\ + ble _0804BBA4\n\ + movs r0, 0x1\n\ + strb r0, [r4, 0x1B]\n\ +_0804BBA4:\n\ + ldr r1, =gBattlescriptCurrInstr\n\ + b _0804BBB6\n\ + .pool\n\ +_0804BBB4:\n\ + mov r1, r9\n\ +_0804BBB6:\n\ + ldr r0, [r1]\n\ + adds r0, 0x4\n\ +_0804BBBA:\n\ + str r0, [r1]\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\ + .syntax divided"); +} +#endif // NONMATCHING + +#define ATK49_LAST_CASE 17 + +static void atk49_moveend(void) +{ + s32 i; + bool32 effect; + u8 moveType; + u8 holdEffectAtk; + u16 *choicedMoveAtk; + u8 arg1, arg2; + u16 lastMove; + + effect = FALSE; + + if (gLastUsedMove == 0xFFFF) + lastMove = 0; + else + lastMove = gLastUsedMove; + + arg1 = gBattlescriptCurrInstr[1]; + arg2 = gBattlescriptCurrInstr[2]; + + if (gBattleMons[gBankAttacker].item == ITEM_ENIGMA_BERRY) + holdEffectAtk = gEnigmaBerries[gBankAttacker].holdEffect; + else + holdEffectAtk = ItemId_GetHoldEffect(gBattleMons[gBankAttacker].item); + + choicedMoveAtk = &gBattleStruct->choicedMove[gBankAttacker]; + + GET_MOVE_TYPE(gCurrentMove, moveType); + + do + { + switch (gBattleScripting.atk49_state) + { + case 0: // rage check + if (gBattleMons[gBankTarget].status2 & STATUS2_RAGE + && gBattleMons[gBankTarget].hp != 0 && gBankAttacker != gBankTarget + && GetBankSide(gBankAttacker) != GetBankSide(gBankTarget) + && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT) && TARGET_TURN_DAMAGED + && gBattleMoves[gCurrentMove].power && gBattleMons[gBankTarget].statStages[STAT_STAGE_ATK] <= 0xB) + { + gBattleMons[gBankTarget].statStages[STAT_STAGE_ATK]++; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_RageIsBuilding; + effect = TRUE; + } + gBattleScripting.atk49_state++; + break; + case 1: // defrosting check + if (gBattleMons[gBankTarget].status1 & STATUS_FREEZE + && gBattleMons[gBankTarget].hp != 0 && gBankAttacker != gBankTarget + && gSpecialStatuses[gBankTarget].moveturnLostHP_special + && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT) && moveType == TYPE_FIRE) + { + gBattleMons[gBankTarget].status1 &= ~(STATUS_FREEZE); + gActiveBank = gBankTarget; + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBankTarget].status1); + MarkBufferBankForExecution(gActiveBank); + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_DefrostedViaFireMove; + effect = TRUE; + } + gBattleScripting.atk49_state++; + break; + case 2: // target synchronize + if (AbilityBattleEffects(ABILITYEFFECT_SYNCHRONIZE, gBankTarget, 0, 0, 0)) + effect = TRUE; + gBattleScripting.atk49_state++; + break; + case 3: // contact abilities + if (AbilityBattleEffects(ABILITYEFFECT_CONTACT, gBankTarget, 0, 0, 0)) + effect = TRUE; + gBattleScripting.atk49_state++; + break; + case 4: // status immunities + if (AbilityBattleEffects(ABILITYEFFECT_IMMUNITY, 0, 0, 0, 0)) + effect = TRUE; // it loops through all banks, so we increment after its done with all banks + else + gBattleScripting.atk49_state++; + break; + case 5: // attacker synchronize + if (AbilityBattleEffects(ABILITYEFFECT_ATK_SYNCHRONIZE, gBankAttacker, 0, 0, 0)) + effect = TRUE; + gBattleScripting.atk49_state++; + break; + case 6: // update choice band move + if (!(gHitMarker & HITMARKER_OBEYS) || holdEffectAtk != HOLD_EFFECT_CHOICE_BAND + || gLastUsedMove == MOVE_STRUGGLE || (*choicedMoveAtk != 0 && *choicedMoveAtk != 0xFFFF)) + goto LOOP; + if (gLastUsedMove == MOVE_BATON_PASS && !(gBattleMoveFlags & MOVESTATUS_FAILED)) + { + gBattleScripting.atk49_state++; + break; + } + *choicedMoveAtk = gLastUsedMove; + LOOP: + { + for (i = 0; i < 4; i++) + { + if (gBattleMons[gBankAttacker].moves[i] == *choicedMoveAtk) + break; + } + if (i == 4) + *choicedMoveAtk = 0; + + gBattleScripting.atk49_state++; + } + break; + case 7: // changed held items + for (i = 0; i < gNoOfAllBanks; i++) + { + u16* changedItem = &gBattleStruct->changedItems[i]; + if (*changedItem != 0) + { + gBattleMons[i].item = *changedItem; + *changedItem = 0; + } + } + gBattleScripting.atk49_state++; + break; + case 11: // item effects for all banks + if (ItemBattleEffects(3, 0, FALSE)) + effect = TRUE; + else + gBattleScripting.atk49_state++; + break; + case 12: // king's rock and shell bell + if (ItemBattleEffects(4, 0, FALSE)) + effect = TRUE; + gBattleScripting.atk49_state++; + break; + case 8: // make attacker sprite invisible + if (gStatuses3[gBankAttacker] & (STATUS3_SEMI_INVULNERABLE) + && gHitMarker & HITMARKER_NO_ANIMATIONS) + { + gActiveBank = gBankAttacker; + EmitSpriteInvisibility(0, TRUE); + MarkBufferBankForExecution(gActiveBank); + gBattleScripting.atk49_state++; + return; + } + gBattleScripting.atk49_state++; + break; + case 9: // make attacker sprite visible + if (gBattleMoveFlags & MOVESTATUS_NOEFFECT + || !(gStatuses3[gBankAttacker] & (STATUS3_SEMI_INVULNERABLE)) + || HasMoveFailed(gBankAttacker)) + { + gActiveBank = gBankAttacker; + EmitSpriteInvisibility(0, FALSE); + MarkBufferBankForExecution(gActiveBank); + gStatuses3[gBankAttacker] &= ~(STATUS3_SEMI_INVULNERABLE); + gSpecialStatuses[gBankAttacker].restoredBankSprite = 1; + gBattleScripting.atk49_state++; + return; + } + gBattleScripting.atk49_state++; + break; + case 10: // make target sprite visible + if (!gSpecialStatuses[gBankTarget].restoredBankSprite && gBankTarget < gNoOfAllBanks + && !(gStatuses3[gBankTarget] & STATUS3_SEMI_INVULNERABLE)) + { + gActiveBank = gBankTarget; + EmitSpriteInvisibility(0, FALSE); + MarkBufferBankForExecution(gActiveBank); + gStatuses3[gBankTarget] &= ~(STATUS3_SEMI_INVULNERABLE); + gBattleScripting.atk49_state++; + return; + } + gBattleScripting.atk49_state++; + break; + case 13: // update substitute + for (i = 0; i < gNoOfAllBanks; i++) + { + if (gDisableStructs[i].substituteHP == 0) + gBattleMons[i].status2 &= ~(STATUS2_SUBSTITUTE); + } + gBattleScripting.atk49_state++; + break; + case 14: // This case looks interesting, although I am not certain what it does. Probably fine tunes edge cases. + if (gHitMarker & HITMARKER_PURSUIT_TRAP) + { + gActiveBank = gBankAttacker; + gBankAttacker = gBankTarget; + gBankTarget = gActiveBank; + gHitMarker &= ~(HITMARKER_PURSUIT_TRAP); + } + if (gHitMarker & HITMARKER_ATTACKSTRING_PRINTED) + { + gUnknownMovesUsedByBanks[gBankAttacker] = gLastUsedMove; + } + if (!(gAbsentBankFlags & gBitTable[gBankAttacker]) + && !(gBattleStruct->field_91 & gBitTable[gBankAttacker]) + && gBattleMoves[lastMove].effect != EFFECT_BATON_PASS) + { + if (gHitMarker & HITMARKER_OBEYS) + { + gLastUsedMovesByBanks[gBankAttacker] = gLastUsedMove; + gUnknown_02024260[gBankAttacker] = gCurrentMove; + } + else + { + gLastUsedMovesByBanks[gBankAttacker] = 0xFFFF; + gUnknown_02024260[gBankAttacker] = 0xFFFF; + } + + if (!(gHitMarker & HITMARKER_FAINTED(gBankTarget))) + gUnknown_02024270[gBankTarget] = gBankAttacker; + + if (gHitMarker & HITMARKER_OBEYS && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) + { + if (gLastUsedMove == 0xFFFF) + { + gUnknown_02024250[gBankTarget] = gLastUsedMove; + } + else + { + gUnknown_02024250[gBankTarget] = gCurrentMove; + GET_MOVE_TYPE(gCurrentMove, gUnknown_02024258[gBankTarget]); + } + } + else + { + gUnknown_02024250[gBankTarget] = 0xFFFF; + } + } + gBattleScripting.atk49_state++; + break; + case 15: // mirror move + if (!(gAbsentBankFlags & gBitTable[gBankAttacker]) && !(gBattleStruct->field_91 & gBitTable[gBankAttacker]) + && gBattleMoves[lastMove].flags & FLAG_MIRROR_MOVE_AFFECTED && gHitMarker & HITMARKER_OBEYS + && gBankAttacker != gBankTarget && !(gHitMarker & HITMARKER_FAINTED(gBankTarget)) + && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) + { + u8 target, attacker; + + *(gBattleStruct->mirrorMoves + gBankTarget * 2 + 0) = gLastUsedMove; + *(gBattleStruct->mirrorMoves + gBankTarget * 2 + 1) = gLastUsedMove >> 8; + + target = gBankTarget; + attacker = gBankAttacker; + *(attacker * 2 + target * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = gLastUsedMove; + + target = gBankTarget; + attacker = gBankAttacker; + *(attacker * 2 + target * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = gLastUsedMove >> 8; + } + gBattleScripting.atk49_state++; + break; + case 16: // + if (!(gHitMarker & HITMARKER_UNABLE_TO_USE_MOVE) && gBattleTypeFlags & BATTLE_TYPE_DOUBLE + && !gProtectStructs[gBankAttacker].chargingTurn && gBattleMoves[gCurrentMove].target == MOVE_TARGET_BOTH + && !(gHitMarker & HITMARKER_NO_ATTACKSTRING)) + { + u8 bank = GetBankByIdentity(GetBankIdentity(gBankTarget) ^ BIT_MON); + if (gBattleMons[bank].hp != 0) + { + gBankTarget = bank; + gHitMarker |= HITMARKER_NO_ATTACKSTRING; + gBattleScripting.atk49_state = 0; + MoveValuesCleanUp(); + BattleScriptPush(gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]); + gBattlescriptCurrInstr = gUnknown_082DB87D; + return; + } + else + { + gHitMarker |= HITMARKER_NO_ATTACKSTRING; + } + } + gBattleScripting.atk49_state++; + break; + case ATK49_LAST_CASE: + break; + } + + if (arg1 == 1 && effect == FALSE) + gBattleScripting.atk49_state = ATK49_LAST_CASE; + if (arg1 == 2 && arg2 == gBattleScripting.atk49_state) + gBattleScripting.atk49_state = ATK49_LAST_CASE; + + } while (gBattleScripting.atk49_state != ATK49_LAST_CASE && effect == FALSE); + + if (gBattleScripting.atk49_state == ATK49_LAST_CASE && effect == FALSE) + gBattlescriptCurrInstr += 3; +} + +static void atk4A_typecalc2(void) +{ + u8 flags = 0; + s32 i = 0; + u8 moveType = gBattleMoves[gCurrentMove].type; + + if (gBattleMons[gBankTarget].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND) + { + gLastUsedAbility = gBattleMons[gBankTarget].ability; + gBattleMoveFlags |= (MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED); + gUnknown_02024250[gBankTarget] = 0; + gBattleCommunication[6] = moveType; + RecordAbilityBattle(gBankTarget, gLastUsedAbility); + } + else + { + while (gTypeEffectiveness[i]!= TYPE_ENDTABLE) + { + if (gTypeEffectiveness[i] == TYPE_FORESIGHT) + { + if (gBattleMons[gBankTarget].status2 & STATUS2_FORESIGHT) + { + break; + } + else + { + i += 3; + continue; + } + } + + if (gTypeEffectiveness[i] == moveType) + { + // check type1 + if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type1) + { + if (gTypeEffectiveness[i + 2] == 0) + { + gBattleMoveFlags |= MOVESTATUS_NOTAFFECTED; + break; + } + if (gTypeEffectiveness[i + 2] == 5) + { + flags |= MOVESTATUS_NOTVERYEFFECTIVE; + } + if (gTypeEffectiveness[i + 2] == 20) + { + flags |= MOVESTATUS_SUPEREFFECTIVE; + } + } + // check type2 + if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type2) + { + if (gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2 + && gTypeEffectiveness[i + 2] == 0) + { + gBattleMoveFlags |= MOVESTATUS_NOTAFFECTED; + break; + } + if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type2 + && gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2 + && gTypeEffectiveness[i + 2] == 5) + { + flags |= MOVESTATUS_NOTVERYEFFECTIVE; + } + if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type2 + && gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2 + && gTypeEffectiveness[i + 2] == 20) + { + flags |= MOVESTATUS_SUPEREFFECTIVE; + } + } + } + i += 3; + } + } + + if (gBattleMons[gBankTarget].ability == ABILITY_WONDER_GUARD + && !(flags & MOVESTATUS_NOEFFECT) + && AttacksThisTurn(gBankAttacker, gCurrentMove) == 2 + && (!(flags & MOVESTATUS_SUPEREFFECTIVE) || ((flags & (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE)) == (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE))) + && gBattleMoves[gCurrentMove].power) + { + gLastUsedAbility = ABILITY_WONDER_GUARD; + gBattleMoveFlags |= MOVESTATUS_MISSED; + gUnknown_02024250[gBankTarget] = 0; + gBattleCommunication[6] = 3; + RecordAbilityBattle(gBankTarget, gLastUsedAbility); + } + if (gBattleMoveFlags & MOVESTATUS_NOTAFFECTED) + gProtectStructs[gBankAttacker].notEffective = 1; + + gBattlescriptCurrInstr++; +} + +static void atk4B_return_atk_to_ball(void) +{ + gActiveBank = gBankAttacker; + if (!(gHitMarker & HITMARKER_FAINTED(gActiveBank))) + { + EmitReturnPokeToBall(0, 0); + MarkBufferBankForExecution(gActiveBank); + } + gBattlescriptCurrInstr++; +} + +static void atk4C_copy_poke_data(void) +{ + if (gBattleExecBuffer) + return; + + gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + + gBattlePartyID[gActiveBank] = *(gBattleStruct->field_5C + gActiveBank); + + EmitGetMonData(0, 0, gBitTable[gBattlePartyID[gActiveBank]]); + MarkBufferBankForExecution(gActiveBank); + + gBattlescriptCurrInstr += 2; +} + +static void atk4D_switch_data_update(void) +{ + struct BattlePokemon oldData; + s32 i; + u8 *monData; + + if (gBattleExecBuffer) + return; + + gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + oldData = gBattleMons[gActiveBank]; + monData = (u8*)(&gBattleMons[gActiveBank]); + + for (i = 0; i < sizeof(struct BattlePokemon); i++) + { + monData[i] = gBattleBufferB[gActiveBank][4 + i]; + } + + gBattleMons[gActiveBank].type1 = gBaseStats[gBattleMons[gActiveBank].species].type1; + gBattleMons[gActiveBank].type2 = gBaseStats[gBattleMons[gActiveBank].species].type2; + gBattleMons[gActiveBank].ability = GetAbilityBySpecies(gBattleMons[gActiveBank].species, gBattleMons[gActiveBank].altAbility); + + // check knocked off item + i = GetBankSide(gActiveBank); + if (gWishFutureKnock.knockedOffPokes[i] & gBitTable[gBattlePartyID[gActiveBank]]) + { + gBattleMons[gActiveBank].item = 0; + } + + if (gBattleMoves[gCurrentMove].effect == EFFECT_BATON_PASS) + { + for (i = 0; i < 8; i++) + { + gBattleMons[gActiveBank].statStages[i] = oldData.statStages[i]; + } + gBattleMons[gActiveBank].status2 = oldData.status2; + } + + SwitchInClearStructs(); + + if (gBattleTypeFlags & BATTLE_TYPE_PALACE && gBattleMons[gActiveBank].maxHP / 2 >= gBattleMons[gActiveBank].hp + && gBattleMons[gActiveBank].hp != 0 && !(gBattleMons[gActiveBank].status1 & STATUS_SLEEP)) + { + gBattleStruct->field_92 |= gBitTable[gActiveBank]; + } + + gBattleScripting.bank = gActiveBank; + gBattleTextBuff1[0] = PLACEHOLDER_BEGIN; + gBattleTextBuff1[1] = 7; + gBattleTextBuff1[2] = gActiveBank; + gBattleTextBuff1[3] = gBattlePartyID[gActiveBank]; + gBattleTextBuff1[4] = EOS; + + gBattlescriptCurrInstr += 2; +} + +static void atk4E_switchin_anim(void) +{ + if (gBattleExecBuffer) + return; + + gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + + if (GetBankSide(gActiveBank) == SIDE_OPPONENT + && !(gBattleTypeFlags & (BATTLE_TYPE_LINK + | BATTLE_TYPE_EREADER_TRAINER + | BATTLE_TYPE_x2000000 + | BATTLE_TYPE_x4000000 + | BATTLE_TYPE_FRONTIER))) + HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBank].species), FLAG_SET_SEEN, gBattleMons[gActiveBank].personality); + + gAbsentBankFlags &= ~(gBitTable[gActiveBank]); + + EmitSwitchInAnim(0, gBattlePartyID[gActiveBank], gBattlescriptCurrInstr[2]); + MarkBufferBankForExecution(gActiveBank); + + gBattlescriptCurrInstr += 3; + + if (gBattleTypeFlags & BATTLE_TYPE_ARENA) + sub_81A56B4(); +} + +static void atk4F_jump_if_cannot_switch(void) +{ + s32 val = 0; + s32 compareVar = 0; + struct Pokemon *party = NULL; + s32 r7 = 0; + + gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1] & ~(ATK4F_DONT_CHECK_STATUSES)); + + if (!(gBattlescriptCurrInstr[1] & ATK4F_DONT_CHECK_STATUSES) + && ((gBattleMons[gActiveBank].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION)) + || (gStatuses3[gActiveBank] & STATUS3_ROOTED))) + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 2); + } + else if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) + { + #ifndef NONMATCHING + asm("":::"r5"); + #endif // NONMATCHING + if (GetBankSide(gActiveBank) == SIDE_OPPONENT) + party = gEnemyParty; + else + party = gPlayerParty; + + val = 0; + if (2 & gActiveBank) + val = 3; + + for (compareVar = val + 3; val < compareVar; val++) + { + if (GetMonData(&party[val], MON_DATA_SPECIES) != SPECIES_NONE + && !GetMonData(&party[val], MON_DATA_IS_EGG) + && GetMonData(&party[val], MON_DATA_HP) != 0 + && gBattlePartyID[gActiveBank] != val) + break; + } + + if (val == compareVar) + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 2); + else + gBattlescriptCurrInstr += 6; + } + else if (gBattleTypeFlags & BATTLE_TYPE_MULTI) + { + if (gBattleTypeFlags & BATTLE_TYPE_x800000) + { + if (GetBankSide(gActiveBank) == SIDE_PLAYER) + { + party = gPlayerParty; + + val = 0; + if (sub_806D82C(sub_806D864(gActiveBank)) == TRUE) + val = 3; + } + else + { + party = gEnemyParty; + + if (gActiveBank == 1) + val = 0; + else + val = 3; + } + } + else + { + if (GetBankSide(gActiveBank) == SIDE_OPPONENT) + party = gEnemyParty; + else + party = gPlayerParty; + + + val = 0; + if (sub_806D82C(sub_806D864(gActiveBank)) == TRUE) + val = 3; + } + + for (compareVar = val + 3; val < compareVar; val++) + { + if (GetMonData(&party[val], MON_DATA_SPECIES) != SPECIES_NONE + && !GetMonData(&party[val], MON_DATA_IS_EGG) + && GetMonData(&party[val], MON_DATA_HP) != 0 + && gBattlePartyID[gActiveBank] != val) + break; + } + + if (val == compareVar) + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 2); + else + gBattlescriptCurrInstr += 6; + } + else if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS && GetBankSide(gActiveBank) == SIDE_OPPONENT) + { + party = gEnemyParty; + + val = 0; + if (gActiveBank == 3) + val = 3; + + for (compareVar = val + 3; val < compareVar; val++) + { + if (GetMonData(&party[val], MON_DATA_SPECIES) != SPECIES_NONE + && !GetMonData(&party[val], MON_DATA_IS_EGG) + && GetMonData(&party[val], MON_DATA_HP) != 0 + && gBattlePartyID[gActiveBank] != val) + break; + } + + if (val == compareVar) + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 2); + else + gBattlescriptCurrInstr += 6; + } + else + { + if (GetBankSide(gActiveBank) == SIDE_OPPONENT) + { + r7 = GetBankByIdentity(1); + + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + compareVar = GetBankByIdentity(3); + else + compareVar = r7; + + party = gEnemyParty; + } + else + { + r7 = GetBankByIdentity(0); + + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + compareVar = GetBankByIdentity(2); + else + compareVar = r7; + + party = gPlayerParty; + } + for (val = 0; val < 6; val++) + { + if (GetMonData(&party[val], MON_DATA_HP) != 0 + && GetMonData(&party[val], MON_DATA_SPECIES) != SPECIES_NONE + && !GetMonData(&party[val], MON_DATA_IS_EGG) + && val != gBattlePartyID[r7] && val != gBattlePartyID[compareVar]) + break; + } + + if (val == 6) + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 2); + else + gBattlescriptCurrInstr += 6; + } +} + +static void sub_804CF10(u8 arg0) +{ + *(gBattleStruct->field_58 + gActiveBank) = gBattlePartyID[gActiveBank]; + *(gBattleStruct->field_5C + gActiveBank) = 6; + gBattleStruct->field_93 &= ~(gBitTable[gActiveBank]); + + EmitChoosePokemon(0, 1, arg0, 0, gBattleStruct->field_60[gActiveBank]); + MarkBufferBankForExecution(gActiveBank); +} + +static void atk50_openpartyscreen(void) +{ + u32 flags; + u8 hitmarkerFaintBits; + u8 bank; + const u8 *jumpPtr; + + bank = 0; + flags = 0; + jumpPtr = BSScriptReadPtr(gBattlescriptCurrInstr + 2); + + if (gBattlescriptCurrInstr[1] == 5) + { + if ((gBattleTypeFlags & (BATTLE_TYPE_DOUBLE | BATTLE_TYPE_MULTI)) != BATTLE_TYPE_DOUBLE) + { + for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + { + if (gHitMarker & HITMARKER_FAINTED(gActiveBank)) + { + if (sub_80423F4(gActiveBank, 6, 6)) + { + gAbsentBankFlags |= gBitTable[gActiveBank]; + gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank)); + EmitLinkStandbyMsg(0, 2, 0); + MarkBufferBankForExecution(gActiveBank); + } + else if (!gSpecialStatuses[gActiveBank].flag40) + { + sub_804CF10(6); + gSpecialStatuses[gActiveBank].flag40 = 1; + } + } + else + { + EmitLinkStandbyMsg(0, 2, 0); + MarkBufferBankForExecution(gActiveBank); + } + } + } + else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + { + u8 flag40_0, flag40_1, flag40_2, flag40_3; + + hitmarkerFaintBits = gHitMarker >> 0x1C; + + if (gBitTable[0] & hitmarkerFaintBits) + { + gActiveBank = 0; + if (sub_80423F4(0, 6, 6)) + { + gAbsentBankFlags |= gBitTable[gActiveBank]; + gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank)); + Emit_x2A(0); + MarkBufferBankForExecution(gActiveBank); + } + else if (!gSpecialStatuses[gActiveBank].flag40) + { + sub_804CF10(gBattleStruct->field_5C[2]); + gSpecialStatuses[gActiveBank].flag40 = 1; + } + else + { + EmitLinkStandbyMsg(0, 2, 0); + MarkBufferBankForExecution(gActiveBank); + flags |= 1; + } + } + if (gBitTable[2] & hitmarkerFaintBits && !(gBitTable[0] & hitmarkerFaintBits)) + { + gActiveBank = 2; + if (sub_80423F4(2, 6, 6)) + { + gAbsentBankFlags |= gBitTable[gActiveBank]; + gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank)); + Emit_x2A(0); + MarkBufferBankForExecution(gActiveBank); + } + else if (!gSpecialStatuses[gActiveBank].flag40) + { + sub_804CF10(gBattleStruct->field_5C[0]); + gSpecialStatuses[gActiveBank].flag40 = 1; + } + else if (!(flags & 1)) + { + EmitLinkStandbyMsg(0, 2, 0); + MarkBufferBankForExecution(gActiveBank); + } + } + if (gBitTable[1] & hitmarkerFaintBits) + { + gActiveBank = 1; + if (sub_80423F4(1, 6, 6)) + { + gAbsentBankFlags |= gBitTable[gActiveBank]; + gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank)); + Emit_x2A(0); + MarkBufferBankForExecution(gActiveBank); + } + else if (!gSpecialStatuses[gActiveBank].flag40) + { + sub_804CF10(gBattleStruct->field_5C[3]); + gSpecialStatuses[gActiveBank].flag40 = 1; + } + else + { + EmitLinkStandbyMsg(0, 2, 0); + MarkBufferBankForExecution(gActiveBank); + flags |= 2; + } + } + if (gBitTable[3] & hitmarkerFaintBits && !(gBitTable[1] & hitmarkerFaintBits)) + { + gActiveBank = 3; + if (sub_80423F4(3, 6, 6)) + { + gAbsentBankFlags |= gBitTable[gActiveBank]; + gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank)); + Emit_x2A(0); + MarkBufferBankForExecution(gActiveBank); + } + else if (!gSpecialStatuses[gActiveBank].flag40) + { + sub_804CF10(gBattleStruct->field_5C[1]); + gSpecialStatuses[gActiveBank].flag40 = 1; + } + else if (!(flags & 2)) + { + EmitLinkStandbyMsg(0, 2, 0); + MarkBufferBankForExecution(gActiveBank); + } + } + + flag40_0 = gSpecialStatuses[0].flag40; + if (!flag40_0) + { + flag40_2 = gSpecialStatuses[2].flag40; + if (!flag40_2 && hitmarkerFaintBits != 0) + { + if (gAbsentBankFlags & gBitTable[0]) + gActiveBank = 2; + else + gActiveBank = 0; + + EmitLinkStandbyMsg(0, 2, 0); + MarkBufferBankForExecution(gActiveBank); + } + + } + flag40_1 = gSpecialStatuses[1].flag40; + if (!flag40_1) + { + flag40_3 = gSpecialStatuses[3].flag40; + if (!flag40_3 && hitmarkerFaintBits != 0) + { + if (gAbsentBankFlags & gBitTable[1]) + gActiveBank = 3; + else + gActiveBank = 1; + + EmitLinkStandbyMsg(0, 2, 0); + MarkBufferBankForExecution(gActiveBank); + } + } + } + gBattlescriptCurrInstr += 6; + } + else if (gBattlescriptCurrInstr[1] == 6) + { + if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)) + { + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + { + hitmarkerFaintBits = gHitMarker >> 0x1C; + if (gBitTable[2] & hitmarkerFaintBits && gBitTable[0] & hitmarkerFaintBits) + { + gActiveBank = 2; + if (sub_80423F4(2, gBattleBufferB[0][1], 6)) + { + gAbsentBankFlags |= gBitTable[gActiveBank]; + gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank)); + Emit_x2A(0); + MarkBufferBankForExecution(gActiveBank); + } + else if (!gSpecialStatuses[gActiveBank].flag40) + { + sub_804CF10(gBattleStruct->field_5C[0]); + gSpecialStatuses[gActiveBank].flag40 = 1; + } + } + if (gBitTable[3] & hitmarkerFaintBits && hitmarkerFaintBits & gBitTable[1]) + { + gActiveBank = 3; + if (sub_80423F4(3, gBattleBufferB[1][1], 6)) + { + gAbsentBankFlags |= gBitTable[gActiveBank]; + gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank)); + Emit_x2A(0); + MarkBufferBankForExecution(gActiveBank); + } + else if (!gSpecialStatuses[gActiveBank].flag40) + { + sub_804CF10(gBattleStruct->field_5C[1]); + gSpecialStatuses[gActiveBank].flag40 = 1; + } + } + gBattlescriptCurrInstr += 6; + } + else + { + gBattlescriptCurrInstr += 6; + } + } + else + { + gBattlescriptCurrInstr += 6; + } + + hitmarkerFaintBits = gHitMarker >> 0x1C; + + gBank1 = 0; + while (1) + { + if (gBitTable[gBank1] & hitmarkerFaintBits) + break; + if (gBank1 >= gNoOfAllBanks) + break; + gBank1++; + } + + if (gBank1 == gNoOfAllBanks) + gBattlescriptCurrInstr = jumpPtr; + } + else + { + if (gBattlescriptCurrInstr[1] & 0x80) + hitmarkerFaintBits = 0; // used here as the caseId for the EmitChoose function + else + hitmarkerFaintBits = 1; + + bank = GetBattleBank(gBattlescriptCurrInstr[1] & ~(0x80)); + if (gSpecialStatuses[bank].flag40) + { + gBattlescriptCurrInstr += 6; + } + else if (sub_80423F4(bank, 6, 6)) + { + gActiveBank = bank; + gAbsentBankFlags |= gBitTable[gActiveBank]; + gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank)); + gBattlescriptCurrInstr = jumpPtr; + } + else + { + gActiveBank = bank; + *(gBattleStruct->field_58 + gActiveBank) = gBattlePartyID[gActiveBank]; + *(gBattleStruct->field_5C + gActiveBank) = 6; + gBattleStruct->field_93 &= ~(gBitTable[gActiveBank]); + + EmitChoosePokemon(0, hitmarkerFaintBits, *(gBattleStruct->field_5C + (gActiveBank ^ 2)), 0, gBattleStruct->field_60[gActiveBank]); + MarkBufferBankForExecution(gActiveBank); + + gBattlescriptCurrInstr += 6; + + if (GetBankIdentity(gActiveBank) == 0 && gBattleResults.playerSwitchesCounter < 0xFF) + gBattleResults.playerSwitchesCounter++; + + if (gBattleTypeFlags & BATTLE_TYPE_MULTI) + { + for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + { + if (gActiveBank != bank) + { + EmitLinkStandbyMsg(0, 2, 0); + MarkBufferBankForExecution(gActiveBank); + } + } + } + else + { + gActiveBank = GetBankByIdentity(GetBankIdentity(bank) ^ BIT_SIDE); + if (gAbsentBankFlags & gBitTable[gActiveBank]) + gActiveBank ^= BIT_MON; + + EmitLinkStandbyMsg(0, 2, 0); + MarkBufferBankForExecution(gActiveBank); + } + } + } +} + +static void atk51_switch_handle_order(void) +{ + s32 i; + if (gBattleExecBuffer) + return; + + gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + + switch (gBattlescriptCurrInstr[2]) + { + case 0: + for (i = 0; i < gNoOfAllBanks; i++) + { + if (gBattleBufferB[i][0] == 0x22) + { + *(gBattleStruct->field_5C + i) = gBattleBufferB[i][1]; + if (!(gBattleStruct->field_93 & gBitTable[i])) + { + RecordedBattle_SetBankAction(i, gBattleBufferB[i][1]); + gBattleStruct->field_93 |= gBitTable[i]; + } + } + } + break; + case 1: + if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)) + sub_803BDA0(gActiveBank); + break; + case 2: + if (!(gBattleStruct->field_93 & gBitTable[gActiveBank])) + { + RecordedBattle_SetBankAction(gActiveBank, gBattleBufferB[gActiveBank][1]); + gBattleStruct->field_93 |= gBitTable[gActiveBank]; + } + // fall through + case 3: + gBattleCommunication[0] = gBattleBufferB[gActiveBank][1]; + *(gBattleStruct->field_5C + gActiveBank) = gBattleBufferB[gActiveBank][1]; + + if ((gBattleTypeFlags & (BATTLE_TYPE_MULTI | BATTLE_TYPE_LINK)) == (BATTLE_TYPE_MULTI | BATTLE_TYPE_LINK)) + { + *(gActiveBank * 3 + (u8*)(gBattleStruct->field_60) + 0) &= 0xF; + *(gActiveBank * 3 + (u8*)(gBattleStruct->field_60) + 0) |= (gBattleBufferB[gActiveBank][2] & 0xF0); + *(gActiveBank * 3 + (u8*)(gBattleStruct->field_60) + 1) = gBattleBufferB[gActiveBank][3]; + + *((gActiveBank ^ 2) * 3 + (u8*)(gBattleStruct->field_60) + 0) &= (0xF0); + *((gActiveBank ^ 2) * 3 + (u8*)(gBattleStruct->field_60) + 0) |= (gBattleBufferB[gActiveBank][2] & 0xF0) >> 4; + *((gActiveBank ^ 2) * 3 + (u8*)(gBattleStruct->field_60) + 2) = gBattleBufferB[gActiveBank][3]; + } + else if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) + { + sub_80571DC(gActiveBank, *(gBattleStruct->field_5C + gActiveBank)); + } + else + { + sub_803BDA0(gActiveBank); + } + + PREPARE_SPECIES_BUFFER(gBattleTextBuff1, gBattleMons[gBankAttacker].species) + PREPARE_MON_NICK_BUFFER(gBattleTextBuff2, gActiveBank, gBattleBufferB[gActiveBank][1]) + + break; + } + + gBattlescriptCurrInstr += 3; +} + +static void atk52_switch_in_effects(void) +{ + s32 i; + + gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + sub_803FA70(gActiveBank); + + gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank)); + gSpecialStatuses[gActiveBank].flag40 = 0; + + if (!(gSideAffecting[GetBankSide(gActiveBank)] & SIDE_STATUS_SPIKES_DAMAGED) + && (gSideAffecting[GetBankSide(gActiveBank)] & SIDE_STATUS_SPIKES) + && gBattleMons[gActiveBank].type1 != TYPE_FLYING + && gBattleMons[gActiveBank].type2 != TYPE_FLYING + && gBattleMons[gActiveBank].ability != ABILITY_LEVITATE) + { + u8 spikesDmg; + + gSideAffecting[GetBankSide(gActiveBank)] |= SIDE_STATUS_SPIKES_DAMAGED; + + gBattleMons[gActiveBank].status2 &= ~(STATUS2_DESTINY_BOND); + gHitMarker &= ~(HITMARKER_DESTINYBOND); + + spikesDmg = (5 - gSideTimers[GetBankSide(gActiveBank)].spikesAmount) * 2; + gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / (spikesDmg); + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + + gBattleScripting.bank = gActiveBank; + BattleScriptPushCursor(); + + if (gBattlescriptCurrInstr[1] == 0) + gBattlescriptCurrInstr = gUnknown_082DAE90; + else if (gBattlescriptCurrInstr[1] == 1) + gBattlescriptCurrInstr = gUnknown_082DAE59; + else + gBattlescriptCurrInstr = gUnknown_082DAEC7; + } + else + { + if (gBattleMons[gActiveBank].ability == ABILITY_TRUANT && !gDisableStructs[gActiveBank].truantUnknownBit) + gDisableStructs[gActiveBank].truantCounter = 1; + + gDisableStructs[gActiveBank].truantUnknownBit = 0; + + if (AbilityBattleEffects(ABILITYEFFECT_ON_SWITCHIN, gActiveBank, 0, 0, 0) == 0 && + ItemBattleEffects(0, gActiveBank, 0) == 0) + { + gSideAffecting[GetBankSide(gActiveBank)] &= ~(SIDE_STATUS_SPIKES_DAMAGED); + + for (i = 0; i < gNoOfAllBanks; i++) + { + if (gTurnOrder[i] == gActiveBank) + gUnknown_0202407A[i] = 0xC; + } + + for (i = 0; i < gNoOfAllBanks; i++) + { + u16* hpOnSwitchout = &gBattleStruct->hpOnSwitchout[GetBankSide(i)]; + *hpOnSwitchout = gBattleMons[i].hp; + } + + if (gBattlescriptCurrInstr[1] == 5) + { + u32 hitmarkerFaintBits = gHitMarker >> 0x1C; + + gBank1++; + while (1) + { + if (hitmarkerFaintBits & gBitTable[gBank1] && !(gAbsentBankFlags & gBitTable[gBank1])) + break; + if (gBank1 >= gNoOfAllBanks) + break; + gBank1++; + } + } + gBattlescriptCurrInstr += 2; + } + } +} + +static void atk53_trainer_slide(void) +{ + gActiveBank = GetBankByIdentity(gBattlescriptCurrInstr[1]); + EmitTrainerSlide(0); + MarkBufferBankForExecution(gActiveBank); + + gBattlescriptCurrInstr += 2; +} + +static void atk54_effectiveness_sound(void) +{ + gActiveBank = gBankAttacker; + EmitEffectivenessSound(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1)); + MarkBufferBankForExecution(gActiveBank); + + gBattlescriptCurrInstr += 3; +} + +static void atk55_play_sound(void) +{ + gActiveBank = gBankAttacker; + EmitPlaySound(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1), 0); + MarkBufferBankForExecution(gActiveBank); + + gBattlescriptCurrInstr += 3; +} + +static void atk56_fainting_cry(void) +{ + gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + EmitFaintingCry(0); + MarkBufferBankForExecution(gActiveBank); + + gBattlescriptCurrInstr += 2; +} + +static void atk57(void) +{ + gActiveBank = GetBankByIdentity(0); + Emit_x37(0, gBattleOutcome); + MarkBufferBankForExecution(gActiveBank); + + gBattlescriptCurrInstr += 1; +} + +static void atk58_return_to_ball(void) +{ + gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + EmitReturnPokeToBall(0, 1); + MarkBufferBankForExecution(gActiveBank); + + gBattlescriptCurrInstr += 2; +} + +static void atk59_learnmove_inbattle(void) +{ + const u8* jumpPtr1 = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + const u8* jumpPtr2 = BSScriptReadPtr(gBattlescriptCurrInstr + 5); + + u16 ret = MonTryLearningNewMove(&gPlayerParty[gBattleStruct->expGetterId], gBattlescriptCurrInstr[9]); + while (ret == 0xFFFE) + ret = MonTryLearningNewMove(&gPlayerParty[gBattleStruct->expGetterId], 0); + + if (ret == 0) + { + gBattlescriptCurrInstr = jumpPtr2; + } + else if (ret == 0xFFFF) + { + gBattlescriptCurrInstr += 10; + } + else + { + gActiveBank = GetBankByIdentity(0); + + if (gBattlePartyID[gActiveBank] == gBattleStruct->expGetterId + && !(gBattleMons[gActiveBank].status2 & STATUS2_TRANSFORMED)) + { + GiveMoveToBattleMon(&gBattleMons[gActiveBank], ret); + } + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + { + gActiveBank = GetBankByIdentity(2); + if (gBattlePartyID[gActiveBank] == gBattleStruct->expGetterId + && !(gBattleMons[gActiveBank].status2 & STATUS2_TRANSFORMED)) + { + GiveMoveToBattleMon(&gBattleMons[gActiveBank], ret); + } + } + + gBattlescriptCurrInstr = jumpPtr1; + } +} + +static void atk5A_yesnoboxlearnmove(void) +{ + gActiveBank = 0; + + switch (gBattleScripting.learnMoveState) + { + case 0: + sub_8056A3C(0x18, 8, 0x1D, 0xD, 0); + sub_814F9EC(gText_BattleYesNoChoice, 0xC); + gBattleScripting.learnMoveState++; + gBattleCommunication[CURSOR_POSITION] = 0; + BattleCreateCursorAt(0); + break; + case 1: + if (gMain.newKeys & DPAD_UP && gBattleCommunication[CURSOR_POSITION] != 0) + { + PlaySE(SE_SELECT); + BattleDestroyCursorAt(gBattleCommunication[CURSOR_POSITION]); + gBattleCommunication[CURSOR_POSITION] = 0; + BattleCreateCursorAt(0); + } + if (gMain.newKeys & DPAD_DOWN && gBattleCommunication[CURSOR_POSITION] == 0) + { + PlaySE(SE_SELECT); + BattleDestroyCursorAt(gBattleCommunication[CURSOR_POSITION]); + gBattleCommunication[CURSOR_POSITION] = 1; + BattleCreateCursorAt(1); + } + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + if (gBattleCommunication[1] == 0) + { + sub_8056A3C(0x18, 0x8, 0x1D, 0xD, 1); + BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); + gBattleScripting.learnMoveState++; + } + else + { + gBattleScripting.learnMoveState = 5; + } + } + else if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + gBattleScripting.learnMoveState = 5; + } + break; + case 2: + if (!gPaletteFade.active) + { + FreeAllWindowBuffers(); + sub_81BFA38(gPlayerParty, gBattleStruct->expGetterId, gPlayerPartyCount - 1, ReshowBattleScreenAfterMenu, gMoveToLearn); + gBattleScripting.learnMoveState++; + } + break; + case 3: + if (!gPaletteFade.active && gMain.callback2 == BattleMainCB2) + { + gBattleScripting.learnMoveState++; + } + break; + case 4: + if (!gPaletteFade.active && gMain.callback2 == BattleMainCB2) + { + u8 movePosition = sub_81C1B94(); + if (movePosition == 4) + { + gBattleScripting.learnMoveState = 5; + } + else + { + u16 moveId = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_MOVE1 + movePosition); + if (IsHMMove2(moveId)) + { + PrepareStringBattle(0x13F, gActiveBank); + gBattleScripting.learnMoveState = 6; + } + else + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + + PREPARE_MOVE_BUFFER(gBattleTextBuff2, moveId) + + RemoveMonPPBonus(&gPlayerParty[gBattleStruct->expGetterId], movePosition); + SetMonMoveSlot(&gPlayerParty[gBattleStruct->expGetterId], gMoveToLearn, movePosition); + + if (gBattlePartyID[0] == gBattleStruct->expGetterId + && !(gBattleMons[0].status2 & STATUS2_TRANSFORMED) + && !(gDisableStructs[0].unk18_b & gBitTable[movePosition])) + { + RemoveBattleMonPPBonus(&gBattleMons[0], movePosition); + SetBattleMonMoveSlot(&gBattleMons[0], gMoveToLearn, movePosition); + } + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE + && gBattlePartyID[2] == gBattleStruct->expGetterId + && !(gBattleMons[2].status2 & STATUS2_TRANSFORMED) + && !(gDisableStructs[2].unk18_b & gBitTable[movePosition])) + { + RemoveBattleMonPPBonus(&gBattleMons[2], movePosition); + SetBattleMonMoveSlot(&gBattleMons[2], gMoveToLearn, movePosition); + } + } + } + } + break; + case 5: + sub_8056A3C(0x18, 8, 0x1D, 0xD, 1); + gBattlescriptCurrInstr += 5; + break; + case 6: + if (gBattleExecBuffer == 0) + { + gBattleScripting.learnMoveState = 2; + } + break; + } +} + +static void atk5B_yesnoboxstoplearningmove(void) +{ + switch (gBattleScripting.learnMoveState) + { + case 0: + sub_8056A3C(0x18, 8, 0x1D, 0xD, 0); + sub_814F9EC(gText_BattleYesNoChoice, 0xC); + gBattleScripting.learnMoveState++; + gBattleCommunication[CURSOR_POSITION] = 0; + BattleCreateCursorAt(0); + break; + case 1: + if (gMain.newKeys & DPAD_UP && gBattleCommunication[CURSOR_POSITION] != 0) + { + PlaySE(SE_SELECT); + BattleDestroyCursorAt(gBattleCommunication[CURSOR_POSITION]); + gBattleCommunication[CURSOR_POSITION] = 0; + BattleCreateCursorAt(0); + } + if (gMain.newKeys & DPAD_DOWN && gBattleCommunication[CURSOR_POSITION] == 0) + { + PlaySE(SE_SELECT); + BattleDestroyCursorAt(gBattleCommunication[CURSOR_POSITION]); + gBattleCommunication[CURSOR_POSITION] = 1; + BattleCreateCursorAt(1); + } + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + + if (gBattleCommunication[1] != 0) + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + else + gBattlescriptCurrInstr += 5; + + sub_8056A3C(0x18, 0x8, 0x1D, 0xD, 1); + } + else if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + sub_8056A3C(0x18, 0x8, 0x1D, 0xD, 1); + } + break; + } +} + +static void atk5C_hitanimation(void) +{ + gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + + if (gBattleMoveFlags & MOVESTATUS_NOEFFECT) + { + gBattlescriptCurrInstr += 2; + } + else if (!(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE) || !(gBattleMons[gActiveBank].status2 & STATUS2_SUBSTITUTE) || gDisableStructs[gActiveBank].substituteHP == 0) + { + EmitHitAnimation(0); + MarkBufferBankForExecution(gActiveBank); + gBattlescriptCurrInstr += 2; + } + else + { + gBattlescriptCurrInstr += 2; + } +} + +static u32 GetTrainerMoneyToGive(u16 trainerId) +{ + u32 i = 0; + u32 lastMonLevel = 0; + u32 moneyReward = 0; + + if (trainerId == SECRET_BASE_OPPONENT) + { + moneyReward = 20 * gBattleResources->secretBase->partyLevels[0] * gBattleStruct->moneyMultiplier; + } + else + { + switch (gTrainers[trainerId].partyFlags) + { + case 0: + { + const struct TrainerMonNoItemDefaultMoves *party = gTrainers[trainerId].party.NoItemDefaultMoves; + lastMonLevel = party[gTrainers[trainerId].partySize - 1].lvl; + } + break; + case PARTY_FLAG_CUSTOM_MOVES: + { + const struct TrainerMonNoItemCustomMoves *party = gTrainers[trainerId].party.NoItemCustomMoves; + lastMonLevel = party[gTrainers[trainerId].partySize - 1].lvl; + } + break; + case PARTY_FLAG_HAS_ITEM: + { + const struct TrainerMonItemDefaultMoves *party = gTrainers[trainerId].party.ItemDefaultMoves; + lastMonLevel = party[gTrainers[trainerId].partySize - 1].lvl; + } + break; + case PARTY_FLAG_CUSTOM_MOVES | PARTY_FLAG_HAS_ITEM: + { + const struct TrainerMonItemCustomMoves *party = gTrainers[trainerId].party.ItemCustomMoves; + lastMonLevel = party[gTrainers[trainerId].partySize - 1].lvl; + } + break; + } + + for (; gTrainerMoneyTable[i].classId != 0xFF; i++) + { + if (gTrainerMoneyTable[i].classId == gTrainers[trainerId].trainerClass) + break; + } + + if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) + moneyReward = 4 * lastMonLevel * gBattleStruct->moneyMultiplier * gTrainerMoneyTable[i].value; + else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + moneyReward = 4 * lastMonLevel * gBattleStruct->moneyMultiplier * 2 * gTrainerMoneyTable[i].value; + else + moneyReward = 4 * lastMonLevel * gBattleStruct->moneyMultiplier * gTrainerMoneyTable[i].value; + } + + return moneyReward; +} + +static void atk5D_getmoneyreward(void) +{ + u32 moneyReward = GetTrainerMoneyToGive(gTrainerBattleOpponent_A); + if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) + moneyReward += GetTrainerMoneyToGive(gTrainerBattleOpponent_B); + + AddMoney(&gSaveBlock1Ptr->money, moneyReward); + + PREPARE_WORD_NUMBER_BUFFER(gBattleTextBuff1, 5, moneyReward) + + gBattlescriptCurrInstr++; +} + +static void atk5E_8025A70(void) +{ + gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + + switch (gBattleCommunication[0]) + { + case 0: + EmitGetMonData(0, REQUEST_ALL_BATTLE, 0); + MarkBufferBankForExecution(gActiveBank); + gBattleCommunication[0]++; + break; + case 1: + if (gBattleExecBuffer == 0) + { + s32 i; + struct BattlePokemon* bufferPoke = (struct BattlePokemon*) &gBattleBufferB[gActiveBank][4]; + for (i = 0; i < 4; i++) + { + gBattleMons[gActiveBank].moves[i] = bufferPoke->moves[i]; + gBattleMons[gActiveBank].pp[i] = bufferPoke->pp[i]; + } + gBattlescriptCurrInstr += 2; + } + break; + } +} + +static void atk5F_8025B24(void) +{ + gActiveBank = gBankAttacker; + gBankAttacker = gBankTarget; + gBankTarget = gActiveBank; + + if (gHitMarker & HITMARKER_PURSUIT_TRAP) + gHitMarker &= ~(HITMARKER_PURSUIT_TRAP); + else + gHitMarker |= HITMARKER_PURSUIT_TRAP; + + gBattlescriptCurrInstr++; +} + +static void atk60_increment_gamestat(void) +{ + if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + IncrementGameStat(gBattlescriptCurrInstr[1]); + + gBattlescriptCurrInstr += 2; +} + +static void atk61_8025BA4(void) +{ + s32 i; + struct Pokemon* party; + struct HpAndStatus hpStatuses[6]; + + if (gBattleExecBuffer) + return; + + gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + + if (GetBankSide(gActiveBank) == SIDE_PLAYER) + party = gPlayerParty; + else + party = gEnemyParty; + + for (i = 0; i < 6; i++) + { + if (GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_NONE + || GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_EGG) + { + hpStatuses[i].hp = 0xFFFF; + hpStatuses[i].status = 0; + } + else + { + hpStatuses[i].hp = GetMonData(&party[i], MON_DATA_HP); + hpStatuses[i].status = GetMonData(&party[i], MON_DATA_STATUS); + } + } + + EmitCmd48(0, hpStatuses, 1); + MarkBufferBankForExecution(gActiveBank); + + gBattlescriptCurrInstr += 2; +} + +static void atk62_08025C6C(void) +{ + gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + EmitCmd49(0); + MarkBufferBankForExecution(gActiveBank); + + gBattlescriptCurrInstr += 2; +} + +static void atk63_jumptorandomattack(void) +{ + if (gBattlescriptCurrInstr[1] != 0) + gCurrentMove = gRandomMove; + else + gLastUsedMove = gCurrentMove = gRandomMove; + + gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]; +} + +static void atk64_statusanimation(void) +{ + if (gBattleExecBuffer == 0) + { + gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + if (!(gStatuses3[gActiveBank] & STATUS3_SEMI_INVULNERABLE) + && gDisableStructs[gActiveBank].substituteHP == 0 + && !(gHitMarker & HITMARKER_NO_ANIMATIONS)) + { + EmitStatusAnimation(0, FALSE, gBattleMons[gActiveBank].status1); + MarkBufferBankForExecution(gActiveBank); + } + gBattlescriptCurrInstr += 2; + } +} + +static void atk65_status2animation(void) +{ + u32 wantedToAnimate; + + if (gBattleExecBuffer == 0) + { + gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + wantedToAnimate = BSScriptRead32(gBattlescriptCurrInstr + 2); + if (!(gStatuses3[gActiveBank] & STATUS3_SEMI_INVULNERABLE) + && gDisableStructs[gActiveBank].substituteHP == 0 + && !(gHitMarker & HITMARKER_NO_ANIMATIONS)) + { + EmitStatusAnimation(0, TRUE, gBattleMons[gActiveBank].status2 & wantedToAnimate); + MarkBufferBankForExecution(gActiveBank); + } + gBattlescriptCurrInstr += 6; + } +} + +static void atk66_chosenstatusanimation(void) +{ + u32 wantedStatus; + + if (gBattleExecBuffer == 0) + { + gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + wantedStatus = BSScriptRead32(gBattlescriptCurrInstr + 3); + if (!(gStatuses3[gActiveBank] & STATUS3_SEMI_INVULNERABLE) + && gDisableStructs[gActiveBank].substituteHP == 0 + && !(gHitMarker & HITMARKER_NO_ANIMATIONS)) + { + EmitStatusAnimation(0, gBattlescriptCurrInstr[2], wantedStatus); + MarkBufferBankForExecution(gActiveBank); + } + gBattlescriptCurrInstr += 7; + } +} + +static void atk67_yesnobox(void) +{ + switch (gBattleCommunication[0]) + { + case 0: + sub_8056A3C(0x18, 8, 0x1D, 0xD, 0); + sub_814F9EC(gText_BattleYesNoChoice, 0xC); + gBattleCommunication[0]++; + gBattleCommunication[CURSOR_POSITION] = 0; + BattleCreateCursorAt(0); + break; + case 1: + if (gMain.newKeys & DPAD_UP && gBattleCommunication[CURSOR_POSITION] != 0) + { + PlaySE(SE_SELECT); + BattleDestroyCursorAt(gBattleCommunication[CURSOR_POSITION]); + gBattleCommunication[CURSOR_POSITION] = 0; + BattleCreateCursorAt(0); + } + if (gMain.newKeys & DPAD_DOWN && gBattleCommunication[CURSOR_POSITION] == 0) + { + PlaySE(SE_SELECT); + BattleDestroyCursorAt(gBattleCommunication[CURSOR_POSITION]); + gBattleCommunication[CURSOR_POSITION] = 1; + BattleCreateCursorAt(1); + } + if (gMain.newKeys & B_BUTTON) + { + gBattleCommunication[CURSOR_POSITION] = 1; + PlaySE(SE_SELECT); + sub_8056A3C(0x18, 8, 0x1D, 0xD, 1); + gBattlescriptCurrInstr++; + } + else if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + sub_8056A3C(0x18, 8, 0x1D, 0xD, 1); + gBattlescriptCurrInstr++; + } + break; + } +} + +static void atk68_80246A0(void) +{ + s32 i; + + for (i = 0; i < gNoOfAllBanks; i++) + gUnknown_0202407A[i] = 0xC; + + gBattlescriptCurrInstr++; +} + +static void atk69_dmg_adjustment3(void) // The same as 0x7, except there's no random damage multiplier. +{ + u8 holdEffect, quality; + + if (gBattleMons[gBankTarget].item == ITEM_ENIGMA_BERRY) + { + holdEffect = gEnigmaBerries[gBankTarget].holdEffect, quality = gEnigmaBerries[gBankTarget].holdEffectParam; + } + else + { + holdEffect = ItemId_GetHoldEffect(gBattleMons[gBankTarget].item); + quality = ItemId_GetHoldEffectParam(gBattleMons[gBankTarget].item); + } + + gStringBank = gBankTarget; + + if (holdEffect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < quality) + { + RecordItemEffectBattle(gBankTarget, holdEffect); + gSpecialStatuses[gBankTarget].focusBanded = 1; + } + if (gBattleMons[gBankTarget].status2 & STATUS2_SUBSTITUTE) + goto END; + if (gBattleMoves[gCurrentMove].effect != EFFECT_FALSE_SWIPE && !gProtectStructs[gBankTarget].endured + && !gSpecialStatuses[gBankTarget].focusBanded) + goto END; + + if (gBattleMons[gBankTarget].hp > gBattleMoveDamage) + goto END; + + gBattleMoveDamage = gBattleMons[gBankTarget].hp - 1; + + if (gProtectStructs[gBankTarget].endured) + { + gBattleMoveFlags |= MOVESTATUS_ENDURED; + } + else if (gSpecialStatuses[gBankTarget].focusBanded) + { + gBattleMoveFlags |= MOVESTATUS_HUNGON; + gLastUsedItem = gBattleMons[gBankTarget].item; + } + + END: + gBattlescriptCurrInstr++; +} + +static void atk6A_removeitem(void) +{ + u16* usedHeldItem; + + gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + + usedHeldItem = &gBattleStruct->usedHeldItems[gActiveBank]; + *usedHeldItem = gBattleMons[gActiveBank].item; + gBattleMons[gActiveBank].item = 0; + + EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gActiveBank].item); + MarkBufferBankForExecution(gActiveBank); + + gBattlescriptCurrInstr += 2; +} + +static void atk6B_atknameinbuff1(void) +{ + PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBankAttacker, gBattlePartyID[gBankAttacker]) + + gBattlescriptCurrInstr++; +} + +static void atk6C_draw_lvlupbox(void) +{ + if (gBattleScripting.atk6C_state == 0) + { + if (IsMonGettingExpSentOut()) + gBattleScripting.atk6C_state = 3; + else + gBattleScripting.atk6C_state = 1; + } + + switch (gBattleScripting.atk6C_state) + { + case 1: + gBattle_BG2_Y = 0x60; + SetBgAttribute(2, BG_CTRL_ATTR_MOSAIC, 0); + ShowBg(2); + sub_804F17C(); + gBattleScripting.atk6C_state = 2; + break; + case 2: + if (!sub_804F1CC()) + gBattleScripting.atk6C_state = 3; + break; + case 3: + gBattle_BG1_X = 0; + gBattle_BG1_Y = 0x100; + SetBgAttribute(0, BG_CTRL_ATTR_MOSAIC, 1); + SetBgAttribute(1, BG_CTRL_ATTR_MOSAIC, 0); + ShowBg(0); + ShowBg(1); + sub_8056A3C(0x12, 7, 0x1D, 0x13, 0x80); + gBattleScripting.atk6C_state = 4; + break; + case 4: + sub_804F100(); + PutWindowTilemap(13); + CopyWindowToVram(13, 3); + gBattleScripting.atk6C_state++; + break; + case 5: + case 7: + if (!IsDma3ManagerBusyWithBgCopy()) + { + gBattle_BG1_Y = 0; + gBattleScripting.atk6C_state++; + } + break; + case 6: + if (gMain.newKeys != 0) + { + PlaySE(SE_SELECT); + sub_804F144(); + CopyWindowToVram(13, 2); + gBattleScripting.atk6C_state++; + } + break; + case 8: + if (gMain.newKeys != 0) + { + PlaySE(SE_SELECT); + sub_8056A3C(0x12, 7, 0x1D, 0x13, 0x81); + gBattleScripting.atk6C_state++; + } + break; + case 9: + if (!sub_804F344()) + { + ClearWindowTilemap(14); + CopyWindowToVram(14, 1); + + ClearWindowTilemap(13); + CopyWindowToVram(13, 1); + + SetBgAttribute(2, BG_CTRL_ATTR_MOSAIC, 2); + ShowBg(2); + + gBattleScripting.atk6C_state = 10; + } + break; + case 10: + if (!IsDma3ManagerBusyWithBgCopy()) + { + SetBgAttribute(0, BG_CTRL_ATTR_MOSAIC, 0); + SetBgAttribute(1, BG_CTRL_ATTR_MOSAIC, 1); + ShowBg(0); + ShowBg(1); + gBattlescriptCurrInstr++; + } + break; + } +} + +static void sub_804F100(void) +{ + struct StatsArray currentStats; + + sub_81D388C(&gPlayerParty[gBattleStruct->expGetterId], ¤tStats); + sub_81D3640(0xD, gBattleResources->statsBeforeLvlUp, ¤tStats, 0xE, 0xD, 0xF); +} + +static void sub_804F144(void) +{ + struct StatsArray currentStats; + + sub_81D388C(&gPlayerParty[gBattleStruct->expGetterId], ¤tStats); + sub_81D3784(0xD, ¤tStats, 0xE, 0xD, 0xF); +} + +static void sub_804F17C(void) +{ + gBattle_BG2_Y = 0; + gBattle_BG2_X = 0x1A0; + + LoadPalette(sUnknown_0831C2C8, 0x60, 0x20); + CopyToWindowPixelBuffer(14, sUnknown_0831C2E8, 0, 0); + PutWindowTilemap(14); + CopyWindowToVram(14, 3); + + PutMonIconOnLvlUpBox(); +} + +static bool8 sub_804F1CC(void) +{ + if (IsDma3ManagerBusyWithBgCopy()) + return TRUE; + + if (gBattle_BG2_X == 0x200) + return FALSE; + + if (gBattle_BG2_X == 0x1A0) + PutLevelAndGenderOnLvlUpBox(); + + gBattle_BG2_X += 8; + if (gBattle_BG2_X >= 0x200) + gBattle_BG2_X = 0x200; + + return (gBattle_BG2_X != 0x200); +} + +static void PutLevelAndGenderOnLvlUpBox(void) +{ + u16 monLevel; + u8 monGender; + struct TextSubPrinter subPrinter; + u8 *txtPtr; + u32 var; + + monLevel = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_LEVEL); + monGender = GetMonGender(&gPlayerParty[gBattleStruct->expGetterId]); + GetMonNickname(&gPlayerParty[gBattleStruct->expGetterId], gStringVar4); + + subPrinter.current_text_offset = gStringVar4; + subPrinter.windowId = 14; + subPrinter.fontId = 0; + subPrinter.x = 32; + subPrinter.y = 0; + subPrinter.currentX = 32; + subPrinter.currentY = 0; + subPrinter.letterSpacing = 0; + subPrinter.lineSpacing = 0; + subPrinter.fontColor_l = TEXT_COLOR_TRANSPARENT; + subPrinter.fontColor_h = TEXT_COLOR_WHITE; + subPrinter.bgColor = TEXT_COLOR_TRANSPARENT; + subPrinter.shadowColor = TEXT_COLOR_DARK_GREY; + + AddTextPrinter(&subPrinter, 0xFF, NULL); + + txtPtr = gStringVar4; + gStringVar4[0] = CHAR_SPECIAL_F9; + txtPtr++; + txtPtr[0] = 5; + txtPtr++; + + var = (u32)(txtPtr); + txtPtr = ConvertIntToDecimalStringN(txtPtr, monLevel, STR_CONV_MODE_LEFT_ALIGN, 3); + var = (u32)(txtPtr) - var; + txtPtr = StringFill(txtPtr, 0x77, 4 - var); + + if (monGender != MON_GENDERLESS) + { + if (monGender == MON_MALE) + { + txtPtr = WriteColorChangeControlCode(txtPtr, 0, 0xC); + txtPtr = WriteColorChangeControlCode(txtPtr, 1, 0xD); + *(txtPtr++) = CHAR_MALE; + } + else + { + txtPtr = WriteColorChangeControlCode(txtPtr, 0, 0xE); + txtPtr = WriteColorChangeControlCode(txtPtr, 1, 0xF); + *(txtPtr++) = CHAR_FEMALE; + } + *(txtPtr++) = EOS; + } + + subPrinter.y = 10; + subPrinter.currentY = 10; + AddTextPrinter(&subPrinter, 0xFF, NULL); + + CopyWindowToVram(14, 2); +} + +static bool8 sub_804F344(void) +{ + if (gBattle_BG2_X == 0x1A0) + return FALSE; + + if (gBattle_BG2_X - 16 < 0x1A0) + gBattle_BG2_X = 0x1A0; + else + gBattle_BG2_X -= 16; + + return (gBattle_BG2_X != 0x1A0); +} + +#define sDestroy data0 +#define sSavedLvlUpBoxXPosition data1 + +static void PutMonIconOnLvlUpBox(void) +{ + u8 spriteId; + const u16* iconPal; + struct SpriteSheet iconSheet; + struct SpritePalette iconPalSheet; + + u16 species = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPECIES); + u32 personality = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_PERSONALITY); + + const u8* iconPtr = GetMonIconPtr(species, personality, 1); + iconSheet.data = iconPtr; + iconSheet.size = 0x200; + iconSheet.tag = MON_ICON_LVLUP_BOX_TAG; + + iconPal = GetValidMonIconPalettePtr(species); + iconPalSheet.data = iconPal; + iconPalSheet.tag = MON_ICON_LVLUP_BOX_TAG; + + LoadSpriteSheet(&iconSheet); + LoadSpritePalette(&iconPalSheet); + + spriteId = CreateSprite(&sSpriteTemplate_MonIconOnLvlUpBox, 256, 10, 0); + gSprites[spriteId].sDestroy = FALSE; + gSprites[spriteId].sSavedLvlUpBoxXPosition = gBattle_BG2_X; +} + +static void SpriteCB_MonIconOnLvlUpBox(struct Sprite* sprite) +{ + sprite->pos2.x = sprite->sSavedLvlUpBoxXPosition - gBattle_BG2_X; + + if (sprite->pos2.x != 0) + { + sprite->sDestroy = TRUE; + } + else if (sprite->sDestroy) + { + DestroySprite(sprite); + FreeSpriteTilesByTag(MON_ICON_LVLUP_BOX_TAG); + FreeSpritePaletteByTag(MON_ICON_LVLUP_BOX_TAG); + } +} + +#undef sDestroy +#undef sSavedLvlUpBoxXPosition + +static bool32 IsMonGettingExpSentOut(void) +{ + if (gBattlePartyID[0] == gBattleStruct->expGetterId) + return TRUE; + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && gBattlePartyID[2] == gBattleStruct->expGetterId) + return TRUE; + + return FALSE; +} + +static void atk6D_reset_sentpokes_value(void) +{ + ResetSentPokesToOpponentValue(); + gBattlescriptCurrInstr++; +} + +static void atk6E_set_atk_to_player0(void) +{ + gBankAttacker = GetBankByIdentity(0); + gBattlescriptCurrInstr++; +} + +static void atk6F_set_visible(void) +{ + gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + EmitSpriteInvisibility(0, FALSE); + MarkBufferBankForExecution(gActiveBank); + + gBattlescriptCurrInstr += 2; +} + +static void atk70_record_last_used_ability(void) +{ + gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + RecordAbilityBattle(gActiveBank, gLastUsedAbility); + gBattlescriptCurrInstr += 1; // UB: Should be + 2, one byte for command and one byte for bank argument. +} + +void BufferMoveToLearnIntoBattleTextBuff2(void) +{ + PREPARE_MOVE_BUFFER(gBattleTextBuff2, gMoveToLearn); +} + +static void atk71_buffer_move_to_learn(void) +{ + BufferMoveToLearnIntoBattleTextBuff2(); + gBattlescriptCurrInstr++; +} + +static void atk72_jump_if_can_run_frombattle(void) +{ + if (CanRunFromBattle(gBank1)) + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + else + gBattlescriptCurrInstr += 5; +} + +static void atk73_hp_thresholds(void) +{ + u8 opposingBank; + s32 result; + + if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) + { + gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + opposingBank = gActiveBank ^ BIT_SIDE; + + result = gBattleMons[opposingBank].hp * 100 / gBattleMons[opposingBank].maxHP; + if (result == 0) + result = 1; + + if (result > 69 || !gBattleMons[opposingBank].hp) + gBattleStruct->hpScale = 0; + else if (result > 39) + gBattleStruct->hpScale = 1; + else if (result > 9) + gBattleStruct->hpScale = 2; + else + gBattleStruct->hpScale = 3; + } + + gBattlescriptCurrInstr += 2; +} + +static void atk74_hp_thresholds2(void) +{ + u8 opposingBank; + s32 result; + u8 hpSwitchout; + + if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) + { + gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + opposingBank = gActiveBank ^ BIT_SIDE; + hpSwitchout = *(gBattleStruct->hpOnSwitchout + GetBankSide(opposingBank)); + result = (hpSwitchout - gBattleMons[opposingBank].hp) * 100 / hpSwitchout; + + if (gBattleMons[opposingBank].hp >= hpSwitchout) + gBattleStruct->hpScale = 0; + else if (result <= 29) + gBattleStruct->hpScale = 1; + else if (result <= 69) + gBattleStruct->hpScale = 2; + else + gBattleStruct->hpScale = 3; + } + + gBattlescriptCurrInstr += 2; +} + +static void atk75_item_effect_on_opponent(void) +{ + gBankInMenu = gBankAttacker; + ExecuteTableBasedItemEffect(&gEnemyParty[gBattlePartyID[gBankAttacker]], gLastUsedItem, gBattlePartyID[gBankAttacker], 0, 1); + + gBattlescriptCurrInstr += 1; +} + +static void atk76_various(void) +{ + u8 side; + s32 i; + + gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + + switch (gBattlescriptCurrInstr[2]) + { + case VARIOUS_CANCEL_MULTI_TURN_MOVES: + CancelMultiTurnMoves(gActiveBank); + break; + case VARIOUS_SET_MAGIC_COAT_TARGET: + gBankAttacker = gBankTarget; + side = GetBankSide(gBankAttacker) ^ 1; + if (gSideTimers[side].followmeTimer != 0 && gBattleMons[gSideTimers[side].followmeTarget].hp != 0) + gBankTarget = gSideTimers[side].followmeTarget; + else + gBankTarget = gActiveBank; + break; + case 2: + gBattleCommunication[0] = IsRunningFromBattleImpossible(); + break; + case VARIOUS_GET_MOVE_TARGET: + gBankTarget = GetMoveTarget(gCurrentMove, 0); + break; + case 4: + if (gHitMarker & HITMARKER_FAINTED(gActiveBank)) + gBattleCommunication[0] = 1; + else + gBattleCommunication[0] = 0; + break; + case VARIOUS_RESET_INTIMIDATE_TRACE_BITS: + gSpecialStatuses[gActiveBank].intimidatedPoke = 0; + gSpecialStatuses[gActiveBank].traced = 0; + break; + case VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP: + if (gBattlePartyID[0] == gBattleStruct->expGetterId || gBattlePartyID[2] == gBattleStruct->expGetterId) + { + u16 *choicedMove; + + if (gBattlePartyID[0] == gBattleStruct->expGetterId) + gActiveBank = 0; + else + gActiveBank = 2; + + choicedMove = &gBattleStruct->choicedMove[gActiveBank]; + + for (i = 0; i < 4; i++) + { + if (gBattleMons[gActiveBank].moves[i] == *choicedMove) + break; + } + if (i == 4) + *choicedMove = 0; + } + break; + case 7: + if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_DOUBLE)) + && gBattleTypeFlags & BATTLE_TYPE_TRAINER + && gBattleMons[0].hp != 0 + && gBattleMons[1].hp != 0) + { + gHitMarker &= ~(HITMARKER_x400000); + } + break; + case 8: + gBattleCommunication[0] = 0; + gBattleScripting.bank = gActiveBank = gBattleCommunication[1]; + if (!(gBattleStruct->field_92 & gBitTable[gActiveBank]) + && gBattleMons[gActiveBank].maxHP / 2 >= gBattleMons[gActiveBank].hp + && gBattleMons[gActiveBank].hp != 0 + && !(gBattleMons[gActiveBank].status1 & STATUS_SLEEP)) + { + gBattleStruct->field_92 |= gBitTable[gActiveBank]; + gBattleCommunication[0] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = sUnknown_0831C4F8[GetNatureFromPersonality(gBattleMons[gActiveBank].personality)]; + } + break; + case 9: + i = sub_81A5258(gBattleCommunication); + if (i == 0) + return; + + gBattleCommunication[1] = i; + break; + case 10: + gBattleMons[1].hp = 0; + gHitMarker |= HITMARKER_FAINTED(1); + gBattleStruct->field_2A1 |= gBitTable[gBattlePartyID[1]]; + gDisableStructs[1].truantUnknownBit = 1; + break; + case 11: + gBattleMons[0].hp = 0; + gHitMarker |= HITMARKER_FAINTED(0); + gHitMarker |= HITMARKER_x400000; + gBattleStruct->field_2A0 |= gBitTable[gBattlePartyID[0]]; + gDisableStructs[0].truantUnknownBit = 1; + break; + case 12: + gBattleMons[0].hp = 0; + gBattleMons[1].hp = 0; + gHitMarker |= HITMARKER_FAINTED(0); + gHitMarker |= HITMARKER_FAINTED(1); + gHitMarker |= HITMARKER_x400000; + gBattleStruct->field_2A0 |= gBitTable[gBattlePartyID[0]]; + gBattleStruct->field_2A1 |= gBitTable[gBattlePartyID[1]]; + gDisableStructs[0].truantUnknownBit = 1; + gDisableStructs[1].truantUnknownBit = 1; + break; + case 13: + EmitCmd13(0); + MarkBufferBankForExecution(gActiveBank); + break; + case 14: + sub_81A5BF8(); + break; + case 15: + sub_81A5D44(); + break; + case 16: + BattleStringExpandPlaceholdersToDisplayedString(gRefereeStringsTable[gBattlescriptCurrInstr[1]]); + sub_814F9EC(gDisplayedStringBattle, 0x16); + break; + case 17: + if (IsTextPrinterActive(0x16)) + return; + break; + case VARIOUS_WAIT_CRY: + if (!IsCryFinished()) + return; + break; + case VARIOUS_RETURN_OPPONENT_MON1: + gActiveBank = 1; + if (gBattleMons[gActiveBank].hp != 0) + { + EmitReturnPokeToBall(0, 0); + MarkBufferBankForExecution(gActiveBank); + } + break; + case VARIOUS_RETURN_OPPONENT_MON2: + if (gNoOfAllBanks > 3) + { + gActiveBank = 3; + if (gBattleMons[gActiveBank].hp != 0) + { + EmitReturnPokeToBall(0, 0); + MarkBufferBankForExecution(gActiveBank); + } + } + break; + case 21: + m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 0x55); + break; + case 22: + m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 0x100); + break; + case 23: + gBattleStruct->field_2A2 |= gBitTable[gActiveBank]; + break; + case 24: + if (sub_805725C(gActiveBank)) + return; + break; + case VARIOUS_SET_TELEPORT_OUTCOME: + if (GetBankSide(gActiveBank) == SIDE_PLAYER) + gBattleOutcome = BATTLE_PLAYER_TELEPORTED; + else + gBattleOutcome = BATTLE_OPPONENT_TELEPORTED; + break; + case VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC: + EmitPlaySound(0, 0x19C, 1); + MarkBufferBankForExecution(gActiveBank); + break; + } + + gBattlescriptCurrInstr += 3; +} + +static void atk77_set_protect_like(void) // protect and endure +{ + bool8 notLastTurn = TRUE; + u16 lastMove = gUnknown_02024260[gBankAttacker]; + + if (lastMove != MOVE_PROTECT && lastMove != MOVE_DETECT && lastMove != MOVE_ENDURE) + gDisableStructs[gBankAttacker].protectUses = 0; + + if (gCurrentMoveTurn == (gNoOfAllBanks - 1)) + notLastTurn = FALSE; + + if (sProtectSuccessRates[gDisableStructs[gBankAttacker].protectUses] >= Random() && notLastTurn) + { + if (gBattleMoves[gCurrentMove].effect == EFFECT_PROTECT) + { + gProtectStructs[gBankAttacker].protected = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + } + if (gBattleMoves[gCurrentMove].effect == EFFECT_ENDURE) + { + gProtectStructs[gBankAttacker].endured = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + } + gDisableStructs[gBankAttacker].protectUses++; + } + else + { + gDisableStructs[gBankAttacker].protectUses = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = 2; + gBattleMoveFlags |= MOVESTATUS_MISSED; + } + + gBattlescriptCurrInstr++; +} + +static void atk78_faintifabilitynotdamp(void) +{ + if (gBattleExecBuffer) + return; + + for (gBankTarget = 0; gBankTarget < gNoOfAllBanks; gBankTarget++) + { + if (gBattleMons[gBankTarget].ability == ABILITY_DAMP) + break; + } + + if (gBankTarget == gNoOfAllBanks) + { + gActiveBank = gBankAttacker; + gBattleMoveDamage = gBattleMons[gActiveBank].hp; + EmitHealthBarUpdate(0, 0x7FFF); + MarkBufferBankForExecution(gActiveBank); + gBattlescriptCurrInstr++; + + for (gBankTarget = 0; gBankTarget < gNoOfAllBanks; gBankTarget++) + { + if (gBankTarget == gBankAttacker) + continue; + if (!(gAbsentBankFlags & gBitTable[gBankTarget])) + break; + } + } + else + { + gLastUsedAbility = ABILITY_DAMP; + RecordAbilityBattle(gBankTarget, gBattleMons[gBankTarget].ability); + gBattlescriptCurrInstr = BattleScript_DampStopsExplosion; + } +} + +static void atk79_setatkhptozero(void) +{ + if (gBattleExecBuffer) + return; + + gActiveBank = gBankAttacker; + gBattleMons[gActiveBank].hp = 0; + EmitSetMonData(0, REQUEST_HP_BATTLE, 0, 2, &gBattleMons[gActiveBank].hp); + MarkBufferBankForExecution(gActiveBank); + + gBattlescriptCurrInstr++; +} + +static void atk7A_jumpwhiletargetvalid(void) // Used by intimidate to loop through all targets. +{ + const u8* jumpPtr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + { + for (gBankTarget++; ; gBankTarget++) + { + if (gBankTarget == gBankAttacker) + continue; + if (!(gAbsentBankFlags & gBitTable[gBankTarget])) + break; + } + + if (gBankTarget >= gNoOfAllBanks) + gBattlescriptCurrInstr += 5; + else + gBattlescriptCurrInstr = jumpPtr; + } + else + gBattlescriptCurrInstr += 5; +} + +static void atk7B_healhalfHP_if_possible(void) +{ + const u8* failPtr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + + if (gBattlescriptCurrInstr[5] == BS_GET_ATTACKER) + gBankTarget = gBankAttacker; + + gBattleMoveDamage = gBattleMons[gBankTarget].maxHP / 2; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + gBattleMoveDamage *= -1; + + if (gBattleMons[gBankTarget].hp == gBattleMons[gBankTarget].maxHP) + gBattlescriptCurrInstr = failPtr; + else + gBattlescriptCurrInstr += 6; +} + +static void atk7C_trymirrormove(void) +{ + s32 validMovesCount; + s32 i; + u16 move; + u16 movesArray[4]; + + for (i = 0; i < 3; i++) + movesArray[i] = 0; + + for (validMovesCount = 0, i = 0; i < gNoOfAllBanks; i++) + { + if (i != gBankAttacker) + { + move = *(i * 2 + gBankAttacker * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) + | (*(i * 2 + gBankAttacker * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) << 8); + + if (move != 0 && move != 0xFFFF) + { + movesArray[validMovesCount] = move; + validMovesCount++; + } + } + } + + move = *(gBattleStruct->mirrorMoves + gBankAttacker * 2 + 0) + | (*(gBattleStruct->mirrorMoves + gBankAttacker * 2 + 1) << 8); + + if (move != 0 && move != 0xFFFF) + { + gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); + gCurrentMove = move; + gBankTarget = GetMoveTarget(gCurrentMove, 0); + gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]; + } + else if (validMovesCount) + { + gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); + i = Random() % validMovesCount; + gCurrentMove = movesArray[i]; + gBankTarget = GetMoveTarget(gCurrentMove, 0); + gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]; + } + else + { + gSpecialStatuses[gBankAttacker].flag20 = 1; + gBattlescriptCurrInstr++; + } +} + +static void atk7D_set_rain(void) +{ + if (gBattleWeather & WEATHER_RAIN_ANY) + { + gBattleMoveFlags |= MOVESTATUS_MISSED; + gBattleCommunication[MULTISTRING_CHOOSER] = 2; + } + else + { + gBattleWeather = WEATHER_RAIN_TEMPORARY; + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gWishFutureKnock.weatherDuration = 5; + } + gBattlescriptCurrInstr++; +} + +static void atk7E_setreflect(void) +{ + if (gSideAffecting[GET_BANK_SIDE(gBankAttacker)] & SIDE_STATUS_REFLECT) + { + gBattleMoveFlags |= MOVESTATUS_MISSED; + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + } + else + { + gSideAffecting[GET_BANK_SIDE(gBankAttacker)] |= SIDE_STATUS_REFLECT; + gSideTimers[GET_BANK_SIDE(gBankAttacker)].reflectTimer = 5; + gSideTimers[GET_BANK_SIDE(gBankAttacker)].reflectBank = gBankAttacker; + + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && CountAliveMonsInBattle(BATTLE_ALIVE_ATK_SIDE) == 2) + gBattleCommunication[MULTISTRING_CHOOSER] = 2; + else + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + } + gBattlescriptCurrInstr++; +} + +static void atk7F_setseeded(void) +{ + if (gBattleMoveFlags & MOVESTATUS_NOEFFECT || gStatuses3[gBankTarget] & STATUS3_LEECHSEED) + { + gBattleMoveFlags |= MOVESTATUS_MISSED; + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + } + else if (gBattleMons[gBankTarget].type1 == TYPE_GRASS || gBattleMons[gBankTarget].type2 == TYPE_GRASS) + { + gBattleMoveFlags |= MOVESTATUS_MISSED; + gBattleCommunication[MULTISTRING_CHOOSER] = 2; + } + else + { + gStatuses3[gBankTarget] |= gBankAttacker; + gStatuses3[gBankTarget] |= STATUS3_LEECHSEED; + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + } + + gBattlescriptCurrInstr++; +} + +static void atk80_manipulatedamage(void) +{ + switch (gBattlescriptCurrInstr[1]) + { + case ATK80_DMG_CHANGE_SIGN: + gBattleMoveDamage *= -1; + break; + case ATK80_DMG_HALF_BY_TWO_NOT_MORE_THAN_HALF_MAX_HP: + gBattleMoveDamage /= 2; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + if ((gBattleMons[gBankTarget].maxHP / 2) < gBattleMoveDamage) + gBattleMoveDamage = gBattleMons[gBankTarget].maxHP / 2; + break; + case ATK80_DMG_DOUBLED: + gBattleMoveDamage *= 2; + break; + } + + gBattlescriptCurrInstr += 2; +} + +static void atk81_setrest(void) +{ + const u8* failJump = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + gActiveBank = gBankTarget = gBankAttacker; + gBattleMoveDamage = gBattleMons[gBankTarget].maxHP * (-1); + + if (gBattleMons[gBankTarget].hp == gBattleMons[gBankTarget].maxHP) + { + gBattlescriptCurrInstr = failJump; + } + else + { + if (gBattleMons[gBankTarget].status1 & ((u8)(~STATUS_SLEEP))) + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + else + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + + gBattleMons[gBankTarget].status1 = 3; + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); + MarkBufferBankForExecution(gActiveBank); + gBattlescriptCurrInstr += 5; + } +} + +static void atk82_jumpifnotfirstturn(void) +{ + const u8* failJump = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + + if (gDisableStructs[gBankAttacker].isFirstTurn) + gBattlescriptCurrInstr += 5; + else + gBattlescriptCurrInstr = failJump; +} + +static void atk83_nop(void) +{ + gBattlescriptCurrInstr++; +} + +bool8 UproarWakeUpCheck(u8 bank) +{ + s32 i; + + for (i = 0; i < gNoOfAllBanks; i++) + { + if (!(gBattleMons[i].status2 & STATUS2_UPROAR) || gBattleMons[bank].ability == ABILITY_SOUNDPROOF) + continue; + + gBattleScripting.bank = i; + + if (gBankTarget == 0xFF) + gBankTarget = i; + else if (gBankTarget == i) + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + else + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + + break; + } + + if (i == gNoOfAllBanks) + return FALSE; + else + return TRUE; +} + +static void atk84_jump_if_cant_sleep(void) +{ + const u8* jumpPtr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + + if (UproarWakeUpCheck(gBankTarget)) + { + gBattlescriptCurrInstr = jumpPtr; + } + else if (gBattleMons[gBankTarget].ability == ABILITY_INSOMNIA + || gBattleMons[gBankTarget].ability == ABILITY_VITAL_SPIRIT) + { + gLastUsedAbility = gBattleMons[gBankTarget].ability; + gBattleCommunication[MULTISTRING_CHOOSER] = 2; + gBattlescriptCurrInstr = jumpPtr; + RecordAbilityBattle(gBankTarget, gLastUsedAbility); + } + else + { + gBattlescriptCurrInstr += 5; + } +} + +static void atk85_stockpile(void) +{ + if (gDisableStructs[gBankAttacker].stockpileCounter == 3) + { + gBattleMoveFlags |= MOVESTATUS_MISSED; + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + } + else + { + gDisableStructs[gBankAttacker].stockpileCounter++; + + PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff1, 1, gDisableStructs[gBankAttacker].stockpileCounter) + + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + } + gBattlescriptCurrInstr++; +} + +static void atk86_stockpiletobasedamage(void) +{ + const u8* jumpPtr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + if (gDisableStructs[gBankAttacker].stockpileCounter == 0) + { + gBattlescriptCurrInstr = jumpPtr; + } + else + { + if (gBattleCommunication[6] != 1) + { + gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankTarget], gCurrentMove, + gSideAffecting[GET_BANK_SIDE(gBankTarget)], 0, + 0, gBankAttacker, gBankTarget) + * gDisableStructs[gBankAttacker].stockpileCounter; + gBattleScripting.animTurn = gDisableStructs[gBankAttacker].stockpileCounter; + + if (gProtectStructs[gBankAttacker].helpingHand) + gBattleMoveDamage = gBattleMoveDamage * 15 / 10; + } + + gDisableStructs[gBankAttacker].stockpileCounter = 0; + gBattlescriptCurrInstr += 5; + } +} + +static void atk87_stockpiletohpheal(void) +{ + const u8* jumpPtr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + + if (gDisableStructs[gBankAttacker].stockpileCounter == 0) + { + gBattlescriptCurrInstr = jumpPtr; + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + } + else if (gBattleMons[gBankAttacker].maxHP == gBattleMons[gBankAttacker].hp) + { + gDisableStructs[gBankAttacker].stockpileCounter = 0; + gBattlescriptCurrInstr = jumpPtr; + gBankTarget = gBankAttacker; + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + } + else + { + gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / (1 << (3 - gDisableStructs[gBankAttacker].stockpileCounter)); + + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + gBattleMoveDamage *= -1; + + gBattleScripting.animTurn = gDisableStructs[gBankAttacker].stockpileCounter; + gDisableStructs[gBankAttacker].stockpileCounter = 0; + gBattlescriptCurrInstr += 5; + gBankTarget = gBankAttacker; + } +} + +static void atk88_negativedamage(void) +{ + gBattleMoveDamage = -(gHpDealt / 2); + if (gBattleMoveDamage == 0) + gBattleMoveDamage = -1; + + gBattlescriptCurrInstr++; +} + +static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8* BS_ptr) +{ + bool8 certain = 0; + bool8 notProtectAffected = FALSE; + u32 index; + + if (flags & MOVE_EFFECT_AFFECTS_USER) + gActiveBank = gBankAttacker; + else + gActiveBank = gBankTarget; + + flags &= ~(MOVE_EFFECT_AFFECTS_USER); + + if (flags & MOVE_EFFECT_CERTAIN) + certain++; + flags &= ~(MOVE_EFFECT_CERTAIN); + + if (flags & STAT_CHANGE_NOT_PROTECT_AFFECTED) + notProtectAffected++; + flags &= ~(STAT_CHANGE_NOT_PROTECT_AFFECTED); + + PREPARE_STAT_BUFFER(gBattleTextBuff1, statId) + + if ((statValue << 0x18) < 0) // stat decrease + { + if (gSideTimers[GET_BANK_SIDE(gActiveBank)].mistTimer + && !certain && gCurrentMove != MOVE_CURSE) + { + if (flags == STAT_CHANGE_BS_PTR) + { + if (gSpecialStatuses[gActiveBank].statLowered) + { + gBattlescriptCurrInstr = BS_ptr; + } + else + { + BattleScriptPush(BS_ptr); + gBattleScripting.bank = gActiveBank; + gBattlescriptCurrInstr = BattleScript_MistProtected; + gSpecialStatuses[gActiveBank].statLowered = 1; + } + } + return STAT_CHANGE_DIDNT_WORK; + } + else if (gCurrentMove != MOVE_CURSE + && notProtectAffected != TRUE && JumpIfMoveAffectedByProtect(0)) + { + gBattlescriptCurrInstr = BattleScript_ButItFailed; + return STAT_CHANGE_DIDNT_WORK; + } + else if ((gBattleMons[gActiveBank].ability == ABILITY_CLEAR_BODY + || gBattleMons[gActiveBank].ability == ABILITY_WHITE_SMOKE) + && !certain && gCurrentMove != MOVE_CURSE) + { + if (flags == STAT_CHANGE_BS_PTR) + { + if (gSpecialStatuses[gActiveBank].statLowered) + { + gBattlescriptCurrInstr = BS_ptr; + } + else + { + BattleScriptPush(BS_ptr); + gBattleScripting.bank = gActiveBank; + gBattlescriptCurrInstr = BattleScript_AbilityNoStatLoss; + gLastUsedAbility = gBattleMons[gActiveBank].ability; + RecordAbilityBattle(gActiveBank, gLastUsedAbility); + gSpecialStatuses[gActiveBank].statLowered = 1; + } + } + return STAT_CHANGE_DIDNT_WORK; + } + else if (gBattleMons[gActiveBank].ability == ABILITY_KEEN_EYE + && !certain && statId == STAT_STAGE_ACC) + { + if (flags == STAT_CHANGE_BS_PTR) + { + BattleScriptPush(BS_ptr); + gBattleScripting.bank = gActiveBank; + gBattlescriptCurrInstr = BattleScript_AbilityNoSpecificStatLoss; + gLastUsedAbility = gBattleMons[gActiveBank].ability; + RecordAbilityBattle(gActiveBank, gLastUsedAbility); + } + return STAT_CHANGE_DIDNT_WORK; + } + else if (gBattleMons[gActiveBank].ability == ABILITY_HYPER_CUTTER + && !certain && statId == STAT_STAGE_ATK) + { + if (flags == STAT_CHANGE_BS_PTR) + { + BattleScriptPush(BS_ptr); + gBattleScripting.bank = gActiveBank; + gBattlescriptCurrInstr = BattleScript_AbilityNoSpecificStatLoss; + gLastUsedAbility = gBattleMons[gActiveBank].ability; + RecordAbilityBattle(gActiveBank, gLastUsedAbility); + } + return STAT_CHANGE_DIDNT_WORK; + } + else if (gBattleMons[gActiveBank].ability == ABILITY_SHIELD_DUST && flags == 0) + { + return STAT_CHANGE_DIDNT_WORK; + } + else // try to decrease + { + statValue = -GET_STAT_BUFF_VALUE(statValue); + gBattleTextBuff2[0] = B_BUFF_PLACEHOLDER_BEGIN; + index = 1; + if (statValue == -2) + { + gBattleTextBuff2[1] = B_BUFF_STRING; + gBattleTextBuff2[2] = 0xD3; // harshly + gBattleTextBuff2[3] = 0xD3 >> 8; + index = 4; + } + gBattleTextBuff2[index] = B_BUFF_STRING; + index++; + gBattleTextBuff2[index] = 0xD4; // fell + index++; + gBattleTextBuff2[index] = 0xD4 >> 8; + index++; + gBattleTextBuff2[index] = B_BUFF_EOS; + + if (gBattleMons[gActiveBank].statStages[statId] == 0) + gBattleCommunication[MULTISTRING_CHOOSER] = 2; + else + gBattleCommunication[MULTISTRING_CHOOSER] = (gBankTarget == gActiveBank); + + } + } + else // stat increase + { + statValue = GET_STAT_BUFF_VALUE(statValue); + gBattleTextBuff2[0] = B_BUFF_PLACEHOLDER_BEGIN; + index = 1; + if (statValue == 2) + { + gBattleTextBuff2[1] = B_BUFF_STRING; + gBattleTextBuff2[2] = 0xD1; // sharply + gBattleTextBuff2[3] = 0xD1 >> 8; + index = 4; + } + gBattleTextBuff2[index] = B_BUFF_STRING; + index++; + gBattleTextBuff2[index] = 0xD2; // rose + index++; + gBattleTextBuff2[index] = 0xD2 >> 8; + index++; + gBattleTextBuff2[index] = B_BUFF_EOS; + + if (gBattleMons[gActiveBank].statStages[statId] == 0xC) + gBattleCommunication[MULTISTRING_CHOOSER] = 2; + else + gBattleCommunication[MULTISTRING_CHOOSER] = (gBankTarget == gActiveBank); + } + + gBattleMons[gActiveBank].statStages[statId] += statValue; + if (gBattleMons[gActiveBank].statStages[statId] < 0) + gBattleMons[gActiveBank].statStages[statId] = 0; + if (gBattleMons[gActiveBank].statStages[statId] > 0xC) + gBattleMons[gActiveBank].statStages[statId] = 0xC; + + if (gBattleCommunication[MULTISTRING_CHOOSER] == 2 && flags & STAT_CHANGE_BS_PTR) + gBattleMoveFlags |= MOVESTATUS_MISSED; + + if (gBattleCommunication[MULTISTRING_CHOOSER] == 2 && !(flags & STAT_CHANGE_BS_PTR)) + return STAT_CHANGE_DIDNT_WORK; + + return STAT_CHANGE_WORKED; +} + +static void atk89_statbuffchange(void) +{ + const u8* jumpPtr = BSScriptReadPtr(gBattlescriptCurrInstr + 2); + if (ChangeStatBuffs(gBattleScripting.statChanger & 0xF0, GET_STAT_BUFF_ID(gBattleScripting.statChanger), gBattlescriptCurrInstr[1], jumpPtr) == STAT_CHANGE_WORKED) + gBattlescriptCurrInstr += 6; +} + +static void atk8A_normalisebuffs(void) // haze +{ + s32 i, j; + + for (i = 0; i < gNoOfAllBanks; i++) + { + for (j = 0; j < BATTLE_STATS_NO; j++) + gBattleMons[i].statStages[j] = 6; + } + + gBattlescriptCurrInstr++; +} + +static void atk8B_setbide(void) +{ + gBattleMons[gBankAttacker].status2 |= STATUS2_MULTIPLETURNS; + gLockedMoves[gBankAttacker] = gCurrentMove; + gTakenDmg[gBankAttacker] = 0; + gBattleMons[gBankAttacker].status2 |= (STATUS2_BIDE - 0x100); // 2 turns + + gBattlescriptCurrInstr++; +} + +static void atk8C_confuseifrepeatingattackends(void) +{ + if (!(gBattleMons[gBankAttacker].status2 & STATUS2_LOCK_CONFUSE)) + gBattleCommunication[MOVE_EFFECT_BYTE] = (MOVE_EFFECT_THRASH | MOVE_EFFECT_AFFECTS_USER); + + gBattlescriptCurrInstr++; +} + +static void atk8D_setmultihit_counter(void) +{ + if (gBattlescriptCurrInstr[1]) + { + gMultiHitCounter = gBattlescriptCurrInstr[1]; + } + else + { + gMultiHitCounter = Random() & 3; + if (gMultiHitCounter > 1) + gMultiHitCounter = (Random() & 3) + 2; + else + gMultiHitCounter += 2; + } + + gBattlescriptCurrInstr += 2; +} + +static void atk8E_init_multihit_string(void) +{ + PREPARE_BYTE_NUMBER_BUFFER(gBattleScripting.multihitString, 1, 0) + + gBattlescriptCurrInstr++; +} + +static bool8 sub_8051064(void) +{ + if (gBattleMons[gBankAttacker].level >= gBattleMons[gBankTarget].level) + { + *(gBattleStruct->field_58 + gBankTarget) = gBattlePartyID[gBankTarget]; + } + else + { + u16 random = Random() & 0xFF; + if ((u32)((random * (gBattleMons[gBankAttacker].level + gBattleMons[gBankTarget].level) >> 8) + 1) <= (gBattleMons[gBankTarget].level / 4)) + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + return FALSE; + } + *(gBattleStruct->field_58 + gBankTarget) = gBattlePartyID[gBankTarget]; + } + + gBattlescriptCurrInstr = gUnknown_082DADD8; + return TRUE; +} + +static void atk8F_forcerandomswitch(void) +{ + s32 i; + s32 bank1PartyId = 0; + s32 bank2PartyId = 0; + + #ifdef NONMATCHING + s32 lastMonId = 0; // + 1 + #else + register s32 lastMonId asm("r8") = 0; // + 1 + #endif // NONMATCHING + + s32 firstMonId = 0; + s32 monsCount = 0; + struct Pokemon* party = NULL; + s32 validMons = 0; + s32 minNeeded = 0; + + if ((gBattleTypeFlags & BATTLE_TYPE_TRAINER)) + { + if (GetBankSide(gBankTarget) == SIDE_PLAYER) + party = gPlayerParty; + else + party = gEnemyParty; + + if ((gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER && gBattleTypeFlags & BATTLE_TYPE_LINK) + || (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER && gBattleTypeFlags & BATTLE_TYPE_x2000000) + || (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER)) + { + if ((gBankTarget & BIT_MON) != 0) + { + firstMonId = 3; + lastMonId = 6; + } + else + { + firstMonId = 0; + lastMonId = 3; + } + monsCount = 3; + minNeeded = 1; + bank2PartyId = gBattlePartyID[gBankTarget]; + bank1PartyId = gBattlePartyID[gBankTarget ^ BIT_MON]; + } + else if ((gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_LINK) + || (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_x2000000)) + { + if (sub_806D82C(sub_806D864(gBankTarget)) == 1) + { + firstMonId = 3; + lastMonId = 6; + } + else + { + firstMonId = 0; + lastMonId = 3; + } + monsCount = 3; + minNeeded = 1; + bank2PartyId = gBattlePartyID[gBankTarget]; + bank1PartyId = gBattlePartyID[gBankTarget ^ BIT_MON]; + } + else if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) + { + if (GetBankSide(gBankTarget) == SIDE_PLAYER) + { + firstMonId = 0; + lastMonId = 6; + monsCount = 6; + minNeeded = 2; // since there are two opponents, it has to be a double battle + } + else + { + if ((gBankTarget & BIT_MON) != 0) + { + firstMonId = 3; + lastMonId = 6; + } + else + { + firstMonId = 0; + lastMonId = 3; + } + monsCount = 3; + minNeeded = 1; + } + bank2PartyId = gBattlePartyID[gBankTarget]; + bank1PartyId = gBattlePartyID[gBankTarget ^ BIT_MON]; + } + else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + { + firstMonId = 0; + lastMonId = 6; + monsCount = 6; + minNeeded = 2; + bank2PartyId = gBattlePartyID[gBankTarget]; + bank1PartyId = gBattlePartyID[gBankTarget ^ BIT_MON]; + } + else + { + firstMonId = 0; + lastMonId = 6; + monsCount = 6; + minNeeded = 1; + bank2PartyId = gBattlePartyID[gBankTarget]; // there is only one pokemon out in single battles + bank1PartyId = gBattlePartyID[gBankTarget]; + } + + for (i = firstMonId; i < lastMonId; i++) + { + if (GetMonData(&party[i], MON_DATA_SPECIES) != SPECIES_NONE + && !GetMonData(&party[i], MON_DATA_IS_EGG) + && GetMonData(&party[i], MON_DATA_HP) != 0) + { + validMons++; + } + } + + if (validMons <= minNeeded) + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } + else + { + if (sub_8051064()) + { + do + { + i = Random() % monsCount; + i += firstMonId; + } + while (i == bank2PartyId + || i == bank1PartyId + || GetMonData(&party[i], MON_DATA_SPECIES) == SPECIES_NONE + || GetMonData(&party[i], MON_DATA_IS_EGG) == TRUE + || GetMonData(&party[i], MON_DATA_HP) == 0); + } + *(gBattleStruct->field_5C + gBankTarget) = i; + + if (!sub_81B1250()) + sub_803BDA0(gBankTarget); + + if ((gBattleTypeFlags & BATTLE_TYPE_LINK && gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) + || (gBattleTypeFlags & BATTLE_TYPE_LINK && gBattleTypeFlags & BATTLE_TYPE_MULTI) + || (gBattleTypeFlags & BATTLE_TYPE_x2000000 && gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) + || (gBattleTypeFlags & BATTLE_TYPE_x2000000 && gBattleTypeFlags & BATTLE_TYPE_MULTI)) + { + sub_81B8E80(gBankTarget, i, 0); + sub_81B8E80(gBankTarget ^ BIT_MON, i, 1); + } + + if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) + sub_80571DC(gBankTarget, i); + } + } + else + { + sub_8051064(); + } +} + +static void atk90_conversion_type_change(void) // randomly changes user's type to one of its moves' type +{ + u8 validMoves = 0; + u8 moveChecked; + u8 moveType; + + while (validMoves < 4) + { + if (gBattleMons[gBankAttacker].moves[validMoves] == 0) + break; + + validMoves++; + } + + for (moveChecked = 0; moveChecked < validMoves; moveChecked++) + { + moveType = gBattleMoves[gBattleMons[gBankAttacker].moves[moveChecked]].type; + + if (moveType == TYPE_MYSTERY) + { + if (gBattleMons[gBankAttacker].type1 == TYPE_GHOST || gBattleMons[gBankAttacker].type2 == TYPE_GHOST) + moveType = TYPE_GHOST; + else + moveType = TYPE_NORMAL; + } + if (moveType != gBattleMons[gBankAttacker].type1 + && moveType != gBattleMons[gBankAttacker].type2) + { + break; + } + } + + if (moveChecked == validMoves) + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } + else + { + do + { + + while ((moveChecked = Random() & 3) >= validMoves); + + moveType = gBattleMoves[gBattleMons[gBankAttacker].moves[moveChecked]].type; + + if (moveType == TYPE_MYSTERY) + { + if (gBattleMons[gBankAttacker].type1 == TYPE_GHOST || gBattleMons[gBankAttacker].type2 == TYPE_GHOST) + moveType = TYPE_GHOST; + else + moveType = TYPE_NORMAL; + } + } + while (moveType == gBattleMons[gBankAttacker].type1 || moveType == gBattleMons[gBankAttacker].type2); + + gBattleMons[gBankAttacker].type1 = moveType; + gBattleMons[gBankAttacker].type2 = moveType; + + PREPARE_TYPE_BUFFER(gBattleTextBuff1, moveType) + + gBattlescriptCurrInstr += 5; + } +} + +static void atk91_givepaydaymoney(void) +{ + if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) && gPaydayMoney != 0) + { + u32 bonusMoney = gPaydayMoney * gBattleStruct->moneyMultiplier; + AddMoney(&gSaveBlock1Ptr->money, bonusMoney); + + PREPARE_HWORD_NUMBER_BUFFER(gBattleTextBuff1, 5, bonusMoney) + + BattleScriptPush(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = BattleScript_PrintPayDayMoneyString; + } + else + { + gBattlescriptCurrInstr++; + } +} + +static void atk92_setlightscreen(void) +{ + if (gSideAffecting[GET_BANK_SIDE(gBankAttacker)] & SIDE_STATUS_LIGHTSCREEN) + { + gBattleMoveFlags |= MOVESTATUS_MISSED; + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + } + else + { + gSideAffecting[GET_BANK_SIDE(gBankAttacker)] |= SIDE_STATUS_LIGHTSCREEN; + gSideTimers[GET_BANK_SIDE(gBankAttacker)].lightscreenTimer = 5; + gSideTimers[GET_BANK_SIDE(gBankAttacker)].lightscreenBank = gBankAttacker; + + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && CountAliveMonsInBattle(BATTLE_ALIVE_ATK_SIDE) == 2) + gBattleCommunication[MULTISTRING_CHOOSER] = 4; + else + gBattleCommunication[MULTISTRING_CHOOSER] = 3; + } + + gBattlescriptCurrInstr++; +} + +static void atk93_ko_move(void) +{ + u8 holdEffect, param; + + if (gBattleMons[gBankTarget].item == ITEM_ENIGMA_BERRY) + { + holdEffect = gEnigmaBerries[gBankTarget].holdEffect; + param = gEnigmaBerries[gBankTarget].holdEffectParam; + } + else + { + holdEffect = ItemId_GetHoldEffect(gBattleMons[gBankTarget].item); + param = ItemId_GetHoldEffectParam(gBattleMons[gBankTarget].item); + } + + gStringBank = gBankTarget; + + if (holdEffect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < param) + { + RecordItemEffectBattle(gBankTarget, HOLD_EFFECT_FOCUS_BAND); + gSpecialStatuses[gBankTarget].focusBanded = 1; + } + + if (gBattleMons[gBankTarget].ability == ABILITY_STURDY) + { + gBattleMoveFlags |= MOVESTATUS_MISSED; + gLastUsedAbility = ABILITY_STURDY; + gBattlescriptCurrInstr = BattleScript_SturdyPreventsOHKO; + RecordAbilityBattle(gBankTarget, ABILITY_STURDY); + } + else + { + u16 chance; + if (!(gStatuses3[gBankTarget] & STATUS3_ALWAYS_HITS)) + { + chance = gBattleMoves[gCurrentMove].accuracy + (gBattleMons[gBankAttacker].level - gBattleMons[gBankTarget].level); + if (Random() % 100 + 1 < chance && gBattleMons[gBankAttacker].level >= gBattleMons[gBankTarget].level) + chance = TRUE; + else + chance = FALSE; + } + else if (gDisableStructs[gBankTarget].bankWithSureHit == gBankAttacker + && gBattleMons[gBankAttacker].level >= gBattleMons[gBankTarget].level) + { + chance = TRUE; + } + else + { + chance = gBattleMoves[gCurrentMove].accuracy + (gBattleMons[gBankAttacker].level - gBattleMons[gBankTarget].level); + if (Random() % 100 + 1 < chance && gBattleMons[gBankAttacker].level >= gBattleMons[gBankTarget].level) + chance = TRUE; + else + chance = FALSE; + } + if (chance) + { + if (gProtectStructs[gBankTarget].endured) + { + gBattleMoveDamage = gBattleMons[gBankTarget].hp - 1; + gBattleMoveFlags |= MOVESTATUS_ENDURED; + } + else if (gSpecialStatuses[gBankTarget].focusBanded) + { + gBattleMoveDamage = gBattleMons[gBankTarget].hp - 1; + gBattleMoveFlags |= MOVESTATUS_HUNGON; + gLastUsedItem = gBattleMons[gBankTarget].item; + } + else + { + gBattleMoveDamage = gBattleMons[gBankTarget].hp; + gBattleMoveFlags |= MOVESTATUS_ONEHITKO; + } + gBattlescriptCurrInstr += 5; + } + else + { + gBattleMoveFlags |= MOVESTATUS_MISSED; + if (gBattleMons[gBankAttacker].level >= gBattleMons[gBankTarget].level) + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + else + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } + } +} + +static void atk94_damagetohalftargethp(void) // super fang +{ + gBattleMoveDamage = gBattleMons[gBankTarget].hp / 2; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + + gBattlescriptCurrInstr++; +} + +static void atk95_setsandstorm(void) +{ + if (gBattleWeather & WEATHER_SANDSTORM_ANY) + { + gBattleMoveFlags |= MOVESTATUS_MISSED; + gBattleCommunication[MULTISTRING_CHOOSER] = 2; + } + else + { + gBattleWeather = WEATHER_SANDSTORM_TEMPORARY; + gBattleCommunication[MULTISTRING_CHOOSER] = 3; + gWishFutureKnock.weatherDuration = 5; + } + gBattlescriptCurrInstr++; +} + +static void atk96_weatherdamage(void) +{ + if (WEATHER_HAS_EFFECT) + { + if (gBattleWeather & WEATHER_SANDSTORM_ANY) + { + if (gBattleMons[gBankAttacker].type1 != TYPE_ROCK + && gBattleMons[gBankAttacker].type1 != TYPE_STEEL + && gBattleMons[gBankAttacker].type1 != TYPE_GROUND + && gBattleMons[gBankAttacker].type2 != TYPE_ROCK + && gBattleMons[gBankAttacker].type2 != TYPE_STEEL + && gBattleMons[gBankAttacker].type2 != TYPE_GROUND + && gBattleMons[gBankAttacker].ability != ABILITY_SAND_VEIL + && !(gStatuses3[gBankAttacker] & STATUS3_UNDERGROUND) + && !(gStatuses3[gBankAttacker] & STATUS3_UNDERWATER)) + { + gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 16; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + } + else + { + gBattleMoveDamage = 0; + } + } + if (gBattleWeather & WEATHER_HAIL) + { + if (gBattleMons[gBankAttacker].type1 != TYPE_ICE + && gBattleMons[gBankAttacker].type2 != TYPE_ICE + && !(gStatuses3[gBankAttacker] & STATUS3_UNDERGROUND) + && !(gStatuses3[gBankAttacker] & STATUS3_UNDERWATER)) + { + gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 16; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + } + else + { + gBattleMoveDamage = 0; + } + } + } + else + { + gBattleMoveDamage = 0; + } + + if (gAbsentBankFlags & gBitTable[gBankAttacker]) + gBattleMoveDamage = 0; + + gBattlescriptCurrInstr++; +} + +static void atk97_try_infatuation(void) +{ + struct Pokemon *monAttacker, *monTarget; + u16 speciesAttacker, speciesTarget; + u32 personalityAttacker, personalityTarget; + + if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + monAttacker = &gPlayerParty[gBattlePartyID[gBankAttacker]]; + else + monAttacker = &gEnemyParty[gBattlePartyID[gBankAttacker]]; + + if (GetBankSide(gBankTarget) == SIDE_PLAYER) + monTarget = &gPlayerParty[gBattlePartyID[gBankTarget]]; + else + monTarget = &gEnemyParty[gBattlePartyID[gBankTarget]]; + + speciesAttacker = GetMonData(monAttacker, MON_DATA_SPECIES); + personalityAttacker = GetMonData(monAttacker, MON_DATA_PERSONALITY); + + speciesTarget = GetMonData(monTarget, MON_DATA_SPECIES); + personalityTarget = GetMonData(monTarget, MON_DATA_PERSONALITY); + + if (gBattleMons[gBankTarget].ability == ABILITY_OBLIVIOUS) + { + gBattlescriptCurrInstr = BattleScript_ObliviousPreventsAttraction; + gLastUsedAbility = ABILITY_OBLIVIOUS; + RecordAbilityBattle(gBankTarget, ABILITY_OBLIVIOUS); + } + else + { + if (GetGenderFromSpeciesAndPersonality(speciesAttacker, personalityAttacker) == GetGenderFromSpeciesAndPersonality(speciesTarget, personalityTarget) + || gBattleMons[gBankTarget].status2 & STATUS2_INFATUATION + || GetGenderFromSpeciesAndPersonality(speciesAttacker, personalityAttacker) == MON_GENDERLESS + || GetGenderFromSpeciesAndPersonality(speciesTarget, personalityTarget) == MON_GENDERLESS) + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } + else + { + gBattleMons[gBankTarget].status2 |= STATUS2_INFATUATED_WITH(gBankAttacker); + gBattlescriptCurrInstr += 5; + } + } +} + +static void atk98_status_icon_update(void) +{ + if (gBattleExecBuffer) + return; + + if (gBattlescriptCurrInstr[1] != BS_ATTACKER_WITH_PARTNER) + { + gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + EmitStatusIconUpdate(0, gBattleMons[gActiveBank].status1, gBattleMons[gActiveBank].status2); + MarkBufferBankForExecution(gActiveBank); + gBattlescriptCurrInstr += 2; + } + else + { + gActiveBank = gBankAttacker; + if (!(gAbsentBankFlags & gBitTable[gActiveBank])) + { + EmitStatusIconUpdate(0, gBattleMons[gActiveBank].status1, gBattleMons[gActiveBank].status2); + MarkBufferBankForExecution(gActiveBank); + } + if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) + { + gActiveBank = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ BIT_MON); + if (!(gAbsentBankFlags & gBitTable[gActiveBank])) + { + EmitStatusIconUpdate(0, gBattleMons[gActiveBank].status1, gBattleMons[gActiveBank].status2); + MarkBufferBankForExecution(gActiveBank); + } + } + gBattlescriptCurrInstr += 2; + } +} + +static void atk99_setmist(void) +{ + if (gSideTimers[GET_BANK_SIDE(gBankAttacker)].mistTimer) + { + gBattleMoveFlags |= MOVESTATUS_FAILED; + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + } + else + { + gSideTimers[GET_BANK_SIDE(gBankAttacker)].mistTimer = 5; + gSideTimers[GET_BANK_SIDE(gBankAttacker)].mistBank = gBankAttacker; + gSideAffecting[GET_BANK_SIDE(gBankAttacker)] |= SIDE_STATUS_MIST; + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + } + gBattlescriptCurrInstr++; +} + +static void atk9A_set_focusenergy(void) +{ + if (gBattleMons[gBankAttacker].status2 & STATUS2_FOCUS_ENERGY) + { + gBattleMoveFlags |= MOVESTATUS_FAILED; + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + } + else + { + gBattleMons[gBankAttacker].status2 |= STATUS2_FOCUS_ENERGY; + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + } + gBattlescriptCurrInstr++; +} + +static void atk9B_transformdataexecution(void) +{ + gLastUsedMove = 0xFFFF; + gBattlescriptCurrInstr++; + if (gBattleMons[gBankTarget].status2 & STATUS2_TRANSFORMED + || gStatuses3[gBankTarget] & STATUS3_SEMI_INVULNERABLE) + { + gBattleMoveFlags |= MOVESTATUS_FAILED; + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + } + else + { + s32 i; + u8 *battleMonAttacker, *battleMonTarget; + + gBattleMons[gBankAttacker].status2 |= STATUS2_TRANSFORMED; + gDisableStructs[gBankAttacker].disabledMove = 0; + gDisableStructs[gBankAttacker].disableTimer1 = 0; + gDisableStructs[gBankAttacker].unk0 = gBattleMons[gBankTarget].personality; + gDisableStructs[gBankAttacker].unk18_b = 0; + + PREPARE_SPECIES_BUFFER(gBattleTextBuff1, gBattleMons[gBankTarget].species) + + battleMonAttacker = (u8*)(&gBattleMons[gBankAttacker]); + battleMonTarget = (u8*)(&gBattleMons[gBankTarget]); + + for (i = 0; i < offsetof(struct BattlePokemon, pp); i++) + battleMonAttacker[i] = battleMonTarget[i]; + + for (i = 0; i < 4; i++) + { + if (gBattleMoves[gBattleMons[gBankAttacker].moves[i]].pp < 5) + gBattleMons[gBankAttacker].pp[i] = gBattleMoves[gBattleMons[gBankAttacker].moves[i]].pp; + else + gBattleMons[gBankAttacker].pp[i] = 5; + } + + gActiveBank = gBankAttacker; + EmitResetActionMoveSelection(0, RESET_MOVE_SELECTION); + MarkBufferBankForExecution(gActiveBank); + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + } +} + +static void atk9C_set_substitute(void) +{ + u32 hp = gBattleMons[gBankAttacker].maxHP / 4; + if (gBattleMons[gBankAttacker].maxHP / 4 == 0) + hp = 1; + + if (gBattleMons[gBankAttacker].hp <= hp) + { + gBattleMoveDamage = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + } + else + { + gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 4; // one bit value will only work for pokemon which max hp can go to 1020(which is more than possible in games) + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + + gBattleMons[gBankAttacker].status2 |= STATUS2_SUBSTITUTE; + gBattleMons[gBankAttacker].status2 &= ~(STATUS2_WRAPPED); + gDisableStructs[gBankAttacker].substituteHP = gBattleMoveDamage; + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gHitMarker |= HITMARKER_IGNORE_SUBSTITUTE; + } + + gBattlescriptCurrInstr++; +} + +static bool8 IsMoveUncopyableByMimic(u16 move) +{ + s32 i; + for (i = 0; sMovesForbiddenToCopy[i] != MIMIC_FORBIDDEN_END + && sMovesForbiddenToCopy[i] != move; i++); + + return (sMovesForbiddenToCopy[i] != MIMIC_FORBIDDEN_END); +} + +static void atk9D_mimicattackcopy(void) +{ + gLastUsedMove = 0xFFFF; + + if (IsMoveUncopyableByMimic(gLastUsedMovesByBanks[gBankTarget]) + || gBattleMons[gBankAttacker].status2 & STATUS2_TRANSFORMED + || gLastUsedMovesByBanks[gBankTarget] == 0 + || gLastUsedMovesByBanks[gBankTarget] == 0xFFFF) + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } + else + { + s32 i; + + for (i = 0; i < 4; i++) + { + if (gBattleMons[gBankAttacker].moves[i] == gLastUsedMovesByBanks[gBankTarget]) + break; + } + + if (i == 4) + { + gBattleMons[gBankAttacker].moves[gCurrMovePos] = gLastUsedMovesByBanks[gBankTarget]; + if (gBattleMoves[gLastUsedMovesByBanks[gBankTarget]].pp < 5) + gBattleMons[gBankAttacker].pp[gCurrMovePos] = gBattleMoves[gLastUsedMovesByBanks[gBankTarget]].pp; + else + gBattleMons[gBankAttacker].pp[gCurrMovePos] = 5; + + + PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastUsedMovesByBanks[gBankTarget]) + + gDisableStructs[gBankAttacker].unk18_b |= gBitTable[gCurrMovePos]; + gBattlescriptCurrInstr += 5; + } + else + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } + } +} + +#ifdef NONMATCHING +static void atk9E_metronome(void) +{ + while (1) + { + const u16 *move; + s32 i, j; + + gCurrentMove = (Random() & 0x1FF) + 1; + if (gCurrentMove > LAST_MOVE_INDEX) + continue; + + for (i = 0; i < 4; i++); // ? + + for (move = sMovesForbiddenToCopy; ; move++) + { + if (*move == gCurrentMove) + break; + if (*move == METRONOME_FORBIDDEN_END) + break; + } + + if (*move == METRONOME_FORBIDDEN_END) + break; + } + + gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); + gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]; + gBankTarget = GetMoveTarget(gCurrentMove, 0); +} + +#else +__attribute__((naked)) +static void atk9E_metronome(void) +{ + asm( + "\n\ + .syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r8\n\ + push {r7}\n\ + ldr r7, =gCurrentMove\n\ + movs r6, 0xB1\n\ + lsls r6, 1\n\ + ldr r5, =sMovesForbiddenToCopy\n\ + ldr r0, =gBattlescriptCurrInstr\n\ + mov r8, r0\n\ +_080524EE:\n\ + bl Random\n\ + ldr r2, =0x000001ff\n\ + adds r1, r2, 0\n\ + ands r0, r1\n\ + adds r0, 0x1\n\ + strh r0, [r7]\n\ + cmp r0, r6\n\ + bhi _080524EE\n\ + movs r0, 0x3\n\ +_08052502:\n\ + subs r0, 0x1\n\ + cmp r0, 0\n\ + bge _08052502\n\ + ldr r4, =gCurrentMove\n\ + ldrh r2, [r4]\n\ + ldr r3, =0x0000ffff\n\ + subs r0, r5, 0x2\n\ +_08052510:\n\ + adds r0, 0x2\n\ + ldrh r1, [r0]\n\ + cmp r1, r2\n\ + beq _0805251C\n\ + cmp r1, r3\n\ + bne _08052510\n\ +_0805251C:\n\ + ldr r0, =0x0000ffff\n\ + cmp r1, r0\n\ + bne _080524EE\n\ + ldr r2, =gHitMarker\n\ + ldr r0, [r2]\n\ + ldr r1, =0xfffffbff\n\ + ands r0, r1\n\ + str r0, [r2]\n\ + ldr r3, =gBattleScriptsForMoveEffects\n\ + ldr r2, =gBattleMoves\n\ + ldrh r1, [r4]\n\ + lsls r0, r1, 1\n\ + adds r0, r1\n\ + lsls r0, 2\n\ + adds r0, r2\n\ + ldrb r0, [r0]\n\ + lsls r0, 2\n\ + adds r0, r3\n\ + ldr r0, [r0]\n\ + mov r1, r8\n\ + str r0, [r1]\n\ + ldrh r0, [r4]\n\ + movs r1, 0\n\ + bl GetMoveTarget\n\ + ldr r1, =gBankTarget\n\ + strb r0, [r1]\n\ + pop {r3}\n\ + mov r8, r3\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided"); +} + +#endif // NONMATCHING + +static void atk9F_dmgtolevel(void) +{ + gBattleMoveDamage = gBattleMons[gBankAttacker].level; + gBattlescriptCurrInstr++; +} + +static void atkA0_psywavedamageeffect(void) +{ + s32 randDamage; + + while ((randDamage = (Random() & 0xF)) > 10); + + randDamage *= 10; + gBattleMoveDamage = gBattleMons[gBankAttacker].level * (randDamage + 50) / 100; + gBattlescriptCurrInstr++; +} + +static void atkA1_counterdamagecalculator(void) +{ + u8 sideAttacker = GetBankSide(gBankAttacker); + u8 sideTarget = GetBankSide(gProtectStructs[gBankAttacker].physicalBank); + + if (gProtectStructs[gBankAttacker].physicalDmg + && sideAttacker != sideTarget + && gBattleMons[gProtectStructs[gBankAttacker].physicalBank].hp) + { + gBattleMoveDamage = gProtectStructs[gBankAttacker].physicalDmg * 2; + + if (gSideTimers[sideTarget].followmeTimer && gBattleMons[gSideTimers[sideTarget].followmeTarget].hp) + gBankTarget = gSideTimers[sideTarget].followmeTarget; + else + gBankTarget = gProtectStructs[gBankAttacker].physicalBank; + + gBattlescriptCurrInstr += 5; + } + else + { + gSpecialStatuses[gBankAttacker].flag20 = 1; + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } +} + +static void atkA2_mirrorcoatdamagecalculator(void) // a copy of atkA1 with the physical -> special field changes +{ + u8 sideAttacker = GetBankSide(gBankAttacker); + u8 sideTarget = GetBankSide(gProtectStructs[gBankAttacker].specialBank); + + if (gProtectStructs[gBankAttacker].specialDmg && sideAttacker != sideTarget && gBattleMons[gProtectStructs[gBankAttacker].specialBank].hp) + { + gBattleMoveDamage = gProtectStructs[gBankAttacker].specialDmg * 2; + + if (gSideTimers[sideTarget].followmeTimer && gBattleMons[gSideTimers[sideTarget].followmeTarget].hp) + gBankTarget = gSideTimers[sideTarget].followmeTarget; + else + gBankTarget = gProtectStructs[gBankAttacker].specialBank; + + gBattlescriptCurrInstr += 5; + } + else + { + gSpecialStatuses[gBankAttacker].flag20 = 1; + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } +} + +static void atkA3_disablelastusedattack(void) +{ + s32 i; + + for (i = 0; i < 4; i++) + { + if (gBattleMons[gBankTarget].moves[i] == gLastUsedMovesByBanks[gBankTarget]) + break; + } + if (gDisableStructs[gBankTarget].disabledMove == 0 + && i != 4 && gBattleMons[gBankTarget].pp[i] != 0) + { + PREPARE_MOVE_BUFFER(gBattleTextBuff1, gBattleMons[gBankTarget].moves[i]) + + gDisableStructs[gBankTarget].disabledMove = gBattleMons[gBankTarget].moves[i]; + gDisableStructs[gBankTarget].disableTimer1 = (Random() & 3) + 2; + gDisableStructs[gBankTarget].disableTimer2 = gDisableStructs[gBankTarget].disableTimer1; // used to save the random amount of turns? + gBattlescriptCurrInstr += 5; + } + else + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } +} + +static void atkA4_setencore(void) +{ + s32 i; + + for (i = 0; i < 4; i++) + { + if (gBattleMons[gBankTarget].moves[i] == gLastUsedMovesByBanks[gBankTarget]) + break; + } + + if (gLastUsedMovesByBanks[gBankTarget] == MOVE_STRUGGLE + || gLastUsedMovesByBanks[gBankTarget] == MOVE_ENCORE + || gLastUsedMovesByBanks[gBankTarget] == MOVE_MIRROR_MOVE) + { + i = 4; + } + + if (gDisableStructs[gBankTarget].encoredMove == 0 + && i != 4 && gBattleMons[gBankTarget].pp[i] != 0) + { + gDisableStructs[gBankTarget].encoredMove = gBattleMons[gBankTarget].moves[i]; + gDisableStructs[gBankTarget].encoredMovePos = i; + gDisableStructs[gBankTarget].encoreTimer1 = (Random() & 3) + 3; + gDisableStructs[gBankTarget].encoreTimer2 = gDisableStructs[gBankTarget].encoreTimer1; + gBattlescriptCurrInstr += 5; + } + else + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } +} + +static void atkA5_painsplitdmgcalc(void) +{ + if (!(gBattleMons[gBankTarget].status2 & STATUS2_SUBSTITUTE)) + { + s32 hpDiff = (gBattleMons[gBankAttacker].hp + gBattleMons[gBankTarget].hp) / 2; + s32 painSplitHp = gBattleMoveDamage = gBattleMons[gBankTarget].hp - hpDiff; + u8* storeLoc = (void*)(&gBattleScripting.painSplitHp); + + storeLoc[0] = (painSplitHp); + storeLoc[1] = (painSplitHp & 0x0000FF00) >> 8; + storeLoc[2] = (painSplitHp & 0x00FF0000) >> 16; + storeLoc[3] = (painSplitHp & 0xFF000000) >> 24; + + gBattleMoveDamage = gBattleMons[gBankAttacker].hp - hpDiff; + gSpecialStatuses[gBankTarget].moveturnLostHP = 0xFFFF; + + gBattlescriptCurrInstr += 5; + } + else + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } +} + +#ifdef NONMATCHING +static void atkA6_settypetorandomresistance(void) // conversion 2 +{ + if (gUnknown_02024250[gBankAttacker] == 0 + || gUnknown_02024250[gBankAttacker] == 0xFFFF) + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } + else if (IsTwoTurnsMove(gUnknown_02024250[gBankAttacker]) + && gBattleMons[gUnknown_02024270[gBankAttacker]].status2 & STATUS2_MULTIPLETURNS) + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } + else + { + s32 type = 0, rands = 0; + do + { + while (((type = (Random() & 0x7F)) > 0x70)); + + type *= 3; + + if (gTypeEffectiveness[type] == gUnknown_02024258[gBankAttacker] + && gTypeEffectiveness[type + 2] <= 5 + && gBattleMons[gBankAttacker].type1 != gTypeEffectiveness[type + 1] + && gBattleMons[gBankAttacker].type2 != gTypeEffectiveness[type + 1]) + { + gBattleMons[gBankAttacker].type1 = type; + gBattleMons[gBankAttacker].type2 = type; + + PREPARE_TYPE_BUFFER(gBattleTextBuff1, type) + + gBattlescriptCurrInstr += 5; + return; + } + + rands++; + } while (rands <= 999); + + type = 0, rands = 0; + do + { + s8 var = (s8)(gTypeEffectiveness[type]); + if (var > -1 || var < -2) + { + if (gTypeEffectiveness[type] == gUnknown_02024258[gBankAttacker] + && gTypeEffectiveness[type + 2] <= 5 + && gBattleMons[gBankAttacker].type1 != gTypeEffectiveness[type + 1] + && gBattleMons[gBankAttacker].type2 != gTypeEffectiveness[type + 1]) + { + gBattleMons[gBankAttacker].type1 = gTypeEffectiveness[rands + 1]; + gBattleMons[gBankAttacker].type2 = gTypeEffectiveness[rands + 1]; + + PREPARE_TYPE_BUFFER(gBattleTextBuff1, gTypeEffectiveness[rands + 1]) + + gBattlescriptCurrInstr += 5; + return; + } + } + type += 3, rands += 3; + } while (rands < 336); + + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } +} + +#else +__attribute__((naked)) +static void atkA6_settypetorandomresistance(void) // conversion 2 +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + ldr r1, =gUnknown_02024250\n\ + ldr r4, =gBankAttacker\n\ + ldrb r0, [r4]\n\ + lsls r0, 1\n\ + adds r2, r0, r1\n\ + ldrh r1, [r2]\n\ + cmp r1, 0\n\ + beq _08052B7E\n\ + ldr r0, =0x0000ffff\n\ + cmp r1, r0\n\ + beq _08052B7E\n\ + ldrh r0, [r2]\n\ + bl IsTwoTurnsMove\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + beq _08052C1C\n\ + ldr r1, =gBattleMons\n\ + ldr r2, =gUnknown_02024270\n\ + ldrb r0, [r4]\n\ + adds r0, r2\n\ + ldrb r2, [r0]\n\ + movs r0, 0x58\n\ + muls r0, r2\n\ + adds r1, 0x50\n\ + adds r0, r1\n\ + ldr r0, [r0]\n\ + movs r1, 0x80\n\ + lsls r1, 5\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _08052C1C\n\ +_08052B7E:\n\ + ldr r3, =gBattlescriptCurrInstr\n\ + ldr r2, [r3]\n\ + ldrb r1, [r2, 0x1]\n\ + ldrb r0, [r2, 0x2]\n\ + lsls r0, 8\n\ + orrs r1, r0\n\ + ldrb r0, [r2, 0x3]\n\ + lsls r0, 16\n\ + orrs r1, r0\n\ + ldrb r0, [r2, 0x4]\n\ + lsls r0, 24\n\ + orrs r1, r0\n\ + str r1, [r3]\n\ + b _08052D08\n\ + .pool\n\ +_08052BB4:\n\ + mov r0, r12\n\ + strb r5, [r0]\n\ + mov r1, r10\n\ + ldrb r0, [r1]\n\ + muls r0, r2\n\ + adds r0, r7\n\ + adds r0, 0x22\n\ + strb r5, [r0]\n\ + ldr r1, =gBattleTextBuff1\n\ + movs r0, 0xFD\n\ + strb r0, [r1]\n\ + movs r0, 0x3\n\ + strb r0, [r1, 0x1]\n\ + strb r5, [r1, 0x2]\n\ + movs r0, 0xFF\n\ + strb r0, [r1, 0x3]\n\ + ldr r1, =gBattlescriptCurrInstr\n\ + b _08052C0A\n\ + .pool\n\ +_08052BE0:\n\ + mov r0, r8\n\ + adds r0, 0x1\n\ + adds r0, r3\n\ + ldrb r2, [r0]\n\ + strb r2, [r4]\n\ + mov r4, r10\n\ + ldrb r0, [r4]\n\ + muls r0, r6\n\ + ldr r7, =gBattleMons\n\ + adds r0, r7\n\ + adds r0, 0x22\n\ + strb r2, [r0]\n\ + ldr r1, =gBattleTextBuff1\n\ + movs r0, 0xFD\n\ + strb r0, [r1]\n\ + movs r0, 0x3\n\ + strb r0, [r1, 0x1]\n\ + strb r2, [r1, 0x2]\n\ + movs r0, 0xFF\n\ + strb r0, [r1, 0x3]\n\ + mov r1, r12\n\ +_08052C0A:\n\ + ldr r0, [r1]\n\ + adds r0, 0x5\n\ + str r0, [r1]\n\ + b _08052D08\n\ + .pool\n\ +_08052C1C:\n\ + movs r4, 0\n\ + mov r8, r4\n\ + movs r7, 0x7F\n\ + mov r9, r7\n\ +_08052C24:\n\ + bl Random\n\ + mov r4, r9\n\ + ands r4, r0\n\ + cmp r4, 0x70\n\ + bhi _08052C24\n\ + lsls r0, r4, 1\n\ + adds r4, r0, r4\n\ + ldr r6, =gTypeEffectiveness\n\ + adds r3, r4, r6\n\ + ldr r1, =gUnknown_02024258\n\ + ldr r2, =gBankAttacker\n\ + ldrb r5, [r2]\n\ + lsls r0, r5, 1\n\ + adds r0, r1\n\ + ldrb r1, [r3]\n\ + mov r10, r2\n\ + ldrh r0, [r0]\n\ + cmp r1, r0\n\ + bne _08052C80\n\ + adds r0, r4, 0x2\n\ + adds r0, r6\n\ + ldrb r0, [r0]\n\ + cmp r0, 0x5\n\ + bhi _08052C80\n\ + ldr r7, =gBattleMons\n\ + movs r2, 0x58\n\ + adds r0, r5, 0\n\ + muls r0, r2\n\ + adds r3, r0, r7\n\ + movs r0, 0x21\n\ + adds r0, r3\n\ + mov r12, r0\n\ + adds r0, r4, 0x1\n\ + adds r0, r6\n\ + ldrb r5, [r0]\n\ + mov r1, r12\n\ + ldrb r0, [r1]\n\ + adds r1, r5, 0\n\ + cmp r0, r1\n\ + beq _08052C80\n\ + adds r0, r3, 0\n\ + adds r0, 0x22\n\ + ldrb r0, [r0]\n\ + cmp r0, r1\n\ + bne _08052BB4\n\ +_08052C80:\n\ + movs r7, 0x1\n\ + add r8, r7\n\ + ldr r0, =0x000003e7\n\ + cmp r8, r0\n\ + ble _08052C24\n\ + movs r0, 0\n\ + mov r8, r0\n\ + ldr r1, =gBattlescriptCurrInstr\n\ + mov r12, r1\n\ + ldr r3, =gTypeEffectiveness\n\ + adds r0, r4, 0x1\n\ + adds r0, r3\n\ + mov r9, r0\n\ + adds r5, r3, 0\n\ +_08052C9C:\n\ + ldrb r1, [r5]\n\ + cmp r1, 0xFF\n\ + bgt _08052CA6\n\ + cmp r1, 0xFE\n\ + bge _08052CE0\n\ +_08052CA6:\n\ + mov r4, r10\n\ + ldrb r2, [r4]\n\ + lsls r0, r2, 1\n\ + ldr r7, =gUnknown_02024258\n\ + adds r0, r7\n\ + ldrh r0, [r0]\n\ + cmp r1, r0\n\ + bne _08052CE0\n\ + ldrb r0, [r5, 0x2]\n\ + cmp r0, 0x5\n\ + bhi _08052CE0\n\ + movs r6, 0x58\n\ + adds r0, r2, 0\n\ + muls r0, r6\n\ + ldr r1, =gBattleMons\n\ + adds r2, r0, r1\n\ + adds r4, r2, 0\n\ + adds r4, 0x21\n\ + ldrb r0, [r4]\n\ + mov r7, r9\n\ + ldrb r1, [r7]\n\ + cmp r0, r1\n\ + beq _08052CE0\n\ + adds r0, r2, 0\n\ + adds r0, 0x22\n\ + ldrb r0, [r0]\n\ + cmp r0, r1\n\ + beq _08052CE0\n\ + b _08052BE0\n\ +_08052CE0:\n\ + adds r5, 0x3\n\ + movs r0, 0x3\n\ + add r8, r0\n\ + ldr r0, =0x0000014f\n\ + cmp r8, r0\n\ + bls _08052C9C\n\ + mov r1, r12\n\ + ldr r2, [r1]\n\ + ldrb r1, [r2, 0x1]\n\ + ldrb r0, [r2, 0x2]\n\ + lsls r0, 8\n\ + orrs r1, r0\n\ + ldrb r0, [r2, 0x3]\n\ + lsls r0, 16\n\ + orrs r1, r0\n\ + ldrb r0, [r2, 0x4]\n\ + lsls r0, 24\n\ + orrs r1, r0\n\ + mov r4, r12\n\ + str r1, [r4]\n\ +_08052D08:\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\n\ + .syntax divided"); +} +#endif // NONMATCHING + +static void atkA7_setalwayshitflag(void) +{ + gStatuses3[gBankTarget] &= ~(STATUS3_ALWAYS_HITS); + gStatuses3[gBankTarget] |= 0x10; + gDisableStructs[gBankTarget].bankWithSureHit = gBankAttacker; + gBattlescriptCurrInstr++; +} + +static void atkA8_copymovepermanently(void) // sketch +{ + gLastUsedMove = 0xFFFF; + + if (!(gBattleMons[gBankAttacker].status2 & STATUS2_TRANSFORMED) + && gUnknownMovesUsedByBanks[gBankTarget] != MOVE_STRUGGLE + && gUnknownMovesUsedByBanks[gBankTarget] != 0 + && gUnknownMovesUsedByBanks[gBankTarget] != 0xFFFF + && gUnknownMovesUsedByBanks[gBankTarget] != MOVE_SKETCH) + { + s32 i; + + for (i = 0; i < 4; i++) + { + if (gBattleMons[gBankAttacker].moves[i] == MOVE_SKETCH) + continue; + if (gBattleMons[gBankAttacker].moves[i] == gUnknownMovesUsedByBanks[gBankTarget]) + break; + } + + if (i != 4) + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } + else // sketch worked + { + struct MovePpInfo movePpData; + + gBattleMons[gBankAttacker].moves[gCurrMovePos] = gUnknownMovesUsedByBanks[gBankTarget]; + gBattleMons[gBankAttacker].pp[gCurrMovePos] = gBattleMoves[gUnknownMovesUsedByBanks[gBankTarget]].pp; + gActiveBank = gBankAttacker; + + for (i = 0; i < 4; i++) + { + movePpData.move[i] = gBattleMons[gBankAttacker].moves[i]; + movePpData.pp[i] = gBattleMons[gBankAttacker].pp[i]; + } + movePpData.ppBonuses = gBattleMons[gBankAttacker].ppBonuses; + + EmitSetMonData(0, REQUEST_MOVES_PP_BATTLE, 0, sizeof(struct MovePpInfo), &movePpData); + MarkBufferBankForExecution(gActiveBank); + + PREPARE_MOVE_BUFFER(gBattleTextBuff1, gUnknownMovesUsedByBanks[gBankTarget]) + + gBattlescriptCurrInstr += 5; + } + } + else + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } +} + +static bool8 IsTwoTurnsMove(u16 move) +{ + if (gBattleMoves[move].effect == EFFECT_SKULL_BASH + || gBattleMoves[move].effect == EFFECT_RAZOR_WIND + || gBattleMoves[move].effect == EFFECT_SKY_ATTACK + || gBattleMoves[move].effect == EFFECT_SOLARBEAM + || gBattleMoves[move].effect == EFFECT_FLY + || gBattleMoves[move].effect == EFFECT_BIDE) + return TRUE; + else + return FALSE; +} + +static bool8 IsInvalidForSleepTalkOrAssist(u16 move) +{ + if (move == 0 || move == MOVE_SLEEP_TALK || move == MOVE_ASSIST + || move == MOVE_MIRROR_MOVE || move == MOVE_METRONOME) + return TRUE; + else + return FALSE; +} + +static u8 AttacksThisTurn(u8 bank, u16 move) // Note: returns 1 if it's a charging turn, otherwise 2 +{ + // first argument is unused + if (gBattleMoves[move].effect == EFFECT_SOLARBEAM + && (gBattleWeather & WEATHER_SUN_ANY)) + return 2; + + if (gBattleMoves[move].effect == EFFECT_SKULL_BASH + || gBattleMoves[move].effect == EFFECT_RAZOR_WIND + || gBattleMoves[move].effect == EFFECT_SKY_ATTACK + || gBattleMoves[move].effect == EFFECT_SOLARBEAM + || gBattleMoves[move].effect == EFFECT_FLY + || gBattleMoves[move].effect == EFFECT_BIDE) + { + if ((gHitMarker & HITMARKER_x8000000)) + return 1; + } + return 2; +} + +static void atkA9_sleeptalk_choose_move(void) +{ + s32 i; + u8 unusableMovesBits = 0; + + for (i = 0; i < 4; i++) + { + if (IsInvalidForSleepTalkOrAssist(gBattleMons[gBankAttacker].moves[i]) + || gBattleMons[gBankAttacker].moves[i] == MOVE_FOCUS_PUNCH + || gBattleMons[gBankAttacker].moves[i] == MOVE_UPROAR + || IsTwoTurnsMove(gBattleMons[gBankAttacker].moves[i])) + { + unusableMovesBits |= gBitTable[i]; + } + + } + + unusableMovesBits = CheckMoveLimitations(gBankAttacker, unusableMovesBits, ~(MOVE_LIMITATION_PP)); + if (unusableMovesBits == 0xF) // all 4 moves cannot be chosen + { + gBattlescriptCurrInstr += 5; + } + else // at least one move can be chosen + { + u32 movePosition; + + do + { + movePosition = Random() & 3; + } while ((gBitTable[movePosition] & unusableMovesBits)); + + gRandomMove = gBattleMons[gBankAttacker].moves[movePosition]; + gCurrMovePos = movePosition; + gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); + gBankTarget = GetMoveTarget(gRandomMove, 0); + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } +} + +static void atkAA_set_destinybond(void) +{ + gBattleMons[gBankAttacker].status2 |= STATUS2_DESTINY_BOND; + gBattlescriptCurrInstr++; +} + +static void DestinyBondFlagUpdate(void) +{ + u8 sideAttacker = GetBankSide(gBankAttacker); + u8 sideTarget = GetBankSide(gBankTarget); + if (gBattleMons[gBankTarget].status2 & STATUS2_DESTINY_BOND + && sideAttacker != sideTarget + && !(gHitMarker & HITMARKER_GRUDGE)) + { + gHitMarker |= HITMARKER_DESTINYBOND; + } +} + +static void atkAB_DestinyBondFlagUpdate(void) +{ + DestinyBondFlagUpdate(); + gBattlescriptCurrInstr++; +} + +static void atkAC_remaininghptopower(void) +{ + s32 i; + s32 hpFraction = GetScaledHPFraction(gBattleMons[gBankAttacker].hp, gBattleMons[gBankAttacker].maxHP, 48); + + for (i = 0; i < (s32) sizeof(sFlailHpScaleToPowerTable); i += 2) + { + if (hpFraction <= sFlailHpScaleToPowerTable[i]) + break; + } + + gDynamicBasePower = sFlailHpScaleToPowerTable[i + 1]; + gBattlescriptCurrInstr++; +} + +static void atkAD_spite_ppreduce(void) +{ + if (gLastUsedMovesByBanks[gBankTarget] != 0 + && gLastUsedMovesByBanks[gBankTarget] != 0xFFFF) + { + s32 i; + + for (i = 0; i < 4; i++) + { + if (gLastUsedMovesByBanks[gBankTarget] == gBattleMons[gBankTarget].moves[i]) + break; + } + + if (i != 4 && gBattleMons[gBankTarget].pp[i] > 1) + { + s32 ppToDeduct = (Random() & 3) + 2; + if (gBattleMons[gBankTarget].pp[i] < ppToDeduct) + ppToDeduct = gBattleMons[gBankTarget].pp[i]; + + PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastUsedMovesByBanks[gBankTarget]) + + ConvertIntToDecimalStringN(gBattleTextBuff2, ppToDeduct, 0, 1); + + PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff2, 1, ppToDeduct) + + gBattleMons[gBankTarget].pp[i] -= ppToDeduct; + gActiveBank = gBankTarget; + + if (!(gDisableStructs[gActiveBank].unk18_b & gBitTable[i]) + && !(gBattleMons[gActiveBank].status2 & STATUS2_TRANSFORMED)) + { + EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + i, 0, 1, &gBattleMons[gActiveBank].pp[i]); + MarkBufferBankForExecution(gActiveBank); + } + + gBattlescriptCurrInstr += 5; + + if (gBattleMons[gBankTarget].pp[i] == 0) + CancelMultiTurnMoves(gBankTarget); + } + else + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } + } + else + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } +} + +static void atkAE_heal_party_status(void) +{ + u32 zero = 0; + u8 toHeal = 0; + + if (gCurrentMove == MOVE_HEAL_BELL) + { + struct Pokemon* party; + s32 i; + + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + + if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + party = gPlayerParty; + else + party = gEnemyParty; + + if (gBattleMons[gBankAttacker].ability != ABILITY_SOUNDPROOF) + { + gBattleMons[gBankAttacker].status1 = 0; + gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE); + } + else + { + RecordAbilityBattle(gBankAttacker, gBattleMons[gBankAttacker].ability); + gBattleCommunication[MULTISTRING_CHOOSER] |= 1; + } + + gActiveBank = gBattleScripting.bank = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ BIT_MON); + + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE + && !(gAbsentBankFlags & gBitTable[gActiveBank])) + { + if (gBattleMons[gActiveBank].ability != ABILITY_SOUNDPROOF) + { + gBattleMons[gActiveBank].status1 = 0; + gBattleMons[gActiveBank].status2 &= ~(STATUS2_NIGHTMARE); + } + else + { + RecordAbilityBattle(gActiveBank, gBattleMons[gActiveBank].ability); + gBattleCommunication[MULTISTRING_CHOOSER] |= 2; + } + } + + for (i = 0; i < 6; i++) + { + u16 species = GetMonData(&party[i], MON_DATA_SPECIES2); + u8 abilityBit = GetMonData(&party[i], MON_DATA_ALT_ABILITY); + + if (species != 0 && species != SPECIES_EGG) + { + u8 ability; + + if (gBattlePartyID[gBankAttacker] == i) + ability = gBattleMons[gBankAttacker].ability; + else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE + && gBattlePartyID[gActiveBank] == i + && !(gAbsentBankFlags & gBitTable[gActiveBank])) + ability = gBattleMons[gActiveBank].ability; + else + ability = GetAbilityBySpecies(species, abilityBit); + + if (ability != ABILITY_SOUNDPROOF) + toHeal |= (1 << i); + } + } + } + else // Aromatherapy + { + gBattleCommunication[MULTISTRING_CHOOSER] = 4; + toHeal = 0x3F; + + gBattleMons[gBankAttacker].status1 = 0; + gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE); + + gActiveBank = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ 2); + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE + && !(gAbsentBankFlags & gBitTable[gActiveBank])) + { + gBattleMons[gActiveBank].status1 = 0; + gBattleMons[gActiveBank].status2 &= ~(STATUS2_NIGHTMARE); + } + + } + + if (toHeal) + { + gActiveBank = gBankAttacker; + EmitSetMonData(0, REQUEST_STATUS_BATTLE, toHeal, 4, &zero); + MarkBufferBankForExecution(gActiveBank); + } + + gBattlescriptCurrInstr++; +} + +static void atkAF_cursetarget(void) +{ + if (gBattleMons[gBankTarget].status2 & STATUS2_CURSED) + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } + else + { + gBattleMons[gBankTarget].status2 |= STATUS2_CURSED; + gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 2; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + + gBattlescriptCurrInstr += 5; + } +} + +static void atkB0_set_spikes(void) +{ + u8 targetSide = GetBankSide(gBankAttacker) ^ BIT_SIDE; + + if (gSideTimers[targetSide].spikesAmount == 3) + { + gSpecialStatuses[gBankAttacker].flag20 = 1; + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } + else + { + gSideAffecting[targetSide] |= SIDE_STATUS_SPIKES; + gSideTimers[targetSide].spikesAmount++; + gBattlescriptCurrInstr += 5; + } +} + +static void atkB1_set_foresight(void) +{ + gBattleMons[gBankTarget].status2 |= STATUS2_FORESIGHT; + gBattlescriptCurrInstr++; +} + +static void atkB2_setperishsong(void) +{ + s32 i; + s32 notAffectedCount = 0; + + for (i = 0; i < gNoOfAllBanks; i++) + { + if (gStatuses3[i] & STATUS3_PERISH_SONG + || gBattleMons[i].ability == ABILITY_SOUNDPROOF) + { + notAffectedCount++; + } + else + { + gStatuses3[i] |= STATUS3_PERISH_SONG; + gDisableStructs[i].perishSong1 = 3; + gDisableStructs[i].perishSong2 = 3; + } + } + + PressurePPLoseOnUsingPerishSong(gBankAttacker); + + if (notAffectedCount == gNoOfAllBanks) + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + else + gBattlescriptCurrInstr += 5; +} + +static void atkB3_rolloutdamagecalculation(void) +{ + if (gBattleMoveFlags & MOVESTATUS_NOEFFECT) + { + CancelMultiTurnMoves(gBankAttacker); + gBattlescriptCurrInstr = BattleScript_PauseEffectivenessSoundResultMsgEndMove; + } + else + { + s32 i; + + if (!(gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS)) // first hit + { + gDisableStructs[gBankAttacker].rolloutTimer1 = 5; + gDisableStructs[gBankAttacker].rolloutTimer2 = 5; + gBattleMons[gBankAttacker].status2 |= STATUS2_MULTIPLETURNS; + gLockedMoves[gBankAttacker] = gCurrentMove; + } + if (--gDisableStructs[gBankAttacker].rolloutTimer1 == 0) // last hit + { + gBattleMons[gBankAttacker].status2 &= ~(STATUS2_MULTIPLETURNS); + } + + gDynamicBasePower = gBattleMoves[gCurrentMove].power; + + for (i = 1; i < (5 - gDisableStructs[gBankAttacker].rolloutTimer1); i++) + gDynamicBasePower *= 2; + + if (gBattleMons[gBankAttacker].status2 & STATUS2_DEFENSE_CURL) + gDynamicBasePower *= 2; + + gBattlescriptCurrInstr++; + } +} + +static void atkB4_jumpifconfusedandstatmaxed(void) +{ + if (gBattleMons[gBankTarget].status2 & STATUS2_CONFUSION + && gBattleMons[gBankTarget].statStages[gBattlescriptCurrInstr[1]] == 0xC) + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 2); + else + gBattlescriptCurrInstr += 6; +} + +static void atkB5_furycuttercalc(void) +{ + if (gBattleMoveFlags & MOVESTATUS_NOEFFECT) + { + gDisableStructs[gBankAttacker].furyCutterCounter = 0; + gBattlescriptCurrInstr = BattleScript_PauseEffectivenessSoundResultMsgEndMove; + } + else + { + s32 i; + + if (gDisableStructs[gBankAttacker].furyCutterCounter != 5) + gDisableStructs[gBankAttacker].furyCutterCounter++; + + gDynamicBasePower = gBattleMoves[gCurrentMove].power; + + for (i = 1; i < gDisableStructs[gBankAttacker].furyCutterCounter; i++) + gDynamicBasePower *= 2; + + gBattlescriptCurrInstr++; + } +} + +static void atkB6_happinesstodamagecalculation(void) +{ + if (gBattleMoves[gCurrentMove].effect == EFFECT_RETURN) + gDynamicBasePower = 10 * (gBattleMons[gBankAttacker].friendship) / 25; + else // EFFECT_FRUSTRATION + gDynamicBasePower = 10 * (255 - gBattleMons[gBankAttacker].friendship) / 25; + + gBattlescriptCurrInstr++; +} + +static void atkB7_presentdamagecalculation(void) +{ + s32 rand = Random() & 0xFF; + + if (rand < 102) + gDynamicBasePower = 40; + else if (rand < 178) + gDynamicBasePower = 80; + else if (rand < 204) + gDynamicBasePower = 120; + else + { + gBattleMoveDamage = gBattleMons[gBankTarget].maxHP / 4; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + gBattleMoveDamage *= -1; + } + if (rand < 204) + gBattlescriptCurrInstr = BattleScript_PresentDamageTarget; + else if (gBattleMons[gBankTarget].maxHP == gBattleMons[gBankTarget].hp) + gBattlescriptCurrInstr = BattleScript_AlreadyAtFullHp; + else + { + gBattleMoveFlags &= ~(MOVESTATUS_NOTAFFECTED); + gBattlescriptCurrInstr = BattleScript_PresentHealTarget; + } +} + +static void atkB8_set_safeguard(void) +{ + if (gSideAffecting[GET_BANK_SIDE(gBankAttacker)] & SIDE_STATUS_SAFEGUARD) + { + gBattleMoveFlags |= MOVESTATUS_MISSED; + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + } + else + { + gSideAffecting[GET_BANK_SIDE(gBankAttacker)] |= SIDE_STATUS_SAFEGUARD; + gSideTimers[GET_BANK_SIDE(gBankAttacker)].safeguardTimer = 5; + gSideTimers[GET_BANK_SIDE(gBankAttacker)].safeguardBank = gBankAttacker; + gBattleCommunication[MULTISTRING_CHOOSER] = 5; + } + + gBattlescriptCurrInstr++; +} + +static void atkB9_magnitudedamagecalculation(void) +{ + s32 magnitude = Random() % 100; + + if (magnitude < 5) + { + gDynamicBasePower = 10; + magnitude = 4; + } + else if (magnitude < 15) + { + gDynamicBasePower = 30; + magnitude = 5; + } + else if (magnitude < 35) + { + gDynamicBasePower = 50; + magnitude = 6; + } + else if (magnitude < 65) + { + gDynamicBasePower = 70; + magnitude = 7; + } + else if (magnitude < 85) + { + gDynamicBasePower = 90; + magnitude = 8; + } + else if (magnitude < 95) + { + gDynamicBasePower = 110; + magnitude = 9; + } + else + { + gDynamicBasePower = 150; + magnitude = 10; + } + + + PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff1, 2, magnitude) + + for (gBankTarget = 0; gBankTarget < gNoOfAllBanks; gBankTarget++) + { + if (gBankTarget == gBankAttacker) + continue; + if (!(gAbsentBankFlags & gBitTable[gBankTarget])) // a valid target was found + break; + } + + gBattlescriptCurrInstr++; +} + +static void atkBA_jumpifnopursuitswitchdmg(void) +{ + if (gMultiHitCounter == 1) + { + if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + gBankTarget = GetBankByIdentity(IDENTITY_OPPONENT_MON1); + else + gBankTarget = GetBankByIdentity(IDENTITY_PLAYER_MON1); + } + else + { + if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + gBankTarget = GetBankByIdentity(IDENTITY_OPPONENT_MON2); + else + gBankTarget = GetBankByIdentity(IDENTITY_PLAYER_MON2); + } + + if (gActionForBanks[gBankTarget] == 0 + && gBankAttacker == *(gBattleStruct->moveTarget + gBankTarget) + && !(gBattleMons[gBankTarget].status1 & (STATUS_SLEEP | STATUS_FREEZE)) + && gBattleMons[gBankAttacker].hp + && !gDisableStructs[gBankTarget].truantCounter + && gChosenMovesByBanks[gBankTarget] == MOVE_PURSUIT) + { + s32 i; + + for (i = 0; i < gNoOfAllBanks; i++) + { + if (gTurnOrder[i] == gBankTarget) + gUnknown_0202407A[i] = 11; + } + + gCurrentMove = MOVE_PURSUIT; + gCurrMovePos = gUnknown_020241E9 = *(gBattleStruct->chosenMovesIds + gBankTarget); + gBattlescriptCurrInstr += 5; + gBattleScripting.animTurn = 1; + gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); + } + else + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } +} + +static void atkBB_setsunny(void) +{ + if (gBattleWeather & WEATHER_SUN_ANY) + { + gBattleMoveFlags |= MOVESTATUS_MISSED; + gBattleCommunication[MULTISTRING_CHOOSER] = 2; + } + else + { + gBattleWeather = WEATHER_SUN_TEMPORARY; + gBattleCommunication[MULTISTRING_CHOOSER] = 4; + gWishFutureKnock.weatherDuration = 5; + } + + gBattlescriptCurrInstr++; +} + +static void atkBC_maxattackhalvehp(void) // belly drum +{ + u32 halfHp = gBattleMons[gBankAttacker].maxHP / 2; + + if (!(gBattleMons[gBankAttacker].maxHP / 2)) + halfHp = 1; + + if (gBattleMons[gBankAttacker].statStages[STAT_STAGE_ATK] < 12 + && gBattleMons[gBankAttacker].hp > halfHp) + { + gBattleMons[gBankAttacker].statStages[STAT_STAGE_ATK] = 12; + gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 2; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + + gBattlescriptCurrInstr += 5; + } + else + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } +} + +static void atkBD_copyfoestats(void) // psych up +{ + s32 i; + + for (i = 0; i < BATTLE_STATS_NO; i++) + { + gBattleMons[gBankAttacker].statStages[i] = gBattleMons[gBankTarget].statStages[i]; + } + + gBattlescriptCurrInstr += 5; // Has an unused jump ptr(possibly for a failed attempt) parameter. +} + +static void atkBE_rapidspinfree(void) +{ + if (gBattleMons[gBankAttacker].status2 & STATUS2_WRAPPED) + { + gBattleScripting.bank = gBankTarget; + gBattleMons[gBankAttacker].status2 &= ~(STATUS2_WRAPPED); + gBankTarget = *(gBattleStruct->wrappedBy + gBankAttacker); + + gBattleTextBuff1[0] = B_BUFF_PLACEHOLDER_BEGIN; + gBattleTextBuff1[1] = B_BUFF_MOVE; + gBattleTextBuff1[2] = *(gBattleStruct->wrappedMove + gBankAttacker * 2 + 0); + gBattleTextBuff1[3] = *(gBattleStruct->wrappedMove + gBankAttacker * 2 + 1); + gBattleTextBuff1[4] = B_BUFF_EOS; + + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_WrapFree; + } + else if (gStatuses3[gBankAttacker] & STATUS3_LEECHSEED) + { + gStatuses3[gBankAttacker] &= ~(STATUS3_LEECHSEED); + gStatuses3[gBankAttacker] &= ~(STATUS3_LEECHSEED_BANK); + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_LeechSeedFree; + } + else if (gSideAffecting[GetBankSide(gBankAttacker)] & SIDE_STATUS_SPIKES) + { + gSideAffecting[GetBankSide(gBankAttacker)] &= ~(SIDE_STATUS_SPIKES); + gSideTimers[GetBankSide(gBankAttacker)].spikesAmount = 0; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_SpikesFree; + } + else + { + gBattlescriptCurrInstr++; + } +} + +static void atkBF_set_defense_curl(void) +{ + gBattleMons[gBankAttacker].status2 |= STATUS2_DEFENSE_CURL; + gBattlescriptCurrInstr++; +} + +static void atkC0_recoverbasedonsunlight(void) +{ + gBankTarget = gBankAttacker; + + if (gBattleMons[gBankAttacker].hp != gBattleMons[gBankAttacker].maxHP) + { + if (gBattleWeather == 0 || !WEATHER_HAS_EFFECT) + gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 2; + else if (gBattleWeather & WEATHER_SUN_ANY) + gBattleMoveDamage = 20 * gBattleMons[gBankAttacker].maxHP / 30; + else // not sunny weather + gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 4; + + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + gBattleMoveDamage *= -1; + + gBattlescriptCurrInstr += 5; + } + else + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } +} + +#ifdef NONMATCHING +static void atkC1_hidden_power(void) +{ + s32 powerBits; + s32 typeBits; + + powerBits = ((gBattleMons[gBankAttacker].hpIV & 2) >> 1) + | ((gBattleMons[gBankAttacker].attackIV & 2) << 0) + | ((gBattleMons[gBankAttacker].defenseIV & 2) << 1) + | ((gBattleMons[gBankAttacker].speedIV & 2) << 2) + | ((gBattleMons[gBankAttacker].spAttackIV & 2) << 3) + | ((gBattleMons[gBankAttacker].spDefenseIV & 2) << 4); + + typeBits = ((gBattleMons[gBankAttacker].hpIV & 1) << 0) + | ((gBattleMons[gBankAttacker].attackIV & 1) << 1) + | ((gBattleMons[gBankAttacker].defenseIV & 1) << 2) + | ((gBattleMons[gBankAttacker].speedIV & 1) << 3) + | ((gBattleMons[gBankAttacker].spAttackIV & 1) << 4) + | ((gBattleMons[gBankAttacker].spDefenseIV & 1) << 5); + + gDynamicBasePower = (40 * powerBits) / 63 + 30; + + gBattleStruct->dynamicMoveType = (15 * typeBits) / 63 + 1; + if (gBattleStruct->dynamicMoveType > 8) + gBattleStruct->dynamicMoveType++; + gBattleStruct->dynamicMoveType |= 0xC0; + + gBattlescriptCurrInstr++; +} + +#else +__attribute__((naked)) +static void atkC1_hidden_power(void) +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + ldr r2, =gBattleMons\n\ + ldr r0, =gBankAttacker\n\ + ldrb r1, [r0]\n\ + movs r0, 0x58\n\ + adds r4, r1, 0\n\ + muls r4, r0\n\ + adds r4, r2\n\ + ldrb r0, [r4, 0x14]\n\ + mov r10, r0\n\ + mov r7, r10\n\ + lsls r7, 27\n\ + adds r0, r7, 0\n\ + lsrs r0, 27\n\ + mov r10, r0\n\ + movs r1, 0x2\n\ + mov r2, r10\n\ + ands r2, r1\n\ + asrs r2, 1\n\ + ldrh r7, [r4, 0x14]\n\ + mov r9, r7\n\ + mov r0, r9\n\ + lsls r0, 22\n\ + mov r9, r0\n\ + lsrs r3, r0, 27\n\ + adds r0, r1, 0\n\ + ands r0, r3\n\ + orrs r2, r0\n\ + ldrb r7, [r4, 0x15]\n\ + mov r8, r7\n\ + mov r0, r8\n\ + lsls r0, 25\n\ + mov r8, r0\n\ + lsrs r3, r0, 27\n\ + adds r0, r1, 0\n\ + ands r0, r3\n\ + lsls r0, 1\n\ + orrs r2, r0\n\ + ldr r6, [r4, 0x14]\n\ + lsls r6, 12\n\ + lsrs r3, r6, 27\n\ + adds r0, r1, 0\n\ + ands r0, r3\n\ + lsls r0, 2\n\ + orrs r2, r0\n\ + ldrh r5, [r4, 0x16]\n\ + lsls r5, 23\n\ + lsrs r3, r5, 27\n\ + adds r0, r1, 0\n\ + ands r0, r3\n\ + lsls r0, 3\n\ + orrs r2, r0\n\ + ldrb r3, [r4, 0x17]\n\ + lsls r3, 26\n\ + lsrs r0, r3, 27\n\ + ands r1, r0\n\ + lsls r1, 4\n\ + orrs r2, r1\n\ + movs r1, 0x1\n\ + adds r4, r1, 0\n\ + mov r7, r10\n\ + ands r4, r7\n\ + mov r0, r9\n\ + lsrs r0, 27\n\ + mov r9, r0\n\ + adds r0, r1, 0\n\ + mov r7, r9\n\ + ands r0, r7\n\ + lsls r0, 1\n\ + orrs r4, r0\n\ + mov r0, r8\n\ + lsrs r0, 27\n\ + mov r8, r0\n\ + adds r0, r1, 0\n\ + mov r7, r8\n\ + ands r0, r7\n\ + lsls r0, 2\n\ + orrs r4, r0\n\ + lsrs r6, 27\n\ + adds r0, r1, 0\n\ + ands r0, r6\n\ + lsls r0, 3\n\ + orrs r4, r0\n\ + lsrs r5, 27\n\ + adds r0, r1, 0\n\ + ands r0, r5\n\ + lsls r0, 4\n\ + orrs r4, r0\n\ + lsrs r3, 27\n\ + ands r1, r3\n\ + lsls r1, 5\n\ + orrs r4, r1\n\ + ldr r5, =gDynamicBasePower\n\ + lsls r0, r2, 2\n\ + adds r0, r2\n\ + lsls r0, 3\n\ + movs r1, 0x3F\n\ + bl __divsi3\n\ + adds r0, 0x1E\n\ + strh r0, [r5]\n\ + ldr r6, =gBattleStruct\n\ + ldr r5, [r6]\n\ + lsls r0, r4, 4\n\ + subs r0, r4\n\ + movs r1, 0x3F\n\ + bl __divsi3\n\ + adds r0, 0x1\n\ + strb r0, [r5, 0x13]\n\ + ldr r1, [r6]\n\ + ldrb r0, [r1, 0x13]\n\ + cmp r0, 0x8\n\ + bls _080544F0\n\ + adds r0, 0x1\n\ + strb r0, [r1, 0x13]\n\ +_080544F0:\n\ + ldr r2, [r6]\n\ + ldrb r0, [r2, 0x13]\n\ + movs r1, 0xC0\n\ + orrs r0, r1\n\ + strb r0, [r2, 0x13]\n\ + ldr r1, =gBattlescriptCurrInstr\n\ + ldr r0, [r1]\n\ + adds r0, 0x1\n\ + str r0, [r1]\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\n\ + .syntax divided"); +} +#endif // NONMATCHING + +static void atkC2_selectnexttarget(void) +{ + for (gBankTarget = 0; gBankTarget < gNoOfAllBanks; gBankTarget++) + { + if (gBankTarget == gBankAttacker) + continue; + if (!(gAbsentBankFlags & gBitTable[gBankTarget])) + break; + } + gBattlescriptCurrInstr++; +} + +static void atkC3_setfutureattack(void) +{ + if (gWishFutureKnock.futureSightCounter[gBankTarget] != 0) + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } + else + { + gSideAffecting[GET_BANK_SIDE(gBankTarget)] |= SIDE_STATUS_FUTUREATTACK; + gWishFutureKnock.futureSightMove[gBankTarget] = gCurrentMove; + gWishFutureKnock.futureSightAttacker[gBankTarget] = gBankAttacker; + gWishFutureKnock.futureSightCounter[gBankTarget] = 3; + gWishFutureKnock.futureSightDmg[gBankTarget] = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankTarget], gCurrentMove, + gSideAffecting[GET_BANK_SIDE(gBankTarget)], 0, + 0, gBankAttacker, gBankTarget); + + if (gProtectStructs[gBankAttacker].helpingHand) + gWishFutureKnock.futureSightDmg[gBankTarget] = gWishFutureKnock.futureSightDmg[gBankTarget] * 15 / 10; + + if (gCurrentMove == MOVE_DOOM_DESIRE) + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + else + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + + gBattlescriptCurrInstr += 5; + } +} + +static void atkC4_beat_up(void) +{ + struct Pokemon* party; + + if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + party = gPlayerParty; + else + party = gEnemyParty; + + if (gBattleMons[gBankTarget].hp == 0) + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } + else + { + u8 beforeLoop = gBattleCommunication[0]; + for (;gBattleCommunication[0] < 6; gBattleCommunication[0]++) + { + if (GetMonData(&party[gBattleCommunication[0]], MON_DATA_HP) + && GetMonData(&party[gBattleCommunication[0]], MON_DATA_SPECIES2) + && GetMonData(&party[gBattleCommunication[0]], MON_DATA_SPECIES2) != SPECIES_EGG + && !GetMonData(&party[gBattleCommunication[0]], MON_DATA_STATUS)) + break; + } + if (gBattleCommunication[0] < 6) + { + PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gBankAttacker, gBattleCommunication[0]) + + gBattlescriptCurrInstr += 9; + + gBattleMoveDamage = gBaseStats[GetMonData(&party[gBattleCommunication[0]], MON_DATA_SPECIES)].baseAttack; + gBattleMoveDamage *= gBattleMoves[gCurrentMove].power; + gBattleMoveDamage *= (GetMonData(&party[gBattleCommunication[0]], MON_DATA_LEVEL) * 2 / 5 + 2); + gBattleMoveDamage /= gBaseStats[gBattleMons[gBankTarget].species].baseDefense; + gBattleMoveDamage = (gBattleMoveDamage / 50) + 2; + if (gProtectStructs[gBankAttacker].helpingHand) + gBattleMoveDamage = gBattleMoveDamage * 15 / 10; + + gBattleCommunication[0]++; + } + else if (beforeLoop != 0) + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + else + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 5); + } +} + +static void atkC5_setsemiinvulnerablebit(void) +{ + switch (gCurrentMove) + { + case MOVE_FLY: + case MOVE_BOUNCE: + gStatuses3[gBankAttacker] |= STATUS3_ON_AIR; + break; + case MOVE_DIG: + gStatuses3[gBankAttacker] |= STATUS3_UNDERGROUND; + break; + case MOVE_DIVE: + gStatuses3[gBankAttacker] |= STATUS3_UNDERWATER; + break; + } + + gBattlescriptCurrInstr++; +} + +static void atkC6_clearsemiinvulnerablebit(void) +{ + switch (gCurrentMove) + { + case MOVE_FLY: + case MOVE_BOUNCE: + gStatuses3[gBankAttacker] &= ~STATUS3_ON_AIR; + break; + case MOVE_DIG: + gStatuses3[gBankAttacker] &= ~STATUS3_UNDERGROUND; + break; + case MOVE_DIVE: + gStatuses3[gBankAttacker] &= ~STATUS3_UNDERWATER; + break; + } + + gBattlescriptCurrInstr++; +} + +static void atkC7_setminimize(void) +{ + if (gHitMarker & HITMARKER_OBEYS) + gStatuses3[gBankAttacker] |= STATUS3_MINIMIZED; + + gBattlescriptCurrInstr++; +} + +static void atkC8_sethail(void) +{ + if (gBattleWeather & WEATHER_HAIL_ANY) + { + gBattleMoveFlags |= MOVESTATUS_MISSED; + gBattleCommunication[MULTISTRING_CHOOSER] = 2; + } + else + { + gBattleWeather = WEATHER_HAIL; + gBattleCommunication[MULTISTRING_CHOOSER] = 5; + gWishFutureKnock.weatherDuration = 5; + } + + gBattlescriptCurrInstr++; +} + +static void atkC9_jumpifattackandspecialattackcannotfall(void) // memento +{ + if (gBattleMons[gBankTarget].statStages[STAT_STAGE_ATK] == 0 + && gBattleMons[gBankTarget].statStages[STAT_STAGE_SPATK] == 0 + && gBattleCommunication[6] != 1) + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } + else + { + gActiveBank = gBankAttacker; + gBattleMoveDamage = gBattleMons[gActiveBank].hp; + EmitHealthBarUpdate(0, 0x7FFF); + MarkBufferBankForExecution(gActiveBank); + gBattlescriptCurrInstr += 5; + } +} + +static void atkCA_setforcedtarget(void) // follow me +{ + gSideTimers[GetBankSide(gBankAttacker)].followmeTimer = 1; + gSideTimers[GetBankSide(gBankAttacker)].followmeTarget = gBankAttacker; + gBattlescriptCurrInstr++; +} + +static void atkCB_setcharge(void) +{ + gStatuses3[gBankAttacker] |= STATUS3_CHARGED_UP; + gDisableStructs[gBankAttacker].chargeTimer1 = 2; + gDisableStructs[gBankAttacker].chargeTimer2 = 2; + gBattlescriptCurrInstr++; +} + +static void atkCC_callterrainattack(void) // nature power +{ + gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); + gCurrentMove = sNaturePowerMoves[gBattleTerrain]; + gBankTarget = GetMoveTarget(gCurrentMove, 0); + BattleScriptPush(gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]); + gBattlescriptCurrInstr++; +} + +static void atkCD_cureifburnedparalysedorpoisoned(void) // refresh +{ + if (gBattleMons[gBankAttacker].status1 & (STATUS_POISON | STATUS_BURN | STATUS_PARALYSIS | STATUS_TOXIC_POISON)) + { + gBattleMons[gBankAttacker].status1 = 0; + gBattlescriptCurrInstr += 5; + gActiveBank = gBankAttacker; + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); + MarkBufferBankForExecution(gActiveBank); + } + else + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } +} + +static void atkCE_settorment(void) +{ + if (gBattleMons[gBankTarget].status2 & STATUS2_TORMENT) + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } + else + { + gBattleMons[gBankTarget].status2 |= STATUS2_TORMENT; + gBattlescriptCurrInstr += 5; + } +} + +static void atkCF_jumpifnodamage(void) +{ + if (gProtectStructs[gBankAttacker].physicalDmg || gProtectStructs[gBankAttacker].specialDmg) + gBattlescriptCurrInstr += 5; + else + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); +} + +static void atkD0_settaunt(void) +{ + if (gDisableStructs[gBankTarget].tauntTimer1 == 0) + { + gDisableStructs[gBankTarget].tauntTimer1 = 2; + gDisableStructs[gBankTarget].tauntTimer2 = 2; + gBattlescriptCurrInstr += 5; + } + else + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } +} + +static void atkD1_set_helpinghand(void) +{ + gBankTarget = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ BIT_MON); + + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE + && !(gAbsentBankFlags & gBitTable[gBankTarget]) + && !gProtectStructs[gBankAttacker].helpingHand + && !gProtectStructs[gBankTarget].helpingHand) + { + gProtectStructs[gBankTarget].helpingHand = 1; + gBattlescriptCurrInstr += 5; + } + else + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } +} + +static void atkD2_swap_items(void) // trick +{ + // opponent can't swap items with player in regular battles + if (gBattleTypeFlags & BATTLE_TYPE_x4000000 + || (GetBankSide(gBankAttacker) == SIDE_OPPONENT + && !(gBattleTypeFlags & (BATTLE_TYPE_LINK + | BATTLE_TYPE_EREADER_TRAINER + | BATTLE_TYPE_FRONTIER + | BATTLE_TYPE_SECRET_BASE + | BATTLE_TYPE_x2000000)))) + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } + else + { + u8 sideAttacker = GetBankSide(gBankAttacker); + u8 sideTarget = GetBankSide(gBankTarget); + + // you can't swap items if they were knocked off in regular battles + if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK + | BATTLE_TYPE_EREADER_TRAINER + | BATTLE_TYPE_FRONTIER + | BATTLE_TYPE_SECRET_BASE + | BATTLE_TYPE_x2000000)) + && (gWishFutureKnock.knockedOffPokes[sideAttacker] & gBitTable[gBattlePartyID[gBankAttacker]] + || gWishFutureKnock.knockedOffPokes[sideTarget] & gBitTable[gBattlePartyID[gBankTarget]])) + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } + // can't swap if two pokemon don't have an item + // or if either of them is an enigma berry or a mail + else if ((gBattleMons[gBankAttacker].item == 0 && gBattleMons[gBankTarget].item == 0) + || gBattleMons[gBankAttacker].item == ITEM_ENIGMA_BERRY + || gBattleMons[gBankTarget].item == ITEM_ENIGMA_BERRY + || IS_ITEM_MAIL(gBattleMons[gBankAttacker].item) + || IS_ITEM_MAIL(gBattleMons[gBankTarget].item)) + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } + // check if ability prevents swapping + else if (gBattleMons[gBankTarget].ability == ABILITY_STICKY_HOLD) + { + gBattlescriptCurrInstr = BattleScript_StickyHoldActivates; + gLastUsedAbility = gBattleMons[gBankTarget].ability; + RecordAbilityBattle(gBankTarget, gLastUsedAbility); + } + // took a while, but all checks passed and items can be safely swapped + else + { + u16 oldItemAtk, *newItemAtk; + + newItemAtk = &gBattleStruct->changedItems[gBankAttacker]; + oldItemAtk = gBattleMons[gBankAttacker].item; + *newItemAtk = gBattleMons[gBankTarget].item; + + gBattleMons[gBankAttacker].item = 0; + gBattleMons[gBankTarget].item = oldItemAtk; + + gActiveBank = gBankAttacker; + EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, newItemAtk); + MarkBufferBankForExecution(gBankAttacker); + + gActiveBank = gBankTarget; + EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gBankTarget].item); + MarkBufferBankForExecution(gBankTarget); + + *(u8*)((u8*)(&gBattleStruct->choicedMove[gBankTarget]) + 0) = 0; + *(u8*)((u8*)(&gBattleStruct->choicedMove[gBankTarget]) + 1) = 0; + + *(u8*)((u8*)(&gBattleStruct->choicedMove[gBankAttacker]) + 0) = 0; + *(u8*)((u8*)(&gBattleStruct->choicedMove[gBankAttacker]) + 1) = 0; + + gBattlescriptCurrInstr += 5; + + PREPARE_ITEM_BUFFER(gBattleTextBuff1, *newItemAtk) + PREPARE_ITEM_BUFFER(gBattleTextBuff2, oldItemAtk) + + if (oldItemAtk != 0 && *newItemAtk != 0) + gBattleCommunication[MULTISTRING_CHOOSER] = 2; // attacker's item -> <- target's item + else if (oldItemAtk == 0 && *newItemAtk != 0) + gBattleCommunication[MULTISTRING_CHOOSER] = 0; // nothing -> <- target's item + else + gBattleCommunication[MULTISTRING_CHOOSER] = 1; // attacker's item -> <- nothing + } + } +} + +static void atkD3_copy_ability(void) // role play +{ + if (gBattleMons[gBankTarget].ability != 0 + && gBattleMons[gBankTarget].ability != ABILITY_WONDER_GUARD) + { + gBattleMons[gBankAttacker].ability = gBattleMons[gBankTarget].ability; + gLastUsedAbility = gBattleMons[gBankTarget].ability; + gBattlescriptCurrInstr += 5; + } + else + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } +} + +static void atkD4_wish_effect(void) +{ + switch (gBattlescriptCurrInstr[1]) + { + case 0: // use wish + if (gWishFutureKnock.wishCounter[gBankAttacker] == 0) + { + gWishFutureKnock.wishCounter[gBankAttacker] = 2; + gWishFutureKnock.wishUserID[gBankAttacker] = gBattlePartyID[gBankAttacker]; + gBattlescriptCurrInstr += 6; + } + else + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 2); + } + break; + case 1: // heal effect + PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gBankTarget, gWishFutureKnock.wishUserID[gBankTarget]) + + gBattleMoveDamage = gBattleMons[gBankTarget].maxHP / 2; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + gBattleMoveDamage *= -1; + + if (gBattleMons[gBankTarget].hp == gBattleMons[gBankTarget].maxHP) + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 2); + else + gBattlescriptCurrInstr += 6; + + break; + } +} + +static void atkD5_setroots(void) // ingrain +{ + if (gStatuses3[gBankAttacker] & STATUS3_ROOTED) + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } + else + { + gStatuses3[gBankAttacker] |= STATUS3_ROOTED; + gBattlescriptCurrInstr += 5; + } +} + +static void atkD6_doubledamagedealtifdamaged(void) +{ + if ((gProtectStructs[gBankAttacker].physicalDmg + && gProtectStructs[gBankAttacker].physicalBank == gBankTarget) + || (gProtectStructs[gBankAttacker].specialDmg + && gProtectStructs[gBankAttacker].specialBank == gBankTarget)) + { + gBattleScripting.dmgMultiplier = 2; + } + + gBattlescriptCurrInstr++; +} + +static void atkD7_setyawn(void) +{ + if (gStatuses3[gBankTarget] & STATUS3_YAWN + || gBattleMons[gBankTarget].status1 & STATUS_ANY) + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } + else + { + gStatuses3[gBankTarget] |= 0x1000; + gBattlescriptCurrInstr += 5; + } +} + +static void atkD8_setdamagetohealthdifference(void) +{ + if (gBattleMons[gBankTarget].hp <= gBattleMons[gBankAttacker].hp) + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } + else + { + gBattleMoveDamage = gBattleMons[gBankTarget].hp - gBattleMons[gBankAttacker].hp; + gBattlescriptCurrInstr += 5; + } +} + +static void atkD9_scaledamagebyhealthratio(void) +{ + if (gDynamicBasePower == 0) + { + u8 power = gBattleMoves[gCurrentMove].power; + gDynamicBasePower = gBattleMons[gBankAttacker].hp * power / gBattleMons[gBankAttacker].maxHP; + if (gDynamicBasePower == 0) + gDynamicBasePower = 1; + } + gBattlescriptCurrInstr++; +} + +static void atkDA_abilityswap(void) // skill swap +{ + if ((gBattleMons[gBankAttacker].ability == 0 + && gBattleMons[gBankTarget].ability == 0) + || gBattleMons[gBankAttacker].ability == ABILITY_WONDER_GUARD + || gBattleMons[gBankTarget].ability == ABILITY_WONDER_GUARD + || gBattleMoveFlags & MOVESTATUS_NOEFFECT) + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } + else + { + u8 abilityAtk = gBattleMons[gBankAttacker].ability; + gBattleMons[gBankAttacker].ability = gBattleMons[gBankTarget].ability; + gBattleMons[gBankTarget].ability = abilityAtk; + + gBattlescriptCurrInstr += 5; + } +} + +static void atkDB_imprisoneffect(void) +{ + if ((gStatuses3[gBankAttacker] & STATUS3_IMPRISONED_OTHERS)) + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } + else + { + u8 bank, sideAttacker; + + sideAttacker = GetBankSide(gBankAttacker); + PressurePPLoseOnUsingImprision(gBankAttacker); + for (bank = 0; bank < gNoOfAllBanks; bank++) + { + if (sideAttacker != GetBankSide(bank)) + { + s32 attackerMoveId; + for (attackerMoveId = 0; attackerMoveId < 4; attackerMoveId++) + { + s32 i; + for (i = 0; i < 4; i++) + { + if (gBattleMons[gBankAttacker].moves[attackerMoveId] == gBattleMons[bank].moves[i] + && gBattleMons[gBankAttacker].moves[attackerMoveId] != MOVE_NONE) + break; + } + if (i != 4) + break; + } + if (attackerMoveId != 4) + { + gStatuses3[gBankAttacker] |= STATUS3_IMPRISONED_OTHERS; + gBattlescriptCurrInstr += 5; + break; + } + } + } + if (bank == gNoOfAllBanks) // In Generation 3 games, Imprison fails if the user doesn't share any moves with any of the foes + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } +} + +static void atkDC_setgrudge(void) +{ + if (gStatuses3[gBankAttacker] & STATUS3_GRUDGE) + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } + else + { + gStatuses3[gBankAttacker] |= STATUS3_GRUDGE; + gBattlescriptCurrInstr += 5; + } +} + +static void atkDD_weightdamagecalculation(void) +{ + s32 i; + for (i = 0; sWeightToDamageTable[i] != 0xFFFF; i += 2) + { + if (sWeightToDamageTable[i] > GetPokedexHeightWeight(SpeciesToNationalPokedexNum(gBattleMons[gBankTarget].species), 1)) + break; + } + + if (sWeightToDamageTable[i] != 0xFFFF) + gDynamicBasePower = sWeightToDamageTable[i + 1]; + else + gDynamicBasePower = 120; + + gBattlescriptCurrInstr++; +} + +static void atkDE_asistattackselect(void) +{ + s32 chooseableMovesNo = 0; + struct Pokemon* party; + s32 monId, moveId; + u16* movesArray = gBattleStruct->assistPossibleMoves; + + if (GET_BANK_SIDE(gBankAttacker) != SIDE_PLAYER) + party = gEnemyParty; + else + party = gPlayerParty; + + for (monId = 0; monId < 6; monId++) + { + if (monId == gBattlePartyID[gBankAttacker]) + continue; + if (GetMonData(&party[monId], MON_DATA_SPECIES2) == SPECIES_NONE) + continue; + if (GetMonData(&party[monId], MON_DATA_SPECIES2) == SPECIES_EGG) + continue; + + for (moveId = 0; moveId < 4; moveId++) + { + s32 i = 0; + u16 move = GetMonData(&party[monId], MON_DATA_MOVE1 + moveId); + + if (IsInvalidForSleepTalkOrAssist(move)) + continue; + + for (; sMovesForbiddenToCopy[i] != ASSIST_FORBIDDEN_END && move != sMovesForbiddenToCopy[i]; i++); + + if (sMovesForbiddenToCopy[i] != ASSIST_FORBIDDEN_END) + continue; + if (move == MOVE_NONE) + continue; + + movesArray[chooseableMovesNo] = move; + chooseableMovesNo++; + } + } + if (chooseableMovesNo) + { + gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); + gRandomMove = movesArray[((Random() & 0xFF) * chooseableMovesNo) >> 8]; + gBankTarget = GetMoveTarget(gRandomMove, 0); + gBattlescriptCurrInstr += 5; + } + else + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } +} + +static void atkDF_setmagiccoat(void) +{ + gBankTarget = gBankAttacker; + gSpecialStatuses[gBankAttacker].flag20 = 1; + if (gCurrentMoveTurn == gNoOfAllBanks - 1) // moves last turn + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } + else + { + gProtectStructs[gBankAttacker].bounceMove = 1; + gBattlescriptCurrInstr += 5; + } +} + +static void atkE0_setstealstatchange(void) // snatch +{ + gSpecialStatuses[gBankAttacker].flag20 = 1; + if (gCurrentMoveTurn == gNoOfAllBanks - 1) // moves last turn + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } + else + { + gProtectStructs[gBankAttacker].stealMove = 1; + gBattlescriptCurrInstr += 5; + } +} + +static void atkE1_intimidate_string_loader(void) +{ + u8 side; + + gBattleScripting.bank = gBattleStruct->intimidateBank; + side = GetBankSide(gBattleScripting.bank); + + PREPARE_ABILITY_BUFFER(gBattleTextBuff1, gBattleMons[gBattleScripting.bank].ability) + + for (;gBankTarget < gNoOfAllBanks; gBankTarget++) + { + if (GetBankSide(gBankTarget) == side) + continue; + if (!(gAbsentBankFlags & gBitTable[gBankTarget])) + break; + } + + if (gBankTarget >= gNoOfAllBanks) + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + else + gBattlescriptCurrInstr += 5; +} + +static void atkE2_switchout_abilities(void) +{ + gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + + switch (gBattleMons[gActiveBank].ability) + { + case ABILITY_NATURAL_CURE: + gBattleMons[gActiveBank].status1 = 0; + EmitSetMonData(0, REQUEST_STATUS_BATTLE, gBitTable[*(gBattleStruct->field_58 + gActiveBank)], 4, &gBattleMons[gActiveBank].status1); + MarkBufferBankForExecution(gActiveBank); + break; + } + + gBattlescriptCurrInstr += 2; +} + +static void atkE3_jumpifhasnohp(void) +{ + gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + + if (gBattleMons[gActiveBank].hp == 0) + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 2); + else + gBattlescriptCurrInstr += 6; +} + +static void atkE4_getsecretpowereffect(void) +{ + switch (gBattleTerrain) + { + case BATTLE_TERRAIN_GRASS: + gBattleCommunication[MOVE_EFFECT_BYTE] = MOVE_EFFECT_POISON; + break; + case BATTLE_TERRAIN_LONG_GRASS: + gBattleCommunication[MOVE_EFFECT_BYTE] = MOVE_EFFECT_SLEEP; + break; + case BATTLE_TERRAIN_SAND: + gBattleCommunication[MOVE_EFFECT_BYTE] = MOVE_EFFECT_ACC_MINUS_1; + break; + case BATTLE_TERRAIN_UNDERWATER: + gBattleCommunication[MOVE_EFFECT_BYTE] = MOVE_EFFECT_DEF_MINUS_1; + break; + case BATTLE_TERRAIN_WATER: + gBattleCommunication[MOVE_EFFECT_BYTE] = MOVE_EFFECT_ATK_MINUS_1; + break; + case BATTLE_TERRAIN_POND: + gBattleCommunication[MOVE_EFFECT_BYTE] = MOVE_EFFECT_SPD_MINUS_1; + break; + case BATTLE_TERRAIN_ROCK: + gBattleCommunication[MOVE_EFFECT_BYTE] = MOVE_EFFECT_CONFUSION; + break; + case BATTLE_TERRAIN_CAVE: + gBattleCommunication[MOVE_EFFECT_BYTE] = MOVE_EFFECT_FLINCH; + break; + default: + gBattleCommunication[MOVE_EFFECT_BYTE] = MOVE_EFFECT_PARALYSIS; + break; + } + gBattlescriptCurrInstr++; +} + +static void atkE5_pickup(void) +{ + if (!InBattlePike()) + { + s32 i; + u16 species, heldItem; + u8 ability; + + if (InBattlePyramid()) + { + for (i = 0; i < 6; i++) + { + species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2); + heldItem = GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM); + + if (GetMonData(&gPlayerParty[i], MON_DATA_ALT_ABILITY)) + ability = gBaseStats[species].ability2; + else + ability = gBaseStats[species].ability1; + + if (ability == ABILITY_PICKUP + && species != 0 + && species != SPECIES_EGG + && heldItem == ITEM_NONE + && (Random() % 10) == 0) + { + heldItem = GetBattlePyramidPickupItemId(); + SetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM, &heldItem); + } + } + } + else + { + for (i = 0; i < 6; i++) + { + species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2); + heldItem = GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM); + + if (GetMonData(&gPlayerParty[i], MON_DATA_ALT_ABILITY)) + ability = gBaseStats[species].ability2; + else + ability = gBaseStats[species].ability1; + + if (ability == ABILITY_PICKUP + && species != 0 + && species != SPECIES_EGG + && heldItem == ITEM_NONE + && (Random() % 10) == 0) + { + s32 j; + s32 rand = Random() % 100; + u8 lvlDivBy10 = (GetMonData(&gPlayerParty[i], MON_DATA_LEVEL) - 1) / 10; + if (lvlDivBy10 > 9) + lvlDivBy10 = 9; + + for (j = 0; j < 9; j++) + { + if (sPickupProbabilities[j] > rand) + { + SetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM, &sPickupItems[lvlDivBy10 + j]); + break; + } + else if (rand == 99 || rand == 98) + { + SetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM, &sRarePickupItems[lvlDivBy10 + (99 - rand)]); + break; + } + } + } + } + } + } + + gBattlescriptCurrInstr++; +} + +static void atkE6_castform_change_animation(void) +{ + gActiveBank = gBattleScripting.bank; + + if (gBattleMons[gActiveBank].status2 & STATUS2_SUBSTITUTE) + *(&gBattleStruct->formToChangeInto) |= 0x80; + + EmitBattleAnimation(0, B_ANIM_CASTFORM_CHANGE, gBattleStruct->formToChangeInto); + MarkBufferBankForExecution(gActiveBank); + + gBattlescriptCurrInstr++; +} + +static void atkE7_castform_data_change(void) +{ + u8 form; + + gBattlescriptCurrInstr++; + form = CastformDataTypeChange(gBattleScripting.bank); + if (form) + { + BattleScriptPushCursorAndCallback(BattleScript_CastformChange); + *(&gBattleStruct->formToChangeInto) = form - 1; + } +} + +static void atkE8_settypebasedhalvers(void) // water and mud sport +{ + bool8 worked = FALSE; + + if (gBattleMoves[gCurrentMove].effect == EFFECT_MUD_SPORT) + { + if (!(gStatuses3[gBankAttacker] & STATUS3_MUDSPORT)) + { + gStatuses3[gBankAttacker] |= STATUS3_MUDSPORT; + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + worked = TRUE; + } + } + else // water sport + { + if (!(gStatuses3[gBankAttacker] & STATUS3_WATERSPORT)) + { + gStatuses3[gBankAttacker] |= STATUS3_WATERSPORT; + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + worked = TRUE; + } + } + + if (worked) + gBattlescriptCurrInstr += 5; + else + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); +} + +static void atkE9_setweatherballtype(void) +{ + if (WEATHER_HAS_EFFECT) + { + if (gBattleWeather & WEATHER_ANY) + gBattleScripting.dmgMultiplier = 2; + if (gBattleWeather & WEATHER_RAIN_ANY) + *(&gBattleStruct->dynamicMoveType) = TYPE_WATER | 0x80; + else if (gBattleWeather & WEATHER_SANDSTORM_ANY) + *(&gBattleStruct->dynamicMoveType) = TYPE_ROCK | 0x80; + else if (gBattleWeather & WEATHER_SUN_ANY) + *(&gBattleStruct->dynamicMoveType) = TYPE_FIRE | 0x80; + else if (gBattleWeather & WEATHER_HAIL_ANY) + *(&gBattleStruct->dynamicMoveType) = TYPE_ICE | 0x80; + else + *(&gBattleStruct->dynamicMoveType) = TYPE_NORMAL | 0x80; + } + + gBattlescriptCurrInstr++; +} + +static void atkEA_recycleitem(void) +{ + u16 *usedHeldItem; + + gActiveBank = gBankAttacker; + usedHeldItem = &gBattleStruct->usedHeldItems[gActiveBank]; + if (*usedHeldItem != 0 && gBattleMons[gActiveBank].item == 0) + { + gLastUsedItem = *usedHeldItem; + *usedHeldItem = 0; + gBattleMons[gActiveBank].item = gLastUsedItem; + + EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gActiveBank].item); + MarkBufferBankForExecution(gActiveBank); + + gBattlescriptCurrInstr += 5; + } + else + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } +} + +static void atkEB_settypetoterrain(void) +{ + if (gBattleMons[gBankAttacker].type1 != sTerrainToType[gBattleTerrain] + && gBattleMons[gBankAttacker].type2 != sTerrainToType[gBattleTerrain]) + { + gBattleMons[gBankAttacker].type1 = sTerrainToType[gBattleTerrain]; + gBattleMons[gBankAttacker].type2 = sTerrainToType[gBattleTerrain]; + + PREPARE_TYPE_BUFFER(gBattleTextBuff1, sTerrainToType[gBattleTerrain]) + + gBattlescriptCurrInstr += 5; + } + else + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } +} + +static void atkEC_pursuit_sth(void) +{ + gActiveBank = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ BIT_MON); + + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE + && !(gAbsentBankFlags & gBitTable[gActiveBank]) + && gActionForBanks[gActiveBank] == 0 + && gChosenMovesByBanks[gActiveBank] == MOVE_PURSUIT) + { + gUnknown_0202407A[gActiveBank] = 11; + gCurrentMove = MOVE_PURSUIT; + gBattlescriptCurrInstr += 5; + gBattleScripting.animTurn = 1; + gBattleScripting.field_20 = gBankAttacker; + gBankAttacker = gActiveBank; + } + else + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } +} + +static void atkED_802B4B4(void) +{ + gEffectBank = gBankAttacker; + + if (gBankAttacker == gBankTarget) + gBankAttacker = gBankTarget = gBattleScripting.bank; + else + gBankTarget = gBattleScripting.bank; + + gBattleScripting.bank = gEffectBank; + gBattlescriptCurrInstr++; +} + +static void atkEE_removelightscreenreflect(void) // brick break +{ + u8 opposingSide = GetBankSide(gBankAttacker) ^ BIT_SIDE; + + if (gSideTimers[opposingSide].reflectTimer || gSideTimers[opposingSide].lightscreenTimer) + { + gSideAffecting[opposingSide] &= ~(SIDE_STATUS_REFLECT); + gSideAffecting[opposingSide] &= ~(SIDE_STATUS_LIGHTSCREEN); + gSideTimers[opposingSide].reflectTimer = 0; + gSideTimers[opposingSide].lightscreenTimer = 0; + gBattleScripting.animTurn = 1; + gBattleScripting.animTargetsHit = 1; + } + else + { + gBattleScripting.animTurn = 0; + gBattleScripting.animTargetsHit = 0; + } + + gBattlescriptCurrInstr++; +} + +static void atkEF_pokeball_catch_calculation(void) +{ + u8 ballMultiplier = 0; + + if (gBattleExecBuffer) + return; + + gActiveBank = gBankAttacker; + gBankTarget = gBankAttacker ^ BIT_SIDE; + + if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) + { + EmitBallThrow(0, BALL_TRAINER_BLOCK); + MarkBufferBankForExecution(gActiveBank); + gBattlescriptCurrInstr = BattleScript_TrainerBallBlock; + } + else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL) + { + EmitBallThrow(0, BALL_3_SHAKES_SUCCESS); + MarkBufferBankForExecution(gActiveBank); + gBattlescriptCurrInstr = BattleScript_WallyBallThrow; + } + else + { + u32 odds; + u8 catchRate; + + if (gLastUsedItem == ITEM_SAFARI_BALL) + catchRate = gBattleStruct->field_7C * 1275 / 100; + else + catchRate = gBaseStats[gBattleMons[gBankTarget].species].catchRate; + + if (gLastUsedItem > ITEM_SAFARI_BALL) + { + switch (gLastUsedItem) + { + case ITEM_NET_BALL: + if (gBattleMons[gBankTarget].type1 == TYPE_WATER + || gBattleMons[gBankTarget].type2 == TYPE_WATER + || gBattleMons[gBankTarget].type1 == TYPE_BUG + || gBattleMons[gBankTarget].type2 == TYPE_BUG) + ballMultiplier = 30; + else + ballMultiplier = 10; + break; + case ITEM_DIVE_BALL: + if (sav1_map_get_light_level() == 5) + ballMultiplier = 35; + else + ballMultiplier = 10; + break; + case ITEM_NEST_BALL: + if (gBattleMons[gBankTarget].level < 40) + { + ballMultiplier = 40 - gBattleMons[gBankTarget].level; + if (ballMultiplier <= 9) + ballMultiplier = 10; + } + else + { + ballMultiplier = 10; + } + break; + case ITEM_REPEAT_BALL: + if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBankTarget].species), FLAG_GET_CAUGHT)) + ballMultiplier = 30; + else + ballMultiplier = 10; + break; + case ITEM_TIMER_BALL: + ballMultiplier = gBattleResults.battleTurnCounter + 10; + if (ballMultiplier > 40) + ballMultiplier = 40; + break; + case ITEM_LUXURY_BALL: + case ITEM_PREMIER_BALL: + ballMultiplier = 10; + break; + } + } + else + ballMultiplier = sBallCatchBonuses[gLastUsedItem - 2]; + + odds = (catchRate * ballMultiplier / 10) + * (gBattleMons[gBankTarget].maxHP * 3 - gBattleMons[gBankTarget].hp * 2) + / (3 * gBattleMons[gBankTarget].maxHP); + + if (gBattleMons[gBankTarget].status1 & (STATUS_SLEEP | STATUS_FREEZE)) + odds *= 2; + if (gBattleMons[gBankTarget].status1 & (STATUS_POISON | STATUS_BURN | STATUS_PARALYSIS | STATUS_TOXIC_POISON)) + odds = (odds * 15) / 10; + + if (gLastUsedItem != ITEM_SAFARI_BALL) + { + if (gLastUsedItem == ITEM_MASTER_BALL) + { + gBattleResults.unk5_1 = 1; + } + else + { + if (gBattleResults.catchAttempts[gLastUsedItem - ITEM_ULTRA_BALL] < 0xFF) + gBattleResults.catchAttempts[gLastUsedItem - ITEM_ULTRA_BALL]++; + } + } + + if (odds > 254) // mon caught + { + EmitBallThrow(0, BALL_3_SHAKES_SUCCESS); + MarkBufferBankForExecution(gActiveBank); + gBattlescriptCurrInstr = BattleScript_SuccessBallThrow; + SetMonData(&gEnemyParty[gBattlePartyID[gBankTarget]], MON_DATA_POKEBALL, &gLastUsedItem); + + if (CalculatePlayerPartyCount() == 6) + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + else + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + } + else // mon may be caught, calculate shakes + { + u8 shakes; + + odds = Sqrt(Sqrt(16711680 / odds)); + odds = 1048560 / odds; + + for (shakes = 0; shakes < 4 && Random() < odds; shakes++); + + if (gLastUsedItem == ITEM_MASTER_BALL) + shakes = BALL_3_SHAKES_SUCCESS; // why calculate the shakes before that check? + + EmitBallThrow(0, shakes); + MarkBufferBankForExecution(gActiveBank); + + if (shakes == BALL_3_SHAKES_SUCCESS) // mon caught, copy of the code above + { + gBattlescriptCurrInstr = BattleScript_SuccessBallThrow; + SetMonData(&gEnemyParty[gBattlePartyID[gBankTarget]], MON_DATA_POKEBALL, &gLastUsedItem); + + if (CalculatePlayerPartyCount() == 6) + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + else + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + } + else // not caught + { + gBattleCommunication[MULTISTRING_CHOOSER] = shakes; + gBattlescriptCurrInstr = BattleScript_ShakeBallThrow; + } + } + } +} + +static void atkF0_give_caught_mon(void) +{ + if (GiveMonToPlayer(&gEnemyParty[gBattlePartyID[gBankAttacker ^ BIT_SIDE]]) != MON_GIVEN_TO_PARTY) + { + if (!sub_813B21C()) + { + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + StringCopy(gStringVar1, GetBoxNamePtr(VarGet(VAR_STORAGE_UNKNOWN))); + GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gStringVar2); + } + else + { + StringCopy(gStringVar1, GetBoxNamePtr(VarGet(VAR_STORAGE_UNKNOWN))); + GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gStringVar2); + StringCopy(gStringVar3, GetBoxNamePtr(get_unknown_box_id())); + gBattleCommunication[MULTISTRING_CHOOSER] = 2; + } + + if (FlagGet(SYS_PC_LANETTE)) + gBattleCommunication[MULTISTRING_CHOOSER]++; + } + + gBattleResults.caughtMonSpecies = GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ BIT_SIDE]], MON_DATA_SPECIES, NULL); + GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gBattleResults.caughtMonNick); + gBattleResults.caughtMonBall = GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ BIT_SIDE]], MON_DATA_POKEBALL, NULL); + + gBattlescriptCurrInstr++; +} + +static void atkF1_set_caught_mon_dex_flags(void) +{ + u16 species = GetMonData(&gEnemyParty[0], MON_DATA_SPECIES, NULL); + u32 personality = GetMonData(&gEnemyParty[0], MON_DATA_PERSONALITY, NULL); + + if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), FLAG_GET_CAUGHT)) + { + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } + else + { + HandleSetPokedexFlag(SpeciesToNationalPokedexNum(species), FLAG_SET_CAUGHT, personality); + gBattlescriptCurrInstr += 5; + } +} + +static void atkF2_display_dex_info(void) +{ + u16 species = GetMonData(&gEnemyParty[0], MON_DATA_SPECIES, NULL); + + switch (gBattleCommunication[0]) + { + case 0: + BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); + gBattleCommunication[0]++; + break; + case 1: + if (!gPaletteFade.active) + { + FreeAllWindowBuffers(); + gBattleCommunication[TASK_ID] = CreateDexDisplayMonDataTask(SpeciesToNationalPokedexNum(species), + gBattleMons[gBankTarget].otId, + gBattleMons[gBankTarget].personality); + gBattleCommunication[0]++; + } + break; + case 2: + if (!gPaletteFade.active + && gMain.callback2 == BattleMainCB2 + && !gTasks[gBattleCommunication[TASK_ID]].isActive) + { + SetVBlankCallback(VBlankCB_Battle); + gBattleCommunication[0]++; + } + break; + case 3: + c2_berry_program_update_menu(); + sub_8035AA4(); + gBattle_BG3_X = 0x100; + gBattleCommunication[0]++; + break; + case 4: + if (!IsDma3ManagerBusyWithBgCopy()) + { + BeginNormalPaletteFade(0xFFFF, 0, 0x10, 0, 0); + ShowBg(0); + ShowBg(3); + gBattleCommunication[0]++; + } + break; + case 5: + if (!gPaletteFade.active) + gBattlescriptCurrInstr++; + break; + } +} + +void sub_8056A3C(u8 xStart, u8 yStart, u8 xEnd, u8 yEnd, u8 flags) +{ + s32 destY, destX; + u16 var = 0; + + for (destY = yStart; destY <= yEnd; destY++) + { + for (destX = xStart; destX <= xEnd; destX++) + { + if (destY == yStart) + { + if (destX == xStart) + var = 0x1022; + else if (destX == xEnd) + var = 0x1024; + else + var = 0x1023; + } + else if (destY == yEnd) + { + if (destX == xStart) + var = 0x1028; + else if (destX == xEnd) + var = 0x102A; + else + var = 0x1029; + } + else + { + if (destX == xStart) + var = 0x1025; + else if (destX == xEnd) + var = 0x1027; + else + var = 0x1026; + } + + if (flags & 1) + var = 0; + + if (flags & 0x80) + CopyToBgTilemapBufferRect_ChangePalette(1, &var, destX, destY, 1, 1, 0x11); + else + CopyToBgTilemapBufferRect_ChangePalette(0, &var, destX, destY, 1, 1, 0x11); + } + } +} + +void BattleCreateCursorAt(u8 cursorPosition) +{ + u16 src[2]; + src[0] = 1; + src[1] = 2; + + CopyToBgTilemapBufferRect_ChangePalette(0, src, 0x19, 9 + (2 * cursorPosition), 1, 2, 0x11); + CopyBgTilemapBufferToVram(0); +} + +void BattleDestroyCursorAt(u8 cursorPosition) +{ + u16 src[2]; + src[0] = 0x1016; + src[1] = 0x1016; + + CopyToBgTilemapBufferRect_ChangePalette(0, src, 0x19, 9 + (2 * cursorPosition), 1, 2, 0x11); + CopyBgTilemapBufferToVram(0); +} + +static void atkF3_nickname_caught_poke(void) +{ + switch (gBattleCommunication[MULTIUSE_STATE]) + { + case 0: + sub_8056A3C(0x18, 8, 0x1D, 0xD, 0); + sub_814F9EC(gText_BattleYesNoChoice, 0xC); + gBattleCommunication[MULTIUSE_STATE]++; + gBattleCommunication[CURSOR_POSITION] = 0; + BattleCreateCursorAt(0); + break; + case 1: + if (gMain.newKeys & DPAD_UP && gBattleCommunication[CURSOR_POSITION] != 0) + { + PlaySE(SE_SELECT); + BattleDestroyCursorAt(gBattleCommunication[CURSOR_POSITION]); + gBattleCommunication[CURSOR_POSITION] = 0; + BattleCreateCursorAt(0); + } + if (gMain.newKeys & DPAD_DOWN && gBattleCommunication[CURSOR_POSITION] == 0) + { + PlaySE(SE_SELECT); + BattleDestroyCursorAt(gBattleCommunication[CURSOR_POSITION]); + gBattleCommunication[CURSOR_POSITION] = 1; + BattleCreateCursorAt(1); + } + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + if (gBattleCommunication[CURSOR_POSITION] == 0) + { + gBattleCommunication[MULTIUSE_STATE]++; + BeginFastPaletteFade(3); + } + else + { + gBattleCommunication[MULTIUSE_STATE] = 4; + } + } + else if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + gBattleCommunication[MULTIUSE_STATE] = 4; + } + break; + case 2: + if (!gPaletteFade.active) + { + GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gBattleStruct->caughtMonNick); + FreeAllWindowBuffers(); + + DoNamingScreen(NAMING_SCREEN_CAUGHT_MON, gBattleStruct->caughtMonNick, + GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ BIT_SIDE]], MON_DATA_SPECIES), + GetMonGender(&gEnemyParty[gBattlePartyID[gBankAttacker ^ BIT_SIDE]]), + GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ BIT_SIDE]], MON_DATA_PERSONALITY, NULL), + BattleMainCB2); + + gBattleCommunication[MULTIUSE_STATE]++; + } + break; + case 3: + if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active ) + { + SetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gBattleStruct->caughtMonNick); + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + } + break; + case 4: + if (CalculatePlayerPartyCount() == 6) + gBattlescriptCurrInstr += 5; + else + gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + break; + } +} + +static void atkF4_subattackerhpbydmg(void) +{ + gBattleMons[gBankAttacker].hp -= gBattleMoveDamage; + gBattlescriptCurrInstr++; +} + +static void atkF5_removeattackerstatus1(void) +{ + gBattleMons[gBankAttacker].status1 = 0; + gBattlescriptCurrInstr++; +} + +static void atkF6_802BF48(void) +{ + gFightStateTracker = 0xC; +} + +static void atkF7_802BF54(void) +{ + gFightStateTracker = 0xC; + gCurrentMoveTurn = gNoOfAllBanks; +} + +static void atkF8_trainer_slide_back(void) +{ + gActiveBank = GetBankByIdentity(gBattlescriptCurrInstr[1]); + EmitTrainerSlideBack(0); + MarkBufferBankForExecution(gActiveBank); + + gBattlescriptCurrInstr += 2; +} diff --git a/src/berry.c b/src/berry.c index b6eaa14a0..98cf7d932 100644 --- a/src/berry.c +++ b/src/berry.c @@ -17,7 +17,6 @@ extern bool8 sub_8092E9C(u8, u8, u8); extern u16 gScriptItemId; extern const u8 BerryTreeScript[]; -extern const struct BerryTree gBlankBerryTree; #define BERRY_NAME_LENGTH 6 @@ -804,10 +803,58 @@ const struct Berry gBerries[] = }, }; +const struct UnkStruct_0858AB24 gUnknown_0858AB24[] = { + { 50, 20}, + { 50, 20}, + { 50, 20}, + { 50, 20}, + { 50, 20}, + { 50, 30}, + { 50, 30}, + { 50, 30}, + { 50, 30}, + { 50, 30}, + { 60, 50}, + { 60, 50}, + { 60, 50}, + { 60, 50}, + { 60, 50}, + { 80, 70}, + { 80, 70}, + { 80, 70}, + { 80, 70}, + { 80, 70}, + {100, 100}, + {100, 100}, + {100, 100}, + {100, 100}, + {100, 100}, + {130, 150}, + {130, 150}, + {130, 150}, + {130, 150}, + {130, 150}, + {160, 250}, + {160, 250}, + {160, 250}, + {160, 250}, + {160, 250}, + {180, 500}, + {180, 500}, + {180, 500}, + {180, 500}, + {180, 500}, + {200, 750}, + {200, 750}, + {150, 200} +}; + +const struct BerryTree gBlankBerryTree = {}; + // unused void ClearEnigmaBerries(void) { - CpuFill16(0, &gSaveBlock1Ptr->enigmaBerry, sizeof(gSaveBlock1Ptr->enigmaBerry)); + CpuFill16(0, &gSaveBlock1Ptr->enigmaBerry, 52); } void SetEnigmaBerry(u8 *src) @@ -815,7 +862,7 @@ void SetEnigmaBerry(u8 *src) u32 i; u8 *dest = (u8*)&gSaveBlock1Ptr->enigmaBerry; - for (i = 0; i < sizeof(gSaveBlock1Ptr->enigmaBerry); i++) + for (i = 0; i < 52; i++) dest[i] = src[i]; } @@ -827,7 +874,7 @@ u32 GetEnigmaBerryChecksum(struct EnigmaBerry *enigmaBerry) dest = (u8*)enigmaBerry; checksum = 0; - for (i = 0; i < sizeof(gSaveBlock1Ptr->enigmaBerry) - sizeof(gSaveBlock1Ptr->enigmaBerry.checksum); i++) + for (i = 0; i < 52 - sizeof(gSaveBlock1Ptr->enigmaBerry.checksum); i++) { checksum += dest[i]; } diff --git a/src/berry_blender.c b/src/berry_blender.c new file mode 100644 index 000000000..db50fe4c4 --- /dev/null +++ b/src/berry_blender.c @@ -0,0 +1,18 @@ + +// Includes +#include "global.h" + +// Static type declarations + +// Static RAM declarations +IWRAM_DATA void *berry_blender_c_unused_03000de4; +IWRAM_DATA s16 gUnknown_03000DE8[8]; +IWRAM_DATA s16 gUnknown_03000DF8[6]; +IWRAM_DATA s16 gUnknown_03000E04; +IWRAM_DATA s16 gUnknown_03000E06; + +// Static ROM declarations + +// .rodata + +// .text diff --git a/src/berry_fix_program.c b/src/berry_fix_program.c new file mode 100644 index 000000000..eca20af9d --- /dev/null +++ b/src/berry_fix_program.c @@ -0,0 +1,530 @@ + +// Includes +#include "global.h" +#include "gpu_regs.h" +#include "multiboot.h" +#include "malloc.h" +#include "bg.h" +#include "main.h" +#include "sprite.h" +#include "task.h" +#include "unknown_task.h" +#include "window.h" +#include "menu.h" +#include "m4a.h" + +// Static type declarations + +typedef struct { + u8 state; + u8 unk1; + u16 unk2; + struct MultiBootParam mb; +} berryfix_t; + +// Static RAM declarations + +static berryfix_t *berry_fix_mb_manager; + +// Static ROM declarations + +static void berry_fix_main(void); +static void berry_fix_gpu_set(void); +static int berry_fix_text_update(int); +static void berry_fix_text_print(int); +static void berry_fix_bg_hide(void); + +// .rodata + +static const u8 gUnknown_08617E78[] = _("Berry Program Update"); +static const u8 gUnknown_08617E8D[] = _("Ruby/Sapphire"); +static const u8 gUnknown_08617E9B[] = _("Emerald"); + +static const u8 Unknown_08617EA3[] = _("The Berry Program on your POKéMON\nRuby/Sapphire Game Pak will be updated.\n{COLOR RED}{SHADOW LIGHT_RED}Press the A Button."); +static const u8 Unknown_08617F07[] = _("Please ensure the connection of your\nGame Boy Advance system matches this.\n{COLOR RED}{SHADOW LIGHT_RED}YES: Press the A Button.\nNO: Turn off the power and try again."); +static const u8 Unknown_08617F97[] = _("Please turn on the power of POKéMON\nRuby/Sapphire while holding START and\nSELECT simultaneously. Then, ensure\nthe picture above appears."); +static const u8 Unknown_08618020[] = _("Transmitting. Please wait.\n{COLOR RED}{SHADOW LIGHT_RED}Please do not turn off the power or\nunplug the Game Boy Advance Game\nLink Cable."); +static const u8 Unknown_08618092[] = _("Please follow the instructions on your\nPOKéMON Ruby/Sapphire screen."); +static const u8 Unknown_086180D7[] = _("Transmission failure.\n{COLOR RED}{SHADOW LIGHT_RED}Please try again."); + +static const struct BgTemplate gUnknown_08618108[] = { + { + 0, 0, 30, 0, 0, 0 + }, { + 1, 1, 31, 0, 0, 1 + } +}; + +static const struct WindowTemplate gUnknown_08618110[] = { + {0, 2, 4, 26, 2, 15, 0x001}, + {0, 1, 11, 28, 8, 15, 0x035}, + {0, 0, 8, 30, 2, 15, 0x115}, + {0, 8, 0, 14, 2, 15, 0x151}, + {-1} +}; + +static const u16 gUnknown_08618138[] = { + 0x7fff, 0x7fff, 0x318c, 0x675a, + 0x043c, 0x3aff, 0x0664, 0x4bd2, + 0x6546, 0x7b14, 0x7fff, 0x318c, + 0x675a, 0x0000, 0x0000, 0x0000 +}; + +static const u8 gUnknown_08618158[] = {10, 11, 12}; +static const u8 gUnknown_0861815B[] = { 0, 10, 13}; + +static const u8 *const gUnknown_08618160[] = { + Unknown_08617F07, + Unknown_08617F97, + Unknown_08618020, + Unknown_08618092, + Unknown_086180D7, + Unknown_08617EA3 +}; + +extern const u8 gUnknown_08DD87C0[]; +extern const u8 gUnknown_08DD8EE0[]; +extern const u8 gUnknown_08DD8780[]; +extern const u8 gUnknown_08DD90E0[]; +extern const u8 gUnknown_08DD9718[]; +extern const u8 gUnknown_08DD9080[]; +extern const u8 gUnknown_08DD98B4[]; +extern const u8 gUnknown_08DD9E58[]; +extern const u8 gUnknown_08DD9874[]; +extern const u8 gUnknown_08DDA02C[]; +extern const u8 gUnknown_08DDA63C[]; +extern const u8 gUnknown_08DD9FEC[]; +extern const u8 gUnknown_08DDA840[]; +extern const u8 gUnknown_08DDAE40[]; +extern const u8 gUnknown_08DDA800[]; +extern const u8 gUnknown_08DDB020[]; +extern const u8 gUnknown_08DDB2C4[]; +extern const u8 gUnknown_08DDAFE0[]; + +static const u8 *const gUnknown_08618178[][3] = { + { + gUnknown_08DD87C0, + gUnknown_08DD8EE0, + gUnknown_08DD8780 + }, { + gUnknown_08DD90E0, + gUnknown_08DD9718, + gUnknown_08DD9080 + }, { + gUnknown_08DD98B4, + gUnknown_08DD9E58, + gUnknown_08DD9874 + }, { + gUnknown_08DDA02C, + gUnknown_08DDA63C, + gUnknown_08DD9FEC + }, { + gUnknown_08DDA840, + gUnknown_08DDAE40, + gUnknown_08DDA800 + }, { + gUnknown_08DDB020, + gUnknown_08DDB2C4, + gUnknown_08DDAFE0 + }, +}; + +extern const u8 gMultiBootProgram_BerryGlitchFix_Start[0x3BF4]; +extern const u8 gMultiBootProgram_BerryGlitchFix_End[]; + +// .text + +void InitBerryFixProgram(void) +{ + DisableInterrupts(0xFFFF); + EnableInterrupts(0x0001); + m4aSoundVSyncOff(); + SetVBlankCallback(NULL); + ResetSpriteData(); + ResetTasks(); + remove_some_task(); + SetGpuReg(REG_OFFSET_DISPCNT, 0x0000); + berry_fix_mb_manager = AllocZeroed(0x50); + berry_fix_mb_manager->state = 0; + berry_fix_mb_manager->unk1 = 6; + SetMainCallback2(berry_fix_main); +} + +static void berry_fix_main(void) +{ + switch (berry_fix_mb_manager->state) + { + case 0: + berry_fix_gpu_set(); + berry_fix_mb_manager->state = 1; + break; + case 1: + if (berry_fix_text_update(5) == 5 && (gMain.newKeys & A_BUTTON)) + { + berry_fix_mb_manager->state = 2; + } + break; + case 2: + if (berry_fix_text_update(0) == 0 && (gMain.newKeys & A_BUTTON)) + { + berry_fix_mb_manager->state = 3; + } + break; + case 3: + if (berry_fix_text_update(1) == 1) + { + berry_fix_mb_manager->mb.masterp = gMultiBootProgram_BerryGlitchFix_Start; + berry_fix_mb_manager->mb.server_type = 0; + MultiBootInit(&berry_fix_mb_manager->mb); + berry_fix_mb_manager->unk2 = 0; + berry_fix_mb_manager->state = 4; + } + break; + case 4: + MultiBootMain(&berry_fix_mb_manager->mb); + if (berry_fix_mb_manager->mb.probe_count != 0 || (!(berry_fix_mb_manager->mb.response_bit & 2) || !(berry_fix_mb_manager->mb.client_bit & 2))) + { + berry_fix_mb_manager->unk2 = 0; + } + else if (++ berry_fix_mb_manager->unk2 > 180) + { + MultiBootStartMaster(&berry_fix_mb_manager->mb, gMultiBootProgram_BerryGlitchFix_Start + ROM_HEADER_SIZE, (u32)(gMultiBootProgram_BerryGlitchFix_End - (gMultiBootProgram_BerryGlitchFix_Start + ROM_HEADER_SIZE)), 4, 1); + berry_fix_mb_manager->state = 5; + } + break; + case 5: + if (berry_fix_text_update(2) == 2) { + MultiBootMain(&berry_fix_mb_manager->mb); + if (MultiBootCheckComplete(&berry_fix_mb_manager->mb)) { + berry_fix_mb_manager->state = 6; + } + else if (!(berry_fix_mb_manager->mb.client_bit & 2)) { + berry_fix_mb_manager->state = 7; + } + } + break; + case 6: + if (berry_fix_text_update(3) == 3 && gMain.newKeys & A_BUTTON) + { + DoSoftReset(); + } + break; + case 7: + if (berry_fix_text_update(4) == 4 && gMain.newKeys & A_BUTTON) + { + berry_fix_mb_manager->state = 1; + } + break; + } +} + +#ifdef NONMATCHING +static void berry_fix_gpu_set(void) +{ + s32 width; + + SetGpuReg(REG_OFFSET_BG0CNT, 0x0000); + SetGpuReg(REG_OFFSET_BG1CNT, 0x0000); + SetGpuReg(REG_OFFSET_BG0HOFS, 0x0000); + SetGpuReg(REG_OFFSET_BG0VOFS, 0x0000); + SetGpuReg(REG_OFFSET_BG1HOFS, 0x0000); + SetGpuReg(REG_OFFSET_BG1VOFS, 0x0000); + SetGpuReg(REG_OFFSET_BLDCNT, 0x0000); + + DmaFill32(3, 0, VRAM, VRAM_SIZE); + DmaFill32(3, 0, OAM, OAM_SIZE); + DmaFill32(3, 0, PLTT, PLTT_SIZE); + ResetBgsAndClearDma3BusyFlags(0); + + InitBgsFromTemplates(0, gUnknown_08618108, ARRAY_COUNT(gUnknown_08618108)); + ChangeBgX(0, 0, 0); + ChangeBgY(0, 0, 0); + ChangeBgX(1, 0, 0); + ChangeBgY(1, 0, 0); + InitWindows(gUnknown_08618110); + DeactivateAllTextPrinters(); + + DmaCopy32(3, gUnknown_08618138, BG_PLTT + 0x1E0, 0x20); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP); + FillWindowPixelBuffer(2, 0); + FillWindowPixelBuffer(3, 0); + FillWindowPixelBuffer(0, 0xAA); + +// This block is a meme among memes + width = (0x78 - GetStringWidth(0, gUnknown_08617E9B, 0)) / 2; + box_print(2, 0, width, 3, gUnknown_0861815B, -1, gUnknown_08617E9B); + width = (s32)(0x78 - GetStringWidth(0, gUnknown_08617E9B, 0)) / 2 + 0x78; + box_print(2, 0, width, 3, gUnknown_0861815B, -1, gUnknown_08617E8D); + width = (0x70 - GetStringWidth(0, gUnknown_08617E8D, 0)) / 2; + box_print(3, 0, width, 0, gUnknown_0861815B, -1, gUnknown_08617E8D); + width = (0xd0 - GetStringWidth(1, gUnknown_08617E78, 0)) / 2; + box_print(0, 1, width, 2, gUnknown_08618158, -1, gUnknown_08617E78); + + CopyWindowToVram(2, 2); + CopyWindowToVram(3, 2); + CopyWindowToVram(0, 2); +} + +#else +__attribute__((naked)) static void berry_fix_gpu_set(void) +{ + asm(".syntax unified\n" + "\tpush {r4-r6,lr}\n" + "\tmov r6, r8\n" + "\tpush {r6}\n" + "\tsub sp, 0x10\n" + "\tmovs r0, 0x8\n" + "\tmovs r1, 0\n" + "\tbl SetGpuReg\n" + "\tmovs r0, 0xA\n" + "\tmovs r1, 0\n" + "\tbl SetGpuReg\n" + "\tmovs r0, 0x10\n" + "\tmovs r1, 0\n" + "\tbl SetGpuReg\n" + "\tmovs r0, 0x12\n" + "\tmovs r1, 0\n" + "\tbl SetGpuReg\n" + "\tmovs r0, 0x14\n" + "\tmovs r1, 0\n" + "\tbl SetGpuReg\n" + "\tmovs r0, 0x16\n" + "\tmovs r1, 0\n" + "\tbl SetGpuReg\n" + "\tmovs r0, 0x50\n" + "\tmovs r1, 0\n" + "\tbl SetGpuReg\n" + "\tmovs r1, 0\n" + "\tstr r1, [sp, 0xC]\n" + "\tldr r4, =0x040000d4\n" + "\tadd r0, sp, 0xC\n" + "\tstr r0, [r4]\n" + "\tmovs r0, 0xC0\n" + "\tlsls r0, 19\n" + "\tstr r0, [r4, 0x4]\n" + "\tldr r0, =0x85006000\n" + "\tstr r0, [r4, 0x8]\n" + "\tldr r0, [r4, 0x8]\n" + "\tstr r1, [sp, 0xC]\n" + "\tadd r0, sp, 0xC\n" + "\tstr r0, [r4]\n" + "\tmovs r0, 0xE0\n" + "\tlsls r0, 19\n" + "\tstr r0, [r4, 0x4]\n" + "\tldr r2, =0x85000100\n" + "\tstr r2, [r4, 0x8]\n" + "\tldr r0, [r4, 0x8]\n" + "\tstr r1, [sp, 0xC]\n" + "\tadd r0, sp, 0xC\n" + "\tstr r0, [r4]\n" + "\tmovs r0, 0xA0\n" + "\tlsls r0, 19\n" + "\tstr r0, [r4, 0x4]\n" + "\tstr r2, [r4, 0x8]\n" + "\tldr r0, [r4, 0x8]\n" + "\tmovs r0, 0\n" + "\tbl ResetBgsAndClearDma3BusyFlags\n" + "\tldr r1, =gUnknown_08618108\n" + "\tmovs r0, 0\n" + "\tmovs r2, 0x2\n" + "\tbl InitBgsFromTemplates\n" + "\tmovs r0, 0\n" + "\tmovs r1, 0\n" + "\tmovs r2, 0\n" + "\tbl ChangeBgX\n" + "\tmovs r0, 0\n" + "\tmovs r1, 0\n" + "\tmovs r2, 0\n" + "\tbl ChangeBgY\n" + "\tmovs r0, 0x1\n" + "\tmovs r1, 0\n" + "\tmovs r2, 0\n" + "\tbl ChangeBgX\n" + "\tmovs r0, 0x1\n" + "\tmovs r1, 0\n" + "\tmovs r2, 0\n" + "\tbl ChangeBgY\n" + "\tldr r0, =gUnknown_08618110\n" + "\tbl InitWindows\n" + "\tbl DeactivateAllTextPrinters\n" + "\tldr r0, =gUnknown_08618138\n" + "\tstr r0, [r4]\n" + "\tldr r0, =0x050001e0\n" + "\tstr r0, [r4, 0x4]\n" + "\tldr r0, =0x84000008\n" + "\tstr r0, [r4, 0x8]\n" + "\tldr r0, [r4, 0x8]\n" + "\tmovs r0, 0\n" + "\tmovs r1, 0x40\n" + "\tbl SetGpuReg\n" + "\tmovs r0, 0x2\n" + "\tmovs r1, 0\n" + "\tbl FillWindowPixelBuffer\n" + "\tmovs r0, 0x3\n" + "\tmovs r1, 0\n" + "\tbl FillWindowPixelBuffer\n" + "\tmovs r0, 0\n" + "\tmovs r1, 0xAA\n" + "\tbl FillWindowPixelBuffer\n" + "\tldr r5, =gUnknown_08617E9B\n" + "\tmovs r0, 0\n" + "\tadds r1, r5, 0\n" + "\tmovs r2, 0\n" + "\tbl GetStringWidth\n" + "\tadds r1, r0, 0\n" + "\tmovs r4, 0x78\n" + "\tsubs r0, r4, r1\n" + "\tlsrs r1, r0, 31\n" + "\tadds r0, r1\n" + "\tasrs r0, 1\n" + "\tlsls r2, r0, 24\n" + "\tlsrs r2, 24\n" + "\tldr r6, =gUnknown_0861815B\n" + "\tstr r6, [sp]\n" + "\tmovs r0, 0x1\n" + "\tnegs r0, r0\n" + "\tmov r8, r0\n" + "\tstr r0, [sp, 0x4]\n" + "\tstr r5, [sp, 0x8]\n" + "\tmovs r0, 0x2\n" + "\tmovs r1, 0\n" + "\tmovs r3, 0x3\n" + "\tbl box_print\n" + "\tldr r5, =gUnknown_08617E8D\n" + "\tmovs r0, 0\n" + "\tadds r1, r5, 0\n" + "\tmovs r2, 0\n" + "\tbl GetStringWidth\n" + "\tadds r1, r0, 0\n" + "\tsubs r4, r1\n" + "\tlsrs r0, r4, 31\n" + "\tadds r4, r0\n" + "\tasrs r4, 1\n" + "\tadds r0, r4, 0\n" + "\tadds r0, 0x78\n" + "\tlsls r2, r0, 24\n" + "\tlsrs r2, 24\n" + "\tstr r6, [sp]\n" + "\tmov r0, r8\n" + "\tstr r0, [sp, 0x4]\n" + "\tstr r5, [sp, 0x8]\n" + "\tmovs r0, 0x2\n" + "\tmovs r1, 0\n" + "\tmovs r3, 0x3\n" + "\tbl box_print\n" + "\tmovs r0, 0\n" + "\tadds r1, r5, 0\n" + "\tmovs r2, 0\n" + "\tbl GetStringWidth\n" + "\tadds r1, r0, 0\n" + "\tmovs r0, 0x70\n" + "\tsubs r0, r1\n" + "\tlsrs r1, r0, 31\n" + "\tadds r0, r1\n" + "\tasrs r0, 1\n" + "\tlsls r2, r0, 24\n" + "\tlsrs r2, 24\n" + "\tstr r6, [sp]\n" + "\tmov r0, r8\n" + "\tstr r0, [sp, 0x4]\n" + "\tstr r5, [sp, 0x8]\n" + "\tmovs r0, 0x3\n" + "\tmovs r1, 0\n" + "\tmovs r3, 0\n" + "\tbl box_print\n" + "\tldr r4, =gUnknown_08617E78\n" + "\tmovs r0, 0x1\n" + "\tadds r1, r4, 0\n" + "\tmovs r2, 0\n" + "\tbl GetStringWidth\n" + "\tadds r1, r0, 0\n" + "\tmovs r0, 0xD0\n" + "\tsubs r0, r1\n" + "\tlsrs r1, r0, 31\n" + "\tadds r0, r1\n" + "\tasrs r0, 1\n" + "\tlsls r2, r0, 24\n" + "\tlsrs r2, 24\n" + "\tldr r0, =gUnknown_08618158\n" + "\tstr r0, [sp]\n" + "\tmov r0, r8\n" + "\tstr r0, [sp, 0x4]\n" + "\tstr r4, [sp, 0x8]\n" + "\tmovs r0, 0\n" + "\tmovs r1, 0x1\n" + "\tmovs r3, 0x2\n" + "\tbl box_print\n" + "\tmovs r0, 0x2\n" + "\tmovs r1, 0x2\n" + "\tbl CopyWindowToVram\n" + "\tmovs r0, 0x3\n" + "\tmovs r1, 0x2\n" + "\tbl CopyWindowToVram\n" + "\tmovs r0, 0\n" + "\tmovs r1, 0x2\n" + "\tbl CopyWindowToVram\n" + "\tadd sp, 0x10\n" + "\tpop {r3}\n" + "\tmov r8, r3\n" + "\tpop {r4-r6}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.pool\n" + ".syntax divided"); +} +#endif + +static int berry_fix_text_update(int checkval) +{ + if (berry_fix_mb_manager->unk1 == checkval) + { + return checkval; + } + if (berry_fix_mb_manager->unk1 == 6) + { + berry_fix_text_print(checkval); + berry_fix_mb_manager->unk1 = checkval; + } + else + { + berry_fix_bg_hide(); + berry_fix_mb_manager->unk1 = 6; + } + return berry_fix_mb_manager->unk1; +} + +static void berry_fix_text_print(int scene) +{ + FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 32, 32); + FillWindowPixelBuffer(1, 0xAA); + box_print(1, 1, 0, 0, gUnknown_08618158, -1, gUnknown_08618160[scene]); + PutWindowTilemap(1); + CopyWindowToVram(1, 2); + switch (scene) + { + case 0: + case 2: + case 3: + case 4: + PutWindowTilemap(2); + break; + case 1: + PutWindowTilemap(3); + break; + case 5: + PutWindowTilemap(0); + break; + } + CopyBgTilemapBufferToVram(0); + LZ77UnCompVram(gUnknown_08618178[scene][0], (void *)BG_CHAR_ADDR(1)); + LZ77UnCompVram(gUnknown_08618178[scene][1], (void *)BG_SCREEN_ADDR(31)); + CpuCopy32(gUnknown_08618178[scene][2], (void *)BG_PLTT, 0x100); + ShowBg(0); + ShowBg(1); +} + +static void berry_fix_bg_hide() +{ + HideBg(0); + HideBg(1); +} diff --git a/src/bg.c b/src/bg.c index 8979eaecd..74e3ea830 100644 --- a/src/bg.c +++ b/src/bg.c @@ -1,20 +1,12 @@ #include "global.h" +#include "bg.h" #include "dma3.h" +#include "gpu_regs.h" -#define DISPCNT_ALL_BG_AND_MODE_BITS 0x0F07 +#define DISPCNT_ALL_BG_AND_MODE_BITS (DISPCNT_BG_ALL_ON | 0x7) -enum { - BG_CTRL_ATTR_VISIBLE = 1, - BG_CTRL_ATTR_CHARBASEINDEX = 2, - BG_CTRL_ATTR_MAPBASEINDEX = 3, - BG_CTRL_ATTR_SCREENSIZE = 4, - BG_CTRL_ATTR_PALETTEMODE = 5, - BG_CTRL_ATTR_PRIORITY = 6, - BG_CTRL_ATTR_MOSAIC = 7, - BG_CTRL_ATTR_WRAPAROUND = 8, -}; - -struct BgControl { +struct BgControl +{ struct BgConfig { u16 visible:1; u16 unknown_1:1; @@ -22,88 +14,61 @@ struct BgControl { u16 priority:2; u16 mosaic:1; u16 wraparound:1; - + u16 charBaseIndex:2; u16 mapBaseIndex:5; u16 paletteMode:1; - + u8 unknown_2; u8 unknown_3; } configs[4]; - + u16 bgVisibilityAndMode; }; -struct BgTemplate { - u32 bg:2; - u32 charBaseIndex:2; - u32 mapBaseIndex:5; - u32 screenSize:2; - u32 paletteMode:1; - u32 priority:2; - u32 baseTile:10; -}; - -struct BgConfig2 { +struct BgConfig2 +{ u32 baseTile:10; u32 basePalette:4; u32 unk_3:18; - + void* tilemap; u32 bg_x; u32 bg_y; }; -static struct BgControl gGpuBgConfigs; -static struct BgConfig2 gGpuBgConfigs2[4]; -static u32 gDmaBusyBitfield[4]; +static IWRAM_DATA struct BgControl sGpuBgConfigs; +static IWRAM_DATA struct BgConfig2 sGpuBgConfigs2[4]; +static IWRAM_DATA u32 sDmaBusyBitfield[4]; u32 gUnneededFireRedVariable; -static const struct BgConfig gZeroedBgControlStruct = { 0 }; - -extern void SetGpuReg(u8 regOffset, u16 value); -extern void SetGpuReg_ForcedBlank(u8 regOffset, u16 value); -extern u16 GetGpuReg(u8 regOffset); -extern int CheckForSpaceForDma3Request(s16 index); - -bool32 IsInvalidBg32(u8); -void ResetBgControlStructs(); -u16 GetBgMetricTextMode(u8, u8); -u32 GetBgMetricAffineMode(u8, u8); -u32 GetBgType(u8); -void SetTextModeAndHideBgs(); -bool8 IsInvalidBg(u8); -bool32 IsTileMapOutsideWram(u8); -void CopyRectToBgTilemapBufferRect(u8, void*, u8, u8, u8, u8, u8, u8, u8, u8, u8, u16, u16); -void CopyTileMapEntry(u16*, u16*, s32, u32, u32); -u32 GetTileMapIndexFromCoords(s32, s32, s32, u32, u32); -void WriteSequenceToBgTilemapBuffer(u8, u16, u8, u8, u8, u8, u8, s16); +static const struct BgConfig sZeroedBgControlStruct = { 0 }; void ResetBgs(void) { ResetBgControlStructs(); - gGpuBgConfigs.bgVisibilityAndMode = 0; + sGpuBgConfigs.bgVisibilityAndMode = 0; SetTextModeAndHideBgs(); } -void SetBgModeInternal(u8 bgMode) +static void SetBgModeInternal(u8 bgMode) { - gGpuBgConfigs.bgVisibilityAndMode &= 0xFFF8; - gGpuBgConfigs.bgVisibilityAndMode |= bgMode; + sGpuBgConfigs.bgVisibilityAndMode &= 0xFFF8; + sGpuBgConfigs.bgVisibilityAndMode |= bgMode; } u8 GetBgMode(void) { - return gGpuBgConfigs.bgVisibilityAndMode & 0x7; + return sGpuBgConfigs.bgVisibilityAndMode & 0x7; } void ResetBgControlStructs(void) { - struct BgConfig* bgConfigs = &gGpuBgConfigs.configs[0]; - struct BgConfig zeroedConfig = gZeroedBgControlStruct; + struct BgConfig* bgConfigs = &sGpuBgConfigs.configs[0]; + struct BgConfig zeroedConfig = sZeroedBgControlStruct; int i; - + for (i = 0; i < 4; i++) { bgConfigs[i] = zeroedConfig; @@ -114,7 +79,7 @@ void Unused_ResetBgControlStruct(u8 bg) { if (IsInvalidBg(bg) == FALSE) { - gGpuBgConfigs.configs[bg] = gZeroedBgControlStruct; + sGpuBgConfigs.configs[bg] = sZeroedBgControlStruct; } } @@ -124,98 +89,98 @@ void SetBgControlAttributes(u8 bg, u8 charBaseIndex, u8 mapBaseIndex, u8 screenS { if (charBaseIndex != 0xFF) { - gGpuBgConfigs.configs[bg].charBaseIndex = charBaseIndex & 0x3; + sGpuBgConfigs.configs[bg].charBaseIndex = charBaseIndex & 0x3; } - + if (mapBaseIndex != 0xFF) { - gGpuBgConfigs.configs[bg].mapBaseIndex = mapBaseIndex & 0x1F; + sGpuBgConfigs.configs[bg].mapBaseIndex = mapBaseIndex & 0x1F; } - + if (screenSize != 0xFF) { - gGpuBgConfigs.configs[bg].screenSize = screenSize & 0x3; + sGpuBgConfigs.configs[bg].screenSize = screenSize & 0x3; } - + if (paletteMode != 0xFF) { - gGpuBgConfigs.configs[bg].paletteMode = paletteMode; + sGpuBgConfigs.configs[bg].paletteMode = paletteMode; } - + if (priority != 0xFF) { - gGpuBgConfigs.configs[bg].priority = priority & 0x3; + sGpuBgConfigs.configs[bg].priority = priority & 0x3; } - + if (mosaic != 0xFF) { - gGpuBgConfigs.configs[bg].mosaic = mosaic & 0x1; + sGpuBgConfigs.configs[bg].mosaic = mosaic & 0x1; } - + if (wraparound != 0xFF) { - gGpuBgConfigs.configs[bg].wraparound = wraparound; + sGpuBgConfigs.configs[bg].wraparound = wraparound; } - - gGpuBgConfigs.configs[bg].unknown_2 = 0; - gGpuBgConfigs.configs[bg].unknown_3 = 0; - - gGpuBgConfigs.configs[bg].visible = 1; + + sGpuBgConfigs.configs[bg].unknown_2 = 0; + sGpuBgConfigs.configs[bg].unknown_3 = 0; + + sGpuBgConfigs.configs[bg].visible = 1; } } u16 GetBgControlAttribute(u8 bg, u8 attributeId) { - if (IsInvalidBg(bg) == FALSE && gGpuBgConfigs.configs[bg].visible != FALSE) + if (IsInvalidBg(bg) == FALSE && sGpuBgConfigs.configs[bg].visible != FALSE) { switch (attributeId) { case BG_CTRL_ATTR_VISIBLE: - return gGpuBgConfigs.configs[bg].visible; + return sGpuBgConfigs.configs[bg].visible; case BG_CTRL_ATTR_CHARBASEINDEX: - return gGpuBgConfigs.configs[bg].charBaseIndex; + return sGpuBgConfigs.configs[bg].charBaseIndex; case BG_CTRL_ATTR_MAPBASEINDEX: - return gGpuBgConfigs.configs[bg].mapBaseIndex; + return sGpuBgConfigs.configs[bg].mapBaseIndex; case BG_CTRL_ATTR_SCREENSIZE: - return gGpuBgConfigs.configs[bg].screenSize; + return sGpuBgConfigs.configs[bg].screenSize; case BG_CTRL_ATTR_PALETTEMODE: - return gGpuBgConfigs.configs[bg].paletteMode; + return sGpuBgConfigs.configs[bg].paletteMode; case BG_CTRL_ATTR_PRIORITY: - return gGpuBgConfigs.configs[bg].priority; + return sGpuBgConfigs.configs[bg].priority; case BG_CTRL_ATTR_MOSAIC: - return gGpuBgConfigs.configs[bg].mosaic; + return sGpuBgConfigs.configs[bg].mosaic; case BG_CTRL_ATTR_WRAPAROUND: - return gGpuBgConfigs.configs[bg].wraparound; + return sGpuBgConfigs.configs[bg].wraparound; } } - + return 0xFF; } -u8 LoadBgVram(u8 bg, void *src, u16 size, u16 destOffset, u8 mode) +u8 LoadBgVram(u8 bg, const void *src, u16 size, u16 destOffset, u8 mode) { u16 offset; s8 cursor; - - if (IsInvalidBg(bg) == FALSE && gGpuBgConfigs.configs[bg].visible != FALSE) + + if (IsInvalidBg(bg) == FALSE && sGpuBgConfigs.configs[bg].visible != FALSE) { switch (mode) { case 0x1: - offset = gGpuBgConfigs.configs[bg].charBaseIndex * BG_CHAR_SIZE; + offset = sGpuBgConfigs.configs[bg].charBaseIndex * BG_CHAR_SIZE; break; case 0x2: - offset = gGpuBgConfigs.configs[bg].mapBaseIndex * BG_SCREEN_SIZE; + offset = sGpuBgConfigs.configs[bg].mapBaseIndex * BG_SCREEN_SIZE; break; default: cursor = -1; goto end; } - + offset = destOffset + offset; - + cursor = RequestDma3Copy(src, (void*)(offset + BG_VRAM), size, 0); - + if (cursor == -1) { return -1; @@ -225,56 +190,56 @@ u8 LoadBgVram(u8 bg, void *src, u16 size, u16 destOffset, u8 mode) { return -1; } - + end: return cursor; } -void ShowBgInternal(u8 bg) +static void ShowBgInternal(u8 bg) { u16 value; - if (IsInvalidBg(bg) == FALSE && gGpuBgConfigs.configs[bg].visible != FALSE) + if (IsInvalidBg(bg) == FALSE && sGpuBgConfigs.configs[bg].visible != FALSE) { - value = gGpuBgConfigs.configs[bg].priority | - (gGpuBgConfigs.configs[bg].charBaseIndex << 2) | - (gGpuBgConfigs.configs[bg].mosaic << 6) | - (gGpuBgConfigs.configs[bg].paletteMode << 7) | - (gGpuBgConfigs.configs[bg].mapBaseIndex << 8) | - (gGpuBgConfigs.configs[bg].wraparound << 13) | - (gGpuBgConfigs.configs[bg].screenSize << 14); - + value = sGpuBgConfigs.configs[bg].priority | + (sGpuBgConfigs.configs[bg].charBaseIndex << 2) | + (sGpuBgConfigs.configs[bg].mosaic << 6) | + (sGpuBgConfigs.configs[bg].paletteMode << 7) | + (sGpuBgConfigs.configs[bg].mapBaseIndex << 8) | + (sGpuBgConfigs.configs[bg].wraparound << 13) | + (sGpuBgConfigs.configs[bg].screenSize << 14); + SetGpuReg((bg << 1) + 0x8, value); - - gGpuBgConfigs.bgVisibilityAndMode |= 1 << (bg + 8); - gGpuBgConfigs.bgVisibilityAndMode &= DISPCNT_ALL_BG_AND_MODE_BITS; + + sGpuBgConfigs.bgVisibilityAndMode |= 1 << (bg + 8); + sGpuBgConfigs.bgVisibilityAndMode &= DISPCNT_ALL_BG_AND_MODE_BITS; } } -void HideBgInternal(u8 bg) +static void HideBgInternal(u8 bg) { if (IsInvalidBg(bg) == FALSE) { - gGpuBgConfigs.bgVisibilityAndMode &= ~(1 << (bg + 8)); - gGpuBgConfigs.bgVisibilityAndMode &= DISPCNT_ALL_BG_AND_MODE_BITS; + sGpuBgConfigs.bgVisibilityAndMode &= ~(1 << (bg + 8)); + sGpuBgConfigs.bgVisibilityAndMode &= DISPCNT_ALL_BG_AND_MODE_BITS; } } -void SyncBgVisibilityAndMode() +static void SyncBgVisibilityAndMode(void) { - SetGpuReg(0, (GetGpuReg(0) & ~DISPCNT_ALL_BG_AND_MODE_BITS) | gGpuBgConfigs.bgVisibilityAndMode); + SetGpuReg(0, (GetGpuReg(0) & ~DISPCNT_ALL_BG_AND_MODE_BITS) | sGpuBgConfigs.bgVisibilityAndMode); } -void SetTextModeAndHideBgs() +void SetTextModeAndHideBgs(void) { SetGpuReg(0, GetGpuReg(0) & ~DISPCNT_ALL_BG_AND_MODE_BITS); } -void SetBgAffineInternal(u8 bg, u32 srcCenterX, u32 srcCenterY, s16 dispCenterX, s16 dispCenterY, s16 scaleX, s16 scaleY, u16 rotationAngle) +static void SetBgAffineInternal(u8 bg, u32 srcCenterX, u32 srcCenterY, s16 dispCenterX, s16 dispCenterY, s16 scaleX, s16 scaleY, u16 rotationAngle) { struct BgAffineSrcData src; struct BgAffineDstData dest; - - switch (gGpuBgConfigs.bgVisibilityAndMode & 0x7) + + switch (sGpuBgConfigs.bgVisibilityAndMode & 0x7) { case 1: if (bg != 2) @@ -288,7 +253,7 @@ void SetBgAffineInternal(u8 bg, u32 srcCenterX, u32 srcCenterY, s16 dispCenterX, default: return; } - + src.texX = srcCenterX; src.texY = srcCenterY; src.scrX = dispCenterX; @@ -296,7 +261,7 @@ void SetBgAffineInternal(u8 bg, u32 srcCenterX, u32 srcCenterY, s16 dispCenterX, src.sx = scaleX; src.sy = scaleY; src.alpha = rotationAngle; - + BgAffineSet(&src, &dest, 1); SetGpuReg(REG_OFFSET_BG2PA, dest.pa); @@ -326,20 +291,20 @@ void ResetBgsAndClearDma3BusyFlags(u32 leftoverFireRedLeafGreenVariable) { int i; ResetBgs(); - + for (i = 0; i < 4; i++) { - gDmaBusyBitfield[i] = 0; + sDmaBusyBitfield[i] = 0; } - + gUnneededFireRedVariable = leftoverFireRedLeafGreenVariable; } -void InitBgsFromTemplates(u8 bgMode, struct BgTemplate *templates, u8 numTemplates) +void InitBgsFromTemplates(u8 bgMode, const struct BgTemplate *templates, u8 numTemplates) { int i; u8 bg; - + SetBgModeInternal(bgMode); ResetBgControlStructs(); @@ -355,22 +320,22 @@ void InitBgsFromTemplates(u8 bgMode, struct BgTemplate *templates, u8 numTemplat templates[i].priority, 0, 0); - - gGpuBgConfigs2[bg].baseTile = templates[i].baseTile; - gGpuBgConfigs2[bg].basePalette = 0; - gGpuBgConfigs2[bg].unk_3 = 0; - - gGpuBgConfigs2[bg].tilemap = NULL; - gGpuBgConfigs2[bg].bg_x = 0; - gGpuBgConfigs2[bg].bg_y = 0; + + sGpuBgConfigs2[bg].baseTile = templates[i].baseTile; + sGpuBgConfigs2[bg].basePalette = 0; + sGpuBgConfigs2[bg].unk_3 = 0; + + sGpuBgConfigs2[bg].tilemap = NULL; + sGpuBgConfigs2[bg].bg_x = 0; + sGpuBgConfigs2[bg].bg_y = 0; } } } -void InitBgFromTemplate(struct BgTemplate *template) +void InitBgFromTemplate(const struct BgTemplate *template) { u8 bg = template->bg; - + if (bg < 4) { SetBgControlAttributes(bg, @@ -381,14 +346,14 @@ void InitBgFromTemplate(struct BgTemplate *template) template->priority, 0, 0); - - gGpuBgConfigs2[bg].baseTile = template->baseTile; - gGpuBgConfigs2[bg].basePalette = 0; - gGpuBgConfigs2[bg].unk_3 = 0; - - gGpuBgConfigs2[bg].tilemap = NULL; - gGpuBgConfigs2[bg].bg_x = 0; - gGpuBgConfigs2[bg].bg_y = 0; + + sGpuBgConfigs2[bg].baseTile = template->baseTile; + sGpuBgConfigs2[bg].basePalette = 0; + sGpuBgConfigs2[bg].unk_3 = 0; + + sGpuBgConfigs2[bg].tilemap = NULL; + sGpuBgConfigs2[bg].bg_x = 0; + sGpuBgConfigs2[bg].bg_y = 0; } } @@ -397,63 +362,63 @@ void SetBgMode(u8 bgMode) SetBgModeInternal(bgMode); } -u16 LoadBgTiles(u8 bg, void* src, u16 size, u16 destOffset) +u16 LoadBgTiles(u8 bg, const void* src, u16 size, u16 destOffset) { u16 tileOffset; u8 cursor; - + if (GetBgControlAttribute(bg, BG_CTRL_ATTR_PALETTEMODE) == 0) { - tileOffset = (gGpuBgConfigs2[bg].baseTile + destOffset) * 0x20; + tileOffset = (sGpuBgConfigs2[bg].baseTile + destOffset) * 0x20; } else { - tileOffset = (gGpuBgConfigs2[bg].baseTile + destOffset) * 0x40; + tileOffset = (sGpuBgConfigs2[bg].baseTile + destOffset) * 0x40; } - + cursor = LoadBgVram(bg, src, size, tileOffset, DISPCNT_MODE_1); - + if (cursor == 0xFF) { return -1; } - - gDmaBusyBitfield[cursor / 0x20] |= (1 << (cursor % 0x20)); - + + sDmaBusyBitfield[cursor / 0x20] |= (1 << (cursor % 0x20)); + if (gUnneededFireRedVariable == 1) { DummiedOutFireRedLeafGreenTileAllocFunc(bg, tileOffset / 0x20, size / 0x20, 1); } - + return cursor; } -u16 LoadBgTilemap(u8 bg, void *src, u16 size, u16 destOffset) +u16 LoadBgTilemap(u8 bg, const void *src, u16 size, u16 destOffset) { u8 cursor; - + cursor = LoadBgVram(bg, src, size, destOffset * 2, DISPCNT_MODE_2); - + if (cursor == 0xFF) { return -1; } - - gDmaBusyBitfield[cursor / 0x20] |= (1 << (cursor % 0x20)); - + + sDmaBusyBitfield[cursor / 0x20] |= (1 << (cursor % 0x20)); + return cursor; } -u16 Unused_LoadBgPalette(u8 bg, void *src, u16 size, u16 destOffset) +u16 Unused_LoadBgPalette(u8 bg, const void *src, u16 size, u16 destOffset) { u16 paletteOffset; s8 cursor; - + if (IsInvalidBg32(bg) == FALSE) { - paletteOffset = (gGpuBgConfigs2[bg].basePalette * 0x20) + (destOffset * 2); + paletteOffset = (sGpuBgConfigs2[bg].basePalette * 0x20) + (destOffset * 2); cursor = RequestDma3Copy(src, (void*)(paletteOffset + BG_PLTT), size, 0); - + if (cursor == -1) { return -1; @@ -464,7 +429,7 @@ u16 Unused_LoadBgPalette(u8 bg, void *src, u16 size, u16 destOffset) return -1; } - gDmaBusyBitfield[cursor / 0x20] |= (1 << (cursor % 0x20)); + sDmaBusyBitfield[cursor / 0x20] |= (1 << (cursor % 0x20)); return (u8)cursor; } @@ -475,23 +440,23 @@ bool8 IsDma3ManagerBusyWithBgCopy(void) u8 mod; u8 div; s8 reqSpace; - + int i; - + for (i = 0; i < 0x80; i++) { div = i / 0x20; mod = i % 0x20; - - if ((gDmaBusyBitfield[div] & (1 << mod)) != FALSE) + + if ((sDmaBusyBitfield[div] & (1 << mod)) != FALSE) { reqSpace = CheckForSpaceForDma3Request(i); if (reqSpace == -1) { return TRUE; } - - gDmaBusyBitfield[div] &= ~(1 << mod); + + sDmaBusyBitfield[div] &= ~(1 << mod); } } @@ -517,7 +482,7 @@ _08001AE4:\n\ sub r0, r5, r0\n\ lsl r0, #24\n\ lsr r0, #24\n\ - ldr r1, =gDmaBusyBitfield\n\ + ldr r1, =sDmaBusyBitfield\n\ lsr r2, #22\n\ add r4, r2, r1\n\ mov r6, #0x1\n\ @@ -623,7 +588,7 @@ u16 GetBgAttribute(u8 bg, u8 attributeId) case 9: return GetBgType(bg); case 10: - return gGpuBgConfigs2[bg].baseTile; + return sGpuBgConfigs2[bg].baseTile; default: return -1; } @@ -634,48 +599,48 @@ u32 ChangeBgX(u8 bg, u32 value, u8 op) u8 mode; u16 temp1; u16 temp2; - + if (IsInvalidBg32(bg) != FALSE || GetBgControlAttribute(bg, BG_CTRL_ATTR_VISIBLE) == 0) { return -1; } - + switch (op) { case 0: default: - gGpuBgConfigs2[bg].bg_x = value; + sGpuBgConfigs2[bg].bg_x = value; break; case 1: - gGpuBgConfigs2[bg].bg_x += value; + sGpuBgConfigs2[bg].bg_x += value; break; case 2: - gGpuBgConfigs2[bg].bg_x -= value; + sGpuBgConfigs2[bg].bg_x -= value; break; } - + mode = GetBgMode(); - + switch (bg) { case 0: - temp1 = gGpuBgConfigs2[0].bg_x >> 0x8; + temp1 = sGpuBgConfigs2[0].bg_x >> 0x8; SetGpuReg(REG_OFFSET_BG0HOFS, temp1); break; case 1: - temp1 = gGpuBgConfigs2[1].bg_x >> 0x8; + temp1 = sGpuBgConfigs2[1].bg_x >> 0x8; SetGpuReg(REG_OFFSET_BG1HOFS, temp1); break; case 2: if (mode == 0) { - temp1 = gGpuBgConfigs2[2].bg_x >> 0x8; + temp1 = sGpuBgConfigs2[2].bg_x >> 0x8; SetGpuReg(REG_OFFSET_BG2HOFS, temp1); } else { - temp1 = gGpuBgConfigs2[2].bg_x >> 0x10; - temp2 = gGpuBgConfigs2[2].bg_x & 0xFFFF; + temp1 = sGpuBgConfigs2[2].bg_x >> 0x10; + temp2 = sGpuBgConfigs2[2].bg_x & 0xFFFF; SetGpuReg(REG_OFFSET_BG2X_H, temp1); SetGpuReg(REG_OFFSET_BG2X_L, temp2); } @@ -683,20 +648,20 @@ u32 ChangeBgX(u8 bg, u32 value, u8 op) case 3: if (mode == 0) { - temp1 = gGpuBgConfigs2[3].bg_x >> 0x8; + temp1 = sGpuBgConfigs2[3].bg_x >> 0x8; SetGpuReg(REG_OFFSET_BG3HOFS, temp1); } else if (mode == 2) { - temp1 = gGpuBgConfigs2[3].bg_x >> 0x10; - temp2 = gGpuBgConfigs2[3].bg_x & 0xFFFF; + temp1 = sGpuBgConfigs2[3].bg_x >> 0x10; + temp2 = sGpuBgConfigs2[3].bg_x & 0xFFFF; SetGpuReg(REG_OFFSET_BG3X_H, temp1); SetGpuReg(REG_OFFSET_BG3X_L, temp2); } break; } - - return gGpuBgConfigs2[bg].bg_x; + + return sGpuBgConfigs2[bg].bg_x; } u32 GetBgX(u8 bg) @@ -705,7 +670,7 @@ u32 GetBgX(u8 bg) return -1; if (GetBgControlAttribute(bg, BG_CTRL_ATTR_VISIBLE) == 0) return -1; - return gGpuBgConfigs2[bg].bg_x; + return sGpuBgConfigs2[bg].bg_x; } u32 ChangeBgY(u8 bg, u32 value, u8 op) @@ -713,48 +678,48 @@ u32 ChangeBgY(u8 bg, u32 value, u8 op) u8 mode; u16 temp1; u16 temp2; - + if (IsInvalidBg32(bg) != FALSE || GetBgControlAttribute(bg, BG_CTRL_ATTR_VISIBLE) == 0) { return -1; } - + switch (op) { case 0: default: - gGpuBgConfigs2[bg].bg_y = value; + sGpuBgConfigs2[bg].bg_y = value; break; case 1: - gGpuBgConfigs2[bg].bg_y += value; + sGpuBgConfigs2[bg].bg_y += value; break; case 2: - gGpuBgConfigs2[bg].bg_y -= value; + sGpuBgConfigs2[bg].bg_y -= value; break; } - + mode = GetBgMode(); - + switch (bg) { case 0: - temp1 = gGpuBgConfigs2[0].bg_y >> 0x8; + temp1 = sGpuBgConfigs2[0].bg_y >> 0x8; SetGpuReg(REG_OFFSET_BG0VOFS, temp1); break; case 1: - temp1 = gGpuBgConfigs2[1].bg_y >> 0x8; + temp1 = sGpuBgConfigs2[1].bg_y >> 0x8; SetGpuReg(REG_OFFSET_BG1VOFS, temp1); break; case 2: if (mode == 0) { - temp1 = gGpuBgConfigs2[2].bg_y >> 0x8; + temp1 = sGpuBgConfigs2[2].bg_y >> 0x8; SetGpuReg(REG_OFFSET_BG2VOFS, temp1); } else { - temp1 = gGpuBgConfigs2[2].bg_y >> 0x10; - temp2 = gGpuBgConfigs2[2].bg_y & 0xFFFF; + temp1 = sGpuBgConfigs2[2].bg_y >> 0x10; + temp2 = sGpuBgConfigs2[2].bg_y & 0xFFFF; SetGpuReg(REG_OFFSET_BG2Y_H, temp1); SetGpuReg(REG_OFFSET_BG2Y_L, temp2); } @@ -762,20 +727,20 @@ u32 ChangeBgY(u8 bg, u32 value, u8 op) case 3: if (mode == 0) { - temp1 = gGpuBgConfigs2[3].bg_y >> 0x8; + temp1 = sGpuBgConfigs2[3].bg_y >> 0x8; SetGpuReg(REG_OFFSET_BG3VOFS, temp1); } else if (mode == 2) { - temp1 = gGpuBgConfigs2[3].bg_y >> 0x10; - temp2 = gGpuBgConfigs2[3].bg_y & 0xFFFF; + temp1 = sGpuBgConfigs2[3].bg_y >> 0x10; + temp2 = sGpuBgConfigs2[3].bg_y & 0xFFFF; SetGpuReg(REG_OFFSET_BG3Y_H, temp1); SetGpuReg(REG_OFFSET_BG3Y_L, temp2); } break; } - - return gGpuBgConfigs2[bg].bg_y; + + return sGpuBgConfigs2[bg].bg_y; } u32 ChangeBgY_ScreenOff(u8 bg, u32 value, u8 op) @@ -783,49 +748,49 @@ u32 ChangeBgY_ScreenOff(u8 bg, u32 value, u8 op) u8 mode; u16 temp1; u16 temp2; - + if (IsInvalidBg32(bg) != FALSE || GetBgControlAttribute(bg, BG_CTRL_ATTR_VISIBLE) == 0) { return -1; } - + switch (op) { case 0: default: - gGpuBgConfigs2[bg].bg_y = value; + sGpuBgConfigs2[bg].bg_y = value; break; case 1: - gGpuBgConfigs2[bg].bg_y += value; + sGpuBgConfigs2[bg].bg_y += value; break; case 2: - gGpuBgConfigs2[bg].bg_y -= value; + sGpuBgConfigs2[bg].bg_y -= value; break; } - + mode = GetBgMode(); - + switch (bg) { case 0: - temp1 = gGpuBgConfigs2[0].bg_y >> 0x8; + temp1 = sGpuBgConfigs2[0].bg_y >> 0x8; SetGpuReg_ForcedBlank(REG_OFFSET_BG0VOFS, temp1); break; case 1: - temp1 = gGpuBgConfigs2[1].bg_y >> 0x8; + temp1 = sGpuBgConfigs2[1].bg_y >> 0x8; SetGpuReg_ForcedBlank(REG_OFFSET_BG1VOFS, temp1); break; case 2: if (mode == 0) { - temp1 = gGpuBgConfigs2[2].bg_y >> 0x8; + temp1 = sGpuBgConfigs2[2].bg_y >> 0x8; SetGpuReg_ForcedBlank(REG_OFFSET_BG2VOFS, temp1); - + } else { - temp1 = gGpuBgConfigs2[2].bg_y >> 0x10; - temp2 = gGpuBgConfigs2[2].bg_y & 0xFFFF; + temp1 = sGpuBgConfigs2[2].bg_y >> 0x10; + temp2 = sGpuBgConfigs2[2].bg_y & 0xFFFF; SetGpuReg_ForcedBlank(REG_OFFSET_BG2Y_H, temp1); SetGpuReg_ForcedBlank(REG_OFFSET_BG2Y_L, temp2); } @@ -833,20 +798,20 @@ u32 ChangeBgY_ScreenOff(u8 bg, u32 value, u8 op) case 3: if (mode == 0) { - temp1 = gGpuBgConfigs2[3].bg_y >> 0x8; + temp1 = sGpuBgConfigs2[3].bg_y >> 0x8; SetGpuReg_ForcedBlank(REG_OFFSET_BG3VOFS, temp1); } else if (mode == 2) { - temp1 = gGpuBgConfigs2[3].bg_y >> 0x10; - temp2 = gGpuBgConfigs2[3].bg_y & 0xFFFF; + temp1 = sGpuBgConfigs2[3].bg_y >> 0x10; + temp2 = sGpuBgConfigs2[3].bg_y & 0xFFFF; SetGpuReg_ForcedBlank(REG_OFFSET_BG3Y_H, temp1); SetGpuReg_ForcedBlank(REG_OFFSET_BG3Y_L, temp2); } break; } - - return gGpuBgConfigs2[bg].bg_y; + + return sGpuBgConfigs2[bg].bg_y; } u32 GetBgY(u8 bg) @@ -855,7 +820,7 @@ u32 GetBgY(u8 bg) return -1; if (GetBgControlAttribute(bg, BG_CTRL_ATTR_VISIBLE) == 0) return -1; - return gGpuBgConfigs2[bg].bg_y; + return sGpuBgConfigs2[bg].bg_y; } void SetBgAffine(u8 bg, u32 srcCenterX, u32 srcCenterY, s16 dispCenterX, s16 dispCenterY, s16 scaleX, s16 scaleY, u16 rotationAngle) @@ -868,13 +833,13 @@ u8 Unused_AdjustBgMosaic(u8 a1, u8 a2) u16 result; s16 test1; s16 test2; - + result = GetGpuReg(REG_OFFSET_MOSAIC); - + test1 = result & 0xF; test2 = (result >> 4) & 0xF; result &= 0xFF00; - + switch (a2) { case 0: @@ -929,12 +894,12 @@ u8 Unused_AdjustBgMosaic(u8 a1, u8 a2) } break; } - + result |= ((test2 << 0x4) & 0xF0); result |= (test1 & 0xF); - + SetGpuReg(REG_OFFSET_MOSAIC, result); - + return result; } @@ -942,7 +907,7 @@ void SetBgTilemapBuffer(u8 bg, void *tilemap) { if (IsInvalidBg32(bg) == FALSE && GetBgControlAttribute(bg, BG_CTRL_ATTR_VISIBLE) != 0x0) { - gGpuBgConfigs2[bg].tilemap = tilemap; + sGpuBgConfigs2[bg].tilemap = tilemap; } } @@ -950,7 +915,7 @@ void UnsetBgTilemapBuffer(u8 bg) { if (IsInvalidBg32(bg) == FALSE && GetBgControlAttribute(bg, BG_CTRL_ATTR_VISIBLE) != 0x0) { - gGpuBgConfigs2[bg].tilemap = NULL; + sGpuBgConfigs2[bg].tilemap = NULL; } } @@ -960,20 +925,20 @@ void* GetBgTilemapBuffer(u8 bg) return NULL; if (GetBgControlAttribute(bg, BG_CTRL_ATTR_VISIBLE) == 0) return NULL; - return gGpuBgConfigs2[bg].tilemap; + return sGpuBgConfigs2[bg].tilemap; } -void CopyToBgTilemapBuffer(u8 bg, void *src, u16 mode, u16 destOffset) +void CopyToBgTilemapBuffer(u8 bg, const void *src, u16 mode, u16 destOffset) { if (IsInvalidBg32(bg) == FALSE && IsTileMapOutsideWram(bg) == FALSE) { if (mode != 0) { - CpuCopy16(src, (void *)(gGpuBgConfigs2[bg].tilemap + (destOffset * 2)), mode); + CpuCopy16(src, (void *)(sGpuBgConfigs2[bg].tilemap + (destOffset * 2)), mode); } else { - LZ77UnCompWram(src, (void *)(gGpuBgConfigs2[bg].tilemap + (destOffset * 2))); + LZ77UnCompWram(src, (void *)(sGpuBgConfigs2[bg].tilemap + (destOffset * 2))); } } } @@ -981,7 +946,7 @@ void CopyToBgTilemapBuffer(u8 bg, void *src, u16 mode, u16 destOffset) void CopyBgTilemapBufferToVram(u8 bg) { u16 sizeToLoad; - + if (IsInvalidBg32(bg) == FALSE && IsTileMapOutsideWram(bg) == FALSE) { switch (GetBgType(bg)) @@ -996,7 +961,7 @@ void CopyBgTilemapBufferToVram(u8 bg) sizeToLoad = 0; break; } - LoadBgVram(bg, gGpuBgConfigs2[bg].tilemap, sizeToLoad, 0, 2); + LoadBgVram(bg, sGpuBgConfigs2[bg].tilemap, sizeToLoad, 0, 2); } } @@ -1006,7 +971,7 @@ void CopyToBgTilemapBufferRect(u8 bg, void* src, u8 destX, u8 destY, u8 width, u u16 destX16; u16 destY16; u16 mode; - + if (IsInvalidBg32(bg) == FALSE && IsTileMapOutsideWram(bg) == FALSE) { switch (GetBgType(bg)) @@ -1017,7 +982,7 @@ void CopyToBgTilemapBufferRect(u8 bg, void* src, u8 destX, u8 destY, u8 width, u { for (destX16 = destX; destX16 < (destX + width); destX16++) { - ((u16*)gGpuBgConfigs2[bg].tilemap)[((destY16 * 0x20) + destX16)] = *((u16*)srcCopy)++; + ((u16*)sGpuBgConfigs2[bg].tilemap)[((destY16 * 0x20) + destX16)] = *((u16*)srcCopy)++; } } break; @@ -1028,7 +993,7 @@ void CopyToBgTilemapBufferRect(u8 bg, void* src, u8 destX, u8 destY, u8 width, u { for (destX16 = destX; destX16 < (destX + width); destX16++) { - ((u8*)gGpuBgConfigs2[bg].tilemap)[((destY16 * mode) + destX16)] = *((u8*)srcCopy)++; + ((u8*)sGpuBgConfigs2[bg].tilemap)[((destY16 * mode) + destX16)] = *((u8*)srcCopy)++; } } break; @@ -1047,11 +1012,11 @@ void CopyRectToBgTilemapBufferRect(u8 bg, void* src, u8 srcX, u8 srcY, u8 srcWid u16 attribute; u16 mode; u16 mode2; - + void* srcCopy; u16 destX16; u16 destY16; - + if (IsInvalidBg32(bg) == FALSE && IsTileMapOutsideWram(bg) == FALSE) { attribute = GetBgControlAttribute(bg, BG_CTRL_ATTR_SCREENSIZE); @@ -1065,7 +1030,7 @@ void CopyRectToBgTilemapBufferRect(u8 bg, void* src, u8 srcX, u8 srcY, u8 srcWid { for (destX16 = destX; destX16 < (destX + rectWidth); destX16++) { - CopyTileMapEntry(&((u16*)srcCopy)[(srcY * rectWidth) + srcX], &((u16*)gGpuBgConfigs2[bg].tilemap)[GetTileMapIndexFromCoords(destX16, destY16, attribute, mode, mode2)], palette1, tileOffset, palette2); + CopyTileMapEntry(&((u16*)srcCopy)[(srcY * rectWidth) + srcX], &((u16*)sGpuBgConfigs2[bg].tilemap)[GetTileMapIndexFromCoords(destX16, destY16, attribute, mode, mode2)], palette1, tileOffset, palette2); } } break; @@ -1076,7 +1041,7 @@ void CopyRectToBgTilemapBufferRect(u8 bg, void* src, u8 srcX, u8 srcY, u8 srcWid { for (destX16 = destX; destX16 < (destX + rectWidth); destX16++) { - CopyTileMapEntry(&((u16*)srcCopy)[(srcY * rectWidth) + srcX], &((u16*)gGpuBgConfigs2[bg].tilemap)[GetTileMapIndexFromCoords(destX16, destY16, attribute, mode, mode2)], palette1, tileOffset, palette2); + CopyTileMapEntry(&((u16*)srcCopy)[(srcY * rectWidth) + srcX], &((u16*)sGpuBgConfigs2[bg].tilemap)[GetTileMapIndexFromCoords(destX16, destY16, attribute, mode, mode2)], palette1, tileOffset, palette2); } } break; @@ -1204,7 +1169,7 @@ _080025F8:\n\ bge _0800265A\n\ ldr r2, [sp, #0x4]\n\ lsl r0, r2, #4\n\ - ldr r1, =gGpuBgConfigs2+4\n\ + ldr r1, =sGpuBgConfigs2+4\n\ add r0, r1\n\ mov r10, r0\n\ ldr r7, [sp, #0x20]\n\ @@ -1276,7 +1241,7 @@ _08002674:\n\ sub r2, r7, r2\n\ str r2, [sp, #0x34]\n\ str r0, [sp, #0x38]\n\ - ldr r7, =gGpuBgConfigs2+4\n\ + ldr r7, =sGpuBgConfigs2+4\n\ mov r10, r7\n\ ldr r0, [sp, #0x4]\n\ lsl r0, #4\n\ @@ -1336,7 +1301,7 @@ void FillBgTilemapBufferRect_Palette0(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u16 x16; u16 y16; u16 mode; - + if (IsInvalidBg32(bg) == FALSE && IsTileMapOutsideWram(bg) == FALSE) { switch (GetBgType(bg)) @@ -1346,7 +1311,7 @@ void FillBgTilemapBufferRect_Palette0(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, { for (x16 = x; x16 < (x + width); x16++) { - ((u16*)gGpuBgConfigs2[bg].tilemap)[((y16 * 0x20) + x16)] = tileNum; + ((u16*)sGpuBgConfigs2[bg].tilemap)[((y16 * 0x20) + x16)] = tileNum; } } break; @@ -1356,7 +1321,7 @@ void FillBgTilemapBufferRect_Palette0(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, { for (x16 = x; x16 < (x + width); x16++) { - ((u8*)gGpuBgConfigs2[bg].tilemap)[((y16 * mode) + x16)] = tileNum; + ((u8*)sGpuBgConfigs2[bg].tilemap)[((y16 * mode) + x16)] = tileNum; } } break; @@ -1375,10 +1340,10 @@ void WriteSequenceToBgTilemapBuffer(u8 bg, u16 firstTileNum, u8 x, u8 y, u8 widt u16 mode2; u16 attribute; u16 mode3; - + u16 x16; u16 y16; - + if (IsInvalidBg32(bg) == FALSE && IsTileMapOutsideWram(bg) == FALSE) { attribute = GetBgControlAttribute(bg, BG_CTRL_ATTR_SCREENSIZE); @@ -1391,7 +1356,7 @@ void WriteSequenceToBgTilemapBuffer(u8 bg, u16 firstTileNum, u8 x, u8 y, u8 widt { for (x16 = x; x16 < (x + width); x16++) { - CopyTileMapEntry(&firstTileNum, &((u16*)gGpuBgConfigs2[bg].tilemap)[(u16)GetTileMapIndexFromCoords(x16, y16, attribute, mode, mode2)], paletteSlot, 0, 0); + CopyTileMapEntry(&firstTileNum, &((u16*)sGpuBgConfigs2[bg].tilemap)[(u16)GetTileMapIndexFromCoords(x16, y16, attribute, mode, mode2)], paletteSlot, 0, 0); firstTileNum = (firstTileNum & 0xFC00) + ((firstTileNum + tileNumDelta) & 0x3FF); } } @@ -1402,7 +1367,7 @@ void WriteSequenceToBgTilemapBuffer(u8 bg, u16 firstTileNum, u8 x, u8 y, u8 widt { for (x16 = x; x16 < (x + width); x16++) { - ((u8*)gGpuBgConfigs2[bg].tilemap)[(y16 * mode3) + x16] = firstTileNum; + ((u8*)sGpuBgConfigs2[bg].tilemap)[(y16 * mode3) + x16] = firstTileNum; firstTileNum = (firstTileNum & 0xFC00) + ((firstTileNum + tileNumDelta) & 0x3FF); } } @@ -1414,9 +1379,9 @@ void WriteSequenceToBgTilemapBuffer(u8 bg, u16 firstTileNum, u8 x, u8 y, u8 widt u16 GetBgMetricTextMode(u8 bg, u8 whichMetric) { u8 attribute; - + attribute = GetBgControlAttribute(bg, BG_CTRL_ATTR_SCREENSIZE); - + switch (whichMetric) { case 0: @@ -1462,9 +1427,9 @@ u16 GetBgMetricTextMode(u8 bg, u8 whichMetric) u32 GetBgMetricAffineMode(u8 bg, u8 whichMetric) { u8 attribute; - + attribute = GetBgControlAttribute(bg, BG_CTRL_ATTR_SCREENSIZE); - + switch (whichMetric) { case 0: @@ -1491,7 +1456,7 @@ u32 GetTileMapIndexFromCoords(s32 x, s32 y, s32 screenSize, u32 screenWidth, u32 { x = x & (screenWidth - 1); y = y & (screenHeight - 1); - + switch (screenSize) { case 0: @@ -1526,7 +1491,7 @@ void CopyTileMapEntry(u16 *src, u16 *dest, s32 palette1, u32 tileOffset, u32 pal test = ((*dest & 0xFC00) + (palette2 << 12)) | ((*src + tileOffset) & 0x3FF); break; } - + *dest = test; } #else @@ -1586,10 +1551,10 @@ _08002B3C:\n\ u32 GetBgType(u8 bg) { u8 mode; - + mode = GetBgMode(); - - + + switch (bg) { case 0: @@ -1621,7 +1586,7 @@ u32 GetBgType(u8 bg) } break; } - + return 0xFFFF; } @@ -1634,9 +1599,9 @@ bool32 IsInvalidBg32(u8 bg) bool32 IsTileMapOutsideWram(u8 bg) { - if (gGpuBgConfigs2[bg].tilemap > (void*)IWRAM_END) + if (sGpuBgConfigs2[bg].tilemap > (void*)IWRAM_END) return TRUE; - if (gGpuBgConfigs2[bg].tilemap == 0x0) + if (sGpuBgConfigs2[bg].tilemap == 0x0) return TRUE; return FALSE; } diff --git a/src/calculate_base_damage.c b/src/calculate_base_damage.c index 105b334f2..8996059f9 100644 --- a/src/calculate_base_damage.c +++ b/src/calculate_base_damage.c @@ -19,7 +19,6 @@ extern struct BattleEnigmaBerry gEnigmaBerries[]; extern u16 gBattleMovePower; extern u16 gTrainerBattleOpponent_A; -u8 CountAliveMonsInBattle(u8); bool8 ShouldGetStatBadgeBoost(u16 flagId, u8 bank); extern const struct BattleMove gBattleMoves[]; diff --git a/src/coins.c b/src/coins.c index 84a79f5f2..4ee601b22 100644 --- a/src/coins.c +++ b/src/coins.c @@ -4,14 +4,13 @@ #include "window.h" #include "text_window.h" #include "string_util.h" +#include "menu.h" #define MAX_COINS 9999 EWRAM_DATA u8 sCoinsWindowId = 0; extern s32 GetStringRightAlignXOffset(u8 fontId, u8 *str, s32 totalWidth); -extern void SetWindowTemplateFields(struct WindowTemplate* template, u8 priority, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 palNum, u16 baseBlock); -extern void SetWindowBorderStyle(u8 windowId, bool8 copyToVram, s16 tileStart, s8 palette); extern void sub_819746C(u8 windowId, bool8 copyToVram); extern const u8 gText_Coins[]; diff --git a/src/dma3_manager.c b/src/dma3_manager.c index 6d12dec05..bb015c5cf 100644 --- a/src/dma3_manager.c +++ b/src/dma3_manager.c @@ -1,12 +1,23 @@ #include "global.h" #include "dma3.h" +IWRAM_DATA struct { + /* 0x00 */ const u8 *src; + /* 0x04 */ u8 *dest; + /* 0x08 */ u16 size; + /* 0x0A */ u16 mode; + /* 0x0C */ u32 value; +} gDma3Requests[128]; + +static bool8 gDma3ManagerLocked; +static u8 gDma3RequestCursor; + void ClearDma3Requests(void) { int i; gDma3ManagerLocked = TRUE; - gDma3RequestCursor = FALSE; + gDma3RequestCursor = 0; for(i = 0; i < (u8)ARRAY_COUNT(gDma3Requests); i++) { @@ -14,7 +25,7 @@ void ClearDma3Requests(void) gDma3Requests[i].src = 0; gDma3Requests[i].dest = 0; } - + gDma3ManagerLocked = FALSE; } @@ -22,9 +33,8 @@ void ClearDma3Requests(void) void ProcessDma3Requests(void) { // NOTE: the fillerA member of the DMA struct is actually u32 value; - // NOTE: gUnknown_0300001C is just a pointer inside the gDma3Requests structure, not a true symbol; feel free to remove u16 total_size; - + if (gDma3ManagerLocked) return; @@ -34,7 +44,7 @@ void ProcessDma3Requests(void) while (gDma3Requests[gDma3RequestCursor].size) { total_size += gDma3Requests[gDma3RequestCursor].size; - + if (total_size > 0xA000) return; // don't do too much at once @@ -90,14 +100,14 @@ void ProcessDma3Requests(void) } DmaFill16(3, gDma3Requests[gDma3RequestCursor].value, gDma3Requests[gDma3RequestCursor].dest, gDma3Requests[gDma3RequestCursor].size); break; - } - gDma3Requests[gDma3RequestCursor].src = 0; - gDma3Requests[gDma3RequestCursor].dest = 0; + } + gDma3Requests[gDma3RequestCursor].src = NULL; + gDma3Requests[gDma3RequestCursor].dest = NULL; gDma3Requests[gDma3RequestCursor].size = 0; gDma3Requests[gDma3RequestCursor].mode = 0; gDma3Requests[gDma3RequestCursor].value = 0; gDma3RequestCursor++; - + if (gDma3RequestCursor >= 128) // loop back to the first DMA request gDma3RequestCursor = 0; } @@ -331,7 +341,7 @@ _08000DB2:\n\ mov r5, r12\n\ ldrb r0, [r5]\n\ lsls r0, 4\n\ - ldr r3, =gUnknown_0300001C\n\ + ldr r3, =gDma3Requests + 0x0C\n\ adds r0, r3\n\ ldr r0, [r0]\n\ strh r0, [r1]\n\ @@ -347,7 +357,7 @@ _08000DB2:\n\ bhi _08000DB2\n\ ldrb r0, [r5]\n\ lsls r0, 4\n\ - ldr r5, =gUnknown_0300001C\n\ + ldr r5, =gDma3Requests + 0x0C\n\ adds r0, r5\n\ ldr r0, [r0]\n\ strh r0, [r1]\n\ @@ -419,13 +429,13 @@ _08000E46:\n\ } #endif -int RequestDma3Copy(void *src, void *dest, u16 size, u8 mode) +int RequestDma3Copy(const void *src, void *dest, u16 size, u8 mode) { int cursor; int var = 0; - + gDma3ManagerLocked = 1; - + cursor = gDma3RequestCursor; while(1) { @@ -434,12 +444,12 @@ int RequestDma3Copy(void *src, void *dest, u16 size, u8 mode) gDma3Requests[cursor].src = src; gDma3Requests[cursor].dest = dest; gDma3Requests[cursor].size = size; - + if(mode == 1) gDma3Requests[cursor].mode = mode; else gDma3Requests[cursor].mode = 3; - + gDma3ManagerLocked = FALSE; return (s16)cursor; } @@ -460,10 +470,10 @@ int RequestDma3Fill(s32 value, void *dest, u16 size, u8 mode) { int cursor; int var = 0; - + cursor = gDma3RequestCursor; gDma3ManagerLocked = 1; - + while(1) { if(!gDma3Requests[cursor].size) @@ -477,7 +487,7 @@ int RequestDma3Fill(s32 value, void *dest, u16 size, u8 mode) gDma3Requests[cursor].mode = 2; else gDma3Requests[cursor].mode = 4; - + gDma3ManagerLocked = FALSE; return (s16)cursor; } @@ -503,9 +513,9 @@ int CheckForSpaceForDma3Request(s16 index) for (; current < 0x80; current ++) if (gDma3Requests[current].size) return -1; - + return 0; - } + } if (gDma3Requests[index].size) return -1; diff --git a/src/egg_hatch.c b/src/egg_hatch.c new file mode 100644 index 000000000..6d14e92f0 --- /dev/null +++ b/src/egg_hatch.c @@ -0,0 +1,893 @@ +#include "global.h" +#include "pokemon.h" +#include "pokedex.h" +#include "items.h" +#include "script.h" +#include "decompress.h" +#include "task.h" +#include "palette.h" +#include "main.h" +#include "event_data.h" +#include "sound.h" +#include "songs.h" +#include "text.h" +#include "text_window.h" +#include "string_util.h" +#include "menu.h" +#include "trig.h" +#include "rng.h" +#include "malloc.h" +#include "dma3.h" +#include "gpu_regs.h" +#include "bg.h" +#include "m4a.h" +#include "window.h" +#include "abilities.h" +#include "battle.h" // to get rid of later + +struct EggHatchData +{ + u8 eggSpriteID; + u8 pokeSpriteID; + u8 CB2_state; + u8 CB2_PalCounter; + u8 eggPartyID; + u8 unused_5; + u8 unused_6; + u8 eggShardVelocityID; + u8 windowId; + u8 unused_9; + u8 unused_A; + u16 species; + struct TextColor textColor; +}; + +extern struct SpriteTemplate gUnknown_0202499C; +extern void (*gFieldCallback)(void); + +extern const struct CompressedSpriteSheet gMonFrontPicTable[]; +extern const u8 gUnknown_08C00000[]; +extern const u8 gUnknown_08C00524[]; +extern const u8 gUnknown_08C004E0[]; +extern const u16 gUnknown_08DD7300[]; // palette, gameboy advance +extern const u32 gUnknown_08DD7360[]; // tileset gameboy advance +extern const u32 gUnknown_08331F60[]; // tilemap gameboy circle +extern const u8 gText_HatchedFromEgg[]; +extern const u8 gText_NickHatchPrompt[]; + +extern u8* GetMonNick(struct Pokemon* mon, u8* dst); +extern u8* GetBoxMonNick(struct BoxPokemon* boxMon, u8* dst); +extern u8 sav1_map_get_name(void); +extern s8 sub_8198C58(void); +extern void sub_81DB5E8(u8* str1, u8* str2, u8); +extern void sub_806A068(u16, u8); +extern void fade_screen(u8, u8); +extern void overworld_free_bg_tilemaps(void); +extern void sub_80AF168(void); +extern void init_uns_table_pokemon_copy(void); +extern void sub_805F094(void); +extern void remove_some_task(void); +extern void reset_temp_tile_data_buffers(void); +extern void c2_exit_to_overworld_2_switch(void); +extern void play_some_sound(void); +extern void copy_decompressed_tile_data_to_vram_autofree(u8 bg_id, const void* src, u16 size, u16 offset, u8 mode); +extern void CreateYesNoMenu(const struct WindowTemplate*, u16, u8, u8); +extern void DoNamingScreen(u8, const u8*, u16, u8, u32, MainCallback); +extern void AddTextPrinterParametrized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, struct TextColor* colors, s8 speed, u8 *str); +extern u16 sub_80D22D0(void); +extern u8 sub_80C7050(u8); + +static void Task_EggHatch(u8 taskID); +static void CB2_EggHatch_0(void); +static void CB2_EggHatch_1(void); +static void SpriteCB_Egg_0(struct Sprite* sprite); +static void SpriteCB_Egg_1(struct Sprite* sprite); +static void SpriteCB_Egg_2(struct Sprite* sprite); +static void SpriteCB_Egg_3(struct Sprite* sprite); +static void SpriteCB_Egg_4(struct Sprite* sprite); +static void SpriteCB_Egg_5(struct Sprite* sprite); +static void SpriteCB_EggShard(struct Sprite* sprite); +static void EggHatchPrintMessage(u8 windowId, u8* string, u8 x, u8 y, u8 speed); +static void CreateRandomEggShardSprite(void); +static void CreateEggShardSprite(u8 x, u8 y, s16 data1, s16 data2, s16 data3, u8 spriteAnimIndex); + +// IWRAM bss +static IWRAM_DATA struct EggHatchData* sEggHatchData; + +// rom data +static const u16 sEggPalette[] = INCBIN_U16("graphics/pokemon/palettes/egg_palette.gbapal"); +static const u8 sEggHatchTiles[] = INCBIN_U8("graphics/misc/egg_hatch.4bpp"); +static const u8 sEggShardTiles[] = INCBIN_U8("graphics/misc/egg_shard.4bpp"); + +static const struct OamData sOamData_EggHatch = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 2, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; + +static const union AnimCmd sSpriteAnim_EggHatch0[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_EggHatch1[] = +{ + ANIMCMD_FRAME(16, 5), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_EggHatch2[] = +{ + ANIMCMD_FRAME(32, 5), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_EggHatch3[] = +{ + ANIMCMD_FRAME(48, 5), + ANIMCMD_END +}; + +static const union AnimCmd *const sSpriteAnimTable_EggHatch[] = +{ + sSpriteAnim_EggHatch0, + sSpriteAnim_EggHatch1, + sSpriteAnim_EggHatch2, + sSpriteAnim_EggHatch3, +}; + +static const struct SpriteSheet sEggHatch_Sheet = +{ + .data = sEggHatchTiles, + .size = 2048, + .tag = 12345, +}; + +static const struct SpriteSheet sEggShards_Sheet = +{ + .data = sEggShardTiles, + .size = 128, + .tag = 23456, +}; + +static const struct SpritePalette sEgg_SpritePalette = +{ + .data = sEggPalette, + .tag = 54321 +}; + +static const struct SpriteTemplate sSpriteTemplate_EggHatch = +{ + .tileTag = 12345, + .paletteTag = 54321, + .oam = &sOamData_EggHatch, + .anims = sSpriteAnimTable_EggHatch, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +static const struct OamData sOamData_EggShard = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 2, + .paletteNum = 0, + .affineParam = 0, +}; + +static const union AnimCmd sSpriteAnim_EggShard0[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_EggShard1[] = +{ + ANIMCMD_FRAME(1, 5), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_EggShard2[] = +{ + ANIMCMD_FRAME(2, 5), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_EggShard3[] = +{ + ANIMCMD_FRAME(3, 5), + ANIMCMD_END +}; + +static const union AnimCmd *const sSpriteAnimTable_EggShard[] = +{ + sSpriteAnim_EggShard0, + sSpriteAnim_EggShard1, + sSpriteAnim_EggShard2, + sSpriteAnim_EggShard3, +}; + +static const struct SpriteTemplate sSpriteTemplate_EggShard = +{ + .tileTag = 23456, + .paletteTag = 54321, + .oam = &sOamData_EggShard, + .anims = sSpriteAnimTable_EggShard, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_EggShard +}; + +static const struct BgTemplate sBgTemplates_EggHatch[2] = +{ + { + .bg = 0, + .charBaseIndex = 2, + .mapBaseIndex = 24, + .screenSize = 3, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + }, + + { + .bg = 1, + .charBaseIndex = 0, + .mapBaseIndex = 8, + .screenSize = 1, + .paletteMode = 0, + .priority = 2, + .baseTile = 0 + }, +}; + +static const struct WindowTemplate sWinTemplates_EggHatch[2] = +{ + {0, 2, 0xF, 0x1A, 4, 0, 0x40}, + DUMMY_WIN_TEMPLATE +}; + +static const struct WindowTemplate sYesNoWinTemplate = +{ + 0, 0x15, 9, 5, 4, 0xF, 0x1A8 +}; + +static const s16 sEggShardVelocities[][2] = +{ + {Q_8_8(-1.5), Q_8_8(-3.75)}, + {Q_8_8(-5), Q_8_8(-3)}, + {Q_8_8(3.5), Q_8_8(-3)}, + {Q_8_8(-4), Q_8_8(-3.75)}, + {Q_8_8(2), Q_8_8(-1.5)}, + {Q_8_8(-0.5), Q_8_8(-6.75)}, + {Q_8_8(5), Q_8_8(-2.25)}, + {Q_8_8(-1.5), Q_8_8(-3.75)}, + {Q_8_8(4.5), Q_8_8(-1.5)}, + {Q_8_8(-1), Q_8_8(-6.75)}, + {Q_8_8(4), Q_8_8(-2.25)}, + {Q_8_8(-3.5), Q_8_8(-3.75)}, + {Q_8_8(1), Q_8_8(-1.5)}, + {Q_8_8(-3.515625), Q_8_8(-6.75)}, + {Q_8_8(4.5), Q_8_8(-2.25)}, + {Q_8_8(-0.5), Q_8_8(-7.5)}, + {Q_8_8(1), Q_8_8(-4.5)}, + {Q_8_8(-2.5), Q_8_8(-2.25)}, + {Q_8_8(2.5), Q_8_8(-7.5)}, +}; + +// code + +static void CreatedHatchedMon(struct Pokemon *egg, struct Pokemon *temp) +{ + u16 species; + u32 personality, pokerus; + u8 i, friendship, language, gameMet, markings, obedience; + u16 moves[4]; + u32 ivs[6]; + + + species = GetMonData(egg, MON_DATA_SPECIES); + + for (i = 0; i < 4; i++) + { + moves[i] = GetMonData(egg, MON_DATA_MOVE1 + i); + } + + personality = GetMonData(egg, MON_DATA_PERSONALITY); + + for (i = 0; i < 6; i++) + { + ivs[i] = GetMonData(egg, MON_DATA_HP_IV + i); + } + + language = GetMonData(egg, MON_DATA_LANGUAGE); + gameMet = GetMonData(egg, MON_DATA_MET_GAME); + markings = GetMonData(egg, MON_DATA_MARKINGS); + pokerus = GetMonData(egg, MON_DATA_POKERUS); + obedience = GetMonData(egg, MON_DATA_OBEDIENCE); + + CreateMon(temp, species, 5, 32, TRUE, personality, 0, 0); + + for (i = 0; i < 4; i++) + { + SetMonData(temp, MON_DATA_MOVE1 + i, &moves[i]); + } + + for (i = 0; i < 6; i++) + { + SetMonData(temp, MON_DATA_HP_IV + i, &ivs[i]); + } + + language = GAME_LANGUAGE; + SetMonData(temp, MON_DATA_LANGUAGE, &language); + SetMonData(temp, MON_DATA_MET_GAME, &gameMet); + SetMonData(temp, MON_DATA_MARKINGS, &markings); + + friendship = 120; + SetMonData(temp, MON_DATA_FRIENDSHIP, &friendship); + SetMonData(temp, MON_DATA_POKERUS, &pokerus); + SetMonData(temp, MON_DATA_OBEDIENCE, &obedience); + + *egg = *temp; +} + +static void AddHatchedMonToParty(u8 id) +{ + u8 isEgg = 0x46; // ? + u16 pokeNum; + u8 name[12]; + u16 ball; + u16 caughtLvl; + u8 mapNameID; + struct Pokemon* mon = &gPlayerParty[id]; + + CreatedHatchedMon(mon, &gEnemyParty[0]); + SetMonData(mon, MON_DATA_IS_EGG, &isEgg); + + pokeNum = GetMonData(mon, MON_DATA_SPECIES); + GetSpeciesName(name, pokeNum); + SetMonData(mon, MON_DATA_NICKNAME, name); + + pokeNum = SpeciesToNationalPokedexNum(pokeNum); + GetSetPokedexFlag(pokeNum, FLAG_SET_SEEN); + GetSetPokedexFlag(pokeNum, FLAG_SET_CAUGHT); + + GetMonNick(mon, gStringVar1); + + ball = ITEM_POKE_BALL; + SetMonData(mon, MON_DATA_POKEBALL, &ball); + + caughtLvl = 0; + SetMonData(mon, MON_DATA_MET_LEVEL, &caughtLvl); + + mapNameID = sav1_map_get_name(); + SetMonData(mon, MON_DATA_MET_LOCATION, &mapNameID); + + MonRestorePP(mon); + CalculateMonStats(mon); +} + +void ScriptHatchMon(void) +{ + AddHatchedMonToParty(gSpecialVar_0x8004); +} + +static bool8 sub_807158C(struct DaycareData* daycare, u8 daycareId) +{ + u8 nick[0x20]; + struct DaycareMon* daycareMon = &daycare->mons[daycareId]; + + GetBoxMonNick(&daycareMon->mon, nick); + if (daycareMon->mail.itemId != 0 + && (StringCompareWithoutExtCtrlCodes(nick, daycareMon->monName) != 0 + || StringCompareWithoutExtCtrlCodes(gSaveBlock2Ptr->playerName, daycareMon->OT_name) != 0)) + { + StringCopy(gStringVar1, nick); + sub_81DB5E8(gStringVar2, daycareMon->OT_name, daycareMon->language_maybe); + sub_81DB5E8(gStringVar3, daycareMon->monName, daycareMon->unknown); + return TRUE; + } + return FALSE; +} + +bool8 sub_8071614(void) +{ + return sub_807158C(&gSaveBlock1Ptr->daycare, gSpecialVar_0x8004); +} + +static u8 EggHatchCreateMonSprite(u8 a0, u8 switchID, u8 pokeID, u16* speciesLoc) +{ + u8 r5 = 0; + u8 spriteID = 0; + struct Pokemon* mon = NULL; + + if (a0 == 0) + { + mon = &gPlayerParty[pokeID]; + r5 = 1; + } + if (a0 == 1) + { + mon = &gPlayerParty[pokeID]; + r5 = 3; + } + switch (switchID) + { + case 0: + { + u16 species = GetMonData(mon, MON_DATA_SPECIES); + u32 pid = GetMonData(mon, MON_DATA_PERSONALITY); + HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species], + gBattleSpritesGfx->sprites[(a0 * 2) + 1], + species, pid); + LoadCompressedObjectPalette(sub_806E794(mon)); + *speciesLoc = species; + } + break; + case 1: + sub_806A068(sub_806E794(mon)->tag, r5); + spriteID = CreateSprite(&gUnknown_0202499C, 120, 75, 6); + gSprites[spriteID].invisible = 1; + gSprites[spriteID].callback = SpriteCallbackDummy; + break; + } + return spriteID; +} + +static void VBlankCB_EggHatch(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +static void EggHatch(void) +{ + ScriptContext2_Enable(); + CreateTask(Task_EggHatch, 10); + fade_screen(1, 0); +} + +static void Task_EggHatch(u8 taskID) +{ + if (!gPaletteFade.active) + { + overworld_free_bg_tilemaps(); + SetMainCallback2(CB2_EggHatch_0); + gFieldCallback = sub_80AF168; + DestroyTask(taskID); + } +} + +static void CB2_EggHatch_0(void) +{ + switch (gMain.state) + { + case 0: + SetGpuReg(REG_OFFSET_DISPCNT, 0); + + sEggHatchData = Alloc(sizeof(struct EggHatchData)); + init_uns_table_pokemon_copy(); + sEggHatchData->eggPartyID = gSpecialVar_0x8004; + sEggHatchData->eggShardVelocityID = 0; + + SetVBlankCallback(VBlankCB_EggHatch); + gSpecialVar_0x8005 = GetCurrentMapMusic(); + + reset_temp_tile_data_buffers(); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, sBgTemplates_EggHatch, ARRAY_COUNT(sBgTemplates_EggHatch)); + + ChangeBgX(1, 0, 0); + ChangeBgY(1, 0, 0); + ChangeBgX(0, 0, 0); + ChangeBgY(0, 0, 0); + + SetBgAttribute(1, BG_CTRL_ATTR_MOSAIC, 2); + SetBgTilemapBuffer(1, Alloc(0x1000)); + SetBgTilemapBuffer(0, Alloc(0x2000)); + + DeactivateAllTextPrinters(); + ResetPaletteFade(); + FreeAllSpritePalettes(); + ResetSpriteData(); + ResetTasks(); + remove_some_task(); + m4aSoundVSyncOn(); + gMain.state++; + break; + case 1: + InitWindows(sWinTemplates_EggHatch); + sEggHatchData->windowId = 0; + gMain.state++; + break; + case 2: + copy_decompressed_tile_data_to_vram_autofree(0, gUnknown_08C00000, 0, 0, 0); + CopyToBgTilemapBuffer(0, gUnknown_08C00524, 0, 0); + LoadCompressedPalette(gUnknown_08C004E0, 0, 0x20); + gMain.state++; + break; + case 3: + LoadSpriteSheet(&sEggHatch_Sheet); + LoadSpriteSheet(&sEggShards_Sheet); + LoadSpritePalette(&sEgg_SpritePalette); + gMain.state++; + break; + case 4: + CopyBgTilemapBufferToVram(0); + AddHatchedMonToParty(sEggHatchData->eggPartyID); + gMain.state++; + break; + case 5: + EggHatchCreateMonSprite(0, 0, sEggHatchData->eggPartyID, &sEggHatchData->species); + gMain.state++; + break; + case 6: + sEggHatchData->pokeSpriteID = EggHatchCreateMonSprite(0, 1, sEggHatchData->eggPartyID, &sEggHatchData->species); + gMain.state++; + break; + case 7: + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); + LoadPalette(gUnknown_08DD7300, 0x10, 0xA0); + LoadBgTiles(1, gUnknown_08DD7360, 0x1420, 0); + CopyToBgTilemapBuffer(1, gUnknown_08331F60, 0x1000, 0); + CopyBgTilemapBufferToVram(1); + gMain.state++; + break; + case 8: + SetMainCallback2(CB2_EggHatch_1); + sEggHatchData->CB2_state = 0; + break; + } + RunTasks(); + RunTextPrinters(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); +} + +static void EggHatchSetMonNickname(void) +{ + SetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, gStringVar3); + sub_805F094(); + Free(sEggHatchData); + SetMainCallback2(c2_exit_to_overworld_2_switch); +} + +static void Task_EggHatchPlayBGM(u8 taskID) +{ + if (gTasks[taskID].data[0] == 0) + { + StopMapMusic(); + play_some_sound(); + } + if (gTasks[taskID].data[0] == 1) + PlayBGM(376); + if (gTasks[taskID].data[0] > 60) + { + PlayBGM(377); + DestroyTask(taskID); + // UB: task is destroyed, yet the value is incremented + } + gTasks[taskID].data[0]++; +} + +static void CB2_EggHatch_1(void) +{ + u16 species; + u8 gender; + u32 personality; + + switch (sEggHatchData->CB2_state) + { + case 0: + BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); + sEggHatchData->eggSpriteID = CreateSprite(&sSpriteTemplate_EggHatch, 120, 75, 5); + ShowBg(0); + ShowBg(1); + sEggHatchData->CB2_state++; + CreateTask(Task_EggHatchPlayBGM, 5); + break; + case 1: + if (!gPaletteFade.active) + { + FillWindowPixelBuffer(sEggHatchData->windowId, 0); + sEggHatchData->CB2_PalCounter = 0; + sEggHatchData->CB2_state++; + } + break; + case 2: + if (++sEggHatchData->CB2_PalCounter > 30) + { + sEggHatchData->CB2_state++; + gSprites[sEggHatchData->eggSpriteID].callback = SpriteCB_Egg_0; + } + break; + case 3: + if (gSprites[sEggHatchData->eggSpriteID].callback == SpriteCallbackDummy) + { + species = GetMonData(&gPlayerParty[sEggHatchData->eggPartyID], MON_DATA_SPECIES); + DoMonFrontSpriteAnimation(&gSprites[sEggHatchData->pokeSpriteID], species, FALSE, 1); + sEggHatchData->CB2_state++; + } + break; + case 4: + if (gSprites[sEggHatchData->pokeSpriteID].callback == SpriteCallbackDummy) + { + sEggHatchData->CB2_state++; + } + break; + case 5: + GetMonNick(&gPlayerParty[sEggHatchData->eggPartyID], gStringVar1); + StringExpandPlaceholders(gStringVar4, gText_HatchedFromEgg); + EggHatchPrintMessage(sEggHatchData->windowId, gStringVar4, 0, 3, 0xFF); + PlayFanfare(371); + sEggHatchData->CB2_state++; + PutWindowTilemap(sEggHatchData->windowId); + CopyWindowToVram(sEggHatchData->windowId, 3); + break; + case 6: + if (IsFanfareTaskInactive()) + sEggHatchData->CB2_state++; + break; + case 7: + if (IsFanfareTaskInactive()) + sEggHatchData->CB2_state++; + break; + case 8: + GetMonNick(&gPlayerParty[sEggHatchData->eggPartyID], gStringVar1); + StringExpandPlaceholders(gStringVar4, gText_NickHatchPrompt); + EggHatchPrintMessage(sEggHatchData->windowId, gStringVar4, 0, 2, 1); + sEggHatchData->CB2_state++; + break; + case 9: + if (!IsTextPrinterActive(sEggHatchData->windowId)) + { + sub_809882C(sEggHatchData->windowId, 0x140, 0xE0); + CreateYesNoMenu(&sYesNoWinTemplate, 0x140, 0xE, 0); + sEggHatchData->CB2_state++; + } + break; + case 10: + switch (sub_8198C58()) + { + case 0: + GetMonNick(&gPlayerParty[sEggHatchData->eggPartyID], gStringVar3); + species = GetMonData(&gPlayerParty[sEggHatchData->eggPartyID], MON_DATA_SPECIES); + gender = GetMonGender(&gPlayerParty[sEggHatchData->eggPartyID]); + personality = GetMonData(&gPlayerParty[sEggHatchData->eggPartyID], MON_DATA_PERSONALITY, 0); + DoNamingScreen(3, gStringVar3, species, gender, personality, EggHatchSetMonNickname); + break; + case 1: + case -1: + sEggHatchData->CB2_state++; + } + break; + case 11: + BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); + sEggHatchData->CB2_state++; + break; + case 12: + if (!gPaletteFade.active) + { + sub_805F094(); + RemoveWindow(sEggHatchData->windowId); + UnsetBgTilemapBuffer(0); + UnsetBgTilemapBuffer(1); + Free(sEggHatchData); + SetMainCallback2(c2_exit_to_overworld_2_switch); + } + break; + } + + RunTasks(); + RunTextPrinters(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); +} + +static void SpriteCB_Egg_0(struct Sprite* sprite) +{ + if (++sprite->data0 > 20) + { + sprite->callback = SpriteCB_Egg_1; + sprite->data0 = 0; + } + else + { + sprite->data1 = (sprite->data1 + 20) & 0xFF; + sprite->pos2.x = Sin(sprite->data1, 1); + if (sprite->data0 == 15) + { + PlaySE(SE_BOWA); + StartSpriteAnim(sprite, 1); + CreateRandomEggShardSprite(); + } + } +} + +static void SpriteCB_Egg_1(struct Sprite* sprite) +{ + if (++sprite->data2 > 30) + { + if (++sprite->data0 > 20) + { + sprite->callback = SpriteCB_Egg_2; + sprite->data0 = 0; + sprite->data2 = 0; + } + else + { + sprite->data1 = (sprite->data1 + 20) & 0xFF; + sprite->pos2.x = Sin(sprite->data1, 2); + if (sprite->data0 == 15) + { + PlaySE(SE_BOWA); + StartSpriteAnim(sprite, 2); + } + } + } +} + +static void SpriteCB_Egg_2(struct Sprite* sprite) +{ + if (++sprite->data2 > 30) + { + if (++sprite->data0 > 38) + { + u16 species; + + sprite->callback = SpriteCB_Egg_3; + sprite->data0 = 0; + species = GetMonData(&gPlayerParty[sEggHatchData->eggPartyID], MON_DATA_SPECIES); + gSprites[sEggHatchData->pokeSpriteID].pos2.x = 0; + gSprites[sEggHatchData->pokeSpriteID].pos2.y = 0; + } + else + { + sprite->data1 = (sprite->data1 + 20) & 0xFF; + sprite->pos2.x = Sin(sprite->data1, 2); + if (sprite->data0 == 15) + { + PlaySE(SE_BOWA); + StartSpriteAnim(sprite, 2); + CreateRandomEggShardSprite(); + CreateRandomEggShardSprite(); + } + if (sprite->data0 == 30) + PlaySE(SE_BOWA); + } + } +} + +static void SpriteCB_Egg_3(struct Sprite* sprite) +{ + if (++sprite->data0 > 50) + { + sprite->callback = SpriteCB_Egg_4; + sprite->data0 = 0; + } +} + +static void SpriteCB_Egg_4(struct Sprite* sprite) +{ + s16 i; + if (sprite->data0 == 0) + BeginNormalPaletteFade(-1, -1, 0, 0x10, 0xFFFF); + if (sprite->data0 < 4u) + { + for (i = 0; i <= 3; i++) + CreateRandomEggShardSprite(); + } + sprite->data0++; + if (!gPaletteFade.active) + { + PlaySE(SE_TAMAGO); + sprite->invisible = 1; + sprite->callback = SpriteCB_Egg_5; + sprite->data0 = 0; + } +} + +static void SpriteCB_Egg_5(struct Sprite* sprite) +{ + if (sprite->data0 == 0) + { + gSprites[sEggHatchData->pokeSpriteID].invisible = 0; + StartSpriteAffineAnim(&gSprites[sEggHatchData->pokeSpriteID], 1); + } + if (sprite->data0 == 8) + BeginNormalPaletteFade(-1, -1, 0x10, 0, 0xFFFF); + if (sprite->data0 <= 9) + gSprites[sEggHatchData->pokeSpriteID].pos1.y -= 1; + if (sprite->data0 > 40) + sprite->callback = SpriteCallbackDummy; + sprite->data0++; +} + +static void SpriteCB_EggShard(struct Sprite* sprite) +{ + sprite->data4 += sprite->data1; + sprite->data5 += sprite->data2; + + sprite->pos2.x = sprite->data4 / 256; + sprite->pos2.y = sprite->data5 / 256; + + sprite->data2 += sprite->data3; + + if (sprite->pos1.y + sprite->pos2.y > sprite->pos1.y + 20 && sprite->data2 > 0) + DestroySprite(sprite); +} + +static void CreateRandomEggShardSprite(void) +{ + u16 spriteAnimIndex; + + s16 velocity1 = sEggShardVelocities[sEggHatchData->eggShardVelocityID][0]; + s16 velocity2 = sEggShardVelocities[sEggHatchData->eggShardVelocityID][1]; + sEggHatchData->eggShardVelocityID++; + spriteAnimIndex = Random() % 4; + CreateEggShardSprite(120, 60, velocity1, velocity2, 100, spriteAnimIndex); +} + +static void CreateEggShardSprite(u8 x, u8 y, s16 data1, s16 data2, s16 data3, u8 spriteAnimIndex) +{ + u8 spriteID = CreateSprite(&sSpriteTemplate_EggShard, x, y, 4); + gSprites[spriteID].data1 = data1; + gSprites[spriteID].data2 = data2; + gSprites[spriteID].data3 = data3; + StartSpriteAnim(&gSprites[spriteID], spriteAnimIndex); +} + +static void EggHatchPrintMessage(u8 windowId, u8* string, u8 x, u8 y, u8 speed) +{ + FillWindowPixelBuffer(windowId, 0xFF); + sEggHatchData->textColor.fgColor = 0; + sEggHatchData->textColor.bgColor = 5; + sEggHatchData->textColor.shadowColor = 6; + AddTextPrinterParametrized2(windowId, 1, x, y, 0, 0, &sEggHatchData->textColor, speed, string); +} + +u8 GetEggStepsToSubtract(void) +{ + u8 count, i; + for (count = CalculatePlayerPartyCount(), i = 0; i < count; i++) + { + if (!GetMonData(&gPlayerParty[i], MON_DATA_SANITY_BIT3)) + { + u8 ability = GetMonAbility(&gPlayerParty[i]); + if (ability == ABILITY_MAGMA_ARMOR || ability == ABILITY_FLAME_BODY) + return 2; + } + } + return 1; +} + +u16 sub_80722E0(void) +{ + u16 value = sub_80D22D0(); + value += sub_80C7050(6); + return value; +} diff --git a/src/field_camera.c b/src/field_camera.c new file mode 100644 index 000000000..17ced6aa5 --- /dev/null +++ b/src/field_camera.c @@ -0,0 +1,28 @@ + +// Includes +#include "global.h" + +// Static type declarations + +struct FieldCameraUnknownStruct +{ + u8 unk0; + u8 unk1; + u8 unk2; + u8 unk3; + bool8 unk4; +}; + +// Static RAM declarations + +IWRAM_DATA struct FieldCameraUnknownStruct gUnknown_03000E20; +IWRAM_DATA s16 gUnknown_03000E28; +IWRAM_DATA s16 gUnknown_03000E2A; +IWRAM_DATA u8 gUnknown_03000E2C; +IWRAM_DATA void (*gUnknown_03000E30)(void); + +// Static ROM declarations + +// .rodata + +// .text diff --git a/src/field_effect.c b/src/field_effect.c new file mode 100644 index 000000000..628dc776a --- /dev/null +++ b/src/field_effect.c @@ -0,0 +1,15 @@ + +// Includes +#include "global.h" + +// Static type declarations + +// Static RAM declarations + +IWRAM_DATA u8 gUnknown_03000F58[32]; + +// Static ROM declarations + +// .rodata + +// .text diff --git a/src/field_map_obj.c b/src/field_map_obj.c new file mode 100755 index 000000000..e80e402c8 --- /dev/null +++ b/src/field_map_obj.c @@ -0,0 +1,5118 @@ +// Includes + +#include "global.h" +#include "malloc.h" +#include "sprite.h" +#include "rom4.h" +#include "rng.h" +#include "event_scripts.h" +#include "berry.h" +#include "palette.h" +#include "field_player_avatar.h" +#include "fieldmap.h" +#include "event_data.h" +#include "rom_818CFC8.h" +#include "rom_81BE66C.h" +#include "field_ground_effect.h" +#include "map_obj_8097404.h" +#include "mauville_old_man.h" +#include "metatile_behavior.h" +#include "field_effect.h" +#include "field_effect_helpers.h" +#include "field_camera.h" +#include "trainer_see.h" +#include "field_map_obj.h" + +#define NUM_FIELD_MAP_OBJECT_TEMPLATES 0x51 + +#define null_object_step(name, retval) \ +bool8 FieldObjectCB2_##name(struct MapObject *, struct Sprite *);\ +void FieldObjectCB_##name(struct Sprite *sprite)\ +{\ + FieldObjectStep(&gMapObjects[sprite->data0], sprite, FieldObjectCB2_##name);\ +}\ +bool8 FieldObjectCB2_##name(struct MapObject *mapObject, struct Sprite *sprite)\ +{\ + return (retval);\ +} + +#define field_object_step(name, table) \ +extern bool8 (*const (table)[])(struct MapObject *, struct Sprite *);\ +bool8 FieldObjectCB2_##name(struct MapObject *, struct Sprite *);\ +void FieldObjectCB_##name(struct Sprite *sprite)\ +{\ + FieldObjectStep(&gMapObjects[sprite->data0], sprite, FieldObjectCB2_##name);\ +}\ +bool8 FieldObjectCB2_##name(struct MapObject *mapObject, struct Sprite *sprite)\ +{\ + return (table)[sprite->data1](mapObject, sprite);\ +} + +#define field_object_path(idx, table, sub, path, catch, coord)\ +field_object_step(GoInDirectionSequence##idx, table)\ +extern const u8 path[4];\ +bool8 sub(struct MapObject *mapObject, struct Sprite *sprite)\ +{\ + u8 route[sizeof(path)];\ + memcpy(route, path, sizeof(path));\ + if (mapObject->mapobj_unk_21 == (catch) && mapObject->coords1.coord == mapObject->coords2.coord)\ + {\ + mapObject->mapobj_unk_21 = (catch) + 1;\ + }\ + return MoveFieldObjectInNextDirectionInSequence(mapObject, sprite, route);\ +}\ + +// Static struct declarations + +// Static RAM declarations + +extern u8 gUnknown_020375B4; +extern u16 gUnknown_020375B6; + +// Static ROM declarations + +static void sub_808D450(void); +static u8 GetFieldObjectIdByLocalId(u8); +static u8 GetFieldObjectIdByLocalIdAndMapInternal(u8, u8, u8); +static bool8 GetAvailableFieldObjectSlot(u16, u8, u8, u8 *); +static void FieldObjectHandleDynamicGraphicsId(struct MapObject *); +static void RemoveFieldObjectInternal (struct MapObject *); +/*static*/ u16 GetFieldObjectFlagIdByFieldObjectId(u8); +void sub_8096518(struct MapObject *, struct Sprite *); +static void MakeObjectTemplateFromFieldObjectTemplate(struct MapObjectTemplate *, struct SpriteTemplate *, const struct SubspriteTable **); +/*static*/ void GetFieldObjectMovingCameraOffset(s16 *, s16 *); +/*static*/ struct MapObjectTemplate *GetFieldObjectTemplateByLocalIdAndMap(u8, u8, u8); +static void sub_808E894(u16); +static void RemoveFieldObjectIfOutsideView(struct MapObject *); +static void sub_808E1B8(u8, s16, s16); +static void SetPlayerAvatarFieldObjectIdAndObjectId(u8, u8); +/*static*/ void sub_808E38C(struct MapObject *); +static u8 sub_808E8F4(const struct SpritePalette *); +static u8 FindFieldObjectPaletteIndexByTag(u16); +static void sub_808EAB0(u16, u8); +static bool8 FieldObjectDoesZCoordMatch(struct MapObject *, u8); +//static void CameraObject_0(struct Sprite *); +/*static*/ void CameraObject_1(struct Sprite *); +//static void CameraObject_2(struct Sprite *); +/*static*/ struct MapObjectTemplate *FindFieldObjectTemplateInArrayByLocalId(u8 localId, struct MapObjectTemplate *templates, u8 count); +void npc_reset(struct MapObject *, struct Sprite *); +void FieldObjectSetRegularAnim(struct MapObject *, struct Sprite *, u8); + +u8 GetFaceDirectionAnimId(u32); +u8 GetGoSpeed0AnimId(u32); +u8 GetGoSpeed1AnimId(u32); +u8 GetGoSpeed3AnimId(u32); +u8 sub_8093438(u32); +u8 sub_80934BC(u32); +u8 sub_8093514(u32); +u8 GetJumpLedgeAnimId(u32); +void sub_8092F88(u32, s16 *, s16 *, s16, s16); + +bool8 FieldObjectExecRegularAnim(struct MapObject *, struct Sprite *); +void SetFieldObjectStepTimer(struct Sprite *, s16); +bool8 RunFieldObjectStepTimer(struct Sprite *); +bool8 npc_block_way__next_tile(struct MapObject *, u8); +static u32 state_to_direction(u8, u32, u32); +/*static*/ void sub_80964E8(struct MapObject *, struct Sprite *); +static void FieldObjectExecSpecialAnim(struct MapObject *, struct Sprite *); +/*static*/ void npc_obj_transfer_image_anim_pause_flag(struct MapObject *, struct Sprite *); + +static bool8 IsCoordOutsideFieldObjectMovementRect(struct MapObject *, s16, s16); +static bool8 IsMetatileDirectionallyImpassable(struct MapObject *, s16, s16, u8); +static bool8 CheckForCollisionBetweenFieldObjects(struct MapObject *, s16, s16); +bool8 sub_809558C(struct MapObject *, struct Sprite *); +bool8 sub_8095B64(struct MapObject *, struct Sprite *); +static void sub_8096530(struct MapObject *, struct Sprite *); +static void npc_update_obj_anim_flag(struct MapObject *, struct Sprite *); + +// ROM data + +extern void (*const gUnknown_08505438[NUM_FIELD_MAP_OBJECT_TEMPLATES])(struct Sprite *); +extern const u8 gUnknown_0850557C[NUM_FIELD_MAP_OBJECT_TEMPLATES]; +extern const u8 gUnknown_085055CD[NUM_FIELD_MAP_OBJECT_TEMPLATES]; +extern const struct MapObjectGraphicsInfo *const gMauvilleOldManGraphicsInfoPointers[7]; +extern const struct MapObjectGraphicsInfo *const gFieldObjectGraphicsInfoPointers[0xEF]; +extern u8 (*const gUnknown_0850D714[11])(s16, s16, s16, s16); + +struct PairedPalettes { + u16 tag; + const u16 *data; +}; + +extern const u8 gUnknown_084975C4[0x10]; +extern const struct SpriteTemplate gUnknown_084975D4; +extern void (*const gUnknown_084975EC[3])(struct Sprite *); +extern const struct SpritePalette gUnknown_0850BBC8[39]; +extern const struct PairedPalettes gUnknown_0850BD00[4]; +extern const struct PairedPalettes gUnknown_0850BD78[14]; +extern const u16 *const gUnknown_0850BE38[2]; +extern const s16 gUnknown_0850D6DC[4]; // {0x20, 0x40, 0x60, 0x80} +extern const s16 gUnknown_0850D6EC[4]; +extern const u8 gUnknown_0850D710[4]; // {DIR_SOUTH, DIR_NORTH, DIR_WEST, DIR_EAST} +extern const u8 gUnknown_0850D770[2]; // {DIR_SOUTH, DIR_NORTH} +extern const u8 gUnknown_0850D790[2]; // {DIR_WEST, DIR_EAST} +extern const u8 gUnknown_0850D7F0[2]; // {DIR_NORTH, DIR_WEST} +extern const u8 gUnknown_0850D808[2]; // {DIR_NORTH, DIR_EAST} +extern const u8 gUnknown_0850D820[2]; // {DIR_SOUTH, DIR_WEST} +extern const u8 gUnknown_0850D838[2]; // {DIR_SOUTH, DIR_EAST} +extern const u8 gUnknown_0850D850[4]; +extern const u8 gUnknown_0850D868[4]; +extern const u8 gUnknown_0850D880[4]; +extern const u8 gUnknown_0850D898[4]; +extern const u8 gUnknown_0850D8AC[5]; +extern const u8 gUnknown_0850D8C4[5]; +extern const u8 gUnknown_0850D8E8[4]; +extern bool8 (*const gUnknown_0850DA64[11])(struct MapObject *, struct Sprite *, u8, bool8(u8)); +extern bool8 (*const gUnknown_0850DB5C[4])(u8); +extern bool8 (*const gUnknown_0850DB6C[4])(u8); +extern const struct Coords16 gUnknown_0850DB7C[4]; +extern const u8 gUnknown_0850DC2F[4][4]; +extern const u8 gUnknown_0850DC3F[4][4]; +extern const u8 gUnknown_0850DBA0[5]; +extern bool8 (*const *const gUnknown_0850DC50[166])(struct MapObject *, struct Sprite *); +extern u8 (*const gUnknown_0850DEE8[5])(u8); +extern const s16 gUnknown_0850DFBC[3]; +extern const s16 gUnknown_0850DFC2[3]; + +// Code + +static void npc_clear_ids_and_state(struct MapObject *mapObject) +{ + *mapObject = (struct MapObject){}; + mapObject->localId = 0xFF; + mapObject->mapNum = -1; + mapObject->mapGroup = -1; + mapObject->mapobj_unk_1C = -1; +} + +static void npcs_clear_ids_and_state(void) +{ + u8 i; + + for (i = 0; i < NUM_FIELD_OBJECTS; i ++) + { + npc_clear_ids_and_state(&gMapObjects[i]); + } +} + +void sub_808D438(void) +{ + strange_npc_table_clear(); + npcs_clear_ids_and_state(); + ClearPlayerAvatarInfo(); + sub_808D450(); +} + +static void sub_808D450(void) +{ + u8 spriteIdx; + + spriteIdx = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[21], 0, 0, 31); + gSprites[spriteIdx].oam.affineMode = 1; + InitSpriteAffineAnim(&gSprites[spriteIdx]); + StartSpriteAffineAnim(&gSprites[spriteIdx], 0); + gSprites[spriteIdx].invisible = TRUE; + + spriteIdx = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[21], 0, 0, 31); + gSprites[spriteIdx].oam.affineMode = 1; + InitSpriteAffineAnim(&gSprites[spriteIdx]); + StartSpriteAffineAnim(&gSprites[spriteIdx], 1); + gSprites[spriteIdx].invisible = TRUE; +} + +u8 sub_808D4F4(void) +{ + u8 i; + + for (i = 0; i < NUM_FIELD_OBJECTS; i ++) + { + if (!gMapObjects[i].active) + { + break; + } + } + return i; +} + +u8 GetFieldObjectIdByLocalIdAndMap(u8 localId, u8 mapId, u8 mapGroupId) +{ + if (localId < 0xff) + { + return GetFieldObjectIdByLocalIdAndMapInternal(localId, mapId, mapGroupId); + } + return GetFieldObjectIdByLocalId(localId); +} + +bool8 TryGetFieldObjectIdByLocalIdAndMap(u8 localId, u8 mapId, u8 mapGroupId, u8 *fieldObjectId) +{ + *fieldObjectId = GetFieldObjectIdByLocalIdAndMap(localId, mapId, mapGroupId); + if (*fieldObjectId == NUM_FIELD_OBJECTS) + { + return TRUE; + } + return FALSE; +} + +u8 GetFieldObjectIdByXY(s16 x, s16 y) +{ + u8 i; + + for (i = 0; i < NUM_FIELD_OBJECTS; i ++) + { + if (gMapObjects[i].active && gMapObjects[i].coords2.x == x && gMapObjects[i].coords2.y == y) + { + break; + } + } + return i; +} + +static u8 GetFieldObjectIdByLocalIdAndMapInternal(u8 localId, u8 mapId, u8 mapGroupId) +{ + u8 i; + + for (i = 0; i < NUM_FIELD_OBJECTS; i ++) + { + if (gMapObjects[i].active && gMapObjects[i].localId == localId && gMapObjects[i].mapNum == mapId && gMapObjects[i].mapGroup == mapGroupId) + { + return i; + } + } + return NUM_FIELD_OBJECTS; +} + +static u8 GetFieldObjectIdByLocalId(u8 localId) +{ + u8 i; + + for (i = 0; i < NUM_FIELD_OBJECTS; i ++) + { + if (gMapObjects[i].active && gMapObjects[i].localId == localId) + { + return i; + } + } + return NUM_FIELD_OBJECTS; +} + +// This function has the same nonmatching quirk as in Ruby/Sapphire. +#ifdef NONMATCHING +static u8 InitFieldObjectStateFromTemplate(struct MapObjectTemplate *template, u8 mapNum, u8 mapGroup) +{ + struct MapObject *mapObject; + s16 x; + s16 y; + u8 slot; + + // mapNum and mapGroup are in the wrong registers (r7/r6 instead of r6/r7) + if (GetAvailableFieldObjectSlot(template->localId, mapNum, mapGroup, &slot)) + { + return NUM_FIELD_OBJECTS; + } + mapObject = &gMapObjects[slot]; + npc_clear_ids_and_state(mapObject); + x = template->x + 7; + y = template->y + 7; + mapObject->active = TRUE; + mapObject->mapobj_bit_2 = TRUE; + mapObject->graphicsId = template->graphicsId; + mapObject->animPattern = template->movementType; + mapObject->localId = template->localId; + mapObject->mapNum = mapNum; + mapObject->mapGroup = mapGroup; + mapObject->coords1.x = x; + mapObject->coords1.y = y; + mapObject->coords2.x = x; + mapObject->coords2.y = y; + mapObject->coords3.x = x; + mapObject->coords3.y = y; + mapObject->mapobj_unk_0B_0 = template->elevation; + mapObject->elevation = template->elevation; + // For some reason, 0x0F is placed in r9, to be used later + mapObject->range.as_nybbles.x = template->unkA_0; + mapObject->range.as_nybbles.y = template->unkA_4; + mapObject->trainerType = template->unkC; + mapObject->trainerRange_berryTreeId = template->unkE; + mapObject->mapobj_unk_20 = gUnknown_085055CD[template->movementType]; + FieldObjectSetDirection(mapObject, mapObject->mapobj_unk_20); + FieldObjectHandleDynamicGraphicsId(mapObject); + + if (gUnknown_0850557C[mapObject->animPattern]) + { + if ((mapObject->range.as_nybbles.x) == 0) + { + // r9 is invoked here + mapObject->range.as_nybbles.x ++; + } + if ((mapObject->range.as_nybbles.y) == 0) + { + mapObject->range.as_nybbles.y ++; + } + } + return slot; +} +#else +static __attribute__((naked)) u8 InitFieldObjectStateFromTemplate(struct MapObjectTemplate *template, u8 mapId, u8 mapGroupId) +{ + asm_unified("\tpush {r4-r7,lr}\n" + "\tmov r7, r9\n" + "\tmov r6, r8\n" + "\tpush {r6,r7}\n" + "\tsub sp, 0x4\n" + "\tadds r5, r0, 0\n" + "\tlsls r1, 24\n" + "\tlsrs r6, r1, 24\n" + "\tlsls r2, 24\n" + "\tlsrs r7, r2, 24\n" + "\tldrb r0, [r5]\n" + "\tadds r1, r6, 0\n" + "\tadds r2, r7, 0\n" + "\tmov r3, sp\n" + "\tbl GetAvailableFieldObjectSlot\n" + "\tlsls r0, 24\n" + "\tcmp r0, 0\n" + "\tbeq _0808D66E\n" + "\tmovs r0, 0x10\n" + "\tb _0808D762\n" + "_0808D66E:\n" + "\tmov r0, sp\n" + "\tldrb r1, [r0]\n" + "\tlsls r0, r1, 3\n" + "\tadds r0, r1\n" + "\tlsls r0, 2\n" + "\tldr r1, =gMapObjects\n" + "\tadds r4, r0, r1\n" + "\tadds r0, r4, 0\n" + "\tbl npc_clear_ids_and_state\n" + "\tldrh r3, [r5, 0x4]\n" + "\tadds r3, 0x7\n" + "\tlsls r3, 16\n" + "\tlsrs r3, 16\n" + "\tldrh r2, [r5, 0x6]\n" + "\tadds r2, 0x7\n" + "\tlsls r2, 16\n" + "\tlsrs r2, 16\n" + "\tldrb r0, [r4]\n" + "\tmovs r1, 0x1\n" + "\torrs r0, r1\n" + "\tmovs r1, 0x4\n" + "\torrs r0, r1\n" + "\tstrb r0, [r4]\n" + "\tldrb r0, [r5, 0x1]\n" + "\tstrb r0, [r4, 0x5]\n" + "\tldrb r0, [r5, 0x9]\n" + "\tstrb r0, [r4, 0x6]\n" + "\tldrb r0, [r5]\n" + "\tstrb r0, [r4, 0x8]\n" + "\tstrb r6, [r4, 0x9]\n" + "\tstrb r7, [r4, 0xA]\n" + "\tstrh r3, [r4, 0xC]\n" + "\tstrh r2, [r4, 0xE]\n" + "\tstrh r3, [r4, 0x10]\n" + "\tstrh r2, [r4, 0x12]\n" + "\tstrh r3, [r4, 0x14]\n" + "\tstrh r2, [r4, 0x16]\n" + "\tldrb r0, [r5, 0x8]\n" + "\tmovs r7, 0xF\n" + "\tadds r1, r7, 0\n" + "\tands r1, r0\n" + "\tldrb r2, [r4, 0xB]\n" + "\tmovs r0, 0x10\n" + "\tnegs r0, r0\n" + "\tmov r8, r0\n" + "\tands r0, r2\n" + "\torrs r0, r1\n" + "\tstrb r0, [r4, 0xB]\n" + "\tldrb r1, [r5, 0x8]\n" + "\tlsls r1, 4\n" + "\tands r0, r7\n" + "\torrs r0, r1\n" + "\tstrb r0, [r4, 0xB]\n" + "\tldrb r1, [r5, 0xA]\n" + "\tlsls r1, 28\n" + "\tmovs r0, 0xF\n" + "\tmov r9, r0\n" + "\tlsrs r1, 28\n" + "\tldrb r2, [r4, 0x19]\n" + "\tmov r0, r8\n" + "\tands r0, r2\n" + "\torrs r0, r1\n" + "\tstrb r0, [r4, 0x19]\n" + "\tldrb r1, [r5, 0xA]\n" + "\tlsrs r1, 4\n" + "\tlsls r1, 4\n" + "\tands r0, r7\n" + "\torrs r0, r1\n" + "\tstrb r0, [r4, 0x19]\n" + "\tldrh r0, [r5, 0xC]\n" + "\tstrb r0, [r4, 0x7]\n" + "\tldrh r0, [r5, 0xE]\n" + "\tstrb r0, [r4, 0x1D]\n" + "\tldr r1, =gUnknown_085055CD\n" + "\tldrb r0, [r5, 0x9]\n" + "\tadds r0, r1\n" + "\tldrb r1, [r0]\n" + "\tadds r0, r4, 0\n" + "\tadds r0, 0x20\n" + "\tstrb r1, [r0]\n" + "\tldrb r1, [r0]\n" + "\tadds r0, r4, 0\n" + "\tbl FieldObjectSetDirection\n" + "\tadds r0, r4, 0\n" + "\tbl FieldObjectHandleDynamicGraphicsId\n" + "\tldr r1, =gUnknown_0850557C\n" + "\tldrb r0, [r4, 0x6]\n" + "\tadds r0, r1\n" + "\tldrb r0, [r0]\n" + "\tcmp r0, 0\n" + "\tbeq _0808D75E\n" + "\tldrb r2, [r4, 0x19]\n" + "\tadds r0, r7, 0\n" + "\tands r0, r2\n" + "\tcmp r0, 0\n" + "\tbne _0808D746\n" + "\tlsls r0, r2, 28\n" + "\tlsrs r0, 28\n" + "\tadds r0, 0x1\n" + "\tmov r1, r9\n" + "\tands r0, r1\n" + "\tmov r1, r8\n" + "\tands r1, r2\n" + "\torrs r1, r0\n" + "\tstrb r1, [r4, 0x19]\n" + "_0808D746:\n" + "\tldrb r2, [r4, 0x19]\n" + "\tmovs r0, 0xF0\n" + "\tands r0, r2\n" + "\tcmp r0, 0\n" + "\tbne _0808D75E\n" + "\tlsrs r1, r2, 4\n" + "\tadds r1, 0x1\n" + "\tlsls r1, 4\n" + "\tadds r0, r7, 0\n" + "\tands r0, r2\n" + "\torrs r0, r1\n" + "\tstrb r0, [r4, 0x19]\n" + "_0808D75E:\n" + "\tmov r0, sp\n" + "\tldrb r0, [r0]\n" + "_0808D762:\n" + "\tadd sp, 0x4\n" + "\tpop {r3,r4}\n" + "\tmov r8, r3\n" + "\tmov r9, r4\n" + "\tpop {r4-r7}\n" + "\tpop {r1}\n" + "\tbx r1\n" + ".pool"); +} +#endif + +u8 unref_sub_808D77C(u8 localId) +{ + u8 i; + u8 nObjects; + struct MapObjectTemplate *template; + + if (gMapHeader.events != NULL) + { + if (InBattlePyramid()) + { + nObjects = sub_81AAA40(); + } + else if (InTrainerHill()) + { + nObjects = 2; + } + else + { + nObjects = gMapHeader.events->mapObjectCount; + } + for (i = 0; i < nObjects; i ++) + { + template = &gSaveBlock1Ptr->mapObjectTemplates[i]; + if (template->localId == localId && !FlagGet(template->flagId)) + { + return InitFieldObjectStateFromTemplate(template, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); + } + } + } + return NUM_FIELD_OBJECTS; +} + +static bool8 GetAvailableFieldObjectSlot(u16 localId, u8 mapNum, u8 mapGroup, u8 *result) +// Looks for an empty slot. +// Returns FALSE and the location of the available slot +// in *result. +// If no slots are available, or if the object is already +// loaded, returns TRUE. +{ + u8 i = 0; + + for (i = 0; i < NUM_FIELD_OBJECTS; i ++) + { + if (!gMapObjects[i].active) + break; + if (gMapObjects[i].localId == localId && gMapObjects[i].mapNum == mapNum && gMapObjects[i].mapGroup == mapGroup) + return TRUE; + } + if (i >= NUM_FIELD_OBJECTS) + return TRUE; + *result = i; + do + { + if (gMapObjects[i].active && gMapObjects[i].localId == localId && gMapObjects[i].mapNum == mapNum && gMapObjects[i].mapGroup == mapGroup) + return TRUE; + i ++; + } while (i < NUM_FIELD_OBJECTS); + return FALSE; +} + +static void RemoveFieldObject(struct MapObject *mapObject) +{ + mapObject->active = FALSE; + RemoveFieldObjectInternal(mapObject); +} + +void RemoveFieldObjectByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup) +{ + u8 index; + if (!TryGetFieldObjectIdByLocalIdAndMap(localId, mapNum, mapGroup, &index)) + { + FlagSet(GetFieldObjectFlagIdByFieldObjectId(index)); + RemoveFieldObject(&gMapObjects[index]); + } +} + +static void RemoveFieldObjectInternal(struct MapObject *mapObject) +{ + struct SpriteFrameImage image; + image.size = GetFieldObjectGraphicsInfo(mapObject->graphicsId)->size; + gSprites[mapObject->spriteId].images = ℑ + DestroySprite(&gSprites[mapObject->spriteId]); +} + +void unref_sub_808D958(void) +{ + u8 i; + + for (i = 0; i < NUM_FIELD_OBJECTS; i ++) + { + if (i != gPlayerAvatar.mapObjectId) + { + RemoveFieldObject(&gMapObjects[i]); + } + } +} + +static u8 SpawnFieldObjectInternal(struct MapObjectTemplate *mapObjectTemplate, struct SpriteTemplate *spriteTemplate, u8 mapNum, u8 mapGroup, s16 cameraX, s16 cameraY) +{ + struct MapObject *mapObject; + const struct MapObjectGraphicsInfo *graphicsInfo; + struct Sprite *sprite; + u8 mapObjectId; + u8 paletteSlot; + u8 spriteId; + + mapObjectId = InitFieldObjectStateFromTemplate(mapObjectTemplate, mapNum, mapGroup); + if (mapObjectId == NUM_FIELD_OBJECTS) + { + return NUM_FIELD_OBJECTS; + } + mapObject = &gMapObjects[mapObjectId]; + graphicsInfo = GetFieldObjectGraphicsInfo(mapObject->graphicsId); + paletteSlot = graphicsInfo->paletteSlot; + if (paletteSlot == 0) + { + npc_load_two_palettes__no_record(graphicsInfo->paletteTag1, 0); + } + else if (paletteSlot == 10) + { + npc_load_two_palettes__and_record(graphicsInfo->paletteTag1, 10); + } + else if (paletteSlot >= 16) + { + paletteSlot -= 16; + sub_808EAB0(graphicsInfo->paletteTag1, paletteSlot); + } + if (mapObject->animPattern == 0x4c) + { + mapObject->mapobj_bit_13 = TRUE; + } + *(u16 *)&spriteTemplate->paletteTag = 0xFFFF; + spriteId = CreateSprite(spriteTemplate, 0, 0, 0); + if (spriteId == MAX_SPRITES) + { + gMapObjects[mapObjectId].active = FALSE; + return NUM_FIELD_OBJECTS; + } + sprite = &gSprites[spriteId]; + sub_8092FF0(mapObject->coords2.x + cameraX, mapObject->coords2.y + cameraY, &sprite->pos1.x, &sprite->pos1.y); + sprite->centerToCornerVecX = -(graphicsInfo->width >> 1); + sprite->centerToCornerVecY = -(graphicsInfo->height >> 1); + sprite->pos1.x += 8; + sprite->pos1.y += 16 + sprite->centerToCornerVecY; + sprite->oam.paletteNum = paletteSlot; + sprite->coordOffsetEnabled = TRUE; + sprite->data0 = mapObjectId; + mapObject->spriteId = spriteId; + mapObject->mapobj_bit_12 = graphicsInfo->inanimate; + if (!mapObject->mapobj_bit_12) + { + StartSpriteAnim(sprite, FieldObjectDirectionToImageAnimId(mapObject->mapobj_unk_18)); + } + SetObjectSubpriorityByZCoord(mapObject->elevation, sprite, 1); + sub_8096518(mapObject, sprite); + return mapObjectId; +} + +static u8 SpawnFieldObject(struct MapObjectTemplate *mapObjectTemplate, u8 mapNum, u8 mapGroup, s16 cameraX, s16 cameraY) +{ + const struct MapObjectGraphicsInfo *graphicsInfo; + struct SpriteTemplate spriteTemplate; + const struct SubspriteTable *subspriteTables; + struct SpriteFrameImage spriteFrameImage; + u8 mapObjectId; + + subspriteTables = NULL; + graphicsInfo = GetFieldObjectGraphicsInfo(mapObjectTemplate->graphicsId); + MakeObjectTemplateFromFieldObjectTemplate(mapObjectTemplate, &spriteTemplate, &subspriteTables); + spriteFrameImage.size = graphicsInfo->size; + spriteTemplate.images = &spriteFrameImage; + mapObjectId = SpawnFieldObjectInternal(mapObjectTemplate, &spriteTemplate, mapNum, mapGroup, cameraX, cameraY); + if (mapObjectId == NUM_FIELD_OBJECTS) + { + return NUM_FIELD_OBJECTS; + } + gSprites[gMapObjects[mapObjectId].spriteId].images = graphicsInfo->images; + if (subspriteTables != NULL) + { + SetSubspriteTables(&gSprites[gMapObjects[mapObjectId].spriteId], subspriteTables); + } + return mapObjectId; +} + +u8 SpawnSpecialFieldObject(struct MapObjectTemplate *mapObjectTemplate) +{ + s16 cameraX; + s16 cameraY; + + GetFieldObjectMovingCameraOffset(&cameraX, &cameraY); + return SpawnFieldObject(mapObjectTemplate, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, cameraX, cameraY); +} + +u8 SpawnSpecialFieldObjectParametrized(u8 graphicsId, u8 movementBehavior, u8 localId, s16 x, s16 y, u8 z) +{ + struct MapObjectTemplate mapObjectTemplate; + + x -= 7; + y -= 7; + mapObjectTemplate.localId = localId; + mapObjectTemplate.graphicsId = graphicsId; + mapObjectTemplate.unk2 = 0; + mapObjectTemplate.x = x; + mapObjectTemplate.y = y; + mapObjectTemplate.elevation = z; + mapObjectTemplate.movementType = movementBehavior; + mapObjectTemplate.unkA_0 = 0; + mapObjectTemplate.unkA_4 = 0; + mapObjectTemplate.unkC = 0; + mapObjectTemplate.unkE = 0; + return SpawnSpecialFieldObject(&mapObjectTemplate); +} + +u8 show_sprite(u8 localId, u8 mapNum, u8 mapGroup) +{ + struct MapObjectTemplate *mapObjectTemplate; + s16 cameraX; + s16 cameraY; + + mapObjectTemplate = GetFieldObjectTemplateByLocalIdAndMap(localId, mapNum, mapGroup); + if (mapObjectTemplate == NULL) + { + return NUM_FIELD_OBJECTS; + } + GetFieldObjectMovingCameraOffset(&cameraX, &cameraY); + return SpawnFieldObject(mapObjectTemplate, mapNum, mapGroup, cameraX, cameraY); +} + +static void MakeObjectTemplateFromFieldObjectGraphicsInfo(u16 graphicsId, void (*callback)(struct Sprite *), struct SpriteTemplate *sprTemplate, const struct SubspriteTable **subspriteTables) +{ + const struct MapObjectGraphicsInfo *gfxInfo = GetFieldObjectGraphicsInfo(graphicsId); + + sprTemplate->tileTag = gfxInfo->tileTag; + sprTemplate->paletteTag = gfxInfo->paletteTag1; + sprTemplate->oam = gfxInfo->oam; + sprTemplate->anims = gfxInfo->anims; + sprTemplate->images = gfxInfo->images; + sprTemplate->affineAnims = gfxInfo->affineAnims; + sprTemplate->callback = callback; + *subspriteTables = gfxInfo->subspriteTables; +} + +static void MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex(u16 graphicsId, u16 callbackIndex, struct SpriteTemplate *sprTemplate, const struct SubspriteTable **subspriteTables) +{ + MakeObjectTemplateFromFieldObjectGraphicsInfo(graphicsId, gUnknown_08505438[callbackIndex], sprTemplate, subspriteTables); +} + +static void MakeObjectTemplateFromFieldObjectTemplate(struct MapObjectTemplate *mapObjectTemplate, struct SpriteTemplate *spriteTemplate, const struct SubspriteTable **subspriteTables) +{ + MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex(mapObjectTemplate->graphicsId, mapObjectTemplate->movementType, spriteTemplate, subspriteTables); +} + +u8 AddPseudoFieldObject(u16 graphicsId, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority) +{ + struct SpriteTemplate *spriteTemplate; + const struct SubspriteTable *subspriteTables; + struct Sprite *sprite; + u8 spriteIdx; + + spriteTemplate = malloc(sizeof(struct SpriteTemplate)); + MakeObjectTemplateFromFieldObjectGraphicsInfo(graphicsId, callback, spriteTemplate, &subspriteTables); + if (spriteTemplate->paletteTag != 0xffff) + { + sub_808E894(spriteTemplate->paletteTag); + } + spriteIdx = CreateSprite(spriteTemplate, x, y, subpriority); + free(spriteTemplate); + + if (spriteIdx != MAX_SPRITES && subspriteTables != NULL) + { + sprite = &gSprites[spriteIdx]; + SetSubspriteTables(sprite, subspriteTables); + sprite->subspriteMode = 2; + } + return spriteIdx; +} + +u8 sprite_new(u8 graphicsId, u8 a1, s16 x, s16 y, u8 z, u8 direction) +{ + const struct MapObjectGraphicsInfo *graphicsInfo; + struct SpriteTemplate spriteTemplate; + const struct SubspriteTable *subspriteTables; + u8 spriteId; + struct Sprite *sprite; + + graphicsInfo = GetFieldObjectGraphicsInfo(graphicsId); + MakeObjectTemplateFromFieldObjectGraphicsInfo(graphicsId, sub_8097AC8, &spriteTemplate, &subspriteTables); + *(u16 *)&spriteTemplate.paletteTag = 0xffff; + x += 7; + y += 7; + sub_80930E0(&x, &y, 8, 16); + spriteId = CreateSpriteAtEnd(&spriteTemplate, x, y, 0); + if (spriteId != MAX_SPRITES) + { + sprite = &gSprites[spriteId]; + sprite->centerToCornerVecX = -(graphicsInfo->width >> 1); + sprite->centerToCornerVecY = -(graphicsInfo->height >> 1); + sprite->pos1.y += sprite->centerToCornerVecY; + sprite->oam.paletteNum = graphicsInfo->paletteSlot; + if (sprite->oam.paletteNum >= 16) + { + sprite->oam.paletteNum -= 16; + } + sprite->coordOffsetEnabled = TRUE; + sprite->data0 = a1; + sprite->data1 = z; + if (graphicsInfo->paletteSlot == 10) + { + npc_load_two_palettes__and_record(graphicsInfo->paletteTag1, graphicsInfo->paletteSlot); + } + else if (graphicsInfo->paletteSlot >= 16) + { + sub_808EAB0(graphicsInfo->paletteTag1, graphicsInfo->paletteSlot | 0xf0); + } + if (subspriteTables != NULL) + { + SetSubspriteTables(sprite, subspriteTables); + sprite->subspriteMode = 2; + } + InitObjectPriorityByZCoord(sprite, z); + SetObjectSubpriorityByZCoord(z, sprite, 1); + StartSpriteAnim(sprite, FieldObjectDirectionToImageAnimId(direction)); + } + return spriteId; +} + +void SpawnFieldObjectsInView(s16 cameraX, s16 cameraY) +{ + u8 i; + s16 left; + s16 right; + s16 top; + s16 bottom; + u8 objectCount; + s16 npcX; + s16 npcY; + + if (gMapHeader.events != NULL) + { + left = gSaveBlock1Ptr->pos.x - 2; + right = gSaveBlock1Ptr->pos.x + 17; + top = gSaveBlock1Ptr->pos.y; + bottom = gSaveBlock1Ptr->pos.y + 16; + + if (InBattlePyramid()) + { + objectCount = sub_81AAA40(); + } + else if (InTrainerHill()) + { + objectCount = 2; + } + else + { + objectCount = gMapHeader.events->mapObjectCount; + } + + for (i = 0; i < objectCount; i++) + { + struct MapObjectTemplate *template = &gSaveBlock1Ptr->mapObjectTemplates[i]; + npcX = template->x + 7; + npcY = template->y + 7; + + if (top <= npcY && bottom >= npcY && left <= npcX && right >= npcX + && !FlagGet(template->flagId)) + SpawnFieldObject(template, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, cameraX, cameraY); + } + } +} + +/*static*/ void RemoveFieldObjectsOutsideView(void) +{ + u8 i; + u8 j; + bool8 isActiveLinkPlayer; + struct MapObject *mapObject; + + for (i = 0; i < NUM_FIELD_OBJECTS; i ++) + { + for (j = 0, isActiveLinkPlayer = FALSE; j < ARRAY_COUNT(gLinkPlayerMapObjects); j ++) + { + if (gLinkPlayerMapObjects[j].active && i == gLinkPlayerMapObjects[j].mapObjId) + isActiveLinkPlayer = TRUE; + } + if (!isActiveLinkPlayer) + { + mapObject = &gMapObjects[i]; + + if (mapObject->active && !mapObject->mapobj_bit_16) + RemoveFieldObjectIfOutsideView(mapObject); + } + } +} + +static void RemoveFieldObjectIfOutsideView(struct MapObject *mapObject) +{ + s16 left; + s16 right; + s16 top; + s16 bottom; + + left = gSaveBlock1Ptr->pos.x - 2; + right = gSaveBlock1Ptr->pos.x + 17; + top = gSaveBlock1Ptr->pos.y; + bottom = gSaveBlock1Ptr->pos.y + 16; + + if (mapObject->coords2.x >= left && mapObject->coords2.x <= right + && mapObject->coords2.y >= top && mapObject->coords2.y <= bottom) + return; + if (mapObject->coords1.x >= left && mapObject->coords1.x <= right + && mapObject->coords1.y >= top && mapObject->coords1.y <= bottom) + return; + RemoveFieldObject(mapObject); +} + +void sub_808E16C(s16 x, s16 y) +{ + u8 i; + + ClearPlayerAvatarInfo(); + for (i = 0; i < NUM_FIELD_OBJECTS; i ++) + { + if (gMapObjects[i].active) + { + sub_808E1B8(i, x, y); + } + } + sub_808D450(); +} + +static void sub_808E1B8(u8 mapObjectId, s16 x, s16 y) +{ + u8 spriteId; + u8 paletteSlot; + struct MapObject *mapObject; + const struct SubspriteTable *subspriteTables; + const struct MapObjectGraphicsInfo *graphicsInfo; + struct SpriteFrameImage spriteFrameImage; + struct SpriteTemplate spriteTemplate; + struct Sprite *sprite; + +#define i spriteId + for (i = 0; i < ARRAY_COUNT(gLinkPlayerMapObjects); i ++) + { + if (gLinkPlayerMapObjects[i].active && mapObjectId == gLinkPlayerMapObjects[i].mapObjId) + { + return; + } + } +#undef i + + mapObject = &gMapObjects[mapObjectId]; + subspriteTables = NULL; + graphicsInfo = GetFieldObjectGraphicsInfo(mapObject->graphicsId); + spriteFrameImage.size = graphicsInfo->size; + MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex(mapObject->graphicsId, mapObject->animPattern, &spriteTemplate, &subspriteTables); + spriteTemplate.images = &spriteFrameImage; + *(u16 *)&spriteTemplate.paletteTag = 0xffff; + paletteSlot = graphicsInfo->paletteSlot; + if (paletteSlot == 0) + { + npc_load_two_palettes__no_record(graphicsInfo->paletteTag1, graphicsInfo->paletteSlot); + } + else if (paletteSlot == 10) + { + npc_load_two_palettes__and_record(graphicsInfo->paletteTag1, graphicsInfo->paletteSlot); + } + else if (paletteSlot >= 16) + { + paletteSlot -= 16; + sub_808EAB0(graphicsInfo->paletteTag1, paletteSlot); + } + *(u16 *)&spriteTemplate.paletteTag = 0xffff; + spriteId = CreateSprite(&spriteTemplate, 0, 0, 0); + if (spriteId != MAX_SPRITES) + { + sprite = &gSprites[spriteId]; + sub_8092FF0(x + mapObject->coords2.x, y + mapObject->coords2.y, &sprite->pos1.x, &sprite->pos1.y); + sprite->centerToCornerVecX = -(graphicsInfo->width >> 1); + sprite->centerToCornerVecY = -(graphicsInfo->height >> 1); + sprite->pos1.x += 8; + sprite->pos1.y += 16 + sprite->centerToCornerVecY; + sprite->images = graphicsInfo->images; + if (mapObject->animPattern == 0x0b) + { + SetPlayerAvatarFieldObjectIdAndObjectId(mapObjectId, spriteId); + mapObject->mapobj_unk_1B = sub_8154228(); + } + if (subspriteTables != NULL) + { + SetSubspriteTables(sprite, subspriteTables); + } + sprite->oam.paletteNum = paletteSlot; + sprite->coordOffsetEnabled = TRUE; + sprite->data0 = mapObjectId; + mapObject->spriteId = spriteId; + if (!mapObject->mapobj_bit_12 && mapObject->animPattern != 0x0b) + { + StartSpriteAnim(sprite, FieldObjectDirectionToImageAnimId(mapObject->mapobj_unk_18)); + } + sub_808E38C(mapObject); + SetObjectSubpriorityByZCoord(mapObject->elevation, sprite, 1); + } +} + +/*static*/ void sub_808E38C(struct MapObject *mapObject) +{ + mapObject->mapobj_bit_1 = FALSE; + mapObject->mapobj_bit_2 = TRUE; + mapObject->mapobj_bit_22 = FALSE; + mapObject->mapobj_bit_17 = FALSE; + mapObject->mapobj_bit_18 = FALSE; + mapObject->mapobj_bit_19 = FALSE; + mapObject->mapobj_bit_20 = FALSE; + mapObject->mapobj_bit_21 = FALSE; + FieldObjectClearAnim(mapObject); +} + +static void SetPlayerAvatarFieldObjectIdAndObjectId(u8 mapObjectId, u8 spriteId) +{ + gPlayerAvatar.mapObjectId = mapObjectId; + gPlayerAvatar.spriteId = spriteId; + gPlayerAvatar.gender = GetPlayerAvatarGenderByGraphicsId(gMapObjects[mapObjectId].graphicsId); + SetPlayerAvatarExtraStateTransition(gMapObjects[mapObjectId].graphicsId, 0x20); +} + +void FieldObjectSetGraphicsId(struct MapObject *mapObject, u8 graphicsId) +{ + const struct MapObjectGraphicsInfo *graphicsInfo; + struct Sprite *sprite; + u8 paletteSlot; + + graphicsInfo = GetFieldObjectGraphicsInfo(graphicsId); + sprite = &gSprites[mapObject->spriteId]; + paletteSlot = graphicsInfo->paletteSlot; + if (paletteSlot == 0) + { + pal_patch_for_npc(graphicsInfo->paletteTag1, graphicsInfo->paletteSlot); + } + else if (paletteSlot == 10) + { + npc_load_two_palettes__and_record(graphicsInfo->paletteTag1, graphicsInfo->paletteSlot); + } + else if (paletteSlot >= 16) + { + paletteSlot -= 16; + sub_808EAB0(graphicsInfo->paletteTag1, paletteSlot); + } + sprite->oam.shape = graphicsInfo->oam->shape; + sprite->oam.size = graphicsInfo->oam->size; + sprite->images = graphicsInfo->images; + sprite->anims = graphicsInfo->anims; + sprite->subspriteTables = graphicsInfo->subspriteTables; + sprite->oam.paletteNum = paletteSlot; + mapObject->mapobj_bit_12 = graphicsInfo->inanimate; + mapObject->graphicsId = graphicsId; + sub_8093038(mapObject->coords2.x, mapObject->coords2.y, &sprite->pos1.x, &sprite->pos1.y); + sprite->centerToCornerVecX = -(graphicsInfo->width >> 1); + sprite->centerToCornerVecY = -(graphicsInfo->height >> 1); + sprite->pos1.x += 8; + sprite->pos1.y += 16 + sprite->centerToCornerVecY; + if (mapObject->mapobj_bit_15) + { + CameraObjectReset1(); + } +} + +void FieldObjectSetGraphicsIdByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup, u8 graphicsId) +{ + u8 mapObjectId; + + if (!TryGetFieldObjectIdByLocalIdAndMap(localId, mapNum, mapGroup, &mapObjectId)) + { + FieldObjectSetGraphicsId(&gMapObjects[mapObjectId], graphicsId); + } +} + +void FieldObjectTurn(struct MapObject *mapObject, u8 direction) +{ + FieldObjectSetDirection(mapObject, direction); + if (!mapObject->mapobj_bit_12) + { + StartSpriteAnim(&gSprites[mapObject->spriteId], FieldObjectDirectionToImageAnimId(mapObject->mapobj_unk_18)); + SeekSpriteAnim(&gSprites[mapObject->spriteId], 0); + } +} + +void FieldObjectTurnByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup, u8 direction) +{ + u8 mapObjectId; + + if (!TryGetFieldObjectIdByLocalIdAndMap(localId, mapNum, mapGroup, &mapObjectId)) + { + FieldObjectTurn(&gMapObjects[mapObjectId], direction); + } +} + +void PlayerObjectTurn(struct PlayerAvatar *playerAvatar, u8 direction) +{ + FieldObjectTurn(&gMapObjects[playerAvatar->mapObjectId], direction); +} + +/*static*/ void get_berry_tree_graphics(struct MapObject *mapObject, struct Sprite *sprite) +{ + u8 berryStage; + u8 berryId; + + mapObject->mapobj_bit_13 = TRUE; + sprite->invisible = TRUE; + berryStage = GetStageByBerryTreeId(mapObject->trainerRange_berryTreeId); + if (berryStage != 0) + { + mapObject->mapobj_bit_13 = FALSE; + sprite->invisible = FALSE; + berryId = GetBerryTypeByBerryTreeId(mapObject->trainerRange_berryTreeId) - 1; + berryStage -= 1; + if (berryId >= NUM_BERRIES) + { + berryId = 0; + } + FieldObjectSetGraphicsId(mapObject, gBerryTreeFieldObjectGraphicsIdTablePointers[berryId][berryStage]); + sprite->images = gBerryTreePicTablePointers[berryId]; + sprite->oam.paletteNum = gBerryTreePaletteSlotTablePointers[berryId][berryStage]; + StartSpriteAnim(sprite, berryStage); + } +} + +const struct MapObjectGraphicsInfo *GetFieldObjectGraphicsInfo(u8 graphicsId) +{ + u8 bard; + + if (graphicsId >= SPRITE_VAR) + { + graphicsId = VarGetFieldObjectGraphicsId(graphicsId - SPRITE_VAR); + } + if (graphicsId == 0x45) + { + bard = sub_81201C8(); + return gMauvilleOldManGraphicsInfoPointers[bard]; + } + if (graphicsId >= NUM_OBJECT_GRAPHICS_INFO) + { + graphicsId = 0x05; // LittleBoy1 + } + return gFieldObjectGraphicsInfoPointers[graphicsId]; +} + +static void FieldObjectHandleDynamicGraphicsId(struct MapObject *mapObject) +{ + if (mapObject->graphicsId >= SPRITE_VAR) + { + mapObject->graphicsId = VarGetFieldObjectGraphicsId(mapObject->graphicsId - SPRITE_VAR); + } +} + +void npc_by_local_id_and_map_set_field_1_bit_x20(u8 localId, u8 mapNum, u8 mapGroup, u8 state) +{ + u8 mapObjectId; + + if (!TryGetFieldObjectIdByLocalIdAndMap(localId, mapNum, mapGroup, &mapObjectId)) + { + gMapObjects[mapObjectId].mapobj_bit_13 = state; + } +} + +void FieldObjectGetLocalIdAndMap(struct MapObject *mapObject, u8 *localId, u8 *mapNum, u8 *mapGroup) +{ + *localId = mapObject->localId; + *mapNum = mapObject->mapNum; + *mapGroup = mapObject->mapGroup; +} + +void sub_808E75C(s16 x, s16 y) +{ + u8 mapObjectId; + struct MapObject *mapObject; + + mapObjectId = GetFieldObjectIdByXY(x, y); + if (mapObjectId != NUM_FIELD_OBJECTS) + { + mapObject = &gMapObjects[mapObjectId]; + mapObject->mapobj_bit_2 = TRUE; + } +} + +void sub_808E78C(u8 localId, u8 mapNum, u8 mapGroup, u8 subpriority) +{ + u8 mapObjectId; + struct MapObject *mapObject; + struct Sprite *sprite; + + if (!TryGetFieldObjectIdByLocalIdAndMap(localId, mapNum, mapGroup, &mapObjectId)) + { + mapObject = &gMapObjects[mapObjectId]; + sprite = &gSprites[mapObject->spriteId]; + mapObject->mapobj_bit_26 = TRUE; + sprite->subpriority = subpriority; + } +} + +void sub_808E7E4(u8 localId, u8 mapNum, u8 mapGroup) +{ + u8 mapObjectId; + struct MapObject *mapObject; + + if (!TryGetFieldObjectIdByLocalIdAndMap(localId, mapNum, mapGroup, &mapObjectId)) + { + mapObject = &gMapObjects[mapObjectId]; + mapObject->mapobj_bit_26 = FALSE; + mapObject->mapobj_bit_2 = TRUE; + } +} + +void sub_808E82C(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y) +{ + u8 mapObjectId; + struct Sprite *sprite; + + if (!TryGetFieldObjectIdByLocalIdAndMap(localId, mapNum, mapGroup, &mapObjectId)) + { + sprite = &gSprites[gMapObjects[mapObjectId].spriteId]; + sprite->pos2.x = x; + sprite->pos2.y = y; + } +} + +void gpu_pal_allocator_reset__manage_upper_four(void) +{ + FreeAllSpritePalettes(); + gReservedSpritePaletteCount = 12; +} + +static void sub_808E894(u16 paletteTag) +{ + u16 paletteSlot; + + paletteSlot = FindFieldObjectPaletteIndexByTag(paletteTag); + if (paletteSlot != 0x11ff) // always true + { + sub_808E8F4(&gUnknown_0850BBC8[paletteSlot]); + } +} + +void sub_808E8C0(u16 *paletteTags) +{ + u8 i; + + for (i = 0; paletteTags[i] != 0x11ff; i ++) + { + sub_808E894(paletteTags[i]); + } +} + +static u8 sub_808E8F4(const struct SpritePalette *spritePalette) +{ + if (IndexOfSpritePaletteTag(spritePalette->tag) != 0xff) + { + return 0xff; + } + return LoadSpritePalette(spritePalette); +} + +void pal_patch_for_npc(u16 paletteTag, u8 paletteSlot) +{ + u16 paletteIdx; + + paletteIdx = FindFieldObjectPaletteIndexByTag(paletteTag); + LoadPalette(gUnknown_0850BBC8[paletteIdx].data, 16 * paletteSlot + 256, 0x20); +} + +void pal_patch_for_npc_range(const u16 *paletteTags, u8 minSlot, u8 maxSlot) +{ + while (minSlot < maxSlot) + { + pal_patch_for_npc(*paletteTags, minSlot); + paletteTags ++; + minSlot ++; + } +} + +static u8 FindFieldObjectPaletteIndexByTag(u16 tag) +{ + u8 i; + + for (i = 0; gUnknown_0850BBC8[i].tag != 0x11ff; i ++) + { + if (gUnknown_0850BBC8[i].tag == tag) + { + return i; + } + } + return 0xff; +} + +void npc_load_two_palettes__no_record(u16 tag, u8 slot) +{ + u8 i; + + pal_patch_for_npc(tag, slot); + for (i = 0; gUnknown_0850BD00[i].tag != 0x11ff; i ++) + { + if (gUnknown_0850BD00[i].tag == tag) + { + pal_patch_for_npc(gUnknown_0850BD00[i].data[gUnknown_020375B4], gUnknown_084975C4[slot]); + return; + } + } +} + +void npc_load_two_palettes__and_record(u16 tag, u8 slot) +{ + u8 i; + + gUnknown_020375B6 = tag; + pal_patch_for_npc(tag, slot); + for (i = 0; gUnknown_0850BD78[i].tag != 0x11ff; i ++) + { + if (gUnknown_0850BD78[i].tag == tag) + { + pal_patch_for_npc(gUnknown_0850BD78[i].data[gUnknown_020375B4], gUnknown_084975C4[slot]); + return; + } + } +} + +static void sub_808EAB0(u16 tag, u8 slot) +{ + pal_patch_for_npc(tag, slot); +} + +void unref_sub_808EAC4(struct MapObject *mapObject, s16 x, s16 y) +{ + mapObject->coords3.x = mapObject->coords2.x; + mapObject->coords3.y = mapObject->coords2.y; + mapObject->coords2.x += x; + mapObject->coords2.y += y; +} + +void npc_coords_shift(struct MapObject *mapObject, s16 x, s16 y) +{ + mapObject->coords3.x = mapObject->coords2.x; + mapObject->coords3.y = mapObject->coords2.y; + mapObject->coords2.x = x; + mapObject->coords2.y = y; +} + +/*static*/ void npc_coords_set(struct MapObject *mapObject, s16 x, s16 y) +{ + mapObject->coords3.x = x; + mapObject->coords3.y = y; + mapObject->coords2.x = x; + mapObject->coords2.y = y; +} + +void sub_808EB08(struct MapObject *mapObject, s16 x, s16 y) +{ + struct Sprite *sprite; + const struct MapObjectGraphicsInfo *graphicsInfo; + + sprite = &gSprites[mapObject->spriteId]; + graphicsInfo = GetFieldObjectGraphicsInfo(mapObject->graphicsId); + npc_coords_set(mapObject, x, y); + sub_8093038(mapObject->coords2.x, mapObject->coords2.y, &sprite->pos1.x, &sprite->pos1.y); + sprite->centerToCornerVecX = -(graphicsInfo->width >> 1); + sprite->centerToCornerVecY = -(graphicsInfo->height >> 1); + sprite->pos1.x += 8; + sprite->pos1.y += 16 + sprite->centerToCornerVecY; + sub_808E38C(mapObject); + if (mapObject->mapobj_bit_15) + { + CameraObjectReset1(); + } +} + +void sub_808EBA8(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y) +{ + u8 mapObjectId; + + if (!TryGetFieldObjectIdByLocalIdAndMap(localId, mapNum, mapGroup, &mapObjectId)) + { + x += 7; + y += 7; + sub_808EB08(&gMapObjects[mapObjectId], x, y); + } +} + +void npc_coords_shift_still(struct MapObject *mapObject) +{ + npc_coords_shift(mapObject, mapObject->coords2.x, mapObject->coords2.y); +} + +void UpdateFieldObjectCoordsForCameraUpdate(void) +{ + u8 i; + s16 dx; + s16 dy; + + if (gCamera.active) + { + dx = gCamera.x; + dy = gCamera.y; + for (i = 0; i < NUM_FIELD_OBJECTS; i ++) + { + if (gMapObjects[i].active) + { + gMapObjects[i].coords1.x -= dx; + gMapObjects[i].coords1.y -= dy; + gMapObjects[i].coords2.x -= dx; + gMapObjects[i].coords2.y -= dy; + gMapObjects[i].coords3.x -= dx; + gMapObjects[i].coords3.y -= dy; + } + } + } +} + +u8 GetFieldObjectIdByXYZ(u16 x, u16 y, u8 z) +{ + u8 i; + for (i = 0; i < NUM_FIELD_OBJECTS; i ++) + { + if (gMapObjects[i].active) + { + if (gMapObjects[i].coords2.x == x && gMapObjects[i].coords2.y == y && FieldObjectDoesZCoordMatch(&gMapObjects[i], z)) + { + return i; + } + } + } + return NUM_FIELD_OBJECTS; +} + +static bool8 FieldObjectDoesZCoordMatch(struct MapObject *mapObject, u8 z) +{ + if (mapObject->mapobj_unk_0B_0 != 0 && z != 0 && mapObject->mapobj_unk_0B_0 != z) + { + return FALSE; + } + return TRUE; +} + +void UpdateFieldObjectsForCameraUpdate(s16 x, s16 y) +{ + UpdateFieldObjectCoordsForCameraUpdate(); + SpawnFieldObjectsInView(x, y); + RemoveFieldObjectsOutsideView(); +} + +u8 AddCameraObject(u8 linkedSpriteId) +{ + u8 spriteId; + + spriteId = CreateSprite(&gUnknown_084975D4, 0, 0, 4); + gSprites[spriteId].invisible = TRUE; + gSprites[spriteId].data0 = linkedSpriteId; + return spriteId; +} + +void ObjectCB_CameraObject(struct Sprite *sprite) +{ + void (*callbacks[ARRAY_COUNT(gUnknown_084975EC)])(struct Sprite *); + + memcpy(callbacks, gUnknown_084975EC, sizeof gUnknown_084975EC); + callbacks[sprite->data1](sprite); +} + +/*static*/ void CameraObject_0(struct Sprite *sprite) +{ + sprite->pos1.x = gSprites[sprite->data0].pos1.x; + sprite->pos1.y = gSprites[sprite->data0].pos1.y; + sprite->invisible = TRUE; + sprite->data1 = 1; + CameraObject_1(sprite); +} + +/*static*/ void CameraObject_1(struct Sprite *sprite) +{ + s16 x; + s16 y; + + y = gSprites[sprite->data0].pos1.y; + x = gSprites[sprite->data0].pos1.x; + sprite->data2 = x - sprite->pos1.x; + sprite->data3 = y - sprite->pos1.y; + sprite->pos1.x = x; + sprite->pos1.y = y; +} + +/*static*/ void CameraObject_2(struct Sprite *sprite) +{ + sprite->pos1.x = gSprites[sprite->data0].pos1.x; + sprite->pos1.y = gSprites[sprite->data0].pos1.y; + sprite->data2 = 0; + sprite->data3 = 0; +} + +static struct Sprite *FindCameraObject(void) +{ + u8 spriteId; + + for (spriteId = 0; spriteId < MAX_SPRITES; spriteId ++) + { + if (gSprites[spriteId].inUse && gSprites[spriteId].callback == ObjectCB_CameraObject) + { + return &gSprites[spriteId]; + } + } + return NULL; +} + +void CameraObjectReset1(void) +{ + struct Sprite *cameraObject; + + cameraObject = FindCameraObject(); + if (cameraObject != NULL) + { + cameraObject->data1 = 0; + cameraObject->callback(cameraObject); + } +} + +void CameraObjectSetFollowedObjectId(u8 objectId) +{ + struct Sprite *cameraObject; + + cameraObject = FindCameraObject(); + if (cameraObject != NULL) + { + cameraObject->data0 = objectId; + CameraObjectReset1(); + } +} + +u8 CameraObjectGetFollowedObjectId(void) +{ + struct Sprite *cameraObject; + + cameraObject = FindCameraObject(); + if (cameraObject == NULL) + { + return MAX_SPRITES; + } + return cameraObject->data0; +} + +void CameraObjectReset2(void) +{ + FindCameraObject()->data1 = 2; +} + +u8 CopySprite(struct Sprite *sprite, s16 x, s16 y, u8 subpriority) +{ + u8 i; + + for (i = 0; i < MAX_SPRITES; i ++) + { + if (!gSprites[i].inUse) + { + gSprites[i] = *sprite; + gSprites[i].pos1.x = x; + gSprites[i].pos1.y = y; + gSprites[i].subpriority = subpriority; + break; + } + } + return i; +} + +u8 obj_unfreeze(struct Sprite *sprite, s16 x, s16 y, u8 subpriority) +{ + s16 i; + + for (i = MAX_SPRITES - 1; i > -1; i --) + { + if (!gSprites[i].inUse) + { + gSprites[i] = *sprite; + gSprites[i].pos1.x = x; + gSprites[i].pos1.y = y; + gSprites[i].subpriority = subpriority; + return i; + } + } + return MAX_SPRITES; +} + +void FieldObjectSetDirection(struct MapObject *mapObject, u8 direction) +{ + s8 d2; + mapObject->mapobj_unk_20 = mapObject->mapobj_unk_18; + if (!mapObject->mapobj_bit_9) + { + d2 = direction; + mapObject->mapobj_unk_18 = d2; + } + mapObject->placeholder18 = direction; +} + +static const u8 *GetFieldObjectScriptPointerByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup) +{ + return GetFieldObjectTemplateByLocalIdAndMap(localId, mapNum, mapGroup)->script; +} + +const u8 *GetFieldObjectScriptPointerByFieldObjectId(u8 mapObjectId) +{ + return GetFieldObjectScriptPointerByLocalIdAndMap(gMapObjects[mapObjectId].localId, gMapObjects[mapObjectId].mapNum, gMapObjects[mapObjectId].mapGroup); +} + +static u16 GetFieldObjectFlagIdByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup) +{ + return GetFieldObjectTemplateByLocalIdAndMap(localId, mapNum, mapGroup)->flagId; +} + +u16 GetFieldObjectFlagIdByFieldObjectId(u8 mapObjectId) +{ + return GetFieldObjectFlagIdByLocalIdAndMap(gMapObjects[mapObjectId].localId, gMapObjects[mapObjectId].mapNum, gMapObjects[mapObjectId].mapGroup); +} + +u8 sub_808F080(u8 localId, u8 mapNum, u8 mapGroup) +{ + u8 mapObjectId; + + if (TryGetFieldObjectIdByLocalIdAndMap(localId, mapNum, mapGroup, &mapObjectId)) + { + return 0xFF; + } + return gMapObjects[mapObjectId].trainerType; +} + +u8 sub_808F0BC(u8 mapObjectId) +{ + return gMapObjects[mapObjectId].trainerType; +} + +u8 sub_808F0D4(u8 localId, u8 mapNum, u8 mapGroup) +{ + u8 mapObjectId; + + if (TryGetFieldObjectIdByLocalIdAndMap(localId, mapNum, mapGroup, &mapObjectId)) + { + return 0xFF; + } + return gMapObjects[mapObjectId].trainerRange_berryTreeId; +} + +u8 FieldObjectGetBerryTreeId(u8 mapObjectId) +{ + return gMapObjects[mapObjectId].trainerRange_berryTreeId; +} + +struct MapObjectTemplate *GetFieldObjectTemplateByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup) +{ + struct MapObjectTemplate *templates; + const struct MapHeader *mapHeader; + u8 count; + + if (gSaveBlock1Ptr->location.mapNum == mapNum && gSaveBlock1Ptr->location.mapGroup == mapGroup) + { + templates = gSaveBlock1Ptr->mapObjectTemplates; + count = gMapHeader.events->mapObjectCount; + } + else + { + mapHeader = get_mapheader_by_bank_and_number(mapGroup, mapNum); + templates = mapHeader->events->mapObjects; + count = mapHeader->events->mapObjectCount; + } + return FindFieldObjectTemplateInArrayByLocalId(localId, templates, count); +} + +struct MapObjectTemplate *FindFieldObjectTemplateInArrayByLocalId(u8 localId, struct MapObjectTemplate *templates, u8 count) +{ + u8 i; + + for (i = 0; i < count; i ++) + { + if (templates[i].localId == localId) + { + return &templates[i]; + } + } + return NULL; +} + +struct MapObjectTemplate *sub_808F1B4(const struct MapObject *mapObject) +{ + int i; + + if (mapObject->mapNum != gSaveBlock1Ptr->location.mapNum || mapObject->mapGroup != gSaveBlock1Ptr->location.mapGroup) + { + return NULL; + } + for (i = 0; i < 64; i ++) // Using ARRAY_COUNT here results in the wrong conditional branch instruction (bls instead of ble) + { + if (mapObject->localId == gSaveBlock1Ptr->mapObjectTemplates[i].localId) + { + return &gSaveBlock1Ptr->mapObjectTemplates[i]; + } + } + return NULL; +} + +void sub_808F208(const struct MapObject *mapObject) +{ + struct MapObjectTemplate *mapObjectTemplate; + + mapObjectTemplate = sub_808F1B4(mapObject); + if (mapObjectTemplate != NULL) + { + mapObjectTemplate->x = mapObject->coords2.x - 7; + mapObjectTemplate->y = mapObject->coords2.y - 7; + } +} + +void sub_808F228(const struct MapObject *mapObject, const u8 *script) +{ + struct MapObjectTemplate *mapObjectTemplate; + + mapObjectTemplate = sub_808F1B4(mapObject); + if (mapObjectTemplate != NULL) + { + mapObjectTemplate->script = script; + } +} + +void sub_808F23C(const struct MapObject *mapObject, u8 movementType) +{ + struct MapObjectTemplate *mapObjectTemplate; + + mapObjectTemplate = sub_808F1B4(mapObject); + if (mapObjectTemplate != NULL) + { + mapObjectTemplate->movementType = movementType; + } +} + +void sub_808F254(u8 localId, u8 mapNum, u8 mapGroup) +{ + u8 mapObjectId; + + if (!TryGetFieldObjectIdByLocalIdAndMap(localId, mapNum, mapGroup, &mapObjectId)) + { + sub_808F208(&gMapObjects[mapObjectId]); + } +} + +void sub_808F28C(u8 localId, u8 mapNum, u8 mapGroup, u8 action) +{ + u8 mapObjectId; + + if (!TryGetFieldObjectIdByLocalIdAndMap(localId, mapNum, mapGroup, &mapObjectId)) + { + switch (action) + { + case 6: + sub_808F228(&gMapObjects[mapObjectId], gUnknown_082766A2); + break; + case 7: + sub_808F228(&gMapObjects[mapObjectId], gUnknown_082766A6); + break; + } + } +} + +void npc_paltag_set_load(u8 palSlot) +{ + gpu_pal_allocator_reset__manage_upper_four(); + gUnknown_020375B6 = 0x11ff; + gUnknown_020375B4 = palSlot; + if (palSlot == 1) + { + pal_patch_for_npc_range(gUnknown_0850BE38[gUnknown_020375B4], 0, 6); + gReservedSpritePaletteCount = 8; + } + else + { + pal_patch_for_npc_range(gUnknown_0850BE38[gUnknown_020375B4], 0, 10); + } +} + +u16 npc_paltag_by_palslot(u8 palSlot) +{ + u8 i; + + if (palSlot < 10) + { + return gUnknown_0850BE38[gUnknown_020375B4][palSlot]; + } + for (i = 0; gUnknown_0850BD78[i].tag != 0x11ff; i ++) + { + if (gUnknown_0850BD78[i].tag == gUnknown_020375B6) + { + return gUnknown_0850BD78[i].data[gUnknown_020375B4]; + } + } + return 0x11ff; +} + +// Map Object Step Callbacks +// file boundary? + +null_object_step(NoMovement1, FALSE) + +field_object_step(GoRandomDirections, gUnknown_0850D6F4) + +bool8 sub_808F44C(struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_reset(mapObject, sprite); + sprite->data1 = 1; + return TRUE; +} + +bool8 sub_808F460(struct MapObject *mapObject, struct Sprite *sprite) +{ + FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18)); + sprite->data1 = 2; + return TRUE; +} + +bool8 sub_808F48C(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (!FieldObjectExecRegularAnim(mapObject, sprite)) + { + return FALSE; + } + SetFieldObjectStepTimer(sprite, gUnknown_0850D6DC[Random() & 0x03]); + sprite->data1 = 3; + return TRUE; +} + +bool8 sub_808F4C8(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (RunFieldObjectStepTimer(sprite)) + { + sprite->data1 = 4; + return TRUE; + } + return FALSE; +} + +bool8 sub_808F4E8(struct MapObject *mapObject, struct Sprite *sprite) +{ + u8 directions[4]; + u8 chosenDirection; + + memcpy(directions, gUnknown_0850D710, sizeof directions); + chosenDirection = directions[Random() & 0x03]; + FieldObjectSetDirection(mapObject, chosenDirection); + sprite->data1 = 5; + if (npc_block_way__next_tile(mapObject, chosenDirection)) + { + sprite->data1 = 1; + } + return TRUE; +} + +bool8 sub_808F534(struct MapObject *mapObject, struct Sprite *sprite) +{ + FieldObjectSetRegularAnim(mapObject, sprite, GetGoSpeed0AnimId(mapObject->placeholder18)); + mapObject->mapobj_bit_1 = TRUE; + sprite->data1 = 6; + return TRUE; +} + +bool8 sub_808F564(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (FieldObjectExecRegularAnim(mapObject, sprite)) + { + mapObject->mapobj_bit_1 = FALSE; + sprite->data1 = 1; + } + return FALSE; +} + +bool8 FieldObjectIsTrainerAndCloseToPlayer(struct MapObject *mapObject) +{ + s16 playerX; + s16 playerY; + s16 objX; + s16 objY; + s16 minX; + s16 maxX; + s16 minY; + s16 maxY; + + if (!TestPlayerAvatarFlags(0x80)) + { + return FALSE; + } + if (mapObject->trainerType != 1 && mapObject->trainerType != 3) + { + return FALSE; + } + PlayerGetDestCoords(&playerX, &playerY); + objX = mapObject->coords2.x; + objY = mapObject->coords2.y; + minX = objX - mapObject->trainerRange_berryTreeId; + minY = objY - mapObject->trainerRange_berryTreeId; + maxX = objX + mapObject->trainerRange_berryTreeId; + maxY = objY + mapObject->trainerRange_berryTreeId; + if (minX > playerX || maxX < playerX || minY > playerY || maxY < playerY) + { + return FALSE; + } + return TRUE; +} + +u8 GetRegularRunningPastFacingDirection(s16 dx, s16 dy, s16 absdx, s16 absdy) +{ + u8 direction; + + if (absdx > absdy) + { + direction = DIR_EAST; + if (dx < 0) + { + direction = DIR_WEST; + } + } + else + { + direction = DIR_SOUTH; + if (dy < 0) + { + direction = DIR_NORTH; + } + } + return direction; +} + +u8 GetNorthSouthRunningPastFacingDirection(s16 dx, s16 dy, s16 absdx, s16 absdy) +{ + u8 direction; + + direction = DIR_SOUTH; + if (dy < 0) + { + direction = DIR_NORTH; + } + return direction; +} + +u8 GetEastWestRunningPastFacingDirection(s16 dx, s16 dy, s16 absdx, s16 absdy) +{ + u8 direction; + + direction = DIR_EAST; + if (dx < 0) + { + direction = DIR_WEST; + } + return direction; +} + +u8 GetNorthEastRunningPastFacingDirection(s16 dx, s16 dy, s16 absdx, s16 absdy) +{ + u8 direction; + + direction = GetRegularRunningPastFacingDirection(dx, dy, absdx, absdy); + if (direction == DIR_SOUTH) + { + direction = GetEastWestRunningPastFacingDirection(dx, dy, absdx, absdy); + if (direction == DIR_EAST) + { + direction = DIR_NORTH; + } + } + else if (direction == DIR_EAST) + { + direction = GetNorthSouthRunningPastFacingDirection(dx, dy, absdx, absdy); + if (direction == DIR_SOUTH) + { + direction = DIR_NORTH; + } + } + return direction; +} + +u8 GetNorthWestRunningPastFacingDirection(s16 dx, s16 dy, s16 absdx, s16 absdy) +{ + u8 direction; + + direction = GetRegularRunningPastFacingDirection(dx, dy, absdx, absdy); + if (direction == DIR_SOUTH) + { + direction = GetEastWestRunningPastFacingDirection(dx, dy, absdx, absdy); + if (direction == DIR_WEST) + { + direction = DIR_NORTH; + } + } + else if (direction == DIR_WEST) + { + direction = GetNorthSouthRunningPastFacingDirection(dx, dy, absdx, absdy); + if (direction == DIR_SOUTH) + { + direction = DIR_NORTH; + } + } + return direction; +} + +u8 GetSouthEastRunningPastFacingDirection(s16 dx, s16 dy, s16 absdx, s16 absdy) +{ + u8 direction; + + direction = GetRegularRunningPastFacingDirection(dx, dy, absdx, absdy); + if (direction == DIR_NORTH) + { + direction = GetEastWestRunningPastFacingDirection(dx, dy, absdx, absdy); + if (direction == DIR_EAST) + { + direction = DIR_SOUTH; + } + } + else if (direction == DIR_EAST) + { + direction = GetNorthSouthRunningPastFacingDirection(dx, dy, absdx, absdy); + if (direction == DIR_NORTH) + { + direction = DIR_SOUTH; + } + } + return direction; +} + +u8 GetSouthWestRunningPastFacingDirection(s16 dx, s16 dy, s16 absdx, s16 absdy) +{ + u8 direction; + + direction = GetRegularRunningPastFacingDirection(dx, dy, absdx, absdy); + if (direction == DIR_NORTH) + { + direction = GetEastWestRunningPastFacingDirection(dx, dy, absdx, absdy); + if (direction == DIR_WEST) + { + direction = DIR_SOUTH; + } + } + else if (direction == DIR_WEST) + { + direction = GetNorthSouthRunningPastFacingDirection(dx, dy, absdx, absdy); + if (direction == DIR_NORTH) + { + direction = DIR_SOUTH; + } + } + return direction; +} + +u8 GetNonEastRunningPastFacingDirection(s16 dx, s16 dy, s16 absdx, s16 absdy) +{ + u8 direction; + + direction = GetRegularRunningPastFacingDirection(dx, dy, absdx, absdy); + if (direction == DIR_EAST) + { + direction = GetNorthSouthRunningPastFacingDirection(dx, dy, absdx, absdy); + } + return direction; +} + +u8 GetNonWestRunningPastFacingDirection(s16 dx, s16 dy, s16 absdx, s16 absdy) +{ + u8 direction; + + direction = GetRegularRunningPastFacingDirection(dx, dy, absdx, absdy); + if (direction == DIR_WEST) + { + direction = GetNorthSouthRunningPastFacingDirection(dx, dy, absdx, absdy); + } + return direction; +} + +u8 GetNonSouthRunningPastFacingDirection(s16 dx, s16 dy, s16 absdx, s16 absdy) +{ + u8 direction; + + direction = GetRegularRunningPastFacingDirection(dx, dy, absdx, absdy); + if (direction == DIR_SOUTH) + { + direction = GetEastWestRunningPastFacingDirection(dx, dy, absdx, absdy); + } + return direction; +} + +u8 GetNonNorthRunningPastFacingDirection(s16 dx, s16 dy, s16 absdx, s16 absdy) +{ + u8 direction; + + direction = GetRegularRunningPastFacingDirection(dx, dy, absdx, absdy); + if (direction == DIR_NORTH) + { + direction = GetEastWestRunningPastFacingDirection(dx, dy, absdx, absdy); + } + return direction; +} + +u8 GetRunningPastFacingDirection(struct MapObject *mapObject, u8 movementType) +{ + s16 dx; + s16 dy; + s16 absdx; + s16 absdy; + + if (!FieldObjectIsTrainerAndCloseToPlayer(mapObject)) + { + return 0; + } + PlayerGetDestCoords(&dx, &dy); + dx -= mapObject->coords2.x; + dy -= mapObject->coords2.y; + absdx = dx; + absdy = dy; + if (absdx < 0) + { + absdx = -absdx; + } + if (absdy < 0) + { + absdy = -absdy; + } + return gUnknown_0850D714[movementType](dx, dy, absdx, absdy); +} + +field_object_step(LookRandomDirections, gUnknown_0850D740) + +bool8 sub_808F988(struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_reset(mapObject, sprite); + sprite->data1 = 1; + return TRUE; +} + +bool8 sub_808F99C(struct MapObject *mapObject, struct Sprite *sprite) +{ + FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18)); + sprite->data1 = 2; + return TRUE; +} + +bool8 sub_808F9C8(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (FieldObjectExecRegularAnim(mapObject, sprite)) + { + SetFieldObjectStepTimer(sprite, gUnknown_0850D6DC[Random() & 0x03]); + mapObject->mapobj_bit_1 = FALSE; + sprite->data1 = 3; + } + return FALSE; +} + +bool8 sub_808FA0C(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (RunFieldObjectStepTimer(sprite) || FieldObjectIsTrainerAndCloseToPlayer(mapObject)) + { + sprite->data1 = 4; + return TRUE; + } + return FALSE; +} + +bool8 sub_808FA3C(struct MapObject *mapObject, struct Sprite *sprite) +{ + u8 directions[4]; + u8 direction; + + memcpy(directions, gUnknown_0850D710, sizeof directions); + direction = GetRunningPastFacingDirection(mapObject, RUNFOLLOW_ANY); + if (direction == 0) + { + direction = directions[Random() & 0x03]; + } + FieldObjectSetDirection(mapObject, direction); + sprite->data1 = 1; + return TRUE; +} + +field_object_step(RandomlyGoNorthOrSouth, gUnknown_0850D754) + +bool8 sub_808FAC8(struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_reset(mapObject, sprite); + sprite->data1 = 1; + return TRUE; +} + +bool8 sub_808FADC(struct MapObject *mapObject, struct Sprite *sprite) +{ + FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18)); + sprite->data1 = 2; + return TRUE; +} + +bool8 sub_808FB08(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (!FieldObjectExecRegularAnim(mapObject, sprite)) + { + return FALSE; + } + SetFieldObjectStepTimer(sprite, gUnknown_0850D6DC[Random() & 0x03]); + sprite->data1 = 3; + return TRUE; +} + +bool8 sub_808FB44(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (RunFieldObjectStepTimer(sprite)) + { + sprite->data1 = 4; + return TRUE; + } + return FALSE; +} + +bool8 sub_808FB64(struct MapObject *mapObject, struct Sprite *sprite) +{ + u8 directions[2]; + u8 direction; + + memcpy(directions, gUnknown_0850D770, sizeof directions); + direction = directions[Random() & 0x01]; + FieldObjectSetDirection(mapObject, direction); + sprite->data1 = 5; + if (npc_block_way__next_tile(mapObject, direction)) + { + sprite->data1 = 1; + } + return TRUE; +} + +bool8 sub_808FBB0(struct MapObject *mapObject, struct Sprite *sprite) +{ + FieldObjectSetRegularAnim(mapObject, sprite, GetGoSpeed0AnimId(mapObject->placeholder18)); + mapObject->mapobj_bit_1 = TRUE; + sprite->data1 = 6; + return TRUE; +} + +bool8 sub_808FBE0(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (FieldObjectExecRegularAnim(mapObject, sprite)) + { + mapObject->mapobj_bit_1 = FALSE; + sprite->data1 = 1; + } + return FALSE; +} + +field_object_step(RandomlyGoEastOrWest, gUnknown_0850D774) + +bool8 sub_808FC4C(struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_reset(mapObject, sprite); + sprite->data1 = 1; + return TRUE; +} + +bool8 sub_808FC60(struct MapObject *mapObject, struct Sprite *sprite) +{ + FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18)); + sprite->data1 = 2; + return TRUE; +} + +bool8 sub_808FC8C(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (!FieldObjectExecRegularAnim(mapObject, sprite)) + { + return FALSE; + } + SetFieldObjectStepTimer(sprite, gUnknown_0850D6DC[Random() & 0x03]); + sprite->data1 = 3; + return TRUE; +} + +bool8 sub_808FCC8(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (RunFieldObjectStepTimer(sprite)) + { + sprite->data1 = 4; + return TRUE; + } + return FALSE; +} + +bool8 sub_808FCE8(struct MapObject *mapObject, struct Sprite *sprite) +{ + u8 directions[2]; + u8 direction; + + memcpy(directions, gUnknown_0850D790, sizeof directions); + direction = directions[Random() & 0x01]; + FieldObjectSetDirection(mapObject, direction); + sprite->data1 = 5; + if (npc_block_way__next_tile(mapObject, direction)) + { + sprite->data1 = 1; + } + return TRUE; +} + +bool8 sub_808FD34(struct MapObject *mapObject, struct Sprite *sprite) +{ + FieldObjectSetRegularAnim(mapObject, sprite, GetGoSpeed0AnimId(mapObject->placeholder18)); + mapObject->mapobj_bit_1 = TRUE; + sprite->data1 = 6; + return TRUE; +} + +bool8 sub_808FD64(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (FieldObjectExecRegularAnim(mapObject, sprite)) + { + mapObject->mapobj_bit_1 = FALSE; + sprite->data1 = 1; + } + return FALSE; +} + +field_object_step(FaceFixedDirection, gUnknown_0850D794) + +bool8 sub_808FDD0(struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_reset(mapObject, sprite); + FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18)); + sprite->data1 = 1; + return TRUE; +} + +bool8 sub_808FDFC(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (FieldObjectExecRegularAnim(mapObject, sprite)) + { + sprite->data1 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_808FE1C(struct MapObject *mapObject, struct Sprite *sprite) +{ + mapObject->mapobj_bit_1 = FALSE; + return FALSE; +} + +static bool8 FieldObjectCB2_BerryTree(struct MapObject *mapObject, struct Sprite *sprite); +extern bool8 (*const gUnknown_0850D7A0[])(struct MapObject *mapObject, struct Sprite *sprite); +void FieldObjectCB_BerryTree(struct Sprite *sprite) +{ + struct MapObject *mapObject; + + mapObject = &gMapObjects[sprite->data0]; + if (!(sprite->data7 & 0x0001)) + { + get_berry_tree_graphics(mapObject, sprite); + sprite->data7 |= 0x0001; + } + FieldObjectStep(mapObject, sprite, FieldObjectCB2_BerryTree); +} +static bool8 FieldObjectCB2_BerryTree(struct MapObject *mapObject, struct Sprite *sprite) +{ + return gUnknown_0850D7A0[sprite->data1](mapObject, sprite); +} + +bool8 do_berry_tree_growth_sparkle_1 (struct MapObject *mapObject, struct Sprite *sprite) +{ + u8 berryStage; + + npc_reset(mapObject, sprite); + mapObject->mapobj_bit_13 = TRUE; + sprite->invisible = TRUE; + berryStage = GetStageByBerryTreeId(mapObject->trainerRange_berryTreeId); + if (berryStage == 0) + { + if (!(sprite->data7 & 0x0004) && sprite->animNum == 4) + { + gFieldEffectSpawnParams[0] = mapObject->coords2.x; + gFieldEffectSpawnParams[1] = mapObject->coords2.y; + gFieldEffectSpawnParams[2] = sprite->subpriority - 1; + gFieldEffectSpawnParams[3] = sprite->oam.priority; + FieldEffectStart(FLDEFF_BERRY_TREE_GROWTH_SPARKLE); + sprite->animNum = berryStage; + } + return FALSE; + } + mapObject->mapobj_bit_13 = FALSE; + sprite->invisible = FALSE; + berryStage --; + if (sprite->animNum != berryStage) + { + sprite->data1 = 2; + return TRUE; + } + get_berry_tree_graphics(mapObject, sprite); + FieldObjectSetRegularAnim(mapObject, sprite, 0x39); + sprite->data1 = 1; + return TRUE; +} + +bool8 sub_808FF48 (struct MapObject *mapObject, struct Sprite *sprite) +{ + if (FieldObjectExecRegularAnim(mapObject, sprite)) + { + sprite->data1 = 0; + return TRUE; + } + return FALSE; +} + +bool8 do_berry_tree_growth_sparkle_2 (struct MapObject *mapObject, struct Sprite *sprite) +{ + mapObject->mapobj_bit_1 = TRUE; + sprite->data1 = 3; + sprite->data2 = 0; + sprite->data7 |= 0x0002; + gFieldEffectSpawnParams[0] = mapObject->coords2.x; + gFieldEffectSpawnParams[1] = mapObject->coords2.y; + gFieldEffectSpawnParams[2] = sprite->subpriority - 1; + gFieldEffectSpawnParams[3] = sprite->oam.priority; + FieldEffectStart(FLDEFF_BERRY_TREE_GROWTH_SPARKLE); + return TRUE; +} + +bool8 sub_808FFB4 (struct MapObject *mapObject, struct Sprite *sprite) +{ + sprite->data2 ++; + mapObject->mapobj_bit_13 = (sprite->data2 & 0x02) >> 1; + sprite->animPaused = TRUE; + if (sprite->data2 > 64) + { + get_berry_tree_graphics(mapObject, sprite); + sprite->data1 = 4; + sprite->data2 = 0; + return TRUE; + } + return FALSE; +} + +bool8 sub_8090004 (struct MapObject *mapObject, struct Sprite *sprite) +{ + sprite->data2 ++; + mapObject->mapobj_bit_13 = (sprite->data2 & 0x02) >> 1; + sprite->animPaused = TRUE; + if (sprite->data2 > 64) + { + sprite->data1 = 0; + sprite->data7 &= ~0x0002; + return TRUE; + } + return FALSE; +} + +field_object_step(RandomlyLookNorthOrSouth, gUnknown_0850D7B4) + +bool8 sub_8090094 (struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_reset(mapObject, sprite); + sprite->data1 = 1; + return TRUE; +} + +bool8 sub_80900A8 (struct MapObject *mapObject, struct Sprite *sprite) +{ + FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18)); + sprite->data1 = 2; + return TRUE; +} + +bool8 sub_80900D4 (struct MapObject *mapObject, struct Sprite *sprite) +{ + if (FieldObjectExecRegularAnim(mapObject, sprite)) + { + SetFieldObjectStepTimer(sprite, gUnknown_0850D6DC[Random() & 0x03]); + mapObject->mapobj_bit_1 = FALSE; + sprite->data1 = 3; + } + return FALSE; +} + +bool8 sub_8090118 (struct MapObject *mapObject, struct Sprite *sprite) +{ + if (RunFieldObjectStepTimer(sprite) || FieldObjectIsTrainerAndCloseToPlayer(mapObject)) + { + sprite->data1 = 4; + return TRUE; + } + return FALSE; +} + +bool8 sub_8090148 (struct MapObject *mapObject, struct Sprite *sprite) +{ + u8 directions[2]; + u8 direction; + + memcpy(directions, gUnknown_0850D770, sizeof gUnknown_0850D770); + direction = GetRunningPastFacingDirection(mapObject, RUNFOLLOW_NORTH_SOUTH); + if (direction == 0) + { + direction = directions[Random() & 0x01]; + } + FieldObjectSetDirection(mapObject, direction); + sprite->data1 = 1; + return TRUE; +} + +field_object_step(RandomlyLookEastOrWest, gUnknown_0850D7C8) + +bool8 sub_80901D4 (struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_reset(mapObject, sprite); + sprite->data1 = 1; + return TRUE; +} + +bool8 sub_80901E8 (struct MapObject *mapObject, struct Sprite *sprite) +{ + FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18)); + sprite->data1 = 2; + return TRUE; +} + +bool8 sub_8090214 (struct MapObject *mapObject, struct Sprite *sprite) +{ + if (FieldObjectExecRegularAnim(mapObject, sprite)) + { + SetFieldObjectStepTimer(sprite, gUnknown_0850D6DC[Random() & 0x03]); + mapObject->mapobj_bit_1 = FALSE; + sprite->data1 = 3; + } + return FALSE; +} + +bool8 sub_8090258 (struct MapObject *mapObject, struct Sprite *sprite) +{ + if (RunFieldObjectStepTimer(sprite) || FieldObjectIsTrainerAndCloseToPlayer(mapObject)) + { + sprite->data1 = 4; + return TRUE; + } + return FALSE; +} + +bool8 sub_8090288 (struct MapObject *mapObject, struct Sprite *sprite) +{ + u8 directions[2]; + u8 direction; + + memcpy(directions, gUnknown_0850D790, sizeof gUnknown_0850D790); + direction = GetRunningPastFacingDirection(mapObject, RUNFOLLOW_EAST_WEST); + if (direction == 0) + { + direction = directions[Random() & 0x01]; + } + FieldObjectSetDirection(mapObject, direction); + sprite->data1 = 1; + return TRUE; +} + +field_object_step(RandomlyLookNorthOrWest, gUnknown_0850D7DC) + +bool8 sub_8090314 (struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_reset(mapObject, sprite); + sprite->data1 = 1; + return TRUE; +} + +bool8 sub_8090328 (struct MapObject *mapObject, struct Sprite *sprite) +{ + FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18)); + sprite->data1 = 2; + return TRUE; +} + +bool8 sub_8090354 (struct MapObject *mapObject, struct Sprite *sprite) +{ + if (FieldObjectExecRegularAnim(mapObject, sprite)) + { + SetFieldObjectStepTimer(sprite, gUnknown_0850D6EC[Random() & 0x03]); + mapObject->mapobj_bit_1 = FALSE; + sprite->data1 = 3; + } + return FALSE; +} + +bool8 sub_8090398 (struct MapObject *mapObject, struct Sprite *sprite) +{ + if (RunFieldObjectStepTimer(sprite) || FieldObjectIsTrainerAndCloseToPlayer(mapObject)) + { + sprite->data1 = 4; + return TRUE; + } + return FALSE; +} + +bool8 sub_80903C8 (struct MapObject *mapObject, struct Sprite *sprite) +{ + u8 directions[2]; + u8 direction; + + memcpy(directions, gUnknown_0850D7F0, sizeof gUnknown_0850D7F0); + direction = GetRunningPastFacingDirection(mapObject, RUNFOLLOW_NORTH_WEST); + if (direction == 0) + { + direction = directions[Random() & 0x01]; + } + FieldObjectSetDirection(mapObject, direction); + sprite->data1 = 1; + return TRUE; +} + +field_object_step(RandomlyLookNorthOrEast, gUnknown_0850D7F4) + +bool8 sub_8090454 (struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_reset(mapObject, sprite); + sprite->data1 = 1; + return TRUE; +} + +bool8 sub_8090468 (struct MapObject *mapObject, struct Sprite *sprite) +{ + FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18)); + sprite->data1 = 2; + return TRUE; +} + +bool8 sub_8090494 (struct MapObject *mapObject, struct Sprite *sprite) +{ + if (FieldObjectExecRegularAnim(mapObject, sprite)) + { + SetFieldObjectStepTimer(sprite, gUnknown_0850D6EC[Random() & 0x03]); + mapObject->mapobj_bit_1 = FALSE; + sprite->data1 = 3; + } + return FALSE; +} + +bool8 sub_80904D8 (struct MapObject *mapObject, struct Sprite *sprite) +{ + if (RunFieldObjectStepTimer(sprite) || FieldObjectIsTrainerAndCloseToPlayer(mapObject)) + { + sprite->data1 = 4; + return TRUE; + } + return FALSE; +} + +bool8 sub_8090508 (struct MapObject *mapObject, struct Sprite *sprite) +{ + u8 directions[2]; + u8 direction; + + memcpy(directions, gUnknown_0850D808, sizeof gUnknown_0850D808); + direction = GetRunningPastFacingDirection(mapObject, RUNFOLLOW_NORTH_EAST); + if (direction == 0) + { + direction = directions[Random() & 0x01]; + } + FieldObjectSetDirection(mapObject, direction); + sprite->data1 = 1; + return TRUE; +} + +field_object_step(RandomlyLookSouthOrWest, gUnknown_0850D80C) + +bool8 sub_8090594 (struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_reset(mapObject, sprite); + sprite->data1 = 1; + return TRUE; +} + +bool8 sub_80905A8 (struct MapObject *mapObject, struct Sprite *sprite) +{ + FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18)); + sprite->data1 = 2; + return TRUE; +} + +bool8 sub_80905D4 (struct MapObject *mapObject, struct Sprite *sprite) +{ + if (FieldObjectExecRegularAnim(mapObject, sprite)) + { + SetFieldObjectStepTimer(sprite, gUnknown_0850D6EC[Random() & 0x03]); + mapObject->mapobj_bit_1 = FALSE; + sprite->data1 = 3; + } + return FALSE; +} + +bool8 sub_8090618 (struct MapObject *mapObject, struct Sprite *sprite) +{ + if (RunFieldObjectStepTimer(sprite) || FieldObjectIsTrainerAndCloseToPlayer(mapObject)) + { + sprite->data1 = 4; + return TRUE; + } + return FALSE; +} + +bool8 sub_8090648 (struct MapObject *mapObject, struct Sprite *sprite) +{ + u8 directions[2]; + u8 direction; + + memcpy(directions, gUnknown_0850D820, sizeof gUnknown_0850D820); + direction = GetRunningPastFacingDirection(mapObject, RUNFOLLOW_SOUTH_WEST); + if (direction == 0) + { + direction = directions[Random() & 0x01]; + } + FieldObjectSetDirection(mapObject, direction); + sprite->data1 = 1; + return TRUE; +} + +field_object_step(RandomlyLookSouthOrEast, gUnknown_0850D824) + +bool8 sub_80906D4 (struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_reset(mapObject, sprite); + sprite->data1 = 1; + return TRUE; +} + +bool8 sub_80906E8 (struct MapObject *mapObject, struct Sprite *sprite) +{ + FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18)); + sprite->data1 = 2; + return TRUE; +} + +bool8 sub_8090714 (struct MapObject *mapObject, struct Sprite *sprite) +{ + if (FieldObjectExecRegularAnim(mapObject, sprite)) + { + SetFieldObjectStepTimer(sprite, gUnknown_0850D6EC[Random() & 0x03]); + mapObject->mapobj_bit_1 = FALSE; + sprite->data1 = 3; + } + return FALSE; +} + +bool8 sub_8090758 (struct MapObject *mapObject, struct Sprite *sprite) +{ + if (RunFieldObjectStepTimer(sprite) || FieldObjectIsTrainerAndCloseToPlayer(mapObject)) + { + sprite->data1 = 4; + return TRUE; + } + return FALSE; +} + +bool8 sub_8090788 (struct MapObject *mapObject, struct Sprite *sprite) +{ + u8 directions[2]; + u8 direction; + + memcpy(directions, gUnknown_0850D838, sizeof gUnknown_0850D838); + direction = GetRunningPastFacingDirection(mapObject, RUNFOLLOW_SOUTH_EAST); + if (direction == 0) + { + direction = directions[Random() & 0x01]; + } + FieldObjectSetDirection(mapObject, direction); + sprite->data1 = 1; + return TRUE; +} + +field_object_step(RandomlyLookNorthOrSouthOrWest, gUnknown_0850D83C) + +bool8 sub_8090814 (struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_reset(mapObject, sprite); + sprite->data1 = 1; + return TRUE; +} + +bool8 sub_8090828 (struct MapObject *mapObject, struct Sprite *sprite) +{ + FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18)); + sprite->data1 = 2; + return TRUE; +} + +bool8 sub_8090854 (struct MapObject *mapObject, struct Sprite *sprite) +{ + if (FieldObjectExecRegularAnim(mapObject, sprite)) + { + SetFieldObjectStepTimer(sprite, gUnknown_0850D6EC[Random() & 0x03]); + mapObject->mapobj_bit_1 = FALSE; + sprite->data1 = 3; + } + return FALSE; +} + +bool8 sub_8090898 (struct MapObject *mapObject, struct Sprite *sprite) +{ + if (RunFieldObjectStepTimer(sprite) || FieldObjectIsTrainerAndCloseToPlayer(mapObject)) + { + sprite->data1 = 4; + return TRUE; + } + return FALSE; +} + +bool8 sub_80908C8 (struct MapObject *mapObject, struct Sprite *sprite) +{ + u8 directions[4]; + u8 direction; + + memcpy(directions, gUnknown_0850D850, sizeof gUnknown_0850D850); + direction = GetRunningPastFacingDirection(mapObject, RUNFOLLOW_NORTH_SOUTH_WEST); + if (direction == 0) + { + direction = directions[Random() & 0x03]; + } + FieldObjectSetDirection(mapObject, direction); + sprite->data1 = 1; + return TRUE; +} + +field_object_step(RandomlyLookNorthOrSouthOrEast, gUnknown_0850D854) + +bool8 sub_8090954 (struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_reset(mapObject, sprite); + sprite->data1 = 1; + return TRUE; +} + +bool8 sub_8090968 (struct MapObject *mapObject, struct Sprite *sprite) +{ + FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18)); + sprite->data1 = 2; + return TRUE; +} + +bool8 sub_8090994 (struct MapObject *mapObject, struct Sprite *sprite) +{ + if (FieldObjectExecRegularAnim(mapObject, sprite)) + { + SetFieldObjectStepTimer(sprite, gUnknown_0850D6EC[Random() & 0x03]); + mapObject->mapobj_bit_1 = FALSE; + sprite->data1 = 3; + } + return FALSE; +} + +bool8 sub_80909D8 (struct MapObject *mapObject, struct Sprite *sprite) +{ + if (RunFieldObjectStepTimer(sprite) || FieldObjectIsTrainerAndCloseToPlayer(mapObject)) + { + sprite->data1 = 4; + return TRUE; + } + return FALSE; +} + +bool8 sub_8090A08 (struct MapObject *mapObject, struct Sprite *sprite) +{ + u8 directions[4]; + u8 direction; + + memcpy(directions, gUnknown_0850D868, sizeof gUnknown_0850D868); + direction = GetRunningPastFacingDirection(mapObject, RUNFOLLOW_NORTH_SOUTH_EAST); + if (direction == 0) + { + direction = directions[Random() & 0x03]; + } + FieldObjectSetDirection(mapObject, direction); + sprite->data1 = 1; + return TRUE; +} + +field_object_step(RandomlyLookNorthOrEastOrWest, gUnknown_0850D86C) + +bool8 sub_8090A94 (struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_reset(mapObject, sprite); + sprite->data1 = 1; + return TRUE; +} + +bool8 sub_8090AA8 (struct MapObject *mapObject, struct Sprite *sprite) +{ + FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18)); + sprite->data1 = 2; + return TRUE; +} + +bool8 sub_8090AD4 (struct MapObject *mapObject, struct Sprite *sprite) +{ + if (FieldObjectExecRegularAnim(mapObject, sprite)) + { + SetFieldObjectStepTimer(sprite, gUnknown_0850D6EC[Random() & 0x03]); + mapObject->mapobj_bit_1 = FALSE; + sprite->data1 = 3; + } + return FALSE; +} + +bool8 sub_8090B18 (struct MapObject *mapObject, struct Sprite *sprite) +{ + if (RunFieldObjectStepTimer(sprite) || FieldObjectIsTrainerAndCloseToPlayer(mapObject)) + { + sprite->data1 = 4; + return TRUE; + } + return FALSE; +} + +bool8 sub_8090B48 (struct MapObject *mapObject, struct Sprite *sprite) +{ + u8 directions[4]; + u8 direction; + + memcpy(directions, gUnknown_0850D880, sizeof gUnknown_0850D880); + direction = GetRunningPastFacingDirection(mapObject, RUNFOLLOW_NORTH_EAST_WEST); + if (direction == 0) + { + direction = directions[Random() & 0x03]; + } + FieldObjectSetDirection(mapObject, direction); + sprite->data1 = 1; + return TRUE; +} + +field_object_step(RandomlyLookSouthOrEastOrWest, gUnknown_0850D884) + +bool8 sub_8090BD4 (struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_reset(mapObject, sprite); + sprite->data1 = 1; + return TRUE; +} + +bool8 sub_8090BE8 (struct MapObject *mapObject, struct Sprite *sprite) +{ + FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18)); + sprite->data1 = 2; + return TRUE; +} + +bool8 sub_8090C14 (struct MapObject *mapObject, struct Sprite *sprite) +{ + if (FieldObjectExecRegularAnim(mapObject, sprite)) + { + SetFieldObjectStepTimer(sprite, gUnknown_0850D6EC[Random() & 0x03]); + mapObject->mapobj_bit_1 = FALSE; + sprite->data1 = 3; + } + return FALSE; +} + +bool8 sub_8090C58 (struct MapObject *mapObject, struct Sprite *sprite) +{ + if (RunFieldObjectStepTimer(sprite) || FieldObjectIsTrainerAndCloseToPlayer(mapObject)) + { + sprite->data1 = 4; + return TRUE; + } + return FALSE; +} + +bool8 sub_8090C88 (struct MapObject *mapObject, struct Sprite *sprite) +{ + u8 directions[4]; + u8 direction; + + memcpy(directions, gUnknown_0850D898, sizeof gUnknown_0850D898); + direction = GetRunningPastFacingDirection(mapObject, RUNFOLLOW_SOUTH_EAST_WEST); + if (direction == 0) + { + direction = directions[Random() & 0x03]; + } + FieldObjectSetDirection(mapObject, direction); + sprite->data1 = 1; + return TRUE; +} + +field_object_step(LookAroundCounterclockwise, gUnknown_0850D89C) + +bool8 sub_8090D14 (struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_reset(mapObject, sprite); + FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18)); + sprite->data1 = 1; + return TRUE; +} + +bool8 sub_8090D40 (struct MapObject *mapObject, struct Sprite *sprite) +{ + if (FieldObjectExecRegularAnim(mapObject, sprite)) + { + SetFieldObjectStepTimer(sprite, 48); + sprite->data1 = 2; + } + return FALSE; +} + +bool8 sub_8090D64 (struct MapObject *mapObject, struct Sprite *sprite) +{ + if (RunFieldObjectStepTimer(sprite) || FieldObjectIsTrainerAndCloseToPlayer(mapObject)) + { + sprite->data1 = 3; + } + return FALSE; +} + +bool8 sub_8090D90 (struct MapObject *mapObject, struct Sprite *sprite) +{ + u8 directions[5]; + u8 direction; + + memcpy(directions, gUnknown_0850D8AC, sizeof gUnknown_0850D8AC); + direction = GetRunningPastFacingDirection(mapObject, RUNFOLLOW_ANY); + if (direction == 0) + { + direction = directions[mapObject->mapobj_unk_18]; + } + FieldObjectSetDirection(mapObject, direction); + sprite->data1 = 0; + return TRUE; +} + +field_object_step(LookAroundClockwise, gUnknown_0850D8B4) + +bool8 sub_8090E18 (struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_reset(mapObject, sprite); + FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18)); + sprite->data1 = 1; + return TRUE; +} + +bool8 sub_8090E44 (struct MapObject *mapObject, struct Sprite *sprite) +{ + if (FieldObjectExecRegularAnim(mapObject, sprite)) + { + SetFieldObjectStepTimer(sprite, 48); + sprite->data1 = 2; + } + return FALSE; +} + +bool8 sub_8090E68 (struct MapObject *mapObject, struct Sprite *sprite) +{ + if (RunFieldObjectStepTimer(sprite) || FieldObjectIsTrainerAndCloseToPlayer(mapObject)) + { + sprite->data1 = 3; + } + return FALSE; +} + +bool8 sub_8090E94 (struct MapObject *mapObject, struct Sprite *sprite) +{ + u8 directions[5]; + u8 direction; + + memcpy(directions, gUnknown_0850D8C4, sizeof gUnknown_0850D8C4); + direction = GetRunningPastFacingDirection(mapObject, RUNFOLLOW_ANY); + if (direction == 0) + { + direction = directions[mapObject->mapobj_unk_18]; + } + FieldObjectSetDirection(mapObject, direction); + sprite->data1 = 0; + return TRUE; +} + +field_object_step(AlternatelyGoInOppositeDirections, gUnknown_0850D8CC) + +bool8 sub_8090F1C (struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_reset(mapObject, sprite); + sprite->data1 = 1; + return TRUE; +} + +bool8 sub_8090F30 (struct MapObject *mapObject, struct Sprite *sprite) +{ + u8 direction; + + direction = gUnknown_085055CD[mapObject->animPattern]; + if (mapObject->mapobj_unk_21) + { + direction = GetOppositeDirection(direction); + } + FieldObjectSetDirection(mapObject, direction); + sprite->data1 = 2; + return TRUE; +} + +bool8 sub_8090F68 (struct MapObject *mapObject, struct Sprite *sprite) +{ + bool8 blockingWay; + u8 animId; + + if (mapObject->mapobj_unk_21 && mapObject->coords1.x == mapObject->coords2.x && mapObject->coords1.y == mapObject->coords2.y) + { + mapObject->mapobj_unk_21 = 0; + FieldObjectSetDirection(mapObject, GetOppositeDirection(mapObject->placeholder18)); + } + blockingWay = npc_block_way__next_tile(mapObject, mapObject->placeholder18); + animId = GetGoSpeed0AnimId(mapObject->placeholder18); + if (blockingWay == TRUE) + { + mapObject->mapobj_unk_21 ++; + FieldObjectSetDirection(mapObject, GetOppositeDirection(mapObject->placeholder18)); + animId = GetGoSpeed0AnimId(mapObject->placeholder18); + blockingWay = npc_block_way__next_tile(mapObject, mapObject->placeholder18); + } + if (blockingWay) + { + animId = GetStepInPlaceDelay16AnimId(mapObject->mapobj_unk_18); + } + FieldObjectSetRegularAnim(mapObject, sprite, animId); + mapObject->mapobj_bit_1 = TRUE; + sprite->data1 = 3; + return TRUE; +} + +bool8 sub_8091020 (struct MapObject *mapObject, struct Sprite *sprite) +{ + if (FieldObjectExecRegularAnim(mapObject, sprite)) + { + mapObject->mapobj_bit_1 = FALSE; + sprite->data1 = 1; + } + return FALSE; +} + +bool8 sub_8091048(struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_reset(mapObject, sprite); + sprite->data1 = 1; + return TRUE; +} + +bool8 MoveFieldObjectInNextDirectionInSequence(struct MapObject *mapObject, struct Sprite *sprite, u8 *route) +{ + u8 blockingWay; + u8 animId; + + if (mapObject->mapobj_unk_21 == 3 && mapObject->coords1.x == mapObject->coords2.x && mapObject->coords1.y == mapObject->coords2.y) + { + mapObject->mapobj_unk_21 = 0; + } + FieldObjectSetDirection(mapObject, route[mapObject->mapobj_unk_21]); + animId = GetGoSpeed0AnimId(mapObject->placeholder18); + blockingWay = npc_block_way__next_tile(mapObject, mapObject->placeholder18); + if (blockingWay == TRUE) + { + mapObject->mapobj_unk_21 ++; + FieldObjectSetDirection(mapObject, route[mapObject->mapobj_unk_21]); + animId = GetGoSpeed0AnimId(mapObject->placeholder18); + blockingWay = npc_block_way__next_tile(mapObject, mapObject->placeholder18); + } + if (blockingWay) + { + animId = GetStepInPlaceDelay16AnimId(mapObject->mapobj_unk_18); + } + FieldObjectSetRegularAnim(mapObject, sprite, animId); + mapObject->mapobj_bit_1 = TRUE; + sprite->data1 = 2; + return TRUE; +} + +bool8 sub_8091110(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (FieldObjectExecRegularAnim(mapObject, sprite)) + { + mapObject->mapobj_bit_1 = FALSE; + sprite->data1 = 1; + } + return FALSE; +} + +field_object_path( 1, gUnknown_0850D8DC, sub_809117C, gUnknown_0850D8E8, 2, x) +field_object_path( 2, gUnknown_0850D8EC, sub_8091208, gUnknown_0850D8F8, 1, x) +field_object_path( 3, gUnknown_0850D8FC, sub_8091294, gUnknown_0850D908, 1, y) +field_object_path( 4, gUnknown_0850D90C, sub_8091320, gUnknown_0850D918, 2, y) +field_object_path( 5, gUnknown_0850D91C, sub_80913AC, gUnknown_0850D928, 2, x) +field_object_path( 6, gUnknown_0850D92C, sub_8091438, gUnknown_0850D938, 1, x) +field_object_path( 7, gUnknown_0850D93C, sub_80914C4, gUnknown_0850D710, 1, y) +field_object_path( 8, gUnknown_0850D948, sub_8091550, gUnknown_0850D954, 2, y) +field_object_path( 9, gUnknown_0850D958, sub_80915DC, gUnknown_0850D964, 2, y) +field_object_path(10, gUnknown_0850D968, sub_8091668, gUnknown_0850D974, 1, y) +field_object_path(11, gUnknown_0850D978, sub_80916F4, gUnknown_0850D984, 1, x) +field_object_path(12, gUnknown_0850D988, sub_8091780, gUnknown_0850D994, 2, x) +field_object_path(13, gUnknown_0850D998, sub_809180C, gUnknown_0850D9A4, 2, y) +field_object_path(14, gUnknown_0850D9A8, sub_8091898, gUnknown_0850D9B4, 1, y) +field_object_path(15, gUnknown_0850D9B8, sub_8091924, gUnknown_0850D9C4, 1, x) +field_object_path(16, gUnknown_0850D9C8, sub_80919B0, gUnknown_0850D9D4, 2, x) +field_object_path(17, gUnknown_0850D9D8, sub_8091A3C, gUnknown_0850D9E4, 2, y) +field_object_path(18, gUnknown_0850D9E8, sub_8091AC8, gUnknown_0850D9F4, 2, y) +field_object_path(19, gUnknown_0850D9F8, sub_8091B54, gUnknown_0850DA04, 2, x) +field_object_path(20, gUnknown_0850DA08, sub_8091BE0, gUnknown_0850DA14, 2, x) +field_object_path(21, gUnknown_0850DA18, sub_8091C6C, gUnknown_0850DA24, 2, y) +field_object_path(22, gUnknown_0850DA28, sub_8091CF8, gUnknown_0850DA34, 2, y) +field_object_path(23, gUnknown_0850DA38, sub_8091D84, gUnknown_0850DA44, 2, x) +field_object_path(24, gUnknown_0850DA48, sub_8091E10, gUnknown_0850DA54, 2, x) + +field_object_step(CopyPlayer1, gUnknown_0850DA58) + +bool8 mss_npc_reset_oampriv3_1_unk2_unk3(struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_reset(mapObject, sprite); + if (mapObject->mapobj_unk_21 == 0) + { + mapObject->mapobj_unk_21 = player_get_direction_lower_nybble(); + } + sprite->data1 = 1; + return TRUE; +} + +bool8 sub_8091EC0(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_1C == 0xFF || gPlayerAvatar.running1 == 2) + { + return FALSE; + } + return gUnknown_0850DA64[player_get_x22()](mapObject, sprite, player_get_direction_upper_nybble(), NULL); +} + +bool8 sub_8091F20(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (FieldObjectExecRegularAnim(mapObject, sprite)) + { + mapObject->mapobj_bit_1 = FALSE; + sprite->data1 = 1; + } + return FALSE; +} + +bool8 sub_8091F48(struct MapObject *mapObject, struct Sprite *sprite, u8 playerDirection, bool8 tileCB(u8)) +{ + return FALSE; +} + +bool8 sub_8091F4C(struct MapObject *mapObject, struct Sprite *sprite, u8 playerDirection, bool8 tileCB(u8)) +{ + FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(state_to_direction(gUnknown_085055CD[mapObject->animPattern], mapObject->mapobj_unk_21, playerDirection))); + mapObject->mapobj_bit_1 = TRUE; + sprite->data1 = 2; + return TRUE; +} + +bool8 sub_8091F94(struct MapObject *mapObject, struct Sprite *sprite, u8 playerDirection, bool8 tileCB(u8)) +{ + u32 direction; + s16 x; + s16 y; + + direction = playerDirection; + if (FieldObjectIsFarawayIslandMew(mapObject)) + { + direction = sub_81D427C(); + if (direction == 0) + { + direction = playerDirection; + direction = state_to_direction(gUnknown_085055CD[mapObject->animPattern], mapObject->mapobj_unk_21, direction); + FieldObjectMoveDestCoords(mapObject, direction, &x, &y); + FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(direction)); + mapObject->mapobj_bit_1 = TRUE; + sprite->data1 = 2; + return TRUE; + } + } + else + { + direction = state_to_direction(gUnknown_085055CD[mapObject->animPattern], mapObject->mapobj_unk_21, direction); + } + FieldObjectMoveDestCoords(mapObject, direction, &x, &y); + FieldObjectSetRegularAnim(mapObject, sprite, GetGoSpeed0AnimId(direction)); + if (npc_block_way(mapObject, x, y, direction) || (tileCB != NULL && !tileCB(MapGridGetMetatileBehaviorAt(x, y)))) + { + FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(direction)); + } + mapObject->mapobj_bit_1 = TRUE; + sprite->data1 = 2; + return TRUE; +} + +bool8 sub_80920A4(struct MapObject *mapObject, struct Sprite *sprite, u8 playerDirection, bool8 tileCB(u8)) +{ + u32 direction; + s16 x; + s16 y; + + direction = playerDirection; + direction = state_to_direction(gUnknown_085055CD[mapObject->animPattern], mapObject->mapobj_unk_21, direction); + FieldObjectMoveDestCoords(mapObject, direction, &x, &y); + FieldObjectSetRegularAnim(mapObject, sprite, GetGoSpeed1AnimId(direction)); + if (npc_block_way(mapObject, x, y, direction) || (tileCB != NULL && !tileCB(MapGridGetMetatileBehaviorAt(x, y)))) + { + FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(direction)); + } + mapObject->mapobj_bit_1 = TRUE; + sprite->data1 = 2; + return TRUE; +} + +bool8 sub_809215C(struct MapObject *mapObject, struct Sprite *sprite, u8 playerDirection, bool8 tileCB(u8)) +{ + u32 direction; + s16 x; + s16 y; + + direction = playerDirection; + direction = state_to_direction(gUnknown_085055CD[mapObject->animPattern], mapObject->mapobj_unk_21, direction); + FieldObjectMoveDestCoords(mapObject, direction, &x, &y); + FieldObjectSetRegularAnim(mapObject, sprite, GetGoSpeed3AnimId(direction)); + if (npc_block_way(mapObject, x, y, direction) || (tileCB != NULL && !tileCB(MapGridGetMetatileBehaviorAt(x, y)))) + { + FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(direction)); + } + mapObject->mapobj_bit_1 = TRUE; + sprite->data1 = 2; + return TRUE; +} + +bool8 sub_8092214(struct MapObject *mapObject, struct Sprite *sprite, u8 playerDirection, bool8 tileCB(u8)) +{ + u32 direction; + s16 x; + s16 y; + + direction = playerDirection; + direction = state_to_direction(gUnknown_085055CD[mapObject->animPattern], mapObject->mapobj_unk_21, direction); + FieldObjectMoveDestCoords(mapObject, direction, &x, &y); + FieldObjectSetRegularAnim(mapObject, sprite, sub_8093438(direction)); + if (npc_block_way(mapObject, x, y, direction) || (tileCB != NULL && !tileCB(MapGridGetMetatileBehaviorAt(x, y)))) + { + FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(direction)); + } + mapObject->mapobj_bit_1 = TRUE; + sprite->data1 = 2; + return TRUE; +} + +bool8 cph_IM_DIFFERENT(struct MapObject *mapObject, struct Sprite *sprite, u8 playerDirection, bool8 tileCB(u8)) +{ + u32 direction; + + direction = playerDirection; + direction = state_to_direction(gUnknown_085055CD[mapObject->animPattern], mapObject->mapobj_unk_21, direction); + FieldObjectSetRegularAnim(mapObject, sprite, sub_80934BC(direction)); + mapObject->mapobj_bit_1 = TRUE; + sprite->data1 = 2; + return TRUE; +} + +bool8 sub_8092314(struct MapObject *mapObject, struct Sprite *sprite, u8 playerDirection, bool8 tileCB(u8)) +{ + u32 direction; + s16 x; + s16 y; + + direction = playerDirection; + direction = state_to_direction(gUnknown_085055CD[mapObject->animPattern], mapObject->mapobj_unk_21, direction); + FieldObjectMoveDestCoords(mapObject, direction, &x, &y); + FieldObjectSetRegularAnim(mapObject, sprite, sub_8093514(direction)); + if (npc_block_way(mapObject, x, y, direction) || (tileCB != NULL && !tileCB(MapGridGetMetatileBehaviorAt(x, y)))) + { + FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(direction)); + } + mapObject->mapobj_bit_1 = TRUE; + sprite->data1 = 2; + return TRUE; +} + +bool8 oac_hopping(struct MapObject *mapObject, struct Sprite *sprite, u8 playerDirection, bool8 tileCB(u8)) +{ + u32 direction; + s16 x; + s16 y; + + direction = playerDirection; + direction = state_to_direction(gUnknown_085055CD[mapObject->animPattern], mapObject->mapobj_unk_21, direction); + x = mapObject->coords2.x; + y = mapObject->coords2.y; + sub_8092F88(direction, &x, &y, 2, 2); + FieldObjectSetRegularAnim(mapObject, sprite, GetJumpLedgeAnimId(direction)); + if (npc_block_way(mapObject, x, y, direction) || (tileCB != NULL && !tileCB(MapGridGetMetatileBehaviorAt(x, y)))) + { + FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(direction)); + } + mapObject->mapobj_bit_1 = TRUE; + sprite->data1 = 2; + return TRUE; +} + +field_object_step(CopyPlayer2, gUnknown_0850DA90) + +bool8 mss_08062EA4(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_1C == 0xFF || gPlayerAvatar.running1 == 2) + { + return FALSE; + } + return gUnknown_0850DA64[player_get_x22()](mapObject, sprite, player_get_direction_upper_nybble(), MetatileBehavior_IsPokeGrass); +} + +bool8 sub_80925AC(struct MapObject *, struct Sprite *); + +void FieldObjectCB_TreeDisguise(struct Sprite *sprite) +{ + struct MapObject *mapObject; + + mapObject = &gMapObjects[sprite->data0]; + if (mapObject->mapobj_unk_21 == 0 || (mapObject->mapobj_unk_21 == 1 && !sprite->data7)) + { + FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectSpawnParams[0], (u8 *)&gFieldEffectSpawnParams[1], (u8 *)&gFieldEffectSpawnParams[2]); + mapObject->mapobj_unk_1A = FieldEffectStart(FLDEFF_TREE_DISGUISE); + mapObject->mapobj_unk_21 = 1; + sprite->data7 ++; + } + FieldObjectStep(&gMapObjects[sprite->data0], sprite, sub_80925AC); +} + +bool8 sub_80925AC(struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_reset(mapObject, sprite); + return FALSE; +} + +void FieldObjectCB_MountainDisguise(struct Sprite *sprite) +{ + struct MapObject *mapObject; + + mapObject = &gMapObjects[sprite->data0]; + if (mapObject->mapobj_unk_21 == 0 || (mapObject->mapobj_unk_21 == 1 && !sprite->data7)) + { + FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectSpawnParams[0], (u8 *)&gFieldEffectSpawnParams[1], (u8 *)&gFieldEffectSpawnParams[2]); + mapObject->mapobj_unk_1A = FieldEffectStart(FLDEFF_MOUNTAIN_DISGUISE); + mapObject->mapobj_unk_21 = 1; + sprite->data7 ++; + } + FieldObjectStep(&gMapObjects[sprite->data0], sprite, sub_80925AC); +} + +extern bool8 (*const gUnknown_0850DA9C[])(struct MapObject *, struct Sprite *); +bool8 sub_809268C(struct MapObject *, struct Sprite *); + +void FieldObjectCB_Hidden1(struct Sprite *sprite) +{ + if (!sprite->data7) + { + gMapObjects[sprite->data0].mapobj_bit_26 = TRUE; + sprite->subspriteMode = 2; + sprite->oam.priority = 3; + sprite->data7 ++; + } + FieldObjectStep(&gMapObjects[sprite->data0], sprite, sub_809268C); +} + +bool8 sub_809268C(struct MapObject *mapObject, struct Sprite *sprite) +{ + return gUnknown_0850DA9C[sprite->data1](mapObject, sprite); +} + +bool8 sub_80926AC (struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_reset(mapObject, sprite); + return FALSE; +} +bool8 sub_80926B8 (struct MapObject *mapObject, struct Sprite *sprite) +{ + if (FieldObjectExecRegularAnim(mapObject, sprite)) + { + sprite->data1 = 0; + } + return FALSE; +} + +field_object_step(WalkInPlace1, gUnknown_0850DAA0) + +bool8 sub_8092718(struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_reset(mapObject, sprite); + FieldObjectSetRegularAnim(mapObject, sprite, GetStepInPlaceDelay16AnimId(mapObject->mapobj_unk_18)); + sprite->data1 = 1; + return TRUE; +} + +field_object_step(WalkInPlace4, gUnknown_0850DAA8) + +bool8 sub_8092788(struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_reset(mapObject, sprite); + FieldObjectSetRegularAnim(mapObject, sprite, GetStepInPlaceDelay32AnimId(mapObject->mapobj_unk_18)); + sprite->data1 = 1; + return TRUE; +} + +field_object_step(WalkInPlace2, gUnknown_0850DAB0) + +bool8 sub_80927F8(struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_reset(mapObject, sprite); + FieldObjectSetRegularAnim(mapObject, sprite, GetStepInPlaceDelay8AnimId(mapObject->mapobj_unk_18)); + sprite->data1 = 1; + return TRUE; +} + +field_object_step(WalkInPlace3, gUnknown_0850DAB8) + +bool8 sub_8092868(struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_reset(mapObject, sprite); + FieldObjectSetRegularAnim(mapObject, sprite, GetStepInPlaceDelay4AnimId(mapObject->mapobj_unk_18)); + sprite->data1 = 1; + return TRUE; +} + +field_object_step(Hidden2, gUnknown_0850DAC0) + +bool8 sub_80928D8(struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_reset(mapObject, sprite); + FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18)); + mapObject->mapobj_bit_13 = TRUE; + sprite->data1 = 1; + return TRUE; +} +bool8 sub_809290C(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (FieldObjectExecRegularAnim(mapObject, sprite)) + { + sprite->data1 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_809292C(struct MapObject *mapObject, struct Sprite *sprite) +{ + mapObject->mapobj_bit_1 = FALSE; + return FALSE; +} + +void npc_reset(struct MapObject *mapObject, struct Sprite *sprite) +{ + mapObject->mapobj_bit_1 = FALSE; + mapObject->mapobj_bit_6 = FALSE; + mapObject->mapobj_bit_7 = FALSE; + mapObject->mapobj_unk_1C = 0xFF; + sprite->data1 = 0; +} + +#define dirn2anim(name, table)\ +extern const u8 table[4];\ +u8 name(u8 direction)\ +{\ + return table[direction];\ +} + +dirn2anim(FieldObjectDirectionToImageAnimId, gUnknown_0850DACC) +dirn2anim(get_go_image_anim_num, gUnknown_0850DAD5) +dirn2anim(get_go_fast_image_anim_num, gUnknown_0850DADE) +dirn2anim(get_go_faster_image_anim_num, gUnknown_0850DAE7) +dirn2anim(get_go_fastest_image_anim_num, gUnknown_0850DAF0) +dirn2anim(sub_80929AC, gUnknown_0850DAF9) +dirn2anim(sub_80929BC, gUnknown_0850DB02) +dirn2anim(sub_80929CC, gUnknown_0850DB0B) +dirn2anim(sub_80929DC, gUnknown_0850DB14) +dirn2anim(sub_80929EC, gUnknown_0850DB1D) +dirn2anim(sub_80929FC, gUnknown_0850DB26) +dirn2anim(sub_8092A0C, gUnknown_0850DB2F) +dirn2anim(sub_8092A1C, gUnknown_0850DB38) +dirn2anim(sub_8092A2C, gUnknown_0850DB41) +dirn2anim(get_run_image_anim_num, gUnknown_0850DB4A) + +// file boundary? + +struct UnkStruct_085094AC { + const union AnimCmd *const *anims; + u8 animPos[4]; +}; + +extern const struct UnkStruct_085094AC gUnknown_085094AC[]; + +static const struct UnkStruct_085094AC *sub_8092A4C(const union AnimCmd *const *anims) +{ + const struct UnkStruct_085094AC *retval; + + for (retval = gUnknown_085094AC; retval->anims != NULL; retval ++) + { + if (retval->anims == anims) + { + return retval; + } + } + return NULL; +} + +void npc_apply_anim_looping(struct MapObject *mapObject, struct Sprite *sprite, u8 animNum) +{ + const struct UnkStruct_085094AC *unk85094AC; + + if (!mapObject->mapobj_bit_12) + { + sprite->animNum = animNum; + unk85094AC = sub_8092A4C(sprite->anims); + if (unk85094AC != NULL) + { + if (sprite->animCmdIndex == unk85094AC->animPos[0]) + { + sprite->animCmdIndex = unk85094AC->animPos[3]; + } + else if (sprite->animCmdIndex == unk85094AC->animPos[1]) + { + sprite->animCmdIndex = unk85094AC->animPos[2]; + } + } + SeekSpriteAnim(sprite, sprite->animCmdIndex); + } +} + +void obj_npc_animation_step(struct MapObject *mapObject, struct Sprite *sprite, u8 animNum) +{ + const struct UnkStruct_085094AC *unk85094AC; + + if (!mapObject->mapobj_bit_12) + { + u8 animPos; + + sprite->animNum = animNum; + unk85094AC = sub_8092A4C(sprite->anims); + if (unk85094AC != NULL) + { + animPos = unk85094AC->animPos[1]; + if (sprite->animCmdIndex <= unk85094AC->animPos[0]) + { + animPos = unk85094AC->animPos[0]; + } + SeekSpriteAnim(sprite, animPos); + } + } +} + +// file boundary? + +u8 sub_8092AF8(s16 x1, s16 y1, s16 x2, s16 y2) +{ + if (x1 > x2) + { + return DIR_WEST; + } + if (x1 < x2) + { + return DIR_EAST; + } + if (y1 > y2) + { + return DIR_NORTH; + } + return DIR_SOUTH; +} + +void npc_set_running_behaviour_etc(struct MapObject *mapObject, u8 animPattern) +{ + mapObject->animPattern = animPattern; + mapObject->mapobj_unk_21 = 0; + mapObject->animId = 0; + gSprites[mapObject->spriteId].callback = gUnknown_08505438[animPattern]; + gSprites[mapObject->spriteId].data1 = 0; +} + +dirn2anim(npc_running_behaviour_by_direction, gUnknown_0850DB53) + +u8 npc_block_way__next_tile(struct MapObject *mapObject, u8 direction) +{ + s16 x; + s16 y; + + x = mapObject->coords2.x; + y = mapObject->coords2.y; + MoveCoords(direction, &x, &y); + return npc_block_way(mapObject, x, y, direction); +} + +u8 npc_block_way(struct MapObject *mapObject, s16 x, s16 y, u32 dirn) +{ + u8 direction; + + direction = dirn; + if (IsCoordOutsideFieldObjectMovementRect(mapObject, x, y)) + { + return 1; + } + if (MapGridIsImpassableAt(x, y) || GetMapBorderIdAt(x, y) == -1 || IsMetatileDirectionallyImpassable(mapObject, x, y, direction)) + { + return 2; + } + if (mapObject->mapobj_bit_15 && !CanCameraMoveInDirection(direction)) + { + return 2; + } + if (IsZCoordMismatchAt(mapObject->mapobj_unk_0B_0, x, y)) + { + return 3; + } + if (CheckForCollisionBetweenFieldObjects(mapObject, x, y)) + { + return 4; + } + return 0; +} + +u8 sub_8092C8C(struct MapObject *mapObject, s16 x, s16 y, u8 direction) +{ + u8 retval; + + retval = 0x00; + if (IsCoordOutsideFieldObjectMovementRect(mapObject, x, y)) + { + retval |= 1; + } + if (MapGridIsImpassableAt(x, y) || GetMapBorderIdAt(x, y) == -1 || IsMetatileDirectionallyImpassable(mapObject, x, y, direction) || (mapObject->mapobj_bit_15 && !CanCameraMoveInDirection(direction))) + { + retval |= 2; + } + if (IsZCoordMismatchAt(mapObject->mapobj_unk_0B_0, x, y)) + { + retval |= 4; + } + if (CheckForCollisionBetweenFieldObjects(mapObject, x, y)) + { + retval |= 8; + } + return retval; +} + +static bool8 IsCoordOutsideFieldObjectMovementRect(struct MapObject *mapObject, s16 x, s16 y) +{ + s16 left; + s16 right; + s16 top; + s16 bottom; + + if (mapObject->range.as_nybbles.x != 0) + { + left = mapObject->coords1.x - mapObject->range.as_nybbles.x; + right = mapObject->coords1.x + mapObject->range.as_nybbles.x; + if (left > x || right < x) + { + return TRUE; + } + } + if (mapObject->range.as_nybbles.y != 0) + { + top = mapObject->coords1.y - mapObject->range.as_nybbles.y; + bottom = mapObject->coords1.y + mapObject->range.as_nybbles.y; + if (top > y || bottom < y) + { + return TRUE; + } + } + return FALSE; +} + +static bool8 IsMetatileDirectionallyImpassable(struct MapObject *mapObject, s16 x, s16 y, u8 direction) +{ + if (gUnknown_0850DB5C[direction - 1](mapObject->mapobj_unk_1E) || gUnknown_0850DB6C[direction - 1](MapGridGetMetatileBehaviorAt(x, y))) + { + return TRUE; + } + return FALSE; +} + +static bool8 CheckForCollisionBetweenFieldObjects(struct MapObject *mapObject, s16 x, s16 y) +{ + u8 i; + struct MapObject *curObject; + + for (i = 0; i < NUM_FIELD_OBJECTS; i ++) + { + curObject = &gMapObjects[i]; + if (curObject->active && curObject != mapObject) + { + if ((curObject->coords2.x == x && curObject->coords2.y == y) || (curObject->coords3.x == x && curObject->coords3.y == y)) + { + if (AreZCoordsCompatible(mapObject->mapobj_unk_0B_0, curObject->mapobj_unk_0B_0)) + { + return TRUE; + } + } + } + } + return FALSE; +} + +bool8 sub_8092E9C(u8 localId, u8 mapNum, u8 mapGroup) +{ + u8 mapObjectId; + + if (!TryGetFieldObjectIdByLocalIdAndMap(localId, mapNum, mapGroup, &mapObjectId) && gSprites[gMapObjects[mapObjectId].spriteId].data7 & 0x02) + { + return TRUE; + } + return FALSE; +} + +void sub_8092EF0(u8 localId, u8 mapNum, u8 mapGroup) +{ + u8 mapObjectId; + + if (!TryGetFieldObjectIdByLocalIdAndMap(localId, mapNum, mapGroup, &mapObjectId)) + { + gSprites[gMapObjects[mapObjectId].spriteId].data7 |= 0x04; + } +} + +void MoveCoords(u8 direction, s16 *x, s16 *y) +{ + *x += gUnknown_0850DB7C[direction].x; + *y += gUnknown_0850DB7C[direction].y; +} + +void sub_8092F60(u8 direction, s16 *x, s16 *y) +{ + *x += gUnknown_0850DB7C[direction].x << 4; + *y += gUnknown_0850DB7C[direction].y << 4; +} + +void sub_8092F88(u32 dirn, s16 *x, s16 *y, s16 dx, s16 dy) +{ + u8 direction; + s16 dx_2; + s16 dy_2; + s16 cur_x; + s16 cur_y; + + direction = dirn; + dx_2 = dx; + dy_2 = dy; + cur_x = gUnknown_0850DB7C[direction].x; + if (cur_x > 0) + { + *x += dx_2; + } + if (cur_x < 0) + { + *x -= dx_2; + } + cur_y = gUnknown_0850DB7C[direction].y; + if (cur_y > 0) + { + *y += dy_2; + } + if (cur_y < 0) + { + *y -= dy_2; + } +} + +void sub_8092FF0(s16 x, s16 y, s16 *dest_x, s16 *dest_y) +{ + *dest_x = (x - gSaveBlock1Ptr->pos.x) << 4; + *dest_y = (y - gSaveBlock1Ptr->pos.y) << 4; + *dest_x -= gUnknown_03005DEC; + *dest_y -= gUnknown_03005DE8; +} + +void sub_8093038(s16 x, s16 y, s16 *dest_x, s16 *dest_y) +{ + s16 dx; + s16 dy; + + dx = -gUnknown_03005DEC - gUnknown_03005DD0.x; + dy = -gUnknown_03005DE8 - gUnknown_03005DD0.y; + if (gUnknown_03005DD0.x > 0) + { + dx += 0x10; + } + if (gUnknown_03005DD0.x < 0) + { + dx -= 0x10; + } + if (gUnknown_03005DD0.y > 0) + { + dy += 0x10; + } + if (gUnknown_03005DD0.y < 0) + { + dy -= 0x10; + } + *dest_x = ((x - gSaveBlock1Ptr->pos.x) << 4) + dx; + *dest_y = ((y - gSaveBlock1Ptr->pos.y) << 4) + dy; +} + +void sub_80930E0(s16 *x, s16 *y, s16 dx, s16 dy) +{ + sub_8093038(*x, *y, x, y); + *x += dx; + *y += dy; +} + +void GetFieldObjectMovingCameraOffset(s16 *x, s16 *y) +{ + *x = 0; + *y = 0; + if (gUnknown_03005DD0.x > 0) + { + (*x) ++; + } + if (gUnknown_03005DD0.x < 0) + { + (*x) --; + } + if (gUnknown_03005DD0.y > 0) + { + (*y) ++; + } + if (gUnknown_03005DD0.y < 0) + { + (*y) --; + } +} + +void FieldObjectMoveDestCoords(struct MapObject *mapObject, u32 dirn, s16 *x, s16 *y) +{ + u8 direction; + + direction = dirn; + *x = mapObject->coords2.x; + *y = mapObject->coords2.y; + MoveCoords(direction, x, y); +} + +// file boundary? + +bool8 FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(struct MapObject *mapObject) +{ + if (mapObject->mapobj_bit_1 || mapObject->mapobj_bit_6) + { + return TRUE; + } + return FALSE; +} + +bool8 FieldObjectIsSpecialAnimActive(struct MapObject *mapObject) +{ + if (mapObject->mapobj_bit_6 && mapObject->mapobj_unk_1C != 0xFF) + { + return TRUE; + } + return FALSE; +} + +bool8 FieldObjectSetSpecialAnim(struct MapObject *mapObject, u8 specialAnimId) +{ + if (FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(mapObject)) + { + return TRUE; + } + npc_sync_anim_pause_bits(mapObject); + mapObject->mapobj_unk_1C = specialAnimId; + mapObject->mapobj_bit_6 = TRUE; + mapObject->mapobj_bit_7 = FALSE; + gSprites[mapObject->spriteId].data2 = 0; + return FALSE; +} + +void FieldObjectForceSetSpecialAnim(struct MapObject *mapObject, u8 specialAnimId) +{ + FieldObjectClearAnimIfSpecialAnimActive(mapObject); + FieldObjectSetSpecialAnim(mapObject, specialAnimId); +} + +void FieldObjectClearAnimIfSpecialAnimActive(struct MapObject *mapObject) +{ + if (mapObject->mapobj_bit_6) + { + FieldObjectClearAnim(mapObject); + } +} + +void FieldObjectClearAnim(struct MapObject *mapObject) +{ + mapObject->mapobj_unk_1C = 0xFF; + mapObject->mapobj_bit_6 = FALSE; + mapObject->mapobj_bit_7 = FALSE; + gSprites[mapObject->spriteId].data1 = 0; + gSprites[mapObject->spriteId].data2 = 0; +} + +u8 FieldObjectCheckIfSpecialAnimFinishedOrInactive(struct MapObject *mapObject) +{ + if (mapObject->mapobj_bit_6) + { + return mapObject->mapobj_bit_7; + } + return 0x10; +} + +u8 FieldObjectClearAnimIfSpecialAnimFinished(struct MapObject *mapObject) +{ + u8 specialAnimState; + + specialAnimState = FieldObjectCheckIfSpecialAnimFinishedOrInactive(mapObject); + if (specialAnimState != 0 && specialAnimState != 16) + { + FieldObjectClearAnimIfSpecialAnimActive(mapObject); + } + return specialAnimState; +} + +u8 FieldObjectGetSpecialAnim(struct MapObject *mapObject) +{ + if (mapObject->mapobj_bit_6) + { + return mapObject->mapobj_unk_1C; + } + return 0xFF; +} + +void FieldObjectStep(struct MapObject *mapObject, struct Sprite *sprite, bool8 (*callback)(struct MapObject *, struct Sprite *)) +{ + DoGroundEffects_OnSpawn(mapObject, sprite); + sub_80964E8(mapObject, sprite); + if (FieldObjectIsSpecialAnimActive(mapObject)) + { + FieldObjectExecSpecialAnim(mapObject, sprite); + } + else if (!mapObject->mapobj_bit_8) + { + while (callback(mapObject, sprite)); + } + DoGroundEffects_OnBeginStep(mapObject, sprite); + DoGroundEffects_OnFinishStep(mapObject, sprite); + npc_obj_transfer_image_anim_pause_flag(mapObject, sprite); + sub_8096518(mapObject, sprite); + FieldObjectUpdateSubpriority(mapObject, sprite); +} + +#define dirn2anim_2(name, table) \ +extern const u8 table[5]; \ +u8 name(u32 direction) \ +{ \ + u8 dirn2; \ + u8 animIds[5]; \ + dirn2 = direction; \ + memcpy(animIds, table, 5); \ + if (dirn2 > DIR_EAST) \ + { \ + dirn2 = 0; \ + } \ + return animIds[dirn2]; \ +} + +dirn2anim_2(GetFaceDirectionAnimId, gUnknown_0850DBA0); +dirn2anim_2(GetSimpleGoAnimId, gUnknown_0850DBA5); +dirn2anim_2(GetGoSpeed0AnimId, gUnknown_0850DBAA); +dirn2anim_2(GetGoSpeed1AnimId, gUnknown_0850DBAF); +dirn2anim_2(GetGoSpeed2AnimId, gUnknown_0850DBB4); +dirn2anim_2(GetGoSpeed3AnimId, gUnknown_0850DBB9); +dirn2anim_2(sub_8093438, gUnknown_0850DBBE); +dirn2anim_2(GetRunAnimId, gUnknown_0850DBC3); +dirn2anim_2(GetJumpLedgeAnimId, gUnknown_0850DBC8); +dirn2anim_2(sub_80934BC, gUnknown_0850DBCD); +dirn2anim_2(sub_80934E8, gUnknown_0850DBD2); +dirn2anim_2(sub_8093514, gUnknown_0850DBD7); +dirn2anim_2(sub_8093540, gUnknown_0850DBDC); +dirn2anim_2(GetStepInPlaceDelay32AnimId, gUnknown_0850DBE1); +dirn2anim_2(GetStepInPlaceDelay16AnimId, gUnknown_0850DBE6); +dirn2anim_2(GetStepInPlaceDelay8AnimId, gUnknown_0850DBEB); +dirn2anim_2(GetStepInPlaceDelay4AnimId, gUnknown_0850DBF0); + +bool8 FieldObjectFaceOppositeDirection(struct MapObject *mapObject, u8 direction) +{ + return FieldObjectSetSpecialAnim(mapObject, GetFaceDirectionAnimId(GetOppositeDirection(direction))); +} + +dirn2anim_2(sub_8093648, gUnknown_0850DBF5); +dirn2anim_2(sub_8093674, gUnknown_0850DBFA); +dirn2anim_2(sub_80936A0, gUnknown_0850DBFF); +dirn2anim_2(sub_80936CC, gUnknown_0850DC04); +dirn2anim_2(sub_80936F8, gUnknown_0850DC09); +dirn2anim_2(sub_8093724, gUnknown_0850DC0E); +dirn2anim_2(sub_8093750, gUnknown_0850DC13); +dirn2anim_2(sub_809377C, gUnknown_0850DC18); +dirn2anim_2(sub_80937A8, gUnknown_0850DC1D); +dirn2anim_2(d2s_08064034, gUnknown_0850DC22); + +extern const u8 gUnknown_0850DC27[8]; + +u8 GetOppositeDirection(u8 direction) +{ + u8 directions[sizeof gUnknown_0850DC27]; + + memcpy(directions, gUnknown_0850DC27, sizeof gUnknown_0850DC27); + if (direction < 1 || direction > (sizeof gUnknown_0850DC27)) + { + return direction; + } + return directions[direction - 1]; +} + +static u32 zffu_offset_calc(u8 a0, u8 a1) +{ + return gUnknown_0850DC2F[a0 - 1][a1 - 1]; +} + +static u32 state_to_direction(u8 a0, u32 a1, u32 a2) +{ + u32 zffuOffset; + u8 a1_2; + u8 a2_2; + + a1_2 = a1; + a2_2 = a2; + if (a1_2 == 0 || a2_2 == 0 || a1_2 > DIR_EAST || a2_2 > DIR_EAST) + { + return 0; + } + zffuOffset = zffu_offset_calc(a1_2, a2); + return gUnknown_0850DC3F[a0 - 1][zffuOffset - 1]; +} + +static void FieldObjectExecSpecialAnim(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (gUnknown_0850DC50[mapObject->mapobj_unk_1C][sprite->data2](mapObject, sprite)) + { + mapObject->mapobj_bit_7 = TRUE; + } +} + +bool8 FieldObjectExecRegularAnim(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (gUnknown_0850DC50[mapObject->mapobj_unk_1C][sprite->data2](mapObject, sprite)) + { + mapObject->mapobj_unk_1C = 0xFF; + sprite->data2 = 0; + return TRUE; + } + return FALSE; +} + +void FieldObjectSetRegularAnim(struct MapObject *mapObject, struct Sprite *sprite, u8 animId) +{ + mapObject->mapobj_unk_1C = animId; + sprite->data2 = 0; +} + +// file boundary? + +void an_look_any(struct MapObject *mapObject, struct Sprite *sprite, u8 direction) +{ + FieldObjectSetDirection(mapObject, direction); + npc_coords_shift_still(mapObject); + obj_npc_animation_step(mapObject, sprite, get_go_image_anim_num(mapObject->mapobj_unk_18)); + sprite->animPaused = TRUE; + sprite->data2 = 1; +} + +bool8 sub_8093950(struct MapObject *mapObject, struct Sprite *sprite) +{ + an_look_any(mapObject, sprite, DIR_SOUTH); + return TRUE; +} + +bool8 sub_8093960(struct MapObject *mapObject, struct Sprite *sprite) +{ + an_look_any(mapObject, sprite, DIR_NORTH); + return TRUE; +} + +bool8 sub_8093970(struct MapObject *mapObject, struct Sprite *sprite) +{ + an_look_any(mapObject, sprite, DIR_WEST); + return TRUE; +} + +bool8 sub_8093980(struct MapObject *mapObject, struct Sprite *sprite) +{ + an_look_any(mapObject, sprite, DIR_EAST); + return TRUE; +} + +void npc_apply_direction(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 speed) +{ + s16 x; + s16 y; + + x = mapObject->coords2.x; + y = mapObject->coords2.y; + FieldObjectSetDirection(mapObject, direction); + MoveCoords(direction, &x, &y); + npc_coords_shift(mapObject, x, y); + oamt_npc_ministep_reset(sprite, direction, speed); + sprite->animPaused = FALSE; + if (gUnknown_020375B8 != NULL && sub_8097F78(mapObject) != 0x10) + { + sprite->animPaused = TRUE; + } + mapObject->mapobj_bit_2 = TRUE; + sprite->data2 = 1; +} + +void do_go_anim(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 speed) +{ + u8 (*functions[ARRAY_COUNT(gUnknown_0850DEE8)])(u8); + + memcpy(functions, gUnknown_0850DEE8, sizeof gUnknown_0850DEE8); + npc_apply_direction(mapObject, sprite, direction, speed); + npc_apply_anim_looping(mapObject, sprite, functions[speed](mapObject->mapobj_unk_18)); +} + +void do_run_anim(struct MapObject *mapObject, struct Sprite *sprite, u8 direction) +{ + npc_apply_direction(mapObject, sprite, direction, 1); + npc_apply_anim_looping(mapObject, sprite, get_run_image_anim_num(mapObject->mapobj_unk_18)); +} + +bool8 npc_obj_ministep_stop_on_arrival(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (obj_npc_ministep(sprite)) + { + npc_coords_shift_still(mapObject); + mapObject->mapobj_bit_3 = TRUE; + sprite->animPaused = TRUE; + return TRUE; + } + return FALSE; +} + +void sub_8093AF0(struct MapObject *mapObject, struct Sprite *sprite, u8 direction) +{ + s16 x; + s16 y; + + x = mapObject->coords2.x; + y = mapObject->coords2.y; + FieldObjectSetDirection(mapObject, direction); + MoveCoords(direction, &x, &y); + npc_coords_shift(mapObject, x, y); + sub_80976DC(sprite, direction); + sprite->animPaused = FALSE; + mapObject->mapobj_bit_2 = TRUE; + sprite->data2 = 1; +} + +void sub_8093B60(struct MapObject *mapObject, struct Sprite *sprite, u8 direction) +{ + sub_8093AF0(mapObject, sprite, direction); + npc_apply_anim_looping(mapObject, sprite, get_go_image_anim_num(mapObject->mapobj_unk_18)); +} + +bool8 an_walk_any_2(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_80976EC(sprite)) + { + npc_coords_shift_still(mapObject); + mapObject->mapobj_bit_3 = TRUE; + sprite->animPaused = TRUE; + return TRUE; + } + return FALSE; +} + +#define an_walk_any_2_macro(name, fn1, fn2, ...) \ +bool8 name##_2(struct MapObject *, struct Sprite *);\ +bool8 name(struct MapObject *mapObject, struct Sprite *sprite)\ +{\ + fn1(mapObject, sprite, __VA_ARGS__);\ + return name##_2(mapObject, sprite);\ +}\ +bool8 name##_2(struct MapObject *mapObject, struct Sprite *sprite)\ +{\ + if (fn2(mapObject, sprite))\ + {\ + sprite->data2 = 2;\ + return TRUE;\ + }\ + return FALSE;\ +} + +an_walk_any_2_macro(sub_8093BC4, sub_8093B60, an_walk_any_2, 7) +an_walk_any_2_macro(sub_8093C04, sub_8093B60, an_walk_any_2, 8) +an_walk_any_2_macro(sub_8093C44, sub_8093B60, an_walk_any_2, 5) +an_walk_any_2_macro(sub_8093C84, sub_8093B60, an_walk_any_2, 6) +an_walk_any_2_macro(sub_8093CC4, sub_8093B60, an_walk_any_2, 1) +an_walk_any_2_macro(sub_8093D04, sub_8093B60, an_walk_any_2, 2) +an_walk_any_2_macro(sub_8093D44, sub_8093B60, an_walk_any_2, 3) +an_walk_any_2_macro(sub_8093D84, sub_8093B60, an_walk_any_2, 4) +an_walk_any_2_macro(sub_8093DC4, do_go_anim, npc_obj_ministep_stop_on_arrival, 7, 0) +an_walk_any_2_macro(sub_8093E04, do_go_anim, npc_obj_ministep_stop_on_arrival, 8, 0) +an_walk_any_2_macro(sub_8093E44, do_go_anim, npc_obj_ministep_stop_on_arrival, 5, 0) +an_walk_any_2_macro(sub_8093E84, do_go_anim, npc_obj_ministep_stop_on_arrival, 6, 0) +an_walk_any_2_macro(sub_8093EC4, do_go_anim, npc_obj_ministep_stop_on_arrival, 1, 0) +an_walk_any_2_macro(sub_8093F04, do_go_anim, npc_obj_ministep_stop_on_arrival, 2, 0) +an_walk_any_2_macro(sub_8093F44, do_go_anim, npc_obj_ministep_stop_on_arrival, 3, 0) +an_walk_any_2_macro(sub_8093F84, do_go_anim, npc_obj_ministep_stop_on_arrival, 4, 0) + +void sub_8093FC4(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 speed, u8 a5) +{ + s16 displacements[ARRAY_COUNT(gUnknown_0850DFBC)]; + s16 x; + s16 y; + + memcpy(displacements, gUnknown_0850DFBC, sizeof gUnknown_0850DFBC); + x = 0; + y = 0; + FieldObjectSetDirection(mapObject, direction); + sub_8092F88(direction, &x, &y, displacements[speed], displacements[speed]); + npc_coords_shift(mapObject, mapObject->coords2.x + x, mapObject->coords2.y + y); + sub_809783C(sprite, direction, speed, a5); + sprite->data2 = 1; + sprite->animPaused = 0; + mapObject->mapobj_bit_2 = 1; + mapObject->mapobj_bit_4 = 1; +} + +void maybe_shadow_1(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 speed, u8 a4) +{ + sub_8093FC4(mapObject, sprite, direction, speed, a4); + npc_apply_anim_looping(mapObject, sprite, get_go_image_anim_num(mapObject->mapobj_unk_18)); + DoShadowFieldEffect(mapObject); +} + +u8 sub_80940C4(struct MapObject *mapObject, struct Sprite *sprite, u8 callback(struct Sprite *)) +{ + s16 displacements[ARRAY_COUNT(gUnknown_0850DFC2)]; + s16 x; + s16 y; + u8 result; + + memcpy(displacements, gUnknown_0850DFC2, sizeof gUnknown_0850DFC2); + result = callback(sprite); + if (result == 1 && displacements[sprite->data4] != 0) + { + x = 0; + y = 0; + sub_8092F88(mapObject->placeholder18, &x, &y, displacements[sprite->data4], displacements[sprite->data4]); + npc_coords_shift(mapObject, mapObject->coords2.x + x, mapObject->coords2.y + y); + mapObject->mapobj_bit_2 = TRUE; + mapObject->mapobj_bit_4 = TRUE; + } + else if (result == 0xFF) + { + npc_coords_shift_still(mapObject); + mapObject->mapobj_bit_3 = TRUE; + mapObject->mapobj_bit_5 = TRUE; + sprite->animPaused = TRUE; + } + return result; +} + +u8 sub_8094188(struct MapObject *mapObject, struct Sprite *sprite) +{ + return sub_80940C4(mapObject, sprite, sub_809785C); +} + +u8 sub_809419C(struct MapObject *mapObject, struct Sprite *sprite) +{ + return sub_80940C4(mapObject, sprite, sub_80978E4); +} + +bool8 sub_80941B0(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_8094188(mapObject, sprite) == 0xFF) + { + return TRUE; + } + return FALSE; +} + +bool8 sub_80941C8(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_809419C(mapObject, sprite) == 0xFF) + { + return TRUE; + } + return FALSE; +} + +bool8 sub_80941E0(struct MapObject *mapObject, struct Sprite *sprite) +{ + switch (sub_8094188(mapObject, sprite)) + { + case 255: + return TRUE; + case 1: + FieldObjectSetDirection(mapObject, GetOppositeDirection(mapObject->placeholder18)); + obj_npc_animation_step(mapObject, sprite, get_go_image_anim_num(mapObject->mapobj_unk_18)); + default: + return FALSE; + } +} + +#define maybe_shadow_1_macro(name, fn1, fn2, ...) \ +bool8 name##_2(struct MapObject *, struct Sprite *);\ +bool8 name(struct MapObject *mapObject, struct Sprite *sprite)\ +{\ + fn1(mapObject, sprite, __VA_ARGS__);\ + return name##_2(mapObject, sprite);\ +}\ +bool8 name##_2(struct MapObject *mapObject, struct Sprite *sprite)\ +{\ + if (fn2(mapObject, sprite))\ + {\ + mapObject->mapobj_bit_22 = FALSE;\ + sprite->data2 = 2;\ + return TRUE;\ + }\ + return FALSE;\ +} + +maybe_shadow_1_macro(sub_8094230, maybe_shadow_1, sub_80941B0, DIR_SOUTH, 2, 0) +maybe_shadow_1_macro(sub_8094288, maybe_shadow_1, sub_80941B0, DIR_NORTH, 2, 0) +maybe_shadow_1_macro(sub_80942E0, maybe_shadow_1, sub_80941B0, DIR_WEST, 2, 0) +maybe_shadow_1_macro(sub_8094338, maybe_shadow_1, sub_80941B0, DIR_EAST, 2, 0) + +void sub_8094390(struct Sprite *sprite, u16 duration) +{ + sprite->data2 = 1; + sprite->data3 = duration; +} + +bool8 sub_8094398(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (-- sprite->data3 == 0) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +#define special_anim_with_timer(name, duration)\ +bool8 name(struct MapObject *mapObject, struct Sprite *sprite)\ +{\ + sub_8094390(sprite, duration);\ + return sub_8094398(mapObject, sprite);\ +} + +special_anim_with_timer(sub_80943B4, 1) +special_anim_with_timer(sub_80943D4, 2) +special_anim_with_timer(sub_80943F4, 4) +special_anim_with_timer(sub_8094414, 8) +special_anim_with_timer(sub_8094434, 16) + +an_walk_any_2_macro(sub_8094454, do_go_anim, npc_obj_ministep_stop_on_arrival, 1, 1) +an_walk_any_2_macro(sub_8094494, do_go_anim, npc_obj_ministep_stop_on_arrival, 2, 1) +an_walk_any_2_macro(sub_80944D4, do_go_anim, npc_obj_ministep_stop_on_arrival, 3, 1) +an_walk_any_2_macro(sub_8094514, do_go_anim, npc_obj_ministep_stop_on_arrival, 4, 1) + +void sub_8094554(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 animNum, u16 duration) +{ + FieldObjectSetDirection(mapObject, direction); + npc_apply_anim_looping(mapObject, sprite, animNum); + sprite->animPaused = FALSE; + sprite->data2 = 1; + sprite->data3 = duration; +} + +bool8 sub_809459C(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (-- sprite->data3 == 0) + { + sprite->data2 = 2; + sprite->animPaused = TRUE; + return TRUE; + } + return FALSE; +} + +bool8 sub_80945C4(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sprite->data3 & 1) + { + sprite->animDelayCounter ++; + } + return sub_809459C(mapObject, sprite); +} + +#define special_anim_with_timer_2(name, direction, images, duration, timer) \ +bool8 name(struct MapObject *mapObject, struct Sprite *sprite)\ +{\ + u8 animId;\ + animId = images(DIR_##direction);\ + sub_8094554(mapObject, sprite, DIR_##direction, animId, duration);\ + return timer(mapObject, sprite);\ +} + +special_anim_with_timer_2(sub_8094600, SOUTH, get_go_image_anim_num, 32, sub_80945C4) +special_anim_with_timer_2(sub_8094638, NORTH, get_go_image_anim_num, 32, sub_80945C4) +special_anim_with_timer_2(sub_8094670, WEST, get_go_image_anim_num, 32, sub_80945C4) +special_anim_with_timer_2(sub_80946A8, EAST, get_go_image_anim_num, 32, sub_80945C4) +special_anim_with_timer_2(sub_80946E0, SOUTH, get_go_image_anim_num, 16, sub_809459C) +special_anim_with_timer_2(sub_8094718, NORTH, get_go_image_anim_num, 16, sub_809459C) +special_anim_with_timer_2(sub_8094750, WEST, get_go_image_anim_num, 16, sub_809459C) +special_anim_with_timer_2(sub_8094788, EAST, get_go_image_anim_num, 16, sub_809459C) +special_anim_with_timer_2(sub_80947C0, SOUTH, get_go_fast_image_anim_num, 8, sub_809459C) +special_anim_with_timer_2(sub_80947F8, NORTH, get_go_fast_image_anim_num, 8, sub_809459C) +special_anim_with_timer_2(sub_8094830, WEST, get_go_fast_image_anim_num, 8, sub_809459C) +special_anim_with_timer_2(sub_8094868, EAST, get_go_fast_image_anim_num, 8, sub_809459C) +special_anim_with_timer_2(sub_80948A0, SOUTH, get_go_faster_image_anim_num, 4, sub_809459C) +special_anim_with_timer_2(sub_80948D8, NORTH, get_go_faster_image_anim_num, 4, sub_809459C) +special_anim_with_timer_2(sub_8094910, WEST, get_go_faster_image_anim_num, 4, sub_809459C) +special_anim_with_timer_2(sub_8094948, EAST, get_go_faster_image_anim_num, 4, sub_809459C) + +an_walk_any_2_macro(sub_8094980, do_go_anim, npc_obj_ministep_stop_on_arrival, DIR_SOUTH, 2) +an_walk_any_2_macro(sub_80949C0, do_go_anim, npc_obj_ministep_stop_on_arrival, DIR_NORTH, 2) +an_walk_any_2_macro(sub_8094A00, do_go_anim, npc_obj_ministep_stop_on_arrival, DIR_WEST, 2) +an_walk_any_2_macro(sub_8094A40, do_go_anim, npc_obj_ministep_stop_on_arrival, DIR_EAST, 2) +an_walk_any_2_macro(sub_8094A80, do_go_anim, npc_obj_ministep_stop_on_arrival, DIR_SOUTH, 3) +an_walk_any_2_macro(sub_8094AC0, do_go_anim, npc_obj_ministep_stop_on_arrival, DIR_NORTH, 3) +an_walk_any_2_macro(sub_8094B00, do_go_anim, npc_obj_ministep_stop_on_arrival, DIR_WEST, 3) +an_walk_any_2_macro(sub_8094B40, do_go_anim, npc_obj_ministep_stop_on_arrival, DIR_EAST, 3) +an_walk_any_2_macro(sub_8094B80, do_go_anim, npc_obj_ministep_stop_on_arrival, DIR_SOUTH, 4) +an_walk_any_2_macro(sub_8094BC0, do_go_anim, npc_obj_ministep_stop_on_arrival, DIR_NORTH, 4) +an_walk_any_2_macro(sub_8094C00, do_go_anim, npc_obj_ministep_stop_on_arrival, DIR_WEST, 4) +an_walk_any_2_macro(sub_8094C40, do_go_anim, npc_obj_ministep_stop_on_arrival, DIR_EAST, 4) +an_walk_any_2_macro(sub_8094C80, do_run_anim, npc_obj_ministep_stop_on_arrival, DIR_SOUTH) +an_walk_any_2_macro(sub_8094CC0, do_run_anim, npc_obj_ministep_stop_on_arrival, DIR_NORTH) +an_walk_any_2_macro(sub_8094D00, do_run_anim, npc_obj_ministep_stop_on_arrival, DIR_WEST) +an_walk_any_2_macro(sub_8094D40, do_run_anim, npc_obj_ministep_stop_on_arrival, DIR_EAST) + +void npc_set_direction_and_anim__an_proceed(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 animNum) +{ + obj_anim_image_set_and_seek(sprite, animNum, 0); + FieldObjectSetDirection(mapObject, direction); + sprite->data2 = 1; +} + +bool8 sub_8094DAC(struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_set_direction_and_anim__an_proceed(mapObject, sprite, mapObject->placeholder18, sprite->animNum); + return FALSE; +} + +bool8 sub_8094DC4(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_80979BC(sprite)) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +void sub_8094DE4(struct MapObject *mapObject, struct Sprite *sprite, u8 direction) +{ + sub_8093FC4(mapObject, sprite, direction, 1, 0); + StartSpriteAnim(sprite, sub_80929AC(direction)); +} + +#define unk_macro_8094E18(name, direction)\ +bool8 name##_2(struct MapObject *, struct Sprite *);\ +bool8 name(struct MapObject *mapObject, struct Sprite *sprite)\ +{\ + sub_8094DE4(mapObject, sprite, direction);\ + return name##_2(mapObject, sprite);\ +}\ +bool8 name##_2(struct MapObject *mapObject, struct Sprite *sprite)\ +{\ + if (sub_80941C8(mapObject, sprite))\ + {\ + sprite->data2 = 2;\ + mapObject->mapobj_bit_5 = FALSE;\ + return TRUE;\ + }\ + return FALSE;\ +} + +unk_macro_8094E18(sub_8094E18, DIR_SOUTH) +unk_macro_8094E18(sub_8094E60, DIR_NORTH) +unk_macro_8094E18(sub_8094EB8, DIR_WEST) +unk_macro_8094E18(sub_8094710, DIR_EAST) + +bool8 sub_8094F38(struct MapObject *mapObject, struct Sprite *sprite) +{ + u8 mapObjectId; + + if (!TryGetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0, &mapObjectId)) + { + an_look_any(mapObject, sprite, sub_8092AF8(mapObject->coords2.x, mapObject->coords2.y, gMapObjects[mapObjectId].coords2.x, gMapObjects[mapObjectId].coords2.y)); + } + sprite->data2 = 1; + return TRUE; +} + +bool8 sub_8094F94(struct MapObject *mapObject, struct Sprite *sprite) +{ + u8 mapObjectId; + + if (!TryGetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0, &mapObjectId)) + { + an_look_any(mapObject, sprite, GetOppositeDirection(sub_8092AF8(mapObject->coords2.x, mapObject->coords2.y, gMapObjects[mapObjectId].coords2.x, gMapObjects[mapObjectId].coords2.y))); + } + sprite->data2 = 1; + return TRUE; +} + +bool8 sub_8094FF8(struct MapObject *mapObject, struct Sprite *sprite) +{ + mapObject->mapobj_bit_9 = TRUE; + sprite->data2 = 1; + return TRUE; +} + +bool8 sub_8095008(struct MapObject *mapObject, struct Sprite *sprite) +{ + mapObject->mapobj_bit_9 = FALSE; + sprite->data2 = 1; + return TRUE; +} + +maybe_shadow_1_macro(sub_8095018, maybe_shadow_1, sub_80941B0, DIR_SOUTH, 1, 2) +maybe_shadow_1_macro(sub_8095070, maybe_shadow_1, sub_80941B0, DIR_NORTH, 1, 2) +maybe_shadow_1_macro(sub_80950C8, maybe_shadow_1, sub_80941B0, DIR_WEST, 1, 2) +maybe_shadow_1_macro(sub_8095120, maybe_shadow_1, sub_80941B0, DIR_EAST, 1, 2) +maybe_shadow_1_macro(sub_8095178, maybe_shadow_1, sub_80941B0, DIR_SOUTH, 0, 0) +maybe_shadow_1_macro(sub_80951D0, maybe_shadow_1, sub_80941B0, DIR_NORTH, 0, 0) +maybe_shadow_1_macro(sub_8095228, maybe_shadow_1, sub_80941B0, DIR_WEST, 0, 0) +maybe_shadow_1_macro(sub_8095280, maybe_shadow_1, sub_80941B0, DIR_EAST, 0, 0) +maybe_shadow_1_macro(sub_80952D8, maybe_shadow_1, sub_80941E0, DIR_SOUTH, 0, 2) +maybe_shadow_1_macro(sub_8095330, maybe_shadow_1, sub_80941E0, DIR_NORTH, 0, 2) +maybe_shadow_1_macro(sub_8095388, maybe_shadow_1, sub_80941E0, DIR_WEST, 0, 2) +maybe_shadow_1_macro(sub_80953E0, maybe_shadow_1, sub_80941E0, DIR_EAST, 0, 2) + +bool8 sub_8095438(struct MapObject *mapObject, struct Sprite *sprite) +{ + an_look_any(mapObject, sprite, gUnknown_085055CD[mapObject->animPattern]); + return TRUE; +} + +bool8 sub_8095450(struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_set_direction_and_anim__an_proceed(mapObject, sprite, DIR_SOUTH, 0x14); + return FALSE; +} + +bool8 sub_8095460(struct MapObject *mapObject, struct Sprite *sprite) +{ + mapObject->mapobj_bit_25 = FALSE; + sprite->data2 = 1; + return TRUE; +} + +bool8 sub_8095470(struct MapObject *mapObject, struct Sprite *sprite) +{ + mapObject->mapobj_bit_25 = TRUE; + sprite->data2 = 1; + return TRUE; +} + +bool8 sub_8095480(struct MapObject *mapObject, struct Sprite *sprite) +{ + mapObject->mapobj_bit_12 = TRUE; + sprite->data2 = 1; + return TRUE; +} + +bool8 sub_8095490(struct MapObject *mapObject, struct Sprite *sprite) +{ + mapObject->mapobj_bit_12 = GetFieldObjectGraphicsInfo(mapObject->graphicsId)->inanimate; + sprite->data2 = 1; + return TRUE; +} + +bool8 sub_80954BC(struct MapObject *mapObject, struct Sprite *sprite) +{ + mapObject->mapobj_bit_13 = TRUE; + sprite->data2 = 1; + return TRUE; +} + +bool8 sub_80954CC(struct MapObject *mapObject, struct Sprite *sprite) +{ + mapObject->mapobj_bit_13 = FALSE; + sprite->data2 = 1; + return TRUE; +} + +bool8 do_exclamation_mark_bubble_1(struct MapObject *mapObject, struct Sprite *sprite) +{ + FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectSpawnParams[0], (u8 *)&gFieldEffectSpawnParams[1], (u8 *)&gFieldEffectSpawnParams[2]); + FieldEffectStart(FLDEFF_EXCLAMATION_MARK_ICON_1); + sprite->data2 = 1; + return TRUE; +} + +bool8 do_exclamation_mark_bubble_2(struct MapObject *mapObject, struct Sprite *sprite) +{ + FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectSpawnParams[0], (u8 *)&gFieldEffectSpawnParams[1], (u8 *)&gFieldEffectSpawnParams[2]); + FieldEffectStart(FLDEFF_EXCLAMATION_MARK_ICON_2); + sprite->data2 = 1; + return TRUE; +} + +bool8 do_heart_bubble(struct MapObject *mapObject, struct Sprite *sprite) +{ + FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectSpawnParams[0], (u8 *)&gFieldEffectSpawnParams[1], (u8 *)&gFieldEffectSpawnParams[2]); + FieldEffectStart(FLDEFF_HEART_ICON); + sprite->data2 = 1; + return TRUE; +} + +bool8 sub_8095548(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (mapObject->animPattern == 0x3F) + { + sub_80B4578(mapObject); + return FALSE; + } + if (mapObject->animPattern != 0x39 && mapObject->animPattern != 0x3A) + { + sprite->data2 = 2; + return TRUE; + } + sub_8155D78(mapObject); + sprite->data2 = 1; + return sub_809558C(mapObject, sprite); +} + +bool8 sub_809558C(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_8155DA0(mapObject)) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_80955AC(struct MapObject *mapObject, struct Sprite *sprite) +{ + obj_anim_image_set_and_seek(sprite, 1, 0); + sprite->data2 = 1; + return FALSE; +} + +bool8 sub_80955C8(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_80979BC(sprite)) + { + SetFieldObjectStepTimer(sprite, 32); + sprite->data2 = 2; + } + return FALSE; +} + +bool8 sub_80955EC(struct MapObject *mapObject, struct Sprite *sprite) +{ + mapObject->mapobj_bit_13 ^= TRUE; + if (RunFieldObjectStepTimer(sprite)) + { + mapObject->mapobj_bit_13 = TRUE; + sprite->data2 = 3; + } + return FALSE; +} + +bool8 sub_8095628(struct MapObject *mapObject, struct Sprite *sprite) +{ + obj_anim_image_set_and_seek(sprite, 1, 0); + sprite->data2 = 1; + return FALSE; +} + +bool8 sub_8095644(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_80979BC(sprite)) + { + SetFieldObjectStepTimer(sprite, 32); + sprite->data2 = 2; + } + return FALSE; +} + +bool8 sub_8095668(struct MapObject *mapObject, struct Sprite *sprite) +{ + mapObject->mapobj_bit_13 ^= TRUE; + if (RunFieldObjectStepTimer(sprite)) + { + mapObject->mapobj_bit_13 = TRUE; + sprite->data2 = 3; + } + return FALSE; +} + +bool8 sub_80956A4(struct MapObject *mapObject, struct Sprite *sprite) +{ + mapObject->mapobj_bit_26 = TRUE; + sprite->data2 = 1; + return TRUE; +} + +bool8 sub_80956B4(struct MapObject *mapObject, struct Sprite *sprite) +{ + mapObject->mapobj_bit_26 = FALSE; + sprite->data2 = 1; + return TRUE; +} + +bool8 sub_80956C4(struct MapObject *mapObject, struct Sprite *sprite) +{ + sprite->oam.affineMode = 3; + InitSpriteAffineAnim(sprite); + sprite->affineAnimPaused = TRUE; + sprite->subspriteMode = 0; + return TRUE; +} + +bool8 sub_80956F4(struct MapObject *mapObject, struct Sprite *sprite) +{ + FreeOamMatrix(sprite->oam.matrixNum); + sprite->oam.affineMode = 0; + CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, sprite->oam.affineMode); + return TRUE; +} + +bool8 sub_8095724(struct MapObject *mapObject, struct Sprite *sprite) +{ + mapObject->mapobj_bit_27 = TRUE; + return TRUE; +} + +bool8 sub_8095730(struct MapObject *mapObject, struct Sprite *sprite) +{ + mapObject->mapobj_bit_27 = FALSE; + return TRUE; +} + +#define affine_an_walk_any_2_macro(name, fn, fn2, action, anim, ...)\ +bool8 name##_2(struct MapObject *, struct Sprite *);\ +bool8 name(struct MapObject *mapObject, struct Sprite *sprite)\ +{\ + fn(mapObject, sprite, __VA_ARGS__);\ + sprite->affineAnimPaused = FALSE;\ + action(sprite, anim);\ + return name##_2(mapObject, sprite);\ +}\ +bool8 name##_2(struct MapObject *mapObject, struct Sprite *sprite)\ +{\ + if (fn2(mapObject, sprite))\ + {\ + sprite->affineAnimPaused = TRUE;\ + sprite->data2 = 2;\ + return TRUE;\ + }\ + return FALSE;\ +}\ + +affine_an_walk_any_2_macro(sub_8095740, sub_8093B60, an_walk_any_2, StartSpriteAffineAnimIfDifferent, 0, DIR_SOUTH) +affine_an_walk_any_2_macro(sub_80957A0, sub_8093B60, an_walk_any_2, ChangeSpriteAffineAnimIfDifferent, 1, DIR_SOUTH) +affine_an_walk_any_2_macro(sub_8095800, do_go_anim, npc_obj_ministep_stop_on_arrival, ChangeSpriteAffineAnimIfDifferent, 2, DIR_WEST, 1) +affine_an_walk_any_2_macro(sub_8095860, do_go_anim, npc_obj_ministep_stop_on_arrival, ChangeSpriteAffineAnimIfDifferent, 3, DIR_EAST, 1) + +static void sub_80958C0(struct MapObject *mapObject, struct Sprite *sprite, u8 direction) +{ + FieldObjectSetDirection(mapObject, direction); + npc_coords_shift_still(mapObject); + obj_npc_animation_step(mapObject, sprite, sub_80929FC(direction)); + sprite->animPaused = TRUE; + sprite->data2 = 1; +} + +bool8 sub_8095900(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_80958C0(mapObject, sprite, DIR_SOUTH); + return TRUE; +} + +bool8 sub_8095910(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_80958C0(mapObject, sprite, DIR_NORTH); + return TRUE; +} + +bool8 sub_8095920(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_80958C0(mapObject, sprite, DIR_WEST); + return TRUE; +} + +bool8 sub_8095930(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_80958C0(mapObject, sprite, DIR_EAST); + return TRUE; +} + +#define set_dirn_and_anim__an_proceed(name, direction, anims)\ +bool8 name(struct MapObject *mapObject, struct Sprite *sprite)\ +{\ + npc_set_direction_and_anim__an_proceed(mapObject, sprite, direction, anims(direction));\ + return FALSE;\ +} + +set_dirn_and_anim__an_proceed(sub_8095940, DIR_SOUTH, sub_80929BC) +set_dirn_and_anim__an_proceed(sub_8095964, DIR_NORTH, sub_80929BC) +set_dirn_and_anim__an_proceed(sub_8095988, DIR_WEST, sub_80929BC) +set_dirn_and_anim__an_proceed(sub_80959AC, DIR_EAST, sub_80929BC) +set_dirn_and_anim__an_proceed(sub_80959D0, DIR_SOUTH, sub_80929DC) +set_dirn_and_anim__an_proceed(sub_80959F4, DIR_NORTH, sub_80929DC) +set_dirn_and_anim__an_proceed(sub_8095A18, DIR_WEST, sub_80929DC) +set_dirn_and_anim__an_proceed(sub_8095A3C, DIR_EAST, sub_80929DC) +set_dirn_and_anim__an_proceed(sub_8095A60, DIR_SOUTH, sub_80929EC) +set_dirn_and_anim__an_proceed(sub_8095A84, DIR_NORTH, sub_80929EC) +set_dirn_and_anim__an_proceed(sub_8095AA8, DIR_WEST, sub_80929EC) +set_dirn_and_anim__an_proceed(sub_8095ACC, DIR_EAST, sub_80929EC) + +void sub_8095AF0(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_8097750(sprite); + sprite->animPaused = FALSE; +} + +bool8 sub_8095B0C(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_8097758(sprite)) + { + npc_coords_shift_still(mapObject); + mapObject->mapobj_bit_3 = TRUE; + sprite->animPaused = TRUE; + return TRUE; + } + return FALSE; +} + +bool8 sub_8095B44(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_8095AF0(mapObject, sprite); + sprite->data2 = 1; + return sub_8095B64(mapObject, sprite); +} + +bool8 sub_8095B64(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_8095B0C(mapObject, sprite)) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +void sub_8095B84(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 speed, u8 a4) +{ + sub_8093FC4(mapObject, sprite, direction, speed, a4); + StartSpriteAnimIfDifferent(sprite, sub_80929BC(direction)); + DoShadowFieldEffect(mapObject); +} + +maybe_shadow_1_macro(sub_8095BC8, sub_8095B84, sub_80941B0, DIR_SOUTH, 0, 1) +maybe_shadow_1_macro(sub_8095C20, sub_8095B84, sub_80941B0, DIR_NORTH, 0, 1) +maybe_shadow_1_macro(sub_8095C78, sub_8095B84, sub_80941B0, DIR_WEST, 0, 1) +maybe_shadow_1_macro(sub_8095CD0, sub_8095B84, sub_80941B0, DIR_EAST, 0, 1) +maybe_shadow_1_macro(sub_8095D28, sub_8095B84, sub_80941B0, DIR_SOUTH, 1, 1) +maybe_shadow_1_macro(sub_8095D80, sub_8095B84, sub_80941B0, DIR_NORTH, 1, 1) +maybe_shadow_1_macro(sub_8095DD8, sub_8095B84, sub_80941B0, DIR_WEST, 1, 1) +maybe_shadow_1_macro(sub_8095E30, sub_8095B84, sub_80941B0, DIR_EAST, 1, 1) +maybe_shadow_1_macro(sub_8095E88, sub_8095B84, sub_80941B0, DIR_SOUTH, 2, 0) +maybe_shadow_1_macro(sub_8095EE0, sub_8095B84, sub_80941B0, DIR_NORTH, 2, 0) +maybe_shadow_1_macro(sub_8095F38, sub_8095B84, sub_80941B0, DIR_WEST, 2, 0) +maybe_shadow_1_macro(sub_8095F90, sub_8095B84, sub_80941B0, DIR_EAST, 2, 0) + +special_anim_with_timer_2(sub_8095FE8, SOUTH, sub_80929FC, 8, sub_809459C) +special_anim_with_timer_2(sub_8096020, NORTH, sub_80929FC, 8, sub_809459C) +special_anim_with_timer_2(sub_8096058, WEST, sub_80929FC, 8, sub_809459C) +special_anim_with_timer_2(sub_8096090, EAST, sub_80929FC, 8, sub_809459C) + +void sub_80960C8(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 speed) +{ + npc_apply_direction(mapObject, sprite, direction, speed); + StartSpriteAnim(sprite, sub_80929BC(mapObject->mapobj_unk_18)); + SeekSpriteAnim(sprite, 0); +} + +an_walk_any_2_macro(sub_8096100, sub_80960C8, npc_obj_ministep_stop_on_arrival, DIR_SOUTH, 1) +an_walk_any_2_macro(sub_8096140, sub_80960C8, npc_obj_ministep_stop_on_arrival, DIR_NORTH, 1) +an_walk_any_2_macro(sub_8096180, sub_80960C8, npc_obj_ministep_stop_on_arrival, DIR_WEST, 1) +an_walk_any_2_macro(sub_80961C0, sub_80960C8, npc_obj_ministep_stop_on_arrival, DIR_EAST, 1) + +void sub_8096200(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 speed) +{ + npc_apply_direction(mapObject, sprite, direction, speed); + npc_apply_anim_looping(mapObject, sprite, sub_80929FC(mapObject->mapobj_unk_18)); +} + +an_walk_any_2_macro(sub_8096230, sub_8096200, npc_obj_ministep_stop_on_arrival, DIR_SOUTH, 1) +an_walk_any_2_macro(sub_8096270, sub_8096200, npc_obj_ministep_stop_on_arrival, DIR_NORTH, 1) +an_walk_any_2_macro(sub_80962B0, sub_8096200, npc_obj_ministep_stop_on_arrival, DIR_WEST, 1) +an_walk_any_2_macro(sub_80962F0, sub_8096200, npc_obj_ministep_stop_on_arrival, DIR_EAST, 1) + +void sub_8096330(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 speed) +{ + npc_apply_direction(mapObject, sprite, direction, speed); + StartSpriteAnim(sprite, sub_80929DC(mapObject->mapobj_unk_18)); + SeekSpriteAnim(sprite, 0); +} +an_walk_any_2_macro(sub_8096368, sub_8096330, npc_obj_ministep_stop_on_arrival, DIR_SOUTH, 1) +an_walk_any_2_macro(sub_80963A8, sub_8096330, npc_obj_ministep_stop_on_arrival, DIR_NORTH, 1) +an_walk_any_2_macro(sub_80963E8, sub_8096330, npc_obj_ministep_stop_on_arrival, DIR_WEST, 1) +an_walk_any_2_macro(sub_8096428, sub_8096330, npc_obj_ministep_stop_on_arrival, DIR_EAST, 1) + +bool8 sub_8096468(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_8097FA4(mapObject); + sprite->data2 = 1; + return TRUE; +} + +bool8 sub_809647C(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_8098044(mapObject->mapobj_unk_1B); + sprite->pos2.y = 0; + sprite->data2 = 1; + return TRUE; +} + +bool8 sub_8096494(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sprite->pos2.y == 0) + { + sub_8098044(mapObject->mapobj_unk_1B); + sprite->data2 = 1; + return TRUE; + } + return FALSE; +} + +bool8 sub_80964B8(struct MapObject *mapObject, struct Sprite *sprite) +{ + return TRUE; +} + +bool8 sub_80964BC(struct MapObject *mapObject, struct Sprite *sprite) +{ + sprite->animPaused = TRUE; + return TRUE; +} + +void npc_obj_transfer_image_anim_pause_flag(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (mapObject->mapobj_bit_10) + { + sprite->animPaused = TRUE; + } +} + +void sub_80964E8(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (mapObject->mapobj_bit_11) + { + sprite->animPaused = FALSE; + mapObject->mapobj_bit_10 = FALSE; + mapObject->mapobj_bit_11 = FALSE; + } +} + +void sub_8096518(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_8096530(mapObject, sprite); + npc_update_obj_anim_flag(mapObject, sprite); +} + +static void sub_8096530(struct MapObject *mapObject, struct Sprite *sprite) +{ + u16 x; + u16 y; + u16 x2; + u16 y2; + const struct MapObjectGraphicsInfo *graphicsInfo; + + mapObject->mapobj_bit_14 = FALSE; + graphicsInfo = GetFieldObjectGraphicsInfo(mapObject->graphicsId); + if (sprite->coordOffsetEnabled) + { + x = sprite->pos1.x + sprite->pos2.x + sprite->centerToCornerVecX + gSpriteCoordOffsetX; + y = sprite->pos1.y + sprite->pos2.y + sprite->centerToCornerVecY + gSpriteCoordOffsetY; + } + else + { + x = sprite->pos1.x + sprite->pos2.x + sprite->centerToCornerVecX; + y = sprite->pos1.y + sprite->pos2.y + sprite->centerToCornerVecY; + } + x2 = graphicsInfo->width; + x2 += x; + y2 = y; + y2 += graphicsInfo->height; + if ((s16)x >= 0x100 || (s16)x2 < -0x10) + { + mapObject->mapobj_bit_14 = TRUE; + } + if ((s16)y >= 0xB0 || (s16)y2 < -0x10) + { + mapObject->mapobj_bit_14 = TRUE; + } +} + +static void npc_update_obj_anim_flag(struct MapObject *mapObject, struct Sprite *sprite) +{ + sprite->invisible = FALSE; + if (mapObject->mapobj_bit_13 || mapObject->mapobj_bit_14) + { + sprite->invisible = TRUE; + } +} diff --git a/src/field_screen.c b/src/field_screen.c new file mode 100644 index 000000000..2d33d237f --- /dev/null +++ b/src/field_screen.c @@ -0,0 +1,15 @@ + +// Includes +#include "global.h" + +// Static type declarations + +// Static RAM declarations +IWRAM_DATA u8 *gUnknown_03000F50; +IWRAM_DATA u32 filler_03000f54; + +// Static ROM declarations + +// .rodata + +// .text diff --git a/src/field_special_scene.c b/src/field_special_scene.c new file mode 100755 index 000000000..9c35a33da --- /dev/null +++ b/src/field_special_scene.c @@ -0,0 +1,363 @@ +#include "global.h" +#include "task.h" +#include "sprite.h" +#include "field_map_obj.h" +#include "songs.h" +#include "sound.h" +#include "palette.h" +#include "script.h" +#include "vars.h" +#include "event_data.h" +#include "main.h" + +#define SECONDS(value) ((signed) (60.0 * value + 0.5)) + +extern u8 GetSSTidalLocation(s8 *, s8 *, s16 *, s16 *); // should be in field_specials.h +extern void warp1_set(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); +extern bool8 sub_80D3340(u8, u8, u8); +extern bool32 CountSSTidalStep(u16); +extern bool8 exec_movement(u8, u8, u8, u8 *); +extern void copy_saved_warp2_bank_and_enter_x_to_warp1(u8 unused); +extern void sp13E_warp_to_last_warp(void); +extern void saved_warp2_set(int unused, s8 mapGroup, s8 mapNum, s8 warpId); +extern void sub_80AF8B8(void); + +// porthole states +enum +{ + INIT_PORTHOLE, + IDLE_CHECK, + EXECUTE_MOVEMENT, + EXIT_PORTHOLE, +}; + +extern void SetCameraPanning(s16 x, s16 y); +extern void SetCameraPanningCallback(void ( *callback)()); +extern void InstallCameraPanAheadCallback(); +extern void pal_fill_black(void); +extern void MapGridSetMetatileIdAt(s32 x, s32 y, u16 metatileId); +extern void DrawWholeMapView(); + +extern s8 gTruckCamera_HorizontalTable[]; + +extern u8 gUnknown_0858E8AB[]; +extern u8 gUnknown_0858E8AD[]; + +void Task_Truck3(u8); + +s16 GetTruckCameraBobbingY(int a1) +{ + if (!(a1 % 120)) + return -1; + else if ((a1 % 10) <= 4) + return 1; + + return 0; +} + +s16 GetTruckBoxMovement(int a1) // for the box movement? +{ + if (!((a1 + 120) % 180)) + return -1; + + return 0; +} + +// smh STILL BROKEN IN EMERALD +void Task_Truck1(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + s16 cameraYpan; + s16 box1 = 0; + s16 box2 = 0; + s16 box3 = 0; + u8 mapNum, mapGroup; + register s16 zero asm("r4"); + + box1 = GetTruckBoxMovement(data[0] + 30) * 4; // top box. + sub_808E82C(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, 3, box1 + 3); + box2 = GetTruckBoxMovement(data[0]) * 2; // bottom left box. + sub_808E82C(2, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, 0, box2 - 3); + box3 = GetTruckBoxMovement(data[0]) * 4; // bottom right box. + mapNum = gSaveBlock1Ptr->location.mapNum; + mapGroup = gSaveBlock1Ptr->location.mapGroup; + zero = 0; + sub_808E82C(3, mapNum, mapGroup, -3, box3); + + if (++data[0] == SECONDS(500)) // this will never run + data[0] = zero; // reset the timer if it gets stuck. + + cameraYpan = GetTruckCameraBobbingY(data[0]); + SetCameraPanning(0, cameraYpan); +} + +void Task_Truck2(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + s16 cameraYpan; + s16 cameraXpan; + s16 box1; + s16 box2; + s16 box3; + + data[0]++; + data[2]++; + + if (data[0] > 5) + { + data[0] = 0; + data[1]++; + } + if ((u16)data[1] == 19) + { + DestroyTask(taskId); + } + else + { + if (gTruckCamera_HorizontalTable[data[1]] == 2) + gTasks[taskId].func = Task_Truck3; + + cameraXpan = gTruckCamera_HorizontalTable[data[1]]; + cameraYpan = GetTruckCameraBobbingY(data[2]); + SetCameraPanning(cameraXpan, cameraYpan); + box1 = GetTruckBoxMovement(data[2] + 30) * 4; + sub_808E82C(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, 3 - cameraXpan, box1 + 3); + box2 = GetTruckBoxMovement(data[2]) * 2; + sub_808E82C(2, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -cameraXpan, box2 - 3); + box3 = GetTruckBoxMovement(data[2]) * 4; + sub_808E82C(3, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -3 - cameraXpan, box3); + } +} + +void Task_Truck3(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + s16 cameraXpan; + s16 cameraYpan; + + data[0]++; + + if (data[0] > 5) + { + data[0] = 0; + data[1]++; + } + + if ((u16)data[1] == 19) + { + DestroyTask(taskId); + } + else + { + cameraXpan = gTruckCamera_HorizontalTable[data[1]]; + cameraYpan = 0; + SetCameraPanning(cameraXpan, 0); + sub_808E82C(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, 3 - cameraXpan, cameraYpan + 3); + sub_808E82C(2, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -cameraXpan, cameraYpan - 3); + sub_808E82C(3, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -3 - cameraXpan, cameraYpan); + } +} + +void Task_HandleTruckSequence(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + + switch (data[0]) + { + /* + Each case has a timer which is handled with data[1], incrementing + until it reaches the if function's condition, which sets the next task up. + */ + case 0: + data[1]++; + if (data[1] == SECONDS(1.5)) + { + SetCameraPanningCallback(NULL); + data[1] = 0; // reset the timer. + data[2] = CreateTask(Task_Truck1, 0xA); + data[0] = 1; // run the next case. + PlaySE(SE_TRACK_MOVE); + } + break; + case 1: + data[1]++; + if (data[1] == SECONDS(2.5)) + { + pal_fill_black(); + data[1] = 0; + data[0] = 2; + } + break; + case 2: + data[1]++; + if (!gPaletteFade.active && data[1] > SECONDS(5)) + { + data[1] = 0; + DestroyTask(data[2]); + data[3] = CreateTask(Task_Truck2, 0xA); + data[0] = 3; + PlaySE(SE_TRACK_STOP); + } + break; + case 3: + if (!gTasks[data[3]].isActive) // is Truck2 no longer active (is Truck3 active?) + { + InstallCameraPanAheadCallback(); + data[1] = 0; + data[0] = 4; + } + break; + case 4: + data[1]++; + if (data[1] == 90) + { + PlaySE(SE_TRACK_HAIK); + data[1] = 0; + data[0] = 5; + } + break; + case 5: + data[1]++; + if (data[1] == 120) + { + MapGridSetMetatileIdAt(11, 8, 520); + MapGridSetMetatileIdAt(11, 9, 528); + MapGridSetMetatileIdAt(11, 10, 536); + DrawWholeMapView(); + PlaySE(SE_TRACK_DOOR); + DestroyTask(taskId); + ScriptContext2_Disable(); + } + break; + } +} + +void ExecuteTruckSequence(void) +{ + MapGridSetMetatileIdAt(11, 8, 525); + MapGridSetMetatileIdAt(11, 9, 533); + MapGridSetMetatileIdAt(11, 10, 541); + DrawWholeMapView(); + ScriptContext2_Enable(); + CpuFastFill(0, gPlttBufferFaded, 0x400); + CreateTask(Task_HandleTruckSequence, 0xA); +} + +void EndTruckSequence(u8 taskId) +{ + if (!FuncIsActiveTask(Task_HandleTruckSequence)) + { + sub_808E82C(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, 3, 3); + sub_808E82C(2, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, 0, -3); + sub_808E82C(3, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -3, 0); + } +} + +bool8 sub_80FB59C(void) +{ + s8 mapGroup, mapNum; + s16 x, y; + + if (GetSSTidalLocation(&mapGroup, &mapNum, &x, &y)) + { + return FALSE; + } + else + { + warp1_set(mapGroup, mapNum, -1, x, y); + return TRUE; + } +} + +void Task_HandlePorthole(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + u16 *var = GetVarPointer(VAR_PORTHOLE); + struct WarpData *location = &gSaveBlock1Ptr->location; + + switch (data[0]) + { + case INIT_PORTHOLE: // finish fading before making porthole finish. + if (!gPaletteFade.active) + { + data[1] = 0; + data[0] = EXECUTE_MOVEMENT; // execute movement before checking if should be exited. strange? + } + break; + case IDLE_CHECK: // idle and move. + if (gMain.newKeys & A_BUTTON) + data[1] = 1; + if (!sub_80D3340(0xFF, location->mapNum, location->mapGroup)) + return; + if (CountSSTidalStep(1) == TRUE) + { + if (*var == 2) + *var = 9; + else + *var = 10; + data[0] = 3; + return; + } + data[0] = 2; + case EXECUTE_MOVEMENT: // execute movement. + if (data[1]) + { + data[0] = EXIT_PORTHOLE; // exit porthole. + return; + } + // run this once. + if (*var == 2) // which direction? + { + exec_movement(0xFF, location->mapNum, location->mapGroup, gUnknown_0858E8AB); + data[0] = IDLE_CHECK; // run case 1. + } + else + { + exec_movement(0xFF, location->mapNum, location->mapGroup, gUnknown_0858E8AD); + data[0] = IDLE_CHECK; // run case 1. + } + break; + case EXIT_PORTHOLE: // exit porthole. + FlagReset(0x4001); + FlagReset(0x4000); + copy_saved_warp2_bank_and_enter_x_to_warp1(0); + sp13E_warp_to_last_warp(); + DestroyTask(taskId); + break; + } +} + +void sub_80FB6EC(void) +{ + u8 spriteId = AddPseudoFieldObject(0x8C, SpriteCallbackDummy, 112, 80, 0); + + gSprites[spriteId].coordOffsetEnabled = FALSE; + + if (VarGet(0x40B4) == 2) + { + StartSpriteAnim(&gSprites[spriteId], FieldObjectDirectionToImageAnimId(4)); + } + else + { + StartSpriteAnim(&gSprites[spriteId], FieldObjectDirectionToImageAnimId(3)); + } +} + +void sub_80FB768(void) +{ + sub_80FB6EC(); + gMapObjects[gPlayerAvatar.mapObjectId].mapobj_bit_13 = TRUE; + pal_fill_black(); + CreateTask(Task_HandlePorthole, 80); + ScriptContext2_Enable(); +} + +void sub_80FB7A4(void) +{ + FlagSet(SYS_CRUISE_MODE); + FlagSet(0x4001); + FlagSet(0x4000); + saved_warp2_set(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); + sub_80FB59C(); + sub_80AF8B8(); +} diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c new file mode 100644 index 000000000..9929dd6f9 --- /dev/null +++ b/src/fldeff_cut.c @@ -0,0 +1,19 @@ + +// Includes +#include "global.h" + +// Static type declarations + +// Static RAM declarations + +IWRAM_DATA u8 gUnknown_03001100; +IWRAM_DATA u8 gUnknown_03001101; +IWRAM_DATA u8 gUnknown_03001102; +IWRAM_DATA u32 fldeff_cut_unused_03001104; +IWRAM_DATA u8 gUnknown_03001108[25]; + +// Static ROM declarations + +// .rodata + +// .text diff --git a/src/gpu_regs.c b/src/gpu_regs.c index be1f153d4..805f23b48 100644 --- a/src/gpu_regs.c +++ b/src/gpu_regs.c @@ -1,4 +1,5 @@ #include "global.h" +#include "gpu_regs.h" #define GPU_REG_BUF_SIZE 0x60 @@ -14,14 +15,15 @@ static bool8 sShouldSyncRegIE; static u16 sRegIE; static void CopyBufferedValueToGpuReg(u8 regOffset); -static void SyncRegIE(); +static void SyncRegIE(void); static void UpdateRegDispstatIntrBits(u16 regIE); -void InitGpuRegManager() +void InitGpuRegManager(void) { s32 i; - for (i = 0; i < GPU_REG_BUF_SIZE; i++) { + for (i = 0; i < GPU_REG_BUF_SIZE; i++) + { sGpuRegBuffer[i] = 0; sGpuRegWaitingList[i] = EMPTY_SLOT; } @@ -33,20 +35,25 @@ void InitGpuRegManager() static void CopyBufferedValueToGpuReg(u8 regOffset) { - if (regOffset == REG_OFFSET_DISPSTAT) { + if (regOffset == REG_OFFSET_DISPSTAT) + { REG_DISPSTAT &= ~(DISPSTAT_HBLANK_INTR | DISPSTAT_VBLANK_INTR); REG_DISPSTAT |= GPU_REG_BUF(REG_OFFSET_DISPSTAT); - } else { + } + else + { GPU_REG(regOffset) = GPU_REG_BUF(regOffset); } } -void CopyBufferedValuesToGpuRegs() +void CopyBufferedValuesToGpuRegs(void) { - if (!sGpuRegBufferLocked) { + if (!sGpuRegBufferLocked) + { s32 i; - for (i = 0; i < GPU_REG_BUF_SIZE; i++) { + for (i = 0; i < GPU_REG_BUF_SIZE; i++) + { u8 regOffset = sGpuRegWaitingList[i]; if (regOffset == EMPTY_SLOT) return; @@ -135,7 +142,7 @@ void ClearGpuRegBits(u8 regOffset, u16 mask) SetGpuReg(regOffset, regValue & ~mask); } -static void SyncRegIE() +static void SyncRegIE(void) { if (sShouldSyncRegIE) { u16 temp = REG_IME; diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c new file mode 100644 index 000000000..d9fd40b84 --- /dev/null +++ b/src/hall_of_fame.c @@ -0,0 +1,4 @@ +#include "global.h" +#include "hall_of_fame.h" + + diff --git a/src/item.c b/src/item.c index c85e2fe1f..0114676b6 100644 --- a/src/item.c +++ b/src/item.c @@ -8,9 +8,9 @@ extern void ApplyNewEncyprtionKeyToHword(u16* hword, u32 newKey); extern bool8 InBattlePyramid(void); -extern const u8 gOtherText_PokeBalls[]; -extern const u8 gOtherText_Berries[]; -extern const u8 gOtherText_Berry[]; +extern const u8 gText_PokeBalls[]; +extern const u8 gText_Berries[]; +extern const u8 gText_Berry[]; extern const u8 gUnknown_085897E4[][28]; // not sure what this one is bool8 CheckPyramidBagHasItem(u16 itemId, u16 count); @@ -92,7 +92,7 @@ void CopyItemNameHandlePlural(u16 itemId, u8 *string, u32 quantity) if (quantity < 2) StringCopy(string, ItemId_GetItem(ITEM_POKE_BALL)->name); else - StringCopy(string, gOtherText_PokeBalls); + StringCopy(string, gText_PokeBalls); } else { @@ -109,9 +109,9 @@ void GetBerryCountString(u8* dst, const u8* berryName, u32 quantity) u8* txtPtr; if (quantity < 2) - berryString = gOtherText_Berry; + berryString = gText_Berry; else - berryString = gOtherText_Berries; + berryString = gText_Berries; txtPtr = StringCopy(dst, berryName); *txtPtr = CHAR_SPACE; StringCopy(txtPtr + 1, berryString); diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c new file mode 100644 index 000000000..9f38824f9 --- /dev/null +++ b/src/lilycove_lady.c @@ -0,0 +1,1101 @@ +// +// Created by Scott Norton on 9/19/17. +// + +#include "global.h" +#include "main.h" +#include "rom4.h" +#include "rom6.h" +#include "event_data.h" +#include "script.h" +#include "rng.h" +#include "string_util.h" +#include "item.h" +#include "items.h" +#include "item_menu.h" +#include "text.h" +#include "easy_chat.h" +#include "lilycove_lady.h" + +static void SetLilycoveQuizLady(void); +static void SetLilycoveFavourLady(void); +static void SetLilycoveContestLady(void); +static void sub_818E004(void); +static void sub_818DBC4(void); +static void sub_818E674(void); +static u8 sub_818E13C(void); +static bool8 sub_818E1F4(void); +static u8 sub_818E258(const u8 *); + +extern const u8 gText_Lady2[]; + +static const u16 gUnknown_0860B074[] = { + 0x62, 0xcb, 0xdc, 0xcc, 0xd1 +}; +static const u16 gUnknown_0860B07E[] = { + 0x1a, 0x14, 0x0a +}; + +static const u16 Unknown_0860B084[] = { + 0x101b, 0x1623, 0x1812, 0x102c, 0x020e, 0x0c03, 0x1a0b, 0x0210, 0x020d +}; + +static const u16 Unknown_0860B096[] = { + 0x101b, 0x1013, 0x1020, 0x1a0f, 0x020c, 0x0c03, 0x0211, 0x0203, 0x0400 +}; + +static const u16 Unknown_0860B0A8[] = { + 0x0e0f, 0x1018, 0x020e, 0x0204, 0x0c03, 0xffff, 0x0212, 0x0451, 0x0463 +}; + +static const u16 Unknown_0860B0BA[] = { + 0x101b, 0x100b, 0x0e0d, 0x141a, 0x181d, 0x0c03, 0x141e, 0x1a26, 0x1823 +}; + +static const u16 Unknown_0860B0CC[] = { + 0x101b, 0x181d, 0x1018, 0x0a02, 0x2014, 0x0c03, 0x0208, 0x1824, 0x181c +}; + +static const u16 Unknown_0860B0DE[] = { + 0x101b, 0x1000, 0x1c19, 0x265d, 0x0c03, 0xffff, 0x0447, 0x045d, 0x042c +}; + +static const u16 Unknown_0860B0F0[] = { + 0x101b, 0x1034, 0x1e11, 0x100b, 0x1a08, 0x0c03, 0x044b, 0x0446, 0x040a +}; + +static const u16 Unknown_0860B102[] = { + 0x101b, 0x1000, 0x274f, 0x0626, 0x0c03, 0xffff, 0x0442, 0x0411, 0x0450 +}; + +static const u16 Unknown_0860B114[] = { + 0x101b, 0x1000, 0x1c19, 0x043c, 0x0c03, 0xffff, 0x0421, 0x0464, 0x0435 +}; + +static const u16 Unknown_0860B126[] = { + 0x101b, 0x1203, 0x1030, 0x0207, 0x0c03, 0xffff, 0x0210, 0x020e, 0x020d +}; + +static const u16 Unknown_0860B138[] = { + 0x101b, 0x1623, 0x0a05, 0x020e, 0x0c03, 0xffff, 0x1a25, 0x181a, 0x181b +}; + +static const u16 Unknown_0860B14A[] = { + 0x101b, 0x1823, 0x1603, 0x0a02, 0x1812, 0x0c03, 0x1a15, 0x1a23, 0x181b +}; + +static const u16 Unknown_0860B15C[] = { + 0x1020, 0x020e, 0x1010, 0x1043, 0x1e0f, 0x0c03, 0x181c, 0x1a24, 0x1816 +}; + +static const u16 Unknown_0860B16E[] = { + 0x0446, 0x100b, 0x0620, 0x061c, 0x101b, 0x0c03, 0x0420, 0x0426, 0xffff +}; + +static const u16 Unknown_0860B180[] = { + 0x0400, 0x100b, 0x0639, 0x061c, 0x101b, 0x0c03, 0x040e, 0x0410, 0xffff +}; + +static const u16 Unknown_0860B192[] = { + 0x041f, 0x100b, 0x0639, 0x061c, 0x101b, 0x0c03, 0x0445, 0x0400, 0xffff +}; + +static const u16 *const gUnknown_0860B1A4[] = { + Unknown_0860B084, + Unknown_0860B096, + Unknown_0860B0A8, + Unknown_0860B0BA, + Unknown_0860B0CC, + Unknown_0860B0DE, + Unknown_0860B0F0, + Unknown_0860B102, + Unknown_0860B114, + Unknown_0860B126, + Unknown_0860B138, + Unknown_0860B14A, + Unknown_0860B15C, + Unknown_0860B16E, + Unknown_0860B180, + Unknown_0860B192 +}; + +static const u16 gUnknown_0860B1E4[] = { + 0x0210, 0x0400, 0x0212, 0x1a26, 0x0208, 0x045d, 0x040a, 0x0411, 0x0464, 0x020e, 0x1a25, 0x181b, 0x1a24, 0x0420, 0x0410, 0x0400 +}; + +static const u16 gUnknown_0860B204[] = { + 0x007b, 0x007f, 0x0081, 0x0023, 0x0023, 0x0023, 0x00a5, 0x00a7, 0x00a6, 0x000b, 0x012f, 0x006b, 0x006d, 0x0044, 0x0044, 0x000c +}; + +extern const u8 gUnknown_085EEB83[]; +extern const u8 gUnknown_085EEB8C[]; +extern const u8 gUnknown_085EEB95[]; +extern const u8 gUnknown_085EEB9E[]; +extern const u8 gUnknown_085EEBA4[]; +extern const u8 gUnknown_085EEBAB[]; + +static const u8 *const gUnknown_0860B224[] = { + gUnknown_085EEB83, + gUnknown_085EEB8C, + gUnknown_085EEB95, + gUnknown_085EEB9E, + gUnknown_085EEBA4, + gUnknown_085EEBAB +}; + +static const u16 Unknown_0860B23C[] = { + 0x0056, 0x0053, 0x0054, 0x000e, 0x0012, 0x000f, 0x00a7, 0x0011, 0x0010, 0x0018, 0x0019, 0x001e, 0x0000 +}; + +static const u16 Unknown_0860B256[] = { + 0x0051, 0x006a, 0x006b, 0x00cc, 0x00c2, 0x002f, 0x0067, 0x0068, 0x0087, 0x0089, 0x008b, 0x009d, 0x00a0, 0x00a5, 0x0004, 0x0002, 0x0000 +}; + +static const u16 Unknown_0860B278[] = { + 0x0021, 0x000d, 0x001a, 0x001b, 0x001c, 0x00cc, 0x00ca, 0x0026, 0x0086, 0x0096, 0x0097, 0x009a, 0x00a2, 0x00a6, 0x0000 +}; + +static const u16 Unknown_0860B296[] = { + 0x0020, 0x004d, 0x004b, 0x004c, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x006e, 0x005d, 0x006c, 0x006d, 0x006a, 0x006b, 0x00d6, 0x00bc, 0x00b3, 0x000b, 0x000c, 0x0000 +}; + +static const u16 Unknown_0860B2C0[] = { + 0x001f, 0x0013, 0x0014, 0x004a, 0x004e, 0x0049, 0x00a5, 0x00c8, 0x0067, 0x006f, 0x0000 +}; + +static const u16 Unknown_0860B2D6[] = { + 0x00b7, 0x00d3, 0x00d2, 0x00d8, 0x009e, 0x00a6, 0x00ab, 0x00aa, 0x006c, 0x006d, 0x0000 +}; + +static const u16 *const gUnknown_0860B2EC[] = { + Unknown_0860B23C, + Unknown_0860B256, + Unknown_0860B278, + Unknown_0860B296, + Unknown_0860B2C0, + Unknown_0860B2D6 +}; + +static const u16 gUnknown_0860B304[] = { + 0x0b, 0x6e, 0x40, 0x6f, 0x44, 0x47 +}; + +extern const u8 gUnknown_085EEB2B[]; +extern const u8 gUnknown_085EEB34[]; +extern const u8 gUnknown_085EEB3A[]; +extern const u8 gUnknown_085EEB41[]; +extern const u8 gUnknown_085EEB4A[]; +extern const u8 gUnknown_085EEB51[]; +extern const u8 gUnknown_085EEB5A[]; +extern const u8 gUnknown_085EEB61[]; +extern const u8 gUnknown_085EEB6A[]; +extern const u8 gUnknown_085EEB74[]; +extern const u8 gUnknown_085EADA4[]; +extern const u8 gUnknown_085EADB5[]; +extern const u8 gUnknown_085EADC4[]; +extern const u8 gUnknown_085EADD5[]; +extern const u8 gUnknown_085EADE7[]; + +static const u8 *const gUnknown_0860B310[] = { + gUnknown_085EEB2B, + gUnknown_085EEB34, + gUnknown_085EEB3A, + gUnknown_085EEB41, + gUnknown_085EEB4A +}; +static const u8 *const gUnknown_0860B324[] = { + gUnknown_085EEB51, + gUnknown_085EEB5A, + gUnknown_085EEB61, + gUnknown_085EEB6A, + gUnknown_085EEB74 +}; +static const u8 *const gUnknown_0860B338[] = { + gUnknown_085EADA4, + gUnknown_085EADB5, + gUnknown_085EADC4, + gUnknown_085EADD5, + gUnknown_085EADE7 +}; + +static const u16 gUnknown_0860B34C[] = { + 0x0120, 0x013b, 0x011e, 0x013d, 0x0019 +}; + +static EWRAM_DATA struct LilycoveLadyFavour *gUnknown_0203CD64 = NULL; +static EWRAM_DATA struct LilycoveLadyQuiz *gUnknown_0203CD68 = NULL; +static EWRAM_DATA struct LilycoveLadyContest *gUnknown_0203CD6C = NULL; + +extern EWRAM_DATA u16 gScriptItemId; + +u8 GetLilycoveLadyId(void) +{ + return gSaveBlock1Ptr->lilycoveLady.id; +} + +void sub_818D9C0(void) +{ + LilycoveLady *lilycoveLady; + + VarSet(VAR_0x4010, gUnknown_0860B07E[GetLilycoveLadyId()]); + if (GetLilycoveLadyId() == LILYCOVE_LADY_CONTEST) + { + lilycoveLady = &gSaveBlock1Ptr->lilycoveLady; + VarSet(VAR_0x4011, gUnknown_0860B074[lilycoveLady->contest.category]); + gScriptResult = TRUE; + } + else + { + gScriptResult = FALSE; + } +} + +void SetLilycoveLady(void) +{ + u16 id; + + id = ((gSaveBlock2Ptr->playerTrainerId[1] << 8) | gSaveBlock2Ptr->playerTrainerId[0]); + id %= 6; + id >>= 1; + switch (id) + { + case LILYCOVE_LADY_QUIZ: + SetLilycoveQuizLady(); + break; + case LILYCOVE_LADY_FAVOUR: + SetLilycoveFavourLady(); + break; + case LILYCOVE_LADY_CONTEST: + SetLilycoveContestLady(); + break; + } +} + +void sub_818DA78(void) +{ + switch (GetLilycoveLadyId()) + { + case LILYCOVE_LADY_QUIZ: + sub_818E004(); + break; + case LILYCOVE_LADY_FAVOUR: + sub_818DBC4(); + break; + case LILYCOVE_LADY_CONTEST: + sub_818E674(); + break; + } +} + +void SetLilycoveLadyRandomly(void) +{ + u8 id; + + id = Random() % 3; + switch (id) + { + case LILYCOVE_LADY_QUIZ: + SetLilycoveQuizLady(); + break; + case LILYCOVE_LADY_FAVOUR: + SetLilycoveFavourLady(); + break; + case LILYCOVE_LADY_CONTEST: + SetLilycoveContestLady(); + break; + } +} + +void sub_818DAEC(void) +{ + gScriptResult = GetLilycoveLadyId(); +} + +static u8 sub_818DB04(const u16 *data) +{ + u8 len; + + for (len = 0; *data != 0; len ++, data ++); + return len; +} + +static void sub_818DB20(void) +{ + u8 size; + u8 idx; + + gUnknown_0203CD64->unk_00c = Random() % 6; + size = sub_818DB04(gUnknown_0860B2EC[gUnknown_0203CD64->unk_00c]); + idx = Random() % size; + gUnknown_0203CD64->unk_010 = gUnknown_0860B2EC[gUnknown_0203CD64->unk_00c][idx]; +} + +static void SetLilycoveFavourLady(void) +{ + gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; + gUnknown_0203CD64->id = LILYCOVE_LADY_FAVOUR; + gUnknown_0203CD64->phase = 0; + gUnknown_0203CD64->playerName[0] = EOS; + gUnknown_0203CD64->unk_002 = 0; + gUnknown_0203CD64->unk_003= 0; + gUnknown_0203CD64->itemId = ITEM_NONE; + gUnknown_0203CD64->language = gGameLanguage; + sub_818DB20(); +} + +static void sub_818DBC4(void) +{ + gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; + gUnknown_0203CD64->id = LILYCOVE_LADY_FAVOUR; + gUnknown_0203CD64->phase = 0; +} + +u8 sub_818DBE8(void) +{ + gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; + if (gUnknown_0203CD64->phase == 2) + { + return 2; + } + else if (gUnknown_0203CD64->phase == 1) + { + return 1; + } + else + { + return 0; + } +} + +static const u8 *sub_818DC1C(u8 idx) +{ + return gUnknown_0860B224[idx]; +} + +void sub_818DC2C(void) +{ + gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; + StringCopy(gStringVar1, sub_818DC1C(gUnknown_0203CD64->unk_00c)); +} + +bool8 sub_818DC60(void) +{ + gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; + if (gUnknown_0203CD64->playerName[0] != EOS) + { + StringCopy7(gStringVar3, gUnknown_0203CD64->playerName); + ConvertInternationalString(gStringVar3, gUnknown_0203CD64->language); + return TRUE; + } + return FALSE; +} + +static void sub_818DCAC(u8 *dest, u16 itemId) +{ + StringCopy(dest, ItemId_GetItem(itemId)->name); +} + +void sub_818DCC8(void) +{ + gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; + sub_818DCAC(gStringVar2, gUnknown_0203CD64->itemId); +} + +static void sub_818DCF4(const u8 *src, u8 *dest) +{ + memset(dest, 0xFF, 8); + StringCopy7(dest, src); +} + +void sub_818DD14(void) +{ + gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; + sub_818DCF4(gUnknown_0203CD64->playerName, gStringVar3); + ConvertInternationalString(gStringVar3, gUnknown_0203CD64->language); +} + +bool8 sub_818DD54(void) +{ + gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; + return gUnknown_0203CD64->unk_002 ? TRUE : FALSE; +} + +void sub_818DD78(void) +{ + sub_81AAC50(); +} + +static bool8 sub_818DD84(u16 itemId) +{ + u8 len; + u8 i; + bool8 response; + + gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; + len = sub_818DB04(gUnknown_0860B2EC[gUnknown_0203CD64->unk_00c]); + gUnknown_0203CD64->phase = 1; + sub_818DCAC(gStringVar2, itemId); + gUnknown_0203CD64->itemId = itemId; + sub_818DCF4(gSaveBlock2Ptr->playerName, gUnknown_0203CD64->playerName); + gUnknown_0203CD64->language = gGameLanguage; + response = FALSE; + for (i = 0; i < len; i ++) + { + if (gUnknown_0860B2EC[gUnknown_0203CD64->unk_00c][i] == itemId) + { + response = TRUE; + gUnknown_0203CD64->unk_003 ++; + gUnknown_0203CD64->unk_002 = 1; + if (gUnknown_0203CD64->unk_010 == itemId) + { + gUnknown_0203CD64->unk_003 = 5; + } + break; + } + gUnknown_0203CD64->unk_002 = 0; + } + return response; +} + +bool8 sub_818DE44(void) +{ + return sub_818DD84(gScriptItemId); +} + +bool8 sub_818DE5C(void) +{ + u8 checkval; + + gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; + checkval = gUnknown_0203CD64->unk_003; + return checkval < 5 ? FALSE : TRUE; +} + +static void sub_818DE88(u16 itemId) +{ + sub_818DCAC(gStringVar2, itemId); +} + +u16 sub_818DEA0(void) +{ + u16 itemId; + + gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; + itemId = gUnknown_0860B304[gUnknown_0203CD64->unk_00c]; + sub_818DE88(itemId); + gUnknown_0203CD64->phase = 2; + return itemId; +} + +void sub_818DEDC(void) +{ + SetLilycoveFavourLady(); + gUnknown_0203CD64->phase = 1; +} + +void sub_818DEF4(void) +{ + EnableBothScriptContexts(); +} + +static void sub_818DF00(void) +{ + u8 v0; + u8 i; + + v0 = Random() % 16; + for (i = 0; i < 9; i ++) + { + gUnknown_0203CD68->unk_002[i] = gUnknown_0860B1A4[v0][i]; + } + gUnknown_0203CD68->unk_014 = gUnknown_0860B1E4[v0]; + gUnknown_0203CD68->itemId = gUnknown_0860B204[v0]; + gUnknown_0203CD68->unk_02b = v0; + gUnknown_0203CD68->playerName[0] = EOS; +} + +static void SetLilycoveQuizLady(void) +{ + u8 i; + + gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; + gUnknown_0203CD68->id = LILYCOVE_LADY_QUIZ; + gUnknown_0203CD68->phase = 0; + for (i = 0; i < 9; i ++) + { + gUnknown_0203CD68->unk_002[i] = -1; + } + gUnknown_0203CD68->unk_014 = -1; + gUnknown_0203CD68->unk_016 = -1; + for (i = 0; i < 4; i ++) + { + gUnknown_0203CD68->playerTrainerId[i] = 0; + } + gUnknown_0203CD68->itemId = ITEM_NONE; + gUnknown_0203CD68->unk_02a = 0; + gUnknown_0203CD68->unk_02c = 0x10; + gUnknown_0203CD68->language = gGameLanguage; + sub_818DF00(); +} + +static void sub_818E004(void) +{ + gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; + gUnknown_0203CD68->id = LILYCOVE_LADY_QUIZ; + gUnknown_0203CD68->phase = 0; + gUnknown_0203CD68->unk_02a = 0; + gUnknown_0203CD68->unk_016 = -1; +} + +u8 sub_818E038(void) +{ + gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; + if (gUnknown_0203CD68->phase == 2) + { + return 2; + } + else if (gUnknown_0203CD68->phase == 1) + { + return 1; + } + else + { + return 0; + } +} + +u8 sub_818E06C(void) +{ + int i; + int j; + u8 rv; + struct LilycoveLadyQuiz *quiz; + + quiz = &gSaveBlock1Ptr->lilycoveLady.quiz; + if (sub_811F8D8(quiz->unk_014) == 0) + { + i = quiz->unk_02b; + do + { + if (++ i >= 16) + { + i = 0; + } + } while (sub_811F8D8(gUnknown_0860B1E4[i]) == 0); + for (j = 0; j < 9; j ++) + { + quiz->unk_002[j] = gUnknown_0860B1A4[i][j]; + } + quiz->unk_014 = gUnknown_0860B1E4[i]; + quiz->itemId = gUnknown_0860B204[i]; + quiz->unk_02b = i; + quiz->playerName[0] = EOS; + } + rv = sub_818E13C(); + if (rv == 0) + { + return 2; + } + else if (rv == 2 || sub_818E1F4()) + { + return 1; + } + else + { + return 0; + } +} + +#ifdef NONMATCHING +static u8 sub_818E13C(void) +{ + u8 retval; + u8 len; + u8 i; + + retval = 1; + gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; + if (gUnknown_0203CD68->playerName[0] == EOS) + { + StringCopy7(gStringVar1, gText_Lady2); + retval = 0; + } + else + { + StringCopy7(gStringVar1, gUnknown_0203CD68->playerName); + ConvertInternationalString(gStringVar1, gUnknown_0203CD68->language); + len = sub_818E258(gUnknown_0203CD68->playerName); + if (len == sub_818E258(gSaveBlock2Ptr->playerName)) + { + for (i = 0; i < len; i ++) + { + if (gUnknown_0203CD68->playerName[i] != gSaveBlock2Ptr->playerName[i]) + { + retval = 2; + break; + } + } + } + + } + return retval; +} +#else +__attribute__((naked)) static u8 sub_818E13C(void) +{ + asm_unified("\tpush {r4-r7,lr}\n" + "\tmovs r7, 0x1\n" + "\tldr r5, =gUnknown_0203CD68\n" + "\tldr r0, =gSaveBlock1Ptr\n" + "\tldr r1, [r0]\n" + "\tldr r2, =0x00003b58\n" + "\tadds r0, r1, r2\n" + "\tstr r0, [r5]\n" + "\tldrb r0, [r0, 0x18]\n" + "\tcmp r0, 0xFF\n" + "\tbne _0818E174\n" + "\tldr r0, =gStringVar1\n" + "\tldr r1, =gText_Lady2\n" + "\tbl StringCopy7\n" + "\tmovs r7, 0\n" + "\tb _0818E1DC\n" + "\t.pool\n" + "_0818E174:\n" + "\tldr r4, =gStringVar1\n" + "\tldr r0, =0x00003b70\n" + "\tadds r1, r0\n" + "\tadds r0, r4, 0\n" + "\tbl StringCopy7\n" + "\tldr r0, [r5]\n" + "\tadds r0, 0x2D\n" + "\tldrb r1, [r0]\n" + "\tadds r0, r4, 0\n" + "\tbl ConvertInternationalString\n" + "\tldr r0, [r5]\n" + "\tadds r0, 0x18\n" + "\tbl sub_818E258\n" + "\tlsls r0, 24\n" + "\tlsrs r4, r0, 24\n" + "\tldr r6, =gSaveBlock2Ptr\n" + "\tldr r0, [r6]\n" + "\tbl sub_818E258\n" + "\tlsls r0, 24\n" + "\tlsrs r0, 24\n" + "\tcmp r4, r0\n" + "\tbne _0818E1DC\n" + "\tldr r0, [r5]\n" + "\tmovs r2, 0\n" + "\tcmp r2, r4\n" + "\tbcs _0818E1DC\n" + "\tldr r1, [r6]\n" + "\tldrb r0, [r0, 0x18]\n" + "\tldrb r1, [r1]\n" + "\tcmp r0, r1\n" + "\tbne _0818E1DA\n" + "_0818E1BA:\n" + "\tadds r0, r2, 0x1\n" + "\tlsls r0, 24\n" + "\tlsrs r2, r0, 24\n" + "\tcmp r2, r4\n" + "\tbcs _0818E1DC\n" + "\tldr r0, =gUnknown_0203CD68\n" + "\tldr r1, [r0]\n" + "\tadds r1, 0x18\n" + "\tadds r1, r2\n" + "\tldr r0, =gSaveBlock2Ptr\n" + "\tldr r0, [r0]\n" + "\tadds r0, r2\n" + "\tldrb r1, [r1]\n" + "\tldrb r0, [r0]\n" + "\tcmp r1, r0\n" + "\tbeq _0818E1BA\n" + "_0818E1DA:\n" + "\tmovs r7, 0x2\n" + "_0818E1DC:\n" + "\tadds r0, r7, 0\n" + "\tpop {r4-r7}\n" + "\tpop {r1}\n" + "\tbx r1\n" + "\t.pool"); +} +#endif + +static u8 sub_818E1F4(void) +{ + bool8 response; + u8 i; + + gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; + response = FALSE; + for (i = 0; i < 4; i ++) + { + if (gUnknown_0203CD68->playerTrainerId[i] != gSaveBlock2Ptr->playerTrainerId[i]) + { + response = TRUE; + break; + } + } + return response; +} + +static u8 sub_818E258(const u8 *str) +{ + u8 len; + const u8 *ptr; + + for (len = 0, ptr = str; *ptr != EOS; len ++, ptr ++); + return len; +} + +void sub_818E274(void) +{ + StringCopy(gStringVar1, ItemId_GetItem(gUnknown_0203CD68->itemId)->name); +} + +bool8 sub_818E298(void) +{ + gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; + if (!sub_818E13C()) + { + gUnknown_0203CD68->language = gGameLanguage; + return TRUE; + } + return FALSE; +} + +u8 sub_818E2D8(void) +{ + gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; + return gUnknown_0203CD68->unk_02a; +} + +void sub_818E2FC(void) +{ + easy_chat_input_maybe(); +} + +bool8 sub_818E308(void) +{ + gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; + CopyEasyChatWord(gStringVar1, gUnknown_0203CD68->unk_014); + CopyEasyChatWord(gStringVar2, gUnknown_0203CD68->unk_016); + return StringCompare(gStringVar1, gStringVar2) ? FALSE : TRUE; +} + +void sub_818E358(void) +{ + gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; + gSpecialVar_0x8005 = gUnknown_0203CD68->itemId; +} + +void sub_818E37C(void) +{ + gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; + gUnknown_0203CD68->phase = 1; +} + +void sub_818E39C(void) +{ + gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; + gUnknown_0203CD68->phase = 2; +} + +void sub_818E3BC(void) +{ + gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; + gUnknown_0203CD68->unk_016 = -1; +} + +void sub_818E3E0(void) +{ + sub_81AAC70(); +} + +void sub_818E3EC(void) +{ + gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; + if (sub_818E298()) + { + gUnknown_0203CD68->unk_02c = gUnknown_0203CD68->unk_02b; + } + else + { + gUnknown_0203CD68->unk_02c = 0x10; + } + sub_818DF00(); +} + +void sub_818E430(void) +{ + u8 i; + + gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; + for (i = 0; i < 9; i ++) + { + gUnknown_0203CD68->unk_002[i] = -1; + } + gUnknown_0203CD68->unk_014 = -1; +} + +void sub_818E47C(void) +{ + gSpecialVar_0x8004 = 0x11; + easy_chat_input_maybe(); +} + +void sub_818E490(void) +{ + RemoveBagItem(gScriptItemId, 1); +} + +void sub_818E4A4(void) +{ + u8 i; + + gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; + gUnknown_0203CD68->itemId = gScriptItemId; + for (i = 0; i < 4; i ++) + { + gUnknown_0203CD68->playerTrainerId[i] = gSaveBlock2Ptr->playerTrainerId[i]; + } + StringCopy7(gUnknown_0203CD68->playerName, gSaveBlock2Ptr->playerName); + gUnknown_0203CD68->language = gGameLanguage; +} + +void sub_818E510(void) +{ + gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; + gUnknown_0203CD68->unk_02a = 1; +} + +void sub_818E538(void) +{ + gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; + CopyEasyChatWord(gStringVar3, gUnknown_0203CD68->unk_014); +} + +void sub_818E564(void) +{ + EnableBothScriptContexts(); +} + +void sub_818E570(const struct LilycoveLadyQuiz *quiz) +{ + u8 i; + + gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; + if (quiz->unk_02c < 16 && gUnknown_0203CD68->id == LILYCOVE_LADY_QUIZ) + { + for (i = 0; i < 4; i ++) + { + if (quiz->unk_02c != gUnknown_0203CD68->unk_02b) + { + break; + } + gUnknown_0203CD68->unk_02b = Random() % 16; + } + if (quiz->unk_02c == gUnknown_0203CD68->unk_02b) + { + gUnknown_0203CD68->unk_02b = (gUnknown_0203CD68->unk_02b + 1) % 16; + } + gUnknown_0203CD68->unk_02c = quiz->unk_02c; + } +} + +static void sub_818E604(void) +{ + gUnknown_0203CD6C->playerName[0] = EOS; + gUnknown_0203CD6C->fave_pkblk = 0; + gUnknown_0203CD6C->other_pkblk = 0; + gUnknown_0203CD6C->max_sheen = 0; + gUnknown_0203CD6C->category = Random() % 5; +} + +static void SetLilycoveContestLady(void) +{ + gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; + gUnknown_0203CD6C->id = LILYCOVE_LADY_CONTEST; + gUnknown_0203CD6C->phase = 0; + sub_818E604(); + gUnknown_0203CD6C->language = gGameLanguage; +} + +static void sub_818E674(void) +{ + gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; + gUnknown_0203CD6C->id = LILYCOVE_LADY_CONTEST; + gUnknown_0203CD6C->phase = 0; + if (gUnknown_0203CD6C->fave_pkblk == 5 || gUnknown_0203CD6C->other_pkblk == 5) + { + sub_818E604(); + } +} + +static void sub_818E6B0(u8 sheen) +{ + gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; + if (gUnknown_0203CD6C->max_sheen <= sheen) + { + gUnknown_0203CD6C->max_sheen = sheen; + memset(gUnknown_0203CD6C->playerName, EOS, sizeof(gUnknown_0203CD6C->playerName)); + memcpy(gUnknown_0203CD6C->playerName, gSaveBlock2Ptr->playerName, sizeof(gUnknown_0203CD6C->playerName)); + gUnknown_0203CD6C->language = gGameLanguage; + } +} + +bool8 sub_818E704(struct Pokeblock *pokeblock) +{ + u8 sheen; + bool8 response; + + sheen = 0; + response = FALSE; + gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; + switch (gUnknown_0203CD6C->category) + { + case 0: + if (pokeblock->spicy != 0) + { + sheen = pokeblock->spicy; + response = TRUE; + } + break; + case 1: + if (pokeblock->dry != 0) + { + sheen = pokeblock->dry; + response = TRUE; + } + break; + case 2: + if (pokeblock->sweet != 0) + { + sheen = pokeblock->sweet; + response = TRUE; + } + break; + case 3: + if (pokeblock->bitter != 0) + { + sheen = pokeblock->bitter; + response = TRUE; + } + break; + case 4: + if (pokeblock->sour != 0) + { + sheen = pokeblock->sour; + response = TRUE; + } + break; + } + if (response == TRUE) + { + sub_818E6B0(sheen); + gUnknown_0203CD6C->fave_pkblk ++; + } + else + { + gUnknown_0203CD6C->other_pkblk ++; + } + return response; +} + +static void sub_818E794(u8 *dest1, u8 *dest2) +{ + gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; + StringCopy(dest1, gUnknown_0860B324[gUnknown_0203CD6C->category]); + StringCopy10(dest2, gUnknown_0860B310[gUnknown_0203CD6C->category]); +} + +void sub_818E7E0(u8 *dest1, u8 *dest2) +{ + gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; + *dest1 = gUnknown_0203CD6C->category; + StringCopy(dest2, gUnknown_0860B310[gUnknown_0203CD6C->category]); +} + +void sub_818E81C(u8 *dest) +{ + gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; + StringCopy(dest, gUnknown_0203CD6C->playerName); +} + +void sub_818E848(u8 *dest) +{ + gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; + *dest = gUnknown_0203CD6C->language; +} + +void sub_818E868(u8 *dest, u8 category) +{ + StringCopy(dest, gUnknown_0860B338[category]); +} + +u8 sub_818E880(void) +{ + gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; + if (gUnknown_0203CD6C->fave_pkblk >= 5) + { + return 1; + } + else if (gUnknown_0203CD6C->fave_pkblk == 0) + { + return 2; + } + else + { + return 0; + } +} + +bool8 sub_818E8B4(void) +{ + gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; + if (gUnknown_0203CD6C->phase == 1) + { + return TRUE; + } + return FALSE; +} + +bool8 sub_818E8E0(void) +{ + bool8 response; + + response = FALSE; + gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; + if (gUnknown_0203CD6C->fave_pkblk >= 5 || gUnknown_0203CD6C->other_pkblk >= 5) + { + response = TRUE; + } + return response; +} + +void sub_818E914(void) +{ + sub_818E794(gStringVar2, gStringVar1); +} + +void sub_818E92C(void) +{ + sub_81357FC(3, c2_exit_to_overworld_2_switch); +} + +void sub_818E940(void) +{ + gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; + gUnknown_0203CD6C->phase = 1; +} + +void sub_818E960(void) +{ + gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; + gSpecialVar_0x8005 = gUnknown_0860B34C[gUnknown_0203CD6C->category]; +} + +u8 sub_818E990(void) +{ + gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; + return gUnknown_0203CD6C->category; +} diff --git a/src/link.c b/src/link.c new file mode 100644 index 000000000..ae2cd1992 --- /dev/null +++ b/src/link.c @@ -0,0 +1,56 @@ + +// Includes +#include "global.h" + +// Static type declarations + +struct BlockTransfer +{ + u16 pos; + u16 size; + void *src; + bool8 active; + u8 multiplayerId; +}; + +struct LinkTestBGInfo +{ + u32 screenBaseBlock; + u32 paletteNum; + u32 dummy_8; + u32 dummy_C; +}; + +// Static RAM declarations + +IWRAM_DATA struct BlockTransfer gUnknown_03000D10; +IWRAM_DATA u32 link_c_unused_03000d1c; +IWRAM_DATA struct BlockTransfer gUnknown_03000D20[4]; +IWRAM_DATA u32 gUnknown_03000D50; +IWRAM_DATA u32 gUnknown_03000D54; +IWRAM_DATA u8 gUnknown_03000D58; +IWRAM_DATA u32 gUnknown_03000D5C; +IWRAM_DATA u32 gUnknown_03000D60; +IWRAM_DATA u8 gUnknown_03000D64[4]; // not really, but won't match otherwise +IWRAM_DATA u8 gUnknown_03000D68[4]; +IWRAM_DATA u8 gUnknown_03000D6C; +IWRAM_DATA bool8 gUnknown_03000D6D; +IWRAM_DATA u16 gUnknown_03000D6E; +IWRAM_DATA u16 gUnknown_03000D70; +IWRAM_DATA u8 gUnknown_03000D72; +IWRAM_DATA u8 gUnknown_03000D73; +IWRAM_DATA u8 gUnknown_03000D74[4]; // not really, but won't match otherwise +IWRAM_DATA u8 gUnknown_03000D78[8]; // not really, but won't match otherwise +IWRAM_DATA u8 gUnknown_03000D80[16]; +IWRAM_DATA u16 gUnknown_03000D90[8]; +IWRAM_DATA u32 gUnknown_03000DA0; +IWRAM_DATA u32 gUnknown_03000DA4; +IWRAM_DATA void *gUnknown_03000DA8; +IWRAM_DATA void *gUnknown_03000DAC; +IWRAM_DATA bool32 gUnknown_03000DB0; + +// Static ROM declarations + +// .rodata + +// .text diff --git a/src/load_save.c b/src/load_save.c index 588387186..68d978e3d 100644 --- a/src/load_save.c +++ b/src/load_save.c @@ -6,15 +6,11 @@ #include "rng.h" #include "malloc.h" -extern u8 gPlayerPartyCount; -extern struct PokemonStorage* gPokemonStoragePtr; extern void* gUnknown_0203CF5C; -extern u8 gHeap[0x1C000]; extern bool16 IdentifyFlash(void); extern void SetBagItemsPointers(void); extern void SetDecorationInventoriesPointers(void); -extern void InitHeap(void *heapStart, u32 heapSize); void ApplyNewEncyprtionKeyToAllEncryptedData(u32 encryptionKey); diff --git a/src/main.c b/src/main.c index 5707e18af..665a4dd84 100644 --- a/src/main.c +++ b/src/main.c @@ -77,7 +77,7 @@ const IntrFunc gIntrTableTemplate[] = #define INTR_COUNT ((int)(sizeof(gIntrTableTemplate)/sizeof(IntrFunc))) -extern u16 gUnknown_03000000; +static u16 gUnknown_03000000; extern u16 gKeyRepeatStartDelay; extern u8 gUnknown_030022B4; diff --git a/src/main_menu.c b/src/main_menu.c new file mode 100644 index 000000000..8608159c2 --- /dev/null +++ b/src/main_menu.c @@ -0,0 +1,15 @@ + +// Includes +#include "global.h" + +// Static type declarations + +// Static RAM declarations + +IWRAM_DATA u8 gUnknown_03000DD0; + +// Static ROM declarations + +// .rodata + +// .text diff --git a/src/malloc.c b/src/malloc.c index 3901c5a35..1d64351c3 100644 --- a/src/malloc.c +++ b/src/malloc.c @@ -2,6 +2,7 @@ static void *sHeapStart; static u32 sHeapSize; +static u32 malloc_c_unused_0300000c; // needed to align dma3_manager.o(.bss) #define MALLOC_SYSTEM_ID 0xA3A3 @@ -38,7 +39,7 @@ void PutMemBlockHeader(void *block, struct MemBlock *prev, struct MemBlock *next void PutFirstMemBlockHeader(void *block, u32 size) { - PutMemBlockHeader(block, (struct MemBlock *)block, (struct MemBlock *)block, size - 16); + PutMemBlockHeader(block, (struct MemBlock *)block, (struct MemBlock *)block, size - sizeof(struct MemBlock)); } void *AllocInternal(void *heapStart, u32 size) @@ -48,6 +49,7 @@ void *AllocInternal(void *heapStart, u32 size) struct MemBlock *splitBlock; u32 foundBlockSize; + // Alignment if (size & 3) size = 4 * ((size / 4) + 1); @@ -58,7 +60,7 @@ void *AllocInternal(void *heapStart, u32 size) foundBlockSize = pos->size; if (foundBlockSize >= size) { - if (foundBlockSize - size <= 31) { + if (foundBlockSize - size < 2 * sizeof(struct MemBlock)) { // The block isn't much bigger than the requested size, // so just use it. pos->flag = TRUE; diff --git a/src/metatile_behavior.c b/src/metatile_behavior.c new file mode 100644 index 000000000..b9760f522 --- /dev/null +++ b/src/metatile_behavior.c @@ -0,0 +1,1436 @@ +#include "global.h" +#include "metatile_behavior.h" +#include "metatile_behaviors.h" + +#define TILE_FLAG_ENCOUNTER_TILE 1 +#define TILE_FLAG_SURFABLE 2 + +#define TILE_ATTRIBUTES(three, two, one) (((one) ? 1 : 0) | ((two) ? 2 : 0) | ((three) ? 4 : 0)) + +// wonder what the third flag is supposed to do +static const u8 sTileBitAttributes[] = +{ + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_NORMAL 0x00 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x01 + TILE_ATTRIBUTES(TRUE, FALSE, TRUE), // MB_TALL_GRASS 0x02 + TILE_ATTRIBUTES(TRUE, FALSE, TRUE), // MB_LONG_GRASS 0x03 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_04 0x04 + TILE_ATTRIBUTES(FALSE, FALSE, TRUE), // MB_05 0x05 + TILE_ATTRIBUTES(TRUE, FALSE, TRUE), // MB_DEEP_SAND 0x06 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SHORT_GRASS 0x07 + TILE_ATTRIBUTES(TRUE, FALSE, TRUE), // MB_CAVE 0x08 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_LONG_GRASS_SOUTH_EDGE 0x09 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_NO_RUNNING 0x0A + TILE_ATTRIBUTES(TRUE, FALSE, TRUE), // MB_0B 0x0B + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_MOUNTAIN_TOP 0x0C + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_BATTLE_PYRAMID_WARP 0x0D + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_MOSSDEEP_GYM_WARP 0x0E + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_MT_PYRE_HOLE 0x0F + TILE_ATTRIBUTES(TRUE, TRUE, TRUE), // MB_POND_WATER 0x10 + TILE_ATTRIBUTES(TRUE, TRUE, TRUE), // MB_SEMI_DEEP_WATER 0x11 + TILE_ATTRIBUTES(TRUE, TRUE, TRUE), // MB_DEEP_WATER 0x12 + TILE_ATTRIBUTES(TRUE, TRUE, FALSE), // MB_WATERFALL 0x13 + TILE_ATTRIBUTES(TRUE, TRUE, FALSE), // MB_SOOTOPOLIS_DEEP_WATER 0x14 + TILE_ATTRIBUTES(TRUE, TRUE, TRUE), // MB_OCEAN_WATER 0x15 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_PUDDLE 0x16 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SHALLOW_WATER 0x17 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_18 0x18 + TILE_ATTRIBUTES(TRUE, TRUE, FALSE), // MB_NO_SURFACING 0x19 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_1A 0x1A + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_STAIRS_OUTSIDE_ABANDONED_SHIP 0x1B + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SHOAL_CAVE_ENTRANCE 0x1C + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x1D + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x1E + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x1F + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_ICE 0x20 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SAND 0x21 + TILE_ATTRIBUTES(TRUE, TRUE, TRUE), // MB_SEAWEED 0x22 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // ? 0x23 + TILE_ATTRIBUTES(TRUE, FALSE, TRUE), // MB_ASHGRASS 0x24 + TILE_ATTRIBUTES(TRUE, FALSE, TRUE), // MB_25 0x25 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_THIN_ICE 0x26 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_CRACKED_ICE 0x27 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_HOT_SPRINGS 0x28 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_LAVARIDGE_GYM_B1F_WARP 0x29 + TILE_ATTRIBUTES(TRUE, TRUE, TRUE), // MB_SEAWEED_NO_SURFACING 0x2A + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_REFLECTION_UNDER_BRIDGE 0x2B + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x2C + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x2D + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x2E + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x2F + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_IMPASSABLE_EAST 0x30 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_IMPASSABLE_WEST 0x31 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_IMPASSABLE_NORTH 0x32 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_IMPASSABLE_SOUTH 0x33 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_IMPASSABLE_NORTHEAST 0x34 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_IMPASSABLE_NORTHWEST 0x35 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_IMPASSABLE_SOUTHEAST 0x36 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_IMPASSABLE_SOUTHWEST 0x37 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_JUMP_EAST 0x38 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_JUMP_WEST 0x39 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_JUMP_NORTH 0x3A + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_JUMP_SOUTH 0x3B + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // ? 0x3C + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // ? 0x3D + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_JUMP_SOUTHEAST 0x3E + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_JUMP_SOUTHWEST 0x3F + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_WALK_EAST 0x40 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_WALK_WEST 0x41 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_WALK_NORTH 0x42 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_WALK_SOUTH 0x43 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SLIDE_EAST 0x44 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SLIDE_WEST 0x45 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SLIDE_NORTH 0x46 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SLIDE_SOUTH 0x47 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_TRICK_HOUSE_PUZZLE_8_FLOOR 0x48 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // ? 0x49 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // ? 0x4A + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x4B + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x4C + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x4D + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x4E + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x4F + TILE_ATTRIBUTES(TRUE, TRUE, FALSE), // MB_EASTWARD_CURRENT 0x50 + TILE_ATTRIBUTES(TRUE, TRUE, FALSE), // MB_WESTWARD_CURRENT 0x51 + TILE_ATTRIBUTES(TRUE, TRUE, FALSE), // MB_NORTHWARD_CURRENT 0x52 + TILE_ATTRIBUTES(TRUE, TRUE, FALSE), // MB_SOUTHWARD_CURRENT 0x53 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x54 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x55 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x56 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x57 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x58 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x59 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x5A + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x5B + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x5C + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x5D + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x5E + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x5F + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_NON_ANIMATED_DOOR 0x60 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_LADDER 0x61 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_EAST_ARROW_WARP 0x62 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_WEST_ARROW_WARP 0x63 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_NORTH_ARROW_WARP 0x64 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SOUTH_ARROW_WARP 0x65 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_CRACKED_FLOOR_HOLE 0x66 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_AQUA_HIDEOUT_WARP 0x67 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_LAVARIDGE_GYM_1F_WARP 0x68 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_ANIMATED_DOOR 0x69 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_UP_ESCALATOR 0x6A + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_DOWN_ESCALATOR 0x6B + TILE_ATTRIBUTES(TRUE, TRUE, FALSE), // MB_WATER_DOOR 0x6C + TILE_ATTRIBUTES(TRUE, TRUE, FALSE), // MB_WATER_SOUTH_ARROW_WARP 0x6D + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_DEEP_SOUTH_WARP 0x6E + TILE_ATTRIBUTES(TRUE, TRUE, FALSE), // ? 0x6F + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_WARP_OR_BRIDGE 0x70 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_71 0x71 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_ROUTE120_NORTH_BRIDGE_1 0x72 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_ROUTE120_NORTH_BRIDGE_2 0x73 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_PACIFIDLOG_VERTICAL_LOG_1 0x74 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_PACIFIDLOG_VERTICAL_LOG_2 0x75 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_PACIFIDLOG_HORIZONTAL_LOG_1 0x76 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_PACIFIDLOG_HORIZONTAL_LOG_2 0x77 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_FORTREE_BRIDGE 0x78 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x79 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_ROUTE120_SOUTH_BRIDGE_1 0x7A + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_ROUTE120_SOUTH_BRIDGE_2 0x7B + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_ROUTE120_NORTH_BRIDGE_3 0x7C + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_ROUTE120_NORTH_BRIDGE_4 0x7D + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_7E 0x7E + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_ROUTE110_BRIDGE 0x7F + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_COUNTER 0x80 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x81 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x82 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_PC 0x83 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_CABLE_BOX_RESULTS_1 0x84 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_REGION_MAP 0x85 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_TELEVISION 0x86 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_POKEBLOCK_FEEDER 0x87 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x88 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SLOT_MACHINE 0x89 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_ROULETTE 0x8A + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_CLOSED_SOOTOPOLIS_GYM_DOOR 0x8B + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_TRICK_HOUSE_PUZZLE_DOOR 0x8C + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_8D 0x8D + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_RUNNING_SHOES_INSTRUCTION 0x8E + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_QUESTIONNAIRE 0x8F + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SPOT_RED_CAVE 0x90 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SPOT_RED_CAVE_OPEN 0x91 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SPOT_BROWN_CAVE 0x92 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SPOT_BROWN_CAVE_OPEN 0x93 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SPOT_YELLOW_CAVE 0x94 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SPOT_YELLOW_CAVE_OPEN 0x95 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SPOT_TREE_LEFT 0x96 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SPOT_TREE_LEFT_OPEN 0x97 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SPOT_SHRUB 0x98 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SPOT_SHRUB_OPEN 0x99 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SPOT_BLUE_CAVE 0x9A + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SPOT_BLUE_CAVE_OPEN 0x9B + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SPOT_TREE_RIGHT 0x9C + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SPOT_TREE_RIGHT_OPEN 0x9D + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x9E + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x9F + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_BERRY_TREE_SOIL 0xA0 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xA1 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xA2 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xA3 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xA4 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xA5 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xA6 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xA7 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xA8 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xA9 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xAA + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xAB + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xAC + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xAD + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xAE + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xAF A + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_PC 0xB0 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_REGISTER_PC 0xB1 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_B2 0xB2 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_B3 0xB3 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_B4 0xB4 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_B5 0xB5 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_B6 0xB6 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_B7 0xB7 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SECRET_BASE_BALLOON 0xB8 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_B9 0xB9 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SECRET_BASE_GLITTER_MAT 0xBA + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SECRET_BASE_JUMP_MAT 0xBB + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SECRET_BASE_SPIN_MAT 0xBC + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SECRET_BASE_SOUND_MAT 0xBD + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_BE 0xBE + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_BF 0xBF + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_BED 0xC0 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_C1 0xC1 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_C2 0xC2 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_C3 0xC3 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SECRET_BASE_TV_SHIELD 0xC4 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_C5 0xC5 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_C6 0xC6 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_POSTER 0xC7 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_C8 0xC8 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_C9 0xC9 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_CA 0xCA + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_CB 0xCB + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_CC 0xCC + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_CD 0xCD + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_CE 0xCE + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_CF 0xCF + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_MUDDY_SLOPE 0xD0 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_BUMPY_SLOPE 0xD1 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_CRACKED_FLOOR 0xD2 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_ISOLATED_VERTICAL_RAIL 0xD3 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_ISOLATED_HORIZONTAL_RAIL 0xD4 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_VERTICAL_RAIL 0xD5 + TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_HORIZONTAL_RAIL 0xD6 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xD7 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xD8 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xD9 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xDA + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xDB + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xDC + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xDD + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xDE + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xDF + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_PICTURE_BOOK_SHELF 0xE0 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_BOOKSHELF 0xE1 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_POKEMON_CENTER_BOOKSHELF 0xE2 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_VASE 0xE3 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_TRASH_CAN 0xE4 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SHOP_SHELF 0xE5 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_BLUEPRINT 0xE6 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_CABLE_BOX_RESULTS_2 0xE7 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_WIRELESS_BOX_RESULTS 0xE8 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_TRAINER_HILL_TIMER 0xE9 + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNKNOWN_CLOSED_DOOR 0xEA + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xEB + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xEC + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xED + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xEE + TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xEF +}; + +// only used as default case for checking jump landing in field_ground_effect. +bool8 ShouldDoJumpLandingDustEffect(u8 var) +{ + return TRUE; +} + +bool8 MetatileBehavior_IsEncounterTile(u8 var) +{ + if ((sTileBitAttributes[var] & TILE_FLAG_ENCOUNTER_TILE) != 0) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsJumpEast(u8 var) +{ + if (var == MB_JUMP_EAST) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsJumpWest(u8 var) +{ + if (var == MB_JUMP_WEST) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsJumpNorth(u8 var) +{ + if (var == MB_JUMP_NORTH) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsJumpSouth(u8 var) +{ + if (var == MB_JUMP_SOUTH) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsPokeGrass(u8 var) +{ + if (var == MB_TALL_GRASS || var == MB_LONG_GRASS) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsSandOrDeepSand(u8 var) +{ + if (var == MB_SAND || var == MB_DEEP_SAND) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsDeepSand(u8 var) +{ + if (var == MB_DEEP_SAND) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsReflective(u8 var) +{ + if (var == MB_POND_WATER || var == MB_PUDDLE || var == MB_1A || var == MB_ICE || var == MB_SOOTOPOLIS_DEEP_WATER || var == MB_REFLECTION_UNDER_BRIDGE) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsIce(u8 var) +{ + if (var == MB_ICE) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsWarpDoor(u8 var) +{ + if (var == MB_ANIMATED_DOOR) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsDoor(u8 var) +{ + if (var == MB_8D || var == MB_ANIMATED_DOOR) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsEscalator(u8 var) +{ + if (var == MB_UP_ESCALATOR || var == MB_DOWN_ESCALATOR) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsMB_04(u8 var) // unused +{ + if (var == MB_04) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsLadder(u8 var) +{ + if (var == MB_LADDER) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsNonAnimDoor(u8 var) +{ + if (var == MB_NON_ANIMATED_DOOR || var == MB_WATER_DOOR || var == MB_DEEP_SOUTH_WARP) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsDeepSouthWarp(u8 var) +{ + if (var == MB_DEEP_SOUTH_WARP) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsSurfableWaterOrUnderwater(u8 var) +{ + if ((sTileBitAttributes[var] & TILE_FLAG_SURFABLE) != 0) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsEastArrowWarp(u8 var) +{ + if (var == MB_EAST_ARROW_WARP) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsWestArrowWarp(u8 var) +{ + if (var == MB_WEST_ARROW_WARP) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsNorthArrowWarp(u8 var) +{ + if (var == MB_NORTH_ARROW_WARP || var == MB_STAIRS_OUTSIDE_ABANDONED_SHIP) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsSouthArrowWarp(u8 var) +{ + if (var == MB_SOUTH_ARROW_WARP || var == MB_WATER_SOUTH_ARROW_WARP || var == MB_SHOAL_CAVE_ENTRANCE) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsArrowWarp(u8 var) // unused +{ + u8 ret = FALSE; + + if (MetatileBehavior_IsEastArrowWarp(var) + || MetatileBehavior_IsWestArrowWarp(var) + || MetatileBehavior_IsNorthArrowWarp(var) + || MetatileBehavior_IsSouthArrowWarp(var)) + { + ret = TRUE; + } + + return ret; +} + +bool8 MetatileBehavior_IsMoveTile(u8 var) +{ + if ((var >= MB_WALK_EAST && var <= MB_TRICK_HOUSE_PUZZLE_8_FLOOR) || (var >= MB_EASTWARD_CURRENT && var <= MB_SOUTHWARD_CURRENT) + || var == MB_MUDDY_SLOPE || var == MB_CRACKED_FLOOR || var == MB_WATERFALL || var == MB_ICE || var == MB_SECRET_BASE_JUMP_MAT || var == MB_SECRET_BASE_SPIN_MAT) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsIce_2(u8 var) +{ + if (var == MB_ICE) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsTrickHouseSlipperyFloor(u8 var) +{ + if (var == MB_TRICK_HOUSE_PUZZLE_8_FLOOR) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsMB_05(u8 var) +{ + if (var == MB_05) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsWalkNorth(u8 var) +{ + if (var == MB_WALK_NORTH) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsWalkSouth(u8 var) +{ + if (var == MB_WALK_SOUTH) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsWalkWest(u8 var) +{ + if (var == MB_WALK_WEST) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsWalkEast(u8 var) +{ + if (var == MB_WALK_EAST) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsNorthwardCurrent(u8 var) +{ + if (var == MB_NORTHWARD_CURRENT) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsSouthwardCurrent(u8 var) +{ + if (var == MB_SOUTHWARD_CURRENT) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsWestwardCurrent(u8 var) +{ + if (var == MB_WESTWARD_CURRENT) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsEastwardCurrent(u8 var) +{ + if (var == MB_EASTWARD_CURRENT) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsSlideNorth(u8 var) +{ + if (var == MB_SLIDE_NORTH) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsSlideSouth(u8 var) +{ + if (var == MB_SLIDE_SOUTH) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsSlideWest(u8 var) +{ + if (var == MB_SLIDE_WEST) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsSlideEast(u8 var) +{ + if (var == MB_SLIDE_EAST) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsCounter(u8 var) +{ + if (var == MB_COUNTER) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsPlayerFacingTVScreen(u8 tile, u8 playerDir) +{ + if (playerDir != CONNECTION_NORTH) // if the player isn't facing north, forget about it. + return FALSE; + else if (tile == MB_TELEVISION) // is the player's north tile a TV? + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsPC(u8 var) +{ + if (var == MB_PC) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsCableBoxResults1(u8 var) +{ + if (var == MB_CABLE_BOX_RESULTS_1) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsSecretBaseOpen(u8 var) +{ + if (var == MB_SECRET_BASE_SPOT_RED_CAVE_OPEN || var == MB_SECRET_BASE_SPOT_BROWN_CAVE_OPEN + || var == MB_SECRET_BASE_SPOT_YELLOW_CAVE_OPEN || var == MB_SECRET_BASE_SPOT_TREE_LEFT_OPEN + || var == MB_SECRET_BASE_SPOT_SHRUB_OPEN || var == MB_SECRET_BASE_SPOT_BLUE_CAVE_OPEN + || var == MB_SECRET_BASE_SPOT_TREE_RIGHT_OPEN) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsSecretBaseCave(u8 var) +{ + if (var == MB_SECRET_BASE_SPOT_RED_CAVE || var == MB_SECRET_BASE_SPOT_BROWN_CAVE || var == MB_SECRET_BASE_SPOT_YELLOW_CAVE || var == MB_SECRET_BASE_SPOT_BLUE_CAVE) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsSecretBaseTree(u8 var) +{ + if (var == MB_SECRET_BASE_SPOT_TREE_LEFT || var == MB_SECRET_BASE_SPOT_TREE_RIGHT) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsSecretBaseShrub(u8 var) +{ + if (var == MB_SECRET_BASE_SPOT_SHRUB) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsSecretBasePC(u8 var) +{ + if (var == MB_SECRET_BASE_PC) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsSecretBaseRegisterPC(u8 var) +{ + if (var == MB_SECRET_BASE_REGISTER_PC) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsMB_B2(u8 var) // unused +{ + if (var == MB_B2) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsMB_B3(u8 var) +{ + if (var == MB_B3) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsMB_B9(u8 var) +{ + if (var == MB_B9) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsMB_C6(u8 var) +{ + if (var == MB_C6) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsSecretBasePoster(u8 var) +{ + if (var == MB_SECRET_BASE_POSTER) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsNormal(u8 var) +{ + if (var == MB_NORMAL) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsMB_B7(u8 var) +{ + if (var == MB_B7) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsMB_B2_Duplicate(u8 var) // unused +{ + if (var == MB_B2) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsMB_B5(u8 var) +{ + if (var == MB_B5) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsMB_C3(u8 var) +{ + if (var == MB_C3) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsMB_C2(u8 var) +{ + if (var == MB_C2) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsSecretBaseBalloon(u8 var) +{ + if (var == MB_SECRET_BASE_BALLOON) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsMB_BE(u8 var) +{ + if (var == MB_BE) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsSecretBaseSoundMat(u8 var) +{ + if (var == MB_SECRET_BASE_SOUND_MAT) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsSecretBaseGlitterMat(u8 var) +{ + if (var == MB_SECRET_BASE_GLITTER_MAT) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsMB_BF(u8 var) +{ + if (var == MB_BF) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsSecretBaseTvOrShield(u8 var) +{ + if (var == MB_SECRET_BASE_TV_SHIELD) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsMB_C5(u8 var) +{ + if (var == MB_C5) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_HasRipples(u8 var) +{ + if (var == MB_POND_WATER || var == MB_PUDDLE || var == MB_SOOTOPOLIS_DEEP_WATER) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsPuddle(u8 var) +{ + if (var == MB_PUDDLE) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsTallGrass(u8 var) +{ + if (var == MB_TALL_GRASS) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsLongGrass(u8 var) +{ + if (var == MB_LONG_GRASS) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsBerryTreeSoil(u8 var) +{ + if (var == MB_BERRY_TREE_SOIL) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsAsh(u8 var) +{ + if (var == MB_ASHGRASS) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsUnusedFootprintMetatile(u8 var) +{ + if (var == MB_25) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsBridge(u8 var) +{ + if ((var == MB_WARP_OR_BRIDGE || var == MB_71 || var == MB_ROUTE120_NORTH_BRIDGE_1 || var == MB_ROUTE120_NORTH_BRIDGE_2) + || (var == MB_ROUTE120_NORTH_BRIDGE_3 || var == MB_ROUTE120_NORTH_BRIDGE_4 || var == MB_7E || var == MB_ROUTE110_BRIDGE)) + return TRUE; + else + return FALSE; +} + +u8 MetatileBehavior_GetBridgeSth(u8 var) +{ + u8 result = var - MB_WARP_OR_BRIDGE; + if (result < 4) + return result; + + result = var - MB_ROUTE120_SOUTH_BRIDGE_1; + if (result < 2) + return 2; + + result = var - MB_ROUTE120_NORTH_BRIDGE_3; + if (result < 2) + return 3; + + return 0; +} + +u8 MetatileBehavior_8089510(u8 var) +{ + u8 result = var - MB_WARP_OR_BRIDGE; + + if (result < 4) + return 1; + else + return 0; +} + +bool8 MetatileBehavior_IsLandWildEncounter(u8 var) +{ + if (MetatileBehavior_IsSurfableWaterOrUnderwater(var) == FALSE && MetatileBehavior_IsEncounterTile(var) == TRUE) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsWaterWildEncounter(u8 var) +{ + if (MetatileBehavior_IsSurfableWaterOrUnderwater(var) == TRUE && MetatileBehavior_IsEncounterTile(var) == TRUE) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsMB_0B(u8 var) +{ + if (var == MB_0B) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsMountain(u8 var) +{ + if (var == MB_MOUNTAIN_TOP) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsDiveable(u8 var) +{ + if (var == MB_SEMI_DEEP_WATER || var == MB_DEEP_WATER || var == MB_SOOTOPOLIS_DEEP_WATER) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsUnableToEmerge(u8 var) +{ + if (var == MB_NO_SURFACING || var == MB_SEAWEED_NO_SURFACING) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsShallowFlowingWater(u8 var) +{ + if (var == MB_SHALLOW_WATER || var == MB_STAIRS_OUTSIDE_ABANDONED_SHIP || var == MB_SHOAL_CAVE_ENTRANCE) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsThinIce(u8 var) +{ + if (var == MB_THIN_ICE) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsCrackedIce(u8 var) +{ + if (var == MB_CRACKED_ICE) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsDeepOrOceanWater(u8 var) +{ + if (var == MB_OCEAN_WATER || var == MB_SEMI_DEEP_WATER || var == MB_DEEP_WATER) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsMB_18_OrMB_1A(u8 var) // unused +{ + if (var == MB_18 || var == MB_1A) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsSurfableAndNotWaterfall(u8 var) +{ + if (MetatileBehavior_IsSurfableWaterOrUnderwater(var) && MetatileBehavior_IsWaterfall(var) == FALSE) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsEastBlocked(u8 var) +{ + if (var == MB_IMPASSABLE_EAST || var == MB_IMPASSABLE_NORTHEAST || var == MB_IMPASSABLE_SOUTHEAST || var == MB_C1 || var == MB_BE) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsWestBlocked(u8 var) +{ + if (var == MB_IMPASSABLE_WEST || var == MB_IMPASSABLE_NORTHWEST || var == MB_IMPASSABLE_SOUTHWEST || var == MB_C1 || var == MB_BE) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsNorthBlocked(u8 var) +{ + if (var == MB_IMPASSABLE_NORTH || var == MB_IMPASSABLE_NORTHEAST || var == MB_IMPASSABLE_NORTHWEST || var == MB_BED) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsSouthBlocked(u8 var) +{ + if (var == MB_IMPASSABLE_SOUTH || var == MB_IMPASSABLE_SOUTHEAST || var == MB_IMPASSABLE_SOUTHWEST || var == MB_BED) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsShortGrass(u8 var) +{ + if (var == MB_SHORT_GRASS) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsHotSprings(u8 var) +{ + if (var == MB_HOT_SPRINGS) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsWaterfall(u8 var) +{ + if (var == MB_WATERFALL) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsFortreeBridge(u8 var) +{ + if (var == MB_FORTREE_BRIDGE) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsPacifilogVerticalLog1(u8 var) +{ + if (var == MB_PACIFIDLOG_VERTICAL_LOG_1) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsPacifilogVerticalLog2(u8 var) +{ + if (var == MB_PACIFIDLOG_VERTICAL_LOG_2) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsPacifilogHorizontalLog1(u8 var) +{ + if (var == MB_PACIFIDLOG_HORIZONTAL_LOG_1) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsPacifilogHorizontalLog2(u8 var) +{ + if (var == MB_PACIFIDLOG_HORIZONTAL_LOG_2) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsPacifidlogLog(u8 var) +{ + if (var == MB_PACIFIDLOG_VERTICAL_LOG_1 || var == MB_PACIFIDLOG_VERTICAL_LOG_2 + || var == MB_PACIFIDLOG_HORIZONTAL_LOG_1 || var == MB_PACIFIDLOG_HORIZONTAL_LOG_2) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsTrickHousePuzzleDoor(u8 var) +{ + if (var == MB_TRICK_HOUSE_PUZZLE_DOOR) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsRegionMap(u8 var) +{ + if (var == MB_REGION_MAP) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsClosedSootopolisGymDoor(u8 var) +{ + if (var == MB_CLOSED_SOOTOPOLIS_GYM_DOOR) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsUnknownClosedDoor(u8 var) +{ + if (var == MB_UNKNOWN_CLOSED_DOOR) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsRoulette(u8 var) // unused +{ + if (var == MB_ROULETTE) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsPokeblockFeeder(u8 var) +{ + if (var == MB_POKEBLOCK_FEEDER) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsSecretBaseJumpMat(u8 var) +{ + if (var == MB_SECRET_BASE_JUMP_MAT) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsSecretBaseSpinMat(u8 var) +{ + if (var == MB_SECRET_BASE_SPIN_MAT) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsLavaridgeB1FWarp(u8 var) +{ + if (var == MB_LAVARIDGE_GYM_B1F_WARP) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsLavaridge1FWarp(u8 var) +{ + if (var == MB_LAVARIDGE_GYM_1F_WARP) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsAquaHideoutWarp(u8 var) +{ + if (var == MB_AQUA_HIDEOUT_WARP) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsWarpOrBridge(u8 var) +{ + if (var == MB_WARP_OR_BRIDGE) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsMossdeepGymWarp(u8 var) +{ + if (var == MB_MOSSDEEP_GYM_WARP) + return TRUE; + else + return FALSE; +} + + +bool8 MetatileBehavior_IsSurfableFishableWater(u8 var) +{ + if (var == MB_POND_WATER || var == MB_OCEAN_WATER || var == MB_SEMI_DEEP_WATER || var == MB_DEEP_WATER + || var == MB_SOOTOPOLIS_DEEP_WATER || (var == MB_EASTWARD_CURRENT || var == MB_WESTWARD_CURRENT + || var == MB_NORTHWARD_CURRENT || var == MB_SOUTHWARD_CURRENT)) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsMtPyreHole(u8 var) +{ + if (var == MB_MT_PYRE_HOLE) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsCrackedFloorHole(u8 var) +{ + if (var == MB_CRACKED_FLOOR_HOLE) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsCrackedFloor(u8 var) +{ + if (var == MB_CRACKED_FLOOR) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsMuddySlope(u8 var) +{ + if (var == MB_MUDDY_SLOPE) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsBumpySlope(u8 var) +{ + if (var == MB_BUMPY_SLOPE) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsIsolatedVerticalRail(u8 var) +{ + if (var == MB_ISOLATED_VERTICAL_RAIL) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsIsolatedHorizontalRail(u8 var) +{ + if (var == MB_ISOLATED_HORIZONTAL_RAIL) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsVerticalRail(u8 var) +{ + if (var == MB_VERTICAL_RAIL) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsHorizontalRail(u8 var) +{ + if (var == MB_HORIZONTAL_RAIL) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsSeaweed(u8 var) +{ + if (var == MB_SEAWEED || var == MB_SEAWEED_NO_SURFACING) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsRunningDisallowed(u8 var) +{ + if (var == MB_NO_RUNNING || var == MB_LONG_GRASS || var == MB_HOT_SPRINGS || MetatileBehavior_IsPacifidlogLog(var) != FALSE) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsCuttableGrass(u8 var) +{ + if (var == MB_TALL_GRASS || var == MB_LONG_GRASS || var == MB_ASHGRASS || var == MB_LONG_GRASS_SOUTH_EDGE) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsRunningShoesInstruction(u8 var) +{ + if (var == MB_RUNNING_SHOES_INSTRUCTION) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsPictureBookShelf(u8 var) +{ + if (var == MB_PICTURE_BOOK_SHELF) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsBookShelf(u8 var) +{ + if (var == MB_BOOKSHELF) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsPokeCenterBookShelf(u8 var) +{ + if (var == MB_POKEMON_CENTER_BOOKSHELF) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsVase(u8 var) +{ + if (var == MB_VASE) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsTrashCan(u8 var) +{ + if (var == MB_TRASH_CAN) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsShopShelf(u8 var) +{ + if (var == MB_SHOP_SHELF) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsBlueprint(u8 var) +{ + if (var == MB_BLUEPRINT) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsBattlePyramidWarp(u8 var) +{ + if (var == MB_BATTLE_PYRAMID_WARP) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsPlayerFacingWirelessBoxResults(u8 tile, u8 playerDir) +{ + if (playerDir != CONNECTION_NORTH) // if the player isn't facing north, forget about it. + return FALSE; + else if (tile == MB_WIRELESS_BOX_RESULTS) // is the player's north tile the monitor with results? + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsCableBoxResults2(u8 tile, u8 playerDir) +{ + if (playerDir != CONNECTION_NORTH) // if the player isn't facing north, forget about it. + return FALSE; + else if (tile == MB_CABLE_BOX_RESULTS_2) // is the player's north tile the monitor with results? + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsQuestionnaire(u8 var) +{ + if (var == MB_QUESTIONNAIRE) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsLongGrass_Duplicate(u8 var) +{ + if (var == MB_LONG_GRASS) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsLongGrassSouthEdge(u8 var) +{ + if (var == MB_LONG_GRASS_SOUTH_EDGE) + return TRUE; + else + return FALSE; +} + +bool8 MetatileBehavior_IsTrainerHillTimer(u8 var) +{ + if (var == MB_TRAINER_HILL_TIMER) + return TRUE; + else + return FALSE; +} diff --git a/src/money.c b/src/money.c index be64d9633..65a45b158 100644 --- a/src/money.c +++ b/src/money.c @@ -1,8 +1,77 @@ #include "global.h" #include "money.h" +#include "event_data.h" +#include "string_util.h" +#include "text.h" +#include "menu.h" +#include "window.h" +#include "sprite.h" +#include "decompress.h" + +extern const u8 gText_PokedollarVar1[]; + +extern const u8 gMenuMoneyGfx[]; +extern const u8 gMenuMoneyPal[]; #define MAX_MONEY 999999 +EWRAM_DATA static u8 sMoneyBoxWindowId = 0; +EWRAM_DATA static u8 sMoneyLabelSpriteId = 0; + +#define MONEY_LABEL_TAG 0x2722 + +static const struct OamData sOamData_MoneyLabel = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 1, + .x = 0, + .matrixNum = 0, + .size = 2, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +static const union AnimCmd sSpriteAnim_MoneyLabel[] = +{ + ANIMCMD_FRAME(0, 0), + ANIMCMD_END +}; + +static const union AnimCmd *const sSpriteAnimTable_MoneyLabel[] = +{ + sSpriteAnim_MoneyLabel, +}; + +static const struct SpriteTemplate sSpriteTemplate_MoneyLabel = +{ + .tileTag = MONEY_LABEL_TAG, + .paletteTag = MONEY_LABEL_TAG, + .oam = &sOamData_MoneyLabel, + .anims = sSpriteAnimTable_MoneyLabel, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +static const struct CompressedSpriteSheet sSpriteSheet_MoneyLabel = +{ + .data = gMenuMoneyGfx, + .size = 256, + .tag = MONEY_LABEL_TAG, +}; + +static const struct CompressedSpritePalette sSpritePalette_MoneyLabel = +{ + .data = gMenuMoneyPal, + .tag = MONEY_LABEL_TAG +}; + u32 GetMoney(u32* moneyPtr) { return *moneyPtr ^ gSaveBlock2Ptr->encryptionKey; @@ -53,3 +122,79 @@ void SubtractMoney(u32* moneyPtr, u32 toSub) SetMoney(moneyPtr, toSet); } + +bool8 IsEnoughForCostInVar0x8005(void) +{ + return IsEnoughMoney(&gSaveBlock1Ptr->money, gSpecialVar_0x8005); +} + +void SubtractMoneyFromVar0x8005(void) +{ + SubtractMoney(&gSaveBlock1Ptr->money, gSpecialVar_0x8005); +} + +void PrintMoneyAmountInMoneyBox(u8 windowId, int amount, u8 speed) +{ + PrintMoneyAmount(windowId, 0x26, 1, amount, speed); +} + +void PrintMoneyAmount(u8 windowId, u8 x, u8 y, int amount, u8 speed) +{ + u8 *txtPtr; + s32 strLength; + + ConvertIntToDecimalStringN(gStringVar1, amount, STR_CONV_MODE_LEFT_ALIGN, 6); + + strLength = 6 - StringLength(gStringVar1); + txtPtr = gStringVar4; + + while (strLength-- > 0) + *(txtPtr++) = 0x77; + + StringExpandPlaceholders(txtPtr, gText_PokedollarVar1); + PrintTextOnWindow(windowId, 1, gStringVar4, x, y, speed, NULL); +} + +void PrintMoneyAmountInMoneyBoxWithBorder(u8 windowId, u16 tileStart, u8 pallete, int amount) +{ + SetWindowBorderStyle(windowId, FALSE, tileStart, pallete); + PrintMoneyAmountInMoneyBox(windowId, amount, 0); +} + +void ChangeAmountInMoneyBox(int amount) +{ + PrintMoneyAmountInMoneyBox(sMoneyBoxWindowId, amount, 0); +} + +void DrawMoneyBox(int amount, u8 x, u8 y) +{ + struct WindowTemplate template; + + SetWindowTemplateFields(&template, 0, x + 1, y + 1, 10, 2, 15, 8); + sMoneyBoxWindowId = AddWindow(&template); + FillWindowPixelBuffer(sMoneyBoxWindowId, 0); + PutWindowTilemap(sMoneyBoxWindowId); + CopyWindowToVram(sMoneyBoxWindowId, 1); + PrintMoneyAmountInMoneyBoxWithBorder(sMoneyBoxWindowId, 0x214, 14, amount); + AddMoneyLabelObject((8 * x) + 19, (8 * y) + 11); +} + +void HideMoneyBox(void) +{ + RemoveMoneyLabelObject(); + sub_8198070(sMoneyBoxWindowId, FALSE); + CopyWindowToVram(sMoneyBoxWindowId, 2); + RemoveWindow(sMoneyBoxWindowId); +} + +void AddMoneyLabelObject(u16 x, u16 y) +{ + LoadCompressedObjectPic(&sSpriteSheet_MoneyLabel); + LoadCompressedObjectPalette(&sSpritePalette_MoneyLabel); + sMoneyLabelSpriteId = CreateSprite(&sSpriteTemplate_MoneyLabel, x, y, 0); +} + +void RemoveMoneyLabelObject(void) +{ + DestroySpriteAndFreeResources(&gSprites[sMoneyLabelSpriteId]); +} diff --git a/src/multiboot.c b/src/multiboot.c index 80291ff46..7fd6df2d0 100644 --- a/src/multiboot.c +++ b/src/multiboot.c @@ -316,7 +316,7 @@ void MultiBootStartProbe(struct MultiBootParam *mp) mp->probe_count = 1; } -void MultiBootStartMaster(struct MultiBootParam *mp, u8 *srcp, int length, u8 palette_color, s8 palette_speed) +void MultiBootStartMaster(struct MultiBootParam *mp, const u8 *srcp, int length, u8 palette_color, s8 palette_speed) { int i = 0; diff --git a/src/new_game.c b/src/new_game.c index 2bf774c69..5a482c593 100644 --- a/src/new_game.c +++ b/src/new_game.c @@ -18,6 +18,7 @@ #include "event_data.h" #include "money.h" #include "coins.h" +#include "text.h" extern u8 gPlayerPartyCount; extern u8 gDifferentSaveFile; @@ -104,7 +105,10 @@ void ClearPokedexFlags(void) memset(&gSaveBlock2Ptr->pokedex.seen, 0, sizeof(gSaveBlock2Ptr->pokedex.seen)); } -extern const struct ContestWinner gContestWinnerPicDummy; +const struct ContestWinner gContestWinnerPicDummy = { + .monName = _(""), + .trainerName = _("") +}; void ClearAllContestWinnerPics(void) { diff --git a/src/palette.c b/src/palette.c index aa9a84e4c..d60efdbc5 100644 --- a/src/palette.c +++ b/src/palette.c @@ -1,5 +1,8 @@ #include "global.h" +#include "blend_palette.h" #include "palette.h" +#include "decompress.h" +#include "gpu_regs.h" #include "task.h" enum @@ -28,7 +31,7 @@ struct PaletteStructTemplate struct PaletteStruct { - struct PaletteStructTemplate *base; + const struct PaletteStructTemplate *base; u32 ps_field_4_0:1; u16 ps_field_4_1:1; u32 baseDestOffset:9; @@ -38,31 +41,6 @@ struct PaletteStruct u8 ps_field_9; }; -extern void LZDecompressWram(const void *src, void *dest); -extern void SetGpuReg(u8 regOffset, u16 value); -extern void sub_8149DFC(u8 a1); -extern void sub_80A1670(u16 a1); -extern void sub_80A2D54(u8 a1); -extern void SetWordTaskArg(u8 taskId, u8 dataElem, u32 value); -extern void _call_via_r1(u32 a1, void *a2); - -extern void BlendPalette(u16, u16, u8, u16); - -EWRAM_DATA u16 gPlttBufferUnfaded[0x200] = {0}; -EWRAM_DATA u16 gPlttBufferFaded[0x200] = {0}; -EWRAM_DATA struct PaletteStruct sPaletteStructs[0x10] = {0}; -EWRAM_DATA struct PaletteFadeControl gPaletteFade = {0}; -EWRAM_DATA u32 gFiller_2037FE0 = 0; -EWRAM_DATA u32 sPlttBufferTransferPending = 0; -EWRAM_DATA u8 gPaletteDecompressionBuffer[0x400] = {0}; - -extern struct PaletteStructTemplate gDummyPaletteStructTemplate; -extern void *gUnknown_0852487C; -extern u8 gUnknown_0852489C[]; - -extern u16 gUnknown_03000F3C; -extern void *gUnknown_03000F44; - static void unused_sub_80A1CDC(struct PaletteStruct *, u32 *); static void unused_sub_80A1E40(struct PaletteStruct *, u32 *); static void unused_sub_80A1F00(struct PaletteStruct *); @@ -73,32 +51,29 @@ static u8 UpdateFastPaletteFade(void); static u8 UpdateHardwarePaletteFade(void); static void UpdateBlendRegisters(void); static bool8 IsSoftwarePaletteFadeFinishing(void); +static void sub_80A2D54(u8 taskId); -void sub_80A1818(u16 a1) -{ - void **v1 = &gUnknown_0852487C; - CpuSet(v1[a1 & 0x3], gPlttBufferUnfaded + 0x80, 0x10); - BlendPalette(0x80, 0x10, gPaletteFade.y, gPaletteFade.blendColor & 0x7FFF); - if ((u8)FindTaskIdByFunc(sub_8149DFC) != 0xFF ) - { - gUnknown_03000F44 = sub_80A1670; - gUnknown_03000F3C = 0x20; - } - return; -} +EWRAM_DATA u16 gPlttBufferUnfaded[0x200] = {0}; +EWRAM_DATA u16 gPlttBufferFaded[0x200] = {0}; +EWRAM_DATA struct PaletteStruct sPaletteStructs[0x10] = {0}; +EWRAM_DATA struct PaletteFadeControl gPaletteFade = {0}; +static EWRAM_DATA u32 gFiller_2037FE0 = 0; +static EWRAM_DATA u32 sPlttBufferTransferPending = 0; +EWRAM_DATA u8 gPaletteDecompressionBuffer[0x400] = {0}; -void sub_80A1884(u16 a1) -{ - void **v1 = &gUnknown_0852487C; - CpuSet(v1[a1 & 0x3], gPlttBufferUnfaded + 0x80, 0x10); - if ((u8)FindTaskIdByFunc(sub_8149DFC) == 0xFF ) - { - BlendPalette(0x80, 0x10, gPaletteFade.y, gPaletteFade.blendColor & 0x7FFF); - if (!--gUnknown_03000F3C) - gUnknown_03000F44 = 0; - } - return; -} +static const struct PaletteStructTemplate gDummyPaletteStructTemplate = { + .uid = 0xFFFF, + .pst_field_B_5 = 1 +}; +static const u8 gUnknown_0852489C[] = { + 0, 0, 0, 0, 0, + 5, 5, 5, 5, 5, + 11, 11, 11, 11, 11, + 16, 16, 16, 16, 16, + 21, 21, 21, 21, 21, + 27, 27, 27, 27, 27, + 31, 31 +}; void LoadCompressedPalette(const void *src, u16 offset, u16 size) { diff --git a/src/pokemon_2.c b/src/pokemon_2.c index 30e788874..c5c36c793 100644 --- a/src/pokemon_2.c +++ b/src/pokemon_2.c @@ -31,11 +31,11 @@ extern const union AnimCmd* gUnknown_082FF70C[]; extern const union AnimCmd* const * const gUnknown_08309AAC[]; extern const union AnimCmd* const * const gUnknown_08305D0C[]; extern const union AnimCmd* const * const gUnknown_0830536C[]; -extern const u8 gBadEggNickname[]; +extern const u8 gText_BadEgg[]; extern const u8 gText_EggNickname[]; extern u8 GetBankSide(u8 bank); -extern u8 GetBankByPlayerAI(u8 bank); +extern u8 GetBankByIdentity(u8 bank); extern u8 GetBankIdentity(u8 bank); u8 CountAliveMonsInBattle(u8 caseId) @@ -90,7 +90,7 @@ u8 sub_8069F34(u8 bank) status ^= 1; if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) - return GetBankByPlayerAI(status); + return GetBankByIdentity(status); if (CountAliveMonsInBattle(BATTLE_ALIVE_EXCEPT_ACTIVE) > 1) { u8 val; @@ -99,14 +99,14 @@ u8 sub_8069F34(u8 bank) val = status ^ 2; else val = status; - return GetBankByPlayerAI(val); + return GetBankByIdentity(val); } else { if ((gAbsentBankFlags & gBitTable[status])) - return GetBankByPlayerAI(status ^ 2); + return GetBankByIdentity(status ^ 2); else - return GetBankByPlayerAI(status); + return GetBankByIdentity(status); } } @@ -409,8 +409,8 @@ u32 GetBoxMonData(struct BoxPokemon *boxMon, s32 field, u8 *data) if (boxMon->isBadEgg) { for (retVal = 0; - retVal < POKEMON_NAME_LENGTH && gBadEggNickname[retVal] != EOS; - data[retVal] = gBadEggNickname[retVal], retVal++) {} + retVal < POKEMON_NAME_LENGTH && gText_BadEgg[retVal] != EOS; + data[retVal] = gText_BadEgg[retVal], retVal++) {} data[retVal] = EOS; } @@ -1308,10 +1308,9 @@ void sub_805EF84(u8 bank, bool8); extern struct BattlePokemon gBattleMons[4]; -/* - void CopyPlayerPartyMonToBattleData(u8 bank, u8 partyIndex) { + u16* hpSwitchout; s32 i; u8 nickname[POKEMON_NAME_LENGTH * 2]; @@ -1352,15 +1351,9 @@ void CopyPlayerPartyMonToBattleData(u8 bank, u8 partyIndex) GetMonData(&gPlayerParty[partyIndex], MON_DATA_NICKNAME, nickname); StringCopy10(gBattleMons[bank].nickname, nickname); GetMonData(&gPlayerParty[partyIndex], MON_DATA_OT_NAME, gBattleMons[bank].otName); - // ewram memes from Ruby return - #ifdef NONMATCHING - gBattleStruct->hpOnSwitchout[GetBankSide(bank)] = gBattleMons[bank].hp; - #else - { - u32 side = GetBankSide(bank); - *(u16*)((void*)(gBattleStruct) + side) = gBattleMons[bank].hp; - } - #endif // NONMATCHING + + hpSwitchout = &gBattleStruct->hpOnSwitchout[GetBankSide(bank)]; + *hpSwitchout = gBattleMons[bank].hp; for (i = 0; i < 8; i++) gBattleMons[bank].statStages[i] = 6; @@ -1369,4 +1362,3 @@ void CopyPlayerPartyMonToBattleData(u8 bank, u8 partyIndex) sub_803FA70(bank); sub_805EF84(bank, FALSE); } -*/ diff --git a/src/pokemon_3.c b/src/pokemon_3.c index 2d1dfb8b7..d44c0cb2f 100644 --- a/src/pokemon_3.c +++ b/src/pokemon_3.c @@ -46,16 +46,16 @@ extern const struct SpindaSpot gSpindaSpotGraphics[]; extern const u8* const gStatNamesTable[]; extern const u8 gSpeciesNames[][11]; extern const u8 gUnknown_08329EC8[]; -extern const u8 gUnknown_085CB38A[]; -extern const u8 gUnknown_085CB3AA[]; -extern const u8 gUnknown_085CA459[]; -extern const u8 gUnknown_085CA424[]; +extern const u8 gText_StatRose[]; +extern const u8 gText_PkmnsStatChanged2[]; +extern const u8 gText_PkmnGettingPumped[]; +extern const u8 gText_PkmnShroudedInMist[]; extern const s8 gNatureStatTable[][5]; extern const s8 gUnknown_08329ECE[][3]; extern const u32 gBitTable[]; extern const u32 gTMHMLearnsets[][2]; -extern const u8 BattleText_Wally[]; -extern const u8 BattleText_PreventedSwitch[]; +extern const u8 gText_BattleWallyName[]; +extern const u8 gText_PkmnsXPreventsSwitching[]; extern const struct CompressedSpritePalette gMonPaletteTable[]; extern const struct CompressedSpritePalette gMonShinyPaletteTable[]; extern const u16 gHMMoves[]; @@ -215,8 +215,8 @@ void sub_806CF24(s32 stat) { gBankTarget = gBankInMenu; StringCopy(gBattleTextBuff1, gStatNamesTable[gUnknown_08329EC8[stat]]); - StringCopy(gBattleTextBuff2, gUnknown_085CB38A); - StrCpyDecodeToDisplayedStringBattle(gUnknown_085CB3AA); + StringCopy(gBattleTextBuff2, gText_StatRose); + BattleStringExpandPlaceholdersToDisplayedString(gText_PkmnsStatChanged2); } u8 *sub_806CF78(u16 itemId) @@ -251,7 +251,7 @@ u8 *sub_806CF78(u16 itemId) else { gBankAttacker = gBankInMenu; - StrCpyDecodeToDisplayedStringBattle(gUnknown_085CA459); + BattleStringExpandPlaceholdersToDisplayedString(gText_PkmnGettingPumped); } } } @@ -259,7 +259,7 @@ u8 *sub_806CF78(u16 itemId) if (itemEffect[3] & 0x80) { gBankAttacker = gBankInMenu; - StrCpyDecodeToDisplayedStringBattle(gUnknown_085CA424); + BattleStringExpandPlaceholdersToDisplayedString(gText_PkmnShroudedInMist); } return gDisplayedStringBattle; @@ -601,9 +601,9 @@ bool8 sub_806D7EC(void) return retVal; } -bool8 sub_806D82C(u8 id) +bool16 sub_806D82C(u8 id) { - bool8 retVal = FALSE; + bool16 retVal = FALSE; switch (gLinkPlayers[id].lp_field_18) { case 0: @@ -1177,7 +1177,7 @@ u16 GetBattleBGM(void) case CLASS_PKMN_TRAINER_RIVAL: if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) return 0x1E1; - if (!StringCompare(gTrainers[gTrainerBattleOpponent_A].trainerName, BattleText_Wally)) + if (!StringCompare(gTrainers[gTrainerBattleOpponent_A].trainerName, gText_BattleWallyName)) return 0x1DC; return 0x1E1; case CLASS_ELITE_FOUR: @@ -1361,20 +1361,20 @@ void BoxMonRestorePP(struct BoxPokemon *boxMon) void sub_806E994(void) { gLastUsedAbility = gBattleStruct->field_B0; - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 4; + + gBattleTextBuff1[0] = B_BUFF_PLACEHOLDER_BEGIN; + gBattleTextBuff1[1] = B_BUFF_MON_NICK_WITH_PREFIX; gBattleTextBuff1[2] = gBattleStruct->field_49; - gBattleTextBuff1[4] = EOS; + gBattleTextBuff1[4] = B_BUFF_EOS; + if (!GetBankSide(gBattleStruct->field_49)) gBattleTextBuff1[3] = pokemon_order_func(gBattlePartyID[gBattleStruct->field_49]); else gBattleTextBuff1[3] = gBattlePartyID[gBattleStruct->field_49]; - gBattleTextBuff2[0] = 0xFD; - gBattleTextBuff2[1] = 4; - gBattleTextBuff2[2] = gBankInMenu; - gBattleTextBuff2[3] = pokemon_order_func(gBattlePartyID[gBankInMenu]); - gBattleTextBuff2[4] = EOS; - StrCpyDecodeBattle(BattleText_PreventedSwitch, gStringVar4); + + PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff2, gBankInMenu, pokemon_order_func(gBattlePartyID[gBankInMenu])) + + BattleStringExpandPlaceholders(gText_PkmnsXPreventsSwitching, gStringVar4); } struct PokeItem @@ -1388,7 +1388,7 @@ extern const struct PokeItem gAlteringCaveWildMonHeldItems[9]; static s32 GetWildMonTableIdInAlteringCave(u16 species) { s32 i; - for (i = 0; i < 9; i++) + for (i = 0; i < (s32) ARRAY_COUNT(gAlteringCaveWildMonHeldItems); i++) if (gAlteringCaveWildMonHeldItems[i].species == species) return i; return 0; @@ -1511,8 +1511,6 @@ static void Task_PokemonSummaryAnimateAfterDelay(u8 taskId) } } -void DoMonFrontSpriteAnimation(struct Sprite* sprite, u16 species, bool8 noCry, u8 arg3); - void BattleAnimateFrontSprite(struct Sprite* sprite, u16 species, bool8 noCry, u8 arg3) { if (gHitMarker & HITMARKER_NO_ANIMATIONS && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000))) diff --git a/src/pokemon_size_record.c b/src/pokemon_size_record.c index 804dbda74..12d98bfd8 100644 --- a/src/pokemon_size_record.c +++ b/src/pokemon_size_record.c @@ -45,8 +45,8 @@ static const u8 sGiftRibbonsMonDataIds[] = MON_DATA_GIFT_RIBBON_7 }; -extern const u8 gOtherText_DecimalPoint[]; -extern const u8 gOtherText_Marco[]; +extern const u8 gText_DecimalPoint[]; +extern const u8 gText_Marco[]; extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1]; #define CM_PER_INCH 2.54 @@ -103,7 +103,7 @@ static void FormatMonSizeRecord(u8 *string, u32 size) #endif string = ConvertIntToDecimalStringN(string, size / 10, 0, 8); - string = StringAppend(string, gOtherText_DecimalPoint); + string = StringAppend(string, gText_DecimalPoint); ConvertIntToDecimalStringN(string, size % 10, 0, 1); } @@ -152,7 +152,7 @@ static void GetMonSizeRecordInfo(u16 species, u16 *sizeRecord) FormatMonSizeRecord(gStringVar3, size); StringCopy(gStringVar1, gSpeciesNames[species]); if (*sizeRecord == DEFAULT_MAX_SIZE) - StringCopy(gStringVar2, gOtherText_Marco); + StringCopy(gStringVar2, gText_Marco); else StringCopy(gStringVar2, gSaveBlock2Ptr->playerName); } diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c new file mode 100644 index 000000000..3e409244c --- /dev/null +++ b/src/pokemon_storage_system.c @@ -0,0 +1,15 @@ + +// Includes +#include "global.h" + +// Static type declarations + +// Static RAM declarations + +IWRAM_DATA u8 gUnknown_03000F78[0x188]; + +// Static ROM declarations + +// .rodata + +// .text diff --git a/src/record_mixing.c b/src/record_mixing.c new file mode 100644 index 000000000..151835e5e --- /dev/null +++ b/src/record_mixing.c @@ -0,0 +1,28 @@ + +// Includes +#include "global.h" + +// Static type declarations + +// Static RAM declarations + +IWRAM_DATA bool8 gUnknown_03001130; +IWRAM_DATA struct SecretBaseRecord *gUnknown_03001134; +IWRAM_DATA TVShow *gUnknown_03001138; +IWRAM_DATA struct UnknownSaveStruct2ABC *gUnknown_0300113C; +IWRAM_DATA OldMan *gUnknown_03001140; +IWRAM_DATA struct EasyChatPair *gUnknown_03001144; +IWRAM_DATA struct DaycareData *gUnknown_03001148; +IWRAM_DATA void *gUnknown_0300114C; // gSaveBlock2Ptr->field_64C +IWRAM_DATA LilycoveLady *gUnknown_03001150; +IWRAM_DATA void *gUnknown_03001154; // gSaveBlock2Ptr->field_0DC; +IWRAM_DATA void *gUnknown_03001158; // gSaveBlock2Ptr->field_64C +IWRAM_DATA u32 gUnknown_0300115C; +IWRAM_DATA u8 gUnknown_03001160[8]; +IWRAM_DATA u32 gUnknown_03001168[3]; + +// Static ROM declarations + +// .rodata + +// .text diff --git a/src/reset_save_heap.c b/src/reset_save_heap.c new file mode 100644 index 000000000..b786ff9f8 --- /dev/null +++ b/src/reset_save_heap.c @@ -0,0 +1,32 @@ +#include "global.h" +#include "main.h" +#include "gpu_regs.h" +#include "m4a.h" +#include "load_save.h" +#include "save.h" +#include "new_game.h" +#include "rom4.h" +#include "malloc.h" + +void sub_81700F8(void) +{ + u16 imeBackup; + + imeBackup = REG_IME; + REG_IME = 0; + RegisterRamReset(0x00000001); + ClearGpuRegBits(REG_OFFSET_DISPCNT, 0x80); + REG_IME = imeBackup; + gMain.inBattle = FALSE; + SetSaveBlocksPointers(sub_815355C()); + sub_808447C(); + ResetSaveCounters(); + sub_81534D0(0); + if (gSaveFileStatus == 0 || gSaveFileStatus == 2) + { + Sav2_ClearSetDefault(); + } + SetPokemonCryStereo(gSaveBlock2Ptr->optionsSound); + InitHeap(gHeap, 0x1c000); + SetMainCallback2(sub_8086230); +} diff --git a/src/roamer.c b/src/roamer.c new file mode 100644 index 000000000..cbe1b6312 --- /dev/null +++ b/src/roamer.c @@ -0,0 +1,218 @@ +#include "global.h" +#include "roamer.h" +#include "pokemon.h" +#include "rng.h" +#include "species.h" +#include "event_data.h" + +enum +{ + MAP_GRP = 0, // map group + MAP_NUM = 1, // map number +}; + +EWRAM_DATA static u8 sLocationHistory[3][2] = {0}; +EWRAM_DATA static u8 sRoamerLocation[2] = {0}; + +static const u8 sRoamerLocations[][6] = +{ + { 0x19, 0x1A, 0x20, 0x21, 0x31, 0xFF }, + { 0x1A, 0x19, 0x20, 0x21, 0xFF, 0xFF }, + { 0x20, 0x1A, 0x19, 0x21, 0xFF, 0xFF }, + { 0x21, 0x20, 0x19, 0x1A, 0x22, 0x26 }, + { 0x22, 0x21, 0x23, 0xFF, 0xFF, 0xFF }, + { 0x23, 0x22, 0x24, 0xFF, 0xFF, 0xFF }, + { 0x24, 0x23, 0x25, 0x26, 0xFF, 0xFF }, + { 0x25, 0x24, 0x26, 0xFF, 0xFF, 0xFF }, + { 0x26, 0x25, 0x21, 0xFF, 0xFF, 0xFF }, + { 0x27, 0x24, 0x28, 0x29, 0xFF, 0xFF }, + { 0x28, 0x27, 0x2A, 0xFF, 0xFF, 0xFF }, + { 0x29, 0x27, 0x2A, 0xFF, 0xFF, 0xFF }, + { 0x2A, 0x28, 0x29, 0x2B, 0xFF, 0xFF }, + { 0x2B, 0x2A, 0x2C, 0xFF, 0xFF, 0xFF }, + { 0x2C, 0x2B, 0x2D, 0xFF, 0xFF, 0xFF }, + { 0x2D, 0x2C, 0x2E, 0xFF, 0xFF, 0xFF }, + { 0x2E, 0x2D, 0x2F, 0xFF, 0xFF, 0xFF }, + { 0x2F, 0x2E, 0x30, 0xFF, 0xFF, 0xFF }, + { 0x30, 0x2F, 0x31, 0xFF, 0xFF, 0xFF }, + { 0x31, 0x30, 0x19, 0xFF, 0xFF, 0xFF }, + { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }, +}; + +void ClearRoamerData(void) +{ + memset(&gSaveBlock1Ptr->roamer, 0, sizeof(struct Roamer)); + (&gSaveBlock1Ptr->roamer)->species = SPECIES_LATIAS; +} + +void ClearRoamerLocationData(void) +{ + u8 i; + + for (i = 0; i < 3; i++) + { + sLocationHistory[i][MAP_GRP] = 0; + sLocationHistory[i][MAP_NUM] = 0; + } + + sRoamerLocation[MAP_GRP] = 0; + sRoamerLocation[MAP_NUM] = 0; +} + +static void CreateInitialRoamerMon(bool16 createLatios) +{ + if (!createLatios) + (&gSaveBlock1Ptr->roamer)->species = SPECIES_LATIAS; + else + (&gSaveBlock1Ptr->roamer)->species = SPECIES_LATIOS; + + CreateMon(&gEnemyParty[0], (&gSaveBlock1Ptr->roamer)->species, 40, 0x20, 0, 0, 0, 0); + (&gSaveBlock1Ptr->roamer)->level = 40; + (&gSaveBlock1Ptr->roamer)->status = 0; + (&gSaveBlock1Ptr->roamer)->active = TRUE; + (&gSaveBlock1Ptr->roamer)->ivs = GetMonData(&gEnemyParty[0], MON_DATA_IVS); + (&gSaveBlock1Ptr->roamer)->personality = GetMonData(&gEnemyParty[0], MON_DATA_PERSONALITY); + (&gSaveBlock1Ptr->roamer)->hp = GetMonData(&gEnemyParty[0], MON_DATA_MAX_HP); + (&gSaveBlock1Ptr->roamer)->cool = GetMonData(&gEnemyParty[0], MON_DATA_COOL); + (&gSaveBlock1Ptr->roamer)->beauty = GetMonData(&gEnemyParty[0], MON_DATA_BEAUTY); + (&gSaveBlock1Ptr->roamer)->cute = GetMonData(&gEnemyParty[0], MON_DATA_CUTE); + (&gSaveBlock1Ptr->roamer)->smart = GetMonData(&gEnemyParty[0], MON_DATA_SMART); + (&gSaveBlock1Ptr->roamer)->tough = GetMonData(&gEnemyParty[0], MON_DATA_TOUGH); + sRoamerLocation[MAP_GRP] = 0; + sRoamerLocation[MAP_NUM] = sRoamerLocations[Random() % 20][0]; +} + +void InitRoamer(void) +{ + ClearRoamerData(); + ClearRoamerLocationData(); + CreateInitialRoamerMon(gSpecialVar_0x8004); +} + +void UpdateLocationHistoryForRoamer(void) +{ + sLocationHistory[2][MAP_GRP] = sLocationHistory[1][MAP_GRP]; + sLocationHistory[2][MAP_NUM] = sLocationHistory[1][MAP_NUM]; + + sLocationHistory[1][MAP_GRP] = sLocationHistory[0][MAP_GRP]; + sLocationHistory[1][MAP_NUM] = sLocationHistory[0][MAP_NUM]; + + sLocationHistory[0][MAP_GRP] = gSaveBlock1Ptr->location.mapGroup; + sLocationHistory[0][MAP_NUM] = gSaveBlock1Ptr->location.mapNum; +} + +void RoamerMoveToOtherLocationSet(void) +{ + u8 val = 0; + struct Roamer *roamer = &gSaveBlock1Ptr->roamer; + + if (!roamer->active) + return; + + sRoamerLocation[MAP_GRP] = val; + + while (1) + { + val = sRoamerLocations[Random() % 20][0]; + if (sRoamerLocation[MAP_NUM] != val) + { + sRoamerLocation[MAP_NUM] = val; + return; + } + } +} + +void RoamerMove(void) +{ + u8 locSet = 0; + + if ((Random() % 16) == 0) + { + RoamerMoveToOtherLocationSet(); + } + else + { + struct Roamer *roamer = &gSaveBlock1Ptr->roamer; + + if (!roamer->active) + return; + + while (locSet < 20) + { + if (sRoamerLocation[MAP_NUM] == sRoamerLocations[locSet][0]) + { + u8 mapNum; + while (1) + { + mapNum = sRoamerLocations[locSet][(Random() % 5) + 1]; + if (!(sLocationHistory[2][MAP_GRP] == 0 && sLocationHistory[2][MAP_NUM] == mapNum) && mapNum != 0xFF) + break; + } + sRoamerLocation[MAP_NUM] = mapNum; + return; + } + locSet++; + } + } +} + +bool8 IsRoamerAt(u8 mapGroup, u8 mapNum) +{ + struct Roamer *roamer = &gSaveBlock1Ptr->roamer; + + if (roamer->active && mapGroup == sRoamerLocation[MAP_GRP] && mapNum == sRoamerLocation[MAP_NUM]) + return TRUE; + else + return FALSE; +} + +void CreateRoamerMonInstance(void) +{ + struct Pokemon *mon; + struct Roamer *roamer; + + mon = &gEnemyParty[0]; + ZeroEnemyPartyMons(); + roamer = &gSaveBlock1Ptr->roamer; + CreateMonWithIVsPersonality(mon, roamer->species, roamer->level, roamer->ivs, roamer->personality); + SetMonData(mon, MON_DATA_STATUS, &gSaveBlock1Ptr->roamer.status); + SetMonData(mon, MON_DATA_HP, &gSaveBlock1Ptr->roamer.hp); + SetMonData(mon, MON_DATA_COOL, &gSaveBlock1Ptr->roamer.cool); + SetMonData(mon, MON_DATA_BEAUTY, &gSaveBlock1Ptr->roamer.beauty); + SetMonData(mon, MON_DATA_CUTE, &gSaveBlock1Ptr->roamer.cute); + SetMonData(mon, MON_DATA_SMART, &gSaveBlock1Ptr->roamer.smart); + SetMonData(mon, MON_DATA_TOUGH, &gSaveBlock1Ptr->roamer.tough); +} + +bool8 TryStartRoamerEncounter(void) +{ + if (IsRoamerAt(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum) == TRUE && (Random() % 4) == 0) + { + CreateRoamerMonInstance(); + return TRUE; + } + else + { + return FALSE; + } +} + +void UpdateRoamerHPStatus(struct Pokemon *mon) +{ + (&gSaveBlock1Ptr->roamer)->hp = GetMonData(mon, MON_DATA_HP); + (&gSaveBlock1Ptr->roamer)->status = GetMonData(mon, MON_DATA_STATUS); + + RoamerMoveToOtherLocationSet(); +} + +void SetRoamerInactive(void) +{ + struct Roamer *roamer = &gSaveBlock1Ptr->roamer; + roamer->active = FALSE; +} + +void GetRoamerLocation(u8 *mapGroup, u8 *mapNum) +{ + *mapGroup = sRoamerLocation[MAP_GRP]; + *mapNum = sRoamerLocation[MAP_NUM]; +} diff --git a/src/rom4.c b/src/rom4.c new file mode 100644 index 000000000..c538595f2 --- /dev/null +++ b/src/rom4.c @@ -0,0 +1,19 @@ + +// Includes +#include "global.h" + +// Static type declarations + +// Static RAM declarations +IWRAM_DATA void *gUnknown_03000E0C; +IWRAM_DATA u8 gUnknown_03000E10[4]; +IWRAM_DATA u8 (*gUnknown_03000E14)(u32); +IWRAM_DATA u8 gUnknown_03000E18; +IWRAM_DATA u8 gUnknown_03000E19; +IWRAM_DATA void *rom4_c_unused_03000e1c; + +// Static ROM declarations + +// .rodata + +// .text diff --git a/src/safari_zone.c b/src/safari_zone.c index fdfdd961a..3e25468bf 100644 --- a/src/safari_zone.c +++ b/src/safari_zone.c @@ -18,7 +18,7 @@ struct PokeblockFeeder #define NUM_POKEBLOCK_FEEDERS 10 extern u8 gBattleOutcome; -extern void* gUnknown_03005DAC; +extern void* gFieldCallback; extern u8 gUnknown_082A4B8A[]; extern u8 gUnknown_082A4B6F[]; @@ -118,7 +118,7 @@ void sub_80FC190(void) { ScriptContext2_RunNewScript(gUnknown_082A4B4C); warp_in(); - gUnknown_03005DAC = sub_80AF6F0; + gFieldCallback = sub_80AF6F0; SetMainCallback2(c2_load_new_map); } else if (gBattleOutcome == BATTLE_CAUGHT) diff --git a/src/save.c b/src/save.c index 5ca855247..aee20d451 100644 --- a/src/save.c +++ b/src/save.c @@ -2,12 +2,15 @@ #include "gba/flash_internal.h" #include "save.h" #include "game_stat.h" +#include "task.h" -extern struct SaveSectionOffsets gSaveSectionOffsets[0xE]; extern struct SaveSectionLocation gRamSaveSectionLocations[0xE]; extern u8 gDecompressionBuffer[]; extern u32 gFlashMemoryPresent; extern u16 gUnknown_03006294; +extern bool8 gSoftResetDisabled; + +extern const struct SaveSectionOffsets gSaveSectionOffsets[0xE]; extern void DoSaveFailedScreen(u8); // save_failed_screen extern void LoadSerializedGame(void); // load_save @@ -576,84 +579,27 @@ u16 CalculateChecksum(void *data, u16 size) return ((checksum >> 16) + checksum); } -#ifdef NONMATCHING -// the initial allocation of the pointer and toAdd variable doesnt match up with the original function. however, forcing it is impossible since gRamSaveSectionLocations is loaded first. void UpdateSaveAddresses(void) { int i = 0; - gRamSaveSectionLocations[i].data = gSaveBlock2Ptr + gSaveSectionOffsets[0].toAdd; - gRamSaveSectionLocations[i].size = gSaveSectionOffsets[0].size; - for(i = 1; i < 5; i++) + gRamSaveSectionLocations[i].data = (void*)(gSaveBlock2Ptr) + gSaveSectionOffsets[i].toAdd; + gRamSaveSectionLocations[i].size = gSaveSectionOffsets[i].size; + + for (i = 1; i < 5; i++) { - gRamSaveSectionLocations[i].data = gSaveBlock1Ptr + gSaveSectionOffsets[i].toAdd; + gRamSaveSectionLocations[i].data = (void*)(gSaveBlock1Ptr) + gSaveSectionOffsets[i].toAdd; gRamSaveSectionLocations[i].size = gSaveSectionOffsets[i].size; } - for(i = 5; i < 14; i++) + for (i = 5; i < 14; i++) { - gRamSaveSectionLocations[i].data = gPokemonStoragePtr + gSaveSectionOffsets[i].toAdd; + gRamSaveSectionLocations[i].data = (void*)(gPokemonStoragePtr) + gSaveSectionOffsets[i].toAdd; gRamSaveSectionLocations[i].size = gSaveSectionOffsets[i].size; + + i++;i--; // needed to match } } -#else -__attribute__((naked)) -void UpdateSaveAddresses(void) -{ - asm(".syntax unified\n\ - push {r4,r5,lr}\n\ - ldr r3, =gRamSaveSectionLocations\n\ - ldr r0, =gSaveBlock2Ptr\n\ - ldr r2, =gSaveSectionOffsets\n\ - ldrh r1, [r2]\n\ - ldr r0, [r0]\n\ - adds r0, r1\n\ - str r0, [r3]\n\ - ldrh r0, [r2, 0x2]\n\ - strh r0, [r3, 0x4]\n\ - ldr r5, =gSaveBlock1Ptr\n\ - adds r3, 0x8\n\ - adds r2, 0x4\n\ - movs r4, 0x3\n\ -_081531AC:\n\ - ldrh r0, [r2]\n\ - ldr r1, [r5]\n\ - adds r1, r0\n\ - str r1, [r3]\n\ - ldrh r0, [r2, 0x2]\n\ - strh r0, [r3, 0x4]\n\ - adds r3, 0x8\n\ - adds r2, 0x4\n\ - subs r4, 0x1\n\ - cmp r4, 0\n\ - bge _081531AC\n\ - movs r4, 0x5\n\ - ldr r1, =gRamSaveSectionLocations\n\ - ldr r5, =gPokemonStoragePtr\n\ - ldr r0, =gSaveSectionOffsets\n\ - adds r3, r1, 0\n\ - adds r3, 0x28\n\ - adds r2, r0, 0\n\ - adds r2, 0x14\n\ -_081531D2:\n\ - ldrh r0, [r2]\n\ - ldr r1, [r5]\n\ - adds r1, r0\n\ - str r1, [r3]\n\ - ldrh r0, [r2, 0x2]\n\ - strh r0, [r3, 0x4]\n\ - adds r3, 0x8\n\ - adds r2, 0x4\n\ - adds r4, 0x1\n\ - cmp r4, 0xD\n\ - ble _081531D2\n\ - pop {r4,r5}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided"); -} -#endif extern u32 GetGameStat(u8 index); // rom4 extern void IncrementGameStat(u8 index); // rom4 @@ -894,3 +840,85 @@ u32 sub_8153634(u8 sector, u8* src) return 0xFF; return 1; } + +extern void save_serialize_map(void); +extern void sub_8076D5C(void); +extern void sav2_gender2_inplace_and_xFE(void); +extern void sub_800ADF8(void); +extern bool8 sub_800A520(void); + +void sub_8153688(u8 taskId) +{ + s16* taskData = gTasks[taskId].data; + + switch (taskData[0]) + { + case 0: + gSoftResetDisabled = TRUE; + taskData[0] = 1; + break; + case 1: + sub_800ADF8(); + taskData[0] = 2; + break; + case 2: + if (sub_800A520()) + { + if (taskData[2] == 0) + save_serialize_map(); + taskData[0] = 3; + } + break; + case 3: + if (taskData[2] == 0) + sub_8076D5C(); + sub_8153380(); + taskData[0] = 4; + break; + case 4: + if (++taskData[1] == 5) + { + taskData[1] = 0; + taskData[0] = 5; + } + break; + case 5: + if (sub_81533AC()) + taskData[0] = 6; + else + taskData[0] = 4; + break; + case 6: + sub_81533E0(); + taskData[0] = 7; + break; + case 7: + if (taskData[2] == 0) + sav2_gender2_inplace_and_xFE(); + sub_800ADF8(); + taskData[0] = 8; + break; + case 8: + if (sub_800A520()) + { + sub_8153408(); + taskData[0] = 9; + } + break; + case 9: + sub_800ADF8(); + taskData[0] = 10; + break; + case 10: + if (sub_800A520()) + taskData[0]++; + break; + case 11: + if (++taskData[1] > 5) + { + gSoftResetDisabled = FALSE; + DestroyTask(taskId); + } + break; + } +} diff --git a/src/scrcmd.c b/src/scrcmd.c new file mode 100644 index 000000000..b56a53caf --- /dev/null +++ b/src/scrcmd.c @@ -0,0 +1,15 @@ + +// Includes +#include "global.h" + +// Static type declarations + +// Static RAM declarations + +IWRAM_DATA u8 gUnknown_03000F30; + +// Static ROM declarations + +// .rodata + +// .text diff --git a/src/script_menu.c b/src/script_menu.c new file mode 100644 index 000000000..04f1e82b7 --- /dev/null +++ b/src/script_menu.c @@ -0,0 +1,16 @@ + +// Includes +#include "global.h" + +// Static type declarations + +// Static RAM declarations + +IWRAM_DATA u8 gUnknown_03001124[6]; +IWRAM_DATA u32 filler_0300112c; + +// Static ROM declarations + +// .rodata + +// .text diff --git a/src/start_menu.c b/src/start_menu.c index ffcab5220..ac393ce2e 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -151,7 +151,7 @@ static void BuildStartMenuActions_MultiBattleRoom(void) extern const struct WindowTemplate gSafariBallsWindowTemplate; extern const struct WindowTemplate gPyramidFloorWindowTemplate_1; extern const struct WindowTemplate gPyramidFloorWindowTemplate_2; -extern const u8 gOtherText_SafariStock[]; +extern const u8 gText_SafariBallStock[]; void DisplaySafariBallsWindow(void) { @@ -159,13 +159,13 @@ void DisplaySafariBallsWindow(void) PutWindowTilemap(sSafariBallsWindowId); sub_81973FC(sSafariBallsWindowId, 0); ConvertIntToDecimalStringN(gStringVar1, gNumSafariBalls, STR_CONV_MODE_RIGHT_ALIGN, 2); - StringExpandPlaceholders(gStringVar4, gOtherText_SafariStock); + StringExpandPlaceholders(gStringVar4, gText_SafariBallStock); PrintTextOnWindow(sSafariBallsWindowId, 1, gStringVar4, 0, 1, 0xFF, NULL); CopyWindowToVram(sSafariBallsWindowId, 2); } extern const u8* const gUnknown_08510510[]; -extern const u8 gOtherText_BattlePyramid_X[]; +extern const u8 gText_BattlePyramidFloor[]; void DisplayPyramidFloorWindow(void) { @@ -177,7 +177,7 @@ void DisplayPyramidFloorWindow(void) PutWindowTilemap(sBattlePyramidFloorWindowId); sub_81973FC(sBattlePyramidFloorWindowId, 0); StringCopy(gStringVar1, gUnknown_08510510[*(u16*)(&gSaveBlock2Ptr->field_CAA[8])]); - StringExpandPlaceholders(gStringVar4, gOtherText_BattlePyramid_X); + StringExpandPlaceholders(gStringVar4, gText_BattlePyramidFloor); PrintTextOnWindow(sBattlePyramidFloorWindowId, 1, gStringVar4, 0, 1, 0xFF, NULL); CopyWindowToVram(sBattlePyramidFloorWindowId, 2); } diff --git a/src/text.c b/src/text.c index cad8326e3..7cc46cd92 100644 --- a/src/text.c +++ b/src/text.c @@ -1,9 +1,9 @@ #include "global.h" -#include "text.h" #include "main.h" #include "palette.h" #include "string_util.h" #include "window.h" +#include "text.h" extern void FillBitmapRect4Bit(struct Bitmap *surface, u16 x, u16 y, u16 width, u16 height, u8 fillValue); extern void FillWindowPixelRect(u8 windowId, u8 fillValue, u16 x, u16 y, u16 width, u16 height); @@ -32,11 +32,7 @@ u8 gUnknown_03002FB0[0x20]; u8 gUnknown_03002FD0[0x20]; u8 gUnknown_03002FF0[0x20]; u8 gGlyphDimensions[0x2]; -struct { - u8 flag_0:1; - u8 flag_1:1; - u8 flag_2:1; -} gTextFlags; +TextFlags gTextFlags; const u8 gFontHalfRowOffsets[] = { 0x00, 0x01, 0x02, 0x00, 0x03, 0x04, 0x05, 0x03, 0x06, 0x07, 0x08, 0x06, 0x00, 0x01, 0x02, 0x00, @@ -244,12 +240,11 @@ void RunTextPrinters(void) } } -bool8 IsTextPrinterActive(u8 id) +bool16 IsTextPrinterActive(u8 id) { return gTextPrinters[id].sub_union.sub.active; } - u32 RenderFont(struct TextPrinter *textPrinter) { u32 ret; @@ -1973,7 +1968,7 @@ bool8 TextPrinterWaitAutoMode(struct TextPrinter *textPrinter) } } -bool8 TextPrinterWaitWithDownArrow(struct TextPrinter *textPrinter) +bool16 TextPrinterWaitWithDownArrow(struct TextPrinter *textPrinter) { bool8 result = FALSE; if (gTextFlags.flag_2 != 0) @@ -1992,9 +1987,9 @@ bool8 TextPrinterWaitWithDownArrow(struct TextPrinter *textPrinter) return result; } -bool8 TextPrinterWait(struct TextPrinter *textPrinter) +bool16 TextPrinterWait(struct TextPrinter *textPrinter) { - bool8 result = FALSE; + bool16 result = FALSE; if (gTextFlags.flag_2 != 0) { result = TextPrinterWaitAutoMode(textPrinter); @@ -2779,7 +2774,7 @@ _08005D6E:\n\ bx r1"); } -u32 GetStringWidthFixedWidthFont(u8 *str, u8 fontId, u8 letterSpacing) +u32 GetStringWidthFixedWidthFont(const u8 *str, u8 fontId, u8 letterSpacing) { int i; u8 width; @@ -2788,7 +2783,7 @@ u32 GetStringWidthFixedWidthFont(u8 *str, u8 fontId, u8 letterSpacing) u8 line; int strPos; u8 lineWidths[8]; - u8 *strLocal; + const u8 *strLocal; for (i = 0; i < 8; i++) { @@ -2883,7 +2878,7 @@ u32 (*GetFontWidthFunc(u8 glyphId))(u16, bool32) return 0; } -s32 GetStringWidth(u8 fontId, u8 *str, s16 letterSpacing) +u32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing) { bool8 isJapanese; int minGlyphWidth; diff --git a/src/tileset_anims.c b/src/tileset_anims.c new file mode 100644 index 000000000..e53461e02 --- /dev/null +++ b/src/tileset_anims.c @@ -0,0 +1,1411 @@ + +// Includes +#include "global.h" +#include "palette.h" +#include "blend_palette.h" +#include "battle.h" +#include "task.h" + +// Static type declarations + +// Static RAM declarations + +static EWRAM_DATA struct { + const u16 *src; + u16 *dest; + u16 size; +} sTilesetDMA3TransferBuffer[20] = {0}; + +static u8 sTilesetDMA3TransferBufferSize; +static u16 sPrimaryTilesetCBCounter; +static u16 sPrimaryTilesetCBBufferSize; +static u16 sSecondaryTilesetCBCounter; +static u16 sSecondaryTilesetCBBufferSize; +static void (*sPrimaryTilesetCB)(u16); +static void (*sSecondaryTilesetCB)(u16); + +// Static ROM declarations + +static void cur_mapheader_run_tileset1_func(void); +static void cur_mapheader_run_tileset2_func(void); + +// .rodata + + +const u16 gUnknown_085105C4[] = INCBIN_U16("data/tilesets/primary/general/anim/0/1.4bpp"); + +const u16 gUnknown_08510644[] = INCBIN_U16("data/tilesets/primary/general/anim/0/0.4bpp"); + +const u16 gUnknown_085106C4[] = INCBIN_U16("data/tilesets/primary/general/anim/0/2.4bpp"); + +const u16 tileset_anims_space_0[16] = {}; + +const u16 *const gTilesetAnims_General0[] = { + gUnknown_08510644, + gUnknown_085105C4, + gUnknown_08510644, + gUnknown_085106C4 +}; + +const u16 gUnknown_08510774[] = INCBIN_U16("data/tilesets/primary/general/anim/1/0.4bpp"); + +const u16 gUnknown_08510B34[] = INCBIN_U16("data/tilesets/primary/general/anim/1/1.4bpp"); + +const u16 gUnknown_08510EF4[] = INCBIN_U16("data/tilesets/primary/general/anim/1/2.4bpp"); + +const u16 gUnknown_085112B4[] = INCBIN_U16("data/tilesets/primary/general/anim/1/3.4bpp"); + +const u16 gUnknown_08511674[] = INCBIN_U16("data/tilesets/primary/general/anim/1/4.4bpp"); + +const u16 gUnknown_08511A34[] = INCBIN_U16("data/tilesets/primary/general/anim/1/5.4bpp"); + +const u16 gUnknown_08511DF4[] = INCBIN_U16("data/tilesets/primary/general/anim/1/6.4bpp"); + +const u16 gUnknown_085121B4[] = INCBIN_U16("data/tilesets/primary/general/anim/1/7.4bpp"); + +const u16 *const gTilesetAnims_General1[] = { + gUnknown_08510774, + gUnknown_08510B34, + gUnknown_08510EF4, + gUnknown_085112B4, + gUnknown_08511674, + gUnknown_08511A34, + gUnknown_08511DF4, + gUnknown_085121B4 +}; + +const u16 gUnknown_08512594[] = INCBIN_U16("data/tilesets/primary/general/anim/2/0.4bpp"); + +const u16 gUnknown_085126D4[] = INCBIN_U16("data/tilesets/primary/general/anim/2/1.4bpp"); + +const u16 gUnknown_08512814[] = INCBIN_U16("data/tilesets/primary/general/anim/2/2.4bpp"); + +const u16 gUnknown_08512954[] = INCBIN_U16("data/tilesets/primary/general/anim/2/3.4bpp"); + +const u16 gUnknown_08512A94[] = INCBIN_U16("data/tilesets/primary/general/anim/2/4.4bpp"); + +const u16 gUnknown_08512BD4[] = INCBIN_U16("data/tilesets/primary/general/anim/2/5.4bpp"); + +const u16 gUnknown_08512D14[] = INCBIN_U16("data/tilesets/primary/general/anim/2/6.4bpp"); + +const u16 *const gTilesetAnims_General2[] = { + gUnknown_08512594, + gUnknown_085126D4, + gUnknown_08512814, + gUnknown_08512954, + gUnknown_08512A94, + gUnknown_08512BD4, + gUnknown_08512D14, + gUnknown_08512594 +}; + +const u16 gUnknown_08512E74[] = INCBIN_U16("data/tilesets/primary/general/anim/3/0.4bpp"); + +const u16 gUnknown_08512F34[] = INCBIN_U16("data/tilesets/primary/general/anim/3/1.4bpp"); + +const u16 gUnknown_08512FF4[] = INCBIN_U16("data/tilesets/primary/general/anim/3/2.4bpp"); + +const u16 gUnknown_085130B4[] = INCBIN_U16("data/tilesets/primary/general/anim/3/3.4bpp"); + +const u16 *const gTilesetAnims_General3[] = { + gUnknown_08512E74, + gUnknown_08512F34, + gUnknown_08512FF4, + gUnknown_085130B4 +}; + +const u16 gUnknown_08513184[] = INCBIN_U16("data/tilesets/primary/general/anim/4/0.4bpp"); + +const u16 gUnknown_085132C4[] = INCBIN_U16("data/tilesets/primary/general/anim/4/1.4bpp"); + +const u16 gUnknown_08513404[] = INCBIN_U16("data/tilesets/primary/general/anim/4/2.4bpp"); + +const u16 gUnknown_08513544[] = INCBIN_U16("data/tilesets/primary/general/anim/4/3.4bpp"); + +const u16 *const gTilesetAnims_General4[] = { + gUnknown_08513184, + gUnknown_085132C4, + gUnknown_08513404, + gUnknown_08513544 +}; + +const u16 gUnknown_08513694[] = INCBIN_U16("data/tilesets/secondary/lavaridge/anim/0.4bpp"); + +const u16 gUnknown_08513714[] = INCBIN_U16("data/tilesets/secondary/lavaridge/anim/1.4bpp"); + +const u16 gUnknown_08513794[] = INCBIN_U16("data/tilesets/secondary/lavaridge/anim/2.4bpp"); + +const u16 gUnknown_08513814[] = INCBIN_U16("data/tilesets/secondary/lavaridge/anim/3.4bpp"); + +const u16 *const gTilesetAnims_Lavaridge0[] = { + gUnknown_08513694, + gUnknown_08513714, + gUnknown_08513794, + gUnknown_08513814 +}; + +const u16 gUnknown_085138A4[] = INCBIN_U16("data/tilesets/secondary/pacifidlog/anim/0/0.4bpp"); + +const u16 gUnknown_08513C64[] = INCBIN_U16("data/tilesets/secondary/pacifidlog/anim/0/1.4bpp"); + +const u16 gUnknown_08514024[] = INCBIN_U16("data/tilesets/secondary/pacifidlog/anim/0/2.4bpp"); + +const u16 *const gTilesetAnims_Pacifidlog0[] = { + gUnknown_085138A4, + gUnknown_08513C64, + gUnknown_08514024, + gUnknown_08513C64 +}; + +const u16 gUnknown_085143F4[] = INCBIN_U16("data/tilesets/secondary/underwater/anim/0.4bpp"); + +const u16 gUnknown_08514474[] = INCBIN_U16("data/tilesets/secondary/underwater/anim/1.4bpp"); + +const u16 gUnknown_085144F4[] = INCBIN_U16("data/tilesets/secondary/underwater/anim/2.4bpp"); + +const u16 gUnknown_08514574[] = INCBIN_U16("data/tilesets/secondary/underwater/anim/3.4bpp"); + +const u16 *const gTilesetAnims_Underwater0[] = { + gUnknown_085143F4, + gUnknown_08514474, + gUnknown_085144F4, + gUnknown_08514574 +}; + +const u16 gUnknown_08514604[] = INCBIN_U16("data/tilesets/secondary/pacifidlog/anim/1/0.4bpp"); + +const u16 gUnknown_08514704[] = INCBIN_U16("data/tilesets/secondary/pacifidlog/anim/1/1.4bpp"); + +const u16 gUnknown_08514804[] = INCBIN_U16("data/tilesets/secondary/pacifidlog/anim/1/2.4bpp"); + +const u16 gUnknown_08514904[] = INCBIN_U16("data/tilesets/secondary/pacifidlog/anim/1/3.4bpp"); + +const u16 gUnknown_08514A04[] = INCBIN_U16("data/tilesets/secondary/pacifidlog/anim/1/4.4bpp"); + +const u16 gUnknown_08514B04[] = INCBIN_U16("data/tilesets/secondary/pacifidlog/anim/1/5.4bpp"); + +const u16 gUnknown_08514C04[] = INCBIN_U16("data/tilesets/secondary/pacifidlog/anim/1/6.4bpp"); + +const u16 gUnknown_08514D04[] = INCBIN_U16("data/tilesets/secondary/pacifidlog/anim/1/7.4bpp"); + +const u16 *const gTilesetAnims_Pacifidlog1[] = { + gUnknown_08514604, + gUnknown_08514704, + gUnknown_08514804, + gUnknown_08514904, + gUnknown_08514A04, + gUnknown_08514B04, + gUnknown_08514C04, + gUnknown_08514D04 +}; + +const u16 gUnknown_08514E24[] = INCBIN_U16("data/tilesets/secondary/mauville/anim/0/a/0.4bpp"); + +const u16 gUnknown_08514EA4[] = INCBIN_U16("data/tilesets/secondary/mauville/anim/0/a/1.4bpp"); + +const u16 gUnknown_08514F24[] = INCBIN_U16("data/tilesets/secondary/mauville/anim/0/a/2.4bpp"); + +const u16 gUnknown_08514FA4[] = INCBIN_U16("data/tilesets/secondary/mauville/anim/0/a/3.4bpp"); + +const u16 gUnknown_08515024[] = INCBIN_U16("data/tilesets/secondary/mauville/anim/1/a/1.4bpp"); + +const u16 gUnknown_085150A4[] = INCBIN_U16("data/tilesets/secondary/mauville/anim/0/b/0.4bpp"); + +const u16 gUnknown_08515124[] = INCBIN_U16("data/tilesets/secondary/mauville/anim/0/b/1.4bpp"); + +const u16 gUnknown_085151A4[] = INCBIN_U16("data/tilesets/secondary/mauville/anim/0/b/2.4bpp"); + +const u16 gUnknown_08515224[] = INCBIN_U16("data/tilesets/secondary/mauville/anim/0/b/3.4bpp"); + +const u16 gUnknown_085152A4[] = INCBIN_U16("data/tilesets/secondary/mauville/anim/1/b/1.4bpp"); + +const u16 tileset_anims_space_1[16] = {}; + +u16 *const gTilesetAnims_MauvilleVDests0[] = { + (u16 *)(BG_VRAM + 0x4c00), + (u16 *)(BG_VRAM + 0x4c80), + (u16 *)(BG_VRAM + 0x4d00), + (u16 *)(BG_VRAM + 0x4d80), + (u16 *)(BG_VRAM + 0x4e00), + (u16 *)(BG_VRAM + 0x4e80), + (u16 *)(BG_VRAM + 0x4f00), + (u16 *)(BG_VRAM + 0x4f80) +}; + +u16 *const gTilesetAnims_MauvilleVDests1[] = { + (u16 *)(BG_VRAM + 0x5000), + (u16 *)(BG_VRAM + 0x5080), + (u16 *)(BG_VRAM + 0x5100), + (u16 *)(BG_VRAM + 0x5180), + (u16 *)(BG_VRAM + 0x5200), + (u16 *)(BG_VRAM + 0x5280), + (u16 *)(BG_VRAM + 0x5300), + (u16 *)(BG_VRAM + 0x5380) +}; + +const u16 *const gTilesetAnims_Mauville0a[] = { + gUnknown_08514E24, + gUnknown_08514E24, + gUnknown_08514EA4, + gUnknown_08514F24, + gUnknown_08514FA4, + gUnknown_08514FA4, + gUnknown_08514FA4, + gUnknown_08514FA4, + gUnknown_08514FA4, + gUnknown_08514FA4, + gUnknown_08514F24, + gUnknown_08514EA4 +}; + +const u16 *const gTilesetAnims_Mauville0b[] = { + gUnknown_085150A4, + gUnknown_085150A4, + gUnknown_08515124, + gUnknown_085151A4, + gUnknown_08515224, + gUnknown_08515224, + gUnknown_08515224, + gUnknown_08515224, + gUnknown_08515224, + gUnknown_08515224, + gUnknown_085151A4, + gUnknown_08515124 +}; + +const u16 *const gTilesetAnims_Mauville1a[] = { + gUnknown_08514E24, + gUnknown_08514E24, + gUnknown_08515024, + gUnknown_08515024 +}; + +const u16 *const gTilesetAnims_Mauville1b[] = { + gUnknown_085150A4, + gUnknown_085150A4, + gUnknown_085152A4, + gUnknown_085152A4 +}; + +const u16 gUnknown_08515404[] = INCBIN_U16("data/tilesets/secondary/rustboro/anim/0/0.4bpp"); + +const u16 gUnknown_08515484[] = INCBIN_U16("data/tilesets/secondary/rustboro/anim/0/1.4bpp"); + +const u16 gUnknown_08515504[] = INCBIN_U16("data/tilesets/secondary/rustboro/anim/0/2.4bpp"); + +const u16 gUnknown_08515584[] = INCBIN_U16("data/tilesets/secondary/rustboro/anim/0/3.4bpp"); + +const u16 gUnknown_08515604[] = INCBIN_U16("data/tilesets/secondary/rustboro/anim/0/4.4bpp"); + +const u16 gUnknown_08515684[] = INCBIN_U16("data/tilesets/secondary/rustboro/anim/0/5.4bpp"); + +const u16 gUnknown_08515704[] = INCBIN_U16("data/tilesets/secondary/rustboro/anim/0/6.4bpp"); + +const u16 gUnknown_08515784[] = INCBIN_U16("data/tilesets/secondary/rustboro/anim/0/7.4bpp"); + +u16 *const gTilesetAnims_RustboroVDests0[] = { + (u16 *)(BG_VRAM + 0x5000), + (u16 *)(BG_VRAM + 0x5080), + (u16 *)(BG_VRAM + 0x5100), + (u16 *)(BG_VRAM + 0x5180), + (u16 *)(BG_VRAM + 0x5200), + (u16 *)(BG_VRAM + 0x5280), + (u16 *)(BG_VRAM + 0x5300), + (u16 *)(BG_VRAM + 0x5380) +}; + +const u16 *const gTilesetAnims_Rustboro0[] = { + gUnknown_08515404, + gUnknown_08515484, + gUnknown_08515504, + gUnknown_08515584, + gUnknown_08515604, + gUnknown_08515684, + gUnknown_08515704, + gUnknown_08515784 +}; + +const u16 gUnknown_08515844[] = INCBIN_U16("data/tilesets/secondary/rustboro/anim/1/0.4bpp"); + +const u16 gUnknown_085158C4[] = INCBIN_U16("data/tilesets/secondary/rustboro/anim/1/1.4bpp"); + +const u16 tileset_anims_space_2[16] = {}; + +const u16 *const gTilesetAnims_Rustboro1[] = { + gUnknown_08515844, + gUnknown_085158C4 +}; + +const u16 gUnknown_0851596C[] = INCBIN_U16("data/tilesets/secondary/cave/anim/0.4bpp"); + +const u16 gUnknown_085159EC[] = INCBIN_U16("data/tilesets/secondary/cave/anim/1.4bpp"); + +const u16 gUnknown_08515A6C[] = INCBIN_U16("data/tilesets/secondary/cave/anim/2.4bpp"); + +const u16 gUnknown_08515AEC[] = INCBIN_U16("data/tilesets/secondary/cave/anim/3.4bpp"); + +const u16 gUnknown_08515B6C[] = INCBIN_U16("data/tilesets/secondary/cave/anim/unused/0.4bpp"); + +const u16 gUnknown_08515BEC[] = INCBIN_U16("data/tilesets/secondary/cave/anim/unused/1.4bpp"); + +const u16 gUnknown_08515C6C[] = INCBIN_U16("data/tilesets/secondary/cave/anim/unused/2.4bpp"); + +const u16 gUnknown_08515CEC[] = INCBIN_U16("data/tilesets/secondary/cave/anim/unused/3.4bpp"); + +const u16 tileset_anims_space_3[16] = {}; + +const u16 *const gTilesetAnims_Lavaridge1_Cave0[] = { + gUnknown_0851596C, + gUnknown_085159EC, + gUnknown_08515A6C, + gUnknown_08515AEC +}; + +const u16 gUnknown_08515D9C[] = INCBIN_U16("data/tilesets/secondary/ever_grande/anim/0.4bpp"); + +const u16 gUnknown_08515E1C[] = INCBIN_U16("data/tilesets/secondary/ever_grande/anim/1.4bpp"); + +const u16 gUnknown_08515E9C[] = INCBIN_U16("data/tilesets/secondary/ever_grande/anim/2.4bpp"); + +const u16 gUnknown_08515F1C[] = INCBIN_U16("data/tilesets/secondary/ever_grande/anim/3.4bpp"); + +const u16 gUnknown_08515F9C[] = INCBIN_U16("data/tilesets/secondary/ever_grande/anim/4.4bpp"); + +const u16 gUnknown_0851601C[] = INCBIN_U16("data/tilesets/secondary/ever_grande/anim/5.4bpp"); + +const u16 gUnknown_0851609C[] = INCBIN_U16("data/tilesets/secondary/ever_grande/anim/6.4bpp"); + +const u16 gUnknown_0851611C[] = INCBIN_U16("data/tilesets/secondary/ever_grande/anim/7.4bpp"); + +const u16 tileset_anims_space_4[16] = {}; + +u16 *const gTilesetAnims_EverGrandeVDests0[] = { + (u16 *)(BG_VRAM + 0x5c00), + (u16 *)(BG_VRAM + 0x5c80), + (u16 *)(BG_VRAM + 0x5d00), + (u16 *)(BG_VRAM + 0x5d80), + (u16 *)(BG_VRAM + 0x5e00), + (u16 *)(BG_VRAM + 0x5e80), + (u16 *)(BG_VRAM + 0x5f00), + (u16 *)(BG_VRAM + 0x5f80) +}; + +const u16 *const gTilesetAnims_EverGrande0[] = { + gUnknown_08515D9C, + gUnknown_08515E1C, + gUnknown_08515E9C, + gUnknown_08515F1C, + gUnknown_08515F9C, + gUnknown_0851601C, + gUnknown_0851609C, + gUnknown_0851611C +}; + +const u16 gUnknown_085161FC[] = INCBIN_U16("data/tilesets/secondary/dewford/anim/0.4bpp"); + +const u16 gUnknown_085162BC[] = INCBIN_U16("data/tilesets/secondary/dewford/anim/1.4bpp"); + +const u16 gUnknown_0851637C[] = INCBIN_U16("data/tilesets/secondary/dewford/anim/2.4bpp"); + +const u16 gUnknown_0851643C[] = INCBIN_U16("data/tilesets/secondary/dewford/anim/3.4bpp"); + +const u16 *const gTilesetAnims_Dewford0[] = { + gUnknown_085161FC, + gUnknown_085162BC, + gUnknown_0851637C, + gUnknown_0851643C +}; + +const u16 gUnknown_0851650C[] = INCBIN_U16("data/tilesets/secondary/battle_frontier_outside_west/anim/0.4bpp"); + +const u16 gUnknown_085165CC[] = INCBIN_U16("data/tilesets/secondary/battle_frontier_outside_west/anim/1.4bpp"); + +const u16 gUnknown_0851668C[] = INCBIN_U16("data/tilesets/secondary/battle_frontier_outside_west/anim/2.4bpp"); + +const u16 gUnknown_0851674C[] = INCBIN_U16("data/tilesets/secondary/battle_frontier_outside_west/anim/3.4bpp"); + +const u16 *const gTilesetAnims_BattleFrontierOutsideWest0[] = { + gUnknown_0851650C, + gUnknown_085165CC, + gUnknown_0851668C, + gUnknown_0851674C +}; + +const u16 gUnknown_0851681C[] = INCBIN_U16("data/tilesets/secondary/battle_frontier_outside_east/anim/0.4bpp"); + +const u16 gUnknown_085168DC[] = INCBIN_U16("data/tilesets/secondary/battle_frontier_outside_east/anim/1.4bpp"); + +const u16 gUnknown_0851699C[] = INCBIN_U16("data/tilesets/secondary/battle_frontier_outside_east/anim/2.4bpp"); + +const u16 gUnknown_08516A5C[] = INCBIN_U16("data/tilesets/secondary/battle_frontier_outside_east/anim/3.4bpp"); + +const u16 *const gTilesetAnims_BattleFrontierOutsideEast0[] = { + gUnknown_0851681C, + gUnknown_085168DC, + gUnknown_0851699C, + gUnknown_08516A5C +}; + +const u16 gUnknown_08516B2C[] = INCBIN_U16("data/tilesets/secondary/slateport/anim/0.4bpp"); + +const u16 gUnknown_08516BAC[] = INCBIN_U16("data/tilesets/secondary/slateport/anim/1.4bpp"); + +const u16 gUnknown_08516C2C[] = INCBIN_U16("data/tilesets/secondary/slateport/anim/2.4bpp"); + +const u16 gUnknown_08516CAC[] = INCBIN_U16("data/tilesets/secondary/slateport/anim/3.4bpp"); + +const u16 *const gTilesetAnims_Slateport0[] = { + gUnknown_08516B2C, + gUnknown_08516BAC, + gUnknown_08516C2C, + gUnknown_08516CAC +}; + +const u16 gUnknown_08516D3C[] = INCBIN_U16("data/tilesets/primary/building/anim/0.4bpp"); + +const u16 gUnknown_08516DBC[] = INCBIN_U16("data/tilesets/primary/building/anim/1.4bpp"); + +const u16 *const gTilesetAnims_InsideBuilding0[] = { + gUnknown_08516D3C, + gUnknown_08516DBC +}; + +const u16 gUnknown_08516E44[] = INCBIN_U16("data/tilesets/secondary/sootopolis_gym/anim/0/0.4bpp"); + +const u16 gUnknown_08516FC4[] = INCBIN_U16("data/tilesets/secondary/sootopolis_gym/anim/0/1.4bpp"); + +const u16 gUnknown_08517144[] = INCBIN_U16("data/tilesets/secondary/sootopolis_gym/anim/0/2.4bpp"); + +const u16 gUnknown_085172C4[] = INCBIN_U16("data/tilesets/secondary/sootopolis_gym/anim/1/0.4bpp"); + +const u16 gUnknown_08517544[] = INCBIN_U16("data/tilesets/secondary/sootopolis_gym/anim/1/1.4bpp"); + +const u16 gUnknown_085177C4[] = INCBIN_U16("data/tilesets/secondary/sootopolis_gym/anim/1/2.4bpp"); + +const u16 *const gTilesetAnims_SootopolisGym0[] = { + gUnknown_08516E44, + gUnknown_08516FC4, + gUnknown_08517144 +}; + +const u16 *const gTilesetAnims_SootopolisGym1[] = { + gUnknown_085172C4, + gUnknown_08517544, + gUnknown_085177C4 +}; + +const u16 gUnknown_08517A5C[] = INCBIN_U16("data/tilesets/secondary/elite_four/anim/1/0.4bpp"); + +const u16 gUnknown_08517ADC[] = INCBIN_U16("data/tilesets/secondary/elite_four/anim/1/1.4bpp"); + +const u16 gUnknown_08517B5C[] = INCBIN_U16("data/tilesets/secondary/elite_four/anim/0/0.4bpp"); + +const u16 gUnknown_08517B7C[] = INCBIN_U16("data/tilesets/secondary/elite_four/anim/0/1.4bpp"); + +const u16 gUnknown_08517B9C[] = INCBIN_U16("data/tilesets/secondary/elite_four/anim/0/2.4bpp"); + +const u16 gUnknown_08517BBC[] = INCBIN_U16("data/tilesets/secondary/elite_four/anim/0/3.4bpp"); + +const u16 tileset_anims_space_5[16] = {}; + +const u16 *const gTilesetAnims_EliteFour1[] = { + gUnknown_08517B5C, + gUnknown_08517B7C, + gUnknown_08517B9C, + gUnknown_08517BBC +}; + +const u16 *const gTilesetAnims_EliteFour0[] = { + gUnknown_08517A5C, + gUnknown_08517ADC +}; + +const u16 gUnknown_08517C14[] = INCBIN_U16("data/tilesets/secondary/mauville_gym/anim/0.4bpp"); + +const u16 gUnknown_08517E14[] = INCBIN_U16("data/tilesets/secondary/mauville_gym/anim/1.4bpp"); + +const u16 tileset_anims_space_6[16] = {}; + +const u16 *const gTilesetAnims_MauvilleGym0[] = { + gUnknown_08517C14, + gUnknown_08517E14 +}; + +const u16 gUnknown_0851803C[] = INCBIN_U16("data/tilesets/secondary/bike_shop/anim/0.4bpp"); + +const u16 gUnknown_0851815C[] = INCBIN_U16("data/tilesets/secondary/bike_shop/anim/1.4bpp"); + +const u16 tileset_anims_space_7[16] = {}; + +const u16 *const gTilesetAnims_BikeShop0[] = { + gUnknown_0851803C, + gUnknown_0851815C +}; + +const u16 gUnknown_085182A4[] = INCBIN_U16("data/tilesets/secondary/sootopolis/anim/0.4bpp"); + +const u16 gUnknown_08518EA4[] = INCBIN_U16("data/tilesets/secondary/sootopolis/anim/1.4bpp"); + +const u16 gUnknown_08519AA4[] = INCBIN_U16("data/tilesets/secondary/sootopolis/anim/2.4bpp"); + +const u16 gUnknown_0851A6A4[] = INCBIN_U16("data/tilesets/secondary/sootopolis/anim/3.4bpp"); + +const u16 gUnknown_0851B2A4[] = INCBIN_U16("data/tilesets/secondary/sootopolis/anim/4.4bpp"); + +const u16 gUnknown_0851BEA4[] = INCBIN_U16("data/tilesets/secondary/sootopolis/anim/5.4bpp"); + +const u16 gUnknown_0851CAA4[] = INCBIN_U16("data/tilesets/secondary/sootopolis/anim/6.4bpp"); + +const u16 gUnknown_0851D6A4[] = INCBIN_U16("data/tilesets/secondary/sootopolis/anim/7.4bpp"); + +const u16 tileset_anims_space_8[16] = {}; + +const u16 gUnknown_0851E2C4[] = INCBIN_U16("data/tilesets/secondary/unused_1/0.4bpp"); + +const u16 gUnknown_0851EAC4[] = INCBIN_U16("data/tilesets/secondary/unused_1/1.4bpp"); + +const u16 gUnknown_0851F2C4[] = INCBIN_U16("data/tilesets/secondary/unused_1/2.4bpp"); + +const u16 gUnknown_0851FAC4[] = INCBIN_U16("data/tilesets/secondary/unused_1/3.4bpp"); + +const u16 *const gTilesetAnims_Sootopolis0[] = { + gUnknown_085182A4, + gUnknown_08518EA4, + gUnknown_08519AA4, + gUnknown_0851A6A4, + gUnknown_0851B2A4, + gUnknown_0851BEA4, + gUnknown_0851CAA4, + gUnknown_0851D6A4 +}; + +const u16 gUnknown_085202E4[] = INCBIN_U16("data/tilesets/secondary/battle_pyramid/anim/0/0.4bpp"); + +const u16 gUnknown_085203E4[] = INCBIN_U16("data/tilesets/secondary/battle_pyramid/anim/0/1.4bpp"); + +const u16 gUnknown_085204E4[] = INCBIN_U16("data/tilesets/secondary/battle_pyramid/anim/0/2.4bpp"); + +const u16 tileset_anims_space_9[16] = {}; + +const u16 gUnknown_08520604[] = INCBIN_U16("data/tilesets/secondary/battle_pyramid/anim/1/0.4bpp"); + +const u16 gUnknown_08520704[] = INCBIN_U16("data/tilesets/secondary/battle_pyramid/anim/1/1.4bpp"); + +const u16 gUnknown_08520804[] = INCBIN_U16("data/tilesets/secondary/battle_pyramid/anim/1/2.4bpp"); + +const u16 tileset_anims_space_10[7808] = {}; + +const u16 gUnknown_08524604[] = INCBIN_U16("data/tilesets/secondary/unused_2/0.4bpp"); + +const u16 tileset_anims_space_11[224] = {}; + +const u16 gUnknown_08524804[] = INCBIN_U16("data/tilesets/secondary/unused_2/1.4bpp"); + +const u16 *const gTilesetAnims_BattlePyramid0[] = { + gUnknown_085202E4, + gUnknown_085203E4, + gUnknown_085204E4 +}; + +const u16 *const gTilesetAnims_BattlePyramid1[] = { + gUnknown_08520604, + gUnknown_08520704, + gUnknown_08520804 +}; + +extern const u16 gUnknown_08D85640[]; +extern const u16 gUnknown_08D85660[]; +extern const u16 gUnknown_08D85680[]; +extern const u16 gUnknown_08D856A0[]; + +static const u16 *const gTilesetAnims_BattleDomePals0[] = { + gUnknown_08D85640, + gUnknown_08D85660, + gUnknown_08D85680, + gUnknown_08D856A0, +}; + +// .text + +static void ResetTilesetAnimBuffer(void) +{ + sTilesetDMA3TransferBufferSize = 0; + CpuFill32(0, sTilesetDMA3TransferBuffer, sizeof sTilesetDMA3TransferBuffer); +} + +static void AppendTilesetAnimToBuffer(const u16 *src, u16 *dest, u16 size) +{ + if (sTilesetDMA3TransferBufferSize < 20) + { + sTilesetDMA3TransferBuffer[sTilesetDMA3TransferBufferSize].src = src; + sTilesetDMA3TransferBuffer[sTilesetDMA3TransferBufferSize].dest = dest; + sTilesetDMA3TransferBuffer[sTilesetDMA3TransferBufferSize].size = size; + sTilesetDMA3TransferBufferSize ++; + } +} + +void TransferTilesetAnimsBuffer(void) +{ + int i; + + for (i = 0; i < sTilesetDMA3TransferBufferSize; i ++) + { + DmaCopy16(3, sTilesetDMA3TransferBuffer[i].src, sTilesetDMA3TransferBuffer[i].dest, sTilesetDMA3TransferBuffer[i].size); + } + sTilesetDMA3TransferBufferSize = 0; +} + +void cur_mapheader_run_tileset_funcs_after_some_cpuset(void) +{ + ResetTilesetAnimBuffer(); + cur_mapheader_run_tileset1_func(); + cur_mapheader_run_tileset2_func(); +} + +void sub_80A0A2C(void) +{ + cur_mapheader_run_tileset2_func(); +} + +void sub_80A0A38(void) +{ + ResetTilesetAnimBuffer(); + if (++sPrimaryTilesetCBCounter >= sPrimaryTilesetCBBufferSize) + sPrimaryTilesetCBCounter = 0; + if (++sSecondaryTilesetCBCounter >= sSecondaryTilesetCBBufferSize) + sSecondaryTilesetCBCounter = 0; + if (sPrimaryTilesetCB) + sPrimaryTilesetCB(sPrimaryTilesetCBCounter); + if (sSecondaryTilesetCB) + sSecondaryTilesetCB(sSecondaryTilesetCBCounter); +} + +static void cur_mapheader_run_tileset1_func(void) +{ + sPrimaryTilesetCBCounter = 0; + sPrimaryTilesetCBBufferSize = 0; + sPrimaryTilesetCB = NULL; + if (gMapHeader.mapData->primaryTileset && gMapHeader.mapData->primaryTileset->callback) + gMapHeader.mapData->primaryTileset->callback(); +} + +static void cur_mapheader_run_tileset2_func(void) +{ + sSecondaryTilesetCBCounter = 0; + sSecondaryTilesetCBBufferSize = 0; + sSecondaryTilesetCB = NULL; + if (gMapHeader.mapData->secondaryTileset && gMapHeader.mapData->secondaryTileset->callback) + gMapHeader.mapData->secondaryTileset->callback(); +} + +void TilesetCb_General(void) +{ + static void sub_80A0B70(u16); + + sPrimaryTilesetCBCounter = 0; + sPrimaryTilesetCBBufferSize = 0x100; + sPrimaryTilesetCB = sub_80A0B70; +} + +void TilesetCb_InsideBuilding(void) +{ + static void sub_80A0BB4(u16); + + sPrimaryTilesetCBCounter = 0; + sPrimaryTilesetCBBufferSize = 0x100; + sPrimaryTilesetCB = sub_80A0BB4; +} + +static void sub_80A0B70(u16 timer) +{ + static void sub_80A0BCC(u16); + static void sub_80A0BF4(u16); + static void sub_80A0C1C(u16); + static void sub_80A0C44(u16); + static void sub_80A12AC(u16); + + if ((timer & 0x0F) == 0) + sub_80A0BCC(timer >> 4); + if ((timer & 0x0F) == 1) + sub_80A0BF4(timer >> 4); + if ((timer & 0x0F) == 2) + sub_80A0C1C(timer >> 4); + if ((timer & 0x0F) == 3) + sub_80A0C44(timer >> 4); + if ((timer & 0x0F) == 4) + sub_80A12AC(timer >> 4); +} + +static void sub_80A0BB4(u16 timer) +{ + static void sub_80A1688(u16); + + if ((timer & 0x7) == 0) + sub_80A1688(timer >> 3); +} + +static void sub_80A0BCC(u16 timer) +{ + u16 idx; + + idx = timer % 4; + AppendTilesetAnimToBuffer(gTilesetAnims_General0[idx], (u16 *)(BG_VRAM + 0x3F80), 0x80); +} + +static void sub_80A0BF4(u16 timer) +{ + u8 idx; + + idx = timer % 8; + AppendTilesetAnimToBuffer(gTilesetAnims_General1[idx], (u16 *)(BG_VRAM + 0x3600), 0x3C0); +} + +static void sub_80A0C1C(u16 timer) +{ + u16 idx; + + idx = timer % 8; + AppendTilesetAnimToBuffer(gTilesetAnims_General2[idx], (u16 *)(BG_VRAM + 0x3a00), 0x140); +} + +static void sub_80A0C44(u16 timer) +{ + u16 idx; + + idx = timer % 4; + AppendTilesetAnimToBuffer(gTilesetAnims_General3[idx], (u16 *)(BG_VRAM + 0x3e00), 0xc0); +} + +void TilesetCb_Petalburg(void) +{ + sSecondaryTilesetCBCounter = 0; + sSecondaryTilesetCBBufferSize = sPrimaryTilesetCBBufferSize; + sSecondaryTilesetCB = NULL; +} + +void TilesetCb_Rustboro(void) +{ + static void sub_80A103C(u16); + + sSecondaryTilesetCBCounter = 0; + sSecondaryTilesetCBBufferSize = sPrimaryTilesetCBBufferSize; + sSecondaryTilesetCB = sub_80A103C; +} + +void TilesetCb_Dewford(void) +{ + static void sub_80A10B8(u16); + + sSecondaryTilesetCBCounter = 0; + sSecondaryTilesetCBBufferSize = sPrimaryTilesetCBBufferSize; + sSecondaryTilesetCB = sub_80A10B8; +} + +void TilesetCb_Slateport(void) +{ + static void sub_80A10D0(u16); + + sSecondaryTilesetCBCounter = 0; + sSecondaryTilesetCBBufferSize = sPrimaryTilesetCBBufferSize; + sSecondaryTilesetCB = sub_80A10D0; +} + +void TilesetCb_Mauville(void) +{ + static void sub_80A10E8(u16); + + sSecondaryTilesetCBCounter = sPrimaryTilesetCBCounter; + sSecondaryTilesetCBBufferSize = sPrimaryTilesetCBBufferSize; + sSecondaryTilesetCB = sub_80A10E8; +} + +void TilesetCb_Lavaridge(void) +{ + static void sub_80A115C(u16); + + sSecondaryTilesetCBCounter = 0; + sSecondaryTilesetCBBufferSize = sPrimaryTilesetCBBufferSize; + sSecondaryTilesetCB = sub_80A115C; +} + +void TilesetCb_Fallarbor(void) +{ + sSecondaryTilesetCBCounter = 0; + sSecondaryTilesetCBBufferSize = sPrimaryTilesetCBBufferSize; + sSecondaryTilesetCB = NULL; +} + +void TilesetCb_Fortree(void) +{ + sSecondaryTilesetCBCounter = 0; + sSecondaryTilesetCBBufferSize = sPrimaryTilesetCBBufferSize; + sSecondaryTilesetCB = NULL; +} + +void TilesetCb_Lilycove(void) +{ + sSecondaryTilesetCBCounter = 0; + sSecondaryTilesetCBBufferSize = sPrimaryTilesetCBBufferSize; + sSecondaryTilesetCB = NULL; +} + +void TilesetCb_Mossdeep(void) +{ + sSecondaryTilesetCBCounter = 0; + sSecondaryTilesetCBBufferSize = sPrimaryTilesetCBBufferSize; + sSecondaryTilesetCB = NULL; +} + +void TilesetCb_EverGrande(void) +{ + static void sub_80A1188(u16); + + sSecondaryTilesetCBCounter = 0; + sSecondaryTilesetCBBufferSize = sPrimaryTilesetCBBufferSize; + sSecondaryTilesetCB = sub_80A1188; +} + +void TilesetCb_Pacifidlog(void) +{ + static void sub_80A11FC(u16); + + sSecondaryTilesetCBCounter = sPrimaryTilesetCBCounter; + sSecondaryTilesetCBBufferSize = sPrimaryTilesetCBBufferSize; + sSecondaryTilesetCB = sub_80A11FC; +} + +void TilesetCb_Sootopolis(void) +{ + static void sub_80A122C(u16); + + sSecondaryTilesetCBCounter = 0; + sSecondaryTilesetCBBufferSize = sPrimaryTilesetCBBufferSize; + sSecondaryTilesetCB = sub_80A122C; +} + +void TilesetCb_BattleFrontierOutsideWest(void) +{ + static void sub_80A127C(u16); + + sSecondaryTilesetCBCounter = 0; + sSecondaryTilesetCBBufferSize = sPrimaryTilesetCBBufferSize; + sSecondaryTilesetCB = sub_80A127C; +} + +void TilesetCb_BattleFrontierOutsideEast(void) +{ + static void sub_80A1294(u16); + + sSecondaryTilesetCBCounter = 0; + sSecondaryTilesetCBBufferSize = sPrimaryTilesetCBBufferSize; + sSecondaryTilesetCB = sub_80A1294; +} + +void TilesetCb_Underwater(void) +{ + static void sub_80A1244(u16); + + sSecondaryTilesetCBCounter = 0; + sSecondaryTilesetCBBufferSize = 128; + sSecondaryTilesetCB = sub_80A1244; +} + +void TilesetCb_SootopolisGym(void) +{ + static void sub_80A15D8(u16); + + sSecondaryTilesetCBCounter = 0; + sSecondaryTilesetCBBufferSize = 240; + sSecondaryTilesetCB = sub_80A15D8; +} + +void TilesetCb_Cave(void) +{ + static void sub_80A1260(u16); + + sSecondaryTilesetCBCounter = 0; + sSecondaryTilesetCBBufferSize = sPrimaryTilesetCBBufferSize; + sSecondaryTilesetCB = sub_80A1260; +} + +void TilesetCb_EliteFour(void) +{ + static void sub_80A15F0(u16); + + sSecondaryTilesetCBCounter = 0; + sSecondaryTilesetCBBufferSize = 128; + sSecondaryTilesetCB = sub_80A15F0; +} + +void TilesetCb_MauvilleGym(void) +{ + static void sub_80A15C0(u16); + + sSecondaryTilesetCBCounter = 0; + sSecondaryTilesetCBBufferSize = sPrimaryTilesetCBBufferSize; + sSecondaryTilesetCB = sub_80A15C0; +} + +void TilesetCb_BikeShop(void) +{ + static void sub_80A161C(u16); + + sSecondaryTilesetCBCounter = 0; + sSecondaryTilesetCBBufferSize = sPrimaryTilesetCBBufferSize; + sSecondaryTilesetCB = sub_80A161C; +} + +void TilesetCb_BattlePyramid(void) +{ + static void sub_80A1634(u16); + + sSecondaryTilesetCBCounter = 0; + sSecondaryTilesetCBBufferSize = sPrimaryTilesetCBBufferSize; + sSecondaryTilesetCB = sub_80A1634; +} + +void TilesetCb_BattleDome(void) +{ + static void sub_80A1658(u16); + + sSecondaryTilesetCBCounter = 0; + sSecondaryTilesetCBBufferSize = sPrimaryTilesetCBBufferSize; + sSecondaryTilesetCB = sub_80A1658; +} + +static void sub_80A103C(u16 timer) +{ + static void sub_80A1434(u16, u8); + static void sub_80A1470(u16); + + if ((timer & 0x07) == 0) + { + sub_80A1434(timer >> 3, 0); + sub_80A1470(timer >> 3); + } + if ((timer & 0x07) == 1) + sub_80A1434(timer >> 3, 1); + if ((timer & 0x07) == 2) + sub_80A1434(timer >> 3, 2); + if ((timer & 0x07) == 3) + sub_80A1434(timer >> 3, 3); + if ((timer & 0x07) == 4) + sub_80A1434(timer >> 3, 4); + if ((timer & 0x07) == 5) + sub_80A1434(timer >> 3, 5); + if ((timer & 0x07) == 6) + sub_80A1434(timer >> 3, 6); + if ((timer & 0x07) == 7) + sub_80A1434(timer >> 3, 7); +} + +static void sub_80A10B8(u16 timer) +{ + static void sub_80A1520(u16); + + if ((timer & 7) == 0) + sub_80A1520(timer >> 3); +} + +static void sub_80A10D0(u16 timer) +{ + static void sub_80A1598(u16); + + if ((timer & 15) == 0) + sub_80A1598(timer >> 4); +} + +static void sub_80A10E8(u16 timer) +{ + static void sub_80A1394(u16, u8); + + if ((timer & 0x07) == 0) + sub_80A1394(timer >> 3, 0); + if ((timer & 0x07) == 1) + sub_80A1394(timer >> 3, 1); + if ((timer & 0x07) == 2) + sub_80A1394(timer >> 3, 2); + if ((timer & 0x07) == 3) + sub_80A1394(timer >> 3, 3); + if ((timer & 0x07) == 4) + sub_80A1394(timer >> 3, 4); + if ((timer & 0x07) == 5) + sub_80A1394(timer >> 3, 5); + if ((timer & 0x07) == 6) + sub_80A1394(timer >> 3, 6); + if ((timer & 0x07) == 7) + sub_80A1394(timer >> 3, 7); +} + +static void sub_80A115C(u16 timer) +{ + static void sub_80A12D4(u8); + static void sub_80A1498(u16); + + if ((timer & 0x0F) == 0) + sub_80A12D4(timer >> 4); + if ((timer & 0x0F) == 1) + sub_80A1498(timer >> 4); +} + +static void sub_80A1188(u16 timer) +{ + static void sub_80A14C0(u16, u8); + + if ((timer & 0x07) == 0) + sub_80A14C0(timer >> 3, 0); + if ((timer & 0x07) == 1) + sub_80A14C0(timer >> 3, 1); + if ((timer & 0x07) == 2) + sub_80A14C0(timer >> 3, 2); + if ((timer & 0x07) == 3) + sub_80A14C0(timer >> 3, 3); + if ((timer & 0x07) == 4) + sub_80A14C0(timer >> 3, 4); + if ((timer & 0x07) == 5) + sub_80A14C0(timer >> 3, 5); + if ((timer & 0x07) == 6) + sub_80A14C0(timer >> 3, 6); + if ((timer & 0x07) == 7) + sub_80A14C0(timer >> 3, 7); +} + +static void sub_80A11FC(u16 timer) +{ + static void sub_80A131C(u8); + static void sub_80A136C(u8); + + if ((timer & 0x0F) == 0) + sub_80A131C(timer >> 4); + if ((timer & 0x0F) == 1) + sub_80A136C(timer >> 4); +} + +static void sub_80A122C(u16 timer) +{ + static void sub_80A1798(u16); + + if ((timer & 0x0F) == 0) + sub_80A1798(timer >> 4); +} + +static void sub_80A1244(u16 timer) +{ + static void sub_80A1344(u8); + + if ((timer & 0x0F) == 0) + sub_80A1344(timer >> 4); +} + +static void sub_80A1260(u16 timer) +{ + static void sub_80A14F8(u16); + + if ((timer & 0x0F) == 1) + sub_80A14F8(timer >> 4); +} + +static void sub_80A127C(u16 timer) +{ + static void sub_80A1548(u16); + + if ((timer & 0x07) == 0) + sub_80A1548(timer >> 3); +} + +static void sub_80A1294(u16 timer) +{ + static void sub_80A1570(u16); + + if ((timer & 0x07) == 0) + sub_80A1570(timer >> 3); +} + +static void sub_80A12AC(u16 timer) +{ + u16 idx; + + idx = timer % 4; + AppendTilesetAnimToBuffer(gTilesetAnims_General4[idx], (u16 *)(BG_VRAM + 0x3c00), 0x140); +} + +static void sub_80A12D4(u8 timer) +{ + u8 idx; + + idx = timer % 4; + AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge0[idx], (u16 *)(BG_VRAM + 0x6400), 0x80); + + idx = (timer + 2) % 4; + AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge0[idx], (u16 *)(BG_VRAM + 0x6480), 0x80); +} + +static void sub_80A131C(u8 timer) +{ + u8 idx; + + idx = timer % 4; + AppendTilesetAnimToBuffer(gTilesetAnims_Pacifidlog0[idx], (u16 *)(BG_VRAM + 0x7a00), 0x3C0); +} + +static void sub_80A1344(u8 timer) +{ + u8 idx; + + idx = timer % 4; + AppendTilesetAnimToBuffer(gTilesetAnims_Underwater0[idx], (u16 *)(BG_VRAM + 0x7e00), 0x80); +} + +static void sub_80A136C(u8 timer) +{ + u8 idx; + + idx = timer % 8; + AppendTilesetAnimToBuffer(gTilesetAnims_Pacifidlog1[idx], (u16 *)(BG_VRAM + 0x7e00), 0x100); +} + +static void sub_80A1394(u16 timer_div, u8 timer_mod) +{ + timer_div -= timer_mod; + if (timer_div < 12) // almost certainly a typo + { + timer_div %= 12; + AppendTilesetAnimToBuffer(gTilesetAnims_Mauville0a[timer_div], gTilesetAnims_MauvilleVDests0[timer_mod], 0x80); + AppendTilesetAnimToBuffer(gTilesetAnims_Mauville0b[timer_div], gTilesetAnims_MauvilleVDests1[timer_mod], 0x80); + } + else + { + timer_div %= 4; + AppendTilesetAnimToBuffer(gTilesetAnims_Mauville1a[timer_div], gTilesetAnims_MauvilleVDests0[timer_mod], 0x80); + AppendTilesetAnimToBuffer(gTilesetAnims_Mauville1b[timer_div], gTilesetAnims_MauvilleVDests1[timer_mod], 0x80); + } +} + +static void sub_80A1434(u16 timer_div, u8 timer_mod) +{ + timer_div -= timer_mod; + timer_div %= 8; + if (gTilesetAnims_Rustboro0[timer_div]) + AppendTilesetAnimToBuffer(gTilesetAnims_Rustboro0[timer_div], gTilesetAnims_RustboroVDests0[timer_mod], 0x80); +} + +static void sub_80A1470(u16 timer) +{ + u16 idx; + + idx = timer % 2; + AppendTilesetAnimToBuffer(gTilesetAnims_Rustboro1[idx], (u16 *)(BG_VRAM + 0x7800), 0x80); +} + +static void sub_80A1498(u16 timer) +{ + u16 idx; + + idx = timer % 4; + AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge1_Cave0[idx], (u16 *)(BG_VRAM + 0x5400), 0x80); +} + +static void sub_80A14C0(u16 timer_div, u8 timer_mod) +{ + timer_div -= timer_mod; + timer_div %= 8; + + AppendTilesetAnimToBuffer(gTilesetAnims_EverGrande0[timer_div], gTilesetAnims_EverGrandeVDests0[timer_mod], 0x80); +} + +static void sub_80A14F8(u16 timer) +{ + u16 idx; + + idx = timer % 4; + AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge1_Cave0[idx], (u16 *)(BG_VRAM + 0x7400), 0x80); +} + +static void sub_80A1520(u16 timer) +{ + u16 idx; + + idx = timer % 4; + AppendTilesetAnimToBuffer(gTilesetAnims_Dewford0[idx], (u16 *)(BG_VRAM + 0x5540), 0xC0); +} + +static void sub_80A1548(u16 timer) +{ + u16 idx; + + idx = timer % 4; + AppendTilesetAnimToBuffer(gTilesetAnims_BattleFrontierOutsideWest0[idx], (u16 *)(BG_VRAM + 0x5b40), 0xC0); +} + +static void sub_80A1570(u16 timer) +{ + u16 idx; + + idx = timer % 4; + AppendTilesetAnimToBuffer(gTilesetAnims_BattleFrontierOutsideEast0[idx], (u16 *)(BG_VRAM + 0x5b40), 0xC0); +} + +static void sub_80A1598(u16 timer) +{ + u16 idx; + + idx = timer % 4; + AppendTilesetAnimToBuffer(gTilesetAnims_Slateport0[idx], (u16 *)(BG_VRAM + 0x5c00), 0x80); +} + +static void sub_80A15C0(u16 timer) +{ + static void sub_80A1748(u16); + + if ((timer & 1) == 0) + sub_80A1748(timer >> 1); +} + +static void sub_80A15D8(u16 timer) +{ + static void sub_80A16B0(u16); + + if ((timer & 7) == 0) + sub_80A16B0(timer >> 3); +} + +static void sub_80A15F0(u16 timer) +{ + static void sub_80A1720(u16); + static void sub_80A16F8(u16); + + if ((timer & 0x3f) == 1) + sub_80A1720(timer >> 6); + if ((timer & 0x07) == 1) + sub_80A16F8(timer >> 3); +} +static void sub_80A161C(u16 timer) +{ + static void sub_80A1770(u16); + + if ((timer & 3) == 0) + sub_80A1770(timer >> 2); +} + +static void sub_80A1634(u16 timer) +{ + static void sub_80A17C0(u16); + static void sub_80A17EC(u16); + + if ((timer & 7) == 0) + { + sub_80A17C0(timer >> 3); + sub_80A17EC(timer >> 3); + } +} + +static void sub_80A1658(u16 timer) +{ + static void sub_80A1818(u16); + + if ((timer & 3) == 0) + sub_80A1818(timer >> 2); +} + +static void sub_80A1670(u16 timer) +{ + static void sub_80A1884(u16); + + if ((timer & 3) == 0) + sub_80A1884(timer >> 2); +} + +static void sub_80A1688(u16 timer) +{ + u16 idx; + + idx = timer % 2; + AppendTilesetAnimToBuffer(gTilesetAnims_InsideBuilding0[idx], (u16 *)(BG_VRAM + 0x3e00), 0x80); +} + +static void sub_80A16B0(u16 timer) +{ + u16 idx; + + idx = timer % 3; + AppendTilesetAnimToBuffer(gTilesetAnims_SootopolisGym0[idx], (u16 *)(BG_VRAM + 0x7e00), 0x180); + AppendTilesetAnimToBuffer(gTilesetAnims_SootopolisGym1[idx], (u16 *)(BG_VRAM + 0x7a00), 0x280); +} + +static void sub_80A16F8(u16 timer) +{ + u16 idx; + + idx = timer % 4; + AppendTilesetAnimToBuffer(gTilesetAnims_EliteFour1[idx], (u16 *)(BG_VRAM + 0x7f00), 0x20); +} + +static void sub_80A1720(u16 timer) +{ + u16 idx; + + idx = timer % 2; + AppendTilesetAnimToBuffer(gTilesetAnims_EliteFour0[idx], (u16 *)(BG_VRAM + 0x7c00), 0x80); +} + +static void sub_80A1748(u16 timer) +{ + u16 idx; + + idx = timer % 2; + AppendTilesetAnimToBuffer(gTilesetAnims_MauvilleGym0[idx], (u16 *)(BG_VRAM + 0x5200), 0x200); +} + +static void sub_80A1770(u16 timer) +{ + u16 idx; + + idx = timer % 2; + AppendTilesetAnimToBuffer(gTilesetAnims_BikeShop0[idx], (u16 *)(BG_VRAM + 0x7e00), 0x120); +} + +static void sub_80A1798(u16 timer) +{ + u16 idx; + + idx = timer % 8; + AppendTilesetAnimToBuffer(gTilesetAnims_Sootopolis0[idx], (u16 *)(BG_VRAM + 0x5e00), 0xc00); +} + +static void sub_80A17C0(u16 timer) +{ + u16 idx; + + idx = timer % 3; + AppendTilesetAnimToBuffer(gTilesetAnims_BattlePyramid0[idx], (u16 *)(BG_VRAM + 0x52e0), 0x100); +} + +static void sub_80A17EC(u16 timer) +{ + u16 idx; + + idx = timer % 3; + AppendTilesetAnimToBuffer(gTilesetAnims_BattlePyramid1[idx], (u16 *)(BG_VRAM + 0x50e0), 0x100); +} + +static void sub_80A1818(u16 a1) +{ + CpuCopy16(gTilesetAnims_BattleDomePals0[a1 & 0x3], gPlttBufferUnfaded + 0x80, 32); + BlendPalette(0x80, 0x10, gPaletteFade.y, gPaletteFade.blendColor & 0x7FFF); + if ((u8)FindTaskIdByFunc(sub_8149DFC) != 0xFF ) + { + sSecondaryTilesetCB = sub_80A1670; + sSecondaryTilesetCBBufferSize = 0x20; + } +} + +static void sub_80A1884(u16 a1) +{ + CpuCopy16(gTilesetAnims_BattleDomePals0[a1 & 0x3], gPlttBufferUnfaded + 0x80, 32); + if ((u8)FindTaskIdByFunc(sub_8149DFC) == 0xFF ) + { + BlendPalette(0x80, 0x10, gPaletteFade.y, gPaletteFade.blendColor & 0x7FFF); + if (!--sSecondaryTilesetCBBufferSize) + sSecondaryTilesetCB = NULL; + } +} diff --git a/src/trig.c b/src/trig.c index e16a69e63..c2bca3059 100644 --- a/src/trig.c +++ b/src/trig.c @@ -1,12 +1,6 @@ #include "global.h" #include "trig.h" -// Converts a number to Q8.8 fixed-point format -#define Q_8_8(n) ((s16)((n) * 256)) - -// Converts a number to Q4.12 fixed-point format -#define Q_4_12(n) ((s16)((n) * 4096)) - // Values of sin(x*(π/128)) as Q8.8 fixed-point numbers from x = 0 to x = 319 const s16 gSineTable[] = { diff --git a/src/unk_text_util_2.c b/src/unk_text_util_2.c new file mode 100644 index 000000000..d88af611f --- /dev/null +++ b/src/unk_text_util_2.c @@ -0,0 +1,219 @@ +#include "global.h" +#include "main.h" +#include "window.h" +#include "text.h" +#include "sound.h" + +static const u8 gUnknown_08616124[] = {1, 2, 4}; +static const u16 gFont6BrailleGlyphs[] = INCBIN_U16("data/graphics/fonts/font6.fwjpnfont"); + +static void DecompressGlyphFont6(u16); + +u16 Font6Func(struct TextPrinter *textPrinter) +{ + u16 char_; + struct TextPrinterSubStruct *sub; + + sub = &textPrinter->sub_union.sub; + switch (textPrinter->state) + { + case 0: + if (gMain.heldKeys & (A_BUTTON | B_BUTTON) && sub->font_type_upper) + { + textPrinter->delayCounter = 0; + } + if (textPrinter->delayCounter && textPrinter->text_speed) + { + textPrinter->delayCounter --; + if (gTextFlags.flag_0 && gMain.newKeys & (A_BUTTON | B_BUTTON)) + { + sub->font_type_upper = TRUE; + textPrinter->delayCounter = 0; + } + return 3; + } + if (gTextFlags.flag_2) + { + textPrinter->delayCounter = 3; + } + else + { + textPrinter->delayCounter = textPrinter->text_speed; + } + char_ = *textPrinter->subPrinter.current_text_offset ++; + switch (char_) + { + case EOS: + return 1; + case CHAR_NEWLINE: + textPrinter->subPrinter.currentX = textPrinter->subPrinter.x; + textPrinter->subPrinter.currentY += gFonts[textPrinter->subPrinter.fontId].maxLetterHeight + textPrinter->subPrinter.lineSpacing; + return 2; + case PLACEHOLDER_BEGIN: + textPrinter->subPrinter.current_text_offset ++; + return 2; + case EXT_CTRL_CODE_BEGIN: + char_ = *textPrinter->subPrinter.current_text_offset ++; + switch (char_) + { + case 1: + textPrinter->subPrinter.fontColor_h = *textPrinter->subPrinter.current_text_offset ++; + GenerateFontHalfRowLookupTable(textPrinter->subPrinter.fontColor_h, textPrinter->subPrinter.bgColor, textPrinter->subPrinter.shadowColor); + return 2; + case 2: + textPrinter->subPrinter.bgColor = *textPrinter->subPrinter.current_text_offset ++; + GenerateFontHalfRowLookupTable(textPrinter->subPrinter.fontColor_h, textPrinter->subPrinter.bgColor, textPrinter->subPrinter.shadowColor); + return 2; + case 3: + textPrinter->subPrinter.shadowColor = *textPrinter->subPrinter.current_text_offset ++; + GenerateFontHalfRowLookupTable(textPrinter->subPrinter.fontColor_h, textPrinter->subPrinter.bgColor, textPrinter->subPrinter.shadowColor); + return 2; + case 4: + textPrinter->subPrinter.fontColor_h = *textPrinter->subPrinter.current_text_offset; + textPrinter->subPrinter.bgColor = *++ textPrinter->subPrinter.current_text_offset; + textPrinter->subPrinter.shadowColor = *++ textPrinter->subPrinter.current_text_offset; + textPrinter->subPrinter.current_text_offset ++; + + GenerateFontHalfRowLookupTable(textPrinter->subPrinter.fontColor_h, textPrinter->subPrinter.bgColor, textPrinter->subPrinter.shadowColor); + return 2; + case 5: + textPrinter->subPrinter.current_text_offset ++; + return 2; + case 6: + sub->font_type = *textPrinter->subPrinter.current_text_offset; + textPrinter->subPrinter.current_text_offset ++; + return 2; + case 7: + return 2; + case 8: + textPrinter->delayCounter = *textPrinter->subPrinter.current_text_offset ++; + textPrinter->state = 6; + return 2; + case 9: + textPrinter->state = 1; + if (gTextFlags.flag_2) + { + sub->frames_visible_counter = 0; + } + return 3; + case 10: + textPrinter->state = 5; + return 3; + case 11: + case 16: + textPrinter->subPrinter.current_text_offset += 2; + return 2; + case 12: + char_ = *++textPrinter->subPrinter.current_text_offset; + break; + case 13: + textPrinter->subPrinter.currentX = textPrinter->subPrinter.x + *textPrinter->subPrinter.current_text_offset ++; + return 2; + case 14: + textPrinter->subPrinter.currentY = textPrinter->subPrinter.y + *textPrinter->subPrinter.current_text_offset ++; + return 2; + case 15: + FillWindowPixelBuffer(textPrinter->subPrinter.windowId, textPrinter->subPrinter.bgColor | (textPrinter->subPrinter.bgColor << 4)); + return 2; + } + break; + case CHAR_PROMPT_CLEAR: + textPrinter->state = 2; + TextPrinterInitDownArrowCounters(textPrinter); + return 3; + case CHAR_PROMPT_SCROLL: + textPrinter->state = 3; + TextPrinterInitDownArrowCounters(textPrinter); + return 3; + case 0xF9: + char_ = *textPrinter->subPrinter.current_text_offset ++ | 0x100; + break; + case 0xF8: + textPrinter->subPrinter.current_text_offset ++; + return 0; + } + DecompressGlyphFont6(char_); + CopyGlyphToWindow(textPrinter); + textPrinter->subPrinter.currentX += gUnknown_03002F90[0x80] + textPrinter->subPrinter.letterSpacing; + return 0; + case 1: + if (TextPrinterWait(textPrinter)) + { + textPrinter->state = 0; + } + return 3; + case 2: + if (TextPrinterWaitWithDownArrow(textPrinter)) + { + FillWindowPixelBuffer(textPrinter->subPrinter.windowId, textPrinter->subPrinter.bgColor | (textPrinter->subPrinter.bgColor << 4)); + textPrinter->subPrinter.currentX = textPrinter->subPrinter.x; + textPrinter->subPrinter.currentY = textPrinter->subPrinter.y; + textPrinter->state = 0; + } + return 3; + case 3: + if (TextPrinterWaitWithDownArrow(textPrinter)) + { + TextPrinterClearDownArrow(textPrinter); + textPrinter->scrollDistance = gFonts[textPrinter->subPrinter.fontId].maxLetterHeight + textPrinter->subPrinter.lineSpacing; + textPrinter->subPrinter.currentX = textPrinter->subPrinter.x; + textPrinter->state = 4; + } + return 3; + case 4: + if (textPrinter->scrollDistance) + { + if (textPrinter->scrollDistance < gUnknown_08616124[gSaveBlock2Ptr->optionsTextSpeed]) + { + ScrollWindow(textPrinter->subPrinter.windowId, 0, textPrinter->scrollDistance, textPrinter->subPrinter.bgColor | (textPrinter->subPrinter.bgColor << 4)); + textPrinter->scrollDistance = 0; + } + else + { + ScrollWindow(textPrinter->subPrinter.windowId, 0, gUnknown_08616124[gSaveBlock2Ptr->optionsTextSpeed], textPrinter->subPrinter.bgColor | (textPrinter->subPrinter.bgColor << 4)); + textPrinter->scrollDistance -= gUnknown_08616124[gSaveBlock2Ptr->optionsTextSpeed]; + } + CopyWindowToVram(textPrinter->subPrinter.windowId, 2); + } + else + { + textPrinter->state = 0; + } + return 3; + case 5: + if (!IsSEPlaying()) + { + textPrinter->state = 0; + } + return 3; + case 6: + if (textPrinter->delayCounter) + { + textPrinter->delayCounter --; + } + else + { + textPrinter->state = 0; + } + return 3; + } + return 1; +} + +static void DecompressGlyphFont6(u16 glyph) +{ + const u16 *glyphs; + + glyphs = gFont6BrailleGlyphs + 0x100 * (glyph / 8) + 0x10 * (glyph % 8); + DecompressGlyphTile(glyphs, (u16 *)gUnknown_03002F90); + DecompressGlyphTile(glyphs + 0x8, (u16 *)(gUnknown_03002F90 + 0x20)); + DecompressGlyphTile(glyphs + 0x80, (u16 *)(gUnknown_03002F90 + 0x40)); + DecompressGlyphTile(glyphs + 0x88, (u16 *)(gUnknown_03002F90 + 0x60)); + gUnknown_03002F90[0x80] = 0x10; + gUnknown_03002F90[0x81] = 0x10; +} + +u8 GetGlyphWidthFont6(void) +{ + return 0x10; +} diff --git a/src/window.c b/src/window.c index 574b13aa0..704060b9d 100644 --- a/src/window.c +++ b/src/window.c @@ -35,7 +35,7 @@ static void nullsub_8(void) } -bool16 InitWindows(struct WindowTemplate *templates) +bool16 InitWindows(const struct WindowTemplate *templates) { int i; void *bgTilemapBuffer; @@ -451,7 +451,7 @@ void FillWindowPixelRect(u8 windowId, u8 fillValue, u16 x, u16 y, u16 width, u16 FillBitmapRect4Bit(&pixelRect, x, y, width, height, fillValue); } -void CopyToWindowPixelBuffer(u8 windowId, u8 *src, u16 size, u16 tileOffset) +void CopyToWindowPixelBuffer(u8 windowId, const u8 *src, u16 size, u16 tileOffset) { if (size != 0) CpuCopy16(src, gWindows[windowId].tileData + (0x20 * tileOffset), size); diff --git a/sym_bss.txt b/sym_bss.txt index 070e7e5f9..f32300b15 100644 --- a/sym_bss.txt +++ b/sym_bss.txt @@ -1,261 +1,30 @@ -gUnknown_03000000: @ 3000000 - .space 0x4 - + .include "src/main.o" .include "src/malloc.o" - - .align 4 -gDma3Requests: @ 3000010 - .space 0xC - -gUnknown_0300001C: @ 300001C - .space 0xD4 - -gUnknown_030000F0: @ 30000F0 - .space 0xA - -gUnknown_030000FA: @ 30000FA - .space 0x716 - -gDma3ManagerLocked: @ 3000810 - .space 0x1 - -gDma3RequestCursor: @ 3000811 - .space 0x7 - + .include "src/dma3_manager.o" .include "src/gpu_regs.o" .include "src/bg.o" .include "src/text.o" .include "src/sprite.o" - -gUnknown_03000D10: @ 3000D10 - .space 0x10 - -gUnknown_03000D20: @ 3000D20 - .space 0x30 - -gUnknown_03000D50: @ 3000D50 - .space 0x4 - -gUnknown_03000D54: @ 3000D54 - .space 0x4 - -gUnknown_03000D58: @ 3000D58 - .space 0x4 - -gUnknown_03000D5C: @ 3000D5C - .space 0x4 - -gUnknown_03000D60: @ 3000D60 - .space 0x4 - -gUnknown_03000D64: @ 3000D64 - .space 0x4 - -gUnknown_03000D68: @ 3000D68 - .space 0x4 - -gUnknown_03000D6C: @ 3000D6C - .space 0x1 - -gUnknown_03000D6D: @ 3000D6D - .space 0x1 - -gUnknown_03000D6E: @ 3000D6E - .space 0x2 - -gUnknown_03000D70: @ 3000D70 - .space 0x2 - -gUnknown_03000D72: @ 3000D72 - .space 0x1 - -gUnknown_03000D73: @ 3000D73 - .space 0x1 - -gUnknown_03000D74: @ 3000D74 - .space 0x4 - -gUnknown_03000D78: @ 3000D78 - .space 0x8 - -gUnknown_03000D80: @ 3000D80 - .space 0x10 - -gUnknown_03000D90: @ 3000D90 - .space 0x10 - -gUnknown_03000DA0: @ 3000DA0 - .space 0x4 - -gUnknown_03000DA4: @ 3000DA4 - .space 0x4 - -gUnknown_03000DA8: @ 3000DA8 - .space 0x4 - -gUnknown_03000DAC: @ 3000DAC - .space 0x4 - -gUnknown_03000DB0: @ 3000DB0 - .space 0x8 - + .include "src/link.o" .include "src/rtc.o" - -gUnknown_03000DD0: @ 3000DD0 - .space 0x4 - -gUnknown_03000DD4: @ 3000DD4 - .space 0x4 - -gUnknown_03000DD8: @ 3000DD8 - .space 0x4 - -gUnknown_03000DDC: @ 3000DDC - .space 0x4 - -gUnknown_03000DE0: @ 3000DE0 - .space 0x8 - -gUnknown_03000DE8: @ 3000DE8 - .space 0x10 - -gUnknown_03000DF8: @ 3000DF8 - .space 0xC - -gUnknown_03000E04: @ 3000E04 - .space 0x2 - -gUnknown_03000E06: @ 3000E06 - .space 0x2 - + .include "src/main_menu.o" + .include "src/battle_1.o" + .include "src/egg_hatch.o" + .include "src/berry_blender.o" .include "src/play_time.o" - -.align 2 - -gUnknown_03000E0C: @ 3000E0C - .space 0x4 - -gUnknown_03000E10: @ 3000E10 - .space 0x4 - -gUnknown_03000E14: @ 3000E14 - .space 0x4 - -gUnknown_03000E18: @ 3000E18 - .space 0x1 - -gUnknown_03000E19: @ 3000E19 - .space 0x7 - -gUnknown_03000E20: @ 3000E20 - .space 0x8 - -gUnknown_03000E28: @ 3000E28 - .space 0x2 - -gUnknown_03000E2A: @ 3000E2A - .space 0x2 - -gUnknown_03000E2C: @ 3000E2C - .space 0x4 - -gUnknown_03000E30: @ 3000E30 - .space 0x8 - -.include "src/script.o" - -.align 2 -gUnknown_03000F30: @ 3000F30 - .space 0x4 - -gUnknown_03000F34: @ 3000F34 - .space 0x2 - -gUnknown_03000F36: @ 3000F36 - .space 0x2 - -gUnknown_03000F38: @ 3000F38 - .space 0x2 - -gUnknown_03000F3A: @ 3000F3A - .space 0x2 - -gUnknown_03000F3C: @ 3000F3C - .space 0x4 - -gUnknown_03000F40: @ 3000F40 - .space 0x4 - -gUnknown_03000F44: @ 3000F44 - .space 0x4 - + .include "src/rom4.o" + .include "src/field_camera.o" + .include "src/script.o" + .include "src/scrcmd.o" + .include "src/tileset_anims.o" + .include "src/palette.o" .include "src/sound.o" - -gUnknown_03000F50: @ 3000F50 - .space 0x8 - -gUnknown_03000F58: @ 3000F58 - .space 0x20 - -gUnknown_03000F78: @ 3000F78 - .space 0x188 - -gUnknown_03001100: @ 3001100 - .space 0x1 - -gUnknown_03001101: @ 3001101 - .space 0x1 - -gUnknown_03001102: @ 3001102 - .space 0x6 - -gUnknown_03001108: @ 3001108 - .space 0x1C - -gUnknown_03001124: @ 3001124 - .space 0xC - -gUnknown_03001130: @ 3001130 - .space 0x4 - -gUnknown_03001134: @ 3001134 - .space 0x4 - -gUnknown_03001138: @ 3001138 - .space 0x4 - -gUnknown_0300113C: @ 300113C - .space 0x4 - -gUnknown_03001140: @ 3001140 - .space 0x4 - -gUnknown_03001144: @ 3001144 - .space 0x4 - -gUnknown_03001148: @ 3001148 - .space 0x4 - -gUnknown_0300114C: @ 300114C - .space 0x4 - -gUnknown_03001150: @ 3001150 - .space 0x4 - -gUnknown_03001154: @ 3001154 - .space 0x4 - -gUnknown_03001158: @ 3001158 - .space 0x4 - -gUnknown_0300115C: @ 300115C - .space 0x4 - -gUnknown_03001160: @ 3001160 - .space 0x8 - -gUnknown_03001168: @ 3001168 - .space 0xC + .include "src/field_screen.o" + .include "src/field_effect.o" + .include "src/pokemon_storage_system.o" + .include "src/fldeff_cut.o" + .include "src/script_menu.o" + .include "src/record_mixing.o" gUnknown_03001174: @ 3001174 .space 0x1 @@ -376,8 +145,7 @@ gUnknown_03001298: @ 3001298 gUnknown_030012A8: @ 30012A8 .space 0x10 -gUnknown_030012B8: @ 30012B8 - .space 0x4 + .include "src/berry_fix_program.o" gUnknown_030012BC: @ 30012BC .space 0x4 diff --git a/sym_common.txt b/sym_common.txt index cf737c390..834f23918 100644 --- a/sym_common.txt +++ b/sym_common.txt @@ -218,7 +218,7 @@ gUnknown_03005D3A: @ 3005D3A gUnknown_03005D46: @ 3005D46 .space 0xE -gUnknown_03005D54: @ 3005D54 +gLeveledUpInBattle: @ 3005D54 .space 0xC gBattleBankFunc: @ 3005D60 @@ -269,7 +269,7 @@ gUnknown_03005DA4: @ 3005DA4 gUnknown_03005DA8: @ 3005DA8 .space 0x4 -gUnknown_03005DAC: @ 3005DAC +gFieldCallback: @ 3005DAC .space 0x4 gUnknown_03005DB0: @ 3005DB0 diff --git a/sym_ewram.txt b/sym_ewram.txt index 5c48c224d..7848dcc7c 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -211,19 +211,19 @@ gUnknown_02022E14: @ 2022E14 gUnknown_02022E16: @ 2022E16 .space 0x2 -gUnknown_02022E18: @ 2022E18 +gBattle_BG1_X: @ 2022E18 .space 0x2 -gUnknown_02022E1A: @ 2022E1A +gBattle_BG1_Y: @ 2022E1A .space 0x2 -gUnknown_02022E1C: @ 2022E1C +gBattle_BG2_X: @ 2022E1C .space 0x2 -gUnknown_02022E1E: @ 2022E1E +gBattle_BG2_Y: @ 2022E1E .space 0x2 -gUnknown_02022E20: @ 2022E20 +gBattle_BG3_X: @ 2022E20 .space 0x2 gUnknown_02022E22: @ 2022E22 @@ -268,7 +268,7 @@ gUnknown_02022F88: @ 2022F88 gBattleTypeFlags: @ 2022FEC .space 0x4 -gUnknown_02022FF0: @ 2022FF0 +gBattleTerrain: @ 2022FF0 .space 0x4 gUnknown_02022FF4: @ 2022FF4 @@ -313,7 +313,7 @@ gUnknown_0202407A: @ 202407A gTurnOrder: @ 202407E .space 0x4 -gUnknown_02024082: @ 2024082 +gCurrentMoveTurn: @ 2024082 .space 0x1 gFightStateTracker: @ 2024083 @@ -334,7 +334,7 @@ gUnknown_020241E9: @ 20241E9 gCurrentMove: @ 20241EA .space 0x2 -gUnknown_020241EC: @ 20241EC +gLastUsedMove: @ 20241EC .space 0x2 gRandomMove: @ 20241EE @@ -343,10 +343,10 @@ gRandomMove: @ 20241EE gBattleMoveDamage: @ 20241F0 .space 0x4 -gUnknown_020241F4: @ 20241F4 +gHpDealt: @ 20241F4 .space 0x4 -gUnknown_020241F8: @ 20241F8 +gTakenDmg: @ 20241F8 .space 0x10 gLastUsedItem: @ 2024208 @@ -361,10 +361,10 @@ gBankAttacker: @ 202420B gBankTarget: @ 202420C .space 0x1 -gUnknown_0202420D: @ 202420D +gBank1: @ 202420D .space 0x1 -gUnknown_0202420E: @ 202420E +gEffectBank: @ 202420E .space 0x1 gStringBank: @ 202420F @@ -376,13 +376,13 @@ gAbsentBankFlags: @ 2024210 gCritMultiplier: @ 2024211 .space 0x1 -gUnknown_02024212: @ 2024212 +gMultiHitCounter: @ 2024212 .space 0x2 gBattlescriptCurrInstr: @ 2024214 .space 0x8 -gUnknown_0202421C: @ 202421C +gActionForBanks: @ 202421C .space 0x4 gUnknown_02024220: @ 2024220 @@ -391,7 +391,7 @@ gUnknown_02024220: @ 2024220 gUnknown_02024230: @ 2024230 .space 0x10 -gUnknown_02024240: @ 2024240 +gUnknownMovesUsedByBanks: @ 2024240 .space 0x8 gLastUsedMovesByBanks: @ 2024248 @@ -406,13 +406,13 @@ gUnknown_02024258: @ 2024258 gUnknown_02024260: @ 2024260 .space 0x8 -gUnknown_02024268: @ 2024268 +gLockedMoves: @ 2024268 .space 0x8 gUnknown_02024270: @ 2024270 .space 0x4 -gUnknown_02024274: @ 2024274 +gChosenMovesByBanks: @ 2024274 .space 0x8 gBattleMoveFlags: @ 202427C @@ -424,7 +424,7 @@ gHitMarker: @ 2024280 gUnknown_02024284: @ 2024284 .space 0x4 -gUnknown_02024288: @ 2024288 +gTakenDmgBanks: @ 2024288 .space 0x4 gUnknown_0202428C: @ 202428C @@ -442,10 +442,10 @@ gStatuses3: @ 20242AC gDisableStructs: @ 20242BC .space 0x70 -gUnknown_0202432C: @ 202432C +gPauseCounterBattle: @ 202432C .space 0x2 -gUnknown_0202432E: @ 202432E +gPaydayMoney: @ 202432E .space 0x2 gUnknown_02024330: @ 2024330 @@ -469,19 +469,19 @@ gSpecialStatuses: @ 202437C gBattleWeather: @ 20243CC .space 0x4 -gUnknown_020243D0: @ 20243D0 +gWishFutureKnock: @ 20243D0 .space 0x2C gUnknown_020243FC: @ 20243FC .space 0x2 -gUnknown_020243FE: @ 20243FE +gSentPokesToOpponent: @ 20243FE .space 0x2 gDynamicBasePower: @ 2024400 .space 0x2 -gUnknown_02024402: @ 2024402 +gExpShareExp: @ 2024402 .space 0x2 gEnigmaBerries: @ 2024404 @@ -654,7 +654,7 @@ gUnknown_02032304: @ 2032304 gUnknown_02032306: @ 2032306 .space 0x2 -gUnknown_02032308: @ 2032308 +gLinkPlayerMapObjects: @ 2032308 .space 0x10 gUnknown_02032318: @ 2032318 @@ -663,7 +663,7 @@ gUnknown_02032318: @ 2032318 gMapHeader: @ 2037318 .space 0x1C -gUnknown_02037334: @ 2037334 +gCamera: @ 2037334 .space 0xC gUnknown_02037340: @ 2037340 @@ -678,7 +678,7 @@ gUnknown_0203734C: @ 203734C gMapObjects: @ 2037350 .space 0x240 -gUnknown_02037590: @ 2037590 +gPlayerAvatar: @ 2037590 .space 0x14 gUnknown_020375A4: @ 20375A4 @@ -747,9 +747,7 @@ gUnknown_02037621: @ 2037621 gUnknown_02037622: @ 2037622 .space 0x2 -gUnknown_02037624: @ 2037624 - .space 0xF0 - + .include "src/tileset_anims.o" .include "src/palette.o" .include "src/sound.o" @@ -902,7 +900,7 @@ gUnknown_02038C00: @ 2038C00 gUnknown_02038C04: @ 2038C04 .space 0x4 -gUnknown_02038C08: @ 2038C08 +gFieldEffectSpawnParams: @ 2038C08 .space 0x20 gUnknown_02038C28: @ 2038C28 @@ -1148,12 +1146,9 @@ gUnknown_02039F90: @ 2039F90 gUnknown_02039F94: @ 2039F94 .space 0x4 -gUnknown_02039F98: @ 2039F98 - .space 0x1 - -gUnknown_02039F99: @ 2039F99 - .space 0x3 - + .include "src/money.o" + + .align 2 gUnknown_02039F9C: @ 2039F9C .space 0x78 @@ -1405,7 +1400,7 @@ gUnknown_0203AB30: @ 203AB30 gUnknown_0203AB34: @ 203AB34 .space 0x4 - .include "src/battle_ai.o" + .include "src/battle_ai_script_commands.o" .align 2 gUnknown_0203AB40: @ 203AB40 @@ -1550,11 +1545,7 @@ gUnknown_0203BC38: @ 203BC38 gDecorationInventories: @ 203BC40 .space 0x40 -sLocationHistory: @ 203BC80 - .space 0x6 - -sRoamerLocation: @ 203BC86 - .space 0x2 + .include "src/roamer.o" gUnknown_0203BC88: @ 203BC88 .space 0x4 @@ -1762,20 +1753,8 @@ gUnknown_0203CCDC: @ 203CCDC gUnknown_0203CCE8: @ 203CCE8 .space 0x4 -gUnknown_0203CCEC: @ 203CCEC - .space 0x18 - -gUnknown_0203CD04: @ 203CD04 - .space 0x60 - -gUnknown_0203CD64: @ 203CD64 - .space 0x4 - -gUnknown_0203CD68: @ 203CD68 - .space 0x4 - -gUnknown_0203CD6C: @ 203CD6C - .space 0x4 + .include "src/battle_dome_cards.o" + .include "src/lilycove_lady.o" gUnknown_0203CD70: @ 203CD70 .space 0x4