Merge pull request #300 from DizzyEggg/decompile_battle_frontier_1

Decompile battle_dome
This commit is contained in:
Diegoisawesome 2018-08-29 14:13:39 -05:00 committed by GitHub
commit 8e5c72766c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
87 changed files with 7832 additions and 16082 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1867,7 +1867,7 @@ sub_819B484: @ 819B484
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x18]
ldr r1, =gUnknown_0203BC8C
ldr r1, =gFacilityTrainerMons
ldr r0, =gBattleFrontierMons
str r0, [r1]
ldrb r1, [r4]
@ -1948,7 +1948,7 @@ _0819B572:
ldr r0, [r2]
adds r0, r4
adds r0, 0x8
ldr r1, =gUnknown_0203BC8C
ldr r1, =gFacilityTrainerMons
ldr r2, [r1]
lsls r5, 4
adds r2, r5, r2
@ -1973,7 +1973,7 @@ _0819B5B8:
ldr r0, [r3]
adds r0, r4
adds r0, 0x8
ldr r5, =gUnknown_0203BC8C
ldr r5, =gFacilityTrainerMons
ldr r1, [r5]
adds r1, r7, r1
lsls r2, r6, 1
@ -2045,7 +2045,7 @@ sub_819B63C: @ 819B63C
add r0, sp, 0xC
movs r1, 0
strb r1, [r0]
ldr r2, =gUnknown_0203BC8C
ldr r2, =gFacilityTrainerMons
ldr r0, =gSlateportBattleTentMons
str r0, [r2]
ldr r0, =gSaveBlock2Ptr
@ -2089,7 +2089,7 @@ _0819B678:
adds r4, 0xC
adds r0, r4
adds r0, 0x8
ldr r3, =gUnknown_0203BC8C
ldr r3, =gFacilityTrainerMons
ldr r2, [r3]
mov r7, r8
lsls r5, r7, 4
@ -2114,7 +2114,7 @@ _0819B6D4:
ldr r0, [r1]
adds r0, r4
adds r0, 0x8
ldr r3, =gUnknown_0203BC8C
ldr r3, =gFacilityTrainerMons
ldr r2, [r3]
mov r3, r8
lsls r1, r3, 4
@ -2145,7 +2145,7 @@ _0819B6D4:
ldr r0, [r2]
adds r0, r4
adds r0, 0x8
ldr r3, =gUnknown_0203BC8C
ldr r3, =gFacilityTrainerMons
ldr r1, [r3]
adds r1, r5, r1
ldrb r2, [r1, 0xA]
@ -2935,7 +2935,7 @@ sub_819BD70: @ 819BD70
adds r0, r5, 0
mov r2, r8
movs r3, 0x1
bl sub_818D7D8
bl CreateMonPicSprite_HandleDeoxys
ldr r1, [r6]
movs r2, 0xA6
lsls r2, 2
@ -3053,7 +3053,7 @@ sub_819BE34: @ 819BE34
adds r0, r5, 0
mov r2, r9
movs r3, 0x1
bl sub_818D7D8
bl CreateMonPicSprite_HandleDeoxys
ldr r1, [r6]
movs r2, 0xA6
lsls r2, 2
@ -3166,7 +3166,7 @@ _0819BF48:
adds r0, r5, 0
adds r2, r6, 0
movs r3, 0x1
bl sub_818D7D8
bl CreateMonPicSprite_HandleDeoxys
mov r2, r9
ldr r1, [r2]
add r1, r8
@ -3846,19 +3846,19 @@ sub_819C568: @ 819C568
lsls r1, 2
adds r0, r1
ldrb r0, [r0]
bl sub_818D820
bl FreeAndDestroyMonPicSprite
ldr r0, [r4]
movs r1, 0xA6
lsls r1, 2
adds r0, r1
ldrb r0, [r0]
bl sub_818D820
bl FreeAndDestroyMonPicSprite
ldr r0, [r4]
movs r1, 0xA7
lsls r1, 2
adds r0, r1
ldrb r0, [r0]
bl sub_818D820
bl FreeAndDestroyMonPicSprite
ldr r0, =sub_819C2D4
movs r1, 0x1
bl CreateTask
@ -3936,7 +3936,7 @@ sub_819C5D0: @ 819C5D0
sub_819C634: @ 819C634
push {r4-r7,lr}
lsls r0, 16
ldr r2, =gUnknown_0203BC8C
ldr r2, =gFacilityTrainerMons
ldr r1, [r2]
lsrs r0, 12
adds r0, r1
@ -6709,7 +6709,7 @@ _0819DDA8:
bl ResetSpriteData
bl ResetTasks
bl FreeAllSpritePalettes
bl dp13_810BB8C
bl ResetAllPicSprites
ldr r0, =gFrontierFactorySelectMenu_Gfx
ldr r5, =gUnknown_0203CE40
ldr r1, [r5]
@ -9315,7 +9315,7 @@ sub_819F304: @ 819F304
adds r0, r5, 0
mov r1, r9
movs r3, 0x1
bl sub_818D7D8
bl CreateMonPicSprite_HandleDeoxys
ldr r1, [r6]
adds r1, 0x2C
strb r0, [r1]
@ -9370,7 +9370,7 @@ sub_819F3F8: @ 819F3F8
lsrs r5, 24
lsls r0, r4, 24
lsrs r0, 24
bl sub_818D820
bl FreeAndDestroyMonPicSprite
ldr r0, =sub_819F7B4
movs r1, 0x1
bl CreateTask
@ -9403,7 +9403,7 @@ sub_819F444: @ 819F444
adds r6, r1, 0
lsls r0, r4, 24
lsrs r0, 24
bl sub_818D820
bl FreeAndDestroyMonPicSprite
ldr r5, =gSprites
lsls r4, 16
lsrs r1, r4, 24
@ -9996,7 +9996,7 @@ _0819F908:
adds r0, r4, 0
adds r2, r5, 0
movs r3, 0x1
bl sub_818D7D8
bl CreateMonPicSprite_HandleDeoxys
ldr r2, =gUnknown_03001284
ldr r1, [r2]
adds r1, 0x2C
@ -14195,7 +14195,7 @@ sub_81A1B1C: @ 81A1B1C
thumb_func_start sub_81A1B28
sub_81A1B28: @ 81A1B28
ldr r1, =gUnknown_0203BC88
ldr r1, =gFacilityTrainers
ldr r0, =gBattleFrontierTrainers
str r0, [r1]
bx lr
@ -17391,7 +17391,7 @@ _081A370C:
ldr r0, =0x0000012b
cmp r3, r0
bhi _081A3738
ldr r2, =gUnknown_0203BC88
ldr r2, =gFacilityTrainers
movs r0, 0x34
adds r1, r3, 0
muls r1, r0
@ -17443,7 +17443,7 @@ _081A3794:
ldr r0, =0x0000012b
cmp r3, r0
bhi _081A37B8
ldr r2, =gUnknown_0203BC88
ldr r2, =gFacilityTrainers
movs r0, 0x34
adds r1, r3, 0
muls r1, r0
@ -17511,7 +17511,7 @@ _081A3844:
ldr r0, =0x0000012b
cmp r3, r0
bhi _081A3868
ldr r2, =gUnknown_0203BC88
ldr r2, =gFacilityTrainers
movs r0, 0x34
adds r1, r3, 0
muls r1, r0
@ -20046,10 +20046,10 @@ sub_81A4E04: @ 81A4E04
cmp r0, 0x1
bne _081A4E44
ldr r0, =0x000003fe
bl sub_81953A0
bl TrainerIdToDomeTournamentId
lsls r0, 16
lsrs r0, 16
bl sub_818FC78
bl GetTrainerMonCountInBits
adds r4, r0, 0
b _081A4E46
.pool
@ -20059,7 +20059,7 @@ _081A4E46:
bl ZeroEnemyPartyMons
movs r1, 0
str r1, [sp, 0x18]
bl sub_8165C40
bl GetFacilityEnemyMonLevel
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x1C]
@ -22329,7 +22329,7 @@ sub_81A61B0: @ 81A61B0
ldrh r0, [r1]
movs r1, 0x7
bl __udivsi3
ldr r2, =gUnknown_0203BC88
ldr r2, =gFacilityTrainers
ldr r1, =gBattleFrontierTrainers
str r1, [r2]
ldr r5, =0x00000cb2
@ -22413,7 +22413,7 @@ _081A627A:
lsls r0, 16
lsrs r0, 16
mov r9, r0
ldr r4, =gUnknown_0203BC8C
ldr r4, =gFacilityTrainerMons
ldr r2, [r4]
lsls r1, r0, 4
adds r0, r1, r2
@ -22458,7 +22458,7 @@ _081A62D0:
cmp r0, r5
beq _081A6302
adds r6, r4, 0
ldr r3, =gUnknown_0203BC8C
ldr r3, =gFacilityTrainerMons
mov r12, r3
mov r5, r8
ldr r3, [sp, 0x14]
@ -22493,7 +22493,7 @@ _081A631C:
ldrh r1, [r3]
cmp r1, 0
beq _081A6336
ldr r6, =gUnknown_0203BC8C
ldr r6, =gFacilityTrainerMons
ldr r0, [r6]
ldr r6, [sp, 0x24]
adds r0, r6, r0
@ -22512,7 +22512,7 @@ _081A633E:
cmp r2, r4
bne _081A636E
lsls r4, r7, 1
ldr r0, =gUnknown_0203BC8C
ldr r0, =gFacilityTrainerMons
ldr r1, [r0]
add r1, r8
ldrh r0, [r1]
@ -22573,12 +22573,12 @@ sub_81A63CC: @ 81A63CC
ands r0, r1
cmp r0, 0x2
beq _081A63FC
ldr r1, =gUnknown_0203BC8C
ldr r1, =gFacilityTrainerMons
ldr r0, =gBattleFrontierMons
b _081A6400
.pool
_081A63FC:
ldr r1, =gUnknown_0203BC8C
ldr r1, =gFacilityTrainerMons
ldr r0, =gSlateportBattleTentMons
_081A6400:
str r0, [r1]
@ -22637,7 +22637,7 @@ _081A6408:
adds r1, r2
strb r0, [r1]
ldrh r1, [r6]
ldr r0, =gUnknown_0203BC8C
ldr r0, =gFacilityTrainerMons
ldr r0, [r0]
lsls r1, 4
adds r1, r0
@ -22679,7 +22679,7 @@ sub_81A64C4: @ 81A64C4
ands r0, r1
cmp r0, 0x2
bne _081A6500
ldr r1, =gUnknown_0203BC8C
ldr r1, =gFacilityTrainerMons
ldr r0, =gSlateportBattleTentMons
str r0, [r1]
movs r2, 0x1E
@ -22687,7 +22687,7 @@ sub_81A64C4: @ 81A64C4
b _081A6518
.pool
_081A6500:
ldr r1, =gUnknown_0203BC8C
ldr r1, =gFacilityTrainerMons
ldr r0, =gBattleFrontierMons
str r0, [r1]
ldrb r1, [r2]
@ -22712,7 +22712,7 @@ _081A6522:
mov r1, sp
adds r1, 0x12
str r1, [sp, 0x1C]
ldr r2, =gUnknown_0203BC8C
ldr r2, =gFacilityTrainerMons
mov r9, r2
_081A6534:
ldr r4, =gSaveBlock2Ptr
@ -22879,7 +22879,7 @@ _081A666C:
_081A667A:
movs r2, 0
mov r8, r2
ldr r4, =gUnknown_0203BC8C
ldr r4, =gFacilityTrainerMons
mov r9, r4
_081A6682:
ldr r5, =gSaveBlock2Ptr
@ -23050,7 +23050,7 @@ sub_81A67EC: @ 81A67EC
mov r5, r8
push {r5-r7}
sub sp, 0x4C
ldr r1, =gUnknown_0203BC88
ldr r1, =gFacilityTrainers
ldr r0, =gBattleFrontierTrainers
str r0, [r1]
mov r0, sp
@ -23113,7 +23113,7 @@ _081A681A:
bne _081A6878
movs r2, 0x1
_081A6878:
ldr r1, =gUnknown_0203BC8C
ldr r1, =gFacilityTrainerMons
ldr r0, =gBattleFrontierMons
str r0, [r1]
mov r1, r9
@ -23166,7 +23166,7 @@ _081A68F2:
bl sub_81A6EF0
lsls r0, 16
lsrs r7, r0, 16
ldr r0, =gUnknown_0203BC8C
ldr r0, =gFacilityTrainerMons
ldr r1, [r0]
lsls r2, r7, 4
adds r4, r2, r1
@ -23226,7 +23226,7 @@ _081A6964:
ldrh r4, [r5]
cmp r4, 0
beq _081A6994
ldr r1, =gUnknown_0203BC8C
ldr r1, =gFacilityTrainerMons
ldr r0, [r1]
mov r2, r9
adds r1, r2, r0
@ -23262,7 +23262,7 @@ _081A699C:
lsls r0, 4
adds r1, r0
strh r7, [r1]
ldr r2, =gUnknown_0203BC8C
ldr r2, =gFacilityTrainerMons
ldr r1, [r2]
add r1, r9
ldrh r0, [r1]
@ -23307,7 +23307,7 @@ sub_81A6A08: @ 81A6A08
mov r7, r8
push {r7}
sub sp, 0x18
ldr r1, =gUnknown_0203BC8C
ldr r1, =gFacilityTrainerMons
ldr r0, =gBattleFrontierMons
str r0, [r1]
movs r4, 0
@ -23326,7 +23326,7 @@ _081A6A1E:
movs r4, 0
ldr r0, =gUnknown_03006298
mov r8, r0
ldr r0, =gUnknown_0203BC8C
ldr r0, =gFacilityTrainerMons
ldr r6, [r0]
ldr r1, =gBaseStats
mov r12, r1
@ -23423,7 +23423,7 @@ sub_81A6AEC: @ 81A6AEC
push {r4-r7,lr}
sub sp, 0x8
movs r7, 0
ldr r1, =gUnknown_0203BC8C
ldr r1, =gFacilityTrainerMons
ldr r0, =gBattleFrontierMons
str r0, [r1]
movs r4, 0
@ -23445,7 +23445,7 @@ _081A6B0E:
ldrh r6, [r0]
movs r5, 0
_081A6B18:
ldr r0, =gUnknown_0203BC8C
ldr r0, =gFacilityTrainerMons
ldr r1, [r0]
lsls r0, r6, 4
adds r0, r1
@ -23590,12 +23590,12 @@ sub_81A6C1C: @ 81A6C1C
ands r0, r1
cmp r0, 0x2
beq _081A6C48
ldr r1, =gUnknown_0203BC8C
ldr r1, =gFacilityTrainerMons
ldr r0, =gBattleFrontierMons
b _081A6C4C
.pool
_081A6C48:
ldr r1, =gUnknown_0203BC8C
ldr r1, =gFacilityTrainerMons
ldr r0, =gSlateportBattleTentMons
_081A6C4C:
str r0, [r1]
@ -23615,7 +23615,7 @@ _081A6C50:
lsls r1, 4
adds r2, r1
ldrh r2, [r2]
ldr r1, =gUnknown_0203BC8C
ldr r1, =gFacilityTrainerMons
ldr r1, [r1]
lsls r2, 4
adds r2, r1
@ -23702,7 +23702,7 @@ sub_81A6CD0: @ 81A6CD0
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x24]
bl sub_8165C40
bl GetFacilityEnemyMonLevel
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x20]
@ -23727,7 +23727,7 @@ _081A6D4C:
bl sub_81A6EF0
lsls r0, 16
lsrs r5, r0, 16
ldr r7, =gUnknown_0203BC8C
ldr r7, =gFacilityTrainerMons
ldr r1, [r7]
lsls r0, r5, 4
adds r0, r1
@ -23775,7 +23775,7 @@ _081A6DA8:
cmp r4, r9
bge _081A6DDC
add r2, sp, 0xC
ldr r7, =gUnknown_0203BC8C
ldr r7, =gFacilityTrainerMons
ldr r0, [r7]
lsls r1, r5, 4
adds r0, r1, r0
@ -23784,7 +23784,7 @@ _081A6DA8:
ldrh r0, [r0]
cmp r2, r0
beq _081A6DDC
ldr r6, =gUnknown_0203BC8C
ldr r6, =gFacilityTrainerMons
adds r3, r7, 0
add r2, sp, 0xC
_081A6DC8:
@ -23805,7 +23805,7 @@ _081A6DDC:
cmp r4, r9
bge _081A6E0C
ldr r7, =gBattleFrontierHeldItems
ldr r6, =gUnknown_0203BC8C
ldr r6, =gFacilityTrainerMons
add r2, sp, 0x14
lsls r3, r5, 4
_081A6DEE:
@ -23833,7 +23833,7 @@ _081A6E0C:
mov r1, sp
adds r1, r2
adds r1, 0xC
ldr r3, =gUnknown_0203BC8C
ldr r3, =gFacilityTrainerMons
ldr r4, [r3]
lsls r5, 4
mov r8, r5
@ -23875,7 +23875,7 @@ _081A6E0C:
add r0, r9
mov r8, r0
_081A6E6E:
ldr r1, =gUnknown_0203BC8C
ldr r1, =gFacilityTrainerMons
ldr r0, [r1]
adds r0, r7, r0
lsls r1, r4, 1
@ -23898,7 +23898,7 @@ _081A6E6E:
movs r1, 0x20
mov r2, r10
bl SetMonData
ldr r2, =gUnknown_0203BC8C
ldr r2, =gFacilityTrainerMons
ldr r0, [r2]
adds r0, r7, r0
ldrb r2, [r0, 0xA]
@ -26455,7 +26455,7 @@ _081A831A:
bne _081A82D2
ldr r5, =gTrainerBattleOpponent_A
strh r4, [r5]
ldr r1, =gUnknown_0203BC88
ldr r1, =gFacilityTrainers
ldr r0, =gBattleFrontierTrainers
str r0, [r1]
ldrh r0, [r5]
@ -26500,7 +26500,7 @@ sub_81A8374: @ 81A8374
bl __udivsi3
lsls r0, 16
lsrs r5, r0, 16
ldr r1, =gUnknown_0203BC88
ldr r1, =gFacilityTrainers
ldr r0, =gBattleFrontierTrainers
str r0, [r1]
lsls r7, r5, 24
@ -26667,7 +26667,7 @@ sub_81A84EC: @ 81A84EC
ldr r0, =0x0000012b
cmp r1, r0
bhi _081A8542
ldr r2, =gUnknown_0203BC88
ldr r2, =gFacilityTrainers
movs r0, 0x34
muls r1, r0
ldr r0, [r2]
@ -26684,7 +26684,7 @@ _081A8524:
ldr r0, =0x0000012b
cmp r1, r0
bhi _081A8542
ldr r2, =gUnknown_0203BC88
ldr r2, =gFacilityTrainers
movs r0, 0x34
muls r1, r0
ldr r0, [r2]
@ -28498,7 +28498,7 @@ _081A940A:
thumb_func_start sub_81A9414
sub_81A9414: @ 81A9414
ldr r1, =gUnknown_0203BC88
ldr r1, =gFacilityTrainers
ldr r0, =gBattleFrontierTrainers
str r0, [r1]
bx lr
@ -28534,7 +28534,7 @@ sub_81A9424: @ 81A9424
lsrs r5, r0, 16
movs r6, 0
ldr r2, =gUnknown_08613C1C
ldr r0, =gUnknown_0203BC88
ldr r0, =gFacilityTrainers
ldr r1, [r0]
movs r0, 0x34
muls r0, r5
@ -28554,7 +28554,7 @@ _081A9488:
ldr r4, =gUnknown_08613C1C
lsls r3, r6, 1
adds r2, r3, r4
ldr r0, =gUnknown_0203BC88
ldr r0, =gFacilityTrainers
ldr r1, [r0]
movs r0, 0x34
muls r0, r5
@ -29517,7 +29517,7 @@ _081A9C56:
bl SetMonData
cmp r5, 0
beq _081A9CD4
bl sub_8165C40
bl GetFacilityEnemyMonLevel
lsls r0, 24
lsrs r5, r0, 24
ldr r1, [sp, 0x10]
@ -29795,7 +29795,7 @@ sub_81A9EDC: @ 81A9EDC
push {lr}
lsls r0, 16
lsrs r0, 16
ldr r2, =gUnknown_0203BC88
ldr r2, =gFacilityTrainers
movs r1, 0x34
muls r1, r0
ldr r0, [r2]
@ -29812,7 +29812,7 @@ sub_81A9EFC: @ 81A9EFC
push {lr}
lsls r0, 16
lsrs r0, 16
ldr r2, =gUnknown_0203BC88
ldr r2, =gFacilityTrainers
movs r1, 0x34
muls r1, r0
ldr r0, [r2]
@ -29829,7 +29829,7 @@ sub_81A9F1C: @ 81A9F1C
push {lr}
lsls r0, 16
lsrs r0, 16
ldr r2, =gUnknown_0203BC88
ldr r2, =gFacilityTrainers
movs r1, 0x34
muls r1, r0
ldr r0, [r2]
@ -29848,7 +29848,7 @@ GetTrainerEncounterMusicIdInBattlePyramind: @ 81A9F3C
lsrs r0, 16
movs r4, 0
ldr r3, =gFacilityClassToTrainerClass
ldr r1, =gUnknown_0203BC88
ldr r1, =gFacilityTrainers
ldr r2, [r1]
movs r1, 0x34
muls r0, r1

View File

@ -6,194 +6,6 @@
.text
thumb_func_start sub_81B9EC0
sub_81B9EC0: @ 81B9EC0
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x3C
ldr r1, =gUnknown_0203BC88
ldr r0, =gSlateportBattleTentTrainers
str r0, [r1]
add r0, sp, 0xC
mov r9, r0
mov r1, sp
adds r1, 0x18
str r1, [sp, 0x2C]
ldr r5, =gUnknown_0203BC8C
ldr r4, =gSlateportBattleTentMons
movs r2, 0
adds r3, r1, 0
mov r1, r9
mov r0, sp
movs r6, 0x5
mov r8, r6
_081B9EEC:
strh r2, [r0]
strh r2, [r1]
strh r2, [r3]
adds r3, 0x2
adds r1, 0x2
adds r0, 0x2
movs r7, 0x1
negs r7, r7
add r8, r7
mov r6, r8
cmp r6, 0
bge _081B9EEC
str r4, [r5]
movs r7, 0
mov r10, r7
movs r0, 0
mov r8, r0
ldr r1, [sp, 0x2C]
str r1, [sp, 0x30]
mov r2, sp
str r2, [sp, 0x34]
lsls r6, r0, 1
str r6, [sp, 0x24]
add r6, r9
str r6, [sp, 0x28]
_081B9F1E:
bl Random
lsls r0, 16
lsrs r0, 16
movs r1, 0x46
bl __umodsi3
lsls r0, 16
lsrs r5, r0, 16
movs r2, 0
mov r7, r8
adds r6, r2, r7
cmp r2, r6
bge _081B9F7C
ldr r1, [sp, 0x28]
ldrh r0, [r1]
cmp r0, r5
beq _081B9F7C
ldr r0, =gUnknown_0203BC8C
ldr r1, [r0]
lsls r0, r5, 4
adds r4, r0, r1
ldrh r7, [r4]
mov r12, r7
lsls r3, r2, 1
ldr r1, [sp, 0x24]
add r1, sp
str r6, [sp, 0x38]
_081B9F56:
ldrh r0, [r1]
cmp r0, r12
bne _081B9F66
mov r0, r10
cmp r0, 0
bne _081B9F7C
ldrh r7, [r4]
mov r10, r7
_081B9F66:
adds r3, 0x2
adds r1, 0x2
adds r2, 0x1
ldr r0, [sp, 0x38]
cmp r2, r0
bge _081B9F7C
mov r7, r9
adds r0, r7, r3
ldrh r0, [r0]
cmp r0, r5
bne _081B9F56
_081B9F7C:
cmp r2, r6
bne _081BA01C
movs r2, 0
cmp r2, r6
bge _081B9FD4
ldr r0, =gBattleFrontierHeldItems
mov r12, r0
ldr r7, =gUnknown_0203BC8C
ldr r1, [sp, 0x24]
ldr r0, [sp, 0x2C]
adds r4, r1, r0
_081B9F92:
ldrh r3, [r4]
cmp r3, 0
beq _081B9FCC
ldr r1, [r7]
lsls r0, r5, 4
adds r1, r0, r1
ldrb r0, [r1, 0xA]
lsls r0, 1
add r0, r12
ldrh r0, [r0]
cmp r3, r0
bne _081B9FCC
ldrh r0, [r1]
cmp r0, r10
bne _081B9FD4
movs r1, 0
mov r10, r1
b _081B9FD4
.pool
_081B9FCC:
adds r4, 0x2
adds r2, 0x1
cmp r2, r6
blt _081B9F92
_081B9FD4:
cmp r2, r6
bne _081BA01C
ldr r0, =gSaveBlock2Ptr
ldr r1, [r0]
mov r2, r8
lsls r3, r2, 1
adds r0, r3, r2
lsls r0, 2
adds r1, r0
movs r6, 0xE7
lsls r6, 4
adds r1, r6
strh r5, [r1]
ldr r0, =gUnknown_0203BC8C
ldr r0, [r0]
lsls r1, r5, 4
adds r1, r0
ldrh r0, [r1]
ldr r7, [sp, 0x34]
strh r0, [r7]
ldr r2, =gBattleFrontierHeldItems
ldrb r0, [r1, 0xA]
lsls r0, 1
adds r0, r2
ldrh r0, [r0]
ldr r1, [sp, 0x30]
strh r0, [r1]
add r3, r9
strh r5, [r3]
adds r1, 0x2
str r1, [sp, 0x30]
adds r2, r7, 0
adds r2, 0x2
str r2, [sp, 0x34]
movs r6, 0x1
add r8, r6
_081BA01C:
mov r7, r8
cmp r7, 0x6
beq _081BA024
b _081B9F1E
_081BA024:
add sp, 0x3C
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81B9EC0
thumb_func_start sub_81BA040
sub_81BA040: @ 81BA040
@ -205,10 +17,10 @@ sub_81BA040: @ 81BA040
sub sp, 0x10
movs r0, 0
mov r10, r0
ldr r1, =gUnknown_0203BC88
ldr r1, =gFacilityTrainers
ldr r0, =gSlateportBattleTentTrainers
str r0, [r1]
ldr r1, =gUnknown_0203BC8C
ldr r1, =gFacilityTrainerMons
ldr r0, =gSlateportBattleTentMons
str r0, [r1]
ldr r7, =gSaveBlock2Ptr
@ -261,7 +73,7 @@ _081BA0AA:
ldr r2, =gTrainerBattleOpponent_A
strh r3, [r2]
ldrh r3, [r2]
ldr r4, =gUnknown_0203BC88
ldr r4, =gFacilityTrainers
ldr r1, [r4]
movs r0, 0x34
muls r0, r3
@ -324,7 +136,7 @@ _081BA13E:
strh r0, [r7]
movs r2, 0
ldrh r0, [r7]
ldr r4, =gUnknown_0203BC8C
ldr r4, =gFacilityTrainerMons
ldr r3, [r4]
lsls r0, 4
adds r0, r3
@ -356,7 +168,7 @@ _081BA180:
cmp r0, r6
beq _081BA1B0
ldr r6, =gUnknown_03001298
ldr r3, =gUnknown_0203BC8C
ldr r3, =gFacilityTrainerMons
mov r2, sp
_081BA198:
adds r2, 0x2
@ -386,7 +198,7 @@ _081BA1C0:
beq _081BA1DE
ldr r1, =gUnknown_03001298
ldrh r0, [r1]
ldr r6, =gUnknown_0203BC8C
ldr r6, =gFacilityTrainerMons
ldr r1, [r6]
lsls r0, 4
adds r0, r1
@ -406,7 +218,7 @@ _081BA1E6:
bne _081BA220
lsls r2, r5, 1
ldrh r0, [r7]
ldr r1, =gUnknown_0203BC8C
ldr r1, =gFacilityTrainerMons
ldr r4, [r1]
lsls r0, 4
adds r0, r4

View File

