diff options
-rw-r--r-- | asm/scrcmd.s | 18 | ||||
-rw-r--r-- | asm/trainer_tower.s | 769 | ||||
-rw-r--r-- | asm/unk_815EDDC.s | 55 | ||||
-rw-r--r-- | data/trainer_tower.s | 20 | ||||
-rw-r--r-- | data/trainer_tower/trainers.inc | 248 | ||||
-rw-r--r-- | include/battle_2.h | 1 | ||||
-rw-r--r-- | include/battle_setup.h | 1 | ||||
-rw-r--r-- | include/battle_transition.h | 4 | ||||
-rw-r--r-- | include/event_data.h | 3 | ||||
-rw-r--r-- | include/global.h | 17 | ||||
-rw-r--r-- | include/item.h | 1 | ||||
-rw-r--r-- | include/main.h | 1 | ||||
-rw-r--r-- | include/overworld.h | 2 | ||||
-rw-r--r-- | include/pokemon.h | 2 | ||||
-rw-r--r-- | src/load_save.c | 2 | ||||
-rw-r--r-- | src/scrcmd.c | 257 | ||||
-rw-r--r-- | src/trainer_tower.c | 176 |
17 files changed, 531 insertions, 1046 deletions
diff --git a/asm/scrcmd.s b/asm/scrcmd.s index 36ccf0887..cec72ef73 100644 --- a/asm/scrcmd.s +++ b/asm/scrcmd.s @@ -5,24 +5,6 @@ .text - thumb_func_start ScrCmd_cmdC7 -ScrCmd_cmdC7: @ 806B7EC - ldr r2, _0806B804 @ =gUnknown_20370DC - ldr r3, _0806B808 @ =gUnknown_20370DA - ldrh r1, [r3] - strh r1, [r2] - ldr r1, [r0, 0x8] - ldrb r2, [r1] - strh r2, [r3] - adds r1, 0x1 - str r1, [r0, 0x8] - movs r0, 0 - bx lr - .align 2, 0 -_0806B804: .4byte gUnknown_20370DC -_0806B808: .4byte gUnknown_20370DA - thumb_func_end ScrCmd_cmdC7 - thumb_func_start ScrCmd_message ScrCmd_message: @ 806B80C push {r4,lr} diff --git a/asm/trainer_tower.s b/asm/trainer_tower.s index 8eef5eaf5..a1ca0da57 100644 --- a/asm/trainer_tower.s +++ b/asm/trainer_tower.s @@ -5,720 +5,6 @@ .text - thumb_func_start sub_815E068 -sub_815E068: @ 815E068 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r3, r0, 0 - lsls r1, 24 - lsrs r2, r1, 24 - movs r5, 0 - cmp r0, 0x1 - beq _0815E0B4 - cmp r0, 0x1 - bgt _0815E084 - cmp r0, 0 - beq _0815E088 - b _0815E0F8 -_0815E084: - cmp r3, 0x2 - bne _0815E0F8 -_0815E088: - movs r4, 0 - ldr r0, _0815E0B0 @ =gUnknown_8479ED8 - ldrb r1, [r0, 0x1] - adds r3, r0, 0 - cmp r1, r2 - beq _0815E0A4 - adds r1, r3, 0 -_0815E096: - adds r1, 0x4 - adds r4, 0x1 - cmp r4, 0x52 - bhi _0815E0A4 - ldrb r0, [r1, 0x1] - cmp r0, r2 - bne _0815E096 -_0815E0A4: - cmp r4, 0x53 - beq _0815E0F8 - lsls r0, r4, 2 - adds r0, r3 - ldrb r5, [r0, 0x2] - b _0815E0F8 - .align 2, 0 -_0815E0B0: .4byte gUnknown_8479ED8 -_0815E0B4: - movs r4, 0 - ldr r1, _0815E0BC @ =gUnknown_847A024 - b _0815E0C8 - .align 2, 0 -_0815E0BC: .4byte gUnknown_847A024 -_0815E0C0: - adds r1, 0x8 - adds r4, 0x1 - cmp r4, 0x9 - bhi _0815E0CE -_0815E0C8: - ldrb r0, [r1, 0x2] - cmp r0, r2 - bne _0815E0C0 -_0815E0CE: - cmp r4, 0xA - beq _0815E0F8 - ldr r0, _0815E0E8 @ =0x00004003 - bl VarGet - lsls r0, 16 - cmp r0, 0 - beq _0815E0F0 - ldr r1, _0815E0EC @ =gUnknown_847A024 - lsls r0, r4, 3 - adds r0, r1 - ldrb r5, [r0, 0x4] - b _0815E0F8 - .align 2, 0 -_0815E0E8: .4byte 0x00004003 -_0815E0EC: .4byte gUnknown_847A024 -_0815E0F0: - ldr r1, _0815E108 @ =gUnknown_847A024 - lsls r0, r4, 3 - adds r0, r1 - ldrb r5, [r0, 0x3] -_0815E0F8: - ldr r2, _0815E10C @ =gUnknown_20370DC - ldr r1, _0815E110 @ =gUnknown_20370DA - ldrh r0, [r1] - strh r0, [r2] - strh r5, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0815E108: .4byte gUnknown_847A024 -_0815E10C: .4byte gUnknown_20370DC -_0815E110: .4byte gUnknown_20370DA - thumb_func_end sub_815E068 - - thumb_func_start sub_815E114 -sub_815E114: @ 815E114 - push {lr} - ldr r0, _0815E120 @ =c2_exit_to_overworld_1_continue_scripts_restart_music - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_0815E120: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music - thumb_func_end sub_815E114 - - thumb_func_start sub_815E124 -sub_815E124: @ 815E124 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_80D08F8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0815E14C - ldr r0, _0815E154 @ =gMain - ldr r1, _0815E158 @ =sub_815E114 - str r1, [r0, 0x8] - bl sub_80563F0 - ldr r0, _0815E15C @ =sub_800FD9C - bl SetMainCallback2 - adds r0, r4, 0 - bl DestroyTask -_0815E14C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815E154: .4byte gMain -_0815E158: .4byte sub_815E114 -_0815E15C: .4byte sub_800FD9C - thumb_func_end sub_815E124 - - thumb_func_start sub_815E160 -sub_815E160: @ 815E160 - push {r4,lr} - ldr r4, _0815E1AC @ =gBattleTypeFlags - ldr r3, _0815E1B0 @ =0x00080008 - str r3, [r4] - ldr r0, _0815E1B4 @ =gUnknown_203F458 - ldr r1, [r0] - ldrb r2, [r1] - lsls r0, r2, 5 - subs r0, r2 - lsls r0, 5 - adds r1, r0 - ldrb r0, [r1, 0xE] - cmp r0, 0x1 - bne _0815E180 - orrs r0, r3 - str r0, [r4] -_0815E180: - ldr r1, _0815E1B8 @ =gTrainerBattleOpponent_A - movs r0, 0 - strh r0, [r1] - bl sub_815E9FC - ldr r0, _0815E1BC @ =sub_815E124 - movs r1, 0x1 - bl CreateTask - movs r0, 0 - bl PlayMapChosenOrBattleBGM - bl sub_8080060 - lsls r0, 24 - lsrs r0, 24 - bl sub_80D08B8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815E1AC: .4byte gBattleTypeFlags -_0815E1B0: .4byte 0x00080008 -_0815E1B4: .4byte gUnknown_203F458 -_0815E1B8: .4byte gTrainerBattleOpponent_A -_0815E1BC: .4byte sub_815E124 - thumb_func_end sub_815E160 - - thumb_func_start sub_815E1C0 -sub_815E1C0: @ 815E1C0 - push {lr} - ldr r0, _0815E1E4 @ =gSpecialVar_0x8005 - ldrh r0, [r0] - cmp r0, 0 - bne _0815E1DE - ldr r3, _0815E1E8 @ =gSpecialVar_Result - ldr r0, _0815E1EC @ =gUnknown_203F458 - ldr r1, [r0] - ldrb r2, [r1] - lsls r0, r2, 5 - subs r0, r2 - lsls r0, 5 - adds r1, r0 - ldrb r0, [r1, 0xE] - strh r0, [r3] -_0815E1DE: - pop {r0} - bx r0 - .align 2, 0 -_0815E1E4: .4byte gSpecialVar_0x8005 -_0815E1E8: .4byte gSpecialVar_Result -_0815E1EC: .4byte gUnknown_203F458 - thumb_func_end sub_815E1C0 - - thumb_func_start sub_815E1F0 -sub_815E1F0: @ 815E1F0 - ldr r0, _0815E210 @ =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, _0815E214 @ =0x00003d34 - adds r0, r1, r2 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - movs r0, 0xF5 - lsls r0, 6 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - bx lr - .align 2, 0 -_0815E210: .4byte gSaveBlock1Ptr -_0815E214: .4byte 0x00003d34 - thumb_func_end sub_815E1F0 - - thumb_func_start sub_815E218 -sub_815E218: @ 815E218 - push {lr} - ldr r0, _0815E260 @ =gMapHeader - ldrh r0, [r0, 0x12] - mov r12, r0 - ldr r3, _0815E264 @ =0xfffffed6 - add r3, r12 - ldr r0, _0815E268 @ =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, _0815E26C @ =0x00003d34 - adds r0, r1, r2 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - movs r0, 0xF5 - lsls r0, 6 - adds r1, r0 - ldrb r1, [r1] - cmp r3, r1 - bne _0815E27C - ldr r3, _0815E270 @ =0xfffffed7 - add r3, r12 - ldr r0, _0815E274 @ =gUnknown_203F458 - ldr r1, [r0] - ldrb r2, [r1] - lsls r0, r2, 5 - subs r0, r2 - lsls r0, 5 - adds r1, r0 - ldrb r1, [r1, 0xD] - cmp r3, r1 - bgt _0815E27C - ldr r1, _0815E278 @ =gSpecialVar_Result - movs r0, 0 - b _0815E280 - .align 2, 0 -_0815E260: .4byte gMapHeader -_0815E264: .4byte 0xfffffed6 -_0815E268: .4byte gSaveBlock1Ptr -_0815E26C: .4byte 0x00003d34 -_0815E270: .4byte 0xfffffed7 -_0815E274: .4byte gUnknown_203F458 -_0815E278: .4byte gSpecialVar_Result -_0815E27C: - ldr r1, _0815E288 @ =gSpecialVar_Result - movs r0, 0x1 -_0815E280: - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0815E288: .4byte gSpecialVar_Result - thumb_func_end sub_815E218 - - thumb_func_start sub_815E28C -sub_815E28C: @ 815E28C - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r4, _0815E2D0 @ =gSaveBlock1Ptr - ldr r0, [r4] - ldr r5, _0815E2D4 @ =0x00003d34 - adds r1, r0, r5 - ldr r0, _0815E2D8 @ =gSpecialVar_0x8005 - ldrh r0, [r0] - str r0, [r1] - cmp r0, 0x3 - bls _0815E2A8 - movs r0, 0 - str r0, [r1] -_0815E2A8: - bl sub_815EC0C - bl sub_815D834 - cmp r0, 0 - bne _0815E2E0 - ldr r1, [r4] - adds r0, r1, r5 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - ldr r0, _0815E2DC @ =0x00003d42 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x20 - orrs r0, r2 - b _0815E2FA - .align 2, 0 -_0815E2D0: .4byte gSaveBlock1Ptr -_0815E2D4: .4byte 0x00003d34 -_0815E2D8: .4byte gSpecialVar_0x8005 -_0815E2DC: .4byte 0x00003d42 -_0815E2E0: - ldr r1, [r4] - adds r0, r1, r5 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - ldr r0, _0815E384 @ =0x00003d42 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x21 - negs r0, r0 - ands r0, r2 -_0815E2FA: - strb r0, [r1] - ldr r6, _0815E388 @ =gSaveBlock1Ptr - ldr r2, [r6] - ldr r5, _0815E38C @ =0x00003d34 - adds r0, r2, r5 - ldr r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r2, r0 - movs r0, 0xF5 - lsls r0, 6 - adds r2, r0 - movs r0, 0 - mov r8, r0 - mov r0, r8 - strb r0, [r2] - ldr r0, [r6] - adds r1, r0, r5 - ldr r2, [r1] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - ldr r4, _0815E390 @ =0x00003d38 - adds r1, r4 - adds r0, r1 - bl SetVBlankCounter1Ptr - ldr r2, [r6] - adds r3, r2, r5 - ldr r1, [r3] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r4, r2, r4 - adds r4, r0 - mov r0, r8 - str r0, [r4] - ldr r1, [r3] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r2, r0 - ldr r3, _0815E384 @ =0x00003d42 - adds r2, r3 - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldr r1, [r6] - adds r5, r1, r5 - ldr r2, [r5] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - adds r1, r3 - ldrb r2, [r1] - movs r0, 0x3 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815E384: .4byte 0x00003d42 -_0815E388: .4byte gSaveBlock1Ptr -_0815E38C: .4byte 0x00003d34 -_0815E390: .4byte 0x00003d38 - thumb_func_end sub_815E28C - - thumb_func_start sub_815E394 -sub_815E394: @ 815E394 - push {lr} - bl DisableVBlankCounter1 - ldr r3, _0815E3F8 @ =gSpecialVar_Result - movs r0, 0 - strh r0, [r3] - ldr r0, _0815E3FC @ =gSaveBlock1Ptr - ldr r2, [r0] - ldr r1, _0815E400 @ =0x00003d34 - adds r0, r2, r1 - ldr r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r2, r0 - ldr r0, _0815E404 @ =0x00003d42 - adds r2, r0 - ldrb r0, [r2] - lsls r0, 29 - cmp r0, 0 - bge _0815E3C2 - movs r0, 0x1 - strh r0, [r3] -_0815E3C2: - ldrb r2, [r2] - lsls r0, r2, 31 - cmp r0, 0 - beq _0815E3D6 - lsls r0, r2, 30 - cmp r0, 0 - bge _0815E3D6 - ldrh r0, [r3] - adds r0, 0x1 - strh r0, [r3] -_0815E3D6: - ldr r0, _0815E3FC @ =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, _0815E400 @ =0x00003d34 - adds r0, r1, r2 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - ldr r0, _0815E404 @ =0x00003d42 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0815E3F8: .4byte gSpecialVar_Result -_0815E3FC: .4byte gSaveBlock1Ptr -_0815E400: .4byte 0x00003d34 -_0815E404: .4byte 0x00003d42 - thumb_func_end sub_815E394 - - thumb_func_start sub_815E408 -sub_815E408: @ 815E408 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r1, _0815E444 @ =gUnknown_847A2B4 - ldr r0, _0815E448 @ =gUnknown_203F458 - ldr r0, [r0] - ldrb r0, [r0, 0xF] - lsls r0, 1 - adds r0, r1 - ldrh r4, [r0] - ldr r0, _0815E44C @ =gSaveBlock1Ptr - mov r8, r0 - ldr r2, [r0] - ldr r7, _0815E450 @ =0x00003d34 - adds r0, r2, r7 - ldr r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r2, r0 - ldr r6, _0815E454 @ =0x00003d42 - adds r2, r6 - ldrb r0, [r2] - lsls r0, 31 - lsrs r5, r0, 31 - cmp r5, 0 - beq _0815E45C - ldr r1, _0815E458 @ =gSpecialVar_Result - movs r0, 0x2 - b _0815E4A0 - .align 2, 0 -_0815E444: .4byte gUnknown_847A2B4 -_0815E448: .4byte gUnknown_203F458 -_0815E44C: .4byte gSaveBlock1Ptr -_0815E450: .4byte 0x00003d34 -_0815E454: .4byte 0x00003d42 -_0815E458: .4byte gSpecialVar_Result -_0815E45C: - adds r0, r4, 0 - movs r1, 0x1 - bl AddBagItem - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0815E49C - ldr r1, _0815E494 @ =gStringVar2 - adds r0, r4, 0 - bl sub_8099E90 - mov r0, r8 - ldr r1, [r0] - adds r0, r1, r7 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - adds r1, r6 - ldrb r0, [r1] - movs r2, 0x1 - orrs r0, r2 - strb r0, [r1] - ldr r0, _0815E498 @ =gSpecialVar_Result - strh r5, [r0] - b _0815E4A2 - .align 2, 0 -_0815E494: .4byte gStringVar2 -_0815E498: .4byte gSpecialVar_Result -_0815E49C: - ldr r1, _0815E4AC @ =gSpecialVar_Result - movs r0, 0x1 -_0815E4A0: - strh r0, [r1] -_0815E4A2: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815E4AC: .4byte gSpecialVar_Result - thumb_func_end sub_815E408 - - thumb_func_start sub_815E4B0 -sub_815E4B0: @ 815E4B0 - push {r4-r6,lr} - ldr r6, _0815E4D8 @ =gSaveBlock1Ptr - ldr r2, [r6] - ldr r1, _0815E4DC @ =0x00003d34 - adds r0, r2, r1 - ldr r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r1, r0, 2 - adds r0, r2, r1 - ldr r3, _0815E4E0 @ =0x00003d42 - adds r0, r3 - ldrb r0, [r0] - lsls r0, 30 - lsrs r5, r0, 31 - cmp r5, 0 - beq _0815E4E8 - ldr r1, _0815E4E4 @ =gSpecialVar_Result - movs r0, 0x2 - b _0815E534 - .align 2, 0 -_0815E4D8: .4byte gSaveBlock1Ptr -_0815E4DC: .4byte 0x00003d34 -_0815E4E0: .4byte 0x00003d42 -_0815E4E4: .4byte gSpecialVar_Result -_0815E4E8: - ldr r4, _0815E520 @ =0x00003d38 - adds r0, r1, r4 - adds r0, r2, r0 - adds r0, 0x4 - bl sub_815EDDC - ldr r3, [r6] - ldr r2, _0815E524 @ =0x00003d34 - adds r1, r3, r2 - ldr r2, [r1] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r4, r3, r4 - adds r4, r1 - ldr r4, [r4] - cmp r0, r4 - bls _0815E530 - adds r0, r1, r3 - ldr r3, _0815E528 @ =0x00003d3c - adds r0, r3 - adds r1, r4, 0 - bl sub_815EDF4 - ldr r0, _0815E52C @ =gSpecialVar_Result - strh r5, [r0] - b _0815E536 - .align 2, 0 -_0815E520: .4byte 0x00003d38 -_0815E524: .4byte 0x00003d34 -_0815E528: .4byte 0x00003d3c -_0815E52C: .4byte gSpecialVar_Result -_0815E530: - ldr r1, _0815E55C @ =gSpecialVar_Result - movs r0, 0x1 -_0815E534: - strh r0, [r1] -_0815E536: - ldr r0, _0815E560 @ =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, _0815E564 @ =0x00003d34 - adds r0, r1, r2 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - ldr r3, _0815E568 @ =0x00003d42 - adds r1, r3 - ldrb r0, [r1] - movs r2, 0x2 - orrs r0, r2 - strb r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815E55C: .4byte gSpecialVar_Result -_0815E560: .4byte gSaveBlock1Ptr -_0815E564: .4byte 0x00003d34 -_0815E568: .4byte 0x00003d42 - thumb_func_end sub_815E4B0 - - thumb_func_start sub_815E56C -sub_815E56C: @ 815E56C - push {r4,lr} - ldr r0, _0815E5A0 @ =gSaveBlock1Ptr - ldr r4, [r0] - ldr r1, _0815E5A4 @ =0x00003d34 - adds r0, r4, r1 - ldr r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r3, r0, 2 - adds r0, r4, r3 - ldr r1, _0815E5A8 @ =0x00003d42 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - blt _0815E5BA - subs r1, 0xA - adds r0, r4, r1 - adds r2, r0, r3 - ldr r1, [r2] - ldr r0, _0815E5AC @ =0x00034bbe - cmp r1, r0 - bls _0815E5B0 - adds r0, 0x1 - str r0, [r2] - b _0815E5BA - .align 2, 0 -_0815E5A0: .4byte gSaveBlock1Ptr -_0815E5A4: .4byte 0x00003d34 -_0815E5A8: .4byte 0x00003d42 -_0815E5AC: .4byte 0x00034bbe -_0815E5B0: - ldr r1, _0815E5C0 @ =0x00003d38 - adds r0, r3, r1 - adds r0, r4, r0 - bl SetVBlankCounter1Ptr -_0815E5BA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815E5C0: .4byte 0x00003d38 - thumb_func_end sub_815E56C - - thumb_func_start sub_815E5C4 -sub_815E5C4: @ 815E5C4 - ldr r0, _0815E5E4 @ =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, _0815E5E8 @ =0x00003d34 - adds r0, r1, r2 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - ldr r0, _0815E5EC @ =0x00003d42 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x8 - orrs r0, r2 - strb r0, [r1] - bx lr - .align 2, 0 -_0815E5E4: .4byte gSaveBlock1Ptr -_0815E5E8: .4byte 0x00003d34 -_0815E5EC: .4byte 0x00003d42 - thumb_func_end sub_815E5C4 - thumb_func_start sub_815E5F0 sub_815E5F0: @ 815E5F0 push {lr} @@ -1676,4 +962,59 @@ _0815EDD4: .4byte gUnknown_83FE998 _0815EDD8: .4byte gUnknown_83FE9C4 thumb_func_end sub_815EC8C + thumb_func_start sub_815EDDC +sub_815EDDC: @ 815EDDC + ldr r1, _0815EDF0 @ =gSaveBlock2Ptr + ldr r1, [r1] + movs r2, 0xF2 + lsls r2, 4 + adds r1, r2 + ldr r0, [r0] + ldr r1, [r1] + eors r0, r1 + bx lr + .align 2, 0 +_0815EDF0: .4byte gSaveBlock2Ptr + thumb_func_end sub_815EDDC + + thumb_func_start sub_815EDF4 +sub_815EDF4: @ 815EDF4 + ldr r2, _0815EE08 @ =gSaveBlock2Ptr + ldr r2, [r2] + movs r3, 0xF2 + lsls r3, 4 + adds r2, r3 + ldr r2, [r2] + eors r2, r1 + str r2, [r0] + bx lr + .align 2, 0 +_0815EE08: .4byte gSaveBlock2Ptr + thumb_func_end sub_815EDF4 + + thumb_func_start sub_815EE0C +sub_815EE0C: @ 815EE0C + push {r4-r6,lr} + ldr r6, _0815EE30 @ =gSaveBlock1Ptr + ldr r5, _0815EE34 @ =0x00003d38 + movs r4, 0x3 +_0815EE14: + ldr r0, [r6] + adds r0, r5 + adds r0, 0x4 + ldr r1, _0815EE38 @ =0x00034bbf + bl sub_815EDF4 + adds r5, 0xC + subs r4, 0x1 + cmp r4, 0 + bge _0815EE14 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0815EE30: .4byte gSaveBlock1Ptr +_0815EE34: .4byte 0x00003d38 +_0815EE38: .4byte 0x00034bbf + thumb_func_end sub_815EE0C + .align 2, 0 @ Don't pad with nop. diff --git a/asm/unk_815EDDC.s b/asm/unk_815EDDC.s index 116458940..16db54083 100644 --- a/asm/unk_815EDDC.s +++ b/asm/unk_815EDDC.s @@ -5,61 +5,6 @@ .text - thumb_func_start sub_815EDDC -sub_815EDDC: @ 815EDDC - ldr r1, _0815EDF0 @ =gSaveBlock2Ptr - ldr r1, [r1] - movs r2, 0xF2 - lsls r2, 4 - adds r1, r2 - ldr r0, [r0] - ldr r1, [r1] - eors r0, r1 - bx lr - .align 2, 0 -_0815EDF0: .4byte gSaveBlock2Ptr - thumb_func_end sub_815EDDC - - thumb_func_start sub_815EDF4 -sub_815EDF4: @ 815EDF4 - ldr r2, _0815EE08 @ =gSaveBlock2Ptr - ldr r2, [r2] - movs r3, 0xF2 - lsls r3, 4 - adds r2, r3 - ldr r2, [r2] - eors r2, r1 - str r2, [r0] - bx lr - .align 2, 0 -_0815EE08: .4byte gSaveBlock2Ptr - thumb_func_end sub_815EDF4 - - thumb_func_start sub_815EE0C -sub_815EE0C: @ 815EE0C - push {r4-r6,lr} - ldr r6, _0815EE30 @ =gSaveBlock1Ptr - ldr r5, _0815EE34 @ =0x00003d38 - movs r4, 0x3 -_0815EE14: - ldr r0, [r6] - adds r0, r5 - adds r0, 0x4 - ldr r1, _0815EE38 @ =0x00034bbf - bl sub_815EDF4 - adds r5, 0xC - subs r4, 0x1 - cmp r4, 0 - bge _0815EE14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815EE30: .4byte gSaveBlock1Ptr -_0815EE34: .4byte 0x00003d38 -_0815EE38: .4byte 0x00034bbf - thumb_func_end sub_815EE0C - thumb_func_start sub_815EE3C sub_815EE3C: @ 815EE3C ldr r1, _0815EE50 @ =gSaveBlock2Ptr diff --git a/data/trainer_tower.s b/data/trainer_tower.s index f90d1dd2b..6065500b5 100644 --- a/data/trainer_tower.s +++ b/data/trainer_tower.s @@ -1,5 +1,7 @@ +#include "constants/items.h" .include "asm/macros.inc" - .include "constants/constants.inc" + .include "constants/gba_constants.inc" + .include "constants/misc_constants.inc" .section .rodata @@ -562,7 +564,21 @@ gUnknown_847A284:: @ 847A284 .2byte 0x0131, 0x0175, 0x017d gUnknown_847A2B4:: @ 847A2B4 - .2byte 0x3f, 0x40, 0x41, 0x42, 0x43, 0x46, 0xb3, 0xb4, 0xb9, 0xba, 0xbb, 0xc6, 0xc7, 0xc9, 0xda + .2byte ITEM_HP_UP + .2byte ITEM_PROTEIN + .2byte ITEM_IRON + .2byte ITEM_CARBOS + .2byte ITEM_CALCIUM + .2byte ITEM_ZINC + .2byte ITEM_BRIGHT_POWDER + .2byte ITEM_WHITE_HERB + .2byte ITEM_MENTAL_HERB + .2byte ITEM_CHOICE_BAND + .2byte ITEM_KINGS_ROCK + .2byte ITEM_SCOPE_LENS + .2byte ITEM_METAL_COAT + .2byte ITEM_DRAGON_SCALE + .2byte ITEM_UP_GRADE gUnknown_847A2D2:: @ 847A2D2 .2byte 0x011d diff --git a/data/trainer_tower/trainers.inc b/data/trainer_tower/trainers.inc index e2f7dd121..d304a799d 100644 --- a/data/trainer_tower/trainers.inc +++ b/data/trainer_tower/trainers.inc @@ -22,8 +22,8 @@ .macro dummy_tower_team .string "$", 11 - .byte FACILITY_CLASS_AQUA_LEADER, 0x01, 0x00 - + .byte FACILITY_CLASS_AQUA_LEADER, 0x01 + .align 1 .2byte 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF .2byte 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF .2byte 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF @@ -41,8 +41,8 @@ gUnknown_847ABAC:: .byte 0x01, 0x08, 0x00, 0x07 .string "COLE$", 11 - .byte FACILITY_CLASS_YOUNGSTER_2, 0x01, 0x00 - + .byte FACILITY_CLASS_YOUNGSTER_2, 0x01 + .align 1 .2byte EC_WORD_AHAHA, EC_WORD_YOU_RE, EC_WORD_NOT, EC_WORD_GOING, EC_WORD_ANYWHERE, EC_WORD_EXCL .2byte EC_WORD_ALL_RIGHT, EC_WORD_EXCL, EC_WORD_BYE_BYE, EC_WORD_EXCL, 0xFFFF, 0xFFFF .2byte EC_WORD_HIYAH, EC_WORD_EXCL_EXCL, EC_WORD_DONE, EC_WORD_IN, EC_WORD_TOTALLY, EC_WORD_EXCL_EXCL @@ -128,8 +128,8 @@ gUnknown_847ABAC:: gUnknown_847AF8C:: .byte 0x02, 0x08, 0x00, 0x0d .string "JAC$", 11 - .byte FACILITY_CLASS_BURGLAR, 0x01, 0x00 - + .byte FACILITY_CLASS_BURGLAR, 0x01 + .align 1 .2byte EC_WORD_I_AM, EC_WORD_A, EC_MOVE2(THIEF), EC_WORD_EXCL, EC_WORD_GIVE_ME, EC_WORD_SOMETHING .2byte EC_WORD_YOU_VE, EC_WORD_GOT, EC_WORD_NOTHING, EC_WORD_THAT, EC_WORD_I, EC_WORD_WANT .2byte EC_WORD_EEK, EC_WORD_EXCL_EXCL, EC_WORD_I_AM, EC_WORD_SORRY, EC_WORD_I, EC_WORD_SURRENDER @@ -215,8 +215,8 @@ gUnknown_847AF8C:: gUnknown_847B36C:: .byte 0x03, 0x08, 0x00, 0x02 .string "MILY$", 11 - .byte FACILITY_CLASS_PSYCHIC_4, 0x01, 0x00 - + .byte FACILITY_CLASS_PSYCHIC_4, 0x01 + .align 1 .2byte EC_WORD_LOOK, EC_WORD_AT, EC_WORD_MY, EC_WORD_POKEMON, EC_MOVE2(SUPERPOWER), EC_WORD_EXCL .2byte EC_WORD_ISN_T, EC_WORD_IT, EC_WORD_INCREDIBLE, EC_WORD_QUES, EC_WORD_POKEMON, EC_WORD_POWER .2byte EC_WORD_THIS, EC_WORD_IS, EC_WORD_AN, EC_WORD_AWFUL, EC_MOVE(NIGHTMARE), EC_WORD_ELLIPSIS_EXCL @@ -302,8 +302,8 @@ gUnknown_847B36C:: gUnknown_847B74C:: .byte 0x04, 0x08, 0x01, 0x09 .string "JOS & ANNE$", 11 - .byte FACILITY_CLASS_COOL_COUPLE, 0x07, 0x00 - + .byte FACILITY_CLASS_COOL_COUPLE, 0x07 + .align 1 .2byte EC_WORD_I, EC_WORD_CAN_T, EC_WORD_LOSE, EC_WORD_TO, EC_WORD_YOU, EC_WORD_HERE .2byte EC_WORD_VERY, EC_WORD_WELL, EC_WORD_DONE, EC_WORD_EXCL, EC_WORD_GOOD, EC_WORD_BATTLE .2byte EC_WORD_UNBELIEVABLE, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF @@ -382,8 +382,8 @@ gUnknown_847B74C:: .byte 255 @ friendship .string "JOS & ANNE$", 11 - .byte FACILITY_CLASS_COOL_COUPLE, 0x07, 0x00 - + .byte FACILITY_CLASS_COOL_COUPLE, 0x07 + .align 1 .2byte EC_WORD_HERE_GOES, EC_WORD_EXCL_EXCL, EC_WORD_GET, EC_WORD_READY, EC_WORD_TO, EC_WORD_LOSE .2byte EC_WORD_PERFECT, EC_WORD_EXCL, EC_WORD_WE, EC_WORD_GET, EC_WORD_THE, EC_WORD_WIN .2byte EC_WORD_LOST, EC_WORD_QUES_EXCL, EC_WORD_YOU, EC_WORD_MUST_BE, EC_WORD_JOKING, EC_WORD_EXCL @@ -468,8 +468,8 @@ gUnknown_847B74C:: gUnknown_847BB2C:: .byte 0x05, 0x08, 0x01, 0x04 .string "EMY & ALEK$", 11 - .byte FACILITY_CLASS_YOUNG_COUPLE_2, 0x01, 0x00 - + .byte FACILITY_CLASS_YOUNG_COUPLE_2, 0x01 + .align 1 .2byte EC_WORD_I_AM, EC_WORD_SO, EC_WORD_LOST, EC_WORD_IN, EC_WORD_LOVEY_DOVEY, EC_WORD_HAPPINESS .2byte EC_WORD_OH, EC_WORD_OH, EC_WORD_HE, EC_WORD_IS, EC_WORD_REALLY, EC_WORD_AWESOME .2byte EC_WORD_AIYEEH, EC_WORD_EXCL_EXCL, EC_WORD_YOU_RE, EC_WORD_NOT, EC_WORD_SERIOUS, EC_WORD_QUES @@ -548,8 +548,8 @@ gUnknown_847BB2C:: .byte 255 @ friendship .string "EMY & ALEK$", 11 - .byte FACILITY_CLASS_YOUNG_COUPLE_2, 0x01, 0x00 - + .byte FACILITY_CLASS_YOUNG_COUPLE_2, 0x01 + .align 1 .2byte EC_WORD_I_AM, EC_WORD_GIDDY, EC_WORD_WITH, EC_WORD_LOVEY_DOVEY, EC_WORD_JOY, EC_WORD_EXCL_EXCL .2byte EC_WORD_SIGH, EC_WORD_ELLIPSIS, EC_WORD_MY, EC_WORD_GIRL, EC_WORD_IS, EC_WORD_CUTE .2byte EC_WORD_WAAAH, EC_WORD_EXCL_EXCL, EC_WORD_YOU, EC_WORD_CAN_T, EC_WORD_BE, EC_WORD_SERIOUS @@ -634,8 +634,8 @@ gUnknown_847BB2C:: gUnknown_847BF0C:: .byte 0x06, 0x08, 0x01, 0x00 .string "JO & HALEY$", 11 - .byte FACILITY_CLASS_CRUSH_KIN, 0x05, 0x00 - + .byte FACILITY_CLASS_CRUSH_KIN, 0x05 + .align 1 .2byte EC_WORD_WE_RE, EC_WORD_USING, EC_WORD_THAT, EC_WORD_STRATEGY, EC_WORD_OKAY, EC_WORD_QUES .2byte EC_WORD_YAY, EC_WORD_WE, EC_WORD_WON, EC_WORD_EXCL, EC_WORD_SORRY, EC_WORD_EXCL .2byte EC_WORD_AWW, EC_WORD_EXCL, EC_WORD_THAT_WAS, EC_WORD_REALLY, EC_WORD_TERRIBLE, EC_WORD_EXCL @@ -714,8 +714,8 @@ gUnknown_847BF0C:: .byte 255 @ friendship .string "JO & HALEY$", 11 - .byte FACILITY_CLASS_CRUSH_KIN, 0x05, 0x00 - + .byte FACILITY_CLASS_CRUSH_KIN, 0x05 + .align 1 .2byte EC_WORD_YOU, EC_WORD_YOU, EC_WORD_YOU, EC_WORD_BETTER, EC_WORD_NOT, EC_WORD_WIN .2byte EC_WORD_YOU_RE, EC_WORD_NOT, EC_WORD_JOKING, EC_WORD_QUES, EC_WORD_WE, EC_WORD_WON .2byte EC_WORD_WIMPY, EC_WORD_ELLIPSIS, EC_WORD_WE, EC_WORD_WERE, EC_WORD_WEAK, EC_WORD_ELLIPSIS @@ -800,8 +800,8 @@ gUnknown_847BF0C:: gUnknown_847C2EC:: .byte 0x07, 0x08, 0x02, 0x0c .string "JORDY$", 11 - .byte FACILITY_CLASS_BIKER, 0x03, 0x00 - + .byte FACILITY_CLASS_BIKER, 0x03 + .align 1 .2byte EC_WORD_DON_T, EC_WORD_MAKE, EC_WORD_ME, EC_WORD_GIGGLE, EC_WORD_YOU, EC_WORD_PUSHOVER .2byte EC_WORD_WHAT, EC_WORD_A_LITTLE, EC_WORD_PUSHOVER, EC_WORD_YOU, EC_WORD_ARE, EC_WORD_EXCL .2byte EC_WORD_YOU, EC_WORD_WERE, EC_WORD_READY, EC_WORD_TO, EC_WORD_ROCK, EC_WORD_EXCL @@ -880,8 +880,8 @@ gUnknown_847C2EC:: .byte 0 @ friendship .string "ERNEST$", 11 - .byte FACILITY_CLASS_BIKER, 0x01, 0x00 - + .byte FACILITY_CLASS_BIKER, 0x01 + .align 1 .2byte EC_WORD_IT_S, EC_WORD_SLEEP, EC_WORD_TIME, EC_WORD_FOR, EC_WORD_CHILDREN, EC_WORD_EXCL .2byte EC_WORD_NOT, EC_WORD_GUTSY, EC_WORD_ENOUGH, 0xFFFF, 0xFFFF, 0xFFFF .2byte EC_WORD_WHY, EC_WORD_DID, EC_WORD_YOU, EC_WORD_CRUSH, EC_WORD_ME, EC_WORD_QUES @@ -960,8 +960,8 @@ gUnknown_847C2EC:: .byte 0 @ friendship .string "GABRIEL$", 11 - .byte FACILITY_CLASS_CUE_BALL, 0x01, 0x00 - + .byte FACILITY_CLASS_CUE_BALL, 0x01 + .align 1 .2byte EC_WORD_YAHOO, EC_WORD_EXCL, EC_WORD_HERE_I_COME, EC_WORD_TO, EC_WORD_SWARM, EC_WORD_YOU .2byte EC_WORD_I_AM, EC_WORD_INVINCIBLE, EC_WORD_YOU, EC_WORD_GOT, EC_WORD_THAT, EC_WORD_QUES .2byte EC_WORD_WHAT, EC_WORD_WAS, EC_WORD_THAT, EC_WORD_QUES, 0xFFFF, 0xFFFF @@ -1045,8 +1045,8 @@ gUnknown_847C2EC:: gUnknown_847C6CC:: .byte 0x08, 0x08, 0x02, 0x0e .string "MIKE$", 11 - .byte FACILITY_CLASS_HIKER_2, 0x05, 0x00 - + .byte FACILITY_CLASS_HIKER_2, 0x05 + .align 1 .2byte EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_FULL, EC_WORD_OF, EC_WORD_POWER .2byte EC_WORD_WHAT_S_UP_QUES, EC_WORD_WHERE, EC_WORD_IS, EC_WORD_YOUR, EC_WORD_POWER, EC_WORD_QUES .2byte EC_WORD_YOU, EC_WORD_GOT, EC_WORD_ME, EC_WORD_WITH, EC_WORD_YOUR, EC_MOVE2(FAKE_OUT) @@ -1125,8 +1125,8 @@ gUnknown_847C6CC:: .byte 255 @ friendship .string "REBECCA$", 11 - .byte FACILITY_CLASS_CRUSH_GIRL, 0x05, 0x00 - + .byte FACILITY_CLASS_CRUSH_GIRL, 0x05 + .align 1 .2byte EC_WORD_I, EC_WORD_WILL, EC_WORD_WIN, EC_WORD_EXCL_EXCL, 0xFFFF, 0xFFFF .2byte EC_WORD_IT_S, EC_WORD_TOO, EC_WORD_BAD, EC_WORD_BUT, EC_WORD_I_AM, EC_WORD_OVERWHELMING .2byte EC_WORD_ARRGH, EC_WORD_EXCL_EXCL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF @@ -1205,8 +1205,8 @@ gUnknown_847C6CC:: .byte 255 @ friendship .string "NICOLAS$", 11 - .byte FACILITY_CLASS_BLACK_BELT_2, 0x05, 0x00 - + .byte FACILITY_CLASS_BLACK_BELT_2, 0x05 + .align 1 .2byte EC_WORD_THIS, EC_WORD_IS, EC_WORD_WHERE, EC_WORD_YOU, EC_WORD_STOP, EC_WORD_EXCL .2byte EC_WORD_YOU_RE, EC_WORD_TOO_WEAK, EC_WORD_TO, EC_WORD_EVER, EC_WORD_BEAT, EC_WORD_ME .2byte EC_WORD_WHY, EC_WORD_COULDN_T, EC_WORD_I, EC_WORD_BEAT, EC_WORD_YOU, EC_WORD_QUES @@ -1290,8 +1290,8 @@ gUnknown_847C6CC:: gUnknown_847CAAC:: .byte 0x09, 0x08, 0x00, 0x00 .string "JOEY$", 11 - .byte FACILITY_CLASS_CAMPER_2, 0x01, 0x00 - + .byte FACILITY_CLASS_CAMPER_2, 0x01 + .align 1 .2byte EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_SCARY, EC_WORD_STRONG, EC_WORD_EXCL .2byte EC_WORD_WERE, EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_TOO, EC_WORD_MUCH, EC_WORD_QUES .2byte EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_WAY, EC_WORD_TOO_STRONG, EC_WORD_EXCL @@ -1377,8 +1377,8 @@ gUnknown_847CAAC:: gUnknown_847CE8C:: .byte 0x0a, 0x08, 0x00, 0x0c .string "LILY$", 11 - .byte FACILITY_CLASS_PKMN_BREEDER_3, 0x01, 0x00 - + .byte FACILITY_CLASS_PKMN_BREEDER_3, 0x01 + .align 1 .2byte EC_WORD_I, EC_WORD_WANT, EC_WORD_SOMETHING, EC_WORD_IN, EC_MOVE(RETURN), EC_WORD_EXCL .2byte EC_WORD_I, EC_WORD_BELIEVE, EC_WORD_IN, EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_EXCL .2byte EC_WORD_I, EC_WORD_NEED, EC_WORD_SOMETHING, EC_WORD_IN, EC_MOVE(RETURN), EC_WORD_ELLIPSIS @@ -1464,8 +1464,8 @@ gUnknown_847CE8C:: gUnknown_847D26C:: .byte 0x0b, 0x08, 0x00, 0x0e .string "BRANDON$", 11 - .byte FACILITY_CLASS_BUG_CATCHER_2, 0x01, 0x00 - + .byte FACILITY_CLASS_BUG_CATCHER_2, 0x01 + .align 1 .2byte EC_WORD_POISON, EC_WORD_IS, EC_WORD_JUST, EC_WORD_SO, EC_WORD_AWFUL, EC_WORD_ISN_T_IT_QUES .2byte EC_WORD_SEE, EC_WORD_QUES, EC_WORD_ISN_T, EC_WORD_POISON, EC_WORD_TERRIBLE, EC_WORD_QUES .2byte EC_WORD_HUH_QUES, EC_WORD_OUR, EC_WORD_POISON, EC_WORD_DIDN_T, EC_WORD_WORK, EC_WORD_QUES @@ -1551,8 +1551,8 @@ gUnknown_847D26C:: gUnknown_847D64C:: .byte 0x0c, 0x08, 0x01, 0x02 .string "RIC & RENE$", 11 - .byte FACILITY_CLASS_CRUSH_KIN, 0x05, 0x00 - + .byte FACILITY_CLASS_CRUSH_KIN, 0x05 + .align 1 .2byte EC_WORD_MY, EC_WORD_BIG, EC_WORD_BROTHER, EC_WORD_IS, EC_WORD_REALLY, EC_WORD_AWESOME .2byte EC_WORD_MY, EC_WORD_BIG, EC_WORD_BROTHER, EC_WORD_IS, EC_WORD_TOO, EC_WORD_AWESOME .2byte EC_WORD_MY, EC_WORD_BIG, EC_WORD_BROTHER, EC_WORD_ISN_T, EC_WORD_AWESOME, EC_WORD_QUES @@ -1631,8 +1631,8 @@ gUnknown_847D64C:: .byte 255 @ friendship .string "RIC & RENE$", 11 - .byte FACILITY_CLASS_CRUSH_KIN, 0x05, 0x00 - + .byte FACILITY_CLASS_CRUSH_KIN, 0x05 + .align 1 .2byte EC_WORD_I_AM, EC_WORD_REALLY, EC_WORD_AWESOME, EC_WORD_EXCL, 0xFFFF, 0xFFFF .2byte EC_WORD_I_AM, EC_WORD_TOO, EC_WORD_AWESOME, EC_WORD_EXCL, 0xFFFF, 0xFFFF .2byte EC_WORD_HUH_QUES, 0xFFFF, EC_WORD_I_AM, EC_WORD_NOT_VERY, EC_WORD_AWESOME, EC_WORD_QUES @@ -1717,8 +1717,8 @@ gUnknown_847D64C:: gUnknown_847DA2C:: .byte 0x0d, 0x08, 0x01, 0x0d .string "JEN & KIRA$", 11 - .byte FACILITY_CLASS_TWINS_2, 0x05, 0x00 - + .byte FACILITY_CLASS_TWINS_2, 0x05 + .align 1 .2byte EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_TRY, EC_WORD_HARD, EC_WORD_EXCL .2byte EC_WORD_EHEHE, EC_WORD_YAY, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF .2byte EC_WORD_WAAAH, EC_WORD_EXCL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF @@ -1797,8 +1797,8 @@ gUnknown_847DA2C:: .byte 255 @ friendship .string "JEN & KIRA$", 11 - .byte FACILITY_CLASS_TWINS_2, 0x03, 0x00 - + .byte FACILITY_CLASS_TWINS_2, 0x03 + .align 1 .2byte EC_WORD_LET_S, EC_WORD_TRY, EC_WORD_HARD, EC_WORD_EXCL, 0xFFFF, 0xFFFF .2byte EC_WORD_GIGGLE, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF .2byte EC_WORD_WAAAH, EC_WORD_EXCL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF @@ -1883,8 +1883,8 @@ gUnknown_847DA2C:: gUnknown_847DE0C:: .byte 0x0e, 0x08, 0x01, 0x08 .string "ISAC & MAG$", 11 - .byte FACILITY_CLASS_COOL_COUPLE, 0x01, 0x00 - + .byte FACILITY_CLASS_COOL_COUPLE, 0x01 + .align 1 .2byte EC_WORD_OUR, EC_MOVE(EARTHQUAKE), EC_WORD_WILL, EC_WORD_MAKE, EC_WORD_YOU, EC_WORD_SHAKY .2byte EC_WORD_FEELING, EC_WORD_SHAKY, EC_WORD_HUH_QUES, 0xFFFF, 0xFFFF, 0xFFFF .2byte EC_WORD_I_AM, EC_WORD_ALL, EC_WORD_SHAKY, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF @@ -1963,8 +1963,8 @@ gUnknown_847DE0C:: .byte 255 @ friendship .string "ISAC & MAG$", 11 - .byte FACILITY_CLASS_COOL_COUPLE, 0x01, 0x00 - + .byte FACILITY_CLASS_COOL_COUPLE, 0x01 + .align 1 .2byte EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_DOESN_T, EC_WORD_GET, EC_WORD_ALL, EC_WORD_SHAKY .2byte EC_WORD_SEE, EC_WORD_QUES, EC_WORD_I, EC_WORD_DIDN_T, EC_WORD_LIE, EC_WORD_EXCL .2byte EC_WORD_HUH_QUES, EC_WORD_YOU, EC_WORD_LEFT, EC_WORD_ME, EC_WORD_FEELING, EC_WORD_SHAKY @@ -2049,8 +2049,8 @@ gUnknown_847DE0C:: gUnknown_847E1EC:: .byte 0x0f, 0x08, 0x02, 0x06 .string "CHELSEA$", 11 - .byte FACILITY_CLASS_PKMN_RANGER_4, 0x07, 0x00 - + .byte FACILITY_CLASS_PKMN_RANGER_4, 0x07 + .align 1 .2byte EC_WORD_THE, EC_WORD_GREEN, EC_WORD_WORLD, EC_WORD_IS, EC_WORD_IMPORTANT, EC_WORD_ISN_T_IT_QUES .2byte EC_WORD_YOU, EC_WORD_TAKE, EC_WORD_THE, EC_WORD_LOSS, 0xFFFF, 0xFFFF .2byte EC_WORD_BE, EC_WORD_KIND, EC_WORD_TO, EC_WORD_THE, EC_WORD_GREEN, EC_WORD_WORLD @@ -2129,8 +2129,8 @@ gUnknown_847E1EC:: .byte 255 @ friendship .string "TRENTON$", 11 - .byte FACILITY_CLASS_PKMN_RANGER_3, 0x07, 0x00 - + .byte FACILITY_CLASS_PKMN_RANGER_3, 0x07 + .align 1 .2byte EC_WORD_I, EC_MOVE2(PROTECT), EC_WORD_THE, EC_WORD_GREAT, EC_WORD_GREEN, EC_WORD_WORLD .2byte EC_WORD_TAKE_THAT, EC_WORD_EXCL, EC_WORD_THE, EC_WORD_LOSS, EC_WORD_IS, EC_WORD_YOURS .2byte EC_MOVE2(PROTECT), EC_WORD_THE, EC_WORD_GREEN, EC_WORD_WORLD, 0xFFFF, 0xFFFF @@ -2209,8 +2209,8 @@ gUnknown_847E1EC:: .byte 255 @ friendship .string "ALBERT$", 11 - .byte FACILITY_CLASS_COOLTRAINER_3, 0x07, 0x00 - + .byte FACILITY_CLASS_COOLTRAINER_3, 0x07 + .align 1 .2byte EC_WORD_LET_S, EC_WORD_HAVE, EC_WORD_AN, EC_WORD_EXCITING, EC_WORD_TIME, EC_WORD_HERE .2byte EC_WORD_YOU_RE, EC_WORD_TOO_WEAK, EC_WORD_TO, EC_WORD_MAKE, EC_WORD_THINGS, EC_WORD_EXCITING .2byte EC_WORD_YOU_RE, EC_WORD_STRONG, EC_WORD_THAT_WAS, EC_WORD_WILD, EC_WORD_AND, EC_WORD_EXCITING @@ -2294,8 +2294,8 @@ gUnknown_847E1EC:: gUnknown_847E5CC:: .byte 0x10, 0x08, 0x02, 0x04 .string "CAMRYN$", 11 - .byte FACILITY_CLASS_PICNICKER_2, 0x01, 0x00 - + .byte FACILITY_CLASS_PICNICKER_2, 0x01 + .align 1 .2byte EC_WORD_LET_S, EC_WORD_BATTLE, EC_WORD_I, EC_WORD_WON_T, EC_WORD_LOSE, EC_WORD_EXCL .2byte EC_WORD_I, EC_WORD_SAID, EC_WORD_THAT, EC_WORD_I, EC_WORD_WOULD, EC_WORD_WIN .2byte EC_WORD_OH_QUES, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_DID, EC_WORD_I, EC_WORD_LOSE, EC_WORD_QUES @@ -2374,8 +2374,8 @@ gUnknown_847E5CC:: .byte 255 @ friendship .string "NATALIA$", 11 - .byte FACILITY_CLASS_AROMA_LADY_2, 0x01, 0x00 - + .byte FACILITY_CLASS_AROMA_LADY_2, 0x01 + .align 1 .2byte EC_WORD_THIS, EC_MOVE(SWEET_SCENT), EC_WORD_YOU, EC_WORD_LIKE, EC_WORD_IT, EC_WORD_QUES .2byte EC_WORD_WASN_T, EC_WORD_THAT, EC_WORD_NICE, EC_WORD_QUES, 0xFFFF, 0xFFFF .2byte EC_WORD_THAT, EC_WORD_WASN_T, EC_WORD_GOOD, EC_WORD_QUES, 0xFFFF, 0xFFFF @@ -2454,8 +2454,8 @@ gUnknown_847E5CC:: .byte 255 @ friendship .string "KATHLEEN$", 11 - .byte FACILITY_CLASS_COOLTRAINER_4, 0x07, 0x00 - + .byte FACILITY_CLASS_COOLTRAINER_4, 0x07 + .align 1 .2byte EC_WORD_TOO, EC_WORD_BAD, EC_WORD_IT_S, EC_WORD_OVER, EC_WORD_FOR, EC_WORD_YOU .2byte EC_WORD_SORRY, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF .2byte EC_WORD_THIS, EC_WORD_IS, EC_WORD_HARD, EC_WORD_TO, EC_WORD_BELIEVE, EC_WORD_ELLIPSIS @@ -2539,8 +2539,8 @@ gUnknown_847E5CC:: gUnknown_847E9AC:: .byte 0x11, 0x08, 0x00, 0x03 .string "BRADEN$", 11 - .byte FACILITY_CLASS_SWIMMER_MALE_2, 0x01, 0x00 - + .byte FACILITY_CLASS_SWIMMER_MALE_2, 0x01 + .align 1 .2byte EC_WORD_I_AM, EC_WORD_PRETTY, EC_WORD_HAPPY, EC_WORD_WITH, EC_WORD_MY, EC_WORD_TOUGHNESS .2byte EC_WORD_WROOOAAR_EXCL, 0xFFFF, EC_WORD_SERIOUSLY, EC_WORD_I, EC_WORD_WON, EC_WORD_QUES .2byte EC_WORD_YOU, EC_WORD_SHOCKED, EC_WORD_ME, EC_WORD_OUT, EC_WORD_OF, EC_WORD_HAPPINESS @@ -2626,8 +2626,8 @@ gUnknown_847E9AC:: gUnknown_847ED8C:: .byte 0x12, 0x08, 0x00, 0x0a .string "ALLYSON$", 11 - .byte FACILITY_CLASS_COOLTRAINER_4, 0x07, 0x00 - + .byte FACILITY_CLASS_COOLTRAINER_4, 0x07 + .align 1 .2byte EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_ABOUT, EC_WORD_TO, EC_WORD_LOSE, EC_WORD_TODAY .2byte EC_WORD_YES, EC_WORD_EXCL_EXCL, EC_WORD_I, EC_WORD_ADORE, EC_WORD_MYSELF, EC_WORD_TODAY .2byte EC_WORD_I_WAS, EC_WORD_CONFUSED, EC_WORD_ABOUT, EC_WORD_THINGS, EC_WORD_I, EC_WORD_THINK @@ -2713,8 +2713,8 @@ gUnknown_847ED8C:: gUnknown_847F16C:: .byte 0x13, 0x08, 0x00, 0x0e .string "ALBERTO$", 11 - .byte FACILITY_CLASS_SAILOR_2, 0x05, 0x00 - + .byte FACILITY_CLASS_SAILOR_2, 0x05 + .align 1 .2byte EC_WORD_LET_S, EC_WORD_GET, EC_WORD_WITH, EC_WORD_IT, EC_WORD_RIGHT, EC_WORD_AWAY .2byte EC_WORD_YO, EC_WORD_EXCL_EXCL, EC_WORD_YOU, EC_WORD_GIVE_UP, EC_WORD_NOW, EC_WORD_EH_QUES .2byte EC_WORD_IT_S, EC_WORD_ALL, EC_WORD_OVER, EC_WORD_ELLIPSIS, EC_WORD_I, EC_WORD_SURRENDER @@ -2800,8 +2800,8 @@ gUnknown_847F16C:: gUnknown_847F54C:: .byte 0x14, 0x08, 0x01, 0x0c .string "KAT & KIPP$", 11 - .byte FACILITY_CLASS_SIS_AND_BRO_2, 0x04, 0x00 - + .byte FACILITY_CLASS_SIS_AND_BRO_2, 0x04 + .align 1 .2byte EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_TRY, EC_WORD_MY, EC_WORD_BEST .2byte EC_WORD_WAY, EC_WORD_TO, EC_WORD_GO, EC_WORD_MY, EC_WORD_AWESOME, EC_WORD_BROTHER .2byte EC_WORD_SIGH, EC_WORD_ELLIPSIS, EC_WORD_THAT_S, EC_WORD_HOW, EC_WORD_IT, EC_WORD_GOES @@ -2880,8 +2880,8 @@ gUnknown_847F54C:: .byte 255 @ friendship .string "KAT & KIPP$", 11 - .byte FACILITY_CLASS_SIS_AND_BRO_2, 0x04, 0x00 - + .byte FACILITY_CLASS_SIS_AND_BRO_2, 0x04 + .align 1 .2byte EC_WORD_FUFUFU, EC_WORD_ELLIPSIS, EC_WORD_WE, EC_WORD_NEVER, EC_WORD_LOSE, EC_WORD_EXCL .2byte EC_WORD_FUFUFU, EC_WORD_ELLIPSIS, EC_WORD_WE_RE, EC_WORD_TOO_STRONG, EC_WORD_TO, EC_WORD_LOSE .2byte EC_WORD_WHAT, EC_WORD_HUH_QUES, EC_WORD_ARE, EC_WORD_YOU, EC_WORD_JOKING, EC_WORD_QUES @@ -2966,8 +2966,8 @@ gUnknown_847F54C:: gUnknown_847F92C:: .byte 0x15, 0x08, 0x01, 0x08 .string "GEB&MEGAN$", 11 - .byte FACILITY_CLASS_COOL_COUPLE, 0x07, 0x00 - + .byte FACILITY_CLASS_COOL_COUPLE, 0x07 + .align 1 .2byte EC_WORD_YOU_RE, EC_WORD_OUR, EC_WORD_OPPONENT, EC_WORD_QUES, EC_WORD_PUSHOVER, EC_WORD_HAHAHA .2byte EC_WORD_HAHAHA, EC_WORD_SORRY, EC_WORD_MY, EC_WORD_FRIEND, EC_WORD_TOUGH, EC_WORD_LOSS .2byte EC_WORD_YOU_RE, EC_WORD_SERIOUS, EC_WORD_AREN_T, EC_WORD_YOU, EC_WORD_FRIEND, EC_WORD_QUES @@ -3046,8 +3046,8 @@ gUnknown_847F92C:: .byte 255 @ friendship .string "GEB&MEGAN$", 11 - .byte FACILITY_CLASS_COOL_COUPLE, 0x07, 0x00 - + .byte FACILITY_CLASS_COOL_COUPLE, 0x07 + .align 1 .2byte EC_WORD_YOU_RE, EC_WORD_OUR, EC_WORD_FOE, EC_WORD_QUES, EC_WORD_GIGGLE, EC_WORD_ELLIPSIS .2byte EC_WORD_GIGGLE, EC_WORD_ELLIPSIS, EC_WORD_I_AM, EC_WORD_SO, EC_WORD_SORRY, 0xFFFF .2byte EC_WORD_MY, EC_WORD_WORD, EC_WORD_THIS, EC_WORD_IS, EC_WORD_JUST, EC_WORD_INCREDIBLE @@ -3132,8 +3132,8 @@ gUnknown_847F92C:: gUnknown_847FD0C:: .byte 0x16, 0x08, 0x01, 0x05 .string "LISA&LEAH$", 11 - .byte FACILITY_CLASS_TWINS_2, 0x01, 0x00 - + .byte FACILITY_CLASS_TWINS_2, 0x01 + .align 1 .2byte EC_WORD_ABSOLUTELY, EC_WORD_WE_RE, EC_WORD_GOING, EC_WORD_TO, EC_WORD_WIN, EC_WORD_EXCL .2byte EC_WORD_YEAH_YEAH, EC_WORD_EXCL_EXCL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF .2byte EC_WORD_AWW, EC_WORD_EXCL, EC_WORD_WAAAH, EC_WORD_EXCL_EXCL, 0xFFFF, 0xFFFF @@ -3212,8 +3212,8 @@ gUnknown_847FD0C:: .byte 255 @ friendship .string "LISA&LEAH$", 11 - .byte FACILITY_CLASS_TWINS_2, 0x01, 0x00 - + .byte FACILITY_CLASS_TWINS_2, 0x01 + .align 1 .2byte EC_WORD_CAN, EC_WORD_WE, EC_WORD_WIN, EC_WORD_QUES, EC_WORD_IT_S, EC_WORD_EXCITING .2byte EC_WORD_YEAH_YEAH, EC_WORD_EXCL_EXCL, EC_WORD_YOU, EC_WORD_MAKE, EC_WORD_ME, EC_WORD_HAPPY .2byte EC_WORD_AWW, EC_WORD_EXCL, EC_WORD_WAAAH, EC_WORD_EXCL_EXCL, 0xFFFF, 0xFFFF @@ -3292,8 +3292,8 @@ gUnknown_847FD0C:: .byte 255 @ friendship .string "$", 11 - .byte FACILITY_CLASS_AQUA_LEADER, 0x01, 0x00 - + .byte FACILITY_CLASS_AQUA_LEADER, 0x01 + .align 1 .2byte 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF .2byte 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF .2byte 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF @@ -3377,8 +3377,8 @@ gUnknown_847FD0C:: gUnknown_84800EC:: .byte 0x17, 0x08, 0x02, 0x01 .string "PRISCILLA$", 11 - .byte FACILITY_CLASS_TUBER_3, 0x01, 0x00 - + .byte FACILITY_CLASS_TUBER_3, 0x01 + .align 1 .2byte EC_WORD_I_AM, EC_WORD_A_LITTLE, EC_WORD_POKEMON, EC_WORD_GIRL, EC_WORD_HERE_I_COME, EC_WORD_EXCL .2byte EC_WORD_WAAAH, EC_WORD_EXCL, EC_WORD_DID, EC_WORD_I, EC_WORD_WIN, EC_WORD_QUES .2byte EC_WORD_OH_DEAR, EC_WORD_ELLIPSIS, EC_WORD_I, EC_WORD_COULDN_T, EC_WORD_WIN, EC_WORD_ELLIPSIS @@ -3457,8 +3457,8 @@ gUnknown_84800EC:: .byte 0 @ friendship .string "CHARLOTTE$", 11 - .byte FACILITY_CLASS_LADY_2, 0x01, 0x00 - + .byte FACILITY_CLASS_LADY_2, 0x01 + .align 1 .2byte EC_WORD_HELLO, EC_WORD_THERE, EC_WORD_I_AM, EC_WORD_A, EC_WORD_POKEMON, EC_WORD_LADY .2byte EC_WORD_OH, EC_WORD_MY, EC_WORD_MY, EC_WORD_ELLIPSIS, EC_WORD_I_AM, EC_WORD_SORRY .2byte EC_WORD_YOU_RE, EC_WORD_BETTER, EC_WORD_THAN, EC_WORD_A, EC_WORD_POKEMON, EC_WORD_LADY @@ -3537,8 +3537,8 @@ gUnknown_84800EC:: .byte 255 @ friendship .string "SHANIA$", 11 - .byte FACILITY_CLASS_SWIMMER_FEMALE_2, 0x01, 0x00 - + .byte FACILITY_CLASS_SWIMMER_FEMALE_2, 0x01 + .align 1 .2byte EC_WORD_A, EC_WORD_POKEMON, EC_WORD_HEROINE, EC_WORD_THAT_S, EC_WORD_WHAT, EC_WORD_I_AM .2byte EC_WORD_AHAHA, EC_WORD_NO, EC_WORD_WAY, EC_WORD_YOU_RE, EC_WORD_TOO_WEAK, EC_WORD_SERIOUSLY .2byte EC_WORD_WHY, EC_WORD_QUES_EXCL, EC_WORD_YOU, EC_WORD_SHOULD, EC_WORD_NOT, EC_WORD_LIE @@ -3622,8 +3622,8 @@ gUnknown_84800EC:: gUnknown_84804CC:: .byte 0x18, 0x08, 0x02, 0x0d .string "BRENNAN$", 11 - .byte FACILITY_CLASS_SAILOR_2, 0x01, 0x00 - + .byte FACILITY_CLASS_SAILOR_2, 0x01 + .align 1 .2byte EC_WORD_TAKE, EC_WORD_THINGS, EC_WORD_EASY, EC_WORD_ELLIPSIS, EC_WORD_THAT_S, EC_WORD_IMPORTANT .2byte EC_WORD_YOU, EC_WORD_LOSE, EC_WORD_IF, EC_WORD_YOU, EC_WORD_GIVE_UP, EC_WORD_EXCL .2byte EC_WORD_OOPS, EC_WORD_YOU, EC_WORD_GOT, EC_WORD_AN, EC_WORD_EASY, EC_WORD_WIN @@ -3702,8 +3702,8 @@ gUnknown_84804CC:: .byte 255 @ friendship .string "KADEN$", 11 - .byte FACILITY_CLASS_FISHERMAN_2, 0x01, 0x00 - + .byte FACILITY_CLASS_FISHERMAN_2, 0x01 + .align 1 .2byte EC_WORD_MY, EC_WORD_FISHING, EC_WORD_FASHION, EC_WORD_APPEAL, EC_WORD_IS, EC_WORD_FANTASTIC .2byte EC_WORD_MY, EC_WORD_FANTASTIC, EC_WORD_FASHION, EC_WORD_APPEAL, EC_WORD_WINS, EC_WORD_OUT .2byte EC_WORD_UH_OH, EC_WORD_ELLIPSIS, EC_WORD_I, EC_WORD_SEE, EC_WORD_I, EC_WORD_LOST @@ -3782,8 +3782,8 @@ gUnknown_84804CC:: .byte 255 @ friendship .string "EMANUEL$", 11 - .byte FACILITY_CLASS_GENTLEMAN_2, 0x01, 0x00 - + .byte FACILITY_CLASS_GENTLEMAN_2, 0x01 + .align 1 .2byte EC_WORD_HMM, EC_WORD_QUES, EC_WORD_ARE, EC_WORD_YOU, EC_WORD_SKILLED, EC_WORD_QUES .2byte EC_WORD_I, EC_WORD_SEE, EC_WORD_I, EC_WORD_WASN_T, EC_WORD_RIGHT, EC_WORD_ELLIPSIS .2byte EC_WORD_YOU, EC_WORD_TRULY, EC_WORD_ARE, EC_WORD_A, EC_WORD_MASTER, EC_WORD_TRAINER @@ -3867,8 +3867,8 @@ gUnknown_84804CC:: gUnknown_84808AC:: .byte 0x19, 0x08, 0x00, 0x0c .string "JARRETT$", 11 - .byte FACILITY_CLASS_JUGGLER, 0x02, 0x00 - + .byte FACILITY_CLASS_JUGGLER, 0x02 + .align 1 .2byte EC_WORD_LET_S, EC_WORD_HAVE, EC_WORD_AN, EC_MOVE2(EXPLOSION), EC_WORD_PARTY, EC_WORD_EXCL .2byte EC_WORD_CONGRATS, EC_WORD_FOR, EC_WORD_YOUR, EC_WORD_LOSS, EC_WORD_PARTY, EC_WORD_KID .2byte EC_WORD_NICE, EC_MOVE(SELF_DESTRUCT), EC_WORD_THERE, EC_WORD_EXCL, EC_WORD_YOU_RE, EC_WORD_PERFECT @@ -3954,8 +3954,8 @@ gUnknown_84808AC:: gUnknown_8480C8C:: .byte 0x1a, 0x08, 0x00, 0x0d .string "OWEN$", 11 - .byte FACILITY_CLASS_SUPER_NERD, 0x02, 0x00 - + .byte FACILITY_CLASS_SUPER_NERD, 0x02 + .align 1 .2byte EC_WORD_HERE_IT_IS, EC_MOVE2(THUNDER_WAVE), EC_WORD_DON_T, EC_MOVE2(WRAP), EC_WORD_ME, EC_WORD_EXCL .2byte EC_WORD_ACCEPT, EC_WORD_MY, EC_MOVE2(PRESENT), EC_WORD_OF, EC_MOVE2(THUNDER_WAVE), EC_WORD_EXCL .2byte EC_MOVE2(WRAP), EC_MOVE(BIND), EC_WORD_ELECTRIC, EC_MOVE2(WHIRLWIND), EC_WORD_SPIRALING, EC_WORD_AROUND @@ -4041,8 +4041,8 @@ gUnknown_8480C8C:: gUnknown_848106C:: .byte 0x1b, 0x08, 0x00, 0x01 .string "LORENZO$", 11 - .byte FACILITY_CLASS_PSYCHIC_3, 0x01, 0x00 - + .byte FACILITY_CLASS_PSYCHIC_3, 0x01 + .align 1 .2byte EC_WORD_THIS, EC_WORD_POWER, EC_WORD_IS, EC_WORD_NOW, EC_WORD_COMPLETE, EC_WORD_EXCL .2byte EC_WORD_NO, EC_WORD_KEEN_EYE, EC_WORD_CAN, EC_WORD_STOP, EC_WORD_MY, EC_WORD_POWER .2byte EC_WORD_HERE_IT_IS, EC_WORD_EXCL, EC_MOVE(KINESIS), EC_WORD_EXCL, EC_WORD_ELLIPSIS, EC_WORD_WHAT @@ -4128,8 +4128,8 @@ gUnknown_848106C:: gUnknown_848144C:: .byte 0x1c, 0x08, 0x01, 0x0b .string "NIA & CARL$", 11 - .byte FACILITY_CLASS_COOL_COUPLE, 0x04, 0x00 - + .byte FACILITY_CLASS_COOL_COUPLE, 0x04 + .align 1 .2byte EC_WORD_HERE_GOES, EC_WORD_MY, EC_WORD_DIGITAL, EC_WORD_ROMANTIC, EC_WORD_HERO, EC_WORD_STRATEGY .2byte EC_WORD_THAT_S, EC_WORD_THE, EC_WORD_DIGITAL, EC_WORD_HYPER, EC_WORD_MODE, EC_WORD_POWER .2byte EC_WORD_MY, EC_WORD_PERFECT, EC_WORD_STRATEGY, EC_WORD_WAS, EC_MOVE2(BEAT_UP), EC_WORD_QUES @@ -4208,8 +4208,8 @@ gUnknown_848144C:: .byte 255 @ friendship .string "NIA & CARL$", 11 - .byte FACILITY_CLASS_COOL_COUPLE, 0x04, 0x00 - + .byte FACILITY_CLASS_COOL_COUPLE, 0x04 + .align 1 .2byte EC_WORD_MASTER, EC_WORD_COMPLETE, EC_WORD_FASHION, EC_WORD_SYSTEM, EC_WORD_START, EC_WORD_EXCL .2byte EC_WORD_THAT_S_IT_EXCL, EC_WORD_THE, EC_WORD_POWER, EC_WORD_OF, EC_WORD_OUR, EC_WORD_SYSTEM .2byte EC_WORD_OKAY, EC_WORD_EXCL, EC_MOVE(THUNDERBOLT), EC_WORD_RUN_AWAY, EC_WORD_SYSTEM, EC_WORD_START @@ -4294,8 +4294,8 @@ gUnknown_848144C:: gUnknown_848182C:: .byte 0x1d, 0x08, 0x01, 0x03 .string "AXE & REN$", 11 - .byte FACILITY_CLASS_SIS_AND_BRO_2, 0x02, 0x00 - + .byte FACILITY_CLASS_SIS_AND_BRO_2, 0x02 + .align 1 .2byte EC_WORD_IT_S, EC_WORD_GOING, EC_WORD_TO, EC_WORD_GET, EC_WORD_AWFULLY, EC_WORD_COLD .2byte EC_WORD_THAT_S, EC_WORD_THAT, EC_WORD_MAN, EC_WORD_I_AM, EC_WORD_COLD, EC_WORD_EXCL .2byte EC_WORD_I, EC_WORD_CAN_T_WIN, EC_WORD_IN, EC_WORD_THIS, EC_MOVE(SHEER_COLD), EC_WORD_ELLIPSIS @@ -4374,8 +4374,8 @@ gUnknown_848182C:: .byte 255 @ friendship .string "AXE & REN$", 11 - .byte FACILITY_CLASS_SIS_AND_BRO_2, 0x02, 0x00 - + .byte FACILITY_CLASS_SIS_AND_BRO_2, 0x02 + .align 1 .2byte EC_WORD_OUR, EC_WORD_SWIFT_SWIM, EC_WORD_LEFT, EC_WORD_ME, EC_WORD_FEELING, EC_WORD_COLD .2byte EC_WORD_I, EC_WORD_WON, EC_WORD_BUT, EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_HOT .2byte EC_WORD_I_AM, EC_WORD_HUNGRY, EC_WORD_FOR, EC_WORD_ANY, EC_WORD_HOT, EC_WORD_EATS @@ -4460,8 +4460,8 @@ gUnknown_848182C:: gUnknown_8481C0C:: .byte 0x1e, 0x08, 0x01, 0x05 .string "KATI & GEB$", 11 - .byte FACILITY_CLASS_YOUNG_COUPLE_2, 0x02, 0x00 - + .byte FACILITY_CLASS_YOUNG_COUPLE_2, 0x02 + .align 1 .2byte EC_WORD_WELCOME, EC_WORD_TO, EC_WORD_OUR, EC_WORD_LOVEY_DOVEY, EC_MOVE2(THUNDER_WAVE), EC_MOVE(SANDSTORM) .2byte EC_WORD_LALALA, EC_WORD_LALALA, EC_WORD_OUR, EC_WORD_LOVEY_DOVEY, EC_WORD_LALALA, EC_WORD_LIFE .2byte EC_WORD_I, EC_WORD_NEED, EC_WORD_TO, EC_WORD_LOSE, EC_WORD_MY, EC_MOVE2(FRUSTRATION) @@ -4540,8 +4540,8 @@ gUnknown_8481C0C:: .byte 255 @ friendship .string "KATI & GEB$", 11 - .byte FACILITY_CLASS_YOUNG_COUPLE_2, 0x02, 0x00 - + .byte FACILITY_CLASS_YOUNG_COUPLE_2, 0x02 + .align 1 .2byte EC_WORD_I_AM, EC_WORD_PLUS, EC_WORD_YOU_RE, EC_WORD_MINUS, EC_WORD_LOVEY_DOVEY, EC_WORD_MAGNET_PULL .2byte EC_WORD_DON_T, EC_WORD_STOP, EC_WORD_OUR, EC_WORD_LOVEY_DOVEY, EC_WORD_LOCOMOTIVE, EC_WORD_EXCL .2byte EC_WORD_HIS, EC_WORD_CRY, EC_WORD_HAS, EC_WORD_CUTE_CHARM, EC_WORD_TOO, EC_WORD_EXCL @@ -4626,8 +4626,8 @@ gUnknown_8481C0C:: gUnknown_8481FEC:: .byte 0x1f, 0x08, 0x02, 0x07 .string "BEN$", 11 - .byte FACILITY_CLASS_ROCKER, 0x01, 0x00 - + .byte FACILITY_CLASS_ROCKER, 0x01 + .align 1 .2byte EC_WORD_LALALA, EC_WORD_LET_S, EC_MOVE(SING), EC_WORD_ABOUT, EC_WORD_ELECTRIC, EC_WORD_POWER .2byte EC_WORD_STATIC, EC_WORD_IS, EC_WORD_ELECTRIC, EC_WORD_YES, EC_WORD_IT, EC_WORD_IS .2byte EC_WORD_ELECTRIC, EC_WORD_ABOUT, EC_WORD_MY, EC_WORD_DIGITAL, EC_WORD_TELEVISION, EC_WORD_I_AM @@ -4706,8 +4706,8 @@ gUnknown_8481FEC:: .byte 255 @ friendship .string "CAMDEN$", 11 - .byte FACILITY_CLASS_ENGINEER, 0x01, 0x00 - + .byte FACILITY_CLASS_ENGINEER, 0x01 + .align 1 .2byte EC_WORD_LALALA, EC_WORD_LET_S, EC_MOVE(SING), EC_WORD_ABOUT, EC_WORD_ELECTRIC, EC_WORD_POWER .2byte EC_WORD_A, EC_MOVE(THUNDERBOLT), EC_WORD_IS, EC_WORD_ELECTRIC, EC_WORD_TOO, EC_WORD_EXCL .2byte EC_WORD_ELECTRIC, EC_WORD_EXCL, EC_WORD_IT_S, EC_WORD_ABOUT, EC_WORD_WIRELESS, EC_WORD_LINK @@ -4786,8 +4786,8 @@ gUnknown_8481FEC:: .byte 255 @ friendship .string "ZACKERY$", 11 - .byte FACILITY_CLASS_SCIENTIST, 0x01, 0x00 - + .byte FACILITY_CLASS_SCIENTIST, 0x01 + .align 1 .2byte EC_WORD_LALALA, EC_WORD_LET_S, EC_MOVE(SING), EC_WORD_ABOUT, EC_WORD_ELECTRIC, EC_WORD_POWER .2byte EC_MOVE2(THUNDER_SHOCK), EC_WORD_IS, EC_WORD_ELECTRIC, EC_WORD_YOU, EC_WORD_KNOW, EC_WORD_QUES .2byte EC_WORD_ELECTRIC, EC_WORD_EXCL, EC_MOVE2(FLASH), EC_MOVE2(FLASH), EC_MOVE2(FLASH), EC_WORD_EXCL_EXCL @@ -4871,8 +4871,8 @@ gUnknown_8481FEC:: gUnknown_84823CC:: .byte 0x20, 0x08, 0x02, 0x0e .string "MAURA$", 11 - .byte FACILITY_CLASS_BEAUTY_2, 0x02, 0x00 - + .byte FACILITY_CLASS_BEAUTY_2, 0x02 + .align 1 .2byte EC_WORD_I_AM, EC_WORD_THE, EC_WORD_GROUP, EC_WORD_LEADER, EC_WORD_EXCL, 0xFFFF .2byte EC_WORD_WHAT, EC_WORD_AM, EC_WORD_I, EC_WORD_LEADER, EC_WORD_OF, EC_WORD_QUES .2byte EC_WORD_I_AM, EC_WORD_NO, EC_WORD_LEADER, EC_WORD_IT_S, EC_WORD_A_LITTLE, EC_WORD_LIE @@ -4951,8 +4951,8 @@ gUnknown_84823CC:: .byte 255 @ friendship .string "MIKAELA$", 11 - .byte FACILITY_CLASS_LASS_2, 0x01, 0x00 - + .byte FACILITY_CLASS_LASS_2, 0x01 + .align 1 .2byte EC_WORD_I_AM, EC_WORD_REALLY, EC_WORD_THE, EC_WORD_NO_1, EC_WORD_TRAINER, EC_WORD_HERE .2byte EC_WORD_NEVER, EC_WORD_SAID, EC_WORD_WHAT, EC_WORD_I_AM, EC_WORD_NO_1, EC_WORD_AT .2byte EC_WORD_NEXT, EC_WORD_TIME, EC_WORD_I, EC_WORD_WILL, EC_WORD_BE, EC_WORD_OVERWHELMING @@ -5031,8 +5031,8 @@ gUnknown_84823CC:: .byte 255 @ friendship .string "FLINT$", 11 - .byte FACILITY_CLASS_ENGINEER, 0x04, 0x00 - + .byte FACILITY_CLASS_ENGINEER, 0x04 + .align 1 .2byte EC_WORD_I_AM, EC_WORD_THE, EC_MOVE2(MILK_DRINK), EC_WORD_WORLD, EC_WORD_LEADER, EC_WORD_EXCL .2byte EC_WORD_I_VE, EC_WORD_WON, EC_WORD_THIS, EC_MOVE2(MILK_DRINK), EC_WORD_MATCH, EC_WORD_EXCL .2byte EC_WORD_I, EC_WORD_CAN_T, EC_WORD_DRINK, EC_WORD_ANY, EC_WORD_MORE, EC_WORD_DRINKS diff --git a/include/battle_2.h b/include/battle_2.h index ca8b78805..1f7a2304d 100644 --- a/include/battle_2.h +++ b/include/battle_2.h @@ -43,6 +43,7 @@ u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreChosenMoves); void RunBattleScriptCommands_PopCallbacksStack(void); void RunBattleScriptCommands(void); bool8 TryRunFromBattle(u8 bank); +void sub_800FD9C(void); extern const u8 gStatusConditionString_PoisonJpn[8]; extern const u8 gStatusConditionString_SleepJpn[8]; diff --git a/include/battle_setup.h b/include/battle_setup.h index 2806295ca..86a84f471 100644 --- a/include/battle_setup.h +++ b/include/battle_setup.h @@ -17,5 +17,6 @@ void BattleSetup_StartTrainerBattle(void); u8 *BattleSetup_GetScriptAddrAfterBattle(void); u8 *BattleSetup_GetTrainerPostBattleScript(void); void sub_80803FC(void); +u8 sub_8080060(void); #endif // GUARD_BATTLE_SETUP_H diff --git a/include/battle_transition.h b/include/battle_transition.h index eba76fd61..91e564790 100644 --- a/include/battle_transition.h +++ b/include/battle_transition.h @@ -3,6 +3,8 @@ #include "global.h" -void sub_8149DFC(u8 a1); +void sub_8149DFC(u8 a0); +bool8 sub_80D08F8(void); +void sub_80D08B8(u8 a0); #endif // GUARD_BATTLE_TRANSITION_H diff --git a/include/event_data.h b/include/event_data.h index 13e388bf2..34d103967 100644 --- a/include/event_data.h +++ b/include/event_data.h @@ -59,4 +59,7 @@ extern u16 gSpecialVar_0x8014; extern u16 gSpecialVar_Result; extern u16 gSpecialVar_0x8004; +extern u16 gUnknown_20370DA; +extern u16 gUnknown_20370DC; + #endif // GUARD_EVENT_DATA_H diff --git a/include/global.h b/include/global.h index 858d95831..f418ff757 100644 --- a/include/global.h +++ b/include/global.h @@ -709,6 +709,21 @@ struct MEventBuffers /*0x344 0x3464*/ u32 unk_344[2][5]; }; // 0x36C 0x348C +struct TrainerTowerLog +{ + u32 unk0; + u32 unk4; + u8 unk8; + u8 unk9; + u8 unkA_0:1; + u8 unkA_1:1; + u8 unkA_2:1; + u8 unkA_3:1; + u8 unkA_4:1; + u8 unkA_5:1; + u8 unkA_6:2; +}; + struct SaveBlock1 { /*0x0000*/ struct Coords16 pos; @@ -766,7 +781,7 @@ struct SaveBlock1 /*0x3A54*/ struct FameCheckerSaveData fameChecker[NUM_FAMECHECKER_PERSONS]; /*0x3A94*/ u8 filler3A94[0x2A0]; /*0x3D34*/ u32 unkArrayIdx; - /*0x3D38*/ u32 unkArray[4][3]; + /*0x3D38*/ struct TrainerTowerLog unkArray[4]; }; extern struct SaveBlock1* gSaveBlock1Ptr; diff --git a/include/item.h b/include/item.h index 2d6bb9370..581693735 100644 --- a/include/item.h +++ b/include/item.h @@ -64,5 +64,6 @@ void sub_809A2DC(void); void sub_809A2A4(void); void sub_8099E90(u16, u8 *); void sub_809A824(u16 itemId); +bool8 AddBagItem(u16 itemId, u16 amount); #endif // ITEM_H diff --git a/include/main.h b/include/main.h index 3fb254c95..6e9d2a25d 100644 --- a/include/main.h +++ b/include/main.h @@ -66,6 +66,7 @@ void DoSoftReset(void); void ClearPokemonCrySongs(void); void RestoreSerialTimer3IntrHandlers(void); void SetVBlankCounter1Ptr(u32 *ptr); +void DisableVBlankCounter1(void); extern const char RomHeaderGameCode[4]; extern const char RomHeaderSoftwareVersion; diff --git a/include/overworld.h b/include/overworld.h index 6aa58baa9..53914b627 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -88,6 +88,8 @@ void SetCurrentMapLayout(u16 mapDataId); void SetWarpDestinationToFixedHoleWarp(s16 x, s16 y); void ResetInitialPlayerAvatarState(void); +void sub_8055D40(u16 mapDataId); +void sub_80563F0(void); extern u8 gUnknown_2031DD8; extern u8 gUnknown_2036E28; diff --git a/include/pokemon.h b/include/pokemon.h index e8782af98..4c6240cd4 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -670,4 +670,6 @@ void DoMonFrontSpriteAnimation(struct Sprite* sprite, u16 species, bool8 noCry, void BattleAnimateFrontSprite(struct Sprite* sprite, u16 species, bool8 noCry, u8 arg3); void BattleAnimateBackSprite(struct Sprite* sprite, u16 species); +void PlayMapChosenOrBattleBGM(u16 songId); + #endif // GUARD_POKEMON_H diff --git a/src/load_save.c b/src/load_save.c index da55869aa..6f388e451 100644 --- a/src/load_save.c +++ b/src/load_save.c @@ -287,7 +287,7 @@ void ApplyNewEncryptionKeyToAllEncryptedData(u32 encryptionKey) int i; for(i = 0; i < 4; i++) - ApplyNewEncryptionKeyToWord(&gSaveBlock1Ptr->unkArray[i][1], encryptionKey); + ApplyNewEncryptionKeyToWord(&gSaveBlock1Ptr->unkArray[i].unk4, encryptionKey); sub_8054F38(encryptionKey); ApplyNewEncryptionKeyToBagItems_(encryptionKey); diff --git a/src/scrcmd.c b/src/scrcmd.c index ce1519b94..4cd0fdad2 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -53,32 +53,32 @@ const u8 sScriptConditionTable[6][3] = -#define SCRCMD_DEF(name) bool8 name(struct ScriptContext *ctx) +#define SCRCMD_DEF(name) bool8 ScrCmd_##name(struct ScriptContext *ctx) -SCRCMD_DEF(ScrCmd_nop) +SCRCMD_DEF(nop) { return FALSE; } -SCRCMD_DEF(ScrCmd_nop1) +SCRCMD_DEF(nop1) { return FALSE; } -SCRCMD_DEF(ScrCmd_end) +SCRCMD_DEF(end) { StopScript(ctx); return FALSE; } -SCRCMD_DEF(ScrCmd_gotonative) +SCRCMD_DEF(gotonative) { bool8 (*func)(void) = (bool8 (*)(void))ScriptReadWord(ctx); SetupNativeScript(ctx, func); return TRUE; } -SCRCMD_DEF(ScrCmd_special) +SCRCMD_DEF(special) { u16 (*const *specialPtr)(void) = gSpecials + ScriptReadHalfword(ctx); if (specialPtr < gSpecialsEnd) @@ -88,7 +88,7 @@ SCRCMD_DEF(ScrCmd_special) return FALSE; } -SCRCMD_DEF(ScrCmd_specialvar) +SCRCMD_DEF(specialvar) { u16 * varPtr = GetVarPointer(ScriptReadHalfword(ctx)); u16 (*const *specialPtr)(void) = gSpecials + ScriptReadHalfword(ctx); @@ -99,40 +99,40 @@ SCRCMD_DEF(ScrCmd_specialvar) return FALSE; } -SCRCMD_DEF(ScrCmd_callnative) +SCRCMD_DEF(callnative) { void (*func )(void) = ((void (*)(void))ScriptReadWord(ctx)); func(); return FALSE; } -SCRCMD_DEF(ScrCmd_waitstate) +SCRCMD_DEF(waitstate) { ScriptContext1_Stop(); return TRUE; } -SCRCMD_DEF(ScrCmd_goto) +SCRCMD_DEF(goto) { const u8 * scrptr = (const u8 *)ScriptReadWord(ctx); ScriptJump(ctx, scrptr); return FALSE; } -SCRCMD_DEF(ScrCmd_return) +SCRCMD_DEF(return) { ScriptReturn(ctx); return FALSE; } -SCRCMD_DEF(ScrCmd_call) +SCRCMD_DEF(call) { const u8 * scrptr = (const u8 *)ScriptReadWord(ctx); ScriptCall(ctx, scrptr); return FALSE; } -SCRCMD_DEF(ScrCmd_goto_if) +SCRCMD_DEF(goto_if) { u8 condition = ScriptReadByte(ctx); const u8 * scrptr = (const u8 *)ScriptReadWord(ctx); @@ -141,7 +141,7 @@ SCRCMD_DEF(ScrCmd_goto_if) return FALSE; } -SCRCMD_DEF(ScrCmd_call_if) +SCRCMD_DEF(call_if) { u8 condition = ScriptReadByte(ctx); const u8 * scrptr = (const u8 *)ScriptReadWord(ctx); @@ -150,7 +150,7 @@ SCRCMD_DEF(ScrCmd_call_if) return FALSE; } -SCRCMD_DEF(ScrCmd_setvaddress) +SCRCMD_DEF(setvaddress) { u32 addr1 = (u32)ctx->scriptPtr - 1; u32 addr2 = ScriptReadWord(ctx); @@ -159,21 +159,21 @@ SCRCMD_DEF(ScrCmd_setvaddress) return FALSE; } -SCRCMD_DEF(ScrCmd_vgoto) +SCRCMD_DEF(vgoto) { const u8 * scrptr = (const u8 *)ScriptReadWord(ctx); ScriptJump(ctx, scrptr - gVScriptOffset); return FALSE; } -SCRCMD_DEF(ScrCmd_vcall) +SCRCMD_DEF(vcall) { const u8 * scrptr = (const u8 *)ScriptReadWord(ctx); ScriptCall(ctx, scrptr - gVScriptOffset); return FALSE; } -SCRCMD_DEF(ScrCmd_vgoto_if) +SCRCMD_DEF(vgoto_if) { u8 condition = ScriptReadByte(ctx); const u8 * scrptr = (const u8 *)ScriptReadWord(ctx) - gVScriptOffset; @@ -182,7 +182,7 @@ SCRCMD_DEF(ScrCmd_vgoto_if) return FALSE; } -SCRCMD_DEF(ScrCmd_vcall_if) +SCRCMD_DEF(vcall_if) { u8 condition = ScriptReadByte(ctx); const u8 * scrptr = (const u8 *)ScriptReadWord(ctx) - gVScriptOffset; @@ -191,7 +191,7 @@ SCRCMD_DEF(ScrCmd_vcall_if) return FALSE; } -SCRCMD_DEF(ScrCmd_gotostd) +SCRCMD_DEF(gotostd) { u8 stdIdx = ScriptReadByte(ctx); const u8 *const * script = gStdScripts + stdIdx; @@ -200,7 +200,7 @@ SCRCMD_DEF(ScrCmd_gotostd) return FALSE; } -SCRCMD_DEF(ScrCmd_callstd) +SCRCMD_DEF(callstd) { u8 stdIdx = ScriptReadByte(ctx); const u8 *const * script = gStdScripts + stdIdx; @@ -209,7 +209,7 @@ SCRCMD_DEF(ScrCmd_callstd) return FALSE; } -SCRCMD_DEF(ScrCmd_gotostd_if) +SCRCMD_DEF(gotostd_if) { u8 condition = ScriptReadByte(ctx); u8 stdIdx = ScriptReadByte(ctx); @@ -222,7 +222,7 @@ SCRCMD_DEF(ScrCmd_gotostd_if) return FALSE; } -SCRCMD_DEF(ScrCmd_callstd_if) +SCRCMD_DEF(callstd_if) { u8 condition = ScriptReadByte(ctx); u8 stdIdx = ScriptReadByte(ctx); @@ -235,26 +235,26 @@ SCRCMD_DEF(ScrCmd_callstd_if) return FALSE; } -SCRCMD_DEF(ScrCmd_gotoram) +SCRCMD_DEF(gotoram) { ScriptJump(ctx, gRAMScriptPtr); return FALSE; } -SCRCMD_DEF(ScrCmd_killscript) +SCRCMD_DEF(killscript) { ClearRamScript(); StopScript(ctx); return TRUE; } -SCRCMD_DEF(ScrCmd_setmysteryeventstatus) +SCRCMD_DEF(setmysteryeventstatus) { SetMysteryEventScriptStatus(ScriptReadByte(ctx)); return FALSE; } -SCRCMD_DEF(ScrCmd_cmdCF) +SCRCMD_DEF(cmdCF) { const u8 * script = sub_8069E48(); if (script != NULL) @@ -265,42 +265,42 @@ SCRCMD_DEF(ScrCmd_cmdCF) return FALSE; } -SCRCMD_DEF(ScrCmd_loadword) +SCRCMD_DEF(loadword) { u8 which = ScriptReadByte(ctx); ctx->data[which] = ScriptReadWord(ctx); return FALSE; } -SCRCMD_DEF(ScrCmd_loadbytefromaddr) +SCRCMD_DEF(loadbytefromaddr) { u8 which = ScriptReadByte(ctx); ctx->data[which] = *(const u8 *)ScriptReadWord(ctx); return FALSE; } -SCRCMD_DEF(ScrCmd_writebytetoaddr) +SCRCMD_DEF(writebytetoaddr) { u8 value = ScriptReadByte(ctx); *(u8 *)ScriptReadWord(ctx) = value; return FALSE; } -SCRCMD_DEF(ScrCmd_loadbyte) +SCRCMD_DEF(loadbyte) { u8 which = ScriptReadByte(ctx); ctx->data[which] = ScriptReadByte(ctx); return FALSE; } -SCRCMD_DEF(ScrCmd_setptrbyte) +SCRCMD_DEF(setptrbyte) { u8 which = ScriptReadByte(ctx); *(u8 *)ScriptReadWord(ctx) = ctx->data[which]; return FALSE; } -SCRCMD_DEF(ScrCmd_copylocal) +SCRCMD_DEF(copylocal) { u8 whichDst = ScriptReadByte(ctx); u8 whichSrc = ScriptReadByte(ctx); @@ -308,21 +308,21 @@ SCRCMD_DEF(ScrCmd_copylocal) return FALSE; } -SCRCMD_DEF(ScrCmd_copybyte) +SCRCMD_DEF(copybyte) { u8 * dest = (u8 *)ScriptReadWord(ctx); *dest = *(const u8 *)ScriptReadWord(ctx); return FALSE; } -SCRCMD_DEF(ScrCmd_setvar) +SCRCMD_DEF(setvar) { u16 * varPtr = GetVarPointer(ScriptReadHalfword(ctx)); *varPtr = ScriptReadHalfword(ctx); return FALSE; } -SCRCMD_DEF(ScrCmd_copyvar) +SCRCMD_DEF(copyvar) { u16 * destPtr = GetVarPointer(ScriptReadHalfword(ctx)); u16 * srcPtr = GetVarPointer(ScriptReadHalfword(ctx)); @@ -330,7 +330,7 @@ SCRCMD_DEF(ScrCmd_copyvar) return FALSE; } -SCRCMD_DEF(ScrCmd_setorcopyvar) +SCRCMD_DEF(setorcopyvar) { u16 * destPtr = GetVarPointer(ScriptReadHalfword(ctx)); *destPtr = VarGet(ScriptReadHalfword(ctx)); @@ -355,7 +355,7 @@ u8 compare_012(u16 left, u16 right) } // comparelocaltolocal -SCRCMD_DEF(ScrCmd_compare_local_to_local) +SCRCMD_DEF(compare_local_to_local) { const u8 value1 = ctx->data[ScriptReadByte(ctx)]; const u8 value2 = ctx->data[ScriptReadByte(ctx)]; @@ -365,7 +365,7 @@ SCRCMD_DEF(ScrCmd_compare_local_to_local) } // comparelocaltoimm -SCRCMD_DEF(ScrCmd_compare_local_to_value) +SCRCMD_DEF(compare_local_to_value) { const u8 value1 = ctx->data[ScriptReadByte(ctx)]; const u8 value2 = ScriptReadByte(ctx); @@ -374,7 +374,7 @@ SCRCMD_DEF(ScrCmd_compare_local_to_value) return FALSE; } -SCRCMD_DEF(ScrCmd_compare_local_to_addr) +SCRCMD_DEF(compare_local_to_addr) { const u8 value1 = ctx->data[ScriptReadByte(ctx)]; const u8 value2 = *(const u8 *)ScriptReadWord(ctx); @@ -383,7 +383,7 @@ SCRCMD_DEF(ScrCmd_compare_local_to_addr) return FALSE; } -SCRCMD_DEF(ScrCmd_compare_addr_to_local) +SCRCMD_DEF(compare_addr_to_local) { const u8 value1 = *(const u8 *)ScriptReadWord(ctx); const u8 value2 = ctx->data[ScriptReadByte(ctx)]; @@ -392,7 +392,7 @@ SCRCMD_DEF(ScrCmd_compare_addr_to_local) return FALSE; } -SCRCMD_DEF(ScrCmd_compare_addr_to_value) +SCRCMD_DEF(compare_addr_to_value) { const u8 value1 = *(const u8 *)ScriptReadWord(ctx); const u8 value2 = ScriptReadByte(ctx); @@ -401,7 +401,7 @@ SCRCMD_DEF(ScrCmd_compare_addr_to_value) return FALSE; } -SCRCMD_DEF(ScrCmd_compare_addr_to_addr) +SCRCMD_DEF(compare_addr_to_addr) { const u8 value1 = *(const u8 *)ScriptReadWord(ctx); const u8 value2 = *(const u8 *)ScriptReadWord(ctx); @@ -410,7 +410,7 @@ SCRCMD_DEF(ScrCmd_compare_addr_to_addr) return FALSE; } -SCRCMD_DEF(ScrCmd_compare_var_to_value) +SCRCMD_DEF(compare_var_to_value) { const u16 value1 = *GetVarPointer(ScriptReadHalfword(ctx)); const u16 value2 = ScriptReadHalfword(ctx); @@ -419,7 +419,7 @@ SCRCMD_DEF(ScrCmd_compare_var_to_value) return FALSE; } -SCRCMD_DEF(ScrCmd_compare_var_to_var) +SCRCMD_DEF(compare_var_to_var) { const u16 *ptr1 = GetVarPointer(ScriptReadHalfword(ctx)); const u16 *ptr2 = GetVarPointer(ScriptReadHalfword(ctx)); @@ -428,21 +428,21 @@ SCRCMD_DEF(ScrCmd_compare_var_to_var) return FALSE; } -SCRCMD_DEF(ScrCmd_addvar) +SCRCMD_DEF(addvar) { u16 *ptr = GetVarPointer(ScriptReadHalfword(ctx)); *ptr += ScriptReadHalfword(ctx); return FALSE; } -SCRCMD_DEF(ScrCmd_subvar) +SCRCMD_DEF(subvar) { u16 *ptr = GetVarPointer(ScriptReadHalfword(ctx)); *ptr -= VarGet(ScriptReadHalfword(ctx)); return FALSE; } -SCRCMD_DEF(ScrCmd_random) +SCRCMD_DEF(random) { u16 max = VarGet(ScriptReadHalfword(ctx)); @@ -450,7 +450,7 @@ SCRCMD_DEF(ScrCmd_random) return FALSE; } -SCRCMD_DEF(ScrCmd_giveitem) +SCRCMD_DEF(giveitem) { u16 itemId = VarGet(ScriptReadHalfword(ctx)); u32 quantity = VarGet(ScriptReadHalfword(ctx)); @@ -460,7 +460,7 @@ SCRCMD_DEF(ScrCmd_giveitem) return FALSE; } -SCRCMD_DEF(ScrCmd_takeitem) +SCRCMD_DEF(takeitem) { u16 itemId = VarGet(ScriptReadHalfword(ctx)); u32 quantity = VarGet(ScriptReadHalfword(ctx)); @@ -469,7 +469,7 @@ SCRCMD_DEF(ScrCmd_takeitem) return FALSE; } -SCRCMD_DEF(ScrCmd_checkitemspace) +SCRCMD_DEF(checkitemspace) { u16 itemId = VarGet(ScriptReadHalfword(ctx)); u32 quantity = VarGet(ScriptReadHalfword(ctx)); @@ -478,7 +478,7 @@ SCRCMD_DEF(ScrCmd_checkitemspace) return FALSE; } -SCRCMD_DEF(ScrCmd_checkitem) +SCRCMD_DEF(checkitem) { u16 itemId = VarGet(ScriptReadHalfword(ctx)); u32 quantity = VarGet(ScriptReadHalfword(ctx)); @@ -487,7 +487,7 @@ SCRCMD_DEF(ScrCmd_checkitem) return FALSE; } -SCRCMD_DEF(ScrCmd_checkitemtype) +SCRCMD_DEF(checkitemtype) { u16 itemId = VarGet(ScriptReadHalfword(ctx)); @@ -495,7 +495,7 @@ SCRCMD_DEF(ScrCmd_checkitemtype) return FALSE; } -SCRCMD_DEF(ScrCmd_givepcitem) +SCRCMD_DEF(givepcitem) { u16 itemId = VarGet(ScriptReadHalfword(ctx)); u16 quantity = VarGet(ScriptReadHalfword(ctx)); @@ -504,7 +504,7 @@ SCRCMD_DEF(ScrCmd_givepcitem) return FALSE; } -SCRCMD_DEF(ScrCmd_checkpcitem) +SCRCMD_DEF(checkpcitem) { u16 itemId = VarGet(ScriptReadHalfword(ctx)); u16 quantity = VarGet(ScriptReadHalfword(ctx)); @@ -513,7 +513,7 @@ SCRCMD_DEF(ScrCmd_checkpcitem) return FALSE; } -SCRCMD_DEF(ScrCmd_givedecoration) +SCRCMD_DEF(givedecoration) { u32 decorId = VarGet(ScriptReadHalfword(ctx)); @@ -521,7 +521,7 @@ SCRCMD_DEF(ScrCmd_givedecoration) return FALSE; } -SCRCMD_DEF(ScrCmd_takedecoration) +SCRCMD_DEF(takedecoration) { u32 decorId = VarGet(ScriptReadHalfword(ctx)); @@ -529,7 +529,7 @@ SCRCMD_DEF(ScrCmd_takedecoration) return FALSE; } -SCRCMD_DEF(ScrCmd_checkdecorspace) +SCRCMD_DEF(checkdecorspace) { u32 decorId = VarGet(ScriptReadHalfword(ctx)); @@ -537,7 +537,7 @@ SCRCMD_DEF(ScrCmd_checkdecorspace) return FALSE; } -SCRCMD_DEF(ScrCmd_checkdecor) +SCRCMD_DEF(checkdecor) { u32 decorId = VarGet(ScriptReadHalfword(ctx)); @@ -545,31 +545,31 @@ SCRCMD_DEF(ScrCmd_checkdecor) return FALSE; } -SCRCMD_DEF(ScrCmd_setflag) +SCRCMD_DEF(setflag) { FlagSet(ScriptReadHalfword(ctx)); return FALSE; } -SCRCMD_DEF(ScrCmd_clearflag) +SCRCMD_DEF(clearflag) { FlagClear(ScriptReadHalfword(ctx)); return FALSE; } -SCRCMD_DEF(ScrCmd_checkflag) +SCRCMD_DEF(checkflag) { ctx->comparisonResult = FlagGet(ScriptReadHalfword(ctx)); return FALSE; } -SCRCMD_DEF(ScrCmd_incrementgamestat) +SCRCMD_DEF(incrementgamestat) { IncrementGameStat(ScriptReadByte(ctx)); return FALSE; } -SCRCMD_DEF(ScrCmd_comparestattoword) +SCRCMD_DEF(comparestattoword) { u8 statIdx = ScriptReadByte(ctx); u32 value = ScriptReadWord(ctx); @@ -584,7 +584,7 @@ SCRCMD_DEF(ScrCmd_comparestattoword) return FALSE; } -SCRCMD_DEF(ScrCmd_cmdD0) +SCRCMD_DEF(cmdD0) { u16 value = ScriptReadHalfword(ctx); sub_8115748(value); @@ -592,14 +592,14 @@ SCRCMD_DEF(ScrCmd_cmdD0) return FALSE; } -SCRCMD_DEF(ScrCmd_animateflash) +SCRCMD_DEF(animateflash) { sub_807F028(ScriptReadByte(ctx)); ScriptContext1_Stop(); return TRUE; } -SCRCMD_DEF(ScrCmd_setflashradius) +SCRCMD_DEF(setflashradius) { u16 flashLevel = VarGet(ScriptReadHalfword(ctx)); @@ -615,14 +615,14 @@ static bool8 IsPaletteNotActive(void) return FALSE; } -SCRCMD_DEF(ScrCmd_fadescreen) +SCRCMD_DEF(fadescreen) { fade_screen(ScriptReadByte(ctx), 0); SetupNativeScript(ctx, IsPaletteNotActive); return TRUE; } -SCRCMD_DEF(ScrCmd_fadescreenspeed) +SCRCMD_DEF(fadescreenspeed) { u8 mode = ScriptReadByte(ctx); u8 speed = ScriptReadByte(ctx); @@ -642,14 +642,14 @@ static bool8 RunPauseTimer(void) return FALSE; } -SCRCMD_DEF(ScrCmd_delay) +SCRCMD_DEF(delay) { sPauseCounter = ScriptReadHalfword(ctx); SetupNativeScript(ctx, RunPauseTimer); return TRUE; } -SCRCMD_DEF(ScrCmd_initclock) +SCRCMD_DEF(initclock) { // u8 hour = VarGet(ScriptReadHalfword(ctx)); // u8 minute = VarGet(ScriptReadHalfword(ctx)); @@ -658,13 +658,13 @@ SCRCMD_DEF(ScrCmd_initclock) return FALSE; } -SCRCMD_DEF(ScrCmd_dodailyevents) +SCRCMD_DEF(dodailyevents) { // DoTimeBasedEvents(); return FALSE; } -SCRCMD_DEF(ScrCmd_gettime) +SCRCMD_DEF(gettime) { // RtcCalcLocalTime(); // gSpecialVar_0x8000 = gLocalTime.hours; @@ -676,7 +676,7 @@ SCRCMD_DEF(ScrCmd_gettime) return FALSE; } -SCRCMD_DEF(ScrCmd_setweather) +SCRCMD_DEF(setweather) { u16 weather = VarGet(ScriptReadHalfword(ctx)); @@ -684,25 +684,25 @@ SCRCMD_DEF(ScrCmd_setweather) return FALSE; } -SCRCMD_DEF(ScrCmd_resetweather) +SCRCMD_DEF(resetweather) { SetSav1WeatherFromCurrMapHeader(); return FALSE; } -SCRCMD_DEF(ScrCmd_doweather) +SCRCMD_DEF(doweather) { DoCurrentWeather(); return FALSE; } -SCRCMD_DEF(ScrCmd_setstepcallback) +SCRCMD_DEF(setstepcallback) { ActivatePerStepCallback(ScriptReadByte(ctx)); return FALSE; } -SCRCMD_DEF(ScrCmd_setmaplayoutindex) +SCRCMD_DEF(setmaplayoutindex) { u16 value = VarGet(ScriptReadHalfword(ctx)); @@ -710,7 +710,7 @@ SCRCMD_DEF(ScrCmd_setmaplayoutindex) return FALSE; } -SCRCMD_DEF(ScrCmd_warp) +SCRCMD_DEF(warp) { u8 mapGroup = ScriptReadByte(ctx); u8 mapNum = ScriptReadByte(ctx); @@ -724,7 +724,7 @@ SCRCMD_DEF(ScrCmd_warp) return TRUE; } -SCRCMD_DEF(ScrCmd_warpsilent) +SCRCMD_DEF(warpsilent) { u8 mapGroup = ScriptReadByte(ctx); u8 mapNum = ScriptReadByte(ctx); @@ -738,7 +738,7 @@ SCRCMD_DEF(ScrCmd_warpsilent) return TRUE; } -SCRCMD_DEF(ScrCmd_warpdoor) +SCRCMD_DEF(warpdoor) { u8 mapGroup = ScriptReadByte(ctx); u8 mapNum = ScriptReadByte(ctx); @@ -752,7 +752,7 @@ SCRCMD_DEF(ScrCmd_warpdoor) return TRUE; } -SCRCMD_DEF(ScrCmd_warphole) +SCRCMD_DEF(warphole) { u8 mapGroup = ScriptReadByte(ctx); u8 mapNum = ScriptReadByte(ctx); @@ -769,7 +769,7 @@ SCRCMD_DEF(ScrCmd_warphole) return TRUE; } -SCRCMD_DEF(ScrCmd_warpteleport) +SCRCMD_DEF(warpteleport) { u8 mapGroup = ScriptReadByte(ctx); u8 mapNum = ScriptReadByte(ctx); @@ -783,7 +783,7 @@ SCRCMD_DEF(ScrCmd_warpteleport) return TRUE; } -SCRCMD_DEF(ScrCmd_warpD1) +SCRCMD_DEF(warpD1) { u8 mapGroup = ScriptReadByte(ctx); u8 mapNum = ScriptReadByte(ctx); @@ -798,7 +798,7 @@ SCRCMD_DEF(ScrCmd_warpD1) return TRUE; } -SCRCMD_DEF(ScrCmd_setwarp) +SCRCMD_DEF(setwarp) { u8 mapGroup = ScriptReadByte(ctx); u8 mapNum = ScriptReadByte(ctx); @@ -810,7 +810,7 @@ SCRCMD_DEF(ScrCmd_setwarp) return FALSE; } -SCRCMD_DEF(ScrCmd_setdynamicwarp) +SCRCMD_DEF(setdynamicwarp) { u8 mapGroup = ScriptReadByte(ctx); u8 mapNum = ScriptReadByte(ctx); @@ -822,7 +822,7 @@ SCRCMD_DEF(ScrCmd_setdynamicwarp) return FALSE; } -SCRCMD_DEF(ScrCmd_setdivewarp) +SCRCMD_DEF(setdivewarp) { u8 mapGroup = ScriptReadByte(ctx); u8 mapNum = ScriptReadByte(ctx); @@ -834,7 +834,7 @@ SCRCMD_DEF(ScrCmd_setdivewarp) return FALSE; } -SCRCMD_DEF(ScrCmd_setholewarp) +SCRCMD_DEF(setholewarp) { u8 mapGroup = ScriptReadByte(ctx); u8 mapNum = ScriptReadByte(ctx); @@ -846,7 +846,7 @@ SCRCMD_DEF(ScrCmd_setholewarp) return FALSE; } -SCRCMD_DEF(ScrCmd_setescapewarp) +SCRCMD_DEF(setescapewarp) { u8 mapGroup = ScriptReadByte(ctx); u8 mapNum = ScriptReadByte(ctx); @@ -858,7 +858,7 @@ SCRCMD_DEF(ScrCmd_setescapewarp) return FALSE; } -SCRCMD_DEF(ScrCmd_getplayerxy) +SCRCMD_DEF(getplayerxy) { u16 *pX = GetVarPointer(ScriptReadHalfword(ctx)); u16 *pY = GetVarPointer(ScriptReadHalfword(ctx)); @@ -868,13 +868,13 @@ SCRCMD_DEF(ScrCmd_getplayerxy) return FALSE; } -SCRCMD_DEF(ScrCmd_getpartysize) +SCRCMD_DEF(getpartysize) { gSpecialVar_Result = CalculatePlayerPartyCount(); return FALSE; } -SCRCMD_DEF(ScrCmd_playse) +SCRCMD_DEF(playse) { PlaySE(ScriptReadHalfword(ctx)); return FALSE; @@ -888,13 +888,13 @@ static bool8 WaitForSoundEffectFinish(void) return FALSE; } -SCRCMD_DEF(ScrCmd_waitse) +SCRCMD_DEF(waitse) { SetupNativeScript(ctx, WaitForSoundEffectFinish); return TRUE; } -SCRCMD_DEF(ScrCmd_playfanfare) +SCRCMD_DEF(playfanfare) { PlayFanfare(ScriptReadHalfword(ctx)); return FALSE; @@ -905,13 +905,13 @@ static bool8 WaitForFanfareFinish(void) return IsFanfareTaskInactive(); } -SCRCMD_DEF(ScrCmd_waitfanfare) +SCRCMD_DEF(waitfanfare) { SetupNativeScript(ctx, WaitForFanfareFinish); return TRUE; } -SCRCMD_DEF(ScrCmd_playbgm) +SCRCMD_DEF(playbgm) { u16 songId = ScriptReadHalfword(ctx); bool8 val = ScriptReadByte(ctx); @@ -924,13 +924,13 @@ SCRCMD_DEF(ScrCmd_playbgm) return FALSE; } -SCRCMD_DEF(ScrCmd_savebgm) +SCRCMD_DEF(savebgm) { Overworld_SetSavedMusic(ScriptReadHalfword(ctx)); return FALSE; } -SCRCMD_DEF(ScrCmd_fadedefaultbgm) +SCRCMD_DEF(fadedefaultbgm) { if (gUnknown_203ADFA == 2 || gUnknown_203ADFA == 3) return FALSE; @@ -938,7 +938,7 @@ SCRCMD_DEF(ScrCmd_fadedefaultbgm) return FALSE; } -SCRCMD_DEF(ScrCmd_fadenewbgm) +SCRCMD_DEF(fadenewbgm) { u16 music = ScriptReadHalfword(ctx); if (gUnknown_203ADFA == 2 || gUnknown_203ADFA == 3) @@ -947,7 +947,7 @@ SCRCMD_DEF(ScrCmd_fadenewbgm) return FALSE; } -SCRCMD_DEF(ScrCmd_fadeoutbgm) +SCRCMD_DEF(fadeoutbgm) { u8 speed = ScriptReadByte(ctx); @@ -961,7 +961,7 @@ SCRCMD_DEF(ScrCmd_fadeoutbgm) return TRUE; } -SCRCMD_DEF(ScrCmd_fadeinbgm) +SCRCMD_DEF(fadeinbgm) { u8 speed = ScriptReadByte(ctx); @@ -974,7 +974,7 @@ SCRCMD_DEF(ScrCmd_fadeinbgm) return FALSE; } -SCRCMD_DEF(ScrCmd_applymovement) +SCRCMD_DEF(applymovement) { u16 localId = VarGet(ScriptReadHalfword(ctx)); const void *movementScript = (const void *)ScriptReadWord(ctx); @@ -984,7 +984,7 @@ SCRCMD_DEF(ScrCmd_applymovement) return FALSE; } -SCRCMD_DEF(ScrCmd_applymovement_at) +SCRCMD_DEF(applymovement_at) { u16 localId = VarGet(ScriptReadHalfword(ctx)); const void *movementScript = (const void *)ScriptReadWord(ctx); @@ -1001,7 +1001,7 @@ static bool8 WaitForMovementFinish(void) return ScriptMovement_IsObjectMovementFinished(sMovingNpcId, sMovingNpcMapId, sMovingNpcMapBank); } -SCRCMD_DEF(ScrCmd_waitmovement) +SCRCMD_DEF(waitmovement) { u16 localId = VarGet(ScriptReadHalfword(ctx)); @@ -1013,7 +1013,7 @@ SCRCMD_DEF(ScrCmd_waitmovement) return TRUE; } -SCRCMD_DEF(ScrCmd_waitmovement_at) +SCRCMD_DEF(waitmovement_at) { u16 localId = VarGet(ScriptReadHalfword(ctx)); u8 mapBank; @@ -1029,7 +1029,7 @@ SCRCMD_DEF(ScrCmd_waitmovement_at) return TRUE; } -SCRCMD_DEF(ScrCmd_removeobject) +SCRCMD_DEF(removeobject) { u16 localId = VarGet(ScriptReadHalfword(ctx)); @@ -1037,7 +1037,7 @@ SCRCMD_DEF(ScrCmd_removeobject) return FALSE; } -SCRCMD_DEF(ScrCmd_removeobject_at) +SCRCMD_DEF(removeobject_at) { u16 objectId = VarGet(ScriptReadHalfword(ctx)); u8 mapGroup = ScriptReadByte(ctx); @@ -1047,7 +1047,7 @@ SCRCMD_DEF(ScrCmd_removeobject_at) return FALSE; } -SCRCMD_DEF(ScrCmd_addobject) +SCRCMD_DEF(addobject) { u16 objectId = VarGet(ScriptReadHalfword(ctx)); @@ -1055,7 +1055,7 @@ SCRCMD_DEF(ScrCmd_addobject) return FALSE; } -SCRCMD_DEF(ScrCmd_addobject_at) +SCRCMD_DEF(addobject_at) { u16 objectId = VarGet(ScriptReadHalfword(ctx)); u8 mapGroup = ScriptReadByte(ctx); @@ -1065,7 +1065,7 @@ SCRCMD_DEF(ScrCmd_addobject_at) return FALSE; } -SCRCMD_DEF(ScrCmd_setobjectxy) +SCRCMD_DEF(setobjectxy) { u16 localId = VarGet(ScriptReadHalfword(ctx)); u16 x = VarGet(ScriptReadHalfword(ctx)); @@ -1075,7 +1075,7 @@ SCRCMD_DEF(ScrCmd_setobjectxy) return FALSE; } -SCRCMD_DEF(ScrCmd_setobjectxyperm) +SCRCMD_DEF(setobjectxyperm) { u16 localId = VarGet(ScriptReadHalfword(ctx)); u16 x = VarGet(ScriptReadHalfword(ctx)); @@ -1085,7 +1085,7 @@ SCRCMD_DEF(ScrCmd_setobjectxyperm) return FALSE; } -SCRCMD_DEF(ScrCmd_moveobjectoffscreen) +SCRCMD_DEF(moveobjectoffscreen) { u16 localId = VarGet(ScriptReadHalfword(ctx)); @@ -1093,7 +1093,7 @@ SCRCMD_DEF(ScrCmd_moveobjectoffscreen) return FALSE; } -SCRCMD_DEF(ScrCmd_showobject_at) +SCRCMD_DEF(showobject_at) { u16 localId = VarGet(ScriptReadHalfword(ctx)); u8 mapGroup = ScriptReadByte(ctx); @@ -1103,7 +1103,7 @@ SCRCMD_DEF(ScrCmd_showobject_at) return FALSE; } -SCRCMD_DEF(ScrCmd_hideobject_at) +SCRCMD_DEF(hideobject_at) { u16 localId = VarGet(ScriptReadHalfword(ctx)); u8 mapGroup = ScriptReadByte(ctx); @@ -1113,7 +1113,7 @@ SCRCMD_DEF(ScrCmd_hideobject_at) return FALSE; } -SCRCMD_DEF(ScrCmd_setobjectpriority) +SCRCMD_DEF(setobjectpriority) { u16 localId = VarGet(ScriptReadHalfword(ctx)); u8 mapGroup = ScriptReadByte(ctx); @@ -1124,7 +1124,7 @@ SCRCMD_DEF(ScrCmd_setobjectpriority) return FALSE; } -SCRCMD_DEF(ScrCmd_resetobjectpriority) +SCRCMD_DEF(resetobjectpriority) { u16 localId = VarGet(ScriptReadHalfword(ctx)); u8 mapGroup = ScriptReadByte(ctx); @@ -1134,7 +1134,7 @@ SCRCMD_DEF(ScrCmd_resetobjectpriority) return FALSE; } -SCRCMD_DEF(ScrCmd_faceplayer) +SCRCMD_DEF(faceplayer) { if (gMapObjects[gSelectedEventObject].active) { @@ -1144,7 +1144,7 @@ SCRCMD_DEF(ScrCmd_faceplayer) return FALSE; } -SCRCMD_DEF(ScrCmd_turnobject) +SCRCMD_DEF(turnobject) { u16 localId = VarGet(ScriptReadHalfword(ctx)); u8 direction = ScriptReadByte(ctx); @@ -1153,7 +1153,7 @@ SCRCMD_DEF(ScrCmd_turnobject) return FALSE; } -SCRCMD_DEF(ScrCmd_setobjectmovementtype) +SCRCMD_DEF(setobjectmovementtype) { u16 localId = VarGet(ScriptReadHalfword(ctx)); u8 movementType = ScriptReadByte(ctx); @@ -1162,7 +1162,7 @@ SCRCMD_DEF(ScrCmd_setobjectmovementtype) return FALSE; } -SCRCMD_DEF(ScrCmd_createvobject) +SCRCMD_DEF(createvobject) { u8 graphicsId = ScriptReadByte(ctx); u8 v2 = ScriptReadByte(ctx); @@ -1175,7 +1175,7 @@ SCRCMD_DEF(ScrCmd_createvobject) return FALSE; } -SCRCMD_DEF(ScrCmd_turnvobject) +SCRCMD_DEF(turnvobject) { u8 v1 = ScriptReadByte(ctx); u8 direction = ScriptReadByte(ctx); @@ -1184,7 +1184,7 @@ SCRCMD_DEF(ScrCmd_turnvobject) return FALSE; } -SCRCMD_DEF(ScrCmd_lockall) +SCRCMD_DEF(lockall) { if (is_c1_link_related_active()) { @@ -1198,7 +1198,7 @@ SCRCMD_DEF(ScrCmd_lockall) } } -SCRCMD_DEF(ScrCmd_lock) +SCRCMD_DEF(lock) { if (is_c1_link_related_active()) { @@ -1220,7 +1220,7 @@ SCRCMD_DEF(ScrCmd_lock) } } -SCRCMD_DEF(ScrCmd_releaseall) +SCRCMD_DEF(releaseall) { u8 playerObjectId; @@ -1232,7 +1232,7 @@ SCRCMD_DEF(ScrCmd_releaseall) return FALSE; } -SCRCMD_DEF(ScrCmd_release) +SCRCMD_DEF(release) { u8 playerObjectId; @@ -1245,3 +1245,10 @@ SCRCMD_DEF(ScrCmd_release) UnfreezeMapObjects(); return FALSE; } + +SCRCMD_DEF(cmdC7) +{ + gUnknown_20370DC = gUnknown_20370DA; + gUnknown_20370DA = ScriptReadByte(ctx); + return FALSE; +} diff --git a/src/trainer_tower.c b/src/trainer_tower.c index 74065445a..c968f24c3 100644 --- a/src/trainer_tower.c +++ b/src/trainer_tower.c @@ -1,5 +1,6 @@ #include "global.h" #include "main.h" +#include "task.h" #include "constants/flags.h" #include "constants/vars.h" #include "malloc.h" @@ -11,7 +12,12 @@ #include "cereader_tool.h" #include "easy_chat.h" #include "text.h" +#include "battle_setup.h" +#include "battle_transition.h" +#include "battle.h" +#include "battle_2.h" #include "overworld.h" +#include "item.h" struct UnkStruct_8479D34 { @@ -28,7 +34,6 @@ struct UnkSubstruct_203F458_000C_004 /* 0x000 */ u8 unk_000[11]; /* 0x00B */ u8 unk_00B; /* 0x00C */ u8 unk_00C; - /* 0x00D */ u8 unk_00D; /* 0x00E */ u16 unk_00E[6]; /* 0x01A */ u16 unk_01A[6]; /* 0x026 */ u16 unk_026[6]; @@ -38,7 +43,8 @@ struct UnkSubstruct_203F458_000C_004 struct UnkSubstruct_203F458_000C { - /* 0x000 */ u8 filler_000[2]; + /* 0x000 */ u8 unk_000; + /* 0x000 */ u8 unk_001; /* 0x002 */ u8 unk_002; /* 0x003 */ u8 unk_003; /* 0x004 */ struct UnkSubstruct_203F458_000C_004 unk_004[3]; @@ -122,15 +128,19 @@ void sub_815E8CC(void); void sub_815E908(void); void sub_815E948(void); void sub_815E9C8(void); +void sub_815E9FC(void); void sub_815EC0C(void); +u32 sub_815EDDC(u32 *); +void sub_815EDF4(u32 *, u32); extern const struct UnkStruct_8479D34 gUnknown_8479D34[15]; +extern const struct UnkStruct_8479ED8 gUnknown_8479ED8[83]; +extern const struct UnkStruct_847A024 gUnknown_847A024[10]; extern void (*const gUnknown_847A230[])(void); extern const struct Unk_203F458_Header gUnknown_84827AC; extern const struct UnkSubstruct_203F458_000C *const gUnknown_84827B4[][8]; extern const u16 gUnknown_847A284[8][3]; -extern const struct UnkStruct_8479ED8 gUnknown_8479ED8[83]; -extern const struct UnkStruct_847A024 gUnknown_847A024[10]; +extern const u16 gUnknown_847A2B4[]; bool32 sub_815D7BC(void * dest, void * buffer) { @@ -280,7 +290,7 @@ void sub_815DA54(void) gUnknown_203F45C->unk_3C = gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_002; gUnknown_203F45C->unk_3D = gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_004[r10].unk_00B; gUnknown_203F45C->unk_3E = gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_004[r10].unk_00C; - SetVBlankCounter1Ptr(gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx]); + SetVBlankCounter1Ptr(&gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk0); sub_815DD2C(); } @@ -692,3 +702,159 @@ void sub_815DF54(void) "_0815E064: .4byte gStringVar4"); } #endif // NONMATCHING + +void sub_815E068(u8 battleType, u8 facilityClass) +{ + u16 r5 = FALSE; + s32 r4; + switch (battleType) + { + case 0: + case 2: + for (r4 = 0; r4 < NELEMS(gUnknown_8479ED8); r4++) + { + if (gUnknown_8479ED8[r4].unk1 == facilityClass) + break; + } + if (r4 != NELEMS(gUnknown_8479ED8)) + r5 = gUnknown_8479ED8[r4].unk2; + break; + case 1: + for (r4 = 0; r4 < NELEMS(gUnknown_847A024); r4++) + { + if (gUnknown_847A024[r4].unk2 == facilityClass) + break; + } + if (r4 != NELEMS(gUnknown_847A024)) + { + if (VarGet(VAR_0x4003)) + r5 = gUnknown_847A024[r4].unk4; + else + r5 = gUnknown_847A024[r4].unk3; + } + break; + } + gUnknown_20370DC = gUnknown_20370DA; + gUnknown_20370DA = r5; +} + +void sub_815E114(void) +{ + SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music); +} + +void sub_815E124(u8 taskId) +{ + if (sub_80D08F8() == TRUE) + { + gMain.savedCallback = sub_815E114; + sub_80563F0(); + SetMainCallback2(sub_800FD9C); + DestroyTask(taskId); + } +} + +void sub_815E160(void) +{ + gBattleTypeFlags = BATTLE_TYPE_TRAINER | BATTLE_TYPE_FACTORY; + if (gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_002 == 1) + gBattleTypeFlags |= BATTLE_TYPE_DOUBLE; + gTrainerBattleOpponent_A = 0; + sub_815E9FC(); + CreateTask(sub_815E124, 1); + PlayMapChosenOrBattleBGM(0); + sub_80D08B8(sub_8080060()); +} + +void sub_815E1C0(void) +{ + if (!gSpecialVar_0x8005) + gSpecialVar_Result = gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_002; +} + +void sub_815E1F0(void) +{ + gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk8++; +} + +void sub_815E218(void) +{ + u16 mapDataId = gMapHeader.mapDataId; + if (mapDataId - 0x12A == gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk8 && mapDataId - 0x129 <= gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_001) + gSpecialVar_Result = FALSE; + else + gSpecialVar_Result = TRUE; +} + +void sub_815E28C(void) +{ + gSaveBlock1Ptr->unkArrayIdx = gSpecialVar_0x8005; + if (gSaveBlock1Ptr->unkArrayIdx >= NELEMS(gSaveBlock1Ptr->unkArray)) + gSaveBlock1Ptr->unkArrayIdx = 0; + sub_815EC0C(); + if (!sub_815D834()) + gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_5 = TRUE; + else + gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_5 = FALSE; + gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk8 = 0; + SetVBlankCounter1Ptr(&gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk0); + gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk0 = 0; + gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_2 = FALSE; + gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_1 = FALSE; +} + +void sub_815E394(void) +{ + DisableVBlankCounter1(); + gSpecialVar_Result = 0; + if (gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_2) + gSpecialVar_Result++; + if (gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_0 && gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_1) + gSpecialVar_Result++; + gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_2 = TRUE; +} + +void sub_815E408(void) +{ + u16 itemId = gUnknown_847A2B4[gUnknown_203F458->unk_0004.unk_0008->unk_003]; + if (gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_0) + gSpecialVar_Result = 2; + else if (AddBagItem(itemId, 1) == 1) + { + sub_8099E90(itemId, gStringVar2); + gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_0 = TRUE; + gSpecialVar_Result = 0; + } + else + gSpecialVar_Result = 1; +} + +void sub_815E4B0(void) +{ + if (gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_1) + gSpecialVar_Result = 2; + else if (sub_815EDDC(&gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk4) > gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk0) + { + sub_815EDF4(&gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk4, gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk0); + gSpecialVar_Result = 0; + } + else + gSpecialVar_Result = 1; + gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_1 = TRUE; +} + +void sub_815E56C(void) +{ + if (!gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_2) + { + if (gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk0 >= 215999) + gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk0 = 215999; + else + SetVBlankCounter1Ptr(&gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk0); + } +} + +void sub_815E5C4(void) +{ + gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_3 = 1; +} |