diff options
59 files changed, 1522 insertions, 2572 deletions
diff --git a/asm/battle_message.s b/asm/battle_message.s index bd1011f9a..a7a52f5f7 100644 --- a/asm/battle_message.s +++ b/asm/battle_message.s @@ -1802,7 +1802,7 @@ _080D8120: cmp r1, 0 beq _080D8134 mov r0, sp - bl sub_80E7460 + bl CopyEReaderTrainerName5 mov r4, sp b _080D8382 _080D8134: diff --git a/asm/battle_tower.s b/asm/battle_tower.s index 08fefffbc..6b8b36642 100644 --- a/asm/battle_tower.s +++ b/asm/battle_tower.s @@ -3469,8 +3469,8 @@ _080E7458: .4byte gSaveBlock2Ptr _080E745C: .4byte 0x000004a1 thumb_func_end GetEreaderTrainerClassId - thumb_func_start sub_80E7460 -sub_80E7460: @ 80E7460 + thumb_func_start CopyEReaderTrainerName5 +CopyEReaderTrainerName5: @ 80E7460 push {r4,lr} adds r3, r0, 0 movs r2, 0 @@ -3495,7 +3495,7 @@ _080E746E: .align 2, 0 _080E7488: .4byte gSaveBlock2Ptr _080E748C: .4byte 0x000004a4 - thumb_func_end sub_80E7460 + thumb_func_end CopyEReaderTrainerName5 thumb_func_start ValidateEReaderTrainer ValidateEReaderTrainer: @ 80E7490 diff --git a/asm/field_control_avatar.s b/asm/field_control_avatar.s index 842c9c33e..515d4b606 100644 --- a/asm/field_control_avatar.s +++ b/asm/field_control_avatar.s @@ -367,7 +367,7 @@ sub_806CAC8: @ 806CAC8 bl MENewsJisanStepCounter bl IncrementRenewableHiddenItemStepCounter bl sub_80CC918 - bl sub_80CB054 + bl IncrementResortGorgeousStepCounter bl sub_80CCFBC mov r0, sp adds r1, r4, 0 diff --git a/asm/field_specials.s b/asm/field_specials.s index 653923fda..5e17271e6 100644 --- a/asm/field_specials.s +++ b/asm/field_specials.s @@ -5,2338 +5,6 @@ .text - thumb_func_start sub_80CA618 -sub_80CA618: @ 80CA618 - push {lr} - bl sub_8112364 - ldr r0, _080CA62C @ =CB2_ShowDiploma - bl SetMainCallback2 - bl ScriptContext2_Enable - pop {r0} - bx r0 - .align 2, 0 -_080CA62C: .4byte CB2_ShowDiploma - thumb_func_end sub_80CA618 - - thumb_func_start sub_80CA630 -sub_80CA630: @ 80CA630 - push {r4,lr} - ldr r0, _080CA65C @ =gPlayerAvatar - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080CA644 - movs r0, 0x2 - bl SetPlayerAvatarTransitionFlags -_080CA644: - movs r4, 0x8D - lsls r4, 1 - adds r0, r4, 0 - bl Overworld_SetSavedMusic - adds r0, r4, 0 - bl Overworld_ChangeMusicTo - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CA65C: .4byte gPlayerAvatar - thumb_func_end sub_80CA630 - - thumb_func_start nullsub_74 -nullsub_74: @ 80CA660 - bx lr - thumb_func_end nullsub_74 - - thumb_func_start sub_80CA664 -sub_80CA664: @ 80CA664 - push {lr} - movs r0, 0x4 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - beq _080CA676 - movs r0, 0x1 - b _080CA688 -_080CA676: - movs r0, 0x2 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - bne _080CA686 - movs r0, 0 - b _080CA688 -_080CA686: - movs r0, 0x2 -_080CA688: - pop {r1} - bx r1 - thumb_func_end sub_80CA664 - - thumb_func_start sub_80CA68C -sub_80CA68C: @ 80CA68C - push {lr} - ldr r0, _080CA698 @ =gStringVar4 - bl ShowFieldMessage - pop {r0} - bx r0 - .align 2, 0 -_080CA698: .4byte gStringVar4 - thumb_func_end sub_80CA68C - - thumb_func_start sub_80CA69C -sub_80CA69C: @ 80CA69C - ldr r1, _080CA6B0 @ =gSpecialVar_0x8004 - ldr r0, _080CA6B4 @ =gSaveBlock1Ptr - ldr r2, [r0] - ldrh r0, [r2] - strh r0, [r1] - ldr r1, _080CA6B8 @ =gSpecialVar_0x8005 - ldrh r0, [r2, 0x2] - strh r0, [r1] - bx lr - .align 2, 0 -_080CA6B0: .4byte gSpecialVar_0x8004 -_080CA6B4: .4byte gSaveBlock1Ptr -_080CA6B8: .4byte gSpecialVar_0x8005 - thumb_func_end sub_80CA69C - - thumb_func_start sub_80CA6BC -sub_80CA6BC: @ 80CA6BC - push {lr} - ldr r0, _080CA6D8 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r1, [r0, 0xB] - lsls r1, 8 - ldrb r0, [r0, 0xA] - orrs r0, r1 - movs r1, 0xA - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_080CA6D8: .4byte gSaveBlock2Ptr - thumb_func_end sub_80CA6BC - - thumb_func_start sub_80CA6DC -sub_80CA6DC: @ 80CA6DC - push {lr} - ldr r0, _080CA6F4 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _080CA700 - ldr r0, _080CA6F8 @ =gStringVar1 - ldr r1, _080CA6FC @ =gUnknown_8417FBB - bl StringCopy - b _080CA708 - .align 2, 0 -_080CA6F4: .4byte gSaveBlock2Ptr -_080CA6F8: .4byte gStringVar1 -_080CA6FC: .4byte gUnknown_8417FBB -_080CA700: - ldr r0, _080CA70C @ =gStringVar1 - ldr r1, _080CA710 @ =gUnknown_8417FC3 - bl StringCopy -_080CA708: - pop {r0} - bx r0 - .align 2, 0 -_080CA70C: .4byte gStringVar1 -_080CA710: .4byte gUnknown_8417FC3 - thumb_func_end sub_80CA6DC - - thumb_func_start sub_80CA714 -sub_80CA714: @ 80CA714 - push {lr} - ldr r0, _080CA72C @ =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _080CA738 - ldr r0, _080CA730 @ =gStringVar1 - ldr r1, _080CA734 @ =gUnknown_8417FD0 - bl StringCopy - b _080CA740 - .align 2, 0 -_080CA72C: .4byte gSaveBlock2Ptr -_080CA730: .4byte gStringVar1 -_080CA734: .4byte gUnknown_8417FD0 -_080CA738: - ldr r0, _080CA744 @ =gStringVar1 - ldr r1, _080CA748 @ =gUnknown_8417FCC - bl StringCopy -_080CA740: - pop {r0} - bx r0 - .align 2, 0 -_080CA744: .4byte gStringVar1 -_080CA748: .4byte gUnknown_8417FCC - thumb_func_end sub_80CA714 - - thumb_func_start Special_GetBattleOutcome -Special_GetBattleOutcome: @ 80CA74C - ldr r0, _080CA754 @ =gBattleOutcome - ldrb r0, [r0] - bx lr - .align 2, 0 -_080CA754: .4byte gBattleOutcome - thumb_func_end Special_GetBattleOutcome - - thumb_func_start Special_SetHiddenItemFlag -Special_SetHiddenItemFlag: @ 80CA758 - push {lr} - ldr r0, _080CA768 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - bl FlagSet - pop {r0} - bx r0 - .align 2, 0 -_080CA768: .4byte gSpecialVar_0x8004 - thumb_func_end Special_SetHiddenItemFlag - - thumb_func_start sub_80CA76C -sub_80CA76C: @ 80CA76C - push {r4,lr} - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r1, r0 - ldr r0, _080CA790 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - cmp r0, 0xFF - bne _080CA794 - movs r0, 0x6 - b _080CA7E6 - .align 2, 0 -_080CA790: .4byte gPlayerParty -_080CA794: - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - cmp r0, 0xC7 - bls _080CA7A4 - movs r0, 0x5 - b _080CA7E6 -_080CA7A4: - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - cmp r0, 0x95 - bls _080CA7B4 - movs r0, 0x4 - b _080CA7E6 -_080CA7B4: - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - cmp r0, 0x63 - bls _080CA7C4 - movs r0, 0x3 - b _080CA7E6 -_080CA7C4: - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - cmp r0, 0x31 - bls _080CA7D4 - movs r0, 0x2 - b _080CA7E6 -_080CA7D4: - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - cmp r0, 0 - bne _080CA7E4 - movs r0, 0 - b _080CA7E6 -_080CA7E4: - movs r0, 0x1 -_080CA7E6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80CA76C - - thumb_func_start sub_80CA7EC -sub_80CA7EC: @ 80CA7EC - push {lr} - bl sub_8112364 - ldr r1, _080CA800 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic - movs r0, 0x1 - bl sub_80BFF50 - pop {r0} - bx r0 - .align 2, 0 -_080CA800: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic - thumb_func_end sub_80CA7EC - - thumb_func_start sub_80CA804 -sub_80CA804: @ 80CA804 - push {r4-r6,lr} - movs r5, 0 - ldr r6, _080CA850 @ =gBaseStats -_080CA80A: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _080CA854 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x5 - bl GetMonData - cmp r0, 0 - beq _080CA858 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _080CA858 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r0, [r1, 0x6] - cmp r0, 0xC - beq _080CA84C - ldrb r0, [r1, 0x7] - cmp r0, 0xC - bne _080CA858 -_080CA84C: - movs r0, 0x1 - b _080CA864 - .align 2, 0 -_080CA850: .4byte gBaseStats -_080CA854: .4byte gPlayerParty -_080CA858: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _080CA80A - movs r0, 0 -_080CA864: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80CA804 - - thumb_func_start sub_80CA86C -sub_80CA86C: @ 80CA86C - push {r4,lr} - ldr r4, _080CA8A0 @ =sub_80CA8A8 - adds r0, r4, 0 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080CA89A - adds r0, r4, 0 - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080CA8A4 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0x8] - strh r0, [r1, 0xA] -_080CA89A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CA8A0: .4byte sub_80CA8A8 -_080CA8A4: .4byte gTasks - thumb_func_end sub_80CA86C - - thumb_func_start sub_80CA8A8 -sub_80CA8A8: @ 80CA8A8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080CA8F4 @ =gTasks+0x8 - adds r4, r0, r1 - movs r1, 0x2 - ldrsh r0, [r4, r1] - cmp r0, 0x6 - bne _080CA8E6 - ldrh r1, [r4] - movs r0, 0x1 - ands r0, r1 - bl sub_80CA8F8 - bl DrawWholeMapView - movs r0, 0 - strh r0, [r4, 0x2] - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - bne _080CA8E6 - adds r0, r5, 0 - bl DestroyTask -_080CA8E6: - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CA8F4: .4byte gTasks+0x8 - thumb_func_end sub_80CA8A8 - - thumb_func_start sub_80CA8F8 -sub_80CA8F8: @ 80CA8F8 - push {r4-r7,lr} - lsls r0, 16 - lsrs r6, r0, 16 - movs r4, 0 - movs r7, 0 - movs r5, 0 - bl GetPlayerFacingDirection - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x3 - beq _080CA926 - cmp r0, 0x3 - bgt _080CA91C - cmp r0, 0x2 - beq _080CA922 - b _080CA92E -_080CA91C: - cmp r1, 0x4 - beq _080CA92A - b _080CA92E -_080CA922: - movs r7, 0 - b _080CA92C -_080CA926: - movs r7, 0xFF - b _080CA92C -_080CA92A: - movs r7, 0x1 -_080CA92C: - movs r5, 0xFF -_080CA92E: - cmp r6, 0 - beq _080CA954 - ldr r0, _080CA940 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r0, 0 - bne _080CA944 - movs r4, 0x62 - b _080CA96E - .align 2, 0 -_080CA940: .4byte gSpecialVar_0x8004 -_080CA944: - cmp r0, 0x1 - beq _080CA94C - cmp r0, 0x2 - bne _080CA96E -_080CA94C: - ldr r4, _080CA950 @ =0x0000028f - b _080CA96E - .align 2, 0 -_080CA950: .4byte 0x0000028f -_080CA954: - ldr r0, _080CA960 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r0, 0 - bne _080CA964 - movs r4, 0x63 - b _080CA96E - .align 2, 0 -_080CA960: .4byte gSpecialVar_0x8004 -_080CA964: - cmp r0, 0x1 - beq _080CA96C - cmp r0, 0x2 - bne _080CA96E -_080CA96C: - ldr r4, _080CA9A0 @ =0x0000028a -_080CA96E: - ldr r0, _080CA9A4 @ =gSaveBlock1Ptr - ldr r2, [r0] - movs r1, 0 - ldrsh r0, [r2, r1] - lsls r1, r7, 24 - asrs r1, 24 - adds r0, r1 - adds r0, 0x7 - movs r3, 0x2 - ldrsh r1, [r2, r3] - lsls r2, r5, 24 - asrs r2, 24 - adds r1, r2 - adds r1, 0x7 - movs r3, 0xC0 - lsls r3, 4 - adds r2, r3, 0 - orrs r4, r2 - adds r2, r4, 0 - bl MapGridSetMetatileIdAt - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080CA9A0: .4byte 0x0000028a -_080CA9A4: .4byte gSaveBlock1Ptr - thumb_func_end sub_80CA8F8 - - thumb_func_start sub_80CA9A8 -sub_80CA9A8: @ 80CA9A8 - push {r4-r6,lr} - movs r4, 0 - movs r6, 0 - movs r5, 0 - bl GetPlayerFacingDirection - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x3 - beq _080CA9D2 - cmp r0, 0x3 - bgt _080CA9C8 - cmp r0, 0x2 - beq _080CA9CE - b _080CA9DA -_080CA9C8: - cmp r1, 0x4 - beq _080CA9D6 - b _080CA9DA -_080CA9CE: - movs r6, 0 - b _080CA9D8 -_080CA9D2: - movs r6, 0xFF - b _080CA9D8 -_080CA9D6: - movs r6, 0x1 -_080CA9D8: - movs r5, 0xFF -_080CA9DA: - ldr r0, _080CA9E8 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r0, 0 - bne _080CA9EC - movs r4, 0x62 - b _080CA9F6 - .align 2, 0 -_080CA9E8: .4byte gSpecialVar_0x8004 -_080CA9EC: - cmp r0, 0x1 - beq _080CA9F4 - cmp r0, 0x2 - bne _080CA9F6 -_080CA9F4: - ldr r4, _080CAA2C @ =0x0000028f -_080CA9F6: - ldr r0, _080CAA30 @ =gSaveBlock1Ptr - ldr r2, [r0] - movs r1, 0 - ldrsh r0, [r2, r1] - lsls r1, r6, 24 - asrs r1, 24 - adds r0, r1 - adds r0, 0x7 - movs r3, 0x2 - ldrsh r1, [r2, r3] - lsls r2, r5, 24 - asrs r2, 24 - adds r1, r2 - adds r1, 0x7 - movs r3, 0xC0 - lsls r3, 4 - adds r2, r3, 0 - orrs r4, r2 - adds r2, r4, 0 - bl MapGridSetMetatileIdAt - bl DrawWholeMapView - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CAA2C: .4byte 0x0000028f -_080CAA30: .4byte gSaveBlock1Ptr - thumb_func_end sub_80CA9A8 - - thumb_func_start SpawnCameraObject -SpawnCameraObject: @ 80CAA34 - push {lr} - sub sp, 0x8 - ldr r0, _080CAA80 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldrh r3, [r0] - adds r3, 0x7 - lsls r3, 16 - asrs r3, 16 - ldrh r0, [r0, 0x2] - adds r0, 0x7 - lsls r0, 16 - asrs r0, 16 - str r0, [sp] - movs r0, 0x3 - str r0, [sp, 0x4] - movs r0, 0x12 - movs r1, 0x8 - movs r2, 0x7F - bl SpawnSpecialFieldObjectParameterized - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080CAA84 @ =gMapObjects - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1, 0x1] - movs r2, 0x20 - orrs r0, r2 - strb r0, [r1, 0x1] - ldrb r0, [r1, 0x4] - bl CameraObjectSetFollowedObjectId - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_080CAA80: .4byte gSaveBlock1Ptr -_080CAA84: .4byte gMapObjects - thumb_func_end SpawnCameraObject - - thumb_func_start RemoveCameraObject -RemoveCameraObject: @ 80CAA88 - push {lr} - bl GetPlayerAvatarObjectId - lsls r0, 24 - lsrs r0, 24 - bl CameraObjectSetFollowedObjectId - ldr r0, _080CAAA8 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldrb r1, [r0, 0x5] - ldrb r2, [r0, 0x4] - movs r0, 0x7F - bl RemoveFieldObjectByLocalIdAndMap - pop {r0} - bx r0 - .align 2, 0 -_080CAAA8: .4byte gSaveBlock1Ptr - thumb_func_end RemoveCameraObject - - thumb_func_start sub_80CAAAC -sub_80CAAAC: @ 80CAAAC - push {lr} - ldr r0, _080CAAB8 @ =gStringVar1 - bl sub_80E7460 - pop {r0} - bx r0 - .align 2, 0 -_080CAAB8: .4byte gStringVar1 - thumb_func_end sub_80CAAAC - - thumb_func_start sub_80CAABC -sub_80CAABC: @ 80CAABC - push {lr} - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x16 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - ldr r1, _080CAADC @ =gUnknown_83F5B1A - adds r0, r1 - ldrb r0, [r0] - pop {r1} - bx r1 - .align 2, 0 -_080CAADC: .4byte gUnknown_83F5B1A - thumb_func_end sub_80CAABC - - thumb_func_start LeadMonHasEffortRibbon -LeadMonHasEffortRibbon: @ 80CAAE0 - push {lr} - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _080CAB04 @ =gPlayerParty - adds r0, r1 - movs r1, 0x47 - movs r2, 0 - bl GetMonData - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_080CAB04: .4byte gPlayerParty - thumb_func_end LeadMonHasEffortRibbon - - thumb_func_start GivLeadMonEffortRibbon -GivLeadMonEffortRibbon: @ 80CAB08 - push {lr} - sub sp, 0x4 - movs r0, 0x2A - bl IncrementGameStat - ldr r0, _080CAB3C @ =0x0000083b - bl FlagSet - movs r1, 0x1 - mov r0, sp - strb r1, [r0] - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _080CAB40 @ =gPlayerParty - adds r0, r1 - movs r1, 0x47 - mov r2, sp - bl SetMonData - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080CAB3C: .4byte 0x0000083b -_080CAB40: .4byte gPlayerParty - thumb_func_end GivLeadMonEffortRibbon - - thumb_func_start ScrSpecial_AreLeadMonEVsMaxedOut -ScrSpecial_AreLeadMonEVsMaxedOut: @ 80CAB44 - push {lr} - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _080CAB68 @ =gPlayerParty - adds r0, r1 - bl GetMonEVCount - lsls r0, 16 - ldr r1, _080CAB6C @ =0x01fd0000 - cmp r0, r1 - bhi _080CAB70 - movs r0, 0 - b _080CAB72 - .align 2, 0 -_080CAB68: .4byte gPlayerParty -_080CAB6C: .4byte 0x01fd0000 -_080CAB70: - movs r0, 0x1 -_080CAB72: - pop {r1} - bx r1 - thumb_func_end ScrSpecial_AreLeadMonEVsMaxedOut - - thumb_func_start sub_80CAB78 -sub_80CAB78: @ 80CAB78 - push {r4-r6,lr} - ldr r0, _080CABB4 @ =0x00004031 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - bl GetStarterPokemon - lsls r0, 16 - lsrs r6, r0, 16 - bl CalculatePlayerPartyCount - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - cmp r4, r5 - bcs _080CABC6 -_080CAB9A: - movs r0, 0x64 - muls r0, r4 - ldr r1, _080CABB8 @ =gPlayerParty - adds r0, r1 - movs r1, 0x41 - movs r2, 0 - bl GetMonData - cmp r0, r6 - bne _080CABBC - movs r0, 0x1 - b _080CABC8 - .align 2, 0 -_080CABB4: .4byte 0x00004031 -_080CABB8: .4byte gPlayerParty -_080CABBC: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _080CAB9A -_080CABC6: - movs r0, 0 -_080CABC8: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80CAB78 - - thumb_func_start sub_80CABD0 -sub_80CABD0: @ 80CABD0 - push {r4-r6,lr} - movs r6, 0 -_080CABD4: - movs r4, 0 - lsls r5, r6, 24 -_080CABD8: - lsls r1, r4, 24 - lsrs r1, 24 - lsrs r0, r5, 24 - movs r2, 0xB - bl GetBoxMonDataFromAnyBox - cmp r0, 0 - bne _080CABEC - movs r0, 0x1 - b _080CAC02 -_080CABEC: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1D - bls _080CABD8 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0xD - bls _080CABD4 - movs r0, 0 -_080CAC02: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80CABD0 - - thumb_func_start sub_80CAC08 -sub_80CAC08: @ 80CAC08 - push {lr} - ldr r0, _080CAC1C @ =gPlayerParty - movs r1, 0x3F - bl CheckPartyPokerus - lsls r0, 24 - cmp r0, 0 - beq _080CAC20 - movs r0, 0x1 - b _080CAC22 - .align 2, 0 -_080CAC1C: .4byte gPlayerParty -_080CAC20: - movs r0, 0 -_080CAC22: - pop {r1} - bx r1 - thumb_func_end sub_80CAC08 - - thumb_func_start sub_80CAC28 -sub_80CAC28: @ 80CAC28 - push {lr} - ldr r0, _080CAC6C @ =sub_80CAC84 - movs r1, 0x9 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080CAC70 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _080CAC74 @ =gSpecialVar_0x8005 - ldrh r0, [r0] - movs r2, 0 - strh r0, [r1, 0x8] - strh r2, [r1, 0xA] - ldr r0, _080CAC78 @ =gSpecialVar_0x8006 - ldrh r0, [r0] - strh r0, [r1, 0xC] - ldr r0, _080CAC7C @ =gSpecialVar_0x8007 - ldrh r0, [r0] - strh r0, [r1, 0xE] - ldr r0, _080CAC80 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - strh r0, [r1, 0x10] - movs r0, 0 - bl SetCameraPanningCallback - movs r0, 0xCF - bl PlaySE - pop {r0} - bx r0 - .align 2, 0 -_080CAC6C: .4byte sub_80CAC84 -_080CAC70: .4byte gTasks -_080CAC74: .4byte gSpecialVar_0x8005 -_080CAC78: .4byte gSpecialVar_0x8006 -_080CAC7C: .4byte gSpecialVar_0x8007 -_080CAC80: .4byte gSpecialVar_0x8004 - thumb_func_end sub_80CAC28 - - thumb_func_start sub_80CAC84 -sub_80CAC84: @ 80CAC84 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080CACE4 @ =gTasks+0x8 - adds r4, r0, r1 - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - movs r1, 0x2 - ldrsh r0, [r4, r1] - movs r2, 0x6 - ldrsh r1, [r4, r2] - bl __modsi3 - cmp r0, 0 - bne _080CACDC - strh r0, [r4, 0x2] - ldrh r0, [r4, 0x4] - subs r0, 0x1 - strh r0, [r4, 0x4] - ldrh r0, [r4] - negs r0, r0 - strh r0, [r4] - ldrh r0, [r4, 0x8] - negs r0, r0 - strh r0, [r4, 0x8] - movs r1, 0 - ldrsh r0, [r4, r1] - movs r2, 0x8 - ldrsh r1, [r4, r2] - bl SetCameraPanning - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080CACDC - adds r0, r5, 0 - bl sub_80CACE8 - bl InstallCameraPanAheadCallback -_080CACDC: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CACE4: .4byte gTasks+0x8 - thumb_func_end sub_80CAC84 - - thumb_func_start sub_80CACE8 -sub_80CACE8: @ 80CACE8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - bl EnableBothScriptContexts - pop {r0} - bx r0 - thumb_func_end sub_80CACE8 - - thumb_func_start GetLeadMonIndex -GetLeadMonIndex: @ 80CACFC - push {r4-r6,lr} - bl CalculatePlayerPartyCount - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 - cmp r5, r6 - bcs _080CAD4A -_080CAD0C: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _080CAD3C @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x41 - movs r2, 0 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _080CAD40 - adds r0, r4, 0 - movs r1, 0x41 - movs r2, 0 - bl GetMonData - cmp r0, 0 - beq _080CAD40 - adds r0, r5, 0 - b _080CAD4C - .align 2, 0 -_080CAD3C: .4byte gPlayerParty -_080CAD40: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, r6 - bcc _080CAD0C -_080CAD4A: - movs r0, 0 -_080CAD4C: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end GetLeadMonIndex - - thumb_func_start sub_80CAD54 -sub_80CAD54: @ 80CAD54 - push {lr} - ldr r0, _080CAD74 @ =gSpecialVar_0x8004 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080CAD78 @ =gPlayerParty - adds r0, r1 - movs r1, 0x41 - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - .align 2, 0 -_080CAD74: .4byte gSpecialVar_0x8004 -_080CAD78: .4byte gPlayerParty - thumb_func_end sub_80CAD54 - - thumb_func_start sub_80CAD7C -sub_80CAD7C: @ 80CAD7C - push {r4,lr} - ldr r0, _080CADA8 @ =gSpecialVar_0x8004 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080CADAC @ =gPlayerParty - adds r0, r1 - ldr r4, _080CADB0 @ =gStringVar1 - movs r1, 0x7 - adds r2, r4, 0 - bl GetMonData - ldr r0, _080CADB4 @ =gSaveBlock2Ptr - ldr r0, [r0] - adds r1, r4, 0 - bl StringCompare - cmp r0, 0 - beq _080CADB8 - movs r0, 0x1 - b _080CADBA - .align 2, 0 -_080CADA8: .4byte gSpecialVar_0x8004 -_080CADAC: .4byte gPlayerParty -_080CADB0: .4byte gStringVar1 -_080CADB4: .4byte gSaveBlock2Ptr -_080CADB8: - movs r0, 0 -_080CADBA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80CAD7C - - thumb_func_start nullsub_75 -nullsub_75: @ 80CADC0 - bx lr - thumb_func_end nullsub_75 - - thumb_func_start sub_80CADC4 -sub_80CADC4: @ 80CADC4 - push {lr} - sub sp, 0x10 - movs r1, 0xFF - add r0, sp, 0xC - strb r1, [r0] - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r1, 0x2 - add r2, sp, 0xC - movs r3, 0 - bl AddTextPrinterParameterized - bl sub_809D424 - add sp, 0x10 - pop {r0} - bx r0 - thumb_func_end sub_80CADC4 - - thumb_func_start Special_SetVermilionTrashCans -Special_SetVermilionTrashCans: @ 80CADEC - push {r4,r5,lr} - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xF - bl __umodsi3 - adds r0, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldr r1, _080CAE20 @ =gSpecialVar_0x8004 - strh r2, [r1] - ldr r0, _080CAE24 @ =gSpecialVar_0x8005 - strh r2, [r0] - ldrh r0, [r1] - subs r0, 0x1 - cmp r0, 0xE - bls _080CAE14 - b _080CB01C -_080CAE14: - lsls r0, 2 - ldr r1, _080CAE28 @ =_080CAE2C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080CAE20: .4byte gSpecialVar_0x8004 -_080CAE24: .4byte gSpecialVar_0x8005 -_080CAE28: .4byte _080CAE2C - .align 2, 0 -_080CAE2C: - .4byte _080CAE68 - .4byte _080CAE90 - .4byte _080CAE90 - .4byte _080CAE90 - .4byte _080CAEC8 - .4byte _080CAEE8 - .4byte _080CAF28 - .4byte _080CAF28 - .4byte _080CAF28 - .4byte _080CAF68 - .4byte _080CAF9C - .4byte _080CAFC4 - .4byte _080CAFC4 - .4byte _080CAFC4 - .4byte _080CAFF8 -_080CAE68: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080CAE84 - ldr r1, _080CAE80 @ =gSpecialVar_0x8005 - ldrh r0, [r1] - adds r0, 0x1 - b _080CB01A - .align 2, 0 -_080CAE80: .4byte gSpecialVar_0x8005 -_080CAE84: - ldr r1, _080CAE8C @ =gSpecialVar_0x8005 - ldrh r0, [r1] - adds r0, 0x5 - b _080CB01A - .align 2, 0 -_080CAE8C: .4byte gSpecialVar_0x8005 -_080CAE90: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0 - bne _080CAEB4 - ldr r1, _080CAEB0 @ =gSpecialVar_0x8005 - ldrh r0, [r1] - adds r0, 0x1 - b _080CB01A - .align 2, 0 -_080CAEB0: .4byte gSpecialVar_0x8005 -_080CAEB4: - cmp r2, 0x1 - beq _080CAEBA - b _080CB014 -_080CAEBA: - ldr r1, _080CAEC4 @ =gSpecialVar_0x8005 - ldrh r0, [r1] - adds r0, 0x5 - b _080CB01A - .align 2, 0 -_080CAEC4: .4byte gSpecialVar_0x8005 -_080CAEC8: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080CAEDA - b _080CB014 -_080CAEDA: - ldr r1, _080CAEE4 @ =gSpecialVar_0x8005 - ldrh r0, [r1] - adds r0, 0x5 - b _080CB01A - .align 2, 0 -_080CAEE4: .4byte gSpecialVar_0x8005 -_080CAEE8: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0 - bne _080CAF0C - ldr r1, _080CAF08 @ =gSpecialVar_0x8005 - ldrh r0, [r1] - subs r0, 0x5 - b _080CB01A - .align 2, 0 -_080CAF08: .4byte gSpecialVar_0x8005 -_080CAF0C: - cmp r2, 0x1 - bne _080CAF1C - ldr r1, _080CAF18 @ =gSpecialVar_0x8005 - ldrh r0, [r1] - adds r0, 0x1 - b _080CB01A - .align 2, 0 -_080CAF18: .4byte gSpecialVar_0x8005 -_080CAF1C: - ldr r1, _080CAF24 @ =gSpecialVar_0x8005 - ldrh r0, [r1] - adds r0, 0x5 - b _080CB01A - .align 2, 0 -_080CAF24: .4byte gSpecialVar_0x8005 -_080CAF28: - bl Random - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r0 - lsrs r2, r1, 16 - cmp r2, 0 - bne _080CAF48 - ldr r1, _080CAF44 @ =gSpecialVar_0x8005 - ldrh r0, [r1] - subs r0, 0x5 - b _080CB01A - .align 2, 0 -_080CAF44: .4byte gSpecialVar_0x8005 -_080CAF48: - cmp r2, 0x1 - bne _080CAF58 - ldr r1, _080CAF54 @ =gSpecialVar_0x8005 - ldrh r0, [r1] - adds r0, 0x1 - b _080CB01A - .align 2, 0 -_080CAF54: .4byte gSpecialVar_0x8005 -_080CAF58: - cmp r2, 0x2 - bne _080CB014 - ldr r1, _080CAF64 @ =gSpecialVar_0x8005 - ldrh r0, [r1] - adds r0, 0x5 - b _080CB01A - .align 2, 0 -_080CAF64: .4byte gSpecialVar_0x8005 -_080CAF68: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0 - bne _080CAF8C - ldr r1, _080CAF88 @ =gSpecialVar_0x8005 - ldrh r0, [r1] - subs r0, 0x5 - b _080CB01A - .align 2, 0 -_080CAF88: .4byte gSpecialVar_0x8005 -_080CAF8C: - cmp r2, 0x1 - bne _080CB014 - ldr r1, _080CAF98 @ =gSpecialVar_0x8005 - ldrh r0, [r1] - adds r0, 0x5 - b _080CB01A - .align 2, 0 -_080CAF98: .4byte gSpecialVar_0x8005 -_080CAF9C: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080CAFB8 - ldr r1, _080CAFB4 @ =gSpecialVar_0x8005 - ldrh r0, [r1] - subs r0, 0x5 - b _080CB01A - .align 2, 0 -_080CAFB4: .4byte gSpecialVar_0x8005 -_080CAFB8: - ldr r1, _080CAFC0 @ =gSpecialVar_0x8005 - ldrh r0, [r1] - adds r0, 0x1 - b _080CB01A - .align 2, 0 -_080CAFC0: .4byte gSpecialVar_0x8005 -_080CAFC4: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0 - bne _080CAFE8 - ldr r1, _080CAFE4 @ =gSpecialVar_0x8005 - ldrh r0, [r1] - subs r0, 0x5 - b _080CB01A - .align 2, 0 -_080CAFE4: .4byte gSpecialVar_0x8005 -_080CAFE8: - cmp r2, 0x1 - bne _080CB014 - ldr r1, _080CAFF4 @ =gSpecialVar_0x8005 - ldrh r0, [r1] - adds r0, 0x1 - b _080CB01A - .align 2, 0 -_080CAFF4: .4byte gSpecialVar_0x8005 -_080CAFF8: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080CB014 - ldr r1, _080CB010 @ =gSpecialVar_0x8005 - ldrh r0, [r1] - subs r0, 0x5 - b _080CB01A - .align 2, 0 -_080CB010: .4byte gSpecialVar_0x8005 -_080CB014: - ldr r1, _080CB040 @ =gSpecialVar_0x8005 - ldrh r0, [r1] - subs r0, 0x1 -_080CB01A: - strh r0, [r1] -_080CB01C: - ldr r5, _080CB040 @ =gSpecialVar_0x8005 - ldrh r0, [r5] - cmp r0, 0xF - bls _080CB04C - ldr r0, _080CB044 @ =gSpecialVar_0x8004 - ldrh r4, [r0] - adds r0, r4, 0 - movs r1, 0x5 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - beq _080CB048 - cmp r0, 0 - bne _080CB048 - subs r0, r4, 0x1 - b _080CB04A - .align 2, 0 -_080CB040: .4byte gSpecialVar_0x8005 -_080CB044: .4byte gSpecialVar_0x8004 -_080CB048: - adds r0, r4, 0x1 -_080CB04A: - strh r0, [r5] -_080CB04C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end Special_SetVermilionTrashCans - - thumb_func_start sub_80CB054 -sub_80CB054: @ 80CB054 - push {r4-r6,lr} - ldr r5, _080CB08C @ =0x00004035 - adds r0, r5, 0 - bl VarGet - lsls r0, 16 - lsrs r4, r0, 16 - ldr r6, _080CB090 @ =0x00004036 - adds r0, r6, 0 - bl VarGet - lsls r0, 16 - cmp r0, 0 - beq _080CB0A0 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0xF9 - bls _080CB098 - ldr r1, _080CB094 @ =0x0000ffff - adds r0, r6, 0 - bl VarSet - adds r0, r5, 0 - movs r1, 0 - bl VarSet - b _080CB0A0 - .align 2, 0 -_080CB08C: .4byte 0x00004035 -_080CB090: .4byte 0x00004036 -_080CB094: .4byte 0x0000ffff -_080CB098: - adds r0, r5, 0 - adds r1, r4, 0 - bl VarSet -_080CB0A0: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80CB054 - - thumb_func_start sub_80CB0A8 -sub_80CB0A8: @ 80CB0A8 - push {r4,lr} - ldr r4, _080CB10C @ =0x00004036 - adds r0, r4, 0 - bl VarGet - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - beq _080CB0C0 - ldr r0, _080CB110 @ =0x0000ffff - cmp r1, r0 - bne _080CB0EA -_080CB0C0: - bl sub_80CB124 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl VarSet - ldr r4, _080CB114 @ =0x0000403b - bl sub_80CB198 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl VarSet - ldr r0, _080CB118 @ =0x00004035 - movs r1, 0 - bl VarSet -_080CB0EA: - ldr r4, _080CB11C @ =gStringVar1 - ldr r0, _080CB10C @ =0x00004036 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xB - muls r1, r0 - ldr r0, _080CB120 @ =gSpeciesNames - adds r1, r0 - adds r0, r4, 0 - bl StringCopy - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CB10C: .4byte 0x00004036 -_080CB110: .4byte 0x0000ffff -_080CB114: .4byte 0x0000403b -_080CB118: .4byte 0x00004035 -_080CB11C: .4byte gStringVar1 -_080CB120: .4byte gSpeciesNames - thumb_func_end sub_80CB0A8 - - thumb_func_start sub_80CB124 -sub_80CB124: @ 80CB124 - push {r4,r5,lr} - movs r5, 0 -_080CB128: - bl Random - lsls r0, 16 - lsrs r0, 16 - ldr r1, _080CB160 @ =0x0000019b - bl __umodsi3 - adds r0, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0 - bl GetSetPokedexFlag - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - beq _080CB18E - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x63 - bls _080CB128 - b _080CB176 - .align 2, 0 -_080CB160: .4byte 0x0000019b -_080CB164: - cmp r4, 0x1 - bne _080CB170 - ldr r4, _080CB16C @ =0x0000019b - b _080CB176 - .align 2, 0 -_080CB16C: .4byte 0x0000019b -_080CB170: - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_080CB176: - adds r0, r4, 0 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0 - bl GetSetPokedexFlag - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _080CB164 -_080CB18E: - adds r0, r4, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80CB124 - - thumb_func_start sub_80CB198 -sub_80CB198: @ 80CB198 - push {r4,lr} - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1D - bhi _080CB1D0 - ldr r4, _080CB1CC @ =gUnknown_83F5B30 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x6 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 15 - adds r0, r4 - ldrh r0, [r0] - b _080CB1D2 - .align 2, 0 -_080CB1CC: .4byte gUnknown_83F5B30 -_080CB1D0: - movs r0, 0xB -_080CB1D2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80CB198 - - thumb_func_start Special_CheckAddCoins -Special_CheckAddCoins: @ 80CB1D8 -@ addcoins but it's a dry run - push {lr} - ldr r0, _080CB1F0 @ =gSpecialVar_Result - ldrh r1, [r0] - ldr r0, _080CB1F4 @ =gSpecialVar_0x8006 - ldrh r0, [r0] - adds r1, r0 - ldr r0, _080CB1F8 @ =0x0000270f - cmp r1, r0 - bgt _080CB1FC - movs r0, 0x1 - b _080CB1FE - .align 2, 0 -_080CB1F0: .4byte gSpecialVar_Result -_080CB1F4: .4byte gSpecialVar_0x8006 -_080CB1F8: .4byte 0x0000270f -_080CB1FC: - movs r0, 0 -_080CB1FE: - pop {r1} - bx r1 - thumb_func_end Special_CheckAddCoins - - thumb_func_start Special_GetElevatorFloor -Special_GetElevatorFloor: @ 80CB204 - push {r4,lr} - movs r3, 0x4 - ldr r0, _080CB22C @ =gSaveBlock1Ptr - ldr r2, [r0] - movs r1, 0x14 - ldrsb r1, [r2, r1] - adds r4, r0, 0 - cmp r1, 0x1 - bne _080CB2AA - ldrb r0, [r2, 0x15] - subs r0, 0x2A - lsls r0, 24 - asrs r0, 24 - cmp r0, 0xF - bhi _080CB2AA - lsls r0, 2 - ldr r1, _080CB230 @ =_080CB234 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080CB22C: .4byte gSaveBlock1Ptr -_080CB230: .4byte _080CB234 - .align 2, 0 -_080CB234: - .4byte _080CB2A0 - .4byte _080CB2A4 - .4byte _080CB2AA - .4byte _080CB2A8 - .4byte _080CB2AA - .4byte _080CB274 - .4byte _080CB278 - .4byte _080CB27C - .4byte _080CB280 - .4byte _080CB284 - .4byte _080CB288 - .4byte _080CB28C - .4byte _080CB290 - .4byte _080CB294 - .4byte _080CB298 - .4byte _080CB29C -_080CB274: - movs r3, 0x4 - b _080CB2AA -_080CB278: - movs r3, 0x5 - b _080CB2AA -_080CB27C: - movs r3, 0x6 - b _080CB2AA -_080CB280: - movs r3, 0x7 - b _080CB2AA -_080CB284: - movs r3, 0x8 - b _080CB2AA -_080CB288: - movs r3, 0x9 - b _080CB2AA -_080CB28C: - movs r3, 0xA - b _080CB2AA -_080CB290: - movs r3, 0xB - b _080CB2AA -_080CB294: - movs r3, 0xC - b _080CB2AA -_080CB298: - movs r3, 0xD - b _080CB2AA -_080CB29C: - movs r3, 0xE - b _080CB2AA -_080CB2A0: - movs r3, 0x3 - b _080CB2AA -_080CB2A4: - movs r3, 0x2 - b _080CB2AA -_080CB2A8: - movs r3, 0 -_080CB2AA: - ldr r1, [r4] - movs r0, 0x14 - ldrsb r0, [r1, r0] - cmp r0, 0xA - bne _080CB2F2 - movs r0, 0x15 - ldrsb r0, [r1, r0] - cmp r0, 0x4 - bhi _080CB2F2 - lsls r0, 2 - ldr r1, _080CB2C8 @ =_080CB2CC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080CB2C8: .4byte _080CB2CC - .align 2, 0 -_080CB2CC: - .4byte _080CB2E0 - .4byte _080CB2E4 - .4byte _080CB2E8 - .4byte _080CB2EC - .4byte _080CB2F0 -_080CB2E0: - movs r3, 0x4 - b _080CB2F2 -_080CB2E4: - movs r3, 0x5 - b _080CB2F2 -_080CB2E8: - movs r3, 0x6 - b _080CB2F2 -_080CB2EC: - movs r3, 0x7 - b _080CB2F2 -_080CB2F0: - movs r3, 0x8 -_080CB2F2: - ldr r1, [r4] - movs r0, 0x14 - ldrsb r0, [r1, r0] - cmp r0, 0x2 - bne _080CB314 - movs r0, 0x15 - ldrsb r0, [r1, r0] - cmp r0, 0x1 - blt _080CB314 - cmp r0, 0x9 - ble _080CB30E - cmp r0, 0xA - beq _080CB312 - b _080CB314 -_080CB30E: - movs r3, 0xF - b _080CB314 -_080CB312: - movs r3, 0x3 -_080CB314: - ldr r0, _080CB324 @ =0x0000403a - adds r1, r3, 0 - bl VarSet - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CB324: .4byte 0x0000403a - thumb_func_end Special_GetElevatorFloor - - thumb_func_start sub_80CB328 -sub_80CB328: @ 80CB328 - push {r4-r6,lr} - ldr r3, _080CB35C @ =gUnknown_2039A0E - movs r0, 0 - strh r0, [r3] - ldr r1, _080CB360 @ =gUnknown_2039A10 - strh r0, [r1] - ldr r0, _080CB364 @ =gSaveBlock1Ptr - ldr r5, [r0] - movs r2, 0x14 - ldrsb r2, [r5, r2] - adds r4, r3, 0 - adds r3, r1, 0 - adds r6, r0, 0 - cmp r2, 0x1 - bne _080CB40C - ldrb r0, [r5, 0x15] - subs r0, 0x2A - lsls r0, 24 - asrs r0, 24 - cmp r0, 0xF - bhi _080CB40C - lsls r0, 2 - ldr r1, _080CB368 @ =_080CB36C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080CB35C: .4byte gUnknown_2039A0E -_080CB360: .4byte gUnknown_2039A10 -_080CB364: .4byte gSaveBlock1Ptr -_080CB368: .4byte _080CB36C - .align 2, 0 -_080CB36C: - .4byte _080CB3F6 - .4byte _080CB3FC - .4byte _080CB40C - .4byte _080CB404 - .4byte _080CB40C - .4byte _080CB3F0 - .4byte _080CB3E8 - .4byte _080CB3E2 - .4byte _080CB3DA - .4byte _080CB3D2 - .4byte _080CB3CA - .4byte _080CB3C2 - .4byte _080CB3BA - .4byte _080CB404 - .4byte _080CB3B2 - .4byte _080CB3AC -_080CB3AC: - movs r0, 0 - strh r0, [r4] - b _080CB40A -_080CB3B2: - movs r0, 0 - strh r0, [r4] - movs r0, 0x1 - b _080CB40A -_080CB3BA: - movs r0, 0 - strh r0, [r4] - movs r0, 0x3 - b _080CB40A -_080CB3C2: - movs r0, 0 - strh r0, [r4] - movs r0, 0x4 - b _080CB40A -_080CB3CA: - movs r0, 0x1 - strh r0, [r4] - movs r0, 0x4 - b _080CB40A -_080CB3D2: - movs r0, 0x2 - strh r0, [r4] - movs r0, 0x4 - b _080CB40A -_080CB3DA: - movs r0, 0x3 - strh r0, [r4] - movs r0, 0x4 - b _080CB40A -_080CB3E2: - movs r0, 0x4 - strh r0, [r4] - b _080CB40A -_080CB3E8: - movs r0, 0x5 - strh r0, [r4] - movs r0, 0x4 - b _080CB40A -_080CB3F0: - movs r0, 0x5 - strh r0, [r4] - b _080CB40A -_080CB3F6: - movs r0, 0 - strh r0, [r4] - b _080CB40A -_080CB3FC: - movs r0, 0 - strh r0, [r4] - movs r0, 0x1 - b _080CB40A -_080CB404: - movs r0, 0 - strh r0, [r4] - movs r0, 0x2 -_080CB40A: - strh r0, [r3] -_080CB40C: - ldr r1, [r6] - movs r0, 0x14 - ldrsb r0, [r1, r0] - cmp r0, 0xA - bne _080CB466 - movs r0, 0x15 - ldrsb r0, [r1, r0] - cmp r0, 0x4 - bhi _080CB466 - lsls r0, 2 - ldr r1, _080CB428 @ =_080CB42C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080CB428: .4byte _080CB42C - .align 2, 0 -_080CB42C: - .4byte _080CB45E - .4byte _080CB456 - .4byte _080CB44E - .4byte _080CB446 - .4byte _080CB440 -_080CB440: - movs r0, 0 - strh r0, [r4] - b _080CB464 -_080CB446: - movs r0, 0 - strh r0, [r4] - movs r0, 0x1 - b _080CB464 -_080CB44E: - movs r0, 0 - strh r0, [r4] - movs r0, 0x2 - b _080CB464 -_080CB456: - movs r0, 0 - strh r0, [r4] - movs r0, 0x3 - b _080CB464 -_080CB45E: - movs r0, 0 - strh r0, [r4] - movs r0, 0x4 -_080CB464: - strh r0, [r3] -_080CB466: - ldr r1, [r6] - movs r0, 0x14 - ldrsb r0, [r1, r0] - cmp r0, 0x2 - bne _080CB490 - movs r0, 0x15 - ldrsb r0, [r1, r0] - cmp r0, 0x1 - blt _080CB490 - cmp r0, 0x9 - ble _080CB482 - cmp r0, 0xA - beq _080CB488 - b _080CB490 -_080CB482: - movs r0, 0 - strh r0, [r4] - b _080CB48E -_080CB488: - movs r0, 0 - strh r0, [r4] - movs r0, 0x1 -_080CB48E: - strh r0, [r3] -_080CB490: - ldrh r0, [r3] - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80CB328 - - thumb_func_start sub_80CB498 -sub_80CB498: @ 80CB498 - push {r4-r6,lr} - ldr r0, _080CB4D0 @ =sub_80CB514 - movs r1, 0x9 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080CB4D4 @ =gTasks+0x8 - adds r4, r1, r0 - movs r3, 0 - strh r3, [r4, 0x2] - strh r3, [r4, 0x4] - movs r6, 0x1 - strh r6, [r4, 0x8] - ldr r0, _080CB4D8 @ =gSpecialVar_0x8005 - ldr r1, _080CB4DC @ =gSpecialVar_0x8006 - ldrh r2, [r0] - ldrh r0, [r1] - cmp r2, r0 - bls _080CB4E0 - subs r0, r2, r0 - lsls r0, 16 - lsrs r5, r0, 16 - strh r6, [r4, 0xC] - b _080CB4E8 - .align 2, 0 -_080CB4D0: .4byte sub_80CB514 -_080CB4D4: .4byte gTasks+0x8 -_080CB4D8: .4byte gSpecialVar_0x8005 -_080CB4DC: .4byte gSpecialVar_0x8006 -_080CB4E0: - subs r0, r2 - lsls r0, 16 - lsrs r5, r0, 16 - strh r3, [r4, 0xC] -_080CB4E8: - cmp r5, 0x8 - bls _080CB4EE - movs r5, 0x8 -_080CB4EE: - ldr r0, _080CB510 @ =gUnknown_83F5BB8 - adds r0, r5, r0 - ldrb r0, [r0] - strh r0, [r4, 0xA] - movs r0, 0 - bl SetCameraPanningCallback - ldrb r1, [r4, 0xC] - adds r0, r5, 0 - bl sub_80CB658 - movs r0, 0x52 - bl PlaySE - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CB510: .4byte gUnknown_83F5BB8 - thumb_func_end sub_80CB498 - - thumb_func_start sub_80CB514 -sub_80CB514: @ 80CB514 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080CB57C @ =gTasks+0x8 - adds r4, r0, r1 - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - movs r1, 0x2 - ldrsh r0, [r4, r1] - movs r1, 0x3 - bl __modsi3 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bne _080CB574 - strh r0, [r4, 0x2] - ldrh r0, [r4, 0x4] - adds r0, 0x1 - strh r0, [r4, 0x4] - ldrh r0, [r4, 0x8] - negs r0, r0 - strh r0, [r4, 0x8] - movs r2, 0x8 - ldrsh r1, [r4, r2] - movs r0, 0 - bl SetCameraPanning - movs r0, 0x4 - ldrsh r1, [r4, r0] - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080CB574 - movs r0, 0x42 - bl PlaySE - adds r0, r5, 0 - bl DestroyTask - bl EnableBothScriptContexts - bl InstallCameraPanAheadCallback -_080CB574: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CB57C: .4byte gTasks+0x8 - thumb_func_end sub_80CB514 - - thumb_func_start sub_80CB580 -sub_80CB580: @ 80CB580 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0xC - ldr r0, _080CB620 @ =sub_809D6D4 - bl sub_81119D4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080CB614 - ldr r4, _080CB624 @ =gUnknown_2039A0C - ldr r0, _080CB628 @ =gUnknown_83F5B3C - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - ldr r5, _080CB62C @ =0x0000021d - adds r1, r5, 0 - movs r2, 0xD0 - bl TextWindow_SetStdFrame0_WithPal - ldrb r0, [r4] - movs r1, 0 - adds r2, r5, 0 - movs r3, 0xD - bl DrawStdFrameWithCustomTileAndPalette - ldrb r0, [r4] - ldr r2, _080CB630 @ =gUnknown_8418075 - movs r1, 0x2 - str r1, [sp] - movs r1, 0xFF - mov r8, r1 - str r1, [sp, 0x4] - movs r6, 0 - str r6, [sp, 0x8] - movs r1, 0x2 - movs r3, 0 - bl AddTextPrinterParameterized - ldr r1, _080CB634 @ =gUnknown_83F5B44 - ldr r0, _080CB638 @ =gSpecialVar_0x8005 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r5, [r0] - movs r0, 0x2 - adds r1, r5, 0 - movs r2, 0 - bl GetStringWidth - ldrb r1, [r4] - movs r3, 0x38 - subs r3, r0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x10 - str r0, [sp] - mov r0, r8 - str r0, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r1, 0 - movs r1, 0x2 - adds r2, r5, 0 - bl AddTextPrinterParameterized - ldrb r0, [r4] - bl PutWindowTilemap - ldrb r0, [r4] - movs r1, 0x3 - bl CopyWindowToVram -_080CB614: - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CB620: .4byte sub_809D6D4 -_080CB624: .4byte gUnknown_2039A0C -_080CB628: .4byte gUnknown_83F5B3C -_080CB62C: .4byte 0x0000021d -_080CB630: .4byte gUnknown_8418075 -_080CB634: .4byte gUnknown_83F5B44 -_080CB638: .4byte gSpecialVar_0x8005 - thumb_func_end sub_80CB580 - - thumb_func_start sub_80CB63C -sub_80CB63C: @ 80CB63C - push {r4,lr} - ldr r4, _080CB654 @ =gUnknown_2039A0C - ldrb r0, [r4] - movs r1, 0x1 - bl ClearStdWindowAndFrameToTransparent - ldrb r0, [r4] - bl RemoveWindow - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CB654: .4byte gUnknown_2039A0C - thumb_func_end sub_80CB63C - - thumb_func_start sub_80CB658 -sub_80CB658: @ 80CB658 - push {r4-r6,lr} - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 24 - lsrs r5, r1, 24 - ldr r4, _080CB6A0 @ =sub_80CB6AC - adds r0, r4, 0 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080CB698 - adds r0, r4, 0 - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080CB6A4 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0x8] - strh r0, [r1, 0xA] - strh r5, [r1, 0xC] - ldr r0, _080CB6A8 @ =gUnknown_83F5BC1 - adds r0, r6, r0 - ldrb r0, [r0] - strh r0, [r1, 0xE] -_080CB698: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CB6A0: .4byte sub_80CB6AC -_080CB6A4: .4byte gTasks -_080CB6A8: .4byte gUnknown_83F5BC1 - thumb_func_end sub_80CB658 - - thumb_func_start sub_80CB6AC -sub_80CB6AC: @ 80CB6AC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - lsls r0, 2 - ldr r1, [sp] - adds r0, r1 - lsls r0, 3 - ldr r1, _080CB734 @ =gTasks+0x8 - adds r6, r0, r1 - movs r2, 0x2 - ldrsh r0, [r6, r2] - cmp r0, 0x6 - bne _080CB7A8 - ldrh r0, [r6] - adds r0, 0x1 - strh r0, [r6] - movs r1, 0x4 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080CB73C - movs r1, 0 - ldr r2, _080CB738 @ =gUnknown_83F5B94 - mov r10, r2 -_080CB6E6: - movs r5, 0 - adds r7, r1, 0x7 - lsls r0, r1, 1 - adds r2, r1, 0x1 - mov r8, r2 - adds r0, r1 - lsls r0, 1 - mov r9, r0 -_080CB6F6: - adds r4, r5, 0 - adds r4, 0x8 - movs r1, 0 - ldrsh r0, [r6, r1] - movs r1, 0x3 - bl __modsi3 - lsls r0, 16 - asrs r0, 15 - add r0, r9 - add r0, r10 - ldrh r0, [r0] - movs r1, 0xC0 - lsls r1, 4 - adds r2, r1, 0 - orrs r2, r0 - adds r0, r4, 0 - adds r1, r7, 0 - bl MapGridSetMetatileIdAt - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _080CB6F6 - mov r2, r8 - lsls r0, r2, 24 - lsrs r1, r0, 24 - cmp r1, 0x2 - bls _080CB6E6 - b _080CB78E - .align 2, 0 -_080CB734: .4byte gTasks+0x8 -_080CB738: .4byte gUnknown_83F5B94 -_080CB73C: - movs r1, 0 - ldr r0, _080CB7C0 @ =gUnknown_83F5BA6 - mov r10, r0 -_080CB742: - movs r5, 0 - adds r7, r1, 0x7 - lsls r0, r1, 1 - adds r2, r1, 0x1 - mov r8, r2 - adds r0, r1 - lsls r0, 1 - mov r9, r0 -_080CB752: - adds r4, r5, 0 - adds r4, 0x8 - movs r1, 0 - ldrsh r0, [r6, r1] - movs r1, 0x3 - bl __modsi3 - lsls r0, 16 - asrs r0, 15 - add r0, r9 - add r0, r10 - ldrh r0, [r0] - movs r1, 0xC0 - lsls r1, 4 - adds r2, r1, 0 - orrs r2, r0 - adds r0, r4, 0 - adds r1, r7, 0 - bl MapGridSetMetatileIdAt - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _080CB752 - mov r2, r8 - lsls r0, r2, 24 - lsrs r1, r0, 24 - cmp r1, 0x2 - bls _080CB742 -_080CB78E: - bl DrawWholeMapView - movs r0, 0 - strh r0, [r6, 0x2] - movs r0, 0 - ldrsh r1, [r6, r0] - movs r2, 0x6 - ldrsh r0, [r6, r2] - cmp r1, r0 - bne _080CB7A8 - ldr r0, [sp] - bl DestroyTask -_080CB7A8: - ldrh r0, [r6, 0x2] - adds r0, 0x1 - strh r0, [r6, 0x2] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080CB7C0: .4byte gUnknown_83F5BA6 - thumb_func_end sub_80CB6AC - thumb_func_start sub_80CB7C4 sub_80CB7C4: @ 80CB7C4 push {r4,r5,lr} @@ -2412,16 +80,16 @@ _080CB842: strh r1, [r3, 0x12] strh r2, [r3, 0x14] strh r5, [r3, 0x26] - ldr r0, _080CB868 @ =gUnknown_2039A0E + ldr r0, _080CB868 @ =sElevatorScroll ldrh r0, [r0] strh r0, [r3, 0x16] - ldr r0, _080CB86C @ =gUnknown_2039A10 + ldr r0, _080CB86C @ =sElevatorCursorPos ldrh r0, [r0] strh r0, [r3, 0x18] b _080CB8F8 .align 2, 0 -_080CB868: .4byte gUnknown_2039A0E -_080CB86C: .4byte gUnknown_2039A10 +_080CB868: .4byte sElevatorScroll +_080CB86C: .4byte sElevatorCursorPos _080CB870: movs r1, 0 movs r0, 0x4 @@ -2525,7 +193,7 @@ sub_80CB904: @ 80CB904 cmp r0, 0x1 bne _080CB944 ldr r0, _080CB93C @ =gUnknown_2039A18 - ldr r1, _080CB940 @ =gUnknown_2039A0E + ldr r1, _080CB940 @ =sElevatorScroll ldrh r1, [r1] strh r1, [r0] b _080CB94A @@ -2533,7 +201,7 @@ sub_80CB904: @ 80CB904 _080CB934: .4byte gTasks _080CB938: .4byte gSpecialVar_0x8004 _080CB93C: .4byte gUnknown_2039A18 -_080CB940: .4byte gUnknown_2039A0E +_080CB940: .4byte sElevatorScroll _080CB944: ldr r1, _080CBA60 @ =gUnknown_2039A18 movs r0, 0 @@ -3983,8 +1651,8 @@ _080CC486: bx r1 thumb_func_end GetHiddenItemAttr - thumb_func_start sub_80CC48C -sub_80CC48C: @ 80CC48C + thumb_func_start Special_PlayerPartyContainsSpecies +Special_PlayerPartyContainsSpecies: @ 80CC48C push {r4,r5,lr} bl CalculatePlayerPartyCount lsls r0, 24 @@ -4021,7 +1689,7 @@ _080CC4CC: pop {r4,r5} pop {r1} bx r1 - thumb_func_end sub_80CC48C + thumb_func_end Special_PlayerPartyContainsSpecies thumb_func_start sub_80CC4D4 sub_80CC4D4: @ 80CC4D4 diff --git a/asm/learn_move.s b/asm/learn_move.s index a7a5b264d..d93c534c0 100644 --- a/asm/learn_move.s +++ b/asm/learn_move.s @@ -1653,7 +1653,7 @@ _080E53F4: movs r2, 0x2 movs r3, 0x2 bl sub_80E559C - ldr r1, _080E5440 @ =gUnknown_84886E8 + ldr r1, _080E5440 @ =gMoveDescriptionPointers subs r0, r5, 0x1 lsls r0, 2 adds r0, r1 @@ -1670,7 +1670,7 @@ _080E53F4: bx r0 .align 2, 0 _080E543C: .4byte gBattleMoves -_080E5440: .4byte gUnknown_84886E8 +_080E5440: .4byte gMoveDescriptionPointers thumb_func_end sub_80E5340 thumb_func_start sub_80E5444 diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s index 8a01dcfb6..dcf8f6bfe 100644 --- a/asm/pokemon_summary_screen.s +++ b/asm/pokemon_summary_screen.s @@ -6470,7 +6470,7 @@ _08137B1C: str r1, [sp, 0x4] str r6, [sp, 0x8] str r5, [sp, 0xC] - ldr r3, _08137BC8 @ =gUnknown_84886E8 + ldr r3, _08137BC8 @ =gMoveDescriptionPointers mov r4, r8 ldrb r1, [r4] lsls r1, 1 @@ -6502,7 +6502,7 @@ _08137BB8: .4byte 0x00003004 _08137BBC: .4byte gUnknown_8463FA4 _08137BC0: .4byte 0x0000316c _08137BC4: .4byte 0x00003188 -_08137BC8: .4byte gUnknown_84886E8 +_08137BC8: .4byte gMoveDescriptionPointers _08137BCC: .4byte 0x00003258 thumb_func_end sub_8137AF8 diff --git a/baserom.ips b/baserom.ips Binary files differindex 94d61ef1f..928218e45 100644 --- a/baserom.ips +++ b/baserom.ips diff --git a/data/data_835B488.s b/data/data_835B488.s index b2b76476c..e49b310a6 100644 --- a/data/data_835B488.s +++ b/data/data_835B488.s @@ -807,7 +807,7 @@ gUnknown_83E0248:: @ 83E0248 .4byte gUnknown_841807D, NULL .4byte gUnknown_841808E, NULL .4byte gUnknown_841809C, NULL - .4byte gUnknown_8417929, NULL + .4byte gOtherText_Quit, NULL gUnknown_83E0268:: @ 83E0268 .4byte gUnknown_8417DFE, NULL diff --git a/data/data_83F5738.s b/data/data_83F5738.s index 1f9839561..da25ada76 100644 --- a/data/data_83F5738.s +++ b/data/data_83F5738.s @@ -1,3 +1,7 @@ +#include "constants/species.h" +#include "constants/items.h" + .include "asm/macros.inc" + .include "constants/constants.inc" .section .rodata .align 2 @@ -22,89 +26,6 @@ gUnknown_83F5864:: @ 83F5864 gUnknown_83F5A44:: @ 83F5A44 .incbin "baserom.gba", 0x3F5A44, 0xB4 -gUnknown_83F5AF8:: @ 83F5AF8 - .incbin "baserom.gba", 0x3F5AF8, 0x22 - -gUnknown_83F5B1A:: @ 83F5B1A - .incbin "baserom.gba", 0x3F5B1A, 0x16 - -gUnknown_83F5B30:: @ 83F5B30 - .incbin "baserom.gba", 0x3F5B30, 0xC - -gUnknown_83F5B3C:: @ 83F5B3C - .incbin "baserom.gba", 0x3F5B3C, 0x8 - -gUnknown_83F5B44:: @ 83F5B44 - .incbin "baserom.gba", 0x3F5B44, 0x50 - -gUnknown_83F5B94:: @ 83F5B94 - .incbin "baserom.gba", 0x3F5B94, 0x12 - -gUnknown_83F5BA6:: @ 83F5BA6 - .incbin "baserom.gba", 0x3F5BA6, 0x12 - -gUnknown_83F5BB8:: @ 83F5BB8 - .incbin "baserom.gba", 0x3F5BB8, 0x9 - -gUnknown_83F5BC1:: @ 83F5BC1 - .incbin "baserom.gba", 0x3F5BC1, 0xB - -gUnknown_83F5BCC:: @ 83F5BCC - .incbin "baserom.gba", 0x3F5BCC, 0x150 - -gUnknown_83F5D1C:: @ 83F5D1C - .incbin "baserom.gba", 0x3F5D1C, 0x10 - -sStarterMon:: @ 83F5D2C - .incbin "baserom.gba", 0x3F5D2C, 0x6 - -gUnknown_83F5D32:: @ 83F5D32 - .incbin "baserom.gba", 0x3F5D32, 0x26 - -gUnknown_83F5D58:: @ 83F5D58 - .incbin "baserom.gba", 0x3F5D58, 0x198 - - .align 2 -gUnknown_83F5EF0:: @ 83F5EF0 - .asciz "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/scr_tool.c" - - .align 2 -gUnknown_83F5F24:: @ 83F5F24 - .asciz "0" - -gUnknown_83F5F26:: @ 83F5F26 - .incbin "baserom.gba", 0x3F5F26, 0x2A - -gUnknown_83F5F50:: @ 83F5F50 - .incbin "baserom.gba", 0x3F5F50, 0x160 - -gUnknown_83F60B0:: @ 83F60B0 - .incbin "baserom.gba", 0x3F60B0, 0x20 - -gUnknown_83F60D0:: @ 83F60D0 - .incbin "baserom.gba", 0x3F60D0, 0x100 - -gUnknown_83F61D0:: @ 83F61D0 - .incbin "baserom.gba", 0x3F61D0, 0x20 - -gUnknown_83F61F0:: @ 83F61F0 - .incbin "baserom.gba", 0x3F61F0, 0xB - -gUnknown_83F61FB:: @ 83F61FB - .incbin "baserom.gba", 0x3F61FB, 0x8 - -gUnknown_83F6203:: @ 83F6203 - .incbin "baserom.gba", 0x3F6203, 0x3 - -gUnknown_83F6206:: @ 83F6206 - .incbin "baserom.gba", 0x3F6206, 0x160 - -gUnknown_83F6366:: @ 83F6366 - .incbin "baserom.gba", 0x3F6366, 0x16 - -gUnknown_83F637C:: @ 83F637C - .incbin "baserom.gba", 0x3F637C, 0xC - .section .rodata.83F6C90 gUnknown_83F6C90:: @ 83F6C90 .incbin "baserom.gba", 0x3F6C90, 0x20 diff --git a/data/data_8471F00.s b/data/data_8471F00.s index bd77774a9..82d507ea1 100644 --- a/data/data_8471F00.s +++ b/data/data_8471F00.s @@ -342,7 +342,7 @@ gUnknown_84827B4:: @ 84827B4 .include "data/text/move_descriptions.inc" .align 2, 0 -gUnknown_84886E8:: @ 84886E8 +gMoveDescriptionPointers:: @ 84886E8 .4byte gMoveDescription_Pound .4byte gMoveDescription_KarateChop .4byte gMoveDescription_DoubleSlap diff --git a/data/event_scripts.s b/data/event_scripts.s index 8f9e8ae26..2018e9fe0 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -227,7 +227,7 @@ gStdScriptsEnd:: .include "data/maps/SevenIsland_TanobyRuins_RixyChamber/scripts.inc" .include "data/maps/SevenIsland_TanobyRuins_ViapoisChamber/scripts.inc" .include "data/maps/ThreeIsland_DunsparceTunnel/scripts.inc" - .include "data/maps/SevenIsland_SeavaultCanyon_TanobyKey/scripts.inc" + .include "data/maps/SevenIsland_SevaultCanyon_TanobyKey/scripts.inc" .include "data/maps/NavelRock_1F/scripts.inc" .include "data/maps/NavelRock_Summit/scripts.inc" .include "data/maps/NavelRock_Base/scripts.inc" @@ -583,7 +583,7 @@ gStdScriptsEnd:: .include "data/maps/FiveIsland_LostCave_Room4/text.inc" .include "data/maps/FiveIsland_LostCave_Room10/text.inc" .include "data/maps/ThreeIsland_DunsparceTunnel/text.inc" - .include "data/maps/SevenIsland_SeavaultCanyon_TanobyKey/text.inc" + .include "data/maps/SevenIsland_SevaultCanyon_TanobyKey/text.inc" .include "data/maps/OneIsland_KindleRoad_EmberSpa/text.inc" .include "data/maps/PalletTown/text.inc" .include "data/maps/ViridianCity/text.inc" @@ -1922,7 +1922,7 @@ gUnknown_81A6955:: @ 81A6955 setvar VAR_0x8004, 27 special Special_SetSomeVariable setvar VAR_0x8004, 0 - special sub_80CA86C + special Special_AnimatePcTurnOn playse SE_PC_ON msgbox Text_1A5075 goto EventScript_1A6998 @@ -1984,7 +1984,7 @@ EventScript_1A6A3D:: @ 81A6A3D EventScript_1A6A46:: @ 81A6A46 setvar VAR_0x8004, 0 playse SE_PC_OFF - special sub_80CA9A8 + special Special_AnimatePcTurnOff special sub_812B35C releaseall end @@ -2169,7 +2169,7 @@ gUnknown_81A6C32:: @ 81A6C32 compare_var_to_value VAR_RESULT, 2 goto_if eq, EventScript_1A7AE0 fadescreen 1 - special sub_80CA7EC + special Special_TownMap waitstate releaseall end @@ -2410,7 +2410,7 @@ EventScript_1A74B7:: @ 81A74B7 setvar VAR_0x8005, 1 setvar VAR_0x8006, 8 setvar VAR_0x8007, 5 - special sub_80CAC28 + special Special_ShakeScreen waitstate releaseall end diff --git a/data/field_specials.s b/data/field_specials.s new file mode 100644 index 000000000..99179f0a4 --- /dev/null +++ b/data/field_specials.s @@ -0,0 +1,382 @@ +#include "constants/species.h" +#include "constants/items.h" + .include "asm/macros.inc" + .include "constants/constants.inc" + .section .rodata + + .align 2 +gUnknown_83F5AF8:: @ 83F5AF8 + .4byte gStringVar1 + .4byte gStringVar2 + .4byte gStringVar3 + +gUnknown_83F5B04:: + .incbin "baserom.gba", 0x3F5B04, 0x16 + +sSlotMachineIndices:: @ 83F5B1A + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 1 + .byte 2 + .byte 2 + .byte 2 + .byte 3 + .byte 3 + .byte 3 + .byte 4 + .byte 4 + .byte 5 + + .align 1 +sResortGorgeousDeluxeRewards:: @ 83F5B30 + .2byte ITEM_BIG_PEARL + .2byte ITEM_PEARL + .2byte ITEM_STARDUST + .2byte ITEM_STAR_PIECE + .2byte ITEM_NUGGET + .2byte ITEM_RARE_CANDY + + .align 2 +sElevatorCurrentFloorWindowTemplate:: @ 83F5B3C + .byte 0, 22, 1, 7, 4, 15 + .2byte 0x0008 + +sFloorNamePointers:: @ 83F5B44 + .4byte gUnknown_8418069 + .4byte gUnknown_8418065 + .4byte gUnknown_8418061 + .4byte gUnknown_841805D + .4byte gUnknown_841803A + .4byte gUnknown_841803D + .4byte gUnknown_8418040 + .4byte gUnknown_8418043 + .4byte gUnknown_8418046 + .4byte gUnknown_8418049 + .4byte gUnknown_841804C + .4byte gUnknown_841804F + .4byte gUnknown_8418052 + .4byte gUnknown_8418055 + .4byte gUnknown_8418059 + .4byte gUnknown_841806D + +gUnknown_83F5B84:: + .byte 26 + .byte 26 + .byte 26 + .byte 26 + .byte 30 + .byte 30 + .byte 30 + .byte 30 + .byte 30 + .byte 30 + .byte 30 + .byte 30 + .byte 30 + .byte 26 + .byte 26 + .byte 18 + + .align 1 +sElevatorWindowMetatilesGoingUp:: @ 83F5B94 + .2byte 0x02e8, 0x02e9, 0x02ea + .2byte 0x02f0, 0x02f1, 0x02f2 + .2byte 0x02f8, 0x02f9, 0x02fa + + .align 1 +sElevatorWindowMetatilesGoingDown:: @ 83F5BA6 + .2byte 0x02e8, 0x02ea, 0x02e9 + .2byte 0x02f0, 0x02f2, 0x02f1 + .2byte 0x02f8, 0x02fa, 0x02f9 + +sElevatorAnimationDuration:: @ 83F5BB8 + .byte 8 + .byte 16 + .byte 24 + .byte 32 + .byte 38 + .byte 46 + .byte 53 + .byte 56 + .byte 57 + +sElevatorWindowAnimDuration:: @ 83F5BC1 + .byte 3 + .byte 6 + .byte 9 + .byte 12 + .byte 15 + .byte 18 + .byte 21 + .byte 24 + .byte 27 + + .align 2 +gUnknown_83F5BCC:: @ 83F5BCC + .4byte gUnknown_8417FD9 + .4byte gUnknown_8417FE6 + .4byte gUnknown_8417FF3 + .4byte gUnknown_8418000 + .4byte gUnknown_841800D + .4byte gUnknown_8418017 + .4byte gUnknown_8418022 + .4byte gUnknown_841802F + .4byte gOtherText_Exit + .4byte NULL + .4byte NULL + .4byte NULL + + .4byte gUnknown_8418059 + .4byte gUnknown_8418055 + .4byte gUnknown_8418052 + .4byte gUnknown_841804F + .4byte gUnknown_841804C + .4byte gUnknown_8418049 + .4byte gUnknown_8418046 + .4byte gUnknown_8418043 + .4byte gUnknown_8418040 + .4byte gUnknown_841803D + .4byte gUnknown_841803A + .4byte gOtherText_Exit + + .4byte gUnknown_841805D + .4byte gUnknown_8418061 + .4byte gUnknown_8418069 + .4byte gOtherText_Exit + .4byte NULL + .4byte NULL + .4byte NULL + .4byte NULL + .4byte NULL + .4byte NULL + .4byte NULL + .4byte NULL + + .4byte gUnknown_8418046 + .4byte gUnknown_8418043 + .4byte gUnknown_8418040 + .4byte gUnknown_841803D + .4byte gUnknown_841803A + .4byte gOtherText_Exit + .4byte NULL + .4byte NULL + .4byte NULL + .4byte NULL + .4byte NULL + .4byte NULL + + .4byte gUnknown_841807D + .4byte gUnknown_841808E + .4byte gUnknown_841809C + .4byte gOtherText_Quit + .4byte NULL + .4byte NULL + .4byte NULL + .4byte NULL + .4byte NULL + .4byte NULL + .4byte NULL + .4byte NULL + + .4byte gUnknown_84180A7 + .4byte gUnknown_84180BC + .4byte gUnknown_84180D0 + .4byte gUnknown_84180E4 + .4byte gUnknown_84180FA + .4byte gUnknown_841810D + .4byte gUnknown_841811D + .4byte gUnknown_841812F + .4byte gUnknown_8418142 + .4byte gUnknown_8418152 + .4byte gUnknown_8418163 + .4byte gOtherText_Exit + + .4byte gUnknown_841806D + .4byte gUnknown_841805D + .4byte gOtherText_Exit + .4byte NULL + .4byte NULL + .4byte NULL + .4byte NULL + .4byte NULL + .4byte NULL + .4byte NULL + .4byte NULL + .4byte NULL + +gUnknown_83F5D1C:: @ 83F5D1C + .byte 2 @ firstArrowType + .byte 0 @ firstX + .byte 0 @ firstY + .byte 3 @ secondArrowType + .byte 0 @ secondX + .byte 0 @ secondY + .2byte 0 @ fullyUpThreshold + .2byte 0 @ fullyDownThreshold + .2byte 2000 @ tileTag + .2byte 100 @ palTag + .byte 0 @ palNum + + .align 2 + .align 1 +sStarterMon:: @ 83F5D2C + .2byte SPECIES_BULBASAUR + .2byte SPECIES_SQUIRTLE + .2byte SPECIES_CHARMANDER + +gUnknown_83F5D32:: @ 83F5D32 + .byte 0x05, 0x03, 0x01 + .byte 0x06, 0x03, 0x03 + .byte 0x07, 0x07, 0x01 + .byte 0x08, 0x05, 0x01 + .byte 0x09, 0x05, 0x01 + .byte 0x0b, 0x01, 0x01 + .byte 0x0c, 0x07, 0x01 + .byte 0x0e, 0x05, 0x01 + .byte 0x22, 0x03, 0x01 + .byte 0x23, 0x07, 0x01 + .byte 0x1f, 0x02, 0x01 + .byte 0x25, 0x04, 0x01 + + .align 2 +gUnknown_83F5D58:: @ 83F5D58 + .2byte 0x0004, 0x0000, 0x0003, 0x0000 + .2byte 0x0004, 0x0003, 0x0003, 0x0000 + .2byte 0x0005, 0x0001, 0x0003, 0x0001 + .2byte 0x001c, 0x0000, 0x0003, 0x0029 + .2byte 0x001c, 0x0000, 0x0003, 0x002a + .2byte 0x0001, 0x0000, 0x000f, 0x0000 + .2byte 0x0001, 0x0000, 0x000f, 0x0003 + .2byte 0x0006, 0x0000, 0x0003, 0x0002 + .2byte 0x0006, 0x0002, 0x0003, 0x0002 + .2byte 0x0001, 0x0001, 0x0003, 0x0016 + .2byte 0x0001, 0x0002, 0x0003, 0x0016 + .2byte 0x0007, 0x0005, 0x0003, 0x0003 + .2byte 0x0007, 0x0006, 0x0003, 0x0003 + .2byte 0x001e, 0x0000, 0x0003, 0x002c + .2byte 0x0011, 0x0000, 0x0003, 0x0017 + .2byte 0x0001, 0x001e, 0x0003, 0x0017 + .2byte 0x0001, 0x0020, 0x0003, 0x0018 + .2byte 0x0009, 0x0003, 0x0003, 0x0005 + .2byte 0x0009, 0x0006, 0x0003, 0x0005 + .2byte 0x0001, 0x0005, 0x0003, 0x0005 + .2byte 0x0001, 0x0024, 0x0003, 0x0014 + .2byte 0x0001, 0x0026, 0x0003, 0x001d + .2byte 0x0001, 0x0051, 0x0003, 0x001c + .2byte 0x0001, 0x0051, 0x0003, 0x001c + .2byte 0x0001, 0x005f, 0x0003, 0x001c + .2byte 0x0001, 0x0058, 0x0003, 0x0004 + .2byte 0x0008, 0x0002, 0x0003, 0x0004 + .2byte 0x0008, 0x0004, 0x0003, 0x0004 + .2byte 0x0001, 0x0023, 0x0003, 0x001a + .2byte 0x0001, 0x0021, 0x0003, 0x0019 + .2byte 0x000a, 0x0000, 0x0003, 0x0006 + .2byte 0x000a, 0x0007, 0x0003, 0x0006 + .2byte 0x000a, 0x000e, 0x0003, 0x0006 + .2byte 0x000a, 0x0010, 0x0003, 0x0006 + .2byte 0x000a, 0x0011, 0x0003, 0x0006 + .2byte 0x0001, 0x002a, 0x000a, 0x000e + .2byte 0x0001, 0x003f, 0x000b, 0x0000 + .2byte 0x000b, 0x0003, 0x0003, 0x0007 + .2byte 0x000b, 0x0007, 0x0003, 0x0007 + .2byte 0x000e, 0x0002, 0x0003, 0x000a + .2byte 0x000e, 0x0003, 0x0003, 0x000a + .2byte 0x0001, 0x002f, 0x0003, 0x000a + .2byte 0x0001, 0x0053, 0x0003, 0x0026 + .2byte 0x0001, 0x0053, 0x0003, 0x0026 + .2byte 0x0001, 0x003b, 0x0003, 0x0008 + .2byte 0x000c, 0x0000, 0x0003, 0x0008 + .2byte 0x000c, 0x0001, 0x0003, 0x0008 + .2byte 0x0001, 0x0027, 0x0003, 0x002a + .2byte 0x0001, 0x0028, 0x0003, 0x002a + .2byte 0x000d, 0x0000, 0x0003, 0x0009 + .2byte 0x0001, 0x0048, 0x0003, 0x0003 + + .align 2 +gUnknown_83F5EF0:: @ 83F5EF0 + .asciz "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/scr_tool.c" + + .align 2 +gUnknown_83F5F24:: @ 83F5F24 + .asciz "0" + + .align 1 +gUnknown_83F5F26:: @ 83F5F26 + .2byte 0x0504 + .2byte 0x0605 + .2byte 0x0703 + .2byte 0x0800 + .2byte 0x0901 + .2byte 0x0a0c + .2byte 0x0b05 + .2byte 0x0c05 + .2byte 0x0d00 + .2byte 0x0e06 + .2byte 0x1000 + .2byte 0x1500 + .2byte 0x2000 + .2byte 0x2102 + .2byte 0x2201 + .2byte 0x2301 + .2byte 0x2400 + .2byte 0x1f03 + .2byte 0x2500 + .2byte 0x0004 + .2byte 0xffff + +gUnknown_83F5F50:: @ 83F5F50 + .incbin "baserom.gba", 0x3F5F50, 0x20 + .incbin "baserom.gba", 0x3F5F70, 0x20 + .incbin "baserom.gba", 0x3F5F90, 0x20 + .incbin "baserom.gba", 0x3F5FB0, 0x20 + .incbin "baserom.gba", 0x3F5FD0, 0x20 + .incbin "baserom.gba", 0x3F5FF0, 0x20 + .incbin "baserom.gba", 0x3F6010, 0x20 + .incbin "baserom.gba", 0x3F6030, 0x20 + .incbin "baserom.gba", 0x3F6050, 0x20 + .incbin "baserom.gba", 0x3F6070, 0x20 + .incbin "baserom.gba", 0x3F6090, 0x20 + +gUnknown_83F60B0:: @ 83F60B0 + .incbin "baserom.gba", 0x3F60B0, 0x20 + +gUnknown_83F60D0:: @ 83F60D0 + .incbin "baserom.gba", 0x3F60D0, 0x20 + .incbin "baserom.gba", 0x3F60F0, 0x20 + .incbin "baserom.gba", 0x3F6110, 0x20 + .incbin "baserom.gba", 0x3F6130, 0x20 + .incbin "baserom.gba", 0x3F6150, 0x20 + .incbin "baserom.gba", 0x3F6170, 0x20 + .incbin "baserom.gba", 0x3F6190, 0x20 + .incbin "baserom.gba", 0x3F61B0, 0x20 + +gUnknown_83F61D0:: @ 83F61D0 + .incbin "baserom.gba", 0x3F61D0, 0x20 + +gUnknown_83F61F0:: @ 83F61F0 + .incbin "baserom.gba", 0x3F61F0, 0xB + +gUnknown_83F61FB:: @ 83F61FB + .incbin "baserom.gba", 0x3F61FB, 0x8 + +gUnknown_83F6203:: @ 83F6203 + .incbin "baserom.gba", 0x3F6203, 0x3 + +gUnknown_83F6206:: @ 83F6206 + .incbin "baserom.gba", 0x3F6206, 0x160 + +gUnknown_83F6366:: @ 83F6366 + .incbin "baserom.gba", 0x3F6366, 0x16 + +gUnknown_83F637C:: @ 83F637C + .incbin "baserom.gba", 0x3F637C, 0xC diff --git a/data/layouts/SevenIsland_SeavaultCanyon_TanobyKey/border.bin b/data/layouts/SevenIsland_SevaultCanyon_TanobyKey/border.bin index 56b76feec..56b76feec 100644 --- a/data/layouts/SevenIsland_SeavaultCanyon_TanobyKey/border.bin +++ b/data/layouts/SevenIsland_SevaultCanyon_TanobyKey/border.bin diff --git a/data/layouts/SevenIsland_SeavaultCanyon_TanobyKey/map.bin b/data/layouts/SevenIsland_SevaultCanyon_TanobyKey/map.bin Binary files differindex 77ec431c8..77ec431c8 100644 --- a/data/layouts/SevenIsland_SeavaultCanyon_TanobyKey/map.bin +++ b/data/layouts/SevenIsland_SevaultCanyon_TanobyKey/map.bin diff --git a/data/layouts/layouts.json b/data/layouts/layouts.json index 0b1685e5a..7d49dc48f 100644 --- a/data/layouts/layouts.json +++ b/data/layouts/layouts.json @@ -3885,15 +3885,15 @@ }, { "id": "LAYOUT_SEVEN_ISLAND_SEAVAULT_CANYON_TANOBY_KEY", - "name": "SevenIsland_SeavaultCanyon_TanobyKey_Layout", + "name": "SevenIsland_SevaultCanyon_TanobyKey_Layout", "width": 15, "height": 16, "border_width": 2, "border_height": 2, "primary_tileset": "gTileset_82D4A94", "secondary_tileset": "gTileset_82D4E0C", - "border_filepath": "data/layouts/SevenIsland_SeavaultCanyon_TanobyKey/border.bin", - "blockdata_filepath": "data/layouts/SevenIsland_SeavaultCanyon_TanobyKey/map.bin" + "border_filepath": "data/layouts/SevenIsland_SevaultCanyon_TanobyKey/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland_SevaultCanyon_TanobyKey/map.bin" }, { "id": "LAYOUT_BIRTH_ISLAND_EXTERIOR", diff --git a/data/maps/CeladonCity_Condominiums_3F/scripts.inc b/data/maps/CeladonCity_Condominiums_3F/scripts.inc index b69ad021a..258846f29 100644 --- a/data/maps/CeladonCity_Condominiums_3F/scripts.inc +++ b/data/maps/CeladonCity_Condominiums_3F/scripts.inc @@ -34,7 +34,7 @@ EventScript_16C418:: @ 816C418 special sub_8110AB4 compare_var_to_value VAR_RESULT, 2 goto_if eq, EventScript_1A7AE0 - special sub_80CA618 + special Special_ShowDiploma waitstate release end diff --git a/data/maps/CeladonCity_DepartmentStore_Elevator/scripts.inc b/data/maps/CeladonCity_DepartmentStore_Elevator/scripts.inc index c4d07baff..0e2673614 100644 --- a/data/maps/CeladonCity_DepartmentStore_Elevator/scripts.inc +++ b/data/maps/CeladonCity_DepartmentStore_Elevator/scripts.inc @@ -7,11 +7,11 @@ CeladonCity_DepartmentStore_Elevator_EventScript_16C153:: @ 816C153 checkflag FLAG_TEMP_2 call_if FALSE, EventScript_1A7AB9 copyvar VAR_0x8005, VAR_ELEVATOR_FLOOR - special sub_80CB580 + special Special_DrawElevatorCurrentFloorWindow message Text_1A535C waitmessage setvar VAR_0x8004, 3 - specialvar VAR_RESULT, sub_80CB328 + specialvar VAR_RESULT, Special_InitElevatorFloorSelectMenuPos switch VAR_RESULT case 0, EventScript_16C1B7 case 1, EventScript_16C1C3 @@ -109,15 +109,15 @@ EventScript_16C2E6:: @ 816C2E6 end EventScript_16C30E:: @ 816C30E - special sub_80CB63C + special Special_CloseElevatorCurrentFloorWindow releaseall end EventScript_16C313:: @ 816C313 - special sub_80CB63C + special Special_CloseElevatorCurrentFloorWindow closemessage waitse - special sub_80CB498 + special Special_AnimateElevator waitstate setflag FLAG_TEMP_2 return diff --git a/data/maps/CeladonCity_GameCorner/scripts.inc b/data/maps/CeladonCity_GameCorner/scripts.inc index 7a95e7bf7..f79ffb046 100644 --- a/data/maps/CeladonCity_GameCorner/scripts.inc +++ b/data/maps/CeladonCity_GameCorner/scripts.inc @@ -273,7 +273,7 @@ EventScript_16C96C:: @ 816C96C setfieldeffectarg 2, 14 dofieldeffect 64 waitfieldeffect 64 - specialvar VAR_RESULT, sub_80CAABC + specialvar VAR_RESULT, Special_GetRandomSlotMachine playslotmachine VAR_RESULT releaseall end diff --git a/data/maps/FiveIsland_ResortGorgeous_House/scripts.inc b/data/maps/FiveIsland_ResortGorgeous_House/scripts.inc index 18a6d0b14..46a900b93 100644 --- a/data/maps/FiveIsland_ResortGorgeous_House/scripts.inc +++ b/data/maps/FiveIsland_ResortGorgeous_House/scripts.inc @@ -10,16 +10,16 @@ FiveIsland_ResortGorgeous_House_EventScript_171EBE:: @ 8171EBE faceplayer checkflag FLAG_TEMP_2 goto_if TRUE, EventScript_172043 - compare_var_to_value VAR_STORAGE_UNKNOWN, 65535 + compare_var_to_value VAR_RESORT_GOREGOUS_REQUESTED_MON, 0xFFFF goto_if eq, EventScript_171F0B - compare_var_to_value VAR_STORAGE_UNKNOWN, 0 + compare_var_to_value VAR_RESORT_GOREGOUS_REQUESTED_MON, SPECIES_NONE goto_if ne, EventScript_171F19 msgbox gUnknown_81A42A0 goto EventScript_171EFE end EventScript_171EFE:: @ 8171EFE - special sub_80CB0A8 + special Special_SampleResortGorgeousMonAndReward msgbox gUnknown_81A4315 release end @@ -30,15 +30,15 @@ EventScript_171F0B:: @ 8171F0B end EventScript_171F19:: @ 8171F19 - copyvar VAR_0x8004, VAR_STORAGE_UNKNOWN - specialvar VAR_RESULT, sub_80CC48C + copyvar VAR_0x8004, VAR_RESORT_GOREGOUS_REQUESTED_MON + specialvar VAR_RESULT, Special_PlayerPartyContainsSpecies compare_var_to_value VAR_RESULT, 1 goto_if eq, EventScript_171F34 goto EventScript_171EFE end EventScript_171F34:: @ 8171F34 - special sub_80CB0A8 + special Special_SampleResortGorgeousMonAndReward msgbox gUnknown_81A43F7 addobject 2 applymovement 2, Movement_172060 @@ -62,11 +62,11 @@ EventScript_171F34:: @ 8171F34 call_if eq, EventScript_17201A moveobjectoffscreen 2 msgbox gUnknown_81A458E - giveitem VAR_0x403B + giveitem VAR_RESORT_GOREGOUS_REWARD compare_var_to_value VAR_RESULT, 0 goto_if eq, EventScript_172025 setflag FLAG_TEMP_2 - setvar VAR_STORAGE_UNKNOWN, 0 + setvar VAR_RESORT_GOREGOUS_REQUESTED_MON, 0 release end @@ -104,7 +104,7 @@ EventScript_172025:: @ 8172025 textcolor 1 msgbox gUnknown_81A461B setflag FLAG_TEMP_2 - setvar VAR_STORAGE_UNKNOWN, 0 + setvar VAR_RESORT_GOREGOUS_REQUESTED_MON, 0 release end diff --git a/data/maps/FiveIsland_WaterLabyrinth/scripts.inc b/data/maps/FiveIsland_WaterLabyrinth/scripts.inc index 979486b7c..437df0fe8 100644 --- a/data/maps/FiveIsland_WaterLabyrinth/scripts.inc +++ b/data/maps/FiveIsland_WaterLabyrinth/scripts.inc @@ -13,7 +13,7 @@ FiveIsland_WaterLabyrinth_EventScript_16884E:: @ 816884E checkflag FLAG_NO_ROOM_FOR_TOGEPI_EGG goto_if TRUE, EventScript_16892C msgbox gUnknown_818A80D - specialvar VAR_RESULT, sub_80CA76C + specialvar VAR_RESULT, Special_GetLeadMonFriendship compare_var_to_value VAR_RESULT, 6 goto_if eq, EventScript_1688AC msgbox gUnknown_818A88F diff --git a/data/maps/FourIsland/scripts.inc b/data/maps/FourIsland/scripts.inc index 3ef1f2054..68788f93a 100644 --- a/data/maps/FourIsland/scripts.inc +++ b/data/maps/FourIsland/scripts.inc @@ -133,7 +133,7 @@ EventScript_167E19:: @ 8167E19 special GetDaycareMonNicknames msgbox gUnknown_81BF789 special SetDaycareCompatibilityString - special sub_80CA68C + special Special_ShowStringVar4AsFieldMessage waitmessage waitbuttonpress release diff --git a/data/maps/FuchsiaCity_SafariZone_Entrance/scripts.inc b/data/maps/FuchsiaCity_SafariZone_Entrance/scripts.inc index e1031e737..16b796efe 100644 --- a/data/maps/FuchsiaCity_SafariZone_Entrance/scripts.inc +++ b/data/maps/FuchsiaCity_SafariZone_Entrance/scripts.inc @@ -157,7 +157,7 @@ EventScript_16D462:: @ 816D462 countpokemon compare_var_to_value VAR_RESULT, 6 goto_if ne, EventScript_1A77A9 - specialvar VAR_RESULT, sub_80CABD0 + specialvar VAR_RESULT, Special_IsThereRoomInAnyBoxForMorePokemon compare_var_to_value VAR_RESULT, 1 goto_if eq, EventScript_1A77A9 msgbox gUnknown_81BFEAC diff --git a/data/maps/LavenderTown_House2/scripts.inc b/data/maps/LavenderTown_House2/scripts.inc index 213e84754..046530258 100644 --- a/data/maps/LavenderTown_House2/scripts.inc +++ b/data/maps/LavenderTown_House2/scripts.inc @@ -27,14 +27,14 @@ EventScript_16B2AA:: @ 816B2AA end EventScript_16B2B4:: @ 816B2B4 - specialvar VAR_RESULT, sub_80CAD54 + specialvar VAR_RESULT, Special_GetSpeciesOfPartySlot_x8004 compare_var_to_value VAR_RESULT, SPECIES_EGG goto_if eq, EventScript_16B307 special TV_CopyNicknameToStringVar1AndEnsureTerminated special TV_CheckMonOTIDEqualsPlayerID compare_var_to_value VAR_RESULT, 1 goto_if eq, EventScript_16B311 - specialvar VAR_RESULT, sub_80CAD7C + specialvar VAR_RESULT, Special_BufferMonOTNameAndCompareToPlayerName special TV_CopyNicknameToStringVar1AndEnsureTerminated compare_var_to_value VAR_RESULT, 1 goto_if eq, EventScript_16B311 diff --git a/data/maps/NavelRock_Base/scripts.inc b/data/maps/NavelRock_Base/scripts.inc index 98bb6f920..28b7996d4 100644 --- a/data/maps/NavelRock_Base/scripts.inc +++ b/data/maps/NavelRock_Base/scripts.inc @@ -46,14 +46,14 @@ NavelRock_Base_EventScript_165134:: @ 8165134 setvar VAR_0x8005, 3 setvar VAR_0x8006, 4 setvar VAR_0x8007, 2 - special sub_80CAC28 + special Special_ShakeScreen delay 30 playse SE_T_AME_E setvar VAR_0x8004, 0 setvar VAR_0x8005, 3 setvar VAR_0x8006, 4 setvar VAR_0x8007, 2 - special sub_80CAC28 + special Special_ShakeScreen delay 30 delay 50 waitse diff --git a/data/maps/PalletTown_GarysHouse/scripts.inc b/data/maps/PalletTown_GarysHouse/scripts.inc index 7900d62e8..42c7d44ad 100644 --- a/data/maps/PalletTown_GarysHouse/scripts.inc +++ b/data/maps/PalletTown_GarysHouse/scripts.inc @@ -61,7 +61,7 @@ EventScript_168DB9:: @ 8168DB9 faceplayer compare_var_to_value VAR_0x8004, 6 goto_if ge, EventScript_168E3C - specialvar VAR_RESULT, sub_80CAD54 + specialvar VAR_RESULT, Special_GetSpeciesOfPartySlot_x8004 compare_var_to_value VAR_RESULT, SPECIES_EGG goto_if eq, EventScript_168E32 msgbox gUnknown_818D8CC @@ -88,7 +88,7 @@ EventScript_168E3C:: @ 8168E3C EventScript_168E46:: @ 8168E46 msgbox gUnknown_818D9A5 - specialvar VAR_RESULT, sub_80CA76C + specialvar VAR_RESULT, Special_GetLeadMonFriendship switch VAR_RESULT case 0, EventScript_168EA6 case 1, EventScript_168EB0 diff --git a/data/maps/PalletTown_PlayersHouse_2F/scripts.inc b/data/maps/PalletTown_PlayersHouse_2F/scripts.inc index 80249e6c4..b7938f2ca 100644 --- a/data/maps/PalletTown_PlayersHouse_2F/scripts.inc +++ b/data/maps/PalletTown_PlayersHouse_2F/scripts.inc @@ -38,7 +38,7 @@ PalletTown_PlayersHouse_2F_EventScript_168CE4:: @ 8168CE4 setvar VAR_0x8004, 32 special Special_SetSomeVariable setvar VAR_0x8004, 1 - special sub_80CA86C + special Special_AnimatePcTurnOn playse SE_PC_ON msgbox gUnknown_81A5420 special sub_80EB6AC @@ -50,7 +50,7 @@ PalletTown_PlayersHouse_2F_EventScript_168CE4:: @ 8168CE4 EventScript_PalletTown_PlayersHouse_2F_ShutDownPC:: @ 8168D17 setvar VAR_0x8004, 1 playse SE_PC_OFF - special sub_80CA9A8 + special Special_AnimatePcTurnOff special sub_812B35C releaseall end diff --git a/data/maps/RocketHideout_Elevator/scripts.inc b/data/maps/RocketHideout_Elevator/scripts.inc index c83bc7fd9..c6a199a52 100644 --- a/data/maps/RocketHideout_Elevator/scripts.inc +++ b/data/maps/RocketHideout_Elevator/scripts.inc @@ -9,11 +9,11 @@ RocketHideout_Elevator_EventScript_1614D9:: @ 81614D9 checkflag FLAG_TEMP_2 call_if FALSE, EventScript_1A7AB9 copyvar VAR_0x8005, VAR_ELEVATOR_FLOOR - special sub_80CB580 + special Special_DrawElevatorCurrentFloorWindow message Text_1A535C waitmessage setvar VAR_0x8004, 2 - specialvar VAR_RESULT, sub_80CB328 + specialvar VAR_RESULT, Special_InitElevatorFloorSelectMenuPos switch VAR_RESULT case 0, EventScript_161530 case 1, EventScript_16153C @@ -87,15 +87,15 @@ EventScript_161608:: @ 8161608 end EventScript_161609:: @ 8161609 - special sub_80CB63C + special Special_CloseElevatorCurrentFloorWindow releaseall end EventScript_16160E:: @ 816160E - special sub_80CB63C + special Special_CloseElevatorCurrentFloorWindow closemessage waitse - special sub_80CB498 + special Special_AnimateElevator waitstate setflag FLAG_TEMP_2 return diff --git a/data/maps/Route12_FishingHouse/scripts.inc b/data/maps/Route12_FishingHouse/scripts.inc index 927bc3bea..9f0255568 100644 --- a/data/maps/Route12_FishingHouse/scripts.inc +++ b/data/maps/Route12_FishingHouse/scripts.inc @@ -36,7 +36,7 @@ EventScript_16FF7F:: @ 816FF7F goto_if eq, EventScript_1A7AE0 special sub_8112364 setvar VAR_0x8004, SPECIES_MAGIKARP - specialvar VAR_RESULT, sub_80CC48C + specialvar VAR_RESULT, Special_PlayerPartyContainsSpecies compare_var_to_value VAR_RESULT, 0 goto_if eq, EventScript_16FFF5 special sub_80A096C diff --git a/data/maps/Route16/scripts.inc b/data/maps/Route16/scripts.inc index b20a716ca..0bc8d6c8a 100644 --- a/data/maps/Route16/scripts.inc +++ b/data/maps/Route16/scripts.inc @@ -27,7 +27,7 @@ Route16_MapScript3_168113:: @ 8168113 .2byte 0 EventScript_16811D:: @ 816811D - special sub_80CA630 + special Special_ForcePlayerOntoBike end Route16_EventScript_168121:: @ 8168121 diff --git a/data/maps/Route18/scripts.inc b/data/maps/Route18/scripts.inc index dfc5f8578..cc6d11221 100644 --- a/data/maps/Route18/scripts.inc +++ b/data/maps/Route18/scripts.inc @@ -17,7 +17,7 @@ Route18_MapScript2_168211:: @ 8168211 .2byte 0 EventScript_16821B:: @ 816821B - special sub_80CA630 + special Special_ForcePlayerOntoBike end Route18_EventScript_16821F:: @ 816821F diff --git a/data/maps/SevenIsland_House_Room1/scripts.inc b/data/maps/SevenIsland_House_Room1/scripts.inc index 70813ddba..2f7e63cfb 100644 --- a/data/maps/SevenIsland_House_Room1/scripts.inc +++ b/data/maps/SevenIsland_House_Room1/scripts.inc @@ -90,7 +90,7 @@ EventScript_17097D:: @ 817097D EventScript_170987:: @ 8170987 special SavePlayerParty - special sub_80CAAAC + special Special_BufferEReaderTrainerName5 msgbox gUnknown_81A0598, MSGBOX_YESNO compare_var_to_value VAR_RESULT, 0 goto_if eq, EventScript_170A11 diff --git a/data/maps/SevenIsland_House_Room2/scripts.inc b/data/maps/SevenIsland_House_Room2/scripts.inc index d77eda077..2cbb7d1db 100644 --- a/data/maps/SevenIsland_House_Room2/scripts.inc +++ b/data/maps/SevenIsland_House_Room2/scripts.inc @@ -46,14 +46,14 @@ EventScript_170AFE:: @ 8170AFE EventScript_170B0C:: @ 8170B0C setvar VAR_MAP_SCENE_SEVEN_ISLAND_HOUSE_ROOM1, 1 - special sub_80CA68C + special Special_ShowStringVar4AsFieldMessage waitmessage waitbuttonpress return EventScript_170B17:: @ 8170B17 setvar VAR_MAP_SCENE_SEVEN_ISLAND_HOUSE_ROOM1, 2 - special sub_80CA68C + special Special_ShowStringVar4AsFieldMessage waitmessage waitbuttonpress return diff --git a/data/maps/SevenIsland_SeavaultCanyon_TanobyKey/map.json b/data/maps/SevenIsland_SevaultCanyon_TanobyKey/map.json index f8c9c1a1f..d5735302c 100644 --- a/data/maps/SevenIsland_SeavaultCanyon_TanobyKey/map.json +++ b/data/maps/SevenIsland_SevaultCanyon_TanobyKey/map.json @@ -1,6 +1,6 @@ { "id": "MAP_SEVEN_ISLAND_SEAVAULT_CANYON_TANOBY_KEY", - "name": "SevenIsland_SeavaultCanyon_TanobyKey", + "name": "SevenIsland_SevaultCanyon_TanobyKey", "layout": "LAYOUT_SEVEN_ISLAND_SEAVAULT_CANYON_TANOBY_KEY", "music": "MUS_NANAISEKI", "region_map_section": "MAPSEC_TANOBY_KEY", @@ -122,7 +122,7 @@ "elevation": 3, "var": "VAR_0x4001", "var_value": 99, - "script": "SevenIsland_SeavaultCanyon_TanobyKey_EventScript_164E39" + "script": "SevenIsland_SevaultCanyon_TanobyKey_EventScript_164E39" }, { "type": "trigger", @@ -131,7 +131,7 @@ "elevation": 3, "var": "VAR_0x4007", "var_value": 99, - "script": "SevenIsland_SeavaultCanyon_TanobyKey_EventScript_164F0B" + "script": "SevenIsland_SevaultCanyon_TanobyKey_EventScript_164F0B" }, { "type": "trigger", @@ -140,7 +140,7 @@ "elevation": 3, "var": "VAR_0x4006", "var_value": 99, - "script": "SevenIsland_SeavaultCanyon_TanobyKey_EventScript_164EE8" + "script": "SevenIsland_SevaultCanyon_TanobyKey_EventScript_164EE8" }, { "type": "trigger", @@ -149,7 +149,7 @@ "elevation": 3, "var": "VAR_0x4005", "var_value": 99, - "script": "SevenIsland_SeavaultCanyon_TanobyKey_EventScript_164EC5" + "script": "SevenIsland_SevaultCanyon_TanobyKey_EventScript_164EC5" }, { "type": "trigger", @@ -158,7 +158,7 @@ "elevation": 3, "var": "VAR_0x4004", "var_value": 99, - "script": "SevenIsland_SeavaultCanyon_TanobyKey_EventScript_164EA2" + "script": "SevenIsland_SevaultCanyon_TanobyKey_EventScript_164EA2" }, { "type": "trigger", @@ -167,7 +167,7 @@ "elevation": 3, "var": "VAR_0x4003", "var_value": 99, - "script": "SevenIsland_SeavaultCanyon_TanobyKey_EventScript_164E7F" + "script": "SevenIsland_SevaultCanyon_TanobyKey_EventScript_164E7F" }, { "type": "trigger", @@ -176,7 +176,7 @@ "elevation": 3, "var": "VAR_0x4002", "var_value": 99, - "script": "SevenIsland_SeavaultCanyon_TanobyKey_EventScript_164E5C" + "script": "SevenIsland_SevaultCanyon_TanobyKey_EventScript_164E5C" } ], "bg_events": [] diff --git a/data/maps/SevenIsland_SeavaultCanyon_TanobyKey/scripts.inc b/data/maps/SevenIsland_SevaultCanyon_TanobyKey/scripts.inc index 44dd71179..ce843d9e4 100644 --- a/data/maps/SevenIsland_SeavaultCanyon_TanobyKey/scripts.inc +++ b/data/maps/SevenIsland_SevaultCanyon_TanobyKey/scripts.inc @@ -1,8 +1,8 @@ -SevenIsland_SeavaultCanyon_TanobyKey_MapScripts:: @ 8164DCC - map_script 3, SevenIsland_SeavaultCanyon_TanobyKey_MapScript1_164DD2 +SevenIsland_SevaultCanyon_TanobyKey_MapScripts:: @ 8164DCC + map_script 3, SevenIsland_SevaultCanyon_TanobyKey_MapScript1_164DD2 .byte 0 -SevenIsland_SeavaultCanyon_TanobyKey_MapScript1_164DD2:: @ 8164DD2 +SevenIsland_SevaultCanyon_TanobyKey_MapScript1_164DD2:: @ 8164DD2 setworldmapflag FLAG_WORLD_MAP_SEVEN_ISLAND_SEAVAULT_CANYON_TANOBY_KEY checkflag FLAG_SYS_UNLOCKED_TANOBY_RUINS call_if TRUE, EventScript_164E07 @@ -26,7 +26,7 @@ EventScript_164E07:: @ 8164E07 setobjectxyperm 7, 9, 8 return -SevenIsland_SeavaultCanyon_TanobyKey_EventScript_164E39:: @ 8164E39 +SevenIsland_SevaultCanyon_TanobyKey_EventScript_164E39:: @ 8164E39 lockall compare_var_to_value VAR_0x4001, 100 goto_if eq, EventScript_164F8A @@ -37,7 +37,7 @@ SevenIsland_SeavaultCanyon_TanobyKey_EventScript_164E39:: @ 8164E39 releaseall end -SevenIsland_SeavaultCanyon_TanobyKey_EventScript_164E5C:: @ 8164E5C +SevenIsland_SevaultCanyon_TanobyKey_EventScript_164E5C:: @ 8164E5C lockall compare_var_to_value VAR_0x4002, 100 goto_if eq, EventScript_164F8A @@ -48,7 +48,7 @@ SevenIsland_SeavaultCanyon_TanobyKey_EventScript_164E5C:: @ 8164E5C releaseall end -SevenIsland_SeavaultCanyon_TanobyKey_EventScript_164E7F:: @ 8164E7F +SevenIsland_SevaultCanyon_TanobyKey_EventScript_164E7F:: @ 8164E7F lockall compare_var_to_value VAR_0x4003, 100 goto_if eq, EventScript_164F8A @@ -59,7 +59,7 @@ SevenIsland_SeavaultCanyon_TanobyKey_EventScript_164E7F:: @ 8164E7F releaseall end -SevenIsland_SeavaultCanyon_TanobyKey_EventScript_164EA2:: @ 8164EA2 +SevenIsland_SevaultCanyon_TanobyKey_EventScript_164EA2:: @ 8164EA2 lockall compare_var_to_value VAR_0x4004, 100 goto_if eq, EventScript_164F8A @@ -70,7 +70,7 @@ SevenIsland_SeavaultCanyon_TanobyKey_EventScript_164EA2:: @ 8164EA2 releaseall end -SevenIsland_SeavaultCanyon_TanobyKey_EventScript_164EC5:: @ 8164EC5 +SevenIsland_SevaultCanyon_TanobyKey_EventScript_164EC5:: @ 8164EC5 lockall compare_var_to_value VAR_0x4005, 100 goto_if eq, EventScript_164F8A @@ -81,7 +81,7 @@ SevenIsland_SeavaultCanyon_TanobyKey_EventScript_164EC5:: @ 8164EC5 releaseall end -SevenIsland_SeavaultCanyon_TanobyKey_EventScript_164EE8:: @ 8164EE8 +SevenIsland_SevaultCanyon_TanobyKey_EventScript_164EE8:: @ 8164EE8 lockall compare_var_to_value VAR_0x4006, 100 goto_if eq, EventScript_164F8A @@ -92,7 +92,7 @@ SevenIsland_SeavaultCanyon_TanobyKey_EventScript_164EE8:: @ 8164EE8 releaseall end -SevenIsland_SeavaultCanyon_TanobyKey_EventScript_164F0B:: @ 8164F0B +SevenIsland_SevaultCanyon_TanobyKey_EventScript_164F0B:: @ 8164F0B lockall compare_var_to_value VAR_0x4007, 100 goto_if eq, EventScript_164F8A @@ -110,7 +110,7 @@ EventScript_164F2E:: @ 8164F2E setvar VAR_0x8005, 1 setvar VAR_0x8006, 8 setvar VAR_0x8007, 3 - special sub_80CAC28 + special Special_ShakeScreen delay 60 return @@ -119,13 +119,13 @@ EventScript_164F51:: @ 8164F51 setvar VAR_0x8005, 2 setvar VAR_0x8006, 10 setvar VAR_0x8007, 3 - special sub_80CAC28 + special Special_ShakeScreen delay 60 setvar VAR_0x8004, 3 setvar VAR_0x8005, 3 setvar VAR_0x8006, 12 setvar VAR_0x8007, 2 - special sub_80CAC28 + special Special_ShakeScreen delay 60 playse SE_FU_ZUZUZU waitse diff --git a/data/maps/SevenIsland_SeavaultCanyon_TanobyKey/text.inc b/data/maps/SevenIsland_SevaultCanyon_TanobyKey/text.inc index c6f137869..c6f137869 100644 --- a/data/maps/SevenIsland_SeavaultCanyon_TanobyKey/text.inc +++ b/data/maps/SevenIsland_SevaultCanyon_TanobyKey/text.inc diff --git a/data/maps/SevenIsland_TrainerTower_Elevator/scripts.inc b/data/maps/SevenIsland_TrainerTower_Elevator/scripts.inc index b1fc46abd..a415190da 100644 --- a/data/maps/SevenIsland_TrainerTower_Elevator/scripts.inc +++ b/data/maps/SevenIsland_TrainerTower_Elevator/scripts.inc @@ -9,11 +9,11 @@ SevenIsland_TrainerTower_Elevator_EventScript_164B03:: @ 8164B03 checkflag FLAG_TEMP_2 call_if FALSE, EventScript_1A7AB9 copyvar VAR_0x8005, VAR_ELEVATOR_FLOOR - special sub_80CB580 + special Special_DrawElevatorCurrentFloorWindow message Text_1A535C waitmessage setvar VAR_0x8004, 6 - specialvar VAR_RESULT, sub_80CB328 + specialvar VAR_RESULT, Special_InitElevatorFloorSelectMenuPos switch VAR_RESULT case 0, EventScript_164B46 case 1, EventScript_164B52 @@ -44,7 +44,7 @@ EventScript_164B90:: @ 8164B90 goto_if eq, EventScript_164BD3 call EventScript_164BD8 setvar VAR_ELEVATOR_FLOOR, 3 - special sub_80CB63C + special Special_CloseElevatorCurrentFloorWindow delay 25 applymovement 255, Movement_164BE5 waitmovement 0 @@ -58,15 +58,15 @@ EventScript_164BCD:: @ 8164BCD end EventScript_164BD3:: @ 8164BD3 - special sub_80CB63C + special Special_CloseElevatorCurrentFloorWindow releaseall end EventScript_164BD8:: @ 8164BD8 - special sub_80CB63C + special Special_CloseElevatorCurrentFloorWindow closemessage waitse - special sub_80CB498 + special Special_AnimateElevator waitstate setflag FLAG_TEMP_2 return diff --git a/data/maps/SilphCo_Elevator/scripts.inc b/data/maps/SilphCo_Elevator/scripts.inc index 9338e5c6e..3202bdeb8 100644 --- a/data/maps/SilphCo_Elevator/scripts.inc +++ b/data/maps/SilphCo_Elevator/scripts.inc @@ -7,11 +7,11 @@ SilphCo_Elevator_EventScript_161F6F:: @ 8161F6F checkflag FLAG_TEMP_2 call_if FALSE, EventScript_1A7AB9 copyvar VAR_0x8005, VAR_ELEVATOR_FLOOR - special sub_80CB580 + special Special_DrawElevatorCurrentFloorWindow message Text_1A535C waitmessage setvar VAR_0x8004, 1 - specialvar VAR_RESULT, sub_80CB328 + specialvar VAR_RESULT, Special_InitElevatorFloorSelectMenuPos special sub_80CB7C4 waitstate switch VAR_RESULT @@ -163,15 +163,15 @@ EventScript_1621E6:: @ 81621E6 end EventScript_1621E7:: @ 81621E7 - special sub_80CB63C + special Special_CloseElevatorCurrentFloorWindow releaseall end EventScript_1621EC:: @ 81621EC - special sub_80CB63C + special Special_CloseElevatorCurrentFloorWindow closemessage waitse - special sub_80CB498 + special Special_AnimateElevator waitstate setflag FLAG_TEMP_2 return diff --git a/data/maps/SixIsland_DottedHole_SapphireRoom/scripts.inc b/data/maps/SixIsland_DottedHole_SapphireRoom/scripts.inc index bf2e1eb6d..5d6fcfe53 100644 --- a/data/maps/SixIsland_DottedHole_SapphireRoom/scripts.inc +++ b/data/maps/SixIsland_DottedHole_SapphireRoom/scripts.inc @@ -28,7 +28,7 @@ SixIsland_DottedHole_SapphireRoom_EventScript_1641B5:: @ 81641B5 setvar VAR_0x8005, 0 setvar VAR_0x8006, 12 setvar VAR_0x8007, 3 - special sub_80CAC28 + special Special_ShakeScreen delay 60 compare_var_to_value VAR_FACING, 2 call_if eq, EventScript_164325 diff --git a/data/maps/SixIsland_WaterPath_House1/scripts.inc b/data/maps/SixIsland_WaterPath_House1/scripts.inc index be9e12915..08efbc6fc 100644 --- a/data/maps/SixIsland_WaterPath_House1/scripts.inc +++ b/data/maps/SixIsland_WaterPath_House1/scripts.inc @@ -9,7 +9,7 @@ SixIsland_WaterPath_House1_EventScript_17206D:: @ 817206D goto_if eq, EventScript_1A7AE0 special sub_8112364 setvar VAR_0x8004, SPECIES_HERACROSS - specialvar VAR_RESULT, sub_80CC48C + specialvar VAR_RESULT, Special_PlayerPartyContainsSpecies compare_var_to_value VAR_RESULT, 0 goto_if eq, EventScript_1720E5 special sub_80A0918 diff --git a/data/maps/ThreeIsland_BerryForest/scripts.inc b/data/maps/ThreeIsland_BerryForest/scripts.inc index 739b926b0..3119a1d44 100644 --- a/data/maps/ThreeIsland_BerryForest/scripts.inc +++ b/data/maps/ThreeIsland_BerryForest/scripts.inc @@ -32,7 +32,7 @@ ThreeIsland_BerryForest_EventScript_163C83:: @ 8163C83 giveitem ITEM_IAPAPA_BERRY compare_var_to_value VAR_RESULT, 0 call_if eq, EventScript_163D19 - special sub_80CA6DC + special Special_BufferBigGuyOrBigGirlString msgbox gUnknown_817AF3B closemessage setflag FLAG_RESCUED_LOSTELLE diff --git a/data/maps/ThreeIsland_House1/scripts.inc b/data/maps/ThreeIsland_House1/scripts.inc index 29952137a..7738d2e5c 100644 --- a/data/maps/ThreeIsland_House1/scripts.inc +++ b/data/maps/ThreeIsland_House1/scripts.inc @@ -4,7 +4,7 @@ ThreeIsland_House1_MapScripts:: @ 8171819 ThreeIsland_House1_EventScript_17181A:: @ 817181A lock faceplayer - special sub_80CA6DC + special Special_BufferBigGuyOrBigGirlString msgbox gUnknown_81A2F3E release end diff --git a/data/maps/TwoIsland_JoyfulGameCorner/scripts.inc b/data/maps/TwoIsland_JoyfulGameCorner/scripts.inc index 7d4bb6684..798435eaf 100644 --- a/data/maps/TwoIsland_JoyfulGameCorner/scripts.inc +++ b/data/maps/TwoIsland_JoyfulGameCorner/scripts.inc @@ -37,7 +37,7 @@ EventScript_171435:: @ 8171435 textcolor 0 msgbox gUnknown_81A28B2 textcolor 1 - special sub_80CA6DC + special Special_BufferBigGuyOrBigGirlString msgbox gUnknown_81A2931 closemessage applymovement 3, Movement_1A75ED diff --git a/data/maps/map_groups.json b/data/maps/map_groups.json index 3bf3c6982..8619c19ad 100644 --- a/data/maps/map_groups.json +++ b/data/maps/map_groups.json @@ -212,7 +212,7 @@ "SevenIsland_TanobyRuins_RixyChamber", "SevenIsland_TanobyRuins_ViapoisChamber", "ThreeIsland_DunsparceTunnel", - "SevenIsland_SeavaultCanyon_TanobyKey", + "SevenIsland_SevaultCanyon_TanobyKey", "NavelRock_1F", "NavelRock_Summit", "NavelRock_Base", diff --git a/data/specials.inc b/data/specials.inc index bfb649961..20dd3facb 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -150,15 +150,15 @@ gSpecials:: @ 815FD60 def_special nullsub_75 def_special nullsub_75 def_special nullsub_75 - def_special sub_80CA68C + def_special Special_ShowStringVar4AsFieldMessage def_special DrawWholeMapView - def_special sub_80CA69C + def_special Special_GetPlayerXY def_special nullsub_75 def_special nullsub_75 def_special nullsub_75 - def_special sub_80CA6BC - def_special sub_80CA6DC - def_special sub_80CA714 + def_special Special_GetPlayerTrainerIdOnesDigit + def_special Special_BufferBigGuyOrBigGirlString + def_special Special_BufferSonOrDaughterString def_special Special_SetHiddenItemFlag def_special nullsub_75 def_special nullsub_75 @@ -223,8 +223,8 @@ gSpecials:: @ 815FD60 def_special nullsub_75 def_special Special_GetPokedexCount def_special sub_80CA524 - def_special sub_80CA86C - def_special sub_80CA9A8 + def_special Special_AnimatePcTurnOn + def_special Special_AnimatePcTurnOff def_special Special_GetElevatorFloor def_special nullsub_75 def_special nullsub_75 @@ -236,10 +236,10 @@ gSpecials:: @ 815FD60 def_special sub_80E4634 def_special nullsub_75 def_special nullsub_75 - def_special sub_80CA664 + def_special Special_GetPlayerAvatarBike def_special nullsub_75 def_special nullsub_75 - def_special sub_80CA76C + def_special Special_GetLeadMonFriendship def_special sub_80E5970 def_special sub_80E5C28 def_special sub_80E6648 @@ -260,7 +260,7 @@ gSpecials:: @ 815FD60 def_special sub_80A03D8 def_special sub_80EB6AC def_special sub_80EB6FC - def_special sub_80CA7EC + def_special Special_TownMap def_special sub_8053A9C def_special sub_8053D68 def_special sub_8054440 @@ -273,7 +273,7 @@ gSpecials:: @ 815FD60 def_special nullsub_75 def_special ScrSpecial_CreatePCMenu def_special HallOfFamePCBeginFade - def_special sub_80CA618 + def_special Special_ShowDiploma def_special nullsub_75 def_special nullsub_75 def_special nullsub_75 @@ -282,7 +282,7 @@ gSpecials:: @ 815FD60 def_special nullsub_61 def_special DoSoftReset def_special Special_HallOfFame - def_special sub_80CB498 + def_special Special_AnimateElevator def_special nullsub_75 def_special SpawnCameraObject def_special RemoveCameraObject @@ -294,32 +294,32 @@ gSpecials:: @ 815FD60 def_special nullsub_75 def_special nullsub_75 def_special nullsub_75 - def_special sub_80CAAAC - def_special sub_80CAABC + def_special Special_BufferEReaderTrainerName5 + def_special Special_GetRandomSlotMachine def_special GetPlayerFacingDirection def_special nullsub_75 def_special nullsub_75 def_special nullsub_75 def_special nullsub_75 def_special LeadMonHasEffortRibbon - def_special GivLeadMonEffortRibbon + def_special GiveLeadMonEffortRibbon def_special ScrSpecial_AreLeadMonEVsMaxedOut def_special sub_8069740 def_special sub_8069768 def_special InitRoamer def_special nullsub_75 - def_special sub_80CA804 + def_special Special_PlayerHasGrassPokemonInParty def_special nullsub_75 def_special nullsub_75 - def_special sub_80CAB78 + def_special Special_IsStarterFirstStageInParty def_special nullsub_75 - def_special sub_80CABD0 + def_special Special_IsThereRoomInAnyBoxForMorePokemon def_special nullsub_75 - def_special sub_80CB580 + def_special Special_DrawElevatorCurrentFloorWindow def_special nullsub_75 - def_special sub_80CAC08 + def_special Special_CheckPartyPokerus def_special sub_806E99C - def_special sub_80CAC28 + def_special Special_ShakeScreen def_special sub_807FA68 def_special sub_807F9D8 def_special sub_807FABC @@ -336,7 +336,7 @@ gSpecials:: @ 815FD60 def_special nullsub_75 def_special nullsub_75 def_special nullsub_75 - def_special sub_80CAD54 + def_special Special_GetSpeciesOfPartySlot_x8004 def_special sub_80BFC14 def_special nullsub_75 def_special nullsub_75 @@ -345,23 +345,23 @@ gSpecials:: @ 815FD60 def_special nullsub_75 def_special nullsub_75 def_special HasAllKantoMons - def_special sub_80CAD7C + def_special Special_BufferMonOTNameAndCompareToPlayerName def_special nullsub_75 def_special sub_80E759C def_special GetNameOfEnigmaBerryInPlayerParty def_special nullsub_75 def_special sub_810B82C def_special sub_807F904 - def_special sub_80CA630 + def_special Special_ForcePlayerOntoBike def_special sub_80CB7C4 def_special sub_80CBC5C def_special sub_80CADC4 def_special Special_SetVermilionTrashCans def_special sub_805D1A8 - def_special sub_80CB0A8 + def_special Special_SampleResortGorgeousMonAndReward def_special Special_CheckAddCoins def_special GetDaycarePokemonCount - def_special sub_80CB63C + def_special Special_CloseElevatorCurrentFloorWindow def_special sub_80CBD80 def_special ScrSpecial_GetStarter def_special sub_80CBDCC @@ -389,7 +389,7 @@ gSpecials:: @ 815FD60 def_special GetNumLevelsGainedForRoute5DaycareMon def_special TakePokemonFromRoute5Daycare def_special ScrSpecial_SeaGallopFerry - def_special sub_80CC48C + def_special Special_PlayerPartyContainsSpecies def_special Special_SetSomeVariable def_special HelpSystem_BackupSomeVariable def_special HelpSystem_RestoreSomeVariable @@ -449,7 +449,7 @@ gSpecials:: @ 815FD60 def_special sub_809C4A8 def_special sub_81537C0 def_special sub_809C5FC - def_special sub_80CB328 + def_special Special_InitElevatorFloorSelectMenuPos def_special Special_ComputeLoreleiDollCollection def_special sub_80CD1B4 def_special CreateObedientEnemyMon diff --git a/data/strings.s b/data/strings.s index 1d086f4c8..546f40899 100644 --- a/data/strings.s +++ b/data/strings.s @@ -1394,7 +1394,7 @@ gUnknown_8417920:: @ 0x8417920 gUnknown_8417926:: @ 0x8417926 .string "OK$" -gUnknown_8417929:: @ 0x8417929 +gOtherText_Quit:: @ 0x8417929 .string "QUIT$" gUnknown_841792E:: @ 0x841792E diff --git a/include/battle_tower.h b/include/battle_tower.h index 78e3f8e43..4c3c23e48 100644 --- a/include/battle_tower.h +++ b/include/battle_tower.h @@ -4,9 +4,10 @@ #include "global.h" u16 sub_8164FCC(u8, u8); -void sub_80E7524(u32 *); +void sub_80E7524(struct BattleTowerEReaderTrainer *); void ValidateEReaderTrainer(void); u8 GetBattleTowerTrainerFrontSpriteId(void); u8 GetEreaderTrainerFrontSpriteId(void); +void CopyEReaderTrainerName5(u8 *dest); #endif //GUARD_BATTLE_TOWER_H diff --git a/include/constants/vars.h b/include/constants/vars.h index 59dbf8ebb..9e34127f9 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -95,13 +95,13 @@ #define VAR_ENIGMA_BERRY_AVAILABLE 0x4033 #define VAR_0x4034 0x4034 -#define VAR_0x4035 0x4035 -#define VAR_STORAGE_UNKNOWN 0x4036 +#define VAR_RESORT_GOREGEOUS_STEP_COUNTER 0x4035 +#define VAR_RESORT_GOREGOUS_REQUESTED_MON 0x4036 #define VAR_0x4037 0x4037 #define VAR_0x4038 0x4038 #define VAR_0x4039 0x4039 #define VAR_ELEVATOR_FLOOR 0x403A -#define VAR_0x403B 0x403B +#define VAR_RESORT_GOREGOUS_REWARD 0x403B #define VAR_0x403C 0x403C #define VAR_0x403D 0x403D #define VAR_DEOXYS_INTERACTION_NUM 0x403E diff --git a/include/field_camera.h b/include/field_camera.h index d67523c8f..d2165780a 100644 --- a/include/field_camera.h +++ b/include/field_camera.h @@ -27,5 +27,8 @@ extern u16 gUnknown_03005DE8; void DrawWholeMapView(void); void CurrentMapDrawMetatileAt(int x, int y); void sub_805A658(s16 *x, s16 *y); +void SetCameraPanningCallback(void (*cb)(void)); +void SetCameraPanning(s16 x, s16 y); +void InstallCameraPanAheadCallback(void); #endif //GUARD_FIELD_CAMERA_H diff --git a/include/field_map_obj.h b/include/field_map_obj.h index baed87ac6..40d7ed933 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -94,6 +94,7 @@ void npc_paltag_set_load(u8 mode); bool8 FieldObjectIsMovementOverridden(struct MapObject *mapObject); u8 FieldObjectCheckHeldMovementStatus(struct MapObject *mapObject); u8 sub_8063F84(u8 direction); +void CameraObjectSetFollowedObjectId(u8 spriteId); // Exported data declarations diff --git a/include/global.h b/include/global.h index 57035ce30..5c4501be3 100644 --- a/include/global.h +++ b/include/global.h @@ -194,6 +194,11 @@ struct LinkBattleRecords u8 languages[LINK_B_RECORDS_COUNT]; }; +#include "constants/game_stat.h" +#include "global.fieldmap.h" +#include "global.berry.h" +#include "pokemon.h" + struct UnknownSaveBlock2Struct { u8 field_0; @@ -214,6 +219,20 @@ struct UnknownSaveBlock2Struct u8 field_EB; }; // sizeof = 0xEC +struct BattleTowerEReaderTrainer +{ + /*0x4A0 0x3F0 0x00*/ u8 unk0; + /*0x4A1 0x3F1 0x01*/ u8 facilityClass; + /*0x4A2 0x3F2 0x02*/ u16 winStreak; + /*0x4A4 0x3F4 0x04*/ u8 name[8]; + /*0x4AC 0x3FC 0x0C*/ u8 trainerId[4]; + /*0x4B0 0x400 0x10*/ u16 greeting[6]; + /*0x4BC 0x40C 0x1C*/ u16 farewellPlayerLost[6]; + /*0x4C8 0x418 0x28*/ u16 farewellPlayerWon[6]; + /*0x4D4 0x424 0x34*/ struct BattleTowerPokemon party[3]; + /*0x558 0x4A8 0xB8*/ u32 checksum; +}; + struct UnkSaveBlock2Substruct_55C { /* 0x000:0x55C */ u8 unk_00_0:1; @@ -232,7 +251,7 @@ struct UnkSaveBlock2Substruct_55C struct UnkSaveBlock2Substruct_B0 { /* 0x000:0x0B0 */ u8 field_0[0x3F0]; - /* 0x3F0:0x4A0 */ u32 field_3F0[0x2F]; + /* 0x3F0:0x4A0 */ struct BattleTowerEReaderTrainer field_3F0; /* 0x4AC:0x55C */ struct UnkSaveBlock2Substruct_55C field_4AC; /* 0x4C4:0x574 */ u8 field_4C4[0x324]; }; // size: 0x7E8 @@ -261,7 +280,6 @@ struct SaveBlock2 /*0x0A8*/ u32 field_A8; /*0x0AC*/ u8 field_AC; /*0x0AD*/ u8 field_AD; - /*0x0AE*/ u8 filler_AE[0x2]; /*0x0B0*/ struct UnkSaveBlock2Substruct_B0 unk_B0; /*0x898*/ u16 mapView[0x100]; /*0xA98*/ struct LinkBattleRecords linkBattleRecords; @@ -304,11 +322,6 @@ struct SecretBaseRecord /*0x1AD0*/ struct SecretBaseParty party; }; -#include "constants/game_stat.h" -#include "global.fieldmap.h" -#include "global.berry.h" -#include "pokemon.h" - struct WarpData { s8 mapGroup; diff --git a/include/pokemon.h b/include/pokemon.h index c5ee4eda5..77c8191f3 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -346,7 +346,7 @@ struct BattleTowerPokemon u32 gap:1; u32 abilityNum:1; /*0x1C*/ u32 personality; - /*0x20*/ u8 nickname[POKEMON_NAME_LENGTH + 1]; + /*0x20*/ u8 nickname[11]; /*0x2B*/ u8 friendship; }; diff --git a/include/script_menu.h b/include/script_menu.h index c1e32beae..d3d04c65d 100644 --- a/include/script_menu.h +++ b/include/script_menu.h @@ -15,5 +15,6 @@ void ScriptMenu_DisplayPCStartupPrompt(void); bool8 (*ScriptMenu_GetPicboxWaitFunc(void))(void); void sub_809D6D4(void); +void sub_809D424(void); #endif //GUARD_SCRIPT_MENU_H diff --git a/include/strings.h b/include/strings.h index 8f3da98cf..763b9b569 100644 --- a/include/strings.h +++ b/include/strings.h @@ -475,4 +475,11 @@ extern const u8 gSaveStatName_Time[]; // mail extern const u8 gText_From[]; +// field_specials +extern const u8 gUnknown_8417FBB[]; +extern const u8 gUnknown_8417FC3[]; +extern const u8 gUnknown_8417FD0[]; +extern const u8 gUnknown_8417FCC[]; +extern const u8 gUnknown_8418075[]; + #endif //GUARD_STRINGS_H diff --git a/ld_script.txt b/ld_script.txt index 341b1b103..4cd208c7c 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -187,6 +187,7 @@ SECTIONS { asm/post_battle_event_funcs.o(.text); src/prof_pc.o(.text); src/hof_pc.o(.text); + src/field_specials.o(.text); asm/field_specials.o(.text); src/battle_records.o(.text); asm/evolution_scene.o(.text); @@ -445,6 +446,8 @@ SECTIONS { data/data_835B488.o(.rodata.83EEC98); src/battle_ai_script_commands.o(.rodata); data/data_83F5738.o(.rodata); + src/field_specials.o(.rodata); + data/field_specials.o(.rodata); src/battle_records.o(.rodata); data/data_83F5738.o(.rodata.83F6C90); src/battle_transition.o(.rodata); diff --git a/src/field_specials.c b/src/field_specials.c new file mode 100644 index 000000000..0aa1f81d1 --- /dev/null +++ b/src/field_specials.c @@ -0,0 +1,955 @@ +#include "global.h" +#include "quest_log.h" +#include "diploma.h" +#include "script.h" +#include "field_player_avatar.h" +#include "overworld.h" +#include "field_message_box.h" +#include "event_data.h" +#include "string_util.h" +#include "strings.h" +#include "battle.h" +#include "fieldmap.h" +#include "field_specials.h" +#include "region_map.h" +#include "task.h" +#include "battle_tower.h" +#include "field_camera.h" +#include "field_map_obj.h" +#include "random.h" +#include "sound.h" +#include "text.h" +#include "pokemon_storage_system.h" +#include "script_menu.h" +#include "data.h" +#include "pokedex.h" +#include "window.h" +#include "text_window.h" +#include "menu.h" +#include "constants/songs.h" +#include "constants/species.h" +#include "constants/items.h" +#include "constants/map_objects.h" +#include "constants/maps.h" + +EWRAM_DATA u8 sElevatorCurrentFloorWindowId = 0; +EWRAM_DATA u16 sElevatorScroll = 0; +EWRAM_DATA u16 sElevatorCursorPos = 0; + +static void Task_AnimatePcTurnOn(u8 taskId); +static void PcTurnOnUpdateMetatileId(bool16 flag); +static void Task_ShakeScreen(u8 taskId); +static void Task_EndScreenShake(u8 taskId); +static u16 SampleResortGoregeousMon(void); +static u16 SampleResortGoregeousReward(void); +static void Task_ElevatorShake(u8 taskId); +static void AnimateElevatorWindowView(u16 nfloors, bool8 direction); +static void Task_AnimateElevatorWindowView(u8 taskId); +u16 GetStarterPokemon(u16 starterIdx); + +extern const u8 sSlotMachineIndices[22]; +extern const u16 sResortGorgeousDeluxeRewards[6]; +extern const struct WindowTemplate sElevatorCurrentFloorWindowTemplate; +extern const u8 *const sFloorNamePointers[15]; +extern const u16 sElevatorWindowMetatilesGoingUp[3][3]; +extern const u16 sElevatorWindowMetatilesGoingDown[3][3]; +extern const u8 sElevatorAnimationDuration[9]; +extern const u8 sElevatorWindowAnimDuration[9]; + +void Special_ShowDiploma(void) +{ + sub_8112364(); + SetMainCallback2(CB2_ShowDiploma); + ScriptContext2_Enable(); +} + +void Special_ForcePlayerOntoBike(void) +{ + if (gPlayerAvatar.flags & 1) + SetPlayerAvatarTransitionFlags(2); + Overworld_SetSavedMusic(MUS_CYCLING); + Overworld_ChangeMusicTo(MUS_CYCLING); +} + +void nullsub_74(void) +{ + +} + +u8 Special_GetPlayerAvatarBike(void) +{ + if (TestPlayerAvatarFlags(4)) + return 1; + else if (TestPlayerAvatarFlags(2)) + return 2; + else + return 0; +} + +void Special_ShowStringVar4AsFieldMessage(void) +{ + ShowFieldMessage(gStringVar4); +} + +void Special_GetPlayerXY(void) +{ + gSpecialVar_0x8004 = gSaveBlock1Ptr->pos.x; + gSpecialVar_0x8005 = gSaveBlock1Ptr->pos.y; +} + +u8 Special_GetPlayerTrainerIdOnesDigit(void) +{ + u16 playerId = (gSaveBlock2Ptr->playerTrainerId[1] << 8) | gSaveBlock2Ptr->playerTrainerId[0]; + return playerId % 10; +} + +void Special_BufferBigGuyOrBigGirlString(void) +{ + if (gSaveBlock2Ptr->playerGender == MALE) + StringCopy(gStringVar1, gUnknown_8417FBB); + else + StringCopy(gStringVar1, gUnknown_8417FC3); +} + +void Special_BufferSonOrDaughterString(void) +{ + if (gSaveBlock2Ptr->playerGender == MALE) + StringCopy(gStringVar1, gUnknown_8417FD0); + else + StringCopy(gStringVar1, gUnknown_8417FCC); +} + +u8 Special_GetBattleOutcome(void) +{ + return gBattleOutcome; +} + +void Special_SetHiddenItemFlag(void) +{ + FlagSet(gSpecialVar_0x8004); +} + +u8 Special_GetLeadMonFriendship(void) +{ + struct Pokemon * pokemon = &gPlayerParty[GetLeadMonIndex()]; + if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) == 255) + return 6; + else if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 200) + return 5; + else if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 150) + return 4; + else if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 100) + return 3; + else if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 50) + return 2; + else if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) > 0) + return 1; + else + return 0; +} + +void Special_TownMap(void) +{ + sub_8112364(); + sub_80BFF50(1, CB2_ReturnToFieldContinueScriptPlayMapMusic); +} + +bool8 Special_PlayerHasGrassPokemonInParty(void) +{ + u8 i; + struct Pokemon * pokemon; + u16 species; + + for (i = 0; i < PARTY_SIZE; i++) + { + pokemon = &gPlayerParty[i]; + if ( GetMonData(pokemon, MON_DATA_SANITY_HAS_SPECIES) + && !GetMonData(pokemon, MON_DATA_IS_EGG)) + { + species = GetMonData(pokemon, MON_DATA_SPECIES); + if (gBaseStats[species].type1 == TYPE_GRASS || gBaseStats[species].type2 == TYPE_GRASS) + return TRUE; + } + } + return FALSE; +} + +void Special_AnimatePcTurnOn(void) +{ + u8 taskId; + + if (FuncIsActiveTask(Task_AnimatePcTurnOn) != TRUE) + { + taskId = CreateTask(Task_AnimatePcTurnOn, 8); + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[1] = 0; + } +} + +static void Task_AnimatePcTurnOn(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (data[1] == 6) + { + PcTurnOnUpdateMetatileId(data[0] & 1); + DrawWholeMapView(); + data[1] = 0; + data[0]++; + if (data[0] == 5) + DestroyTask(taskId); + } + data[1]++; +} + +static void PcTurnOnUpdateMetatileId(bool16 a0) +{ + u16 metatileId = 0; + s8 deltaX = 0; + s8 deltaY = 0; + u8 direction = GetPlayerFacingDirection(); + + switch (direction) + { + case DIR_NORTH: + deltaX = 0; + deltaY = -1; + break; + case DIR_WEST: + deltaX = -1; + deltaY = -1; + break; + case DIR_EAST: + deltaX = 1; + deltaY = -1; + break; + } + if (a0) + { + if (gSpecialVar_0x8004 == 0) + metatileId = 0x62; + else if (gSpecialVar_0x8004 == 1) + metatileId = 0x28F; + else if (gSpecialVar_0x8004 == 2) + metatileId = 0x28F; + } + else + { + if (gSpecialVar_0x8004 == 0) + metatileId = 0x63; + else if (gSpecialVar_0x8004 == 1) + metatileId = 0x28A; + else if (gSpecialVar_0x8004 == 2) + metatileId = 0x28A; + } + MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + deltaX + 7, gSaveBlock1Ptr->pos.y + deltaY + 7, metatileId | 0xC00); +} + +void Special_AnimatePcTurnOff() +{ + u16 metatileId = 0; + s8 deltaX = 0; + s8 deltaY = 0; + u8 direction = GetPlayerFacingDirection(); + + switch (direction) + { + case DIR_NORTH: + deltaX = 0; + deltaY = -1; + break; + case DIR_WEST: + deltaX = -1; + deltaY = -1; + break; + case DIR_EAST: + deltaX = 1; + deltaY = -1; + break; + } + if (gSpecialVar_0x8004 == 0) + metatileId = 0x62; + else if (gSpecialVar_0x8004 == 1) + metatileId = 0x28F; + else if (gSpecialVar_0x8004 == 2) + metatileId = 0x28F; + MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + deltaX + 7, gSaveBlock1Ptr->pos.y + deltaY + 7, metatileId | 0xC00); + DrawWholeMapView(); +} + +void SpawnCameraObject(void) +{ + u8 mapObjectId = SpawnSpecialFieldObjectParameterized(MAP_OBJ_GFX_YOUNGSTER, 8, 127, gSaveBlock1Ptr->pos.x + 7, gSaveBlock1Ptr->pos.y + 7, 3); + gMapObjects[mapObjectId].mapobj_bit_13 = TRUE; + CameraObjectSetFollowedObjectId(gMapObjects[mapObjectId].spriteId); +} + +void RemoveCameraObject(void) +{ + CameraObjectSetFollowedObjectId(GetPlayerAvatarObjectId()); + RemoveFieldObjectByLocalIdAndMap(127, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); +} + +void Special_BufferEReaderTrainerName5(void) +{ + CopyEReaderTrainerName5(gStringVar1); +} + +u8 Special_GetRandomSlotMachine(void) +{ + u16 rval = Random() % NELEMS(sSlotMachineIndices); + return sSlotMachineIndices[rval]; +} + +bool8 LeadMonHasEffortRibbon(void) +{ + u8 leadMonIdx = GetLeadMonIndex(); + return GetMonData(&gPlayerParty[leadMonIdx], MON_DATA_EFFORT_RIBBON, NULL); +} + +void GiveLeadMonEffortRibbon(void) +{ + u8 leadMonIdx; + bool8 param; + IncrementGameStat(GAME_STAT_RECEIVED_RIBBONS); + FlagSet(FLAG_SYS_RIBBON_GET); + param = TRUE; + leadMonIdx = GetLeadMonIndex(); + SetMonData(&gPlayerParty[leadMonIdx], MON_DATA_EFFORT_RIBBON, ¶m); +} + +bool8 ScrSpecial_AreLeadMonEVsMaxedOut(void) +{ + u8 leadMonIndex = GetLeadMonIndex(); + if (GetMonEVCount(&gPlayerParty[leadMonIndex]) >= 510) + return TRUE; + else + return FALSE; +} + +bool8 Special_IsStarterFirstStageInParty(void) +{ + u16 species = GetStarterPokemon(VarGet(VAR_STARTER_MON)); + u8 partyCount = CalculatePlayerPartyCount(); + u8 i; + for (i = 0; i < partyCount; i++) + { + if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2, NULL) == species) + return TRUE; + } + return FALSE; +} + +bool8 Special_IsThereRoomInAnyBoxForMorePokemon(void) +{ + u16 i; + u16 j; + for (i = 0; i < TOTAL_BOXES_COUNT; i++) + { + for (j = 0; j < IN_BOX_COUNT; j++) + { + if (GetBoxMonDataFromAnyBox(i, j, MON_DATA_SPECIES) == SPECIES_NONE) + return TRUE; + } + } + return FALSE; +} + +bool8 Special_CheckPartyPokerus(void) +{ + if (!CheckPartyPokerus(gPlayerParty, 0x3F)) + return FALSE; + else + return TRUE; +} + +#define tXtrans data[0] +#define tTimer data[1] +#define tNremain data[2] +#define tDuration data[3] +#define tYtrans data[4] + +void Special_ShakeScreen(void) +{ + /* + * 0x8004 = x translation + * 0x8005 = y translation + * 0x8006 = num interations + * 0x8007 = duration of an iteration + */ + u8 taskId = CreateTask(Task_ShakeScreen, 9); + gTasks[taskId].tXtrans = gSpecialVar_0x8005; + gTasks[taskId].tTimer = 0; + gTasks[taskId].tNremain = gSpecialVar_0x8006; + gTasks[taskId].tDuration = gSpecialVar_0x8007; + gTasks[taskId].tYtrans = gSpecialVar_0x8004; + SetCameraPanningCallback(NULL); + PlaySE(SE_W070); +} + +static void Task_ShakeScreen(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + tTimer++; + if (tTimer % tDuration == 0) + { + tTimer = 0; + tNremain--; + tXtrans = -tXtrans; + tYtrans = -tYtrans; + SetCameraPanning(tXtrans, tYtrans); + if (tNremain == 0) + { + Task_EndScreenShake(taskId); + InstallCameraPanAheadCallback(); + } + } +} + +static void Task_EndScreenShake(u8 taskId) +{ + DestroyTask(taskId); + EnableBothScriptContexts(); +} + +#undef tYtrans +#undef tDuration +#undef tNremain +#undef tTimer +#undef tXtrans + +u8 GetLeadMonIndex(void) +{ + u8 partyCount = CalculatePlayerPartyCount(); + u8 i; + struct Pokemon * pokemon; + for (i = 0; i < partyCount; i++) + { + pokemon = &gPlayerParty[i]; + if (GetMonData(pokemon, MON_DATA_SPECIES2, NULL) != SPECIES_EGG && GetMonData(pokemon, MON_DATA_SPECIES2, NULL) != SPECIES_NONE) + return i; + } + return 0; +} + +u16 Special_GetSpeciesOfPartySlot_x8004(void) +{ + return GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPECIES2, NULL); +} + +bool8 Special_BufferMonOTNameAndCompareToPlayerName(void) +{ + GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_OT_NAME, gStringVar1); + if (!StringCompare(gSaveBlock2Ptr->playerName, gStringVar1)) + return FALSE; + else + return TRUE; +} + +void nullsub_75(void) +{ + +} + +void sub_80CADC4(void) +{ + u8 t = EOS; + AddTextPrinterParameterized(0, 2, &t, 0, 1, 0, NULL); + sub_809D424(); +} + +void Special_SetVermilionTrashCans(void) +{ + u16 idx = (Random() % 15) + 1; + gSpecialVar_0x8004 = idx; + gSpecialVar_0x8005 = idx; + switch (gSpecialVar_0x8004) + { + case 1: + idx = Random() % 2; + if (idx == 0) + gSpecialVar_0x8005 += 1; + else + gSpecialVar_0x8005 += 5; + break; + case 2: + case 3: + case 4: + idx = Random() % 3; + if (idx == 0) + gSpecialVar_0x8005 += 1; + else if (idx == 1) + gSpecialVar_0x8005 += 5; + else + gSpecialVar_0x8005 -= 1; + break; + case 5: + idx = Random() % 2; + if (idx == 0) + gSpecialVar_0x8005 += 5; + else + gSpecialVar_0x8005 -= 1; + break; + case 6: + idx = Random() % 3; + if (idx == 0) + gSpecialVar_0x8005 -= 5; + else if (idx == 1) + gSpecialVar_0x8005 += 1; + else + gSpecialVar_0x8005 += 5; + break; + case 7: + case 8: + case 9: + idx = Random() % 4; + if (idx == 0) + gSpecialVar_0x8005 -= 5; + else if (idx == 1) + gSpecialVar_0x8005 += 1; + else if (idx == 2) + gSpecialVar_0x8005 += 5; + else + gSpecialVar_0x8005 -= 1; + break; + case 10: + idx = Random() % 3; + if (idx == 0) + gSpecialVar_0x8005 -= 5; + else if (idx == 1) + gSpecialVar_0x8005 += 5; + else + gSpecialVar_0x8005 -= 1; + break; + case 11: + idx = Random() % 2; + if (idx == 0) + gSpecialVar_0x8005 -= 5; + else + gSpecialVar_0x8005 += 1; + break; + case 12: + case 13: + case 14: + idx = Random() % 3; + if (idx == 0) + gSpecialVar_0x8005 -= 5; + else if (idx == 1) + gSpecialVar_0x8005 += 1; + else + gSpecialVar_0x8005 -= 1; + break; + case 15: + idx = Random() % 2; + if (idx == 0) + gSpecialVar_0x8005 -= 5; + else + gSpecialVar_0x8005 -= 1; + break; + } + if (gSpecialVar_0x8005 > 15) + { + if (gSpecialVar_0x8004 % 5 == 1) + gSpecialVar_0x8005 = gSpecialVar_0x8004 + 1; + else if (gSpecialVar_0x8004 % 5 == 0) + gSpecialVar_0x8005 = gSpecialVar_0x8004 - 1; + else + gSpecialVar_0x8005 = gSpecialVar_0x8004 + 1; + } +} + +void IncrementResortGorgeousStepCounter(void) +{ + u16 var4035 = VarGet(VAR_RESORT_GOREGEOUS_STEP_COUNTER); + if (VarGet(VAR_RESORT_GOREGOUS_REQUESTED_MON) != SPECIES_NONE) + { + var4035++; + if (var4035 >= 250) + { + VarSet(VAR_RESORT_GOREGOUS_REQUESTED_MON, 0xFFFF); + VarSet(VAR_RESORT_GOREGEOUS_STEP_COUNTER, 0); + } + else + { + VarSet(VAR_RESORT_GOREGEOUS_STEP_COUNTER, var4035); + } + } +} + +void Special_SampleResortGorgeousMonAndReward(void) +{ + u16 var4036 = VarGet(VAR_RESORT_GOREGOUS_REQUESTED_MON); + if (var4036 == SPECIES_NONE || var4036 == 0xFFFF) + { + VarSet(VAR_RESORT_GOREGOUS_REQUESTED_MON, SampleResortGoregeousMon()); + VarSet(VAR_RESORT_GOREGOUS_REWARD, SampleResortGoregeousReward()); + VarSet(VAR_RESORT_GOREGEOUS_STEP_COUNTER, 0); + } + StringCopy(gStringVar1, gSpeciesNames[VarGet(VAR_RESORT_GOREGOUS_REQUESTED_MON)]); +} + +static u16 SampleResortGoregeousMon(void) +{ + u16 i; + u16 species; + for (i = 0; i < 100; i++) + { + species = (Random() % (NUM_SPECIES - 1)) + 1; + if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), FALSE) == TRUE) + return species; + } + while (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), FALSE) != TRUE) + { + if (species == SPECIES_BULBASAUR) + species = NUM_SPECIES - 1; + else + species--; + } + return species; +} + +static u16 SampleResortGoregeousReward(void) +{ + if ((Random() % 100) >= 30) + return ITEM_LUXURY_BALL; + else + return sResortGorgeousDeluxeRewards[Random() % NELEMS(sResortGorgeousDeluxeRewards)]; +} + +bool8 Special_CheckAddCoins(void) +{ + if (gSpecialVar_Result + gSpecialVar_0x8006 > 9999) + return FALSE; + else + return TRUE; +} + +void Special_GetElevatorFloor(void) +{ + u16 floor = 4; + if (gSaveBlock1Ptr->warp2.mapGroup == MAP_GROUP(ROCKET_HIDEOUT_B1F)) + { + switch (gSaveBlock1Ptr->warp2.mapNum) + { + case MAP_NUM(SILPH_CO_1F): + floor = 4; + break; + case MAP_NUM(SILPH_CO_2F): + floor = 5; + break; + case MAP_NUM(SILPH_CO_3F): + floor = 6; + break; + case MAP_NUM(SILPH_CO_4F): + floor = 7; + break; + case MAP_NUM(SILPH_CO_5F): + floor = 8; + break; + case MAP_NUM(SILPH_CO_6F): + floor = 9; + break; + case MAP_NUM(SILPH_CO_7F): + floor = 10; + break; + case MAP_NUM(SILPH_CO_8F): + floor = 11; + break; + case MAP_NUM(SILPH_CO_9F): + floor = 12; + break; + case MAP_NUM(SILPH_CO_10F): + floor = 13; + break; + case MAP_NUM(SILPH_CO_11F): + floor = 14; + break; + case MAP_NUM(ROCKET_HIDEOUT_B1F): + floor = 3; + break; + case MAP_NUM(ROCKET_HIDEOUT_B2F): + floor = 2; + break; + case MAP_NUM(ROCKET_HIDEOUT_B4F): + floor = 0; + break; + } + } + if (gSaveBlock1Ptr->warp2.mapGroup == MAP_GROUP(CELADON_CITY_DEPARTMENT_STORE_1F)) + { + switch (gSaveBlock1Ptr->warp2.mapNum) + { + case MAP_NUM(CELADON_CITY_DEPARTMENT_STORE_1F): + floor = 4; + break; + case MAP_NUM(CELADON_CITY_DEPARTMENT_STORE_2F): + floor = 5; + break; + case MAP_NUM(CELADON_CITY_DEPARTMENT_STORE_3F): + floor = 6; + break; + case MAP_NUM(CELADON_CITY_DEPARTMENT_STORE_4F): + floor = 7; + break; + case MAP_NUM(CELADON_CITY_DEPARTMENT_STORE_5F): + floor = 8; + break; + } + } + if (gSaveBlock1Ptr->warp2.mapGroup == MAP_GROUP(SEVEN_ISLAND_TRAINER_TOWER_1F)) + { + switch (gSaveBlock1Ptr->warp2.mapNum) + { + case MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_1F): + case MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_2F): + case MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_3F): + case MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_4F): + case MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_5F): + case MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_6F): + case MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_7F): + case MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_8F): + case MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_ROOF): + floor = 15; + break; + case MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_LOBBY): + floor = 3; + break; + } + } + VarSet(VAR_ELEVATOR_FLOOR, floor); +} + +u16 Special_InitElevatorFloorSelectMenuPos(void) +{ + sElevatorScroll = 0; + sElevatorCursorPos = 0; + + if (gSaveBlock1Ptr->warp2.mapGroup == MAP_GROUP(ROCKET_HIDEOUT_B1F)) + { + switch (gSaveBlock1Ptr->warp2.mapNum) + { + case MAP_NUM(SILPH_CO_11F): + sElevatorScroll = 0; + sElevatorCursorPos = 0; + break; + case MAP_NUM(SILPH_CO_10F): + sElevatorScroll = 0; + sElevatorCursorPos = 1; + break; + case MAP_NUM(SILPH_CO_9F): + sElevatorScroll = 0; + sElevatorCursorPos = 2; + break; + case MAP_NUM(SILPH_CO_8F): + sElevatorScroll = 0; + sElevatorCursorPos = 3; + break; + case MAP_NUM(SILPH_CO_7F): + sElevatorScroll = 0; + sElevatorCursorPos = 4; + break; + case MAP_NUM(SILPH_CO_6F): + sElevatorScroll = 1; + sElevatorCursorPos = 4; + break; + case MAP_NUM(SILPH_CO_5F): + sElevatorScroll = 2; + sElevatorCursorPos = 4; + break; + case MAP_NUM(SILPH_CO_4F): + sElevatorScroll = 3; + sElevatorCursorPos = 4; + break; + case MAP_NUM(SILPH_CO_3F): + sElevatorScroll = 4; + sElevatorCursorPos = 4; + break; + case MAP_NUM(SILPH_CO_2F): + sElevatorScroll = 5; + sElevatorCursorPos = 4; + break; + case MAP_NUM(SILPH_CO_1F): + sElevatorScroll = 5; + sElevatorCursorPos = 5; + break; + case MAP_NUM(ROCKET_HIDEOUT_B1F): + sElevatorScroll = 0; + sElevatorCursorPos = 0; + break; + case MAP_NUM(ROCKET_HIDEOUT_B2F): + sElevatorScroll = 0; + sElevatorCursorPos = 1; + break; + case MAP_NUM(ROCKET_HIDEOUT_B4F): + sElevatorScroll = 0; + sElevatorCursorPos = 2; + break; + } + } + if (gSaveBlock1Ptr->warp2.mapGroup == MAP_GROUP(CELADON_CITY_DEPARTMENT_STORE_1F)) + { + switch (gSaveBlock1Ptr->warp2.mapNum) + { + case MAP_NUM(CELADON_CITY_DEPARTMENT_STORE_5F): + sElevatorScroll = 0; + sElevatorCursorPos = 0; + break; + case MAP_NUM(CELADON_CITY_DEPARTMENT_STORE_4F): + sElevatorScroll = 0; + sElevatorCursorPos = 1; + break; + case MAP_NUM(CELADON_CITY_DEPARTMENT_STORE_3F): + sElevatorScroll = 0; + sElevatorCursorPos = 2; + break; + case MAP_NUM(CELADON_CITY_DEPARTMENT_STORE_2F): + sElevatorScroll = 0; + sElevatorCursorPos = 3; + break; + case MAP_NUM(CELADON_CITY_DEPARTMENT_STORE_1F): + sElevatorScroll = 0; + sElevatorCursorPos = 4; + break; + } + } + if (gSaveBlock1Ptr->warp2.mapGroup == MAP_GROUP(SEVEN_ISLAND_TRAINER_TOWER_1F)) + { + switch (gSaveBlock1Ptr->warp2.mapNum) + { + case MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_1F): + case MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_2F): + case MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_3F): + case MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_4F): + case MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_5F): + case MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_6F): + case MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_7F): + case MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_8F): + case MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_ROOF): + sElevatorScroll = 0; + sElevatorCursorPos = 0; + break; + case MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_LOBBY): + sElevatorScroll = 0; + sElevatorCursorPos = 1; + break; + } + } + return sElevatorCursorPos; +} + +void Special_AnimateElevator(void) +{ + u16 nfloors; + s16 *data = gTasks[CreateTask(Task_ElevatorShake, 9)].data; + data[1] = 0; + data[2] = 0; + data[4] = 1; + if (gSpecialVar_0x8005 > gSpecialVar_0x8006) + { + nfloors = gSpecialVar_0x8005 - gSpecialVar_0x8006; + data[6] = 1; + } + else + { + nfloors = gSpecialVar_0x8006 - gSpecialVar_0x8005; + data[6] = 0; + } + if (nfloors > 8) + nfloors = 8; + data[5] = sElevatorAnimationDuration[nfloors]; + SetCameraPanningCallback(NULL); + AnimateElevatorWindowView(nfloors, data[6]); + PlaySE(SE_ELEBETA); +} + +static void Task_ElevatorShake(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + data[1]++; + if ((data[1] % 3) == 0) + { + data[1] = 0; + data[2]++; + data[4] = -data[4]; + SetCameraPanning(0, data[4]); + if (data[2] == data[5]) + { + PlaySE(SE_PINPON); + DestroyTask(taskId); + EnableBothScriptContexts(); + InstallCameraPanAheadCallback(); + } + } +} + +void Special_DrawElevatorCurrentFloorWindow(void) +{ + const u8 *floorname; + u32 strwidth; + if (sub_81119D4(sub_809D6D4) != TRUE) + { + sElevatorCurrentFloorWindowId = AddWindow(&sElevatorCurrentFloorWindowTemplate); + TextWindow_SetStdFrame0_WithPal(sElevatorCurrentFloorWindowId, 0x21D, 0xD0); + DrawStdFrameWithCustomTileAndPalette(sElevatorCurrentFloorWindowId, FALSE, 0x21D, 0xD); + AddTextPrinterParameterized(sElevatorCurrentFloorWindowId, 2, gUnknown_8418075, 0, 2, 0xFF, NULL); + floorname = sFloorNamePointers[gSpecialVar_0x8005]; + strwidth = GetStringWidth(2, floorname, 0); + AddTextPrinterParameterized(sElevatorCurrentFloorWindowId, 2, floorname, 56 - strwidth, 16, 0xFF, NULL); + PutWindowTilemap(sElevatorCurrentFloorWindowId); + CopyWindowToVram(sElevatorCurrentFloorWindowId, 3); + } +} + +void Special_CloseElevatorCurrentFloorWindow(void) +{ + ClearStdWindowAndFrameToTransparent(sElevatorCurrentFloorWindowId, TRUE); + RemoveWindow(sElevatorCurrentFloorWindowId); +} + +static void AnimateElevatorWindowView(u16 nfloors, u8 direction) +{ + u8 taskId; + if (FuncIsActiveTask(Task_AnimateElevatorWindowView) != TRUE) + { + taskId = CreateTask(Task_AnimateElevatorWindowView, 8); + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[1] = 0; + gTasks[taskId].data[2] = direction; + gTasks[taskId].data[3] = sElevatorWindowAnimDuration[nfloors]; + } +} + +static void Task_AnimateElevatorWindowView(u8 taskId) +{ + u8 i; + u8 j; + s16 *data = gTasks[taskId].data; + if (data[1] == 6) + { + data[0]++; + if (data[2] == 0) + { + for (i = 0; i < 3; i++) + { + for (j = 0; j < 3; j++) + { + MapGridSetMetatileIdAt(j + 8, i + 7, sElevatorWindowMetatilesGoingUp[i][data[0] % 3] | 0xC00); + } + } + } + else + { + for (i = 0; i < 3; i++) + { + for (j = 0; j < 3; j++) + { + MapGridSetMetatileIdAt(j + 8, i + 7, sElevatorWindowMetatilesGoingDown[i][data[0] % 3] | 0xC00); + } + } + } + DrawWholeMapView(); + data[1] = 0; + if (data[0] == data[3]) + DestroyTask(taskId); + } + data[1]++; +} diff --git a/src/mevent.c b/src/mevent.c index 74dca5a75..dc8df05d0 100644 --- a/src/mevent.c +++ b/src/mevent.c @@ -588,7 +588,7 @@ void DestroyWonderCard(void) ClearRamScript(); sub_806E2D0(); sub_806E370(); - sub_80E7524(gSaveBlock2Ptr->unk_B0.field_3F0); + sub_80E7524(&gSaveBlock2Ptr->unk_B0.field_3F0); } bool32 sub_8143F68(const struct MEventBuffer_32E0_Sub * data) diff --git a/src/mevent_server.c b/src/mevent_server.c index 4e2b7280d..9fe9e9e79 100644 --- a/src/mevent_server.c +++ b/src/mevent_server.c @@ -226,7 +226,7 @@ static u32 ish_mainseq_4(struct mevent_client * svr) sub_8069EA4(svr->recvBuffer, 1000); break; case 18: - memcpy(gSaveBlock2Ptr->unk_B0.field_3F0, svr->recvBuffer, 0xbc); + memcpy(&gSaveBlock2Ptr->unk_B0.field_3F0, svr->recvBuffer, sizeof(struct BattleTowerEReaderTrainer)); ValidateEReaderTrainer(); break; case 21: diff --git a/src/mystery_event_script.c b/src/mystery_event_script.c index 26cbdb145..146595272 100644 --- a/src/mystery_event_script.c +++ b/src/mystery_event_script.c @@ -281,7 +281,7 @@ bool8 MEScrCmd_givepokemon(struct ScriptContext *ctx) bool8 MEScrCmd_addtrainer(struct ScriptContext *ctx) { u32 data = ScriptReadWord(ctx) - ctx->data[1] + ctx->data[0]; - memcpy(gSaveBlock2Ptr->unk_B0.field_3F0, (void *)data, 0xBC); + memcpy(&gSaveBlock2Ptr->unk_B0.field_3F0, (void *)data, sizeof(struct BattleTowerEReaderTrainer)); ValidateEReaderTrainer(); StringExpandPlaceholders(gStringVar4, gText_MysteryGiftNewTrainer); ctx->data[2] = 2; diff --git a/sym_ewram.txt b/sym_ewram.txt index 85ff1bdb2..1e8576c70 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -847,15 +847,10 @@ gAIScriptPtr: @ 2039A00 gPlayerFacingPosition: @ 2039A04 .space 0x8 -gUnknown_2039A0C: @ 2039A0C - .space 0x2 - -gUnknown_2039A0E: @ 2039A0E - .space 0x2 - -gUnknown_2039A10: @ 2039A10 - .space 0x4 + .align 2 + .include "src/field_specials.o" + .align 2 gUnknown_2039A14: @ 2039A14 .space 0x4 |