@ -5,261 +5,8 @@
.text
thumb_func_start sub_8161F74
sub_8161F74: @ 8161F74
push {lr}
ldr r1, =gUnknown_085DF96C
ldr r0, =gSpecialVar_0x8004
ldrh r0, [r0]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
bl _call_via_r0
pop {r0}
bx r0
.pool
thumb_func_end sub_8161F74
thumb_func_start sub_8161F94
sub_8161F94: @ 8161F94
push {r4-r7,lr}
ldr r4, =gSaveBlock2Ptr
ldr r0, [r4]
ldr r1, =0x00000ca9
adds r0, r1
ldrb r0, [r0]
lsls r0, 30
lsrs r5, r0, 30
ldr r0, =0x000040ce
bl VarGet
lsls r0, 16
lsrs r6, r0, 16
ldr r0, [r4]
ldr r2, =0x00000ca8
adds r0, r2
movs r7, 0
movs r1, 0x1
strb r1, [r0]
ldr r1, [r4]
adds r2, 0xA
adds r0, r1, r2
strh r7, [r0]
ldr r0, =0x00000ca9
adds r1, r0
ldrb r2, [r1]
movs r0, 0x5
negs r0, r0
ands r0, r2
strb r0, [r1]
ldr r1, [r4]
ldr r2, =0x00000ca9
adds r1, r2
ldrb r2, [r1]
movs r0, 0x9
negs r0, r0
ands r0, r2
strb r0, [r1]
bl sub_81A3ACC
ldr r4, [r4]
ldr r0, =0x00000cdc
adds r3, r4, r0
ldr r2, =gUnknown_085DF9AC
lsls r1, r5, 2
lsls r0, r6, 3
adds r1, r0
adds r1, r2
ldr r0, [r3]
ldr r1, [r1]
ands r0, r1
cmp r0, 0
bne _0816200E
lsls r0, r5, 1
lsls r1, r6, 2
adds r0, r1
movs r2, 0xCE
lsls r2, 4
adds r1, r4, r2
adds r1, r0
strh r7, [r1]
_0816200E:
bl sub_8164ED8
ldr r0, =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0x4
ldrsb r1, [r0, r1]
movs r2, 0x5
ldrsb r2, [r0, r2]
movs r3, 0x1
negs r3, r3
movs r0, 0
bl saved_warp2_set
ldr r0, =gTrainerBattleOpponent_A
strh r7, [r0]
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8161F94
thumb_func_start sub_8162054
sub_8162054: @ 8162054
push {r4-r6,lr}
ldr r5, =gSaveBlock2Ptr
ldr r0, [r5]
ldr r4, =0x00000ca9
adds r0, r4
ldrb r0, [r0]
lsls r0, 30
lsrs r6, r0, 30
ldr r0, =0x000040ce
bl VarGet
lsls r0, 16
lsrs r1, r0, 16
ldr r0, =gSpecialVar_0x8005
ldrh r0, [r0]
cmp r0, 0x1
beq _08162094
cmp r0, 0x1
ble _081620E8
cmp r0, 0x2
beq _081620A8
cmp r0, 0x3
beq _081620D8
b _081620E8
.pool
_08162094:
adds r0, r6, 0
lsls r1, 24
lsrs r1, 24
bl sub_8164FCC
ldr r1, =gSpecialVar_Result
strh r0, [r1]
b _081620E8
.pool
_081620A8:
ldr r4, =gSpecialVar_Result
ldr r2, [r5]
ldr r0, =0x00000cdc
adds r2, r0
ldr r3, =gUnknown_085DF9AC
lsls r0, r6, 2
lsls r1, 3
adds r0, r1
adds r0, r3
ldr r1, [r2]
ldr r0, [r0]
ands r1, r0
negs r0, r1
orrs r0, r1
lsrs r0, 31
strh r0, [r4]
b _081620E8
.pool
_081620D8:
ldr r1, [r5]
adds r0, r1, r4
ldrb r0, [r0]
lsls r0, 30
lsrs r0, 30
ldr r2, =0x00000d07
adds r1, r2
strb r0, [r1]
_081620E8:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8162054
thumb_func_start sub_81620F4
sub_81620F4: @ 81620F4
push {r4-r7,lr}
ldr r6, =gSaveBlock2Ptr
ldr r0, [r6]
ldr r7, =0x00000ca9
adds r0, r7
ldrb r0, [r0]
lsls r0, 30
lsrs r5, r0, 30
ldr r0, =0x000040ce
bl VarGet
lsls r0, 16
lsrs r4, r0, 16
ldr r0, =gSpecialVar_0x8005
ldrh r0, [r0]
cmp r0, 0x1
beq _08162134
cmp r0, 0x1
ble _081621B4
cmp r0, 0x2
beq _08162150
cmp r0, 0x3
beq _081621A4
b _081621B4
.pool
_08162134:
ldr r2, [r6]
lsls r0, r5, 1
lsls r1, r4, 2
adds r0, r1
movs r1, 0xCE
lsls r1, 4
adds r2, r1
adds r2, r0
ldr r0, =gSpecialVar_0x8006
ldrh r0, [r0]
strh r0, [r2]
b _081621B4
.pool
_08162150:
ldr r0, =gSpecialVar_0x8006
ldrh r0, [r0]
cmp r0, 0
beq _08162180
ldr r2, [r6]
ldr r0, =0x00000cdc
adds r2, r0
ldr r3, =gUnknown_085DF9AC
lsls r1, r5, 2
lsls r0, r4, 3
adds r1, r0
adds r1, r3
ldr r0, [r2]
ldr r1, [r1]
orrs r0, r1
str r0, [r2]
b _081621B4
.pool
_08162180:
ldr r2, [r6]
ldr r1, =0x00000cdc
adds r2, r1
ldr r3, =gUnknown_085DF9CC
lsls r1, r5, 2
lsls r0, r4, 3
adds r1, r0
adds r1, r3
ldr r0, [r2]
ldr r1, [r1]
ands r0, r1
str r0, [r2]
b _081621B4
.pool
_081621A4:
ldr r1, [r6]
adds r0, r1, r7
ldrb r0, [r0]
lsls r0, 30
lsrs r0, 30
ldr r2, =0x00000d07
adds r1, r2
strb r0, [r1]
_081621B4:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81620F4
thumb_func_start sub_81621C0
sub_81621C0: @ 81621C0
@ -391,7 +138,7 @@ _081622B2:
adds r4, r1, r0
mov r0, r10
str r2, [sp, 0x38]
bl BattleFrontierGetOpponentLvl
bl GetFrontierEnemyMonLevel
ldrb r1, [r4]
lsls r0, 24
lsrs r0, 24
@ -551,7 +298,7 @@ _08162414:
bl __udivsi3
lsls r0, 16
lsrs r5, r0, 16
bl sub_8165C40
bl GetFacilityEnemyMonLevel
subs r4, 0x2
cmp r4, 0x1
bhi _08162488
@ -784,7 +531,7 @@ sub_8162614: @ 8162614
adds r6, r4, 0
lsls r1, 24
lsrs r5, r1, 24
bl sub_8165C40
bl GetFacilityEnemyMonLevel
movs r0, 0xFA
lsls r0, 1
cmp r4, r0
@ -806,7 +553,7 @@ _08162650:
ldr r0, =0x0000012b
cmp r4, r0
bhi _0816266C
ldr r0, =gUnknown_0203BC88
ldr r0, =gFacilityTrainers
ldr r1, [r0]
movs r0, 0x34
muls r0, r4
@ -962,7 +709,7 @@ sub_81627A4: @ 81627A4
lsls r0, 16
lsrs r4, r0, 16
adds r5, r4, 0
bl sub_8165C40
bl GetFacilityEnemyMonLevel
movs r0, 0xFA
lsls r0, 1
cmp r4, r0
@ -977,7 +724,7 @@ _081627CC:
ldr r0, =0x0000012b
cmp r4, r0
bhi _081627E8
ldr r0, =gUnknown_0203BC88
ldr r0, =gFacilityTrainers
ldr r1, [r0]
movs r0, 0x34
muls r0, r4
@ -1335,7 +1082,7 @@ GetFrontierTrainerFrontSpriteId: @ 8162AA0
lsls r0, 16
lsrs r4, r0, 16
adds r5, r4, 0
bl sub_8165C40
bl GetFacilityEnemyMonLevel
movs r0, 0xFA
lsls r0, 1
cmp r4, r0
@ -1363,7 +1110,7 @@ _08162AE4:
cmp r4, r0
bhi _08162B08
ldr r2, =gFacilityClassToPicIndex
ldr r0, =gUnknown_0203BC88
ldr r0, =gFacilityTrainers
ldr r1, [r0]
movs r0, 0x34
muls r0, r4
@ -1462,7 +1209,7 @@ GetFrontierOpponentClass: @ 8162BD8
lsls r0, 16
lsrs r4, r0, 16
adds r5, r4, 0
bl sub_8165C40
bl GetFacilityEnemyMonLevel
movs r0, 0xFA
lsls r0, 1
cmp r4, r0
@ -1500,7 +1247,7 @@ _08162C38:
cmp r4, r0
bhi _08162C60
ldr r2, =gFacilityClassToTrainerClass
ldr r0, =gUnknown_0203BC88
ldr r0, =gFacilityTrainers
ldr r1, [r0]
movs r0, 0x34
muls r0, r4
@ -1602,7 +1349,7 @@ sub_8162D34: @ 8162D34
lsls r0, 16
lsrs r4, r0, 16
adds r5, r4, 0
bl sub_8165C40
bl GetFacilityEnemyMonLevel
movs r0, 0xFA
lsls r0, 1
cmp r4, r0
@ -1617,7 +1364,7 @@ _08162D5C:
ldr r0, =0x0000012b
cmp r4, r0
bhi _08162D78
ldr r0, =gUnknown_0203BC88
ldr r0, =gFacilityTrainers
ldr r1, [r0]
movs r0, 0x34
muls r0, r4
@ -1704,7 +1451,7 @@ GetFrontierTrainerName: @ 8162E20
lsls r1, 16
lsrs r5, r1, 16
movs r4, 0
bl sub_8165C40
bl GetFacilityEnemyMonLevel
movs r0, 0xFA
lsls r0, 1
cmp r5, r0
@ -1751,7 +1498,7 @@ _08162E88:
ldr r0, =0x0000012b
cmp r5, r0
bhi _08162EB4
ldr r0, =gUnknown_0203BC88
ldr r0, =gFacilityTrainers
ldr r1, [r0]
movs r0, 0x34
muls r0, r5
@ -1854,7 +1601,7 @@ sub_8162F68: @ 8162F68
lsls r0, 16
lsrs r4, r0, 16
adds r5, r4, 0
bl sub_8165C40
bl GetFacilityEnemyMonLevel
movs r0, 0xFA
lsls r0, 1
cmp r4, r0
@ -1878,7 +1625,7 @@ _08162FA4:
ldr r0, =0x0000012b
cmp r4, r0
bhi _08162FC0
ldr r0, =gUnknown_0203BC88
ldr r0, =gFacilityTrainers
ldr r1, [r0]
movs r0, 0x34
muls r0, r4
@ -2025,7 +1772,7 @@ sub_81630C4: @ 81630C4
add r4, sp, 0x14
movs r0, 0xFF
strb r0, [r4]
bl sub_8165C40
bl GetFacilityEnemyMonLevel
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x20]
@ -2039,7 +1786,7 @@ sub_81630C4: @ 81630C4
str r0, [sp, 0x24]
ldr r0, =gTrainerBattleOpponent_A
ldrh r2, [r0]
ldr r0, =gUnknown_0203BC88
ldr r0, =gFacilityTrainers
ldr r1, [r0]
movs r0, 0x34
muls r0, r2
@ -2258,7 +2005,7 @@ _081632D2:
movs r1, 0xB
movs r2, 0
bl GetMonData
ldr r1, =gUnknown_0203BC8C
ldr r1, =gFacilityTrainerMons
ldr r2, [r1]
lsls r1, r4, 4
adds r1, r2
@ -2291,7 +2038,7 @@ _08163308:
movs r1, 0xC
movs r2, 0
bl GetMonData
ldr r1, =gUnknown_0203BC8C
ldr r1, =gFacilityTrainerMons
ldr r2, [r1]
lsls r1, r4, 4
adds r1, r2
@ -2338,7 +2085,7 @@ _08163368:
muls r0, r1
ldr r2, =gEnemyParty
adds r0, r2
ldr r5, =gUnknown_0203BC8C
ldr r5, =gFacilityTrainerMons
ldr r2, [r5]
lsls r4, 4
adds r2, r4, r2
@ -2405,7 +2152,7 @@ _081633EC:
movs r1, 0x20
add r2, sp, 0x14
bl SetMonData
ldr r0, =gUnknown_0203BC8C
ldr r0, =gFacilityTrainerMons
ldr r0, [r0]
add r0, r9
ldrb r2, [r0, 0xA]
@ -2545,16 +2292,16 @@ _081634D4:
.pool
thumb_func_end sub_8163444
thumb_func_start sub_8163524
sub_8163524: @ 8163524
thumb_func_start RandomizeFacilityTrainerMonId
RandomizeFacilityTrainerMonId: @ 8163524
push {r4-r6,lr}
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
bl sub_8165C40
bl GetFacilityEnemyMonLevel
lsls r0, 24
lsrs r6, r0, 24
ldr r0, =gUnknown_0203BC88
ldr r0, =gFacilityTrainers
ldr r1, [r0]
movs r0, 0x34
muls r0, r4
@ -2598,7 +2345,7 @@ _08163580:
pop {r1}
bx r1
.pool
thumb_func_end sub_8163524
thumb_func_end RandomizeFacilityTrainerMonId
thumb_func_start sub_8163590
sub_8163590: @ 8163590
@ -2728,7 +2475,7 @@ _081636A4:
movs r0, 0x1F
_081636A6:
str r0, [sp, 0x18]
bl sub_8165C40
bl GetFacilityEnemyMonLevel
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x14]
@ -2759,7 +2506,7 @@ _081636CE:
muls r6, r0
ldr r1, =gEnemyParty
adds r0, r6, r1
ldr r3, =gUnknown_0203BC8C
ldr r3, =gFacilityTrainerMons
ldr r2, [r3]
mov r1, r9
lsls r4, r1, 4
@ -2784,7 +2531,7 @@ _081636CE:
mov r10, r7
adds r7, r4, 0
_08163718:
ldr r0, =gUnknown_0203BC8C
ldr r0, =gFacilityTrainerMons
ldr r1, [r0]
mov r2, r9
lsls r0, r2, 4
@ -2813,7 +2560,7 @@ _08163718:
movs r1, 0x20
add r2, sp, 0xC
bl SetMonData
ldr r1, =gUnknown_0203BC8C
ldr r1, =gFacilityTrainerMons
ldr r0, [r1]
adds r0, r7, r0
ldrb r2, [r0, 0xA]
@ -2881,7 +2628,7 @@ _081637D0:
muls r6, r7
ldr r1, =gEnemyParty
adds r0, r6, r1
ldr r7, =gUnknown_0203BC8C
ldr r7, =gFacilityTrainerMons
ldr r2, [r7]
lsls r4, 4
adds r2, r4, r2
@ -2905,7 +2652,7 @@ _081637D0:
mov r8, r4
mov r5, r8
_08163818:
ldr r1, =gUnknown_0203BC8C
ldr r1, =gFacilityTrainerMons
ldr r0, [r1]
adds r0, r5, r0
lsls r4, r7, 1
@ -2916,7 +2663,7 @@ _08163818:
adds r0, r6, r2
adds r2, r7, 0
bl sub_81A7024
ldr r1, =gUnknown_0203BC8C
ldr r1, =gFacilityTrainerMons
ldr r0, [r1]
adds r0, r5, r0
adds r0, 0x2
@ -2942,7 +2689,7 @@ _08163846:
movs r1, 0x20
add r2, sp, 0xC
bl SetMonData
ldr r1, =gUnknown_0203BC8C
ldr r1, =gFacilityTrainerMons
ldr r0, [r1]
add r0, r8
ldrb r2, [r0, 0xA]
@ -3029,7 +2776,7 @@ _0816390A:
thumb_func_start sub_8163914
sub_8163914: @ 8163914
push {lr}
bl sub_8165C40
bl GetFacilityEnemyMonLevel
ldr r0, =gSpecialVar_0x8005
ldrh r0, [r0]
cmp r0, 0
@ -3054,7 +2801,7 @@ _08163950:
ldr r0, =0x0000012b
cmp r3, r0
bhi _08163974
ldr r2, =gUnknown_0203BC88
ldr r2, =gFacilityTrainers
movs r0, 0x34
adds r1, r3, 0
muls r1, r0
@ -3979,7 +3726,7 @@ _081641E6:
lsls r0, r1, 24
lsrs r0, 24
str r2, [sp, 0x18]
bl BattleFrontierGetOpponentLvl
bl GetFrontierEnemyMonLevel
ldrb r1, [r4]
lsls r0, 24
lsrs r0, 24
@ -4091,7 +3838,7 @@ sub_81642A0: @ 81642A0
movs r2, 0
bl GetMonData
str r0, [sp, 0x20]
bl sub_8165C40
bl GetFacilityEnemyMonLevel
movs r7, 0
ldr r0, [sp, 0x18]
lsls r0, 24
@ -4116,7 +3863,7 @@ _0816431A:
ldrh r0, [r1]
cmp r0, r8
beq _08164368
ldr r0, =gUnknown_0203BC88
ldr r0, =gFacilityTrainers
ldr r2, [r0]
movs r4, 0x34
mov r0, r8
@ -4186,7 +3933,7 @@ _081643A8:
str r0, [sp, 0x28]
_081643C0:
mov r0, r8
bl sub_8163524
bl RandomizeFacilityTrainerMonId
lsls r0, 16
lsrs r6, r0, 16
movs r0, 0x1
@ -4200,7 +3947,7 @@ _081643C0:
ldr r1, [sp, 0x28]
adds r0, r1
ldrh r2, [r0]
ldr r0, =gUnknown_0203BC8C
ldr r0, =gFacilityTrainerMons
ldr r0, [r0]
lsls r2, 4
adds r2, r0
@ -4216,7 +3963,7 @@ _081643F4:
bge _08164430
ldr r2, =gSaveBlock2Ptr
ldr r0, [r2]
ldr r1, =gUnknown_0203BC8C
ldr r1, =gFacilityTrainerMons
ldr r3, [r1]
lsls r1, r6, 4
adds r1, r3
@ -4464,7 +4211,7 @@ _081645B8:
lsls r0, r1, 24
lsrs r0, 24
str r3, [sp, 0x48]
bl BattleFrontierGetOpponentLvl
bl GetFrontierEnemyMonLevel
ldrb r1, [r4]
lsls r0, 24
lsrs r0, 24
@ -4556,7 +4303,7 @@ sub_81646BC: @ 81646BC
movs r0, 0
mov r9, r0
mov r10, r0
bl sub_8165C40
bl GetFacilityEnemyMonLevel
movs r0, 0xFA
lsls r0, 1
cmp r5, r0
@ -4564,7 +4311,7 @@ sub_81646BC: @ 81646BC
subs r0, 0xC9
cmp r5, r0
bhi _081646FC
ldr r0, =gUnknown_0203BC8C
ldr r0, =gFacilityTrainerMons
ldr r1, [r0]
lsls r0, r4, 4
adds r0, r1
@ -4705,7 +4452,7 @@ sub_8164828: @ 8164828
mov r5, r8
push {r5-r7}
sub sp, 0x8
bl sub_8165C40
bl GetFacilityEnemyMonLevel
bl sub_81A39C4
lsls r0, 16
lsrs r0, 16
@ -6073,7 +5820,7 @@ sub_8165404: @ 8165404
sub sp, 0x70
lsls r0, 16
lsrs r7, r0, 16
bl sub_8165C40
bl GetFacilityEnemyMonLevel
ldr r0, =0x00000c03
cmp r7, r0
beq _08165420
@ -6228,7 +5975,7 @@ _08165564:
bls _0816556C
b _081656E8
_0816556C:
bl sub_8165C40
bl GetFacilityEnemyMonLevel
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x50]
@ -6272,7 +6019,7 @@ _081655A6:
mov r9, r0
mov r0, r8
add r0, r9
ldr r6, =gUnknown_0203BC8C
ldr r6, =gFacilityTrainerMons
ldr r4, [r6]
lsls r5, r1, 4
adds r4, r5, r4
@ -6339,7 +6086,7 @@ _08165634:
movs r1, 0x20
ldr r2, [sp, 0x5C]
bl SetMonData
ldr r0, =gUnknown_0203BC8C
ldr r0, =gFacilityTrainerMons
ldr r1, [r0]
ldr r2, [sp, 0x54]
lsls r0, r2, 4
@ -6354,7 +6101,7 @@ _08165634:
movs r0, 0
str r0, [sp, 0x44]
movs r2, 0
ldr r0, =gUnknown_0203BC88
ldr r0, =gFacilityTrainers
ldr r1, [r0]
movs r0, 0x34
muls r0, r7
@ -7083,8 +6830,8 @@ _08165C2A:
.pool
thumb_func_end sub_8165B88
thumb_func_start sub_8165C40
sub_8165C40: @ 8165C40
thumb_func_start GetFacilityEnemyMonLevel
GetFacilityEnemyMonLevel: @ 8165C40
push {lr}
ldr r0, =gSaveBlock2Ptr
ldr r0, [r0]
@ -7095,29 +6842,29 @@ sub_8165C40: @ 8165C40
ands r0, r1
cmp r0, 0x2
beq _08165C84
ldr r1, =gUnknown_0203BC88
ldr r1, =gFacilityTrainers
ldr r0, =gBattleFrontierTrainers
str r0, [r1]
ldr r1, =gUnknown_0203BC8C
ldr r1, =gFacilityTrainerMons
ldr r0, =gBattleFrontierMons
str r0, [r1]
ldrb r0, [r2]
lsls r0, 30
lsrs r0, 30
bl BattleFrontierGetOpponentLvl
bl GetFrontierEnemyMonLevel
b _08165C88
.pool
_08165C84:
bl sub_8165D78
bl GetTentEnemyMonLevel
_08165C88:
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
thumb_func_end sub_8165C40
thumb_func_end GetFacilityEnemyMonLevel
thumb_func_start BattleFrontierGetOpponentLvl
BattleFrontierGetOpponentLvl: @ 8165C90
thumb_func_start GetFrontierEnemyMonLevel
GetFrontierEnemyMonLevel: @ 8165C90
push {lr}
lsls r0, 24
lsrs r0, 24
@ -7138,7 +6885,7 @@ _08165CA2:
_08165CB0:
pop {r1}
bx r1
thumb_func_end BattleFrontierGetOpponentLvl
thumb_func_end GetFrontierEnemyMonLevel
thumb_func_start sub_8165CB4
sub_8165CB4: @ 8165CB4
@ -7246,8 +6993,8 @@ _08165D72:
bx r1
thumb_func_end sub_8165D40
thumb_func_start sub_8165D78
sub_8165D78: @ 8165D78
thumb_func_start GetTentEnemyMonLevel
GetTentEnemyMonLevel: @ 8165D78
push {lr}
ldr r0, =0x000040cf
bl VarGet
@ -7255,38 +7002,38 @@ sub_8165D78: @ 8165D78
lsrs r0, 16
cmp r0, 0x4
bne _08165DA8
ldr r1, =gUnknown_0203BC88
ldr r1, =gFacilityTrainers
ldr r0, =gSlateportBattleTentTrainers
str r0, [r1]
ldr r1, =gUnknown_0203BC8C
ldr r1, =gFacilityTrainerMons
ldr r0, =gSlateportBattleTentMons
b _08165DF2
.pool
_08165DA8:
cmp r0, 0x2
bne _08165DC8
ldr r1, =gUnknown_0203BC88
ldr r1, =gFacilityTrainers
ldr r0, =gVerdanturfBattleTentTrainers
str r0, [r1]
ldr r1, =gUnknown_0203BC8C
ldr r1, =gFacilityTrainerMons
ldr r0, =gVerdanturfBattleTentMons
b _08165DF2
.pool
_08165DC8:
cmp r0, 0x3
bne _08165DE8
ldr r1, =gUnknown_0203BC88
ldr r1, =gFacilityTrainers
ldr r0, =gFallarborBattleTentTrainers
str r0, [r1]
ldr r1, =gUnknown_0203BC8C
ldr r1, =gFacilityTrainerMons
ldr r0, =gFallarborBattleTentMons
b _08165DF2
.pool
_08165DE8:
ldr r1, =gUnknown_0203BC88
ldr r1, =gFacilityTrainers
ldr r0, =gBattleFrontierTrainers
str r0, [r1]
ldr r1, =gUnknown_0203BC8C
ldr r1, =gFacilityTrainerMons
ldr r0, =gBattleFrontierMons
_08165DF2:
str r0, [r1]
@ -7300,7 +7047,7 @@ _08165E02:
pop {r1}
bx r1
.pool
thumb_func_end sub_8165D78
thumb_func_end GetTentEnemyMonLevel
thumb_func_start sub_8165E18
sub_8165E18: @ 8165E18
@ -7384,13 +7131,13 @@ sub_8165EA4: @ 8165EA4
lsls r2, 24
lsrs r2, 24
str r2, [sp, 0x1C]
bl sub_8165D78
bl GetTentEnemyMonLevel
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x20]
ldr r0, =gTrainerBattleOpponent_A
ldrh r2, [r0]
ldr r0, =gUnknown_0203BC88
ldr r0, =gFacilityTrainers
ldr r1, [r0]
movs r0, 0x34
muls r0, r2
@ -7456,7 +7203,7 @@ _08165F44:
movs r1, 0xB
movs r2, 0
bl GetMonData
ldr r1, =gUnknown_0203BC8C
ldr r1, =gFacilityTrainerMons
ldr r2, [r1]
lsls r1, r4, 4
adds r1, r2
@ -7489,7 +7236,7 @@ _08165F7A:
movs r1, 0xC
movs r2, 0
bl GetMonData
ldr r1, =gUnknown_0203BC8C
ldr r1, =gFacilityTrainerMons
ldr r2, [r1]
lsls r1, r4, 4
adds r1, r2
@ -7537,7 +7284,7 @@ _08165FDA:
muls r0, r6
ldr r1, =gEnemyParty
adds r0, r1
ldr r5, =gUnknown_0203BC8C
ldr r5, =gFacilityTrainerMons
ldr r2, [r5]
lsls r4, 4
adds r2, r4, r2
@ -7603,7 +7350,7 @@ _0816605E:
movs r1, 0x20
add r2, sp, 0x14
bl SetMonData
ldr r0, =gUnknown_0203BC8C
ldr r0, =gFacilityTrainerMons
ldr r0, [r0]
add r0, r9
ldrb r2, [r0, 0xA]
@ -7756,7 +7503,7 @@ sub_8166188: @ 8166188
ands r0, r1
cmp r0, 0
beq _081661E8
bl sub_8165C40
bl GetFacilityEnemyMonLevel
lsls r0, 24
movs r5, 0
ldr r7, =gBaseStats

View File

@ -2706,7 +2706,7 @@ _0811C044:
movs r0, 0x3
movs r2, 0
movs r3, 0
bl copy_decompressed_tile_data_to_vram_autofree
bl DecompressAndLoadBgGfxUsingHeap
ldr r1, =gEasyChatWindow_Tilemap
movs r0, 0x3
movs r2, 0
@ -2732,7 +2732,7 @@ _0811C090:
movs r0, 0x1
movs r2, 0
movs r3, 0
bl copy_decompressed_tile_data_to_vram_autofree
bl DecompressAndLoadBgGfxUsingHeap
movs r0, 0x1
bl CopyBgTilemapBufferToVram
b _0811C124

View File

