mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-26 11:44:17 +01:00
try battle tent and fail
This commit is contained in:
parent
2b7c138cbe
commit
78cad0dee5
@ -7,357 +7,6 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
thumb_func_start sub_8195960
|
||||
sub_8195960: @ 8195960
|
||||
push {lr}
|
||||
ldr r1, =gUnknown_0860DE50
|
||||
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_8195960
|
||||
|
||||
thumb_func_start sub_8195980
|
||||
sub_8195980: @ 8195980
|
||||
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 r7, r0, 16
|
||||
ldr r0, [r4]
|
||||
ldr r2, =0x00000ca8
|
||||
adds r0, r2
|
||||
movs r6, 0
|
||||
strb r6, [r0]
|
||||
ldr r1, [r4]
|
||||
adds r2, 0xA
|
||||
adds r0, r1, r2
|
||||
strh r6, [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]
|
||||
ldr r4, [r4]
|
||||
ldr r0, =0x00000cdc
|
||||
adds r3, r4, r0
|
||||
ldr r2, =gUnknown_0860DE98
|
||||
lsls r1, r5, 2
|
||||
lsls r0, r7, 3
|
||||
adds r1, r0
|
||||
adds r1, r2
|
||||
ldr r0, [r3]
|
||||
ldr r1, [r1]
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _081959F2
|
||||
lsls r0, r5, 1
|
||||
lsls r1, r7, 2
|
||||
adds r0, r1
|
||||
ldr r2, =0x00000dc8
|
||||
adds r1, r4, r2
|
||||
adds r1, r0
|
||||
strh r6, [r1]
|
||||
_081959F2:
|
||||
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 r6, [r0]
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end sub_8195980
|
||||
|
||||
thumb_func_start sub_8195A38
|
||||
sub_8195A38: @ 8195A38
|
||||
push {r4-r7,lr}
|
||||
ldr r5, =gSaveBlock2Ptr
|
||||
ldr r0, [r5]
|
||||
ldr r1, =0x00000ca9
|
||||
adds r0, r1
|
||||
ldrb r0, [r0]
|
||||
lsls r0, 30
|
||||
lsrs r7, r0, 30
|
||||
ldr r0, =0x000040ce
|
||||
bl VarGet
|
||||
lsls r0, 16
|
||||
lsrs r6, r0, 16
|
||||
ldr r0, =gSpecialVar_0x8005
|
||||
ldrh r0, [r0]
|
||||
cmp r0, 0x1
|
||||
beq _08195A90
|
||||
cmp r0, 0x1
|
||||
bgt _08195A74
|
||||
cmp r0, 0
|
||||
beq _08195A7A
|
||||
b _08195AD0
|
||||
.pool
|
||||
_08195A74:
|
||||
cmp r0, 0x2
|
||||
beq _08195AB0
|
||||
b _08195AD0
|
||||
_08195A7A:
|
||||
ldr r0, =gSpecialVar_Result
|
||||
ldr r1, [r5]
|
||||
ldr r2, =0x00000dc6
|
||||
adds r1, r2
|
||||
ldrh r1, [r1]
|
||||
strh r1, [r0]
|
||||
b _08195AD0
|
||||
.pool
|
||||
_08195A90:
|
||||
ldr r3, =gSpecialVar_Result
|
||||
ldr r0, [r5]
|
||||
lsls r1, r7, 1
|
||||
lsls r2, r6, 2
|
||||
adds r1, r2
|
||||
ldr r2, =0x00000dc8
|
||||
adds r0, r2
|
||||
adds r0, r1
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r3]
|
||||
b _08195AD0
|
||||
.pool
|
||||
_08195AB0:
|
||||
ldr r4, =gSpecialVar_Result
|
||||
ldr r2, [r5]
|
||||
ldr r0, =0x00000cdc
|
||||
adds r2, r0
|
||||
ldr r3, =gUnknown_0860DE98
|
||||
lsls r0, r7, 2
|
||||
lsls r1, r6, 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]
|
||||
_08195AD0:
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end sub_8195A38
|
||||
|
||||
thumb_func_start sub_8195AE4
|
||||
sub_8195AE4: @ 8195AE4
|
||||
push {r4-r6,lr}
|
||||
ldr r6, =gSaveBlock2Ptr
|
||||
ldr r0, [r6]
|
||||
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 r4, r0, 16
|
||||
ldr r0, =gSpecialVar_0x8005
|
||||
ldrh r0, [r0]
|
||||
cmp r0, 0x1
|
||||
beq _08195B3C
|
||||
cmp r0, 0x1
|
||||
bgt _08195B20
|
||||
cmp r0, 0
|
||||
beq _08195B26
|
||||
b _08195BA0
|
||||
.pool
|
||||
_08195B20:
|
||||
cmp r0, 0x2
|
||||
beq _08195B5C
|
||||
b _08195BA0
|
||||
_08195B26:
|
||||
ldr r0, [r6]
|
||||
ldr r1, =gSpecialVar_0x8006
|
||||
ldrh r1, [r1]
|
||||
ldr r2, =0x00000dc6
|
||||
adds r0, r2
|
||||
strh r1, [r0]
|
||||
b _08195BA0
|
||||
.pool
|
||||
_08195B3C:
|
||||
ldr r2, [r6]
|
||||
lsls r0, r5, 1
|
||||
lsls r1, r4, 2
|
||||
adds r0, r1
|
||||
ldr r1, =0x00000dc8
|
||||
adds r2, r1
|
||||
adds r2, r0
|
||||
ldr r0, =gSpecialVar_0x8006
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r2]
|
||||
b _08195BA0
|
||||
.pool
|
||||
_08195B5C:
|
||||
ldr r0, =gSpecialVar_0x8006
|
||||
ldrh r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _08195B88
|
||||
ldr r2, [r6]
|
||||
ldr r0, =0x00000cdc
|
||||
adds r2, r0
|
||||
ldr r3, =gUnknown_0860DE98
|
||||
lsls r1, r5, 2
|
||||
lsls r0, r4, 3
|
||||
adds r1, r0
|
||||
adds r1, r3
|
||||
ldr r0, [r2]
|
||||
ldr r1, [r1]
|
||||
orrs r0, r1
|
||||
b _08195B9E
|
||||
.pool
|
||||
_08195B88:
|
||||
ldr r2, [r6]
|
||||
ldr r1, =0x00000cdc
|
||||
adds r2, r1
|
||||
ldr r3, =gUnknown_0860DEA8
|
||||
lsls r1, r5, 2
|
||||
lsls r0, r4, 3
|
||||
adds r1, r0
|
||||
adds r1, r3
|
||||
ldr r0, [r2]
|
||||
ldr r1, [r1]
|
||||
ands r0, r1
|
||||
_08195B9E:
|
||||
str r0, [r2]
|
||||
_08195BA0:
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end sub_8195AE4
|
||||
|
||||
thumb_func_start sub_8195BB0
|
||||
sub_8195BB0: @ 8195BB0
|
||||
push {r4,lr}
|
||||
ldr r0, =0x000040ce
|
||||
bl VarGet
|
||||
lsls r0, 16
|
||||
ldr r1, =gSaveBlock2Ptr
|
||||
ldr r2, [r1]
|
||||
ldr r3, =0x00000ca9
|
||||
adds r1, r2, r3
|
||||
ldrb r1, [r1]
|
||||
lsls r1, 30
|
||||
lsrs r1, 29
|
||||
lsrs r0, 14
|
||||
adds r1, r0
|
||||
ldr r0, =0x00000dc8
|
||||
adds r2, r0
|
||||
adds r2, r1
|
||||
ldrh r0, [r2]
|
||||
cmp r0, 0x31
|
||||
bhi _08195C00
|
||||
ldr r4, =gSpecialVar_Result
|
||||
bl Random
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
movs r1, 0x3
|
||||
bl __umodsi3
|
||||
strh r0, [r4]
|
||||
b _08195C16
|
||||
.pool
|
||||
_08195C00:
|
||||
cmp r0, 0x62
|
||||
bhi _08195C10
|
||||
ldr r1, =gSpecialVar_Result
|
||||
movs r0, 0x3
|
||||
b _08195C14
|
||||
.pool
|
||||
_08195C10:
|
||||
ldr r1, =gSpecialVar_Result
|
||||
movs r0, 0x4
|
||||
_08195C14:
|
||||
strh r0, [r1]
|
||||
_08195C16:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end sub_8195BB0
|
||||
|
||||
thumb_func_start sub_8195C20
|
||||
sub_8195C20: @ 8195C20
|
||||
push {r4,lr}
|
||||
ldr r4, =gTrainerBattleOpponent_A
|
||||
bl Random
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
movs r1, 0xFF
|
||||
bl __umodsi3
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
lsls r1, r0, 2
|
||||
adds r1, r0
|
||||
lsrs r1, 6
|
||||
strh r1, [r4]
|
||||
ldrh r0, [r4]
|
||||
movs r1, 0
|
||||
bl sub_8162614
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end sub_8195C20
|
||||
|
||||
thumb_func_start sub_8195C50
|
||||
sub_8195C50: @ 8195C50
|
||||
push {lr}
|
||||
ldr r3, =gTrainerBattleOpponent_A
|
||||
ldrh r1, [r3]
|
||||
ldr r0, =0x0000012b
|
||||
cmp r1, r0
|
||||
bhi _08195C6C
|
||||
ldr r2, =gFacilityTrainers
|
||||
movs r0, 0x34
|
||||
muls r1, r0
|
||||
ldr r0, [r2]
|
||||
adds r0, r1
|
||||
adds r0, 0xC
|
||||
bl ConvertBattleFrontierTrainerSpeechToString
|
||||
_08195C6C:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end sub_8195C50
|
||||
|
||||
thumb_func_start sub_8195C7C
|
||||
sub_8195C7C: @ 8195C7C
|
||||
push {r4-r7,lr}
|
||||
|
@ -20059,7 +20059,7 @@ _081A4E46:
|
||||
bl ZeroEnemyPartyMons
|
||||
movs r1, 0
|
||||
str r1, [sp, 0x18]
|
||||
bl GetFrontierEnemyMonLevel
|
||||
bl GetFacilityEnemyMonLevel
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
str r0, [sp, 0x1C]
|
||||
@ -23702,7 +23702,7 @@ sub_81A6CD0: @ 81A6CD0
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
str r0, [sp, 0x24]
|
||||
bl GetFrontierEnemyMonLevel
|
||||
bl GetFacilityEnemyMonLevel
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
str r0, [sp, 0x20]
|
||||
@ -29517,7 +29517,7 @@ _081A9C56:
|
||||
bl SetMonData
|
||||
cmp r5, 0
|
||||
beq _081A9CD4
|
||||
bl GetFrontierEnemyMonLevel
|
||||
bl GetFacilityEnemyMonLevel
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
ldr r1, [sp, 0x10]
|
||||
|
@ -391,7 +391,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 +551,7 @@ _08162414:
|
||||
bl __udivsi3
|
||||
lsls r0, 16
|
||||
lsrs r5, r0, 16
|
||||
bl GetFrontierEnemyMonLevel
|
||||
bl GetFacilityEnemyMonLevel
|
||||
subs r4, 0x2
|
||||
cmp r4, 0x1
|
||||
bhi _08162488
|
||||
@ -784,7 +784,7 @@ sub_8162614: @ 8162614
|
||||
adds r6, r4, 0
|
||||
lsls r1, 24
|
||||
lsrs r5, r1, 24
|
||||
bl GetFrontierEnemyMonLevel
|
||||
bl GetFacilityEnemyMonLevel
|
||||
movs r0, 0xFA
|
||||
lsls r0, 1
|
||||
cmp r4, r0
|
||||
@ -962,7 +962,7 @@ sub_81627A4: @ 81627A4
|
||||
lsls r0, 16
|
||||
lsrs r4, r0, 16
|
||||
adds r5, r4, 0
|
||||
bl GetFrontierEnemyMonLevel
|
||||
bl GetFacilityEnemyMonLevel
|
||||
movs r0, 0xFA
|
||||
lsls r0, 1
|
||||
cmp r4, r0
|
||||
@ -1335,7 +1335,7 @@ GetFrontierTrainerFrontSpriteId: @ 8162AA0
|
||||
lsls r0, 16
|
||||
lsrs r4, r0, 16
|
||||
adds r5, r4, 0
|
||||
bl GetFrontierEnemyMonLevel
|
||||
bl GetFacilityEnemyMonLevel
|
||||
movs r0, 0xFA
|
||||
lsls r0, 1
|
||||
cmp r4, r0
|
||||
@ -1462,7 +1462,7 @@ GetFrontierOpponentClass: @ 8162BD8
|
||||
lsls r0, 16
|
||||
lsrs r4, r0, 16
|
||||
adds r5, r4, 0
|
||||
bl GetFrontierEnemyMonLevel
|
||||
bl GetFacilityEnemyMonLevel
|
||||
movs r0, 0xFA
|
||||
lsls r0, 1
|
||||
cmp r4, r0
|
||||
@ -1602,7 +1602,7 @@ sub_8162D34: @ 8162D34
|
||||
lsls r0, 16
|
||||
lsrs r4, r0, 16
|
||||
adds r5, r4, 0
|
||||
bl GetFrontierEnemyMonLevel
|
||||
bl GetFacilityEnemyMonLevel
|
||||
movs r0, 0xFA
|
||||
lsls r0, 1
|
||||
cmp r4, r0
|
||||
@ -1704,7 +1704,7 @@ GetFrontierTrainerName: @ 8162E20
|
||||
lsls r1, 16
|
||||
lsrs r5, r1, 16
|
||||
movs r4, 0
|
||||
bl GetFrontierEnemyMonLevel
|
||||
bl GetFacilityEnemyMonLevel
|
||||
movs r0, 0xFA
|
||||
lsls r0, 1
|
||||
cmp r5, r0
|
||||
@ -1854,7 +1854,7 @@ sub_8162F68: @ 8162F68
|
||||
lsls r0, 16
|
||||
lsrs r4, r0, 16
|
||||
adds r5, r4, 0
|
||||
bl GetFrontierEnemyMonLevel
|
||||
bl GetFacilityEnemyMonLevel
|
||||
movs r0, 0xFA
|
||||
lsls r0, 1
|
||||
cmp r4, r0
|
||||
@ -2025,7 +2025,7 @@ sub_81630C4: @ 81630C4
|
||||
add r4, sp, 0x14
|
||||
movs r0, 0xFF
|
||||
strb r0, [r4]
|
||||
bl GetFrontierEnemyMonLevel
|
||||
bl GetFacilityEnemyMonLevel
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
str r0, [sp, 0x20]
|
||||
@ -2551,7 +2551,7 @@ RandomizeFacilityTrainerMonId: @ 8163524
|
||||
adds r4, r0, 0
|
||||
lsls r4, 16
|
||||
lsrs r4, 16
|
||||
bl GetFrontierEnemyMonLevel
|
||||
bl GetFacilityEnemyMonLevel
|
||||
lsls r0, 24
|
||||
lsrs r6, r0, 24
|
||||
ldr r0, =gFacilityTrainers
|
||||
@ -2728,7 +2728,7 @@ _081636A4:
|
||||
movs r0, 0x1F
|
||||
_081636A6:
|
||||
str r0, [sp, 0x18]
|
||||
bl GetFrontierEnemyMonLevel
|
||||
bl GetFacilityEnemyMonLevel
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
str r0, [sp, 0x14]
|
||||
@ -3029,7 +3029,7 @@ _0816390A:
|
||||
thumb_func_start sub_8163914
|
||||
sub_8163914: @ 8163914
|
||||
push {lr}
|
||||
bl GetFrontierEnemyMonLevel
|
||||
bl GetFacilityEnemyMonLevel
|
||||
ldr r0, =gSpecialVar_0x8005
|
||||
ldrh r0, [r0]
|
||||
cmp r0, 0
|
||||
@ -3979,7 +3979,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 +4091,7 @@ sub_81642A0: @ 81642A0
|
||||
movs r2, 0
|
||||
bl GetMonData
|
||||
str r0, [sp, 0x20]
|
||||
bl GetFrontierEnemyMonLevel
|
||||
bl GetFacilityEnemyMonLevel
|
||||
movs r7, 0
|
||||
ldr r0, [sp, 0x18]
|
||||
lsls r0, 24
|
||||
@ -4464,7 +4464,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 +4556,7 @@ sub_81646BC: @ 81646BC
|
||||
movs r0, 0
|
||||
mov r9, r0
|
||||
mov r10, r0
|
||||
bl GetFrontierEnemyMonLevel
|
||||
bl GetFacilityEnemyMonLevel
|
||||
movs r0, 0xFA
|
||||
lsls r0, 1
|
||||
cmp r5, r0
|
||||
@ -4705,7 +4705,7 @@ sub_8164828: @ 8164828
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
sub sp, 0x8
|
||||
bl GetFrontierEnemyMonLevel
|
||||
bl GetFacilityEnemyMonLevel
|
||||
bl sub_81A39C4
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
@ -6073,7 +6073,7 @@ sub_8165404: @ 8165404
|
||||
sub sp, 0x70
|
||||
lsls r0, 16
|
||||
lsrs r7, r0, 16
|
||||
bl GetFrontierEnemyMonLevel
|
||||
bl GetFacilityEnemyMonLevel
|
||||
ldr r0, =0x00000c03
|
||||
cmp r7, r0
|
||||
beq _08165420
|
||||
@ -6228,7 +6228,7 @@ _08165564:
|
||||
bls _0816556C
|
||||
b _081656E8
|
||||
_0816556C:
|
||||
bl GetFrontierEnemyMonLevel
|
||||
bl GetFacilityEnemyMonLevel
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
str r0, [sp, 0x50]
|
||||
@ -7083,8 +7083,8 @@ _08165C2A:
|
||||
.pool
|
||||
thumb_func_end sub_8165B88
|
||||
|
||||
thumb_func_start GetFrontierEnemyMonLevel
|
||||
GetFrontierEnemyMonLevel: @ 8165C40
|
||||
thumb_func_start GetFacilityEnemyMonLevel
|
||||
GetFacilityEnemyMonLevel: @ 8165C40
|
||||
push {lr}
|
||||
ldr r0, =gSaveBlock2Ptr
|
||||
ldr r0, [r0]
|
||||
@ -7104,20 +7104,20 @@ GetFrontierEnemyMonLevel: @ 8165C40
|
||||
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 GetFrontierEnemyMonLevel
|
||||
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 +7138,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 +7246,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
|
||||
@ -7300,7 +7300,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,7 +7384,7 @@ 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]
|
||||
@ -7756,7 +7756,7 @@ sub_8166188: @ 8166188
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _081661E8
|
||||
bl GetFrontierEnemyMonLevel
|
||||
bl GetFacilityEnemyMonLevel
|
||||
lsls r0, 24
|
||||
movs r5, 0
|
||||
ldr r7, =gBaseStats
|
||||
|
@ -32,7 +32,17 @@ struct BattleFrontierTrainer
|
||||
u16 *btMonPool;
|
||||
};
|
||||
|
||||
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);
|
||||
|
@ -337,6 +337,12 @@ struct FrontierMonData
|
||||
u8 nature;
|
||||
};
|
||||
|
||||
struct Struct_field_E70
|
||||
{
|
||||
u16 monId;
|
||||
u8 unk2[9];
|
||||
};
|
||||
|
||||
struct BattleDomeTrainer
|
||||
{
|
||||
u16 trainerId:10;
|
||||
@ -398,10 +404,8 @@ struct BattleFrontier
|
||||
/*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];
|
||||
/*0xDCC*/ u8 filler_DCC[4];
|
||||
/*0xDD0*/ u16 field_DD0[2];
|
||||
/*0xDD4*/ u16 field_DD4[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];
|
||||
@ -429,7 +433,7 @@ 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;
|
||||
/*0xEBB*/ u8 field_EBB;
|
||||
|
@ -243,6 +243,7 @@ SECTIONS {
|
||||
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);
|
||||
|
@ -39,15 +39,6 @@
|
||||
#define DOME_FINAL 3
|
||||
#define DOME_ROUNDS_COUNT 4
|
||||
|
||||
struct FacilityMon
|
||||
{
|
||||
u16 species;
|
||||
u16 moves[4];
|
||||
u8 itemTableId;
|
||||
u8 evSpread;
|
||||
u8 nature;
|
||||
};
|
||||
|
||||
struct BattleDomeStruct
|
||||
{
|
||||
u8 arr[DOME_TOURNAMENT_TRAINERS_COUNT];
|
||||
@ -66,7 +57,7 @@ extern void sub_81B8558(void);
|
||||
extern u32 sub_81A39C4(void);
|
||||
extern u16 sub_8162548(u8, u8);
|
||||
extern u16 RandomizeFacilityTrainerMonId(u16);
|
||||
extern u8 GetFrontierEnemyMonLevel(void);
|
||||
extern u8 GetFacilityEnemyMonLevel(void);
|
||||
extern u16 sub_81A5060(u8 monId, u8 moveSlotId);
|
||||
extern u8 sub_81A50F0(u8, u8);
|
||||
extern u8 sub_81A50B0(u8);
|
||||
@ -87,7 +78,6 @@ extern u16 gBattle_BG2_X;
|
||||
extern u16 gBattle_BG2_Y;
|
||||
extern u16 gBattle_BG3_X;
|
||||
extern u16 gBattle_BG3_Y;
|
||||
extern const struct FacilityMon *gFacilityTrainerMons;
|
||||
|
||||
extern void (* const gUnknown_0860D090[])(void);
|
||||
extern const u32 gUnknown_0860D0EC[][2];
|
||||
@ -822,7 +812,7 @@ void InitDomeTrainers(void)
|
||||
monTypesBits >>= 1;
|
||||
}
|
||||
|
||||
monLevel = GetFrontierEnemyMonLevel();
|
||||
monLevel = GetFacilityEnemyMonLevel();
|
||||
statSums[0] += (monTypesCount * monLevel) / 20;
|
||||
|
||||
for (i = 1; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++)
|
||||
@ -995,7 +985,7 @@ static void CreateDomeMon(u8 monPartyId, u16 tournamentTrainerId, u8 tournamentM
|
||||
s32 i;
|
||||
u8 happiness = 0xFF;
|
||||
u8 fixedIv = GetDomeTrainerMonIvs(tournamentTrainerId); // BUG: Should be using trainerId instead of tournamentTrainerId. As a result, all Pokemon have ivs of 3.
|
||||
u8 level = GetFrontierEnemyMonLevel();
|
||||
u8 level = GetFacilityEnemyMonLevel();
|
||||
CreateMonWithEVSpreadPersonalityOTID(&gEnemyParty[monPartyId],
|
||||
gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentTrainerId][tournamentMonId]].species,
|
||||
level,
|
||||
@ -3716,7 +3706,7 @@ static u16 GetWinningMove(s32 winnerTournamentId, s32 loserTournamentId, u8 roun
|
||||
u16 bestScore = 0;
|
||||
u16 bestId = 0;
|
||||
s32 movePower = 0;
|
||||
GetFrontierEnemyMonLevel(); // Unused return variable.
|
||||
GetFacilityEnemyMonLevel(); // Unused return variable.
|
||||
|
||||
// Calc move points of all 4 moves for all 3 pokemon hitting all 3 target mons.
|
||||
for (i = 0; i < 3; i++)
|
||||
@ -4580,7 +4570,7 @@ static void DecideRoundWinners(u8 roundId)
|
||||
static void CopyDomeTrainerName(u8 *dst, u16 trainerId)
|
||||
{
|
||||
s32 i = 0;
|
||||
GetFrontierEnemyMonLevel(); // Unused return value.
|
||||
GetFacilityEnemyMonLevel(); // Unused return value.
|
||||
|
||||
if (trainerId == TRAINER_FRONTIER_BRAIN)
|
||||
{
|
||||
|
118
src/battle_frontier_1.c
Normal file
118
src/battle_frontier_1.c
Normal 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];
|
||||
}
|
||||
}
|
||||
*/
|
@ -11,6 +11,10 @@
|
||||
#include "constants/items.h"
|
||||
#include "constants/region_map_sections.h"
|
||||
|
||||
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);
|
||||
@ -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)
|
||||
@ -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,70 @@ bool8 sub_81B9E94(void)
|
||||
return (gMapHeader.regionMapSectionId == MAPSEC_SLATEPORT_CITY
|
||||
&& ((gMapHeader.mapLayoutId == 385) | (gMapHeader.mapLayoutId == 386)));
|
||||
}
|
||||
|
||||
// This function was written very...oddly.
|
||||
/*
|
||||
void sub_81B9EC0(void)
|
||||
{
|
||||
s32 i, j;
|
||||
u16 currMonId, currSpecies;
|
||||
u16 species[PARTY_SIZE];
|
||||
u16 monIds[PARTY_SIZE];
|
||||
u16 heldItems[PARTY_SIZE];
|
||||
s32 var;
|
||||
|
||||
gFacilityTrainers = gSlateportBattleTentTrainers;
|
||||
for (i = 0; i < PARTY_SIZE; i++)
|
||||
{
|
||||
species[i] = 0;
|
||||
monIds[i] = 0;
|
||||
heldItems[i] = 0;
|
||||
}
|
||||
gFacilityTrainerMons = gSlateportBattleTentMons;
|
||||
|
||||
currSpecies = 0;
|
||||
i = 0;
|
||||
while (i != PARTY_SIZE)
|
||||
{
|
||||
// Cannot have two pokemon of the same species.
|
||||
currMonId = Random() % 70;
|
||||
j = 0;
|
||||
var = 0 + i;
|
||||
while (j < var && monIds[j] != currMonId)
|
||||
{
|
||||
if (species[j] == gFacilityTrainerMons[currMonId].species)
|
||||
{
|
||||
if (currSpecies == 0)
|
||||
currSpecies = gFacilityTrainerMons[currMonId].species;
|
||||
else
|
||||
break;
|
||||
}
|
||||
j++;
|
||||
}
|
||||
if (j != var)
|
||||
continue;
|
||||
|
||||
// Cannot have two same held items.
|
||||
for (j = 0; j < var; j++)
|
||||
{
|
||||
if (heldItems[j] == 0)
|
||||
continue;
|
||||
if (heldItems[j] == gBattleFrontierHeldItems[gFacilityTrainerMons[currMonId].itemTableId])
|
||||
{
|
||||
if (gFacilityTrainerMons[currMonId].species == currSpecies)
|
||||
currSpecies = 0;
|
||||
else
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (j != var)
|
||||
continue;
|
||||
|
||||
gSaveBlock2Ptr->frontier.field_E70[var].monId = currMonId;
|
||||
species[var] = gFacilityTrainerMons[currMonId].species;
|
||||
heldItems[var] = gBattleFrontierHeldItems[gFacilityTrainerMons[currMonId].itemTableId];
|
||||
monIds[var] = currMonId;
|
||||
i++;
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
@ -2188,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:
|
||||
|
@ -81,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);
|
||||
@ -2821,7 +2820,7 @@ void sub_8068338(struct Pokemon *mon, struct UnknownPokemonStruct *src, bool8 lv
|
||||
u8 value;
|
||||
|
||||
if (gSaveBlock2Ptr->frontier.lvlMode != FRONTIER_LVL_50)
|
||||
level = BattleFrontierGetOpponentLvl(gSaveBlock2Ptr->frontier.lvlMode);
|
||||
level = GetFrontierEnemyMonLevel(gSaveBlock2Ptr->frontier.lvlMode);
|
||||
else if (lvl50)
|
||||
level = 50;
|
||||
else
|
||||
@ -2885,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,
|
||||
|
@ -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");
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user