diff options
author | Diegoisawesome <diego@domoreaweso.me> | 2017-10-27 02:02:36 -0500 |
---|---|---|
committer | Diegoisawesome <diego@domoreaweso.me> | 2017-10-27 02:02:36 -0500 |
commit | 49c88e63439a4ca08ca9fac7a85de51d4f56c8bd (patch) | |
tree | 69504e13ad956a1596d7f5f188279f0c25ddad55 | |
parent | 431e737453feb99c18349060cad53d551ba41dcf (diff) | |
parent | 5ea2f463d71d0bc2663e70a553557de0ccf40eef (diff) |
Merge branch 'master' of github.com:pret/pokeemerald into dump_maps
234 files changed, 23165 insertions, 36367 deletions
@@ -102,7 +102,7 @@ $(C_BUILDDIR)/m4a_2.o: CC1 := tools/agbcc/bin/old_agbcc $(C_BUILDDIR)/m4a_4.o: CC1 := tools/agbcc/bin/old_agbcc ifeq ($(NODEP),) -$(C_BUILDDIR)/%.o: c_dep = $(shell $(SCANINC) $(C_SUBDIR)/$*.c) +$(C_BUILDDIR)/%.o: c_dep = $(shell $(SCANINC) -I include $(C_SUBDIR)/$*.c) else $(C_BUILDDIR)/%.o: c_dep := endif diff --git a/asm/battle_1.s b/asm/battle_1.s index 416fd87ec..9a981e222 100644 --- a/asm/battle_1.s +++ b/asm/battle_1.s @@ -1424,8 +1424,8 @@ _0803575A: .pool thumb_func_end ApplyPlayerChosenFrameToBattleMenu - thumb_func_start load_battle_oval_graphics -load_battle_oval_graphics: @ 8035770 + thumb_func_start DrawMainBattleBackground +DrawMainBattleBackground: @ 8035770 push {r4,r5,lr} ldr r0, =gBattleTypeFlags ldr r1, [r0] @@ -1665,7 +1665,7 @@ _08035A8A: pop {r0} bx r0 .pool - thumb_func_end load_battle_oval_graphics + thumb_func_end DrawMainBattleBackground thumb_func_start LoadBattleTextboxAndBackground LoadBattleTextboxAndBackground: @ 8035AA4 @@ -1686,7 +1686,7 @@ LoadBattleTextboxAndBackground: @ 8035AA4 movs r2, 0x40 bl LoadCompressedPalette bl ApplyPlayerChosenFrameToBattleMenu - bl load_battle_oval_graphics + bl DrawMainBattleBackground pop {r0} bx r0 .pool diff --git a/asm/battle_5.s b/asm/battle_5.s index 4d02a5942..f2d6797f9 100644 --- a/asm/battle_5.s +++ b/asm/battle_5.s @@ -59,13 +59,13 @@ _08056F3E: bl AllocZeroed ldr r1, [r5] str r0, [r1, 0x1C] - ldr r4, =gUnknown_020244A0 + ldr r4, =gLinkBattleSendBuffer movs r5, 0x80 lsls r5, 5 adds r0, r5, 0 bl AllocZeroed str r0, [r4] - ldr r4, =gUnknown_020244A4 + ldr r4, =gLinkBattleRecvBuffer adds r0, r5, 0 bl AllocZeroed str r0, [r4] @@ -160,11 +160,11 @@ _0805703C: str r5, [r0, 0x1C] bl Free str r5, [r6] - ldr r4, =gUnknown_020244A0 + ldr r4, =gLinkBattleSendBuffer ldr r0, [r4] bl Free str r5, [r4] - ldr r4, =gUnknown_020244A4 + ldr r4, =gLinkBattleRecvBuffer ldr r0, [r4] bl Free str r5, [r4] diff --git a/asm/battle_7.s b/asm/battle_7.s index 36a0bf282..ea6fc40b3 100644 --- a/asm/battle_7.s +++ b/asm/battle_7.s @@ -1056,10 +1056,10 @@ _0805D980: b _0805DA1E .pool _0805D9CC: - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker mov r2, r10 strb r2, [r0] - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget mov r1, sp ldrb r1, [r1] strb r1, [r0] @@ -1070,7 +1070,7 @@ _0805D9CC: ldr r0, =gUnknown_082C9320 adds r1, r5, 0 movs r2, 0 - bl move_something + bl DoBattleAnim ldr r0, =task0A_0803415C movs r1, 0xA bl CreateTask @@ -1180,14 +1180,14 @@ move_anim_start_t4: @ 805DAC4 lsrs r4, 24 lsls r3, 24 lsrs r3, 24 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker strb r1, [r0] - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget strb r2, [r0] ldr r0, =gUnknown_082C937C adds r1, r3, 0 movs r2, 0 - bl move_something + bl DoBattleAnim ldr r0, =task0A_08034248 movs r1, 0xA bl CreateTask @@ -1801,7 +1801,7 @@ _0805E056: movs r4, 0 cmp r4, r5 bcs _0805E076 - ldr r7, =gBanksBySide + ldr r7, =gBanksByIdentity ldr r6, =gUnknown_0832C108 _0805E060: adds r0, r4, r7 @@ -1874,14 +1874,14 @@ _0805E0F0: _0805E100: cmp r4, 0x4 bne _0805E110 - ldr r0, =gBanksBySide + ldr r0, =gBanksByIdentity ldrb r0, [r0] b _0805E198 .pool _0805E110: cmp r4, 0x5 bne _0805E1AC - ldr r0, =gBanksBySide + ldr r0, =gBanksByIdentity ldrb r0, [r0, 0x1] b _0805E198 .pool @@ -1916,28 +1916,28 @@ _0805E150: _0805E160: cmp r4, 0x6 bne _0805E170 - ldr r0, =gBanksBySide + ldr r0, =gBanksByIdentity ldrb r0, [r0] b _0805E198 .pool _0805E170: cmp r4, 0x7 bne _0805E180 - ldr r0, =gBanksBySide + ldr r0, =gBanksByIdentity ldrb r0, [r0, 0x1] b _0805E198 .pool _0805E180: cmp r4, 0x8 bne _0805E190 - ldr r0, =gBanksBySide + ldr r0, =gBanksByIdentity ldrb r0, [r0, 0x2] b _0805E198 .pool _0805E190: cmp r5, 0x9 bne _0805E1AC - ldr r0, =gBanksBySide + ldr r0, =gBanksByIdentity ldrb r0, [r0, 0x3] _0805E198: lsls r0, 3 @@ -1955,8 +1955,8 @@ _0805E1AE: bx r1 thumb_func_end BattleLoadAllHealthBoxesGfx - thumb_func_start load_gfxc_health_bar -load_gfxc_health_bar: @ 805E1B8 + thumb_func_start LoadBattleBarGfx +LoadBattleBarGfx: @ 805E1B8 push {lr} ldr r0, =gUnknown_08C093F0 ldr r1, =gMonSpritesGfxPtr @@ -1969,7 +1969,7 @@ load_gfxc_health_bar: @ 805E1B8 pop {r0} bx r0 .pool - thumb_func_end load_gfxc_health_bar + thumb_func_end LoadBattleBarGfx thumb_func_start BattleInitAllSprites BattleInitAllSprites: @ 805E1D8 @@ -2038,7 +2038,7 @@ _0805E252: _0805E260: ldrb r0, [r4] bl SetBankHealthboxSpritePos - ldr r0, =gBanksBySide + ldr r0, =gBanksByIdentity ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] @@ -2048,7 +2048,7 @@ _0805E260: adds r0, r1, r0 ldrb r0, [r0] movs r1, 0 - bl nullsub_30 + bl DummyBattleInterfaceFunc b _0805E30E .pool _0805E288: @@ -2056,7 +2056,7 @@ _0805E288: adds r0, r1, r0 ldrb r0, [r0] movs r1, 0x1 - bl nullsub_30 + bl DummyBattleInterfaceFunc b _0805E30E .pool _0805E29C: @@ -2353,7 +2353,7 @@ _0805E51C: beq _0805E558 movs r0, 0 mov r10, r0 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r2, [r0, 0x18] ldrh r1, [r2, 0x2] @@ -2857,7 +2857,7 @@ sub_805E990: @ 805E990 lsls r1, 16 asrs r1, 16 adds r0, r4, 0 - bl sub_8075060 + bl GetHPBarLevel lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -2997,7 +2997,7 @@ sub_805EAB4: @ 805EAB4 lsls r1, 16 asrs r1, 16 adds r0, r4, 0 - bl sub_8075060 + bl GetHPBarLevel lsls r0, 24 lsrs r0, 24 pop {r4,r5} @@ -3111,7 +3111,7 @@ sub_805EB9C: @ 805EB9C _0805EBC8: lsls r0, r5, 24 lsrs r0, 24 - bl sub_80A6A90 + bl AnimBankSpriteExists lsls r0, 24 cmp r0, 0 beq _0805EC60 @@ -3329,7 +3329,7 @@ sub_805ED70: @ 805ED70 cmp r0, 0 beq _0805EDAC adds r0, r4, 0 - bl sub_80A6A90 + bl AnimBankSpriteExists lsls r0, 24 cmp r0, 0 bne _0805EDC0 @@ -3796,7 +3796,7 @@ sub_805F110: @ 805F110 lsls r1, 16 asrs r1, 16 adds r0, r4, 0 - bl sub_8075060 + bl GetHPBarLevel lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 diff --git a/asm/battle_anim.s b/asm/battle_anim.s deleted file mode 100644 index 5ce9c4cf9..000000000 --- a/asm/battle_anim.s +++ /dev/null @@ -1,4205 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_80A3934 -sub_80A3934: @ 80A3934 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, =gAnimFramesToWait - movs r1, 0 - strb r1, [r0] - ldr r0, =gAnimScriptActive - strb r1, [r0] - ldr r0, =gAnimVisualTaskCount - strb r1, [r0] - ldr r0, =gAnimSoundTaskCount - strb r1, [r0] - ldr r0, =gDisableStructMoveAnim - movs r1, 0 - str r1, [r0] - ldr r0, =gMoveDmgMoveAnim - str r1, [r0] - ldr r0, =gMovePowerMoveAnim - movs r2, 0 - strh r1, [r0] - ldr r0, =gHappinessMoveAnim - strb r2, [r0] - ldr r4, =gUnknown_02038430 - ldr r5, =gUnknown_02038432 - ldr r6, =gUnknown_02038433 - ldr r7, =gAnimMoveIndex - ldr r0, =gAnimationBankAttacker - mov r12, r0 - ldr r1, =gAnimationBankTarget - mov r8, r1 - ldr r0, =gUnknown_02038440 - mov r9, r0 - ldr r1, =0x0000ffff - adds r3, r1, 0 - ldr r1, =gAnimSpriteIndexArray - movs r2, 0x7 -_080A397E: - ldrh r0, [r1] - orrs r0, r3 - strh r0, [r1] - adds r1, 0x2 - subs r2, 0x1 - cmp r2, 0 - bge _080A397E - ldr r1, =gBattleAnimArgs - movs r2, 0 - adds r0, r1, 0 - adds r0, 0xE -_080A3994: - strh r2, [r0] - subs r0, 0x2 - cmp r0, r1 - bge _080A3994 - movs r1, 0 - movs r0, 0xFF - strb r0, [r4] - movs r0, 0x1 - negs r0, r0 - strb r0, [r4, 0x1] - strb r1, [r5] - strb r1, [r6] - movs r0, 0 - strh r1, [r7] - mov r1, r12 - strb r0, [r1] - mov r1, r8 - strb r0, [r1] - mov r1, r9 - strb r0, [r1] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A3934 - - thumb_func_start move_anim_start_t1 -move_anim_start_t1: @ 80A3A10 - push {lr} - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - ldr r2, =gAnimationBankAttacker - ldr r0, =gBankAttacker - ldrb r0, [r0] - strb r0, [r2] - ldr r2, =gAnimationBankTarget - ldr r0, =gBankTarget - ldrb r0, [r0] - strb r0, [r2] - ldr r0, =gUnknown_082C8D6C - movs r2, 0x1 - bl move_something - pop {r0} - bx r0 - .pool - thumb_func_end move_anim_start_t1 - - thumb_func_start move_something -move_something: @ 80A3A48 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - str r0, [sp] - lsls r1, 16 - lsrs r1, 16 - mov r8, r1 - lsls r2, 24 - lsrs r2, 24 - mov r9, r2 - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080A3AE8 - bl sub_80A8278 - movs r0, 0 - bl sub_8072A88 - movs r4, 0 - mov r0, r8 - lsls r0, 2 - mov r10, r0 - ldr r6, =gBattlePartyID - movs r7, 0x64 - ldr r5, =gUnknown_02038438 -_080A3A84: - lsls r0, r4, 24 - lsrs r0, 24 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _080A3AA8 - ldrh r0, [r6] - muls r0, r7 - ldr r1, =gEnemyParty - b _080A3AAE - .pool -_080A3AA8: - ldrh r0, [r6] - muls r0, r7 - ldr r1, =gPlayerParty -_080A3AAE: - adds r0, r1 - movs r1, 0xB - bl GetMonData - strh r0, [r5] - adds r6, 0x2 - adds r5, 0x2 - adds r4, 0x1 - cmp r4, 0x3 - ble _080A3A84 - ldr r3, =gAnimMoveIndex - ldr r5, =gUnknown_02038430 - ldr r1, =gAnimScriptActive - mov r12, r1 - ldr r7, =gAnimScriptCallback - ldr r6, =move_anim_execute - b _080A3B10 - .pool -_080A3AE8: - ldr r3, =gAnimMoveIndex - ldr r5, =gUnknown_02038430 - mov r0, r8 - lsls r0, 2 - mov r10, r0 - ldr r1, =gAnimScriptActive - mov r12, r1 - ldr r7, =gAnimScriptCallback - ldr r6, =move_anim_execute - ldr r2, =gUnknown_02039F34 - ldr r1, =gUnknown_02038438 - movs r4, 0x3 -_080A3B00: - ldr r0, [r2] - ldr r0, [r0, 0x18] - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _080A3B00 -_080A3B10: - mov r0, r9 - cmp r0, 0 - bne _080A3B38 - strh r0, [r3] - b _080A3B3C - .pool -_080A3B38: - mov r1, r8 - strh r1, [r3] -_080A3B3C: - ldr r1, =gBattleAnimArgs - movs r2, 0 - adds r0, r1, 0 - adds r0, 0xE -_080A3B44: - strh r2, [r0] - subs r0, 0x2 - cmp r0, r1 - bge _080A3B44 - movs r0, 0xFF - strb r0, [r5] - movs r0, 0x1 - negs r0, r0 - strb r0, [r5, 0x1] - ldr r0, [sp] - add r0, r10 - ldr r0, [r0] - ldr r1, =gBattleAnimScriptPtr - str r0, [r1] - movs r0, 0x1 - mov r1, r12 - strb r0, [r1] - movs r0, 0 - ldr r1, =gAnimFramesToWait - strb r0, [r1] - str r6, [r7] - ldr r0, =0x0000ffff - adds r2, r0, 0 - ldr r1, =gAnimSpriteIndexArray - movs r4, 0x7 -_080A3B76: - ldrh r0, [r1] - orrs r0, r2 - strh r0, [r1] - adds r1, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _080A3B76 - mov r1, r9 - cmp r1, 0 - beq _080A3BC2 - movs r4, 0 - ldr r2, =gUnknown_082C8D64 - b _080A3BAA - .pool -_080A3BA8: - adds r4, 0x1 -_080A3BAA: - lsls r0, r4, 1 - adds r0, r2 - ldrh r0, [r0] - ldr r1, =0x0000ffff - cmp r0, r1 - beq _080A3BC2 - cmp r8, r0 - bne _080A3BA8 - ldr r0, =gMPlay_BGM - movs r2, 0x80 - bl m4aMPlayVolumeControl -_080A3BC2: - ldr r0, =gBattle_WIN0H - movs r1, 0 - strh r1, [r0] - ldr r0, =gBattle_WIN0V - strh r1, [r0] - ldr r0, =gBattle_WIN1H - strh r1, [r0] - ldr r0, =gBattle_WIN1V - strh r1, [r0] - 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 move_something - - thumb_func_start move_anim_8072740 -move_anim_8072740: @ 80A3BFC - push {r4,lr} - adds r4, r0, 0 - bl FreeSpriteOamMatrix - adds r0, r4, 0 - bl DestroySprite - ldr r1, =gAnimVisualTaskCount - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end move_anim_8072740 - - thumb_func_start move_anim_task_del -move_anim_task_del: @ 80A3C1C - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - ldr r1, =gAnimVisualTaskCount - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end move_anim_task_del - - thumb_func_start move_anim_related_task_del -move_anim_related_task_del: @ 80A3C38 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - ldr r1, =gAnimSoundTaskCount - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end move_anim_related_task_del - - thumb_func_start sub_80A3C54 -sub_80A3C54: @ 80A3C54 - push {r4,lr} - lsls r0, 16 - lsrs r3, r0, 16 - movs r2, 0 - ldr r4, =0x0000ffff - ldr r1, =gAnimSpriteIndexArray -_080A3C60: - ldrh r0, [r1] - cmp r0, r4 - bne _080A3C74 - strh r3, [r1] - b _080A3C7C - .pool -_080A3C74: - adds r1, 0x2 - adds r2, 0x1 - cmp r2, 0x7 - ble _080A3C60 -_080A3C7C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A3C54 - - thumb_func_start sub_80A3C84 -sub_80A3C84: @ 80A3C84 - push {r4,lr} - lsls r0, 16 - lsrs r3, r0, 16 - movs r2, 0 - ldr r0, =0x0000ffff - adds r4, r0, 0 - ldr r1, =gAnimSpriteIndexArray -_080A3C92: - ldrh r0, [r1] - cmp r0, r3 - bne _080A3CA8 - orrs r0, r4 - strh r0, [r1] - b _080A3CB0 - .pool -_080A3CA8: - adds r1, 0x2 - adds r2, 0x1 - cmp r2, 0x7 - ble _080A3C92 -_080A3CB0: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A3C84 - - thumb_func_start move_anim_waiter -move_anim_waiter: @ 80A3CB8 - push {lr} - ldr r2, =gAnimFramesToWait - ldrb r1, [r2] - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r0, 0 - bgt _080A3CDC - ldr r0, =gAnimScriptCallback - ldr r1, =move_anim_execute - str r1, [r0] - movs r0, 0 - b _080A3CDE - .pool -_080A3CDC: - subs r0, r1, 0x1 -_080A3CDE: - strb r0, [r2] - pop {r0} - bx r0 - thumb_func_end move_anim_waiter - - thumb_func_start move_anim_execute -move_anim_execute: @ 80A3CE4 - push {r4,lr} - ldr r4, =gUnknown_08525E98 -_080A3CE8: - ldr r0, =gBattleAnimScriptPtr - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, 2 - adds r0, r4 - ldr r0, [r0] - bl _call_via_r0 - ldr r0, =gAnimFramesToWait - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - bne _080A3D0C - ldr r0, =gAnimScriptActive - ldrb r0, [r0] - cmp r0, 0 - bne _080A3CE8 -_080A3D0C: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end move_anim_execute - - thumb_func_start ma00_load_graphics -ma00_load_graphics: @ 80A3D24 - push {r4-r6,lr} - ldr r6, =gBattleAnimScriptPtr - ldr r0, [r6] - adds r1, r0, 0x1 - str r1, [r6] - ldrb r4, [r0, 0x1] - ldrb r0, [r1, 0x1] - lsls r0, 8 - orrs r4, r0 - lsls r5, r4, 3 - ldr r0, =gUnknown_085112B4 + 0x10 - adds r0, r5, r0 - bl LoadCompressedObjectPicUsingHeap - ldr r0, =gUnknown_08511A34 + 0x198 - adds r5, r0 - adds r0, r5, 0 - bl LoadCompressedObjectPaletteUsingHeap - ldr r0, [r6] - adds r0, 0x2 - str r0, [r6] - ldr r0, =0xffffd8f0 - adds r4, r0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r4, 0 - bl sub_80A3C54 - ldr r1, =gAnimFramesToWait - movs r0, 0x1 - strb r0, [r1] - ldr r1, =gAnimScriptCallback - ldr r0, =move_anim_waiter - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end ma00_load_graphics - - thumb_func_start ma01_080728D0 -@ void ma01_080728D0() -ma01_080728D0: @ 80A3D8C - push {r4-r6,lr} - ldr r6, =gBattleAnimScriptPtr - ldr r0, [r6] - adds r1, r0, 0x1 - str r1, [r6] - ldrb r4, [r0, 0x1] - ldrb r0, [r1, 0x1] - lsls r0, 8 - orrs r4, r0 - ldr r1, =gUnknown_08524B44 - ldr r0, =0xffffd8f0 - adds r4, r0 - lsls r0, r4, 3 - adds r0, r1 - ldrh r5, [r0, 0x6] - adds r0, r5, 0 - bl FreeSpriteTilesByTag - adds r0, r5, 0 - bl FreeSpritePaletteByTag - ldr r0, [r6] - adds r0, 0x2 - str r0, [r6] - lsls r4, 16 - lsrs r4, 16 - adds r0, r4, 0 - bl sub_80A3C84 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end ma01_080728D0 - - thumb_func_start ma02_instanciate_template -ma02_instanciate_template: @ 80A3DD8 - push {r4-r7,lr} - ldr r5, =gBattleAnimScriptPtr - ldr r1, [r5] - adds r3, r1, 0x1 - str r3, [r5] - ldrb r2, [r1, 0x1] - ldrb r0, [r3, 0x1] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r3, 0x2] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r3, 0x3] - lsls r0, 24 - adds r7, r2, r0 - adds r0, r1, 0x5 - str r0, [r5] - ldrb r4, [r1, 0x5] - adds r0, r1, 0x6 - str r0, [r5] - ldrb r0, [r1, 0x6] - adds r1, 0x7 - str r1, [r5] - cmp r0, 0 - beq _080A3E28 - adds r6, r5, 0 - ldr r5, =gBattleAnimArgs - adds r3, r0, 0 -_080A3E10: - ldr r2, [r6] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - strh r1, [r5] - adds r2, 0x2 - str r2, [r6] - adds r5, 0x2 - subs r3, 0x1 - cmp r3, 0 - bne _080A3E10 -_080A3E28: - movs r0, 0x80 - ands r0, r4 - cmp r0, 0 - beq _080A3E58 - movs r0, 0x80 - eors r4, r0 - cmp r4, 0x3F - bls _080A3E48 - adds r0, r4, 0 - subs r0, 0x40 - b _080A3E4A - .pool -_080A3E48: - negs r0, r4 -_080A3E4A: - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gAnimationBankTarget - b _080A3E6A - .pool -_080A3E58: - cmp r4, 0x3F - bls _080A3E62 - adds r0, r4, 0 - subs r0, 0x40 - b _080A3E64 -_080A3E62: - negs r0, r4 -_080A3E64: - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gAnimationBankAttacker -_080A3E6A: - ldrb r0, [r0] - bl sub_80A82E4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r4, 24 - asrs r1, 24 - adds r0, r1 - lsls r0, 16 - lsrs r6, r0, 16 - lsls r0, r6, 16 - asrs r0, 16 - cmp r0, 0x2 - bgt _080A3E88 - movs r6, 0x3 -_080A3E88: - ldr r5, =gAnimationBankTarget - ldrb r0, [r5] - movs r1, 0x2 - bl sub_80A5C6C - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldrb r0, [r5] - movs r1, 0x3 - bl sub_80A5C6C - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - lsls r3, r6, 24 - lsrs r3, 24 - adds r0, r7, 0 - adds r1, r4, 0 - bl CreateSpriteAndAnimate - ldr r1, =gAnimVisualTaskCount - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end ma02_instanciate_template - - thumb_func_start sub_80A3ECC -sub_80A3ECC: @ 80A3ECC - push {r4-r7,lr} - ldr r4, =gBattleAnimScriptPtr - ldr r1, [r4] - adds r3, r1, 0x1 - str r3, [r4] - ldrb r2, [r1, 0x1] - ldrb r0, [r3, 0x1] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r3, 0x2] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r3, 0x3] - lsls r0, 24 - adds r6, r2, r0 - adds r0, r1, 0x5 - str r0, [r4] - ldrb r7, [r1, 0x5] - adds r0, r1, 0x6 - str r0, [r4] - ldrb r0, [r1, 0x6] - adds r1, 0x7 - str r1, [r4] - cmp r0, 0 - beq _080A3F1C - adds r5, r4, 0 - ldr r4, =gBattleAnimArgs - adds r3, r0, 0 -_080A3F04: - ldr r2, [r5] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - strh r1, [r4] - adds r2, 0x2 - str r2, [r5] - adds r4, 0x2 - subs r3, 0x1 - cmp r3, 0 - bne _080A3F04 -_080A3F1C: - adds r0, r6, 0 - adds r1, r7, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - bl _call_via_r6 - ldr r1, =gAnimVisualTaskCount - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A3ECC - - thumb_func_start ma04_wait_countdown -ma04_wait_countdown: @ 80A3F48 - push {r4,lr} - ldr r1, =gBattleAnimScriptPtr - ldr r0, [r1] - adds r2, r0, 0x1 - str r2, [r1] - ldr r3, =gAnimFramesToWait - ldrb r0, [r0, 0x1] - strb r0, [r3] - lsls r0, 24 - cmp r0, 0 - bne _080A3F66 - movs r4, 0x1 - negs r4, r4 - adds r0, r4, 0 - strb r0, [r3] -_080A3F66: - adds r0, r2, 0x1 - str r0, [r1] - ldr r1, =gAnimScriptCallback - ldr r0, =move_anim_waiter - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end ma04_wait_countdown - - thumb_func_start sub_80A3F88 -sub_80A3F88: @ 80A3F88 - push {lr} - ldr r0, =gAnimVisualTaskCount - ldrb r2, [r0] - cmp r2, 0 - bne _080A3FAC - ldr r0, =gBattleAnimScriptPtr - ldr r1, [r0] - adds r1, 0x1 - str r1, [r0] - ldr r0, =gAnimFramesToWait - strb r2, [r0] - b _080A3FB2 - .pool -_080A3FAC: - ldr r1, =gAnimFramesToWait - movs r0, 0x1 - strb r0, [r1] -_080A3FB2: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A3F88 - - thumb_func_start nullsub_6 -nullsub_6: @ 80A3FBC - bx lr - thumb_func_end nullsub_6 - - thumb_func_start nullsub_7 -nullsub_7: @ 80A3FC0 - bx lr - thumb_func_end nullsub_7 - - thumb_func_start sub_80A3FC4 -sub_80A3FC4: @ 80A3FC4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r0, 0 - mov r8, r0 - ldr r0, =gAnimVisualTaskCount - ldrb r0, [r0] - cmp r0, 0 - bne _080A3FEC - ldr r0, =gAnimSoundTaskCount - ldrb r0, [r0] - cmp r0, 0 - bne _080A3FEC - ldr r1, =gUnknown_02038430 - ldrb r0, [r1] - cmp r0, 0xFF - bne _080A3FEC - ldrb r0, [r1, 0x1] - cmp r0, 0xFF - beq _080A4004 -_080A3FEC: - ldr r1, =gSoundAnimFramesToWait - movs r0, 0 - strh r0, [r1] - b _080A401E - .pool -_080A4004: - bl IsSEPlaying - lsls r0, 24 - cmp r0, 0 - beq _080A403C - ldr r1, =gSoundAnimFramesToWait - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x5A - bhi _080A4030 -_080A401E: - ldr r1, =gAnimFramesToWait - movs r0, 0x1 - strb r0, [r1] - b _080A40A2 - .pool -_080A4030: - ldr r0, =gMPlay_SE1 - bl m4aMPlayStop - ldr r0, =gMPlay_SE2 - bl m4aMPlayStop -_080A403C: - ldr r1, =gSoundAnimFramesToWait - movs r0, 0 - strh r0, [r1] - movs r5, 0 - ldr r7, =0x0000ffff - ldr r6, =gUnknown_08524B44 - ldr r4, =gAnimSpriteIndexArray -_080A404A: - ldrh r0, [r4] - cmp r0, r7 - beq _080A406E - lsls r0, 3 - adds r0, r6 - ldrh r0, [r0, 0x6] - bl FreeSpriteTilesByTag - ldrh r0, [r4] - lsls r0, 3 - adds r0, r6 - ldrh r0, [r0, 0x6] - bl FreeSpritePaletteByTag - ldrh r1, [r4] - adds r0, r7, 0 - orrs r0, r1 - strh r0, [r4] -_080A406E: - adds r4, 0x2 - adds r5, 0x1 - cmp r5, 0x7 - ble _080A404A - mov r1, r8 - cmp r1, 0 - bne _080A40A2 - ldr r0, =gMPlay_BGM - ldr r1, =0x0000ffff - movs r2, 0x80 - lsls r2, 1 - bl m4aMPlayVolumeControl - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080A409C - bl sub_80A8278 - movs r0, 0x1 - bl sub_8072A88 -_080A409C: - ldr r0, =gAnimScriptActive - mov r1, r8 - strb r1, [r0] -_080A40A2: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A3FC4 - - thumb_func_start ma09_play_sound -ma09_play_sound: @ 80A40CC - push {r4,lr} - ldr r4, =gBattleAnimScriptPtr - ldr r0, [r4] - adds r1, r0, 0x1 - str r1, [r4] - ldrb r0, [r0, 0x1] - ldrb r1, [r1, 0x1] - lsls r1, 8 - orrs r0, r1 - bl PlaySE - ldr r0, [r4] - adds r0, 0x2 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end ma09_play_sound - - thumb_func_start sub_80A40F4 -sub_80A40F4: @ 80A40F4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r7, r0, 24 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - mov r8, r1 - adds r6, r0, r1 - ldr r1, =gBankSpriteIds - movs r2, 0 - ldrsh r0, [r6, r2] - adds r0, r1 - ldrb r5, [r0] - ldr r1, =gSprites - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - adds r4, r0, r1 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - movs r3, 0x4 - ldrsh r0, [r6, r3] - cmp r0, 0 - bne _080A4148 - adds r0, r7, 0 - bl move_anim_task_del - b _080A41BE - .pool -_080A4148: - ldr r0, =task_pA_ma0A_obj_to_bg_pal - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r2, r0, 24 - mov r1, r8 - subs r1, 0x8 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0, r1 - strh r5, [r1, 0x8] - ldrh r0, [r4, 0x24] - ldrh r3, [r4, 0x20] - adds r0, r3 - strh r0, [r1, 0xA] - ldrh r0, [r4, 0x26] - ldrh r4, [r4, 0x22] - adds r0, r4 - strh r0, [r1, 0xC] - movs r3, 0x2 - ldrsh r0, [r6, r3] - cmp r0, 0 - bne _080A4190 - ldr r0, =gBattle_BG1_X - ldrh r0, [r0] - strh r0, [r1, 0xE] - ldr r0, =gBattle_BG1_Y - b _080A4198 - .pool -_080A4190: - ldr r0, =gBattle_BG2_X - ldrh r0, [r0] - strh r0, [r1, 0xE] - ldr r0, =gBattle_BG2_Y -_080A4198: - ldrh r0, [r0] - strh r0, [r1, 0x10] - ldr r1, =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r6, 0x2] - strh r1, [r0, 0x12] - ldrh r1, [r6] - strh r1, [r0, 0x14] - ldr r1, =gUnknown_02038430 - movs r3, 0x6 - ldrsh r0, [r6, r3] - adds r0, r1 - strb r2, [r0] - adds r0, r7, 0 - bl move_anim_task_del -_080A41BE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A40F4 - - thumb_func_start sub_80A41D8 -sub_80A41D8: @ 80A41D8 - push {r4,r5,lr} - ldr r1, =gBattleAnimScriptPtr - ldr r2, [r1] - adds r0, r2, 0x1 - str r0, [r1] - ldrb r0, [r2, 0x1] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A41F8 - ldr r0, =gAnimationBankTarget - b _080A41FA - .pool -_080A41F8: - ldr r0, =gAnimationBankAttacker -_080A41FA: - ldrb r4, [r0] - adds r0, r4, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080A4266 - adds r0, r4, 0 - bl GetBankIdentity - lsls r0, 24 - movs r1, 0xFF - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x1 - bls _080A4226 - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080A4230 -_080A4226: - movs r5, 0 - b _080A4232 - .pool -_080A4230: - movs r5, 0x1 -_080A4232: - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0 - bl sub_80A438C - ldr r0, =sub_80A40F4 - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, =gAnimVisualTaskCount - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r1, =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - movs r2, 0 - strh r4, [r0, 0x8] - strh r5, [r0, 0xA] - movs r1, 0x1 - strh r1, [r0, 0xC] - strh r2, [r0, 0xE] -_080A4266: - movs r0, 0x2 - eors r4, r0 - adds r0, r4, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080A42D8 - adds r0, r4, 0 - bl GetBankIdentity - lsls r0, 24 - movs r1, 0xFF - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x1 - bls _080A4294 - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080A42A4 -_080A4294: - movs r5, 0 - b _080A42A6 - .pool -_080A42A4: - movs r5, 0x1 -_080A42A6: - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0 - bl sub_80A438C - ldr r0, =sub_80A40F4 - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, =gAnimVisualTaskCount - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r1, =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - strh r4, [r0, 0x8] - strh r5, [r0, 0xA] - movs r1, 0x1 - strh r1, [r0, 0xC] - strh r1, [r0, 0xE] -_080A42D8: - ldr r1, =gBattleAnimScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - ldr r1, =gAnimFramesToWait - movs r0, 0x1 - strb r0, [r1] - ldr r1, =gAnimScriptCallback - ldr r0, =move_anim_waiter - str r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A41D8 - - thumb_func_start b_side_obj__get_some_boolean -b_side_obj__get_some_boolean: @ 80A4310 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080A4330 - ldr r0, =gAnimationBankAttacker - ldrb r0, [r0] - cmp r4, r0 - beq _080A4374 - b _080A4384 - .pool -_080A4330: - adds r0, r4, 0 - bl sub_80A6A90 - lsls r0, 24 - cmp r0, 0 - beq _080A4384 - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080A4374 - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r5, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A4374 - ldr r2, =gSprites - ldr r0, =gBankSpriteIds - adds r0, r5, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - blt _080A4384 -_080A4374: - movs r0, 0x1 - b _080A4386 - .pool -_080A4384: - movs r0, 0 -_080A4386: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end b_side_obj__get_some_boolean - - thumb_func_start sub_80A438C -sub_80A438C: @ 80A438C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x28 - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - lsls r1, 24 - lsls r2, 24 - lsrs r2, 24 - mov r9, r2 - cmp r1, 0 - beq _080A43AA - b _080A455E -_080A43AA: - bl IsContest - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A43DC - ldr r1, =0x06008000 - movs r2, 0x80 - lsls r2, 6 - movs r0, 0 - movs r3, 0x1 - bl RequestDma3Fill - ldr r1, =0x0600f000 - movs r2, 0x80 - lsls r2, 5 - movs r0, 0xFF - movs r3, 0 - bl RequestDma3Fill - b _080A43F8 - .pool -_080A43DC: - ldr r1, =0x06004000 - movs r2, 0x80 - lsls r2, 6 - movs r0, 0 - movs r3, 0x1 - bl RequestDma3Fill - ldr r1, =0x0600e000 - movs r2, 0x80 - lsls r2, 5 - movs r0, 0xFF - movs r3, 0 - bl RequestDma3Fill -_080A43F8: - add r0, sp, 0x10 - bl sub_80A6B30 - add r0, sp, 0x20 - movs r1, 0 - strh r1, [r0] - ldr r1, [sp, 0x10] - ldr r2, =0x01000800 - bl CpuSet - mov r0, sp - adds r0, 0x22 - movs r1, 0xFF - strh r1, [r0] - ldr r1, [sp, 0x14] - ldr r2, =0x01000400 - bl CpuSet - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0x2 - bl lcd_bg_operations - movs r0, 0x1 - movs r1, 0 - movs r2, 0x1 - bl lcd_bg_operations - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0 - bl lcd_bg_operations - ldr r0, =gBankSpriteIds - adds r0, r6, r0 - ldrb r4, [r0] - ldr r5, =gBattle_BG1_X - ldr r0, =gSprites - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1, 0x24] - ldrh r1, [r1, 0x20] - adds r0, r1 - negs r0, r0 - adds r0, 0x20 - strh r0, [r5] - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080A447A - ldr r0, =gUnknown_02039F34 - ldr r0, [r0] - ldr r0, [r0, 0x18] - ldrh r0, [r0] - bl sub_80DB2A8 - lsls r0, 24 - cmp r0, 0 - beq _080A447A - ldrh r0, [r5] - subs r0, 0x1 - strh r0, [r5] -_080A447A: - ldr r5, =gBattle_BG1_Y - ldr r2, =gSprites - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - adds r1, r2 - ldrh r0, [r1, 0x26] - ldrh r1, [r1, 0x22] - adds r0, r1 - negs r0, r0 - adds r0, 0x20 - strh r0, [r5] - mov r0, r9 - cmp r0, 0 - beq _080A44B0 - ldr r0, =gBankSpriteIds - adds r0, r6, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_080A44B0: - ldr r0, =gBattle_BG1_X - ldrh r1, [r0] - movs r0, 0x14 - bl SetGpuReg - ldrh r1, [r5] - movs r0, 0x16 - bl SetGpuReg - lsls r4, r6, 5 - ldr r0, =gPlttBufferUnfaded + 0x200 - adds r4, r0 - add r0, sp, 0x10 - ldrb r1, [r0, 0x8] - lsls r1, 4 - adds r0, r4, 0 - movs r2, 0x20 - bl LoadPalette - add r0, sp, 0x10 - ldrb r1, [r0, 0x8] - lsls r1, 5 - movs r0, 0xA0 - lsls r0, 19 - adds r1, r0 - ldr r2, =0x04000008 - adds r0, r4, 0 - bl CpuSet - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080A4524 - movs r3, 0 - b _080A452E - .pool -_080A4524: - adds r0, r6, 0 - bl GetBankIdentity - lsls r0, 24 - lsrs r3, r0, 24 -_080A452E: - add r0, sp, 0x10 - ldrb r0, [r0, 0x8] - str r0, [sp] - ldr r0, [sp, 0x10] - str r0, [sp, 0x4] - ldr r0, [sp, 0x14] - str r0, [sp, 0x8] - add r0, sp, 0x10 - ldrh r0, [r0, 0xA] - str r0, [sp, 0xC] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl sub_8118FBC - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080A4558 - b _080A4666 -_080A4558: - bl sub_80A46A0 - b _080A4666 -_080A455E: - ldr r1, =0x06006000 - movs r2, 0x80 - lsls r2, 6 - movs r0, 0 - movs r3, 0x1 - bl RequestDma3Fill - ldr r1, =0x0600f000 - movs r7, 0x80 - lsls r7, 5 - movs r0, 0 - adds r2, r7, 0 - movs r3, 0x1 - bl RequestDma3Fill - add r0, sp, 0x10 - movs r1, 0x2 - bl sub_80A6B90 - add r0, sp, 0x24 - movs r4, 0 - strh r4, [r0] - ldr r1, [sp, 0x10] - adds r1, r7 - ldr r2, =0x01000800 - bl CpuSet - mov r0, sp - adds r0, 0x26 - strh r4, [r0] - ldr r1, [sp, 0x14] - movs r2, 0x80 - lsls r2, 4 - mov r8, r2 - add r1, r8 - ldr r2, =0x01000400 - bl CpuSet - movs r0, 0x2 - movs r1, 0x4 - movs r2, 0x2 - bl lcd_bg_operations - movs r0, 0x2 - movs r1, 0 - movs r2, 0x1 - bl lcd_bg_operations - movs r0, 0x2 - movs r1, 0x1 - movs r2, 0 - bl lcd_bg_operations - ldr r0, =gBankSpriteIds - adds r2, r5, r0 - ldrb r4, [r2] - ldr r5, =gBattle_BG2_X - ldr r3, =gSprites - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - adds r1, r3 - ldrh r0, [r1, 0x24] - ldrh r4, [r1, 0x20] - adds r0, r4 - negs r0, r0 - adds r0, 0x20 - strh r0, [r5] - ldr r4, =gBattle_BG2_Y - ldrh r0, [r1, 0x26] - ldrh r1, [r1, 0x22] - adds r0, r1 - negs r0, r0 - adds r0, 0x20 - strh r0, [r4] - mov r0, r9 - cmp r0, 0 - beq _080A460E - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_080A460E: - ldrh r1, [r5] - movs r0, 0x18 - bl SetGpuReg - ldrh r1, [r4] - movs r0, 0x1A - bl SetGpuReg - lsls r4, r6, 5 - ldr r0, =gPlttBufferUnfaded + 0x200 - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x90 - movs r2, 0x20 - bl LoadPalette - ldr r1, =0x05000120 - ldr r2, =0x04000008 - adds r0, r4, 0 - bl CpuSet - adds r0, r6, 0 - bl GetBankIdentity - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - add r0, sp, 0x10 - ldrb r0, [r0, 0x8] - str r0, [sp] - ldr r0, [sp, 0x10] - adds r0, r7 - str r0, [sp, 0x4] - ldr r0, [sp, 0x14] - add r0, r8 - str r0, [sp, 0x8] - add r0, sp, 0x10 - ldrh r0, [r0, 0xA] - str r0, [sp, 0xC] - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl sub_8118FBC -_080A4666: - add sp, 0x28 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A438C - - thumb_func_start sub_80A46A0 -sub_80A46A0: @ 80A46A0 - push {r4-r7,lr} - sub sp, 0x10 - ldr r0, =gUnknown_02039F34 - ldr r0, [r0] - ldr r0, [r0, 0x18] - ldrh r0, [r0] - bl sub_80DB2A8 - lsls r0, 24 - cmp r0, 0 - beq _080A4712 - mov r0, sp - bl sub_80A6B30 - ldr r6, [sp, 0x4] - movs r5, 0 - movs r0, 0x7 - mov r12, r0 - movs r7, 0 -_080A46C6: - movs r4, 0 - adds r3, r7, r6 - mov r1, r12 - lsls r0, r1, 1 - adds r2, r0, r6 -_080A46D0: - ldrh r1, [r3] - ldrh r0, [r2] - strh r0, [r3] - strh r1, [r2] - adds r3, 0x2 - subs r2, 0x2 - adds r4, 0x1 - cmp r4, 0x3 - ble _080A46D0 - movs r0, 0x20 - add r12, r0 - adds r7, 0x40 - adds r5, 0x1 - cmp r5, 0x7 - ble _080A46C6 - movs r5, 0 - movs r1, 0x80 - lsls r1, 3 - adds r3, r1, 0 -_080A46F6: - adds r2, r5, 0x1 - lsls r0, r5, 6 - adds r1, r0, r6 - movs r4, 0x7 -_080A46FE: - ldrh r0, [r1] - eors r0, r3 - strh r0, [r1] - adds r1, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _080A46FE - adds r5, r2, 0 - cmp r5, 0x7 - ble _080A46F6 -_080A4712: - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A46A0 - - thumb_func_start sub_80A4720 -sub_80A4720: @ 80A4720 - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r1 - adds r6, r2, 0 - lsls r0, 16 - lsrs r5, r0, 16 - lsls r3, 24 - movs r0, 0x40 - mov r12, r0 - cmp r3, 0 - bne _080A473C - movs r1, 0x20 - mov r12, r1 -_080A473C: - lsls r0, r5, 28 - lsrs r5, r0, 16 - movs r0, 0 - cmp r0, r12 - bge _080A476C - ldr r7, =0x00000fff -_080A4748: - adds r4, r0, 0x1 - lsls r0, 6 - mov r1, r8 - adds r3, r0, r1 - movs r2, 0x1F -_080A4752: - ldrh r1, [r3] - adds r0, r7, 0 - ands r0, r1 - orrs r0, r5 - adds r0, r6 - strh r0, [r3] - adds r3, 0x2 - subs r2, 0x1 - cmp r2, 0 - bge _080A4752 - adds r0, r4, 0 - cmp r0, r12 - blt _080A4748 -_080A476C: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A4720 - - thumb_func_start sub_80A477C -sub_80A477C: @ 80A477C - push {r4,lr} - sub sp, 0x10 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - mov r0, sp - bl sub_80A6B30 - cmp r4, 0 - beq _080A479C - bl IsContest - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _080A47B8 -_080A479C: - movs r0, 0x1 - bl sub_80A6C68 - ldr r0, =gBattle_BG1_X - movs r1, 0 - strh r1, [r0] - ldr r0, =gBattle_BG1_Y - strh r1, [r0] - b _080A47C6 - .pool -_080A47B8: - movs r0, 0x2 - bl sub_80A6C68 - ldr r0, =gBattle_BG2_X - strh r4, [r0] - ldr r0, =gBattle_BG2_Y - strh r4, [r0] -_080A47C6: - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A477C - - thumb_func_start task_pA_ma0A_obj_to_bg_pal -@ void task_pA_ma0A_obj_to_bg_pal(int task_id) -task_pA_ma0A_obj_to_bg_pal: @ 80A47D8 - push {r4-r6,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r5, r1, r2 - ldrb r4, [r5, 0x8] - ldrb r6, [r5, 0x14] - mov r0, sp - bl sub_80A6B30 - ldr r0, =gSprites - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - adds r1, r0 - ldrh r2, [r1, 0x24] - ldrh r0, [r1, 0x20] - adds r2, r0 - ldrh r0, [r5, 0xA] - subs r0, r2 - lsls r0, 16 - lsrs r3, r0, 16 - ldrh r2, [r1, 0x26] - ldrh r1, [r1, 0x22] - adds r2, r1 - ldrh r0, [r5, 0xC] - subs r0, r2 - lsls r0, 16 - lsrs r2, r0, 16 - movs r1, 0x12 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080A4870 - ldr r1, =gBattle_BG1_X - lsls r0, r3, 16 - asrs r0, 16 - ldrh r3, [r5, 0xE] - adds r0, r3 - strh r0, [r1] - ldr r1, =gBattle_BG1_Y - lsls r0, r2, 16 - asrs r0, 16 - ldrh r5, [r5, 0x10] - adds r0, r5 - strh r0, [r1] - lsls r0, r6, 5 - ldr r2, =gPlttBufferFaded + 0x200 - adds r0, r2 - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 5 - ldr r3, =0xfffffe00 - adds r2, r3 - adds r1, r2 - ldr r2, =0x04000008 - bl CpuSet - b _080A4896 - .pool -_080A4870: - ldr r1, =gBattle_BG2_X - lsls r0, r3, 16 - asrs r0, 16 - ldrh r3, [r5, 0xE] - adds r0, r3 - strh r0, [r1] - ldr r1, =gBattle_BG2_Y - lsls r0, r2, 16 - asrs r0, 16 - ldrh r5, [r5, 0x10] - adds r0, r5 - strh r0, [r1] - lsls r0, r6, 5 - ldr r1, =gPlttBufferFaded + 0x200 - adds r0, r1 - subs r1, 0xE0 - ldr r2, =0x04000008 - bl CpuSet -_080A4896: - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end task_pA_ma0A_obj_to_bg_pal - - thumb_func_start ma0B_0807324C -ma0B_0807324C: @ 80A48B0 - push {r4,r5,lr} - ldr r0, =gBattleAnimScriptPtr - ldr r2, [r0] - adds r1, r2, 0x1 - str r1, [r0] - ldrb r4, [r2, 0x1] - cmp r4, 0 - bne _080A48C8 - movs r4, 0x2 - b _080A48D2 - .pool -_080A48C8: - cmp r4, 0x1 - bne _080A48CE - movs r4, 0x3 -_080A48CE: - cmp r4, 0 - beq _080A48D6 -_080A48D2: - cmp r4, 0x2 - bne _080A48E0 -_080A48D6: - ldr r0, =gAnimationBankAttacker - b _080A48E2 - .pool -_080A48E0: - ldr r0, =gAnimationBankTarget -_080A48E2: - ldrb r5, [r0] - ldr r3, =gUnknown_02038430 - ldrb r0, [r3] - cmp r0, 0xFF - beq _080A4908 - ldr r2, =gSprites - ldr r0, =gBankSpriteIds - adds r0, r5, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] -_080A4908: - cmp r4, 0x1 - bls _080A4948 - ldrb r0, [r3, 0x1] - cmp r0, 0xFF - beq _080A4948 - ldr r3, =gSprites - ldr r2, =gBankSpriteIds - movs r1, 0x2 - adds r0, r5, 0 - eors r0, r1 - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - b _080A494A - .pool -_080A4948: - movs r4, 0 -_080A494A: - ldr r0, =sub_80A4980 - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x8] - strh r5, [r1, 0xC] - ldr r1, =gBattleAnimScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end ma0B_0807324C - - thumb_func_start sub_80A4980 -sub_80A4980: @ 80A4980 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r1, r0, r1 - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - beq _080A4A0A - ldrb r0, [r1, 0xC] - bl GetBankIdentity - lsls r0, 24 - movs r1, 0xFF - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x1 - bls _080A49BC - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080A49C4 -_080A49BC: - movs r4, 0 - b _080A49C6 - .pool -_080A49C4: - movs r4, 0x1 -_080A49C6: - ldr r6, =gUnknown_02038430 - ldrb r0, [r6] - cmp r0, 0xFF - beq _080A49DE - adds r0, r4, 0 - bl sub_80A477C - ldrb r0, [r6] - bl DestroyTask - movs r0, 0xFF - strb r0, [r6] -_080A49DE: - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0x1 - ble _080A4A04 - movs r0, 0x1 - eors r4, r0 - adds r0, r4, 0 - bl sub_80A477C - ldrb r0, [r6, 0x1] - bl DestroyTask - movs r0, 0xFF - strb r0, [r6, 0x1] -_080A4A04: - adds r0, r5, 0 - bl DestroyTask -_080A4A0A: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A4980 - - thumb_func_start sub_80A4A18 -sub_80A4A18: @ 80A4A18 - push {r4,r5,lr} - ldr r0, =gBattleAnimScriptPtr - ldr r2, [r0] - adds r1, r2, 0x1 - str r1, [r0] - ldrb r5, [r2, 0x1] - cmp r5, 0 - bne _080A4A30 - movs r5, 0x2 - b _080A4A3A - .pool -_080A4A30: - cmp r5, 0x1 - bne _080A4A36 - movs r5, 0x3 -_080A4A36: - cmp r5, 0 - beq _080A4A3E -_080A4A3A: - cmp r5, 0x2 - bne _080A4A48 -_080A4A3E: - ldr r0, =gAnimationBankAttacker - b _080A4A4A - .pool -_080A4A48: - ldr r0, =gAnimationBankTarget -_080A4A4A: - ldrb r4, [r0] - adds r0, r4, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080A4A8A - adds r0, r4, 0 - bl GetBankIdentity - lsls r0, 24 - movs r1, 0xFF - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x1 - bls _080A4A76 - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080A4A80 -_080A4A76: - movs r1, 0 - b _080A4A82 - .pool -_080A4A80: - movs r1, 0x1 -_080A4A82: - adds r0, r4, 0 - movs r2, 0 - bl sub_80A438C -_080A4A8A: - movs r0, 0x2 - eors r4, r0 - cmp r5, 0x1 - bls _080A4ACA - adds r0, r4, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080A4ACA - adds r0, r4, 0 - bl GetBankIdentity - lsls r0, 24 - movs r1, 0xFF - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x1 - bls _080A4ABC - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080A4AC0 -_080A4ABC: - movs r1, 0 - b _080A4AC2 -_080A4AC0: - movs r1, 0x1 -_080A4AC2: - adds r0, r4, 0 - movs r2, 0 - bl sub_80A438C -_080A4ACA: - ldr r1, =gBattleAnimScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A4A18 - - thumb_func_start ma23_8073484 -ma23_8073484: @ 80A4ADC - push {r4-r6,lr} - ldr r0, =gBattleAnimScriptPtr - ldr r2, [r0] - adds r1, r2, 0x1 - str r1, [r0] - ldrb r5, [r2, 0x1] - cmp r5, 0 - bne _080A4AF4 - movs r5, 0x2 - b _080A4AFE - .pool -_080A4AF4: - cmp r5, 0x1 - bne _080A4AFA - movs r5, 0x3 -_080A4AFA: - cmp r5, 0 - beq _080A4B02 -_080A4AFE: - cmp r5, 0x2 - bne _080A4B0C -_080A4B02: - ldr r0, =gAnimationBankAttacker - b _080A4B0E - .pool -_080A4B0C: - ldr r0, =gAnimationBankTarget -_080A4B0E: - ldrb r6, [r0] - adds r0, r6, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080A4B38 - ldr r2, =gSprites - ldr r0, =gBankSpriteIds - adds r0, r6, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] -_080A4B38: - cmp r5, 0x1 - bls _080A4B78 - movs r0, 0x2 - adds r4, r6, 0 - eors r4, r0 - adds r0, r4, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080A4B78 - ldr r2, =gSprites - ldr r0, =gBankSpriteIds - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - b _080A4B7A - .pool -_080A4B78: - movs r5, 0 -_080A4B7A: - ldr r0, =sub_80A4BB0 - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r5, [r1, 0x8] - strh r6, [r1, 0xC] - ldr r1, =gBattleAnimScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end ma23_8073484 - - thumb_func_start sub_80A4BB0 -sub_80A4BB0: @ 80A4BB0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r1, r0, r1 - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - beq _080A4C3E - ldrb r4, [r1, 0xC] - adds r0, r4, 0 - bl GetBankIdentity - lsls r0, 24 - movs r1, 0xFF - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x1 - bls _080A4BEE - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080A4BF8 -_080A4BEE: - movs r5, 0 - b _080A4BFA - .pool -_080A4BF8: - movs r5, 0x1 -_080A4BFA: - adds r0, r4, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080A4C0C - adds r0, r5, 0 - bl sub_80A477C -_080A4C0C: - ldr r0, =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0x1 - ble _080A4C38 - movs r0, 0x2 - eors r4, r0 - adds r0, r4, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080A4C38 - movs r0, 0x1 - eors r5, r0 - adds r0, r5, 0 - bl sub_80A477C -_080A4C38: - adds r0, r6, 0 - bl DestroyTask -_080A4C3E: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A4BB0 - - thumb_func_start ma0C_set_BLDCNT_to_x3F40_and_BLDALPHA_to_argument -ma0C_set_BLDCNT_to_x3F40_and_BLDALPHA_to_argument: @ 80A4C48 - push {r4,r5,lr} - ldr r2, =gBattleAnimScriptPtr - ldr r0, [r2] - adds r1, r0, 0x1 - str r1, [r2] - ldrb r5, [r0, 0x1] - adds r0, r1, 0x1 - str r0, [r2] - ldrb r4, [r1, 0x1] - lsls r4, 8 - adds r0, 0x1 - str r0, [r2] - movs r1, 0xFD - lsls r1, 6 - movs r0, 0x50 - bl SetGpuReg - orrs r5, r4 - movs r0, 0x52 - adds r1, r5, 0 - bl SetGpuReg - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end ma0C_set_BLDCNT_to_x3F40_and_BLDALPHA_to_argument - - thumb_func_start ma1E_set_BLDCNT -ma1E_set_BLDCNT: @ 80A4C80 - push {lr} - ldr r3, =gBattleAnimScriptPtr - ldr r0, [r3] - adds r2, r0, 0x1 - str r2, [r3] - ldrb r1, [r0, 0x1] - adds r0, r2, 0x1 - str r0, [r3] - ldrb r2, [r2, 0x1] - lsls r2, 8 - adds r0, 0x1 - str r0, [r3] - orrs r1, r2 - movs r0, 0x50 - bl SetGpuReg - pop {r0} - bx r0 - .pool - thumb_func_end ma1E_set_BLDCNT - - thumb_func_start ma0D_reset_BLDCNT_and_BLDALPHA -ma0D_reset_BLDCNT_and_BLDALPHA: @ 80A4CA8 - push {lr} - ldr r1, =gBattleAnimScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - pop {r0} - bx r0 - .pool - thumb_func_end ma0D_reset_BLDCNT_and_BLDALPHA - - thumb_func_start ma0E_call -ma0E_call: @ 80A4CCC - push {r4,lr} - ldr r4, =gBattleAnimScriptPtr - ldr r1, [r4] - adds r3, r1, 0x1 - str r3, [r4] - ldr r2, =gBattleAnimScriptRetAddr - adds r0, r1, 0x5 - str r0, [r2] - ldrb r1, [r1, 0x1] - ldrb r0, [r3, 0x1] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r3, 0x2] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r3, 0x3] - lsls r0, 24 - adds r1, r0 - str r1, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end ma0E_call - - thumb_func_start sub_80A4D00 -sub_80A4D00: @ 80A4D00 - ldr r0, =gBattleAnimScriptPtr - ldr r1, =gBattleAnimScriptRetAddr - ldr r1, [r1] - str r1, [r0] - bx lr - .pool - thumb_func_end sub_80A4D00 - - thumb_func_start ma10_080736AC -ma10_080736AC: @ 80A4D14 - push {r4,r5,lr} - ldr r5, =gBattleAnimScriptPtr - ldr r1, [r5] - adds r0, r1, 0x1 - str r0, [r5] - ldrb r2, [r1, 0x1] - adds r3, r0, 0x1 - str r3, [r5] - ldrb r4, [r0, 0x1] - ldrb r0, [r3, 0x1] - lsls r0, 8 - orrs r4, r0 - adds r1, 0x4 - str r1, [r5] - ldr r0, =gBattleAnimArgs - lsls r2, 1 - adds r2, r0 - strh r4, [r2] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end ma10_080736AC - - thumb_func_start ma11_if_else -ma11_if_else: @ 80A4D48 - push {lr} - ldr r3, =gBattleAnimScriptPtr - ldr r2, [r3] - adds r0, r2, 0x1 - str r0, [r3] - ldr r0, =gUnknown_02038432 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A4D62 - adds r0, r2, 0x5 - str r0, [r3] -_080A4D62: - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - adds r1, r0 - str r1, [r3] - pop {r0} - bx r0 - .pool - thumb_func_end ma11_if_else - - thumb_func_start ma12_cond_if -ma12_cond_if: @ 80A4D88 - push {r4,r5,lr} - ldr r5, =gBattleAnimScriptPtr - ldr r4, [r5] - adds r2, r4, 0x1 - str r2, [r5] - ldrb r1, [r4, 0x1] - adds r3, r2, 0x1 - str r3, [r5] - ldr r0, =gUnknown_02038432 - ldrb r0, [r0] - cmp r1, r0 - bne _080A4DC0 - ldrb r1, [r2, 0x1] - ldrb r0, [r3, 0x1] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r3, 0x2] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r3, 0x3] - lsls r0, 24 - adds r1, r0 - str r1, [r5] - b _080A4DC4 - .pool -_080A4DC0: - adds r0, r4, 0x6 - str r0, [r5] -_080A4DC4: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end ma12_cond_if - - thumb_func_start ma13_goto -ma13_goto: @ 80A4DCC - ldr r3, =gBattleAnimScriptPtr - ldr r0, [r3] - adds r2, r0, 0x1 - str r2, [r3] - ldrb r1, [r0, 0x1] - ldrb r0, [r2, 0x1] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - adds r1, r0 - str r1, [r3] - bx lr - .pool - thumb_func_end ma13_goto - - thumb_func_start IsContest -IsContest: @ 80A4DF0 - push {lr} - ldr r0, =gMain - ldr r1, =0x00000439 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080A4E10 - movs r0, 0 - b _080A4E12 - .pool -_080A4E10: - movs r0, 0x1 -_080A4E12: - pop {r1} - bx r1 - thumb_func_end IsContest - - thumb_func_start ma14_load_background -ma14_load_background: @ 80A4E18 - push {r4,lr} - ldr r1, =gBattleAnimScriptPtr - ldr r2, [r1] - adds r0, r2, 0x1 - str r0, [r1] - ldrb r4, [r2, 0x1] - adds r0, 0x1 - str r0, [r1] - ldr r0, =task_p5_load_battle_screen_elements - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x8] - ldr r1, =gUnknown_02038433 - movs r0, 0x1 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end ma14_load_background - - thumb_func_start sub_80A4E5C -sub_80A4E5C: @ 80A4E5C - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r2, =gBattleAnimScriptPtr - ldr r1, [r2] - adds r0, r1, 0x1 - str r0, [r2] - ldrb r3, [r1, 0x1] - mov r8, r3 - ldrb r7, [r0, 0x1] - ldrb r6, [r0, 0x2] - adds r1, 0x4 - str r1, [r2] - ldr r0, =task_p5_load_battle_screen_elements - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080A4EA8 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - strh r6, [r0, 0x8] - b _080A4EDA - .pool -_080A4EA8: - ldr r0, =gAnimationBankTarget - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _080A4ECC - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - strh r7, [r0, 0x8] - b _080A4EDA - .pool -_080A4ECC: - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - mov r1, r8 - strh r1, [r0, 0x8] -_080A4EDA: - ldr r1, =gUnknown_02038433 - movs r0, 0x1 - strb r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A4E5C - - thumb_func_start task_p5_load_battle_screen_elements -task_p5_load_battle_screen_elements: @ 80A4EF4 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r6, [r4, 0x1C] - movs r0, 0x1C - ldrsh r3, [r4, r0] - adds r7, r1, 0 - cmp r3, 0 - bne _080A4F2C - str r3, [sp] - movs r0, 0xE8 - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginHardwarePaletteFade - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] - b _080A4FBC - .pool -_080A4F2C: - ldr r2, =gPaletteFade - ldrb r1, [r2, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080A4FBC - cmp r3, 0x1 - bne _080A4F50 - adds r0, r6, 0x1 - strh r0, [r4, 0x1C] - ldr r1, =gUnknown_02038433 - movs r0, 0x2 - strb r0, [r1] - b _080A4F94 - .pool -_080A4F50: - cmp r3, 0x2 - bne _080A4F94 - ldrh r0, [r4, 0x8] - lsls r2, r0, 16 - asrs r1, r2, 16 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _080A4F68 - bl dp01t_11_3_message_for_player_only - b _080A4F6E -_080A4F68: - lsrs r0, r2, 16 - bl sub_80A4FC8 -_080A4F6E: - movs r0, 0x1 - str r0, [sp] - movs r0, 0xE8 - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginHardwarePaletteFade - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x1C] - adds r1, 0x1 - strh r1, [r0, 0x1C] - b _080A4FBC - .pool -_080A4F94: - ldrb r1, [r2, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080A4FBC - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r7 - movs r1, 0x1C - ldrsh r0, [r0, r1] - cmp r0, 0x3 - bne _080A4FBC - adds r0, r5, 0 - bl DestroyTask - ldr r0, =gUnknown_02038433 - strb r4, [r0] -_080A4FBC: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end task_p5_load_battle_screen_elements - - thumb_func_start sub_80A4FC8 -sub_80A4FC8: @ 80A4FC8 - push {r4-r7,lr} - lsls r0, 16 - lsrs r7, r0, 16 - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080A5050 - ldr r6, =gUnknown_08525D54 - lsls r4, r7, 1 - adds r4, r7 - lsls r4, 2 - adds r0, r6, 0 - adds r0, 0x8 - adds r0, r4, r0 - ldr r0, [r0] - ldr r5, =0x0201c000 - adds r1, r5, 0 - bl LZDecompressWram - bl sub_80A6D94 - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x80 - lsls r2, 1 - adds r1, r5, 0 - movs r3, 0 - bl sub_80A4720 - ldr r1, =0x0600d000 - ldr r0, =0x040000d4 - str r5, [r0] - str r1, [r0, 0x4] - ldr r1, =0x84000200 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - adds r0, r4, r6 - ldr r0, [r0] - ldr r1, =0x06002000 - bl LZDecompressVram - adds r6, 0x4 - adds r4, r6 - ldr r4, [r4] - bl sub_80A6D94 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 20 - adds r0, r4, 0 - movs r2, 0x20 - bl LoadCompressedPalette - b _080A507E - .pool -_080A5050: - ldr r5, =gUnknown_08525D54 - lsls r4, r7, 1 - adds r4, r7 - lsls r4, 2 - adds r0, r5, 0 - adds r0, 0x8 - adds r0, r4, r0 - ldr r0, [r0] - ldr r1, =0x0600d000 - bl LZDecompressVram - adds r0, r4, r5 - ldr r0, [r0] - ldr r1, =0x06008000 - bl LZDecompressVram - adds r5, 0x4 - adds r4, r5 - ldr r0, [r4] - movs r1, 0x20 - movs r2, 0x20 - bl LoadCompressedPalette -_080A507E: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A4FC8 - - thumb_func_start dp01t_11_3_message_for_player_only -dp01t_11_3_message_for_player_only: @ 80A5090 - push {lr} - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080A50A2 - bl sub_80D7724 - b _080A50A6 -_080A50A2: - bl load_battle_oval_graphics -_080A50A6: - pop {r0} - bx r0 - thumb_func_end dp01t_11_3_message_for_player_only - - thumb_func_start ma15_load_battle_screen_elements -ma15_load_battle_screen_elements: @ 80A50AC - push {lr} - ldr r1, =gBattleAnimScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - ldr r0, =task_p5_load_battle_screen_elements - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, =0x0000ffff - strh r0, [r1, 0x8] - ldr r1, =gUnknown_02038433 - movs r0, 0x1 - strb r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end ma15_load_battle_screen_elements - - thumb_func_start ma16_wait_for_battle_screen_elements_s2 -ma16_wait_for_battle_screen_elements_s2: @ 80A50F0 - push {lr} - ldr r0, =gUnknown_02038433 - ldrb r0, [r0] - cmp r0, 0x2 - bne _080A5114 - ldr r1, =gBattleAnimScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - ldr r1, =gAnimFramesToWait - movs r0, 0 - b _080A5118 - .pool -_080A5114: - ldr r1, =gAnimFramesToWait - movs r0, 0x1 -_080A5118: - strb r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end ma16_wait_for_battle_screen_elements_s2 - - thumb_func_start sub_80A5124 -sub_80A5124: @ 80A5124 - push {lr} - ldr r0, =gUnknown_02038433 - ldrb r2, [r0] - cmp r2, 0 - bne _080A5148 - ldr r0, =gBattleAnimScriptPtr - ldr r1, [r0] - adds r1, 0x1 - str r1, [r0] - ldr r0, =gAnimFramesToWait - strb r2, [r0] - b _080A514E - .pool -_080A5148: - ldr r1, =gAnimFramesToWait - movs r0, 0x1 - strb r0, [r1] -_080A514E: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A5124 - - thumb_func_start ma18_load_background_probably -ma18_load_background_probably: @ 80A5158 - push {r4,lr} - ldr r4, =gBattleAnimScriptPtr - ldr r1, [r4] - adds r0, r1, 0x1 - str r0, [r4] - ldrb r0, [r1, 0x1] - bl sub_80A4FC8 - ldr r0, [r4] - adds r0, 0x1 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end ma18_load_background_probably - - thumb_func_start BattleAnimGetPanControl -BattleAnimGetPanControl: @ 80A5178 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080A51C0 - ldr r0, =gBattleSpritesDataPtr - ldr r1, [r0] - ldr r0, =gAnimationBankAttacker - ldrb r2, [r0] - ldr r1, [r1, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080A51C0 - adds r0, r2, 0 - bl GetBankSide - lsls r0, 24 - movs r4, 0xC0 - cmp r0, 0 - beq _080A5252 - movs r4, 0x3F - b _080A5252 - .pool -_080A51C0: - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080A51E8 - ldr r0, =gAnimationBankAttacker - ldr r1, =gAnimationBankTarget - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bne _080A524C - cmp r0, 0x2 - bne _080A524C - cmp r4, 0x3F - beq _080A525E - b _080A524C - .pool -_080A51E8: - ldr r0, =gAnimationBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _080A5226 - ldr r0, =gAnimationBankTarget - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _080A5252 - lsls r0, r4, 24 - asrs r1, r0, 24 - cmp r1, 0x3F - bne _080A5218 - movs r4, 0xC0 - b _080A5252 - .pool -_080A5218: - movs r0, 0x40 - negs r0, r0 - cmp r1, r0 - beq _080A5252 - negs r0, r1 - lsls r0, 24 - b _080A5250 -_080A5226: - ldr r0, =gAnimationBankTarget - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A524C - lsls r0, r4, 24 - asrs r0, 24 - movs r1, 0x40 - negs r1, r1 - cmp r0, r1 - bne _080A5252 - movs r4, 0x3F - b _080A5252 - .pool -_080A524C: - lsls r0, r4, 24 - negs r0, r0 -_080A5250: - lsrs r4, r0, 24 -_080A5252: - lsls r0, r4, 24 - asrs r0, 24 - cmp r0, 0x3F - ble _080A525E - movs r4, 0x3F - b _080A526C -_080A525E: - lsls r0, r4, 24 - asrs r0, 24 - movs r1, 0x40 - negs r1, r1 - cmp r0, r1 - bge _080A526C - movs r4, 0xC0 -_080A526C: - lsls r0, r4, 24 - asrs r0, 24 - pop {r4} - pop {r1} - bx r1 - thumb_func_end BattleAnimGetPanControl - - thumb_func_start sub_80A5278 -sub_80A5278: @ 80A5278 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080A52C0 - ldr r0, =gBattleSpritesDataPtr - ldr r1, [r0] - ldr r0, =gAnimationBankAttacker - ldrb r2, [r0] - ldr r1, [r1, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080A52C0 - adds r0, r2, 0 - bl GetBankSide - lsls r0, 24 - movs r4, 0xC0 - cmp r0, 0 - beq _080A52DE - movs r4, 0x3F - b _080A52DE - .pool -_080A52C0: - ldr r0, =gAnimationBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _080A52D8 - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080A52DE -_080A52D8: - lsls r0, r4, 24 - negs r0, r0 - lsrs r4, r0, 24 -_080A52DE: - lsls r0, r4, 24 - asrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80A5278 - - thumb_func_start sub_80A52EC -sub_80A52EC: @ 80A52EC - push {lr} - lsls r0, 16 - lsrs r1, r0, 16 - asrs r2, r0, 16 - cmp r2, 0x3F - ble _080A52FC - movs r1, 0x3F - b _080A5306 -_080A52FC: - movs r0, 0x40 - negs r0, r0 - cmp r2, r0 - bge _080A5306 - ldr r1, =0x0000ffc0 -_080A5306: - lsls r0, r1, 16 - asrs r0, 16 - pop {r1} - bx r1 - .pool - thumb_func_end sub_80A52EC - - thumb_func_start sub_80A5314 -sub_80A5314: @ 80A5314 - push {lr} - lsls r2, 16 - lsrs r2, 16 - adds r3, r2, 0 - lsls r0, 16 - asrs r0, 16 - lsls r1, 16 - asrs r1, 16 - cmp r0, r1 - bge _080A5332 - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0 - bge _080A5342 - b _080A5340 -_080A5332: - cmp r0, r1 - ble _080A5348 - lsls r0, r3, 16 - asrs r0, 16 - cmp r0, 0 - bge _080A5340 - negs r0, r0 -_080A5340: - negs r0, r0 -_080A5342: - lsls r0, 16 - lsrs r0, 16 - b _080A534A -_080A5348: - movs r0, 0 -_080A534A: - lsls r0, 16 - asrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_80A5314 - - thumb_func_start ma19_08073BC8 -ma19_08073BC8: @ 80A5354 - push {r4,r5,lr} - ldr r5, =gBattleAnimScriptPtr - ldr r0, [r5] - adds r1, r0, 0x1 - str r1, [r5] - ldrb r4, [r0, 0x1] - ldrb r0, [r1, 0x1] - lsls r0, 8 - orrs r4, r0 - movs r0, 0x2 - ldrsb r0, [r1, r0] - bl BattleAnimGetPanControl - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - adds r0, r4, 0 - bl PlaySE12WithPanning - ldr r0, [r5] - adds r0, 0x3 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end ma19_08073BC8 - - thumb_func_start ma1A_8073C00 -ma1A_8073C00: @ 80A538C - push {r4,lr} - ldr r4, =gBattleAnimScriptPtr - ldr r1, [r4] - adds r0, r1, 0x1 - str r0, [r4] - movs r0, 0x1 - ldrsb r0, [r1, r0] - bl BattleAnimGetPanControl - lsls r0, 24 - asrs r0, 24 - bl SE12PanpotControl - ldr r0, [r4] - adds r0, 0x1 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end ma1A_8073C00 - - thumb_func_start ma1B_8073C2C -ma1B_8073C2C: @ 80A53B8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, =gBattleAnimScriptPtr - mov r10, r0 - ldr r0, [r0] - adds r1, r0, 0x1 - mov r2, r10 - str r1, [r2] - ldrb r0, [r0, 0x1] - mov r9, r0 - ldrb r0, [r1, 0x1] - lsls r0, 8 - mov r2, r9 - orrs r2, r0 - mov r9, r2 - ldrb r4, [r1, 0x3] - ldrb r6, [r1, 0x4] - ldrb r7, [r1, 0x5] - movs r0, 0x2 - ldrsb r0, [r1, r0] - bl BattleAnimGetPanControl - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, 24 - asrs r4, 24 - adds r0, r4, 0 - bl BattleAnimGetPanControl - mov r8, r0 - lsls r5, 24 - asrs r5, 24 - mov r0, r8 - lsls r0, 24 - asrs r0, 24 - mov r8, r0 - lsls r6, 24 - asrs r6, 24 - adds r0, r5, 0 - mov r1, r8 - adds r2, r6, 0 - bl sub_80A5314 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =c3_08073CEC - movs r1, 0x1 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r5, [r1, 0x8] - mov r2, r8 - strh r2, [r1, 0xA] - lsls r4, 24 - asrs r4, 24 - strh r4, [r1, 0xC] - strh r7, [r1, 0xE] - strh r5, [r1, 0x10] - mov r0, r9 - adds r1, r5, 0 - bl PlaySE12WithPanning - ldr r1, =gAnimSoundTaskCount - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - mov r1, r10 - ldr r0, [r1] - adds r0, 0x6 - 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 ma1B_8073C2C - - thumb_func_start c3_08073CEC -c3_08073CEC: @ 80A5478 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r7, 0 - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r2, r0, r1 - ldrh r0, [r2, 0x18] - adds r1, r0, 0x1 - strh r1, [r2, 0x18] - lsls r0, 16 - asrs r0, 16 - movs r3, 0xE - ldrsh r1, [r2, r3] - cmp r0, r1 - blt _080A54FC - strh r7, [r2, 0x18] - ldrh r6, [r2, 0x8] - ldrh r3, [r2, 0xA] - movs r4, 0x10 - ldrsh r0, [r2, r4] - movs r4, 0xC - ldrsh r1, [r2, r4] - adds r0, r1 - lsls r0, 16 - lsrs r4, r0, 16 - strh r4, [r2, 0x10] - cmp r1, 0 - bne _080A54C0 - lsls r2, r3, 16 - b _080A54E4 - .pool -_080A54C0: - lsls r1, r6, 16 - lsls r0, r3, 16 - asrs r3, r0, 16 - adds r2, r0, 0 - cmp r1, r2 - bge _080A54D6 - lsls r0, r4, 16 - asrs r0, 16 - cmp r0, r3 - blt _080A54E0 - b _080A54E4 -_080A54D6: - lsls r0, r4, 16 - asrs r0, 16 - cmp r0, r3 - bgt _080A54E0 - movs r7, 0x1 -_080A54E0: - cmp r7, 0 - beq _080A54F4 -_080A54E4: - lsrs r4, r2, 16 - adds r0, r5, 0 - bl DestroyTask - ldr r1, =gAnimSoundTaskCount - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] -_080A54F4: - lsls r0, r4, 24 - asrs r0, 24 - bl SE12PanpotControl -_080A54FC: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end c3_08073CEC - - thumb_func_start sub_80A5508 -sub_80A5508: @ 80A5508 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - ldr r0, =gBattleAnimScriptPtr - mov r9, r0 - ldr r0, [r0] - adds r1, r0, 0x1 - mov r2, r9 - str r1, [r2] - ldrb r0, [r0, 0x1] - mov r8, r0 - ldrb r0, [r1, 0x1] - lsls r0, 8 - mov r2, r8 - orrs r2, r0 - mov r8, r2 - ldrb r4, [r1, 0x2] - ldrb r5, [r1, 0x3] - ldrb r6, [r1, 0x4] - ldrb r1, [r1, 0x5] - mov r10, r1 - ldr r0, =c3_08073CEC - movs r1, 0x1 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - lsls r4, 24 - asrs r4, 24 - strh r4, [r1, 0x8] - lsls r5, 24 - asrs r5, 24 - strh r5, [r1, 0xA] - lsls r6, 24 - asrs r6, 24 - strh r6, [r1, 0xC] - mov r0, r10 - strh r0, [r1, 0xE] - strh r4, [r1, 0x10] - mov r0, r8 - adds r1, r4, 0 - bl PlaySE12WithPanning - ldr r1, =gAnimSoundTaskCount - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - mov r1, r9 - ldr r0, [r1] - adds r0, 0x6 - str r0, [r1] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A5508 - - thumb_func_start sub_80A559C -sub_80A559C: @ 80A559C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, =gBattleAnimScriptPtr - mov r10, r0 - ldr r0, [r0] - adds r1, r0, 0x1 - mov r2, r10 - str r1, [r2] - ldrb r0, [r0, 0x1] - mov r9, r0 - ldrb r0, [r1, 0x1] - lsls r0, 8 - mov r2, r9 - orrs r2, r0 - mov r9, r2 - ldrb r4, [r1, 0x3] - ldrb r0, [r1, 0x4] - mov r8, r0 - ldrb r7, [r1, 0x5] - movs r0, 0x2 - ldrsb r0, [r1, r0] - bl sub_80A5278 - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - lsls r4, 24 - asrs r4, 24 - adds r0, r4, 0 - bl sub_80A5278 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - mov r0, r8 - bl sub_80A5278 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =c3_08073CEC - movs r1, 0x1 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - lsls r6, 24 - asrs r6, 24 - strh r6, [r1, 0x8] - lsls r5, 24 - asrs r5, 24 - strh r5, [r1, 0xA] - lsls r4, 24 - asrs r4, 24 - strh r4, [r1, 0xC] - strh r7, [r1, 0xE] - strh r6, [r1, 0x10] - mov r0, r9 - adds r1, r6, 0 - bl PlaySE12WithPanning - ldr r1, =gAnimSoundTaskCount - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - mov r2, r10 - ldr r0, [r2] - adds r0, 0x6 - str r0, [r2] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A559C - - thumb_func_start ma1C_8073ED0 -ma1C_8073ED0: @ 80A565C - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - ldr r6, =gBattleAnimScriptPtr - ldr r0, [r6] - adds r1, r0, 0x1 - str r1, [r6] - ldrb r5, [r0, 0x1] - ldrb r0, [r1, 0x1] - lsls r0, 8 - orrs r5, r0 - ldrb r0, [r1, 0x3] - mov r8, r0 - ldrb r2, [r1, 0x4] - mov r9, r2 - movs r0, 0x2 - ldrsb r0, [r1, r0] - bl BattleAnimGetPanControl - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =sub_80A56E4 - movs r1, 0x1 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r5, [r1, 0x8] - lsls r4, 24 - asrs r4, 24 - strh r4, [r1, 0xA] - mov r2, r8 - strh r2, [r1, 0xC] - mov r2, r9 - strh r2, [r1, 0xE] - mov r2, r8 - strh r2, [r1, 0x18] - ldr r1, [r1] - bl _call_via_r1 - ldr r1, =gAnimSoundTaskCount - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r0, [r6] - adds r0, 0x5 - str r0, [r6] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end ma1C_8073ED0 - - thumb_func_start sub_80A56E4 -sub_80A56E4: @ 80A56E4 - 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 r2, r0, r1 - ldrh r0, [r2, 0x18] - adds r1, r0, 0x1 - strh r1, [r2, 0x18] - lsls r0, 16 - asrs r0, 16 - movs r3, 0xC - ldrsh r1, [r2, r3] - cmp r0, r1 - blt _080A5732 - movs r0, 0 - strh r0, [r2, 0x18] - ldrh r0, [r2, 0x8] - ldrb r1, [r2, 0xA] - ldrh r4, [r2, 0xE] - subs r4, 0x1 - strh r4, [r2, 0xE] - lsls r4, 24 - lsrs r4, 24 - lsls r1, 24 - asrs r1, 24 - bl PlaySE12WithPanning - cmp r4, 0 - bne _080A5732 - adds r0, r5, 0 - bl DestroyTask - ldr r1, =gAnimSoundTaskCount - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] -_080A5732: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A56E4 - - thumb_func_start ma1D_08073FB4 -ma1D_08073FB4: @ 80A5740 - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r6, =gBattleAnimScriptPtr - ldr r0, [r6] - adds r1, r0, 0x1 - str r1, [r6] - ldrb r5, [r0, 0x1] - ldrb r0, [r1, 0x1] - lsls r0, 8 - orrs r5, r0 - ldrb r0, [r1, 0x3] - mov r8, r0 - movs r0, 0x2 - ldrsb r0, [r1, r0] - bl BattleAnimGetPanControl - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =sub_80A57B4 - movs r1, 0x1 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r5, [r1, 0x8] - lsls r4, 24 - asrs r4, 24 - strh r4, [r1, 0xA] - mov r0, r8 - strh r0, [r1, 0xC] - ldr r1, =gAnimSoundTaskCount - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r0, [r6] - adds r0, 0x4 - str r0, [r6] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end ma1D_08073FB4 - - thumb_func_start sub_80A57B4 -sub_80A57B4: @ 80A57B4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r1 - ldrh r0, [r2, 0xC] - subs r1, r0, 0x1 - strh r1, [r2, 0xC] - lsls r0, 16 - cmp r0, 0 - bgt _080A57E8 - ldrh r0, [r2, 0x8] - movs r1, 0xA - ldrsb r1, [r2, r1] - bl PlaySE12WithPanning - adds r0, r4, 0 - bl DestroyTask - ldr r1, =gAnimSoundTaskCount - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] -_080A57E8: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A57B4 - - thumb_func_start sub_80A57F8 -sub_80A57F8: @ 80A57F8 - push {r4-r6,lr} - ldr r4, =gBattleAnimScriptPtr - ldr r1, [r4] - adds r3, r1, 0x1 - str r3, [r4] - ldrb r2, [r1, 0x1] - ldrb r0, [r3, 0x1] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r3, 0x2] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r3, 0x3] - lsls r0, 24 - adds r6, r2, r0 - adds r0, r1, 0x5 - str r0, [r4] - ldrb r0, [r1, 0x5] - adds r1, 0x6 - str r1, [r4] - cmp r0, 0 - beq _080A5842 - adds r5, r4, 0 - ldr r4, =gBattleAnimArgs - adds r3, r0, 0 -_080A582A: - ldr r2, [r5] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - strh r1, [r4] - adds r2, 0x2 - str r2, [r5] - adds r4, 0x2 - subs r3, 0x1 - cmp r3, 0 - bne _080A582A -_080A5842: - adds r0, r6, 0 - movs r1, 0x1 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - bl _call_via_r6 - ldr r1, =gAnimSoundTaskCount - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A57F8 - - thumb_func_start ma20_wait_for_something -ma20_wait_for_something: @ 80A586C - push {r4,r5,lr} - ldr r0, =gAnimSoundTaskCount - ldrb r5, [r0] - cmp r5, 0 - bne _080A58B4 - bl IsSEPlaying - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _080A58CC - ldr r4, =gSoundAnimFramesToWait - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x5A - bls _080A58BA - ldr r0, =gMPlay_SE1 - bl m4aMPlayStop - ldr r0, =gMPlay_SE2 - bl m4aMPlayStop - strh r5, [r4] - b _080A58DE - .pool -_080A58B4: - ldr r1, =gSoundAnimFramesToWait - movs r0, 0 - strh r0, [r1] -_080A58BA: - ldr r1, =gAnimFramesToWait - movs r0, 0x1 - strb r0, [r1] - b _080A58DE - .pool -_080A58CC: - ldr r0, =gSoundAnimFramesToWait - movs r2, 0 - strh r1, [r0] - ldr r1, =gBattleAnimScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - ldr r0, =gAnimFramesToWait - strb r2, [r0] -_080A58DE: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end ma20_wait_for_something - - thumb_func_start ma21_08074164 -ma21_08074164: @ 80A58F0 - push {r4-r6,lr} - ldr r5, =gBattleAnimScriptPtr - ldr r4, [r5] - adds r3, r4, 0x1 - str r3, [r5] - ldrb r2, [r4, 0x1] - ldrb r1, [r3, 0x1] - ldrb r0, [r3, 0x2] - lsls r0, 8 - orrs r1, r0 - ldr r0, =gBattleAnimArgs - lsls r2, 1 - adds r2, r0 - lsls r1, 16 - asrs r1, 16 - movs r6, 0 - ldrsh r0, [r2, r6] - cmp r1, r0 - bne _080A5938 - ldrb r1, [r3, 0x3] - ldrb r0, [r3, 0x4] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r3, 0x6] - lsls r0, 24 - adds r1, r0 - str r1, [r5] - b _080A593E - .pool -_080A5938: - adds r0, r4, 0 - adds r0, 0x8 - str r0, [r5] -_080A593E: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end ma21_08074164 - - thumb_func_start sub_80A5944 -sub_80A5944: @ 80A5944 - push {r4,lr} - ldr r4, =gBattleAnimScriptPtr - ldr r0, [r4] - adds r0, 0x1 - str r0, [r4] - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080A5978 - ldr r2, [r4] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - adds r1, r0 - str r1, [r4] - b _080A597E - .pool -_080A5978: - ldr r0, [r4] - adds r0, 0x4 - str r0, [r4] -_080A597E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A5944 - - thumb_func_start sub_80A5984 -sub_80A5984: @ 80A5984 - push {r4,lr} - ldr r0, =gBattleAnimScriptPtr - ldr r1, [r0] - ldrb r2, [r1, 0x1] - adds r1, 0x2 - str r1, [r0] - cmp r2, 0 - beq _080A59A0 - ldr r0, =gAnimationBankTarget - b _080A59A2 - .pool -_080A59A0: - ldr r0, =gAnimationBankAttacker -_080A59A2: - ldrb r0, [r0] - bl GetBankIdentity - lsls r0, 24 - lsrs r4, r0, 24 - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080A59D2 - cmp r4, 0 - beq _080A59BE - cmp r4, 0x3 - bne _080A59D2 -_080A59BE: - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0x1 - bl lcd_bg_operations - movs r0, 0x2 - movs r1, 0x4 - movs r2, 0x2 - bl lcd_bg_operations -_080A59D2: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A5984 - - thumb_func_start sub_80A59DC -sub_80A59DC: @ 80A59DC - push {lr} - ldr r0, =gBattleAnimScriptPtr - ldr r1, [r0] - adds r1, 0x1 - str r1, [r0] - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080A5A04 - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0x1 - bl lcd_bg_operations - movs r0, 0x2 - movs r1, 0x4 - movs r2, 0x2 - bl lcd_bg_operations -_080A5A04: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A59DC - - thumb_func_start sub_80A5A0C -sub_80A5A0C: @ 80A5A0C - push {r4-r7,lr} - ldr r1, =gBattleAnimScriptPtr - ldr r0, [r1] - ldrb r6, [r0, 0x1] - adds r0, 0x2 - str r0, [r1] - ldr r7, =gAnimationBankAttacker - ldrb r0, [r7] - bl GetBankSide - adds r4, r0, 0 - ldr r5, =gAnimationBankTarget - ldrb r0, [r5] - bl GetBankSide - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - beq _080A5A78 - cmp r6, 0 - beq _080A5A48 - ldrb r0, [r5] - b _080A5A4A - .pool -_080A5A48: - ldrb r0, [r7] -_080A5A4A: - bl GetBankIdentity - lsls r0, 24 - lsrs r4, r0, 24 - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080A5A78 - cmp r4, 0 - beq _080A5A64 - cmp r4, 0x3 - bne _080A5A78 -_080A5A64: - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0x1 - bl lcd_bg_operations - movs r0, 0x2 - movs r1, 0x4 - movs r2, 0x2 - bl lcd_bg_operations -_080A5A78: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A5A0C - - thumb_func_start ma2B_make_side_invisible -ma2B_make_side_invisible: @ 80A5A80 - push {r4,lr} - ldr r4, =gBattleAnimScriptPtr - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - beq _080A5AA8 - ldr r1, =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_080A5AA8: - ldr r0, [r4] - adds r0, 0x2 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end ma2B_make_side_invisible - - thumb_func_start ma2C_make_side_visible -ma2C_make_side_visible: @ 80A5ABC - push {r4,lr} - ldr r4, =gBattleAnimScriptPtr - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - beq _080A5AE6 - ldr r1, =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] -_080A5AE6: - ldr r0, [r4] - adds r0, 0x2 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end ma2C_make_side_visible - - thumb_func_start sub_80A5AFC -sub_80A5AFC: @ 80A5AFC - push {r4-r7,lr} - ldr r1, =gBattleAnimScriptPtr - ldr r0, [r1] - ldrb r7, [r0, 0x1] - adds r0, 0x2 - str r0, [r1] - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080A5BA6 - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - beq _080A5BA6 - ldr r6, =gAnimationBankAttacker - ldrb r0, [r6] - bl GetBankSide - adds r4, r0, 0 - ldr r5, =gAnimationBankTarget - ldrb r0, [r5] - bl GetBankSide - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _080A5BA6 - cmp r7, 0 - bne _080A5B54 - ldrb r0, [r6] - bl GetBankIdentity_permutated - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0 - b _080A5B60 - .pool -_080A5B54: - ldrb r0, [r5] - bl GetBankIdentity_permutated - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x1 -_080A5B60: - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - beq _080A5BA6 - ldr r1, =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r2, r0, r1 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r3] - cmp r4, 0x2 - bne _080A5B90 - ldrb r0, [r2, 0x5] - movs r1, 0xC - orrs r0, r1 - strb r0, [r2, 0x5] -_080A5B90: - cmp r4, 0x1 - bne _080A5BA0 - movs r0, 0 - bl sub_80A477C - b _080A5BA6 - .pool -_080A5BA0: - movs r0, 0x1 - bl sub_80A477C -_080A5BA6: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A5AFC - - thumb_func_start sub_80A5BAC -sub_80A5BAC: @ 80A5BAC - push {r4-r7,lr} - ldr r1, =gBattleAnimScriptPtr - ldr r0, [r1] - ldrb r7, [r0, 0x1] - adds r0, 0x2 - str r0, [r1] - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080A5C38 - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - beq _080A5C38 - ldr r6, =gAnimationBankAttacker - ldrb r0, [r6] - bl GetBankSide - adds r4, r0, 0 - ldr r5, =gAnimationBankTarget - ldrb r0, [r5] - bl GetBankSide - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _080A5C38 - cmp r7, 0 - bne _080A5C04 - ldrb r0, [r6] - bl GetBankIdentity_permutated - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0 - b _080A5C10 - .pool -_080A5C04: - ldrb r0, [r5] - bl GetBankIdentity_permutated - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x1 -_080A5C10: - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - beq _080A5C38 - cmp r4, 0x2 - bne _080A5C38 - ldr r1, =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0, 0x5] -_080A5C38: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A5BAC - - thumb_func_start ma2F_stop_music -ma2F_stop_music: @ 80A5C44 - push {lr} - ldr r0, =gMPlay_SE1 - bl m4aMPlayStop - ldr r0, =gMPlay_SE2 - bl m4aMPlayStop - ldr r1, =gBattleAnimScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end ma2F_stop_music - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_anim_80A9C70.s b/asm/battle_anim_80A9C70.s index ca6572e1a..9b2939673 100644 --- a/asm/battle_anim_80A9C70.s +++ b/asm/battle_anim_80A9C70.s @@ -26,9 +26,9 @@ sub_80A9C70: @ 80A9C70 lsls r0, 24 lsrs r0, 24 mov r8, r0 - ldr r0, =gUnknown_08524F84 + ldr r0, =gBattleAnimPicTable + 0x440 bl LoadCompressedObjectPicUsingHeap - ldr r0, =gUnknown_0852588C + ldr r0, =gBattleAnimPaletteTable + 0x440 bl LoadCompressedObjectPaletteUsingHeap ldr r1, =gTasks mov r2, r8 @@ -331,7 +331,7 @@ sub_80A9EF4: @ 80A9EF4 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -616,7 +616,7 @@ _080AA16C: movs r1, 0 bl SetGpuReg adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _080AA186: pop {r4} pop {r0} @@ -829,7 +829,7 @@ _080AA322: b _080AA330 _080AA328: adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask b _080AA352 _080AA330: ldr r0, =gBattleAnimArgs @@ -863,13 +863,13 @@ move_anim_start_t2: @ 80AA364 lsrs r4, 24 lsls r1, 24 lsrs r1, 24 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker strb r4, [r0] - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget strb r4, [r0] ldr r0, =gUnknown_082C92FC movs r2, 0 - bl move_something + bl DoBattleAnim ldr r0, =task0A_80788BC movs r1, 0xA bl CreateTask diff --git a/asm/battle_anim_80D51AC.s b/asm/battle_anim_80D51AC.s index 52b599c4c..3ee1786ad 100755 --- a/asm/battle_anim_80D51AC.s +++ b/asm/battle_anim_80D51AC.s @@ -18,7 +18,7 @@ sub_80D51AC: @ 80D51AC cmp r2, 0xFF bne _080D51D0 adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask b _080D520C .pool _080D51D0: @@ -140,7 +140,7 @@ _080D5288: adds r0, r6 strh r3, [r0, 0x26] adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask b _080D52CA _080D52C6: subs r0, 0x1 @@ -204,7 +204,7 @@ _080D5326: lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 bne _080D533C @@ -216,7 +216,7 @@ _080D533C: .pool _080D5348: ldr r1, =gBankSpriteIds - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] adds r0, r1 _080D5350: @@ -226,7 +226,7 @@ _080D5352: beq _080D5368 _080D5356: adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask b _080D53A6 .pool _080D5368: @@ -359,7 +359,7 @@ _080D5436: adds r0, r7 strh r2, [r0, 0x26] adds r0, r6, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask b _080D5478 _080D5474: subs r0, r2, 0x1 @@ -385,7 +385,7 @@ sub_80D5484: @ 80D5484 cmp r3, 0xFF bne _080D54A8 adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask b _080D54F6 .pool _080D54A8: @@ -584,7 +584,7 @@ _080D55F8: strh r0, [r2, 0x26] _080D5630: adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask b _080D563C _080D5638: subs r0, r2, 0x1 @@ -705,7 +705,7 @@ _080D56F6: cmp r0, 0 bne _080D5728 adds r0, r6, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _080D5728: pop {r4-r7} pop {r0} @@ -829,7 +829,7 @@ _080D5810: strh r0, [r4, 0x24] strh r0, [r4, 0x26] adds r0, r6, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _080D5822: pop {r4-r6} pop {r0} @@ -842,7 +842,7 @@ sub_80D5830: @ 80D5830 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -871,7 +871,7 @@ sub_80D5860: @ 80D5860 movs r1, 0x4 orrs r0, r1 strb r0, [r2] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -892,7 +892,7 @@ _080D5894: strh r2, [r4, 0x2E] strh r0, [r4, 0x32] ldr r1, =gBankSpriteIds - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] @@ -919,7 +919,7 @@ sub_80D58D4: @ 80D58D4 strh r1, [r0, 0x30] ldr r1, =sub_80A6630 str r1, [r0, 0x1C] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite bl StoreSpriteCallbackInData6 pop {r0} bx r0 @@ -970,7 +970,7 @@ sub_80D5944: @ 80D5944 strh r1, [r0, 0x32] ldr r1, =sub_80A6630 str r1, [r0, 0x1C] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite bl StoreSpriteCallbackInData6 pop {r0} bx r0 @@ -988,12 +988,12 @@ sub_80D5968: @ 80D5968 cmp r0, 0 bne _080D598C ldr r1, =gBankSpriteIds - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker b _080D5990 .pool _080D598C: ldr r1, =gBankSpriteIds - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget _080D5990: ldrb r0, [r0] adds r0, r1 @@ -1093,7 +1093,7 @@ _080D5A56: strh r1, [r3, 0x26] _080D5A58: adds r0, r2, 0 - bl move_anim_8072740 + bl DestroyAnimSprite b _080D5A8E .pool _080D5A64: @@ -1133,11 +1133,11 @@ sub_80D5A94: @ 80D5A94 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D5AB0 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker b _080D5AB2 .pool _080D5AB0: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget _080D5AB2: ldrb r2, [r0] ldr r0, =gBankSpriteIds @@ -1192,7 +1192,7 @@ _080D5ADC: movs r1, 0x4 orrs r0, r1 strb r0, [r2] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r5, 0 bl StoreSpriteCallbackInData6 ldr r0, =sub_80A6680 @@ -1218,11 +1218,11 @@ sub_80D5B48: @ 80D5B48 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D5B70 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker b _080D5B72 .pool _080D5B70: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget _080D5B72: ldrb r1, [r0] ldr r0, =gBankSpriteIds @@ -1281,7 +1281,7 @@ _080D5B9C: lsls r0, 16 cmp r0, 0 bne _080D5C04 - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r6, 0 bl StoreSpriteCallbackInData6 b _080D5C0C @@ -1318,7 +1318,7 @@ sub_80D5C20: @ 80D5C20 lsls r1, 2 adds r1, r4 strh r3, [r1, 0x26] - bl move_anim_8072740 + bl DestroyAnimSprite pop {r4} pop {r0} bx r0 @@ -1338,7 +1338,7 @@ sub_80D5C50: @ 80D5C50 bl __divsi3 lsls r0, 16 lsrs r7, r0, 16 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -1485,7 +1485,7 @@ _080D5D70: cmp r0, 0 bne _080D5DA4 adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _080D5DA4: pop {r4,r5} pop {r0} @@ -1518,16 +1518,16 @@ _080D5DD8: beq _080D5DE8 b _080D5E10 _080D5DDE: - ldr r5, =gAnimationBankAttacker + ldr r5, =gAnimBankAttacker b _080D5DEA .pool _080D5DE8: - ldr r5, =gAnimationBankTarget + ldr r5, =gAnimBankTarget _080D5DEA: ldrb r0, [r5] movs r4, 0x2 eors r0, r4 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 beq _080D5E10 @@ -1540,7 +1540,7 @@ _080D5DEA: .pool _080D5E10: adds r0, r6, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask b _080D5E58 _080D5E18: ldr r1, =gTasks @@ -1549,7 +1549,7 @@ _080D5E18: lsls r0, 3 adds r5, r0, r1 strh r2, [r5, 0x8] - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -1609,7 +1609,7 @@ sub_80D5E6C: @ 80D5E6C cmp r1, r0 bls _080D5EAA adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _080D5EAA: pop {r4} pop {r0} @@ -1622,7 +1622,7 @@ sub_80D5EB8: @ 80D5EB8 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 - ldr r6, =gAnimationBankAttacker + ldr r6, =gAnimBankAttacker ldrb r0, [r6] bl GetBankSide lsls r0, 24 @@ -1660,7 +1660,7 @@ _080D5ED4: b _080D5F18 .pool _080D5F14: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] _080D5F18: strh r0, [r2, 0x12] @@ -1817,7 +1817,7 @@ _080D601E: strh r3, [r0, 0x24] strh r3, [r0, 0x26] adds r0, r6, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _080D6050: pop {r3,r4} mov r8, r3 @@ -1923,7 +1923,7 @@ _080D6120: adds r0, r6, 0 bl sub_80A7344 adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _080D612C: pop {r4-r6} pop {r0} @@ -1995,11 +1995,11 @@ _080D61B8: ldrsh r0, [r6, r1] cmp r0, 0 bne _080D61C8 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker b _080D61CA .pool _080D61C8: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget _080D61CA: ldrb r0, [r0] bl GetBankSide @@ -2076,11 +2076,11 @@ sub_80D622C: @ 80D622C ldrsh r0, [r4, r1] cmp r0, 0 bne _080D6274 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker b _080D6276 .pool _080D6274: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget _080D6276: ldrb r0, [r0] bl GetBankSide @@ -2201,7 +2201,7 @@ _080D6364: bl sub_80A7344 _080D636A: adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask b _080D6382 _080D6372: movs r0, 0 @@ -2236,7 +2236,7 @@ sub_80D6388: @ 80D6388 adds r0, r5, r7 lsls r0, 3 adds r6, r0, r4 - ldr r0, =gMovePowerMoveAnim + ldr r0, =gAnimMovePower ldrh r0, [r0] movs r1, 0xC bl __udivsi3 @@ -2248,7 +2248,7 @@ _080D63C0: adds r0, r5, r7 lsls r0, 3 adds r6, r0, r4 - ldr r0, =gMoveDmgMoveAnim + ldr r0, =gAnimMoveDmg ldr r0, [r0] movs r1, 0xC bl __divsi3 @@ -2435,7 +2435,7 @@ _080D6518: adds r0, r2 strh r4, [r0, 0x26] adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _080D654A: pop {r4,r5} pop {r0} diff --git a/asm/battle_anim_80FE840.s b/asm/battle_anim_80FE840.s index 4ecdcbf68..dc927cacc 100644 --- a/asm/battle_anim_80FE840.s +++ b/asm/battle_anim_80FE840.s @@ -22,7 +22,7 @@ sub_80FE840: @ 80FE840 strh r0, [r4, 0x2E] ldrh r0, [r5, 0x6] strh r0, [r4, 0x30] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -80,7 +80,7 @@ sub_80FE898: @ 80FE898 b _080FE8DA _080FE8D4: adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _080FE8DA: pop {r4} pop {r0} @@ -96,7 +96,7 @@ sub_80FE8E0: @ 80FE8E0 ldr r0, =gBattleAnimArgs ldrh r0, [r0, 0x4] strh r0, [r4, 0x2E] - ldr r5, =gAnimationBankAttacker + ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -132,7 +132,7 @@ sub_80FE930: @ 80FE930 bl StartSpriteAnim ldrh r0, [r5, 0x4] strh r0, [r4, 0x2E] - ldr r5, =gAnimationBankTarget + ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -147,7 +147,7 @@ sub_80FE930: @ 80FE930 strh r0, [r4, 0x36] ldr r0, =sub_80A6EEC str r0, [r4, 0x1C] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r4, 0 bl StoreSpriteCallbackInData6 pop {r4,r5} @@ -167,7 +167,7 @@ sub_80FE988: @ 80FE988 strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] strh r0, [r4, 0x30] - ldr r5, =gAnimationBankTarget + ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -212,14 +212,14 @@ _080FE9FA: ldrsh r0, [r4, r1] cmp r0, 0x7F ble _080FEA14 - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] bl sub_80A82E4 adds r0, 0x1 b _080FEA1E .pool _080FEA14: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] bl sub_80A82E4 adds r0, 0x6 @@ -287,7 +287,7 @@ sub_80FEA58: @ 80FEA58 strh r0, [r1, 0x4] strh r2, [r1, 0x6] ldr r4, =gUnknown_08592210 - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] bl sub_80A82E4 adds r3, r0, 0 @@ -304,7 +304,7 @@ _080FEAB2: cmp r0, 0xF bne _080FEAC0 adds r0, r6, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _080FEAC0: pop {r4-r6} pop {r0} @@ -321,7 +321,7 @@ sub_80FEAD8: @ 80FEAD8 ldr r6, =gBattleAnimArgs ldrh r0, [r6, 0x6] strh r0, [r4, 0x2E] - ldr r5, =gAnimationBankAttacker + ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -355,7 +355,7 @@ sub_80FEB28: @ 80FEB28 cmp r0, 0 beq _080FEB3C adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _080FEB3C: pop {r4} pop {r0} @@ -374,7 +374,7 @@ sub_80FEB44: @ 80FEB44 ands r1, r0 adds r0, r5, 0 bl StartSpriteAnim - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -410,7 +410,7 @@ _080FEB94: strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] strh r0, [r5, 0x30] - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -454,7 +454,7 @@ sub_80FEBFC: @ 80FEBFC cmp r0, 0 beq _080FEC12 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite b _080FEC42 _080FEC12: movs r1, 0x38 @@ -494,7 +494,7 @@ sub_80FEC48: @ 80FEC48 adds r6, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -508,7 +508,7 @@ _080FEC68: ldr r4, =gBattleAnimArgs ldrh r0, [r4, 0x8] strh r0, [r6, 0x2E] - ldr r5, =gAnimationBankTarget + ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0 bl sub_80A5C6C @@ -583,7 +583,7 @@ sub_80FECF0: @ 80FECF0 strh r0, [r4, 0x2E] ldr r0, =sub_80A64B0 str r0, [r4, 0x1C] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r4, 0 bl StoreSpriteCallbackInData6 pop {r4} @@ -655,7 +655,7 @@ sub_80FED74: @ 80FED74 lsrs r0, 16 cmp r0, 0x7F bhi _080FEDC8 - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] bl sub_80A8328 movs r1, 0x3 @@ -669,7 +669,7 @@ sub_80FED74: @ 80FED74 b _080FEDEC .pool _080FEDC8: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] bl sub_80A8328 adds r0, 0x1 @@ -704,7 +704,7 @@ _080FEDEC: cmp r0, r1 bne _080FEE10 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _080FEE10: pop {r4} pop {r0} @@ -727,12 +727,12 @@ sub_80FEE1C: @ 80FEE1C bne _080FEE3E _080FEE36: adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask b _080FEE70 _080FEE3E: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] - bl GetBankIdentity_permutated + bl sub_80A8364 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -740,17 +740,17 @@ _080FEE3E: movs r0, 0x2 movs r1, 0x4 movs r2, 0x3 - bl lcd_bg_operations + bl SetAnimBgAttribute b _080FEE6A .pool _080FEE60: movs r0, 0x1 movs r1, 0x4 movs r2, 0x1 - bl lcd_bg_operations + bl SetAnimBgAttribute _080FEE6A: adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _080FEE70: pop {r4} pop {r0} @@ -771,7 +771,7 @@ sub_80FEE78: @ 80FEE78 strh r0, [r4, 0x32] ldrh r0, [r4, 0x22] strh r0, [r4, 0x34] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] movs r1, 0x3 bl sub_80A5C6C @@ -823,14 +823,14 @@ sub_80FEECC: @ 80FEECC lsrs r0, 16 cmp r0, 0x7F bhi _080FEF18 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl sub_80A82E4 subs r0, 0x1 b _080FEF22 .pool _080FEF18: - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl sub_80A82E4 adds r0, 0x1 @@ -847,7 +847,7 @@ _080FEF22: .pool _080FEF38: adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _080FEF3E: pop {r4} pop {r0} @@ -868,7 +868,7 @@ sub_80FEF44: @ 80FEF44 strh r0, [r4, 0x32] ldrh r0, [r4, 0x22] strh r0, [r4, 0x34] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] movs r1, 0x3 bl sub_80A5C6C @@ -939,7 +939,7 @@ _080FEFE4: b _080FEFF6 _080FEFF0: adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _080FEFF6: pop {r4} pop {r0} @@ -950,7 +950,7 @@ _080FEFF6: sub_80FEFFC: @ 80FEFFC push {r4,r5,lr} adds r4, r0, 0 - ldr r5, =gAnimationBankAttacker + ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -1026,7 +1026,7 @@ _080FF08C: sub_80FF090: @ 80FF090 push {r4,lr} adds r4, r0, 0 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -1067,7 +1067,7 @@ _080FF0DE: cmp r0, 0x50 ble _080FF0EC adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _080FF0EC: pop {r4} pop {r0} @@ -1080,7 +1080,7 @@ sub_80FF0F4: @ 80FF0F4 adds r5, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -1098,7 +1098,7 @@ _080FF114: ldrsh r0, [r6, r1] cmp r0, 0 bne _080FF154 - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -1117,7 +1117,7 @@ _080FF114: b _080FF174 .pool _080FF154: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] adds r2, r5, 0 adds r2, 0x32 @@ -1139,11 +1139,11 @@ _080FF174: strh r0, [r5, 0x38] adds r0, r5, 0 bl sub_80A68D4 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide adds r4, r0, 0 - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] bl GetBankSide lsls r4, 24 @@ -1249,7 +1249,7 @@ _080FF256: cmp r7, 0 beq _080FF260 adds r0, r6, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _080FF260: pop {r4-r7} pop {r0} @@ -1265,7 +1265,7 @@ sub_80FF268: @ 80FF268 lsrs r0, 24 cmp r0, 0x1 bne _080FF28A - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] adds r2, r4, 0 adds r2, 0x20 @@ -1350,7 +1350,7 @@ _080FF2F8: ldrsh r0, [r4, r1] cmp r0, 0x7F bgt _080FF338 - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] bl sub_80A8328 lsls r0, 24 @@ -1359,7 +1359,7 @@ _080FF2F8: b _080FF346 .pool _080FF338: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] bl sub_80A8328 lsls r0, 24 @@ -1382,7 +1382,7 @@ _080FF346: cmp r0, 0 bne _080FF36A adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _080FF36A: pop {r4,r5} pop {r0} @@ -1500,7 +1500,7 @@ _080FF424: b _080FF452 _080FF44C: adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _080FF452: pop {r4} pop {r0} @@ -1534,7 +1534,7 @@ sub_80FF458: @ 80FF458 cmp r0, 0 bge _080FF498 adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask b _080FF51C .pool _080FF498: @@ -1550,7 +1550,7 @@ _080FF498: lsls r0, 28 lsrs r0, 30 strh r0, [r6, 0x24] - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget mov r9, r0 ldrb r0, [r0] bl sub_80A8328 @@ -1639,7 +1639,7 @@ sub_80FF53C: @ 80FF53C lsls r1, 16 asrs r1, 24 strh r1, [r5, 0x24] - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -1765,7 +1765,7 @@ _080FF674: cmp r0, 0x3 bne _080FF68E adds r0, r3, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _080FF68E: pop {r4-r7} pop {r0} @@ -1785,7 +1785,7 @@ sub_80FF698: @ 80FF698 beq _080FF704 b _080FF756 _080FF6AA: - ldr r6, =gAnimationBankTarget + ldr r6, =gAnimBankTarget ldrb r0, [r6] bl GetBankSide lsls r0, 24 @@ -1845,7 +1845,7 @@ _080FF704: bl ChangeSpriteAffineAnim movs r0, 0x19 strh r0, [r5, 0x2E] - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -1860,7 +1860,7 @@ _080FF704: strh r0, [r5, 0x36] ldr r0, =sub_80A70C0 str r0, [r5, 0x1C] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r5, 0 bl StoreSpriteCallbackInData6 _080FF756: @@ -1878,7 +1878,7 @@ sub_80FF768: @ 80FF768 ldrsh r0, [r5, r1] cmp r0, 0 bne _080FF7D4 - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -1941,7 +1941,7 @@ sub_80FF7EC: @ 80FF7EC push {r4-r6} sub sp, 0x4 mov r9, r0 - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -1956,7 +1956,7 @@ sub_80FF7EC: @ 80FF7EC lsls r0, 24 lsrs r0, 24 mov r8, r0 - ldr r6, =gAnimationBankTarget + ldr r6, =gAnimBankTarget ldrb r0, [r6] movs r1, 0x2 bl sub_80A5C6C @@ -2081,7 +2081,7 @@ _080FF91C: cmp r1, r0 ble _080FF92E adds r0, r3, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _080FF92E: pop {r0} bx r0 @@ -2095,7 +2095,7 @@ sub_80FF934: @ 80FF934 ldrsh r0, [r6, r1] cmp r0, 0 bne _080FF974 - ldr r5, =gAnimationBankAttacker + ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -2144,7 +2144,7 @@ _080FF974: cmp r1, r0 ble _080FF9AA adds r0, r6, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _080FF9AA: pop {r4-r6} pop {r0} @@ -2284,7 +2284,7 @@ _080FFA98: cmp r0, 0x32 ble _080FFAAC adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _080FFAAC: pop {r4} pop {r0} @@ -2349,7 +2349,7 @@ sub_80FFB18: @ 80FFB18 adds r5, r0, 0 movs r1, 0 bl sub_80A69CC - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0 bl sub_80A5C6C @@ -2360,7 +2360,7 @@ sub_80FFB18: @ 80FFB18 bl sub_80A5C6C lsls r0, 24 lsrs r2, r0, 24 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r1, [r0] movs r0, 0x2 eors r0, r1 @@ -2442,7 +2442,7 @@ _080FFBBA: strh r5, [r4, 0x26] strh r5, [r4, 0x2E] adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _080FFBEC: pop {r4,r5} pop {r0} @@ -2453,7 +2453,7 @@ _080FFBEC: sub_80FFBF4: @ 80FFBF4 push {r4-r6,lr} adds r5, r0, 0 - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x1 bl sub_80A5C6C @@ -2537,7 +2537,7 @@ _080FFC8A: cmp r0, 0 beq _080FFCAA adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _080FFCAA: pop {r4} pop {r0} @@ -2551,7 +2551,7 @@ sub_80FFCB4: @ 80FFCB4 adds r5, r0, 0 movs r1, 0 bl sub_80A6980 - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0 bl sub_80A5C6C @@ -2562,7 +2562,7 @@ sub_80FFCB4: @ 80FFCB4 bl sub_80A5C6C lsls r0, 24 lsrs r2, r0, 24 - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r1, [r0] movs r0, 0x2 eors r0, r1 @@ -2640,7 +2640,7 @@ _080FFD56: cmp r0, 0 bne _080FFD8A movs r0, 0x3F - bl BattleAnimGetPanControl + bl BattleAnimAdjustPanning adds r1, r0, 0 lsls r1, 24 asrs r1, 24 @@ -2658,7 +2658,7 @@ _080FFD8A: str r0, [r4, 0x1C] movs r0, 0x40 negs r0, r0 - bl BattleAnimGetPanControl + bl BattleAnimAdjustPanning adds r1, r0, 0 lsls r1, 24 asrs r1, 24 @@ -2915,7 +2915,7 @@ sub_80FFF7C: @ 80FFF7C cmp r0, 0x14 ble _080FFF8E adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _080FFF8E: movs r0, 0x2E ldrsh r1, [r4, r0] @@ -2954,7 +2954,7 @@ sub_80FFFC0: @ 80FFFC0 lsls r0, 3 ldr r1, =gTasks adds r5, r0, r1 - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] bl sub_80A82E4 lsls r0, 24 @@ -3017,7 +3017,7 @@ _08100028: cmp r0, 0x40 bne _08100060 adds r0, r6, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08100060: ldr r4, =gSprites movs r0, 0xC @@ -3581,7 +3581,7 @@ _081004D6: cmp r0, 0 bne _081004FC adds r0, r2, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask b _081004FC _081004E6: ldrh r0, [r6, 0xA] @@ -3772,11 +3772,11 @@ sub_8100640: @ 8100640 ldrsh r0, [r0, r1] cmp r0, 0 bne _0810065C - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker b _0810065E .pool _0810065C: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget _0810065E: ldrb r6, [r0] adds r0, r6, 0 @@ -3857,7 +3857,7 @@ _081006E4: strb r0, [r4, 0x5] b _08100738 _08100700: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0x3 bl sub_80A5C6C @@ -4047,7 +4047,7 @@ _08100876: cmp r1, r0 bne _0810088A adds r0, r6, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0810088A: pop {r4-r7} pop {r0} @@ -4066,7 +4066,7 @@ sub_8100898: @ 8100898 cmp r0, 0 bne _081008B4 adds r0, r6, 0 - bl move_anim_8072740 + bl DestroyAnimSprite b _0810098E .pool _081008B4: @@ -4074,11 +4074,11 @@ _081008B4: ldrsh r0, [r1, r3] cmp r0, 0 bne _081008C4 - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker b _081008C6 .pool _081008C4: - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget _081008C6: ldrb r0, [r4] movs r1, 0x2 @@ -4227,7 +4227,7 @@ sub_81009DC: @ 81009DC cmp r0, 0 beq _081009F2 adds r0, r2, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _081009F2: pop {r0} bx r0 @@ -4237,7 +4237,7 @@ _081009F2: sub_81009F8: @ 81009F8 push {r4,lr} adds r4, r0, 0 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -4264,7 +4264,7 @@ _08100A2C: strh r0, [r4, 0x22] ldr r0, =sub_80A67D8 str r0, [r4, 0x1C] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r4, 0 bl StoreSpriteCallbackInData6 pop {r4} @@ -4277,7 +4277,7 @@ _08100A2C: sub_8100A50: @ 8100A50 push {r4,r5,lr} adds r5, r0, 0 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -4343,7 +4343,7 @@ sub_8100A94: @ 8100A94 sub_8100AE0: @ 8100AE0 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0 bl sub_80A5C6C @@ -4439,7 +4439,7 @@ sub_8100B88: @ 8100B88 b _08100C24 .pool _08100BA8: - ldr r5, =gAnimationBankTarget + ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r4, 0x2 eors r0, r4 @@ -4453,7 +4453,7 @@ _08100BA8: b _08100C34 .pool _08100BC8: - ldr r5, =gAnimationBankTarget + ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0 bl sub_80A5C6C @@ -4469,7 +4469,7 @@ _08100BC8: mov r8, r2 mov r1, r8 eors r0, r1 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 beq _08100C3E @@ -4494,7 +4494,7 @@ _08100BC8: b _08100C3E .pool _08100C24: - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0 bl sub_80A5C6C @@ -4509,7 +4509,7 @@ _08100C34: _08100C3E: strh r7, [r6, 0x20] strh r4, [r6, 0x22] - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -4619,7 +4619,7 @@ _08100CF2: asrs r0, 16 cmp r0, 0x14 bne _08100D28 - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r4, 0 bl StoreSpriteCallbackInData6 movs r0, 0x3 @@ -4739,7 +4739,7 @@ _08100DE0: adds r0, r4 bl DestroySprite adds r0, r5, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _08100E10: pop {r4,r5} pop {r0} @@ -4754,7 +4754,7 @@ sub_8100E1C: @ 8100E1C ldr r4, =gBattleAnimArgs ldrh r0, [r4, 0x4] strh r0, [r5, 0x2E] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -4846,7 +4846,7 @@ _08100EB2: cmp r0, r1 bne _08100EE8 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _08100EE8: pop {r4} pop {r0} @@ -4866,7 +4866,7 @@ sub_8100EF0: @ 8100EF0 adds r0, 0x8 strh r0, [r1, 0x2] _08100F06: - ldr r6, =gAnimationBankAttacker + ldr r6, =gAnimBankAttacker ldrb r0, [r6] movs r1, 0 bl sub_80A60AC @@ -5090,7 +5090,7 @@ _081010C2: sub_81010CC: @ 81010CC push {r4-r6,lr} adds r4, r0, 0 - ldr r6, =gAnimationBankTarget + ldr r6, =gAnimBankTarget ldrb r0, [r6] movs r1, 0x2 bl sub_80A5C6C @@ -5309,7 +5309,7 @@ _0810127A: movs r1, 0 bl SetGpuReg adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _08101290: pop {r4} pop {r0} @@ -5406,7 +5406,7 @@ _08101320: strh r0, [r4, 0x30] ldrh r0, [r5, 0x8] strh r0, [r4, 0x32] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r4, 0 bl StoreSpriteCallbackInData6 ldr r0, =sub_80A656C @@ -5426,11 +5426,11 @@ sub_810135C: @ 810135C ldrsh r0, [r0, r1] cmp r0, 0 bne _08101378 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker b _0810137A .pool _08101378: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget _0810137A: ldrb r6, [r0] bl IsDoubleBattle @@ -5440,7 +5440,7 @@ _0810137A: movs r1, 0x2 adds r0, r6, 0 eors r0, r1 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 beq _081013C4 @@ -5507,7 +5507,7 @@ _08101414: strh r0, [r5, 0x30] ldrh r0, [r1, 0x8] strh r0, [r5, 0x32] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r5, 0 bl StoreSpriteCallbackInData6 ldr r0, =sub_80A656C @@ -5523,7 +5523,7 @@ sub_8101440: @ 8101440 push {r4,lr} adds r4, r0, 0 bl sub_80A6838 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -5599,7 +5599,7 @@ _081014D8: cmp r0, 0 beq _081014EC adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _081014EC: pop {r4} pop {r0} @@ -5611,7 +5611,7 @@ sub_81014F4: @ 81014F4 push {r4,lr} adds r4, r0, 0 bl sub_80A6838 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -5778,7 +5778,7 @@ _08101604: adds r0, r1 strh r0, [r5, 0x38] movs r0, 0x3F - bl BattleAnimGetPanControl + bl BattleAnimAdjustPanning adds r1, r0, 0 lsls r1, 24 asrs r1, 24 @@ -5885,7 +5885,7 @@ _08101718: strh r1, [r5, 0x24] movs r0, 0x6 strh r0, [r5, 0x2E] - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -5975,7 +5975,7 @@ _081017A4: movs r2, 0x4 bl LoadPalette movs r0, 0x3F - bl BattleAnimGetPanControl + bl BattleAnimAdjustPanning adds r1, r0, 0 lsls r1, 24 asrs r1, 24 @@ -6052,7 +6052,7 @@ _0810187C: cmp r0, 0x8 bne _08101890 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _08101890: pop {r4} pop {r0} @@ -6199,7 +6199,7 @@ sub_8101998: @ 8101998 adds r4, r0, 0 movs r0, 0x6 strh r0, [r4, 0x2E] - ldr r5, =gAnimationBankAttacker + ldr r5, =gAnimBankAttacker ldrb r0, [r5] bl GetBankSide lsls r0, 24 @@ -6238,7 +6238,7 @@ sub_81019E8: @ 81019E8 cmp r6, 0 bne _08101A24 ldr r1, =gBankSpriteIds - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] @@ -6301,7 +6301,7 @@ sub_8101A74: @ 8101A74 adds r4, r0, 0 movs r0, 0x4 strh r0, [r4, 0x2E] - ldr r5, =gAnimationBankAttacker + ldr r5, =gAnimBankAttacker ldrb r0, [r5] bl GetBankSide lsls r0, 24 @@ -6361,7 +6361,7 @@ sub_8101AE8: @ 8101AE8 cmp r0, 0 bne _08101B38 ldr r1, =gBankSpriteIds - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] @@ -6431,7 +6431,7 @@ _08101B78: thumb_func_start sub_8101B84 sub_8101B84: @ 8101B84 push {lr} - bl move_anim_8072740 + bl DestroyAnimSprite pop {r0} bx r0 thumb_func_end sub_8101B84 @@ -6466,7 +6466,7 @@ _08101BB6: _08101BBC: strh r5, [r4, 0x30] ldr r1, =gBankSpriteIds - ldr r2, =gAnimationBankAttacker + ldr r2, =gAnimBankAttacker ldrb r0, [r2] adds r0, r1 ldrb r0, [r0] @@ -6558,7 +6558,7 @@ _08101C4C: lsrs r0, 24 bl sub_80A7344 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _08101C8E: pop {r4,r5} pop {r0} @@ -6576,7 +6576,7 @@ sub_8101C94: @ 8101C94 lsls r0, 3 adds r5, r0, r1 ldr r1, =gBankSpriteIds - ldr r2, =gAnimationBankAttacker + ldr r2, =gAnimBankAttacker ldrb r0, [r2] adds r0, r1 ldrb r0, [r0] @@ -6596,7 +6596,7 @@ sub_8101C94: @ 8101C94 cmp r1, 0x1 beq _08101D04 adds r0, r6, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask b _08101D22 .pool _08101CE8: @@ -6864,7 +6864,7 @@ _08101ED4: .pool _08101EE0: adds r0, r2, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08101EE6: pop {r4} pop {r0} @@ -6906,7 +6906,7 @@ _08101F2C: ldrb r0, [r4, 0x8] bl sub_80A7344 adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08101F38: pop {r4,r5} pop {r0} @@ -6922,11 +6922,11 @@ sub_8101F40: @ 8101F40 ldrsh r0, [r6, r1] cmp r0, 0 bne _08101F5C - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker b _08101F5E .pool _08101F5C: - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget _08101F5E: ldrb r0, [r4] movs r1, 0x2 @@ -6962,7 +6962,7 @@ _08101F5E: sub_8101FA8: @ 8101FA8 push {r4,r5,lr} adds r4, r0, 0 - ldr r5, =gAnimationBankTarget + ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -6992,7 +6992,7 @@ sub_8101FA8: @ 8101FA8 sub_8101FF0: @ 8101FF0 push {r4-r6,lr} adds r4, r0, 0 - ldr r5, =gAnimationBankTarget + ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -7100,7 +7100,7 @@ sub_810208C: @ 810208C cmp r0, 0x8 ble _081020D4 adds r0, r3, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _081020D4: pop {r0} bx r0 @@ -7115,11 +7115,11 @@ sub_81020D8: @ 81020D8 ldrsh r0, [r6, r1] cmp r0, 0 bne _081020F4 - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker b _081020F6 .pool _081020F4: - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget _081020F6: ldrb r0, [r4] movs r1, 0 @@ -7181,7 +7181,7 @@ _0810215C: cmp r0, 0 beq _08102178 adds r0, r2, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _08102178: pop {r0} bx r0 @@ -7191,7 +7191,7 @@ _08102178: sub_810217C: @ 810217C push {r4-r6,lr} adds r4, r0, 0 - ldr r6, =gAnimationBankAttacker + ldr r6, =gAnimBankAttacker ldrb r0, [r6] movs r1, 0x2 bl sub_80A5C6C @@ -7213,7 +7213,7 @@ sub_810217C: @ 810217C strh r5, [r4, 0x34] strh r5, [r4, 0x36] subs r0, 0x42 - bl BattleAnimGetPanControl + bl BattleAnimAdjustPanning lsls r0, 24 asrs r0, 24 strh r0, [r4, 0x38] @@ -7301,7 +7301,7 @@ _08102238: cmp r0, 0 beq _08102262 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _08102262: pop {r4} pop {r0} @@ -7316,7 +7316,7 @@ sub_8102268: @ 8102268 ldrsh r0, [r6, r1] cmp r0, 0 bne _081022B2 - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0 bl sub_80A5C6C @@ -7352,7 +7352,7 @@ _081022B2: cmp r1, r0 bne _081022C2 adds r0, r6, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _081022C2: pop {r4-r6} pop {r0} @@ -7383,7 +7383,7 @@ _08102300: cmp r0, 0x2 bne _0810230C adds r0, r2, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask b _08102344 _0810230C: ldrh r0, [r4, 0x8] @@ -7465,7 +7465,7 @@ _08102390: strb r0, [r2] movs r0, 0x1E strh r0, [r5, 0x2E] - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -7480,7 +7480,7 @@ _08102390: strh r0, [r5, 0x36] ldr r0, =sub_80A6EEC str r0, [r5, 0x1C] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r5, 0 bl StoreSpriteCallbackInData6 _081023CC: @@ -7525,7 +7525,7 @@ sub_81023E0: @ 81023E0 cmp r0, 0x10 bne _08102428 adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08102428: pop {r4,r5} pop {r0} @@ -7582,7 +7582,7 @@ _08102482: bcc _08102448 _08102490: adds r0, r7, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r4-r7} pop {r0} bx r0 @@ -7610,7 +7610,7 @@ _081024C2: cmp r4, r0 bcc _081024B2 adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r4,r5} pop {r0} bx r0 @@ -7663,7 +7663,7 @@ sub_8102528: @ 8102528 cmp r0, 0 beq _0810253A adds r0, r1, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0810253A: pop {r0} bx r0 @@ -7673,7 +7673,7 @@ _0810253A: sub_8102540: @ 8102540 push {r4,lr} adds r4, r0, 0 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] movs r1, 0x2 bl sub_80A5C6C @@ -7729,7 +7729,7 @@ _081025AE: cmp r0, 0 beq _081025BC adds r0, r1, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _081025BC: pop {r0} bx r0 @@ -8034,7 +8034,7 @@ _08102820: cmp r0, 0 bne _08102832 adds r0, r2, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08102832: add sp, 0x4 pop {r3} @@ -8068,7 +8068,7 @@ _08102862: strh r0, [r5, 0x2E] ldrh r0, [r6, 0x4] strh r0, [r5, 0x30] - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -8113,7 +8113,7 @@ _08102862: b _081028FA .pool _081028D4: - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -8216,7 +8216,7 @@ _081029A2: cmp r0, 0 bne _081029B0 adds r0, r2, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _081029B0: pop {r0} bx r0 @@ -8333,9 +8333,9 @@ _08102A88: _08102A9A: ldr r0, =sub_8102AE0 str r0, [r6] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankIdentity_permutated + bl sub_80A8364 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -8374,9 +8374,9 @@ sub_8102AE0: @ 8102AE0 ldrsh r0, [r0, r1] cmp r0, 0 bne _08102B32 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankIdentity_permutated + bl sub_80A8364 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -8396,7 +8396,7 @@ _08102B26: ldr r0, =0x00002771 bl FreeSpritePaletteByTag adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08102B32: pop {r4} pop {r0} @@ -8481,7 +8481,7 @@ _08102BC2: sub_8102BCC: @ 8102BCC push {r4,lr} adds r4, r0, 0 - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite bl StoreSpriteCallbackInData6 ldr r0, =sub_80A67D8 str r0, [r4, 0x1C] @@ -8575,7 +8575,7 @@ _08102C7A: cmp r4, 0x3 bls _08102C32 mov r0, r9 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r3,r4} mov r8, r3 mov r9, r4 @@ -8605,7 +8605,7 @@ _08102CAA: cmp r4, 0x3 bls _08102CAA adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r4-r6} pop {r0} bx r0 @@ -8657,7 +8657,7 @@ _08102D10: b _08102D4E .pool _08102D34: - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -8855,7 +8855,7 @@ _08102EA6: sub_8102EB0: @ 8102EB0 push {r4-r7,lr} adds r6, r0, 0 - ldr r7, =gAnimationBankAttacker + ldr r7, =gAnimBankAttacker ldrb r0, [r7] bl GetBankSide lsls r0, 24 @@ -9002,7 +9002,7 @@ sub_8102FB8: @ 8102FB8 _08102FDC: ldr r6, =0x0000fff0 _08102FDE: - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -9021,7 +9021,7 @@ _08102FDE: strh r0, [r5, 0x2E] ldr r0, =sub_80A64B0 str r0, [r5, 0x1C] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r5, 0 bl StoreSpriteCallbackInData6 pop {r4-r6} @@ -9135,7 +9135,7 @@ _081030DC: b _08103106 _08103100: adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _08103106: pop {r4} pop {r0} @@ -9197,11 +9197,11 @@ sub_8103164: @ 8103164 ldrsh r0, [r0, r1] cmp r0, 0 bne _08103180 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker b _08103182 .pool _08103180: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget _08103182: ldrb r4, [r0] adds r0, r4, 0 @@ -9242,7 +9242,7 @@ sub_81031D0: @ 81031D0 lsls r0, 16 cmp r0, 0 bne _081031F8 - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r4, 0 bl StoreSpriteCallbackInData6 ldrh r1, [r4, 0x30] @@ -9268,11 +9268,11 @@ sub_8103208: @ 8103208 ldrsh r0, [r0, r1] cmp r0, 0 bne _08103224 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker b _08103226 .pool _08103224: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget _08103226: ldrb r0, [r0] adds r1, r4, 0 @@ -9325,11 +9325,11 @@ sub_8103284: @ 8103284 ldrsh r0, [r0, r1] cmp r0, 0 bne _081032A0 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker b _081032A2 .pool _081032A0: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget _081032A2: ldrb r5, [r0] adds r0, r5, 0 @@ -9463,11 +9463,11 @@ sub_8103390: @ 8103390 ldrsh r0, [r0, r1] cmp r0, 0 bne _081033AC - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker b _081033AE .pool _081033AC: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget _081033AE: ldrb r4, [r0] adds r0, r4, 0 @@ -9541,7 +9541,7 @@ sub_810342C: @ 810342C cmp r0, 0x5 ble _08103444 adds r0, r1, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _08103444: pop {r0} bx r0 @@ -9591,11 +9591,11 @@ sub_8103498: @ 8103498 ldrsh r0, [r0, r1] cmp r0, 0 bne _081034B4 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker b _081034B6 .pool _081034B4: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget _081034B6: ldrb r0, [r0] adds r1, r4, 0 @@ -9664,7 +9664,7 @@ _08103524: cmp r0, 0x40 bne _08103538 adds r0, r1, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _08103538: pop {r0} bx r0 @@ -9716,7 +9716,7 @@ _0810357A: sub_810358C: @ 810358C push {r4-r6,lr} adds r5, r0, 0 - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -9730,7 +9730,7 @@ sub_810358C: @ 810358C lsrs r0, 24 strh r0, [r5, 0x22] ldr r1, =gBankSpriteIds - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] adds r0, r1 ldrb r6, [r0] @@ -9830,7 +9830,7 @@ sub_8103680: @ 8103680 cmp r0, 0 bne _08103696 adds r0, r1, 0 - bl move_anim_8072740 + bl DestroyAnimSprite b _0810369A _08103696: subs r0, r2, 0x1 @@ -9847,7 +9847,7 @@ sub_81036A0: @ 81036A0 lsls r4, 24 lsrs r4, 24 ldr r1, =gBankSpriteIds - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] @@ -9872,7 +9872,7 @@ sub_81036DC: @ 81036DC lsls r0, 24 lsrs r5, r0, 24 ldr r1, =gBankSpriteIds - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] adds r1, r0, r1 ldrb r4, [r1] @@ -9974,7 +9974,7 @@ _081037AA: adds r0, r4, 0 bl sub_80A7344 adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask b _081037D0 .pool _081037CC: @@ -9992,7 +9992,7 @@ sub_81037D8: @ 81037D8 push {r4,r5,lr} adds r4, r0, 0 bl sub_80A6838 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -10018,7 +10018,7 @@ _08103810: ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -10054,7 +10054,7 @@ _0810384C: _08103860: ldr r0, =sub_80A67D8 str r0, [r4, 0x1C] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r4, 0 bl StoreSpriteCallbackInData6 pop {r4,r5} @@ -10092,7 +10092,7 @@ sub_81038A0: @ 81038A0 strh r1, [r0, 0x36] ldr r1, =sub_80A6EEC str r1, [r0, 0x1C] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite bl StoreSpriteCallbackInData6 pop {r0} bx r0 @@ -10117,7 +10117,7 @@ sub_81038C8: @ 81038C8 b _0810390E .pool _081038EC: - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -10137,7 +10137,7 @@ _0810390E: adds r0, r5, 0 movs r1, 0x1 bl sub_80A69CC - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -10201,7 +10201,7 @@ _08103980: strh r7, [r5, 0x36] ldr r0, =sub_80A6EEC str r0, [r5, 0x1C] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r5, 0 bl StoreSpriteCallbackInData6 add sp, 0x4 @@ -10507,7 +10507,7 @@ sub_8103BE4: @ 8103BE4 cmp r0, 0 bne _08103C02 adds r0, r2, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08103C02: pop {r0} bx r0 @@ -10604,7 +10604,7 @@ _08103C90: strh r0, [r4, 0xA] movs r0, 0x3F negs r0, r0 - bl BattleAnimGetPanControl + bl BattleAnimAdjustPanning adds r1, r0, 0 lsls r1, 24 asrs r1, 24 @@ -10676,8 +10676,8 @@ _08103D54: strh r0, [r3, 0x4] b _08103DB6 _08103D5C: - ldr r1, =gBanksBySide - ldr r0, =gAnimationBankTarget + ldr r1, =gBanksByIdentity + ldr r0, =gAnimBankTarget ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -10716,7 +10716,7 @@ _08103DB0: _08103DB4: strh r0, [r2, 0x4] _08103DB6: - ldr r5, =gAnimationBankAttacker + ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0 bl sub_80A5C6C @@ -10742,11 +10742,11 @@ _08103DB6: ands r0, r1 cmp r0, 0 beq _08103E20 - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r1, [r4] movs r0, 0x2 eors r0, r1 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 beq _08103E20 @@ -10759,7 +10759,7 @@ _08103DB6: .pool _08103E20: mov r5, sp - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0 bl sub_80A5C6C @@ -10897,7 +10897,7 @@ _08103F28: asrs r0, 16 cmp r0, 0x3F ble _08103FA0 - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] bl sub_80A82E4 lsls r0, 24 @@ -10914,7 +10914,7 @@ _08103F78: asrs r0, 16 cmp r0, 0x3F ble _08103FA0 - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] bl sub_80A82E4 lsls r0, 24 @@ -10927,7 +10927,7 @@ _08103F78: b _08103FB0 .pool _08103FA0: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] bl sub_80A82E4 lsls r0, 24 @@ -11035,7 +11035,7 @@ _08104050: cmp r0, 0x18 bne _0810407C adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0810407C: pop {r4-r7} pop {r0} @@ -11050,7 +11050,7 @@ sub_8104088: @ 8104088 adds r5, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -11066,7 +11066,7 @@ sub_8104088: @ 8104088 adds r0, r1 lsls r0, 16 lsrs r7, r0, 16 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -11112,7 +11112,7 @@ _081040CC: strh r7, [r5, 0x36] ldr r0, =sub_80A7000 str r0, [r5, 0x1C] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r5, 0 bl StoreSpriteCallbackInData6 add sp, 0x4 @@ -11145,7 +11145,7 @@ sub_8104154: @ 8104154 lsls r0, 16 asrs r0, 24 strh r0, [r4, 0x24] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -11184,7 +11184,7 @@ _08104178: cmp r0, 0x2 bne _081041B8 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _081041B8: pop {r4} pop {r0} @@ -11200,7 +11200,7 @@ sub_81041C4: @ 81041C4 bl sub_80A69CC movs r0, 0x14 strh r0, [r4, 0x2E] - ldr r5, =gAnimationBankTarget + ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -11235,7 +11235,7 @@ sub_810421C: @ 810421C push {r4,lr} adds r4, r0, 0 movs r0, 0x3F - bl BattleAnimGetPanControl + bl BattleAnimAdjustPanning adds r1, r0, 0 lsls r1, 24 asrs r1, 24 @@ -11339,7 +11339,7 @@ _081042BE: cmp r0, 0x1 bne _081042FE adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _081042FE: pop {r4} pop {r0} @@ -11352,7 +11352,7 @@ sub_8104304: @ 8104304 adds r4, r0, 0 movs r1, 0 bl sub_80A69CC - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -11375,7 +11375,7 @@ _08104322: strh r0, [r4, 0x36] ldr r0, =sub_80A62EC str r0, [r4, 0x1C] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r4, 0 bl StoreSpriteCallbackInData6 ldr r1, [r4, 0x1C] @@ -11423,7 +11423,7 @@ _08104390: strh r0, [r5, 0x22] movs r0, 0x6 strh r0, [r5, 0x2E] - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -11462,7 +11462,7 @@ sub_81043F8: @ 81043F8 cmp r0, 0 beq _0810440E adds r0, r2, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0810440E: pop {r0} bx r0 @@ -11510,7 +11510,7 @@ _08104448: movs r0, 0x6 strh r0, [r5, 0x2E] strh r1, [r5, 0x30] - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -11664,7 +11664,7 @@ sub_8104594: @ 8104594 cmp r0, 0 beq _081045A8 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _081045A8: pop {r4} pop {r0} @@ -11752,7 +11752,7 @@ sub_8104614: @ 8104614 movs r1, 0x1 bl sub_80A750C adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08104664: pop {r4,r5} pop {r0} @@ -11786,7 +11786,7 @@ sub_8104674: @ 8104674 strh r0, [r4, 0x10] strh r5, [r4, 0x12] strh r5, [r4, 0x14] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl sub_80A82E4 lsls r0, 24 @@ -11946,7 +11946,7 @@ _081047D8: movs r1, 0 strh r1, [r0, 0x26] adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _081047F6: pop {r4,r5} pop {r0} @@ -12124,7 +12124,7 @@ sub_8104938: @ 8104938 cmp r0, 0 bne _08104964 adds r0, r2, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask b _0810498A .pool _08104964: @@ -12276,7 +12276,7 @@ _08104A64: adds r0, r2 strh r5, [r0, 0x26] adds r0, r6, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask b _08104AA8 .pool _08104A9C: @@ -12333,7 +12333,7 @@ sub_8104AF0: @ 8104AF0 cmp r0, 0 bne _08104B10 adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08104B10: pop {r4} pop {r0} @@ -12345,7 +12345,7 @@ _08104B10: sub_8104B1C: @ 8104B1C push {r4,r5,lr} adds r4, r0, 0 - ldr r5, =gAnimationBankAttacker + ldr r5, =gAnimBankAttacker ldrb r0, [r5] bl GetBankSide lsls r0, 24 @@ -12378,7 +12378,7 @@ _08104B50: ldr r0, =0x0000ffc0 _08104B6A: strh r0, [r4, 0x30] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] movs r1, 0x3 bl sub_80A5C6C @@ -12391,7 +12391,7 @@ _08104B6A: strh r1, [r4, 0x32] strh r1, [r4, 0x34] strh r1, [r4, 0x36] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r4, 0 bl StoreSpriteCallbackInData6 ldr r0, =sub_80A656C @@ -12411,11 +12411,11 @@ sub_8104BAC: @ 8104BAC ldrsh r0, [r0, r1] cmp r0, 0 bne _08104BC8 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker b _08104BCA .pool _08104BC8: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget _08104BCA: ldrb r5, [r0] adds r0, r5, 0 @@ -12509,7 +12509,7 @@ sub_8104C78: @ 8104C78 cmp r0, 0 bne _08104C98 adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08104C98: pop {r4} pop {r0} @@ -12559,7 +12559,7 @@ sub_8104CA4: @ 8104CA4 strh r2, [r4, 0x18] movs r0, 0x2 strh r0, [r4, 0x1A] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -12741,7 +12741,7 @@ _08104E48: strh r1, [r0, 0x22] _08104E66: adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08104E6C: pop {r4,r5} pop {r0} @@ -12759,7 +12759,7 @@ sub_8104E74: @ 8104E74 lsls r1, 3 ldr r0, =gTasks adds r5, r1, r0 - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] bl sub_80A6190 lsls r0, 24 @@ -12777,7 +12777,7 @@ sub_8104E74: @ 8104E74 bl sub_80A861C strh r0, [r5, 0x26] ldrb r0, [r4] - bl GetBankIdentity_permutated + bl sub_80A8364 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -12947,7 +12947,7 @@ _08104FF0: movs r0, 0x3 strb r0, [r1, 0x15] adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0810500E: pop {r4} pop {r0} @@ -12959,7 +12959,7 @@ _0810500E: sub_810501C: @ 810501C push {r4-r6,lr} adds r4, r0, 0 - ldr r6, =gAnimationBankTarget + ldr r6, =gAnimBankTarget ldrb r0, [r6] movs r1, 0 bl sub_80A5C6C @@ -12986,7 +12986,7 @@ sub_810501C: @ 810501C adds r0, 0x2 strh r0, [r4, 0x38] movs r0, 0x3F - bl BattleAnimGetPanControl + bl BattleAnimAdjustPanning lsls r0, 24 asrs r0, 24 strh r0, [r4, 0x3A] @@ -13169,7 +13169,7 @@ _0810519A: ands r0, r1 strb r0, [r2] adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _081051BC: pop {r4} pop {r0} @@ -13194,11 +13194,11 @@ sub_81051C4: @ 81051C4 adds r1, r0, 0 cmp r2, 0 bne _081051F0 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker b _081051F2 .pool _081051F0: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget _081051F2: ldrb r5, [r0] ldrb r1, [r1, 0x6] @@ -13212,7 +13212,7 @@ _081051F2: movs r1, 0x2 adds r0, r5, 0 eors r0, r1 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 beq _0810526A @@ -13278,7 +13278,7 @@ sub_8105284: @ 8105284 adds r0, r4, 0 bl FreeSpriteOamMatrix adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0810529E: pop {r4} pop {r0} @@ -13305,15 +13305,15 @@ sub_81052A4: @ 81052A4 ldrsh r0, [r0, r2] cmp r0, 0 bne _081052DC - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r7, [r0] - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget b _081052E2 .pool _081052DC: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r7, [r0] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker _081052E2: ldrb r0, [r0] mov r8, r0 @@ -13354,7 +13354,7 @@ _08105310: mov r4, r8 eors r4, r0 adds r0, r4, 0 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 beq _0810535C @@ -13389,7 +13389,7 @@ _0810536C: adds r4, r7, 0 eors r4, r0 adds r0, r4, 0 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 beq _081053E4 @@ -13457,7 +13457,7 @@ _081053FA: movs r1, 0x2 mov r0, r8 eors r0, r1 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 beq _0810544C @@ -13581,7 +13581,7 @@ sub_8105538: @ 8105538 adds r4, r0, 0 movs r1, 0 bl sub_80A69CC - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -13622,7 +13622,7 @@ sub_810557C: @ 810557C strh r0, [r4, 0x24] subs r2, 0x20 strh r2, [r4, 0x2E] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -13836,7 +13836,7 @@ sub_810571C: @ 810571C b _08105752 .pool _08105750: - ldr r0, =move_anim_8072740 + ldr r0, =DestroyAnimSprite _08105752: str r0, [r3, 0x1C] _08105754: @@ -13856,7 +13856,7 @@ sub_810575C: @ 810575C movs r1, 0 bl SetGpuReg adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite pop {r4} pop {r0} bx r0 @@ -13925,7 +13925,7 @@ sub_81057B8: @ 81057B8 orrs r1, r2 strb r1, [r0] adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08105802: pop {r4,r5} pop {r0} @@ -13950,7 +13950,7 @@ sub_8105810: @ 8105810 strh r0, [r4, 0xE] movs r0, 0x3 strh r0, [r4, 0x20] - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -14124,7 +14124,7 @@ _08105962: cmp r0, 0 bne _08105992 adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08105992: pop {r4,r5} pop {r0} @@ -14263,7 +14263,7 @@ _08105A88: ands r1, r2 strb r1, [r0] adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08105AA6: pop {r4-r6} pop {r0} @@ -14292,7 +14292,7 @@ sub_8105AAC: @ 8105AAC strh r0, [r4, 0x16] strh r0, [r4, 0x18] strh r0, [r4, 0x22] - ldr r5, =gAnimationBankAttacker + ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0 bl sub_80A5C6C @@ -14469,7 +14469,7 @@ _08105C34: cmp r0, 0 bne _08105C42 adds r0, r6, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08105C42: pop {r4-r6} pop {r0} @@ -14603,7 +14603,7 @@ _08105D00: movs r1, 0 str r1, [r0] adds r0, r6, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask add sp, 0x4 pop {r4-r6} pop {r0} @@ -14626,7 +14626,7 @@ _08105D6A: cmp r4, 0 bge _08105D6A adds r0, r6, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r4-r6} pop {r0} bx r0 @@ -14684,7 +14684,7 @@ sub_8105DE8: @ 8105DE8 adds r5, r0, 0 movs r1, 0 bl sub_80A69CC - ldr r6, =gAnimationBankAttacker + ldr r6, =gAnimBankAttacker ldrb r0, [r6] bl GetBankSide lsls r0, 24 @@ -14716,7 +14716,7 @@ _08105E08: strh r0, [r5, 0x36] ldr r0, =sub_80A6EEC str r0, [r5, 0x1C] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r5, 0 bl StoreSpriteCallbackInData6 ldrb r1, [r4, 0xA] @@ -14765,7 +14765,7 @@ _08105E7A: cmp r0, 0x3C bne _08105EAA adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _08105EAA: pop {r4} pop {r0} @@ -14923,7 +14923,7 @@ _08105FD8: movs r1, 0 bl SetGpuReg adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0810600C: add sp, 0xC pop {r4,r5} @@ -14989,7 +14989,7 @@ _0810607C: strh r0, [r4, 0x24] strh r0, [r4, 0x26] adds r0, r6, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _081060A4: pop {r4-r6} pop {r0} @@ -15054,7 +15054,7 @@ _0810610C: strh r0, [r4, 0x24] strh r0, [r4, 0x26] adds r0, r6, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08106134: pop {r4-r6} pop {r0} @@ -15072,7 +15072,7 @@ sub_8106140: @ 8106140 strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] strh r0, [r4, 0x30] - ldr r5, =gAnimationBankTarget + ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -15120,7 +15120,7 @@ sub_810618C: @ 810618C b _081061BC _081061B6: adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _081061BC: pop {r4} pop {r0} @@ -15190,7 +15190,7 @@ _08106236: cmp r0, 0x78 ble _08106244 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _08106244: pop {r4} pop {r0} @@ -15268,7 +15268,7 @@ sub_810627C: @ 810627C cmp r5, 0x40 bgt _081062E2 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _081062E2: pop {r4,r5} pop {r0} @@ -15291,11 +15291,11 @@ sub_81062E8: @ 81062E8 movs r0, 0x1 movs r1, 0x4 movs r2, 0x3 - bl lcd_bg_operations + bl SetAnimBgAttribute movs r0, 0x1 movs r1, 0 movs r2, 0 - bl lcd_bg_operations + bl SetAnimBgAttribute bl IsContest lsls r0, 24 cmp r0, 0 @@ -15303,7 +15303,7 @@ sub_81062E8: @ 81062E8 movs r0, 0x1 movs r1, 0x3 movs r2, 0x1 - bl lcd_bg_operations + bl SetAnimBgAttribute _0810632A: ldr r0, =gBattle_BG1_X movs r1, 0 @@ -15489,7 +15489,7 @@ _081064BC: movs r0, 0x1 movs r1, 0x3 movs r2, 0 - bl lcd_bg_operations + bl SetAnimBgAttribute _081064D0: movs r0, 0x50 movs r1, 0 @@ -15500,9 +15500,9 @@ _081064D0: movs r0, 0x1 movs r1, 0x4 movs r2, 0x1 - bl lcd_bg_operations + bl SetAnimBgAttribute adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _081064F0: add sp, 0x10 pop {r4,r5} @@ -15526,11 +15526,11 @@ sub_81064F8: @ 81064F8 movs r0, 0x1 movs r1, 0x4 movs r2, 0x1 - bl lcd_bg_operations + bl SetAnimBgAttribute movs r0, 0x1 movs r1, 0 movs r2, 0 - bl lcd_bg_operations + bl SetAnimBgAttribute bl IsContest lsls r0, 24 cmp r0, 0 @@ -15538,7 +15538,7 @@ sub_81064F8: @ 81064F8 movs r0, 0x1 movs r1, 0x3 movs r2, 0x1 - bl lcd_bg_operations + bl SetAnimBgAttribute _0810653A: ldr r0, =gBattle_BG1_X movs r1, 0 @@ -15561,7 +15561,7 @@ _0810653A: b _0810658A .pool _08106578: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -15747,7 +15747,7 @@ _081066FC: movs r0, 0x1 movs r1, 0x3 movs r2, 0 - bl lcd_bg_operations + bl SetAnimBgAttribute _08106710: movs r0, 0x50 movs r1, 0 @@ -15758,9 +15758,9 @@ _08106710: movs r0, 0x1 movs r1, 0x4 movs r2, 0x1 - bl lcd_bg_operations + bl SetAnimBgAttribute adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08106730: add sp, 0x10 pop {r4,r5} @@ -15773,7 +15773,7 @@ _08106730: sub_810673C: @ 810673C push {r4,r5,lr} adds r4, r0, 0 - ldr r5, =gAnimationBankAttacker + ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -15912,7 +15912,7 @@ _08106858: cmp r1, r0 bne _08106868 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _08106868: pop {r4} pop {r0} @@ -15924,7 +15924,7 @@ _08106868: sub_8106878: @ 8106878 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -15991,7 +15991,7 @@ sub_81068CC: @ 81068CC bge _08106910 _0810690A: adds r0, r2, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _08106910: pop {r0} bx r0 @@ -16019,7 +16019,7 @@ sub_8106914: @ 8106914 cmp r0, r1 blt _08106940 adds r0, r2, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _08106940: pop {r0} bx r0 @@ -16029,7 +16029,7 @@ _08106940: sub_8106944: @ 8106944 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -16074,7 +16074,7 @@ sub_810699C: @ 810699C cmp r0, 0 beq _081069B2 adds r0, r2, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _081069B2: pop {r0} bx r0 @@ -16164,7 +16164,7 @@ _08106A50: cmp r2, 0x64 ble _08106A5A adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _08106A5A: pop {r4,r5} pop {r0} @@ -16222,7 +16222,7 @@ _08106ABA: cmp r0, 0x1E ble _08106AC8 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _08106AC8: pop {r4} pop {r0} @@ -16314,7 +16314,7 @@ sub_8106B54: @ 8106B54 adds r0, r4, 0 movs r1, 0 bl StartSpriteAnim - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] bl sub_80A82E4 subs r0, 0x1 @@ -16439,7 +16439,7 @@ _08106C6A: cmp r0, 0x5A ble _08106C78 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _08106C78: pop {r4} pop {r0} @@ -16480,7 +16480,7 @@ _08106CB4: cmp r0, 0 beq _08106CC8 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _08106CC8: pop {r4} pop {r0} @@ -16497,7 +16497,7 @@ sub_8106CD0: @ 8106CD0 cmp r0, 0 bne _08106CEC adds r0, r5, 0 - bl move_anim_8072740 + bl DestroyAnimSprite b _08106D50 .pool _08106CEC: @@ -16505,11 +16505,11 @@ _08106CEC: ldrsh r0, [r1, r2] cmp r0, 0 bne _08106CFC - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker b _08106CFE .pool _08106CFC: - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget _08106CFE: ldrb r0, [r4] movs r1, 0x2 @@ -16579,7 +16579,7 @@ sub_8106D5C: @ 8106D5C b _08106D8C _08106D86: adds r0, r2, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _08106D8C: pop {r0} bx r0 @@ -16628,7 +16628,7 @@ sub_8106DD4: @ 8106DD4 cmp r0, 0 bne _08106DF4 adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08106DF4: pop {r4} pop {r0} @@ -16645,11 +16645,11 @@ sub_8106E00: @ 8106E00 ldrsh r0, [r0, r1] cmp r0, 0 bne _08106E1C - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker b _08106E1E .pool _08106E1C: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget _08106E1E: ldrb r6, [r0] adds r0, r6, 0 @@ -16754,7 +16754,7 @@ sub_8106EC8: @ 8106EC8 cmp r0, 0x10 ble _08106EFC adds r0, r2, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _08106EFC: pop {r0} bx r0 @@ -16803,7 +16803,7 @@ _08106F40: cmp r1, r0 bne _08106F54 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _08106F54: pop {r4} pop {r0} @@ -16968,14 +16968,14 @@ _08107066: orrs r0, r1 strb r0, [r3] adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _08107098: movs r1, 0x36 ldrsh r0, [r4, r1] cmp r0, 0x4 bne _081070A6 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _081070A6: pop {r4} pop {r0} @@ -16992,11 +16992,11 @@ sub_81070AC: @ 81070AC ands r0, r1 cmp r0, 0 beq _081070F8 - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r1, [r4] movs r0, 0x2 eors r0, r1 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 beq _081070F8 @@ -17016,7 +17016,7 @@ sub_81070AC: @ 81070AC b _08107118 .pool _081070F8: - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0 bl sub_80A5C6C @@ -17040,7 +17040,7 @@ _08107118: strh r0, [r5, 0x36] ldr r0, =sub_80A6EEC str r0, [r5, 0x1C] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r5, 0 bl StoreSpriteCallbackInData6 pop {r4,r5} @@ -17055,13 +17055,13 @@ sub_8107144: @ 8107144 lsls r0, 24 lsrs r0, 24 ldr r3, =gBattleAnimArgs - ldr r1, =gDisableStructMoveAnim + ldr r1, =gAnimDisableStructPtr ldr r1, [r1] ldrb r2, [r1, 0x10] movs r1, 0x1 ands r1, r2 strh r1, [r3, 0xE] - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r0} bx r0 .pool @@ -17073,11 +17073,11 @@ update_fury_cutter_counter_copy: @ 8107168 lsls r0, 24 lsrs r0, 24 ldr r2, =gBattleAnimArgs - ldr r1, =gDisableStructMoveAnim + ldr r1, =gAnimDisableStructPtr ldr r1, [r1] ldrb r1, [r1, 0x10] strh r1, [r2, 0xE] - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r0} bx r0 .pool @@ -17144,7 +17144,7 @@ _081071F8: cmp r1, r0 bne _0810720A adds r0, r6, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0810720A: pop {r4-r6} pop {r0} @@ -17196,7 +17196,7 @@ _0810725A: sub_8107260: @ 8107260 push {r4-r6,lr} adds r6, r0, 0 - ldr r5, =gAnimationBankAttacker + ldr r5, =gAnimBankAttacker ldrb r0, [r5] bl GetBankSide lsls r0, 24 @@ -17237,7 +17237,7 @@ _081072A2: movs r1, 0x40 orrs r0, r1 strb r0, [r2] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -17253,7 +17253,7 @@ _081072D8: strh r0, [r6, 0x2E] ldrh r0, [r6, 0x20] strh r0, [r6, 0x30] - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -17422,7 +17422,7 @@ sub_810744C: @ 810744C adds r5, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -17445,7 +17445,7 @@ _08107482: strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] strh r0, [r5, 0x30] - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -17507,7 +17507,7 @@ _08107506: cmp r0, 0 beq _08107518 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _08107518: pop {r4} pop {r0} @@ -17603,7 +17603,7 @@ _081075BE: cmp r1, r0 bne _081075DE adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _081075DE: pop {r4-r7} pop {r0} @@ -17621,7 +17621,7 @@ sub_81075EC: @ 81075EC strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] strh r0, [r5, 0x30] - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -17683,7 +17683,7 @@ sub_8107674: @ 8107674 cmp r0, 0 beq _08107688 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _08107688: ldrh r0, [r4, 0x3A] lsls r0, 16 @@ -17762,7 +17762,7 @@ sub_81076F4: @ 81076F4 cmp r1, 0 bne _08107722 adds r0, r3, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08107722: pop {r0} bx r0 @@ -17773,7 +17773,7 @@ _08107722: sub_8107730: @ 8107730 push {r4-r7,lr} adds r4, r0, 0 - ldr r7, =gAnimationBankAttacker + ldr r7, =gAnimBankAttacker ldrb r0, [r7] movs r1, 0 bl sub_80A5C6C @@ -17836,7 +17836,7 @@ sub_81077A4: @ 81077A4 cmp r0, 0 beq _081077BA adds r0, r2, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _081077BA: pop {r0} bx r0 @@ -17846,11 +17846,11 @@ _081077BA: sub_81077C0: @ 81077C0 push {r4-r7,lr} adds r6, r0, 0 - ldr r5, =gAnimationBankAttacker + ldr r5, =gAnimBankAttacker ldrb r0, [r5] bl GetBankSide adds r4, r0, 0 - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] bl GetBankSide lsls r4, 24 @@ -17898,7 +17898,7 @@ _0810781E: _08107828: adds r0, r6, 0 bl sub_80A69CC - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -17910,7 +17910,7 @@ _08107828: _08107842: ldrh r0, [r5, 0x8] strh r0, [r6, 0x2E] - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -17929,7 +17929,7 @@ _08107842: strh r0, [r6, 0x36] ldr r0, =sub_80A6EEC str r0, [r6, 0x1C] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r6, 0 bl StoreSpriteCallbackInData6 pop {r4-r7} @@ -17956,7 +17956,7 @@ sub_8107894: @ 8107894 strh r1, [r4, 0x36] ldr r0, =sub_80A6EEC str r0, [r4, 0x1C] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r4, 0 bl StoreSpriteCallbackInData6 pop {r4} @@ -18026,7 +18026,7 @@ sub_810790C: @ 810790C cmp r0, r1 bne _0810794C adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0810794C: pop {r4} pop {r0} @@ -18054,11 +18054,11 @@ sub_8107954: @ 8107954 movs r0, 0x1 movs r1, 0x4 movs r2, 0x1 - bl lcd_bg_operations + bl SetAnimBgAttribute movs r0, 0x1 movs r1, 0 movs r2, 0x1 - bl lcd_bg_operations + bl SetAnimBgAttribute mov r0, sp bl sub_80A6B30 bl IsContest @@ -18068,8 +18068,8 @@ sub_8107954: @ 8107954 movs r0, 0x1 movs r1, 0x3 movs r2, 0x1 - bl lcd_bg_operations - ldr r0, =gAnimationBankAttacker + bl SetAnimBgAttribute + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -18174,7 +18174,7 @@ _08107A32: b _08107B0E .pool _08107AB4: - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -18454,7 +18454,7 @@ _08107D08: movs r0, 0x1 movs r1, 0x3 movs r2, 0 - bl lcd_bg_operations + bl SetAnimBgAttribute _08107D1C: movs r0, 0 strh r0, [r7] @@ -18475,7 +18475,7 @@ _08107D1C: ldr r1, =0x0000ffff strh r1, [r0, 0x26] adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08107D4A: pop {r3} mov r8, r3 @@ -18945,7 +18945,7 @@ _081080C0: cmp r0, 0x15 bne _081080DE adds r0, r2, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _081080DE: pop {r4} pop {r0} @@ -19267,7 +19267,7 @@ _0810836C: cmp r0, 0 bne _0810837A adds r0, r2, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0810837A: add sp, 0xC pop {r4-r6} @@ -19278,7 +19278,7 @@ _0810837A: thumb_func_start sub_8108384 sub_8108384: @ 8108384 push {r4,r5,lr} - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] bl GetBankSide lsls r0, 24 @@ -19350,7 +19350,7 @@ sub_8108408: @ 8108408 lsls r1, 24 lsrs r1, 24 str r1, [sp] - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -19576,7 +19576,7 @@ sub_81085C8: @ 81085C8 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0xA] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -19721,7 +19721,7 @@ _08108704: cmp r0, 0 bne _08108712 adds r0, r1, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08108712: pop {r3} mov r8, r3 @@ -19956,7 +19956,7 @@ sub_81088E4: @ 81088E4 lsls r1, 3 ldr r0, =gTasks adds r5, r1, r0 - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -20171,7 +20171,7 @@ _08108AAA: b _08108AB8 _08108AB2: adds r0, r2, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08108AB8: pop {r4} pop {r0} @@ -20371,7 +20371,7 @@ sub_8108C08: @ 8108C08 cmp r0, 0 bne _08108C4C adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _08108C4C: pop {r4} pop {r0} @@ -20418,7 +20418,7 @@ sub_8108C94: @ 8108C94 adds r4, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r5, =gAnimationBankTarget + ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -20495,7 +20495,7 @@ _08108D34: cmp r1, r0 bne _08108D46 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _08108D46: ldrh r0, [r4, 0x2E] adds r0, 0x1 @@ -20593,7 +20593,7 @@ _08108DE2: strh r0, [r4, 0x2E] mov r0, r9 strh r0, [r4, 0x30] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl sub_80A82E4 subs r0, 0x1 @@ -20648,7 +20648,7 @@ _08108E58: strh r0, [r4, 0x2E] mov r0, r9 strh r0, [r4, 0x30] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl sub_80A82E4 subs r0, 0x1 @@ -20698,7 +20698,7 @@ sub_8108EC8: @ 8108EC8 movs r0, 0xFE lsls r0, 8 strh r0, [r4, 0x36] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r4, 0 bl StoreSpriteCallbackInData6 ldr r1, =sub_80A634C @@ -20732,7 +20732,7 @@ sub_8108F08: @ 8108F08 strh r0, [r4, 0x32] ldr r0, =sub_80A656C str r0, [r4, 0x1C] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r4, 0 bl StoreSpriteCallbackInData6 pop {r4,r5} @@ -20746,7 +20746,7 @@ sub_8108F4C: @ 8108F4C push {r4,lr} adds r4, r0, 0 bl sub_80A6838 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -20798,7 +20798,7 @@ _08108F9E: sub_8108FBC: @ 8108FBC push {r4,lr} adds r4, r0, 0 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -20886,7 +20886,7 @@ sub_8109064: @ 8109064 push {r4,lr} adds r4, r0, 0 bl sub_80A6838 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -21026,7 +21026,7 @@ sub_810916C: @ 810916C strh r1, [r0, 0x36] ldr r1, =sub_80A6EEC str r1, [r0, 0x1C] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite bl StoreSpriteCallbackInData6 pop {r0} bx r0 @@ -21037,11 +21037,11 @@ sub_810916C: @ 810916C sub_8109198: @ 8109198 push {r4-r6,lr} adds r6, r0, 0 - ldr r5, =gAnimationBankAttacker + ldr r5, =gAnimBankAttacker ldrb r0, [r5] bl GetBankSide adds r4, r0, 0 - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] bl GetBankSide lsls r4, 24 @@ -21128,7 +21128,7 @@ sub_8109244: @ 8109244 strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] strh r0, [r5, 0x30] - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -21164,7 +21164,7 @@ sub_810929C: @ 810929C beq _081092E4 movs r4, 0 strh r4, [r6, 0x2E] - ldr r5, =gAnimationBankTarget + ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -21224,7 +21224,7 @@ sub_8109314: @ 8109314 cmp r0, 0x1F bne _08109330 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _08109330: pop {r4} pop {r0} @@ -21274,7 +21274,7 @@ sub_8109364: @ 8109364 strh r0, [r4, 0x30] ldrh r0, [r1, 0x8] strh r0, [r4, 0x32] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r4, 0 bl StoreSpriteCallbackInData6 ldr r0, =sub_80A653C @@ -21371,7 +21371,7 @@ sub_810940C: @ 810940C cmp r0, r1 bne _08109458 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _08109458: pop {r4} pop {r0} @@ -21407,7 +21407,7 @@ sub_8109460: @ 8109460 adds r0, r2 ldrh r0, [r0, 0x22] strh r0, [r4, 0x10] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -21785,7 +21785,7 @@ _0810979C: cmp r0, 0 bne _081097AA adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _081097AA: add sp, 0xC pop {r4,r5} @@ -21820,7 +21820,7 @@ sub_81097B4: @ 81097B4 lsls r0, 2 adds r0, r1 ldrh r4, [r0, 0x20] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -21992,7 +21992,7 @@ sub_8109930: @ 8109930 adds r0, r2 lsls r0, 16 lsrs r4, r0, 16 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -22214,7 +22214,7 @@ _08109AE0: cmp r0, 0x10 ble _08109AF4 adds r0, r2, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _08109AF4: pop {r4} pop {r0} @@ -22248,7 +22248,7 @@ _08109B18: bl StartSpriteAnim ldrh r0, [r4, 0x4] strh r0, [r5, 0x3C] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -22261,7 +22261,7 @@ _08109B48: ldr r0, =0x0000fffc _08109B4A: strh r0, [r5, 0x36] - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] bl sub_80A8328 movs r1, 0x3 @@ -22279,7 +22279,7 @@ _08109B70: ldrh r0, [r5, 0x30] adds r0, 0xC0 strh r0, [r5, 0x30] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -22356,7 +22356,7 @@ _08109BCE: lsls r0, 1 strh r0, [r5, 0x2E] strh r1, [r5, 0x30] - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -22426,7 +22426,7 @@ _08109C82: .pool _08109CA4: adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _08109CAA: pop {r4} pop {r0} @@ -22485,7 +22485,7 @@ _08109CC8: lsrs r0, 16 cmp r0, 0x83 bls _08109D3C - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] bl sub_80A8328 movs r1, 0x3 @@ -22500,7 +22500,7 @@ _08109CC8: b _08109D80 .pool _08109D3C: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] bl sub_80A8328 lsls r0, 24 @@ -22561,7 +22561,7 @@ _08109DA8: cmp r0, 0x1E bne _08109DB6 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _08109DB6: pop {r4} pop {r0} @@ -22578,7 +22578,7 @@ sub_8109DBC: @ 8109DBC lsls r1, 3 ldr r0, =gTasks adds r4, r1, r0 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -22590,11 +22590,11 @@ sub_8109DBC: @ 8109DBC movs r1, 0x1 _08109DE2: strh r1, [r4, 0x20] - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r1, [r0] movs r0, 0x2 eors r0, r1 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 lsrs r0, 24 adds r0, 0x1 @@ -22906,7 +22906,7 @@ _0810A024: blt _0810A024 _0810A04E: adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0810A054: pop {r4-r7} pop {r0} @@ -22932,7 +22932,7 @@ sub_810A060: @ 810A060 movs r1, 0x10 bl BlendPalette adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask add sp, 0x10 pop {r4} pop {r0} @@ -22974,7 +22974,7 @@ _0810A0CA: adds r0, 0x1 strh r0, [r2, 0x8] ldr r1, =gBankSpriteIds - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] adds r0, r1 ldrb r6, [r0] @@ -23059,7 +23059,7 @@ _0810A16E: strh r1, [r0, 0x24] strh r1, [r0, 0x26] adds r0, r7, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0810A194: pop {r3-r5} mov r8, r3 @@ -23075,7 +23075,7 @@ _0810A194: sub_810A1A8: @ 810A1A8 push {r4,lr} adds r4, r0, 0 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -23119,7 +23119,7 @@ sub_810A1F8: @ 810A1F8 cmp r0, 0 beq _0810A20E adds r0, r2, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0810A20E: pop {r0} bx r0 @@ -23129,7 +23129,7 @@ _0810A20E: sub_810A214: @ 810A214 push {r4,lr} adds r4, r0, 0 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -23178,7 +23178,7 @@ _0810A26E: sub_810A274: @ 810A274 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -23191,7 +23191,7 @@ sub_810A274: @ 810A274 lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -23261,15 +23261,15 @@ _0810A324: beq _0810A35C b _0810A380 _0810A32E: - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker b _0810A382 .pool _0810A338: - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r6, 0x2 eors r0, r6 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 bne _0810A354 @@ -23282,21 +23282,21 @@ _0810A354: eors r4, r0 b _0810A384 _0810A35C: - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] movs r4, 0x2 eors r0, r4 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 beq _0810A380 - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] eors r4, r0 b _0810A384 .pool _0810A380: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget _0810A382: ldrb r4, [r0] _0810A384: @@ -23417,7 +23417,7 @@ sub_810A46C: @ 810A46C strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] strh r0, [r4, 0x30] - ldr r6, =gAnimationBankTarget + ldr r6, =gAnimBankTarget ldrb r0, [r6] movs r1, 0x2 bl sub_80A5C6C @@ -23517,7 +23517,7 @@ sub_810A4F4: @ 810A4F4 b _0810A564 _0810A55E: adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0810A564: pop {r4} pop {r0} @@ -23562,7 +23562,7 @@ _0810A5A4: cmp r0, 0 bgt _0810A5B6 adds r0, r3, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0810A5B6: pop {r0} bx r0 @@ -23576,7 +23576,7 @@ sub_810A5BC: @ 810A5BC lsls r0, 24 cmp r0, 0 bne _0810A5D8 - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -23588,7 +23588,7 @@ _0810A5D8: negs r0, r0 strh r0, [r1, 0x2] _0810A5E0: - ldr r5, =gAnimationBankTarget + ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -23633,11 +23633,11 @@ sub_810A628: @ 810A628 ands r0, r1 cmp r0, 0 beq _0810A64C - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget b _0810A64E .pool _0810A64C: - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker _0810A64E: ldrb r6, [r0] bl IsContest @@ -23756,7 +23756,7 @@ _0810A742: cmp r0, 0 bgt _0810A754 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0810A754: pop {r4} pop {r0} @@ -23812,7 +23812,7 @@ _0810A7B6: strh r0, [r4, 0x2E] ldr r0, =sub_80A64B0 str r0, [r4, 0x1C] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r4, 0 bl StoreSpriteCallbackInData6 pop {r4,r5} @@ -23827,7 +23827,7 @@ sub_810A7DC: @ 810A7DC adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 - ldr r6, =gAnimationBankTarget + ldr r6, =gAnimBankTarget ldrb r0, [r6] movs r1, 0 bl sub_80A5C6C @@ -24012,7 +24012,7 @@ _0810A952: .pool _0810A970: mov r0, r9 - bl move_anim_task_del + bl DestroyAnimVisualTask b _0810A9BC _0810A978: cmp r7, 0 @@ -24199,7 +24199,7 @@ _0810AAE4: cmp r0, 0x33 bne _0810AAF8 adds r0, r3, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0810AAF8: pop {r0} bx r0 @@ -24220,11 +24220,11 @@ sub_810AAFC: @ 810AAFC ldrsh r0, [r0, r1] cmp r0, 0 bne _0810AB28 - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker b _0810AB2A .pool _0810AB28: - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget _0810AB2A: ldrb r0, [r4] movs r1, 0x2 @@ -24383,7 +24383,7 @@ _0810AC78: cmp r0, 0 bne _0810AC86 adds r0, r2, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0810AC86: pop {r4-r7} pop {r0} @@ -24440,11 +24440,11 @@ sub_810ACD8: @ 810ACD8 ldrsh r0, [r0, r1] cmp r0, 0 bne _0810ACF4 - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker b _0810ACF6 .pool _0810ACF4: - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget _0810ACF6: ldrb r0, [r4] movs r1, 0x2 @@ -24478,11 +24478,11 @@ sub_810AD30: @ 810AD30 ldrsh r0, [r0, r1] cmp r0, 0 bne _0810AD4C - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker b _0810AD4E .pool _0810AD4C: - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget _0810AD4E: ldrb r0, [r4] movs r1, 0x2 @@ -24501,7 +24501,7 @@ _0810AD4E: strh r0, [r5, 0x24] ldrh r0, [r1, 0x4] strh r0, [r5, 0x26] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r5, 0 bl StoreSpriteCallbackInData6 ldr r0, =sub_80A67D8 @@ -24518,7 +24518,7 @@ sub_810AD98: @ 810AD98 adds r5, r0, 0 movs r1, 0x1 bl StartSpriteAffineAnim - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -24646,7 +24646,7 @@ _0810AE90: lsrs r0, 24 movs r6, 0 strh r0, [r5, 0x26] - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -24783,7 +24783,7 @@ _0810AFA0: ands r1, r2 strb r1, [r0] adds r0, r3, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0810AFC0: pop {r4-r6} pop {r0} @@ -24820,7 +24820,7 @@ _0810AFF4: _0810AFFA: b _0810B14E _0810AFFC: - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] bl GetBankSide lsls r0, 24 @@ -24878,7 +24878,7 @@ _0810B070: movs r0, 0x78 subs r0, r1 strh r0, [r5, 0xE] - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x3 bl sub_80A5C6C @@ -24981,7 +24981,7 @@ _0810B140: cmp r0, 0 bne _0810B14E adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0810B14E: pop {r4-r6} pop {r0} @@ -25124,7 +25124,7 @@ sub_810B23C: @ 810B23C beq _0810B280 b _0810B294 _0810B24E: - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -25191,7 +25191,7 @@ _0810B2C8: .4byte _0810B404 .4byte _0810B414 _0810B2DC: - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -25206,7 +25206,7 @@ _0810B2DC: strh r0, [r5, 0x16] movs r0, 0x4 strh r0, [r5, 0x18] - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0x2 bl sub_80A5C6C @@ -25228,12 +25228,12 @@ _0810B2DC: movs r0, 0xC strh r0, [r5, 0x1E] subs r0, 0x4C - bl BattleAnimGetPanControl + bl BattleAnimAdjustPanning lsls r0, 24 asrs r0, 24 strh r0, [r5, 0x20] movs r0, 0x3F - bl BattleAnimGetPanControl + bl BattleAnimAdjustPanning lsls r0, 24 asrs r0, 24 strh r0, [r5, 0x22] @@ -25338,7 +25338,7 @@ _0810B404: cmp r0, 0 bne _0810B428 adds r0, r2, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask b _0810B428 _0810B414: ldrh r1, [r5, 0x1E] @@ -25539,7 +25539,7 @@ _0810B584: beq _0810B600 b _0810B60E _0810B58A: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0x1 bl sub_80A5C6C @@ -25561,7 +25561,7 @@ _0810B5A4: bgt _0810B5A4 strh r1, [r5, 0x24] _0810B5B4: - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -25603,7 +25603,7 @@ _0810B600: cmp r0, 0 bne _0810B60E adds r0, r2, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0810B60E: pop {r4,r5} pop {r0} @@ -25721,7 +25721,7 @@ sub_810B6C4: @ 810B6C4 ands r0, r2 orrs r0, r1 strh r0, [r5, 0x4] - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -25734,7 +25734,7 @@ sub_810B6C4: @ 810B6C4 lsls r0, 24 lsrs r0, 24 mov r8, r0 - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -25934,7 +25934,7 @@ sub_810B848: @ 810B848 b _0810B8A6 _0810B8A0: adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0810B8A6: pop {r4} pop {r0} @@ -25957,7 +25957,7 @@ sub_810B8AC: @ 810B8AC movs r0, 0xFE lsls r0, 8 strh r0, [r4, 0x36] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r4, 0 bl StoreSpriteCallbackInData6 ldr r1, =sub_80A634C @@ -25976,14 +25976,14 @@ sub_810B8EC: @ 810B8EC adds r4, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0x2 bl sub_80A5C6C lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -26003,7 +26003,7 @@ _0810B92C: adds r0, r1 strh r0, [r4, 0x32] _0810B936: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0x3 bl sub_80A5C6C @@ -26015,7 +26015,7 @@ _0810B936: strh r0, [r4, 0x36] ldrh r0, [r1, 0x8] strh r0, [r4, 0x2E] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r4, 0 bl StoreSpriteCallbackInData6 ldr r0, =sub_80A6EEC @@ -26041,7 +26041,7 @@ sub_810B974: @ 810B974 b _0810B9C6 .pool _0810B990: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] adds r2, r4, 0 adds r2, 0x20 @@ -26049,7 +26049,7 @@ _0810B990: adds r3, 0x22 movs r1, 0x1 bl sub_80A8924 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -26130,7 +26130,7 @@ sub_810BA24: @ 810BA24 ldrsh r0, [r6, r1] cmp r0, 0 bne _0810BA74 - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -26148,7 +26148,7 @@ sub_810BA24: @ 810BA24 b _0810BA86 .pool _0810BA74: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] adds r2, r5, 0 adds r2, 0x32 @@ -26157,7 +26157,7 @@ _0810BA74: movs r1, 0x1 bl sub_80A8924 _0810BA86: - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -26277,7 +26277,7 @@ sub_810BB60: @ 810BB60 strh r5, [r4, 0x24] movs r0, 0x80 strh r0, [r4, 0x2E] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -26312,7 +26312,7 @@ _0810BB90: sub_810BBC8: @ 810BBC8 push {r4,lr} adds r4, r0, 0 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -26406,7 +26406,7 @@ sub_810BC4C: @ 810BC4C bge _0810BC8E _0810BC88: adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0810BC8E: pop {r4} pop {r0} @@ -26431,7 +26431,7 @@ sub_810BC94: @ 810BC94 ldrsh r0, [r1, r2] cmp r0, 0 bne _0810BCE0 - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -26447,7 +26447,7 @@ sub_810BC94: @ 810BC94 b _0810BCF2 .pool _0810BCE0: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] adds r2, r5, 0 adds r2, 0x32 @@ -26456,7 +26456,7 @@ _0810BCE0: movs r1, 0x1 bl sub_80A8924 _0810BCF2: - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -26619,7 +26619,7 @@ _0810BDEC: bge _0810BE42 _0810BE3C: adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0810BE42: pop {r4} pop {r0} @@ -26645,7 +26645,7 @@ sub_810BE48: @ 810BE48 b _0810BEA2 .pool _0810BE6C: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] adds r2, r4, 0 adds r2, 0x20 @@ -26653,7 +26653,7 @@ _0810BE6C: adds r3, 0x22 movs r1, 0 bl sub_80A8924 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -26686,7 +26686,7 @@ _0810BEB4: cmp r0, 0 beq _0810BEC8 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0810BEC8: pop {r4,r5} pop {r0} @@ -26712,7 +26712,7 @@ sub_810BED0: @ 810BED0 b _0810BF32 .pool _0810BEF4: - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] adds r2, r5, 0 adds r2, 0x20 @@ -26742,7 +26742,7 @@ _0810BF26: adds r0, r1 strh r0, [r5, 0x22] _0810BF32: - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker b _0810BF90 .pool _0810BF40: @@ -26755,7 +26755,7 @@ _0810BF40: bl sub_80A6980 b _0810BF8E _0810BF52: - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] adds r2, r5, 0 adds r2, 0x20 @@ -26785,7 +26785,7 @@ _0810BF82: adds r0, r1 strh r0, [r5, 0x22] _0810BF8E: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget _0810BF90: ldrb r0, [r0] strh r0, [r5, 0x3C] @@ -26806,7 +26806,7 @@ _0810BFB4: movs r0, 0x40 _0810BFB6: strh r0, [r5, 0x3A] - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -26911,7 +26911,7 @@ _0810C086: b _0810C098 _0810C092: adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0810C098: pop {r4} pop {r0} @@ -26934,11 +26934,11 @@ sub_810C0A0: @ 810C0A0 movs r0, 0x1 movs r1, 0x4 movs r2, 0x1 - bl lcd_bg_operations + bl SetAnimBgAttribute movs r0, 0x1 movs r1, 0 movs r2, 0 - bl lcd_bg_operations + bl SetAnimBgAttribute bl IsContest lsls r0, 24 cmp r0, 0 @@ -26946,7 +26946,7 @@ sub_810C0A0: @ 810C0A0 movs r0, 0x1 movs r1, 0x3 movs r2, 0x1 - bl lcd_bg_operations + bl SetAnimBgAttribute _0810C0E2: ldr r0, =gBattle_BG1_X movs r1, 0 @@ -27148,7 +27148,7 @@ _0810C29C: movs r0, 0x1 movs r1, 0x3 movs r2, 0 - bl lcd_bg_operations + bl SetAnimBgAttribute _0810C2B0: ldr r0, =gBattle_BG1_X movs r1, 0 @@ -27164,9 +27164,9 @@ _0810C2B0: movs r0, 0x1 movs r1, 0x4 movs r2, 0x1 - bl lcd_bg_operations + bl SetAnimBgAttribute adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0810C2DA: add sp, 0x10 pop {r4,r5} @@ -27179,7 +27179,7 @@ _0810C2DA: sub_810C2F0: @ 810C2F0 push {r4,r5,lr} adds r4, r0, 0 - ldr r5, =gAnimationBankAttacker + ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -27216,11 +27216,11 @@ sub_810C324: @ 810C324 movs r0, 0x1 movs r1, 0x4 movs r2, 0x1 - bl lcd_bg_operations + bl SetAnimBgAttribute movs r0, 0x1 movs r1, 0 movs r2, 0 - bl lcd_bg_operations + bl SetAnimBgAttribute bl IsContest lsls r0, 24 cmp r0, 0 @@ -27228,7 +27228,7 @@ sub_810C324: @ 810C324 movs r0, 0x1 movs r1, 0x3 movs r2, 0x1 - bl lcd_bg_operations + bl SetAnimBgAttribute _0810C366: ldr r0, =gBattle_BG1_X movs r1, 0 @@ -27420,7 +27420,7 @@ _0810C50C: movs r0, 0x1 movs r1, 0x3 movs r2, 0 - bl lcd_bg_operations + bl SetAnimBgAttribute _0810C520: ldr r0, =gBattle_BG1_X movs r1, 0 @@ -27436,9 +27436,9 @@ _0810C520: movs r0, 0x1 movs r1, 0x4 movs r2, 0x1 - bl lcd_bg_operations + bl SetAnimBgAttribute adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0810C54A: add sp, 0x10 pop {r4,r5} @@ -27456,13 +27456,13 @@ sub_810C560: @ 810C560 ldr r6, =gBattleAnimArgs ldrh r0, [r6] strh r0, [r5, 0x2E] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker mov r8, r0 ldrb r0, [r0] movs r1, 0x2 bl sub_80A5C6C adds r4, r0, 0 - ldr r7, =gAnimationBankTarget + ldr r7, =gAnimBankTarget ldrb r0, [r7] movs r1, 0x2 bl sub_80A5C6C @@ -27474,7 +27474,7 @@ sub_810C560: @ 810C560 lsls r0, 8 strh r0, [r5, 0x3C] _0810C594: - ldr r3, =gBanksBySide + ldr r3, =gBanksByIdentity ldrb r0, [r7] adds r0, r3 ldrb r1, [r0] @@ -27523,7 +27523,7 @@ _0810C5F0: movs r0, 0x1 strh r0, [r5, 0x3A] _0810C5F4: - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -27545,7 +27545,7 @@ _0810C5F4: ldrh r1, [r5, 0x20] adds r0, r1 strh r0, [r5, 0x30] - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -27567,7 +27567,7 @@ _0810C65C: ldrh r1, [r5, 0x20] adds r0, r1 strh r0, [r5, 0x30] - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0 bl sub_80A5C6C @@ -27676,7 +27676,7 @@ _0810C728: _0810C736: movs r5, 0x50 strh r5, [r4, 0x2E] - ldr r6, =gAnimationBankTarget + ldr r6, =gAnimBankTarget ldrb r0, [r6] movs r1, 0 bl sub_80A5C6C @@ -27699,7 +27699,7 @@ _0810C736: lsls r0, 24 cmp r0, 0 bne _0810C78C - ldr r1, =gBanksBySide + ldr r1, =gBanksByIdentity ldrb r0, [r6] adds r0, r1 ldrb r1, [r0] @@ -27843,8 +27843,8 @@ _0810C85A: lsls r0, 24 cmp r0, 0 bne _0810C8B4 - ldr r1, =gBanksBySide - ldr r0, =gAnimationBankTarget + ldr r1, =gBanksByIdentity + ldr r0, =gAnimBankTarget ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -28011,7 +28011,7 @@ _0810C9CE: cmp r0, 0 bne _0810C9DC adds r0, r2, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0810C9DC: pop {r4,r5} pop {r0} @@ -28054,7 +28054,7 @@ sub_810C9E4: @ 810C9E4 lsls r0, 24 lsrs r5, r0, 24 adds r0, r5, 0 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 beq _0810CAD0 @@ -28349,7 +28349,7 @@ _0810CC7C: unc_080B06FC: @ 810CC88 push {r4-r6,lr} adds r5, r0, 0 - ldr r0, =gDisableStructMoveAnim + ldr r0, =gAnimDisableStructPtr ldr r0, [r0] ldrb r1, [r0, 0x11] lsrs r0, r1, 4 @@ -28371,7 +28371,7 @@ _0810CCA6: ldr r6, =gBattleAnimArgs ldrh r0, [r6, 0x8] strh r0, [r5, 0x2E] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -28381,7 +28381,7 @@ _0810CCA6: negs r0, r0 strh r0, [r6, 0x4] _0810CCCE: - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -28423,7 +28423,7 @@ sub_810CD1C: @ 810CD1C bl StartSpriteAnim ldr r0, =sub_80A67D8 str r0, [r4, 0x1C] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r4, 0 bl StoreSpriteCallbackInData6 _0810CD3E: @@ -28515,7 +28515,7 @@ _0810CDD8: cmp r0, 0x15 bne _0810CDF6 adds r0, r2, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0810CDF6: pop {r4} pop {r0} @@ -28531,7 +28531,7 @@ sub_810CDFC: @ 810CDFC ldrb r3, [r1] lsls r3, 1 adds r3, r1 - ldr r1, =gDisableStructMoveAnim + ldr r1, =gAnimDisableStructPtr ldr r1, [r1] ldrb r1, [r1, 0x11] lsrs r2, r1, 4 @@ -28540,7 +28540,7 @@ sub_810CDFC: @ 810CDFC subs r2, r1 subs r2, 0x1 strh r2, [r3] - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r0} bx r0 .pool @@ -28563,7 +28563,7 @@ unc_080B08A0: @ 810CE2C strh r0, [r4, 0x2E] ldr r0, =sub_80A64B0 str r0, [r4, 0x1C] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r4, 0 bl StoreSpriteCallbackInData6 pop {r4,r5} @@ -28581,7 +28581,7 @@ sub_810CE68: @ 810CE68 ldrsh r0, [r4, r1] cmp r0, 0x1 bne _0810CE90 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -28658,7 +28658,7 @@ _0810CF0C: strh r0, [r5, 0x2E] ldr r0, =sub_80A64B0 str r0, [r5, 0x1C] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r5, 0 bl StoreSpriteCallbackInData6 pop {r4,r5} @@ -28680,11 +28680,11 @@ sub_810CF30: @ 810CF30 mov r9, r0 cmp r1, 0 bne _0810CF54 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker b _0810CF56 .pool _0810CF54: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget _0810CF56: ldrb r0, [r0] mov r8, r0 @@ -28771,7 +28771,7 @@ _0810D000: negs r0, r0 lsrs r4, r0, 16 _0810D012: - ldr r0, =gBanksBySide + ldr r0, =gBanksByIdentity add r0, r8 ldrb r1, [r0] adds r0, r7, 0 @@ -28875,7 +28875,7 @@ sub_810D0B8: @ 810D0B8 bl DestroySprite _0810D0F4: adds r0, r5, 0 - bl move_anim_8072740 + bl DestroyAnimSprite b _0810D104 .pool _0810D100: @@ -28960,7 +28960,7 @@ sub_810D164: @ 810D164 strh r6, [r5, 0x24] ldr r0, =sub_80A6EEC str r0, [r5, 0x1C] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r5, 0 bl StoreSpriteCallbackInData6 _0810D1A4: @@ -28974,10 +28974,10 @@ _0810D1A4: sub_810D1B4: @ 810D1B4 push {r4-r6,lr} adds r6, r0, 0 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r1, [r0] movs r0, 0x2 - ldr r2, =gAnimationBankTarget + ldr r2, =gAnimBankTarget eors r0, r1 ldrb r1, [r2] cmp r0, r1 @@ -28997,7 +28997,7 @@ _0810D1E0: adds r0, r6, 0 movs r1, 0x1 bl sub_80A6980 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -29059,7 +29059,7 @@ sub_810D240: @ 810D240 b _0810D272 _0810D26C: adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0810D272: pop {r4} pop {r0} @@ -29105,7 +29105,7 @@ sub_810D2B0: @ 810D2B0 strh r0, [r4, 0x2E] ldr r0, =sub_80A64B0 str r0, [r4, 0x1C] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r4, 0 bl StoreSpriteCallbackInData6 pop {r4} @@ -29146,7 +29146,7 @@ sub_810D308: @ 810D308 bne _0810D34C movs r0, 0x6 strh r0, [r5, 0x2E] - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -29178,7 +29178,7 @@ sub_810D360: @ 810D360 strh r1, [r0, 0x2E] ldr r1, =sub_80A64B0 str r1, [r0, 0x1C] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite bl StoreSpriteCallbackInData6 pop {r0} bx r0 @@ -29251,7 +29251,7 @@ _0810D3F6: cmp r0, 0x78 ble _0810D404 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0810D404: pop {r4} pop {r0} @@ -29267,11 +29267,11 @@ sub_810D40C: @ 810D40C ldrsh r0, [r0, r1] cmp r0, 0 bne _0810D428 - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker b _0810D42A .pool _0810D428: - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget _0810D42A: ldrb r0, [r4] movs r1, 0 @@ -29332,7 +29332,7 @@ _0810D48E: cmp r0, 0 bne _0810D4AA adds r0, r1, 0 - bl move_anim_8072740 + bl DestroyAnimSprite b _0810D4EC _0810D4AA: ldrh r0, [r1, 0x2E] @@ -29370,7 +29370,7 @@ _0810D4DA: cmp r0, 0 bne _0810D4EC adds r0, r1, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0810D4EC: pop {r0} bx r0 @@ -29386,7 +29386,7 @@ sub_810D4F4: @ 810D4F4 ldrsh r0, [r6, r1] cmp r0, 0 bne _0810D520 - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0 bl sub_80A5C6C @@ -29397,7 +29397,7 @@ sub_810D4F4: @ 810D4F4 b _0810D532 .pool _0810D520: - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0 bl sub_80A5C6C @@ -29473,7 +29473,7 @@ _0810D5C0: b _0810D5CE _0810D5C6: adds r0, r5, 0 - bl move_anim_8072740 + bl DestroyAnimSprite b _0810D5D2 _0810D5CE: ldr r0, =sub_810D5DC @@ -29505,7 +29505,7 @@ sub_810D5DC: @ 810D5DC cmp r0, 0x28 ble _0810D604 adds r0, r1, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0810D604: pop {r0} bx r0 @@ -29533,7 +29533,7 @@ sub_810D608: @ 810D608 lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl sub_80A8328 movs r1, 0x3 @@ -29545,11 +29545,11 @@ sub_810D608: @ 810D608 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x5] - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget b _0810D680 .pool _0810D664: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] bl sub_80A8328 movs r1, 0x3 @@ -29561,7 +29561,7 @@ _0810D664: ands r0, r2 orrs r0, r1 strb r0, [r5, 0x5] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker _0810D680: ldrb r0, [r0] strh r0, [r5, 0x3C] @@ -29704,7 +29704,7 @@ sub_810D770: @ 810D770 cmp r4, r0 bge _0810D7BA adds r0, r7, 0 - bl move_anim_8072740 + bl DestroyAnimSprite b _0810D818 _0810D7BA: ldrh r0, [r7, 0x2E] @@ -29712,7 +29712,7 @@ _0810D7BA: strh r0, [r7, 0x2E] b _0810D818 _0810D7C2: - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -29725,7 +29725,7 @@ _0810D7C2: adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 - ldr r2, =gAnimationBankTarget + ldr r2, =gAnimBankTarget mov r8, r2 ldrb r0, [r2] movs r1, 0x2 @@ -29793,7 +29793,7 @@ sub_810D830: @ 810D830 ble _0810D870 _0810D86A: adds r0, r2, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0810D870: pop {r0} bx r0 @@ -29821,15 +29821,15 @@ sub_810D874: @ 810D874 lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r4, [r0] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker b _0810D8BE .pool _0810D8B8: - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r4, [r0] - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget _0810D8BE: ldrb r0, [r0] bl sub_80A8328 @@ -29893,7 +29893,7 @@ _0810D918: strh r0, [r5, 0x36] adds r0, r5, 0 bl obj_translate_based_on_private_1_2_3_4 - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r5, 0 bl StoreSpriteCallbackInData6 ldr r0, =sub_80A6F98 @@ -29915,7 +29915,7 @@ sub_810D960: @ 810D960 cmp r1, r0 bne _0810D976 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0810D976: ldrh r0, [r4, 0x2E] adds r0, 0x1 @@ -29929,7 +29929,7 @@ _0810D976: sub_810D984: @ 810D984 push {r4-r6,lr} adds r5, r0, 0 - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -29951,7 +29951,7 @@ sub_810D984: @ 810D984 strh r0, [r5, 0x34] ldrh r0, [r1, 0x4] strh r0, [r5, 0x36] - ldr r0, =gUnknown_02038432 + ldr r0, =gAnimMoveTurn ldrb r6, [r0] ldrb r0, [r4] bl GetBankSide @@ -30018,7 +30018,7 @@ _0810DA34: bl StartSpriteAnim b _0810DA5E _0810DA48: - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -30030,7 +30030,7 @@ _0810DA48: _0810DA5E: ldr r0, =sub_80A67D8 str r0, [r4, 0x1C] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r4, 0 bl StoreSpriteCallbackInData6 pop {r4} @@ -30067,7 +30067,7 @@ sub_810DA7C: @ 810DA7C cmp r0, 0x28 ble _0810DAB6 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0810DAB6: pop {r4} pop {r0} @@ -30128,7 +30128,7 @@ _0810DB1A: ldrh r1, [r4, 0x1C] adds r0, r1 strh r0, [r4, 0x1C] - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -30179,7 +30179,7 @@ _0810DB60: movs r0, 0x1 bl sub_80A6DAC adds r0, r6, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0810DB98: pop {r4-r7} pop {r0} @@ -30205,7 +30205,7 @@ _0810DBC2: bl sub_80A69CC ldrh r0, [r4, 0x4] strh r0, [r5, 0x2E] - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -30239,7 +30239,7 @@ sub_810DC10: @ 810DC10 cmp r0, 0 beq _0810DC24 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0810DC24: pop {r4} pop {r0} @@ -30263,7 +30263,7 @@ _0810DC44: adds r0, r4, 0 movs r1, 0x1 bl sub_80A69CC - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] mov r6, sp adds r6, 0x2 @@ -30271,7 +30271,7 @@ _0810DC44: mov r2, sp adds r3, r6, 0 bl sub_80A8924 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -30314,7 +30314,7 @@ sub_810DCB4: @ 810DCB4 cmp r0, 0 beq _0810DCC8 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0810DCC8: pop {r4} pop {r0} @@ -30378,7 +30378,7 @@ sub_810DD24: @ 810DD24 cmp r0, 0 bne _0810DD4A adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0810DD4A: pop {r4} pop {r0} @@ -30389,7 +30389,7 @@ _0810DD4A: sub_810DD50: @ 810DD50 push {r4,lr} adds r4, r0, 0 - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] adds r2, r4, 0 adds r2, 0x20 @@ -30397,7 +30397,7 @@ sub_810DD50: @ 810DD50 adds r3, 0x22 movs r1, 0x1 bl sub_80A8924 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -30426,7 +30426,7 @@ _0810DD7C: strh r1, [r4, 0x36] ldr r0, =sub_80A6EEC str r0, [r4, 0x1C] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r4, 0 bl StoreSpriteCallbackInData6 pop {r4} @@ -30450,7 +30450,7 @@ sub_810DDC4: @ 810DDC4 b _0810DE16 .pool _0810DDE0: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] adds r2, r4, 0 adds r2, 0x20 @@ -30458,7 +30458,7 @@ _0810DDE0: adds r3, 0x22 movs r1, 0x1 bl sub_80A8924 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -30514,7 +30514,7 @@ sub_810DE2C: @ 810DE2C cmp r0, 0 beq _0810DE68 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0810DE68: pop {r4} pop {r0} @@ -30569,7 +30569,7 @@ sub_810DE98: @ 810DE98 cmp r0, 0x47 bne _0810DED2 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0810DED2: pop {r4} pop {r0} @@ -30666,7 +30666,7 @@ _0810DF76: cmp r1, 0 bne _0810DF90 adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0810DF90: pop {r4-r7} pop {r0} @@ -30680,7 +30680,7 @@ sub_810DFA8: @ 810DFA8 adds r6, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -30696,7 +30696,7 @@ _0810DFC8: strh r0, [r6, 0x2E] ldrh r0, [r6, 0x20] strh r0, [r6, 0x30] - ldr r5, =gAnimationBankTarget + ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -30737,7 +30737,7 @@ sub_810E028: @ 810E028 cmp r0, 0 beq _0810E03C adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0810E03C: pop {r4} pop {r0} @@ -30748,7 +30748,7 @@ _0810E03C: sub_810E044: @ 810E044 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] bl GetBankSide lsls r0, 24 @@ -30805,7 +30805,7 @@ _0810E088: ldrsh r0, [r2, r3] cmp r0, 0 bne _0810E0EC - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -30821,7 +30821,7 @@ _0810E088: b _0810E0FE .pool _0810E0EC: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] adds r2, r5, 0 adds r2, 0x32 @@ -30841,7 +30841,7 @@ _0810E0FE: strh r0, [r5, 0x36] ldr r0, =sub_80A6EEC str r0, [r5, 0x1C] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r5, 0 bl StoreSpriteCallbackInData6 ldrb r1, [r4, 0xA] @@ -30919,7 +30919,7 @@ _0810E1AA: cmp r0, r1 bge _0810E1C2 adds r0, r2, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0810E1C2: pop {r0} bx r0 @@ -30929,7 +30929,7 @@ _0810E1C2: sub_810E1C8: @ 810E1C8 push {r4,r5,lr} adds r5, r0, 0 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -30955,7 +30955,7 @@ _0810E1FE: strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] strh r0, [r5, 0x30] - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -31036,7 +31036,7 @@ _0810E296: ands r0, r2 strb r0, [r1] adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0810E2BC: pop {r4} pop {r0} @@ -31099,11 +31099,11 @@ sub_810E314: @ 810E314 ands r0, r1 cmp r0, 0 beq _0810E33C - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker b _0810E33E .pool _0810E33C: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget _0810E33E: ldrb r6, [r0] adds r0, r6, 0 @@ -32049,7 +32049,7 @@ _0810EA36: sub_810EA4C: @ 810EA4C push {r4,r5,lr} adds r4, r0, 0 - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] bl sub_80A8328 movs r1, 0x3 @@ -32061,7 +32061,7 @@ sub_810EA4C: @ 810EA4C ands r0, r2 orrs r0, r1 strb r0, [r4, 0x5] - ldr r5, =gAnimationBankAttacker + ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -32106,7 +32106,7 @@ _0810EAC4: ldrsh r0, [r4, r2] cmp r0, 0 bne _0810EADC - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -32117,7 +32117,7 @@ _0810EADC: ldrsh r0, [r4, r1] cmp r0, 0x1 bne _0810EAF8 - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -32189,7 +32189,7 @@ _0810EB6A: cmp r0, r1 bne _0810EB82 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0810EB82: pop {r4} pop {r0} @@ -32237,7 +32237,7 @@ sub_810EB88: @ 810EB88 strh r0, [r4, 0x6] ldr r0, =gUnknown_085973E8 mov r8, r0 - ldr r5, =gAnimationBankTarget + ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -32263,7 +32263,7 @@ _0810EC02: cmp r0, 0xFF ble _0810EC16 adds r0, r6, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0810EC16: pop {r3} mov r8, r3 @@ -32316,7 +32316,7 @@ _0810EC78: cmp r0, 0 beq _0810EC8C adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0810EC8C: pop {r4} pop {r0} @@ -32341,7 +32341,7 @@ _0810ECAA: beq _0810ECE0 b _0810ED1E _0810ECB0: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0x1 bl sub_80A5C6C @@ -32394,7 +32394,7 @@ _0810ECE0: ands r0, r2 strb r0, [r1] adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0810ED1E: pop {r4} pop {r0} @@ -32521,7 +32521,7 @@ _0810EE00: cmp r0, 0 ble _0810EE0E adds r0, r2, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0810EE0E: pop {r0} bx r0 @@ -32545,11 +32545,11 @@ _0810EE28: ldrsh r0, [r0, r2] cmp r0, 0 bne _0810EE40 - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker b _0810EE42 .pool _0810EE40: - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget _0810EE42: ldrb r0, [r4] movs r1, 0 @@ -32631,7 +32631,7 @@ _0810EECC: adds r0, r5, 0 bl sub_80A749C adds r0, r5, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0810EEEC: add sp, 0x4 pop {r4,r5} @@ -32700,11 +32700,11 @@ _0810EF60: ldrsh r0, [r2, r1] cmp r0, 0 bne _0810EF74 - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker b _0810EF76 .pool _0810EF74: - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget _0810EF76: ldrb r0, [r4] movs r1, 0 @@ -32773,7 +32773,7 @@ _0810EFEA: cmp r0, 0x1F bne _0810EFFE adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0810EFFE: pop {r4} pop {r0} @@ -32845,7 +32845,7 @@ _0810F02A: b _0810F07E _0810F078: adds r0, r3, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0810F07E: pop {r0} bx r0 @@ -32861,7 +32861,7 @@ sub_810F084: @ 810F084 mov r8, r0 ldrh r4, [r0, 0x20] ldrh r5, [r0, 0x22] - ldr r6, =gAnimationBankAttacker + ldr r6, =gAnimBankAttacker ldrb r0, [r6] movs r1, 0x2 bl sub_80A5C6C @@ -33021,7 +33021,7 @@ _0810F1BC: _0810F1DA: strb r0, [r1] adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r4} pop {r0} bx r0 @@ -33038,7 +33038,7 @@ sub_810F1EC: @ 810F1EC lsls r0, 24 lsrs r0, 24 mov r8, r0 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -33069,7 +33069,7 @@ _0810F22E: lsrs r4, r0, 24 adds r7, r4, 0 adds r0, r4, 0 - bl GetBankIdentity_permutated + bl sub_80A8364 lsls r0, 24 lsrs r0, 24 movs r1, 0x1 @@ -33078,7 +33078,7 @@ _0810F22E: orrs r1, r0 lsrs r6, r1, 31 adds r0, r4, 0 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 beq _0810F264 @@ -33091,7 +33091,7 @@ _0810F264: adds r4, r0, 0 eors r4, r7 adds r0, r4, 0 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 beq _0810F284 @@ -33109,7 +33109,7 @@ _0810F284: lsls r0, 24 cmp r0, 0 beq _0810F2B8 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -33126,7 +33126,7 @@ _0810F2B0: movs r0, 0x28 b _0810F2F2 _0810F2B8: - ldr r6, =gAnimationBankAttacker + ldr r6, =gAnimBankAttacker ldrb r0, [r6] bl GetBankSide lsls r0, 24 @@ -33205,7 +33205,7 @@ sub_810F340: @ 810F340 b _0810F3B6 _0810F35C: adds r0, r4, 0 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 beq _0810F382 @@ -33226,7 +33226,7 @@ _0810F382: movs r0, 0x2 eors r4, r0 adds r0, r4, 0 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 beq _0810F3AC @@ -33375,7 +33375,7 @@ sub_810F46C: @ 810F46C lsrs r4, r0, 24 adds r6, r4, 0 adds r0, r4, 0 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 beq _0810F4D4 @@ -33398,7 +33398,7 @@ _0810F4D4: adds r4, r0, 0 eors r4, r6 adds r0, r4, 0 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 beq _0810F502 @@ -33445,7 +33445,7 @@ sub_810F524: @ 810F524 lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 - bl GetBankIdentity_permutated + bl sub_80A8364 lsls r0, 24 lsrs r0, 24 movs r1, 0x1 @@ -33454,7 +33454,7 @@ sub_810F524: @ 810F524 orrs r1, r0 lsrs r5, r1, 31 adds r0, r4, 0 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 beq _0810F562 @@ -33464,7 +33464,7 @@ _0810F562: movs r0, 0x2 eors r4, r0 adds r0, r4, 0 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 beq _0810F57C @@ -33473,7 +33473,7 @@ _0810F562: adds r0, r5, 0 bl sub_80A477C _0810F57C: - ldr r0, =move_anim_8072740 + ldr r0, =DestroyAnimSprite str r0, [r6, 0x1C] pop {r4-r6} pop {r0} @@ -33505,7 +33505,7 @@ _0810F5A6: lsls r0, 24 cmp r0, 0 beq _0810F5EE - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -33568,7 +33568,7 @@ _0810F62C: sub_810F634: @ 810F634 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -33608,7 +33608,7 @@ _0810F684: movs r0, 0x1 _0810F692: strh r0, [r5, 0x30] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r5, 0 bl StoreSpriteCallbackInData6 ldr r0, =sub_80A67D8 @@ -33623,7 +33623,7 @@ _0810F692: sub_810F6B0: @ 810F6B0 push {r4-r7,lr} adds r5, r0, 0 - ldr r6, =gAnimationBankAttacker + ldr r6, =gAnimBankAttacker ldrb r0, [r6] movs r1, 0x1 bl sub_80A861C @@ -33756,7 +33756,7 @@ _0810F7B4: cmp r0, r1 bne _0810F7CC adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0810F7CC: pop {r4} pop {r0} @@ -33805,7 +33805,7 @@ sub_810F810: @ 810F810 cmp r0, 0 bne _0810F830 adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0810F830: pop {r4} pop {r0} @@ -33831,7 +33831,7 @@ sub_810F83C: @ 810F83C strh r0, [r4, 0x8] strh r1, [r4, 0xA] strh r1, [r4, 0xC] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -33930,7 +33930,7 @@ _0810F900: ldrb r0, [r4, 0x8] bl sub_80A7344 adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0810F936: pop {r4,r5} pop {r0} @@ -33952,7 +33952,7 @@ sub_810F940: @ 810F940 movs r0, 0x10 strh r0, [r5, 0xE] strh r1, [r5, 0x10] - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -34203,7 +34203,7 @@ _0810FB44: movs r1, 0 bl SetGpuReg adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0810FB5A: pop {r4-r6} pop {r0} @@ -34241,7 +34241,7 @@ _0810FB8A: cmp r1, r0 bne _0810FB9C adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0810FB9C: ldrh r0, [r4, 0x30] adds r0, 0x1 @@ -34260,7 +34260,7 @@ sub_810FBA8: @ 810FBA8 ldrsh r0, [r6, r1] cmp r0, 0 bne _0810FBD4 - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -34305,7 +34305,7 @@ sub_810FBF0: @ 810FBF0 bne _0810FC60 ldr r0, =0x0000fff6 strh r0, [r5, 0x1C] - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x5 bl sub_80A861C @@ -34316,7 +34316,7 @@ sub_810FBF0: @ 810FBF0 bl sub_80A861C adds r0, 0x8 strh r0, [r5, 0x20] - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x5 bl sub_80A861C @@ -34331,7 +34331,7 @@ sub_810FBF0: @ 810FBF0 _0810FC60: movs r0, 0xA strh r0, [r5, 0x1C] - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x4 bl sub_80A861C @@ -34342,7 +34342,7 @@ _0810FC60: bl sub_80A861C subs r0, 0x8 strh r0, [r5, 0x20] - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x4 bl sub_80A861C @@ -34357,7 +34357,7 @@ _0810FC94: bne _0810FCE8 ldr r0, =0x0000fff6 strh r0, [r5, 0x1C] - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x4 bl sub_80A861C @@ -34368,7 +34368,7 @@ _0810FC94: bl sub_80A861C adds r0, 0x8 strh r0, [r5, 0x20] - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x4 bl sub_80A861C @@ -34383,7 +34383,7 @@ _0810FC94: _0810FCE8: movs r0, 0xA strh r0, [r5, 0x1C] - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x5 bl sub_80A861C @@ -34394,7 +34394,7 @@ _0810FCE8: bl sub_80A861C subs r0, 0x8 strh r0, [r5, 0x20] - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x5 bl sub_80A861C @@ -34497,7 +34497,7 @@ _0810FDD4: cmp r0, 0x11 ble _0810FDE8 adds r0, r2, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0810FDE8: pop {r4,r5} pop {r0} @@ -34535,7 +34535,7 @@ sub_810FE14: @ 810FE14 lsls r1, 3 ldr r0, =gTasks adds r4, r1, r0 - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] bl sub_80A6190 lsls r0, 24 @@ -34590,9 +34590,9 @@ _0810FE86: movs r0, 0 strh r0, [r4, 0x24] _0810FE92: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] - bl GetBankIdentity_permutated + bl sub_80A8364 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -34786,7 +34786,7 @@ _08110014: .pool _08110020: adds r0, r2, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08110026: pop {r3,r4} mov r8, r3 @@ -34819,7 +34819,7 @@ sub_8110034: @ 8110034 cmp r6, 0xFF bne _0811006C adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask b _08110116 .pool _0811006C: @@ -34835,7 +34835,7 @@ _0811006C: adds r0, r5, 0 bl FreeOamMatrix mov r0, r8 - bl move_anim_task_del + bl DestroyAnimVisualTask b _08110116 .pool _08110094: @@ -35035,7 +35035,7 @@ _08110228: lsrs r0, 24 bl FreeOamMatrix adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08110238: pop {r4,r5} pop {r0} @@ -35062,7 +35062,7 @@ _08110256: beq _0811034A b _08110360 _08110260: - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0 bl sub_80A5C6C @@ -35110,7 +35110,7 @@ _081102B8: beq _08110360 movs r0, 0x40 negs r0, r0 - bl BattleAnimGetPanControl + bl BattleAnimAdjustPanning adds r1, r0, 0 lsls r1, 24 asrs r1, 24 @@ -35181,7 +35181,7 @@ _0811034A: movs r1, 0 bl SetGpuReg adds r0, r5, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _08110360: pop {r4,r5} pop {r0} @@ -35209,7 +35209,7 @@ sub_8110368: @ 8110368 b _081103C4 .pool _08110394: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -35232,7 +35232,7 @@ _08110394: negs r0, r0 strh r0, [r1] _081103C4: - ldr r5, =gAnimationBankTarget + ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A60AC @@ -35270,7 +35270,7 @@ _081103C4: strh r0, [r6, 0x36] ldr r0, =sub_80A6EEC str r0, [r6, 0x1C] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r6, 0 bl StoreSpriteCallbackInData6 pop {r4-r6} @@ -35297,7 +35297,7 @@ sub_8110438: @ 8110438 b _08110478 .pool _0811045C: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -35311,7 +35311,7 @@ _0811045C: negs r1, r1 strh r1, [r0] _08110478: - ldr r5, =gAnimationBankTarget + ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A60AC @@ -35345,7 +35345,7 @@ _08110478: strh r0, [r6, 0x36] ldr r0, =sub_80A6EEC str r0, [r6, 0x1C] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r6, 0 bl StoreSpriteCallbackInData6 pop {r4-r6} @@ -35384,7 +35384,7 @@ _08110500: ldrsh r0, [r1, r2] cmp r0, 0 bne _08110548 - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -35400,7 +35400,7 @@ _08110500: b _0811055A .pool _08110548: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] adds r2, r5, 0 adds r2, 0x32 @@ -35431,7 +35431,7 @@ sub_811057C: @ 811057C cmp r0, 0 beq _08110592 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite b _081105AE _08110592: movs r1, 0x3A @@ -35457,7 +35457,7 @@ _081105AE: sub_81105B4: @ 81105B4 push {r4,lr} adds r4, r0, 0 - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] adds r2, r4, 0 adds r2, 0x20 @@ -35465,7 +35465,7 @@ sub_81105B4: @ 81105B4 adds r3, 0x22 movs r1, 0 bl sub_80A8924 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -35490,7 +35490,7 @@ _081105FC: ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -35545,7 +35545,7 @@ _08110664: cmp r0, 0x33 bne _08110678 adds r0, r3, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _08110678: pop {r0} bx r0 @@ -35633,7 +35633,7 @@ sub_8110700: @ 8110700 movs r1, 0 bl SetGpuReg adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite pop {r4} pop {r0} bx r0 @@ -35655,7 +35655,7 @@ sub_8110720: @ 8110720 b _08110762 .pool _08110740: - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -35676,11 +35676,11 @@ _08110762: lsls r0, 24 cmp r0, 0 bne _081107B2 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide adds r4, r0, 0 - ldr r5, =gAnimationBankTarget + ldr r5, =gAnimBankTarget ldrb r0, [r5] bl GetBankSide lsls r4, 24 @@ -35712,7 +35712,7 @@ _081107B2: adds r0, r7, 0 movs r1, 0x1 bl sub_80A69CC - ldr r5, =gAnimationBankTarget + ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -35764,7 +35764,7 @@ _081107B2: strh r5, [r7, 0x36] ldr r0, =sub_80A6EEC str r0, [r7, 0x1C] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r7, 0 bl StoreSpriteCallbackInData6 add sp, 0x4 @@ -35780,7 +35780,7 @@ sub_8110850: @ 8110850 adds r6, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -35794,7 +35794,7 @@ _08110870: ldr r4, =gBattleAnimArgs ldrh r0, [r4, 0x8] strh r0, [r6, 0x2E] - ldr r5, =gAnimationBankTarget + ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -35849,7 +35849,7 @@ sub_81108CC: @ 81108CC cmp r0, 0 beq _081108F8 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite b _08110988 _081108F8: movs r0, 0x2E @@ -35941,11 +35941,11 @@ sub_8110994: @ 8110994 ldrsh r0, [r0, r1] cmp r0, 0 bne _081109B0 - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker b _081109B2 .pool _081109B0: - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget _081109B2: ldrb r0, [r4] movs r1, 0x2 @@ -35980,7 +35980,7 @@ sub_81109F0: @ 81109F0 ldrsh r0, [r6, r1] cmp r0, 0 beq _08110A10 - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] adds r2, r5, 0 adds r2, 0x20 @@ -36064,7 +36064,7 @@ sub_8110AB4: @ 8110AB4 bl StartSpriteAnim adds r0, r5, 0 bl AnimateSprite - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -36183,7 +36183,7 @@ sub_8110B80: @ 8110B80 cmp r0, r1 bne _08110BC6 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _08110BC6: pop {r4} pop {r0} @@ -36207,11 +36207,11 @@ sub_8110BCC: @ 8110BCC movs r0, 0x1 movs r1, 0x4 movs r2, 0x1 - bl lcd_bg_operations + bl SetAnimBgAttribute movs r0, 0x1 movs r1, 0 movs r2, 0 - bl lcd_bg_operations + bl SetAnimBgAttribute bl IsContest lsls r0, 24 cmp r0, 0 @@ -36219,7 +36219,7 @@ sub_8110BCC: @ 8110BCC movs r0, 0x1 movs r1, 0x3 movs r2, 0x1 - bl lcd_bg_operations + bl SetAnimBgAttribute _08110C10: ldr r0, =gBattle_BG1_X strh r5, [r0] @@ -36254,7 +36254,7 @@ _08110C10: ldrsh r0, [r0, r1] cmp r0, 0 beq _08110C6E - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -36440,7 +36440,7 @@ _08110DFC: movs r0, 0x1 movs r1, 0x3 movs r2, 0 - bl lcd_bg_operations + bl SetAnimBgAttribute _08110E10: ldr r0, =gBattle_BG1_X movs r1, 0 @@ -36456,9 +36456,9 @@ _08110E10: movs r0, 0x1 movs r1, 0x4 movs r2, 0x1 - bl lcd_bg_operations + bl SetAnimBgAttribute adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08110E3A: add sp, 0x10 pop {r4,r5} @@ -36480,7 +36480,7 @@ sub_8110E4C: @ 8110E4C ldrsh r0, [r4, r2] cmp r0, 0 beq _08110E98 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -36568,7 +36568,7 @@ _08110F0E: cmp r0, r1 bge _08110F24 _08110F20: - ldr r0, =move_anim_8072740 + ldr r0, =DestroyAnimSprite str r0, [r5, 0x1C] _08110F24: pop {r4,r5} @@ -36597,7 +36597,7 @@ sub_8110F30: @ 8110F30 strh r0, [r4, 0x36] ldr r0, =sub_80A6EEC str r0, [r4, 0x1C] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r4, 0 bl StoreSpriteCallbackInData6 pop {r4,r5} @@ -36620,7 +36620,7 @@ sub_8110F74: @ 8110F74 lsls r1, 3 ldr r0, =gTasks adds r6, r1, r0 - ldr r5, =gAnimationBankAttacker + ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -36636,7 +36636,7 @@ sub_8110F74: @ 8110F74 lsls r1, 13 adds r0, r1 lsrs r7, r0, 16 - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -36713,13 +36713,13 @@ _0811101E: strh r4, [r6, 0x16] movs r0, 0x40 negs r0, r0 - bl BattleAnimGetPanControl + bl BattleAnimAdjustPanning adds r4, r0, 0 lsls r4, 24 asrs r4, 8 lsrs r4, 16 movs r0, 0x3F - bl BattleAnimGetPanControl + bl BattleAnimAdjustPanning lsls r0, 24 strh r4, [r6, 0x22] asrs r0, 24 @@ -36926,7 +36926,7 @@ _081111FE: cmp r0, 0 bne _0811120C adds r0, r2, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0811120C: pop {r4} pop {r0} @@ -37090,7 +37090,7 @@ _0811134E: thumb_func_start sub_811135C sub_811135C: @ 811135C push {lr} - ldr r0, =gDisableStructMoveAnim + ldr r0, =gAnimDisableStructPtr ldr r0, [r0] ldrb r1, [r0, 0x11] lsrs r0, r1, 4 @@ -37183,7 +37183,7 @@ _08111400: cmp r0, 0 bne _08111412 adds r0, r2, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _08111412: pop {r0} bx r0 @@ -37193,7 +37193,7 @@ _08111412: sub_8111418: @ 8111418 push {r4,lr} adds r4, r0, 0 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -37216,7 +37216,7 @@ _08111434: sub_8111444: @ 8111444 push {r4,r5,lr} adds r4, r0, 0 - ldr r5, =gAnimationBankTarget + ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0 bl sub_80A5C6C @@ -37286,7 +37286,7 @@ sub_811149C: @ 811149C cmp r0, 0x8C ble _081114E6 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _081114E6: pop {r4} pop {r0} @@ -37298,7 +37298,7 @@ sub_81114EC: @ 81114EC push {lr} lsls r0, 24 lsrs r3, r0, 24 - ldr r2, =gMoveDmgMoveAnim + ldr r2, =gAnimMoveDmg ldr r0, [r2] cmp r0, 0x20 bgt _08111500 @@ -37322,7 +37322,7 @@ _08111510: strh r0, [r1, 0xE] _0811151A: adds r0, r3, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r0} bx r0 .pool @@ -37365,7 +37365,7 @@ _0811154E: movs r0, 0x1 bl sub_80A6DAC adds r0, r6, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0811157A: ldrh r0, [r5, 0x8] adds r0, 0x1 @@ -37424,7 +37424,7 @@ _081115BC: movs r0, 0x1 bl sub_80A6DAC adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _081115F4: pop {r4-r6} pop {r0} @@ -37443,7 +37443,7 @@ sub_811160C: @ 811160C strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] strh r0, [r4, 0x30] - ldr r5, =gAnimationBankTarget + ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -37748,7 +37748,7 @@ _08111852: cmp r0, 0x3D bne _08111884 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _08111884: pop {r4} pop {r0} @@ -37902,7 +37902,7 @@ _081119BC: adds r0, r1, 0 bl sub_80A7344 adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask movs r0, 0x50 movs r1, 0 bl SetGpuReg @@ -37925,7 +37925,7 @@ sub_81119E0: @ 81119E0 adds r4, r0, 0 ldrh r5, [r4, 0x20] ldrh r6, [r4, 0x22] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker mov r8, r0 ldrb r0, [r0] movs r1, 0x2 @@ -38042,7 +38042,7 @@ _08111AD2: lsls r0, 16 cmp r0, 0 bgt _08111B96 - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -38104,7 +38104,7 @@ _08111B3C: lsls r0, 16 cmp r0, 0 bgt _08111B96 - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -38223,7 +38223,7 @@ _08111C38: cmp r6, 0 beq _08111C44 adds r0, r3, 0 - bl move_anim_8072740 + bl DestroyAnimSprite b _08111C4A _08111C44: ldrh r0, [r3, 0x30] @@ -38254,7 +38254,7 @@ sub_8111C50: @ 8111C50 cmp r0, 0 bge _08111C80 adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask b _08111D5C .pool _08111C80: @@ -38285,7 +38285,7 @@ _08111C80: adds r0, r4 movs r1, 0x50 strh r1, [r0, 0x2E] - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -38470,7 +38470,7 @@ _08111E1C: b _08111E48 _08111E42: adds r0, r2, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08111E48: pop {r4} pop {r0} @@ -38510,9 +38510,9 @@ sub_8111E78: @ 8111E78 lsls r0, 3 ldr r1, =gTasks adds r5, r0, r1 - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] - bl GetBankIdentity_permutated + bl sub_80A8364 lsls r0, 24 lsrs r6, r0, 24 movs r1, 0x26 @@ -38557,7 +38557,7 @@ _08111ED0: bl FreeSpritePaletteByTag _08111EFE: adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask b _081120CC .pool _08111F0C: @@ -38604,7 +38604,7 @@ _08111F0C: adds r2, r4 ldr r0, =gBattleSpritesDataPtr ldr r1, [r0] - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] ldr r1, [r1] lsls r0, 2 @@ -38864,9 +38864,9 @@ sub_8112170: @ 8112170 lsls r0, 3 ldr r1, =gTasks adds r4, r0, r1 - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] - bl GetBankIdentity_permutated + bl sub_80A8364 lsls r0, 24 lsrs r6, r0, 24 movs r1, 0x26 @@ -38956,7 +38956,7 @@ _08112248: bl SetGpuRegBits _08112252: adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08112258: ldrh r0, [r4, 0x26] adds r0, 0x1 @@ -38979,7 +38979,7 @@ sub_8112264: @ 8112264 ldrsh r0, [r0, r1] cmp r0, 0 bne _081122AC - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0 bl sub_80A5C6C @@ -38994,11 +38994,11 @@ sub_8112264: @ 8112264 lsls r2, 13 adds r0, r2 lsrs r5, r0, 16 - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget b _081122D0 .pool _081122AC: - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0 bl sub_80A5C6C @@ -39013,7 +39013,7 @@ _081122AC: lsls r2, 13 adds r0, r2 lsrs r5, r0, 16 - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker _081122D0: ldrb r0, [r4] movs r1, 0 @@ -39166,7 +39166,7 @@ sub_81123C4: @ 81123C4 ldr r2, =gBattleAnimArgs ldrh r0, [r2] strh r0, [r1, 0x1C] - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -39189,7 +39189,7 @@ _08112434: _08112436: lsls r1, r4, 16 asrs r3, r1, 16 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r2, [r0] str r1, [sp, 0x10] cmp r3, r2 @@ -39201,7 +39201,7 @@ _08112436: lsls r0, r4, 24 lsrs r4, r0, 24 adds r0, r4, 0 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 beq _08112502 @@ -39565,7 +39565,7 @@ _0811273C: movs r1, 0 bl SetGpuReg adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08112752: pop {r4,r5} pop {r0} @@ -39594,7 +39594,7 @@ sub_8112758: @ 8112758 movs r0, 0x54 movs r1, 0x10 bl SetGpuReg - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -39855,7 +39855,7 @@ sub_8112994: @ 8112994 movs r1, 0 bl SetGpuReg adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _081129DA: pop {r4,r5} pop {r0} @@ -39869,7 +39869,7 @@ sub_81129F0: @ 81129F0 adds r4, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -40048,7 +40048,7 @@ sub_8112B44: @ 8112B44 ldr r0, =gBattle_WIN0V strh r1, [r0] adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite pop {r4} pop {r0} bx r0 @@ -40064,7 +40064,7 @@ sub_8112B78: @ 8112B78 movs r1, 0xC bl Sin strh r0, [r5, 0x24] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -40171,7 +40171,7 @@ sub_8112C4C: @ 8112C4C movs r1, 0 bl SetGpuReg adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite pop {r4} pop {r0} bx r0 @@ -40195,7 +40195,7 @@ sub_8112C6C: @ 8112C6C mov r8, r0 mov r0, r8 strh r0, [r4, 0xA] - ldr r5, =gAnimationBankAttacker + ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -40301,7 +40301,7 @@ _08112D56: lsls r0, 2 adds r5, r0, r1 strh r7, [r5, 0x2E] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide movs r1, 0 @@ -40445,7 +40445,7 @@ _08112E80: movs r1, 0 bl SetGpuReg adds r0, r7, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08112E96: pop {r4-r7} pop {r0} @@ -40562,7 +40562,7 @@ sub_8112F60: @ 8112F60 orrs r1, r2 strb r1, [r3] ldr r2, =gBankSpriteIds - ldr r1, =gAnimationBankAttacker + ldr r1, =gAnimBankAttacker ldrb r1, [r1] adds r1, r2 ldrb r1, [r1] @@ -40679,7 +40679,7 @@ _08113054: sub_8113064: @ 8113064 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -40752,7 +40752,7 @@ sub_8113100: @ 8113100 push {r4,r5,lr} adds r5, r0, 0 bl sub_80A6838 - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -40765,7 +40765,7 @@ sub_8113100: @ 8113100 lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -40834,11 +40834,11 @@ sub_81131B4: @ 81131B4 ldrsh r0, [r0, r1] cmp r0, 0 bne _081131D0 - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker b _081131D2 .pool _081131D0: - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget _081131D2: ldrb r0, [r4] movs r1, 0 @@ -40876,7 +40876,7 @@ _081131D2: sub_8113224: @ 8113224 push {r4,lr} adds r4, r0, 0 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -40898,7 +40898,7 @@ _0811323E: sub_8113250: @ 8113250 push {r4-r7,lr} adds r6, r0, 0 - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -41088,7 +41088,7 @@ _081133CE: cmp r0, 0x14 ble _081133E2 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _081133E2: pop {r4,r5} pop {r0} @@ -41106,9 +41106,9 @@ sub_81133E8: @ 81133E8 lsls r1, 3 ldr r0, =gTasks adds r4, r1, r0 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankIdentity_permutated + bl sub_80A8364 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -41133,7 +41133,7 @@ _0811342A: strb r0, [r1, 0x8] mov r0, sp strb r5, [r0, 0x9] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl sub_80A6190 lsls r0, 24 @@ -41274,7 +41274,7 @@ _08113556: .pool _08113568: adds r0, r3, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0811356E: pop {r0} bx r0 @@ -41354,7 +41354,7 @@ sub_81135EC: @ 81135EC movs r1, 0x5 bl __divsi3 adds r6, r0, 0 - ldr r1, =gAnimationBankAttacker + ldr r1, =gAnimBankAttacker mov r8, r1 ldrb r0, [r1] movs r1, 0x2 @@ -41453,7 +41453,7 @@ sub_811369C: @ 811369C cmp r0, r1 ble _081136E0 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _081136E0: pop {r4} pop {r0} @@ -41473,14 +41473,14 @@ sub_81136E8: @ 81136E8 ldr r1, =gBattleAnimArgs ldrh r1, [r1] strh r1, [r0, 0x8] - ldr r1, =gAnimationBankAttacker + ldr r1, =gAnimBankAttacker ldrb r4, [r1] movs r1, 0x10 strh r1, [r0, 0xA] movs r0, 0x52 bl SetGpuReg adds r0, r4, 0 - bl GetBankIdentity_permutated + bl sub_80A8364 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -41545,7 +41545,7 @@ sub_811375C: @ 811375C bne _081137DE ldr r2, =gSprites ldr r1, =gBankSpriteIds - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -41559,7 +41559,7 @@ sub_811375C: @ 811375C orrs r1, r2 strb r1, [r0] adds r0, r7, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask b _081137DE .pool _081137D8: @@ -41639,7 +41639,7 @@ sub_811381C: @ 811381C movs r1, 0 bl SetGpuReg adds r0, r7, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask b _08113882 .pool _0811387C: @@ -41661,9 +41661,9 @@ sub_8113888: @ 8113888 lsls r1, 5 movs r0, 0x52 bl SetGpuReg - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankIdentity_permutated + bl sub_80A8364 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -41679,7 +41679,7 @@ _081138BC: bl SetGpuReg _081138C4: adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r4} pop {r0} bx r0 @@ -41690,14 +41690,14 @@ _081138C4: sub_81138D4: @ 81138D4 push {r4-r6,lr} adds r4, r0, 0 - ldr r6, =gAnimationBankTarget + ldr r6, =gAnimBankTarget ldrb r0, [r6] movs r1, 0x2 bl sub_80A5C6C lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x30] - ldr r5, =gAnimationBankAttacker + ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -41805,7 +41805,7 @@ _081139C2: cmp r0, 0 bne _081139D4 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _081139D4: pop {r4-r6} pop {r0} @@ -41918,11 +41918,11 @@ sub_8113A90: @ 8113A90 adds r3, r0, 0 cmp r1, 0 bne _08113AAC - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker b _08113AAE .pool _08113AAC: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget _08113AAE: ldrb r5, [r0] movs r6, 0x14 @@ -42054,7 +42054,7 @@ sub_8113BAC: @ 8113BAC lsls r1, 3 ldr r0, =gTasks adds r5, r1, r0 - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x1 bl sub_80A5C6C @@ -42096,9 +42096,9 @@ _08113C1C: ldr r0, =0x0000ffc0 _08113C1E: strh r0, [r5, 0x18] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankIdentity_permutated + bl sub_80A8364 lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0xE] @@ -42355,7 +42355,7 @@ _08113E5E: .pool _08113E6C: adds r0, r2, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08113E72: pop {r4} pop {r0} @@ -42411,13 +42411,13 @@ _08113EBC: adds r1, r4, 0 bl SetGpuReg adds r0, r6, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask b _081140A6 .pool _08113EF8: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] - bl GetBankIdentity_permutated + bl sub_80A8364 lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0xE] @@ -42472,7 +42472,7 @@ _08113F78: b _08114044 .pool _08113F84: - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x1 bl sub_80A5C6C @@ -42795,7 +42795,7 @@ _08114210: adds r1, r4, 0 bl SetGpuReg adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08114232: pop {r4,r5} pop {r0} @@ -43014,9 +43014,9 @@ sub_81143C0: @ 81143C0 lsls r0, 24 lsrs r0, 24 mov r10, r0 - ldr r6, =gAnimationBankAttacker + ldr r6, =gAnimBankAttacker ldrb r0, [r6] - bl GetBankIdentity_permutated + bl sub_80A8364 lsls r0, 24 lsrs r0, 24 movs r1, 0x1 @@ -43049,7 +43049,7 @@ sub_81143C0: @ 81143C0 ldrb r0, [r6] movs r5, 0x2 eors r0, r5 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 beq _0811444E @@ -43075,7 +43075,7 @@ sub_81143C0: @ 81143C0 strb r1, [r0] _0811444E: mov r0, r10 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r3-r5} mov r8, r3 mov r9, r4 @@ -43091,9 +43091,9 @@ sub_8114470: @ 8114470 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] - bl GetBankIdentity_permutated + bl sub_80A8364 lsls r0, 24 lsrs r0, 24 movs r1, 0x1 @@ -43106,7 +43106,7 @@ sub_8114470: @ 8114470 ldrb r1, [r4] movs r0, 0x2 eors r0, r1 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 beq _081144AC @@ -43116,7 +43116,7 @@ sub_8114470: @ 8114470 bl sub_80A477C _081144AC: adds r0, r6, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r4-r6} pop {r0} bx r0 @@ -43141,7 +43141,7 @@ sub_81144BC: @ 81144BC bl StartSpriteAnim ldr r0, =sub_80A67D8 str r0, [r4, 0x1C] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r4, 0 bl StoreSpriteCallbackInData6 pop {r4} @@ -43180,11 +43180,11 @@ sub_81144F8: @ 81144F8 movs r0, 0x1 movs r1, 0x4 movs r2, 0 - bl lcd_bg_operations + bl SetAnimBgAttribute movs r0, 0x1 movs r1, 0 movs r2, 0 - bl lcd_bg_operations + bl SetAnimBgAttribute bl IsContest lsls r0, 24 cmp r0, 0 @@ -43192,7 +43192,7 @@ sub_81144F8: @ 81144F8 movs r0, 0x1 movs r1, 0x3 movs r2, 0x1 - bl lcd_bg_operations + bl SetAnimBgAttribute _0811455C: bl IsDoubleBattle lsls r0, 24 @@ -43202,7 +43202,7 @@ _0811455C: lsls r0, 24 cmp r0, 0 bne _081145D6 - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] bl GetBankIdentity lsls r0, 24 @@ -43218,7 +43218,7 @@ _0811458C: ldrb r0, [r4] movs r5, 0x2 eors r0, r5 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -43248,21 +43248,21 @@ _0811458C: movs r0, 0x1 movs r1, 0x4 movs r2, 0x1 - bl lcd_bg_operations + bl SetAnimBgAttribute movs r6, 0x1 _081145D6: bl IsContest lsls r0, 24 cmp r0, 0 beq _08114614 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x18] ldrh r5, [r0] b _0811465C .pool _08114614: - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] bl GetBankSide lsls r0, 24 @@ -43299,7 +43299,7 @@ _0811465C: adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] adds r1, r4, 0 adds r2, r5, 0 @@ -43458,7 +43458,7 @@ _081147B8: cmp r0, 0x1 bne _08114886 ldr r2, =gBankSpriteIds - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r1, [r0] movs r0, 0x2 eors r0, r1 @@ -43503,7 +43503,7 @@ _08114824: movs r0, 0x1 movs r1, 0x3 movs r2, 0 - bl lcd_bg_operations + bl SetAnimBgAttribute _08114856: movs r0, 0 bl GetGpuReg @@ -43523,7 +43523,7 @@ _08114856: movs r1, 0 bl SetGpuReg adds r0, r6, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08114886: add sp, 0x10 pop {r4-r6} @@ -43590,7 +43590,7 @@ _08114908: lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 beq _0811492C @@ -43617,7 +43617,7 @@ _0811492E: bl sub_80A750C _0811494A: adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r4,r5} pop {r0} bx r0 @@ -43629,7 +43629,7 @@ sub_8114960: @ 8114960 push {lr} lsls r0, 24 lsrs r3, r0, 24 - ldr r2, =gUnknown_02038432 + ldr r2, =gAnimMoveTurn ldrb r0, [r2] cmp r0, 0x1 bhi _08114974 @@ -43645,7 +43645,7 @@ _08114974: strh r0, [r1, 0xE] _08114980: adds r0, r3, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r0} bx r0 .pool @@ -43655,7 +43655,7 @@ _08114980: sub_8114994: @ 8114994 push {r4,r5,lr} adds r4, r0, 0 - ldr r5, =gAnimationBankAttacker + ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -43670,7 +43670,7 @@ sub_8114994: @ 8114994 strh r0, [r4, 0x22] movs r0, 0x14 strh r0, [r4, 0x2E] - ldr r5, =gAnimationBankTarget + ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -43716,7 +43716,7 @@ sub_81149FC: @ 81149FC strh r1, [r5, 0x24] movs r0, 0x14 strh r0, [r5, 0x2E] - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -43751,7 +43751,7 @@ sub_8114A60: @ 8114A60 cmp r0, 0 beq _08114A74 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _08114A74: pop {r4} pop {r0} @@ -43764,7 +43764,7 @@ sub_8114A7C: @ 8114A7C adds r6, r0, 0 movs r1, 0x1 bl sub_80A6980 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -43778,7 +43778,7 @@ _08114A9C: ldr r4, =gBattleAnimArgs ldrh r0, [r4, 0x8] strh r0, [r6, 0x2E] - ldr r5, =gAnimationBankTarget + ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -43797,7 +43797,7 @@ _08114A9C: strh r0, [r6, 0x36] ldr r0, =sub_80A6EEC str r0, [r6, 0x1C] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r6, 0 bl StoreSpriteCallbackInData6 pop {r4-r6} @@ -43814,7 +43814,7 @@ sub_8114AF0: @ 8114AF0 adds r6, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A60AC @@ -43890,7 +43890,7 @@ sub_8114B80: @ 8114B80 ldrsh r0, [r6, r1] cmp r0, 0 bne _08114BF4 - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -43964,7 +43964,7 @@ _08114C2E: cmp r0, r1 bge _08114C46 adds r0, r2, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _08114C46: pop {r0} bx r0 @@ -44025,7 +44025,7 @@ _08114C74: cmp r0, 0xA bne _08114CB6 adds r0, r3, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _08114CB6: pop {r0} bx r0 @@ -44096,9 +44096,9 @@ _08114D3C: lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1C] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankIdentity_permutated + bl sub_80A8364 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1E] @@ -44118,7 +44118,7 @@ _08114D70: _08114D78: ldrh r0, [r0] strh r0, [r4, 0x22] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl sub_80A6190 lsls r0, 24 @@ -44246,7 +44246,7 @@ _08114E7E: .pool _08114E8C: adds r0, r2, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask ldr r2, =gSprites movs r0, 0x1C ldrsh r1, [r4, r0] @@ -44289,9 +44289,9 @@ sub_8114EB4: @ 8114EB4 movs r4, 0 strh r4, [r1, 0x24] strh r4, [r1, 0x26] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankIdentity_permutated + bl sub_80A8364 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -44304,7 +44304,7 @@ _08114F00: _08114F02: strh r4, [r0] adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r4,r5} pop {r0} bx r0 @@ -44402,7 +44402,7 @@ _08114F78: .pool _08114FCC: adds r0, r2, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08114FD2: pop {r4,r5} pop {r0} @@ -44442,9 +44442,9 @@ _08115018: lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1C] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankIdentity_permutated + bl sub_80A8364 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1E] @@ -44458,7 +44458,7 @@ _08115044: _08115046: ldrh r0, [r0] strh r0, [r4, 0x20] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl sub_80A6190 lsls r0, 24 @@ -44521,7 +44521,7 @@ _081150C2: .pool _081150D4: adds r0, r2, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _081150DA: pop {r4} pop {r0} @@ -44634,11 +44634,11 @@ sub_81151A0: @ 81151A0 adds r7, r0, 0 cmp r1, 0 bne _081151BC - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker b _081151BE .pool _081151BC: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget _081151BE: ldrb r4, [r0] movs r6, 0x18 @@ -44698,7 +44698,7 @@ sub_8115228: @ 8115228 cmp r0, 0 beq _0811523C adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0811523C: pop {r4} pop {r0} @@ -44714,11 +44714,11 @@ sub_8115244: @ 8115244 ldrsh r0, [r0, r1] cmp r0, 0 bne _08115260 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker b _08115262 .pool _08115260: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget _08115262: ldrb r5, [r0] adds r0, r5, 0 @@ -44754,7 +44754,7 @@ _08115262: ands r0, r2 orrs r0, r1 strh r0, [r6, 0x4] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r6, 0 bl StoreSpriteCallbackInData6 ldrh r0, [r4, 0x4] @@ -44788,7 +44788,7 @@ sub_81152DC: @ 81152DC b _08115314 .pool _08115308: - ldr r0, =gMovePowerMoveAnim + ldr r0, =gAnimMovePower ldrh r0, [r0] movs r1, 0xA bl __udivsi3 @@ -44818,7 +44818,7 @@ _08115340: _08115346: lsls r0, r5, 24 lsrs r0, 24 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 beq _08115370 @@ -44853,7 +44853,7 @@ _08115380: cmp r0, 0xFF bne _08115398 adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask b _081153A0 _08115398: movs r0, 0x1 @@ -44991,7 +44991,7 @@ _08115490: ldrh r0, [r3, 0x22] strh r0, [r1] adds r0, r2, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0811549C: pop {r0} bx r0 @@ -45110,7 +45110,7 @@ _08115554: blt _08115554 _08115578: adds r0, r3, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0811557E: pop {r4-r7} pop {r0} @@ -45191,7 +45191,7 @@ sub_8115600: @ 8115600 lsrs r1, r0, 24 ldr r3, =gBattleAnimArgs movs r2, 0 - ldr r0, =gMovePowerMoveAnim + ldr r0, =gAnimMovePower ldrh r0, [r0] cmp r0, 0x63 bls _08115614 @@ -45199,7 +45199,7 @@ sub_8115600: @ 8115600 _08115614: strh r2, [r3, 0x1E] adds r0, r1, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r0} bx r0 .pool @@ -45217,11 +45217,11 @@ sub_8115628: @ 8115628 adds r6, r2, 0 cmp r0, 0 beq _08115648 - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget b _0811564A .pool _08115648: - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker _0811564A: ldrb r0, [r0] adds r5, r0, 0 @@ -45271,7 +45271,7 @@ _0811565A: ldrh r0, [r6, 0x4] strh r0, [r4, 0xE] adds r0, r7, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r4-r7} pop {r0} bx r0 @@ -45333,7 +45333,7 @@ sub_811572C: @ 811572C strh r0, [r4, 0x22] ldrh r0, [r5, 0x4] strh r0, [r4, 0x2E] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -45415,7 +45415,7 @@ _081157D2: cmp r0, r1 bne _081157F6 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _081157F6: pop {r4} pop {r0} @@ -45503,7 +45503,7 @@ sub_8115884: @ 8115884 cmp r0, 0 bne _0811589A adds r0, r2, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0811589A: pop {r0} bx r0 @@ -45638,7 +45638,7 @@ sub_8115984: @ 8115984 movs r2, 0 bl BlendPalettes adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _081159AA: pop {r4} pop {r0} @@ -45810,7 +45810,7 @@ _08115AF8: b _08115B06 _08115B00: adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08115B06: pop {r4-r6} pop {r0} @@ -45852,9 +45852,9 @@ sub_8115B0C: @ 8115B0C mov r8, r2 cmp r5, r1 bge _08115B74 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r3, [r0] - ldr r7, =gAnimationBankTarget + ldr r7, =gAnimBankTarget movs r0, 0x1 mov r12, r0 adds r2, r1, 0 @@ -45996,7 +45996,7 @@ _08115C6C: b _08115C7A _08115C74: adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08115C7A: pop {r4-r6} pop {r0} @@ -46135,7 +46135,7 @@ _08115D80: b _08115D8E _08115D88: adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08115D8E: pop {r4-r6} pop {r0} @@ -46317,7 +46317,7 @@ sub_8115EB8: @ 8115EB8 movs r3, 0 bl BeginNormalPaletteFade adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08115EFE: add sp, 0x4 pop {r4,r5} @@ -46336,9 +46336,9 @@ sub_8115F10: @ 8115F10 lsrs r0, 24 mov r8, r0 movs r2, 0 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r6, [r0] - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r7, [r0] ldr r4, =gBattleAnimArgs ldrh r1, [r4] @@ -46380,7 +46380,7 @@ _08115F6E: adds r0, r2, 0 bl InvertPlttBuffer mov r0, r8 - bl move_anim_task_del + bl DestroyAnimVisualTask add sp, 0xC pop {r3} mov r8, r3 @@ -46429,10 +46429,10 @@ _08115FD6: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] mov r9, r0 - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] mov r10, r0 ldrh r1, [r4, 0xC] @@ -46507,7 +46507,7 @@ _08116050: adds r0, r5, 0 bl UnfadePlttBuffer mov r0, r8 - bl move_anim_task_del + bl DestroyAnimVisualTask _0811607A: pop {r3-r5} mov r8, r3 @@ -46679,7 +46679,7 @@ _081161BA: bcc _081161BA _081161DC: adds r0, r3, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _081161E2: pop {r4-r7} pop {r0} @@ -46692,7 +46692,7 @@ sub_81161F4: @ 81161F4 push {r4-r6,lr} ldr r6, =gSprites ldr r4, =gBankSpriteIds - ldr r5, =gAnimationBankAttacker + ldr r5, =gAnimBankAttacker ldrb r0, [r5] adds r0, r4 ldrb r0, [r0] @@ -46707,7 +46707,7 @@ sub_81161F4: @ 81161F4 adds r0, r2, 0 ands r0, r3 strb r0, [r1] - ldr r3, =gAnimationBankTarget + ldr r3, =gAnimBankTarget ldrb r0, [r3] adds r0, r4 ldrb r1, [r0] @@ -46873,7 +46873,7 @@ _08116358: strh r1, [r6] strh r1, [r2] adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask b _08116382 _0811637E: subs r0, r2, 0x1 @@ -46907,7 +46907,7 @@ _081163AC: _081163B4: ldr r0, =sub_80A67BC str r0, [r5, 0x1C] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r5, 0 bl StoreSpriteCallbackInData6 pop {r4,r5} @@ -46955,7 +46955,7 @@ _081163FC: sub_8116420: @ 8116420 push {r4,lr} adds r4, r0, 0 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -47113,7 +47113,7 @@ _08116584: ldr r0, =gBattleAnimArgs ldrh r0, [r0, 0x6] strh r0, [r4, 0x2E] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r4, 0 bl StoreSpriteCallbackInData6 ldr r0, =sub_80A64B0 @@ -47180,7 +47180,7 @@ sub_81165E4: @ 81165E4 cmp r0, 0xC ble _0811661A adds r0, r3, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0811661A: pop {r0} bx r0 @@ -47256,14 +47256,14 @@ _081166B8: movs r5, 0 _081166BA: mov r0, sp - ldr r1, =gAnimationBankAttacker + ldr r1, =gAnimBankAttacker b _081166CA .pool _081166C4: movs r5, 0 _081166C6: mov r0, sp - ldr r1, =gAnimationBankTarget + ldr r1, =gAnimBankTarget _081166CA: ldrb r1, [r1] strb r1, [r0] @@ -47271,10 +47271,10 @@ _081166CA: .pool _081166D4: mov r1, sp - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] strb r0, [r1] - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] strb r0, [r1, 0x1] b _0811670E @@ -47287,13 +47287,13 @@ _081166EC: _081166F4: movs r5, 0 mov r2, sp - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker b _08116706 .pool _08116700: movs r5, 0 mov r2, sp - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget _08116706: ldrb r0, [r0] movs r1, 0x2 @@ -47310,7 +47310,7 @@ _08116712: cmp r4, r0 beq _0811673C adds r0, r4, 0 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 beq _0811673C @@ -47558,7 +47558,7 @@ _0811693C: b _08116954 _08116946: adds r0, r7, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask b _08116954 _0811694E: mov r0, r8 @@ -47614,7 +47614,7 @@ sub_81169A0: @ 81169A0 cmp r0, 0 bne _081169B8 adds r0, r2, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _081169B8: pop {r0} bx r0 @@ -47750,7 +47750,7 @@ _08116ABC: cmp r0, 0 bne _08116ACA adds r0, r2, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08116ACA: pop {r4-r6} pop {r0} @@ -47867,7 +47867,7 @@ _08116BA2: lsls r0, 24 cmp r0, 0 bne _08116C26 - ldr r5, =gAnimationBankAttacker + ldr r5, =gAnimBankAttacker ldrb r0, [r5] bl GetBankIdentity lsls r0, 24 @@ -47883,7 +47883,7 @@ _08116BD2: ldrb r0, [r5] movs r6, 0x2 eors r0, r6 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -47925,14 +47925,14 @@ _08116C26: lsls r0, 24 cmp r0, 0 beq _08116C64 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x18] ldrh r5, [r0] b _08116CAC .pool _08116C64: - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] bl GetBankSide lsls r0, 24 @@ -47969,7 +47969,7 @@ _08116CAC: adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] adds r1, r4, 0 adds r2, r5, 0 @@ -48138,7 +48138,7 @@ _08116DF6: cmp r0, 0x1 bne _08116E7C ldr r2, =gBankSpriteIds - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r1, [r0] movs r0, 0x2 eors r0, r1 @@ -48164,7 +48164,7 @@ _08116E7C: mov r2, r8 strh r2, [r7] adds r0, r6, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08116E86: add sp, 0x14 pop {r3} @@ -48223,11 +48223,11 @@ sub_8116F04: @ 8116F04 ldrsh r0, [r1, r2] cmp r0, 0 bne _08116F24 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker b _08116F26 .pool _08116F24: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget _08116F26: ldrb r0, [r0] strb r0, [r1] @@ -48247,7 +48247,7 @@ _08116F26: cmp r0, 0 beq _08116F5C ldrb r0, [r1, 0x1] - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 bne _08116F5C @@ -48281,11 +48281,11 @@ _08116F5C: movs r0, 0x1 movs r1, 0x4 movs r2, 0 - bl lcd_bg_operations + bl SetAnimBgAttribute movs r0, 0x1 movs r1, 0 movs r2, 0 - bl lcd_bg_operations + bl SetAnimBgAttribute bl IsContest lsls r0, 24 cmp r0, 0 @@ -48293,7 +48293,7 @@ _08116F5C: movs r0, 0x1 movs r1, 0x3 movs r2, 0x1 - bl lcd_bg_operations + bl SetAnimBgAttribute _08116FBA: bl IsDoubleBattle lsls r0, 24 @@ -48320,7 +48320,7 @@ _08116FBA: _08116FEC: ldr r0, [r4] ldrb r0, [r0, 0x1] - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x1 @@ -48350,7 +48350,7 @@ _08116FEC: movs r0, 0x1 movs r1, 0x4 movs r2, 0x1 - bl lcd_bg_operations + bl SetAnimBgAttribute ldr r0, [r4] strb r5, [r0, 0x2] _08117036: @@ -48360,7 +48360,7 @@ _08117036: beq _08117078 ldr r0, =gUnknown_0203A110 ldr r1, [r0] - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x18] ldrh r0, [r0] @@ -48614,7 +48614,7 @@ _08117280: bne _081172CC movs r0, 0x40 negs r0, r0 - bl sub_80A5278 + bl BattleAnimAdjustPanning2 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 @@ -48625,7 +48625,7 @@ _08117280: _081172CC: movs r0, 0x40 negs r0, r0 - bl sub_80A5278 + bl BattleAnimAdjustPanning2 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 @@ -48765,7 +48765,7 @@ _081173B6: movs r0, 0x1 movs r1, 0x3 movs r2, 0 - bl lcd_bg_operations + bl SetAnimBgAttribute _081173E6: movs r0, 0 bl GetGpuReg @@ -48833,7 +48833,7 @@ _08117466: movs r0, 0 str r0, [r4] adds r0, r6, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08117478: pop {r4-r6} pop {r0} @@ -48987,7 +48987,7 @@ _081175AC: .pool _081175B8: adds r0, r2, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _081175BE: pop {r4-r6} pop {r0} @@ -49044,7 +49044,7 @@ sub_8117610: @ 8117610 lsrs r6, r0, 24 movs r4, 0 movs r2, 0 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r3, [r0] movs r5, 0x1 _08117620: @@ -49096,7 +49096,7 @@ sub_8117660: @ 8117660 ldrsh r0, [r4, r1] cmp r0, 0 beq _0811769C - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -49125,7 +49125,7 @@ _0811769C: adds r0, 0x1 strh r0, [r1, 0x8] adds r0, r6, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r4-r6} pop {r0} bx r0 @@ -49196,7 +49196,7 @@ sub_8117754: @ 8117754 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide ldr r1, =gBattleAnimArgs @@ -49204,7 +49204,7 @@ sub_8117754: @ 8117754 lsrs r0, 24 strh r0, [r1, 0xE] adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r4} pop {r0} bx r0 @@ -49217,7 +49217,7 @@ sub_8117780: @ 8117780 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] bl GetBankSide ldr r1, =gBattleAnimArgs @@ -49225,7 +49225,7 @@ sub_8117780: @ 8117780 lsrs r0, 24 strh r0, [r1, 0xE] adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r4} pop {r0} bx r0 @@ -49239,10 +49239,10 @@ sub_81177AC: @ 81177AC lsrs r3, r0, 24 ldr r5, =gBattleAnimArgs movs r4, 0 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r2, [r0] movs r0, 0x2 - ldr r1, =gAnimationBankTarget + ldr r1, =gAnimBankTarget eors r0, r2 ldrb r1, [r1] cmp r0, r1 @@ -49251,7 +49251,7 @@ sub_81177AC: @ 81177AC _081177C8: strh r4, [r5, 0xE] adds r0, r3, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r4,r5} pop {r0} bx r0 @@ -49266,13 +49266,13 @@ sub_81177E4: @ 81177E4 movs r4, 0 ldr r6, =gSprites _081177EE: - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] cmp r4, r0 beq _0811782C lsls r0, r4, 24 lsrs r0, 24 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 beq _0811782C @@ -49303,7 +49303,7 @@ _0811782C: cmp r4, 0x3 bls _081177EE adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r4-r7} pop {r0} bx r0 @@ -49355,7 +49355,7 @@ sub_8117854: @ 8117854 cmp r1, 0 beq _081178BA adds r0, r6, 0 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 bne _081178BA @@ -49423,7 +49423,7 @@ _08117930: lsls r0, 24 cmp r0, 0 beq _08117964 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x18] ldrh r4, [r0] @@ -49744,7 +49744,7 @@ _08117BB2: bl DestroySprite _08117C06: adds r0, r6, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08117C0C: add sp, 0x4 pop {r4-r6} @@ -49762,7 +49762,7 @@ sub_8117C24: @ 8117C24 ldr r1, =gBattleTerrain ldrb r1, [r1] strh r1, [r2] - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r0} bx r0 .pool @@ -49784,7 +49784,7 @@ sub_8117C44: @ 8117C44 adds r1, r2 str r0, [r1] adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r4} pop {r0} bx r0 @@ -49809,7 +49809,7 @@ sub_8117C70: @ 8117C70 movs r1, 0 str r1, [r0] adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r4-r6} pop {r0} bx r0 @@ -49854,13 +49854,13 @@ _08117CD2: _08117CE4: cmp r0, 0x1 bne _08117CF0 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker b _08117CF6 .pool _08117CF0: cmp r0, 0x2 bne _08117CFC - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget _08117CF6: ldrb r0, [r0] adds r4, r0, 0 @@ -49883,7 +49883,7 @@ _08117CFC: movs r2, 0x20 bl memcpy adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask add sp, 0xC pop {r4,r5} pop {r0} @@ -49929,13 +49929,13 @@ _08117D6E: _08117D80: cmp r0, 0x1 bne _08117D8C - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker b _08117D92 .pool _08117D8C: cmp r0, 0x2 bne _08117D98 - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget _08117D92: ldrb r0, [r0] adds r4, r0, 0 @@ -49958,7 +49958,7 @@ _08117D98: movs r2, 0x20 bl memcpy adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask add sp, 0xC pop {r4,r5} pop {r0} @@ -50004,13 +50004,13 @@ _08117E0A: _08117E1C: cmp r0, 0x1 bne _08117E28 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker b _08117E2E .pool _08117E28: cmp r0, 0x2 bne _08117E34 - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget _08117E2E: ldrb r0, [r0] adds r4, r0, 0 @@ -50024,7 +50024,7 @@ _08117E34: movs r2, 0x20 bl memcpy adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask add sp, 0xC pop {r4,r5} pop {r0} @@ -50052,7 +50052,7 @@ _08117E80: strh r1, [r0, 0xE] _08117E84: adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r4} pop {r0} bx r0 @@ -50064,15 +50064,15 @@ sub_8117E94: @ 8117E94 push {lr} lsls r0, 24 lsrs r0, 24 - ldr r2, =gAnimationBankAttacker + ldr r2, =gAnimBankAttacker ldr r1, =gBankTarget ldrb r1, [r1] strb r1, [r2] - ldr r2, =gAnimationBankTarget + ldr r2, =gAnimBankTarget ldr r1, =gEffectBank ldrb r1, [r1] strb r1, [r2] - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r0} bx r0 .pool @@ -50083,11 +50083,11 @@ sub_8117EC4: @ 8117EC4 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide adds r4, r0, 0 - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] bl GetBankSide lsls r4, 24 @@ -50104,7 +50104,7 @@ _08117EF8: _08117EFC: strh r0, [r1, 0xE] adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r4,r5} pop {r0} bx r0 @@ -50116,11 +50116,11 @@ sub_8117F10: @ 8117F10 push {lr} lsls r0, 24 lsrs r0, 24 - ldr r2, =gAnimationBankTarget + ldr r2, =gAnimBankTarget ldr r1, =gBankTarget ldrb r1, [r1] strb r1, [r2] - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r0} bx r0 .pool @@ -50131,15 +50131,15 @@ sub_8117F30: @ 8117F30 push {lr} lsls r0, 24 lsrs r0, 24 - ldr r2, =gAnimationBankAttacker + ldr r2, =gAnimBankAttacker ldr r1, =gBankAttacker ldrb r1, [r1] strb r1, [r2] - ldr r2, =gAnimationBankTarget + ldr r2, =gAnimBankTarget ldr r1, =gEffectBank ldrb r1, [r1] strb r1, [r2] - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r0} bx r0 .pool @@ -50155,7 +50155,7 @@ sub_8117F60: @ 8117F60 cmp r0, 0 beq _08117F78 adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask b _08117FB4 _08117F78: ldr r0, =gTasks @@ -50165,7 +50165,7 @@ _08117F78: adds r3, r0 ldr r0, =gBattleSpritesDataPtr ldr r4, [r0] - ldr r2, =gAnimationBankAttacker + ldr r2, =gAnimBankAttacker ldrb r0, [r2] ldr r1, [r4] lsls r0, 2 @@ -50209,7 +50209,7 @@ sub_8117FD0: @ 8117FD0 bne _08118014 ldr r0, =gBattleSpritesDataPtr ldr r1, [r0] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r3, [r0] ldr r0, [r1] lsls r3, 2 @@ -50237,8 +50237,8 @@ _08118014: .pool thumb_func_end sub_8117FD0 - thumb_func_start lcd_bg_operations -lcd_bg_operations: @ 811802C + thumb_func_start SetAnimBgAttribute +SetAnimBgAttribute: @ 811802C push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 @@ -50364,7 +50364,7 @@ _08118132: pop {r0} bx r0 .pool - thumb_func_end lcd_bg_operations + thumb_func_end SetAnimBgAttribute thumb_func_start sub_8118140 sub_8118140: @ 8118140 diff --git a/asm/battle_anim_815A0D4.s b/asm/battle_anim_815A0D4.s index fc21f001f..69835bf4e 100755 --- a/asm/battle_anim_815A0D4.s +++ b/asm/battle_anim_815A0D4.s @@ -75,7 +75,7 @@ sub_815A114: @ 815A114 b _0815A15A _0815A154: adds r0, r3, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0815A15A: pop {r0} bx r0 @@ -87,7 +87,7 @@ sub_815A160: @ 815A160 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 - ldr r6, =gAnimationBankTarget + ldr r6, =gAnimBankTarget ldrb r0, [r6] movs r1, 0x2 bl sub_80A5C6C @@ -112,7 +112,7 @@ sub_815A160: @ 815A160 movs r2, 0 bl sub_807521C adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r4-r6} pop {r0} bx r0 @@ -196,7 +196,7 @@ sub_815A234: @ 815A234 movs r1, 0 bl SetGpuReg adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite pop {r4} pop {r0} bx r0 @@ -207,7 +207,7 @@ sub_815A254: @ 815A254 push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -261,7 +261,7 @@ _0815A2B2: strh r6, [r5, 0x36] ldr r0, =sub_80A6EEC str r0, [r5, 0x1C] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r5, 0 bl StoreSpriteCallbackInData6 add sp, 0x4 @@ -537,7 +537,7 @@ _0815A4E0: movs r1, 0 bl SetGpuReg adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0815A4FE: pop {r4} pop {r0} @@ -768,7 +768,7 @@ sub_815A6C4: @ 815A6C4 adds r4, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] mov r5, sp adds r5, 0x2 @@ -776,7 +776,7 @@ sub_815A6C4: @ 815A6C4 mov r2, sp adds r3, r5, 0 bl sub_80A8924 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -869,7 +869,7 @@ _0815A798: cmp r0, 0x10 bne _0815A7AC adds r0, r3, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0815A7AC: pop {r0} bx r0 @@ -891,7 +891,7 @@ sub_815A7B0: @ 815A7B0 strh r0, [r4, 0x22] ldr r0, =sub_80A67D8 str r0, [r4, 0x1C] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r4, 0 bl StoreSpriteCallbackInData6 pop {r4,r5} @@ -919,7 +919,7 @@ sub_815A7EC: @ 815A7EC lsls r0, 24 cmp r0, 0 bne _0815A840 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -988,7 +988,7 @@ _0815A84C: cmp r0, 0xF0 bls _0815A8A4 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0815A8A4: pop {r4,r5} pop {r0} @@ -1006,7 +1006,7 @@ sub_815A8AC: @ 815A8AC cmp r0, 0 beq _0815A8C2 adds r0, r2, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0815A8C2: pop {r0} bx r0 @@ -1017,7 +1017,7 @@ sub_815A8C8: @ 815A8C8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -1034,7 +1034,7 @@ _0815A8EC: _0815A8F0: strh r0, [r1, 0xE] adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r4} pop {r0} bx r0 @@ -1046,7 +1046,7 @@ sub_815A904: @ 815A904 push {lr} lsls r0, 24 lsrs r2, r0, 24 - ldr r0, =gMoveDmgMoveAnim + ldr r0, =gAnimMoveDmg ldr r0, [r0] cmp r0, 0 ble _0815A920 @@ -1060,7 +1060,7 @@ _0815A920: _0815A924: strh r0, [r1, 0xE] adds r0, r2, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r0} bx r0 .pool @@ -1235,7 +1235,7 @@ sub_815AA6C: @ 815AA6C movs r0, 0 bl SetGpuReg adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite pop {r4} pop {r0} bx r0 @@ -1251,7 +1251,7 @@ sub_815AAA4: @ 815AAA4 ldrsh r0, [r6, r1] cmp r0, 0 bne _0815AAD0 - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0 bl sub_80A5C6C @@ -1349,7 +1349,7 @@ sub_815AB5C: @ 815AB5C bne _0815ABBA movs r0, 0x40 negs r0, r0 - bl BattleAnimGetPanControl + bl BattleAnimAdjustPanning adds r1, r0, 0 lsls r1, 24 asrs r1, 24 @@ -1380,7 +1380,7 @@ _0815ABBA: cmp r0, 0 bne _0815ABC8 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0815ABC8: pop {r4} pop {r0} @@ -1456,7 +1456,7 @@ _0815AC40: bl SetGpuRegBits _0815AC70: adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r4,r5} pop {r0} bx r0 @@ -1486,7 +1486,7 @@ sub_815AC8C: @ 815AC8C bl ClearGpuRegBits _0815ACB8: adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r4} pop {r0} bx r0 @@ -1502,11 +1502,11 @@ sub_815ACD0: @ 815ACD0 ldrsh r0, [r6, r1] cmp r0, 0 bne _0815ACEC - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker b _0815ACEE .pool _0815ACEC: - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget _0815ACEE: ldrb r0, [r4] movs r1, 0 @@ -1585,7 +1585,7 @@ sub_815AD4C: @ 815AD4C cmp r0, r1 bge _0815ADAA adds r0, r2, 0 - bl move_anim_8072740 + bl DestroyAnimSprite b _0815ADAA .pool _0815AD98: @@ -1596,7 +1596,7 @@ _0815AD98: cmp r0, r1 ble _0815ADAA adds r0, r2, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0815ADAA: pop {r0} bx r0 @@ -1618,18 +1618,18 @@ sub_815ADB0: @ 815ADB0 ldrsh r0, [r0, r1] cmp r0, 0 bne _0815ADDC - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker b _0815ADDE .pool _0815ADDC: - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget _0815ADDE: ldrb r0, [r4] bl sub_80A6190 lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] - bl GetBankIdentity_permutated + bl sub_80A8364 lsls r0, 24 lsrs r7, r0, 24 adds r0, r6, 0 @@ -1882,7 +1882,7 @@ _0815AFC4: strb r0, [r1, 0x15] _0815AFDA: adds r0, r7, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0815AFE0: pop {r4-r7} pop {r0} @@ -1903,7 +1903,7 @@ sub_815AFF0: @ 815AFF0 movs r5, 0 strh r5, [r4, 0x8] strh r5, [r4, 0xA] - ldr r6, =gAnimationBankAttacker + ldr r6, =gAnimBankAttacker ldrb r0, [r6] movs r1, 0x2 bl sub_80A5C6C @@ -2004,7 +2004,7 @@ _0815B0BC: lsrs r4, r0, 24 movs r0, 0x40 negs r0, r0 - bl BattleAnimGetPanControl + bl BattleAnimAdjustPanning adds r1, r0, 0 lsls r1, 24 asrs r1, 24 @@ -2162,7 +2162,7 @@ _0815B220: cmp r0, 0 bne _0815B22E adds r0, r2, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0815B22E: add sp, 0x8 pop {r3} @@ -2262,7 +2262,7 @@ _0815B2D8: ldrsh r0, [r5, r1] cmp r0, 0x3D bne _0815B324 - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r5, 0 bl StoreSpriteCallbackInData6 ldrh r0, [r5, 0x24] @@ -2278,7 +2278,7 @@ _0815B2D8: strh r1, [r5, 0x26] movs r0, 0x14 strh r0, [r5, 0x2E] - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -2339,7 +2339,7 @@ _0815B37C: cmp r0, 0 bne _0815B38E adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0815B38E: pop {r4,r5} pop {r0} @@ -2370,7 +2370,7 @@ _0815B3B4: beq _0815B478 b _0815B496 _0815B3BE: - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -2471,7 +2471,7 @@ _0815B478: cmp r0, r1 bge _0815B496 adds r0, r5, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0815B496: pop {r4-r6} pop {r0} @@ -2482,7 +2482,7 @@ _0815B496: sub_815B49C: @ 815B49C push {r4,lr} adds r4, r0, 0 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -2513,7 +2513,7 @@ sub_815B4D4: @ 815B4D4 ldrh r0, [r4, 0x2E] adds r0, 0x48 strh r0, [r4, 0x2E] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -2578,7 +2578,7 @@ _0815B54C: cmp r0, r1 bls _0815B566 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0815B566: pop {r4,r5} pop {r0} @@ -2747,7 +2747,7 @@ _0815B69C: cmp r0, 0 bne _0815B6AE adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0815B6AE: pop {r4,r5} pop {r0} @@ -2789,7 +2789,7 @@ _0815B6F4: cmp r0, 0 bne _0815B706 adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0815B706: pop {r4,r5} pop {r0} @@ -2814,7 +2814,7 @@ _0815B71E: movs r0, 0x90 lsls r0, 4 strh r0, [r4, 0x30] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] movs r1, 0x3 bl sub_80A5C6C @@ -2845,7 +2845,7 @@ _0815B748: cmp r0, r1 ble _0815B770 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0815B770: pop {r4} pop {r0} @@ -2887,7 +2887,7 @@ _0815B7B8: cmp r0, 0 bne _0815B7CA adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0815B7CA: pop {r4,r5} pop {r0} @@ -2933,9 +2933,9 @@ _0815B81C: movs r0, 0x4C movs r1, 0 bl SetGpuReg - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankIdentity_permutated + bl sub_80A8364 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -2943,14 +2943,14 @@ _0815B81C: movs r0, 0x1 movs r1, 0x2 movs r2, 0x1 - bl lcd_bg_operations + bl SetAnimBgAttribute b _0815B84E .pool _0815B844: movs r0, 0x2 movs r1, 0x2 movs r2, 0x1 - bl lcd_bg_operations + bl SetAnimBgAttribute _0815B84E: ldr r0, =gTasks mov r6, r8 @@ -2996,9 +2996,9 @@ _0815B886: _0815B8A6: b _0815BA7A _0815B8A8: - ldr r5, =gAnimationBankAttacker + ldr r5, =gAnimBankAttacker ldrb r0, [r5] - ldr r1, =gAnimationBankTarget + ldr r1, =gAnimBankTarget ldrb r1, [r1] mov r2, r8 lsls r4, r2, 2 @@ -3030,7 +3030,7 @@ _0815B8EA: adds r2, 0x4 adds r2, r0 ldr r1, =gBattleMonForms - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -3051,16 +3051,16 @@ _0815B8EA: lsls r0, 24 cmp r0, 0 beq _0815BA1C - ldr r5, =gUnknown_02039F34 + ldr r5, =gContestResources ldr r0, [r5] ldr r0, [r0, 0x18] ldrh r0, [r0] - bl sub_80DB2A8 + bl IsSpeciesNotUnown adds r4, r0, 0 ldr r0, [r5] ldr r0, [r0, 0x18] ldrh r0, [r0, 0x2] - bl sub_80DB2A8 + bl IsSpeciesNotUnown lsls r4, 24 lsls r0, 24 cmp r4, r0 @@ -3113,17 +3113,17 @@ _0815B988: cmp r5, 0x7 ble _0815B980 _0815B99C: - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x18] ldrh r0, [r0, 0x2] - bl sub_80DB2A8 + bl IsSpeciesNotUnown lsls r0, 24 cmp r0, 0 beq _0815B9EC ldr r3, =gSprites ldr r4, =gBankSpriteIds - ldr r2, =gAnimationBankAttacker + ldr r2, =gAnimBankAttacker ldrb r0, [r2] adds r0, r4 ldrb r1, [r0] @@ -3139,7 +3139,7 @@ _0815B99C: _0815B9EC: ldr r3, =gSprites ldr r4, =gBankSpriteIds - ldr r2, =gAnimationBankAttacker + ldr r2, =gAnimBankAttacker ldrb r0, [r2] adds r0, r4 ldrb r1, [r0] @@ -3209,9 +3209,9 @@ _0815BA82: movs r0, 0x4C movs r1, 0 bl SetGpuReg - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankIdentity_permutated + bl sub_80A8364 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -3219,20 +3219,20 @@ _0815BA82: movs r0, 0x1 movs r1, 0x2 movs r2, 0 - bl lcd_bg_operations + bl SetAnimBgAttribute b _0815BAB6 .pool _0815BAAC: movs r0, 0x2 movs r1, 0x2 movs r2, 0 - bl lcd_bg_operations + bl SetAnimBgAttribute _0815BAB6: bl IsContest lsls r0, 24 cmp r0, 0 bne _0815BAF6 - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] bl GetBankSide lsls r0, 24 @@ -3259,7 +3259,7 @@ _0815BAB6: bl SetBankEnemyShadowSpriteCallback _0815BAF6: mov r0, r8 - bl move_anim_task_del + bl DestroyAnimVisualTask _0815BAFC: add sp, 0x10 pop {r3,r4} @@ -3279,7 +3279,7 @@ c3_80DFBE4: @ 815BB18 ldr r4, =gBattleAnimArgs ldr r3, =gSprites ldr r2, =gBankSpriteIds - ldr r1, =gAnimationBankAttacker + ldr r1, =gAnimBankAttacker ldrb r1, [r1] adds r1, r2 ldrb r2, [r1] @@ -3292,7 +3292,7 @@ c3_80DFBE4: @ 815BB18 lsls r1, 29 lsrs r1, 31 strh r1, [r4, 0xE] - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r4} pop {r0} bx r0 @@ -3305,14 +3305,14 @@ sub_815BB58: @ 815BB58 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] - ldr r1, =gAnimationBankTarget + ldr r1, =gAnimBankTarget ldrb r1, [r1] movs r2, 0x1 bl sub_805E448 adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r4} pop {r0} bx r0 @@ -3361,11 +3361,11 @@ _0815BBC8: movs r0, 0x1 movs r1, 0 movs r2, 0 - bl lcd_bg_operations + bl SetAnimBgAttribute movs r0, 0x1 movs r1, 0x4 movs r2, 0x1 - bl lcd_bg_operations + bl SetAnimBgAttribute bl IsContest lsls r0, 24 cmp r0, 0 @@ -3373,7 +3373,7 @@ _0815BBC8: movs r0, 0x1 movs r1, 0x3 movs r2, 0x1 - bl lcd_bg_operations + bl SetAnimBgAttribute _0815BC02: mov r0, sp bl sub_80A6B30 @@ -3390,7 +3390,7 @@ _0815BC02: b _0815BC5C .pool _0815BC34: - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -3551,7 +3551,7 @@ _0815BD8E: strh r0, [r1, 0x8] movs r0, 0x40 negs r0, r0 - bl BattleAnimGetPanControl + bl BattleAnimAdjustPanning adds r1, r0, 0 lsls r1, 24 asrs r1, 24 @@ -3571,12 +3571,12 @@ _0815BDA6: movs r0, 0x1 movs r1, 0x3 movs r2, 0 - bl lcd_bg_operations + bl SetAnimBgAttribute _0815BDC8: movs r0, 0x1 movs r1, 0x4 movs r2, 0x1 - bl lcd_bg_operations + bl SetAnimBgAttribute ldr r0, =gBattle_BG1_X movs r1, 0 strh r1, [r0] @@ -3589,7 +3589,7 @@ _0815BDC8: movs r1, 0 bl SetGpuReg adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0815BDF2: add sp, 0x10 pop {r4} @@ -3621,7 +3621,7 @@ sub_815BE04: @ 815BE04 lsls r0, 16 lsrs r5, r0, 16 _0815BE2E: - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0 bl sub_80A5C6C @@ -3870,7 +3870,7 @@ sub_815BFF4: @ 815BFF4 adds r0, r5 bl DestroySprite adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0815C040: pop {r4-r6} pop {r0} @@ -3966,11 +3966,11 @@ _0815C0EC: movs r0, 0x1 movs r1, 0 movs r2, 0 - bl lcd_bg_operations + bl SetAnimBgAttribute movs r0, 0x1 movs r1, 0x4 movs r2, 0x1 - bl lcd_bg_operations + bl SetAnimBgAttribute bl IsContest lsls r0, 24 cmp r0, 0 @@ -3978,7 +3978,7 @@ _0815C0EC: movs r0, 0x1 movs r1, 0x3 movs r2, 0x1 - bl lcd_bg_operations + bl SetAnimBgAttribute _0815C124: mov r0, sp bl sub_80A6B30 @@ -3996,7 +3996,7 @@ _0815C124: b _0815C1CA .pool _0815C15C: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] bl GetBankIdentity lsls r0, 24 @@ -4085,7 +4085,7 @@ _0815C224: adds r5, r0, r1 movs r0, 0 strh r0, [r5, 0xE] - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -4229,12 +4229,12 @@ _0815C34A: movs r0, 0x1 movs r1, 0x3 movs r2, 0 - bl lcd_bg_operations + bl SetAnimBgAttribute _0815C36C: movs r0, 0x1 movs r1, 0x4 movs r2, 0x1 - bl lcd_bg_operations + bl SetAnimBgAttribute ldr r0, =gBattle_BG1_X movs r1, 0 strh r1, [r0] @@ -4247,7 +4247,7 @@ _0815C36C: movs r1, 0 bl SetGpuReg adds r0, r6, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0815C396: add sp, 0x10 pop {r4-r6} @@ -4291,7 +4291,7 @@ _0815C3E8: cmp r0, 0 bne _0815C3FA adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0815C3FA: pop {r4,r5} pop {r0} @@ -4325,7 +4325,7 @@ _0815C41E: ldrh r0, [r4, 0x32] adds r0, 0x80 strh r0, [r4, 0x32] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -4354,7 +4354,7 @@ _0815C456: cmp r0, 0x40 ble _0815C472 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0815C472: pop {r4} pop {r0} @@ -4377,7 +4377,7 @@ sub_815C478: @ 815C478 cmp r0, 0 bne _0815C4A4 adds r0, r2, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask b _0815C538 .pool _0815C4A4: @@ -4427,11 +4427,11 @@ _0815C4BC: ldrsh r0, [r5, r1] cmp r0, 0 bne _0815C508 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker b _0815C50A .pool _0815C508: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget _0815C50A: ldrb r0, [r0] bl GetBankSide @@ -4632,7 +4632,7 @@ _0815C698: lsrs r0, 24 bl sub_80A7344 adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0815C6A8: pop {r4-r6} pop {r0} @@ -4643,7 +4643,7 @@ _0815C6A8: sub_815C6B0: @ 815C6B0 push {r4,lr} adds r4, r0, 0 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -4683,7 +4683,7 @@ sub_815C700: @ 815C700 ldrh r0, [r4, 0x2E] adds r0, 0x3 strh r0, [r4, 0x2E] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -4700,7 +4700,7 @@ sub_815C700: @ 815C700 cmp r1, 0xF0 ble _0815C732 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0815C732: ldrh r1, [r4, 0x2E] movs r0, 0xFF @@ -4720,7 +4720,7 @@ _0815C744: cmp r1, 0 bge _0815C75C adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0815C75C: ldrh r1, [r4, 0x2E] movs r0, 0xFF @@ -4909,7 +4909,7 @@ _0815C8C8: lsrs r0, 24 bl sub_80A7344 adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask b _0815C950 _0815C8DA: ldrh r0, [r7, 0x26] @@ -4991,7 +4991,7 @@ sub_815C95C: @ 815C95C ldrsh r0, [r6, r2] cmp r0, 0 bne _0815C990 - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -5070,7 +5070,7 @@ _0815C9FA: cmp r0, 0 beq _0815CA1A adds r0, r5, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0815CA1A: pop {r4-r6} pop {r0} @@ -5100,11 +5100,11 @@ sub_815CA20: @ 815CA20 mov r8, r0 cmp r1, 0 bne _0815CA5C - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker b _0815CA5E .pool _0815CA5C: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget _0815CA5E: ldrb r0, [r0] strh r0, [r2, 0x1E] @@ -5239,7 +5239,7 @@ _0815CB50: strh r4, [r0, 0x24] strh r4, [r0, 0x26] adds r0, r7, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0815CB78: pop {r3} mov r8, r3 @@ -5379,7 +5379,7 @@ _0815CC7A: cmp r0, 0x1F bne _0815CC8E adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0815CC8E: pop {r4} pop {r0} @@ -5516,7 +5516,7 @@ _0815CD82: movs r0, 0 bl SetGpuReg adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0815CDAA: pop {r4} pop {r0} @@ -5528,7 +5528,7 @@ _0815CDAA: sub_815CDB4: @ 815CDB4 push {r4,r5,lr} adds r4, r0, 0 - ldr r5, =gAnimationBankAttacker + ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -5586,14 +5586,14 @@ sub_815CDFC: @ 815CDFC cmp r0, 0xC3 ble _0815CE48 _0815CE36: - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl sub_80A82E4 subs r0, 0x1 b _0815CE52 .pool _0815CE48: - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl sub_80A82E4 adds r0, 0x1 @@ -5654,7 +5654,7 @@ _0815CE98: cmp r0, r1 bne _0815CEC8 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0815CEC8: pop {r4} pop {r0} @@ -5681,7 +5681,7 @@ sub_815CED8: @ 815CED8 beq _0815CF18 movs r0, 0x1 str r0, [sp, 0x1C] - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x18] ldr r1, [r0, 0x10] @@ -5693,7 +5693,7 @@ sub_815CED8: @ 815CED8 b _0815D058 .pool _0815CF18: - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -5702,7 +5702,7 @@ _0815CF18: movs r0, 0 str r0, [sp, 0x1C] ldr r6, =gBattlePartyID - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] lsls r0, 1 adds r0, r6 @@ -5770,7 +5770,7 @@ _0815CFC4: movs r2, 0x1 str r2, [sp, 0x1C] ldr r6, =gBattlePartyID - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] lsls r0, 1 adds r0, r6 @@ -5834,12 +5834,12 @@ _0815D056: _0815D058: mov r10, r3 _0815D05A: - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl sub_80A8328 lsls r0, 24 lsrs r7, r0, 24 - ldr r5, =gAnimationBankAttacker + ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0 bl sub_80A5C6C @@ -5864,7 +5864,7 @@ _0815D05A: str r3, [sp, 0x8] mov r0, r8 str r0, [sp, 0xC] - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] str r0, [sp, 0x10] movs r0, 0x1 @@ -6072,11 +6072,11 @@ sub_815D240: @ 815D240 ldrsh r0, [r0, r1] cmp r0, 0 bne _0815D26C - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker b _0815D26E .pool _0815D26C: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget _0815D26E: ldrb r5, [r0] movs r6, 0 @@ -6123,7 +6123,7 @@ _0815D2B4: lsrs r0, 24 strh r0, [r4, 0x26] adds r0, r5, 0 - bl GetBankIdentity_permutated + bl sub_80A8364 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -6218,7 +6218,7 @@ sub_815D398: @ 815D398 ldr r1, =gTasks adds r6, r0, r1 ldrb r0, [r6, 0x12] - bl GetBankIdentity_permutated + bl sub_80A8364 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -6536,7 +6536,7 @@ _0815D62E: b _0815D63C _0815D636: adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0815D63C: add sp, 0x14 pop {r3-r5} @@ -6643,7 +6643,7 @@ _0815D708: cmp r0, 0 bne _0815D720 adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0815D720: pop {r4-r6} pop {r0} @@ -6827,7 +6827,7 @@ sub_815D870: @ 815D870 ldrb r1, [r6] adds r0, r5, 0 bl StartSpriteAffineAnim - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -6837,7 +6837,7 @@ sub_815D870: @ 815D870 negs r0, r0 strh r0, [r6, 0x2] _0815D896: - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -7238,7 +7238,7 @@ sub_815DB90: @ 815DB90 mov r1, r8 adds r4, r0, r1 ldr r1, =gBankSpriteIds - ldr r2, =gAnimationBankAttacker + ldr r2, =gAnimBankAttacker ldrb r0, [r2] adds r0, r1 ldrb r0, [r0] @@ -7361,7 +7361,7 @@ sub_815DCA4: @ 815DCA4 cmp r0, 0 bne _0815DCC4 adds r0, r2, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0815DCC4: movs r0, 0 strh r0, [r5, 0x8] @@ -7373,11 +7373,11 @@ _0815DCC4: ldrsh r0, [r4, r1] cmp r0, 0 bne _0815DCE8 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker b _0815DCEA .pool _0815DCE8: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget _0815DCEA: ldrb r4, [r0] adds r0, r4, 0 @@ -7485,7 +7485,7 @@ _0815DDCC: cmp r0, 0 bne _0815DDDA adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0815DDDA: pop {r4,r5} pop {r0} @@ -7731,7 +7731,7 @@ _0815DFB4: movs r3, 0 bl BlendPalette adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0815DFC6: pop {r4,r5} pop {r0} @@ -7746,7 +7746,7 @@ sub_815DFCC: @ 815DFCC lsrs r0, 24 movs r2, 0xD0 lsls r2, 1 - ldr r1, =gAnimationBankAttacker + ldr r1, =gAnimBankAttacker ldrb r3, [r1] ldr r1, =gBattleAnimArgs ldrb r1, [r1] @@ -7775,7 +7775,7 @@ sub_815DFCC: @ 815DFCC sub_815E01C: @ 815E01C push {r4-r6,lr} adds r5, r0, 0 - ldr r6, =gAnimationBankAttacker + ldr r6, =gAnimBankAttacker ldrb r0, [r6] bl GetBankSide lsls r0, 24 @@ -7837,7 +7837,7 @@ _0815E09A: lsls r0, 2 strh r0, [r5, 0x2E] _0815E0A8: - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -7887,7 +7887,7 @@ sub_815E0DC: @ 815E0DC cmp r0, 0xE bne _0815E110 adds r0, r2, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0815E110: pop {r0} bx r0 @@ -7923,7 +7923,7 @@ _0815E144: strh r0, [r6, 0x14] strh r1, [r6, 0x16] _0815E14E: - ldr r5, =gAnimationBankAttacker + ldr r5, =gAnimBankAttacker ldrb r0, [r5] bl GetBankSide lsls r0, 24 @@ -7968,7 +7968,7 @@ _0815E1A8: subs r0, r4, r0 _0815E1AC: strh r0, [r6, 0x1E] - ldr r5, =gAnimationBankAttacker + ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x3 bl sub_80A5C6C @@ -7987,7 +7987,7 @@ _0815E1D0: asrs r0, 2 subs r0, r4, r0 strh r0, [r6, 0x20] - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -8163,7 +8163,7 @@ _0815E330: cmp r0, 0 bne _0815E33E adds r0, r7, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0815E33E: add sp, 0x14 pop {r3} @@ -8319,7 +8319,7 @@ sub_815E444: @ 815E444 strh r0, [r4, 0x36] ldrh r0, [r1, 0x8] strh r0, [r4, 0x2E] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r4, 0 bl StoreSpriteCallbackInData6 ldr r0, =sub_80A70C0 @@ -8345,7 +8345,7 @@ sub_815E47C: @ 815E47C lsls r0, 3 ldr r1, =gTasks adds r7, r0, r1 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker mov r10, r0 ldrb r0, [r0] movs r1, 0x2 @@ -8360,7 +8360,7 @@ sub_815E47C: @ 815E47C lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0x20] - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget mov r8, r0 ldrb r0, [r0] movs r1, 0x2 @@ -8471,7 +8471,7 @@ _0815E596: .pool _0815E5B8: mov r0, r9 - bl move_anim_task_del + bl DestroyAnimVisualTask _0815E5BE: pop {r3-r5} mov r8, r3 @@ -8609,7 +8609,7 @@ _0815E6BE: .pool _0815E6CC: adds r0, r2, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0815E6D2: pop {r4,r5} pop {r0} @@ -8626,11 +8626,11 @@ sub_815E6D8: @ 815E6D8 adds r6, r0, 0 cmp r1, 0 bne _0815E6F4 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker b _0815E6F6 .pool _0815E6F4: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget _0815E6F6: ldrb r5, [r0] ldrh r2, [r4, 0x4] @@ -8798,7 +8798,7 @@ _0815E802: b _0815E83C _0815E836: adds r0, r2, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0815E83C: pop {r0} bx r0 @@ -8815,7 +8815,7 @@ sub_815E840: @ 815E840 cmp r0, 0 bne _0815E85C adds r0, r1, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask b _0815E884 .pool _0815E85C: @@ -8926,7 +8926,7 @@ _0815E8F2: .pool _0815E948: adds r0, r6, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0815E94E: pop {r4-r6} pop {r0} @@ -8942,11 +8942,11 @@ sub_815E954: @ 815E954 ldrsh r0, [r0, r1] cmp r0, 0 bne _0815E970 - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker b _0815E972 .pool _0815E970: - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget _0815E972: ldrb r0, [r4] movs r1, 0x2 @@ -9023,7 +9023,7 @@ sub_815E9BC: @ 815E9BC cmp r0, 0 bne _0815EA10 adds r0, r3, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0815EA10: pop {r0} bx r0 @@ -9308,7 +9308,7 @@ _0815EC1E: cmp r0, 0x5 bne _0815EC40 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0815EC40: pop {r4} pop {r0} @@ -9339,7 +9339,7 @@ sub_815EC48: @ 815EC48 lsrs r7, r0, 24 cmp r7, 0x1 bne _0815ECB4 - ldr r5, =gAnimationBankAttacker + ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0 bl sub_80A5C6C @@ -9363,7 +9363,7 @@ _0815ECAC: b _0815ECD2 .pool _0815ECB4: - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -9586,7 +9586,7 @@ _0815EE60: movs r1, 0 strh r1, [r0, 0x24] adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0815EE78: pop {r4} pop {r0} @@ -9606,11 +9606,11 @@ sub_815EE84: @ 815EE84 adds r0, r4, 0 movs r1, 0x1 bl sub_80A69CC - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker b _0815EEAA .pool _0815EEA8: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget _0815EEAA: ldrb r0, [r0] strh r0, [r4, 0x3C] @@ -9915,7 +9915,7 @@ _0815F0F8: b _0815F106 _0815F100: adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0815F106: pop {r4,r5} pop {r0} @@ -9976,7 +9976,7 @@ _0815F16A: cmp r1, r0 bne _0815F17C adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0815F17C: ldrh r0, [r4, 0x38] adds r0, 0x1 @@ -9991,7 +9991,7 @@ _0815F17C: sub_815F18C: @ 815F18C push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -10126,7 +10126,7 @@ _0815F2A0: b _0815F310 .pool _0815F2AC: - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0 bl refresh_graphics_maybe @@ -10271,7 +10271,7 @@ _0815F3CE: bne _0815F482 movs r0, 0x40 negs r0, r0 - bl BattleAnimGetPanControl + bl BattleAnimAdjustPanning adds r1, r0, 0 lsls r1, 24 asrs r1, 24 @@ -10341,14 +10341,14 @@ _0815F460: bne _0815F482 movs r0, 0x40 negs r0, r0 - bl BattleAnimGetPanControl + bl BattleAnimAdjustPanning adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0x7D bl PlaySE12WithPanning adds r0, r6, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0815F482: pop {r4-r6} pop {r0} @@ -10360,7 +10360,7 @@ _0815F482: sub_815F48C: @ 815F48C push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] bl GetBankSide lsls r0, 24 @@ -10384,7 +10384,7 @@ _0815F4B8: strb r0, [r1] ldr r4, =0x0000ffa0 _0815F4C8: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0x3 bl sub_80A5C6C @@ -10431,7 +10431,7 @@ _0815F520: cmp r0, 0 blt _0815F61A movs r0, 0x3F - bl BattleAnimGetPanControl + bl BattleAnimAdjustPanning adds r1, r0, 0 lsls r1, 24 asrs r1, 24 @@ -10460,7 +10460,7 @@ _0815F544: cmp r1, 0x7F ble _0815F61A movs r0, 0x3F - bl BattleAnimGetPanControl + bl BattleAnimAdjustPanning adds r1, r0, 0 lsls r1, 24 asrs r1, 24 @@ -10502,7 +10502,7 @@ _0815F5B4: cmp r0, 0x8 ble _0815F61A movs r0, 0x3F - bl BattleAnimGetPanControl + bl BattleAnimAdjustPanning adds r1, r0, 0 lsls r1, 24 asrs r1, 24 @@ -10543,7 +10543,7 @@ _0815F5E0: cmp r0, 0x7 bne _0815F61A adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0815F61A: pop {r4,r5} pop {r0} @@ -10589,7 +10589,7 @@ sub_815F620: @ 815F620 bl obj_delete_but_dont_free_vram _0815F66E: mov r0, r8 - bl move_anim_task_del + bl DestroyAnimVisualTask b _0815F780 .pool _0815F67C: @@ -10639,7 +10639,7 @@ _0815F67C: strh r1, [r0, 0x8] ldr r0, =gBattleSpritesDataPtr ldr r1, [r0] - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] ldr r1, [r1] lsls r0, 2 @@ -10742,7 +10742,7 @@ sub_815F79C: @ 815F79C cmp r0, 0 bne _0815F7BA adds r0, r2, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0815F7BA: pop {r0} bx r0 @@ -10764,7 +10764,7 @@ sub_815F7C4: @ 815F7C4 strh r0, [r4, 0x30] ldr r0, =gBattleSpritesDataPtr ldr r1, [r0] - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] ldr r1, [r1] lsls r0, 2 @@ -10869,7 +10869,7 @@ sub_815F8A0: @ 815F8A0 ldr r3, =gBattleAnimArgs movs r2, 0 strh r2, [r3, 0xE] - ldr r1, =gHappinessMoveAnim + ldr r1, =gAnimFriendship ldrb r0, [r1] ldrb r1, [r1] adds r0, r1, 0 @@ -10899,7 +10899,7 @@ _0815F8D4: strh r0, [r3, 0xE] _0815F8E0: adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r4} pop {r0} bx r0 @@ -10958,7 +10958,7 @@ _0815F940: ldrh r1, [r6, 0xA] adds r0, r1 strh r0, [r6, 0xA] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -11028,7 +11028,7 @@ _0815F9F4: lsls r0, 24 cmp r0, 0 beq _0815FA28 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x18] ldr r2, [r0, 0x8] @@ -11036,7 +11036,7 @@ _0815F9F4: ldr r3, [r0, 0xC] mov r9, r3 ldrh r6, [r0] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl sub_80A82E4 lsls r0, 24 @@ -11045,7 +11045,7 @@ _0815F9F4: b _0815FB4E .pool _0815FA28: - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] bl GetBankSide lsls r0, 24 @@ -11177,7 +11177,7 @@ _0815FB2E: _0815FB4E: ldr r5, =0x0000ffe0 _0815FB50: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0x1 bl sub_80A5C6C @@ -11191,7 +11191,7 @@ _0815FB50: str r4, [sp, 0x8] mov r0, r9 str r0, [sp, 0xC] - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] str r0, [sp, 0x10] movs r0, 0 @@ -11253,7 +11253,7 @@ _0815FBE8: ldrh r2, [r6, 0xA] adds r0, r2 strh r0, [r6, 0xA] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -11307,7 +11307,7 @@ _0815FC56: ldrsh r0, [r6, r1] cmp r0, 0 bne _0815FCD6 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -11315,7 +11315,7 @@ _0815FC56: bne _0815FCB4 lsls r4, r5, 16 asrs r4, 16 - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0 bl sub_80A5C6C @@ -11328,7 +11328,7 @@ _0815FC56: _0815FCB4: lsls r4, r5, 16 asrs r4, 16 - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0 bl sub_80A5C6C @@ -11383,7 +11383,7 @@ _0815FD08: ldr r5, =gSprites adds r0, r5 bl sub_80A8610 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -11440,7 +11440,7 @@ _0815FD8C: ldrh r3, [r2, 0xA] adds r0, r3 strh r0, [r2, 0xA] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker mov r10, r0 ldrb r0, [r0] str r2, [sp, 0x18] @@ -11524,7 +11524,7 @@ _0815FE44: cmp r0, 0 bne _0815FE68 mov r0, r8 - bl move_anim_task_del + bl DestroyAnimVisualTask _0815FE68: add sp, 0x1C pop {r3-r5} @@ -11557,13 +11557,13 @@ _0815FE92: cmp r1, r0 bne _0815FF2C movs r0, 0x3F - bl BattleAnimGetPanControl + bl BattleAnimAdjustPanning adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0x7A bl PlaySE12WithPanning - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0x1 bl sub_80A5C6C @@ -11583,7 +11583,7 @@ _0815FE92: negs r0, r0 ands r0, r1 strb r0, [r2] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -11652,7 +11652,7 @@ _0815FF6E: ldrh r1, [r4, 0x32] adds r0, r1 strh r0, [r4, 0x32] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -11683,7 +11683,7 @@ _0815FFA8: cmp r0, 0x2 bne _0815FFBC adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _0815FFBC: pop {r4} pop {r0} @@ -11721,14 +11721,14 @@ _0815FFF4: .4byte _081600CC .4byte _08160132 _08160008: - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] movs r1, 0 bl sub_80A5C6C lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0 bl sub_80A5C6C @@ -11756,7 +11756,7 @@ _0816003E: .pool _08160058: ldr r1, =gBankSpriteIds - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] adds r0, r1 ldrb r2, [r0] @@ -11812,7 +11812,7 @@ _081600B4: b _08160150 _081600CC: ldr r1, =gBankSpriteIds - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] adds r0, r1 ldrb r2, [r0] @@ -11862,7 +11862,7 @@ _0816012A: b _08160150 _08160132: ldr r1, =gBankSpriteIds - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] adds r0, r1 ldrb r2, [r0] @@ -11874,7 +11874,7 @@ _08160132: movs r1, 0 strh r1, [r0, 0x24] adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08160150: pop {r4,r5} pop {r0} @@ -11898,7 +11898,7 @@ sub_8160164: @ 8160164 lsrs r0, 24 movs r5, 0 strh r0, [r4, 0xE] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -12061,7 +12061,7 @@ _081602C4: .pool _081602D4: adds r0, r2, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _081602DA: pop {r4-r6} pop {r0} @@ -12072,7 +12072,7 @@ _081602DA: sub_81602E0: @ 81602E0 push {r4,lr} adds r4, r0, 0 - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -12100,7 +12100,7 @@ sub_81602E0: @ 81602E0 cmp r0, 0 beq _08160326 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _08160326: ldrh r0, [r4, 0x32] adds r0, 0x1 @@ -12115,7 +12115,7 @@ _08160326: sub_8160338: @ 8160338 push {r4,lr} adds r4, r0, 0 - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -12166,7 +12166,7 @@ _08160396: sub_81603A8: @ 81603A8 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -12377,7 +12377,7 @@ _08160536: strh r0, [r2, 0xE] _08160538: adds r0, r3, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r0} bx r0 thumb_func_end sub_81604F0 @@ -12477,7 +12477,7 @@ _08160600: cmp r0, 0 bne _08160618 adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08160618: pop {r4-r6} pop {r0} diff --git a/asm/battle_anim_8170478.s b/asm/battle_anim_8170478.s index dd992a8cd..8de82c629 100644 --- a/asm/battle_anim_8170478.s +++ b/asm/battle_anim_8170478.s @@ -16,7 +16,7 @@ sub_8170478: @ 8170478 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x10] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r4, [r0] ldr r0, =gBattle_WIN0H movs r1, 0 @@ -43,19 +43,19 @@ sub_8170478: @ 8170478 movs r0, 0x1 movs r1, 0x4 movs r2, 0 - bl lcd_bg_operations + bl SetAnimBgAttribute movs r0, 0x1 movs r1, 0 movs r2, 0 - bl lcd_bg_operations + bl SetAnimBgAttribute movs r0, 0x1 movs r1, 0x1 movs r2, 0x1 - bl lcd_bg_operations + bl SetAnimBgAttribute movs r0, 0x1 movs r1, 0x3 movs r2, 0x1 - bl lcd_bg_operations + bl SetAnimBgAttribute ldr r0, =gHealthBoxesIds adds r4, r0 ldrb r0, [r4] @@ -212,7 +212,7 @@ sub_8170660: @ 8170660 push {r7} lsls r0, 24 lsrs r7, r0, 24 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] mov r8, r0 ldr r1, =gTasks @@ -335,7 +335,7 @@ _08170708: movs r0, 0x1 movs r1, 0x3 movs r2, 0 - bl lcd_bg_operations + bl SetAnimBgAttribute _0817076C: movs r0, 0 bl GetGpuReg @@ -372,7 +372,7 @@ _0817076C: movs r0, 0x1 movs r1, 0x1 movs r2, 0 - bl lcd_bg_operations + bl SetAnimBgAttribute ldr r0, =gHealthBoxesIds add r0, r8 ldrb r0, [r0] @@ -412,7 +412,7 @@ _0817076C: orrs r2, r5 strb r2, [r0, 0x5] adds r0, r7, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08170814: pop {r3} mov r8, r3 @@ -540,12 +540,12 @@ sub_8170920: @ 8170920 lsrs r4, 24 mov r1, sp adds r1, 0x1 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r2, [r0] mov r0, sp bl sub_8170834 adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask add sp, 0x4 pop {r4} pop {r0} @@ -628,11 +628,11 @@ sub_81709EC: @ 81709EC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl sub_817094C adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r4} pop {r0} bx r0 @@ -752,7 +752,7 @@ _08170AD6: cmp r0, 0 bne _08170AF8 adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08170AF8: pop {r4-r6} pop {r0} @@ -766,7 +766,7 @@ sub_8170B04: @ 8170B04 lsls r0, 24 lsrs r6, r0, 24 ldr r1, =gBankSpriteIds - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] adds r0, r1 ldrb r5, [r0] @@ -834,7 +834,7 @@ _08170B84: orrs r1, r2 strb r1, [r0] adds r0, r6, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08170BA4: pop {r4-r6} pop {r0} @@ -852,7 +852,7 @@ sub_8170BB0: @ 8170BB0 lsls r0, 24 lsrs r5, r0, 24 ldr r1, =gBankSpriteIds - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] adds r1, r0, r1 ldrb r1, [r1] @@ -904,7 +904,7 @@ _08170C08: b _08170CEE .pool _08170C44: - ldr r5, =gAnimationBankAttacker + ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0 bl sub_80A5C6C @@ -979,7 +979,7 @@ _08170CC4: cmp r0, 0 bne _08170CEE adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08170CEE: add sp, 0xC pop {r3,r4} @@ -1003,7 +1003,7 @@ sub_8170CFC: @ 8170CFC lsrs r0, 24 bl sub_8076A78 adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r4} pop {r0} bx r0 @@ -1023,7 +1023,7 @@ sub_8170D24: @ 8170D24 lsrs r0, 24 bl sub_8076AE8 adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r4} pop {r0} bx r0 @@ -1051,7 +1051,7 @@ _08170D70: _08170D74: strh r0, [r1, 0xE] adds r0, r2, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r0} bx r0 .pool @@ -1162,7 +1162,7 @@ sub_8170E04: @ 8170E04 adds r6, r4, r1 movs r0, 0x22 strh r0, [r6, 0x2E] - ldr r2, =gAnimationBankTarget + ldr r2, =gAnimBankTarget mov r8, r2 ldrb r0, [r2] movs r1, 0 @@ -1246,7 +1246,7 @@ sub_8170EF0: @ 8170EF0 cmp r1, r0 bne _08170F1A adds r0, r3, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08170F1A: pop {r0} bx r0 @@ -1313,7 +1313,7 @@ _08170F54: adds r6, r4, r0 movs r0, 0x22 strh r0, [r6, 0x2E] - ldr r1, =gAnimationBankTarget + ldr r1, =gAnimBankTarget mov r8, r1 ldrb r0, [r1] movs r1, 0 @@ -1550,7 +1550,7 @@ _08171188: movs r2, 0x1 movs r3, 0x1C bl sub_8171D98 - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r1, [r0] movs r0, 0 movs r2, 0xE @@ -1585,7 +1585,7 @@ sub_81711E8: @ 81711E8 str r0, [r4, 0x1C] ldr r2, =gSprites ldr r1, =gBankSpriteIds - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -1607,7 +1607,7 @@ sub_8171240: @ 8171240 push {r4-r7,lr} adds r7, r0, 0 ldr r1, =gBankSpriteIds - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] adds r0, r1 ldrb r4, [r0] @@ -2333,7 +2333,7 @@ sub_81717F8: @ 81717F8 push {r7} sub sp, 0x4 adds r6, r0, 0 - ldr r7, =gAnimationBankTarget + ldr r7, =gAnimBankTarget ldrh r0, [r6, 0x36] adds r0, 0x1 movs r1, 0 @@ -2379,7 +2379,7 @@ _0817185A: movs r1, 0 strb r1, [r0] movs r0, 0x1 - bl sub_8072A88 + bl UpdateOamPriorityInAllHealthboxes bl m4aMPlayAllStop ldr r0, =0x00000213 bl PlaySE @@ -2715,7 +2715,7 @@ sub_8171AE4: @ 8171AE4 movs r2, 0x1 movs r3, 0x1C bl sub_8171D98 - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r1, [r0] movs r0, 0x1 movs r2, 0xE @@ -2724,7 +2724,7 @@ sub_8171AE4: @ 8171AE4 _08171B36: ldr r6, =gSprites ldr r5, =gBankSpriteIds - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] @@ -2792,7 +2792,7 @@ sub_8171BAC: @ 8171BAC _08171BCA: ldr r4, =gSprites ldr r3, =gBankSpriteIds - ldr r2, =gAnimationBankTarget + ldr r2, =gAnimBankTarget ldrb r0, [r2] adds r0, r3 ldrb r1, [r0] @@ -2841,7 +2841,7 @@ _08171C24: beq _08171C8A ldr r4, =gSprites ldr r3, =gBankSpriteIds - ldr r2, =gAnimationBankTarget + ldr r2, =gAnimBankTarget ldrb r0, [r2] adds r0, r3 ldrb r1, [r0] @@ -2879,7 +2879,7 @@ _08171C24: ldr r0, =gDoingBattleAnim strb r6, [r0] movs r0, 0x1 - bl sub_8072A88 + bl UpdateOamPriorityInAllHealthboxes _08171C8A: pop {r4-r7} pop {r0} @@ -2974,7 +2974,7 @@ _08171D3E: movs r0, 0 strb r0, [r1] movs r0, 0x1 - bl sub_8072A88 + bl UpdateOamPriorityInAllHealthboxes _08171D52: pop {r4} pop {r0} @@ -4730,7 +4730,7 @@ sub_8172BF0: @ 8172BF0 movs r0, 0 mov r8, r0 ldr r0, =gBankSpriteIds - ldr r3, =gAnimationBankAttacker + ldr r3, =gAnimBankAttacker ldrb r2, [r3] adds r0, r2, r0 ldrb r6, [r0] @@ -4877,7 +4877,7 @@ _08172D28: adds r0, r1 ldrb r1, [r0, 0x8] strh r1, [r0, 0x8] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -4914,7 +4914,7 @@ _08172D7E: beq _08172D8A _08172D84: adds r0, r7, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08172D8A: pop {r3} mov r8, r3 @@ -4949,9 +4949,9 @@ _08172DC0: beq _08172E4E b _08172E84 _08172DC6: - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankIdentity_permutated + bl sub_80A8364 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -5010,7 +5010,7 @@ _08172E14: b _08172E84 _08172E4E: ldr r1, =gBankSpriteIds - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] adds r0, r1 ldrb r1, [r0] @@ -5032,7 +5032,7 @@ _08172E4E: ldrb r0, [r4] bl sub_805E974 adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08172E84: pop {r4,r5} pop {r0} @@ -5048,7 +5048,7 @@ sub_8172E9C: @ 8172E9C ldr r3, =gBattleAnimArgs ldr r1, =gBattleSpritesDataPtr ldr r2, [r1] - ldr r1, =gAnimationBankAttacker + ldr r1, =gAnimBankAttacker ldrb r1, [r1] ldr r2, [r2] lsls r1, 2 @@ -5057,7 +5057,7 @@ sub_8172E9C: @ 8172E9C lsls r1, 29 lsrs r1, 31 strh r1, [r3, 0xE] - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r0} bx r0 .pool @@ -5068,11 +5068,11 @@ sub_8172ED0: @ 8172ED0 push {lr} lsls r0, 24 lsrs r0, 24 - ldr r2, =gAnimationBankTarget + ldr r2, =gAnimBankTarget ldr r1, =gEffectBank ldrb r1, [r1] strb r1, [r2] - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r0} bx r0 .pool @@ -5108,7 +5108,7 @@ sub_8172EF0: @ 8172EF0 bl GetMonData adds r4, r0, 0 adds r0, r6, 0 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 beq _08172FC8 @@ -5134,9 +5134,9 @@ _08172F4E: lsrs r0, 16 cmp r0, r7 bne _08172F6E - ldr r0, =gUnknown_0852528C + ldr r0, =gBattleAnimPicTable + 0x748 bl LoadCompressedObjectPicUsingHeap - ldr r0, =gUnknown_08525B94 + ldr r0, =gBattleAnimPaletteTable + 0x748 bl LoadCompressedObjectPaletteUsingHeap _08172F6E: ldr r5, =sub_8172FEC @@ -5533,14 +5533,14 @@ sub_81732B0: @ 81732B0 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, =gUnknown_085253AC + ldr r0, =gBattleAnimPicTable + 0x868 bl LoadCompressedObjectPicUsingHeap - ldr r0, =gUnknown_08525CB4 + ldr r0, =gBattleAnimPaletteTable + 0x868 bl LoadCompressedObjectPaletteUsingHeap ldr r0, =0x0000281d bl IndexOfSpritePaletteTag adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r4} pop {r0} bx r0 @@ -5559,7 +5559,7 @@ sub_81732E4: @ 81732E4 adds r0, r5, 0 bl FreeSpritePaletteByTag adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r4,r5} pop {r0} bx r0 @@ -5603,7 +5603,7 @@ sub_817330C: @ 817330C bl sub_80A68D4 ldr r2, =gSprites ldr r1, =gBankSpriteIds - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -5628,7 +5628,7 @@ sub_817339C: @ 817339C adds r3, r0, 0 ldr r2, =gSprites ldr r1, =gBankSpriteIds - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -5679,7 +5679,7 @@ sub_8173400: @ 8173400 adds r4, r0, 0 ldr r5, =gSprites ldr r3, =gBankSpriteIds - ldr r2, =gAnimationBankAttacker + ldr r2, =gAnimBankAttacker ldrb r0, [r2] adds r0, r3 ldrb r1, [r0] @@ -5708,7 +5708,7 @@ sub_8173400: @ 8173400 movs r1, 0 bl StartSpriteAnim adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _08173448: pop {r4,r5} pop {r0} @@ -5733,7 +5733,7 @@ sub_817345C: @ 817345C _08173478: movs r0, 0 bl GetBankByIdentity - ldr r1, =gAnimationBankAttacker + ldr r1, =gAnimBankAttacker strb r0, [r1] movs r0, 0x1 b _08173498 @@ -5741,16 +5741,16 @@ _08173478: _0817348C: movs r0, 0x1 bl GetBankByIdentity - ldr r1, =gAnimationBankAttacker + ldr r1, =gAnimBankAttacker strb r0, [r1] movs r0, 0 _08173498: bl GetBankByIdentity - ldr r1, =gAnimationBankTarget + ldr r1, =gAnimBankTarget strb r0, [r1] _081734A0: adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r4} pop {r0} bx r0 @@ -5801,7 +5801,7 @@ _08173508: _0817350C: strh r0, [r1] adds r0, r2, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r0} bx r0 .pool @@ -5812,18 +5812,18 @@ sub_817351C: @ 817351C push {lr} lsls r0, 24 lsrs r0, 24 - ldr r3, =gAnimationBankAttacker + ldr r3, =gAnimBankAttacker ldr r1, =gBattleSpritesDataPtr ldr r2, [r1] ldr r1, [r2, 0x8] ldrh r1, [r1] strb r1, [r3] - ldr r3, =gAnimationBankTarget + ldr r3, =gAnimBankTarget ldr r1, [r2, 0x8] ldrh r1, [r1] lsrs r1, 8 strb r1, [r3] - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r0} bx r0 .pool diff --git a/asm/battle_anim_sound_tasks.s b/asm/battle_anim_sound_tasks.s index 698230802..4bfd7ae68 100644 --- a/asm/battle_anim_sound_tasks.s +++ b/asm/battle_anim_sound_tasks.s @@ -22,12 +22,12 @@ sub_8158B30: @ 8158B30 strh r0, [r6, 0xA] movs r0, 0x40 negs r0, r0 - bl BattleAnimGetPanControl + bl BattleAnimAdjustPanning adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x3F - bl BattleAnimGetPanControl + bl BattleAnimAdjustPanning adds r5, r0, 0 lsls r4, 24 asrs r4, 24 @@ -36,7 +36,7 @@ sub_8158B30: @ 8158B30 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x2 - bl sub_80A5314 + bl CalculatePanIncrement strh r4, [r6, 0xC] strh r5, [r6, 0xE] lsls r0, 24 @@ -128,7 +128,7 @@ sub_8158C04: @ 8158C04 movs r0, 0 strh r0, [r4, 0x1C] movs r0, 0x3F - bl BattleAnimGetPanControl + bl BattleAnimAdjustPanning adds r1, r0, 0 ldrh r0, [r4, 0xA] lsls r1, 24 @@ -142,7 +142,7 @@ sub_8158C04: @ 8158C04 cmp r0, 0x2 bne _08158C4C adds r0, r5, 0 - bl move_anim_related_task_del + bl DestroyAnimSoundTask _08158C4C: pop {r4,r5} pop {r0} @@ -175,14 +175,14 @@ mas_80DCF38: @ 8158C58 ldrb r0, [r0, 0x2] lsls r0, 24 asrs r0, 24 - bl BattleAnimGetPanControl + bl BattleAnimAdjustPanning adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 asrs r5, 24 adds r0, r5, 0 - bl BattleAnimGetPanControl + bl BattleAnimAdjustPanning adds r5, r0, 0 lsls r4, 24 asrs r4, 24 @@ -193,7 +193,7 @@ mas_80DCF38: @ 8158C58 adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 - bl sub_80A5314 + bl CalculatePanIncrement ldr r2, =gTasks mov r3, r8 lsls r1, r3, 2 @@ -264,7 +264,7 @@ sub_8158D08: @ 8158D08 cmp r0, 0 bne _08158D50 adds r0, r5, 0 - bl move_anim_related_task_del + bl DestroyAnimSoundTask b _08158D82 .pool _08158D50: @@ -307,7 +307,7 @@ sub_8158D8C: @ 8158D8C movs r4, 0 movs r0, 0x40 negs r0, r0 - bl BattleAnimGetPanControl + bl BattleAnimAdjustPanning lsls r0, 24 lsrs r6, r0, 24 bl IsContest @@ -319,7 +319,7 @@ sub_8158D8C: @ 8158D8C ldrsh r0, [r0, r1] cmp r0, 0 bne _08158DC8 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x18] ldrh r4, [r0] @@ -327,7 +327,7 @@ sub_8158D8C: @ 8158D8C .pool _08158DC8: adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask b _08158E76 _08158DD0: ldr r0, =gBattleAnimArgs @@ -336,25 +336,25 @@ _08158DD0: adds r2, r0, 0 cmp r1, 0 bne _08158DEC - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r4, [r0] b _08158E12 .pool _08158DEC: cmp r1, 0x1 bne _08158DFC - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r4, [r0] b _08158E12 .pool _08158DFC: cmp r1, 0x2 bne _08158E08 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker b _08158E0A .pool _08158E08: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget _08158E0A: ldrb r1, [r0] movs r0, 0x2 @@ -369,12 +369,12 @@ _08158E12: bne _08158E38 _08158E1E: adds r0, r4, 0 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 bne _08158E38 adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask b _08158E8C .pool _08158E38: @@ -416,7 +416,7 @@ _08158E76: bl PlayCry3 _08158E86: adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08158E8C: pop {r4-r6} pop {r0} @@ -432,7 +432,7 @@ sub_8158E9C: @ 8158E9C movs r4, 0 movs r0, 0x40 negs r0, r0 - bl BattleAnimGetPanControl + bl BattleAnimAdjustPanning lsls r0, 24 lsrs r5, r0, 24 bl IsContest @@ -444,7 +444,7 @@ sub_8158E9C: @ 8158E9C ldrsh r0, [r0, r1] cmp r0, 0 bne _08158ED8 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x18] ldrh r4, [r0] @@ -452,7 +452,7 @@ sub_8158E9C: @ 8158E9C .pool _08158ED8: adds r0, r6, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask b _08158F86 _08158EE0: ldr r0, =gBattleAnimArgs @@ -461,25 +461,25 @@ _08158EE0: adds r2, r0, 0 cmp r1, 0 bne _08158EFC - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r4, [r0] b _08158F22 .pool _08158EFC: cmp r1, 0x1 bne _08158F0C - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r4, [r0] b _08158F22 .pool _08158F0C: cmp r1, 0x2 bne _08158F18 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker b _08158F1A .pool _08158F18: - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget _08158F1A: ldrb r1, [r0] movs r0, 0x2 @@ -494,12 +494,12 @@ _08158F22: bne _08158F48 _08158F2E: adds r0, r4, 0 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 bne _08158F48 adds r0, r6, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask b _08158FEE .pool _08158F48: @@ -571,7 +571,7 @@ _08158FD0: .pool _08158FE8: adds r0, r6, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08158FEE: pop {r4-r6} pop {r0} @@ -620,7 +620,7 @@ _08159028: movs r2, 0xA bl PlayCry3 adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask b _0815906A _0815904E: bl IsCryPlaying @@ -633,7 +633,7 @@ _0815904E: movs r2, 0x8 bl PlayCry3 mov r0, r9 - bl move_anim_task_del + bl DestroyAnimVisualTask _0815906A: pop {r3,r4} mov r8, r3 @@ -669,7 +669,7 @@ _081590A0: cmp r0, 0 bne _081590B0 adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _081590B0: pop {r4} pop {r0} @@ -691,21 +691,21 @@ sub_81590B8: @ 81590B8 strh r1, [r0, 0x1C] movs r0, 0x40 negs r0, r0 - bl BattleAnimGetPanControl + bl BattleAnimAdjustPanning lsls r0, 24 lsrs r5, r0, 24 bl IsContest lsls r0, 24 cmp r0, 0 beq _081590F8 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x18] b _08159102 .pool _081590F8: - ldr r1, =gUnknown_02038438 - ldr r0, =gAnimationBankAttacker + ldr r1, =gAnimSpeciesByBanks + ldr r0, =gAnimBankAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -728,7 +728,7 @@ _08159102: .pool _08159130: adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08159136: pop {r4,r5} pop {r0} @@ -829,7 +829,7 @@ _081591F2: bl PlayCry3 _081591FE: adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _08159204: pop {r3} mov r8, r3 @@ -849,14 +849,14 @@ sub_8159210: @ 8159210 ldrb r0, [r0, 0x2] lsls r0, 24 asrs r0, 24 - bl BattleAnimGetPanControl + bl BattleAnimAdjustPanning adds r1, r0, 0 lsls r1, 24 asrs r1, 24 adds r0, r5, 0 bl PlaySE1WithPanning adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r4,r5} pop {r0} bx r0 @@ -874,14 +874,14 @@ sub_8159244: @ 8159244 ldrb r0, [r0, 0x2] lsls r0, 24 asrs r0, 24 - bl BattleAnimGetPanControl + bl BattleAnimAdjustPanning adds r1, r0, 0 lsls r1, 24 asrs r1, 24 adds r0, r5, 0 bl PlaySE2WithPanning adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r4,r5} pop {r0} bx r0 @@ -906,14 +906,14 @@ sub_8159278: @ 8159278 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 - bl BattleAnimGetPanControl + bl BattleAnimAdjustPanning adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 asrs r5, 24 adds r0, r5, 0 - bl BattleAnimGetPanControl + bl BattleAnimAdjustPanning adds r5, r0, 0 lsls r4, 24 asrs r4, 24 @@ -924,7 +924,7 @@ sub_8159278: @ 8159278 adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 - bl sub_80A5314 + bl CalculatePanIncrement ldr r2, =gTasks mov r3, r8 lsls r1, r3, 2 @@ -995,7 +995,7 @@ _08159342: cmp r1, r0 bne _0815935A adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _0815935A: pop {r4,r5} pop {r0} diff --git a/asm/battle_controller_linkopponent.s b/asm/battle_controller_linkopponent.s index bf350a8bc..d4e248d8c 100644 --- a/asm/battle_controller_linkopponent.s +++ b/asm/battle_controller_linkopponent.s @@ -276,7 +276,7 @@ _080645CA: ldrb r1, [r7] movs r0, 0x2 eors r0, r1 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 bne _0806469C @@ -985,7 +985,7 @@ sub_8064BC0: @ 8064BC0 adds r0, r5 ldrb r0, [r0] movs r2, 0 - bl heathbar_draw_hp + bl UpdateHpTextInHealthbox b _08064C0C .pool _08064C08: @@ -1572,7 +1572,7 @@ _0806513A: lsrs r1, 16 movs r0, 0x1 mov r2, sp - bl dp01_build_cmdbuf_x1D_1D_numargs_varargs + bl EmitDataTransfer bl LinkOpponentBufferExecCompleted add sp, 0x100 pop {r4-r6} @@ -4721,7 +4721,7 @@ _08066D32: ldrb r0, [r0] lsls r0, 8 orrs r6, r0 - ldr r0, =gUnknown_02038432 + ldr r0, =gAnimMoveTurn mov r8, r0 mov r0, r12 adds r0, 0x3 @@ -4729,7 +4729,7 @@ _08066D32: ldrb r0, [r1] mov r1, r8 strb r0, [r1] - ldr r3, =gMovePowerMoveAnim + ldr r3, =gAnimMovePower ldrb r1, [r5] lsls r1, 9 mov r0, r12 @@ -4743,7 +4743,7 @@ _08066D32: lsls r0, 8 orrs r2, r0 strh r2, [r3] - ldr r3, =gMoveDmgMoveAnim + ldr r3, =gAnimMoveDmg ldrb r1, [r5] lsls r1, 9 mov r0, r12 @@ -4769,7 +4769,7 @@ _08066D32: lsls r0, 24 orrs r2, r0 str r2, [r3] - ldr r2, =gHappinessMoveAnim + ldr r2, =gAnimFriendship ldrb r0, [r5] lsls r0, 9 mov r1, r12 @@ -4791,7 +4791,7 @@ _08066D32: lsls r0, 8 orrs r2, r0 strh r2, [r4] - ldr r7, =gDisableStructMoveAnim + ldr r7, =gAnimDisableStructPtr ldrb r1, [r5] lsls r1, 9 mov r0, r12 @@ -4928,7 +4928,7 @@ _08066F08: movs r0, 0 bl sub_805EB9C adds r0, r4, 0 - bl move_anim_start_t1 + bl DoMoveAnim ldr r0, [r7] ldrb r1, [r6] ldr r2, [r0, 0x4] @@ -5124,7 +5124,7 @@ sub_80670A0: @ 80670A0 push {r6,r7} sub sp, 0x4 movs r0, 0 - bl load_gfxc_health_bar + bl LoadBattleBarGfx ldr r3, =gBattleBufferA ldr r0, =gActiveBank mov r9, r0 @@ -5171,7 +5171,7 @@ sub_80670A0: @ 80670A0 ldrb r1, [r1] str r7, [sp] mov r2, r8 - bl sub_807294C + bl SetBattleBarStruct b _0806715A .pool _08067130: @@ -5193,7 +5193,7 @@ _08067130: ldrb r1, [r1] str r7, [sp] movs r3, 0 - bl sub_807294C + bl SetBattleBarStruct _0806715A: ldr r1, =gBattleBankFunc ldr r0, =gActiveBank @@ -5954,7 +5954,7 @@ _080677B4: subs r4, 0x2 adds r3, r4 ldrb r3, [r3] - bl sub_80735DC + bl CreatePartyStatusSummarySprites ldr r2, =gUnknown_020244B4 ldrb r1, [r5] adds r1, r2 @@ -6080,7 +6080,7 @@ sub_80678D0: @ 80678D0 push {r4,lr} ldr r4, =gActiveBank ldrb r0, [r4] - bl sub_80A6A90 + bl AnimBankSpriteExists lsls r0, 24 cmp r0, 0 beq _08067916 diff --git a/asm/battle_controller_linkpartner.s b/asm/battle_controller_linkpartner.s index b26943cf5..adc5cdb84 100644 --- a/asm/battle_controller_linkpartner.s +++ b/asm/battle_controller_linkpartner.s @@ -509,7 +509,7 @@ bx_t4_healthbar_update: @ 814B2D0 adds r0, r6 ldrb r0, [r0] movs r2, 0 - bl heathbar_draw_hp + bl UpdateHpTextInHealthbox b _0814B332 .pool _0814B318: @@ -1113,7 +1113,7 @@ _0814B872: lsrs r1, 16 movs r0, 0x1 mov r2, sp - bl dp01_build_cmdbuf_x1D_1D_numargs_varargs + bl EmitDataTransfer bl LinkPartnerBufferExecCompleted add sp, 0x100 pop {r4-r6} @@ -4030,7 +4030,7 @@ _0814D2CE: ldrb r0, [r0] lsls r0, 8 orrs r6, r0 - ldr r0, =gUnknown_02038432 + ldr r0, =gAnimMoveTurn mov r8, r0 mov r0, r12 adds r0, 0x3 @@ -4038,7 +4038,7 @@ _0814D2CE: ldrb r0, [r1] mov r1, r8 strb r0, [r1] - ldr r3, =gMovePowerMoveAnim + ldr r3, =gAnimMovePower ldrb r1, [r5] lsls r1, 9 mov r0, r12 @@ -4052,7 +4052,7 @@ _0814D2CE: lsls r0, 8 orrs r2, r0 strh r2, [r3] - ldr r3, =gMoveDmgMoveAnim + ldr r3, =gAnimMoveDmg ldrb r1, [r5] lsls r1, 9 mov r0, r12 @@ -4078,7 +4078,7 @@ _0814D2CE: lsls r0, 24 orrs r2, r0 str r2, [r3] - ldr r2, =gHappinessMoveAnim + ldr r2, =gAnimFriendship ldrb r0, [r5] lsls r0, 9 mov r1, r12 @@ -4100,7 +4100,7 @@ _0814D2CE: lsls r0, 8 orrs r2, r0 strh r2, [r4] - ldr r7, =gDisableStructMoveAnim + ldr r7, =gAnimDisableStructPtr ldrb r1, [r5] lsls r1, 9 mov r0, r12 @@ -4237,7 +4237,7 @@ _0814D4A4: movs r0, 0 bl sub_805EB9C adds r0, r4, 0 - bl move_anim_start_t1 + bl DoMoveAnim ldr r0, [r7] ldrb r1, [r6] ldr r2, [r0, 0x4] @@ -4433,7 +4433,7 @@ sub_814D63C: @ 814D63C push {r6,r7} sub sp, 0x4 movs r0, 0 - bl load_gfxc_health_bar + bl LoadBattleBarGfx ldr r3, =gBattleBufferA ldr r0, =gActiveBank mov r9, r0 @@ -4480,7 +4480,7 @@ sub_814D63C: @ 814D63C ldrb r1, [r1] str r7, [sp] mov r2, r8 - bl sub_807294C + bl SetBattleBarStruct b _0814D6F6 .pool _0814D6CC: @@ -4502,7 +4502,7 @@ _0814D6CC: ldrb r1, [r1] str r7, [sp] movs r3, 0 - bl sub_807294C + bl SetBattleBarStruct _0814D6F6: ldr r1, =gBattleBankFunc ldr r0, =gActiveBank @@ -5349,7 +5349,7 @@ _0814DE08: subs r4, 0x2 adds r3, r4 ldrb r3, [r3] - bl sub_80735DC + bl CreatePartyStatusSummarySprites ldr r2, =gUnknown_020244B4 ldrb r1, [r5] adds r1, r2 @@ -5474,7 +5474,7 @@ sub_814DF40: @ 814DF40 push {r4,lr} ldr r4, =gActiveBank ldrb r0, [r4] - bl sub_80A6A90 + bl AnimBankSpriteExists lsls r0, 24 cmp r0, 0 beq _0814DF86 diff --git a/asm/battle_controller_opponent.s b/asm/battle_controller_opponent.s index 424e4159d..b66e373ca 100644 --- a/asm/battle_controller_opponent.s +++ b/asm/battle_controller_opponent.s @@ -1079,7 +1079,7 @@ sub_805FA70: @ 805FA70 adds r0, r5 ldrb r0, [r0] movs r2, 0 - bl heathbar_draw_hp + bl UpdateHpTextInHealthbox b _0805FABC .pool _0805FAB8: @@ -1666,7 +1666,7 @@ _0805FFEA: lsrs r1, 16 movs r0, 0x1 mov r2, sp - bl dp01_build_cmdbuf_x1D_1D_numargs_varargs + bl EmitDataTransfer bl OpponentBufferExecCompleted add sp, 0x100 pop {r4-r6} @@ -2607,7 +2607,7 @@ _08060806: ldrb r1, [r0] movs r0, 0x1 adds r2, r4, 0 - bl dp01_build_cmdbuf_x1D_1D_numargs_varargs + bl EmitDataTransfer bl OpponentBufferExecCompleted add sp, 0x58 pop {r4-r7} @@ -4871,13 +4871,13 @@ _08061C8A: ldrb r1, [r1] lsls r1, 8 orrs r0, r1 - ldr r5, =gUnknown_02038432 + ldr r5, =gAnimMoveTurn mov r1, r12 adds r1, 0x3 adds r2, r1 ldrb r1, [r2] strb r1, [r5] - ldr r4, =gMovePowerMoveAnim + ldr r4, =gAnimMovePower ldrb r2, [r6] lsls r2, 9 mov r1, r12 @@ -4891,7 +4891,7 @@ _08061C8A: lsls r1, 8 orrs r3, r1 strh r3, [r4] - ldr r4, =gMoveDmgMoveAnim + ldr r4, =gAnimMoveDmg ldrb r2, [r6] lsls r2, 9 mov r1, r12 @@ -4917,7 +4917,7 @@ _08061C8A: lsls r1, 24 orrs r3, r1 str r3, [r4] - ldr r3, =gHappinessMoveAnim + ldr r3, =gAnimFriendship ldrb r1, [r6] lsls r1, 9 mov r2, r12 @@ -4939,7 +4939,7 @@ _08061C8A: lsls r1, 8 orrs r3, r1 strh r3, [r4] - ldr r3, =gDisableStructMoveAnim + ldr r3, =gAnimDisableStructPtr ldrb r2, [r6] lsls r2, 9 mov r1, r12 @@ -5068,7 +5068,7 @@ _08061E48: movs r0, 0 bl sub_805EB9C adds r0, r4, 0 - bl move_anim_start_t1 + bl DoMoveAnim ldr r0, [r7] ldrb r1, [r6] ldr r2, [r0, 0x4] @@ -5243,7 +5243,7 @@ sub_8061FB8: @ 8061FB8 movs r0, 0x1 movs r1, 0xA _08061FD6: - bl EmitCmd_x21 + bl EmitCmd33 _08061FDA: bl OpponentBufferExecCompleted b _08062156 @@ -5347,7 +5347,7 @@ _0806209C: movs r0, 0x1 movs r1, 0xA adds r2, r4, 0 - bl EmitCmd_x21 + bl EmitCmd33 b _08061FDA .pool _080620C4: @@ -5378,7 +5378,7 @@ _080620C6: movs r0, 0x1 movs r1, 0xA adds r2, r4, 0 - bl EmitCmd_x21 + bl EmitCmd33 b _08062152 .pool _08062108: @@ -5401,7 +5401,7 @@ _08062108: orrs r2, r4 movs r0, 0x1 movs r1, 0xA - bl EmitCmd_x21 + bl EmitCmd33 b _08062152 .pool _0806213C: @@ -5413,7 +5413,7 @@ _0806213C: orrs r2, r4 movs r0, 0x1 movs r1, 0xA - bl EmitCmd_x21 + bl EmitCmd33 _08062152: bl OpponentBufferExecCompleted _08062156: @@ -5435,7 +5435,7 @@ sub_806215C: @ 806215C adds r0, 0xC0 ldrb r1, [r0] movs r0, 0x1 - bl dp01_build_cmdbuf_x23_aa_0 + bl EmitCmd35 bl OpponentBufferExecCompleted pop {r0} bx r0 @@ -5550,7 +5550,7 @@ _0806225A: lsrs r1, 24 movs r0, 0x1 movs r2, 0 - bl dp01_build_cmdbuf_x22_a_three_bytes + bl EmitCmd34 bl OpponentBufferExecCompleted pop {r4-r7} pop {r0} @@ -5574,7 +5574,7 @@ sub_8062294: @ 8062294 push {r6,r7} sub sp, 0x4 movs r0, 0 - bl load_gfxc_health_bar + bl LoadBattleBarGfx ldr r3, =gBattleBufferA ldr r0, =gActiveBank mov r9, r0 @@ -5621,7 +5621,7 @@ sub_8062294: @ 8062294 ldrb r1, [r1] str r7, [sp] mov r2, r8 - bl sub_807294C + bl SetBattleBarStruct b _0806234E .pool _08062324: @@ -5643,7 +5643,7 @@ _08062324: ldrb r1, [r1] str r7, [sp] movs r3, 0 - bl sub_807294C + bl SetBattleBarStruct _0806234E: ldr r1, =gBattleBankFunc ldr r0, =gActiveBank @@ -6409,7 +6409,7 @@ _080629B4: subs r4, 0x2 adds r3, r4 ldrb r3, [r3] - bl sub_80735DC + bl CreatePartyStatusSummarySprites ldr r2, =gUnknown_020244B4 ldrb r1, [r5] adds r1, r2 @@ -6535,7 +6535,7 @@ sub_8062AD0: @ 8062AD0 push {r4,lr} ldr r4, =gActiveBank ldrb r0, [r4] - bl sub_80A6A90 + bl AnimBankSpriteExists lsls r0, 24 cmp r0, 0 beq _08062B16 diff --git a/asm/battle_controller_player.s b/asm/battle_controller_player.s index 047c62f6b..10b675714 100644 --- a/asm/battle_controller_player.s +++ b/asm/battle_controller_player.s @@ -226,7 +226,7 @@ _0805764C: movs r0, 0x1 movs r1, 0x3 movs r2, 0 - bl EmitCmd_x21 + bl EmitCmd33 b _080577C2 _08057658: movs r0, 0x20 @@ -393,7 +393,7 @@ _080577B2: movs r1, 0xC _080577BC: movs r2, 0 - bl EmitCmd_x21 + bl EmitCmd33 _080577C2: bl PlayerBufferExecCompleted b _080577E8 @@ -403,7 +403,7 @@ _080577DC: ands r0, r2 cmp r0, 0 beq _080577E8 - bl sub_8073314 + bl SwapHpBarsWithHpText _080577E8: pop {r4-r7} pop {r0} @@ -518,7 +518,7 @@ _080578A0: orrs r2, r0 movs r0, 0x1 movs r1, 0xA - bl EmitCmd_x21 + bl EmitCmd33 ldrb r0, [r4] movs r1, 0x1 bl dp11b_obj_free @@ -1086,7 +1086,7 @@ _08057E14: _08057E1C: movs r0, 0x1 movs r1, 0xA - bl EmitCmd_x21 + bl EmitCmd33 bl PlayerBufferExecCompleted b _08057F9E .pool @@ -3278,7 +3278,7 @@ bx_t1_healthbar_update: @ 8059130 adds r0, r6 ldrb r0, [r0] movs r2, 0 - bl heathbar_draw_hp + bl UpdateHpTextInHealthbox b _08059192 .pool _08059178: @@ -3413,7 +3413,7 @@ _080591FE: lsrs r2, 16 movs r0, 0x1 movs r1, 0xB - bl EmitCmd_x21 + bl EmitCmd33 strb r5, [r4] bl IsDoubleBattle lsls r0, 24 @@ -3557,7 +3557,7 @@ sub_8059330: @ 8059330 negs r0, r0 str r0, [sp] mov r0, r10 - bl sub_807294C + bl SetBattleBarStruct movs r0, 0x21 bl PlaySE ldr r0, =sub_8059400 @@ -3686,7 +3686,7 @@ _08059430: lsrs r2, 16 movs r0, 0x1 movs r1, 0xB - bl EmitCmd_x21 + bl EmitCmd33 strb r5, [r4] ldr r0, =sub_8059544 str r0, [r6] @@ -4059,14 +4059,14 @@ sub_8059828: @ 8059828 ldrb r1, [r0] ldr r2, =gUnknown_0203CF00 movs r0, 0x1 - bl dp01_build_cmdbuf_x22_a_three_bytes + bl EmitCmd34 b _0805987A .pool _08059870: movs r0, 0x1 movs r1, 0x6 movs r2, 0 - bl dp01_build_cmdbuf_x22_a_three_bytes + bl EmitCmd34 _0805987A: ldr r1, =gBattleBufferA ldr r0, =gActiveBank @@ -4130,7 +4130,7 @@ sub_80598E0: @ 80598E0 ldr r0, =gScriptItemId ldrh r1, [r0] movs r0, 0x1 - bl dp01_build_cmdbuf_x23_aa_0 + bl EmitCmd35 bl PlayerBufferExecCompleted _08059906: pop {r0} @@ -4291,14 +4291,14 @@ _08059A2C: movs r0, 0x1 movs r1, 0xE movs r2, 0 - bl EmitCmd_x21 + bl EmitCmd33 b _08059A76 .pool _08059A6C: movs r0, 0x1 movs r1, 0xD movs r2, 0 - bl EmitCmd_x21 + bl EmitCmd33 _08059A76: bl PlayerBufferExecCompleted _08059A7A: @@ -4772,7 +4772,7 @@ _08059E4E: lsrs r1, 16 movs r0, 0x1 mov r2, sp - bl dp01_build_cmdbuf_x1D_1D_numargs_varargs + bl EmitDataTransfer bl PlayerBufferExecCompleted add sp, 0x100 pop {r4-r6} @@ -5713,7 +5713,7 @@ _0805A66A: ldrb r1, [r0] movs r0, 0x1 adds r2, r4, 0 - bl dp01_build_cmdbuf_x1D_1D_numargs_varargs + bl EmitDataTransfer bl PlayerBufferExecCompleted add sp, 0x58 pop {r4-r7} @@ -8134,7 +8134,7 @@ _0805BCBE: ldrb r0, [r0] lsls r0, 8 orrs r6, r0 - ldr r0, =gUnknown_02038432 + ldr r0, =gAnimMoveTurn mov r8, r0 mov r0, r12 adds r0, 0x3 @@ -8142,7 +8142,7 @@ _0805BCBE: ldrb r0, [r1] mov r1, r8 strb r0, [r1] - ldr r3, =gMovePowerMoveAnim + ldr r3, =gAnimMovePower ldrb r1, [r5] lsls r1, 9 mov r0, r12 @@ -8156,7 +8156,7 @@ _0805BCBE: lsls r0, 8 orrs r2, r0 strh r2, [r3] - ldr r3, =gMoveDmgMoveAnim + ldr r3, =gAnimMoveDmg ldrb r1, [r5] lsls r1, 9 mov r0, r12 @@ -8182,7 +8182,7 @@ _0805BCBE: lsls r0, 24 orrs r2, r0 str r2, [r3] - ldr r2, =gHappinessMoveAnim + ldr r2, =gAnimFriendship ldrb r0, [r5] lsls r0, 9 mov r1, r12 @@ -8204,7 +8204,7 @@ _0805BCBE: lsls r0, 8 orrs r2, r0 strh r2, [r4] - ldr r7, =gDisableStructMoveAnim + ldr r7, =gAnimDisableStructPtr ldrb r1, [r5] lsls r1, 9 mov r0, r12 @@ -8341,7 +8341,7 @@ _0805BE94: movs r0, 0 bl sub_805EB9C adds r0, r4, 0 - bl move_anim_start_t1 + bl DoMoveAnim ldr r0, [r7] ldrb r1, [r6] ldr r2, [r0, 0x4] @@ -8658,7 +8658,7 @@ sub_805C158: @ 805C158 lsrs r2, 16 movs r0, 0x1 movs r1, 0xA - bl EmitCmd_x21 + bl EmitCmd33 bl PlayerBufferExecCompleted _0805C194: pop {r0} @@ -8826,7 +8826,7 @@ _0805C2C8: lsrs r1, 24 movs r0, 0x1 mov r2, r12 - bl dp01_build_cmdbuf_x22_a_three_bytes + bl EmitCmd34 bl PlayerBufferExecCompleted b _0805C3BC .pool @@ -8936,7 +8936,7 @@ sub_805C410: @ 805C410 push {r6,r7} sub sp, 0x4 movs r0, 0 - bl load_gfxc_health_bar + bl LoadBattleBarGfx ldr r3, =gBattleBufferA ldr r0, =gActiveBank mov r9, r0 @@ -8992,7 +8992,7 @@ _0805C44A: ldrb r1, [r1] str r7, [sp] mov r2, r8 - bl sub_807294C + bl SetBattleBarStruct b _0805C4F2 .pool _0805C4B4: @@ -9016,14 +9016,14 @@ _0805C4B4: ldrb r1, [r1] str r7, [sp] movs r3, 0 - bl sub_807294C + bl SetBattleBarStruct mov r2, r9 ldrb r0, [r2] adds r0, r4 ldrb r0, [r0] movs r1, 0 movs r2, 0 - bl heathbar_draw_hp + bl UpdateHpTextInHealthbox _0805C4F2: ldr r1, =gBattleBankFunc ldr r0, =gActiveBank @@ -9067,7 +9067,7 @@ sub_805C528: @ 805C528 .pool _0805C560: movs r0, 0x1 - bl load_gfxc_health_bar + bl LoadBattleBarGfx adds r0, r4, 0 movs r1, 0xB bl GetMonData @@ -9378,7 +9378,7 @@ sub_805C80C: @ 805C80C movs r0, 0x1 movs r1, 0 movs r2, 0 - bl EmitCmd_x21 + bl EmitCmd33 bl PlayerBufferExecCompleted pop {r0} bx r0 @@ -9390,7 +9390,7 @@ sub_805C820: @ 805C820 movs r0, 0x1 movs r1, 0 movs r2, 0 - bl dp01_build_cmdbuf_x22_a_three_bytes + bl EmitCmd34 bl PlayerBufferExecCompleted pop {r0} bx r0 @@ -9401,7 +9401,7 @@ sub_805C834: @ 805C834 push {lr} movs r0, 0x1 movs r1, 0 - bl dp01_build_cmdbuf_x23_aa_0 + bl EmitCmd35 bl PlayerBufferExecCompleted pop {r0} bx r0 @@ -9412,7 +9412,7 @@ sub_805C848: @ 805C848 push {lr} movs r0, 0x1 movs r1, 0 - bl dp01_build_cmdbuf_x24_aa_0 + bl EmitCmd36 bl PlayerBufferExecCompleted pop {r0} bx r0 @@ -10038,7 +10038,7 @@ _0805CDA4: subs r4, 0x2 adds r3, r4 ldrb r3, [r3] - bl sub_80735DC + bl CreatePartyStatusSummarySprites ldr r2, =gUnknown_020244B4 ldrb r1, [r5] adds r1, r2 @@ -10172,7 +10172,7 @@ dp01t_33_1_enemy_move: @ 805CEF4 push {r4,lr} ldr r4, =gActiveBank ldrb r0, [r4] - bl sub_80A6A90 + bl AnimBankSpriteExists lsls r0, 24 cmp r0, 0 beq _0805CF3A diff --git a/asm/battle_controller_player_partner.s b/asm/battle_controller_player_partner.s index 35ee3a733..f82e1c3c3 100644 --- a/asm/battle_controller_player_partner.s +++ b/asm/battle_controller_player_partner.s @@ -510,7 +510,7 @@ bx_t3_healthbar_update: @ 81BB214 adds r0, r6 ldrb r0, [r0] movs r2, 0 - bl heathbar_draw_hp + bl UpdateHpTextInHealthbox b _081BB276 .pool _081BB25C: @@ -645,7 +645,7 @@ _081BB2E2: lsrs r2, 16 movs r0, 0x1 movs r1, 0xB - bl EmitCmd_x21 + bl EmitCmd33 strb r5, [r4] bl IsDoubleBattle lsls r0, 24 @@ -789,7 +789,7 @@ sub_81BB414: @ 81BB414 negs r0, r0 str r0, [sp] mov r0, r10 - bl sub_807294C + bl SetBattleBarStruct movs r0, 0x21 bl PlaySE ldr r0, =sub_81BB4E4 @@ -918,7 +918,7 @@ _081BB514: lsrs r2, 16 movs r0, 0x1 movs r1, 0xB - bl EmitCmd_x21 + bl EmitCmd33 strb r5, [r4] ldr r0, =sub_81BB628 str r0, [r6] @@ -1688,7 +1688,7 @@ _081BBCBE: lsrs r1, 16 movs r0, 0x1 mov r2, sp - bl dp01_build_cmdbuf_x1D_1D_numargs_varargs + bl EmitDataTransfer bl PlayerPartnerBufferExecCompleted add sp, 0x100 pop {r4-r6} @@ -4652,13 +4652,13 @@ _081BD7A2: ldrb r1, [r1] lsls r1, 8 orrs r0, r1 - ldr r5, =gUnknown_02038432 + ldr r5, =gAnimMoveTurn mov r1, r12 adds r1, 0x3 adds r2, r1 ldrb r1, [r2] strb r1, [r5] - ldr r4, =gMovePowerMoveAnim + ldr r4, =gAnimMovePower ldrb r2, [r6] lsls r2, 9 mov r1, r12 @@ -4672,7 +4672,7 @@ _081BD7A2: lsls r1, 8 orrs r3, r1 strh r3, [r4] - ldr r4, =gMoveDmgMoveAnim + ldr r4, =gAnimMoveDmg ldrb r2, [r6] lsls r2, 9 mov r1, r12 @@ -4698,7 +4698,7 @@ _081BD7A2: lsls r1, 24 orrs r3, r1 str r3, [r4] - ldr r3, =gHappinessMoveAnim + ldr r3, =gAnimFriendship ldrb r1, [r6] lsls r1, 9 mov r2, r12 @@ -4720,7 +4720,7 @@ _081BD7A2: lsls r1, 8 orrs r3, r1 strh r3, [r4] - ldr r3, =gDisableStructMoveAnim + ldr r3, =gAnimDisableStructPtr ldrb r2, [r6] lsls r2, 9 mov r1, r12 @@ -4849,7 +4849,7 @@ _081BD960: movs r0, 0 bl sub_805EB9C adds r0, r4, 0 - bl move_anim_start_t1 + bl DoMoveAnim ldr r0, [r7] ldrb r1, [r6] ldr r2, [r0, 0x4] @@ -5068,7 +5068,7 @@ _081BDB3C: orrs r2, r5 movs r0, 0x1 movs r1, 0xA - bl EmitCmd_x21 + bl EmitCmd33 bl PlayerPartnerBufferExecCompleted pop {r4-r6} pop {r0} @@ -5138,7 +5138,7 @@ _081BDBD0: lsrs r1, 24 movs r0, 0x1 movs r2, 0 - bl dp01_build_cmdbuf_x22_a_three_bytes + bl EmitCmd34 bl PlayerPartnerBufferExecCompleted pop {r4-r6} pop {r0} @@ -5162,7 +5162,7 @@ sub_81BDC10: @ 81BDC10 push {r6,r7} sub sp, 0x4 movs r0, 0 - bl load_gfxc_health_bar + bl LoadBattleBarGfx ldr r3, =gBattleBufferA ldr r0, =gActiveBank mov r9, r0 @@ -5209,7 +5209,7 @@ sub_81BDC10: @ 81BDC10 ldrb r1, [r1] str r7, [sp] mov r2, r8 - bl sub_807294C + bl SetBattleBarStruct b _081BDCCA .pool _081BDCA0: @@ -5231,7 +5231,7 @@ _081BDCA0: ldrb r1, [r1] str r7, [sp] movs r3, 0 - bl sub_807294C + bl SetBattleBarStruct _081BDCCA: ldr r1, =gBattleBankFunc ldr r0, =gActiveBank @@ -5275,7 +5275,7 @@ sub_81BDD00: @ 81BDD00 .pool _081BDD38: movs r0, 0x1 - bl load_gfxc_health_bar + bl LoadBattleBarGfx adds r0, r4, 0 movs r1, 0xB bl GetMonData @@ -6082,7 +6082,7 @@ _081BE404: subs r4, 0x2 adds r3, r4 ldrb r3, [r3] - bl sub_80735DC + bl CreatePartyStatusSummarySprites ldr r2, =gUnknown_020244B4 ldrb r1, [r5] adds r1, r2 @@ -6207,7 +6207,7 @@ sub_81BE53C: @ 81BE53C push {r4,lr} ldr r4, =gActiveBank ldrb r0, [r4] - bl sub_80A6A90 + bl AnimBankSpriteExists lsls r0, 24 cmp r0, 0 beq _081BE582 diff --git a/asm/battle_controller_recorded_opponent.s b/asm/battle_controller_recorded_opponent.s index 562b55d4d..f98c10a6c 100644 --- a/asm/battle_controller_recorded_opponent.s +++ b/asm/battle_controller_recorded_opponent.s @@ -966,7 +966,7 @@ sub_8186D04: @ 8186D04 adds r0, r5 ldrb r0, [r0] movs r2, 0 - bl heathbar_draw_hp + bl UpdateHpTextInHealthbox b _08186D50 .pool _08186D4C: @@ -1553,7 +1553,7 @@ _0818727E: lsrs r1, 16 movs r0, 0x1 mov r2, sp - bl dp01_build_cmdbuf_x1D_1D_numargs_varargs + bl EmitDataTransfer bl RecordedOpponentBufferExecCompleted add sp, 0x100 pop {r4-r6} @@ -4408,13 +4408,13 @@ _08188BE6: ldrb r1, [r1] lsls r1, 8 orrs r0, r1 - ldr r5, =gUnknown_02038432 + ldr r5, =gAnimMoveTurn mov r1, r12 adds r1, 0x3 adds r2, r1 ldrb r1, [r2] strb r1, [r5] - ldr r4, =gMovePowerMoveAnim + ldr r4, =gAnimMovePower ldrb r2, [r6] lsls r2, 9 mov r1, r12 @@ -4428,7 +4428,7 @@ _08188BE6: lsls r1, 8 orrs r3, r1 strh r3, [r4] - ldr r4, =gMoveDmgMoveAnim + ldr r4, =gAnimMoveDmg ldrb r2, [r6] lsls r2, 9 mov r1, r12 @@ -4454,7 +4454,7 @@ _08188BE6: lsls r1, 24 orrs r3, r1 str r3, [r4] - ldr r3, =gHappinessMoveAnim + ldr r3, =gAnimFriendship ldrb r1, [r6] lsls r1, 9 mov r2, r12 @@ -4476,7 +4476,7 @@ _08188BE6: lsls r1, 8 orrs r3, r1 strh r3, [r4] - ldr r3, =gDisableStructMoveAnim + ldr r3, =gAnimDisableStructPtr ldrb r2, [r6] lsls r2, 9 mov r1, r12 @@ -4605,7 +4605,7 @@ _08188DA4: movs r0, 0 bl sub_805EB9C adds r0, r4, 0 - bl move_anim_start_t1 + bl DoMoveAnim ldr r0, [r7] ldrb r1, [r6] ldr r2, [r0, 0x4] @@ -4754,7 +4754,7 @@ sub_8188EF0: @ 8188EF0 lsrs r1, 24 movs r0, 0x1 movs r2, 0 - bl EmitCmd_x21 + bl EmitCmd33 bl RecordedOpponentBufferExecCompleted pop {r0} bx r0 @@ -4785,7 +4785,7 @@ sub_8188F20: @ 8188F20 lsrs r2, 16 movs r0, 0x1 movs r1, 0xA - bl EmitCmd_x21 + bl EmitCmd33 b _08188F6C .pool _08188F48: @@ -4803,7 +4803,7 @@ _08188F48: orrs r2, r4 movs r0, 0x1 movs r1, 0xA - bl EmitCmd_x21 + bl EmitCmd33 _08188F6C: bl RecordedOpponentBufferExecCompleted pop {r4,r5} @@ -4839,7 +4839,7 @@ sub_8188F88: @ 8188F88 ldrb r1, [r0] movs r0, 0x1 movs r2, 0 - bl dp01_build_cmdbuf_x22_a_three_bytes + bl EmitCmd34 bl RecordedOpponentBufferExecCompleted pop {r4} pop {r0} @@ -4863,7 +4863,7 @@ sub_8188FD0: @ 8188FD0 push {r6,r7} sub sp, 0x4 movs r0, 0 - bl load_gfxc_health_bar + bl LoadBattleBarGfx ldr r3, =gBattleBufferA ldr r0, =gActiveBank mov r9, r0 @@ -4910,7 +4910,7 @@ sub_8188FD0: @ 8188FD0 ldrb r1, [r1] str r7, [sp] mov r2, r8 - bl sub_807294C + bl SetBattleBarStruct b _0818908A .pool _08189060: @@ -4932,7 +4932,7 @@ _08189060: ldrb r1, [r1] str r7, [sp] movs r3, 0 - bl sub_807294C + bl SetBattleBarStruct _0818908A: ldr r1, =gBattleBankFunc ldr r0, =gActiveBank @@ -5693,7 +5693,7 @@ _081896E4: subs r4, 0x2 adds r3, r4 ldrb r3, [r3] - bl sub_80735DC + bl CreatePartyStatusSummarySprites ldr r2, =gUnknown_020244B4 ldrb r1, [r5] adds r1, r2 @@ -5819,7 +5819,7 @@ sub_8189800: @ 8189800 push {r4,lr} ldr r4, =gActiveBank ldrb r0, [r4] - bl sub_80A6A90 + bl AnimBankSpriteExists lsls r0, 24 cmp r0, 0 beq _08189846 diff --git a/asm/battle_controller_recorded_player.s b/asm/battle_controller_recorded_player.s index f7dfc0fed..6f3976205 100644 --- a/asm/battle_controller_recorded_player.s +++ b/asm/battle_controller_recorded_player.s @@ -885,7 +885,7 @@ sub_818A0A4: @ 818A0A4 adds r0, r6 ldrb r0, [r0] movs r2, 0 - bl heathbar_draw_hp + bl UpdateHpTextInHealthbox b _0818A106 .pool _0818A0EC: @@ -1489,7 +1489,7 @@ _0818A646: lsrs r1, 16 movs r0, 0x1 mov r2, sp - bl dp01_build_cmdbuf_x1D_1D_numargs_varargs + bl EmitDataTransfer bl RecordedPlayerBufferExecCompleted add sp, 0x100 pop {r4-r6} @@ -4508,13 +4508,13 @@ _0818C192: ldrb r1, [r1] lsls r1, 8 orrs r0, r1 - ldr r5, =gUnknown_02038432 + ldr r5, =gAnimMoveTurn mov r1, r12 adds r1, 0x3 adds r2, r1 ldrb r1, [r2] strb r1, [r5] - ldr r4, =gMovePowerMoveAnim + ldr r4, =gAnimMovePower ldrb r2, [r6] lsls r2, 9 mov r1, r12 @@ -4528,7 +4528,7 @@ _0818C192: lsls r1, 8 orrs r3, r1 strh r3, [r4] - ldr r4, =gMoveDmgMoveAnim + ldr r4, =gAnimMoveDmg ldrb r2, [r6] lsls r2, 9 mov r1, r12 @@ -4554,7 +4554,7 @@ _0818C192: lsls r1, 24 orrs r3, r1 str r3, [r4] - ldr r3, =gHappinessMoveAnim + ldr r3, =gAnimFriendship ldrb r1, [r6] lsls r1, 9 mov r2, r12 @@ -4576,7 +4576,7 @@ _0818C192: lsls r1, 8 orrs r3, r1 strh r3, [r4] - ldr r3, =gDisableStructMoveAnim + ldr r3, =gAnimDisableStructPtr ldrb r2, [r6] lsls r2, 9 mov r1, r12 @@ -4705,7 +4705,7 @@ _0818C350: movs r0, 0 bl sub_805EB9C adds r0, r4, 0 - bl move_anim_start_t1 + bl DoMoveAnim ldr r0, [r7] ldrb r1, [r6] ldr r2, [r0, 0x4] @@ -4861,7 +4861,7 @@ sub_818C49C: @ 818C49C lsrs r1, 24 movs r0, 0x1 movs r2, 0 - bl EmitCmd_x21 + bl EmitCmd33 bl RecordedPlayerBufferExecCompleted _0818C4C6: pop {r0} @@ -4897,7 +4897,7 @@ _0818C508: lsrs r1, 24 movs r0, 0x1 movs r2, 0 - bl EmitCmd_x21 + bl EmitCmd33 bl RecordedPlayerBufferExecCompleted _0818C522: pop {r0} @@ -4929,7 +4929,7 @@ sub_818C538: @ 818C538 lsrs r2, 16 movs r0, 0x1 movs r1, 0xA - bl EmitCmd_x21 + bl EmitCmd33 b _0818C584 .pool _0818C560: @@ -4947,7 +4947,7 @@ _0818C560: orrs r2, r4 movs r0, 0x1 movs r1, 0xA - bl EmitCmd_x21 + bl EmitCmd33 _0818C584: bl RecordedPlayerBufferExecCompleted pop {r4,r5} @@ -4983,7 +4983,7 @@ sub_818C5A0: @ 818C5A0 ldrb r1, [r0] movs r0, 0x1 movs r2, 0 - bl dp01_build_cmdbuf_x22_a_three_bytes + bl EmitCmd34 bl RecordedPlayerBufferExecCompleted pop {r4} pop {r0} @@ -5007,7 +5007,7 @@ sub_818C5E8: @ 818C5E8 push {r6,r7} sub sp, 0x4 movs r0, 0 - bl load_gfxc_health_bar + bl LoadBattleBarGfx ldr r3, =gBattleBufferA ldr r0, =gActiveBank mov r9, r0 @@ -5054,7 +5054,7 @@ sub_818C5E8: @ 818C5E8 ldrb r1, [r1] str r7, [sp] mov r2, r8 - bl sub_807294C + bl SetBattleBarStruct b _0818C6B2 .pool _0818C678: @@ -5076,14 +5076,14 @@ _0818C678: ldrb r1, [r1] str r7, [sp] movs r3, 0 - bl sub_807294C + bl SetBattleBarStruct mov r1, r9 ldrb r0, [r1] adds r0, r4 ldrb r0, [r0] movs r1, 0 movs r2, 0 - bl heathbar_draw_hp + bl UpdateHpTextInHealthbox _0818C6B2: ldr r1, =gBattleBankFunc ldr r0, =gActiveBank @@ -5878,7 +5878,7 @@ _0818CD60: subs r4, 0x2 adds r3, r4 ldrb r3, [r3] - bl sub_80735DC + bl CreatePartyStatusSummarySprites ldr r2, =gUnknown_020244B4 ldrb r1, [r5] adds r1, r2 @@ -6003,7 +6003,7 @@ sub_818CE98: @ 818CE98 push {r4,lr} ldr r4, =gActiveBank ldrb r0, [r4] - bl sub_80A6A90 + bl AnimBankSpriteExists lsls r0, 24 cmp r0, 0 beq _0818CEDE diff --git a/asm/battle_controller_safari.s b/asm/battle_controller_safari.s index a45ae6cee..d7efd69fe 100644 --- a/asm/battle_controller_safari.s +++ b/asm/battle_controller_safari.s @@ -103,13 +103,13 @@ _0815942A: movs r1, 0x7 _0815942E: movs r2, 0 - bl EmitCmd_x21 + bl EmitCmd33 b _08159440 _08159436: movs r0, 0x1 movs r1, 0x8 movs r2, 0 - bl EmitCmd_x21 + bl EmitCmd33 _08159440: bl SafariBufferExecCompleted b _0815954E @@ -399,7 +399,7 @@ sub_8159698: @ 8159698 ldr r0, =gScriptItemId ldrh r1, [r0] movs r0, 0x1 - bl dp01_build_cmdbuf_x23_aa_0 + bl EmitCmd35 bl SafariBufferExecCompleted _081596BE: pop {r0} diff --git a/asm/battle_controller_wally.s b/asm/battle_controller_wally.s index de17547a1..e1d92de0d 100644 --- a/asm/battle_controller_wally.s +++ b/asm/battle_controller_wally.s @@ -153,7 +153,7 @@ _081684CE: movs r1, 0x9 _081684E4: movs r2, 0 - bl EmitCmd_x21 + bl EmitCmd33 bl WallyBufferExecCompleted ldr r1, [r4] adds r1, 0x94 @@ -208,7 +208,7 @@ _08168540: movs r0, 0x1 movs r1, 0x1 movs r2, 0 - bl EmitCmd_x21 + bl EmitCmd33 bl WallyBufferExecCompleted _08168564: pop {r4,r5} @@ -311,7 +311,7 @@ sub_8168610: @ 8168610 ldr r0, =gScriptItemId ldrh r1, [r0] movs r0, 0x1 - bl dp01_build_cmdbuf_x23_aa_0 + bl EmitCmd35 bl WallyBufferExecCompleted _08168636: pop {r0} @@ -676,7 +676,7 @@ sub_8168934: @ 8168934 adds r0, r6 ldrb r0, [r0] movs r2, 0 - bl heathbar_draw_hp + bl UpdateHpTextInHealthbox b _08168996 .pool _0816897C: @@ -975,7 +975,7 @@ _08168BFA: lsrs r1, 16 movs r0, 0x1 mov r2, sp - bl dp01_build_cmdbuf_x1D_1D_numargs_varargs + bl EmitDataTransfer bl WallyBufferExecCompleted add sp, 0x100 pop {r4-r6} @@ -3316,13 +3316,13 @@ sub_816A144: @ 816A144 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 - ldr r5, =gUnknown_02038432 + ldr r5, =gAnimMoveTurn mov r1, r12 adds r1, 0x3 adds r2, r1 ldrb r1, [r2] strb r1, [r5] - ldr r4, =gMovePowerMoveAnim + ldr r4, =gAnimMovePower ldrb r2, [r6] lsls r2, 9 mov r1, r12 @@ -3336,7 +3336,7 @@ sub_816A144: @ 816A144 lsls r1, 8 orrs r3, r1 strh r3, [r4] - ldr r4, =gMoveDmgMoveAnim + ldr r4, =gAnimMoveDmg ldrb r2, [r6] lsls r2, 9 mov r1, r12 @@ -3362,7 +3362,7 @@ sub_816A144: @ 816A144 lsls r1, 24 orrs r3, r1 str r3, [r4] - ldr r3, =gHappinessMoveAnim + ldr r3, =gAnimFriendship ldrb r1, [r6] lsls r1, 9 mov r2, r12 @@ -3384,7 +3384,7 @@ sub_816A144: @ 816A144 lsls r1, 8 orrs r3, r1 strh r3, [r4] - ldr r3, =gDisableStructMoveAnim + ldr r3, =gAnimDisableStructPtr ldrb r2, [r6] lsls r2, 9 mov r1, r12 @@ -3505,7 +3505,7 @@ _0816A2F6: movs r0, 0 bl sub_805EB9C adds r0, r4, 0 - bl move_anim_start_t1 + bl DoMoveAnim ldr r0, [r7] ldrb r1, [r6] ldr r2, [r0, 0x4] @@ -3777,7 +3777,7 @@ _0816A550: lsls r2, 1 movs r0, 0x1 movs r1, 0xA - bl EmitCmd_x21 + bl EmitCmd33 bl WallyBufferExecCompleted _0816A574: pop {r4} @@ -3836,7 +3836,7 @@ sub_816A5D4: @ 816A5D4 push {r6,r7} sub sp, 0x4 movs r0, 0 - bl load_gfxc_health_bar + bl LoadBattleBarGfx ldr r3, =gBattleBufferA ldr r0, =gActiveBank mov r9, r0 @@ -3883,7 +3883,7 @@ sub_816A5D4: @ 816A5D4 ldrb r1, [r1] str r7, [sp] mov r2, r8 - bl sub_807294C + bl SetBattleBarStruct b _0816A69E .pool _0816A664: @@ -3905,14 +3905,14 @@ _0816A664: ldrb r1, [r1] str r7, [sp] movs r3, 0 - bl sub_807294C + bl SetBattleBarStruct mov r1, r9 ldrb r0, [r1] adds r0, r4 ldrb r0, [r0] movs r1, 0 movs r2, 0 - bl heathbar_draw_hp + bl UpdateHpTextInHealthbox _0816A69E: ldr r1, =gBattleBankFunc ldr r0, =gActiveBank @@ -4645,7 +4645,7 @@ _0816ACA8: subs r3, 0x2 adds r4, r3 ldrb r3, [r4] - bl sub_80735DC + bl CreatePartyStatusSummarySprites ldr r2, =gUnknown_020244B4 ldrb r1, [r5] adds r1, r2 diff --git a/asm/battle_interface.s b/asm/battle_interface.s deleted file mode 100755 index 1f1185032..000000000 --- a/asm/battle_interface.s +++ /dev/null @@ -1,5734 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_8072304 -sub_8072304: @ 8072304 - movs r0, 0x9 - bx lr - thumb_func_end sub_8072304 - - thumb_func_start sub_8072308 -sub_8072308: @ 8072308 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r7, r1, 0 - lsls r0, 16 - lsrs r5, r0, 16 - lsls r2, 24 - lsrs r2, 24 - mov r10, r2 - movs r3, 0 - movs r2, 0 -_08072324: - lsls r0, r3, 24 - asrs r0, 24 - mov r3, sp - adds r1, r3, r0 - strb r2, [r1] - adds r0, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - asrs r0, 24 - cmp r0, 0x3 - ble _08072324 - movs r3, 0x3 - movs r0, 0x1 - negs r0, r0 - mov r9, r0 - mov r8, sp -_08072344: - lsls r0, r5, 16 - asrs r6, r0, 16 - cmp r6, 0 - ble _08072372 - lsls r4, r3, 24 - asrs r4, 24 - mov r1, sp - adds r5, r1, r4 - adds r0, r6, 0 - movs r1, 0xA - bl __modsi3 - strb r0, [r5] - adds r0, r6, 0 - movs r1, 0xA - bl __divsi3 - lsls r0, 16 - lsrs r5, r0, 16 - subs r4, 0x1 - lsls r4, 24 - lsrs r3, r4, 24 - b _08072344 -_08072372: - lsls r1, r3, 24 - asrs r0, r1, 24 - cmp r0, r9 - ble _08072396 - movs r4, 0xFF - movs r3, 0x1 - negs r3, r3 -_08072380: - asrs r2, r1, 24 - mov r5, sp - adds r1, r5, r2 - ldrb r0, [r1] - orrs r0, r4 - strb r0, [r1] - subs r2, 0x1 - lsls r1, r2, 24 - asrs r0, r1, 24 - cmp r0, r3 - bgt _08072380 -_08072396: - mov r1, r8 - ldrb r0, [r1, 0x3] - cmp r0, 0xFF - bne _080723A2 - movs r0, 0 - strb r0, [r1, 0x3] -_080723A2: - mov r2, r10 - cmp r2, 0 - bne _08072432 - movs r3, 0 - movs r1, 0 - movs r6, 0xFC - lsls r6, 8 - movs r5, 0x1E - mov r12, r5 -_080723B4: - lsls r1, 24 - asrs r2, r1, 24 - mov r0, sp - adds r5, r0, r2 - ldrb r0, [r5] - mov r8, r1 - cmp r0, 0xFF - bne _080723EA - lsls r1, r2, 1 - adds r1, r7 - ldrh r2, [r1] - adds r0, r6, 0 - ands r0, r2 - mov r2, r12 - orrs r0, r2 - strh r0, [r1] - lsls r3, 24 - asrs r1, r3, 23 - adds r1, r7 - adds r1, 0x40 - ldrh r2, [r1] - adds r0, r6, 0 - ands r0, r2 - mov r5, r12 - orrs r0, r5 - strh r0, [r1] - b _0807241A -_080723EA: - lsls r2, 1 - adds r2, r7 - ldrh r0, [r2] - adds r1, r6, 0 - ands r1, r0 - ldrb r0, [r5] - adds r0, 0x14 - orrs r1, r0 - strh r1, [r2] - lsls r4, r3, 24 - asrs r3, r4, 24 - lsls r2, r3, 1 - adds r2, r7 - adds r2, 0x40 - ldrh r0, [r2] - adds r1, r6, 0 - ands r1, r0 - mov r5, sp - adds r0, r5, r3 - ldrb r0, [r0] - adds r0, 0x34 - orrs r1, r0 - strh r1, [r2] - adds r3, r4, 0 -_0807241A: - movs r0, 0x80 - lsls r0, 17 - add r0, r8 - lsrs r1, r0, 24 - movs r2, 0x80 - lsls r2, 17 - adds r0, r3, r2 - lsrs r3, r0, 24 - asrs r0, 24 - cmp r0, 0x3 - ble _080723B4 - b _08072496 -_08072432: - movs r3, 0 - movs r4, 0xFC - lsls r4, 8 - movs r6, 0x1E -_0807243A: - lsls r1, r3, 24 - asrs r2, r1, 24 - mov r3, sp - adds r5, r3, r2 - ldrb r0, [r5] - adds r3, r1, 0 - cmp r0, 0xFF - bne _08072466 - lsls r1, r2, 1 - adds r1, r7 - ldrh r2, [r1] - adds r0, r4, 0 - ands r0, r2 - orrs r0, r6 - strh r0, [r1] - adds r1, 0x40 - ldrh r2, [r1] - adds r0, r4, 0 - ands r0, r2 - orrs r0, r6 - strh r0, [r1] - b _08072488 -_08072466: - lsls r2, 1 - adds r2, r7 - ldrh r0, [r2] - adds r1, r4, 0 - ands r1, r0 - ldrb r0, [r5] - adds r0, 0x14 - orrs r1, r0 - strh r1, [r2] - adds r2, 0x40 - ldrh r0, [r2] - adds r1, r4, 0 - ands r1, r0 - ldrb r0, [r5] - adds r0, 0x34 - orrs r1, r0 - strh r1, [r2] -_08072488: - movs r5, 0x80 - lsls r5, 17 - adds r0, r3, r5 - lsrs r3, r0, 24 - asrs r0, 24 - cmp r0, 0x3 - ble _0807243A -_08072496: - 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 sub_8072308 - - thumb_func_start sub_80724A8 -sub_80724A8: @ 80724A8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r0, r1, 0 - adds r5, r2, 0 - lsls r4, 16 - lsrs r4, 16 - movs r1, 0x1E - strh r1, [r5, 0x8] - lsls r0, 16 - asrs r0, 16 - adds r1, r5, 0 - movs r2, 0 - bl sub_8072308 - lsls r4, 16 - asrs r4, 16 - adds r5, 0xA - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x1 - bl sub_8072308 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80724A8 - - thumb_func_start CreateBankHealthboxSprites -CreateBankHealthboxSprites: @ 80724DC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - movs r0, 0 - str r0, [sp] - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - bne _080725F0 - mov r0, r10 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _08072574 - ldr r4, =gUnknown_0832C140 - adds r0, r4, 0 - movs r1, 0xF0 - movs r2, 0xA0 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r4, 0 - movs r1, 0xF0 - movs r2, 0xA0 - movs r3, 0x1 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r7, r0, 24 - ldr r4, =gSprites - lsls r1, r6, 4 - adds r1, r6 - lsls r1, 2 - adds r1, r4 - ldrb r2, [r1, 0x1] - movs r3, 0x3F - adds r0, r3, 0 - ands r0, r2 - strb r0, [r1, 0x1] - lsls r2, r7, 4 - adds r2, r7 - lsls r2, 2 - adds r2, r4 - ldrb r0, [r2, 0x1] - ands r3, r0 - strb r3, [r2, 0x1] - ldrh r3, [r2, 0x4] - lsls r1, r3, 22 - lsrs r1, 22 - adds r1, 0x40 - ldr r4, =0x000003ff - adds r0, r4, 0 - ands r1, r0 - ldr r0, =0xfffffc00 - ands r0, r3 - orrs r0, r1 - strh r0, [r2, 0x4] - b _080725BA - .pool -_08072574: - ldr r4, =gUnknown_0832C170 - adds r0, r4, 0 - movs r1, 0xF0 - movs r2, 0xA0 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r4, 0 - movs r1, 0xF0 - movs r2, 0xA0 - movs r3, 0x1 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, =gSprites - lsls r2, r7, 4 - adds r2, r7 - lsls r2, 2 - adds r2, r0 - ldrh r3, [r2, 0x4] - lsls r1, r3, 22 - lsrs r1, 22 - adds r1, 0x20 - ldr r5, =0x000003ff - adds r0, r5, 0 - ands r1, r0 - ldr r0, =0xfffffc00 - ands r0, r3 - orrs r0, r1 - strh r0, [r2, 0x4] - movs r0, 0x2 - str r0, [sp] -_080725BA: - ldr r2, =gSprites - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - adds r0, r2 - strh r7, [r0, 0x6] - lsls r0, r7, 4 - adds r0, r7 - lsls r0, 2 - adds r1, r0, r2 - strh r6, [r1, 0x38] - adds r2, 0x1C - adds r0, r2 - ldr r1, =sub_8072924 - str r1, [r0] - b _08072718 - .pool -_080725F0: - mov r0, r10 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _08072694 - mov r0, r10 - bl GetBankIdentity - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 25 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - ldr r4, =gUnknown_0832C140 - adds r0, r4 - movs r1, 0xF0 - movs r2, 0xA0 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r6, r0, 24 - mov r0, r10 - bl GetBankIdentity - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 25 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - movs r1, 0xF0 - movs r2, 0xA0 - movs r3, 0x1 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r7, r0, 24 - ldr r4, =gSprites - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - adds r0, r4 - strh r7, [r0, 0x6] - lsls r2, r7, 4 - adds r2, r7 - lsls r2, 2 - adds r3, r2, r4 - strh r6, [r3, 0x38] - ldrh r1, [r3, 0x4] - mov r8, r1 - mov r5, r8 - lsls r1, r5, 22 - lsrs r1, 22 - adds r1, 0x20 - ldr r5, =0x000003ff - adds r0, r5, 0 - ands r1, r0 - ldr r0, =0xfffffc00 - mov r5, r8 - ands r0, r5 - orrs r0, r1 - strh r0, [r3, 0x4] - adds r4, 0x1C - adds r2, r4 - ldr r0, =sub_8072924 - str r0, [r2] - movs r0, 0x1 - b _08072716 - .pool -_08072694: - mov r0, r10 - bl GetBankIdentity - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 25 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - ldr r4, =gUnknown_0832C170 - adds r0, r4 - movs r1, 0xF0 - movs r2, 0xA0 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r6, r0, 24 - mov r0, r10 - bl GetBankIdentity - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 25 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - movs r1, 0xF0 - movs r2, 0xA0 - movs r3, 0x1 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r7, r0, 24 - ldr r4, =gSprites - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - adds r0, r4 - strh r7, [r0, 0x6] - lsls r2, r7, 4 - adds r2, r7 - lsls r2, 2 - adds r3, r2, r4 - strh r6, [r3, 0x38] - ldrh r1, [r3, 0x4] - mov r8, r1 - mov r5, r8 - lsls r1, r5, 22 - lsrs r1, 22 - adds r1, 0x20 - ldr r5, =0x000003ff - adds r0, r5, 0 - ands r1, r0 - ldr r0, =0xfffffc00 - mov r5, r8 - ands r0, r5 - orrs r0, r1 - strh r0, [r3, 0x4] - adds r4, 0x1C - adds r2, r4 - ldr r0, =sub_8072924 - str r0, [r2] - movs r0, 0x2 -_08072716: - str r0, [sp] -_08072718: - ldr r0, =gBanksBySide - add r0, r10 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - ldr r1, =gUnknown_0832C1C0 - adds r0, r1 - movs r1, 0x8C - movs r2, 0x3C - movs r3, 0 - bl CreateSpriteAtEnd - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 4 - adds r4, r5 - lsls r4, 2 - ldr r1, =gSprites - mov r8, r1 - add r4, r8 - mov r0, r10 - bl GetBankSide - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 21 - ldr r0, =gUnknown_0832C28C - adds r1, r0 - adds r0, r4, 0 - bl SetSubspriteTables - adds r2, r4, 0 - adds r2, 0x42 - ldrb r1, [r2] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r2, 0x4 - mov r9, r2 - mov r1, r9 - orrs r0, r1 - strb r0, [r4, 0x5] - movs r0, 0x1 - bl sub_80728A4 - ldrh r1, [r4, 0x4] - lsls r1, 22 - lsrs r1, 17 - ldr r2, =0x06010000 - adds r1, r2 - ldr r2, =0x04000010 - bl CpuSet - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - add r0, r8 - strh r5, [r0, 0x38] - mov r2, r10 - strh r2, [r0, 0x3A] - adds r0, 0x3E - ldrb r1, [r0] - mov r5, r9 - orrs r1, r5 - strb r1, [r0] - lsls r0, r7, 4 - adds r0, r7 - lsls r0, 2 - add r0, r8 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r5 - strb r1, [r0] - strh r6, [r4, 0x38] - mov r0, sp - ldrh r0, [r0] - strh r0, [r4, 0x3A] - adds r4, 0x3E - ldrb r0, [r4] - orrs r0, r5 - strb r0, [r4] - adds r0, r6, 0 - 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 CreateBankHealthboxSprites - - thumb_func_start CreateSafariPlayerHealthboxSprites -CreateSafariPlayerHealthboxSprites: @ 8072804 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r4, =gUnknown_0832C1A0 - adds r0, r4, 0 - movs r1, 0xF0 - movs r2, 0xA0 - movs r3, 0x1 - bl CreateSprite - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - adds r0, r4, 0 - movs r1, 0xF0 - movs r2, 0xA0 - movs r3, 0x1 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gSprites - mov r9, r1 - lsls r4, r6, 4 - adds r4, r6 - lsls r4, 2 - add r4, r9 - ldrb r3, [r4, 0x1] - movs r2, 0x3F - adds r1, r2, 0 - ands r1, r3 - strb r1, [r4, 0x1] - lsls r3, r0, 4 - adds r3, r0 - lsls r3, 2 - mov r7, r9 - adds r5, r3, r7 - ldrb r1, [r5, 0x1] - ands r2, r1 - strb r2, [r5, 0x1] - ldrh r1, [r5, 0x4] - mov r8, r1 - mov r7, r8 - lsls r2, r7, 22 - lsrs r2, 22 - adds r2, 0x40 - ldr r7, =0x000003ff - adds r1, r7, 0 - ands r2, r1 - ldr r1, =0xfffffc00 - mov r7, r8 - ands r1, r7 - orrs r1, r2 - strh r1, [r5, 0x4] - strh r0, [r4, 0x6] - strh r6, [r5, 0x38] - movs r0, 0x1C - add r9, r0 - add r3, r9 - ldr r0, =sub_8072924 - str r0, [r3] - adds r0, r6, 0 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end CreateSafariPlayerHealthboxSprites - - thumb_func_start sub_80728A4 -sub_80728A4: @ 80728A4 - lsls r0, 24 - lsrs r0, 19 - ldr r1, =gUnknown_08C11BDC - adds r0, r1 - bx lr - .pool - thumb_func_end sub_80728A4 - - thumb_func_start sub_80728B4 -sub_80728B4: @ 80728B4 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x38] - lsls r0, 24 - lsrs r5, r0, 24 - movs r1, 0x3A - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080728E4 - cmp r0, 0x1 - bgt _080728F8 - cmp r0, 0 - bne _080728F8 - ldr r2, =gSprites - lsls r3, r5, 4 - adds r1, r3, r5 - lsls r1, 2 - adds r1, r2 - ldrh r0, [r1, 0x20] - adds r0, 0x10 - b _08072906 - .pool -_080728E4: - ldr r2, =gSprites - lsls r3, r5, 4 - adds r1, r3, r5 - lsls r1, 2 - adds r1, r2 - ldrh r0, [r1, 0x20] - adds r0, 0x10 - b _08072906 - .pool -_080728F8: - ldr r2, =gSprites - lsls r3, r5, 4 - adds r1, r3, r5 - lsls r1, 2 - adds r1, r2 - ldrh r0, [r1, 0x20] - adds r0, 0x8 -_08072906: - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x22] - strh r0, [r4, 0x22] - adds r0, r3, r5 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x24] - strh r1, [r4, 0x24] - ldrh r0, [r0, 0x26] - strh r0, [r4, 0x26] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80728B4 - - thumb_func_start sub_8072924 -sub_8072924: @ 8072924 - ldrh r1, [r0, 0x38] - lsls r1, 24 - lsrs r1, 24 - ldr r3, =gSprites - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r3 - ldrh r1, [r2, 0x20] - adds r1, 0x40 - strh r1, [r0, 0x20] - ldrh r1, [r2, 0x22] - strh r1, [r0, 0x22] - ldrh r1, [r2, 0x24] - strh r1, [r0, 0x24] - ldrh r1, [r2, 0x26] - strh r1, [r0, 0x26] - bx lr - .pool - thumb_func_end sub_8072924 - - thumb_func_start sub_807294C -sub_807294C: @ 807294C - push {r4-r7,lr} - ldr r7, [sp, 0x14] - lsls r0, 24 - lsrs r0, 24 - ldr r6, =gBattleSpritesDataPtr - ldr r4, [r6] - ldr r5, [r4, 0xC] - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 2 - adds r5, r4, r5 - strb r1, [r5] - ldr r0, [r6] - ldr r0, [r0, 0xC] - adds r4, r0 - str r2, [r4, 0x4] - str r3, [r4, 0x8] - str r7, [r4, 0xC] - ldr r0, =0xffff8000 - str r0, [r4, 0x10] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_807294C - - thumb_func_start SetHealthboxSpriteInvisible -SetHealthboxSpriteInvisible: @ 8072984 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r4, =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r4 - adds r1, r2, 0 - adds r1, 0x3E - ldrb r0, [r1] - movs r3, 0x4 - orrs r0, r3 - strb r0, [r1] - movs r0, 0x38 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r3 - strb r1, [r0] - ldrh r1, [r2, 0x6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r3 - strb r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end SetHealthboxSpriteInvisible - - thumb_func_start SetHealthboxSpriteVisible -SetHealthboxSpriteVisible: @ 80729D0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r5 - adds r4, r2, 0 - adds r4, 0x3E - ldrb r1, [r4] - movs r3, 0x5 - negs r3, r3 - adds r0, r3, 0 - ands r0, r1 - strb r0, [r4] - movs r0, 0x38 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r4, [r0] - adds r1, r3, 0 - ands r1, r4 - strb r1, [r0] - ldrh r1, [r2, 0x6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - ands r3, r1 - strb r3, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end SetHealthboxSpriteVisible - - thumb_func_start sub_8072A24 -sub_8072A24: @ 8072A24 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r4, =gSprites - lsls r3, r0, 4 - adds r3, r0 - lsls r3, 2 - adds r3, r4 - strh r1, [r3, 0x20] - strh r2, [r3, 0x22] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8072A24 - - thumb_func_start sub_8072A44 -sub_8072A44: @ 8072A44 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, =gSprites - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - adds r4, r5 - ldrh r1, [r4, 0x6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - bl DestroySprite - movs r0, 0x38 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - bl DestroySprite - adds r0, r4, 0 - bl DestroySprite - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8072A44 - - thumb_func_start nullsub_30 -nullsub_30: @ 8072A84 - bx lr - thumb_func_end nullsub_30 - - thumb_func_start sub_8072A88 -sub_8072A88: @ 8072A88 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - movs r6, 0 - ldr r1, =gNoOfAllBanks - mov r8, r1 - ldrb r2, [r1] - cmp r6, r2 - bge _08072B00 - ldr r1, =gSprites - mov r12, r1 - movs r1, 0x3 - ands r0, r1 - lsls r5, r0, 2 - movs r7, 0xD - negs r7, r7 - ldr r2, =gHealthBoxesIds - mov r9, r2 -_08072AB2: - mov r1, r9 - adds r0, r6, r1 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r12 - ldrb r4, [r1, 0x6] - ldrh r3, [r1, 0x38] - lsls r3, 24 - lsrs r3, 24 - ldrb r2, [r1, 0x5] - adds r0, r7, 0 - ands r0, r2 - orrs r0, r5 - strb r0, [r1, 0x5] - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - add r1, r12 - ldrb r2, [r1, 0x5] - adds r0, r7, 0 - ands r0, r2 - orrs r0, r5 - strb r0, [r1, 0x5] - lsls r1, r3, 4 - adds r1, r3 - lsls r1, 2 - add r1, r12 - ldrb r2, [r1, 0x5] - adds r0, r7, 0 - ands r0, r2 - orrs r0, r5 - strb r0, [r1, 0x5] - adds r6, 0x1 - mov r2, r8 - ldrb r2, [r2] - cmp r6, r2 - blt _08072AB2 -_08072B00: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8072A88 - - thumb_func_start SetBankHealthboxSpritePos -SetBankHealthboxSpritePos: @ 8072B18 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 - movs r4, 0 - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - bne _08072B44 - adds r0, r6, 0 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _08072B3E - movs r5, 0x2C - movs r4, 0x1E - b _08072B7C -_08072B3E: - movs r5, 0x9E - movs r4, 0x58 - b _08072B7C -_08072B44: - adds r0, r6, 0 - bl GetBankIdentity - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08072B72 - cmp r0, 0x1 - bgt _08072B5C - cmp r0, 0 - beq _08072B66 - b _08072B7C -_08072B5C: - cmp r0, 0x2 - beq _08072B6C - cmp r0, 0x3 - beq _08072B78 - b _08072B7C -_08072B66: - movs r5, 0x9F - movs r4, 0x4C - b _08072B7C -_08072B6C: - movs r5, 0xAB - movs r4, 0x65 - b _08072B7C -_08072B72: - movs r5, 0x2C - movs r4, 0x13 - b _08072B7C -_08072B78: - movs r5, 0x20 - movs r4, 0x2C -_08072B7C: - ldr r0, =gHealthBoxesIds - adds r0, r6, r0 - ldrb r0, [r0] - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_8072A24 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end SetBankHealthboxSpritePos - - thumb_func_start healthbar_draw_level -healthbar_draw_level: @ 8072B94 - push {r4,r5,lr} - sub sp, 0x18 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r1, 24 - lsrs r1, 24 - add r2, sp, 0x4 - movs r0, 0xF9 - strb r0, [r2] - movs r0, 0x5 - strb r0, [r2, 0x1] - mov r0, sp - adds r0, 0x6 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r1, r0, 0 - subs r1, 0x2 - add r0, sp, 0x4 - subs r1, r0 - movs r0, 0x3 - subs r0, r1 - lsls r1, r0, 2 - adds r1, r0 - add r0, sp, 0x14 - str r0, [sp] - add r0, sp, 0x4 - movs r2, 0x3 - movs r3, 0x2 - bl write_to_rbox - adds r5, r0, 0 - ldr r0, =gSprites - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1, 0x4] - lsls r0, 22 - lsrs r4, r0, 17 - ldrh r0, [r1, 0x3A] - lsls r0, 24 - lsrs r0, 24 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _08072C18 - bl IsDoubleBattle - lsls r0, 24 - ldr r2, =0x06010420 - adds r1, r4, r2 - cmp r0, 0 - bne _08072C1C - ldr r0, =0x06010820 - adds r1, r4, r0 - b _08072C1C - .pool -_08072C18: - ldr r2, =0x06010400 - adds r1, r4, r2 -_08072C1C: - adds r0, r1, 0 - adds r1, r5, 0 - movs r2, 0x3 - bl sub_8075198 - ldr r0, [sp, 0x14] - bl sub_807512C - add sp, 0x18 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end healthbar_draw_level - - thumb_func_start heathbar_draw_hp -heathbar_draw_hp: @ 8072C38 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x28 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - ldr r1, =gSprites - lsls r0, r7, 4 - adds r0, r7 - lsls r0, 2 - adds r4, r0, r1 - ldrh r0, [r4, 0x3A] - lsls r0, 24 - lsrs r0, 24 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _08072D10 - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - bne _08072D10 - ldrh r0, [r4, 0x4] - lsls r0, 22 - lsrs r5, r0, 17 - mov r0, r8 - cmp r0, 0 - beq _08072CB8 - mov r2, r9 - lsls r1, r2, 16 - asrs r1, 16 - add r0, sp, 0x4 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - add r0, sp, 0x24 - str r0, [sp] - add r0, sp, 0x4 - movs r1, 0 - movs r2, 0x5 - movs r3, 0x2 - bl write_to_rbox - adds r4, r0, 0 - ldr r1, =0x06010b40 - adds r0, r5, r1 - adds r1, r4, 0 - b _08072CF8 - .pool -_08072CB8: - mov r2, r9 - lsls r1, r2, 16 - asrs r1, 16 - add r0, sp, 0x4 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - add r1, sp, 0x4 - movs r0, 0xBA - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - add r0, sp, 0x24 - str r0, [sp] - adds r0, r1, 0 - movs r1, 0x4 - movs r2, 0x5 - movs r3, 0x2 - bl write_to_rbox - adds r4, r0, 0 - ldr r1, =0x060103e0 - adds r0, r5, r1 - adds r1, r4, 0 - movs r2, 0x1 - bl sub_8075170 - ldr r2, =0x06010b00 - adds r0, r5, r2 - adds r1, r4, 0 - adds r1, 0x20 -_08072CF8: - movs r2, 0x2 - bl sub_8075170 - ldr r0, [sp, 0x24] - bl sub_807512C - b _08072DEA - .pool -_08072D10: - ldr r1, =gUnknown_0832C3C4 - add r0, sp, 0x4 - movs r2, 0x14 - bl memcpy - ldr r1, =gSprites - lsls r4, r7, 4 - adds r0, r4, r7 - lsls r0, 2 - adds r6, r0, r1 - ldrh r0, [r6, 0x3A] - lsls r0, 24 - lsrs r5, r0, 24 - bl IsDoubleBattle - lsls r0, 24 - lsrs r0, 24 - mov r10, r4 - cmp r0, 0x1 - beq _08072D46 - adds r0, r5, 0 - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08072D60 -_08072D46: - mov r0, r9 - lsls r1, r0, 16 - asrs r1, 16 - adds r0, r7, 0 - mov r2, r8 - bl sub_8072E0C - b _08072DEA - .pool -_08072D60: - ldrh r0, [r6, 0x3A] - lsls r0, 24 - lsrs r0, 24 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _08072D7C - movs r6, 0x59 - mov r1, r8 - cmp r1, 0 - bne _08072D86 - movs r6, 0x1D - b _08072D86 -_08072D7C: - movs r6, 0x30 - mov r2, r8 - cmp r2, 0 - bne _08072D86 - movs r6, 0x14 -_08072D86: - mov r0, sp - adds r0, 0xA - mov r2, r9 - lsls r1, r2, 16 - asrs r1, 16 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r0, =gMonSpritesGfxPtr - ldr r0, [r0] - movs r1, 0xBA - lsls r1, 1 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x9 - add r2, sp, 0x4 - bl RenderTextFont9 - movs r4, 0 - ldr r1, =gSprites - mov r2, r10 - adds r0, r2, r7 - lsls r0, 2 - adds r5, r0, r1 -_08072DB8: - ldr r0, =gMonSpritesGfxPtr - ldr r0, [r0] - movs r1, 0xBA - lsls r1, 1 - adds r0, r1 - lsls r1, r4, 6 - adds r1, 0x20 - ldr r0, [r0] - adds r0, r1 - ldrh r1, [r5, 0x4] - lsls r1, 22 - lsrs r1, 22 - adds r1, r6 - adds r1, r4 - lsls r1, 5 - ldr r2, =0x06010000 - adds r1, r2 - ldr r2, =0x04000008 - bl CpuSet - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _08072DB8 -_08072DEA: - 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 heathbar_draw_hp - - thumb_func_start sub_8072E0C -sub_8072E0C: @ 8072E0C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x30 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r1, 16 - lsrs r4, r1, 16 - mov r10, r4 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - ldr r5, =gSprites - lsls r0, 4 - add r0, r9 - lsls r0, 2 - adds r7, r0, r5 - ldrh r0, [r7, 0x3A] - lsls r0, 24 - lsrs r0, 24 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _08072F28 - ldr r0, =gBattleSpritesDataPtr - ldr r1, [r0] - movs r2, 0x3A - ldrsh r0, [r7, r2] - ldr r1, [r1] - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _08072E5E - b _080730B8 -_08072E5E: - movs r3, 0x38 - ldrsh r1, [r7, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrh r0, [r0, 0x4] - lsls r0, 22 - lsrs r5, r0, 17 - ldr r0, =0x06010000 - adds r6, r5, r0 - mov r0, r8 - cmp r0, 0 - beq _08072EDC - lsls r1, r4, 16 - asrs r1, 16 - add r0, sp, 0x4 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - add r0, sp, 0x28 - str r0, [sp] - add r0, sp, 0x4 - movs r1, 0 - movs r2, 0x5 - movs r3, 0 - bl write_to_rbox - adds r4, r0, 0 - ldr r1, =0x060100c0 - adds r0, r5, r1 - adds r1, r4, 0 - movs r2, 0x2 - bl sub_8075170 - ldr r0, [sp, 0x28] - bl sub_807512C - movs r0, 0x74 - bl sub_80728A4 - ldrh r1, [r7, 0x4] - lsls r1, 22 - lsrs r1, 17 - ldr r2, =0x06010680 - adds r1, r2 - ldr r2, =0x04000008 - bl CpuSet - b _080730B8 - .pool -_08072EDC: - lsls r1, r4, 16 - asrs r1, 16 - add r0, sp, 0x4 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - add r1, sp, 0x4 - movs r0, 0xBA - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - add r0, sp, 0x28 - str r0, [sp] - adds r0, r1, 0 - movs r1, 0x4 - movs r2, 0x5 - movs r3, 0 - bl write_to_rbox - adds r4, r0, 0 - adds r0, r6, 0 - movs r1, 0 - movs r2, 0x3 - bl sub_807513C - ldr r3, =0x06010060 - adds r0, r5, r3 - adds r1, r4, 0 - movs r2, 0x3 - bl sub_8075170 - ldr r0, [sp, 0x28] - bl sub_807512C - b _080730B8 - .pool -_08072F28: - ldr r1, =gUnknown_0832C3D8 - add r0, sp, 0x4 - movs r2, 0x14 - bl memcpy - ldrh r0, [r7, 0x3A] - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x2C] - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r1, [r0] - ldr r2, [sp, 0x2C] - lsls r0, r2, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _08072F52 - b _080730B8 -_08072F52: - movs r6, 0x4 - mov r3, r8 - negs r0, r3 - orrs r0, r3 - asrs r0, 31 - ands r6, r0 - ldrh r0, [r7, 0x38] - lsls r0, 24 - lsrs r7, r0, 24 - mov r0, sp - adds r0, 0xA - mov r2, r10 - lsls r1, r2, 16 - asrs r1, 16 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - mov r3, r8 - cmp r3, 0 - bne _08072F82 - ldr r1, =gText_Slash - bl StringCopy -_08072F82: - ldr r0, =gMonSpritesGfxPtr - ldr r0, [r0] - movs r1, 0xBA - lsls r1, 1 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x9 - add r2, sp, 0x4 - bl RenderTextFont9 - adds r4, r6, 0 - adds r0, r4, 0x3 - cmp r4, r0 - bge _08073024 - lsls r0, r7, 4 - adds r0, r7 - lsls r0, 2 - adds r5, r0, r5 -_08072FA6: - cmp r4, 0x2 - bhi _08072FF0 - ldr r0, =gMonSpritesGfxPtr - ldr r0, [r0] - movs r2, 0xBA - lsls r2, 1 - adds r0, r2 - subs r1, r4, r6 - lsls r1, 6 - adds r1, 0x20 - ldr r0, [r0] - adds r0, r1 - ldrh r1, [r5, 0x4] - lsls r1, 22 - lsrs r1, 22 - adds r4, 0x1 - adds r1, r4 - lsls r1, 5 - ldr r3, =0x06010000 - adds r1, r3 - ldr r2, =0x04000008 - bl CpuSet - b _0807301A - .pool -_08072FF0: - ldr r0, =gMonSpritesGfxPtr - ldr r0, [r0] - movs r1, 0xBA - lsls r1, 1 - adds r0, r1 - subs r1, r4, r6 - lsls r1, 6 - adds r1, 0x20 - ldr r0, [r0] - adds r0, r1 - ldrh r1, [r5, 0x4] - lsls r1, 22 - lsrs r1, 22 - adds r1, r4, r1 - lsls r1, 5 - ldr r2, =0x06010020 - adds r1, r2 - ldr r2, =0x04000008 - bl CpuSet - adds r4, 0x1 -_0807301A: - lsls r0, r4, 24 - lsrs r4, r0, 24 - adds r0, r6, 0x3 - cmp r4, r0 - blt _08072FA6 -_08073024: - mov r3, r8 - cmp r3, 0 - bne _08073084 - ldr r0, =gMonSpritesGfxPtr - ldr r0, [r0] - movs r1, 0xBA - lsls r1, 1 - adds r0, r1 - ldr r0, [r0] - adds r0, 0xE0 - ldr r1, =gSprites - lsls r4, r7, 4 - adds r4, r7 - lsls r4, 2 - adds r4, r1 - ldrh r1, [r4, 0x4] - lsls r1, 22 - lsrs r1, 17 - adds r1, 0x80 - ldr r5, =0x06010000 - adds r1, r5 - ldr r2, =0x04000008 - bl CpuSet - mov r2, r8 - str r2, [sp, 0x24] - add r0, sp, 0x24 - ldrh r1, [r4, 0x4] - lsls r1, 22 - lsrs r1, 17 - adds r1, r5 - ldr r2, =0x05000008 - bl CpuSet - b _080730B8 - .pool -_08073084: - ldr r0, [sp, 0x2C] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _080730B8 - movs r0, 0x74 - bl sub_80728A4 - ldr r2, =gSprites - mov r3, r9 - lsls r1, r3, 4 - add r1, r9 - lsls r1, 2 - adds r1, r2 - ldrh r1, [r1, 0x4] - lsls r1, 22 - lsrs r1, 17 - movs r2, 0xD0 - lsls r2, 3 - adds r1, r2 - ldr r2, =0x06010000 - adds r1, r2 - ldr r2, =0x04000008 - bl CpuSet -_080730B8: - add sp, 0x30 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8072E0C - - thumb_func_start sub_80730D4 -sub_80730D4: @ 80730D4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x14] - ldr r1, =gUnknown_0832C3C4 - mov r0, sp - movs r2, 0x14 - bl memcpy - ldr r1, =gSprites - ldr r2, [sp, 0x14] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0, 0x3A] - lsls r0, 24 - lsrs r0, 24 - bl GetBankIdentity - ldr r1, =gMonSpritesGfxPtr - ldr r2, [r1] - movs r3, 0xBA - lsls r3, 1 - adds r2, r3 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 7 - movs r0, 0xA4 - lsls r0, 3 - adds r1, r0 - ldr r0, [r2] - adds r6, r0, r1 - movs r1, 0x5 - mov r8, r1 - adds r0, r4, 0 - bl GetNature - lsls r0, 24 - mov r4, sp - adds r4, 0x6 - ldr r1, =gNatureNamePointers - lsrs r0, 22 - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - bl StringCopy - adds r0, r6, 0 - movs r1, 0x9 - mov r2, sp - bl RenderTextFont9 - movs r7, 0x6 - movs r5, 0 - mov r2, sp - adds r2, 0x9 - str r2, [sp, 0x1C] -_08073158: - mov r3, sp - adds r0, r3, r7 - ldrb r1, [r0] - adds r0, r1, 0 - subs r0, 0x37 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x13 - bls _08073176 - adds r0, r1, 0 - adds r0, 0x79 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x13 - bhi _0807318C -_08073176: - movs r0, 0x2C - b _080731AA - .pool -_0807318C: - adds r0, r1, 0 - subs r0, 0x4B - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bls _080731A4 - adds r0, r1, 0 - adds r0, 0x65 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080731A8 -_080731A4: - movs r0, 0x2D - b _080731AA -_080731A8: - movs r0, 0x2B -_080731AA: - bl sub_80728A4 - lsls r1, r5, 6 - adds r1, r6, r1 - ldr r2, =0x04000008 - bl CpuSet - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - adds r7, 0x1 - cmp r5, r8 - bcc _08073158 - movs r7, 0x1 - ldr r0, [sp, 0x14] - lsls r0, 4 - str r0, [sp, 0x18] - movs r1, 0x1 - add r1, r8 - mov r9, r1 - cmp r7, r9 - bge _08073236 - ldr r1, =gSprites - ldr r2, =0x04000008 - mov r10, r2 - ldr r3, [sp, 0x14] - adds r0, r3 - lsls r0, 2 - adds r0, r1 - mov r8, r0 -_080731E6: - mov r1, r8 - ldrh r0, [r1, 0x4] - lsls r0, 22 - lsrs r0, 22 - adds r5, r7, 0 - cmp r7, 0 - bge _080731F6 - adds r5, r7, 0x7 -_080731F6: - asrs r5, 3 - lsls r4, r5, 3 - subs r4, r7, r4 - adds r0, r4 - lsls r5, 6 - adds r0, r5 - lsls r0, 5 - ldr r2, =0x06010000 - adds r1, r0, r2 - adds r0, r6, 0 - mov r2, r10 - bl CpuSet - adds r6, 0x20 - mov r3, r8 - ldrh r0, [r3, 0x4] - lsls r0, 22 - lsrs r0, 22 - adds r4, 0x8 - adds r0, r4 - adds r0, r5 - lsls r0, 5 - ldr r2, =0x06010000 - adds r1, r0, r2 - adds r0, r6, 0 - mov r2, r10 - bl CpuSet - adds r6, 0x20 - adds r7, 0x1 - cmp r7, r9 - blt _080731E6 -_08073236: - ldr r6, =gSprites - ldr r3, [sp, 0x18] - ldr r1, [sp, 0x14] - adds r0, r3, r1 - lsls r0, 2 - adds r0, r6 - ldrh r4, [r0, 0x38] - lsls r4, 24 - lsrs r4, 24 - ldr r5, =gBattleStruct - ldr r0, [r5] - adds r0, 0x7C - ldrb r1, [r0] - mov r0, sp - adds r0, 0x6 - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, [r5] - adds r0, 0x7B - ldrb r1, [r0] - ldr r0, [sp, 0x1C] - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - mov r1, sp - movs r0, 0 - strb r0, [r1, 0x5] - movs r0, 0xBA - strb r0, [r1, 0x8] - ldr r5, =gMonSpritesGfxPtr - ldr r0, [r5] - movs r2, 0xBA - lsls r2, 1 - adds r0, r2 - ldr r0, [r0] - movs r1, 0x9 - mov r2, sp - bl RenderTextFont9 - movs r7, 0 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r6, r0, r6 - movs r4, 0x20 -_08073296: - cmp r7, 0x1 - bgt _080732D4 - ldr r0, [r5] - movs r3, 0xBA - lsls r3, 1 - adds r0, r3 - ldr r0, [r0] - adds r0, r4 - ldrh r1, [r6, 0x4] - lsls r1, 22 - lsrs r1, 22 - adds r2, r7, 0x2 - adds r1, r2 - lsls r1, 5 - ldr r2, =0x06010000 - adds r1, r2 - ldr r2, =0x04000008 - bl CpuSet - b _080732F4 - .pool -_080732D4: - ldr r0, [r5] - movs r3, 0xBA - lsls r3, 1 - adds r0, r3 - ldr r0, [r0] - adds r0, r4 - ldrh r1, [r6, 0x4] - lsls r1, 22 - lsrs r1, 22 - adds r1, r7, r1 - lsls r1, 5 - ldr r2, =0x060100c0 - adds r1, r2 - ldr r2, =0x04000008 - bl CpuSet -_080732F4: - adds r4, 0x40 - adds r7, 0x1 - cmp r7, 0x4 - ble _08073296 - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80730D4 - - thumb_func_start sub_8073314 -sub_8073314: @ 8073314 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - movs r0, 0 - mov r9, r0 - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r9, r0 - blt _0807332E - b _080735BA -_0807332E: - ldr r1, =gSprites - mov r10, r1 - ldr r2, =gBattlePartyID - mov r8, r2 -_08073336: - ldr r0, =gHealthBoxesIds - mov r1, r9 - adds r6, r1, r0 - ldrb r1, [r6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - mov r1, r10 - adds r1, 0x1C - adds r0, r1 - ldr r1, [r0] - ldr r0, =SpriteCallbackDummy - cmp r1, r0 - beq _08073354 - b _080735A8 -_08073354: - mov r2, r9 - lsls r0, r2, 24 - lsrs r7, r0, 24 - adds r0, r7, 0 - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0807336A - b _080735A8 -_0807336A: - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - bne _08073382 - adds r0, r7, 0 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _08073382 - b _080735A8 -_08073382: - ldr r5, =gBattleSpritesDataPtr - ldr r0, [r5] - ldr r3, [r0] - mov r0, r9 - lsls r4, r0, 2 - adds r3, r4, r3 - ldr r0, [r3] - lsls r0, 27 - lsrs r0, 31 - movs r2, 0x1 - eors r2, r0 - lsls r2, 4 - mov r12, r2 - ldrb r0, [r3] - movs r2, 0x11 - negs r2, r2 - adds r1, r2, 0 - ands r0, r1 - mov r1, r12 - orrs r0, r1 - strb r0, [r3] - ldr r0, [r5] - ldr r0, [r0] - adds r4, r0 - ldr r0, [r4] - lsls r0, 27 - lsrs r4, r0, 31 - adds r0, r7, 0 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _080734B0 - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - bne _080733D0 - b _080735A8 -_080733D0: - ldr r0, =gBattleTypeFlags - ldr r2, [r0] - movs r0, 0x80 - ands r2, r0 - cmp r2, 0 - beq _080733DE - b _080735A8 -_080733DE: - cmp r4, 0x1 - bne _08073468 - ldrb r1, [r6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r10 - ldrh r0, [r0, 0x38] - lsls r0, 24 - lsrs r1, r0, 24 - str r2, [sp] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r10 - ldrh r1, [r0, 0x4] - lsls r1, 22 - lsrs r1, 17 - ldr r2, =0x06010000 - adds r1, r2 - mov r0, sp - ldr r2, =0x05000040 - bl CpuSet - ldrb r4, [r6] - mov r1, r8 - ldrh r0, [r1] - movs r2, 0x64 - muls r0, r2 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x39 - bl GetMonData - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - movs r2, 0 - bl sub_8072E0C - ldrb r4, [r6] - mov r2, r8 - ldrh r0, [r2] - movs r1, 0x64 - muls r0, r1 - ldr r2, =gPlayerParty - b _08073536 - .pool -_08073468: - ldrb r0, [r6] - bl draw_status_ailment_maybe - ldrb r0, [r6] - mov r2, r8 - ldrh r1, [r2] - movs r2, 0x64 - muls r1, r2 - ldr r2, =gPlayerParty - adds r1, r2 - movs r2, 0x5 - bl UpdateHealthboxAttribute - movs r0, 0x75 - bl sub_80728A4 - ldrb r2, [r6] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - add r1, r10 - ldrh r1, [r1, 0x4] - lsls r1, 22 - lsrs r1, 17 - ldr r2, =0x06010680 - adds r1, r2 - ldr r2, =0x04000008 - bl CpuSet - b _08073592 - .pool -_080734B0: - cmp r4, 0x1 - bne _0807355C - ldr r0, =gBattleTypeFlags - ldr r2, [r0] - movs r0, 0x80 - ands r2, r0 - cmp r2, 0 - beq _080734DC - ldrb r0, [r6] - mov r2, r8 - ldrh r1, [r2] - movs r2, 0x64 - muls r1, r2 - ldr r2, =gEnemyParty - adds r1, r2 - bl sub_80730D4 - b _08073592 - .pool -_080734DC: - ldrb r1, [r6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r10 - ldrh r0, [r0, 0x38] - lsls r0, 24 - lsrs r1, r0, 24 - str r2, [sp] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r10 - ldrh r1, [r0, 0x4] - lsls r1, 22 - lsrs r1, 17 - ldr r0, =0x06010000 - adds r1, r0 - mov r0, sp - ldr r2, =0x05000040 - bl CpuSet - ldrb r4, [r6] - mov r1, r8 - ldrh r0, [r1] - movs r2, 0x64 - muls r0, r2 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x39 - bl GetMonData - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - movs r2, 0 - bl sub_8072E0C - ldrb r4, [r6] - mov r2, r8 - ldrh r0, [r2] - movs r1, 0x64 - muls r0, r1 - ldr r2, =gEnemyParty -_08073536: - adds r0, r2 - movs r1, 0x3A - bl GetMonData - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - movs r2, 0x1 - bl sub_8072E0C - b _08073592 - .pool -_0807355C: - ldrb r0, [r6] - bl draw_status_ailment_maybe - ldrb r0, [r6] - mov r2, r8 - ldrh r1, [r2] - movs r5, 0x64 - muls r1, r5 - ldr r4, =gEnemyParty - adds r1, r4 - movs r2, 0x5 - bl UpdateHealthboxAttribute - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08073592 - ldrb r0, [r6] - mov r2, r8 - ldrh r1, [r2] - muls r1, r5 - adds r1, r4 - movs r2, 0x4 - bl UpdateHealthboxAttribute -_08073592: - ldr r0, =gHealthBoxesIds - add r0, r9 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r10 - ldrh r1, [r0, 0x3C] - movs r2, 0x1 - eors r1, r2 - strh r1, [r0, 0x3C] -_080735A8: - movs r0, 0x2 - add r8, r0 - movs r1, 0x1 - add r9, r1 - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r9, r0 - bge _080735BA - b _08073336 -_080735BA: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8073314 - - thumb_func_start sub_80735DC -sub_80735DC: @ 80735DC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - str r1, [sp, 0xC] - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x8] - lsls r2, 24 - lsrs r2, 24 - adds r4, r2, 0 - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0x10] - cmp r4, 0 - beq _0807360C - bl GetBankIdentity - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - beq _0807365C -_0807360C: - ldr r0, [sp, 0x8] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _08073630 - movs r0, 0 - mov r9, r0 - movs r5, 0x88 - movs r4, 0x60 - movs r1, 0x64 - mov r10, r1 - ldr r2, =0x0000fffb - mov r8, r2 - b _0807366C - .pool -_08073630: - movs r3, 0x1 - mov r9, r3 - cmp r4, 0 - beq _08073642 - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - bne _08073648 -_08073642: - movs r5, 0x68 - movs r4, 0x28 - b _0807364C -_08073648: - movs r5, 0x68 - movs r4, 0x10 -_0807364C: - ldr r6, =0x0000ff9c - mov r10, r6 - movs r0, 0x5 - mov r8, r0 - b _0807366C - .pool -_0807365C: - movs r1, 0x1 - mov r9, r1 - movs r5, 0x68 - movs r4, 0x28 - ldr r2, =0x0000ff9c - mov r10, r2 - movs r3, 0x5 - mov r8, r3 -_0807366C: - ldr r0, =gUnknown_0832C334 - bl LoadCompressedObjectPicUsingHeap - ldr r0, =gUnknown_0832C34C - bl LoadSpriteSheet - ldr r0, =gUnknown_0832C33C - bl LoadSpritePalette - ldr r0, =gUnknown_0832C344 - bl LoadSpritePalette - mov r0, r9 - lsls r6, r0, 1 - adds r0, r6, r0 - lsls r0, 3 - ldr r1, =gUnknown_0832C364 - adds r0, r1 - lsls r5, 16 - asrs r1, r5, 16 - lsls r4, 16 - asrs r2, r4, 16 - movs r3, 0xA - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x14] - lsls r0, 4 - ldr r1, [sp, 0x14] - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r7, r0, r1 - ldr r1, =gUnknown_0832C2C4 - adds r0, r7, 0 - bl SetSubspriteTables - mov r2, r10 - strh r2, [r7, 0x24] - mov r3, r8 - strh r3, [r7, 0x2E] - str r5, [sp, 0x1C] - str r4, [sp, 0x20] - mov r5, r9 - cmp r5, 0 - beq _08073700 - ldrh r0, [r7, 0x20] - subs r0, 0x60 - strh r0, [r7, 0x20] - ldrb r1, [r7, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - movs r1, 0x10 - orrs r0, r1 - strb r0, [r7, 0x3] - b _08073706 - .pool -_08073700: - ldrh r0, [r7, 0x20] - adds r0, 0x60 - strh r0, [r7, 0x20] -_08073706: - movs r0, 0 - mov r8, r0 - ldr r1, =gSprites - mov r10, r1 - mov r7, sp - mov r2, r9 - adds r0, r6, r2 - lsls r0, 3 - str r0, [sp, 0x18] - movs r6, 0xA - movs r5, 0 -_0807371C: - ldr r0, =gUnknown_0832C394 - ldr r3, [sp, 0x20] - ldr r1, =0xfffc0000 - adds r2, r3, r1 - ldr r3, [sp, 0x18] - adds r0, r3, r0 - ldr r3, [sp, 0x1C] - asrs r1, r3, 16 - asrs r2, 16 - movs r3, 0x9 - bl CreateSpriteAtEnd - strb r0, [r7] - ldr r0, [sp, 0x10] - cmp r0, 0 - bne _0807374C - ldrb r0, [r7] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r2, =gSprites + 0x1C - adds r1, r2 - ldr r0, =sub_80741C8 - str r0, [r1] -_0807374C: - ldr r4, =gSprites - mov r3, r9 - cmp r3, 0 - bne _0807376E - ldrb r1, [r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r10 - strh r3, [r0, 0x24] - ldrb r1, [r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r10 - mov r1, r9 - strh r1, [r0, 0x26] -_0807376E: - ldrb r1, [r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0 - mov r2, sp - ldrh r2, [r2, 0x14] - strh r2, [r0, 0x2E] - mov r3, r9 - cmp r3, 0 - bne _080737C8 - ldrb r0, [r7] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrh r0, [r1, 0x20] - adds r0, 0x18 - adds r0, r5 - strh r0, [r1, 0x20] - ldrb r1, [r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r6, [r0, 0x30] - ldrb r1, [r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x78 - b _0807380A - .pool -_080737C8: - ldrb r0, [r7] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r4 - ldrh r3, [r2, 0x20] - subs r3, 0x18 - movs r1, 0x5 - mov r0, r8 - subs r1, r0 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 1 - subs r3, r0 - strh r3, [r2, 0x20] - ldrb r0, [r7] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r4 - movs r1, 0x6 - mov r3, r8 - subs r1, r3 - lsls r0, r1, 3 - subs r0, r1 - adds r0, 0xA - strh r0, [r2, 0x30] - ldrb r1, [r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, =0x0000ff88 -_0807380A: - strh r1, [r0, 0x24] - ldrb r1, [r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - mov r1, r9 - strh r1, [r0, 0x32] - adds r7, 0x1 - adds r6, 0x7 - adds r5, 0xA - movs r2, 0x1 - add r8, r2 - mov r3, r8 - cmp r3, 0x5 - bgt _0807382C - b _0807371C -_0807382C: - ldr r0, [sp, 0x8] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _0807383A - b _080739E8 -_0807383A: - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r2, 0x40 - ands r1, r2 - cmp r1, 0 - beq _080738F4 - ldr r5, =0x0000ffff - mov r10, r5 - ldr r6, =gSprites - ldr r0, =0x000003ff - adds r7, r0, 0 - ldr r1, =0xfffffc00 - mov r9, r1 - mov r4, sp - ldr r5, [sp, 0xC] - movs r2, 0x5 - mov r8, r2 -_0807385C: - ldrh r0, [r5] - cmp r0, r10 - bne _080738A8 - ldrb r0, [r4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r6 - ldrh r3, [r2, 0x4] - lsls r1, r3, 22 - lsrs r1, 22 - adds r1, 0x1 - ands r1, r7 - mov r0, r9 - ands r0, r3 - orrs r0, r1 - strh r0, [r2, 0x4] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x1 - strh r1, [r0, 0x3C] - b _080738E2 - .pool -_080738A8: - cmp r0, 0 - bne _080738C0 - ldrb r0, [r4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r6 - ldrh r3, [r2, 0x4] - lsls r1, r3, 22 - lsrs r1, 22 - adds r1, 0x3 - b _080738D8 -_080738C0: - ldr r0, [r5, 0x4] - cmp r0, 0 - beq _080738E2 - ldrb r0, [r4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r6 - ldrh r3, [r2, 0x4] - lsls r1, r3, 22 - lsrs r1, 22 - adds r1, 0x2 -_080738D8: - ands r1, r7 - mov r0, r9 - ands r0, r3 - orrs r0, r1 - strh r0, [r2, 0x4] -_080738E2: - adds r4, 0x1 - adds r5, 0x8 - movs r3, 0x1 - negs r3, r3 - add r8, r3 - mov r0, r8 - cmp r0, 0 - bge _0807385C - b _08073B9A -_080738F4: - movs r1, 0x5 - mov r10, r1 - movs r7, 0 - ldr r2, =gSprites - mov r8, r2 - ldr r3, =0x000003ff - mov r9, r3 - ldr r5, =0xfffffc00 - mov r12, r5 - ldr r6, [sp, 0xC] - mov r5, sp -_0807390A: - ldrh r0, [r6] - ldr r1, =0x0000ffff - cmp r0, r1 - bne _08073958 - mov r4, sp - add r4, r10 - ldrb r0, [r4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - add r2, r8 - ldrh r3, [r2, 0x4] - lsls r1, r3, 22 - lsrs r1, 22 - adds r1, 0x1 - mov r0, r9 - ands r1, r0 - mov r0, r12 - ands r0, r3 - orrs r0, r1 - strh r0, [r2, 0x4] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - movs r1, 0x1 - strh r1, [r0, 0x3C] - subs r1, 0x2 - add r10, r1 - b _080739DE - .pool -_08073958: - cmp r0, 0 - bne _08073970 - ldrb r0, [r5] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - add r2, r8 - ldrh r3, [r2, 0x4] - lsls r1, r3, 22 - lsrs r1, 22 - adds r1, 0x3 - b _080739D0 -_08073970: - ldr r1, =gBattleTypeFlags - ldr r0, [r1] - movs r1, 0x80 - lsls r1, 11 - ands r0, r1 - cmp r0, 0 - beq _080739B8 - ldr r0, =gBattleStruct - ldr r0, [r0] - movs r2, 0xA8 - lsls r2, 2 - adds r0, r2 - ldrb r1, [r0] - ldr r2, =gBitTable - lsls r0, r7, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _080739B8 - ldrb r0, [r5] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - add r2, r8 - ldrh r3, [r2, 0x4] - lsls r1, r3, 22 - lsrs r1, 22 - adds r1, 0x3 - b _080739D0 - .pool -_080739B8: - ldr r0, [r6, 0x4] - cmp r0, 0 - beq _080739DC - ldrb r0, [r5] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - add r2, r8 - ldrh r3, [r2, 0x4] - lsls r1, r3, 22 - lsrs r1, 22 - adds r1, 0x2 -_080739D0: - mov r0, r9 - ands r1, r0 - mov r0, r12 - ands r0, r3 - orrs r0, r1 - strh r0, [r2, 0x4] -_080739DC: - adds r5, 0x1 -_080739DE: - adds r6, 0x8 - adds r7, 0x1 - cmp r7, 0x5 - ble _0807390A - b _08073B9A -_080739E8: - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - ldr r2, =0x00008040 - ands r1, r2 - cmp r1, 0 - beq _08073AA4 - ldr r1, =0x0000ffff - mov r10, r1 - ldr r6, =gSprites - ldr r2, =0x000003ff - adds r7, r2, 0 - ldr r3, =0xfffffc00 - mov r9, r3 - ldr r5, [sp, 0xC] - mov r4, sp - adds r4, 0x5 - movs r0, 0x5 - mov r8, r0 -_08073A0C: - ldrh r0, [r5] - cmp r0, r10 - bne _08073A58 - ldrb r0, [r4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r6 - ldrh r3, [r2, 0x4] - lsls r1, r3, 22 - lsrs r1, 22 - adds r1, 0x1 - ands r1, r7 - mov r0, r9 - ands r0, r3 - orrs r0, r1 - strh r0, [r2, 0x4] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x1 - strh r1, [r0, 0x3C] - b _08073A92 - .pool -_08073A58: - cmp r0, 0 - bne _08073A70 - ldrb r0, [r4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r6 - ldrh r3, [r2, 0x4] - lsls r1, r3, 22 - lsrs r1, 22 - adds r1, 0x3 - b _08073A88 -_08073A70: - ldr r0, [r5, 0x4] - cmp r0, 0 - beq _08073A92 - ldrb r0, [r4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r6 - ldrh r3, [r2, 0x4] - lsls r1, r3, 22 - lsrs r1, 22 - adds r1, 0x2 -_08073A88: - ands r1, r7 - mov r0, r9 - ands r0, r3 - orrs r0, r1 - strh r0, [r2, 0x4] -_08073A92: - subs r4, 0x1 - adds r5, 0x8 - movs r1, 0x1 - negs r1, r1 - add r8, r1 - mov r2, r8 - cmp r2, 0 - bge _08073A0C - b _08073B9A -_08073AA4: - movs r3, 0 - mov r8, r3 - movs r7, 0 - ldr r5, =gSprites - mov r9, r5 - ldr r6, =0x000003ff - mov r12, r6 - ldr r0, =0xfffffc00 - mov r10, r0 - ldr r6, [sp, 0xC] - mov r5, sp - adds r5, 0x5 -_08073ABC: - ldrh r0, [r6] - ldr r1, =0x0000ffff - cmp r0, r1 - bne _08073B08 - mov r4, sp - add r4, r8 - ldrb r0, [r4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - add r2, r9 - ldrh r3, [r2, 0x4] - lsls r1, r3, 22 - lsrs r1, 22 - adds r1, 0x1 - mov r0, r12 - ands r1, r0 - mov r0, r10 - ands r0, r3 - orrs r0, r1 - strh r0, [r2, 0x4] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r9 - movs r1, 0x1 - strh r1, [r0, 0x3C] - add r8, r1 - b _08073B92 - .pool -_08073B08: - cmp r0, 0 - bne _08073B20 - ldrb r0, [r5] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - add r2, r9 - ldrh r3, [r2, 0x4] - lsls r1, r3, 22 - lsrs r1, 22 - adds r1, 0x3 - b _08073B84 -_08073B20: - ldr r1, =gBattleTypeFlags - ldr r0, [r1] - movs r1, 0x80 - lsls r1, 11 - ands r0, r1 - cmp r0, 0 - beq _08073B6C - ldr r2, =gBattleStruct - ldr r0, [r2] - ldr r3, =0x000002a1 - adds r0, r3 - ldrb r1, [r0] - lsls r0, r7, 2 - ldr r2, =gBitTable - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08073B6C - ldrb r0, [r5] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - add r2, r9 - ldrh r3, [r2, 0x4] - lsls r1, r3, 22 - lsrs r1, 22 - adds r1, 0x3 - b _08073B84 - .pool -_08073B6C: - ldr r0, [r6, 0x4] - cmp r0, 0 - beq _08073B90 - ldrb r0, [r5] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - add r2, r9 - ldrh r3, [r2, 0x4] - lsls r1, r3, 22 - lsrs r1, 22 - adds r1, 0x2 -_08073B84: - mov r0, r12 - ands r1, r0 - mov r0, r10 - ands r0, r3 - orrs r0, r1 - strh r0, [r2, 0x4] -_08073B90: - subs r5, 0x1 -_08073B92: - adds r6, 0x8 - adds r7, 0x1 - cmp r7, 0x5 - ble _08073ABC -_08073B9A: - ldr r0, =TaskDummy - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r4, r0, 24 - ldr r2, =gTasks - lsls r3, r4, 2 - adds r1, r3, r4 - lsls r1, 3 - adds r0, r1, r2 - mov r5, sp - ldrh r5, [r5, 0x8] - strh r5, [r0, 0x8] - mov r6, sp - ldrh r6, [r6, 0x14] - strh r6, [r0, 0xA] - movs r0, 0 - mov r8, r0 - adds r0, r2, 0 - adds r0, 0xE - adds r1, r0 -_08073BC6: - mov r0, sp - add r0, r8 - ldrb r0, [r0] - strh r0, [r1] - adds r1, 0x2 - movs r5, 0x1 - add r8, r5 - mov r6, r8 - cmp r6, 0x5 - ble _08073BC6 - adds r0, r3, r4 - lsls r0, 3 - adds r0, r2 - mov r1, sp - ldrh r1, [r1, 0x10] - strh r1, [r0, 0x1C] - ldr r2, [sp, 0x10] - cmp r2, 0 - beq _08073C0A - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r3, [r0, 0x8] - ldrb r2, [r3, 0x9] - lsls r1, r2, 27 - lsrs r1, 29 - adds r1, 0x1 - movs r0, 0x7 - ands r1, r0 - lsls r1, 2 - movs r0, 0x1D - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x9] -_08073C0A: - movs r0, 0x72 - movs r1, 0 - bl PlaySE12WithPanning - adds r0, r4, 0 - 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_80735DC - - thumb_func_start sub_8073C30 -sub_8073C30: @ 8073C30 - 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 - mov r8, r0 - ldr r2, =gTasks - lsls r3, r0, 2 - adds r1, r3, r0 - lsls r1, 3 - adds r0, r1, r2 - ldrb r7, [r0, 0x1C] - ldrb r4, [r0, 0xA] - mov r10, r4 - ldrb r0, [r0, 0x8] - str r0, [sp, 0x8] - movs r5, 0 - str r3, [sp, 0xC] - adds r2, 0xE - adds r2, r1, r2 -_08073C5E: - mov r0, sp - adds r1, r0, r5 - ldrh r0, [r2] - strb r0, [r1] - adds r2, 0x2 - adds r5, 0x1 - cmp r5, 0x5 - ble _08073C5E - movs r1, 0xFD - lsls r1, 6 - movs r0, 0x50 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0x10 - bl SetGpuReg - ldr r1, =gTasks - ldr r0, [sp, 0xC] - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r1, 0x10 - strh r1, [r0, 0x26] - movs r5, 0 - mov r1, r10 - lsls r1, 4 - str r1, [sp, 0x10] - ldr r3, =gSprites - movs r6, 0xD - negs r6, r6 - mov r12, r3 - movs r4, 0x4 -_08073CA0: - mov r2, sp - adds r0, r2, r5 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r2, [r1, 0x1] - adds r0, r6, 0 - ands r0, r2 - orrs r0, r4 - strb r0, [r1, 0x1] - adds r5, 0x1 - cmp r5, 0x5 - ble _08073CA0 - ldr r2, [sp, 0x10] - add r2, r10 - lsls r2, 2 - add r2, r12 - ldrb r1, [r2, 0x1] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2, 0x1] - cmp r7, 0 - bne _08073CDA - b _08073DE0 -_08073CDA: - movs r5, 0 - mov r6, r12 - mov r9, r5 - adds r3, r6, 0 - adds r3, 0x1C - mov r4, sp - movs r7, 0 -_08073CE8: - ldr r0, [sp, 0x8] - str r3, [sp, 0x14] - bl GetBankSide - lsls r0, 24 - lsrs r2, r0, 24 - ldr r3, [sp, 0x14] - cmp r2, 0 - beq _08073D4C - movs r0, 0x5 - subs r0, r5 - mov r1, sp - adds r2, r1, r0 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r7, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - mov r1, r9 - strh r1, [r0, 0x34] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - mov r1, r9 - strh r1, [r0, 0x36] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldr r1, =sub_8074158 - str r1, [r0] - ldr r2, =gSprites - mov r12, r2 - b _08073D82 - .pool -_08073D4C: - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r7, [r0, 0x30] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r2, [r0, 0x34] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r2, [r0, 0x36] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldr r1, =sub_8074158 - str r1, [r0] - ldr r0, =gSprites - mov r12, r0 -_08073D82: - adds r4, 0x1 - adds r7, 0x7 - adds r5, 0x1 - cmp r5, 0x5 - ble _08073CE8 - ldr r3, [sp, 0x10] - add r3, r10 - lsls r3, 2 - mov r1, r12 - adds r0, r3, r1 - movs r2, 0x2E - ldrsh r1, [r0, r2] - lsrs r2, r1, 31 - adds r1, r2 - asrs r1, 1 - movs r2, 0 - strh r1, [r0, 0x2E] - strh r2, [r0, 0x30] - mov r1, r12 - adds r1, 0x1C - adds r3, r1 - ldr r1, =sub_8074090 - str r1, [r3] - ldr r1, =gUnknown_0832C2CC - bl SetSubspriteTables - ldr r1, =gTasks - ldr r0, [sp, 0xC] - add r0, r8 - lsls r0, 3 - adds r0, r1 - ldr r1, =task_battle_throw_own_ball - str r1, [r0] - b _08073DEE - .pool -_08073DE0: - ldr r0, =gTasks - ldr r1, [sp, 0xC] - add r1, r8 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_8073F98 - str r0, [r1] -_08073DEE: - 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 sub_8073C30 - - thumb_func_start task_battle_throw_own_ball -task_battle_throw_own_ball: @ 8073E08 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r0, [r4, 0x1E] - adds r1, r0, 0x1 - strh r1, [r4, 0x1E] - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08073E48 - ldrh r0, [r4, 0x26] - subs r1, r0, 0x1 - strh r1, [r4, 0x26] - lsls r0, r1, 16 - cmp r0, 0 - blt _08073E54 - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg -_08073E48: - movs r1, 0x26 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08073E54 - ldr r0, =sub_8073E64 - str r0, [r4] -_08073E54: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end task_battle_throw_own_ball - - thumb_func_start sub_8073E64 -sub_8073E64: @ 8073E64 - push {r4-r7,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r7, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r3, r0, 3 - adds r4, r3, r7 - ldrb r2, [r4, 0x8] - ldrh r0, [r4, 0x26] - subs r0, 0x1 - strh r0, [r4, 0x26] - lsls r0, 16 - asrs r1, r0, 16 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _08073F54 - ldrb r5, [r4, 0xA] - movs r4, 0 - ldr r6, =gBattleSpritesDataPtr - adds r0, r7, 0 - adds r0, 0xE - adds r2, r3, r0 -_08073E96: - mov r0, sp - adds r1, r0, r4 - ldrh r0, [r2] - strb r0, [r1] - adds r2, 0x2 - adds r4, 0x1 - cmp r4, 0x5 - ble _08073E96 - ldr r0, [r6] - ldr r3, [r0, 0x8] - ldrb r2, [r3, 0x9] - lsls r1, r2, 27 - lsrs r1, 29 - subs r1, 0x1 - movs r0, 0x7 - ands r1, r0 - lsls r1, 2 - movs r0, 0x1D - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x9] - ldr r0, [r6] - ldr r0, [r0, 0x8] - ldrb r1, [r0, 0x9] - movs r0, 0x1C - ands r0, r1 - cmp r0, 0 - bne _08073EFC - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - ldr r4, =gSprites - adds r0, r4 - bl DestroySpriteAndFreeResources - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySpriteAndFreeResources - b _08073F32 - .pool -_08073EFC: - lsls r4, r5, 4 - adds r4, r5 - lsls r4, 2 - ldr r5, =gSprites - adds r4, r5 - adds r0, r4, 0 - bl FreeSpriteOamMatrix - adds r0, r4, 0 - bl DestroySprite - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - bl FreeSpriteOamMatrix - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - bl DestroySprite -_08073F32: - movs r4, 0x1 - ldr r5, =gSprites -_08073F36: - mov r1, sp - adds r0, r1, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - bl DestroySprite - adds r4, 0x1 - cmp r4, 0x5 - ble _08073F36 - b _08073F8A - .pool -_08073F54: - movs r0, 0x3 - negs r0, r0 - cmp r1, r0 - bne _08073F8A - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - adds r0, r5, 0 - bl DestroyTask -_08073F8A: - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8073E64 - - thumb_func_start sub_8073F98 -sub_8073F98: @ 8073F98 - push {r4-r7,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - ldr r7, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r6, r0, 3 - adds r3, r6, r7 - ldrb r5, [r3, 0x8] - ldrh r0, [r3, 0x26] - subs r1, r0, 0x1 - strh r1, [r3, 0x26] - lsls r0, r1, 16 - asrs r2, r0, 16 - cmp r2, 0 - blt _08073FD4 - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - b _0807406A - .pool -_08073FD4: - movs r0, 0x1 - negs r0, r0 - cmp r2, r0 - bne _08074034 - ldrb r3, [r3, 0xA] - movs r5, 0 - adds r0, r7, 0 - adds r0, 0xE - adds r2, r6, r0 -_08073FE6: - mov r0, sp - adds r1, r0, r5 - ldrh r0, [r2] - strb r0, [r1] - adds r2, 0x2 - adds r5, 0x1 - cmp r5, 0x5 - ble _08073FE6 - lsls r0, r3, 4 - adds r0, r3 - lsls r0, 2 - ldr r4, =gSprites - adds r0, r4 - bl DestroySpriteAndFreeResources - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySpriteAndFreeResources - movs r5, 0x1 -_08074016: - mov r1, sp - adds r0, r1, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - adds r5, 0x1 - cmp r5, 0x5 - ble _08074016 - b _0807406A - .pool -_08074034: - movs r0, 0x3 - negs r0, r0 - cmp r2, r0 - bne _0807406A - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r0, [r0, 0x4] - lsls r1, r5, 1 - adds r1, r5 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - adds r0, r4, 0 - bl DestroyTask -_0807406A: - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8073F98 - - thumb_func_start sub_8074078 -sub_8074078: @ 8074078 - push {lr} - adds r1, r0, 0 - ldrh r2, [r1, 0x24] - movs r3, 0x24 - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _0807408C - ldrh r0, [r1, 0x2E] - adds r0, r2, r0 - strh r0, [r1, 0x24] -_0807408C: - pop {r0} - bx r0 - thumb_func_end sub_8074078 - - thumb_func_start sub_8074090 -sub_8074090: @ 8074090 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x30] - adds r1, r0, 0 - adds r1, 0x20 - strh r1, [r2, 0x30] - movs r3, 0x2E - ldrsh r0, [r2, r3] - cmp r0, 0 - ble _080740AE - lsls r0, r1, 16 - asrs r0, 20 - ldrh r1, [r2, 0x24] - adds r0, r1 - b _080740B6 -_080740AE: - lsls r1, 16 - asrs r1, 20 - ldrh r0, [r2, 0x24] - subs r0, r1 -_080740B6: - strh r0, [r2, 0x24] - ldrh r1, [r2, 0x30] - movs r0, 0xF - ands r0, r1 - strh r0, [r2, 0x30] - pop {r0} - bx r0 - thumb_func_end sub_8074090 - - thumb_func_start sub_80740C4 -sub_80740C4: @ 80740C4 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x30] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080740D8 - subs r0, r1, 0x1 - strh r0, [r4, 0x30] - b _0807414E -_080740D8: - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r3, r0, 24 - ldrh r2, [r4, 0x34] - adds r0, r2, 0 - adds r0, 0x38 - lsls r1, r0, 16 - lsrs r2, r1, 16 - ldr r0, =0x0000fff0 - ands r2, r0 - strh r2, [r4, 0x34] - cmp r3, 0 - beq _0807410C - lsrs r0, r1, 20 - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - lsls r0, 16 - cmp r0, 0 - ble _0807411C - movs r0, 0 - strh r0, [r4, 0x24] - b _0807411C - .pool -_0807410C: - lsrs r1, 20 - ldrh r0, [r4, 0x24] - subs r0, r1 - strh r0, [r4, 0x24] - lsls r0, 16 - cmp r0, 0 - bge _0807411C - strh r3, [r4, 0x24] -_0807411C: - movs r2, 0x24 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _0807414E - movs r1, 0x3F - cmp r3, 0 - beq _0807412C - movs r1, 0xC0 -_0807412C: - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _08074140 - lsls r1, 24 - asrs r1, 24 - movs r0, 0x74 - bl PlaySE2WithPanning - b _0807414A -_08074140: - lsls r1, 24 - asrs r1, 24 - movs r0, 0x73 - bl PlaySE1WithPanning -_0807414A: - ldr r0, =SpriteCallbackDummy - str r0, [r4, 0x1C] -_0807414E: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80740C4 - - thumb_func_start sub_8074158 -sub_8074158: @ 8074158 - push {r4,lr} - adds r3, r0, 0 - ldrh r1, [r3, 0x30] - movs r2, 0x30 - ldrsh r0, [r3, r2] - cmp r0, 0 - ble _0807416C - subs r0, r1, 0x1 - strh r0, [r3, 0x30] - b _080741BC -_0807416C: - ldrh r0, [r3, 0x32] - lsls r0, 24 - ldrh r2, [r3, 0x34] - adds r1, r2, 0 - adds r1, 0x38 - lsls r4, r1, 16 - lsrs r2, r4, 16 - ldr r1, =0x0000fff0 - ands r2, r1 - strh r2, [r3, 0x34] - cmp r0, 0 - beq _08074190 - lsrs r0, r4, 20 - ldrh r1, [r3, 0x24] - adds r0, r1 - b _08074196 - .pool -_08074190: - lsrs r1, r4, 20 - ldrh r0, [r3, 0x24] - subs r0, r1 -_08074196: - strh r0, [r3, 0x24] - movs r2, 0x24 - ldrsh r0, [r3, r2] - movs r2, 0x20 - ldrsh r1, [r3, r2] - adds r0, r1 - adds r0, 0x8 - movs r1, 0x80 - lsls r1, 1 - cmp r0, r1 - bls _080741BC - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, =SpriteCallbackDummy - str r0, [r3, 0x1C] -_080741BC: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8074158 - - thumb_func_start sub_80741C8 -sub_80741C8: @ 80741C8 - ldrh r2, [r0, 0x2E] - lsls r2, 24 - lsrs r2, 24 - ldr r3, =gSprites - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r3 - ldrh r2, [r1, 0x24] - strh r2, [r0, 0x24] - ldrh r1, [r1, 0x26] - strh r1, [r0, 0x26] - bx lr - .pool - thumb_func_end sub_80741C8 - - thumb_func_start sub_80741E8 -sub_80741E8: @ 80741E8 - push {r4-r7,lr} - sub sp, 0x14 - adds r4, r1, 0 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r5, =gDisplayedStringBattle - ldr r1, =gText_HighlightDarkGrey - adds r0, r5, 0 - bl StringCopy - adds r0, r4, 0 - movs r1, 0x2 - add r2, sp, 0x4 - bl GetMonData - add r0, sp, 0x4 - bl StringGetEnd10 - adds r0, r5, 0 - add r1, sp, 0x4 - bl StringAppend - adds r5, r0, 0 - adds r0, r4, 0 - bl GetMonGender - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - adds r1, r0, 0 - cmp r0, 0x1D - beq _08074236 - cmp r0, 0x20 - bne _0807424A -_08074236: - movs r0, 0xB - muls r1, r0 - ldr r0, =gSpeciesNames - adds r1, r0 - add r0, sp, 0x4 - bl StringCompare - cmp r0, 0 - bne _0807424A - movs r6, 0x64 -_0807424A: - cmp r6, 0 - beq _08074268 - cmp r6, 0xFE - beq _08074270 - ldr r1, =gText_DynColor2 - b _08074272 - .pool -_08074268: - ldr r1, =gText_DynColor2Male - b _08074272 - .pool -_08074270: - ldr r1, =gText_DynColor1Female -_08074272: - adds r0, r5, 0 - bl StringCopy - ldr r0, =gDisplayedStringBattle - add r1, sp, 0x10 - str r1, [sp] - movs r1, 0 - movs r2, 0x3 - movs r3, 0x2 - bl write_to_rbox - adds r6, r0, 0 - ldr r0, =gSprites - lsls r1, r7, 4 - adds r1, r7 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1, 0x4] - lsls r0, 22 - lsrs r4, r0, 17 - ldrh r0, [r1, 0x3A] - lsls r0, 24 - lsrs r0, 24 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _080742F0 - ldr r1, =0x06010040 - adds r0, r4, r1 - adds r1, r6, 0 - movs r2, 0x6 - bl sub_8075198 - bl IsDoubleBattle - lsls r0, 24 - ldr r1, =0x06010400 - adds r5, r4, r1 - cmp r0, 0 - bne _080742C8 - ldr r0, =0x06010800 - adds r5, r4, r0 -_080742C8: - adds r1, r6, 0 - adds r1, 0xC0 - adds r0, r5, 0 - movs r2, 0x1 - bl sub_8075198 - b _080742FC - .pool -_080742F0: - ldr r1, =0x06010020 - adds r0, r4, r1 - adds r1, r6, 0 - movs r2, 0x7 - bl sub_8075198 -_080742FC: - ldr r0, [sp, 0x10] - bl sub_807512C - add sp, 0x14 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80741E8 - - thumb_func_start sub_8074310 -sub_8074310: @ 8074310 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r7, r1, 24 - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - bne _080743E6 - movs r0, 0x8 - ands r1, r0 - cmp r1, 0 - bne _080743E6 - ldr r6, =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r5, r0, r6 - ldrh r0, [r5, 0x3A] - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _080743E6 - ldr r1, =gBattlePartyID - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - bl GetSetPokedexFlag - lsls r0, 24 - cmp r0, 0 - beq _080743E6 - ldrh r0, [r5, 0x38] - lsls r0, 24 - lsrs r4, r0, 24 - cmp r7, 0 - beq _080743C4 - movs r0, 0x46 - bl sub_80728A4 - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - adds r1, r6 - ldrh r1, [r1, 0x4] - lsls r1, 22 - lsrs r1, 17 - movs r2, 0x80 - lsls r2, 1 - adds r1, r2 - ldr r2, =0x06010000 - adds r1, r2 - ldr r2, =0x04000008 - bl CpuSet - b _080743E6 - .pool -_080743C4: - str r7, [sp] - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r6 - ldrh r1, [r0, 0x4] - lsls r1, 22 - lsrs r1, 17 - movs r0, 0x80 - lsls r0, 1 - adds r1, r0 - ldr r0, =0x06010000 - adds r1, r0 - ldr r2, =0x05000008 - mov r0, sp - bl CpuSet -_080743E6: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8074310 - - thumb_func_start draw_status_ailment_maybe -draw_status_ailment_maybe: @ 80743F8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r0, =gSprites - mov r2, r9 - lsls r1, r2, 4 - add r1, r9 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1, 0x3A] - lsls r0, 24 - lsrs r7, r0, 24 - ldrh r0, [r1, 0x38] - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - adds r0, r7, 0 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _08074468 - ldr r1, =gBattlePartyID - lsls r0, r7, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x37 - bl GetMonData - adds r4, r0, 0 - bl IsDoubleBattle - lsls r0, 24 - movs r3, 0x12 - mov r8, r3 - cmp r0, 0 - bne _08074484 - movs r0, 0x1A - mov r8, r0 - b _08074484 - .pool -_08074468: - ldr r1, =gBattlePartyID - lsls r0, r7, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x37 - bl GetMonData - adds r4, r0, 0 - movs r1, 0x11 - mov r8, r1 -_08074484: - movs r0, 0x7 - ands r0, r4 - cmp r0, 0 - beq _080744AC - movs r0, 0x1B - adds r1, r7, 0 - bl sub_80746A8 - lsls r0, 24 - lsrs r0, 24 - bl sub_80728A4 - adds r6, r0, 0 - movs r0, 0x2 - b _080745B8 - .pool -_080744AC: - movs r0, 0x88 - ands r0, r4 - cmp r0, 0 - beq _080744CA - movs r0, 0x15 - adds r1, r7, 0 - bl sub_80746A8 - lsls r0, 24 - lsrs r0, 24 - bl sub_80728A4 - adds r6, r0, 0 - movs r0, 0 - b _080745B8 -_080744CA: - movs r0, 0x10 - ands r0, r4 - cmp r0, 0 - beq _080744E8 - movs r0, 0x21 - adds r1, r7, 0 - bl sub_80746A8 - lsls r0, 24 - lsrs r0, 24 - bl sub_80728A4 - adds r6, r0, 0 - movs r0, 0x4 - b _080745B8 -_080744E8: - movs r0, 0x20 - ands r0, r4 - cmp r0, 0 - beq _08074506 - movs r0, 0x1E - adds r1, r7, 0 - bl sub_80746A8 - lsls r0, 24 - lsrs r0, 24 - bl sub_80728A4 - adds r6, r0, 0 - movs r0, 0x3 - b _080745B8 -_08074506: - movs r0, 0x40 - ands r0, r4 - cmp r0, 0 - beq _08074524 - movs r0, 0x18 - adds r1, r7, 0 - bl sub_80746A8 - lsls r0, 24 - lsrs r0, 24 - bl sub_80728A4 - adds r6, r0, 0 - movs r0, 0x1 - b _080745B8 -_08074524: - movs r0, 0x27 - bl sub_80728A4 - adds r6, r0, 0 - movs r4, 0 - mov r2, r9 - lsls r0, r2, 4 - mov r3, r8 - lsls r3, 16 - mov r8, r3 - lsls r7, 2 - ldr r1, =gSprites - add r0, r9 - lsls r0, 2 - adds r5, r0, r1 -_08074542: - ldrh r1, [r5, 0x4] - lsls r1, 22 - lsrs r1, 22 - mov r2, r8 - asrs r0, r2, 16 - adds r1, r0 - adds r1, r4 - lsls r1, 5 - ldr r3, =0x06010000 - adds r1, r3 - adds r0, r6, 0 - ldr r2, =0x04000008 - bl CpuSet - adds r4, 0x1 - cmp r4, 0x2 - ble _08074542 - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r0, [r0] - adds r0, r7, r0 - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _08074598 - movs r0, 0x1 - bl sub_80728A4 - ldr r2, =gSprites - mov r3, r10 - lsls r1, r3, 4 - add r1, r10 - lsls r1, 2 - adds r1, r2 - ldrh r1, [r1, 0x4] - lsls r1, 22 - lsrs r1, 17 - ldr r2, =0x06010000 - adds r1, r2 - ldr r2, =0x04000010 - bl CpuSet -_08074598: - mov r0, r9 - movs r1, 0x1 - bl sub_8074310 - b _0807467A - .pool -_080745B8: - mov r1, r9 - lsls r5, r1, 4 - add r5, r9 - lsls r5, 2 - ldr r2, =gSprites - adds r5, r2 - ldrb r4, [r5, 0x5] - lsrs r4, 4 - lsls r4, 4 - adds r4, 0xC - adds r4, r7 - ldr r1, =gUnknown_0832C3EC - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - movs r3, 0x80 - lsls r3, 1 - adds r1, r4, r3 - movs r2, 0x2 - bl FillPalette - lsls r4, 1 - ldr r0, =gPlttBufferUnfaded + 0x200 - adds r0, r4, r0 - ldr r1, =0x05000200 - adds r4, r1 - adds r1, r4, 0 - movs r2, 0x1 - bl CpuSet - ldrh r1, [r5, 0x4] - lsls r1, 22 - lsrs r1, 22 - add r1, r8 - lsls r1, 5 - ldr r2, =0x06010000 - mov r8, r2 - add r1, r8 - ldr r2, =0x04000018 - adds r0, r6, 0 - bl CpuSet - bl IsDoubleBattle - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08074626 - adds r0, r7, 0 - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08074672 -_08074626: - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r7, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _08074672 - movs r0, 0 - bl sub_80728A4 - mov r3, r10 - lsls r4, r3, 4 - add r4, r10 - lsls r4, 2 - ldr r1, =gSprites - adds r4, r1 - ldrh r1, [r4, 0x4] - lsls r1, 22 - lsrs r1, 17 - add r1, r8 - ldr r5, =0x04000008 - adds r2, r5, 0 - bl CpuSet - movs r0, 0x41 - bl sub_80728A4 - ldrh r1, [r4, 0x4] - lsls r1, 22 - lsrs r1, 17 - adds r1, 0x20 - add r1, r8 - adds r2, r5, 0 - bl CpuSet -_08074672: - mov r0, r9 - movs r1, 0 - bl sub_8074310 -_0807467A: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end draw_status_ailment_maybe - - thumb_func_start sub_80746A8 -sub_80746A8: @ 80746A8 - push {lr} - lsls r0, 24 - lsls r1, 24 - lsrs r3, r1, 24 - lsrs r2, r0, 24 - adds r0, r2, 0 - subs r0, 0x15 - cmp r0, 0xC - bhi _08074768 - lsls r0, 2 - ldr r1, =_080746C8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080746C8: - .4byte _080746FC - .4byte _08074768 - .4byte _08074768 - .4byte _08074712 - .4byte _08074768 - .4byte _08074768 - .4byte _08074728 - .4byte _08074768 - .4byte _08074768 - .4byte _0807473E - .4byte _08074768 - .4byte _08074768 - .4byte _08074754 -_080746FC: - movs r2, 0x15 - cmp r3, 0 - beq _08074768 - movs r2, 0x47 - cmp r3, 0x1 - beq _08074768 - movs r2, 0x65 - cmp r3, 0x2 - bne _08074768 - movs r2, 0x56 - b _08074768 -_08074712: - movs r2, 0x18 - cmp r3, 0 - beq _08074768 - movs r2, 0x4A - cmp r3, 0x1 - beq _08074768 - movs r2, 0x68 - cmp r3, 0x2 - bne _08074768 - movs r2, 0x59 - b _08074768 -_08074728: - movs r2, 0x1B - cmp r3, 0 - beq _08074768 - movs r2, 0x4D - cmp r3, 0x1 - beq _08074768 - movs r2, 0x6B - cmp r3, 0x2 - bne _08074768 - movs r2, 0x5C - b _08074768 -_0807473E: - movs r2, 0x1E - cmp r3, 0 - beq _08074768 - movs r2, 0x50 - cmp r3, 0x1 - beq _08074768 - movs r2, 0x6E - cmp r3, 0x2 - bne _08074768 - movs r2, 0x5F - b _08074768 -_08074754: - movs r2, 0x21 - cmp r3, 0 - beq _08074768 - movs r2, 0x53 - cmp r3, 0x1 - beq _08074768 - movs r2, 0x71 - cmp r3, 0x2 - bne _08074768 - movs r2, 0x62 -_08074768: - adds r0, r2, 0 - pop {r1} - bx r1 - thumb_func_end sub_80746A8 - - thumb_func_start sub_8074770 -sub_8074770: @ 8074770 - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gText_SafariBalls - add r1, sp, 0x4 - str r1, [sp] - movs r1, 0 - movs r2, 0x3 - movs r3, 0x2 - bl write_to_rbox - adds r5, r0, 0 - ldr r1, =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrh r4, [r0, 0x4] - lsls r4, 22 - lsrs r4, 17 - ldr r1, =0x06010040 - adds r0, r4, r1 - adds r1, r5, 0 - movs r2, 0x6 - bl sub_8075198 - ldr r0, =0x06010800 - adds r4, r0 - adds r5, 0xC0 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x2 - bl sub_8075198 - ldr r0, [sp, 0x4] - bl sub_807512C - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8074770 - - thumb_func_start sub_80747D8 -sub_80747D8: @ 80747D8 - push {r4,r5,lr} - sub sp, 0x18 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, =gText_SafariBallLeft - add r0, sp, 0x4 - bl StringCopy - ldr r1, =gNumSafariBalls - ldrb r1, [r1] - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - movs r0, 0 - add r1, sp, 0x4 - movs r2, 0x2F - bl GetStringRightAlignXOffset - adds r1, r0, 0 - add r0, sp, 0x14 - str r0, [sp] - add r0, sp, 0x4 - movs r2, 0x3 - movs r3, 0x2 - bl write_to_rbox - adds r5, r0, 0 - ldr r1, =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrh r4, [r0, 0x4] - lsls r4, 22 - lsrs r4, 17 - ldr r1, =0x060102c0 - adds r0, r4, r1 - adds r1, r5, 0 - movs r2, 0x2 - bl sub_80751E4 - ldr r0, =0x06010a00 - adds r4, r0 - adds r5, 0x40 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x4 - bl sub_80751E4 - ldr r0, [sp, 0x14] - bl sub_807512C - add sp, 0x18 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80747D8 - - thumb_func_start UpdateHealthboxAttribute -UpdateHealthboxAttribute: @ 8074860 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r8, r1 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r2, 24 - lsrs r7, r2, 24 - ldr r1, =gSprites - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0, 0x3A] - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - cmp r7, 0 - bne _0807489C - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - bne _0807489C - mov r0, r9 - bl GetBankSide -_0807489C: - ldr r1, =gSprites - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0, 0x3A] - lsls r0, 24 - lsrs r0, 24 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _080748B8 - b _08074A18 -_080748B8: - cmp r7, 0x3 - beq _080748C0 - cmp r7, 0 - bne _080748D4 -_080748C0: - mov r0, r8 - movs r1, 0x38 - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r6, 0 - bl healthbar_draw_level -_080748D4: - cmp r7, 0x1 - bhi _080748EE - mov r0, r8 - movs r1, 0x39 - bl GetMonData - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - adds r0, r6, 0 - movs r2, 0 - bl heathbar_draw_hp -_080748EE: - cmp r7, 0x2 - beq _080748F6 - cmp r7, 0 - bne _0807490C -_080748F6: - mov r0, r8 - movs r1, 0x3A - bl GetMonData - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - adds r0, r6, 0 - movs r2, 0x1 - bl heathbar_draw_hp -_0807490C: - cmp r7, 0x5 - beq _08074914 - cmp r7, 0 - bne _08074948 -_08074914: - movs r0, 0 - bl load_gfxc_health_bar - mov r0, r8 - movs r1, 0x3A - bl GetMonData - adds r4, r0, 0 - mov r0, r8 - movs r1, 0x39 - bl GetMonData - adds r3, r0, 0 - movs r0, 0 - str r0, [sp] - mov r0, r9 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_807294C - mov r0, r9 - adds r1, r6, 0 - movs r2, 0 - movs r3, 0 - bl sub_8074AA0 -_08074948: - bl IsDoubleBattle - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - cmp r0, 0 - bne _080749CE - cmp r7, 0x6 - beq _0807495E - cmp r7, 0 - bne _080749CE -_0807495E: - movs r0, 0x3 - bl load_gfxc_health_bar - mov r0, r8 - movs r1, 0xB - bl GetMonData - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - mov r0, r8 - movs r1, 0x38 - bl GetMonData - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - mov r0, r8 - movs r1, 0x19 - bl GetMonData - adds r3, r0, 0 - ldr r0, =gExperienceTables - mov r12, r0 - lsls r1, r4, 2 - ldr r2, =gBaseStats - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - adds r0, r2 - ldrb r2, [r0, 0x13] - movs r0, 0xCA - lsls r0, 1 - muls r0, r2 - adds r1, r0 - add r1, r12 - ldr r1, [r1] - subs r3, r1 - adds r4, 0x1 - lsls r4, 2 - adds r4, r0 - add r4, r12 - ldr r2, [r4] - subs r2, r1 - mov r0, r10 - str r0, [sp] - mov r0, r9 - adds r1, r6, 0 - bl sub_807294C - mov r0, r9 - adds r1, r6, 0 - movs r2, 0x1 - movs r3, 0 - bl sub_8074AA0 -_080749CE: - cmp r7, 0x4 - beq _080749D6 - cmp r7, 0 - bne _080749DE -_080749D6: - adds r0, r6, 0 - mov r1, r8 - bl sub_80741E8 -_080749DE: - cmp r7, 0x9 - beq _080749E6 - cmp r7, 0 - bne _080749EC -_080749E6: - adds r0, r6, 0 - bl draw_status_ailment_maybe -_080749EC: - cmp r7, 0xA - bne _080749F6 - adds r0, r6, 0 - bl sub_8074770 -_080749F6: - adds r0, r7, 0 - subs r0, 0xA - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _08074A8E - adds r0, r6, 0 - bl sub_80747D8 - b _08074A8E - .pool -_08074A18: - cmp r7, 0x3 - beq _08074A20 - cmp r7, 0 - bne _08074A34 -_08074A20: - mov r0, r8 - movs r1, 0x38 - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r6, 0 - bl healthbar_draw_level -_08074A34: - cmp r7, 0x5 - beq _08074A3C - cmp r7, 0 - bne _08074A70 -_08074A3C: - movs r0, 0 - bl load_gfxc_health_bar - mov r0, r8 - movs r1, 0x3A - bl GetMonData - adds r4, r0, 0 - mov r0, r8 - movs r1, 0x39 - bl GetMonData - adds r3, r0, 0 - movs r0, 0 - str r0, [sp] - mov r0, r9 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_807294C - mov r0, r9 - adds r1, r6, 0 - movs r2, 0 - movs r3, 0 - bl sub_8074AA0 -_08074A70: - cmp r7, 0x4 - beq _08074A78 - cmp r7, 0 - bne _08074A80 -_08074A78: - adds r0, r6, 0 - mov r1, r8 - bl sub_80741E8 -_08074A80: - cmp r7, 0x9 - beq _08074A88 - cmp r7, 0 - bne _08074A8E -_08074A88: - adds r0, r6, 0 - bl draw_status_ailment_maybe -_08074A8E: - 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 UpdateHealthboxAttribute - - thumb_func_start sub_8074AA0 -sub_8074AA0: @ 8074AA0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r2, 24 - lsrs r2, 24 - mov r9, r2 - cmp r2, 0 - bne _08074AEC - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r0, [r0, 0xC] - mov r1, r8 - lsls r5, r1, 2 - adds r3, r5, r1 - lsls r3, 2 - adds r3, r0 - ldr r0, [r3, 0x4] - ldr r1, [r3, 0x8] - ldr r2, [r3, 0xC] - adds r3, 0x10 - movs r4, 0x6 - str r4, [sp] - movs r4, 0x1 - str r4, [sp, 0x4] - bl sub_8074DB8 - adds r4, r0, 0 - adds r7, r5, 0 - b _08074B48 - .pool -_08074AEC: - ldr r2, =gBattleSpritesDataPtr - mov r10, r2 - ldr r0, [r2] - ldr r2, [r0, 0xC] - mov r0, r8 - lsls r4, r0, 2 - adds r0, r4, r0 - lsls r6, r0, 2 - adds r2, r6, r2 - ldr r0, [r2, 0x8] - ldr r1, [r2, 0xC] - ldr r2, [r2, 0x4] - movs r3, 0x8 - bl sub_8074FE8 - lsls r0, 24 - lsrs r5, r0, 24 - adds r7, r4, 0 - cmp r5, 0 - bne _08074B16 - movs r5, 0x1 -_08074B16: - mov r1, r10 - ldr r0, [r1] - ldr r0, [r0, 0xC] - adds r4, r6, r0 - ldr r6, [r4, 0xC] - adds r0, r6, 0 - adds r1, r5, 0 - bl __divsi3 - cmp r0, 0 - bge _08074B2E - negs r0, r0 -_08074B2E: - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, [r4, 0x4] - ldr r1, [r4, 0x8] - adds r3, r4, 0 - adds r3, 0x10 - movs r2, 0x8 - str r2, [sp] - str r5, [sp, 0x4] - adds r2, r6, 0 - bl sub_8074DB8 - adds r4, r0, 0 -_08074B48: - mov r2, r9 - cmp r2, 0x1 - beq _08074B64 - cmp r2, 0 - bne _08074B6C - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r0, [r0] - adds r0, r7, r0 - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _08074B6C -_08074B64: - mov r0, r8 - mov r1, r9 - bl sub_8074B9C -_08074B6C: - movs r0, 0x1 - negs r0, r0 - cmp r4, r0 - bne _08074B86 - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r1, [r0, 0xC] - mov r2, r8 - adds r0, r7, r2 - lsls r0, 2 - adds r0, r1 - movs r1, 0 - str r1, [r0, 0x10] -_08074B86: - adds r0, r4, 0 - 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_8074AA0 - - thumb_func_start sub_8074B9C -sub_8074B9C: @ 8074B9C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0 - beq _08074BB8 - cmp r1, 0x1 - beq _08074CA0 - b _08074D9E -_08074BB8: - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r0, [r0, 0xC] - lsls r5, r6, 2 - adds r3, r5, r6 - lsls r3, 2 - adds r3, r0 - ldr r0, [r3, 0x4] - ldr r1, [r3, 0x8] - ldr r2, [r3, 0xC] - adds r3, 0x10 - add r4, sp, 0x8 - str r4, [sp] - movs r4, 0x6 - str r4, [sp, 0x4] - bl sub_8074E8C - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x3 - mov r9, r1 - adds r7, r5, 0 - cmp r0, 0x18 - bhi _08074BF4 - movs r2, 0x38 - mov r9, r2 - cmp r0, 0x9 - bls _08074BF4 - movs r4, 0x2F - mov r9, r4 -_08074BF4: - movs r5, 0 - ldr r0, =gSprites - mov r8, r0 -_08074BFA: - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r1, [r0, 0xC] - adds r0, r7, r6 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - ldrh r0, [r0, 0x38] - lsls r0, 24 - lsrs r4, r0, 24 - cmp r5, 0x1 - bhi _08074C5C - mov r0, r9 - bl sub_80728A4 - mov r1, sp - adds r1, r5 - adds r1, 0x8 - ldrb r1, [r1] - lsls r1, 5 - adds r0, r1 - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - add r1, r8 - ldrh r1, [r1, 0x4] - lsls r1, 22 - lsrs r1, 22 - adds r2, r5, 0x2 - adds r1, r2 - lsls r1, 5 - ldr r2, =0x06010000 - adds r1, r2 - ldr r2, =0x04000008 - bl CpuSet - b _08074C8A - .pool -_08074C5C: - mov r0, r9 - bl sub_80728A4 - mov r1, sp - adds r1, r5 - adds r1, 0x8 - ldrb r1, [r1] - lsls r1, 5 - adds r0, r1 - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - add r1, r8 - ldrh r1, [r1, 0x4] - lsls r1, 22 - lsrs r1, 22 - adds r1, r5, r1 - lsls r1, 5 - ldr r4, =0x06010040 - adds r1, r4 - ldr r2, =0x04000008 - bl CpuSet -_08074C8A: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _08074BFA - b _08074D9E - .pool -_08074CA0: - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r0, [r0, 0xC] - lsls r5, r6, 2 - adds r3, r5, r6 - lsls r3, 2 - adds r3, r0 - ldr r0, [r3, 0x4] - ldr r1, [r3, 0x8] - ldr r2, [r3, 0xC] - adds r3, 0x10 - add r4, sp, 0x8 - str r4, [sp] - movs r4, 0x8 - str r4, [sp, 0x4] - bl sub_8074E8C - ldr r1, =gBattlePartyID - lsls r0, r6, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x38 - bl GetMonData - lsls r0, 24 - lsrs r0, 24 - adds r7, r5, 0 - cmp r0, 0x64 - bne _08074CF8 - movs r5, 0 - movs r1, 0 -_08074CE6: - mov r0, sp - adds r0, r5 - adds r0, 0x8 - strb r1, [r0] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x7 - bls _08074CE6 -_08074CF8: - movs r5, 0 - ldr r0, =gSprites - mov r8, r0 - adds r0, r7, r6 - lsls r4, r0, 2 -_08074D02: - cmp r5, 0x3 - bhi _08074D5C - movs r0, 0xC - bl sub_80728A4 - mov r1, sp - adds r1, r5 - adds r1, 0x8 - ldrb r1, [r1] - lsls r1, 5 - adds r0, r1 - ldr r1, =gBattleSpritesDataPtr - ldr r1, [r1] - ldr r1, [r1, 0xC] - adds r1, r4, r1 - ldrb r2, [r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - add r1, r8 - ldrh r1, [r1, 0x4] - lsls r1, 22 - lsrs r1, 22 - adds r2, r5, 0 - adds r2, 0x24 - adds r1, r2 - lsls r1, 5 - ldr r2, =0x06010000 - adds r1, r2 - ldr r2, =0x04000008 - bl CpuSet - b _08074D94 - .pool -_08074D5C: - movs r0, 0xC - bl sub_80728A4 - mov r1, sp - adds r1, r5 - adds r1, 0x8 - ldrb r1, [r1] - lsls r1, 5 - adds r0, r1 - ldr r1, =gBattleSpritesDataPtr - ldr r1, [r1] - ldr r1, [r1, 0xC] - adds r1, r4, r1 - ldrb r2, [r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - add r1, r8 - ldrh r1, [r1, 0x4] - lsls r1, 22 - lsrs r1, 22 - adds r1, r5, r1 - lsls r1, 5 - ldr r2, =0x06010b80 - adds r1, r2 - ldr r2, =0x04000008 - bl CpuSet -_08074D94: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x7 - bls _08074D02 -_08074D9E: - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8074B9C - - thumb_func_start sub_8074DB8 -sub_8074DB8: @ 8074DB8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r0, 0 - adds r4, r1, 0 - mov r8, r2 - adds r5, r3, 0 - ldr r1, [sp, 0x18] - ldr r0, [sp, 0x1C] - lsls r0, 16 - lsrs r3, r0, 16 - lsls r1, 27 - lsrs r2, r1, 24 - ldr r1, [r5] - ldr r0, =0xffff8000 - cmp r1, r0 - bne _08074DEA - cmp r7, r2 - bge _08074DE8 - lsls r0, r4, 8 - str r0, [r5] - b _08074DEA - .pool -_08074DE8: - str r4, [r5] -_08074DEA: - mov r0, r8 - subs r4, r0 - cmp r4, 0 - bge _08074DF6 - movs r4, 0 - b _08074DFC -_08074DF6: - cmp r4, r7 - ble _08074DFC - adds r4, r7, 0 -_08074DFC: - cmp r7, r2 - bge _08074E18 - ldr r0, [r5] - asrs r1, r0, 8 - adds r6, r0, 0 - cmp r4, r1 - bne _08074E24 - movs r0, 0xFF - ands r0, r6 - cmp r0, 0 - bne _08074E24 - movs r0, 0x1 - negs r0, r0 - b _08074E80 -_08074E18: - ldr r6, [r5] - cmp r4, r6 - bne _08074E24 - movs r0, 0x1 - negs r0, r0 - b _08074E80 -_08074E24: - cmp r7, r2 - bge _08074E5E - lsls r0, r7, 8 - adds r1, r2, 0 - bl __divsi3 - mov r1, r8 - cmp r1, 0 - bge _08074E42 - adds r0, r6, r0 - str r0, [r5] - asrs r2, r0, 8 - cmp r2, r4 - blt _08074E7E - b _08074E56 -_08074E42: - subs r0, r6, r0 - str r0, [r5] - asrs r2, r0, 8 - movs r1, 0xFF - ands r0, r1 - cmp r0, 0 - ble _08074E52 - adds r2, 0x1 -_08074E52: - cmp r2, r4 - bgt _08074E7E -_08074E56: - lsls r0, r4, 8 - str r0, [r5] - adds r2, r4, 0 - b _08074E7E -_08074E5E: - mov r0, r8 - cmp r0, 0 - bge _08074E70 - ldr r0, [r5] - adds r0, r3 - str r0, [r5] - cmp r0, r4 - ble _08074E7C - b _08074E7A -_08074E70: - ldr r0, [r5] - subs r0, r3 - str r0, [r5] - cmp r0, r4 - bge _08074E7C -_08074E7A: - str r4, [r5] -_08074E7C: - ldr r2, [r5] -_08074E7E: - adds r0, r2, 0 -_08074E80: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8074DB8 - - thumb_func_start sub_8074E8C -sub_8074E8C: @ 8074E8C - push {r4-r7,lr} - adds r4, r0, 0 - mov r12, r3 - ldr r7, [sp, 0x14] - ldr r0, [sp, 0x18] - lsls r0, 24 - lsrs r6, r0, 24 - subs r5, r1, r2 - cmp r5, 0 - bge _08074EA4 - movs r5, 0 - b _08074EAA -_08074EA4: - cmp r5, r4 - ble _08074EAA - adds r5, r4, 0 -_08074EAA: - lsls r0, r6, 27 - lsrs r3, r0, 24 - movs r1, 0 - cmp r1, r6 - bcs _08074EC4 - movs r2, 0 -_08074EB6: - adds r0, r7, r1 - strb r2, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, r6 - bcc _08074EB6 -_08074EC4: - cmp r4, r3 - bge _08074ED8 - mov r1, r12 - ldr r0, [r1] - muls r0, r3 - adds r1, r4, 0 - bl __divsi3 - asrs r0, 8 - b _08074EE4 -_08074ED8: - mov r1, r12 - ldr r0, [r1] - muls r0, r3 - adds r1, r4, 0 - bl __divsi3 -_08074EE4: - lsls r0, 24 - lsrs r2, r0, 24 - adds r3, r2, 0 - cmp r3, 0 - bne _08074EFA - cmp r5, 0 - ble _08074EFA - movs r0, 0x1 - strb r0, [r7] - movs r3, 0x1 - b _08074F1E -_08074EFA: - movs r1, 0 - movs r4, 0x8 -_08074EFE: - cmp r1, r6 - bcs _08074F1E - cmp r2, 0x7 - bls _08074F1A - adds r0, r7, r1 - strb r4, [r0] - adds r0, r2, 0 - subs r0, 0x8 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - b _08074EFE -_08074F1A: - adds r0, r7, r1 - strb r2, [r0] -_08074F1E: - adds r0, r3, 0 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8074E8C - - thumb_func_start sub_8074F28 -sub_8074F28: @ 8074F28 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - adds r5, r0, 0 - adds r6, r1, 0 - adds r4, r2, 0 - mov r8, r3 - ldr r0, [r5] - ldr r1, [r5, 0x4] - ldr r2, [r5, 0x8] - movs r3, 0x6 - str r3, [sp] - movs r3, 0x1 - str r3, [sp, 0x4] - adds r3, r6, 0 - bl sub_8074DB8 - lsls r0, 16 - lsrs r7, r0, 16 - adds r0, r5, 0 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_8074F88 - ldr r0, [r5] - cmp r0, 0x2F - bgt _08074F68 - ldr r0, [r6] - lsls r0, 8 - lsrs r1, r0, 16 - b _08074F6A -_08074F68: - ldrh r1, [r6] -_08074F6A: - movs r2, 0 - ldrsh r0, [r5, r2] - lsls r1, 16 - asrs r1, 16 - mov r2, r8 - bl sub_8072304 - lsls r0, r7, 16 - asrs r0, 16 - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8074F28 - - thumb_func_start sub_8074F88 -sub_8074F88: @ 8074F88 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x1C - adds r5, r0, 0 - adds r3, r1, 0 - mov r8, r2 - ldr r0, [r5] - ldr r1, [r5, 0x4] - ldr r2, [r5, 0x8] - add r4, sp, 0x8 - str r4, [sp] - movs r4, 0x6 - str r4, [sp, 0x4] - bl sub_8074E8C - movs r3, 0 - add r7, sp, 0x10 - mov r12, r7 - ldrb r0, [r5, 0xC] - lsls r6, r0, 27 - ldr r4, [r5, 0x10] -_08074FB4: - lsls r2, r3, 1 - add r2, r12 - lsrs r1, r6, 15 - mov r0, sp - adds r0, r3 - adds r0, 0x8 - ldrb r0, [r0] - adds r0, r4, r0 - orrs r1, r0 - strh r1, [r2] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x5 - bls _08074FB4 - adds r0, r7, 0 - mov r1, r8 - movs r2, 0x6 - bl CpuSet - add sp, 0x1C - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8074F88 - - thumb_func_start sub_8074FE8 -sub_8074FE8: @ 8074FE8 - push {r4-r7,lr} - adds r6, r2, 0 - lsls r3, 27 - lsrs r7, r3, 24 - subs r5, r0, r1 - cmp r5, 0 - bge _08074FFA - movs r5, 0 - b _08075000 -_08074FFA: - cmp r5, r6 - ble _08075000 - adds r5, r6, 0 -_08075000: - muls r0, r7 - adds r1, r6, 0 - bl __divsi3 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - muls r0, r7 - adds r1, r6, 0 - bl __divsi3 - lsls r4, 24 - asrs r4, 24 - lsls r0, 24 - asrs r0, 24 - subs r0, r4, r0 - cmp r0, 0 - bge _08075028 - negs r0, r0 -_08075028: - lsls r0, 24 - lsrs r0, 24 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8074FE8 - - thumb_func_start GetScaledHPFraction -GetScaledHPFraction: @ 8075034 - push {r4,lr} - lsls r2, 24 - lsrs r2, 24 - lsls r0, 16 - asrs r4, r0, 16 - adds r0, r4, 0 - muls r0, r2 - lsls r1, 16 - asrs r1, 16 - bl __divsi3 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _08075058 - cmp r4, 0 - ble _08075058 - movs r0, 0x1 -_08075058: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetScaledHPFraction - - thumb_func_start sub_8075060 -sub_8075060: @ 8075060 - push {lr} - lsls r0, 16 - asrs r0, 16 - lsls r1, 16 - asrs r1, 16 - cmp r0, r1 - bne _08075072 - movs r0, 0x4 - b _0807508E -_08075072: - movs r2, 0x30 - bl GetScaledHPFraction - lsls r0, 24 - lsrs r1, r0, 24 - movs r0, 0x3 - cmp r1, 0x18 - bhi _0807508E - movs r0, 0x2 - cmp r1, 0x9 - bhi _0807508E - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 -_0807508E: - pop {r1} - bx r1 - thumb_func_end sub_8075060 - - thumb_func_start write_to_rbox -write_to_rbox: @ 8075094 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - mov r10, r0 - mov r8, r1 - mov r9, r2 - adds r5, r3, 0 - ldr r7, [sp, 0x40] - ldr r0, =gUnknown_0832C3F8 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x18] - str r1, [sp, 0x1C] - add r0, sp, 0x18 - bl AddWindow - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r6, r4, 24 - lsrs r6, 24 - lsls r1, r5, 4 - orrs r1, r5 - lsls r1, 24 - lsrs r1, 24 - adds r0, r6, 0 - bl FillWindowPixelBuffer - add r0, sp, 0x14 - movs r2, 0 - strb r5, [r0] - adds r1, r0, 0 - movs r0, 0x1 - strb r0, [r1, 0x1] - movs r0, 0x3 - strb r0, [r1, 0x2] - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - mov r0, r9 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - str r2, [sp] - str r2, [sp, 0x4] - str r1, [sp, 0x8] - movs r0, 0x1 - negs r0, r0 - str r0, [sp, 0xC] - mov r0, r10 - str r0, [sp, 0x10] - adds r0, r6, 0 - movs r1, 0 - mov r2, r8 - mov r3, r9 - bl AddTextPrinterParametrized2 - str r4, [r7] - adds r0, r6, 0 - movs r1, 0x7 - bl GetWindowAttribute - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end write_to_rbox - - thumb_func_start sub_807512C -sub_807512C: @ 807512C - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl RemoveWindow - pop {r0} - bx r0 - thumb_func_end sub_807512C - - thumb_func_start sub_807513C -sub_807513C: @ 807513C - push {lr} - sub sp, 0x4 - adds r3, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r1, r0, 8 - adds r0, r1 - lsls r1, r0, 16 - adds r0, r1 - str r0, [sp] - lsls r2, 3 - ldr r0, =0x001fffff - ands r2, r0 - movs r0, 0xA0 - lsls r0, 19 - orrs r2, r0 - mov r0, sp - adds r1, r3, 0 - bl CpuSet - add sp, 0x4 - pop {r0} - bx r0 - .pool - thumb_func_end sub_807513C - - thumb_func_start sub_8075170 -sub_8075170: @ 8075170 - push {lr} - adds r3, r0, 0 - adds r0, r1, 0 - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - lsls r2, 3 - ldr r1, =0x001fffff - ands r2, r1 - movs r1, 0x80 - lsls r1, 19 - orrs r2, r1 - adds r1, r3, 0 - bl CpuSet - pop {r0} - bx r0 - .pool - thumb_func_end sub_8075170 - - thumb_func_start sub_8075198 -sub_8075198: @ 8075198 - push {r4-r6,lr} - adds r6, r0, 0 - adds r5, r1, 0 - adds r4, r2, 0 - movs r1, 0x80 - lsls r1, 1 - adds r0, r5, r1 - adds r1, r6, r1 - lsls r2, r4, 3 - ldr r3, =0x001fffff - ands r2, r3 - movs r3, 0x80 - lsls r3, 19 - orrs r2, r3 - bl CpuSet - cmp r4, 0 - ble _080751D4 -_080751BC: - adds r0, r5, 0 - adds r0, 0x14 - adds r1, r6, 0 - adds r1, 0x14 - ldr r2, =0x04000003 - bl CpuSet - adds r6, 0x20 - adds r5, 0x20 - subs r4, 0x1 - cmp r4, 0 - bne _080751BC -_080751D4: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8075198 - - thumb_func_start sub_80751E4 -sub_80751E4: @ 80751E4 - push {r4-r6,lr} - adds r6, r0, 0 - adds r5, r1, 0 - lsls r4, r2, 3 - ldr r0, =0x001fffff - ands r4, r0 - movs r0, 0x80 - lsls r0, 19 - orrs r4, r0 - adds r0, r5, 0 - adds r1, r6, 0 - adds r2, r4, 0 - bl CpuSet - movs r0, 0x80 - lsls r0, 1 - adds r5, r0 - adds r6, r0 - adds r0, r5, 0 - adds r1, r6, 0 - adds r2, r4, 0 - bl CpuSet - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80751E4 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/cable_club.s b/asm/cable_club.s index 74016152f..15ba76e9c 100644 --- a/asm/cable_club.s +++ b/asm/cable_club.s @@ -1980,7 +1980,7 @@ _080B3474: bl sub_800B524 lsls r0, r4, 24 lsrs r0, 24 - bl sub_800A5EC + bl ResetBlockReceivedFlag adds r5, 0x1C adds r4, 0x1 _080B349A: diff --git a/asm/clear_save_data_screen.s b/asm/clear_save_data_screen.s deleted file mode 100644 index 5efff250c..000000000 --- a/asm/clear_save_data_screen.s +++ /dev/null @@ -1,399 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start c2_clear_save_data_screen_2 -c2_clear_save_data_screen_2: @ 817ACC8 - push {lr} - bl sub_817AE00 - lsls r0, 24 - cmp r0, 0 - beq _0817ACDC - ldr r0, =sub_817ACE4 - movs r1, 0 - bl CreateTask -_0817ACDC: - pop {r0} - bx r0 - .pool - thumb_func_end c2_clear_save_data_screen_2 - - thumb_func_start sub_817ACE4 -sub_817ACE4: @ 817ACE4 - push {r4,lr} - sub sp, 0xC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - movs r1, 0 - movs r2, 0x2 - movs r3, 0xE - bl SetWindowBorderStyle - ldr r2, =gText_ClearAllSaveData - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r1, 0x1 - movs r3, 0 - bl PrintTextOnWindow - ldr r0, =gUnknown_085F06D8 - movs r1, 0x2 - movs r2, 0xE - movs r3, 0x1 - bl CreateYesNoMenu - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_817AD40 - str r1, [r0] - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_817ACE4 - - thumb_func_start sub_817AD40 -sub_817AD40: @ 817AD40 - push {r4,r5,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_8198C58 - lsls r0, 24 - asrs r4, r0, 24 - cmp r4, 0 - beq _0817AD68 - cmp r4, 0 - bgt _0817AD62 - movs r0, 0x1 - negs r0, r0 - cmp r4, r0 - beq _0817ADA0 - b _0817ADB2 -_0817AD62: - cmp r4, 0x1 - beq _0817ADA0 - b _0817ADB2 -_0817AD68: - movs r0, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r2, =gText_ClearingData - movs r0, 0x1 - str r0, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0 - movs r1, 0x1 - movs r3, 0 - bl PrintTextOnWindow - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_817ADC0 - str r1, [r0] - b _0817ADB2 - .pool -_0817ADA0: - movs r0, 0x5 - bl PlaySE - adds r0, r5, 0 - bl DestroyTask - ldr r0, =sub_817AFD4 - bl SetMainCallback2 -_0817ADB2: - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_817AD40 - - thumb_func_start sub_817ADC0 -sub_817ADC0: @ 817ADC0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl ClearSaveData - adds r0, r4, 0 - bl DestroyTask - ldr r0, =sub_817AFD4 - bl SetMainCallback2 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_817ADC0 - - thumb_func_start sub_817ADE4 -sub_817ADE4: @ 817ADE4 - push {lr} - bl RunTasks - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_817ADE4 - - thumb_func_start sub_817ADF4 -sub_817ADF4: @ 817ADF4 - push {lr} - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_817ADF4 - - thumb_func_start sub_817AE00 -sub_817AE00: @ 817AE00 - push {r4,lr} - sub sp, 0xC - ldr r0, =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _0817AE18 - cmp r0, 0x1 - bne _0817AE18 - b _0817AFA4 -_0817AE18: - movs r0, 0 - bl SetVBlankCallback - movs r0, 0 - movs r1, 0 - bl SetGpuReg - movs r0, 0x10 - movs r1, 0 - bl SetGpuReg - movs r0, 0x12 - movs r1, 0 - bl SetGpuReg - movs r0, 0x1C - movs r1, 0 - bl SetGpuReg - movs r0, 0x1E - movs r1, 0 - bl SetGpuReg - movs r0, 0x40 - movs r1, 0 - bl SetGpuReg - movs r0, 0x44 - movs r1, 0 - bl SetGpuReg - movs r0, 0x48 - movs r1, 0 - bl SetGpuReg - movs r0, 0x4A - movs r1, 0 - bl SetGpuReg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - add r0, sp, 0x4 - movs r4, 0 - strh r4, [r0] - ldr r1, =0x040000d4 - str r0, [r1] - movs r0, 0xC0 - lsls r0, 19 - str r0, [r1, 0x4] - ldr r0, =0x8100c000 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r2, 0 - str r2, [sp, 0x8] - add r0, sp, 0x8 - str r0, [r1] - movs r0, 0xE0 - lsls r0, 19 - str r0, [r1, 0x4] - ldr r0, =0x85000100 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - add r0, sp, 0x4 - strh r2, [r0] - str r0, [r1] - ldr r0, =0x05000002 - str r0, [r1, 0x4] - ldr r0, =0x810001ff - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - bl ResetPaletteFade - ldr r2, =gPlttBufferUnfaded - ldr r0, =0x00007fff - strh r0, [r2] - ldr r1, =gPlttBufferFaded - strh r0, [r1] - ldr r0, =0x00003945 - strh r0, [r2, 0x2] - strh r0, [r1, 0x2] - movs r1, 0 - ldr r3, =0x06000020 - ldr r0, =0x00001111 - adds r2, r0, 0 -_0817AED4: - lsls r0, r1, 1 - adds r0, r3 - strh r2, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0xF - bls _0817AED4 - movs r1, 0 - ldr r4, =0x0600f000 - movs r3, 0x1 - ldr r2, =0x000003ff -_0817AEEC: - lsls r0, r1, 1 - adds r0, r4 - strh r3, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r2 - bls _0817AEEC - bl ResetTasks - bl ResetSpriteData - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_085F06C0 - movs r0, 0 - movs r2, 0x2 - bl InitBgsFromTemplates - movs r1, 0x82 - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - movs r0, 0 - bl ShowBg - movs r0, 0x3 - bl ShowBg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - bl sub_817B02C - ldr r0, =0x0000ffff - str r0, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - movs r0, 0x1 - bl EnableInterrupts - ldr r0, =sub_817ADF4 - bl SetVBlankCallback - ldr r0, =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - b _0817AFC8 - .pool -_0817AFA4: - bl UpdatePaletteFade - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0817AFC8 - ldr r0, =sub_817ADE4 - bl SetMainCallback2 - movs r0, 0x1 - b _0817AFCA - .pool -_0817AFC8: - movs r0, 0 -_0817AFCA: - add sp, 0xC - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_817AE00 - - thumb_func_start sub_817AFD4 -sub_817AFD4: @ 817AFD4 - push {r4,lr} - sub sp, 0x4 - ldr r0, =gMain - movs r1, 0x87 - lsls r1, 3 - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, 0 - beq _0817AFEA - cmp r0, 0x1 - beq _0817B008 -_0817AFEA: - ldr r0, =0x0000ffff - str r0, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - movs r0, 0x1 - strb r0, [r4] - b _0817B020 - .pool -_0817B008: - bl UpdatePaletteFade - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0817B020 - bl FreeAllWindowBuffers - bl DoSoftReset -_0817B020: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_817AFD4 - - thumb_func_start sub_817B02C -sub_817B02C: @ 817B02C - push {lr} - ldr r0, =gUnknown_085F06C8 - bl InitWindows - bl DeactivateAllTextPrinters - movs r0, 0 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0 - movs r1, 0 - movs r2, 0x2 - movs r3, 0xE0 - bl sub_80987D4 - ldr r0, =gUnknown_0860F074 - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - pop {r0} - bx r0 - .pool - thumb_func_end sub_817B02C - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/contest.s b/asm/contest.s index eebe557e5..9c0684663 100644 --- a/asm/contest.s +++ b/asm/contest.s @@ -76,8 +76,8 @@ sub_80D7678: @ 80D7678 .pool thumb_func_end sub_80D7678 - thumb_func_start sub_80D7724 -sub_80D7724: @ 80D7724 + thumb_func_start LoadContestBgAfterMoveAnim +LoadContestBgAfterMoveAnim: @ 80D7724 push {r4,r5,lr} ldr r0, =gUnknown_08C17AB0 movs r1, 0xC0 @@ -119,7 +119,7 @@ _080D775E: pop {r0} bx r0 .pool - thumb_func_end sub_80D7724 + thumb_func_end LoadContestBgAfterMoveAnim thumb_func_start sub_80D779C sub_80D779C: @ 80D779C @@ -138,7 +138,7 @@ sub_80D779C: @ 80D779C _080D77BA: lsls r0, r4, 24 lsrs r0, 24 - ldr r1, =gUnknown_02039F34 + ldr r1, =gContestResources ldr r1, [r1] lsls r2, r4, 2 adds r1, 0x24 @@ -224,7 +224,7 @@ _080D7848: thumb_func_start sub_80D787C sub_80D787C: @ 80D787C push {r4-r7,lr} - ldr r4, =gUnknown_02039F34 + ldr r4, =gContestResources ldr r0, [r4] ldr r0, [r0] movs r1, 0 @@ -244,7 +244,7 @@ _080D7890: cmp r5, 0x3 ble _080D7890 movs r4, 0 - ldr r6, =gUnknown_02039F34 + ldr r6, =gContestResources movs r5, 0x3 _080D78AA: ldr r0, [r6] @@ -257,7 +257,7 @@ _080D78AA: subs r5, 0x1 cmp r5, 0 bge _080D78AA - ldr r4, =gUnknown_02039F34 + ldr r4, =gContestResources movs r7, 0x4 negs r7, r7 movs r6, 0xFF @@ -287,7 +287,7 @@ _080D78CC: subs r5, 0x1 cmp r5, 0 bge _080D78CC - ldr r4, =gUnknown_02039F34 + ldr r4, =gContestResources ldr r0, [r4] ldr r0, [r0, 0x8] movs r1, 0 @@ -339,7 +339,7 @@ _080D7942: cmp r5, 0x3 ble _080D7942 bl sub_80DD590 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x1C] movs r1, 0 @@ -354,7 +354,7 @@ _080D7942: thumb_func_start sub_80D7988 sub_80D7988: @ 80D7988 push {r4,r5,lr} - ldr r4, =gUnknown_02039F34 + ldr r4, =gContestResources movs r0, 0x40 bl AllocZeroed str r0, [r4] @@ -441,7 +441,7 @@ sub_80D7988: @ 80D7988 thumb_func_start sub_80D7A5C sub_80D7A5C: @ 80D7A5C push {r4,r5,lr} - ldr r5, =gUnknown_02039F34 + ldr r5, =gContestResources ldr r0, [r5] ldr r0, [r0] bl Free @@ -590,7 +590,7 @@ _080D7BD4: strb r0, [r6] b _080D7C56 _080D7BDA: - ldr r4, =gUnknown_02039F34 + ldr r4, =gContestResources ldr r0, [r4] ldr r0, [r0] adds r0, 0x59 @@ -628,7 +628,7 @@ _080D7C04: ldr r0, =sub_80D7C7C movs r1, 0xA bl CreateTask - ldr r1, =gUnknown_02039F34 + ldr r1, =gContestResources ldr r1, [r1] ldr r1, [r1] strb r0, [r1, 0x8] @@ -840,7 +840,7 @@ sub_80D7DE8: @ 80D7DE8 bl GetMultiplayerId adds r0, r4, 0 bl DestroyTask - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0] ldrb r1, [r0, 0x8] @@ -973,7 +973,7 @@ _080D7F40: bl CopyToBgTilemapBuffer movs r0, 0x2 bl CopyBgTilemapBufferToVram - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r1, [r0, 0x2C] ldr r2, =0x0201aa04 @@ -1038,7 +1038,7 @@ _080D8004: bl sub_80DBF90 bl sub_80DB2BC bl sub_80DB120 - ldr r1, =gUnknown_02039F34 + ldr r1, =gContestResources ldr r1, [r1] ldr r1, [r1] movs r4, 0 @@ -1048,7 +1048,7 @@ _080D8004: bl sub_80DC594 bl sub_80DC5E8 bl sub_80DC7EC - ldr r1, =gBanksBySide + ldr r1, =gBanksByIdentity strb r4, [r1] movs r0, 0x1 strb r0, [r1, 0x1] @@ -1256,7 +1256,7 @@ _080D81FA: b _080D822C .pool _080D8208: - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0] ldrb r1, [r0, 0x6] @@ -1401,7 +1401,7 @@ sub_80D833C: @ 80D833C str r1, [r0, 0x8] ldr r0, [r0, 0x8] ldr r0, =gStringVar1 - ldr r1, =gUnknown_02039F34 + ldr r1, =gContestResources ldr r1, [r1] ldr r1, [r1] ldrb r1, [r1, 0x1] @@ -1527,7 +1527,7 @@ sub_80D8490: @ 80D8490 mov r8, r0 ldr r2, =gUnknown_02039E00 + 30 mov r10, r2 - ldr r7, =gUnknown_02039F34 + ldr r7, =gContestResources _080D84B8: lsls r1, r6, 1 mov r0, r8 @@ -1632,7 +1632,7 @@ _080D856C: lsrs r6, r0, 24 cmp r6, 0x3 bls _080D84B8 - ldr r4, =gUnknown_02039F34 + ldr r4, =gContestResources ldr r0, [r4] ldr r0, [r0] ldrb r0, [r0] @@ -1738,7 +1738,7 @@ _080D868E: movs r0, 0 bl sub_80DC490 ldr r0, =gStringVar1 - ldr r1, =gUnknown_02039F34 + ldr r1, =gContestResources ldr r1, [r1] ldr r1, [r1] ldrb r1, [r1, 0x1] @@ -1785,7 +1785,7 @@ _080D86E4: b _080D87FA .pool _080D8730: - ldr r4, =gUnknown_02039F34 + ldr r4, =gContestResources ldr r0, [r4] ldr r0, [r0] ldrb r0, [r0] @@ -1804,7 +1804,7 @@ _080D8754: subs r0, 0x1 _080D8756: strb r0, [r1] - ldr r4, =gUnknown_02039F34 + ldr r4, =gContestResources ldr r0, [r4] ldr r0, [r0] ldrb r0, [r0] @@ -1831,7 +1831,7 @@ _080D8756: b _080D87FA .pool _080D879C: - ldr r4, =gUnknown_02039F34 + ldr r4, =gContestResources ldr r0, [r4] ldr r0, [r0] ldrb r0, [r0] @@ -1851,7 +1851,7 @@ _080D87C0: adds r0, r2, 0x1 strb r0, [r1] _080D87C4: - ldr r4, =gUnknown_02039F34 + ldr r4, =gContestResources ldr r0, [r4] ldr r0, [r0] ldrb r0, [r0] @@ -1967,7 +1967,7 @@ sub_80D8894: @ 80D8894 ldr r4, =gUnknown_02039F25 ldrb r0, [r4] bl sub_80DB8B8 - ldr r1, =gUnknown_02039F34 + ldr r1, =gContestResources ldr r1, [r1] ldrb r2, [r4] ldr r3, [r1, 0x4] @@ -2020,7 +2020,7 @@ sub_80D892C: @ 80D892C lsrs r0, 24 bl DestroyTask ldr r2, =gTasks - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0] ldrb r1, [r0, 0x8] @@ -2145,7 +2145,7 @@ sub_80D8A50: @ 80D8A50 push {lr} lsls r0, 24 lsrs r2, r0, 24 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0] ldrh r1, [r0, 0x6] @@ -2184,7 +2184,7 @@ sub_80D8A88: @ 80D8A88 asrs r0, 16 cmp r0, 0x13 ble _080D8B18 - ldr r2, =gUnknown_02039F34 + ldr r2, =gContestResources ldr r0, [r2] ldr r1, [r0] movs r0, 0 @@ -2217,7 +2217,7 @@ _080D8ADE: lsls r0, 24 lsrs r0, 24 bl sub_80DB8B8 - ldr r1, =gUnknown_02039F34 + ldr r1, =gContestResources ldr r1, [r1] ldrb r2, [r5] adds r2, r4 @@ -2259,7 +2259,7 @@ sub_80D8B38: @ 80D8B38 lsls r0, 24 lsrs r0, 24 mov r8, r0 - ldr r2, =gUnknown_02039F34 + ldr r2, =gContestResources ldr r0, [r2] ldr r0, [r0] ldrb r6, [r0, 0x11] @@ -2348,7 +2348,7 @@ _080D8B84: _080D8C74: bl sub_80DCD48 movs r7, 0 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r1, [r0] ldr r0, [r0, 0x8] @@ -2367,7 +2367,7 @@ _080D8C92: cmp r1, r0 bne _080D8C92 _080D8C9C: - ldr r4, =gUnknown_02039F34 + ldr r4, =gContestResources ldr r0, [r4] ldr r0, [r0] strb r7, [r0, 0x11] @@ -2447,7 +2447,7 @@ _080D8D56: adds r0, r6, 0 bl sub_80DF080 bl sub_80DF750 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r1, [r0, 0x4] lsls r0, r6, 3 @@ -2678,7 +2678,7 @@ _080D8F84: beq _080D8F92 bl _080DA100 _080D8F92: - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0] adds r0, 0x5A @@ -2719,7 +2719,7 @@ _080D8FB8: adds r0, r4, 0 bl sub_80DEAA8 adds r0, r4, 0 - bl move_anim_start_t1 + bl DoMoveAnim ldr r1, =gTasks mov r2, r8 lsls r0, r2, 2 @@ -2742,7 +2742,7 @@ _080D9010: _080D9024: adds r0, r6, 0 bl sub_80DE9B0 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r1, [r0] ldr r0, [r1] adds r0, 0x5A @@ -3173,7 +3173,7 @@ _080D939E: cmp r7, 0x3 bgt _080D9418 ldr r5, =gUnknown_02039F26 - ldr r2, =gUnknown_02039F34 + ldr r2, =gContestResources _080D93BC: movs r3, 0 str r3, [sp] @@ -3488,7 +3488,7 @@ _080D963C: movs r0, 0x64 bl PlaySE _080D9642: - ldr r5, =gUnknown_02039F34 + ldr r5, =gContestResources ldr r0, [r5] ldr r1, [r0, 0x4] lsls r0, r7, 3 @@ -3588,7 +3588,7 @@ _080D971C: beq _080D9728 bl _080DA100 _080D9728: - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r1, [r0, 0x4] lsls r0, r6, 3 @@ -3739,7 +3739,7 @@ _080D9870: bgt _080D988E bl _080DA100 _080D988E: - ldr r7, =gUnknown_02039F34 + ldr r7, =gContestResources ldr r0, [r7] ldr r1, [r0, 0x4] lsls r0, r6, 3 @@ -3866,7 +3866,7 @@ _080D999E: beq _080D99A8 b _080DA100 _080D99A8: - ldr r5, =gUnknown_02039F34 + ldr r5, =gContestResources ldr r0, [r5] ldr r1, [r0, 0x4] lsls r4, r6, 3 @@ -3898,7 +3898,7 @@ _080D99A8: .pool _080D99EC: bl sub_80DCD48 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r1, [r0, 0x14] lsls r0, r6, 2 @@ -3992,7 +3992,7 @@ _080D9AAE: lsls r0, r5, 24 cmp r0, 0 ble _080D9AD2 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r1, [r0, 0x4] ldr r2, [sp, 0x4] @@ -4013,7 +4013,7 @@ _080D9AD2: ldr r2, =gUnknown_02039E00 + 2 adds r1, r2 bl StringCopy - ldr r4, =gUnknown_02039F34 + ldr r4, =gContestResources ldr r0, [r4] ldr r1, [r0] ldrb r0, [r1, 0x13] @@ -4374,7 +4374,7 @@ _080D9DC2: _080D9DD4: bl sub_80DB89C ldr r0, =gStringVar3 - ldr r5, =gUnknown_02039F34 + ldr r5, =gContestResources ldr r1, [r5] ldr r1, [r1, 0x10] ldr r1, [r1] @@ -4725,7 +4725,7 @@ sub_80DA110: @ 80DA110 push {lr} lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_02039F34 + ldr r1, =gContestResources ldr r1, [r1] ldr r3, [r1] ldrb r2, [r3, 0x7] @@ -4829,7 +4829,7 @@ _080DA1C6: ands r0, r1 cmp r0, 0 beq _080DA224 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r2, [r0] ldrb r0, [r2, 0x7] @@ -4861,7 +4861,7 @@ _080DA224: bl sub_80DBA18 b _080DA23E _080DA22E: - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0] ldrb r1, [r0, 0x7] @@ -4947,7 +4947,7 @@ _080DA2BA: strh r5, [r4, 0xA] b _080DA2F6 _080DA2D2: - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0] ldrb r1, [r0, 0x7] @@ -5082,7 +5082,7 @@ sub_80DA3CC: @ 80DA3CC ldrsh r0, [r6, r1] cmp r0, 0 bne _080DA448 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r5, =gUnknown_02039F25 ldrb r1, [r5] @@ -5255,7 +5255,7 @@ sub_80DA51C: @ 80DA51C ldrh r1, [r4] movs r0, 0xC bl SetGpuReg - ldr r2, =gUnknown_02039F34 + ldr r2, =gContestResources ldr r0, [r2] ldr r1, [r0] ldrb r0, [r1, 0x1] @@ -5296,7 +5296,7 @@ sub_80DA5B4: @ 80DA5B4 push {lr} lsls r0, 24 lsrs r2, r0, 24 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0] ldrb r1, [r0, 0x6] @@ -5327,7 +5327,7 @@ sub_80DA5E8: @ 80DA5E8 strh r1, [r0] ldr r0, =gBattle_BG2_Y strh r1, [r0] - ldr r4, =gUnknown_02039F34 + ldr r4, =gContestResources movs r3, 0 ldr r2, =gUnknown_02039F10 movs r1, 0x3 @@ -5350,7 +5350,7 @@ _080DA600: ands r0, r1 cmp r0, 0 bne _080DA65C - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r2, [r0] ldr r0, =gUnknown_02039F25 ldrb r1, [r0] @@ -5553,7 +5553,7 @@ sub_80DA7EC: @ 80DA7EC movs r3, 0x10 bl BeginNormalPaletteFade ldr r2, =gTasks - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0] ldrb r1, [r0, 0x8] @@ -6818,7 +6818,7 @@ _080DB1CC: strh r0, [r4, 0x2E] strh r5, [r4, 0x32] adds r0, r5, 0 - bl sub_80DB2A8 + bl IsSpeciesNotUnown lsls r0, 24 cmp r0, 0 beq _080DB278 @@ -6851,8 +6851,8 @@ _080DB280: .pool thumb_func_end sub_80DB174 - thumb_func_start sub_80DB2A8 -sub_80DB2A8: @ 80DB2A8 + thumb_func_start IsSpeciesNotUnown +IsSpeciesNotUnown: @ 80DB2A8 push {lr} lsls r0, 16 lsrs r0, 16 @@ -6865,12 +6865,12 @@ _080DB2B6: _080DB2B8: pop {r1} bx r1 - thumb_func_end sub_80DB2A8 + thumb_func_end IsSpeciesNotUnown thumb_func_start sub_80DB2BC sub_80DB2BC: @ 80DB2BC push {r4-r6,lr} - ldr r5, =gUnknown_02039F34 + ldr r5, =gContestResources ldr r0, [r5] ldr r0, [r0, 0x24] movs r4, 0xA0 @@ -7199,7 +7199,7 @@ sub_80DB584: @ 80DB584 movs r4, 0 movs r5, 0 _080DB58A: - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x4] adds r0, r5, r0 @@ -7238,7 +7238,7 @@ sub_80DB5B8: @ 80DB5B8 lsrs r1, 24 mov r8, r1 mov r10, r8 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources mov r9, r0 ldr r0, [r0] ldr r1, [r0, 0x4] @@ -7365,7 +7365,7 @@ _080DB6B6: adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x4] add r0, r8 @@ -7486,7 +7486,7 @@ sub_80DB798: @ 80DB798 adds r1, 0x2 lsls r1, 24 lsrs r7, r1, 24 - ldr r1, =gUnknown_02039F34 + ldr r1, =gContestResources ldr r1, [r1] ldr r2, [r1, 0x4] lsls r1, r0, 3 @@ -7647,7 +7647,7 @@ _080DB8D0: .pool _080DB8F4: ldr r2, =gUnknown_02039E00 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0] ldrb r0, [r0] @@ -7674,7 +7674,7 @@ _080DB91E: lsls r0, r4, 24 lsrs r0, 24 bl sub_80DB8B8 - ldr r1, =gUnknown_02039F34 + ldr r1, =gContestResources ldr r1, [r1] ldr r1, [r1, 0x4] adds r1, r5, r1 @@ -7696,7 +7696,7 @@ sub_80DB944: @ 80DB944 mov r6, r8 push {r6,r7} sub sp, 0x8 - ldr r5, =gUnknown_02039F34 + ldr r5, =gContestResources mov r4, sp movs r3, 0 movs r6, 0x3 @@ -7751,7 +7751,7 @@ _080DB9A4: movs r0, 0x4 negs r0, r0 mov r9, r0 - ldr r1, =gUnknown_02039F34 + ldr r1, =gContestResources mov r8, r1 movs r7, 0x3 mov r12, r7 @@ -7806,7 +7806,7 @@ _080DB9F8: thumb_func_start sub_80DBA18 sub_80DBA18: @ 80DBA18 push {r4,r5,lr} - ldr r4, =gUnknown_02039F34 + ldr r4, =gContestResources movs r2, 0 movs r3, 0x3 _080DBA20: @@ -7854,7 +7854,7 @@ sub_80DBA68: @ 80DBA68 push {lr} lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_02039F34 + ldr r1, =gContestResources ldr r1, [r1] ldr r2, [r1, 0x4] lsls r1, r0, 3 @@ -7889,7 +7889,7 @@ sub_80DBAA0: @ 80DBAA0 mov r6, r9 mov r5, r8 push {r5-r7} - ldr r5, =gUnknown_02039F34 + ldr r5, =gContestResources movs r0, 0 mov r8, r0 movs r1, 0x7 @@ -8092,7 +8092,7 @@ _080DBC1A: b _080DBAC0 _080DBC34: movs r6, 0 - ldr r5, =gUnknown_02039F34 + ldr r5, =gContestResources movs r7, 0 movs r4, 0 _080DBC3C: @@ -8132,7 +8132,7 @@ _080DBC3C: adds r6, 0x1 cmp r6, 0x3 ble _080DBC3C - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r2, [r0, 0x10] ldrb r1, [r2, 0x1] @@ -8155,7 +8155,7 @@ sub_80DBCA8: @ 80DBCA8 push {lr} lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_02039F34 + ldr r1, =gContestResources ldr r1, [r1] ldr r2, [r1, 0x4] lsls r1, r0, 3 @@ -8626,7 +8626,7 @@ sub_80DC028: @ 80DC028 lsls r2, 24 lsrs r2, 24 mov r8, r2 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x14] lsls r1, r2, 2 @@ -8746,7 +8746,7 @@ _080DC126: bne _080DC15C adds r0, r7, 0 bl DestroyTask - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x14] mov r2, r9 @@ -8950,7 +8950,7 @@ _080DC2C8: movs r1, 0xB4 movs r3, 0x1 bl CreateSprite - ldr r1, =gUnknown_02039F34 + ldr r1, =gContestResources ldr r1, [r1] ldr r2, [r1, 0x14] lsls r1, r4, 2 @@ -8970,7 +8970,7 @@ sub_80DC308: @ 80DC308 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 - ldr r4, =gUnknown_02039F34 + ldr r4, =gContestResources ldr r0, [r4] ldr r2, [r0, 0x14] lsls r3, r6, 2 @@ -9067,7 +9067,7 @@ _080DC3B0: sub_80DC3C4: @ 80DC3C4 push {r4,lr} movs r2, 0 - ldr r3, =gUnknown_02039F34 + ldr r3, =gContestResources ldr r0, [r3] ldr r0, [r0, 0x14] ldrb r1, [r0, 0x2] @@ -9114,7 +9114,7 @@ sub_80DC408: @ 80DC408 ldrsh r0, [r3, r4] cmp r1, r0 bne _080DC440 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] movs r2, 0x2E ldrsh r1, [r3, r2] @@ -9145,7 +9145,7 @@ sub_80DC44C: @ 80DC44C push {r4-r6,lr} movs r2, 0 ldr r6, =gSprites - ldr r5, =gUnknown_02039F34 + ldr r5, =gContestResources ldr r4, =gUnknown_08587A6C ldr r3, =gUnknown_02039F26 _080DC458: @@ -9180,7 +9180,7 @@ sub_80DC490: @ 80DC490 movs r3, 0 ldr r7, =gUnknown_02039F26 ldr r5, =gSprites - ldr r4, =gUnknown_02039F34 + ldr r4, =gContestResources movs r2, 0 _080DC4A0: adds r0, r3, r7 @@ -9231,7 +9231,7 @@ sub_80DC4F0: @ 80DC4F0 ldr r0, =gUnknown_08587B08 bl LoadSpritePalette movs r5, 0 - ldr r7, =gUnknown_02039F34 + ldr r7, =gContestResources ldr r0, =gSprites mov r8, r0 movs r6, 0 @@ -9315,7 +9315,7 @@ sub_80DC594: @ 80DC594 movs r3, 0x4 orrs r2, r3 strb r2, [r1] - ldr r1, =gUnknown_02039F34 + ldr r1, =gContestResources ldr r1, [r1] ldr r1, [r1] adds r1, 0x58 @@ -9333,7 +9333,7 @@ sub_80DC5E8: @ 80DC5E8 bl CreateTask lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_02039F34 + ldr r1, =gContestResources ldr r1, [r1] ldr r1, [r1] strb r0, [r1, 0xD] @@ -9365,7 +9365,7 @@ sub_80DC630: @ 80DC630 lsls r0, 24 lsrs r0, 24 ldr r3, =gTasks - ldr r1, =gUnknown_02039F34 + ldr r1, =gContestResources ldr r5, [r1] ldr r1, [r5] ldrb r2, [r1, 0xD] @@ -9430,7 +9430,7 @@ sub_80DC6A4: @ 80DC6A4 adds r0, r2 ldrb r0, [r0, 0x8] adds r5, r0, 0 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r4, [r0] ldr r0, [r4] ldrb r1, [r0, 0xD] @@ -9553,7 +9553,7 @@ _080DC79C: eors r1, r2 strh r1, [r0] _080DC7AA: - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0] adds r0, 0x14 @@ -9590,7 +9590,7 @@ sub_80DC7EC: @ 80DC7EC ldr r0, =sub_80DC8D0 movs r1, 0x1E bl CreateTask - ldr r1, =gUnknown_02039F34 + ldr r1, =gContestResources ldr r1, [r1] ldr r1, [r1] strb r0, [r1, 0xE] @@ -9614,7 +9614,7 @@ sub_80DC81C: @ 80DC81C lsls r0, 24 lsrs r0, 24 ldr r3, =gTasks - ldr r1, =gUnknown_02039F34 + ldr r1, =gContestResources ldr r4, [r1] ldr r1, [r4] ldrb r2, [r1, 0xE] @@ -9819,7 +9819,7 @@ sub_80DC9B4: @ 80DC9B4 push {lr} lsls r0, 24 lsrs r2, r0, 24 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r1, [r0, 0x4] lsls r0, r2, 3 @@ -9923,7 +9923,7 @@ sub_80DC9EC: @ 80DC9EC lsls r3, 6 ldr r0, =0x0600e026 adds r3, r0 - ldr r7, =gUnknown_02039F34 + ldr r7, =gContestResources ldr r0, [r7] ldr r0, [r0, 0x34] str r0, [sp] @@ -10083,7 +10083,7 @@ sub_80DCBE8: @ 80DCBE8 lsrs r0, 24 mov r9, r0 bl sub_80DCBB4 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r1, [r0] ldr r2, =gSprites mov r8, r2 @@ -10186,7 +10186,7 @@ _080DCCCC: thumb_func_start sub_80DCCD8 sub_80DCCD8: @ 80DCCD8 push {lr} - ldr r1, =gUnknown_02039F34 + ldr r1, =gContestResources ldr r1, [r1] movs r3, 0x30 ldrsh r2, [r0, r3] @@ -10279,7 +10279,7 @@ _080DCD7E: bls _080DCD7E movs r5, 0 _080DCD92: - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r1, [r0, 0x4] lsls r0, r5, 3 @@ -10322,7 +10322,7 @@ _080DCDBC: bls _080DCD92 movs r5, 0 _080DCDEA: - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r1, [r0, 0x4] lsls r0, r5, 3 @@ -10536,7 +10536,7 @@ _080DCF80: ldr r3, =gUnknown_02039F26 movs r6, 0 _080DCF90: - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x4] adds r0, r6, r0 @@ -10577,7 +10577,7 @@ _080DCFCC: add r3, sp, 0x4 mov r12, r3 _080DCFE0: - ldr r6, =gUnknown_02039F34 + ldr r6, =gContestResources ldr r0, [r6] ldr r1, [r0, 0x4] lsls r0, r4, 3 @@ -10667,7 +10667,7 @@ sub_80DD080: @ 80DD080 push {r6,r7} lsls r0, 24 lsrs r6, r0, 24 - ldr r4, =gUnknown_02039F34 + ldr r4, =gContestResources ldr r3, [r4] ldr r1, [r3, 0x4] lsls r7, r6, 3 @@ -10731,7 +10731,7 @@ _080DD0B4: b _080DD12C .pool _080DD110: - ldr r4, =gUnknown_02039F34 + ldr r4, =gContestResources ldr r0, [r4] ldr r0, [r0, 0x4] lsls r3, r6, 3 @@ -10789,7 +10789,7 @@ _080DD166: adds r2, 0x1 cmp r2, 0x3 ble _080DD166 - ldr r5, =gUnknown_02039F34 + ldr r5, =gContestResources ldr r0, [r5] ldr r1, [r0, 0x4] subs r0, r7, r6 @@ -10819,7 +10819,7 @@ _080DD1B4: add r0, r9 ldr r0, [r0] bl _call_via_r0 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r1, [r0, 0x4] subs r0, r7, r6 @@ -10855,7 +10855,7 @@ _080DD204: _080DD206: adds r0, r1 strh r0, [r2, 0x2] - ldr r5, =gUnknown_02039F34 + ldr r5, =gContestResources ldr r0, [r5] ldr r1, [r0, 0x4] subs r0, r7, r6 @@ -10927,7 +10927,7 @@ _080DD206: .pool _080DD29C: ldr r2, =gContestMoves - ldr r5, =gUnknown_02039F34 + ldr r5, =gContestResources ldr r0, [r5] ldr r1, [r0, 0x4] subs r0, r7, r6 @@ -10960,7 +10960,7 @@ _080DD2D8: ands r0, r1 strb r0, [r3, 0x15] _080DD2E2: - ldr r5, =gUnknown_02039F34 + ldr r5, =gContestResources ldr r0, [r5] ldr r1, [r0, 0x4] subs r0, r7, r6 @@ -11071,7 +11071,7 @@ _080DD3AE: cmp r0, 0 bne _080DD3A2 _080DD3B6: - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r1, [r0, 0x4] subs r0, r7, r6 @@ -11092,7 +11092,7 @@ _080DD3C4: sub_80DD3D4: @ 80DD3D4 lsls r0, 24 lsrs r0, 24 - ldr r2, =gUnknown_02039F34 + ldr r2, =gContestResources ldr r2, [r2] ldr r3, [r2, 0x4] lsls r2, r0, 3 @@ -11108,7 +11108,7 @@ sub_80DD3D4: @ 80DD3D4 sub_80DD3F0: @ 80DD3F0 lsls r0, 24 lsrs r0, 24 - ldr r2, =gUnknown_02039F34 + ldr r2, =gContestResources ldr r2, [r2] ldr r3, [r2, 0x4] lsls r2, r0, 3 @@ -11177,7 +11177,7 @@ sub_80DD45C: @ 80DD45C adds r1, r2 bl StringCopy ldr r0, =gStringVar2 - ldr r5, =gUnknown_02039F34 + ldr r5, =gContestResources ldr r1, [r5] ldr r2, [r1, 0x4] lsls r1, r4, 3 @@ -11265,7 +11265,7 @@ sub_80DD560: @ 80DD560 push {r4,lr} lsls r0, 24 lsrs r0, 24 - ldr r4, =gUnknown_02039F34 + ldr r4, =gContestResources ldr r1, [r4] ldr r3, [r1, 0x4] lsls r1, r0, 3 @@ -11315,7 +11315,7 @@ _080DD5AC: cmp r4, 0x3 ble _080DD5AC movs r4, 0 - ldr r7, =gUnknown_02039F34 + ldr r7, =gContestResources ldr r1, [r7] mov r8, r1 adds r5, r2, 0 @@ -11422,7 +11422,7 @@ _080DD684: cmp r4, 0x3 ble _080DD5CA movs r4, 0 - ldr r6, =gUnknown_02039F34 + ldr r6, =gContestResources movs r5, 0 _080DD690: ldr r0, [r6] @@ -11483,7 +11483,7 @@ sub_80DD6DC: @ 80DD6DC strb r0, [r3] ldr r0, =SpriteCallbackDummy str r0, [r2, 0x1C] - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r2, [r0] ldrb r1, [r2, 0x6] @@ -11502,7 +11502,7 @@ sub_80DD720: @ 80DD720 push {r4,r5,lr} lsls r0, 24 lsrs r1, r0, 24 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0] ldrb r5, [r0, 0x12] @@ -11700,7 +11700,7 @@ _080DD8F8: adds r2, r4 ldr r0, =sub_80DD6DC str r0, [r2] - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r2, [r0] ldrb r0, [r2, 0x6] @@ -11720,7 +11720,7 @@ sub_80DD940: @ 80DD940 mov r6, r8 push {r6,r7} movs r5, 0 - ldr r6, =gUnknown_02039F34 + ldr r6, =gContestResources ldr r0, =gSprites mov r9, r0 ldr r0, =0x06010000 @@ -11905,7 +11905,7 @@ _080DDACA: movs r1, 0x1 eors r0, r1 strh r0, [r4, 0xE] - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0] ldrb r0, [r0, 0x13] @@ -11939,7 +11939,7 @@ sub_80DDB0C: @ 80DDB0C movs r1, 0xA bl CreateTask ldr r3, =gSprites - ldr r4, =gUnknown_02039F34 + ldr r4, =gContestResources ldr r2, [r4] ldr r0, [r2] adds r0, 0x58 @@ -11981,7 +11981,7 @@ sub_80DDB6C: @ 80DDB6C lsls r0, 24 lsrs r0, 24 adds r3, r0, 0 - ldr r4, =gUnknown_02039F34 + ldr r4, =gContestResources ldr r0, [r4] ldr r0, [r0] adds r0, 0x58 @@ -12040,7 +12040,7 @@ _080DDBD4: sub_80DDBE8: @ 80DDBE8 push {r4,r5,lr} ldr r5, =gSprites - ldr r4, =gUnknown_02039F34 + ldr r4, =gContestResources ldr r0, [r4] ldr r2, [r0] adds r0, r2, 0 @@ -12093,7 +12093,7 @@ task08_080CD1CC: @ 80DDC4C lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 - ldr r5, =gUnknown_02039F34 + ldr r5, =gContestResources ldr r0, [r5] ldr r0, [r0] adds r0, 0x58 @@ -12175,7 +12175,7 @@ sub_80DDCDC: @ 80DDCDC lsls r4, 24 asrs r4, 24 strh r4, [r1, 0x8] - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r2, [r0] ldrb r0, [r2, 0x6] @@ -12216,7 +12216,7 @@ _080DDD4E: bl sub_80DDB0C b _080DDD64 _080DDD54: - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0] ldrb r1, [r0, 0x6] @@ -12241,7 +12241,7 @@ _080DDD70: movs r0, 0 strh r0, [r4, 0x1E] bl sub_80DD940 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r2, [r0] ldrb r1, [r2, 0x6] @@ -12261,7 +12261,7 @@ _080DDD9C: thumb_func_start sub_80DDDA8 sub_80DDDA8: @ 80DDDA8 ldr r3, =gSprites - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r2, [r0] ldr r0, [r2] adds r0, 0x58 @@ -12292,7 +12292,7 @@ sub_80DDDA8: @ 80DDDA8 thumb_func_start sub_80DDDE4 sub_80DDDE4: @ 80DDDE4 ldr r2, =gSprites - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0] adds r0, 0x58 @@ -12316,7 +12316,7 @@ sub_80DDE0C: @ 80DDE0C ldr r0, =sub_80DDE30 movs r1, 0xF bl CreateTask - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r2, [r0] ldrb r0, [r2, 0x6] @@ -12383,7 +12383,7 @@ _080DDE8C: ldrsh r0, [r0, r1] cmp r0, 0x9 bne _080DDEBA - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r2, [r0] ldrb r1, [r2, 0x6] @@ -12421,7 +12421,7 @@ sub_80DDED0: @ 80DDED0 cmp r4, 0 ble _080DDF1C movs r5, 0 - ldr r2, =gUnknown_02039F34 + ldr r2, =gContestResources ldr r0, [r2] ldr r0, [r0] movs r1, 0x13 @@ -12433,7 +12433,7 @@ sub_80DDED0: @ 80DDED0 b _080DDF4E .pool _080DDF1C: - ldr r2, =gUnknown_02039F34 + ldr r2, =gContestResources ldr r0, [r2] ldr r0, [r0] movs r1, 0x13 @@ -12458,7 +12458,7 @@ _080DDF48: movs r5, 0xC movs r3, 0 _080DDF4C: - ldr r2, =gUnknown_02039F34 + ldr r2, =gContestResources _080DDF4E: ldr r1, =gTasks lsls r0, r6, 2 @@ -12536,7 +12536,7 @@ _080DDFB8: bne _080DDFFC adds r0, r5, 0 bl DestroyTask - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r2, [r0] ldrb r1, [r2, 0x7] @@ -12562,7 +12562,7 @@ sub_80DE008: @ 80DE008 lsrs r0, 24 mov r10, r0 movs r5, 0 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources mov r9, r0 mov r8, r9 ldr r6, =gSprites @@ -12666,7 +12666,7 @@ sub_80DE0F0: @ 80DE0F0 push {lr} lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_02039F34 + ldr r1, =gContestResources ldr r1, [r1] ldr r2, [r1, 0x4] lsls r1, r0, 3 @@ -12708,7 +12708,7 @@ sub_80DE12C: @ 80DE12C movs r0, 0x11 mov r9, r0 _080DE146: - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x8] adds r0, 0xD @@ -12789,7 +12789,7 @@ sub_80DE1E8: @ 80DE1E8 push {lr} lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_02039F34 + ldr r1, =gContestResources ldr r1, [r1] ldr r2, [r1, 0x4] lsls r1, r0, 3 @@ -12896,7 +12896,7 @@ sub_80DE224: @ 80DE224 movs r0, 0 str r0, [sp, 0x8] add r0, sp, 0x8 - ldr r4, =gUnknown_02039F34 + ldr r4, =gContestResources ldr r1, [r4] ldr r1, [r1, 0x28] ldr r2, =0x05000400 @@ -12963,7 +12963,7 @@ sub_80DE350: @ 80DE350 bl RequestDma3Fill movs r5, 0 str r5, [sp] - ldr r6, =gUnknown_02039F34 + ldr r6, =gContestResources ldr r0, [r6] ldr r1, [r0, 0x28] ldr r2, =0x05000400 @@ -13136,7 +13136,7 @@ _080DE4D0: _080DE4DA: movs r2, 0 adds r6, r3, 0 - ldr r5, =gUnknown_02039F34 + ldr r5, =gContestResources ldr r3, =gUnknown_02039F26 _080DE4E2: ldr r0, [r5] @@ -13170,7 +13170,7 @@ _080DE52C: ands r1, r0 cmp r1, 0 beq _080DE584 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r2, [r0] ldrb r0, [r2, 0x7] @@ -13201,7 +13201,7 @@ _080DE584: bl sub_80DBAA0 b _080DE59A _080DE58A: - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0] ldrb r1, [r0, 0x7] @@ -13356,7 +13356,7 @@ sub_80DE69C: @ 80DE69C mov r8, r0 movs r7, 0 ldr r6, =gSprites - ldr r5, =gUnknown_02039F34 + ldr r5, =gContestResources _080DE6AE: bl AllocOamMatrix ldr r1, [r5] @@ -13450,7 +13450,7 @@ _080DE74C: adds r1, r2 mov r0, r8 strh r0, [r1, 0x8] - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r2, [r0] ldrb r0, [r2, 0x7] @@ -13471,7 +13471,7 @@ sub_80DE794: @ 80DE794 lsls r0, 24 lsrs r6, r0, 24 ldr r2, =gSprites - ldr r3, =gUnknown_02039F34 + ldr r3, =gContestResources ldr r0, [r3] ldr r0, [r0, 0x14] ldrb r1, [r0] @@ -13515,7 +13515,7 @@ _080DE7CC: _080DE7EC: movs r4, 0 _080DE7EE: - ldr r5, =gUnknown_02039F34 + ldr r5, =gContestResources ldr r0, [r5] ldr r1, [r0, 0x14] lsls r0, r4, 2 @@ -13583,7 +13583,7 @@ sub_80DE864: @ 80DE864 push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 - ldr r4, =gUnknown_02039F34 + ldr r4, =gContestResources ldr r0, [r4] ldr r1, [r0, 0x4] lsls r0, r7, 3 @@ -13606,7 +13606,7 @@ sub_80DE864: @ 80DE864 movs r1, 0 movs r2, 0x14 bl memset - bl sub_80A3934 + bl ClearBattleAnimationVars ldr r1, =gBattleMonForms movs r2, 0 adds r0, r1, 0x3 @@ -13662,12 +13662,12 @@ _080DE8FA: cmp r0, 0x7 bne _080DE99C _080DE910: - ldr r1, =gUnknown_02038432 + ldr r1, =gAnimMoveTurn movs r0, 0 b _080DE9A0 .pool _080DE920: - ldr r6, =gUnknown_02039F34 + ldr r6, =gContestResources ldr r0, [r6] ldr r1, [r0, 0x4] lsls r0, r7, 3 @@ -13695,17 +13695,17 @@ _080DE920: b _080DE9A2 .pool _080DE960: - ldr r1, =gHappinessMoveAnim + ldr r1, =gAnimFriendship movs r0, 0xFF b _080DE9A0 .pool _080DE96C: - ldr r1, =gHappinessMoveAnim + ldr r1, =gAnimFriendship movs r0, 0 b _080DE9A0 .pool _080DE978: - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0] adds r2, r0, 0 @@ -13715,12 +13715,12 @@ _080DE978: bne _080DE99C movs r0, 0x2 strb r0, [r2] - ldr r0, =gUnknown_02038432 + ldr r0, =gAnimMoveTurn strb r1, [r0] b _080DE9A2 .pool _080DE99C: - ldr r1, =gUnknown_02038432 + ldr r1, =gAnimMoveTurn movs r0, 0x1 _080DE9A0: strb r0, [r1] @@ -13735,7 +13735,7 @@ _080DE9A2: thumb_func_start sub_80DE9B0 sub_80DE9B0: @ 80DE9B0 push {r4,lr} - ldr r4, =gUnknown_02039F34 + ldr r4, =gContestResources ldr r0, [r4] ldr r0, [r0, 0x18] movs r1, 0 @@ -13763,7 +13763,7 @@ sub_80DE9DC: @ 80DE9DC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r6, =gUnknown_02039F34 + ldr r6, =gContestResources ldr r0, [r6] ldr r0, [r0, 0x18] strb r4, [r0, 0x5] @@ -14558,7 +14558,7 @@ sub_80DF080: @ 80DF080 push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r2, =gUnknown_02039F34 + ldr r2, =gContestResources ldr r3, [r2] ldr r5, [r3, 0x10] ldrb r1, [r5, 0x1] @@ -14810,7 +14810,7 @@ sub_80DF250: @ 80DF250 movs r0, 0 str r0, [sp, 0x20] movs r4, 0 - ldr r6, =gUnknown_02039F34 + ldr r6, =gContestResources mov r2, sp adds r2, 0xC str r2, [sp, 0x28] @@ -14871,7 +14871,7 @@ _080DF2C2: subs r2, r0 cmp r2, 0x32 bgt _080DF2EE - ldr r7, =gUnknown_02039F34 + ldr r7, =gContestResources ldr r0, [r7] ldr r2, [r0, 0x1C] add r2, r9 @@ -14880,7 +14880,7 @@ _080DF2C2: orrs r0, r1 strb r0, [r2, 0xD] _080DF2EE: - ldr r1, =gUnknown_02039F34 + ldr r1, =gContestResources ldr r0, [r1] ldr r0, [r0, 0x1C] mov r3, r9 @@ -14926,7 +14926,7 @@ _080DF336: ldrb r0, [r0] cmp r0, 0 beq _080DF354 - ldr r2, =gUnknown_02039F34 + ldr r2, =gContestResources ldr r0, [r2] ldr r2, [r0, 0x1C] add r2, r9 @@ -14978,7 +14978,7 @@ _080DF38E: mov r2, r8 cmp r2, 0 bne _080DF3B4 - ldr r3, =gUnknown_02039F34 + ldr r3, =gContestResources ldr r0, [r3] ldr r2, [r0, 0x1C] add r2, r9 @@ -14987,7 +14987,7 @@ _080DF38E: orrs r0, r1 strb r0, [r2, 0xD] _080DF3B4: - ldr r6, =gUnknown_02039F34 + ldr r6, =gContestResources ldr r0, [r6] ldr r0, [r0, 0x1C] mov r7, r9 @@ -15031,7 +15031,7 @@ _080DF3EA: ldr r2, [sp, 0x28] strb r0, [r2, 0x5] movs r4, 0 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] mov r8, r0 ldr r7, [sp, 0x30] @@ -15046,7 +15046,7 @@ _080DF40E: mov r12, r4 cmp r0, 0 beq _080DF450 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r6, [r0] ldr r3, [sp, 0x28] mov r4, sp @@ -15123,7 +15123,7 @@ _080DF4B6: bne _080DF478 _080DF4C0: bl Random - ldr r1, =gUnknown_02039F34 + ldr r1, =gContestResources ldr r1, [r1] ldr r4, [r1, 0x1C] ldr r1, [sp, 0x30] @@ -15167,7 +15167,7 @@ sub_80DF4F8: @ 80DF4F8 _080DF514: movs r7, 0 movs r3, 0 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources mov r12, r0 _080DF51C: adds r0, r3, r1 @@ -15253,7 +15253,7 @@ _080DF5A0: bl __modsi3 lsls r0, 24 lsrs r5, r0, 24 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x1C] add r0, r8 @@ -15295,7 +15295,7 @@ _080DF5F6: bne _080DF628 mov r0, sp strb r1, [r0] - ldr r1, =gUnknown_02039F34 + ldr r1, =gContestResources ldr r0, [r1] ldr r0, [r0, 0x1C] ldrb r4, [r0, 0x1D] @@ -15306,7 +15306,7 @@ _080DF628: mov r1, sp movs r0, 0 strb r0, [r1] - ldr r1, =gUnknown_02039F34 + ldr r1, =gContestResources ldr r0, [r1] ldr r0, [r0, 0x1C] ldrb r4, [r0, 0xD] @@ -15360,7 +15360,7 @@ _080DF682: ldrb r6, [r0] movs r2, 0x80 movs r3, 0 - ldr r5, =gUnknown_02039F34 + ldr r5, =gContestResources ldr r0, [r5] ldr r0, [r0, 0x1C] lsls r1, r6, 4 @@ -15391,7 +15391,7 @@ _080DF6C4: ldr r5, [sp, 0x4] lsrs r0, r5, 24 bl ContestLiveUpdates_BeforeInterview_3 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x1C] add r0, r8 @@ -15519,7 +15519,7 @@ _080DF7AE: movs r2, 0x5 movs r3, 0x1 bl sub_80DEBD0 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r1, [r0, 0x1C] lsls r0, r7, 4 @@ -15606,7 +15606,7 @@ _080DF884: add r0, sp, 0x4 ldr r1, =gText_BDot bl StringCopy - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r1, [r0, 0x1C] lsls r0, r7, 4 diff --git a/asm/contest_ai.s b/asm/contest_ai.s index f937633da..a213c393c 100644 --- a/asm/contest_ai.s +++ b/asm/contest_ai.s @@ -10,7 +10,7 @@ sub_81562C4: @ 81562C4 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 - ldr r4, =gUnknown_02039F34 + ldr r4, =gContestResources ldr r0, [r4] ldr r0, [r0, 0xC] movs r1, 0 @@ -57,7 +57,7 @@ _081562DE: thumb_func_start sub_8156324 sub_8156324: @ 8156324 push {r4-r6,lr} - ldr r1, =gUnknown_02039F34 + ldr r1, =gContestResources ldr r0, [r1] ldr r0, [r0, 0xC] ldr r0, [r0, 0x14] @@ -98,7 +98,7 @@ _0815636C: bl Random adds r5, r0, 0 ands r5, r6 - ldr r4, =gUnknown_02039F34 + ldr r4, =gContestResources ldr r0, [r4] ldr r1, [r0, 0xC] adds r0, r1, 0x5 @@ -135,7 +135,7 @@ sub_81563B0: @ 81563B0 push {r4-r7,lr} mov r7, r8 push {r7} - ldr r5, =gUnknown_02039F34 + ldr r5, =gContestResources ldr r0, [r5] ldr r0, [r0, 0xC] ldrb r0, [r0] @@ -211,7 +211,7 @@ _08156444: orrs r0, r1 strb r0, [r2, 0x9] _08156458: - ldr r2, =gUnknown_02039F34 + ldr r2, =gContestResources ldr r0, [r2] ldr r3, [r0, 0xC] ldrb r1, [r3, 0x9] @@ -263,7 +263,7 @@ sub_81564AC: @ 81564AC lsls r0, 24 lsrs r2, r0, 24 movs r1, 0 - ldr r3, =gUnknown_02039F34 + ldr r3, =gContestResources ldr r0, [r3] ldr r0, [r0, 0x8] b _081564CC @@ -289,7 +289,7 @@ _081564D2: thumb_func_start sub_81564DC sub_81564DC: @ 81564DC push {r4,lr} - ldr r3, =gUnknown_02039F34 + ldr r3, =gContestResources ldr r0, [r3] ldr r0, [r0, 0xC] adds r1, r0, 0x5 @@ -331,7 +331,7 @@ _08156516: thumb_func_start sub_8156530 sub_8156530: @ 8156530 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r1, [r0, 0xC] ldr r0, [r0] @@ -349,7 +349,7 @@ sub_8156530: @ 8156530 sub_8156550: @ 8156550 push {lr} bl sub_8156530 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -384,7 +384,7 @@ _08156590: sub_8156594: @ 8156594 push {lr} bl sub_8156530 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -419,7 +419,7 @@ _081565D4: sub_81565D8: @ 81565D8 push {lr} bl sub_8156530 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -454,7 +454,7 @@ _08156618: sub_815661C: @ 815661C push {lr} bl sub_8156530 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -487,7 +487,7 @@ _0815665C: thumb_func_start sub_8156660 sub_8156660: @ 8156660 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r1, [r0, 0xC] ldr r0, [r0] @@ -507,7 +507,7 @@ sub_8156660: @ 8156660 sub_8156684: @ 8156684 push {lr} bl sub_8156660 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -542,7 +542,7 @@ _081566C4: sub_81566C8: @ 81566C8 push {lr} bl sub_8156660 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -577,7 +577,7 @@ _08156708: sub_815670C: @ 815670C push {lr} bl sub_8156660 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -612,7 +612,7 @@ _0815674C: sub_8156750: @ 8156750 push {lr} bl sub_8156660 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -645,7 +645,7 @@ _08156790: thumb_func_start sub_8156794 sub_8156794: @ 8156794 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r2, [r0, 0xC] ldr r0, [r0, 0x8] @@ -667,7 +667,7 @@ sub_8156794: @ 8156794 sub_81567BC: @ 81567BC push {lr} bl sub_8156794 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -702,7 +702,7 @@ _081567FC: sub_8156800: @ 8156800 push {lr} bl sub_8156794 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -737,7 +737,7 @@ _08156840: sub_8156844: @ 8156844 push {lr} bl sub_8156794 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -772,7 +772,7 @@ _08156884: sub_8156888: @ 8156888 push {lr} bl sub_8156794 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -806,7 +806,7 @@ _081568C8: thumb_func_start sub_81568CC sub_81568CC: @ 81568CC push {r4,lr} - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r4, [r0, 0xC] adds r1, r4, 0 @@ -839,7 +839,7 @@ sub_81568CC: @ 81568CC sub_815690C: @ 815690C push {lr} bl sub_81568CC - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -874,7 +874,7 @@ _0815694C: sub_8156950: @ 8156950 push {lr} bl sub_81568CC - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -909,7 +909,7 @@ _08156990: sub_8156994: @ 8156994 push {lr} bl sub_81568CC - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -944,7 +944,7 @@ _081569D4: sub_81569D8: @ 81569D8 push {lr} bl sub_81568CC - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -977,7 +977,7 @@ _08156A18: thumb_func_start sub_8156A1C sub_8156A1C: @ 8156A1C - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r3, [r0, 0xC] adds r1, r3, 0 @@ -1002,7 +1002,7 @@ sub_8156A1C: @ 8156A1C sub_8156A48: @ 8156A48 push {r4,r5,lr} bl sub_8156A1C - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r2, [r0, 0xC] ldr r4, =gAIScriptPtr @@ -1043,7 +1043,7 @@ _08156A90: sub_8156A98: @ 8156A98 push {r4,r5,lr} bl sub_8156A1C - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r2, [r0, 0xC] ldr r4, =gAIScriptPtr @@ -1084,7 +1084,7 @@ _08156AE0: sub_8156AE8: @ 8156AE8 push {r4,r5,lr} bl sub_8156A1C - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r2, [r0, 0xC] ldr r4, =gAIScriptPtr @@ -1125,7 +1125,7 @@ _08156B30: sub_8156B38: @ 8156B38 push {r4,r5,lr} bl sub_8156A1C - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r2, [r0, 0xC] ldr r4, =gAIScriptPtr @@ -1164,7 +1164,7 @@ _08156B80: thumb_func_start sub_8156B88 sub_8156B88: @ 8156B88 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r2, [r0, 0xC] ldr r1, =gUnknown_02039F00 @@ -1187,7 +1187,7 @@ sub_8156B88: @ 8156B88 sub_8156BB4: @ 8156BB4 push {r4,r5,lr} bl sub_8156B88 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r2, [r0, 0xC] ldr r4, =gAIScriptPtr @@ -1228,7 +1228,7 @@ _08156BFC: sub_8156C04: @ 8156C04 push {r4,r5,lr} bl sub_8156B88 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r2, [r0, 0xC] ldr r4, =gAIScriptPtr @@ -1269,7 +1269,7 @@ _08156C4C: sub_8156C54: @ 8156C54 push {r4,r5,lr} bl sub_8156B88 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r2, [r0, 0xC] ldr r4, =gAIScriptPtr @@ -1310,7 +1310,7 @@ _08156C9C: sub_8156CA4: @ 8156CA4 push {r4,r5,lr} bl sub_8156B88 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r2, [r0, 0xC] ldr r4, =gAIScriptPtr @@ -1349,7 +1349,7 @@ _08156CEC: thumb_func_start sub_8156CF4 sub_8156CF4: @ 8156CF4 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r1, [r0, 0xC] ldr r0, =gScriptContestCategory @@ -1367,7 +1367,7 @@ sub_8156CF4: @ 8156CF4 sub_8156D18: @ 8156D18 push {lr} bl sub_8156CF4 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -1402,7 +1402,7 @@ _08156D58: sub_8156D5C: @ 8156D5C push {lr} bl sub_8156CF4 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -1437,7 +1437,7 @@ _08156D9C: sub_8156DA0: @ 8156DA0 push {r4,lr} ldr r2, =gUnknown_02039E00 - ldr r4, =gUnknown_02039F34 + ldr r4, =gContestResources ldr r0, [r4] ldr r0, [r0, 0xC] ldrb r1, [r0, 0x4] @@ -1469,7 +1469,7 @@ sub_8156DA0: @ 8156DA0 sub_8156DE4: @ 8156DE4 push {r4,lr} bl sub_8156DA0 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] ldr r3, =gAIScriptPtr @@ -1506,7 +1506,7 @@ _08156E24: sub_8156E2C: @ 8156E2C push {r4,lr} bl sub_8156DA0 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] ldr r3, =gAIScriptPtr @@ -1543,7 +1543,7 @@ _08156E6C: sub_8156E74: @ 8156E74 push {r4,lr} bl sub_8156DA0 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] ldr r3, =gAIScriptPtr @@ -1580,7 +1580,7 @@ _08156EB4: sub_8156EBC: @ 8156EBC push {r4,lr} bl sub_8156DA0 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] ldr r3, =gAIScriptPtr @@ -1616,7 +1616,7 @@ _08156EFC: thumb_func_start sub_8156F04 sub_8156F04: @ 8156F04 ldr r2, =gUnknown_02039E00 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r3, [r0, 0xC] ldrb r1, [r3, 0x4] @@ -1646,7 +1646,7 @@ sub_8156F04: @ 8156F04 sub_8156F44: @ 8156F44 push {lr} bl sub_8156F04 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -1681,7 +1681,7 @@ _08156F84: sub_8156F88: @ 8156F88 push {lr} bl sub_8156F04 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -1715,7 +1715,7 @@ _08156FC8: thumb_func_start sub_8156FCC sub_8156FCC: @ 8156FCC ldr r2, =gUnknown_02039E00 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r3, [r0, 0xC] ldrb r1, [r3, 0x4] @@ -1749,7 +1749,7 @@ sub_8156FCC: @ 8156FCC sub_8157018: @ 8157018 push {lr} bl sub_8156FCC - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -1784,7 +1784,7 @@ _08157058: sub_815705C: @ 815705C push {lr} bl sub_8156FCC - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -1819,7 +1819,7 @@ _0815709C: sub_81570A0: @ 81570A0 push {r4-r7,lr} ldr r2, =gUnknown_02039E00 - ldr r5, =gUnknown_02039F34 + ldr r5, =gContestResources ldr r0, [r5] ldr r1, [r0, 0xC] ldrb r0, [r1, 0x4] @@ -1887,7 +1887,7 @@ _0815711A: sub_815712C: @ 815712C push {lr} bl sub_81570A0 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -1924,7 +1924,7 @@ _0815716C: sub_8157174: @ 8157174 push {r4-r7,lr} ldr r2, =gUnknown_02039E00 - ldr r5, =gUnknown_02039F34 + ldr r5, =gContestResources ldr r0, [r5] ldr r1, [r0, 0xC] ldrb r0, [r1, 0x4] @@ -1992,7 +1992,7 @@ _081571EE: sub_8157200: @ 8157200 push {lr} bl sub_8157174 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -2029,7 +2029,7 @@ _08157240: sub_8157248: @ 8157248 push {r4,lr} ldr r2, =gUnknown_02039E00 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r4, [r0, 0xC] ldrb r1, [r4, 0x4] @@ -2069,7 +2069,7 @@ sub_8157248: @ 8157248 sub_81572A4: @ 81572A4 push {lr} bl sub_8157248 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -2104,7 +2104,7 @@ _081572E4: sub_81572E8: @ 81572E8 push {lr} bl sub_8157248 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -2139,7 +2139,7 @@ _08157328: sub_815732C: @ 815732C push {lr} bl sub_8157248 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -2174,7 +2174,7 @@ _0815736C: sub_8157370: @ 8157370 push {lr} bl sub_8157248 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -2209,7 +2209,7 @@ _081573B0: sub_81573B4: @ 81573B4 push {r4,lr} ldr r2, =gUnknown_02039E00 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r4, [r0, 0xC] ldrb r1, [r4, 0x4] @@ -2249,7 +2249,7 @@ sub_81573B4: @ 81573B4 sub_8157410: @ 8157410 push {lr} bl sub_81573B4 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -2284,7 +2284,7 @@ _08157450: sub_8157454: @ 8157454 push {lr} bl sub_81573B4 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -2319,7 +2319,7 @@ _08157494: sub_8157498: @ 8157498 push {lr} bl sub_81573B4 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -2354,7 +2354,7 @@ _081574D8: sub_81574DC: @ 81574DC push {lr} bl sub_81573B4 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -2389,7 +2389,7 @@ _0815751C: sub_8157520: @ 8157520 push {r4,r5,lr} ldr r3, =gUnknown_02039E00 - ldr r5, =gUnknown_02039F34 + ldr r5, =gContestResources ldr r4, [r5] ldr r1, [r4, 0xC] ldrb r0, [r1, 0x4] @@ -2435,7 +2435,7 @@ _08157560: sub_8157578: @ 8157578 push {lr} bl sub_8157520 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -2470,7 +2470,7 @@ _081575B8: sub_81575BC: @ 81575BC push {lr} bl sub_8157520 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -2505,7 +2505,7 @@ _081575FC: sub_8157600: @ 8157600 push {lr} bl sub_8157520 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -2540,7 +2540,7 @@ _08157640: sub_8157644: @ 8157644 push {lr} bl sub_8157520 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -2576,7 +2576,7 @@ sub_8157688: @ 8157688 push {r4-r6,lr} movs r3, 0 ldr r2, =gUnknown_02039E00 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] ldrb r1, [r0, 0x4] @@ -2592,7 +2592,7 @@ sub_8157688: @ 8157688 adds r6, r2, 0 _081576AA: lsls r1, r4, 1 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] adds r0, 0x41 @@ -2619,7 +2619,7 @@ _081576D2: _081576DC: movs r3, 0x1 _081576DE: - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] strh r3, [r0, 0x18] @@ -2637,7 +2637,7 @@ _081576DE: sub_8157700: @ 8157700 push {lr} bl sub_8157688 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -2674,7 +2674,7 @@ _08157740: sub_8157748: @ 8157748 push {lr} bl sub_8157688 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -2712,7 +2712,7 @@ sub_8157790: @ 8157790 push {r4-r6,lr} movs r3, 0 ldr r2, =gUnknown_02039E00 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] ldrb r1, [r0, 0x4] @@ -2728,7 +2728,7 @@ sub_8157790: @ 8157790 adds r6, r2, 0 _081577B2: lsls r1, r4, 1 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] adds r0, 0x41 @@ -2754,7 +2754,7 @@ _081577D8: _081577E2: movs r3, 0x1 _081577E4: - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] strh r3, [r0, 0x18] @@ -2772,7 +2772,7 @@ _081577E4: sub_8157808: @ 8157808 push {lr} bl sub_8157790 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -2809,7 +2809,7 @@ _08157848: sub_8157850: @ 8157850 push {lr} bl sub_8157790 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -2847,7 +2847,7 @@ sub_8157898: @ 8157898 push {r4-r6,lr} movs r5, 0 ldr r3, =gUnknown_02039E00 - ldr r6, =gUnknown_02039F34 + ldr r6, =gContestResources ldr r4, [r6] ldr r1, [r4, 0xC] ldrb r0, [r1, 0x4] @@ -2893,7 +2893,7 @@ _081578D6: sub_81578F8: @ 81578F8 push {lr} bl sub_8157898 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -2930,7 +2930,7 @@ _08157938: sub_8157940: @ 8157940 push {lr} bl sub_8157898 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -2972,7 +2972,7 @@ sub_8157988: @ 8157988 bl sub_81564AC lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_02039F34 + ldr r1, =gContestResources ldr r1, [r1] ldr r5, [r1, 0xC] ldr r2, [r1, 0x4] @@ -3000,7 +3000,7 @@ sub_8157988: @ 8157988 sub_81579CC: @ 81579CC push {lr} bl sub_8157988 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -3035,7 +3035,7 @@ _08157A0C: sub_8157A10: @ 8157A10 push {lr} bl sub_8157988 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -3070,7 +3070,7 @@ _08157A50: sub_8157A54: @ 8157A54 push {lr} bl sub_8157988 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -3105,7 +3105,7 @@ _08157A94: sub_8157A98: @ 8157A98 push {lr} bl sub_8157988 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -3152,7 +3152,7 @@ sub_8157ADC: @ 8157ADC cmp r0, 0 beq _08157B18 ldr r2, =gContestMoves - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r1, [r0, 0x4] lsls r0, r4, 3 @@ -3167,7 +3167,7 @@ sub_8157ADC: @ 8157ADC orrs r0, r1 lsrs r6, r0, 31 _08157B18: - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] strh r6, [r0, 0x18] @@ -3184,7 +3184,7 @@ _08157B18: sub_8157B38: @ 8157B38 push {lr} bl sub_8157ADC - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -3219,7 +3219,7 @@ _08157B78: sub_8157B7C: @ 8157B7C push {lr} bl sub_8157ADC - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -3254,7 +3254,7 @@ _08157BBC: sub_8157BC0: @ 8157BC0 push {lr} bl sub_8157ADC - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -3289,7 +3289,7 @@ _08157C00: sub_8157C04: @ 8157C04 push {lr} bl sub_8157ADC - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -3333,14 +3333,14 @@ sub_8157C48: @ 8157C48 lsls r0, 24 cmp r0, 0 beq _08157C74 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r1, [r0, 0xC] movs r0, 0 b _08157C7C .pool _08157C74: - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r1, [r0, 0xC] movs r0, 0x1 @@ -3359,7 +3359,7 @@ _08157C7C: sub_8157C94: @ 8157C94 push {lr} bl sub_8157C48 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -3396,7 +3396,7 @@ _08157CD4: sub_8157CDC: @ 8157CDC push {lr} bl sub_8157C48 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -3438,7 +3438,7 @@ sub_8157D24: @ 8157D24 bl sub_81564AC lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_02039F34 + ldr r1, =gContestResources ldr r1, [r1] ldr r3, [r1, 0xC] ldr r2, [r1, 0x4] @@ -3463,7 +3463,7 @@ sub_8157D24: @ 8157D24 sub_8157D60: @ 8157D60 push {lr} bl sub_8157D24 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -3500,7 +3500,7 @@ _08157DA0: sub_8157DA8: @ 8157DA8 push {lr} bl sub_8157D24 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -3542,7 +3542,7 @@ sub_8157DF0: @ 8157DF0 bl sub_81564AC lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_02039F34 + ldr r1, =gContestResources ldr r1, [r1] ldr r5, [r1, 0xC] ldr r3, [r1, 0x4] @@ -3574,7 +3574,7 @@ sub_8157DF0: @ 8157DF0 sub_8157E3C: @ 8157E3C push {lr} bl sub_8157DF0 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -3611,7 +3611,7 @@ _08157E7C: sub_8157E84: @ 8157E84 push {lr} bl sub_8157DF0 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -3648,7 +3648,7 @@ _08157EC4: sub_8157ECC: @ 8157ECC push {lr} bl sub_8157DF0 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -3685,7 +3685,7 @@ _08157F0C: sub_8157F14: @ 8157F14 push {lr} bl sub_8157DF0 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -3726,7 +3726,7 @@ sub_8157F5C: @ 8157F5C ldrb r0, [r0, 0x1] bl sub_81564AC lsls r0, 24 - ldr r1, =gUnknown_02039F34 + ldr r1, =gContestResources ldr r1, [r1] ldr r3, [r1, 0xC] ldr r2, =gUnknown_02039F00 @@ -3754,7 +3754,7 @@ sub_8157F5C: @ 8157F5C sub_8157FA0: @ 8157FA0 push {lr} bl sub_8157F5C - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -3791,7 +3791,7 @@ _08157FE0: sub_8157FE8: @ 8157FE8 push {lr} bl sub_8157F5C - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -3828,7 +3828,7 @@ _08158028: sub_8158030: @ 8158030 push {lr} bl sub_8157F5C - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -3865,7 +3865,7 @@ _08158070: sub_8158078: @ 8158078 push {lr} bl sub_8157F5C - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -3908,7 +3908,7 @@ sub_81580C0: @ 81580C0 lsls r0, 24 ldr r3, [r5] ldrb r2, [r3, 0x2] - ldr r1, =gUnknown_02039F34 + ldr r1, =gContestResources ldr r4, [r1] ldr r1, [r4] lsrs r0, 23 @@ -3935,7 +3935,7 @@ sub_81580C0: @ 81580C0 sub_8158108: @ 8158108 push {lr} bl sub_81580C0 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -3970,7 +3970,7 @@ _08158148: sub_815814C: @ 815814C push {lr} bl sub_81580C0 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -4005,7 +4005,7 @@ _0815818C: sub_8158190: @ 8158190 push {lr} bl sub_81580C0 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -4040,7 +4040,7 @@ _081581D0: sub_81581D4: @ 81581D4 push {lr} bl sub_81580C0 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -4082,7 +4082,7 @@ sub_8158218: @ 8158218 lsrs r0, 24 ldr r3, [r5] ldrb r2, [r3, 0x2] - ldr r1, =gUnknown_02039F34 + ldr r1, =gContestResources ldr r4, [r1] ldr r1, [r4] lsls r2, 2 @@ -4105,7 +4105,7 @@ sub_8158218: @ 8158218 sub_8158254: @ 8158254 push {lr} bl sub_8158218 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -4140,7 +4140,7 @@ _08158294: sub_8158298: @ 8158298 push {lr} bl sub_8158218 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -4175,7 +4175,7 @@ _081582D8: sub_81582DC: @ 81582DC push {lr} bl sub_8158218 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -4210,7 +4210,7 @@ _0815831C: sub_8158320: @ 8158320 push {lr} bl sub_8158218 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -4251,7 +4251,7 @@ sub_8158364: @ 8158364 lsls r0, 24 ldr r3, [r5] ldrb r2, [r3, 0x2] - ldr r1, =gUnknown_02039F34 + ldr r1, =gContestResources ldr r4, [r1] ldr r1, [r4] lsrs r0, 23 @@ -4282,7 +4282,7 @@ sub_8158364: @ 8158364 sub_81583B8: @ 81583B8 push {lr} bl sub_8158364 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -4317,7 +4317,7 @@ _081583F8: sub_81583FC: @ 81583FC push {lr} bl sub_8158364 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -4351,7 +4351,7 @@ _0815843C: thumb_func_start sub_8158440 sub_8158440: @ 8158440 push {r4,lr} - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r3, [r0, 0xC] ldr r4, =gAIScriptPtr @@ -4374,7 +4374,7 @@ sub_8158440: @ 8158440 thumb_func_start sub_815846C sub_815846C: @ 815846C push {r4,lr} - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r3, [r0, 0xC] ldr r4, =gAIScriptPtr @@ -4399,7 +4399,7 @@ sub_815846C: @ 815846C thumb_func_start sub_815849C sub_815849C: @ 815849C push {r4,lr} - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r2, [r0, 0xC] ldr r4, =gAIScriptPtr @@ -4427,7 +4427,7 @@ sub_815849C: @ 815849C thumb_func_start sub_81584D4 sub_81584D4: @ 81584D4 push {r4,lr} - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r2, [r0, 0xC] ldr r4, =gAIScriptPtr @@ -4454,7 +4454,7 @@ sub_81584D4: @ 81584D4 thumb_func_start sub_8158508 sub_8158508: @ 8158508 push {r4,lr} - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r2, [r0, 0xC] ldr r4, =gAIScriptPtr @@ -4481,7 +4481,7 @@ sub_8158508: @ 8158508 thumb_func_start sub_815853C sub_815853C: @ 815853C push {r4,lr} - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r1, [r0, 0xC] ldr r4, =gAIScriptPtr @@ -4524,7 +4524,7 @@ _08158586: thumb_func_start sub_815858C sub_815858C: @ 815858C push {r4,lr} - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r1, [r0, 0xC] ldr r4, =gAIScriptPtr @@ -4567,7 +4567,7 @@ _081585D6: thumb_func_start sub_81585DC sub_81585DC: @ 81585DC push {r4,lr} - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r1, [r0, 0xC] ldr r4, =gAIScriptPtr @@ -4610,7 +4610,7 @@ _08158626: thumb_func_start sub_815862C sub_815862C: @ 815862C push {r4,lr} - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r1, [r0, 0xC] ldr r4, =gAIScriptPtr @@ -4653,7 +4653,7 @@ _08158676: thumb_func_start sub_815867C sub_815867C: @ 815867C push {r4,r5,lr} - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r2, [r0, 0xC] ldr r4, =gAIScriptPtr @@ -4696,7 +4696,7 @@ _081586C8: thumb_func_start sub_81586D0 sub_81586D0: @ 81586D0 push {r4,r5,lr} - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r2, [r0, 0xC] ldr r4, =gAIScriptPtr @@ -4739,7 +4739,7 @@ _0815871C: thumb_func_start sub_8158724 sub_8158724: @ 8158724 push {r4,r5,lr} - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r2, [r0, 0xC] ldr r4, =gAIScriptPtr @@ -4782,7 +4782,7 @@ _08158770: thumb_func_start sub_8158778 sub_8158778: @ 8158778 push {r4,r5,lr} - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r2, [r0, 0xC] ldr r4, =gAIScriptPtr @@ -4828,7 +4828,7 @@ sub_81587CC: @ 81587CC bl Random movs r2, 0xFF ands r2, r0 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r1, [r0, 0xC] ldr r4, =gAIScriptPtr @@ -4869,7 +4869,7 @@ sub_815881C: @ 815881C bl Random movs r2, 0xFF ands r2, r0 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r1, [r0, 0xC] ldr r4, =gAIScriptPtr @@ -4955,7 +4955,7 @@ sub_81588BC: @ 81588BC lsls r0, 24 cmp r0, 0 bne _081588D6 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r2, [r0, 0xC] ldrb r1, [r2, 0x9] @@ -4971,7 +4971,7 @@ _081588D6: thumb_func_start sub_81588E0 sub_81588E0: @ 81588E0 push {r4,lr} - ldr r1, =gUnknown_02039F34 + ldr r1, =gContestResources ldr r1, [r1] ldr r3, [r1, 0xC] adds r4, r3, 0 @@ -4993,7 +4993,7 @@ sub_81588E0: @ 81588E0 thumb_func_start sub_8158908 sub_8158908: @ 8158908 push {lr} - ldr r3, =gUnknown_02039F34 + ldr r3, =gContestResources ldr r0, [r3] ldr r0, [r0, 0xC] adds r1, r0, 0 @@ -5033,7 +5033,7 @@ sub_8158948: @ 8158948 ldr r6, =gUnknown_02039E00 + 30 _08158950: lsls r1, r4, 1 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] adds r0, 0x41 @@ -5057,7 +5057,7 @@ _08158980: cmp r4, 0x3 ble _08158950 _08158986: - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] strh r5, [r0, 0x18] @@ -5075,7 +5075,7 @@ _08158986: sub_81589A4: @ 81589A4 push {lr} bl sub_8158948 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -5112,7 +5112,7 @@ _081589E4: sub_81589EC: @ 81589EC push {lr} bl sub_8158948 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -5158,7 +5158,7 @@ sub_8158A34: @ 8158A34 movs r4, 0 ldr r0, =gUnknown_02039E00 mov r12, r0 - ldr r2, =gUnknown_02039F34 + ldr r2, =gContestResources ldr r0, [r2] ldr r0, [r0, 0xC] adds r0, 0x41 @@ -5205,7 +5205,7 @@ _08158A8E: sub_8158AA0: @ 8158AA0 push {lr} bl sub_8158A34 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 @@ -5242,7 +5242,7 @@ _08158AE0: sub_8158AE8: @ 8158AE8 push {lr} bl sub_8158A34 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x18 diff --git a/asm/contest_effect.s b/asm/contest_effect.s index 3b88e16e0..f3c234503 100644 --- a/asm/contest_effect.s +++ b/asm/contest_effect.s @@ -68,7 +68,7 @@ ContestEffectFunc_080E547C: @ 80E547C thumb_func_start ContestEffectFunc_080E5480 ContestEffectFunc_080E5480: @ 80E5480 push {lr} - ldr r3, =gUnknown_02039F34 + ldr r3, =gContestResources ldr r1, [r3] ldr r0, [r1, 0x8] ldrb r2, [r0, 0x11] @@ -94,7 +94,7 @@ ContestEffectFunc_080E5480: @ 80E5480 thumb_func_start ContestEffectFunc_080E54B0 ContestEffectFunc_080E54B0: @ 80E54B0 push {lr} - ldr r3, =gUnknown_02039F34 + ldr r3, =gContestResources ldr r1, [r3] ldr r0, [r1, 0x8] ldrb r2, [r0, 0x11] @@ -119,7 +119,7 @@ ContestEffectFunc_080E54B0: @ 80E54B0 thumb_func_start ContestEffectFunc_080E54E0 ContestEffectFunc_080E54E0: @ 80E54E0 - ldr r3, =gUnknown_02039F34 + ldr r3, =gContestResources ldr r1, [r3] ldr r0, [r1, 0x8] ldrb r2, [r0, 0x11] @@ -165,7 +165,7 @@ ContestEffectFunc_080E54E0: @ 80E54E0 thumb_func_start ContestEffectFunc_080E5534 ContestEffectFunc_080E5534: @ 80E5534 push {lr} - ldr r3, =gUnknown_02039F34 + ldr r3, =gContestResources ldr r1, [r3] ldr r0, [r1, 0x8] ldrb r2, [r0, 0x11] @@ -189,7 +189,7 @@ ContestEffectFunc_080E5534: @ 80E5534 thumb_func_start ContestEffectFunc_080E5560 ContestEffectFunc_080E5560: @ 80E5560 push {lr} - ldr r3, =gUnknown_02039F34 + ldr r3, =gContestResources ldr r1, [r3] ldr r0, [r1, 0x8] ldrb r2, [r0, 0x11] @@ -215,7 +215,7 @@ ContestEffectFunc_080E5560: @ 80E5560 thumb_func_start ContestEffectFunc_080E5590 ContestEffectFunc_080E5590: @ 80E5590 push {lr} - ldr r3, =gUnknown_02039F34 + ldr r3, =gContestResources ldr r1, [r3] ldr r0, [r1, 0x8] ldrb r2, [r0, 0x11] @@ -239,7 +239,7 @@ ContestEffectFunc_080E5590: @ 80E5590 thumb_func_start ContestEffectFunc_080E55BC ContestEffectFunc_080E55BC: @ 80E55BC push {lr} - ldr r3, =gUnknown_02039F34 + ldr r3, =gContestResources ldr r1, [r3] ldr r0, [r1, 0x8] ldrb r2, [r0, 0x11] @@ -266,7 +266,7 @@ ContestEffectFunc_080E55BC: @ 80E55BC ContestEffectFunc_080E55EC: @ 80E55EC push {r4,r5,lr} movs r2, 0 - ldr r5, =gUnknown_02039F34 + ldr r5, =gContestResources ldr r0, [r5] ldr r1, [r0, 0x8] ldrb r4, [r1, 0x11] @@ -293,7 +293,7 @@ _080E560A: cmp r0, r1 bne _080E560A _080E5622: - ldr r1, =gUnknown_02039F34 + ldr r1, =gContestResources ldr r0, [r1] ldr r0, [r0, 0x8] strb r2, [r0, 0x8] @@ -307,14 +307,14 @@ _080E5622: _080E563A: cmp r2, 0 bne _080E564C - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x8] ldrb r0, [r0, 0x11] movs r1, 0x36 bl sub_80DD3F0 _080E564C: - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x8] ldrb r0, [r0, 0x11] @@ -330,7 +330,7 @@ _080E564C: ContestEffectFunc_080E5664: @ 80E5664 push {r4-r6,lr} movs r1, 0 - ldr r2, =gUnknown_02039F34 + ldr r2, =gContestResources ldr r0, [r2] ldr r0, [r0, 0x8] ldrb r5, [r0, 0x11] @@ -359,7 +359,7 @@ _080E5698: adds r3, 0x1 cmp r3, 0x3 ble _080E567E - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x8] adds r0, 0x8 @@ -372,14 +372,14 @@ _080E5698: _080E56B4: cmp r1, 0 bne _080E56C6 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x8] ldrb r0, [r0, 0x11] movs r1, 0x36 bl sub_80DD3F0 _080E56C6: - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x8] ldrb r0, [r0, 0x11] @@ -409,7 +409,7 @@ ContestEffectFunc_080E56E0: @ 80E56E0 bhi _080E5702 movs r1, 0x28 _080E5702: - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x8] strh r1, [r0, 0x4] @@ -425,7 +425,7 @@ ContestEffectFunc_080E5718: @ 80E5718 mov r7, r8 push {r7} movs r7, 0 - ldr r1, =gUnknown_02039F34 + ldr r1, =gContestResources ldr r0, [r1] ldr r0, [r0, 0x8] ldrb r5, [r0, 0x11] @@ -521,7 +521,7 @@ ContestEffectFunc_080E57CC: @ 80E57CC push {r5-r7} movs r0, 0 mov r9, r0 - ldr r1, =gUnknown_02039F34 + ldr r1, =gContestResources ldr r0, [r1] ldr r0, [r0, 0x8] ldrb r2, [r0, 0x11] @@ -619,7 +619,7 @@ ContestEffectFunc_080E588C: @ 80E588C push {r6,r7} movs r0, 0 mov r9, r0 - ldr r1, =gUnknown_02039F34 + ldr r1, =gContestResources ldr r0, [r1] ldr r0, [r0, 0x8] ldrb r7, [r0, 0x11] @@ -674,7 +674,7 @@ _080E58DA: _080E5900: adds r6, 0x1C adds r5, 0x1 - ldr r4, =gUnknown_02039F34 + ldr r4, =gContestResources cmp r5, 0x3 ble _080E58B0 _080E590A: @@ -704,7 +704,7 @@ _080E5928: thumb_func_start ContestEffectFunc_080E5938 ContestEffectFunc_080E5938: @ 80E5938 push {r4,lr} - ldr r4, =gUnknown_02039F34 + ldr r4, =gContestResources ldr r1, [r4] ldr r0, [r1, 0x8] ldrb r2, [r0, 0x11] @@ -732,7 +732,7 @@ ContestEffectFunc_080E5938: @ 80E5938 thumb_func_start ContestEffectFunc_080E5970 ContestEffectFunc_080E5970: @ 80E5970 push {r4,lr} - ldr r4, =gUnknown_02039F34 + ldr r4, =gContestResources ldr r1, [r4] ldr r0, [r1, 0x8] ldrb r2, [r0, 0x11] @@ -765,7 +765,7 @@ ContestEffectFunc_080E59B0: @ 80E59B0 push {lr} movs r0, 0 bl sub_80E6934 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x8] ldrb r0, [r0, 0x11] @@ -781,7 +781,7 @@ ContestEffectFunc_080E59D0: @ 80E59D0 push {lr} movs r0, 0x1 bl sub_80E6934 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x8] ldrb r0, [r0, 0x11] @@ -797,7 +797,7 @@ ContestEffectFunc_080E59F0: @ 80E59F0 push {lr} movs r0, 0x2 bl sub_80E6934 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x8] ldrb r0, [r0, 0x11] @@ -813,7 +813,7 @@ ContestEffectFunc_080E5A10: @ 80E5A10 push {lr} movs r0, 0x3 bl sub_80E6934 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x8] ldrb r0, [r0, 0x11] @@ -829,7 +829,7 @@ ContestEffectFunc_080E5A30: @ 80E5A30 push {lr} movs r0, 0x4 bl sub_80E6934 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x8] ldrb r0, [r0, 0x11] @@ -844,7 +844,7 @@ ContestEffectFunc_080E5A30: @ 80E5A30 ContestEffectFunc_080E5A50: @ 80E5A50 push {r4-r6,lr} movs r4, 0 - ldr r2, =gUnknown_02039F34 + ldr r2, =gContestResources ldr r0, [r2] ldr r0, [r0, 0x8] ldrb r1, [r0, 0x11] @@ -855,7 +855,7 @@ ContestEffectFunc_080E5A50: @ 80E5A50 beq _080E5AB0 movs r5, 0 _080E5A68: - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r1, [r0, 0x8] ldrb r0, [r1, 0x11] @@ -932,7 +932,7 @@ ContestEffectFunc_080E5AD4: @ 80E5AD4 mov r10, r3 movs r6, 0 _080E5B00: - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r2, [r0] ldr r1, [r2, 0x8] ldrb r0, [r1, 0x11] @@ -1000,7 +1000,7 @@ _080E5B76: bge _080E5B76 _080E5B7E: movs r5, 0 - ldr r7, =gUnknown_02039F34 + ldr r7, =gContestResources movs r6, 0 mov r4, r10 _080E5B86: @@ -1125,7 +1125,7 @@ _080E5C70: lsrs r0, 24 mov r9, r0 _080E5C86: - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x8] adds r0, 0xD @@ -1139,7 +1139,7 @@ _080E5C86: cmp r0, 0xFF bne _080E5C16 _080E5CA0: - ldr r6, =gUnknown_02039F34 + ldr r6, =gContestResources ldr r0, [r6] ldr r0, [r0, 0x8] ldrb r0, [r0, 0x11] @@ -1173,7 +1173,7 @@ ContestEffectFunc_080E5CD4: @ 80E5CD4 movs r0, 0 mov r8, r0 movs r6, 0 - ldr r7, =gUnknown_02039F34 + ldr r7, =gContestResources movs r5, 0 _080E5CE4: ldr r2, [r7] @@ -1228,7 +1228,7 @@ _080E5D46: adds r6, 0x1 cmp r6, 0x3 ble _080E5CE4 - ldr r4, =gUnknown_02039F34 + ldr r4, =gContestResources ldr r0, [r4] ldr r0, [r0, 0x8] ldrb r0, [r0, 0x11] @@ -1256,7 +1256,7 @@ ContestEffectFunc_080E5D7C: @ 80E5D7C push {r4-r7,lr} movs r7, 0 movs r4, 0 - ldr r5, =gUnknown_02039F34 + ldr r5, =gContestResources movs r6, 0 _080E5D86: ldr r3, [r5] @@ -1301,7 +1301,7 @@ _080E5DD2: adds r4, 0x1 cmp r4, 0x3 ble _080E5D86 - ldr r4, =gUnknown_02039F34 + ldr r4, =gContestResources ldr r0, [r4] ldr r0, [r0, 0x8] ldrb r0, [r0, 0x11] @@ -1325,7 +1325,7 @@ _080E5DF8: ContestEffectFunc_080E5E04: @ 80E5E04 push {r4,lr} ldr r1, =gUnknown_02039F26 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r4, [r0] ldr r0, [r4, 0x8] ldrb r2, [r0, 0x11] @@ -1366,7 +1366,7 @@ _080E5E46: ContestEffectFunc_080E5E5C: @ 80E5E5C push {r4,lr} ldr r1, =gUnknown_02039F26 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r4, [r0] ldr r0, [r4, 0x8] ldrb r2, [r0, 0x11] @@ -1408,7 +1408,7 @@ ContestEffectFunc_080E5EB4: @ 80E5EB4 push {r4-r7,lr} movs r1, 0 movs r5, 0 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r4, [r0] ldr r2, [r4, 0x8] ldrb r0, [r2, 0x11] @@ -1434,7 +1434,7 @@ _080E5EDA: bge _080E5EE8 movs r5, 0 _080E5EE8: - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r3, [r0] ldr r0, [r3, 0x8] ldrb r2, [r0, 0x11] @@ -1467,7 +1467,7 @@ _080E5F0C: movs r1, 0x11 bl sub_80DD3D4 _080E5F2C: - ldr r4, =gUnknown_02039F34 + ldr r4, =gContestResources ldr r1, [r4] ldr r0, [r1, 0x8] ldrb r2, [r0, 0x11] @@ -1498,7 +1498,7 @@ _080E5F2C: ContestEffectFunc_080E5F64: @ 80E5F64 push {r4-r7,lr} movs r6, 0 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r4, [r0] ldr r2, [r4, 0x8] ldrb r1, [r2, 0x11] @@ -1567,7 +1567,7 @@ _080E5FDE: thumb_func_start ContestEffectFunc_080E5FE4 ContestEffectFunc_080E5FE4: @ 80E5FE4 push {r4,r5,lr} - ldr r1, =gUnknown_02039F34 + ldr r1, =gContestResources ldr r3, [r1] ldr r0, [r3, 0x8] ldrb r2, [r0, 0x11] @@ -1647,7 +1647,7 @@ ContestEffectFunc_080E6068: @ 80E6068 cmp r0, 0x2 bhi _080E6098 movs r4, 0xA - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x8] ldrb r0, [r0, 0x11] @@ -1659,7 +1659,7 @@ _080E6098: cmp r0, 0x5 bhi _080E60B4 movs r4, 0x14 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x8] ldrb r0, [r0, 0x11] @@ -1671,7 +1671,7 @@ _080E60B4: cmp r0, 0x7 bhi _080E60D0 movs r4, 0x28 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x8] ldrb r0, [r0, 0x11] @@ -1683,7 +1683,7 @@ _080E60D0: cmp r1, 0x8 bhi _080E60EC movs r4, 0x3C - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x8] ldrb r0, [r0, 0x11] @@ -1693,14 +1693,14 @@ _080E60D0: .pool _080E60EC: movs r4, 0x50 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x8] ldrb r0, [r0, 0x11] movs r1, 0x1E bl sub_80DD3D4 _080E60FC: - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r1, [r0] ldr r0, [r1, 0x8] ldrb r2, [r0, 0x11] @@ -1721,7 +1721,7 @@ ContestEffectFunc_080E611C: @ 80E611C push {r4-r7,lr} mov r7, r8 push {r7} - ldr r2, =gUnknown_02039F34 + ldr r2, =gContestResources ldr r0, [r2] ldr r3, [r0, 0x8] ldrb r0, [r3, 0x11] @@ -1743,7 +1743,7 @@ _080E6140: adds r5, r0, 0 cmp r6, r1 beq _080E616A - ldr r4, =gUnknown_02039F34 + ldr r4, =gContestResources _080E614E: lsls r0, r2, 24 movs r2, 0x80 @@ -1845,7 +1845,7 @@ ContestEffectFunc_080E620C: @ 80E620C mov r7, r9 mov r6, r8 push {r6,r7} - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r3, [r0] ldr r1, [r3, 0x8] ldrb r2, [r1, 0x11] @@ -1928,7 +1928,7 @@ _080E62AC: thumb_func_start ContestEffectFunc_080E62B8 ContestEffectFunc_080E62B8: @ 80E62B8 push {r4-r7,lr} - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x8] ldrb r1, [r0, 0x11] @@ -1939,7 +1939,7 @@ ContestEffectFunc_080E62B8: @ 80E62B8 movs r5, 0 movs r6, 0 _080E62CE: - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r4, [r0] ldr r1, [r4, 0x8] ldrb r2, [r1, 0x11] @@ -1994,7 +1994,7 @@ _080E632E: thumb_func_start ContestEffectFunc_080E6334 ContestEffectFunc_080E6334: @ 80E6334 push {r4,lr} - ldr r4, =gUnknown_02039F34 + ldr r4, =gContestResources ldr r1, [r4] ldr r0, [r1, 0x8] ldrb r2, [r0, 0x11] @@ -2046,7 +2046,7 @@ _080E6390: thumb_func_start ContestEffectFunc_080E6398 ContestEffectFunc_080E6398: @ 80E6398 push {lr} - ldr r3, =gUnknown_02039F34 + ldr r3, =gContestResources ldr r1, [r3] ldr r0, [r1, 0x8] ldrb r2, [r0, 0x11] @@ -2090,7 +2090,7 @@ _080E63E4: ContestEffectFunc_080E63E8: @ 80E63E8 push {r4-r7,lr} sub sp, 0x4 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r2, [r0] ldr r1, [r2] ldrb r1, [r1, 0x1] @@ -2258,7 +2258,7 @@ ContestEffectFunc_080E6520: @ 80E6520 mov r7, r8 push {r7} sub sp, 0x4 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r2, [r0] ldr r1, [r2] ldrb r1, [r1, 0x1] @@ -2434,7 +2434,7 @@ ContestEffectFunc_080E6664: @ 80E6664 ContestEffectFunc_080E6668: @ 80E6668 push {r4-r7,lr} sub sp, 0x8 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r1, [r0] ldr r0, [r1] ldrb r0, [r0, 0x1] @@ -2517,7 +2517,7 @@ _080E66FC: cmp r0, 0x3 ble _080E66AA movs r6, 0 - ldr r5, =gUnknown_02039F34 + ldr r5, =gContestResources adds r4, r5, 0 _080E6712: ldr r0, [r4] @@ -2576,7 +2576,7 @@ _080E676C: ContestEffectFunc_080E6778: @ 80E6778 push {lr} ldr r3, =gContestMoves - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r1, [r0] ldr r0, [r1, 0x8] ldrb r2, [r0, 0x11] @@ -2613,7 +2613,7 @@ ContestEffectFunc_080E67BC: @ 80E67BC movs r0, 0 mov r8, r0 movs r4, 0 - ldr r5, =gUnknown_02039F34 + ldr r5, =gContestResources movs r6, 0 _080E67CC: ldr r3, [r5] @@ -2672,14 +2672,14 @@ _080E682E: mov r7, r8 cmp r7, 0 bne _080E684A - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x8] ldrb r0, [r0, 0x11] movs r1, 0x36 bl sub_80DD3F0 _080E684A: - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x8] ldrb r0, [r0, 0x11] @@ -2696,7 +2696,7 @@ _080E684A: thumb_func_start ContestEffectFunc_080E6868 ContestEffectFunc_080E6868: @ 80E6868 push {r4,lr} - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r1, [r0] ldr r0, [r1] ldrb r0, [r0, 0x13] @@ -2745,7 +2745,7 @@ _080E68C2: movs r1, 0x1E bl sub_80DD3D4 _080E68CE: - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r1, [r0] ldr r0, [r1, 0x8] ldrb r2, [r0, 0x11] @@ -2764,7 +2764,7 @@ _080E68CE: thumb_func_start ContestEffectFunc_080E68EC ContestEffectFunc_080E68EC: @ 80E68EC push {r4,lr} - ldr r4, =gUnknown_02039F34 + ldr r4, =gContestResources ldr r0, [r4] ldr r2, [r0, 0x10] ldrb r1, [r2, 0x1] @@ -2811,7 +2811,7 @@ sub_80E6934: @ 80E6934 mov r8, r0 movs r7, 0 movs r4, 0 - ldr r6, =gUnknown_02039F34 + ldr r6, =gContestResources ldr r0, =gContestMoves mov r9, r0 movs r5, 0 @@ -2861,7 +2861,7 @@ _080E699E: ble _080E694E cmp r7, 0 bne _080E69B8 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x8] ldrb r0, [r0, 0x11] @@ -2882,7 +2882,7 @@ sub_80E69C8: @ 80E69C8 push {lr} lsls r0, 24 lsrs r3, r0, 24 - ldr r2, =gUnknown_02039F34 + ldr r2, =gContestResources ldr r0, [r2] ldr r0, [r0, 0x8] adds r0, 0xD @@ -2945,7 +2945,7 @@ sub_80E6A2C: @ 80E6A2C movs r2, 0x8 bl memset movs r7, 0 - ldr r4, =gUnknown_02039F34 + ldr r4, =gContestResources ldr r0, [r4] ldr r0, [r0, 0x8] ldrb r0, [r0, 0x8] @@ -3040,7 +3040,7 @@ _080E6AD6: strh r0, [r1] _080E6AFE: adds r7, 0x1 - ldr r4, =gUnknown_02039F34 + ldr r4, =gContestResources ldr r0, [r4] ldr r0, [r0, 0x8] adds r0, 0x8 @@ -3081,7 +3081,7 @@ sub_80E6B3C: @ 80E6B3C lsrs r0, 24 lsls r1, 24 lsrs r1, 24 - ldr r2, =gUnknown_02039F34 + ldr r2, =gContestResources ldr r4, [r2] ldr r3, [r4, 0x4] lsls r2, r0, 3 diff --git a/asm/contest_link_80FC4F4.s b/asm/contest_link_80FC4F4.s index 4565c75aa..f1e2019da 100644 --- a/asm/contest_link_80FC4F4.s +++ b/asm/contest_link_80FC4F4.s @@ -50,7 +50,7 @@ sub_80FC530: @ 80FC530 cmp r4, 0 beq _080FC552 adds r0, r5, 0 - bl sub_800A5EC + bl ResetBlockReceivedFlag movs r0, 0x1 b _080FC554 _080FC552: @@ -657,7 +657,7 @@ _080FCA30: lsls r0, 24 cmp r0, 0 beq _080FCAB2 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r2, [r0] ldr r0, =gUnknown_02039F25 ldrb r0, [r0] @@ -688,7 +688,7 @@ _080FCA68: ldrb r0, [r6] cmp r2, r0 bge _080FCAA4 - ldr r1, =gUnknown_02039F34 + ldr r1, =gContestResources mov r8, r1 ldr r4, =gBlockRecvBuffer movs r3, 0 @@ -955,7 +955,7 @@ _080FCCE8: bne _080FCCF4 b _080FCE42 _080FCCF4: - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x4] movs r1, 0x70 @@ -968,7 +968,7 @@ _080FCD04: bne _080FCD10 b _080FCE42 _080FCD10: - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x4] ldr r1, =gUnknown_02039F2B @@ -1004,7 +1004,7 @@ _080FCD54: lsls r0, 24 cmp r0, 0 beq _080FCE42 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x8] movs r1, 0x14 @@ -1015,7 +1015,7 @@ _080FCD6C: lsls r0, 24 cmp r0, 0 beq _080FCE42 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x8] ldr r1, =gUnknown_02039F2B @@ -1031,7 +1031,7 @@ _080FCD98: lsls r0, 24 cmp r0, 0 beq _080FCE42 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x10] b _080FCDD4 @@ -1041,7 +1041,7 @@ _080FCDB0: lsls r0, 24 cmp r0, 0 beq _080FCE42 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x10] b _080FCE04 diff --git a/asm/crt0.s b/asm/crt0.s index 3ece5c7d0..0b14a1469 100644 --- a/asm/crt0.s +++ b/asm/crt0.s @@ -163,7 +163,7 @@ IntrMain: @ 8000248 IntrMain_FoundIntr: strh r0, [r3, OFFSET_REG_IF - 0x200] bic r2, r2, r0 - ldr r0, =gUnknown_03007868 + ldr r0, =gRfuState ldr r0, [r0] ldrb r0, [r0, 0xA] mov r1, 0x8 diff --git a/asm/decoration.s b/asm/decoration.s deleted file mode 100644 index 0798e3165..000000000 --- a/asm/decoration.s +++ /dev/null @@ -1,7167 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_8126968 -sub_8126968: @ 8126968 - push {lr} - ldr r3, =gUnknown_0203A173 - ldrb r0, [r3] - cmp r0, 0x7 - bhi _0812697E - ldr r2, =gUnknown_0203A14C - ldr r1, =gDecorationInventories - lsls r0, 3 - adds r0, r1 - ldr r0, [r0] - str r0, [r2] -_0812697E: - ldr r2, =gUnknown_0203A17C - ldrb r0, [r2, 0x9] - cmp r0, 0 - bne _08126996 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r3, =0x00001aae - adds r1, r0, r3 - str r1, [r2] - ldr r1, =0x00001abe - adds r0, r1 - str r0, [r2, 0x4] -_08126996: - ldrb r0, [r2, 0x9] - cmp r0, 0x1 - bne _081269AC - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r3, =0x0000271c - adds r1, r0, r3 - str r1, [r2] - ldr r1, =0x00002728 - adds r0, r1 - str r0, [r2, 0x4] -_081269AC: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8126968 - - thumb_func_start sub_81269D4 -sub_81269D4: @ 81269D4 - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, =gUnknown_0203A188 - adds r4, r1, r0 - cmp r1, 0 - bne _08126A28 - ldr r0, =gUnknown_085A6B90 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp] - str r1, [sp, 0x4] - ldr r0, =gUnknown_085A6B48 - movs r1, 0x4 - bl GetMaxWidthInMenuTable - lsls r0, 24 - ldr r2, =0x00ffffff - ldr r1, [sp] - ands r1, r2 - orrs r1, r0 - str r1, [sp] - lsrs r0, r1, 24 - cmp r0, 0x12 - bls _08126A14 - adds r0, r2, 0 - ands r0, r1 - movs r1, 0x90 - lsls r1, 21 - orrs r0, r1 - str r0, [sp] -_08126A14: - mov r0, sp - b _08126A2E - .pool -_08126A28: - lsls r0, r1, 3 - ldr r1, =gUnknown_085A6B90 - adds r0, r1 -_08126A2E: - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - movs r2, 0x85 - lsls r2, 2 - movs r1, 0 - movs r3, 0xE - bl SetWindowBorderStyle - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - ldrb r0, [r4] - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81269D4 - - thumb_func_start sub_8126A58 -sub_8126A58: @ 8126A58 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gUnknown_0203A188 - adds r4, r0 - ldrb r0, [r4] - movs r1, 0 - bl sub_8198070 - ldrb r0, [r4] - bl ClearWindowTilemap - ldrb r0, [r4] - bl RemoveWindow - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8126A58 - - thumb_func_start sub_8126A88 -sub_8126A88: @ 8126A88 - push {r4,lr} - movs r0, 0 - bl sub_81269D4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r2, =gUnknown_085A6B48 - adds r0, r4, 0 - movs r1, 0x4 - bl PrintMenuTable - ldr r0, =gUnknown_0203A150 - ldrb r2, [r0] - adds r0, r4, 0 - movs r1, 0x4 - bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8126A88 - - thumb_func_start sub_8126ABC -sub_8126ABC: @ 8126ABC - push {lr} - ldr r1, =gUnknown_0203A150 - movs r0, 0 - strb r0, [r1] - bl ScriptContext2_Enable - bl sub_8126A88 - bl sub_8126C08 - pop {r0} - bx r0 - .pool - thumb_func_end sub_8126ABC - - thumb_func_start sub_8126AD8 -sub_8126AD8: @ 8126AD8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8126ABC - ldr r2, =gUnknown_0203A17C - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r3, =0x00001aae - adds r1, r0, r3 - str r1, [r2] - ldr r1, =0x00001abe - adds r0, r1 - str r0, [r2, 0x4] - movs r1, 0 - movs r0, 0x10 - strb r0, [r2, 0x8] - strb r1, [r2, 0x9] - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_8126B80 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8126AD8 - - thumb_func_start sub_8126B2C -sub_8126B2C: @ 8126B2C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8126ABC - ldr r2, =gUnknown_0203A17C - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r3, =0x0000271c - adds r1, r0, r3 - str r1, [r2] - ldr r1, =0x00002728 - adds r0, r1 - str r0, [r2, 0x4] - movs r0, 0xC - strb r0, [r2, 0x8] - movs r0, 0x1 - strb r0, [r2, 0x9] - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_8126B80 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8126B2C - - thumb_func_start sub_8126B80 -sub_8126B80: @ 8126B80 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08126C00 - bl GetMenuCursorPos - lsls r0, 24 - lsrs r4, r0, 24 - bl ProcessMenuInput - lsls r0, 24 - asrs r1, r0, 24 - movs r0, 0x2 - negs r0, r0 - cmp r1, r0 - beq _08126BD8 - adds r0, 0x1 - cmp r1, r0 - beq _08126BF4 - movs r0, 0x5 - bl PlaySE - ldr r1, =gUnknown_085A6B48 - ldr r0, =gUnknown_0203A150 - ldrb r0, [r0] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r1, [r0] - adds r0, r5, 0 - bl _call_via_r1 - b _08126C00 - .pool -_08126BD8: - bl GetMenuCursorPos - ldr r1, =gUnknown_0203A150 - strb r0, [r1] - lsls r0, r4, 24 - asrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - beq _08126C00 - bl sub_8126C08 - b _08126C00 - .pool -_08126BF4: - movs r0, 0x5 - bl PlaySE - adds r0, r5, 0 - bl sub_8126D6C -_08126C00: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8126B80 - - thumb_func_start sub_8126C08 -sub_8126C08: @ 8126C08 - push {lr} - sub sp, 0x10 - movs r0, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r1, =gUnknown_085A6B68 - ldr r0, =gUnknown_0203A150 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r2, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x1 - movs r3, 0 - bl AddTextPrinterParametrized - add sp, 0x10 - pop {r0} - bx r0 - .pool - thumb_func_end sub_8126C08 - - thumb_func_start sub_8126C48 -sub_8126C48: @ 8126C48 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_8161B10 - lsls r0, 24 - cmp r0, 0 - bne _08126C7C - ldr r4, =gStringVar4 - ldr r1, =gText_NoDecorations - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, =sub_8126DA4 - adds r0, r5, 0 - adds r1, r4, 0 - bl DisplayItemMessageOnField - b _08126C96 - .pool -_08126C7C: - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r2, 0 - movs r1, 0 - strh r1, [r0, 0x1E] - ldr r0, =gUnknown_0203A173 - strb r2, [r0] - adds r0, r5, 0 - bl sub_8126DCC -_08126C96: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8126C48 - - thumb_func_start sub_8126CA4 -sub_8126CA4: @ 8126CA4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - bl sub_81299AC - lsls r0, 24 - cmp r0, 0 - bne _08126CD8 - ldr r4, =gStringVar4 - ldr r1, =gText_NoDecorationsInUse - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, =sub_8126DA4 - adds r0, r5, 0 - adds r1, r4, 0 - bl DisplayItemMessageOnField - b _08126D00 - .pool -_08126CD8: - movs r0, 0 - bl sub_8126A58 - movs r0, 0 - movs r1, 0 - bl sub_8197434 - movs r0, 0x1 - movs r1, 0 - bl fade_screen - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xC] - ldr r1, =sub_8129ABC - str r1, [r0] -_08126D00: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8126CA4 - - thumb_func_start sub_8126D10 -sub_8126D10: @ 8126D10 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_8161B10 - lsls r0, 24 - cmp r0, 0 - bne _08126D44 - ldr r4, =gStringVar4 - ldr r1, =gText_NoDecorations - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, =sub_8126DA4 - adds r0, r5, 0 - adds r1, r4, 0 - bl DisplayItemMessageOnField - b _08126D5E - .pool -_08126D44: - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r2, 0 - movs r1, 0x1 - strh r1, [r0, 0x1E] - ldr r0, =gUnknown_0203A173 - strb r2, [r0] - adds r0, r5, 0 - bl sub_8126DCC -_08126D5E: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8126D10 - - thumb_func_start sub_8126D6C -sub_8126D6C: @ 8126D6C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0 - bl sub_8126A58 - ldr r0, =gUnknown_0203A17C - ldrb r0, [r0, 0x9] - cmp r0, 0 - bne _08126D98 - ldr r0, =gUnknown_0823B4E8 - bl ScriptContext1_SetupScript - adds r0, r4, 0 - bl DestroyTask - b _08126D9E - .pool -_08126D98: - adds r0, r4, 0 - bl sub_816B060 -_08126D9E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8126D6C - - thumb_func_start sub_8126DA4 -sub_8126DA4: @ 8126DA4 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8126C08 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_8126B80 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8126DA4 - - thumb_func_start sub_8126DCC -sub_8126DCC: @ 8126DCC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gUnknown_085A6BB0 - movs r1, 0xD0 - movs r2, 0x20 - bl LoadPalette - movs r0, 0 - movs r1, 0 - bl sub_8197434 - movs r0, 0 - bl sub_8126A58 - adds r0, r4, 0 - bl sub_8126DFC - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8126DCC - - thumb_func_start sub_8126DFC -sub_8126DFC: @ 8126DFC - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0x1 - bl sub_81269D4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - bl sub_8126E8C - ldr r0, =gUnknown_0203A173 - ldrb r2, [r0] - adds r0, r4, 0 - movs r1, 0x9 - bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_8127088 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8126DFC - - thumb_func_start sub_8126E44 -sub_8126E44: @ 8126E44 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, =gUnknown_0203A188 - ldrb r0, [r5, 0x1] - movs r1, 0x11 - bl FillWindowPixelBuffer - adds r0, r4, 0 - bl sub_8126E8C - ldrb r0, [r5, 0x1] - ldr r1, =gUnknown_0203A173 - ldrb r2, [r1] - movs r1, 0x9 - bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_8127088 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8126E44 - - thumb_func_start sub_8126E8C -sub_8126E8C: @ 8126E8C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0xC - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r1, r0, r1 - ldr r0, =gUnknown_0203A188 - ldrb r5, [r0, 0x1] - ldr r0, =gUnknown_0203A17C - ldrb r0, [r0, 0x9] - movs r2, 0 - mov r8, r2 - cmp r0, 0x1 - bne _08126EC0 - movs r2, 0x16 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _08126EC0 - movs r0, 0x1 - mov r8, r0 -_08126EC0: - movs r4, 0 - lsls r2, r6, 2 - mov r9, r2 - movs r7, 0xFF -_08126EC8: - mov r0, r8 - cmp r0, 0x1 - bne _08126EF8 - cmp r4, 0x6 - beq _08126EF8 - cmp r4, 0x7 - beq _08126EF8 - lsls r3, r4, 28 - lsrs r3, 24 - str r0, [sp] - str r7, [sp, 0x4] - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x8 - bl sub_8126F68 - b _08126F0C - .pool -_08126EF8: - lsls r3, r4, 28 - lsrs r3, 24 - movs r0, 0 - str r0, [sp] - str r7, [sp, 0x4] - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x8 - bl sub_8126F68 -_08126F0C: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bls _08126EC8 - ldr r0, =gTasks - mov r2, r9 - adds r1, r2, r6 - lsls r1, 3 - adds r1, r0 - movs r2, 0x1E - ldrsh r0, [r1, r2] - ldr r2, =gText_Cancel - cmp r0, 0x2 - bne _08126F2C - ldr r2, =gText_Exit -_08126F2C: - lsls r0, r4, 4 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - adds r0, r5, 0 - movs r1, 0x1 - movs r3, 0x8 - bl PrintTextOnWindow - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - add sp, 0xC - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8126E8C - - thumb_func_start sub_8126F68 -sub_8126F68: @ 8126F68 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - ldr r4, [sp, 0x38] - ldr r6, [sp, 0x3C] - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0xC] - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r2, 24 - lsrs r7, r2, 24 - lsls r3, 24 - lsrs r5, r3, 24 - lsls r4, 24 - lsrs r1, r4, 24 - lsls r6, 24 - lsrs r6, 24 - mov r9, r6 - movs r0, 0x60 - str r0, [sp, 0x14] - cmp r7, 0x8 - bne _08126FA2 - movs r2, 0x68 - str r2, [sp, 0x14] -_08126FA2: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, =gStringVar4 - adds r0, r4, 0 - bl sub_8127058 - adds r0, r4, 0 - bl StringLength - lsls r0, 16 - lsrs r0, 16 - adds r6, r0, r4 - ldr r1, =gUnknown_085A6B28 - mov r2, r8 - lsls r0, r2, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r6, 0 - bl StringCopy - str r5, [sp] - mov r0, r9 - str r0, [sp, 0x4] - movs r2, 0 - mov r10, r2 - str r2, [sp, 0x8] - ldr r0, [sp, 0xC] - movs r1, 0x1 - adds r2, r4, 0 - adds r3, r7, 0 - bl PrintTextOnWindow - mov r0, r8 - bl sub_8161AD0 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r6, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - adds r6, r0, 0 - movs r0, 0xBA - strb r0, [r6] - adds r6, 0x1 - ldr r1, =gDecorationInventories - mov r2, r8 - lsls r0, r2, 3 - adds r0, r1 - ldrb r1, [r0, 0x4] - adds r0, r6, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - movs r0, 0x1 - adds r1, r4, 0 - ldr r2, [sp, 0x14] - bl GetStringRightAlignXOffset - lsls r0, 24 - lsrs r7, r0, 24 - str r5, [sp] - mov r0, r9 - str r0, [sp, 0x4] - mov r2, r10 - str r2, [sp, 0x8] - ldr r0, [sp, 0xC] - movs r1, 0x1 - adds r2, r4, 0 - adds r3, r7, 0 - bl PrintTextOnWindow - 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 sub_8126F68 - - thumb_func_start sub_8127058 -sub_8127058: @ 8127058 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r4, r1, 24 - lsrs r4, 24 - ldr r1, =gText_Color161Shadow161 - bl StringCopy - cmp r4, 0x1 - bne _08127078 - movs r0, 0x4 - strb r0, [r5, 0x2] - movs r0, 0x5 - b _0812707E - .pool -_08127078: - movs r0, 0x2 - strb r0, [r5, 0x2] - movs r0, 0x3 -_0812707E: - strb r0, [r5, 0x5] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8127058 - - thumb_func_start sub_8127088 -sub_8127088: @ 8127088 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081270DE - bl ProcessMenuInput - lsls r0, 24 - lsrs r4, r0, 24 - asrs r1, r0, 24 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _081270C0 - cmp r1, r0 - bgt _081270BC - subs r0, 0x1 - cmp r1, r0 - beq _081270DE - b _081270CE - .pool -_081270BC: - cmp r1, 0x8 - bne _081270CE -_081270C0: - movs r0, 0x5 - bl PlaySE - adds r0, r5, 0 - bl sub_812719C - b _081270DE -_081270CE: - movs r0, 0x5 - bl PlaySE - ldr r0, =gUnknown_0203A173 - strb r4, [r0] - adds r0, r5, 0 - bl sub_81270E8 -_081270DE: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8127088 - - thumb_func_start sub_81270E8 -sub_81270E8: @ 81270E8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, =gUnknown_0203A173 - ldrb r0, [r4] - bl sub_8161AD0 - ldr r1, =gUnknown_0203A151 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - beq _08127154 - ldrb r0, [r4] - bl sub_8161A38 - ldr r2, =gUnknown_0203A14C - ldr r1, =gDecorationInventories - ldrb r0, [r4] - lsls r0, 3 - adds r0, r1 - ldr r0, [r0] - str r0, [r2] - adds r0, r5, 0 - bl sub_81279B4 - ldr r0, =gUnknown_0203A170 - movs r1, 0 - strh r1, [r0] - ldr r0, =gUnknown_0203A16E - strh r1, [r0] - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_8127620 - str r1, [r0] - b _0812716E - .pool -_08127154: - movs r0, 0x1 - bl sub_8126A58 - ldr r4, =gStringVar4 - ldr r1, =gText_NoDecorations - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, =sub_8127180 - adds r0, r5, 0 - adds r1, r4, 0 - bl DisplayItemMessageOnField -_0812716E: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81270E8 - - thumb_func_start sub_8127180 -sub_8127180: @ 8127180 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - movs r1, 0 - bl sub_8197434 - adds r0, r4, 0 - bl sub_8126DFC - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8127180 - - thumb_func_start sub_812719C -sub_812719C: @ 812719C - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - movs r1, 0x1E - ldrsh r0, [r0, r1] - cmp r0, 0x2 - beq _081271C0 - adds r0, r2, 0 - bl sub_81271CC - b _081271C6 - .pool -_081271C0: - adds r0, r2, 0 - bl sub_8127268 -_081271C6: - pop {r0} - bx r0 - thumb_func_end sub_812719C - - thumb_func_start sub_81271CC -sub_81271CC: @ 81271CC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - bl sub_8126A58 - bl sub_8126A88 - movs r0, 0 - movs r1, 0 - bl sub_81973C4 - bl sub_8126C08 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_8126B80 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81271CC - - thumb_func_start sub_8127208 -sub_8127208: @ 8127208 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gUnknown_085A6BB0 - movs r1, 0xD0 - movs r2, 0x20 - bl LoadPalette - movs r0, 0 - movs r1, 0 - bl sub_8197434 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r2, 0 - movs r1, 0x2 - strh r1, [r0, 0x1E] - ldr r0, =gUnknown_0203A173 - strb r2, [r0] - adds r0, r4, 0 - bl sub_8126DFC - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8127208 - - thumb_func_start sub_8127250 -sub_8127250: @ 8127250 - push {lr} - lsls r1, 24 - ldr r2, =gUnknown_085A6B28 - lsrs r1, 22 - adds r1, r2 - ldr r1, [r1] - bl StringCopy - pop {r0} - bx r0 - .pool - thumb_func_end sub_8127250 - - thumb_func_start sub_8127268 -sub_8127268: @ 8127268 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - bl sub_8126A58 - adds r0, r4, 0 - bl sub_8133E1C - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8127268 - - thumb_func_start sub_8127284 -sub_8127284: @ 8127284 - push {lr} - ldr r3, =gUnknown_0203A18C - ldr r2, [r3] - ldr r0, =gUnknown_0203A151 - ldrb r0, [r0] - adds r0, 0x1 - movs r1, 0xA4 - lsls r1, 3 - adds r2, r1 - strb r0, [r2] - ldr r0, [r3] - adds r1, r0, r1 - ldrb r1, [r1] - cmp r1, 0x8 - bls _081272B8 - ldr r2, =0x00000521 - adds r1, r0, r2 - movs r0, 0x8 - strb r0, [r1] - b _081272BE - .pool -_081272B8: - ldr r2, =0x00000521 - adds r0, r2 - strb r1, [r0] -_081272BE: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8127284 - - thumb_func_start sub_81272C8 -sub_81272C8: @ 81272C8 - push {r4,lr} - ldr r0, =gUnknown_0203A170 - ldr r1, =gUnknown_0203A16E - ldr r2, =gUnknown_0203A18C - ldr r3, [r2] - ldr r4, =0x00000521 - adds r2, r3, r4 - ldrb r2, [r2] - subs r4, 0x1 - adds r3, r4 - ldrb r3, [r3] - bl sub_812225C - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81272C8 - - thumb_func_start sub_81272F8 -sub_81272F8: @ 81272F8 - push {r4,lr} - sub sp, 0x4 - ldr r0, =gUnknown_0203A170 - ldr r1, =gUnknown_0203A16E - ldr r2, =gUnknown_0203A18C - ldr r3, [r2] - ldr r4, =0x00000521 - adds r2, r3, r4 - ldrb r2, [r2] - subs r4, 0x1 - adds r3, r4 - ldrb r3, [r3] - movs r4, 0x8 - str r4, [sp] - bl sub_8122298 - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81272F8 - - thumb_func_start sub_8127330 -sub_8127330: @ 8127330 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r1, r0 - ldr r0, =gUnknown_0203A173 - ldrb r0, [r0] - subs r0, 0x6 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _08127378 - ldr r0, =gUnknown_0203A17C - ldrb r0, [r0, 0x9] - cmp r0, 0x1 - bne _08127378 - movs r2, 0x16 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _08127378 - ldr r0, =gStringVar1 - movs r1, 0x1 - bl sub_8127058 - b _08127380 - .pool -_08127378: - ldr r0, =gStringVar1 - movs r1, 0 - bl sub_8127058 -_08127380: - movs r6, 0 - ldr r1, =gUnknown_0203A18C - ldr r0, [r1] - movs r3, 0xA4 - lsls r3, 3 - adds r0, r3 - ldrb r0, [r0] - subs r0, 0x1 - cmp r6, r0 - bge _081273D6 - adds r5, r1, 0 -_08127396: - lsls r4, r6, 1 - adds r4, r6 - lsls r4, 3 - movs r0, 0xA4 - lsls r0, 1 - adds r4, r0 - ldr r0, [r5] - adds r0, r4 - ldr r1, =gUnknown_0203A14C - ldr r1, [r1] - adds r1, r6 - ldrb r1, [r1] - bl sub_8127454 - ldr r1, [r5] - lsls r2, r6, 3 - adds r0, r1, r2 - adds r4, r1, r4 - str r4, [r0] - adds r0, r1, 0x4 - adds r0, r2 - str r6, [r0] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - movs r2, 0xA4 - lsls r2, 3 - adds r1, r2 - ldrb r0, [r1] - subs r0, 0x1 - cmp r6, r0 - blt _08127396 -_081273D6: - ldr r5, =gUnknown_0203A18C - lsls r4, r6, 1 - adds r4, r6 - lsls r4, 3 - movs r3, 0xA4 - lsls r3, 1 - adds r4, r3 - ldr r0, [r5] - adds r0, r4 - ldr r1, =gText_Cancel - bl StringCopy - ldr r0, [r5] - lsls r2, r6, 3 - adds r1, r0, r2 - adds r4, r0, r4 - str r4, [r1] - adds r0, 0x4 - adds r0, r2 - movs r1, 0x2 - negs r1, r1 - str r1, [r0] - ldr r2, =gUnknown_03006310 - adds r1, r2, 0 - ldr r0, =gUnknown_085A6BD0 - ldm r0!, {r3,r4,r6} - stm r1!, {r3,r4,r6} - ldm r0!, {r3,r4,r6} - stm r1!, {r3,r4,r6} - ldr r0, =gUnknown_0203A188 - ldrb r0, [r0, 0x1] - strb r0, [r2, 0x10] - ldr r0, [r5] - movs r4, 0xA4 - lsls r4, 3 - adds r1, r0, r4 - ldrb r1, [r1] - strh r1, [r2, 0xC] - str r0, [r2] - ldr r6, =0x00000521 - adds r0, r6 - ldrb r0, [r0] - strh r0, [r2, 0xE] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8127330 - - thumb_func_start sub_8127454 -sub_8127454: @ 8127454 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r4, r1, 16 - lsrs r4, 16 - ldr r1, =gStringVar1 - bl StringCopy - lsls r4, 5 - ldr r0, =gDecorations + 1 - adds r4, r0 - adds r0, r5, 0 - adds r1, r4, 0 - bl StringAppend - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8127454 - - thumb_func_start sub_8127480 -sub_8127480: @ 8127480 - push {r4,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x1 - beq _08127492 - movs r0, 0x5 - bl PlaySE -_08127492: - adds r0, r4, 0 - bl sub_8127744 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8127480 - - thumb_func_start sub_81274A0 -sub_81274A0: @ 81274A0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r6, r0, 24 - mov r8, r6 - lsls r2, 24 - lsrs r5, r2, 24 - adds r7, r5, 0 - movs r0, 0x2 - negs r0, r0 - cmp r1, r0 - beq _081274F6 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_81277BC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081274DC - adds r3, r5, 0x2 - adds r0, r6, 0 - movs r1, 0x18 - movs r2, 0x5C - bl blit_move_info_icon - b _081274F6 -_081274DC: - adds r0, r4, 0 - bl sub_81277E8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081274F6 - adds r3, r7, 0x2 - mov r0, r8 - movs r1, 0x19 - movs r2, 0x5C - bl blit_move_info_icon -_081274F6: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81274A0 - - thumb_func_start sub_8127500 -sub_8127500: @ 8127500 - push {r4,lr} - sub sp, 0x10 - ldr r4, =gUnknown_0203A18C - ldr r1, [r4] - ldr r2, =0x00000522 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0xFF - bne _08127540 - subs r2, 0x2 - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - subs r0, r1 - str r0, [sp] - movs r0, 0x6E - str r0, [sp, 0x4] - str r0, [sp, 0x8] - ldr r0, =gUnknown_0203A170 - str r0, [sp, 0xC] - movs r0, 0x2 - movs r1, 0x3C - movs r2, 0xC - movs r3, 0x94 - bl AddScrollIndicatorArrowPairParametrized - ldr r1, [r4] - ldr r2, =0x00000522 - adds r1, r2 - strb r0, [r1] -_08127540: - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8127500 - - thumb_func_start sub_8127554 -sub_8127554: @ 8127554 - push {r4,lr} - ldr r4, =gUnknown_0203A18C - ldr r0, [r4] - ldr r2, =0x00000522 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0xFF - beq _08127572 - bl RemoveScrollIndicatorArrowPair - ldr r0, [r4] - ldr r1, =0x00000522 - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] -_08127572: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8127554 - - thumb_func_start sub_8127580 -sub_8127580: @ 8127580 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - bl sub_81269D4 - adds r0, r4, 0 - bl sub_812759C - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8127580 - - thumb_func_start sub_812759C -sub_812759C: @ 812759C - push {r4-r6,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, r4, 2 - adds r5, r4 - lsls r5, 3 - ldr r0, =gTasks + 0x8 - adds r5, r0 - movs r0, 0x3 - bl sub_81269D4 - ldr r0, =gUnknown_0203A173 - ldrb r0, [r0] - bl sub_8127718 - ldr r6, =gUnknown_0203A18C - ldr r0, =0x00000524 - bl AllocZeroed - str r0, [r6] - ldr r1, =0x00000522 - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - bl sub_8127284 - bl sub_81272C8 - bl sub_81272F8 - adds r0, r4, 0 - bl sub_8127330 - ldr r0, =gUnknown_03006310 - ldr r1, =gUnknown_0203A170 - ldrh r1, [r1] - ldr r2, =gUnknown_0203A16E - ldrh r2, [r2] - bl ListMenuInit - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x1A] - bl sub_8127500 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812759C - - thumb_func_start sub_8127620 -sub_8127620: @ 8127620 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_812759C - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_812764C - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8127620 - - thumb_func_start sub_812764C -sub_812764C: @ 812764C - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r5, r0, r1 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08127700 - ldrb r0, [r5, 0x1A] - bl ListMenuHandleInput - adds r4, r0, 0 - ldrb r0, [r5, 0x1A] - ldr r7, =gUnknown_0203A170 - ldr r1, =gUnknown_0203A16E - mov r8, r1 - adds r1, r7, 0 - mov r2, r8 - bl get_coro_args_x18_x1A - movs r0, 0x2 - negs r0, r0 - cmp r4, r0 - beq _081276A4 - adds r0, 0x1 - cmp r4, r0 - bne _081276C4 - b _08127700 - .pool -_081276A4: - movs r0, 0x5 - bl PlaySE - ldr r0, =gUnknown_085A6B78 - movs r2, 0x16 - ldrsh r1, [r5, r2] - lsls r1, 3 - adds r0, 0x4 - adds r1, r0 - ldr r1, [r1] - adds r0, r6, 0 - bl _call_via_r1 - b _08127700 - .pool -_081276C4: - movs r0, 0x5 - bl PlaySE - ldr r0, =gUnknown_0203A172 - strb r4, [r0] - bl sub_8127554 - ldrb r0, [r5, 0x1A] - adds r1, r7, 0 - mov r2, r8 - bl sub_81AE6C8 - movs r0, 0x1 - bl sub_8126A58 - bl sub_81277A8 - ldr r0, =gUnknown_0203A18C - ldr r0, [r0] - bl Free - ldr r1, =gUnknown_085A6B78 - movs r2, 0x16 - ldrsh r0, [r5, r2] - lsls r0, 3 - adds r0, r1 - ldr r1, [r0] - adds r0, r6, 0 - bl _call_via_r1 -_08127700: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812764C - - thumb_func_start sub_8127718 -sub_8127718: @ 8127718 - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x2 - bl sub_81269D4 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - adds r1, r4, 0 - movs r2, 0 - movs r3, 0 - bl sub_8126F68 - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8127718 - - thumb_func_start sub_8127744 -sub_8127744: @ 8127744 - push {r4,r5,lr} - sub sp, 0xC - adds r4, r0, 0 - ldr r0, =gUnknown_0203A188 - ldrb r5, [r0, 0x3] - adds r0, r5, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r0, =gUnknown_0203A151 - ldrb r0, [r0] - cmp r4, r0 - bcc _08127770 - ldr r2, =gText_GoBackPrevMenu - b _08127782 - .pool -_08127770: - ldr r1, =gDecorations - ldr r0, =gUnknown_0203A14C - ldr r0, [r0] - adds r0, r4 - ldrb r0, [r0] - lsls r0, 5 - adds r1, 0x18 - adds r0, r1 - ldr r2, [r0] -_08127782: - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - adds r0, r5, 0 - movs r1, 0x1 - movs r3, 0 - bl PrintTextOnWindow - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8127744 - - thumb_func_start sub_81277A8 -sub_81277A8: @ 81277A8 - push {lr} - movs r0, 0x3 - bl sub_8126A58 - movs r0, 0x2 - bl sub_8126A58 - pop {r0} - bx r0 - thumb_func_end sub_81277A8 - - thumb_func_start sub_81277BC -sub_81277BC: @ 81277BC - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - movs r1, 0 - ldr r3, =gUnknown_0203A152 -_081277C6: - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _081277D8 - movs r0, 0x1 - b _081277E4 - .pool -_081277D8: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xF - bls _081277C6 - movs r0, 0 -_081277E4: - pop {r1} - bx r1 - thumb_func_end sub_81277BC - - thumb_func_start sub_81277E8 -sub_81277E8: @ 81277E8 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - movs r1, 0 - ldr r3, =gUnknown_0203A162 -_081277F2: - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _08127804 - movs r0, 0x1 - b _08127810 - .pool -_08127804: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xB - bls _081277F2 - movs r0, 0 -_08127810: - pop {r1} - bx r1 - thumb_func_end sub_81277E8 - - thumb_func_start sub_8127814 -sub_8127814: @ 8127814 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r5, 0 - ldr r0, =gUnknown_0203A152 - movs r1, 0 - movs r2, 0x10 - bl memset - ldr r0, =gUnknown_0203A162 - movs r1, 0 - movs r2, 0xC - bl memset - movs r6, 0 - ldr r0, =gSaveBlock1Ptr - mov r10, r0 - ldr r1, =0x00001aae - mov r9, r1 - ldr r3, =gUnknown_0203A173 - mov r8, r3 -_08127842: - mov r1, r10 - ldr r0, [r1] - add r0, r9 - adds r0, r6 - ldrb r0, [r0] - cmp r0, 0 - beq _081278E2 - movs r2, 0 - mov r3, r8 - ldrb r0, [r3] - lsls r0, 3 - ldr r1, =gDecorationInventories - adds r0, r1 - ldrb r0, [r0, 0x4] - cmp r2, r0 - bcs _081278E2 - ldr r7, =gUnknown_0203A152 - adds r3, r1, 0 - mov r12, r3 -_08127868: - ldr r0, =gUnknown_0203A14C - ldr r1, [r0] - adds r1, r2 - mov r3, r10 - ldr r0, [r3] - add r0, r9 - adds r0, r6 - ldrb r1, [r1] - adds r4, r2, 0x1 - ldrb r0, [r0] - cmp r1, r0 - bne _081278D0 - movs r1, 0 - cmp r1, r5 - bcs _081278A2 - ldrb r0, [r7] - cmp r0, r4 - beq _081278A2 - ldr r3, =gUnknown_0203A152 - adds r2, r4, 0 -_08127890: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r5 - bcs _081278A2 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _08127890 -_081278A2: - cmp r1, r5 - bne _081278D0 - adds r0, r5, r7 - strb r4, [r0] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - b _081278E2 - .pool -_081278D0: - lsls r0, r4, 16 - lsrs r2, r0, 16 - mov r1, r8 - ldrb r0, [r1] - lsls r0, 3 - add r0, r12 - ldrb r0, [r0, 0x4] - cmp r2, r0 - bcc _08127868 -_081278E2: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0xF - bls _08127842 - movs r5, 0 - movs r6, 0 - ldr r3, =gDecorationInventories - mov r8, r3 -_081278F4: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x0000271c - adds r0, r1 - adds r0, r6 - ldrb r0, [r0] - adds r7, r6, 0x1 - cmp r0, 0 - beq _0812799A - movs r2, 0 - b _0812798C - .pool -_08127918: - ldr r0, =gUnknown_0203A14C - ldr r1, [r0] - adds r1, r2 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r3, =0x0000271c - adds r0, r3 - adds r0, r6 - ldrb r1, [r1] - adds r4, r2, 0x1 - ldrb r0, [r0] - cmp r1, r0 - bne _08127988 - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_81277BC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08127988 - movs r1, 0 - cmp r1, r5 - bcs _08127966 - ldr r2, =gUnknown_0203A162 - ldrb r0, [r2] - cmp r0, r4 - beq _08127966 - adds r3, r2, 0 - adds r2, r4, 0 -_08127954: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r5 - bcs _08127966 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _08127954 -_08127966: - cmp r1, r5 - bne _08127988 - ldr r0, =gUnknown_0203A162 - adds r0, r5, r0 - strb r4, [r0] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - b _0812799A - .pool -_08127988: - lsls r0, r4, 16 - lsrs r2, r0, 16 -_0812798C: - ldr r0, =gUnknown_0203A173 - ldrb r0, [r0] - lsls r0, 3 - add r0, r8 - ldrb r0, [r0, 0x4] - cmp r2, r0 - bcc _08127918 -_0812799A: - lsls r0, r7, 16 - lsrs r6, r0, 16 - cmp r6, 0xB - bls _081278F4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8127814 - - thumb_func_start sub_81279B4 -sub_81279B4: @ 81279B4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_8127814 - pop {r0} - bx r0 - thumb_func_end sub_81279B4 - - thumb_func_start sub_81279C4 -sub_81279C4: @ 81279C4 - push {r4,lr} - movs r2, 0 - ldr r0, =gUnknown_0203A170 - ldrh r0, [r0] - ldr r1, =gUnknown_0203A16E - ldrh r1, [r1] - adds r0, r1 - adds r1, r0, 0x1 - ldr r4, =gUnknown_0203A152 - ldr r3, =gUnknown_0203A162 -_081279D8: - adds r0, r2, r4 - ldrb r0, [r0] - cmp r0, r1 - beq _081279EC - cmp r2, 0xB - bhi _08127A00 - adds r0, r2, r3 - ldrb r0, [r0] - cmp r0, r1 - bne _08127A00 -_081279EC: - movs r0, 0 - b _08127A0C - .pool -_08127A00: - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0xF - bls _081279D8 - movs r0, 0x1 -_08127A0C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81279C4 - - thumb_func_start sub_8127A14 -sub_8127A14: @ 8127A14 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - bl sub_81269D4 - adds r0, r4, 0 - bl sub_8127620 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8127A14 - - thumb_func_start sub_8127A30 -sub_8127A30: @ 8127A30 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - movs r1, 0 - bl sub_8197434 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_8127A14 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8127A30 - - thumb_func_start sub_8127A5C -sub_8127A5C: @ 8127A5C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _08127A82 - movs r0, 0 - movs r1, 0 - bl sub_8197434 - movs r0, 0x1 - bl sub_81269D4 - adds r0, r4, 0 - bl sub_8127620 -_08127A82: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8127A5C - - thumb_func_start sub_8127A8C -sub_8127A8C: @ 8127A8C - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, =gTasks + 0x8 - adds r4, r0 - bl sub_8127554 - bl sub_81277A8 - ldrb r0, [r4, 0x1A] - movs r1, 0 - movs r2, 0 - bl sub_81AE6C8 - ldr r0, =gUnknown_0203A18C - ldr r0, [r0] - bl Free - adds r0, r5, 0 - bl sub_8126E44 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8127A8C - - thumb_func_start sub_8127ACC -sub_8127ACC: @ 8127ACC - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r3, =gTasks - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - adds r4, r2, r3 - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldrh r0, [r1] - strh r0, [r4, 0xE] - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x10] - adds r3, 0x8 - adds r2, r3 - adds r1, r2, 0x2 - adds r0, r2, 0 - bl PlayerGetDestCoords - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8127ACC - - thumb_func_start sub_8127B04 -sub_8127B04: @ 8127B04 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - bl DrawWholeMapView - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - movs r0, 0x4 - ldrsb r0, [r1, r0] - ldrb r1, [r1, 0x5] - lsls r1, 24 - asrs r1, 24 - movs r2, 0x1 - negs r2, r2 - ldr r3, =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r3 - movs r3, 0xE - ldrsb r3, [r4, r3] - ldrb r4, [r4, 0x10] - lsls r4, 24 - asrs r4, 24 - str r4, [sp] - bl Overworld_SetWarpDestination - bl warp_in - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8127B04 - - thumb_func_start sub_8127B54 -sub_8127B54: @ 8127B54 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r0, =0x0000ffff - cmp r2, 0x22 - beq _08127B7C - cmp r2, 0x26 - bne _08127B86 - ldr r0, =gUnknown_085A72E4 - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, 28 - lsrs r0, 16 - b _08127B86 - .pool -_08127B7C: - ldr r0, =gUnknown_085A72EC - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, 28 - lsrs r0, 16 -_08127B86: - pop {r1} - bx r1 - .pool - thumb_func_end sub_8127B54 - - thumb_func_start sub_8127B90 -sub_8127B90: @ 8127B90 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x34 - ldr r4, [sp, 0x54] - lsls r0, 16 - lsrs r0, 16 - str r0, [sp] - lsls r1, 16 - lsrs r1, 16 - str r1, [sp, 0x4] - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x8] - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0xC] - lsls r4, 16 - lsrs r4, 16 - str r4, [sp, 0x10] - movs r2, 0 - lsls r0, r3, 16 - cmp r2, r3 - bcc _08127BC6 - b _08127D28 -_08127BC6: - ldr r1, [sp, 0x8] - str r1, [sp, 0x28] - str r0, [sp, 0x2C] -_08127BCC: - ldr r3, [sp, 0x4] - ldr r4, [sp, 0xC] - subs r1, r3, r4 - lsls r0, r2, 16 - asrs r0, 16 - adds r0, 0x1 - adds r1, r0 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp, 0x14] - movs r0, 0 - mov r10, r0 - adds r1, r2, 0x1 - str r1, [sp, 0x30] - ldr r3, [sp, 0x28] - cmp r10, r3 - bcc _08127BF0 - b _08127D18 -_08127BF0: - ldr r4, [sp, 0x10] - lsls r4, 5 - str r4, [sp, 0x18] - ldr r0, =gUnknown_085A5C24 - adds r0, r4, r0 - str r0, [sp, 0x1C] - ldr r0, =gDecorations - adds r0, r4, r0 - str r0, [sp, 0x24] - ldr r3, [sp, 0x8] - adds r1, r2, 0 - muls r1, r3 - str r1, [sp, 0x20] -_08127C0A: - ldr r0, [sp] - add r0, r10 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r1, [sp, 0x20] - add r1, r10 - ldr r4, [sp, 0x1C] - ldr r0, [r4] - lsls r1, 1 - adds r1, r0 - movs r2, 0x80 - lsls r2, 2 - adds r0, r2, 0 - ldrh r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - bl GetBehaviorByMetatileId - lsls r4, r0, 16 - lsls r0, r4, 8 - lsrs r0, 24 - bl MetatileBehavior_IsMB_B9 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08127C50 - ldr r3, [sp, 0x24] - ldrb r0, [r3, 0x11] - cmp r0, 0x1 - beq _08127C60 - lsrs r0, r4, 28 - cmp r0, 0 - beq _08127C60 -_08127C50: - movs r4, 0xC0 - lsls r4, 4 - mov r8, r4 - b _08127C64 - .pool -_08127C60: - movs r0, 0 - mov r8, r0 -_08127C64: - ldr r1, [sp, 0x24] - ldrb r0, [r1, 0x11] - lsls r7, r5, 16 - ldr r2, [sp, 0x14] - lsls r2, 16 - mov r9, r2 - cmp r0, 0x3 - beq _08127C8E - asrs r0, r7, 16 - asrs r1, r2, 16 - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - bl MetatileBehavior_IsMB_B7 - lsls r0, 24 - lsrs r0, 24 - movs r6, 0x1 - cmp r0, 0x1 - beq _08127C90 -_08127C8E: - movs r6, 0 -_08127C90: - ldr r3, [sp, 0x18] - ldr r4, =gDecorations - adds r0, r3, r4 - ldrb r0, [r0] - ldr r4, [sp, 0x20] - add r4, r10 - lsls r1, r4, 24 - lsrs r1, 24 - bl sub_8127B54 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, =0x0000ffff - cmp r5, r0 - beq _08127CE0 - asrs r0, r7, 16 - mov r2, r9 - asrs r1, r2, 16 - ldr r3, [sp, 0x1C] - ldr r2, [r3] - lsls r3, r4, 1 - adds r3, r2 - movs r4, 0x80 - lsls r4, 2 - adds r2, r4, 0 - orrs r6, r2 - ldrh r3, [r3] - adds r2, r6, r3 - mov r3, r8 - orrs r3, r2 - orrs r3, r5 - lsls r2, r3, 16 - lsrs r2, 16 - bl MapGridSetMetatileEntryAt - b _08127D06 - .pool -_08127CE0: - asrs r0, r7, 16 - mov r2, r9 - asrs r1, r2, 16 - ldr r3, [sp, 0x1C] - ldr r2, [r3] - lsls r3, r4, 1 - adds r3, r2 - movs r4, 0x80 - lsls r4, 2 - adds r2, r4, 0 - orrs r6, r2 - ldrh r3, [r3] - adds r2, r6, r3 - mov r3, r8 - orrs r3, r2 - lsls r2, r3, 16 - lsrs r2, 16 - bl MapGridSetMetatileIdAt -_08127D06: - mov r0, r10 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - ldr r4, [sp, 0x28] - cmp r10, r4 - bcs _08127D18 - b _08127C0A -_08127D18: - ldr r1, [sp, 0x30] - lsls r0, r1, 16 - lsrs r2, r0, 16 - ldr r3, [sp, 0x2C] - lsrs r0, r3, 16 - cmp r2, r0 - bcs _08127D28 - b _08127BCC -_08127D28: - add sp, 0x34 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8127B90 - - thumb_func_start sub_8127D38 -sub_8127D38: @ 8127D38 - push {r4,lr} - sub sp, 0x4 - lsls r0, 16 - lsrs r3, r0, 16 - lsls r1, 16 - lsrs r4, r1, 16 - lsls r2, 16 - lsrs r2, 16 - ldr r1, =gDecorations - lsls r0, r2, 5 - adds r0, r1 - ldrb r0, [r0, 0x12] - cmp r0, 0x9 - bhi _08127E10 - lsls r0, 2 - ldr r1, =_08127D68 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08127D68: - .4byte _08127D90 - .4byte _08127D9A - .4byte _08127DA4 - .4byte _08127DB4 - .4byte _08127DBE - .4byte _08127DC8 - .4byte _08127DD8 - .4byte _08127DE2 - .4byte _08127DF2 - .4byte _08127E02 -_08127D90: - str r2, [sp] - adds r0, r3, 0 - adds r1, r4, 0 - movs r2, 0x1 - b _08127DAC -_08127D9A: - str r2, [sp] - adds r0, r3, 0 - adds r1, r4, 0 - movs r2, 0x2 - b _08127DAC -_08127DA4: - str r2, [sp] - adds r0, r3, 0 - adds r1, r4, 0 - movs r2, 0x3 -_08127DAC: - movs r3, 0x1 - bl sub_8127B90 - b _08127E10 -_08127DB4: - str r2, [sp] - adds r0, r3, 0 - adds r1, r4, 0 - movs r2, 0x4 - b _08127DD0 -_08127DBE: - str r2, [sp] - adds r0, r3, 0 - adds r1, r4, 0 - movs r2, 0x2 - b _08127DD0 -_08127DC8: - str r2, [sp] - adds r0, r3, 0 - adds r1, r4, 0 - movs r2, 0x1 -_08127DD0: - movs r3, 0x2 - bl sub_8127B90 - b _08127E10 -_08127DD8: - str r2, [sp] - adds r0, r3, 0 - adds r1, r4, 0 - movs r2, 0x1 - b _08127DFA -_08127DE2: - str r2, [sp] - adds r0, r3, 0 - adds r1, r4, 0 - movs r2, 0x2 - movs r3, 0x4 - bl sub_8127B90 - b _08127E10 -_08127DF2: - str r2, [sp] - adds r0, r3, 0 - adds r1, r4, 0 - movs r2, 0x3 -_08127DFA: - movs r3, 0x3 - bl sub_8127B90 - b _08127E10 -_08127E02: - str r2, [sp] - adds r0, r3, 0 - adds r1, r4, 0 - movs r2, 0x3 - movs r3, 0x2 - bl sub_8127B90 -_08127E10: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8127D38 - - thumb_func_start sub_8127E18 -sub_8127E18: @ 8127E18 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - movs r6, 0 - ldr r7, =gMapHeader - ldr r0, =gSpecialVar_0x8005 - mov r8, r0 - ldr r1, =gSpecialVar_0x8006 - mov r10, r1 - ldr r2, =gSaveBlock1Ptr - mov r9, r2 -_08127E34: - adds r5, r6, 0 - adds r5, 0xAE - adds r4, r5, 0 - adds r0, r4, 0 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08127F1C - adds r0, r4, 0 - bl FlagClear - movs r2, 0 - ldr r0, [r7, 0x4] - ldrb r4, [r0] - cmp r2, r4 - bcs _08127E82 - ldr r0, [r0, 0x4] - ldrh r0, [r0, 0x14] - cmp r0, r5 - beq _08127E82 - ldr r0, =gMapHeader - ldr r3, [r0, 0x4] - ldrb r6, [r3] - adds r4, r5, 0 -_08127E68: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, r6 - bcs _08127E82 - ldr r0, [r3, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x14] - cmp r0, r4 - bne _08127E68 -_08127E82: - ldr r0, [r7, 0x4] - ldr r1, [r0, 0x4] - lsls r4, r2, 1 - adds r4, r2 - lsls r4, 3 - adds r1, r4, r1 - ldr r5, =0x00003f20 - adds r0, r5, 0 - ldrb r1, [r1, 0x1] - adds r0, r1 - ldr r1, =gUnknown_0203A190 - ldr r1, [r1] - ldr r1, [r1, 0x1C] - ldrh r1, [r1] - bl VarSet - ldr r0, [r7, 0x4] - ldr r0, [r0, 0x4] - adds r4, r0 - ldrb r0, [r4] - mov r6, r8 - strh r0, [r6] - ldr r1, =gUnknown_0203AA34 - ldrh r1, [r1] - mov r2, r10 - strh r1, [r2] - ldr r1, =gUnknown_0203AA36 - ldrh r1, [r1] - ldr r4, =gSpecialVar_0x8007 - strh r1, [r4] - mov r5, r9 - ldr r2, [r5] - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - bl show_sprite - ldrb r0, [r6] - ldr r2, [r5] - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - mov r6, r10 - movs r4, 0 - ldrsh r3, [r6, r4] - ldr r5, =gSpecialVar_0x8007 - movs r6, 0 - ldrsh r4, [r5, r6] - str r4, [sp] - bl sub_808EBA8 - mov r1, r8 - ldrb r0, [r1] - mov r4, r9 - ldr r2, [r4] - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - bl sub_808F254 - b _08127F26 - .pool -_08127F1C: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0xD - bls _08127E34 -_08127F26: - 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 sub_8127E18 - - thumb_func_start sub_8127F38 -sub_8127F38: @ 8127F38 - push {lr} - movs r1, 0 - ldr r0, =gUnknown_0203A17C - ldrb r2, [r0, 0x8] - cmp r1, r2 - bcs _08127F62 - ldr r3, [r0] -_08127F46: - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _08127F58 - movs r0, 0x1 - b _08127F64 - .pool -_08127F58: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r2 - bcc _08127F46 -_08127F62: - movs r0, 0 -_08127F64: - pop {r1} - bx r1 - thumb_func_end sub_8127F38 - - thumb_func_start sub_8127F68 -sub_8127F68: @ 8127F68 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gUnknown_0203A17C - ldrb r0, [r0, 0x9] - cmp r0, 0x1 - bne _08127FAC - ldr r0, =gUnknown_0203A173 - ldrb r0, [r0] - cmp r0, 0x6 - beq _08127FAC - cmp r0, 0x7 - beq _08127FAC - ldr r4, =gStringVar4 - ldr r1, =gText_CantPlaceInRoom - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, =sub_8127A5C - adds r0, r5, 0 - adds r1, r4, 0 - bl DisplayItemMessageOnField - b _0812804C - .pool -_08127FAC: - bl sub_81279C4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08128038 - bl sub_8127F38 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08127FE8 - movs r0, 0x1 - movs r1, 0 - bl fade_screen - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xC] - ldr r1, =sub_8128060 - str r1, [r0] - b _0812804C - .pool -_08127FE8: - ldr r0, =gStringVar1 - ldr r4, =gUnknown_0203A17C - ldrb r1, [r4, 0x8] - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldrb r0, [r4, 0x9] - cmp r0, 0 - bne _08128018 - ldr r0, =gStringVar4 - ldr r1, =gText_NoMoreDecorations - bl StringExpandPlaceholders - b _08128020 - .pool -_08128018: - ldr r0, =gStringVar4 - ldr r1, =gText_NoMoreDecorations2 - bl StringExpandPlaceholders -_08128020: - ldr r1, =gStringVar4 - ldr r2, =sub_8127A5C - adds r0, r5, 0 - bl DisplayItemMessageOnField - b _0812804C - .pool -_08128038: - ldr r4, =gStringVar4 - ldr r1, =gText_InUseAlready - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, =sub_8127A5C - adds r0, r5, 0 - adds r1, r4, 0 - bl DisplayItemMessageOnField -_0812804C: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8127F68 - - thumb_func_start sub_8128060 -sub_8128060: @ 8128060 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r7, r0, r1 - movs r1, 0xC - ldrsh r0, [r7, r1] - cmp r0, 0x1 - beq _081280AC - cmp r0, 0x1 - bgt _08128088 - cmp r0, 0 - beq _0812808E - b _08128112 - .pool -_08128088: - cmp r0, 0x2 - beq _081280FC - b _08128112 -_0812808E: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08128112 - adds r0, r6, 0 - bl sub_8127ACC - movs r0, 0x1 - strh r0, [r7, 0xC] - b _08128112 - .pool -_081280AC: - ldr r4, =gPaletteFade - ldrb r0, [r4, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r4, 0x8] - ldr r5, =gUnknown_0203A190 - ldr r0, =gUnknown_0203A172 - ldrb r1, [r0] - ldr r0, =gUnknown_0203A14C - ldr r0, [r0] - adds r0, r1 - ldrb r1, [r0] - adds r0, r5, 0 - bl ConfigureCameraObjectForPlacingDecoration - adds r0, r6, 0 - bl sub_812826C - adds r0, r6, 0 - adds r1, r5, 0 - bl SetUpPlacingDecorationPlayerAvatar - bl pal_fill_black - ldrb r1, [r4, 0x8] - movs r0, 0x7F - ands r0, r1 - strb r0, [r4, 0x8] - movs r0, 0x2 - strh r0, [r7, 0xC] - b _08128112 - .pool -_081280FC: - bl sub_80ABDFC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08128112 - movs r0, 0 - strh r0, [r7, 0x20] - adds r0, r6, 0 - bl sub_8128FD8 -_08128112: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8128060 - - thumb_func_start ConfigureCameraObjectForPlacingDecoration -ConfigureCameraObjectForPlacingDecoration: @ 8128118 - push {r4-r6,lr} - adds r6, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, =gUnknown_0203AA38 - ldr r4, =gSprites - ldr r5, =gUnknown_03005DD0 - ldr r2, [r5, 0x4] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r4 - ldrh r0, [r0, 0x2E] - strb r0, [r3] - adds r0, r6, 0 - bl gpu_pal_decompress_alloc_tag_and_upload - lsls r0, 24 - lsrs r0, 24 - str r0, [r5, 0x4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1, 0x5] - ldr r0, [r5, 0x4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r0, r4, 0 - adds r0, 0x1C - adds r0, r2, r0 - ldr r1, =sub_81292D0 - str r1, [r0] - adds r2, r4 - ldr r3, =gUnknown_085A7250 - ldr r0, [r6] - ldrb r0, [r0, 0x12] - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x2] - strh r0, [r2, 0x20] - ldr r0, [r5, 0x4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldr r0, [r6] - ldrb r0, [r0, 0x12] - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x3] - strh r0, [r1, 0x22] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end ConfigureCameraObjectForPlacingDecoration - - thumb_func_start SetUpPlacingDecorationPlayerAvatar -SetUpPlacingDecorationPlayerAvatar: @ 81281A8 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - ldr r3, =gTasks - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - adds r2, r3 - ldrb r2, [r2, 0x12] - ldr r3, =gUnknown_085A7250 - ldr r0, [r1] - ldrb r4, [r0, 0x12] - lsls r1, r4, 2 - adds r1, r3 - lsls r0, r2, 4 - ldrb r1, [r1, 0x2] - adds r0, r1 - subs r2, 0x1 - lsls r2, 3 - subs r0, r2 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r4, 0x2 - beq _081281E2 - cmp r4, 0x8 - beq _081281E2 - cmp r4, 0x9 - bne _081281EA -_081281E2: - adds r0, r2, 0 - subs r0, 0x8 - lsls r0, 24 - lsrs r2, r0, 24 -_081281EA: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _0812820C - ldr r1, =SpriteCallbackDummy - str r0, [sp] - movs r0, 0xC1 - b _08128214 - .pool -_0812820C: - ldr r1, =SpriteCallbackDummy - movs r0, 0 - str r0, [sp] - movs r0, 0xC2 -_08128214: - movs r3, 0x48 - bl AddPseudoFieldObject - ldr r1, =gUnknown_0203AA39 - strb r0, [r1] - ldr r3, =gSprites - ldr r0, =gUnknown_0203AA39 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0, 0x5] - ldr r4, =gUnknown_0203AA38 - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - bl DestroySprite - ldr r0, =gUnknown_03005DD0 - ldr r0, [r0, 0x4] - strb r0, [r4] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end SetUpPlacingDecorationPlayerAvatar - - thumb_func_start sub_812826C -sub_812826C: @ 812826C - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, =gDecorations - ldr r0, =gUnknown_0203A172 - ldrb r1, [r0] - ldr r0, =gUnknown_0203A14C - ldr r0, [r0] - adds r0, r1 - ldrb r0, [r0] - lsls r0, 5 - adds r0, r2 - ldrb r0, [r0, 0x12] - cmp r0, 0x9 - bls _0812828C - b _081283B2 -_0812828C: - lsls r0, 2 - ldr r1, =_081282A8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081282A8: - .4byte _081282D0 - .4byte _081282E4 - .4byte _081282FC - .4byte _08128314 - .4byte _08128328 - .4byte _0812833C - .4byte _08128350 - .4byte _08128370 - .4byte _08128388 - .4byte _081283A0 -_081282D0: - ldr r0, =gTasks - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - b _08128394 - .pool -_081282E4: - ldr r1, =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - movs r1, 0x2 - strh r1, [r0, 0x12] - movs r1, 0x1 - b _081283B0 - .pool -_081282FC: - ldr r1, =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - movs r1, 0x3 - strh r1, [r0, 0x12] - movs r1, 0x1 - b _081283B0 - .pool -_08128314: - ldr r1, =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - movs r1, 0x4 - b _081283AC - .pool -_08128328: - ldr r0, =gTasks - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 3 - adds r1, r0 - movs r0, 0x2 - b _08128394 - .pool -_0812833C: - ldr r1, =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - movs r1, 0x1 - b _081283AC - .pool -_08128350: - ldr r0, =gTasks - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - strh r0, [r1, 0x12] - movs r0, 0x3 - strh r0, [r1, 0x14] - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] - b _081283B2 - .pool -_08128370: - ldr r1, =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - movs r1, 0x2 - strh r1, [r0, 0x12] - movs r1, 0x4 - b _081283B0 - .pool -_08128388: - ldr r0, =gTasks - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 3 - adds r1, r0 - movs r0, 0x3 -_08128394: - strh r0, [r1, 0x12] - strh r0, [r1, 0x14] - b _081283B2 - .pool -_081283A0: - ldr r1, =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - movs r1, 0x3 -_081283AC: - strh r1, [r0, 0x12] - movs r1, 0x2 -_081283B0: - strh r1, [r0, 0x14] -_081283B2: - pop {r0} - bx r0 - .pool - thumb_func_end sub_812826C - - thumb_func_start sub_81283BC -sub_81283BC: @ 81283BC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x1C] - ldr r3, =gSprites - ldr r0, =gUnknown_0203AA38 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r2, 0x1 - strh r2, [r0, 0x3C] - ldr r0, =gUnknown_0203AA39 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r2, [r0, 0x3C] - bl sub_8128DE0 - adds r0, r4, 0 - bl sub_8128950 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81283BC - - thumb_func_start sub_8128414 -sub_8128414: @ 8128414 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x1C] - ldr r3, =gSprites - ldr r0, =gUnknown_0203AA38 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r2, 0x1 - strh r2, [r0, 0x3C] - ldr r0, =gUnknown_0203AA39 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r2, [r0, 0x3C] - bl sub_8128DE0 - ldr r5, =gStringVar4 - ldr r1, =gText_CancelDecorating - adds r0, r5, 0 - bl StringExpandPlaceholders - ldr r2, =sub_8128B80 - adds r0, r4, 0 - adds r1, r5, 0 - bl DisplayItemMessageOnField - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8128414 - - thumb_func_start sub_8128484 -sub_8128484: @ 8128484 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r4, r1, 16 - bl MetatileBehavior_IsMB_B3 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0812849E - cmp r4, 0 - beq _081284A2 -_0812849E: - movs r0, 0 - b _081284A4 -_081284A2: - movs r0, 0x1 -_081284A4: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8128484 - - thumb_func_start sub_81284AC -sub_81284AC: @ 81284AC - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r2, 16 - lsrs r4, r2, 16 - lsls r3, 16 - lsrs r5, r3, 16 - lsls r1, 16 - asrs r1, 16 - ldr r3, =gTasks - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - adds r2, r3 - movs r3, 0xE - ldrsh r0, [r2, r3] - adds r0, 0x7 - cmp r1, r0 - bne _081284EC - lsls r1, r4, 16 - asrs r1, 16 - movs r3, 0x10 - ldrsh r0, [r2, r3] - adds r0, 0x7 - cmp r1, r0 - bne _081284EC - cmp r5, 0 - beq _081284EC - movs r0, 0 - b _081284EE - .pool -_081284EC: - movs r0, 0x1 -_081284EE: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81284AC - - thumb_func_start sub_81284F4 -sub_81284F4: @ 81284F4 - push {r4-r6,lr} - adds r5, r1, 0 - lsls r0, 16 - lsrs r6, r0, 16 - lsls r0, r6, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl MetatileBehavior_IsMB_B3 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08128534 - ldrb r0, [r5] - cmp r0, 0x21 - bne _08128522 - adds r0, r4, 0 - bl MetatileBehavior_IsMB_C2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08128530 -_08128522: - lsls r0, r6, 24 - lsrs r0, 24 - bl MetatileBehavior_IsNormal - lsls r0, 24 - cmp r0, 0 - beq _08128534 -_08128530: - movs r0, 0x1 - b _08128536 -_08128534: - movs r0, 0 -_08128536: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81284F4 - - thumb_func_start sub_812853C -sub_812853C: @ 812853C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - str r1, [sp] - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r1, =gTasks - lsls r0, 2 - add r0, r10 - lsls r0, 3 - adds r0, r1 - ldrb r2, [r0, 0x14] - str r2, [sp, 0x4] - ldrb r0, [r0, 0x12] - str r0, [sp, 0x8] - ldr r3, [sp] - ldrb r0, [r3, 0x11] - adds r2, r1, 0 - cmp r0, 0x4 - bls _0812856E - b _0812893C -_0812856E: - lsls r0, 2 - ldr r1, =_08128580 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08128580: - .4byte _08128594 - .4byte _08128594 - .4byte _08128680 - .4byte _08128834 - .4byte _081288B8 -_08128594: - movs r6, 0 - ldr r0, [sp, 0x4] - cmp r6, r0 - bcc _0812859E - b _0812893C -_0812859E: - mov r1, r10 - lsls r1, 2 - str r1, [sp, 0x1C] -_081285A4: - mov r2, r10 - lsls r0, r2, 2 - add r0, r10 - lsls r0, 3 - ldr r3, =gTasks - adds r0, r3 - ldrh r0, [r0, 0xA] - subs r0, r6 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - movs r7, 0 - adds r6, 0x1 - str r6, [sp, 0x14] - ldr r0, [sp, 0x8] - cmp r7, r0 - bcs _0812866E - mov r1, r9 - lsls r1, 16 - str r1, [sp, 0xC] - asrs r1, 16 - mov r9, r1 -_081285D0: - ldr r0, [sp, 0x1C] - add r0, r10 - lsls r0, 3 - ldr r2, =gTasks - adds r0, r2 - ldrh r0, [r0, 0x8] - adds r0, r7 - lsls r0, 16 - mov r8, r0 - asrs r6, r0, 16 - adds r0, r6, 0 - mov r1, r9 - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r4, r0, 24 - ldr r3, [sp, 0x4] - ldr r1, [sp, 0x14] - subs r0, r3, r1 - ldr r2, [sp, 0x8] - adds r1, r0, 0 - muls r1, r2 - adds r1, r7 - ldr r3, [sp] - ldr r0, [r3, 0x1C] - lsls r1, 1 - adds r1, r0 - movs r2, 0x80 - lsls r2, 2 - adds r0, r2, 0 - ldrh r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - bl GetBehaviorByMetatileId - movs r3, 0xF0 - lsls r3, 8 - adds r1, r3, 0 - adds r5, r1, 0 - ands r5, r0 - adds r0, r4, 0 - ldr r1, [sp] - bl sub_81284F4 - lsls r0, 24 - cmp r0, 0 - bne _08128632 - b _0812890C -_08128632: - mov r0, r10 - adds r1, r6, 0 - mov r2, r9 - adds r3, r5, 0 - bl sub_81284AC - lsls r0, 24 - cmp r0, 0 - bne _08128646 - b _0812890C -_08128646: - mov r1, r8 - lsrs r0, r1, 16 - ldr r2, [sp, 0xC] - lsrs r1, r2, 16 - movs r2, 0 - bl GetFieldObjectIdByXYZ - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _08128662 - cmp r4, 0x10 - beq _08128662 - b _0812890C -_08128662: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r3, [sp, 0x8] - cmp r7, r3 - bcc _081285D0 -_0812866E: - ldr r1, [sp, 0x14] - lsls r0, r1, 24 - lsrs r6, r0, 24 - ldr r2, [sp, 0x4] - cmp r6, r2 - bcc _081285A4 - b _0812893C - .pool -_08128680: - movs r6, 0 - mov r3, r10 - lsls r3, 2 - str r3, [sp, 0x1C] - ldr r0, [sp, 0x4] - subs r0, 0x1 - str r0, [sp, 0x18] - cmp r6, r0 - bge _0812876C - adds r0, r3, 0 - add r0, r10 - lsls r0, 3 - str r0, [sp, 0x10] -_0812869A: - ldr r1, [sp, 0x10] - adds r0, r1, r2 - ldrh r0, [r0, 0xA] - subs r0, r6 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - movs r7, 0 - adds r6, 0x1 - str r6, [sp, 0x14] - ldr r3, [sp, 0x8] - cmp r7, r3 - bcs _08128760 - lsls r0, 16 - str r0, [sp, 0x20] -_081286B8: - ldr r1, [sp, 0x10] - adds r0, r1, r2 - ldrh r0, [r0, 0x8] - adds r0, r7 - lsls r0, 16 - mov r8, r0 - asrs r6, r0, 16 - mov r2, r9 - lsls r1, r2, 16 - adds r0, r6, 0 - asrs r1, 16 - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r4, r0, 24 - ldr r3, [sp, 0x4] - ldr r1, [sp, 0x14] - subs r0, r3, r1 - ldr r2, [sp, 0x8] - adds r1, r0, 0 - muls r1, r2 - adds r1, r7 - ldr r3, [sp] - ldr r0, [r3, 0x1C] - lsls r1, 1 - adds r1, r0 - movs r2, 0x80 - lsls r2, 2 - adds r0, r2, 0 - ldrh r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - bl GetBehaviorByMetatileId - movs r3, 0xF0 - lsls r3, 8 - adds r1, r3, 0 - adds r5, r1, 0 - ands r5, r0 - adds r0, r4, 0 - bl MetatileBehavior_IsNormal - lsls r0, 24 - cmp r0, 0 - bne _08128724 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8128484 - lsls r0, 24 - cmp r0, 0 - bne _08128724 - b _0812890C -_08128724: - mov r0, r10 - adds r1, r6, 0 - ldr r3, [sp, 0x20] - asrs r2, r3, 16 - adds r3, r5, 0 - bl sub_81284AC - lsls r0, 24 - cmp r0, 0 - bne _0812873A - b _0812890C -_0812873A: - mov r1, r8 - lsrs r0, r1, 16 - ldr r2, [sp, 0x20] - lsrs r1, r2, 16 - movs r2, 0 - bl GetFieldObjectIdByXYZ - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x10 - beq _08128752 - b _0812890C -_08128752: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r2, =gTasks - ldr r3, [sp, 0x8] - cmp r7, r3 - bcc _081286B8 -_08128760: - ldr r1, [sp, 0x14] - lsls r0, r1, 24 - lsrs r6, r0, 24 - ldr r3, [sp, 0x18] - cmp r6, r3 - blt _0812869A -_0812876C: - ldr r0, [sp, 0x1C] - add r0, r10 - lsls r0, 3 - adds r0, r2 - ldrh r0, [r0, 0xA] - ldr r1, [sp, 0x4] - subs r0, r1 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - movs r7, 0 - ldr r3, [sp, 0x8] - cmp r7, r3 - bcc _0812878C - b _0812893C -_0812878C: - lsls r0, 16 - str r0, [sp, 0x20] -_08128790: - ldr r0, [sp, 0x1C] - add r0, r10 - lsls r0, 3 - ldr r1, =gTasks - adds r0, r1 - ldrh r0, [r0, 0x8] - adds r0, r7 - lsls r0, 16 - mov r8, r0 - asrs r6, r0, 16 - mov r2, r9 - lsls r1, r2, 16 - adds r0, r6, 0 - asrs r1, 16 - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r4, r0, 24 - ldr r3, [sp] - ldr r0, [r3, 0x1C] - lsls r1, r7, 1 - adds r1, r0 - movs r2, 0x80 - lsls r2, 2 - adds r0, r2, 0 - ldrh r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - bl GetBehaviorByMetatileId - movs r3, 0xF0 - lsls r3, 8 - adds r1, r3, 0 - adds r5, r1, 0 - ands r5, r0 - adds r0, r4, 0 - bl MetatileBehavior_IsNormal - lsls r0, 24 - cmp r0, 0 - bne _081287F2 - adds r0, r4, 0 - bl MetatileBehavior_IsMB_B7 - lsls r0, 24 - cmp r0, 0 - bne _081287F2 - b _0812890C -_081287F2: - mov r0, r10 - adds r1, r6, 0 - ldr r3, [sp, 0x20] - asrs r2, r3, 16 - adds r3, r5, 0 - bl sub_81284AC - lsls r0, 24 - cmp r0, 0 - bne _08128808 - b _0812890C -_08128808: - mov r1, r8 - lsrs r0, r1, 16 - ldr r2, [sp, 0x20] - lsrs r1, r2, 16 - movs r2, 0 - bl GetFieldObjectIdByXYZ - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _08128822 - cmp r4, 0x10 - bne _0812890C -_08128822: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r3, [sp, 0x8] - cmp r7, r3 - bcc _08128790 - b _0812893C - .pool -_08128834: - movs r6, 0 - ldr r0, [sp, 0x4] - cmp r6, r0 - bcc _0812883E - b _0812893C -_0812883E: - mov r1, r10 - lsls r0, r1, 2 - add r0, r10 - lsls r1, r0, 3 - ldr r2, =gTasks - adds r0, r1, r2 - ldrh r0, [r0, 0xA] - subs r0, r6 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - movs r7, 0 - ldr r3, [sp, 0x8] - cmp r7, r3 - bcs _081288A4 - adds r0, r2, 0 - adds r1, r0 - mov r8, r1 - mov r1, r9 - lsls r0, r1, 16 - asrs r5, r0, 16 -_08128868: - mov r2, r8 - ldrh r0, [r2, 0x8] - adds r0, r7 - lsls r0, 16 - asrs r4, r0, 16 - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - bl MetatileBehavior_IsMB_B7 - lsls r0, 24 - cmp r0, 0 - beq _0812890C - adds r0, r4, 0 - adds r1, r5, 0x1 - bl MapGridGetMetatileIdAt - movs r1, 0xA3 - lsls r1, 2 - cmp r0, r1 - beq _0812890C - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r3, [sp, 0x8] - cmp r7, r3 - bcc _08128868 -_081288A4: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, [sp, 0x4] - cmp r6, r0 - bcc _0812883E - b _0812893C - .pool -_081288B8: - mov r3, r10 - lsls r1, r3, 2 - adds r0, r1, r3 - lsls r0, 3 - adds r0, r2 - ldrh r0, [r0, 0xA] - mov r9, r0 - movs r7, 0 - str r1, [sp, 0x1C] - ldr r0, [sp, 0x8] - cmp r7, r0 - bcs _0812893C - adds r6, r2, 0 - mov r1, r9 - lsls r1, 16 - str r1, [sp, 0x20] -_081288D8: - ldr r0, [sp, 0x1C] - add r0, r10 - lsls r0, 3 - adds r0, r6 - ldrh r0, [r0, 0x8] - adds r0, r7 - lsls r0, 16 - lsrs r5, r0, 16 - asrs r0, 16 - mov r2, r9 - lsls r1, r2, 16 - asrs r1, 16 - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r4, r0, 24 - ldr r3, [sp] - ldrb r0, [r3, 0x12] - cmp r0, 0x5 - bne _08128910 -_08128900: - adds r0, r4, 0 - bl MetatileBehavior_IsMB_C3 - lsls r0, 24 - cmp r0, 0 - bne _0812891C -_0812890C: - movs r0, 0 - b _0812893E -_08128910: - adds r0, r4, 0 - bl MetatileBehavior_IsMB_B5 - lsls r0, 24 - cmp r0, 0 - beq _08128900 -_0812891C: - adds r0, r5, 0 - ldr r2, [sp, 0x20] - lsrs r1, r2, 16 - movs r2, 0 - bl GetFieldObjectIdByXYZ - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x10 - bne _0812890C - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r3, [sp, 0x8] - cmp r7, r3 - bcc _081288D8 -_0812893C: - movs r0, 0x1 -_0812893E: - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_812853C - - thumb_func_start sub_8128950 -sub_8128950: @ 8128950 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gUnknown_0203A172 - ldrb r1, [r0] - ldr r0, =gUnknown_0203A14C - ldr r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r1, 5 - ldr r0, =gDecorations - adds r1, r0 - adds r0, r5, 0 - bl sub_812853C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081289A4 - ldr r4, =gStringVar4 - ldr r1, =gText_PlaceItHere - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, =sub_81289D0 - adds r0, r5, 0 - adds r1, r4, 0 - bl DisplayItemMessageOnField - b _081289BE - .pool -_081289A4: - movs r0, 0x20 - bl PlaySE - ldr r4, =gStringVar4 - ldr r1, =gText_CantBePlacedHere - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, =sub_8129020 - adds r0, r5, 0 - adds r1, r4, 0 - bl DisplayItemMessageOnField -_081289BE: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8128950 - - thumb_func_start sub_81289D0 -sub_81289D0: @ 81289D0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8197930 - ldr r1, =gUnknown_085A72C4 - adds r0, r4, 0 - bl sub_8121F68 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81289D0 - - thumb_func_start sub_81289F0 -sub_81289F0: @ 81289F0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0 - movs r1, 0 - bl sub_8197434 - adds r0, r4, 0 - bl sub_8128AAC - ldr r2, =gDecorations - ldr r0, =gUnknown_0203A172 - ldrb r1, [r0] - ldr r0, =gUnknown_0203A14C - ldr r0, [r0] - adds r0, r1 - ldrb r3, [r0] - lsls r0, r3, 5 - adds r0, r2 - ldrb r0, [r0, 0x11] - cmp r0, 0x4 - beq _08128A44 - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - ldrh r1, [r1, 0xA] - adds r2, r3, 0 - bl sub_8127D38 - b _08128A64 - .pool -_08128A44: - ldr r2, =gUnknown_0203AA34 - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - subs r0, 0x7 - strh r0, [r2] - ldr r2, =gUnknown_0203AA36 - ldrh r0, [r1, 0xA] - subs r0, 0x7 - strh r0, [r2] - ldr r0, =gUnknown_08275D1F - bl ScriptContext1_SetupScript -_08128A64: - ldr r2, =gSprites - ldr r0, =gUnknown_0203AA38 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - adds r1, 0x2 - strh r1, [r0, 0x22] - ldr r0, =gMapHeader - ldrb r0, [r0, 0x14] - cmp r0, 0x56 - bne _08128A84 - bl sub_80EE104 -_08128A84: - adds r0, r4, 0 - bl sub_8128BBC - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81289F0 - - thumb_func_start sub_8128AAC -sub_8128AAC: @ 8128AAC - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r3, 0 - ldr r0, =gUnknown_0203A17C - ldrb r1, [r0, 0x8] - adds r5, r0, 0 - cmp r3, r1 - bcs _08128AD2 - ldr r4, [r5] -_08128AC0: - adds r2, r4, r3 - ldrb r0, [r2] - cmp r0, 0 - beq _08128AF0 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r1 - bcc _08128AC0 -_08128AD2: - ldrb r0, [r5, 0x9] - cmp r0, 0 - bne _08128B3C - movs r3, 0 - ldr r0, =gUnknown_0203A152 - ldrb r1, [r0] - adds r2, r0, 0 - cmp r1, 0 - bne _08128B28 - b _08128B48 - .pool -_08128AF0: - ldr r0, =gUnknown_0203A172 - ldrb r1, [r0] - ldr r0, =gUnknown_0203A14C - ldr r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldr r2, [r5, 0x4] - adds r2, r3 - ldr r0, =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldrb r0, [r1, 0x8] - subs r0, 0x7 - lsls r0, 4 - ldrb r1, [r1, 0xA] - subs r1, 0x7 - adds r0, r1 - strb r0, [r2] - b _08128AD2 - .pool -_08128B28: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0xF - bhi _08128B76 - adds r1, r3, r2 - ldrb r0, [r1] - cmp r0, 0 - bne _08128B28 - b _08128B6E -_08128B3C: - movs r3, 0 - ldr r0, =gUnknown_0203A162 - ldrb r1, [r0] - adds r2, r0, 0 - cmp r1, 0 - bne _08128B5C -_08128B48: - ldr r0, =gUnknown_0203A172 - ldrb r0, [r0] - adds r0, 0x1 - strb r0, [r2] - b _08128B76 - .pool -_08128B5C: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0xB - bhi _08128B76 - adds r1, r3, r2 - ldrb r0, [r1] - cmp r0, 0 - bne _08128B5C -_08128B6E: - ldr r0, =gUnknown_0203A172 - ldrb r0, [r0] - adds r0, 0x1 - strb r0, [r1] -_08128B76: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8128AAC - - thumb_func_start sub_8128B80 -sub_8128B80: @ 8128B80 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8197930 - ldr r1, =gUnknown_085A72CC - adds r0, r4, 0 - bl sub_8121F68 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8128B80 - - thumb_func_start sub_8128BA0 -sub_8128BA0: @ 8128BA0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - movs r1, 0 - bl sub_8197434 - adds r0, r4, 0 - bl sub_8128BBC - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8128BA0 - - thumb_func_start sub_8128BBC -sub_8128BBC: @ 8128BBC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - movs r1, 0 - bl fade_screen - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xC] - ldr r1, =c1_overworld_prev_quest - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8128BBC - - thumb_func_start c1_overworld_prev_quest -c1_overworld_prev_quest: @ 8128BEC - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0xC - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _08128C10 - cmp r0, 0x1 - beq _08128C30 - b _08128C4C - .pool -_08128C10: - bl ScriptContext2_Enable - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08128C4C - adds r0, r4, 0 - bl sub_8127B04 - movs r0, 0x1 - strh r0, [r5, 0xC] - b _08128C4C - .pool -_08128C30: - bl sub_812A3C8 - ldr r0, =0x00000be5 - bl FreeSpritePaletteByTag - ldr r1, =gFieldCallback - ldr r0, =sub_8128CD4 - str r0, [r1] - ldr r0, =c2_exit_to_overworld_2_switch - bl SetMainCallback2 - adds r0, r4, 0 - bl DestroyTask -_08128C4C: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end c1_overworld_prev_quest - - thumb_func_start sub_8128C64 -sub_8128C64: @ 8128C64 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r5, r1, 3 - ldr r6, =gTasks + 0x8 - adds r4, r5, r6 - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _08128C9C - cmp r0, 0x1 - bgt _08128C8C - cmp r0, 0 - beq _08128C96 - b _08128CCA - .pool -_08128C8C: - cmp r0, 0x2 - beq _08128CA8 - cmp r0, 0x3 - beq _08128CB4 - b _08128CCA -_08128C96: - bl sub_80E9578 - b _08128CAC -_08128C9C: - ldr r0, =gUnknown_08275D0C - bl ScriptContext1_SetupScript - b _08128CAC - .pool -_08128CA8: - bl ScriptContext2_Enable -_08128CAC: - ldrh r0, [r4, 0x4] - adds r0, 0x1 - strh r0, [r4, 0x4] - b _08128CCA -_08128CB4: - bl sub_80ABDFC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08128CCA - adds r0, r6, 0 - subs r0, 0x8 - adds r0, r5, r0 - ldr r1, =sub_812764C - str r1, [r0] -_08128CCA: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8128C64 - - thumb_func_start sub_8128CD4 -sub_8128CD4: @ 8128CD4 - push {r4,lr} - bl ScriptContext2_Enable - bl pal_fill_black - ldr r0, =sub_8128C64 - movs r1, 0x8 - bl CreateTask - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_8127580 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xC] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8128CD4 - - thumb_func_start sub_8128D10 -sub_8128D10: @ 8128D10 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r2, r1, r0 - ldr r0, =gUnknown_0203AA3A - ldrb r1, [r0] - adds r3, r0, 0 - cmp r1, 0x1 - bne _08128D48 - movs r1, 0x2 - ldrsh r0, [r2, r1] - movs r4, 0xC - ldrsh r1, [r2, r4] - subs r0, r1 - subs r0, 0x6 - cmp r0, 0 - bge _08128D48 - ldrh r0, [r2, 0x2] - adds r0, 0x1 - b _08128D62 - .pool -_08128D48: - ldrb r0, [r3] - cmp r0, 0x2 - bne _08128D6C - movs r0, 0x2 - ldrsh r1, [r2, r0] - subs r1, 0x7 - ldr r0, =gMapHeader - ldr r0, [r0] - ldr r0, [r0, 0x4] - cmp r1, r0 - blt _08128D6C - ldrh r0, [r2, 0x2] - subs r0, 0x1 -_08128D62: - strh r0, [r2, 0x2] - movs r0, 0 - b _08128DAE - .pool -_08128D6C: - ldrb r0, [r3] - cmp r0, 0x3 - bne _08128D82 - movs r1, 0 - ldrsh r0, [r2, r1] - subs r0, 0x7 - cmp r0, 0 - bge _08128D82 - ldrh r0, [r2] - adds r0, 0x1 - b _08128DA2 -_08128D82: - ldrb r0, [r3] - cmp r0, 0x4 - bne _08128DAC - movs r3, 0 - ldrsh r1, [r2, r3] - movs r4, 0xA - ldrsh r0, [r2, r4] - adds r1, r0 - subs r1, 0x8 - ldr r0, =gMapHeader - ldr r0, [r0] - ldr r0, [r0] - cmp r1, r0 - blt _08128DAC - ldrh r0, [r2] - subs r0, 0x1 -_08128DA2: - strh r0, [r2] - movs r0, 0 - b _08128DAE - .pool -_08128DAC: - movs r0, 0x1 -_08128DAE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8128D10 - - thumb_func_start sub_8128DB4 -sub_8128DB4: @ 8128DB4 - push {lr} - ldr r0, =gMain - ldrh r0, [r0, 0x2C] - movs r1, 0xF0 - ands r1, r0 - cmp r1, 0x40 - beq _08128DD8 - cmp r1, 0x80 - beq _08128DD8 - cmp r1, 0x20 - beq _08128DD8 - cmp r1, 0x10 - beq _08128DD8 - movs r0, 0 - b _08128DDA - .pool -_08128DD8: - movs r0, 0x1 -_08128DDA: - pop {r1} - bx r1 - thumb_func_end sub_8128DB4 - - thumb_func_start sub_8128DE0 -sub_8128DE0: @ 8128DE0 - push {r4,lr} - ldr r1, =gUnknown_0203AA3A - movs r0, 0 - strb r0, [r1] - ldr r4, =gSprites - ldr r3, =gUnknown_0203AA38 - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r2, 0 - strh r2, [r0, 0x32] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r2, [r0, 0x34] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8128DE0 - - thumb_func_start sub_8128E18 -sub_8128E18: @ 8128E18 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r2, r0, 24 - mov r8, r2 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - ldr r5, =gSprites - ldr r3, =gUnknown_0203AA38 - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x36 - ldrsh r6, [r0, r1] - cmp r6, 0 - beq _08128E46 - b _08128F66 -_08128E46: - movs r1, 0x14 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _08128E68 - ldr r0, =gUnknown_085A72D4 - movs r3, 0x18 - ldrsh r1, [r4, r3] - lsls r1, 3 - b _08128E76 - .pool -_08128E68: - cmp r0, 0x2 - bne _08128E88 - ldr r0, =gUnknown_085A72D4 - movs r3, 0x18 - ldrsh r1, [r4, r3] - lsls r1, 3 - adds r0, 0x4 -_08128E76: - adds r1, r0 - ldr r1, [r1] - adds r0, r2, 0 - bl _call_via_r1 - b _08128FBA - .pool -_08128E88: - ldr r2, =gMain - ldrh r1, [r2, 0x2C] - movs r7, 0xF0 - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0x40 - bne _08128EBC - ldr r1, =gUnknown_0203AA3A - movs r0, 0x1 - strb r0, [r1] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x32] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =0x0000fffe - strh r1, [r0, 0x34] - ldrh r0, [r4, 0x2] - subs r0, 0x1 - strh r0, [r4, 0x2] -_08128EBC: - ldrh r1, [r2, 0x2C] - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0x80 - bne _08128EEC - ldr r1, =gUnknown_0203AA3A - movs r0, 0x2 - strb r0, [r1] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x32] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x2 - strh r1, [r0, 0x34] - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] -_08128EEC: - ldrh r1, [r2, 0x2C] - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0x20 - bne _08128F1C - ldr r1, =gUnknown_0203AA3A - movs r0, 0x3 - strb r0, [r1] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =0x0000fffe - strh r1, [r0, 0x32] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x34] - ldrh r0, [r4] - subs r0, 0x1 - strh r0, [r4] -_08128F1C: - ldrh r1, [r2, 0x2C] - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0x10 - bne _08128F4C - ldr r1, =gUnknown_0203AA3A - movs r0, 0x4 - strb r0, [r1] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x2 - strh r1, [r0, 0x32] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x34] - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_08128F4C: - bl sub_8128DB4 - lsls r0, 24 - cmp r0, 0 - beq _08128F62 - mov r0, r8 - bl sub_8128D10 - lsls r0, 24 - cmp r0, 0 - bne _08128F66 -_08128F62: - bl sub_8128DE0 -_08128F66: - ldr r0, =gUnknown_0203AA3A - ldrb r0, [r0] - cmp r0, 0 - beq _08128F94 - ldr r3, =gSprites - ldr r2, =gUnknown_0203AA38 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x36] - adds r1, 0x1 - strh r1, [r0, 0x36] - ldrb r0, [r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrh r2, [r1, 0x36] - movs r0, 0x7 - ands r0, r2 - strh r0, [r1, 0x36] -_08128F94: - movs r1, 0x14 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08128FBA - ldr r3, =gMain - ldrh r1, [r3, 0x2E] - movs r2, 0x1 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _08128FAC - strh r2, [r4, 0x14] -_08128FAC: - ldrh r1, [r3, 0x2E] - movs r2, 0x2 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _08128FBA - strh r2, [r4, 0x14] -_08128FBA: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8128E18 - - thumb_func_start sub_8128FD8 -sub_8128FD8: @ 8128FD8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - movs r1, 0x1 - bl sub_8197434 - ldr r2, =gSprites - ldr r0, =gUnknown_0203AA38 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r2, 0 - strh r2, [r0, 0x3C] - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - strh r2, [r0, 0x1C] - ldr r1, =sub_8128E18 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8128FD8 - - thumb_func_start sub_8129020 -sub_8129020: @ 8129020 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0812903A - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08129040 -_0812903A: - adds r0, r2, 0 - bl sub_8128FD8 -_08129040: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8129020 - - thumb_func_start sub_8129048 -sub_8129048: @ 8129048 - push {lr} - sub sp, 0x4 - adds r1, r0, 0 - mov r2, sp - movs r0, 0 - strh r0, [r2] - ldr r2, =0x01000452 - mov r0, sp - bl CpuSet - add sp, 0x4 - pop {r0} - bx r0 - .pool - thumb_func_end sub_8129048 - - thumb_func_start sub_8129068 -sub_8129068: @ 8129068 - push {lr} - adds r2, r0, 0 - lsls r1, 16 - ldr r0, =gTilesetPointer_SecretBase - ldr r0, [r0] - lsrs r1, 11 - ldr r0, [r0, 0x8] - adds r0, r1 - adds r1, r2, 0 - movs r2, 0x8 - bl CpuFastSet - pop {r0} - bx r0 - .pool - thumb_func_end sub_8129068 - - thumb_func_start sub_8129088 -sub_8129088: @ 8129088 - push {r4-r7,lr} - sub sp, 0x20 - adds r7, r0, 0 - lsls r1, 16 - lsrs r2, r1, 16 - lsrs r4, r1, 26 - adds r5, r4, 0 - cmp r2, 0 - beq _0812909E - ldr r0, =0x000003ff - ands r2, r0 -_0812909E: - ldr r0, =gTilesetPointer_SecretBase - ldr r0, [r0] - lsls r1, r2, 5 - ldr r0, [r0, 0x4] - adds r0, r1 - mov r1, sp - movs r2, 0x8 - bl CpuFastSet - cmp r4, 0x1 - beq _081290DE - cmp r4, 0x1 - bgt _081290C8 - cmp r4, 0 - beq _081290D2 - b _0812919A - .pool -_081290C8: - cmp r5, 0x2 - beq _0812913E - cmp r5, 0x3 - beq _08129176 - b _0812919A -_081290D2: - mov r0, sp - adds r1, r7, 0 - movs r2, 0x8 - bl CpuFastSet - b _0812919A -_081290DE: - movs r5, 0 - movs r6, 0xF -_081290E2: - lsls r4, r5, 2 - adds r4, r7 - adds r5, 0x1 - lsls r3, r5, 2 - subs r0, r3, 0x1 - add r0, sp - ldrb r2, [r0] - lsrs r1, r2, 4 - adds r0, r6, 0 - ands r0, r2 - lsls r0, 4 - adds r1, r0 - strb r1, [r4] - subs r0, r3, 0x2 - add r0, sp - ldrb r2, [r0] - lsrs r1, r2, 4 - adds r0, r6, 0 - ands r0, r2 - lsls r0, 4 - adds r1, r0 - strb r1, [r4, 0x1] - subs r0, r3, 0x3 - add r0, sp - ldrb r2, [r0] - lsrs r1, r2, 4 - adds r0, r6, 0 - ands r0, r2 - lsls r0, 4 - adds r1, r0 - strb r1, [r4, 0x2] - subs r3, 0x4 - mov r1, sp - adds r0, r1, r3 - ldrb r2, [r0] - lsrs r1, r2, 4 - adds r0, r6, 0 - ands r0, r2 - lsls r0, 4 - adds r1, r0 - strb r1, [r4, 0x3] - lsls r5, 16 - lsrs r5, 16 - cmp r5, 0x7 - bls _081290E2 - b _0812919A -_0812913E: - movs r5, 0 - movs r3, 0x7 -_08129142: - lsls r2, r5, 2 - adds r2, r7 - subs r1, r3, r5 - lsls r1, 2 - mov r4, sp - adds r0, r4, r1 - ldrb r0, [r0] - strb r0, [r2] - adds r0, r1, 0x1 - add r0, sp - ldrb r0, [r0] - strb r0, [r2, 0x1] - adds r0, r1, 0x2 - add r0, sp - ldrb r0, [r0] - strb r0, [r2, 0x2] - adds r1, 0x3 - adds r0, r4, r1 - ldrb r0, [r0] - strb r0, [r2, 0x3] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x7 - bls _08129142 - b _0812919A -_08129176: - movs r5, 0 - movs r4, 0x1F - movs r6, 0xF -_0812917C: - adds r3, r7, r5 - subs r0, r4, r5 - add r0, sp - ldrb r2, [r0] - lsrs r1, r2, 4 - adds r0, r6, 0 - ands r0, r2 - lsls r0, 4 - adds r1, r0 - strb r1, [r3] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1F - bls _0812917C -_0812919A: - add sp, 0x20 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8129088 - - thumb_func_start sub_81291A4 -sub_81291A4: @ 81291A4 - push {r4,r5,lr} - adds r5, r0, 0 - movs r4, 0 -_081291AA: - lsls r0, r4, 5 - adds r0, 0x84 - adds r0, r5, r0 - lsls r2, r4, 1 - adds r1, r5, 0x4 - adds r1, r2 - ldrh r1, [r1] - bl sub_8129088 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x3F - bls _081291AA - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81291A4 - - thumb_func_start sub_81291CC -sub_81291CC: @ 81291CC - lsls r0, 16 - ldr r1, =gTilesetPointer_SecretBaseRedCave - ldr r1, [r1] - ldr r1, [r1, 0xC] - lsrs r0, 15 - adds r0, r1 - ldrh r1, [r0] - ldr r0, =0x00000fff - ands r0, r1 - bx lr - .pool - thumb_func_end sub_81291CC - - thumb_func_start sub_81291E8 -sub_81291E8: @ 81291E8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r0 - ldr r0, [r0] - ldrb r0, [r0, 0x12] - movs r6, 0 - ldr r1, =gUnknown_085A71B0 - lsls r5, r0, 4 - adds r0, r5, r1 - ldrb r0, [r0, 0xC] - cmp r6, r0 - bcs _0812924C - adds r7, r1, 0 -_08129204: - mov r4, r8 - ldm r4!, {r1} - adds r0, r7, 0x4 - adds r0, r5, r0 - ldr r0, [r0] - adds r0, r6 - ldrb r0, [r0] - ldr r1, [r1, 0x1C] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - adds r1, r7, 0 - adds r1, 0x8 - adds r1, r5, r1 - ldr r1, [r1] - adds r1, r6 - lsls r0, 3 - ldrb r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - bl sub_81291CC - adds r2, r5, r7 - ldr r1, [r2] - adds r1, r6 - ldrb r1, [r1] - lsls r1, 1 - adds r4, r1 - strh r0, [r4] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r2, [r2, 0xC] - cmp r6, r2 - bcc _08129204 -_0812924C: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81291E8 - - thumb_func_start sub_812925C -sub_812925C: @ 812925C - push {r4,r5,lr} - lsls r0, 24 - ldr r3, =gUnknown_0203AA3C - movs r1, 0 - strb r1, [r3] - ldrb r2, [r3, 0x1] - subs r1, 0x4 - ands r1, r2 - movs r5, 0xD - negs r5, r5 - ands r1, r5 - movs r2, 0x11 - negs r2, r2 - ands r1, r2 - subs r2, 0x10 - ands r1, r2 - strb r1, [r3, 0x1] - ldr r1, =gUnknown_085A7250 - lsrs r0, 22 - adds r0, r1 - ldrb r1, [r0] - movs r4, 0x3F - lsls r1, 6 - strb r1, [r3, 0x1] - ldrh r2, [r3, 0x2] - ldr r1, =0xfffffe00 - ands r1, r2 - strh r1, [r3, 0x2] - ldrb r2, [r3, 0x3] - movs r1, 0x3F - negs r1, r1 - ands r1, r2 - strb r1, [r3, 0x3] - ldrb r0, [r0, 0x1] - lsls r0, 6 - ands r4, r1 - orrs r4, r0 - strb r4, [r3, 0x3] - ldrh r1, [r3, 0x4] - ldr r0, =0xfffffc00 - ands r0, r1 - strh r0, [r3, 0x4] - ldrb r0, [r3, 0x5] - ands r5, r0 - movs r0, 0xF - ands r5, r0 - strb r5, [r3, 0x5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812925C - - thumb_func_start sub_81292D0 -sub_81292D0: @ 81292D0 - movs r1, 0 - strh r1, [r0, 0x32] - strh r1, [r0, 0x34] - strh r1, [r0, 0x36] - strh r1, [r0, 0x38] - strh r1, [r0, 0x3A] - strh r1, [r0, 0x3C] - ldr r1, =sub_81292E8 - str r1, [r0, 0x1C] - bx lr - .pool - thumb_func_end sub_81292D0 - - thumb_func_start sub_81292E8 -sub_81292E8: @ 81292E8 - push {lr} - adds r2, r0, 0 - movs r1, 0x3C - ldrsh r0, [r2, r1] - cmp r0, 0 - bne _08129322 - movs r1, 0x3A - ldrsh r0, [r2, r1] - cmp r0, 0xE - bgt _0812930A - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - b _08129314 -_0812930A: - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 -_08129314: - strb r0, [r3] - ldrh r0, [r2, 0x3A] - adds r0, 0x1 - movs r1, 0x1F - ands r0, r1 - strh r0, [r2, 0x3A] - b _0812932E -_08129322: - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_0812932E: - pop {r0} - bx r0 - thumb_func_end sub_81292E8 - - thumb_func_start gpu_pal_decompress_alloc_tag_and_upload -gpu_pal_decompress_alloc_tag_and_upload: @ 8129334 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - lsls r4, r1, 24 - lsrs r4, 24 - bl sub_8129048 - lsls r4, 5 - ldr r0, =gDecorations - adds r4, r0 - str r4, [r5] - ldrb r0, [r4, 0x11] - cmp r0, 0x4 - beq _081293B4 - ldr r0, =0x00000be5 - bl FreeSpritePaletteByTag - adds r0, r5, 0 - bl sub_81291E8 - ldr r0, [r5] - ldrb r0, [r0, 0x12] - bl sub_812925C - adds r0, r5, 0 - bl sub_81291A4 - ldr r1, =0x00000884 - adds r0, r5, r1 - ldr r1, =gTilesetPointer_SecretBaseRedCave - ldr r2, [r1] - ldr r1, [r5] - ldr r1, [r1, 0x1C] - ldrh r1, [r1] - ldr r2, [r2, 0xC] - lsls r1, 4 - adds r1, r2 - ldrh r1, [r1, 0xE] - lsrs r1, 12 - bl sub_8129068 - ldr r0, =gUnknown_085A72BC - bl LoadSpritePalette - ldr r0, =gUnknown_085A728C - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSprite - b _081293C6 - .pool -_081293B4: - ldr r0, [r4, 0x1C] - ldrh r0, [r0] - ldr r1, =SpriteCallbackDummy - movs r2, 0x1 - str r2, [sp] - movs r2, 0 - movs r3, 0 - bl AddPseudoFieldObject -_081293C6: - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end gpu_pal_decompress_alloc_tag_and_upload - - thumb_func_start AddDecorationIconObjectFromIconTable -@ u8 AddDecorationIconObjectFromIconTable(u16 tilesTag, u16 paletteTag, u8 decorationId) -AddDecorationIconObjectFromIconTable: @ 81293D8 - push {r4-r7,lr} - sub sp, 0x10 - lsls r0, 16 - lsrs r7, r0, 16 - lsls r1, 16 - lsrs r6, r1, 16 - lsls r2, 24 - lsrs r5, r2, 24 - bl AllocItemIconTemporaryBuffers - lsls r0, 24 - cmp r0, 0 - beq _08129490 - adds r0, r5, 0 - movs r1, 0 - bl GetDecorationIconPicOrPalette - ldr r4, =gUnknown_0203CEBC - ldr r1, [r4] - bl LZDecompressWram - ldr r0, [r4] - ldr r4, =gUnknown_0203CEC0 - ldr r1, [r4] - bl CopyItemIconPicTo4x4Buffer - ldr r0, [r4] - str r0, [sp] - ldr r4, =0xffff0000 - ldr r0, [sp, 0x4] - ands r0, r4 - movs r1, 0x80 - lsls r1, 2 - orrs r0, r1 - lsls r2, r7, 16 - ldr r1, =0x0000ffff - ands r0, r1 - orrs r0, r2 - str r0, [sp, 0x4] - mov r0, sp - bl LoadSpriteSheet - adds r0, r5, 0 - movs r1, 0x1 - bl GetDecorationIconPicOrPalette - str r0, [sp, 0x8] - add r0, sp, 0x8 - ldr r1, [r0, 0x4] - ands r1, r4 - orrs r1, r6 - str r1, [r0, 0x4] - bl LoadCompressedObjectPalette - movs r0, 0x18 - bl Alloc - adds r5, r0, 0 - adds r1, r5, 0 - ldr r0, =gUnknown_08614FF4 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - strh r7, [r5] - strh r6, [r5, 0x2] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl FreeItemIconTemporaryBuffers - adds r0, r5, 0 - bl Free - adds r0, r4, 0 - b _08129492 - .pool -_08129490: - movs r0, 0x40 -_08129492: - add sp, 0x10 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end AddDecorationIconObjectFromIconTable - - thumb_func_start GetDecorationIconPicOrPalette -@ u32 GetDecorationIconPicOrPalette(u16 decorationId, u8 which) -GetDecorationIconPicOrPalette: @ 812949C - push {lr} - lsls r0, 16 - lsrs r3, r0, 16 - lsls r1, 24 - lsrs r0, r1, 24 - cmp r3, 0x78 - bls _081294AC - movs r3, 0 -_081294AC: - ldr r2, =gUnknown_085A6BE8 - lsls r0, 2 - lsls r1, r3, 3 - adds r0, r1 - adds r0, r2 - ldr r0, [r0] - pop {r1} - bx r1 - .pool - thumb_func_end GetDecorationIconPicOrPalette - - thumb_func_start AddDecorationIconObjectFromFieldObject -@ u8 AddDecorationIconObjectFromFieldObject(u16 tilesTag, u16 paletteTag, u8 decorationId) -AddDecorationIconObjectFromFieldObject: @ 81294C0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - adds r4, r2, 0 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r1, 16 - lsrs r7, r1, 16 - lsls r4, 24 - lsrs r4, 24 - ldr r6, =gUnknown_0203A190 - adds r0, r6, 0 - bl sub_8129048 - lsls r4, 5 - ldr r0, =gDecorations - adds r4, r0 - str r4, [r6] - ldrb r0, [r4, 0x11] - cmp r0, 0x4 - beq _081295A4 - adds r0, r6, 0 - bl sub_81291E8 - ldr r0, [r6] - ldrb r0, [r0, 0x12] - bl sub_812925C - adds r0, r6, 0 - bl sub_81291A4 - ldr r0, =0x00000884 - adds r5, r6, r0 - ldr r0, =gTilesetPointer_SecretBaseRedCave - ldr r1, [r0] - ldr r0, [r6] - ldr r0, [r0, 0x1C] - ldrh r0, [r0] - ldr r1, [r1, 0xC] - lsls r0, 4 - adds r0, r1 - ldrh r1, [r0, 0xE] - lsrs r1, 12 - adds r0, r5, 0 - bl sub_8129068 - adds r0, r6, 0 - adds r0, 0x84 - str r0, [sp, 0x4] - ldr r1, =gUnknown_085A72F4 - ldr r0, [r6] - ldrb r0, [r0, 0x12] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 21 - ldr r4, =0xffff0000 - mov r2, r8 - lsls r1, r2, 16 - lsrs r0, 16 - orrs r0, r1 - str r0, [sp, 0x8] - add r0, sp, 0x4 - bl LoadSpriteSheet - str r5, [sp, 0xC] - add r0, sp, 0xC - ldr r1, [r0, 0x4] - ands r1, r4 - orrs r1, r7 - str r1, [r0, 0x4] - bl LoadSpritePalette - movs r0, 0x18 - bl Alloc - adds r4, r0, 0 - adds r1, r4, 0 - ldr r0, =gUnknown_085A72A4 - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - mov r3, r8 - strh r3, [r4] - strh r7, [r4, 0x2] - adds r0, r4, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r4, 0 - bl Free - b _081295BA - .pool -_081295A4: - ldr r0, [r4, 0x1C] - ldrh r0, [r0] - ldr r1, =SpriteCallbackDummy - movs r2, 0x1 - str r2, [sp] - movs r2, 0 - movs r3, 0 - bl AddPseudoFieldObject - lsls r0, 24 - lsrs r5, r0, 24 -_081295BA: - adds r0, r5, 0 - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end AddDecorationIconObjectFromFieldObject - - thumb_func_start AddDecorationIconObject -@ u8 AddDecorationIconObject(u8 decorationId, u16 x, u16 y, u8 priority, u16 tilesTag, u16 paletteTag) -AddDecorationIconObject: @ 81295CC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r4, [sp, 0x24] - ldr r5, [sp, 0x28] - lsls r0, 24 - lsrs r6, r0, 24 - mov r12, r6 - lsls r1, 16 - lsrs r1, 16 - mov r8, r1 - mov r9, r8 - lsls r2, 16 - lsrs r7, r2, 16 - mov r10, r7 - lsls r3, 24 - lsrs r3, 24 - str r3, [sp] - lsls r4, 16 - lsrs r4, 16 - adds r3, r4, 0 - lsls r5, 16 - lsrs r5, 16 - adds r2, r5, 0 - cmp r6, 0x78 - bls _08129634 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0 - bl AddDecorationIconObjectFromIconTable - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x40 - beq _08129696 - ldr r2, =gSprites - lsls r3, r4, 4 - adds r1, r3, r4 - lsls r1, 2 - adds r1, r2 - mov r5, r8 - lsls r0, r5, 16 - asrs r0, 16 - adds r0, 0x4 - strh r0, [r1, 0x24] - lsls r0, r7, 16 - b _081296B2 - .pool -_08129634: - ldr r0, =gUnknown_085A6BE8 - lsls r1, r6, 3 - adds r1, r0 - ldr r0, [r1] - cmp r0, 0 - bne _08129684 - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl AddDecorationIconObjectFromFieldObject - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x40 - beq _08129696 - ldr r1, =gSprites - lsls r2, r4, 4 - adds r0, r2, r4 - lsls r0, 2 - adds r5, r0, r1 - mov r0, r8 - strh r0, [r5, 0x24] - adds r0, r6, 0 - subs r0, 0x2A - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _08129680 - lsls r0, r7, 16 - asrs r0, 16 - subs r0, 0x4 - strh r0, [r5, 0x26] - b _081296BC - .pool -_08129680: - strh r7, [r5, 0x26] - b _081296BC -_08129684: - adds r0, r3, 0 - adds r1, r2, 0 - mov r2, r12 - bl AddDecorationIconObjectFromIconTable - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x40 - bne _0812969A -_08129696: - movs r0, 0x40 - b _081296D8 -_0812969A: - ldr r2, =gSprites - lsls r3, r4, 4 - adds r1, r3, r4 - lsls r1, 2 - adds r1, r2 - mov r5, r9 - lsls r0, r5, 16 - asrs r0, 16 - adds r0, 0x4 - strh r0, [r1, 0x24] - mov r5, r10 - lsls r0, r5, 16 -_081296B2: - asrs r0, 16 - adds r0, 0x4 - strh r0, [r1, 0x26] - adds r1, r2, 0 - adds r2, r3, 0 -_081296BC: - adds r2, r4 - lsls r2, 2 - adds r2, r1 - movs r0, 0x3 - ldr r1, [sp] - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - adds r0, r4, 0 -_081296D8: - 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 AddDecorationIconObject - - thumb_func_start sub_81296EC -sub_81296EC: @ 81296EC - lsls r0, 24 - lsrs r0, 24 - ldr r3, =gUnknown_0203A17C - ldr r1, [r3] - adds r1, r0 - movs r2, 0 - strb r2, [r1] - ldr r1, [r3, 0x4] - adds r1, r0 - strb r2, [r1] - bx lr - .pool - thumb_func_end sub_81296EC - - thumb_func_start sub_8129708 -sub_8129708: @ 8129708 - push {r4-r6,lr} - ldr r6, =gSpecialVar_0x8005 - movs r0, 0 - strh r0, [r6] - ldr r2, =gScriptResult - strh r0, [r2] - ldr r4, =gSpecialVar_0x8004 - ldr r1, =gUnknown_0203AAC4 - ldrh r0, [r4] - ldrb r1, [r1] - cmp r0, r1 - bne _08129744 - movs r0, 0x1 - strh r0, [r2] - b _08129796 - .pool -_08129738: - ldr r1, =gSpecialVar_0x8006 - ldrb r0, [r2] - strh r0, [r1] - b _08129796 - .pool -_08129744: - ldr r3, =gDecorations - ldr r2, =gUnknown_0203A17C - ldr r1, =gUnknown_0203AA44 - ldrh r0, [r4] - lsls r0, 3 - adds r4, r0, r1 - ldrb r1, [r4] - ldr r0, [r2] - adds r0, r1 - ldrb r0, [r0] - lsls r0, 5 - adds r0, r3 - ldrb r0, [r0, 0x11] - cmp r0, 0x4 - bne _08129796 - ldrh r0, [r4, 0x4] - strh r0, [r6] - ldrb r0, [r4] - bl sub_81296EC - movs r1, 0 - ldr r0, =gMapHeader - ldr r0, [r0, 0x4] - ldrb r2, [r0] - cmp r1, r2 - bcs _08129796 - ldr r5, [r0, 0x4] - ldrh r4, [r6] - adds r3, r2, 0 -_0812977E: - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r2, r0, r5 - ldrh r0, [r2, 0x14] - cmp r0, r4 - beq _08129738 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r3 - bcc _0812977E -_08129796: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8129708 - - thumb_func_start sub_81297AC -sub_81297AC: @ 81297AC - push {r4-r6,lr} - movs r2, 0 - ldr r0, =gMapHeader - ldr r0, [r0, 0x4] - ldrb r1, [r0] - cmp r2, r1 - bcs _081297F0 - adds r3, r0, 0 - ldr r5, [r3, 0x4] - ldr r0, =gSpecialVar_0x8004 - ldrh r4, [r0] - ldr r6, =gSpecialVar_0x8005 -_081297C4: - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 3 - adds r1, r0, r5 - ldrh r0, [r1, 0x14] - cmp r0, r4 - bne _081297E4 - ldrb r0, [r1] - strh r0, [r6] - b _081297F0 - .pool -_081297E4: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - ldrb r0, [r3] - cmp r2, r0 - bcc _081297C4 -_081297F0: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81297AC - - thumb_func_start sub_81297F8 -sub_81297F8: @ 81297F8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - movs r6, 0 - b _081298BE -_08129808: - ldr r3, =gUnknown_0203AA44 - lsls r5, r6, 3 - adds r4, r5, r3 - ldrb r1, [r4] - ldr r2, =gUnknown_0203A17C - ldr r0, [r2] - adds r0, r1 - ldrb r0, [r0] - lsls r0, 5 - ldr r7, =gDecorations - adds r0, r7 - ldrb r2, [r0, 0x11] - ldr r7, =gUnknown_0203A17C - ldr r0, [r7, 0x4] - adds r0, r1 - ldrb r0, [r0] - lsrs r1, r0, 4 - mov r8, r1 - movs r7, 0xF - adds r1, r7, 0 - ands r1, r0 - str r1, [sp] - adds r7, r5, 0 - adds r6, 0x1 - str r6, [sp, 0x4] - cmp r2, 0x4 - beq _081298B8 - movs r6, 0 - ldrb r4, [r4, 0x2] - cmp r6, r4 - bcs _081298AE -_08129846: - movs r4, 0 - adds r0, r5, r3 - adds r2, r6, 0x1 - mov r10, r2 - ldrb r0, [r0, 0x1] - cmp r4, r0 - bcs _0812989C - ldr r3, =gUnknown_0203AA44 - adds r3, r7 - mov r9, r3 - subs r5, r6, 0x7 - str r5, [sp, 0x8] -_0812985E: - adds r0, r4, 0x7 - add r0, r8 - ldr r1, =gMapHeader - ldr r3, [r1] - ldr r1, [sp] - subs r2, r1, r6 - ldr r1, [r3] - muls r2, r1 - mov r5, r8 - adds r1, r5, r4 - adds r1, r2 - ldr r2, [r3, 0xC] - lsls r1, 1 - adds r1, r2 - ldrh r1, [r1] - movs r3, 0xC0 - lsls r3, 6 - adds r2, r3, 0 - orrs r2, r1 - ldr r5, [sp] - ldr r3, [sp, 0x8] - subs r1, r5, r3 - bl MapGridSetMetatileEntryAt - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - mov r5, r9 - ldrb r5, [r5, 0x1] - cmp r4, r5 - bcc _0812985E -_0812989C: - mov r1, r10 - lsls r0, r1, 24 - lsrs r6, r0, 24 - ldr r3, =gUnknown_0203AA44 - adds r5, r7, 0 - adds r0, r7, r3 - ldrb r0, [r0, 0x2] - cmp r6, r0 - bcc _08129846 -_081298AE: - ldr r2, =gUnknown_0203AA44 - adds r0, r7, r2 - ldrb r0, [r0] - bl sub_81296EC -_081298B8: - ldr r3, [sp, 0x4] - lsls r0, r3, 24 - lsrs r6, r0, 24 -_081298BE: - ldr r0, =gUnknown_0203AAC4 - ldrb r0, [r0] - cmp r6, r0 - bcc _08129808 - 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 sub_81297F8 - - thumb_func_start sub_81298EC -sub_81298EC: @ 81298EC - 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, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _08129928 - cmp r0, 0x1 - bgt _08129914 - cmp r0, 0 - beq _0812991E - b _08129994 - .pool -_08129914: - cmp r0, 0x2 - beq _08129954 - cmp r0, 0x3 - beq _08129968 - b _08129994 -_0812991E: - bl sub_81297F8 - movs r0, 0x1 - strh r0, [r4, 0xC] - b _08129994 -_08129928: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08129994 - bl DrawWholeMapView - ldr r0, =gUnknown_08275D2E - bl ScriptContext1_SetupScript - movs r0, 0 - movs r1, 0x1 - bl sub_8197434 - movs r0, 0x2 - strh r0, [r4, 0xC] - b _08129994 - .pool -_08129954: - bl ScriptContext2_Enable - adds r0, r5, 0 - bl sub_8127814 - bl pal_fill_black - movs r0, 0x3 - strh r0, [r4, 0xC] - b _08129994 -_08129968: - bl sub_80ABDFC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08129994 - ldr r4, =gStringVar4 - ldr r1, =gText_DecorationReturnedToPC - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, =sub_8129D64 - adds r0, r5, 0 - adds r1, r4, 0 - bl DisplayItemMessageOnField - ldr r0, =gMapHeader - ldrb r0, [r0, 0x14] - cmp r0, 0x56 - bne _08129994 - bl sub_80EE104 -_08129994: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81298EC - - thumb_func_start sub_81299AC -sub_81299AC: @ 81299AC - push {lr} - movs r1, 0 - ldr r0, =gUnknown_0203A17C - ldrb r2, [r0, 0x8] - cmp r1, r2 - bcs _081299D6 - ldr r3, [r0] -_081299BA: - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _081299CC - movs r0, 0x1 - b _081299D8 - .pool -_081299CC: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r2 - bcc _081299BA -_081299D6: - movs r0, 0 -_081299D8: - pop {r1} - bx r1 - thumb_func_end sub_81299AC - - thumb_func_start SetUpPuttingAwayDecorationPlayerAvatar -SetUpPuttingAwayDecorationPlayerAvatar: @ 81299DC - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x4 - bl player_get_direction_lower_nybble - ldr r3, =gUnknown_0203AA38 - ldr r2, =gSprites - ldr r4, =gUnknown_03005DD0 - ldr r1, [r4, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x2E] - strb r0, [r3] - bl sub_812A39C - ldr r0, =gUnknown_085A7404 - movs r1, 0x78 - movs r2, 0x50 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - str r0, [r4, 0x4] - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _08129A3C - ldr r1, =SpriteCallbackDummy - str r0, [sp] - movs r0, 0xC1 - b _08129A44 - .pool -_08129A3C: - ldr r1, =SpriteCallbackDummy - movs r0, 0 - str r0, [sp] - movs r0, 0xC2 -_08129A44: - movs r2, 0x88 - movs r3, 0x48 - bl AddPseudoFieldObject - ldr r1, =gUnknown_0203AA39 - strb r0, [r1] - ldr r6, =gSprites - ldr r0, =gUnknown_0203AA39 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r2, [r1, 0x5] - movs r4, 0xD - negs r4, r4 - adds r0, r4, 0 - ands r0, r2 - movs r2, 0x4 - mov r8, r2 - mov r2, r8 - orrs r0, r2 - strb r0, [r1, 0x5] - ldr r5, =gUnknown_0203AA38 - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - bl DestroySprite - ldr r0, =gUnknown_03005DD0 - ldr r0, [r0, 0x4] - strb r0, [r5] - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r1, [r0, 0x5] - ands r4, r1 - mov r1, r8 - orrs r4, r1 - strb r4, [r0, 0x5] - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end SetUpPuttingAwayDecorationPlayerAvatar - - thumb_func_start sub_8129ABC -sub_8129ABC: @ 8129ABC - 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, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _08129B0C - cmp r0, 0x1 - bgt _08129AE4 - cmp r0, 0 - beq _08129AEA - b _08129B2E - .pool -_08129AE4: - cmp r0, 0x2 - beq _08129B1A - b _08129B2E -_08129AEA: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08129B2E - adds r0, r5, 0 - bl sub_8127ACC - movs r0, 0x1 - strh r0, [r4, 0x4] - strh r0, [r4, 0xC] - strh r0, [r4, 0xA] - b _08129B2E - .pool -_08129B0C: - bl SetUpPuttingAwayDecorationPlayerAvatar - bl pal_fill_black - movs r0, 0x2 - strh r0, [r4, 0x4] - b _08129B2E -_08129B1A: - bl sub_80ABDFC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08129B2E - strh r0, [r4, 0x18] - adds r0, r5, 0 - bl sub_8129B34 -_08129B2E: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8129ABC - - thumb_func_start sub_8129B34 -sub_8129B34: @ 8129B34 - push {r4-r6,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0 - movs r1, 0x1 - bl sub_8197434 - ldr r4, =gSprites - ldr r3, =gUnknown_0203AA38 - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r6, 0 - strh r6, [r0, 0x3C] - ldrb r1, [r3] - 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] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r4, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =sub_812A36C - str r1, [r0] - ldr r2, =gUnknown_0203AA39 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x88 - strh r1, [r0, 0x20] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x48 - strh r1, [r0, 0x22] - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - strh r6, [r0, 0x1C] - ldr r1, =sub_8128E18 - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8129B34 - - thumb_func_start sub_8129BCC -sub_8129BCC: @ 8129BCC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x1C] - bl sub_8128DE0 - adds r0, r4, 0 - bl sub_8129C74 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8129BCC - - thumb_func_start sub_8129BF8 -sub_8129BF8: @ 8129BF8 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x1C] - bl sub_8128DE0 - ldr r3, =gSprites - ldr r5, =gUnknown_0203AA38 - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r3, 0x1C - adds r0, r3 - ldr r1, =SpriteCallbackDummy - str r1, [r0] - ldr r5, =gStringVar4 - ldr r1, =gText_StopPuttingAwayDecorations - adds r0, r5, 0 - bl StringExpandPlaceholders - ldr r2, =sub_812A1F0 - adds r0, r4, 0 - adds r1, r5, 0 - bl DisplayItemMessageOnField - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8129BF8 - - thumb_func_start sub_8129C74 -sub_8129C74: @ 8129C74 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - bl sub_812A0E8 - ldr r0, =gUnknown_0203AAC4 - ldrb r0, [r0] - cmp r0, 0 - beq _08129CA8 - ldr r4, =gStringVar4 - ldr r1, =gText_ReturnDecorationToPC - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, =sub_812A1A0 - b _08129D14 - .pool -_08129CA8: - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r1, r0 - movs r2, 0 - ldrsh r0, [r1, r2] - movs r2, 0x2 - ldrsh r1, [r1, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl MetatileBehavior_IsSecretBasePC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08129CDE - adds r0, r4, 0 - bl MetatileBehavior_IsMB_C5 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08129D3C -_08129CDE: - ldr r3, =gSprites - ldr r4, =gUnknown_0203AA38 - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r3, 0x1C - adds r0, r3 - ldr r1, =SpriteCallbackDummy - str r1, [r0] - ldr r4, =gStringVar4 - ldr r1, =gText_StopPuttingAwayDecorations - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, =sub_812A1F0 -_08129D14: - adds r0, r5, 0 - adds r1, r4, 0 - bl DisplayItemMessageOnField - b _08129D50 - .pool -_08129D3C: - ldr r4, =gStringVar4 - ldr r1, =gText_NoDecorationHere - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, =sub_8129D64 - adds r0, r5, 0 - adds r1, r4, 0 - bl DisplayItemMessageOnField -_08129D50: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8129C74 - - thumb_func_start sub_8129D64 -sub_8129D64: @ 8129D64 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08129D7E - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08129D84 -_08129D7E: - adds r0, r2, 0 - bl sub_8129B34 -_08129D84: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8129D64 - - thumb_func_start sub_8129D8C -sub_8129D8C: @ 8129D8C - push {lr} - adds r2, r1, 0 - lsls r0, 24 - ldr r1, =gDecorations - lsrs r0, 19 - adds r0, r1 - ldrb r1, [r0, 0x12] - cmp r1, 0 - bne _08129DA8 - movs r0, 0x1 - strb r0, [r2, 0x1] - b _08129E06 - .pool -_08129DA8: - cmp r1, 0x1 - bne _08129DB4 - movs r0, 0x2 - strb r0, [r2, 0x1] - strb r1, [r2, 0x2] - b _08129E08 -_08129DB4: - cmp r1, 0x2 - bne _08129DC0 - movs r0, 0x3 - strb r0, [r2, 0x1] - movs r0, 0x1 - b _08129E06 -_08129DC0: - cmp r1, 0x3 - bne _08129DC8 - movs r0, 0x4 - b _08129E02 -_08129DC8: - cmp r1, 0x4 - bne _08129DD2 - movs r0, 0x2 - strb r0, [r2, 0x1] - b _08129E06 -_08129DD2: - cmp r1, 0x5 - bne _08129DDA - movs r0, 0x1 - b _08129E02 -_08129DDA: - cmp r1, 0x6 - bne _08129DE6 - movs r0, 0x1 - strb r0, [r2, 0x1] - movs r0, 0x3 - b _08129E06 -_08129DE6: - cmp r1, 0x7 - bne _08129DF2 - movs r0, 0x2 - strb r0, [r2, 0x1] - movs r0, 0x4 - b _08129E06 -_08129DF2: - cmp r1, 0x8 - bne _08129DFC - movs r0, 0x3 - strb r0, [r2, 0x1] - b _08129E06 -_08129DFC: - cmp r1, 0x9 - bne _08129E08 - movs r0, 0x3 -_08129E02: - strb r0, [r2, 0x1] - movs r0, 0x2 -_08129E06: - strb r0, [r2, 0x2] -_08129E08: - pop {r0} - bx r0 - thumb_func_end sub_8129D8C - - thumb_func_start sub_8129E0C -sub_8129E0C: @ 8129E0C - push {r4-r6,lr} - lsls r0, 24 - lsls r1, 24 - ldr r5, =gSprites - ldr r6, =gUnknown_0203AA38 - ldrb r3, [r6] - lsls r2, r3, 4 - adds r2, r3 - lsls r2, 2 - adds r2, r5 - adds r2, 0x3E - ldrb r3, [r2] - movs r4, 0x4 - orrs r3, r4 - strb r3, [r2] - ldrb r3, [r6] - lsls r2, r3, 4 - adds r2, r3 - lsls r2, 2 - adds r3, r5, 0 - adds r3, 0x1C - adds r2, r3 - ldr r3, =SpriteCallbackDummy - str r3, [r2] - ldr r4, =gUnknown_0203AA39 - ldrb r3, [r4] - lsls r2, r3, 4 - adds r2, r3 - lsls r2, 2 - adds r2, r5 - lsrs r0, 20 - adds r0, 0x88 - strh r0, [r2, 0x20] - ldrb r2, [r4] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r5 - lsrs r1, 20 - adds r1, 0x48 - strh r1, [r0, 0x22] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8129E0C - - thumb_func_start sub_8129E74 -sub_8129E74: @ 8129E74 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - mov r9, r2 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r3, =gTasks - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - adds r2, r3 - ldrb r0, [r2, 0x8] - subs r0, 0x7 - lsls r0, 24 - lsrs r7, r0, 24 - ldrb r0, [r2, 0xA] - subs r0, 0x7 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r2, =gUnknown_0203A17C - ldr r0, [r2, 0x4] - adds r0, r1 - ldrb r0, [r0] - lsrs r5, r0, 4 - movs r6, 0xF - ands r6, r0 - mov r0, r9 - ldrb r4, [r0, 0x2] - ldr r0, [r2] - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x29 - bne _08129ED4 - adds r0, r5, 0x7 - adds r1, r6, 0x7 - bl MapGridGetMetatileIdAt - movs r1, 0xA3 - lsls r1, 2 - cmp r0, r1 - bne _08129ED4 - subs r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_08129ED4: - cmp r7, r5 - bcc _08129F10 - mov r0, r9 - ldrb r2, [r0, 0x1] - adds r0, r5, r2 - cmp r7, r0 - bge _08129F10 - subs r0, r6, r4 - cmp r8, r0 - ble _08129F10 - cmp r8, r6 - bhi _08129F10 - subs r0, r7, r5 - adds r0, 0x1 - subs r0, r2, r0 - lsls r0, 24 - lsrs r0, 24 - mov r2, r8 - subs r1, r6, r2 - lsls r1, 24 - lsrs r1, 24 - bl sub_8129E0C - movs r0, 0x1 - b _08129F12 - .pool -_08129F10: - movs r0, 0 -_08129F12: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8129E74 - - thumb_func_start sub_8129F20 -sub_8129F20: @ 8129F20 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r2, =gUnknown_0203A17C - ldr r3, =gUnknown_0203AA44 - ldr r0, =gUnknown_0203AAC4 - ldrb r0, [r0] - lsls r0, 3 - adds r0, r3 - ldrb r1, [r0] - ldr r0, [r2, 0x4] - adds r0, r1 - ldrb r0, [r0] - lsrs r1, r0, 4 - mov r8, r1 - movs r6, 0xF - ands r6, r0 - movs r4, 0 - ldr r7, =gSaveBlock1Ptr - mov r9, r3 -_08129F4A: - ldr r1, [r7] - lsls r0, r4, 1 - adds r0, r4 - lsls r5, r0, 3 - adds r1, r5 - ldr r2, =0x00000c74 - adds r0, r1, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, r8 - bne _08129FB0 - ldr r2, =0x00000c76 - adds r0, r1, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, r6 - bne _08129FB0 - ldr r2, =0x00000c84 - adds r0, r1, r2 - ldrh r0, [r0] - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _08129FB0 - ldr r0, =gUnknown_0203AAC4 - ldrb r1, [r0] - lsls r1, 3 - add r1, r9 - ldr r0, [r7] - adds r0, r5 - ldr r2, =0x00000c84 - adds r0, r2 - ldrh r0, [r0] - strh r0, [r1, 0x4] - b _08129FBA - .pool -_08129FB0: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x3F - bls _08129F4A -_08129FBA: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8129F20 - - thumb_func_start sub_8129FC8 -sub_8129FC8: @ 8129FC8 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - movs r6, 0 - b _0812A02A -_08129FD2: - ldr r0, [r0] - adds r1, r0, r6 - ldrb r0, [r1] - cmp r0, 0 - beq _0812A024 - ldr r0, =gDecorations - ldrb r2, [r1] - lsls r1, r2, 5 - adds r1, r0 - ldrb r0, [r1, 0x11] - cmp r0, 0x4 - bne _0812A024 - ldr r5, =gUnknown_0203AA44 - adds r0, r2, 0 - adds r1, r5, 0 - bl sub_8129D8C - lsls r1, r6, 24 - lsrs r1, 24 - adds r0, r7, 0 - adds r2, r5, 0 - bl sub_8129E74 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bne _0812A024 - strb r6, [r5] - bl sub_8129F20 - ldr r0, =gUnknown_0203AAC4 - strb r4, [r0] - movs r0, 0x1 - b _0812A034 - .pool -_0812A024: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_0812A02A: - ldr r0, =gUnknown_0203A17C - ldrb r1, [r0, 0x8] - cmp r6, r1 - bcc _08129FD2 - movs r0, 0 -_0812A034: - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8129FC8 - - thumb_func_start sub_812A040 -sub_812A040: @ 812A040 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - lsls r1, 24 - lsrs r1, 24 - mov r10, r1 - lsls r2, 24 - lsrs r2, 24 - mov r9, r2 - lsls r3, 24 - lsrs r3, 24 - mov r8, r3 - movs r4, 0 - ldr r7, =gUnknown_0203A17C - ldrb r0, [r7, 0x8] - cmp r4, r0 - bcs _0812A0C6 - adds r6, r7, 0 - ldr r5, =gUnknown_0203AAC4 -_0812A072: - ldr r0, [r6] - adds r0, r4 - ldrb r1, [r0] - ldr r0, [r6, 0x4] - adds r0, r4 - ldrb r0, [r0] - lsrs r3, r0, 4 - movs r2, 0xF - ands r2, r0 - cmp r1, 0 - beq _0812A0BA - ldr r0, =gDecorations - lsls r1, 5 - adds r1, r0 - ldrb r0, [r1, 0x11] - cmp r0, 0x4 - bne _0812A0BA - ldr r0, [sp] - cmp r0, r3 - bhi _0812A0BA - cmp r10, r2 - bhi _0812A0BA - cmp r9, r3 - bcc _0812A0BA - cmp r8, r2 - bcc _0812A0BA - ldr r0, =gUnknown_0203AA44 - ldrb r1, [r5] - lsls r1, 3 - adds r1, r0 - strb r4, [r1] - bl sub_8129F20 - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] -_0812A0BA: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldrb r0, [r7, 0x8] - cmp r4, r0 - bcc _0812A072 -_0812A0C6: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812A040 - - thumb_func_start sub_812A0E8 -sub_812A0E8: @ 812A0E8 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r4, =gUnknown_0203AAC4 - movs r0, 0 - strb r0, [r4] - adds r0, r6, 0 - bl sub_8129FC8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0812A18C - movs r5, 0 - ldr r0, =gUnknown_0203A17C - ldrb r1, [r0, 0x8] - cmp r5, r1 - bcs _0812A15A - adds r7, r4, 0 -_0812A10E: - ldr r0, [r0] - adds r0, r5 - ldrb r1, [r0] - cmp r1, 0 - beq _0812A14C - ldr r4, =gUnknown_0203AA44 - adds r0, r1, 0 - adds r1, r4, 0 - bl sub_8129D8C - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_8129E74 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0812A14C - strb r5, [r4] - ldrb r0, [r7] - adds r0, 0x1 - strb r0, [r7] - b _0812A15A - .pool -_0812A14C: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gUnknown_0203A17C - ldrb r1, [r0, 0x8] - cmp r5, r1 - bcc _0812A10E -_0812A15A: - ldr r0, =gUnknown_0203AAC4 - ldrb r0, [r0] - cmp r0, 0 - beq _0812A18C - ldr r0, =gUnknown_0203A17C - ldr r2, =gUnknown_0203AA44 - ldrb r1, [r2] - ldr r0, [r0, 0x4] - adds r0, r1 - ldrb r1, [r0] - lsrs r0, r1, 4 - movs r3, 0xF - ands r3, r1 - ldrb r1, [r2, 0x2] - subs r1, r3, r1 - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - ldrb r2, [r2, 0x1] - adds r2, r0 - subs r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - bl sub_812A040 -_0812A18C: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812A0E8 - - thumb_func_start sub_812A1A0 -sub_812A1A0: @ 812A1A0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8197930 - ldr r1, =gUnknown_085A7348 - adds r0, r4, 0 - bl sub_8121F68 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812A1A0 - - thumb_func_start sub_812A1C0 -sub_812A1C0: @ 812A1C0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - movs r1, 0 - bl fade_screen - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xC] - ldr r1, =sub_81298EC - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812A1C0 - - thumb_func_start sub_812A1F0 -sub_812A1F0: @ 812A1F0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8197930 - ldr r1, =gUnknown_085A7350 - adds r0, r4, 0 - bl sub_8121F68 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812A1F0 - - thumb_func_start sub_812A210 -sub_812A210: @ 812A210 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - movs r1, 0 - bl sub_8197434 - adds r0, r4, 0 - bl sub_812A22C - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_812A210 - - thumb_func_start sub_812A22C -sub_812A22C: @ 812A22C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - movs r1, 0 - bl fade_screen - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xC] - ldr r1, =sub_812A25C - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812A22C - - thumb_func_start sub_812A25C -sub_812A25C: @ 812A25C - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0xC - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _0812A280 - cmp r0, 0x1 - beq _0812A29C - b _0812A2B2 - .pool -_0812A280: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0812A2B2 - adds r0, r4, 0 - bl sub_8127B04 - movs r0, 0x1 - strh r0, [r5, 0xC] - b _0812A2B2 - .pool -_0812A29C: - bl sub_812A3C8 - ldr r0, =gFieldCallback - ldr r1, =sub_812A334 - str r1, [r0] - ldr r0, =c2_exit_to_overworld_2_switch - bl SetMainCallback2 - adds r0, r4, 0 - bl DestroyTask -_0812A2B2: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812A25C - - thumb_func_start sub_812A2C4 -sub_812A2C4: @ 812A2C4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r5, r1, 3 - ldr r6, =gTasks + 0x8 - adds r4, r5, r6 - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _0812A2FC - cmp r0, 0x1 - bgt _0812A2EC - cmp r0, 0 - beq _0812A2F6 - b _0812A32A - .pool -_0812A2EC: - cmp r0, 0x2 - beq _0812A308 - cmp r0, 0x3 - beq _0812A314 - b _0812A32A -_0812A2F6: - bl sub_80E9578 - b _0812A30C -_0812A2FC: - ldr r0, =gUnknown_08275D0C - bl ScriptContext1_SetupScript - b _0812A30C - .pool -_0812A308: - bl ScriptContext2_Enable -_0812A30C: - ldrh r0, [r4, 0x4] - adds r0, 0x1 - strh r0, [r4, 0x4] - b _0812A32A -_0812A314: - bl sub_80ABDFC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0812A32A - adds r0, r6, 0 - subs r0, 0x8 - adds r0, r5, r0 - ldr r1, =sub_8126B80 - str r1, [r0] -_0812A32A: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812A2C4 - - thumb_func_start sub_812A334 -sub_812A334: @ 812A334 - push {lr} - bl pal_fill_black - movs r0, 0 - movs r1, 0x1 - bl sub_81973C4 - bl sub_8126ABC - ldr r0, =sub_812A2C4 - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0xC] - pop {r0} - bx r0 - .pool - thumb_func_end sub_812A334 - - thumb_func_start sub_812A36C -sub_812A36C: @ 812A36C - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - movs r1, 0x1F - ands r0, r1 - strh r0, [r2, 0x2E] - cmp r0, 0xF - ble _0812A38C - adds r0, r2, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - b _0812A398 -_0812A38C: - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_0812A398: - pop {r0} - bx r0 - thumb_func_end sub_812A36C - - thumb_func_start sub_812A39C -sub_812A39C: @ 812A39C - push {lr} - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _0812A3B8 - ldr r0, =gUnknown_085A73D8 - bl LoadSpritePalette - b _0812A3BE - .pool -_0812A3B8: - ldr r0, =gUnknown_085A73E0 - bl LoadSpritePalette -_0812A3BE: - pop {r0} - bx r0 - .pool - thumb_func_end sub_812A39C - - thumb_func_start sub_812A3C8 -sub_812A3C8: @ 812A3C8 - push {lr} - movs r0, 0x8 - bl FreeSpritePaletteByTag - pop {r0} - bx r0 - thumb_func_end sub_812A3C8 - - thumb_func_start sub_812A3D4 -sub_812A3D4: @ 812A3D4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_81279C4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0812A430 - ldr r0, =gStringVar1 - ldr r1, =gUnknown_0203A172 - ldrb r2, [r1] - ldr r1, =gUnknown_0203A14C - ldr r1, [r1] - adds r1, r2 - ldrb r1, [r1] - lsls r1, 5 - ldr r2, =gDecorations + 1 - adds r1, r2 - bl StringCopy - ldr r4, =gStringVar4 - ldr r1, =gText_DecorationWillBeDiscarded - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, =sub_812A458 - adds r0, r5, 0 - adds r1, r4, 0 - bl DisplayItemMessageOnField - b _0812A444 - .pool -_0812A430: - ldr r4, =gStringVar4 - ldr r1, =gText_CantThrowAwayInUse - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, =sub_8127A5C - adds r0, r5, 0 - adds r1, r4, 0 - bl DisplayItemMessageOnField -_0812A444: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812A3D4 - - thumb_func_start sub_812A458 -sub_812A458: @ 812A458 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8197930 - ldr r1, =gUnknown_085A741C - adds r0, r4, 0 - bl sub_8121F68 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812A458 - - thumb_func_start sub_812A478 -sub_812A478: @ 812A478 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gUnknown_0203A172 - ldrb r1, [r0] - ldr r0, =gUnknown_0203A14C - ldr r0, [r0] - adds r0, r1 - movs r1, 0 - strb r1, [r0] - ldr r5, =gUnknown_0203A173 - ldrb r0, [r5] - bl sub_8161AD0 - ldr r1, =gUnknown_0203A151 - strb r0, [r1] - ldrb r0, [r5] - bl sub_8161A38 - adds r0, r4, 0 - bl sub_8127814 - ldr r5, =gStringVar4 - ldr r1, =gText_DecorationThrownAway - adds r0, r5, 0 - bl StringExpandPlaceholders - ldr r2, =sub_8127A5C - adds r0, r4, 0 - adds r1, r5, 0 - bl DisplayItemMessageOnField - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812A478 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/decoration_inventory.s b/asm/decoration_inventory.s deleted file mode 100644 index 7a909f585..000000000 --- a/asm/decoration_inventory.s +++ /dev/null @@ -1,459 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start SetDecorationInventoriesPointers -SetDecorationInventoriesPointers: @ 81617F4 - push {r4,lr} - ldr r0, =gDecorationInventories - mov r12, r0 - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, =0x00002734 - adds r0, r1, r2 - mov r4, r12 - str r0, [r4] - movs r3, 0xA - strb r3, [r4, 0x4] - adds r2, 0xA - adds r0, r1, r2 - str r0, [r4, 0x8] - strb r3, [r4, 0xC] - ldr r4, =0x00002748 - adds r0, r1, r4 - mov r2, r12 - str r0, [r2, 0x10] - strb r3, [r2, 0x14] - adds r4, 0xA - adds r0, r1, r4 - str r0, [r2, 0x18] - movs r2, 0x1E - mov r0, r12 - strb r2, [r0, 0x1C] - adds r4, 0x1E - adds r0, r1, r4 - mov r4, r12 - str r0, [r4, 0x20] - mov r0, r12 - adds r0, 0x24 - strb r2, [r0] - ldr r2, =0x0000278e - adds r0, r1, r2 - str r0, [r4, 0x28] - mov r0, r12 - adds r0, 0x2C - strb r3, [r0] - ldr r4, =0x00002798 - adds r0, r1, r4 - mov r2, r12 - str r0, [r2, 0x30] - adds r2, 0x34 - movs r0, 0x28 - strb r0, [r2] - adds r4, 0x28 - adds r1, r4 - mov r0, r12 - str r1, [r0, 0x38] - adds r0, 0x3C - strb r3, [r0] - bl sub_8126968 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end SetDecorationInventoriesPointers - - thumb_func_start ClearDecorationInventory -ClearDecorationInventory: @ 8161880 - push {r4,r5,lr} - lsls r0, 24 - movs r3, 0 - ldr r1, =gDecorationInventories - lsrs r2, r0, 21 - adds r0, r2, r1 - ldrb r0, [r0, 0x4] - cmp r3, r0 - bcs _081618AA - adds r5, r1, 0 - movs r4, 0 -_08161896: - adds r0, r2, r5 - ldr r1, [r0] - adds r1, r3 - strb r4, [r1] - adds r1, r3, 0x1 - lsls r1, 24 - lsrs r3, r1, 24 - ldrb r0, [r0, 0x4] - cmp r3, r0 - bcc _08161896 -_081618AA: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end ClearDecorationInventory - - thumb_func_start ClearDecorationInventories -ClearDecorationInventories: @ 81618B4 - push {r4,lr} - movs r4, 0 -_081618B8: - adds r0, r4, 0 - bl ClearDecorationInventory - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bls _081618B8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end ClearDecorationInventories - - thumb_func_start sub_81618D0 -sub_81618D0: @ 81618D0 - push {r4,lr} - lsls r0, 24 - movs r2, 0 - ldr r1, =gDecorationInventories - lsrs r0, 21 - adds r0, r1 - movs r1, 0x4 - ldrsb r1, [r0, r1] - cmp r2, r1 - bge _0816190C - adds r4, r0, 0 - adds r3, r1, 0 -_081618E8: - lsls r0, r2, 24 - asrs r1, r0, 24 - ldr r0, [r4] - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _08161900 - adds r0, r1, 0 - b _08161910 - .pool -_08161900: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - asrs r0, 24 - cmp r0, r3 - blt _081618E8 -_0816190C: - movs r0, 0x1 - negs r0, r0 -_08161910: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81618D0 - - thumb_func_start CheckHasDecoration -CheckHasDecoration: @ 8161918 - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r1, =gDecorations - lsls r0, r3, 5 - adds r0, r1 - ldrb r0, [r0, 0x13] - movs r2, 0 - ldr r1, =gDecorationInventories - lsls r0, 3 - adds r0, r1 - ldrb r1, [r0, 0x4] - cmp r2, r1 - bcs _08161956 - ldr r4, [r0] -_08161936: - adds r0, r4, r2 - ldrb r0, [r0] - cmp r0, r3 - bne _0816194C - movs r0, 0x1 - b _08161958 - .pool -_0816194C: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, r1 - bcc _08161936 -_08161956: - movs r0, 0 -_08161958: - pop {r4} - pop {r1} - bx r1 - thumb_func_end CheckHasDecoration - - thumb_func_start DecorationAdd -DecorationAdd: @ 8161960 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - cmp r4, 0 - beq _081619A0 - ldr r1, =gDecorations - lsls r0, r4, 5 - adds r0, r1 - ldrb r5, [r0, 0x13] - adds r0, r5, 0 - bl sub_81618D0 - lsls r0, 24 - asrs r2, r0, 24 - movs r0, 0x1 - negs r0, r0 - cmp r2, r0 - beq _081619A0 - ldr r0, =gDecorationInventories - lsls r1, r5, 3 - adds r1, r0 - ldr r0, [r1] - adds r0, r2 - strb r4, [r0] - movs r0, 0x1 - b _081619A2 - .pool -_081619A0: - movs r0, 0 -_081619A2: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end DecorationAdd - - thumb_func_start DecorationCheckSpace -DecorationCheckSpace: @ 81619A8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _081619D4 - ldr r1, =gDecorations - lsls r0, 5 - adds r0, r1 - ldrb r0, [r0, 0x13] - bl sub_81618D0 - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _081619D4 - movs r0, 0x1 - b _081619D6 - .pool -_081619D4: - movs r0, 0 -_081619D6: - pop {r1} - bx r1 - thumb_func_end DecorationCheckSpace - - thumb_func_start DecorationRemove -DecorationRemove: @ 81619DC - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r3, 0 - cmp r5, 0 - bne _081619F8 - b _08161A26 -_081619EA: - movs r0, 0 - strb r0, [r1] - adds r0, r6, 0 - bl sub_8161A38 - movs r0, 0x1 - b _08161A28 -_081619F8: - ldr r2, =gDecorationInventories - ldr r1, =gDecorations - lsls r0, r5, 5 - adds r0, r1 - ldrb r4, [r0, 0x13] - lsls r0, r4, 3 - adds r0, r2 - ldrb r1, [r0, 0x4] - cmp r3, r1 - bcs _08161A26 - adds r6, r4, 0 - adds r4, r0, 0 - adds r2, r1, 0 -_08161A12: - ldr r0, [r4] - adds r1, r0, r3 - ldrb r0, [r1] - cmp r0, r5 - beq _081619EA - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, r2 - bcc _08161A12 -_08161A26: - movs r0, 0 -_08161A28: - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end DecorationRemove - - thumb_func_start sub_8161A38 -sub_8161A38: @ 8161A38 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - movs r6, 0 - ldr r2, =gDecorationInventories - lsrs r0, 21 - adds r1, r0, r2 - ldrb r3, [r1, 0x4] - cmp r6, r3 - bcs _08161ABC - adds r7, r0, 0 - mov r10, r1 - mov r0, r10 - str r0, [sp] -_08161A5C: - adds r1, r6, 0x1 - lsls r0, r1, 24 - lsrs r3, r0, 24 - adds r2, r7, 0 - mov r12, r1 - mov r1, r10 - ldrb r1, [r1, 0x4] - cmp r3, r1 - bcs _08161AAE - ldr r0, =gDecorationInventories - mov r9, r0 - adds r1, r0, 0 - mov r8, r1 -_08161A76: - mov r0, r9 - adds r5, r2, r0 - ldr r1, [r5] - adds r0, r1, r3 - ldrb r4, [r0] - adds r2, r4, 0 - cmp r2, 0 - beq _08161A9C - adds r0, r1, r6 - ldrb r1, [r0] - cmp r1, 0 - beq _08161A92 - cmp r1, r2 - bls _08161A9C -_08161A92: - ldrb r1, [r0] - strb r4, [r0] - ldr r0, [r5] - adds r0, r3 - strb r1, [r0] -_08161A9C: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - adds r2, r7, 0 - mov r1, r8 - adds r0, r2, r1 - ldrb r0, [r0, 0x4] - cmp r3, r0 - bcc _08161A76 -_08161AAE: - mov r3, r12 - lsls r0, r3, 24 - lsrs r6, r0, 24 - ldr r0, [sp] - ldrb r0, [r0, 0x4] - cmp r6, r0 - bcc _08161A5C -_08161ABC: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8161A38 - - thumb_func_start sub_8161AD0 -sub_8161AD0: @ 8161AD0 - push {r4,r5,lr} - lsls r0, 24 - movs r4, 0 - movs r3, 0 - ldr r2, =gDecorationInventories - lsrs r1, r0, 21 - adds r0, r1, r2 - ldrb r0, [r0, 0x4] - cmp r4, r0 - bcs _08161B04 - adds r5, r2, 0 -_08161AE6: - adds r2, r1, r5 - ldr r0, [r2] - adds r0, r3 - ldrb r0, [r0] - cmp r0, 0 - beq _08161AF8 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_08161AF8: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - ldrb r2, [r2, 0x4] - cmp r3, r2 - bcc _08161AE6 -_08161B04: - adds r0, r4, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8161AD0 - - thumb_func_start sub_8161B10 -sub_8161B10: @ 8161B10 - push {r4,r5,lr} - movs r5, 0 - movs r4, 0 -_08161B16: - adds r0, r4, 0 - bl sub_8161AD0 - adds r0, r5, r0 - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bls _08161B16 - adds r0, r5, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8161B10 - - .align 2, 0 @ Don't pad with nop. -
\ No newline at end of file diff --git a/asm/international_string_util.s b/asm/international_string_util.s index c4369887d..817a1d5e4 100755 --- a/asm/international_string_util.s +++ b/asm/international_string_util.s @@ -5,127 +5,6 @@ .text - thumb_func_start GetStringCenterAlignXOffset -@ s32 GetStringCenterAlignXOffset(u8 fontId, u8 *str, s32 totalWidth) -GetStringCenterAlignXOffset: @ 81DB35C - push {lr} - movs r3, 0 - bl GetStringCenterAlignXOffsetWithLetterSpacing - pop {r1} - bx r1 - thumb_func_end GetStringCenterAlignXOffset - - thumb_func_start GetStringRightAlignXOffset -@ s32 GetStringRightAlignXOffset(u8 fontId, u8 *str, s32 totalWidth) -GetStringRightAlignXOffset: @ 81DB368 - push {lr} - movs r3, 0 - bl GetStringWidthDifference - pop {r1} - bx r1 - thumb_func_end GetStringRightAlignXOffset - - thumb_func_start GetStringCenterAlignXOffsetWithLetterSpacing -@ s32 GetStringCenterAlignXOffsetWithLetterSpacing(u8 fontId, u8 *str, s32 totalWidth, s16 letterSpacing) -GetStringCenterAlignXOffsetWithLetterSpacing: @ 81DB374 - push {lr} - bl GetStringWidthDifference - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - pop {r1} - bx r1 - thumb_func_end GetStringCenterAlignXOffsetWithLetterSpacing - - thumb_func_start GetStringWidthDifference -@ s32 GetStringWidthDifference(u8 fontId, u8 *str, s32 totalWidth, s16 letterSpacing) -GetStringWidthDifference: @ 81DB384 - push {r4,lr} - adds r4, r2, 0 - adds r2, r3, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r2, 16 - asrs r2, 16 - bl GetStringWidth - cmp r4, r0 - bgt _081DB39E - movs r0, 0 - b _081DB3A0 -_081DB39E: - subs r0, r4, r0 -_081DB3A0: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetStringWidthDifference - - thumb_func_start GetMaxWidthInMenuTable -GetMaxWidthInMenuTable: @ 81DB3A8 - push {r4-r6,lr} - movs r6, 0 - cmp r6, r1 - bge _081DB3CC - adds r5, r0, 0 - adds r4, r1, 0 -_081DB3B4: - ldr r1, [r5] - movs r0, 0x1 - movs r2, 0 - bl GetStringWidth - cmp r0, r6 - ble _081DB3C4 - adds r6, r0, 0 -_081DB3C4: - adds r5, 0x8 - subs r4, 0x1 - cmp r4, 0 - bne _081DB3B4 -_081DB3CC: - adds r0, r6, 0 - bl convert_pixel_width_to_tile_width - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end GetMaxWidthInMenuTable - - thumb_func_start sub_81DB3D8 -sub_81DB3D8: @ 81DB3D8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r0 - adds r7, r1, 0 - adds r5, r2, 0 - movs r6, 0 - movs r4, 0 - cmp r6, r5 - bge _081DB40A -_081DB3EC: - adds r0, r7, r4 - ldrb r0, [r0] - lsls r0, 3 - add r0, r8 - ldr r1, [r0] - movs r0, 0x1 - movs r2, 0 - bl GetStringWidth - cmp r0, r6 - ble _081DB404 - adds r6, r0, 0 -_081DB404: - adds r4, 0x1 - cmp r4, r5 - blt _081DB3EC -_081DB40A: - adds r0, r6, 0 - bl convert_pixel_width_to_tile_width - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81DB3D8 thumb_func_start sub_81DB41C sub_81DB41C: @ 81DB41C diff --git a/asm/intro.s b/asm/intro.s index cd8f7c2d8..32b52ed06 100644 --- a/asm/intro.s +++ b/asm/intro.s @@ -1958,9 +1958,9 @@ task_intro_13: @ 816DD28 ldr r0, =gUnknown_08D8A818 ldr r1, =0x0600e000 bl LZDecompressVram - ldr r0, =gUnknown_08524D14 + ldr r0, =gBattleAnimPicTable + 0x1D0 bl LoadCompressedObjectPicUsingHeap - ldr r0, =gUnknown_0852561C + ldr r0, =gBattleAnimPaletteTable + 0x1D0 bl LoadCompressedObjectPaletteUsingHeap ldr r0, =gUnknown_08D85CD0 ldr r1, =gPlttBufferUnfaded diff --git a/asm/librfu.s b/asm/librfu.s index 129e0f34a..5fc1b0d6f 100644 --- a/asm/librfu.s +++ b/asm/librfu.s @@ -4,2251 +4,6 @@ .text - thumb_func_start STWI_init_all -STWI_init_all: @ 82E2A18 - push {r4,lr} - adds r3, r0, 0 - lsls r2, 24 - lsrs r2, 24 - cmp r2, 0x1 - bne _082E2A54 - adds r2, r3, 0 - adds r2, 0xE8 - str r2, [r1] - ldr r1, _082E2A40 - ldr r0, _082E2A44 - str r0, [r1] - str r2, [r1, 0x4] - ldr r0, _082E2A48 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r1, _082E2A4C - ldr r2, _082E2A50 - adds r0, r3, r2 - b _082E2A5E - .align 2, 0 -_082E2A40: .4byte 0x040000d4 -_082E2A44: .4byte IntrSIO32 -_082E2A48: .4byte 0x800004b0 -_082E2A4C: .4byte gUnknown_03007868 -_082E2A50: .4byte 0x00000a48 -_082E2A54: - ldr r0, _082E2AD8 - str r0, [r1] - ldr r1, _082E2ADC - adds r0, r3, 0 - adds r0, 0xE8 -_082E2A5E: - str r0, [r1] - adds r2, r1, 0 - ldr r1, [r2] - str r3, [r1, 0x28] - adds r0, r3, 0 - adds r0, 0x74 - str r0, [r1, 0x24] - ldrb r0, [r1, 0x14] - movs r4, 0 - movs r0, 0x1 - strb r0, [r1, 0x14] - ldr r0, [r2] - str r4, [r0] - strb r4, [r0, 0x4] - ldr r0, [r2] - strb r4, [r0, 0x5] - ldr r0, [r2] - strb r4, [r0, 0x7] - ldr r0, [r2] - strb r4, [r0, 0x8] - ldr r0, [r2] - strb r4, [r0, 0x9] - ldr r0, [r2] - str r4, [r0, 0xC] - ldrb r1, [r0, 0x10] - strb r4, [r0, 0x10] - ldr r0, [r2] - ldrh r1, [r0, 0x12] - movs r1, 0 - strh r4, [r0, 0x12] - strb r1, [r0, 0x15] - ldr r0, [r2] - adds r0, 0x2C - ldrb r2, [r0] - strb r1, [r0] - ldr r1, _082E2AE0 - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0xC - ldr r2, _082E2AE4 - adds r0, r2, 0 - strh r0, [r1] - bl STWI_init_Callback_M - bl STWI_init_Callback_S - ldr r3, _082E2AE8 - ldrh r2, [r3] - strh r4, [r3] - ldr r4, _082E2AEC - ldrh r0, [r4] - movs r1, 0x80 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_082E2AD8: .4byte IntrSIO32 -_082E2ADC: .4byte gUnknown_03007868 -_082E2AE0: .4byte 0x04000134 -_082E2AE4: .4byte 0x00005003 -_082E2AE8: .4byte 0x04000208 -_082E2AEC: .4byte 0x04000200 - thumb_func_end STWI_init_all - - thumb_func_start STWI_init_timer -STWI_init_timer: @ 82E2AF0 - push {r4,r5,lr} - ldr r2, _082E2B1C - str r2, [r0] - ldr r5, _082E2B20 - ldr r0, [r5] - movs r4, 0 - strb r1, [r0, 0xA] - ldr r3, _082E2B24 - ldrh r2, [r3] - strh r4, [r3] - ldr r4, _082E2B28 - ldr r1, [r5] - movs r0, 0x8 - ldrb r1, [r1, 0xA] - lsls r0, r1 - ldrh r1, [r4] - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_082E2B1C: .4byte STWI_intr_timer -_082E2B20: .4byte gUnknown_03007868 -_082E2B24: .4byte 0x04000208 -_082E2B28: .4byte 0x04000200 - thumb_func_end STWI_init_timer - - thumb_func_start AgbRFU_SoftReset -AgbRFU_SoftReset: @ 82E2B2C - push {r4,r5,lr} - ldr r5, _082E2BC4 - movs r1, 0x80 - lsls r1, 8 - adds r0, r1, 0 - strh r0, [r5] - ldr r2, _082E2BC8 - adds r0, r2, 0 - strh r0, [r5] - ldr r1, _082E2BCC - ldr r0, [r1] - ldrb r0, [r0, 0xA] - lsls r0, 2 - ldr r3, _082E2BD0 - adds r2, r0, r3 - ldr r4, _082E2BD4 - adds r3, r0, r4 - movs r0, 0 - strh r0, [r3] - strh r0, [r2] - movs r0, 0x83 - strh r0, [r3] - ldrh r0, [r2] - adds r4, r1, 0 - cmp r0, 0x11 - bhi _082E2B6C - ldr r0, _082E2BD8 - adds r1, r0, 0 -_082E2B64: - strh r1, [r5] - ldrh r0, [r2] - cmp r0, 0x11 - bls _082E2B64 -_082E2B6C: - movs r0, 0x3 - strh r0, [r3] - ldr r1, _082E2BC4 - ldr r2, _082E2BC8 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0xC - ldr r3, _082E2BDC - adds r0, r3, 0 - strh r0, [r1] - ldr r0, [r4] - movs r2, 0 - str r2, [r0] - strb r2, [r0, 0x4] - ldr r0, [r4] - strb r2, [r0, 0x5] - ldr r0, [r4] - strb r2, [r0, 0x6] - ldr r0, [r4] - strb r2, [r0, 0x7] - ldr r0, [r4] - strb r2, [r0, 0x8] - ldr r0, [r4] - strb r2, [r0, 0x9] - ldr r0, [r4] - str r2, [r0, 0xC] - ldrb r1, [r0, 0x10] - strb r2, [r0, 0x10] - ldr r1, [r4] - ldrh r0, [r1, 0x12] - movs r3, 0 - strh r2, [r1, 0x12] - ldrb r0, [r1, 0x14] - movs r0, 0x1 - strb r0, [r1, 0x14] - ldr r0, [r4] - strb r3, [r0, 0x15] - ldr r0, [r4] - adds r0, 0x2C - ldrb r1, [r0] - strb r3, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_082E2BC4: .4byte 0x04000134 -_082E2BC8: .4byte 0x000080a0 -_082E2BCC: .4byte gUnknown_03007868 -_082E2BD0: .4byte 0x04000100 -_082E2BD4: .4byte 0x04000102 -_082E2BD8: .4byte 0x000080a2 -_082E2BDC: .4byte 0x00005003 - thumb_func_end AgbRFU_SoftReset - - thumb_func_start STWI_set_MS_mode -STWI_set_MS_mode: @ 82E2BE0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _082E2BF0 - ldr r1, [r1] - ldrb r2, [r1, 0x14] - strb r0, [r1, 0x14] - bx lr - .align 2, 0 -_082E2BF0: .4byte gUnknown_03007868 - thumb_func_end STWI_set_MS_mode - - thumb_func_start STWI_read_status -STWI_read_status: @ 82E2BF4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x1 - beq _082E2C20 - cmp r0, 0x1 - bgt _082E2C0A - cmp r0, 0 - beq _082E2C14 - b _082E2C48 -_082E2C0A: - cmp r1, 0x2 - beq _082E2C2C - cmp r1, 0x3 - beq _082E2C3C - b _082E2C48 -_082E2C14: - ldr r0, _082E2C1C - ldr r0, [r0] - ldrh r0, [r0, 0x12] - b _082E2C4A - .align 2, 0 -_082E2C1C: .4byte gUnknown_03007868 -_082E2C20: - ldr r0, _082E2C28 - ldr r0, [r0] - ldrb r0, [r0, 0x14] - b _082E2C4A - .align 2, 0 -_082E2C28: .4byte gUnknown_03007868 -_082E2C2C: - ldr r0, _082E2C38 - ldr r0, [r0] - ldr r0, [r0] - lsls r0, 16 - lsrs r0, 16 - b _082E2C4A - .align 2, 0 -_082E2C38: .4byte gUnknown_03007868 -_082E2C3C: - ldr r0, _082E2C44 - ldr r0, [r0] - ldrb r0, [r0, 0x6] - b _082E2C4A - .align 2, 0 -_082E2C44: .4byte gUnknown_03007868 -_082E2C48: - ldr r0, _082E2C50 -_082E2C4A: - pop {r1} - bx r1 - .align 2, 0 -_082E2C50: .4byte 0x0000ffff - thumb_func_end STWI_read_status - - thumb_func_start STWI_init_Callback_M -STWI_init_Callback_M: @ 82E2C54 - push {lr} - movs r0, 0 - bl STWI_set_Callback_M - pop {r0} - bx r0 - thumb_func_end STWI_init_Callback_M - - thumb_func_start STWI_init_Callback_S -STWI_init_Callback_S: @ 82E2C60 - push {lr} - movs r0, 0 - bl STWI_set_Callback_S - pop {r0} - bx r0 - thumb_func_end STWI_init_Callback_S - - thumb_func_start STWI_set_Callback_M -STWI_set_Callback_M: @ 82E2C6C - ldr r1, _082E2C74 - ldr r1, [r1] - str r0, [r1, 0x18] - bx lr - .align 2, 0 -_082E2C74: .4byte gUnknown_03007868 - thumb_func_end STWI_set_Callback_M - - thumb_func_start STWI_set_Callback_S -STWI_set_Callback_S: @ 82E2C78 - ldr r1, _082E2C80 - ldr r1, [r1] - str r0, [r1, 0x1C] - bx lr - .align 2, 0 -_082E2C80: .4byte gUnknown_03007868 - thumb_func_end STWI_set_Callback_S - - thumb_func_start STWI_set_Callback_ID -STWI_set_Callback_ID: @ 82E2C84 - ldr r1, _082E2C8C - ldr r1, [r1] - str r0, [r1, 0x20] - bx lr - .align 2, 0 -_082E2C8C: .4byte gUnknown_03007868 - thumb_func_end STWI_set_Callback_ID - - thumb_func_start STWI_poll_CommandEnd -STWI_poll_CommandEnd: @ 82E2C90 - push {lr} - ldr r0, _082E2CB4 - ldr r1, [r0] - adds r2, r1, 0 - adds r2, 0x2C - ldrb r1, [r2] - adds r3, r0, 0 - cmp r1, 0x1 - bne _082E2CAA - adds r1, r2, 0 -_082E2CA4: - ldrb r0, [r1] - cmp r0, 0x1 - beq _082E2CA4 -_082E2CAA: - ldr r0, [r3] - ldrh r0, [r0, 0x12] - pop {r1} - bx r1 - .align 2, 0 -_082E2CB4: .4byte gUnknown_03007868 - thumb_func_end STWI_poll_CommandEnd - - thumb_func_start STWI_send_ResetREQ -STWI_send_ResetREQ: @ 82E2CB8 - push {lr} - movs r0, 0x10 - bl STWI_init - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - bne _082E2CD2 - ldr r0, _082E2CD8 - ldr r0, [r0] - strb r1, [r0, 0x4] - bl STWI_start_Command -_082E2CD2: - pop {r0} - bx r0 - .align 2, 0 -_082E2CD8: .4byte gUnknown_03007868 - thumb_func_end STWI_send_ResetREQ - - thumb_func_start STWI_send_LinkStatusREQ -STWI_send_LinkStatusREQ: @ 82E2CDC - push {lr} - movs r0, 0x11 - bl STWI_init - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - bne _082E2CF6 - ldr r0, _082E2CFC - ldr r0, [r0] - strb r1, [r0, 0x4] - bl STWI_start_Command -_082E2CF6: - pop {r0} - bx r0 - .align 2, 0 -_082E2CFC: .4byte gUnknown_03007868 - thumb_func_end STWI_send_LinkStatusREQ - - thumb_func_start STWI_send_VersionStatusREQ -STWI_send_VersionStatusREQ: @ 82E2D00 - push {lr} - movs r0, 0x12 - bl STWI_init - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - bne _082E2D1A - ldr r0, _082E2D20 - ldr r0, [r0] - strb r1, [r0, 0x4] - bl STWI_start_Command -_082E2D1A: - pop {r0} - bx r0 - .align 2, 0 -_082E2D20: .4byte gUnknown_03007868 - thumb_func_end STWI_send_VersionStatusREQ - - thumb_func_start STWI_send_SystemStatusREQ -STWI_send_SystemStatusREQ: @ 82E2D24 - push {lr} - movs r0, 0x13 - bl STWI_init - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - bne _082E2D3E - ldr r0, _082E2D44 - ldr r0, [r0] - strb r1, [r0, 0x4] - bl STWI_start_Command -_082E2D3E: - pop {r0} - bx r0 - .align 2, 0 -_082E2D44: .4byte gUnknown_03007868 - thumb_func_end STWI_send_SystemStatusREQ - - thumb_func_start STWI_send_SlotStatusREQ -STWI_send_SlotStatusREQ: @ 82E2D48 - push {lr} - movs r0, 0x14 - bl STWI_init - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - bne _082E2D62 - ldr r0, _082E2D68 - ldr r0, [r0] - strb r1, [r0, 0x4] - bl STWI_start_Command -_082E2D62: - pop {r0} - bx r0 - .align 2, 0 -_082E2D68: .4byte gUnknown_03007868 - thumb_func_end STWI_send_SlotStatusREQ - - thumb_func_start STWI_send_ConfigStatusREQ -STWI_send_ConfigStatusREQ: @ 82E2D6C - push {lr} - movs r0, 0x15 - bl STWI_init - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - bne _082E2D86 - ldr r0, _082E2D8C - ldr r0, [r0] - strb r1, [r0, 0x4] - bl STWI_start_Command -_082E2D86: - pop {r0} - bx r0 - .align 2, 0 -_082E2D8C: .4byte gUnknown_03007868 - thumb_func_end STWI_send_ConfigStatusREQ - - thumb_func_start STWI_send_GameConfigREQ -STWI_send_GameConfigREQ: @ 82E2D90 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x16 - bl STWI_init - lsls r0, 16 - cmp r0, 0 - bne _082E2DDC - ldr r2, _082E2DE4 - ldr r1, [r2] - movs r0, 0x6 - strb r0, [r1, 0x4] - ldr r0, [r2] - ldr r1, [r0, 0x24] - adds r1, 0x4 - ldrh r0, [r4] - strh r0, [r1] - adds r1, 0x2 - adds r4, 0x2 - movs r2, 0xD -_082E2DBA: - ldrb r0, [r4] - strb r0, [r1] - adds r1, 0x1 - adds r4, 0x1 - subs r2, 0x1 - cmp r2, 0 - bge _082E2DBA - movs r2, 0x7 -_082E2DCA: - ldrb r0, [r5] - strb r0, [r1] - adds r1, 0x1 - adds r5, 0x1 - subs r2, 0x1 - cmp r2, 0 - bge _082E2DCA - bl STWI_start_Command -_082E2DDC: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_082E2DE4: .4byte gUnknown_03007868 - thumb_func_end STWI_send_GameConfigREQ - - thumb_func_start STWI_send_SystemConfigREQ -STWI_send_SystemConfigREQ: @ 82E2DE8 - push {r4-r6,lr} - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 24 - lsrs r4, r2, 24 - movs r0, 0x17 - bl STWI_init - lsls r0, 16 - cmp r0, 0 - bne _082E2E1E - ldr r2, _082E2E24 - ldr r1, [r2] - movs r0, 0x1 - strb r0, [r1, 0x4] - ldr r0, [r2] - ldr r0, [r0, 0x24] - adds r0, 0x4 - strb r4, [r0] - adds r0, 0x1 - strb r5, [r0] - adds r0, 0x1 - strh r6, [r0] - bl STWI_start_Command -_082E2E1E: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_082E2E24: .4byte gUnknown_03007868 - thumb_func_end STWI_send_SystemConfigREQ - - thumb_func_start STWI_send_SC_StartREQ -STWI_send_SC_StartREQ: @ 82E2E28 - push {lr} - movs r0, 0x19 - bl STWI_init - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - bne _082E2E42 - ldr r0, _082E2E48 - ldr r0, [r0] - strb r1, [r0, 0x4] - bl STWI_start_Command -_082E2E42: - pop {r0} - bx r0 - .align 2, 0 -_082E2E48: .4byte gUnknown_03007868 - thumb_func_end STWI_send_SC_StartREQ - - thumb_func_start STWI_send_SC_PollingREQ -STWI_send_SC_PollingREQ: @ 82E2E4C - push {lr} - movs r0, 0x1A - bl STWI_init - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - bne _082E2E66 - ldr r0, _082E2E6C - ldr r0, [r0] - strb r1, [r0, 0x4] - bl STWI_start_Command -_082E2E66: - pop {r0} - bx r0 - .align 2, 0 -_082E2E6C: .4byte gUnknown_03007868 - thumb_func_end STWI_send_SC_PollingREQ - - thumb_func_start STWI_send_SC_EndREQ -STWI_send_SC_EndREQ: @ 82E2E70 - push {lr} - movs r0, 0x1B - bl STWI_init - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - bne _082E2E8A - ldr r0, _082E2E90 - ldr r0, [r0] - strb r1, [r0, 0x4] - bl STWI_start_Command -_082E2E8A: - pop {r0} - bx r0 - .align 2, 0 -_082E2E90: .4byte gUnknown_03007868 - thumb_func_end STWI_send_SC_EndREQ - - thumb_func_start STWI_send_SP_StartREQ -STWI_send_SP_StartREQ: @ 82E2E94 - push {lr} - movs r0, 0x1C - bl STWI_init - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - bne _082E2EAE - ldr r0, _082E2EB4 - ldr r0, [r0] - strb r1, [r0, 0x4] - bl STWI_start_Command -_082E2EAE: - pop {r0} - bx r0 - .align 2, 0 -_082E2EB4: .4byte gUnknown_03007868 - thumb_func_end STWI_send_SP_StartREQ - - thumb_func_start STWI_send_SP_PollingREQ -STWI_send_SP_PollingREQ: @ 82E2EB8 - push {lr} - movs r0, 0x1D - bl STWI_init - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - bne _082E2ED2 - ldr r0, _082E2ED8 - ldr r0, [r0] - strb r1, [r0, 0x4] - bl STWI_start_Command -_082E2ED2: - pop {r0} - bx r0 - .align 2, 0 -_082E2ED8: .4byte gUnknown_03007868 - thumb_func_end STWI_send_SP_PollingREQ - - thumb_func_start STWI_send_SP_EndREQ -STWI_send_SP_EndREQ: @ 82E2EDC - push {lr} - movs r0, 0x1E - bl STWI_init - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - bne _082E2EF6 - ldr r0, _082E2EFC - ldr r0, [r0] - strb r1, [r0, 0x4] - bl STWI_start_Command -_082E2EF6: - pop {r0} - bx r0 - .align 2, 0 -_082E2EFC: .4byte gUnknown_03007868 - thumb_func_end STWI_send_SP_EndREQ - - thumb_func_start STWI_send_CP_StartREQ -STWI_send_CP_StartREQ: @ 82E2F00 - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0x1F - bl STWI_init - lsls r0, 16 - cmp r0, 0 - bne _082E2F24 - ldr r2, _082E2F2C - ldr r1, [r2] - movs r0, 0x1 - strb r0, [r1, 0x4] - ldr r0, [r2] - ldr r0, [r0, 0x24] - str r4, [r0, 0x4] - bl STWI_start_Command -_082E2F24: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_082E2F2C: .4byte gUnknown_03007868 - thumb_func_end STWI_send_CP_StartREQ - - thumb_func_start STWI_send_CP_PollingREQ -STWI_send_CP_PollingREQ: @ 82E2F30 - push {lr} - movs r0, 0x20 - bl STWI_init - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - bne _082E2F4A - ldr r0, _082E2F50 - ldr r0, [r0] - strb r1, [r0, 0x4] - bl STWI_start_Command -_082E2F4A: - pop {r0} - bx r0 - .align 2, 0 -_082E2F50: .4byte gUnknown_03007868 - thumb_func_end STWI_send_CP_PollingREQ - - thumb_func_start STWI_send_CP_EndREQ -STWI_send_CP_EndREQ: @ 82E2F54 - push {lr} - movs r0, 0x21 - bl STWI_init - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - bne _082E2F6E - ldr r0, _082E2F74 - ldr r0, [r0] - strb r1, [r0, 0x4] - bl STWI_start_Command -_082E2F6E: - pop {r0} - bx r0 - .align 2, 0 -_082E2F74: .4byte gUnknown_03007868 - thumb_func_end STWI_send_CP_EndREQ - - thumb_func_start STWI_send_DataTxREQ -STWI_send_DataTxREQ: @ 82E2F78 - push {r4-r6,lr} - adds r6, r0, 0 - lsls r4, r1, 24 - lsrs r5, r4, 24 - movs r0, 0x24 - bl STWI_init - lsls r0, 16 - cmp r0, 0 - bne _082E2FB6 - lsrs r2, r4, 26 - movs r0, 0x3 - ands r0, r5 - cmp r0, 0 - beq _082E2F98 - adds r2, 0x1 -_082E2F98: - ldr r1, _082E2FBC - ldr r0, [r1] - strb r2, [r0, 0x4] - ldr r0, [r1] - ldr r1, [r0, 0x24] - adds r1, 0x4 - ldrb r2, [r0, 0x4] - movs r0, 0x80 - lsls r0, 19 - orrs r2, r0 - adds r0, r6, 0 - bl CpuSet - bl STWI_start_Command -_082E2FB6: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_082E2FBC: .4byte gUnknown_03007868 - thumb_func_end STWI_send_DataTxREQ - - thumb_func_start STWI_send_DataTxAndChangeREQ -STWI_send_DataTxAndChangeREQ: @ 82E2FC0 - push {r4-r6,lr} - adds r6, r0, 0 - lsls r4, r1, 24 - lsrs r5, r4, 24 - movs r0, 0x25 - bl STWI_init - lsls r0, 16 - cmp r0, 0 - bne _082E2FFE - lsrs r2, r4, 26 - movs r0, 0x3 - ands r0, r5 - cmp r0, 0 - beq _082E2FE0 - adds r2, 0x1 -_082E2FE0: - ldr r1, _082E3004 - ldr r0, [r1] - strb r2, [r0, 0x4] - ldr r0, [r1] - ldr r1, [r0, 0x24] - adds r1, 0x4 - ldrb r2, [r0, 0x4] - movs r0, 0x80 - lsls r0, 19 - orrs r2, r0 - adds r0, r6, 0 - bl CpuSet - bl STWI_start_Command -_082E2FFE: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_082E3004: .4byte gUnknown_03007868 - thumb_func_end STWI_send_DataTxAndChangeREQ - - thumb_func_start STWI_send_DataRxREQ -STWI_send_DataRxREQ: @ 82E3008 - push {lr} - movs r0, 0x26 - bl STWI_init - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - bne _082E3022 - ldr r0, _082E3028 - ldr r0, [r0] - strb r1, [r0, 0x4] - bl STWI_start_Command -_082E3022: - pop {r0} - bx r0 - .align 2, 0 -_082E3028: .4byte gUnknown_03007868 - thumb_func_end STWI_send_DataRxREQ - - thumb_func_start STWI_send_MS_ChangeREQ -STWI_send_MS_ChangeREQ: @ 82E302C - push {lr} - movs r0, 0x27 - bl STWI_init - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - bne _082E3046 - ldr r0, _082E304C - ldr r0, [r0] - strb r1, [r0, 0x4] - bl STWI_start_Command -_082E3046: - pop {r0} - bx r0 - .align 2, 0 -_082E304C: .4byte gUnknown_03007868 - thumb_func_end STWI_send_MS_ChangeREQ - - thumb_func_start STWI_send_DataReadyAndChangeREQ -STWI_send_DataReadyAndChangeREQ: @ 82E3050 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - movs r0, 0x28 - bl STWI_init - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0 - bne _082E3096 - cmp r4, 0 - bne _082E3078 - ldr r0, _082E3074 - ldr r0, [r0] - strb r3, [r0, 0x4] - b _082E3092 - .align 2, 0 -_082E3074: .4byte gUnknown_03007868 -_082E3078: - ldr r2, _082E309C - ldr r1, [r2] - movs r0, 0x1 - strb r0, [r1, 0x4] - ldr r0, [r2] - ldr r0, [r0, 0x24] - adds r0, 0x4 - strb r5, [r0] - adds r0, 0x1 - strb r3, [r0] - adds r0, 0x1 - strb r3, [r0] - strb r3, [r0, 0x1] -_082E3092: - bl STWI_start_Command -_082E3096: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_082E309C: .4byte gUnknown_03007868 - thumb_func_end STWI_send_DataReadyAndChangeREQ - - thumb_func_start STWI_send_DisconnectedAndChangeREQ -STWI_send_DisconnectedAndChangeREQ: @ 82E30A0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - movs r0, 0x29 - bl STWI_init - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0 - bne _082E30D6 - ldr r2, _082E30DC - ldr r1, [r2] - movs r0, 0x1 - strb r0, [r1, 0x4] - ldr r0, [r2] - ldr r0, [r0, 0x24] - adds r0, 0x4 - strb r4, [r0] - adds r0, 0x1 - strb r5, [r0] - adds r0, 0x1 - strb r3, [r0] - strb r3, [r0, 0x1] - bl STWI_start_Command -_082E30D6: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_082E30DC: .4byte gUnknown_03007868 - thumb_func_end STWI_send_DisconnectedAndChangeREQ - - thumb_func_start STWI_send_ResumeRetransmitAndChangeREQ -STWI_send_ResumeRetransmitAndChangeREQ: @ 82E30E0 - push {lr} - movs r0, 0x37 - bl STWI_init - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - bne _082E30FA - ldr r0, _082E3100 - ldr r0, [r0] - strb r1, [r0, 0x4] - bl STWI_start_Command -_082E30FA: - pop {r0} - bx r0 - .align 2, 0 -_082E3100: .4byte gUnknown_03007868 - thumb_func_end STWI_send_ResumeRetransmitAndChangeREQ - - thumb_func_start STWI_send_DisconnectREQ -STWI_send_DisconnectREQ: @ 82E3104 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x30 - bl STWI_init - lsls r0, 16 - cmp r0, 0 - bne _082E3128 - ldr r2, _082E3130 - ldr r1, [r2] - movs r0, 0x1 - strb r0, [r1, 0x4] - ldr r0, [r2] - ldr r0, [r0, 0x24] - str r4, [r0, 0x4] - bl STWI_start_Command -_082E3128: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_082E3130: .4byte gUnknown_03007868 - thumb_func_end STWI_send_DisconnectREQ - - thumb_func_start STWI_send_TestModeREQ -STWI_send_TestModeREQ: @ 82E3134 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - movs r0, 0x31 - bl STWI_init - lsls r0, 16 - cmp r0, 0 - bne _082E3160 - ldr r2, _082E3168 - ldr r1, [r2] - movs r0, 0x1 - strb r0, [r1, 0x4] - ldr r0, [r2] - ldr r1, [r0, 0x24] - lsls r0, r4, 8 - orrs r0, r5 - str r0, [r1, 0x4] - bl STWI_start_Command -_082E3160: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_082E3168: .4byte gUnknown_03007868 - thumb_func_end STWI_send_TestModeREQ - - thumb_func_start STWI_send_CPR_StartREQ -STWI_send_CPR_StartREQ: @ 82E316C - push {r4-r6,lr} - lsls r0, 16 - lsrs r5, r0, 16 - lsls r1, 16 - lsrs r4, r1, 16 - lsls r2, 24 - lsrs r6, r2, 24 - movs r0, 0x32 - bl STWI_init - lsls r0, 16 - cmp r0, 0 - bne _082E319E - ldr r2, _082E31A4 - ldr r1, [r2] - movs r0, 0x2 - strb r0, [r1, 0x4] - lsls r0, r5, 16 - orrs r0, r4 - ldr r1, [r2] - ldr r1, [r1, 0x24] - str r0, [r1, 0x4] - str r6, [r1, 0x8] - bl STWI_start_Command -_082E319E: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_082E31A4: .4byte gUnknown_03007868 - thumb_func_end STWI_send_CPR_StartREQ - - thumb_func_start STWI_send_CPR_PollingREQ -STWI_send_CPR_PollingREQ: @ 82E31A8 - push {lr} - movs r0, 0x33 - bl STWI_init - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - bne _082E31C2 - ldr r0, _082E31C8 - ldr r0, [r0] - strb r1, [r0, 0x4] - bl STWI_start_Command -_082E31C2: - pop {r0} - bx r0 - .align 2, 0 -_082E31C8: .4byte gUnknown_03007868 - thumb_func_end STWI_send_CPR_PollingREQ - - thumb_func_start STWI_send_CPR_EndREQ -STWI_send_CPR_EndREQ: @ 82E31CC - push {lr} - movs r0, 0x34 - bl STWI_init - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - bne _082E31E6 - ldr r0, _082E31EC - ldr r0, [r0] - strb r1, [r0, 0x4] - bl STWI_start_Command -_082E31E6: - pop {r0} - bx r0 - .align 2, 0 -_082E31EC: .4byte gUnknown_03007868 - thumb_func_end STWI_send_CPR_EndREQ - - thumb_func_start STWI_send_StopModeREQ -STWI_send_StopModeREQ: @ 82E31F0 - push {lr} - movs r0, 0x3D - bl STWI_init - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - bne _082E320A - ldr r0, _082E3210 - ldr r0, [r0] - strb r1, [r0, 0x4] - bl STWI_start_Command -_082E320A: - pop {r0} - bx r0 - .align 2, 0 -_082E3210: .4byte gUnknown_03007868 - thumb_func_end STWI_send_StopModeREQ - - thumb_func_start STWI_intr_timer -STWI_intr_timer: @ 82E3214 - push {r4,lr} - ldr r4, _082E322C - ldr r1, [r4] - ldr r0, [r1, 0xC] - cmp r0, 0x2 - beq _082E323A - cmp r0, 0x2 - bgt _082E3230 - cmp r0, 0x1 - beq _082E3248 - b _082E3270 - .align 2, 0 -_082E322C: .4byte gUnknown_03007868 -_082E3230: - cmp r0, 0x3 - beq _082E3252 - cmp r0, 0x4 - beq _082E3248 - b _082E3270 -_082E323A: - ldrb r0, [r1, 0x10] - movs r0, 0x1 - strb r0, [r1, 0x10] - movs r0, 0x32 - bl STWI_set_timer - b _082E3270 -_082E3248: - bl STWI_stop_timer - bl STWI_restart_Command - b _082E3270 -_082E3252: - ldrb r0, [r1, 0x10] - movs r0, 0x1 - strb r0, [r1, 0x10] - bl STWI_stop_timer - bl STWI_reset_ClockCounter - ldr r0, [r4] - ldr r2, [r0, 0x18] - cmp r2, 0 - beq _082E3270 - movs r0, 0xFF - movs r1, 0 - bl _call_via_r2 -_082E3270: - pop {r4} - pop {r0} - bx r0 - thumb_func_end STWI_intr_timer - - thumb_func_start STWI_set_timer -STWI_set_timer: @ 82E3278 - push {r4-r7,lr} - lsls r0, 24 - lsrs r3, r0, 24 - adds r5, r3, 0 - ldr r2, _082E32A8 - ldr r0, [r2] - ldrb r0, [r0, 0xA] - lsls r0, 2 - ldr r1, _082E32AC - adds r4, r0, r1 - adds r1, 0x2 - adds r7, r0, r1 - ldr r1, _082E32B0 - movs r0, 0 - strh r0, [r1] - adds r6, r2, 0 - cmp r3, 0x50 - beq _082E32D0 - cmp r3, 0x50 - bgt _082E32B4 - cmp r3, 0x32 - beq _082E32BE - b _082E32FC - .align 2, 0 -_082E32A8: .4byte gUnknown_03007868 -_082E32AC: .4byte 0x04000100 -_082E32B0: .4byte 0x04000208 -_082E32B4: - cmp r5, 0x64 - beq _082E32E0 - cmp r5, 0x82 - beq _082E32F0 - b _082E32FC -_082E32BE: - ldr r1, _082E32CC - adds r0, r1, 0 - strh r0, [r4] - ldr r1, [r6] - movs r0, 0x1 - b _082E32FA - .align 2, 0 -_082E32CC: .4byte 0x0000fccb -_082E32D0: - ldr r1, _082E32DC - adds r0, r1, 0 - strh r0, [r4] - ldr r1, [r6] - movs r0, 0x2 - b _082E32FA - .align 2, 0 -_082E32DC: .4byte 0x0000fae0 -_082E32E0: - ldr r1, _082E32EC - adds r0, r1, 0 - strh r0, [r4] - ldr r1, [r6] - movs r0, 0x3 - b _082E32FA - .align 2, 0 -_082E32EC: .4byte 0x0000f996 -_082E32F0: - ldr r1, _082E3318 - adds r0, r1, 0 - strh r0, [r4] - ldr r1, [r6] - movs r0, 0x4 -_082E32FA: - str r0, [r1, 0xC] -_082E32FC: - movs r0, 0xC3 - strh r0, [r7] - ldr r2, _082E331C - ldr r1, [r6] - movs r0, 0x8 - ldrb r1, [r1, 0xA] - lsls r0, r1 - strh r0, [r2] - ldr r1, _082E3320 - movs r0, 0x1 - strh r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_082E3318: .4byte 0x0000f7ad -_082E331C: .4byte 0x04000202 -_082E3320: .4byte 0x04000208 - thumb_func_end STWI_set_timer - - thumb_func_start STWI_stop_timer -STWI_stop_timer: @ 82E3324 - ldr r2, _082E3344 - ldr r0, [r2] - movs r1, 0 - str r1, [r0, 0xC] - ldrb r0, [r0, 0xA] - lsls r0, 2 - ldr r3, _082E3348 - adds r0, r3 - strh r1, [r0] - ldr r0, [r2] - ldrb r0, [r0, 0xA] - lsls r0, 2 - ldr r2, _082E334C - adds r0, r2 - strh r1, [r0] - bx lr - .align 2, 0 -_082E3344: .4byte gUnknown_03007868 -_082E3348: .4byte 0x04000100 -_082E334C: .4byte 0x04000102 - thumb_func_end STWI_stop_timer - - thumb_func_start STWI_init -STWI_init: @ 82E3350 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - ldr r0, _082E337C - ldrh r0, [r0] - cmp r0, 0 - bne _082E3384 - ldr r0, _082E3380 - ldr r1, [r0] - ldrh r0, [r1, 0x12] - movs r0, 0x6 - strh r0, [r1, 0x12] - ldr r2, [r1, 0x18] - cmp r2, 0 - beq _082E33CE - ldrh r1, [r1, 0x12] - adds r0, r5, 0 - bl _call_via_r2 - b _082E33CE - .align 2, 0 -_082E337C: .4byte 0x04000208 -_082E3380: .4byte gUnknown_03007868 -_082E3384: - ldr r4, _082E33B0 - ldr r2, [r4] - adds r3, r2, 0 - adds r3, 0x2C - ldrb r0, [r3] - cmp r0, 0x1 - bne _082E33B4 - ldrh r0, [r2, 0x12] - movs r1, 0 - movs r0, 0x2 - strh r0, [r2, 0x12] - ldrb r0, [r3] - strb r1, [r3] - ldr r0, [r4] - ldr r2, [r0, 0x18] - cmp r2, 0 - beq _082E33CE - ldrh r1, [r0, 0x12] - adds r0, r5, 0 - bl _call_via_r2 - b _082E33CE - .align 2, 0 -_082E33B0: .4byte gUnknown_03007868 -_082E33B4: - ldrb r0, [r2, 0x14] - cmp r0, 0 - bne _082E33D2 - ldrh r0, [r2, 0x12] - movs r0, 0x4 - strh r0, [r2, 0x12] - ldr r3, [r2, 0x18] - cmp r3, 0 - beq _082E33CE - ldrh r1, [r2, 0x12] - adds r0, r5, 0 - bl _call_via_r3 -_082E33CE: - movs r0, 0x1 - b _082E341A -_082E33D2: - ldrb r0, [r3] - movs r1, 0 - movs r0, 0x1 - strb r0, [r3] - ldr r0, [r4] - strb r6, [r0, 0x6] - ldr r0, [r4] - str r1, [r0] - strb r1, [r0, 0x4] - ldr r0, [r4] - strb r1, [r0, 0x5] - ldr r0, [r4] - strb r1, [r0, 0x7] - ldr r0, [r4] - strb r1, [r0, 0x8] - ldr r0, [r4] - strb r1, [r0, 0x9] - ldr r0, [r4] - str r1, [r0, 0xC] - ldrb r2, [r0, 0x10] - strb r1, [r0, 0x10] - ldr r0, [r4] - ldrh r2, [r0, 0x12] - movs r2, 0 - strh r1, [r0, 0x12] - strb r2, [r0, 0x15] - ldr r1, _082E3420 - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0xC - ldr r2, _082E3424 - adds r0, r2, 0 - strh r0, [r1] - movs r0, 0 -_082E341A: - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_082E3420: .4byte 0x04000134 -_082E3424: .4byte 0x00005003 - thumb_func_end STWI_init - - thumb_func_start STWI_start_Command -STWI_start_Command: @ 82E3428 - push {r4,r5,lr} - ldr r5, _082E3480 - ldr r0, [r5] - ldr r3, [r0, 0x24] - ldrb r1, [r0, 0x4] - lsls r1, 8 - ldrb r0, [r0, 0x6] - ldr r2, _082E3484 - orrs r0, r2 - orrs r1, r0 - str r1, [r3] - ldr r2, _082E3488 - ldr r1, [r5] - ldr r0, [r1, 0x24] - ldr r0, [r0] - str r0, [r2] - movs r2, 0 - str r2, [r1] - movs r0, 0x1 - strb r0, [r1, 0x5] - ldr r4, _082E348C - ldrh r3, [r4] - strh r2, [r4] - ldr r2, _082E3490 - ldr r1, [r5] - movs r0, 0x8 - ldrb r1, [r1, 0xA] - lsls r0, r1 - ldrh r1, [r2] - orrs r0, r1 - strh r0, [r2] - ldrh r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strh r0, [r2] - strh r3, [r4] - ldr r1, _082E3494 - ldr r2, _082E3498 - adds r0, r2, 0 - strh r0, [r1] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_082E3480: .4byte gUnknown_03007868 -_082E3484: .4byte 0x99660000 -_082E3488: .4byte 0x04000120 -_082E348C: .4byte 0x04000208 -_082E3490: .4byte 0x04000200 -_082E3494: .4byte 0x04000128 -_082E3498: .4byte 0x00005083 - thumb_func_end STWI_start_Command - - thumb_func_start STWI_restart_Command -STWI_restart_Command: @ 82E349C - push {r4,lr} - ldr r4, _082E34B4 - ldr r2, [r4] - ldrb r0, [r2, 0x15] - adds r3, r4, 0 - cmp r0, 0x1 - bhi _082E34B8 - adds r0, 0x1 - strb r0, [r2, 0x15] - bl STWI_start_Command - b _082E3512 - .align 2, 0 -_082E34B4: .4byte gUnknown_03007868 -_082E34B8: - ldrb r0, [r2, 0x6] - cmp r0, 0x27 - beq _082E34CA - cmp r0, 0x25 - beq _082E34CA - cmp r0, 0x35 - beq _082E34CA - cmp r0, 0x37 - bne _082E34EC -_082E34CA: - ldr r0, [r3] - ldrh r1, [r0, 0x12] - movs r2, 0 - movs r1, 0x1 - strh r1, [r0, 0x12] - adds r0, 0x2C - ldrb r1, [r0] - strb r2, [r0] - ldr r1, [r3] - ldr r2, [r1, 0x18] - cmp r2, 0 - beq _082E3512 - ldrb r0, [r1, 0x6] - ldrh r1, [r1, 0x12] - bl _call_via_r2 - b _082E3512 -_082E34EC: - ldrh r0, [r2, 0x12] - movs r1, 0 - movs r0, 0x1 - strh r0, [r2, 0x12] - adds r0, r2, 0 - adds r0, 0x2C - ldrb r2, [r0] - strb r1, [r0] - ldr r1, [r4] - ldr r2, [r1, 0x18] - cmp r2, 0 - beq _082E350C - ldrb r0, [r1, 0x6] - ldrh r1, [r1, 0x12] - bl _call_via_r2 -_082E350C: - ldr r1, [r4] - movs r0, 0x4 - str r0, [r1] -_082E3512: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end STWI_restart_Command - - thumb_func_start STWI_reset_ClockCounter -STWI_reset_ClockCounter: @ 82E351C - ldr r3, _082E3548 - ldr r1, [r3] - movs r0, 0x5 - str r0, [r1] - movs r2, 0 - strb r2, [r1, 0x4] - ldr r0, [r3] - strb r2, [r0, 0x5] - ldr r1, _082E354C - movs r0, 0x80 - lsls r0, 24 - str r0, [r1] - adds r1, 0x8 - strh r2, [r1] - ldr r2, _082E3550 - adds r0, r2, 0 - strh r0, [r1] - adds r2, 0x7F - adds r0, r2, 0 - strh r0, [r1] - movs r0, 0 - bx lr - .align 2, 0 -_082E3548: .4byte gUnknown_03007868 -_082E354C: .4byte 0x04000120 -_082E3550: .4byte 0x00005003 - thumb_func_end STWI_reset_ClockCounter - - arm_func_start IntrSIO32 -IntrSIO32: @ 82E3554 - mov r12, sp - stmdb sp!, {r11,r12,lr,pc} - ldr r3, _082E35B4 - ldr r0, [r3] - ldr r2, [r0] - sub r11, r12, 0x4 - cmp r2, 0xA - bne _082E3590 - ldr r0, [r0, 0x20] - cmp r0, 0 - ldmdbeq r11, {r11,sp,lr} - bxeq lr - bl sub_82E3EB0 - ldmdb r11, {r11,sp,lr} - bx lr -_082E3590: - ldrb r3, [r0, 0x14] - cmp r3, 0x1 - bne _082E35A8 - bl sio32intr_clock_master - ldmdb r11, {r11,sp,lr} - bx lr -_082E35A8: - bl sio32intr_clock_slave - ldmdb r11, {r11,sp,lr} - bx lr - .align 2, 0 -_082E35B4: .4byte gUnknown_03007868 - arm_func_end IntrSIO32 - - arm_func_start sio32intr_clock_master -sio32intr_clock_master: @ 82E35B8 - mov r12, sp - stmdb sp!, {r4-r6,r11,r12,lr,pc} - mov r0, 0x50 - sub r11, r12, 0x4 - bl STWI_set_timer_in_RAM - mov r4, 0x120 - ldr r2, _082E382C - add r4, r4, 0x4000000 - ldr lr, [r4] - ldr r12, [r2] - ldr r3, [r12] - mov r6, r2 - cmp r3, 0 - bne _082E3638 - cmp lr, 0x80000000 - bne _082E36B8 - ldrb r2, [r12, 0x5] - ldrb r3, [r12, 0x4] - cmp r2, r3 - bhi _082E3628 - ldr r3, [r12, 0x24] - mov r1, r2 - ldr r2, [r3, r1, lsl 2] - str r2, [r4] - ldrb r3, [r12, 0x5] - add r3, r3, 0x1 - strb r3, [r12, 0x5] - b _082E3714 -_082E3628: - mov r3, 0x1 - str r3, [r12] - str lr, [r4] - b _082E3714 -_082E3638: - ldr r3, [r12] - cmp r3, 0x1 - bne _082E36C8 - mov r3, 0x99000000 - add r3, r3, 0x660000 - mov r5, 0x80000000 - and r2, lr, r5, asr 15 - cmp r2, r3 - bne _082E36B8 - mov r3, 0 - strb r3, [r12, 0x8] - ldr r1, [r6] - ldrb r0, [r1, 0x8] - ldr r2, [r1, 0x28] - str lr, [r2, r0, lsl 2] - ldrb r3, [r1, 0x8] - add r3, r3, 0x1 - strb r3, [r1, 0x8] - ldr r2, [r6] - strb lr, [r2, 0x9] - ldr r3, [r6] - mov r2, lr, lsr 8 - strb r2, [r3, 0x7] - ldr r1, [r6] - ldrb r2, [r1, 0x7] - ldrb r3, [r1, 0x8] - cmp r2, r3 - bcc _082E3700 - mov r3, 0x2 - str r3, [r1] - str r5, [r4] - b _082E3714 -_082E36B8: - bl STWI_stop_timer_in_RAM - mov r0, 0x82 - bl STWI_set_timer_in_RAM - b _082E3840 -_082E36C8: - ldr r3, [r12] - cmp r3, 0x2 - bne _082E3714 - ldrb r1, [r12, 0x8] - ldr r2, [r12, 0x28] - str lr, [r2, r1, lsl 2] - ldrb r3, [r12, 0x8] - add r3, r3, 0x1 - strb r3, [r12, 0x8] - ldr r1, [r6] - ldrb r2, [r1, 0x7] - ldrb r3, [r1, 0x8] - cmp r2, r3 - bcs _082E370C -_082E3700: - mov r3, 0x3 - str r3, [r1] - b _082E3714 -_082E370C: - mov r3, 0x80000000 - str r3, [r4] -_082E3714: - mov r0, 0x1 - bl handshake_wait - mov r0, r0, lsl 16 - cmp r0, 0x10000 - beq _082E3840 - mov r4, 0x128 - add r4, r4, 0x4000000 - mov r5, 0x5000 - add r3, r5, 0xB - strh r3, [r4] - mov r0, 0 - bl handshake_wait - mov r0, r0, lsl 16 - cmp r0, 0x10000 - beq _082E3840 - bl STWI_stop_timer_in_RAM - ldr r1, [r6] - ldr r0, [r1] - cmp r0, 0x3 - bne _082E3830 - ldrb r3, [r1, 0x9] - cmp r3, 0xA5 - cmpne r3, 0xA7 - beq _082E3788 - and r3, r3, 0xFF - cmp r3, 0xB5 - beq _082E3788 - cmp r3, 0xB7 - bne _082E37D0 -_082E3788: - mov r1, 0x120 - add r1, r1, 0x4000000 - mov r12, 0x128 - add r12, r12, 0x4000000 - ldr r0, [r6] - mov r3, 0 - strb r3, [r0, 0x14] - mov r2, 0x80000000 - str r2, [r1] - add r3, r3, 0x5000 - add r2, r3, 0x2 - strh r2, [r12] - add r3, r3, 0x82 - strh r3, [r12] - ldr r2, [r6] - mov r3, 0x5 - str r3, [r2] - b _082E3800 -_082E37D0: - cmp r3, 0xEE - bne _082E37F0 - add r3, r5, 0x3 - strh r3, [r4] - mov r2, 0x4 - str r2, [r1] - strh r0, [r1, 0x12] - b _082E3800 -_082E37F0: - add r3, r5, 0x3 - strh r3, [r4] - mov r2, 0x4 - str r2, [r1] -_082E3800: - ldr r2, [r6] - mov r3, 0 - strb r3, [r2, 0x2C] - ldr r0, [r6] - ldr r2, [r0, 0x18] - cmp r2, r3 - beq _082E3840 - ldrh r1, [r0, 0x12] - ldrb r0, [r0, 0x6] - bl sub_82E3EA8 - b _082E3840 - .align 2, 0 -_082E382C: .4byte gUnknown_03007868 -_082E3830: - add r3, r5, 0x3 - strh r3, [r4] - add r2, r5, 0x83 - strh r2, [r4] -_082E3840: - ldmdb r11, {r4-r6,r11,sp,lr} - bx lr - arm_func_end sio32intr_clock_master - - arm_func_start sio32intr_clock_slave -sio32intr_clock_slave: @ 82E3848 - mov r12, sp - stmdb sp!, {r4-r6,r11,r12,lr,pc} - ldr r4, _082E3BF4 - mov r0, 0x64 - ldr r3, [r4] - mov r6, 0 - strb r6, [r3, 0x10] - sub r11, r12, 0x4 - bl STWI_set_timer_in_RAM - mov r0, r6 - bl handshake_wait - mov r0, r0, lsl 16 - cmp r0, 0x10000 - mov r5, r4 - beq _082E3C4C - mov r3, 0x128 - add r3, r3, 0x4000000 - mov r2, 0x5000 - add r2, r2, 0xA - strh r2, [r3] - mov lr, 0x120 - ldr r0, [r5] - add lr, lr, 0x4000000 - ldr r12, [lr] - ldr r3, [r0] - cmp r3, 0x5 - bne _082E3978 - ldr r3, [r0, 0x28] - mov r4, 0x1 - mov r0, 0x99000000 - str r12, [r3] - add r0, r0, 0x660000 - ldr r2, [r5] - mov r3, r0, lsr 16 - strb r4, [r2, 0x5] - cmp r3, r12, lsr 16 - bne _082E3AC4 - ldr r3, [r5] - mov r2, r12, lsr 8 - strb r2, [r3, 0x4] - ldr r2, [r5] - strb r12, [r2, 0x6] - ldr r1, [r5] - ldrb r3, [r1, 0x4] - cmp r3, r6 - bne _082E395C - ldrb r2, [r1, 0x6] - sub r3, r2, 0x27 - cmp r2, 0x36 - cmpne r3, 0x2 - bhi _082E3930 - add r3, r2, 0x80 - strb r3, [r1, 0x9] - ldr r2, [r5] - ldrb r3, [r2, 0x9] - ldr r1, [r2, 0x24] - add r3, r3, r0 - b _082E39E0 -_082E3930: - ldr r2, [r1, 0x24] - ldr r3, _082E3BF8 - str r3, [r2] - ldr r2, [r5] - ldrb r3, [r2, 0x6] - sub r3, r3, 0x10 - cmp r3, 0x2D - bhi _082E3A18 - ldr r3, [r2, 0x24] - str r4, [r3, 0x4] - b _082E3A24 -_082E395C: - mov r3, 0x80000000 - str r3, [lr] - strb r4, [r1, 0x5] - ldr r2, [r5] - add r3, r3, 0x80000006 - str r3, [r2] - b _082E3AD4 -_082E3978: - ldr r3, [r0] - cmp r3, 0x6 - bne _082E3A78 - ldrb r1, [r0, 0x5] - ldr r2, [r0, 0x28] - str r12, [r2, r1, lsl 2] - ldrb r3, [r0, 0x5] - add r3, r3, 0x1 - strb r3, [r0, 0x5] - ldr r1, [r5] - ldrb r2, [r1, 0x4] - ldrb r3, [r1, 0x5] - cmp r2, r3 - bcs _082E3A6C - ldrb r2, [r1, 0x6] - sub r3, r2, 0x28 - cmp r2, 0x36 - cmpne r3, 0x1 - bhi _082E39F0 - add r3, r2, 0x80 - strb r3, [r1, 0x9] - ldr r2, [r5] - ldrb r3, [r2, 0x9] - ldr r1, [r2, 0x24] - orr r3, r3, 0x99000000 - orr r3, r3, 0x660000 -_082E39E0: - str r3, [r1] - ldr r2, [r5] - strb r6, [r2, 0x7] - b _082E3A3C -_082E39F0: - ldr r2, [r1, 0x24] - ldr r3, _082E3BF8 - str r3, [r2] - ldr r2, [r5] - ldrb r3, [r2, 0x6] - sub r3, r3, 0x10 - cmp r3, 0x2D - ldrls r2, [r2, 0x24] - movls r3, 0x1 - bls _082E3A20 -_082E3A18: - ldr r2, [r2, 0x24] - mov r3, 0x2 -_082E3A20: - str r3, [r2, 0x4] -_082E3A24: - ldr r2, [r5] - mov r3, 0x1 - strb r3, [r2, 0x7] - ldr r1, [r5] - add r3, r3, 0x2 - strh r3, [r1, 0x12] -_082E3A3C: - ldr r0, [r5] - ldr r2, [r0, 0x24] - mov r3, 0x120 - ldr r1, [r2] - add r3, r3, 0x4000000 - str r1, [r3] - mov r2, 0x1 - strb r2, [r0, 0x8] - ldr r1, [r5] - mov r3, 0x7 - str r3, [r1] - b _082E3AD4 -_082E3A6C: - mov r3, 0x80000000 - str r3, [lr] - b _082E3AD4 -_082E3A78: - ldr r3, [r0] - cmp r3, 0x7 - bne _082E3AD4 - cmp r12, 0x80000000 - bne _082E3AC4 - ldrb r2, [r0, 0x7] - ldrb r3, [r0, 0x8] - cmp r2, r3 - movcc r3, 0x8 - strcc r3, [r0] - bcc _082E3AD4 - ldrb r1, [r0, 0x8] - ldr r3, [r0, 0x24] - ldr r2, [r3, r1, lsl 2] - str r2, [lr] - ldrb r3, [r0, 0x8] - add r3, r3, 0x1 - strb r3, [r0, 0x8] - b _082E3AD4 -_082E3AC4: - bl STWI_stop_timer_in_RAM - mov r0, 0x64 - bl STWI_set_timer_in_RAM - b _082E3C4C -_082E3AD4: - mov r0, 0x1 - bl handshake_wait - mov r0, r0, lsl 16 - cmp r0, 0x10000 - beq _082E3C4C - mov r6, r5 - ldr r3, [r6] - ldr r2, [r3] - cmp r2, 0x8 - bne _082E3B9C - mov r4, 0x128 - add r4, r4, 0x4000000 - mov r3, 0x5000 - add r3, r3, 0x2 - strh r3, [r4] - bl STWI_stop_timer_in_RAM - ldr r0, [r6] - ldrh r3, [r0, 0x12] - cmp r3, 0x3 - bne _082E3B48 - bl STWI_init_slave - ldr r3, [r6] - ldr r1, [r3, 0x1C] - cmp r1, 0 - beq _082E3C4C - mov r0, 0x1EC - add r0, r0, 0x2 - bl sub_82E3EAC - b _082E3C4C -_082E3B48: - mov r3, 0x120 - add r3, r3, 0x4000000 - mov r1, 0 - str r1, [r3] - mov r2, 0x5000 - strh r1, [r4] - add r2, r2, 0x3 - strh r2, [r4] - mov r3, 0x1 - strb r3, [r0, 0x14] - ldr r0, [r5] - ldr r2, [r0, 0x1C] - str r1, [r0] - cmp r2, r1 - beq _082E3C4C - ldrb r3, [r0, 0x4] - ldrb r0, [r0, 0x6] - mov r1, r2 - orr r0, r0, r3, lsl 8 - bl sub_82E3EAC - b _082E3C4C -_082E3B9C: - mov r3, 0x208 - add r3, r3, 0x4000000 - mov r2, 0 - strh r2, [r3] - mov r1, 0x100 - add r2, r1, 0x4000002 - ldrh r3, [r2] - tst r3, 0x80 - beq _082E3C20 - ldrh r3, [r2] - tst r3, 0x3 - bne _082E3BFC - mov r2, 0xFF00 - add r1, r1, 0x4000000 - ldrh r3, [r1] - add r2, r2, 0x9B - cmp r3, r2 - bls _082E3C20 -_082E3BE4: - ldrh r3, [r1] - cmp r3, r2 - bhi _082E3BE4 - b _082E3C20 - .align 2, 0 -_082E3BF4: .4byte gUnknown_03007868 -_082E3BF8: .4byte 0x996601ee -_082E3BFC: - mov r2, 0xFF00 - add r1, r1, 0x4000000 - ldrh r3, [r1] - add r2, r2, 0xFE - cmp r3, r2 - bls _082E3C20 -_082E3C14: - ldrh r3, [r1] - cmp r3, r2 - bhi _082E3C14 -_082E3C20: - mov r1, 0x128 - add r1, r1, 0x4000000 - mov r0, 0x208 - add r0, r0, 0x4000000 - mov r3, 0x5000 - add r2, r3, 0x2 - strh r2, [r1] - add r3, r3, 0x82 - strh r3, [r1] - mov r2, 0x1 - strh r2, [r0] -_082E3C4C: - ldmdb r11, {r4-r6,r11,sp,lr} - bx lr - arm_func_end sio32intr_clock_slave - - arm_func_start handshake_wait -handshake_wait: @ 82E3C54 - mov r12, sp - stmdb sp!, {r11,r12,lr,pc} - mov r1, 0x128 - add r1, r1, 0x4000000 - mov r0, r0, lsl 16 - ldr r2, _082E3CB8 - sub r11, r12, 0x4 - mov lr, r0, lsr 14 - ldr r12, [r2] -_082E3C78: - ldrb r3, [r12, 0x10] - and r0, r3, 0xFF - cmp r0, 0x1 - beq _082E3CA4 - ldrh r3, [r1] - and r3, r3, 0x4 - cmp r3, lr - bne _082E3C78 - mov r0, 0 - ldmdb r11, {r11,sp,lr} - bx lr -_082E3CA4: - ldr r2, [r2] - mov r3, 0 - strb r3, [r2, 0x10] - ldmdb r11, {r11,sp,lr} - bx lr - .align 2, 0 -_082E3CB8: .4byte gUnknown_03007868 - arm_func_end handshake_wait - - arm_func_start STWI_set_timer_in_RAM -STWI_set_timer_in_RAM: @ 82E3CBC - mov r12, sp - stmdb sp!, {r4,r5,r11,r12,lr,pc} - mov r1, 0x208 - add r1, r1, 0x4000000 - mov r3, 0 - sub r11, r12, 0x4 - ldr r12, _082E3D74 - and lr, r0, 0xFF - ldr r2, [r12] - cmp lr, 0x50 - ldrb r0, [r2, 0xA] - mov r4, r12 - mov r2, lr - strh r3, [r1] - mov r0, r0, lsl 2 - add r3, r3, 0x100 - add r1, r3, 0x4000000 - add r3, r3, 0x4000002 - add r5, r0, r3 - beq _082E3D44 - bgt _082E3D1C - cmp lr, 0x32 - beq _082E3D30 - b _082E3D90 -_082E3D1C: - cmp r2, 0x64 - beq _082E3D5C - cmp r2, 0x82 - beq _082E3D78 - b _082E3D90 -_082E3D30: - mvn r3, 0x334 - strh r3, [r0, r1] - ldr r2, [r4] - mov r3, 0x1 - b _082E3D8C -_082E3D44: - mov r3, 0xAE000000 - mov r3, r3, asr 20 - strh r3, [r0, r1] - ldr r2, [r4] - mov r3, 0x2 - b _082E3D8C -_082E3D5C: - mvn r3, 0x660 - sub r3, r3, 0x9 - strh r3, [r0, r1] - ldr r2, [r4] - mov r3, 0x3 - b _082E3D8C - .align 2, 0 -_082E3D74: .4byte gUnknown_03007868 -_082E3D78: - mvn r3, 0x850 - sub r3, r3, 0x2 - strh r3, [r0, r1] - ldr r2, [r4] - mov r3, 0x4 -_082E3D8C: - str r3, [r2, 0xC] -_082E3D90: - mov r12, 0x200 - add r12, r12, 0x4000002 - mov r3, 0xC3 - strh r3, [r5] - mov r1, 0x208 - ldr r2, [r4] - add r1, r1, 0x4000000 - ldrb r0, [r2, 0xA] - sub r3, r3, 0xBB - mov r3, r3, lsl r0 - strh r3, [r12] - mov r2, 0x1 - strh r2, [r1] - ldmdb r11, {r4,r5,r11,sp,lr} - bx lr - arm_func_end STWI_set_timer_in_RAM - - arm_func_start STWI_stop_timer_in_RAM -STWI_stop_timer_in_RAM: @ 82E3DCC - mov r12, sp - stmdb sp!, {r11,r12,lr,pc} - mov r1, 0x100 - ldr lr, _082E3E18 - add r0, r1, 0x4000000 - ldr r2, [lr] - sub r11, r12, 0x4 - ldrb r3, [r2, 0xA] - mov r12, 0 - str r12, [r2, 0xC] - mov r3, r3, lsl 2 - strh r12, [r3, r0] - ldr r2, [lr] - ldrb r3, [r2, 0xA] - add r1, r1, 0x4000002 - mov r3, r3, lsl 2 - strh r12, [r3, r1] - ldmdb r11, {r11,sp,lr} - bx lr - .align 2, 0 -_082E3E18: .4byte gUnknown_03007868 - arm_func_end STWI_stop_timer_in_RAM - - arm_func_start STWI_init_slave -STWI_init_slave: @ 82E3E1C - mov r12, sp - stmdb sp!, {r11,r12,lr,pc} - ldr r0, _082E3EA4 - ldr r2, [r0] - mov r3, 0x5 - str r3, [r2] - mov r1, 0 - strb r1, [r2, 0x14] - ldr r3, [r0] - strb r1, [r3, 0x4] - ldr r2, [r0] - strb r1, [r2, 0x5] - ldr r3, [r0] - strb r1, [r3, 0x6] - ldr r2, [r0] - strb r1, [r2, 0x7] - ldr r3, [r0] - strb r1, [r3, 0x8] - ldr r2, [r0] - strb r1, [r2, 0x9] - ldr r3, [r0] - str r1, [r3, 0xC] - sub r11, r12, 0x4 - strb r1, [r3, 0x10] - mov r2, 0x128 - ldr r12, [r0] - add r2, r2, 0x4000000 - strh r1, [r12, 0x12] - mov r3, 0x5000 - strb r1, [r12, 0x15] - add r3, r3, 0x82 - strh r3, [r2] - ldmdb r11, {r11,sp,lr} - bx lr - .align 2, 0 -_082E3EA4: .4byte gUnknown_03007868 - arm_func_end STWI_init_slave - - arm_func_start sub_82E3EA8 -sub_82E3EA8: @ 82E3EA8 - bx r2 - arm_func_end sub_82E3EA8 - - arm_func_start sub_82E3EAC -sub_82E3EAC: @ 82E3EAC - bx r1 - arm_func_end sub_82E3EAC - - arm_func_start sub_82E3EB0 -sub_82E3EB0: @ 82E3EB0 - bx r0 - arm_func_end sub_82E3EB0 - thumb_func_start rfu_initializeAPI rfu_initializeAPI: @ 82E3EB4 push {r4-r7,lr} @@ -2838,7 +593,7 @@ rfu_REQ_stopMode: @ 82E42C4 b _082E4362 .align 2, 0 _082E42E4: .4byte 0x04000208 -_082E42E8: .4byte gUnknown_03007868 +_082E42E8: .4byte gRfuState _082E42EC: bl AgbRFU_SoftReset bl rfu_STC_clearAPIVariables @@ -2878,7 +633,7 @@ _082E432A: b _082E4362 .align 2, 0 _082E433C: .4byte 0x00008001 -_082E4340: .4byte gUnknown_03007868 +_082E4340: .4byte gRfuState _082E4344: .4byte 0x04000100 _082E4348: .4byte 0x0105ffff _082E434C: .4byte rfu_CB_stopMode @@ -3156,7 +911,7 @@ rfu_CB_configGameData: @ 82E4500 movs r0, 0x1 b _082E4552 .align 2, 0 -_082E4544: .4byte gUnknown_03007868 +_082E4544: .4byte gRfuState _082E4548: .4byte gUnknown_03007890 _082E454C: adds r1, r6, 0 @@ -4225,7 +1980,7 @@ _082E4D18: b _082E4D88 .align 2, 0 _082E4D20: .4byte gUnknown_03007890 -_082E4D24: .4byte gUnknown_03007868 +_082E4D24: .4byte gRfuState _082E4D28: .4byte gUnknown_03007894 _082E4D2C: .4byte gUnknown_03007898 _082E4D30: @@ -5195,7 +2950,7 @@ _082E547E: pop {r1} bx r1 .align 2, 0 -_082E5484: .4byte gUnknown_03007868 +_082E5484: .4byte gRfuState thumb_func_end rfu_getMasterSlave thumb_func_start rfu_clearAllSlot @@ -6506,7 +4261,7 @@ _082E5E12: _082E5E34: .4byte gUnknown_03007898 _082E5E38: .4byte gUnknown_03007894 _082E5E3C: .4byte gUnknown_03007890 -_082E5E40: .4byte gUnknown_03007868 +_082E5E40: .4byte gRfuState _082E5E44: ldr r0, _082E5E54 bl STWI_set_Callback_M @@ -8564,7 +6319,7 @@ _082E6D88: b _082E6DD6 .align 2, 0 _082E6DB4: .4byte 0x04000200 -_082E6DB8: .4byte gUnknown_03007868 +_082E6DB8: .4byte gRfuState _082E6DBC: .4byte sub_82E6F88 _082E6DC0: .4byte 0x04000100 _082E6DC4: @@ -8612,7 +6367,7 @@ _082E6E08: .align 2, 0 _082E6E14: .4byte 0x04000208 _082E6E18: .4byte 0x04000200 -_082E6E1C: .4byte gUnknown_03007868 +_082E6E1C: .4byte gRfuState thumb_func_end sub_82E6D6C thumb_func_start sub_82E6E20 @@ -8663,7 +6418,7 @@ sub_82E6E20: @ 82E6E20 .align 2, 0 _082E6E78: .4byte 0x04000208 _082E6E7C: .4byte 0x04000200 -_082E6E80: .4byte gUnknown_03007868 +_082E6E80: .4byte gRfuState _082E6E84: .4byte 0x04000134 _082E6E88: .4byte gUnknown_030078A0 _082E6E8C: .4byte 0x05000003 diff --git a/asm/librfu_intr.s b/asm/librfu_intr.s new file mode 100644 index 000000000..7f375e419 --- /dev/null +++ b/asm/librfu_intr.s @@ -0,0 +1,696 @@ + .include "asm/macros.inc" + + .syntax unified + + .text + + arm_func_start IntrSIO32 +IntrSIO32: @ 82E3554 + mov r12, sp + stmdb sp!, {r11,r12,lr,pc} + ldr r3, _082E35B4 + ldr r0, [r3] + ldr r2, [r0] + sub r11, r12, 0x4 + cmp r2, 0xA + bne _082E3590 + ldr r0, [r0, 0x20] + cmp r0, 0 + ldmdbeq r11, {r11,sp,lr} + bxeq lr + bl sub_82E3EB0 + ldmdb r11, {r11,sp,lr} + bx lr +_082E3590: + ldrb r3, [r0, 0x14] + cmp r3, 0x1 + bne _082E35A8 + bl sio32intr_clock_master + ldmdb r11, {r11,sp,lr} + bx lr +_082E35A8: + bl sio32intr_clock_slave + ldmdb r11, {r11,sp,lr} + bx lr + .align 2, 0 +_082E35B4: .4byte gRfuState + arm_func_end IntrSIO32 + + arm_func_start sio32intr_clock_master +sio32intr_clock_master: @ 82E35B8 + mov r12, sp + stmdb sp!, {r4-r6,r11,r12,lr,pc} + mov r0, 0x50 + sub r11, r12, 0x4 + bl STWI_set_timer_in_RAM + mov r4, 0x120 + ldr r2, _082E382C + add r4, r4, 0x4000000 + ldr lr, [r4] + ldr r12, [r2] + ldr r3, [r12] + mov r6, r2 + cmp r3, 0 + bne _082E3638 + cmp lr, 0x80000000 + bne _082E36B8 + ldrb r2, [r12, 0x5] + ldrb r3, [r12, 0x4] + cmp r2, r3 + bhi _082E3628 + ldr r3, [r12, 0x24] + mov r1, r2 + ldr r2, [r3, r1, lsl 2] + str r2, [r4] + ldrb r3, [r12, 0x5] + add r3, r3, 0x1 + strb r3, [r12, 0x5] + b _082E3714 +_082E3628: + mov r3, 0x1 + str r3, [r12] + str lr, [r4] + b _082E3714 +_082E3638: + ldr r3, [r12] + cmp r3, 0x1 + bne _082E36C8 + mov r3, 0x99000000 + add r3, r3, 0x660000 + mov r5, 0x80000000 + and r2, lr, r5, asr 15 + cmp r2, r3 + bne _082E36B8 + mov r3, 0 + strb r3, [r12, 0x8] + ldr r1, [r6] + ldrb r0, [r1, 0x8] + ldr r2, [r1, 0x28] + str lr, [r2, r0, lsl 2] + ldrb r3, [r1, 0x8] + add r3, r3, 0x1 + strb r3, [r1, 0x8] + ldr r2, [r6] + strb lr, [r2, 0x9] + ldr r3, [r6] + mov r2, lr, lsr 8 + strb r2, [r3, 0x7] + ldr r1, [r6] + ldrb r2, [r1, 0x7] + ldrb r3, [r1, 0x8] + cmp r2, r3 + bcc _082E3700 + mov r3, 0x2 + str r3, [r1] + str r5, [r4] + b _082E3714 +_082E36B8: + bl STWI_stop_timer_in_RAM + mov r0, 0x82 + bl STWI_set_timer_in_RAM + b _082E3840 +_082E36C8: + ldr r3, [r12] + cmp r3, 0x2 + bne _082E3714 + ldrb r1, [r12, 0x8] + ldr r2, [r12, 0x28] + str lr, [r2, r1, lsl 2] + ldrb r3, [r12, 0x8] + add r3, r3, 0x1 + strb r3, [r12, 0x8] + ldr r1, [r6] + ldrb r2, [r1, 0x7] + ldrb r3, [r1, 0x8] + cmp r2, r3 + bcs _082E370C +_082E3700: + mov r3, 0x3 + str r3, [r1] + b _082E3714 +_082E370C: + mov r3, 0x80000000 + str r3, [r4] +_082E3714: + mov r0, 0x1 + bl handshake_wait + mov r0, r0, lsl 16 + cmp r0, 0x10000 + beq _082E3840 + mov r4, 0x128 + add r4, r4, 0x4000000 + mov r5, 0x5000 + add r3, r5, 0xB + strh r3, [r4] + mov r0, 0 + bl handshake_wait + mov r0, r0, lsl 16 + cmp r0, 0x10000 + beq _082E3840 + bl STWI_stop_timer_in_RAM + ldr r1, [r6] + ldr r0, [r1] + cmp r0, 0x3 + bne _082E3830 + ldrb r3, [r1, 0x9] + cmp r3, 0xA5 + cmpne r3, 0xA7 + beq _082E3788 + and r3, r3, 0xFF + cmp r3, 0xB5 + beq _082E3788 + cmp r3, 0xB7 + bne _082E37D0 +_082E3788: + mov r1, 0x120 + add r1, r1, 0x4000000 + mov r12, 0x128 + add r12, r12, 0x4000000 + ldr r0, [r6] + mov r3, 0 + strb r3, [r0, 0x14] + mov r2, 0x80000000 + str r2, [r1] + add r3, r3, 0x5000 + add r2, r3, 0x2 + strh r2, [r12] + add r3, r3, 0x82 + strh r3, [r12] + ldr r2, [r6] + mov r3, 0x5 + str r3, [r2] + b _082E3800 +_082E37D0: + cmp r3, 0xEE + bne _082E37F0 + add r3, r5, 0x3 + strh r3, [r4] + mov r2, 0x4 + str r2, [r1] + strh r0, [r1, 0x12] + b _082E3800 +_082E37F0: + add r3, r5, 0x3 + strh r3, [r4] + mov r2, 0x4 + str r2, [r1] +_082E3800: + ldr r2, [r6] + mov r3, 0 + strb r3, [r2, 0x2C] + ldr r0, [r6] + ldr r2, [r0, 0x18] + cmp r2, r3 + beq _082E3840 + ldrh r1, [r0, 0x12] + ldrb r0, [r0, 0x6] + bl sub_82E3EA8 + b _082E3840 + .align 2, 0 +_082E382C: .4byte gRfuState +_082E3830: + add r3, r5, 0x3 + strh r3, [r4] + add r2, r5, 0x83 + strh r2, [r4] +_082E3840: + ldmdb r11, {r4-r6,r11,sp,lr} + bx lr + arm_func_end sio32intr_clock_master + + arm_func_start sio32intr_clock_slave +sio32intr_clock_slave: @ 82E3848 + mov r12, sp + stmdb sp!, {r4-r6,r11,r12,lr,pc} + ldr r4, _082E3BF4 + mov r0, 0x64 + ldr r3, [r4] + mov r6, 0 + strb r6, [r3, 0x10] + sub r11, r12, 0x4 + bl STWI_set_timer_in_RAM + mov r0, r6 + bl handshake_wait + mov r0, r0, lsl 16 + cmp r0, 0x10000 + mov r5, r4 + beq _082E3C4C + mov r3, 0x128 + add r3, r3, 0x4000000 + mov r2, 0x5000 + add r2, r2, 0xA + strh r2, [r3] + mov lr, 0x120 + ldr r0, [r5] + add lr, lr, 0x4000000 + ldr r12, [lr] + ldr r3, [r0] + cmp r3, 0x5 + bne _082E3978 + ldr r3, [r0, 0x28] + mov r4, 0x1 + mov r0, 0x99000000 + str r12, [r3] + add r0, r0, 0x660000 + ldr r2, [r5] + mov r3, r0, lsr 16 + strb r4, [r2, 0x5] + cmp r3, r12, lsr 16 + bne _082E3AC4 + ldr r3, [r5] + mov r2, r12, lsr 8 + strb r2, [r3, 0x4] + ldr r2, [r5] + strb r12, [r2, 0x6] + ldr r1, [r5] + ldrb r3, [r1, 0x4] + cmp r3, r6 + bne _082E395C + ldrb r2, [r1, 0x6] + sub r3, r2, 0x27 + cmp r2, 0x36 + cmpne r3, 0x2 + bhi _082E3930 + add r3, r2, 0x80 + strb r3, [r1, 0x9] + ldr r2, [r5] + ldrb r3, [r2, 0x9] + ldr r1, [r2, 0x24] + add r3, r3, r0 + b _082E39E0 +_082E3930: + ldr r2, [r1, 0x24] + ldr r3, _082E3BF8 + str r3, [r2] + ldr r2, [r5] + ldrb r3, [r2, 0x6] + sub r3, r3, 0x10 + cmp r3, 0x2D + bhi _082E3A18 + ldr r3, [r2, 0x24] + str r4, [r3, 0x4] + b _082E3A24 +_082E395C: + mov r3, 0x80000000 + str r3, [lr] + strb r4, [r1, 0x5] + ldr r2, [r5] + add r3, r3, 0x80000006 + str r3, [r2] + b _082E3AD4 +_082E3978: + ldr r3, [r0] + cmp r3, 0x6 + bne _082E3A78 + ldrb r1, [r0, 0x5] + ldr r2, [r0, 0x28] + str r12, [r2, r1, lsl 2] + ldrb r3, [r0, 0x5] + add r3, r3, 0x1 + strb r3, [r0, 0x5] + ldr r1, [r5] + ldrb r2, [r1, 0x4] + ldrb r3, [r1, 0x5] + cmp r2, r3 + bcs _082E3A6C + ldrb r2, [r1, 0x6] + sub r3, r2, 0x28 + cmp r2, 0x36 + cmpne r3, 0x1 + bhi _082E39F0 + add r3, r2, 0x80 + strb r3, [r1, 0x9] + ldr r2, [r5] + ldrb r3, [r2, 0x9] + ldr r1, [r2, 0x24] + orr r3, r3, 0x99000000 + orr r3, r3, 0x660000 +_082E39E0: + str r3, [r1] + ldr r2, [r5] + strb r6, [r2, 0x7] + b _082E3A3C +_082E39F0: + ldr r2, [r1, 0x24] + ldr r3, _082E3BF8 + str r3, [r2] + ldr r2, [r5] + ldrb r3, [r2, 0x6] + sub r3, r3, 0x10 + cmp r3, 0x2D + ldrls r2, [r2, 0x24] + movls r3, 0x1 + bls _082E3A20 +_082E3A18: + ldr r2, [r2, 0x24] + mov r3, 0x2 +_082E3A20: + str r3, [r2, 0x4] +_082E3A24: + ldr r2, [r5] + mov r3, 0x1 + strb r3, [r2, 0x7] + ldr r1, [r5] + add r3, r3, 0x2 + strh r3, [r1, 0x12] +_082E3A3C: + ldr r0, [r5] + ldr r2, [r0, 0x24] + mov r3, 0x120 + ldr r1, [r2] + add r3, r3, 0x4000000 + str r1, [r3] + mov r2, 0x1 + strb r2, [r0, 0x8] + ldr r1, [r5] + mov r3, 0x7 + str r3, [r1] + b _082E3AD4 +_082E3A6C: + mov r3, 0x80000000 + str r3, [lr] + b _082E3AD4 +_082E3A78: + ldr r3, [r0] + cmp r3, 0x7 + bne _082E3AD4 + cmp r12, 0x80000000 + bne _082E3AC4 + ldrb r2, [r0, 0x7] + ldrb r3, [r0, 0x8] + cmp r2, r3 + movcc r3, 0x8 + strcc r3, [r0] + bcc _082E3AD4 + ldrb r1, [r0, 0x8] + ldr r3, [r0, 0x24] + ldr r2, [r3, r1, lsl 2] + str r2, [lr] + ldrb r3, [r0, 0x8] + add r3, r3, 0x1 + strb r3, [r0, 0x8] + b _082E3AD4 +_082E3AC4: + bl STWI_stop_timer_in_RAM + mov r0, 0x64 + bl STWI_set_timer_in_RAM + b _082E3C4C +_082E3AD4: + mov r0, 0x1 + bl handshake_wait + mov r0, r0, lsl 16 + cmp r0, 0x10000 + beq _082E3C4C + mov r6, r5 + ldr r3, [r6] + ldr r2, [r3] + cmp r2, 0x8 + bne _082E3B9C + mov r4, 0x128 + add r4, r4, 0x4000000 + mov r3, 0x5000 + add r3, r3, 0x2 + strh r3, [r4] + bl STWI_stop_timer_in_RAM + ldr r0, [r6] + ldrh r3, [r0, 0x12] + cmp r3, 0x3 + bne _082E3B48 + bl STWI_init_slave + ldr r3, [r6] + ldr r1, [r3, 0x1C] + cmp r1, 0 + beq _082E3C4C + mov r0, 0x1EC + add r0, r0, 0x2 + bl sub_82E3EAC + b _082E3C4C +_082E3B48: + mov r3, 0x120 + add r3, r3, 0x4000000 + mov r1, 0 + str r1, [r3] + mov r2, 0x5000 + strh r1, [r4] + add r2, r2, 0x3 + strh r2, [r4] + mov r3, 0x1 + strb r3, [r0, 0x14] + ldr r0, [r5] + ldr r2, [r0, 0x1C] + str r1, [r0] + cmp r2, r1 + beq _082E3C4C + ldrb r3, [r0, 0x4] + ldrb r0, [r0, 0x6] + mov r1, r2 + orr r0, r0, r3, lsl 8 + bl sub_82E3EAC + b _082E3C4C +_082E3B9C: + mov r3, 0x208 + add r3, r3, 0x4000000 + mov r2, 0 + strh r2, [r3] + mov r1, 0x100 + add r2, r1, 0x4000002 + ldrh r3, [r2] + tst r3, 0x80 + beq _082E3C20 + ldrh r3, [r2] + tst r3, 0x3 + bne _082E3BFC + mov r2, 0xFF00 + add r1, r1, 0x4000000 + ldrh r3, [r1] + add r2, r2, 0x9B + cmp r3, r2 + bls _082E3C20 +_082E3BE4: + ldrh r3, [r1] + cmp r3, r2 + bhi _082E3BE4 + b _082E3C20 + .align 2, 0 +_082E3BF4: .4byte gRfuState +_082E3BF8: .4byte 0x996601ee +_082E3BFC: + mov r2, 0xFF00 + add r1, r1, 0x4000000 + ldrh r3, [r1] + add r2, r2, 0xFE + cmp r3, r2 + bls _082E3C20 +_082E3C14: + ldrh r3, [r1] + cmp r3, r2 + bhi _082E3C14 +_082E3C20: + mov r1, 0x128 + add r1, r1, 0x4000000 + mov r0, 0x208 + add r0, r0, 0x4000000 + mov r3, 0x5000 + add r2, r3, 0x2 + strh r2, [r1] + add r3, r3, 0x82 + strh r3, [r1] + mov r2, 0x1 + strh r2, [r0] +_082E3C4C: + ldmdb r11, {r4-r6,r11,sp,lr} + bx lr + arm_func_end sio32intr_clock_slave + + arm_func_start handshake_wait +handshake_wait: @ 82E3C54 + mov r12, sp + stmdb sp!, {r11,r12,lr,pc} + mov r1, 0x128 + add r1, r1, 0x4000000 + mov r0, r0, lsl 16 + ldr r2, _082E3CB8 + sub r11, r12, 0x4 + mov lr, r0, lsr 14 + ldr r12, [r2] +_082E3C78: + ldrb r3, [r12, 0x10] + and r0, r3, 0xFF + cmp r0, 0x1 + beq _082E3CA4 + ldrh r3, [r1] + and r3, r3, 0x4 + cmp r3, lr + bne _082E3C78 + mov r0, 0 + ldmdb r11, {r11,sp,lr} + bx lr +_082E3CA4: + ldr r2, [r2] + mov r3, 0 + strb r3, [r2, 0x10] + ldmdb r11, {r11,sp,lr} + bx lr + .align 2, 0 +_082E3CB8: .4byte gRfuState + arm_func_end handshake_wait + + arm_func_start STWI_set_timer_in_RAM +STWI_set_timer_in_RAM: @ 82E3CBC + mov r12, sp + stmdb sp!, {r4,r5,r11,r12,lr,pc} + mov r1, 0x208 + add r1, r1, 0x4000000 + mov r3, 0 + sub r11, r12, 0x4 + ldr r12, _082E3D74 + and lr, r0, 0xFF + ldr r2, [r12] + cmp lr, 0x50 + ldrb r0, [r2, 0xA] + mov r4, r12 + mov r2, lr + strh r3, [r1] + mov r0, r0, lsl 2 + add r3, r3, 0x100 + add r1, r3, 0x4000000 + add r3, r3, 0x4000002 + add r5, r0, r3 + beq _082E3D44 + bgt _082E3D1C + cmp lr, 0x32 + beq _082E3D30 + b _082E3D90 +_082E3D1C: + cmp r2, 0x64 + beq _082E3D5C + cmp r2, 0x82 + beq _082E3D78 + b _082E3D90 +_082E3D30: + mvn r3, 0x334 + strh r3, [r0, r1] + ldr r2, [r4] + mov r3, 0x1 + b _082E3D8C +_082E3D44: + mov r3, 0xAE000000 + mov r3, r3, asr 20 + strh r3, [r0, r1] + ldr r2, [r4] + mov r3, 0x2 + b _082E3D8C +_082E3D5C: + mvn r3, 0x660 + sub r3, r3, 0x9 + strh r3, [r0, r1] + ldr r2, [r4] + mov r3, 0x3 + b _082E3D8C + .align 2, 0 +_082E3D74: .4byte gRfuState +_082E3D78: + mvn r3, 0x850 + sub r3, r3, 0x2 + strh r3, [r0, r1] + ldr r2, [r4] + mov r3, 0x4 +_082E3D8C: + str r3, [r2, 0xC] +_082E3D90: + mov r12, 0x200 + add r12, r12, 0x4000002 + mov r3, 0xC3 + strh r3, [r5] + mov r1, 0x208 + ldr r2, [r4] + add r1, r1, 0x4000000 + ldrb r0, [r2, 0xA] + sub r3, r3, 0xBB + mov r3, r3, lsl r0 + strh r3, [r12] + mov r2, 0x1 + strh r2, [r1] + ldmdb r11, {r4,r5,r11,sp,lr} + bx lr + arm_func_end STWI_set_timer_in_RAM + + arm_func_start STWI_stop_timer_in_RAM +STWI_stop_timer_in_RAM: @ 82E3DCC + mov r12, sp + stmdb sp!, {r11,r12,lr,pc} + mov r1, 0x100 + ldr lr, _082E3E18 + add r0, r1, 0x4000000 + ldr r2, [lr] + sub r11, r12, 0x4 + ldrb r3, [r2, 0xA] + mov r12, 0 + str r12, [r2, 0xC] + mov r3, r3, lsl 2 + strh r12, [r3, r0] + ldr r2, [lr] + ldrb r3, [r2, 0xA] + add r1, r1, 0x4000002 + mov r3, r3, lsl 2 + strh r12, [r3, r1] + ldmdb r11, {r11,sp,lr} + bx lr + .align 2, 0 +_082E3E18: .4byte gRfuState + arm_func_end STWI_stop_timer_in_RAM + + arm_func_start STWI_init_slave +STWI_init_slave: @ 82E3E1C + mov r12, sp + stmdb sp!, {r11,r12,lr,pc} + ldr r0, _082E3EA4 + ldr r2, [r0] + mov r3, 0x5 + str r3, [r2] + mov r1, 0 + strb r1, [r2, 0x14] + ldr r3, [r0] + strb r1, [r3, 0x4] + ldr r2, [r0] + strb r1, [r2, 0x5] + ldr r3, [r0] + strb r1, [r3, 0x6] + ldr r2, [r0] + strb r1, [r2, 0x7] + ldr r3, [r0] + strb r1, [r3, 0x8] + ldr r2, [r0] + strb r1, [r2, 0x9] + ldr r3, [r0] + str r1, [r3, 0xC] + sub r11, r12, 0x4 + strb r1, [r3, 0x10] + mov r2, 0x128 + ldr r12, [r0] + add r2, r2, 0x4000000 + strh r1, [r12, 0x12] + mov r3, 0x5000 + strb r1, [r12, 0x15] + add r3, r3, 0x82 + strh r3, [r2] + ldmdb r11, {r11,sp,lr} + bx lr + .align 2, 0 +_082E3EA4: .4byte gRfuState + arm_func_end STWI_init_slave + + arm_func_start sub_82E3EA8 +sub_82E3EA8: @ 82E3EA8 + bx r2 + arm_func_end sub_82E3EA8 + + arm_func_start sub_82E3EAC +sub_82E3EAC: @ 82E3EAC + bx r1 + arm_func_end sub_82E3EAC + + arm_func_start sub_82E3EB0 +sub_82E3EB0: @ 82E3EB0 + bx r0 + arm_func_end sub_82E3EB0 diff --git a/asm/link.s b/asm/link.s index 91f5076b6..291f71a57 100644 --- a/asm/link.s +++ b/asm/link.s @@ -545,7 +545,7 @@ _08009888: movs r6, 0 strh r0, [r4] adds r0, r5, 0 - bl sub_800A5EC + bl ResetBlockReceivedFlag ldrh r0, [r4] cmp r0, r8 beq _080098C4 @@ -2181,8 +2181,8 @@ _0800A5E2: .pool thumb_func_end ResetBlockReceivedFlags - thumb_func_start sub_800A5EC -sub_800A5EC: @ 800A5EC + thumb_func_start ResetBlockReceivedFlag +ResetBlockReceivedFlag: @ 800A5EC push {lr} lsls r0, 24 lsrs r1, r0, 24 @@ -2206,7 +2206,7 @@ _0800A616: pop {r0} bx r0 .pool - thumb_func_end sub_800A5EC + thumb_func_end ResetBlockReceivedFlag thumb_func_start sub_800A620 sub_800A620: @ 800A620 @@ -14607,7 +14607,7 @@ sub_8010A70: @ 8010A70 adds r1, r4, 0 bl CpuSet movs r0, 0 - bl sub_800A5EC + bl ResetBlockReceivedFlag _08010A9C: add sp, 0x4 pop {r4,r5} @@ -14683,7 +14683,7 @@ _08010B40: b _08010CF0 _08010B4A: adds r0, r4, 0 - bl sub_800A5EC + bl ResetBlockReceivedFlag movs r0, 0xF0 lsls r0, 7 bl sub_800FD14 @@ -14713,7 +14713,7 @@ _08010B78: b _08010CF0 _08010B8C: adds r0, r4, 0 - bl sub_800A5EC + bl ResetBlockReceivedFlag lsls r2, r4, 8 ldr r0, =gBlockRecvBuffer adds r2, r0 @@ -14845,7 +14845,7 @@ _08010C94: ldr r2, =0x0100007e bl CpuSet movs r0, 0 - bl sub_800A5EC + bl ResetBlockReceivedFlag ldr r1, =gUnknown_03005000 ldr r5, =0x00000ce8 adds r0, r1, r5 @@ -14947,7 +14947,7 @@ _08010D82: ldr r0, =gBlockRecvBuffer bl sub_8010A14 movs r0, 0 - bl sub_800A5EC + bl ResetBlockReceivedFlag ldr r0, =gReceivedRemoteLinkPlayers strb r4, [r0] adds r0, r5, 0 @@ -39108,7 +39108,7 @@ sub_801D978: @ 801D978 push {lr} lsls r0, 24 lsrs r0, 24 - bl sub_800A5EC + bl ResetBlockReceivedFlag pop {r0} bx r0 thumb_func_end sub_801D978 @@ -42361,7 +42361,7 @@ _0801F3A2: strh r1, [r4, 0x4] lsls r0, r1, 24 lsrs r0, 24 - bl sub_800A5EC + bl ResetBlockReceivedFlag movs r1, 0x2 ldrsh r0, [r4, r1] lsls r0, 8 diff --git a/asm/macros/event.inc b/asm/macros/event.inc index 50e4ac504..f0577f777 100644 --- a/asm/macros/event.inc +++ b/asm/macros/event.inc @@ -241,14 +241,14 @@ @ Calls a special function; that is, a function designed for use by scripts and listed in a table of pointers. .macro special function .byte 0x25 - .2byte \function + .2byte SPECIAL_\function .endm @ Calls a special function. That function's output (if any) will be written to the variable you specify. .macro specialvar output, function .byte 0x26 .2byte \output - .2byte \function + .2byte SPECIAL_\function .endm @ Blocks script execution until a command or ASM code manually unblocks it. Generally used with specific commands and specials. If this command runs, and a subsequent command or piece of ASM does not unblock state, the script will remain blocked indefinitely (essentially a hang). diff --git a/asm/mail.s b/asm/mail.s deleted file mode 100644 index 5f76a5ef0..000000000 --- a/asm/mail.s +++ /dev/null @@ -1,1035 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_8121478 -sub_8121478: @ 8121478 - push {r4-r7,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r7, r1, 0 - lsls r2, 24 - lsrs r6, r2, 24 - ldr r4, =gUnknown_0203A134 - ldr r0, =0x0000222c - bl AllocZeroed - str r0, [r4] - ldr r1, =0x0000021d - adds r0, r1 - movs r1, 0x2 - strb r1, [r0] - ldr r0, [r4] - ldr r2, =0x0000021e - adds r0, r2 - movs r1, 0x1 - strb r1, [r0] - ldr r4, [r4] - movs r3, 0x88 - lsls r3, 2 - adds r1, r4, r3 - ldr r0, =CopyEasyChatWord - str r0, [r1] - movs r0, 0x89 - lsls r0, 2 - adds r1, r4, r0 - ldr r0, =ConvertEasyChatWordsToString - str r0, [r1] - ldrh r1, [r5, 0x20] - adds r0, r1, 0 - subs r0, 0x79 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xB - bhi _081214E8 - subs r1, 0x79 - subs r2, 0x4 - adds r0, r4, r2 - strb r1, [r0] - b _081214F2 - .pool -_081214E8: - ldr r3, =0x0000021a - adds r1, r4, r3 - movs r0, 0 - strb r0, [r1] - movs r6, 0 -_081214F2: - ldr r0, =gUnknown_0203A134 - ldr r1, [r0] - ldr r2, =0x0000021e - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _08121504 - cmp r0, 0x1 - beq _0812152C -_08121504: - movs r3, 0x8A - lsls r3, 2 - adds r2, r1, r3 - subs r3, 0xE - adds r0, r1, r3 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_0859F3B4 - b _08121540 - .pool -_0812152C: - movs r0, 0x8A - lsls r0, 2 - adds r2, r1, r0 - ldr r3, =0x0000021a - adds r0, r1, r3 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_0859F458 -_08121540: - adds r0, r1 - str r0, [r2] - ldrh r0, [r5, 0x1E] - mov r1, sp - bl sub_80D45E8 - lsls r0, 16 - ldr r1, =0xffff0000 - adds r0, r1 - movs r1, 0xCD - lsls r1, 17 - cmp r0, r1 - bhi _081215AC - ldr r1, =gUnknown_0203A134 - ldr r2, [r1] - ldr r3, =0x0000021a - adds r0, r2, r3 - ldrb r0, [r0] - adds r3, r1, 0 - cmp r0, 0x6 - beq _0812158C - cmp r0, 0x9 - beq _0812159C - ldr r0, =0x0000021b - adds r1, r2, r0 - movs r0, 0 - strb r0, [r1] - b _081215BA - .pool -_0812158C: - ldr r0, =0x0000021b - adds r1, r2, r0 - movs r0, 0x1 - strb r0, [r1] - b _081215BA - .pool -_0812159C: - ldr r0, =0x0000021b - adds r1, r2, r0 - movs r0, 0x2 - strb r0, [r1] - b _081215BA - .pool -_081215AC: - ldr r0, =gUnknown_0203A134 - ldr r1, [r0] - ldr r2, =0x0000021b - adds r1, r2 - movs r2, 0 - strb r2, [r1] - adds r3, r0, 0 -_081215BA: - ldr r1, [r3] - movs r3, 0x85 - lsls r3, 2 - adds r0, r1, r3 - str r5, [r0] - movs r2, 0x83 - lsls r2, 2 - adds r0, r1, r2 - str r7, [r0] - adds r3, 0x4 - adds r0, r1, r3 - strb r6, [r0] - ldr r0, =sub_81219F0 - bl SetMainCallback2 - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8121478 - - thumb_func_start sub_81215EC -sub_81215EC: @ 81215EC - push {r4-r6,lr} - sub sp, 0xC - ldr r0, =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x12 - bls _08121600 - b _081219E2 -_08121600: - lsls r0, 2 - ldr r1, =_08121614 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08121614: - .4byte _08121660 - .4byte _0812166E - .4byte _08121688 - .4byte _0812168E - .4byte _08121694 - .4byte _0812169A - .4byte _081216F4 - .4byte _08121730 - .4byte _08121740 - .4byte _08121774 - .4byte _08121782 - .4byte _081217D8 - .4byte _081217EC - .4byte _081218B0 - .4byte _081218CC - .4byte _081218EC - .4byte _081218F6 - .4byte _08121910 - .4byte _08121980 -_08121660: - movs r0, 0 - bl SetVBlankCallback - bl remove_some_task - movs r0, 0 - b _081216EC -_0812166E: - add r1, sp, 0x8 - movs r0, 0 - strh r0, [r1] - movs r1, 0xE0 - lsls r1, 19 - ldr r2, =0x01000200 - add r0, sp, 0x8 - bl CpuSet - b _081219D4 - .pool -_08121688: - bl ResetPaletteFade - b _081219D4 -_0812168E: - bl ResetTasks - b _081219D4 -_08121694: - bl ResetSpriteData - b _081219D4 -_0812169A: - bl FreeAllSpritePalettes - bl reset_temp_tile_data_buffers - 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, 0x1A - movs r1, 0 - bl SetGpuReg - movs r0, 0x18 - movs r1, 0 - bl SetGpuReg - movs r0, 0x1C - movs r1, 0 - bl SetGpuReg - movs r0, 0x1E - movs r1, 0 - bl SetGpuReg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 -_081216EC: - movs r1, 0 - bl SetGpuReg - b _081219D4 -_081216F4: - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_0859F290 - movs r0, 0 - movs r2, 0x3 - bl InitBgsFromTemplates - ldr r4, =gUnknown_0203A134 - ldr r1, [r4] - movs r2, 0x8B - lsls r2, 2 - adds r1, r2 - movs r0, 0x1 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, =0x0000122c - adds r1, r0 - movs r0, 0x2 - bl SetBgTilemapBuffer - b _081219D4 - .pool -_08121730: - ldr r0, =gUnknown_0859F29C - bl InitWindows - bl DeactivateAllTextPrinters - b _081219D4 - .pool -_08121740: - ldr r2, =gUnknown_0859F2B8 - ldr r0, =gUnknown_0203A134 - ldr r0, [r0] - ldr r1, =0x0000021a - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r2, 0x4 - adds r0, r2 - ldr r1, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - b _081219D4 - .pool -_08121774: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - bne _08121780 - b _081219D4 -_08121780: - b _081219E2 -_08121782: - movs r5, 0x1E - str r5, [sp] - movs r4, 0x14 - str r4, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - str r5, [sp] - str r4, [sp, 0x4] - movs r0, 0x2 - movs r1, 0x1 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - ldr r2, =gUnknown_0859F2B8 - ldr r0, =gUnknown_0203A134 - ldr r0, [r0] - ldr r1, =0x0000021a - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r2, 0x8 - adds r0, r2 - ldr r1, [r0] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - b _081219D4 - .pool -_081217D8: - movs r0, 0 - bl CopyBgTilemapBufferToVram - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - movs r0, 0x2 - bl CopyBgTilemapBufferToVram - b _081219D4 -_081217EC: - bl sub_8098C64 - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - ldr r6, =gPlttBufferUnfaded - ldr r4, =gUnknown_0859F2B8 - ldr r0, =gUnknown_0203A134 - ldr r3, [r0] - ldr r2, =0x0000021a - adds r3, r2 - ldrb r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r0, 0x10] - subs r2, 0x26 - adds r0, r6, r2 - strh r1, [r0] - ldr r5, =gPlttBufferFaded - ldrb r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r0, [r0, 0x10] - adds r2, r5, r2 - strh r0, [r2] - ldrb r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r0, 0x12] - movs r2, 0xFB - lsls r2, 1 - adds r0, r6, r2 - strh r1, [r0] - ldrb r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r0, [r0, 0x12] - adds r2, r5, r2 - strh r0, [r2] - ldrb r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r0, [r0] - movs r1, 0 - movs r2, 0x20 - bl LoadPalette - ldr r1, =gUnknown_0859F2B0 - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldrb r0, [r2, 0x8] - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r6, 0x14] - ldrb r0, [r2, 0x8] - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r5, 0x14] - ldrb r0, [r2, 0x8] - lsls r0, 2 - adds r1, 0x2 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r6, 0x16] - ldrb r0, [r2, 0x8] - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r5, 0x16] - b _081219D4 - .pool -_081218B0: - ldr r0, =gUnknown_0203A134 - ldr r0, [r0] - movs r1, 0x86 - lsls r1, 2 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _081218C2 - b _081219D4 -_081218C2: - bl sub_8121A1C - b _081219D4 - .pool -_081218CC: - ldr r0, =gUnknown_0203A134 - ldr r0, [r0] - movs r2, 0x86 - lsls r2, 2 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _081218DE - b _081219D4 -_081218DE: - bl sub_8121B1C - bl RunTextPrinters - b _081219D4 - .pool -_081218EC: - bl sub_8087598 - cmp r0, 0x1 - bne _081219D4 - b _081219E2 -_081218F6: - ldr r0, =sub_8121C50 - bl SetVBlankCallback - ldr r2, =gPaletteFade - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x8] - b _081219D4 - .pool -_08121910: - ldr r5, =gUnknown_0203A134 - ldr r0, [r5] - movs r1, 0x85 - lsls r1, 2 - adds r0, r1 - ldr r0, [r0] - ldrh r0, [r0, 0x1E] - bl sub_80D2E84 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, [r5] - ldr r2, =0x0000021b - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0x1 - beq _08121940 - cmp r0, 0x2 - beq _08121958 - b _081219D4 - .pool -_08121940: - adds r0, r4, 0 - bl sub_80D2F68 - ldr r1, =SpriteCallbackDummy - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - adds r0, r4, 0 - movs r2, 0x60 - b _0812196A - .pool -_08121958: - adds r0, r4, 0 - bl sub_80D2F68 - ldr r1, =SpriteCallbackDummy - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - adds r0, r4, 0 - movs r2, 0x28 -_0812196A: - movs r3, 0x80 - bl sub_80D2D78 - ldr r1, [r5] - movs r2, 0x87 - lsls r2, 2 - adds r1, r2 - strb r0, [r1] - b _081219D4 - .pool -_08121980: - movs r1, 0x82 - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r2, =gPaletteFade - ldrb r1, [r2, 0x8] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2, 0x8] - ldr r0, =gUnknown_0203A134 - ldr r0, [r0] - movs r1, 0x84 - lsls r1, 2 - adds r0, r1 - ldr r1, =sub_8121C98 - str r1, [r0] - movs r0, 0x1 - b _081219E4 - .pool -_081219D4: - ldr r1, =gMain - movs r2, 0x87 - lsls r2, 3 - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_081219E2: - movs r0, 0 -_081219E4: - add sp, 0xC - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81215EC - - thumb_func_start sub_81219F0 -sub_81219F0: @ 81219F0 - push {lr} -_081219F2: - bl sub_81215EC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08121A0C - ldr r0, =sub_8121C64 - bl SetMainCallback2 - b _08121A18 - .pool -_08121A0C: - bl sub_81221AC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081219F2 -_08121A18: - pop {r0} - bx r0 - thumb_func_end sub_81219F0 - - thumb_func_start sub_8121A1C -sub_8121A1C: @ 8121A1C - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r6, 0 - movs r5, 0 - ldr r2, =gUnknown_0203A134 - ldr r0, [r2] - movs r1, 0x8A - lsls r1, 2 - adds r0, r1 - ldr r0, [r0] - ldrb r0, [r0] - cmp r5, r0 - bcs _08121A8A - mov r8, r2 - adds r7, r1, 0 -_08121A3C: - lsls r0, r5, 6 - mov r1, r8 - ldr r2, [r1] - adds r0, r2, r0 - movs r3, 0x85 - lsls r3, 2 - adds r1, r2, r3 - lsls r3, r6, 1 - ldr r1, [r1] - adds r1, r3 - adds r2, r7 - ldr r2, [r2] - ldr r2, [r2, 0x8] - lsls r4, r5, 2 - adds r2, r4, r2 - ldr r2, [r2] - lsls r2, 30 - lsrs r2, 30 - movs r3, 0x1 - bl ConvertEasyChatWordsToString - mov r1, r8 - ldr r0, [r1] - adds r0, r7 - ldr r1, [r0] - ldr r0, [r1, 0x8] - adds r4, r0 - ldr r0, [r4] - lsls r0, 30 - lsrs r0, 30 - adds r0, r6, r0 - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldrb r1, [r1] - cmp r5, r1 - bcc _08121A3C -_08121A8A: - ldr r4, =gUnknown_0203A134 - ldr r1, [r4] - movs r2, 0x80 - lsls r2, 2 - adds r0, r1, r2 - movs r3, 0x85 - lsls r3, 2 - adds r1, r3 - ldr r1, [r1] - adds r1, 0x12 - bl StringCopy - adds r2, r0, 0 - ldr r1, [r4] - ldr r3, =0x0000021e - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, 0 - bne _08121AF0 - ldr r1, =gText_FromSpace - adds r0, r2, 0 - bl StringCopy - ldr r0, [r4] - movs r1, 0x80 - lsls r1, 2 - adds r0, r1 - bl StringLength - ldr r2, [r4] - movs r3, 0x8A - lsls r3, 2 - adds r1, r2, r3 - ldr r1, [r1] - lsls r0, 16 - lsrs r0, 13 - subs r0, 0x60 - ldrb r1, [r1, 0x2] - subs r1, r0 - ldr r0, =0x00000219 - adds r2, r0 - strb r1, [r2] - b _08121B0C - .pool -_08121AF0: - movs r2, 0x80 - lsls r2, 2 - adds r0, r1, r2 - bl sub_81DB52C - ldr r0, [r4] - movs r3, 0x8A - lsls r3, 2 - adds r1, r0, r3 - ldr r1, [r1] - ldrb r1, [r1, 0x2] - ldr r2, =0x00000219 - adds r0, r2 - strb r1, [r0] -_08121B0C: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8121A1C - - thumb_func_start sub_8121B1C -sub_8121B1C: @ 8121B1C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x2C - movs r7, 0 - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - movs r6, 0 - ldr r1, =gUnknown_0203A134 - ldr r0, [r1] - movs r2, 0x8A - lsls r2, 2 - mov r10, r2 - add r0, r10 - ldr r0, [r0] - ldrb r0, [r0] - cmp r6, r0 - bcs _08121BCC - mov r9, r1 - mov r8, r10 -_08121B60: - mov r0, r9 - ldr r1, [r0] - lsls r0, r6, 6 - adds r5, r1, r0 - ldrb r0, [r5] - cmp r0, 0xFF - beq _08121BB8 - cmp r0, 0 - beq _08121BB8 - mov r2, r8 - adds r0, r1, r2 - ldr r1, [r0] - ldr r0, [r1, 0x8] - lsls r4, r6, 2 - adds r0, r4, r0 - ldr r2, [r0] - lsls r2, 24 - lsrs r2, 26 - ldrb r0, [r1, 0x4] - adds r2, r0 - lsls r2, 24 - lsrs r2, 24 - ldrb r3, [r1, 0x3] - adds r3, r7, r3 - lsls r3, 24 - lsrs r3, 24 - ldr r0, =gUnknown_0859F2AC - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r5, [sp, 0x8] - movs r1, 0x1 - bl box_print - mov r1, r9 - ldr r0, [r1] - add r0, r8 - ldr r0, [r0] - ldr r0, [r0, 0x8] - adds r4, r0 - ldrb r0, [r4, 0x1] - adds r0, r7, r0 - lsls r0, 24 - lsrs r7, r0, 24 -_08121BB8: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r2, =gUnknown_0203A134 - ldr r0, [r2] - add r0, r10 - ldr r0, [r0] - ldrb r0, [r0] - cmp r6, r0 - bcc _08121B60 -_08121BCC: - ldr r1, =gText_FromSpace - add r0, sp, 0xC - bl StringCopy - ldr r4, =gUnknown_0203A134 - ldr r1, [r4] - movs r2, 0x80 - lsls r2, 2 - adds r1, r2 - bl StringCopy - ldr r0, [r4] - ldr r1, =0x00000219 - adds r0, r1 - ldrb r2, [r0] - movs r0, 0x1 - add r1, sp, 0xC - bl GetStringCenterAlignXOffset - adds r2, r0, 0 - adds r2, 0x68 - ldr r0, [r4] - movs r1, 0x8A - lsls r1, 2 - adds r0, r1 - ldr r0, [r0] - ldrb r3, [r0, 0x1] - adds r3, 0x58 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - ldr r0, =gUnknown_0859F2AC - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - add r0, sp, 0xC - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0x1 - bl box_print - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - movs r0, 0x1 - movs r1, 0x3 - bl CopyWindowToVram - add sp, 0x2C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8121B1C - - thumb_func_start sub_8121C50 -sub_8121C50: @ 8121C50 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_8121C50 - - thumb_func_start sub_8121C64 -sub_8121C64: @ 8121C64 - push {r4,lr} - ldr r4, =gUnknown_0203A134 - ldr r0, [r4] - ldr r1, =0x0000021b - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08121C7C - bl AnimateSprites - bl BuildOamBuffer -_08121C7C: - ldr r0, [r4] - movs r1, 0x84 - lsls r1, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8121C64 - - thumb_func_start sub_8121C98 -sub_8121C98: @ 8121C98 - push {lr} - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _08121CB2 - ldr r0, =gUnknown_0203A134 - ldr r0, [r0] - movs r1, 0x84 - lsls r1, 2 - adds r0, r1 - ldr r1, =sub_8121CC0 - str r1, [r0] -_08121CB2: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8121C98 - - thumb_func_start sub_8121CC0 -sub_8121CC0: @ 8121CC0 - push {lr} - sub sp, 0x4 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _08121CEE - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, =gUnknown_0203A134 - ldr r0, [r0] - movs r1, 0x84 - lsls r1, 2 - adds r0, r1 - ldr r1, =sub_8121D00 - str r1, [r0] -_08121CEE: - add sp, 0x4 - pop {r0} - bx r0 - .pool - thumb_func_end sub_8121CC0 - - thumb_func_start sub_8121D00 -sub_8121D00: @ 8121D00 - push {r4,lr} - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _08121D88 - ldr r4, =gUnknown_0203A134 - ldr r0, [r4] - movs r1, 0x83 - lsls r1, 2 - adds r0, r1 - ldr r0, [r0] - bl SetMainCallback2 - ldr r1, [r4] - ldr r2, =0x0000021b - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x2 - bgt _08121D58 - cmp r0, 0x1 - blt _08121D58 - subs r2, 0x7 - adds r0, r1, r2 - ldr r0, [r0] - ldrh r0, [r0, 0x1E] - bl sub_80D2E84 - lsls r0, 16 - lsrs r0, 16 - bl sub_80D2FF0 - ldr r0, [r4] - movs r1, 0x87 - lsls r1, 2 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - bl sub_80D2EF8 -_08121D58: - ldr r4, =gUnknown_0203A134 - ldr r0, [r4] - ldr r2, =0x0000222c - movs r1, 0 - bl memset - bl ResetPaletteFade - movs r0, 0 - bl UnsetBgTilemapBuffer - movs r0, 0x1 - bl UnsetBgTilemapBuffer - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - bl FreeAllWindowBuffers - ldr r0, [r4] - bl Free - movs r0, 0 - str r0, [r4] -_08121D88: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8121D00 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/party_menu.s b/asm/party_menu.s index 50dc3c54e..f2e681b9b 100755 --- a/asm/party_menu.s +++ b/asm/party_menu.s @@ -5441,7 +5441,7 @@ sub_81B2E64: @ 81B2E64 mov r2, r9 lsls r1, r2, 16 asrs r1, 16 - bl sub_8075060 + bl GetHPBarLevel lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 @@ -10452,7 +10452,7 @@ sub_81B5A8C: @ 81B5A8C asrs r2, 16 adds r0, r1, 0 adds r1, r2, 0 - bl sub_8075060 + bl GetHPBarLevel lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s index 298409e9c..d1f7bd161 100755 --- a/asm/pokemon_storage_system.s +++ b/asm/pokemon_storage_system.s @@ -1043,7 +1043,7 @@ _080C77C2: lsrs r5, r0, 16 cmp r5, 0xD bls _080C77C2 - bl sub_80D242C + bl ResetWaldaWallpaper pop {r4-r6} pop {r0} bx r0 @@ -7122,7 +7122,7 @@ sub_80CADD8: @ 80CADD8 bl sub_80CFF34 movs r0, 0x15 bl sub_80CFF34 - bl sub_80D2494 + bl IsWaldaWallpaperUnlocked cmp r0, 0 beq _080CAE04 movs r0, 0x16 @@ -10421,7 +10421,7 @@ _080CC888: b _080CC9DA .pool _080CC8C4: - bl sub_80D24A8 + bl GetWaldaWallpaperPatternId lsls r1, r0, 1 adds r1, r0 lsls r1, 2 @@ -10448,13 +10448,13 @@ _080CC8C4: adds r1, r4 movs r2, 0x20 bl CpuSet - bl sub_80D2510 + bl GetWaldaWallpaperColorsPtr ldr r1, [r7] ldr r2, =0x00000794 adds r1, r2 movs r2, 0x2 bl CpuSet - bl sub_80D2510 + bl GetWaldaWallpaperColorsPtr ldr r1, [r7] ldr r3, =0x000007b4 adds r1, r3 @@ -10500,7 +10500,7 @@ _080CC976: adds r1, r5 str r0, [r1] ldr r4, =gUnknown_0857B004 - bl sub_80D24DC + bl GetWaldaWallpaperIconId lsls r0, 2 adds r0, r4 ldr r0, [r0] @@ -21544,8 +21544,8 @@ _080D241E: bx r1 thumb_func_end sub_80D23A8 - thumb_func_start sub_80D242C -sub_80D242C: @ 80D242C + thumb_func_start ResetWaldaWallpaper +ResetWaldaWallpaper: @ 80D242C ldr r2, =gSaveBlock1Ptr ldr r0, [r2] ldr r1, =0x00003d84 @@ -21575,10 +21575,10 @@ sub_80D242C: @ 80D242C strb r0, [r1] bx lr .pool - thumb_func_end sub_80D242C + thumb_func_end ResetWaldaWallpaper - thumb_func_start sub_80D2480 -sub_80D2480: @ 80D2480 + thumb_func_start SetWaldaWallpaperLockedOrUnlocked +SetWaldaWallpaperLockedOrUnlocked: @ 80D2480 ldr r1, =gSaveBlock1Ptr ldr r1, [r1] ldr r2, =0x00003d86 @@ -21586,10 +21586,10 @@ sub_80D2480: @ 80D2480 strb r0, [r1] bx lr .pool - thumb_func_end sub_80D2480 + thumb_func_end SetWaldaWallpaperLockedOrUnlocked - thumb_func_start sub_80D2494 -sub_80D2494: @ 80D2494 + thumb_func_start IsWaldaWallpaperUnlocked +IsWaldaWallpaperUnlocked: @ 80D2494 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r1, =0x00003d86 @@ -21597,10 +21597,10 @@ sub_80D2494: @ 80D2494 ldrb r0, [r0] bx lr .pool - thumb_func_end sub_80D2494 + thumb_func_end IsWaldaWallpaperUnlocked - thumb_func_start sub_80D24A8 -sub_80D24A8: @ 80D24A8 + thumb_func_start GetWaldaWallpaperPatternId +GetWaldaWallpaperPatternId: @ 80D24A8 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r1, =0x00003d85 @@ -21608,10 +21608,10 @@ sub_80D24A8: @ 80D24A8 ldrb r0, [r0] bx lr .pool - thumb_func_end sub_80D24A8 + thumb_func_end GetWaldaWallpaperPatternId - thumb_func_start sub_80D24BC -sub_80D24BC: @ 80D24BC + thumb_func_start SetWaldaWallpaperPatternId +SetWaldaWallpaperPatternId: @ 80D24BC push {lr} lsls r0, 24 lsrs r1, r0, 24 @@ -21626,10 +21626,10 @@ _080D24D0: pop {r0} bx r0 .pool - thumb_func_end sub_80D24BC + thumb_func_end SetWaldaWallpaperPatternId - thumb_func_start sub_80D24DC -sub_80D24DC: @ 80D24DC + thumb_func_start GetWaldaWallpaperIconId +GetWaldaWallpaperIconId: @ 80D24DC ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r1, =0x00003d84 @@ -21637,10 +21637,10 @@ sub_80D24DC: @ 80D24DC ldrb r0, [r0] bx lr .pool - thumb_func_end sub_80D24DC + thumb_func_end GetWaldaWallpaperIconId - thumb_func_start sub_80D24F0 -sub_80D24F0: @ 80D24F0 + thumb_func_start SetWaldaWallpaperIconId +SetWaldaWallpaperIconId: @ 80D24F0 push {lr} lsls r0, 24 lsrs r1, r0, 24 @@ -21655,20 +21655,20 @@ _080D2504: pop {r0} bx r0 .pool - thumb_func_end sub_80D24F0 + thumb_func_end SetWaldaWallpaperIconId - thumb_func_start sub_80D2510 -sub_80D2510: @ 80D2510 + thumb_func_start GetWaldaWallpaperColorsPtr +GetWaldaWallpaperColorsPtr: @ 80D2510 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r1, =0x00003d70 adds r0, r1 bx lr .pool - thumb_func_end sub_80D2510 + thumb_func_end GetWaldaWallpaperColorsPtr - thumb_func_start sub_80D2524 -sub_80D2524: @ 80D2524 + thumb_func_start SetWaldaWallpaperColors +SetWaldaWallpaperColors: @ 80D2524 push {r4,lr} ldr r2, =gSaveBlock1Ptr ldr r2, [r2] @@ -21682,20 +21682,20 @@ sub_80D2524: @ 80D2524 pop {r0} bx r0 .pool - thumb_func_end sub_80D2524 + thumb_func_end SetWaldaWallpaperColors - thumb_func_start sub_80D2548 -sub_80D2548: @ 80D2548 + thumb_func_start GetWaldaPhrasePtr +GetWaldaPhrasePtr: @ 80D2548 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r1, =0x00003d74 adds r0, r1 bx lr .pool - thumb_func_end sub_80D2548 + thumb_func_end GetWaldaPhrasePtr - thumb_func_start sub_80D255C -sub_80D255C: @ 80D255C + thumb_func_start SetWaldaPhrase +SetWaldaPhrase: @ 80D255C push {lr} adds r1, r0, 0 ldr r0, =gSaveBlock1Ptr @@ -21706,10 +21706,10 @@ sub_80D255C: @ 80D255C pop {r0} bx r0 .pool - thumb_func_end sub_80D255C + thumb_func_end SetWaldaPhrase - thumb_func_start sub_80D2578 -sub_80D2578: @ 80D2578 + thumb_func_start IsWaldaPhraseEmpty +IsWaldaPhraseEmpty: @ 80D2578 push {lr} movs r1, 0 ldr r0, =gSaveBlock1Ptr @@ -21725,7 +21725,7 @@ _080D258C: pop {r1} bx r1 .pool - thumb_func_end sub_80D2578 + thumb_func_end IsWaldaPhraseEmpty thumb_func_start sub_80D259C sub_80D259C: @ 80D259C diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s index 7c314f8db..fd2518075 100755 --- a/asm/pokemon_summary_screen.s +++ b/asm/pokemon_summary_screen.s @@ -5,7832 +5,6 @@ .text - thumb_func_start sub_81BF8EC -sub_81BF8EC: @ 81BF8EC - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r1 - adds r5, r2, 0 - adds r6, r3, 0 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - ldr r4, =gUnknown_0203CF1C - ldr r0, =0x000040f8 - bl AllocZeroed - str r0, [r4] - ldr r1, =0x000040bc - adds r0, r1 - strb r7, [r0] - ldr r0, [r4] - mov r2, r8 - str r2, [r0] - adds r1, 0x2 - adds r0, r1 - strb r5, [r0] - ldr r0, [r4] - ldr r2, =0x000040bf - adds r0, r2 - strb r6, [r0] - ldr r1, [r4] - ldr r0, [sp, 0x18] - str r0, [r1, 0x4] - cmp r7, 0x2 - bne _081BF94C - subs r2, 0x2 - adds r1, r2 - movs r0, 0x1 - b _081BF952 - .pool -_081BF94C: - ldr r0, =0x000040bd - adds r1, r0 - movs r0, 0 -_081BF952: - strb r0, [r1] - cmp r7, 0x1 - beq _081BF9A0 - cmp r7, 0x1 - bgt _081BF96C - cmp r7, 0 - beq _081BF97C - ldr r2, =gUnknown_0203CF1C - b _081BF9EE - .pool -_081BF96C: - cmp r7, 0x2 - beq _081BF97C - cmp r7, 0x3 - beq _081BF9D0 - ldr r2, =gUnknown_0203CF1C - b _081BF9EE - .pool -_081BF97C: - ldr r2, =gUnknown_0203CF1C - ldr r0, [r2] - ldr r1, =0x000040c1 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - ldr r0, [r2] - ldr r1, =0x000040c2 - adds r0, r1 - movs r1, 0x3 - b _081BF9EC - .pool -_081BF9A0: - ldr r2, =gUnknown_0203CF1C - ldr r0, [r2] - ldr r1, =0x000040c1 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - ldr r0, [r2] - ldr r1, =0x000040c2 - adds r0, r1 - movs r1, 0x3 - strb r1, [r0] - ldr r0, [r2] - ldr r1, =0x000040c8 - adds r0, r1 - strb r7, [r0] - b _081BF9EE - .pool -_081BF9D0: - ldr r2, =gUnknown_0203CF1C - ldr r0, [r2] - ldr r1, =0x000040c1 - adds r0, r1 - movs r1, 0x2 - strb r1, [r0] - ldr r0, [r2] - ldr r1, =0x000040c2 - adds r0, r1 - strb r7, [r0] - ldr r0, [r2] - adds r1, 0x1 - adds r0, r1 - movs r1, 0x1 -_081BF9EC: - strb r1, [r0] -_081BF9EE: - ldr r0, [r2] - ldr r2, =0x000040c1 - adds r1, r0, r2 - ldrb r1, [r1] - subs r2, 0x1 - adds r0, r2 - strb r1, [r0] - movs r0, 0xFF - bl sub_81C488C - ldr r0, =gMonSpritesGfxPtr - ldr r0, [r0] - cmp r0, 0 - bne _081BFA12 - movs r0, 0 - movs r1, 0 - bl sub_806F2AC -_081BFA12: - ldr r0, =sub_81BFAE4 - bl SetMainCallback2 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BF8EC - - thumb_func_start sub_81BFA38 -sub_81BFA38: @ 81BFA38 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x4 - mov r8, r0 - adds r4, r1, 0 - adds r5, r2, 0 - ldr r6, [sp, 0x18] - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 16 - lsrs r6, 16 - str r3, [sp] - movs r0, 0x3 - mov r1, r8 - adds r2, r4, 0 - adds r3, r5, 0 - bl sub_81BF8EC - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040c4 - adds r0, r1 - strh r6, [r0] - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BFA38 - - thumb_func_start sub_81BFA80 -sub_81BFA80: @ 81BFA80 - push {r4,lr} - sub sp, 0x4 - ldr r4, [sp, 0xC] - lsls r0, 24 - lsrs r0, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - str r4, [sp] - bl sub_81BF8EC - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040ef - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BFA80 - - thumb_func_start sub_81BFAB4 -sub_81BFAB4: @ 81BFAB4 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl do_scheduled_bg_tilemap_copies_to_vram - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_81BFAB4 - - thumb_func_start sub_81BFAD0 -sub_81BFAD0: @ 81BFAD0 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_81BFAD0 - - thumb_func_start sub_81BFAE4 -sub_81BFAE4: @ 81BFAE4 - push {lr} -_081BFAE6: - bl sub_81221EC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081BFB0A - bl sub_81BFB10 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081BFB0A - bl sub_81221AC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081BFAE6 -_081BFB0A: - pop {r0} - bx r0 - thumb_func_end sub_81BFAE4 - - thumb_func_start sub_81BFB10 -sub_81BFB10: @ 81BFB10 - push {r4,lr} - sub sp, 0x4 - ldr r0, =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x18 - bls _081BFB24 - b _081BFE00 -_081BFB24: - lsls r0, 2 - ldr r1, =_081BFB38 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081BFB38: - .4byte _081BFB9C - .4byte _081BFBAA - .4byte _081BFBBC - .4byte _081BFBD0 - .4byte _081BFBE4 - .4byte _081BFBEA - .4byte _081BFC04 - .4byte _081BFC20 - .4byte _081BFC26 - .4byte _081BFC38 - .4byte _081BFC58 - .4byte _081BFC7C - .4byte _081BFC82 - .4byte _081BFC94 - .4byte _081BFCAC - .4byte _081BFCC0 - .4byte _081BFCD8 - .4byte _081BFCF8 - .4byte _081BFD34 - .4byte _081BFD50 - .4byte _081BFD60 - .4byte _081BFD74 - .4byte _081BFD7A - .4byte _081BFDB0 - .4byte _081BFDCC -_081BFB9C: - bl SetVBlankHBlankCallbacksToNull - bl sub_8121DA0 - bl clear_scheduled_bg_copies_to_vram - b _081BFDE6 -_081BFBAA: - bl remove_some_task - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _081BFDEE - .pool -_081BFBBC: - bl ResetPaletteFade - ldr r2, =gPaletteFade - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - b _081BFDE4 - .pool -_081BFBD0: - bl ResetSpriteData - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _081BFDEE - .pool -_081BFBE4: - bl FreeAllSpritePalettes - b _081BFDE6 -_081BFBEA: - bl sub_81BFE24 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040f0 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - b _081BFDE6 - .pool -_081BFC04: - bl sub_81BFEB0 - lsls r0, 24 - cmp r0, 0 - bne _081BFC10 - b _081BFE18 -_081BFC10: - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _081BFDEE - .pool -_081BFC20: - bl sub_81C2554 - b _081BFDE6 -_081BFC26: - bl sub_81C1BA0 - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _081BFDEE - .pool -_081BFC38: - ldr r4, =gUnknown_0203CF1C - ldr r0, [r4] - adds r0, 0xC - bl sub_81C0098 - ldr r0, [r4] - ldr r1, =0x000040f0 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - b _081BFDE6 - .pool -_081BFC58: - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r0, 0xC - bl sub_81C00F0 - lsls r0, 24 - cmp r0, 0 - bne _081BFC6A - b _081BFE18 -_081BFC6A: - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _081BFDEE - .pool -_081BFC7C: - bl sub_81C25E8 - b _081BFDE6 -_081BFC82: - bl sub_81C286C - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _081BFDEE - .pool -_081BFC94: - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040c0 - adds r0, r1 - ldrb r0, [r0] - bl sub_81C2D9C - b _081BFDE6 - .pool -_081BFCAC: - bl sub_81C0348 - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _081BFDEE - .pool -_081BFCC0: - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040c0 - adds r0, r1 - ldrb r0, [r0] - bl sub_81C2AFC - b _081BFDE6 - .pool -_081BFCD8: - bl sub_81C4190 - bl sub_81C42C8 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040f0 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - b _081BFDE6 - .pool -_081BFCF8: - ldr r4, =gUnknown_0203CF1C - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0xC - ldr r2, =0x000040f0 - adds r1, r2 - bl sub_81C45F4 - ldr r1, [r4] - ldr r2, =0x000040d3 - adds r1, r2 - strb r0, [r1] - ldr r1, [r4] - adds r2, r1, r2 - ldrb r0, [r2] - cmp r0, 0xFF - bne _081BFD1C - b _081BFE18 -_081BFD1C: - ldr r0, =0x000040f0 - adds r1, r0 - movs r0, 0 - strh r0, [r1] - b _081BFDE6 - .pool -_081BFD34: - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r0, 0xC - bl sub_81C4984 - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _081BFDEE - .pool -_081BFD50: - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r0, 0xC - bl sub_81C4A08 - b _081BFDE6 - .pool -_081BFD60: - bl sub_81C4A88 - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _081BFDEE - .pool -_081BFD74: - bl sub_81C4280 - b _081BFDE6 -_081BFD7A: - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040bc - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x3 - beq _081BFDA0 - ldr r0, =sub_81C0510 - movs r1, 0 - bl CreateTask - b _081BFDE6 - .pool -_081BFDA0: - ldr r0, =sub_81C171C - movs r1, 0 - bl CreateTask - b _081BFDE6 - .pool -_081BFDB0: - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _081BFDEE - .pool -_081BFDCC: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r2, =gPaletteFade - ldrb r1, [r2, 0x8] - movs r0, 0x7F - ands r0, r1 -_081BFDE4: - strb r0, [r2, 0x8] -_081BFDE6: - ldr r1, =gMain - movs r2, 0x87 - lsls r2, 3 - adds r1, r2 -_081BFDEE: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _081BFE18 - .pool -_081BFE00: - ldr r0, =sub_81BFAD0 - bl SetVBlankCallback - ldr r0, =sub_81BFAB4 - bl SetMainCallback2 - movs r0, 0x1 - b _081BFE1A - .pool -_081BFE18: - movs r0, 0 -_081BFE1A: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81BFB10 - - thumb_func_start sub_81BFE24 -sub_81BFE24: @ 81BFE24 - push {r4,lr} - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_0861CBB4 - movs r0, 0 - movs r2, 0x4 - bl InitBgsFromTemplates - ldr r4, =gUnknown_0203CF1C - ldr r1, [r4] - ldr r0, =0x000020bc - adds r1, r0 - movs r0, 0x1 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, =0x000010bc - adds r1, r0 - movs r0, 0x2 - bl SetBgTilemapBuffer - ldr r1, [r4] - adds r1, 0xBC - movs r0, 0x3 - bl SetBgTilemapBuffer - bl sub_8121E10 - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x3 - bl schedule_bg_copy_tilemap_to_vram - movs r1, 0x82 - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x3 - bl ShowBg - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BFE24 - - thumb_func_start sub_81BFEB0 -sub_81BFEB0: @ 81BFEB0 - push {r4,lr} - sub sp, 0x4 - ldr r1, =gUnknown_0203CF1C - ldr r0, [r1] - ldr r2, =0x000040f0 - adds r0, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - adds r4, r1, 0 - cmp r0, 0xC - bls _081BFEC8 - b _081C008C -_081BFEC8: - lsls r0, 2 - ldr r1, =_081BFEE0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081BFEE0: - .4byte _081BFF14 - .4byte _081BFF30 - .4byte _081BFF60 - .4byte _081BFF78 - .4byte _081BFF90 - .4byte _081BFFA8 - .4byte _081BFFC0 - .4byte _081BFFF0 - .4byte _081BFFFC - .4byte _081C0018 - .4byte _081C0024 - .4byte _081C0040 - .4byte _081C0064 -_081BFF14: - bl reset_temp_tile_data_buffers - ldr r1, =gUnknown_08D97D0C - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - b _081C0046 - .pool -_081BFF30: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081BFF3E - b _081C008C -_081BFF3E: - ldr r0, =gUnknown_08D9862C - ldr r4, =gUnknown_0203CF1C - ldr r1, [r4] - adds r1, 0xBC - bl LZDecompressWram - ldr r1, [r4] - ldr r2, =0x000040f0 - adds r1, r2 - b _081C004E - .pool -_081BFF60: - ldr r0, =gUnknown_08D98CC8 - ldr r1, [r4] - ldr r2, =0x000008bc - adds r1, r2 - bl LZDecompressWram - ldr r1, [r4] - b _081C004A - .pool -_081BFF78: - ldr r0, =gUnknown_08D987FC - ldr r1, [r4] - ldr r2, =0x000018bc - adds r1, r2 - bl LZDecompressWram - ldr r1, [r4] - b _081C004A - .pool -_081BFF90: - ldr r0, =gUnknown_08D9898C - ldr r1, [r4] - ldr r2, =0x000028bc - adds r1, r2 - bl LZDecompressWram - ldr r1, [r4] - b _081C004A - .pool -_081BFFA8: - ldr r0, =gUnknown_08D98B28 - ldr r1, [r4] - ldr r2, =0x000038bc - adds r1, r2 - bl LZDecompressWram - ldr r1, [r4] - b _081C004A - .pool -_081BFFC0: - ldr r0, =gUnknown_08D9853C - movs r2, 0x80 - lsls r2, 1 - movs r1, 0 - bl LoadCompressedPalette - ldr r0, =gUnknown_08D85620 - movs r1, 0x81 - movs r2, 0x1E - bl LoadPalette - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - ldr r2, =0x000040f0 - adds r1, r2 - b _081C004E - .pool -_081BFFF0: - ldr r0, =gUnknown_0861CFBC - bl LoadCompressedObjectPic - b _081C0046 - .pool -_081BFFFC: - ldr r0, =gUnknown_0861D074 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - ldr r2, =0x000040f0 - adds r1, r2 - b _081C004E - .pool -_081C0018: - ldr r0, =gUnknown_0861D0F8 - bl LoadCompressedObjectPic - b _081C0046 - .pool -_081C0024: - ldr r0, =gUnknown_0861D100 - bl LoadCompressedObjectPalette - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - ldr r2, =0x000040f0 - adds r1, r2 - b _081C004E - .pool -_081C0040: - ldr r0, =gUnknown_0861D07C - bl LoadCompressedObjectPalette -_081C0046: - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] -_081C004A: - ldr r0, =0x000040f0 - adds r1, r0 -_081C004E: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _081C008C - .pool -_081C0064: - ldr r0, =gUnknown_08D97B84 - movs r1, 0xE8 - lsls r1, 1 - movs r2, 0x60 - bl LoadCompressedPalette - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040f0 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - movs r0, 0x1 - b _081C008E - .pool -_081C008C: - movs r0, 0 -_081C008E: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81BFEB0 - - thumb_func_start sub_81C0098 -sub_81C0098: @ 81C0098 - push {r4,lr} - adds r3, r0, 0 - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - ldr r2, =0x000040bd - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _081C00D0 - ldr r2, [r1] - ldr r4, =0x000040be - adds r0, r1, r4 - ldrb r1, [r0] - movs r0, 0x64 - muls r1, r0 - adds r1, r2 - adds r0, r3, 0 - movs r2, 0x64 - bl memcpy - b _081C00E6 - .pool -_081C00D0: - ldr r0, [r1] - ldr r2, =0x000040be - adds r1, r2 - ldrb r2, [r1] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - adds r0, r1 - adds r1, r3, 0 - bl sub_8069004 -_081C00E6: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C0098 - - thumb_func_start sub_81C00F0 -sub_81C00F0: @ 81C00F0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r5, r0, 0 - ldr r0, =gUnknown_0203CF1C - ldr r7, [r0] - adds r6, r7, 0 - adds r6, 0x70 - ldr r1, =0x000040f0 - adds r0, r7, r1 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0x1 - beq _081C0198 - cmp r0, 0x1 - bgt _081C0120 - cmp r0, 0 - beq _081C012C - b _081C0314 - .pool -_081C0120: - cmp r0, 0x2 - beq _081C01DC - cmp r0, 0x3 - bne _081C012A - b _081C02A8 -_081C012A: - b _081C0314 -_081C012C: - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - strh r0, [r6] - adds r0, r5, 0 - movs r1, 0x41 - bl GetMonData - strh r0, [r6, 0x2] - adds r0, r5, 0 - movs r1, 0x19 - bl GetMonData - str r0, [r6, 0x10] - adds r0, r5, 0 - movs r1, 0x38 - bl GetMonData - strb r0, [r6, 0x5] - adds r0, r5, 0 - movs r1, 0x2E - bl GetMonData - strb r0, [r6, 0x8] - adds r0, r5, 0 - movs r1, 0xC - bl GetMonData - strh r0, [r6, 0x2E] - adds r0, r5, 0 - movs r1, 0 - bl GetMonData - str r0, [r6, 0xC] - adds r0, r5, 0 - movs r1, 0x4 - bl GetMonData - adds r1, r7, 0 - adds r1, 0xA5 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - beq _081C018C - movs r0, 0x1 - strb r0, [r6, 0x4] - b _081C0322 -_081C018C: - adds r0, r5, 0 - movs r1, 0x2D - bl GetMonData - strb r0, [r6, 0x4] - b _081C0322 -_081C0198: - movs r4, 0 - movs r0, 0x8C - adds r0, r7 - mov r8, r0 - movs r1, 0xA4 - adds r1, r7 - mov r9, r1 - adds r6, r7, 0 - adds r6, 0x84 -_081C01AA: - adds r1, r4, 0 - adds r1, 0xD - adds r0, r5, 0 - bl GetMonData - strh r0, [r6] - adds r1, r4, 0 - adds r1, 0x11 - adds r0, r5, 0 - bl GetMonData - mov r2, r8 - adds r1, r2, r4 - strb r0, [r1] - adds r6, 0x2 - adds r4, 0x1 - cmp r4, 0x3 - bls _081C01AA - adds r0, r5, 0 - movs r1, 0x15 - bl GetMonData - mov r1, r9 - strb r0, [r1] - b _081C0322 -_081C01DC: - ldr r1, [r7] - ldr r0, =gPlayerParty - cmp r1, r0 - beq _081C01F8 - ldr r2, =0x000040bc - adds r0, r7, r2 - ldrb r0, [r0] - cmp r0, 0x2 - beq _081C01F8 - ldr r1, =0x000040ef - adds r0, r7, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _081C0254 -_081C01F8: - adds r0, r5, 0 - bl GetNature - adds r1, r6, 0 - adds r1, 0x33 - strb r0, [r1] - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - strh r0, [r6, 0x20] - adds r0, r5, 0 - movs r1, 0x3A - bl GetMonData - strh r0, [r6, 0x22] - adds r0, r5, 0 - movs r1, 0x3B - bl GetMonData - strh r0, [r6, 0x24] - adds r0, r5, 0 - movs r1, 0x3C - bl GetMonData - strh r0, [r6, 0x26] - adds r0, r5, 0 - movs r1, 0x3E - bl GetMonData - strh r0, [r6, 0x28] - adds r0, r5, 0 - movs r1, 0x3F - bl GetMonData - strh r0, [r6, 0x2A] - adds r0, r5, 0 - movs r1, 0x3D - b _081C02A0 - .pool -_081C0254: - adds r0, r5, 0 - bl GetNature - adds r1, r7, 0 - adds r1, 0xA3 - strb r0, [r1] - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - strh r0, [r6, 0x20] - adds r0, r5, 0 - movs r1, 0x3A - bl GetMonData - strh r0, [r6, 0x22] - adds r0, r5, 0 - movs r1, 0x54 - bl GetMonData - strh r0, [r6, 0x24] - adds r0, r5, 0 - movs r1, 0x55 - bl GetMonData - strh r0, [r6, 0x26] - adds r0, r5, 0 - movs r1, 0x57 - bl GetMonData - strh r0, [r6, 0x28] - adds r0, r5, 0 - movs r1, 0x58 - bl GetMonData - strh r0, [r6, 0x2A] - adds r0, r5, 0 - movs r1, 0x56 -_081C02A0: - bl GetMonData - strh r0, [r6, 0x2C] - b _081C0322 -_081C02A8: - adds r4, r7, 0 - adds r4, 0xA6 - adds r0, r5, 0 - movs r1, 0x7 - adds r2, r4, 0 - bl GetMonData - adds r0, r5, 0 - movs r1, 0x3 - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl ConvertInternationalString - adds r0, r5, 0 - bl sub_81B205C - strb r0, [r6, 0x7] - adds r0, r5, 0 - movs r1, 0x31 - bl GetMonData - adds r1, r7, 0 - adds r1, 0xA2 - strb r0, [r1] - adds r0, r5, 0 - movs r1, 0x1 - bl GetMonData - str r0, [r6, 0x48] - adds r0, r5, 0 - movs r1, 0x23 - bl GetMonData - strb r0, [r6, 0x9] - adds r0, r5, 0 - movs r1, 0x24 - bl GetMonData - strb r0, [r6, 0xA] - adds r0, r5, 0 - movs r1, 0x25 - bl GetMonData - strb r0, [r6, 0xB] - adds r0, r5, 0 - movs r1, 0x20 - bl GetMonData - strh r0, [r6, 0x30] - b _081C0322 -_081C0314: - adds r0, r5, 0 - movs r1, 0x52 - bl GetMonData - strb r0, [r6, 0x6] - movs r0, 0x1 - b _081C0332 -_081C0322: - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - ldr r2, =0x000040f0 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - movs r0, 0 -_081C0332: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81C00F0 - - thumb_func_start sub_81C0348 -sub_81C0348: @ 81C0348 - push {r4-r6,lr} - ldr r6, =gUnknown_0203CF1C - ldr r2, [r6] - ldr r1, =0x000040c0 - adds r0, r2, r1 - ldrb r0, [r0] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _081C037C - movs r0, 0 - movs r1, 0xFF - bl sub_81C1DA4 - movs r0, 0 - movs r1, 0xFF - movs r2, 0 - bl sub_81C1EFC - b _081C03D8 - .pool -_081C037C: - ldr r1, =0x000040c6 - adds r0, r2, r1 - ldrb r1, [r0] - lsls r1, 1 - adds r0, r2, 0 - adds r0, 0x84 - adds r0, r1 - ldrh r0, [r0] - bl sub_81C240C - ldr r0, [r6] - ldr r5, =0x000020bc - adds r0, r5 - movs r1, 0x3 - movs r2, 0 - bl sub_81C2194 - ldr r0, [r6] - ldr r4, =0x000030bc - adds r0, r4 - movs r1, 0x1 - movs r2, 0 - bl sub_81C2194 - ldr r1, [r6] - adds r1, r4 - movs r0, 0x1 - bl SetBgTilemapBuffer - ldr r1, [r6] - adds r1, r5 - movs r0, 0x2 - bl SetBgTilemapBuffer - movs r1, 0x80 - lsls r1, 9 - movs r0, 0x2 - movs r2, 0x1 - bl ChangeBgX - movs r0, 0x13 - bl ClearWindowTilemap - movs r0, 0xD - bl ClearWindowTilemap -_081C03D8: - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x77 - ldrb r0, [r0] - cmp r0, 0 - bne _081C0400 - movs r0, 0 - movs r1, 0xFF - bl sub_81C2074 - b _081C0416 - .pool -_081C0400: - ldr r2, =0x000040c0 - adds r0, r1, r2 - ldrb r0, [r0] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _081C0416 - movs r0, 0xD - bl PutWindowTilemap -_081C0416: - bl sub_81C2524 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r0, 0xC - bl sub_81C2228 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C0348 - - thumb_func_start sub_81C0434 -sub_81C0434: @ 81C0434 - push {lr} - bl FreeAllWindowBuffers - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - bl Free - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C0434 - - thumb_func_start sub_81C044C -sub_81C044C: @ 81C044C - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81C0484 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C044C - - thumb_func_start sub_81C0484 -sub_81C0484: @ 81C0484 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_81221EC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081C04EC - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081C04EC - ldr r4, =gUnknown_0203CF1C - ldr r0, [r4] - ldr r0, [r0, 0x4] - bl SetMainCallback2 - ldr r1, =gUnknown_0203CF20 - ldr r0, [r4] - ldr r2, =0x000040be - adds r0, r2 - ldrb r0, [r0] - strb r0, [r1] - bl sub_81C4898 - bl ResetSpriteData - bl FreeAllSpritePalettes - bl StopCryAndClearCrySongs - ldr r0, =gMPlay_BGM - ldr r1, =0x0000ffff - movs r2, 0x80 - lsls r2, 1 - bl m4aMPlayVolumeControl - ldr r0, =gMonSpritesGfxPtr - ldr r0, [r0] - cmp r0, 0 - bne _081C04E2 - movs r0, 0 - bl sub_806F47C -_081C04E2: - bl sub_81C0434 - adds r0, r5, 0 - bl DestroyTask -_081C04EC: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C0484 - - thumb_func_start sub_81C0510 -sub_81C0510: @ 81C0510 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_81221EC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081C05FE - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r2, 0x80 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _081C05FE - ldr r5, =gMain - ldrh r1, [r5, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _081C0550 - movs r1, 0x1 - negs r1, r1 - adds r0, r4, 0 - bl sub_81C0604 - b _081C05FE - .pool -_081C0550: - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _081C0562 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81C0604 - b _081C05FE -_081C0562: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _081C0576 - bl GetLRKeysState - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081C0582 -_081C0576: - movs r1, 0x1 - negs r1, r1 - adds r0, r4, 0 - bl sub_81C0A8C - b _081C05FE -_081C0582: - ldrh r1, [r5, 0x2E] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _081C0598 - bl GetLRKeysState - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _081C05A2 -_081C0598: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81C0A8C - b _081C05FE -_081C05A2: - ldrh r1, [r5, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081C05E6 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040c0 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - beq _081C05FE - cmp r0, 0 - bne _081C05D8 - bl sub_81C48F0 - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_81C044C - b _081C05FE - .pool -_081C05D8: - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_81C0E48 - b _081C05FE -_081C05E6: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081C05FE - bl sub_81C48F0 - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_81C044C -_081C05FE: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81C0510 - - thumb_func_start sub_81C0604 -sub_81C0604: @ 81C0604 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - adds r4, r5, 0 - ldr r1, =gUnknown_0203CF1C - ldr r3, [r1] - ldr r2, =0x000040c3 - adds r0, r3, r2 - ldrb r0, [r0] - adds r6, r1, 0 - cmp r0, 0 - bne _081C06EE - ldr r1, =0x000040bd - adds r0, r3, r1 - ldrb r2, [r0] - cmp r2, 0x1 - bne _081C0678 - adds r1, 0x3 - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _081C0654 - lsls r1, r5, 24 - asrs r1, 24 - movs r4, 0x2 - eors r1, r2 - negs r0, r1 - orrs r0, r1 - asrs r0, 31 - ands r4, r0 - b _081C065C - .pool -_081C0654: - movs r4, 0x3 - cmp r5, 0x1 - bne _081C065C - movs r4, 0x1 -_081C065C: - ldr r2, [r6] - ldr r0, [r2] - ldr r3, =0x000040be - adds r1, r2, r3 - ldrb r1, [r1] - adds r3, 0x1 - adds r2, r3 - ldrb r2, [r2] - adds r3, r4, 0 - bl sub_80D214C - b _081C0696 - .pool -_081C0678: - bl sub_81B1250 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081C068E - lsls r0, r5, 24 - asrs r0, 24 - bl sub_81C09B4 - b _081C0696 -_081C068E: - lsls r0, r4, 24 - asrs r0, 24 - bl sub_81C08F8 -_081C0696: - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _081C06EE - movs r0, 0x5 - bl PlaySE - ldr r5, =gUnknown_0203CF1C - ldr r0, [r5] - adds r0, 0x77 - ldrb r0, [r0] - cmp r0, 0 - beq _081C06D4 - movs r0, 0x2 - movs r1, 0x1 - bl sub_81C4204 - movs r0, 0xD - bl ClearWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0 - movs r1, 0x2 - bl sub_81C2074 -_081C06D4: - ldr r0, [r5] - ldr r1, =0x000040be - adds r0, r1 - movs r2, 0 - strb r4, [r0] - ldr r1, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - strh r2, [r0, 0x8] - ldr r1, =sub_81C0704 - str r1, [r0] -_081C06EE: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C0604 - - thumb_func_start sub_81C0704 -sub_81C0704: @ 81C0704 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r4, r1, 3 - ldr r6, =gTasks + 0x8 - adds r5, r4, r6 - movs r1, 0 - ldrsh r0, [r5, r1] - cmp r0, 0xC - bls _081C071E - b _081C08BC -_081C071E: - lsls r0, 2 - ldr r1, =_081C0730 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081C0730: - .4byte _081C0764 - .4byte _081C076A - .4byte _081C0780 - .4byte _081C07A8 - .4byte _081C07C8 - .4byte _081C07E0 - .4byte _081C07F0 - .4byte _081C0800 - .4byte _081C0828 - .4byte _081C086C - .4byte _081C0872 - .4byte _081C0878 - .4byte _081C0894 -_081C0764: - bl StopCryAndClearCrySongs - b _081C08EC -_081C076A: - bl sub_81C4898 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040d3 - b _081C0786 - .pool -_081C0780: - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040d4 -_081C0786: - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - bl DestroySpriteAndFreeResources - b _081C08EC - .pool -_081C07A8: - ldr r4, =gUnknown_0203CF1C - ldr r0, [r4] - adds r0, 0xC - bl sub_81C0098 - ldr r0, [r4] - ldr r1, =0x000040f0 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - b _081C08EC - .pool -_081C07C8: - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r0, 0xC - bl sub_81C00F0 - lsls r0, 24 - cmp r0, 0 - bne _081C07DA - b _081C08F2 -_081C07DA: - b _081C08EC - .pool -_081C07E0: - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r0, 0xC - bl sub_81C49E0 - b _081C08EC - .pool -_081C07F0: - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r0, 0xC - bl sub_81C4A08 - b _081C08EC - .pool -_081C0800: - ldr r4, =gUnknown_0203CF1C - ldr r0, [r4] - adds r0, 0x77 - ldrb r0, [r0] - cmp r0, 0 - beq _081C0816 - movs r1, 0x2 - negs r1, r1 - movs r0, 0xA - bl sub_81C2074 -_081C0816: - ldr r0, [r4] - adds r0, 0xC - bl sub_81C2228 - movs r0, 0 - strh r0, [r5, 0x2] - b _081C08EC - .pool -_081C0828: - ldr r4, =gUnknown_0203CF1C - ldr r0, [r4] - adds r0, 0xC - adds r1, r5, 0x2 - bl sub_81C45F4 - ldr r1, [r4] - ldr r2, =0x000040d3 - adds r1, r2 - strb r0, [r1] - ldr r0, [r4] - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0xFF - beq _081C08F2 - ldr r2, =gSprites - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x1 - strh r1, [r0, 0x32] - bl sub_81C0E24 - movs r0, 0 - strh r0, [r5, 0x2] - b _081C08EC - .pool -_081C086C: - bl sub_81C4280 - b _081C08EC -_081C0872: - bl sub_81C25E8 - b _081C08EC -_081C0878: - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040c0 - adds r0, r1 - ldrb r0, [r0] - bl sub_81C2D9C - bl sub_81C2524 - b _081C08EC - .pool -_081C0894: - ldr r2, =gSprites - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040d3 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strh r1, [r0, 0x32] - b _081C08EC - .pool -_081C08BC: - bl sub_81221EC - lsls r0, 24 - cmp r0, 0 - bne _081C08F2 - ldr r0, =sub_81C20F0 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _081C08F2 - strh r0, [r5] - adds r0, r6, 0 - subs r0, 0x8 - adds r0, r4, r0 - ldr r1, =sub_81C0510 - str r1, [r0] - b _081C08F2 - .pool -_081C08EC: - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] -_081C08F2: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81C0704 - - thumb_func_start sub_81C08F8 -sub_81C08F8: @ 81C08F8 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gUnknown_0203CF1C - ldr r2, [r1] - ldr r7, [r2] - ldr r3, =0x000040c0 - adds r0, r2, r3 - ldrb r0, [r0] - adds r5, r1, 0 - cmp r0, 0 - bne _081C0960 - lsls r0, r4, 24 - asrs r3, r0, 24 - movs r1, 0x1 - negs r1, r1 - adds r6, r0, 0 - cmp r3, r1 - bne _081C0928 - ldr r1, =0x000040be - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _081C0988 -_081C0928: - asrs r0, r6, 24 - cmp r0, 0x1 - bne _081C0940 - ldr r0, [r5] - ldr r2, =0x000040be - adds r1, r0, r2 - ldr r3, =0x000040bf - adds r0, r3 - ldrb r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - bcs _081C0988 -_081C0940: - ldr r0, [r5] - ldr r1, =0x000040be - adds r0, r1 - ldrb r0, [r0] - adds r0, r4 - lsls r0, 24 - asrs r0, 24 - b _081C09AE - .pool -_081C0960: - ldr r3, =0x000040be - adds r0, r2, r3 - ldrb r5, [r0] - lsls r6, r4, 24 -_081C0968: - lsls r0, r5, 24 - asrs r0, 24 - asrs r1, r6, 24 - adds r0, r1 - lsls r0, 24 - lsrs r5, r0, 24 - asrs r4, r0, 24 - cmp r4, 0 - blt _081C0988 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040bf - adds r0, r1 - ldrb r0, [r0] - cmp r4, r0 - ble _081C099C -_081C0988: - movs r0, 0x1 - negs r0, r0 - b _081C09AE - .pool -_081C099C: - movs r0, 0x64 - muls r0, r4 - adds r0, r7, r0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _081C0968 - adds r0, r4, 0 -_081C09AE: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81C08F8 - - thumb_func_start sub_81C09B4 -sub_81C09B4: @ 81C09B4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - ldr r6, =gUnknown_0203CF1C - ldr r0, [r6] - ldr r1, [r0] - mov r8, r1 - movs r5, 0 - movs r2, 0 - ldr r3, =gUnknown_0861CC1C - movs r1, 0 - ldrsb r1, [r3, r1] - ldr r4, =0x000040be - adds r0, r4 - ldrb r0, [r0] - cmp r1, r0 - beq _081C09FC - adds r7, r3, 0 - adds r3, r4, 0 -_081C09E0: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x5 - bhi _081C09FC - adds r0, r2, r7 - movs r1, 0 - ldrsb r1, [r0, r1] - ldr r0, [r6] - adds r0, r3 - ldrb r0, [r0] - cmp r1, r0 - bne _081C09E0 - adds r5, r2, 0 -_081C09FC: - mov r0, r12 - lsls r6, r0, 24 - ldr r7, =gUnknown_0861CC1C -_081C0A02: - lsls r0, r5, 24 - asrs r0, 24 - asrs r1, r6, 24 - adds r0, r1 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, r5, 24 - lsrs r0, r1, 24 - cmp r0, 0x5 - bhi _081C0A40 - asrs r0, r1, 24 - adds r0, r7 - movs r4, 0 - ldrsb r4, [r0, r4] - movs r0, 0x64 - muls r0, r4 - add r0, r8 - bl sub_81C0A50 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081C0A02 - adds r0, r4, 0 - b _081C0A44 - .pool -_081C0A40: - movs r0, 0x1 - negs r0, r0 -_081C0A44: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81C09B4 - - thumb_func_start sub_81C0A50 -sub_81C0A50: @ 81C0A50 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _081C0A84 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040be - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _081C0A78 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _081C0A84 -_081C0A78: - movs r0, 0x1 - b _081C0A86 - .pool -_081C0A84: - movs r0, 0 -_081C0A86: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81C0A50 - - thumb_func_start sub_81C0A8C -sub_81C0A8C: @ 81C0A8C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - lsls r0, 24 - lsrs r6, r0, 24 - str r6, [sp] - lsls r1, 24 - lsrs r3, r1, 24 - str r3, [sp, 0x4] - ldr r0, =gUnknown_0203CF1C - mov r8, r0 - ldr r2, [r0] - adds r1, r2, 0 - adds r1, 0x70 - lsls r0, r6, 2 - adds r0, r6 - lsls r7, r0, 3 - ldr r0, =gTasks + 0x8 - mov r9, r0 - adds r0, r7, r0 - str r0, [sp, 0x8] - ldrb r1, [r1, 0x4] - mov r10, r1 - cmp r1, 0 - bne _081C0B6E - lsls r0, r3, 24 - asrs r5, r0, 24 - movs r0, 0x1 - negs r0, r0 - cmp r5, r0 - bne _081C0AE0 - ldr r1, =0x000040c0 - adds r0, r2, r1 - ldr r3, =0x000040c1 - adds r1, r2, r3 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - beq _081C0B6E -_081C0AE0: - cmp r5, 0x1 - bne _081C0AF4 - ldr r1, =0x000040c0 - adds r0, r2, r1 - ldr r3, =0x000040c2 - adds r1, r2, r3 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - beq _081C0B6E -_081C0AF4: - movs r0, 0x5 - bl PlaySE - mov r1, r8 - ldr r0, [r1] - ldr r4, =0x000040c0 - adds r0, r4 - ldrb r0, [r0] - bl sub_81C2C38 - mov r2, r8 - ldr r1, [r2] - adds r1, r4 - ldrb r0, [r1] - ldr r3, [sp, 0x4] - adds r0, r3 - strb r0, [r1] - mov r1, r10 - ldr r0, [sp, 0x8] - strh r1, [r0] - cmp r5, 0x1 - bne _081C0B4C - ldr r1, =sub_81C0B8C - mov r0, r9 - subs r0, 0x8 - adds r0, r7, r0 - ldr r2, [r0] - adds r0, r6, 0 - bl SetTaskFuncWithFollowupFunc - b _081C0B5C - .pool -_081C0B4C: - ldr r1, =sub_81C0CC4 - mov r0, r9 - subs r0, 0x8 - adds r0, r7, r0 - ldr r2, [r0] - ldr r0, [sp] - bl SetTaskFuncWithFollowupFunc -_081C0B5C: - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r2, =0x000040c0 - adds r0, r2 - ldrb r0, [r0] - bl sub_81C2DE4 - bl sub_81C424C -_081C0B6E: - 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 sub_81C0A8C - - thumb_func_start sub_81C0B8C -sub_81C0B8C: @ 81C0B8C - 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, 0 - bne _081C0C2A - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r3, =0x000040c9 - adds r0, r3 - ldrb r0, [r0] - cmp r0, 0 - bne _081C0BE0 - movs r0, 0x1 - strh r0, [r4, 0x2] - movs r0, 0x1 - movs r1, 0x7 - movs r2, 0x1 - bl SetBgAttribute - movs r0, 0x2 - movs r1, 0x7 - movs r2, 0x2 - bl SetBgAttribute - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - b _081C0BFE - .pool -_081C0BE0: - movs r0, 0x2 - strh r0, [r4, 0x2] - movs r0, 0x2 - movs r1, 0x7 - movs r2, 0x1 - bl SetBgAttribute - movs r0, 0x1 - movs r1, 0x7 - movs r2, 0x2 - bl SetBgAttribute - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram -_081C0BFE: - ldrb r0, [r4, 0x2] - movs r1, 0 - movs r2, 0 - bl ChangeBgX - ldrb r0, [r4, 0x2] - ldr r1, =gUnknown_0203CF1C - ldr r1, [r1] - ldr r3, =0x000040c0 - adds r2, r1, r3 - ldrb r2, [r2] - lsls r2, 12 - adds r2, 0xBC - adds r1, r2 - bl SetBgTilemapBuffer - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg -_081C0C2A: - ldrb r0, [r4, 0x2] - movs r1, 0x80 - lsls r1, 6 - movs r2, 0x1 - bl ChangeBgX - ldrh r0, [r4] - adds r0, 0x20 - strh r0, [r4] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _081C0C52 - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81C0C68 - str r0, [r1] -_081C0C52: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C0B8C - - thumb_func_start sub_81C0C68 -sub_81C0C68: @ 81C0C68 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r2, r4, 2 - adds r2, r4 - lsls r2, 3 - ldr r0, =gTasks + 0x8 - adds r2, r0 - ldr r5, =gUnknown_0203CF1C - ldr r3, [r5] - ldr r0, =0x000040c9 - adds r3, r0 - ldrb r0, [r3] - movs r1, 0x1 - eors r0, r1 - movs r1, 0 - strb r0, [r3] - strh r1, [r2, 0x2] - strh r1, [r2] - bl sub_81C1BA0 - ldr r0, [r5] - ldr r1, =0x000040c0 - adds r0, r1 - ldrb r0, [r0] - bl sub_81C2AFC - bl sub_81C4280 - bl sub_81C0E24 - adds r0, r4, 0 - bl SwitchTaskToFollowupFunc - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C0C68 - - thumb_func_start sub_81C0CC4 -sub_81C0CC4: @ 81C0CC4 - 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, 0 - bne _081C0D0C - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040c9 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _081C0CFC - movs r0, 0x2 - b _081C0CFE - .pool -_081C0CFC: - movs r0, 0x1 -_081C0CFE: - strh r0, [r4, 0x2] - ldrb r0, [r4, 0x2] - movs r1, 0x80 - lsls r1, 9 - movs r2, 0 - bl ChangeBgX -_081C0D0C: - ldrb r0, [r4, 0x2] - movs r1, 0x80 - lsls r1, 6 - movs r2, 0x2 - bl ChangeBgX - ldrh r0, [r4] - adds r0, 0x20 - strh r0, [r4] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _081C0D34 - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81C0D44 - str r0, [r1] -_081C0D34: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C0CC4 - - thumb_func_start sub_81C0D44 -sub_81C0D44: @ 81C0D44 - 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, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040c9 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _081C0D8C - movs r0, 0x1 - movs r1, 0x7 - movs r2, 0x1 - bl SetBgAttribute - movs r0, 0x2 - movs r1, 0x7 - movs r2, 0x2 - bl SetBgAttribute - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - b _081C0DA6 - .pool -_081C0D8C: - movs r0, 0x2 - movs r1, 0x7 - movs r2, 0x1 - bl SetBgAttribute - movs r0, 0x1 - movs r1, 0x7 - movs r2, 0x2 - bl SetBgAttribute - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram -_081C0DA6: - ldr r6, =gUnknown_0203CF1C - ldr r2, [r6] - ldr r7, =0x000040c0 - adds r1, r2, r7 - ldrb r0, [r1] - cmp r0, 0x1 - bls _081C0DD0 - ldrb r0, [r4, 0x2] - ldrb r1, [r1] - lsls r1, 12 - ldr r3, =0xfffff0bc - adds r1, r3 - adds r1, r2, r1 - bl SetBgTilemapBuffer - ldrb r0, [r4, 0x2] - movs r1, 0x80 - lsls r1, 9 - movs r2, 0 - bl ChangeBgX -_081C0DD0: - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - ldr r2, [r6] - ldr r0, =0x000040c9 - adds r2, r0 - ldrb r0, [r2] - movs r1, 0x1 - eors r0, r1 - movs r1, 0 - strb r0, [r2] - strh r1, [r4, 0x2] - strh r1, [r4] - bl sub_81C1BA0 - ldr r0, [r6] - adds r0, r7 - ldrb r0, [r0] - bl sub_81C2AFC - bl sub_81C4280 - bl sub_81C0E24 - adds r0, r5, 0 - bl SwitchTaskToFollowupFunc - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C0D44 - - thumb_func_start sub_81C0E24 -sub_81C0E24: @ 81C0E24 - push {lr} - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - ldr r2, =0x000040c0 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x1 - bne _081C0E3C - adds r0, r1, 0 - adds r0, 0xC - bl sub_81C22CC -_081C0E3C: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C0E24 - - thumb_func_start sub_81C0E48 -sub_81C0E48: @ 81C0E48 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r5, =gUnknown_0203CF1C - ldr r0, [r5] - ldr r2, =0x000040c6 - adds r0, r2 - movs r1, 0 - strb r1, [r0] - ldr r1, [r5] - adds r2, r1, r2 - ldrb r0, [r2] - lsls r0, 1 - adds r1, 0x84 - adds r1, r0 - ldrh r6, [r1] - mov r8, r6 - movs r0, 0x13 - bl ClearWindowTilemap - ldr r2, =gSprites - ldr r0, [r5] - ldr r1, =0x000040d5 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - blt _081C0E96 - movs r0, 0xD - bl ClearWindowTilemap -_081C0E96: - movs r4, 0x3 - negs r4, r4 - movs r0, 0x9 - adds r1, r4, 0 - bl sub_81C1DA4 - movs r0, 0x9 - adds r1, r4, 0 - adds r2, r6, 0 - bl sub_81C1EFC - ldr r0, [r5] - ldr r1, =0x000040c8 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _081C0EC4 - movs r0, 0x5 - bl ClearWindowTilemap - movs r0, 0x6 - bl PutWindowTilemap -_081C0EC4: - ldr r0, [r5] - ldr r1, =0x000020bc - adds r0, r1 - movs r1, 0x3 - movs r2, 0 - bl sub_81C2194 - ldr r0, [r5] - ldr r1, =0x000030bc - adds r0, r1 - movs r1, 0x1 - movs r2, 0 - bl sub_81C2194 - mov r0, r8 - bl sub_81C3E9C - bl sub_81C3F44 - bl sub_81C44F0 - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x8 - bl sub_81C4AF8 - ldr r1, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81C0F44 - str r1, [r0] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C0E48 - - thumb_func_start sub_81C0F44 -sub_81C0F44: @ 81C0F44 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - bl sub_81221EC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081C103A - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _081C0F98 - movs r0, 0x4 - strh r0, [r4] - movs r1, 0x1 - negs r1, r1 - ldr r0, =gUnknown_0203CF1C - ldr r2, [r0] - ldr r0, =0x000040c6 - adds r2, r0 - adds r0, r4, 0 - bl sub_81C1070 - b _081C103A - .pool -_081C0F98: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081C0FC0 - movs r0, 0x4 - strh r0, [r4] - ldr r0, =gUnknown_0203CF1C - ldr r2, [r0] - ldr r0, =0x000040c6 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81C1070 - b _081C103A - .pool -_081C0FC0: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081C1026 - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - ldr r2, =0x000040c8 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x1 - beq _081C0FE8 - subs r2, 0x4 - adds r0, r1, r2 - ldr r0, [r0] - ldr r1, =0x00ffffff - ands r0, r1 - movs r1, 0x80 - lsls r1, 11 - cmp r0, r1 - bne _081C1004 -_081C0FE8: - movs r0, 0x5 - bl PlaySE - adds r0, r5, 0 - bl sub_81C11F4 - b _081C103A - .pool -_081C1004: - bl sub_81C1040 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081C101E - movs r0, 0x5 - bl PlaySE - adds r0, r5, 0 - bl sub_81C129C - b _081C103A -_081C101E: - movs r0, 0x20 - bl PlaySE - b _081C103A -_081C1026: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081C103A - movs r0, 0x5 - bl PlaySE - adds r0, r6, 0 - bl sub_81C11F4 -_081C103A: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81C0F44 - - thumb_func_start sub_81C1040 -sub_81C1040: @ 81C1040 - push {lr} - movs r1, 0x1 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r2, r0, 0 - adds r2, 0x84 -_081C104C: - lsls r0, r1, 1 - adds r0, r2, r0 - ldrh r0, [r0] - cmp r0, 0 - beq _081C1060 - movs r0, 0x1 - b _081C106C - .pool -_081C1060: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x3 - bls _081C104C - movs r0, 0 -_081C106C: - pop {r1} - bx r1 - thumb_func_end sub_81C1040 - - thumb_func_start sub_81C1070 -sub_81C1070: @ 81C1070 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r7, r0, 0 - adds r4, r1, 0 - mov r8, r2 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x5 - bl PlaySE - mov r0, r8 - ldrb r6, [r0] - movs r2, 0 - lsls r4, 24 - asrs r4, 24 - mov r12, r4 - movs r1, 0 - ldrsh r4, [r7, r1] - ldrb r0, [r7] - lsls r3, r0, 24 -_081C109C: - lsls r0, r6, 24 - asrs r0, 24 - add r0, r12 - lsls r0, 24 - lsrs r6, r0, 24 - asrs r0, 24 - cmp r0, r4 - ble _081C10B0 - movs r6, 0 - b _081C10B6 -_081C10B0: - cmp r0, 0 - bge _081C10B6 - lsrs r6, r3, 24 -_081C10B6: - lsls r0, r6, 24 - asrs r1, r0, 24 - mov r9, r0 - cmp r1, 0x4 - bne _081C10C2 - b _081C11CC -_081C10C2: - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - lsls r1, 1 - adds r0, 0x84 - adds r0, r1 - ldrh r5, [r0] - cmp r5, 0 - bne _081C10E2 - lsls r0, r2, 24 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r2, r0, 24 - asrs r0, 24 - cmp r0, 0x3 - ble _081C109C -_081C10E2: - adds r0, r5, 0 - bl sub_81C240C - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r5, 0 - bl sub_81C3E9C - mov r1, r8 - ldrb r0, [r1] - cmp r0, 0x4 - bne _081C1110 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040c4 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0 - beq _081C1118 -_081C1110: - movs r1, 0x2 - ldrsh r0, [r7, r1] - cmp r0, 0x1 - bne _081C115E -_081C1118: - movs r0, 0x13 - bl ClearWindowTilemap - ldr r2, =gSprites - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040d5 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - blt _081C1142 - movs r0, 0xD - bl ClearWindowTilemap -_081C1142: - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r4, 0x3 - negs r4, r4 - movs r0, 0x9 - adds r1, r4, 0 - bl sub_81C1DA4 - movs r0, 0x9 - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_81C1EFC -_081C115E: - mov r1, r8 - ldrb r0, [r1] - cmp r0, 0x4 - beq _081C11A0 - mov r1, r9 - asrs r0, r1, 24 - cmp r0, 0x4 - bne _081C11A0 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040c4 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0 - bne _081C11A0 - movs r0, 0xE - bl ClearWindowTilemap - movs r0, 0xF - bl ClearWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0 - movs r1, 0x3 - bl sub_81C1DA4 - movs r0, 0 - movs r1, 0x3 - movs r2, 0 - bl sub_81C1EFC -_081C11A0: - mov r0, r8 - strb r6, [r0] - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040c6 - adds r0, r1 - cmp r8, r0 - bne _081C11E0 - movs r0, 0x8 - bl sub_81C4D18 - b _081C11E6 - .pool -_081C11CC: - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040c4 - adds r0, r1 - ldrh r5, [r0] - b _081C10E2 - .pool -_081C11E0: - movs r0, 0x12 - bl sub_81C4D18 -_081C11E6: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81C1070 - - thumb_func_start sub_81C11F4 -sub_81C11F4: @ 81C11F4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x8 - bl sub_81C4C60 - movs r0, 0x6 - bl ClearWindowTilemap - movs r0, 0x5 - bl PutWindowTilemap - movs r0, 0 - bl sub_81C3E9C - ldr r4, =gUnknown_0203CF1C - ldr r0, [r4] - ldr r1, =0x000020bc - adds r0, r1 - movs r1, 0x3 - movs r2, 0x1 - bl sub_81C2194 - ldr r0, [r4] - ldr r1, =0x000030bc - adds r0, r1 - movs r1, 0x1 - movs r2, 0x1 - bl sub_81C2194 - bl sub_81C4064 - ldr r0, [r4] - ldr r1, =0x000040c6 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x4 - beq _081C125E - movs r0, 0xE - bl ClearWindowTilemap - movs r0, 0xF - bl ClearWindowTilemap - movs r0, 0 - movs r1, 0x3 - bl sub_81C1DA4 - movs r0, 0 - movs r1, 0x3 - movs r2, 0 - bl sub_81C1EFC -_081C125E: - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81C0510 - str r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C11F4 - - thumb_func_start sub_81C129C -sub_81C129C: @ 81C129C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r2, =0x000040c6 - adds r1, r0, r2 - ldrb r1, [r1] - adds r2, 0x1 - adds r0, r2 - strb r1, [r0] - movs r0, 0x1 - bl sub_81C4C84 - movs r0, 0x12 - bl sub_81C4AF8 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81C12E4 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C129C - - thumb_func_start sub_81C12E4 -sub_81C12E4: @ 81C12E4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - bl sub_81221EC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081C13AA - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _081C1338 - movs r0, 0x3 - strh r0, [r4] - movs r1, 0x1 - negs r1, r1 - ldr r0, =gUnknown_0203CF1C - ldr r2, [r0] - ldr r0, =0x000040c7 - adds r2, r0 - adds r0, r4, 0 - bl sub_81C1070 - b _081C13AA - .pool -_081C1338: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081C1360 - movs r0, 0x3 - strh r0, [r4] - ldr r0, =gUnknown_0203CF1C - ldr r2, [r0] - ldr r0, =0x000040c7 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81C1070 - b _081C13AA - .pool -_081C1360: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081C139A - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r2, =0x000040c6 - adds r1, r0, r2 - adds r2, 0x1 - adds r0, r2 - ldrb r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - bne _081C1390 - adds r0, r5, 0 - movs r1, 0 - bl sub_81C13B0 - b _081C13AA - .pool -_081C1390: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_81C13B0 - b _081C13AA -_081C139A: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081C13AA - adds r0, r6, 0 - movs r1, 0 - bl sub_81C13B0 -_081C13AA: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81C12E4 - - thumb_func_start sub_81C13B0 -sub_81C13B0: @ 81C13B0 - push {r4-r7,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x5 - bl PlaySE - movs r0, 0 - bl sub_81C4C84 - movs r0, 0x12 - bl sub_81C4C60 - cmp r4, 0x1 - bne _081C1464 - ldr r0, =gUnknown_0203CF1C - ldr r3, [r0] - ldr r1, =0x000040bd - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _081C1410 - ldr r0, [r3] - ldr r2, =0x000040be - adds r1, r3, r2 - ldrb r2, [r1] - movs r1, 0x64 - muls r1, r2 - adds r0, r1 - ldr r4, =0x000040c6 - adds r1, r3, r4 - ldrb r1, [r1] - adds r4, 0x1 - adds r2, r3, r4 - ldrb r2, [r2] - bl sub_81C14BC - b _081C1430 - .pool -_081C1410: - ldr r0, [r3] - ldr r2, =0x000040be - adds r1, r3, r2 - ldrb r2, [r1] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - adds r0, r1 - ldr r4, =0x000040c6 - adds r1, r3, r4 - ldrb r1, [r1] - adds r4, 0x1 - adds r2, r3, r4 - ldrb r2, [r2] - bl sub_81C15EC -_081C1430: - ldr r5, =gUnknown_0203CF1C - ldr r0, [r5] - adds r0, 0xC - bl sub_81C0098 - ldr r1, [r5] - ldr r6, =0x000040c6 - adds r0, r1, r6 - ldrb r0, [r0] - ldr r4, =0x000040c7 - adds r1, r4 - ldrb r1, [r1] - bl sub_81C40A0 - ldr r1, [r5] - adds r0, r1, r6 - ldrb r0, [r0] - adds r1, r4 - ldrb r1, [r1] - bl sub_81C4568 - ldr r0, [r5] - adds r4, r0, r4 - ldrb r1, [r4] - adds r0, r6 - strb r1, [r0] -_081C1464: - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - ldr r2, =0x000040c6 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 1 - adds r1, 0x84 - adds r1, r0 - ldrh r4, [r1] - adds r0, r4, 0 - bl sub_81C3E9C - adds r0, r4, 0 - bl sub_81C240C - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81C0F44 - str r1, [r0] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C13B0 - - thumb_func_start sub_81C14BC -sub_81C14BC: @ 81C14BC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x28 - adds r7, r0, 0 - adds r4, r1, 0 - adds r6, r2, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r6, 24 - lsrs r6, 24 - ldr r0, =gUnknown_0203CF1C - ldr r2, [r0] - lsls r0, r4, 1 - mov r10, r0 - adds r1, r2, 0 - adds r1, 0x84 - adds r0, r1, r0 - str r0, [sp, 0x8] - ldrh r0, [r0] - mov r3, sp - adds r3, 0x2 - str r3, [sp, 0x1C] - strh r0, [r3] - lsls r0, r6, 1 - mov r9, r0 - add r1, r9 - str r1, [sp, 0xC] - ldrh r1, [r1] - mov r0, sp - strh r1, [r0] - adds r1, r2, 0 - adds r1, 0x8C - adds r3, r1, r4 - str r3, [sp, 0x10] - ldrb r0, [r3] - mov r3, sp - adds r3, 0x5 - str r3, [sp, 0x24] - strb r0, [r3] - adds r1, r6 - str r1, [sp, 0x14] - ldrb r0, [r1] - mov r1, sp - adds r1, 0x4 - str r1, [sp, 0x20] - strb r0, [r1] - adds r2, 0xA4 - str r2, [sp, 0x18] - ldrb r0, [r2] - mov r5, sp - adds r5, 0x6 - strb r0, [r5] - ldr r1, =gUnknown_08329D22 - adds r0, r4, r1 - ldrb r0, [r0] - mov r8, r0 - ldrb r0, [r5] - adds r2, r0, 0 - mov r3, r8 - ands r2, r3 - mov r3, r10 - asrs r2, r3 - lsls r2, 24 - lsrs r2, 24 - adds r1, r6, r1 - ldrb r1, [r1] - mov r12, r1 - adds r1, r0, 0 - mov r3, r12 - ands r1, r3 - mov r3, r9 - asrs r1, r3 - lsls r1, 24 - lsrs r1, 24 - mov r3, r8 - bics r0, r3 - strb r0, [r5] - ldrb r0, [r5] - mov r3, r12 - bics r0, r3 - strb r0, [r5] - mov r0, r9 - lsls r2, r0 - mov r3, r10 - lsls r1, r3 - adds r2, r1 - ldrb r0, [r5] - orrs r0, r2 - strb r0, [r5] - adds r1, r4, 0 - adds r1, 0xD - adds r0, r7, 0 - mov r2, sp - bl SetMonData - adds r1, r6, 0 - adds r1, 0xD - adds r0, r7, 0 - ldr r2, [sp, 0x1C] - bl SetMonData - adds r4, 0x11 - adds r0, r7, 0 - adds r1, r4, 0 - ldr r2, [sp, 0x20] - bl SetMonData - adds r6, 0x11 - adds r0, r7, 0 - adds r1, r6, 0 - ldr r2, [sp, 0x24] - bl SetMonData - adds r0, r7, 0 - movs r1, 0x15 - adds r2, r5, 0 - bl SetMonData - mov r0, sp - ldrh r0, [r0] - ldr r1, [sp, 0x8] - strh r0, [r1] - ldr r3, [sp, 0x1C] - ldrh r0, [r3] - ldr r1, [sp, 0xC] - strh r0, [r1] - ldr r3, [sp, 0x20] - ldrb r0, [r3] - ldr r1, [sp, 0x10] - strb r0, [r1] - ldr r3, [sp, 0x24] - ldrb r0, [r3] - ldr r1, [sp, 0x14] - strb r0, [r1] - ldrb r0, [r5] - ldr r3, [sp, 0x18] - strb r0, [r3] - 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_81C14BC - - thumb_func_start sub_81C15EC -sub_81C15EC: @ 81C15EC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x28 - adds r7, r0, 0 - adds r4, r1, 0 - adds r6, r2, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r6, 24 - lsrs r6, 24 - ldr r0, =gUnknown_0203CF1C - ldr r2, [r0] - lsls r0, r4, 1 - mov r10, r0 - adds r1, r2, 0 - adds r1, 0x84 - adds r0, r1, r0 - str r0, [sp, 0x8] - ldrh r0, [r0] - mov r3, sp - adds r3, 0x2 - str r3, [sp, 0x1C] - strh r0, [r3] - lsls r0, r6, 1 - mov r9, r0 - add r1, r9 - str r1, [sp, 0xC] - ldrh r1, [r1] - mov r0, sp - strh r1, [r0] - adds r1, r2, 0 - adds r1, 0x8C - adds r3, r1, r4 - str r3, [sp, 0x10] - ldrb r0, [r3] - mov r3, sp - adds r3, 0x5 - str r3, [sp, 0x24] - strb r0, [r3] - adds r1, r6 - str r1, [sp, 0x14] - ldrb r0, [r1] - mov r1, sp - adds r1, 0x4 - str r1, [sp, 0x20] - strb r0, [r1] - adds r2, 0xA4 - str r2, [sp, 0x18] - ldrb r0, [r2] - mov r5, sp - adds r5, 0x6 - strb r0, [r5] - ldr r1, =gUnknown_08329D22 - adds r0, r4, r1 - ldrb r0, [r0] - mov r8, r0 - ldrb r0, [r5] - adds r2, r0, 0 - mov r3, r8 - ands r2, r3 - mov r3, r10 - asrs r2, r3 - lsls r2, 24 - lsrs r2, 24 - adds r1, r6, r1 - ldrb r1, [r1] - mov r12, r1 - adds r1, r0, 0 - mov r3, r12 - ands r1, r3 - mov r3, r9 - asrs r1, r3 - lsls r1, 24 - lsrs r1, 24 - mov r3, r8 - bics r0, r3 - strb r0, [r5] - ldrb r0, [r5] - mov r3, r12 - bics r0, r3 - strb r0, [r5] - mov r0, r9 - lsls r2, r0 - mov r3, r10 - lsls r1, r3 - adds r2, r1 - ldrb r0, [r5] - orrs r0, r2 - strb r0, [r5] - adds r1, r4, 0 - adds r1, 0xD - adds r0, r7, 0 - mov r2, sp - bl SetBoxMonData - adds r1, r6, 0 - adds r1, 0xD - adds r0, r7, 0 - ldr r2, [sp, 0x1C] - bl SetBoxMonData - adds r4, 0x11 - adds r0, r7, 0 - adds r1, r4, 0 - ldr r2, [sp, 0x20] - bl SetBoxMonData - adds r6, 0x11 - adds r0, r7, 0 - adds r1, r6, 0 - ldr r2, [sp, 0x24] - bl SetBoxMonData - adds r0, r7, 0 - movs r1, 0x15 - adds r2, r5, 0 - bl SetBoxMonData - mov r0, sp - ldrh r0, [r0] - ldr r1, [sp, 0x8] - strh r0, [r1] - ldr r3, [sp, 0x1C] - ldrh r0, [r3] - ldr r1, [sp, 0xC] - strh r0, [r1] - ldr r3, [sp, 0x20] - ldrb r0, [r3] - ldr r1, [sp, 0x10] - strb r0, [r1] - ldr r3, [sp, 0x24] - ldrb r0, [r3] - ldr r1, [sp, 0x14] - strb r0, [r1] - ldrb r0, [r5] - ldr r3, [sp, 0x18] - strb r0, [r3] - 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_81C15EC - - thumb_func_start sub_81C171C -sub_81C171C: @ 81C171C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_81C44F0 - movs r0, 0x8 - bl sub_81C4AF8 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81C174C - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C171C - - thumb_func_start sub_81C174C -sub_81C174C: @ 81C174C - push {r4-r6,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 - bl sub_81221EC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081C176A - b _081C189A -_081C176A: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r2, 0x80 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _081C177A - b _081C189A -_081C177A: - ldr r6, =gMain - ldrh r1, [r6, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _081C17B4 - movs r0, 0x4 - strh r0, [r4] - movs r1, 0x1 - negs r1, r1 - ldr r0, =gUnknown_0203CF1C - ldr r2, [r0] - ldr r0, =0x000040c6 - adds r2, r0 - adds r0, r4, 0 - bl sub_81C1070 - b _081C189A - .pool -_081C17B4: - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _081C17DC - movs r0, 0x4 - strh r0, [r4] - ldr r0, =gUnknown_0203CF1C - ldr r2, [r0] - ldr r1, =0x000040c6 - adds r2, r1 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81C1070 - b _081C189A - .pool -_081C17DC: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _081C17F0 - bl GetLRKeysState - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081C17FC -_081C17F0: - movs r1, 0x1 - negs r1, r1 - adds r0, r5, 0 - bl sub_81C0A8C - b _081C189A -_081C17FC: - ldrh r1, [r6, 0x2E] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _081C1812 - bl GetLRKeysState - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _081C181C -_081C1812: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_81C0A8C - b _081C189A -_081C181C: - ldrh r1, [r6, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081C1876 - bl sub_81C18A8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081C1868 - bl sub_81C48F0 - movs r0, 0x5 - bl PlaySE - ldr r2, =gUnknown_0203CF21 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040c6 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldr r1, =gSpecialVar_0x8005 - ldrb r0, [r2] - strh r0, [r1] - adds r0, r5, 0 - bl sub_81C044C - b _081C189A - .pool -_081C1868: - movs r0, 0x20 - bl PlaySE - adds r0, r5, 0 - bl sub_81C18F4 - b _081C189A -_081C1876: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081C189A - bl sub_81C48F0 - movs r0, 0x5 - bl PlaySE - ldr r1, =gUnknown_0203CF21 - movs r0, 0x4 - strb r0, [r1] - ldr r1, =gSpecialVar_0x8005 - movs r0, 0x4 - strh r0, [r1] - adds r0, r5, 0 - bl sub_81C044C -_081C189A: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C174C - - thumb_func_start sub_81C18A8 -sub_81C18A8: @ 81C18A8 - push {lr} - ldr r0, =gUnknown_0203CF1C - ldr r2, [r0] - ldr r0, =0x000040c6 - adds r1, r2, r0 - ldrb r0, [r1] - cmp r0, 0x4 - beq _081C18DA - ldr r3, =0x000040c4 - adds r0, r2, r3 - ldrh r0, [r0] - cmp r0, 0 - beq _081C18DA - ldrb r1, [r1] - lsls r1, 1 - adds r0, r2, 0 - adds r0, 0x84 - adds r0, r1 - ldrh r0, [r0] - bl sub_81B6D14 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081C18EC -_081C18DA: - movs r0, 0x1 - b _081C18EE - .pool -_081C18EC: - movs r0, 0 -_081C18EE: - pop {r1} - bx r1 - thumb_func_end sub_81C18A8 - - thumb_func_start sub_81C18F4 -sub_81C18F4: @ 81C18F4 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0xE - bl ClearWindowTilemap - movs r0, 0xF - bl ClearWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0 - movs r1, 0x3 - bl sub_81C1DA4 - movs r0, 0 - movs r1, 0x3 - movs r2, 0 - bl sub_81C1EFC - bl sub_81C4154 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81C1940 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C18F4 - - thumb_func_start sub_81C1940 -sub_81C1940: @ 81C1940 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r7, r0, 24 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - mov r8, r0 - ldr r0, =gTasks + 0x8 - mov r9, r0 - mov r4, r8 - add r4, r9 - ldr r0, =sub_81C1E20 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081C196C - b _081C1B74 -_081C196C: - ldr r6, =gMain - ldrh r1, [r6, 0x2E] - movs r0, 0x40 - ands r0, r1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - beq _081C19B0 - movs r0, 0x1 - strh r0, [r4, 0x2] - movs r0, 0x4 - strh r0, [r4] - movs r1, 0x1 - negs r1, r1 - ldr r0, =gUnknown_0203CF1C - ldr r2, [r0] - ldr r0, =0x000040c6 - adds r2, r0 - adds r0, r4, 0 - bl sub_81C1070 - movs r0, 0 - strh r0, [r4, 0x2] - b _081C1B6A - .pool -_081C19B0: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081C19DC - movs r0, 0x1 - strh r0, [r4, 0x2] - movs r0, 0x4 - strh r0, [r4] - ldr r0, =gUnknown_0203CF1C - ldr r2, [r0] - ldr r1, =0x000040c6 - adds r2, r1 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81C1070 - strh r5, [r4, 0x2] - b _081C1B6A - .pool -_081C19DC: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _081C19F0 - bl GetLRKeysState - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081C1A64 -_081C19F0: - ldr r4, =gUnknown_0203CF1C - ldr r0, [r4] - ldr r2, =0x000040c0 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0x2 - bne _081C1A00 - b _081C1B74 -_081C1A00: - movs r0, 0x13 - bl ClearWindowTilemap - ldr r2, =gSprites - ldr r0, [r4] - ldr r1, =0x000040d5 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - blt _081C1A28 - movs r0, 0xD - bl ClearWindowTilemap -_081C1A28: - ldr r1, [r4] - ldr r2, =0x000040c6 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 1 - adds r1, 0x84 - adds r1, r0 - ldrh r5, [r1] - mov r0, r9 - subs r0, 0x8 - add r0, r8 - ldr r1, =sub_81C174C - str r1, [r0] - movs r1, 0x1 - negs r1, r1 - adds r0, r7, 0 - b _081C1ACE - .pool -_081C1A64: - ldrh r1, [r6, 0x2E] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _081C1A7A - bl GetLRKeysState - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _081C1B04 -_081C1A7A: - ldr r4, =gUnknown_0203CF1C - ldr r0, [r4] - ldr r1, =0x000040c0 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x3 - beq _081C1B74 - movs r0, 0x13 - bl ClearWindowTilemap - ldr r2, =gSprites - ldr r0, [r4] - ldr r1, =0x000040d5 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - blt _081C1AB0 - movs r0, 0xD - bl ClearWindowTilemap -_081C1AB0: - ldr r1, [r4] - ldr r2, =0x000040c6 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 1 - adds r1, 0x84 - adds r1, r0 - ldrh r5, [r1] - mov r0, r9 - subs r0, 0x8 - add r0, r8 - ldr r1, =sub_81C174C - str r1, [r0] - adds r0, r7, 0 - movs r1, 0x1 -_081C1ACE: - bl sub_81C0A8C - movs r4, 0x2 - negs r4, r4 - movs r0, 0x9 - adds r1, r4, 0 - bl sub_81C1DA4 - movs r0, 0x9 - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_81C1EFC - b _081C1B74 - .pool -_081C1B04: - ldrh r1, [r6, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _081C1B74 - movs r0, 0x13 - bl ClearWindowTilemap - ldr r2, =gSprites - ldr r4, =gUnknown_0203CF1C - ldr r0, [r4] - ldr r1, =0x000040d5 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - blt _081C1B38 - movs r0, 0xD - bl ClearWindowTilemap -_081C1B38: - ldr r1, [r4] - ldr r2, =0x000040c6 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 1 - adds r1, 0x84 - adds r1, r0 - ldrh r5, [r1] - adds r0, r5, 0 - bl sub_81C3E9C - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r4, 0x3 - negs r4, r4 - movs r0, 0x9 - adds r1, r4, 0 - bl sub_81C1DA4 - movs r0, 0x9 - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_81C1EFC -_081C1B6A: - mov r0, r9 - subs r0, 0x8 - add r0, r8 - ldr r1, =sub_81C174C - str r1, [r0] -_081C1B74: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C1940 - - thumb_func_start sub_81C1B94 -sub_81C1B94: @ 81C1B94 - ldr r0, =gUnknown_0203CF21 - ldrb r0, [r0] - bx lr - .pool - thumb_func_end sub_81C1B94 - - thumb_func_start sub_81C1BA0 -sub_81C1BA0: @ 81C1BA0 - push {r4-r7,lr} - sub sp, 0xC - movs r0, 0x20 - bl Alloc - adds r4, r0, 0 - movs r5, 0 -_081C1BAE: - lsls r0, r5, 25 - lsrs r1, r0, 24 - adds r6, r1, 0 - ldr r0, =gUnknown_0203CF1C - ldr r3, [r0] - ldr r2, =0x000040c1 - adds r0, r3, r2 - ldrb r0, [r0] - cmp r5, r0 - bcs _081C1BD8 - lsls r0, r1, 1 - adds r0, r4 - movs r1, 0x40 - strh r1, [r0] - strh r1, [r0, 0x2] - movs r1, 0x50 - b _081C1BEE - .pool -_081C1BD8: - ldr r7, =0x000040c2 - adds r0, r3, r7 - ldrb r2, [r0] - cmp r5, r2 - bls _081C1BF8 - lsls r0, r1, 1 - adds r0, r4 - movs r1, 0x4A - strh r1, [r0] - strh r1, [r0, 0x2] - movs r1, 0x5A -_081C1BEE: - strh r1, [r0, 0x10] - strh r1, [r0, 0x12] - b _081C1C78 - .pool -_081C1BF8: - ldr r7, =0x000040c0 - adds r0, r3, r7 - ldrb r0, [r0] - cmp r5, r0 - bcs _081C1C1C - lsls r1, 1 - adds r1, r4 - movs r0, 0x46 - strh r0, [r1] - movs r0, 0x47 - strh r0, [r1, 0x2] - movs r0, 0x56 - strh r0, [r1, 0x10] - movs r0, 0x57 - b _081C1C76 - .pool -_081C1C1C: - cmp r5, r0 - bne _081C1C4C - cmp r5, r2 - beq _081C1C38 - lsls r1, 1 - adds r1, r4 - movs r0, 0x41 - strh r0, [r1] - movs r0, 0x42 - strh r0, [r1, 0x2] - movs r0, 0x51 - strh r0, [r1, 0x10] - movs r0, 0x52 - b _081C1C76 -_081C1C38: - lsls r1, 1 - adds r1, r4 - movs r0, 0x4B - strh r0, [r1] - movs r0, 0x4C - strh r0, [r1, 0x2] - movs r0, 0x5B - strh r0, [r1, 0x10] - movs r0, 0x5C - b _081C1C76 -_081C1C4C: - cmp r5, r2 - beq _081C1C64 - lsls r1, 1 - adds r1, r4 - movs r0, 0x43 - strh r0, [r1] - movs r0, 0x44 - strh r0, [r1, 0x2] - movs r0, 0x53 - strh r0, [r1, 0x10] - movs r0, 0x54 - b _081C1C76 -_081C1C64: - lsls r1, r6, 1 - adds r1, r4 - movs r0, 0x48 - strh r0, [r1] - movs r0, 0x49 - strh r0, [r1, 0x2] - movs r0, 0x58 - strh r0, [r1, 0x10] - movs r0, 0x59 -_081C1C76: - strh r0, [r1, 0x12] -_081C1C78: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bls _081C1BAE - movs r0, 0x8 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x10 - str r0, [sp, 0x8] - movs r0, 0x3 - adds r1, r4, 0 - movs r2, 0xB - movs r3, 0 - bl CopyToBgTilemapBufferRect_ChangePalette - movs r0, 0x3 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r4, 0 - bl Free - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81C1BA0 - - thumb_func_start sub_81C1CB0 -sub_81C1CB0: @ 81C1CB0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r4, r0, 0 - mov r8, r1 - lsls r2, 24 - lsrs r6, r2, 24 - lsls r3, 24 - lsrs r5, r3, 24 - ldrb r1, [r4, 0x6] - ldrb r0, [r4, 0x7] - lsls r0, 1 - muls r0, r1 - bl Alloc - adds r7, r0, 0 - mov r1, sp - ldrh r0, [r4, 0x4] - strh r0, [r1] - ldrb r1, [r4, 0x7] - ldrb r0, [r4, 0x6] - adds r2, r1, 0 - muls r2, r0 - movs r0, 0x80 - lsls r0, 17 - orrs r2, r0 - mov r0, sp - adds r1, r7, 0 - bl CpuSet - ldrb r0, [r4, 0x6] - cmp r0, r6 - beq _081C1D60 - cmp r5, 0 - bne _081C1D30 - movs r5, 0 - ldrb r0, [r4, 0x7] - cmp r5, r0 - bcs _081C1D60 -_081C1D00: - ldrb r2, [r4, 0x6] - adds r1, r2, 0 - muls r1, r5 - adds r3, r6, r1 - lsls r3, 1 - ldr r0, [r4] - adds r0, r3 - lsls r1, 1 - adds r1, r7, r1 - subs r2, r6 - ldr r3, =0x001fffff - ands r2, r3 - bl CpuSet - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldrb r3, [r4, 0x7] - cmp r5, r3 - bcc _081C1D00 - b _081C1D60 - .pool -_081C1D30: - movs r5, 0 - ldrb r0, [r4, 0x7] - cmp r5, r0 - bcs _081C1D60 -_081C1D38: - ldrb r2, [r4, 0x6] - adds r1, r2, 0 - muls r1, r5 - lsls r3, r1, 1 - ldr r0, [r4] - adds r0, r3 - adds r1, r6, r1 - lsls r1, 1 - adds r1, r7, r1 - subs r2, r6 - ldr r3, =0x001fffff - ands r2, r3 - bl CpuSet - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldrb r3, [r4, 0x7] - cmp r5, r3 - bcc _081C1D38 -_081C1D60: - movs r5, 0 - b _081C1D8A - .pool -_081C1D68: - ldrb r2, [r4, 0x6] - adds r0, r2, 0 - muls r0, r5 - lsls r0, 1 - adds r0, r7, r0 - ldrb r1, [r4, 0x9] - adds r1, r5 - lsls r1, 5 - ldrb r3, [r4, 0x8] - adds r1, r3 - lsls r1, 1 - add r1, r8 - bl CpuSet - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_081C1D8A: - ldrb r0, [r4, 0x7] - cmp r5, r0 - bcc _081C1D68 - adds r0, r7, 0 - bl Free - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81C1CB0 - - thumb_func_start sub_81C1DA4 -sub_81C1DA4: @ 81C1DA4 - push {r4-r6,lr} - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 16 - lsrs r4, r1, 16 - asrs r1, 16 - ldr r3, =gUnknown_0861CC04 - ldrb r2, [r3, 0x6] - cmp r1, r2 - ble _081C1DBA - adds r4, r2, 0 -_081C1DBA: - lsls r0, r4, 16 - asrs r0, 16 - cmp r0, 0 - beq _081C1DC6 - cmp r0, r2 - bne _081C1DE8 -_081C1DC6: - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - ldr r0, =0x000020bc - adds r1, r0 - lsls r2, r4, 24 - lsrs r2, 24 - adds r0, r3, 0 - movs r3, 0x1 - bl sub_81C1CB0 - b _081C1E12 - .pool -_081C1DE8: - ldr r5, =sub_81C1E20 - adds r0, r5, 0 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - bne _081C1E04 - adds r0, r5, 0 - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r2, r0, 24 -_081C1E04: - ldr r1, =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - strh r4, [r0, 0x8] - strh r6, [r0, 0xA] -_081C1E12: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C1DA4 - - thumb_func_start sub_81C1E20 -sub_81C1E20: @ 81C1E20 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - ldrh r0, [r4] - ldrh r1, [r4, 0x2] - adds r0, r1 - strh r0, [r4, 0x2] - lsls r0, 16 - cmp r0, 0 - bge _081C1E50 - movs r0, 0 - strh r0, [r4, 0x2] - ldr r7, =gUnknown_0861CC04 - b _081C1E60 - .pool -_081C1E50: - movs r0, 0x2 - ldrsh r1, [r4, r0] - ldr r0, =gUnknown_0861CC04 - ldrb r2, [r0, 0x6] - adds r7, r0, 0 - cmp r1, r2 - ble _081C1E60 - strh r2, [r4, 0x2] -_081C1E60: - ldr r5, =gUnknown_0203CF1C - ldr r1, [r5] - ldr r0, =0x000020bc - adds r1, r0 - ldrb r2, [r4, 0x2] - adds r0, r7, 0 - movs r3, 0x1 - bl sub_81C1CB0 - movs r1, 0x2 - ldrsh r0, [r4, r1] - cmp r0, 0 - ble _081C1E80 - ldrb r7, [r7, 0x6] - cmp r0, r7 - blt _081C1EE0 -_081C1E80: - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0 - bge _081C1EAC - ldr r0, [r5] - ldr r1, =0x000040c0 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x2 - bne _081C1ED4 - movs r0, 0xE - bl PutWindowTilemap - b _081C1ED4 - .pool -_081C1EAC: - ldr r2, =gSprites - ldr r0, [r5] - ldr r1, =0x000040d5 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - blt _081C1ECE - movs r0, 0xD - bl PutWindowTilemap -_081C1ECE: - movs r0, 0x13 - bl PutWindowTilemap -_081C1ED4: - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r6, 0 - bl DestroyTask -_081C1EE0: - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C1E20 - - thumb_func_start sub_81C1EFC -sub_81C1EFC: @ 81C1EFC - push {r4-r7,lr} - lsls r0, 16 - lsrs r7, r0, 16 - lsls r1, 16 - lsls r2, 16 - lsrs r6, r2, 16 - lsrs r4, r1, 16 - asrs r1, 16 - ldr r3, =gUnknown_0861CC10 - ldrb r2, [r3, 0x6] - cmp r1, r2 - ble _081C1F16 - adds r4, r2, 0 -_081C1F16: - lsls r0, r4, 16 - asrs r0, 16 - cmp r0, 0 - beq _081C1F22 - cmp r0, r2 - bne _081C1F44 -_081C1F22: - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - ldr r0, =0x000030bc - adds r1, r0 - lsls r2, r4, 24 - lsrs r2, 24 - adds r0, r3, 0 - movs r3, 0x1 - bl sub_81C1CB0 - b _081C1F70 - .pool -_081C1F44: - ldr r5, =sub_81C1F80 - adds r0, r5, 0 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - bne _081C1F60 - adds r0, r5, 0 - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r2, r0, 24 -_081C1F60: - ldr r1, =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - strh r4, [r0, 0x8] - strh r7, [r0, 0xA] - strh r6, [r0, 0xC] -_081C1F70: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C1EFC - - thumb_func_start sub_81C1F80 -sub_81C1F80: @ 81C1F80 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - ldrh r0, [r4] - ldrh r1, [r4, 0x2] - adds r0, r1 - strh r0, [r4, 0x2] - lsls r0, 16 - cmp r0, 0 - bge _081C1FB0 - movs r0, 0 - strh r0, [r4, 0x2] - ldr r7, =gUnknown_0861CC10 - b _081C1FC0 - .pool -_081C1FB0: - movs r0, 0x2 - ldrsh r1, [r4, r0] - ldr r0, =gUnknown_0861CC10 - ldrb r2, [r0, 0x6] - adds r7, r0, 0 - cmp r1, r2 - ble _081C1FC0 - strh r2, [r4, 0x2] -_081C1FC0: - ldr r5, =gUnknown_0203CF1C - ldr r1, [r5] - ldr r0, =0x000030bc - adds r1, r0 - ldrb r2, [r4, 0x2] - adds r0, r7, 0 - movs r3, 0x1 - bl sub_81C1CB0 - movs r1, 0x2 - ldrsh r0, [r4, r1] - cmp r0, 0 - ble _081C1FE0 - ldrb r7, [r7, 0x6] - cmp r0, r7 - blt _081C2058 -_081C1FE0: - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0 - bge _081C2024 - ldr r0, [r5] - ldr r1, =0x000040c0 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x3 - bne _081C2006 - ldr r0, =sub_81C0B8C - bl FuncIsActiveTask - lsls r0, 24 - cmp r0, 0 - bne _081C2006 - movs r0, 0xF - bl PutWindowTilemap -_081C2006: - ldrh r0, [r4, 0x4] - bl sub_81C240C - b _081C204C - .pool -_081C2024: - ldr r2, =gSprites - ldr r0, [r5] - ldr r1, =0x000040d5 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - blt _081C2046 - movs r0, 0xD - bl PutWindowTilemap -_081C2046: - movs r0, 0x13 - bl PutWindowTilemap -_081C204C: - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r6, 0 - bl DestroyTask -_081C2058: - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C1F80 - - thumb_func_start sub_81C2074 -sub_81C2074: @ 81C2074 - push {r4,r5,lr} - lsls r0, 16 - lsrs r5, r0, 16 - lsls r1, 16 - lsrs r4, r1, 16 - asrs r1, 16 - ldr r3, =gUnknown_0861CBEC - ldrb r2, [r3, 0x6] - cmp r1, r2 - ble _081C208A - adds r4, r2, 0 -_081C208A: - lsls r0, r4, 16 - asrs r0, 16 - cmp r0, 0 - beq _081C2096 - cmp r0, r2 - bne _081C20C8 -_081C2096: - ldr r5, =gUnknown_0203CF1C - ldr r1, [r5] - adds r1, 0xBC - lsls r4, 24 - lsrs r4, 24 - adds r0, r3, 0 - adds r2, r4, 0 - movs r3, 0 - bl sub_81C1CB0 - ldr r0, =gUnknown_0861CBF8 - ldr r1, [r5] - adds r1, 0xBC - adds r2, r4, 0 - movs r3, 0 - bl sub_81C1CB0 - b _081C20E2 - .pool -_081C20C8: - ldr r0, =sub_81C20F0 - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x8] - strh r5, [r1, 0xA] -_081C20E2: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C2074 - - thumb_func_start sub_81C20F0 -sub_81C20F0: @ 81C20F0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r5, r0, r1 - ldrh r0, [r5] - ldrh r1, [r5, 0x2] - adds r0, r1 - strh r0, [r5, 0x2] - lsls r0, 16 - cmp r0, 0 - bge _081C2120 - movs r0, 0 - strh r0, [r5, 0x2] - ldr r7, =gUnknown_0861CBEC - b _081C2130 - .pool -_081C2120: - movs r0, 0x2 - ldrsh r1, [r5, r0] - ldr r0, =gUnknown_0861CBEC - ldrb r2, [r0, 0x6] - adds r7, r0, 0 - cmp r1, r2 - ble _081C2130 - strh r2, [r5, 0x2] -_081C2130: - ldr r4, =gUnknown_0203CF1C - ldr r1, [r4] - adds r1, 0xBC - ldrb r2, [r5, 0x2] - adds r0, r7, 0 - movs r3, 0 - bl sub_81C1CB0 - ldr r0, =gUnknown_0861CBF8 - ldr r1, [r4] - adds r1, 0xBC - ldrb r2, [r5, 0x2] - movs r3, 0 - bl sub_81C1CB0 - movs r0, 0x3 - bl schedule_bg_copy_tilemap_to_vram - movs r1, 0x2 - ldrsh r0, [r5, r1] - cmp r0, 0 - ble _081C2162 - ldrb r7, [r7, 0x6] - cmp r0, r7 - blt _081C2180 -_081C2162: - movs r1, 0 - ldrsh r0, [r5, r1] - cmp r0, 0 - bge _081C217A - bl sub_81C4A88 - movs r0, 0xD - bl PutWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram -_081C217A: - adds r0, r6, 0 - bl DestroyTask -_081C2180: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C20F0 - - thumb_func_start sub_81C2194 -sub_81C2194: @ 81C2194 - push {r4-r7,lr} - adds r6, r0, 0 - lsls r2, 24 - lsls r1, 28 - lsrs r4, r1, 16 - ldr r7, =0x0000056a - cmp r2, 0 - bne _081C21E4 - movs r3, 0 - ldr r5, =gUnknown_08DC3CD4 -_081C21A8: - adds r2, r7, r3 - lsls r2, 1 - adds r2, r6 - lsls r0, r3, 1 - adds r0, r5 - ldrh r1, [r0] - adds r1, r4, r1 - strh r1, [r2] - adds r0, r2, 0 - adds r0, 0x40 - strh r1, [r0] - adds r2, 0x80 - adds r0, r3, 0 - adds r0, 0x14 - lsls r0, 1 - adds r0, r5 - ldrh r0, [r0] - adds r0, r4, r0 - strh r0, [r2] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x13 - bls _081C21A8 - b _081C221C - .pool -_081C21E4: - movs r3, 0 - ldr r5, =gUnknown_08DC3CD4 -_081C21E8: - adds r1, r7, r3 - lsls r1, 1 - adds r1, r6 - adds r0, r3, 0 - adds r0, 0x14 - lsls r0, 1 - adds r0, r5 - ldrh r0, [r0] - adds r0, r4, r0 - strh r0, [r1] - adds r2, r1, 0 - adds r2, 0x40 - adds r0, r3, 0 - adds r0, 0x28 - lsls r0, 1 - adds r0, r5 - ldrh r0, [r0] - adds r0, r4, r0 - strh r0, [r2] - adds r1, 0x80 - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x13 - bls _081C21E8 -_081C221C: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C2194 - - thumb_func_start sub_81C2228 -sub_81C2228: @ 81C2228 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0 - bl CheckPartyPokerus - lsls r0, 24 - cmp r0, 0 - bne _081C225C - adds r0, r4, 0 - movs r1, 0 - bl CheckPartyHasHadPokerus - lsls r0, 24 - cmp r0, 0 - beq _081C225C - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r2, =0x00000502 - adds r1, r0, r2 - movs r2, 0x2C - b _081C2266 - .pool -_081C225C: - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r2, =0x00000502 - adds r1, r0, r2 - ldr r2, =0x0000081a -_081C2266: - strh r2, [r1] - ldr r1, =0x00000d02 - adds r0, r1 - strh r2, [r0] - movs r0, 0x3 - bl schedule_bg_copy_tilemap_to_vram - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C2228 - - thumb_func_start sub_81C228C -sub_81C228C: @ 81C228C - push {lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _081C22AC - movs r0, 0x8 - str r0, [sp] - str r1, [sp, 0x4] - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0x4 - movs r3, 0x8 - bl sub_8199C30 - b _081C22C0 -_081C22AC: - movs r0, 0x8 - str r0, [sp] - movs r0, 0x5 - str r0, [sp, 0x4] - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0x4 - movs r3, 0x8 - bl sub_8199C30 -_081C22C0: - movs r0, 0x3 - bl schedule_bg_copy_tilemap_to_vram - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_81C228C - - thumb_func_start sub_81C22CC -sub_81C22CC: @ 81C22CC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - adds r6, r1, 0 - adds r6, 0x70 - ldrb r1, [r6, 0x5] - mov r8, r0 - cmp r1, 0x63 - bhi _081C2340 - ldr r5, =gExperienceTables - adds r2, r1, 0 - adds r1, r2, 0x1 - lsls r1, 2 - ldr r4, =gBaseStats - ldrh r3, [r6] - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - adds r0, r4 - ldrb r3, [r0, 0x13] - movs r0, 0xCA - lsls r0, 1 - muls r0, r3 - adds r1, r0 - adds r1, r5 - lsls r2, 2 - adds r2, r0 - adds r2, r5 - ldr r1, [r1] - ldr r2, [r2] - subs r1, r2 - ldr r0, [r6, 0x10] - subs r4, r0, r2 - lsls r0, r4, 6 - bl __udivsi3 - adds r6, r0, 0 - movs r7, 0 - adds r0, r7, 0 - orrs r0, r6 - cmp r0, 0 - bne _081C2344 - cmp r4, 0 - beq _081C2344 - movs r6, 0x1 - movs r7, 0 - b _081C2344 - .pool -_081C2340: - movs r6, 0 - movs r7, 0 -_081C2344: - mov r1, r8 - ldr r0, [r1] - ldr r2, =0x00001d66 - adds r2, r0 - mov r9, r2 - movs r0, 0 - mov r12, r0 - ldr r1, =0x00002062 - mov r10, r1 -_081C2356: - cmp r7, 0 - bgt _081C2362 - cmp r7, 0 - bne _081C237C - cmp r6, 0x7 - bls _081C237C -_081C2362: - mov r2, r12 - lsls r0, r2, 1 - add r0, r9 - ldr r2, =0x0000206a - adds r1, r2, 0 - strh r1, [r0] - b _081C23B6 - .pool -_081C237C: - mov r1, r12 - lsls r0, r1, 1 - add r0, r9 - mov r8, r0 - adds r5, r7, 0 - adds r4, r6, 0 - cmp r7, 0 - bge _081C2394 - movs r4, 0x7 - movs r5, 0 - adds r4, r6 - adcs r5, r7 -_081C2394: - lsls r3, r5, 29 - lsrs r2, r4, 3 - adds r0, r3, 0 - orrs r0, r2 - asrs r1, r5, 3 - lsrs r5, r0, 29 - lsls r4, r1, 3 - adds r3, r5, 0 - orrs r3, r4 - lsls r2, r0, 3 - adds r1, r7, 0 - adds r0, r6, 0 - subs r0, r2 - sbcs r1, r3 - add r0, r10 - mov r2, r8 - strh r0, [r2] -_081C23B6: - movs r0, 0x8 - negs r0, r0 - asrs r1, r0, 31 - adds r6, r0 - adcs r7, r1 - cmp r7, 0 - bge _081C23C8 - movs r6, 0 - movs r7, 0 -_081C23C8: - mov r0, r12 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - cmp r0, 0x7 - bls _081C2356 - movs r0, 0x1 - bl GetBgTilemapBuffer - ldr r1, =gUnknown_0203CF1C - ldr r1, [r1] - ldr r2, =0x000010bc - adds r1, r2 - cmp r0, r1 - bne _081C23F8 - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - b _081C23FE - .pool -_081C23F8: - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram -_081C23FE: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81C22CC - - thumb_func_start sub_81C240C -sub_81C240C: @ 81C240C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 16 - lsrs r3, r0, 16 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000038bc - adds r5, r0, r1 - cmp r3, 0 - beq _081C2510 - ldr r1, =gContestEffects - ldr r2, =gContestMoves - lsls r3, 3 - adds r0, r3, r2 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldrb r4, [r0, 0x1] - mov r9, r1 - mov r8, r2 - mov r10, r3 - cmp r4, 0xFF - beq _081C244C - adds r0, r4, 0 - movs r1, 0xA - bl __udivsi3 - lsls r0, 24 - lsrs r4, r0, 24 -_081C244C: - movs r2, 0 - movs r6, 0x3 - movs r3, 0xF3 - lsls r3, 2 -_081C2454: - cmp r4, 0xFF - beq _081C2484 - cmp r2, r4 - bcs _081C2484 - lsrs r0, r2, 2 - adds r1, r2, 0 - ands r1, r6 - lsls r0, 5 - adds r0, r1 - lsls r0, 1 - adds r0, r5 - adds r0, r3 - ldr r7, =0x0000103a - b _081C2496 - .pool -_081C2484: - lsrs r0, r2, 2 - adds r1, r2, 0 - ands r1, r6 - lsls r0, 5 - adds r0, r1 - lsls r0, 1 - adds r0, r5 - adds r0, r3 - ldr r7, =0x00001039 -_081C2496: - adds r1, r7, 0 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x7 - bls _081C2454 - mov r0, r10 - add r0, r8 - ldrb r0, [r0] - lsls r0, 2 - add r0, r9 - ldrb r4, [r0, 0x2] - cmp r4, 0xFF - beq _081C24C0 - adds r0, r4, 0 - movs r1, 0xA - bl __udivsi3 - lsls r0, 24 - lsrs r4, r0, 24 -_081C24C0: - movs r2, 0 - movs r6, 0x3 - ldr r3, =0x0000044c -_081C24C6: - cmp r4, 0xFF - beq _081C24F0 - cmp r2, r4 - bcs _081C24F0 - lsrs r0, r2, 2 - adds r1, r2, 0 - ands r1, r6 - lsls r0, 5 - adds r0, r1 - lsls r0, 1 - adds r0, r5 - adds r0, r3 - ldr r7, =0x0000103c - b _081C2502 - .pool -_081C24F0: - lsrs r0, r2, 2 - adds r1, r2, 0 - ands r1, r6 - lsls r0, 5 - adds r0, r1 - lsls r0, 1 - adds r0, r5 - adds r0, r3 - ldr r7, =0x0000103d -_081C2502: - adds r1, r7, 0 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x7 - bls _081C24C6 -_081C2510: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C240C - - thumb_func_start sub_81C2524 -sub_81C2524: @ 81C2524 - push {lr} - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r0, 0x74 - ldrb r0, [r0] - cmp r0, 0 - beq _081C2544 - movs r1, 0x80 - lsls r1, 9 - movs r0, 0x3 - movs r2, 0 - bl ChangeBgX - b _081C254E - .pool -_081C2544: - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgX -_081C254E: - pop {r0} - bx r0 - thumb_func_end sub_81C2524 - - thumb_func_start sub_81C2554 -sub_81C2554: @ 81C2554 - push {r4,r5,lr} - ldr r0, =gUnknown_0861CC24 - bl InitWindows - bl DeactivateAllTextPrinters - movs r4, 0 -_081C2562: - adds r0, r4, 0 - movs r1, 0 - bl FillWindowPixelBuffer - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x13 - bls _081C2562 - movs r4, 0 - ldr r5, =gUnknown_0203CF1C - ldr r3, =0x000040cb - movs r2, 0xFF -_081C257C: - ldr r0, [r5] - adds r0, r3 - adds r0, r4 - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bls _081C257C - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C2554 - - thumb_func_start sub_81C25A4 -sub_81C25A4: @ 81C25A4 - push {r4-r6,lr} - sub sp, 0x14 - ldr r4, [sp, 0x24] - ldr r5, [sp, 0x28] - lsls r0, 24 - lsrs r0, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - movs r6, 0 - str r6, [sp] - str r4, [sp, 0x4] - lsls r4, r5, 1 - adds r4, r5 - ldr r5, =gUnknown_0861CD2C - adds r4, r5 - str r4, [sp, 0x8] - str r6, [sp, 0xC] - str r1, [sp, 0x10] - movs r1, 0x1 - bl AddTextPrinterParametrized2 - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C25A4 - - thumb_func_start sub_81C25E8 -sub_81C25E8: @ 81C25E8 - push {lr} - movs r0, 0x11 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x12 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x13 - movs r1, 0 - bl FillWindowPixelBuffer - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r0, 0x74 - ldrb r0, [r0] - cmp r0, 0 - bne _081C2618 - bl sub_81C2628 - b _081C261C - .pool -_081C2618: - bl sub_81C2794 -_081C261C: - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - pop {r0} - bx r0 - thumb_func_end sub_81C25E8 - - thumb_func_start sub_81C2628 -sub_81C2628: @ 81C2628 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x18 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - movs r1, 0xC - adds r1, r0 - mov r8, r1 - adds r7, r0, 0 - adds r7, 0x70 - ldrh r0, [r7] - bl SpeciesToPokedexNum - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, =0x0000ffff - cmp r5, r0 - beq _081C26CE - ldr r6, =gStringVar1 - ldr r1, =gText_UnkCtrlF908Clear01 - adds r0, r6, 0 - bl StringCopy - ldr r4, =gStringVar2 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x2 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r0, r6, 0 - adds r1, r4, 0 - bl StringAppend - mov r0, r8 - bl IsMonShiny - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _081C26AC - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - movs r0, 0x11 - adds r1, r6, 0 - movs r2, 0 - movs r3, 0x1 - bl sub_81C25A4 - movs r0, 0 - bl sub_81C228C - b _081C26C6 - .pool -_081C26AC: - movs r0, 0 - str r0, [sp] - movs r0, 0x7 - str r0, [sp, 0x4] - movs r0, 0x11 - adds r1, r6, 0 - movs r2, 0 - movs r3, 0x1 - bl sub_81C25A4 - movs r0, 0x1 - bl sub_81C228C -_081C26C6: - movs r0, 0x11 - bl PutWindowTilemap - b _081C26EE -_081C26CE: - movs r0, 0x11 - bl ClearWindowTilemap - mov r0, r8 - bl IsMonShiny - lsls r0, 24 - cmp r0, 0 - bne _081C26E8 - movs r0, 0 - bl sub_81C228C - b _081C26EE -_081C26E8: - movs r0, 0x1 - bl sub_81C228C -_081C26EE: - ldr r4, =gStringVar1 - ldr r1, =gText_LevelSymbol - adds r0, r4, 0 - bl StringCopy - ldr r5, =gStringVar2 - ldrb r1, [r7, 0x5] - adds r0, r5, 0 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r0, r4, 0 - adds r1, r5, 0 - bl StringAppend - movs r6, 0 - str r6, [sp] - movs r5, 0x1 - str r5, [sp, 0x4] - movs r0, 0x13 - adds r1, r4, 0 - movs r2, 0x18 - movs r3, 0x11 - bl sub_81C25A4 - mov r0, r8 - adds r1, r4, 0 - bl GetMonNickname - str r6, [sp] - str r5, [sp, 0x4] - movs r0, 0x12 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x1 - bl sub_81C25A4 - add r1, sp, 0x8 - movs r0, 0xBA - strb r0, [r1] - mov r0, sp - adds r0, 0x9 - ldrh r2, [r7, 0x2] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - str r6, [sp] - str r5, [sp, 0x4] - movs r0, 0x13 - add r1, sp, 0x8 - movs r2, 0 - movs r3, 0x1 - bl sub_81C25A4 - ldrh r1, [r7, 0x2] - mov r0, r8 - bl sub_81C27DC - movs r0, 0x12 - bl PutWindowTilemap - movs r0, 0x13 - bl PutWindowTilemap - add sp, 0x18 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C2628 - - thumb_func_start sub_81C2794 -sub_81C2794: @ 81C2794 - push {r4,lr} - sub sp, 0x8 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r0, 0xC - ldr r4, =gStringVar1 - adds r1, r4, 0 - bl GetMonNickname - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - movs r0, 0x12 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x1 - bl sub_81C25A4 - movs r0, 0x12 - bl PutWindowTilemap - movs r0, 0x11 - bl ClearWindowTilemap - movs r0, 0x13 - bl ClearWindowTilemap - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C2794 - - thumb_func_start sub_81C27DC -sub_81C27DC: @ 81C27DC - push {lr} - sub sp, 0x8 - lsls r1, 16 - lsrs r1, 16 - cmp r1, 0x20 - beq _081C282C - cmp r1, 0x1D - beq _081C282C - bl GetMonGender - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _081C27FE - cmp r0, 0xFE - beq _081C2818 - b _081C282C -_081C27FE: - ldr r1, =gText_MaleSymbol - str r0, [sp] - movs r0, 0x3 - str r0, [sp, 0x4] - movs r0, 0x13 - movs r2, 0x39 - movs r3, 0x11 - bl sub_81C25A4 - b _081C282C - .pool -_081C2818: - ldr r1, =gText_FemaleSymbol - movs r0, 0 - str r0, [sp] - movs r0, 0x4 - str r0, [sp, 0x4] - movs r0, 0x13 - movs r2, 0x39 - movs r3, 0x11 - bl sub_81C25A4 -_081C282C: - add sp, 0x8 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C27DC - - thumb_func_start sub_81C2838 -sub_81C2838: @ 81C2838 - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - ldr r3, =gUnknown_0861CDD3 - cmp r1, 0 - bne _081C284A - subs r3, 0x80 -_081C284A: - lsls r2, 16 - lsrs r2, 16 - movs r0, 0x10 - str r0, [sp] - str r0, [sp, 0x4] - adds r0, r4, 0 - adds r1, r3, 0 - movs r3, 0 - bl BlitBitmapToWindow - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C2838 - - thumb_func_start sub_81C286C -sub_81C286C: @ 81C286C - push {r4-r7,lr} - sub sp, 0x8 - ldr r1, =gText_PkmnInfo - movs r5, 0 - str r5, [sp] - movs r6, 0x1 - str r6, [sp, 0x4] - movs r0, 0 - movs r2, 0x2 - movs r3, 0x1 - bl sub_81C25A4 - 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, =gText_BattleMoves - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0x2 - movs r2, 0x2 - movs r3, 0x1 - bl sub_81C25A4 - ldr r1, =gText_ContestMoves - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0x3 - movs r2, 0x2 - movs r3, 0x1 - bl sub_81C25A4 - ldr r7, =gText_Cancel2 - movs r0, 0x1 - adds r1, r7, 0 - movs r2, 0x3E - bl GetStringRightAlignXOffset - adds r4, r0, 0 - adds r2, r4, 0 - subs r2, 0x10 - cmp r2, 0 - bge _081C28CC - movs r2, 0 -_081C28CC: - movs r0, 0x4 - movs r1, 0 - bl sub_81C2838 - lsls r2, r4, 24 - lsrs r2, 24 - str r5, [sp] - str r5, [sp, 0x4] - movs r0, 0x4 - adds r1, r7, 0 - movs r3, 0x1 - bl sub_81C25A4 - ldr r7, =gText_Info - movs r0, 0x1 - adds r1, r7, 0 - movs r2, 0x3E - bl GetStringRightAlignXOffset - adds r4, r0, 0 - adds r2, r4, 0 - subs r2, 0x10 - cmp r2, 0 - bge _081C28FE - movs r2, 0 -_081C28FE: - movs r0, 0x5 - movs r1, 0 - bl sub_81C2838 - lsls r2, r4, 24 - lsrs r2, 24 - str r5, [sp] - str r5, [sp, 0x4] - movs r0, 0x5 - adds r1, r7, 0 - movs r3, 0x1 - bl sub_81C25A4 - ldr r7, =gText_Switch - movs r0, 0x1 - adds r1, r7, 0 - movs r2, 0x3E - bl GetStringRightAlignXOffset - adds r4, r0, 0 - adds r2, r4, 0 - subs r2, 0x10 - cmp r2, 0 - bge _081C2930 - movs r2, 0 -_081C2930: - movs r0, 0x6 - movs r1, 0 - bl sub_81C2838 - lsls r2, r4, 24 - lsrs r2, 24 - str r5, [sp] - str r5, [sp, 0x4] - movs r0, 0x6 - adds r1, r7, 0 - movs r3, 0x1 - bl sub_81C25A4 - 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, =gText_TypeSlash - str r5, [sp] - str r5, [sp, 0x4] - movs r0, 0x9 - movs r2, 0 - movs r3, 0x1 - bl sub_81C25A4 - ldr r4, =gText_HP4 - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x2A - bl GetStringCenterAlignXOffset - adds r0, 0x6 - lsls r2, r0, 24 - lsrs r2, 24 - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0xA - adds r1, r4, 0 - movs r3, 0x1 - bl sub_81C25A4 - ldr r4, =gText_Attack3 - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x2A - bl GetStringCenterAlignXOffset - adds r0, 0x6 - lsls r2, r0, 24 - lsrs r2, 24 - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0xA - adds r1, r4, 0 - movs r3, 0x11 - bl sub_81C25A4 - ldr r4, =gText_Defense3 - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x2A - bl GetStringCenterAlignXOffset - adds r0, 0x6 - lsls r2, r0, 24 - lsrs r2, 24 - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0xA - adds r1, r4, 0 - movs r3, 0x21 - bl sub_81C25A4 - ldr r4, =gText_SpAtk4 - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x24 - bl GetStringCenterAlignXOffset - adds r0, 0x2 - lsls r2, r0, 24 - lsrs r2, 24 - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0xB - adds r1, r4, 0 - movs r3, 0x1 - bl sub_81C25A4 - ldr r4, =gText_SpDef4 - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x24 - bl GetStringCenterAlignXOffset - adds r0, 0x2 - lsls r2, r0, 24 - lsrs r2, 24 - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0xB - adds r1, r4, 0 - movs r3, 0x11 - bl sub_81C25A4 - ldr r4, =gText_Speed2 - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x24 - bl GetStringCenterAlignXOffset - adds r0, 0x2 - lsls r2, r0, 24 - lsrs r2, 24 - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0xB - adds r1, r4, 0 - movs r3, 0x21 - bl sub_81C25A4 - 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, =gText_NextLv - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0xC - movs r2, 0x6 - movs r3, 0x11 - bl sub_81C25A4 - 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, =gText_Power - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0xE - movs r2, 0 - movs r3, 0x1 - bl sub_81C25A4 - 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, =gText_Appeal - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0xF - movs r2, 0 - movs r3, 0x1 - bl sub_81C25A4 - ldr r1, =gText_Jam - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0xF - movs r2, 0 - movs r3, 0x11 - bl sub_81C25A4 - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C286C - - thumb_func_start sub_81C2AFC -sub_81C2AFC: @ 81C2AFC - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - movs r0, 0 - bl ClearWindowTilemap - movs r0, 0x1 - bl ClearWindowTilemap - movs r0, 0x2 - bl ClearWindowTilemap - movs r0, 0x3 - bl ClearWindowTilemap - cmp r4, 0x1 - beq _081C2B66 - cmp r4, 0x1 - bgt _081C2B2A - cmp r4, 0 - beq _081C2B34 - b _081C2C06 -_081C2B2A: - cmp r5, 0x2 - beq _081C2B80 - cmp r5, 0x3 - beq _081C2BC4 - b _081C2C06 -_081C2B34: - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x4 - bl PutWindowTilemap - bl sub_81A6BF4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081C2B58 - bl sub_81B9E94 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081C2B5E -_081C2B58: - movs r0, 0x8 - bl PutWindowTilemap -_081C2B5E: - movs r0, 0x9 - bl PutWindowTilemap - b _081C2C06 -_081C2B66: - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0xA - bl PutWindowTilemap - movs r0, 0xB - bl PutWindowTilemap - movs r0, 0xC - bl PutWindowTilemap - b _081C2C06 -_081C2B80: - movs r0, 0x2 - bl PutWindowTilemap - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - ldr r2, =0x000040bc - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x3 - bne _081C2BBC - adds r2, 0x8 - adds r0, r1, r2 - ldr r0, [r0] - ldr r1, =0x00ffffff - ands r0, r1 - movs r1, 0x80 - lsls r1, 11 - cmp r0, r1 - beq _081C2C06 - movs r0, 0xE - bl PutWindowTilemap - b _081C2C06 - .pool -_081C2BBC: - movs r0, 0x5 - bl PutWindowTilemap - b _081C2C06 -_081C2BC4: - movs r0, 0x3 - bl PutWindowTilemap - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - ldr r2, =0x000040bc - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x3 - bne _081C2C00 - adds r2, 0x8 - adds r0, r1, r2 - ldr r0, [r0] - ldr r1, =0x00ffffff - ands r0, r1 - movs r1, 0x80 - lsls r1, 11 - cmp r0, r1 - beq _081C2C06 - movs r0, 0xF - bl PutWindowTilemap - b _081C2C06 - .pool -_081C2C00: - movs r0, 0x5 - bl PutWindowTilemap -_081C2C06: - movs r4, 0 - ldr r5, =gUnknown_0203CF1C -_081C2C0A: - ldr r0, [r5] - ldr r1, =0x000040cb - adds r0, r1 - adds r0, r4 - ldrb r0, [r0] - bl PutWindowTilemap - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bls _081C2C0A - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C2AFC - - thumb_func_start sub_81C2C38 -sub_81C2C38: @ 81C2C38 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x1 - beq _081C2C84 - cmp r0, 0x1 - bgt _081C2C4E - cmp r0, 0 - beq _081C2C58 - b _081C2D0E -_081C2C4E: - cmp r1, 0x2 - beq _081C2C98 - cmp r1, 0x3 - beq _081C2CD4 - b _081C2D0E -_081C2C58: - movs r0, 0x4 - bl ClearWindowTilemap - bl sub_81A6BF4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081C2C76 - bl sub_81B9E94 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081C2C7C -_081C2C76: - movs r0, 0x8 - bl ClearWindowTilemap -_081C2C7C: - movs r0, 0x9 - bl ClearWindowTilemap - b _081C2D0E -_081C2C84: - movs r0, 0xA - bl ClearWindowTilemap - movs r0, 0xB - bl ClearWindowTilemap - movs r0, 0xC - bl ClearWindowTilemap - b _081C2D0E -_081C2C98: - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - ldr r2, =0x000040bc - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x3 - bne _081C2CCC - adds r2, 0x8 - adds r0, r1, r2 - ldr r0, [r0] - ldr r1, =0x00ffffff - ands r0, r1 - movs r1, 0x80 - lsls r1, 11 - cmp r0, r1 - beq _081C2D0E - movs r0, 0xE - bl ClearWindowTilemap - b _081C2D0E - .pool -_081C2CCC: - movs r0, 0x5 - bl ClearWindowTilemap - b _081C2D0E -_081C2CD4: - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - ldr r2, =0x000040bc - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x3 - bne _081C2D08 - adds r2, 0x8 - adds r0, r1, r2 - ldr r0, [r0] - ldr r1, =0x00ffffff - ands r0, r1 - movs r1, 0x80 - lsls r1, 11 - cmp r0, r1 - beq _081C2D0E - movs r0, 0xF - bl ClearWindowTilemap - b _081C2D0E - .pool -_081C2D08: - movs r0, 0x5 - bl ClearWindowTilemap -_081C2D0E: - movs r4, 0 -_081C2D10: - adds r0, r4, 0 - bl sub_81C2D68 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bls _081C2D10 - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81C2C38 - - thumb_func_start sub_81C2D2C -sub_81C2D2C: @ 81C2D2C - push {r4,lr} - adds r3, r0, 0 - lsls r1, 24 - lsrs r2, r1, 24 - ldr r0, =gUnknown_0203CF1C - ldr r4, =0x000040cb - adds r1, r2, r4 - ldr r0, [r0] - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, 0xFF - bne _081C2D56 - lsls r0, r2, 3 - adds r0, r3, r0 - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - movs r1, 0 - bl FillWindowPixelBuffer -_081C2D56: - ldrb r0, [r4] - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81C2D2C - - thumb_func_start sub_81C2D68 -sub_81C2D68: @ 81C2D68 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0203CF1C - ldr r2, =0x000040cb - adds r0, r2 - ldr r1, [r1] - adds r4, r1, r0 - ldrb r0, [r4] - cmp r0, 0xFF - beq _081C2D8C - bl ClearWindowTilemap - ldrb r0, [r4] - bl RemoveWindow - movs r0, 0xFF - strb r0, [r4] -_081C2D8C: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C2D68 - - thumb_func_start sub_81C2D9C -sub_81C2D9C: @ 81C2D9C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 -_081C2DA4: - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040cb - adds r0, r1 - adds r1, r0, r4 - ldrb r0, [r1] - cmp r0, 0xFF - beq _081C2DBA - movs r1, 0 - bl FillWindowPixelBuffer -_081C2DBA: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x7 - bls _081C2DA4 - ldr r0, =gUnknown_0861CE54 - lsls r1, r5, 2 - adds r1, r0 - ldr r0, [r1] - bl _call_via_r0 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C2D9C - - thumb_func_start sub_81C2DE4 -sub_81C2DE4: @ 81C2DE4 - push {lr} - lsls r0, 24 - ldr r1, =gUnknown_0861CE64 - lsrs r0, 22 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x10 - bl CreateTask - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C2DE4 - - thumb_func_start sub_81C2E00 -sub_81C2E00: @ 81C2E00 - push {lr} - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r0, 0x74 - ldrb r0, [r0] - cmp r0, 0 - beq _081C2E24 - bl sub_81C335C - bl sub_81C33CC - bl sub_81C3428 - bl sub_81C349C - b _081C2E3C - .pool -_081C2E24: - bl sub_81C2EC4 - bl sub_81C2F5C - bl sub_81C2FD8 - bl sub_81C302C - bl sub_81C307C - bl sub_81C3194 -_081C2E3C: - pop {r0} - bx r0 - thumb_func_end sub_81C2E00 - - thumb_func_start sub_81C2E40 -sub_81C2E40: @ 81C2E40 - 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 - ldrh r0, [r4] - subs r0, 0x1 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6 - bhi _081C2EB8 - lsls r0, 2 - ldr r1, =_081C2E70 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081C2E70: - .4byte _081C2E8C - .4byte _081C2E92 - .4byte _081C2E98 - .4byte _081C2E9E - .4byte _081C2EA4 - .4byte _081C2EAA - .4byte _081C2EB0 -_081C2E8C: - bl sub_81C2EC4 - b _081C2EB8 -_081C2E92: - bl sub_81C2F5C - b _081C2EB8 -_081C2E98: - bl sub_81C2FD8 - b _081C2EB8 -_081C2E9E: - bl sub_81C302C - b _081C2EB8 -_081C2EA4: - bl sub_81C307C - b _081C2EB8 -_081C2EAA: - bl sub_81C3194 - b _081C2EB8 -_081C2EB0: - adds r0, r2, 0 - bl DestroyTask - b _081C2EBE -_081C2EB8: - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_081C2EBE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81C2E40 - - thumb_func_start sub_81C2EC4 -sub_81C2EC4: @ 81C2EC4 - push {r4-r6,lr} - sub sp, 0x8 - bl sub_81A6BF4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081C2F54 - bl sub_81B9E94 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081C2F54 - ldr r0, =gUnknown_0861CCCC - movs r1, 0 - bl sub_81C2D2C - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, =gText_OTSlash - movs r6, 0 - str r6, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x1 - bl sub_81C25A4 - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0 - bl GetStringWidth - adds r2, r0, 0 - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0xA2 - ldrb r0, [r0] - cmp r0, 0 - bne _081C2F40 - adds r1, 0xA6 - lsls r2, 24 - lsrs r2, 24 - str r6, [sp] - movs r0, 0x5 - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r3, 0x1 - bl sub_81C25A4 - b _081C2F54 - .pool -_081C2F40: - adds r1, 0xA6 - lsls r2, 24 - lsrs r2, 24 - str r6, [sp] - movs r0, 0x6 - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r3, 0x1 - bl sub_81C25A4 -_081C2F54: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81C2EC4 - - thumb_func_start sub_81C2F5C -sub_81C2F5C: @ 81C2F5C - push {r4,r5,lr} - sub sp, 0x8 - bl sub_81A6BF4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081C2FC0 - bl sub_81B9E94 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081C2FC0 - ldr r5, =gStringVar1 - ldr r1, =gText_UnkCtrlF907F908 - adds r0, r5, 0 - bl StringCopy - ldr r1, =gUnknown_0203CF1C - ldr r1, [r1] - adds r1, 0xB8 - ldrh r1, [r1] - movs r2, 0x2 - movs r3, 0x5 - bl ConvertIntToDecimalStringN - movs r0, 0x1 - adds r1, r5, 0 - movs r2, 0x38 - bl GetStringRightAlignXOffset - adds r4, r0, 0 - ldr r0, =gUnknown_0861CCCC - movs r1, 0x1 - bl sub_81C2D2C - lsls r0, 24 - lsrs r0, 24 - lsls r4, 24 - lsrs r4, 24 - movs r1, 0 - str r1, [sp] - movs r1, 0x1 - str r1, [sp, 0x4] - adds r1, r5, 0 - adds r2, r4, 0 - movs r3, 0x1 - bl sub_81C25A4 -_081C2FC0: - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C2F5C - - thumb_func_start sub_81C2FD8 -sub_81C2FD8: @ 81C2FD8 - push {r4,lr} - sub sp, 0x8 - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x70 - ldrh r0, [r0] - adds r1, 0x78 - ldrb r1, [r1] - bl GetAbilityBySpecies - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gUnknown_0861CCCC - movs r1, 0x2 - bl sub_81C2D2C - lsls r0, 24 - lsrs r0, 24 - movs r1, 0xD - muls r1, r4 - ldr r2, =gAbilityNames - adds r1, r2 - movs r2, 0 - str r2, [sp] - movs r2, 0x1 - str r2, [sp, 0x4] - movs r2, 0 - movs r3, 0x1 - bl sub_81C25A4 - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C2FD8 - - thumb_func_start sub_81C302C -sub_81C302C: @ 81C302C - push {r4,lr} - sub sp, 0x8 - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x70 - ldrh r0, [r0] - adds r1, 0x78 - ldrb r1, [r1] - bl GetAbilityBySpecies - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gUnknown_0861CCCC - movs r1, 0x2 - bl sub_81C2D2C - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gAbilityDescriptionPointers - lsls r4, 2 - adds r4, r1 - ldr r1, [r4] - movs r2, 0 - str r2, [sp] - str r2, [sp, 0x4] - movs r3, 0x11 - bl sub_81C25A4 - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C302C - - thumb_func_start sub_81C307C -sub_81C307C: @ 81C307C - push {r4-r6,lr} - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r4, r0, 0 - adds r4, 0x70 - bl sub_81AFBF0 - ldr r1, =gUnknown_0861CE74 - movs r0, 0 - bl sub_81AFC0C - ldr r1, =gUnknown_0861CE7B - movs r0, 0x1 - bl sub_81AFC0C - bl sub_81C31C0 - bl sub_81A6BF4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081C30C2 - bl sub_81B9E94 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081C30C2 - bl sub_81C3304 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081C30E0 -_081C30C2: - ldr r0, =gStringVar4 - ldr r1, =gText_XNature - bl sub_81AFC28 - b _081C3182 - .pool -_081C30E0: - movs r0, 0x20 - bl Alloc - adds r6, r0, 0 - movs r0, 0x20 - bl Alloc - adds r5, r0, 0 - adds r0, r6, 0 - bl sub_81C31F0 - ldrb r0, [r4, 0x9] - cmp r0, 0xD4 - bhi _081C310C - adds r1, r0, 0 - adds r0, r5, 0 - bl sub_8124610 - movs r0, 0x4 - adds r1, r5, 0 - bl sub_81AFC0C -_081C310C: - bl sub_81C3220 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081C3148 - ldrb r0, [r4, 0xA] - cmp r0, 0 - bne _081C3134 - ldrb r0, [r4, 0x9] - ldr r1, =gText_XNatureHatchedAtYZ - cmp r0, 0xD4 - bls _081C3170 - ldr r1, =gText_XNatureHatchedSomewhereAt - b _081C3170 - .pool -_081C3134: - ldrb r0, [r4, 0x9] - ldr r1, =gText_XNatureMetAtYZ - cmp r0, 0xD4 - bls _081C3170 - ldr r1, =gText_XNatureMetSomewhereAt - b _081C3170 - .pool -_081C3148: - ldrb r0, [r4, 0x9] - cmp r0, 0xFF - bne _081C3158 - ldr r1, =gText_XNatureFatefulEncounter - b _081C3170 - .pool -_081C3158: - cmp r0, 0xFE - beq _081C316E - bl sub_81C32BC - lsls r0, 24 - cmp r0, 0 - beq _081C316E - ldrb r0, [r4, 0x9] - ldr r1, =gText_XNatureProbablyMetAt - cmp r0, 0xD4 - bls _081C3170 -_081C316E: - ldr r1, =gText_XNatureObtainedInTrade -_081C3170: - ldr r0, =gStringVar4 - bl sub_81AFC28 - adds r0, r6, 0 - bl Free - adds r0, r5, 0 - bl Free -_081C3182: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C307C - - thumb_func_start sub_81C3194 -sub_81C3194: @ 81C3194 - push {lr} - sub sp, 0x8 - ldr r0, =gUnknown_0861CCCC - movs r1, 0x3 - bl sub_81C2D2C - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gStringVar4 - movs r2, 0 - str r2, [sp] - str r2, [sp, 0x4] - movs r3, 0x1 - bl sub_81C25A4 - add sp, 0x8 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C3194 - - thumb_func_start sub_81C31C0 -sub_81C31C0: @ 81C31C0 - push {lr} - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =gNatureNamePointers - adds r0, 0xA3 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - movs r0, 0x2 - bl sub_81AFC0C - ldr r1, =gText_EmptyString5 - movs r0, 0x5 - bl sub_81AFC0C - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C31C0 - - thumb_func_start sub_81C31F0 -sub_81C31F0: @ 81C31F0 - push {r4,lr} - adds r4, r0, 0 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r0, 0x7A - ldrb r1, [r0] - cmp r1, 0 - bne _081C3202 - movs r1, 0x5 -_081C3202: - adds r0, r4, 0 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - movs r0, 0x3 - adds r1, r4, 0 - bl sub_81AFC0C - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C31F0 - - thumb_func_start sub_81C3220 -sub_81C3220: @ 81C3220 - push {r4-r6,lr} - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r6, r0, 0 - adds r6, 0x70 - ldr r1, [r0] - ldr r0, =gEnemyParty - cmp r1, r0 - bne _081C326C - bl GetMultiplayerId - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gLinkPlayers - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r0, r2, 0x4 - adds r0, r1, r0 - ldrh r4, [r0] - adds r0, r1, r2 - ldrb r5, [r0, 0x13] - ldr r0, =gStringVar1 - adds r2, 0x8 - adds r1, r2 - bl StringCopy - b _081C3282 - .pool -_081C326C: - bl GetPlayerIDAsU32 - adds r4, r0, 0 - ldr r0, =0x0000ffff - ands r4, r0 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldrb r5, [r1, 0x8] - ldr r0, =gStringVar1 - bl StringCopy -_081C3282: - adds r0, r6, 0 - adds r0, 0x32 - ldrb r0, [r0] - cmp r5, r0 - bne _081C32A4 - ldr r0, [r6, 0x48] - ldr r1, =0x0000ffff - ands r0, r1 - cmp r4, r0 - bne _081C32A4 - ldr r0, =gStringVar1 - adds r1, r6, 0 - adds r1, 0x36 - bl StringCompareWithoutExtCtrlCodes - cmp r0, 0 - beq _081C32B4 -_081C32A4: - movs r0, 0 - b _081C32B6 - .pool -_081C32B4: - movs r0, 0x1 -_081C32B6: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81C3220 - - thumb_func_start sub_81C32BC -sub_81C32BC: @ 81C32BC - push {lr} - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r0, 0x70 - ldrb r0, [r0, 0xB] - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bls _081C32D8 - movs r0, 0 - b _081C32DA - .pool -_081C32D8: - movs r0, 0x1 -_081C32DA: - pop {r1} - bx r1 - thumb_func_end sub_81C32BC - - thumb_func_start sub_81C32E0 -sub_81C32E0: @ 81C32E0 - push {lr} - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r0, 0x70 - ldrb r0, [r0, 0xB] - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bls _081C32FC - movs r0, 0 - b _081C32FE - .pool -_081C32FC: - movs r0, 0x1 -_081C32FE: - pop {r1} - bx r1 - thumb_func_end sub_81C32E0 - - thumb_func_start sub_81C3304 -sub_81C3304: @ 81C3304 - push {lr} - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 15 - ands r0, r1 - cmp r0, 0 - beq _081C3354 - ldr r0, =gMain - ldr r1, =0x00000439 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081C3354 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040be - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - beq _081C333A - cmp r0, 0x4 - beq _081C333A - cmp r0, 0x5 - bne _081C3354 -_081C333A: - movs r0, 0x1 - b _081C3356 - .pool -_081C3354: - movs r0, 0 -_081C3356: - pop {r1} - bx r1 - thumb_func_end sub_81C3304 - - thumb_func_start sub_81C335C -sub_81C335C: @ 81C335C - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x8 - ldr r0, =gUnknown_0861CCCC - movs r1, 0 - bl sub_81C2D2C - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gText_OTSlash - mov r8, r0 - movs r0, 0x1 - mov r1, r8 - movs r2, 0 - bl GetStringWidth - adds r5, r0, 0 - movs r0, 0 - mov r9, r0 - str r0, [sp] - movs r6, 0x1 - str r6, [sp, 0x4] - adds r0, r4, 0 - mov r1, r8 - movs r2, 0 - movs r3, 0x1 - bl sub_81C25A4 - ldr r1, =gText_FiveMarks - lsls r5, 24 - lsrs r5, 24 - mov r0, r9 - str r0, [sp] - str r6, [sp, 0x4] - adds r0, r4, 0 - adds r2, r5, 0 - movs r3, 0x1 - bl sub_81C25A4 - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C335C - - thumb_func_start sub_81C33CC -sub_81C33CC: @ 81C33CC - push {r4,r5,lr} - sub sp, 0x8 - ldr r5, =gStringVar1 - ldr r1, =gText_UnkCtrlF907F908 - adds r0, r5, 0 - bl StringCopy - ldr r1, =gText_FiveMarks - adds r0, r5, 0 - bl StringAppend - movs r0, 0x1 - adds r1, r5, 0 - movs r2, 0x38 - bl GetStringRightAlignXOffset - adds r4, r0, 0 - ldr r0, =gUnknown_0861CCCC - movs r1, 0x1 - bl sub_81C2D2C - lsls r0, 24 - lsrs r0, 24 - lsls r4, 24 - lsrs r4, 24 - movs r1, 0 - str r1, [sp] - movs r1, 0x1 - str r1, [sp, 0x4] - adds r1, r5, 0 - adds r2, r4, 0 - movs r3, 0x1 - bl sub_81C25A4 - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C33CC - - thumb_func_start sub_81C3428 -sub_81C3428: @ 81C3428 - push {r4,lr} - sub sp, 0x8 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r1, r0, 0 - adds r1, 0x70 - adds r0, 0xA5 - ldrb r0, [r0] - cmp r0, 0x1 - bne _081C3448 - ldr r4, =gText_EggWillTakeALongTime - b _081C346C - .pool -_081C3448: - ldrh r0, [r1, 0x30] - cmp r0, 0x5 - bhi _081C3458 - ldr r4, =gText_EggAboutToHatch - b _081C346C - .pool -_081C3458: - cmp r0, 0xA - bhi _081C3464 - ldr r4, =gText_EggWillHatchSoon - b _081C346C - .pool -_081C3464: - ldr r4, =gText_EggWillTakeALongTime - cmp r0, 0x28 - bhi _081C346C - ldr r4, =gText_EggWillTakeSomeTime -_081C346C: - ldr r0, =gUnknown_0861CCCC - movs r1, 0x2 - bl sub_81C2D2C - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x1 - bl sub_81C25A4 - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C3428 - - thumb_func_start sub_81C349C -sub_81C349C: @ 81C349C - push {r4,lr} - sub sp, 0x8 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r4, r0, 0 - adds r4, 0x70 - adds r0, 0xA5 - ldrb r0, [r0] - cmp r0, 0x1 - beq _081C3500 - ldrb r0, [r4, 0x9] - cmp r0, 0xFF - bne _081C34C4 - ldr r4, =gText_PeculiarEggNicePlace - b _081C3502 - .pool -_081C34C4: - bl sub_81C32BC - lsls r0, 24 - cmp r0, 0 - beq _081C34D8 - bl sub_81C3220 - lsls r0, 24 - cmp r0, 0 - bne _081C34E0 -_081C34D8: - ldr r4, =gText_PeculiarEggTrade - b _081C3502 - .pool -_081C34E0: - ldrb r0, [r4, 0x9] - cmp r0, 0xFD - bne _081C3500 - bl sub_81C32E0 - lsls r0, 24 - lsrs r0, 24 - ldr r4, =gText_EggFromTraveler - cmp r0, 0x1 - bne _081C3502 - ldr r4, =gText_EggFromHotSprings - b _081C3502 - .pool -_081C3500: - ldr r4, =gText_OddEggFoundByCouple -_081C3502: - ldr r0, =gUnknown_0861CCCC - movs r1, 0x3 - bl sub_81C2D2C - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x1 - bl sub_81C25A4 - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C349C - - thumb_func_start sub_81C3530 -sub_81C3530: @ 81C3530 - push {lr} - bl sub_81C35E4 - bl sub_81C3690 - bl sub_81C3710 - bl sub_81C37D8 - bl sub_81C3808 - bl sub_81C3890 - bl sub_81C38C0 - pop {r0} - bx r0 - thumb_func_end sub_81C3530 - - thumb_func_start sub_81C3554 -sub_81C3554: @ 81C3554 - 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 - ldrh r0, [r4] - subs r0, 0x1 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - bhi _081C35D6 - lsls r0, 2 - ldr r1, =_081C3584 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081C3584: - .4byte _081C35A4 - .4byte _081C35AA - .4byte _081C35B0 - .4byte _081C35B6 - .4byte _081C35BC - .4byte _081C35C2 - .4byte _081C35C8 - .4byte _081C35CE -_081C35A4: - bl sub_81C35E4 - b _081C35D6 -_081C35AA: - bl sub_81C3690 - b _081C35D6 -_081C35B0: - bl sub_81C3710 - b _081C35D6 -_081C35B6: - bl sub_81C37D8 - b _081C35D6 -_081C35BC: - bl sub_81C3808 - b _081C35D6 -_081C35C2: - bl sub_81C3890 - b _081C35D6 -_081C35C8: - bl sub_81C38C0 - b _081C35D6 -_081C35CE: - adds r0, r2, 0 - bl DestroyTask - b _081C35DC -_081C35D6: - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_081C35DC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81C3554 - - thumb_func_start sub_81C35E4 -sub_81C35E4: @ 81C35E4 - push {r4,r5,lr} - sub sp, 0x8 - ldr r4, =gUnknown_0203CF1C - ldr r0, [r4] - adds r0, 0x9E - ldrh r0, [r0] - cmp r0, 0xAF - bne _081C3628 - bl sub_81B1250 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081C3628 - ldr r0, [r4] - ldr r1, =0x000040be - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - beq _081C3614 - cmp r0, 0x4 - beq _081C3614 - cmp r0, 0x5 - bne _081C3628 -_081C3614: - movs r0, 0xAF - bl ItemId_GetItem - adds r5, r0, 0 - b _081C3650 - .pool -_081C3628: - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r1, r0, 0 - adds r1, 0x9E - ldrh r0, [r1] - cmp r0, 0 - bne _081C3644 - ldr r5, =gText_None - b _081C3650 - .pool -_081C3644: - ldrh r0, [r1] - ldr r4, =gStringVar1 - adds r1, r4, 0 - bl CopyItemName - adds r5, r4, 0 -_081C3650: - movs r0, 0x1 - adds r1, r5, 0 - movs r2, 0x48 - bl GetStringCenterAlignXOffset - adds r4, r0, 0 - adds r4, 0x6 - ldr r0, =gUnknown_0861CCEC - movs r1, 0 - bl sub_81C2D2C - lsls r0, 24 - lsrs r0, 24 - lsls r4, 24 - lsrs r4, 24 - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - adds r1, r5, 0 - adds r2, r4, 0 - movs r3, 0x1 - bl sub_81C25A4 - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C35E4 - - thumb_func_start sub_81C3690 -sub_81C3690: @ 81C3690 - push {r4,r5,lr} - sub sp, 0x8 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r1, r0, 0 - adds r1, 0x76 - ldrb r0, [r1] - cmp r0, 0 - bne _081C36B0 - ldr r5, =gText_None - b _081C36C8 - .pool -_081C36B0: - ldr r0, =gStringVar1 - ldrb r1, [r1] - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r4, =gStringVar4 - ldr r1, =gText_RibbonsVar1 - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r5, r4, 0 -_081C36C8: - movs r0, 0x1 - adds r1, r5, 0 - movs r2, 0x46 - bl GetStringCenterAlignXOffset - adds r4, r0, 0 - adds r4, 0x6 - ldr r0, =gUnknown_0861CCEC - movs r1, 0x1 - bl sub_81C2D2C - lsls r0, 24 - lsrs r0, 24 - lsls r4, 24 - lsrs r4, 24 - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - adds r1, r5, 0 - adds r2, r4, 0 - movs r3, 0x1 - bl sub_81C25A4 - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C3690 - - thumb_func_start sub_81C3710 -sub_81C3710: @ 81C3710 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - movs r0, 0x8 - bl Alloc - mov r9, r0 - movs r0, 0x8 - bl Alloc - mov r8, r0 - movs r0, 0x8 - bl Alloc - adds r6, r0, 0 - movs r0, 0x8 - bl Alloc - adds r5, r0, 0 - ldr r4, =gUnknown_0203CF1C - ldr r0, [r4] - adds r0, 0x90 - ldrh r1, [r0] - mov r0, r9 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r0, [r4] - adds r0, 0x92 - ldrh r1, [r0] - mov r0, r8 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r0, [r4] - adds r0, 0x94 - ldrh r1, [r0] - adds r0, r6, 0 - movs r2, 0x1 - movs r3, 0x7 - bl ConvertIntToDecimalStringN - ldr r0, [r4] - adds r0, 0x96 - ldrh r1, [r0] - adds r0, r5, 0 - movs r2, 0x1 - movs r3, 0x7 - bl ConvertIntToDecimalStringN - bl sub_81AFBF0 - movs r0, 0 - mov r1, r9 - bl sub_81AFC0C - movs r0, 0x1 - mov r1, r8 - bl sub_81AFC0C - movs r0, 0x2 - adds r1, r6, 0 - bl sub_81AFC0C - movs r0, 0x3 - adds r1, r5, 0 - bl sub_81AFC0C - ldr r0, =gStringVar4 - ldr r1, =gUnknown_0861CE82 - bl sub_81AFC28 - mov r0, r9 - bl Free - mov r0, r8 - bl Free - adds r0, r6, 0 - bl Free - adds r0, r5, 0 - bl Free - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C3710 - - thumb_func_start sub_81C37D8 -sub_81C37D8: @ 81C37D8 - push {lr} - sub sp, 0x8 - ldr r0, =gUnknown_0861CCEC - movs r1, 0x2 - bl sub_81C2D2C - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gStringVar4 - movs r2, 0 - str r2, [sp] - str r2, [sp, 0x4] - movs r2, 0x4 - movs r3, 0x1 - bl sub_81C25A4 - add sp, 0x8 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C37D8 - - thumb_func_start sub_81C3808 -sub_81C3808: @ 81C3808 - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r0, =gStringVar1 - mov r8, r0 - ldr r4, =gUnknown_0203CF1C - ldr r0, [r4] - adds r0, 0x98 - ldrh r1, [r0] - mov r0, r8 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r6, =gStringVar2 - ldr r0, [r4] - adds r0, 0x9A - ldrh r1, [r0] - adds r0, r6, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r5, =gStringVar3 - ldr r0, [r4] - adds r0, 0x9C - ldrh r1, [r0] - adds r0, r5, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - bl sub_81AFBF0 - movs r0, 0 - mov r1, r8 - bl sub_81AFC0C - movs r0, 0x1 - adds r1, r6, 0 - bl sub_81AFC0C - movs r0, 0x2 - adds r1, r5, 0 - bl sub_81AFC0C - ldr r0, =gStringVar4 - ldr r1, =gUnknown_0861CE8E - bl sub_81AFC28 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C3808 - - thumb_func_start sub_81C3890 -sub_81C3890: @ 81C3890 - push {lr} - sub sp, 0x8 - ldr r0, =gUnknown_0861CCEC - movs r1, 0x3 - bl sub_81C2D2C - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gStringVar4 - movs r2, 0 - str r2, [sp] - str r2, [sp, 0x4] - movs r2, 0x2 - movs r3, 0x1 - bl sub_81C25A4 - add sp, 0x8 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C3890 - - thumb_func_start sub_81C38C0 -sub_81C38C0: @ 81C38C0 - push {r4-r6,lr} - sub sp, 0x8 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r5, r0, 0 - adds r5, 0x70 - ldr r0, =gUnknown_0861CCEC - movs r1, 0x4 - bl sub_81C2D2C - lsls r0, 24 - lsrs r6, r0, 24 - ldr r4, =gStringVar1 - ldr r1, [r5, 0x10] - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x7 - bl ConvertIntToDecimalStringN - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x2A - bl GetStringRightAlignXOffset - adds r0, 0x2 - lsls r2, r0, 24 - lsrs r2, 24 - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - adds r0, r6, 0 - adds r1, r4, 0 - movs r3, 0x1 - bl sub_81C25A4 - ldrb r0, [r5, 0x5] - cmp r0, 0x63 - bhi _081C3948 - ldr r4, =gExperienceTables - adds r1, r0, 0 - adds r1, 0x1 - lsls r1, 2 - ldr r3, =gBaseStats - ldrh r2, [r5] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r3 - ldrb r2, [r0, 0x13] - movs r0, 0xCA - lsls r0, 1 - muls r0, r2 - adds r1, r0 - adds r1, r4 - ldr r1, [r1] - ldr r0, [r5, 0x10] - subs r1, r0 - b _081C394A - .pool -_081C3948: - movs r1, 0 -_081C394A: - ldr r4, =gStringVar1 - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x6 - bl ConvertIntToDecimalStringN - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x2A - bl GetStringRightAlignXOffset - adds r0, 0x2 - lsls r2, r0, 24 - lsrs r2, 24 - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - adds r0, r6, 0 - adds r1, r4, 0 - movs r3, 0x11 - bl sub_81C25A4 - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C38C0 - - thumb_func_start sub_81C3984 -sub_81C3984: @ 81C3984 - push {r4,lr} - movs r0, 0 - bl sub_81C3B08 - movs r0, 0x1 - bl sub_81C3B08 - movs r0, 0x2 - bl sub_81C3B08 - movs r0, 0x3 - bl sub_81C3B08 - ldr r4, =gUnknown_0203CF1C - ldr r0, [r4] - ldr r1, =0x000040bc - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x3 - bne _081C39EA - bl sub_81C3F44 - ldr r1, [r4] - ldr r0, =0x000040c6 - adds r2, r1, r0 - ldrb r0, [r2] - cmp r0, 0x4 - bne _081C39DC - ldr r0, =0x000040c4 - adds r1, r0 - ldrh r0, [r1] - cmp r0, 0 - beq _081C39EA - bl sub_81C3E9C - b _081C39EA - .pool -_081C39DC: - ldrb r0, [r2] - lsls r0, 1 - adds r1, 0x84 - adds r1, r0 - ldrh r0, [r1] - bl sub_81C3E9C -_081C39EA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81C3984 - - thumb_func_start sub_81C39F0 -sub_81C39F0: @ 81C39F0 - 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 - ldrh r0, [r4] - subs r0, 0x1 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - bhi _081C3AFC - lsls r0, 2 - ldr r1, =_081C3A20 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081C3A20: - .4byte _081C3A40 - .4byte _081C3A48 - .4byte _081C3A50 - .4byte _081C3A58 - .4byte _081C3A60 - .4byte _081C3A7C - .4byte _081C3ABE - .4byte _081C3AF4 -_081C3A40: - movs r0, 0 - bl sub_81C3B08 - b _081C3AFC -_081C3A48: - movs r0, 0x1 - bl sub_81C3B08 - b _081C3AFC -_081C3A50: - movs r0, 0x2 - bl sub_81C3B08 - b _081C3AFC -_081C3A58: - movs r0, 0x3 - bl sub_81C3B08 - b _081C3AFC -_081C3A60: - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040bc - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x3 - bne _081C3AFC - bl sub_81C3F44 - b _081C3AFC - .pool -_081C3A7C: - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - ldr r2, =0x000040bc - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x3 - bne _081C3AFC - ldr r0, =0x000040c6 - adds r2, r1, r0 - ldrb r0, [r2] - cmp r0, 0x4 - bne _081C3AB0 - ldr r2, =0x000040c4 - adds r0, r1, r2 - ldrh r0, [r0] - strh r0, [r4, 0x2] - b _081C3AFC - .pool -_081C3AB0: - ldrb r0, [r2] - lsls r0, 1 - adds r1, 0x84 - adds r1, r0 - ldrh r0, [r1] - strh r0, [r4, 0x2] - b _081C3AFC -_081C3ABE: - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - ldr r2, =0x000040bc - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x3 - bne _081C3AFC - adds r2, 0x8 - adds r0, r1, r2 - ldr r0, [r0] - ldr r1, =0x00ffffff - ands r0, r1 - movs r1, 0x80 - lsls r1, 11 - cmp r0, r1 - beq _081C3AFC - ldrh r0, [r4, 0x2] - bl sub_81C3E9C - b _081C3AFC - .pool -_081C3AF4: - adds r0, r2, 0 - bl DestroyTask - b _081C3B02 -_081C3AFC: - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_081C3B02: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81C39F0 - - thumb_func_start sub_81C3B08 -sub_81C3B08: @ 81C3B08 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - mov r10, r0 - ldr r4, =gUnknown_0861CD14 - adds r0, r4, 0 - movs r1, 0 - bl sub_81C2D2C - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81C2D2C - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x8] - lsls r1, r7, 1 - mov r0, r10 - adds r0, 0x84 - adds r0, r1 - ldrh r5, [r0] - cmp r5, 0 - beq _081C3C00 - mov r0, r10 - adds r0, 0xA4 - ldrb r1, [r0] - adds r0, r5, 0 - adds r2, r7, 0 - bl CalculatePPWithBonus - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - movs r0, 0xD - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gMoveNames - adds r1, r0 - lsls r0, r7, 4 - mov r9, r0 - mov r3, r9 - adds r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - mov r0, r8 - movs r2, 0 - bl sub_81C25A4 - ldr r0, =gStringVar1 - mov r8, r0 - mov r5, r10 - adds r5, 0x8C - adds r5, r7 - ldrb r1, [r5] - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r4, =gStringVar2 - adds r0, r4, 0 - adds r1, r6, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - bl sub_81AFBF0 - movs r0, 0 - mov r1, r8 - bl sub_81AFC0C - movs r0, 0x1 - adds r1, r4, 0 - bl sub_81AFC0C - ldr r4, =gStringVar4 - ldr r1, =gUnknown_0861CE97 - adds r0, r4, 0 - bl sub_81AFC28 - adds r7, r4, 0 - ldrb r0, [r5] - adds r1, r6, 0 - bl GetCurrentPpToMaxPpState - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - adds r5, 0x9 - movs r0, 0x1 - adds r1, r7, 0 - movs r2, 0x2C - bl GetStringRightAlignXOffset - mov r4, r9 - b _081C3C26 - .pool -_081C3C00: - ldr r1, =gText_OneDash - lsls r4, r7, 4 - adds r3, r4, 0x1 - lsls r3, 24 - lsrs r3, 24 - str r5, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - mov r0, r8 - movs r2, 0 - bl sub_81C25A4 - ldr r7, =gText_TwoDashes - movs r5, 0xC - movs r0, 0x1 - adds r1, r7, 0 - movs r2, 0x2C - bl GetStringCenterAlignXOffset -_081C3C26: - lsls r2, r0, 24 - lsrs r2, 24 - adds r3, r4, 0x1 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0 - str r0, [sp] - lsls r0, r5, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - ldr r0, [sp, 0x8] - adds r1, r7, 0 - bl sub_81C25A4 - 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 sub_81C3B08 - - thumb_func_start sub_81C3C5C -sub_81C3C5C: @ 81C3C5C - push {r4-r6,lr} - sub sp, 0x8 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - beq _081C3CFC - movs r0, 0x13 - str r0, [sp] - movs r0, 0x20 - str r0, [sp, 0x4] - movs r0, 0xE - movs r1, 0 - movs r2, 0x35 - movs r3, 0 - bl FillWindowPixelRect - ldr r2, =gBattleMoves - lsls r1, r5, 1 - adds r0, r1, r5 - lsls r0, 2 - adds r2, r0, r2 - ldrb r0, [r2, 0x1] - adds r6, r1, 0 - cmp r0, 0x1 - bhi _081C3C9C - ldr r1, =gText_ThreeDashes - b _081C3CAC - .pool -_081C3C9C: - ldr r4, =gStringVar1 - ldrb r1, [r2, 0x1] - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r1, r4, 0 -_081C3CAC: - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0xE - movs r2, 0x35 - movs r3, 0x1 - bl sub_81C25A4 - ldr r1, =gBattleMoves - adds r0, r6, r5 - lsls r0, 2 - adds r1, r0, r1 - ldrb r0, [r1, 0x3] - cmp r0, 0 - bne _081C3CDC - ldr r1, =gText_ThreeDashes - b _081C3CEC - .pool -_081C3CDC: - ldr r4, =gStringVar1 - ldrb r1, [r1, 0x3] - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r1, r4, 0 -_081C3CEC: - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0xE - movs r2, 0x35 - movs r3, 0x11 - bl sub_81C25A4 -_081C3CFC: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C3C5C - - thumb_func_start sub_81C3D08 -sub_81C3D08: @ 81C3D08 - push {r4,lr} - movs r0, 0 - bl sub_81C3B08 - movs r0, 0x1 - bl sub_81C3B08 - movs r0, 0x2 - bl sub_81C3B08 - movs r0, 0x3 - bl sub_81C3B08 - ldr r4, =gUnknown_0203CF1C - ldr r0, [r4] - ldr r1, =0x000040bc - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x3 - bne _081C3D40 - bl sub_81C3F44 - ldr r0, [r4] - ldr r1, =0x000040c6 - adds r0, r1 - ldrb r0, [r0] - bl sub_81C3E2C -_081C3D40: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C3D08 - - thumb_func_start sub_81C3D54 -sub_81C3D54: @ 81C3D54 - 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 - ldrh r0, [r4] - subs r0, 0x1 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6 - bhi _081C3E20 - lsls r0, 2 - ldr r1, =_081C3D84 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081C3D84: - .4byte _081C3DA0 - .4byte _081C3DA8 - .4byte _081C3DB0 - .4byte _081C3DB8 - .4byte _081C3DC0 - .4byte _081C3DDC - .4byte _081C3E18 -_081C3DA0: - movs r0, 0 - bl sub_81C3B08 - b _081C3E20 -_081C3DA8: - movs r0, 0x1 - bl sub_81C3B08 - b _081C3E20 -_081C3DB0: - movs r0, 0x2 - bl sub_81C3B08 - b _081C3E20 -_081C3DB8: - movs r0, 0x3 - bl sub_81C3B08 - b _081C3E20 -_081C3DC0: - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040bc - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x3 - bne _081C3E20 - bl sub_81C3F44 - b _081C3E20 - .pool -_081C3DDC: - ldr r0, =gUnknown_0203CF1C - ldr r2, [r0] - ldr r1, =0x000040bc - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0x3 - bne _081C3E20 - adds r1, 0x8 - adds r0, r2, r1 - ldr r0, [r0] - ldr r1, =0x00ffffff - ands r0, r1 - movs r1, 0x80 - lsls r1, 11 - cmp r0, r1 - beq _081C3E20 - ldr r1, =0x000040c6 - adds r0, r2, r1 - ldrb r0, [r0] - bl sub_81C3E2C - b _081C3E20 - .pool -_081C3E18: - adds r0, r2, 0 - bl DestroyTask - b _081C3E26 -_081C3E20: - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_081C3E26: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81C3D54 - thumb_func_start sub_81C3E2C sub_81C3E2C: @ 81C3E2C push {r4,lr} diff --git a/asm/rayquaza_scene.s b/asm/rayquaza_scene.s index fdfd22979..f9936f1ca 100755 --- a/asm/rayquaza_scene.s +++ b/asm/rayquaza_scene.s @@ -5968,26 +5968,5 @@ _081D99B4: bx r0 thumb_func_end sub_81D98B4 - thumb_func_start sub_81D99BC -sub_81D99BC: @ 81D99BC - push {r4,lr} - bl sub_80D2578 - cmp r0, 0 - bne _081D99DC - ldr r4, =gStringVar1 - bl sub_80D2548 - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - movs r0, 0x1 - b _081D99DE - .pool -_081D99DC: - movs r0, 0 -_081D99DE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81D99BC .align 2, 0 @ Don't pad with nop. diff --git a/asm/record_mixing.s b/asm/record_mixing.s index 31d8d55e9..7e9ea30d1 100644 --- a/asm/record_mixing.s +++ b/asm/record_mixing.s @@ -1135,7 +1135,7 @@ _080E76DC: bl memcpy _080E76E4: mov r0, r8 - bl sub_800A5EC + bl ResetBlockReceivedFlag mov r0, r9 lsls r1, r0, 1 adds r1, r5, r1 diff --git a/asm/rom3.s b/asm/rom3.s deleted file mode 100644 index 0159a453a..000000000 --- a/asm/rom3.s +++ /dev/null @@ -1,3775 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start HandleLinkBattleSetup -HandleLinkBattleSetup: @ 8032654 - push {lr} - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08032686 - ldr r0, =gLinkVSyncDisabled - ldrb r0, [r0] - cmp r0, 0 - beq _0803266E - bl sub_800B488 -_0803266E: - ldr r0, =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _0803267A - bl sub_8009734 -_0803267A: - ldr r0, =task00_08081A90 - movs r1, 0 - bl CreateTask - bl sub_8033244 -_08032686: - pop {r0} - bx r0 - .pool - thumb_func_end HandleLinkBattleSetup - - thumb_func_start SetUpBattleVarsAndBirchZigzagoon -SetUpBattleVarsAndBirchZigzagoon: @ 803269C - push {r4-r7,lr} - sub sp, 0x14 - ldr r0, =gBattleMainFunc - ldr r1, =nullsub_20 - str r1, [r0] - movs r0, 0 - str r0, [sp, 0x10] - movs r1, 0 - ldr r7, =gBattleBankFunc - ldr r6, =gActionSelectionCursor - movs r2, 0 - ldr r5, =gMoveSelectionCursor - ldr r4, =nullsub_21 - ldr r3, =gBanksBySide -_080326B8: - lsls r0, r1, 2 - adds r0, r7 - str r4, [r0] - adds r1, r3 - movs r0, 0xFF - strb r0, [r1] - ldr r0, [sp, 0x10] - adds r0, r6 - strb r2, [r0] - ldr r0, [sp, 0x10] - adds r0, r5 - strb r2, [r0] - ldr r0, [sp, 0x10] - adds r0, 0x1 - str r0, [sp, 0x10] - adds r1, r0, 0 - cmp r1, 0x3 - ble _080326B8 - bl HandleLinkBattleSetup - ldr r0, =gBattleExecBuffer - movs r5, 0 - str r5, [r0] - bl sub_80A3934 - bl ClearBattleMonForms - movs r0, 0xF - bl BattleAI_HandleItemUseBeforeAISetup - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08032728 - bl ZeroEnemyPartyMons - ldr r4, =gEnemyParty - movs r1, 0x90 - lsls r1, 1 - str r5, [sp] - str r5, [sp, 0x4] - str r5, [sp, 0x8] - str r5, [sp, 0xC] - adds r0, r4, 0 - movs r2, 0x2 - movs r3, 0x20 - bl CreateMon - str r5, [sp, 0x10] - adds r0, r4, 0 - movs r1, 0xC - add r2, sp, 0x10 - bl SetMonData -_08032728: - ldr r0, =gUnknown_02022FF4 - str r5, [r0] - ldr r0, =gUnknown_0202428C - strb r5, [r0] - add sp, 0x14 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end SetUpBattleVarsAndBirchZigzagoon - - thumb_func_start sub_8032768 -sub_8032768: @ 8032768 - push {r4,r5,lr} - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - cmp r0, 0 - bne _08032784 - movs r0, 0x1 - bl sub_8184DA4 - b _0803278A - .pool -_08032784: - movs r0, 0x2 - bl sub_8184DA4 -_0803278A: - ldr r4, =gBattleTypeFlags - ldr r0, [r4] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - cmp r0, 0 - bne _0803279C - bl sub_8185EB8 -_0803279C: - ldr r0, [r4] - movs r1, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080327B0 - bl b_setup_bx_link - b _080327B4 - .pool -_080327B0: - bl b_setup_bx -_080327B4: - bl sub_8033050 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - bne _080327E2 - movs r4, 0 - ldr r0, =gNoOfAllBanks - ldrb r1, [r0] - cmp r4, r1 - bge _080327E2 - adds r5, r0, 0 -_080327D0: - lsls r0, r4, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_81B8D64 - adds r4, 0x1 - ldrb r0, [r5] - cmp r4, r0 - blt _080327D0 -_080327E2: - movs r4, 0 - ldr r3, =gBattleStruct - movs r2, 0xD2 - lsls r2, 1 - movs r1, 0 -_080327EC: - ldr r0, [r3] - adds r0, r4, r0 - adds r0, r2 - strb r1, [r0] - adds r4, 0x1 - cmp r4, 0x5F - bls _080327EC - movs r4, 0 - ldr r3, =gBattleStruct - movs r2, 0x81 - lsls r2, 2 - movs r1, 0 -_08032804: - ldr r0, [r3] - adds r0, r4, r0 - adds r0, r2 - strb r1, [r0] - adds r4, 0x1 - cmp r4, 0x67 - bls _08032804 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8032768 - - thumb_func_start b_setup_bx -b_setup_bx: @ 8032824 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, =gBattleTypeFlags - ldr r3, [r0] - movs r5, 0x80 - lsls r5, 15 - ands r5, r3 - cmp r5, 0 - beq _080328E4 - ldr r1, =gBattleMainFunc - ldr r0, =BeginBattleIntro - str r0, [r1] - movs r4, 0x80 - lsls r4, 17 - ands r4, r3 - cmp r4, 0 - beq _08032874 - ldr r2, =gBattleBankFunc - ldr r0, =SetBankFuncToRecordedPlayerBufferRunCommand - str r0, [r2] - ldr r1, =gBanksBySide - movs r0, 0 - strb r0, [r1] - b _0803287E - .pool -_08032874: - ldr r2, =gBattleBankFunc - ldr r0, =SetBankFuncToPlayerBufferRunCommand - str r0, [r2] - ldr r1, =gBanksBySide - strb r4, [r1] -_0803287E: - ldr r3, =SetBankFuncToOpponentBufferRunCommand - str r3, [r2, 0x4] - movs r0, 0x1 - strb r0, [r1, 0x1] - ldr r0, =SetBankFuncToPlayerPartnerBufferRunCommand - str r0, [r2, 0x8] - movs r0, 0x2 - strb r0, [r1, 0x2] - str r3, [r2, 0xC] - movs r0, 0x3 - strb r0, [r1, 0x3] - ldr r1, =gNoOfAllBanks - movs r0, 0x4 - strb r0, [r1] - movs r0, 0 - movs r1, 0 - bl sub_81B8D64 - movs r0, 0x1 - movs r1, 0 - bl sub_81B8D64 - movs r0, 0x2 - movs r1, 0x1 - bl sub_81B8D64 - movs r0, 0x3 - movs r1, 0x1 - bl sub_81B8D64 - ldr r0, =gBattlePartyID - movs r1, 0 - strh r1, [r0] - strh r1, [r0, 0x2] - movs r1, 0x3 - b _08032A76 - .pool -_080328E4: - movs r7, 0x1 - adds r0, r3, 0 - ands r0, r7 - cmp r0, 0 - beq _080328F0 - b _080329E0 -_080328F0: - ldr r0, =gBattleMainFunc - ldr r2, =BeginBattleIntro - str r2, [r0] - movs r1, 0x80 - ands r1, r3 - mov r12, r2 - cmp r1, 0 - beq _08032918 - ldr r1, =gBattleBankFunc - ldr r0, =SetBankFuncToSafariBufferRunCommand - b _08032934 - .pool -_08032918: - movs r0, 0x80 - lsls r0, 2 - ands r3, r0 - cmp r3, 0 - beq _08032930 - ldr r1, =gBattleBankFunc - ldr r0, =SetBankFuncToWallyBufferRunCommand - b _08032934 - .pool -_08032930: - ldr r1, =gBattleBankFunc - ldr r0, =SetBankFuncToPlayerBufferRunCommand -_08032934: - str r0, [r1] - mov r10, r1 - ldr r4, =gBanksBySide - movs r0, 0 - mov r9, r0 - mov r1, r9 - strb r1, [r4] - mov r5, r10 - ldr r2, =SetBankFuncToOpponentBufferRunCommand - mov r8, r2 - str r2, [r5, 0x4] - movs r6, 0x1 - strb r6, [r4, 0x1] - ldr r2, =gNoOfAllBanks - movs r7, 0x2 - strb r7, [r2] - ldr r0, =gBattleTypeFlags - ldr r3, [r0] - movs r0, 0x80 - lsls r0, 17 - ands r0, r3 - cmp r0, 0 - bne _08032964 - b _08032CB2 -_08032964: - movs r1, 0x80 - lsls r1, 18 - ands r1, r3 - cmp r1, 0 - beq _080329CC - movs r1, 0x80 - lsls r1, 24 - ands r1, r3 - cmp r1, 0 - beq _080329B4 - mov r1, r12 - ldr r0, =gBattleMainFunc - str r1, [r0] - ldr r0, =SetBankFuncToRecordedPlayerBufferRunCommand - str r0, [r5] - mov r1, r9 - strb r1, [r4] - ldr r0, =SetBankFuncToRecordedOpponentBufferRunCommand - str r0, [r5, 0x4] - strb r6, [r4, 0x1] - strb r7, [r2] - b _08032CB2 - .pool -_080329B4: - ldr r0, =SetBankFuncToRecordedPlayerBufferRunCommand - str r0, [r5, 0x4] - strb r1, [r4, 0x1] - ldr r0, =SetBankFuncToRecordedOpponentBufferRunCommand - str r0, [r5] - strb r6, [r4] - strb r7, [r2] - b _08032CB2 - .pool -_080329CC: - ldr r0, =SetBankFuncToRecordedPlayerBufferRunCommand - mov r2, r10 - str r0, [r2] - strb r1, [r4] - mov r0, r8 - str r0, [r2, 0x4] - strb r6, [r4, 0x1] - b _08032CB2 - .pool -_080329E0: - ldr r1, =BeginBattleIntro - ldr r2, =gBattleMainFunc - str r1, [r2] - ldr r2, =gBattleBankFunc - ldr r0, =SetBankFuncToPlayerBufferRunCommand - str r0, [r2] - ldr r4, =gBanksBySide - strb r5, [r4] - ldr r6, =SetBankFuncToOpponentBufferRunCommand - str r6, [r2, 0x4] - strb r7, [r4, 0x1] - str r0, [r2, 0x8] - movs r0, 0x2 - mov r12, r0 - mov r1, r12 - strb r1, [r4, 0x2] - str r6, [r2, 0xC] - movs r0, 0x3 - mov r8, r0 - mov r1, r8 - strb r1, [r4, 0x3] - ldr r0, =gNoOfAllBanks - mov r10, r0 - movs r1, 0x4 - mov r9, r1 - strb r1, [r0] - movs r0, 0x80 - lsls r0, 17 - ands r0, r3 - cmp r0, 0 - bne _08032A20 - b _08032CB2 -_08032A20: - movs r1, 0xA0 - lsls r1, 1 - adds r0, r3, 0 - ands r0, r1 - cmp r0, r1 - bne _08032AA0 - ldr r0, =BeginBattleIntro - ldr r1, =gBattleMainFunc - str r0, [r1] - ldr r0, =SetBankFuncToRecordedPlayerBufferRunCommand - str r0, [r2] - strb r5, [r4] - str r6, [r2, 0x4] - strb r7, [r4, 0x1] - str r0, [r2, 0x8] - mov r0, r12 - strb r0, [r4, 0x2] - str r6, [r2, 0xC] - mov r1, r8 - strb r1, [r4, 0x3] - mov r0, r9 - mov r2, r10 - strb r0, [r2] - movs r0, 0 - movs r1, 0 - bl sub_81B8D64 - movs r0, 0x1 - movs r1, 0 - bl sub_81B8D64 - movs r0, 0x2 - movs r1, 0x1 - bl sub_81B8D64 - movs r0, 0x3 - movs r1, 0x1 - bl sub_81B8D64 - ldr r0, =gBattlePartyID - strh r5, [r0] - strh r5, [r0, 0x2] - mov r1, r8 -_08032A76: - strh r1, [r0, 0x4] - strh r1, [r0, 0x6] - b _08032CB2 - .pool -_08032AA0: - movs r5, 0x40 - ands r5, r3 - cmp r5, 0 - bne _08032AAA - b _08032C3C -_08032AAA: - ldr r0, =gUnknown_0203C7B4 - ldrb r5, [r0] - movs r0, 0 - mov r10, r0 - ldr r1, =gLinkPlayers - mov r12, r1 - adds r7, r4, 0 - mov r8, r0 - ldr r6, =gBattlePartyID - movs r4, 0 - movs r2, 0x3 - mov r9, r2 -_08032AC2: - mov r1, r12 - adds r0, r4, r1 - ldrh r0, [r0, 0x18] - cmp r0, 0x2 - bgt _08032AE4 - cmp r0, 0x1 - bge _08032AFC - cmp r0, 0 - beq _08032AE8 - b _08032B06 - .pool -_08032AE4: - cmp r0, 0x3 - bne _08032B06 -_08032AE8: - ldr r0, =gLinkPlayers - adds r0, r4, r0 - ldrb r0, [r0, 0x18] - movs r1, 0 - bl sub_81B8D64 - b _08032B06 - .pool -_08032AFC: - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - bl sub_81B8D64 -_08032B06: - cmp r10, r5 - bne _08032B56 - ldr r0, =gLinkPlayers - adds r3, r4, r0 - ldrh r1, [r3, 0x18] - lsls r1, 2 - ldr r2, =gBattleBankFunc - adds r1, r2 - ldr r2, =SetBankFuncToRecordedPlayerBufferRunCommand - str r2, [r1] - ldrh r1, [r3, 0x18] - mov r12, r0 - cmp r1, 0x2 - bgt _08032B38 - cmp r1, 0x1 - bge _08032B4C - cmp r1, 0 - beq _08032B3C - b _08032C2C - .pool -_08032B38: - cmp r1, 0x3 - bne _08032C2C -_08032B3C: - mov r1, r12 - adds r0, r4, r1 - ldrh r1, [r0, 0x18] - adds r1, r7 - mov r2, r8 - strb r2, [r1] - ldrh r0, [r0, 0x18] - b _08032C12 -_08032B4C: - adds r1, r7 - movs r0, 0x2 - strb r0, [r1] - ldrh r0, [r3, 0x18] - b _08032C24 -_08032B56: - ldr r2, =gLinkPlayers - adds r0, r4, r2 - ldrh r1, [r0, 0x18] - movs r3, 0x1 - adds r0, r3, 0 - ands r0, r1 - mov r12, r2 - cmp r0, 0 - bne _08032B80 - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - add r0, r12 - ldrh r1, [r0, 0x18] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _08032B92 - b _08032BD8 - .pool -_08032B80: - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - add r0, r12 - ldrh r1, [r0, 0x18] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _08032BD8 -_08032B92: - mov r0, r12 - adds r2, r4, r0 - ldrh r0, [r2, 0x18] - lsls r0, 2 - ldr r1, =gBattleBankFunc - adds r0, r1 - ldr r1, =SetBankFuncToRecordedPlayerBufferRunCommand - str r1, [r0] - ldrh r1, [r2, 0x18] - cmp r1, 0x2 - bgt _08032BBC - cmp r1, 0x1 - bge _08032BD0 - cmp r1, 0 - beq _08032BC0 - b _08032C2C - .pool -_08032BBC: - cmp r1, 0x3 - bne _08032C2C -_08032BC0: - mov r2, r12 - adds r0, r4, r2 - ldrh r1, [r0, 0x18] - adds r1, r7 - mov r2, r8 - strb r2, [r1] - ldrh r0, [r0, 0x18] - b _08032C12 -_08032BD0: - adds r1, r7 - movs r0, 0x2 - strb r0, [r1] - b _08032C22 -_08032BD8: - mov r0, r12 - adds r2, r4, r0 - ldrh r0, [r2, 0x18] - lsls r0, 2 - ldr r1, =gBattleBankFunc - adds r0, r1 - ldr r1, =SetBankFuncToRecordedOpponentBufferRunCommand - str r1, [r0] - ldrh r0, [r2, 0x18] - cmp r0, 0x2 - bgt _08032C00 - cmp r0, 0x1 - bge _08032C1C - cmp r0, 0 - beq _08032C04 - b _08032C2C - .pool -_08032C00: - cmp r0, 0x3 - bne _08032C2C -_08032C04: - mov r0, r12 - adds r2, r4, r0 - ldrh r0, [r2, 0x18] - adds r0, r7 - movs r1, 0x1 - strb r1, [r0] - ldrh r0, [r2, 0x18] -_08032C12: - lsls r0, 1 - adds r0, r6 - mov r1, r8 - strh r1, [r0] - b _08032C2C -_08032C1C: - adds r0, r7 - mov r1, r9 - strb r1, [r0] -_08032C22: - ldrh r0, [r2, 0x18] -_08032C24: - lsls r0, 1 - adds r0, r6 - mov r2, r9 - strh r2, [r0] -_08032C2C: - adds r4, 0x1C - movs r0, 0x1 - add r10, r0 - mov r1, r10 - cmp r1, 0x3 - bgt _08032C3A - b _08032AC2 -_08032C3A: - b _08032CB2 -_08032C3C: - movs r1, 0x4 - ands r1, r3 - cmp r1, 0 - beq _08032C7C - ldr r0, =SetBankFuncToRecordedPlayerBufferRunCommand - str r0, [r2] - strb r5, [r4] - str r0, [r2, 0x8] - mov r0, r12 - strb r0, [r4, 0x2] - movs r0, 0x80 - lsls r0, 18 - ands r3, r0 - cmp r3, 0 - beq _08032C70 - ldr r0, =SetBankFuncToRecordedOpponentBufferRunCommand - str r0, [r2, 0x4] - strb r7, [r4, 0x1] - str r0, [r2, 0xC] - mov r1, r8 - strb r1, [r4, 0x3] - b _08032CB2 - .pool -_08032C70: - str r6, [r2, 0x4] - strb r7, [r4, 0x1] - str r6, [r2, 0xC] - mov r2, r8 - strb r2, [r4, 0x3] - b _08032CB2 -_08032C7C: - ldr r0, =SetBankFuncToRecordedPlayerBufferRunCommand - str r0, [r2, 0x4] - strb r1, [r4, 0x1] - str r0, [r2, 0xC] - mov r0, r12 - strb r0, [r4, 0x3] - movs r0, 0x80 - lsls r0, 18 - ands r3, r0 - cmp r3, 0 - beq _08032CA8 - ldr r0, =SetBankFuncToRecordedOpponentBufferRunCommand - str r0, [r2] - strb r7, [r4] - str r0, [r2, 0x8] - mov r1, r8 - strb r1, [r4, 0x2] - b _08032CB2 - .pool -_08032CA8: - str r6, [r2] - strb r7, [r4] - str r6, [r2, 0x8] - mov r2, r8 - strb r2, [r4, 0x2] -_08032CB2: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end b_setup_bx - - thumb_func_start b_setup_bx_link -b_setup_bx_link: @ 8032CC0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r4, =gBattleTypeFlags - ldr r1, [r4] - movs r5, 0x1 - adds r3, r1, 0 - ands r3, r5 - cmp r3, 0 - bne _08032D48 - movs r4, 0x4 - ands r4, r1 - cmp r4, 0 - beq _08032D1C - ldr r1, =gBattleMainFunc - ldr r0, =BeginBattleIntro - str r0, [r1] - ldr r2, =gBattleBankFunc - ldr r0, =SetBankFuncToPlayerBufferRunCommand - str r0, [r2] - ldr r1, =gBanksBySide - strb r3, [r1] - ldr r0, =SetBankFuncToLinkOpponentBufferRunCommand - str r0, [r2, 0x4] - strb r5, [r1, 0x1] - ldr r1, =gNoOfAllBanks - movs r0, 0x2 - b _0803303A - .pool -_08032D1C: - ldr r2, =gBattleBankFunc - ldr r0, =SetBankFuncToPlayerBufferRunCommand - str r0, [r2, 0x4] - ldr r1, =gBanksBySide - strb r4, [r1, 0x1] - ldr r0, =SetBankFuncToLinkOpponentBufferRunCommand - str r0, [r2] - strb r5, [r1] - ldr r1, =gNoOfAllBanks - movs r0, 0x2 - b _0803303A - .pool -_08032D48: - movs r0, 0x41 - ands r0, r1 - cmp r0, 0x1 - bne _08032DD0 - movs r6, 0x4 - adds r3, r6, 0 - ands r3, r1 - cmp r3, 0 - beq _08032D98 - ldr r1, =gBattleMainFunc - ldr r0, =BeginBattleIntro - str r0, [r1] - ldr r2, =gBattleBankFunc - ldr r4, =SetBankFuncToPlayerBufferRunCommand - str r4, [r2] - ldr r1, =gBanksBySide - movs r0, 0 - strb r0, [r1] - ldr r3, =SetBankFuncToLinkOpponentBufferRunCommand - str r3, [r2, 0x4] - strb r5, [r1, 0x1] - str r4, [r2, 0x8] - movs r0, 0x2 - strb r0, [r1, 0x2] - str r3, [r2, 0xC] - movs r0, 0x3 - strb r0, [r1, 0x3] - b _08032DB4 - .pool -_08032D98: - ldr r2, =gBattleBankFunc - ldr r0, =SetBankFuncToPlayerBufferRunCommand - str r0, [r2, 0x4] - ldr r1, =gBanksBySide - strb r3, [r1, 0x1] - ldr r3, =SetBankFuncToLinkOpponentBufferRunCommand - str r3, [r2] - strb r5, [r1] - str r0, [r2, 0xC] - movs r0, 0x2 - strb r0, [r1, 0x3] - str r3, [r2, 0x8] - movs r0, 0x3 - strb r0, [r1, 0x2] -_08032DB4: - ldr r0, =gNoOfAllBanks - strb r6, [r0] - b _0803303C - .pool -_08032DD0: - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _08032E8C - movs r4, 0x4 - adds r3, r4, 0 - ands r3, r1 - cmp r3, 0 - beq _08032E1C - ldr r1, =gBattleMainFunc - ldr r0, =BeginBattleIntro - str r0, [r1] - ldr r2, =gBattleBankFunc - ldr r0, =SetBankFuncToPlayerBufferRunCommand - str r0, [r2] - ldr r1, =gBanksBySide - movs r0, 0 - strb r0, [r1] - ldr r3, =SetBankFuncToOpponentBufferRunCommand - str r3, [r2, 0x4] - strb r5, [r1, 0x1] - ldr r0, =SetBankFuncToLinkPartnerBufferRunCommand - b _08032E2E - .pool -_08032E1C: - ldr r2, =gBattleBankFunc - ldr r0, =SetBankFuncToLinkPartnerBufferRunCommand - str r0, [r2] - ldr r1, =gBanksBySide - strb r3, [r1] - ldr r3, =SetBankFuncToLinkOpponentBufferRunCommand - str r3, [r2, 0x4] - strb r5, [r1, 0x1] - ldr r0, =SetBankFuncToPlayerBufferRunCommand -_08032E2E: - str r0, [r2, 0x8] - movs r0, 0x2 - strb r0, [r1, 0x2] - str r3, [r2, 0xC] - movs r0, 0x3 - strb r0, [r1, 0x3] - ldr r0, =gNoOfAllBanks - strb r4, [r0] - movs r0, 0 - movs r1, 0 - bl sub_81B8D64 - movs r0, 0x1 - movs r1, 0 - bl sub_81B8D64 - movs r0, 0x2 - movs r1, 0x1 - bl sub_81B8D64 - movs r0, 0x3 - movs r1, 0x1 - bl sub_81B8D64 - ldr r0, =gBattlePartyID - movs r1, 0 - strh r1, [r0] - strh r1, [r0, 0x2] - movs r1, 0x3 - strh r1, [r0, 0x4] - strh r1, [r0, 0x6] - b _0803303C - .pool -_08032E8C: - bl GetMultiplayerId - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, [r4] - movs r1, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08032EA4 - ldr r1, =gBattleMainFunc - ldr r0, =BeginBattleIntro - str r0, [r1] -_08032EA4: - movs r0, 0 - mov r10, r0 - ldr r1, =gLinkPlayers - mov r12, r1 - ldr r7, =gBanksBySide - mov r8, r0 - ldr r6, =gBattlePartyID - movs r4, 0 - movs r2, 0x3 - mov r9, r2 -_08032EB8: - mov r1, r12 - adds r0, r4, r1 - ldrh r0, [r0, 0x18] - cmp r0, 0x2 - bgt _08032EE0 - cmp r0, 0x1 - bge _08032EF8 - cmp r0, 0 - beq _08032EE4 - b _08032F02 - .pool -_08032EE0: - cmp r0, 0x3 - bne _08032F02 -_08032EE4: - ldr r0, =gLinkPlayers - adds r0, r4, r0 - ldrb r0, [r0, 0x18] - movs r1, 0 - bl sub_81B8D64 - b _08032F02 - .pool -_08032EF8: - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - bl sub_81B8D64 -_08032F02: - cmp r10, r5 - bne _08032F52 - ldr r0, =gLinkPlayers - adds r3, r4, r0 - ldrh r1, [r3, 0x18] - lsls r1, 2 - ldr r2, =gBattleBankFunc - adds r1, r2 - ldr r2, =SetBankFuncToPlayerBufferRunCommand - str r2, [r1] - ldrh r1, [r3, 0x18] - mov r12, r0 - cmp r1, 0x2 - bgt _08032F34 - cmp r1, 0x1 - bge _08032F48 - cmp r1, 0 - beq _08032F38 - b _08033028 - .pool -_08032F34: - cmp r1, 0x3 - bne _08033028 -_08032F38: - mov r1, r12 - adds r0, r4, r1 - ldrh r1, [r0, 0x18] - adds r1, r7 - mov r2, r8 - strb r2, [r1] - ldrh r0, [r0, 0x18] - b _0803300E -_08032F48: - adds r1, r7 - movs r0, 0x2 - strb r0, [r1] - ldrh r0, [r3, 0x18] - b _08033020 -_08032F52: - ldr r2, =gLinkPlayers - adds r0, r4, r2 - ldrh r1, [r0, 0x18] - movs r3, 0x1 - adds r0, r3, 0 - ands r0, r1 - mov r12, r2 - cmp r0, 0 - bne _08032F7C - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - add r0, r12 - ldrh r1, [r0, 0x18] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _08032F8E - b _08032FD4 - .pool -_08032F7C: - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - add r0, r12 - ldrh r1, [r0, 0x18] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _08032FD4 -_08032F8E: - mov r0, r12 - adds r2, r4, r0 - ldrh r0, [r2, 0x18] - lsls r0, 2 - ldr r1, =gBattleBankFunc - adds r0, r1 - ldr r1, =SetBankFuncToLinkPartnerBufferRunCommand - str r1, [r0] - ldrh r1, [r2, 0x18] - cmp r1, 0x2 - bgt _08032FB8 - cmp r1, 0x1 - bge _08032FCC - cmp r1, 0 - beq _08032FBC - b _08033028 - .pool -_08032FB8: - cmp r1, 0x3 - bne _08033028 -_08032FBC: - mov r2, r12 - adds r0, r4, r2 - ldrh r1, [r0, 0x18] - adds r1, r7 - mov r2, r8 - strb r2, [r1] - ldrh r0, [r0, 0x18] - b _0803300E -_08032FCC: - adds r1, r7 - movs r0, 0x2 - strb r0, [r1] - b _0803301E -_08032FD4: - mov r0, r12 - adds r2, r4, r0 - ldrh r0, [r2, 0x18] - lsls r0, 2 - ldr r1, =gBattleBankFunc - adds r0, r1 - ldr r1, =SetBankFuncToLinkOpponentBufferRunCommand - str r1, [r0] - ldrh r0, [r2, 0x18] - cmp r0, 0x2 - bgt _08032FFC - cmp r0, 0x1 - bge _08033018 - cmp r0, 0 - beq _08033000 - b _08033028 - .pool -_08032FFC: - cmp r0, 0x3 - bne _08033028 -_08033000: - mov r0, r12 - adds r2, r4, r0 - ldrh r0, [r2, 0x18] - adds r0, r7 - movs r1, 0x1 - strb r1, [r0] - ldrh r0, [r2, 0x18] -_0803300E: - lsls r0, 1 - adds r0, r6 - mov r1, r8 - strh r1, [r0] - b _08033028 -_08033018: - adds r0, r7 - mov r1, r9 - strb r1, [r0] -_0803301E: - ldrh r0, [r2, 0x18] -_08033020: - lsls r0, 1 - adds r0, r6 - mov r2, r9 - strh r2, [r0] -_08033028: - adds r4, 0x1C - movs r0, 0x1 - add r10, r0 - mov r1, r10 - cmp r1, 0x3 - bgt _08033036 - b _08032EB8 -_08033036: - ldr r1, =gNoOfAllBanks - movs r0, 0x4 -_0803303A: - strb r0, [r1] -_0803303C: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end b_setup_bx_link - - thumb_func_start sub_8033050 -sub_8033050: @ 8033050 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08033068 - b _0803319C -_08033068: - movs r0, 0 - mov r8, r0 - b _0803317A - .pool -_08033074: - movs r5, 0 - movs r0, 0x1 - add r0, r8 - mov r10, r0 - ldr r0, =gBanksBySide - add r0, r8 - mov r9, r0 - mov r0, r8 - lsls r6, r0, 1 - movs r7, 0 -_08033088: - mov r0, r8 - cmp r0, 0x1 - bgt _080330F0 - mov r0, r9 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080330A8 - ldr r0, =gPlayerParty - b _080330AA - .pool -_080330A8: - ldr r0, =gEnemyParty -_080330AA: - adds r4, r7, r0 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _08033170 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _08033170 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _08033170 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _08033170 - ldr r0, =gBattlePartyID - adds r0, r6, r0 - strh r5, [r0] - b _08033178 - .pool -_080330F0: - mov r0, r9 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08033118 - ldr r0, =gPlayerParty - adds r4, r7, r0 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _08033170 - adds r0, r4, 0 - movs r1, 0xB - b _0803312C - .pool -_08033118: - ldr r0, =gEnemyParty - adds r4, r7, r0 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _08033170 - adds r0, r4, 0 - movs r1, 0x41 -_0803312C: - bl GetMonData - cmp r0, 0 - beq _08033170 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _08033170 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _08033170 - ldr r1, =gBattlePartyID - mov r0, r8 - subs r0, 0x2 - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r5 - beq _08033170 - adds r0, r6, r1 - strh r5, [r0] - b _08033178 - .pool -_08033170: - adds r7, 0x64 - adds r5, 0x1 - cmp r5, 0x5 - ble _08033088 -_08033178: - mov r8, r10 -_0803317A: - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r8, r0 - bge _08033184 - b _08033074 -_08033184: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - beq _0803319C - ldr r0, =gBattlePartyID - movs r1, 0 - strh r1, [r0, 0x2] - movs r1, 0x3 - strh r1, [r0, 0x6] -_0803319C: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8033050 - - thumb_func_start dp01_prepare_buffer -dp01_prepare_buffer: @ 80331B8 - push {r4-r6,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r3, r0, 24 - adds r5, r3, 0 - lsls r2, 16 - lsrs r2, 16 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080331E4 - adds r0, r3, 0 - adds r1, r2, 0 - adds r2, r4, 0 - bl PrepareBufferDataTransferLink - b _08033236 - .pool -_080331E4: - cmp r5, 0 - beq _080331EE - cmp r5, 0x1 - beq _08033218 - b _08033236 -_080331EE: - movs r3, 0 - cmp r3, r2 - bge _08033236 - ldr r6, =gBattleBufferA - ldr r5, =gActiveBank -_080331F8: - ldrb r0, [r5] - lsls r0, 9 - adds r0, r3, r0 - adds r0, r6 - ldrb r1, [r4] - strb r1, [r0] - adds r4, 0x1 - adds r3, 0x1 - cmp r3, r2 - blt _080331F8 - b _08033236 - .pool -_08033218: - movs r3, 0 - cmp r3, r2 - bge _08033236 - ldr r6, =gBattleBufferB - ldr r5, =gActiveBank -_08033222: - ldrb r0, [r5] - lsls r0, 9 - adds r0, r3, r0 - adds r0, r6 - ldrb r1, [r4] - strb r1, [r0] - adds r4, 0x1 - adds r3, 0x1 - cmp r3, r2 - blt _08033222 -_08033236: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end dp01_prepare_buffer - - thumb_func_start sub_8033244 -sub_8033244: @ 8033244 - push {r4-r6,lr} - ldr r0, =task00_wireless_something - movs r1, 0 - bl CreateTask - ldr r2, =gUnknown_02022D08 - strb r0, [r2] - ldr r5, =gTasks - ldrb r1, [r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r5 - movs r6, 0 - movs r4, 0 - strh r4, [r0, 0x1E] - ldrb r1, [r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r5 - strh r4, [r0, 0x20] - ldrb r1, [r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r5 - strh r4, [r0, 0x22] - ldrb r1, [r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r5 - strh r4, [r0, 0x24] - ldrb r1, [r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r5 - strh r4, [r0, 0x26] - ldr r0, =sub_803375C - movs r1, 0 - bl CreateTask - ldr r2, =gUnknown_02022D09 - strb r0, [r2] - ldrb r1, [r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r5 - strh r4, [r0, 0x20] - ldrb r1, [r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r5 - strh r4, [r0, 0x22] - ldrb r1, [r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r5 - strh r4, [r0, 0x24] - ldrb r1, [r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r5 - strh r4, [r0, 0x26] - ldr r0, =gUnknown_02022D0A - strb r6, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8033244 - - thumb_func_start PrepareBufferDataTransferLink -PrepareBufferDataTransferLink: @ 80332F4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r9, r2 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 16 - lsrs r1, 16 - mov r12, r1 - movs r1, 0x3 - mov r0, r12 - bics r0, r1 - adds r0, 0x4 - mov r8, r0 - ldr r2, =gTasks - ldr r3, =gUnknown_02022D08 - ldrb r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r4, r0, r2 - movs r1, 0x24 - ldrsh r0, [r4, r1] - add r0, r8 - adds r0, 0x9 - movs r1, 0x80 - lsls r1, 5 - adds r5, r2, 0 - cmp r0, r1 - ble _08033346 - ldrh r0, [r4, 0x24] - movs r2, 0 - strh r0, [r4, 0x20] - ldrb r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r5 - strh r2, [r0, 0x24] -_08033346: - ldrb r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r5 - movs r2, 0x24 - ldrsh r1, [r0, r2] - ldr r4, =gUnknown_020244A0 - ldr r0, [r4] - adds r0, r1 - strb r6, [r0] - ldrb r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r5 - movs r7, 0x24 - ldrsh r1, [r0, r7] - ldr r0, [r4] - adds r1, r0 - ldr r0, =gActiveBank - ldrb r0, [r0] - strb r0, [r1, 0x1] - ldrb r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r5 - movs r2, 0x24 - ldrsh r1, [r0, r2] - ldr r0, [r4] - adds r1, r0 - ldr r0, =gBankAttacker - ldrb r0, [r0] - strb r0, [r1, 0x2] - ldrb r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r5 - movs r7, 0x24 - ldrsh r1, [r0, r7] - ldr r0, [r4] - adds r1, r0 - ldr r0, =gBankTarget - ldrb r0, [r0] - strb r0, [r1, 0x3] - ldrb r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r5 - movs r1, 0x24 - ldrsh r0, [r0, r1] - ldr r1, [r4] - adds r0, r1 - mov r2, r8 - strb r2, [r0, 0x4] - ldrb r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r5 - movs r7, 0x24 - ldrsh r1, [r0, r7] - ldr r0, [r4] - adds r1, r0 - movs r0, 0xFF - lsls r0, 8 - mov r2, r8 - ands r0, r2 - asrs r0, 8 - strb r0, [r1, 0x5] - ldrb r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r5 - movs r7, 0x24 - ldrsh r1, [r0, r7] - ldr r0, [r4] - adds r1, r0 - ldr r0, =gAbsentBankFlags - ldrb r0, [r0] - strb r0, [r1, 0x6] - ldrb r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r5 - movs r2, 0x24 - ldrsh r1, [r0, r2] - ldr r0, [r4] - adds r1, r0 - ldr r0, =gEffectBank - ldrb r0, [r0] - strb r0, [r1, 0x7] - movs r2, 0 - cmp r2, r12 - bge _08033434 - mov r10, r5 - adds r6, r3, 0 -_08033412: - ldrb r1, [r6] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - add r0, r10 - movs r7, 0x24 - ldrsh r1, [r0, r7] - ldr r0, [r4] - adds r1, r2, r1 - adds r1, r0 - mov r7, r9 - adds r0, r7, r2 - ldrb r0, [r0] - strb r0, [r1, 0x8] - adds r2, 0x1 - cmp r2, r12 - blt _08033412 -_08033434: - ldrb r0, [r3] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r5 - ldrh r0, [r1, 0x24] - add r0, r8 - adds r0, 0x8 - strh r0, [r1, 0x24] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end PrepareBufferDataTransferLink - - thumb_func_start task00_wireless_something -task00_wireless_something: @ 8033474 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r2, 0x1E - ldrsh r0, [r0, r2] - adds r7, r1, 0 - cmp r0, 0x5 - bls _08033490 - b _08033640 -_08033490: - lsls r0, 2 - ldr r1, =_080334A4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080334A4: - .4byte _080334BC - .4byte _080334CA - .4byte _080334E6 - .4byte _08033570 - .4byte _080335E6 - .4byte _08033624 -_080334BC: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r7 - movs r1, 0x64 - strh r1, [r0, 0x1C] - b _080334F6 -_080334CA: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r7 - ldrh r0, [r1, 0x1C] - subs r0, 0x1 - strh r0, [r1, 0x1C] - lsls r0, 16 - cmp r0, 0 - beq _080334E0 - b _08033640 -_080334E0: - ldrh r0, [r1, 0x1E] - adds r0, 0x1 - b _0803363E -_080334E6: - ldr r0, =gLinkVSyncDisabled - ldrb r0, [r0] - cmp r0, 0 - beq _08033504 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r7 -_080334F6: - ldrh r1, [r0, 0x1E] - adds r1, 0x1 - strh r1, [r0, 0x1E] - b _08033640 - .pool -_08033504: - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _0803351C - movs r5, 0x2 - b _0803352A - .pool -_0803351C: - movs r0, 0x40 - ands r1, r0 - movs r0, 0x2 - cmp r1, 0 - beq _08033528 - movs r0, 0x4 -_08033528: - adds r5, r0, 0 -_0803352A: - bl sub_800ABAC - lsls r0, 24 - lsrs r0, 24 - cmp r0, r5 - bcs _08033538 - b _08033640 -_08033538: - bl sub_800ABBC - lsls r0, 24 - cmp r0, 0 - beq _0803355C - bl sub_800A620 - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x1E] - adds r0, 0x1 - b _0803363E - .pool -_0803355C: - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x1E] - adds r0, 0x1 - b _0803363E - .pool -_08033570: - lsls r1, r4, 2 - adds r0, r1, r4 - lsls r0, 3 - adds r2, r0, r7 - movs r3, 0x26 - ldrsh r5, [r2, r3] - movs r0, 0x24 - ldrsh r6, [r2, r0] - mov r12, r6 - cmp r5, r12 - beq _08033640 - ldrh r0, [r2, 0x22] - movs r6, 0x22 - ldrsh r3, [r2, r6] - cmp r3, 0 - bne _080335E0 - cmp r5, r12 - ble _080335A0 - movs r6, 0x20 - ldrsh r0, [r2, r6] - cmp r5, r0 - bne _080335A0 - strh r3, [r2, 0x20] - strh r3, [r2, 0x26] -_080335A0: - adds r4, r1, r4 - lsls r4, 3 - adds r4, r7 - movs r0, 0x26 - ldrsh r1, [r4, r0] - ldr r5, =gUnknown_020244A0 - ldr r0, [r5] - adds r1, r0 - ldrb r0, [r1, 0x4] - ldrb r1, [r1, 0x5] - lsls r1, 8 - orrs r0, r1 - adds r0, 0x8 - lsls r0, 16 - lsrs r6, r0, 16 - bl bitmask_all_link_players_but_self - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x26 - ldrsh r2, [r4, r1] - ldr r1, [r5] - adds r1, r2 - adds r2, r6, 0 - bl SendBlock - ldrh r0, [r4, 0x1E] - adds r0, 0x1 - strh r0, [r4, 0x1E] - b _08033640 - .pool -_080335E0: - subs r0, 0x1 - strh r0, [r2, 0x22] - b _08033640 -_080335E6: - bl sub_800A520 - lsls r0, 24 - cmp r0, 0 - beq _08033640 - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r3, 0x26 - ldrsh r2, [r1, r3] - ldr r0, =gUnknown_020244A0 - ldr r0, [r0] - adds r2, r0 - ldrb r0, [r2, 0x4] - ldrb r2, [r2, 0x5] - lsls r2, 8 - movs r3, 0x1 - strh r3, [r1, 0x22] - orrs r0, r2 - ldrh r6, [r1, 0x26] - adds r0, r6 - adds r0, 0x8 - strh r0, [r1, 0x26] - b _0803363C - .pool -_08033624: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r7 - ldrh r0, [r1, 0x22] - subs r0, 0x1 - strh r0, [r1, 0x22] - lsls r0, 16 - cmp r0, 0 - bne _08033640 - movs r0, 0x1 - strh r0, [r1, 0x22] -_0803363C: - movs r0, 0x3 -_0803363E: - strh r0, [r1, 0x1E] -_08033640: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end task00_wireless_something - - thumb_func_start sub_8033648 -sub_8033648: @ 8033648 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - beq _08033738 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08033738 - bl sub_8011BD0 - movs r4, 0 - ldr r0, =gBlockRecvBuffer - mov r10, r0 - b _0803372C - .pool -_08033680: - bl GetBlockReceivedStatus - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gBitTable - lsls r1, r4, 2 - adds r1, r2 - ldr r1, [r1] - ands r0, r1 - adds r1, r4, 0x1 - mov r9, r1 - cmp r0, 0 - beq _08033726 - adds r0, r4, 0 - bl sub_800A5EC - lsls r0, r4, 8 - mov r4, r10 - adds r3, r0, r4 - ldr r1, =gBlockRecvBuffer + 4 - adds r0, r1 - ldrh r6, [r0] - ldr r7, =gTasks - ldr r4, =gUnknown_02022D09 - mov r12, r4 - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r2, r0, r7 - movs r0, 0x24 - ldrsh r1, [r2, r0] - adds r0, r6, 0 - adds r0, 0x9 - adds r1, r0 - movs r0, 0x80 - lsls r0, 5 - cmp r1, r0 - ble _080336E0 - ldrh r0, [r2, 0x24] - strh r0, [r2, 0x20] - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r7 - movs r1, 0 - strh r1, [r0, 0x24] -_080336E0: - ldr r2, =gUnknown_020244A4 - mov r4, r12 - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r7 - movs r4, 0x24 - ldrsh r1, [r0, r4] - ldr r0, [r2] - adds r5, r0, r1 - adds r4, r3, 0 - movs r2, 0 - adds r3, r6, 0 - adds r3, 0x8 - mov r8, r7 - mov r7, r12 - cmp r2, r3 - bge _08033714 -_08033706: - adds r0, r5, r2 - adds r1, r4, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, r3 - blt _08033706 -_08033714: - ldrb r0, [r7] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - add r1, r8 - ldrh r0, [r1, 0x24] - adds r0, r6, r0 - adds r0, 0x8 - strh r0, [r1, 0x24] -_08033726: - mov r1, r9 - lsls r0, r1, 24 - lsrs r4, r0, 24 -_0803372C: - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bcc _08033680 -_08033738: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8033648 - - thumb_func_start sub_803375C -sub_803375C: @ 803375C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r3, r0, r1 - movs r0, 0x26 - ldrsh r2, [r3, r0] - movs r4, 0x24 - ldrsh r0, [r3, r4] - cmp r2, r0 - bne _08033780 - b _0803389C -_08033780: - cmp r2, r0 - ble _08033792 - movs r4, 0x20 - ldrsh r0, [r3, r4] - cmp r2, r0 - bne _08033792 - movs r0, 0 - strh r0, [r3, 0x20] - strh r0, [r3, 0x26] -_08033792: - lsls r2, r7, 2 - adds r0, r2, r7 - lsls r0, 3 - adds r5, r0, r1 - movs r0, 0x26 - ldrsh r1, [r5, r0] - ldr r3, =gUnknown_020244A4 - mov r8, r3 - ldr r0, [r3] - adds r3, r1, r0 - ldrb r4, [r3, 0x1] - ldrb r6, [r3, 0x4] - ldrb r0, [r3, 0x5] - lsls r0, 8 - orrs r6, r0 - ldrb r0, [r3] - mov r9, r2 - cmp r0, 0x1 - beq _0803385C - cmp r0, 0x1 - bgt _080337CC - cmp r0, 0 - beq _080337D2 - b _0803388A - .pool -_080337CC: - cmp r0, 0x2 - beq _08033874 - b _0803388A -_080337D2: - ldr r2, =gBattleExecBuffer - ldr r1, =gBitTable - lsls r0, r4, 2 - adds r0, r1 - ldr r1, [r2] - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _0803389C - lsls r0, r4, 9 - ldr r1, =gBattleBufferA - adds r0, r1 - adds r1, r3, 0 - adds r1, 0x8 - adds r2, r6, 0 - bl memcpy - adds r0, r4, 0 - bl sub_803F850 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x4 - ands r0, r1 - cmp r0, 0 - bne _0803388A - ldr r2, =gBankAttacker - movs r4, 0x26 - ldrsh r0, [r5, r4] - mov r3, r8 - ldr r1, [r3] - adds r0, r1 - ldrb r0, [r0, 0x2] - strb r0, [r2] - ldr r2, =gBankTarget - movs r4, 0x26 - ldrsh r0, [r5, r4] - adds r0, r1 - ldrb r0, [r0, 0x3] - strb r0, [r2] - ldr r2, =gAbsentBankFlags - movs r3, 0x26 - ldrsh r0, [r5, r3] - adds r0, r1 - ldrb r0, [r0, 0x6] - strb r0, [r2] - ldr r2, =gEffectBank - movs r4, 0x26 - ldrsh r0, [r5, r4] - adds r0, r1 - ldrb r0, [r0, 0x7] - strb r0, [r2] - b _0803388A - .pool -_0803385C: - lsls r0, r4, 9 - ldr r1, =gBattleBufferB - adds r0, r1 - adds r1, r3, 0 - adds r1, 0x8 - adds r2, r6, 0 - bl memcpy - b _0803388A - .pool -_08033874: - ldrb r2, [r3, 0x8] - ldr r3, =gBattleExecBuffer - ldr r1, =gBitTable - lsls r0, r4, 2 - adds r0, r1 - lsls r2, 2 - ldr r1, [r0] - lsls r1, r2 - ldr r0, [r3] - bics r0, r1 - str r0, [r3] -_0803388A: - ldr r0, =gTasks - mov r2, r9 - adds r1, r2, r7 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x26] - adds r0, r6, r0 - adds r0, 0x8 - strh r0, [r1, 0x26] -_0803389C: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_803375C - - thumb_func_start EmitGetMonData -EmitGetMonData: @ 80338B4 - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_02022D10 - movs r3, 0 - strb r3, [r1] - strb r4, [r1, 0x1] - strb r2, [r1, 0x2] - strb r3, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end EmitGetMonData - - thumb_func_start dp01_build_cmdbuf_x01_a_b_0 -dp01_build_cmdbuf_x01_a_b_0: @ 80338D8 - push {r4,r5,lr} - adds r5, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_02022D10 - movs r4, 0 - movs r3, 0x1 - strb r3, [r1] - strb r5, [r1, 0x1] - strb r2, [r1, 0x2] - strb r4, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end dp01_build_cmdbuf_x01_a_b_0 - - thumb_func_start EmitSetMonData -EmitSetMonData: @ 8033900 - push {r4-r6,lr} - ldr r4, [sp, 0x10] - lsls r0, 24 - lsrs r6, r0, 24 - lsls r3, 24 - lsrs r5, r3, 24 - ldr r0, =gUnknown_02022D10 - movs r3, 0x2 - strb r3, [r0] - strb r1, [r0, 0x1] - strb r2, [r0, 0x2] - adds r1, r0, 0 - cmp r5, 0 - beq _0803392E - adds r3, r1, 0x3 - adds r2, r5, 0 -_08033920: - ldrb r0, [r4] - strb r0, [r3] - adds r4, 0x1 - adds r3, 0x1 - subs r2, 0x1 - cmp r2, 0 - bne _08033920 -_0803392E: - adds r2, r5, 0x3 - adds r0, r6, 0 - bl dp01_prepare_buffer - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end EmitSetMonData - - thumb_func_start sub_8033940 -sub_8033940: @ 8033940 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r2, 24 - lsrs r4, r2, 24 - ldr r0, =gUnknown_02022D10 - movs r2, 0x3 - strb r2, [r0] - strb r1, [r0, 0x1] - strb r4, [r0, 0x2] - adds r5, r0, 0 - cmp r4, 0 - beq _0803396C - adds r1, r5, 0x3 - adds r2, r4, 0 -_0803395E: - ldrb r0, [r3] - strb r0, [r1] - adds r3, 0x1 - adds r1, 0x1 - subs r2, 0x1 - cmp r2, 0 - bne _0803395E -_0803396C: - adds r2, r4, 0x3 - adds r0, r6, 0 - adds r1, r5, 0 - bl dp01_prepare_buffer - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8033940 - - thumb_func_start EmitLoadMonSprite -EmitLoadMonSprite: @ 8033980 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_02022D10 - movs r2, 0x4 - strb r2, [r1] - strb r2, [r1, 0x1] - strb r2, [r1, 0x2] - strb r2, [r1, 0x3] - bl dp01_prepare_buffer - pop {r0} - bx r0 - .pool - thumb_func_end EmitLoadMonSprite - - thumb_func_start EmitSwitchInAnim -EmitSwitchInAnim: @ 80339A0 - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_02022D10 - movs r3, 0x5 - strb r3, [r1] - strb r4, [r1, 0x1] - strb r2, [r1, 0x2] - strb r3, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end EmitSwitchInAnim - - thumb_func_start EmitReturnPokeToBall -EmitReturnPokeToBall: @ 80339C4 - push {lr} - adds r3, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_02022D10 - movs r2, 0x6 - strb r2, [r1] - strb r3, [r1, 0x1] - movs r2, 0x2 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .pool - thumb_func_end EmitReturnPokeToBall - - thumb_func_start EmitDrawTrainerPic -EmitDrawTrainerPic: @ 80339E4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_02022D10 - movs r2, 0x7 - strb r2, [r1] - strb r2, [r1, 0x1] - strb r2, [r1, 0x2] - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .pool - thumb_func_end EmitDrawTrainerPic - - thumb_func_start EmitTrainerSlide -EmitTrainerSlide: @ 8033A04 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_02022D10 - movs r2, 0x8 - strb r2, [r1] - strb r2, [r1, 0x1] - strb r2, [r1, 0x2] - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .pool - thumb_func_end EmitTrainerSlide - - thumb_func_start EmitTrainerSlideBack -EmitTrainerSlideBack: @ 8033A24 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_02022D10 - movs r2, 0x9 - strb r2, [r1] - strb r2, [r1, 0x1] - strb r2, [r1, 0x2] - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .pool - thumb_func_end EmitTrainerSlideBack - - thumb_func_start EmitFaintAnimation -EmitFaintAnimation: @ 8033A44 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_02022D10 - movs r2, 0xA - strb r2, [r1] - strb r2, [r1, 0x1] - strb r2, [r1, 0x2] - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .pool - thumb_func_end EmitFaintAnimation - - thumb_func_start dp01_build_cmdbuf_x0B_B_B_B -dp01_build_cmdbuf_x0B_B_B_B: @ 8033A64 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_02022D10 - movs r2, 0xB - strb r2, [r1] - strb r2, [r1, 0x1] - strb r2, [r1, 0x2] - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .pool - thumb_func_end dp01_build_cmdbuf_x0B_B_B_B - - thumb_func_start dp01_build_cmdbuf_x0C_C_C_C -dp01_build_cmdbuf_x0C_C_C_C: @ 8033A84 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_02022D10 - movs r2, 0xC - strb r2, [r1] - strb r2, [r1, 0x1] - strb r2, [r1, 0x2] - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .pool - thumb_func_end dp01_build_cmdbuf_x0C_C_C_C - - thumb_func_start EmitBallThrow -EmitBallThrow: @ 8033AA4 - push {lr} - adds r3, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_02022D10 - movs r2, 0xD - strb r2, [r1] - strb r3, [r1, 0x1] - movs r2, 0x2 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .pool - thumb_func_end EmitBallThrow - - thumb_func_start sub_8033AC4 -sub_8033AC4: @ 8033AC4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - ldr r1, =gUnknown_02022D10 - movs r0, 0xE - strb r0, [r1] - strb r4, [r1, 0x1] - lsls r0, r4, 1 - adds r0, r4 - adds r5, r1, 0 - cmp r0, 0 - beq _08033AF2 - adds r1, r5, 0x2 - adds r3, r0, 0 -_08033AE4: - ldrb r0, [r2] - strb r0, [r1] - adds r2, 0x1 - adds r1, 0x1 - subs r3, 0x1 - cmp r3, 0 - bne _08033AE4 -_08033AF2: - lsls r2, r4, 1 - adds r2, r4 - adds r2, 0x2 - adds r0, r6, 0 - adds r1, r5, 0 - bl dp01_prepare_buffer - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8033AC4 - - thumb_func_start EmitMoveAnimation -EmitMoveAnimation: @ 8033B0C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - ldr r4, [sp, 0x20] - ldr r5, [sp, 0x24] - ldr r6, [sp, 0x2C] - mov r8, r6 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r1, 16 - lsrs r1, 16 - lsls r3, 16 - lsrs r3, 16 - ldr r7, =gUnknown_02022D10 - movs r0, 0 - mov r12, r0 - movs r0, 0xF - strb r0, [r7] - strb r1, [r7, 0x1] - lsrs r1, 8 - strb r1, [r7, 0x2] - strb r2, [r7, 0x3] - strb r3, [r7, 0x4] - movs r6, 0xFF - lsls r6, 8 - lsrs r3, 8 - strb r3, [r7, 0x5] - strb r4, [r7, 0x6] - adds r0, r4, 0 - ands r0, r6 - asrs r0, 8 - strb r0, [r7, 0x7] - movs r0, 0xFF - lsls r0, 16 - ands r0, r4 - asrs r0, 16 - strb r0, [r7, 0x8] - lsrs r4, 24 - strb r4, [r7, 0x9] - strb r5, [r7, 0xA] - mov r0, r8 - strb r0, [r7, 0xB] - mov r0, r12 - str r0, [sp] - movs r0, 0xE - movs r1, 0 - movs r2, 0xD - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _08033BAC - str r0, [sp] - movs r0, 0xE - movs r1, 0 - movs r2, 0x4D - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - cmp r0, 0 - bne _08033BAC - ldr r0, =gBattleWeather - ldrh r0, [r0] - strb r0, [r7, 0xC] - ands r6, r0 - lsrs r0, r6, 8 - strb r0, [r7, 0xD] - adds r4, r7, 0 - b _08033BB6 - .pool -_08033BAC: - ldr r0, =gUnknown_02022D10 - movs r1, 0 - strb r1, [r0, 0xC] - strb r1, [r0, 0xD] - adds r4, r0, 0 -_08033BB6: - movs r0, 0 - strb r0, [r4, 0xE] - strb r0, [r4, 0xF] - adds r0, r4, 0 - adds r0, 0x10 - ldr r1, [sp, 0x28] - movs r2, 0x1C - bl memcpy - mov r0, r9 - adds r1, r4, 0 - movs r2, 0x2C - bl dp01_prepare_buffer - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end EmitMoveAnimation - - thumb_func_start EmitPrintString -EmitPrintString: @ 8033BE4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - lsls r1, 16 - lsrs r1, 16 - ldr r2, =gUnknown_02022D10 - movs r0, 0x10 - strb r0, [r2] - ldr r0, =gBattleOutcome - ldrb r0, [r0] - strb r0, [r2, 0x1] - strb r1, [r2, 0x2] - lsrs r1, 8 - strb r1, [r2, 0x3] - adds r0, r2, 0x4 - mov r12, r0 - ldr r4, =gCurrentMove - ldrh r0, [r4] - strh r0, [r2, 0x4] - ldr r0, =gLastUsedMove - ldrh r0, [r0] - mov r1, r12 - strh r0, [r1, 0x2] - ldr r0, =gLastUsedItem - ldrh r0, [r0] - strh r0, [r1, 0x4] - ldr r0, =gLastUsedAbility - ldrb r0, [r0] - strb r0, [r1, 0x6] - ldr r0, =gBattleScripting - ldrb r0, [r0, 0x17] - strb r0, [r1, 0x7] - ldr r0, =gBattleStruct - ldr r0, [r0] - adds r1, r0, 0 - adds r1, 0x52 - ldrb r1, [r1] - mov r3, r12 - strb r1, [r3, 0x8] - adds r0, 0xB1 - ldrb r0, [r0] - strb r0, [r3, 0x9] - ldr r0, =gStringBank - ldrb r0, [r0] - strb r0, [r3, 0xA] - ldr r3, =gBattleMoves - ldrh r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x2] - mov r7, r12 - strb r0, [r7, 0xB] - movs r3, 0 - mov r9, r2 - ldr r0, =gBattleTextBuff3 - mov r8, r0 - adds r2, 0x10 - ldr r0, =gBattleMons - adds r4, r0, 0 - adds r4, 0x20 -_08033C6A: - adds r1, r2, r3 - ldrb r0, [r4] - strb r0, [r1] - adds r4, 0x58 - adds r3, 0x1 - cmp r3, 0x3 - ble _08033C6A - movs r3, 0 - mov r5, r12 - adds r5, 0x10 - mov r4, r12 - adds r4, 0x20 - ldr r6, =gBattleTextBuff2 - mov r2, r12 - adds r2, 0x30 -_08033C88: - adds r1, r5, r3 - ldr r7, =gBattleTextBuff1 - adds r0, r3, r7 - ldrb r0, [r0] - strb r0, [r1] - adds r1, r4, r3 - adds r0, r3, r6 - ldrb r0, [r0] - strb r0, [r1] - adds r1, r2, r3 - mov r7, r8 - adds r0, r3, r7 - ldrb r0, [r0] - strb r0, [r1] - adds r3, 0x1 - cmp r3, 0xF - ble _08033C88 - mov r0, r10 - mov r1, r9 - movs r2, 0x44 - bl dp01_prepare_buffer - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end EmitPrintString - - thumb_func_start EmitPrintStringPlayerOnly -EmitPrintStringPlayerOnly: @ 8033CFC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - lsls r1, 16 - lsrs r1, 16 - ldr r2, =gUnknown_02022D10 - movs r0, 0x11 - strb r0, [r2] - strb r0, [r2, 0x1] - strb r1, [r2, 0x2] - lsrs r1, 8 - strb r1, [r2, 0x3] - adds r0, r2, 0x4 - mov r12, r0 - ldr r0, =gCurrentMove - ldrh r0, [r0] - strh r0, [r2, 0x4] - ldr r0, =gLastUsedMove - ldrh r0, [r0] - mov r1, r12 - strh r0, [r1, 0x2] - ldr r0, =gLastUsedItem - ldrh r0, [r0] - strh r0, [r1, 0x4] - ldr r0, =gLastUsedAbility - ldrb r0, [r0] - strb r0, [r1, 0x6] - ldr r0, =gBattleScripting - ldrb r0, [r0, 0x17] - strb r0, [r1, 0x7] - ldr r0, =gBattleStruct - ldr r0, [r0] - adds r0, 0x52 - ldrb r0, [r0] - strb r0, [r1, 0x8] - movs r3, 0 - mov r9, r2 - ldr r7, =gBattleTextBuff3 - mov r8, r7 - mov r4, r9 - adds r4, 0x10 - ldr r0, =gBattleMons - adds r2, r0, 0 - adds r2, 0x20 -_08033D5E: - adds r1, r4, r3 - ldrb r0, [r2] - strb r0, [r1] - adds r2, 0x58 - adds r3, 0x1 - cmp r3, 0x3 - ble _08033D5E - movs r3, 0 - mov r5, r12 - adds r5, 0x10 - mov r4, r12 - adds r4, 0x20 - ldr r6, =gBattleTextBuff2 - mov r2, r12 - adds r2, 0x30 -_08033D7C: - adds r1, r5, r3 - ldr r7, =gBattleTextBuff1 - adds r0, r3, r7 - ldrb r0, [r0] - strb r0, [r1] - adds r1, r4, r3 - adds r0, r3, r6 - ldrb r0, [r0] - strb r0, [r1] - adds r1, r2, r3 - mov r7, r8 - adds r0, r3, r7 - ldrb r0, [r0] - strb r0, [r1] - adds r3, 0x1 - cmp r3, 0xF - ble _08033D7C - mov r0, r10 - mov r1, r9 - movs r2, 0x44 - bl dp01_prepare_buffer - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end EmitPrintStringPlayerOnly - - thumb_func_start EmitChooseAction -EmitChooseAction: @ 8033DE4 - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r2, 16 - lsrs r2, 16 - ldr r1, =gUnknown_02022D10 - movs r3, 0x12 - strb r3, [r1] - strb r4, [r1, 0x1] - strb r2, [r1, 0x2] - lsrs r2, 8 - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end EmitChooseAction - - thumb_func_start EmitCmd13 -EmitCmd13: @ 8033E10 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_02022D10 - movs r2, 0x13 - strb r2, [r1] - strb r2, [r1, 0x1] - strb r2, [r1, 0x2] - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .pool - thumb_func_end EmitCmd13 - - thumb_func_start EmitChooseMove -EmitChooseMove: @ 8033E30 - push {r4-r6,lr} - adds r5, r3, 0 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r3, =gUnknown_02022D10 - movs r4, 0 - movs r0, 0x14 - strb r0, [r3] - strb r1, [r3, 0x1] - strb r2, [r3, 0x2] - strb r4, [r3, 0x3] - movs r2, 0 - adds r1, r3, 0 - adds r4, r1, 0x4 -_08033E4C: - adds r0, r5, r2 - ldrb r0, [r0] - strb r0, [r4] - adds r4, 0x1 - adds r2, 0x1 - cmp r2, 0x13 - bls _08033E4C - adds r0, r6, 0 - movs r2, 0x18 - bl dp01_prepare_buffer - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end EmitChooseMove - - thumb_func_start EmitOpenBag -EmitOpenBag: @ 8033E6C - push {r4,r5,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, =gUnknown_02022D10 - movs r0, 0x15 - strb r0, [r1] - movs r2, 0 - adds r3, r1, 0x1 -_08033E7E: - adds r0, r4, r2 - ldrb r0, [r0] - strb r0, [r3] - adds r3, 0x1 - adds r2, 0x1 - cmp r2, 0x2 - ble _08033E7E - adds r0, r5, 0 - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end EmitOpenBag - - thumb_func_start EmitChoosePokemon -EmitChoosePokemon: @ 8033EA0 - push {r4-r6,lr} - ldr r6, [sp, 0x10] - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, =gUnknown_02022D10 - movs r0, 0x16 - strb r0, [r4] - strb r1, [r4, 0x1] - strb r2, [r4, 0x2] - strb r3, [r4, 0x3] - movs r2, 0 - adds r1, r4, 0 - adds r3, r1, 0x4 -_08033EBA: - adds r0, r6, r2 - ldrb r0, [r0] - strb r0, [r3] - adds r3, 0x1 - adds r2, 0x1 - cmp r2, 0x2 - ble _08033EBA - adds r0, r5, 0 - movs r2, 0x8 - bl dp01_prepare_buffer - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end EmitChoosePokemon - - thumb_func_start dp01_build_cmdbuf_x17_17_17_17 -dp01_build_cmdbuf_x17_17_17_17: @ 8033EDC - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_02022D10 - movs r2, 0x17 - strb r2, [r1] - strb r2, [r1, 0x1] - strb r2, [r1, 0x2] - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .pool - thumb_func_end dp01_build_cmdbuf_x17_17_17_17 - - thumb_func_start EmitHealthBarUpdate -EmitHealthBarUpdate: @ 8033EFC - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r1, 16 - ldr r3, =gUnknown_02022D10 - movs r4, 0 - movs r2, 0x18 - strb r2, [r3] - strb r4, [r3, 0x1] - strb r1, [r3, 0x2] - lsls r1, 16 - asrs r1, 16 - movs r2, 0xFF - lsls r2, 8 - ands r1, r2 - asrs r1, 8 - strb r1, [r3, 0x3] - adds r1, r3, 0 - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end EmitHealthBarUpdate - - thumb_func_start EmitExpUpdate -EmitExpUpdate: @ 8033F34 - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r2, 16 - lsrs r2, 16 - ldr r1, =gUnknown_02022D10 - movs r3, 0x19 - strb r3, [r1] - strb r4, [r1, 0x1] - strb r2, [r1, 0x2] - lsls r2, 16 - asrs r2, 16 - movs r3, 0xFF - lsls r3, 8 - ands r2, r3 - asrs r2, 8 - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end EmitExpUpdate - - thumb_func_start EmitStatusIconUpdate -EmitStatusIconUpdate: @ 8033F68 - push {r4-r6,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_02022D10 - movs r3, 0x1A - strb r3, [r1] - strb r4, [r1, 0x1] - movs r6, 0xFF - lsls r6, 8 - adds r3, r4, 0 - ands r3, r6 - lsrs r3, 8 - strb r3, [r1, 0x2] - movs r5, 0xFF - lsls r5, 16 - adds r3, r4, 0 - ands r3, r5 - lsrs r3, 16 - strb r3, [r1, 0x3] - lsrs r4, 24 - strb r4, [r1, 0x4] - strb r2, [r1, 0x5] - adds r3, r2, 0 - ands r3, r6 - lsrs r3, 8 - strb r3, [r1, 0x6] - adds r3, r2, 0 - ands r3, r5 - lsrs r3, 16 - strb r3, [r1, 0x7] - lsrs r2, 24 - strb r2, [r1, 0x8] - movs r2, 0x9 - bl dp01_prepare_buffer - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end EmitStatusIconUpdate - - thumb_func_start EmitStatusAnimation -EmitStatusAnimation: @ 8033FBC - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_02022D10 - movs r3, 0x1B - strb r3, [r1] - strb r4, [r1, 0x1] - strb r2, [r1, 0x2] - movs r3, 0xFF - lsls r3, 8 - ands r3, r2 - lsrs r3, 8 - strb r3, [r1, 0x3] - movs r3, 0xFF - lsls r3, 16 - ands r3, r2 - lsrs r3, 16 - strb r3, [r1, 0x4] - lsrs r2, 24 - strb r2, [r1, 0x5] - movs r2, 0x6 - bl dp01_prepare_buffer - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end EmitStatusAnimation - - thumb_func_start dp01_build_cmdbuf_x1C_a -dp01_build_cmdbuf_x1C_a: @ 8033FF8 - push {lr} - adds r3, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_02022D10 - movs r2, 0x1C - strb r2, [r1] - strb r3, [r1, 0x1] - movs r2, 0x2 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .pool - thumb_func_end dp01_build_cmdbuf_x1C_a - - thumb_func_start dp01_build_cmdbuf_x1D_1D_numargs_varargs -dp01_build_cmdbuf_x1D_1D_numargs_varargs: @ 8034018 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 16 - lsrs r4, r1, 16 - ldr r1, =gUnknown_02022D10 - movs r0, 0x1D - strb r0, [r1] - strb r0, [r1, 0x1] - strb r4, [r1, 0x2] - lsrs r0, r4, 8 - strb r0, [r1, 0x3] - adds r5, r1, 0 - cmp r4, 0 - beq _08034048 - adds r1, r5, 0x4 - adds r3, r4, 0 -_0803403A: - ldrb r0, [r2] - strb r0, [r1] - adds r2, 0x1 - adds r1, 0x1 - subs r3, 0x1 - cmp r3, 0 - bne _0803403A -_08034048: - adds r2, r4, 0x4 - lsls r2, 16 - lsrs r2, 16 - adds r0, r6, 0 - adds r1, r5, 0 - bl dp01_prepare_buffer - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end dp01_build_cmdbuf_x1D_1D_numargs_varargs - - thumb_func_start sub_8034060 -sub_8034060: @ 8034060 - push {r4-r6,lr} - adds r4, r3, 0 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r2, 16 - lsrs r5, r2, 16 - ldr r2, =gUnknown_02022D10 - movs r0, 0x1E - strb r0, [r2] - strb r1, [r2, 0x1] - movs r3, 0xFF - lsls r3, 8 - adds r0, r1, 0 - ands r0, r3 - lsrs r0, 8 - strb r0, [r2, 0x2] - movs r0, 0xFF - lsls r0, 16 - ands r0, r1 - lsrs r0, 16 - strb r0, [r2, 0x3] - lsrs r1, 24 - strb r1, [r2, 0x4] - strb r5, [r2, 0x5] - adds r0, r5, 0 - ands r0, r3 - lsrs r0, 8 - strb r0, [r2, 0x6] - adds r1, r2, 0 - cmp r5, 0 - beq _080340B0 - adds r3, r1, 0x7 - adds r2, r5, 0 -_080340A2: - ldrb r0, [r4] - strb r0, [r3] - adds r4, 0x1 - adds r3, 0x1 - subs r2, 0x1 - cmp r2, 0 - bne _080340A2 -_080340B0: - adds r2, r5, 0x7 - lsls r2, 16 - lsrs r2, 16 - adds r0, r6, 0 - bl dp01_prepare_buffer - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8034060 - - thumb_func_start sub_80340C8 -sub_80340C8: @ 80340C8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 16 - lsrs r4, r1, 16 - ldr r1, =gUnknown_02022D10 - movs r0, 0x1F - strb r0, [r1] - strb r4, [r1, 0x1] - lsrs r0, r4, 8 - strb r0, [r1, 0x2] - adds r5, r1, 0 - cmp r4, 0 - beq _080340F6 - adds r1, r5, 0x3 - adds r3, r4, 0 -_080340E8: - ldrb r0, [r2] - strb r0, [r1] - adds r2, 0x1 - adds r1, 0x1 - subs r3, 0x1 - cmp r3, 0 - bne _080340E8 -_080340F6: - adds r2, r4, 0x3 - lsls r2, 16 - lsrs r2, 16 - adds r0, r6, 0 - adds r1, r5, 0 - bl dp01_prepare_buffer - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80340C8 - - thumb_func_start sub_8034110 -sub_8034110: @ 8034110 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 16 - lsrs r4, r1, 16 - ldr r1, =gUnknown_02022D10 - movs r0, 0x20 - strb r0, [r1] - strb r4, [r1, 0x1] - lsrs r0, r4, 8 - strb r0, [r1, 0x2] - adds r5, r1, 0 - cmp r4, 0 - beq _0803413E - adds r1, r5, 0x3 - adds r3, r4, 0 -_08034130: - ldrb r0, [r2] - strb r0, [r1] - adds r2, 0x1 - adds r1, 0x1 - subs r3, 0x1 - cmp r3, 0 - bne _08034130 -_0803413E: - adds r2, r4, 0x3 - lsls r2, 16 - lsrs r2, 16 - adds r0, r6, 0 - adds r1, r5, 0 - bl dp01_prepare_buffer - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8034110 - - thumb_func_start EmitCmd_x21 -EmitCmd_x21: @ 8034158 - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r2, 16 - lsrs r2, 16 - ldr r1, =gUnknown_02022D10 - movs r3, 0x21 - strb r3, [r1] - strb r4, [r1, 0x1] - strb r2, [r1, 0x2] - lsrs r2, 8 - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end EmitCmd_x21 - - thumb_func_start dp01_build_cmdbuf_x22_a_three_bytes -dp01_build_cmdbuf_x22_a_three_bytes: @ 8034184 - push {r4,r5,lr} - adds r4, r2, 0 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r2, =gUnknown_02022D10 - movs r0, 0x22 - strb r0, [r2] - strb r1, [r2, 0x1] - movs r3, 0 - adds r1, r2, 0x2 -_08034198: - adds r0, r4, r3 - ldrb r0, [r0] - strb r0, [r1] - adds r1, 0x1 - adds r3, 0x1 - cmp r3, 0x2 - ble _08034198 - adds r0, r5, 0 - adds r1, r2, 0 - movs r2, 0x5 - bl dp01_prepare_buffer - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end dp01_build_cmdbuf_x22_a_three_bytes - - thumb_func_start dp01_build_cmdbuf_x23_aa_0 -dp01_build_cmdbuf_x23_aa_0: @ 80341BC - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r1, 16 - ldr r3, =gUnknown_02022D10 - movs r4, 0 - movs r2, 0x23 - strb r2, [r3] - strb r1, [r3, 0x1] - lsrs r1, 8 - strb r1, [r3, 0x2] - strb r4, [r3, 0x3] - adds r1, r3, 0 - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end dp01_build_cmdbuf_x23_aa_0 - - thumb_func_start dp01_build_cmdbuf_x24_aa_0 -dp01_build_cmdbuf_x24_aa_0: @ 80341E8 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r1, 16 - ldr r3, =gUnknown_02022D10 - movs r4, 0 - movs r2, 0x24 - strb r2, [r3] - strb r1, [r3, 0x1] - lsrs r1, 8 - strb r1, [r3, 0x2] - strb r4, [r3, 0x3] - adds r1, r3, 0 - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end dp01_build_cmdbuf_x24_aa_0 - - thumb_func_start dp01_build_cmdbuf_x25_25_25_25 -dp01_build_cmdbuf_x25_25_25_25: @ 8034214 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_02022D10 - movs r2, 0x25 - strb r2, [r1] - strb r2, [r1, 0x1] - strb r2, [r1, 0x2] - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .pool - thumb_func_end dp01_build_cmdbuf_x25_25_25_25 - - thumb_func_start dp01_build_cmdbuf_x26_a -dp01_build_cmdbuf_x26_a: @ 8034234 - push {lr} - adds r3, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_02022D10 - movs r2, 0x26 - strb r2, [r1] - strb r3, [r1, 0x1] - movs r2, 0x2 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .pool - thumb_func_end dp01_build_cmdbuf_x26_a - - thumb_func_start dp01_build_cmdbuf_x27_27_27_27 -dp01_build_cmdbuf_x27_27_27_27: @ 8034254 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_02022D10 - movs r2, 0x27 - strb r2, [r1] - strb r2, [r1, 0x1] - strb r2, [r1, 0x2] - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .pool - thumb_func_end dp01_build_cmdbuf_x27_27_27_27 - - thumb_func_start dp01_build_cmdbuf_x28_28_28_28 -dp01_build_cmdbuf_x28_28_28_28: @ 8034274 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_02022D10 - movs r2, 0x28 - strb r2, [r1] - strb r2, [r1, 0x1] - strb r2, [r1, 0x2] - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .pool - thumb_func_end dp01_build_cmdbuf_x28_28_28_28 - - thumb_func_start EmitHitAnimation -EmitHitAnimation: @ 8034294 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_02022D10 - movs r2, 0x29 - strb r2, [r1] - strb r2, [r1, 0x1] - strb r2, [r1, 0x2] - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .pool - thumb_func_end EmitHitAnimation - - thumb_func_start Emit_x2A -Emit_x2A: @ 80342B4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_02022D10 - movs r2, 0x2A - strb r2, [r1] - strb r2, [r1, 0x1] - strb r2, [r1, 0x2] - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .pool - thumb_func_end Emit_x2A - - thumb_func_start EmitEffectivenessSound -EmitEffectivenessSound: @ 80342D4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r1, 16 - ldr r3, =gUnknown_02022D10 - movs r4, 0 - movs r2, 0x2B - strb r2, [r3] - strb r1, [r3, 0x1] - lsrs r1, 8 - strb r1, [r3, 0x2] - strb r4, [r3, 0x3] - adds r1, r3, 0 - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end EmitEffectivenessSound - - thumb_func_start EmitPlaySound -EmitPlaySound: @ 8034300 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r1, 16 - ldr r4, =gUnknown_02022D10 - movs r3, 0x2C - strb r3, [r4] - strb r1, [r4, 0x1] - lsrs r1, 8 - strb r1, [r4, 0x2] - strb r2, [r4, 0x3] - adds r1, r4, 0 - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end EmitPlaySound - - thumb_func_start EmitFaintingCry -EmitFaintingCry: @ 803432C - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_02022D10 - movs r2, 0x2D - strb r2, [r1] - strb r2, [r1, 0x1] - strb r2, [r1, 0x2] - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .pool - thumb_func_end EmitFaintingCry - - thumb_func_start EmitIntroSlide -EmitIntroSlide: @ 803434C - push {lr} - adds r3, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_02022D10 - movs r2, 0x2E - strb r2, [r1] - strb r3, [r1, 0x1] - movs r2, 0x2 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .pool - thumb_func_end EmitIntroSlide - - thumb_func_start EmitIntroTrainerBallThrow -EmitIntroTrainerBallThrow: @ 803436C - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_02022D10 - movs r2, 0x2F - strb r2, [r1] - strb r2, [r1, 0x1] - strb r2, [r1, 0x2] - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .pool - thumb_func_end EmitIntroTrainerBallThrow - - thumb_func_start EmitDrawPartyStatusSummary -EmitDrawPartyStatusSummary: @ 803438C - push {r4,r5,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r2, 24 - lsrs r2, 24 - ldr r1, =gUnknown_02022D10 - movs r3, 0x30 - strb r3, [r1] - movs r0, 0x7F - ands r0, r2 - strb r0, [r1, 0x1] - movs r0, 0x80 - ands r0, r2 - lsls r0, 24 - lsrs r0, 31 - strb r0, [r1, 0x2] - strb r3, [r1, 0x3] - movs r2, 0 - adds r3, r1, 0x4 -_080343B4: - adds r0, r4, r2 - ldrb r0, [r0] - strb r0, [r3] - adds r3, 0x1 - adds r2, 0x1 - cmp r2, 0x2F - ble _080343B4 - adds r0, r5, 0 - movs r2, 0x34 - bl dp01_prepare_buffer - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end EmitDrawPartyStatusSummary - - thumb_func_start EmitCmd49 -EmitCmd49: @ 80343D4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_02022D10 - movs r2, 0x31 - strb r2, [r1] - strb r2, [r1, 0x1] - strb r2, [r1, 0x2] - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .pool - thumb_func_end EmitCmd49 - - thumb_func_start Emit_x32 -Emit_x32: @ 80343F4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_02022D10 - movs r2, 0x32 - strb r2, [r1] - strb r2, [r1, 0x1] - strb r2, [r1, 0x2] - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .pool - thumb_func_end Emit_x32 - - thumb_func_start EmitSpriteInvisibility -EmitSpriteInvisibility: @ 8034414 - push {lr} - adds r3, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_02022D10 - movs r2, 0x33 - strb r2, [r1] - strb r3, [r1, 0x1] - strb r2, [r1, 0x2] - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .pool - thumb_func_end EmitSpriteInvisibility - - thumb_func_start EmitBattleAnimation -EmitBattleAnimation: @ 8034438 - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r2, 16 - lsrs r2, 16 - ldr r1, =gUnknown_02022D10 - movs r3, 0x34 - strb r3, [r1] - strb r4, [r1, 0x1] - strb r2, [r1, 0x2] - lsrs r2, 8 - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end EmitBattleAnimation - - thumb_func_start EmitLinkStandbyMsg -EmitLinkStandbyMsg: @ 8034464 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r2, 24 - lsrs r2, 24 - ldr r4, =gUnknown_02022D10 - movs r0, 0x35 - strb r0, [r4] - strb r1, [r4, 0x1] - cmp r2, 0 - beq _0803448C - adds r0, r4, 0x4 - bl sub_81850DC - strb r0, [r4, 0x2] - strb r0, [r4, 0x3] - b _08034490 - .pool -_0803448C: - strb r2, [r4, 0x2] - strb r2, [r4, 0x3] -_08034490: - ldr r1, =gUnknown_02022D10 - ldrb r2, [r1, 0x2] - adds r2, 0x4 - adds r0, r5, 0 - bl dp01_prepare_buffer - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end EmitLinkStandbyMsg - - thumb_func_start EmitResetActionMoveSelection -EmitResetActionMoveSelection: @ 80344A8 - push {lr} - adds r3, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_02022D10 - movs r2, 0x36 - strb r2, [r1] - strb r3, [r1, 0x1] - movs r2, 0x2 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .pool - thumb_func_end EmitResetActionMoveSelection - - thumb_func_start Emit_x37 -Emit_x37: @ 80344C8 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r4, =gUnknown_02022D10 - movs r0, 0x37 - strb r0, [r4] - strb r1, [r4, 0x1] - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r0, =0x00000ca9 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 28 - lsrs r0, 31 - strb r0, [r4, 0x2] - ldrb r0, [r1] - lsls r0, 28 - lsrs r0, 31 - strb r0, [r4, 0x3] - adds r0, r4, 0x6 - bl sub_81850DC - strb r0, [r4, 0x4] - strb r0, [r4, 0x5] - ldrb r2, [r4, 0x4] - adds r2, 0x6 - adds r0, r5, 0 - adds r1, r4, 0 - bl dp01_prepare_buffer - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end Emit_x37 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom6.s b/asm/rom6.s index 5a2584edd..b729369c8 100644 --- a/asm/rom6.s +++ b/asm/rom6.s @@ -11676,7 +11676,7 @@ _0813B62E: ldrh r0, [r0] strh r0, [r5] movs r0, 0x1 - bl sub_800A5EC + bl ResetBlockReceivedFlag ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] cmp r0, 0x1 @@ -11756,7 +11756,7 @@ _0813B6E4: ldrh r0, [r0] strh r0, [r1] movs r0, 0 - bl sub_800A5EC + bl ResetBlockReceivedFlag _0813B708: ldr r1, =gTasks lsls r0, r4, 2 diff --git a/asm/rom_80A5C6C.s b/asm/rom_80A5C6C.s index 0e328358b..bf273ac53 100644 --- a/asm/rom_80A5C6C.s +++ b/asm/rom_80A5C6C.s @@ -74,7 +74,7 @@ _080A5D00: lsls r0, 24 cmp r0, 0 beq _080A5D28 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r2, [r0, 0x18] ldrb r1, [r2, 0x4] @@ -180,7 +180,7 @@ _080A5DDA: lsls r0, 24 cmp r0, 0 beq _080A5E04 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r2, [r0, 0x18] ldrb r1, [r2, 0x4] @@ -531,7 +531,7 @@ sub_80A60AC: @ 80A60AC lsls r0, 24 cmp r0, 0 beq _080A60E8 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r2, [r0, 0x18] ldrb r1, [r2, 0x4] @@ -554,7 +554,7 @@ _080A60E8: ldrh r0, [r1, 0x2] cmp r0, 0 bne _080A610C - ldr r1, =gUnknown_02038438 + ldr r1, =gAnimSpeciesByBanks lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] @@ -724,9 +724,9 @@ GetAnimBankSpriteId: @ 80A6240 adds r1, r0, 0 cmp r0, 0 bne _080A6268 - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] - bl sub_80A6A90 + bl AnimBankSpriteExists lsls r0, 24 cmp r0, 0 beq _080A62B6 @@ -737,9 +737,9 @@ GetAnimBankSpriteId: @ 80A6240 _080A6268: cmp r0, 0x1 bne _080A6288 - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] - bl sub_80A6A90 + bl AnimBankSpriteExists lsls r0, 24 cmp r0, 0 beq _080A62B6 @@ -750,22 +750,22 @@ _080A6268: _080A6288: cmp r1, 0x2 bne _080A62A4 - ldr r5, =gAnimationBankAttacker + ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r4, 0x2 eors r0, r4 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 beq _080A62B6 b _080A62C0 .pool _080A62A4: - ldr r5, =gAnimationBankTarget + ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r4, 0x2 eors r0, r4 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 bne _080A62C0 @@ -1242,7 +1242,7 @@ sub_80A65EC: @ 80A65EC ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x34] - ldr r5, =gAnimationBankTarget + ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -1421,7 +1421,7 @@ move_anim_8074EE0: @ 80A674C adds r4, r0, 0 bl FreeSpriteOamMatrix adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite pop {r4} pop {r0} bx r0 @@ -1439,7 +1439,7 @@ sub_80A6760: @ 80A6760 ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x34] - ldr r5, =gAnimationBankAttacker + ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -1518,7 +1518,7 @@ sub_80A67F4: @ 80A67F4 movs r1, 0 bl SetGpuReg adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite pop {r4} pop {r0} bx r0 @@ -1537,7 +1537,7 @@ sub_80A6814: @ 80A6814 movs r1, 0 bl SetGpuReg adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r4} pop {r0} bx r0 @@ -1547,7 +1547,7 @@ sub_80A6814: @ 80A6814 sub_80A6838: @ 80A6838 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -1575,13 +1575,13 @@ sub_80A6864: @ 80A6864 lsls r1, 16 lsrs r5, r1, 16 mov r8, r5 - ldr r7, =gAnimationBankAttacker + ldr r7, =gAnimBankAttacker ldrb r0, [r7] movs r1, 0 bl sub_80A5C6C lsls r0, 24 lsrs r6, r0, 24 - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0 bl sub_80A5C6C @@ -1729,7 +1729,7 @@ sub_80A6980: @ 80A6980 lsls r1, 24 cmp r1, 0 bne _080A69A8 - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0 bl sub_80A60AC @@ -1765,7 +1765,7 @@ sub_80A69CC: @ 80A69CC lsls r1, 24 cmp r1, 0 bne _080A69F0 - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0 bl sub_80A60AC @@ -1777,7 +1777,7 @@ sub_80A69CC: @ 80A69CC b _080A6A04 .pool _080A69F0: - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A60AC @@ -1810,7 +1810,7 @@ _080A6A04: GetBankSide: @ 80A6A30 lsls r0, 24 lsrs r0, 24 - ldr r1, =gBanksBySide + ldr r1, =gBanksByIdentity adds r0, r1 ldrb r1, [r0] movs r0, 0x1 @@ -1823,7 +1823,7 @@ GetBankSide: @ 80A6A30 GetBankIdentity: @ 80A6A44 lsls r0, 24 lsrs r0, 24 - ldr r1, =gBanksBySide + ldr r1, =gBanksByIdentity adds r0, r1 ldrb r0, [r0] bx lr @@ -1840,7 +1840,7 @@ GetBankByIdentity: @ 80A6A54 ldrb r2, [r0] cmp r1, r2 bcs _080A6A7E - ldr r4, =gBanksBySide + ldr r4, =gBanksByIdentity ldrb r0, [r4] cmp r0, r3 beq _080A6A7E @@ -1862,8 +1862,8 @@ _080A6A7E: .pool thumb_func_end GetBankByIdentity - thumb_func_start sub_80A6A90 -sub_80A6A90: @ 80A6A90 + thumb_func_start AnimBankSpriteExists +AnimBankSpriteExists: @ 80A6A90 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 @@ -1872,18 +1872,18 @@ sub_80A6A90: @ 80A6A90 lsls r0, 24 cmp r0, 0 beq _080A6ABC - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] cmp r0, r4 beq _080A6B0A - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] cmp r0, r4 beq _080A6B0A b _080A6B18 .pool _080A6ABC: - ldr r0, =gBanksBySide + ldr r0, =gBanksByIdentity adds r0, r4, r0 ldrb r0, [r0] cmp r0, 0xFF @@ -1926,7 +1926,7 @@ _080A6B1A: pop {r4,r5} pop {r1} bx r1 - thumb_func_end sub_80A6A90 + thumb_func_end AnimBankSpriteExists thumb_func_start IsDoubleBattle IsDoubleBattle: @ 80A6B20 @@ -2061,9 +2061,9 @@ sub_80A6BFC: @ 80A6BFC b _080A6C60 .pool _080A6C30: - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankIdentity_permutated + bl sub_80A8364 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x1 @@ -2271,21 +2271,21 @@ _080A6DBE: movs r0, 0x3 movs r1, 0 movs r2, 0 - bl lcd_bg_operations + bl SetAnimBgAttribute movs r0, 0x3 movs r1, 0x1 movs r2, 0x1 - bl lcd_bg_operations + bl SetAnimBgAttribute b _080A6DE8 _080A6DD4: movs r0, 0x3 movs r1, 0 movs r2, 0x1 - bl lcd_bg_operations + bl SetAnimBgAttribute movs r0, 0x3 movs r1, 0x1 movs r2, 0 - bl lcd_bg_operations + bl SetAnimBgAttribute _080A6DE8: pop {r0} bx r0 @@ -2934,7 +2934,7 @@ sub_80A7270: @ 80A7270 cmp r0, 0 bne _080A72A6 adds r0, r7, 0 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 beq _080A72B4 @@ -3372,7 +3372,7 @@ _080A75F6: _080A7602: cmp r7, 0 beq _080A7614 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] adds r1, r0, 0 adds r1, 0x10 @@ -3383,7 +3383,7 @@ _080A7614: mov r0, r8 cmp r0, 0 beq _080A7628 - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] adds r1, r0, 0 adds r1, 0x10 @@ -3394,11 +3394,11 @@ _080A7628: mov r0, r9 cmp r0, 0 beq _080A764E - ldr r6, =gAnimationBankAttacker + ldr r6, =gAnimBankAttacker ldrb r0, [r6] movs r5, 0x2 eors r0, r5 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 beq _080A764E @@ -3413,11 +3413,11 @@ _080A764E: mov r0, r10 cmp r0, 0 beq _080A7674 - ldr r6, =gAnimationBankTarget + ldr r6, =gAnimBankTarget ldrb r0, [r6] movs r5, 0x2 eors r0, r5 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 beq _080A7674 @@ -3499,7 +3499,7 @@ _080A76F2: bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 beq _080A771A @@ -3517,7 +3517,7 @@ _080A771A: bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 beq _080A7746 @@ -3537,7 +3537,7 @@ _080A7746: bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 beq _080A7772 @@ -3558,7 +3558,7 @@ _080A7772: bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 beq _080A77A0 @@ -3670,7 +3670,7 @@ _080A7838: _080A7842: adds r0, r5, 0 bl sub_80A69CC - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -3682,7 +3682,7 @@ _080A7842: _080A785C: ldrh r0, [r6, 0x8] strh r0, [r5, 0x2E] - ldr r4, =gAnimationBankTarget + ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -3701,7 +3701,7 @@ _080A785C: strh r0, [r5, 0x36] ldr r0, =sub_80A6EEC str r0, [r5, 0x1C] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r5, 0 bl StoreSpriteCallbackInData6 pop {r4-r7} @@ -3716,7 +3716,7 @@ sub_80A78AC: @ 80A78AC adds r6, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -3730,7 +3730,7 @@ _080A78CC: ldr r4, =gBattleAnimArgs ldrh r0, [r4, 0x8] strh r0, [r6, 0x2E] - ldr r5, =gAnimationBankTarget + ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -3768,7 +3768,7 @@ sub_80A791C: @ 80A791C cmp r0, 0 beq _080A7930 adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _080A7930: pop {r4} pop {r0} @@ -3799,17 +3799,17 @@ _080A7954: adds r0, r5, 0 adds r1, r4, 0 bl sub_80A69CC - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker b _080A7976 .pool _080A796C: adds r0, r5, 0 adds r1, r4, 0 bl sub_80A6980 - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget _080A7976: ldrb r6, [r0] - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -3844,7 +3844,7 @@ _080A798E: strh r0, [r5, 0x36] ldr r0, =sub_80A6EEC str r0, [r5, 0x1C] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r5, 0 bl StoreSpriteCallbackInData6 pop {r4-r7} @@ -4070,7 +4070,7 @@ _080A7B60: cmp r1, r0 bne _080A7B90 adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _080A7B90: pop {r4,r5} pop {r0} @@ -4090,7 +4090,7 @@ sub_80A7B98: @ 80A7B98 cmp r3, 0xFF bne _080A7BBC adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask b _080A7BE2 .pool _080A7BBC: @@ -4210,7 +4210,7 @@ _080A7C78: b _080A7CAC _080A7CA6: adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _080A7CAC: pop {r4,r5} pop {r0} @@ -4230,7 +4230,7 @@ sub_80A7CB4: @ 80A7CB4 cmp r2, 0xFF bne _080A7CD8 adds r0, r4, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask b _080A7CEE .pool _080A7CD8: @@ -4554,7 +4554,7 @@ _080A7F42: lsls r0, 24 cmp r0, 0 beq _080A7F78 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0x18] ldrh r2, [r0] @@ -4807,7 +4807,7 @@ sub_80A8140: @ 80A8140 push {lr} lsls r0, 24 lsrs r2, r0, 24 - ldr r0, =gHappinessMoveAnim + ldr r0, =gAnimFriendship ldrb r0, [r0] movs r1, 0 cmp r0, 0x1E @@ -4823,7 +4823,7 @@ _080A815E: ldr r0, =gBattleAnimArgs strh r1, [r0, 0xE] adds r0, r2, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask pop {r0} bx r0 .pool @@ -4837,9 +4837,9 @@ sub_80A8174: @ 80A8174 lsls r0, 24 lsrs r4, r0, 24 adds r7, r4, 0 - ldr r6, =gAnimationBankTarget + ldr r6, =gAnimBankTarget ldrb r0, [r6] - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 beq _080A81B4 @@ -4863,10 +4863,10 @@ sub_80A8174: @ 80A8174 orrs r0, r2 strb r0, [r1, 0x5] _080A81B4: - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker mov r8, r0 ldrb r0, [r0] - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 beq _080A81EC @@ -4894,7 +4894,7 @@ _080A81EC: ldrb r0, [r6] movs r5, 0x2 eors r0, r5 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 beq _080A8224 @@ -4922,7 +4922,7 @@ _080A8224: mov r1, r8 ldrb r0, [r1] eors r0, r5 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 beq _080A825C @@ -4968,7 +4968,7 @@ _080A8286: lsls r0, r5, 24 lsrs r4, r0, 24 adds r0, r4, 0 - bl b_side_obj__get_some_boolean + bl IsAnimBankSpriteVisible lsls r0, 24 cmp r0, 0 beq _080A82C8 @@ -5083,8 +5083,8 @@ _080A835C: bx r1 thumb_func_end sub_80A8328 - thumb_func_start GetBankIdentity_permutated -GetBankIdentity_permutated: @ 80A8364 + thumb_func_start sub_80A8364 +sub_80A8364: @ 80A8364 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 @@ -5109,7 +5109,7 @@ _080A838C: pop {r4} pop {r1} bx r1 - thumb_func_end GetBankIdentity_permutated + thumb_func_end sub_80A8364 thumb_func_start sub_80A8394 sub_80A8394: @ 80A8394 @@ -5416,7 +5416,7 @@ sub_80A861C: @ 80A861C lsls r0, 24 cmp r0, 0 beq _080A86C4 - ldr r0, =gUnknown_02039F34 + ldr r0, =gContestResources ldr r0, [r0] ldr r2, [r0, 0x18] ldrb r1, [r2, 0x4] @@ -5941,7 +5941,7 @@ sub_80A8A6C: @ 80A8A6C push {r4,lr} adds r4, r0, 0 bl sub_80A6838 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -5998,7 +5998,7 @@ _080A8AB6: sub_80A8AEC: @ 80A8AEC push {r4,lr} adds r4, r0, 0 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -6054,7 +6054,7 @@ sub_80A8B64: @ 80A8B64 push {r4,lr} adds r4, r0, 0 bl sub_80A6838 - ldr r0, =gAnimationBankAttacker + ldr r0, =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -6081,7 +6081,7 @@ _080A8B9C: strh r0, [r4, 0x22] ldr r0, =sub_80A67D8 str r0, [r4, 0x1C] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r4, 0 bl StoreSpriteCallbackInData6 pop {r4} @@ -6106,7 +6106,7 @@ sub_80A8BC4: @ 80A8BC4 lsrs r0, 24 movs r6, 0 strh r0, [r5, 0x8] - ldr r7, =gAnimationBankAttacker + ldr r7, =gAnimBankAttacker ldrb r0, [r7] bl GetBankSide lsls r0, 24 @@ -6283,7 +6283,7 @@ _080A8D58: ldr r0, =0x00002771 bl FreeSpritePaletteByTag adds r0, r5, 0 - bl move_anim_task_del + bl DestroyAnimVisualTask _080A8D6C: pop {r4,r5} pop {r0} @@ -6389,7 +6389,7 @@ _080A8E26: sub_80A8E30: @ 80A8E30 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gAnimationBankAttacker + ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -6465,7 +6465,7 @@ _080A8EC4: cmp r0, r1 bge _080A8EDC adds r0, r4, 0 - bl move_anim_8072740 + bl DestroyAnimSprite _080A8EDC: pop {r4,r5} pop {r0} @@ -6487,7 +6487,7 @@ sub_80A8EE4: @ 80A8EE4 ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x36] - ldr r0, =gAnimationBankTarget + ldr r0, =gAnimBankTarget ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -6514,7 +6514,7 @@ _080A8F32: strh r0, [r4, 0x22] ldr r0, =sub_80A6EEC str r0, [r4, 0x1C] - ldr r1, =move_anim_8072740 + ldr r1, =DestroyAnimSprite adds r0, r4, 0 bl StoreSpriteCallbackInData6 pop {r4,r5} diff --git a/asm/secret_base.s b/asm/secret_base.s index d433f5df2..69cfff512 100644 --- a/asm/secret_base.s +++ b/asm/secret_base.s @@ -1192,7 +1192,7 @@ _080E9462: mov r3, r10 ldrb r1, [r3] lsls r1, 5 - ldr r2, =gUnknown_085A5C24 + ldr r2, =gDecorations + 0x1c adds r1, r2 ldr r1, [r1] ldrh r1, [r1] diff --git a/asm/title_screen.s b/asm/title_screen.s index 961b14210..bc9401fb6 100644 --- a/asm/title_screen.s +++ b/asm/title_screen.s @@ -1228,7 +1228,7 @@ c2_clear_save_data_screen_1: @ 80AAEF0 lsls r0, 24 cmp r0, 0 bne _080AAF02 - ldr r0, =c2_clear_save_data_screen_2 + ldr r0, =CB2_InitClearSaveDataScreen bl SetMainCallback2 _080AAF02: pop {r0} diff --git a/asm/trade.s b/asm/trade.s index 31c16195e..51b517a0b 100644 --- a/asm/trade.s +++ b/asm/trade.s @@ -125,7 +125,7 @@ sub_8077234: @ 8077234 _08077250: lsls r0, r4, 24 lsrs r0, 24 - bl sub_800A5EC + bl ResetBlockReceivedFlag _08077258: pop {r4} pop {r0} @@ -5954,7 +5954,7 @@ _0807A488: asrs r0, 16 lsls r1, 16 asrs r1, 16 - bl sub_8075060 + bl GetHPBarLevel ldr r1, [r7] adds r1, 0x5D adds r1, r6 @@ -5997,7 +5997,7 @@ _0807A4E8: asrs r0, 16 lsls r1, 16 asrs r1, 16 - bl sub_8075060 + bl GetHPBarLevel ldr r1, [r7] adds r1, 0x63 adds r1, r6 @@ -12903,7 +12903,7 @@ _0807E504: strb r6, [r0] _0807E514: movs r0, 0 - bl sub_800A5EC + bl ResetBlockReceivedFlag _0807E51A: movs r0, 0x2 ands r0, r5 @@ -12924,7 +12924,7 @@ _0807E51A: strb r1, [r0] _0807E53C: movs r0, 0x1 - bl sub_800A5EC + bl ResetBlockReceivedFlag _0807E542: pop {r4-r6} pop {r0} diff --git a/asm/trader.s b/asm/trader.s index 8c21648fc..8e0b17905 100644 --- a/asm/trader.s +++ b/asm/trader.s @@ -351,7 +351,7 @@ sub_8133CF4: @ 8133CF4 ldr r5, =gScriptResult _08133CFA: adds r0, r4, 0 - bl sub_8161AD0 + bl CountDecorationCategoryN lsls r0, 24 cmp r0, 0 beq _08133D10 @@ -395,7 +395,7 @@ sub_8133D2C: @ 8133D2C cmp r1, r0 beq _08133D72 adds r0, r1, 0 - bl sub_81618D0 + bl GetFirstEmptyDecorSlot lsls r0, 24 asrs r0, 24 movs r1, 0x1 @@ -433,15 +433,15 @@ sub_8133DA0: @ 8133DA0 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 - bl sub_81279C4 + bl IsSelectedDecorInThePC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08133DFC ldr r5, =gSpecialVar_0x8006 - ldr r0, =gUnknown_0203A172 + ldr r0, =gCurDecorationIndex ldrb r1, [r0] - ldr r0, =gUnknown_0203A14C + ldr r0, =gCurDecorInventoryItems ldr r0, [r0] adds r0, r1 ldrb r0, [r0] diff --git a/asm/walda_phrase.s b/asm/walda_phrase.s deleted file mode 100755 index be754f386..000000000 --- a/asm/walda_phrase.s +++ /dev/null @@ -1,543 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start walda_maybe -walda_maybe: @ 81D99E4 - push {r4,lr} - sub sp, 0x8 - ldr r4, =gStringVar2 - bl sub_80D2548 - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - movs r0, 0 - str r0, [sp] - ldr r0, =sub_81D9A1C - str r0, [sp, 0x4] - movs r0, 0x4 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0 - bl DoNamingScreen - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end walda_maybe - - thumb_func_start sub_81D9A1C -sub_81D9A1C: @ 81D9A1C - push {r4,r5,lr} - ldr r4, =gSpecialVar_0x8004 - ldr r5, =gStringVar2 - adds r0, r5, 0 - bl sub_81D9A98 - strh r0, [r4] - ldrh r0, [r4] - cmp r0, 0x1 - beq _081D9A68 - cmp r0, 0x1 - bgt _081D9A44 - cmp r0, 0 - beq _081D9A62 - b _081D9A68 - .pool -_081D9A44: - cmp r0, 0x2 - bne _081D9A68 - bl sub_80D2578 - cmp r0, 0 - beq _081D9A5C - ldr r0, =gText_Peekaboo - bl sub_80D255C - b _081D9A68 - .pool -_081D9A5C: - movs r0, 0x1 - strh r0, [r4] - b _081D9A68 -_081D9A62: - adds r0, r5, 0 - bl sub_80D255C -_081D9A68: - ldr r4, =gStringVar1 - bl sub_80D2548 - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldr r1, =gFieldCallback - ldr r0, =sub_80AF168 - str r0, [r1] - ldr r0, =c2_exit_to_overworld_2_switch - bl SetMainCallback2 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D9A1C - - thumb_func_start sub_81D9A98 -sub_81D9A98: @ 81D9A98 - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4] - cmp r0, 0xFF - bne _081D9AA6 - movs r0, 0x2 - b _081D9ABC -_081D9AA6: - bl sub_80D2548 - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCompare - cmp r0, 0 - beq _081D9ABA - movs r0, 0 - b _081D9ABC -_081D9ABA: - movs r0, 0x1 -_081D9ABC: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81D9A98 - - thumb_func_start sub_81D9AC4 -sub_81D9AC4: @ 81D9AC4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xA - bl ReadUnalignedWord - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, =gScriptResult - mov r8, r0 - bl sub_80D2548 - mov r7, sp - adds r7, 0xA - add r6, sp, 0xC - mov r5, sp - adds r5, 0xD - str r4, [sp] - str r0, [sp, 0x4] - add r0, sp, 0x8 - adds r1, r7, 0 - adds r2, r6, 0 - adds r3, r5, 0 - bl sub_81D9B68 - mov r1, r8 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - beq _081D9B1E - ldrb r0, [r5] - bl sub_80D24BC - ldrb r0, [r6] - bl sub_80D24F0 - add r0, sp, 0x8 - ldrh r0, [r0] - ldrh r1, [r7] - bl sub_80D2524 -_081D9B1E: - mov r1, r8 - ldrh r0, [r1] - bl sub_80D2480 - mov r1, r8 - ldrb r0, [r1] - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D9AC4 - - thumb_func_start sub_81D9B40 -sub_81D9B40: @ 81D9B40 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - movs r1, 0 - ldr r3, =gUnknown_0862AD14 -_081D9B4A: - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _081D9B5C - lsls r0, r1, 24 - lsrs r0, 24 - b _081D9B64 - .pool -_081D9B5C: - adds r1, 0x1 - cmp r1, 0x1F - bls _081D9B4A - movs r0, 0x20 -_081D9B64: - pop {r1} - bx r1 - thumb_func_end sub_81D9B40 - - thumb_func_start sub_81D9B68 -sub_81D9B68: @ 81D9B68 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x2C - mov r10, r0 - str r1, [sp, 0x20] - str r2, [sp, 0x24] - str r3, [sp, 0x28] - ldr r0, [sp, 0x4C] - ldr r5, [sp, 0x50] - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - adds r0, r5, 0 - bl StringLength - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xF - bne _081D9C7E - movs r4, 0 - add r7, sp, 0x10 -_081D9B98: - adds r0, r5, r4 - ldrb r0, [r0] - bl sub_81D9B40 - adds r1, r7, r4 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x20 - beq _081D9C7E - adds r4, 0x1 - cmp r4, 0xE - ble _081D9B98 - movs r6, 0x3 - movs r5, 0 - movs r0, 0x5 - mov r8, r0 - movs r4, 0xD -_081D9BBC: - mov r1, r8 - str r1, [sp] - add r0, sp, 0x4 - adds r1, r7, 0 - adds r2, r5, 0 - adds r3, r6, 0 - bl sub_81D9D5C - adds r6, 0x8 - adds r5, 0x5 - subs r4, 0x1 - cmp r4, 0 - bge _081D9BBC - movs r0, 0x2 - str r0, [sp] - add r0, sp, 0x4 - adds r1, r7, 0 - movs r2, 0x46 - movs r3, 0x73 - bl sub_81D9D5C - add r0, sp, 0x4 - movs r1, 0 - movs r2, 0x3 - bl sub_81D9DAC - adds r4, r0, 0 - adds r0, r7, 0 - movs r1, 0x75 - movs r2, 0x3 - bl sub_81D9DAC - cmp r4, r0 - bne _081D9C7E - add r0, sp, 0x4 - movs r1, 0x9 - movs r2, 0x15 - bl sub_81D9C90 - add r0, sp, 0x4 - ldrb r0, [r0, 0x8] - movs r2, 0xF - ands r2, r0 - add r0, sp, 0x4 - movs r1, 0x8 - bl sub_81D9C90 - add r0, sp, 0x4 - ldrb r2, [r0, 0x8] - lsrs r2, 4 - movs r1, 0x8 - bl sub_81D9CDC - add r0, sp, 0x4 - ldrb r2, [r0, 0x6] - adds r1, r0, 0 - ldrb r0, [r0] - ldrb r1, [r1, 0x2] - eors r0, r1 - add r1, sp, 0x4 - ldrb r4, [r1, 0x4] - eors r0, r4 - mov r3, r9 - lsrs r1, r3, 8 - eors r0, r1 - cmp r2, r0 - bne _081D9C7E - add r0, sp, 0x4 - ldrb r3, [r0, 0x7] - adds r2, r0, 0 - ldrb r1, [r0, 0x1] - ldrb r0, [r2, 0x3] - eors r1, r0 - adds r0, r2, 0 - ldrb r2, [r0, 0x5] - eors r1, r2 - movs r0, 0xFF - mov r5, r9 - ands r0, r5 - eors r1, r0 - cmp r3, r1 - bne _081D9C7E - add r0, sp, 0x4 - ldrh r0, [r0] - mov r1, r10 - strh r0, [r1] - mov r0, sp - adds r0, 0x6 - ldrh r0, [r0] - ldr r3, [sp, 0x20] - strh r0, [r3] - ldr r5, [sp, 0x24] - strb r4, [r5] - ldr r0, [sp, 0x28] - strb r2, [r0] - movs r0, 0x1 - b _081D9C80 -_081D9C7E: - movs r0, 0 -_081D9C80: - add sp, 0x2C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81D9B68 - - thumb_func_start sub_81D9C90 -sub_81D9C90: @ 81D9C90 - push {r4-r7,lr} - adds r7, r0, 0 - mov r12, r1 - subs r3, r2, 0x1 - cmp r2, 0 - beq _081D9CD6 -_081D9C9C: - ldrb r1, [r7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 31 - mov r2, r12 - subs r2, 0x1 - subs r5, r3, 0x1 - cmp r2, 0 - blt _081D9CCC - movs r6, 0x80 - adds r3, r2, r7 -_081D9CB4: - ldrb r1, [r3] - adds r0, r6, 0 - ands r0, r1 - lsls r0, 24 - lsls r1, 1 - orrs r4, r1 - strb r4, [r3] - lsrs r4, r0, 31 - subs r3, 0x1 - subs r2, 0x1 - cmp r2, 0 - bge _081D9CB4 -_081D9CCC: - adds r3, r5, 0 - movs r0, 0x1 - negs r0, r0 - cmp r3, r0 - bne _081D9C9C -_081D9CD6: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81D9C90 - - thumb_func_start sub_81D9CDC -sub_81D9CDC: @ 81D9CDC - push {r4-r6,lr} - adds r6, r0, 0 - adds r5, r1, 0 - lsls r2, 24 - lsrs r3, r2, 24 - lsls r0, r3, 4 - orrs r3, r0 - lsls r0, r3, 24 - lsrs r3, r0, 24 - movs r4, 0 - cmp r4, r5 - bcs _081D9D04 -_081D9CF4: - adds r2, r6, r4 - ldrb r1, [r2] - adds r0, r3, 0 - eors r0, r1 - strb r0, [r2] - adds r4, 0x1 - cmp r4, r5 - bcc _081D9CF4 -_081D9D04: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81D9CDC - - thumb_func_start sub_81D9D0C -sub_81D9D0C: @ 81D9D0C - push {lr} - lsrs r3, r1, 3 - movs r2, 0x7 - ands r2, r1 - movs r1, 0x80 - asrs r1, r2 - adds r0, r3 - ldrb r0, [r0] - ands r0, r1 - cmp r0, 0 - beq _081D9D24 - movs r0, 0x1 -_081D9D24: - pop {r1} - bx r1 - thumb_func_end sub_81D9D0C - - thumb_func_start sub_81D9D28 -sub_81D9D28: @ 81D9D28 - lsrs r3, r1, 3 - movs r2, 0x7 - ands r2, r1 - movs r1, 0x80 - asrs r1, r2 - lsls r1, 24 - lsrs r1, 24 - adds r0, r3 - ldrb r2, [r0] - orrs r1, r2 - strb r1, [r0] - bx lr - thumb_func_end sub_81D9D28 - - thumb_func_start sub_81D9D40 -sub_81D9D40: @ 81D9D40 - lsrs r3, r1, 3 - movs r2, 0x7 - ands r2, r1 - movs r1, 0x80 - asrs r1, r2 - mvns r1, r1 - lsls r1, 24 - lsrs r1, 24 - adds r0, r3 - ldrb r2, [r0] - ands r1, r2 - strb r1, [r0] - bx lr - thumb_func_end sub_81D9D40 - - thumb_func_start sub_81D9D5C -sub_81D9D5C: @ 81D9D5C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r6, r0, 0 - mov r9, r1 - adds r1, r2, 0 - mov r8, r3 - ldr r7, [sp, 0x1C] - movs r5, 0 - cmp r5, r7 - bcs _081D9DA0 - adds r4, r1, 0 -_081D9D76: - mov r0, r8 - adds r1, r0, r5 - mov r0, r9 - bl sub_81D9D0C - lsls r0, 24 - cmp r0, 0 - beq _081D9D90 - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_81D9D28 - b _081D9D98 -_081D9D90: - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_81D9D40 -_081D9D98: - adds r4, 0x1 - adds r5, 0x1 - cmp r5, r7 - bcc _081D9D76 -_081D9DA0: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81D9D5C - - thumb_func_start sub_81D9DAC -sub_81D9DAC: @ 81D9DAC - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r0 - adds r7, r1, 0 - adds r6, r2, 0 - movs r4, 0 - movs r5, 0 - cmp r4, r6 - bcs _081D9DD6 -_081D9DC0: - lsls r4, 1 - adds r1, r7, r5 - mov r0, r8 - bl sub_81D9D0C - lsls r0, 24 - lsrs r0, 24 - orrs r4, r0 - adds r5, 0x1 - cmp r5, r6 - bcc _081D9DC0 -_081D9DD6: - adds r0, r4, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81D9DAC - - .align 2, 0 @ Don't pad with nop. diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index b657ae179..e97943840 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -6,7 +6,7 @@ gUnknown_082C8D64:: @ 82C8D64 .incbin "baserom.gba", 0x2c8d64, 0x8 -gUnknown_082C8D6C:: @ 82C8D6C +gBattleAnims_Moves:: @ 82C8D6C .incbin "baserom.gba", 0x2c8d6c, 0x590 gUnknown_082C92FC:: @ 82C92FC diff --git a/data/battle_anims.s b/data/battle_anims.s index 13e1bdc2f..082a86fa1 100644 --- a/data/battle_anims.s +++ b/data/battle_anims.s @@ -294,7 +294,7 @@ gUnknown_08524B3C:: @ 8524B3C .byte 0x00, 0x87, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00 .align 2 -gUnknown_08524B44:: @ 8524B44 +gBattleAnimPicTable:: @ 8524B44 obj_tiles 0x08c02538, 0x0200, 0x2710 obj_tiles 0x08c1c6e0, 0x0300, 0x2711 obj_tiles 0x08c20784, 0x0200, 0x2712 @@ -353,9 +353,6 @@ gUnknown_08524B44:: @ 8524B44 obj_tiles 0x08c0a8bc, 0x0200, 0x2747 obj_tiles 0x08c0a3ec, 0x1000, 0x2748 obj_tiles 0x08c0a980, 0x0180, 0x2749 - - .align 2 -gUnknown_08524D14:: @ 8524D14 obj_tiles 0x08c0aa2c, 0x0c00, 0x274a obj_tiles 0x08c0aebc, 0x0100, 0x274b obj_tiles 0x08c0af38, 0x0040, 0x274c @@ -434,9 +431,6 @@ gUnknown_08524D14:: @ 8524D14 obj_tiles 0x08c14b78, 0x0100, 0x2795 obj_tiles 0x08c14c1c, 0x0200, 0x2796 obj_tiles 0x08c1a3a0, 0x0200, 0x2797 - - .align 2 -gUnknown_08524F84:: @ 8524F84 obj_tiles 0x08c1a540, 0x0020, 0x2798 obj_tiles 0x08c1a58c, 0x0a00, 0x2799 obj_tiles 0x08c1ab40, 0x0800, 0x279a @@ -534,9 +528,6 @@ gUnknown_08524F84:: @ 8524F84 obj_tiles 0x08c258b8, 0x0800, 0x27f6 obj_tiles 0x08c28394, 0x0380, 0x27f7 obj_tiles 0x08c27e34, 0x0800, 0x27f8 - - .align 2 -gUnknown_0852528C:: @ 852528C obj_tiles 0x08c28564, 0x00c0, 0x27f9 obj_tiles 0x08c28610, 0x0800, 0x27fa obj_tiles 0x08c28880, 0x0060, 0x27fb @@ -573,9 +564,6 @@ gUnknown_0852528C:: @ 852528C obj_tiles 0x08d93b9c, 0x0080, 0x281a obj_tiles 0x08c2407c, 0x0800, 0x281b obj_tiles 0x08d8ea54, 0x0020, 0x281c - - .align 2 -gUnknown_085253AC:: @ 85253AC obj_tiles 0x08d8ef2c, 0x0080, 0x281d obj_tiles 0x08dba378, 0x0400, 0x281e obj_tiles 0x08dba4b8, 0x0080, 0x281f @@ -597,6 +585,8 @@ gUnknown_085253AC:: @ 85253AC obj_tiles 0x08c0a3ec, 0x1000, 0x282f obj_tiles 0x08c1bee4, 0x0100, 0x2830 + .align 2 +gBattleAnimPaletteTable:: @ 852544C obj_pal 0x08c028cc, 0x2710 obj_pal 0x08c1c794, 0x2711 obj_pal 0x08c20868, 0x2712 @@ -655,9 +645,6 @@ gUnknown_085253AC:: @ 85253AC obj_pal 0x08c09fd8, 0x2747 obj_pal 0x08c0a894, 0x2748 obj_pal 0x08c0aa08, 0x2749 - - .align 2 -gUnknown_0852561C:: @ 852561C obj_pal 0x08c0ae94, 0x274a obj_pal 0x08c0af1c, 0x274b obj_pal 0x08c0af60, 0x274c @@ -736,9 +723,6 @@ gUnknown_0852561C:: @ 852561C obj_pal 0x08c14bf4, 0x2795 obj_pal 0x08c14bf4, 0x2796 obj_pal 0x08c1a478, 0x2797 - - .align 2 -gUnknown_0852588C:: @ 852588C obj_pal 0x08c1a564, 0x2798 obj_pal 0x08c1a478, 0x2799 obj_pal 0x08c1a478, 0x279a @@ -836,9 +820,6 @@ gUnknown_0852588C:: @ 852588C obj_pal 0x08c25890, 0x27f6 obj_pal 0x08c2836c, 0x27f7 obj_pal 0x08c2836c, 0x27f8 - - .align 2 -gUnknown_08525B94:: @ 8525B94 obj_pal 0x08c285e8, 0x27f9 obj_pal 0x08c287d0, 0x27fa obj_pal 0x08c288d0, 0x27fb @@ -875,9 +856,6 @@ gUnknown_08525B94:: @ 8525B94 obj_pal 0x08d93bdc, 0x281a obj_pal 0x08d93bf4, 0x281b obj_pal 0x08d93c0c, 0x281c - - .align 2 -gUnknown_08525CB4:: @ 8525CB4 obj_pal 0x08d8ef80, 0x281d obj_pal 0x08dba35c, 0x281e obj_pal 0x08dba4a0, 0x281f @@ -900,7 +878,7 @@ gUnknown_08525CB4:: @ 8525CB4 obj_pal 0x08c1bf5c, 0x2830 .align 2 -gUnknown_08525D54:: @ 8525D54 +gBattleAnimBackgroundTable:: @ 8525D54 .4byte 0x08c1c844, 0x08c1ce3c, 0x08c1ce5c .4byte 0x08c1c844, 0x08c1ce3c, 0x08c1ce5c .4byte 0x08d90074, 0x08d90d3c, 0x08d90d58 @@ -928,105 +906,3 @@ gUnknown_08525D54:: @ 8525D54 .4byte 0x08c25bec, 0x08d91074, 0x08c26958 .4byte 0x08c25bec, 0x08d91074, 0x08c26e54 .4byte 0x08c25bec, 0x08d91074, 0x08c27324 - - .align 2 -gUnknown_08525E98:: @ 8525E98 - .4byte ma00_load_graphics - .4byte ma01_080728D0 - .4byte ma02_instanciate_template - .4byte sub_80A3ECC - .4byte ma04_wait_countdown - .4byte sub_80A3F88 - .4byte nullsub_6 - .4byte nullsub_7 - .4byte sub_80A3FC4 - .4byte ma09_play_sound - .4byte sub_80A41D8 - .4byte ma0B_0807324C - .4byte ma0C_set_BLDCNT_to_x3F40_and_BLDALPHA_to_argument - .4byte ma0D_reset_BLDCNT_and_BLDALPHA - .4byte ma0E_call - .4byte sub_80A4D00 - .4byte ma10_080736AC - .4byte ma11_if_else - .4byte ma12_cond_if - .4byte ma13_goto - .4byte ma14_load_background - .4byte ma15_load_battle_screen_elements - .4byte ma16_wait_for_battle_screen_elements_s2 - .4byte sub_80A5124 - .4byte ma18_load_background_probably - .4byte ma19_08073BC8 - .4byte ma1A_8073C00 - .4byte ma1B_8073C2C - .4byte ma1C_8073ED0 - .4byte ma1D_08073FB4 - .4byte ma1E_set_BLDCNT - .4byte sub_80A57F8 - .4byte ma20_wait_for_something - .4byte ma21_08074164 - .4byte sub_80A4A18 - .4byte ma23_8073484 - .4byte sub_80A5944 - .4byte sub_80A4E5C - .4byte sub_80A5508 - .4byte sub_80A559C - .4byte sub_80A5984 - .4byte sub_80A59DC - .4byte sub_80A5A0C - .4byte ma2B_make_side_invisible - .4byte ma2C_make_side_visible - .4byte sub_80A5AFC - .4byte sub_80A5BAC - .4byte ma2F_stop_music - - .align 2 -gUnknown_08525F58:: @ 8525F58 - .byte 0x48, 0x50, 0x00, 0x00, 0xb0, 0x28, 0x00, 0x00 - .byte 0x30, 0x28, 0x00, 0x00, 0x70, 0x50, 0x00, 0x00 - .byte 0x20, 0x50, 0x00, 0x00, 0xc8, 0x28, 0x00, 0x00 - .byte 0x5a, 0x58, 0x00, 0x00, 0x98, 0x20, 0x00, 0x00 - - .align 2 -gCastformFrontSpriteCoords:: @ 8525F78 - .byte 0x44, 0x11, 0x00, 0x00, 0x66, 0x09, 0x00, 0x00 - .byte 0x46, 0x09, 0x00, 0x00, 0x86, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08525F88:: @ 8525F88 - .byte 0x0d, 0x0e, 0x0d, 0x0d - - .align 2 -gUnknown_08525F8C:: @ 8525F8C - .byte 0x00, 0x00, 0x00, 0x00 - - .align 2 -gUnknown_08525F90:: @ 8525F90 - spr_template 0xd755, 0xd755, gUnknown_0852497C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - spr_template 0xd756, 0xd756, gUnknown_0852497C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - - .align 2 -gUnknown_08525FC0:: @ 8525FC0 - obj_tiles gMiscBlank_Gfx, 0x0800, 0xd755 - obj_tiles gMiscBlank_Gfx, 0x0800, 0xd756 - - .align 2 -@ the mother of all baserom includes - .incbin "baserom.gba", 0x525fd0, 0x18f60 - - .align 2 -gUnknown_0853EF30:: @ 853EF30 - .byte 0xf0, 0xf0, 0x0c, 0x80, 0xf0, 0x30, 0x0d, 0x84, 0x30, 0xf0, 0x0e, 0x86, 0x30, 0x30, 0x08, 0x88 - - .align 2 -gUnknown_0853EF40:: @ 853EF40 - .4byte 0x00000004, gUnknown_0853EF30 - - .align 2 -gUnknown_0853EF48:: @ 853EF48 - spr_template 0x271a, 0x271a, gUnknown_08524A3C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - - .align 2 -gUnknown_0853EF60:: @ 853EF60 - spr_template 0x2798, 0x2798, gUnknown_08524904, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A9E44 - diff --git a/data/battle_interface.s b/data/battle_interface.s deleted file mode 100644 index 766f34752..000000000 --- a/data/battle_interface.s +++ /dev/null @@ -1,180 +0,0 @@ - .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/clear_save_data_screen.s b/data/clear_save_data_screen.s deleted file mode 100644 index 3abf9bf6d..000000000 --- a/data/clear_save_data_screen.s +++ /dev/null @@ -1,17 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gUnknown_085F06C0:: @ 85F06C0 - .4byte 0x000001f0, 0x000011e3 - - .align 2 -gUnknown_085F06C8:: @ 85F06C8 - window_template 0x00, 0x03, 0x0f, 0x1a, 0x04, 0x0f, 0x000b - window_template_terminator - - .align 2 -gUnknown_085F06D8:: @ 85F06D8 - window_template 0x00, 0x03, 0x02, 0x05, 0x04, 0x0f, 0x0073 diff --git a/data/cute_sketch.s b/data/cute_sketch.s index ebdf1e39d..8a8ee1481 100644 --- a/data/cute_sketch.s +++ b/data/cute_sketch.s @@ -5,4 +5,4 @@ .align 2, 0 gUnknown_085A1F94:: @ 85A1F94 - .incbin "baserom.gba", 0x5a1f94, 0x3c74 + .incbin "baserom.gba", 0x5a1f94, 0x2580 diff --git a/data/decoration.s b/data/decoration.s deleted file mode 100644 index de4478f8d..000000000 --- a/data/decoration.s +++ /dev/null @@ -1,86 +0,0 @@ - .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/event_scripts.s b/data/event_scripts.s index 05cd014dd..2383907ee 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -14,8 +14,7 @@ gScriptCmdTableEnd:: @ 81DBA08 gSpecialVars:: @ 81DBA0C .incbin "baserom.gba", 0x1dba0c, 0x58 -gSpecials:: @ 81DBA64 - .incbin "baserom.gba", 0x1dba64, 0x83c + .include "data/specials.inc" gStdScripts:: @ 81DC2A0 .incbin "baserom.gba", 0x1dc2a0, 0x2c diff --git a/data/graphics.s b/data/graphics.s index e1b76565a..e89177a1d 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -39,7 +39,7 @@ gBattleInterface_BallDisplayPal:: @ 8C11BBC .incbin "graphics/battle_interface/ball_display.gbapal" .align 2 -gUnknown_08C11BDC:: @ 8C11BDC +gHealthboxElementsGfxTable:: @ 8C11BDC .incbin "baserom.gba", 0xc11bdc, 0x840 .align 2 @@ -881,7 +881,10 @@ gUnknown_08DAAFEC:: @ 8DAAFEC .include "data/graphics/items/item_graphics.inc" @ 8DB7AA0 - .incbin "baserom.gba", 0xdb7aa0, 0x2a78 + .include "data/graphics/decorations/decoration_graphics.inc" + +@ 8DBA14C + .incbin "baserom.gba", 0xdba14c, 0x3cc gUnknown_08DBA518:: @ 8DBA518 .incbin "baserom.gba", 0xdba518, 0x80 @@ -910,8 +913,116 @@ gCableCarCord_Gfx:: @ 8DBC2C0 gUnknown_08DBC2E8:: @ 8DBC2E8 .incbin "baserom.gba", 0xdbc2e8, 0x72c -gUnknown_08DBCA14:: @ 8DBCA14 - .incbin "baserom.gba", 0xdbca14, 0x3d00 +gUnknown_08DBCA14:: @ 0x08DBCA14 + .incbin "baserom.gba", 0xdbca14, 0x1e04 + +gUnknown_08DBE818:: @ 0x08DBE818 + .incbin "baserom.gba", 0xdbe818, 0x20 + +gUnknown_08DBE838:: @ 0x08DBE838 + .incbin "baserom.gba", 0xdbe838, 0x20 + +gUnknown_08DBE858:: @ 0x08DBE858 + .incbin "baserom.gba", 0xdbe858, 0x20 + +gUnknown_08DBE878:: @ 0x08DBE878 + .incbin "baserom.gba", 0xdbe878, 0x20 + +gUnknown_08DBE898:: @ 0x08DBE898 + .incbin "baserom.gba", 0xdbe898, 0x20 + +gUnknown_08DBE8B8:: @ 0x08DBE8B8 + .incbin "baserom.gba", 0xdbe8b8, 0x20 + +gUnknown_08DBE8D8:: @ 0x08DBE8D8 + .incbin "baserom.gba", 0xdbe8d8, 0x20 + +gUnknown_08DBE8F8:: @ 0x08DBE8F8 + .incbin "baserom.gba", 0xdbe8f8, 0x20 + +gUnknown_08DBE918:: @ 0x08DBE918 + .incbin "baserom.gba", 0xdbe918, 0x20 + +gUnknown_08DBE938:: @ 0x08DBE938 + .incbin "baserom.gba", 0xdbe938, 0x20 + +gUnknown_08DBE958:: @ 0x08DBE958 + .incbin "baserom.gba", 0xdbe958, 0x20 + +gUnknown_08DBE978:: @ 0x08DBE978 + .incbin "baserom.gba", 0xdbe978, 0x20 + +gUnknown_08DBE998:: @ 0x08DBE998 + .incbin "baserom.gba", 0xdbe998, 0x1a0 + +gUnknown_08DBEB38:: @ 0x08DBEB38 + .incbin "baserom.gba", 0xdbeb38, 0x13c + +gUnknown_08DBEC74:: @ 0x08DBEC74 + .incbin "baserom.gba", 0xdbec74, 0x210 + +gUnknown_08DBEE84:: @ 0x08DBEE84 + .incbin "baserom.gba", 0xdbee84, 0xd8 + +gUnknown_08DBEF5C:: @ 0x08DBEF5C + .incbin "baserom.gba", 0xdbef5c, 0x1f8 + +gUnknown_08DBF154:: @ 0x08DBF154 + .incbin "baserom.gba", 0xdbf154, 0x180 + +gUnknown_08DBF2D4:: @ 0x08DBF2D4 + .incbin "baserom.gba", 0xdbf2d4, 0xa8 + +gUnknown_08DBF37C:: @ 0x08DBF37C + .incbin "baserom.gba", 0xdbf37c, 0x190 + +gUnknown_08DBF50C:: @ 0x08DBF50C + .incbin "baserom.gba", 0xdbf50c, 0x140 + +gUnknown_08DBF64C:: @ 0x08DBF64C + .incbin "baserom.gba", 0xdbf64c, 0x168 + +gUnknown_08DBF7B4:: @ 0x08DBF7B4 + .incbin "baserom.gba", 0xdbf7b4, 0x150 + +gUnknown_08DBF904:: @ 0x08DBF904 + .incbin "baserom.gba", 0xdbf904, 0x2a0 + +gUnknown_08DBFBA4:: @ 0x08DBFBA4 + .incbin "baserom.gba", 0xdbfba4, 0xd8 + +gUnknown_08DBFC7C:: @ 0x08DBFC7C + .incbin "baserom.gba", 0xdbfc7c, 0xe0 + +gUnknown_08DBFD5C:: @ 0x08DBFD5C + .incbin "baserom.gba", 0xdbfd5c, 0x10c + +gUnknown_08DBFE68:: @ 0x08DBFE68 + .incbin "baserom.gba", 0xdbfe68, 0xdc + +gUnknown_08DBFF44:: @ 0x08DBFF44 + .incbin "baserom.gba", 0xdbff44, 0xf0 + +gUnknown_08DC0034:: @ 0x08DC0034 + .incbin "baserom.gba", 0xdc0034, 0xe0 + +gUnknown_08DC0114:: @ 0x08DC0114 + .incbin "baserom.gba", 0xdc0114, 0xe0 + +gUnknown_08DC01F4:: @ 0x08DC01F4 + .incbin "baserom.gba", 0xdc01f4, 0x10c + +gUnknown_08DC0300:: @ 0x08DC0300 + .incbin "baserom.gba", 0xdc0300, 0xf0 + +gUnknown_08DC03F0:: @ 0x08DC03F0 + .incbin "baserom.gba", 0xdc03f0, 0xf8 + +gUnknown_08DC04E8:: @ 0x08DC04E8 + .incbin "baserom.gba", 0xdc04e8, 0x118 + +gUnknown_08DC0600:: @ 0x08DC0600 + .incbin "baserom.gba", 0xdc0600, 0x114 gUnknown_08DC0714:: @ 8DC0714 .incbin "baserom.gba", 0xdc0714, 0x40 diff --git a/data/graphics/decorations/decoration_graphics.inc b/data/graphics/decorations/decoration_graphics.inc new file mode 100644 index 000000000..c7ea9be70 --- /dev/null +++ b/data/graphics/decorations/decoration_graphics.inc @@ -0,0 +1,252 @@ +gUnknown_08DB7AA0:: + .incbin "graphics/decorations/decor_heavy_desk.4bpp.lz" + +gUnknown_08DB7B34:: + .incbin "graphics/decorations/decor_heavy_desk.gbapal.lz" + +gUnknown_08DB7B5C:: + .incbin "graphics/decorations/decor_ragged_desk.4bpp.lz" + +gUnknown_08DB7BEC:: + .incbin "graphics/decorations/decor_ragged_desk.gbapal.lz" + +gUnknown_08DB7C08:: + .incbin "graphics/decorations/decor_comfort_desk.4bpp.lz" + +gUnknown_08DB7CE8:: + .incbin "graphics/decorations/decor_comfort_desk.gbapal.lz" + +gUnknown_08DB7D08:: + .incbin "graphics/decorations/decor_pretty_desk.4bpp.lz" + +gUnknown_08DB7DCC:: + .incbin "graphics/decorations/decor_pretty_desk.gbapal.lz" + +gUnknown_08DB7DF4:: + .incbin "graphics/decorations/decor_brick_desk.4bpp.lz" + +gUnknown_08DB7EA0:: + .incbin "graphics/decorations/decor_brick_desk.gbapal.lz" + +gUnknown_08DB7EC4:: + .incbin "graphics/decorations/decor_camp_desk.4bpp.lz" + +gUnknown_08DB7F60:: + .incbin "graphics/decorations/decor_camp_desk.gbapal.lz" + +gUnknown_08DB7F7C:: + .incbin "graphics/decorations/decor_hard_desk.4bpp.lz" + +gUnknown_08DB8070:: + .incbin "graphics/decorations/decor_hard_desk.gbapal.lz" + +gUnknown_08DB808C:: + .incbin "graphics/decorations/decor_red_plant.4bpp.lz" + +gUnknown_08DB8138:: + .incbin "graphics/decorations/decor_red_plant.gbapal.lz" + +gUnknown_08DB8160:: + .incbin "graphics/decorations/decor_tropical_plant.4bpp.lz" + +gUnknown_08DB8218:: + .incbin "graphics/decorations/decor_tropical_plant.gbapal.lz" + +gUnknown_08DB823C:: + .incbin "graphics/decorations/decor_pretty_flowers.4bpp.lz" + +gUnknown_08DB8300:: + .incbin "graphics/decorations/decor_pretty_flowers.gbapal.lz" + +gUnknown_08DB8328:: + .incbin "graphics/decorations/decor_colorful_plant.4bpp.lz" + +gUnknown_08DB8430:: + .incbin "graphics/decorations/decor_colorful_plant.gbapal.lz" + +gUnknown_08DB8458:: + .incbin "graphics/decorations/decor_big_plant.4bpp.lz" + +gUnknown_08DB8528:: + .incbin "graphics/decorations/decor_big_plant.gbapal.lz" + +gUnknown_08DB854C:: + .incbin "graphics/decorations/decor_gorgeous_plant.4bpp.lz" + +gUnknown_08DB862C:: + .incbin "graphics/decorations/decor_gorgeous_plant.gbapal.lz" + +gUnknown_08DB8654:: + .incbin "graphics/decorations/decor_red_brick.4bpp.lz" + +gUnknown_08DB86C4:: + .incbin "graphics/decorations/decor_red_brick.gbapal.lz" + +gUnknown_08DB86E0:: + .incbin "graphics/decorations/decor_yellow_brick.4bpp.lz" + +gUnknown_08DB8750:: + .incbin "graphics/decorations/decor_yellow_brick.gbapal.lz" + +gUnknown_08DB876C:: + .incbin "graphics/decorations/decor_blue_brick.4bpp.lz" + +gUnknown_08DB87DC:: + .incbin "graphics/decorations/decor_blue_brick.gbapal.lz" + +gUnknown_08DB87F8:: + .incbin "graphics/decorations/decor_red_tent.4bpp.lz" + +gUnknown_08DB88D8:: + .incbin "graphics/decorations/decor_red_tent.gbapal.lz" + +gUnknown_08DB8900:: + .incbin "graphics/decorations/decor_blue_tent.4bpp.lz" + +gUnknown_08DB89E0:: + .incbin "graphics/decorations/decor_blue_tent.gbapal.lz" + +gUnknown_08DB8A08:: + .incbin "graphics/decorations/decor_solid_board.4bpp.lz" + +gUnknown_08DB8A68:: + .incbin "graphics/decorations/decor_solid_board.gbapal.lz" + +gUnknown_08DB8A84:: + .incbin "graphics/decorations/decor_slide.4bpp.lz" + +gUnknown_08DB8B40:: + .incbin "graphics/decorations/decor_slide.gbapal.lz" + +gUnknown_08DB8B68:: + .incbin "graphics/decorations/decor_tire.4bpp.lz" + +gUnknown_08DB8C40:: + .incbin "graphics/decorations/decor_tire.gbapal.lz" + +gUnknown_08DB8C5C:: + .incbin "graphics/decorations/decor_stand.4bpp.lz" + +gUnknown_08DB8CF4:: + .incbin "graphics/decorations/decor_stand.gbapal.lz" + +gUnknown_08DB8D18:: + .incbin "graphics/decorations/decor_breakable_door.4bpp.lz" + +gUnknown_08DB8DB0:: + .incbin "graphics/decorations/decor_breakable_door.gbapal.lz" + +gUnknown_08DB8DD4:: + .incbin "graphics/decorations/decor_sand_ornament.4bpp.lz" + +gUnknown_08DB8E80:: + .incbin "graphics/decorations/decor_sand_ornament.gbapal.lz" + +gUnknown_08DB8EA0:: + .incbin "graphics/decorations/decor_glass_ornament.4bpp.lz" + +gUnknown_08DB8F58:: + .incbin "graphics/decorations/decor_glass_ornament.gbapal.lz" + +gUnknown_08DB8F7C:: + .incbin "graphics/decorations/decor_surf_mat.4bpp.lz" + +gUnknown_08DB9038:: + .incbin "graphics/decorations/decor_surf_mat.gbapal.lz" + +gUnknown_08DB9058:: + .incbin "graphics/decorations/decor_thunder_mat.4bpp.lz" + +gUnknown_08DB9130:: + .incbin "graphics/decorations/decor_thunder_mat.gbapal.lz" + +gUnknown_08DB9154:: + .incbin "graphics/decorations/decor_fire_blast_mat.4bpp.lz" + +gUnknown_08DB9218:: + .incbin "graphics/decorations/decor_fire_blast_mat.gbapal.lz" + +gUnknown_08DB9234:: + .incbin "graphics/decorations/decor_powder_snow_mat.4bpp.lz" + +gUnknown_08DB92FC:: + .incbin "graphics/decorations/decor_powder_snow_mat.gbapal.lz" + +gUnknown_08DB931C:: + .incbin "graphics/decorations/decor_attract_mat.4bpp.lz" + +gUnknown_08DB93E8:: + .incbin "graphics/decorations/decor_attract_mat.gbapal.lz" + +gUnknown_08DB940C:: + .incbin "graphics/decorations/decor_fissure_mat.4bpp.lz" + +gUnknown_08DB94CC:: + .incbin "graphics/decorations/decor_fissure_mat.gbapal.lz" + +gUnknown_08DB94E8:: + .incbin "graphics/decorations/decor_spikes_mat.4bpp.lz" + +gUnknown_08DB95AC:: + .incbin "graphics/decorations/decor_spikes_mat.gbapal.lz" + +gUnknown_08DB95D0:: + .incbin "graphics/decorations/decor_snorlax_doll.4bpp.lz" + +gUnknown_08DB96C4:: + .incbin "graphics/decorations/decor_snorlax_doll.gbapal.lz" + +gUnknown_08DB96EC:: + .incbin "graphics/decorations/decor_rhydon_doll.4bpp.lz" + +gUnknown_08DB97F4:: + .incbin "graphics/decorations/decor_rhydon_doll.gbapal.lz" + +gUnknown_08DB981C:: + .incbin "graphics/decorations/decor_lapras_doll.4bpp.lz" + +gUnknown_08DB9908:: + .incbin "graphics/decorations/decor_lapras_doll.gbapal.lz" + +gUnknown_08DB9930:: + .incbin "graphics/decorations/decor_venusaur_doll.4bpp.lz" + +gUnknown_08DB9A54:: + .incbin "graphics/decorations/decor_venusaur_doll.gbapal.lz" + +gUnknown_08DB9A7C:: + .incbin "graphics/decorations/decor_charizard_doll.4bpp.lz" + +gUnknown_08DB9B7C:: + .incbin "graphics/decorations/decor_charizard_doll.gbapal.lz" + +gUnknown_08DB9BA4:: + .incbin "graphics/decorations/decor_blastoise_doll.4bpp.lz" + +gUnknown_08DB9CB0:: + .incbin "graphics/decorations/decor_blastoise_doll.gbapal.lz" + +gUnknown_08DB9CD8:: + .incbin "graphics/decorations/decor_wailmer_doll.4bpp.lz" + +gUnknown_08DB9DAC:: + .incbin "graphics/decorations/decor_wailmer_doll.gbapal.lz" + +gUnknown_08DB9DD4:: + .incbin "graphics/decorations/decor_regice_doll.4bpp.lz" + +gUnknown_08DB9EE4:: + .incbin "graphics/decorations/decor_regice_doll.gbapal.lz" + +gUnknown_08DB9F08:: + .incbin "graphics/decorations/decor_regirock_doll.4bpp.lz" + +gUnknown_08DB9FFC:: + .incbin "graphics/decorations/decor_regirock_doll.gbapal.lz" + +gUnknown_08DBA020:: + .incbin "graphics/decorations/decor_registeel_doll.4bpp.lz" + +gUnknown_08DBA12C:: + .incbin "graphics/decorations/decor_registeel_doll.gbapal.lz" + diff --git a/data/mail.s b/data/mail.s deleted file mode 100644 index 5dc8270bc..000000000 --- a/data/mail.s +++ /dev/null @@ -1,26 +0,0 @@ - .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/pokemon_summary_screen.s b/data/pokemon_summary_screen.s index ac28d47c5..fc1c79096 100644 --- a/data/pokemon_summary_screen.s +++ b/data/pokemon_summary_screen.s @@ -40,7 +40,10 @@ gUnknown_0861CD14:: @ 861CD14 .incbin "baserom.gba", 0x61cd14, 0x18 gUnknown_0861CD2C:: @ 861CD2C - .incbin "baserom.gba", 0x61cd2c, 0xa7 + .incbin "baserom.gba", 0x61cd2c, 0x27 + +gUnknown_0861CD53:: @ 861CD53 + .incbin "baserom.gba", 0x61cd53, 0x80 gUnknown_0861CDD3:: @ 861CDD3 .incbin "baserom.gba", 0x61cdd3, 0x81 diff --git a/data/rom_8525F58.s b/data/rom_8525F58.s new file mode 100644 index 000000000..1cee7112a --- /dev/null +++ b/data/rom_8525F58.s @@ -0,0 +1,57 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + + .align 2 + + +gUnknown_08525F58:: @ 8525F58 + .byte 0x48, 0x50, 0x00, 0x00, 0xb0, 0x28, 0x00, 0x00 + .byte 0x30, 0x28, 0x00, 0x00, 0x70, 0x50, 0x00, 0x00 + .byte 0x20, 0x50, 0x00, 0x00, 0xc8, 0x28, 0x00, 0x00 + .byte 0x5a, 0x58, 0x00, 0x00, 0x98, 0x20, 0x00, 0x00 + + .align 2 +gCastformFrontSpriteCoords:: @ 8525F78 + .byte 0x44, 0x11, 0x00, 0x00, 0x66, 0x09, 0x00, 0x00 + .byte 0x46, 0x09, 0x00, 0x00, 0x86, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_08525F88:: @ 8525F88 + .byte 0x0d, 0x0e, 0x0d, 0x0d + + .align 2 +gUnknown_08525F8C:: @ 8525F8C + .byte 0x00, 0x00, 0x00, 0x00 + + .align 2 +gUnknown_08525F90:: @ 8525F90 + spr_template 0xd755, 0xd755, gUnknown_0852497C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + spr_template 0xd756, 0xd756, gUnknown_0852497C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + + .align 2 +gUnknown_08525FC0:: @ 8525FC0 + obj_tiles gMiscBlank_Gfx, 0x0800, 0xd755 + obj_tiles gMiscBlank_Gfx, 0x0800, 0xd756 + + .align 2 +@ the mother of all baserom includes + .incbin "baserom.gba", 0x525fd0, 0x18f60 + + .align 2 +gUnknown_0853EF30:: @ 853EF30 + .byte 0xf0, 0xf0, 0x0c, 0x80, 0xf0, 0x30, 0x0d, 0x84, 0x30, 0xf0, 0x0e, 0x86, 0x30, 0x30, 0x08, 0x88 + + .align 2 +gUnknown_0853EF40:: @ 853EF40 + .4byte 0x00000004, gUnknown_0853EF30 + + .align 2 +gUnknown_0853EF48:: @ 853EF48 + spr_template 0x271a, 0x271a, gUnknown_08524A3C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + + .align 2 +gUnknown_0853EF60:: @ 853EF60 + spr_template 0x2798, 0x2798, gUnknown_08524904, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A9E44 + diff --git a/data/specials.inc b/data/specials.inc new file mode 100644 index 000000000..49f6b91a0 --- /dev/null +++ b/data/specials.inc @@ -0,0 +1,537 @@ +.macro def_special ptr +.set SPECIAL_\ptr, __special__ +.set __special__, __special__ + 1 + .4byte \ptr + .endm + +.set __special__, 0 + .align 2 +gSpecials:: @ 81DBA64 + def_special sp000_heal_pokemon + def_special sub_809D2BC + def_special sub_80AF948 + def_special sub_80AF9F8 + def_special sub_80B36EC + def_special sub_80B371C + def_special sub_80E8E18 + def_special sub_80E8BC8 + def_special sub_80E9068 + def_special sub_80E9A90 + def_special sub_80E9AC0 + def_special sub_80E9744 + def_special sub_80E9BDC + def_special sub_80E9C2C + def_special sub_80E9C74 + def_special sub_80E9C88 + def_special sub_80EA2E4 + def_special sub_80EA354 + def_special sub_80E933C + def_special sub_8127E18 + def_special sub_81297AC + def_special sub_80E8C98 + def_special sub_80E95D4 + def_special sub_8129708 + def_special sub_80E91F8 + def_special sub_80EA30C + def_special sub_80FA57C + def_special sub_80E6BE8 + def_special sub_80B2DA4 + def_special sub_80B2E4C + def_special sub_80B2E74 + def_special sub_80B2EA8 + def_special sub_80097E8 + def_special sub_80B3968 + def_special sub_80B3924 + def_special nullsub_37 + def_special sub_80B3254 + def_special sub_80B2FD8 + def_special sub_8138240 + def_special SpawnLinkPartnerFieldObject + def_special copy_player_party_to_sav1 + def_special copy_player_party_from_sav1 + def_special sub_80F9438 + def_special sp02A_crash_sound + def_special FieldObjectInteractionGetBerryTreeData + def_special FieldObjectInteractionGetBerryName + def_special FieldObjectInteractionGetBerryCountString + def_special Bag_ChooseBerry + def_special FieldObjectInteractionPlantBerryTree + def_special FieldObjectInteractionPickBerryTree + def_special FieldObjectInteractionRemoveBerryTree + def_special FieldObjectInteractionWaterBerryTree + def_special PlayerHasBerries + def_special IsEnigmaBerryValid + def_special sub_80B170C + def_special sub_80B1A14 + def_special special_trainer_unable_to_battle + def_special check_trainer_flag + def_special sub_80B45AC + def_special SetUpTrainerEncounterMusic + def_special sub_80B226C + def_special sub_80B22A0 + def_special sub_80B19EC + def_special sub_80C7578 + def_special sub_80F92F8 + def_special TurnOffTVScreen + def_special DoTVShow + def_special DoPokeNews + def_special special_0x44 + def_special special_0x45 + def_special InterviewBefore + def_special InterviewAfter + def_special sub_80EF8F8 + def_special SetContestCategoryStringVarForInterview + def_special special_0x4a + def_special TV_IsScriptShowKindAlreadyInQueue + def_special CheckForBigMovieOrEmergencyNewsOnTV + def_special GetMomOrDadStringForTVMessage + def_special ResetTVShowState + def_special sub_80F831C + def_special sub_80F84B0 + def_special sub_80F8814 + def_special sub_80F834C + def_special sub_80F8390 + def_special sub_80F8850 + def_special sub_80F82B4 + def_special sub_80F87D8 + def_special sub_80F7F30 + def_special sub_80F8970 + def_special sub_80F8AFC + def_special sub_80F82FC + def_special sub_80F7F7C + def_special sub_80F7FFC + def_special sub_80F8D24 + def_special sub_80F8C7C + def_special sub_80B3000 + def_special sub_809FF80 + def_special sub_80FAFF8 + def_special easy_chat_input_maybe + def_special sub_811EECC + def_special sub_81201DC + def_special sub_81201F4 + def_special sub_8120210 + def_special sub_8120358 + def_special sub_8120374 + def_special sub_812038C + def_special sub_8120340 + def_special sub_8120B5C + def_special sub_81203FC + def_special sub_81203C4 + def_special sub_81213B0 + def_special sub_812139C + def_special sub_8121388 + def_special sub_81213D8 + def_special sub_8121450 + def_special sub_8121424 + def_special sub_8133EC0 + def_special sub_8133CD8 + def_special sub_8133CF4 + def_special sub_8133D2C + def_special sub_8133D8C + def_special sub_8133E38 + def_special GetSeedotSizeRecordInfo + def_special CompareSeedotSize + def_special GetLotadSizeRecordInfo + def_special CompareLotadSize + def_special TV_PutNameRaterShowOnTheAirIfNicnkameChanged + def_special TV_CopyNicknameToStringVar1AndEnsureTerminated + def_special TV_CheckMonOTIDEqualsPlayerID + def_special sub_8122998 + def_special sub_81229C8 + def_special sub_811EF6C + def_special sub_8122A30 + def_special sub_80D6EDC + def_special CalculatePlayerPartyCount + def_special sub_80C7008 + def_special sub_80C70AC + def_special sub_80F88E8 + def_special sub_80F88DC + def_special sub_80F8864 + def_special sub_80F8940 + def_special ShowContestWinner + def_special sub_8138540 + def_special sub_81384F0 + def_special sub_8138AC0 + def_special DrawWholeMapView + def_special sub_8138AD0 + def_special sub_8138750 + def_special sub_81388E4 + def_special sub_8138AA4 + def_special sub_8138AF0 + def_special sub_8138B10 + def_special sub_8138B48 + def_special sub_8138BC8 + def_special sub_8138B8C + def_special sub_814FC9C + def_special sub_8085784 + def_special Special_StartWallClock + def_special Special_ViewWallClock + def_special sub_80B1138 + def_special sub_80B086C + def_special ChangePokemonNickname + def_special sub_81B94B0 + def_special sub_8136EF4 + def_special sub_807FA80 + def_special sub_8142BC8 + def_special sub_813BD60 + def_special sub_813BCA8 + def_special sub_813BDB4 + def_special sub_813BA30 + def_special sub_813BCE8 + def_special sub_813BF60 + def_special sub_813BA60 + def_special sub_813BF7C + def_special rock_smash_wild_pokemon_encounter + def_special GabbyAndTyGetBattleNum + def_special GabbyAndTyAfterInterview + def_special GabbyAndTyBeforeInterview + def_special DoTVShowInSearchOfTrainers + def_special IsTVShowInSearchOfTrainersAiring + def_special GabbyAndTyGetLastQuote + def_special GabbyAndTyGetLastBattleTrivia + def_special GabbyAndTySetScriptVarsToFieldObjectLocalIds + def_special sub_8138B80 + def_special sp0B5_daycare + def_special sp0B6_daycare + def_special sub_8070728 + def_special sp0B8_daycare + def_special sp0B9_daycare_relationship_comment + def_special sub_8070C58 + def_special daycare_send_selected_pokemon + def_special sub_8071330 + def_special sub_80712C0 + def_special sub_806FF30 + def_special sub_806FED8 + def_special sub_806FDC4 + def_special ScriptHatchMon + def_special EggHatch + def_special sub_8071614 + def_special sub_813C4BC + def_special IsEnoughForCostInVar0x8005 + def_special SubtractMoneyFromVar0x8005 + def_special sub_80F972C + def_special sp0C8_whiteout_maybe + def_special sub_80FBE90 + def_special sub_80FBED0 + def_special sub_8137F90 + def_special sub_8137FB0 + def_special EnterSafariMode + def_special ExitSafariMode + def_special GetPokeblockFeederInFront + def_special sub_8135908 + def_special sub_813793C + def_special sub_8137988 + def_special sub_8137A0C + def_special sub_8137A4C + def_special sub_8137C10 + def_special sp0D9_ComputerRelated + def_special sub_8138E20 + def_special sub_8139994 + def_special sub_8138EC0 + def_special sub_8138FAC + def_special sub_81B951C + def_special sub_81B968C + def_special sub_81B9770 + def_special sub_81B9718 + def_special sub_81B96D0 + def_special sub_8160638 + def_special sub_8137EFC + def_special sub_8137D0C + def_special sp0E3_walkrun_bitfield_interpretation + def_special sub_8137E6C + def_special sub_8137F44 + def_special sub_8138C04 + def_special sub_81A1780 + def_special sub_8161F74 + def_special sub_818E9AC + def_special sub_8195960 + def_special sub_8165360 + def_special sub_8163AC4 + def_special sub_81A5238 + def_special sub_81A5E74 + def_special sub_81A703C + def_special sub_81A8E7C + def_special StopMapMusic + def_special sub_81B99B4 + def_special sub_81B9B80 + def_special sub_81B9D08 + def_special sub_80F9490 + def_special sub_81652B4 + def_special sub_8139228 + def_special sub_80F94E8 + def_special sub_816AE58 + def_special sub_816AE98 + def_special sub_8138C94 + def_special sub_807E73C + def_special sub_807EA10 + def_special sub_807F0E4 + def_special sub_807E9D4 + def_special sub_8138BDC + def_special RetrieveLotteryNumber + def_special PickLotteryCornerTicket + def_special ShowBerryBlenderRecordWindow + def_special sub_8138FEC + def_special sub_8138FD4 + def_special sp109_CreatePCMenu + def_special sub_8137C28 + def_special sub_8137CB4 + def_special sub_8139004 + def_special sub_8139030 + def_special sub_813905C + def_special sub_8139088 + def_special sub_81390B4 + def_special sub_80FB7A4 + def_special DoSoftReset + def_special sub_8137734 + def_special sub_8139A78 + def_special nullsub_55 + def_special SpawnScriptFieldObject + def_special RemoveScriptFieldObject + def_special sub_81391D0 + def_special sub_8139200 + def_special CheckRelicanthWailord + def_special ShouldDoBrailleStrengthEffectOld + def_special sub_80B0534 + def_special sub_80B058C + def_special sub_81379F8 + def_special sub_8139238 + def_special sub_8139248 + def_special player_get_direction_lower_nybble + def_special sub_81392AC + def_special sub_81392D4 + def_special sub_81392F8 + def_special sub_8139320 + def_special sub_8139348 + def_special sub_8139370 + def_special sub_81393C8 + def_special sub_8098574 + def_special sub_809859C + def_special InitRoamer + def_special sub_81393FC + def_special sub_81390E0 + def_special sub_80AFC60 + def_special sub_813946C + def_special sub_81394D8 + def_special sub_80E980C + def_special sub_8139530 + def_special DoSealedChamberShakingEffect1 + def_special sub_8139B60 + def_special sub_80FAC78 + def_special sub_8139540 + def_special sub_809E1C8 + def_special sub_8139560 + def_special sub_80B0A18 + def_special sub_80B0934 + def_special sub_80B0A74 + def_special sub_80B16D8 + def_special DoSealedChamberShakingEffect2 + def_special sub_8139634 + def_special sub_80AC81C + def_special sp13E_warp_to_last_warp + def_special sp13F_fall_to_last_warp + def_special sub_80F8D28 + def_special sub_80F8EB8 + def_special sub_8162794 + def_special sub_80B08EC + def_special sub_8139648 + def_special sub_8139668 + def_special sub_80F8FA0 + def_special sub_81396E0 + def_special sub_81B98DC + def_special nullsub_54 + def_special sub_80E9B70 + def_special copy_bags_and_unk_data_from_save_blocks + def_special sub_80B05B4 + def_special sub_8139754 + def_special sub_813970C + def_special sub_80C08E4 + def_special sub_8139770 + def_special sub_81397C4 + def_special sub_81653CC + def_special sub_80F9370 + def_special sub_80F8FE8 + def_special sub_81AFDD0 + def_special sub_80EDCE8 + def_special sub_80EE2CC + def_special sub_80EE72C + def_special sub_80EE7C0 + def_special nullsub_55 + def_special PutFanClubSpecialOnTheAir + def_special sub_80EED10 + def_special sub_80EED34 + def_special sub_80EB1AC + def_special sub_80EBE7C + def_special sub_80EB300 + def_special sub_80EB438 + def_special sub_80EB368 + def_special sub_80EB3D0 + def_special sub_80EB290 + def_special sub_80EB2C8 + def_special sub_80EB56C + def_special sub_80EB9E0 + def_special sub_80EBB28 + def_special sub_80EB498 + def_special sub_818D9C0 + def_special sub_818DAEC + def_special sub_818DBE8 + def_special sub_818DC2C + def_special sub_818DC60 + def_special sub_818DCC8 + def_special sub_818DD14 + def_special sub_818DD54 + def_special sub_818DD78 + def_special sub_818DE44 + def_special sub_818DE5C + def_special sub_818DEA0 + def_special sub_818DEDC + def_special sub_818E038 + def_special sub_818E06C + def_special sub_818E2D8 + def_special sub_811A858 + def_special sub_818E2FC + def_special sub_818E308 + def_special sub_818E358 + def_special sub_818E37C + def_special sub_818E298 + def_special sub_818E39C + def_special sub_818E3BC + def_special sub_818E3E0 + def_special sub_818E430 + def_special sub_818E47C + def_special sub_818E490 + def_special sub_813986C + def_special sub_818E4A4 + def_special sub_818E510 + def_special sub_818E538 + def_special sub_818E274 + def_special sub_818E3EC + def_special sub_818E8E0 + def_special sub_818E8B4 + def_special sub_818E914 + def_special sub_818E92C + def_special sub_818E940 + def_special sub_818E960 + def_special sub_818E990 + def_special PutLilycoveContestLadyShowOnTheAir + def_special sub_813B880 + def_special sub_81A085C + def_special CheckIfMultipleTrainersWantBattle + def_special AddMapNamePopUpWindowTask + def_special AddMapNamePopUpWindowTask + def_special sub_81BE994 + def_special sub_81BE79C + def_special sub_81BE7F4 + def_special sub_81398C0 + def_special sub_80093CC + def_special BerryBlenderLinkBecomeLeader + def_special BerryBlenderLinkJoinGroup + def_special UnionRoomSpecial + def_special sub_801A42C + def_special sub_8016934 + def_special sp182_move_string + def_special sub_801DC20 + def_special sub_81B8958 + def_special sub_8018090 + def_special sub_813990C + def_special sub_801B27C + def_special HasAtLeastOneBerry + def_special sub_802C920 + def_special sub_802E3C4 + def_special sub_8027A5C + def_special sub_8027AAC + def_special sub_8139980 + def_special sub_81399F4 + def_special sub_8139D98 + def_special sub_80F905C + def_special sub_800B518 + def_special sub_80F90DC + def_special sub_80F910C + def_special sub_80F9160 + def_special sub_81A4AA0 + def_special sub_81A4AE8 + def_special sub_8139F20 + def_special sub_80F9134 + def_special sub_80F9154 + def_special sub_80B3028 + def_special sub_813A128 + def_special sub_813A630 + def_special sub_813A080 + def_special sub_81C6A94 + def_special sub_81C4F24 + def_special sub_81B95E0 + def_special sub_81B9620 + def_special sub_813A76C + def_special sub_813A7B8 + def_special sub_813A958 + def_special sub_813A8FC + def_special sub_813A988 + def_special sub_813A9D0 + def_special sub_813A9A4 + def_special sub_813AA04 + def_special sub_813AA18 + def_special sub_813AA44 + def_special sub_80248B0 + def_special sub_8024918 + def_special sub_80246D4 + def_special sub_802477C + def_special sub_802488C + def_special sub_813A820 + def_special sub_813A854 + def_special sub_813B7D8 + def_special sub_81C72A4 + def_special sp106_CreateStartMenu + def_special sub_80C2E40 + def_special sub_813AC7C + def_special sub_813ADB8 + def_special sub_813ADD4 + def_special sub_81B892C + def_special sub_813AEB4 + def_special sub_813AF48 + def_special sub_813AFC8 + def_special sub_813B1D0 + def_special DoScriptedWildBattle + def_special sub_81BEB54 + def_special sub_81BEB68 + def_special sub_81BEB7C + def_special ChangeBoxPokemonNickname + def_special get_unknown_box_id + def_special sub_813B21C + def_special sub_81D1C20 + def_special sub_8175280 + def_special sub_813B2E4 + def_special sub_813B374 + def_special sub_813B490 + def_special sub_80A08CC + def_special sub_813B484 + def_special sub_81AFDA0 + def_special sub_813B4E0 + def_special ShouldDoBrailleRegicePuzzle + def_special EnableNationalPokedex + def_special sub_80E2548 + def_special sub_80E2878 + def_special TurnOnTVScreen + def_special sub_81D4A90 + def_special sub_813B514 + def_special sub_813B568 + def_special sub_813B534 + def_special sp194_trainer_tower + def_special sub_813B7D8 + def_special sub_813B80C + def_special sub_81D4BEC + def_special sub_80224D0 + def_special TryBufferWaldaPhrase + def_special DoWaldaNamingScreen + def_special TryGetWallpaperWithWaldaPhrase + def_special sub_8139ED0 + def_special sub_813B968 + def_special sub_80F8B94 + def_special sub_813C904 + def_special sub_80B4808 + def_special sub_813B9A0 + def_special sub_81B9918 + def_special sub_80722E0 + def_special sub_80B45D0 + def_special sub_813C5A0 + def_special sub_8139C10 + def_special sub_80B3BC4 + diff --git a/data/strings.s b/data/strings.s index 90ccad90f..2b88c6d03 100644 --- a/data/strings.s +++ b/data/strings.s @@ -1517,52 +1517,52 @@ gUnknown_085EA79D:: @ 85EA79D gUnknown_085EA7A9:: @ 85EA7A9 .string "{STR_VAR_3}{STR_VAR_1}/{STR_VAR_2}$" -gUnknown_085EA7B1:: @ 85EA7B1 +gText_Decorate:: @ 85EA7B1 .string "DECORATE$" -gUnknown_085EA7BA:: @ 85EA7BA +gText_PutAway:: @ 85EA7BA .string "PUT AWAY$" -gUnknown_085EA7C3:: @ 85EA7C3 +gText_Toss2:: @ 85EA7C3 .string "TOSS$" gText_Color161Shadow161:: @ 85EA7C8 .string "{COLOR 161}{SHADOW 161}$" -gUnknown_085EA7CF:: @ 85EA7CF +gText_PutOutSelectedDecorItem:: @ 85EA7CF .string "Put out the selected decoration item.$" -gUnknown_085EA7F5:: @ 85EA7F5 +gText_StoreChosenDecorInPC:: @ 85EA7F5 .string "Store the chosen decoration in the PC.$" -gUnknown_085EA81C:: @ 85EA81C +gText_ThrowAwayUnwantedDecors:: @ 85EA81C .string "Throw away unwanted decorations.$" gText_NoDecorations:: @ 85EA83D .string "There are no decorations.{PAUSE_UNTIL_PRESS}$" -gUnknown_085EA859:: @ 85EA859 +gText_Desk:: @ 85EA859 .string "DESK$" -gUnknown_085EA85E:: @ 85EA85E +gText_Chair:: @ 85EA85E .string "CHAIR$" -gUnknown_085EA864:: @ 85EA864 +gText_Plant:: @ 85EA864 .string "PLANT$" -gUnknown_085EA86A:: @ 85EA86A +gText_Ornament:: @ 85EA86A .string "ORNAMENT$" -gUnknown_085EA873:: @ 85EA873 +gText_Mat:: @ 85EA873 .string "MAT$" -gUnknown_085EA877:: @ 85EA877 +gText_Poster:: @ 85EA877 .string "POSTER$" -gUnknown_085EA87E:: @ 85EA87E +gText_Doll:: @ 85EA87E .string "DOLL$" -gUnknown_085EA883:: @ 85EA883 +gText_Cushion:: @ 85EA883 .string "CUSHION$" gText_Gold:: @ 85EA88B diff --git a/data/walda_phrase.s b/data/walda_phrase.s deleted file mode 100644 index c168353b4..000000000 --- a/data/walda_phrase.s +++ /dev/null @@ -1,7 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - -gUnknown_0862AD14:: @ 862AD14 - .incbin "baserom.gba", 0x62ad14, 0x20 diff --git a/graphics/battle_interface/unknown_32C2D4.png b/graphics/battle_interface/unknown_32C2D4.png Binary files differnew file mode 100644 index 000000000..8672ac614 --- /dev/null +++ b/graphics/battle_interface/unknown_32C2D4.png diff --git a/graphics/decorations/decor_attract_mat.pal b/graphics/decorations/decor_attract_mat.pal new file mode 100644 index 000000000..6f188b725 --- /dev/null +++ b/graphics/decorations/decor_attract_mat.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 98 +49 49 49 +0 0 0 +255 230 222 +255 197 197 +246 156 156 +213 115 172 +197 189 131 +246 148 205 +123 82 74 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +246 246 246 +0 0 0 diff --git a/graphics/decorations/decor_attract_mat.png b/graphics/decorations/decor_attract_mat.png Binary files differnew file mode 100644 index 000000000..16528d9f3 --- /dev/null +++ b/graphics/decorations/decor_attract_mat.png diff --git a/graphics/decorations/decor_big_plant.pal b/graphics/decorations/decor_big_plant.pal new file mode 100644 index 000000000..6e5a869f3 --- /dev/null +++ b/graphics/decorations/decor_big_plant.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 98 +49 49 49 +0 0 0 +189 230 106 +123 172 74 +90 139 65 +57 98 41 +213 180 106 +180 139 82 +139 98 49 +82 57 32 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/decorations/decor_big_plant.png b/graphics/decorations/decor_big_plant.png Binary files differnew file mode 100644 index 000000000..e5eedd859 --- /dev/null +++ b/graphics/decorations/decor_big_plant.png diff --git a/graphics/decorations/decor_blastoise_doll.pal b/graphics/decorations/decor_blastoise_doll.pal new file mode 100644 index 000000000..a4ad56936 --- /dev/null +++ b/graphics/decorations/decor_blastoise_doll.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 98 +49 49 49 +197 222 255 +131 189 255 +90 139 213 +57 90 131 +213 156 90 +230 189 131 +156 131 90 +98 82 41 +139 90 74 +0 0 0 +0 0 0 +0 0 0 +246 246 246 +0 0 0 diff --git a/graphics/decorations/decor_blastoise_doll.png b/graphics/decorations/decor_blastoise_doll.png Binary files differnew file mode 100644 index 000000000..00c55f229 --- /dev/null +++ b/graphics/decorations/decor_blastoise_doll.png diff --git a/graphics/decorations/decor_blue_brick.pal b/graphics/decorations/decor_blue_brick.pal new file mode 100644 index 000000000..e8720d82f --- /dev/null +++ b/graphics/decorations/decor_blue_brick.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 98 +49 49 49 +156 180 246 +82 131 230 +57 98 189 +24 65 131 +106 106 106 +74 74 74 +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/decorations/decor_blue_brick.png b/graphics/decorations/decor_blue_brick.png Binary files differnew file mode 100644 index 000000000..88e058712 --- /dev/null +++ b/graphics/decorations/decor_blue_brick.png diff --git a/graphics/decorations/decor_blue_tent.pal b/graphics/decorations/decor_blue_tent.pal new file mode 100644 index 000000000..e38cb56af --- /dev/null +++ b/graphics/decorations/decor_blue_tent.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 98 +49 49 49 +148 172 255 +115 139 238 +65 90 189 +49 57 123 +0 0 0 +197 205 230 +164 164 164 +131 131 131 +90 82 74 +0 0 0 +0 0 0 +0 0 0 +246 246 246 +0 0 0 diff --git a/graphics/decorations/decor_blue_tent.png b/graphics/decorations/decor_blue_tent.png Binary files differnew file mode 100644 index 000000000..575b35241 --- /dev/null +++ b/graphics/decorations/decor_blue_tent.png diff --git a/graphics/decorations/decor_breakable_door.pal b/graphics/decorations/decor_breakable_door.pal new file mode 100644 index 000000000..85ece26dc --- /dev/null +++ b/graphics/decorations/decor_breakable_door.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 98 +49 49 49 +0 0 0 +139 189 255 +106 156 213 +213 189 115 +156 131 41 +123 98 8 +90 74 57 +189 164 74 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +246 246 246 +197 197 197 diff --git a/graphics/decorations/decor_breakable_door.png b/graphics/decorations/decor_breakable_door.png Binary files differnew file mode 100644 index 000000000..01ba82d28 --- /dev/null +++ b/graphics/decorations/decor_breakable_door.png diff --git a/graphics/decorations/decor_brick_desk.pal b/graphics/decorations/decor_brick_desk.pal new file mode 100644 index 000000000..16b581470 --- /dev/null +++ b/graphics/decorations/decor_brick_desk.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 98 +49 49 49 +0 0 0 +255 180 82 +230 139 49 +189 90 16 +0 0 0 +0 0 0 +0 0 0 +197 197 197 +148 148 156 +106 106 98 +74 74 74 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/decorations/decor_brick_desk.png b/graphics/decorations/decor_brick_desk.png Binary files differnew file mode 100644 index 000000000..829e45349 --- /dev/null +++ b/graphics/decorations/decor_brick_desk.png diff --git a/graphics/decorations/decor_camp_desk.pal b/graphics/decorations/decor_camp_desk.pal new file mode 100644 index 000000000..0ac362c8a --- /dev/null +++ b/graphics/decorations/decor_camp_desk.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 98 +49 49 49 +205 189 123 +172 156 90 +148 131 65 +123 98 32 +82 57 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 diff --git a/graphics/decorations/decor_camp_desk.png b/graphics/decorations/decor_camp_desk.png Binary files differnew file mode 100644 index 000000000..b40429229 --- /dev/null +++ b/graphics/decorations/decor_camp_desk.png diff --git a/graphics/decorations/decor_charizard_doll.pal b/graphics/decorations/decor_charizard_doll.pal new file mode 100644 index 000000000..3e3e6bb79 --- /dev/null +++ b/graphics/decorations/decor_charizard_doll.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 98 +49 49 49 +0 0 0 +238 172 98 +255 205 74 +222 156 41 +115 74 24 +164 98 24 +0 0 0 +230 82 65 +180 49 32 +0 0 0 +0 0 0 +0 0 0 +246 246 246 +255 238 197 diff --git a/graphics/decorations/decor_charizard_doll.png b/graphics/decorations/decor_charizard_doll.png Binary files differnew file mode 100644 index 000000000..ffc3dfcef --- /dev/null +++ b/graphics/decorations/decor_charizard_doll.png diff --git a/graphics/decorations/decor_colorful_plant.pal b/graphics/decorations/decor_colorful_plant.pal new file mode 100644 index 000000000..996b183d2 --- /dev/null +++ b/graphics/decorations/decor_colorful_plant.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 98 +49 49 49 +0 0 0 +205 180 115 +180 139 98 +131 90 57 +156 222 90 +139 189 139 +98 148 98 +41 90 57 +106 189 255 +255 123 172 +255 213 74 +0 0 0 +238 238 238 +0 0 0 diff --git a/graphics/decorations/decor_colorful_plant.png b/graphics/decorations/decor_colorful_plant.png Binary files differnew file mode 100644 index 000000000..cc0efecc7 --- /dev/null +++ b/graphics/decorations/decor_colorful_plant.png diff --git a/graphics/decorations/decor_comfort_desk.pal b/graphics/decorations/decor_comfort_desk.pal new file mode 100644 index 000000000..f686f4b5c --- /dev/null +++ b/graphics/decorations/decor_comfort_desk.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 98 +49 49 49 +180 222 139 +139 189 139 +90 139 90 +41 90 41 +115 164 115 +0 0 0 +164 131 65 +115 82 57 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/decorations/decor_comfort_desk.png b/graphics/decorations/decor_comfort_desk.png Binary files differnew file mode 100644 index 000000000..e7a72ff08 --- /dev/null +++ b/graphics/decorations/decor_comfort_desk.png diff --git a/graphics/decorations/decor_fire_blast_mat.pal b/graphics/decorations/decor_fire_blast_mat.pal new file mode 100644 index 000000000..ea2301df2 --- /dev/null +++ b/graphics/decorations/decor_fire_blast_mat.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 98 +49 49 49 +0 0 0 +255 180 82 +238 148 41 +213 98 24 +139 65 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 diff --git a/graphics/decorations/decor_fire_blast_mat.png b/graphics/decorations/decor_fire_blast_mat.png Binary files differnew file mode 100644 index 000000000..510675ee6 --- /dev/null +++ b/graphics/decorations/decor_fire_blast_mat.png diff --git a/graphics/decorations/decor_fissure_mat.pal b/graphics/decorations/decor_fissure_mat.pal new file mode 100644 index 000000000..d2a4efb6d --- /dev/null +++ b/graphics/decorations/decor_fissure_mat.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 98 +49 49 49 +205 189 131 +189 172 106 +156 139 74 +123 106 41 +98 74 32 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/decorations/decor_fissure_mat.png b/graphics/decorations/decor_fissure_mat.png Binary files differnew file mode 100644 index 000000000..6de66ef9d --- /dev/null +++ b/graphics/decorations/decor_fissure_mat.png diff --git a/graphics/decorations/decor_glass_ornament.pal b/graphics/decorations/decor_glass_ornament.pal new file mode 100644 index 000000000..1027a9501 --- /dev/null +++ b/graphics/decorations/decor_glass_ornament.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 98 +49 49 49 +0 0 0 +0 0 0 +189 230 255 +156 197 255 +115 164 238 +82 139 189 +57 98 131 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +238 246 246 +0 0 0 diff --git a/graphics/decorations/decor_glass_ornament.png b/graphics/decorations/decor_glass_ornament.png Binary files differnew file mode 100644 index 000000000..fcc895eb9 --- /dev/null +++ b/graphics/decorations/decor_glass_ornament.png diff --git a/graphics/decorations/decor_gorgeous_plant.pal b/graphics/decorations/decor_gorgeous_plant.pal new file mode 100644 index 000000000..782b82eef --- /dev/null +++ b/graphics/decorations/decor_gorgeous_plant.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 98 +49 49 49 +180 222 139 +139 180 139 +90 139 106 +49 82 41 +0 0 0 +148 115 82 +115 82 24 +0 0 0 +230 230 230 +164 164 164 +106 106 106 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/decorations/decor_gorgeous_plant.png b/graphics/decorations/decor_gorgeous_plant.png Binary files differnew file mode 100644 index 000000000..dc8639c65 --- /dev/null +++ b/graphics/decorations/decor_gorgeous_plant.png diff --git a/graphics/decorations/decor_hard_desk.pal b/graphics/decorations/decor_hard_desk.pal new file mode 100644 index 000000000..7aa8154ab --- /dev/null +++ b/graphics/decorations/decor_hard_desk.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 98 +49 49 49 +197 197 197 +156 156 156 +115 115 115 +98 98 98 +74 74 74 +139 139 139 +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/decorations/decor_hard_desk.png b/graphics/decorations/decor_hard_desk.png Binary files differnew file mode 100644 index 000000000..aa0c7feea --- /dev/null +++ b/graphics/decorations/decor_hard_desk.png diff --git a/graphics/decorations/decor_heavy_desk.pal b/graphics/decorations/decor_heavy_desk.pal new file mode 100644 index 000000000..c0ec71f09 --- /dev/null +++ b/graphics/decorations/decor_heavy_desk.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 98 +49 49 49 +180 180 197 +148 148 156 +90 90 90 +255 180 82 +230 139 49 +197 90 8 +90 41 8 +0 0 0 +123 123 123 +65 65 65 +106 106 115 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/decorations/decor_heavy_desk.png b/graphics/decorations/decor_heavy_desk.png Binary files differnew file mode 100644 index 000000000..141bcd831 --- /dev/null +++ b/graphics/decorations/decor_heavy_desk.png diff --git a/graphics/decorations/decor_lapras_doll.pal b/graphics/decorations/decor_lapras_doll.pal new file mode 100644 index 000000000..c7d2fe61a --- /dev/null +++ b/graphics/decorations/decor_lapras_doll.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 98 +49 49 49 +0 0 0 +189 230 255 +115 180 246 +74 139 189 +32 90 139 +0 0 0 +0 0 0 +246 197 131 +222 156 98 +197 156 123 +106 74 41 +0 0 0 +246 246 246 +0 0 0 diff --git a/graphics/decorations/decor_lapras_doll.png b/graphics/decorations/decor_lapras_doll.png Binary files differnew file mode 100644 index 000000000..517553a4a --- /dev/null +++ b/graphics/decorations/decor_lapras_doll.png diff --git a/graphics/decorations/decor_powder_snow_mat.pal b/graphics/decorations/decor_powder_snow_mat.pal new file mode 100644 index 000000000..9f365a3da --- /dev/null +++ b/graphics/decorations/decor_powder_snow_mat.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 98 +49 49 49 +238 238 246 +180 205 255 +131 164 205 +197 222 255 +213 238 255 +98 131 172 +148 180 222 +49 82 123 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/decorations/decor_powder_snow_mat.png b/graphics/decorations/decor_powder_snow_mat.png Binary files differnew file mode 100644 index 000000000..82dbbfa66 --- /dev/null +++ b/graphics/decorations/decor_powder_snow_mat.png diff --git a/graphics/decorations/decor_pretty_desk.pal b/graphics/decorations/decor_pretty_desk.pal new file mode 100644 index 000000000..7681a17cc --- /dev/null +++ b/graphics/decorations/decor_pretty_desk.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 98 +49 49 49 +0 0 0 +189 222 255 +156 197 255 +0 0 0 +131 164 246 +49 82 123 +0 0 0 +0 0 0 +0 0 0 +180 180 180 +131 131 131 +90 90 90 +246 246 246 +0 0 0 diff --git a/graphics/decorations/decor_pretty_desk.png b/graphics/decorations/decor_pretty_desk.png Binary files differnew file mode 100644 index 000000000..5be05ebcb --- /dev/null +++ b/graphics/decorations/decor_pretty_desk.png diff --git a/graphics/decorations/decor_pretty_flowers.pal b/graphics/decorations/decor_pretty_flowers.pal new file mode 100644 index 000000000..c3b0ffce9 --- /dev/null +++ b/graphics/decorations/decor_pretty_flowers.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 98 +49 49 49 +0 0 0 +0 0 0 +205 180 74 +156 139 32 +90 74 49 +123 106 41 +115 180 98 +74 123 57 +41 82 32 +255 205 180 +123 74 49 +238 156 139 +246 246 246 +222 197 197 diff --git a/graphics/decorations/decor_pretty_flowers.png b/graphics/decorations/decor_pretty_flowers.png Binary files differnew file mode 100644 index 000000000..b9fc0f5de --- /dev/null +++ b/graphics/decorations/decor_pretty_flowers.png diff --git a/graphics/decorations/decor_ragged_desk.pal b/graphics/decorations/decor_ragged_desk.pal new file mode 100644 index 000000000..bac2a7372 --- /dev/null +++ b/graphics/decorations/decor_ragged_desk.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 205 98 +49 49 49 +238 222 172 +213 197 139 +180 164 106 +148 131 74 +123 98 49 +82 65 32 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/decorations/decor_ragged_desk.png b/graphics/decorations/decor_ragged_desk.png Binary files differnew file mode 100644 index 000000000..953c1862f --- /dev/null +++ b/graphics/decorations/decor_ragged_desk.png diff --git a/graphics/decorations/decor_red_brick.pal b/graphics/decorations/decor_red_brick.pal new file mode 100644 index 000000000..f9d647dda --- /dev/null +++ b/graphics/decorations/decor_red_brick.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 98 +49 49 49 +238 123 123 +189 74 65 +148 32 32 +123 16 16 +106 106 106 +74 74 74 +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/decorations/decor_red_brick.png b/graphics/decorations/decor_red_brick.png Binary files differnew file mode 100644 index 000000000..3481044dd --- /dev/null +++ b/graphics/decorations/decor_red_brick.png diff --git a/graphics/decorations/decor_red_plant.pal b/graphics/decorations/decor_red_plant.pal new file mode 100644 index 000000000..c3021eee5 --- /dev/null +++ b/graphics/decorations/decor_red_plant.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 98 +49 49 49 +222 115 123 +189 74 82 +139 32 32 +82 32 16 +0 0 0 +115 164 106 +65 123 57 +24 82 41 +0 0 0 +205 172 98 +156 123 82 +106 82 57 +0 0 0 +0 0 0 diff --git a/graphics/decorations/decor_red_plant.png b/graphics/decorations/decor_red_plant.png Binary files differnew file mode 100644 index 000000000..c12e656f7 --- /dev/null +++ b/graphics/decorations/decor_red_plant.png diff --git a/graphics/decorations/decor_red_tent.pal b/graphics/decorations/decor_red_tent.pal new file mode 100644 index 000000000..61951623b --- /dev/null +++ b/graphics/decorations/decor_red_tent.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 98 +49 49 49 +246 123 123 +222 90 90 +180 49 49 +115 49 57 +0 0 0 +197 205 230 +164 164 164 +131 131 131 +90 82 74 +0 0 0 +0 0 0 +0 0 0 +246 246 246 +0 0 0 diff --git a/graphics/decorations/decor_red_tent.png b/graphics/decorations/decor_red_tent.png Binary files differnew file mode 100644 index 000000000..22e435691 --- /dev/null +++ b/graphics/decorations/decor_red_tent.png diff --git a/graphics/decorations/decor_regice_doll.pal b/graphics/decorations/decor_regice_doll.pal new file mode 100644 index 000000000..39404f681 --- /dev/null +++ b/graphics/decorations/decor_regice_doll.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 98 +49 49 49 +0 0 0 +238 238 255 +180 189 205 +139 148 172 +82 98 115 +115 123 139 +0 0 0 +0 0 0 +246 180 65 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/decorations/decor_regice_doll.png b/graphics/decorations/decor_regice_doll.png Binary files differnew file mode 100644 index 000000000..88a28df6d --- /dev/null +++ b/graphics/decorations/decor_regice_doll.png diff --git a/graphics/decorations/decor_regirock_doll.pal b/graphics/decorations/decor_regirock_doll.pal new file mode 100644 index 000000000..5c39edb2f --- /dev/null +++ b/graphics/decorations/decor_regirock_doll.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 98 +49 49 49 +0 0 0 +0 0 0 +180 164 98 +123 115 49 +82 74 49 +0 0 0 +205 115 82 +148 65 82 +0 0 0 +189 74 24 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/decorations/decor_regirock_doll.png b/graphics/decorations/decor_regirock_doll.png Binary files differnew file mode 100644 index 000000000..16372281c --- /dev/null +++ b/graphics/decorations/decor_regirock_doll.png diff --git a/graphics/decorations/decor_registeel_doll.pal b/graphics/decorations/decor_registeel_doll.pal new file mode 100644 index 000000000..328f35a4f --- /dev/null +++ b/graphics/decorations/decor_registeel_doll.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 98 +49 49 49 +0 0 0 +238 238 238 +197 197 197 +164 164 164 +123 123 131 +82 82 90 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +172 82 65 +0 0 0 +0 0 0 diff --git a/graphics/decorations/decor_registeel_doll.png b/graphics/decorations/decor_registeel_doll.png Binary files differnew file mode 100644 index 000000000..f06de37ab --- /dev/null +++ b/graphics/decorations/decor_registeel_doll.png diff --git a/graphics/decorations/decor_rhydon_doll.pal b/graphics/decorations/decor_rhydon_doll.pal new file mode 100644 index 000000000..432dae5a9 --- /dev/null +++ b/graphics/decorations/decor_rhydon_doll.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 98 +49 49 49 +222 222 222 +164 164 164 +189 189 189 +139 139 139 +106 106 106 +82 82 82 +230 197 115 +189 148 74 +131 98 74 +0 0 0 +0 0 0 +0 0 0 +246 246 246 +0 0 0 diff --git a/graphics/decorations/decor_rhydon_doll.png b/graphics/decorations/decor_rhydon_doll.png Binary files differnew file mode 100644 index 000000000..ac4714c35 --- /dev/null +++ b/graphics/decorations/decor_rhydon_doll.png diff --git a/graphics/decorations/decor_sand_ornament.pal b/graphics/decorations/decor_sand_ornament.pal new file mode 100644 index 000000000..e2fca6e31 --- /dev/null +++ b/graphics/decorations/decor_sand_ornament.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 98 +49 49 49 +0 0 0 +213 197 156 +189 164 90 +148 123 49 +90 74 24 +131 106 32 +172 148 74 +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/decorations/decor_sand_ornament.png b/graphics/decorations/decor_sand_ornament.png Binary files differnew file mode 100644 index 000000000..9eafc8644 --- /dev/null +++ b/graphics/decorations/decor_sand_ornament.png diff --git a/graphics/decorations/decor_slide.pal b/graphics/decorations/decor_slide.pal new file mode 100644 index 000000000..395694fa3 --- /dev/null +++ b/graphics/decorations/decor_slide.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 98 +49 49 49 +148 189 238 +106 148 205 +65 115 172 +180 222 255 +0 0 0 +0 0 0 +0 0 0 +213 213 213 +189 189 189 +156 156 156 +106 106 106 +0 0 0 +246 246 246 +0 0 0 diff --git a/graphics/decorations/decor_slide.png b/graphics/decorations/decor_slide.png Binary files differnew file mode 100644 index 000000000..8a5dbada5 --- /dev/null +++ b/graphics/decorations/decor_slide.png diff --git a/graphics/decorations/decor_snorlax_doll.pal b/graphics/decorations/decor_snorlax_doll.pal new file mode 100644 index 000000000..21026b10d --- /dev/null +++ b/graphics/decorations/decor_snorlax_doll.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 98 +49 49 49 +0 0 0 +0 0 0 +131 139 164 +82 90 115 +0 0 0 +255 238 222 +255 197 148 +222 156 90 +139 90 49 +172 106 49 +230 172 123 +0 0 0 +238 238 238 +189 189 197 diff --git a/graphics/decorations/decor_snorlax_doll.png b/graphics/decorations/decor_snorlax_doll.png Binary files differnew file mode 100644 index 000000000..6ff891c13 --- /dev/null +++ b/graphics/decorations/decor_snorlax_doll.png diff --git a/graphics/decorations/decor_solid_board.pal b/graphics/decorations/decor_solid_board.pal new file mode 100644 index 000000000..9995483b4 --- /dev/null +++ b/graphics/decorations/decor_solid_board.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 98 +49 49 49 +0 0 0 +189 164 98 +156 131 65 +123 90 41 +106 90 74 +0 0 0 +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/decorations/decor_solid_board.png b/graphics/decorations/decor_solid_board.png Binary files differnew file mode 100644 index 000000000..d0251d847 --- /dev/null +++ b/graphics/decorations/decor_solid_board.png diff --git a/graphics/decorations/decor_spikes_mat.pal b/graphics/decorations/decor_spikes_mat.pal new file mode 100644 index 000000000..ec37e1fe0 --- /dev/null +++ b/graphics/decorations/decor_spikes_mat.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 213 98 +49 49 49 +0 0 0 +148 197 148 +106 172 115 +82 148 90 +139 156 98 +222 205 139 +180 164 98 +205 189 131 +49 98 57 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/decorations/decor_spikes_mat.png b/graphics/decorations/decor_spikes_mat.png Binary files differnew file mode 100644 index 000000000..67f023a0a --- /dev/null +++ b/graphics/decorations/decor_spikes_mat.png diff --git a/graphics/decorations/decor_stand.pal b/graphics/decorations/decor_stand.pal new file mode 100644 index 000000000..a85f0b7b2 --- /dev/null +++ b/graphics/decorations/decor_stand.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 98 +49 49 49 +255 180 156 +238 115 106 +197 65 65 +0 0 0 +0 0 0 +0 0 0 +197 197 197 +172 172 172 +131 131 131 +106 106 106 +0 0 0 +0 0 0 +246 246 246 +0 0 0 diff --git a/graphics/decorations/decor_stand.png b/graphics/decorations/decor_stand.png Binary files differnew file mode 100644 index 000000000..86b1e4d1f --- /dev/null +++ b/graphics/decorations/decor_stand.png diff --git a/graphics/decorations/decor_surf_mat.pal b/graphics/decorations/decor_surf_mat.pal new file mode 100644 index 000000000..17be591b7 --- /dev/null +++ b/graphics/decorations/decor_surf_mat.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 98 +49 49 49 +0 0 0 +205 238 255 +164 205 255 +148 180 255 +115 148 222 +57 90 156 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +246 246 255 +0 0 0 diff --git a/graphics/decorations/decor_surf_mat.png b/graphics/decorations/decor_surf_mat.png Binary files differnew file mode 100644 index 000000000..d74cb97bb --- /dev/null +++ b/graphics/decorations/decor_surf_mat.png diff --git a/graphics/decorations/decor_thunder_mat.pal b/graphics/decorations/decor_thunder_mat.pal new file mode 100644 index 000000000..fbe488860 --- /dev/null +++ b/graphics/decorations/decor_thunder_mat.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 98 +49 49 49 +0 0 0 +0 0 0 +189 222 255 +172 205 238 +139 172 205 +139 156 164 +255 230 123 +90 106 115 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +238 246 255 +0 0 0 diff --git a/graphics/decorations/decor_thunder_mat.png b/graphics/decorations/decor_thunder_mat.png Binary files differnew file mode 100644 index 000000000..1c5c56e33 --- /dev/null +++ b/graphics/decorations/decor_thunder_mat.png diff --git a/graphics/decorations/decor_tire.pal b/graphics/decorations/decor_tire.pal new file mode 100644 index 000000000..18a3279fc --- /dev/null +++ b/graphics/decorations/decor_tire.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 98 +0 0 0 +238 238 238 +189 189 189 +164 164 164 +131 131 131 +98 98 98 +74 74 74 +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/decorations/decor_tire.png b/graphics/decorations/decor_tire.png Binary files differnew file mode 100644 index 000000000..e394ebbd4 --- /dev/null +++ b/graphics/decorations/decor_tire.png diff --git a/graphics/decorations/decor_tropical_plant.pal b/graphics/decorations/decor_tropical_plant.pal new file mode 100644 index 000000000..4057e7cb2 --- /dev/null +++ b/graphics/decorations/decor_tropical_plant.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 98 +49 49 49 +197 172 82 +164 139 49 +131 106 16 +82 65 16 +0 0 0 +0 0 0 +148 222 90 +106 180 49 +74 131 24 +32 90 24 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/decorations/decor_tropical_plant.png b/graphics/decorations/decor_tropical_plant.png Binary files differnew file mode 100644 index 000000000..12e43df47 --- /dev/null +++ b/graphics/decorations/decor_tropical_plant.png diff --git a/graphics/decorations/decor_venusaur_doll.pal b/graphics/decorations/decor_venusaur_doll.pal new file mode 100644 index 000000000..dcd11bea2 --- /dev/null +++ b/graphics/decorations/decor_venusaur_doll.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 98 +49 49 49 +0 0 0 +197 255 222 +123 189 57 +82 148 24 +74 115 24 +41 82 32 +238 156 139 +213 98 90 +164 74 74 +115 57 65 +230 189 65 +131 98 24 +82 32 41 +246 246 246 diff --git a/graphics/decorations/decor_venusaur_doll.png b/graphics/decorations/decor_venusaur_doll.png Binary files differnew file mode 100644 index 000000000..57fbdd93a --- /dev/null +++ b/graphics/decorations/decor_venusaur_doll.png diff --git a/graphics/decorations/decor_wailmer_doll.pal b/graphics/decorations/decor_wailmer_doll.pal new file mode 100644 index 000000000..99347748e --- /dev/null +++ b/graphics/decorations/decor_wailmer_doll.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 98 +49 49 49 +0 0 0 +0 0 0 +106 148 172 +74 115 148 +57 98 123 +57 65 106 +230 180 106 +205 148 82 +180 139 57 +115 74 41 +0 0 0 +213 213 213 +246 246 246 +164 164 164 diff --git a/graphics/decorations/decor_wailmer_doll.png b/graphics/decorations/decor_wailmer_doll.png Binary files differnew file mode 100644 index 000000000..ceedfa6fb --- /dev/null +++ b/graphics/decorations/decor_wailmer_doll.png diff --git a/graphics/decorations/decor_yellow_brick.pal b/graphics/decorations/decor_yellow_brick.pal new file mode 100644 index 000000000..cfdd874ad --- /dev/null +++ b/graphics/decorations/decor_yellow_brick.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 98 +49 49 49 +255 230 106 +222 197 49 +180 156 8 +148 123 0 +106 106 106 +74 74 74 +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/decorations/decor_yellow_brick.png b/graphics/decorations/decor_yellow_brick.png Binary files differnew file mode 100644 index 000000000..cb865760c --- /dev/null +++ b/graphics/decorations/decor_yellow_brick.png diff --git a/graphics/decorations/unk_85a6bb0.pal b/graphics/decorations/unk_85a6bb0.pal new file mode 100644 index 000000000..4239a1f5e --- /dev/null +++ b/graphics/decorations/unk_85a6bb0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +255 255 255 +98 98 98 +213 213 205 +230 230 230 +197 197 197 +0 0 0 +238 238 238 +197 197 197 +148 148 148 +255 0 0 +180 0 0 +255 197 197 +82 82 255 +49 49 180 +197 197 255 diff --git a/graphics/decorations/unk_85a7308.pal b/graphics/decorations/unk_85a7308.pal new file mode 100644 index 000000000..e7717d74e --- /dev/null +++ b/graphics/decorations/unk_85a7308.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 213 180 +255 197 148 +222 148 115 +123 65 65 +57 74 123 +41 57 98 +24 41 82 +16 32 57 +222 230 238 +255 197 90 +189 156 90 +255 98 90 +197 65 65 +255 255 255 +0 0 0 diff --git a/graphics/decorations/unk_85a7328.pal b/graphics/decorations/unk_85a7328.pal new file mode 100644 index 000000000..e106ce693 --- /dev/null +++ b/graphics/decorations/unk_85a7328.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +222 164 148 +205 131 115 +123 90 82 +98 98 115 +41 57 65 +164 106 82 +74 49 57 +205 205 222 +255 197 90 +189 156 90 +255 98 90 +197 65 65 +255 255 255 +0 0 0 diff --git a/graphics/misc/decoration_unk_85a7358.png b/graphics/misc/decoration_unk_85a7358.png Binary files differnew file mode 100644 index 000000000..2dc8ed604 --- /dev/null +++ b/graphics/misc/decoration_unk_85a7358.png diff --git a/include/battle.h b/include/battle.h index f00b7f9ab..3328c691f 100644 --- a/include/battle.h +++ b/include/battle.h @@ -27,7 +27,9 @@ #define BIT_SIDE 0x1 #define BIT_MON 0x2 +#define GET_BANK_IDENTITY(bank)((gBanksByIdentity[bank])) #define GET_BANK_SIDE(bank)((GetBankIdentity(bank) & BIT_SIDE)) +#define GET_BANK_SIDE2(bank)((GET_BANK_IDENTITY(bank) & BIT_SIDE)) #define BATTLE_TYPE_DOUBLE 0x0001 #define BATTLE_TYPE_LINK 0x0002 @@ -254,6 +256,25 @@ #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 iv; @@ -261,6 +282,9 @@ struct TrainerMonNoItemDefaultMoves u16 species; }; +u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg); +u8 GetBankSide(u8 bank); + struct TrainerMonItemDefaultMoves { u16 iv; @@ -655,7 +679,9 @@ struct BattleStruct u8 field_1A1; bool8 overworldWeatherDone; u8 atkCancellerTracker; - u8 field_1A4[240]; + u8 field_1A4[96]; + u8 field_204[104]; + u8 field_26C[40]; u8 field_294[4]; u8 field_298[8]; u8 field_2A0; @@ -826,6 +852,7 @@ void LoadBattleTextboxAndBackground(void); void LoadBattleEntryBackground(void); void ApplyPlayerChosenFrameToBattleMenu(void); bool8 LoadChosenBattleElement(u8 caseId); +void DrawMainBattleBackground(void); void task00_0800F6FC(u8 taskId); // battle_5 @@ -883,6 +910,19 @@ struct BattleSpriteInfo struct BattleAnimationInfo { u16 field; // to fill up later + u8 field_2; + u8 field_3; + u8 field_4; + u8 field_5; + u8 field_6; + u8 field_7; + u8 field_8; + u8 field_9_x1 : 1; + u8 field_9_x2 : 1; + u8 field_9_x1C : 3; + u8 field_9_x20 : 1; + u8 field_9_x40 : 1; + u8 field_9_x80 : 1; }; struct BattleHealthboxInfo @@ -890,6 +930,8 @@ struct BattleHealthboxInfo u8 flag_x1 : 1; u8 flag_x2 : 1; u8 flag_x4 : 1; + u8 flag_x8 : 1; + u8 flag_x10 : 1; u8 field_1; u8 field_2; u8 field_3; @@ -903,15 +945,30 @@ struct BattleHealthboxInfo u8 field_B; }; +struct BattleBarInfo +{ + u8 healthboxSpriteId; + s32 maxValue; + s32 currentValue; + s32 field_C; + s32 field_10; +}; + struct BattleSpriteData { struct BattleSpriteInfo *bankData; struct BattleHealthboxInfo *healthBoxesData; struct BattleAnimationInfo *animationData; + struct BattleBarInfo *battleBars; }; extern struct BattleSpriteData *gBattleSpritesDataPtr; +#define BATTLE_BUFFER_LINK_SIZE 0x1000 + +extern u8 *gLinkBattleSendBuffer; +extern u8 *gLinkBattleRecvBuffer; + // Move this somewhere else #include "sprite.h" @@ -921,6 +978,8 @@ struct MonSpritesGfx void* firstDecompressed; // ptr to the decompressed sprite of the first pokemon void* sprites[4]; struct SpriteTemplate templates[4]; + u8 field_74[0x100]; + u8 *fontPixels; }; extern struct BattleSpritesGfx* gMonSpritesGfx; diff --git a/include/battle_2.h b/include/battle_2.h index 677bf0505..ceec2aa00 100644 --- a/include/battle_2.h +++ b/include/battle_2.h @@ -17,6 +17,8 @@ void RunBattleScriptCommands_PopCallbacksStack(void); void RunBattleScriptCommands(void); u32 sub_80397C4(u32 setId, u32 tableId); void sub_8039E9C(struct Sprite *sprite); +void nullsub_20(void); +void BeginBattleIntro(void); extern const u8 gStatusConditionString_PoisonJpn[8]; extern const u8 gStatusConditionString_SleepJpn[8]; diff --git a/include/battle_anim.h b/include/battle_anim.h new file mode 100644 index 000000000..5282916c0 --- /dev/null +++ b/include/battle_anim.h @@ -0,0 +1,79 @@ +#ifndef GUARD_BATTLE_ANIM_H +#define GUARD_BATTLE_ANIM_H + +enum +{ + ANIM_BANK_ATTACKER, + ANIM_BANK_TARGET, + ANIM_BANK_ATK_PARTNER, + ANIM_BANK_DEF_PARTNER, +}; + +enum +{ + BG_ANIM_SCREEN_SIZE, + BG_ANIM_AREA_OVERFLOW_MODE, + BG_ANIM2, + BG_ANIM3, + BG_ANIM_PRIORITY, + BG_ANIM_5, + BG_ANIM_6 +}; + +struct UnknownAnimStruct2 +{ + void *unk0; + u16 *unk4; + u8 unk8; + u8 unk9; + u16 unkA; + u16 unkC; +}; + +struct BattleAnimBackground +{ + void *image; + void *palette; + void *tilemap; +}; + +#define ANIM_ARGS_COUNT 8 + +#define PAN_SIDE_PLAYER -64 +#define PAN_SIDE_OPPONENT 63 + +extern void (*gAnimScriptCallback)(void); +extern bool8 gAnimScriptActive; +extern u8 gAnimVisualTaskCount; +extern u8 gAnimSoundTaskCount; +extern struct DisableStruct *gAnimDisableStructPtr; +extern u32 gAnimMoveDmg; +extern u16 gAnimMovePower; +extern u8 gAnimFriendship; +extern u16 gWeatherMoveAnim; +extern s16 gBattleAnimArgs[ANIM_ARGS_COUNT]; +extern u8 gAnimMoveTurn; +extern u8 gAnimBankAttacker; +extern u8 gAnimBankTarget; +extern u16 gAnimSpeciesByBanks[BATTLE_BANKS_COUNT]; +extern u8 gUnknown_02038440; + +void ClearBattleAnimationVars(void); +void DoMoveAnim(u16 move); +void DoBattleAnim(const u8 *const animsTable[], u16 tableId, bool8 isMoveAnim); +void DestroyAnimSprite(struct Sprite *sprite); +void DestroyAnimVisualTask(u8 taskId); +void DestroyAnimSoundTask(u8 taskId); +bool8 IsAnimBankSpriteVisible(u8 bank); +void sub_80A438C(u8 bank, bool8 toBG_2, bool8 setSpriteInvisible); +bool8 IsContest(void); +s8 BattleAnimAdjustPanning(s8 pan); +s8 BattleAnimAdjustPanning2(s8 pan); +s16 sub_80A52EC(s16 a); +s16 CalculatePanIncrement(s16 sourcePan, s16 targetPan, s16 incrementPan); + +// battle_anim_80FE840.s +void SetAnimBgAttribute(u8 bgId, u8 attributeId, u8 value); +void sub_8118FBC(u8 arg0, u8 arg1, u8 arg2, u8 bankIdentity, u8 arg4, void *arg5, u16 *arg6, u16 arg7); + +#endif // GUARD_BATTLE_ANIM_H diff --git a/include/battle_controller_player.h b/include/battle_controller_player.h deleted file mode 100644 index 6d095efe7..000000000 --- a/include/battle_controller_player.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef GUARD_BATTLE_CONTROLLER_PLAYER_H -#define GUARD_BATTLE_CONTROLLER_PLAYER_H - -void ActionSelectionCreateCursorAt(u8 cursorPos, u8 unused); -void ActionSelectionDestroyCursorAt(u8 cursorPos); - -#endif // GUARD_BATTLE_CONTROLLER_PLAYER_H diff --git a/include/battle_controllers.h b/include/battle_controllers.h index e710deea5..4bc6b7b84 100644 --- a/include/battle_controllers.h +++ b/include/battle_controllers.h @@ -1,8 +1,6 @@ #ifndef GUARD_BATTLE_CONTROLLERS_H #define GUARD_BATTLE_CONTROLLERS_H -#include "battle_controller_player.h" - #define REQUEST_ALL_BATTLE 0x0 #define REQUEST_SPECIES_BATTLE 0x1 #define REQUEST_HELDITEM_BATTLE 0x2 @@ -48,44 +46,162 @@ struct ChooseMoveStruct u8 monType2; }; -// 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); +enum +{ + CONTROLLER_GETMONDATA, + CONTROLLER_GETRAWMONDATA, + CONTROLLER_SETMONDATA, + CONTROLLER_SETRAWMONDATA, + CONTROLLER_LOADMONSPRITE, + CONTROLLER_SWITCHINANIM, + CONTROLLER_RETURNMONTOBALL, + CONTROLLER_DRAWTRAINERPIC, + CONTROLLER_TRAINERSLIDE, + CONTROLLER_TRAINERSLIDEBACK, + CONTROLLER_FAINTANIMATION, + CONTROLLER_11, + CONTROLLER_12, + CONTROLLER_BALLTHROW, + CONTROLLER_PAUSE, + CONTROLLER_MOVEANIMATION, + CONTROLLER_PRINTSTRING, + CONTROLLER_PRINTSTRINGPLAYERONLY, + CONTROLLER_CHOOSEACTION, + CONTROLLER_19, + CONTROLLER_CHOOSEMOVE, + CONTROLLER_OPENBAG, + CONTROLLER_CHOOSEPOKEMON, + CONTROLLER_23, + CONTROLLER_HEALTHBARUPDATE, + CONTROLLER_EXPUPDATE, + CONTROLLER_STATUSICONUPDATE, + CONTROLLER_STATUSANIMATION, + CONTROLLER_STATUSXOR, + CONTROLLER_DATATRANSFER, + CONTROLLER_DMA3TRANSFER, + CONTROLLER_31, + CONTROLLER_32, + CONTROLLER_33, + CONTROLLER_34, + CONTROLLER_35, + CONTROLLER_36, + CONTROLLER_37, + CONTROLLER_38, + CONTROLLER_39, + CONTROLLER_40, + CONTROLLER_HITANIMATION, + CONTROLLER_42, + CONTROLLER_EFFECTIVENESSSOUND, + CONTROLLER_PLAYFANFAREORBGM, + CONTROLLER_FAINTINGCRY, + CONTROLLER_INTROSLIDE, + CONTROLLER_INTROTRAINERBALLTHROW, + CONTROLLER_DRAWPARTYSTATUSSUMMARY, + CONTROLLER_49, + CONTROLLER_50, + CONTROLLER_SPRITEINVISIBILITY, + CONTROLLER_BATTLEANIMATION, + CONTROLLER_LINKSTANDBYMSG, + CONTROLLER_RESETACTIONMOVESELECTION, + CONTROLLER_55, + CONTROLLER_56 +}; + +#define LAST_CONTROLLER_CMD_ID CONTROLLER_56 + 1 + +// general functions +void HandleLinkBattleSetup(void); +void SetUpBattleVarsAndBirchZigzagoon(void); +void sub_8032768(void); +void sub_8033648(void); +void PrepareBufferDataTransferLink(u8 bufferId, u16 size, u8 *data); + +// emitters void EmitGetMonData(u8 bufferId, u8 arg1, u8 arg2); +void EmitGetRawMonData(u8 bufferId, u8 monId, u8 bytes); // unused +void EmitSetMonData(u8 bufferId, u8 request, u8 c, u8 bytes, void *data); +void EmitSetRawMonData(u8 bufferId, u8 monId, u8 bytes, void *data); // unused +void EmitLoadMonSprite(u8 bufferId); void EmitSwitchInAnim(u8 bufferId, u8 partyId, bool8 dontClearSubstituteBit); -void EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, u8* arg4); -void EmitLinkStandbyMsg(u8 bufferId, u8 arg1, bool32 arg2); +void EmitReturnMonToBall(u8 bufferId, u8 arg1); +void EmitDrawTrainerPic(u8 bufferId); void EmitTrainerSlide(u8 bufferId); void EmitTrainerSlideBack(u8 bufferId); -void EmitFaintingCry(u8 bufferId); -void Emit_x37(u8 bufferId, u8 arg1); -void EmitHitAnimation(u8 bufferId); -void EmitDrawPartyStatusSummary(u8 bufferId, struct HpAndStatus* hpAndStatus, u8 arg2); -void EmitCmd49(u8 bufferId); -void EmitStatusAnimation(u8 bufferId, bool8 status2, u32 status); -void EmitCmd13(u8 bufferId); +void EmitFaintAnimation(u8 bufferId); +void EmitCmd11(u8 bufferId); // unused +void EmitCmd12(u8 bufferId); // unused +void EmitBallThrow(u8 bufferId, u8 caseId); +void EmitPause(u8 bufferId, u8 toWait, void *data); // unused +void EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, struct DisableStruct *disableStructPtr, u8 multihit); +void EmitPrintString(u8 bufferId, u16 stringId); +void EmitPrintStringPlayerOnly(u8 bufferId, u16 stringId); +void EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2); +void EmitCmd19(u8 bufferId); +void EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData); +void EmitOpenBag(u8 bufferId, u8* arg1); +void EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, u8* arg4); +void EmitCmd23(u8 bufferId); // unused +void EmitHealthBarUpdate(u8 bufferId, u16 hpValue); +void EmitExpUpdate(u8 bufferId, u8 partyId, u16 expPoints); void EmitStatusIconUpdate(u8 bufferId, u32 status1, u32 status2); +void EmitStatusAnimation(u8 bufferId, bool8 status2, u32 status); +void EmitStatusXor(u8 bufferId, u8 b); // unused +void EmitDataTransfer(u8 bufferId, u16 size, void *data); +void EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, void *data); // unused +void EmitPlayBGM(u8 bufferId, u16 songId, void *unusedDumbDataParameter); // unused +void EmitCmd32(u8 bufferId, u16 size, void *c); // unused +void EmitCmd33(u8 bufferId, u8 arg1, u16 arg2); +void EmitCmd34(u8 bufferId, u8 b, u8 *c); +void EmitCmd35(u8 bufferId, u16 b); +void EmitCmd36(u8 bufferId, u16 b); +void EmitCmd37(u8 bufferId); +void EmitCmd38(u8 bufferId, u8 b); +void EmitCmd39(u8 bufferId); +void EmitCmd40(u8 bufferId); +void EmitHitAnimation(u8 bufferId); +void EmitCmd42(u8 bufferId); +void EmitEffectivenessSound(u8 bufferId, u16 songId); +void EmitPlayFanfareOrBGM(u8 bufferId, u16 songId, bool8 playBGM); +void EmitFaintingCry(u8 bufferId); void EmitIntroSlide(u8 bufferId, u8 terrainId); -void EmitDrawTrainerPic(u8 bufferId); -void EmitLoadMonSprite(u8 bufferId); void EmitIntroTrainerBallThrow(u8 bufferId); -void EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2); -void EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct* movePpData); -void EmitOpenBag(u8 bufferId, u8* arg1); -void Emit_x32(u8 bufferId); -void EmitPrintString(u8 bufferId, u16 stringId); +void EmitDrawPartyStatusSummary(u8 bufferId, struct HpAndStatus* hpAndStatus, u8 arg2); +void EmitCmd49(u8 bufferId); +void EmitCmd50(u8 bufferId); +void EmitSpriteInvisibility(u8 bufferId, bool8 isInvisible); +void EmitBattleAnimation(u8 bufferId, u8 animationId, u16 argument); +void EmitLinkStandbyMsg(u8 bufferId, u8 arg1, bool32 arg2); void EmitResetActionMoveSelection(u8 bufferId, u8 caseId); -void EmitBallThrow(u8 bufferId, u8 caseId); -void EmitCmd_x21(u8 bufferId, u8 arg1, u16 arg2); +void EmitCmd55(u8 bufferId, u8 arg1); + +// player controller +void SetBankFuncToPlayerBufferRunCommand(void); +void nullsub_21(void); +void ActionSelectionCreateCursorAt(u8 cursorPos, u8 unused); +void ActionSelectionDestroyCursorAt(u8 cursorPos); + +// recorded player controller +void SetBankFuncToRecordedPlayerBufferRunCommand(void); + +// opponent controller +void SetBankFuncToOpponentBufferRunCommand(void); + +// player partner controller +void SetBankFuncToPlayerPartnerBufferRunCommand(void); + +// safari controller +void SetBankFuncToSafariBufferRunCommand(void); + +// wally controller +void SetBankFuncToWallyBufferRunCommand(void); + +// recorded opponent controller +void SetBankFuncToRecordedOpponentBufferRunCommand(void); + +// link opponent +void SetBankFuncToLinkOpponentBufferRunCommand(void); + +// link partner +void SetBankFuncToLinkPartnerBufferRunCommand(void); #endif // GUARD_BATTLE_CONTROLLERS_H diff --git a/include/battle_interface.h b/include/battle_interface.h index cecc7bd1f..05ea1c021 100644 --- a/include/battle_interface.h +++ b/include/battle_interface.h @@ -1,6 +1,22 @@ #ifndef GUARD_BATTLE_INTERFACE_H #define GUARD_BATTLE_INTERFACE_H +#include "battle_controllers.h" + +#define TAG_HEALTHBOX_PLAYER1_TILE 0xD6FF +#define TAG_HEALTHBOX_PLAYER2_TILE 0xD700 +#define TAG_HEALTHBOX_OPPONENT1_TILE 0xD701 +#define TAG_HEALTHBOX_OPPONENT2_TILE 0xD702 + +#define TAG_HEALTHBOX_SAFARI_TILE 0xD70B + +#define TAG_STATUS_SUMMARY_BAR_TILE 0xD70C +#define TAG_STATUS_SUMMARY_BALLS_TILE 0xD714 + +#define TAG_HEALTHBOX_PAL 0xD6FF +#define TAG_STATUS_SUMMARY_BAR_PAL 0xD710 +#define TAG_STATUS_SUMMARY_BALLS_PAL 0xD712 + enum { HEALTHBOX_ALL, @@ -10,8 +26,8 @@ enum HEALTHBOX_NICK, HEALTHBOX_HEALTH_BAR, HEALTHBOX_EXP_BAR, - HEALTHBOX_7, - HEALTHBOX_8, + HEALTHBOX_UNUSED_7, + HEALTHBOX_UNUSED_8, HEALTHBOX_STATUS_ICON, HEALTHBOX_SAFARI_ALL_TEXT, HEALTHBOX_SAFARI_BALLS_TEXT @@ -19,10 +35,20 @@ enum u8 CreateBankHealthboxSprites(u8 bank); u8 CreateSafariPlayerHealthboxSprites(void); -void SetBankHealthboxSpritePos(u8 bank); -void SetHealthboxSpriteVisible(u8 healthboxSpriteId); +void SetBattleBarStruct(u8 bank, u8 healthboxSpriteId, s32 maxVal, s32 currVal, s32 field_C); void SetHealthboxSpriteInvisible(u8 healthboxSpriteId); +void SetHealthboxSpriteVisible(u8 healthboxSpriteId); +void DestoryHealthboxSprite(u8 healthboxSpriteId); +void DummyBattleInterfaceFunc(u8 healthboxSpriteId, bool8 isDoubleBattleBankOnly); +void UpdateOamPriorityInAllHealthboxes(u8 priority); +void SetBankHealthboxSpritePos(u8 bank); +void UpdateHpTextInHealthbox(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent); +void SwapHpBarsWithHpText(void); +u8 CreatePartyStatusSummarySprites(u8 bank, struct HpAndStatus *partyInfo, u8 arg2, bool8 isBattleStart); +void sub_8073C30(u8 taskId); void UpdateHealthboxAttribute(u8 healthboxSpriteId, struct Pokemon *mon, u8 elementId); -void nullsub_30(u8 healthboxSpriteId, bool8 isDoubleBattleBankOnly); +s32 sub_8074AA0(u8 bank, u8 healthboxSpriteId, u8 whichBar, u8 arg3); +u8 GetScaledHPFraction(s16 hp, s16 maxhp, u8 scale); +u8 GetHPBarLevel(s16 hp, s16 maxhp); #endif // GUARD_BATTLE_INTERFACE_H diff --git a/include/battle_util.h b/include/battle_util.h index c1ff7d8ab..b21b250c4 100644 --- a/include/battle_util.h +++ b/include/battle_util.h @@ -33,6 +33,7 @@ #define ITEMEFFECT_ON_SWITCH_IN 0x0 #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))) +#define WEATHER_HAS_EFFECT2 ((!AbilityBattleEffects(ABILITYEFFECT_FIELD_SPORT, 0, ABILITY_CLOUD_NINE, 0, 0) && !AbilityBattleEffects(ABILITYEFFECT_FIELD_SPORT, 0, ABILITY_AIR_LOCK, 0, 0))) #define BS_GET_TARGET 0 #define BS_GET_ATTACKER 1 diff --git a/include/contest.h b/include/contest.h index 5c473bd2c..7dcde7da2 100644 --- a/include/contest.h +++ b/include/contest.h @@ -1,7 +1,8 @@ #ifndef GUARD_CONTEST_H #define GUARD_CONTEST_H -struct ContestStruct_02039E00 { +struct ContestStruct_02039E00 +{ u16 unk_00; u8 unk_02[11]; u8 unk_0d[8]; @@ -11,8 +12,30 @@ struct ContestStruct_02039E00 { extern struct ContestStruct_02039E00 gUnknown_02039E00[4]; extern u8 gUnknown_02039F24; -extern EWRAM_DATA u16 gScriptContestCategory; -extern EWRAM_DATA u8 gUnknown_02039F2E; -extern EWRAM_DATA u8 gUnknown_02039F30; +extern u16 gScriptContestCategory; +extern u8 gUnknown_02039F2E; +extern u8 gUnknown_02039F30; + +struct ContestStruct_field_18 +{ + // unknown size + u16 field_0; +}; + +struct ContestResources +{ + void *field_0; + void *field_4; + void *field_8; + void *field_C; + void *field_10; + void *field_14; + struct ContestStruct_field_18 *field_18; +}; + +extern struct ContestResources *gContestResources; + +bool8 IsSpeciesNotUnown(u16 species); +void LoadContestBgAfterMoveAnim(void); #endif //GUARD_CONTEST_H diff --git a/include/data/decoration/description.h b/include/data/decoration/description.h new file mode 100644 index 000000000..ba4c3dd54 --- /dev/null +++ b/include/data/decoration/description.h @@ -0,0 +1,581 @@ +// +// Created by scott on 10/21/2017. +// + +#ifndef GUARD_DATA_DECORATION_DESCRIPTION_H +#define GUARD_DATA_DECORATION_DESCRIPTION_H + +const u8 DecorDesc_SMALL_DESK[] = _( + "A small desk built\n" + "for one."); + +const u8 DecorDesc_POKEMON_DESK[] = _( + "A small desk built in\n" + "the shape of a POKé\n" + "BALL."); + +const u8 DecorDesc_HEAVY_DESK[] = _( + "A large desk made\n" + "of steel. Put some\n" + "decorations on it."); + +const u8 DecorDesc_RAGGED_DESK[] = _( + "A large desk made\n" + "of wood. Put some\n" + "decorations on it."); + +const u8 DecorDesc_COMFORT_DESK[] = _( + "A large desk made\n" + "of leaves. Put some\n" + "decorations on it."); + +const u8 DecorDesc_PRETTY_DESK[] = _( + "A huge desk made\n" + "of glass. Holds lots\n" + "of decorations."); + +const u8 DecorDesc_BRICK_DESK[] = _( + "A huge desk made\n" + "of brick. Holds lots\n" + "of decorations."); + +const u8 DecorDesc_CAMP_DESK[] = _( + "A huge desk made\n" + "of logs. Put lots of\n" + "decorations on it."); + +const u8 DecorDesc_HARD_DESK[] = _( + "A huge desk made\n" + "of rocks. Holds\n" + "many decorations."); + +const u8 DecorDesc_SMALL_CHAIR[] = _( + "A small chair made\n" + "for one."); + +const u8 DecorDesc_POKEMON_CHAIR[] = _( + "A small chair built\n" + "in the shape of a\n" + "POKé BALL."); + +const u8 DecorDesc_HEAVY_CHAIR[] = _( + "A small chair made\n" + "of steel."); + +const u8 DecorDesc_PRETTY_CHAIR[] = _( + "A small chair made\n" + "of glass."); + +const u8 DecorDesc_COMFORT_CHAIR[] = _( + "A small chair made\n" + "of leaves."); + +const u8 DecorDesc_RAGGED_CHAIR[] = _( + "A small chair made\n" + "of wood."); + +const u8 DecorDesc_BRICK_CHAIR[] = _( + "A small chair made\n" + "of brick."); + +const u8 DecorDesc_CAMP_CHAIR[] = _( + "A small chair made\n" + "of logs."); + +const u8 DecorDesc_HARD_CHAIR[] = _( + "A small chair made\n" + "of rock."); + +const u8 DecorDesc_RED_PLANT[] = _( + "A vivid red potted\n" + "plant."); + +const u8 DecorDesc_TROPICAL_PLANT[] = _( + "A flowering tropical\n" + "plant in a pot."); + +const u8 DecorDesc_PRETTY_FLOWERS[] = _( + "A pot of cute\n" + "flowers."); + +const u8 DecorDesc_COLORFUL_PLANT[] = _( + "A large pot with\n" + "many colorful\n" + "flowers."); + +const u8 DecorDesc_BIG_PLANT[] = _( + "A large, umbrella-\n" + "shaped plant in a\n" + "big pot."); + +const u8 DecorDesc_GORGEOUS_PLANT[] = _( + "A large, impressive\n" + "plant in a big pot."); + +const u8 DecorDesc_RED_BRICK[] = _( + "A red-colored brick.\n" + "Decorations can be\n" + "placed on top."); + +const u8 DecorDesc_YELLOW_BRICK[] = _( + "A yellow-colored\n" + "brick. Put some\n" + "decorations on top."); + +const u8 DecorDesc_BLUE_BRICK[] = _( + "A blue-colored\n" + "brick. Put some\n" + "decorations on top."); + +const u8 DecorDesc_RED_BALLOON[] = _( + "A red balloon filled\n" + "with water. Bursts\n" + "if stepped on."); + +const u8 DecorDesc_BLUE_BALLOON[] = _( + "A blue balloon filled\n" + "with water. Bursts\n" + "if stepped on."); + +const u8 DecorDesc_YELLOW_BALLOON[] = _( + "A yellow balloon\n" + "filled with water.\n" + "Pops if stepped on."); + +const u8 DecorDesc_RED_TENT[] = _( + "A large red tent.\n" + "You can hide inside\n" + "it."); + +const u8 DecorDesc_BLUE_TENT[] = _( + "A large blue tent.\n" + "You can hide inside\n" + "it."); + +const u8 DecorDesc_SOLID_BOARD[] = _( + "Place over a hole to\n" + "cross to the other\n" + "side."); + +const u8 DecorDesc_SLIDE[] = _( + "Use to slide down\n" + "from the platform."); + +const u8 DecorDesc_FENCE_LENGTH[] = _( + "A small fence that\n" + "blocks passage."); + +const u8 DecorDesc_FENCE_WIDTH[] = _( + "A small fence that\n" + "blocks passage."); + +const u8 DecorDesc_TIRE[] = _( + "An old large tire.\n" + "Decorations can be\n" + "placed on top."); + +const u8 DecorDesc_STAND[] = _( + "A large pedestal\n" + "with steps."); + +const u8 DecorDesc_MUD_BALL[] = _( + "A large ball of mud.\n" + "Crumbles if stepped\n" + "on."); + +const u8 DecorDesc_BREAKABLE_DOOR[] = _( + "A weird door that\n" + "people can walk\n" + "right through."); + +const u8 DecorDesc_SAND_ORNAMENT[] = _( + "An ornament made\n" + "of sand. Crumbles if\n" + "touched."); + +const u8 DecorDesc_SILVER_SHIELD[] = _( + "Awarded for 50\n" + "straight wins at\n" + "the BATTLE TOWER."); + +const u8 DecorDesc_GOLD_SHIELD[] = _( + "Awarded for 100\n" + "straight wins at\n" + "the BATTLE TOWER."); + +const u8 DecorDesc_GLASS_ORNAMENT[] = _( + "A glass replica of\n" + "a famous sculpture\n" + "at the ART MUSEUM."); + +const u8 DecorDesc_TV[] = _( + "A small, gray-\n" + "colored toy TV."); + +const u8 DecorDesc_ROUND_TV[] = _( + "A toy TV modeled\n" + "in the image of a\n" + "SEEDOT."); + +const u8 DecorDesc_CUTE_TV[] = _( + "A toy TV modeled\n" + "in the image of a\n" + "SKITTY."); + +const u8 DecorDesc_GLITTER_MAT[] = _( + "An odd mat that\n" + "glitters if stepped\n" + "on."); + +const u8 DecorDesc_JUMP_MAT[] = _( + "A trick mat that\n" + "jumps when it is\n" + "stepped on."); + +const u8 DecorDesc_SPIN_MAT[] = _( + "A trick mat that\n" + "spins around when\n" + "stepped on."); + +const u8 DecorDesc_C_LOW_NOTE_MAT[] = _( + "A mat that plays\n" + "a low C note when\n" + "stepped on."); + +const u8 DecorDesc_D_NOTE_MAT[] = _( + "A mat that plays\n" + "a D note when\n" + "stepped on."); + +const u8 DecorDesc_E_NOTE_MAT[] = _( + "A mat that plays\n" + "an E note when\n" + "stepped on."); + +const u8 DecorDesc_F_NOTE_MAT[] = _( + "A mat that plays\n" + "an F note when\n" + "stepped on."); + +const u8 DecorDesc_G_NOTE_MAT[] = _( + "A mat that plays\n" + "a G note when\n" + "stepped on."); + +const u8 DecorDesc_A_NOTE_MAT[] = _( + "A mat that plays\n" + "an A note when\n" + "stepped on."); + +const u8 DecorDesc_B_NOTE_MAT[] = _( + "A mat that plays\n" + "a B note when\n" + "stepped on."); + +const u8 DecorDesc_C_HIGH_NOTE_MAT[] = _( + "A mat that plays\n" + "a high C note when\n" + "stepped on."); + +const u8 DecorDesc_SURF_MAT[] = _( + "A mat designed with\n" + "a SURF image.\n" + "Put items on top."); + +const u8 DecorDesc_THUNDER_MAT[] = _( + "A mat designed with\n" + "a THUNDER image.\n" + "Put items on top."); + +const u8 DecorDesc_FIRE_BLAST_MAT[] = _( + "A mat designed with\n" + "a FIRE BLAST image.\n" + "Put items on top."); + +const u8 DecorDesc_POWDER_SNOW_MAT[] = _( + "A mat with a POWDER\n" + "SNOW image design.\n" + "Put items on top."); + +const u8 DecorDesc_ATTRACT_MAT[] = _( + "A mat designed with\n" + "an ATTRACT image.\n" + "Put items on top."); + +const u8 DecorDesc_FISSURE_MAT[] = _( + "A mat designed with\n" + "a FISSURE image.\n" + "Put items on top."); + +const u8 DecorDesc_SPIKES_MAT[] = _( + "A mat designed with\n" + "a SPIKES image.\n" + "Put items on top."); + +const u8 DecorDesc_BALL_POSTER[] = _( + "A small poster\n" + "printed with POKé\n" + "BALLS."); + +const u8 DecorDesc_GREEN_POSTER[] = _( + "A small poster with\n" + "a TREECKO print."); + +const u8 DecorDesc_RED_POSTER[] = _( + "A small poster with\n" + "a TORCHIC print."); + +const u8 DecorDesc_BLUE_POSTER[] = _( + "A small poster with\n" + "a MUDKIP print."); + +const u8 DecorDesc_CUTE_POSTER[] = _( + "A small poster with\n" + "an AZURILL print."); + +const u8 DecorDesc_PIKA_POSTER[] = _( + "A large poster with\n" + "a PIKACHU and\n" + "PICHU print."); + +const u8 DecorDesc_LONG_POSTER[] = _( + "A large poster with\n" + "a SEVIPER print."); + +const u8 DecorDesc_SEA_POSTER[] = _( + "A large poster with\n" + "a RELICANTH print."); + +const u8 DecorDesc_SKY_POSTER[] = _( + "A large poster with\n" + "a WINGULL print."); + +const u8 DecorDesc_KISS_POSTER[] = _( + "A large poster with\n" + "a SMOOCHUM print."); + +const u8 DecorDesc_PICHU_DOLL[] = _( + "A PICHU doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_PIKACHU_DOLL[] = _( + "A PIKACHU doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_MARILL_DOLL[] = _( + "A MARILL doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_TOGEPI_DOLL[] = _( + "A TOGEPI doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_CYNDAQUIL_DOLL[] = _( + "A CYNDAQUIL doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_CHIKORITA_DOLL[] = _( + "A CHIKORITA doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_TOTODILE_DOLL[] = _( + "A TOTODILE doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_JIGGLYPUFF_DOLL[] = _( + "A JIGGLYPUFF doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_MEOWTH_DOLL[] = _( + "A MEOWTH doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_CLEFAIRY_DOLL[] = _( + "A CLEFAIRY doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_DITTO_DOLL[] = _( + "A DITTO doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_SMOOCHUM_DOLL[] = _( + "A SMOOCHUM doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_TREECKO_DOLL[] = _( + "A TREECKO doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_TORCHIC_DOLL[] = _( + "A TORCHIC doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_MUDKIP_DOLL[] = _( + "A MUDKIP doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_DUSKULL_DOLL[] = _( + "A DUSKULL doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_WYNAUT_DOLL[] = _( + "A WYNAUT doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_BALTOY_DOLL[] = _( + "A BALTOY doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_KECLEON_DOLL[] = _( + "A KECLEON doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_AZURILL_DOLL[] = _( + "An AZURILL doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_SKITTY_DOLL[] = _( + "A SKITTY doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_SWABLU_DOLL[] = _( + "A SWABLU doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_GULPIN_DOLL[] = _( + "A GULPIN doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_LOTAD_DOLL[] = _( + "A LOTAD doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_SEEDOT_DOLL[] = _( + "A SEEDOT doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_PIKA_CUSHION[] = _( + "A PIKACHU cushion.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_ROUND_CUSHION[] = _( + "A MARILL cushion.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_KISS_CUSHION[] = _( + "A SMOOCHUM\n" + "cushion. Place it on\n" + "a mat or a desk."); + +const u8 DecorDesc_ZIGZAG_CUSHION[] = _( + "A ZIGZAGOON\n" + "cushion. Place it on\n" + "a mat or a desk."); + +const u8 DecorDesc_SPIN_CUSHION[] = _( + "A SPINDA cushion.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_DIAMOND_CUSHION[] = _( + "A SABLEYE cushion.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_BALL_CUSHION[] = _( + "A BALL cushion.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_GRASS_CUSHION[] = _( + "A grass-mark\n" + "cushion. Place it on\n" + "a mat or a desk."); + +const u8 DecorDesc_FIRE_CUSHION[] = _( + "A fire-mark\n" + "cushion. Place it on\n" + "a mat or a desk."); + +const u8 DecorDesc_WATER_CUSHION[] = _( + "A water-mark\n" + "cushion. Place it on\n" + "a mat or a desk."); + +const u8 DecorDesc_SNORLAX_DOLL[] = _( + "A large doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_RHYDON_DOLL[] = _( + "A large doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_LAPRAS_DOLL[] = _( + "A large doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_VENUSAUR_DOLL[] = _( + "A large doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_CHARIZARD_DOLL[] = _( + "A large doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_BLASTOISE_DOLL[] = _( + "A large doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_WAILMER_DOLL[] = _( + "A large doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_REGIROCK_DOLL[] = _( + "A large doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_REGICE_DOLL[] = _( + "A large doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_REGISTEEL_DOLL[] = _( + "A large doll.\n" + "Place it on a mat\n" + "or a desk."); +#endif //GUARD_DATA_DECORATION_DESCRIPTION_H diff --git a/include/data/decoration/header.h b/include/data/decoration/header.h new file mode 100644 index 000000000..64bed1c7e --- /dev/null +++ b/include/data/decoration/header.h @@ -0,0 +1,1100 @@ +// +// Created by scott on 10/21/2017. +// + +#ifndef GUARD_DATA_DECORATION_HEADER_H +#define GUARD_DATA_DECORATION_HEADER_H + +const struct Decoration gDecorations[] = { + { + DECOR_NONE, + _("SMALL DESK"), + DECORPERM_SOLID_FLOOR, + DECORSHAPE_1x1, + DECORCAT_DESK, + 0, + DecorDesc_SMALL_DESK, + DecorGfx_SMALL_DESK + }, { + DECOR_SMALL_DESK, + _("SMALL DESK"), + DECORPERM_SOLID_FLOOR, + DECORSHAPE_1x1, + DECORCAT_DESK, + 3000, + DecorDesc_SMALL_DESK, + DecorGfx_SMALL_DESK + }, { + DECOR_POKEMON_DESK, + _("POKéMON DESK"), + DECORPERM_SOLID_FLOOR, + DECORSHAPE_1x1, + DECORCAT_DESK, + 3000, + DecorDesc_POKEMON_DESK, + DecorGfx_POKEMON_DESK + }, { + DECOR_HEAVY_DESK, + _("HEAVY DESK"), + DECORPERM_SOLID_FLOOR, + DECORSHAPE_3x2, + DECORCAT_DESK, + 6000, + DecorDesc_HEAVY_DESK, + DecorGfx_HEAVY_DESK + }, { + DECOR_RAGGED_DESK, + _("RAGGED DESK"), + DECORPERM_SOLID_FLOOR, + DECORSHAPE_3x2, + DECORCAT_DESK, + 6000, + DecorDesc_RAGGED_DESK, + DecorGfx_RAGGED_DESK + }, { + DECOR_COMFORT_DESK, + _("COMFORT DESK"), + DECORPERM_SOLID_FLOOR, + DECORSHAPE_3x2, + DECORCAT_DESK, + 6000, + DecorDesc_COMFORT_DESK, + DecorGfx_COMFORT_DESK + }, { + DECOR_PRETTY_DESK, + _("PRETTY DESK"), + DECORPERM_SOLID_FLOOR, + DECORSHAPE_3x3, + DECORCAT_DESK, + 9000, + DecorDesc_PRETTY_DESK, + DecorGfx_PRETTY_DESK + }, { + DECOR_BRICK_DESK, + _("BRICK DESK"), + DECORPERM_SOLID_FLOOR, + DECORSHAPE_3x3, + DECORCAT_DESK, + 9000, + DecorDesc_BRICK_DESK, + DecorGfx_BRICK_DESK + }, { + DECOR_CAMP_DESK, + _("CAMP DESK"), + DECORPERM_SOLID_FLOOR, + DECORSHAPE_3x3, + DECORCAT_DESK, + 9000, + DecorDesc_CAMP_DESK, + DecorGfx_CAMP_DESK + }, { + DECOR_HARD_DESK, + _("HARD DESK"), + DECORPERM_SOLID_FLOOR, + DECORSHAPE_3x3, + DECORCAT_DESK, + 9000, + DecorDesc_HARD_DESK, + DecorGfx_HARD_DESK + }, { + DECOR_SMALL_CHAIR, + _("SMALL CHAIR"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_CHAIR, + 2000, + DecorDesc_SMALL_CHAIR, + DecorGfx_SMALL_CHAIR + }, { + DECOR_POKEMON_CHAIR, + _("POKéMON CHAIR"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_CHAIR, + 2000, + DecorDesc_POKEMON_CHAIR, + DecorGfx_POKEMON_CHAIR + }, { + DECOR_HEAVY_CHAIR, + _("HEAVY CHAIR"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_CHAIR, + 2000, + DecorDesc_HEAVY_CHAIR, + DecorGfx_HEAVY_CHAIR + }, { + DECOR_PRETTY_CHAIR, + _("PRETTY CHAIR"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_CHAIR, + 2000, + DecorDesc_PRETTY_CHAIR, + DecorGfx_PRETTY_CHAIR + }, { + DECOR_COMFORT_CHAIR, + _("COMFORT CHAIR"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_CHAIR, + 2000, + DecorDesc_COMFORT_CHAIR, + DecorGfx_COMFORT_CHAIR + }, { + DECOR_RAGGED_CHAIR, + _("RAGGED CHAIR"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_CHAIR, + 2000, + DecorDesc_RAGGED_CHAIR, + DecorGfx_RAGGED_CHAIR + }, { + DECOR_BRICK_CHAIR, + _("BRICK CHAIR"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_CHAIR, + 2000, + DecorDesc_BRICK_CHAIR, + DecorGfx_BRICK_CHAIR + }, { + DECOR_CAMP_CHAIR, + _("CAMP CHAIR"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_CHAIR, + 2000, + DecorDesc_CAMP_CHAIR, + DecorGfx_CAMP_CHAIR + }, { + DECOR_HARD_CHAIR, + _("HARD CHAIR"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_CHAIR, + 2000, + DecorDesc_HARD_CHAIR, + DecorGfx_HARD_CHAIR + }, { + DECOR_RED_PLANT, + _("RED PLANT"), + DECORPERM_BEHIND_FLOOR, + DECORSHAPE_1x2, + DECORCAT_PLANT, + 3000, + DecorDesc_RED_PLANT, + DecorGfx_RED_PLANT + }, { + DECOR_TROPICAL_PLANT, + _("TROPICAL PLANT"), + DECORPERM_BEHIND_FLOOR, + DECORSHAPE_1x2, + DECORCAT_PLANT, + 3000, + DecorDesc_TROPICAL_PLANT, + DecorGfx_TROPICAL_PLANT + }, { + DECOR_PRETTY_FLOWERS, + _("PRETTY FLOWERS"), + DECORPERM_BEHIND_FLOOR, + DECORSHAPE_1x2, + DECORCAT_PLANT, + 3000, + DecorDesc_PRETTY_FLOWERS, + DecorGfx_PRETTY_FLOWERS + }, { + DECOR_COLORFUL_PLANT, + _("COLORFUL PLANT"), + DECORPERM_BEHIND_FLOOR, + DECORSHAPE_2x2, + DECORCAT_PLANT, + 5000, + DecorDesc_COLORFUL_PLANT, + DecorGfx_COLORFUL_PLANT + }, { + DECOR_BIG_PLANT, + _("BIG PLANT"), + DECORPERM_BEHIND_FLOOR, + DECORSHAPE_2x2, + DECORCAT_PLANT, + 5000, + DecorDesc_BIG_PLANT, + DecorGfx_BIG_PLANT + }, { + DECOR_GORGEOUS_PLANT, + _("GORGEOUS PLANT"), + DECORPERM_BEHIND_FLOOR, + DECORSHAPE_2x2, + DECORCAT_PLANT, + 5000, + DecorDesc_GORGEOUS_PLANT, + DecorGfx_GORGEOUS_PLANT + }, { + DECOR_RED_BRICK, + _("RED BRICK"), + DECORPERM_SOLID_FLOOR, + DECORSHAPE_1x2, + DECORCAT_ORNAMENT, + 500, + DecorDesc_RED_BRICK, + DecorGfx_RED_BRICK + }, { + DECOR_YELLOW_BRICK, + _("YELLOW BRICK"), + DECORPERM_SOLID_FLOOR, + DECORSHAPE_1x2, + DECORCAT_ORNAMENT, + 500, + DecorDesc_YELLOW_BRICK, + DecorGfx_YELLOW_BRICK + }, { + DECOR_BLUE_BRICK, + _("BLUE BRICK"), + DECORPERM_SOLID_FLOOR, + DECORSHAPE_1x2, + DECORCAT_ORNAMENT, + 500, + DecorDesc_BLUE_BRICK, + DecorGfx_BLUE_BRICK + }, { + DECOR_RED_BALLOON, + _("RED BALLOON"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_ORNAMENT, + 500, + DecorDesc_RED_BALLOON, + DecorGfx_RED_BALLOON + }, { + DECOR_BLUE_BALLOON, + _("BLUE BALLOON"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_ORNAMENT, + 500, + DecorDesc_BLUE_BALLOON, + DecorGfx_BLUE_BALLOON + }, { + DECOR_YELLOW_BALLOON, + _("YELLOW BALLOON"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_ORNAMENT, + 500, + DecorDesc_YELLOW_BALLOON, + DecorGfx_YELLOW_BALLOON + }, { + DECOR_RED_TENT, + _("RED TENT"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_3x3, + DECORCAT_ORNAMENT, + 10000, + DecorDesc_RED_TENT, + DecorGfx_RED_TENT + }, { + DECOR_BLUE_TENT, + _("BLUE TENT"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_3x3, + DECORCAT_ORNAMENT, + 10000, + DecorDesc_BLUE_TENT, + DecorGfx_BLUE_TENT + }, { + DECOR_SOLID_BOARD, + _("SOLID BOARD"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x2, + DECORCAT_ORNAMENT, + 3000, + DecorDesc_SOLID_BOARD, + DecorGfx_SOLID_BOARD + }, { + DECOR_SLIDE, + _("SLIDE"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_2x4, + DECORCAT_ORNAMENT, + 8000, + DecorDesc_SLIDE, + DecorGfx_SLIDE + }, { + DECOR_FENCE_LENGTH, + _("FENCE LENGTH"), + DECORPERM_SOLID_FLOOR, + DECORSHAPE_1x1, + DECORCAT_ORNAMENT, + 500, + DecorDesc_FENCE_LENGTH, + DecorGfx_FENCE_LENGTH + }, { + DECOR_FENCE_WIDTH, + _("FENCE WIDTH"), + DECORPERM_SOLID_FLOOR, + DECORSHAPE_1x1, + DECORCAT_ORNAMENT, + 500, + DecorDesc_FENCE_WIDTH, + DecorGfx_FENCE_WIDTH + }, { + DECOR_TIRE, + _("TIRE"), + DECORPERM_SOLID_FLOOR, + DECORSHAPE_2x2, + DECORCAT_ORNAMENT, + 800, + DecorDesc_TIRE, + DecorGfx_TIRE + }, { + DECOR_STAND, + _("STAND"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_4x2, + DECORCAT_ORNAMENT, + 7000, + DecorDesc_STAND, + DecorGfx_STAND + }, { + DECOR_MUD_BALL, + _("MUD BALL"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_ORNAMENT, + 200, + DecorDesc_MUD_BALL, + DecorGfx_MUD_BALL + }, { + DECOR_BREAKABLE_DOOR, + _("BREAKABLE DOOR"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x2, + DECORCAT_ORNAMENT, + 3000, + DecorDesc_BREAKABLE_DOOR, + DecorGfx_BREAKABLE_DOOR + }, { + DECOR_SAND_ORNAMENT, + _("SAND ORNAMENT"), + DECORPERM_BEHIND_FLOOR, + DECORSHAPE_1x2, + DECORCAT_ORNAMENT, + 3000, + DecorDesc_SAND_ORNAMENT, + DecorGfx_SAND_ORNAMENT + }, { + DECOR_SILVER_SHIELD, + _("SILVER SHIELD"), + DECORPERM_BEHIND_FLOOR, + DECORSHAPE_1x2, + DECORCAT_ORNAMENT, + 0, + DecorDesc_SILVER_SHIELD, + DecorGfx_SILVER_SHIELD + }, { + DECOR_GOLD_SHIELD, + _("GOLD SHIELD"), + DECORPERM_BEHIND_FLOOR, + DECORSHAPE_1x2, + DECORCAT_ORNAMENT, + 0, + DecorDesc_GOLD_SHIELD, + DecorGfx_GOLD_SHIELD + }, { + DECOR_GLASS_ORNAMENT, + _("GLASS ORNAMENT"), + DECORPERM_BEHIND_FLOOR, + DECORSHAPE_1x2, + DECORCAT_ORNAMENT, + 0, + DecorDesc_GLASS_ORNAMENT, + DecorGfx_GLASS_ORNAMENT + }, { + DECOR_TV, + _("TV"), + DECORPERM_SOLID_FLOOR, + DECORSHAPE_1x1, + DECORCAT_ORNAMENT, + 3000, + DecorDesc_TV, + DecorGfx_TV + }, { + DECOR_ROUND_TV, + _("ROUND TV"), + DECORPERM_SOLID_FLOOR, + DECORSHAPE_1x1, + DECORCAT_ORNAMENT, + 4000, + DecorDesc_ROUND_TV, + DecorGfx_ROUND_TV + }, { + DECOR_CUTE_TV, + _("CUTE TV"), + DECORPERM_SOLID_FLOOR, + DECORSHAPE_1x1, + DECORCAT_ORNAMENT, + 4000, + DecorDesc_CUTE_TV, + DecorGfx_CUTE_TV + }, { + DECOR_GLITTER_MAT, + _("GLITTER MAT"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_MAT, + 2000, + DecorDesc_GLITTER_MAT, + DecorGfx_GLITTER_MAT + }, { + DECOR_JUMP_MAT, + _("JUMP MAT"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_MAT, + 2000, + DecorDesc_JUMP_MAT, + DecorGfx_JUMP_MAT + }, { + DECOR_SPIN_MAT, + _("SPIN MAT"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_MAT, + 2000, + DecorDesc_SPIN_MAT, + DecorGfx_SPIN_MAT + }, { + DECOR_C_LOW_NOTE_MAT, + _("C Low NOTE MAT"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_MAT, + 500, + DecorDesc_C_LOW_NOTE_MAT, + DecorGfx_C_LOW_NOTE_MAT + }, { + DECOR_D_NOTE_MAT, + _("D NOTE MAT"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_MAT, + 500, + DecorDesc_D_NOTE_MAT, + DecorGfx_D_NOTE_MAT + }, { + DECOR_E_NOTE_MAT, + _("E NOTE MAT"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_MAT, + 500, + DecorDesc_E_NOTE_MAT, + DecorGfx_E_NOTE_MAT + }, { + DECOR_F_NOTE_MAT, + _("F NOTE MAT"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_MAT, + 500, + DecorDesc_F_NOTE_MAT, + DecorGfx_F_NOTE_MAT + }, { + DECOR_G_NOTE_MAT, + _("G NOTE MAT"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_MAT, + 500, + DecorDesc_G_NOTE_MAT, + DecorGfx_G_NOTE_MAT + }, { + DECOR_A_NOTE_MAT, + _("A NOTE MAT"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_MAT, + 500, + DecorDesc_A_NOTE_MAT, + DecorGfx_A_NOTE_MAT + }, { + DECOR_B_NOTE_MAT, + _("B NOTE MAT"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_MAT, + 500, + DecorDesc_B_NOTE_MAT, + DecorGfx_B_NOTE_MAT + }, { + DECOR_C_HIGH_NOTE_MAT, + _("C High NOTE MAT"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_MAT, + 500, + DecorDesc_C_HIGH_NOTE_MAT, + DecorGfx_C_HIGH_NOTE_MAT + }, { + DECOR_SURF_MAT, + _("SURF MAT"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_3x3, + DECORCAT_MAT, + 4000, + DecorDesc_SURF_MAT, + DecorGfx_SURF_MAT + }, { + DECOR_THUNDER_MAT, + _("THUNDER MAT"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_3x3, + DECORCAT_MAT, + 4000, + DecorDesc_THUNDER_MAT, + DecorGfx_THUNDER_MAT + }, { + DECOR_FIRE_BLAST_MAT, + _("FIRE BLAST MAT"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_3x3, + DECORCAT_MAT, + 4000, + DecorDesc_FIRE_BLAST_MAT, + DecorGfx_FIRE_BLAST_MAT + }, { + DECOR_POWDER_SNOW_MAT, + _("POWDER SNOW MAT"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_3x3, + DECORCAT_MAT, + 4000, + DecorDesc_POWDER_SNOW_MAT, + DecorGfx_POWDER_SNOW_MAT + }, { + DECOR_ATTRACT_MAT, + _("ATTRACT MAT"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_3x3, + DECORCAT_MAT, + 4000, + DecorDesc_ATTRACT_MAT, + DecorGfx_ATTRACT_MAT + }, { + DECOR_FISSURE_MAT, + _("FISSURE MAT"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_3x3, + DECORCAT_MAT, + 4000, + DecorDesc_FISSURE_MAT, + DecorGfx_FISSURE_MAT + }, { + DECOR_SPIKES_MAT, + _("SPIKES MAT"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_3x3, + DECORCAT_MAT, + 4000, + DecorDesc_SPIKES_MAT, + DecorGfx_SPIKES_MAT + }, { + DECOR_BALL_POSTER, + _("BALL POSTER"), + DECORPERM_NA_WALL, + DECORSHAPE_1x1, + DECORCAT_POSTER, + 1000, + DecorDesc_BALL_POSTER, + DecorGfx_BALL_POSTER + }, { + DECOR_GREEN_POSTER, + _("GREEN POSTER"), + DECORPERM_NA_WALL, + DECORSHAPE_1x1, + DECORCAT_POSTER, + 1000, + DecorDesc_GREEN_POSTER, + DecorGfx_GREEN_POSTER + }, { + DECOR_RED_POSTER, + _("RED POSTER"), + DECORPERM_NA_WALL, + DECORSHAPE_1x1, + DECORCAT_POSTER, + 1000, + DecorDesc_RED_POSTER, + DecorGfx_RED_POSTER + }, { + DECOR_BLUE_POSTER, + _("BLUE POSTER"), + DECORPERM_NA_WALL, + DECORSHAPE_1x1, + DECORCAT_POSTER, + 1000, + DecorDesc_BLUE_POSTER, + DecorGfx_BLUE_POSTER + }, { + DECOR_CUTE_POSTER, + _("CUTE POSTER"), + DECORPERM_NA_WALL, + DECORSHAPE_1x1, + DECORCAT_POSTER, + 1000, + DecorDesc_CUTE_POSTER, + DecorGfx_CUTE_POSTER + }, { + DECOR_PIKA_POSTER, + _("PIKA POSTER"), + DECORPERM_NA_WALL, + DECORSHAPE_2x1, + DECORCAT_POSTER, + 1500, + DecorDesc_PIKA_POSTER, + DecorGfx_PIKA_POSTER + }, { + DECOR_LONG_POSTER, + _("LONG POSTER"), + DECORPERM_NA_WALL, + DECORSHAPE_2x1, + DECORCAT_POSTER, + 1500, + DecorDesc_LONG_POSTER, + DecorGfx_LONG_POSTER + }, { + DECOR_SEA_POSTER, + _("SEA POSTER"), + DECORPERM_NA_WALL, + DECORSHAPE_2x1, + DECORCAT_POSTER, + 1500, + DecorDesc_SEA_POSTER, + DecorGfx_SEA_POSTER + }, { + DECOR_SKY_POSTER, + _("SKY POSTER"), + DECORPERM_NA_WALL, + DECORSHAPE_2x1, + DECORCAT_POSTER, + 1500, + DecorDesc_SKY_POSTER, + DecorGfx_SKY_POSTER + }, { + DECOR_KISS_POSTER, + _("KISS POSTER"), + DECORPERM_NA_WALL, + DECORSHAPE_2x1, + DECORCAT_POSTER, + 1500, + DecorDesc_KISS_POSTER, + DecorGfx_KISS_POSTER + }, { + DECOR_PICHU_DOLL, + _("PICHU DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_PICHU_DOLL, + DecorGfx_PICHU_DOLL + }, { + DECOR_PIKACHU_DOLL, + _("PIKACHU DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_PIKACHU_DOLL, + DecorGfx_PIKACHU_DOLL + }, { + DECOR_MARILL_DOLL, + _("MARILL DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_MARILL_DOLL, + DecorGfx_MARILL_DOLL + }, { + DECOR_TOGEPI_DOLL, + _("TOGEPI DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_TOGEPI_DOLL, + DecorGfx_TOGEPI_DOLL + }, { + DECOR_CYNDAQUIL_DOLL, + _("CYNDAQUIL DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_CYNDAQUIL_DOLL, + DecorGfx_CYNDAQUIL_DOLL + }, { + DECOR_CHIKORITA_DOLL, + _("CHIKORITA DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_CHIKORITA_DOLL, + DecorGfx_CHIKORITA_DOLL + }, { + DECOR_TOTODILE_DOLL, + _("TOTODILE DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_TOTODILE_DOLL, + DecorGfx_TOTODILE_DOLL + }, { + DECOR_JIGGLYPUFF_DOLL, + _("JIGGLYPUFF DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_JIGGLYPUFF_DOLL, + DecorGfx_JIGGLYPUFF_DOLL + }, { + DECOR_MEOWTH_DOLL, + _("MEOWTH DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_MEOWTH_DOLL, + DecorGfx_MEOWTH_DOLL + }, { + DECOR_CLEFAIRY_DOLL, + _("CLEFAIRY DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_CLEFAIRY_DOLL, + DecorGfx_CLEFAIRY_DOLL + }, { + DECOR_DITTO_DOLL, + _("DITTO DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_DITTO_DOLL, + DecorGfx_DITTO_DOLL + }, { + DECOR_SMOOCHUM_DOLL, + _("SMOOCHUM DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_SMOOCHUM_DOLL, + DecorGfx_SMOOCHUM_DOLL + }, { + DECOR_TREECKO_DOLL, + _("TREECKO DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_TREECKO_DOLL, + DecorGfx_TREECKO_DOLL + }, { + DECOR_TORCHIC_DOLL, + _("TORCHIC DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_TORCHIC_DOLL, + DecorGfx_TORCHIC_DOLL + }, { + DECOR_MUDKIP_DOLL, + _("MUDKIP DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_MUDKIP_DOLL, + DecorGfx_MUDKIP_DOLL + }, { + DECOR_DUSKULL_DOLL, + _("DUSKULL DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_DUSKULL_DOLL, + DecorGfx_DUSKULL_DOLL + }, { + DECOR_WYNAUT_DOLL, + _("WYNAUT DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_WYNAUT_DOLL, + DecorGfx_WYNAUT_DOLL + }, { + DECOR_BALTOY_DOLL, + _("BALTOY DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_BALTOY_DOLL, + DecorGfx_BALTOY_DOLL + }, { + DECOR_KECLEON_DOLL, + _("KECLEON DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_KECLEON_DOLL, + DecorGfx_KECLEON_DOLL + }, { + DECOR_AZURILL_DOLL, + _("AZURILL DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_AZURILL_DOLL, + DecorGfx_AZURILL_DOLL + }, { + DECOR_SKITTY_DOLL, + _("SKITTY DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_SKITTY_DOLL, + DecorGfx_SKITTY_DOLL + }, { + DECOR_SWABLU_DOLL, + _("SWABLU DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_SWABLU_DOLL, + DecorGfx_SWABLU_DOLL + }, { + DECOR_GULPIN_DOLL, + _("GULPIN DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_GULPIN_DOLL, + DecorGfx_GULPIN_DOLL + }, { + DECOR_LOTAD_DOLL, + _("LOTAD DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_LOTAD_DOLL, + DecorGfx_LOTAD_DOLL + }, { + DECOR_SEEDOT_DOLL, + _("SEEDOT DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_SEEDOT_DOLL, + DecorGfx_SEEDOT_DOLL + }, { + DECOR_PIKA_CUSHION, + _("PIKA CUSHION"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_CUSHION, + 2000, + DecorDesc_PIKA_CUSHION, + DecorGfx_PIKA_CUSHION + }, { + DECOR_ROUND_CUSHION, + _("ROUND CUSHION"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_CUSHION, + 2000, + DecorDesc_ROUND_CUSHION, + DecorGfx_ROUND_CUSHION + }, { + DECOR_KISS_CUSHION, + _("KISS CUSHION"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_CUSHION, + 2000, + DecorDesc_KISS_CUSHION, + DecorGfx_KISS_CUSHION + }, { + DECOR_ZIGZAG_CUSHION, + _("ZIGZAG CUSHION"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_CUSHION, + 2000, + DecorDesc_ZIGZAG_CUSHION, + DecorGfx_ZIGZAG_CUSHION + }, { + DECOR_SPIN_CUSHION, + _("SPIN CUSHION"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_CUSHION, + 2000, + DecorDesc_SPIN_CUSHION, + DecorGfx_SPIN_CUSHION + }, { + DECOR_DIAMOND_CUSHION, + _("DIAMOND CUSHION"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_CUSHION, + 2000, + DecorDesc_DIAMOND_CUSHION, + DecorGfx_DIAMOND_CUSHION + }, { + DECOR_BALL_CUSHION, + _("BALL CUSHION"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_CUSHION, + 2000, + DecorDesc_BALL_CUSHION, + DecorGfx_BALL_CUSHION + }, { + DECOR_GRASS_CUSHION, + _("GRASS CUSHION"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_CUSHION, + 2000, + DecorDesc_GRASS_CUSHION, + DecorGfx_GRASS_CUSHION + }, { + DECOR_FIRE_CUSHION, + _("FIRE CUSHION"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_CUSHION, + 2000, + DecorDesc_FIRE_CUSHION, + DecorGfx_FIRE_CUSHION + }, { + DECOR_WATER_CUSHION, + _("WATER CUSHION"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_CUSHION, + 2000, + DecorDesc_WATER_CUSHION, + DecorGfx_WATER_CUSHION + }, { + DECOR_SNORLAX_DOLL, + _("SNORLAX DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x2, + DECORCAT_DOLL, + 10000, + DecorDesc_SNORLAX_DOLL, + DecorGfx_SNORLAX_DOLL + }, { + DECOR_RHYDON_DOLL, + _("RHYDON DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x2, + DECORCAT_DOLL, + 10000, + DecorDesc_RHYDON_DOLL, + DecorGfx_RHYDON_DOLL + }, { + DECOR_LAPRAS_DOLL, + _("LAPRAS DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x2, + DECORCAT_DOLL, + 10000, + DecorDesc_LAPRAS_DOLL, + DecorGfx_LAPRAS_DOLL + }, { + DECOR_VENUSAUR_DOLL, + _("VENUSAUR DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x2, + DECORCAT_DOLL, + 10000, + DecorDesc_VENUSAUR_DOLL, + DecorGfx_VENUSAUR_DOLL + }, { + DECOR_CHARIZARD_DOLL, + _("CHARIZARD DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x2, + DECORCAT_DOLL, + 10000, + DecorDesc_CHARIZARD_DOLL, + DecorGfx_CHARIZARD_DOLL + }, { + DECOR_BLASTOISE_DOLL, + _("BLASTOISE DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x2, + DECORCAT_DOLL, + 10000, + DecorDesc_BLASTOISE_DOLL, + DecorGfx_BLASTOISE_DOLL + }, { + DECOR_WAILMER_DOLL, + _("WAILMER DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x2, + DECORCAT_DOLL, + 10000, + DecorDesc_WAILMER_DOLL, + DecorGfx_WAILMER_DOLL + }, { + DECOR_REGIROCK_DOLL, + _("REGIROCK DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x2, + DECORCAT_DOLL, + 10000, + DecorDesc_REGIROCK_DOLL, + DecorGfx_REGIROCK_DOLL + }, { + DECOR_REGICE_DOLL, + _("REGICE DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x2, + DECORCAT_DOLL, + 10000, + DecorDesc_REGICE_DOLL, + DecorGfx_REGICE_DOLL + }, { + DECOR_REGISTEEL_DOLL, + _("REGISTEEL DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x2, + DECORCAT_DOLL, + 10000, + DecorDesc_REGISTEEL_DOLL, + DecorGfx_REGISTEEL_DOLL} +}; + +#endif //GUARD_DATA_DECORATION_HEADER_H diff --git a/include/data/decoration/icon.h b/include/data/decoration/icon.h new file mode 100644 index 000000000..1f11bc19f --- /dev/null +++ b/include/data/decoration/icon.h @@ -0,0 +1,132 @@ +// +// Created by scott on 10/21/2017. +// + +#ifndef GUARD_ICON_H +#define GUARD_ICON_H + +const u8 *const gUnknown_085A6BE8[][2] = { + {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + {NULL, NULL}, + {NULL, NULL}, + {gUnknown_08DB7AA0, gUnknown_08DB7B34}, + {gUnknown_08DB7B5C, gUnknown_08DB7BEC}, + {gUnknown_08DB7C08, gUnknown_08DB7CE8}, + {gUnknown_08DB7D08, gUnknown_08DB7DCC}, + {gUnknown_08DB7DF4, gUnknown_08DB7EA0}, + {gUnknown_08DB7EC4, gUnknown_08DB7F60}, + {gUnknown_08DB7F7C, gUnknown_08DB8070}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {gUnknown_08DB808C, gUnknown_08DB8138}, + {gUnknown_08DB8160, gUnknown_08DB8218}, + {gUnknown_08DB823C, gUnknown_08DB8300}, + {gUnknown_08DB8328, gUnknown_08DB8430}, + {gUnknown_08DB8458, gUnknown_08DB8528}, + {gUnknown_08DB854C, gUnknown_08DB862C}, + {gUnknown_08DB8654, gUnknown_08DB86C4}, + {gUnknown_08DB86E0, gUnknown_08DB8750}, + {gUnknown_08DB876C, gUnknown_08DB87DC}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {gUnknown_08DB87F8, gUnknown_08DB88D8}, + {gUnknown_08DB8900, gUnknown_08DB89E0}, + {gUnknown_08DB8A08, gUnknown_08DB8A68}, + {gUnknown_08DB8A84, gUnknown_08DB8B40}, + {NULL, NULL}, + {NULL, NULL}, + {gUnknown_08DB8B68, gUnknown_08DB8C40}, + {gUnknown_08DB8C5C, gUnknown_08DB8CF4}, + {NULL, NULL}, + {gUnknown_08DB8D18, gUnknown_08DB8DB0}, + {gUnknown_08DB8DD4, gUnknown_08DB8E80}, + {NULL, NULL}, + {NULL, NULL}, + {gUnknown_08DB8EA0, gUnknown_08DB8F58}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {gUnknown_08DB8F7C, gUnknown_08DB9038}, + {gUnknown_08DB9058, gUnknown_08DB9130}, + {gUnknown_08DB9154, gUnknown_08DB9218}, + {gUnknown_08DB9234, gUnknown_08DB92FC}, + {gUnknown_08DB931C, gUnknown_08DB93E8}, + {gUnknown_08DB940C, gUnknown_08DB94CC}, + {gUnknown_08DB94E8, gUnknown_08DB95AC}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {gUnknown_08DB95D0, gUnknown_08DB96C4}, + {gUnknown_08DB96EC, gUnknown_08DB97F4}, + {gUnknown_08DB981C, gUnknown_08DB9908}, + {gUnknown_08DB9930, gUnknown_08DB9A54}, + {gUnknown_08DB9A7C, gUnknown_08DB9B7C}, + {gUnknown_08DB9BA4, gUnknown_08DB9CB0}, + {gUnknown_08DB9CD8, gUnknown_08DB9DAC}, + {gUnknown_08DB9F08, gUnknown_08DB9FFC}, + {gUnknown_08DB9DD4, gUnknown_08DB9EE4}, + {gUnknown_08DBA020, gUnknown_08DBA12C} +}; + +#endif //GUARD_ICON_H diff --git a/include/data/decoration/tilemaps.h b/include/data/decoration/tilemaps.h new file mode 100644 index 000000000..1cca7ae0b --- /dev/null +++ b/include/data/decoration/tilemaps.h @@ -0,0 +1,239 @@ +// +// Created by scott on 10/21/2017. +// + +#ifndef GUARD_TILEMAPS_H +#define GUARD_TILEMAPS_H + +const u8 Unknown_085A6FB0[] = { + 0x00, 0x01, 0x02, 0x03 +}; + +const u8 Unknown_085A6FB4[] = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d +}; + +const u8 Unknown_085A6FC0[] = { + 0x00, 0x01, 0x02, 0x03, + 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, + 0x0c, 0x0d, 0x0e, 0x0f +}; + +const u8 Unknown_085A6FD0[] = { + 0x00, 0x01, 0x04, 0x05, + 0x08, 0x09, 0x0c, 0x0d, + 0x10, 0x11, 0x14, 0x15 +}; + +const u8 Unknown_085A6FDC[] = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 +}; + +const u8 Unknown_085A6FE4[] = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f +}; + +const u8 Unknown_085A7004[] = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d +}; + +const u8 Unknown_085A7028[] = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d +}; + +const u8 Unknown_085A7040[] = { + 0x00, 0x00, 0x00, 0x00 +}; + +const u8 Unknown_085A7044[] = { + 0x00, 0x00, 0x01, 0x01, + 0x00, 0x00, 0x01, 0x01 +}; + +const u8 Unknown_085A704C[] = { + 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, + 0x00, 0x00, 0x01, 0x01, 0x02, 0x02 +}; + +const u8 Unknown_085A7058[] = { + 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03, + 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03, + 0x04, 0x04, 0x05, 0x05, 0x06, 0x06, 0x07, 0x07, + 0x04, 0x04, 0x05, 0x05, 0x06, 0x06, 0x07, 0x07 +}; + +const u8 Unknown_085A7078[] = { + 0x00, 0x00, 0x01, 0x01, + 0x00, 0x00, 0x01, 0x01, + 0x02, 0x02, 0x03, 0x03, + 0x02, 0x02, 0x03, 0x03 +}; + +const u8 Unknown_085A7088[] = { + 0x00, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x01, 0x01 +}; + +const u8 Unknown_085A7090[] = { + 0x00, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x01, 0x01, + 0x02, 0x02, 0x02, 0x02 +}; + +const u8 Unknown_085A709C[] = { + 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, + 0x02, 0x02, 0x03, 0x03, 0x02, 0x02, 0x03, 0x03, + 0x04, 0x04, 0x05, 0x05, 0x04, 0x04, 0x05, 0x05, + 0x06, 0x06, 0x07, 0x07, 0x06, 0x06, 0x07, 0x07 +}; + +const u8 Unknown_085A70BC[] = { + 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, + 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, + 0x03, 0x03, 0x04, 0x04, 0x05, 0x05, + 0x03, 0x03, 0x04, 0x04, 0x05, 0x05, + 0x06, 0x06, 0x07, 0x07, 0x08, 0x08, + 0x06, 0x06, 0x07, 0x07, 0x08, 0x08 +}; + +const u8 Unknown_085A70E0[] = { + 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, + 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, + 0x03, 0x03, 0x04, 0x04, 0x05, 0x05, + 0x03, 0x03, 0x04, 0x04, 0x05, 0x05 +}; + +const u8 Unknown_085A70F8[] = { + 0x04, 0x05, 0x06, 0x07 +}; + +const u8 Unknown_085A70FC[] = { + 0x04, 0x05, 0x04, 0x05, + 0x06, 0x07, 0x06, 0x07 +}; + +const u8 Unknown_085A7104[] = { + 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, + 0x06, 0x07, 0x06, 0x07, 0x06, 0x07 +}; + +const u8 Unknown_085A7110[] = { + 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, + 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, + 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, + 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07 +}; + +const u8 Unknown_085A7130[] = { + 0x04, 0x05, 0x04, 0x05, + 0x06, 0x07, 0x06, 0x07, + 0x04, 0x05, 0x04, 0x05, + 0x06, 0x07, 0x06, 0x07 +}; + +const u8 Unknown_085A7140[] = { + 0x04, 0x05, 0x06, 0x07, + 0x04, 0x05, 0x06, 0x07 +}; + +const u8 Unknown_085A7148[] = { + 0x04, 0x05, 0x06, 0x07, + 0x04, 0x05, 0x06, 0x07, + 0x04, 0x05, 0x06, 0x07 +}; + +const u8 Unknown_085A7154[] = { + 0x04, 0x05, 0x04, 0x05, 0x06, 0x07, 0x06, 0x07, + 0x04, 0x05, 0x04, 0x05, 0x06, 0x07, 0x06, 0x07, + 0x04, 0x05, 0x04, 0x05, 0x06, 0x07, 0x06, 0x07, + 0x04, 0x05, 0x04, 0x05, 0x06, 0x07, 0x06, 0x07 +}; + +const u8 Unknown_085A7174[] = { + 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, + 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, + 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, + 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, + 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, + 0x06, 0x07, 0x06, 0x07, 0x06, 0x07 +}; + +const u8 Unknown_085A7198[] = { + 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, + 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, + 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, + 0x06, 0x07, 0x06, 0x07, 0x06, 0x07 +}; + +const struct { + const u8 *tiles; + const u8 *y; + const u8 *x; + u8 size; +} gUnknown_085A71B0[] = { + { + Unknown_085A6FB0, + Unknown_085A7040, + Unknown_085A70F8, + 0x04 + }, { + Unknown_085A6FDC, + Unknown_085A7044, + Unknown_085A70FC, + 0x08 + }, { + Unknown_085A6FB4, + Unknown_085A704C, + Unknown_085A7104, + 0x0c + }, { + Unknown_085A6FE4, + Unknown_085A7058, + Unknown_085A7110, + 0x20 + }, { + Unknown_085A6FC0, + Unknown_085A7078, + Unknown_085A7130, + 0x10 + }, { + Unknown_085A6FDC, + Unknown_085A7088, + Unknown_085A7140, + 0x08 + }, { + Unknown_085A6FD0, + Unknown_085A7090, + Unknown_085A7148, + 0x0c + }, { + Unknown_085A6FE4, + Unknown_085A709C, + Unknown_085A7154, + 0x20 + }, { + Unknown_085A7004, + Unknown_085A70BC, + Unknown_085A7174, + 0x24 + }, { + Unknown_085A7028, + Unknown_085A70E0, + Unknown_085A7198, + 0x18 + }}; + +#endif //GUARD_TILEMAPS_H diff --git a/include/data/decoration/tiles.h b/include/data/decoration/tiles.h new file mode 100644 index 000000000..9a3f8a222 --- /dev/null +++ b/include/data/decoration/tiles.h @@ -0,0 +1,646 @@ +#ifndef GUARD_DATA_DECORATION_TILES +#define GUARD_DATA_DECORATION_TILES + +const u16 DecorGfx_SMALL_DESK[] = { + 0x87 +}; + +const u16 DecorGfx_POKEMON_DESK[] = { + 0x8F +}; + +const u16 DecorGfx_HEAVY_DESK[] = { + 0x90, + 0x91, + 0x92, + 0x98, + 0x99, + 0x9A +}; + +const u16 DecorGfx_RAGGED_DESK[] = { + 0x93, + 0x94, + 0x95, + 0x9B, + 0x9C, + 0x9D +}; + +const u16 DecorGfx_COMFORT_DESK[] = { + 0x96, + 0x97, + 0xA3, + 0x9E, + 0x9F, + 0xAB +}; + +const u16 DecorGfx_PRETTY_DESK[] = { + 0xBD, + 0xBE, + 0xBF, + 0xC5, + 0xC6, + 0xC7, + 0xCD, + 0xCE, + 0xCF +}; + +const u16 DecorGfx_BRICK_DESK[] = { + 0xA0, + 0xA1, + 0xA2, + 0xA8, + 0xA9, + 0xAA, + 0xB0, + 0xB1, + 0xB2 +}; + +const u16 DecorGfx_CAMP_DESK[] = { + 0xA4, + 0xA5, + 0xA6, + 0xAC, + 0xAD, + 0xAE, + 0xB4, + 0xB5, + 0xB6 +}; + +const u16 DecorGfx_HARD_DESK[] = { + 0xA7, + 0xBB, + 0xBC, + 0xAF, + 0xC3, + 0xC4, + 0xB7, + 0xCB, + 0xCC +}; + +const u16 DecorGfx_SMALL_CHAIR[] = { + 0xB8 +}; + +const u16 DecorGfx_POKEMON_CHAIR[] = { + 0xB9 +}; + +const u16 DecorGfx_HEAVY_CHAIR[] = { + 0xBA +}; + +const u16 DecorGfx_PRETTY_CHAIR[] = { + 0xC0 +}; + +const u16 DecorGfx_COMFORT_CHAIR[] = { + 0xC1 +}; + +const u16 DecorGfx_RAGGED_CHAIR[] = { + 0xC2 +}; + +const u16 DecorGfx_BRICK_CHAIR[] = { + 0xC8 +}; + +const u16 DecorGfx_CAMP_CHAIR[] = { + 0xC9 +}; + +const u16 DecorGfx_HARD_CHAIR[] = { + 0xCA +}; + +const u16 DecorGfx_RED_PLANT[] = { + 0xD0, + 0xD8 +}; + +const u16 DecorGfx_TROPICAL_PLANT[] = { + 0xD2, + 0xDA +}; + +const u16 DecorGfx_PRETTY_FLOWERS[] = { + 0xD4, + 0xDC +}; + +const u16 DecorGfx_COLORFUL_PLANT[] = { + 0xE0, + 0xE2, + 0xE8, + 0xE9 +}; + +const u16 DecorGfx_BIG_PLANT[] = { + 0xE4, + 0xE6, + 0xEC, + 0xED +}; + +const u16 DecorGfx_GORGEOUS_PLANT[] = { + 0xF0, + 0xF2, + 0xF8, + 0xF9 +}; + +const u16 DecorGfx_RED_BRICK[] = { + 0x25, + 0x2D +}; + +const u16 DecorGfx_YELLOW_BRICK[] = { + 0x26, + 0x2E +}; + +const u16 DecorGfx_BLUE_BRICK[] = { + 0x27, + 0x2F +}; + +const u16 DecorGfx_RED_BALLOON[] = { + 0x138 +}; + +const u16 DecorGfx_BLUE_BALLOON[] = { + 0x13C +}; + +const u16 DecorGfx_YELLOW_BALLOON[] = { + 0x140 +}; + +const u16 DecorGfx_RED_TENT[] = { + 0x30, + 0x31, + 0x32, + 0x38, + 0x39, + 0x3A, + 0x40, + 0x41, + 0x3B +}; + +const u16 DecorGfx_BLUE_TENT[] = { + 0x48, + 0x49, + 0x68, + 0x50, + 0x51, + 0x70, + 0x58, + 0x59, + 0x69 +}; + +const u16 DecorGfx_SOLID_BOARD[] = { + 0x34, + 0x3C +}; + +const u16 DecorGfx_SLIDE[] = { + 0x35, + 0x36, + 0x3D, + 0x3E, + 0x63, + 0x64, + 0x6F, + 0x77 +}; + +const u16 DecorGfx_FENCE_LENGTH[] = { + 0x33 +}; + +const u16 DecorGfx_FENCE_WIDTH[] = { + 0x2C +}; + +const u16 DecorGfx_TIRE[] = { + 0x80, + 0x81, + 0x88, + 0x89 +}; + +const u16 DecorGfx_STAND[] = { + 0x6A, + 0x6B, + 0x6C, + 0x6D, + 0x72, + 0x73, + 0x74, + 0x75 +}; + +const u16 DecorGfx_MUD_BALL[] = { + 0x28 +}; + +const u16 DecorGfx_BREAKABLE_DOOR[] = { + 0x37, + 0x3F +}; + +const u16 DecorGfx_SAND_ORNAMENT[] = { + 0x85, + 0x8D +}; + +const u16 DecorGfx_SILVER_SHIELD[] = { + 0xD6, + 0xDE +}; + +const u16 DecorGfx_GOLD_SHIELD[] = { + 0x12E, + 0x136 +}; + +const u16 DecorGfx_GLASS_ORNAMENT[] = { + 0x82, + 0x8A +}; + +const u16 DecorGfx_TV[] = { + 0xF4 +}; + +const u16 DecorGfx_ROUND_TV[] = { + 0xF5 +}; + +const u16 DecorGfx_CUTE_TV[] = { + 0xF6 +}; + +const u16 DecorGfx_GLITTER_MAT[] = { + 0x60 +}; + +const u16 DecorGfx_JUMP_MAT[] = { + 0x61 +}; + +const u16 DecorGfx_SPIN_MAT[] = { + 0x62 +}; + +const u16 DecorGfx_C_LOW_NOTE_MAT[] = { + 0x78 +}; + +const u16 DecorGfx_D_NOTE_MAT[] = { + 0x79 +}; + +const u16 DecorGfx_E_NOTE_MAT[] = { + 0x7A +}; + +const u16 DecorGfx_F_NOTE_MAT[] = { + 0x7B +}; + +const u16 DecorGfx_G_NOTE_MAT[] = { + 0x7C +}; + +const u16 DecorGfx_A_NOTE_MAT[] = { + 0x7D +}; + +const u16 DecorGfx_B_NOTE_MAT[] = { + 0x7E +}; + +const u16 DecorGfx_C_HIGH_NOTE_MAT[] = { + 0xB3 +}; + +const u16 DecorGfx_SURF_MAT[] = { + 0x42, + 0x43, + 0x44, + 0x4A, + 0x4B, + 0x4C, + 0x52, + 0x53, + 0x54 +}; + +const u16 DecorGfx_THUNDER_MAT[] = { + 0x45, + 0x46, + 0x47, + 0x4D, + 0x4E, + 0x4F, + 0x55, + 0x56, + 0x57 +}; + +const u16 DecorGfx_FIRE_BLAST_MAT[] = { + 0x5A, + 0x5B, + 0x5C, + 0x5D, + 0x5E, + 0x5F, + 0x65, + 0x66, + 0x67 +}; + +const u16 DecorGfx_POWDER_SNOW_MAT[] = { + 0x100, + 0x101, + 0x102, + 0x108, + 0x109, + 0x10A, + 0x110, + 0x111, + 0x112 +}; + +const u16 DecorGfx_ATTRACT_MAT[] = { + 0x103, + 0x104, + 0x105, + 0x10B, + 0x10C, + 0x10D, + 0x113, + 0x114, + 0x115 +}; + +const u16 DecorGfx_FISSURE_MAT[] = { + 0x106, + 0x107, + 0x118, + 0x10E, + 0x10F, + 0x120, + 0x116, + 0x117, + 0x128 +}; + +const u16 DecorGfx_SPIKES_MAT[] = { + 0x119, + 0x11A, + 0x11B, + 0x121, + 0x122, + 0x123, + 0x129, + 0x12A, + 0x12B +}; + +const u16 DecorGfx_BALL_POSTER[] = { + 0x130 +}; + +const u16 DecorGfx_GREEN_POSTER[] = { + 0x131 +}; + +const u16 DecorGfx_RED_POSTER[] = { + 0x132 +}; + +const u16 DecorGfx_BLUE_POSTER[] = { + 0x133 +}; + +const u16 DecorGfx_CUTE_POSTER[] = { + 0x134 +}; + +const u16 DecorGfx_PIKA_POSTER[] = { + 0x11C, + 0x11D +}; + +const u16 DecorGfx_LONG_POSTER[] = { + 0x11E, + 0x11F +}; + +const u16 DecorGfx_SEA_POSTER[] = { + 0x124, + 0x125 +}; + +const u16 DecorGfx_SKY_POSTER[] = { + 0x126, + 0x127 +}; + +const u16 DecorGfx_KISS_POSTER[] = { + 0x12C, + 0x12D +}; + +const u16 DecorGfx_PICHU_DOLL[] = { + MAP_OBJ_GFX_PICHU_DOLL +}; + +const u16 DecorGfx_PIKACHU_DOLL[] = { + MAP_OBJ_GFX_PIKACHU_DOLL +}; + +const u16 DecorGfx_MARILL_DOLL[] = { + MAP_OBJ_GFX_MARILL_DOLL +}; + +const u16 DecorGfx_TOGEPI_DOLL[] = { + MAP_OBJ_GFX_TOGEPI_DOLL +}; + +const u16 DecorGfx_CYNDAQUIL_DOLL[] = { + MAP_OBJ_GFX_CYNDAQUIL_DOLL +}; + +const u16 DecorGfx_CHIKORITA_DOLL[] = { + MAP_OBJ_GFX_CHIKORITA_DOLL +}; + +const u16 DecorGfx_TOTODILE_DOLL[] = { + MAP_OBJ_GFX_TOTODILE_DOLL +}; + +const u16 DecorGfx_JIGGLYPUFF_DOLL[] = { + MAP_OBJ_GFX_JIGGLYPUFF_DOLL +}; + +const u16 DecorGfx_MEOWTH_DOLL[] = { + MAP_OBJ_GFX_MEOWTH_DOLL +}; + +const u16 DecorGfx_CLEFAIRY_DOLL[] = { + MAP_OBJ_GFX_CLEFAIRY_DOLL +}; + +const u16 DecorGfx_DITTO_DOLL[] = { + MAP_OBJ_GFX_DITTO_DOLL +}; + +const u16 DecorGfx_SMOOCHUM_DOLL[] = { + MAP_OBJ_GFX_SMOOCHUM_DOLL +}; + +const u16 DecorGfx_TREECKO_DOLL[] = { + MAP_OBJ_GFX_TREECKO_DOLL +}; + +const u16 DecorGfx_TORCHIC_DOLL[] = { + MAP_OBJ_GFX_TORCHIC_DOLL +}; + +const u16 DecorGfx_MUDKIP_DOLL[] = { + MAP_OBJ_GFX_MUDKIP_DOLL +}; + +const u16 DecorGfx_DUSKULL_DOLL[] = { + MAP_OBJ_GFX_DUSKULL_DOLL +}; + +const u16 DecorGfx_WYNAUT_DOLL[] = { + MAP_OBJ_GFX_WYNAUT_DOLL +}; + +const u16 DecorGfx_BALTOY_DOLL[] = { + MAP_OBJ_GFX_BALTOY_DOLL +}; + +const u16 DecorGfx_KECLEON_DOLL[] = { + MAP_OBJ_GFX_KECLEON_DOLL +}; + +const u16 DecorGfx_AZURILL_DOLL[] = { + MAP_OBJ_GFX_AZURILL_DOLL +}; + +const u16 DecorGfx_SKITTY_DOLL[] = { + MAP_OBJ_GFX_SKITTY_DOLL +}; + +const u16 DecorGfx_SWABLU_DOLL[] = { + MAP_OBJ_GFX_SWABLU_DOLL +}; + +const u16 DecorGfx_GULPIN_DOLL[] = { + MAP_OBJ_GFX_GULPIN_DOLL +}; + +const u16 DecorGfx_LOTAD_DOLL[] = { + MAP_OBJ_GFX_LOTAD_DOLL +}; + +const u16 DecorGfx_SEEDOT_DOLL[] = { + MAP_OBJ_GFX_SEEDOT_DOLL +}; + +const u16 DecorGfx_PIKA_CUSHION[] = { + MAP_OBJ_GFX_PIKA_CUSHION +}; + +const u16 DecorGfx_ROUND_CUSHION[] = { + MAP_OBJ_GFX_ROUND_CUSHION +}; + +const u16 DecorGfx_KISS_CUSHION[] = { + MAP_OBJ_GFX_KISS_CUSHION +}; + +const u16 DecorGfx_ZIGZAG_CUSHION[] = { + MAP_OBJ_GFX_ZIGZAG_CUSHION +}; + +const u16 DecorGfx_SPIN_CUSHION[] = { + MAP_OBJ_GFX_SPIN_CUSHION +}; + +const u16 DecorGfx_DIAMOND_CUSHION[] = { + MAP_OBJ_GFX_DIAMOND_CUSHION +}; + +const u16 DecorGfx_BALL_CUSHION[] = { + MAP_OBJ_GFX_BALL_CUSHION +}; + +const u16 DecorGfx_GRASS_CUSHION[] = { + MAP_OBJ_GFX_GRASS_CUSHION +}; + +const u16 DecorGfx_FIRE_CUSHION[] = { + MAP_OBJ_GFX_FIRE_CUSHION +}; + +const u16 DecorGfx_WATER_CUSHION[] = { + MAP_OBJ_GFX_WATER_CUSHION +}; + +const u16 DecorGfx_SNORLAX_DOLL[] = { + MAP_OBJ_GFX_BIG_SNORLAX_DOLL +}; + +const u16 DecorGfx_RHYDON_DOLL[] = { + MAP_OBJ_GFX_BIG_RHYDON_DOLL +}; + +const u16 DecorGfx_LAPRAS_DOLL[] = { + MAP_OBJ_GFX_BIG_LAPRAS_DOLL +}; + +const u16 DecorGfx_VENUSAUR_DOLL[] = { + MAP_OBJ_GFX_BIG_VENUSAUR_DOLL +}; + +const u16 DecorGfx_CHARIZARD_DOLL[] = { + MAP_OBJ_GFX_BIG_CHARIZARD_DOLL +}; + +const u16 DecorGfx_BLASTOISE_DOLL[] = { + MAP_OBJ_GFX_BIG_BLASTOISE_DOLL +}; + +const u16 DecorGfx_WAILMER_DOLL[] = { + MAP_OBJ_GFX_BIG_WAILMER_DOLL +}; + +const u16 DecorGfx_REGIROCK_DOLL[] = { + MAP_OBJ_GFX_BIG_REGIROCK_DOLL +}; + +const u16 DecorGfx_REGICE_DOLL[] = { + MAP_OBJ_GFX_BIG_REGICE_DOLL +}; + +const u16 DecorGfx_REGISTEEL_DOLL[] = { + MAP_OBJ_GFX_BIG_REGISTEEL_DOLL +}; + +#endif // GUARD_DATA_DECORATION_TILES diff --git a/include/decompress.h b/include/decompress.h index 6c925f730..c3a771893 100644 --- a/include/decompress.h +++ b/include/decompress.h @@ -8,7 +8,7 @@ void LZDecompressVram(const void *src, void *dest); u16 LoadCompressedObjectPic(const struct CompressedSpriteSheet *src); void LoadCompressedObjectPicOverrideBuffer(const struct CompressedSpriteSheet *src, void *buffer); -bool8 LoadCompressedObjectPicUsingHeap(struct CompressedSpriteSheet* src); +bool8 LoadCompressedObjectPicUsingHeap(const struct CompressedSpriteSheet* src); void LoadCompressedObjectPalette(const struct CompressedSpritePalette *src); void LoadCompressedObjectPaletteOverrideBuffer(const struct CompressedSpritePalette *a, void *buffer); diff --git a/include/decoration.h b/include/decoration.h index bbb77d127..adefb2fd1 100644 --- a/include/decoration.h +++ b/include/decoration.h @@ -125,6 +125,47 @@ enum DecoId { /*120*/ DECOR_REGISTEEL_DOLL }; +enum DecorPerm { + /* + * The nomenclature here describes collision and placement permissions, in that order. + */ + DECORPERM_SOLID_FLOOR, + DECORPERM_PASS_FLOOR, + DECORPERM_BEHIND_FLOOR, + DECORPERM_NA_WALL, + DECORPERM_SOLID_MAT +}; + +enum DecorShape { + /* + * Width-x-height + */ + DECORSHAPE_1x1, + DECORSHAPE_2x1, + DECORSHAPE_3x1, // unused + DECORSHAPE_4x2, + DECORSHAPE_2x2, + DECORSHAPE_1x2, + DECORSHAPE_1x3, // unused + DECORSHAPE_2x4, + DECORSHAPE_3x3, + DECORSHAPE_3x2 +}; + +enum DecorCat { + /* + * In which category you can find the decoration in the PC. + */ + /*0*/ DECORCAT_DESK, + /*1*/ DECORCAT_CHAIR, + /*2*/ DECORCAT_PLANT, + /*3*/ DECORCAT_ORNAMENT, + /*4*/ DECORCAT_MAT, + /*5*/ DECORCAT_POSTER, + /*6*/ DECORCAT_DOLL, + /*7*/ DECORCAT_CUSHION +}; + struct Decoration { /*0x00*/ u8 id; @@ -137,6 +178,18 @@ struct Decoration /*0x1c*/ const u16 *tiles; }; +struct DecorPCPointers +{ + /* 0x00 */ u8 *items; + /* 0x04 */ u8 *pos; + /* 0x08 */ u8 size; + /* 0x09 */ u8 isPlayerRoom; +}; + extern const struct Decoration gDecorations[]; +extern EWRAM_DATA u8 *gCurDecorInventoryItems; +extern EWRAM_DATA u8 gCurDecorationIndex; + +void sub_8126968(void); #endif //GUARD_DECORATION_H diff --git a/include/decoration_inventory.h b/include/decoration_inventory.h index 5ca345933..e1fec36ea 100644 --- a/include/decoration_inventory.h +++ b/include/decoration_inventory.h @@ -1,10 +1,20 @@ #ifndef GUARD_DECORATION_INVENTORY_H #define GUARD_DECORATION_INVENTORY_H +struct DecorationInventory { + u8 *items; + u8 size; +}; + +extern struct DecorationInventory gDecorationInventories[]; void ClearDecorationInventories(void); +s8 GetFirstEmptyDecorSlot(u8 idx); u8 CheckHasDecoration(u8); u8 DecorationAdd(u8); u8 DecorationCheckSpace(u8); s8 DecorationRemove(u8); +void CondenseDecorationCategoryN(u8); +u8 CountDecorationCategoryN(u8 idx); +u8 CountDecorations(void); #endif // GUARD_DECORATION_INVENTORY_H diff --git a/include/event_scripts.h b/include/event_scripts.h index bb0d6731b..ff02a110a 100755 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -5,6 +5,10 @@ #ifndef GUARD_EVENT_SCRIPTS_H #define GUARD_EVENT_SCRIPTS_H +extern const u8 gUnknown_0823B4E8[]; +extern const u8 gUnknown_08275D0C[]; +extern const u8 gUnknown_08275D1F[]; +extern const u8 gUnknown_08275D2E[]; extern const u8 gUnknown_082766A2[]; extern const u8 gUnknown_082766A6[]; diff --git a/include/field_map_obj.h b/include/field_map_obj.h index b18b6cfd3..038233fe6 100755 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -74,6 +74,7 @@ u8 npc_block_way(struct MapObject *, s16, s16, u32); void MoveCoords(u8, s16 *, s16 *); bool8 FieldObjectIsSpecialAnimActive(struct MapObject *); u8 FieldObjectClearAnimIfSpecialAnimFinished(struct MapObject *); +u8 GetFieldObjectIdByXYZ(u16 x, u16 y, u8 z); // Exported data declarations diff --git a/include/field_screen.h b/include/field_screen.h new file mode 100644 index 000000000..b15fdba7d --- /dev/null +++ b/include/field_screen.h @@ -0,0 +1,12 @@ +#ifndef GUARD_FIELD_SCREEN_H +#define GUARD_FIELD_SCREEN_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations +void pal_fill_black(void); +bool8 sub_80ABDFC(void); + +#endif //GUARD_FIELD_SCREEN_H diff --git a/include/fieldmap.h b/include/fieldmap.h index 3efc5e36f..06cb7cc77 100644 --- a/include/fieldmap.h +++ b/include/fieldmap.h @@ -6,11 +6,14 @@ extern struct MapCoords { int height; } gUnknown_03005DC0; +u32 MapGridGetMetatileIdAt(int, int); u32 MapGridGetMetatileBehaviorAt(int, int); void MapGridSetMetatileIdAt(int, int, u16); +void MapGridSetMetatileEntryAt(int, int, u16); void GetCameraCoords(u16*, u16*); bool8 MapGridIsImpassableAt(s16, s16); s32 GetMapBorderIdAt(s16, s16); bool32 CanCameraMoveInDirection(u8); +u16 GetBehaviorByMetatileId(u16 metatileId); #endif //GUARD_FIELDMAP_H diff --git a/include/gba/io_reg.h b/include/gba/io_reg.h index 5234e5b6c..83a2a123b 100644 --- a/include/gba/io_reg.h +++ b/include/gba/io_reg.h @@ -137,6 +137,8 @@ #define REG_OFFSET_DMA3CNT_H 0xde #define REG_OFFSET_TMCNT 0x100 +#define REG_OFFSET_TMCNT_L 0x100 +#define REG_OFFSET_TMCNT_H 0x102 #define REG_OFFSET_TM0CNT 0x100 #define REG_OFFSET_TM0CNT_L 0x100 #define REG_OFFSET_TM0CNT_H 0x102 @@ -298,6 +300,8 @@ #define REG_ADDR_DMA3CNT_H (REG_BASE + REG_OFFSET_DMA3CNT_H) #define REG_ADDR_TMCNT (REG_BASE + REG_OFFSET_TMCNT) +#define REG_ADDR_TMCNT_L (REG_BASE + REG_OFFSET_TMCNT_L) +#define REG_ADDR_TMCNT_H (REG_BASE + REG_OFFSET_TMCNT_H) #define REG_ADDR_TM0CNT (REG_BASE + REG_OFFSET_TM0CNT) #define REG_ADDR_TM0CNT_L (REG_BASE + REG_OFFSET_TM0CNT_L) #define REG_ADDR_TM0CNT_H (REG_BASE + REG_OFFSET_TM0CNT_H) @@ -458,6 +462,8 @@ #define REG_DMA3CNT_H (*(vu16 *)REG_ADDR_DMA3CNT_H) #define REG_TMCNT(n) (*(vu16 *)(REG_ADDR_TMCNT + ((n) * 4))) +#define REG_TMCNT_L(n) (*(vu16 *)(REG_ADDR_TMCNT_L + ((n) * 4))) +#define REG_TMCNT_H(n) (*(vu16 *)(REG_ADDR_TMCNT_H + ((n) * 4))) #define REG_TM0CNT (*(vu32 *)REG_ADDR_TM0CNT) #define REG_TM0CNT_L (*(vu16 *)REG_ADDR_TM0CNT_L) #define REG_TM0CNT_H (*(vu16 *)REG_ADDR_TM0CNT_H) @@ -521,6 +527,8 @@ #define DISPSTAT_HBLANK_INTR 0x0010 // H-Blank interrupt enabled #define DISPSTAT_VCOUNT_INTR 0x0020 // V-Count interrupt enabled +// BLDCNT + // SOUNDCNT_H #define SOUND_CGB_MIX_QUARTER 0x0000 #define SOUND_CGB_MIX_HALF 0x0001 diff --git a/include/gba/macro.h b/include/gba/macro.h index 0217898e8..7b6b98c06 100644 --- a/include/gba/macro.h +++ b/include/gba/macro.h @@ -86,4 +86,14 @@ dmaRegs[5]; \ } +#define IntrEnable(flags) \ +{ \ + u16 imeTemp; \ + \ + imeTemp = REG_IME; \ + REG_IME = 0; \ + REG_IE |= flags; \ + REG_IME = imeTemp; \ +} \ + #endif // GUARD_GBA_MACRO_H diff --git a/include/gba/types.h b/include/gba/types.h index fd8a20a4c..e9a380023 100644 --- a/include/gba/types.h +++ b/include/gba/types.h @@ -39,18 +39,18 @@ struct PlttData struct OamData { /*0x00*/ u32 y:8; - /*0x01*/ u32 affineMode:2; - u32 objMode:2; - u32 mosaic:1; - u32 bpp:1; - u32 shape:2; + /*0x01*/ u32 affineMode:2; // 0x1, 0x2 -> 0x4 + u32 objMode:2; // 0x4, 0x8 -> 0xC + u32 mosaic:1; // 0x10 + u32 bpp:1; // 0x20 + u32 shape:2; // 0x40, 0x80 -> 0xC0 /*0x02*/ u32 x:9; u32 matrixNum:5; // bits 3/4 are h-flip/v-flip if not in affine mode u32 size:2; - /*0x04*/ u16 tileNum:10; - u16 priority:2; + /*0x04*/ u16 tileNum:10; // 0x33F + u16 priority:2; // 0x400, 0x800 -> 0xC00 u16 paletteNum:4; /*0x06*/ u16 affineParam; }; diff --git a/include/global.h b/include/global.h index 58a0d79dc..8860b4ae3 100644 --- a/include/global.h +++ b/include/global.h @@ -12,8 +12,10 @@ #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); +void *memset(void *, int, size_t); +void *memcpy(void *, const void *, size_t); +int strcmp(const char *s1, const char *s2); +char* strcpy(char *dst0, const char *src0); #endif // __APPLE__ #define ARRAY_COUNT(array) (sizeof(array) / sizeof((array)[0])) @@ -500,6 +502,16 @@ typedef union // TODO u8 id; } LilycoveLady; +struct WaldaPhrase +{ + u16 field_0; + u16 field_2; + u8 text[16]; + u8 iconId; + u8 patternId; + bool8 patternUnlocked; +}; + struct SaveBlock1 { /*0x00*/ struct Coords16 pos; @@ -586,7 +598,7 @@ struct SaveBlock1 /*0x3B24*/ u8 seen2[52]; /*0x3B58*/ LilycoveLady lilycoveLady; /*0x3B88*/ u8 filler_3B88[0x1E8]; - /*0x3D70*/ u8 babyPhrase[24]; // TODO: convert to a struct + /*0x3D70*/ struct WaldaPhrase waldaPhrase; // sizeof: 0x3D88 }; diff --git a/include/graphics.h b/include/graphics.h new file mode 100644 index 000000000..c50fdef3f --- /dev/null +++ b/include/graphics.h @@ -0,0 +1,95 @@ +// +// Created by scott on 10/21/2017. +// + +#ifndef GUARD_GRAPHICS_H +#define GUARD_GRAPHICS_H + +extern const u8 gItemIcon_QuestionMark[]; +extern const u8 gItemIconPalette_QuestionMark[]; +extern const u8 gUnknown_08DB7AA0[]; +extern const u8 gUnknown_08DB7B34[]; +extern const u8 gUnknown_08DB7B5C[]; +extern const u8 gUnknown_08DB7BEC[]; +extern const u8 gUnknown_08DB7C08[]; +extern const u8 gUnknown_08DB7CE8[]; +extern const u8 gUnknown_08DB7D08[]; +extern const u8 gUnknown_08DB7DCC[]; +extern const u8 gUnknown_08DB7DF4[]; +extern const u8 gUnknown_08DB7EA0[]; +extern const u8 gUnknown_08DB7EC4[]; +extern const u8 gUnknown_08DB7F60[]; +extern const u8 gUnknown_08DB7F7C[]; +extern const u8 gUnknown_08DB8070[]; +extern const u8 gUnknown_08DB808C[]; +extern const u8 gUnknown_08DB8138[]; +extern const u8 gUnknown_08DB8160[]; +extern const u8 gUnknown_08DB8218[]; +extern const u8 gUnknown_08DB823C[]; +extern const u8 gUnknown_08DB8300[]; +extern const u8 gUnknown_08DB8328[]; +extern const u8 gUnknown_08DB8430[]; +extern const u8 gUnknown_08DB8458[]; +extern const u8 gUnknown_08DB8528[]; +extern const u8 gUnknown_08DB854C[]; +extern const u8 gUnknown_08DB862C[]; +extern const u8 gUnknown_08DB8654[]; +extern const u8 gUnknown_08DB86C4[]; +extern const u8 gUnknown_08DB86E0[]; +extern const u8 gUnknown_08DB8750[]; +extern const u8 gUnknown_08DB876C[]; +extern const u8 gUnknown_08DB87DC[]; +extern const u8 gUnknown_08DB87F8[]; +extern const u8 gUnknown_08DB88D8[]; +extern const u8 gUnknown_08DB8900[]; +extern const u8 gUnknown_08DB89E0[]; +extern const u8 gUnknown_08DB8A08[]; +extern const u8 gUnknown_08DB8A68[]; +extern const u8 gUnknown_08DB8A84[]; +extern const u8 gUnknown_08DB8B40[]; +extern const u8 gUnknown_08DB8B68[]; +extern const u8 gUnknown_08DB8C40[]; +extern const u8 gUnknown_08DB8C5C[]; +extern const u8 gUnknown_08DB8CF4[]; +extern const u8 gUnknown_08DB8D18[]; +extern const u8 gUnknown_08DB8DB0[]; +extern const u8 gUnknown_08DB8DD4[]; +extern const u8 gUnknown_08DB8E80[]; +extern const u8 gUnknown_08DB8EA0[]; +extern const u8 gUnknown_08DB8F58[]; +extern const u8 gUnknown_08DB8F7C[]; +extern const u8 gUnknown_08DB9038[]; +extern const u8 gUnknown_08DB9058[]; +extern const u8 gUnknown_08DB9130[]; +extern const u8 gUnknown_08DB9154[]; +extern const u8 gUnknown_08DB9218[]; +extern const u8 gUnknown_08DB9234[]; +extern const u8 gUnknown_08DB92FC[]; +extern const u8 gUnknown_08DB931C[]; +extern const u8 gUnknown_08DB93E8[]; +extern const u8 gUnknown_08DB940C[]; +extern const u8 gUnknown_08DB94CC[]; +extern const u8 gUnknown_08DB94E8[]; +extern const u8 gUnknown_08DB95AC[]; +extern const u8 gUnknown_08DB95D0[]; +extern const u8 gUnknown_08DB96C4[]; +extern const u8 gUnknown_08DB96EC[]; +extern const u8 gUnknown_08DB97F4[]; +extern const u8 gUnknown_08DB981C[]; +extern const u8 gUnknown_08DB9908[]; +extern const u8 gUnknown_08DB9930[]; +extern const u8 gUnknown_08DB9A54[]; +extern const u8 gUnknown_08DB9A7C[]; +extern const u8 gUnknown_08DB9B7C[]; +extern const u8 gUnknown_08DB9BA4[]; +extern const u8 gUnknown_08DB9CB0[]; +extern const u8 gUnknown_08DB9CD8[]; +extern const u8 gUnknown_08DB9DAC[]; +extern const u8 gUnknown_08DB9DD4[]; +extern const u8 gUnknown_08DB9EE4[]; +extern const u8 gUnknown_08DB9F08[]; +extern const u8 gUnknown_08DB9FFC[]; +extern const u8 gUnknown_08DBA020[]; +extern const u8 gUnknown_08DBA12C[]; + +#endif //GUARD_GRAPHICS_H diff --git a/include/international_string_util.h b/include/international_string_util.h index 0eb12a535..9d9735a52 100644 --- a/include/international_string_util.h +++ b/include/international_string_util.h @@ -1,13 +1,23 @@ -#ifndef GUARD_international_string_util_H -#define GUARD_international_string_util_H +#ifndef GUARD_INTERNATIONAL_STRING_UTIL_H +#define GUARD_INTERNATIONAL_STRING_UTIL_H -// Exported type declarations +#include "menu.h" -// Exported RAM declarations - -// Exported ROM declarations - -void TVShowConvertInternationalString(void *dest, const void *src, u8 language); +void sub_81DB52C(const u8 *src); +void TVShowConvertInternationalString(u8 *dest, const u8 *src, u8 language); +s32 GetStringCenterAlignXOffset(s32 fontId, const u8 *str, s32 totalWidth); +s32 GetStringRightAlignXOffset(s32 fontId, const u8 *str, s32 totalWidth); +s32 GetStringCenterAlignXOffsetWithLetterSpacing(s32 fontId, const u8 *str, s32 totalWidth, s32 letterSpacing); +s32 GetStringWidthDifference(s32 fontId, const u8 *str, s32 totalWidth, s32 letterSpacing); +s32 GetMaxWidthInMenuTable(const struct MenuAction *str, s32 arg1); +s32 sub_81DB3D8(const struct MenuAction *str, u8* arg1, s32 arg2); +// sub_81DB41C +// sub_81DB468 +// sub_81DB494 +// sub_81DB4DC +// sub_81DB554 +// sub_81DB5AC u32 sub_81DB604(const u8 *); +// sub_81DB620 -#endif //GUARD_international_string_util_H +#endif // GUARD_INTERNATIONAL_STRING_UTIL_H diff --git a/include/item_icon.h b/include/item_icon.h new file mode 100644 index 000000000..a43b72f39 --- /dev/null +++ b/include/item_icon.h @@ -0,0 +1,17 @@ +// +// Created by scott on 10/20/2017. +// + +#ifndef GUARD_ITEM_ICON_H +#define GUARD_ITEM_ICON_H + +extern EWRAM_DATA void *gUnknown_0203CEBC; +extern EWRAM_DATA void *gUnknown_0203CEC0; + +extern const struct SpriteTemplate gUnknown_08614FF4; + +bool8 AllocItemIconTemporaryBuffers(void); +void CopyItemIconPicTo4x4Buffer(void *src, void *dest); +void FreeItemIconTemporaryBuffers(void); + +#endif //GUARD_ITEM_ICON_H diff --git a/include/librfu.h b/include/librfu.h new file mode 100644 index 000000000..dbc8a41a6 --- /dev/null +++ b/include/librfu.h @@ -0,0 +1,108 @@ +#include "main.h" + +enum +{ + RFU_RESET = 0x10, + RFU_LINK_STATUS, + RFU_VERSION_STATUS, + RFU_SYSTEM_STATUS, + RFU_SLOT_STATUS, + RFU_CONFIG_STATUS, + RFU_GAME_CONFIG, + RFU_SYSTEM_CONFIG, + RFU_UNK18, + RFU_SC_START, + RFU_SC_POLLING, + RFU_SC_END, + RFU_SP_START, + RFU_SP_POLLING, + RFU_SP_END, + RFU_CP_START, + RFU_CP_POLLING, + RFU_CP_END, + RFU_UNK22, + RFU_UNK23, + RFU_DATA_TX, + RFU_DATA_TX_AND_CHANGE, + RFU_DATA_RX, + RFU_MS_CHANGE, + RFU_DATA_READY_AND_CHANGE, + RFU_DISCONNECTED_AND_CHANGE, + RFU_UNK2A, + RFU_UNK2B, + RFU_UNK2C, + RFU_UNK2D, + RFU_UNK2E, + RFU_UNK2F, + RFU_DISCONNECT, + RFU_TEST_MODE, + RFU_CPR_START, + RFU_CPR_POLLING, + RFU_CPR_END, + RFU_UNK35, + RFU_UNK36, + RFU_RESUME_RETRANSMIT_AND_CHANGE, + RFU_UNK38, + RFU_UNK39, + RFU_UNK3A, + RFU_UNK3B, + RFU_UNK3C, + RFU_STOP_MODE, //3D +}; + +struct RfuPacket8 +{ + u8 data[0x74]; +}; + +struct RfuPacket32 +{ + u32 command; + u32 data[0x1C]; +}; + +union RfuPacket +{ + struct RfuPacket32 rfuPacket32; + struct RfuPacket8 rfuPacket8; +}; + +struct RfuStruct +{ + vs32 unk_0; + u8 txParams; + u8 unk_5; + u8 activeCommand; + u8 unk_7; + u8 unk_8; + u8 unk_9; + u8 timerSelect; + u8 unk_b; + int timerState; + vu8 timerActive; + u8 unk_11; + vu16 unk_12; + vu8 msMode; + u8 unk_15; + u8 unk_16; + u8 unk_17; + void (*callbackM)(); + void (*callbackS)(); + u32 callbackID; + union RfuPacket *txPacket; + union RfuPacket *rxPacket; + vu8 unk_2c; + u8 padding[3]; +}; + +struct RfuIntrStruct +{ + u8 rxPacketAlloc[0x74]; + u8 txPacketAlloc[0x74]; + u8 block1[0x960]; + u8 block2[0x30]; +}; + +extern struct RfuStruct *gRfuState; + +void STWI_init_all(struct RfuIntrStruct *interruptStruct, IntrFunc *interrupt, bool8 copyInterruptToRam); diff --git a/include/link.h b/include/link.h index 5f5654e4d..b8835ce04 100644 --- a/include/link.h +++ b/include/link.h @@ -141,6 +141,7 @@ extern u8 gShouldAdvanceLinkState; extern struct LinkPlayer gLinkPlayers[]; extern u16 word_3002910[]; extern bool8 gReceivedRemoteLinkPlayers; +extern bool8 gLinkVSyncDisabled; void Task_DestroySelf(u8); void OpenLink(void); @@ -184,5 +185,11 @@ bool8 sub_800A520(void); bool8 sub_8010500(void); void sub_800DFB4(u8, u8); void sub_800ADF8(void); +void sub_800B488(void); +void sub_8009734(void); +void sub_800A620(void); +void sub_8011BD0(void); +u8 sub_800ABAC(void); +u8 sub_800ABBC(void); #endif // GUARD_LINK_H diff --git a/include/list_menu.h b/include/list_menu.h new file mode 100644 index 000000000..93005e482 --- /dev/null +++ b/include/list_menu.h @@ -0,0 +1,54 @@ +#ifndef GUARD_LIST_MENU_H +#define GUARD_LIST_MENU_H + +// Exported type declarations + +// Exported RAM declarations + +struct ListMenuItem { + const u8 *unk_00; + s32 unk_04; +}; + +struct ListMenu; + +struct ListMenuTemplate { + struct ListMenuItem *unk_00; + void (* unk_04)(u32, bool8, struct ListMenu *); + void (* unk_08)(u8, s32, u8); + u16 unk_0c; + u16 unk_0e; + u8 unk_10; + u8 unk_11; + u8 unk_12; + u8 unk_13; + u32 unk_14_0:4; + u32 unk_14_4:4; + u32 unk_15_0:4; + u32 unk_15_4:4; + u32 unk_16_0:1; + u32 unk_16_1:6; + u32 unk_16_7:1; + u32 unk_17_0:6; +}; + +struct ListMenu { + struct ListMenuTemplate _template; + u16 scrollOffset; + u16 selectedRow; + u8 unk_1C; + u8 unk_1D; + u8 unk_1E; + u8 unk_1F; +}; + +extern struct ListMenuTemplate gUnknown_03006310; + +// Exported ROM declarations + +u8 ListMenuInit(struct ListMenuTemplate *template, u16 a1, u16 a2); +s32 ListMenuHandleInput(u8 id); +void get_coro_args_x18_x1A(u8 a0, u16 *a1, u16 *a2); +void sub_81AE6C8(u8 a0, u16 *a1, u16 *a2); + +#endif //GUARD_LIST_MENU_H diff --git a/include/mail_data.h b/include/mail_data.h new file mode 100644 index 000000000..bf6540bad --- /dev/null +++ b/include/mail_data.h @@ -0,0 +1,12 @@ +#ifndef GUARD_MAIL_DATA_H +#define GUARD_MAIL_DATA_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations + +u16 sub_80D45E8(u16, u16 *); + +#endif //GUARD_MAIL_DATA_H diff --git a/include/map_object_constants.h b/include/map_object_constants.h new file mode 100644 index 000000000..79482b54a --- /dev/null +++ b/include/map_object_constants.h @@ -0,0 +1,239 @@ +#ifndef GUARD_MAP_OBJECT_CONSTANTS_H +#define GUARD_MAP_OBJECT_CONSTANTS_H + +enum +{ + MAP_OBJ_GFX_BRENDAN_NORMAL, + MAP_OBJ_GFX_BRENDAN_MACH_BIKE, + MAP_OBJ_GFX_BRENDAN_SURFING, + MAP_OBJ_GFX_BRENDAN_FIELD_MOVE, + MAP_OBJ_GFX_QUINTY_PLUMP, + MAP_OBJ_GFX_LITTLE_BOY_1, + MAP_OBJ_GFX_LITTLE_GIRL_1, + MAP_OBJ_GFX_BOY_1, + MAP_OBJ_GFX_GIRL_1, + MAP_OBJ_GFX_BOY_2, + MAP_OBJ_GFX_GIRL_2, + MAP_OBJ_GFX_LITTLE_BOY_2, + MAP_OBJ_GFX_LITTLE_GIRL_2, + MAP_OBJ_GFX_BOY_3, + MAP_OBJ_GFX_GIRL_3, + MAP_OBJ_GFX_BOY_4, + MAP_OBJ_GFX_WOMAN_1, + MAP_OBJ_GFX_FAT_MAN, + MAP_OBJ_GFX_WOMAN_2, + MAP_OBJ_GFX_MAN_1, + MAP_OBJ_GFX_WOMAN_3, + MAP_OBJ_GFX_OLD_MAN_1, + MAP_OBJ_GFX_OLD_WOMAN_1, + MAP_OBJ_GFX_MAN_2, + MAP_OBJ_GFX_WOMAN_4, + MAP_OBJ_GFX_MAN_3, + MAP_OBJ_GFX_WOMAN_5, + MAP_OBJ_GFX_COOK, + MAP_OBJ_GFX_WOMAN_6, + MAP_OBJ_GFX_OLD_MAN_2, + MAP_OBJ_GFX_OLD_WOMAN_2, + MAP_OBJ_GFX_CAMPER, + MAP_OBJ_GFX_PICNICKER, + MAP_OBJ_GFX_MAN_4, + MAP_OBJ_GFX_WOMAN_7, + MAP_OBJ_GFX_YOUNGSTER, + MAP_OBJ_GFX_BUG_CATCHER, + MAP_OBJ_GFX_PSYCHIC_M, + MAP_OBJ_GFX_SCHOOL_KID_M, + MAP_OBJ_GFX_MANIAC, + MAP_OBJ_GFX_HEX_MANIAC, + MAP_OBJ_GFX_WOMAN_8, + MAP_OBJ_GFX_SWIMMER_M, + MAP_OBJ_GFX_SWIMMER_F, + MAP_OBJ_GFX_BLACK_BELT, + MAP_OBJ_GFX_BEAUTY, + MAP_OBJ_GFX_SCIENTIST_1, + MAP_OBJ_GFX_LASS, + MAP_OBJ_GFX_GENTLEMAN, + MAP_OBJ_GFX_SAILOR, + MAP_OBJ_GFX_FISHERMAN, + MAP_OBJ_GFX_RUNNING_TRIATHLETE_M, + MAP_OBJ_GFX_RUNNING_TRIATHLETE_F, + MAP_OBJ_GFX_TUBER_F, + MAP_OBJ_GFX_TUBER_M, + MAP_OBJ_GFX_HIKER, + MAP_OBJ_GFX_CYCLING_TRIATHLETE_M, + MAP_OBJ_GFX_CYCLING_TRIATHLETE_F, + MAP_OBJ_GFX_NURSE, + MAP_OBJ_GFX_ITEM_BALL, + MAP_OBJ_GFX_BERRY_TREE, + MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES, + MAP_OBJ_GFX_BERRY_TREE_LATE_STAGES, + MAP_OBJ_GFX_BRENDAN_ACRO_BIKE, + MAP_OBJ_GFX_PROF_BIRCH, + MAP_OBJ_GFX_MAN_5, + MAP_OBJ_GFX_MAN_6, + MAP_OBJ_GFX_REPORTER_M, + MAP_OBJ_GFX_REPORTER_F, + MAP_OBJ_GFX_BARD, + MAP_OBJ_GFX_HIPSTER, + MAP_OBJ_GFX_TRADER, + MAP_OBJ_GFX_STORYTELLER, + MAP_OBJ_GFX_GIDDY, + MAP_OBJ_GFX_UNUSED_MAUVILLE_OLD_MAN_1, + MAP_OBJ_GFX_UNUSED_MAUVILLE_OLD_MAN_2, + MAP_OBJ_GFX_UNUSED_NATU_DOLL, + MAP_OBJ_GFX_UNUSED_MAGNEMITE_DOLL, + MAP_OBJ_GFX_UNUSED_SQUIRTLE_DOLL, + MAP_OBJ_GFX_UNUSED_WOOPER_DOLL, + MAP_OBJ_GFX_UNUSED_PIKACHU_DOLL, + MAP_OBJ_GFX_UNUSED_PORYGON2_DOLL, + MAP_OBJ_GFX_CUTTABLE_TREE, + MAP_OBJ_GFX_MART_EMPLOYEE, + MAP_OBJ_GFX_ROOFTOP_SALE_WOMAN, + MAP_OBJ_GFX_TEALA, + MAP_OBJ_GFX_BREAKABLE_ROCK, + MAP_OBJ_GFX_PUSHABLE_BOULDER, + MAP_OBJ_GFX_MR_BRINEYS_BOAT, + MAP_OBJ_GFX_MAY_NORMAL, + MAP_OBJ_GFX_MAY_MACH_BIKE, + MAP_OBJ_GFX_MAY_ACRO_BIKE, + MAP_OBJ_GFX_MAY_SURFING, + MAP_OBJ_GFX_MAY_FIELD_MOVE, + MAP_OBJ_GFX_TRUCK, + MAP_OBJ_GFX_MACHOKE_CARRYING_BOX, + MAP_OBJ_GFX_MACHOKE_FACING_AWAY, + MAP_OBJ_GFX_BIRCHS_BAG, + MAP_OBJ_GFX_POOCHYENA, + MAP_OBJ_GFX_ARTIST, + MAP_OBJ_GFX_RIVAL_BRENDAN_NORMAL, + MAP_OBJ_GFX_RIVAL_BRENDAN_MACH_BIKE, + MAP_OBJ_GFX_RIVAL_BRENDAN_ACRO_BIKE, + MAP_OBJ_GFX_RIVAL_BRENDAN_SURFING, + MAP_OBJ_GFX_RIVAL_BRENDAN_FIELD_MOVE, + MAP_OBJ_GFX_RIVAL_MAY_NORMAL, + MAP_OBJ_GFX_RIVAL_MAY_MACH_BIKE, + MAP_OBJ_GFX_RIVAL_MAY_ACRO_BIKE, + MAP_OBJ_GFX_RIVAL_MAY_SURFING, + MAP_OBJ_GFX_RIVAL_MAY_FIELD_MOVE, + MAP_OBJ_GFX_CAMERAMAN, + MAP_OBJ_GFX_BRENDAN_UNDERWATER, + MAP_OBJ_GFX_MAY_UNDERWATER, + MAP_OBJ_GFX_MOVING_BOX, + MAP_OBJ_GFX_CABLE_CAR, + MAP_OBJ_GFX_SCIENTIST_2, + MAP_OBJ_GFX_MAN_7, + MAP_OBJ_GFX_AQUA_MEMBER_M, + MAP_OBJ_GFX_AQUA_MEMBER_F, + MAP_OBJ_GFX_MAGMA_MEMBER_M, + MAP_OBJ_GFX_MAGMA_MEMBER_F, + MAP_OBJ_GFX_SIDNEY, + MAP_OBJ_GFX_PHOEBE, + MAP_OBJ_GFX_GLACIA, + MAP_OBJ_GFX_DRAKE, + MAP_OBJ_GFX_ROXANNE, + MAP_OBJ_GFX_BRAWLY, + MAP_OBJ_GFX_WATTSON, + MAP_OBJ_GFX_FLANNERY, + MAP_OBJ_GFX_NORMAN, + MAP_OBJ_GFX_WINONA, + MAP_OBJ_GFX_LIZA, + MAP_OBJ_GFX_TATE, + MAP_OBJ_GFX_WALLACE, + MAP_OBJ_GFX_STEVEN, + MAP_OBJ_GFX_WALLY, + MAP_OBJ_GFX_LITTLE_BOY_3, + MAP_OBJ_GFX_BRENDAN_FISHING, + MAP_OBJ_GFX_MAY_FISHING, + MAP_OBJ_GFX_HOT_SPRINGS_OLD_WOMAN, + MAP_OBJ_GFX_SS_TIDAL, + MAP_OBJ_GFX_SUBMARINE_SHADOW, + MAP_OBJ_GFX_PICHU_DOLL, + MAP_OBJ_GFX_PIKACHU_DOLL, + MAP_OBJ_GFX_MARILL_DOLL, + MAP_OBJ_GFX_TOGEPI_DOLL, + MAP_OBJ_GFX_CYNDAQUIL_DOLL, + MAP_OBJ_GFX_CHIKORITA_DOLL, + MAP_OBJ_GFX_TOTODILE_DOLL, + MAP_OBJ_GFX_JIGGLYPUFF_DOLL, + MAP_OBJ_GFX_MEOWTH_DOLL, + MAP_OBJ_GFX_CLEFAIRY_DOLL, + MAP_OBJ_GFX_DITTO_DOLL, + MAP_OBJ_GFX_SMOOCHUM_DOLL, + MAP_OBJ_GFX_TREECKO_DOLL, + MAP_OBJ_GFX_TORCHIC_DOLL, + MAP_OBJ_GFX_MUDKIP_DOLL, + MAP_OBJ_GFX_DUSKULL_DOLL, + MAP_OBJ_GFX_WYNAUT_DOLL, + MAP_OBJ_GFX_BALTOY_DOLL, + MAP_OBJ_GFX_KECLEON_DOLL, + MAP_OBJ_GFX_AZURILL_DOLL, + MAP_OBJ_GFX_SKITTY_DOLL, + MAP_OBJ_GFX_SWABLU_DOLL, + MAP_OBJ_GFX_GULPIN_DOLL, + MAP_OBJ_GFX_LOTAD_DOLL, + MAP_OBJ_GFX_SEEDOT_DOLL, + MAP_OBJ_GFX_PIKA_CUSHION, + MAP_OBJ_GFX_ROUND_CUSHION, + MAP_OBJ_GFX_KISS_CUSHION, + MAP_OBJ_GFX_ZIGZAG_CUSHION, + MAP_OBJ_GFX_SPIN_CUSHION, + MAP_OBJ_GFX_DIAMOND_CUSHION, + MAP_OBJ_GFX_BALL_CUSHION, + MAP_OBJ_GFX_GRASS_CUSHION, + MAP_OBJ_GFX_FIRE_CUSHION, + MAP_OBJ_GFX_WATER_CUSHION, + MAP_OBJ_GFX_BIG_SNORLAX_DOLL, + MAP_OBJ_GFX_BIG_RHYDON_DOLL, + MAP_OBJ_GFX_BIG_LAPRAS_DOLL, + MAP_OBJ_GFX_BIG_VENUSAUR_DOLL, + MAP_OBJ_GFX_BIG_CHARIZARD_DOLL, + MAP_OBJ_GFX_BIG_BLASTOISE_DOLL, + MAP_OBJ_GFX_BIG_WAILMER_DOLL, + MAP_OBJ_GFX_BIG_REGIROCK_DOLL, + MAP_OBJ_GFX_BIG_REGICE_DOLL, + MAP_OBJ_GFX_BIG_REGISTEEL_DOLL, + MAP_OBJ_GFX_LATIAS, + MAP_OBJ_GFX_LATIOS, + MAP_OBJ_GFX_BOY_5, + MAP_OBJ_GFX_CONTEST_JUDGE, + MAP_OBJ_GFX_BRENDAN_WATERING, + MAP_OBJ_GFX_MAY_WATERING, + MAP_OBJ_GFX_BRENDAN_DECORATING, + MAP_OBJ_GFX_MAY_DECORATING, + MAP_OBJ_GFX_ARCHIE, + MAP_OBJ_GFX_MAXIE, + MAP_OBJ_GFX_KYOGRE_1, + MAP_OBJ_GFX_GROUDON_1, + MAP_OBJ_GFX_FOSSIL, + MAP_OBJ_GFX_REGIROCK, + MAP_OBJ_GFX_REGICE, + MAP_OBJ_GFX_REGISTEEL, + MAP_OBJ_GFX_SKITTY, + MAP_OBJ_GFX_KECLEON_1, + MAP_OBJ_GFX_KYOGRE_2, + MAP_OBJ_GFX_GROUDON_2, + MAP_OBJ_GFX_RAYQUAZA, + MAP_OBJ_GFX_ZIGZAGOON, + MAP_OBJ_GFX_PIKACHU, + MAP_OBJ_GFX_AZUMARILL, + MAP_OBJ_GFX_WINGULL, + MAP_OBJ_GFX_KECLEON_2, + MAP_OBJ_GFX_TUBER_M_SWIMMING, + MAP_OBJ_GFX_AZURILL, + MAP_OBJ_GFX_MOM, + MAP_OBJ_GFX_LINK_BRENDAN, + MAP_OBJ_GFX_LINK_MAY, +}; + +enum { + SHADOW_SIZE_S, + SHADOW_SIZE_M, + SHADOW_SIZE_L, + SHADOW_SIZE_XL +}; + +enum { + TRACKS_NONE, + TRACKS_FOOT, + TRACKS_BIKE_TIRE +}; + +#endif // GUARD_MAP_OBJECT_CONSTANTS_H diff --git a/include/menu.h b/include/menu.h index 66ac73e03..927c3d3d4 100644 --- a/include/menu.h +++ b/include/menu.h @@ -5,20 +5,28 @@ struct MenuAction { - const u8 *text; - u8 (*func)(); -}; - -struct MenuAction2 -{ const u8 *text; - void (*func)(u8); + union { + void (*void_u8)(u8); + u8 (*u8_void)(void); + } func; }; 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); -void sub_8198A50(struct WindowTemplate*, u8, u8, u8, u8, u8, u8, u16); // returns something but it isn't used, fix when menu.s is decomp'd +void schedule_bg_copy_tilemap_to_vram(u8 bgNum); +void PrintMenuTable(u8 idx, u8 nstrs, const struct MenuAction *strs); +void InitMenuInUpperLeftCornerPlaySoundWhenAPressed(u8 idx, u8 nstrs,u8); +u8 GetMenuCursorPos(void); +s8 ProcessMenuInput(void); +void blit_move_info_icon(u8 winId, u8 a2, u16 x, u16 y); +void reset_temp_tile_data_buffers(void); +int decompress_and_copy_tile_data_to_vram(u8 bg_id, const void *src, int size, u16 offset, u8 mode); +bool8 free_temp_tile_data_buffers_if_possible(void); +u64 sub_8198A50(struct WindowTemplate*, u8, u8, u8, u8, u8, u8, u16); // returns something but it isn't used, fix when menu.s is decomp'd +void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos); +s8 sub_8198C58(void); #endif // GUARD_MENU_H diff --git a/include/menu_helpers.h b/include/menu_helpers.h new file mode 100644 index 000000000..f083a10e2 --- /dev/null +++ b/include/menu_helpers.h @@ -0,0 +1,20 @@ +#ifndef GUARD_MENU_HELPERS_H +#define GUARD_MENU_HELPERS_H + +// Exported type declarations + +struct YesNoFuncTable { + TaskFunc yesFunc; + TaskFunc noFunc; +}; + +// Exported RAM declarations + +// Exported ROM declarations + +void sub_812225C(u16 *, u16 *, u8, u8); +void sub_8122298(u16 *, u16 *, u8, u8, u8); +void sub_8121F68(u8 taskId, const struct YesNoFuncTable *data); +bool8 sub_81221AC(void); + +#endif //GUARD_MENU_HELPERS_H diff --git a/include/menu_indicators.h b/include/menu_indicators.h new file mode 100644 index 000000000..5a3b2e5b8 --- /dev/null +++ b/include/menu_indicators.h @@ -0,0 +1,12 @@ +#ifndef GUARD_MENU_INDICATORS_H +#define GUARD_MENU_INDICATORS_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations +u8 AddScrollIndicatorArrowPairParametrized(u8, u8, u8, u8, s32, u8, u8, u16 *); +void RemoveScrollIndicatorArrowPair(u8); + +#endif //GUARD_MENU_INDICATORS_H diff --git a/include/naming_screen.h b/include/naming_screen.h index 55a8e75a3..3d69b834f 100644 --- a/include/naming_screen.h +++ b/include/naming_screen.h @@ -5,7 +5,7 @@ #define NAMING_SCREEN_BOX 1 #define NAMING_SCREEN_CAUGHT_MON 2 #define NAMING_SCREEN_3 3 -#define NAMING_SCREEN_WANDA 4 +#define NAMING_SCREEN_WALDA 4 void DoNamingScreen(u8 caseId, u8* dst, u16 monSpecies, u8 monGender, u32 monPersonality, void (*callback)(void)); diff --git a/include/new_game.h b/include/new_game.h index 060279c25..2088d1826 100644 --- a/include/new_game.h +++ b/include/new_game.h @@ -2,6 +2,7 @@ #define GUARD_NEW_GAME_H void WriteUnalignedWord(u32 var, u8 *dataPtr); +u32 ReadUnalignedWord(u8* dataPtr); void CopyUnalignedWord(u8 *copyTo, u8 *copyFrom); void InitPlayerTrainerId(void); void SetDefaultOptions(void); diff --git a/include/new_menu_helpers.h b/include/new_menu_helpers.h index 6377897d3..f588967bf 100644 --- a/include/new_menu_helpers.h +++ b/include/new_menu_helpers.h @@ -1,9 +1,16 @@ #ifndef GUARD_NEW_MENU_HELPERS_H #define GUARD_NEW_MENU_HELPERS_H +#include "text.h" +#include "task.h" + void sub_81973A4(void); void sub_81973C4(u8, u8); void sub_819746C(u8 windowId, bool8 copyToVram); void sub_81973FC(u8, u8); +u16 AddTextPrinterParametrized(u8 windowId, u8 fontId, const u8 *str, u8 speed, void ( *callback)(u16, struct TextPrinter *), u8 fgColor, u8 bgColor, u8 shadowColor); +void DisplayItemMessageOnField(u8 taskId, const u8 *src, TaskFunc callback); +void sub_8197434(u8 a0, u8 a1); +void sub_8197930(void); #endif // GUARD_NEW_MENU_HELPERS_H diff --git a/include/overworld.h b/include/overworld.h index 0475e8e8c..5ac4cad29 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -1,6 +1,8 @@ #ifndef GUARD_ROM4_H #define GUARD_ROM4_H +#include "main.h" + struct UnkPlayerStruct { u8 player_field_0; @@ -21,6 +23,7 @@ struct UCoords32 }; extern struct LinkPlayerMapObject gLinkPlayerMapObjects[4]; +extern MainCallback gFieldCallback; void IncrementGameStat(u8 index); @@ -53,6 +56,8 @@ 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); +bool32 sub_8087598(void); void c2_exit_to_overworld_1_continue_scripts_restart_music(void); +void warp_in(void); #endif //GUARD_ROM4_H diff --git a/include/player_pc.h b/include/player_pc.h new file mode 100644 index 000000000..b14d1ede3 --- /dev/null +++ b/include/player_pc.h @@ -0,0 +1,12 @@ +#ifndef GUARD_PLAYER_PC_H +#define GUARD_PLAYER_PC_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations + +void sub_816B060(u8 taskId); + +#endif //GUARD_PLAYER_PC_H diff --git a/include/pokemon.h b/include/pokemon.h index c26c28afa..4159a2f96 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -30,7 +30,7 @@ #define MON_DATA_HP_EV 26 #define MON_DATA_ATK_EV 27 #define MON_DATA_DEF_EV 28 -#define MON_DATA_SPD_EV 29 +#define MON_DATA_SPEED_EV 29 #define MON_DATA_SPATK_EV 30 #define MON_DATA_SPDEF_EV 31 #define MON_DATA_FRIENDSHIP 32 @@ -43,7 +43,7 @@ #define MON_DATA_HP_IV 39 #define MON_DATA_ATK_IV 40 #define MON_DATA_DEF_IV 41 -#define MON_DATA_SPD_IV 42 +#define MON_DATA_SPEED_IV 42 #define MON_DATA_SPATK_IV 43 #define MON_DATA_SPDEF_IV 44 #define MON_DATA_IS_EGG 45 @@ -62,7 +62,7 @@ #define MON_DATA_MAX_HP 58 #define MON_DATA_ATK 59 #define MON_DATA_DEF 60 -#define MON_DATA_SPD 61 +#define MON_DATA_SPEED 61 #define MON_DATA_SPATK 62 #define MON_DATA_SPDEF 63 #define MON_DATA_MAIL 64 @@ -87,7 +87,7 @@ #define MON_DATA_RIBBONS 83 #define MON_DATA_ATK2 84 #define MON_DATA_DEF2 85 -#define MON_DATA_SPD2 86 +#define MON_DATA_SPEED2 86 #define MON_DATA_SPATK2 87 #define MON_DATA_SPDEF2 88 diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h index b82334355..b6d21823e 100644 --- a/include/pokemon_icon.h +++ b/include/pokemon_icon.h @@ -3,5 +3,10 @@ const u8 *GetMonIconPtr(u16 speciesId, u32 personality, u32 frameNo); const u16 *GetValidMonIconPalettePtr(u16 speciesId); +u16 sub_80D2E84(u16 speciesId); +void sub_80D2F68(u16 iconId); +u8 sub_80D2D78(u16 iconId, void callback(struct Sprite *), u16 x, u16 y, u16 a4, u8 a5); +void sub_80D2FF0(u16 iconId); +void sub_80D2EF8(struct Sprite *sprite); #endif // GUARD_POKEMON_ICON_H diff --git a/include/recorded_battle.h b/include/recorded_battle.h index 65ad998e6..6b80e220f 100644 --- a/include/recorded_battle.h +++ b/include/recorded_battle.h @@ -3,6 +3,7 @@ extern u32 gRecordedBattleRngSeed; +void sub_8184DA4(u8 arg0); void sub_8185F84(void); void sub_8184E58(void); void RecordedBattle_SetBankAction(u8 bank, u8 action); @@ -15,5 +16,7 @@ u8 MoveRecordedBattleToSaveData(void); void sub_818603C(u8); void sub_8185FD0(void); void sub_8186444(void); +void sub_8185EB8(void); +u8 sub_81850DC(u8 *arg0); #endif // GUARD_RECORDED_BATTLE_H diff --git a/include/secret_base.h b/include/secret_base.h index 4f7b411da..14defff26 100644 --- a/include/secret_base.h +++ b/include/secret_base.h @@ -6,6 +6,7 @@ // Exported RAM declarations // Exported ROM declarations +void sub_80E9578(void); void sub_80E980C(void); #endif //GUARD_SECRET_BASE_H diff --git a/include/sprite.h b/include/sprite.h index a9377165e..531314079 100644 --- a/include/sprite.h +++ b/include/sprite.h @@ -251,7 +251,7 @@ void BuildOamBuffer(void); u8 CreateSprite(const struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority); u8 CreateSpriteAtEnd(const struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority); u8 CreateInvisibleSprite(void (*callback)(struct Sprite *)); -u8 CreateSpriteAndAnimate(struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority); +u8 CreateSpriteAndAnimate(const struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority); void DestroySprite(struct Sprite *sprite); void ResetOamRange(u8 a, u8 b); void LoadOam(void); diff --git a/include/strings.h b/include/strings.h index 5d1a9bba0..191b1809a 100644 --- a/include/strings.h +++ b/include/strings.h @@ -1,6 +1,13 @@ -#ifndef GUARD_strings_H -#define GUARD_strings_H +#ifndef GUARD_STRINGS_H +#define GUARD_STRINGS_H +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations + +extern const u8 gText_FromSpace[]; extern const u8 gText_Lv50[]; extern const u8 gText_OpenLevel[]; extern const u8 gText_Mom[]; @@ -29,5 +36,39 @@ extern const u8 gText_Jackpot[]; extern const u8 gText_First[]; extern const u8 gText_Second[]; extern const u8 gText_Third[]; +extern const u8 gText_NoDecorations[]; +extern const u8 gText_NoDecorationsInUse[]; +extern const u8 gText_Exit[]; +extern const u8 gText_Cancel[]; +extern const u8 gText_Color161Shadow161[]; +extern const u8 gText_GoBackPrevMenu[]; +extern const u8 gText_CantPlaceInRoom[]; +extern const u8 gText_NoMoreDecorations[]; +extern const u8 gText_NoMoreDecorations2[]; +extern const u8 gText_InUseAlready[]; +extern const u8 gText_CancelDecorating[]; +extern const u8 gText_PlaceItHere[]; +extern const u8 gText_CantBePlacedHere[]; +extern const u8 gText_DecorationReturnedToPC[]; +extern const u8 gText_StopPuttingAwayDecorations[]; +extern const u8 gText_ReturnDecorationToPC[]; +extern const u8 gText_NoDecorationHere[]; +extern const u8 gText_DecorationWillBeDiscarded[]; +extern const u8 gText_CantThrowAwayInUse[]; +extern const u8 gText_DecorationThrownAway[]; +extern const u8 gText_Desk[]; +extern const u8 gText_Chair[]; +extern const u8 gText_Plant[]; +extern const u8 gText_Ornament[]; +extern const u8 gText_Mat[]; +extern const u8 gText_Poster[]; +extern const u8 gText_PutOutSelectedDecorItem[]; +extern const u8 gText_StoreChosenDecorInPC[]; +extern const u8 gText_ThrowAwayUnwantedDecors[]; +extern const u8 gText_Doll[]; +extern const u8 gText_Cushion[]; +extern const u8 gText_Decorate[]; +extern const u8 gText_PutAway[]; +extern const u8 gText_Toss2[]; -#endif //GUARD_strings_H +#endif //GUARD_STRINGS_H diff --git a/include/tilesets.h b/include/tilesets.h new file mode 100644 index 000000000..70609c046 --- /dev/null +++ b/include/tilesets.h @@ -0,0 +1,13 @@ +#ifndef GUARD_tilesets_H +#define GUARD_tilesets_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations + +extern struct Tileset *gTilesetPointer_SecretBase; +extern struct Tileset *gTilesetPointer_SecretBaseRedCave; + +#endif //GUARD_tilesets_H diff --git a/include/trader.h b/include/trader.h new file mode 100644 index 000000000..71fd1f7c2 --- /dev/null +++ b/include/trader.h @@ -0,0 +1,11 @@ +// +// Created by scott on 10/21/2017. +// + +#ifndef GUARD_TRADER_H +#define GUARD_TRADER_H + +void sub_8133DA0(u8 taskId); +void sub_8133E1C(u8 taskId); + +#endif //GUARD_TRADER_H diff --git a/include/tv.h b/include/tv.h index 9495387ef..172754ae0 100644 --- a/include/tv.h +++ b/include/tv.h @@ -8,6 +8,7 @@ void PutPokemonTodayCaughtOnAir(void); u32 GetPlayerIDAsU32(void); bool8 GetPriceReduction(u8 newsKind); u8 GetRibbonCount(struct Pokemon *pokemon); +void TV_PutSecretBaseVisitOnTheAir(void); void sub_80EE184(void); void sub_80F14F8(TVShow *shows); size_t sub_80EF370(int value); diff --git a/include/walda_phrase.h b/include/walda_phrase.h new file mode 100644 index 000000000..3d7701123 --- /dev/null +++ b/include/walda_phrase.h @@ -0,0 +1,8 @@ +#ifndef GUARD_WALDA_PHRASE_H +#define GUARD_WALDA_PHRASE_H + +u16 TryBufferWaldaPhrase(void); +void DoWaldaNamingScreen(void); +u16 TryGetWallpaperWithWaldaPhrase(void); + +#endif // GUARD_WALDA_PHRASE_H diff --git a/ld_script.txt b/ld_script.txt index 04e394b5c..f655711dd 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -54,7 +54,7 @@ SECTIONS { asm/link.o(.text); src/rtc.o(.text); asm/main_menu.o(.text); - asm/rom3.o(.text); + src/battle_controllers.o(.text); src/decompress.o(.text); asm/battle_1.o(.text); src/battle_2.o(.text); @@ -79,7 +79,7 @@ SECTIONS { src/blend_palette.o(.text); asm/daycare.o(.text); src/egg_hatch.o(.text); - asm/battle_interface.o(.text); + src/battle_interface.o(.text); asm/smokescreen.o(.text); asm/pokeball.o(.text); src/load_save.o(.text); @@ -113,7 +113,7 @@ SECTIONS { src/tileset_anims.o(.text); src/palette.o(.text); src/sound.o(.text); - asm/battle_anim.o(.text); + src/battle_anim.o(.text); asm/rom_80A5C6C.o(.text); src/task.o(.text); src/reshow_battle_screen.o(.text); @@ -164,13 +164,13 @@ SECTIONS { asm/easy_chat.o(.text); asm/mon_markings.o(.text); asm/mauville_old_man.o(.text); - asm/mail.o(.text); + src/mail.o(.text); asm/menu_helpers.o(.text); asm/dewford_trend.o(.text); asm/heal_location.o(.text); asm/region_map.o(.text); asm/cute_sketch.o(.text); - asm/decoration.o(.text); + src/decoration.o(.text); asm/slot_machine.o(.text); asm/contest_painting.o(.text); src/battle_ai_script_commands.o(.text); @@ -204,7 +204,7 @@ SECTIONS { asm/battle_anim_815A0D4.o(.text); asm/learn_move.o(.text); asm/fldeff_softboiled.o(.text); - asm/decoration_inventory.o(.text); + src/decoration_inventory.o(.text); src/roamer.o(.text); asm/battle_tower.o(.text); asm/use_pokeblock.o(.text); @@ -223,7 +223,7 @@ SECTIONS { src/save_failed_screen.o(.text); src/braille_puzzles.o(.text); asm/pokeblock_feed.o(.text); - asm/clear_save_data_screen.o(.text); + src/clear_save_data_screen.o(.text); asm/intro_credits_graphics.o(.text); asm/evolution_graphics.o(.text); asm/bard_music.o(.text); @@ -254,15 +254,17 @@ SECTIONS { asm/fldeff_groundshake.o(.text); asm/fossil_specials.o(.text); src/berry_fix_program.o(.text); + src/pokemon_summary_screen.o(.text); asm/pokemon_summary_screen.o(.text); asm/pokenav.o(.text); asm/rayquaza_scene.o(.text); - asm/walda_phrase.o(.text); + src/walda_phrase.o(.text); asm/contest_link_81D9DE4.o(.text); asm/trainer_rematch.o(.text); asm/unk_sprite_file.o(.text); asm/unk_transition.o(.text); asm/unk_transition_2.o(.text); + src/international_string_util.o(.text); asm/international_string_util.o(.text); } =0 @@ -291,6 +293,10 @@ SECTIONS { src/agb_flash_1m.o(.text); src/agb_flash_mx.o(.text); src/siirtc.o(.text); + src/librfu_stwi.o(.text); + src/librfu_intr.o(.text); + asm/librfu_intr.o(.text); + src/librfu_rfu.o(.text); asm/librfu.o(.text); asm/libagbsyscall.o(.text); tools/agbcc/lib/libgcc.a:_call_via_rX.o(.text); @@ -339,7 +345,7 @@ SECTIONS { data/daycare.o(.rodata); src/egg_hatch.o(.rodata); data/battle_7.o(.rodata); - data/battle_interface.o(.rodata); + src/battle_interface.o(.rodata); data/pokeball.o(.rodata); data/trade.o(.rodata); data/berry_blender.o(.rodata); @@ -363,6 +369,8 @@ SECTIONS { src/palette.o(.rodata); data/fanfares.o(.rodata); data/battle_anims.o(.rodata); + src/battle_anim.o(.rodata); + data/rom_8525F58.o(.rodata); data/title_screen.o(.rodata); data/field_screen.o(.rodata); data/battle_setup.o(.rodata); @@ -400,12 +408,12 @@ SECTIONS { data/easy_chat.o(.rodata); data/mon_markings.o(.rodata); data/mauville_old_man.o(.rodata); - data/mail.o(.rodata); + src/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); + src/decoration.o(.rodata); data/slot_machine.o(.rodata); data/contest_painting.o(.rodata); src/battle_ai_script_commands.o(.rodata); @@ -437,7 +445,7 @@ SECTIONS { src/save_failed_screen.o(.rodata); data/braille_puzzles.o(.rodata); data/pokeblock_feed.o(.rodata); - data/clear_save_data_screen.o(.rodata); + src/clear_save_data_screen.o(.rodata); data/intro_credits_graphics.o(.rodata); data/evolution_graphics.o(.rodata); data/bard_music.o(.rodata); @@ -463,7 +471,7 @@ SECTIONS { data/pokemon_summary_screen.o(.rodata); data/pokenav.o(.rodata); data/rayquaza_scene.o(.rodata); - data/walda_phrase.o(.rodata); + src/walda_phrase.o(.rodata); data/trainer_rematch.o(.rodata); data/unk_sprite_file.o(.rodata); data/unk_transition.o(.rodata); diff --git a/src/battle_2.c b/src/battle_2.c index cee845c75..6b7c4063e 100644 --- a/src/battle_2.c +++ b/src/battle_2.c @@ -205,9 +205,6 @@ extern const u8 BattleScript_ActionSwitch[]; extern const u8 BattleScript_PrintFailedToRunString[]; // functions -extern void HandleLinkBattleSetup(void); // rom_3 -extern void SetUpBattleVarsAndBirchZigzagoon(void); // rom_3 -extern void sub_8032768(void); // rom_3 extern void dp12_8087EA4(void); extern void sub_80356D0(void); extern void GetFrontierTrainerName(u8* dst, u16 trainerId); // battle tower @@ -4075,7 +4072,7 @@ static void HandleTurnActionSelectionState(void) if (gBattleMons[GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON)].status2 & STATUS2_MULTIPLETURNS || gBattleMons[GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON)].status2 & STATUS2_RECHARGE) { - Emit_x32(0); + EmitCmd50(0); MarkBufferBankForExecution(gActiveBank); return; } @@ -4103,7 +4100,7 @@ static void HandleTurnActionSelectionState(void) { RecordedBattle_ClearBankAction(GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON), 3); } - Emit_x32(0); + EmitCmd50(0); MarkBufferBankForExecution(gActiveBank); return; } diff --git a/src/battle_ai_switch_items.c b/src/battle_ai_switch_items.c index 661759a98..d86be6fad 100644 --- a/src/battle_ai_switch_items.c +++ b/src/battle_ai_switch_items.c @@ -39,7 +39,7 @@ static bool8 ShouldSwitchIfPerishSong(void) && gDisableStructs[gActiveBank].perishSong1 == 0) { *(gBattleStruct->field_294 + gActiveBank) = 6; - EmitCmd_x21(1, 2, 0); + EmitCmd33(1, 2, 0); return TRUE; } @@ -121,7 +121,7 @@ static bool8 ShouldSwitchIfWonderGuard(void) { // we found a mon *(gBattleStruct->field_294 + gActiveBank) = i; - EmitCmd_x21(1, 2, 0); + EmitCmd33(1, 2, 0); return TRUE; } } @@ -221,7 +221,7 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void) { // we found a mon *(gBattleStruct->field_294 + gActiveBank) = i; - EmitCmd_x21(1, 2, 0); + EmitCmd33(1, 2, 0); return TRUE; } } @@ -241,13 +241,13 @@ static bool8 ShouldSwitchIfNaturalCure(void) if ((gUnknown_02024250[gActiveBank] == 0 || gUnknown_02024250[gActiveBank] == 0xFFFF) && Random() & 1) { *(gBattleStruct->field_294 + gActiveBank) = 6; - EmitCmd_x21(1, 2, 0); + EmitCmd33(1, 2, 0); return TRUE; } else if (gBattleMoves[gUnknown_02024250[gActiveBank]].power == 0 && Random() & 1) { *(gBattleStruct->field_294 + gActiveBank) = 6; - EmitCmd_x21(1, 2, 0); + EmitCmd33(1, 2, 0); return TRUE; } @@ -258,7 +258,7 @@ static bool8 ShouldSwitchIfNaturalCure(void) if (Random() & 1) { *(gBattleStruct->field_294 + gActiveBank) = 6; - EmitCmd_x21(1, 2, 0); + EmitCmd33(1, 2, 0); return TRUE; } @@ -426,7 +426,7 @@ static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent) if (moveFlags & MOVESTATUS_SUPEREFFECTIVE && Random() % moduloPercent == 0) { *(gBattleStruct->field_294 + gActiveBank) = i; - EmitCmd_x21(1, 2, 0); + EmitCmd33(1, 2, 0); return TRUE; } } @@ -611,7 +611,7 @@ void AI_TrySwitchOrUseItem(void) } } - EmitCmd_x21(1, 0, (gActiveBank ^ BIT_SIDE) << 8); + EmitCmd33(1, 0, (gActiveBank ^ BIT_SIDE) << 8); } #define TYPE_FORESIGHT 0xFE @@ -940,7 +940,7 @@ static bool8 ShouldUseItem(void) if (shouldUse) { - EmitCmd_x21(1, 1, 0); + EmitCmd33(1, 1, 0); *(gBattleStruct->field_C0 + (gActiveBank / 2) * 2) = item; gBattleResources->battleHistory->trainerItems[i] = 0; return shouldUse; diff --git a/src/battle_anim.c b/src/battle_anim.c new file mode 100644 index 000000000..023272017 --- /dev/null +++ b/src/battle_anim.c @@ -0,0 +1,1850 @@ +#include "global.h" +#include "battle.h" +#include "battle_anim.h" +#include "sprite.h" +#include "contest.h" +#include "m4a.h" +#include "pokemon.h" +#include "battle_interface.h" +#include "task.h" +#include "decompress.h" +#include "sound.h" +#include "dma3.h" +#include "bg.h" +#include "gpu_regs.h" +#include "palette.h" +#include "main.h" + +// sprites start at 10000 and thus must be subtracted of 10000 to account for the true index. +#define GET_TRUE_SPRITE_INDEX(i) ((i - 10000)) + +#define SCRIPT_READ_16(ptr) ((ptr)[0] | ((ptr)[1] << 8)) +#define SCRIPT_READ_32(ptr) (((ptr)[0]) + ((ptr)[1] << 8) + ((ptr)[2] << 16) + ((ptr)[3] << 24)) +#define SCRIPT_READ_PTR(ptr) ((const u8*)(SCRIPT_READ_32(ptr))) + +#define ANIM_SPRITE_INDEX_COUNT 8 + +extern u8 gBankAttacker; +extern u8 gBankTarget; +extern u16 gBattle_WIN0H; +extern u16 gBattle_WIN0V; +extern u16 gBattle_WIN1H; +extern u16 gBattle_WIN1V; +extern u16 gBattle_BG1_X; +extern u16 gBattle_BG1_Y; +extern u16 gBattle_BG2_X; +extern u16 gBattle_BG2_Y; +extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; +extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT]; +extern struct MusicPlayerInfo gMPlay_BGM; +extern struct MusicPlayerInfo gMPlay_SE1; +extern struct MusicPlayerInfo gMPlay_SE2; +extern u8 gDecompressionBuffer[]; + +extern const u16 gUnknown_082C8D64[]; +extern const u8 * const gBattleAnims_Moves[]; +extern const struct CompressedSpriteSheet gBattleAnimPicTable[]; +extern const struct CompressedSpritePalette gBattleAnimPaletteTable[]; +extern const struct BattleAnimBackground gBattleAnimBackgroundTable[]; + +extern void sub_80A8278(void); // rom_80A5C6C.s +extern void sub_80A6B30(struct UnknownAnimStruct2*); // rom_80A5C6C.s +extern void sub_80A6B90(struct UnknownAnimStruct2*, u32 arg1); // rom_80A5C6C.s +extern u8 sub_80A82E4(u8 bank); // rom_80A5C6C.s +extern u8 sub_80A5C6C(u8 bank, u8 attributeId); // rom_80A5C6C.s +extern bool8 AnimBankSpriteExists(u8 bank); // rom_80A5C6C.s +extern void sub_80A6C68(u8 arg0); // rom_80A5C6C.s +extern u8 GetAnimBankSpriteId(u8 wantedBank); // rom_80A5C6C.s +extern u8 sub_80A6D94(void); +extern u8 sub_80A8364(u8); +extern bool8 IsDoubleBattle(void); + +// this file's functions +static void ScriptCmd_loadspritegfx(void); +static void ScriptCmd_unloadspritegfx(void); +static void ScriptCmd_createsprite(void); +static void ScriptCmd_createvisualtask(void); +static void ScriptCmd_delay(void); +static void ScriptCmd_waitforvisualfinish(void); +static void ScriptCmd_hang1(void); +static void ScriptCmd_hang2(void); +static void ScriptCmd_end(void); +static void ScriptCmd_playse(void); +static void ScriptCmd_monbg(void); +static void ScriptCmd_clearmonbg(void); +static void ScriptCmd_setalpha(void); +static void ScriptCmd_blendoff(void); +static void ScriptCmd_call(void); +static void ScriptCmd_return(void); +static void ScriptCmd_setarg(void); +static void ScriptCmd_choosetwoturnanim(void); +static void ScriptCmd_jumpifmoveturn(void); +static void ScriptCmd_jump(void); +static void ScriptCmd_fadetobg(void); +static void ScriptCmd_restorebg(void); +static void ScriptCmd_waitbgfadeout(void); +static void ScriptCmd_waitbgfadein(void); +static void ScriptCmd_changebg(void); +static void ScriptCmd_playsewithpan(void); +static void ScriptCmd_setpan(void); +static void ScriptCmd_panse_1B(void); +static void ScriptCmd_loopsewithpan(void); +static void ScriptCmd_waitplaysewithpan(void); +static void ScriptCmd_setbldcnt(void); +static void ScriptCmd_createsoundtask(void); +static void ScriptCmd_waitsound(void); +static void ScriptCmd_jumpargeq(void); +static void ScriptCmd_monbg_22(void); +static void ScriptCmd_clearmonbg_23(void); +static void ScriptCmd_jumpifcontest(void); +static void ScriptCmd_fadetobgfromset(void); +static void ScriptCmd_panse_26(void); +static void ScriptCmd_panse_27(void); +static void ScriptCmd_monbgprio_28(void); +static void ScriptCmd_monbgprio_29(void); +static void ScriptCmd_monbgprio_2A(void); +static void ScriptCmd_invisible(void); +static void ScriptCmd_visible(void); +static void ScriptCmd_doublebattle_2D(void); +static void ScriptCmd_doublebattle_2E(void); +static void ScriptCmd_stopsound(void); + +static void RunAnimScriptCommand(void); +static void task_pA_ma0A_obj_to_bg_pal(u8 taskId); +static void sub_80A46A0(void); +static void sub_80A4980(u8 taskId); +static void sub_80A4BB0(u8 taskId); +static void Task_FadeToBg(u8 taskId); +static void Task_PanFromInitialToTarget(u8 taskId); +static void Task_LoopAndPlaySE(u8 taskId); +static void Task_WaitAndPlaySE(u8 taskId); +static void LoadDefaultBg(void); +static void LoadMoveBg(u16 bgId); + +// ewram +EWRAM_DATA static const u8 *sBattleAnimScriptPtr = NULL; +EWRAM_DATA static const u8 *sBattleAnimScriptRetAddr = NULL; +EWRAM_DATA void (*gAnimScriptCallback)(void) = NULL; +EWRAM_DATA static s8 gAnimFramesToWait = 0; +EWRAM_DATA bool8 gAnimScriptActive = FALSE; +EWRAM_DATA u8 gAnimVisualTaskCount = 0; +EWRAM_DATA u8 gAnimSoundTaskCount = 0; +EWRAM_DATA struct DisableStruct *gAnimDisableStructPtr = NULL; +EWRAM_DATA u32 gAnimMoveDmg = 0; +EWRAM_DATA u16 gAnimMovePower = 0; +EWRAM_DATA static u16 sAnimSpriteIndexArray[ANIM_SPRITE_INDEX_COUNT] = {0}; +EWRAM_DATA u8 gAnimFriendship = 0; +EWRAM_DATA u16 gWeatherMoveAnim = 0; +EWRAM_DATA s16 gBattleAnimArgs[ANIM_ARGS_COUNT] = {0}; +EWRAM_DATA static u16 sSoundAnimFramesToWait = 0; +EWRAM_DATA static u8 sMonAnimTaskIdArray[2] = {0}; +EWRAM_DATA u8 gAnimMoveTurn = 0; +EWRAM_DATA static u8 sAnimBackgroundFadeState = 0; +EWRAM_DATA static u16 sAnimMoveIndex = 0; // set but unused. +EWRAM_DATA u8 gAnimBankAttacker = 0; +EWRAM_DATA u8 gAnimBankTarget = 0; +EWRAM_DATA u16 gAnimSpeciesByBanks[BATTLE_BANKS_COUNT] = {0}; +EWRAM_DATA u8 gUnknown_02038440 = 0; + +// const rom data +static void (* const sScriptCmdTable[])(void) = +{ + ScriptCmd_loadspritegfx, + ScriptCmd_unloadspritegfx, + ScriptCmd_createsprite, + ScriptCmd_createvisualtask, + ScriptCmd_delay, + ScriptCmd_waitforvisualfinish, + ScriptCmd_hang1, + ScriptCmd_hang2, + ScriptCmd_end, + ScriptCmd_playse, + ScriptCmd_monbg, + ScriptCmd_clearmonbg, + ScriptCmd_setalpha, + ScriptCmd_blendoff, + ScriptCmd_call, + ScriptCmd_return, + ScriptCmd_setarg, + ScriptCmd_choosetwoturnanim, + ScriptCmd_jumpifmoveturn, + ScriptCmd_jump, + ScriptCmd_fadetobg, + ScriptCmd_restorebg, + ScriptCmd_waitbgfadeout, + ScriptCmd_waitbgfadein, + ScriptCmd_changebg, + ScriptCmd_playsewithpan, + ScriptCmd_setpan, + ScriptCmd_panse_1B, + ScriptCmd_loopsewithpan, + ScriptCmd_waitplaysewithpan, + ScriptCmd_setbldcnt, + ScriptCmd_createsoundtask, + ScriptCmd_waitsound, + ScriptCmd_jumpargeq, + ScriptCmd_monbg_22, + ScriptCmd_clearmonbg_23, + ScriptCmd_jumpifcontest, + ScriptCmd_fadetobgfromset, + ScriptCmd_panse_26, + ScriptCmd_panse_27, + ScriptCmd_monbgprio_28, + ScriptCmd_monbgprio_29, + ScriptCmd_monbgprio_2A, + ScriptCmd_invisible, + ScriptCmd_visible, + ScriptCmd_doublebattle_2D, + ScriptCmd_doublebattle_2E, + ScriptCmd_stopsound +}; + +void ClearBattleAnimationVars(void) +{ + s32 i; + + gAnimFramesToWait = 0; + gAnimScriptActive = FALSE; + gAnimVisualTaskCount = 0; + gAnimSoundTaskCount = 0; + gAnimDisableStructPtr = NULL; + gAnimMoveDmg = 0; + gAnimMovePower = 0; + gAnimFriendship = 0; + + // clear index array. + for (i = 0; i < ANIM_SPRITE_INDEX_COUNT; i++) + sAnimSpriteIndexArray[i] |= 0xFFFF; + + // clear anim args. + for (i = 0; i < ANIM_ARGS_COUNT; i++) + gBattleAnimArgs[i] = 0; + + sMonAnimTaskIdArray[0] = 0xFF; + sMonAnimTaskIdArray[1] = 0xFF; + gAnimMoveTurn = 0; + sAnimBackgroundFadeState = 0; + sAnimMoveIndex = 0; + gAnimBankAttacker = 0; + gAnimBankTarget = 0; + gUnknown_02038440 = 0; +} + +void DoMoveAnim(u16 move) +{ + gAnimBankAttacker = gBankAttacker; + gAnimBankTarget = gBankTarget; + DoBattleAnim(gBattleAnims_Moves, move, TRUE); +} + +void DoBattleAnim(const u8 *const animsTable[], u16 tableId, bool8 isMoveAnim) +{ + s32 i; + + if (!IsContest()) + { + sub_80A8278(); + UpdateOamPriorityInAllHealthboxes(0); + for (i = 0; i < BATTLE_BANKS_COUNT; i++) + { + if (GetBankSide(i) != 0) + gAnimSpeciesByBanks[i] = GetMonData(&gEnemyParty[gBattlePartyID[i]], MON_DATA_SPECIES); + else + gAnimSpeciesByBanks[i] = GetMonData(&gPlayerParty[gBattlePartyID[i]], MON_DATA_SPECIES); + } + } + else + { + for (i = 0; i < 4; i++) + gAnimSpeciesByBanks[i] = gContestResources->field_18->field_0; + } + + if (!isMoveAnim) + sAnimMoveIndex = 0; + else + sAnimMoveIndex = tableId; + + for (i = 0; i < ANIM_ARGS_COUNT; i++) + gBattleAnimArgs[i] = 0; + + sMonAnimTaskIdArray[0] = 0xFF; + sMonAnimTaskIdArray[1] = 0xFF; + sBattleAnimScriptPtr = animsTable[tableId]; + gAnimScriptActive = TRUE; + gAnimFramesToWait = 0; + gAnimScriptCallback = RunAnimScriptCommand; + + for (i = 0; i < ANIM_SPRITE_INDEX_COUNT; i++) + sAnimSpriteIndexArray[i] |= 0xFFFF; + + if (isMoveAnim) + { + for (i = 0; gUnknown_082C8D64[i] != 0xFFFF; i++) + { + if (tableId == gUnknown_082C8D64[i]) + { + m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 128); + break; + } + } + } + + gBattle_WIN0H = 0; + gBattle_WIN0V = 0; + gBattle_WIN1H = 0; + gBattle_WIN1V = 0; +} + +void DestroyAnimSprite(struct Sprite *sprite) +{ + FreeSpriteOamMatrix(sprite); + DestroySprite(sprite); + gAnimVisualTaskCount--; +} + +void DestroyAnimVisualTask(u8 taskId) +{ + DestroyTask(taskId); + gAnimVisualTaskCount--; +} + +void DestroyAnimSoundTask(u8 taskId) +{ + DestroyTask(taskId); + gAnimSoundTaskCount--; +} + +static void AddSpriteIndex(u16 index) +{ + s32 i; + + for (i = 0; i < ANIM_SPRITE_INDEX_COUNT; i++) + { + if (sAnimSpriteIndexArray[i] == 0xFFFF) + { + sAnimSpriteIndexArray[i] = index; + return; + } + } +} + +static void ClearSpriteIndex(u16 index) +{ + s32 i; + + for (i = 0; i < ANIM_SPRITE_INDEX_COUNT; i++) + { + if (sAnimSpriteIndexArray[i] == index) + { + sAnimSpriteIndexArray[i] |= 0xFFFF; + return; + } + } +} + +static void WaitAnimFrameCount(void) +{ + if (gAnimFramesToWait <= 0) + { + gAnimScriptCallback = RunAnimScriptCommand; + gAnimFramesToWait = 0; + } + else + { + gAnimFramesToWait--; + } +} + +static void RunAnimScriptCommand(void) +{ + do + { + sScriptCmdTable[sBattleAnimScriptPtr[0]](); + } while (gAnimFramesToWait == 0 && gAnimScriptActive); +} + +static void ScriptCmd_loadspritegfx(void) +{ + u16 index; + + sBattleAnimScriptPtr++; + index = SCRIPT_READ_16(sBattleAnimScriptPtr); + LoadCompressedObjectPicUsingHeap(&gBattleAnimPicTable[GET_TRUE_SPRITE_INDEX(index)]); + LoadCompressedObjectPaletteUsingHeap(&gBattleAnimPaletteTable[GET_TRUE_SPRITE_INDEX(index)]); + sBattleAnimScriptPtr += 2; + AddSpriteIndex(GET_TRUE_SPRITE_INDEX(index)); + gAnimFramesToWait = 1; + gAnimScriptCallback = WaitAnimFrameCount; +} + +static void ScriptCmd_unloadspritegfx(void) +{ + u16 index; + + sBattleAnimScriptPtr++; + index = SCRIPT_READ_16(sBattleAnimScriptPtr); + FreeSpriteTilesByTag(gBattleAnimPicTable[GET_TRUE_SPRITE_INDEX(index)].tag); + FreeSpritePaletteByTag(gBattleAnimPicTable[GET_TRUE_SPRITE_INDEX(index)].tag); + sBattleAnimScriptPtr += 2; + ClearSpriteIndex(GET_TRUE_SPRITE_INDEX(index)); +} + +static void ScriptCmd_createsprite(void) +{ + s32 i; + const struct SpriteTemplate *template; + u8 argVar; + u8 argsCount; + s16 subpriority; + + sBattleAnimScriptPtr++; + template = (const struct SpriteTemplate *)(SCRIPT_READ_32(sBattleAnimScriptPtr)); + sBattleAnimScriptPtr += 4; + + argVar = sBattleAnimScriptPtr[0]; + sBattleAnimScriptPtr++; + + argsCount = sBattleAnimScriptPtr[0]; + sBattleAnimScriptPtr++; + for (i = 0; i < argsCount; i++) + { + gBattleAnimArgs[i] = SCRIPT_READ_16(sBattleAnimScriptPtr); + sBattleAnimScriptPtr += 2; + } + + if (argVar & 0x80) + { + argVar ^= 0x80; + if (argVar >= 0x40) + argVar -= 0x40; + else + argVar *= -1; + + subpriority = sub_80A82E4(gAnimBankTarget) + (s8)(argVar); + } + else + { + if (argVar >= 0x40) + argVar -= 0x40; + else + argVar *= -1; + + subpriority = sub_80A82E4(gAnimBankAttacker) + (s8)(argVar); + } + + if (subpriority < 3) + subpriority = 3; + + CreateSpriteAndAnimate(template, sub_80A5C6C(gAnimBankTarget, 2), sub_80A5C6C(gAnimBankTarget, 3), subpriority); + gAnimVisualTaskCount++; +} + +static void ScriptCmd_createvisualtask(void) +{ + TaskFunc taskFunc; + u8 taskPriority; + u8 taskId; + u8 numArgs; + s32 i; + + sBattleAnimScriptPtr++; + + taskFunc = (TaskFunc)SCRIPT_READ_32(sBattleAnimScriptPtr); + sBattleAnimScriptPtr += 4; + + taskPriority = sBattleAnimScriptPtr[0]; + sBattleAnimScriptPtr++; + + numArgs = sBattleAnimScriptPtr[0]; + sBattleAnimScriptPtr++; + + for (i = 0; i < numArgs; i++) + { + gBattleAnimArgs[i] = SCRIPT_READ_16(sBattleAnimScriptPtr); + sBattleAnimScriptPtr += 2; + } + + taskId = CreateTask(taskFunc, taskPriority); + taskFunc(taskId); + gAnimVisualTaskCount++; +} + +static void ScriptCmd_delay(void) +{ + sBattleAnimScriptPtr++; + gAnimFramesToWait = sBattleAnimScriptPtr[0]; + if (gAnimFramesToWait == 0) + gAnimFramesToWait = -1; + sBattleAnimScriptPtr++; + gAnimScriptCallback = WaitAnimFrameCount; +} + +// wait for visual tasks to finish. +static void ScriptCmd_waitforvisualfinish(void) +{ + if (gAnimVisualTaskCount == 0) + { + sBattleAnimScriptPtr++; + gAnimFramesToWait = 0; + } + else + { + gAnimFramesToWait = 1; + } +} + +static void ScriptCmd_hang1(void) +{ +} + +static void ScriptCmd_hang2(void) +{ +} + +static void ScriptCmd_end(void) +{ + s32 i; + bool32 continuousAnim = FALSE; + + // keep waiting as long as there is animations to be done. + if (gAnimVisualTaskCount != 0 || gAnimSoundTaskCount != 0 + || sMonAnimTaskIdArray[0] != 0xFF || sMonAnimTaskIdArray[1] != 0xFF) + { + sSoundAnimFramesToWait = 0; + gAnimFramesToWait = 1; + return; + } + + // finish the sound effects. + if (IsSEPlaying()) + { + if (++sSoundAnimFramesToWait <= 90) // wait 90 frames, then halt the sound effect. + { + gAnimFramesToWait = 1; + return; + } + else + { + m4aMPlayStop(&gMPlay_SE1); + m4aMPlayStop(&gMPlay_SE2); + } + } + + // the SE has halted, so set the SE Frame Counter to 0 and continue. + sSoundAnimFramesToWait = 0; + + for (i = 0; i < ANIM_SPRITE_INDEX_COUNT; i++) + { + if (sAnimSpriteIndexArray[i] != 0xFFFF) + { + FreeSpriteTilesByTag(gBattleAnimPicTable[sAnimSpriteIndexArray[i]].tag); + FreeSpritePaletteByTag(gBattleAnimPicTable[sAnimSpriteIndexArray[i]].tag); + sAnimSpriteIndexArray[i] |= 0xFFFF; // set terminator. + } + } + + if (!continuousAnim) // may have been used for debug? + { + m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 256); + if (!IsContest()) + { + sub_80A8278(); + UpdateOamPriorityInAllHealthboxes(1); + } + gAnimScriptActive = FALSE; + } +} + +static void ScriptCmd_playse(void) +{ + sBattleAnimScriptPtr++; + PlaySE(SCRIPT_READ_16(sBattleAnimScriptPtr)); + sBattleAnimScriptPtr += 2; +} + +#define t1_MONBG_BANK 0 +#define t1_MON_IN_BG2 1 +#define t1_CREATE_ANOTHER_TASK 2 +#define t1_IS_SECONDMON_BG 3 + +#define t2_BANK_SPRITE_ID 0 +#define t2_MON_IN_BG2 5 +#define t2_MONBG_BANK 6 + +static void sub_80A40F4(u8 taskId) +{ + u8 newTaskId; + + s16 *selfData = gTasks[taskId].data; + u8 bankSpriteId = gBankSpriteIds[selfData[t1_MONBG_BANK]]; + gSprites[bankSpriteId].invisible = 1; + + if (!selfData[t1_CREATE_ANOTHER_TASK]) + { + DestroyAnimVisualTask(taskId); + return; + } + + newTaskId = CreateTask(task_pA_ma0A_obj_to_bg_pal, 10); + gTasks[newTaskId].data[t2_BANK_SPRITE_ID] = bankSpriteId; + gTasks[newTaskId].data[1] = gSprites[bankSpriteId].pos1.x + gSprites[bankSpriteId].pos2.x; + gTasks[newTaskId].data[2] = gSprites[bankSpriteId].pos1.y + gSprites[bankSpriteId].pos2.y; + + if (!selfData[t1_MON_IN_BG2]) + { + gTasks[newTaskId].data[3] = gBattle_BG1_X; + gTasks[newTaskId].data[4] = gBattle_BG1_Y; + } + else + { + gTasks[newTaskId].data[3] = gBattle_BG2_X; + gTasks[newTaskId].data[4] = gBattle_BG2_Y; + } + + gTasks[newTaskId].data[t2_MON_IN_BG2] = selfData[t1_MON_IN_BG2]; + gTasks[newTaskId].data[t2_MONBG_BANK] = selfData[t1_MONBG_BANK]; + sMonAnimTaskIdArray[selfData[t1_IS_SECONDMON_BG]] = newTaskId; + DestroyAnimVisualTask(taskId); +} + +static void ScriptCmd_monbg(void) +{ + bool8 toBG_2; + u8 taskId; + u8 bank; + u8 animBank; + + sBattleAnimScriptPtr++; + + animBank = sBattleAnimScriptPtr[0]; + if (animBank & ANIM_BANK_TARGET) + bank = gAnimBankTarget; + else + bank = gAnimBankAttacker; + + if (IsAnimBankSpriteVisible(bank)) + { + u8 identity = GetBankIdentity(bank); + if (identity == IDENTITY_OPPONENT_MON1 || identity == IDENTITY_PLAYER_MON2 || IsContest()) + toBG_2 = FALSE; + else + toBG_2 = TRUE; + + sub_80A438C(bank, toBG_2, FALSE); + taskId = CreateTask(sub_80A40F4, 10); + gAnimVisualTaskCount++; + gTasks[taskId].data[t1_MONBG_BANK] = bank; + gTasks[taskId].data[t1_MON_IN_BG2] = toBG_2; + gTasks[taskId].data[t1_CREATE_ANOTHER_TASK] = TRUE; + gTasks[taskId].data[t1_IS_SECONDMON_BG] = 0; + + } + + bank ^= BIT_MON; + if (IsAnimBankSpriteVisible(bank)) + { + u8 identity = GetBankIdentity(bank); + if (identity == IDENTITY_OPPONENT_MON1 || identity == IDENTITY_PLAYER_MON2 || IsContest()) + toBG_2 = FALSE; + else + toBG_2 = TRUE; + + sub_80A438C(bank, toBG_2, FALSE); + taskId = CreateTask(sub_80A40F4, 10); + gAnimVisualTaskCount++; + gTasks[taskId].data[0] = bank; + gTasks[taskId].data[1] = toBG_2; + gTasks[taskId].data[t1_CREATE_ANOTHER_TASK] = TRUE; + gTasks[taskId].data[t1_IS_SECONDMON_BG] = 1; + } + + sBattleAnimScriptPtr++; + gAnimFramesToWait = 1; + gAnimScriptCallback = WaitAnimFrameCount; +} + +bool8 IsAnimBankSpriteVisible(u8 bank) +{ + if (IsContest()) + { + if (bank == gAnimBankAttacker) + return TRUE; + else + return FALSE; + } + if (!AnimBankSpriteExists(bank)) + return FALSE; + if (IsContest()) + return TRUE; // this line wont ever be reached. + if (!gBattleSpritesDataPtr->bankData[bank].invisible || !gSprites[gBankSpriteIds[bank]].invisible) + return TRUE; + + return FALSE; +} + +void sub_80A438C(u8 bank, bool8 toBG_2, bool8 setSpriteInvisible) +{ + struct UnknownAnimStruct2 unknownStruct; + u8 bankSpriteId; + + if (!toBG_2) + { + u8 bankIdentity; + + if (IsContest() == TRUE) + { + RequestDma3Fill(0, (void*)(VRAM + 0x8000), 0x2000, 1); + RequestDma3Fill(0xFF, (void*)(VRAM + 0xF000), 0x1000, 0); + } + else + { + RequestDma3Fill(0, (void*)(VRAM + 0x4000), 0x2000, 1); + RequestDma3Fill(0xFF, (void*)(VRAM + 0xe000), 0x1000, 0); + } + + sub_80A6B30(&unknownStruct); + CpuFill16(0, unknownStruct.unk0, 0x1000); + CpuFill16(0xFF, unknownStruct.unk4, 0x800); + + SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 2); + SetAnimBgAttribute(1, BG_ANIM_SCREEN_SIZE, 1); + SetAnimBgAttribute(1, BG_ANIM_AREA_OVERFLOW_MODE, 0); + + bankSpriteId = gBankSpriteIds[bank]; + + gBattle_BG1_X = -(gSprites[bankSpriteId].pos1.x + gSprites[bankSpriteId].pos2.x) + 0x20; + if (IsContest() && IsSpeciesNotUnown(gContestResources->field_18->field_0)) + gBattle_BG1_X--; + + gBattle_BG1_Y = -(gSprites[bankSpriteId].pos1.y + gSprites[bankSpriteId].pos2.y) + 0x20; + if (setSpriteInvisible) + gSprites[gBankSpriteIds[bank]].invisible = 1; + + SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X); + SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y); + + LoadPalette(&gPlttBufferUnfaded[0x100 + bank * 16], unknownStruct.unk8 * 16, 0x20); + CpuCopy32(&gPlttBufferUnfaded[0x100 + bank * 16], (void*)(BG_PLTT + unknownStruct.unk8 * 32), 0x20); + + if (IsContest()) + bankIdentity = 0; + else + bankIdentity = GetBankIdentity(bank); + + sub_8118FBC(1, 0, 0, bankIdentity, unknownStruct.unk8, unknownStruct.unk0, unknownStruct.unk4, unknownStruct.unkA); + + if (IsContest()) + sub_80A46A0(); + } + else + { + RequestDma3Fill(0, (void*)(VRAM + 0x6000), 0x2000, 1); + RequestDma3Fill(0, (void*)(VRAM + 0xF000), 0x1000, 1); + sub_80A6B90(&unknownStruct, 2); + CpuFill16(0, unknownStruct.unk0 + 0x1000, 0x1000); + CpuFill16(0, unknownStruct.unk4 + 0x400, 0x800); + SetAnimBgAttribute(2, BG_ANIM_PRIORITY, 2); + SetAnimBgAttribute(2, BG_ANIM_SCREEN_SIZE, 1); + SetAnimBgAttribute(2, BG_ANIM_AREA_OVERFLOW_MODE, 0); + + bankSpriteId = gBankSpriteIds[bank]; + + gBattle_BG2_X = -(gSprites[bankSpriteId].pos1.x + gSprites[bankSpriteId].pos2.x) + 0x20; + gBattle_BG2_Y = -(gSprites[bankSpriteId].pos1.y + gSprites[bankSpriteId].pos2.y) + 0x20; + + if (setSpriteInvisible) + gSprites[gBankSpriteIds[bank]].invisible = 1; + + SetGpuReg(REG_OFFSET_BG2HOFS, gBattle_BG2_X); + SetGpuReg(REG_OFFSET_BG2VOFS, gBattle_BG2_Y); + + LoadPalette(&gPlttBufferUnfaded[0x100 + bank * 16], 0x90, 0x20); + CpuCopy32(&gPlttBufferUnfaded[0x100 + bank * 16], (void*)(BG_PLTT + 0x120), 0x20); + + sub_8118FBC(2, 0, 0, GetBankIdentity(bank), unknownStruct.unk8, unknownStruct.unk0 + 0x1000, unknownStruct.unk4 + 0x400, unknownStruct.unkA); + } +} + +static void sub_80A46A0(void) +{ + s32 i, j; + struct UnknownAnimStruct2 unknownStruct; + u16 *ptr; + + if (IsSpeciesNotUnown(gContestResources->field_18->field_0)) + { + sub_80A6B30(&unknownStruct); + ptr = unknownStruct.unk4; + for (i = 0; i < 8; i++) + { + for (j = 0; j < 4; j++) + { + u16 temp = ptr[j + i * 32]; + + ptr[j + i * 32] = ptr[7 - j + i * 32]; + ptr[7 - j + i * 32] = temp; + } + } + for (i = 0; i < 8; i++) + { + for (j = 0; j < 8; j++) + ptr[j + i * 32] ^= 0x400; + } + } +} + +void sub_80A4720(u16 a, u16 *b, u32 c, u8 d) +{ + s32 i, j; + s32 var; + + if (d == 0) + var = 32; + else + var = 64; + a <<= 12; + for (i = 0; i < var; i++) + { + for (j = 0; j < 32; j++) + b[j + i * 32] = ((b[j + i * 32] & 0xFFF) | a) + c; + } +} + +void sub_80A477C(bool8 to_BG2) +{ + struct UnknownAnimStruct2 unknownStruct; + sub_80A6B30(&unknownStruct); + + if (!to_BG2 || IsContest()) + { + sub_80A6C68(1); + gBattle_BG1_X = 0; + gBattle_BG1_Y = 0; + } + else + { + sub_80A6C68(2); + gBattle_BG2_X = 0; + gBattle_BG2_Y = 0; + } +} + +static void task_pA_ma0A_obj_to_bg_pal(u8 taskId) +{ + u8 spriteId, palIndex; + s16 x, y; + struct UnknownAnimStruct2 unknownStruct; + + spriteId = gTasks[taskId].data[0]; + palIndex = gTasks[taskId].data[6]; + sub_80A6B30(&unknownStruct); + x = gTasks[taskId].data[1] - (gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x); + y = gTasks[taskId].data[2] - (gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y); + + if (gTasks[taskId].data[5] == 0) + { + u16 *src; + u16 *dst; + + gBattle_BG1_X = x + gTasks[taskId].data[3]; + gBattle_BG1_Y = y + gTasks[taskId].data[4]; + src = gPlttBufferFaded + 0x100 + palIndex * 16; + dst = gPlttBufferFaded + 0x100 + unknownStruct.unk8 * 16 - 256; + CpuCopy32(src, dst, 0x20); + } + else + { + u16 *src; + u16 *dst; + + gBattle_BG2_X = x + gTasks[taskId].data[3]; + gBattle_BG2_Y = y + gTasks[taskId].data[4]; + src = gPlttBufferFaded + 0x100 + palIndex * 16; + dst = gPlttBufferFaded + 0x100 - 112; + CpuCopy32(src, dst, 0x20); + } +} + +static void ScriptCmd_clearmonbg(void) +{ + u8 animBankId; + u8 bank; + u8 taskId; + + sBattleAnimScriptPtr++; + animBankId = sBattleAnimScriptPtr[0]; + + if (animBankId == ANIM_BANK_ATTACKER) + animBankId = ANIM_BANK_ATK_PARTNER; + else if (animBankId == ANIM_BANK_TARGET) + animBankId = ANIM_BANK_DEF_PARTNER; + + if (animBankId == ANIM_BANK_ATTACKER || animBankId == ANIM_BANK_ATK_PARTNER) + bank = gAnimBankAttacker; + else + bank = gAnimBankTarget; + + if (sMonAnimTaskIdArray[0] != 0xFF) + gSprites[gBankSpriteIds[bank]].invisible = 0; + if (animBankId > 1 && sMonAnimTaskIdArray[1] != 0xFF) + gSprites[gBankSpriteIds[bank ^ BIT_MON]].invisible = 0; + else + animBankId = 0; + + taskId = CreateTask(sub_80A4980, 5); + gTasks[taskId].data[0] = animBankId; + gTasks[taskId].data[2] = bank; + + sBattleAnimScriptPtr++; +} + +static void sub_80A4980(u8 taskId) +{ + gTasks[taskId].data[1]++; + if (gTasks[taskId].data[1] != 1) + { + u8 to_BG2; + u8 identity = GetBankIdentity(gTasks[taskId].data[2]); + if (identity == IDENTITY_OPPONENT_MON1 || identity == IDENTITY_PLAYER_MON2 || IsContest()) + to_BG2 = FALSE; + else + to_BG2 = TRUE; + + if (sMonAnimTaskIdArray[0] != 0xFF) + { + sub_80A477C(to_BG2); + DestroyTask(sMonAnimTaskIdArray[0]); + sMonAnimTaskIdArray[0] = 0xFF; + } + if (gTasks[taskId].data[0] > 1) + { + sub_80A477C(to_BG2 ^ 1); + DestroyTask(sMonAnimTaskIdArray[1]); + sMonAnimTaskIdArray[1] = 0xFF; + } + DestroyTask(taskId); + } +} + +static void ScriptCmd_monbg_22(void) +{ + bool8 toBG_2; + u8 bank; + u8 animBankId; + + sBattleAnimScriptPtr++; + + animBankId = sBattleAnimScriptPtr[0]; + + if (animBankId == ANIM_BANK_ATTACKER) + animBankId = ANIM_BANK_ATK_PARTNER; + else if (animBankId == ANIM_BANK_TARGET) + animBankId = ANIM_BANK_DEF_PARTNER; + + if (animBankId == ANIM_BANK_ATTACKER || animBankId == ANIM_BANK_ATK_PARTNER) + bank = gAnimBankAttacker; + else + bank = gAnimBankTarget; + + if (IsAnimBankSpriteVisible(bank)) + { + u8 identity = GetBankIdentity(bank); + if (identity == IDENTITY_OPPONENT_MON1 || identity == IDENTITY_PLAYER_MON2 || IsContest()) + toBG_2 = FALSE; + else + toBG_2 = TRUE; + + sub_80A438C(bank, toBG_2, FALSE); + } + + bank ^= BIT_MON; + if (animBankId > 1 && IsAnimBankSpriteVisible(bank)) + { + u8 identity = GetBankIdentity(bank); + if (identity == IDENTITY_OPPONENT_MON1 || identity == IDENTITY_PLAYER_MON2 || IsContest()) + toBG_2 = FALSE; + else + toBG_2 = TRUE; + + sub_80A438C(bank, toBG_2, FALSE); + } + + sBattleAnimScriptPtr++; +} + +static void ScriptCmd_clearmonbg_23(void) +{ + u8 animBankId; + u8 bank; + u8 taskId; + + sBattleAnimScriptPtr++; + animBankId = sBattleAnimScriptPtr[0]; + + if (animBankId == ANIM_BANK_ATTACKER) + animBankId = ANIM_BANK_ATK_PARTNER; + else if (animBankId == ANIM_BANK_TARGET) + animBankId = ANIM_BANK_DEF_PARTNER; + + if (animBankId == ANIM_BANK_ATTACKER || animBankId == ANIM_BANK_ATK_PARTNER) + bank = gAnimBankAttacker; + else + bank = gAnimBankTarget; + + if (IsAnimBankSpriteVisible(bank)) + gSprites[gBankSpriteIds[bank]].invisible = 0; + if (animBankId > 1 && IsAnimBankSpriteVisible(bank ^ BIT_MON)) + gSprites[gBankSpriteIds[bank ^ BIT_MON]].invisible = 0; + else + animBankId = 0; + + taskId = CreateTask(sub_80A4BB0, 5); + gTasks[taskId].data[0] = animBankId; + gTasks[taskId].data[2] = bank; + + sBattleAnimScriptPtr++; +} + +static void sub_80A4BB0(u8 taskId) +{ + gTasks[taskId].data[1]++; + if (gTasks[taskId].data[1] != 1) + { + bool8 toBG_2; + u8 bank = gTasks[taskId].data[2]; + u8 identity = GetBankIdentity(bank); + if (identity == IDENTITY_OPPONENT_MON1 || identity == IDENTITY_PLAYER_MON2 || IsContest()) + toBG_2 = FALSE; + else + toBG_2 = TRUE; + + if (IsAnimBankSpriteVisible(bank)) + sub_80A477C(toBG_2); + if (gTasks[taskId].data[0] > 1 && IsAnimBankSpriteVisible(bank ^ BIT_MON)) + sub_80A477C(toBG_2 ^ 1); + + DestroyTask(taskId); + } +} + +#undef t1_MONBG_BANK +#undef t1_MON_IN_BG2 +#undef t1_CREATE_ANOTHER_TASK +#undef t1_IS_SECONDMON_BG + +#undef t2_BANK_SPRITE_ID +#undef t2_MON_IN_BG2 +#undef t2_MONBG_BANK + +static void ScriptCmd_setalpha(void) +{ + u16 half1, half2; + + sBattleAnimScriptPtr++; + half1 = *(sBattleAnimScriptPtr++); + half2 = *(sBattleAnimScriptPtr++) << 8; + SetGpuReg(REG_OFFSET_BLDCNT, 0x3F40); + SetGpuReg(REG_OFFSET_BLDALPHA, half1 | half2); +} + +static void ScriptCmd_setbldcnt(void) +{ + u16 half1, half2; + + sBattleAnimScriptPtr++; + half1 = *(sBattleAnimScriptPtr++); + half2 = *(sBattleAnimScriptPtr++) << 8; + SetGpuReg(REG_OFFSET_BLDCNT, half1 | half2); +} + +static void ScriptCmd_blendoff(void) +{ + sBattleAnimScriptPtr++; + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, 0); +} + +static void ScriptCmd_call(void) +{ + sBattleAnimScriptPtr++; + sBattleAnimScriptRetAddr = sBattleAnimScriptPtr + 4; + sBattleAnimScriptPtr = SCRIPT_READ_PTR(sBattleAnimScriptPtr); +} + +static void ScriptCmd_return(void) +{ + sBattleAnimScriptPtr = sBattleAnimScriptRetAddr; +} + +static void ScriptCmd_setarg(void) +{ + const u8 *addr = sBattleAnimScriptPtr; + u16 value; + u8 argId; + + sBattleAnimScriptPtr++; + argId = sBattleAnimScriptPtr[0]; + sBattleAnimScriptPtr++; + value = SCRIPT_READ_16(sBattleAnimScriptPtr); + sBattleAnimScriptPtr = addr + 4; + gBattleAnimArgs[argId] = value; +} + +static void ScriptCmd_choosetwoturnanim(void) +{ + sBattleAnimScriptPtr++; + if (gAnimMoveTurn & 1) + sBattleAnimScriptPtr += 4; + sBattleAnimScriptPtr = SCRIPT_READ_PTR(sBattleAnimScriptPtr); +} + +static void ScriptCmd_jumpifmoveturn(void) +{ + u8 toCheck; + sBattleAnimScriptPtr++; + toCheck = sBattleAnimScriptPtr[0]; + sBattleAnimScriptPtr++; + + if (toCheck == gAnimMoveTurn) + sBattleAnimScriptPtr = SCRIPT_READ_PTR(sBattleAnimScriptPtr); + else + sBattleAnimScriptPtr += 4; +} + +static void ScriptCmd_jump(void) +{ + sBattleAnimScriptPtr++; + sBattleAnimScriptPtr = SCRIPT_READ_PTR(sBattleAnimScriptPtr); +} + +// Uses of this function that rely on a TRUE return are expecting inBattle to not be ticked as defined in contest behavior. As a result, if misused, this function cannot reliably discern between field and contest status and could result in undefined behavior. +bool8 IsContest(void) +{ + if (!gMain.inBattle) + return TRUE; + else + return FALSE; +} + +#define tBackgroundId data[0] +#define tState data[10] + +static void ScriptCmd_fadetobg(void) +{ + u8 backgroundId; + u8 taskId; + + sBattleAnimScriptPtr++; + backgroundId = sBattleAnimScriptPtr[0]; + sBattleAnimScriptPtr++; + taskId = CreateTask(Task_FadeToBg, 5); + gTasks[taskId].tBackgroundId = backgroundId; + sAnimBackgroundFadeState = 1; +} + +static void ScriptCmd_fadetobgfromset(void) +{ + u8 bg1, bg2, bg3; + u8 taskId; + + sBattleAnimScriptPtr++; + bg1 = sBattleAnimScriptPtr[0]; + bg2 = sBattleAnimScriptPtr[1]; + bg3 = sBattleAnimScriptPtr[2]; + sBattleAnimScriptPtr += 3; + taskId = CreateTask(Task_FadeToBg, 5); + + if (IsContest()) + gTasks[taskId].tBackgroundId = bg3; + else if (GetBankSide(gAnimBankTarget) == SIDE_PLAYER) + gTasks[taskId].tBackgroundId = bg2; + else + gTasks[taskId].tBackgroundId = bg1; + + sAnimBackgroundFadeState = 1; +} + +static void Task_FadeToBg(u8 taskId) +{ + if (gTasks[taskId].tState == 0) + { + BeginHardwarePaletteFade(0xE8, 0, 0, 16, 0); + gTasks[taskId].tState++; + return; + } + if (gPaletteFade.active) + return; + if (gTasks[taskId].tState == 1) + { + gTasks[taskId].tState++; + sAnimBackgroundFadeState = 2; + } + else if (gTasks[taskId].tState == 2) + { + s16 bgId = gTasks[taskId].tBackgroundId; + + if (bgId == -1) + LoadDefaultBg(); + else + LoadMoveBg(bgId); + + BeginHardwarePaletteFade(0xE8, 0, 16, 0, 1); + gTasks[taskId].tState++; + return; + } + if (gPaletteFade.active) + return; + if (gTasks[taskId].tState == 3) + { + DestroyTask(taskId); + sAnimBackgroundFadeState = 0; + } +} + +static void LoadMoveBg(u16 bgId) +{ + if (IsContest()) + { + const void *tilemap = gBattleAnimBackgroundTable[bgId].tilemap; + void *dmaSrc; + void *dmaDest; + + LZDecompressWram(tilemap, gDecompressionBuffer); + sub_80A4720(sub_80A6D94(), (void*)(gDecompressionBuffer), 0x100, 0); + dmaSrc = gDecompressionBuffer; + dmaDest = (void *)(VRAM + 0xD000); + DmaCopy32(3, dmaSrc, dmaDest, 0x800); + LZDecompressVram(gBattleAnimBackgroundTable[bgId].image, (void *)(VRAM + 0x2000)); + LoadCompressedPalette(gBattleAnimBackgroundTable[bgId].palette, sub_80A6D94() * 16, 32); + } + else + { + LZDecompressVram(gBattleAnimBackgroundTable[bgId].tilemap, (void *)(VRAM + 0xD000)); + LZDecompressVram(gBattleAnimBackgroundTable[bgId].image, (void *)(VRAM + 0x8000)); + LoadCompressedPalette(gBattleAnimBackgroundTable[bgId].palette, 32, 32); + } +} + +static void LoadDefaultBg(void) +{ + if (IsContest()) + LoadContestBgAfterMoveAnim(); + else + DrawMainBattleBackground(); +} + +static void ScriptCmd_restorebg(void) +{ + u8 taskId; + + sBattleAnimScriptPtr++; + taskId = CreateTask(Task_FadeToBg, 5); + gTasks[taskId].tBackgroundId = -1; + sAnimBackgroundFadeState = 1; +} + +#undef tBackgroundId +#undef tState + +static void ScriptCmd_waitbgfadeout(void) +{ + if (sAnimBackgroundFadeState == 2) + { + sBattleAnimScriptPtr++; + gAnimFramesToWait = 0; + } + else + { + gAnimFramesToWait = 1; + } +} + +static void ScriptCmd_waitbgfadein(void) +{ + if (sAnimBackgroundFadeState == 0) + { + sBattleAnimScriptPtr++; + gAnimFramesToWait = 0; + } + else + { + gAnimFramesToWait = 1; + } +} + +static void ScriptCmd_changebg(void) +{ + sBattleAnimScriptPtr++; + LoadMoveBg(sBattleAnimScriptPtr[0]); + sBattleAnimScriptPtr++; +} + +s8 BattleAnimAdjustPanning(s8 pan) +{ + if (!IsContest() && gBattleSpritesDataPtr->healthBoxesData[gAnimBankAttacker].flag_x10) + { + if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) + pan = PAN_SIDE_OPPONENT; + else + pan = PAN_SIDE_PLAYER; + } + else if (IsContest()) + { + if (gAnimBankAttacker != gAnimBankTarget || gAnimBankAttacker != 2 || pan != PAN_SIDE_OPPONENT) + pan *= -1; + } + else if (GetBankSide(gAnimBankAttacker) == SIDE_PLAYER) + { + if (GetBankSide(gAnimBankTarget) == SIDE_PLAYER) + { + if (pan == PAN_SIDE_OPPONENT) + pan = PAN_SIDE_PLAYER; + else if (pan != PAN_SIDE_PLAYER) + pan *= -1; + } + } + else if (GetBankSide(gAnimBankTarget) == SIDE_OPPONENT) + { + if (pan == PAN_SIDE_PLAYER) + pan = PAN_SIDE_OPPONENT; + } + else + { + pan *= -1; + } + + if (pan > PAN_SIDE_OPPONENT) + pan = PAN_SIDE_OPPONENT; + else if (pan < PAN_SIDE_PLAYER) + pan = PAN_SIDE_PLAYER; + + return pan; +} + +s8 BattleAnimAdjustPanning2(s8 pan) +{ + if (!IsContest() && gBattleSpritesDataPtr->healthBoxesData[gAnimBankAttacker].flag_x10) + { + if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) + pan = PAN_SIDE_OPPONENT; + else + pan = PAN_SIDE_PLAYER; + } + else + { + if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER || IsContest()) + pan = -pan; + } + return pan; +} + +s16 sub_80A52EC(s16 a) +{ + s16 var = a; + + if (var > 63) + var = 63; + else if (var < -64) + var = -64; + + return var; +} + +s16 CalculatePanIncrement(s16 sourcePan, s16 targetPan, s16 incrementPan) +{ + s16 ret; + + if (sourcePan < targetPan) + ret = ((incrementPan < 0) ? -incrementPan : incrementPan); + else if (sourcePan > targetPan) + ret = -((incrementPan < 0) ? -incrementPan : incrementPan); + else + ret = 0; + + return ret; +} + +static void ScriptCmd_playsewithpan(void) +{ + u16 songId; + s8 pan; + + sBattleAnimScriptPtr++; + songId = SCRIPT_READ_16(sBattleAnimScriptPtr); + pan = sBattleAnimScriptPtr[2]; + PlaySE12WithPanning(songId, BattleAnimAdjustPanning(pan)); + sBattleAnimScriptPtr += 3; +} + +static void ScriptCmd_setpan(void) +{ + s8 pan; + + sBattleAnimScriptPtr++; + pan = sBattleAnimScriptPtr[0]; + SE12PanpotControl(BattleAnimAdjustPanning(pan)); + sBattleAnimScriptPtr++; +} + +#define tInitialPan data[0] +#define tTargetPan data[1] +#define tIncrementPan data[2] +#define tFramesToWait data[3] +#define tCurrentPan data[4] +#define tFrameCounter data[8] + +static void ScriptCmd_panse_1B(void) +{ + u16 songNum; + s8 currentPanArg, incrementPan, incrementPanArg, currentPan, targetPan; + u8 framesToWait; + u8 taskId; + + sBattleAnimScriptPtr++; + songNum = SCRIPT_READ_16(sBattleAnimScriptPtr); + currentPanArg = sBattleAnimScriptPtr[2]; + incrementPan = sBattleAnimScriptPtr[3]; + incrementPanArg = sBattleAnimScriptPtr[4]; + framesToWait = sBattleAnimScriptPtr[5]; + + currentPan = BattleAnimAdjustPanning(currentPanArg); + targetPan = BattleAnimAdjustPanning(incrementPan); + incrementPan = CalculatePanIncrement(currentPan, targetPan, incrementPanArg); + taskId = CreateTask(Task_PanFromInitialToTarget, 1); + gTasks[taskId].tInitialPan = currentPan; + gTasks[taskId].tTargetPan = targetPan; + gTasks[taskId].tIncrementPan = incrementPan; + gTasks[taskId].tFramesToWait = framesToWait; + gTasks[taskId].tCurrentPan = currentPan; + + PlaySE12WithPanning(songNum, currentPan); + + gAnimSoundTaskCount++; + sBattleAnimScriptPtr += 6; +} + +void Task_PanFromInitialToTarget(u8 taskId) +{ + bool32 destroyTask = FALSE; + if (gTasks[taskId].tFrameCounter++ >= gTasks[taskId].tFramesToWait) + { + s16 pan; + s16 initialPanning, targetPanning, currentPan, incrementPan; + + gTasks[taskId].tFrameCounter = 0; + initialPanning = gTasks[taskId].tInitialPan; + targetPanning = gTasks[taskId].tTargetPan; + currentPan = gTasks[taskId].tCurrentPan; + incrementPan = gTasks[taskId].tIncrementPan; + pan = currentPan + incrementPan; + gTasks[taskId].tCurrentPan = pan; + + if (incrementPan == 0) // If we're not incrementing, just cancel the task immediately + { + destroyTask = TRUE; + } + else if (initialPanning < targetPanning) // Panning increasing + { + if (pan >= targetPanning) // Target reached + destroyTask = TRUE; + } + else // Panning decreasing + { + if (pan <= targetPanning) // Target reached + destroyTask = TRUE; + } + + if (destroyTask) + { + pan = targetPanning; + DestroyTask(taskId); + gAnimSoundTaskCount--; + } + + SE12PanpotControl(pan); + } +} + +static void ScriptCmd_panse_26(void) +{ + u16 songId; + s8 currentPan, targetPan, incrementPan; + u8 framesToWait; + u8 taskId; + + sBattleAnimScriptPtr++; + songId = SCRIPT_READ_16(sBattleAnimScriptPtr); + currentPan = sBattleAnimScriptPtr[2]; + targetPan = sBattleAnimScriptPtr[3]; + incrementPan = sBattleAnimScriptPtr[4]; + framesToWait = sBattleAnimScriptPtr[5]; + + taskId = CreateTask(Task_PanFromInitialToTarget, 1); + gTasks[taskId].tInitialPan = currentPan; + gTasks[taskId].tTargetPan = targetPan; + gTasks[taskId].tIncrementPan = incrementPan; + gTasks[taskId].tFramesToWait = framesToWait; + gTasks[taskId].tCurrentPan = currentPan; + + PlaySE12WithPanning(songId, currentPan); + + gAnimSoundTaskCount++; + sBattleAnimScriptPtr += 6; +} + +static void ScriptCmd_panse_27(void) +{ + u16 songId; + s8 targetPanArg, incrementPanArg, currentPanArg, currentPan, targetPan, incrementPan; + u8 framesToWait; + u8 taskId; + + sBattleAnimScriptPtr++; + songId = SCRIPT_READ_16(sBattleAnimScriptPtr); + currentPanArg = sBattleAnimScriptPtr[2]; + targetPanArg = sBattleAnimScriptPtr[3]; + incrementPanArg = sBattleAnimScriptPtr[4]; + framesToWait = sBattleAnimScriptPtr[5]; + + currentPan = BattleAnimAdjustPanning2(currentPanArg); + targetPan = BattleAnimAdjustPanning2(targetPanArg); + incrementPan = BattleAnimAdjustPanning2(incrementPanArg); + + taskId = CreateTask(Task_PanFromInitialToTarget, 1); + gTasks[taskId].tInitialPan = currentPan; + gTasks[taskId].tTargetPan = targetPan; + gTasks[taskId].tIncrementPan = incrementPan; + gTasks[taskId].tFramesToWait = framesToWait; + gTasks[taskId].tCurrentPan = currentPan; + + PlaySE12WithPanning(songId, currentPan); + + gAnimSoundTaskCount++; + sBattleAnimScriptPtr += 6; +} + +#undef tInitialPan +#undef tTargetPan +#undef tIncrementPan +#undef tFramesToWait +#undef tCurrentPan +#undef tFrameCounter + +#define tSongId data[0] +#define tPanning data[1] +#define tFramesToWait data[2] +#define tNumberOfPlays data[3] +#define tFrameCounter data[8] + +static void ScriptCmd_loopsewithpan(void) +{ + u16 songId; + s8 panningArg, panning; + u8 framesToWait, numberOfPlays; + u8 taskId; + + sBattleAnimScriptPtr++; + songId = SCRIPT_READ_16(sBattleAnimScriptPtr); + panningArg = sBattleAnimScriptPtr[2]; + framesToWait = sBattleAnimScriptPtr[3]; + numberOfPlays = sBattleAnimScriptPtr[4]; + panning = BattleAnimAdjustPanning(panningArg); + + taskId = CreateTask(Task_LoopAndPlaySE, 1); + gTasks[taskId].tSongId = songId; + gTasks[taskId].tPanning = panning; + gTasks[taskId].tFramesToWait = framesToWait; + gTasks[taskId].tNumberOfPlays = numberOfPlays; + gTasks[taskId].tFrameCounter = framesToWait; + gTasks[taskId].func(taskId); + + gAnimSoundTaskCount++; + sBattleAnimScriptPtr += 5; +} + +static void Task_LoopAndPlaySE(u8 taskId) +{ + if (gTasks[taskId].tFrameCounter++ >= gTasks[taskId].tFramesToWait) + { + u16 songId; + s8 panning; + u8 numberOfPlays; + + gTasks[taskId].tFrameCounter = 0; + songId = gTasks[taskId].tSongId; + panning = gTasks[taskId].tPanning; + numberOfPlays = --gTasks[taskId].tNumberOfPlays; + PlaySE12WithPanning(songId, panning); + if (numberOfPlays == 0) + { + DestroyTask(taskId); + gAnimSoundTaskCount--; + } + } +} + +#undef tSongId +#undef tPanning +#undef tFramesToWait +#undef tNumberOfPlays +#undef tFrameCounter + +#define tSongId data[0] +#define tPanning data[1] +#define tFramesToWait data[2] + +static void ScriptCmd_waitplaysewithpan(void) +{ + u16 songId; + s8 panningArg, panning; + u8 framesToWait; + u8 taskId; + + sBattleAnimScriptPtr++; + songId = SCRIPT_READ_16(sBattleAnimScriptPtr); + panningArg = sBattleAnimScriptPtr[2]; + framesToWait = sBattleAnimScriptPtr[3]; + panning = BattleAnimAdjustPanning(panningArg); + + taskId = CreateTask(Task_WaitAndPlaySE, 1); + gTasks[taskId].tSongId = songId; + gTasks[taskId].tPanning = panning; + gTasks[taskId].tFramesToWait = framesToWait; + + gAnimSoundTaskCount++; + sBattleAnimScriptPtr += 4; +} + +static void Task_WaitAndPlaySE(u8 taskId) +{ + if (gTasks[taskId].tFramesToWait-- <= 0) + { + PlaySE12WithPanning(gTasks[taskId].tSongId, gTasks[taskId].tPanning); + DestroyTask(taskId); + gAnimSoundTaskCount--; + } +} + +#undef tSongId +#undef tPanning +#undef tFramesToWait + +static void ScriptCmd_createsoundtask(void) +{ + TaskFunc func; + u8 numArgs, taskId; + s32 i; + + sBattleAnimScriptPtr++; + func = (TaskFunc)SCRIPT_READ_32(sBattleAnimScriptPtr); + sBattleAnimScriptPtr += 4; + numArgs = sBattleAnimScriptPtr[0]; + sBattleAnimScriptPtr++; + for (i = 0; i < numArgs; i++) + { + gBattleAnimArgs[i] = SCRIPT_READ_16(sBattleAnimScriptPtr); + sBattleAnimScriptPtr += 2; + } + taskId = CreateTask(func, 1); + func(taskId); + gAnimSoundTaskCount++; +} + +static void ScriptCmd_waitsound(void) +{ + if (gAnimSoundTaskCount != 0) + { + sSoundAnimFramesToWait = 0; + gAnimFramesToWait = 1; + } + else if (IsSEPlaying()) + { + if (++sSoundAnimFramesToWait > 90) + { + m4aMPlayStop(&gMPlay_SE1); + m4aMPlayStop(&gMPlay_SE2); + sSoundAnimFramesToWait = 0; + } + else + { + gAnimFramesToWait = 1; + } + } + else + { + sSoundAnimFramesToWait = 0; + sBattleAnimScriptPtr++; + gAnimFramesToWait = 0; + } +} + +static void ScriptCmd_jumpargeq(void) +{ + u8 argId; + s16 valueToCheck; + + sBattleAnimScriptPtr++; + argId = sBattleAnimScriptPtr[0]; + valueToCheck = SCRIPT_READ_16(sBattleAnimScriptPtr + 1); + + if (valueToCheck == gBattleAnimArgs[argId]) + sBattleAnimScriptPtr = SCRIPT_READ_PTR(sBattleAnimScriptPtr + 3); + else + sBattleAnimScriptPtr += 7; +} + +static void ScriptCmd_jumpifcontest(void) +{ + sBattleAnimScriptPtr++; + if (IsContest()) + sBattleAnimScriptPtr = SCRIPT_READ_PTR(sBattleAnimScriptPtr); + else + sBattleAnimScriptPtr += 4; +} + +static void ScriptCmd_monbgprio_28(void) +{ + u8 wantedBank; + u8 bank; + u8 bankIdentity; + + wantedBank = sBattleAnimScriptPtr[1]; + sBattleAnimScriptPtr += 2; + + if (wantedBank != ANIM_BANK_ATTACKER) + bank = gAnimBankTarget; + else + bank = gAnimBankAttacker; + + bankIdentity = GetBankIdentity(bank); + if (!IsContest() && (bankIdentity == IDENTITY_PLAYER_MON1 || bankIdentity == IDENTITY_OPPONENT_MON2)) + { + SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1); + SetAnimBgAttribute(2, BG_ANIM_PRIORITY, 2); + } +} + +static void ScriptCmd_monbgprio_29(void) +{ + sBattleAnimScriptPtr++; + if (!IsContest()) + { + SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1); + SetAnimBgAttribute(2, BG_ANIM_PRIORITY, 2); + } +} + +static void ScriptCmd_monbgprio_2A(void) +{ + u8 wantedBank; + u8 bankIdentity; + u8 bank; + + wantedBank = sBattleAnimScriptPtr[1]; + sBattleAnimScriptPtr += 2; + if (GetBankSide(gAnimBankAttacker) != GetBankSide(gAnimBankTarget)) + { + if (wantedBank != ANIM_BANK_ATTACKER) + bank = gAnimBankTarget; + else + bank = gAnimBankAttacker; + + bankIdentity = GetBankIdentity(bank); + if (!IsContest() && (bankIdentity == IDENTITY_PLAYER_MON1 || bankIdentity == IDENTITY_OPPONENT_MON2)) + { + SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1); + SetAnimBgAttribute(2, BG_ANIM_PRIORITY, 2); + } + } +} + +static void ScriptCmd_invisible(void) +{ + u8 spriteId; + + spriteId = GetAnimBankSpriteId(sBattleAnimScriptPtr[1]); + if (spriteId != 0xFF) + gSprites[spriteId].invisible = 1; + + sBattleAnimScriptPtr += 2; +} + +static void ScriptCmd_visible(void) +{ + u8 spriteId; + + spriteId = GetAnimBankSpriteId(sBattleAnimScriptPtr[1]); + if (spriteId != 0xFF) + gSprites[spriteId].invisible = 0; + + sBattleAnimScriptPtr += 2; +} + +static void ScriptCmd_doublebattle_2D(void) +{ + u8 wantedBank; + u8 r4; + u8 spriteId; + + wantedBank = sBattleAnimScriptPtr[1]; + sBattleAnimScriptPtr += 2; + if (!IsContest() && IsDoubleBattle() + && GetBankSide(gAnimBankAttacker) == GetBankSide(gAnimBankTarget)) + { + if (wantedBank == ANIM_BANK_ATTACKER) + { + r4 = sub_80A8364(gAnimBankAttacker); + spriteId = GetAnimBankSpriteId(0); + } + else + { + r4 = sub_80A8364(gAnimBankTarget); + spriteId = GetAnimBankSpriteId(1); + } + if (spriteId != 0xFF) + { + gSprites[spriteId].invisible = FALSE; + if (r4 == 2) + gSprites[spriteId].oam.priority = 3; + + if (r4 == 1) + sub_80A477C(FALSE); + else + sub_80A477C(TRUE); + } + } +} + +static void ScriptCmd_doublebattle_2E(void) +{ + u8 wantedBank; + u8 r4; + u8 spriteId; + + wantedBank = sBattleAnimScriptPtr[1]; + sBattleAnimScriptPtr += 2; + if (!IsContest() && IsDoubleBattle() + && GetBankSide(gAnimBankAttacker) == GetBankSide(gAnimBankTarget)) + { + if (wantedBank == ANIM_BANK_ATTACKER) + { + r4 = sub_80A8364(gAnimBankAttacker); + spriteId = GetAnimBankSpriteId(0); + } + else + { + r4 = sub_80A8364(gAnimBankTarget); + spriteId = GetAnimBankSpriteId(1); + } + + if (spriteId != 0xFF && r4 == 2) + gSprites[spriteId].oam.priority = 2; + } +} + +static void ScriptCmd_stopsound(void) +{ + m4aMPlayStop(&gMPlay_SE1); + m4aMPlayStop(&gMPlay_SE2); + sBattleAnimScriptPtr++; +} diff --git a/src/battle_controllers.c b/src/battle_controllers.c new file mode 100644 index 000000000..9ac18c72f --- /dev/null +++ b/src/battle_controllers.c @@ -0,0 +1,1551 @@ +#include "global.h" +#include "battle.h" +#include "battle_controllers.h" +#include "link.h" +#include "task.h" +#include "battle_ai_script_commands.h" +#include "battle_anim.h" +#include "pokemon.h" +#include "species.h" +#include "recorded_battle.h" +#include "util.h" +#include "abilities.h" +#include "battle_message.h" + +extern u32 gBattleTypeFlags; +extern u32 gBattleExecBuffer; +extern void (*gBattleMainFunc)(void); +extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void); +extern u8 gBanksByIdentity[BATTLE_BANKS_COUNT]; +extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT]; +extern u8 gMoveSelectionCursor[BATTLE_BANKS_COUNT]; +extern u8 gNoOfAllBanks; +extern u8 gActiveBank; +extern u8 gUnknown_0202428C; +extern u32 gUnknown_02022FF4; +extern u8 gUnknown_0203C7B4; +extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; +extern u8 gBattleBufferA[BATTLE_BANKS_COUNT][0x200]; +extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200]; +extern u8 gBattleBuffersTransferData[0x100]; +extern u8 gUnknown_02022D08; +extern u8 gUnknown_02022D09; +extern u8 gUnknown_02022D0A; +extern u8 gBankAttacker; +extern u8 gBankTarget; +extern u8 gAbsentBankFlags; +extern u8 gEffectBank; +extern u16 gBattleWeather; +extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; +extern u16 gCurrentMove; +extern u16 gLastUsedMove; +extern u16 gLastUsedItem; +extern u8 gBattleOutcome; +extern u8 gLastUsedAbility; +extern u8 gStringBank; + +extern const struct BattleMove gBattleMoves[]; + +extern void task00_08081A90(u8 taskId); // cable_club +extern void sub_81B8D64(u8 bank, u8 arg1); // party_menu + +// this file's funcionts +static void CreateTasksForSendRecvLinkBuffers(void); +static void SetControllersVariablesInLinkBattle(void); +static void SetControllersVariables(void); +static void SetBattlePartyIds(void); +static void Task_HandleSendLinkBuffersData(u8 taskId); +static void Task_HandleCopyReceivedLinkBuffersData(u8 taskId); + +void HandleLinkBattleSetup(void) +{ + if (gBattleTypeFlags & BATTLE_TYPE_LINK) + { + if (gLinkVSyncDisabled) + sub_800B488(); + if (!gReceivedRemoteLinkPlayers) + sub_8009734(); + CreateTask(task00_08081A90, 0); + CreateTasksForSendRecvLinkBuffers(); + } +} + +void SetUpBattleVarsAndBirchZigzagoon(void) +{ + s32 i; + + gBattleMainFunc = nullsub_20; + + for (i = 0; i < BATTLE_BANKS_COUNT; i++) + { + gBattleBankFunc[i] = nullsub_21; + gBanksByIdentity[i] = 0xFF; + gActionSelectionCursor[i] = 0; + gMoveSelectionCursor[i] = 0; + } + + HandleLinkBattleSetup(); + gBattleExecBuffer = 0; + ClearBattleAnimationVars(); + ClearBattleMonForms(); + BattleAI_HandleItemUseBeforeAISetup(0xF); + + if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE) + { + ZeroEnemyPartyMons(); + CreateMon(&gEnemyParty[0], SPECIES_ZIGZAGOON, 2, 32, 0, 0, 0, 0); + i = 0; + SetMonData(&gEnemyParty[0], MON_DATA_HELD_ITEM, &i); + } + + gUnknown_02022FF4 = 0; + gUnknown_0202428C = 0; +} + +void sub_8032768(void) +{ + s32 i; + u8 *data; + + if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) + sub_8184DA4(1); + else + sub_8184DA4(2); + + if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) + sub_8185EB8(); + + if (gBattleTypeFlags & BATTLE_TYPE_LINK) + SetControllersVariablesInLinkBattle(); + else + SetControllersVariables(); + + SetBattlePartyIds(); + + if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)) + { + for (i = 0; i < gNoOfAllBanks; i++) + sub_81B8D64(i, 0); + } + + for (i = 0; i < sizeof(gBattleStruct->field_1A4); i++) + *(gBattleStruct->field_1A4 + i) = 0; + + for (i = 0; i < sizeof(gBattleStruct->field_204); i++) + *(gBattleStruct->field_204 + i) = 0; +} + +static void SetControllersVariables(void) +{ + s32 i; + + if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) + { + gBattleMainFunc = BeginBattleIntro; + + if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) + { + gBattleBankFunc[0] = SetBankFuncToRecordedPlayerBufferRunCommand; + gBanksByIdentity[0] = IDENTITY_PLAYER_MON1; + + gBattleBankFunc[1] = SetBankFuncToOpponentBufferRunCommand; + gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1; + + gBattleBankFunc[2] = SetBankFuncToPlayerPartnerBufferRunCommand; + gBanksByIdentity[2] = IDENTITY_PLAYER_MON2; + + gBattleBankFunc[3] = SetBankFuncToOpponentBufferRunCommand; + gBanksByIdentity[3] = IDENTITY_OPPONENT_MON2; + } + else + { + gBattleBankFunc[0] = SetBankFuncToPlayerBufferRunCommand; + gBanksByIdentity[0] = IDENTITY_PLAYER_MON1; + + gBattleBankFunc[1] = SetBankFuncToOpponentBufferRunCommand; + gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1; + + gBattleBankFunc[2] = SetBankFuncToPlayerPartnerBufferRunCommand; + gBanksByIdentity[2] = IDENTITY_PLAYER_MON2; + + gBattleBankFunc[3] = SetBankFuncToOpponentBufferRunCommand; + gBanksByIdentity[3] = IDENTITY_OPPONENT_MON2; + } + + gNoOfAllBanks = 4; + + sub_81B8D64(0, 0); + sub_81B8D64(1, 0); + sub_81B8D64(2, 1); + sub_81B8D64(3, 1); + + gBattlePartyID[0] = 0; + gBattlePartyID[1] = 0; + gBattlePartyID[2] = 3; + gBattlePartyID[3] = 3; + } + else if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) + { + gBattleMainFunc = BeginBattleIntro; + + if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) + gBattleBankFunc[0] = SetBankFuncToSafariBufferRunCommand; + else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL) + gBattleBankFunc[0] = SetBankFuncToWallyBufferRunCommand; + else + gBattleBankFunc[0] = SetBankFuncToPlayerBufferRunCommand; + + gBanksByIdentity[0] = IDENTITY_PLAYER_MON1; + + gBattleBankFunc[1] = SetBankFuncToOpponentBufferRunCommand; + gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1; + + gNoOfAllBanks = 2; + + if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) + { + if (gBattleTypeFlags & BATTLE_TYPE_x2000000) + { + if (gBattleTypeFlags & BATTLE_TYPE_x80000000) + { + gBattleMainFunc = BeginBattleIntro; + + gBattleBankFunc[0] = SetBankFuncToRecordedPlayerBufferRunCommand; + gBanksByIdentity[0] = IDENTITY_PLAYER_MON1; + + gBattleBankFunc[1] = SetBankFuncToRecordedOpponentBufferRunCommand; + gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1; + + gNoOfAllBanks = 2; + } + else // see how the banks are switched + { + gBattleBankFunc[1] = SetBankFuncToRecordedPlayerBufferRunCommand; + gBanksByIdentity[1] = IDENTITY_PLAYER_MON1; + + gBattleBankFunc[0] = SetBankFuncToRecordedOpponentBufferRunCommand; + gBanksByIdentity[0] = IDENTITY_OPPONENT_MON1; + + gNoOfAllBanks = 2; + } + } + else + { + gBattleBankFunc[0] = SetBankFuncToRecordedPlayerBufferRunCommand; + gBanksByIdentity[0] = IDENTITY_PLAYER_MON1; + + gBattleBankFunc[1] = SetBankFuncToOpponentBufferRunCommand; + gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1; + } + } + } + else + { + gBattleMainFunc = BeginBattleIntro; + + gBattleBankFunc[0] = SetBankFuncToPlayerBufferRunCommand; + gBanksByIdentity[0] = IDENTITY_PLAYER_MON1; + + gBattleBankFunc[1] = SetBankFuncToOpponentBufferRunCommand; + gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1; + + gBattleBankFunc[2] = SetBankFuncToPlayerBufferRunCommand; + gBanksByIdentity[2] = IDENTITY_PLAYER_MON2; + + gBattleBankFunc[3] = SetBankFuncToOpponentBufferRunCommand; + gBanksByIdentity[3] = IDENTITY_OPPONENT_MON2; + + gNoOfAllBanks = 4; + + if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) + { + if (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) + { + gBattleMainFunc = BeginBattleIntro; + + gBattleBankFunc[0] = SetBankFuncToRecordedPlayerBufferRunCommand; + gBanksByIdentity[0] = 0; + + gBattleBankFunc[1] = SetBankFuncToOpponentBufferRunCommand; + gBanksByIdentity[1] = 1; + + gBattleBankFunc[2] = SetBankFuncToRecordedPlayerBufferRunCommand; + gBanksByIdentity[2] = 2; + + gBattleBankFunc[3] = SetBankFuncToOpponentBufferRunCommand; + gBanksByIdentity[3] = 3; + + gNoOfAllBanks = 4; + + sub_81B8D64(0, 0); + sub_81B8D64(1, 0); + sub_81B8D64(2, 1); + sub_81B8D64(3, 1); + + gBattlePartyID[0] = 0; + gBattlePartyID[1] = 0; + gBattlePartyID[2] = 3; + gBattlePartyID[3] = 3; + } + else if (gBattleTypeFlags & BATTLE_TYPE_MULTI) + { + u8 var; // multiplayer Id in a recorded battle? + + for (var = gUnknown_0203C7B4, i = 0; i < BATTLE_BANKS_COUNT; i++) + { + switch (gLinkPlayers[i].lp_field_18) + { + case 0: + case 3: + sub_81B8D64(gLinkPlayers[i].lp_field_18, 0); + break; + case 1: + case 2: + sub_81B8D64(gLinkPlayers[i].lp_field_18, 1); + break; + } + + if (i == var) + { + gBattleBankFunc[gLinkPlayers[i].lp_field_18] = SetBankFuncToRecordedPlayerBufferRunCommand; + switch (gLinkPlayers[i].lp_field_18) + { + case 0: + case 3: + gBanksByIdentity[gLinkPlayers[i].lp_field_18] = IDENTITY_PLAYER_MON1; + gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0; + break; + case 1: + case 2: + gBanksByIdentity[gLinkPlayers[i].lp_field_18] = IDENTITY_PLAYER_MON2; + gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3; + break; + } + } + else if ((!(gLinkPlayers[i].lp_field_18 & 1) && !(gLinkPlayers[var].lp_field_18 & 1)) + || ((gLinkPlayers[i].lp_field_18 & 1) && (gLinkPlayers[var].lp_field_18 & 1))) + { + gBattleBankFunc[gLinkPlayers[i].lp_field_18] = SetBankFuncToRecordedPlayerBufferRunCommand; + switch (gLinkPlayers[i].lp_field_18) + { + case 0: + case 3: + gBanksByIdentity[gLinkPlayers[i].lp_field_18] = IDENTITY_PLAYER_MON1; + gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0; + break; + case 1: + case 2: + gBanksByIdentity[gLinkPlayers[i].lp_field_18] = IDENTITY_PLAYER_MON2; + gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3; + break; + } + } + else + { + gBattleBankFunc[gLinkPlayers[i].lp_field_18] = SetBankFuncToRecordedOpponentBufferRunCommand; + switch (gLinkPlayers[i].lp_field_18) + { + case 0: + case 3: + gBanksByIdentity[gLinkPlayers[i].lp_field_18] = IDENTITY_OPPONENT_MON1; + gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0; + break; + case 1: + case 2: + gBanksByIdentity[gLinkPlayers[i].lp_field_18] = IDENTITY_OPPONENT_MON2; + gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3; + break; + } + } + } + } + else if (gBattleTypeFlags & BATTLE_TYPE_WILD) + { + gBattleBankFunc[0] = SetBankFuncToRecordedPlayerBufferRunCommand; + gBanksByIdentity[0] = IDENTITY_PLAYER_MON1; + + gBattleBankFunc[2] = SetBankFuncToRecordedPlayerBufferRunCommand; + gBanksByIdentity[2] = IDENTITY_PLAYER_MON2; + + if (gBattleTypeFlags & BATTLE_TYPE_x2000000) + { + gBattleBankFunc[1] = SetBankFuncToRecordedOpponentBufferRunCommand; + gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1; + + gBattleBankFunc[3] = SetBankFuncToRecordedOpponentBufferRunCommand; + gBanksByIdentity[3] = IDENTITY_OPPONENT_MON2; + } + else + { + gBattleBankFunc[1] = SetBankFuncToOpponentBufferRunCommand; + gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1; + + gBattleBankFunc[3] = SetBankFuncToOpponentBufferRunCommand; + gBanksByIdentity[3] = IDENTITY_OPPONENT_MON2; + } + } + else + { + gBattleBankFunc[1] = SetBankFuncToRecordedPlayerBufferRunCommand; + gBanksByIdentity[1] = IDENTITY_PLAYER_MON1; + + gBattleBankFunc[3] = SetBankFuncToRecordedPlayerBufferRunCommand; + gBanksByIdentity[3] = IDENTITY_PLAYER_MON2; + + if (gBattleTypeFlags & BATTLE_TYPE_x2000000) + { + gBattleBankFunc[0] = SetBankFuncToRecordedOpponentBufferRunCommand; + gBanksByIdentity[0] = IDENTITY_OPPONENT_MON1; + + gBattleBankFunc[2] = SetBankFuncToRecordedOpponentBufferRunCommand; + gBanksByIdentity[2] = IDENTITY_OPPONENT_MON2; + } + else + { + gBattleBankFunc[0] = SetBankFuncToOpponentBufferRunCommand; + gBanksByIdentity[0] = IDENTITY_OPPONENT_MON1; + + gBattleBankFunc[2] = SetBankFuncToOpponentBufferRunCommand; + gBanksByIdentity[2] = IDENTITY_OPPONENT_MON2; + } + } + } + } +} + +static void SetControllersVariablesInLinkBattle(void) +{ + s32 i; + u8 multiplayerId; + + if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) + { + if (gBattleTypeFlags & BATTLE_TYPE_WILD) + { + gBattleMainFunc = BeginBattleIntro; + + gBattleBankFunc[0] = SetBankFuncToPlayerBufferRunCommand; + gBanksByIdentity[0] = IDENTITY_PLAYER_MON1; + + gBattleBankFunc[1] = SetBankFuncToLinkOpponentBufferRunCommand; + gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1; + + gNoOfAllBanks = 2; + } + else + { + gBattleBankFunc[1] = SetBankFuncToPlayerBufferRunCommand; + gBanksByIdentity[1] = IDENTITY_PLAYER_MON1; + + gBattleBankFunc[0] = SetBankFuncToLinkOpponentBufferRunCommand; + gBanksByIdentity[0] = IDENTITY_OPPONENT_MON1; + + gNoOfAllBanks = 2; + } + } + else if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI) && gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + { + if (gBattleTypeFlags & BATTLE_TYPE_WILD) + { + gBattleMainFunc = BeginBattleIntro; + + gBattleBankFunc[0] = SetBankFuncToPlayerBufferRunCommand; + gBanksByIdentity[0] = IDENTITY_PLAYER_MON1; + + gBattleBankFunc[1] = SetBankFuncToLinkOpponentBufferRunCommand; + gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1; + + gBattleBankFunc[2] = SetBankFuncToPlayerBufferRunCommand; + gBanksByIdentity[2] = IDENTITY_PLAYER_MON2; + + gBattleBankFunc[3] = SetBankFuncToLinkOpponentBufferRunCommand; + gBanksByIdentity[3] = IDENTITY_OPPONENT_MON2; + + gNoOfAllBanks = 4; + } + else + { + gBattleBankFunc[1] = SetBankFuncToPlayerBufferRunCommand; + gBanksByIdentity[1] = IDENTITY_PLAYER_MON1; + + gBattleBankFunc[0] = SetBankFuncToLinkOpponentBufferRunCommand; + gBanksByIdentity[0] = IDENTITY_OPPONENT_MON1; + + gBattleBankFunc[3] = SetBankFuncToPlayerBufferRunCommand; + gBanksByIdentity[3] = IDENTITY_PLAYER_MON2; + + gBattleBankFunc[2] = SetBankFuncToLinkOpponentBufferRunCommand; + gBanksByIdentity[2] = IDENTITY_OPPONENT_MON2; + + gNoOfAllBanks = 4; + } + } + else if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) + { + if (gBattleTypeFlags & BATTLE_TYPE_WILD) + { + gBattleMainFunc = BeginBattleIntro; + + gBattleBankFunc[0] = SetBankFuncToPlayerBufferRunCommand; + gBanksByIdentity[0] = IDENTITY_PLAYER_MON1; + + gBattleBankFunc[1] = SetBankFuncToOpponentBufferRunCommand; + gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1; + + gBattleBankFunc[2] = SetBankFuncToLinkPartnerBufferRunCommand; + gBanksByIdentity[2] = IDENTITY_PLAYER_MON2; + + gBattleBankFunc[3] = SetBankFuncToOpponentBufferRunCommand; + gBanksByIdentity[3] = IDENTITY_OPPONENT_MON2; + + gNoOfAllBanks = 4; + } + else + { + gBattleBankFunc[0] = SetBankFuncToLinkPartnerBufferRunCommand; + gBanksByIdentity[0] = IDENTITY_PLAYER_MON1; + + gBattleBankFunc[1] = SetBankFuncToLinkOpponentBufferRunCommand; + gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1; + + gBattleBankFunc[2] = SetBankFuncToPlayerBufferRunCommand; + gBanksByIdentity[2] = IDENTITY_PLAYER_MON2; + + gBattleBankFunc[3] = SetBankFuncToLinkOpponentBufferRunCommand; + gBanksByIdentity[3] = IDENTITY_OPPONENT_MON2; + + gNoOfAllBanks = 4; + } + + sub_81B8D64(0, 0); + sub_81B8D64(1, 0); + sub_81B8D64(2, 1); + sub_81B8D64(3, 1); + gBattlePartyID[0] = 0; + gBattlePartyID[1] = 0; + gBattlePartyID[2] = 3; + gBattlePartyID[3] = 3; + } + else + { + multiplayerId = GetMultiplayerId(); + + if (gBattleTypeFlags & BATTLE_TYPE_WILD) + gBattleMainFunc = BeginBattleIntro; + + for (i = 0; i < BATTLE_BANKS_COUNT; i++) + { + switch (gLinkPlayers[i].lp_field_18) + { + case 0: + case 3: + sub_81B8D64(gLinkPlayers[i].lp_field_18, 0); + break; + case 1: + case 2: + sub_81B8D64(gLinkPlayers[i].lp_field_18, 1); + break; + } + + if (i == multiplayerId) + { + gBattleBankFunc[gLinkPlayers[i].lp_field_18] = SetBankFuncToPlayerBufferRunCommand; + switch (gLinkPlayers[i].lp_field_18) + { + case 0: + case 3: + gBanksByIdentity[gLinkPlayers[i].lp_field_18] = 0; + gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0; + break; + case 1: + case 2: + gBanksByIdentity[gLinkPlayers[i].lp_field_18] = 2; + gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3; + break; + } + } + else + { + if ((!(gLinkPlayers[i].lp_field_18 & 1) && !(gLinkPlayers[multiplayerId].lp_field_18 & 1)) + || ((gLinkPlayers[i].lp_field_18 & 1) && (gLinkPlayers[multiplayerId].lp_field_18 & 1))) + { + gBattleBankFunc[gLinkPlayers[i].lp_field_18] = SetBankFuncToLinkPartnerBufferRunCommand; + switch (gLinkPlayers[i].lp_field_18) + { + case 0: + case 3: + gBanksByIdentity[gLinkPlayers[i].lp_field_18] = 0; + gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0; + break; + case 1: + case 2: + gBanksByIdentity[gLinkPlayers[i].lp_field_18] = 2; + gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3; + break; + } + } + else + { + gBattleBankFunc[gLinkPlayers[i].lp_field_18] = SetBankFuncToLinkOpponentBufferRunCommand; + switch (gLinkPlayers[i].lp_field_18) + { + case 0: + case 3: + gBanksByIdentity[gLinkPlayers[i].lp_field_18] = 1; + gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0; + break; + case 1: + case 2: + gBanksByIdentity[gLinkPlayers[i].lp_field_18] = 3; + gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3; + break; + } + } + } + } + + gNoOfAllBanks = 4; + } +} + +static void SetBattlePartyIds(void) +{ + s32 i, j; + + if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)) + { + for (i = 0; i < gNoOfAllBanks; i++) + { + for (j = 0; j < 6; j++) + { + if (i < 2) + { + if (GET_BANK_SIDE2(i) == SIDE_PLAYER) + { + if (GetMonData(&gPlayerParty[j], MON_DATA_HP) != 0 + && GetMonData(&gPlayerParty[j], MON_DATA_SPECIES2) != SPECIES_NONE + && GetMonData(&gPlayerParty[j], MON_DATA_SPECIES2) != SPECIES_EGG + && GetMonData(&gPlayerParty[j], MON_DATA_IS_EGG) == 0) + { + gBattlePartyID[i] = j; + break; + } + } + else + { + if (GetMonData(&gEnemyParty[j], MON_DATA_HP) != 0 + && GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != SPECIES_NONE + && GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != SPECIES_EGG + && GetMonData(&gEnemyParty[j], MON_DATA_IS_EGG) == 0) + { + gBattlePartyID[i] = j; + break; + } + } + } + else + { + if (GET_BANK_SIDE2(i) == SIDE_PLAYER) + { + if (GetMonData(&gPlayerParty[j], MON_DATA_HP) != 0 + && GetMonData(&gPlayerParty[j], MON_DATA_SPECIES) != SPECIES_NONE // Probably a typo by Game Freak. The rest use SPECIES2. + && GetMonData(&gPlayerParty[j], MON_DATA_SPECIES2) != SPECIES_EGG + && GetMonData(&gPlayerParty[j], MON_DATA_IS_EGG) == 0 + && gBattlePartyID[i - 2] != j) + { + gBattlePartyID[i] = j; + break; + } + } + else + { + if (GetMonData(&gEnemyParty[j], MON_DATA_HP) != 0 + && GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != SPECIES_NONE + && GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != SPECIES_EGG + && GetMonData(&gEnemyParty[j], MON_DATA_IS_EGG) == 0 + && gBattlePartyID[i - 2] != j) + { + gBattlePartyID[i] = j; + break; + } + } + } + } + } + + if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) + gBattlePartyID[1] = 0, gBattlePartyID[3] = 3; + } +} + +static void PrepareBufferDataTransfer(u8 bufferId, u8 *data, u16 size) +{ + s32 i; + + if (gBattleTypeFlags & BATTLE_TYPE_LINK) + { + PrepareBufferDataTransferLink(bufferId, size, data); + } + else + { + switch (bufferId) + { + case 0: + for (i = 0; i < size; i++) + { + gBattleBufferA[gActiveBank][i] = *data; + data++; + } + break; + case 1: + for (i = 0; i < size; i++) + { + gBattleBufferB[gActiveBank][i] = *data; + data++; + } + break; + } + } +} + +static void CreateTasksForSendRecvLinkBuffers(void) +{ + gUnknown_02022D08 = CreateTask(Task_HandleSendLinkBuffersData, 0); + gTasks[gUnknown_02022D08].data[11] = 0; + gTasks[gUnknown_02022D08].data[12] = 0; + gTasks[gUnknown_02022D08].data[13] = 0; + gTasks[gUnknown_02022D08].data[14] = 0; + gTasks[gUnknown_02022D08].data[15] = 0; + + gUnknown_02022D09 = CreateTask(Task_HandleCopyReceivedLinkBuffersData, 0); + gTasks[gUnknown_02022D09].data[12] = 0; + gTasks[gUnknown_02022D09].data[13] = 0; + gTasks[gUnknown_02022D09].data[14] = 0; + gTasks[gUnknown_02022D09].data[15] = 0; + + gUnknown_02022D0A = 0; +} + +enum +{ + LINK_BUFF_BUFFER_ID, + LINK_BUFF_ACTIVE_BANK, + LINK_BUFF_ATTACKER, + LINK_BUFF_TARGET, + LINK_BUFF_SIZE_LO, + LINK_BUFF_SIZE_HI, + LINK_BUFF_ABSENT_BANK_FLAGS, + LINK_BUFF_EFFECT_BANK, + LINK_BUFF_DATA +}; + +void PrepareBufferDataTransferLink(u8 bufferId, u16 size, u8 *data) +{ + s32 alignedSize; + s32 i; + + alignedSize = size - size % 4 + 4; + if (gTasks[gUnknown_02022D08].data[14] + alignedSize + LINK_BUFF_DATA + 1 > BATTLE_BUFFER_LINK_SIZE) + { + gTasks[gUnknown_02022D08].data[12] = gTasks[gUnknown_02022D08].data[14]; + gTasks[gUnknown_02022D08].data[14] = 0; + } + gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_BUFFER_ID] = bufferId; + gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ACTIVE_BANK] = gActiveBank; + gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ATTACKER] = gBankAttacker; + gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_TARGET] = gBankTarget; + gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_SIZE_LO] = alignedSize; + gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_SIZE_HI] = (alignedSize & 0x0000FF00) >> 8; + gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ABSENT_BANK_FLAGS] = gAbsentBankFlags; + gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_EFFECT_BANK] = gEffectBank; + + for (i = 0; i < size; i++) + gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_DATA + i] = data[i]; + + gTasks[gUnknown_02022D08].data[14] = gTasks[gUnknown_02022D08].data[14] + alignedSize + LINK_BUFF_DATA; +} + +static void Task_HandleSendLinkBuffersData(u8 taskId) +{ + u16 var; + u16 blockSize; + + switch (gTasks[taskId].data[11]) + { + case 0: + gTasks[taskId].data[10] = 100; + gTasks[taskId].data[11]++; + break; + case 1: + gTasks[taskId].data[10]--; + if (gTasks[taskId].data[10] == 0) + gTasks[taskId].data[11]++; + break; + case 2: + if (gLinkVSyncDisabled) + { + gTasks[taskId].data[11]++; + } + else + { + if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) + var = 2; + else + var = (gBattleTypeFlags & BATTLE_TYPE_MULTI) ? 4 : 2; + + if (sub_800ABAC() >= var) + { + if (sub_800ABBC()) + { + sub_800A620(); + gTasks[taskId].data[11]++; + } + else + { + gTasks[taskId].data[11]++; + } + } + } + break; + case 3: + if (gTasks[taskId].data[15] != gTasks[taskId].data[14]) + { + if (gTasks[taskId].data[13] == 0) + { + if (gTasks[taskId].data[15] > gTasks[taskId].data[14] + && gTasks[taskId].data[15] == gTasks[taskId].data[12]) + { + gTasks[taskId].data[12] = 0; + gTasks[taskId].data[15] = 0; + } + blockSize = (gLinkBattleSendBuffer[gTasks[taskId].data[15] + LINK_BUFF_SIZE_LO] | (gLinkBattleSendBuffer[gTasks[taskId].data[15] + LINK_BUFF_SIZE_HI] << 8)) + LINK_BUFF_DATA; + SendBlock(bitmask_all_link_players_but_self(), &gLinkBattleSendBuffer[gTasks[taskId].data[15]], blockSize); + gTasks[taskId].data[11]++; + } + else + { + gTasks[taskId].data[13]--; + break; + } + } + break; + case 4: + if (sub_800A520()) + { + blockSize = gLinkBattleSendBuffer[gTasks[taskId].data[15] + LINK_BUFF_SIZE_LO] | (gLinkBattleSendBuffer[gTasks[taskId].data[15] + LINK_BUFF_SIZE_HI] << 8); + gTasks[taskId].data[13] = 1; + gTasks[taskId].data[15] = gTasks[taskId].data[15] + blockSize + LINK_BUFF_DATA; + gTasks[taskId].data[11] = 3; + } + break; + case 5: + gTasks[taskId].data[13]--; + if (gTasks[taskId].data[13] == 0) + { + gTasks[taskId].data[13] = 1; + gTasks[taskId].data[11] = 3; + } + break; + } +} + +// fix me +void sub_8033648(void) +{ + u8 i; + s32 j; + u16 r6; + u8 *recvBuffer; + u8 *dest; + u8 *src; + + if (gReceivedRemoteLinkPlayers != 0 && (gBattleTypeFlags & BATTLE_TYPE_20)) + { + sub_8011BD0(); + for (i = 0; i < GetLinkPlayerCount(); i++) + { + if (GetBlockReceivedStatus() & gBitTable[i]) + { + ResetBlockReceivedFlag(i); + recvBuffer = (u8 *)gBlockRecvBuffer[i]; + #ifndef NONMATCHING + asm(""); + recvBuffer = (u8 *)&gBlockRecvBuffer[i]; + #endif + r6 = gBlockRecvBuffer[i][2]; + + if (gTasks[gUnknown_02022D09].data[14] + 9 + r6 > 0x1000) + { + gTasks[gUnknown_02022D09].data[12] = gTasks[gUnknown_02022D09].data[14]; + gTasks[gUnknown_02022D09].data[14] = 0; + } + + dest = &gLinkBattleRecvBuffer[gTasks[gUnknown_02022D09].data[14]]; + src = recvBuffer; + + for (j = 0; j < r6 + 8; j++) + dest[j] = src[j]; + + gTasks[gUnknown_02022D09].data[14] = gTasks[gUnknown_02022D09].data[14] + r6 + 8; + } + } + } +} + +static void Task_HandleCopyReceivedLinkBuffersData(u8 taskId) +{ + u16 blockSize; + u8 bank; + u8 var; + + if (gTasks[taskId].data[15] != gTasks[taskId].data[14]) + { + if (gTasks[taskId].data[15] > gTasks[taskId].data[14] + && gTasks[taskId].data[15] == gTasks[taskId].data[12]) + { + gTasks[taskId].data[12] = 0; + gTasks[taskId].data[15] = 0; + } + bank = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + LINK_BUFF_ACTIVE_BANK]; + blockSize = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + LINK_BUFF_SIZE_LO] | (gLinkBattleRecvBuffer[gTasks[taskId].data[15] + LINK_BUFF_SIZE_HI] << 8); + + switch (gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 0]) + { + case 0: + if (gBattleExecBuffer & gBitTable[bank]) + return; + + memcpy(gBattleBufferA[bank], &gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 8], blockSize); + sub_803F850(bank); + + if (!(gBattleTypeFlags & BATTLE_TYPE_WILD)) + { + gBankAttacker = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 2]; + gBankTarget = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 3]; + gAbsentBankFlags = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 6]; + gEffectBank = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 7]; + } + break; + case 1: + memcpy(gBattleBufferB[bank], &gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 8], blockSize); + break; + case 2: + var = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + LINK_BUFF_DATA]; + gBattleExecBuffer &= ~(gBitTable[bank] << (var * 4)); + break; + } + + gTasks[taskId].data[15] = gTasks[taskId].data[15] + blockSize + LINK_BUFF_DATA; + } +} + +void EmitGetMonData(u8 bufferId, u8 arg1, u8 arg2) +{ + gBattleBuffersTransferData[0] = CONTROLLER_GETMONDATA; + gBattleBuffersTransferData[1] = arg1; + gBattleBuffersTransferData[2] = arg2; + gBattleBuffersTransferData[3] = 0; + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); +} + +void EmitGetRawMonData(u8 bufferId, u8 monId, u8 bytes) +{ + gBattleBuffersTransferData[0] = CONTROLLER_GETRAWMONDATA; + gBattleBuffersTransferData[1] = monId; + gBattleBuffersTransferData[2] = bytes; + gBattleBuffersTransferData[3] = 0; + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); +} + +void EmitSetMonData(u8 bufferId, u8 request, u8 c, u8 bytes, void *data) +{ + s32 i; + + gBattleBuffersTransferData[0] = CONTROLLER_SETMONDATA; + gBattleBuffersTransferData[1] = request; + gBattleBuffersTransferData[2] = c; + for (i = 0; i < bytes; i++) + gBattleBuffersTransferData[3 + i] = *(u8*)(data++); + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 3 + bytes); +} + +void EmitSetRawMonData(u8 bufferId, u8 monId, u8 bytes, void *data) +{ + s32 i; + + gBattleBuffersTransferData[0] = CONTROLLER_SETRAWMONDATA; + gBattleBuffersTransferData[1] = monId; + gBattleBuffersTransferData[2] = bytes; + for (i = 0; i < bytes; i++) + gBattleBuffersTransferData[3 + i] = *(u8*)(data++); + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, bytes + 3); +} + +void EmitLoadMonSprite(u8 bufferId) +{ + gBattleBuffersTransferData[0] = CONTROLLER_LOADMONSPRITE; + gBattleBuffersTransferData[1] = 4; + gBattleBuffersTransferData[2] = 4; + gBattleBuffersTransferData[3] = 4; + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); +} + +void EmitSwitchInAnim(u8 bufferId, u8 partyId, bool8 dontClearSubstituteBit) +{ + gBattleBuffersTransferData[0] = CONTROLLER_SWITCHINANIM; + gBattleBuffersTransferData[1] = partyId; + gBattleBuffersTransferData[2] = dontClearSubstituteBit; + gBattleBuffersTransferData[3] = 5; + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); +} + +void EmitReturnMonToBall(u8 bufferId, u8 arg1) +{ + gBattleBuffersTransferData[0] = CONTROLLER_RETURNMONTOBALL; + gBattleBuffersTransferData[1] = arg1; + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2); +} + +void EmitDrawTrainerPic(u8 bufferId) +{ + gBattleBuffersTransferData[0] = CONTROLLER_DRAWTRAINERPIC; + gBattleBuffersTransferData[1] = 7; + gBattleBuffersTransferData[2] = 7; + gBattleBuffersTransferData[3] = 7; + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); +} + +void EmitTrainerSlide(u8 bufferId) +{ + gBattleBuffersTransferData[0] = CONTROLLER_TRAINERSLIDE; + gBattleBuffersTransferData[1] = 8; + gBattleBuffersTransferData[2] = 8; + gBattleBuffersTransferData[3] = 8; + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); +} + +void EmitTrainerSlideBack(u8 bufferId) +{ + gBattleBuffersTransferData[0] = CONTROLLER_TRAINERSLIDEBACK; + gBattleBuffersTransferData[1] = 9; + gBattleBuffersTransferData[2] = 9; + gBattleBuffersTransferData[3] = 9; + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); +} + +void EmitFaintAnimation(u8 bufferId) +{ + gBattleBuffersTransferData[0] = CONTROLLER_FAINTANIMATION; + gBattleBuffersTransferData[1] = 10; + gBattleBuffersTransferData[2] = 10; + gBattleBuffersTransferData[3] = 10; + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); +} + +void EmitCmd11(u8 bufferId) +{ + gBattleBuffersTransferData[0] = CONTROLLER_11; + gBattleBuffersTransferData[1] = 11; + gBattleBuffersTransferData[2] = 11; + gBattleBuffersTransferData[3] = 11; + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); +} + +void EmitCmd12(u8 bufferId) +{ + gBattleBuffersTransferData[0] = CONTROLLER_12; + gBattleBuffersTransferData[1] = 12; + gBattleBuffersTransferData[2] = 12; + gBattleBuffersTransferData[3] = 12; + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); +} + +void EmitBallThrow(u8 bufferId, u8 caseId) +{ + gBattleBuffersTransferData[0] = CONTROLLER_BALLTHROW; + gBattleBuffersTransferData[1] = caseId; + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2); +} + +void EmitPause(u8 bufferId, u8 toWait, void *data) +{ + s32 i; + + gBattleBuffersTransferData[0] = CONTROLLER_PAUSE; + gBattleBuffersTransferData[1] = toWait; + for (i = 0; i < toWait * 3; i++) + gBattleBuffersTransferData[2 + i] = *(u8*)(data++); + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, toWait * 3 + 2); +} + +void EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, struct DisableStruct *disableStructPtr, u8 multihit) +{ + gBattleBuffersTransferData[0] = CONTROLLER_MOVEANIMATION; + gBattleBuffersTransferData[1] = move; + gBattleBuffersTransferData[2] = (move & 0xFF00) >> 8; + gBattleBuffersTransferData[3] = turnOfMove; + gBattleBuffersTransferData[4] = movePower; + gBattleBuffersTransferData[5] = (movePower & 0xFF00) >> 8; + gBattleBuffersTransferData[6] = dmg; + gBattleBuffersTransferData[7] = (dmg & 0x0000FF00) >> 8; + gBattleBuffersTransferData[8] = (dmg & 0x00FF0000) >> 16; + gBattleBuffersTransferData[9] = (dmg & 0xFF000000) >> 24; + gBattleBuffersTransferData[10] = friendship; + gBattleBuffersTransferData[11] = multihit; + if (WEATHER_HAS_EFFECT2) + { + gBattleBuffersTransferData[12] = gBattleWeather; + gBattleBuffersTransferData[13] = (gBattleWeather & 0xFF00) >> 8; + } + else + { + gBattleBuffersTransferData[12] = 0; + gBattleBuffersTransferData[13] = 0; + } + gBattleBuffersTransferData[14] = 0; + gBattleBuffersTransferData[15] = 0; + memcpy(&gBattleBuffersTransferData[16], disableStructPtr, sizeof(struct DisableStruct)); + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 16 + sizeof(struct DisableStruct)); +} + +void EmitPrintString(u8 bufferId, u16 stringID) +{ + s32 i; + struct StringInfoBattle* stringInfo; + + gBattleBuffersTransferData[0] = CONTROLLER_PRINTSTRING; + gBattleBuffersTransferData[1] = gBattleOutcome; + gBattleBuffersTransferData[2] = stringID; + gBattleBuffersTransferData[3] = (stringID & 0xFF00) >> 8; + + stringInfo = (struct StringInfoBattle*)(&gBattleBuffersTransferData[4]); + stringInfo->currentMove = gCurrentMove; + stringInfo->lastMove = gLastUsedMove; + stringInfo->lastItem = gLastUsedItem; + stringInfo->lastAbility = gLastUsedAbility; + stringInfo->scrActive = gBattleScripting.bank; + stringInfo->unk1605E = gBattleStruct->field_52; + stringInfo->hpScale = gBattleStruct->hpScale; + stringInfo->StringBank = gStringBank; + stringInfo->moveType = gBattleMoves[gCurrentMove].type; + + for (i = 0; i < BATTLE_BANKS_COUNT; i++) + stringInfo->abilities[i] = gBattleMons[i].ability; + for (i = 0; i < TEXT_BUFF_ARRAY_COUNT; i++) + { + stringInfo->textBuffs[0][i] = gBattleTextBuff1[i]; + stringInfo->textBuffs[1][i] = gBattleTextBuff2[i]; + stringInfo->textBuffs[2][i] = gBattleTextBuff3[i]; + } + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, sizeof(struct StringInfoBattle) + 4); +} + +void EmitPrintStringPlayerOnly(u8 bufferId, u16 stringID) +{ + s32 i; + struct StringInfoBattle* stringInfo; + + gBattleBuffersTransferData[0] = CONTROLLER_PRINTSTRINGPLAYERONLY; + gBattleBuffersTransferData[1] = 17; + gBattleBuffersTransferData[2] = stringID; + gBattleBuffersTransferData[3] = (stringID & 0xFF00) >> 8; + + stringInfo = (struct StringInfoBattle*)(&gBattleBuffersTransferData[4]); + stringInfo->currentMove = gCurrentMove; + stringInfo->lastMove = gLastUsedMove; + stringInfo->lastItem = gLastUsedItem; + stringInfo->lastAbility = gLastUsedAbility; + stringInfo->scrActive = gBattleScripting.bank; + stringInfo->unk1605E = gBattleStruct->field_52; + + for (i = 0; i < BATTLE_BANKS_COUNT; i++) + stringInfo->abilities[i] = gBattleMons[i].ability; + for (i = 0; i < TEXT_BUFF_ARRAY_COUNT; i++) + { + stringInfo->textBuffs[0][i] = gBattleTextBuff1[i]; + stringInfo->textBuffs[1][i] = gBattleTextBuff2[i]; + stringInfo->textBuffs[2][i] = gBattleTextBuff3[i]; + } + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, sizeof(struct StringInfoBattle) + 4); +} + +void EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2) +{ + gBattleBuffersTransferData[0] = CONTROLLER_CHOOSEACTION; + gBattleBuffersTransferData[1] = arg1; + gBattleBuffersTransferData[2] = arg2; + gBattleBuffersTransferData[3] = (arg2 & 0xFF00) >> 8; + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); +} + +void EmitCmd19(u8 bufferId) +{ + gBattleBuffersTransferData[0] = CONTROLLER_19; + gBattleBuffersTransferData[1] = 19; + gBattleBuffersTransferData[2] = 19; + gBattleBuffersTransferData[3] = 19; + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); +} + +void EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData) +{ + s32 i; + + gBattleBuffersTransferData[0] = CONTROLLER_CHOOSEMOVE; + gBattleBuffersTransferData[1] = isDoubleBattle; + gBattleBuffersTransferData[2] = NoPpNumber; + gBattleBuffersTransferData[3] = 0; + for (i = 0; i < sizeof(*movePpData); i++) + gBattleBuffersTransferData[4 + i] = *((u8*)(movePpData) + i); + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, sizeof(*movePpData) + 4); +} + +void EmitOpenBag(u8 bufferId, u8 *arg1) +{ + s32 i; + + gBattleBuffersTransferData[0] = CONTROLLER_OPENBAG; + for (i = 0; i < 3; i++) + gBattleBuffersTransferData[1 + i] = arg1[i]; + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); +} + +void EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, u8* arg4) +{ + s32 i; + + gBattleBuffersTransferData[0] = CONTROLLER_CHOOSEPOKEMON; + gBattleBuffersTransferData[1] = caseId; + gBattleBuffersTransferData[2] = arg2; + gBattleBuffersTransferData[3] = abilityId; + for (i = 0; i < 3; i++) + gBattleBuffersTransferData[4 + i] = arg4[i]; + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 8); // but only 7 bytes were written +} + +void EmitCmd23(u8 bufferId) +{ + gBattleBuffersTransferData[0] = CONTROLLER_23; + gBattleBuffersTransferData[1] = 23; + gBattleBuffersTransferData[2] = 23; + gBattleBuffersTransferData[3] = 23; + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); +} + +// why is the argument u16 if it's being cast to s16 anyway? +void EmitHealthBarUpdate(u8 bufferId, u16 hpValue) +{ + gBattleBuffersTransferData[0] = CONTROLLER_HEALTHBARUPDATE; + gBattleBuffersTransferData[1] = 0; + gBattleBuffersTransferData[2] = (s16)hpValue; + gBattleBuffersTransferData[3] = ((s16)hpValue & 0xFF00) >> 8; + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); +} + +// why is the argument u16 if it's being cast to s16 anyway? +void EmitExpUpdate(u8 bufferId, u8 partyId, u16 expPoints) +{ + gBattleBuffersTransferData[0] = CONTROLLER_EXPUPDATE; + gBattleBuffersTransferData[1] = partyId; + gBattleBuffersTransferData[2] = (s16)expPoints; + gBattleBuffersTransferData[3] = ((s16)expPoints & 0xFF00) >> 8; + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); +} + +void EmitStatusIconUpdate(u8 bufferId, u32 status1, u32 status2) +{ + gBattleBuffersTransferData[0] = CONTROLLER_STATUSICONUPDATE; + gBattleBuffersTransferData[1] = status1; + gBattleBuffersTransferData[2] = (status1 & 0x0000FF00) >> 8; + gBattleBuffersTransferData[3] = (status1 & 0x00FF0000) >> 16; + gBattleBuffersTransferData[4] = (status1 & 0xFF000000) >> 24; + gBattleBuffersTransferData[5] = status2; + gBattleBuffersTransferData[6] = (status2 & 0x0000FF00) >> 8; + gBattleBuffersTransferData[7] = (status2 & 0x00FF0000) >> 16; + gBattleBuffersTransferData[8] = (status2 & 0xFF000000) >> 24; + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 9); +} + +void EmitStatusAnimation(u8 bufferId, bool8 status2, u32 status) +{ + gBattleBuffersTransferData[0] = CONTROLLER_STATUSANIMATION; + gBattleBuffersTransferData[1] = status2; + gBattleBuffersTransferData[2] = status; + gBattleBuffersTransferData[3] = (status & 0x0000FF00) >> 8; + gBattleBuffersTransferData[4] = (status & 0x00FF0000) >> 16; + gBattleBuffersTransferData[5] = (status & 0xFF000000) >> 24; + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 6); +} + +void EmitStatusXor(u8 bufferId, u8 b) +{ + gBattleBuffersTransferData[0] = CONTROLLER_STATUSXOR; + gBattleBuffersTransferData[1] = b; + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2); +} + +void EmitDataTransfer(u8 bufferId, u16 size, void *data) +{ + s32 i; + + gBattleBuffersTransferData[0] = CONTROLLER_DATATRANSFER; + gBattleBuffersTransferData[1] = 29; + gBattleBuffersTransferData[2] = size; + gBattleBuffersTransferData[3] = (size & 0xFF00) >> 8; + for (i = 0; i < size; i++) + gBattleBuffersTransferData[4 + i] = *(u8*)(data++); + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, size + 4); +} + +void EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, void *data) +{ + s32 i; + + gBattleBuffersTransferData[0] = CONTROLLER_DMA3TRANSFER; + gBattleBuffersTransferData[1] = (u32)(dst); + gBattleBuffersTransferData[2] = ((u32)(dst) & 0x0000FF00) >> 8; + gBattleBuffersTransferData[3] = ((u32)(dst) & 0x00FF0000) >> 16; + gBattleBuffersTransferData[4] = ((u32)(dst) & 0xFF000000) >> 24; + gBattleBuffersTransferData[5] = size; + gBattleBuffersTransferData[6] = (size & 0xFF00) >> 8; + for (i = 0; i < size; i++) + gBattleBuffersTransferData[7 + i] = *(u8*)(data++); + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, size + 7); +} + +void EmitPlayBGM(u8 bufferId, u16 songId, void *unusedDumbDataParameter) +{ + s32 i; + + gBattleBuffersTransferData[0] = CONTROLLER_31; + gBattleBuffersTransferData[1] = songId; + gBattleBuffersTransferData[2] = (songId & 0xFF00) >> 8; + for (i = 0; i < songId; i++) // ???? + gBattleBuffersTransferData[3 + i] = *(u8*)(unusedDumbDataParameter++); + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, songId + 3); +} + +void EmitCmd32(u8 bufferId, u16 size, void *data) +{ + s32 i; + + gBattleBuffersTransferData[0] = CONTROLLER_32; + gBattleBuffersTransferData[1] = size; + gBattleBuffersTransferData[2] = (size & 0xFF00) >> 8; + for (i = 0; i < size; i++) + gBattleBuffersTransferData[3 + i] = *(u8*)(data++); + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, size + 3); +} + +void EmitCmd33(u8 bufferId, u8 arg1, u16 arg2) +{ + gBattleBuffersTransferData[0] = CONTROLLER_33; + gBattleBuffersTransferData[1] = arg1; + gBattleBuffersTransferData[2] = arg2; + gBattleBuffersTransferData[3] = (arg2 & 0xFF00) >> 8; + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); +} + +void EmitCmd34(u8 bufferId, u8 b, u8 *c) +{ + s32 i; + + gBattleBuffersTransferData[0] = CONTROLLER_34; + gBattleBuffersTransferData[1] = b; + for (i = 0; i < 3; i++) + gBattleBuffersTransferData[2 + i] = c[i]; + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 5); +} + +void EmitCmd35(u8 bufferId, u16 b) +{ + gBattleBuffersTransferData[0] = CONTROLLER_35; + gBattleBuffersTransferData[1] = b; + gBattleBuffersTransferData[2] = (b & 0xFF00) >> 8; + gBattleBuffersTransferData[3] = 0; + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); +} + +void EmitCmd36(u8 bufferId, u16 b) +{ + gBattleBuffersTransferData[0] = CONTROLLER_36; + gBattleBuffersTransferData[1] = b; + gBattleBuffersTransferData[2] = (b & 0xFF00) >> 8; + gBattleBuffersTransferData[3] = 0; + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); +} + +void EmitCmd37(u8 bufferId) +{ + gBattleBuffersTransferData[0] = CONTROLLER_37; + gBattleBuffersTransferData[1] = 37; + gBattleBuffersTransferData[2] = 37; + gBattleBuffersTransferData[3] = 37; + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); +} + +void EmitCmd38(u8 bufferId, u8 b) +{ + gBattleBuffersTransferData[0] = CONTROLLER_38; + gBattleBuffersTransferData[1] = b; + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2); +} + +void EmitCmd39(u8 bufferId) +{ + gBattleBuffersTransferData[0] = CONTROLLER_39; + gBattleBuffersTransferData[1] = 39; + gBattleBuffersTransferData[2] = 39; + gBattleBuffersTransferData[3] = 39; + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); +} + +void EmitCmd40(u8 bufferId) +{ + gBattleBuffersTransferData[0] = CONTROLLER_40; + gBattleBuffersTransferData[1] = 40; + gBattleBuffersTransferData[2] = 40; + gBattleBuffersTransferData[3] = 40; + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); +} + +void EmitHitAnimation(u8 bufferId) +{ + gBattleBuffersTransferData[0] = CONTROLLER_HITANIMATION; + gBattleBuffersTransferData[1] = 41; + gBattleBuffersTransferData[2] = 41; + gBattleBuffersTransferData[3] = 41; + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); +} + +void EmitCmd42(u8 bufferId) +{ + gBattleBuffersTransferData[0] = CONTROLLER_42; + gBattleBuffersTransferData[1] = 42; + gBattleBuffersTransferData[2] = 42; + gBattleBuffersTransferData[3] = 42; + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); +} + +void EmitEffectivenessSound(u8 bufferId, u16 songId) +{ + gBattleBuffersTransferData[0] = CONTROLLER_EFFECTIVENESSSOUND; + gBattleBuffersTransferData[1] = songId; + gBattleBuffersTransferData[2] = (songId & 0xFF00) >> 8; + gBattleBuffersTransferData[3] = 0; + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); +} + +void EmitPlayFanfareOrBGM(u8 bufferId, u16 songId, bool8 playBGM) +{ + gBattleBuffersTransferData[0] = CONTROLLER_PLAYFANFAREORBGM; + gBattleBuffersTransferData[1] = songId; + gBattleBuffersTransferData[2] = (songId & 0xFF00) >> 8; + gBattleBuffersTransferData[3] = playBGM; + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); +} + +void EmitFaintingCry(u8 bufferId) +{ + gBattleBuffersTransferData[0] = CONTROLLER_FAINTINGCRY; + gBattleBuffersTransferData[1] = 45; + gBattleBuffersTransferData[2] = 45; + gBattleBuffersTransferData[3] = 45; + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); +} + +void EmitIntroSlide(u8 bufferId, u8 terrainId) +{ + gBattleBuffersTransferData[0] = CONTROLLER_INTROSLIDE; + gBattleBuffersTransferData[1] = terrainId; + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2); +} + +void EmitIntroTrainerBallThrow(u8 bufferId) +{ + gBattleBuffersTransferData[0] = CONTROLLER_INTROTRAINERBALLTHROW; + gBattleBuffersTransferData[1] = 47; + gBattleBuffersTransferData[2] = 47; + gBattleBuffersTransferData[3] = 47; + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); +} + +void EmitDrawPartyStatusSummary(u8 bufferId, struct HpAndStatus* hpAndStatus, u8 arg2) +{ + s32 i; + + gBattleBuffersTransferData[0] = CONTROLLER_DRAWPARTYSTATUSSUMMARY; + gBattleBuffersTransferData[1] = arg2 & 0x7F; + gBattleBuffersTransferData[2] = (arg2 & 0x80) >> 7; + gBattleBuffersTransferData[3] = 48; + for (i = 0; i < (s32)(sizeof(struct HpAndStatus) * 6); i++) + gBattleBuffersTransferData[4 + i] = *(i + (u8*)(hpAndStatus)); + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, sizeof(struct HpAndStatus) * 6 + 4); +} + +void EmitCmd49(u8 bufferId) +{ + gBattleBuffersTransferData[0] = CONTROLLER_49; + gBattleBuffersTransferData[1] = 49; + gBattleBuffersTransferData[2] = 49; + gBattleBuffersTransferData[3] = 49; + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); +} + +void EmitCmd50(u8 bufferId) +{ + gBattleBuffersTransferData[0] = CONTROLLER_50; + gBattleBuffersTransferData[1] = 50; + gBattleBuffersTransferData[2] = 50; + gBattleBuffersTransferData[3] = 50; + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); +} + +void EmitSpriteInvisibility(u8 bufferId, bool8 isInvisible) +{ + gBattleBuffersTransferData[0] = CONTROLLER_SPRITEINVISIBILITY; + gBattleBuffersTransferData[1] = isInvisible; + gBattleBuffersTransferData[2] = 51; + gBattleBuffersTransferData[3] = 51; + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); +} + +void EmitBattleAnimation(u8 bufferId, u8 animationId, u16 argument) +{ + gBattleBuffersTransferData[0] = CONTROLLER_BATTLEANIMATION; + gBattleBuffersTransferData[1] = animationId; + gBattleBuffersTransferData[2] = argument; + gBattleBuffersTransferData[3] = (argument & 0xFF00) >> 8; + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); +} + +void EmitLinkStandbyMsg(u8 bufferId, u8 arg1, bool32 arg2) +{ + bool8 arg2_ = arg2; + gBattleBuffersTransferData[0] = CONTROLLER_LINKSTANDBYMSG; + gBattleBuffersTransferData[1] = arg1; + + if (arg2_) + gBattleBuffersTransferData[3] = gBattleBuffersTransferData[2] = sub_81850DC(&gBattleBuffersTransferData[4]); + else + gBattleBuffersTransferData[3] = gBattleBuffersTransferData[2] = 0; + + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, gBattleBuffersTransferData[2] + 4); +} + +void EmitResetActionMoveSelection(u8 bufferId, u8 caseId) +{ + gBattleBuffersTransferData[0] = CONTROLLER_RESETACTIONMOVESELECTION; + gBattleBuffersTransferData[1] = caseId; + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2); +} + +void EmitCmd55(u8 bufferId, u8 arg1) +{ + gBattleBuffersTransferData[0] = CONTROLLER_55; + gBattleBuffersTransferData[1] = arg1; + gBattleBuffersTransferData[2] = gSaveBlock2Ptr->field_CA9_b; + gBattleBuffersTransferData[3] = gSaveBlock2Ptr->field_CA9_b; + gBattleBuffersTransferData[5] = gBattleBuffersTransferData[4] = sub_81850DC(&gBattleBuffersTransferData[6]); + PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, gBattleBuffersTransferData[4] + 6); +} diff --git a/src/battle_interface.c b/src/battle_interface.c new file mode 100644 index 000000000..9241db1d9 --- /dev/null +++ b/src/battle_interface.c @@ -0,0 +1,2632 @@ +#include "global.h" +#include "battle.h" +#include "pokemon.h" +#include "battle_controllers.h" +#include "battle_interface.h" +#include "sprite.h" +#include "window.h" +#include "string_util.h" +#include "text.h" +#include "sound.h" +#include "songs.h" +#include "decompress.h" +#include "task.h" +#include "util.h" +#include "gpu_regs.h" +#include "battle_message.h" +#include "species.h" +#include "pokedex.h" +#include "palette.h" +#include "international_string_util.h" +#include "safari_zone.h" +#include "battle_anim.h" + +enum +{ + HEALTH_BAR, + EXP_BAR +}; + +enum +{ + HP_CURRENT, + HP_MAX +}; + +struct TestingBar +{ + s32 maxValue; + s32 currValue; + s32 field_8; + u32 unkC_0:5; + u32 unk10; +}; + +enum +{ + HEALTHBOX_GFX_0, + HEALTHBOX_GFX_1, + HEALTHBOX_GFX_2, + HEALTHBOX_GFX_3, + HEALTHBOX_GFX_4, + HEALTHBOX_GFX_5, + HEALTHBOX_GFX_6, + HEALTHBOX_GFX_7, + HEALTHBOX_GFX_8, + HEALTHBOX_GFX_9, + HEALTHBOX_GFX_10, + HEALTHBOX_GFX_11, + HEALTHBOX_GFX_12, + HEALTHBOX_GFX_13, + HEALTHBOX_GFX_14, + HEALTHBOX_GFX_15, + HEALTHBOX_GFX_16, + HEALTHBOX_GFX_17, + HEALTHBOX_GFX_18, + HEALTHBOX_GFX_19, + HEALTHBOX_GFX_20, + HEALTHBOX_GFX_STATUS_PSN_BANK0, + HEALTHBOX_GFX_22, + HEALTHBOX_GFX_23, + HEALTHBOX_GFX_STATUS_PRZ_BANK0, + HEALTHBOX_GFX_25, + HEALTHBOX_GFX_26, + HEALTHBOX_GFX_STATUS_SLP_BANK0, + HEALTHBOX_GFX_28, + HEALTHBOX_GFX_29, + HEALTHBOX_GFX_STATUS_FRZ_BANK0, + HEALTHBOX_GFX_31, + HEALTHBOX_GFX_32, + HEALTHBOX_GFX_STATUS_BRN_BANK0, + HEALTHBOX_GFX_34, + HEALTHBOX_GFX_35, + HEALTHBOX_GFX_36, + HEALTHBOX_GFX_37, + HEALTHBOX_GFX_38, + HEALTHBOX_GFX_39, + HEALTHBOX_GFX_40, + HEALTHBOX_GFX_41, + HEALTHBOX_GFX_42, + HEALTHBOX_GFX_43, + HEALTHBOX_GFX_44, + HEALTHBOX_GFX_45, + HEALTHBOX_GFX_46, + HEALTHBOX_GFX_47, + HEALTHBOX_GFX_48, + HEALTHBOX_GFX_49, + HEALTHBOX_GFX_50, + HEALTHBOX_GFX_51, + HEALTHBOX_GFX_52, + HEALTHBOX_GFX_53, + HEALTHBOX_GFX_54, + HEALTHBOX_GFX_55, + HEALTHBOX_GFX_56, + HEALTHBOX_GFX_57, + HEALTHBOX_GFX_58, + HEALTHBOX_GFX_59, + HEALTHBOX_GFX_60, + HEALTHBOX_GFX_61, + HEALTHBOX_GFX_62, + HEALTHBOX_GFX_63, + HEALTHBOX_GFX_64, + HEALTHBOX_GFX_65, + HEALTHBOX_GFX_66, + HEALTHBOX_GFX_67, + HEALTHBOX_GFX_68, + HEALTHBOX_GFX_69, + HEALTHBOX_GFX_70, + HEALTHBOX_GFX_STATUS_PSN_BANK1, + HEALTHBOX_GFX_72, + HEALTHBOX_GFX_73, + HEALTHBOX_GFX_STATUS_PRZ_BANK1, + HEALTHBOX_GFX_75, + HEALTHBOX_GFX_76, + HEALTHBOX_GFX_STATUS_SLP_BANK1, + HEALTHBOX_GFX_78, + HEALTHBOX_GFX_79, + HEALTHBOX_GFX_STATUS_FRZ_BANK1, + HEALTHBOX_GFX_81, + HEALTHBOX_GFX_82, + HEALTHBOX_GFX_STATUS_BRN_BANK1, + HEALTHBOX_GFX_84, + HEALTHBOX_GFX_85, + HEALTHBOX_GFX_STATUS_PSN_BANK2, + HEALTHBOX_GFX_87, + HEALTHBOX_GFX_88, + HEALTHBOX_GFX_STATUS_PRZ_BANK2, + HEALTHBOX_GFX_90, + HEALTHBOX_GFX_91, + HEALTHBOX_GFX_STATUS_SLP_BANK2, + HEALTHBOX_GFX_93, + HEALTHBOX_GFX_94, + HEALTHBOX_GFX_STATUS_FRZ_BANK2, + HEALTHBOX_GFX_96, + HEALTHBOX_GFX_97, + HEALTHBOX_GFX_STATUS_BRN_BANK2, + HEALTHBOX_GFX_99, + HEALTHBOX_GFX_100, + HEALTHBOX_GFX_STATUS_PSN_BANK3, + HEALTHBOX_GFX_102, + HEALTHBOX_GFX_103, + HEALTHBOX_GFX_STATUS_PRZ_BANK3, + HEALTHBOX_GFX_105, + HEALTHBOX_GFX_106, + HEALTHBOX_GFX_STATUS_SLP_BANK3, + HEALTHBOX_GFX_108, + HEALTHBOX_GFX_109, + HEALTHBOX_GFX_STATUS_FRZ_BANK3, + HEALTHBOX_GFX_111, + HEALTHBOX_GFX_112, + HEALTHBOX_GFX_STATUS_BRN_BANK3, + HEALTHBOX_GFX_114, + HEALTHBOX_GFX_115, + HEALTHBOX_GFX_116, + HEALTHBOX_GFX_117, +}; + +extern u8 gBanksByIdentity[BATTLE_BANKS_COUNT]; +extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; +extern u8 gNoOfAllBanks; +extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT]; + +extern const u8 * const gNatureNamePointers[]; +extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1]; + +// strings +extern const u8 gText_Slash[]; +extern const u8 gText_HighlightDarkGrey[]; +extern const u8 gText_DynColor2[]; +extern const u8 gText_DynColor2Male[]; +extern const u8 gText_DynColor1Female[]; +extern const u8 gText_SafariBalls[]; +extern const u8 gText_SafariBallLeft[]; + +// graphics +extern const u8 gBattleInterface_BallStatusBarGfx[]; +extern const u8 gBattleInterface_BallDisplayGfx[]; +extern const u16 gBattleInterface_BallStatusBarPal[]; +extern const u16 gBattleInterface_BallDisplayPal[]; +extern const u8 gHealthboxElementsGfxTable[][32]; + +// functions +extern bool8 IsDoubleBattle(void); +extern void AddTextPrinterParametrized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, struct TextColor *color, s8 speed, const u8 *str); // menu.h +extern void LoadBattleBarGfx(u8 arg0); + +// this file's functions + +static const u8 *GetHealthboxElementGfxPtr(u8 elementId); +static u8* AddTextPrinterAndCreateWindowOnHealthbox(const u8 *str, u32 x, u32 y, u32 arg3, u32 *windowId); + +static void RemoveWindowOnHealthbox(u32 windowId); +static void UpdateHpTextInHealthboxInDoubles(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent); +static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId); + +static void sub_8075198(void *dest, u8 *windowTileData, s32 arg2); +static void sub_80751E4(void *dest, u8 *windowTileData, u32 arg2); +static void sub_8075170(void *dest, u8 *windowTileData, u32 arg2); +static void sub_807513C(void *dest, u32 arg1, u32 arg2); + +static void sub_8073E08(u8 taskId); +static void sub_8073F98(u8 taskId); +static void sub_8073E64(u8 taskId); + +static void sub_8072924(struct Sprite *sprite); +static void sub_80728B4(struct Sprite *sprite); +static void sub_8074158(struct Sprite *sprite); +static void sub_8074090(struct Sprite *sprite); +static void SpriteCB_StatusSummaryBar(struct Sprite *sprite); +static void SpriteCB_StatusSummaryBallsOnBattleStart(struct Sprite *sprite); +static void SpriteCB_StatusSummaryBallsOnSwitchout(struct Sprite *sprite); + +static u8 GetStatusIconForBankId(u8 statusElementId, u8 bank); +static s32 sub_8074DB8(s32 maxValue, s32 currValue, s32 arg2, s32 *arg3, u8 arg4, u16 arg5); +static u8 GetScaledExpFraction(s32 currValue, s32 arg1, s32 maxValue, u8 scale); +static void sub_8074B9C(u8 bank, u8 whichBar); +static u8 sub_8074E8C(s32 maxValue, s32 currValue, s32 arg2, s32 *arg3, u8 *arg4, u8 arg5); +static void sub_8074F88(struct TestingBar *barInfo, s32 *arg1, u16 *arg2); + +// const rom data +static const struct OamData sUnknown_0832C138 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 1, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct SpriteTemplate sHealthboxPlayerSpriteTemplates[2] = +{ + { + .tileTag = TAG_HEALTHBOX_PLAYER1_TILE, + .paletteTag = TAG_HEALTHBOX_PAL, + .oam = &sUnknown_0832C138, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy + }, + { + .tileTag = TAG_HEALTHBOX_PLAYER2_TILE, + .paletteTag = TAG_HEALTHBOX_PAL, + .oam = &sUnknown_0832C138, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy + } +}; + +static const struct SpriteTemplate sHealthboxOpponentSpriteTemplates[2] = +{ + { + .tileTag = TAG_HEALTHBOX_OPPONENT1_TILE, + .paletteTag = TAG_HEALTHBOX_PAL, + .oam = &sUnknown_0832C138, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy + }, + { + .tileTag = TAG_HEALTHBOX_OPPONENT2_TILE, + .paletteTag = TAG_HEALTHBOX_PAL, + .oam = &sUnknown_0832C138, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy + } +}; + +static const struct SpriteTemplate sHealthboxSafariSpriteTemplate = +{ + .tileTag = TAG_HEALTHBOX_SAFARI_TILE, + .paletteTag = TAG_HEALTHBOX_PAL, + .oam = &sUnknown_0832C138, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +static const struct OamData sUnknown_0832C1B8 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 1, + .x = 0, + .matrixNum = 0, + .size = 1, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct SpriteTemplate sUnknown_0832C1C0[4] = +{ + { + .tileTag = 0xd704, + .paletteTag = 0xd704, + .oam = &sUnknown_0832C1B8, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80728B4 + }, + { + .tileTag = 0xd705, + .paletteTag = 0xd704, + .oam = &sUnknown_0832C1B8, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80728B4 + }, + { + .tileTag = 0xd706, + .paletteTag = 0xd704, + .oam = &sUnknown_0832C1B8, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80728B4 + }, + { + .tileTag = 0xd707, + .paletteTag = 0xd704, + .oam = &sUnknown_0832C1B8, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80728B4 + } +}; + +static const struct Subsprite sUnknown_0832C220[] = +{ + {240, 0, 1, 3, 0, 1}, + {48, 0, 0, 2, 32, 1}, + {240, 32, 1, 1, 48, 1}, + {16, 32, 1, 1, 52, 1}, + {48, 32, 1, 1, 56, 1} +}; + +static const struct Subsprite sUnknown_0832C234[] = +{ + {240, 0, 1, 3, 64, 1}, + {48, 0, 0, 2, 96, 1}, + {240, 32, 1, 1, 112, 1}, + {16, 32, 1, 1, 116, 1}, + {48, 32, 1, 1, 120, 1} +}; + +static const struct Subsprite sUnknown_0832C248[] = +{ + {240, 0, 1, 3, 0, 1}, + {48, 0, 0, 2, 32, 1} +}; + +static const struct Subsprite sUnknown_0832C250[] = +{ + {240, 0, 1, 3, 0, 1}, + {48, 0, 0, 2, 32, 1} +}; + +static const struct Subsprite sUnknown_0832C258[] = +{ + {240, 0, 1, 1, 0, 1}, + {16, 0, 1, 1, 4, 1} +}; + +static const struct Subsprite sUnknown_0832C260[] = +{ + {240, 0, 1, 1, 0, 1}, + {16, 0, 1, 1, 4, 1}, + {224, 0, 0, 0, 8, 1} +}; + +// unused subsprite table +static const struct SubspriteTable sUnknown_0832C26C[] = +{ + {ARRAY_COUNT(sUnknown_0832C220), sUnknown_0832C220}, + {ARRAY_COUNT(sUnknown_0832C248), sUnknown_0832C248}, + {ARRAY_COUNT(sUnknown_0832C234), sUnknown_0832C234}, + {ARRAY_COUNT(sUnknown_0832C250), sUnknown_0832C250} +}; + +static const struct SubspriteTable sUnknown_0832C28C[] = +{ + {ARRAY_COUNT(sUnknown_0832C258), sUnknown_0832C258}, + {ARRAY_COUNT(sUnknown_0832C260), sUnknown_0832C260} +}; + +static const struct Subsprite sStatusSummaryBar_Subsprites_0[] = +{ + {160, 0, 1, 1, 0, 1}, + {192, 0, 1, 1, 4, 1}, + {224, 0, 1, 1, 8, 1}, + {0, 0, 1, 1, 12, 1} +}; + +static const struct Subsprite sUnknown_0832C2AC[] = +{ + {160, 0, 1, 1, 0, 1}, + {192, 0, 1, 1, 4, 1}, + {224, 0, 1, 1, 8, 1}, + {0, 0, 1, 1, 8, 1}, + {32, 0, 1, 1, 8, 1}, + {64, 0, 1, 1, 12, 1} +}; + +static const struct SubspriteTable sStatusSummaryBar_SubspriteTable[] = +{ + {ARRAY_COUNT(sStatusSummaryBar_Subsprites_0), sStatusSummaryBar_Subsprites_0} +}; + +static const struct SubspriteTable sUnknown_0832C2CC[] = +{ + {ARRAY_COUNT(sUnknown_0832C2AC), sUnknown_0832C2AC} +}; + +// unused unknown image +static const u8 sUnknown_0832C2D4[] = INCBIN_U8("graphics/battle_interface/unknown_32C2D4.4bpp"); + +static const struct CompressedSpriteSheet sStatusSummaryBarSpriteSheet = +{ + gBattleInterface_BallStatusBarGfx, 0x200, TAG_STATUS_SUMMARY_BAR_TILE +}; + +static const struct SpritePalette sStatusSummaryBarSpritePal = +{ + gBattleInterface_BallStatusBarPal, TAG_STATUS_SUMMARY_BAR_PAL +}; + +static const struct SpritePalette sStatusSummaryBallsSpritePal = +{ + gBattleInterface_BallDisplayPal, TAG_STATUS_SUMMARY_BALLS_PAL +}; + +static const struct SpriteSheet sStatusSummaryBallsSpriteSheet = +{ + gBattleInterface_BallDisplayGfx, 0x80, TAG_STATUS_SUMMARY_BALLS_TILE +}; + +// unused oam data +static const struct OamData sUnknown_0832C354 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 1, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct OamData sOamData_StatusSummaryBalls = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct SpriteTemplate sStatusSummaryBarSpriteTemplates[2] = +{ + { + .tileTag = TAG_STATUS_SUMMARY_BAR_TILE, + .paletteTag = TAG_STATUS_SUMMARY_BAR_PAL, + .oam = &sUnknown_0832C138, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_StatusSummaryBar + }, + { + .tileTag = TAG_STATUS_SUMMARY_BAR_TILE, + .paletteTag = TAG_STATUS_SUMMARY_BAR_PAL, + .oam = &sUnknown_0832C138, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_StatusSummaryBar + } +}; + +static const struct SpriteTemplate sStatusSummaryBallsSpriteTemplates[2] = +{ + { + .tileTag = TAG_STATUS_SUMMARY_BALLS_TILE, + .paletteTag = TAG_STATUS_SUMMARY_BALLS_PAL, + .oam = &sOamData_StatusSummaryBalls, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_StatusSummaryBallsOnBattleStart + }, + { + .tileTag = TAG_STATUS_SUMMARY_BALLS_TILE, + .paletteTag = TAG_STATUS_SUMMARY_BALLS_PAL, + .oam = &sOamData_StatusSummaryBalls, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_StatusSummaryBallsOnBattleStart + } +}; + +// possibly text +static const u8 sUnknown_0832C3C4[] = +{ + 0xfc, 0x01, 0x01, 0xfc, 0x02, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, +}; + +// possibly text +static const u8 sUnknown_0832C3D8[] = +{ + 0xfc, 0x01, 0x01, 0xfc, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, +}; + +enum +{ + PAL_STATUS_PSN, + PAL_STATUS_PAR, + PAL_STATUS_SLP, + PAL_STATUS_FRZ, + PAL_STATUS_BRN +}; + +static const u16 sStatusIconPalettes[] = +{ + 0x6198, // PAL_STATUS_PSN + 0xEF7, // PAL_STATUS_PAR + 0x4694, // PAL_STATUS_SLP + 0x72D1, // PAL_STATUS_FRZ + 0x29DC // PAL_STATUS_BRN +}; + +static const struct WindowTemplate sHealthboxWindowTemplate = {0, 0, 0, 8, 2, 0, 0}; // width = 8, height = 2 + +// code + +static s32 DummiedOutFunction(s16 unused1, s16 unused2, s32 unused3) +{ + return 9; +} + +#ifdef NONMATCHING +static void sub_8072308(s16 arg0, u16 *arg1, u8 arg2) +{ + s8 i, j; + u8 array[4]; + u8 *arrayPtr; + s32 r9, vaaa; + + for (i = 0; i < 4; i++) + array[i] = 0; + + i = 3; + r9 = -1; + arrayPtr = array; + while (1) + { + if (arg0 > 0) + { + array[i] = arg0 % 10; + arg0 = arg0 / 10; + i--; + } + else + { + break; + } + } + + for (; i > -1; i--) + { + array[i] = 0xFF; + } + + if (arrayPtr[3] == 0xFF) + arrayPtr[3] = 0; + + if (arg2 == 0) + { + for (i = 0, j = 0; i < 4; i++) + { + if (array[j] == 0xFF) + { + arg1[j] &= 0xFC00; + arg1[j] |= 0x1E; + + arg1[i + 0x20] &= 0xFC00; + arg1[i + 0x20] |= 0x1E; + } + else + { + arg1[j] &= 0xFC00; + arg1[j] |= array[j] + 0x14; + + arg1[i + 0x20] &= 0xFC00; + arg1[i + 0x20] |= array[i] + 0x34; + } + j++; + } + } + else + { + for (i = 0; i < 4; i++) + { + if (array[i] == 0xFF) + { + arg1[i] &= 0xFC00; + arg1[i] |= 0x1E; + + arg1[i + 0x20] &= 0xFC00; + arg1[i + 0x20] |= 0x1E; + } + else + { + arg1[i] &= 0xFC00; + arg1[i] |= array[i] + 0x14; + + arg1[i + 0x20] &= 0xFC00; + arg1[i + 0x20] |= array[i] + 0x34; + } + } + } +} + +#else +__attribute__((naked)) +static void sub_8072308(s16 arg0, u16 *arg1, u8 arg2) +{ + 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\ + sub sp, 0x4\n\ + adds r7, r1, 0\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + lsls r2, 24\n\ + lsrs r2, 24\n\ + mov r10, r2\n\ + movs r3, 0\n\ + movs r2, 0\n\ +_08072324:\n\ + lsls r0, r3, 24\n\ + asrs r0, 24\n\ + mov r3, sp\n\ + adds r1, r3, r0\n\ + strb r2, [r1]\n\ + adds r0, 0x1\n\ + lsls r0, 24\n\ + lsrs r3, r0, 24\n\ + asrs r0, 24\n\ + cmp r0, 0x3\n\ + ble _08072324\n\ + movs r3, 0x3\n\ + movs r0, 0x1\n\ + negs r0, r0\n\ + mov r9, r0\n\ + mov r8, sp\n\ +_08072344:\n\ + lsls r0, r5, 16\n\ + asrs r6, r0, 16\n\ + cmp r6, 0\n\ + ble _08072372\n\ + lsls r4, r3, 24\n\ + asrs r4, 24\n\ + mov r1, sp\n\ + adds r5, r1, r4\n\ + adds r0, r6, 0\n\ + movs r1, 0xA\n\ + bl __modsi3\n\ + strb r0, [r5]\n\ + adds r0, r6, 0\n\ + movs r1, 0xA\n\ + bl __divsi3\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + subs r4, 0x1\n\ + lsls r4, 24\n\ + lsrs r3, r4, 24\n\ + b _08072344\n\ +_08072372:\n\ + lsls r1, r3, 24\n\ + asrs r0, r1, 24\n\ + cmp r0, r9\n\ + ble _08072396\n\ + movs r4, 0xFF\n\ + movs r3, 0x1\n\ + negs r3, r3\n\ +_08072380:\n\ + asrs r2, r1, 24\n\ + mov r5, sp\n\ + adds r1, r5, r2\n\ + ldrb r0, [r1]\n\ + orrs r0, r4\n\ + strb r0, [r1]\n\ + subs r2, 0x1\n\ + lsls r1, r2, 24\n\ + asrs r0, r1, 24\n\ + cmp r0, r3\n\ + bgt _08072380\n\ +_08072396:\n\ + mov r1, r8\n\ + ldrb r0, [r1, 0x3]\n\ + cmp r0, 0xFF\n\ + bne _080723A2\n\ + movs r0, 0\n\ + strb r0, [r1, 0x3]\n\ +_080723A2:\n\ + mov r2, r10\n\ + cmp r2, 0\n\ + bne _08072432\n\ + movs r3, 0\n\ + movs r1, 0\n\ + movs r6, 0xFC\n\ + lsls r6, 8\n\ + movs r5, 0x1E\n\ + mov r12, r5\n\ +_080723B4:\n\ + lsls r1, 24\n\ + asrs r2, r1, 24\n\ + mov r0, sp\n\ + adds r5, r0, r2\n\ + ldrb r0, [r5]\n\ + mov r8, r1\n\ + cmp r0, 0xFF\n\ + bne _080723EA\n\ + lsls r1, r2, 1\n\ + adds r1, r7\n\ + ldrh r2, [r1]\n\ + adds r0, r6, 0\n\ + ands r0, r2\n\ + mov r2, r12\n\ + orrs r0, r2\n\ + strh r0, [r1]\n\ + lsls r3, 24\n\ + asrs r1, r3, 23\n\ + adds r1, r7\n\ + adds r1, 0x40\n\ + ldrh r2, [r1]\n\ + adds r0, r6, 0\n\ + ands r0, r2\n\ + mov r5, r12\n\ + orrs r0, r5\n\ + strh r0, [r1]\n\ + b _0807241A\n\ +_080723EA:\n\ + lsls r2, 1\n\ + adds r2, r7\n\ + ldrh r0, [r2]\n\ + adds r1, r6, 0\n\ + ands r1, r0\n\ + ldrb r0, [r5]\n\ + adds r0, 0x14\n\ + orrs r1, r0\n\ + strh r1, [r2]\n\ + lsls r4, r3, 24\n\ + asrs r3, r4, 24\n\ + lsls r2, r3, 1\n\ + adds r2, r7\n\ + adds r2, 0x40\n\ + ldrh r0, [r2]\n\ + adds r1, r6, 0\n\ + ands r1, r0\n\ + mov r5, sp\n\ + adds r0, r5, r3\n\ + ldrb r0, [r0]\n\ + adds r0, 0x34\n\ + orrs r1, r0\n\ + strh r1, [r2]\n\ + adds r3, r4, 0\n\ +_0807241A:\n\ + movs r0, 0x80\n\ + lsls r0, 17\n\ + add r0, r8\n\ + lsrs r1, r0, 24\n\ + movs r2, 0x80\n\ + lsls r2, 17\n\ + adds r0, r3, r2\n\ + lsrs r3, r0, 24\n\ + asrs r0, 24\n\ + cmp r0, 0x3\n\ + ble _080723B4\n\ + b _08072496\n\ +_08072432:\n\ + movs r3, 0\n\ + movs r4, 0xFC\n\ + lsls r4, 8\n\ + movs r6, 0x1E\n\ +_0807243A:\n\ + lsls r1, r3, 24\n\ + asrs r2, r1, 24\n\ + mov r3, sp\n\ + adds r5, r3, r2\n\ + ldrb r0, [r5]\n\ + adds r3, r1, 0\n\ + cmp r0, 0xFF\n\ + bne _08072466\n\ + lsls r1, r2, 1\n\ + adds r1, r7\n\ + ldrh r2, [r1]\n\ + adds r0, r4, 0\n\ + ands r0, r2\n\ + orrs r0, r6\n\ + strh r0, [r1]\n\ + adds r1, 0x40\n\ + ldrh r2, [r1]\n\ + adds r0, r4, 0\n\ + ands r0, r2\n\ + orrs r0, r6\n\ + strh r0, [r1]\n\ + b _08072488\n\ +_08072466:\n\ + lsls r2, 1\n\ + adds r2, r7\n\ + ldrh r0, [r2]\n\ + adds r1, r4, 0\n\ + ands r1, r0\n\ + ldrb r0, [r5]\n\ + adds r0, 0x14\n\ + orrs r1, r0\n\ + strh r1, [r2]\n\ + adds r2, 0x40\n\ + ldrh r0, [r2]\n\ + adds r1, r4, 0\n\ + ands r1, r0\n\ + ldrb r0, [r5]\n\ + adds r0, 0x34\n\ + orrs r1, r0\n\ + strh r1, [r2]\n\ +_08072488:\n\ + movs r5, 0x80\n\ + lsls r5, 17\n\ + adds r0, r3, r5\n\ + lsrs r3, r0, 24\n\ + asrs r0, 24\n\ + cmp r0, 0x3\n\ + ble _0807243A\n\ +_08072496:\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 + +void sub_80724A8(s16 arg0, s16 arg1, u16 *arg2) +{ + arg2[4] = 0x1E; + sub_8072308(arg1, arg2, 0); + sub_8072308(arg0, arg2 + 5, 1); +} + +// because the healthbox is too large to fit into one sprite, it is divided into two sprites +// healthboxSpriteId_1 or healthboxSpriteId refers to the 'main' healthbox +// healthboxSpriteId_2 refers to the other part +// there's also one other sprite that appears to be a black square? dont fully understand its role + +u8 CreateBankHealthboxSprites(u8 bank) +{ + s16 data6 = 0; + u8 healthboxSpriteId_1, healthboxSpriteId_2; + u8 unkSpriteId; + struct Sprite *unkSpritePtr; + + if (!IsDoubleBattle()) + { + if (GetBankSide(bank) == SIDE_PLAYER) + { + healthboxSpriteId_1 = CreateSprite(&sHealthboxPlayerSpriteTemplates[0], 240, 160, 1); + healthboxSpriteId_2 = CreateSpriteAtEnd(&sHealthboxPlayerSpriteTemplates[0], 240, 160, 1); + + gSprites[healthboxSpriteId_1].oam.shape = 0; + + gSprites[healthboxSpriteId_2].oam.shape = 0; + gSprites[healthboxSpriteId_2].oam.tileNum += 64; + } + else + { + healthboxSpriteId_1 = CreateSprite(&sHealthboxOpponentSpriteTemplates[0], 240, 160, 1); + healthboxSpriteId_2 = CreateSpriteAtEnd(&sHealthboxOpponentSpriteTemplates[0], 240, 160, 1); + + gSprites[healthboxSpriteId_2].oam.tileNum += 32; + + data6 = 2; + } + gSprites[healthboxSpriteId_1].oam.affineParam = healthboxSpriteId_2; + gSprites[healthboxSpriteId_2].data5 = healthboxSpriteId_1; + gSprites[healthboxSpriteId_2].callback = sub_8072924; + } + else + { + if (GetBankSide(bank) == SIDE_PLAYER) + { + healthboxSpriteId_1 = CreateSprite(&sHealthboxPlayerSpriteTemplates[GetBankIdentity(bank) / 2], 240, 160, 1); + healthboxSpriteId_2 = CreateSpriteAtEnd(&sHealthboxPlayerSpriteTemplates[GetBankIdentity(bank) / 2], 240, 160, 1); + + gSprites[healthboxSpriteId_1].oam.affineParam = healthboxSpriteId_2; + + gSprites[healthboxSpriteId_2].data5 = healthboxSpriteId_1; + gSprites[healthboxSpriteId_2].oam.tileNum += 32; + gSprites[healthboxSpriteId_2].callback = sub_8072924; + + data6 = 1; + } + else + { + healthboxSpriteId_1 = CreateSprite(&sHealthboxOpponentSpriteTemplates[GetBankIdentity(bank) / 2], 240, 160, 1); + healthboxSpriteId_2 = CreateSpriteAtEnd(&sHealthboxOpponentSpriteTemplates[GetBankIdentity(bank) / 2], 240, 160, 1); + + gSprites[healthboxSpriteId_1].oam.affineParam = healthboxSpriteId_2; + + gSprites[healthboxSpriteId_2].data5 = healthboxSpriteId_1; + gSprites[healthboxSpriteId_2].oam.tileNum += 32; + gSprites[healthboxSpriteId_2].callback = sub_8072924; + + data6 = 2; + } + } + + unkSpriteId = CreateSpriteAtEnd(&sUnknown_0832C1C0[gBanksByIdentity[bank]], 140, 60, 0); + unkSpritePtr = &gSprites[unkSpriteId]; + SetSubspriteTables(unkSpritePtr, &sUnknown_0832C28C[GetBankSide(bank)]); + unkSpritePtr->subspriteMode = 2; + unkSpritePtr->oam.priority = 1; + + CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_1), (void*)(OBJ_VRAM0 + unkSpritePtr->oam.tileNum * 32), 64); + + gSprites[healthboxSpriteId_1].data5 = unkSpriteId; + gSprites[healthboxSpriteId_1].data6 = bank; + gSprites[healthboxSpriteId_1].invisible = 1; + + gSprites[healthboxSpriteId_2].invisible = 1; + + unkSpritePtr->data5 = healthboxSpriteId_1; + unkSpritePtr->data6 = data6; + unkSpritePtr->invisible = 1; + + return healthboxSpriteId_1; +} + +u8 CreateSafariPlayerHealthboxSprites(void) +{ + u8 healthboxSpriteId_1, healthboxSpriteId_2; + + healthboxSpriteId_1 = CreateSprite(&sHealthboxSafariSpriteTemplate, 240, 160, 1); + healthboxSpriteId_2 = CreateSpriteAtEnd(&sHealthboxSafariSpriteTemplate, 240, 160, 1); + + gSprites[healthboxSpriteId_1].oam.shape = 0; + gSprites[healthboxSpriteId_2].oam.shape = 0; + + gSprites[healthboxSpriteId_2].oam.tileNum += 64; + + gSprites[healthboxSpriteId_1].oam.affineParam = healthboxSpriteId_2; + gSprites[healthboxSpriteId_2].data5 = healthboxSpriteId_1; + + gSprites[healthboxSpriteId_2].callback = sub_8072924; + + return healthboxSpriteId_1; +} + +static const u8 *GetHealthboxElementGfxPtr(u8 elementId) +{ + return gHealthboxElementsGfxTable[elementId]; +} + +static void sub_80728B4(struct Sprite *sprite) +{ + u8 var = sprite->data5; + + switch (sprite->data6) + { + case 0: + sprite->pos1.x = gSprites[var].pos1.x + 16; + sprite->pos1.y = gSprites[var].pos1.y; + break; + case 1: + sprite->pos1.x = gSprites[var].pos1.x + 16; + sprite->pos1.y = gSprites[var].pos1.y; + break; + case 2: + default: + sprite->pos1.x = gSprites[var].pos1.x + 8; + sprite->pos1.y = gSprites[var].pos1.y; + break; + } + + sprite->pos2.x = gSprites[var].pos2.x; + sprite->pos2.y = gSprites[var].pos2.y; +} + +static void sub_8072924(struct Sprite *sprite) +{ + u8 otherSpriteId = sprite->data5; + + sprite->pos1.x = gSprites[otherSpriteId].pos1.x + 64; + sprite->pos1.y = gSprites[otherSpriteId].pos1.y; + + sprite->pos2.x = gSprites[otherSpriteId].pos2.x; + sprite->pos2.y = gSprites[otherSpriteId].pos2.y; +} + +void SetBattleBarStruct(u8 bank, u8 healthboxSpriteId, s32 maxVal, s32 currVal, s32 field_C) +{ + gBattleSpritesDataPtr->battleBars[bank].healthboxSpriteId = healthboxSpriteId; + gBattleSpritesDataPtr->battleBars[bank].maxValue = maxVal; + gBattleSpritesDataPtr->battleBars[bank].currentValue = currVal; + gBattleSpritesDataPtr->battleBars[bank].field_C = field_C; + gBattleSpritesDataPtr->battleBars[bank].field_10 = -32768; +} + +void SetHealthboxSpriteInvisible(u8 healthboxSpriteId) +{ + gSprites[healthboxSpriteId].invisible = 1; + gSprites[gSprites[healthboxSpriteId].data5].invisible = 1; + gSprites[gSprites[healthboxSpriteId].oam.affineParam].invisible = 1; +} + +void SetHealthboxSpriteVisible(u8 healthboxSpriteId) +{ + gSprites[healthboxSpriteId].invisible = 0; + gSprites[gSprites[healthboxSpriteId].data5].invisible = 0; + gSprites[gSprites[healthboxSpriteId].oam.affineParam].invisible = 0; +} + +static void UpdateSpritePos(u8 spriteId, s16 x, s16 y) +{ + gSprites[spriteId].pos1.x = x; + gSprites[spriteId].pos1.y = y; +} + +void DestoryHealthboxSprite(u8 healthboxSpriteId) +{ + DestroySprite(&gSprites[gSprites[healthboxSpriteId].oam.affineParam]); + DestroySprite(&gSprites[gSprites[healthboxSpriteId].data5]); + DestroySprite(&gSprites[healthboxSpriteId]); +} + +void DummyBattleInterfaceFunc(u8 healthboxSpriteId, bool8 isDoubleBattleBankOnly) +{ + +} + +void UpdateOamPriorityInAllHealthboxes(u8 priority) +{ + s32 i; + + for (i = 0; i < gNoOfAllBanks; i++) + { + u8 healthboxSpriteId_1 = gHealthBoxesIds[i]; + u8 healthboxSpriteId_2 = gSprites[gHealthBoxesIds[i]].oam.affineParam; + u8 healthboxSpriteId_3 = gSprites[gHealthBoxesIds[i]].data5; + + gSprites[healthboxSpriteId_1].oam.priority = priority; + gSprites[healthboxSpriteId_2].oam.priority = priority; + gSprites[healthboxSpriteId_3].oam.priority = priority; + } +} + +void SetBankHealthboxSpritePos(u8 bank) +{ + s16 x = 0, y = 0; + + if (!IsDoubleBattle()) + { + if (GetBankSide(bank) != SIDE_PLAYER) + x = 44, y = 30; + else + x = 158, y = 88; + } + else + { + switch (GetBankIdentity(bank)) + { + case IDENTITY_PLAYER_MON1: + x = 159, y = 76; + break; + case IDENTITY_PLAYER_MON2: + x = 171, y = 101; + break; + case IDENTITY_OPPONENT_MON1: + x = 44, y = 19; + break; + case IDENTITY_OPPONENT_MON2: + x = 32, y = 44; + break; + } + } + + UpdateSpritePos(gHealthBoxesIds[bank], x, y); +} + +static void UpdateLvlInHealthbox(u8 healthboxSpriteId, u8 lvl) +{ + u32 windowId, spriteTileNum; + u8 *windowTileData; + u8 text[16]; + u32 xPos, var1; + void *objVram; + + text[0] = 0xF9; + text[1] = 5; + + xPos = (u32) ConvertIntToDecimalStringN(text + 2, lvl, STR_CONV_MODE_LEFT_ALIGN, 3); + // Alright, that part was unmatchable. It's basically doing: + // xPos = 5 * (3 - (u32)(&text[2])); + xPos--; + xPos--; + xPos -= ((u32)(text)); + var1 = (3 - xPos); + xPos = 4 * var1; + xPos += var1; + + windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(text, xPos, 3, 2, &windowId); + spriteTileNum = gSprites[healthboxSpriteId].oam.tileNum * 32; + + if (GetBankSide(gSprites[healthboxSpriteId].data6) == SIDE_PLAYER) + { + objVram = (void*)(OBJ_VRAM0); + if (!IsDoubleBattle()) + objVram += spriteTileNum + 0x820; + else + objVram += spriteTileNum + 0x420; + } + else + { + objVram = (void*)(OBJ_VRAM0); + objVram += spriteTileNum + 0x400; + } + sub_8075198(objVram, windowTileData, 3); + RemoveWindowOnHealthbox(windowId); +} + +void UpdateHpTextInHealthbox(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent) +{ + u32 windowId, spriteTileNum; + u8 *windowTileData; + u8 text[32]; + void *objVram; + + if (GetBankSide(gSprites[healthboxSpriteId].data6) == SIDE_PLAYER && !IsDoubleBattle()) + { + spriteTileNum = gSprites[healthboxSpriteId].oam.tileNum * 32; + if (maxOrCurrent != HP_CURRENT) // singles, max + { + ConvertIntToDecimalStringN(text, value, STR_CONV_MODE_RIGHT_ALIGN, 3); + windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(text, 0, 5, 2, &windowId); + objVram = (void*)(OBJ_VRAM0); + objVram += spriteTileNum + 0xB40; + sub_8075170(objVram, windowTileData, 2); + RemoveWindowOnHealthbox(windowId); + } + else // singles, current + { + ConvertIntToDecimalStringN(text, value, STR_CONV_MODE_RIGHT_ALIGN, 3); + text[3] = CHAR_SLASH; + text[4] = EOS; + windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(text, 4, 5, 2, &windowId); + objVram = (void*)(OBJ_VRAM0); + objVram += spriteTileNum + 0x3E0; + sub_8075170(objVram, windowTileData, 1); + objVram = (void*)(OBJ_VRAM0); + objVram += spriteTileNum + 0xB00; + sub_8075170(objVram, windowTileData + 0x20, 2); + RemoveWindowOnHealthbox(windowId); + } + + } + else + { + u8 bank; + + memcpy(text, sUnknown_0832C3C4, sizeof(sUnknown_0832C3C4)); + bank = gSprites[healthboxSpriteId].data6; + if (IsDoubleBattle() == TRUE || GetBankSide(bank) == SIDE_OPPONENT) + { + UpdateHpTextInHealthboxInDoubles(healthboxSpriteId, value, maxOrCurrent); + } + else + { + u32 var; + u8 i; + + if (GetBankSide(gSprites[healthboxSpriteId].data6) == SIDE_PLAYER) + { + if (maxOrCurrent == HP_CURRENT) + var = 29; + else + var = 89; + } + else + { + if (maxOrCurrent == HP_CURRENT) + var = 20; + else + var = 48; + } + + ConvertIntToDecimalStringN(text + 6, value, STR_CONV_MODE_RIGHT_ALIGN, 3); + RenderTextFont9(gMonSpritesGfxPtr->fontPixels, 9, text); + + for (i = 0; i < 3; i++) + { + CpuCopy32(&gMonSpritesGfxPtr->fontPixels[i * 64 + 32], + (void*)((OBJ_VRAM0) + 32 * (gSprites[healthboxSpriteId].oam.tileNum + var + i)), + 0x20); + } + } + } +} + +static void UpdateHpTextInHealthboxInDoubles(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent) +{ + u32 windowId, spriteTileNum; + u8 *windowTileData; + u8 text[32]; + void *objVram; + + if (GetBankSide(gSprites[healthboxSpriteId].data6) == SIDE_PLAYER) + { + if (gBattleSpritesDataPtr->bankData[gSprites[healthboxSpriteId].data6].hpNumbersNoBars) // don't print text if only bars are visible + { + spriteTileNum = gSprites[gSprites[healthboxSpriteId].data5].oam.tileNum * 32; + objVram = (void*)(OBJ_VRAM0) + spriteTileNum; + + if (maxOrCurrent != HP_CURRENT) // doubles, max hp + { + ConvertIntToDecimalStringN(text, value, STR_CONV_MODE_RIGHT_ALIGN, 3); + windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(text, 0, 5, 0, &windowId); + sub_8075170((void*)(OBJ_VRAM0) + spriteTileNum + 0xC0, windowTileData, 2); + RemoveWindowOnHealthbox(windowId); + CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_116), + (void*)(OBJ_VRAM0 + 0x680) + (gSprites[healthboxSpriteId].oam.tileNum * 32), + 0x20); + } + else + { + ConvertIntToDecimalStringN(text, value, STR_CONV_MODE_RIGHT_ALIGN, 3); + text[3] = CHAR_SLASH; + text[4] = EOS; + windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(text, 4, 5, 0, &windowId); + sub_807513C(objVram, 0, 3); + sub_8075170((void*)(OBJ_VRAM0 + 0x60) + spriteTileNum, windowTileData, 3); + RemoveWindowOnHealthbox(windowId); + } + } + } + else + { + u8 bank; + + memcpy(text, sUnknown_0832C3D8, sizeof(sUnknown_0832C3D8)); + bank = gSprites[healthboxSpriteId].data6; + + if (gBattleSpritesDataPtr->bankData[bank].hpNumbersNoBars) // don't print text if only bars are visible + { + u8 var = 4; + u8 r7; + u8 *txtPtr; + u8 i; + + if (maxOrCurrent == HP_CURRENT) + var = 0; + + r7 = gSprites[healthboxSpriteId].data5; + txtPtr = ConvertIntToDecimalStringN(text + 6, value, STR_CONV_MODE_RIGHT_ALIGN, 3); + if (!maxOrCurrent) + StringCopy(txtPtr, gText_Slash); + RenderTextFont9(gMonSpritesGfxPtr->fontPixels, 9, text); + + for (i = var; i < var + 3; i++) + { + if (i < 3) + { + CpuCopy32(&gMonSpritesGfxPtr->fontPixels[((i - var) * 64) + 32], + (void*)((OBJ_VRAM0) + 32 * (1 + gSprites[r7].oam.tileNum + i)), + 0x20); + } + else + { + CpuCopy32(&gMonSpritesGfxPtr->fontPixels[((i - var) * 64) + 32], + (void*)((OBJ_VRAM0 + 0x20) + 32 * (i + gSprites[r7].oam.tileNum)), + 0x20); + } + } + + if (maxOrCurrent == HP_CURRENT) + { + CpuCopy32(&gMonSpritesGfxPtr->fontPixels[224], + (void*)((OBJ_VRAM0) + ((gSprites[r7].oam.tileNum + 4) * 32)), + 0x20); + CpuFill32(0, (void*)((OBJ_VRAM0) + (gSprites[r7].oam.tileNum * 32)), 0x20); + } + else + { + if (GetBankSide(bank) == SIDE_PLAYER) // impossible to reach part, because the bank is from the opponent's side + { + CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_116), + (void*)(OBJ_VRAM0) + ((gSprites[healthboxSpriteId].oam.tileNum + 52) * 32), + 0x20); + } + } + } + } +} + +static void sub_80730D4(u8 healthboxSpriteId, struct Pokemon *mon) +{ + u8 text[20]; + s32 j, var2; + u8 *fontPixels; + u8 i, var, nature, healthboxSpriteId_2; + + memcpy(text, sUnknown_0832C3C4, sizeof(sUnknown_0832C3C4)); + fontPixels = &gMonSpritesGfxPtr->fontPixels[0x520 + (GetBankIdentity(gSprites[healthboxSpriteId].data6) * 384)]; + var = 5; + nature = GetNature(mon); + StringCopy(text + 6, gNatureNamePointers[nature]); + RenderTextFont9(fontPixels, 9, text); + + for (j = 6, i = 0; i < var; i++, j++) + { + u8 elementId; + + if ((text[j] >= 55 && text[j] <= 74) || (text[j] >= 135 && text[j] <= 154)) + elementId = 44; + else if ((text[j] >= 75 && text[j] <= 79) || (text[j] >= 155 && text[j] <= 159)) + elementId = 45; + else + elementId = 43; + + CpuCopy32(GetHealthboxElementGfxPtr(elementId), fontPixels + (i * 64), 0x20); + } + + for (j = 1; j < var + 1; j++) + { + var2 = (gSprites[healthboxSpriteId].oam.tileNum + (j - (j / 8 * 8)) + (j / 8 * 64)) * 32; + CpuCopy32(fontPixels, (void*)(OBJ_VRAM0) + (var2), 0x20); + fontPixels += 0x20; + + var2 = (8 + gSprites[healthboxSpriteId].oam.tileNum + (j - (j / 8 * 8)) + (j / 8 * 64)) * 32; + CpuCopy32(fontPixels, (void*)(OBJ_VRAM0) + (var2), 0x20); + fontPixels += 0x20; + } + + healthboxSpriteId_2 = gSprites[healthboxSpriteId].data5; + ConvertIntToDecimalStringN(text + 6, gBattleStruct->field_7C, STR_CONV_MODE_RIGHT_ALIGN, 2); + ConvertIntToDecimalStringN(text + 9, gBattleStruct->field_7B, STR_CONV_MODE_RIGHT_ALIGN, 2); + text[5] = CHAR_SPACE; + text[8] = CHAR_SLASH; + RenderTextFont9(gMonSpritesGfxPtr->fontPixels, 9, text); + + j = healthboxSpriteId_2; // needed to match for some reason + for (j = 0; j < 5; j++) + { + if (j <= 1) + { + CpuCopy32(&gMonSpritesGfxPtr->fontPixels[0x40 * j + 0x20], + (void*)(OBJ_VRAM0) + (gSprites[healthboxSpriteId_2].oam.tileNum + 2 + j) * 32, + 32); + } + else + { + CpuCopy32(&gMonSpritesGfxPtr->fontPixels[0x40 * j + 0x20], + (void*)(OBJ_VRAM0 + 0xC0) + (j + gSprites[healthboxSpriteId_2].oam.tileNum) * 32, + 32); + } + } +} + +void SwapHpBarsWithHpText(void) +{ + s32 i; + u8 spriteId; + + for (i = 0; i < gNoOfAllBanks; i++) + { + if (gSprites[gHealthBoxesIds[i]].callback == SpriteCallbackDummy + && GetBankSide(i) != SIDE_OPPONENT + && (IsDoubleBattle() || GetBankSide(i) != SIDE_PLAYER)) + { + bool8 noBars; + + gBattleSpritesDataPtr->bankData[i].hpNumbersNoBars ^= 1; + noBars = gBattleSpritesDataPtr->bankData[i].hpNumbersNoBars; + if (GetBankSide(i) == SIDE_PLAYER) + { + if (!IsDoubleBattle()) + continue; + if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) + continue; + + if (noBars == TRUE) // bars to text + { + spriteId = gSprites[gHealthBoxesIds[i]].data5; + + CpuFill32(0, (void*)(OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * 32), 0x100); + UpdateHpTextInHealthboxInDoubles(gHealthBoxesIds[i], GetMonData(&gPlayerParty[gBattlePartyID[i]], MON_DATA_HP), HP_CURRENT); + UpdateHpTextInHealthboxInDoubles(gHealthBoxesIds[i], GetMonData(&gPlayerParty[gBattlePartyID[i]], MON_DATA_MAX_HP), HP_MAX); + } + else // text to bars + { + UpdateStatusIconInHealthbox(gHealthBoxesIds[i]); + UpdateHealthboxAttribute(gHealthBoxesIds[i], &gPlayerParty[gBattlePartyID[i]], HEALTHBOX_HEALTH_BAR); + CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_117), (void*)(OBJ_VRAM0 + 0x680 + gSprites[gHealthBoxesIds[i]].oam.tileNum * 32), 32); + } + } + else + { + if (noBars == TRUE) // bars to text + { + if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) + { + sub_80730D4(gHealthBoxesIds[i], &gEnemyParty[gBattlePartyID[i]]); + } + else + { + spriteId = gSprites[gHealthBoxesIds[i]].data5; + + CpuFill32(0, (void *)(OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * 32), 0x100); + UpdateHpTextInHealthboxInDoubles(gHealthBoxesIds[i], GetMonData(&gEnemyParty[gBattlePartyID[i]], MON_DATA_HP), HP_CURRENT); + UpdateHpTextInHealthboxInDoubles(gHealthBoxesIds[i], GetMonData(&gEnemyParty[gBattlePartyID[i]], MON_DATA_MAX_HP), HP_MAX); + } + } + else // text to bars + { + UpdateStatusIconInHealthbox(gHealthBoxesIds[i]); + UpdateHealthboxAttribute(gHealthBoxesIds[i], &gEnemyParty[gBattlePartyID[i]], HEALTHBOX_HEALTH_BAR); + if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) + UpdateHealthboxAttribute(gHealthBoxesIds[i], &gEnemyParty[gBattlePartyID[i]], HEALTHBOX_NICK); + } + } + gSprites[gHealthBoxesIds[i]].data7 ^= 1; + } + } +} + +u8 CreatePartyStatusSummarySprites(u8 bank, struct HpAndStatus *partyInfo, u8 arg2, bool8 isBattleStart) +{ + bool8 isOpponent; + s16 bar_X, bar_Y, bar_pos2_X, bar_data0; + s32 i, j, var; + u8 barSpriteId; + u8 ballIconSpritesIds[6]; + u8 taskId; + + if (!arg2 || GetBankIdentity(bank) != IDENTITY_OPPONENT_MON2) + { + if (GetBankSide(bank) == SIDE_PLAYER) + { + isOpponent = FALSE; + bar_X = 136, bar_Y = 96; + bar_pos2_X = 100; + bar_data0 = -5; + } + else + { + isOpponent = TRUE; + + if (!arg2 || !IsDoubleBattle()) + bar_X = 104, bar_Y = 40; + else + bar_X = 104, bar_Y = 16; + + bar_pos2_X = -100; + bar_data0 = 5; + } + } + else + { + isOpponent = TRUE; + bar_X = 104, bar_Y = 40; + bar_pos2_X = -100; + bar_data0 = 5; + } + + LoadCompressedObjectPicUsingHeap(&sStatusSummaryBarSpriteSheet); + LoadSpriteSheet(&sStatusSummaryBallsSpriteSheet); + LoadSpritePalette(&sStatusSummaryBarSpritePal); + LoadSpritePalette(&sStatusSummaryBallsSpritePal); + + barSpriteId = CreateSprite(&sStatusSummaryBarSpriteTemplates[isOpponent], bar_X, bar_Y, 10); + SetSubspriteTables(&gSprites[barSpriteId], sStatusSummaryBar_SubspriteTable); + gSprites[barSpriteId].pos2.x = bar_pos2_X; + gSprites[barSpriteId].data0 = bar_data0; + + if (isOpponent) + { + gSprites[barSpriteId].pos1.x -= 96; + gSprites[barSpriteId].oam.matrixNum = 8; + } + else + { + gSprites[barSpriteId].pos1.x += 96; + } + + for (i = 0; i < 6; i++) + { + ballIconSpritesIds[i] = CreateSpriteAtEnd(&sStatusSummaryBallsSpriteTemplates[isOpponent], bar_X, bar_Y - 4, 9); + + if (!isBattleStart) + gSprites[ballIconSpritesIds[i]].callback = SpriteCB_StatusSummaryBallsOnSwitchout; + + if (!isOpponent) + { + gSprites[ballIconSpritesIds[i]].pos2.x = 0; + gSprites[ballIconSpritesIds[i]].pos2.y = 0; + } + + gSprites[ballIconSpritesIds[i]].data0 = barSpriteId; + + if (!isOpponent) + { + gSprites[ballIconSpritesIds[i]].pos1.x += 10 * i + 24; + gSprites[ballIconSpritesIds[i]].data1 = i * 7 + 10; + gSprites[ballIconSpritesIds[i]].pos2.x = 120; + } + else + { + gSprites[ballIconSpritesIds[i]].pos1.x -= 10 * (5 - i) + 24; + gSprites[ballIconSpritesIds[i]].data1 = (6 - i) * 7 + 10; + gSprites[ballIconSpritesIds[i]].pos2.x = -120; + } + + gSprites[ballIconSpritesIds[i]].data2 = isOpponent; + } + + if (GetBankSide(bank) == SIDE_PLAYER) + { + if (gBattleTypeFlags & BATTLE_TYPE_MULTI) + { + for (i = 0; i < 6; i++) + { + if (partyInfo[i].hp == 0xFFFF) // empty slot or an egg + { + gSprites[ballIconSpritesIds[i]].oam.tileNum += 1; + gSprites[ballIconSpritesIds[i]].data7 = 1; + } + else if (partyInfo[i].hp == 0) // fainted mon + { + gSprites[ballIconSpritesIds[i]].oam.tileNum += 3; + } + else if (partyInfo[i].status != 0) // mon with major status + { + gSprites[ballIconSpritesIds[i]].oam.tileNum += 2; + } + } + } + else + { + for (i = 0, var = 5, j = 0; j < 6; j++) + { + if (partyInfo[j].hp == 0xFFFF) // empty slot or an egg + { + gSprites[ballIconSpritesIds[var]].oam.tileNum += 1; + gSprites[ballIconSpritesIds[var]].data7 = 1; + var--; + continue; + } + else if (partyInfo[j].hp == 0) // fainted mon + { + gSprites[ballIconSpritesIds[i]].oam.tileNum += 3; + } + else if (gBattleTypeFlags & BATTLE_TYPE_ARENA && gBattleStruct->field_2A0 & gBitTable[j]) // hmm...? + { + gSprites[ballIconSpritesIds[i]].oam.tileNum += 3; + } + else if (partyInfo[j].status != 0) // mon with major status + { + gSprites[ballIconSpritesIds[i]].oam.tileNum += 2; + } + i++; + } + } + } + else + { + if (gBattleTypeFlags & (BATTLE_TYPE_MULTI | BATTLE_TYPE_TWO_OPPONENTS)) + { + for (var = 5, i = 0; i < 6; i++) + { + if (partyInfo[i].hp == 0xFFFF) // empty slot or an egg + { + gSprites[ballIconSpritesIds[var]].oam.tileNum += 1; + gSprites[ballIconSpritesIds[var]].data7 = 1; + } + else if (partyInfo[i].hp == 0) // fainted mon + { + gSprites[ballIconSpritesIds[var]].oam.tileNum += 3; + } + else if (partyInfo[i].status != 0) // mon with major status + { + gSprites[ballIconSpritesIds[var]].oam.tileNum += 2; + } + var--; + } + } + else + { + for (var = 0, i = 0, j = 0; j < 6; j++) + { + if (partyInfo[j].hp == 0xFFFF) // empty slot or an egg + { + gSprites[ballIconSpritesIds[i]].oam.tileNum += 1; + gSprites[ballIconSpritesIds[i]].data7 = 1; + i++; + continue; + } + else if (partyInfo[j].hp == 0) // fainted mon + { + gSprites[ballIconSpritesIds[5 - var]].oam.tileNum += 3; + } + else if (gBattleTypeFlags & BATTLE_TYPE_ARENA && gBattleStruct->field_2A1 & gBitTable[j]) // hmm...? + { + gSprites[ballIconSpritesIds[5 - var]].oam.tileNum += 3; + } + else if (partyInfo[j].status != 0) // mon with major status + { + gSprites[ballIconSpritesIds[5 - var]].oam.tileNum += 2; + } + var++; + } + } + } + + taskId = CreateTask(TaskDummy, 5); + gTasks[taskId].data[0] = bank; + gTasks[taskId].data[1] = barSpriteId; + + for (i = 0; i < 6; i++) + gTasks[taskId].data[3 + i] = ballIconSpritesIds[i]; + + gTasks[taskId].data[10] = isBattleStart; + + if (isBattleStart) + { + gBattleSpritesDataPtr->animationData->field_9_x1C++; + } + + PlaySE12WithPanning(SE_TB_START, 0); + return taskId; +} + +void sub_8073C30(u8 taskId) +{ + u8 sp[6]; + u8 r7; + u8 r10; + u8 bank; + s32 i; + + r7 = gTasks[taskId].data[10]; + r10 = gTasks[taskId].data[1]; + bank = gTasks[taskId].data[0]; + + for (i = 0; i < 6; i++) + sp[i] = gTasks[taskId].data[3 + i]; + + SetGpuReg(REG_OFFSET_BLDCNT, 0x3F40); + SetGpuReg(REG_OFFSET_BLDALPHA, 0x10); + + gTasks[taskId].data[15] = 16; + + for (i = 0; i < 6; i++) + gSprites[sp[i]].oam.objMode = 1; + + gSprites[r10].oam.objMode = 1; + + if (r7 != 0) + { + for (i = 0; i < 6; i++) + { + if (GetBankSide(bank) != SIDE_PLAYER) + { + gSprites[sp[5 - i]].data1 = 7 * i; + gSprites[sp[5 - i]].data3 = 0; + gSprites[sp[5 - i]].data4 = 0; + gSprites[sp[5 - i]].callback = sub_8074158; + } + else + { + gSprites[sp[i]].data1 = 7 * i; + gSprites[sp[i]].data3 = 0; + gSprites[sp[i]].data4 = 0; + gSprites[sp[i]].callback = sub_8074158; + } + } + gSprites[r10].data0 /= 2; + gSprites[r10].data1 = 0; + gSprites[r10].callback = sub_8074090; + SetSubspriteTables(&gSprites[r10], sUnknown_0832C2CC); + gTasks[taskId].func = sub_8073E08; + } + else + { + gTasks[taskId].func = sub_8073F98; + } +} + +static void sub_8073E08(u8 taskId) +{ + u16 temp = gTasks[taskId].data[11]++; + + if (!(temp & 1)) + { + gTasks[taskId].data[15]--; + if (gTasks[taskId].data[15] < 0) + return; + + SetGpuReg(REG_OFFSET_BLDALPHA, (gTasks[taskId].data[15]) | ((16 - gTasks[taskId].data[15]) << 8)); + } + if (gTasks[taskId].data[15] == 0) + gTasks[taskId].func = sub_8073E64; +} + +static void sub_8073E64(u8 taskId) +{ + u8 sp[6]; + s32 i; + + u8 bank = gTasks[taskId].data[0]; + gTasks[taskId].data[15]--; + if (gTasks[taskId].data[15] == -1) + { + u8 var = gTasks[taskId].data[1]; + + for (i = 0; i < 6; i++) + sp[i] = gTasks[taskId].data[3 + i]; + + gBattleSpritesDataPtr->animationData->field_9_x1C--; + if (!gBattleSpritesDataPtr->animationData->field_9_x1C) + { + DestroySpriteAndFreeResources(&gSprites[var]); + DestroySpriteAndFreeResources(&gSprites[sp[0]]); + } + else + { + FreeSpriteOamMatrix(&gSprites[var]); + DestroySprite(&gSprites[var]); + FreeSpriteOamMatrix(&gSprites[sp[0]]); + DestroySprite(&gSprites[sp[0]]); + } + + for (i = 1; i < 6; i++) + DestroySprite(&gSprites[sp[i]]); + } + else if (gTasks[taskId].data[15] == -3) + { + gBattleSpritesDataPtr->healthBoxesData[bank].flag_x1 = 0; + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, 0); + DestroyTask(taskId); + } +} + +static void sub_8073F98(u8 taskId) +{ + u8 sp[6]; + s32 i; + + u8 bank = gTasks[taskId].data[0]; + gTasks[taskId].data[15]--; + if (gTasks[taskId].data[15] >= 0) + { + SetGpuReg(REG_OFFSET_BLDALPHA, (gTasks[taskId].data[15]) | ((16 - gTasks[taskId].data[15]) << 8)); + } + else if (gTasks[taskId].data[15] == -1) + { + u8 var = gTasks[taskId].data[1]; + + for (i = 0; i < 6; i++) + sp[i] = gTasks[taskId].data[3 + i]; + + DestroySpriteAndFreeResources(&gSprites[var]); + DestroySpriteAndFreeResources(&gSprites[sp[0]]); + + for (i = 1; i < 6; i++) + DestroySprite(&gSprites[sp[i]]); + } + else if (gTasks[taskId].data[15] == -3) + { + gBattleSpritesDataPtr->healthBoxesData[bank].flag_x1 = 0; + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, 0); + DestroyTask(taskId); + } +} + +static void SpriteCB_StatusSummaryBar(struct Sprite *sprite) +{ + if (sprite->pos2.x != 0) + sprite->pos2.x += sprite->data0; +} + +static void sub_8074090(struct Sprite *sprite) +{ + sprite->data1 += 32; + if (sprite->data0 > 0) + sprite->pos2.x += sprite->data1 >> 4; + else + sprite->pos2.x -= sprite->data1 >> 4; + sprite->data1 &= 0xF; +} + +static void SpriteCB_StatusSummaryBallsOnBattleStart(struct Sprite *sprite) +{ + u8 var1; + u16 var2; + s8 pan; + + if (sprite->data1 > 0) + { + sprite->data1--; + return; + } + + var1 = sprite->data2; + var2 = sprite->data3; + var2 += 56; + sprite->data3 = var2 & 0xFFF0; + + if (var1 != 0) + { + sprite->pos2.x += var2 >> 4; + if (sprite->pos2.x > 0) + sprite->pos2.x = 0; + } + else + { + sprite->pos2.x -= var2 >> 4; + if (sprite->pos2.x < 0) + sprite->pos2.x = 0; + } + + if (sprite->pos2.x == 0) + { + pan = PAN_SIDE_OPPONENT; + if (var1 != 0) + pan = PAN_SIDE_PLAYER; + + if (sprite->data7 != 0) + PlaySE2WithPanning(SE_TB_KARA, pan); + else + PlaySE1WithPanning(SE_TB_KON, pan); + + sprite->callback = SpriteCallbackDummy; + } +} + +static void sub_8074158(struct Sprite *sprite) +{ + u8 var1; + u16 var2; + + if (sprite->data1 > 0) + { + sprite->data1--; + return; + } + var1 = sprite->data2; + var2 = sprite->data3; + var2 += 56; + sprite->data3 = var2 & 0xFFF0; + if (var1 != 0) + sprite->pos2.x += var2 >> 4; + else + sprite->pos2.x -= var2 >> 4; + if (sprite->pos2.x + sprite->pos1.x > 248 + || sprite->pos2.x + sprite->pos1.x < -8) + { + sprite->invisible = TRUE; + sprite->callback = SpriteCallbackDummy; + } +} + +static void SpriteCB_StatusSummaryBallsOnSwitchout(struct Sprite *sprite) +{ + u8 barSpriteId = sprite->data0; + + sprite->pos2.x = gSprites[barSpriteId].pos2.x; + sprite->pos2.y = gSprites[barSpriteId].pos2.y; +} + +static void UpdateNickInHealthbox(u8 healthboxSpriteId, struct Pokemon *mon) +{ + u8 nickname[POKEMON_NAME_LENGTH + 1]; + void *ptr; + const u8 *genderTxt; + u32 windowId, spriteTileNum; + u8 *windowTileData; + u16 species; + u8 gender; + + StringCopy(gDisplayedStringBattle, gText_HighlightDarkGrey); + GetMonData(mon, MON_DATA_NICKNAME, nickname); + StringGetEnd10(nickname); + ptr = StringAppend(gDisplayedStringBattle, nickname); + + gender = GetMonGender(mon); + species = GetMonData(mon, MON_DATA_SPECIES); + + if ((species == SPECIES_NIDORAN_F || species == SPECIES_NIDORAN_M) && StringCompare(nickname, gSpeciesNames[species]) == 0) + gender = 100; + + // AddTextPrinterAndCreateWindowOnHealthbox's arguments are the same in all 3 cases. + // It's possible they may have been different in early development phases. + switch (gender) + { + default: + StringCopy(ptr, gText_DynColor2); + windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(gDisplayedStringBattle, 0, 3, 2, &windowId); + break; + case MON_MALE: + StringCopy(ptr, gText_DynColor2Male); + windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(gDisplayedStringBattle, 0, 3, 2, &windowId); + break; + case MON_FEMALE: + StringCopy(ptr, gText_DynColor1Female); + windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(gDisplayedStringBattle, 0, 3, 2, &windowId); + break; + } + + spriteTileNum = gSprites[healthboxSpriteId].oam.tileNum * 32; + + if (GetBankSide(gSprites[healthboxSpriteId].data6) == SIDE_PLAYER) + { + sub_8075198((void*)(0x6010040 + spriteTileNum), windowTileData, 6); + ptr = (void*)(OBJ_VRAM0); + if (!IsDoubleBattle()) + ptr += spriteTileNum + 0x800; + else + ptr += spriteTileNum + 0x400; + sub_8075198(ptr, windowTileData + 0xC0, 1); + } + else + { + sub_8075198((void*)(0x6010020 + spriteTileNum), windowTileData, 7); + } + + RemoveWindowOnHealthbox(windowId); +} + +static void TryAddPokeballIconToHealthbox(u8 healthboxSpriteId, bool8 noStatus) +{ + u8 bank, healthboxSpriteId_2; + + if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL) + return; + if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) + return; + + bank = gSprites[healthboxSpriteId].data6; + if (GetBankSide(bank) == SIDE_PLAYER) + return; + if (!GetSetPokedexFlag(SpeciesToNationalPokedexNum(GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES)), FLAG_GET_CAUGHT)) + return; + + healthboxSpriteId_2 = gSprites[healthboxSpriteId].data5; + + if (noStatus) + CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_70), (void*)(OBJ_VRAM0 + (gSprites[healthboxSpriteId_2].oam.tileNum + 8) * 32), 32); + else + CpuFill32(0, (void*)(OBJ_VRAM0 + (gSprites[healthboxSpriteId_2].oam.tileNum + 8) * 32), 32); +} + +static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId) +{ + s32 i; + u8 bank, healthboxSpriteId_2; + u32 status, pltAdder; + const u8 *statusGfxPtr; + s16 tileNumAdder; + u8 statusPalId; + + bank = gSprites[healthboxSpriteId].data6; + healthboxSpriteId_2 = gSprites[healthboxSpriteId].data5; + if (GetBankSide(bank) == SIDE_PLAYER) + { + status = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_STATUS); + if (!IsDoubleBattle()) + tileNumAdder = 0x1A; + else + tileNumAdder = 0x12; + } + else + { + status = GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_STATUS); + tileNumAdder = 0x11; + } + + if (status & STATUS_SLEEP) + { + statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBankId(HEALTHBOX_GFX_STATUS_SLP_BANK0, bank)); + statusPalId = PAL_STATUS_SLP; + } + else if (status & STATUS_PSN_ANY) + { + statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBankId(HEALTHBOX_GFX_STATUS_PSN_BANK0, bank)); + statusPalId = PAL_STATUS_PSN; + } + else if (status & STATUS_BURN) + { + statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBankId(HEALTHBOX_GFX_STATUS_BRN_BANK0, bank)); + statusPalId = PAL_STATUS_BRN; + } + else if (status & STATUS_FREEZE) + { + statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBankId(HEALTHBOX_GFX_STATUS_FRZ_BANK0, bank)); + statusPalId = PAL_STATUS_FRZ; + } + else if (status & STATUS_PARALYSIS) + { + statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBankId(HEALTHBOX_GFX_STATUS_PRZ_BANK0, bank)); + statusPalId = PAL_STATUS_PAR; + } + else + { + statusGfxPtr = GetHealthboxElementGfxPtr(HEALTHBOX_GFX_39); + + for (i = 0; i < 3; i++) + CpuCopy32(statusGfxPtr, (void*)(OBJ_VRAM0 + (gSprites[healthboxSpriteId].oam.tileNum + tileNumAdder + i) * 32), 32); + + if (!gBattleSpritesDataPtr->bankData[bank].hpNumbersNoBars) + CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_1), (void *)(OBJ_VRAM0 + gSprites[healthboxSpriteId_2].oam.tileNum * 32), 64); + + TryAddPokeballIconToHealthbox(healthboxSpriteId, TRUE); + return; + } + + pltAdder = gSprites[healthboxSpriteId].oam.paletteNum * 16; + pltAdder += bank + 12; + + FillPalette(sStatusIconPalettes[statusPalId], pltAdder + 0x100, 2); + CpuCopy16(gPlttBufferUnfaded + 0x100 + pltAdder, (void*)(OBJ_PLTT + pltAdder * 2), 2); + CpuCopy32(statusGfxPtr, (void*)(OBJ_VRAM0 + (gSprites[healthboxSpriteId].oam.tileNum + tileNumAdder) * 32), 96); + if (IsDoubleBattle() == TRUE || GetBankSide(bank) == SIDE_OPPONENT) + { + if (!gBattleSpritesDataPtr->bankData[bank].hpNumbersNoBars) + { + CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_0), (void*)(OBJ_VRAM0 + gSprites[healthboxSpriteId_2].oam.tileNum * 32), 32); + CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_65), (void*)(OBJ_VRAM0 + (gSprites[healthboxSpriteId_2].oam.tileNum + 1) * 32), 32); + } + } + TryAddPokeballIconToHealthbox(healthboxSpriteId, FALSE); +} + +static u8 GetStatusIconForBankId(u8 statusElementId, u8 bank) +{ + u8 ret = statusElementId; + + switch (statusElementId) + { + case HEALTHBOX_GFX_STATUS_PSN_BANK0: + if (bank == 0) + ret = HEALTHBOX_GFX_STATUS_PSN_BANK0; + else if (bank == 1) + ret = HEALTHBOX_GFX_STATUS_PSN_BANK1; + else if (bank == 2) + ret = HEALTHBOX_GFX_STATUS_PSN_BANK2; + else + ret = HEALTHBOX_GFX_STATUS_PSN_BANK3; + break; + case HEALTHBOX_GFX_STATUS_PRZ_BANK0: + if (bank == 0) + ret = HEALTHBOX_GFX_STATUS_PRZ_BANK0; + else if (bank == 1) + ret = HEALTHBOX_GFX_STATUS_PRZ_BANK1; + else if (bank == 2) + ret = HEALTHBOX_GFX_STATUS_PRZ_BANK2; + else + ret = HEALTHBOX_GFX_STATUS_PRZ_BANK3; + break; + case HEALTHBOX_GFX_STATUS_SLP_BANK0: + if (bank == 0) + ret = HEALTHBOX_GFX_STATUS_SLP_BANK0; + else if (bank == 1) + ret = HEALTHBOX_GFX_STATUS_SLP_BANK1; + else if (bank == 2) + ret = HEALTHBOX_GFX_STATUS_SLP_BANK2; + else + ret = HEALTHBOX_GFX_STATUS_SLP_BANK3; + break; + case HEALTHBOX_GFX_STATUS_FRZ_BANK0: + if (bank == 0) + ret = HEALTHBOX_GFX_STATUS_FRZ_BANK0; + else if (bank == 1) + ret = HEALTHBOX_GFX_STATUS_FRZ_BANK1; + else if (bank == 2) + ret = HEALTHBOX_GFX_STATUS_FRZ_BANK2; + else + ret = HEALTHBOX_GFX_STATUS_FRZ_BANK3; + break; + case HEALTHBOX_GFX_STATUS_BRN_BANK0: + if (bank == 0) + ret = HEALTHBOX_GFX_STATUS_BRN_BANK0; + else if (bank == 1) + ret = HEALTHBOX_GFX_STATUS_BRN_BANK1; + else if (bank == 2) + ret = HEALTHBOX_GFX_STATUS_BRN_BANK2; + else + ret = HEALTHBOX_GFX_STATUS_BRN_BANK3; + break; + } + return ret; +} + +static void UpdateSafariBallsTextOnHealthbox(u8 healthboxSpriteId) +{ + u32 windowId, spriteTileNum; + u8 *windowTileData; + + windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(gText_SafariBalls, 0, 3, 2, &windowId); + spriteTileNum = gSprites[healthboxSpriteId].oam.tileNum * 32; + sub_8075198((void*)(OBJ_VRAM0 + 0x40) + spriteTileNum, windowTileData, 6); + sub_8075198((void*)(OBJ_VRAM0 + 0x800) + spriteTileNum, windowTileData + 0xC0, 2); + RemoveWindowOnHealthbox(windowId); +} + +static void UpdateLeftNoOfBallsTextOnHealthbox(u8 healthboxSpriteId) +{ + u8 text[16]; + u8 *txtPtr; + u32 windowId, spriteTileNum; + u8 *windowTileData; + + txtPtr = StringCopy(text, gText_SafariBallLeft); + ConvertIntToDecimalStringN(txtPtr, gNumSafariBalls, STR_CONV_MODE_LEFT_ALIGN, 2); + + windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(text, GetStringRightAlignXOffset(0, text, 0x2F), 3, 2, &windowId); + spriteTileNum = gSprites[healthboxSpriteId].oam.tileNum * 32; + sub_80751E4((void*)(OBJ_VRAM0 + 0x2C0) + spriteTileNum, windowTileData, 2); + sub_80751E4((void*)(OBJ_VRAM0 + 0xA00) + spriteTileNum, windowTileData + 0x40, 4); + RemoveWindowOnHealthbox(windowId); +} + +void UpdateHealthboxAttribute(u8 healthboxSpriteId, struct Pokemon *mon, u8 elementId) +{ + s32 maxHp, currHp; + u8 bank = gSprites[healthboxSpriteId].data6; + + if (elementId == HEALTHBOX_ALL && !IsDoubleBattle()) + GetBankSide(bank); // pointless function call + + if (GetBankSide(gSprites[healthboxSpriteId].data6) == SIDE_PLAYER) + { + u8 isDoubles; + + if (elementId == HEALTHBOX_LEVEL || elementId == HEALTHBOX_ALL) + UpdateLvlInHealthbox(healthboxSpriteId, GetMonData(mon, MON_DATA_LEVEL)); + if (elementId == HEALTHBOX_CURRENT_HP || elementId == HEALTHBOX_ALL) + UpdateHpTextInHealthbox(healthboxSpriteId, GetMonData(mon, MON_DATA_HP), HP_CURRENT); + if (elementId == HEALTHBOX_MAX_HP || elementId == HEALTHBOX_ALL) + UpdateHpTextInHealthbox(healthboxSpriteId, GetMonData(mon, MON_DATA_MAX_HP), HP_MAX); + if (elementId == HEALTHBOX_HEALTH_BAR || elementId == HEALTHBOX_ALL) + { + LoadBattleBarGfx(0); + maxHp = GetMonData(mon, MON_DATA_MAX_HP); + currHp = GetMonData(mon, MON_DATA_HP); + SetBattleBarStruct(bank, healthboxSpriteId, maxHp, currHp, 0); + sub_8074AA0(bank, healthboxSpriteId, HEALTH_BAR, 0); + } + isDoubles = IsDoubleBattle(); + if (!isDoubles && (elementId == HEALTHBOX_EXP_BAR || elementId == HEALTHBOX_ALL)) + { + u16 species; + u32 exp, currLevelExp; + s32 currExpBarValue, maxExpBarValue; + u8 level; + + LoadBattleBarGfx(3); + species = GetMonData(mon, MON_DATA_SPECIES); + level = GetMonData(mon, MON_DATA_LEVEL); + exp = GetMonData(mon, MON_DATA_EXP); + currLevelExp = gExperienceTables[gBaseStats[species].growthRate][level]; + currExpBarValue = exp - currLevelExp; + maxExpBarValue = gExperienceTables[gBaseStats[species].growthRate][level + 1] - currLevelExp; + SetBattleBarStruct(bank, healthboxSpriteId, maxExpBarValue, currExpBarValue, isDoubles); + sub_8074AA0(bank, healthboxSpriteId, EXP_BAR, 0); + } + if (elementId == HEALTHBOX_NICK || elementId == HEALTHBOX_ALL) + UpdateNickInHealthbox(healthboxSpriteId, mon); + if (elementId == HEALTHBOX_STATUS_ICON || elementId == HEALTHBOX_ALL) + UpdateStatusIconInHealthbox(healthboxSpriteId); + if (elementId == HEALTHBOX_SAFARI_ALL_TEXT) + UpdateSafariBallsTextOnHealthbox(healthboxSpriteId); + if (elementId == HEALTHBOX_SAFARI_ALL_TEXT || elementId == HEALTHBOX_SAFARI_BALLS_TEXT) + UpdateLeftNoOfBallsTextOnHealthbox(healthboxSpriteId); + } + else + { + if (elementId == HEALTHBOX_LEVEL || elementId == HEALTHBOX_ALL) + UpdateLvlInHealthbox(healthboxSpriteId, GetMonData(mon, MON_DATA_LEVEL)); + if (elementId == HEALTHBOX_HEALTH_BAR || elementId == HEALTHBOX_ALL) + { + LoadBattleBarGfx(0); + maxHp = GetMonData(mon, MON_DATA_MAX_HP); + currHp = GetMonData(mon, MON_DATA_HP); + SetBattleBarStruct(bank, healthboxSpriteId, maxHp, currHp, 0); + sub_8074AA0(bank, healthboxSpriteId, HEALTH_BAR, 0); + } + if (elementId == HEALTHBOX_NICK || elementId == HEALTHBOX_ALL) + UpdateNickInHealthbox(healthboxSpriteId, mon); + if (elementId == HEALTHBOX_STATUS_ICON || elementId == HEALTHBOX_ALL) + UpdateStatusIconInHealthbox(healthboxSpriteId); + } +} + +s32 sub_8074AA0(u8 bank, u8 healthboxSpriteId, u8 whichBar, u8 arg3) +{ + s32 var; + + if (whichBar == HEALTH_BAR) // health bar + { + var = sub_8074DB8(gBattleSpritesDataPtr->battleBars[bank].maxValue, + gBattleSpritesDataPtr->battleBars[bank].currentValue, + gBattleSpritesDataPtr->battleBars[bank].field_C, + &gBattleSpritesDataPtr->battleBars[bank].field_10, + 6, 1); + } + else // exp bar + { + u16 expFraction = GetScaledExpFraction(gBattleSpritesDataPtr->battleBars[bank].currentValue, + gBattleSpritesDataPtr->battleBars[bank].field_C, + gBattleSpritesDataPtr->battleBars[bank].maxValue, 8); + if (expFraction == 0) + expFraction = 1; + expFraction = abs(gBattleSpritesDataPtr->battleBars[bank].field_C / expFraction); + + var = sub_8074DB8(gBattleSpritesDataPtr->battleBars[bank].maxValue, + gBattleSpritesDataPtr->battleBars[bank].currentValue, + gBattleSpritesDataPtr->battleBars[bank].field_C, + &gBattleSpritesDataPtr->battleBars[bank].field_10, + 8, expFraction); + } + + if (whichBar == EXP_BAR || (whichBar == HEALTH_BAR && !gBattleSpritesDataPtr->bankData[bank].hpNumbersNoBars)) + sub_8074B9C(bank, whichBar); + + if (var == -1) + gBattleSpritesDataPtr->battleBars[bank].field_10 = 0; + + return var; +} + +static void sub_8074B9C(u8 bank, u8 whichBar) +{ + u8 array[7]; + u8 subRet, level; + u8 barElementId; + u8 i; + + switch (whichBar) + { + case HEALTH_BAR: + subRet = sub_8074E8C(gBattleSpritesDataPtr->battleBars[bank].maxValue, + gBattleSpritesDataPtr->battleBars[bank].currentValue, + gBattleSpritesDataPtr->battleBars[bank].field_C, + &gBattleSpritesDataPtr->battleBars[bank].field_10, + array, 6); + barElementId = 3; + if (subRet <= 0x18) + { + barElementId = 0x38; + if (subRet > 9) + barElementId = 0x2F; + } + for (i = 0; i < 6; i++) + { + u8 healthboxSpriteId_2 = gSprites[gBattleSpritesDataPtr->battleBars[bank].healthboxSpriteId].data5; + if (i < 2) + CpuCopy32(GetHealthboxElementGfxPtr(barElementId) + array[i] * 32, + (void*)(OBJ_VRAM0 + (gSprites[healthboxSpriteId_2].oam.tileNum + 2 + i) * 32), 32); + else + CpuCopy32(GetHealthboxElementGfxPtr(barElementId) + array[i] * 32, + (void*)(OBJ_VRAM0 + 64 + (i + gSprites[healthboxSpriteId_2].oam.tileNum) * 32), 32); + } + break; + case EXP_BAR: + sub_8074E8C(gBattleSpritesDataPtr->battleBars[bank].maxValue, + gBattleSpritesDataPtr->battleBars[bank].currentValue, + gBattleSpritesDataPtr->battleBars[bank].field_C, + &gBattleSpritesDataPtr->battleBars[bank].field_10, + array, 8); + level = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_LEVEL); + if (level == MAX_MON_LEVEL) + { + for (i = 0; i < 8; i++) + array[i] = 0; + } + for (i = 0; i < 8; i++) + { + if (i < 4) + CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_12) + array[i] * 32, + (void*)(OBJ_VRAM0 + (gSprites[gBattleSpritesDataPtr->battleBars[bank].healthboxSpriteId].oam.tileNum + 0x24 + i) * 32), 32); + else + CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_12) + array[i] * 32, + (void*)(OBJ_VRAM0 + 0xB80 + (i + gSprites[gBattleSpritesDataPtr->battleBars[bank].healthboxSpriteId].oam.tileNum) * 32), 32); + } + break; + } +} + +static s32 sub_8074DB8(s32 maxValue, s32 currValue, s32 arg2, s32 *arg3, u8 arg4, u16 arg5) +{ + s32 r6; + s32 ret; + arg4 <<= 3; + + if (*arg3 == -32768) + { + if (maxValue < arg4) + *arg3 = currValue << 8; + else + *arg3 = currValue; + } + + currValue -= arg2; + if (currValue < 0) + currValue = 0; + else if (currValue > maxValue) + currValue = maxValue; + + if (maxValue < arg4) + { + s32 var = *arg3 >> 8; + + r6 = *arg3; + if (currValue == var && (r6 & 0xFF) == 0) + return -1; + } + else + { + r6 = *arg3; + if (currValue == r6) + return -1; + } + + if (maxValue < arg4) + { + s32 var = (maxValue << 8) / arg4; + + if (arg2 < 0) + { + *arg3 = r6 + var; + ret = *arg3 >> 8; + if (ret >= currValue) + { + *arg3 = currValue << 8; + ret = currValue; + } + } + else + { + *arg3 = r6 - var; + ret = *arg3 >> 8; + if ((*arg3 & 0xFF) > 0) + ret++; + if (ret <= currValue) + { + *arg3 = currValue << 8; + ret = currValue; + } + } + } + else + { + if (arg2 < 0) + { + *arg3 += arg5; + if (*arg3 > currValue) + *arg3 = currValue; + ret = *arg3; + } + else + { + *arg3 -= arg5; + if (*arg3 < currValue) + *arg3 = currValue; + ret = *arg3; + } + } + + return ret; +} + +static u8 sub_8074E8C(s32 maxValue, s32 currValue, s32 arg2, s32 *arg3, u8 *arg4, u8 arg5) +{ + s32 r5 = currValue - arg2; + u8 ret; + u8 i; + u8 r2; + + if (r5 < 0) + r5 = 0; + else if (r5 > maxValue) + r5 = maxValue; + + ret = arg5 << 3; + + for (i = 0; i < arg5; i++) + arg4[i] = 0; + + if (maxValue < ret) + r2 = (*arg3 * ret / maxValue) >> 8; + else + r2 = *arg3 * ret / maxValue; + + ret = r2; + + if (ret == 0 && r5 > 0) + { + arg4[0] = 1; + ret = 1; + } + else + { + for (i = 0; i < arg5; i++) + { + if (r2 >= 8) + { + arg4[i] = 8; + } + else + { + arg4[i] = r2; + break; + } + r2 -= 8; + } + } + + return ret; +} + +static s16 sub_8074F28(struct TestingBar *barInfo, s32 *arg1, u16 *arg2, s32 arg3) +{ + s16 ret, var; + + ret = sub_8074DB8(barInfo->maxValue, + barInfo->currValue, + barInfo->field_8, + arg1, 6, 1); + sub_8074F88(barInfo, arg1, arg2); + + if (barInfo->maxValue < 0x30) + var = *arg1 >> 8; + else + var = *arg1; + + DummiedOutFunction(barInfo->maxValue, var, arg3); + + return ret; +} + +static void sub_8074F88(struct TestingBar *barInfo, s32 *arg1, u16 *arg2) +{ + u8 sp8[6]; + u16 sp10[6]; + u8 i; + + sub_8074E8C(barInfo->maxValue, barInfo->currValue, + barInfo->field_8, arg1, sp8, 6); + + for (i = 0; i < 6; i++) + sp10[i] = (barInfo->unkC_0 << 12) | (barInfo->unk10 + sp8[i]); + + CpuCopy16(sp10, arg2, sizeof(sp10)); +} + +static u8 GetScaledExpFraction(s32 currValue, s32 arg1, s32 maxValue, u8 scale) +{ + s32 r5, result; + s8 r4, r0; + + scale *= 8; + r5 = currValue - arg1; + + if (r5 < 0) + r5 = 0; + else if (r5 > maxValue) + r5 = maxValue; + + r4 = currValue * scale / maxValue; + r0 = r5 * scale / maxValue; + result = r4 - r0; + + return abs(result); +} + +u8 GetScaledHPFraction(s16 hp, s16 maxhp, u8 scale) +{ + u8 result = hp * scale / maxhp; + + if (result == 0 && hp > 0) + return 1; + + return result; +} + +u8 GetHPBarLevel(s16 hp, s16 maxhp) +{ + s32 result; + + if (hp == maxhp) + { + result = 4; + } + else + { + u8 fraction = GetScaledHPFraction(hp, maxhp, 48); + if (fraction > 24) + result = 3; + else if (fraction > 9) + result = 2; + else if (fraction > 0) + result = 1; + else + result = 0; + } + + return result; +} + +static u8* AddTextPrinterAndCreateWindowOnHealthbox(const u8 *str, u32 x, u32 y, u32 arg3, u32 *windowId) +{ + u16 winId; + struct TextColor color; + struct WindowTemplate winTemplate = sHealthboxWindowTemplate; + + winId = AddWindow(&winTemplate); + FillWindowPixelBuffer(winId, (arg3 << 4) | (arg3)); + + color.fgColor = arg3; + color.bgColor = 1; + color.shadowColor = 3; + + AddTextPrinterParametrized2(winId, 0, x, y, 0, 0, &color, -1, str); + + *windowId = winId; + return (u8*)(GetWindowAttribute(winId, WINDOW_TILE_DATA)); +} + +static void RemoveWindowOnHealthbox(u32 windowId) +{ + RemoveWindow(windowId); +} + +static void sub_807513C(void *dest, u32 arg1, u32 arg2) +{ + CpuFill32(0x11111111 * arg1, dest, arg2 * 32); +} + +static void sub_8075170(void *dest, u8 *windowTileData, u32 arg2) +{ + CpuCopy32(windowTileData + 256, dest, arg2 * 32); +} + +static void sub_8075198(void *dest, u8 *windowTileData, s32 arg2) +{ + CpuCopy32(windowTileData + 256, dest + 256, arg2 * 32); + + if (arg2 > 0) + { + do + { + CpuCopy32(windowTileData + 20, dest + 20, 12); + dest += 32, windowTileData+= 32; + arg2--; + } while (arg2 != 0); + } +} + +static void sub_80751E4(void *dest, u8 *windowTileData, u32 arg2) +{ + CpuCopy32(windowTileData, dest, arg2 * 32); + CpuCopy32(windowTileData + 256, dest + 256, arg2 * 32); +} diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index fb6a8272b..28357d984 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -349,7 +349,7 @@ 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 atk55_play_fanfare(void); static void atk56_fainting_cry(void); static void atk57(void); static void atk58_return_to_ball(void); @@ -601,7 +601,7 @@ void (* const gBattleScriptingCommandsTable[])(void) = atk52_switch_in_effects, atk53_trainer_slide, atk54_effectiveness_sound, - atk55_play_sound, + atk55_play_fanfare, atk56_fainting_cry, atk57, atk58_return_to_ball, @@ -909,7 +909,7 @@ static const u8 sUnknown_0831C2E8[] = INCBIN_U8("graphics/battle_interface/unk_b static const u8 sRubyLevelUpStatBoxStats[] = { MON_DATA_MAX_HP, MON_DATA_SPATK, MON_DATA_ATK, - MON_DATA_SPDEF, MON_DATA_DEF, MON_DATA_SPD + MON_DATA_SPDEF, MON_DATA_DEF, MON_DATA_SPEED }; #define MON_ICON_LVLUP_BOX_TAG 0xD75A @@ -3610,7 +3610,7 @@ static void atk23_getexp(void) 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->spd = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPEED); BATTLE_LVLUP_STATS->spAtk = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPATK); BATTLE_LVLUP_STATS->spDef = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPDEF); @@ -3649,8 +3649,8 @@ static void atk23_getexp(void) 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].speed = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPEED); + gBattleMons[0].speed = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPEED); gBattleMons[0].spAttack = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPATK); gBattleMons[0].spDefense = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPDEF); @@ -3664,8 +3664,8 @@ static void atk23_getexp(void) 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].speed = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPEED); + gBattleMons[2].speed = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPEED); gBattleMons[2].spAttack = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPATK); } @@ -5308,7 +5308,7 @@ static void atk4B_return_atk_to_ball(void) gActiveBank = gBankAttacker; if (!(gHitMarker & HITMARKER_FAINTED(gActiveBank))) { - EmitReturnPokeToBall(0, 0); + EmitReturnMonToBall(0, 0); MarkBufferBankForExecution(gActiveBank); } gBattlescriptCurrInstr++; @@ -5627,7 +5627,7 @@ static void atk50_openpartyscreen(void) { gAbsentBankFlags |= gBitTable[gActiveBank]; gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank)); - Emit_x2A(0); + EmitCmd42(0); MarkBufferBankForExecution(gActiveBank); } else if (!gSpecialStatuses[gActiveBank].flag40) @@ -5649,7 +5649,7 @@ static void atk50_openpartyscreen(void) { gAbsentBankFlags |= gBitTable[gActiveBank]; gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank)); - Emit_x2A(0); + EmitCmd42(0); MarkBufferBankForExecution(gActiveBank); } else if (!gSpecialStatuses[gActiveBank].flag40) @@ -5670,7 +5670,7 @@ static void atk50_openpartyscreen(void) { gAbsentBankFlags |= gBitTable[gActiveBank]; gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank)); - Emit_x2A(0); + EmitCmd42(0); MarkBufferBankForExecution(gActiveBank); } else if (!gSpecialStatuses[gActiveBank].flag40) @@ -5692,7 +5692,7 @@ static void atk50_openpartyscreen(void) { gAbsentBankFlags |= gBitTable[gActiveBank]; gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank)); - Emit_x2A(0); + EmitCmd42(0); MarkBufferBankForExecution(gActiveBank); } else if (!gSpecialStatuses[gActiveBank].flag40) @@ -5755,7 +5755,7 @@ static void atk50_openpartyscreen(void) { gAbsentBankFlags |= gBitTable[gActiveBank]; gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank)); - Emit_x2A(0); + EmitCmd42(0); MarkBufferBankForExecution(gActiveBank); } else if (!gSpecialStatuses[gActiveBank].flag40) @@ -5771,7 +5771,7 @@ static void atk50_openpartyscreen(void) { gAbsentBankFlags |= gBitTable[gActiveBank]; gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank)); - Emit_x2A(0); + EmitCmd42(0); MarkBufferBankForExecution(gActiveBank); } else if (!gSpecialStatuses[gActiveBank].flag40) @@ -6031,10 +6031,10 @@ static void atk54_effectiveness_sound(void) gBattlescriptCurrInstr += 3; } -static void atk55_play_sound(void) +static void atk55_play_fanfare(void) { gActiveBank = gBankAttacker; - EmitPlaySound(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1), 0); + EmitPlayFanfareOrBGM(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1), FALSE); MarkBufferBankForExecution(gActiveBank); gBattlescriptCurrInstr += 3; @@ -6052,7 +6052,7 @@ static void atk56_fainting_cry(void) static void atk57(void) { gActiveBank = GetBankByIdentity(0); - Emit_x37(0, gBattleOutcome); + EmitCmd55(0, gBattleOutcome); MarkBufferBankForExecution(gActiveBank); gBattlescriptCurrInstr += 1; @@ -6061,7 +6061,7 @@ static void atk57(void) static void atk58_return_to_ball(void) { gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); - EmitReturnPokeToBall(0, 1); + EmitReturnMonToBall(0, 1); MarkBufferBankForExecution(gActiveBank); gBattlescriptCurrInstr += 2; @@ -7137,7 +7137,7 @@ static void atk76_various(void) gDisableStructs[1].truantUnknownBit = 1; break; case 13: - EmitCmd13(0); + EmitCmd19(0); MarkBufferBankForExecution(gActiveBank); break; case 14: @@ -7162,7 +7162,7 @@ static void atk76_various(void) gActiveBank = 1; if (gBattleMons[gActiveBank].hp != 0) { - EmitReturnPokeToBall(0, 0); + EmitReturnMonToBall(0, 0); MarkBufferBankForExecution(gActiveBank); } break; @@ -7172,7 +7172,7 @@ static void atk76_various(void) gActiveBank = 3; if (gBattleMons[gActiveBank].hp != 0) { - EmitReturnPokeToBall(0, 0); + EmitReturnMonToBall(0, 0); MarkBufferBankForExecution(gActiveBank); } } @@ -7197,7 +7197,7 @@ static void atk76_various(void) gBattleOutcome = BATTLE_OPPONENT_TELEPORTED; break; case VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC: - EmitPlaySound(0, BGM_KACHI1, 1); + EmitPlayFanfareOrBGM(0, BGM_KACHI1, TRUE); MarkBufferBankForExecution(gActiveBank); break; } diff --git a/src/clear_save_data_screen.c b/src/clear_save_data_screen.c new file mode 100755 index 000000000..3192e0e11 --- /dev/null +++ b/src/clear_save_data_screen.c @@ -0,0 +1,209 @@ +#include "global.h" +#include "task.h" +#include "menu.h" +#include "text.h" +#include "sound.h" +#include "main.h" +#include "save.h" +#include "palette.h" +#include "gpu_regs.h" +#include "bg.h" +#include "text_window.h" +#include "songs.h" + +extern u8 gText_ClearAllSaveData[]; +extern u8 gText_ClearingData[]; + +extern u16 gUnknown_0860F074[]; + +static void Task_DoClearSaveDataScreenYesNo(u8); +static void Task_ClearSaveDataScreenYesNoChoice(u8); +static void Task_ClearSaveData(u8); +static bool8 SetupClearSaveDataScreen(void); +static void CB2_FadeAndDoReset(void); +static void InitClearSaveDataScreenWindows(void); + +static const struct BgTemplate sClearSaveBgTemplates[2] = +{ + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0, + }, + { + .bg = 3, + .charBaseIndex = 0, + .mapBaseIndex = 30, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0, + }, +}; + +static const struct WindowTemplate sClearSaveTextWindow[] = +{ + { + .priority = 0, + .tilemapLeft = 3, + .tilemapTop = 15, + .width = 26, + .height = 4, + .paletteNum = 15, + .baseBlock = 11, + }, + DUMMY_WIN_TEMPLATE +}; + +static const struct WindowTemplate sClearSaveYesNo[] = +{ + { + .priority = 0, + .tilemapLeft = 3, + .tilemapTop = 2, + .width = 5, + .height = 4, + .paletteNum = 15, + .baseBlock = 115, + } +}; + +void CB2_InitClearSaveDataScreen(void) +{ + if(SetupClearSaveDataScreen()) + CreateTask(Task_DoClearSaveDataScreenYesNo, 0); +} + +static void Task_DoClearSaveDataScreenYesNo(u8 taskId) +{ + SetWindowBorderStyle(0, 0, 2, 14); + PrintTextOnWindow(0, 1, gText_ClearAllSaveData, 0, 1, 0, 0); + CreateYesNoMenu(sClearSaveYesNo, 2, 14, 1); + gTasks[taskId].func = Task_ClearSaveDataScreenYesNoChoice; +} + +static void Task_ClearSaveDataScreenYesNoChoice(u8 taskId) +{ + switch(sub_8198C58()) + { + case 0: + FillWindowPixelBuffer(0, 17); + PrintTextOnWindow(0, 1, gText_ClearingData, 0, 1, 0, 0); + gTasks[taskId].func = Task_ClearSaveData; + break; + case 1: + case -1: + PlaySE(SE_SELECT); + DestroyTask(taskId); + SetMainCallback2(CB2_FadeAndDoReset); + } +} + +static void Task_ClearSaveData(u8 taskId) +{ + ClearSaveData(); + DestroyTask(taskId); + SetMainCallback2(CB2_FadeAndDoReset); +} + +static void MainCB(void) +{ + RunTasks(); + UpdatePaletteFade(); +} + +static void VBlankCB(void) +{ + TransferPlttBuffer(); +} + +static bool8 SetupClearSaveDataScreen(void) +{ + u16 i; + + switch(gMain.state) + { + case 0: + default: + SetVBlankCallback(NULL); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0); + SetGpuReg(REG_OFFSET_BG0HOFS, 0); + SetGpuReg(REG_OFFSET_BG0VOFS, 0); + SetGpuReg(REG_OFFSET_BG3HOFS, 0); + SetGpuReg(REG_OFFSET_BG3VOFS, 0); + SetGpuReg(REG_OFFSET_WIN0H, 0); + SetGpuReg(REG_OFFSET_WIN0V, 0); + SetGpuReg(REG_OFFSET_WININ, 0); + SetGpuReg(REG_OFFSET_WINOUT, 0); + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, 0); + SetGpuReg(REG_OFFSET_BLDY, 0); + DmaFill16(3, 0, (void *)VRAM, VRAM_SIZE); + DmaFill32(3, 0, (void *)OAM, OAM_SIZE); + DmaFill16(3, 0, (void *)(PLTT + 2), PLTT_SIZE - 2); + ResetPaletteFade(); + gPlttBufferUnfaded[0] = 0x7fff; + gPlttBufferFaded[0] = 0x7fff; + gPlttBufferUnfaded[1] = 0x3945; + gPlttBufferFaded[1] = 0x3945; + for (i = 0; i < 0x10; i++) + ((u16 *)(VRAM + 0x20))[i] = 0x1111; + + for (i = 0; i < 0x400; i++) + ((u16 *)(VRAM + 0xF000))[i] = 0x0001; + ResetTasks(); + ResetSpriteData(); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, sClearSaveBgTemplates, ARRAY_COUNT(sClearSaveBgTemplates)); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); + ShowBg(0); + ShowBg(3); + SetGpuReg(REG_OFFSET_BLDCNT, 0); + InitClearSaveDataScreenWindows(); + BeginNormalPaletteFade(0x0000FFFF, 0, 0x10, 0, 0xFFFF); + EnableInterrupts(1); + SetVBlankCallback(VBlankCB); + gMain.state = 1; + break; + case 1: + UpdatePaletteFade(); + if(!gPaletteFade.active) + { + SetMainCallback2(MainCB); + return TRUE; + } + } + return FALSE; +} + +static void CB2_FadeAndDoReset(void) +{ + switch(gMain.state) + { + case 0: + default: + BeginNormalPaletteFade(0x0000FFFF, 0, 0, 0x10, 0xFFFF); + gMain.state = 1; + break; + case 1: + UpdatePaletteFade(); + if(!gPaletteFade.active) + { + FreeAllWindowBuffers(); + DoSoftReset(); + } + } +} + +static void InitClearSaveDataScreenWindows(void) +{ + InitWindows(sClearSaveTextWindow); + DeactivateAllTextPrinters(); + FillWindowPixelBuffer(0, 0); + sub_80987D4(0, 0, 2, 224); + LoadPalette(gUnknown_0860F074, 0xF0, 0x20); +} diff --git a/src/coins.c b/src/coins.c index e651bc6ca..e1694b29c 100644 --- a/src/coins.c +++ b/src/coins.c @@ -5,12 +5,12 @@ #include "text_window.h" #include "string_util.h" #include "menu.h" +#include "international_string_util.h" #define MAX_COINS 9999 EWRAM_DATA u8 sCoinsWindowId = 0; -extern s32 GetStringRightAlignXOffset(u8 fontId, u8 *str, s32 totalWidth); extern void sub_819746C(u8 windowId, bool8 copyToVram); extern const u8 gText_Coins[]; diff --git a/src/decompress.c b/src/decompress.c index 2863ff1f5..9210799ec 100644 --- a/src/decompress.c +++ b/src/decompress.c @@ -465,7 +465,7 @@ u32 sub_8034974(void* ptr) return (ptr_[3] << 16) | (ptr_[2] << 8) | (ptr_[1]); } -bool8 LoadCompressedObjectPicUsingHeap(struct CompressedSpriteSheet* src) +bool8 LoadCompressedObjectPicUsingHeap(const struct CompressedSpriteSheet* src) { struct SpriteSheet dest; void* buffer; diff --git a/src/decoration.c b/src/decoration.c new file mode 100644 index 000000000..0179d36a1 --- /dev/null +++ b/src/decoration.c @@ -0,0 +1,2781 @@ + +// Includes +#include "global.h" +#include "decompress.h" +#include "malloc.h" +#include "string_util.h" +#include "international_string_util.h" +#include "script.h" +#include "task.h" +#include "main.h" +#include "palette.h" +#include "songs.h" +#include "overworld.h" +#include "fieldmap.h" +#include "metatile_behavior.h" +#include "field_weather.h" +#include "field_player_avatar.h" +#include "field_camera.h" +#include "field_screen.h" +#include "field_map_obj.h" +#include "list_menu.h" +#include "menu_helpers.h" +#include "new_menu_helpers.h" +#include "menu_indicators.h" +#include "sound.h" +#include "event_scripts.h" +#include "event_data.h" +#include "region_map.h" +#include "player_pc.h" +#include "strings.h" +#include "tv.h" +#include "secret_base.h" +#include "tilesets.h" +#include "item_icon.h" +#include "trader.h" +#include "map_object_constants.h" +#include "decoration_inventory.h" +#include "decoration.h" +#include "graphics.h" + +// Static type declarations + +#define OVERWORLD_PLACE_DECOR_SELECTOR_PAL_TAG 0xbe5 +#define OVERWORLD_PLACE_DECOR_PLAYER_PAL_TAG 0x008 + +struct DecorPCBuffer { + struct ListMenuItem items[41]; + u8 names[41][24]; + u8 unk_520; + u8 unk_521; + u8 unk_522; +}; + +struct PlaceDecorationGraphicsDataBuffer { + /*0x000; 0x0203a190*/ const struct Decoration *decoration; + /*0x004; 0x0203a194*/ u16 tiles[0x40]; + /*0x084; 0x0203a214*/ u8 image[0x800]; + /*0x884; 0x0203aa14*/ u16 palette[16]; +}; + +struct DecorRearrangementDataBuffer { + u8 idx; + u8 width; + u8 height; + u16 flagId; +}; + +// Static RAM declarations + +EWRAM_DATA u8 *gCurDecorInventoryItems = NULL; +EWRAM_DATA u8 sSecretBasePCMenuCursorPos = 0; +EWRAM_DATA u8 sCurDecorCatCount = 0; +EWRAM_DATA u8 sSecretBaseItemsIndicesBuffer[16] = {}; +EWRAM_DATA u8 sPlayerRoomItemsIndicesBuffer[12] = {}; +EWRAM_DATA u16 sSecretBasePCSelectDecorLineNo = 0; +EWRAM_DATA u16 sSecretBasePCSelectDecorPageNo = 0; +EWRAM_DATA u8 gCurDecorationIndex = 0; +EWRAM_DATA u8 sCurDecorationCategory = DECORCAT_DESK; +EWRAM_DATA u32 filler_0203a174[2] = {}; +EWRAM_DATA struct DecorPCPointers gUnknown_0203A17C = {}; +EWRAM_DATA u8 sDecorMenuWindowIndices[4] = {}; +EWRAM_DATA struct DecorPCBuffer *sDecorPCBuffer = NULL; +EWRAM_DATA struct PlaceDecorationGraphicsDataBuffer sPlaceDecorationGraphicsDataBuffer = {}; +EWRAM_DATA u16 sCurDecorMapX = 0; +EWRAM_DATA u16 sCurDecorMapY = 0; +EWRAM_DATA u8 sDecor_CameraSpriteObjectIdx1 = 0; +EWRAM_DATA u8 sDecor_CameraSpriteObjectIdx2 = 0; +EWRAM_DATA u8 sDecorationLastDirectionMoved = 0; +EWRAM_DATA struct OamData sDecorSelectorOam = {}; +EWRAM_DATA struct DecorRearrangementDataBuffer sDecorRearrangementDataBuffer[16] = {}; +EWRAM_DATA u8 sCurDecorSelectedInRearrangement = 0; + +// Static ROM declarations + +void sub_8126B80(u8 taskId); +void sub_8126C08(void); +void SecretBasePC_Decorate(u8 taskId); +void SecretBasePC_PutAway(u8 taskId); +void SecretBasePC_Toss(u8 taskId); +void sub_8126DA4(u8 taskId); +void SecretBasePC_Cancel(u8 taskId); +void SecretBasePC_PrepMenuForSelectingStoredDecors(u8 taskId); +void sub_8126DFC(u8 taskId); +void sub_8126E8C(u8 taskId); +void sub_8126F68(u8 winid, u8 decorCat, u8 x, u8 y, bool8 flag, u8 speed); +void sub_8127058(u8 *str, bool8 flag); +void sub_8127088(u8 taskId); +void sub_81270E8(u8 taskId); +void sub_8127180(u8 taskId); +void sub_812719C(u8 taskId); +void sub_81271CC(u8 taskId); +void sub_8127268(u8 taskId); +void sub_8127454(u8 *dest, u16 decorId); +void sub_8127480(u32 a0, bool8 flag, struct ListMenu *menu); +void sub_81274A0(u8 a0, s32 a1, u8 a2); +void sub_8127620(u8 taskId); +void sub_812764C(u8 taskId); +void sub_8127744(u32 a0); +void sub_81277A8(void); +bool8 sub_81277BC(u8 idx); +bool8 sub_81277E8(u8 idx); +void IdentifyOwnedDecorationsCurrentlyInUse(u8 taskId); +void sub_812759C(u8 taskId); +void sub_8127718(u8 decorCat); +void sub_8127A30(u8 taskId); +void sub_8127A8C(u8 taskId); +void sub_8127F68(u8 taskId); +void sub_8128060(u8 taskId); +void ConfigureCameraObjectForPlacingDecoration(struct PlaceDecorationGraphicsDataBuffer *data, u8 decor); +void SetUpPlacingDecorationPlayerAvatar(u8 taskId, struct PlaceDecorationGraphicsDataBuffer *data); +void sub_812826C(u8 taskId); +void sub_81283BC(u8 taskId); +void sub_8128414(u8 taskId); +void sub_8128950(u8 taskId); +void sub_81289D0(u8 taskId); +void sub_81289F0(u8 taskId); +void sub_8128AAC(u8 taskId); +void sub_8128B80(u8 taskId); +void sub_8128BA0(u8 taskId); +void sub_8128BBC(u8 taskId); +void c1_overworld_prev_quest(u8 taskId); +void sub_8128CD4(void); +void sub_8128DE0(void); +void sub_8128FD8(u8 taskId); +void sub_8129020(u8 taskId); +void sub_81292D0(struct Sprite *sprite); +void sub_81292E8(struct Sprite *sprite); +u8 gpu_pal_decompress_alloc_tag_and_upload(struct PlaceDecorationGraphicsDataBuffer *data, u8 decor); +const u8 *GetDecorationIconPicOrPalette(u16 decor, u8 mode); +bool8 sub_81299AC(u8 taskId); +void sub_8129ABC(u8 taskId); +void sub_8129B34(u8 taskId); +void sub_8129BCC(u8 taskId); +void sub_8129BF8(u8 taskId); +void sub_8129C74(u8 taskId); +void sub_8129D64(u8 taskId); +void sub_812A0E8(u8 taskId); +void sub_812A1A0(u8 taskId); +void sub_812A1C0(u8 taskId); +void sub_812A1F0(u8 taskId); +void sub_812A210(u8 taskId); +void sub_812A22C(u8 taskId); +void sub_812A25C(u8 taskId); +void sub_812A334(void); +void sub_812A36C(struct Sprite *sprite); +void sub_812A39C(void); +void sub_812A3C8(void); +void sub_812A3D4(u8 taskId); +void sub_812A458(u8 taskId); +void sub_812A478(u8 taskId); + +// .rodata + +#include "data/decoration/tiles.h" +#include "data/decoration/description.h" +#include "data/decoration/header.h" + +const u8 *const sDecorCatNames[] = { + gText_Desk, + gText_Chair, + gText_Plant, + gText_Ornament, + gText_Mat, + gText_Poster, + gText_Doll, + gText_Cushion +}; + +const struct MenuAction sSecretBasePCMenuActions[] = { + { + gText_Decorate, {.void_u8=SecretBasePC_Decorate} + }, { + gText_PutAway, {.void_u8=SecretBasePC_PutAway} + }, { + gText_Toss2, {.void_u8=SecretBasePC_Toss} + }, { + gText_Cancel, {.void_u8=SecretBasePC_Cancel} + } +}; + +const u8 *const sSecretBasePCMenuItemDescriptions[] = { + gText_PutOutSelectedDecorItem, + gText_StoreChosenDecorInPC, + gText_ThrowAwayUnwantedDecors, + gText_GoBackPrevMenu +}; + +void (*const SecretBasePC_SelectedDecorActions[][2])(u8 taskId) = { + { + sub_8127F68, sub_8127A8C + }, { + sub_812A3D4, sub_8127A8C + }, { + sub_8133DA0, sub_8127A8C + } +}; + +const struct WindowTemplate gUnknown_085A6B90[4] = { + { 0, 1, 1, 18, 8, 15, 0x0001 }, + { 0, 1, 1, 13, 18, 13, 0x0091 }, + { 0, 17, 1, 12, 2, 15, 0x017b }, + { 0, 16, 13, 13, 6, 15, 0x0193 } +}; + +const u16 gUnknown_085A6BB0[] = INCBIN_U16("graphics/decorations/unk_85a6bb0.gbapal"); + +const struct ListMenuTemplate gUnknown_085A6BD0 = { + NULL, + sub_8127480, + sub_81274A0, + 0, 0, + 0, 0, 8, 0, + 9, 2, 1, 3, FALSE, 0, FALSE, 7 +}; + +#include "data/decoration/icon.h" +#include "data/decoration/tilemaps.h" + +const struct { + u8 shape; + u8 size; + u8 x; + u8 y; +} gUnknown_085A7250[] = { + {0, 1, 0x78, 0x4e}, + {1, 2, 0x80, 0x4e}, + {1, 3, 0x90, 0x56}, + {1, 3, 0x90, 0x46}, + {0, 2, 0x80, 0x46}, + {2, 2, 0x78, 0x46}, + {2, 3, 0x80, 0x56}, + {2, 3, 0x80, 0x36}, + {0, 3, 0x90, 0x46}, + {1, 3, 0x90, 0x46} +}; + +const union AnimCmd gUnknown_085A7278[] = { + ANIMCMD_FRAME(0, 0, FALSE, FALSE), + ANIMCMD_END +}; + +const union AnimCmd *const sDecorSelectorAnims[] = { + gUnknown_085A7278 +}; + +const struct SpriteFrameImage sDecorSelectorSpriteFrameImages = { + (const u8 *)&sPlaceDecorationGraphicsDataBuffer.image, 0x800 +}; + +const struct SpriteTemplate sDecorSelectorSpriteTemplate = { + 0xffff, + OVERWORLD_PLACE_DECOR_SELECTOR_PAL_TAG, + &sDecorSelectorOam, + sDecorSelectorAnims, + &sDecorSelectorSpriteFrameImages, + gDummySpriteAffineAnimTable, + SpriteCallbackDummy +}; + +const struct SpriteTemplate sDecorWhilePlacingSpriteTemplate = { + 0x0000, + 0x0000, + &sDecorSelectorOam, + sDecorSelectorAnims, + NULL, + gDummySpriteAffineAnimTable, + SpriteCallbackDummy +}; + +const struct SpritePalette gUnknown_085A72BC = { + (const u16 *)&sPlaceDecorationGraphicsDataBuffer.palette, OVERWORLD_PLACE_DECOR_SELECTOR_PAL_TAG +}; + +const struct YesNoFuncTable gUnknown_085A72C4 = { + sub_81289F0, + sub_8128FD8 +}; + +const struct YesNoFuncTable gUnknown_085A72CC = { + sub_8128BA0, + sub_8128FD8 +}; + +const struct YesNoFuncTable gUnknown_085A72D4[] = { + { + sub_81283BC, + sub_8128414 + }, { + sub_8129BCC, + sub_8129BF8 + } +}; + +const u8 gUnknown_085A72E4[] = { + 0x04, 0x04, 0x04, 0x04, 0x00, 0x03, 0x03, 0x00 +}; + +const u8 gUnknown_085A72EC[] = { + 0x04, 0x04, 0x04, 0x04, 0x00, 0x04, 0x03, 0x00 +}; + +const u16 gUnknown_085A72F4[] = { + 0x04, 0x08, 0x10, 0x20, 0x10, 0x08, 0x10, 0x20, 0x40, 0x20 +}; + +const u16 Unknown_085A7308[] = INCBIN_U16("graphics/decorations/unk_85a7308.gbapal"); + +const u16 Unknown_085A7328[] = INCBIN_U16("graphics/decorations/unk_85a7328.gbapal"); + +const struct YesNoFuncTable gUnknown_085A7348 = { + sub_812A1C0, + sub_8129B34 +}; + +const struct YesNoFuncTable gUnknown_085A7350 = { + sub_812A210, + sub_8129B34 +}; + +const u8 Unknown_085A7358[] = INCBIN_U8("graphics/misc/decoration_unk_85a7358.4bpp"); + +const struct SpritePalette gUnknown_085A73D8 = { + Unknown_085A7308, OVERWORLD_PLACE_DECOR_PLAYER_PAL_TAG +}; + +const struct SpritePalette gUnknown_085A73E0 = { + Unknown_085A7328, OVERWORLD_PLACE_DECOR_PLAYER_PAL_TAG +}; + +const struct OamData Unknown_085A73E8 = { + .size = 1, .priority = 1 +}; + +const union AnimCmd Unknown_085A73F0[] = { + ANIMCMD_FRAME(0, 0, 0), + ANIMCMD_END +}; + +const union AnimCmd *const Unknown_085A73F8[] = { + Unknown_085A73F0 +}; + +const struct SpriteFrameImage Unknown_085A73FC = { + Unknown_085A7358, 0x80 +}; + +const struct SpriteTemplate gUnknown_085A7404 = { + 0xFFFF, + OVERWORLD_PLACE_DECOR_PLAYER_PAL_TAG, + &Unknown_085A73E8, + Unknown_085A73F8, + &Unknown_085A73FC, + gDummySpriteAffineAnimTable, + sub_812A36C +}; + +const struct YesNoFuncTable gUnknown_085A741C = { + sub_812A478, + sub_8127A30 +}; + +// .text + +void sub_8126968(void) +{ + if (sCurDecorationCategory < 8) + { + gCurDecorInventoryItems = gDecorationInventories[sCurDecorationCategory].items; + } + if (gUnknown_0203A17C.isPlayerRoom == FALSE) + { + gUnknown_0203A17C.items = gSaveBlock1Ptr->secretBases[0].decorations; + gUnknown_0203A17C.pos = gSaveBlock1Ptr->secretBases[0].decorationPos; + } + if (gUnknown_0203A17C.isPlayerRoom == TRUE) + { + gUnknown_0203A17C.items = gSaveBlock1Ptr->playerRoomDecor; + gUnknown_0203A17C.pos = gSaveBlock1Ptr->playerRoomDecorPos; + } +} + +u8 sub_81269D4(u8 idx) +{ + u8 *winidx; + struct WindowTemplate template; + + winidx = &sDecorMenuWindowIndices[idx]; + if (idx == 0) + { + template = gUnknown_085A6B90[0]; + template.width = GetMaxWidthInMenuTable(sSecretBasePCMenuActions, 4); + if (template.width > 18) + { + template.width = 18; + } + *winidx = AddWindow(&template); + } + else + { + *winidx = AddWindow(&gUnknown_085A6B90[idx]); + } + SetWindowBorderStyle(*winidx, 0, 0x214, 0xe); + schedule_bg_copy_tilemap_to_vram(0); + return *winidx; +} + +void sub_8126A58(u8 idx) +{ + sub_8198070(sDecorMenuWindowIndices[idx], FALSE); + ClearWindowTilemap(sDecorMenuWindowIndices[idx]); + RemoveWindow(sDecorMenuWindowIndices[idx]); + schedule_bg_copy_tilemap_to_vram(0); +} + +void sub_8126A88(void) +{ + u8 idx; + + idx = sub_81269D4(0); + PrintMenuTable(idx, 4, sSecretBasePCMenuActions); + InitMenuInUpperLeftCornerPlaySoundWhenAPressed(idx, 4, sSecretBasePCMenuCursorPos); +} + +void sub_8126ABC(void) +{ + sSecretBasePCMenuCursorPos = 0; + ScriptContext2_Enable(); + sub_8126A88(); + sub_8126C08(); +} + +void sub_8126AD8(u8 taskId) +{ + sub_8126ABC(); + gUnknown_0203A17C.items = gSaveBlock1Ptr->secretBases[0].decorations; + gUnknown_0203A17C.pos = gSaveBlock1Ptr->secretBases[0].decorationPos; + gUnknown_0203A17C.size = sizeof(gSaveBlock1Ptr->secretBases[0].decorations); + gUnknown_0203A17C.isPlayerRoom = FALSE; + gTasks[taskId].func = sub_8126B80; +} + +void sub_8126B2C(u8 taskId) +{ + sub_8126ABC(); + gUnknown_0203A17C.items = gSaveBlock1Ptr->playerRoomDecor; + gUnknown_0203A17C.pos = gSaveBlock1Ptr->playerRoomDecorPos; + gUnknown_0203A17C.size = sizeof(gSaveBlock1Ptr->playerRoomDecor); + gUnknown_0203A17C.isPlayerRoom = TRUE; + gTasks[taskId].func = sub_8126B80; +} + +void sub_8126B80(u8 taskId) +{ + u8 menuPos; + + if (!gPaletteFade.active) + { + menuPos = GetMenuCursorPos(); + switch (ProcessMenuInput()) + { + default: + PlaySE(SE_SELECT); + sSecretBasePCMenuActions[sSecretBasePCMenuCursorPos].func.void_u8(taskId); + break; + case -2: + sSecretBasePCMenuCursorPos = GetMenuCursorPos(); + if ((s8)menuPos != sSecretBasePCMenuCursorPos) + { + sub_8126C08(); + } + break; + case -1: + PlaySE(SE_SELECT); + SecretBasePC_Cancel(taskId); + break; + } + } +} + +void sub_8126C08(void) +{ + FillWindowPixelBuffer(0, 0x11); + AddTextPrinterParametrized(0, 1, sSecretBasePCMenuItemDescriptions[sSecretBasePCMenuCursorPos], 0, 0, 2, 1, 3); +} + +void SecretBasePC_Decorate(u8 taskId) +{ + if (CountDecorations() == 0) + { + StringExpandPlaceholders(gStringVar4, gText_NoDecorations); + DisplayItemMessageOnField(taskId, gStringVar4, sub_8126DA4); + } + else + { + gTasks[taskId].data[11] = 0; + sCurDecorationCategory = DECORCAT_DESK; + SecretBasePC_PrepMenuForSelectingStoredDecors(taskId); + } +} + +void SecretBasePC_PutAway(u8 taskId) +{ + if (!sub_81299AC(taskId)) + { + StringExpandPlaceholders(gStringVar4, gText_NoDecorationsInUse); + DisplayItemMessageOnField(taskId, gStringVar4, sub_8126DA4); + } + else + { + sub_8126A58(0); + sub_8197434(0, 0); + fade_screen(1, 0); + gTasks[taskId].data[2] = 0; + gTasks[taskId].func = sub_8129ABC; + } +} + +void SecretBasePC_Toss(u8 taskId) +{ + if (CountDecorations() == 0) + { + StringExpandPlaceholders(gStringVar4, gText_NoDecorations); + DisplayItemMessageOnField(taskId, gStringVar4, sub_8126DA4); + } + else + { + gTasks[taskId].data[11] = 1; + sCurDecorationCategory = DECORCAT_DESK; + SecretBasePC_PrepMenuForSelectingStoredDecors(taskId); + } +} + +void SecretBasePC_Cancel(u8 taskId) +{ + sub_8126A58(0); + if (!gUnknown_0203A17C.isPlayerRoom) + { + ScriptContext1_SetupScript(gUnknown_0823B4E8); + DestroyTask(taskId); + } + else + { + sub_816B060(taskId); + } +} + +void sub_8126DA4(u8 taskId) +{ + sub_8126C08(); + gTasks[taskId].func = sub_8126B80; +} + +void SecretBasePC_PrepMenuForSelectingStoredDecors(u8 taskId) +{ + LoadPalette(gUnknown_085A6BB0, 0xd0, 0x20); + sub_8197434(0, 0); + sub_8126A58(0); + sub_8126DFC(taskId); +} + +void sub_8126DFC(u8 taskId) +{ + u8 winIdx; + + winIdx = sub_81269D4(1); + sub_8126E8C(taskId); + InitMenuInUpperLeftCornerPlaySoundWhenAPressed(winIdx, 9, sCurDecorationCategory); + gTasks[taskId].func = sub_8127088; +} + +void sub_8126E44(u8 taskId) +{ + FillWindowPixelBuffer(sDecorMenuWindowIndices[1], 0x11); + sub_8126E8C(taskId); + InitMenuInUpperLeftCornerPlaySoundWhenAPressed(sDecorMenuWindowIndices[1], 9, sCurDecorationCategory); + gTasks[taskId].func = sub_8127088; +} + +void sub_8126E8C(u8 taskId) +{ + s16 *data; + u8 r5; + bool8 r8; + u8 i; + bool8 fl; + + data = gTasks[taskId].data; + r5 = sDecorMenuWindowIndices[1]; + fl = gUnknown_0203A17C.isPlayerRoom; + r8 = FALSE; + if (fl == TRUE && data[11] == 0) + { + r8 = TRUE; + } + for (i = 0; i < 8; i ++) + { + if (r8 == TRUE && i != DECORCAT_DOLL && i != DECORCAT_CUSHION) + { + sub_8126F68(r5, i, 8, i << 4, TRUE, 0xFF); + } + else + { + sub_8126F68(r5, i, 8, i << 4, FALSE, 0xFF); + } + } + PrintTextOnWindow(r5, 1, gTasks[taskId].data[11] == 2 ? gText_Exit : gText_Cancel, 8, (i << 4) + 1, 0, 0); + schedule_bg_copy_tilemap_to_vram(0); +} + +void sub_8126F68(u8 winid, u8 decorCat, u8 x, u8 y, bool8 flag, u8 speed) +{ + u8 width; + u8 *strbuf; + + width = x == 8 ? 0x68 : 0x60; + y ++; + sub_8127058(gStringVar4, flag); + strbuf = StringLength(gStringVar4) + gStringVar4; + StringCopy(strbuf, sDecorCatNames[decorCat]); + PrintTextOnWindow(winid, 1, gStringVar4, x, y, speed, NULL); + strbuf = ConvertIntToDecimalStringN(strbuf, CountDecorationCategoryN(decorCat), STR_CONV_MODE_RIGHT_ALIGN, 2); + *strbuf++ = CHAR_SLASH; + ConvertIntToDecimalStringN(strbuf, gDecorationInventories[decorCat].size, STR_CONV_MODE_RIGHT_ALIGN, 2); + x = GetStringRightAlignXOffset(1, gStringVar4, width); + PrintTextOnWindow(winid, 1, gStringVar4, x, y, speed, NULL); +} + +void sub_8127058(u8 *str, bool8 flag) +{ + StringCopy(str, gText_Color161Shadow161); + if (flag == TRUE) + { + str[2] = 0x04; // RED + str[5] = 0x05; // LIGHT_RED + } + else + { + str[2] = 0x02; // DARK_GREY + str[5] = 0x03; // LIGHT_GREY + } +} + +void sub_8127088(u8 taskId) +{ + s8 input; + + if (!gPaletteFade.active) + { + input = ProcessMenuInput(); + switch (input) + { + case -1: + case 8: + PlaySE(SE_SELECT); + sub_812719C(taskId); + break; + case -2: + break; + default: + PlaySE(SE_SELECT); + sCurDecorationCategory = input; + sub_81270E8(taskId); + break; + } + } +} + +void sub_81270E8(u8 taskId) +{ + sCurDecorCatCount = CountDecorationCategoryN(sCurDecorationCategory); + if (sCurDecorCatCount != 0) + { + CondenseDecorationCategoryN(sCurDecorationCategory); + gCurDecorInventoryItems = gDecorationInventories[sCurDecorationCategory].items; + IdentifyOwnedDecorationsCurrentlyInUse(taskId); + sSecretBasePCSelectDecorPageNo = 0; + sSecretBasePCSelectDecorLineNo = 0; + gTasks[taskId].func = sub_8127620; + } + else + { + sub_8126A58(1); + StringExpandPlaceholders(gStringVar4, gText_NoDecorations); + DisplayItemMessageOnField(taskId, gStringVar4, sub_8127180); + } +} + +void sub_8127180(u8 taskId) +{ + sub_8197434(0, 0); + sub_8126DFC(taskId); +} + +void sub_812719C(u8 taskId) +{ + if (gTasks[taskId].data[11] != 2) + { + sub_81271CC(taskId); + } + else + { + sub_8127268(taskId); + } +} + +void sub_81271CC(u8 taskId) +{ + sub_8126A58(1); + sub_8126A88(); + sub_81973C4(0, 0); + sub_8126C08(); + gTasks[taskId].func = sub_8126B80; +} + +void sub_8127208(u8 taskId) +{ + LoadPalette(gUnknown_085A6BB0, 0xd0, 0x20); + sub_8197434(0, 0); + gTasks[taskId].data[11] = 2; + sCurDecorationCategory = DECORCAT_DESK; + sub_8126DFC(taskId); +} + +void sub_8127250(u8 *dest, u8 decorCat) +{ + StringCopy(dest, sDecorCatNames[decorCat]); +} + +void sub_8127268(u8 taskId) +{ + sub_8126A58(1); + sub_8133E1C(taskId); +} + +void sub_8127284(void) +{ + sDecorPCBuffer->unk_520 = sCurDecorCatCount + 1; + if (sDecorPCBuffer->unk_520 > 8) + { + sDecorPCBuffer->unk_521 = 8; + } + else + { + sDecorPCBuffer->unk_521 = sDecorPCBuffer->unk_520; + } +} + +void sub_81272C8(void) +{ + sub_812225C(&sSecretBasePCSelectDecorPageNo, &sSecretBasePCSelectDecorLineNo, sDecorPCBuffer->unk_521, sDecorPCBuffer->unk_520); +} + +void sub_81272F8(void) +{ + sub_8122298(&sSecretBasePCSelectDecorPageNo, &sSecretBasePCSelectDecorLineNo, sDecorPCBuffer->unk_521, sDecorPCBuffer->unk_520, 8); +} + +void sub_8127330(u8 taskId) +{ + s16 *data; + u16 i; + + data = gTasks[taskId].data; + if ((sCurDecorationCategory < DECORCAT_DOLL || sCurDecorationCategory > DECORCAT_CUSHION) && gUnknown_0203A17C.isPlayerRoom == TRUE && data[11] == 0) + { + sub_8127058(gStringVar1, TRUE); + } + else + { + sub_8127058(gStringVar1, FALSE); + } + for (i = 0; i < sDecorPCBuffer->unk_520 - 1; i ++) + { + sub_8127454(sDecorPCBuffer->names[i], gCurDecorInventoryItems[i]); + sDecorPCBuffer->items[i].unk_00 = sDecorPCBuffer->names[i]; + sDecorPCBuffer->items[i].unk_04 = i; + } + StringCopy(sDecorPCBuffer->names[i], gText_Cancel); + sDecorPCBuffer->items[i].unk_00 = sDecorPCBuffer->names[i]; + sDecorPCBuffer->items[i].unk_04 = -2; + gUnknown_03006310 = gUnknown_085A6BD0; + gUnknown_03006310.unk_10 = sDecorMenuWindowIndices[1]; + gUnknown_03006310.unk_0c = sDecorPCBuffer->unk_520; + gUnknown_03006310.unk_00 = sDecorPCBuffer->items; + gUnknown_03006310.unk_0e = sDecorPCBuffer->unk_521; +} + +void sub_8127454(u8 *dest, u16 decorId) +{ + StringCopy(dest, gStringVar1); + StringAppend(dest, gDecorations[decorId].name); +} + +void sub_8127480(u32 a0, bool8 flag, struct ListMenu *menu) +{ + if (flag != TRUE) + { + PlaySE(SE_SELECT); + } + sub_8127744(a0); +} + +void sub_81274A0(u8 a0, s32 a1, u8 a2) +{ + if (a1 != -2) + { + if (sub_81277BC(a1 + 1) == TRUE) + { + blit_move_info_icon(a0, 0x18, 0x5c, a2 + 2); + } + else if (sub_81277E8(a1 + 1) == TRUE) + { + blit_move_info_icon(a0, 0x19, 0x5c, a2 + 2); + } + } +} + +void sub_8127500(void) +{ + if (sDecorPCBuffer->unk_522 == 0xFF) + { + sDecorPCBuffer->unk_522 = AddScrollIndicatorArrowPairParametrized(0x02, 0x3c, 0x0c, 0x94, sDecorPCBuffer->unk_520 - sDecorPCBuffer->unk_521, 0x6e, 0x6e, &sSecretBasePCSelectDecorPageNo); + } +} + +void sub_8127554(void) +{ + if (sDecorPCBuffer->unk_522 != 0xFF) + { + RemoveScrollIndicatorArrowPair(sDecorPCBuffer->unk_522); + sDecorPCBuffer->unk_522 = 0xFF; + } +} + +void sub_8127580(u8 taskId) +{ + sub_81269D4(1); + sub_812759C(taskId); +} + +void sub_812759C(u8 taskId) +{ + s16 *data; + + data = gTasks[taskId].data; + sub_81269D4(3); + sub_8127718(sCurDecorationCategory); + sDecorPCBuffer = calloc(1, sizeof(struct DecorPCBuffer)); + sDecorPCBuffer->unk_522 = 0xFF; + sub_8127284(); + sub_81272C8(); + sub_81272F8(); + sub_8127330(taskId); + data[13] = ListMenuInit(&gUnknown_03006310, sSecretBasePCSelectDecorPageNo, sSecretBasePCSelectDecorLineNo); + sub_8127500(); +} + +void sub_8127620(u8 taskId) +{ + sub_812759C(taskId); + gTasks[taskId].func = sub_812764C; +} + +void sub_812764C(u8 taskId) +{ + s16 *data; + s32 input; + + data = gTasks[taskId].data; + if (!gPaletteFade.active) + { + input = ListMenuHandleInput(data[13]); + get_coro_args_x18_x1A(data[13], &sSecretBasePCSelectDecorPageNo, &sSecretBasePCSelectDecorLineNo); + switch (input) + { + case -1: + break; + case -2: + PlaySE(SE_SELECT); + SecretBasePC_SelectedDecorActions[data[11]][1](taskId); + break; + default: + PlaySE(SE_SELECT); + gCurDecorationIndex = input; + sub_8127554(); + sub_81AE6C8(data[13], &sSecretBasePCSelectDecorPageNo, &sSecretBasePCSelectDecorLineNo); + sub_8126A58(1); + sub_81277A8(); + free(sDecorPCBuffer); + SecretBasePC_SelectedDecorActions[data[11]][0](taskId); + break; + } + } +} + +void sub_8127718(u8 decorCat) +{ + sub_8126F68(sub_81269D4(2), decorCat, 0, 0, 0, 0); +} + +void sub_8127744(u32 a0) +{ + u8 winidx; + const u8 *txt; + + winidx = sDecorMenuWindowIndices[3]; + FillWindowPixelBuffer(winidx, 0x11); + if (a0 >= sCurDecorCatCount) + { + txt = gText_GoBackPrevMenu; + } + else + { + txt = gDecorations[gCurDecorInventoryItems[a0]].description; + } + PrintTextOnWindow(winidx, 1, txt, 0, 1, 0, 0); +} + +void sub_81277A8(void) +{ + sub_8126A58(3); + sub_8126A58(2); +} + +bool8 sub_81277BC(u8 idx) +{ + u8 i; + + for (i = 0; i < 16; i ++) + { + if (sSecretBaseItemsIndicesBuffer[i] == idx) + { + return TRUE; + } + } + return FALSE; +} + +bool8 sub_81277E8(u8 idx) +{ + u8 i; + + for (i = 0; i < 12; i ++) + { + if (sPlayerRoomItemsIndicesBuffer[i] == idx) + { + return TRUE; + } + } + return FALSE; +} + +void IdentifyOwnedDecorationsCurrentlyInUseInternal(u8 taskId) +{ + u16 i; + u16 j; + u16 k; + u16 cnt; + + cnt = 0; + memset(sSecretBaseItemsIndicesBuffer, 0, 16); + memset(sPlayerRoomItemsIndicesBuffer, 0, 12); + for (i = 0; i < 16; i ++) + { + if (gSaveBlock1Ptr->secretBases[0].decorations[i] != DECOR_NONE) + { + for (j = 0; j < gDecorationInventories[sCurDecorationCategory].size; j ++) + { + if (gCurDecorInventoryItems[j] == gSaveBlock1Ptr->secretBases[0].decorations[i]) + { + for (k = 0; k < cnt && sSecretBaseItemsIndicesBuffer[k] != j + 1; k ++); + if (k == cnt) + { + sSecretBaseItemsIndicesBuffer[cnt] = j + 1; + cnt ++; + break; + } + } + } + } + } + cnt = 0; + for (i = 0; i < 12; i ++) + { + if (gSaveBlock1Ptr->playerRoomDecor[i] != DECOR_NONE) + { + for (j = 0; j < gDecorationInventories[sCurDecorationCategory].size; j ++) + { + if (gCurDecorInventoryItems[j] == gSaveBlock1Ptr->playerRoomDecor[i] && sub_81277BC(j + 1) != TRUE) + { + for (k = 0; k < cnt && sPlayerRoomItemsIndicesBuffer[k] != j + 1; k ++); + if (k == cnt) + { + sPlayerRoomItemsIndicesBuffer[cnt] = j + 1; + cnt ++; + break; + } + } + } + } + } +} + +void IdentifyOwnedDecorationsCurrentlyInUse(u8 taskId) +{ + IdentifyOwnedDecorationsCurrentlyInUseInternal(taskId); +} + +bool8 IsSelectedDecorInThePC(void) +{ + u16 i; + for (i = 0; i < 16; i ++) + { + if (sSecretBaseItemsIndicesBuffer[i] == sSecretBasePCSelectDecorPageNo + sSecretBasePCSelectDecorLineNo + 1) + { + return FALSE; + } + if (i < 12 && sPlayerRoomItemsIndicesBuffer[i] == sSecretBasePCSelectDecorPageNo + sSecretBasePCSelectDecorLineNo + 1) + { + return FALSE; + } + } + return TRUE; +} + +void sub_8127A14(u8 taskId) +{ + sub_81269D4(1); + sub_8127620(taskId); +} + +void sub_8127A30(u8 taskId) +{ + sub_8197434(0, 0); + gTasks[taskId].func = sub_8127A14; +} + +void sub_8127A5C(u8 taskId) +{ + if (gMain.newKeys & (A_BUTTON | B_BUTTON)) + { + sub_8197434(0, 0); + sub_81269D4(1); + sub_8127620(taskId); + } +} + +void sub_8127A8C(u8 taskId) +{ + s16 *data; + + data = gTasks[taskId].data; + sub_8127554(); + sub_81277A8(); + sub_81AE6C8(data[13], NULL, NULL); + free(sDecorPCBuffer); + sub_8126E44(taskId); +} + +void sub_8127ACC(u8 taskId) +{ + gTasks[taskId].data[3] = gSaveBlock1Ptr->pos.x; + gTasks[taskId].data[4] = gSaveBlock1Ptr->pos.y; + PlayerGetDestCoords(&gTasks[taskId].data[0], &gTasks[taskId].data[1]); +} + +void sub_8127B04(u8 taskId) +{ + DrawWholeMapView(); + Overworld_SetWarpDestination(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1, gTasks[taskId].data[3], gTasks[taskId].data[4]); + warp_in(); +} + +u16 sub_8127B54(u8 decor, u8 a1) +{ + u16 resp; + + resp = -1; + switch (decor) + { + case DECOR_STAND: + resp = gUnknown_085A72E4[a1] << 12; + return resp; + case DECOR_SLIDE: + resp = gUnknown_085A72EC[a1] << 12; + return resp; + default: + return resp; + } +} + +void sub_8127B90(u16 mapX, u16 mapY, u8 decWidth, u8 decHeight, u16 decor) +{ + u16 i; + u16 j; + u16 behavior; + u16 flags; + u16 v0; + u16 v1; + s16 decLeft; + s16 decBottom; + + for (i = 0; i < decHeight; i ++) + { + decBottom = mapY - decHeight + 1 + i; + for (j = 0; j < decWidth; j ++) + { + decLeft = mapX + j; + behavior = GetBehaviorByMetatileId(0x200 + gDecorations[decor].tiles[i * decWidth + j]); + if (MetatileBehavior_IsMB_B9(behavior) == TRUE || (gDecorations[decor].permission != DECORPERM_PASS_FLOOR && (behavior >> 12))) + { + flags = 0xc00; + } + else + { + flags = 0x000; + } + if (gDecorations[decor].permission != DECORPERM_NA_WALL && MetatileBehavior_IsMB_B7(MapGridGetMetatileBehaviorAt(decLeft, decBottom)) == TRUE) + { + v0 = 1; + } + else + { + v0 = 0; + } + v1 = sub_8127B54(gDecorations[decor].id, i * decWidth + j); + if (v1 != 0xFFFF) + { + MapGridSetMetatileEntryAt(decLeft, decBottom, (gDecorations[decor].tiles[i * decWidth + j] + (0x200 | v0)) | flags | v1); + } + else + { + MapGridSetMetatileIdAt(decLeft, decBottom, (gDecorations[decor].tiles[i * decWidth + j] + (0x200 | v0)) | flags); + } + } + } +} + +void sub_8127D38(u16 mapX, u16 mapY, u16 decor) +{ + switch (gDecorations[decor].shape) + { + case DECORSHAPE_1x1: + sub_8127B90(mapX, mapY, 1, 1, decor); + break; + case DECORSHAPE_2x1: + sub_8127B90(mapX, mapY, 2, 1, decor); + break; + case DECORSHAPE_3x1: // unused + sub_8127B90(mapX, mapY, 3, 1, decor); + break; + case DECORSHAPE_4x2: + sub_8127B90(mapX, mapY, 4, 2, decor); + break; + case DECORSHAPE_2x2: + sub_8127B90(mapX, mapY, 2, 2, decor); + break; + case DECORSHAPE_1x2: + sub_8127B90(mapX, mapY, 1, 2, decor); + break; + case DECORSHAPE_1x3: // unused + sub_8127B90(mapX, mapY, 1, 3, decor); + break; + case DECORSHAPE_2x4: + sub_8127B90(mapX, mapY, 2, 4, decor); + break; + case DECORSHAPE_3x3: + sub_8127B90(mapX, mapY, 3, 3, decor); + break; + case DECORSHAPE_3x2: + sub_8127B90(mapX, mapY, 3, 2, decor); + break; + } +} + +void sub_8127E18(void) +{ + u8 i; + u8 j; + + for (i = 0; i < 14; i ++) + { + if (FlagGet(0xAE + i) == TRUE) + { + FlagClear(0xAE + i); + for (j = 0; j < gMapHeader.events->mapObjectCount; j ++) + { + if (gMapHeader.events->mapObjects[j].flagId == 0xAE + i) + { + break; + } + } + VarSet(0x3F20 + gMapHeader.events->mapObjects[j].graphicsId, sPlaceDecorationGraphicsDataBuffer.decoration->tiles[0]); + gSpecialVar_0x8005 = gMapHeader.events->mapObjects[j].localId; + gSpecialVar_0x8006 = sCurDecorMapX; + gSpecialVar_0x8007 = sCurDecorMapY; + show_sprite(gSpecialVar_0x8005, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); + sub_808EBA8(gSpecialVar_0x8005, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, gSpecialVar_0x8006, gSpecialVar_0x8007); + sub_808F254(gSpecialVar_0x8005, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); + break; + } + } +} + +bool8 sub_8127F38(void) +{ + u16 i; + + for (i = 0; i < gUnknown_0203A17C.size; i ++) + { + if (gUnknown_0203A17C.items[i] == DECOR_NONE) + { + return TRUE; + } + } + return FALSE; +} + +void sub_8127F68(u8 taskId) +{ + if (gUnknown_0203A17C.isPlayerRoom == TRUE && sCurDecorationCategory != DECORCAT_DOLL && sCurDecorationCategory != DECORCAT_CUSHION) + { + StringExpandPlaceholders(gStringVar4, gText_CantPlaceInRoom); + DisplayItemMessageOnField(taskId, gStringVar4, sub_8127A5C); + } + else if (IsSelectedDecorInThePC() == TRUE) + { + if (sub_8127F38() == TRUE) + { + fade_screen(1, 0); + gTasks[taskId].data[2] = 0; + gTasks[taskId].func = sub_8128060; + } + else + { + ConvertIntToDecimalStringN(gStringVar1, gUnknown_0203A17C.size, STR_CONV_MODE_RIGHT_ALIGN, 2); + if (gUnknown_0203A17C.isPlayerRoom == FALSE) { + StringExpandPlaceholders(gStringVar4, gText_NoMoreDecorations); + } + else + { + StringExpandPlaceholders(gStringVar4, gText_NoMoreDecorations2); + } + DisplayItemMessageOnField(taskId, gStringVar4, sub_8127A5C); + } + } + else + { + StringExpandPlaceholders(gStringVar4, gText_InUseAlready); + DisplayItemMessageOnField(taskId, gStringVar4, sub_8127A5C); + } +} + +void sub_8128060(u8 taskId) +{ + switch (gTasks[taskId].data[2]) + { + case 0: + if (!gPaletteFade.active) + { + sub_8127ACC(taskId); + gTasks[taskId].data[2] = 1; + } + break; + case 1: + gPaletteFade.bufferTransferDisabled = TRUE; + ConfigureCameraObjectForPlacingDecoration(&sPlaceDecorationGraphicsDataBuffer, gCurDecorInventoryItems[gCurDecorationIndex]); + sub_812826C(taskId); + SetUpPlacingDecorationPlayerAvatar(taskId, &sPlaceDecorationGraphicsDataBuffer); + pal_fill_black(); + gPaletteFade.bufferTransferDisabled = FALSE; + gTasks[taskId].data[2] = 2; + break; + case 2: + if (sub_80ABDFC() == TRUE) + { + gTasks[taskId].data[12] = 0; + sub_8128FD8(taskId); + } + break; + } +} + +void ConfigureCameraObjectForPlacingDecoration(struct PlaceDecorationGraphicsDataBuffer *data, u8 decor) +{ + sDecor_CameraSpriteObjectIdx1 = gSprites[gUnknown_03005DD0.unk4].data0; + gUnknown_03005DD0.unk4 = gpu_pal_decompress_alloc_tag_and_upload(data, decor); + gSprites[gUnknown_03005DD0.unk4].oam.priority = 1; + gSprites[gUnknown_03005DD0.unk4].callback = sub_81292D0; + gSprites[gUnknown_03005DD0.unk4].pos1.x = gUnknown_085A7250[data->decoration->shape].x; + gSprites[gUnknown_03005DD0.unk4].pos1.y = gUnknown_085A7250[data->decoration->shape].y; +} + +void SetUpPlacingDecorationPlayerAvatar(u8 taskId, struct PlaceDecorationGraphicsDataBuffer *data) +{ + u8 v0; + + v0 = 16 * (u8)gTasks[taskId].data[5] + gUnknown_085A7250[data->decoration->shape].x - 8 * ((u8)gTasks[taskId].data[5] - 1); + if (data->decoration->shape == DECORSHAPE_3x1 || data->decoration->shape == DECORSHAPE_3x3 || data->decoration->shape == DECORSHAPE_3x2) + { + v0 -= 8; + } + if (gSaveBlock2Ptr->playerGender == MALE) + { + sDecor_CameraSpriteObjectIdx2 = AddPseudoFieldObject(0xC1, SpriteCallbackDummy, v0, 0x48, 0); + } + else + { + sDecor_CameraSpriteObjectIdx2 = AddPseudoFieldObject(0xC2, SpriteCallbackDummy, v0, 0x48, 0); + } + gSprites[sDecor_CameraSpriteObjectIdx2].oam.priority = 1; + DestroySprite(&gSprites[sDecor_CameraSpriteObjectIdx1]); + sDecor_CameraSpriteObjectIdx1 = gUnknown_03005DD0.unk4; +} + +void sub_812826C(u8 taskId) +{ + switch (gDecorations[gCurDecorInventoryItems[gCurDecorationIndex]].shape) + { + case DECORSHAPE_1x1: + gTasks[taskId].data[5] = 1; + gTasks[taskId].data[6] = 1; + break; + case DECORSHAPE_2x1: + gTasks[taskId].data[5] = 2; + gTasks[taskId].data[6] = 1; + break; + case DECORSHAPE_3x1: + gTasks[taskId].data[5] = 3; + gTasks[taskId].data[6] = 1; + break; + case DECORSHAPE_4x2: + gTasks[taskId].data[5] = 4; + gTasks[taskId].data[6] = 2; + break; + case DECORSHAPE_2x2: + gTasks[taskId].data[5] = 2; + gTasks[taskId].data[6] = 2; + break; + case DECORSHAPE_1x2: + gTasks[taskId].data[5] = 1; + gTasks[taskId].data[6] = 2; + break; + case DECORSHAPE_1x3: + gTasks[taskId].data[5] = 1; + gTasks[taskId].data[6] = 3; + gTasks[taskId].data[1]++; + break; + case DECORSHAPE_2x4: + gTasks[taskId].data[5] = 2; + gTasks[taskId].data[6] = 4; + break; + case DECORSHAPE_3x3: + gTasks[taskId].data[5] = 3; + gTasks[taskId].data[6] = 3; + break; + case DECORSHAPE_3x2: + gTasks[taskId].data[5] = 3; + gTasks[taskId].data[6] = 2; + break; + } +} + +void sub_81283BC(u8 taskId) +{ + gTasks[taskId].data[10] = 0; + gSprites[sDecor_CameraSpriteObjectIdx1].data7 = 1; + gSprites[sDecor_CameraSpriteObjectIdx2].data7 = 1; + sub_8128DE0(); + sub_8128950(taskId); +} + +void sub_8128414(u8 taskId) +{ + gTasks[taskId].data[10] = 0; + gSprites[sDecor_CameraSpriteObjectIdx1].data7 = 1; + gSprites[sDecor_CameraSpriteObjectIdx2].data7 = 1; + sub_8128DE0(); + StringExpandPlaceholders(gStringVar4, gText_CancelDecorating); + DisplayItemMessageOnField(taskId, gStringVar4, sub_8128B80); +} + +bool8 sub_8128484(u8 behaviorAt, u16 behaviorBy) +{ + if (MetatileBehavior_IsMB_B3(behaviorAt) != TRUE || behaviorBy != 0) + { + return FALSE; + } + return TRUE; +} + +bool8 sub_81284AC(u8 taskId, s16 x, s16 y, u16 decor) +{ + if (x == gTasks[taskId].data[3] + 7 && y == gTasks[taskId].data[4] + 7 && decor != DECOR_NONE) + { + return FALSE; + } + return TRUE; +} + +bool8 sub_81284F4(u16 behaviorAt, const struct Decoration *decoration) +{ + if (MetatileBehavior_IsMB_B3(behaviorAt) != TRUE) + { + if (decoration->id == DECOR_SOLID_BOARD && MetatileBehavior_IsMB_C2(behaviorAt) == TRUE) + { + return TRUE; + } + if (MetatileBehavior_IsNormal(behaviorAt)) + { + return TRUE; + } + } + return FALSE; +} + +bool8 sub_812853C(u8 taskId, const struct Decoration *decoration) +{ + u8 i; + u8 j; + u8 behaviorAt; + u16 behaviorBy; + u8 mapY; + u8 mapX; + s16 curY; + s16 curX; + mapY = gTasks[taskId].data[6]; + mapX = gTasks[taskId].data[5]; + + switch (decoration->permission) + { + case DECORPERM_SOLID_FLOOR: + case DECORPERM_PASS_FLOOR: + for (i=0; i<mapY; i++) + { + curY = gTasks[taskId].data[1] - i; + for (j=0; j<mapX; j++) + { + curX = gTasks[taskId].data[0] + j; + behaviorAt = MapGridGetMetatileBehaviorAt(curX, curY); + behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[(mapY - 1 - i) * mapX + j]) & 0xf000; + if (!sub_81284F4(behaviorAt, decoration)) + { + return FALSE; + } + if (!sub_81284AC(taskId, curX, curY, behaviorBy)) + { + return FALSE; + } + behaviorAt = GetFieldObjectIdByXYZ(curX, curY, 0); + if (behaviorAt != 0 && behaviorAt != 16) + { + return FALSE; + } + } + } + break; + case DECORPERM_BEHIND_FLOOR: + for (i=0; i<mapY-1; i++) + { + curY = gTasks[taskId].data[1] - i; + for (j=0; j<mapX; j++) + { + curX = gTasks[taskId].data[0] + j; + behaviorAt = MapGridGetMetatileBehaviorAt(curX, curY); + behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[(mapY - 1 - i) * mapX + j]) & 0xf000; + if (!MetatileBehavior_IsNormal(behaviorAt) && !sub_8128484(behaviorAt, behaviorBy)) + { + return FALSE; + } + if (!sub_81284AC(taskId, curX, curY, behaviorBy)) + { + return FALSE; + } + if (GetFieldObjectIdByXYZ(curX, curY, 0) != 16) + { + return FALSE; + } + } + } + curY = gTasks[taskId].data[1] - mapY + 1; + for (j=0; j<mapX; j++) + { + curX = gTasks[taskId].data[0] + j; + behaviorAt = MapGridGetMetatileBehaviorAt(curX, curY); + behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[j]) & 0xf000; + if (!MetatileBehavior_IsNormal(behaviorAt) && !MetatileBehavior_IsMB_B7(behaviorAt)) + { + return FALSE; + } + if (!sub_81284AC(taskId, curX, curY, behaviorBy)) + { + return FALSE; + } + behaviorAt = GetFieldObjectIdByXYZ(curX, curY, 0); + if (behaviorAt != 0 && behaviorAt != 16) + { + return FALSE; + } + } + break; + case DECORPERM_NA_WALL: + for (i=0; i<mapY; i++) + { + curY = gTasks[taskId].data[1] - i; + for (j=0; j<mapX; j++) + { + curX = gTasks[taskId].data[0] + j; + if (!MetatileBehavior_IsMB_B7(MapGridGetMetatileBehaviorAt(curX, curY))) + { + return FALSE; + } + if (MapGridGetMetatileIdAt(curX, curY + 1) == 0x28c) + { + return FALSE; + } + } + } + break; + case DECORPERM_SOLID_MAT: + curY = gTasks[taskId].data[1]; + for (j=0; j<mapX; j++) + { + curX = gTasks[taskId].data[0] + j; + behaviorAt = MapGridGetMetatileBehaviorAt(curX, curY); + if (decoration->shape == DECORSHAPE_1x2) + { + if (!MetatileBehavior_IsMB_C3(behaviorAt)) + { + return FALSE; + } + } + else if (!MetatileBehavior_IsMB_B5(behaviorAt)) + { + if (!MetatileBehavior_IsMB_C3(behaviorAt)) + { + return FALSE; + } + } + if (GetFieldObjectIdByXYZ(curX, curY, 0) != 16) + { + return FALSE; + } + } + break; + } + return TRUE; +} + +void sub_8128950(u8 taskId) +{ + if (sub_812853C(taskId, &gDecorations[gCurDecorInventoryItems[gCurDecorationIndex]]) == TRUE) + { + StringExpandPlaceholders(gStringVar4, gText_PlaceItHere); + DisplayItemMessageOnField(taskId, gStringVar4, sub_81289D0); + } + else + { + PlaySE(SE_HAZURE); + StringExpandPlaceholders(gStringVar4, gText_CantBePlacedHere); + DisplayItemMessageOnField(taskId, gStringVar4, sub_8129020); + } +} + +void sub_81289D0(u8 taskId) +{ + sub_8197930(); + sub_8121F68(taskId, &gUnknown_085A72C4); +} + +void sub_81289F0(u8 taskId) +{ + sub_8197434(0, 0); + sub_8128AAC(taskId); + if (gDecorations[gCurDecorInventoryItems[gCurDecorationIndex]].permission != DECORPERM_SOLID_MAT) + { + sub_8127D38(gTasks[taskId].data[0], gTasks[taskId].data[1], gCurDecorInventoryItems[gCurDecorationIndex]); + } + else + { + sCurDecorMapX = gTasks[taskId].data[0] - 7; + sCurDecorMapY = gTasks[taskId].data[1] - 7; + ScriptContext1_SetupScript(gUnknown_08275D1F); + } + gSprites[sDecor_CameraSpriteObjectIdx1].pos1.y += 2; + if (gMapHeader.regionMapSectionId == REGION_MAP_SECRET_BASE) + { + TV_PutSecretBaseVisitOnTheAir(); + } + sub_8128BBC(taskId); +} + +void sub_8128AAC(u8 taskId) +{ + u16 i; + + for (i = 0; i < gUnknown_0203A17C.size; i ++) + { + if (gUnknown_0203A17C.items[i] == DECOR_NONE) + { + gUnknown_0203A17C.items[i] = gCurDecorInventoryItems[gCurDecorationIndex]; + gUnknown_0203A17C.pos[i] = ((gTasks[taskId].data[0] - 7) << 4) + (gTasks[taskId].data[1] - 7); + break; + } + } + if (!gUnknown_0203A17C.isPlayerRoom) + { + for (i = 0; i < 16; i ++) + { + if (sSecretBaseItemsIndicesBuffer[i] == 0) + { + sSecretBaseItemsIndicesBuffer[i] = gCurDecorationIndex + 1; + break; + } + } + } + else + { + for (i = 0; i < 12; i ++) + { + if (sPlayerRoomItemsIndicesBuffer[i] == 0) + { + sPlayerRoomItemsIndicesBuffer[i] = gCurDecorationIndex + 1; + break; + } + } + } +} + +void sub_8128B80(u8 taskId) +{ + sub_8197930(); + sub_8121F68(taskId, &gUnknown_085A72CC); +} + +void sub_8128BA0(u8 taskId) +{ + sub_8197434(0, 0); + sub_8128BBC(taskId); +} + +void sub_8128BBC(u8 taskId) +{ + fade_screen(1, 0); + gTasks[taskId].data[2] = 0; + gTasks[taskId].func = c1_overworld_prev_quest; +} + +void c1_overworld_prev_quest(u8 taskId) +{ + switch (gTasks[taskId].data[2]) + { + case 0: + ScriptContext2_Enable(); + if (!gPaletteFade.active) + { + sub_8127B04(taskId); + gTasks[taskId].data[2] = 1; + } + break; + case 1: + sub_812A3C8(); + FreeSpritePaletteByTag(OVERWORLD_PLACE_DECOR_SELECTOR_PAL_TAG); + gFieldCallback = sub_8128CD4; + SetMainCallback2(c2_exit_to_overworld_2_switch); + DestroyTask(taskId); + break; + } +} + +void sub_8128C64(u8 taskId) +{ + s16 *data; + + data = gTasks[taskId].data; + switch (data[2]) + { + case 0: + sub_80E9578(); + data[2] ++; + break; + case 1: + ScriptContext1_SetupScript(gUnknown_08275D0C); + data[2] ++; + break; + case 2: + ScriptContext2_Enable(); + data[2] ++; + break; + case 3: + if (sub_80ABDFC() == TRUE) + { + gTasks[taskId].func = sub_812764C; + } + break; + } +} + +void sub_8128CD4(void) +{ + u8 taskId; + + ScriptContext2_Enable(); + pal_fill_black(); + taskId = CreateTask(sub_8128C64, 8); + sub_8127580(taskId); + gTasks[taskId].data[2] = 0; +} + +bool8 sub_8128D10(u8 taskId) +{ + s16 *data; + + data = gTasks[taskId].data; + if (sDecorationLastDirectionMoved == DIR_SOUTH && data[1] - data[6] - 6 < 0) + { + data[1] ++; + return FALSE; + } + if (sDecorationLastDirectionMoved == DIR_NORTH && data[1] - 7 >= gMapHeader.mapData->height) + { + data[1] --; + return FALSE; + } + if (sDecorationLastDirectionMoved == DIR_WEST && data[0] - 7 < 0) + { + data[0] ++; + return FALSE; + } + if (sDecorationLastDirectionMoved == DIR_EAST && data[0] + data[5] - 8 >= gMapHeader.mapData->width) + { + data[0] --; + return FALSE; + } + return TRUE; +} + +bool8 sub_8128DB4(void) +{ + u16 heldKeys; + + heldKeys = gMain.heldKeys & 0x0F0; + if (heldKeys != DPAD_UP && heldKeys != DPAD_DOWN && heldKeys != DPAD_LEFT && heldKeys != DPAD_RIGHT) + { + return FALSE; + } + return TRUE; +} + +void sub_8128DE0(void) +{ + sDecorationLastDirectionMoved = 0; + gSprites[sDecor_CameraSpriteObjectIdx1].data2 = 0; + gSprites[sDecor_CameraSpriteObjectIdx1].data3 = 0; +} + +void sub_8128E18(u8 taskId) +{ + s16 *data; + + data = gTasks[taskId].data; + if (!gSprites[sDecor_CameraSpriteObjectIdx1].data4) + { + if (data[10] == 1) + { + gUnknown_085A72D4[data[12]].yesFunc(taskId); + return; + } else if (data[10] == 2) + { + gUnknown_085A72D4[data[12]].noFunc(taskId); + return; + } + if ((gMain.heldKeys & 0x0F0) == DPAD_UP) + { + sDecorationLastDirectionMoved = DIR_SOUTH; + gSprites[sDecor_CameraSpriteObjectIdx1].data2 = 0; + gSprites[sDecor_CameraSpriteObjectIdx1].data3 = -2; + data[1]--; + } + if ((gMain.heldKeys & 0x0F0) == DPAD_DOWN) + { + sDecorationLastDirectionMoved = DIR_NORTH; + gSprites[sDecor_CameraSpriteObjectIdx1].data2 = 0; + gSprites[sDecor_CameraSpriteObjectIdx1].data3 = 2; + data[1]++; + } + if ((gMain.heldKeys & 0x0F0) == DPAD_LEFT) + { + sDecorationLastDirectionMoved = DIR_WEST; + gSprites[sDecor_CameraSpriteObjectIdx1].data2 = -2; + gSprites[sDecor_CameraSpriteObjectIdx1].data3 = 0; + data[0]--; + } + if ((gMain.heldKeys & 0x0F0) == DPAD_RIGHT) + { + sDecorationLastDirectionMoved = DIR_EAST; + gSprites[sDecor_CameraSpriteObjectIdx1].data2 = 2; + gSprites[sDecor_CameraSpriteObjectIdx1].data3 = 0; + data[0]++; + } + if (!sub_8128DB4() || !sub_8128D10(taskId)) + { + sub_8128DE0(); + } + } + if (sDecorationLastDirectionMoved) + { + gSprites[sDecor_CameraSpriteObjectIdx1].data4++; + gSprites[sDecor_CameraSpriteObjectIdx1].data4 &= 7; + } + if (!data[10]) + { + if (gMain.newKeys & A_BUTTON) + { + data[10] = A_BUTTON; + } + if (gMain.newKeys & B_BUTTON) + { + data[10] = B_BUTTON; + } + } +} + +void sub_8128FD8(u8 taskId) +{ + sub_8197434(0, 1); + gSprites[sDecor_CameraSpriteObjectIdx1].data7 = 0; + gTasks[taskId].data[10] = 0; + gTasks[taskId].func = sub_8128E18; +} + +void sub_8129020(u8 taskId) +{ + if (gMain.newKeys & A_BUTTON || gMain.newKeys & B_BUTTON) + { + sub_8128FD8(taskId); + } +} + +void sub_8129048(struct PlaceDecorationGraphicsDataBuffer *data) +{ + CpuFill16(0, data, sizeof(*data)); +} + +void sub_8129068(u16 *dest, u16 pal) +{ + CpuFastCopy(&((u16 *)gTilesetPointer_SecretBase->palettes)[pal << 4], dest, 32); +} + +void sub_8129088(u8 *dest, u16 tile) +{ + u8 buffer[32]; + u16 mode; + u16 i; + + mode = tile >> 10; + if (tile != 0) + { + tile &= 0x03FF; + } + CpuFastCopy(&((u8 *)gTilesetPointer_SecretBase->tiles)[tile << 5], buffer, 32); + switch (mode) + { + case 0: + CpuFastCopy(buffer, dest, 32); + break; + case 1: + for (i = 0; i < 8; i ++) + { + dest[4 * i] = (buffer[4 * (i + 1) - 1] >> 4) + ((buffer[4 * (i + 1) - 1] & 0x0F) << 4); + dest[4 * i + 1] = (buffer[4 * (i + 1) - 2] >> 4) + ((buffer[4 * (i + 1) - 2] & 0x0F) << 4); + dest[4 * i + 2] = (buffer[4 * (i + 1) - 3] >> 4) + ((buffer[4 * (i + 1) - 3] & 0x0F) << 4); + dest[4 * i + 3] = (buffer[4 * (i + 1) - 4] >> 4) + ((buffer[4 * (i + 1) - 4] & 0x0F) << 4); + } + break; + case 2: + for (i = 0; i < 8; i ++) + { + dest[4 * i] = buffer[4 * (7 - i)]; + dest[4 * i + 1] = buffer[4 * (7 - i) + 1]; + dest[4 * i + 2] = buffer[4 * (7 - i) + 2]; + dest[4 * i + 3] = buffer[4 * (7 - i) + 3]; + } + break; + case 3: + for (i = 0; i < 32; i ++) + { + dest[i] = (buffer[31 - i] >> 4) + ((buffer[31 - i] & 0x0F) << 4); + } + break; + } +} + +void sub_81291A4(struct PlaceDecorationGraphicsDataBuffer *data) +{ + u16 i; + for (i = 0; i < 64; i ++) + { + sub_8129088(&data->image[i * 32], data->tiles[i]); + } +} + +u16 sub_81291CC(u16 tile) +{ + return ((u16 *)gTilesetPointer_SecretBaseRedCave->metatiles)[tile] & 0xFFF; +} + +void sub_81291E8(struct PlaceDecorationGraphicsDataBuffer *data) +{ + u8 i; + u8 shape; + + shape = data->decoration->shape; + for (i = 0; i < gUnknown_085A71B0[shape].size; i ++) + { + data->tiles[gUnknown_085A71B0[shape].tiles[i]] = sub_81291CC(data->decoration->tiles[gUnknown_085A71B0[shape].y[i]] * 8 + gUnknown_085A71B0[shape].x[i]); + } +} + +void SetDecorSelectionBoxOamAttributes(u8 decorShape) +{ + sDecorSelectorOam.y = 0; + sDecorSelectorOam.affineMode = ST_OAM_AFFINE_OFF; + sDecorSelectorOam.objMode = ST_OAM_OBJ_NORMAL; + sDecorSelectorOam.mosaic = 0; + sDecorSelectorOam.bpp = ST_OAM_4BPP; + sDecorSelectorOam.shape = gUnknown_085A7250[decorShape].shape; + sDecorSelectorOam.x = 0; + sDecorSelectorOam.matrixNum = 0; + sDecorSelectorOam.size = gUnknown_085A7250[decorShape].size; + sDecorSelectorOam.tileNum = 0; + sDecorSelectorOam.priority = 0; + sDecorSelectorOam.paletteNum = 0; +} + +void sub_81292D0(struct Sprite *sprite) +{ + sprite->data2 = 0; + sprite->data3 = 0; + sprite->data4 = 0; + sprite->data5 = 0; + sprite->data6 = 0; + sprite->data7 = 0; + sprite->callback = sub_81292E8; +} + +void sub_81292E8(struct Sprite *sprite) +{ + if (sprite->data7 == 0) + { + if (sprite->data6 < 15) + { + sprite->invisible = FALSE; + } + else + { + sprite->invisible = TRUE; + } + sprite->data6 ++; + sprite->data6 &= 0x1F; + } + else + { + sprite->invisible = FALSE; + } +} + +u8 gpu_pal_decompress_alloc_tag_and_upload(struct PlaceDecorationGraphicsDataBuffer *data, u8 decor) +{ + sub_8129048(data); + data->decoration = &gDecorations[decor]; + if (data->decoration->permission == DECORPERM_SOLID_MAT) + { + return AddPseudoFieldObject(data->decoration->tiles[0], SpriteCallbackDummy, 0, 0, 1); + } + FreeSpritePaletteByTag(OVERWORLD_PLACE_DECOR_SELECTOR_PAL_TAG); + sub_81291E8(data); + SetDecorSelectionBoxOamAttributes(data->decoration->shape); + sub_81291A4(data); + sub_8129068(data->palette, ((u16 *)gTilesetPointer_SecretBaseRedCave->metatiles)[(data->decoration->tiles[0] * 8) + 7] >> 12); + LoadSpritePalette(&gUnknown_085A72BC); + return CreateSprite(&sDecorSelectorSpriteTemplate, 0, 0, 0); +} + +u8 AddDecorationIconObjectFromIconTable(u16 tilesTag, u16 paletteTag, u8 decor) +{ + struct SpriteSheet sheet; + struct CompressedSpritePalette palette; + struct SpriteTemplate *template; + u8 spriteId; + + if (!AllocItemIconTemporaryBuffers()) + { + return MAX_SPRITES; + } + LZDecompressWram(GetDecorationIconPicOrPalette(decor, 0), gUnknown_0203CEBC); + CopyItemIconPicTo4x4Buffer(gUnknown_0203CEBC, gUnknown_0203CEC0); + sheet.data = gUnknown_0203CEC0; + sheet.size = 0x200; + sheet.tag = tilesTag; + LoadSpriteSheet(&sheet); + palette.data = GetDecorationIconPicOrPalette(decor, 1); + palette.tag = paletteTag; + LoadCompressedObjectPalette(&palette); + template = malloc(sizeof(struct SpriteTemplate)); + *template = gUnknown_08614FF4; + template->tileTag = tilesTag; + template->paletteTag = paletteTag; + spriteId = CreateSprite(template, 0, 0, 0); + FreeItemIconTemporaryBuffers(); + free(template); + return spriteId; +} + +const u8 *GetDecorationIconPicOrPalette(u16 decor, u8 mode) +{ + if (decor > 120) + { + decor = DECOR_NONE; + } + return gUnknown_085A6BE8[decor][mode]; +} + +u8 AddDecorationIconObjectFromFieldObject(u16 tilesTag, u16 paletteTag, u8 decor) +{ + u8 spriteId; + struct SpriteSheet sheet; + struct SpritePalette palette; + struct SpriteTemplate *template; + + sub_8129048(&sPlaceDecorationGraphicsDataBuffer); + sPlaceDecorationGraphicsDataBuffer.decoration = &gDecorations[decor]; + if (sPlaceDecorationGraphicsDataBuffer.decoration->permission != DECORPERM_SOLID_MAT) + { + sub_81291E8(&sPlaceDecorationGraphicsDataBuffer); + SetDecorSelectionBoxOamAttributes(sPlaceDecorationGraphicsDataBuffer.decoration->shape); + sub_81291A4(&sPlaceDecorationGraphicsDataBuffer); + sub_8129068(sPlaceDecorationGraphicsDataBuffer.palette, ((u16 *)gTilesetPointer_SecretBaseRedCave->metatiles)[(sPlaceDecorationGraphicsDataBuffer.decoration->tiles[0] * 8) + 7] >> 12); + sheet.data = sPlaceDecorationGraphicsDataBuffer.image; + sheet.size = gUnknown_085A72F4[sPlaceDecorationGraphicsDataBuffer.decoration->shape] << 5; + sheet.tag = tilesTag; + LoadSpriteSheet(&sheet); + palette.data = sPlaceDecorationGraphicsDataBuffer.palette; + palette.tag = paletteTag; + LoadSpritePalette(&palette); + template = Alloc(sizeof(struct SpriteTemplate)); + *template = sDecorWhilePlacingSpriteTemplate; + template->tileTag = tilesTag; + template->paletteTag = paletteTag; + spriteId = CreateSprite(template, 0, 0, 0); + free(template); + } + else + { + spriteId = AddPseudoFieldObject(sPlaceDecorationGraphicsDataBuffer.decoration->tiles[0], SpriteCallbackDummy, 0, 0, 1); + } + return spriteId; +} + +u8 AddDecorationIconObject(u8 decor, s16 x, s16 y, u8 priority, u16 tilesTag, u16 paletteTag) +{ + u8 spriteId; + + if (decor > 120) + { + spriteId = AddDecorationIconObjectFromIconTable(tilesTag, paletteTag, DECOR_NONE); + if (spriteId == MAX_SPRITES) + { + return MAX_SPRITES; + } + gSprites[spriteId].pos2.x = x + 4; + gSprites[spriteId].pos2.y = y + 4; + } + else if (gUnknown_085A6BE8[decor][0] == NULL) + { + spriteId = AddDecorationIconObjectFromFieldObject(tilesTag, paletteTag, decor); + if (spriteId == MAX_SPRITES) + { + return MAX_SPRITES; + } + gSprites[spriteId].pos2.x = x; + if (decor == DECOR_SILVER_SHIELD || decor == DECOR_GOLD_SHIELD) + { + gSprites[spriteId].pos2.y = y - 4; + } + else + { + gSprites[spriteId].pos2.y = y; + } + } + else + { + spriteId = AddDecorationIconObjectFromIconTable(tilesTag, paletteTag, decor); + if (spriteId == MAX_SPRITES) + { + return MAX_SPRITES; + } + gSprites[spriteId].pos2.x = x + 4; + gSprites[spriteId].pos2.y = y + 4; + } + gSprites[spriteId].oam.priority = priority; + return spriteId; +} + +void sub_81296EC(u8 idx) +{ + gUnknown_0203A17C.items[idx] = 0; + gUnknown_0203A17C.pos[idx] = 0; +} + +void sub_8129708(void) +{ + u16 i; + + gSpecialVar_0x8005 = 0; + gScriptResult = 0; + if (gSpecialVar_0x8004 == sCurDecorSelectedInRearrangement) + { + gScriptResult = 1; + } + else if (gDecorations[gUnknown_0203A17C.items[sDecorRearrangementDataBuffer[gSpecialVar_0x8004].idx]].permission == DECORPERM_SOLID_MAT) + { + gSpecialVar_0x8005 = sDecorRearrangementDataBuffer[gSpecialVar_0x8004].flagId; + sub_81296EC(sDecorRearrangementDataBuffer[gSpecialVar_0x8004].idx); + for (i = 0; i < gMapHeader.events->mapObjectCount; i ++) + { + if (gMapHeader.events->mapObjects[i].flagId == gSpecialVar_0x8005) + { + gSpecialVar_0x8006 = gMapHeader.events->mapObjects[i].localId; + break; + } + } + } +} + +void sub_81297AC(void) +{ + u8 i; + + for (i = 0; i < gMapHeader.events->mapObjectCount; i ++) + { + if (gMapHeader.events->mapObjects[i].flagId == gSpecialVar_0x8004) + { + gSpecialVar_0x8005 = gMapHeader.events->mapObjects[i].localId; + break; + } + } +} + +void sub_81297F8(void) +{ + u8 i; + u8 y; + u8 x; + int posX; + int posY; + u8 perm; + + for (i = 0; i < sCurDecorSelectedInRearrangement; i ++) + { + perm = gDecorations[gUnknown_0203A17C.items[sDecorRearrangementDataBuffer[i].idx]].permission; + posX = gUnknown_0203A17C.pos[sDecorRearrangementDataBuffer[i].idx] >> 4; + posY = gUnknown_0203A17C.pos[sDecorRearrangementDataBuffer[i].idx] & 0x0F; + if (perm != DECORPERM_SOLID_MAT) + { + for (y = 0; y < sDecorRearrangementDataBuffer[i].height; y ++) + { + for (x = 0; x < sDecorRearrangementDataBuffer[i].width; x ++) + { + MapGridSetMetatileEntryAt(posX + 7 + x, posY + 7 - y, gMapHeader.mapData->map[posX + x + gMapHeader.mapData->width * (posY - y)] | 0x3000); + } + } + sub_81296EC(sDecorRearrangementDataBuffer[i].idx); + } + } +} + +void sub_81298EC(u8 taskId) +{ + switch (gTasks[taskId].data[2]) + { + case 0: + sub_81297F8(); + gTasks[taskId].data[2] = 1; + break; + case 1: + if (!gPaletteFade.active) { + DrawWholeMapView(); + ScriptContext1_SetupScript(gUnknown_08275D2E); + sub_8197434(0, 1); + gTasks[taskId].data[2] = 2; + } + break; + case 2: + ScriptContext2_Enable(); + IdentifyOwnedDecorationsCurrentlyInUseInternal(taskId); + pal_fill_black(); + gTasks[taskId].data[2] = 3; + break; + case 3: + if (sub_80ABDFC() == TRUE) + { + StringExpandPlaceholders(gStringVar4, gText_DecorationReturnedToPC); + DisplayItemMessageOnField(taskId, gStringVar4, sub_8129D64); + if (gMapHeader.regionMapSectionId == REGION_MAP_SECRET_BASE) + { + TV_PutSecretBaseVisitOnTheAir(); + } + } + break; + } +} + + +bool8 sub_81299AC(u8 taskId) +{ + u16 i; + + for (i = 0; i < gUnknown_0203A17C.size; i ++) + { + if (gUnknown_0203A17C.items[i] != DECOR_NONE) + { + return TRUE; + } + } + return FALSE; +} + +void SetUpPuttingAwayDecorationPlayerAvatar(void) +{ + player_get_direction_lower_nybble(); + sDecor_CameraSpriteObjectIdx1 = gSprites[gUnknown_03005DD0.unk4].data0; + sub_812A39C(); + gUnknown_03005DD0.unk4 = CreateSprite(&gUnknown_085A7404, 0x78, 0x50, 0); + if (gSaveBlock2Ptr->playerGender == MALE) + { + sDecor_CameraSpriteObjectIdx2 = AddPseudoFieldObject(0xC1, SpriteCallbackDummy, 0x88, 0x48, 0); + } + else + { + sDecor_CameraSpriteObjectIdx2 = AddPseudoFieldObject(0xC2, SpriteCallbackDummy, 0x88, 0x48, 0); + } + gSprites[sDecor_CameraSpriteObjectIdx2].oam.priority = 1; + DestroySprite(&gSprites[sDecor_CameraSpriteObjectIdx1]); + sDecor_CameraSpriteObjectIdx1 = gUnknown_03005DD0.unk4; + gSprites[sDecor_CameraSpriteObjectIdx1].oam.priority = 1; +} + +void sub_8129ABC(u8 taskId) +{ + s16 *data; + + data = gTasks[taskId].data; + switch (data[2]) + { + case 0: + if (!gPaletteFade.active) + { + sub_8127ACC(taskId); + data[2] = 1; + data[6] = 1; + data[5] = 1; + } + break; + case 1: + SetUpPuttingAwayDecorationPlayerAvatar(); + pal_fill_black(); + data[2] = 2; + break; + case 2: + if (sub_80ABDFC() == TRUE) + { + data[12] = 1; + sub_8129B34(taskId); + } + break; + } +} + +void sub_8129B34(u8 taskId) +{ + sub_8197434(0, 1); + gSprites[sDecor_CameraSpriteObjectIdx1].data7 = 0; + gSprites[sDecor_CameraSpriteObjectIdx1].invisible = FALSE; + gSprites[sDecor_CameraSpriteObjectIdx1].callback = sub_812A36C; + gSprites[sDecor_CameraSpriteObjectIdx2].pos1.x = 0x88; + gSprites[sDecor_CameraSpriteObjectIdx2].pos1.y = 0x48; + gTasks[taskId].data[10] = 0; + gTasks[taskId].func = sub_8128E18; +} + +void sub_8129BCC(u8 taskId) +{ + gTasks[taskId].data[10] = 0; + sub_8128DE0(); + sub_8129C74(taskId); +} + +void sub_8129BF8(u8 taskId) +{ + gTasks[taskId].data[10] = 0; + sub_8128DE0(); + gSprites[sDecor_CameraSpriteObjectIdx1].invisible = FALSE; + gSprites[sDecor_CameraSpriteObjectIdx1].callback = SpriteCallbackDummy; + StringExpandPlaceholders(gStringVar4, gText_StopPuttingAwayDecorations); + DisplayItemMessageOnField(taskId, gStringVar4, sub_812A1F0); +} + +void sub_8129C74(u8 taskId) +{ + s16 *data; + u8 behavior; + + sub_812A0E8(taskId); + if (sCurDecorSelectedInRearrangement != 0) + { + StringExpandPlaceholders(gStringVar4, gText_ReturnDecorationToPC); + DisplayItemMessageOnField(taskId, gStringVar4, sub_812A1A0); + } + else + { + data = gTasks[taskId].data; + behavior = MapGridGetMetatileBehaviorAt(data[0], data[1]); + if (MetatileBehavior_IsSecretBasePC(behavior) == TRUE || MetatileBehavior_IsMB_C5(behavior) == TRUE) + { + gSprites[sDecor_CameraSpriteObjectIdx1].invisible = FALSE; + gSprites[sDecor_CameraSpriteObjectIdx1].callback = SpriteCallbackDummy; + StringExpandPlaceholders(gStringVar4, gText_StopPuttingAwayDecorations); + DisplayItemMessageOnField(taskId, gStringVar4, sub_812A1F0); + } + else + { + StringExpandPlaceholders(gStringVar4, gText_NoDecorationHere); + DisplayItemMessageOnField(taskId, gStringVar4, sub_8129D64); + } + } +} + +void sub_8129D64(u8 taskId) +{ + if (gMain.newKeys & A_BUTTON || gMain.newKeys & B_BUTTON) + { + sub_8129B34(taskId); + } +} + +void sub_8129D8C(u8 decor, struct DecorRearrangementDataBuffer *data) +{ + if (gDecorations[decor].shape == DECORSHAPE_1x1) + { + data->width = 1; + data->height = 1; + } else if (gDecorations[decor].shape == DECORSHAPE_2x1) + { + data->width = 2; + data->height = 1; + } else if (gDecorations[decor].shape == DECORSHAPE_3x1) + { + data->width = 3; + data->height = 1; + } else if (gDecorations[decor].shape == DECORSHAPE_4x2) + { + data->width = 4; + data->height = 2; + } else if (gDecorations[decor].shape == DECORSHAPE_2x2) + { + data->width = 2; + data->height = 2; + } else if (gDecorations[decor].shape == DECORSHAPE_1x2) + { + data->width = 1; + data->height = 2; + } else if (gDecorations[decor].shape == DECORSHAPE_1x3) + { + data->width = 1; + data->height = 3; + } else if (gDecorations[decor].shape == DECORSHAPE_2x4) + { + data->width = 2; + data->height = 4; + } else if (gDecorations[decor].shape == DECORSHAPE_3x3) + { + data->width = 3; + data->height = 3; + } else if (gDecorations[decor].shape == DECORSHAPE_3x2) + { + data->width = 3; + data->height = 2; + } +} + +void sub_8129E0C(u8 x, u8 y) +{ + gSprites[sDecor_CameraSpriteObjectIdx1].invisible = TRUE; + gSprites[sDecor_CameraSpriteObjectIdx1].callback = SpriteCallbackDummy; + gSprites[sDecor_CameraSpriteObjectIdx2].pos1.x = (x << 4) + 0x88; + gSprites[sDecor_CameraSpriteObjectIdx2].pos1.y = (y << 4) + 0x48; +} + +bool8 sub_8129E74(u8 taskId, u8 idx, struct DecorRearrangementDataBuffer *data) +{ + u8 x; + u8 y; + u8 xOff; + u8 yOff; + u8 ht; + + x = gTasks[taskId].data[0] - 7; + y = gTasks[taskId].data[1] - 7; + xOff = gUnknown_0203A17C.pos[idx] >> 4; + yOff = gUnknown_0203A17C.pos[idx] & 0x0F; + ht = data->height; + if (gUnknown_0203A17C.items[idx] == DECOR_SAND_ORNAMENT && MapGridGetMetatileIdAt(xOff + 7, yOff + 7) == 0x28C) + { + ht --; + } + if (x >= xOff && x < xOff + data->width && y > yOff - ht && y <= yOff) + { + sub_8129E0C(data->width - (x - xOff + 1), yOff - y); + return TRUE; + } + return FALSE; +} + +void sub_8129F20(void) +{ + u8 xOff; + u8 yOff; + u16 i; + + xOff = gUnknown_0203A17C.pos[sDecorRearrangementDataBuffer[sCurDecorSelectedInRearrangement].idx] >> 4; + yOff = gUnknown_0203A17C.pos[sDecorRearrangementDataBuffer[sCurDecorSelectedInRearrangement].idx] & 0x0F; + for (i = 0; i < 0x40; i ++) + { + if (gSaveBlock1Ptr->mapObjectTemplates[i].x == xOff && gSaveBlock1Ptr->mapObjectTemplates[i].y == yOff && !FlagGet(gSaveBlock1Ptr->mapObjectTemplates[i].flagId)) + { + sDecorRearrangementDataBuffer[sCurDecorSelectedInRearrangement].flagId = gSaveBlock1Ptr->mapObjectTemplates[i].flagId; + break; + } + } +} + +bool8 sub_8129FC8(u8 taskId) +{ + u16 i; + + for (i = 0; i < gUnknown_0203A17C.size; i ++) + { + if (gUnknown_0203A17C.items[i] != 0) + { + if (gDecorations[gUnknown_0203A17C.items[i]].permission == DECORPERM_SOLID_MAT) + { + sub_8129D8C(gUnknown_0203A17C.items[i], sDecorRearrangementDataBuffer); + if (sub_8129E74(taskId, i, sDecorRearrangementDataBuffer) == TRUE) + { + sDecorRearrangementDataBuffer->idx = i; + sub_8129F20(); + sCurDecorSelectedInRearrangement = 1; + return TRUE; + } + } + } + } + return FALSE; +} + +void sub_812A040(u8 left, u8 top, u8 right, u8 bottom) +{ + u8 i; + u8 xOff; + u8 yOff; + u8 decorIdx; + + for (i = 0; i < gUnknown_0203A17C.size; i ++) + { + decorIdx = gUnknown_0203A17C.items[i]; + xOff = gUnknown_0203A17C.pos[i] >> 4; + yOff = gUnknown_0203A17C.pos[i] & 0x0F; + if (decorIdx != 0 && gDecorations[decorIdx].permission == DECORPERM_SOLID_MAT && left <= xOff && top <= yOff && right >= xOff && bottom >= yOff) + { + sDecorRearrangementDataBuffer[sCurDecorSelectedInRearrangement].idx = i; + sub_8129F20(); + sCurDecorSelectedInRearrangement++; + } + } +} + +#ifdef NONMATCHING +void sub_812A0E8(u8 taskId) +{ + u8 i; + u8 xOff; + u8 yOff; + u8 decor; + register u8 decor asm("r1"); + struct DecorRearrangementDataBuffer *data; + + sCurDecorSelectedInRearrangement = 0; + if (sub_8129FC8(taskId) != TRUE) + { + for (i = 0; i < gUnknown_0203A17C.size; i ++) + { + decor = gUnknown_0203A17C.items[i]; + if (decor != DECOR_NONE) + { + data = &sDecorRearrangementDataBuffer[0]; + sub_8129D8C(decor, data); + if (sub_8129E74(taskId, i, data) == TRUE) + { + data->idx = i; + sCurDecorSelectedInRearrangement ++; + break; + } + } + } + if (sCurDecorSelectedInRearrangement != 0) + { + xOff = gUnknown_0203A17C.pos[sDecorRearrangementDataBuffer[0].idx] >> 4; + yOff = gUnknown_0203A17C.pos[sDecorRearrangementDataBuffer[0].idx] & 0x0F; + sub_812A040(xOff, yOff - sDecorRearrangementDataBuffer[0].height + 1, xOff + sDecorRearrangementDataBuffer[0].width - 1, yOff); // Arithmetic register swap at the r2 argument: `add r2, r0, r2` instead of `add r2, r2, r0` + } + } +} +#else +__attribute__((naked)) void sub_812A0E8(u8 taskId) +{ + asm_unified("\tpush {r4-r7,lr}\n" + "\tlsls r0, 24\n" + "\tlsrs r6, r0, 24\n" + "\tldr r4, =sCurDecorSelectedInRearrangement\n" + "\tmovs r0, 0\n" + "\tstrb r0, [r4]\n" + "\tadds r0, r6, 0\n" + "\tbl sub_8129FC8\n" + "\tlsls r0, 24\n" + "\tlsrs r0, 24\n" + "\tcmp r0, 0x1\n" + "\tbeq _0812A18C\n" + "\tmovs r5, 0\n" + "\tldr r0, =gUnknown_0203A17C\n" + "\tldrb r1, [r0, 0x8]\n" + "\tcmp r5, r1\n" + "\tbcs _0812A15A\n" + "\tadds r7, r4, 0\n" + "_0812A10E:\n" + "\tldr r0, [r0]\n" + "\tadds r0, r5\n" + "\tldrb r1, [r0]\n" + "\tcmp r1, 0\n" + "\tbeq _0812A14C\n" + "\tldr r4, =sDecorRearrangementDataBuffer\n" + "\tadds r0, r1, 0\n" + "\tadds r1, r4, 0\n" + "\tbl sub_8129D8C\n" + "\tadds r0, r6, 0\n" + "\tadds r1, r5, 0\n" + "\tadds r2, r4, 0\n" + "\tbl sub_8129E74\n" + "\tlsls r0, 24\n" + "\tlsrs r0, 24\n" + "\tcmp r0, 0x1\n" + "\tbne _0812A14C\n" + "\tstrb r5, [r4]\n" + "\tldrb r0, [r7]\n" + "\tadds r0, 0x1\n" + "\tstrb r0, [r7]\n" + "\tb _0812A15A\n" + "\t.pool\n" + "_0812A14C:\n" + "\tadds r0, r5, 0x1\n" + "\tlsls r0, 24\n" + "\tlsrs r5, r0, 24\n" + "\tldr r0, =gUnknown_0203A17C\n" + "\tldrb r1, [r0, 0x8]\n" + "\tcmp r5, r1\n" + "\tbcc _0812A10E\n" + "_0812A15A:\n" + "\tldr r0, =sCurDecorSelectedInRearrangement\n" + "\tldrb r0, [r0]\n" + "\tcmp r0, 0\n" + "\tbeq _0812A18C\n" + "\tldr r0, =gUnknown_0203A17C\n" + "\tldr r2, =sDecorRearrangementDataBuffer\n" + "\tldrb r1, [r2]\n" + "\tldr r0, [r0, 0x4]\n" + "\tadds r0, r1\n" + "\tldrb r1, [r0]\n" + "\tlsrs r0, r1, 4\n" + "\tmovs r3, 0xF\n" + "\tands r3, r1\n" + "\tldrb r1, [r2, 0x2]\n" + "\tsubs r1, r3, r1\n" + "\tadds r1, 0x1\n" + "\tlsls r1, 24\n" + "\tlsrs r1, 24\n" + "\tldrb r2, [r2, 0x1]\n" + "\tadds r2, r0\n" + "\tsubs r2, 0x1\n" + "\tlsls r2, 24\n" + "\tlsrs r2, 24\n" + "\tbl sub_812A040\n" + "_0812A18C:\n" + "\tpop {r4-r7}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.pool"); +} +#endif + +void sub_812A1A0(u8 taskId) +{ + sub_8197930(); + sub_8121F68(taskId, &gUnknown_085A7348); +} + +void sub_812A1C0(u8 taskId) +{ + fade_screen(1, 0); + gTasks[taskId].data[2] = 0; + gTasks[taskId].func = sub_81298EC; +} + +void sub_812A1F0(u8 taskId) +{ + sub_8197930(); + sub_8121F68(taskId, &gUnknown_085A7350); +} + +void sub_812A210(u8 taskId) +{ + sub_8197434(0, 0); + sub_812A22C(taskId); +} + +void sub_812A22C(u8 taskId) +{ + fade_screen(1, 0); + gTasks[taskId].data[2] = 0; + gTasks[taskId].func = sub_812A25C; +} + +void sub_812A25C(u8 taskId) +{ + switch (gTasks[taskId].data[2]) + { + case 0: + if (!gPaletteFade.active) + { + sub_8127B04(taskId); + gTasks[taskId].data[2] = 1; + } + break; + case 1: + sub_812A3C8(); + gFieldCallback = sub_812A334; + SetMainCallback2(c2_exit_to_overworld_2_switch); + DestroyTask(taskId); + break; + } +} + +void sub_812A2C4(u8 taskId) +{ + s16 *data; + + data = gTasks[taskId].data; + switch (data[2]) + { + case 0: + sub_80E9578(); + data[2] ++; + break; + case 1: + ScriptContext1_SetupScript(gUnknown_08275D0C); + data[2] ++; + break; + case 2: + ScriptContext2_Enable(); + data[2] ++; + break; + case 3: + if (sub_80ABDFC() == TRUE) + { + gTasks[taskId].func = sub_8126B80; + } + break; + } +} + +void sub_812A334(void) +{ + u8 taskId; + + pal_fill_black(); + sub_81973C4(0, 1); + sub_8126ABC(); + taskId = CreateTask(sub_812A2C4, 8); + gTasks[taskId].data[2] = 0; +} + +void sub_812A36C(struct Sprite *sprite) +{ + sprite->data0 ++; + sprite->data0 &= 0x1F; + if (sprite->data0 > 15) + { + sprite->invisible = TRUE; + } + else + { + sprite->invisible = FALSE; + } +} + +void sub_812A39C(void) +{ + if (gSaveBlock2Ptr->playerGender == MALE) + { + LoadSpritePalette(&gUnknown_085A73D8); + } + else + { + LoadSpritePalette(&gUnknown_085A73E0); + } +} + +void sub_812A3C8(void) +{ + FreeSpritePaletteByTag(OVERWORLD_PLACE_DECOR_PLAYER_PAL_TAG); +} + +void sub_812A3D4(u8 taskId) +{ + if (IsSelectedDecorInThePC() == TRUE) + { + StringCopy(gStringVar1, gDecorations[gCurDecorInventoryItems[gCurDecorationIndex]].name); + StringExpandPlaceholders(gStringVar4, gText_DecorationWillBeDiscarded); + DisplayItemMessageOnField(taskId, gStringVar4, sub_812A458); + } + else + { + StringExpandPlaceholders(gStringVar4, gText_CantThrowAwayInUse); + DisplayItemMessageOnField(taskId, gStringVar4, sub_8127A5C); + } +} + +void sub_812A458(u8 taskId) +{ + sub_8197930(); + sub_8121F68(taskId, &gUnknown_085A741C); +} + +void sub_812A478(u8 taskId) +{ + gCurDecorInventoryItems[gCurDecorationIndex] = DECOR_NONE; + sCurDecorCatCount = CountDecorationCategoryN(sCurDecorationCategory); + CondenseDecorationCategoryN(sCurDecorationCategory); + IdentifyOwnedDecorationsCurrentlyInUseInternal(taskId); + StringExpandPlaceholders(gStringVar4, gText_DecorationThrownAway); + DisplayItemMessageOnField(taskId, gStringVar4, sub_8127A5C); +} diff --git a/src/decoration_inventory.c b/src/decoration_inventory.c new file mode 100644 index 000000000..03ab6c00c --- /dev/null +++ b/src/decoration_inventory.c @@ -0,0 +1,189 @@ + +// Includes +#include "global.h" +#include "decoration.h" +#include "decoration_inventory.h" + +// Static type declarations + +// Static RAM declarations + +EWRAM_DATA struct DecorationInventory gDecorationInventories[8] = {}; + +// Static ROM declarations + +// .rodata + +// .text + +#define SET_DECOR_INV(i, ptr) {\ + gDecorationInventories[i].items = ptr;\ + gDecorationInventories[i].size = sizeof(ptr);\ +} + +void SetDecorationInventoriesPointers(void) +{ + SET_DECOR_INV(0, gSaveBlock1Ptr->decorDesk); + SET_DECOR_INV(1, gSaveBlock1Ptr->decorChair); + SET_DECOR_INV(2, gSaveBlock1Ptr->decorPlant); + SET_DECOR_INV(3, gSaveBlock1Ptr->decorOrnament); + SET_DECOR_INV(4, gSaveBlock1Ptr->decorMat); + SET_DECOR_INV(5, gSaveBlock1Ptr->decorPoster); + SET_DECOR_INV(6, gSaveBlock1Ptr->decorDoll); + SET_DECOR_INV(7, gSaveBlock1Ptr->decorCushion); + sub_8126968(); +} + +static void ClearDecorationInventory(u8 idx) +{ + u8 i; + + for (i = 0; i < gDecorationInventories[idx].size; i ++) + { + gDecorationInventories[idx].items[i] = DECOR_NONE; + } +} + +void ClearDecorationInventories(void) +{ + u8 idx; + + for (idx = 0; idx < 8; idx ++) + { + ClearDecorationInventory(idx); + } +} + +s8 GetFirstEmptyDecorSlot(u8 idx) +{ + s8 i; + + for (i = 0; i < (s8)gDecorationInventories[idx].size; i ++) + { + if (gDecorationInventories[idx].items[i] == DECOR_NONE) + { + return i; + } + } + return -1; +} + +bool8 CheckHasDecoration(u8 decor) +{ + u8 i; + u8 category; + + category = gDecorations[decor].category; + for (i = 0; i < gDecorationInventories[category].size; i ++) + { + if (gDecorationInventories[category].items[i] == decor) + { + return TRUE; + } + } + return FALSE; +} + +bool8 DecorationAdd(u8 decor) +{ + u8 category; + s8 idx; + + if (decor == DECOR_NONE) + { + return FALSE; + } + category = gDecorations[decor].category; + idx = GetFirstEmptyDecorSlot(category); + if (idx == -1) + { + return FALSE; + } + gDecorationInventories[category].items[idx] = decor; + return TRUE; +} + +bool8 DecorationCheckSpace(u8 decor) +{ + if (decor == DECOR_NONE) + { + return FALSE; + } + if (GetFirstEmptyDecorSlot(gDecorations[decor].category) == -1) + { + return FALSE; + } + return TRUE; +} + +s8 DecorationRemove(u8 decor) +{ + u8 i; + u8 idx; + + i = 0; + if (decor == DECOR_NONE) + { + return 0; + } + for (i = 0; i < gDecorationInventories[gDecorations[decor].category].size; i ++) + { + idx = gDecorations[decor].category; + if (gDecorationInventories[idx].items[i] == decor) + { + gDecorationInventories[idx].items[i] = DECOR_NONE; + CondenseDecorationCategoryN(idx); + return 1; + } + } + return 0; +} + +void CondenseDecorationCategoryN(u8 idx) +{ + u8 i; + u8 j; + u8 tmp; + + for (i = 0; i < gDecorationInventories[idx].size; i ++) + { + for (j = i + 1; j < gDecorationInventories[idx].size; j ++) + { + if (gDecorationInventories[idx].items[j] != DECOR_NONE && (gDecorationInventories[idx].items[i] == DECOR_NONE || gDecorationInventories[idx].items[i] > gDecorationInventories[idx].items[j])) + { + tmp = gDecorationInventories[idx].items[i]; + gDecorationInventories[idx].items[i] = gDecorationInventories[idx].items[j]; + gDecorationInventories[idx].items[j] = tmp; + } + } + } +} + +u8 CountDecorationCategoryN(u8 idx) +{ + u8 i; + u8 ct; + + ct = 0; + for (i = 0; i < gDecorationInventories[idx].size; i ++) + { + if (gDecorationInventories[idx].items[i] != DECOR_NONE) + { + ct ++; + } + } + return ct; +} + +u8 CountDecorations(void) +{ + u8 idx; + u8 ct; + + ct = 0; + for (idx = 0; idx < 8; idx ++) + { + ct += CountDecorationCategoryN(idx); + } + return ct; +} diff --git a/src/egg_hatch.c b/src/egg_hatch.c index a1f187b85..589e8901d 100644 --- a/src/egg_hatch.c +++ b/src/egg_hatch.c @@ -462,7 +462,7 @@ static void VBlankCB_EggHatch(void) TransferPlttBuffer(); } -static void EggHatch(void) +void EggHatch(void) { ScriptContext2_Enable(); CreateTask(Task_EggHatch, 10); diff --git a/src/international_string_util.c b/src/international_string_util.c new file mode 100644 index 000000000..81985d614 --- /dev/null +++ b/src/international_string_util.c @@ -0,0 +1,57 @@ +#include "global.h" +#include "international_string_util.h" +#include "text.h" + +extern s32 convert_pixel_width_to_tile_width(s32 a0); // script menu + +s32 GetStringCenterAlignXOffset(s32 fontId, const u8 *str, s32 totalWidth) +{ + return GetStringCenterAlignXOffsetWithLetterSpacing(fontId, str, totalWidth, 0); +} + +s32 GetStringRightAlignXOffset(s32 fontId, const u8 *str, s32 totalWidth) +{ + return GetStringWidthDifference(fontId, str, totalWidth, 0); +} + +s32 GetStringCenterAlignXOffsetWithLetterSpacing(s32 fontId, const u8 *str, s32 totalWidth, s32 letterSpacing) +{ + return GetStringWidthDifference(fontId, str, totalWidth, letterSpacing) / 2; +} + +s32 GetStringWidthDifference(s32 fontId, const u8 *str, s32 totalWidth, s32 letterSpacing) +{ + s32 stringWidth = GetStringWidth(fontId, str, letterSpacing); + if (totalWidth > stringWidth) + return totalWidth - stringWidth; + else + return 0; +} + +s32 GetMaxWidthInMenuTable(const struct MenuAction *str, s32 arg1) +{ + s32 i, var; + + for (var = 0, i = 0; i < arg1; i++) + { + s32 stringWidth = GetStringWidth(1, str[i].text, 0); + if (stringWidth > var) + var = stringWidth; + } + + return convert_pixel_width_to_tile_width(var); +} + +s32 sub_81DB3D8(const struct MenuAction *str, u8* arg1, s32 arg2) +{ + s32 i, var; + + for (var = 0, i = 0; i < arg2; i++) + { + s32 stringWidth = GetStringWidth(1, str[arg1[i]].text, 0); + if (stringWidth > var) + var = stringWidth; + } + + return convert_pixel_width_to_tile_width(var); +} diff --git a/src/librfu_intr.c b/src/librfu_intr.c new file mode 100644 index 000000000..bdf8b072a --- /dev/null +++ b/src/librfu_intr.c @@ -0,0 +1,4 @@ +#include "global.h" +#include "main.h" + +//TODO: decompile asm/librfu_intr.s to here diff --git a/src/librfu_rfu.c b/src/librfu_rfu.c new file mode 100644 index 000000000..cf3fe12ad --- /dev/null +++ b/src/librfu_rfu.c @@ -0,0 +1,109 @@ +#include "global.h" +#include "main.h" + +#include "librfu.h" + +struct RfuUnk1 +{ + u8 unk_0[0x14]; + u32 unk_14; + u32 unk_18; + struct RfuIntrStruct unk_1c; +}; + +struct RfuUnk2 +{ + u8 unk_0[0x68]; + u32 unk_68; + u32 unk_6c; + u8 unk_70[0x70]; +}; + +struct RfuUnk3 +{ + u32 unk_0; + u32 unk_4; + u8 unk_8[0xD4]; + u32 unk_dc; +}; + +extern u32 *gUnknown_03007890; +extern u32 *gUnknown_03007894; +extern struct RfuUnk3* gUnknown_03007898; +extern struct RfuUnk2* gUnknown_03007880[4]; +extern struct RfuUnk1* gUnknown_03007870[4]; +extern void* sub_82E53F4; +extern void rfu_STC_clearAPIVariables(void); + +// Nonmatching, only register differences +/*u16 rfu_initializeAPI(u32 *unk0, u16 unk1, IntrFunc *interrupt, bool8 copyInterruptToRam) +{ + u16 i; + u16 *v13; + u16 *v12; + u16 num; + + if (((u32)unk0 & 0xF000000) == 0x2000000 && copyInterruptToRam) + { + return 2; + } + + if ((u32)unk0 & 3) + return 2; + + // Nintendo pls, just use a ternary for once + if (copyInterruptToRam) + { + // An assert/debug print may have existed before, ie + // printf("%s %u < %u", "somefile.c:12345", unk1, num) + // to push this into r3? + num = 0xe64; + if (unk1 < num) + return 1; + } + + if (copyInterruptToRam == FALSE) + { + num = 0x504; // same as above, this should be r3 not r0 + if (unk1 < num) + return 1; + } + gUnknown_03007890 = unk0; + gUnknown_03007894 = unk0 + (0xB4 / sizeof(u32)); + gUnknown_03007898 = (struct RfuUnk3*)(unk0 + (0xDC / sizeof(u32))); + gUnknown_03007880[0] = (struct RfuUnk2*)(unk0 + (0x1BC / sizeof(u32))); + gUnknown_03007870[0] = (struct RfuUnk1*)(unk0 + (0x37C / sizeof(u32))); + + for (i = 1; i < 4; i++, num) + { + gUnknown_03007880[i] = (struct RfuUnk2*)&gUnknown_03007880[i-1]->unk_70; + gUnknown_03007870[i] = (struct RfuUnk1*)&gUnknown_03007870[i-1]->unk_1c; + } + + gUnknown_03007898->unk_dc = (u32)&gUnknown_03007870[3]->unk_1c; + STWI_init_all(&gUnknown_03007870[3]->unk_1c, interrupt, copyInterruptToRam); + rfu_STC_clearAPIVariables(); + + for (i = 0; i < 4; i++) + { + gUnknown_03007880[i]->unk_68 = 0; + gUnknown_03007880[i]->unk_6c = 0; + gUnknown_03007870[i]->unk_14 = 0; + gUnknown_03007870[i]->unk_18 = 0; + } + + // Not matching, register differences + v12 = (u16*)((u32)&sub_82E53F4 & ~1); + v13 = (u16*)gUnknown_03007898->unk_8; + + for (i = 47; i != 0xFFFF; i--) + { + *v13 = *v12; + ++v12; + ++v13; + } + + gUnknown_03007898->unk_4 = (u32)(&gUnknown_03007898->unk_8[1]); + + return 0; +}*/ diff --git a/src/librfu_stwi.c b/src/librfu_stwi.c new file mode 100644 index 000000000..21d38bb38 --- /dev/null +++ b/src/librfu_stwi.c @@ -0,0 +1,687 @@ +#include "global.h" +#include "librfu.h" + +extern IntrFunc IntrSIO32(void); + +extern void STWI_stop_timer(void); + +void STWI_init_Callback_M(void); +void STWI_init_Callback_S(void); +void STWI_set_Callback_M(void * callback); +void STWI_set_Callback_S(void * callback); +u16 STWI_init(u8 request); +int STWI_start_Command(void); +void STWI_intr_timer(void); +void STWI_set_timer(u8 unk); + +int STWI_restart_Command(void); +int STWI_reset_ClockCounter(void); + +void STWI_init_all(struct RfuIntrStruct *interruptStruct, IntrFunc *interrupt, bool8 copyInterruptToRam) +{ + // If we're copying our interrupt into RAM, DMA it to block1 and use + // block2 for our RfuStruct, otherwise block1 holds the RfuStruct. + // interrupt usually is a pointer to gIntrTable[1] + if (copyInterruptToRam == TRUE) + { + *interrupt = (IntrFunc)interruptStruct->block1; + DmaCopy16(3, &IntrSIO32, interruptStruct->block1, 0x960); + gRfuState = (struct RfuStruct*)interruptStruct->block2; + } + else + { + *interrupt = (IntrFunc)IntrSIO32; + gRfuState = (struct RfuStruct*)interruptStruct->block1; + } + + gRfuState->rxPacket = (union RfuPacket*)interruptStruct->rxPacketAlloc; + gRfuState->txPacket = (union RfuPacket*)interruptStruct->txPacketAlloc; + gRfuState->msMode = 1; + gRfuState->unk_0 = 0; + gRfuState->txParams = 0; + gRfuState->unk_5 = 0; + gRfuState->unk_7 = 0; + gRfuState->unk_8 = 0; + gRfuState->unk_9 = 0; + gRfuState->timerState = 0; + gRfuState->timerActive = 0; + gRfuState->unk_12 = 0; + gRfuState->unk_15 = 0; + gRfuState->unk_2c = 0; + + REG_RCNT = 0x100; //TODO: mystery bit? + REG_SIOCNT = SIO_INTR_ENABLE | SIO_32BIT_MODE | SIO_115200_BPS; + STWI_init_Callback_M(); + STWI_init_Callback_S(); + + IntrEnable(INTR_FLAG_SERIAL); +} + +void STWI_init_timer(IntrFunc *interrupt, int timerSelect) +{ + *interrupt = STWI_intr_timer; + gRfuState->timerSelect = timerSelect; + + IntrEnable(INTR_FLAG_TIMER0 << gRfuState->timerSelect); +} + +void AgbRFU_SoftReset(void) +{ + vu16 *timerL; + vu16 *timerH; + + REG_RCNT = 0x8000; + REG_RCNT = 0x80A0; // all these bits are undocumented + timerL = ®_TMCNT_L(gRfuState->timerSelect); + timerH = ®_TMCNT_H(gRfuState->timerSelect); + *timerH = 0; + *timerL = 0; + *timerH = 0x83; + while (*timerL <= 0x11) + REG_RCNT = 0x80A2; + *timerH = 3; + REG_RCNT = 0x80A0; + REG_SIOCNT = SIO_INTR_ENABLE | SIO_32BIT_MODE | SIO_115200_BPS; + + gRfuState->unk_0 = 0; + gRfuState->txParams = 0; + gRfuState->unk_5 = 0; + gRfuState->activeCommand = 0; + gRfuState->unk_7 = 0; + gRfuState->unk_8 = 0; + gRfuState->unk_9 = 0; + gRfuState->timerState = 0; + gRfuState->timerActive = 0; + gRfuState->unk_12 = 0; + gRfuState->msMode = 1; + gRfuState->unk_15 = 0; + gRfuState->unk_2c = 0; +} + +void STWI_set_MS_mode(u8 mode) +{ + gRfuState->msMode = mode; +} + +u16 STWI_read_status(u8 index) +{ + switch (index) + { + case 0: + return gRfuState->unk_12; + case 1: + return gRfuState->msMode; + case 2: + return gRfuState->unk_0; + case 3: + return gRfuState->activeCommand; + default: + return 0xFFFF; + } +} + +void STWI_init_Callback_M(void) +{ + STWI_set_Callback_M(0); +} + +void STWI_init_Callback_S(void) +{ + STWI_set_Callback_S(0); +} + +void STWI_set_Callback_M(void *callback) +{ + gRfuState->callbackM = callback; +} + +void STWI_set_Callback_S(void *callback) +{ + gRfuState->callbackS = callback; +} + +void STWI_set_Callback_ID(u32 id) +{ + gRfuState->callbackID = id; +} + +u16 STWI_poll_CommandEnd(void) +{ + while (gRfuState->unk_2c == TRUE) + ; + return gRfuState->unk_12; +} + +void STWI_send_ResetREQ(void) +{ + if (!STWI_init(RFU_RESET)) + { + gRfuState->txParams = 0; + STWI_start_Command(); + } +} + +void STWI_send_LinkStatusREQ(void) +{ + if (!STWI_init(RFU_LINK_STATUS)) + { + gRfuState->txParams = 0; + STWI_start_Command(); + } +} + +void STWI_send_VersionStatusREQ(void) +{ + if (!STWI_init(RFU_VERSION_STATUS)) + { + gRfuState->txParams = 0; + STWI_start_Command(); + } +} + +void STWI_send_SystemStatusREQ(void) +{ + if (!STWI_init(RFU_SYSTEM_STATUS)) + { + gRfuState->txParams = 0; + STWI_start_Command(); + } +} + +void STWI_send_SlotStatusREQ(void) +{ + if (!STWI_init(RFU_SLOT_STATUS)) + { + gRfuState->txParams = 0; + STWI_start_Command(); + } +} + +void STWI_send_ConfigStatusREQ(void) +{ + if (!STWI_init(RFU_CONFIG_STATUS)) + { + gRfuState->txParams = 0; + STWI_start_Command(); + } +} + +void STWI_send_GameConfigREQ(u8 * unk1, u8 *data) +{ + u8 *packetBytes; + int i; + + if (!STWI_init(RFU_GAME_CONFIG)) + { + gRfuState->txParams = 6; + + //TODO: what is unk1 + packetBytes = gRfuState->txPacket->rfuPacket8.data; + packetBytes += sizeof(u32); + *(u16*)packetBytes = *(u16*)unk1; + + packetBytes += sizeof(u16); + unk1 += sizeof(u16); + + for (i = 0; i < 14; i++) + { + *packetBytes = *unk1; + packetBytes++; + unk1++; + } + + for (i = 0; i < 8; i++) + { + *packetBytes = *data; + packetBytes++; + data++; + } + + STWI_start_Command(); + } +} + +void STWI_send_SystemConfigREQ(u16 unk1, u8 unk2, u8 unk3) +{ + if (!STWI_init(RFU_SYSTEM_CONFIG)) + { + u8 *packetBytes; + + gRfuState->txParams = 1; + + packetBytes = gRfuState->txPacket->rfuPacket8.data; + packetBytes += sizeof(u32); + + *packetBytes++ = unk3; + *packetBytes++ = unk2; + *(u16*)packetBytes = unk1; + STWI_start_Command(); + } +} + +void STWI_send_SC_StartREQ(void) +{ + if (!STWI_init(RFU_SC_START)) + { + gRfuState->txParams = 0; + STWI_start_Command(); + } +} + +void STWI_send_SC_PollingREQ(void) +{ + if (!STWI_init(RFU_SC_POLLING)) + { + gRfuState->txParams = 0; + STWI_start_Command(); + } +} + +void STWI_send_SC_EndREQ(void) +{ + if (!STWI_init(RFU_SC_END)) + { + gRfuState->txParams = 0; + STWI_start_Command(); + } +} + +void STWI_send_SP_StartREQ(void) +{ + if (!STWI_init(RFU_SP_START)) + { + gRfuState->txParams = 0; + STWI_start_Command(); + } +} + +void STWI_send_SP_PollingREQ(void) +{ + if (!STWI_init(RFU_SP_POLLING)) + { + gRfuState->txParams = 0; + STWI_start_Command(); + } +} + +void STWI_send_SP_EndREQ(void) +{ + if (!STWI_init(RFU_SP_END)) + { + gRfuState->txParams = 0; + STWI_start_Command(); + } +} + +void STWI_send_CP_StartREQ(u16 unk1) +{ + if (!STWI_init(RFU_CP_START)) + { + gRfuState->txParams = 1; + gRfuState->txPacket->rfuPacket32.data[0] = unk1; + STWI_start_Command(); + } +} + +void STWI_send_CP_PollingREQ(void) +{ + if (!STWI_init(RFU_CP_POLLING)) + { + gRfuState->txParams = 0; + STWI_start_Command(); + } +} + +void STWI_send_CP_EndREQ(void) +{ + if (!STWI_init(RFU_CP_END)) + { + gRfuState->txParams = 0; + STWI_start_Command(); + } +} + +void STWI_send_DataTxREQ(void *in, u8 size) +{ + if (!STWI_init(RFU_DATA_TX)) + { + u8 txParams = (size / sizeof(u32)); + if (size & (sizeof(u32) - 1)) + txParams += 1; + + gRfuState->txParams = txParams; + CpuCopy32(in, gRfuState->txPacket->rfuPacket32.data, gRfuState->txParams * sizeof(u32)); + STWI_start_Command(); + } +} + +void STWI_send_DataTxAndChangeREQ(void *in, u8 size) +{ + if (!STWI_init(RFU_DATA_TX_AND_CHANGE)) + { + u8 txParams = (size / sizeof(u32)); + if (size & (sizeof(u32) - 1)) + txParams += 1; + + gRfuState->txParams = txParams; + CpuCopy32(in, gRfuState->txPacket->rfuPacket32.data, gRfuState->txParams * sizeof(u32)); + STWI_start_Command(); + } +} + +void STWI_send_DataRxREQ(void) +{ + if (!STWI_init(RFU_DATA_RX)) + { + gRfuState->txParams = 0; + STWI_start_Command(); + } +} + +void STWI_send_MS_ChangeREQ(void) +{ + if (!STWI_init(RFU_MS_CHANGE)) + { + gRfuState->txParams = 0; + STWI_start_Command(); + } +} + +void STWI_send_DataReadyAndChangeREQ(u8 unk) +{ + if (!STWI_init(RFU_DATA_READY_AND_CHANGE)) + { + if (!unk) + { + gRfuState->txParams = 0; + } + else + { + u8 *packetBytes; + + gRfuState->txParams = 1; + + packetBytes = gRfuState->txPacket->rfuPacket8.data; + packetBytes += sizeof(u32); + + *packetBytes++ = unk; + *packetBytes++ = 0; + *packetBytes++ = 0; + *packetBytes = 0; + } + + STWI_start_Command(); + } +} + +void STWI_send_DisconnectedAndChangeREQ(u8 unk0, u8 unk1) +{ + if (!STWI_init(RFU_DISCONNECTED_AND_CHANGE)) + { + u8 *packetBytes; + + gRfuState->txParams = 1; + + packetBytes = gRfuState->txPacket->rfuPacket8.data; + packetBytes += sizeof(u32); + + *packetBytes++ = unk0; + *packetBytes++ = unk1; + *packetBytes++ = 0; + *packetBytes = 0; + + STWI_start_Command(); + } +} + +void STWI_send_ResumeRetransmitAndChangeREQ(void) +{ + if (!STWI_init(RFU_RESUME_RETRANSMIT_AND_CHANGE)) + { + gRfuState->txParams = 0; + STWI_start_Command(); + } +} + +void STWI_send_DisconnectREQ(u8 unk) +{ + if (!STWI_init(RFU_DISCONNECT)) + { + gRfuState->txParams = 1; + gRfuState->txPacket->rfuPacket32.data[0] = unk; + + STWI_start_Command(); + } +} + +void STWI_send_TestModeREQ(u8 unk0, u8 unk1) +{ + if (!STWI_init(RFU_TEST_MODE)) + { + gRfuState->txParams = 1; + gRfuState->txPacket->rfuPacket32.data[0] = unk0 | (unk1 << 8); + + STWI_start_Command(); + } +} + +void STWI_send_CPR_StartREQ(u16 unk0, u16 unk1, u8 unk2) +{ + u32 *packetData; + u32 arg1; + + if (!STWI_init(RFU_CPR_START)) + { + gRfuState->txParams = 2; + + arg1 = unk1 | (unk0 << 16); + packetData = gRfuState->txPacket->rfuPacket32.data; + packetData[0] = arg1; + packetData[1] = unk2; + + STWI_start_Command(); + } +} + +void STWI_send_CPR_PollingREQ(void) +{ + if (!STWI_init(RFU_CPR_POLLING)) + { + gRfuState->txParams = 0; + STWI_start_Command(); + } +} + +void STWI_send_CPR_EndREQ(void) +{ + if (!STWI_init(RFU_CPR_END)) + { + gRfuState->txParams = 0; + STWI_start_Command(); + } +} + +void STWI_send_StopModeREQ(void) +{ + if (!STWI_init(RFU_STOP_MODE)) + { + gRfuState->txParams = 0; + STWI_start_Command(); + } +} + +void STWI_intr_timer(void) +{ + switch (gRfuState->timerState) + { + //TODO: Make an enum for these + case 2: + gRfuState->timerActive = 1; + STWI_set_timer(50); + break; + case 1: + case 4: + STWI_stop_timer(); + STWI_restart_Command(); + break; + case 3: + gRfuState->timerActive = 1; + STWI_stop_timer(); + STWI_reset_ClockCounter(); + if (gRfuState->callbackM) + gRfuState->callbackM(255, 0); + break; + } +} + +void STWI_set_timer(u8 unk) +{ + vu16 *timerL; + vu16 *timerH; + + timerL = ®_TMCNT_L(gRfuState->timerSelect); + timerH = ®_TMCNT_H(gRfuState->timerSelect); + REG_IME = 0; + switch (unk) + { + case 50: + *timerL = 0xFCCB; + gRfuState->timerState = 1; + break; + case 80: + *timerL = 0xFAE0; + gRfuState->timerState = 2; + break; + case 100: + *timerL = 0xF996; + gRfuState->timerState = 3; + break; + case 130: + *timerL = 0xF7AD; + gRfuState->timerState = 4; + break; + } + *timerH = TIMER_ENABLE | TIMER_INTR_ENABLE | TIMER_1024CLK; + REG_IF = INTR_FLAG_TIMER0 << gRfuState->timerSelect; + REG_IME = 1; +} + +void STWI_stop_timer(void) +{ + gRfuState->timerState = 0; + + REG_TMCNT_L(gRfuState->timerSelect) = 0; + REG_TMCNT_H(gRfuState->timerSelect) = 0; +} + +u16 STWI_init(u8 request) +{ + if (!REG_IME) + { + gRfuState->unk_12 = 6; + if (gRfuState->callbackM) + gRfuState->callbackM(request, gRfuState->unk_12); + return TRUE; + } + else if (gRfuState->unk_2c == TRUE) + { + gRfuState->unk_12 = 2; + gRfuState->unk_2c = FALSE; + if (gRfuState->callbackM) + gRfuState->callbackM(request, gRfuState->unk_12); + return TRUE; + } + else if(!gRfuState->msMode) + { + gRfuState->unk_12 = 4; + if (gRfuState->callbackM) + gRfuState->callbackM(request, gRfuState->unk_12, gRfuState); + return TRUE; + } + else + { + gRfuState->unk_2c = TRUE; + gRfuState->activeCommand = request; + gRfuState->unk_0 = 0; + gRfuState->txParams = 0; + gRfuState->unk_5 = 0; + gRfuState->unk_7 = 0; + gRfuState->unk_8 = 0; + gRfuState->unk_9 = 0; + gRfuState->timerState = 0; + gRfuState->timerActive = 0; + gRfuState->unk_12 = 0; + gRfuState->unk_15 = 0; + + REG_RCNT = 0x100; + REG_SIOCNT = SIO_INTR_ENABLE | SIO_32BIT_MODE | SIO_115200_BPS; + return FALSE; + } +} + +int STWI_start_Command() +{ + u16 imeTemp; + + // Yes, it matters that it's casted to a u32... + *(u32*)gRfuState->txPacket->rfuPacket8.data = 0x99660000 | (gRfuState->txParams << 8) | gRfuState->activeCommand; + REG_SIODATA32 = gRfuState->txPacket->rfuPacket32.command; + + gRfuState->unk_0 = 0; + gRfuState->unk_5 = 1; + + imeTemp = REG_IME; + REG_IME = 0; + REG_IE |= (INTR_FLAG_TIMER0 << gRfuState->timerSelect); + REG_IE |= INTR_FLAG_SERIAL; + REG_IME = imeTemp; + + REG_SIOCNT = SIO_INTR_ENABLE | SIO_32BIT_MODE | SIO_MULTI_BUSY | SIO_115200_BPS; + + return 0; +} + +int STWI_restart_Command(void) +{ + if (gRfuState->unk_15 <= 1) + { + gRfuState->unk_15++; + STWI_start_Command(); + } + else + { + if (gRfuState->activeCommand == RFU_MS_CHANGE || gRfuState->activeCommand == RFU_DATA_TX_AND_CHANGE || gRfuState->activeCommand == RFU_UNK35 || gRfuState->activeCommand == RFU_RESUME_RETRANSMIT_AND_CHANGE) + { + gRfuState->unk_12 = 1; + gRfuState->unk_2c = 0; + + if (gRfuState->callbackM) + gRfuState->callbackM(gRfuState->activeCommand, gRfuState->unk_12); + } + else + { + gRfuState->unk_12 = 1; + gRfuState->unk_2c = 0; + + if (gRfuState->callbackM) + gRfuState->callbackM(gRfuState->activeCommand, gRfuState->unk_12); + + gRfuState->unk_0 = 4; //TODO: what's 4 + } + } + + return 0; +} + +int STWI_reset_ClockCounter() +{ + gRfuState->unk_0 = 5; //TODO: what is 5 + gRfuState->txParams = 0; + gRfuState->unk_5 = 0; + REG_SIODATA32 = (1 << 31); + REG_SIOCNT = 0; + REG_SIOCNT = SIO_INTR_ENABLE | SIO_32BIT_MODE | SIO_115200_BPS; + REG_SIOCNT = (SIO_INTR_ENABLE | SIO_32BIT_MODE | SIO_115200_BPS) + 0x7F; + + return 0; +} diff --git a/src/mail.c b/src/mail.c new file mode 100644 index 000000000..1060d73bd --- /dev/null +++ b/src/mail.c @@ -0,0 +1,577 @@ + +// Includes +#include "global.h" +#include "main.h" +#include "overworld.h" +#include "task.h" +#include "unknown_task.h" +#include "palette.h" +#include "menu.h" +#include "menu_helpers.h" +#include "text.h" +#include "text_window.h" +#include "string_util.h" +#include "international_string_util.h" +#include "strings.h" +#include "gpu_regs.h" +#include "bg.h" +#include "pokemon_icon.h" +#include "species.h" +#include "malloc.h" +#include "easy_chat.h" +#include "mail_data.h" +#include "mail.h" + +// Static type declarations + +struct UnkMailStruct +{ + u32 numEasyChatWords:2; + u32 xOffset:6; + u32 lineHeight:8; +}; + +struct MailLayout +{ + u8 numSubStructs; + u8 signatureYPos; + u8 signatureWidth; + u8 wordsXPos; + u8 wordsYPos; + const struct UnkMailStruct *var8; +}; + +struct MailGraphics +{ + const u16 *palette; + const u8 *tiles; + const u8 *tileMap; + u16 var0C; + u16 var0E; + u16 color10; + u16 color12; +}; + +// Static RAM declarations + +static EWRAM_DATA struct +{ + /*0x0000*/ u8 strbuf[8][64]; + /*0x0200*/ u8 playerName[12]; + /*0x020C*/ MainCallback callback; + /*0x0210*/ MainCallback callback2; + /*0x0214*/ struct MailStruct *mail; + /*0x0218*/ bool8 flag; + /*0x0219*/ u8 signatureWidth; + /*0x021a*/ u8 mailType; + /*0x021b*/ u8 animsActive; + /*0x021c*/ u8 monIconSprite; + /*0x021d*/ u8 language; + /*0x021e*/ bool8 playerIsSender; + /*0x0220*/ void (*parserSingle)(u8 *dest, u16 word); + /*0x0224*/ void (*parserMultiple)(u8 *dest, const u16 *src, u16 length1, u16 length2); + /*0x0228*/ const struct MailLayout *layout; + /*0x022c*/ u8 bg1TilemapBuffer[0x1000]; + /*0x122c*/ u8 bg2TilemapBuffer[0x1000]; +} *gUnknown_0203A134 = NULL; + +// Static ROM declarations + +void sub_81219F0(void); +void sub_8121A1C(void); +void sub_8121B1C(void); +void sub_8121C50(void); +void sub_8121C64(void); +void sub_8121C98(void); +void sub_8121CC0(void); +void sub_8121D00(void); + +// .rodata + +const struct BgTemplate gUnknown_0859F290[] = { + { + .bg = 0, + .charBaseIndex = 2, + .mapBaseIndex = 31, + .priority = 0 + }, { + .bg = 1, + .charBaseIndex = 0, + .mapBaseIndex = 30, + .priority = 1 + }, { + .bg = 2, + .charBaseIndex = 0, + .mapBaseIndex = 29, + .priority = 2 + } +}; + +const struct WindowTemplate gUnknown_0859F29C[] = { + { + .priority = 0, + .tilemapLeft = 2, + .tilemapTop = 3, + .width = 26, + .height = 15, + .paletteNum = 15, + .baseBlock = 1 + }, + DUMMY_WIN_TEMPLATE +}; + +const u8 gUnknown_0859F2AC[] = { + 0, + 10, + 11 +}; + +const u16 gUnknown_0859F2B0[][2] = { + { 0x6ACD, 0x51A5 }, + { 0x45FC, 0x38D4 } +}; + +extern const u16 gUnknown_08DBE818[]; +extern const u16 gUnknown_08DBE838[]; +extern const u16 gUnknown_08DBE858[]; +extern const u16 gUnknown_08DBE878[]; +extern const u16 gUnknown_08DBE898[]; +extern const u16 gUnknown_08DBE8B8[]; +extern const u16 gUnknown_08DBE8D8[]; +extern const u16 gUnknown_08DBE8F8[]; +extern const u16 gUnknown_08DBE918[]; +extern const u16 gUnknown_08DBE938[]; +extern const u16 gUnknown_08DBE958[]; +extern const u16 gUnknown_08DBE978[]; +extern const u8 gUnknown_08DBE998[]; +extern const u8 gUnknown_08DBFBA4[]; +extern const u8 gUnknown_08DBEB38[]; +extern const u8 gUnknown_08DBFC7C[]; +extern const u8 gUnknown_08DBEC74[]; +extern const u8 gUnknown_08DBFD5C[]; +extern const u8 gUnknown_08DBEE84[]; +extern const u8 gUnknown_08DBFE68[]; +extern const u8 gUnknown_08DBEF5C[]; +extern const u8 gUnknown_08DBFF44[]; +extern const u8 gUnknown_08DBF154[]; +extern const u8 gUnknown_08DC0034[]; +extern const u8 gUnknown_08DBF2D4[]; +extern const u8 gUnknown_08DC0114[]; +extern const u8 gUnknown_08DBF37C[]; +extern const u8 gUnknown_08DC01F4[]; +extern const u8 gUnknown_08DBF50C[]; +extern const u8 gUnknown_08DC0300[]; +extern const u8 gUnknown_08DBF64C[]; +extern const u8 gUnknown_08DC03F0[]; +extern const u8 gUnknown_08DBF7B4[]; +extern const u8 gUnknown_08DC04E8[]; +extern const u8 gUnknown_08DBF904[]; +extern const u8 gUnknown_08DC0600[]; + +const struct MailGraphics gUnknown_0859F2B8[] = { + { + gUnknown_08DBE818, gUnknown_08DBE998, gUnknown_08DBFBA4, 0x02c0, 0x0000, 0x294a, 0x6739 + }, { + gUnknown_08DBE838, gUnknown_08DBEB38, gUnknown_08DBFC7C, 0x02e0, 0x0000, 0x7fff, 0x4631 + }, { + gUnknown_08DBE858, gUnknown_08DBEC74, gUnknown_08DBFD5C, 0x0400, 0x0000, 0x294a, 0x6739 + }, { + gUnknown_08DBE878, gUnknown_08DBEE84, gUnknown_08DBFE68, 0x01e0, 0x0000, 0x7fff, 0x4631 + }, { + gUnknown_08DBE898, gUnknown_08DBEF5C, gUnknown_08DBFF44, 0x02e0, 0x0000, 0x7fff, 0x4631 + }, { + gUnknown_08DBE8B8, gUnknown_08DBF154, gUnknown_08DC0034, 0x0300, 0x0000, 0x294a, 0x6739 + }, { + gUnknown_08DBE8D8, gUnknown_08DBF2D4, gUnknown_08DC0114, 0x0140, 0x0000, 0x7fff, 0x4631 + }, { + gUnknown_08DBE8F8, gUnknown_08DBF37C, gUnknown_08DC01F4, 0x0300, 0x0000, 0x7fff, 0x4631 + }, { + gUnknown_08DBE918, gUnknown_08DBF50C, gUnknown_08DC0300, 0x0220, 0x0000, 0x294a, 0x6739 + }, { + gUnknown_08DBE938, gUnknown_08DBF64C, gUnknown_08DC03F0, 0x0340, 0x0000, 0x294a, 0x6739 + }, { + gUnknown_08DBE958, gUnknown_08DBF7B4, gUnknown_08DC04E8, 0x02a0, 0x0000, 0x294a, 0x6739 + }, { + gUnknown_08DBE978, gUnknown_08DBF904, gUnknown_08DC0600, 0x0520, 0x0000, 0x294a, 0x6739 + } +}; + +const struct UnkMailStruct Unknown_0859F3A8[] = { + { .numEasyChatWords = 3, .lineHeight = 16 }, + { .numEasyChatWords = 3, .lineHeight = 16 }, + { .numEasyChatWords = 3, .lineHeight = 16 } +}; + +const struct MailLayout gUnknown_0859F3B4[] = { + { 0x03, 0x00, 0x00, 0x02, 0x04, Unknown_0859F3A8 }, + { 0x03, 0x00, 0x00, 0x02, 0x04, Unknown_0859F3A8 }, + { 0x03, 0x00, 0x00, 0x02, 0x04, Unknown_0859F3A8 }, + { 0x03, 0x00, 0x00, 0x02, 0x04, Unknown_0859F3A8 }, + { 0x03, 0x00, 0x00, 0x02, 0x04, Unknown_0859F3A8 }, + { 0x03, 0x00, 0x00, 0x02, 0x04, Unknown_0859F3A8 }, + { 0x03, 0x00, 0x00, 0x02, 0x04, Unknown_0859F3A8 }, + { 0x03, 0x00, 0x00, 0x02, 0x04, Unknown_0859F3A8 }, + { 0x03, 0x00, 0x00, 0x02, 0x04, Unknown_0859F3A8 }, + { 0x03, 0x00, 0x00, 0x02, 0x04, Unknown_0859F3A8 }, + { 0x03, 0x08, 0x00, 0x02, 0x04, Unknown_0859F3A8 }, + { 0x03, 0x00, 0x00, 0x02, 0x00, Unknown_0859F3A8 } +}; + +const struct UnkMailStruct Unknown_0859F444[] = { + { .numEasyChatWords = 2, .lineHeight = 16 }, + { .numEasyChatWords = 2, .lineHeight = 16 }, + { .numEasyChatWords = 2, .lineHeight = 16 }, + { .numEasyChatWords = 2, .lineHeight = 16 }, + { .numEasyChatWords = 1, .lineHeight = 16 } +}; + +const struct MailLayout gUnknown_0859F458[] = { + { 0x05, 0x07, 0x58, 0x0b, 0x1e, Unknown_0859F444 }, + { 0x05, 0x0a, 0x60, 0x09, 0x1e, Unknown_0859F444 }, + { 0x05, 0x0c, 0x68, 0x05, 0x1e, Unknown_0859F444 }, + { 0x05, 0x05, 0x60, 0x08, 0x1e, Unknown_0859F444 }, + { 0x05, 0x0a, 0x60, 0x09, 0x1e, Unknown_0859F444 }, + { 0x05, 0x09, 0x70, 0x05, 0x1e, Unknown_0859F444 }, + { 0x05, 0x0c, 0x68, 0x09, 0x1e, Unknown_0859F444 }, + { 0x05, 0x0d, 0x68, 0x0d, 0x1e, Unknown_0859F444 }, + { 0x05, 0x09, 0x60, 0x09, 0x1e, Unknown_0859F444 }, + { 0x05, 0x09, 0x60, 0x09, 0x1e, Unknown_0859F444 }, + { 0x05, 0x11, 0x68, 0x0f, 0x1e, Unknown_0859F444 }, + { 0x05, 0x09, 0x60, 0x05, 0x1e, Unknown_0859F444 } +}; + +// What the heck are these meant to be? Call them u16 for now. + +const u16 Unknown_0859F4E8[] = { + 0x00, 0x4000, 0x00, 0x00 +}; + +const u16 Unknown_0859F4F0[] = { + 0x00, 0x00, -1, 0x00 +}; + +const u16 Unknown_0859F4F8[] = { + 0x04, 0x00, -1, 0x00 +}; + +const u16 Unknown_0859F500[] = { + 0x00, 0x40, -1, 0x00 +}; + +const u16 *const gUnknown_0859F508[] = { + Unknown_0859F4F0, + Unknown_0859F4F8, + Unknown_0859F500 +}; + +// .text + +void sub_8121478(struct MailStruct *mail, MainCallback callback, bool8 flag) { + u16 buffer[2]; + u16 species; + + gUnknown_0203A134 = calloc(1, sizeof(*gUnknown_0203A134)); + gUnknown_0203A134->language = LANGUAGE_ENGLISH; + gUnknown_0203A134->playerIsSender = TRUE; + gUnknown_0203A134->parserSingle = CopyEasyChatWord; + gUnknown_0203A134->parserMultiple = ConvertEasyChatWordsToString; + if (mail->itemId >= ITEM_ORANGE_MAIL && mail->itemId <= ITEM_RETRO_MAIL) { + gUnknown_0203A134->mailType = mail->itemId - ITEM_ORANGE_MAIL; + } + else + { + gUnknown_0203A134->mailType = 0; + flag = FALSE; + } + switch (gUnknown_0203A134->playerIsSender) + { + case FALSE: + default: + gUnknown_0203A134->layout = &gUnknown_0859F3B4[gUnknown_0203A134->mailType]; + break; + case TRUE: + gUnknown_0203A134->layout = &gUnknown_0859F458[gUnknown_0203A134->mailType]; + break; + } + species = sub_80D45E8(mail->species, buffer); + if (species >= SPECIES_BULBASAUR && species < NUM_SPECIES) + { + switch (gUnknown_0203A134->mailType) + { + default: + gUnknown_0203A134->animsActive = 0; + break; + case ITEM_BEAD_MAIL - ITEM_ORANGE_MAIL: + gUnknown_0203A134->animsActive = 1; + break; + case ITEM_DREAM_MAIL - ITEM_ORANGE_MAIL: + gUnknown_0203A134->animsActive = 2; + break; + } + } + else + { + gUnknown_0203A134->animsActive = 0; + } + gUnknown_0203A134->mail = mail; + gUnknown_0203A134->callback = callback; + gUnknown_0203A134->flag = flag; + SetMainCallback2(sub_81219F0); +} + +bool8 sub_81215EC(void) +{ + u16 icon; + + switch (gMain.state) + { + case 0: + SetVBlankCallback(NULL); + remove_some_task(); + SetGpuReg(REG_OFFSET_DISPCNT, 0x0000); + break; + case 1: + CpuFill16(0, (void *)OAM, OAM_SIZE); + break; + case 2: + ResetPaletteFade(); + break; + case 3: + ResetTasks(); + break; + case 4: + ResetSpriteData(); + break; + case 5: + FreeAllSpritePalettes(); + reset_temp_tile_data_buffers(); + SetGpuReg(REG_OFFSET_BG0HOFS, 0x0000); + SetGpuReg(REG_OFFSET_BG0VOFS, 0x0000); + SetGpuReg(REG_OFFSET_BG1HOFS, 0x0000); + SetGpuReg(REG_OFFSET_BG1VOFS, 0x0000); + SetGpuReg(REG_OFFSET_BG2VOFS, 0x0000); + SetGpuReg(REG_OFFSET_BG2HOFS, 0x0000); + SetGpuReg(REG_OFFSET_BG3HOFS, 0x0000); + SetGpuReg(REG_OFFSET_BG3VOFS, 0x0000); + SetGpuReg(REG_OFFSET_BLDCNT, 0x0000); + SetGpuReg(REG_OFFSET_BLDALPHA, 0x0000); + break; + case 6: + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, gUnknown_0859F290, 3); + SetBgTilemapBuffer(1, gUnknown_0203A134->bg1TilemapBuffer); + SetBgTilemapBuffer(2, gUnknown_0203A134->bg2TilemapBuffer); + break; + case 7: + InitWindows(gUnknown_0859F29C); + DeactivateAllTextPrinters(); + break; + case 8: + decompress_and_copy_tile_data_to_vram(1, gUnknown_0859F2B8[gUnknown_0203A134->mailType].tiles, 0, 0, 0); + break; + case 9: + if (free_temp_tile_data_buffers_if_possible()) + { + return FALSE; + } + break; + case 10: + FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20); + FillBgTilemapBufferRect_Palette0(2, 1, 0, 0, 30, 20); + CopyToBgTilemapBuffer(1, gUnknown_0859F2B8[gUnknown_0203A134->mailType].tileMap, 0, 0); + break; + case 11: + CopyBgTilemapBufferToVram(0); + CopyBgTilemapBufferToVram(1); + CopyBgTilemapBufferToVram(2); + break; + case 12: + LoadPalette(sub_8098C64(), 240, 32); + gPlttBufferUnfaded[250] = gUnknown_0859F2B8[gUnknown_0203A134->mailType].color10; + gPlttBufferFaded[250] = gUnknown_0859F2B8[gUnknown_0203A134->mailType].color10; + gPlttBufferUnfaded[251] = gUnknown_0859F2B8[gUnknown_0203A134->mailType].color12; + gPlttBufferFaded[251] = gUnknown_0859F2B8[gUnknown_0203A134->mailType].color12; + LoadPalette(gUnknown_0859F2B8[gUnknown_0203A134->mailType].palette, 0, 32); + gPlttBufferUnfaded[10] = gUnknown_0859F2B0[gSaveBlock2Ptr->playerGender][0]; + gPlttBufferFaded[10] = gUnknown_0859F2B0[gSaveBlock2Ptr->playerGender][0]; + gPlttBufferUnfaded[11] = gUnknown_0859F2B0[gSaveBlock2Ptr->playerGender][1]; + gPlttBufferFaded[11] = gUnknown_0859F2B0[gSaveBlock2Ptr->playerGender][1]; + break; + case 13: + if (gUnknown_0203A134->flag) + { + sub_8121A1C(); + } + break; + case 14: + if (gUnknown_0203A134->flag) + { + sub_8121B1C(); + RunTextPrinters(); + } + break; + case 15: + if (sub_8087598() == TRUE) + { + return FALSE; + } + break; + case 16: + SetVBlankCallback(sub_8121C50); + gPaletteFade.bufferTransferDisabled = TRUE; + break; + case 17: + icon = sub_80D2E84(gUnknown_0203A134->mail->species); + switch (gUnknown_0203A134->animsActive) + { + case 1: + sub_80D2F68(icon); + gUnknown_0203A134->monIconSprite = sub_80D2D78(icon, SpriteCallbackDummy, 0x60, 0x80, 0, 0); + break; + case 2: + sub_80D2F68(icon); + gUnknown_0203A134->monIconSprite = sub_80D2D78(icon, SpriteCallbackDummy, 0x28, 0x80, 0, 0); + break; + } + break; + case 18: + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); + ShowBg(0); + ShowBg(1); + ShowBg(2); + BeginNormalPaletteFade(-1, 0, 16, 0, 0); + gPaletteFade.bufferTransferDisabled = FALSE; + gUnknown_0203A134->callback2 = sub_8121C98; + return TRUE; + default: + return FALSE; + } + gMain.state ++; + return FALSE; +} + +void sub_81219F0(void) +{ + do + { + if (sub_81215EC() == TRUE) + { + SetMainCallback2(sub_8121C64); + break; + } + } while (sub_81221AC() != TRUE); +} + +void sub_8121A1C(void) +{ + u16 i; + u8 total; + u8 *ptr; + + total = 0; + for (i = 0; i < gUnknown_0203A134->layout->numSubStructs; i ++) + { + ConvertEasyChatWordsToString(gUnknown_0203A134->strbuf[i], &gUnknown_0203A134->mail->words[total], gUnknown_0203A134->layout->var8[i].numEasyChatWords, 1); + total += gUnknown_0203A134->layout->var8[i].numEasyChatWords; + } + ptr = StringCopy(gUnknown_0203A134->playerName, gUnknown_0203A134->mail->playerName); + if (!gUnknown_0203A134->playerIsSender) + { + StringCopy(ptr, gText_FromSpace); + gUnknown_0203A134->signatureWidth = gUnknown_0203A134->layout->signatureWidth - (StringLength(gUnknown_0203A134->playerName) * 8 - 0x60); + } + else + { + sub_81DB52C(gUnknown_0203A134->playerName); + gUnknown_0203A134->signatureWidth = gUnknown_0203A134->layout->signatureWidth; + } +} + +void sub_8121B1C(void) +{ + u16 i; + u8 strbuf[0x20]; + u8 y; + u8 *bufptr; + s32 box_x; + s32 box_y; + + y = 0; + PutWindowTilemap(0); + PutWindowTilemap(1); + FillWindowPixelBuffer(0, 0); + FillWindowPixelBuffer(1, 0); + for (i = 0; i < gUnknown_0203A134->layout->numSubStructs; i ++) + { + if (gUnknown_0203A134->strbuf[i][0] == EOS || gUnknown_0203A134->strbuf[i][0] == CHAR_SPACE) + { + continue; + } + box_print(0, 1, gUnknown_0203A134->layout->var8[i].xOffset + gUnknown_0203A134->layout->wordsYPos, y + gUnknown_0203A134->layout->wordsXPos, gUnknown_0859F2AC, 0, gUnknown_0203A134->strbuf[i]); + y += gUnknown_0203A134->layout->var8[i].lineHeight; + } + bufptr = StringCopy(strbuf, gText_FromSpace); + StringCopy(bufptr, gUnknown_0203A134->playerName); + box_x = GetStringCenterAlignXOffset(1, strbuf, gUnknown_0203A134->signatureWidth) + 0x68; + box_y = gUnknown_0203A134->layout->signatureYPos + 0x58; + box_print(0, 1, box_x, box_y, gUnknown_0859F2AC, 0, strbuf); + CopyWindowToVram(0, 3); + CopyWindowToVram(1, 3); +} + +void sub_8121C50(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +void sub_8121C64(void) +{ + if (gUnknown_0203A134->animsActive != 0) + { + AnimateSprites(); + BuildOamBuffer(); + } + gUnknown_0203A134->callback2(); +} + +void sub_8121C98(void) +{ + if (!UpdatePaletteFade()) + { + gUnknown_0203A134->callback2 = sub_8121CC0; + } +} + +void sub_8121CC0(void) +{ + if (gMain.newKeys & (A_BUTTON | B_BUTTON)) + { + BeginNormalPaletteFade(-1, 0, 0, 16, 0); + gUnknown_0203A134->callback2 = sub_8121D00; + } +} + +void sub_8121D00(void) +{ + if (!UpdatePaletteFade()) + { + SetMainCallback2(gUnknown_0203A134->callback); + switch (gUnknown_0203A134->animsActive) + { + case 1: + case 2: + sub_80D2FF0(sub_80D2E84(gUnknown_0203A134->mail->species)); + sub_80D2EF8(&gSprites[gUnknown_0203A134->monIconSprite]); + } + memset(gUnknown_0203A134, 0, sizeof(*gUnknown_0203A134)); + ResetPaletteFade(); + UnsetBgTilemapBuffer(0); + UnsetBgTilemapBuffer(1); + ResetBgsAndClearDma3BusyFlags(0); + FreeAllWindowBuffers(); + free(gUnknown_0203A134); + gUnknown_0203A134 = NULL; + } +} diff --git a/src/pokemon_1.c b/src/pokemon_1.c index fe7809826..f56ade967 100644 --- a/src/pokemon_1.c +++ b/src/pokemon_1.c @@ -33,7 +33,7 @@ void ZeroMonData(struct Pokemon *mon) SetMonData(mon, MON_DATA_MAX_HP, &arg); SetMonData(mon, MON_DATA_ATK, &arg); SetMonData(mon, MON_DATA_DEF, &arg); - SetMonData(mon, MON_DATA_SPD, &arg); + SetMonData(mon, MON_DATA_SPEED, &arg); SetMonData(mon, MON_DATA_SPATK, &arg); SetMonData(mon, MON_DATA_SPDEF, &arg); arg = 255; @@ -128,7 +128,7 @@ void CreateBoxMon(struct BoxPokemon *boxMon, u16 species, u8 level, u8 fixedIV, SetBoxMonData(boxMon, MON_DATA_HP_IV, &fixedIV); SetBoxMonData(boxMon, MON_DATA_ATK_IV, &fixedIV); SetBoxMonData(boxMon, MON_DATA_DEF_IV, &fixedIV); - SetBoxMonData(boxMon, MON_DATA_SPD_IV, &fixedIV); + SetBoxMonData(boxMon, MON_DATA_SPEED_IV, &fixedIV); SetBoxMonData(boxMon, MON_DATA_SPATK_IV, &fixedIV); SetBoxMonData(boxMon, MON_DATA_SPDEF_IV, &fixedIV); } @@ -147,7 +147,7 @@ void CreateBoxMon(struct BoxPokemon *boxMon, u16 species, u8 level, u8 fixedIV, value = Random(); iv = value & 0x1F; - SetBoxMonData(boxMon, MON_DATA_SPD_IV, &iv); + SetBoxMonData(boxMon, MON_DATA_SPEED_IV, &iv); iv = (value & 0x3E0) >> 5; SetBoxMonData(boxMon, MON_DATA_SPATK_IV, &iv); iv = (value & 0x7C00) >> 10; @@ -234,7 +234,7 @@ void CreateMonWithIVsOTID(struct Pokemon *mon, u16 species, u8 level, u8 *ivs, u SetMonData(mon, MON_DATA_HP_IV, &ivs[0]); SetMonData(mon, MON_DATA_ATK_IV, &ivs[1]); SetMonData(mon, MON_DATA_DEF_IV, &ivs[2]); - SetMonData(mon, MON_DATA_SPD_IV, &ivs[3]); + SetMonData(mon, MON_DATA_SPEED_IV, &ivs[3]); SetMonData(mon, MON_DATA_SPATK_IV, &ivs[4]); SetMonData(mon, MON_DATA_SPDEF_IV, &ivs[5]); CalculateMonStats(mon); @@ -305,7 +305,7 @@ void sub_806819C(struct Pokemon *mon, struct UnknownPokemonStruct *src) SetMonData(mon, MON_DATA_HP_EV, &src->hpEV); SetMonData(mon, MON_DATA_ATK_EV, &src->attackEV); SetMonData(mon, MON_DATA_DEF_EV, &src->defenseEV); - SetMonData(mon, MON_DATA_SPD_EV, &src->speedEV); + SetMonData(mon, MON_DATA_SPEED_EV, &src->speedEV); SetMonData(mon, MON_DATA_SPATK_EV, &src->spAttackEV); SetMonData(mon, MON_DATA_SPDEF_EV, &src->spDefenseEV); value = src->altAbility; @@ -317,7 +317,7 @@ void sub_806819C(struct Pokemon *mon, struct UnknownPokemonStruct *src) value = src->defenseIV; SetMonData(mon, MON_DATA_DEF_IV, &value); value = src->speedIV; - SetMonData(mon, MON_DATA_SPD_IV, &value); + SetMonData(mon, MON_DATA_SPEED_IV, &value); value = src->spAttackIV; SetMonData(mon, MON_DATA_SPATK_IV, &value); value = src->spDefenseIV; @@ -369,7 +369,7 @@ void sub_8068338(struct Pokemon *mon, struct UnknownPokemonStruct *src, bool8 lv SetMonData(mon, MON_DATA_HP_EV, &src->hpEV); SetMonData(mon, MON_DATA_ATK_EV, &src->attackEV); SetMonData(mon, MON_DATA_DEF_EV, &src->defenseEV); - SetMonData(mon, MON_DATA_SPD_EV, &src->speedEV); + SetMonData(mon, MON_DATA_SPEED_EV, &src->speedEV); SetMonData(mon, MON_DATA_SPATK_EV, &src->spAttackEV); SetMonData(mon, MON_DATA_SPDEF_EV, &src->spDefenseEV); value = src->altAbility; @@ -381,7 +381,7 @@ void sub_8068338(struct Pokemon *mon, struct UnknownPokemonStruct *src, bool8 lv value = src->defenseIV; SetMonData(mon, MON_DATA_DEF_IV, &value); value = src->speedIV; - SetMonData(mon, MON_DATA_SPD_IV, &value); + SetMonData(mon, MON_DATA_SPEED_IV, &value); value = src->spAttackIV; SetMonData(mon, MON_DATA_SPATK_IV, &value); value = src->spDefenseIV; diff --git a/src/pokemon_2.c b/src/pokemon_2.c index 27441f952..587773836 100644 --- a/src/pokemon_2.c +++ b/src/pokemon_2.c @@ -330,7 +330,7 @@ u32 GetMonData(struct Pokemon *mon, s32 field, u8* data) if (!ret) ret = mon->defense; break; - case MON_DATA_SPD: + case MON_DATA_SPEED: ret = GetDeoxysStat(mon, STAT_SPD); if (!ret) ret = mon->speed; @@ -351,7 +351,7 @@ u32 GetMonData(struct Pokemon *mon, s32 field, u8* data) case MON_DATA_DEF2: ret = mon->defense; break; - case MON_DATA_SPD2: + case MON_DATA_SPEED2: ret = mon->speed; break; case MON_DATA_SPATK2: @@ -512,7 +512,7 @@ u32 GetBoxMonData(struct BoxPokemon *boxMon, s32 field, u8 *data) case MON_DATA_DEF_EV: retVal = substruct2->defenseEV; break; - case MON_DATA_SPD_EV: + case MON_DATA_SPEED_EV: retVal = substruct2->speedEV; break; case MON_DATA_SPATK_EV: @@ -566,7 +566,7 @@ u32 GetBoxMonData(struct BoxPokemon *boxMon, s32 field, u8 *data) case MON_DATA_DEF_IV: retVal = substruct3->defenseIV; break; - case MON_DATA_SPD_IV: + case MON_DATA_SPEED_IV: retVal = substruct3->speedIV; break; case MON_DATA_SPATK_IV: @@ -747,7 +747,7 @@ void SetMonData(struct Pokemon *mon, s32 field, const void *dataArg) case MON_DATA_DEF: SET16(mon->defense); break; - case MON_DATA_SPD: + case MON_DATA_SPEED: SET16(mon->speed); break; case MON_DATA_SPATK: @@ -880,7 +880,7 @@ void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const void *dataArg) case MON_DATA_DEF_EV: SET8(substruct2->defenseEV); break; - case MON_DATA_SPD_EV: + case MON_DATA_SPEED_EV: SET8(substruct2->speedEV); break; case MON_DATA_SPATK_EV: @@ -940,7 +940,7 @@ void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const void *dataArg) case MON_DATA_DEF_IV: SET8(substruct3->defenseIV); break; - case MON_DATA_SPD_IV: + case MON_DATA_SPEED_IV: SET8(substruct3->speedIV); break; case MON_DATA_SPATK_IV: @@ -1329,7 +1329,7 @@ void CopyPlayerPartyMonToBattleData(u8 bank, u8 partyIndex) gBattleMons[bank].hpIV = GetMonData(&gPlayerParty[partyIndex], MON_DATA_HP_IV, NULL); gBattleMons[bank].attackIV = GetMonData(&gPlayerParty[partyIndex], MON_DATA_ATK_IV, NULL); gBattleMons[bank].defenseIV = GetMonData(&gPlayerParty[partyIndex], MON_DATA_DEF_IV, NULL); - gBattleMons[bank].speedIV = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPD_IV, NULL); + gBattleMons[bank].speedIV = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPEED_IV, NULL); gBattleMons[bank].spAttackIV = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPATK_IV, NULL); gBattleMons[bank].spDefenseIV = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPDEF_IV, NULL); gBattleMons[bank].personality = GetMonData(&gPlayerParty[partyIndex], MON_DATA_PERSONALITY, NULL); @@ -1339,7 +1339,7 @@ void CopyPlayerPartyMonToBattleData(u8 bank, u8 partyIndex) gBattleMons[bank].maxHP = GetMonData(&gPlayerParty[partyIndex], MON_DATA_MAX_HP, NULL); gBattleMons[bank].attack = GetMonData(&gPlayerParty[partyIndex], MON_DATA_ATK, NULL); gBattleMons[bank].defense = GetMonData(&gPlayerParty[partyIndex], MON_DATA_DEF, NULL); - gBattleMons[bank].speed = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPD, NULL); + gBattleMons[bank].speed = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPEED, NULL); gBattleMons[bank].spAttack = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPATK, NULL); gBattleMons[bank].spDefense = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPDEF, NULL); gBattleMons[bank].isEgg = GetMonData(&gPlayerParty[partyIndex], MON_DATA_IS_EGG, NULL); diff --git a/src/pokemon_size_record.c b/src/pokemon_size_record.c index 12d98bfd8..1758fba32 100644 --- a/src/pokemon_size_record.c +++ b/src/pokemon_size_record.c @@ -57,7 +57,7 @@ static u32 GetMonSizeHash(struct Pokemon *pkmn) u16 hpIV = GetMonData(pkmn, MON_DATA_HP_IV) & 0xF; u16 attackIV = GetMonData(pkmn, MON_DATA_ATK_IV) & 0xF; u16 defenseIV = GetMonData(pkmn, MON_DATA_DEF_IV) & 0xF; - u16 speedIV = GetMonData(pkmn, MON_DATA_SPD_IV) & 0xF; + u16 speedIV = GetMonData(pkmn, MON_DATA_SPEED_IV) & 0xF; u16 spAtkIV = GetMonData(pkmn, MON_DATA_SPATK_IV) & 0xF; u16 spDefIV = GetMonData(pkmn, MON_DATA_SPDEF_IV) & 0xF; u32 hibyte = ((attackIV ^ defenseIV) * hpIV) ^ (personality & 0xFF); diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c new file mode 100755 index 000000000..838e91d90 --- /dev/null +++ b/src/pokemon_summary_screen.c @@ -0,0 +1,3679 @@ +#include "global.h" +#include "battle.h" +#include "bg.h" +#include "decompress.h" +#include "item.h" +#include "items.h" +#include "link.h" +#include "m4a.h" +#include "main.h" +#include "malloc.h" +#include "moves.h" +#include "palette.h" +#include "pokemon.h" +#include "songs.h" +#include "sound.h" +#include "species.h" +#include "sprite.h" +#include "string_util.h" +#include "task.h" +#include "text.h" +#include "window.h" + +struct ContestMove +{ + u8 effect; + u8 type; + u8 comboID; + u8 combo[4]; +}; + +struct ContestEffect +{ + u8 type; + u8 appeal; + u8 jam; +}; + + + +extern struct UnkSummaryStruct* gUnknown_0203CF1C; +extern struct BgTemplate gUnknown_0861CBB4; +extern u8 gUnknown_0203CF20; +extern struct MusicPlayerInfo gMPlay_BGM; +extern s8 gUnknown_0861CC1C[]; +extern u8 gUnknown_08329D22[]; +extern u8 gUnknown_0203CF21; +extern u16 gSpecialVar_0x8005; +extern struct UnkStruct_61CC04 gUnknown_0861CC04; +extern struct UnkStruct_61CC04 gUnknown_0861CC10; +extern struct UnkStruct_61CC04 gUnknown_0861CBEC; +extern struct UnkStruct_61CC04 gUnknown_0861CBF8; +extern u16 gUnknown_08DC3CD4[]; +extern struct ContestMove gContestMoves[]; +extern struct ContestEffect gContestEffects[]; +extern struct WindowTemplate gUnknown_0861CC24; +extern struct TextColor gUnknown_0861CD2C[]; +extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1]; +extern u8 gText_MaleSymbol[]; +extern u8 gText_FemaleSymbol[]; +extern u8 gUnknown_0861CDD3[]; +extern void (*const gUnknown_0861CE54[])(); +extern void (*const gUnknown_0861CE64[])(u8 taskId); +extern struct WindowTemplate gUnknown_0861CCCC; +extern u8 gUnknown_0861CE74[]; +extern u8 gUnknown_0861CE7B[]; +extern struct WindowTemplate gUnknown_0861CCEC; +extern struct WindowTemplate gUnknown_0861CD14; + +extern void sub_806F2AC(u8 a, u8 b); +void sub_81C488C(u8 a); +extern void do_scheduled_bg_tilemap_copies_to_vram(void); +extern u8 sub_81221EC(); +extern u8 sub_81221AC(); +extern void SetVBlankHBlankCallbacksToNull(); +extern void sub_8121DA0(); +extern void clear_scheduled_bg_copies_to_vram(); +extern void remove_some_task(); +extern void ResetBgsAndClearDma3BusyFlags(u32 leftoverFireRedLeafGreenVariable); +extern void ShowBg(u8 a); +extern void SetGpuReg(u8 regOffset, u16 value); +extern void schedule_bg_copy_tilemap_to_vram(u8 a); +extern void SetBgTilemapBuffer(u8 bg, void *tilemap); +extern u8 gUnknown_08D9862C; +extern u8 gUnknown_08D98CC8; +extern u8 gUnknown_08D987FC; +extern u8 gUnknown_08D9898C; +extern u8 gUnknown_08D98B28; +extern u8 gUnknown_08D9853C; +extern u8 gUnknown_08D85620; +extern struct CompressedSpriteSheet gUnknown_0861CFBC; +extern struct CompressedSpriteSheet gUnknown_0861D074; +extern struct CompressedSpriteSheet gUnknown_0861D0F8; +extern struct CompressedSpritePalette gUnknown_0861D100; +extern struct CompressedSpritePalette gUnknown_0861D07C; +extern u8 gUnknown_08D97B84; +extern u8 gUnknown_08D97D0C; +extern void reset_temp_tile_data_buffers(); +extern void decompress_and_copy_tile_data_to_vram(u8 a, void* tiledata, u8 b, u8 c, u8 d); +extern u8 free_temp_tile_data_buffers_if_possible(); +extern void sub_8069004(struct BoxPokemon* a, void* b); +extern void sub_81C1E20(u8 taskId); +extern u8 *GetMonNickname(struct Pokemon *mon, u8 *dest); +extern u16 SpeciesToPokedexNum(u16 species); +extern u8 gText_UnkCtrlF908Clear01[]; +extern u8 gText_LevelSymbol[]; +extern u8 gText_PkmnInfo[]; +extern u8 gText_PkmnSkills[]; +extern u8 gText_BattleMoves[]; +extern u8 gText_ContestMoves[]; +extern u8 gText_Cancel2[]; +extern u8 gText_Info[]; +extern u8 gText_Switch[]; +extern u8 gText_RentalPkmn[]; +extern u8 gText_TypeSlash[]; +extern u8 gText_HP4[]; +extern u8 gText_Attack3[]; +extern u8 gText_Defense3[]; +extern u8 gText_SpAtk4[]; +extern u8 gText_SpDef4[]; +extern u8 gText_Speed2[]; +extern u8 gText_ExpPoints[]; +extern u8 gText_NextLv[]; +extern u8 gText_Status[]; +extern u8 gText_Power[]; +extern u8 gText_Accuracy2[]; +extern u8 gText_Appeal[]; +extern u8 gText_Jam[]; +extern u8 gText_OTSlash[]; +extern u8 gText_UnkCtrlF907F908[]; +extern u8 gAbilityNames[][13]; +extern u8 *gAbilityDescriptionPointers[]; +extern u8 gText_XNature[]; +extern u8 gText_XNatureHatchedAtYZ[]; +extern u8 gText_XNatureHatchedSomewhereAt[]; +extern u8 gText_XNatureMetAtYZ[]; +extern u8 gText_XNatureMetSomewhereAt[]; +extern u8 gText_XNatureFatefulEncounter[]; +extern u8 gText_XNatureProbablyMetAt[]; +extern u8 gText_XNatureObtainedInTrade[]; +extern u8 *gNatureNamePointers[]; +extern u8 gText_EmptyString5[]; +extern u32 gBattleTypeFlags; +extern u8 gText_FiveMarks[]; +extern u8 gText_EggWillTakeALongTime[]; +extern u8 gText_EggAboutToHatch[]; +extern u8 gText_EggWillHatchSoon[]; +extern u8 gText_EggWillTakeSomeTime[]; +extern u8 gText_PeculiarEggNicePlace[]; +extern u8 gText_PeculiarEggTrade[]; +extern u8 gText_EggFromTraveler[]; +extern u8 gText_EggFromHotSprings[]; +extern u8 gText_OddEggFoundByCouple[]; +extern u8 gText_None[]; +extern u8 gText_RibbonsVar1[]; +extern u8 gUnknown_0861CE82[]; +extern u8 gUnknown_0861CE8E[]; +extern u8 gText_OneDash[]; +extern u8 gText_TwoDashes[]; +extern u8 gText_ThreeDashes[]; +extern u8 gUnknown_0861CE97[]; +extern struct BattleMove gBattleMoves[]; + +extern u32 ChangeBgX(u8 bg, u32 value, u8 op); +extern void sub_8199C30(u8 a, u8 b, u8 c, u8 d, u8 e, u8 f); +extern void AddTextPrinterParametrized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, struct TextColor* colors, s8 speed, u8 *str); +extern s32 GetStringCenterAlignXOffset(u8 fontId, u8 *str, s32 totalWidth); +extern s32 GetStringRightAlignXOffset(u8 fontId, u8 *str, s32 totalWidth); +extern bool8 sub_81A6BF4(); +extern bool8 sub_81B9E94(); +extern void sub_81AFBF0(); +extern u8 sub_81AFC0C(u8 a, u8 *b); +extern void sub_81AFC28(u8 *a, u8 *b); +extern void sub_8124610(u8 *a, u8 b); +extern int GetPlayerIDAsU32(); +extern u8 GetCurrentPpToMaxPpState(u8 a, u8 b); + +void sub_81BFAE4(void); +void sub_81BFE24(); +u8 sub_81BFEB0(); +void sub_81C2554(); +void sub_81C1BA0(); +void sub_81C0098(struct Pokemon* a); +bool8 sub_81C00F0(struct Pokemon* a); +void sub_81C25E8(); +void sub_81C286C(); +void sub_81C2D9C(u8 a); +void sub_81C0348(); +void sub_81C2AFC(u8 a); +void sub_81C4190(); +void sub_81C42C8(); +u8 sub_81C45F4(void* a, u16* b); +void sub_81C4984(); +void sub_81C4A08(); +void sub_81C4A88(); +void sub_81C4280(); +void sub_81C0510(u8 taskId); +void sub_81C171C(u8 taskId); +void sub_8121E10(); +u8 sub_81B205C(struct Pokemon* a); +void sub_81C1DA4(u16 a, s16 b); +void sub_81C1EFC(u16 a, s16 b, u16 c); +void sub_81C240C(u16 a); +void sub_81C2194(u16 *a, u16 b, u8 c); +void sub_81C2074(u16 a, s16 b); +void sub_81C2524(); +void sub_81C2228(struct Pokemon* mon); +void sub_81C0484(u8 taskId); +void sub_81C4898(); +void sub_806F47C(u8 a); +u8 GetLRKeysState(); +void sub_81C0604(u8 taskId, s8 a); +void sub_81C0A8C(u8 taskId, s8 a); +void sub_81C48F0(); +void sub_81C0E48(u8 taskId); +void sub_81C0704(u8 taskId); +s8 sub_81C09B4(s8 a); +s8 sub_81C08F8(s8 a); +void sub_81C4204(u8 a, u8 b); +void sub_81C20F0(u8 taskId); +bool8 sub_81C0A50(struct Pokemon* mon); +void sub_81C49E0(); +void sub_81C0E24(); +void sub_81C2C38(u8 a); +void sub_81C0B8C(u8 taskId); +void sub_81C0CC4(u8 taskId); +void sub_81C2DE4(u8 a); +void sub_81C424C(); +void sub_81C0C68(u8 taskId); +void sub_81C0D44(u8 taskId); +void sub_81C22CC(struct Pokemon* mon); +void sub_81C0F44(u8 taskId); +void sub_81C3E9C(u16 a); +void sub_81C3F44(); +void sub_81C44F0(); +void sub_81C4AF8(u8 a); +void sub_81C1070(s16* a, s8 b, u8* c); +void sub_81C11F4(u8 a); +void sub_81C129C(u8 a); +bool8 sub_81C1040(); +void sub_81C4064(); +void sub_81C4C60(u8 a); +void sub_81C12E4(u8 taskId); +void sub_81C4C84(u8 a); +void sub_81C13B0(u8 a, u8 b); +void sub_81C14BC(struct Pokemon *mon, u8 a, u8 b); +void sub_81C15EC(struct BoxPokemon *mon, u8 a, u8 b); +void sub_81C40A0(u8 a, u8 b); +void sub_81C4568(u8 a, u8 b); +void sub_81C174C(u8 taskId); +bool8 sub_81C18A8(); +void sub_81C18F4(u8 a); +u8 sub_81B6D14(u16 a); +void sub_81C1940(u8 taskId); +void sub_81C4154(); +void sub_81C1F80(u8 taskId); +void sub_81C2628(); +void sub_81C2794(); +void sub_81C27DC(struct Pokemon *mon, u16 a); +void sub_81C2D68(u8 a); +void sub_81C335C(); +void sub_81C33CC(); +void sub_81C3428(); +void sub_81C349C(); +void sub_81C2EC4(); +void sub_81C2F5C(); +void sub_81C2FD8(); +void sub_81C302C(); +void sub_81C307C(); +void sub_81C3194(); +void sub_81C31C0(); +bool8 sub_81C3304(); +void sub_81C31F0(u8 *a); +u8 sub_81C3220(); +bool8 sub_81C32BC(); +void sub_81C35E4(); +void sub_81C3690(); +void sub_81C3710(); +void sub_81C37D8(); +void sub_81C3808(); +void sub_81C3890(); +void sub_81C38C0(); +void sub_81C3B08(u8 a); +void sub_81C3E2C(u8 a); +void sub_81C4D18(); + +void SetBgAttribute(u8 bg, u8 attributeId, u8 value); + +bool8 sub_81BFB10(); +u8 sub_81B1250(); + +union UnkUnion +{ + struct Pokemon mon[6]; + struct BoxPokemon boxMon[6]; +}; + + +u8 sub_80D214C(union UnkUnion* a, u8 b, u8 c, u8 d); + +struct PokeSummary +{ + u16 species; // 0x0 + u16 species2; // 0x2 + u8 isEgg; // 0x4 + u8 level; // 0x5 + u8 ribbons; // 0x6 + u8 unk7; // 0x7 + u8 altAbility; // 0x8 + u8 metLocation; // 0x9 + u8 metLevel; // 0xA + u8 metGame; // 0xB + u32 pid; // 0xC + u32 exp; // 0x10 + u16 moves[4]; // 0x14 + u8 pp[4]; // 0x1C + u16 currentHP; // 0x20 + u16 maxHP; // 0x22 + u16 atk; // 0x24 + u16 def; // 0x26 + u16 spatk; // 0x28 + u16 spdef; // 0x2A + u16 speed; // 0x2C + u16 item; // 0x2E + u16 friendship; // 0x30 + u8 OTGender; // 0x32 + u8 nature; // 0x33 + u8 ppBonuses; // 0x34 + u8 sanity; // 0x35 + u8 OTName[8]; // 0x36 + u8 unk3E[9]; // 0x3E + u32 OTID; // 0x48 +}; + +struct UnkSummaryStruct +{ + /*0x00*/ union UnkUnion *unk0; + /*0x04*/ void *unk4; + /*0x08*/ void *unk8; + /*0x0C*/ struct Pokemon currentMon; + /*0x70*/ struct PokeSummary summary; + u16 unkTilemap0[0x400]; + u16 unkTilemap0_1[0x400]; + u16 unkTilemap1[0x400]; + u16 unkTilemap1_1[0x400]; + u16 unkTilemap2[0x400]; + u16 unkTilemap2_1[0x400]; + u16 unkTilemap3[0x400]; + u16 unkTilemap3_1[0x400]; + u8 unk40BC; + u8 unk40BD; + u8 unk40BE; + u8 unk40BF; + u8 unk40C0; + u8 unk40C1; + u8 unk40C2; + u8 unk40C3; + u16 unk40C4; + u8 unk40C6; + u8 unk40C7; + u8 unk40C8; + u8 unk40C9; + u8 unk40CA; + u8 unk40CB[8]; + u8 unk40D3; + u8 unk40D4; + u8 unk40D5; + u8 unk_filler5[0x19]; + u8 unk40EF; + s16 unk40F0; + u8 unk_filler4[6]; +}; + +void sub_81BF8EC(u8 a, void *b, u8 c, u8 d, void *e) +{ + u8 byte; + gUnknown_0203CF1C = AllocZeroed(sizeof(struct UnkSummaryStruct)); + gUnknown_0203CF1C->unk40BC = a; + gUnknown_0203CF1C->unk0 = b; + gUnknown_0203CF1C->unk40BE = c; + gUnknown_0203CF1C->unk40BF = d; + gUnknown_0203CF1C->unk4 = e; + if (a == 2) + gUnknown_0203CF1C->unk40BD = 1; + else + gUnknown_0203CF1C->unk40BD = 0; + switch (a) + { + case 0: + case 2: + gUnknown_0203CF1C->unk40C1 = 0; + gUnknown_0203CF1C->unk40C2 = 3; + break; + case 1: + gUnknown_0203CF1C->unk40C1 = 0; + gUnknown_0203CF1C->unk40C2 = 3; + gUnknown_0203CF1C->unk40C8 = 1; + break; + case 3: + gUnknown_0203CF1C->unk40C1 = 2; + gUnknown_0203CF1C->unk40C2 = 3; + gUnknown_0203CF1C->unk40C3 = 1; + break; + } + byte = gUnknown_0203CF1C->unk40C1; + gUnknown_0203CF1C->unk40C0 = byte; + sub_81C488C(0xFF); + if (gMonSpritesGfxPtr == 0) + sub_806F2AC(0, 0); + SetMainCallback2(sub_81BFAE4); +} + +void sub_81BFA38(void *a, u8 b, u8 c, void *d, u16 e) +{ + sub_81BF8EC(3, a, b, c, d); + gUnknown_0203CF1C->unk40C4 = e; +} + +void sub_81BFA80(u8 a, void *b, u8 c, u8 d, void *e) +{ + sub_81BF8EC(a, b, c, d, e); + gUnknown_0203CF1C->unk40EF = 1; +} + +void sub_81BFAB4(void) +{ + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + do_scheduled_bg_tilemap_copies_to_vram(); + UpdatePaletteFade(); +} + +void sub_81BFAD0(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +void sub_81BFAE4() +{ + while (1) + { + if (sub_81221EC() == 1 || sub_81BFB10() == TRUE || sub_81221AC() == 1) + break; + } +} + +bool8 sub_81BFB10(void) +{ + switch (gMain.state) + { + case 0: + SetVBlankHBlankCallbacksToNull(); + sub_8121DA0(); + clear_scheduled_bg_copies_to_vram(); + gMain.state++; + break; + case 1: + remove_some_task(); + gMain.state++; + break; + case 2: + ResetPaletteFade(); + gPaletteFade.bufferTransferDisabled = 1; + gMain.state++; + break; + case 3: + ResetSpriteData(); + gMain.state++; + break; + case 4: + FreeAllSpritePalettes(); + gMain.state++; + break; + case 5: + sub_81BFE24(); + gUnknown_0203CF1C->unk40F0 = 0; + gMain.state++; + break; + case 6: + if (sub_81BFEB0() != 0) + gMain.state++; + break; + case 7: + sub_81C2554(); + gMain.state++; + break; + case 8: + sub_81C1BA0(); + gMain.state++; + break; + case 9: + sub_81C0098(&gUnknown_0203CF1C->currentMon); + gUnknown_0203CF1C->unk40F0 = 0; + gMain.state++; + break; + case 10: + if (sub_81C00F0(&gUnknown_0203CF1C->currentMon) != 0) + gMain.state++; + break; + case 11: + sub_81C25E8(); + gMain.state++; + break; + case 12: + sub_81C286C(); + gMain.state++; + break; + case 13: + sub_81C2D9C(gUnknown_0203CF1C->unk40C0); + gMain.state++; + break; + case 14: + sub_81C0348(); + gMain.state++; + break; + case 15: + sub_81C2AFC(gUnknown_0203CF1C->unk40C0); + gMain.state++; + break; + case 16: + sub_81C4190(); + sub_81C42C8(); + gUnknown_0203CF1C->unk40F0 = 0; + gMain.state++; + break; + case 17: + gUnknown_0203CF1C->unk40D3 = sub_81C45F4(&gUnknown_0203CF1C->currentMon, &gUnknown_0203CF1C->unk40F0); + if (gUnknown_0203CF1C->unk40D3 != 0xFF) + { + gUnknown_0203CF1C->unk40F0 = 0; + gMain.state++; + } + break; + case 18: + sub_81C4984(&gUnknown_0203CF1C->currentMon); + gMain.state++; + break; + case 19: + sub_81C4A08(&gUnknown_0203CF1C->currentMon); + gMain.state++; + break; + case 20: + sub_81C4A88(); + gMain.state++; + break; + case 21: + sub_81C4280(); + gMain.state++; + break; + case 22: + if (gUnknown_0203CF1C->unk40BC != 3) + CreateTask(sub_81C0510, 0); + else + CreateTask(sub_81C171C, 0); + gMain.state++; + break; + case 23: + BlendPalettes(-1, 16, 0); + gMain.state++; + break; + case 24: + BeginNormalPaletteFade(-1, 0, 16, 0, 0); + gPaletteFade.bufferTransferDisabled = 0; + gMain.state++; + break; + default: + SetVBlankCallback(sub_81BFAD0); + SetMainCallback2(sub_81BFAB4); + return TRUE; + } + return FALSE; +} + +void sub_81BFE24() +{ + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, &gUnknown_0861CBB4, 4); + SetBgTilemapBuffer(1, &gUnknown_0203CF1C->unkTilemap2); + SetBgTilemapBuffer(2, &gUnknown_0203CF1C->unkTilemap1); + SetBgTilemapBuffer(3, &gUnknown_0203CF1C->unkTilemap0); + sub_8121E10(); + schedule_bg_copy_tilemap_to_vram(1); + schedule_bg_copy_tilemap_to_vram(2); + schedule_bg_copy_tilemap_to_vram(3); + SetGpuReg(REG_OFFSET_DISPCNT, 0x1040); + SetGpuReg(REG_OFFSET_BLDCNT, 0); + ShowBg(0); + ShowBg(1); + ShowBg(2); + ShowBg(3); +} + +u8 sub_81BFEB0() +{ + switch (gUnknown_0203CF1C->unk40F0) + { + case 0: + reset_temp_tile_data_buffers(); + decompress_and_copy_tile_data_to_vram(1, &gUnknown_08D97D0C, 0, 0, 0); + gUnknown_0203CF1C->unk40F0++; + break; + case 1: + if (free_temp_tile_data_buffers_if_possible() != 1) + { + LZDecompressWram(&gUnknown_08D9862C, gUnknown_0203CF1C->unkTilemap0); + gUnknown_0203CF1C->unk40F0++; + } + break; + case 2: + LZDecompressWram(&gUnknown_08D98CC8, gUnknown_0203CF1C->unkTilemap0_1); + gUnknown_0203CF1C->unk40F0++; + break; + case 3: + LZDecompressWram(&gUnknown_08D987FC, gUnknown_0203CF1C->unkTilemap1_1); + gUnknown_0203CF1C->unk40F0++; + break; + case 4: + LZDecompressWram(&gUnknown_08D9898C, gUnknown_0203CF1C->unkTilemap2_1); + gUnknown_0203CF1C->unk40F0++; + break; + case 5: + LZDecompressWram(&gUnknown_08D98B28, gUnknown_0203CF1C->unkTilemap3_1); + gUnknown_0203CF1C->unk40F0++; + break; + case 6: + LoadCompressedPalette(&gUnknown_08D9853C, 0, 0x100); + LoadPalette(&gUnknown_08D85620, 0x81, 0x1E); + gUnknown_0203CF1C->unk40F0++; + break; + case 7: + LoadCompressedObjectPic(&gUnknown_0861CFBC); + gUnknown_0203CF1C->unk40F0++; + break; + case 8: + LoadCompressedObjectPic(&gUnknown_0861D074); + gUnknown_0203CF1C->unk40F0++; + break; + case 9: + LoadCompressedObjectPic(&gUnknown_0861D0F8); + gUnknown_0203CF1C->unk40F0++; + break; + case 10: + LoadCompressedObjectPalette(&gUnknown_0861D100); + gUnknown_0203CF1C->unk40F0++; + break; + case 11: + LoadCompressedObjectPalette(&gUnknown_0861D07C); + gUnknown_0203CF1C->unk40F0++; + break; + case 12: + LoadCompressedPalette(&gUnknown_08D97B84, 0x1D0, 0x60); + gUnknown_0203CF1C->unk40F0 = 0; + return 1; + } + return 0; +} + +void sub_81C0098(struct Pokemon *mon) +{ + if (gUnknown_0203CF1C->unk40BD == 0) + { + struct Pokemon *partyMon = gUnknown_0203CF1C->unk0->mon; + *mon = partyMon[gUnknown_0203CF1C->unk40BE]; + } + else + { + struct BoxPokemon *boxMon = gUnknown_0203CF1C->unk0->boxMon; + sub_8069004(&boxMon[gUnknown_0203CF1C->unk40BE], mon); + } +} + +bool8 sub_81C00F0(struct Pokemon *a) +{ + u32 i; + struct PokeSummary *sum = &gUnknown_0203CF1C->summary; + switch (gUnknown_0203CF1C->unk40F0) + { + case 0: + sum->species = GetMonData(a, MON_DATA_SPECIES); + sum->species2 = GetMonData(a, MON_DATA_SPECIES2); + sum->exp = GetMonData(a, MON_DATA_EXP); + sum->level = GetMonData(a, MON_DATA_LEVEL); + sum->altAbility = GetMonData(a, MON_DATA_ALT_ABILITY); + sum->item = GetMonData(a, MON_DATA_HELD_ITEM); + sum->pid = GetMonData(a, MON_DATA_PERSONALITY); + sum->sanity = GetMonData(a, MON_DATA_SANITY_BIT1); + if (sum->sanity != 0) + sum->isEgg = 1; + else + sum->isEgg = GetMonData(a, MON_DATA_IS_EGG); + break; + case 1: + for (i = 0; i < 4; i++) + { + sum->moves[i] = GetMonData(a, MON_DATA_MOVE1+i); + sum->pp[i] = GetMonData(a, MON_DATA_PP1+i); + } + sum->ppBonuses = GetMonData(a, MON_DATA_PP_BONUSES); + break; + case 2: + if ((struct Pokemon*)gUnknown_0203CF1C->unk0 == gPlayerParty || gUnknown_0203CF1C->unk40BC == 2 || gUnknown_0203CF1C->unk40EF == 1) + { + sum->nature = GetNature(a); + sum->currentHP = GetMonData(a, MON_DATA_HP); + sum->maxHP = GetMonData(a, MON_DATA_MAX_HP); + sum->atk = GetMonData(a, MON_DATA_ATK); + sum->def = GetMonData(a, MON_DATA_DEF); + sum->spatk = GetMonData(a, MON_DATA_SPATK); + sum->spdef = GetMonData(a, MON_DATA_SPDEF); + sum->speed = GetMonData(a, MON_DATA_SPEED); + } + else + { + sum->nature = GetNature(a); + sum->currentHP = GetMonData(a, MON_DATA_HP); + sum->maxHP = GetMonData(a, MON_DATA_MAX_HP); + sum->atk = GetMonData(a, MON_DATA_ATK2); + sum->def = GetMonData(a, MON_DATA_DEF2); + sum->spatk = GetMonData(a, MON_DATA_SPATK2); + sum->spdef = GetMonData(a, MON_DATA_SPDEF2); + sum->speed = GetMonData(a, MON_DATA_SPEED2); + } + break; + case 3: + GetMonData(a, MON_DATA_OT_NAME, &sum->OTName); + ConvertInternationalString((u8*)&sum->OTName, GetMonData(a, MON_DATA_LANGUAGE)); + sum->unk7 = sub_81B205C(a); + sum->OTGender = GetMonData(a, MON_DATA_OT_GENDER); + sum->OTID = GetMonData(a, MON_DATA_OT_ID); + sum->metLocation = GetMonData(a, MON_DATA_MET_LOCATION); + sum->metLevel = GetMonData(a, MON_DATA_MET_LEVEL); + sum->metGame = GetMonData(a, MON_DATA_MET_GAME); + sum->friendship = GetMonData(a, MON_DATA_FRIENDSHIP); + break; + default: + sum->ribbons = GetMonData(a, MON_DATA_RIBBON_COUNT); + return TRUE; + } + gUnknown_0203CF1C->unk40F0++; + return FALSE; +} + +void sub_81C0348(void) +{ + if (gUnknown_0203CF1C->unk40C0 != 2 && gUnknown_0203CF1C->unk40C0 != 3) + { + sub_81C1DA4(0, 255); + sub_81C1EFC(0, 255, 0); + } + else + { + sub_81C240C(gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->unk40C6]); + sub_81C2194(&gUnknown_0203CF1C->unkTilemap2[0], 3, 0); + sub_81C2194(&gUnknown_0203CF1C->unkTilemap3[0], 1, 0); + SetBgTilemapBuffer(1, &gUnknown_0203CF1C->unkTilemap3); + SetBgTilemapBuffer(2, &gUnknown_0203CF1C->unkTilemap2); + ChangeBgX(2, 0x10000, 1); + ClearWindowTilemap(0x13); + ClearWindowTilemap(0xD); + } + if (gUnknown_0203CF1C->summary.unk7 == 0) + { + sub_81C2074(0, 0xFF); + } + else + { + if (gUnknown_0203CF1C->unk40C0 != 2 && gUnknown_0203CF1C->unk40C0 != 3) + PutWindowTilemap(0xD); + } + sub_81C2524(); + sub_81C2228(&gUnknown_0203CF1C->currentMon); +} + +void sub_81C0434() +{ + FreeAllWindowBuffers(); + Free(gUnknown_0203CF1C); +} + +void sub_81C044C(u8 taskId) +{ + BeginNormalPaletteFade(-1, 0, 0, 16, 0); + gTasks[taskId].func = sub_81C0484; +} + +void sub_81C0484(u8 taskId) +{ + if (sub_81221EC() != 1 && !gPaletteFade.active) + { + SetMainCallback2(gUnknown_0203CF1C->unk4); + gUnknown_0203CF20 = gUnknown_0203CF1C->unk40BE; + sub_81C4898(); + ResetSpriteData(); + FreeAllSpritePalettes(); + StopCryAndClearCrySongs(); + m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 0x100); + if (gMonSpritesGfxPtr == 0) + sub_806F47C(0); + sub_81C0434(); + DestroyTask(taskId); + } +} + +void sub_81C0510(u8 taskId) +{ + if (sub_81221EC() != 1 && !gPaletteFade.active) + { + if (gMain.newKeys & DPAD_UP) + { + sub_81C0604(taskId, -1); + } + else if (gMain.newKeys & DPAD_DOWN) + { + sub_81C0604(taskId, 1); + } + else if ((gMain.newKeys & DPAD_LEFT) || GetLRKeysState() == 1) + { + sub_81C0A8C(taskId, -1); + } + else if ((gMain.newKeys & DPAD_RIGHT) || GetLRKeysState() == 2) + { + sub_81C0A8C(taskId, 1); + } + else if (gMain.newKeys & A_BUTTON) + { + if (gUnknown_0203CF1C->unk40C0 != 1) + { + if (gUnknown_0203CF1C->unk40C0 == 0) + { + sub_81C48F0(); + PlaySE(SE_SELECT); + sub_81C044C(taskId); + } + else + { + PlaySE(SE_SELECT); + sub_81C0E48(taskId); + } + } + } + else if (gMain.newKeys & B_BUTTON) + { + sub_81C48F0(); + PlaySE(SE_SELECT); + sub_81C044C(taskId); + } + } +} + +void sub_81C0604(u8 taskId, s8 a) +{ + s8 r4_2; + + if (gUnknown_0203CF1C->unk40C3 == 0) + { + if (gUnknown_0203CF1C->unk40BD == 1) + { + if (gUnknown_0203CF1C->unk40C0 != 0) + { + if (a == 1) + a = 0; + else + a = 2; + } + else + { + if (a == 1) + a = 1; + else + a = 3; + } + r4_2 = sub_80D214C(gUnknown_0203CF1C->unk0, gUnknown_0203CF1C->unk40BE, gUnknown_0203CF1C->unk40BF, a); + } + else if (sub_81B1250() == 1) + { + r4_2 = sub_81C09B4(a); + } + else + { + r4_2 = sub_81C08F8(a); + } + + if (r4_2 != -1) + { + PlaySE(SE_SELECT); + if (gUnknown_0203CF1C->summary.unk7 != 0) + { + sub_81C4204(2, 1); + ClearWindowTilemap(0xD); + schedule_bg_copy_tilemap_to_vram(0); + sub_81C2074(0, 2); + } + gUnknown_0203CF1C->unk40BE = r4_2; + gTasks[taskId].data[0] = 0; + gTasks[taskId].func = sub_81C0704; + } + } +} + +void sub_81C0704(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + + switch (data[0]) + { + case 0: + StopCryAndClearCrySongs(); + break; + case 1: + sub_81C4898(); + DestroySpriteAndFreeResources(&gSprites[gUnknown_0203CF1C->unk40D3]); + break; + case 2: + DestroySpriteAndFreeResources(&gSprites[gUnknown_0203CF1C->unk40D4]); + break; + case 3: + sub_81C0098(&gUnknown_0203CF1C->currentMon); + gUnknown_0203CF1C->unk40F0 = 0; + break; + case 4: + if (sub_81C00F0(&gUnknown_0203CF1C->currentMon) == FALSE) + return; + break; + case 5: + sub_81C49E0(&gUnknown_0203CF1C->currentMon); + break; + case 6: + sub_81C4A08(&gUnknown_0203CF1C->currentMon); + break; + case 7: + if (gUnknown_0203CF1C->summary.unk7) + sub_81C2074(10, -2); + sub_81C2228(&gUnknown_0203CF1C->currentMon); + data[1] = 0; + break; + case 8: + gUnknown_0203CF1C->unk40D3 = sub_81C45F4(&gUnknown_0203CF1C->currentMon, &data[1]); + if (gUnknown_0203CF1C->unk40D3 == 0xFF) + return; + gSprites[gUnknown_0203CF1C->unk40D3].data2 = 1; + sub_81C0E24(); + data[1] = 0; + break; + case 9: + sub_81C4280(); + break; + case 10: + sub_81C25E8(); + break; + case 11: + sub_81C2D9C(gUnknown_0203CF1C->unk40C0); + sub_81C2524(); + break; + case 12: + gSprites[gUnknown_0203CF1C->unk40D3].data2 = 0; + break; + default: + if (sub_81221EC() == 0 && FuncIsActiveTask(sub_81C20F0) == 0) + { + data[0] = 0; + gTasks[taskId].func = sub_81C0510; + } + return; + } + data[0]++; +} + +s8 sub_81C08F8(s8 a) +{ + struct Pokemon *mon = gUnknown_0203CF1C->unk0->mon; + + if (gUnknown_0203CF1C->unk40C0 == 0) + { + if (a == -1 && gUnknown_0203CF1C->unk40BE == 0) + return -1; + if (a == 1 && gUnknown_0203CF1C->unk40BE >= gUnknown_0203CF1C->unk40BF) + return -1; + return gUnknown_0203CF1C->unk40BE + a; + } + else + { + s8 index = gUnknown_0203CF1C->unk40BE; + + do + { + index += a; + if (index < 0 || index > gUnknown_0203CF1C->unk40BF) + return -1; + } while (GetMonData(&mon[index], MON_DATA_IS_EGG) != 0); + return index; + } +} + +s8 sub_81C09B4(s8 a) +{ + struct Pokemon *mon = gUnknown_0203CF1C->unk0->mon; + s8 r5 = 0; + u8 i; + + for (i = 0; i < 6; i++) + { + if (gUnknown_0861CC1C[i] == gUnknown_0203CF1C->unk40BE) + { + r5 = i; + break; + } + } + + while (1) + { + int b; + s8* c = &gUnknown_0861CC1C[0]; + + r5 += a; + if (r5 < 0 || r5 >= 6) + return -1; + b = c[r5]; + if (sub_81C0A50(&mon[b]) == TRUE) + return b; + } +} + +bool8 sub_81C0A50(struct Pokemon* mon) +{ + if (GetMonData(mon, MON_DATA_SPECIES) == 0) + return FALSE; + else if (gUnknown_0203CF1C->unk40BE != 0 || GetMonData(mon, MON_DATA_IS_EGG) == 0) + return TRUE; + else + return FALSE; +} + +void sub_81C0A8C(u8 taskId, s8 b) +{ + struct PokeSummary *summary = &gUnknown_0203CF1C->summary; + s16 *data = gTasks[taskId].data; + + if (summary->isEgg) + return; + if (b == -1 && gUnknown_0203CF1C->unk40C0 == gUnknown_0203CF1C->unk40C1) + return; + if (b == 1 && gUnknown_0203CF1C->unk40C0 == gUnknown_0203CF1C->unk40C2) + return; + PlaySE(SE_SELECT); + sub_81C2C38(gUnknown_0203CF1C->unk40C0); + gUnknown_0203CF1C->unk40C0 += b; + data[0] = 0; + if (b == 1) + SetTaskFuncWithFollowupFunc(taskId, sub_81C0B8C, gTasks[taskId].func); + else + SetTaskFuncWithFollowupFunc(taskId, sub_81C0CC4, gTasks[taskId].func); + sub_81C2DE4(gUnknown_0203CF1C->unk40C0); + sub_81C424C(); +} + +void sub_81C0B8C(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (data[0] == 0) + { + if (gUnknown_0203CF1C->unk40C9 == 0) + { + data[1] = 1; + SetBgAttribute(1, 7, 1); + SetBgAttribute(2, 7, 2); + schedule_bg_copy_tilemap_to_vram(1); + } + else + { + data[1] = 2; + SetBgAttribute(2, 7, 1); + SetBgAttribute(1, 7, 2); + schedule_bg_copy_tilemap_to_vram(2); + } + ChangeBgX(data[1], 0, 0); + SetBgTilemapBuffer(data[1], (u8*)gUnknown_0203CF1C + ((gUnknown_0203CF1C->unk40C0 << 12) + 0xBC)); + ShowBg(1); + ShowBg(2); + } + ChangeBgX(data[1], 0x2000, 1); + data[0] += 32; + if (data[0] > 0xFF) + gTasks[taskId].func = sub_81C0C68; +} + +void sub_81C0C68(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + gUnknown_0203CF1C->unk40C9 ^= 1; + data[1] = 0; + data[0] = 0; + sub_81C1BA0(); + sub_81C2AFC(gUnknown_0203CF1C->unk40C0); + sub_81C4280(); + sub_81C0E24(); + SwitchTaskToFollowupFunc(taskId); +} + +void sub_81C0CC4(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (data[0] == 0) + { + if (gUnknown_0203CF1C->unk40C9 == 0) + data[1] = 2; + else + data[1] = 1; + ChangeBgX(data[1], 0x10000, 0); + } + ChangeBgX(data[1], 0x2000, 2); + data[0] += 32; + if (data[0] > 0xFF) + gTasks[taskId].func = sub_81C0D44; +} + +void sub_81C0D44(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (gUnknown_0203CF1C->unk40C9 == 0) + { + SetBgAttribute(1, 7, 1); + SetBgAttribute(2, 7, 2); + schedule_bg_copy_tilemap_to_vram(2); + } + else + { + SetBgAttribute(2, 7, 1); + SetBgAttribute(1, 7, 2); + schedule_bg_copy_tilemap_to_vram(1); + } + if (gUnknown_0203CF1C->unk40C0 > 1) + { + SetBgTilemapBuffer(data[1], (u8*)gUnknown_0203CF1C + ((gUnknown_0203CF1C->unk40C0 << 12) + 0xFFFFF0BC)); + ChangeBgX(data[1], 0x10000, 0); + } + ShowBg(1); + ShowBg(2); + gUnknown_0203CF1C->unk40C9 ^= 1; + data[1] = 0; + data[0] = 0; + sub_81C1BA0(); + sub_81C2AFC(gUnknown_0203CF1C->unk40C0); + sub_81C4280(); + sub_81C0E24(); + SwitchTaskToFollowupFunc(taskId); +} + +void sub_81C0E24() +{ + if (gUnknown_0203CF1C->unk40C0 == 1) + sub_81C22CC(&gUnknown_0203CF1C->currentMon); +} + +void sub_81C0E48(u8 taskId) +{ + u16 move; + gUnknown_0203CF1C->unk40C6 = 0; + move = gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->unk40C6]; + ClearWindowTilemap(0x13); + if (gSprites[gUnknown_0203CF1C->unk40D5].invisible == 0) + ClearWindowTilemap(0xD); + sub_81C1DA4(9, -3); + sub_81C1EFC(9, -3, move); + if (gUnknown_0203CF1C->unk40C8 == 0) + { + ClearWindowTilemap(5); + PutWindowTilemap(6); + } + sub_81C2194(&gUnknown_0203CF1C->unkTilemap2[0], 3, 0); + sub_81C2194(&gUnknown_0203CF1C->unkTilemap3[0], 1, 0); + sub_81C3E9C(move); + sub_81C3F44(); + sub_81C44F0(); + schedule_bg_copy_tilemap_to_vram(0); + schedule_bg_copy_tilemap_to_vram(1); + schedule_bg_copy_tilemap_to_vram(2); + sub_81C4AF8(8); + gTasks[taskId].func = sub_81C0F44; +} + +void sub_81C0F44(u8 taskId) +{ + u8 id = taskId; + s16 *data = gTasks[taskId].data; + + if (sub_81221EC() != 1) + { + if (gMain.newKeys & DPAD_UP) + { + data[0] = 4; + sub_81C1070(data, -1, &gUnknown_0203CF1C->unk40C6); + } + else if (gMain.newKeys & DPAD_DOWN) + { + data[0] = 4; + sub_81C1070(data, 1, &gUnknown_0203CF1C->unk40C6); + } + else if (gMain.newKeys & A_BUTTON) + { + if (gUnknown_0203CF1C->unk40C8 == 1 + || (gUnknown_0203CF1C->unk40C4 == 0 && gUnknown_0203CF1C->unk40C6 == 4)) + { + PlaySE(SE_SELECT); + sub_81C11F4(taskId); + } + else if (sub_81C1040() == TRUE) + { + PlaySE(SE_SELECT); + sub_81C129C(taskId); + } + else + { + PlaySE(SE_HAZURE); + } + } + else if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + sub_81C11F4(id); + } + } +} + +bool8 sub_81C1040(void) +{ + u8 i; + for (i = 1; i < 4; i++) + { + if (gUnknown_0203CF1C->summary.moves[i] != 0) + return TRUE; + } + return FALSE; +} + +void sub_81C1070(s16 *a, s8 b, u8 *c) +{ + s8 i; + s8 moveIndex; + u16 move; + + PlaySE(SE_SELECT); + moveIndex = *c; + for (i = 0; i < 4; i++) + { + moveIndex += b; + if (moveIndex > a[0]) + moveIndex = 0; + else if (moveIndex < 0) + moveIndex = a[0]; + if (moveIndex == 4) + { + move = gUnknown_0203CF1C->unk40C4; + break; + } + move = gUnknown_0203CF1C->summary.moves[moveIndex]; + if (move != 0) + break; + } + sub_81C240C(move); + schedule_bg_copy_tilemap_to_vram(1); + schedule_bg_copy_tilemap_to_vram(2); + sub_81C3E9C(move); + if ((*c == 4 && gUnknown_0203CF1C->unk40C4 == 0) || a[1] == 1) + { + ClearWindowTilemap(19); + if (!gSprites[gUnknown_0203CF1C->unk40D5].invisible) + ClearWindowTilemap(13); + schedule_bg_copy_tilemap_to_vram(0); + sub_81C1DA4(9, -3); + sub_81C1EFC(9, -3, move); + } + if (*c != 4 && moveIndex == 4 && gUnknown_0203CF1C->unk40C4 == 0) + { + ClearWindowTilemap(14); + ClearWindowTilemap(15); + schedule_bg_copy_tilemap_to_vram(0); + sub_81C1DA4(0, 3); + sub_81C1EFC(0, 3, 0); + } + *c = moveIndex; + if (c == &gUnknown_0203CF1C->unk40C6) + sub_81C4D18(8); + else + sub_81C4D18(18); +} + +void sub_81C11F4(u8 taskId) +{ + sub_81C4C60(8); + ClearWindowTilemap(6); + PutWindowTilemap(5); + sub_81C3E9C(0); + sub_81C2194(&gUnknown_0203CF1C->unkTilemap2[0], 3, 1); + sub_81C2194(&gUnknown_0203CF1C->unkTilemap3[0], 1, 1); + sub_81C4064(); + if (gUnknown_0203CF1C->unk40C6 != 4) + { + ClearWindowTilemap(14); + ClearWindowTilemap(15); + sub_81C1DA4(0, 3); + sub_81C1EFC(0, 3, 0); + } + schedule_bg_copy_tilemap_to_vram(0); + schedule_bg_copy_tilemap_to_vram(1); + schedule_bg_copy_tilemap_to_vram(2); + gTasks[taskId].func = sub_81C0510; +} + +void sub_81C129C(u8 taskId) +{ + gUnknown_0203CF1C->unk40C7 = gUnknown_0203CF1C->unk40C6; + sub_81C4C84(1); + sub_81C4AF8(18); + gTasks[taskId].func = sub_81C12E4; +} + +void sub_81C12E4(u8 taskId) +{ + u8 a = taskId; + s16* data = gTasks[taskId].data; + if (sub_81221EC() != 1) + { + if (gMain.newKeys & DPAD_UP) + { + data[0] = 3; + sub_81C1070(&data[0], -1, &gUnknown_0203CF1C->unk40C7); + } + else if (gMain.newKeys & DPAD_DOWN) + { + data[0] = 3; + sub_81C1070(&data[0], 1, &gUnknown_0203CF1C->unk40C7); + } + else if (gMain.newKeys & A_BUTTON) + { + if (gUnknown_0203CF1C->unk40C6 == gUnknown_0203CF1C->unk40C7) + { + sub_81C13B0(taskId, 0); + } + else + sub_81C13B0(taskId, 1); + } + else if (gMain.newKeys & B_BUTTON) + sub_81C13B0(a, 0); + } +} + +void sub_81C13B0(u8 taskId, u8 b) +{ + u16 move; + PlaySE(SE_SELECT); + sub_81C4C84(0); + sub_81C4C60(18); + if (b == 1) + { + if (gUnknown_0203CF1C->unk40BD == 0) + { + struct Pokemon *why = gUnknown_0203CF1C->unk0->mon; + sub_81C14BC(&why[gUnknown_0203CF1C->unk40BE], gUnknown_0203CF1C->unk40C6, gUnknown_0203CF1C->unk40C7); + } + else + { + struct BoxPokemon *why = gUnknown_0203CF1C->unk0->boxMon; + sub_81C15EC(&why[gUnknown_0203CF1C->unk40BE], gUnknown_0203CF1C->unk40C6, gUnknown_0203CF1C->unk40C7); + } + sub_81C0098(&gUnknown_0203CF1C->currentMon); + sub_81C40A0(gUnknown_0203CF1C->unk40C6, gUnknown_0203CF1C->unk40C7); + sub_81C4568(gUnknown_0203CF1C->unk40C6, gUnknown_0203CF1C->unk40C7); + gUnknown_0203CF1C->unk40C6 = gUnknown_0203CF1C->unk40C7; + } + move = gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->unk40C6]; + sub_81C3E9C(move); + sub_81C240C(move); + schedule_bg_copy_tilemap_to_vram(1); + schedule_bg_copy_tilemap_to_vram(2); + gTasks[taskId].func = sub_81C0F44; +} + + +#ifdef NONMATCHING +void sub_81C14BC(struct Pokemon *mon, u8 swappingFromId, u8 swappingToId) +{ + u16 localMoveTo; + u16 localMoveFrom; + u8 localPpTo; + u8 localPpFrom; + u8 localPpBonuses; + u16* moveFromPtr; + u16* moveToPtr; + u8* ppFromPtr; + u8* ppToPtr; + u8* ppBonusesPtr; + + moveFromPtr = &gUnknown_0203CF1C->summary.moves[swappingFromId]; + localMoveFrom = *moveFromPtr; + + moveToPtr = &gUnknown_0203CF1C->summary.moves[swappingToId]; + localMoveTo = *moveToPtr; + + ppFromPtr = &gUnknown_0203CF1C->summary.pp[swappingFromId]; + localPpFrom = *ppFromPtr; + + ppToPtr = &gUnknown_0203CF1C->summary.pp[swappingToId]; + localPpTo = *ppToPtr; + + ppBonusesPtr = &gUnknown_0203CF1C->summary.ppBonuses; + localPpBonuses = *ppBonusesPtr; + +{ + u8 bitsFrom, bitsTo; + + bitsFrom = (localPpBonuses & gUnknown_08329D22[swappingFromId]) >> (swappingFromId << 1); + bitsTo = (localPpBonuses & gUnknown_08329D22[swappingToId]) >> (swappingToId << 1); + + + localPpBonuses &= ~(gUnknown_08329D22[swappingFromId]); + localPpBonuses &= ~(gUnknown_08329D22[swappingToId]); + + localPpBonuses |= ((bitsFrom << (swappingToId << 1)) + (bitsTo << (swappingToId << 1))); +} + + SetMonData(mon, swappingFromId + MON_DATA_MOVE1, &localMoveTo); + SetMonData(mon, swappingToId + MON_DATA_MOVE1, &localMoveFrom); + + SetMonData(mon, swappingFromId + MON_DATA_PP1, &localPpTo); + SetMonData(mon, swappingToId + MON_DATA_PP1, &localPpFrom); + + SetMonData(mon, MON_DATA_PP_BONUSES, &localPpBonuses); + + *moveFromPtr = localMoveTo; + *moveToPtr = localMoveFrom; + + *ppFromPtr = localPpTo; + *ppToPtr = localPpFrom; + + *ppBonusesPtr = localPpBonuses; +} +#else +__attribute__((naked)) +void sub_81C14BC(struct Pokemon *mon, u8 swappingFromId, u8 swappingToId) +{ + 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\ + sub sp, 0x28\n\ + adds r7, r0, 0\n\ + adds r4, r1, 0\n\ + adds r6, r2, 0\n\ + lsls r4, 24\n\ + lsrs r4, 24\n\ + lsls r6, 24\n\ + lsrs r6, 24\n\ + ldr r0, =gUnknown_0203CF1C\n\ + ldr r2, [r0]\n\ + lsls r0, r4, 1\n\ + mov r10, r0\n\ + adds r1, r2, 0\n\ + adds r1, 0x84\n\ + adds r0, r1, r0\n\ + str r0, [sp, 0x8]\n\ + ldrh r0, [r0]\n\ + mov r3, sp\n\ + adds r3, 0x2\n\ + str r3, [sp, 0x1C]\n\ + strh r0, [r3]\n\ + lsls r0, r6, 1\n\ + mov r9, r0\n\ + add r1, r9\n\ + str r1, [sp, 0xC]\n\ + ldrh r1, [r1]\n\ + mov r0, sp\n\ + strh r1, [r0]\n\ + adds r1, r2, 0\n\ + adds r1, 0x8C\n\ + adds r3, r1, r4\n\ + str r3, [sp, 0x10]\n\ + ldrb r0, [r3]\n\ + mov r3, sp\n\ + adds r3, 0x5\n\ + str r3, [sp, 0x24]\n\ + strb r0, [r3]\n\ + adds r1, r6\n\ + str r1, [sp, 0x14]\n\ + ldrb r0, [r1]\n\ + mov r1, sp\n\ + adds r1, 0x4\n\ + str r1, [sp, 0x20]\n\ + strb r0, [r1]\n\ + adds r2, 0xA4\n\ + str r2, [sp, 0x18]\n\ + ldrb r0, [r2]\n\ + mov r5, sp\n\ + adds r5, 0x6\n\ + strb r0, [r5]\n\ + ldr r1, =gUnknown_08329D22\n\ + adds r0, r4, r1\n\ + ldrb r0, [r0]\n\ + mov r8, r0\n\ + ldrb r0, [r5]\n\ + adds r2, r0, 0\n\ + mov r3, r8\n\ + ands r2, r3\n\ + mov r3, r10\n\ + asrs r2, r3\n\ + lsls r2, 24\n\ + lsrs r2, 24\n\ + adds r1, r6, r1\n\ + ldrb r1, [r1]\n\ + mov r12, r1\n\ + adds r1, r0, 0\n\ + mov r3, r12\n\ + ands r1, r3\n\ + mov r3, r9\n\ + asrs r1, r3\n\ + lsls r1, 24\n\ + lsrs r1, 24\n\ + mov r3, r8\n\ + bics r0, r3\n\ + strb r0, [r5]\n\ + ldrb r0, [r5]\n\ + mov r3, r12\n\ + bics r0, r3\n\ + strb r0, [r5]\n\ + mov r0, r9\n\ + lsls r2, r0\n\ + mov r3, r10\n\ + lsls r1, r3\n\ + adds r2, r1\n\ + ldrb r0, [r5]\n\ + orrs r0, r2\n\ + strb r0, [r5]\n\ + adds r1, r4, 0\n\ + adds r1, 0xD\n\ + adds r0, r7, 0\n\ + mov r2, sp\n\ + bl SetMonData\n\ + adds r1, r6, 0\n\ + adds r1, 0xD\n\ + adds r0, r7, 0\n\ + ldr r2, [sp, 0x1C]\n\ + bl SetMonData\n\ + adds r4, 0x11\n\ + adds r0, r7, 0\n\ + adds r1, r4, 0\n\ + ldr r2, [sp, 0x20]\n\ + bl SetMonData\n\ + adds r6, 0x11\n\ + adds r0, r7, 0\n\ + adds r1, r6, 0\n\ + ldr r2, [sp, 0x24]\n\ + bl SetMonData\n\ + adds r0, r7, 0\n\ + movs r1, 0x15\n\ + adds r2, r5, 0\n\ + bl SetMonData\n\ + mov r0, sp\n\ + ldrh r0, [r0]\n\ + ldr r1, [sp, 0x8]\n\ + strh r0, [r1]\n\ + ldr r3, [sp, 0x1C]\n\ + ldrh r0, [r3]\n\ + ldr r1, [sp, 0xC]\n\ + strh r0, [r1]\n\ + ldr r3, [sp, 0x20]\n\ + ldrb r0, [r3]\n\ + ldr r1, [sp, 0x10]\n\ + strb r0, [r1]\n\ + ldr r3, [sp, 0x24]\n\ + ldrb r0, [r3]\n\ + ldr r1, [sp, 0x14]\n\ + strb r0, [r1]\n\ + ldrb r0, [r5]\n\ + ldr r3, [sp, 0x18]\n\ + strb r0, [r3]\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 {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided\n"); +} +#endif + +#ifdef NONMATCHING +void sub_81C15EC(struct BoxPokemon *mon, u8 swappingFromId, u8 swappingToId) +{ + u16 localMoveTo; + u16 localMoveFrom; + u8 localPpTo; + u8 localPpFrom; + u8 localPpBonuses; + u16* moveFromPtr; + u16* moveToPtr; + u8* ppFromPtr; + u8* ppToPtr; + u8* ppBonusesPtr; + + moveFromPtr = &gUnknown_0203CF1C->summary.moves[swappingFromId]; + localMoveFrom = *moveFromPtr; + + moveToPtr = &gUnknown_0203CF1C->summary.moves[swappingToId]; + localMoveTo = *moveToPtr; + + ppFromPtr = &gUnknown_0203CF1C->summary.pp[swappingFromId]; + localPpFrom = *ppFromPtr; + + ppToPtr = &gUnknown_0203CF1C->summary.pp[swappingToId]; + localPpTo = *ppToPtr; + + ppBonusesPtr = &gUnknown_0203CF1C->summary.ppBonuses; + localPpBonuses = *ppBonusesPtr; + +{ + u8 bitsFrom, bitsTo; + + bitsFrom = (localPpBonuses & gUnknown_08329D22[swappingFromId]) >> (swappingFromId << 1); + bitsTo = (localPpBonuses & gUnknown_08329D22[swappingToId]) >> (swappingToId << 1); + + + localPpBonuses &= ~(gUnknown_08329D22[swappingFromId]); + localPpBonuses &= ~(gUnknown_08329D22[swappingToId]); + + localPpBonuses |= ((bitsFrom << (swappingToId << 1)) + (bitsTo << (swappingToId << 1))); +} + + SetBoxMonData(mon, swappingFromId + MON_DATA_MOVE1, &localMoveTo); + SetBoxMonData(mon, swappingToId + MON_DATA_MOVE1, &localMoveFrom); + + SetBoxMonData(mon, swappingFromId + MON_DATA_PP1, &localPpTo); + SetBoxMonData(mon, swappingToId + MON_DATA_PP1, &localPpFrom); + + SetBoxMonData(mon, MON_DATA_PP_BONUSES, &localPpBonuses); + + *moveFromPtr = localMoveTo; + *moveToPtr = localMoveFrom; + + *ppFromPtr = localPpTo; + *ppToPtr = localPpFrom; + + *ppBonusesPtr = localPpBonuses; +} +#else +__attribute__((naked)) +void sub_81C15EC(struct BoxPokemon *mon, u8 swappingFromId, u8 swappingToId) +{ + 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\ + sub sp, 0x28\n\ + adds r7, r0, 0\n\ + adds r4, r1, 0\n\ + adds r6, r2, 0\n\ + lsls r4, 24\n\ + lsrs r4, 24\n\ + lsls r6, 24\n\ + lsrs r6, 24\n\ + ldr r0, =gUnknown_0203CF1C\n\ + ldr r2, [r0]\n\ + lsls r0, r4, 1\n\ + mov r10, r0\n\ + adds r1, r2, 0\n\ + adds r1, 0x84\n\ + adds r0, r1, r0\n\ + str r0, [sp, 0x8]\n\ + ldrh r0, [r0]\n\ + mov r3, sp\n\ + adds r3, 0x2\n\ + str r3, [sp, 0x1C]\n\ + strh r0, [r3]\n\ + lsls r0, r6, 1\n\ + mov r9, r0\n\ + add r1, r9\n\ + str r1, [sp, 0xC]\n\ + ldrh r1, [r1]\n\ + mov r0, sp\n\ + strh r1, [r0]\n\ + adds r1, r2, 0\n\ + adds r1, 0x8C\n\ + adds r3, r1, r4\n\ + str r3, [sp, 0x10]\n\ + ldrb r0, [r3]\n\ + mov r3, sp\n\ + adds r3, 0x5\n\ + str r3, [sp, 0x24]\n\ + strb r0, [r3]\n\ + adds r1, r6\n\ + str r1, [sp, 0x14]\n\ + ldrb r0, [r1]\n\ + mov r1, sp\n\ + adds r1, 0x4\n\ + str r1, [sp, 0x20]\n\ + strb r0, [r1]\n\ + adds r2, 0xA4\n\ + str r2, [sp, 0x18]\n\ + ldrb r0, [r2]\n\ + mov r5, sp\n\ + adds r5, 0x6\n\ + strb r0, [r5]\n\ + ldr r1, =gUnknown_08329D22\n\ + adds r0, r4, r1\n\ + ldrb r0, [r0]\n\ + mov r8, r0\n\ + ldrb r0, [r5]\n\ + adds r2, r0, 0\n\ + mov r3, r8\n\ + ands r2, r3\n\ + mov r3, r10\n\ + asrs r2, r3\n\ + lsls r2, 24\n\ + lsrs r2, 24\n\ + adds r1, r6, r1\n\ + ldrb r1, [r1]\n\ + mov r12, r1\n\ + adds r1, r0, 0\n\ + mov r3, r12\n\ + ands r1, r3\n\ + mov r3, r9\n\ + asrs r1, r3\n\ + lsls r1, 24\n\ + lsrs r1, 24\n\ + mov r3, r8\n\ + bics r0, r3\n\ + strb r0, [r5]\n\ + ldrb r0, [r5]\n\ + mov r3, r12\n\ + bics r0, r3\n\ + strb r0, [r5]\n\ + mov r0, r9\n\ + lsls r2, r0\n\ + mov r3, r10\n\ + lsls r1, r3\n\ + adds r2, r1\n\ + ldrb r0, [r5]\n\ + orrs r0, r2\n\ + strb r0, [r5]\n\ + adds r1, r4, 0\n\ + adds r1, 0xD\n\ + adds r0, r7, 0\n\ + mov r2, sp\n\ + bl SetBoxMonData\n\ + adds r1, r6, 0\n\ + adds r1, 0xD\n\ + adds r0, r7, 0\n\ + ldr r2, [sp, 0x1C]\n\ + bl SetBoxMonData\n\ + adds r4, 0x11\n\ + adds r0, r7, 0\n\ + adds r1, r4, 0\n\ + ldr r2, [sp, 0x20]\n\ + bl SetBoxMonData\n\ + adds r6, 0x11\n\ + adds r0, r7, 0\n\ + adds r1, r6, 0\n\ + ldr r2, [sp, 0x24]\n\ + bl SetBoxMonData\n\ + adds r0, r7, 0\n\ + movs r1, 0x15\n\ + adds r2, r5, 0\n\ + bl SetBoxMonData\n\ + mov r0, sp\n\ + ldrh r0, [r0]\n\ + ldr r1, [sp, 0x8]\n\ + strh r0, [r1]\n\ + ldr r3, [sp, 0x1C]\n\ + ldrh r0, [r3]\n\ + ldr r1, [sp, 0xC]\n\ + strh r0, [r1]\n\ + ldr r3, [sp, 0x20]\n\ + ldrb r0, [r3]\n\ + ldr r1, [sp, 0x10]\n\ + strb r0, [r1]\n\ + ldr r3, [sp, 0x24]\n\ + ldrb r0, [r3]\n\ + ldr r1, [sp, 0x14]\n\ + strb r0, [r1]\n\ + ldrb r0, [r5]\n\ + ldr r3, [sp, 0x18]\n\ + strb r0, [r3]\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 {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided\n"); +} +#endif + +void sub_81C171C(u8 taskId) +{ + sub_81C44F0(); + sub_81C4AF8(8); + gTasks[taskId].func = sub_81C174C; +} + +void sub_81C174C(u8 taskId) +{ + s16* data = gTasks[taskId].data; + + if (sub_81221EC() != 1) + { + if (gPaletteFade.active != 1) + { + if (gMain.newKeys & DPAD_UP) + { + data[0] = 4; + sub_81C1070(data, -1, &gUnknown_0203CF1C->unk40C6); + } + else if (gMain.newKeys & DPAD_DOWN) + { + data[0] = 4; + sub_81C1070(data, 1, &gUnknown_0203CF1C->unk40C6); + } + else if (gMain.newKeys & DPAD_LEFT || GetLRKeysState() == 1) + { + sub_81C0A8C(taskId, -1); + } + else if (gMain.newKeys & DPAD_RIGHT || GetLRKeysState() == 2) + { + sub_81C0A8C(taskId, 1); + } + else if (gMain.newKeys & A_BUTTON) + { + if (sub_81C18A8() == TRUE) + { + sub_81C48F0(); + PlaySE(SE_SELECT); + gUnknown_0203CF21 = gUnknown_0203CF1C->unk40C6; + gSpecialVar_0x8005 = gUnknown_0203CF21; + sub_81C044C(taskId); + } + else + { + PlaySE(0x20); + sub_81C18F4(taskId); + } + } + else if (gMain.newKeys & B_BUTTON) + { + u32 var1; + sub_81C48F0(); + PlaySE(SE_SELECT); + gUnknown_0203CF21 = 4; + gSpecialVar_0x8005 = 4; + sub_81C044C(taskId); + } + } + } +} + +bool8 sub_81C18A8() +{ + if (gUnknown_0203CF1C->unk40C6 == 4 || gUnknown_0203CF1C->unk40C4 == 0 || sub_81B6D14(gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->unk40C6]) != 1) + return TRUE; + else + return FALSE; +} + +void sub_81C18F4(u8 taskId) +{ + ClearWindowTilemap(14); + ClearWindowTilemap(15); + schedule_bg_copy_tilemap_to_vram(0); + sub_81C1DA4(0, 3); + sub_81C1EFC(0, 3, 0); + sub_81C4154(); + gTasks[taskId].func = sub_81C1940; +} + +void sub_81C1940(u8 taskId) +{ + s16* data = gTasks[taskId].data; + u16 move; + if (FuncIsActiveTask(sub_81C1E20) != 1) + { + if (gMain.newKeys & DPAD_UP) + { + data[1] = 1; + data[0] = 4; + sub_81C1070(&data[0], -1, &gUnknown_0203CF1C->unk40C6); + data[1] = 0; + gTasks[taskId].func = sub_81C174C; + } + else if (gMain.newKeys & DPAD_DOWN) + { + data[1] = 1; + data[0] = 4; + sub_81C1070(&data[0], 1, &gUnknown_0203CF1C->unk40C6); + data[1] = 0; + gTasks[taskId].func = sub_81C174C; + } + else if (gMain.newKeys & DPAD_LEFT || GetLRKeysState() == 1) + { + if (gUnknown_0203CF1C->unk40C0 != 2) + { + + ClearWindowTilemap(19); + if (!gSprites[gUnknown_0203CF1C->unk40D5].invisible) + ClearWindowTilemap(13); + move = gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->unk40C6]; + gTasks[taskId].func = sub_81C174C; + sub_81C0A8C(taskId, -1); + sub_81C1DA4(9, -2); + sub_81C1EFC(9, -2, move); + } + } + else if (gMain.newKeys & DPAD_RIGHT || GetLRKeysState() == 2) + { + if (gUnknown_0203CF1C->unk40C0 != 3) + { + ClearWindowTilemap(19); + if (!gSprites[gUnknown_0203CF1C->unk40D5].invisible) + ClearWindowTilemap(13); + move = gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->unk40C6]; + gTasks[taskId].func = sub_81C174C; + sub_81C0A8C(taskId, 1); + sub_81C1DA4(9, -2); + sub_81C1EFC(9, -2, move); + } + } + else if (gMain.newKeys & (A_BUTTON | B_BUTTON)) + { + ClearWindowTilemap(19); + if (!gSprites[gUnknown_0203CF1C->unk40D5].invisible) + ClearWindowTilemap(13); + move = gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->unk40C6]; + sub_81C3E9C(move); + schedule_bg_copy_tilemap_to_vram(0); + sub_81C1DA4(9, -3); + sub_81C1EFC(9, -3, move); + gTasks[taskId].func = sub_81C174C; + } + } +} + +u8 sub_81C1B94() +{ + return gUnknown_0203CF21; +} + +void sub_81C1BA0() +{ + u16 *alloced = Alloc(32); + u8 i; + for (i = 0; i < 4; i++) + { + u8 j = i << 1; + if (i < gUnknown_0203CF1C->unk40C1) + { + alloced[j+0] = 0x40; + alloced[j+1] = 0x40; + alloced[j+8] = 0x50; + alloced[j+9] = 0x50; + } + else if (i > gUnknown_0203CF1C->unk40C2) + { + alloced[j+0] = 0x4A; + alloced[j+1] = 0x4A; + alloced[j+8] = 0x5A; + alloced[j+9] = 0x5A; + } + else if (i < gUnknown_0203CF1C->unk40C0) + { + alloced[j+0] = 0x46; + alloced[j+1] = 0x47; + alloced[j+8] = 0x56; + alloced[j+9] = 0x57; + } + else if (i == gUnknown_0203CF1C->unk40C0) + { + if (i != gUnknown_0203CF1C->unk40C2) + { + alloced[j+0] = 0x41; + alloced[j+1] = 0x42; + alloced[j+8] = 0x51; + alloced[j+9] = 0x52; + } + else + { + alloced[j+0] = 0x4B; + alloced[j+1] = 0x4C; + alloced[j+8] = 0x5B; + alloced[j+9] = 0x5C; + } + } + else if (i != gUnknown_0203CF1C->unk40C2) + { + alloced[j+0] = 0x43; + alloced[j+1] = 0x44; + alloced[j+8] = 0x53; + alloced[j+9] = 0x54; + } + else + { + alloced[j+0] = 0x48; + alloced[j+1] = 0x49; + alloced[j+8] = 0x58; + alloced[j+9] = 0x59; + } + } + CopyToBgTilemapBufferRect_ChangePalette(3, alloced, 11, 0, 8, 2, 16); + schedule_bg_copy_tilemap_to_vram(3); + Free(alloced); +} + +struct UnkStruct_61CC04 +{ + u8 *ptr; + u8 field_4; + u8 field_5; + u8 field_6; + u8 field_7; + u8 field_8; + u8 field_9; +}; + +#ifdef NONMATCHING +void sub_81C1CB0(struct UnkStruct_61CC04 *a, u16 *b, u8 c, u8 d) +{ + u8 *alloced = Alloc(a->field_6 * (a->field_7 << 1)); + CpuFill16(a->field_4, alloced, a->field_7*a->field_6); + if (a->field_6 != c) + { + if (!d) + { + for (d;d < a->field_7; d++) + { + CpuCopy16(&a->ptr + ((c + a->field_6*d)), alloced + ((a->field_6*d) << 1), (a->field_6 - c) * 2); + } + } + else + { + for (d = 0;d < a->field_7; d++) + { + CpuCopy16(&a->ptr + (a->field_6*d), alloced + ((c + a->field_6*d) << 1), (a->field_6 - c) * 2); + } + } + } + d = 0; + while (d < a->field_7) + { + CpuCopy16(alloced + ((a->field_6*d) << 1), b + ((((a->field_9 + d) << 5) + a->field_8) << 1), a->field_6 * 2); + d++; + } + Free(alloced); +} +#else +__attribute__((naked)) +void sub_81C1CB0(struct UnkStruct_61CC04 *a, u16 *b, u8 c, u8 d) +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r8\n\ + push {r7}\n\ + sub sp, 0x4\n\ + adds r4, r0, 0\n\ + mov r8, r1\n\ + lsls r2, 24\n\ + lsrs r6, r2, 24\n\ + lsls r3, 24\n\ + lsrs r5, r3, 24\n\ + ldrb r1, [r4, 0x6]\n\ + ldrb r0, [r4, 0x7]\n\ + lsls r0, 1\n\ + muls r0, r1\n\ + bl Alloc\n\ + adds r7, r0, 0\n\ + mov r1, sp\n\ + ldrh r0, [r4, 0x4]\n\ + strh r0, [r1]\n\ + ldrb r1, [r4, 0x7]\n\ + ldrb r0, [r4, 0x6]\n\ + adds r2, r1, 0\n\ + muls r2, r0\n\ + movs r0, 0x80\n\ + lsls r0, 17\n\ + orrs r2, r0\n\ + mov r0, sp\n\ + adds r1, r7, 0\n\ + bl CpuSet\n\ + ldrb r0, [r4, 0x6]\n\ + cmp r0, r6\n\ + beq _081C1D60\n\ + cmp r5, 0\n\ + bne _081C1D30\n\ + movs r5, 0\n\ + ldrb r0, [r4, 0x7]\n\ + cmp r5, r0\n\ + bcs _081C1D60\n\ +_081C1D00:\n\ + ldrb r2, [r4, 0x6]\n\ + adds r1, r2, 0\n\ + muls r1, r5\n\ + adds r3, r6, r1\n\ + lsls r3, 1\n\ + ldr r0, [r4]\n\ + adds r0, r3\n\ + lsls r1, 1\n\ + adds r1, r7, r1\n\ + subs r2, r6\n\ + ldr r3, =0x001fffff\n\ + ands r2, r3\n\ + bl CpuSet\n\ + adds r0, r5, 0x1\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + ldrb r3, [r4, 0x7]\n\ + cmp r5, r3\n\ + bcc _081C1D00\n\ + b _081C1D60\n\ + .pool\n\ +_081C1D30:\n\ + movs r5, 0\n\ + ldrb r0, [r4, 0x7]\n\ + cmp r5, r0\n\ + bcs _081C1D60\n\ +_081C1D38:\n\ + ldrb r2, [r4, 0x6]\n\ + adds r1, r2, 0\n\ + muls r1, r5\n\ + lsls r3, r1, 1\n\ + ldr r0, [r4]\n\ + adds r0, r3\n\ + adds r1, r6, r1\n\ + lsls r1, 1\n\ + adds r1, r7, r1\n\ + subs r2, r6\n\ + ldr r3, =0x001fffff\n\ + ands r2, r3\n\ + bl CpuSet\n\ + adds r0, r5, 0x1\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + ldrb r3, [r4, 0x7]\n\ + cmp r5, r3\n\ + bcc _081C1D38\n\ +_081C1D60:\n\ + movs r5, 0\n\ + b _081C1D8A\n\ + .pool\n\ +_081C1D68:\n\ + ldrb r2, [r4, 0x6]\n\ + adds r0, r2, 0\n\ + muls r0, r5\n\ + lsls r0, 1\n\ + adds r0, r7, r0\n\ + ldrb r1, [r4, 0x9]\n\ + adds r1, r5\n\ + lsls r1, 5\n\ + ldrb r3, [r4, 0x8]\n\ + adds r1, r3\n\ + lsls r1, 1\n\ + add r1, r8\n\ + bl CpuSet\n\ + adds r0, r5, 0x1\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ +_081C1D8A:\n\ + ldrb r0, [r4, 0x7]\n\ + cmp r5, r0\n\ + bcc _081C1D68\n\ + adds r0, r7, 0\n\ + bl Free\n\ + add sp, 0x4\n\ + pop {r3}\n\ + mov r8, r3\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .syntax divided\n"); +} +#endif + +void sub_81C1DA4(u16 a, s16 b) +{ + if (b > gUnknown_0861CC04.field_6) + b = gUnknown_0861CC04.field_6; + if (b == 0 || b == gUnknown_0861CC04.field_6) + { + sub_81C1CB0(&gUnknown_0861CC04, &gUnknown_0203CF1C->unkTilemap2[0], b, 1); + } + else + { + u8 taskId = FindTaskIdByFunc(sub_81C1E20); + if (taskId == 0xFF) + { + taskId = CreateTask(sub_81C1E20, 8); + } + gTasks[taskId].data[0] = b; + gTasks[taskId].data[1] = a; + } +} + +void sub_81C1E20(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + data[1] += data[0]; + if (data[1] < 0) + { + data[1] = 0; + } + else if (data[1] > gUnknown_0861CC04.field_6) + { + data[1] = gUnknown_0861CC04.field_6; + } + sub_81C1CB0(&gUnknown_0861CC04, &gUnknown_0203CF1C->unkTilemap2[0], data[1], 1); + if (data[1] <= 0 || data[1] >= gUnknown_0861CC04.field_6) + { + if (data[0] < 0) + { + if (gUnknown_0203CF1C->unk40C0 == 2) + PutWindowTilemap(14); + + } + else + { + if (!gSprites[gUnknown_0203CF1C->unk40D5].invisible) + PutWindowTilemap(13); + PutWindowTilemap(19); + } + schedule_bg_copy_tilemap_to_vram(0); + DestroyTask(taskId); + } + schedule_bg_copy_tilemap_to_vram(1); + schedule_bg_copy_tilemap_to_vram(2); +} + +void sub_81C1EFC(u16 a, s16 b, u16 move) +{ + if (b > gUnknown_0861CC10.field_6) + b = gUnknown_0861CC10.field_6; + if (b == 0 || b == gUnknown_0861CC10.field_6) + sub_81C1CB0(&gUnknown_0861CC10, &gUnknown_0203CF1C->unkTilemap3[0], b, 1); + else + { + u8 taskId = FindTaskIdByFunc(sub_81C1F80); + if (taskId == 0xFF) + taskId = CreateTask(sub_81C1F80, 8); + gTasks[taskId].data[0] = b; + gTasks[taskId].data[1] = a; + gTasks[taskId].data[2] = move; + } +} + +void sub_81C1F80(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + data[1] += data[0]; + if (data[1] < 0) + { + data[1] = 0; + } + else if (data[1] > gUnknown_0861CC10.field_6) + { + data[1] = gUnknown_0861CC10.field_6; + } + sub_81C1CB0(&gUnknown_0861CC10, &gUnknown_0203CF1C->unkTilemap3[0], data[1], 1); + if (data[1] <= 0 || data[1] >= gUnknown_0861CC10.field_6) + { + if (data[0] < 0) + { + if (gUnknown_0203CF1C->unk40C0 == 3 && FuncIsActiveTask(sub_81C0B8C) == 0) + PutWindowTilemap(15); + sub_81C240C(data[2]); + } + else + { + if (!gSprites[gUnknown_0203CF1C->unk40D5].invisible) + { + PutWindowTilemap(13); + } + PutWindowTilemap(19); + } + schedule_bg_copy_tilemap_to_vram(0); + DestroyTask(taskId); + } + schedule_bg_copy_tilemap_to_vram(1); + schedule_bg_copy_tilemap_to_vram(2); +} + +void sub_81C2074(u16 a, s16 b) +{ + if (b > gUnknown_0861CBEC.field_6) + b = gUnknown_0861CBEC.field_6; + if (b == 0 || b == gUnknown_0861CBEC.field_6) + { + sub_81C1CB0(&gUnknown_0861CBEC, &gUnknown_0203CF1C->unkTilemap0[0], b, 0); + sub_81C1CB0(&gUnknown_0861CBF8, &gUnknown_0203CF1C->unkTilemap0[0], b, 0); + } + else + { + u8 taskId = CreateTask(sub_81C20F0, 8); + gTasks[taskId].data[0] = b; + gTasks[taskId].data[1] = a; + } +} + +void sub_81C20F0(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + data[1] += data[0]; + if (data[1] < 0) + data[1] = 0; + else if (data[1] > gUnknown_0861CBEC.field_6) + data[1] = gUnknown_0861CBEC.field_6; + sub_81C1CB0(&gUnknown_0861CBEC, &gUnknown_0203CF1C->unkTilemap0[0], data[1], 0); + sub_81C1CB0(&gUnknown_0861CBF8, &gUnknown_0203CF1C->unkTilemap0[0], data[1], 0); + schedule_bg_copy_tilemap_to_vram(3); + if (data[1] <= 0 || data[1] >= gUnknown_0861CBEC.field_6) + { + if (data[0] < 0) + { + sub_81C4A88(); + PutWindowTilemap(13); + schedule_bg_copy_tilemap_to_vram(0); + } + DestroyTask(taskId); + } +} + +// somebody send help this is a complete fucking mess +#ifdef NONMATCHING +void sub_81C2194(u16 *a, u16 b, u8 c) +{ + u16 i; + int var; + b *= 0x1000; + var = 0x56A; + + if (c == 0) + { + for (i = 0; i < 20; i++) + { + a[(i + var) << 1] = gUnknown_08DC3CD4[i] + b; + a[((i + var) << 1) + 0x40] = gUnknown_08DC3CD4[i] + b; + a[((i + var) << 1) + 0x80] = gUnknown_08DC3CD4[i + 20] + b; + } + } + else + { + for (i = 0; i < 20; i++) + { + a[(i + var)] = gUnknown_08DC3CD4[i + 20] + b; + a[((i + var)) + 0x40] = gUnknown_08DC3CD4[i + 40] + b; + a[((i + var)) + 0x80] = gUnknown_08DC3CD4[i + 40] + b; + } + } +} +#else +__attribute__((naked)) +void sub_81C2194(u16 *a, u16 b, u8 c) +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + adds r6, r0, 0\n\ + lsls r2, 24\n\ + lsls r1, 28\n\ + lsrs r4, r1, 16\n\ + ldr r7, =0x0000056a\n\ + cmp r2, 0\n\ + bne _081C21E4\n\ + movs r3, 0\n\ + ldr r5, =gUnknown_08DC3CD4\n\ +_081C21A8:\n\ + adds r2, r7, r3\n\ + lsls r2, 1\n\ + adds r2, r6\n\ + lsls r0, r3, 1\n\ + adds r0, r5\n\ + ldrh r1, [r0]\n\ + adds r1, r4, r1\n\ + strh r1, [r2]\n\ + adds r0, r2, 0\n\ + adds r0, 0x40\n\ + strh r1, [r0]\n\ + adds r2, 0x80\n\ + adds r0, r3, 0\n\ + adds r0, 0x14\n\ + lsls r0, 1\n\ + adds r0, r5\n\ + ldrh r0, [r0]\n\ + adds r0, r4, r0\n\ + strh r0, [r2]\n\ + adds r0, r3, 0x1\n\ + lsls r0, 16\n\ + lsrs r3, r0, 16\n\ + cmp r3, 0x13\n\ + bls _081C21A8\n\ + b _081C221C\n\ + .pool\n\ +_081C21E4:\n\ + movs r3, 0\n\ + ldr r5, =gUnknown_08DC3CD4\n\ +_081C21E8:\n\ + adds r1, r7, r3\n\ + lsls r1, 1\n\ + adds r1, r6\n\ + adds r0, r3, 0\n\ + adds r0, 0x14\n\ + lsls r0, 1\n\ + adds r0, r5\n\ + ldrh r0, [r0]\n\ + adds r0, r4, r0\n\ + strh r0, [r1]\n\ + adds r2, r1, 0\n\ + adds r2, 0x40\n\ + adds r0, r3, 0\n\ + adds r0, 0x28\n\ + lsls r0, 1\n\ + adds r0, r5\n\ + ldrh r0, [r0]\n\ + adds r0, r4, r0\n\ + strh r0, [r2]\n\ + adds r1, 0x80\n\ + strh r0, [r1]\n\ + adds r0, r3, 0x1\n\ + lsls r0, 16\n\ + lsrs r3, r0, 16\n\ + cmp r3, 0x13\n\ + bls _081C21E8\n\ +_081C221C:\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided\n"); +} +#endif + +void sub_81C2228(struct Pokemon *mon) +{ + if (!CheckPartyPokerus(mon, 0) && CheckPartyHasHadPokerus(mon, 0)) + { + gUnknown_0203CF1C->unkTilemap0[0x223] = 0x2C; + gUnknown_0203CF1C->unkTilemap0_1[0x223] = 0x2C; + } + else + { + gUnknown_0203CF1C->unkTilemap0[0x223] = 0x81A; + gUnknown_0203CF1C->unkTilemap0_1[0x223] = 0x81A; + } + schedule_bg_copy_tilemap_to_vram(3); +} + +void sub_81C228C(u8 a) +{ + if (a == 0) + sub_8199C30(3, 1, 4, 8, 8, 0); + else + sub_8199C30(3, 1, 4, 8, 8, 5); + schedule_bg_copy_tilemap_to_vram(3); +} + +void sub_81C22CC(struct Pokemon *unused) +{ + s64 r6r7; + struct PokeSummary *summary = &gUnknown_0203CF1C->summary; + u16 *r9; + u8 i; + + if (summary->level < MAX_MON_LEVEL) + { + u32 r1 = gExperienceTables[gBaseStats[summary->species].growthRate][summary->level + 1] - gExperienceTables[gBaseStats[summary->species].growthRate][summary->level]; + u32 r4 = summary->exp - gExperienceTables[gBaseStats[summary->species].growthRate][summary->level]; + + r6r7 = r4 * 64 / r1; + if (r6r7 == 0 && r4 != 0) + r6r7 = 1; + } + else + { + r6r7 = 0; + } + + r9 = &gUnknown_0203CF1C->unkTilemap1_1[0x255]; + for (i = 0; i < 8; i++) + { + if (r6r7 > 7) + r9[i] = 0x206A; + else + r9[i] = 0x2062 + (r6r7 % 8); + r6r7 -= 8; + if (r6r7 < 0) + r6r7 = 0; + } + + if (GetBgTilemapBuffer(1) == gUnknown_0203CF1C->unkTilemap1) + schedule_bg_copy_tilemap_to_vram(1); + else + schedule_bg_copy_tilemap_to_vram(2); +} + +void sub_81C240C(u16 move) +{ + u16* r5 = &gUnknown_0203CF1C->unkTilemap3_1[0]; + u8 i; + u8 r4; + if (move != MOVE_NONE) + { + r4 = gContestEffects[gContestMoves[move].effect].appeal; + if (r4 != 0xFF) + r4 /= 10; + for (i = 0;i < 8; i++) + { + if (r4 != 0xFF && i < r4) + { + r5[((i>>2)*32)+(i&3)+0x1E6] = 0x103A; + } + else + r5[((i>>2)*32)+(i&3)+0x1E6] = 0x1039; + } + r4 = gContestEffects[gContestMoves[move].effect].jam; + if (r4 != 0xFF) + r4 /= 10; + for (i = 0;i < 8; i++) + { + if (r4 != 0xFF && i < r4) + { + r5[((i>>2)*32)+(i&3)+0x226] = 0x103C; + } + else + r5[((i>>2)*32)+(i&3)+0x226] = 0x103D; + } + } +} + +void sub_81C2524() +{ + if (gUnknown_0203CF1C->summary.isEgg != 0) + ChangeBgX(3, 0x10000, 0); + else + ChangeBgX(3, 0, 0); +} + +void sub_81C2554() +{ + u8 i; + InitWindows(&gUnknown_0861CC24); + DeactivateAllTextPrinters(); + for (i = 0; i < 20; i++) + FillWindowPixelBuffer(i, 0); + for (i = 0; i < 8; i++) + gUnknown_0203CF1C->unk40CB[i] |= 0xFF; +} + +void sub_81C25A4(u8 a, u8 *b, u8 c, u8 d, u8 e, u8 f) +{ + AddTextPrinterParametrized2(a, 1, c, d, 0, e, &gUnknown_0861CD2C[f], 0, b); +} + +void sub_81C25E8() +{ + FillWindowPixelBuffer(17, 0); + FillWindowPixelBuffer(18, 0); + FillWindowPixelBuffer(19, 0); + if (gUnknown_0203CF1C->summary.isEgg == 0) + sub_81C2628(); + else + sub_81C2794(); + schedule_bg_copy_tilemap_to_vram(0); +} + +void sub_81C2628() +{ + u8 strArray[16]; + struct Pokemon *mon = &gUnknown_0203CF1C->currentMon; + struct PokeSummary *summary = &gUnknown_0203CF1C->summary; + u16 r5 = SpeciesToPokedexNum(summary->species); + if (r5 != 0xFFFF) + { + StringCopy(gStringVar1, &gText_UnkCtrlF908Clear01[0]); + ConvertIntToDecimalStringN(gStringVar2, r5, 2, 3); + StringAppend(gStringVar1, gStringVar2); + if (IsMonShiny(mon) == 0) + { + sub_81C25A4(17, gStringVar1, 0, 1, 0, 1); + sub_81C228C(0); + } + else + { + sub_81C25A4(17, gStringVar1, 0, 1, 0, 7); + sub_81C228C(1); + } + PutWindowTilemap(17); + } + else + { + ClearWindowTilemap(17); + if (IsMonShiny(mon) == 0) + sub_81C228C(0); + else + sub_81C228C(1); + } + StringCopy(gStringVar1, &gText_LevelSymbol[0]); + ConvertIntToDecimalStringN(gStringVar2, summary->level, 0, 3); + StringAppend(gStringVar1, gStringVar2); + sub_81C25A4(19, gStringVar1, 0x18, 17, 0, 1); + GetMonNickname(mon, gStringVar1); + sub_81C25A4(18, gStringVar1, 0, 1, 0, 1); + strArray[0] = CHAR_SLASH; + StringCopy(&strArray[1], &gSpeciesNames[summary->species2][0]); + sub_81C25A4(19, &strArray[0], 0, 1, 0, 1); + sub_81C27DC(mon, summary->species2); + PutWindowTilemap(18); + PutWindowTilemap(19); +} + +void sub_81C2794() +{ + GetMonNickname(&gUnknown_0203CF1C->currentMon, gStringVar1); + sub_81C25A4(18, gStringVar1, 0, 1, 0, 1); + PutWindowTilemap(18); + ClearWindowTilemap(17); + ClearWindowTilemap(19); +} + +void sub_81C27DC(struct Pokemon *mon, u16 a) +{ + if (a != SPECIES_NIDORAN_M && a != SPECIES_NIDORAN_F) + { + u8 gender = GetMonGender(mon); + switch (gender) + { + case 0: + sub_81C25A4(0x13, &gText_MaleSymbol[0], 0x39, 17, 0, 3); + break; + case 0xFE: + sub_81C25A4(0x13, &gText_FemaleSymbol[0], 0x39, 17, 0, 4); + break; + } + } +} + +void sub_81C2838(u8 a, bool8 b, u32 c) +{ + BlitBitmapToWindow(a, (b) ? &gUnknown_0861CDD3[0] : &gUnknown_0861CDD3[0] - 0x80, c, 0, 16, 16); +} + +void sub_81C286C() +{ + int r4; + int r2; + int temp; + sub_81C25A4(0, gText_PkmnInfo, 2, 1, 0, 1); + sub_81C25A4(1, gText_PkmnSkills, 2, 1, 0, 1); + sub_81C25A4(2, gText_BattleMoves, 2, 1, 0, 1); + sub_81C25A4(3, gText_ContestMoves, 2, 1, 0, 1); + r4 = GetStringRightAlignXOffset(1, gText_Cancel2, 0x3E); + r2 = r4 - 16; + if (r2 < 0) + r2 = 0; + sub_81C2838(4, 0, r2); + sub_81C25A4(4, gText_Cancel2, r4, 1, 0, 0); + r4 = GetStringRightAlignXOffset(1, gText_Info, 0x3E); + r2 = r4 - 16; + if (r2 < 0) + r2 = 0; + sub_81C2838(5, 0, r2); + sub_81C25A4(5, gText_Info, r4, 1, 0, 0); + r4 = GetStringRightAlignXOffset(1, gText_Switch, 0x3E); + r2 = r4 - 16; + if (r2 < 0) + r2 = 0; + sub_81C2838(6, 0, r2); + sub_81C25A4(6, gText_Switch, r4, 1, 0, 0); + sub_81C25A4(8, gText_RentalPkmn, 0, 1, 0, 1); + sub_81C25A4(9, gText_TypeSlash, 0, 1, 0, 0); + temp = 6; + temp += GetStringCenterAlignXOffset(1, gText_HP4, 42); + sub_81C25A4(10, gText_HP4, temp, 1, 0, 1); + temp = 6; + temp += GetStringCenterAlignXOffset(1, gText_Attack3, 42); + sub_81C25A4(10, gText_Attack3, temp, 17, 0, 1); + temp = 6; + temp += GetStringCenterAlignXOffset(1, gText_Defense3, 42); + sub_81C25A4(10, gText_Defense3, temp, 33, 0, 1); + temp = 2; + temp += GetStringCenterAlignXOffset(1, gText_SpAtk4, 36); + sub_81C25A4(11, gText_SpAtk4, temp, 1, 0, 1); + temp = 2; + temp += GetStringCenterAlignXOffset(1, gText_SpDef4, 36); + sub_81C25A4(11, gText_SpDef4, temp, 17, 0, 1); + temp = 2; + temp += GetStringCenterAlignXOffset(1, gText_Speed2, 36); + sub_81C25A4(11, gText_Speed2, temp, 33, 0, 1); + sub_81C25A4(12, gText_ExpPoints, 6, 1, 0, 1); + sub_81C25A4(12, gText_NextLv, 6, 17, 0, 1); + sub_81C25A4(13, gText_Status, 2, 1, 0, 1); + sub_81C25A4(14, gText_Power, 0, 1, 0, 1); + sub_81C25A4(14, gText_Accuracy2, 0, 17, 0, 1); + sub_81C25A4(15, gText_Appeal, 0, 1, 0, 1); + sub_81C25A4(15, gText_Jam, 0, 17, 0, 1); +} + +void sub_81C2AFC(u8 a) +{ + u8 i; + ClearWindowTilemap(0); + ClearWindowTilemap(1); + ClearWindowTilemap(2); + ClearWindowTilemap(3); + switch (a) + { + case 0: + PutWindowTilemap(0); + PutWindowTilemap(4); + if (sub_81A6BF4() == TRUE || sub_81B9E94() == TRUE) + PutWindowTilemap(8); + PutWindowTilemap(9); + break; + case 1: + PutWindowTilemap(1); + PutWindowTilemap(10); + PutWindowTilemap(11); + PutWindowTilemap(12); + break; + case 2: + PutWindowTilemap(2); + if (gUnknown_0203CF1C->unk40BC == 3) + { + if(!(gUnknown_0203CF1C->unk40C4 == 0 && gUnknown_0203CF1C->unk40C6 == 4)) + PutWindowTilemap(14); + } + else + PutWindowTilemap(5); + break; + case 3: + PutWindowTilemap(3); + if (gUnknown_0203CF1C->unk40BC == 3) + { + if(!(gUnknown_0203CF1C->unk40C4 == 0 && gUnknown_0203CF1C->unk40C6 == 4)) + PutWindowTilemap(15); + } + else + PutWindowTilemap(5); + break; + } + for (i = 0; i < 8; i++) + { + PutWindowTilemap(gUnknown_0203CF1C->unk40CB[i]); + } + schedule_bg_copy_tilemap_to_vram(0); +} + +void sub_81C2C38(u8 a) +{ + u8 i; + switch (a) + { + case 0: + ClearWindowTilemap(4); + if (sub_81A6BF4() == TRUE || sub_81B9E94() == TRUE) + ClearWindowTilemap(8); + ClearWindowTilemap(9); + break; + case 1: + ClearWindowTilemap(10); + ClearWindowTilemap(11); + ClearWindowTilemap(12); + break; + case 2: + if (gUnknown_0203CF1C->unk40BC == 3) + { + if(!(gUnknown_0203CF1C->unk40C4 == 0 && gUnknown_0203CF1C->unk40C6 == 4)) + ClearWindowTilemap(14); + } + else + ClearWindowTilemap(5); + break; + case 3: + if (gUnknown_0203CF1C->unk40BC == 3) + { + if(!(gUnknown_0203CF1C->unk40C4 == 0 && gUnknown_0203CF1C->unk40C6 == 4)) + ClearWindowTilemap(15); + } + else + ClearWindowTilemap(5); + break; + } + for (i = 0; i < 8; i++) + sub_81C2D68(i); + schedule_bg_copy_tilemap_to_vram(0); +} + + + +#ifdef NONMATCHING +u8 sub_81C2D2C(struct WindowTemplate *template, u8 a) +{ + u8 *r4 = gUnknown_0203CF1C->unk40CB; + if (r4[a] == 0xFF) + { + r4[a] = AddWindow(&template[a]); + FillWindowPixelBuffer(r4[a], 0); + } + return r4[a]; +} +#else +__attribute__((naked)) +u8 sub_81C2D2C(struct WindowTemplate *template, u8 a) +{ + asm(".syntax unified\n\ + push {r4,lr}\n\ + adds r3, r0, 0\n\ + lsls r1, 24\n\ + lsrs r2, r1, 24\n\ + ldr r0, =gUnknown_0203CF1C\n\ + ldr r4, =0x000040cb\n\ + adds r1, r2, r4\n\ + ldr r0, [r0]\n\ + adds r4, r0, r1\n\ + ldrb r0, [r4]\n\ + cmp r0, 0xFF\n\ + bne _081C2D56\n\ + lsls r0, r2, 3\n\ + adds r0, r3, r0\n\ + bl AddWindow\n\ + strb r0, [r4]\n\ + ldrb r0, [r4]\n\ + movs r1, 0\n\ + bl FillWindowPixelBuffer\n\ +_081C2D56:\n\ + ldrb r0, [r4]\n\ + pop {r4}\n\ + pop {r1}\n\ + bx r1\n\ + .pool\n\ + .syntax divided\n"); +} +#endif + +#ifdef NONMATCHING +void sub_81C2D68(u8 a) +{ + u8 *r4 = gUnknown_0203CF1C->unk40CB; + if (r4[a] != 0xFF) + { + ClearWindowTilemap(r4[a]); + RemoveWindow(r4[a]); + r4[a] = 0xFF; + } +} +#else +__attribute__((naked)) +void sub_81C2D68(u8 a) +{ + asm(".syntax unified\n\ + push {r4,lr}\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + ldr r1, =gUnknown_0203CF1C\n\ + ldr r2, =0x000040cb\n\ + adds r0, r2\n\ + ldr r1, [r1]\n\ + adds r4, r1, r0\n\ + ldrb r0, [r4]\n\ + cmp r0, 0xFF\n\ + beq _081C2D8C\n\ + bl ClearWindowTilemap\n\ + ldrb r0, [r4]\n\ + bl RemoveWindow\n\ + movs r0, 0xFF\n\ + strb r0, [r4]\n\ +_081C2D8C:\n\ + pop {r4}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided\n"); +} +#endif + +void sub_81C2D9C(u8 a) +{ + u16 i; + for (i = 0; i < 8; i++) + { + if (gUnknown_0203CF1C->unk40CB[i] != 0xFF) + FillWindowPixelBuffer(gUnknown_0203CF1C->unk40CB[i], 0); + } + gUnknown_0861CE54[a](); +} + +void sub_81C2DE4(u8 a) +{ + CreateTask(gUnknown_0861CE64[a], 16); +} + +void sub_81C2E00() +{ + if (gUnknown_0203CF1C->summary.isEgg) + { + sub_81C335C(); + sub_81C33CC(); + sub_81C3428(); + sub_81C349C(); + } + else + { + sub_81C2EC4(); + sub_81C2F5C(); + sub_81C2FD8(); + sub_81C302C(); + sub_81C307C(); + sub_81C3194(); + } +} + +void sub_81C2E40(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + s16 dataa = data[0] - 1; + switch (dataa) + { + case 0: + sub_81C2EC4(); + break; + case 1: + sub_81C2F5C(); + break; + case 2: + sub_81C2FD8(); + break; + case 3: + sub_81C302C(); + break; + case 4: + sub_81C307C(); + break; + case 5: + sub_81C3194(); + break; + case 6: + DestroyTask(taskId); + return; + } + data[0]++; +} + +void sub_81C2EC4() +{ + u8 r5; + int r2; + if (sub_81A6BF4() != 1 && sub_81B9E94() != 1) + { + r5 = sub_81C2D2C(&gUnknown_0861CCCC, 0); + sub_81C25A4(r5, gText_OTSlash, 0, 1, 0, 1); + r2 = GetStringWidth(1, gText_OTSlash, 0); + if (gUnknown_0203CF1C->summary.OTGender == 0) + sub_81C25A4(r5, gUnknown_0203CF1C->summary.OTName, r2, 1, 0, 5); + else + sub_81C25A4(r5, gUnknown_0203CF1C->summary.OTName, r2, 1, 0, 6); + } +} + +void sub_81C2F5C() +{ + int r4; + if (sub_81A6BF4() != TRUE && sub_81B9E94() != TRUE) + { + ConvertIntToDecimalStringN(StringCopy(gStringVar1, gText_UnkCtrlF907F908), (u16)gUnknown_0203CF1C->summary.OTID, 2, 5); + r4 = GetStringRightAlignXOffset(1, gStringVar1, 0x38); + sub_81C25A4(sub_81C2D2C(&gUnknown_0861CCCC, 1), gStringVar1, r4, 1, 0, 1); + } +} + +void sub_81C2FD8() +{ + u8 ability = GetAbilityBySpecies(gUnknown_0203CF1C->summary.species, gUnknown_0203CF1C->summary.altAbility); + sub_81C25A4(sub_81C2D2C(&gUnknown_0861CCCC, 2), gAbilityNames[ability], 0, 1, 0, 1); +} + +void sub_81C302C() +{ + u8 ability = GetAbilityBySpecies(gUnknown_0203CF1C->summary.species, gUnknown_0203CF1C->summary.altAbility); + sub_81C25A4(sub_81C2D2C(&gUnknown_0861CCCC, 2), gAbilityDescriptionPointers[ability], 0, 17, 0, 0); +} + +void sub_81C307C() +{ + struct PokeSummary *sum = &gUnknown_0203CF1C->summary; + u8 *text; + sub_81AFBF0(); + sub_81AFC0C(0, gUnknown_0861CE74); + sub_81AFC0C(1, gUnknown_0861CE7B); + sub_81C31C0(); + if (sub_81A6BF4() == TRUE || sub_81B9E94() == TRUE || sub_81C3304() == TRUE) + sub_81AFC28(gStringVar4, gText_XNature); + else + { + u8 *alloced1 = Alloc(32); + u8 *alloced2 = Alloc(32); + sub_81C31F0(alloced1); + if (sum->metLocation <= 0xD4) + { + sub_8124610(alloced2, sum->metLocation); + sub_81AFC0C(4, alloced2); + } + if (sub_81C3220() == 1) + { + if (sum->metLevel == 0) + text = (sum->metLocation > 0xD4) ? gText_XNatureHatchedSomewhereAt : gText_XNatureHatchedAtYZ; + else + text = (sum->metLocation > 0xD4) ? gText_XNatureMetSomewhereAt : gText_XNatureMetAtYZ; + } + else if (sum->metLocation == 0xFF) + text = gText_XNatureFatefulEncounter; + else if (sum->metLocation != 0xFE && sub_81C32BC()) + text = (sum->metLocation > 0xD4) ? gText_XNatureObtainedInTrade : gText_XNatureProbablyMetAt; + else + text = gText_XNatureObtainedInTrade; + sub_81AFC28(gStringVar4, text); + Free(alloced1); + Free(alloced2); + } +} + +void sub_81C3194() +{ + sub_81C25A4(sub_81C2D2C(&gUnknown_0861CCCC, 3), gStringVar4, 0, 1, 0, 0); +} + +void sub_81C31C0() +{ + struct UnkSummaryStruct *sumStruct = gUnknown_0203CF1C; + sub_81AFC0C(2, gNatureNamePointers[sumStruct->summary.nature]); + sub_81AFC0C(5, gText_EmptyString5); +} + +void sub_81C31F0(u8 *a) +{ + u8 level = gUnknown_0203CF1C->summary.metLevel; + if (level == 0) + level = 5; + ConvertIntToDecimalStringN(a, level, 0, 3); + sub_81AFC0C(3, a); +} + +u8 sub_81C3220() +{ + struct PokeSummary *sum = &gUnknown_0203CF1C->summary; + u32 r4; + u8 r5; + if (gUnknown_0203CF1C->unk0 == (union UnkUnion *)&gEnemyParty) + { + u8 multiID = GetMultiplayerId()^1; + r4 = (u16)gLinkPlayers[multiID].trainerId; + r5 = gLinkPlayers[multiID].gender; + StringCopy(gStringVar1, gLinkPlayers[multiID].name); + } + else + { + r4 = GetPlayerIDAsU32() & 0xFFFF; + r5 = gSaveBlock2Ptr->playerGender; + StringCopy(gStringVar1, gSaveBlock2Ptr->playerName); + } + if (r5 != sum->OTGender || r4 != (sum->OTID & 0xFFFF) || StringCompareWithoutExtCtrlCodes(gStringVar1, sum->OTName)) + { + return 0; + } + return 1; +} + +bool8 sub_81C32BC() +{ + struct PokeSummary *sum = &gUnknown_0203CF1C->summary; + u8 r0 = sum->metGame - 1; + if (r0 <= 4) + return TRUE; + return FALSE; +} + +bool8 sub_81C32E0() +{ + struct PokeSummary *sum = &gUnknown_0203CF1C->summary; + u8 r0 = sum->metGame - 1; + if (r0 <= 2) + return TRUE; + return FALSE; +} + +bool8 sub_81C3304() +{ + if ((gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) && gMain.inBattle) + { + if (gUnknown_0203CF1C->unk40BE == 1 || gUnknown_0203CF1C->unk40BE == 4 || gUnknown_0203CF1C->unk40BE == 5) + return TRUE; + } + return FALSE; +} + +#ifdef NONMATCHING +void sub_81C335C() +{ + u8 r4 = sub_81C2D2C(&gUnknown_0861CCCC, 0); + u32 r5 = GetStringWidth(1, gText_OTSlash, 0); + sub_81C25A4(r4, gText_OTSlash, 0, 1, 0, 1); + sub_81C25A4(r4, gText_FiveMarks, r5, 1, 0, 1); +} +#else +__attribute__((naked)) +void sub_81C335C() +{ + asm(".syntax unified\n\ + push {r4-r6,lr}\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5,r6}\n\ + sub sp, 0x8\n\ + ldr r0, =gUnknown_0861CCCC\n\ + movs r1, 0\n\ + bl sub_81C2D2C\n\ + adds r4, r0, 0\n\ + lsls r4, 24\n\ + lsrs r4, 24\n\ + ldr r0, =gText_OTSlash\n\ + mov r8, r0\n\ + movs r0, 0x1\n\ + mov r1, r8\n\ + movs r2, 0\n\ + bl GetStringWidth\n\ + adds r5, r0, 0\n\ + movs r0, 0\n\ + mov r9, r0\n\ + str r0, [sp]\n\ + movs r6, 0x1\n\ + str r6, [sp, 0x4]\n\ + adds r0, r4, 0\n\ + mov r1, r8\n\ + movs r2, 0\n\ + movs r3, 0x1\n\ + bl sub_81C25A4\n\ + ldr r1, =gText_FiveMarks\n\ + lsls r5, 24\n\ + lsrs r5, 24\n\ + mov r0, r9\n\ + str r0, [sp]\n\ + str r6, [sp, 0x4]\n\ + adds r0, r4, 0\n\ + adds r2, r5, 0\n\ + movs r3, 0x1\n\ + bl sub_81C25A4\n\ + add sp, 0x8\n\ + pop {r3,r4}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + pop {r4-r6}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided\n"); +} +#endif + +void sub_81C33CC() +{ + int r4; + StringCopy(gStringVar1, gText_UnkCtrlF907F908); + StringAppend(gStringVar1, gText_FiveMarks); + r4 = GetStringRightAlignXOffset(1, gStringVar1, 0x38); + sub_81C25A4(sub_81C2D2C(&gUnknown_0861CCCC, 1), gStringVar1, r4, 1, 0, 1); +} + +void sub_81C3428() +{ + u8 *text; + struct PokeSummary *sum = &gUnknown_0203CF1C->summary; + if (gUnknown_0203CF1C->summary.sanity == 1) + text = gText_EggWillTakeALongTime; + else if (sum->friendship <= 5) + text = gText_EggAboutToHatch; + else if (sum->friendship <= 10) + text = gText_EggWillHatchSoon; + else if (sum->friendship <= 40) + text = gText_EggWillTakeSomeTime; + else + text = gText_EggWillTakeALongTime; + sub_81C25A4(sub_81C2D2C(&gUnknown_0861CCCC, 2), text, 0, 1, 0, 0); +} + +void sub_81C349C() +{ + u8 *text; + struct PokeSummary *sum = &gUnknown_0203CF1C->summary; + if (gUnknown_0203CF1C->summary.sanity != 1) + { + if (sum->metLocation == 0xFF) + text = gText_PeculiarEggNicePlace; + else if (sub_81C32BC() == 0 || sub_81C3220() == 0) + text = gText_PeculiarEggTrade; + else if (sum->metLocation == 0xFD) + text = (sub_81C32E0() == TRUE) ? gText_EggFromHotSprings : gText_EggFromTraveler; + else + text = gText_OddEggFoundByCouple; + } + else + text = gText_OddEggFoundByCouple; + sub_81C25A4(sub_81C2D2C(&gUnknown_0861CCCC, 3), text, 0, 1, 0, 0); +} + +void sub_81C3530() +{ + sub_81C35E4(); + sub_81C3690(); + sub_81C3710(); + sub_81C37D8(); + sub_81C3808(); + sub_81C3890(); + sub_81C38C0(); +} + +void sub_81C3554(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + s16 dataa = data[0] - 1; + switch (dataa) + { + case 0: + sub_81C35E4(); + break; + case 1: + sub_81C3690(); + break; + case 2: + sub_81C3710(); + break; + case 3: + sub_81C37D8(); + break; + case 4: + sub_81C3808(); + break; + case 5: + sub_81C3890(); + break; + case 6: + sub_81C38C0(); + break; + case 7: + DestroyTask(taskId); + return; + } + data[0]++; +} + +void sub_81C35E4() +{ + u8 *text; + int offset; + if (gUnknown_0203CF1C->summary.item == ITEM_ENIGMA_BERRY && sub_81B1250() == 1 && (gUnknown_0203CF1C->unk40BE == 1 || gUnknown_0203CF1C->unk40BE == 4 || gUnknown_0203CF1C->unk40BE == 5)) + { + text = (u8*)ItemId_GetItem(ITEM_ENIGMA_BERRY); + } + else if (gUnknown_0203CF1C->summary.item == ITEM_NONE) + text = gText_None; + else + { + CopyItemName(gUnknown_0203CF1C->summary.item, gStringVar1); + text = gStringVar1; + } + offset = GetStringCenterAlignXOffset(1, text, 0x48) + 6; + sub_81C25A4(sub_81C2D2C(&gUnknown_0861CCEC, 0), text, offset, 1, 0, 0); +} + +void sub_81C3690() +{ + u8 *text; + int offset; + if (gUnknown_0203CF1C->summary.ribbons == 0) + text = gText_None; + else + { + ConvertIntToDecimalStringN(gStringVar1, gUnknown_0203CF1C->summary.ribbons, 1, 2); + StringExpandPlaceholders(gStringVar4, gText_RibbonsVar1); + text = gStringVar4; + } + offset = GetStringCenterAlignXOffset(1, text, 0x46) + 6; + sub_81C25A4(sub_81C2D2C(&gUnknown_0861CCEC, 1), text, offset, 1, 0, 0); +} + +void sub_81C3710() +{ + u8 *alloced1 = Alloc(8); + u8 *alloced2 = Alloc(8); + u8 *alloced3 = Alloc(8); + u8 *alloced4 = Alloc(8); + ConvertIntToDecimalStringN(alloced1, gUnknown_0203CF1C->summary.currentHP, 1, 3); + ConvertIntToDecimalStringN(alloced2, gUnknown_0203CF1C->summary.maxHP, 1, 3); + ConvertIntToDecimalStringN(alloced3, gUnknown_0203CF1C->summary.atk, 1, 7); + ConvertIntToDecimalStringN(alloced4, gUnknown_0203CF1C->summary.def, 1, 7); + sub_81AFBF0(); + sub_81AFC0C(0, alloced1); + sub_81AFC0C(1, alloced2); + sub_81AFC0C(2, alloced3); + sub_81AFC0C(3, alloced4); + sub_81AFC28(gStringVar4, gUnknown_0861CE82); + Free(alloced1); + Free(alloced2); + Free(alloced3); + Free(alloced4); +} + +void sub_81C37D8() +{ + sub_81C25A4(sub_81C2D2C(&gUnknown_0861CCEC, 2), gStringVar4, 4, 1, 0, 0); +} + +void sub_81C3808() +{ + ConvertIntToDecimalStringN(gStringVar1, gUnknown_0203CF1C->summary.spatk, 1, 3); + ConvertIntToDecimalStringN(gStringVar2, gUnknown_0203CF1C->summary.spdef, 1, 3); + ConvertIntToDecimalStringN(gStringVar3, gUnknown_0203CF1C->summary.speed, 1, 3); + sub_81AFBF0(); + sub_81AFC0C(0, gStringVar1); + sub_81AFC0C(1, gStringVar2); + sub_81AFC0C(2, gStringVar3); + sub_81AFC28(gStringVar4, gUnknown_0861CE8E); +} + +void sub_81C3890() +{ + sub_81C25A4(sub_81C2D2C(&gUnknown_0861CCEC, 3), gStringVar4, 2, 1, 0, 0); +} + +void sub_81C38C0() +{ + struct PokeSummary *sum = &gUnknown_0203CF1C->summary; + u8 r6 = sub_81C2D2C(&gUnknown_0861CCEC, 4); + int offset; + u32 expToNextLevel; + ConvertIntToDecimalStringN(gStringVar1, sum->exp, 1, 7); + offset = GetStringRightAlignXOffset(1, gStringVar1, 0x2A) + 2; + sub_81C25A4(r6, gStringVar1, offset, 1, 0, 0); + if (sum->level < MAX_MON_LEVEL) + expToNextLevel = gExperienceTables[gBaseStats[sum->species].growthRate][sum->level + 1] - sum->exp; + else + expToNextLevel = 0; + ConvertIntToDecimalStringN(gStringVar1, expToNextLevel, 1, 6); + offset = GetStringRightAlignXOffset(1, gStringVar1, 0x2A) + 2; + sub_81C25A4(r6, gStringVar1, offset, 17, 0, 0); +} + +void sub_81C3984() +{ + sub_81C3B08(0); + sub_81C3B08(1); + sub_81C3B08(2); + sub_81C3B08(3); + if (gUnknown_0203CF1C->unk40BC == 3) + { + sub_81C3F44(); + if (gUnknown_0203CF1C->unk40C6 == 4) + { + if (gUnknown_0203CF1C->unk40C4 != 0) + sub_81C3E9C(gUnknown_0203CF1C->unk40C4); + } + else + sub_81C3E9C(gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->unk40C6]); + } +} + +void sub_81C39F0(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + s16 dataa = data[0] - 1; + + switch (dataa) + { + case 0: + sub_81C3B08(0); + break; + case 1: + sub_81C3B08(1); + break; + case 2: + sub_81C3B08(2); + break; + case 3: + sub_81C3B08(3); + break; + case 4: + if (gUnknown_0203CF1C->unk40BC == 3) + sub_81C3F44(); + break; + case 5: + if (gUnknown_0203CF1C->unk40BC == 3) + { + if (gUnknown_0203CF1C->unk40C6 == 4) + data[1] = gUnknown_0203CF1C->unk40C4; + else + data[1] = gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->unk40C6]; + } + break; + case 6: + if (gUnknown_0203CF1C->unk40BC == 3) + { + if (!(gUnknown_0203CF1C->unk40C4 == 0 && gUnknown_0203CF1C->unk40C6 == 4)) + sub_81C3E9C(data[1]); + } + break; + case 7: + DestroyTask(taskId); + return; + } + data[0]++; +} + +#ifdef NONMATCHING +void sub_81C3B08(u8 a) +{ + struct UnkSummaryStruct *r10 = gUnknown_0203CF1C; + u8 r8 = sub_81C2D2C(&gUnknown_0861CD14, 0); + u8 sp = sub_81C2D2C(&gUnknown_0861CD14, 1); + u8 r6; + u8 r5; + u8 *text; + int offset; + u16 move; + if (r10->summary.moves[a] != 0) + { + move = r10->summary.moves[a]; + r6 = CalculatePPWithBonus(move, r10->summary.ppBonuses, a); + sub_81C25A4(r8, gMoveNames[move], 0, (a<<4) + 1, 0, 1); + ConvertIntToDecimalStringN(gStringVar1, r10->summary.pp[a], 1, 2); + ConvertIntToDecimalStringN(gStringVar2, r6, 1, 2); + sub_81AFBF0(); + sub_81AFC0C(0, gStringVar1); + sub_81AFC0C(1, gStringVar2); + sub_81AFC28(gStringVar4, gUnknown_0861CE97); + text = gStringVar4; + r5 = GetCurrentPpToMaxPpState(r10->summary.pp[a], r6) + 9; + offset = GetStringRightAlignXOffset(1, text, 0x2C); + } + else + { + sub_81C25A4(r8, gText_OneDash, 0, (a<<4) + 1, 0, 1); + text = gText_TwoDashes; + r5 = 12; + offset = GetStringCenterAlignXOffset(1, text, 0x2C); + } + sub_81C25A4(sp, text, offset, (a<<4), 0, r5); +} +#else +__attribute__((naked)) +void sub_81C3B08(u8 a) +{ + 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\ + sub sp, 0xC\n\ + lsls r0, 24\n\ + lsrs r7, r0, 24\n\ + ldr r0, =gUnknown_0203CF1C\n\ + ldr r0, [r0]\n\ + mov r10, r0\n\ + ldr r4, =gUnknown_0861CD14\n\ + adds r0, r4, 0\n\ + movs r1, 0\n\ + bl sub_81C2D2C\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + mov r8, r0\n\ + adds r0, r4, 0\n\ + movs r1, 0x1\n\ + bl sub_81C2D2C\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + str r0, [sp, 0x8]\n\ + lsls r1, r7, 1\n\ + mov r0, r10\n\ + adds r0, 0x84\n\ + adds r0, r1\n\ + ldrh r5, [r0]\n\ + cmp r5, 0\n\ + beq _081C3C00\n\ + mov r0, r10\n\ + adds r0, 0xA4\n\ + ldrb r1, [r0]\n\ + adds r0, r5, 0\n\ + adds r2, r7, 0\n\ + bl CalculatePPWithBonus\n\ + adds r6, r0, 0\n\ + lsls r6, 24\n\ + lsrs r6, 24\n\ + movs r0, 0xD\n\ + adds r1, r5, 0\n\ + muls r1, r0\n\ + ldr r0, =gMoveNames\n\ + adds r1, r0\n\ + lsls r0, r7, 4\n\ + mov r9, r0\n\ + mov r3, r9\n\ + adds r3, 0x1\n\ + lsls r3, 24\n\ + lsrs r3, 24\n\ + movs r0, 0\n\ + str r0, [sp]\n\ + movs r0, 0x1\n\ + str r0, [sp, 0x4]\n\ + mov r0, r8\n\ + movs r2, 0\n\ + bl sub_81C25A4\n\ + ldr r0, =gStringVar1\n\ + mov r8, r0\n\ + mov r5, r10\n\ + adds r5, 0x8C\n\ + adds r5, r7\n\ + ldrb r1, [r5]\n\ + movs r2, 0x1\n\ + movs r3, 0x2\n\ + bl ConvertIntToDecimalStringN\n\ + ldr r4, =gStringVar2\n\ + adds r0, r4, 0\n\ + adds r1, r6, 0\n\ + movs r2, 0x1\n\ + movs r3, 0x2\n\ + bl ConvertIntToDecimalStringN\n\ + bl sub_81AFBF0\n\ + movs r0, 0\n\ + mov r1, r8\n\ + bl sub_81AFC0C\n\ + movs r0, 0x1\n\ + adds r1, r4, 0\n\ + bl sub_81AFC0C\n\ + ldr r4, =gStringVar4\n\ + ldr r1, =gUnknown_0861CE97\n\ + adds r0, r4, 0\n\ + bl sub_81AFC28\n\ + adds r7, r4, 0\n\ + ldrb r0, [r5]\n\ + adds r1, r6, 0\n\ + bl GetCurrentPpToMaxPpState\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + adds r5, r0, 0\n\ + adds r5, 0x9\n\ + movs r0, 0x1\n\ + adds r1, r7, 0\n\ + movs r2, 0x2C\n\ + bl GetStringRightAlignXOffset\n\ + mov r4, r9\n\ + b _081C3C26\n\ + .pool\n\ +_081C3C00:\n\ + ldr r1, =gText_OneDash\n\ + lsls r4, r7, 4\n\ + adds r3, r4, 0x1\n\ + lsls r3, 24\n\ + lsrs r3, 24\n\ + str r5, [sp]\n\ + movs r0, 0x1\n\ + str r0, [sp, 0x4]\n\ + mov r0, r8\n\ + movs r2, 0\n\ + bl sub_81C25A4\n\ + ldr r7, =gText_TwoDashes\n\ + movs r5, 0xC\n\ + movs r0, 0x1\n\ + adds r1, r7, 0\n\ + movs r2, 0x2C\n\ + bl GetStringCenterAlignXOffset\n\ +_081C3C26:\n\ + lsls r2, r0, 24\n\ + lsrs r2, 24\n\ + adds r3, r4, 0x1\n\ + lsls r3, 24\n\ + lsrs r3, 24\n\ + movs r0, 0\n\ + str r0, [sp]\n\ + lsls r0, r5, 24\n\ + lsrs r0, 24\n\ + str r0, [sp, 0x4]\n\ + ldr r0, [sp, 0x8]\n\ + adds r1, r7, 0\n\ + bl sub_81C25A4\n\ + add sp, 0xC\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\n"); +} +#endif + +void sub_81C3C5C(u16 move) +{ + u8 *text; + if (move != 0) + { + FillWindowPixelRect(14, 0, 0x35, 0, 0x13, 0x20); + if (gBattleMoves[move].power <= 1) + text = gText_ThreeDashes; + else + { + ConvertIntToDecimalStringN(gStringVar1, gBattleMoves[move].power, 1, 3); + text = gStringVar1; + } + sub_81C25A4(14, text, 0x35, 1, 0, 0); + if (gBattleMoves[move].accuracy == 0) + text = gText_ThreeDashes; + else + { + ConvertIntToDecimalStringN(gStringVar1, gBattleMoves[move].accuracy, 1, 3); + text = gStringVar1; + } + sub_81C25A4(14, text, 0x35, 17, 0, 0); + } +} + +void sub_81C3D08() +{ + sub_81C3B08(0); + sub_81C3B08(1); + sub_81C3B08(2); + sub_81C3B08(3); + if (gUnknown_0203CF1C->unk40BC == 3) + { + sub_81C3F44(); + sub_81C3E2C(gUnknown_0203CF1C->unk40C6); + } +} + +void sub_81C3D54(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + s16 dataa = data[0] - 1; + + switch (dataa) + { + case 0: + sub_81C3B08(0); + break; + case 1: + sub_81C3B08(1); + break; + case 2: + sub_81C3B08(2); + break; + case 3: + sub_81C3B08(3); + break; + case 4: + if (gUnknown_0203CF1C->unk40BC == 3) + sub_81C3F44(); + break; + case 5: + if (gUnknown_0203CF1C->unk40BC == 3) + { + if (!(gUnknown_0203CF1C->unk40C4 == 0 && gUnknown_0203CF1C->unk40C6 == 4)) + sub_81C3E2C(gUnknown_0203CF1C->unk40C6); + } + break; + case 6: + DestroyTask(taskId); + return; + } + data[0]++; +}
\ No newline at end of file diff --git a/src/reshow_battle_screen.c b/src/reshow_battle_screen.c index 25c2ca658..343ddb9c0 100644 --- a/src/reshow_battle_screen.c +++ b/src/reshow_battle_screen.c @@ -336,9 +336,9 @@ static void CreateHealthboxSprite(u8 bank) UpdateHealthboxAttribute(gHealthBoxesIds[bank], &gPlayerParty[gBattlePartyID[bank]], HEALTHBOX_ALL); if (GetBankIdentity(bank) == IDENTITY_OPPONENT_MON2 || GetBankIdentity(bank) == IDENTITY_PLAYER_MON2) - nullsub_30(gHealthBoxesIds[bank], TRUE); + DummyBattleInterfaceFunc(gHealthBoxesIds[bank], TRUE); else - nullsub_30(gHealthBoxesIds[bank], FALSE); + DummyBattleInterfaceFunc(gHealthBoxesIds[bank], FALSE); if (GetBankSide(bank) != SIDE_PLAYER) { diff --git a/src/safari_zone.c b/src/safari_zone.c index a1ec38920..77c6bbd61 100644 --- a/src/safari_zone.c +++ b/src/safari_zone.c @@ -139,7 +139,7 @@ static void ClearAllPokeblockFeeders(void) memset(sPokeblockFeeders, 0, sizeof(sPokeblockFeeders)); } -static void GetPokeblockFeederInFront(void) +void GetPokeblockFeederInFront(void) { s16 x, y; u16 i; diff --git a/src/sprite.c b/src/sprite.c index 17b0f181a..daa019019 100644 --- a/src/sprite.c +++ b/src/sprite.c @@ -594,7 +594,7 @@ u8 CreateSpriteAt(u8 index, const struct SpriteTemplate *template, s16 x, s16 y, return index; } -u8 CreateSpriteAndAnimate(struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority) +u8 CreateSpriteAndAnimate(const struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority) { u8 i; diff --git a/src/start_menu.c b/src/start_menu.c index be30d0e53..37331a922 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -207,7 +207,7 @@ static bool32 PrintStartMenuItemsMultistep(s16 *index, u32 n) do { - if (sStartMenuItems[sCurrentStartMenuActions[_index]].func == StartMenu_PlayerName) + if (sStartMenuItems[sCurrentStartMenuActions[_index]].func.u8_void == StartMenu_PlayerName) { } @@ -2353,7 +2353,7 @@ void sub_80EDFB4(TVShow *show) show->secretBaseVisit.move = sTV_SecretBaseVisitMonsTemp[j].move; } -void sub_80EE104(void) +void TV_PutSecretBaseVisitOnTheAir(void) { TVShow *show; diff --git a/src/walda_phrase.c b/src/walda_phrase.c new file mode 100644 index 000000000..7e06d1319 --- /dev/null +++ b/src/walda_phrase.c @@ -0,0 +1,257 @@ +#include "global.h" +#include "walda_phrase.h" +#include "string_util.h" +#include "event_data.h" +#include "naming_screen.h" +#include "main.h" +#include "text.h" +#include "new_game.h" + +extern void (*gFieldCallback)(void); + +extern const u8 gText_Peekaboo[]; + +extern u8 *GetWaldaPhrasePtr(void); +extern bool32 IsWaldaPhraseEmpty(void); +extern void sub_80AF168(void); +extern void c2_exit_to_overworld_2_switch(void); +extern void SetWaldaPhrase(const u8 *src); +extern void SetWaldaWallpaperPatternId(u8 patternId); +extern void SetWaldaWallpaperIconId(u8 iconId); +extern void SetWaldaWallpaperColors(u16 backgroundColor, u16 foregroundColor); +extern void SetWaldaWallpaperLockedOrUnlocked(bool32 unlocked); + +// this file's functions +static void CB2_HandleGivenWaldaPhrase(void); +static u32 GetWaldaPhraseInputCase(u8 *inputPtr); +static bool32 TryCalculateWallpaper(u16* backgroundClr, u16 *foregroundClr, u8 *iconId, u8 *patternId, u16 trainerId, u8 *phrase); +static void sub_81D9D5C(u8 *array, u8 *letterTableIds, u32 arg2, u32 arg3, u32 loopCount); +static u32 sub_81D9DAC(u8 *array, u32 arg1, u32 loopCount); +static void sub_81D9C90(u8 *array, s32 arg1, s32 arg2); +static void sub_81D9CDC(u8 *array, u32 loopCount, u8 arg2); + +// only consonants are allowed, no vowels, some lowercase letters are missing +static const u8 sWaldaLettersTable[] = +{ + CHAR_B, CHAR_C, CHAR_D, CHAR_F, CHAR_G, CHAR_H, CHAR_J, CHAR_K, CHAR_L, CHAR_M, CHAR_N, CHAR_P, CHAR_Q, CHAR_R, CHAR_S, CHAR_T, CHAR_V, CHAR_W, CHAR_Z, + CHAR_b, CHAR_c, CHAR_d, CHAR_f, CHAR_g, CHAR_h, CHAR_j, CHAR_k, CHAR_m, CHAR_n, CHAR_p, CHAR_q, CHAR_s +}; + +enum +{ + PHRASE_GIVEN_NEW, + PHRASE_NO_CHANGE, + PHRASE_FIRST_ATTEMPT +}; + +u16 TryBufferWaldaPhrase(void) +{ + if (IsWaldaPhraseEmpty()) + return FALSE; + + StringCopy(gStringVar1, GetWaldaPhrasePtr()); + return TRUE; +} + +void DoWaldaNamingScreen(void) +{ + StringCopy(gStringVar2, GetWaldaPhrasePtr()); + DoNamingScreen(NAMING_SCREEN_WALDA, gStringVar2, 0, 0, 0, CB2_HandleGivenWaldaPhrase); +} + +static void CB2_HandleGivenWaldaPhrase(void) +{ + gSpecialVar_0x8004 = GetWaldaPhraseInputCase(gStringVar2); + + switch (gSpecialVar_0x8004) + { + case PHRASE_FIRST_ATTEMPT: + if (IsWaldaPhraseEmpty()) + SetWaldaPhrase(gText_Peekaboo); + else + gSpecialVar_0x8004 = PHRASE_NO_CHANGE; + break; + case PHRASE_GIVEN_NEW: + SetWaldaPhrase(gStringVar2); + break; + case PHRASE_NO_CHANGE: + break; + } + + StringCopy(gStringVar1, GetWaldaPhrasePtr()); + gFieldCallback = sub_80AF168; + SetMainCallback2(c2_exit_to_overworld_2_switch); +} + +static u32 GetWaldaPhraseInputCase(u8 *inputPtr) +{ + if (inputPtr[0] == EOS) + return PHRASE_FIRST_ATTEMPT; + if (StringCompare(inputPtr, GetWaldaPhrasePtr()) == 0) + return PHRASE_NO_CHANGE; + + return PHRASE_GIVEN_NEW; +} + +u16 TryGetWallpaperWithWaldaPhrase(void) +{ + u16 backgroundClr, foregroundClr; + u8 patternId, iconId; + u16 trainerId = ReadUnalignedWord(gSaveBlock2Ptr->playerTrainerId); + gScriptResult = TryCalculateWallpaper(&backgroundClr, &foregroundClr, &iconId, &patternId, trainerId, GetWaldaPhrasePtr()); + + if (gScriptResult) + { + SetWaldaWallpaperPatternId(patternId); + SetWaldaWallpaperIconId(iconId); + SetWaldaWallpaperColors(backgroundClr, foregroundClr); + } + + SetWaldaWallpaperLockedOrUnlocked(gScriptResult); + return (bool8)(gScriptResult); +} + +static u8 GetLetterTableId(u8 letter) +{ + s32 i; + + for (i = 0; i < ARRAY_COUNT(sWaldaLettersTable); i++) + { + if (sWaldaLettersTable[i] == letter) + return i; + } + + return ARRAY_COUNT(sWaldaLettersTable); +} + +static bool32 TryCalculateWallpaper(u16* backgroundClr, u16 *foregroundClr, u8 *iconId, u8 *patternId, u16 trainerId, u8 *phrase) +{ + s32 i; + ALIGNED(2) u8 array[12]; + u8 charsByTableId[16]; + u16 *ptr; + + if (StringLength(phrase) != 15) + return FALSE; + + for (i = 0; i < 15; i++) + { + charsByTableId[i] = GetLetterTableId(phrase[i]); + if (charsByTableId[i] == ARRAY_COUNT(sWaldaLettersTable)) + return FALSE; + } + + for (i = 0; i < 14; i++) + { + sub_81D9D5C(array, charsByTableId, (5 * i), 3 + (8 * i), 5); + } + + sub_81D9D5C(array, charsByTableId, 70, 115, 2); + + if (sub_81D9DAC(array, 0, 3) != sub_81D9DAC(charsByTableId, 117, 3)) + return FALSE; + + sub_81D9C90(array, 9, 21); + sub_81D9C90(array, 8, array[8] & 0xF); + sub_81D9CDC(array, 8, array[8] >> 4); + + if (array[6] != (array[0] ^ array[2] ^ array[4] ^ (trainerId >> 8))) + return FALSE; + + if (array[7] != (array[1] ^ array[3] ^ array[5] ^ (trainerId & 0xFF))) + return FALSE; + + ptr = (u16*)(&array[0]); + *backgroundClr = *ptr; + + ptr = (u16*)(&array[2]); + *foregroundClr = *ptr; + + *iconId = array[4]; + *patternId = array[5]; + + return TRUE; +} + +static void sub_81D9C90(u8 *array, s32 arg1, s32 arg2) +{ + s32 i, j; + u8 var1, var2; + + for (i = arg2 - 1; i != -1; i--) + { + var1 = (array[0] & 0x80) >> 7; + + var1++; var1--; // needed to match + + for (j = arg1 - 1; j >= 0; j--) + { + var2 = array[j] & 0x80; + array[j] <<= 1; + array[j] |= var1; + var1 = var2 >> 7; + } + } +} + +static void sub_81D9CDC(u8 *array, u32 loopCount, u8 arg2) +{ + u32 i; + + arg2 |= (arg2 << 4); + + for (i = 0; i < loopCount; i++) + { + array[i] ^= arg2; + } +} + +static bool8 sub_81D9D0C(u8 *array, u32 arg1) +{ + u32 arrayId = arg1 >> 3; + u32 bits = 0x80 >> (7 & arg1); + + return ((array[arrayId] & bits) != 0); +} + +static void sub_81D9D28(u8 *array, u32 arg1) +{ + u32 arrayId = arg1 >> 3; + u8 bits = 0x80 >> (7 & arg1); + + array[arrayId] |= bits; +} + +static void sub_81D9D40(u8 *array, u32 arg1) +{ + u32 arrayId = arg1 >> 3; + u8 bits = ~(0x80 >> (7 & arg1)); + + array[arrayId] &= bits; +} + +static void sub_81D9D5C(u8 *array, u8 *letterTableIds, u32 arg2, u32 arg3, u32 loopCount) +{ + u32 i; + + for (i = 0; i < loopCount; i++) + { + if (sub_81D9D0C(letterTableIds, arg3 + i)) + sub_81D9D28(array, arg2 + i); + else + sub_81D9D40(array, arg2 + i); + } +} + +static u32 sub_81D9DAC(u8 *array, u32 arg1, u32 loopCount) +{ + u32 ret, i; + + for (ret = 0, i = 0; i < loopCount; i++) + { + ret <<= 1; + ret |= sub_81D9D0C(array, arg1 + i); + } + + return ret; +} diff --git a/sym_common.txt b/sym_common.txt index acc6cf862..85b508403 100644 --- a/sym_common.txt +++ b/sym_common.txt @@ -432,7 +432,7 @@ gUnknown_03006370: @ 3006370 .include "agb_flash.o" -gUnknown_03007868: @ 3007868 +gRfuState: @ 3007868 .space 0x8 gUnknown_03007870: @ 3007870 diff --git a/sym_ewram.txt b/sym_ewram.txt index 8ce7ce8df..d2779079e 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -196,7 +196,7 @@ gUnknown_02022D0A: @ 2022D0A gUnknown_02022D0C: @ 2022D0C .space 0x4 -gUnknown_02022D10: @ 2022D10 +gBattleBuffersTransferData: @ 2022D10 .space 0x100 gUnknown_02022E10: @ 2022E10 @@ -282,7 +282,7 @@ gNoOfAllBanks: @ 202406C gBattlePartyID: @ 202406E .space 0x8 -gBanksBySide: @ 2024076 +gBanksByIdentity: @ 2024076 .space 0x4 gActionsByTurnOrder: @ 202407A @@ -471,10 +471,10 @@ gBattleScripting: @ 2024474 gBattleStruct: @ 202449C .space 0x4 -gUnknown_020244A0: @ 20244A0 +gLinkBattleSendBuffer: @ 20244A0 .space 0x4 -gUnknown_020244A4: @ 20244A4 +gLinkBattleRecvBuffer: @ 20244A4 .space 0x4 gBattleResources: @ 20244A8 @@ -713,77 +713,9 @@ gUnknown_02037622: @ 2037622 .include "src/tileset_anims.o" .include "src/palette.o" .include "src/sound.o" - - .align 0x2 - -gBattleAnimScriptPtr: @ 20383F0 - .space 0x4 - -gBattleAnimScriptRetAddr: @ 20383F4 - .space 0x4 - -gAnimScriptCallback: @ 20383F8 - .space 0x4 - -gAnimFramesToWait: @ 20383FC - .space 0x1 - -gAnimScriptActive: @ 20383FD - .space 0x1 - -gAnimVisualTaskCount: @ 20383FE - .space 0x1 - -gAnimSoundTaskCount: @ 20383FF - .space 0x1 - -gDisableStructMoveAnim: @ 2038400 - .space 0x4 - -gMoveDmgMoveAnim: @ 2038404 - .space 0x4 - -gMovePowerMoveAnim: @ 2038408 - .space 0x2 - -gAnimSpriteIndexArray: @ 203840A - .space 0x10 - -gHappinessMoveAnim: @ 203841A - .space 0x2 - -gWeatherMoveAnim: @ 203841C - .space 0x2 - -gBattleAnimArgs: @ 203841E - .space 0x10 - -gSoundAnimFramesToWait: @ 203842E - .space 0x2 - -gUnknown_02038430: @ 2038430 - .space 0x2 - -gUnknown_02038432: @ 2038432 - .space 0x1 - -gUnknown_02038433: @ 2038433 - .space 0x1 - -gAnimMoveIndex: @ 2038434 - .space 0x2 - -gAnimationBankAttacker: @ 2038436 - .space 0x1 - -gAnimationBankTarget: @ 2038437 - .space 0x1 - -gUnknown_02038438: @ 2038438 - .space 0x8 + .include "src/battle_anim.o" -gUnknown_02038440: @ 2038440 - .space 0x4 +.align 2 gUnknown_02038444: @ 2038444 .space 0x10 @@ -1058,7 +990,7 @@ gUnknown_02039F30: @ 2039F30 gUnknown_02039F31: @ 2039F31 .space 0x3 -gUnknown_02039F34: @ 2039F34 +gContestResources: @ 2039F34 .space 0x4 gUnknown_02039F38: @ 2039F38 @@ -1173,8 +1105,7 @@ gUnknown_0203A12C: @ 203A12C gUnknown_0203A130: @ 203A130 .space 0x4 -gUnknown_0203A134: @ 203A134 - .space 0x4 + .include "src/mail.o" gUnknown_0203A138: @ 203A138 .space 0x8 @@ -1188,68 +1119,10 @@ gUnknown_0203A144: @ 203A144 gUnknown_0203A148: @ 203A148 .space 0x4 -gUnknown_0203A14C: @ 203A14C - .space 0x4 - -gUnknown_0203A150: @ 203A150 - .space 0x1 - -gUnknown_0203A151: @ 203A151 - .space 0x1 - -gUnknown_0203A152: @ 203A152 - .space 0x10 - -gUnknown_0203A162: @ 203A162 - .space 0xC - -gUnknown_0203A16E: @ 203A16E - .space 0x2 - -gUnknown_0203A170: @ 203A170 - .space 0x2 - -gUnknown_0203A172: @ 203A172 - .space 0x1 - -gUnknown_0203A173: @ 203A173 - .space 0x9 - -gUnknown_0203A17C: @ 203A17C - .space 0xC - -gUnknown_0203A188: @ 203A188 - .space 0x4 - -gUnknown_0203A18C: @ 203A18C - .space 0x4 - -gUnknown_0203A190: @ 203A190 - .space 0x8A4 - -gUnknown_0203AA34: @ 203AA34 - .space 0x2 - -gUnknown_0203AA36: @ 203AA36 - .space 0x2 - -gUnknown_0203AA38: @ 203AA38 - .space 0x1 - -gUnknown_0203AA39: @ 203AA39 - .space 0x1 - -gUnknown_0203AA3A: @ 203AA3A - .space 0x2 - -gUnknown_0203AA3C: @ 203AA3C - .space 0x8 - -gUnknown_0203AA44: @ 203AA44 - .space 0x80 + .include "src/decoration.o" + .align 2 -gUnknown_0203AAC4: @ 203AAC4 - .space 0x4 +@ slot_machine gUnknown_0203AAC8: @ 203AAC8 .space 0x4 @@ -1477,9 +1350,7 @@ gUnknown_0203BC34: @ 203BC34 gUnknown_0203BC38: @ 203BC38 .space 0x8 -gDecorationInventories: @ 203BC40 - .space 0x40 - + .include "src/decoration_inventory.o" .include "src/roamer.o" gUnknown_0203BC88: @ 203BC88 |