@ -45,14 +45,14 @@
.byte 0xa
.endm
.macro healthbarupdate bank
.macro healthbarupdate battler
.byte 0xb
.byte \bank
.byte \battler
.endm
.macro datahpupdate bank
.macro datahpupdate battler
.byte 0xc
.byte \bank
.byte \battler
.endm
.macro critmessage
@ -104,38 +104,38 @@
.byte 0x17
.endm
.macro clearstatusfromeffect bank
.macro clearstatusfromeffect battler
.byte 0x18
.byte \bank
.byte \battler
.endm
.macro tryfaintmon bank, param1, param2
.macro tryfaintmon battler, param1, param2
.byte 0x19
.byte \bank
.byte \battler
.byte \param1
.4byte \param2
.endm
.macro dofaintanimation bank
.macro dofaintanimation battler
.byte 0x1a
.byte \bank
.byte \battler
.endm
.macro cleareffectsonfaint bank
.macro cleareffectsonfaint battler
.byte 0x1b
.byte \bank
.byte \battler
.endm
.macro jumpifstatus bank, status1, param2
.macro jumpifstatus battler, status1, param2
.byte 0x1c
.byte \bank
.byte \battler
.4byte \status1
.4byte \param2
.endm
.macro jumpifstatus2 bank, status2, param2
.macro jumpifstatus2 battler, status2, param2
.byte 0x1d
.byte \bank
.byte \battler
.4byte \status2
.4byte \param2
.endm
@ -147,40 +147,40 @@
.4byte \param2
.endm
.macro jumpifsideaffecting bank, sidestatus, param2
.macro jumpifsideaffecting battler, sidestatus, param2
.byte 0x1f
.byte \bank
.byte \battler
.2byte \sidestatus
.4byte \param2
.endm
.macro jumpifstat bank, ifflag, stat, param3, param4
.macro jumpifstat battler, ifflag, stat, param3, param4
.byte 0x20
.byte \bank
.byte \battler
.byte \ifflag
.byte \stat
.byte \param3
.4byte \param4
.endm
.macro jumpifstatus3condition bank, status3, param2, param3
.macro jumpifstatus3condition battler, status3, param2, param3
.byte 0x21
.byte \bank
.byte \battler
.4byte \status3
.byte \param2
.4byte \param3
.endm
.macro jumpiftype bank, type, param2
.macro jumpiftype battler, type, param2
.byte 0x22
.byte \bank
.byte \battler
.byte \type
.4byte \param2
.endm
.macro getexp bank
.macro getexp battler
.byte 0x23
.byte \bank
.byte \battler
.endm
.macro atk24 param0
@ -325,9 +325,9 @@
.byte 0x3a
.endm
.macro healthbar_update bank
.macro healthbar_update battler
.byte 0x3b
.byte \bank
.byte \battler
.endm
.macro return
@ -356,9 +356,9 @@
.4byte \param0
.endm
.macro jumpiftype2 bank, type, param2
.macro jumpiftype2 battler, type, param2
.byte 0x42
.byte \bank
.byte \battler
.byte \type
.4byte \param2
.endm
@ -373,16 +373,16 @@
.byte 0x44
.endm
.macro playanimation bank, param1, param2
.macro playanimation battler, param1, param2
.byte 0x45
.byte \bank
.byte \battler
.byte \param1
.4byte \param2
.endm
.macro playanimation2 bank, param1, param2
.macro playanimation2 battler, param1, param2
.byte 0x46
.byte \bank
.byte \battler
.4byte \param1
.4byte \param2
.endm
@ -391,9 +391,9 @@
.byte 0x47
.endm
.macro playstatchangeanimation bank, param1, param2
.macro playstatchangeanimation battler, param1, param2
.byte 0x48
.byte \bank
.byte \battler
.byte \param1
.byte \param2
.endm
@ -412,25 +412,25 @@
.byte 0x4b
.endm
.macro getswitchedmondata bank
.macro getswitchedmondata battler
.byte 0x4c
.byte \bank
.byte \battler
.endm
.macro switchindataupdate bank
.macro switchindataupdate battler
.byte 0x4d
.byte \bank
.byte \battler
.endm
.macro switchinanim bank, dontclearsubstitutebit
.macro switchinanim battler, dontclearsubstitutebit
.byte 0x4e
.byte \bank
.byte \battler
.byte \dontclearsubstitutebit
.endm
.macro jumpifcantswitch bank, param1
.macro jumpifcantswitch battler, param1
.byte 0x4f
.byte \bank
.byte \battler
.4byte \param1
.endm
@ -440,20 +440,20 @@
.4byte \param1
.endm
.macro switchhandleorder bank, param1
.macro switchhandleorder battler, param1
.byte 0x51
.byte \bank
.byte \battler
.byte \param1
.endm
.macro switchineffects bank
.macro switchineffects battler
.byte 0x52
.byte \bank
.byte \battler
.endm
.macro trainerslidein bank
.macro trainerslidein battler
.byte 0x53
.byte \bank
.byte \battler
.endm
.macro playse param0
@ -466,18 +466,18 @@
.2byte \param0
.endm
.macro playfaintcry bank
.macro playfaintcry battler
.byte 0x56
.byte \bank
.byte \battler
.endm
.macro atk57
.byte 0x57
.endm
.macro returntoball bank
.macro returntoball battler
.byte 0x58
.byte \bank
.byte \battler
.endm
.macro handlelearnnewmove param0, param1, param2
@ -497,18 +497,18 @@
.4byte \param0
.endm
.macro hitanimation bank
.macro hitanimation battler
.byte 0x5c
.byte \bank
.byte \battler
.endm
.macro getmoneyreward
.byte 0x5d
.endm
.macro atk5E bank
.macro atk5E battler
.byte 0x5e
.byte \bank
.byte \battler
.endm
.macro swapattackerwithtarget
@ -520,14 +520,14 @@
.byte \param0
.endm
.macro drawpartystatussummary bank
.macro drawpartystatussummary battler
.byte 0x61
.byte \bank
.byte \battler
.endm
.macro hidepartystatussummary bank
.macro hidepartystatussummary battler
.byte 0x62
.byte \bank
.byte \battler
.endm
.macro jumptorandomattack param0
@ -535,20 +535,20 @@
.byte \param0
.endm
.macro statusanimation bank
.macro statusanimation battler
.byte 0x64
.byte \bank
.byte \battler
.endm
.macro status2animation bank, status2
.macro status2animation battler, status2
.byte 0x65
.byte \bank
.byte \battler
.4byte \status2
.endm
.macro chosenstatusanimation bank, param1, param2
.macro chosenstatusanimation battler, param1, param2
.byte 0x66
.byte \bank
.byte \battler
.byte \param1
.4byte \param2
.endm
@ -565,9 +565,9 @@
.byte 0x69
.endm
.macro removeitem bank
.macro removeitem battler
.byte 0x6a
.byte \bank
.byte \battler
.endm
.macro atknameinbuff1
@ -586,14 +586,14 @@
.byte 0x6e
.endm
.macro makevisible bank
.macro makevisible battler
.byte 0x6f
.byte \bank
.byte \battler
.endm
.macro recordlastability bank
.macro recordlastability battler
.byte 0x70
.byte \bank
.byte \battler
.endm
.macro buffermovetolearn
@ -605,23 +605,23 @@
.4byte \param0
.endm
.macro hpthresholds bank
.macro hpthresholds battler
.byte 0x73
.byte \bank
.byte \battler
.endm
.macro hpthresholds2 bank
.macro hpthresholds2 battler
.byte 0x74
.byte \bank
.byte \battler
.endm
.macro useitemonopponent
.byte 0x75
.endm
.macro various bank, param1
.macro various battler, param1
.byte 0x76
.byte \bank
.byte \battler
.byte \param1
.endm
@ -642,10 +642,10 @@
.4byte \param0
.endm
.macro tryhealhalfhealth param0, bank
.macro tryhealhalfhealth param0, battler
.byte 0x7b
.4byte \param0
.byte \bank
.byte \battler
.endm
.macro trymirrormove
@ -773,9 +773,9 @@
.4byte \param0
.endm
.macro updatestatusicon bank
.macro updatestatusicon battler
.byte 0x98
.byte \bank
.byte \battler
.endm
.macro setmist
@ -1112,14 +1112,14 @@
.4byte \param0
.endm
.macro switchoutabilities bank
.macro switchoutabilities battler
.byte 0xe2
.byte \bank
.byte \battler
.endm
.macro jumpifhasnohp bank, param1
.macro jumpifhasnohp battler, param1
.byte 0xe3
.byte \bank
.byte \battler
.4byte \param1
.endm
@ -1215,112 +1215,112 @@
.endm
@ various command changed to more readable macros
.macro cancelmultiturnmoves bank
various \bank, VARIOUS_CANCEL_MULTI_TURN_MOVES
.macro cancelmultiturnmoves battler
various \battler, VARIOUS_CANCEL_MULTI_TURN_MOVES
.endm
.macro setmagiccoattarget bank
various \bank, VARIOUS_SET_MAGIC_COAT_TARGET
.macro setmagiccoattarget battler
various \battler, VARIOUS_SET_MAGIC_COAT_TARGET
.endm
.macro getifcantrunfrombattle bank
various \bank, VARIOUS_IS_RUNNING_IMPOSSIBLE
.macro getifcantrunfrombattle battler
various \battler, VARIOUS_IS_RUNNING_IMPOSSIBLE
.endm
.macro getmovetarget bank
various \bank, VARIOUS_GET_MOVE_TARGET
.macro getmovetarget battler
various \battler, VARIOUS_GET_MOVE_TARGET
.endm
.macro various4 bank
various \bank, 4
.macro various4 battler
various \battler, 4
.endm
.macro resetintrimidatetracebits bank
various \bank, VARIOUS_RESET_INTIMIDATE_TRACE_BITS
.macro resetintrimidatetracebits battler
various \battler, VARIOUS_RESET_INTIMIDATE_TRACE_BITS
.endm
.macro updatechoicemoveonlvlup bank
various \bank, VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP
.macro updatechoicemoveonlvlup battler
various \battler, VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP
.endm
.macro various7 bank
various \bank, 7
.macro various7 battler
various \battler, 7
.endm
.macro various8 bank
various \bank, 8
.macro various8 battler
various \battler, 8
.endm
.macro various9 bank
various \bank, 9
.macro various9 battler
various \battler, 9
.endm
.macro various10 bank
various \bank, 10
.macro various10 battler
various \battler, 10
.endm
.macro various11 bank
various \bank, 11
.macro various11 battler
various \battler, 11
.endm
.macro various12 bank
various \bank, 12
.macro various12 battler
various \battler, 12
.endm
.macro forfeityesnobox bank
various \bank, VARIOUS_EMIT_YESNOBOX
.macro forfeityesnobox battler
various \battler, VARIOUS_EMIT_YESNOBOX
.endm
.macro various14 bank
various \bank, 14
.macro various14 battler
various \battler, 14
.endm
.macro various15 bank
various \bank, 15
.macro various15 battler
various \battler, 15
.endm
.macro various16 bank
various \bank, 16
.macro various16 battler
various \battler, 16
.endm
.macro various17 bank
various \bank, 17
.macro various17 battler
various \battler, 17
.endm
.macro waitcry bank
various \bank, VARIOUS_WAIT_CRY
.macro waitcry battler
various \battler, VARIOUS_WAIT_CRY
.endm
.macro returnopponentmon1toball bank
various \bank, VARIOUS_RETURN_OPPONENT_MON1
.macro returnopponentmon1toball battler
various \battler, VARIOUS_RETURN_OPPONENT_MON1
.endm
.macro returnopponentmon2toball bank
various \bank, VARIOUS_RETURN_OPPONENT_MON2
.macro returnopponentmon2toball battler
various \battler, VARIOUS_RETURN_OPPONENT_MON2
.endm
.macro various21 bank
various \bank, 21
.macro volumedown
various BS_ATTACKER, VARIOUS_VOLUME_DOWN
.endm
.macro various22 bank
various \bank, 22
.macro volumeup
various BS_ATTACKER, VARIOUS_VOLUME_UP
.endm
.macro various23 bank
various \bank, 23
.macro various23 battler
various \battler, 23
.endm
.macro various24 bank
various \bank, 24
.macro various24 battler
various \battler, 24
.endm
.macro setoutcomeonteleport bank
various \bank, VARIOUS_SET_TELEPORT_OUTCOME
.macro setoutcomeonteleport battler
various \battler, VARIOUS_SET_TELEPORT_OUTCOME
.endm
.macro playtrainerdefeatbgm bank
various \bank, VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC
.macro playtrainerdefeatbgm battler
various \battler, VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC
.endm
@ helpful macros
@ -1332,12 +1332,12 @@
setbyte cEFFECT_CHOOSER \effect
.endm
.macro chosenstatus1animation bank, status
chosenstatusanimation \bank 0x0 \status
.macro chosenstatus1animation battler, status
chosenstatusanimation \battler 0x0 \status
.endm
.macro chosenstatus2animation bank, status
chosenstatusanimation \bank 0x1 \status
.macro chosenstatus2animation battler, status
chosenstatusanimation \battler 0x1 \status
.endm
.macro sethword dst, value
@ -1380,12 +1380,12 @@
jumpifhalfword CMP_NOT_EQUAL, gCurrentMove, \move, \jumpptr
.endm
.macro jumpifstatus3 bank, status, jumpptr
jumpifstatus3condition \bank, \status, 0x0, \jumpptr
.macro jumpifstatus3 battler, status, jumpptr
jumpifstatus3condition \battler, \status, 0x0, \jumpptr
.endm
.macro jumpifnostatus3 bank, status, jumpptr
jumpifstatus3condition \bank, \status, 0x1, \jumpptr
.macro jumpifnostatus3 battler, status, jumpptr
jumpifstatus3condition \battler, \status, 0x1, \jumpptr
.endm
.macro jumpifmovehadnoeffect jumpptr

View File

@ -3805,7 +3805,7 @@ sub_80C9FEC: @ 80C9FEC
movs r0, 0x3
movs r2, 0
movs r3, 0
bl copy_decompressed_tile_data_to_vram_autofree
bl DecompressAndLoadBgGfxUsingHeap
ldr r0, =gUnknown_08572174
ldr r1, =0x0600f800
bl LZ77UnCompVram
@ -3844,7 +3844,7 @@ sub_80CA044: @ 80CA044
movs r0, 0x1
movs r2, 0
movs r3, 0
bl copy_decompressed_tile_data_to_vram_autofree
bl DecompressAndLoadBgGfxUsingHeap
ldr r0, =gUnknown_085722A0
ldr r5, =gUnknown_02039D08
ldr r1, [r5]

View File

@ -20169,7 +20169,7 @@ sub_81D1148: @ 81D1148
add r2, sp, 0x8
mov r0, sp
bl sub_81D0760
bl dp13_810BB8C
bl ResetAllPicSprites
movs r0, 0x28
movs r1, 0x68
bl sub_81D1184
@ -20187,7 +20187,7 @@ sub_81D1148: @ 81D1148
sub_81D1178: @ 81D1178
push {lr}
ldrh r0, [r0, 0x10]
bl sub_818D820
bl FreeAndDestroyMonPicSprite
pop {r0}
bx r0
thumb_func_end sub_81D1178
@ -20213,7 +20213,7 @@ sub_81D1184: @ 81D1184
ldr r3, =0x0000ffff
str r3, [sp, 0xC]
movs r3, 0x1
bl sub_818D7D8
bl CreateMonPicSprite_HandleDeoxys
lsls r0, 16
lsrs r0, 16
ldr r1, =gSprites
@ -20256,7 +20256,7 @@ sub_81D11FC: @ 81D11FC
push {r4,r5,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x10]
bl sub_818D820
bl FreeAndDestroyMonPicSprite
movs r5, 0x20
negs r5, r5
adds r0, r5, 0

View File

@ -7909,7 +7909,7 @@ bgid_upload_textbox_1: @ 8019938
lsls r2, 1
movs r3, 0
str r3, [sp]
bl copy_decompressed_tile_data_to_vram_autofree
bl DecompressAndLoadBgGfxUsingHeap
add sp, 0x4
pop {r0}
bx r0
@ -9386,7 +9386,7 @@ sub_801A43C: @ 801A43C
movs r0, 0x1
movs r2, 0
movs r3, 0
bl copy_decompressed_tile_data_to_vram_autofree
bl DecompressAndLoadBgGfxUsingHeap
ldr r1, =gWirelessInfoScreenTilemap
movs r0, 0x1
movs r2, 0

View File

@ -7609,7 +7609,7 @@ sub_807B170: @ 807B170
mov r1, r10
movs r2, 0
movs r3, 0
bl copy_decompressed_tile_data_to_vram_autofree
bl DecompressAndLoadBgGfxUsingHeap
ldr r0, =gBattleTextboxTilemap
mov r8, r0
ldr r4, =gDecompressionBuffer
@ -7633,7 +7633,7 @@ sub_807B170: @ 807B170
mov r1, r10
movs r2, 0
movs r3, 0
bl copy_decompressed_tile_data_to_vram_autofree
bl DecompressAndLoadBgGfxUsingHeap
mov r0, r8
adds r1, r4, 0
bl LZDecompressWram

File diff suppressed because it is too large Load Diff

View File

@ -4481,18 +4481,18 @@ BattleScript_82DB89D::
setbyte gBattleCommunication + 1, 0x0
end2
BattleScript_82DB8BE::
BattleScript_ArenaTurnBeginning::
waitcry BS_ATTACKER
various21 BS_ATTACKER
playse 0x109
volumedown
playse SE_HANTEI1
pause 0x8
playse 0x109
playse SE_HANTEI1
various14 BS_ATTACKER
various16 8
various17 8
pause 0x40
various15 BS_ATTACKER
various22 BS_ATTACKER
volumeup
end2
BattleScript_82DB8E0::
@ -4509,7 +4509,7 @@ BattleScript_82DB8F3::
waitstate
makevisible BS_OPPONENT1
waitstate
various21 BS_ATTACKER
volumedown
playse 0x109
pause 0x8
playse 0x109

View File

@ -133,7 +133,7 @@ BattleFrontier_BattleArenaLobby_EventScript_255DF4:: @ 8255DF4
lock
faceplayer
setvar VAR_FRONTIER_FACILITY, 3
setvar VAR_0x40CE, 0
setvar VAR_FRONTIER_BATTLE_MODE, 0
special SavePlayerParty
msgbox BattleFrontier_BattleArenaLobby_Text_256166, 4

View File

@ -7,7 +7,7 @@ BattleFrontier_BattleDomeBattleRoom_MapScripts:: @ 824BC9C
BattleFrontier_BattleDomeBattleRoom_MapScript1_24BCB1: @ 824BCB1
setvar VAR_0x8004, 10
special sub_818E9AC
special CallBattleDomeFunction
setvar VAR_0x8004, 1
setvar VAR_0x8005, 2
special sub_81A1780
@ -72,7 +72,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BD61:: @ 824BD61
BattleFrontier_BattleDomeBattleRoom_EventScript_24BD82:: @ 824BD82
setvar VAR_0x8004, 4
special sub_818E9AC
special CallBattleDomeFunction
msgbox BattleFrontier_BattleDomeBattleRoom_Text_24C990, 4
closemessage
applymovement 13, BattleFrontier_BattleDomeBattleRoom_Movement_24C77B
@ -84,7 +84,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BD82:: @ 824BD82
msgbox 0x2021fc4, 4
closemessage
setvar VAR_0x8004, 5
special sub_818E9AC
special CallBattleDomeFunction
call BattleFrontier_BattleDomeBattleRoom_EventScript_24C440
setvar VAR_TEMP_2, 0
switch VAR_RESULT
@ -109,7 +109,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BDF7:: @ 824BDF7
compare VAR_TEMP_2, 2
goto_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24BE4F
setvar VAR_0x8004, 19
special sub_818E9AC
special CallBattleDomeFunction
switch VAR_RESULT
case 1, BattleFrontier_BattleDomeBattleRoom_EventScript_24BEE0
@ -117,7 +117,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BE4F:: @ 824BE4F
applymovement 1, BattleFrontier_BattleDomeBattleRoom_Movement_2725B4
waitmovement 0
setvar VAR_0x8004, 4
special sub_818E9AC
special CallBattleDomeFunction
compare VAR_TEMP_2, 0
call_if 1, BattleFrontier_BattleDomeBattleRoom_EventScript_24BEB1
compare VAR_TEMP_2, 1
@ -131,7 +131,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BE4F:: @ 824BE4F
BattleFrontier_BattleDomeBattleRoom_EventScript_24BE8D:: @ 824BE8D
setvar VAR_0x8004, 12
setvar VAR_0x8005, 2
special sub_818E9AC
special CallBattleDomeFunction
BattleFrontier_BattleDomePreBattleRoom_EventScript_24BE9A:: @ 824BE9A
setvar VAR_0x8004, 2
@ -173,10 +173,10 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BEE0:: @ 824BEE0
call BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E
delay 60
setvar VAR_0x8004, 3
special sub_818E9AC
special CallBattleDomeFunction
setvar VAR_0x8004, 12
setvar VAR_0x8005, 1
special sub_818E9AC
special CallBattleDomeFunction
setvar VAR_0x8004, 1
setvar VAR_0x8005, 2
special sub_81A1780
@ -227,17 +227,17 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BFCC:: @ 824BFCC
BattleFrontier_BattleDomeBattleRoom_EventScript_24BFD5:: @ 824BFD5
setvar VAR_0x8004, 1
setvar VAR_0x8005, 6
special sub_818E9AC
special CallBattleDomeFunction
compare VAR_RESULT, 0
goto_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24C023
setvar VAR_0x8004, 1
setvar VAR_0x8005, 7
special sub_818E9AC
special CallBattleDomeFunction
compare VAR_RESULT, 0
goto_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24C076
setvar VAR_0x8004, 1
setvar VAR_0x8005, 1
special sub_818E9AC
special CallBattleDomeFunction
compare VAR_RESULT, 0
goto_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24C16A
goto BattleFrontier_BattleDomeBattleRoom_EventScript_24C0C9
@ -446,7 +446,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C2B9:: @ 824C2B9
msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D0F6, 4
setvar VAR_0x8004, 12
setvar VAR_0x8005, 1
special sub_818E9AC
special CallBattleDomeFunction
setvar VAR_0x8004, 12
special sub_81A1780
compare VAR_RESULT, 0
@ -485,7 +485,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C373:: @ 824C373
msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D0F6, 4
setvar VAR_0x8004, 12
setvar VAR_0x8005, 1
special sub_818E9AC
special CallBattleDomeFunction
setvar VAR_0x8004, 12
special sub_81A1780
compare VAR_RESULT, 2
@ -536,10 +536,10 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C440:: @ 824C440
waitstate
setvar VAR_TEMP_9, 0
setvar VAR_0x8004, 17
special sub_818E9AC
special CallBattleDomeFunction
special HealPlayerParty
setvar VAR_0x8004, 16
special sub_818E9AC
special CallBattleDomeFunction
return
BattleFrontier_BattleDomeBattleRoom_MapScript2_24C481: @ 824C481
@ -950,7 +950,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E:: @ 824C82E
BattleFrontier_BattleDomeBattleRoom_EventScript_24C8F5:: @ 824C8F5
BattleFrontier_BattleDomePreBattleRoom_EventScript_24C8F5:: @ 824C8F5
copyvar VAR_RESULT, VAR_0x40CE
copyvar VAR_RESULT, VAR_FRONTIER_BATTLE_MODE
compare VAR_RESULT, 1
goto_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_24C90F
warp MAP_BATTLE_FRONTIER_BATTLE_DOME_LOBBY, 255, 5, 11

View File

@ -6,7 +6,7 @@ BattleFrontier_BattleDomeLobby_MapScripts:: @ 82497E2
BattleFrontier_BattleDomeLobby_MapScript1_2497F2: @ 82497F2
setvar VAR_0x8004, 21
special sub_818E9AC
special CallBattleDomeFunction
end
BattleFrontier_BattleDomeLobby_MapScript2_2497FB: @ 82497FB
@ -39,15 +39,15 @@ BattleFrontier_BattleDomeLobby_EventScript_249842:: @ 8249842
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 0
special sub_818E9AC
special CallBattleDomeFunction
setvar VAR_0x8004, 2
setvar VAR_0x8005, 1
setvar VAR_0x8006, 0
special sub_818E9AC
special CallBattleDomeFunction
setvar VAR_0x8004, 2
setvar VAR_0x8005, 6
setvar VAR_0x8006, 1
special sub_818E9AC
special CallBattleDomeFunction
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 0
@ -85,15 +85,15 @@ BattleFrontier_BattleDomeLobby_EventScript_2498C9:: @ 82498C9
setvar VAR_0x8004, 2
setvar VAR_0x8005, 6
setvar VAR_0x8006, 1
special sub_818E9AC
special CallBattleDomeFunction
setvar VAR_0x8004, 2
setvar VAR_0x8005, 7
setvar VAR_0x8006, 1
special sub_818E9AC
special CallBattleDomeFunction
setvar VAR_0x8004, 2
setvar VAR_0x8005, 1
setvar VAR_0x8006, 1
special sub_818E9AC
special CallBattleDomeFunction
special LoadPlayerParty
special HealPlayerParty
goto BattleFrontier_BattleDomeLobby_EventScript_249991
@ -112,18 +112,18 @@ BattleFrontier_BattleDomeLobby_EventScript_249940:: @ 8249940
setvar VAR_0x8004, 2
setvar VAR_0x8005, 1
setvar VAR_0x8006, 0
special sub_818E9AC
special CallBattleDomeFunction
setvar VAR_0x8004, 2
setvar VAR_0x8005, 6
setvar VAR_0x8006, 1
special sub_818E9AC
special CallBattleDomeFunction
special LoadPlayerParty
special HealPlayerParty
BattleFrontier_BattleDomeLobby_EventScript_249991:: @ 8249991
setvar VAR_0x8004, 13
setvar VAR_0x8005, 0
special sub_818E9AC
special CallBattleDomeFunction
playse SE_SAVE
waitse
call BattleFrontier_BattleDomeLobby_EventScript_23E8E0
@ -154,7 +154,7 @@ BattleFrontier_BattleDomeLobby_EventScript_2499F9:: @ 82499F9
waitmessage
setvar VAR_0x8004, 13
setvar VAR_0x8005, 1
special sub_818E9AC
special CallBattleDomeFunction
playse SE_SAVE
waitse
setvar VAR_0x8004, 2
@ -168,7 +168,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249A35:: @ 8249A35
lock
faceplayer
setvar VAR_FRONTIER_FACILITY, 1
setvar VAR_0x40CE, 0
setvar VAR_FRONTIER_BATTLE_MODE, 0
goto BattleFrontier_BattleDomeLobby_EventScript_249A59
end
@ -176,21 +176,21 @@ BattleFrontier_BattleDomeLobby_EventScript_249A47:: @ 8249A47
lock
faceplayer
setvar VAR_FRONTIER_FACILITY, 1
setvar VAR_0x40CE, 1
setvar VAR_FRONTIER_BATTLE_MODE, 1
goto BattleFrontier_BattleDomeLobby_EventScript_249A59
end
BattleFrontier_BattleDomeLobby_EventScript_249A59:: @ 8249A59
special SavePlayerParty
compare VAR_0x40CE, 0
compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249CFD
compare VAR_0x40CE, 1
compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249D06
BattleFrontier_BattleDomeLobby_EventScript_249A72:: @ 8249A72
compare VAR_0x40CE, 0
compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249D0F
compare VAR_0x40CE, 1
compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249D15
waitmessage
multichoice 17, 6, 23, 0
@ -236,7 +236,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249B60:: @ 8249B60
setvar VAR_0x8005, 4
special sub_81A1780
setvar VAR_0x8004, 0
special sub_818E9AC
special CallBattleDomeFunction
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 1
@ -253,7 +253,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249B60:: @ 8249B60
compare VAR_RESULT, 0
goto_eq BattleFrontier_BattleDomeLobby_EventScript_249C4A
setvar VAR_0x8004, 22
special sub_818E9AC
special CallBattleDomeFunction
BattleFrontier_BattleDomeLobby_EventScript_249BC2:: @ 8249BC2
special SavePlayerParty
@ -261,7 +261,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249BC2:: @ 8249BC2
setvar VAR_0x8005, 3
special sub_81A1780
setvar VAR_0x8004, 15
special sub_818E9AC
special CallBattleDomeFunction
msgbox BattleFrontier_BattleDomeLobby_Text_24A437, 4
closemessage
call BattleFrontier_BattleDomeLobby_EventScript_249C6E
@ -272,9 +272,9 @@ BattleFrontier_BattleDomeLobby_EventScript_249BC2:: @ 8249BC2
end
BattleFrontier_BattleDomeLobby_EventScript_249BFA:: @ 8249BFA
compare VAR_0x40CE, 0
compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249D1B
compare VAR_0x40CE, 1
compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249D24
goto BattleFrontier_BattleDomeLobby_EventScript_249A72
@ -309,26 +309,26 @@ BattleFrontier_BattleDomeLobby_EventScript_249C6C:: @ 8249C6C
end
BattleFrontier_BattleDomeLobby_EventScript_249C6E:: @ 8249C6E
compare VAR_0x40CE, 0
compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249CDD
compare VAR_0x40CE, 1
compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249CE5
applymovement 255, BattleFrontier_BattleDomeLobby_Movement_249D45
waitmovement 0
compare VAR_0x40CE, 0
compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249D2D
compare VAR_0x40CE, 1
compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249D33
waitdooranim
compare VAR_0x40CE, 0
compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249CED
compare VAR_0x40CE, 1
compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249CF5
applymovement 255, BattleFrontier_BattleDomeLobby_Movement_249D4E
waitmovement 0
compare VAR_0x40CE, 0
compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249D39
compare VAR_0x40CE, 1
compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249D3F
waitdooranim
return
@ -433,7 +433,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249D6B:: @ 8249D6B
BattleFrontier_BattleDomeLobby_EventScript_249D84:: @ 8249D84
setvar VAR_0x8004, 1
setvar VAR_0x8005, 9
special sub_818E9AC
special CallBattleDomeFunction
compare VAR_RESULT, 0
call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249DC9
compare VAR_RESULT, 1
@ -444,7 +444,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249D84:: @ 8249D84
call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249DE4
fadescreen 1
setvar VAR_0x8004, 8
special sub_818E9AC
special CallBattleDomeFunction
waitstate
end
@ -466,7 +466,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249DE4:: @ 8249DE4
BattleFrontier_BattleDomeLobby_EventScript_249DED:: @ 8249DED
setvar VAR_0x8004, 20
special sub_818E9AC
special CallBattleDomeFunction
msgbox BattleFrontier_BattleDomeLobby_Text_24AA76, 2
end

View File

@ -87,7 +87,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B377:: @ 824B377
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3A9:: @ 824B3A9
setvar VAR_0x8004, 12
setvar VAR_0x8005, 9
special sub_818E9AC
special CallBattleDomeFunction
goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24BE9A
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3BB:: @ 824B3BB
@ -95,7 +95,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3BB:: @ 824B3BB
waitmessage
setvar VAR_0x8004, 13
setvar VAR_0x8005, 2
special sub_818E9AC
special CallBattleDomeFunction
playse SE_SAVE
waitse
fadescreen 1
@ -107,7 +107,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3DD:: @ 824B3DD
msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24B9B5, 4
fadescreen 1
setvar VAR_0x8004, 6
special sub_818E9AC
special CallBattleDomeFunction
waitstate
goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F
@ -115,7 +115,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3F5:: @ 824B3F5
call BattleFrontier_BattleDomePreBattleRoom_EventScript_24B40A
fadescreen 1
setvar VAR_0x8004, 7
special sub_818E9AC
special CallBattleDomeFunction
waitstate
goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F
@ -162,11 +162,11 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B46D:: @ 824B46D
goto_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F
setvar VAR_0x8004, 2
setvar VAR_0x8005, 8
special sub_818E9AC
special CallBattleDomeFunction
setvar VAR_0x8004, 18
special sub_818E9AC
special CallBattleDomeFunction
setvar VAR_0x8004, 9
special sub_818E9AC
special CallBattleDomeFunction
msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24B748, 4
closemessage
applymovement 1, BattleFrontier_BattleDomePreBattleRoom_Movement_24B64F
@ -253,7 +253,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5C7:: @ 824B5C7
call BattleFrontier_BattleDomePreBattleRoom_EventScript_24B600
fadescreen 1
setvar VAR_0x8004, 11
special sub_818E9AC
special CallBattleDomeFunction
waitstate
goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F

View File

@ -291,7 +291,7 @@ BattleFrontier_BattleFactoryBattleRoom_Movement_25B18B: @ 825B18B
BattleFrontier_BattleFactoryBattleRoom_EventScript_25B190:: @ 825B190
BattleFrontier_BattleFactoryPreBattleRoom_EventScript_25B190:: @ 825B190
copyvar VAR_RESULT, VAR_0x40CE
copyvar VAR_RESULT, VAR_FRONTIER_BATTLE_MODE
compare VAR_RESULT, 1
goto_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_25B1AA
warp MAP_BATTLE_FRONTIER_BATTLE_FACTORY_LOBBY, 255, 4, 8

View File

@ -143,27 +143,27 @@ BattleFrontier_BattleFactoryLobby_EventScript_2585CB:: @ 82585CB
lock
faceplayer
setvar VAR_FRONTIER_FACILITY, 4
setvar VAR_0x40CE, 0
setvar VAR_FRONTIER_BATTLE_MODE, 0
goto BattleFrontier_BattleFactoryLobby_EventScript_2585ED
end
BattleFrontier_BattleFactoryLobby_EventScript_2585DD:: @ 82585DD
setvar VAR_FRONTIER_FACILITY, 4
setvar VAR_0x40CE, 1
setvar VAR_FRONTIER_BATTLE_MODE, 1
goto BattleFrontier_BattleFactoryLobby_EventScript_2585ED
end
BattleFrontier_BattleFactoryLobby_EventScript_2585ED:: @ 82585ED
special SavePlayerParty
compare VAR_0x40CE, 0
compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattleFactoryLobby_EventScript_2587B1
compare VAR_0x40CE, 1
compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattleFactoryLobby_EventScript_2587BA
BattleFrontier_BattleFactoryLobby_EventScript_258606:: @ 8258606
compare VAR_0x40CE, 0
compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattleFactoryLobby_EventScript_2587C3
compare VAR_0x40CE, 1
compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattleFactoryLobby_EventScript_2587C9
waitmessage
multichoice 17, 6, 23, 0
@ -218,9 +218,9 @@ BattleFrontier_BattleFactoryLobby_EventScript_25871A:: @ 825871A
special SavePlayerParty
msgbox BattleFrontier_BattleFactoryLobby_Text_258CB1, 4
closemessage
compare VAR_0x40CE, 0
compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattleFactoryLobby_EventScript_25875C
compare VAR_0x40CE, 1
compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattleFactoryLobby_EventScript_258762
applymovement VAR_LAST_TALKED, BattleFrontier_BattleFactoryLobby_Movement_2587A7
applymovement 255, BattleFrontier_BattleFactoryLobby_Movement_2587AC
@ -239,9 +239,9 @@ BattleFrontier_BattleFactoryLobby_EventScript_258762:: @ 8258762
return
BattleFrontier_BattleFactoryLobby_EventScript_258768:: @ 8258768
compare VAR_0x40CE, 0
compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattleFactoryLobby_EventScript_2587CF
compare VAR_0x40CE, 1
compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattleFactoryLobby_EventScript_2587D8
goto BattleFrontier_BattleFactoryLobby_EventScript_258606

View File

@ -459,7 +459,7 @@ BattleFrontier_BattlePalaceBattleRoom_Movement_24FEB6: @ 824FEB6
step_end
BattleFrontier_BattlePalaceBattleRoom_EventScript_24FEBB:: @ 824FEBB
copyvar VAR_RESULT, VAR_0x40CE
copyvar VAR_RESULT, VAR_FRONTIER_BATTLE_MODE
compare VAR_RESULT, 1
goto_eq BattleFrontier_BattlePalaceBattleRoom_EventScript_24FED5
warp MAP_BATTLE_FRONTIER_BATTLE_PALACE_LOBBY, 255, 5, 7

View File

@ -134,7 +134,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24D944:: @ 824D944
lock
faceplayer
setvar VAR_FRONTIER_FACILITY, 2
setvar VAR_0x40CE, 0
setvar VAR_FRONTIER_BATTLE_MODE, 0
goto BattleFrontier_BattlePalaceLobby_EventScript_24D968
end
@ -142,7 +142,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24D956:: @ 824D956
lock
faceplayer
setvar VAR_FRONTIER_FACILITY, 2
setvar VAR_0x40CE, 1
setvar VAR_FRONTIER_BATTLE_MODE, 1
goto BattleFrontier_BattlePalaceLobby_EventScript_24D968
end
@ -153,15 +153,15 @@ BattleFrontier_BattlePalaceLobby_EventScript_24D968:: @ 824D968
compare VAR_RESULT, 0
goto_if 5, BattleFrontier_BattlePalaceLobby_EventScript_24D817
special SavePlayerParty
compare VAR_0x40CE, 0
compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattlePalaceLobby_EventScript_24DB9E
compare VAR_0x40CE, 1
compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattlePalaceLobby_EventScript_24DBA7
BattleFrontier_BattlePalaceLobby_EventScript_24D999:: @ 824D999
compare VAR_0x40CE, 0
compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattlePalaceLobby_EventScript_24DBB0
compare VAR_0x40CE, 1
compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattlePalaceLobby_EventScript_24DBB6
waitmessage
multichoice 17, 6, 23, 0
@ -242,7 +242,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24DAF3:: @ 824DAF3
end
BattleFrontier_BattlePalaceLobby_EventScript_24DB20:: @ 824DB20
compare VAR_0x40CE, 1
compare VAR_FRONTIER_BATTLE_MODE, 1
goto_eq BattleFrontier_BattlePalaceLobby_EventScript_24DB38
msgbox BattleFrontier_BattlePalaceLobby_Text_24DE17, 4
goto BattleFrontier_BattlePalaceLobby_EventScript_24D999
@ -298,24 +298,24 @@ BattleFrontier_BattlePalaceLobby_EventScript_24DBB6:: @ 824DBB6
return
BattleFrontier_BattlePalaceLobby_EventScript_24DBBC:: @ 824DBBC
compare VAR_0x40CE, 0
compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattlePalaceLobby_EventScript_24DC23
compare VAR_0x40CE, 1
compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattlePalaceLobby_EventScript_24DC29
applymovement VAR_LAST_TALKED, BattleFrontier_BattlePalaceLobby_Movement_24DC47
applymovement 255, BattleFrontier_BattlePalaceLobby_Movement_24DC47
waitmovement 0
compare VAR_0x40CE, 0
compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattlePalaceLobby_EventScript_24DC2F
compare VAR_0x40CE, 1
compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattlePalaceLobby_EventScript_24DC35
waitdooranim
applymovement VAR_LAST_TALKED, BattleFrontier_BattlePalaceLobby_Movement_24DC49
applymovement 255, BattleFrontier_BattlePalaceLobby_Movement_24DC4C
waitmovement 0
compare VAR_0x40CE, 0
compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattlePalaceLobby_EventScript_24DC3B
compare VAR_0x40CE, 1
compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattlePalaceLobby_EventScript_24DC41
waitdooranim
return

View File

@ -126,7 +126,7 @@ BattleFrontier_BattlePikeLobby_EventScript_25B868:: @ 825B868
lock
faceplayer
setvar VAR_FRONTIER_FACILITY, 5
setvar VAR_0x40CE, 0
setvar VAR_FRONTIER_BATTLE_MODE, 0
special SavePlayerParty
msgbox BattleFrontier_BattlePikeLobby_Text_25BB52, 4

View File

@ -130,7 +130,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_2508B1:: @ 82508B1
lock
faceplayer
setvar VAR_FRONTIER_FACILITY, 6
setvar VAR_0x40CE, 0
setvar VAR_FRONTIER_BATTLE_MODE, 0
special SavePlayerParty
msgbox BattleFrontier_BattlePyramidLobby_Text_250F31, 4

View File

@ -366,7 +366,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_24210E:: @ 824210E
setvar VAR_0x8005, 0
special sub_8163AC4
waitstate
copyvar VAR_0x8004, VAR_0x40CE
copyvar VAR_0x8004, VAR_FRONTIER_BATTLE_MODE
compare VAR_0x8004, 3
goto_eq BattleFrontier_BattleTowerBattleRoom_EventScript_24215A
setvar VAR_0x8004, 18
@ -484,7 +484,7 @@ BattleFrontier_BattleTowerBattleRoom_Movement_2421B2: @ 82421B2
BattleFrontier_BattleTowerBattleRoom2_EventScript_2421B8:: @ 82421B8
BattleFrontier_BattleTowerBattleRoom_EventScript_2421B8:: @ 82421B8
copyvar VAR_RESULT, VAR_0x40CE
copyvar VAR_RESULT, VAR_FRONTIER_BATTLE_MODE
compare VAR_RESULT, 1
goto_eq BattleFrontier_BattleTowerBattleRoom_EventScript_2421E8
compare VAR_RESULT, 2

View File

@ -5,9 +5,9 @@ BattleFrontier_BattleTowerBattleRoom2_MapScripts:: @ 8248EE8
.byte 0
BattleFrontier_BattleTowerBattleRoom2_MapScript1_248EF8: @ 8248EF8
compare VAR_0x40CE, 2
compare VAR_FRONTIER_BATTLE_MODE, 2
call_if 1, BattleFrontier_BattleTowerBattleRoom2_EventScript_248F0F
compare VAR_0x40CE, 3
compare VAR_FRONTIER_BATTLE_MODE, 3
call_if 1, BattleFrontier_BattleTowerBattleRoom2_EventScript_248F2F
end
@ -70,7 +70,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_248FB4:: @ 8248FB4
applymovement 1, BattleFrontier_BattleTowerBattleRoom2_Movement_249528
applymovement 4, BattleFrontier_BattleTowerBattleRoom2_Movement_24952E
waitmovement 0
compare VAR_0x40CE, 3
compare VAR_FRONTIER_BATTLE_MODE, 3
goto_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_249026
setvar VAR_0x8004, 7
setvar VAR_0x8005, 0
@ -142,7 +142,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_2490AA:: @ 82490AA
applymovement 5, BattleFrontier_BattleTowerBattleRoom2_Movement_249524
applymovement 6, BattleFrontier_BattleTowerBattleRoom2_Movement_249524
waitmovement 0
compare VAR_0x40CE, 3
compare VAR_FRONTIER_BATTLE_MODE, 3
goto_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_249118
msgbox BattleFrontier_BattleTowerBattleRoom2_Text_242217, 4
goto BattleFrontier_BattleTowerBattleRoom2_EventScript_249121
@ -157,7 +157,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_249121:: @ 8249121
setvar VAR_0x8004, 3
setvar VAR_0x8005, 2
special sub_81A1780
compare VAR_0x40CE, 3
compare VAR_FRONTIER_BATTLE_MODE, 3
call_if 1, BattleFrontier_BattleTowerBattleRoom2_EventScript_249514
playfanfare MUS_ME_ASA
waitfanfare
@ -168,7 +168,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_249143:: @ 8249143
setvar VAR_0x8005, 2
special sub_81A1780
call BattleFrontier_BattleTowerBattleRoom2_EventScript_2492FD
compare VAR_0x40CE, 3
compare VAR_FRONTIER_BATTLE_MODE, 3
goto_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_249283
call BattleFrontier_BattleTowerBattleRoom2_EventScript_23E8E0
compare VAR_RESULT, 1
@ -256,7 +256,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_2492DB:: @ 82492DB
end
BattleFrontier_BattleTowerBattleRoom2_EventScript_2492FD:: @ 82492FD
compare VAR_0x40CE, 3
compare VAR_FRONTIER_BATTLE_MODE, 3
goto_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_24937E
copyvar VAR_TEMP_F, VAR_RESULT
switch VAR_TEMP_F

View File

@ -5,9 +5,9 @@ BattleFrontier_BattleTowerCorridor2_MapScripts:: @ 8248D4A
.byte 0
BattleFrontier_BattleTowerCorridor2_MapScript1_248D5A: @ 8248D5A
compare VAR_0x40CE, 2
compare VAR_FRONTIER_BATTLE_MODE, 2
call_if 1, BattleFrontier_BattleTowerCorridor2_EventScript_248D71
compare VAR_0x40CE, 3
compare VAR_FRONTIER_BATTLE_MODE, 3
call_if 1, BattleFrontier_BattleTowerCorridor2_EventScript_248D91
end
@ -87,13 +87,13 @@ BattleFrontier_BattleTowerCorridor2_EventScript_248DBC:: @ 8248DBC
end
BattleFrontier_BattleTowerCorridor2_EventScript_248E71:: @ 8248E71
compare VAR_0x40CE, 0
compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattleTowerCorridor2_EventScript_248E9E
compare VAR_0x40CE, 1
compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattleTowerCorridor2_EventScript_248E9E
compare VAR_0x40CE, 2
compare VAR_FRONTIER_BATTLE_MODE, 2
call_if 1, BattleFrontier_BattleTowerCorridor2_EventScript_248EA8
compare VAR_0x40CE, 3
compare VAR_FRONTIER_BATTLE_MODE, 3
call_if 1, BattleFrontier_BattleTowerCorridor2_EventScript_248EB2
return

View File

@ -24,13 +24,13 @@ BattleFrontier_BattleTowerElevator_EventScript_2419F0:: @ 82419F0
end
BattleFrontier_BattleTowerElevator_EventScript_241A28:: @ 8241A28
compare VAR_0x40CE, 0
compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattleTowerElevator_EventScript_241A55
compare VAR_0x40CE, 1
compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattleTowerElevator_EventScript_241A55
compare VAR_0x40CE, 2
compare VAR_FRONTIER_BATTLE_MODE, 2
call_if 1, BattleFrontier_BattleTowerElevator_EventScript_241A5F
compare VAR_0x40CE, 3
compare VAR_FRONTIER_BATTLE_MODE, 3
call_if 1, BattleFrontier_BattleTowerElevator_EventScript_241A72
return

View File

@ -119,7 +119,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23E7E2:: @ 823E7E2
end
BattleFrontier_BattleTowerLobby_EventScript_23E7F2:: @ 823E7F2
compare VAR_0x40CE, 2
compare VAR_FRONTIER_BATTLE_MODE, 2
goto_if 5, BattleFrontier_BattleTowerLobby_EventScript_23E81E
checkflag FLAG_0x152
goto_eq BattleFrontier_BattleTowerLobby_EventScript_23E81E
@ -214,7 +214,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23E8E0:: @ 823E8E0
BattleFrontier_BattleTowerLobby_EventScript_23E8EE:: @ 823E8EE
lock
faceplayer
compare VAR_0x40CE, 0
compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23E930
message BattleFrontier_BattleTowerLobby_Text_23F737
waitmessage
@ -254,7 +254,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23E948:: @ 823E948
case 127, BattleFrontier_BattleTowerLobby_EventScript_23F0E6
BattleFrontier_BattleTowerLobby_EventScript_23E984:: @ 823E984
setvar VAR_0x40CE, 0
setvar VAR_FRONTIER_BATTLE_MODE, 0
message BattleFrontier_BattleTowerLobby_Text_23FD3B
waitmessage
multichoice 17, 6, 24, 0
@ -334,7 +334,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EAB1:: @ 823EAB1
case 127, BattleFrontier_BattleTowerLobby_EventScript_23F0E6
BattleFrontier_BattleTowerLobby_EventScript_23EAED:: @ 823EAED
setvar VAR_0x40CE, 1
setvar VAR_FRONTIER_BATTLE_MODE, 1
message BattleFrontier_BattleTowerLobby_Text_23FD3B
waitmessage
multichoice 17, 6, 24, 0
@ -415,7 +415,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EC1D:: @ 823EC1D
case 127, BattleFrontier_BattleTowerLobby_EventScript_23F0E6
BattleFrontier_BattleTowerLobby_EventScript_23EC59:: @ 823EC59
setvar VAR_0x40CE, 2
setvar VAR_FRONTIER_BATTLE_MODE, 2
message BattleFrontier_BattleTowerLobby_Text_23FD3B
waitmessage
multichoice 17, 6, 24, 0
@ -495,7 +495,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23ED86:: @ 823ED86
case 127, BattleFrontier_BattleTowerLobby_EventScript_23F0E6
BattleFrontier_BattleTowerLobby_EventScript_23EDC2:: @ 823EDC2
setvar VAR_0x40CE, 3
setvar VAR_FRONTIER_BATTLE_MODE, 3
message BattleFrontier_BattleTowerLobby_Text_23FD3B
waitmessage
multichoice 17, 6, 24, 0
@ -679,7 +679,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23F02B:: @ 823F02B
case 1, BattleFrontier_BattleTowerLobby_EventScript_23F08B
BattleFrontier_BattleTowerLobby_EventScript_23F046:: @ 823F046
switch VAR_0x40CE
switch VAR_FRONTIER_BATTLE_MODE
case 0, BattleFrontier_BattleTowerLobby_EventScript_23F06F
case 1, BattleFrontier_BattleTowerLobby_EventScript_23F07D
msgbox BattleFrontier_BattleTowerLobby_Text_24038B, 4
@ -697,7 +697,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23F07D:: @ 823F07D
end
BattleFrontier_BattleTowerLobby_EventScript_23F08B:: @ 823F08B
switch VAR_0x40CE
switch VAR_FRONTIER_BATTLE_MODE
case 0, BattleFrontier_BattleTowerLobby_EventScript_23F0B4
case 1, BattleFrontier_BattleTowerLobby_EventScript_23F0C2
msgbox BattleFrontier_BattleTowerLobby_Text_24046B, 4
@ -754,7 +754,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23F108:: @ 823F108
BattleFrontier_BattleTowerLobby_EventScript_23F135:: @ 823F135
call BattleFrontier_BattleTowerLobby_EventScript_23F1A7
compare VAR_0x40CE, 3
compare VAR_FRONTIER_BATTLE_MODE, 3
goto_eq BattleFrontier_BattleTowerLobby_EventScript_23F152
msgbox BattleFrontier_BattleTowerLobby_Text_23FE11, 4
goto BattleFrontier_BattleTowerLobby_EventScript_23F15B
@ -807,13 +807,13 @@ BattleFrontier_BattleTowerLobby_Movement_23F1A0: @ 823F1A0
step_end
BattleFrontier_BattleTowerLobby_EventScript_23F1A7:: @ 823F1A7
compare VAR_0x40CE, 0
compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F1D4
compare VAR_0x40CE, 1
compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F1D9
compare VAR_0x40CE, 2
compare VAR_FRONTIER_BATTLE_MODE, 2
call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F1DE
compare VAR_0x40CE, 3
compare VAR_FRONTIER_BATTLE_MODE, 3
call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F1E3
return
@ -834,13 +834,13 @@ BattleFrontier_BattleTowerLobby_EventScript_23F1E3:: @ 823F1E3
return
BattleFrontier_BattleTowerLobby_EventScript_23F1E8:: @ 823F1E8
compare VAR_0x40CE, 0
compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F215
compare VAR_0x40CE, 1
compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F21B
compare VAR_0x40CE, 2
compare VAR_FRONTIER_BATTLE_MODE, 2
call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F221
compare VAR_0x40CE, 3
compare VAR_FRONTIER_BATTLE_MODE, 3
call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F227
return
@ -861,13 +861,13 @@ BattleFrontier_BattleTowerLobby_EventScript_23F227:: @ 823F227
return
BattleFrontier_BattleTowerLobby_EventScript_23F22D:: @ 823F22D
compare VAR_0x40CE, 0
compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F25A
compare VAR_0x40CE, 1
compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F260
compare VAR_0x40CE, 2
compare VAR_FRONTIER_BATTLE_MODE, 2
call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F266
compare VAR_0x40CE, 3
compare VAR_FRONTIER_BATTLE_MODE, 3
call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F26C
return
@ -888,13 +888,13 @@ BattleFrontier_BattleTowerLobby_EventScript_23F26C:: @ 823F26C
return
BattleFrontier_BattleTowerLobby_EventScript_23F272:: @ 823F272
compare VAR_0x40CE, 0
compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F29F
compare VAR_0x40CE, 1
compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F2A5
compare VAR_0x40CE, 2
compare VAR_FRONTIER_BATTLE_MODE, 2
call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F2AB
compare VAR_0x40CE, 3
compare VAR_FRONTIER_BATTLE_MODE, 3
call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F2B1
return

View File

@ -110,7 +110,7 @@ BattleFrontier_ScottsHouse_EventScript_263811:: @ 8263811
end
BattleFrontier_ScottsHouse_EventScript_26381B:: @ 826381B
setvar VAR_0x40CE, 0
setvar VAR_FRONTIER_BATTLE_MODE, 0
setvar VAR_0x8004, 2
setvar VAR_0x8005, 1
setvar VAR_0x8006, 0
@ -153,7 +153,7 @@ BattleFrontier_ScottsHouse_EventScript_2638AA:: @ 82638AA
end
BattleFrontier_ScottsHouse_EventScript_2638B4:: @ 82638B4
setvar VAR_0x40CE, 0
setvar VAR_FRONTIER_BATTLE_MODE, 0
setvar VAR_0x8004, 2
setvar VAR_0x8005, 1
setvar VAR_0x8006, 0

View File

@ -149,7 +149,7 @@ FallarborTown_BattleTentLobby_EventScript_200021:: @ 8200021
FallarborTown_BattleTentLobby_EventScript_20005D:: @ 820005D
setvar VAR_FRONTIER_FACILITY, 3
setvar VAR_0x40CE, 0
setvar VAR_FRONTIER_BATTLE_MODE, 0
setvar VAR_RESULT, 2
setvar VAR_0x8004, 15
special sub_81A1780

View File

@ -137,7 +137,7 @@ SlateportCity_BattleTentLobby_EventScript_2088CA:: @ 82088CA
SlateportCity_BattleTentLobby_EventScript_208906:: @ 8208906
setvar VAR_FRONTIER_FACILITY, 4
setvar VAR_0x40CE, 0
setvar VAR_FRONTIER_BATTLE_MODE, 0
setvar VAR_0x8004, 2
setvar VAR_0x8005, 1
setvar VAR_0x8006, 2

View File

@ -150,7 +150,7 @@ VerdanturfTown_BattleTentLobby_EventScript_201893:: @ 8201893
VerdanturfTown_BattleTentLobby_EventScript_2018CF:: @ 82018CF
setvar VAR_FRONTIER_FACILITY, 2
setvar VAR_0x40CE, 0
setvar VAR_FRONTIER_BATTLE_MODE, 0
setvar VAR_RESULT, 2
setvar VAR_0x8004, 15
special sub_81A1780

View File

@ -244,7 +244,7 @@ gSpecials:: @ 81DBA64
def_special GetLeadMonFriendshipScore
def_special sub_81A1780
def_special sub_8161F74
def_special sub_818E9AC
def_special CallBattleDomeFunction
def_special sub_8195960
def_special sub_8165360
def_special sub_8163AC4

9
include/battle_dome.h Normal file
View File

@ -0,0 +1,9 @@
#ifndef GUARD_BATTLE_DOME_H
#define GUARD_BATTLE_DOME_H
extern u32 gUnknown_0203CD70;
s32 GetTrainerMonCountInBits(u16 tournamentTrainerId);
s32 TrainerIdToDomeTournamentId(u16 trainerId);
#endif // GUARD_BATTLE_DOME_H

View File

@ -1,13 +0,0 @@
#ifndef GUARD_BATTLE_DOME_CARDS_H
#define GUARD_BATTLE_DOME_CARDS_H
bool16 dp13_810BB8C(void);
u16 sub_818D3E4(u16 species, u32 otId, u32 personality, u8 flags, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
u16 sub_818D7D8(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
u16 sub_818D820(u16 spriteId);
u16 sub_818D8AC(u16 species, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
u16 sub_818D8F0(u16 spriteId);
u16 sub_818D938(u16 species, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId);
u8 sub_818D97C(u8 a0, u8 a1);
#endif //GUARD_BATTLE_DOME_CARDS_H

View File

@ -1,8 +0,0 @@
#ifndef GUARD_BATTLE_FRONTIER_1_H
#define GUARD_BATTLE_FRONTIER_1_H
bool32 sub_8196094(void);
void sub_8197080(u8 *);
void sub_8196080(const u8 *str);
#endif // GUARD_BATTLE_FRONTIER_1_H

View File

@ -224,6 +224,7 @@ extern const u8* const gStatNamesTable[];
extern const u8* const gPokeblockWasTooXStringTable[];
extern const u8* const gRefereeStringsTable[];
extern const u8* const gStatNamesTable2[];
extern const u8 *const gRoundsStringTable[];
extern const u8 gText_PkmnIsEvolving[];
extern const u8 gText_CongratsPkmnEvolved[];

View File

@ -256,7 +256,7 @@ extern const u8 BattleScript_82DB87D[];
extern const u8 BattleScript_82DB881[];
extern const u8 BattleScript_82DB887[];
extern const u8 BattleScript_82DB89D[];
extern const u8 BattleScript_82DB8BE[];
extern const u8 BattleScript_ArenaTurnBeginning[];
extern const u8 BattleScript_82DB8E0[];
extern const u8 BattleScript_82DB8F3[];
extern const u8 BattleScript_82DB973[];

View File

@ -24,7 +24,7 @@ union BattleTowerRecord
struct BattleFrontierTrainer
{
u32 trainerClass;
u32 facilityClass;
u8 trainerName[8];
u16 speechBefore[6];
u16 speechWin[6];
@ -32,7 +32,17 @@ struct BattleFrontierTrainer
u16 *btMonPool;
};
extern struct BattleFrontierTrainer *gUnknown_0203BC88;
struct FacilityMon
{
u16 species;
u16 moves[4];
u8 itemTableId;
u8 evSpread;
u8 nature;
};
extern const struct BattleFrontierTrainer *gFacilityTrainers;
extern const struct FacilityMon *gFacilityTrainerMons;
u16 sub_8164FCC(u8, u8);
void sub_81659DC(struct RSBattleTowerRecord *a0, struct RSBattleTowerRecord *a1);
@ -40,7 +50,7 @@ bool32 sub_816587C(union BattleTowerRecord *, union BattleTowerRecord *);
void CalcEmeraldBattleTowerChecksum(struct EmeraldBattleTowerRecord *);
void sub_81628A0(union BattleTowerRecord *);
void sub_8162614(u16 trainerId, u8);
void ConvertBattleFrontierTrainerSpeechToString(u16 *words);
void ConvertBattleFrontierTrainerSpeechToString(const u16 *words);
void GetFrontierTrainerName(u8 *dest, u16 trainerIdx);
void GetEreaderTrainerName(u8 *dest);

View File

@ -69,7 +69,7 @@ void* GetBgTilemapBuffer(u8 bg);
void CopyToBgTilemapBuffer(u8 bg, const void *src, u16 mode, u16 destOffset);
void CopyBgTilemapBufferToVram(u8 bg);
void CopyToBgTilemapBufferRect(u8 bg, const void* src, u8 destX, u8 destY, u8 width, u8 height);
void CopyToBgTilemapBufferRect_ChangePalette(u8 bg, void *src, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette);
void CopyToBgTilemapBufferRect_ChangePalette(u8 bg, const void *src, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette);
void CopyRectToBgTilemapBufferRect(u8 bg, const void *src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, u16 tileOffset, u16 palette2);
void FillBgTilemapBufferRect_Palette0(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height);
void FillBgTilemapBufferRect(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height, u8 palette);

View File

@ -10,4 +10,14 @@
#define FRONTIER_FACILITY_PIKE 5
#define FRONTIER_FACILITY_PYRAMID 6
// Battle Frontier lvl modes.
#define FRONTIER_LVL_50 0
#define FRONTIER_LVL_OPEN 1
// Battle Frontier battle modes.
#define FRONTIER_MODE_SINGLES 0
#define FRONTIER_MODE_DOUBLES 1
#define FRONTIER_MODE_MULTIS 2
#define FRONTIER_MODE_LINK_MULTIS 3
#endif // GUARD_CONSTANTS_BATTLE_FRONTIER_H

View File

@ -71,6 +71,8 @@
#define VARIOUS_WAIT_CRY 18
#define VARIOUS_RETURN_OPPONENT_MON1 19
#define VARIOUS_RETURN_OPPONENT_MON2 20
#define VARIOUS_VOLUME_DOWN 21
#define VARIOUS_VOLUME_UP 22
#define VARIOUS_SET_TELEPORT_OUTCOME 25
#define VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC 26

View File

@ -5,6 +5,7 @@
// Special Trainer Ids.
#define TRAINER_FRONTIER_BRAIN 1022
#define TRAINER_PLAYER 1023
#define TRAINER_SECRET_BASE 1024
#define TRAINER_LINK_OPPONENT 2048
#define TRAINER_OPPONENT_C00 3072
@ -173,10 +174,10 @@
#define FACILITY_CLASS_TWINS 0x39
#define FACILITY_CLASS_SAILOR 0x3a
#define FACILITY_CLASS_PKMN_TRAINER_1 0x3b
#define FACILITY_CLASS_PKMN_TRAINER_MAY 0x3c
#define FACILITY_CLASS_PKMN_TRAINER_BRENDAN 0x3c
#define FACILITY_CLASS_PKMN_TRAINER_3 0x3d
#define FACILITY_CLASS_PKMN_TRAINER_4 0x3e
#define FACILITY_CLASS_PKMN_TRAINER_BRENDAN 0x3f
#define FACILITY_CLASS_PKMN_TRAINER_MAY 0x3f
#define FACILITY_CLASS_PKMN_TRAINER_6 0x40
#define FACILITY_CLASS_PKMN_TRAINER_7 0x41
#define FACILITY_CLASS_PKMN_BREEDER_2 0x42

View File

@ -222,7 +222,7 @@
#define VAR_0x40CB 0x40CB
#define VAR_0x40CC 0x40CC
#define VAR_0x40CD 0x40CD
#define VAR_0x40CE 0x40CE
#define VAR_FRONTIER_BATTLE_MODE 0x40CE
#define VAR_FRONTIER_FACILITY 0x40CF
#define VAR_0x40D0 0x40D0
#define VAR_0x40D1 0x40D1

View File

@ -550,12 +550,14 @@
#define WININ_WIN0_BG1 (1 << 1)
#define WININ_WIN0_BG2 (1 << 2)
#define WININ_WIN0_BG3 (1 << 3)
#define WININ_WIN0_BG_ALL (WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_BG3)
#define WININ_WIN0_OBJ (1 << 4)
#define WININ_WIN0_CLR (1 << 5)
#define WININ_WIN1_BG0 (1 << 8)
#define WININ_WIN1_BG1 (1 << 9)
#define WININ_WIN1_BG2 (1 << 10)
#define WININ_WIN1_BG3 (1 << 11)
#define WININ_WIN1_BG_ALL (WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_BG3)
#define WININ_WIN1_OBJ (1 << 12)
#define WININ_WIN1_CLR (1 << 13)

View File

@ -330,6 +330,29 @@ struct EmeraldBattleTowerRecord
/*0xE8*/ u32 checksum;
};
struct FrontierMonData
{
u16 moves[4];
u8 evs[6];
u8 nature;
};
struct Struct_field_E70
{
u16 monId;
u8 unk2[9];
};
struct BattleDomeTrainer
{
u16 trainerId:10;
u16 isEliminated:1;
u16 eliminatedAt:2;
u16 unk3:3;
};
#define DOME_TOURNAMENT_TRAINERS_COUNT 16
struct BattleFrontier
{
/*0x64C*/ struct EmeraldBattleTowerRecord battleTower;
@ -345,16 +368,18 @@ struct BattleFrontier
/*0xC14*/ u16 ecwords_C14[6];
/*0xC20*/ u8 filler_C20[0x88];
/*0xCA8*/ u8 field_CA8;
/*0xCA9*/ u8 chosenLvl:2; // 0x1, 0x2 -> 0x3
/*0xCA9*/ u8 lvlMode:2; // 0x1, 0x2 -> 0x3
/*0xCA9*/ u8 field_CA9_a:1; // 0x4
/*0xCA9*/ u8 field_CA9_b:1; // 0x8
/*0xCA9*/ u8 field_CA9_c:1; // 0x10
/*0xCA9*/ u8 field_CA9_d:1; // 0x20
/*0xCA9*/ u8 field_CA9_e:1; // 0x40
/*0xCA9*/ u8 field_CA9_f:1; // 0x80
/*0xCAA*/ u16 field_CAA[4];
/*0xCAA*/ u16 field_CAA[3];
/*0xCB0*/ u16 field_CB0;
/*0xCB2*/ u16 field_CB2;
/*0xCB4*/ u16 field_CB4[22];
/*0xCB4*/ u16 field_CB4[20];
/*0xCDC*/ u32 field_CDC;
/*0xCE0*/ u16 field_CE0[4][2];
/*0xCF0*/ u16 field_CF0[2];
/*0xCF4*/ u16 field_CF4[2];
@ -362,21 +387,25 @@ struct BattleFrontier
/*0xCFC*/ u16 field_CFC[5];
/*0xD06*/ u8 field_D06;
/*0xD07*/ u8 field_D07;
/*0xD08*/ u8 filler_D08;
/*0xD08*/ u8 field_D08_0:1;
/*0xD08*/ u8 field_D08_1:1;
/*0xD08*/ u8 field_D08_2:1;
/*0xD08*/ u8 field_D08_3:1;
/*0xD08*/ u8 field_D08_4:1;
/*0xD08*/ u8 field_D08_5:1;
/*0xD08*/ u8 field_D08_6:1;
/*0xD08*/ u8 field_D08_7:1;
/*0xD09*/ u8 filler_D09;
/*0xD0A*/ u8 filler_D0A;
/*0xD0B*/ u8 filler_D0B;
/*0xD0C*/ u16 field_D0C[2];
/*0xD10*/ u8 filler_D10;
/*0xD11*/ u8 filler_D11;
/*0xD12*/ u8 filler_D12;
/*0xD13*/ u8 filler_D13;
/*0xD14*/ u16 field_D14[2];
/*0xD18*/ u8 field_D18[0xB0];
/*0xDC8*/ u16 field_DC8[2];
/*0xDCC*/ u8 filler_DCC[4];
/*0xDD0*/ u16 field_DD0[2];
/*0xDD4*/ u16 field_DD4[2];
/*0xD0A*/ u8 field_D0A;
/*0xD0B*/ u8 field_D0B;
/*0xD0C*/ u16 field_D0C[2][2];
/*0xD14*/ u16 field_D14[2][2];
/*0xD1C*/ u16 field_D1C[2][2];
/*0xD24*/ struct BattleDomeTrainer domeTrainers[DOME_TOURNAMENT_TRAINERS_COUNT];
/*0xD64*/ u16 domeMonId[DOME_TOURNAMENT_TRAINERS_COUNT][3];
/*0xD64*/ u16 field_DC4[2];
/*0xDC8*/ u16 field_DC8[2][2];
/*0xDD0*/ u16 field_DD0[2][2];
/*0xDD8*/ u16 field_DD8;
/*0xDDA*/ u16 field_DDA[2];
/*0xDDE*/ u16 field_DDE[2];
@ -404,12 +433,22 @@ struct BattleFrontier
/*0xE6A*/ u16 field_E6A;
/*0xE6C*/ u16 field_E6C;
/*0xE6E*/ u16 field_E6E;
/*0xE70*/ u8 field_E70[72];
/*0xE70*/ struct Struct_field_E70 field_E70[6];
/*0xEB8*/ u16 frontierBattlePoints;
/*0xEBA*/ u8 field_EBA[39];
/*0xEBA*/ u8 field_EBA;
/*0xEBB*/ u8 field_EBB;
/*0xEBC*/ u8 field_EBC;
/*0xEBD*/ u8 field_EBD;
/*0xEBE*/ u8 field_EBE;
/*0xEBF*/ u8 field_EBF;
/*0xEC0*/ u16 field_EC0[16];
/*0xEE0*/ u8 field_EE0;
/*0xEE1*/ u8 field_EE1[2][PLAYER_NAME_LENGTH];
/*0xEF1*/ u8 field_EF1[2][4];
/*0xEF9*/ u8 field_EF9[51];
/*0xEF9*/ u8 field_EF9;
/*0xEFA*/ u8 field_EFA;
/*0xEFB*/ u8 field_EFB;
/*0xEFC*/ struct FrontierMonData field_EFC[3];
};
struct SaveBlock2

View File

@ -53,7 +53,7 @@ void *decompress_and_copy_tile_data_to_vram(u8 bgId, const void *src, int size,
bool8 free_temp_tile_data_buffers_if_possible(void);
struct WindowTemplate CreateWindowTemplate(u8, u8, u8, u8, u8, u8, u16);
void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos);
void copy_decompressed_tile_data_to_vram_autofree(u8 bgId, const void *src, int size, u16 offset, u8 mode);
void DecompressAndLoadBgGfxUsingHeap(u8 bgId, const void *src, int size, u16 offset, u8 mode);
s8 Menu_ProcessInputNoWrap_(void);
s8 ProcessMenuInput_other(void);
void do_scheduled_bg_tilemap_copies_to_vram(void);

View File

@ -456,6 +456,7 @@ extern const u8 gStatStageRatios[][2];
extern const u16 gUnknown_08329D54[];
extern const struct SpriteTemplate gUnknown_08329D98[];
extern const struct CompressedSpritePalette gMonPaletteTable[];
extern const s8 gNatureStatTable[][5];
void ZeroBoxMonData(struct BoxPokemon *boxMon);
void ZeroMonData(struct Pokemon *mon);

View File

@ -0,0 +1,13 @@
#ifndef GUARD_TRAINER_POKEMON_SPRITES_H
#define GUARD_TRAINER_POKEMON_SPRITES_H
bool16 ResetAllPicSprites(void);
u16 CreatePicSprite2(u16 species, u32 otId, u32 personality, u8 flags, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
u16 CreateMonPicSprite_HandleDeoxys(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
u16 FreeAndDestroyMonPicSprite(u16 spriteId);
u16 CreateTrainerPicSprite(u16 species, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
u16 FreeAndDestroyTrainerPicSprite(u16 spriteId);
u16 sub_818D938(u16 species, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId);
u16 PlayerGenderToFrontTrainerPicId_Debug(u8 gender, bool8 getClass);
#endif // GUARD_TRAINER_POKEMON_SPRITES_H

View File

@ -212,6 +212,7 @@ SECTIONS {
src/fldeff_softboiled.o(.text);
src/decoration_inventory.o(.text);
src/roamer.o(.text);
src/battle_tower.o(.text);
asm/battle_tower.o(.text);
src/use_pokeblock.o(.text);
asm/use_pokeblock.o(.text);
@ -240,8 +241,10 @@ SECTIONS {
src/recorded_battle.o(.text);
src/battle_controller_recorded_opponent.o(.text);
src/battle_controller_recorded_player.o(.text);
src/battle_dome_cards.o(.text);
src/trainer_pokemon_sprites.o(.text);
src/lilycove_lady.o(.text);
src/battle_dome.o(.text);
src/battle_frontier_1.o(.text);
asm/battle_frontier_1.o(.text);
src/menu.o(.text);
asm/battle_frontier_2.o(.text);
@ -263,8 +266,8 @@ SECTIONS {
src/berry_fix_program.o(.text);
src/pokemon_summary_screen.o(.text);
src/unk_pokedex_area_screen_helper.o(.text);
src/battle_pyramid.o(.text);
asm/battle_pyramid.o(.text);
src/battle_pyramid_bag.o(.text);
asm/battle_pyramid_bag.o(.text);
asm/pokenav.o(.text);
src/match_call.o(.text);
asm/pokenav.o(.text.after.match.call);
@ -522,8 +525,9 @@ SECTIONS {
src/pokemon_animation.o(.rodata);
src/battle_controller_recorded_opponent.o(.rodata);
src/battle_controller_recorded_player.o(.rodata);
src/battle_dome_cards.o(.rodata);
src/trainer_pokemon_sprites.o(.rodata);
src/lilycove_lady.o(.rodata);
src/battle_dome.o(.rodata);
data/battle_frontier_1.o(.rodata);
src/menu.o(.rodata);
data/battle_frontier_2.o(.rodata);
@ -541,7 +545,7 @@ SECTIONS {
src/berry_fix_program.o(.rodata);
src/pokemon_summary_screen.o(.rodata);
src/unk_pokedex_area_screen_helper.o(.rodata);
data/battle_pyramid.o(.rodata);
data/battle_pyramid_bag.o(.rodata);
data/pokenav.o(.rodata);
src/match_call.o(.rodata);
data/pokenav.o(.rodata.after.match.call);

View File

@ -1606,22 +1606,22 @@ static void OpponentHandleChoosePokemon(void)
{
s32 chosenMonId;
if (*(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) == 6)
if (*(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) == PARTY_SIZE)
{
chosenMonId = GetMostSuitableMonToSwitchInto();
if (chosenMonId == 6)
if (chosenMonId == PARTY_SIZE)
{
s32 bank1, bank2, firstId, lastId;
s32 battler1, battler2, firstId, lastId;
if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
{
bank2 = bank1 = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
battler2 = battler1 = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
}
else
{
bank1 = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
bank2 = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT);
battler1 = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
battler2 = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT);
}
if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000))
@ -1639,8 +1639,8 @@ static void OpponentHandleChoosePokemon(void)
for (chosenMonId = firstId; chosenMonId < lastId; chosenMonId++)
{
if (GetMonData(&gEnemyParty[chosenMonId], MON_DATA_HP) != 0
&& chosenMonId != gBattlerPartyIndexes[bank1]
&& chosenMonId != gBattlerPartyIndexes[bank2])
&& chosenMonId != gBattlerPartyIndexes[battler1]
&& chosenMonId != gBattlerPartyIndexes[battler2])
{
break;
}
@ -1650,7 +1650,7 @@ static void OpponentHandleChoosePokemon(void)
else
{
chosenMonId = *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler);
*(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = 6;
*(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = PARTY_SIZE;
}

View File

@ -31,13 +31,13 @@
#include "item_use.h"
#include "recorded_battle.h"
#include "party_menu.h"
#include "battle_dome.h"
extern u8 gUnknown_0203CEE8;
extern u8 gUnknown_0203CEE9;
extern u8 gUnknown_0203CF00[];
extern u16 gBattle_BG0_X;
extern u16 gBattle_BG0_Y;
extern s32 gUnknown_0203CD70;
extern struct UnusedControllerStruct gUnknown_02022D0C;
extern struct MusicPlayerInfo gMPlayInfo_BGM;
extern struct SpriteTemplate gMultiuseSpriteTemplate;

6488
src/battle_dome.c Normal file

File diff suppressed because it is too large Load Diff

118
src/battle_frontier_1.c Normal file
View File

@ -0,0 +1,118 @@
#include "global.h"
#include "event_data.h"
#include "battle_setup.h"
#include "overworld.h"
#include "random.h"
#include "battle_tower.h"
extern void sub_8162614(u16, u8);
extern void (* const gUnknown_0860DE50[])(void);
extern const u32 gUnknown_0860DE98[][2];
extern const u32 gUnknown_0860DEA8[][2];
// code
void sub_8195960(void)
{
gUnknown_0860DE50[gSpecialVar_0x8004]();
}
void sub_8195980(void)
{
u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
gSaveBlock2Ptr->frontier.field_CA8 = 0;
gSaveBlock2Ptr->frontier.field_CB2 = 0;
gSaveBlock2Ptr->frontier.field_CA9_a = 0;
gSaveBlock2Ptr->frontier.field_CA9_b = 0;
if (!(gSaveBlock2Ptr->frontier.field_CDC & gUnknown_0860DE98[battleMode][lvlMode]))
gSaveBlock2Ptr->frontier.field_DC8[battleMode][lvlMode] = 0;
saved_warp2_set(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1);
gTrainerBattleOpponent_A = 0;
}
void sub_8195A38(void)
{
u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
switch (gSpecialVar_0x8005)
{
case 0:
gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_DC4[1];
break;
case 1:
gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_DC8[battleMode][lvlMode];
break;
case 2:
gSpecialVar_Result = ((gSaveBlock2Ptr->frontier.field_CDC & gUnknown_0860DE98[battleMode][lvlMode]) != 0);
break;
}
}
void sub_8195AE4(void)
{
u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
switch (gSpecialVar_0x8005)
{
case 0:
gSaveBlock2Ptr->frontier.field_DC4[1] = gSpecialVar_0x8006;
break;
case 1:
gSaveBlock2Ptr->frontier.field_DC8[battleMode][lvlMode] = gSpecialVar_0x8006;
break;
case 2:
if (gSpecialVar_0x8006)
gSaveBlock2Ptr->frontier.field_CDC |= gUnknown_0860DE98[battleMode][lvlMode];
else
gSaveBlock2Ptr->frontier.field_CDC &= gUnknown_0860DEA8[battleMode][lvlMode];
break;
}
}
void sub_8195BB0(void)
{
u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
if (gSaveBlock2Ptr->frontier.field_DC8[battleMode][lvlMode] < 50)
gSpecialVar_Result = Random() % 3;
else if (gSaveBlock2Ptr->frontier.field_DC8[battleMode][lvlMode] < 99)
gSpecialVar_Result = 3;
else
gSpecialVar_Result = 4;
}
void sub_8195C20(void)
{
gTrainerBattleOpponent_A = 5 *(Random() % 255) / 64u;
sub_8162614(gTrainerBattleOpponent_A, 0);
}
void sub_8195C50(void)
{
if (gTrainerBattleOpponent_A < 300)
ConvertBattleFrontierTrainerSpeechToString(gFacilityTrainers[gTrainerBattleOpponent_A].speechBefore);
}
/*
void sub_8195C7C(void)
{
u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
u8 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
if (gSaveBlock2Ptr->frontier.field_DC8[battleMode][lvlMode] < 9999)
{
u16 wat = 0;
gSaveBlock2Ptr->frontier.field_DC8[battleMode][lvlMode]++;
if (lvlMode < gSaveBlock2Ptr->frontier.field_DD0[battleMode][lvlMode])
wat = 1;
if (gSaveBlock2Ptr->frontier.field_DC8[battleMode][wat] != 0)
gSaveBlock2Ptr->frontier.field_DD0[battleMode][lvlMode] = gSaveBlock2Ptr->frontier.field_DC8[battleMode][lvlMode];
}
}
*/

View File

@ -3929,7 +3929,7 @@ static void TryDoEventsBeforeFirstTurn(void)
if (gBattleTypeFlags & BATTLE_TYPE_ARENA)
{
StopCryAndClearCrySongs();
BattleScriptExecute(BattleScript_82DB8BE);
BattleScriptExecute(BattleScript_ArenaTurnBeginning);
}
}
@ -4019,7 +4019,7 @@ void BattleTurnPassed(void)
if (gBattleTypeFlags & BATTLE_TYPE_PALACE)
BattleScriptExecute(BattleScript_82DB881);
else if (gBattleTypeFlags & BATTLE_TYPE_ARENA && gBattleStruct->field_DA == 0)
BattleScriptExecute(BattleScript_82DB8BE);
BattleScriptExecute(BattleScript_ArenaTurnBeginning);
}
u8 IsRunningFromBattleImpossible(void)

View File

@ -1248,7 +1248,7 @@ static const u8 sText_Round2[] = _("Round 2");
static const u8 sText_Semifinal[] = _("Semifinal");
static const u8 sText_Final[] = _("Final");
const u8 * const gRoundsStringTable[] =
const u8 *const gRoundsStringTable[] =
{
sText_Round1,
sText_Round2,

View File

@ -6750,10 +6750,10 @@ static void atk76_various(void)
}
}
break;
case 21:
case VARIOUS_VOLUME_DOWN:
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x55);
break;
case 22:
case VARIOUS_VOLUME_UP:
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100);
break;
case 23:

View File

@ -33,6 +33,7 @@
#include "field_weather.h"
#include "gym_leader_rematch.h"
#include "constants/map_types.h"
#include "constants/battle_frontier.h"
enum
{
@ -863,7 +864,7 @@ u8 sub_80B100C(s32 arg0)
return sUnknown_0854FEA7[Random() % ARRAY_COUNT(sUnknown_0854FEA7)];
}
if (VarGet(VAR_0x40CE) != 3)
if (VarGet(VAR_FRONTIER_BATTLE_MODE) != FRONTIER_MODE_LINK_MULTIS)
return sUnknown_0854FE98[Random() % ARRAY_COUNT(sUnknown_0854FE98)];
}
else
@ -880,7 +881,7 @@ u8 sub_80B100C(s32 arg0)
return sUnknown_0854FEA7[Random() % ARRAY_COUNT(sUnknown_0854FEA7)];
}
if (VarGet(VAR_0x40CE) != 3)
if (VarGet(VAR_FRONTIER_BATTLE_MODE) != FRONTIER_MODE_LINK_MULTIS)
return sUnknown_0854FE98[Random() % ARRAY_COUNT(sUnknown_0854FE98)];
}

View File

@ -11,7 +11,11 @@
#include "constants/items.h"
#include "constants/region_map_sections.h"
// this file's functions
extern const struct BattleFrontierTrainer gSlateportBattleTentTrainers[];
extern const struct FacilityMon gSlateportBattleTentMons[];
extern const u16 gBattleFrontierHeldItems[];
// This file's functions.
void sub_81B99D4(void);
void sub_81B9A28(void);
void sub_81B9A44(void);
@ -51,7 +55,7 @@ void (*const gUnknown_086160B4[])(void) =
sub_81B9B28
};
const u16 gUnknown_086160D4[] = {ITEM_NEST_BALL, ITEM_NONE};
static const u16 sVerdanturfTentRewards[] = {ITEM_NEST_BALL};
void (*const gUnknown_086160D8[])(void) =
{
@ -64,7 +68,7 @@ void (*const gUnknown_086160D8[])(void) =
sub_81B9CF0
};
const u16 gUnknown_086160F4[] = {ITEM_HYPER_POTION, ITEM_NONE};
static const u16 sFallarborTentRewards[] = {ITEM_HYPER_POTION};
void (*const gUnknown_086160F8[])(void) =
{
@ -80,7 +84,7 @@ void (*const gUnknown_086160F8[])(void) =
sub_81B9EC0
};
const u16 gUnknown_08616120[] = {ITEM_FULL_HEAL, ITEM_NONE};
static const u16 sSlateportTentRewards[] = {ITEM_FULL_HEAL};
// code
void sub_81B99B4(void)
@ -115,7 +119,7 @@ void sub_81B9A60(void)
void sub_81B9A90(void)
{
if (gTrainerBattleOpponent_A < 300)
ConvertBattleFrontierTrainerSpeechToString(gUnknown_0203BC88[gTrainerBattleOpponent_A].speechBefore);
ConvertBattleFrontierTrainerSpeechToString(gFacilityTrainers[gTrainerBattleOpponent_A].speechBefore);
}
void sub_81B9ABC(void)
@ -128,7 +132,7 @@ void sub_81B9ABC(void)
void sub_81B9B00(void)
{
gSaveBlock2Ptr->frontier.field_E6A = gUnknown_086160D4[Random() % 1];
gSaveBlock2Ptr->frontier.field_E6A = sVerdanturfTentRewards[Random() % ARRAY_COUNT(sVerdanturfTentRewards)];
}
void sub_81B9B28(void)
@ -178,7 +182,7 @@ void sub_81B9C2C(void)
void sub_81B9C70(void)
{
gSaveBlock2Ptr->frontier.field_E6C = gUnknown_086160F4[Random() % 1];
gSaveBlock2Ptr->frontier.field_E6C = sFallarborTentRewards[Random() % ARRAY_COUNT(sFallarborTentRewards)];
}
void sub_81B9C98(void)
@ -233,7 +237,7 @@ void sub_81B9DB4(void)
void sub_81B9DF8(void)
{
gSaveBlock2Ptr->frontier.field_E6E = gUnknown_08616120[Random() % 1];
gSaveBlock2Ptr->frontier.field_E6E = sSlateportTentRewards[Random() % ARRAY_COUNT(sSlateportTentRewards)];
}
void sub_81B9E20(void)
@ -266,3 +270,259 @@ bool8 sub_81B9E94(void)
return (gMapHeader.regionMapSectionId == MAPSEC_SLATEPORT_CITY
&& ((gMapHeader.mapLayoutId == 385) | (gMapHeader.mapLayoutId == 386)));
}
// This function was written very...oddly.
#ifdef NONMATCHING
void sub_81B9EC0(void)
{
s32 i, j;
u16 currMonId = 0, currSpecies = 0;
u16 species[PARTY_SIZE];
u16 monIds[PARTY_SIZE];
u16 heldItems[PARTY_SIZE];
s32 zero = 0;
gFacilityTrainers = gSlateportBattleTentTrainers;
for (i = 0; i < PARTY_SIZE; i++)
{
species[i] = 0;
monIds[i] = 0;
heldItems[i] = 0;
}
gFacilityTrainerMons = gSlateportBattleTentMons;
currSpecies = 0;
for (i = 0; i != PARTY_SIZE;)
{
// Cannot have two pokemon of the same species.
currMonId = Random() % 70;
for (j = zero; j < i + zero; j++)
{
if (monIds[j] == currMonId)
break;
if (species[j] == gFacilityTrainerMons[currMonId].species)
{
if (currSpecies == 0)
currSpecies = gFacilityTrainerMons[currMonId].species;
else
break;
}
}
if (j != i + zero)
continue;
// Cannot have two same held items.
for (j = zero; j < i + zero; j++)
{
if (heldItems[j] == 0)
continue;
if (heldItems[j] == gBattleFrontierHeldItems[gFacilityTrainerMons[currMonId].itemTableId])
{
if (gFacilityTrainerMons[currMonId].species == currSpecies)
currSpecies = 0;
else
break;
}
}
if (j != i + zero)
continue;
gSaveBlock2Ptr->frontier.field_E70[i].monId = currMonId;
species[i] = gFacilityTrainerMons[currMonId].species;
heldItems[i] = gBattleFrontierHeldItems[gFacilityTrainerMons[currMonId].itemTableId];
monIds[i] = currMonId;
i++;
}
}
#else
NAKED
void sub_81B9EC0(void)
{
asm_unified("\n\
push {r4-r7,lr}\n\
mov r7, r10\n\
mov r6, r9\n\
mov r5, r8\n\
push {r5-r7}\n\
sub sp, 0x3C\n\
ldr r1, =gFacilityTrainers\n\
ldr r0, =gSlateportBattleTentTrainers\n\
str r0, [r1]\n\
add r0, sp, 0xC\n\
mov r9, r0\n\
mov r1, sp\n\
adds r1, 0x18\n\
str r1, [sp, 0x2C]\n\
ldr r5, =gFacilityTrainerMons\n\
ldr r4, =gSlateportBattleTentMons\n\
movs r2, 0\n\
adds r3, r1, 0\n\
mov r1, r9\n\
mov r0, sp\n\
movs r6, 0x5\n\
mov r8, r6\n\
_081B9EEC:\n\
strh r2, [r0]\n\
strh r2, [r1]\n\
strh r2, [r3]\n\
adds r3, 0x2\n\
adds r1, 0x2\n\
adds r0, 0x2\n\
movs r7, 0x1\n\
negs r7, r7\n\
add r8, r7\n\
mov r6, r8\n\
cmp r6, 0\n\
bge _081B9EEC\n\
str r4, [r5]\n\
movs r7, 0\n\
mov r10, r7\n\
movs r0, 0\n\
mov r8, r0\n\
ldr r1, [sp, 0x2C]\n\
str r1, [sp, 0x30]\n\
mov r2, sp\n\
str r2, [sp, 0x34]\n\
lsls r6, r0, 1\n\
str r6, [sp, 0x24]\n\
add r6, r9\n\
str r6, [sp, 0x28]\n\
_081B9F1E:\n\
bl Random\n\
lsls r0, 16\n\
lsrs r0, 16\n\
movs r1, 0x46\n\
bl __umodsi3\n\
lsls r0, 16\n\
lsrs r5, r0, 16\n\
movs r2, 0\n\
mov r7, r8\n\
adds r6, r2, r7\n\
cmp r2, r6\n\
bge _081B9F7C\n\
ldr r1, [sp, 0x28]\n\
ldrh r0, [r1]\n\
cmp r0, r5\n\
beq _081B9F7C\n\
ldr r0, =gFacilityTrainerMons\n\
ldr r1, [r0]\n\
lsls r0, r5, 4\n\
adds r4, r0, r1\n\
ldrh r7, [r4]\n\
mov r12, r7\n\
lsls r3, r2, 1\n\
ldr r1, [sp, 0x24]\n\
add r1, sp\n\
str r6, [sp, 0x38]\n\
_081B9F56:\n\
ldrh r0, [r1]\n\
cmp r0, r12\n\
bne _081B9F66\n\
mov r0, r10\n\
cmp r0, 0\n\
bne _081B9F7C\n\
ldrh r7, [r4]\n\
mov r10, r7\n\
_081B9F66:\n\
adds r3, 0x2\n\
adds r1, 0x2\n\
adds r2, 0x1\n\
ldr r0, [sp, 0x38]\n\
cmp r2, r0\n\
bge _081B9F7C\n\
mov r7, r9\n\
adds r0, r7, r3\n\
ldrh r0, [r0]\n\
cmp r0, r5\n\
bne _081B9F56\n\
_081B9F7C:\n\
cmp r2, r6\n\
bne _081BA01C\n\
movs r2, 0\n\
cmp r2, r6\n\
bge _081B9FD4\n\
ldr r0, =gBattleFrontierHeldItems\n\
mov r12, r0\n\
ldr r7, =gFacilityTrainerMons\n\
ldr r1, [sp, 0x24]\n\
ldr r0, [sp, 0x2C]\n\
adds r4, r1, r0\n\
_081B9F92:\n\
ldrh r3, [r4]\n\
cmp r3, 0\n\
beq _081B9FCC\n\
ldr r1, [r7]\n\
lsls r0, r5, 4\n\
adds r1, r0, r1\n\
ldrb r0, [r1, 0xA]\n\
lsls r0, 1\n\
add r0, r12\n\
ldrh r0, [r0]\n\
cmp r3, r0\n\
bne _081B9FCC\n\
ldrh r0, [r1]\n\
cmp r0, r10\n\
bne _081B9FD4\n\
movs r1, 0\n\
mov r10, r1\n\
b _081B9FD4\n\
.pool\n\
_081B9FCC:\n\
adds r4, 0x2\n\
adds r2, 0x1\n\
cmp r2, r6\n\
blt _081B9F92\n\
_081B9FD4:\n\
cmp r2, r6\n\
bne _081BA01C\n\
ldr r0, =gSaveBlock2Ptr\n\
ldr r1, [r0]\n\
mov r2, r8\n\
lsls r3, r2, 1\n\
adds r0, r3, r2\n\
lsls r0, 2\n\
adds r1, r0\n\
movs r6, 0xE7\n\
lsls r6, 4\n\
adds r1, r6\n\
strh r5, [r1]\n\
ldr r0, =gFacilityTrainerMons\n\
ldr r0, [r0]\n\
lsls r1, r5, 4\n\
adds r1, r0\n\
ldrh r0, [r1]\n\
ldr r7, [sp, 0x34]\n\
strh r0, [r7]\n\
ldr r2, =gBattleFrontierHeldItems\n\
ldrb r0, [r1, 0xA]\n\
lsls r0, 1\n\
adds r0, r2\n\
ldrh r0, [r0]\n\
ldr r1, [sp, 0x30]\n\
strh r0, [r1]\n\
add r3, r9\n\
strh r5, [r3]\n\
adds r1, 0x2\n\
str r1, [sp, 0x30]\n\
adds r2, r7, 0\n\
adds r2, 0x2\n\
str r2, [sp, 0x34]\n\
movs r6, 0x1\n\
add r8, r6\n\
_081BA01C:\n\
mov r7, r8\n\
cmp r7, 0x6\n\
beq _081BA024\n\
b _081B9F1E\n\
_081BA024:\n\
add sp, 0x3C\n\
pop {r3-r5}\n\
mov r8, r3\n\
mov r9, r4\n\
mov r10, r5\n\
pop {r4-r7}\n\
pop {r0}\n\
bx r0\n\
.pool\n\
");
}
#endif // NONMATCHING

85
src/battle_tower.c Normal file
View File

@ -0,0 +1,85 @@
#include "global.h"
#include "event_data.h"
#include "battle_setup.h"
#include "overworld.h"
#include "random.h"
#include "battle_tower.h"
extern void sub_81A3ACC(void);
extern const u32 gUnknown_085DF9AC[][2];
extern const u32 gUnknown_085DF9CC[][2];
extern void (* const gUnknown_085DF96C[])(void);
// This file's functions.
void sub_8164ED8(void);
u16 sub_8164FCC(u8, u8);
// code
void sub_8161F74(void)
{
gUnknown_085DF96C[gSpecialVar_0x8004]();
}
void sub_8161F94(void)
{
u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
gSaveBlock2Ptr->frontier.field_CA8 = 1;
gSaveBlock2Ptr->frontier.field_CB2 = 0;
gSaveBlock2Ptr->frontier.field_CA9_a = 0;
gSaveBlock2Ptr->frontier.field_CA9_b = 0;
sub_81A3ACC();
if (!(gSaveBlock2Ptr->frontier.field_CDC & gUnknown_085DF9AC[battleMode][lvlMode]))
gSaveBlock2Ptr->frontier.field_CE0[battleMode][lvlMode] = 0;
sub_8164ED8();
saved_warp2_set(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1);
gTrainerBattleOpponent_A = 0;
}
void sub_8162054(void)
{
u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
switch (gSpecialVar_0x8005)
{
case 0:
break;
case 1:
gSpecialVar_Result = sub_8164FCC(lvlMode, battleMode);
break;
case 2:
gSpecialVar_Result = ((gSaveBlock2Ptr->frontier.field_CDC & gUnknown_085DF9AC[battleMode][lvlMode]) != 0);
break;
case 3:
gSaveBlock2Ptr->frontier.field_D07 = gSaveBlock2Ptr->frontier.lvlMode;
break;
}
}
void sub_81620F4(void)
{
u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
switch (gSpecialVar_0x8005)
{
case 0:
break;
case 1:
gSaveBlock2Ptr->frontier.field_CE0[battleMode][lvlMode] = gSpecialVar_0x8006;
break;
case 2:
if (gSpecialVar_0x8006)
gSaveBlock2Ptr->frontier.field_CDC |= gUnknown_085DF9AC[battleMode][lvlMode];
else
gSaveBlock2Ptr->frontier.field_CDC &= gUnknown_085DF9CC[battleMode][lvlMode];
break;
case 3:
gSaveBlock2Ptr->frontier.field_D07 = gSaveBlock2Ptr->frontier.lvlMode;
break;
}
}

View File

@ -1001,7 +1001,7 @@ void CopyToBgTilemapBufferRect(u8 bg, const void* src, u8 destX, u8 destY, u8 wi
}
}
void CopyToBgTilemapBufferRect_ChangePalette(u8 bg, void *src, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette)
void CopyToBgTilemapBufferRect_ChangePalette(u8 bg, const void *src, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette)
{
CopyRectToBgTilemapBufferRect(bg, src, 0, 0, rectWidth, rectHeight, destX, destY, rectWidth, rectHeight, palette, 0, 0);
}

View File

@ -12,7 +12,7 @@
#include "gpu_regs.h"
#include "m4a.h"
#include "constants/rgb.h"
#include "battle_dome_cards.h"
#include "trainer_pokemon_sprites.h"
#include "starter_choose.h"
#include "decompress.h"
#include "intro_credits_graphics.h"
@ -1197,7 +1197,6 @@ void sub_8175620(void)
u8 taskIdA;
s16 taskIdC;
u8 taskIdB;
u16 savedIme;
sub_8175CE4();
SetVBlankCallback(NULL);
@ -1333,7 +1332,7 @@ static void sub_81758E4(u8 taskIdA)
u16 *temp;
ResetSpriteData();
dp13_810BB8C();
ResetAllPicSprites();
FreeAllSpritePalettes();
gReservedSpritePaletteCount = 8;
LZ77UnCompVram(&gBirchHelpGfx, (void *)VRAM);
@ -2164,7 +2163,7 @@ static void sub_8177050(struct Sprite *sprite)
{
if (gUnknown_0203BD28)
{
sub_818D820(sprite->data[6]);
FreeAndDestroyMonPicSprite(sprite->data[6]);
return;
}
@ -2242,7 +2241,7 @@ static void sub_8177050(struct Sprite *sprite)
case 10:
SetGpuReg(REG_OFFSET_BLDCNT, 0);
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
sub_818D820(sprite->data[6]);
FreeAndDestroyMonPicSprite(sprite->data[6]);
break;
}
}

View File

@ -512,7 +512,7 @@ static void CB2_EggHatch_0(void)
gMain.state++;
break;
case 2:
copy_decompressed_tile_data_to_vram_autofree(0, gBattleTextboxTiles, 0, 0, 0);
DecompressAndLoadBgGfxUsingHeap(0, gBattleTextboxTiles, 0, 0, 0);
CopyToBgTilemapBuffer(0, gBattleTextboxTilemap, 0, 0);
LoadCompressedPalette(gBattleTextboxPalette, 0, 0x20);
gMain.state++;

View File

@ -1484,7 +1484,7 @@ static void InitMovingBackgroundTask(bool8 isLink)
LoadPalette(sUnknown_085B51E4, 0xA0, 0x20);
copy_decompressed_tile_data_to_vram_autofree(1, sUnknown_085B4134, FALSE, 0, 0);
DecompressAndLoadBgGfxUsingHeap(1, sUnknown_085B4134, FALSE, 0, 0);
CopyToBgTilemapBuffer(1, sUnknown_085B482C, 0, 0);
CopyToBgTilemapBuffer(outerBgId, sUnknown_085B4D10, 0, 0);
CopyBgTilemapBufferToVram(1);

View File

@ -1,8 +1,6 @@
// Includes
#include "global.h"
#include "field_effect.h"
#include "battle_dome_cards.h"
#include "trainer_pokemon_sprites.h"
#include "decompress.h"
#include "field_camera.h"
#include "field_effect_helpers.h"
@ -557,7 +555,7 @@ u8 AddNewGameBirchObject(s16 x, s16 y, u8 subpriority)
#ifdef NONMATCHING
u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y)
{
u16 spriteId = sub_818D7D8(species, 0, 0x8000, 1, x, y, 0, gMonPaletteTable[species].tag);
u16 spriteId = CreateMonPicSprite_HandleDeoxys(species, 0, 0x8000, 1, x, y, 0, gMonPaletteTable[species].tag);
PreservePaletteInWeather(IndexOfSpritePaletteTag(gMonPaletteTable[species].tag) + 0x10);
if (spriteId == 0xFFFF)
return 0x40;
@ -590,7 +588,7 @@ u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y)
movs r1, 0\n\
adds r2, r3, 0\n\
movs r3, 0x1\n\
bl sub_818D7D8\n\
bl CreateMonPicSprite_HandleDeoxys\n\
lsls r0, 16\n\
lsrs r5, r0, 16\n\
ldrh r0, [r4, 0x4]\n\
@ -619,7 +617,7 @@ _080B5FDE:\n\
u8 CreateMonSprite_FieldMove(u16 species, u32 d, u32 g, s16 x, s16 y, u8 subpriority)
{
const struct CompressedSpritePalette *spritePalette = GetMonSpritePalStructFromOtIdPersonality(species, d, g);
u16 spriteId = sub_818D7D8(species, d, g, 1, x, y, 0, spritePalette->tag);
u16 spriteId = CreateMonPicSprite_HandleDeoxys(species, d, g, 1, x, y, 0, spritePalette->tag);
PreservePaletteInWeather(IndexOfSpritePaletteTag(spritePalette->tag) + 0x10);
if (spriteId == 0xFFFF)
return 0x40;
@ -634,7 +632,7 @@ void FreeResourcesAndDestroySprite(struct Sprite *sprite, u8 spriteId)
{
FreeOamMatrix(sprite->oam.matrixNum);
}
sub_818D820(spriteId);
FreeAndDestroyMonPicSprite(spriteId);
}
#ifdef NONMATCHING

View File

@ -4,7 +4,9 @@
#include "string_util.h"
#include "task.h"
#include "text.h"
#include "battle_frontier_1.h"
extern bool32 sub_8196094(void);
extern void sub_8196080(u8*);
EWRAM_DATA u8 gUnknown_020375BC = 0;
@ -23,7 +25,7 @@ void sub_8098128(void)
void sub_8098154(u8 taskId)
{
struct Task *task = &gTasks[taskId];
switch (task->data[0])
{
case 0:
@ -61,12 +63,12 @@ bool8 ShowFieldMessage(u8 *str)
return FALSE;
textbox_fdecode_auto_and_task_add(str, 1);
gUnknown_020375BC = 2;
return TRUE;
return TRUE;
}
void sub_8098214(u8 taskId)
{
if (sub_8196094() == 0)
if (!sub_8196094())
{
gUnknown_020375BC = 0;
DestroyTask(taskId);

View File

@ -52,6 +52,7 @@
#include "constants/species.h"
#include "constants/moves.h"
#include "constants/vars.h"
#include "constants/battle_frontier.h"
EWRAM_DATA bool8 gBikeCyclingChallenge = FALSE;
EWRAM_DATA u8 gBikeCollisions = 0;
@ -1645,7 +1646,7 @@ bool8 sub_81398C0(void)
StringCopy(gStringVar2, gMoveNames[ItemIdToBattleMoveId(gSpecialVar_0x8004)]);
return TRUE;
}
return FALSE;
}
@ -1667,7 +1668,7 @@ bool8 InMultiBattleRoom(void)
{
if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM)
&& gSaveBlock1Ptr->location.mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM) &&
VarGet(VAR_0x40CE) == 2)
VarGet(VAR_FRONTIER_BATTLE_MODE) == FRONTIER_MODE_MULTIS)
return TRUE;
return FALSE;
}
@ -1799,7 +1800,7 @@ void ShakeScreenInElevator(void)
if (floorDelta > 8)
floorDelta = 8;
data[5] = gUnknown_085B2C18[floorDelta];
SetCameraPanningCallback(NULL);
@ -1830,16 +1831,16 @@ static void sub_8139AF4(u8 taskId)
void sub_8139B60(void)
{
int xPos;
gUnknown_0203AB5E = AddWindow(&gUnknown_085B2BAC);
SetStandardWindowBorderStyle(gUnknown_0203AB5E, 0);
xPos = GetStringCenterAlignXOffset(1, gText_ElevatorNowOn, 64);
PrintTextOnWindow(gUnknown_0203AB5E, 1, gText_ElevatorNowOn, xPos, 1, TEXT_SPEED_FF, NULL);
xPos = GetStringCenterAlignXOffset(1, gElevatorFloorsTable[gSpecialVar_0x8005], 64);
PrintTextOnWindow(gUnknown_0203AB5E, 1, gElevatorFloorsTable[gSpecialVar_0x8005], xPos, 17, TEXT_SPEED_FF, NULL);
PutWindowTilemap(gUnknown_0203AB5E);
CopyWindowToVram(gUnknown_0203AB5E, 3);
}
@ -2167,13 +2168,13 @@ void sub_8139F20(void)
}
break;
case 4:
if (gSaveBlock2Ptr->frontier.field_D0C[0] >= gSaveBlock2Ptr->frontier.field_D0C[1])
if (gSaveBlock2Ptr->frontier.field_D0C[0][0] >= gSaveBlock2Ptr->frontier.field_D0C[0][1])
{
unk = gSaveBlock2Ptr->frontier.field_D0C[0];
unk = gSaveBlock2Ptr->frontier.field_D0C[0][0];
}
else
{
unk = gSaveBlock2Ptr->frontier.field_D0C[1];
unk = gSaveBlock2Ptr->frontier.field_D0C[0][1];
}
break;
case 5:
@ -2187,13 +2188,13 @@ void sub_8139F20(void)
}
break;
case 6:
if (gSaveBlock2Ptr->frontier.field_DC8[0] >= gSaveBlock2Ptr->frontier.field_DC8[1])
if (gSaveBlock2Ptr->frontier.field_DC8[0][0] >= gSaveBlock2Ptr->frontier.field_DC8[0][1])
{
unk = gSaveBlock2Ptr->frontier.field_DC8[0];
unk = gSaveBlock2Ptr->frontier.field_DC8[0][0];
}
else
{
unk = gSaveBlock2Ptr->frontier.field_DC8[1];
unk = gSaveBlock2Ptr->frontier.field_DC8[0][1];
}
break;
case 7:
@ -2240,10 +2241,10 @@ void sub_813A080(void)
};
u8 i;
u16 var = VarGet(VAR_0x40CE);
u8 chosenLevel = gSaveBlock2Ptr->frontier.chosenLvl;
u16 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
if (var == 2 && !FlagGet(FLAG_0x152))
if (battleMode == 2 && !FlagGet(FLAG_0x152))
{
gSpecialVar_0x8005 = 5;
gSpecialVar_0x8006 = 4;
@ -2252,7 +2253,7 @@ void sub_813A080(void)
for (i = 0; i < 9; i++)
{
if (gUnknown_085B2CDC[i] > gSaveBlock2Ptr->frontier.field_CE0[var][chosenLevel])
if (gUnknown_085B2CDC[i] > gSaveBlock2Ptr->frontier.field_CE0[battleMode][lvlMode])
{
gSpecialVar_0x8005 = 4;
gSpecialVar_0x8006 = i + 5;
@ -2662,8 +2663,8 @@ static void sub_813A2DC(u8 taskId)
}
task->data[4] = convert_pixel_width_to_tile_width(unk1);
if (task->data[2] + task->data[4] > 0x1D)
if (task->data[2] + task->data[4] > 0x1D)
{
int unk2 = 0x1D - task->data[4];
if (unk2 < 0)
@ -3036,13 +3037,13 @@ void sub_813A878(u8 a0)
{
static const u16 gUnknown_085B3104[] = {0x0000, 0x0001, 0x0002, 0x0100, 0x0101, 0x0400, 0x0401, 0x0200, 0x0201, 0x0300, 0x0500, 0x0600};
u16 var1 = VarGet(VAR_0x40CE);
u16 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
u16 var2 = VarGet(VAR_FRONTIER_GAMBLER_SET_FACILITY_F);
u16 var3 = VarGet(VAR_FRONTIER_FACILITY);
u16 frontierFacilityId = VarGet(VAR_FRONTIER_FACILITY);
if (VarGet(VAR_FRONTIER_GAMBLER_PLACED_BET_F) == 1)
{
if (gUnknown_085B3104[var2] == (var3 << 8) + var1)
if (gUnknown_085B3104[var2] == (frontierFacilityId << 8) + battleMode)
{
if (a0 != 0)
{
@ -3363,7 +3364,7 @@ void sub_813ADD4(void)
struct Task *task = &gTasks[taskId];
ListMenuGetScrollAndRow(task->data[14], &scrollOffset, &selectedRow);
SetStandardWindowBorderStyle(task->data[13], 0);
for (i = 0; i < 6; i++)
{
sub_8199F74(task->data[13], 1, gUnknown_085B2CF0[gSpecialVar_0x8004][scrollOffset + i], 10, i * 16, TEXT_SPEED_FF, NULL, 0, 0);
@ -3381,7 +3382,7 @@ void sub_813AEB4(void)
u16 temp1 = 0;
u16 temp2 = 0;
gSpecialVar_0x8005 = 0;
temp1 = VarGet(VAR_TEMP_E);
temp2 = VarGet(VAR_TEMP_D);
@ -3509,7 +3510,7 @@ static void sub_813B0B4(u8 a0)
u8 eventObjectId;
LoadPalette(&gUnknown_085B3280[a0], 0x1A0, 8);
TryGetEventObjectIdByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &eventObjectId);
if (a0 == 0)
{
PlaySE(SE_W109);
@ -3656,7 +3657,7 @@ bool32 sub_813B374(void)
u16 var = VarGet(VAR_0x4037);
GetMapName(gStringVar1, gUnknown_085B3400[var - 1], 0);
if (var < 9)
{
return FALSE;
@ -3697,7 +3698,7 @@ bool32 sub_813B3B0(void)
break;
}
}
if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(UNDERWATER3))
{
switch (gSaveBlock1Ptr->location.mapNum)
@ -4159,7 +4160,7 @@ static u16 sub_813BC00(void)
}
}
}
if (((gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] >> gUnknown_085B347C[retVal]) & 1))
{
gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] ^= 1 << gUnknown_085B347C[retVal];

View File

@ -951,7 +951,7 @@ void copy_tileset_patterns_to_vram2(struct Tileset const *tileset, u16 numTiles,
if (!tileset->isCompressed)
LoadBgTiles(2, tileset->tiles, numTiles * 32, offset);
else
copy_decompressed_tile_data_to_vram_autofree(2, tileset->tiles, numTiles * 32, offset, 0);
DecompressAndLoadBgGfxUsingHeap(2, tileset->tiles, numTiles * 32, offset, 0);
}
}

View File

@ -5,6 +5,7 @@
#include "sprite.h"
#include "pokemon.h"
#include "text.h"
#include "text_window.h"
#include "malloc.h"
#include "gpu_regs.h"
#include "main.h"
@ -26,6 +27,7 @@
#include "event_data.h"
#include "overworld.h"
#include "menu.h"
#include "trainer_pokemon_sprites.h"
struct HallofFameMon
{
@ -81,18 +83,10 @@ extern const u8 gText_MainMenuTime[];
extern const u8 gContestConfetti_Gfx[];
extern const u8 gContestConfetti_Pal[];
extern void NewMenuHelpers_DrawDialogueFrame(u8, u8);
extern void sub_8175620(void);
extern u8 TrySavingData(u8);
extern u8 sub_818D3E4(u16 species, u32 trainerId, u32 personality, u8 flags, s16 x, s16 y, u8, u16);
extern void sub_8197434(u8, u8);
extern u16 sub_818D97C(u8 playerGender, u8);
extern u16 sub_818D8AC(u16, u8, s16, s16, u8, u16);
extern const void* stdpal_get(u8);
extern void LoadWindowGfx(u8, u8, u16, u8);
extern u16 sub_818D820(u16);
extern u16 sub_818D8F0(u16);
extern u16 sub_818D7D8(u16 species, u32 trainerId, u32 personality, u8 arg3, s16 sp0, s16 sp1, u8 sp2, u16 sp3);
extern void sub_8198204(u8 *dst, const u8 *src, u8, u8, u8);
extern bool8 sub_80F9C30(void);
extern void sub_8198314(void);
@ -102,8 +96,6 @@ extern void sub_80F9BF4(u16, u16, u8);
extern void sub_81980F0(u8, u8, u8, u8, u16);
extern void sub_80F9BCC(u16, u16, u8);
extern bool8 sub_80F9C1C(void);
extern u16 SpeciesToPokedexNum(u16 species);
extern void dp13_810BB8C(void);
extern void sub_81971D0(void);
extern void sub_8197200(void);
extern void sub_8152254(void);
@ -611,7 +603,7 @@ static void Task_Hof_DisplayMon(u8 taskId)
if (currMon->species == SPECIES_EGG)
field6 += 10;
spriteId = sub_818D3E4(currMon->species, currMon->tid, currMon->personality, 1, xPos, yPos, currMonId, 0xFFFF);
spriteId = CreatePicSprite2(currMon->species, currMon->tid, currMon->personality, 1, xPos, yPos, currMonId, 0xFFFF);
gSprites[spriteId].tDestinationX = field4;
gSprites[spriteId].tDestinationY = field6;
gSprites[spriteId].data[0] = 0;
@ -723,7 +715,7 @@ static void sub_8173EE4(u8 taskId)
ShowBg(0);
ShowBg(1);
ShowBg(3);
gTasks[taskId].tPlayerSpriteID = sub_818D8AC(sub_818D97C(gSaveBlock2Ptr->playerGender, 1), 1, 120, 72, 6, 0xFFFF);
gTasks[taskId].tPlayerSpriteID = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId_Debug(gSaveBlock2Ptr->playerGender, TRUE), 1, 120, 72, 6, 0xFFFF);
AddWindow(&sHof_WindowTemplate);
LoadWindowGfx(1, gSaveBlock2Ptr->optionsWindowFrameType, 0x21D, 0xD0);
LoadPalette(stdpal_get(1), 0xE0, 0x20);
@ -780,11 +772,11 @@ static void Task_Hof_HandleExit(u8 taskId)
if (spriteId != 0xFF)
{
FreeOamMatrix(gSprites[spriteId].oam.matrixNum);
sub_818D820(spriteId);
FreeAndDestroyMonPicSprite(spriteId);
}
}
sub_818D8F0(gTasks[taskId].tPlayerSpriteID);
FreeAndDestroyTrainerPicSprite(gTasks[taskId].tPlayerSpriteID);
HideBg(0);
HideBg(1);
HideBg(3);
@ -956,7 +948,7 @@ static void Task_HofPC_DrawSpritesPrintText(u8 taskId)
if (currMon->species == SPECIES_EGG)
posY += 10;
spriteId = sub_818D7D8(currMon->species, currMon->tid, currMon->personality, 1, posX, posY, i, 0xFFFF);
spriteId = CreateMonPicSprite_HandleDeoxys(currMon->species, currMon->tid, currMon->personality, 1, posX, posY, i, 0xFFFF);
gSprites[spriteId].oam.priority = 1;
gTasks[taskId].tMonSpriteId(i) = spriteId;
}
@ -1026,7 +1018,7 @@ static void Task_HofPC_HandleInput(u8 taskId)
u8 spriteId = gTasks[taskId].tMonSpriteId(i);
if (spriteId != 0xFF)
{
sub_818D820(spriteId);
FreeAndDestroyMonPicSprite(spriteId);
gTasks[taskId].tMonSpriteId(i) = 0xFF;
}
}
@ -1087,7 +1079,7 @@ static void Task_HofPC_HandleExit(u8 taskId)
u16 spriteId = gTasks[taskId].tMonSpriteId(i);
if (spriteId != 0xFF)
{
sub_818D820(spriteId);
FreeAndDestroyMonPicSprite(spriteId);
gTasks[taskId].tMonSpriteId(i) = 0xFF;
}
}
@ -1305,7 +1297,7 @@ static void sub_8174F70(void)
ResetTasks();
ResetSpriteData();
reset_temp_tile_data_buffers();
dp13_810BB8C();
ResetAllPicSprites();
FreeAllSpritePalettes();
gReservedSpritePaletteCount = 8;
LoadCompressedObjectPic(&sHallOfFame_ConfettiSpriteSheet);

View File

@ -845,8 +845,8 @@ u16 CountTotalItemQuantityInBag(u16 itemId)
static bool8 CheckPyramidBagHasItem(u16 itemId, u16 count)
{
u8 i;
u16 *items = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.chosenLvl];
u8 *quantities = gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.chosenLvl];
u16 *items = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode];
u8 *quantities = gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode];
for (i = 0; i < PYRAMID_BAG_ITEMS_COUNT; i++)
{
@ -867,8 +867,8 @@ static bool8 CheckPyramidBagHasItem(u16 itemId, u16 count)
static bool8 CheckPyramidBagHasSpace(u16 itemId, u16 count)
{
u8 i;
u16 *items = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.chosenLvl];
u8 *quantities = gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.chosenLvl];
u16 *items = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode];
u8 *quantities = gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode];
for (i = 0; i < PYRAMID_BAG_ITEMS_COUNT; i++)
{
@ -890,8 +890,8 @@ bool8 AddPyramidBagItem(u16 itemId, u16 count)
{
u16 i;
u16 *items = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.chosenLvl];
u8 *quantities = gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.chosenLvl];
u16 *items = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode];
u8 *quantities = gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode];
u16 *newItems = Alloc(PYRAMID_BAG_ITEMS_COUNT * sizeof(u16));
u8 *newQuantities = Alloc(PYRAMID_BAG_ITEMS_COUNT * sizeof(u8));
@ -963,8 +963,8 @@ bool8 RemovePyramidBagItem(u16 itemId, u16 count)
{
u16 i;
u16 *items = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.chosenLvl];
u8 *quantities = gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.chosenLvl];
u16 *items = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode];
u8 *quantities = gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode];
i = gUnknown_0203CF30[3] + gUnknown_0203CF30[4];
if (items[i] == itemId && quantities[i] >= count)

View File

@ -1679,7 +1679,7 @@ void CB2_LinkError(void)
static void sub_800B080(void)
{
LoadBgTiles(0, g2BlankTilesGfx, 0x20, 0);
copy_decompressed_tile_data_to_vram_autofree(1, gWirelessLinkDisplayGfx, FALSE, 0, 0);
DecompressAndLoadBgGfxUsingHeap(1, gWirelessLinkDisplayGfx, FALSE, 0, 0);
CopyToBgTilemapBuffer(1, gWirelessLinkDisplayTilemap, 0, 0);
CopyBgTilemapBufferToVram(1);
LoadPalette(gWirelessLinkDisplayPal, 0, 0x20);

View File

@ -1,7 +1,5 @@
// Includes
#include "global.h"
#include "battle_dome_cards.h"
#include "trainer_pokemon_sprites.h"
#include "bg.h"
#include "constants/flags.h"
#include "constants/rgb.h"
@ -1018,7 +1016,7 @@ void task_new_game_prof_birch_speech_1(u8 taskId)
ScanlineEffect_Stop();
ResetSpriteData();
FreeAllSpritePalettes();
dp13_810BB8C();
ResetAllPicSprites();
AddBirchSpeechObjects(taskId);
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
gTasks[taskId].data[4] = 0;
@ -1336,7 +1334,7 @@ void task_new_game_prof_birch_speech_17(u8 taskId)
if (!gPaletteFade.active)
{
FreeAllWindowBuffers();
sub_818D820(gTasks[taskId].data[9]);
FreeAndDestroyMonPicSprite(gTasks[taskId].data[9]);
set_default_player_name(Random() % 20);
DestroyTask(taskId);
DoNamingScreen(0, gSaveBlock2Ptr->playerName, gSaveBlock2Ptr->playerGender, 0, 0, new_game_prof_birch_speech_part2_start);
@ -1515,8 +1513,8 @@ void task_new_game_prof_birch_speech_part2_12(u8 taskId)
if (!gPaletteFade.active)
{
FreeAllWindowBuffers();
sub_818D820(gTasks[taskId].data[9]);
dp13_810BB8C();
FreeAndDestroyMonPicSprite(gTasks[taskId].data[9]);
ResetAllPicSprites();
SetMainCallback2(CB2_NewGame);
DestroyTask(taskId);
}
@ -1558,7 +1556,7 @@ void new_game_prof_birch_speech_part2_start(void)
ScanlineEffect_Stop();
ResetSpriteData();
FreeAllSpritePalettes();
dp13_810BB8C();
ResetAllPicSprites();
AddBirchSpeechObjects(taskId);
if (gSaveBlock2Ptr->playerGender != MALE)
{
@ -1613,7 +1611,7 @@ void sub_80318D8(struct Sprite *sprite)
u8 sub_80318F4(u8 a, u8 b)
{
return sub_818D3E4(SPECIES_LOTAD, 8, 0, 1, a, b, 14, -1);
return CreatePicSprite2(SPECIES_LOTAD, 8, 0, 1, a, b, 14, -1);
}
void AddBirchSpeechObjects(u8 taskId)

View File

@ -5,9 +5,9 @@
#include "event_data.h"
#include "string_util.h"
#include "battle.h"
#include "battle_frontier_1.h"
#include "gym_leader_rematch.h"
extern void sub_8197080(u8 *dest);
extern const u8 gTrainerClassNames[][13];
// Static type declarations

View File

@ -1801,7 +1801,7 @@ void *decompress_and_copy_tile_data_to_vram(u8 bgId, const void *src, int size,
return NULL;
}
void copy_decompressed_tile_data_to_vram_autofree(u8 bgId, const void *src, int size, u16 offset, u8 mode)
void DecompressAndLoadBgGfxUsingHeap(u8 bgId, const void *src, int size, u16 offset, u8 mode)
{
int sizeOut;
void *ptr = malloc_and_decompress(src, &sizeOut);

View File

@ -23,6 +23,8 @@
#include "overworld.h"
#include "mail.h"
#include "battle_records.h"
#include "item.h"
#include "pokedex.h"
extern u8 gDifferentSaveFile;
extern u16 gSaveFileStatus;
@ -33,13 +35,11 @@ extern u16 GetGeneratedTrainerIdLower(void);
extern void ClearContestWinnerPicsInContestHall(void);
extern void sub_80BB358(void);
extern void ResetBagScrollPositions(void);
extern void ResetPokedex(void);
extern void ResetGabbyAndTy(void);
extern void ResetSecretBases(void);
extern void ResetLinkContestBoolean(void);
extern void sub_8052DA8(void);
extern void ResetPokemonStorageSystem(void);
extern void ClearBag(void);
extern void NewGameInitPCItems(void);
extern void ClearDecorationInventories(void);
extern void ResetFanClub(void);

View File

@ -151,7 +151,7 @@ extern void TransferTilesetAnimsBuffer(void);
extern bool32 sub_81D5F48(void);
extern u8 GetCurrentTrainerHillMapId(void);
extern bool8 warp0_in_pokecenter(void);
extern void dp13_810BB8C(void);
extern void ResetAllPicSprites(void);
extern void FieldEffectActiveListClear(void);
extern void SetUpFieldTasks(void);
extern void sub_81BE6B8(void);
@ -2149,7 +2149,7 @@ static void sub_8086988(u32 a1)
ResetSpriteData();
ResetPaletteFade();
ScanlineEffect_Clear();
dp13_810BB8C();
ResetAllPicSprites();
ResetCameraUpdateInfo();
InstallCameraPanAheadCallback();
if (!a1)

View File

@ -11,7 +11,7 @@
#include "main.h"
#include "sound.h"
#include "task.h"
#include "battle_dome_cards.h"
#include "trainer_pokemon_sprites.h"
#include "scanline_effect.h"
#include "malloc.h"
#include "gpu_regs.h"
@ -821,7 +821,7 @@ const u8 sText_TenDashes[] = _("----------");
void ResetPokedex(void)
{
u16 i;
gUnknown_02039B50 = 0;
gUnknown_02039B52 = 64;
gUnknown_030060B0 = 0;
@ -910,7 +910,7 @@ void sub_80BB534(void)
{
u8 *addr;
u32 size;
switch (gMain.state)
{
case 0:
@ -929,7 +929,7 @@ void sub_80BB534(void)
ResetPaletteFade();
FreeAllSpritePalettes();
gReservedSpritePaletteCount = 8;
dp13_810BB8C();
ResetAllPicSprites();
gMain.state++;
break;
case 2:
@ -984,7 +984,7 @@ void sub_80BB78C(u8 taskId)
void sub_80BB7D4(u8 taskId)
{
SetGpuReg(REG_OFFSET_BG0VOFS, gUnknown_02039B4C->menuY);
if (gUnknown_02039B4C->menuY)
{
gUnknown_02039B4C->menuY -= 8;
@ -1377,7 +1377,7 @@ bool8 sub_80BC514(u8 a)
SetBgTilemapBuffer(2, AllocZeroed(0x800));
SetBgTilemapBuffer(1, AllocZeroed(0x800));
SetBgTilemapBuffer(0, AllocZeroed(0x800));
copy_decompressed_tile_data_to_vram_autofree(3, gPokedexMenu_Gfx, 0x2000, 0, 0);
DecompressAndLoadBgGfxUsingHeap(3, gPokedexMenu_Gfx, 0x2000, 0, 0);
CopyToBgTilemapBuffer(1, gUnknown_08DC2C5C, 0, 0);
CopyToBgTilemapBuffer(3, gUnknown_08DC2DAC, 0, 0);
if (a == 0)
@ -1467,7 +1467,7 @@ void sub_80BC844(u8 a)
void sub_80BC890(void)
{
void* tilemapBuffer;
FreeAllWindowBuffers();
tilemapBuffer = GetBgTilemapBuffer(0);
if (tilemapBuffer)
@ -1487,7 +1487,7 @@ void sub_80BC8D4(u8 dexMode, u8 sortMode)
{
u16 vars[3]; //I have no idea why three regular variables are stored in an array, but whatever.
s16 i;
gUnknown_02039B4C->pokemonListCount = 0;
switch (dexMode)
@ -1633,7 +1633,7 @@ void sub_80BC8D4(u8 dexMode, u8 sortMode)
void sub_80BCE2C(u8 windowId, u8 fontId, const u8* str, u8 left, u8 top)
{
u8 color[3];
color[0] = 0;
color[1] = 15;
color[2] = 3;
@ -1731,7 +1731,7 @@ void sub_80BD154(u16 a, u8 left, u8 top, u16 unused)
{
u8 text[6];
u16 r6;
memcpy(text, gUnknown_0855D2B8, 6);
r6 = gUnknown_02039B4C->unk0[a].dexNum;
if (gUnknown_02039B4C->dexMode == DEX_MODE_HOENN)
@ -1753,7 +1753,7 @@ void sub_80BD1F4(u16 a, u8 x, u8 y, u16 unused)
u8 sub_80BD23C(u16 num, u8 left, u8 top)
{
const u8* str;
num = NationalPokedexNumToSpecies(num);
if (num)
str = gSpeciesNames[num];
@ -1773,7 +1773,7 @@ void sub_80BD2B4(u16 a, u16 b)
u8 i;
u16 unk;
u8 spriteId;
gPaletteFade.bufferTransferDisabled = TRUE;
for (i = 0; i < 4; i++)
@ -1803,13 +1803,13 @@ void sub_80BD2B4(u16 a, u16 b)
gSprites[spriteId].callback = sub_80BE4E0;
gSprites[spriteId].data[5] = 32;
}
sub_80BCE84(0, a, b);
SetGpuReg(REG_OFFSET_BG2VOFS, gUnknown_02039B4C->unk62D);
gUnknown_02039B4C->unk630 = 0;
gUnknown_02039B4C->unk632 = 0;
gPaletteFade.bufferTransferDisabled = FALSE;
}
@ -1897,7 +1897,7 @@ u16 sub_80BD69C(u16 a, u16 b)
u8 i;
u16 r6;
u8 r10 = 0;
if ((gMain.heldKeys & DPAD_UP) && (a > 0))
{
r10 = 1;
@ -1917,7 +1917,7 @@ u16 sub_80BD69C(u16 a, u16 b)
else if ((gMain.newKeys & DPAD_LEFT) && (a > 0))
{
r6 = a;
for (i = 0; i < 7; i++)
a = sub_80C0E0C(1, a, 0, gUnknown_02039B4C->pokemonListCount - 1);
gUnknown_02039B4C->unk62C += 16 * (a - r6);
@ -1935,13 +1935,13 @@ u16 sub_80BD69C(u16 a, u16 b)
sub_80BD2B4(a, 0xE);
PlaySE(SE_Z_PAGE);
}
if (r10 == 0)
{
gUnknown_02039B4C->unk638 = 0;
return a;
}
r5 = gUnknown_0855D28C[gUnknown_02039B4C->unk638 / 4];
r3 = gUnknown_0855D291[gUnknown_02039B4C->unk638 / 4];
gUnknown_02039B4C->unk62E = r3;
@ -2030,7 +2030,7 @@ u8 sub_80BDA40(void)
{
if (gUnknown_02039B4C->unk61E[i] != 0xFFFF)
{
sub_818D820(gUnknown_02039B4C->unk61E[i]);
FreeAndDestroyMonPicSprite(gUnknown_02039B4C->unk61E[i]);
gUnknown_02039B4C->unk61E[i] |= 0xFFFF;
}
}
@ -2109,7 +2109,7 @@ void sub_80BDB7C(u8 a)
if (a == 0)
{
u32 _a;
if (!IsNationalPokedexEnabled())
{
CreateSprite(&gUnknown_0855D1F4, 32, 40, 1);
@ -2160,22 +2160,22 @@ void sub_80BDB7C(u8 a)
else
{
u16 r6;
CreateSprite(&gUnknown_0855D1F4, 32, 40, 1);
spriteId = CreateSprite(&gUnknown_0855D1F4, 32, 76, 1);
StartSpriteAnim(&gSprites[spriteId], 1);
CreateSprite(&gUnknown_0855D20C, 17, 45, 1);
spriteId = CreateSprite(&gUnknown_0855D20C, 17, 55, 1);
StartSpriteAnim(&gSprites[spriteId], 1);
CreateSprite(&gUnknown_0855D20C, 17, 81, 1);
spriteId = CreateSprite(&gUnknown_0855D20C, 17, 91, 1);
StartSpriteAnim(&gSprites[spriteId], 1);
r6 = GetHoennPokedexCount(0);
_a = 0;
@ -2197,9 +2197,9 @@ void sub_80BDB7C(u8 a)
spriteId = CreateSprite(&gUnknown_0855D23C, 56, 45, 1);
r5 = (r6 % 100) % 10;
StartSpriteAnim(&gSprites[spriteId], r5);
_a = 0;
spriteId = CreateSprite(&gUnknown_0855D23C, 40, 55, 1);
r5 = gUnknown_02039B4C->unk61A / 100;
StartSpriteAnim(&gSprites[spriteId], r5);
@ -2207,21 +2207,21 @@ void sub_80BDB7C(u8 a)
_a = 1;
else
gSprites[spriteId].invisible = TRUE;
spriteId = CreateSprite(&gUnknown_0855D23C, 48, 55, 1);
r5 = (gUnknown_02039B4C->unk61A % 100) / 10;
if (r5 != 0 || _a != 0)
StartSpriteAnim(&gSprites[spriteId], r5);
else
gSprites[spriteId].invisible = TRUE;
spriteId = CreateSprite(&gUnknown_0855D23C, 56, 55, 1);
r5 = (gUnknown_02039B4C->unk61A % 100) % 10;
StartSpriteAnim(&gSprites[spriteId], r5);
r6 = GetHoennPokedexCount(1);
_a = 0;
spriteId = CreateSprite(&gUnknown_0855D23C, 40, 81, 1);
r5 = r6 / 100;
StartSpriteAnim(&gSprites[spriteId], r5);
@ -2229,20 +2229,20 @@ void sub_80BDB7C(u8 a)
_a = 1;
else
gSprites[spriteId].invisible = TRUE;
spriteId = CreateSprite(&gUnknown_0855D23C, 48, 81, 1);
r5 = (r6 % 100) / 10;
if (r5 != 0 || _a != 0)
StartSpriteAnim(&gSprites[spriteId], r5);
else
gSprites[spriteId].invisible = TRUE;
spriteId = CreateSprite(&gUnknown_0855D23C, 56, 81, 1);
r5 = (r6 % 100) % 10;
StartSpriteAnim(&gSprites[spriteId], r5);
_a = 0;
spriteId = CreateSprite(&gUnknown_0855D23C, 40, 91, 1);
r5 = gUnknown_02039B4C->unk61C / 100;
StartSpriteAnim(&gSprites[spriteId], r5);
@ -2250,14 +2250,14 @@ void sub_80BDB7C(u8 a)
_a = 1;
else
gSprites[spriteId].invisible = TRUE;
spriteId = CreateSprite(&gUnknown_0855D23C, 48, 91, 1);
r5 = (gUnknown_02039B4C->unk61C % 100) / 10;
if (r5 != 0 || _a != 0)
StartSpriteAnim(&gSprites[spriteId], r5);
else
gSprites[spriteId].invisible = TRUE;
spriteId = CreateSprite(&gUnknown_0855D23C, 56, 91, 1);
r5 = (gUnknown_02039B4C->unk61C % 100) % 10;
StartSpriteAnim(&gSprites[spriteId], r5);
@ -2313,7 +2313,7 @@ void sub_80BE4E0(struct Sprite *sprite)
if (gUnknown_02039B4C->unk64A != 0 && gUnknown_02039B4C->unk64A != 3)
{
sub_818D820(gUnknown_02039B4C->unk61E[data1]);
FreeAndDestroyMonPicSprite(gUnknown_02039B4C->unk61E[data1]);
gUnknown_02039B4C->unk61E[data1] = 0xFFFF;
}
else
@ -2339,7 +2339,7 @@ void sub_80BE4E0(struct Sprite *sprite)
if ((sprite->data[5] <= -64 || sprite->data[5] >= 64) && sprite->data[0] != 0)
{
sub_818D820(gUnknown_02039B4C->unk61E[data1]);
FreeAndDestroyMonPicSprite(gUnknown_02039B4C->unk61E[data1]);
gUnknown_02039B4C->unk61E[data1] = 0xFFFF;
}
}
@ -2449,14 +2449,14 @@ void sub_80BE8DC(const u8* str, u8 left, u8 top)
color[0] = 0;
color[1] = 15;
color[2] = 3;
AddTextPrinterParameterized2(0, 1, left, top, 0, 0, color, -1, str);
}
u8 sub_80BE91C(struct PokedexListItem* item, u8 b)
{
u8 taskId;
gUnknown_02039B54 = item;
taskId = CreateTask(sub_80BEA24, 0);
gTasks[taskId].data[0] = 0;
@ -2473,7 +2473,7 @@ u8 sub_80BE91C(struct PokedexListItem* item, u8 b)
SetBgTilemapBuffer(0, AllocZeroed(0x800));
InitWindows(gUnknown_0856E640);
DeactivateAllTextPrinters();
return taskId;
}
@ -2518,7 +2518,7 @@ void sub_80BEA24(u8 taskId)
}
break;
case 1:
copy_decompressed_tile_data_to_vram_autofree(3, gPokedexMenu_Gfx, 0x2000, 0, 0);
DecompressAndLoadBgGfxUsingHeap(3, gPokedexMenu_Gfx, 0x2000, 0, 0);
CopyToBgTilemapBuffer(3, gUnknown_08DC3080, 0, 0);
FillWindowPixelBuffer(0, 0);
PutWindowTilemap(0);
@ -2703,7 +2703,7 @@ void sub_80BEFD0(u8 taskId)
{
if (!gPaletteFade.active)
{
sub_818D820(gTasks[taskId].data[4]);
FreeAndDestroyMonPicSprite(gTasks[taskId].data[4]);
switch (gUnknown_02039B4C->unk64E)
{
case 1:
@ -2724,7 +2724,7 @@ void sub_80BF038(u8 taskId)
{
if (!gPaletteFade.active)
{
sub_818D820(gTasks[taskId].data[4]);
FreeAndDestroyMonPicSprite(gTasks[taskId].data[4]);
gTasks[taskId].func = sub_80BEA24;
}
}
@ -2733,7 +2733,7 @@ void sub_80BF070(u8 taskId)
{
if (!gPaletteFade.active)
{
sub_818D820(gTasks[taskId].data[4]);
FreeAndDestroyMonPicSprite(gTasks[taskId].data[4]);
sub_80BEDB0();
DestroyTask(taskId);
}
@ -2813,7 +2813,7 @@ void sub_80BF250(u8 taskId)
}
break;
case 1:
copy_decompressed_tile_data_to_vram_autofree(3, &gPokedexMenu_Gfx, 0x2000, 0, 0);
DecompressAndLoadBgGfxUsingHeap(3, &gPokedexMenu_Gfx, 0x2000, 0, 0);
CopyToBgTilemapBuffer(3, &gUnknown_08DC3198, 0, 0);
FillWindowPixelBuffer(0, 0);
PutWindowTilemap(0);
@ -2960,7 +2960,7 @@ void sub_80BF790(u8 taskId)
if (!gPaletteFade.active)
{
sub_8145914();
sub_818D820(gTasks[taskId].data[4]);
FreeAndDestroyMonPicSprite(gTasks[taskId].data[4]);
switch (gUnknown_02039B4C->unk64E)
{
default:
@ -3007,7 +3007,7 @@ void sub_80BF82C(u8 taskId)
}
break;
case 1:
copy_decompressed_tile_data_to_vram_autofree(3, gPokedexMenu_Gfx, 0x2000, 0, 0);
DecompressAndLoadBgGfxUsingHeap(3, gPokedexMenu_Gfx, 0x2000, 0, 0);
CopyToBgTilemapBuffer(3, gUnknown_08DC2E6C, 0, 0);
FillWindowPixelBuffer(0, 0);
PutWindowTilemap(0);
@ -3109,8 +3109,8 @@ void sub_80BFC78(u8 taskId)
{
if (!gPaletteFade.active)
{
sub_818D820(gTasks[taskId].data[4]);
sub_818D8F0(gTasks[taskId].data[5]);
FreeAndDestroyMonPicSprite(gTasks[taskId].data[4]);
FreeAndDestroyTrainerPicSprite(gTasks[taskId].data[5]);
switch (gUnknown_02039B4C->unk64E)
{
default:
@ -3334,7 +3334,7 @@ void sub_80BFE38(u8 taskId)
{
u8 spriteId;
u16 dexNum = gTasks[taskId].data[1];
switch (gTasks[taskId].data[0])
{
case 0:
@ -3354,7 +3354,7 @@ void sub_80BFE38(u8 taskId)
}
break;
case 1:
copy_decompressed_tile_data_to_vram_autofree(3, gPokedexMenu_Gfx, 0x2000, 0, 0);
DecompressAndLoadBgGfxUsingHeap(3, gPokedexMenu_Gfx, 0x2000, 0, 0);
CopyToBgTilemapBuffer(3, gUnknown_08DC3080, 0, 0);
FillWindowPixelBuffer(0, 0);
PutWindowTilemap(0);
@ -3440,7 +3440,7 @@ void blockset_load_palette_to_gpu(u8 taskId)
buffer = GetBgTilemapBuffer(3);
if (buffer)
Free(buffer);
species = NationalPokedexNumToSpecies(gTasks[taskId].data[1]);
otId = ((u16)gTasks[taskId].data[13] << 16) | (u16)gTasks[taskId].data[12];
personality = ((u16)gTasks[taskId].data[15] << 16) | (u16)gTasks[taskId].data[14];
@ -3472,7 +3472,7 @@ void sub_80C020C(u32 num, u32 value, u32 c, u32 d)
const u8 *text;
const u8 *text2;
const u8 *text3;
if (d)
sub_80BE8DC(gText_PokedexRegistration, GetStringCenterAlignXOffset(1, gText_PokedexRegistration, 0xF0), 0);
if (value == 0)
@ -4064,7 +4064,7 @@ void sub_80C0A88(u8 windowId, const u8 *str, u8 left, u8 top)
color[0] = 0;
color[1] = 15;
color[2] = 3;
AddTextPrinterParameterized2(windowId, 1, left, top, 0, 0, color, -1, str);
}
@ -4107,7 +4107,7 @@ void sub_80C0BF0(u8 windowId, const u8* str, u8 left, u8 top)
u8 str2[11];
u8 i;
u8 count;
for (i = 0; i < 11; i++)
str2[i] = CHAR_SPACE;
for (count = 0; str[count] != CHAR_SPACE && count < 11; count++)
@ -4232,12 +4232,12 @@ u32 sub_80C0E68(u16 a)
u16 sub_80C0E9C(u16 num, s16 x, s16 y, u16 paletteSlot)
{
num = NationalPokedexNumToSpecies(num);
return sub_818D7D8(num, 8, sub_80C0E68(num), TRUE, x, y, paletteSlot, 0xFFFF);
return CreateMonPicSprite_HandleDeoxys(num, 8, sub_80C0E68(num), TRUE, x, y, paletteSlot, 0xFFFF);
}
u16 sub_80C0EF8(u16 species, s16 x, s16 y, s8 paletteSlot)
{
return sub_818D8AC(species, TRUE, x, y, paletteSlot, 0xFFFF);
return CreateTrainerPicSprite(species, TRUE, x, y, paletteSlot, 0xFFFF);
}
int sub_80C0F30(u8 dexMode, u8 sortMode, u8 abcGroup, u8 bodyColor, u8 type1, u8 type2)
@ -4364,7 +4364,7 @@ u8 sub_80C1258(void)
void sub_80C1270(const u8 *str, u32 left, u32 top)
{
u8 color[3];
color[0] = 0;
color[1] = 15;
color[2] = 2;
@ -4397,8 +4397,8 @@ void sub_80C12E0(u8 taskId)
InitWindows(gUnknown_0856F008);
DeactivateAllTextPrinters();
PutWindowTilemap(0);
copy_decompressed_tile_data_to_vram_autofree(3, gPokedexSearchMenu_Gfx, 0x2000, 0, 0);
DecompressAndLoadBgGfxUsingHeap(3, gPokedexSearchMenu_Gfx, 0x2000, 0, 0);
if (!IsNationalPokedexEnabled())
CopyToBgTilemapBuffer(3, gPokedexSearch2_Tilemap, 0, 0);
else
@ -4450,7 +4450,7 @@ void sub_80C12E0(u8 taskId)
void sub_80C152C(void)
{
void* tilemapBuffer;
FreeAllWindowBuffers();
tilemapBuffer = GetBgTilemapBuffer(0);
if (tilemapBuffer)
@ -4992,12 +4992,12 @@ void sub_80C2064(u8 a, u8 b)
void sub_80C20F8(u8 taskId)
{
u16 var;
sub_80C12B0(0x28, 0x10, 0x60, 0x50);
var = gTasks[taskId].data[6] + gTasks[taskId].data[7];
sub_80C1270(gUnknown_0856EE5C[var].text2, 0x2D, 0x11);
var = gTasks[taskId].data[8] + gTasks[taskId].data[9];
sub_80C1270(gUnknown_0856EEB4[var].text2, 0x2D, 0x21);

View File

@ -13,6 +13,7 @@
#include "constants/hold_effects.h"
#include "constants/battle_move_effects.h"
#include "constants/songs.h"
#include "constants/battle_frontier.h"
#include "string_util.h"
#include "text.h"
#include "link.h"
@ -80,8 +81,7 @@ extern void set_unknown_box_id(u8);
extern void sub_803FA70(u8 battlerId);
extern u8 sav1_map_get_name(void);
extern const u8 *sub_81A1650(u8, u8 language);
extern u8 BattleFrontierGetOpponentLvl(u8);
extern u16 FacilityClassToPicIndex(u16);
extern u8 GetFrontierEnemyMonLevel(u8);
extern bool8 InBattlePyramid(void);
extern bool8 InBattlePike(void);
extern bool8 sub_806F104(void);
@ -955,7 +955,7 @@ const u16 gHoennToNationalOrder[] = // Assigns Hoenn Dex Pokémon (Using Nationa
NATIONAL_DEX_BLAZIKEN, // HOENN_DEX_BLAZIKEN
NATIONAL_DEX_MUDKIP, // HOENN_DEX_MUDKIP
NATIONAL_DEX_MARSHTOMP, // HOENN_DEX_MARSHTOMP
NATIONAL_DEX_SWAMPERT, // HOENN_DEX_SWAMPERT
NATIONAL_DEX_SWAMPERT, // HOENN_DEX_SWAMPERT
NATIONAL_DEX_POOCHYENA, // HOENN_DEX_POOCHYENA
NATIONAL_DEX_MIGHTYENA, // HOENN_DEX_MIGHTYENA
NATIONAL_DEX_ZIGZAGOON, // HOENN_DEX_ZIGZAGOON
@ -2819,8 +2819,8 @@ void sub_8068338(struct Pokemon *mon, struct UnknownPokemonStruct *src, bool8 lv
u8 language;
u8 value;
if (gSaveBlock2Ptr->frontier.chosenLvl != 0)
level = BattleFrontierGetOpponentLvl(gSaveBlock2Ptr->frontier.chosenLvl);
if (gSaveBlock2Ptr->frontier.lvlMode != FRONTIER_LVL_50)
level = GetFrontierEnemyMonLevel(gSaveBlock2Ptr->frontier.lvlMode);
else if (lvl50)
level = 50;
else
@ -2884,7 +2884,7 @@ void sub_8068528(struct Pokemon *mon, const struct UnknownPokemonStruct2 *src, u
CreateMon(mon,
src->mons[monId].species,
BattleFrontierGetOpponentLvl(src->field_0_1 - 1),
GetFrontierEnemyMonLevel(src->field_0_1 - 1),
0x1F,
TRUE,
personality,
@ -7118,9 +7118,9 @@ u16 FacilityClassToPicIndex(u16 facilityClass)
u16 PlayerGenderToFrontTrainerPicId(u8 playerGender)
{
if (playerGender != MALE)
return FacilityClassToPicIndex(FACILITY_CLASS_PKMN_TRAINER_BRENDAN);
else
return FacilityClassToPicIndex(FACILITY_CLASS_PKMN_TRAINER_MAY);
else
return FacilityClassToPicIndex(FACILITY_CLASS_PKMN_TRAINER_BRENDAN);
}
void HandleSetPokedexFlag(u16 nationalNum, u8 caseId, u32 personality)

View File

@ -1635,8 +1635,8 @@ void sub_80E8260(struct UnkRecordMixingStruct2 *dst)
dst->field_0[0][i].field_4 = gSaveBlock2Ptr->frontier.field_CF0[i];
dst->field_0[1][i].field_4 = gSaveBlock2Ptr->frontier.field_CF4[i];
dst->field_0[2][i].field_4 = gSaveBlock2Ptr->frontier.field_CF8[i];
dst->field_0[3][i].field_4 = gSaveBlock2Ptr->frontier.field_D14[i];
dst->field_0[4][i].field_4 = gSaveBlock2Ptr->frontier.field_DD0[i];
dst->field_0[3][i].field_4 = gSaveBlock2Ptr->frontier.field_D14[0][i];
dst->field_0[4][i].field_4 = gSaveBlock2Ptr->frontier.field_DD0[0][i];
dst->field_0[5][i].field_4 = gSaveBlock2Ptr->frontier.field_DDE[i];
dst->field_0[6][i].field_4 = gSaveBlock2Ptr->frontier.field_DEA[i];
dst->field_0[7][i].field_4 = gSaveBlock2Ptr->frontier.field_E08[i];

View File

@ -1293,7 +1293,7 @@ static bool32 AllocTryCopyRecordedBattleSaveData(struct RecordedBattleSave *dst)
static void CB2_RecordedBattleEnd(void)
{
gSaveBlock2Ptr->frontier.chosenLvl = sUnknown_0203C7AD;
gSaveBlock2Ptr->frontier.lvlMode = sUnknown_0203C7AD;
gBattleOutcome = 0;
gBattleTypeFlags = 0;
gTrainerBattleOpponent_A = 0;
@ -1353,7 +1353,7 @@ static void SetRecordedBattleVarsFromSave(struct RecordedBattleSave *src)
gTrainerBattleOpponent_B = src->opponentB;
gPartnerTrainerId = src->partnerId;
gUnknown_0203C7B4 = src->field_4FA;
sUnknown_0203C7AD = gSaveBlock2Ptr->frontier.chosenLvl;
sUnknown_0203C7AD = gSaveBlock2Ptr->frontier.lvlMode;
sFrontierFacility = src->field_4FD;
sUnknown_0203C7AF = src->field_4FE;
sBattleStyle = src->battleStyle;
@ -1375,7 +1375,7 @@ static void SetRecordedBattleVarsFromSave(struct RecordedBattleSave *src)
sUnknown_0203CCDC[i] = src->field_50E[i];
}
gSaveBlock2Ptr->frontier.chosenLvl = src->field_4FC;
gSaveBlock2Ptr->frontier.lvlMode = src->field_4FC;
for (i = 0; i < MAX_BATTLERS_COUNT; i++)
{

View File

@ -18,6 +18,7 @@
#include "constants/maps.h"
#include "constants/species.h"
#include "constants/rgb.h"
#include "constants/battle_frontier.h"
#include "trade.h"
#include "trainer_card.h"
#include "overworld.h"
@ -468,7 +469,7 @@ void sub_8012780(u8 taskId)
switch (data->state)
{
case 0:
if (gSpecialVar_0x8004 == 20 && gSaveBlock2Ptr->frontier.chosenLvl == 1)
if (gSpecialVar_0x8004 == 20 && gSaveBlock2Ptr->frontier.lvlMode == FRONTIER_LVL_OPEN)
gSpecialVar_0x8004++;
gUnknown_02022C2C = gUnknown_082F00C4[gSpecialVar_0x8004];
gUnknown_02022C2D = gUnknown_082F00C4[gSpecialVar_0x8004] >> 8;
@ -1050,7 +1051,7 @@ void sub_80134E8(u8 taskId)
switch (data->state)
{
case 0:
if (gSpecialVar_0x8004 == 20 && gSaveBlock2Ptr->frontier.chosenLvl == 1)
if (gSpecialVar_0x8004 == 20 && gSaveBlock2Ptr->frontier.lvlMode == FRONTIER_LVL_OPEN)
gSpecialVar_0x8004++;
gUnknown_02022C2C = gUnknown_082F0530[gSpecialVar_0x8004];
sub_8010F84(gUnknown_02022C2C, 0, 0);

View File

@ -20,6 +20,7 @@
#include "international_string_util.h"
#include "trig.h"
#include "scanline_effect.h"
#include "trainer_pokemon_sprites.h"
#define STARTER_MON_COUNT 3
@ -48,12 +49,6 @@ extern const u8 gStarterChoose_LabelCoords[][2];
extern const u8 gUnknown_085B1E0C[];
extern const u8 gUnknown_085B1E28[][2];
extern void clear_scheduled_bg_copies_to_vram(void);
extern void dp13_810BB8C(void);
extern void do_scheduled_bg_tilemap_copies_to_vram(void);
extern u16 sub_818D820(u16);
extern u8 sub_818D3E4(u16 species, u32 trainerId, u32 personality, u8 flags, s16 x, s16 y, u8, u16);
// this file's functions
static void MainCallback2_StarterChoose(void);
static void sub_8134604(void);
@ -132,7 +127,7 @@ void CB2_ChooseStarter(void)
ResetSpriteData();
ResetPaletteFade();
FreeAllSpritePalettes();
dp13_810BB8C();
ResetAllPicSprites();
LoadPalette(GetOverworldTextboxPalettePtr(), 0xE0, 0x20);
LoadPalette(gBirchBagGrassPal, 0, 0x40);
@ -263,7 +258,7 @@ static void Task_StarterChoose5(u8 taskId)
case 0: // YES
// Return the starter choice and exit.
gSpecialVar_Result = gTasks[taskId].tStarterSelection;
dp13_810BB8C();
ResetAllPicSprites();
SetMainCallback2(gMain.savedCallback);
break;
case 1: // NO
@ -271,7 +266,7 @@ static void Task_StarterChoose5(u8 taskId)
PlaySE(SE_SELECT);
spriteId = gTasks[taskId].tPkmnSpriteId;
FreeOamMatrix(gSprites[spriteId].oam.matrixNum);
sub_818D820(spriteId);
FreeAndDestroyMonPicSprite(spriteId);
spriteId = gTasks[taskId].tCircleSpriteId;
FreeOamMatrix(gSprites[spriteId].oam.matrixNum);
@ -349,7 +344,7 @@ static u8 CreatePokemonFrontSprite(u16 species, u8 x, u8 y)
{
u8 spriteId;
spriteId = sub_818D3E4(species, 8, 0, 1, x, y, 0xE, 0xFFFF);
spriteId = CreatePicSprite2(species, 8, 0, 1, x, y, 0xE, 0xFFFF);
gSprites[spriteId].oam.priority = 0;
return spriteId;
}

View File

@ -1,5 +1,3 @@
// Includes
#include "global.h"
#include "sprite.h"
#include "window.h"
@ -7,7 +5,10 @@
#include "constants/species.h"
#include "palette.h"
#include "decompress.h"
#include "battle_dome_cards.h"
#include "trainer_pokemon_sprites.h"
#include "data2.h"
#include "pokemon.h"
#include "constants/trainers.h"
extern const struct CompressedSpriteSheet gMonFrontPicTable[NUM_SPECIES];
extern const struct CompressedSpriteSheet gMonBackPicTable[NUM_SPECIES];
@ -19,11 +20,10 @@ extern const union AffineAnimCmd *const gUnknown_082FF694[];
extern const union AnimCmd *const gPlayerMonSpriteAnimsTable[];
extern const union AnimCmd *const *const gMonAnimationsSpriteAnimsPtrTable[NUM_SPECIES];
extern const union AnimCmd *const *const gUnknown_0830536C[];
extern const u8 gFacilityClassToPicIndex[];
// Static type declarations
struct BattleDomeCard
struct PicData
{
u8 *frames;
struct SpriteFrameImage *images;
@ -33,15 +33,16 @@ struct BattleDomeCard
};
// Static RAM declarations
#define PICS_COUNT 8
static EWRAM_DATA struct SpriteTemplate gUnknown_0203CCEC = {};
static EWRAM_DATA struct BattleDomeCard gUnknown_0203CD04[8] = {};
static EWRAM_DATA struct SpriteTemplate sCreatingSpriteTemplate = {};
static EWRAM_DATA struct PicData sSpritePics[PICS_COUNT] = {};
// Static ROM declarations
// .rodata
static const struct BattleDomeCard gUnknown_0860B058 = {};
static const struct PicData sDummyPicData = {};
static const struct OamData gUnknown_0860B064 =
{
.size = 3
@ -53,80 +54,67 @@ static const struct OamData gUnknown_0860B06C =
// .text
static void nullsub_122(struct Sprite *sprite)
static void DummyPicSpriteCallback(struct Sprite *sprite)
{
}
bool16 dp13_810BB8C(void)
bool16 ResetAllPicSprites(void)
{
int i;
for (i = 0; i < 8; i ++)
{
gUnknown_0203CD04[i] = gUnknown_0860B058;
}
for (i = 0; i < PICS_COUNT; i ++)
sSpritePics[i] = sDummyPicData;
return FALSE;
}
static bool16 load_pokemon_image_TODO(u16 species, u32 personality, bool8 isFrontPic, u8 *dest, bool8 isTrainer, bool8 ignoreDeoxys)
static bool16 DecompressPic(u16 species, u32 personality, bool8 isFrontPic, u8 *dest, bool8 isTrainer, bool8 ignoreDeoxys)
{
if (!isTrainer)
{
if (isFrontPic)
{
if (!ignoreDeoxys)
{
LoadSpecialPokePic(&gMonFrontPicTable[species], dest, species, personality, isFrontPic);
}
else
{
LoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species], dest, species, personality, isFrontPic);
}
}
else
{
if (!ignoreDeoxys)
{
LoadSpecialPokePic(&gMonBackPicTable[species], dest, species, personality, isFrontPic);
}
else
{
LoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[species], dest, species, personality, isFrontPic);
}
}
}
else
{
if (isFrontPic)
{
DecompressPicFromTable(&gTrainerFrontPicTable[species], dest, species);
}
else
{
DecompressPicFromTable(&gTrainerBackPicTable[species], dest, species);
}
}
return FALSE;
}
static bool16 sub_818D09C(u16 species, u32 personality, bool8 isFrontPic, u8 *dest, bool8 isTrainer)
static bool16 DecompressPic_HandleDeoxys(u16 species, u32 personality, bool8 isFrontPic, u8 *dest, bool8 isTrainer)
{
return load_pokemon_image_TODO(species, personality, isFrontPic, dest, isTrainer, FALSE);
return DecompressPic(species, personality, isFrontPic, dest, isTrainer, FALSE);
}
static void sub_818D0C4(u16 species, u32 otId, u32 personality, u8 paletteSlot, u16 paletteTag, bool8 isTrainer)
static void LoadPicPaletteByTagOrSlot(u16 species, u32 otId, u32 personality, u8 paletteSlot, u16 paletteTag, bool8 isTrainer)
{
if (!isTrainer)
{
if (paletteTag == 0xFFFF)
{
gUnknown_0203CCEC.paletteTag |= 0xFFFF;
sCreatingSpriteTemplate.paletteTag |= 0xFFFF;
LoadCompressedPalette(GetFrontSpritePalFromSpeciesAndPersonality(species, otId, personality), 0x100 + paletteSlot * 0x10, 0x20);
}
else
{
gUnknown_0203CCEC.paletteTag = paletteTag;
sCreatingSpriteTemplate.paletteTag = paletteTag;
LoadCompressedObjectPalette(GetMonSpritePalStructFromOtIdPersonality(species, otId, personality));
}
}
@ -134,42 +122,34 @@ static void sub_818D0C4(u16 species, u32 otId, u32 personality, u8 paletteSlot,
{
if (paletteTag == 0xFFFF)
{
gUnknown_0203CCEC.paletteTag |= 0xFFFF;
sCreatingSpriteTemplate.paletteTag |= 0xFFFF;
LoadCompressedPalette(gTrainerFrontPicPaletteTable[species].data, 0x100 + paletteSlot * 0x10, 0x20);
}
else
{
gUnknown_0203CCEC.paletteTag = paletteTag;
sCreatingSpriteTemplate.paletteTag = paletteTag;
LoadCompressedObjectPalette(&gTrainerFrontPicPaletteTable[species]);
}
}
}
static void sub_818D180(u16 species, u32 otId, u32 personality, u8 paletteSlot, bool8 isTrainer)
static void LoadPicPaletteBySlot(u16 species, u32 otId, u32 personality, u8 paletteSlot, bool8 isTrainer)
{
if (!isTrainer)
{
LoadCompressedPalette(GetFrontSpritePalFromSpeciesAndPersonality(species, otId, personality), paletteSlot * 0x10, 0x20);
}
else
{
LoadCompressedPalette(gTrainerFrontPicPaletteTable[species].data, paletteSlot * 0x10, 0x20);
}
}
static void uns_builder_assign_animtable1(bool8 isTrainer)
static void AssignSpriteAnimsTable(bool8 isTrainer)
{
if (!isTrainer)
{
gUnknown_0203CCEC.anims = gPlayerMonSpriteAnimsTable;
}
sCreatingSpriteTemplate.anims = gPlayerMonSpriteAnimsTable;
else
{
gUnknown_0203CCEC.anims = gUnknown_0830536C[0];
}
sCreatingSpriteTemplate.anims = gUnknown_0830536C[0];
}
static u16 oamt_spawn_poke_or_trainer_picture(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 isTrainer, bool8 ignoreDeoxys)
static u16 CreatePicSprite(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 isTrainer, bool8 ignoreDeoxys)
{
u8 i;
u8 *framePics;
@ -177,14 +157,14 @@ static u16 oamt_spawn_poke_or_trainer_picture(u16 species, u32 otId, u32 persona
int j;
u8 spriteId;
for (i = 0; i < 8; i ++)
for (i = 0; i < PICS_COUNT; i ++)
{
if (!gUnknown_0203CD04[i].active)
if (!sSpritePics[i].active)
{
break;
}
}
if (i == 8)
if (i == PICS_COUNT)
{
return 0xFFFF;
}
@ -199,7 +179,7 @@ static u16 oamt_spawn_poke_or_trainer_picture(u16 species, u32 otId, u32 persona
Free(framePics);
return 0xFFFF;
}
if (load_pokemon_image_TODO(species, personality, isFrontPic, framePics, isTrainer, ignoreDeoxys))
if (DecompressPic(species, personality, isFrontPic, framePics, isTrainer, ignoreDeoxys))
{
// debug trap?
return 0xFFFF;
@ -209,32 +189,32 @@ static u16 oamt_spawn_poke_or_trainer_picture(u16 species, u32 otId, u32 persona
images[j].data = framePics + 0x800 * j;
images[j].size = 0x800;
}
gUnknown_0203CCEC.tileTag = 0xFFFF;
gUnknown_0203CCEC.oam = &gUnknown_0860B064;
uns_builder_assign_animtable1(isTrainer);
gUnknown_0203CCEC.images = images;
gUnknown_0203CCEC.affineAnims = gDummySpriteAffineAnimTable;
gUnknown_0203CCEC.callback = nullsub_122;
sub_818D0C4(species, otId, personality, paletteSlot, paletteTag, isTrainer);
spriteId = CreateSprite(&gUnknown_0203CCEC, x, y, 0);
sCreatingSpriteTemplate.tileTag = 0xFFFF;
sCreatingSpriteTemplate.oam = &gUnknown_0860B064;
AssignSpriteAnimsTable(isTrainer);
sCreatingSpriteTemplate.images = images;
sCreatingSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable;
sCreatingSpriteTemplate.callback = DummyPicSpriteCallback;
LoadPicPaletteByTagOrSlot(species, otId, personality, paletteSlot, paletteTag, isTrainer);
spriteId = CreateSprite(&sCreatingSpriteTemplate, x, y, 0);
if (paletteTag == 0xFFFF)
{
gSprites[spriteId].oam.paletteNum = paletteSlot;
}
gUnknown_0203CD04[i].frames = framePics;
gUnknown_0203CD04[i].images = images;
gUnknown_0203CD04[i].paletteTag = paletteTag;
gUnknown_0203CD04[i].spriteId = spriteId;
gUnknown_0203CD04[i].active = TRUE;
sSpritePics[i].frames = framePics;
sSpritePics[i].images = images;
sSpritePics[i].paletteTag = paletteTag;
sSpritePics[i].spriteId = spriteId;
sSpritePics[i].active = TRUE;
return spriteId;
}
static u16 sub_818D384(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 isTrainer)
static u16 CreatePicSprite_HandleDeoxys(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 isTrainer)
{
return oamt_spawn_poke_or_trainer_picture(species, otId, personality, isFrontPic, x, y, paletteSlot, paletteTag, isTrainer, FALSE);
return CreatePicSprite(species, otId, personality, isFrontPic, x, y, paletteSlot, paletteTag, isTrainer, FALSE);
}
u16 sub_818D3E4(u16 species, u32 otId, u32 personality, u8 flags, s16 x, s16 y, u8 paletteSlot, u16 paletteTag)
u16 CreatePicSprite2(u16 species, u32 otId, u32 personality, u8 flags, s16 x, s16 y, u8 paletteSlot, u16 paletteTag)
{
u8 *framePics;
struct SpriteFrameImage *images;
@ -243,14 +223,14 @@ u16 sub_818D3E4(u16 species, u32 otId, u32 personality, u8 flags, s16 x, s16 y,
u8 spriteId;
u8 flags2;
for (i = 0; i < 8; i ++)
for (i = 0; i < PICS_COUNT; i ++)
{
if (!gUnknown_0203CD04[i].active)
if (!sSpritePics[i].active)
{
break;
}
}
if (i == 8)
if (i == PICS_COUNT)
{
return 0xFFFF;
}
@ -274,7 +254,7 @@ u16 sub_818D3E4(u16 species, u32 otId, u32 personality, u8 flags, s16 x, s16 y,
Free(framePics);
return 0xFFFF;
}
if (load_pokemon_image_TODO(species, personality, flags, framePics, FALSE, FALSE))
if (DecompressPic(species, personality, flags, framePics, FALSE, FALSE))
{
// debug trap?
return 0xFFFF;
@ -284,76 +264,76 @@ u16 sub_818D3E4(u16 species, u32 otId, u32 personality, u8 flags, s16 x, s16 y,
images[j].data = framePics + 0x800 * j;
images[j].size = 0x800;
}
gUnknown_0203CCEC.tileTag = 0xFFFF;
gUnknown_0203CCEC.anims = gMonAnimationsSpriteAnimsPtrTable[species];
gUnknown_0203CCEC.images = images;
sCreatingSpriteTemplate.tileTag = 0xFFFF;
sCreatingSpriteTemplate.anims = gMonAnimationsSpriteAnimsPtrTable[species];
sCreatingSpriteTemplate.images = images;
if (flags2 == 0x01)
{
gUnknown_0203CCEC.affineAnims = gUnknown_082FF694;
gUnknown_0203CCEC.oam = &gUnknown_0860B06C;
sCreatingSpriteTemplate.affineAnims = gUnknown_082FF694;
sCreatingSpriteTemplate.oam = &gUnknown_0860B06C;
}
else if (flags2 == 0x00)
{
gUnknown_0203CCEC.affineAnims = gUnknown_082FF618;
gUnknown_0203CCEC.oam = &gUnknown_0860B06C;
sCreatingSpriteTemplate.affineAnims = gUnknown_082FF618;
sCreatingSpriteTemplate.oam = &gUnknown_0860B06C;
}
else
{
gUnknown_0203CCEC.oam = &gUnknown_0860B064;
gUnknown_0203CCEC.affineAnims = gDummySpriteAffineAnimTable;
sCreatingSpriteTemplate.oam = &gUnknown_0860B064;
sCreatingSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable;
}
gUnknown_0203CCEC.callback = nullsub_122;
sub_818D0C4(species, otId, personality, paletteSlot, paletteTag, FALSE);
spriteId = CreateSprite(&gUnknown_0203CCEC, x, y, 0);
sCreatingSpriteTemplate.callback = DummyPicSpriteCallback;
LoadPicPaletteByTagOrSlot(species, otId, personality, paletteSlot, paletteTag, FALSE);
spriteId = CreateSprite(&sCreatingSpriteTemplate, x, y, 0);
if (paletteTag == 0xFFFF)
{
gSprites[spriteId].oam.paletteNum = paletteSlot;
}
gUnknown_0203CD04[i].frames = framePics;
gUnknown_0203CD04[i].images = images;
gUnknown_0203CD04[i].paletteTag = paletteTag;
gUnknown_0203CD04[i].spriteId = spriteId;
gUnknown_0203CD04[i].active = TRUE;
sSpritePics[i].frames = framePics;
sSpritePics[i].images = images;
sSpritePics[i].paletteTag = paletteTag;
sSpritePics[i].spriteId = spriteId;
sSpritePics[i].active = TRUE;
return spriteId;
}
static u16 sub_818D5B0(u16 spriteId)
static u16 FreeAndDestroyPicSpriteInternal(u16 spriteId)
{
u8 i;
u8 *framePics;
struct SpriteFrameImage *images;
for (i = 0; i < 8; i ++)
for (i = 0; i < PICS_COUNT; i ++)
{
if (gUnknown_0203CD04[i].spriteId == spriteId)
if (sSpritePics[i].spriteId == spriteId)
{
break;
}
}
if (i == 8)
if (i == PICS_COUNT)
{
return 0xFFFF;
}
framePics = gUnknown_0203CD04[i].frames;
images = gUnknown_0203CD04[i].images;
if (gUnknown_0203CD04[i].paletteTag != 0xFFFF)
framePics = sSpritePics[i].frames;
images = sSpritePics[i].images;
if (sSpritePics[i].paletteTag != 0xFFFF)
{
FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(gSprites[spriteId].oam.paletteNum));
}
DestroySprite(&gSprites[spriteId]);
Free(framePics);
Free(images);
gUnknown_0203CD04[i] = gUnknown_0860B058;
sSpritePics[i] = sDummyPicData;
return 0;
}
static u16 sub_818D65C(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u8 paletteSlot, u8 windowId, bool8 isTrainer)
{
if (sub_818D09C(species, personality, isFrontPic, (u8 *)GetWindowAttribute(windowId, WINDOW_TILE_DATA), FALSE))
if (DecompressPic_HandleDeoxys(species, personality, isFrontPic, (u8 *)GetWindowAttribute(windowId, WINDOW_TILE_DATA), FALSE))
{
return 0xFFFF;
}
sub_818D180(species, otId, personality, paletteSlot, isTrainer);
LoadPicPaletteBySlot(species, otId, personality, paletteSlot, isTrainer);
return 0;
}
@ -362,29 +342,29 @@ static u16 sub_818D6CC(u16 species, u32 otId, u32 personality, bool8 isFrontPic,
u8 *framePics;
framePics = Alloc(4 * 0x800);
if (framePics && !sub_818D09C(species, personality, isFrontPic, framePics, isTrainer))
if (framePics && !DecompressPic_HandleDeoxys(species, personality, isFrontPic, framePics, isTrainer))
{
BlitBitmapRectToWindow(windowId, framePics, 0, 0, 0x40, 0x40, destX, destY, 0x40, 0x40);
sub_818D180(species, otId, personality, paletteSlot, isTrainer);
LoadPicPaletteBySlot(species, otId, personality, paletteSlot, isTrainer);
Free(framePics);
return 0;
}
return 0xFFFF;
}
static u16 sub_818D778(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 ignoreDeoxys)
static u16 CreateMonPicSprite(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 ignoreDeoxys)
{
return oamt_spawn_poke_or_trainer_picture(species, otId, personality, isFrontPic, x, y, paletteSlot, paletteTag, FALSE, ignoreDeoxys);
return CreatePicSprite(species, otId, personality, isFrontPic, x, y, paletteSlot, paletteTag, FALSE, ignoreDeoxys);
}
u16 sub_818D7D8(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag)
u16 CreateMonPicSprite_HandleDeoxys(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag)
{
return sub_818D778(species, otId, personality, isFrontPic, x, y, paletteSlot, paletteTag, FALSE);
return CreateMonPicSprite(species, otId, personality, isFrontPic, x, y, paletteSlot, paletteTag, FALSE);
}
u16 sub_818D820(u16 spriteId)
u16 FreeAndDestroyMonPicSprite(u16 spriteId)
{
return sub_818D5B0(spriteId);
return FreeAndDestroyPicSpriteInternal(spriteId);
}
u16 sub_818D834(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u8 paletteSlot, u8 windowId)
@ -397,14 +377,14 @@ u16 sub_818D864(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u16 de
return sub_818D6CC(species, otId, personality, isFrontPic, destX, destY, paletteSlot, windowId, FALSE);
}
u16 sub_818D8AC(u16 species, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag)
u16 CreateTrainerPicSprite(u16 species, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag)
{
return sub_818D384(species, 0, 0, isFrontPic, x, y, paletteSlot, paletteTag, TRUE);
return CreatePicSprite_HandleDeoxys(species, 0, 0, isFrontPic, x, y, paletteSlot, paletteTag, TRUE);
}
u16 sub_818D8F0(u16 spriteId)
u16 FreeAndDestroyTrainerPicSprite(u16 spriteId)
{
return sub_818D5B0(spriteId);
return FreeAndDestroyPicSpriteInternal(spriteId);
}
u16 sub_818D904(u16 species, bool8 isFrontPic, u8 paletteSlot, u8 windowId)
@ -417,17 +397,17 @@ u16 sub_818D938(u16 species, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteS
return sub_818D6CC(species, 0, 0, isFrontPic, destX, destY, paletteSlot, windowId, TRUE);
}
u8 sub_818D97C(u8 a0, u8 a1)
u16 PlayerGenderToFrontTrainerPicId_Debug(u8 gender, bool8 getClass)
{
if (a1 == 1)
if (getClass == TRUE)
{
switch (a0)
switch (gender)
{
default:
return gFacilityClassToPicIndex[0x3F];
case 0:
return gFacilityClassToPicIndex[0x3C];
default:
return gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_MAY];
case MALE:
return gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_BRENDAN];
}
}
return a0;
return gender;
}

View File

@ -4,6 +4,7 @@
#include "text.h"
#include "sound.h"
ALIGNED(4)
static const u8 sUnknown_08616124[] = {1, 2, 4};
static const u16 sFont6BrailleGlyphs[] = INCBIN_U16("data/graphics/fonts/font6.fwjpnfont");

View File

@ -607,15 +607,14 @@ gUnknown_0203ABB8: @ 203ABB8
.space 0x4 /*unused var?*/
.include "src/mystery_event_script.o"
.include "src/learn_move.o"
.include "src/decoration_inventory.o"
.include "src/roamer.o"
gUnknown_0203BC88: @ 203BC88
gFacilityTrainers: @ 203BC88
.space 0x4
gUnknown_0203BC8C: @ 203BC8C
gFacilityTrainerMons: @ 203BC8C
.space 0x4
.include "src/use_pokeblock.o"
@ -633,20 +632,9 @@ gUnknown_0203BC8C: @ 203BC8C
.include "src/pokeblock_feed.o"
.include "src/intro_credits_graphics.o"
.include "src/recorded_battle.o"
.include "src/battle_dome_cards.o"
.include "src/trainer_pokemon_sprites.o"
.include "src/lilycove_lady.o"
gUnknown_0203CD70: @ 203CD70
.space 0x4
gUnknown_0203CD74: @ 203CD74
.space 0x4
gUnknown_0203CD78: @ 203CD78
.space 0x4
gUnknown_0203CD7C: @ 203CD7C
.space 0x4
.include "src/battle_dome.o"
gUnknown_0203CD80: @ 203CD80
.space 0x8
@ -741,7 +729,7 @@ gUnknown_0203CF00: @ 203CF00
.include "src/fldeff_groundshake.o"
.include "src/pokemon_summary_screen.o"
.include "src/unk_pokedex_area_screen_helper.o"
.include "src/battle_pyramid.o"
.include "src/battle_pyramid_bag.o"
gUnknown_0203CF3C: @ 203CF3C
.space 0x4