battle_message 2
This commit is contained in:
@@ -1,869 +0,0 @@
|
|||||||
.include "asm/macros.inc"
|
|
||||||
.include "constants/constants.inc"
|
|
||||||
|
|
||||||
.syntax unified
|
|
||||||
|
|
||||||
.text
|
|
||||||
|
|
||||||
thumb_func_start ExpandBattleTextBuffPlaceholders
|
|
||||||
ExpandBattleTextBuffPlaceholders: @ 80D8418
|
|
||||||
push {r4-r7,lr}
|
|
||||||
mov r7, r8
|
|
||||||
push {r7}
|
|
||||||
sub sp, 0xC
|
|
||||||
adds r7, r0, 0
|
|
||||||
adds r6, r1, 0
|
|
||||||
movs r5, 0x1
|
|
||||||
movs r0, 0
|
|
||||||
mov r8, r0
|
|
||||||
movs r0, 0xFF
|
|
||||||
strb r0, [r6]
|
|
||||||
ldrb r0, [r7, 0x1]
|
|
||||||
cmp r0, 0xFF
|
|
||||||
bne _080D8436
|
|
||||||
b _080D86BA
|
|
||||||
_080D8436:
|
|
||||||
adds r0, r7, r5
|
|
||||||
ldrb r1, [r0]
|
|
||||||
adds r4, r0, 0
|
|
||||||
cmp r1, 0xA
|
|
||||||
bls _080D8442
|
|
||||||
b _080D86B0
|
|
||||||
_080D8442:
|
|
||||||
lsls r0, r1, 2
|
|
||||||
ldr r1, _080D844C @ =_080D8450
|
|
||||||
adds r0, r1
|
|
||||||
ldr r0, [r0]
|
|
||||||
mov pc, r0
|
|
||||||
.align 2, 0
|
|
||||||
_080D844C: .4byte _080D8450
|
|
||||||
.align 2, 0
|
|
||||||
_080D8450:
|
|
||||||
.4byte _080D847C
|
|
||||||
.4byte _080D8498
|
|
||||||
.4byte _080D84EC
|
|
||||||
.4byte _080D8504
|
|
||||||
.4byte _080D8514
|
|
||||||
.4byte _080D858C
|
|
||||||
.4byte _080D85A0
|
|
||||||
.4byte _080D85B2
|
|
||||||
.4byte _080D85F8
|
|
||||||
.4byte _080D860C
|
|
||||||
.4byte _080D8628
|
|
||||||
_080D847C:
|
|
||||||
adds r0, r5, r7
|
|
||||||
ldrb r1, [r0, 0x1]
|
|
||||||
ldrb r0, [r0, 0x2]
|
|
||||||
lsls r0, 8
|
|
||||||
orrs r1, r0
|
|
||||||
ldr r0, _080D8494 @ =gBattleStringsTable
|
|
||||||
subs r1, 0xC
|
|
||||||
lsls r1, 2
|
|
||||||
adds r1, r0
|
|
||||||
ldr r1, [r1]
|
|
||||||
b _080D868E
|
|
||||||
.align 2, 0
|
|
||||||
_080D8494: .4byte gBattleStringsTable
|
|
||||||
_080D8498:
|
|
||||||
ldrb r0, [r4, 0x1]
|
|
||||||
cmp r0, 0x2
|
|
||||||
beq _080D84B4
|
|
||||||
cmp r0, 0x2
|
|
||||||
bgt _080D84A8
|
|
||||||
cmp r0, 0x1
|
|
||||||
beq _080D84AE
|
|
||||||
b _080D84D6
|
|
||||||
_080D84A8:
|
|
||||||
cmp r0, 0x4
|
|
||||||
beq _080D84BC
|
|
||||||
b _080D84D6
|
|
||||||
_080D84AE:
|
|
||||||
ldrb r4, [r4, 0x3]
|
|
||||||
mov r8, r4
|
|
||||||
b _080D84D6
|
|
||||||
_080D84B4:
|
|
||||||
ldrb r1, [r4, 0x3]
|
|
||||||
ldrb r0, [r4, 0x4]
|
|
||||||
lsls r0, 8
|
|
||||||
b _080D84D2
|
|
||||||
_080D84BC:
|
|
||||||
ldrb r0, [r4, 0x3]
|
|
||||||
mov r8, r0
|
|
||||||
ldrb r0, [r4, 0x4]
|
|
||||||
lsls r0, 8
|
|
||||||
mov r1, r8
|
|
||||||
orrs r1, r0
|
|
||||||
ldrb r0, [r4, 0x5]
|
|
||||||
lsls r0, 16
|
|
||||||
orrs r1, r0
|
|
||||||
ldrb r0, [r4, 0x6]
|
|
||||||
lsls r0, 24
|
|
||||||
_080D84D2:
|
|
||||||
orrs r1, r0
|
|
||||||
mov r8, r1
|
|
||||||
_080D84D6:
|
|
||||||
adds r4, r5, r7
|
|
||||||
ldrb r3, [r4, 0x2]
|
|
||||||
adds r0, r6, 0
|
|
||||||
mov r1, r8
|
|
||||||
movs r2, 0
|
|
||||||
bl ConvertIntToDecimalStringN
|
|
||||||
adds r0, r5, 0x3
|
|
||||||
ldrb r4, [r4, 0x1]
|
|
||||||
adds r5, r0, r4
|
|
||||||
b _080D86B0
|
|
||||||
_080D84EC:
|
|
||||||
adds r0, r5, r7
|
|
||||||
ldrb r1, [r0, 0x1]
|
|
||||||
ldrb r0, [r0, 0x2]
|
|
||||||
lsls r0, 8
|
|
||||||
orrs r1, r0
|
|
||||||
movs r0, 0xD
|
|
||||||
muls r1, r0
|
|
||||||
ldr r0, _080D8500 @ =gMoveNames
|
|
||||||
adds r1, r0
|
|
||||||
b _080D868E
|
|
||||||
.align 2, 0
|
|
||||||
_080D8500: .4byte gMoveNames
|
|
||||||
_080D8504:
|
|
||||||
adds r0, r5, r7
|
|
||||||
ldrb r0, [r0, 0x1]
|
|
||||||
lsls r1, r0, 3
|
|
||||||
subs r1, r0
|
|
||||||
ldr r0, _080D8510 @ =gTypeNames
|
|
||||||
b _080D8616
|
|
||||||
.align 2, 0
|
|
||||||
_080D8510: .4byte gTypeNames
|
|
||||||
_080D8514:
|
|
||||||
ldrb r0, [r4, 0x1]
|
|
||||||
bl GetBattlerSide
|
|
||||||
lsls r0, 24
|
|
||||||
cmp r0, 0
|
|
||||||
bne _080D8538
|
|
||||||
ldrb r1, [r4, 0x2]
|
|
||||||
movs r0, 0x64
|
|
||||||
muls r0, r1
|
|
||||||
ldr r1, _080D8534 @ =gPlayerParty
|
|
||||||
adds r0, r1
|
|
||||||
movs r1, 0x2
|
|
||||||
mov r2, sp
|
|
||||||
bl GetMonData
|
|
||||||
b _080D8574
|
|
||||||
.align 2, 0
|
|
||||||
_080D8534: .4byte gPlayerParty
|
|
||||||
_080D8538:
|
|
||||||
ldr r0, _080D8550 @ =gBattleTypeFlags
|
|
||||||
ldr r0, [r0]
|
|
||||||
movs r1, 0x8
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, 0
|
|
||||||
beq _080D8558
|
|
||||||
ldr r1, _080D8554 @ =sText_FoePkmnPrefix
|
|
||||||
adds r0, r6, 0
|
|
||||||
bl StringAppend
|
|
||||||
b _080D8560
|
|
||||||
.align 2, 0
|
|
||||||
_080D8550: .4byte gBattleTypeFlags
|
|
||||||
_080D8554: .4byte sText_FoePkmnPrefix
|
|
||||||
_080D8558:
|
|
||||||
ldr r1, _080D8584 @ =sText_WildPkmnPrefix
|
|
||||||
adds r0, r6, 0
|
|
||||||
bl StringAppend
|
|
||||||
_080D8560:
|
|
||||||
adds r0, r5, r7
|
|
||||||
ldrb r1, [r0, 0x2]
|
|
||||||
movs r0, 0x64
|
|
||||||
muls r0, r1
|
|
||||||
ldr r1, _080D8588 @ =gEnemyParty
|
|
||||||
adds r0, r1
|
|
||||||
movs r1, 0x2
|
|
||||||
mov r2, sp
|
|
||||||
bl GetMonData
|
|
||||||
_080D8574:
|
|
||||||
mov r0, sp
|
|
||||||
bl StringGetEnd10
|
|
||||||
adds r0, r6, 0
|
|
||||||
mov r1, sp
|
|
||||||
bl StringAppend
|
|
||||||
b _080D86AE
|
|
||||||
.align 2, 0
|
|
||||||
_080D8584: .4byte sText_WildPkmnPrefix
|
|
||||||
_080D8588: .4byte gEnemyParty
|
|
||||||
_080D858C:
|
|
||||||
ldr r1, _080D859C @ =gUnknown_83FD5D0
|
|
||||||
adds r0, r5, r7
|
|
||||||
ldrb r0, [r0, 0x1]
|
|
||||||
lsls r0, 2
|
|
||||||
adds r0, r1
|
|
||||||
ldr r1, [r0]
|
|
||||||
b _080D8618
|
|
||||||
.align 2, 0
|
|
||||||
_080D859C: .4byte gUnknown_83FD5D0
|
|
||||||
_080D85A0:
|
|
||||||
adds r0, r5, r7
|
|
||||||
ldrb r1, [r0, 0x1]
|
|
||||||
ldrb r0, [r0, 0x2]
|
|
||||||
lsls r0, 8
|
|
||||||
orrs r1, r0
|
|
||||||
adds r0, r6, 0
|
|
||||||
bl GetSpeciesName
|
|
||||||
b _080D86AE
|
|
||||||
_080D85B2:
|
|
||||||
adds r4, r5, r7
|
|
||||||
ldrb r0, [r4, 0x1]
|
|
||||||
bl GetBattlerSide
|
|
||||||
lsls r0, 24
|
|
||||||
cmp r0, 0
|
|
||||||
bne _080D85D8
|
|
||||||
ldrb r1, [r4, 0x2]
|
|
||||||
movs r0, 0x64
|
|
||||||
muls r0, r1
|
|
||||||
ldr r1, _080D85D4 @ =gPlayerParty
|
|
||||||
adds r0, r1
|
|
||||||
movs r1, 0x2
|
|
||||||
adds r2, r6, 0
|
|
||||||
bl GetMonData
|
|
||||||
b _080D85EA
|
|
||||||
.align 2, 0
|
|
||||||
_080D85D4: .4byte gPlayerParty
|
|
||||||
_080D85D8:
|
|
||||||
ldrb r1, [r4, 0x2]
|
|
||||||
movs r0, 0x64
|
|
||||||
muls r0, r1
|
|
||||||
ldr r1, _080D85F4 @ =gEnemyParty
|
|
||||||
adds r0, r1
|
|
||||||
movs r1, 0x2
|
|
||||||
adds r2, r6, 0
|
|
||||||
bl GetMonData
|
|
||||||
_080D85EA:
|
|
||||||
adds r0, r6, 0
|
|
||||||
bl StringGetEnd10
|
|
||||||
b _080D86AE
|
|
||||||
.align 2, 0
|
|
||||||
_080D85F4: .4byte gEnemyParty
|
|
||||||
_080D85F8:
|
|
||||||
ldr r1, _080D8608 @ =gUnknown_83FD63C
|
|
||||||
adds r0, r5, r7
|
|
||||||
ldrb r0, [r0, 0x1]
|
|
||||||
lsls r0, 2
|
|
||||||
adds r0, r1
|
|
||||||
ldr r1, [r0]
|
|
||||||
b _080D8618
|
|
||||||
.align 2, 0
|
|
||||||
_080D8608: .4byte gUnknown_83FD63C
|
|
||||||
_080D860C:
|
|
||||||
adds r0, r5, r7
|
|
||||||
ldrb r1, [r0, 0x1]
|
|
||||||
movs r0, 0xD
|
|
||||||
muls r1, r0
|
|
||||||
ldr r0, _080D8624 @ =gAbilityNames
|
|
||||||
_080D8616:
|
|
||||||
adds r1, r0
|
|
||||||
_080D8618:
|
|
||||||
adds r0, r6, 0
|
|
||||||
bl StringAppend
|
|
||||||
adds r5, 0x2
|
|
||||||
b _080D86B0
|
|
||||||
.align 2, 0
|
|
||||||
_080D8624: .4byte gAbilityNames
|
|
||||||
_080D8628:
|
|
||||||
adds r0, r5, r7
|
|
||||||
ldrb r2, [r0, 0x1]
|
|
||||||
ldrb r0, [r0, 0x2]
|
|
||||||
lsls r0, 8
|
|
||||||
orrs r2, r0
|
|
||||||
ldr r0, _080D8674 @ =gBattleTypeFlags
|
|
||||||
ldr r0, [r0]
|
|
||||||
movs r1, 0x2
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, 0
|
|
||||||
beq _080D86A6
|
|
||||||
cmp r2, 0xAF
|
|
||||||
bne _080D869C
|
|
||||||
ldr r2, _080D8678 @ =gLinkPlayers
|
|
||||||
ldr r0, _080D867C @ =gBattleStruct
|
|
||||||
ldr r0, [r0]
|
|
||||||
adds r0, 0xB5
|
|
||||||
ldrb r1, [r0]
|
|
||||||
lsls r0, r1, 3
|
|
||||||
subs r0, r1
|
|
||||||
lsls r0, 2
|
|
||||||
adds r0, r2
|
|
||||||
ldr r1, _080D8680 @ =gPotentialItemEffectBattler
|
|
||||||
ldrb r2, [r1]
|
|
||||||
ldrh r0, [r0, 0x18]
|
|
||||||
cmp r0, r2
|
|
||||||
bne _080D868C
|
|
||||||
lsls r1, r2, 3
|
|
||||||
subs r1, r2
|
|
||||||
lsls r1, 2
|
|
||||||
ldr r0, _080D8684 @ =gEnigmaBerries
|
|
||||||
adds r1, r0
|
|
||||||
adds r0, r6, 0
|
|
||||||
bl StringCopy
|
|
||||||
ldr r1, _080D8688 @ =sText_BerrySuffix
|
|
||||||
b _080D868E
|
|
||||||
.align 2, 0
|
|
||||||
_080D8674: .4byte gBattleTypeFlags
|
|
||||||
_080D8678: .4byte gLinkPlayers
|
|
||||||
_080D867C: .4byte gBattleStruct
|
|
||||||
_080D8680: .4byte gPotentialItemEffectBattler
|
|
||||||
_080D8684: .4byte gEnigmaBerries
|
|
||||||
_080D8688: .4byte sText_BerrySuffix
|
|
||||||
_080D868C:
|
|
||||||
ldr r1, _080D8698 @ =sText_EnigmaBerry
|
|
||||||
_080D868E:
|
|
||||||
adds r0, r6, 0
|
|
||||||
bl StringAppend
|
|
||||||
b _080D86AE
|
|
||||||
.align 2, 0
|
|
||||||
_080D8698: .4byte sText_EnigmaBerry
|
|
||||||
_080D869C:
|
|
||||||
adds r0, r2, 0
|
|
||||||
adds r1, r6, 0
|
|
||||||
bl CopyItemName
|
|
||||||
b _080D86AE
|
|
||||||
_080D86A6:
|
|
||||||
adds r0, r2, 0
|
|
||||||
adds r1, r6, 0
|
|
||||||
bl CopyItemName
|
|
||||||
_080D86AE:
|
|
||||||
adds r5, 0x3
|
|
||||||
_080D86B0:
|
|
||||||
adds r0, r7, r5
|
|
||||||
ldrb r0, [r0]
|
|
||||||
cmp r0, 0xFF
|
|
||||||
beq _080D86BA
|
|
||||||
b _080D8436
|
|
||||||
_080D86BA:
|
|
||||||
add sp, 0xC
|
|
||||||
pop {r3}
|
|
||||||
mov r8, r3
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
thumb_func_end ExpandBattleTextBuffPlaceholders
|
|
||||||
|
|
||||||
thumb_func_start ChooseMoveUsedParticle
|
|
||||||
ChooseMoveUsedParticle: @ 80D86C8
|
|
||||||
push {r4,r5,lr}
|
|
||||||
adds r4, r0, 0
|
|
||||||
movs r2, 0
|
|
||||||
ldr r5, _080D86FC @ =gBattleMsgDataPtr
|
|
||||||
ldr r3, _080D8700 @ =gUnknown_83FEA70
|
|
||||||
_080D86D2:
|
|
||||||
cmp r2, 0x4
|
|
||||||
beq _080D86E8
|
|
||||||
ldrh r1, [r3]
|
|
||||||
cmp r1, 0
|
|
||||||
bne _080D86DE
|
|
||||||
adds r2, 0x1
|
|
||||||
_080D86DE:
|
|
||||||
ldr r0, [r5]
|
|
||||||
adds r3, 0x2
|
|
||||||
ldrh r0, [r0]
|
|
||||||
cmp r1, r0
|
|
||||||
bne _080D86D2
|
|
||||||
_080D86E8:
|
|
||||||
cmp r2, 0
|
|
||||||
blt _080D8714
|
|
||||||
cmp r2, 0x2
|
|
||||||
bgt _080D8708
|
|
||||||
ldr r1, _080D8704 @ =gUnknown_83FE88B
|
|
||||||
adds r0, r4, 0
|
|
||||||
bl StringCopy
|
|
||||||
b _080D8714
|
|
||||||
.align 2, 0
|
|
||||||
_080D86FC: .4byte gBattleMsgDataPtr
|
|
||||||
_080D8700: .4byte gUnknown_83FEA70
|
|
||||||
_080D8704: .4byte gUnknown_83FE88B
|
|
||||||
_080D8708:
|
|
||||||
cmp r2, 0x4
|
|
||||||
bgt _080D8714
|
|
||||||
ldr r1, _080D871C @ =gUnknown_83FE88F
|
|
||||||
adds r0, r4, 0
|
|
||||||
bl StringCopy
|
|
||||||
_080D8714:
|
|
||||||
pop {r4,r5}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_080D871C: .4byte gUnknown_83FE88F
|
|
||||||
thumb_func_end ChooseMoveUsedParticle
|
|
||||||
|
|
||||||
thumb_func_start ChooseTypeOfMoveUsedString
|
|
||||||
ChooseTypeOfMoveUsedString: @ 80D8720
|
|
||||||
push {r4,r5,lr}
|
|
||||||
adds r3, r0, 0
|
|
||||||
movs r4, 0
|
|
||||||
b _080D872A
|
|
||||||
_080D8728:
|
|
||||||
adds r3, 0x1
|
|
||||||
_080D872A:
|
|
||||||
ldrb r0, [r3]
|
|
||||||
cmp r0, 0xFF
|
|
||||||
bne _080D8728
|
|
||||||
ldr r1, _080D8760 @ =gUnknown_83FEA70
|
|
||||||
ldr r5, _080D8764 @ =gBattleMsgDataPtr
|
|
||||||
movs r0, 0
|
|
||||||
lsls r0, 1
|
|
||||||
adds r2, r0, r1
|
|
||||||
_080D873A:
|
|
||||||
cmp r4, 0x4
|
|
||||||
beq _080D8754
|
|
||||||
ldrh r1, [r2]
|
|
||||||
cmp r1, 0
|
|
||||||
bne _080D8746
|
|
||||||
adds r4, 0x1
|
|
||||||
_080D8746:
|
|
||||||
ldr r0, [r5]
|
|
||||||
adds r2, 0x2
|
|
||||||
ldrh r0, [r0]
|
|
||||||
cmp r1, r0
|
|
||||||
bne _080D873A
|
|
||||||
cmp r4, 0x4
|
|
||||||
bhi _080D87B0
|
|
||||||
_080D8754:
|
|
||||||
lsls r0, r4, 2
|
|
||||||
ldr r1, _080D8768 @ =_080D876C
|
|
||||||
adds r0, r1
|
|
||||||
ldr r0, [r0]
|
|
||||||
mov pc, r0
|
|
||||||
.align 2, 0
|
|
||||||
_080D8760: .4byte gUnknown_83FEA70
|
|
||||||
_080D8764: .4byte gBattleMsgDataPtr
|
|
||||||
_080D8768: .4byte _080D876C
|
|
||||||
.align 2, 0
|
|
||||||
_080D876C:
|
|
||||||
.4byte _080D8780
|
|
||||||
.4byte _080D8788
|
|
||||||
.4byte _080D8790
|
|
||||||
.4byte _080D8798
|
|
||||||
.4byte _080D87A8
|
|
||||||
_080D8780:
|
|
||||||
ldr r1, _080D8784 @ =sText_ExclamationMark
|
|
||||||
b _080D879A
|
|
||||||
.align 2, 0
|
|
||||||
_080D8784: .4byte sText_ExclamationMark
|
|
||||||
_080D8788:
|
|
||||||
ldr r1, _080D878C @ =sText_ExclamationMark2
|
|
||||||
b _080D879A
|
|
||||||
.align 2, 0
|
|
||||||
_080D878C: .4byte sText_ExclamationMark2
|
|
||||||
_080D8790:
|
|
||||||
ldr r1, _080D8794 @ =sText_ExclamationMark3
|
|
||||||
b _080D879A
|
|
||||||
.align 2, 0
|
|
||||||
_080D8794: .4byte sText_ExclamationMark3
|
|
||||||
_080D8798:
|
|
||||||
ldr r1, _080D87A4 @ =sText_ExclamationMark4
|
|
||||||
_080D879A:
|
|
||||||
adds r0, r3, 0
|
|
||||||
bl StringCopy
|
|
||||||
b _080D87B0
|
|
||||||
.align 2, 0
|
|
||||||
_080D87A4: .4byte sText_ExclamationMark4
|
|
||||||
_080D87A8:
|
|
||||||
ldr r1, _080D87B8 @ =sText_ExclamationMark5
|
|
||||||
adds r0, r3, 0
|
|
||||||
bl StringCopy
|
|
||||||
_080D87B0:
|
|
||||||
pop {r4,r5}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_080D87B8: .4byte sText_ExclamationMark5
|
|
||||||
thumb_func_end ChooseTypeOfMoveUsedString
|
|
||||||
|
|
||||||
thumb_func_start BattlePutTextOnWindow
|
|
||||||
BattlePutTextOnWindow: @ 80D87BC
|
|
||||||
push {r4-r7,lr}
|
|
||||||
mov r7, r8
|
|
||||||
push {r7}
|
|
||||||
sub sp, 0x10
|
|
||||||
adds r4, r0, 0
|
|
||||||
lsls r1, 24
|
|
||||||
lsrs r7, r1, 24
|
|
||||||
movs r0, 0xC0
|
|
||||||
mov r8, r0
|
|
||||||
mov r1, r8
|
|
||||||
ands r1, r7
|
|
||||||
mov r8, r1
|
|
||||||
movs r0, 0x3F
|
|
||||||
ands r7, r0
|
|
||||||
movs r0, 0x80
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, 0
|
|
||||||
bne _080D87F2
|
|
||||||
ldr r0, _080D8814 @ =gUnknown_83FEB64
|
|
||||||
lsls r1, r7, 1
|
|
||||||
adds r1, r7
|
|
||||||
lsls r1, 2
|
|
||||||
adds r1, r0
|
|
||||||
ldrb r1, [r1]
|
|
||||||
adds r0, r7, 0
|
|
||||||
bl FillWindowPixelBuffer
|
|
||||||
_080D87F2:
|
|
||||||
movs r0, 0x40
|
|
||||||
mov r1, r8
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, 0
|
|
||||||
beq _080D881C
|
|
||||||
bl ContextNpcGetTextColor
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
mov r2, sp
|
|
||||||
ldr r1, _080D8818 @ =gUnknown_83FEC90
|
|
||||||
adds r0, r1
|
|
||||||
ldrb r0, [r0]
|
|
||||||
strb r0, [r2, 0x5]
|
|
||||||
lsls r6, r7, 1
|
|
||||||
b _080D882E
|
|
||||||
.align 2, 0
|
|
||||||
_080D8814: .4byte gUnknown_83FEB64
|
|
||||||
_080D8818: .4byte gUnknown_83FEC90
|
|
||||||
_080D881C:
|
|
||||||
mov r3, sp
|
|
||||||
ldr r1, _080D884C @ =gUnknown_83FEB64
|
|
||||||
lsls r2, r7, 1
|
|
||||||
adds r0, r2, r7
|
|
||||||
lsls r0, 2
|
|
||||||
adds r0, r1
|
|
||||||
ldrb r0, [r0, 0x1]
|
|
||||||
strb r0, [r3, 0x5]
|
|
||||||
adds r6, r2, 0
|
|
||||||
_080D882E:
|
|
||||||
cmp r7, 0xF
|
|
||||||
blt _080D8878
|
|
||||||
cmp r7, 0x14
|
|
||||||
bgt _080D8850
|
|
||||||
ldr r0, _080D884C @ =gUnknown_83FEB64
|
|
||||||
adds r1, r6, r7
|
|
||||||
lsls r1, 2
|
|
||||||
adds r1, r0
|
|
||||||
ldrb r0, [r1, 0x1]
|
|
||||||
ldrb r2, [r1, 0x4]
|
|
||||||
adds r1, r4, 0
|
|
||||||
bl GetStringWidth
|
|
||||||
movs r1, 0x30
|
|
||||||
b _080D8868
|
|
||||||
.align 2, 0
|
|
||||||
_080D884C: .4byte gUnknown_83FEB64
|
|
||||||
_080D8850:
|
|
||||||
cmp r7, 0x17
|
|
||||||
bgt _080D8878
|
|
||||||
ldr r0, _080D8874 @ =gUnknown_83FEB64
|
|
||||||
adds r1, r6, r7
|
|
||||||
lsls r1, 2
|
|
||||||
adds r1, r0
|
|
||||||
ldrb r0, [r1, 0x1]
|
|
||||||
ldrb r2, [r1, 0x4]
|
|
||||||
adds r1, r4, 0
|
|
||||||
bl GetStringWidth
|
|
||||||
movs r1, 0x40
|
|
||||||
_080D8868:
|
|
||||||
subs r1, r0
|
|
||||||
lsrs r0, r1, 31
|
|
||||||
adds r1, r0
|
|
||||||
asrs r1, 1
|
|
||||||
b _080D8882
|
|
||||||
.align 2, 0
|
|
||||||
_080D8874: .4byte gUnknown_83FEB64
|
|
||||||
_080D8878:
|
|
||||||
ldr r1, _080D88F8 @ =gUnknown_83FEB64
|
|
||||||
adds r0, r6, r7
|
|
||||||
lsls r0, 2
|
|
||||||
adds r0, r1
|
|
||||||
ldrb r1, [r0, 0x2]
|
|
||||||
_080D8882:
|
|
||||||
cmp r1, 0
|
|
||||||
bge _080D8888
|
|
||||||
movs r1, 0
|
|
||||||
_080D8888:
|
|
||||||
str r4, [sp]
|
|
||||||
mov r0, sp
|
|
||||||
strb r7, [r0, 0x4]
|
|
||||||
strb r1, [r0, 0x6]
|
|
||||||
mov r1, sp
|
|
||||||
ldr r0, _080D88F8 @ =gUnknown_83FEB64
|
|
||||||
mov r12, r0
|
|
||||||
adds r3, r6, r7
|
|
||||||
lsls r3, 2
|
|
||||||
add r3, r12
|
|
||||||
ldrb r0, [r3, 0x3]
|
|
||||||
strb r0, [r1, 0x7]
|
|
||||||
mov r0, sp
|
|
||||||
ldrb r0, [r0, 0x6]
|
|
||||||
strb r0, [r1, 0x8]
|
|
||||||
mov r0, sp
|
|
||||||
ldrb r0, [r0, 0x7]
|
|
||||||
strb r0, [r1, 0x9]
|
|
||||||
ldrb r0, [r3, 0x4]
|
|
||||||
strb r0, [r1, 0xA]
|
|
||||||
ldrb r0, [r3, 0x5]
|
|
||||||
strb r0, [r1, 0xB]
|
|
||||||
mov r4, sp
|
|
||||||
ldrb r2, [r4, 0xC]
|
|
||||||
movs r1, 0x10
|
|
||||||
negs r1, r1
|
|
||||||
adds r0, r1, 0
|
|
||||||
ands r0, r2
|
|
||||||
strb r0, [r4, 0xC]
|
|
||||||
mov r2, sp
|
|
||||||
ldrb r0, [r3, 0x7]
|
|
||||||
lsls r0, 4
|
|
||||||
movs r5, 0xF
|
|
||||||
strb r0, [r2, 0xC]
|
|
||||||
ldrb r2, [r3, 0x8]
|
|
||||||
adds r0, r5, 0
|
|
||||||
ands r0, r2
|
|
||||||
ldrb r2, [r4, 0xD]
|
|
||||||
ands r1, r2
|
|
||||||
orrs r1, r0
|
|
||||||
strb r1, [r4, 0xD]
|
|
||||||
mov r2, sp
|
|
||||||
ldrb r0, [r3, 0x9]
|
|
||||||
lsls r0, 4
|
|
||||||
ands r1, r5
|
|
||||||
orrs r1, r0
|
|
||||||
strb r1, [r2, 0xD]
|
|
||||||
mov r3, r12
|
|
||||||
cmp r7, 0x18
|
|
||||||
bne _080D8900
|
|
||||||
ldr r0, _080D88FC @ =gTextFlags
|
|
||||||
ldrb r2, [r0]
|
|
||||||
movs r1, 0x3
|
|
||||||
negs r1, r1
|
|
||||||
ands r1, r2
|
|
||||||
b _080D8908
|
|
||||||
.align 2, 0
|
|
||||||
_080D88F8: .4byte gUnknown_83FEB64
|
|
||||||
_080D88FC: .4byte gTextFlags
|
|
||||||
_080D8900:
|
|
||||||
ldr r0, _080D8930 @ =gTextFlags
|
|
||||||
ldrb r1, [r0]
|
|
||||||
movs r2, 0x2
|
|
||||||
orrs r1, r2
|
|
||||||
_080D8908:
|
|
||||||
strb r1, [r0]
|
|
||||||
adds r4, r0, 0
|
|
||||||
ldr r1, _080D8934 @ =gBattleTypeFlags
|
|
||||||
ldr r2, [r1]
|
|
||||||
movs r0, 0x2
|
|
||||||
ands r0, r2
|
|
||||||
adds r5, r1, 0
|
|
||||||
cmp r0, 0
|
|
||||||
bne _080D8928
|
|
||||||
movs r0, 0x80
|
|
||||||
lsls r0, 9
|
|
||||||
ands r2, r0
|
|
||||||
cmp r2, 0
|
|
||||||
beq _080D8938
|
|
||||||
cmp r7, 0x18
|
|
||||||
beq _080D8938
|
|
||||||
_080D8928:
|
|
||||||
ldrb r0, [r4]
|
|
||||||
movs r1, 0x4
|
|
||||||
orrs r0, r1
|
|
||||||
b _080D8940
|
|
||||||
.align 2, 0
|
|
||||||
_080D8930: .4byte gTextFlags
|
|
||||||
_080D8934: .4byte gBattleTypeFlags
|
|
||||||
_080D8938:
|
|
||||||
ldrb r1, [r4]
|
|
||||||
movs r0, 0x5
|
|
||||||
negs r0, r0
|
|
||||||
ands r0, r1
|
|
||||||
_080D8940:
|
|
||||||
strb r0, [r4]
|
|
||||||
cmp r7, 0
|
|
||||||
beq _080D894A
|
|
||||||
cmp r7, 0x18
|
|
||||||
bne _080D8970
|
|
||||||
_080D894A:
|
|
||||||
ldr r0, [r5]
|
|
||||||
movs r1, 0x2
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, 0
|
|
||||||
beq _080D8958
|
|
||||||
movs r3, 0x1
|
|
||||||
b _080D8960
|
|
||||||
_080D8958:
|
|
||||||
bl GetTextSpeedSetting
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r3, r0, 24
|
|
||||||
_080D8960:
|
|
||||||
ldr r0, _080D896C @ =gTextFlags
|
|
||||||
ldrb r1, [r0]
|
|
||||||
movs r2, 0x1
|
|
||||||
orrs r1, r2
|
|
||||||
strb r1, [r0]
|
|
||||||
b _080D8982
|
|
||||||
.align 2, 0
|
|
||||||
_080D896C: .4byte gTextFlags
|
|
||||||
_080D8970:
|
|
||||||
adds r0, r6, r7
|
|
||||||
lsls r0, 2
|
|
||||||
adds r0, r3
|
|
||||||
ldrb r3, [r0, 0x6]
|
|
||||||
ldrb r1, [r4]
|
|
||||||
movs r0, 0x2
|
|
||||||
negs r0, r0
|
|
||||||
ands r0, r1
|
|
||||||
strb r0, [r4]
|
|
||||||
_080D8982:
|
|
||||||
mov r0, sp
|
|
||||||
adds r1, r3, 0
|
|
||||||
movs r2, 0
|
|
||||||
bl AddTextPrinter
|
|
||||||
movs r0, 0x80
|
|
||||||
mov r1, r8
|
|
||||||
ands r1, r0
|
|
||||||
cmp r1, 0
|
|
||||||
bne _080D89A4
|
|
||||||
adds r0, r7, 0
|
|
||||||
bl PutWindowTilemap
|
|
||||||
adds r0, r7, 0
|
|
||||||
movs r1, 0x3
|
|
||||||
bl CopyWindowToVram
|
|
||||||
_080D89A4:
|
|
||||||
add sp, 0x10
|
|
||||||
pop {r3}
|
|
||||||
mov r8, r3
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
thumb_func_end BattlePutTextOnWindow
|
|
||||||
|
|
||||||
thumb_func_start sub_80D89B0
|
|
||||||
sub_80D89B0: @ 80D89B0
|
|
||||||
push {lr}
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r1, r0, 16
|
|
||||||
cmp r1, 0xC
|
|
||||||
beq _080D89CC
|
|
||||||
ldr r0, _080D89D0 @ =0x00000177
|
|
||||||
cmp r1, r0
|
|
||||||
beq _080D89CC
|
|
||||||
adds r0, 0x8
|
|
||||||
cmp r1, r0
|
|
||||||
beq _080D89CC
|
|
||||||
subs r0, 0x7
|
|
||||||
cmp r1, r0
|
|
||||||
bne _080D89D4
|
|
||||||
_080D89CC:
|
|
||||||
movs r0, 0x1
|
|
||||||
b _080D89D6
|
|
||||||
.align 2, 0
|
|
||||||
_080D89D0: .4byte 0x00000177
|
|
||||||
_080D89D4:
|
|
||||||
movs r0, 0
|
|
||||||
_080D89D6:
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end sub_80D89B0
|
|
||||||
|
|
||||||
thumb_func_start SetPpNumbersPaletteInMoveSelection
|
|
||||||
SetPpNumbersPaletteInMoveSelection: @ 80D89DC
|
|
||||||
push {r4,r5,lr}
|
|
||||||
ldr r0, _080D8A38 @ =gActiveBattler
|
|
||||||
ldrb r2, [r0]
|
|
||||||
lsls r1, r2, 9
|
|
||||||
ldr r0, _080D8A3C @ =gBattleBufferA + 4
|
|
||||||
adds r1, r0
|
|
||||||
ldr r4, _080D8A40 @ =gUnknown_8D2FBB4
|
|
||||||
ldr r0, _080D8A44 @ =gMoveSelectionCursor
|
|
||||||
adds r2, r0
|
|
||||||
ldrb r2, [r2]
|
|
||||||
adds r0, r1, 0
|
|
||||||
adds r0, 0x8
|
|
||||||
adds r0, r2
|
|
||||||
ldrb r0, [r0]
|
|
||||||
adds r1, 0xC
|
|
||||||
adds r1, r2
|
|
||||||
ldrb r1, [r1]
|
|
||||||
bl GetCurrentPpToMaxPpState
|
|
||||||
lsls r0, 24
|
|
||||||
ldr r5, _080D8A48 @ =gPlttBufferUnfaded
|
|
||||||
lsrs r0, 22
|
|
||||||
adds r0, r4
|
|
||||||
ldrh r1, [r0]
|
|
||||||
adds r2, r5, 0
|
|
||||||
adds r2, 0xB8
|
|
||||||
strh r1, [r2]
|
|
||||||
ldrh r0, [r0, 0x2]
|
|
||||||
adds r5, 0xB6
|
|
||||||
strh r0, [r5]
|
|
||||||
ldr r4, _080D8A4C @ =gPlttBufferFaded + 0xB8
|
|
||||||
adds r0, r2, 0
|
|
||||||
adds r1, r4, 0
|
|
||||||
movs r2, 0x1
|
|
||||||
bl CpuSet
|
|
||||||
subs r4, 0x2
|
|
||||||
adds r0, r5, 0
|
|
||||||
adds r1, r4, 0
|
|
||||||
movs r2, 0x1
|
|
||||||
bl CpuSet
|
|
||||||
pop {r4,r5}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_080D8A38: .4byte gActiveBattler
|
|
||||||
_080D8A3C: .4byte gBattleBufferA + 4
|
|
||||||
_080D8A40: .4byte gUnknown_8D2FBB4
|
|
||||||
_080D8A44: .4byte gMoveSelectionCursor
|
|
||||||
_080D8A48: .4byte gPlttBufferUnfaded
|
|
||||||
_080D8A4C: .4byte gPlttBufferFaded + 0xB8
|
|
||||||
thumb_func_end SetPpNumbersPaletteInMoveSelection
|
|
||||||
|
|
||||||
thumb_func_start GetCurrentPpToMaxPpState
|
|
||||||
GetCurrentPpToMaxPpState: @ 80D8A50
|
|
||||||
push {lr}
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r2, r0, 24
|
|
||||||
adds r3, r2, 0
|
|
||||||
lsls r1, 24
|
|
||||||
lsrs r0, r1, 24
|
|
||||||
cmp r0, r2
|
|
||||||
beq _080D8A98
|
|
||||||
cmp r0, 0x2
|
|
||||||
bhi _080D8A6A
|
|
||||||
cmp r2, 0x1
|
|
||||||
bhi _080D8A98
|
|
||||||
b _080D8A72
|
|
||||||
_080D8A6A:
|
|
||||||
cmp r0, 0x7
|
|
||||||
bhi _080D8A7C
|
|
||||||
cmp r2, 0x2
|
|
||||||
bhi _080D8A98
|
|
||||||
_080D8A72:
|
|
||||||
movs r0, 0x2
|
|
||||||
subs r0, r2
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
b _080D8A9A
|
|
||||||
_080D8A7C:
|
|
||||||
cmp r2, 0
|
|
||||||
bne _080D8A84
|
|
||||||
movs r0, 0x2
|
|
||||||
b _080D8A9A
|
|
||||||
_080D8A84:
|
|
||||||
lsrs r0, r1, 26
|
|
||||||
cmp r2, r0
|
|
||||||
bhi _080D8A8E
|
|
||||||
movs r0, 0x1
|
|
||||||
b _080D8A9A
|
|
||||||
_080D8A8E:
|
|
||||||
lsrs r0, r1, 25
|
|
||||||
cmp r3, r0
|
|
||||||
bhi _080D8A98
|
|
||||||
movs r0, 0
|
|
||||||
b _080D8A9A
|
|
||||||
_080D8A98:
|
|
||||||
movs r0, 0x3
|
|
||||||
_080D8A9A:
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end GetCurrentPpToMaxPpState
|
|
||||||
|
|
||||||
.align 2, 0 @ Don't pad with nop.
|
|
||||||
@@ -4239,4 +4239,7 @@ extern const u16 gUnknown_8E97DDC[];
|
|||||||
extern const u32 gUnknown_8E97DFC[];
|
extern const u32 gUnknown_8E97DFC[];
|
||||||
extern const u32 gUnknown_8E97EC4[];
|
extern const u32 gUnknown_8E97EC4[];
|
||||||
|
|
||||||
|
// battle_message
|
||||||
|
extern const u16 gUnknown_8D2FBB4[];
|
||||||
|
|
||||||
#endif //GUARD_GRAPHICS_H
|
#endif //GUARD_GRAPHICS_H
|
||||||
|
|||||||
+1
-1
@@ -193,7 +193,7 @@ extern const u8 BattleText_GetPumped[];
|
|||||||
extern const u8 BattleText_MistShroud[];
|
extern const u8 BattleText_MistShroud[];
|
||||||
extern const u8 gText_BadEgg[];
|
extern const u8 gText_BadEgg[];
|
||||||
extern const u8 gText_PkmnsXPreventsSwitching[];
|
extern const u8 gText_PkmnsXPreventsSwitching[];
|
||||||
extern const u8 *const gUnknown_83FD5D0[];
|
extern const u8 *const gStatNamesTable[];
|
||||||
|
|
||||||
// diploma
|
// diploma
|
||||||
extern const u8 gUnknown_841B60E[];
|
extern const u8 gUnknown_841B60E[];
|
||||||
|
|||||||
@@ -196,7 +196,6 @@ SECTIONS {
|
|||||||
src/battle_transition.o(.text);
|
src/battle_transition.o(.text);
|
||||||
src/battle_controller_link_partner.o(.text);
|
src/battle_controller_link_partner.o(.text);
|
||||||
src/battle_message.o(.text);
|
src/battle_message.o(.text);
|
||||||
asm/battle_message.o(.text);
|
|
||||||
src/math_util.o(.text);
|
src/math_util.o(.text);
|
||||||
src/roulette_util.o(.text);
|
src/roulette_util.o(.text);
|
||||||
src/cable_car_util.o(.text);
|
src/cable_car_util.o(.text);
|
||||||
|
|||||||
+430
-99
@@ -1,6 +1,7 @@
|
|||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include "battle_string_ids.h"
|
#include "battle_string_ids.h"
|
||||||
#include "battle.h"
|
#include "battle.h"
|
||||||
|
#include "palette.h"
|
||||||
#include "battle_anim.h"
|
#include "battle_anim.h"
|
||||||
#include "string_util.h"
|
#include "string_util.h"
|
||||||
#include "text.h"
|
#include "text.h"
|
||||||
@@ -14,6 +15,10 @@
|
|||||||
#include "battle_tower.h"
|
#include "battle_tower.h"
|
||||||
#include "trainer_tower.h"
|
#include "trainer_tower.h"
|
||||||
#include "battle_setup.h"
|
#include "battle_setup.h"
|
||||||
|
#include "field_specials.h"
|
||||||
|
#include "new_menu_helpers.h"
|
||||||
|
#include "battle_controllers.h"
|
||||||
|
#include "graphics.h"
|
||||||
#include "constants/moves.h"
|
#include "constants/moves.h"
|
||||||
#include "constants/items.h"
|
#include "constants/items.h"
|
||||||
#include "constants/trainer_classes.h"
|
#include "constants/trainer_classes.h"
|
||||||
@@ -32,12 +37,12 @@ struct BattleWindowText
|
|||||||
u8 shadowColor;
|
u8 shadowColor;
|
||||||
};
|
};
|
||||||
|
|
||||||
EWRAM_DATA u8 sBattlerAbilities[MAX_BATTLERS_COUNT] = {};
|
static EWRAM_DATA u8 sBattlerAbilities[MAX_BATTLERS_COUNT] = {};
|
||||||
EWRAM_DATA struct BattleMsgData *gBattleMsgDataPtr = NULL;
|
static EWRAM_DATA struct BattleMsgData *gBattleMsgDataPtr = NULL;
|
||||||
|
|
||||||
void ChooseMoveUsedParticle(u8 *textPtr);
|
static void ChooseMoveUsedParticle(u8 *textPtr);
|
||||||
void ChooseTypeOfMoveUsedString(u8 *textPtr);
|
static void ChooseTypeOfMoveUsedString(u8 *textPtr);
|
||||||
void ExpandBattleTextBuffPlaceholders(const u8 *src, u8 *dst);
|
static void ExpandBattleTextBuffPlaceholders(const u8 *src, u8 *dst);
|
||||||
|
|
||||||
const u8 gUnknown_83FB218[] = _(""); // @ 83FB218
|
const u8 gUnknown_83FB218[] = _(""); // @ 83FB218
|
||||||
const u8 gUnknown_83FB219[] = _("{B_TRAINER1_LOSE_TEXT}"); // @ 83FB219
|
const u8 gUnknown_83FB219[] = _("{B_TRAINER1_LOSE_TEXT}"); // @ 83FB219
|
||||||
@@ -314,18 +319,18 @@ const u8 gUnknown_83FCC33[] = _("And…\p"); // @ 83FCC33
|
|||||||
const u8 gUnknown_83FCC39[] = _("HM moves can't be\nforgotten now.\p"); // @ 83FCC39
|
const u8 gUnknown_83FCC39[] = _("HM moves can't be\nforgotten now.\p"); // @ 83FCC39
|
||||||
const u8 gUnknown_83FCC5B[] = _("It's not very effective…"); // @ 83FCC5B
|
const u8 gUnknown_83FCC5B[] = _("It's not very effective…"); // @ 83FCC5B
|
||||||
const u8 gUnknown_83FCC74[] = _("It's super effective!"); // @ 83FCC74
|
const u8 gUnknown_83FCC74[] = _("It's super effective!"); // @ 83FCC74
|
||||||
const u8 sText_GotAwaySafely[] = _("{PLAY_SE SE_NIGERU}Got away safely!\p"); // @ 83FCC8A
|
static const u8 sText_GotAwaySafely[] = _("{PLAY_SE SE_NIGERU}Got away safely!\p"); // @ 83FCC8A
|
||||||
const u8 gUnknown_83FCCA0[] = _("{PLAY_SE SE_NIGERU}{B_ATK_NAME_WITH_PREFIX} fled\nusing its {B_LAST_ITEM}!\p"); // @ 83FCCA0
|
const u8 gUnknown_83FCCA0[] = _("{PLAY_SE SE_NIGERU}{B_ATK_NAME_WITH_PREFIX} fled\nusing its {B_LAST_ITEM}!\p"); // @ 83FCCA0
|
||||||
const u8 gUnknown_83FCCBB[] = _("{PLAY_SE SE_NIGERU}{B_ATK_NAME_WITH_PREFIX} fled\nusing {B_ATK_ABILITY}!\p"); // @ 83FCCBB
|
const u8 gUnknown_83FCCBB[] = _("{PLAY_SE SE_NIGERU}{B_ATK_NAME_WITH_PREFIX} fled\nusing {B_ATK_ABILITY}!\p"); // @ 83FCCBB
|
||||||
const u8 gUnknown_83FCCD2[] = _("{PLAY_SE SE_NIGERU}Wild {B_BUFF1} fled!"); // @ 83FCCD2
|
const u8 gUnknown_83FCCD2[] = _("{PLAY_SE SE_NIGERU}Wild {B_BUFF1} fled!"); // @ 83FCCD2
|
||||||
const u8 sText_PlayerDefeatedLinkTrainer[] = _("Player defeated\n{B_LINK_OPPONENT1_NAME}!"); // @ 83FCCE4
|
static const u8 sText_PlayerDefeatedLinkTrainer[] = _("Player defeated\n{B_LINK_OPPONENT1_NAME}!"); // @ 83FCCE4
|
||||||
const u8 sText_TwoLinkTrainersDefeated[] = _("Player beat {B_LINK_OPPONENT1_NAME}\nand {B_LINK_OPPONENT2_NAME}!"); // @ 83FCCF8
|
static const u8 sText_TwoLinkTrainersDefeated[] = _("Player beat {B_LINK_OPPONENT1_NAME}\nand {B_LINK_OPPONENT2_NAME}!"); // @ 83FCCF8
|
||||||
const u8 sText_PlayerLostAgainstLinkTrainer[] = _("Player lost against\n{B_LINK_OPPONENT1_NAME}!"); // @ 83FCD0F
|
static const u8 sText_PlayerLostAgainstLinkTrainer[] = _("Player lost against\n{B_LINK_OPPONENT1_NAME}!"); // @ 83FCD0F
|
||||||
const u8 sText_PlayerLostToTwo[] = _("Player lost to {B_LINK_OPPONENT1_NAME}\nand {B_LINK_OPPONENT2_NAME}!"); // @ 83FCD27
|
static const u8 sText_PlayerLostToTwo[] = _("Player lost to {B_LINK_OPPONENT1_NAME}\nand {B_LINK_OPPONENT2_NAME}!"); // @ 83FCD27
|
||||||
const u8 sText_PlayerBattledToDrawLinkTrainer[] = _("Player battled to a draw against\n{B_LINK_OPPONENT1_NAME}!"); // @ 83FCD41
|
static const u8 sText_PlayerBattledToDrawLinkTrainer[] = _("Player battled to a draw against\n{B_LINK_OPPONENT1_NAME}!"); // @ 83FCD41
|
||||||
const u8 sText_PlayerBattledToDrawVsTwo[] = _("Player battled to a draw against\n{B_LINK_OPPONENT1_NAME} and {B_LINK_OPPONENT2_NAME}!"); // @ 83FCD66
|
static const u8 sText_PlayerBattledToDrawVsTwo[] = _("Player battled to a draw against\n{B_LINK_OPPONENT1_NAME} and {B_LINK_OPPONENT2_NAME}!"); // @ 83FCD66
|
||||||
const u8 gUnknown_83FCD92[] = _("{PLAY_SE SE_NIGERU}{B_LINK_OPPONENT1_NAME} fled!"); // @ 83FCD92
|
const u8 gUnknown_83FCD92[] = _("{PLAY_SE SE_NIGERU}{B_LINK_OPPONENT1_NAME} fled!"); // @ 83FCD92
|
||||||
const u8 sText_TwoWildFled[] = _("{PLAY_SE SE_NIGERU}{B_LINK_OPPONENT1_NAME} and\n{B_LINK_OPPONENT2_NAME} fled!"); // @ 83FCD9F
|
static const u8 sText_TwoWildFled[] = _("{PLAY_SE SE_NIGERU}{B_LINK_OPPONENT1_NAME} and\n{B_LINK_OPPONENT2_NAME} fled!"); // @ 83FCD9F
|
||||||
const u8 gUnknown_83FCDB3[] = _("No! There's no running\nfrom a TRAINER battle!\p"); // @ 83FCDB3
|
const u8 gUnknown_83FCDB3[] = _("No! There's no running\nfrom a TRAINER battle!\p"); // @ 83FCDB3
|
||||||
const u8 gUnknown_83FCDE2[] = _("Can't escape!\p"); // @ 83FCDE2
|
const u8 gUnknown_83FCDE2[] = _("Can't escape!\p"); // @ 83FCDE2
|
||||||
const u8 gUnknown_83FCDF1[] = _(""); // @ 83FCDF1
|
const u8 gUnknown_83FCDF1[] = _(""); // @ 83FCDF1
|
||||||
@@ -367,71 +372,71 @@ const u8 gUnknown_83FD15A[] = _("{B_ATK_NAME_WITH_PREFIX} turned away!"); // @
|
|||||||
const u8 gUnknown_83FD16A[] = _("{B_ATK_NAME_WITH_PREFIX} pretended\nnot to notice!"); // @ 83FD16A
|
const u8 gUnknown_83FD16A[] = _("{B_ATK_NAME_WITH_PREFIX} pretended\nnot to notice!"); // @ 83FD16A
|
||||||
const u8 gUnknown_83FD186[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME} is\nabout to use {B_BUFF2}.\pWill {B_PLAYER_NAME} change\nPOKéMON?"); // @ 83FD186
|
const u8 gUnknown_83FD186[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME} is\nabout to use {B_BUFF2}.\pWill {B_PLAYER_NAME} change\nPOKéMON?"); // @ 83FD186
|
||||||
const u8 gUnknown_83FD1B8[] = _("{B_ATK_NAME_WITH_PREFIX} learned\n{B_BUFF1}!"); // @ 83FD1B8
|
const u8 gUnknown_83FD1B8[] = _("{B_ATK_NAME_WITH_PREFIX} learned\n{B_BUFF1}!"); // @ 83FD1B8
|
||||||
const u8 sText_PlayerDefeatedLinkTrainerTrainer1[] = _("Player defeated\n{B_TRAINER1_CLASS} {B_TRAINER1_NAME}!\p"); // @ 83FD1C7
|
static const u8 sText_PlayerDefeatedLinkTrainerTrainer1[] = _("Player defeated\n{B_TRAINER1_CLASS} {B_TRAINER1_NAME}!\p"); // @ 83FD1C7
|
||||||
const u8 gUnknown_83FD1DF[] = _("{B_PLAYER_NAME} threw a ROCK\nat the {B_OPPONENT_MON1_NAME}!"); // @ 83FD1DF
|
const u8 gUnknown_83FD1DF[] = _("{B_PLAYER_NAME} threw a ROCK\nat the {B_OPPONENT_MON1_NAME}!"); // @ 83FD1DF
|
||||||
const u8 gUnknown_83FD1FA[] = _("{B_PLAYER_NAME} threw some BAIT\nat the {B_OPPONENT_MON1_NAME}!"); // @ 83FD1FA
|
const u8 gUnknown_83FD1FA[] = _("{B_PLAYER_NAME} threw some BAIT\nat the {B_OPPONENT_MON1_NAME}!"); // @ 83FD1FA
|
||||||
const u8 gUnknown_83FD218[] = _("{B_OPPONENT_MON1_NAME} is watching\ncarefully!"); // @ 83FD218
|
const u8 gUnknown_83FD218[] = _("{B_OPPONENT_MON1_NAME} is watching\ncarefully!"); // @ 83FD218
|
||||||
const u8 gUnknown_83FD232[] = _("{B_OPPONENT_MON1_NAME} is angry!"); // @ 83FD232
|
const u8 gUnknown_83FD232[] = _("{B_OPPONENT_MON1_NAME} is angry!"); // @ 83FD232
|
||||||
const u8 gUnknown_83FD23F[] = _("{B_OPPONENT_MON1_NAME} is eating!"); // @ 83FD23F
|
const u8 gUnknown_83FD23F[] = _("{B_OPPONENT_MON1_NAME} is eating!"); // @ 83FD23F
|
||||||
const u8 gUnknown_83FD24D[] = _("{PLAY_SE SE_PINPON}ANNOUNCER: You're out of\nSAFARI BALLS! Game over!\p"); // @ 83FD24D
|
const u8 gUnknown_83FD24D[] = _("{PLAY_SE SE_PINPON}ANNOUNCER: You're out of\nSAFARI BALLS! Game over!\p"); // @ 83FD24D
|
||||||
const u8 sText_WildPkmnAppeared[] = _("Wild {B_OPPONENT_MON1_NAME} appeared!\p"); // @ 83FD284
|
static const u8 sText_WildPkmnAppeared[] = _("Wild {B_OPPONENT_MON1_NAME} appeared!\p"); // @ 83FD284
|
||||||
const u8 sText_WildPkmnAppeared2[] = _("Wild {B_OPPONENT_MON1_NAME} appeared!\p"); // @ 83FD297
|
static const u8 sText_WildPkmnAppeared2[] = _("Wild {B_OPPONENT_MON1_NAME} appeared!\p"); // @ 83FD297
|
||||||
const u8 sText_WildPkmnAppearedPause[] = _("Wild {B_OPPONENT_MON1_NAME} appeared!{PAUSE 127}"); // @ 83FD2AA
|
static const u8 sText_WildPkmnAppearedPause[] = _("Wild {B_OPPONENT_MON1_NAME} appeared!{PAUSE 127}"); // @ 83FD2AA
|
||||||
const u8 sText_TwoWildPkmnAppeared[] = _("Wild {B_OPPONENT_MON1_NAME} and\n{B_OPPONENT_MON2_NAME} appeared!\p"); // @ 83FD2BF
|
static const u8 sText_TwoWildPkmnAppeared[] = _("Wild {B_OPPONENT_MON1_NAME} and\n{B_OPPONENT_MON2_NAME} appeared!\p"); // @ 83FD2BF
|
||||||
const u8 gUnknown_83FD2D9[] = _("The GHOST appeared!\pDarn!\nThe GHOST can't be ID'd!\p"); // @ 83FD2D9
|
const u8 gUnknown_83FD2D9[] = _("The GHOST appeared!\pDarn!\nThe GHOST can't be ID'd!\p"); // @ 83FD2D9
|
||||||
const u8 gUnknown_83FD30D[] = _("The GHOST appeared!\p"); // @ 83FD30D
|
const u8 gUnknown_83FD30D[] = _("The GHOST appeared!\p"); // @ 83FD30D
|
||||||
const u8 gUnknown_83FD322[] = _("SILPH SCOPE unveiled the GHOST's\nidentity!"); // @ 83FD322
|
const u8 gUnknown_83FD322[] = _("SILPH SCOPE unveiled the GHOST's\nidentity!"); // @ 83FD322
|
||||||
const u8 gUnknown_83FD34D[] = _("The GHOST was MAROWAK!\p\n"); // @ 83FD34D
|
const u8 gUnknown_83FD34D[] = _("The GHOST was MAROWAK!\p\n"); // @ 83FD34D
|
||||||
const u8 sText_Trainer1WantsToBattle[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME}\nwould like to battle!\p"); // @ 83FD366
|
static const u8 sText_Trainer1WantsToBattle[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME}\nwould like to battle!\p"); // @ 83FD366
|
||||||
const u8 sText_LinkTrainerWantsToBattle[] = _("{B_LINK_OPPONENT1_NAME}\nwants to battle!"); // @ 83FD383
|
static const u8 sText_LinkTrainerWantsToBattle[] = _("{B_LINK_OPPONENT1_NAME}\nwants to battle!"); // @ 83FD383
|
||||||
const u8 sText_TwoLinkTrainersWantToBattle[] = _("{B_LINK_OPPONENT1_NAME} and {B_LINK_OPPONENT2_NAME}\nwant to battle!"); // @ 83FD397
|
static const u8 sText_TwoLinkTrainersWantToBattle[] = _("{B_LINK_OPPONENT1_NAME} and {B_LINK_OPPONENT2_NAME}\nwant to battle!"); // @ 83FD397
|
||||||
const u8 sText_Trainer1SentOutPkmn[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME} sent\nout {B_OPPONENT_MON1_NAME}!{PAUSE 60}"); // @ 83FD3B1
|
static const u8 sText_Trainer1SentOutPkmn[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME} sent\nout {B_OPPONENT_MON1_NAME}!{PAUSE 60}"); // @ 83FD3B1
|
||||||
const u8 sText_Trainer1SentOutTwoPkmn[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME} sent\nout {B_OPPONENT_MON1_NAME} and {B_OPPONENT_MON2_NAME}!{PAUSE 60}"); // @ 83FD3C7
|
static const u8 sText_Trainer1SentOutTwoPkmn[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME} sent\nout {B_OPPONENT_MON1_NAME} and {B_OPPONENT_MON2_NAME}!{PAUSE 60}"); // @ 83FD3C7
|
||||||
const u8 sText_Trainer1SentOutPkmn2[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME} sent\nout {B_BUFF1}!"); // @ 83FD3E4
|
static const u8 sText_Trainer1SentOutPkmn2[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME} sent\nout {B_BUFF1}!"); // @ 83FD3E4
|
||||||
const u8 sText_LinkTrainerSentOutPkmn[] = _("{B_LINK_OPPONENT1_NAME} sent out\n{B_OPPONENT_MON1_NAME}!"); // @ 83FD3F7
|
static const u8 sText_LinkTrainerSentOutPkmn[] = _("{B_LINK_OPPONENT1_NAME} sent out\n{B_OPPONENT_MON1_NAME}!"); // @ 83FD3F7
|
||||||
const u8 sText_LinkTrainerSentOutTwoPkmn[] = _("{B_LINK_OPPONENT1_NAME} sent out\n{B_OPPONENT_MON1_NAME} and {B_OPPONENT_MON2_NAME}!"); // @ 83FD407
|
static const u8 sText_LinkTrainerSentOutTwoPkmn[] = _("{B_LINK_OPPONENT1_NAME} sent out\n{B_OPPONENT_MON1_NAME} and {B_OPPONENT_MON2_NAME}!"); // @ 83FD407
|
||||||
const u8 sText_TwoLinkTrainersSentOutPkmn[] = _("{B_LINK_OPPONENT1_NAME} sent out {B_LINK_OPPONENT_MON1_NAME}!\n{B_LINK_OPPONENT2_NAME} sent out {B_LINK_OPPONENT_MON2_NAME}!"); // @ 83FD41E
|
static const u8 sText_TwoLinkTrainersSentOutPkmn[] = _("{B_LINK_OPPONENT1_NAME} sent out {B_LINK_OPPONENT_MON1_NAME}!\n{B_LINK_OPPONENT2_NAME} sent out {B_LINK_OPPONENT_MON2_NAME}!"); // @ 83FD41E
|
||||||
const u8 sText_LinkTrainerSentOutPkmn2[] = _("{B_LINK_OPPONENT1_NAME} sent out\n{B_BUFF1}!"); // @ 83FD43E
|
static const u8 sText_LinkTrainerSentOutPkmn2[] = _("{B_LINK_OPPONENT1_NAME} sent out\n{B_BUFF1}!"); // @ 83FD43E
|
||||||
const u8 sText_LinkTrainerMultiSentOutPkmn[] = _("{B_LINK_SCR_TRAINER_NAME} sent out\n{B_BUFF1}!"); // @ 83FD44E
|
static const u8 sText_LinkTrainerMultiSentOutPkmn[] = _("{B_LINK_SCR_TRAINER_NAME} sent out\n{B_BUFF1}!"); // @ 83FD44E
|
||||||
const u8 sText_GoPkmn[] = _("Go! {B_PLAYER_MON1_NAME}!"); // @ 83FD45E
|
static const u8 sText_GoPkmn[] = _("Go! {B_PLAYER_MON1_NAME}!"); // @ 83FD45E
|
||||||
const u8 sText_GoTwoPkmn[] = _("Go! {B_PLAYER_MON1_NAME} and\n{B_PLAYER_MON2_NAME}!"); // @ 83FD466
|
static const u8 sText_GoTwoPkmn[] = _("Go! {B_PLAYER_MON1_NAME} and\n{B_PLAYER_MON2_NAME}!"); // @ 83FD466
|
||||||
const u8 sText_GoPkmn2[] = _("Go! {B_BUFF1}!"); // @ 83FD475
|
static const u8 sText_GoPkmn2[] = _("Go! {B_BUFF1}!"); // @ 83FD475
|
||||||
const u8 sText_DoItPkmn[] = _("Do it! {B_BUFF1}!"); // @ 83FD47D
|
static const u8 sText_DoItPkmn[] = _("Do it! {B_BUFF1}!"); // @ 83FD47D
|
||||||
const u8 sText_GoForItPkmn[] = _("Go for it, {B_BUFF1}!"); // @ 83FD488
|
static const u8 sText_GoForItPkmn[] = _("Go for it, {B_BUFF1}!"); // @ 83FD488
|
||||||
const u8 sText_YourFoesWeakGetEmPkmn[] = _("Your foe's weak!\nGet 'em, {B_BUFF1}!"); // @ 83FD497
|
static const u8 sText_YourFoesWeakGetEmPkmn[] = _("Your foe's weak!\nGet 'em, {B_BUFF1}!"); // @ 83FD497
|
||||||
const u8 sText_LinkPartnerSentOutPkmnGoPkmn[] = _("{B_LINK_PARTNER_NAME} sent out {B_LINK_PLAYER_MON2_NAME}!\nGo! {B_LINK_PLAYER_MON1_NAME}!"); // @ 83FD4B5
|
static const u8 sText_LinkPartnerSentOutPkmnGoPkmn[] = _("{B_LINK_PARTNER_NAME} sent out {B_LINK_PLAYER_MON2_NAME}!\nGo! {B_LINK_PLAYER_MON1_NAME}!"); // @ 83FD4B5
|
||||||
const u8 sText_PkmnThatsEnough[] = _("{B_BUFF1}, that's enough!\nCome back!"); // @ 83FD4CD
|
static const u8 sText_PkmnThatsEnough[] = _("{B_BUFF1}, that's enough!\nCome back!"); // @ 83FD4CD
|
||||||
const u8 sText_PkmnComeBack[] = _("{B_BUFF1}, come back!"); // @ 83FD4EB
|
static const u8 sText_PkmnComeBack[] = _("{B_BUFF1}, come back!"); // @ 83FD4EB
|
||||||
const u8 sText_PkmnOkComeBack[] = _("{B_BUFF1}, OK!\nCome back!"); // @ 83FD4FA
|
static const u8 sText_PkmnOkComeBack[] = _("{B_BUFF1}, OK!\nCome back!"); // @ 83FD4FA
|
||||||
const u8 sText_PkmnGoodComeBack[] = _("{B_BUFF1}, good!\nCome back!"); // @ 83FD50D
|
const u8 sText_PkmnGoodComeBack[] = _("{B_BUFF1}, good!\nCome back!"); // @ 83FD50D
|
||||||
const u8 sText_Trainer1WithdrewPkmn[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME}\nwithdrew {B_BUFF1}!"); // @ 83FD522
|
static const u8 sText_Trainer1WithdrewPkmn[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME}\nwithdrew {B_BUFF1}!"); // @ 83FD522
|
||||||
const u8 sText_LinkTrainer1WithdrewPkmn[] = _("{B_LINK_OPPONENT1_NAME} withdrew\n{B_BUFF1}!"); // @ 83FD535
|
static const u8 sText_LinkTrainer1WithdrewPkmn[] = _("{B_LINK_OPPONENT1_NAME} withdrew\n{B_BUFF1}!"); // @ 83FD535
|
||||||
const u8 sText_LinkTrainer2WithdrewPkmn[] = _("{B_LINK_SCR_TRAINER_NAME} withdrew\n{B_BUFF1}!"); // @ 83FD545
|
static const u8 sText_LinkTrainer2WithdrewPkmn[] = _("{B_LINK_SCR_TRAINER_NAME} withdrew\n{B_BUFF1}!"); // @ 83FD545
|
||||||
const u8 sText_WildPkmnPrefix[] = _("Wild "); // @ 83FD555
|
static const u8 sText_WildPkmnPrefix[] = _("Wild "); // @ 83FD555
|
||||||
const u8 sText_FoePkmnPrefix[] = _("Foe "); // @ 83FD55B
|
static const u8 sText_FoePkmnPrefix[] = _("Foe "); // @ 83FD55B
|
||||||
const u8 sText_FoePkmnPrefix2[] = _("Foe"); // @ 83FD560
|
static const u8 sText_FoePkmnPrefix2[] = _("Foe"); // @ 83FD560
|
||||||
const u8 sText_AllyPkmnPrefix[] = _("Ally"); // @ 83FD564
|
static const u8 sText_AllyPkmnPrefix[] = _("Ally"); // @ 83FD564
|
||||||
const u8 sText_FoePkmnPrefix3[] = _("Foe"); // @ 83FD569
|
static const u8 sText_FoePkmnPrefix3[] = _("Foe"); // @ 83FD569
|
||||||
const u8 sText_AllyPkmnPrefix2[] = _("Ally"); // @ 83FD56D
|
static const u8 sText_AllyPkmnPrefix2[] = _("Ally"); // @ 83FD56D
|
||||||
const u8 sText_FoePkmnPrefix4[] = _("Foe"); // @ 83FD572
|
static const u8 sText_FoePkmnPrefix4[] = _("Foe"); // @ 83FD572
|
||||||
const u8 sText_AllyPkmnPrefix3[] = _("Ally"); // @ 83FD576
|
static const u8 sText_AllyPkmnPrefix3[] = _("Ally"); // @ 83FD576
|
||||||
const u8 sText_AttackerUsedX[] = _("{B_ATK_NAME_WITH_PREFIX} used\n{B_BUFF2}"); // @ 83FD57B
|
static const u8 sText_AttackerUsedX[] = _("{B_ATK_NAME_WITH_PREFIX} used\n{B_BUFF2}"); // @ 83FD57B
|
||||||
const u8 sText_ExclamationMark[] = _("!"); // @ 83FD586
|
static const u8 sText_ExclamationMark[] = _("!"); // @ 83FD586
|
||||||
const u8 sText_ExclamationMark2[] = _("!"); // @ 83FD588
|
static const u8 sText_ExclamationMark2[] = _("!"); // @ 83FD588
|
||||||
const u8 sText_ExclamationMark3[] = _("!"); // @ 83FD58A
|
static const u8 sText_ExclamationMark3[] = _("!"); // @ 83FD58A
|
||||||
const u8 sText_ExclamationMark4[] = _("!"); // @ 83FD58C
|
static const u8 sText_ExclamationMark4[] = _("!"); // @ 83FD58C
|
||||||
const u8 sText_ExclamationMark5[] = _("!"); // @ 83FD58E
|
static const u8 sText_ExclamationMark5[] = _("!"); // @ 83FD58E
|
||||||
|
|
||||||
const u8 sText_HP2[] = _("HP"); // @ 83FD590
|
static const u8 sText_HP2[] = _("HP"); // @ 83FD590
|
||||||
const u8 sText_Attack2[] = _("ATTACK"); // @ 83FD593
|
static const u8 sText_Attack2[] = _("ATTACK"); // @ 83FD593
|
||||||
const u8 sText_Defense2[] = _("DEFENSE"); // @ 83FD59A
|
static const u8 sText_Defense2[] = _("DEFENSE"); // @ 83FD59A
|
||||||
const u8 sText_Speed[] = _("SPEED"); // @ 83FD5A2
|
static const u8 sText_Speed[] = _("SPEED"); // @ 83FD5A2
|
||||||
const u8 sText_SpAtk2[] = _("SP. ATK"); // @ 83FD5A8
|
static const u8 sText_SpAtk2[] = _("SP. ATK"); // @ 83FD5A8
|
||||||
const u8 sText_SpDef2[] = _("SP. DEF"); // @ 83FD5B0
|
static const u8 sText_SpDef2[] = _("SP. DEF"); // @ 83FD5B0
|
||||||
const u8 sText_Accuracy[] = _("accuracy"); // @ 83FD5B8
|
static const u8 sText_Accuracy[] = _("accuracy"); // @ 83FD5B8
|
||||||
const u8 sText_Evasiveness[] = _("evasiveness"); // @ 83FD5C1
|
static const u8 sText_Evasiveness[] = _("evasiveness"); // @ 83FD5C1
|
||||||
|
|
||||||
const u8 *const gUnknown_83FD5D0[] = {
|
const u8 *const gStatNamesTable[] = {
|
||||||
sText_HP2,
|
sText_HP2,
|
||||||
sText_Attack2,
|
sText_Attack2,
|
||||||
sText_Defense2,
|
sText_Defense2,
|
||||||
@@ -442,13 +447,13 @@ const u8 *const gUnknown_83FD5D0[] = {
|
|||||||
sText_Evasiveness
|
sText_Evasiveness
|
||||||
};
|
};
|
||||||
|
|
||||||
const u8 sText_PokeblockWasTooSpicy[] = _("was too spicy!"); //
|
static const u8 sText_PokeblockWasTooSpicy[] = _("was too spicy!"); //
|
||||||
const u8 sText_PokeblockWasTooDry[] = _("was too dry!"); // @ 83FD5FF
|
static const u8 sText_PokeblockWasTooDry[] = _("was too dry!"); // @ 83FD5FF
|
||||||
const u8 sText_PokeblockWasTooSweet[] = _("was too sweet!"); // @ 83FD60C
|
static const u8 sText_PokeblockWasTooSweet[] = _("was too sweet!"); // @ 83FD60C
|
||||||
const u8 sText_PokeblockWasTooBitter[] = _("was too bitter!"); // @ 83FD61B
|
static const u8 sText_PokeblockWasTooBitter[] = _("was too bitter!"); // @ 83FD61B
|
||||||
const u8 sText_PokeblockWasTooSour[] = _("was too sour!"); // @ 83FD62B
|
static const u8 sText_PokeblockWasTooSour[] = _("was too sour!"); // @ 83FD62B
|
||||||
|
|
||||||
const u8 *const gUnknown_83FD63C[] = {
|
const u8 *const gPokeblockWasTooXStringTable[] = {
|
||||||
sText_PokeblockWasTooSpicy,
|
sText_PokeblockWasTooSpicy,
|
||||||
sText_PokeblockWasTooDry,
|
sText_PokeblockWasTooDry,
|
||||||
sText_PokeblockWasTooSweet,
|
sText_PokeblockWasTooSweet,
|
||||||
@@ -456,31 +461,31 @@ const u8 *const gUnknown_83FD63C[] = {
|
|||||||
sText_PokeblockWasTooSour
|
sText_PokeblockWasTooSour
|
||||||
};
|
};
|
||||||
|
|
||||||
const u8 sText_PlayerUsedItem[] = _("{B_PLAYER_NAME} used\n{B_LAST_ITEM}!"); // @ 83FD650
|
static const u8 sText_PlayerUsedItem[] = _("{B_PLAYER_NAME} used\n{B_LAST_ITEM}!"); // @ 83FD650
|
||||||
const u8 sText_OldManUsedItem[] = _("The old man used\n{B_LAST_ITEM}!"); // @ 83FD65C
|
static const u8 sText_OldManUsedItem[] = _("The old man used\n{B_LAST_ITEM}!"); // @ 83FD65C
|
||||||
const u8 sText_PokeDudeUsedItem[] = _("The POKé DUDE used\n{B_LAST_ITEM}!"); // @ 83FD671
|
static const u8 sText_PokeDudeUsedItem[] = _("The POKé DUDE used\n{B_LAST_ITEM}!"); // @ 83FD671
|
||||||
const u8 sText_Trainer1UsedItem[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME}\nused {B_LAST_ITEM}!"); // @ 83FD688
|
static const u8 sText_Trainer1UsedItem[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME}\nused {B_LAST_ITEM}!"); // @ 83FD688
|
||||||
const u8 sText_TrainerBlockedBall[] = _("The TRAINER blocked the BALL!"); // @ 83FD697
|
static const u8 sText_TrainerBlockedBall[] = _("The TRAINER blocked the BALL!"); // @ 83FD697
|
||||||
const u8 sText_DontBeAThief[] = _("Don't be a thief!"); // @ 83FD6B5
|
static const u8 sText_DontBeAThief[] = _("Don't be a thief!"); // @ 83FD6B5
|
||||||
const u8 sText_ItDodgedBall[] = _("It dodged the thrown BALL!\nThis POKéMON can't be caught!"); // @ 83FD6C7
|
static const u8 sText_ItDodgedBall[] = _("It dodged the thrown BALL!\nThis POKéMON can't be caught!"); // @ 83FD6C7
|
||||||
const u8 sText_YouMissedPkmn[] = _("You missed the POKéMON!"); // @ 83FD700
|
static const u8 sText_YouMissedPkmn[] = _("You missed the POKéMON!"); // @ 83FD700
|
||||||
const u8 sText_PkmnBrokeFree[] = _("Oh, no!\nThe POKéMON broke free!"); // @ 83FD718
|
static const u8 sText_PkmnBrokeFree[] = _("Oh, no!\nThe POKéMON broke free!"); // @ 83FD718
|
||||||
const u8 sText_ItAppearedCaught[] = _("Aww!\nIt appeared to be caught!"); // @ 83FD738
|
static const u8 sText_ItAppearedCaught[] = _("Aww!\nIt appeared to be caught!"); // @ 83FD738
|
||||||
const u8 sText_AarghAlmostHadIt[] = _("Aargh!\nAlmost had it!"); // @ 83FD757
|
static const u8 sText_AarghAlmostHadIt[] = _("Aargh!\nAlmost had it!"); // @ 83FD757
|
||||||
const u8 sText_ShootSoClose[] = _("Shoot!\nIt was so close, too!"); // @ 83FD76D
|
static const u8 sText_ShootSoClose[] = _("Shoot!\nIt was so close, too!"); // @ 83FD76D
|
||||||
const u8 gUnknown_83FD78A[] = _("よけられた!\nこいつは つかまりそうにないぞ!"); // @ 83FD78A
|
const u8 gUnknown_83FD78A[] = _("よけられた!\nこいつは つかまりそうにないぞ!"); // @ 83FD78A
|
||||||
const u8 sText_GotchaPkmnCaught[] = _("Gotcha!\n{B_OPPONENT_MON1_NAME} was caught!{WAIT_SE}{PLAY_BGM MUS_GET_YASEI}\p"); // @ 83FD7A2
|
static const u8 sText_GotchaPkmnCaught[] = _("Gotcha!\n{B_OPPONENT_MON1_NAME} was caught!{WAIT_SE}{PLAY_BGM MUS_GET_YASEI}\p"); // @ 83FD7A2
|
||||||
const u8 sText_GotchaPkmnCaught2[] = _("Gotcha!\n{B_OPPONENT_MON1_NAME} was caught!{WAIT_SE}{PLAY_BGM MUS_GET_YASEI}{PAUSE 127}"); // @ 83FD7C0
|
static const u8 sText_GotchaPkmnCaught2[] = _("Gotcha!\n{B_OPPONENT_MON1_NAME} was caught!{WAIT_SE}{PLAY_BGM MUS_GET_YASEI}{PAUSE 127}"); // @ 83FD7C0
|
||||||
const u8 sText_GiveNicknameCaptured[] = _("Give a nickname to the\ncaptured {B_OPPONENT_MON1_NAME}?"); // @ 83FD7E0
|
static const u8 sText_GiveNicknameCaptured[] = _("Give a nickname to the\ncaptured {B_OPPONENT_MON1_NAME}?"); // @ 83FD7E0
|
||||||
const u8 sText_PkmnSentToPC[] = _("{B_OPPONENT_MON1_NAME} was sent to\n{B_PC_CREATOR_NAME} PC."); // @ 83FD804
|
static const u8 sText_PkmnSentToPC[] = _("{B_OPPONENT_MON1_NAME} was sent to\n{B_PC_CREATOR_NAME} PC."); // @ 83FD804
|
||||||
const u8 sText_Someones[] = _("someone's"); // @ 83FD81A
|
static const u8 sText_Someones[] = _("someone's"); // @ 83FD81A
|
||||||
const u8 sText_Bills[] = _("BILL's"); // @ 83FD824
|
static const u8 sText_Bills[] = _("BILL's"); // @ 83FD824
|
||||||
const u8 gUnknown_83FD82B[] = _("{B_OPPONENT_MON1_NAME}'s data was\nadded to the POKéDEX.\p"); // @ 83FD82B
|
const u8 gUnknown_83FD82B[] = _("{B_OPPONENT_MON1_NAME}'s data was\nadded to the POKéDEX.\p"); // @ 83FD82B
|
||||||
const u8 gUnknown_83FD850[] = _("It is raining."); // @ 83FD850
|
const u8 gUnknown_83FD850[] = _("It is raining."); // @ 83FD850
|
||||||
const u8 gUnknown_83FD85F[] = _("A sandstorm is raging."); // @ 83FD85F
|
const u8 gUnknown_83FD85F[] = _("A sandstorm is raging."); // @ 83FD85F
|
||||||
const u8 gUnknown_83FD876[] = _("The BOX is full!\nYou can't catch any more!\p"); // @ 83FD876
|
const u8 gUnknown_83FD876[] = _("The BOX is full!\nYou can't catch any more!\p"); // @ 83FD876
|
||||||
const u8 sText_EnigmaBerry[] = _("ENIGMA BERRY"); // @ 83FD8A2
|
static const u8 sText_EnigmaBerry[] = _("ENIGMA BERRY"); // @ 83FD8A2
|
||||||
const u8 sText_BerrySuffix[] = _(" BERRY"); // @ 83FD8AF
|
static const u8 sText_BerrySuffix[] = _(" BERRY"); // @ 83FD8AF
|
||||||
const u8 gUnknown_83FD8B6[] = _("ナゾ"); // @ 83FD8B6
|
const u8 gUnknown_83FD8B6[] = _("ナゾ"); // @ 83FD8B6
|
||||||
const u8 gUnknown_83FD8B9[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_LAST_ITEM}\ncured paralysis!"); // @ 83FD8B9
|
const u8 gUnknown_83FD8B9[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_LAST_ITEM}\ncured paralysis!"); // @ 83FD8B9
|
||||||
const u8 gUnknown_83FD8D2[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_LAST_ITEM}\ncured poison!"); // @ 83FD8D2
|
const u8 gUnknown_83FD8D2[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_LAST_ITEM}\ncured poison!"); // @ 83FD8D2
|
||||||
@@ -1269,8 +1274,8 @@ const u8 gUnknown_83FE870[] = _("ミツル"); // @ 83FE870
|
|||||||
const u8 gUnknown_83FE874[] = _("{HIGHLIGHT 0}Win"); // @ 83FE874
|
const u8 gUnknown_83FE874[] = _("{HIGHLIGHT 0}Win"); // @ 83FE874
|
||||||
const u8 gUnknown_83FE87B[] = _("{HIGHLIGHT 0}Loss"); // @ 83FE87B
|
const u8 gUnknown_83FE87B[] = _("{HIGHLIGHT 0}Loss"); // @ 83FE87B
|
||||||
const u8 gUnknown_83FE883[] = _("{HIGHLIGHT 0}Draw"); // @ 83FE883
|
const u8 gUnknown_83FE883[] = _("{HIGHLIGHT 0}Draw"); // @ 83FE883
|
||||||
const u8 gUnknown_83FE88B[] = _(" is"); // @ 83FE88B
|
static const u8 sText_SpaceIs[] = _(" is"); // @ 83FE88B
|
||||||
const u8 gUnknown_83FE88F[] = _("'s"); // @ 83FE88F
|
static const u8 sText_ApostropheS[] = _("'s"); // @ 83FE88F
|
||||||
const u8 gUnknown_83FE892[] = _("a NORMAL move"); // @ 83FE892
|
const u8 gUnknown_83FE892[] = _("a NORMAL move"); // @ 83FE892
|
||||||
const u8 gUnknown_83FE8A0[] = _("a FIGHTING move"); // @ 83FE8A0
|
const u8 gUnknown_83FE8A0[] = _("a FIGHTING move"); // @ 83FE8A0
|
||||||
const u8 gUnknown_83FE8B0[] = _("a FLYING move"); // @ 83FE8B0
|
const u8 gUnknown_83FE8B0[] = _("a FLYING move"); // @ 83FE8B0
|
||||||
@@ -1309,10 +1314,10 @@ const u8 *const gUnknown_83FE9C4[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const u8 gUnknown_83FE9D4[] = _("{PLAY_SE SE_NIGERU}{B_TRAINER1_CLASS} {B_TRAINER1_NAME} fled!"); //
|
const u8 gUnknown_83FE9D4[] = _("{PLAY_SE SE_NIGERU}{B_TRAINER1_CLASS} {B_TRAINER1_NAME} fled!"); //
|
||||||
const u8 sText_PlayerLostAgainstTrainer1[] = _("Player lost against\n{B_TRAINER1_CLASS} {B_TRAINER1_NAME}!"); // @ 83FE9E4
|
static const u8 sText_PlayerLostAgainstTrainer1[] = _("Player lost against\n{B_TRAINER1_CLASS} {B_TRAINER1_NAME}!"); // @ 83FE9E4
|
||||||
const u8 sText_PlayerBattledToDrawTrainer1[] = _("Player battled to a draw against\n{B_TRAINER1_CLASS} {B_TRAINER1_NAME}!"); // @ 83FE9FF
|
static const u8 sText_PlayerBattledToDrawTrainer1[] = _("Player battled to a draw against\n{B_TRAINER1_CLASS} {B_TRAINER1_NAME}!"); // @ 83FE9FF
|
||||||
|
|
||||||
const u8 *const sATypeMove_Table[] = {
|
static const u8 *const sATypeMove_Table[] = {
|
||||||
gUnknown_83FE892,
|
gUnknown_83FE892,
|
||||||
gUnknown_83FE8A0,
|
gUnknown_83FE8A0,
|
||||||
gUnknown_83FE8B0,
|
gUnknown_83FE8B0,
|
||||||
@@ -1333,7 +1338,7 @@ const u8 *const sATypeMove_Table[] = {
|
|||||||
gUnknown_83FE976
|
gUnknown_83FE976
|
||||||
};
|
};
|
||||||
|
|
||||||
const u16 gUnknown_83FEA70[] = {
|
static const u16 sGrammarMoveUsedTable[] = {
|
||||||
MOVE_SWORDS_DANCE,
|
MOVE_SWORDS_DANCE,
|
||||||
MOVE_STRENGTH,
|
MOVE_STRENGTH,
|
||||||
MOVE_GROWTH,
|
MOVE_GROWTH,
|
||||||
@@ -1719,7 +1724,7 @@ u32 BattleStringExpandPlaceholdersToDisplayedString(const u8* src)
|
|||||||
BattleStringExpandPlaceholders(src, gDisplayedStringBattle);
|
BattleStringExpandPlaceholders(src, gDisplayedStringBattle);
|
||||||
}
|
}
|
||||||
|
|
||||||
const u8* TryGetStatusString(u8 *src)
|
static const u8* TryGetStatusString(u8 *src)
|
||||||
{
|
{
|
||||||
u32 i;
|
u32 i;
|
||||||
u8 status[] = _("$$$$$$$");
|
u8 status[] = _("$$$$$$$");
|
||||||
@@ -2153,7 +2158,201 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst)
|
|||||||
return dstID;
|
return dstID;
|
||||||
}
|
}
|
||||||
|
|
||||||
const struct BattleWindowText gUnknown_83FEB64[] = {
|
static void ExpandBattleTextBuffPlaceholders(const u8 *src, u8 *dst)
|
||||||
|
{
|
||||||
|
u32 srcID = 1;
|
||||||
|
u32 value = 0;
|
||||||
|
u8 text[12];
|
||||||
|
u16 hword;
|
||||||
|
|
||||||
|
*dst = EOS;
|
||||||
|
while (src[srcID] != B_BUFF_EOS)
|
||||||
|
{
|
||||||
|
switch (src[srcID])
|
||||||
|
{
|
||||||
|
case B_BUFF_STRING: // battle string
|
||||||
|
hword = T1_READ_16(&src[srcID + 1]);
|
||||||
|
StringAppend(dst, gBattleStringsTable[hword - BATTLESTRINGS_ID_ADDER]);
|
||||||
|
srcID += 3;
|
||||||
|
break;
|
||||||
|
case B_BUFF_NUMBER: // int to string
|
||||||
|
switch (src[srcID + 1])
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
value = src[srcID + 3];
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
value = T1_READ_16(&src[srcID + 3]);
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
value = T1_READ_32(&src[srcID + 3]);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
ConvertIntToDecimalStringN(dst, value, STR_CONV_MODE_LEFT_ALIGN, src[srcID + 2]);
|
||||||
|
srcID += src[srcID + 1] + 3;
|
||||||
|
break;
|
||||||
|
case B_BUFF_MOVE: // move name
|
||||||
|
StringAppend(dst, gMoveNames[T1_READ_16(&src[srcID + 1])]);
|
||||||
|
srcID += 3;
|
||||||
|
break;
|
||||||
|
case B_BUFF_TYPE: // type name
|
||||||
|
StringAppend(dst, gTypeNames[src[srcID + 1]]);
|
||||||
|
srcID += 2;
|
||||||
|
break;
|
||||||
|
case B_BUFF_MON_NICK_WITH_PREFIX: // poke nick with prefix
|
||||||
|
if (GetBattlerSide(src[srcID + 1]) == B_SIDE_PLAYER)
|
||||||
|
{
|
||||||
|
GetMonData(&gPlayerParty[src[srcID + 2]], MON_DATA_NICKNAME, text);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER)
|
||||||
|
StringAppend(dst, sText_FoePkmnPrefix);
|
||||||
|
else
|
||||||
|
StringAppend(dst, sText_WildPkmnPrefix);
|
||||||
|
|
||||||
|
GetMonData(&gEnemyParty[src[srcID + 2]], MON_DATA_NICKNAME, text);
|
||||||
|
}
|
||||||
|
StringGetEnd10(text);
|
||||||
|
StringAppend(dst, text);
|
||||||
|
srcID += 3;
|
||||||
|
break;
|
||||||
|
case B_BUFF_STAT: // stats
|
||||||
|
StringAppend(dst, gStatNamesTable[src[srcID + 1]]);
|
||||||
|
srcID += 2;
|
||||||
|
break;
|
||||||
|
case B_BUFF_SPECIES: // species name
|
||||||
|
GetSpeciesName(dst, T1_READ_16(&src[srcID + 1]));
|
||||||
|
srcID += 3;
|
||||||
|
break;
|
||||||
|
case B_BUFF_MON_NICK: // poke nick without prefix
|
||||||
|
if (GetBattlerSide(src[srcID + 1]) == B_SIDE_PLAYER)
|
||||||
|
GetMonData(&gPlayerParty[src[srcID + 2]], MON_DATA_NICKNAME, dst);
|
||||||
|
else
|
||||||
|
GetMonData(&gEnemyParty[src[srcID + 2]], MON_DATA_NICKNAME, dst);
|
||||||
|
StringGetEnd10(dst);
|
||||||
|
srcID += 3;
|
||||||
|
break;
|
||||||
|
case B_BUFF_NEGATIVE_FLAVOR: // flavor table
|
||||||
|
StringAppend(dst, gPokeblockWasTooXStringTable[src[srcID + 1]]);
|
||||||
|
srcID += 2;
|
||||||
|
break;
|
||||||
|
case B_BUFF_ABILITY: // ability names
|
||||||
|
StringAppend(dst, gAbilityNames[src[srcID + 1]]);
|
||||||
|
srcID += 2;
|
||||||
|
break;
|
||||||
|
case B_BUFF_ITEM: // item name
|
||||||
|
hword = T1_READ_16(&src[srcID + 1]);
|
||||||
|
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
|
||||||
|
{
|
||||||
|
if (hword == ITEM_ENIGMA_BERRY)
|
||||||
|
{
|
||||||
|
if (gLinkPlayers[gBattleStruct->multiplayerId].id == gPotentialItemEffectBattler)
|
||||||
|
{
|
||||||
|
StringCopy(dst, gEnigmaBerries[gPotentialItemEffectBattler].name);
|
||||||
|
StringAppend(dst, sText_BerrySuffix);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
StringAppend(dst, sText_EnigmaBerry);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
CopyItemName(hword, dst);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
CopyItemName(hword, dst);
|
||||||
|
}
|
||||||
|
srcID += 3;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Loads one of two text strings into the provided buffer. This is functionally
|
||||||
|
// unused, since the value loaded into the buffer is not read; it loaded one of
|
||||||
|
// two particles (either "は" or "の") which works in tandem with ChooseTypeOfMoveUsedString
|
||||||
|
// below to effect changes in the meaning of the line.
|
||||||
|
static void ChooseMoveUsedParticle(u8* textBuff)
|
||||||
|
{
|
||||||
|
s32 counter = 0;
|
||||||
|
u32 i = 0;
|
||||||
|
|
||||||
|
while (counter != MAX_MON_MOVES)
|
||||||
|
{
|
||||||
|
if (sGrammarMoveUsedTable[i] == 0)
|
||||||
|
counter++;
|
||||||
|
if (sGrammarMoveUsedTable[i++] == gBattleMsgDataPtr->currentMove)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (counter >= 0)
|
||||||
|
{
|
||||||
|
if (counter <= 2)
|
||||||
|
StringCopy(textBuff, sText_SpaceIs); // is
|
||||||
|
else if (counter <= MAX_MON_MOVES)
|
||||||
|
StringCopy(textBuff, sText_ApostropheS); // 's
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Appends "!" to the text buffer `dst`. In the original Japanese this looked
|
||||||
|
// into the table of moves at sGrammarMoveUsedTable and varied the line accordingly.
|
||||||
|
//
|
||||||
|
// sText_ExclamationMark was a plain "!", used for any attack not on the list.
|
||||||
|
// It resulted in the translation "<NAME>'s <ATTACK>!".
|
||||||
|
//
|
||||||
|
// sText_ExclamationMark2 was "を つかった!". This resulted in the translation
|
||||||
|
// "<NAME> used <ATTACK>!", which was used for all attacks in English.
|
||||||
|
//
|
||||||
|
// sText_ExclamationMark3 was "した!". This was used for those moves whose
|
||||||
|
// names were verbs, such as Recover, and resulted in translations like "<NAME>
|
||||||
|
// recovered itself!".
|
||||||
|
//
|
||||||
|
// sText_ExclamationMark4 was "を した!" This resulted in a translation of
|
||||||
|
// "<NAME> did an <ATTACK>!".
|
||||||
|
//
|
||||||
|
// sText_ExclamationMark5 was " こうげき!" This resulted in a translation of
|
||||||
|
// "<NAME>'s <ATTACK> attack!".
|
||||||
|
static void ChooseTypeOfMoveUsedString(u8* dst)
|
||||||
|
{
|
||||||
|
s32 counter = 0;
|
||||||
|
s32 i = 0;
|
||||||
|
|
||||||
|
while (*dst != EOS)
|
||||||
|
dst++;
|
||||||
|
|
||||||
|
while (counter != MAX_MON_MOVES)
|
||||||
|
{
|
||||||
|
if (sGrammarMoveUsedTable[i] == MOVE_NONE)
|
||||||
|
counter++;
|
||||||
|
if (sGrammarMoveUsedTable[i++] == gBattleMsgDataPtr->currentMove)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (counter)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
StringCopy(dst, sText_ExclamationMark);
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
StringCopy(dst, sText_ExclamationMark2);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
StringCopy(dst, sText_ExclamationMark3);
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
StringCopy(dst, sText_ExclamationMark4);
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
StringCopy(dst, sText_ExclamationMark5);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = {
|
||||||
{PIXEL_FILL(0xf), 2, 0x02, 2, 0, 2, 1, 0x1, 0xf, 0x6},
|
{PIXEL_FILL(0xf), 2, 0x02, 2, 0, 2, 1, 0x1, 0xf, 0x6},
|
||||||
{PIXEL_FILL(0xf), 2, 0x02, 2, 0, 2, 0, 0x1, 0xf, 0x6},
|
{PIXEL_FILL(0xf), 2, 0x02, 2, 0, 2, 0, 0x1, 0xf, 0x6},
|
||||||
{PIXEL_FILL(0xe), 1, 0x00, 2, 0, 2, 0, 0xd, 0xe, 0xf},
|
{PIXEL_FILL(0xe), 1, 0x00, 2, 0, 2, 0, 0xd, 0xe, 0xf},
|
||||||
@@ -2182,3 +2381,135 @@ const struct BattleWindowText gUnknown_83FEB64[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const u8 gUnknown_83FEC90[] = {0x04, 0x05, 0x02, 0x02};
|
const u8 gUnknown_83FEC90[] = {0x04, 0x05, 0x02, 0x02};
|
||||||
|
|
||||||
|
void BattlePutTextOnWindow(const u8 *text, u8 windowId) {
|
||||||
|
bool32 copyToVram;
|
||||||
|
struct TextPrinterTemplate printerTemplate;
|
||||||
|
u8 speed;
|
||||||
|
int x;
|
||||||
|
u8 context;
|
||||||
|
|
||||||
|
u8 textFlags = windowId & 0xC0;
|
||||||
|
windowId &= 0x3F;
|
||||||
|
if (!(textFlags & 0x80))
|
||||||
|
FillWindowPixelBuffer(windowId, sTextOnWindowsInfo_Normal[windowId].fillValue);
|
||||||
|
if (textFlags & 0x40) {
|
||||||
|
context = ContextNpcGetTextColor();
|
||||||
|
printerTemplate.fontId = gUnknown_83FEC90[context];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
printerTemplate.fontId = sTextOnWindowsInfo_Normal[windowId].fontId;
|
||||||
|
}
|
||||||
|
switch (windowId)
|
||||||
|
{
|
||||||
|
case 15 ... 20:
|
||||||
|
x = (48 - GetStringWidth(sTextOnWindowsInfo_Normal[windowId].fontId, text,
|
||||||
|
sTextOnWindowsInfo_Normal[windowId].letterSpacing)) / 2;
|
||||||
|
break;
|
||||||
|
case 21 ... 23:
|
||||||
|
x = (64 - GetStringWidth(sTextOnWindowsInfo_Normal[windowId].fontId, text,
|
||||||
|
sTextOnWindowsInfo_Normal[windowId].letterSpacing)) / 2;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
x = sTextOnWindowsInfo_Normal[windowId].x;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (x < 0)
|
||||||
|
x = 0;
|
||||||
|
printerTemplate.currentChar = text;
|
||||||
|
printerTemplate.windowId = windowId;
|
||||||
|
printerTemplate.x = x;
|
||||||
|
printerTemplate.y = sTextOnWindowsInfo_Normal[windowId].y;
|
||||||
|
printerTemplate.currentX = printerTemplate.x;
|
||||||
|
printerTemplate.currentY = printerTemplate.y;
|
||||||
|
printerTemplate.letterSpacing = sTextOnWindowsInfo_Normal[windowId].letterSpacing;
|
||||||
|
printerTemplate.lineSpacing = sTextOnWindowsInfo_Normal[windowId].lineSpacing;
|
||||||
|
printerTemplate.unk = 0;
|
||||||
|
printerTemplate.fgColor = sTextOnWindowsInfo_Normal[windowId].fgColor;
|
||||||
|
printerTemplate.bgColor = sTextOnWindowsInfo_Normal[windowId].bgColor;
|
||||||
|
printerTemplate.shadowColor = sTextOnWindowsInfo_Normal[windowId].shadowColor;
|
||||||
|
if (windowId == 24)
|
||||||
|
gTextFlags.useAlternateDownArrow = FALSE;
|
||||||
|
else
|
||||||
|
gTextFlags.useAlternateDownArrow = TRUE;
|
||||||
|
|
||||||
|
if ((gBattleTypeFlags & BATTLE_TYPE_LINK) || ((gBattleTypeFlags & BATTLE_TYPE_POKEDUDE) && windowId != 24))
|
||||||
|
gTextFlags.autoScroll = TRUE;
|
||||||
|
else
|
||||||
|
gTextFlags.autoScroll = FALSE;
|
||||||
|
|
||||||
|
if (windowId == 0 || windowId == 24)
|
||||||
|
{
|
||||||
|
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
|
||||||
|
speed = 1;
|
||||||
|
else
|
||||||
|
speed = GetTextSpeedSetting();
|
||||||
|
gTextFlags.canABSpeedUpPrint = TRUE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
speed = sTextOnWindowsInfo_Normal[windowId].speed;
|
||||||
|
gTextFlags.canABSpeedUpPrint = FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
AddTextPrinter(&printerTemplate, speed, NULL);
|
||||||
|
if (!(textFlags & 0x80))
|
||||||
|
{
|
||||||
|
PutWindowTilemap(windowId);
|
||||||
|
CopyWindowToVram(windowId, 3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool8 sub_80D89B0(u16 stringId)
|
||||||
|
{
|
||||||
|
if (stringId == STRINGID_TRAINER1LOSETEXT || stringId == STRINGID_TRAINER2CLASS || stringId == STRINGID_TRAINER1WINTEXT || stringId == STRINGID_TRAINER2NAME)
|
||||||
|
return TRUE;
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetPpNumbersPaletteInMoveSelection(void)
|
||||||
|
{
|
||||||
|
struct ChooseMoveStruct *chooseMoveStruct = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBattler][4]);
|
||||||
|
const u16 *palPtr = gUnknown_8D2FBB4;
|
||||||
|
u8 var = GetCurrentPpToMaxPpState(chooseMoveStruct->currentPp[gMoveSelectionCursor[gActiveBattler]],
|
||||||
|
chooseMoveStruct->maxPp[gMoveSelectionCursor[gActiveBattler]]);
|
||||||
|
|
||||||
|
gPlttBufferUnfaded[92] = palPtr[(var * 2) + 0];
|
||||||
|
gPlttBufferUnfaded[91] = palPtr[(var * 2) + 1];
|
||||||
|
|
||||||
|
CpuCopy16(&gPlttBufferUnfaded[92], &gPlttBufferFaded[92], sizeof(u16));
|
||||||
|
CpuCopy16(&gPlttBufferUnfaded[91], &gPlttBufferFaded[91], sizeof(u16));
|
||||||
|
}
|
||||||
|
|
||||||
|
u8 GetCurrentPpToMaxPpState(u8 currentPp, u8 maxPp)
|
||||||
|
{
|
||||||
|
if (maxPp == currentPp)
|
||||||
|
{
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
else if (maxPp <= 2)
|
||||||
|
{
|
||||||
|
if (currentPp > 1)
|
||||||
|
return 3;
|
||||||
|
else
|
||||||
|
return 2 - currentPp;
|
||||||
|
}
|
||||||
|
else if (maxPp <= 7)
|
||||||
|
{
|
||||||
|
if (currentPp > 2)
|
||||||
|
return 3;
|
||||||
|
else
|
||||||
|
return 2 - currentPp;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (currentPp == 0)
|
||||||
|
return 2;
|
||||||
|
if (currentPp <= maxPp / 4)
|
||||||
|
return 1;
|
||||||
|
if (currentPp > maxPp / 2)
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|||||||
+1
-1
@@ -4796,7 +4796,7 @@ u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit)
|
|||||||
static void sub_8042D50(int stat)
|
static void sub_8042D50(int stat)
|
||||||
{
|
{
|
||||||
gBattlerTarget = gBattlerInMenuId;
|
gBattlerTarget = gBattlerInMenuId;
|
||||||
StringCopy(gBattleTextBuff1, gUnknown_83FD5D0[gUnknown_825DFF0[stat]]);
|
StringCopy(gBattleTextBuff1, gStatNamesTable[gUnknown_825DFF0[stat]]);
|
||||||
StringCopy(gBattleTextBuff2, BattleText_Rose);
|
StringCopy(gBattleTextBuff2, BattleText_Rose);
|
||||||
BattleStringExpandPlaceholdersToDisplayedString(BattleText_UnknownString3);
|
BattleStringExpandPlaceholdersToDisplayedString(BattleText_UnknownString3);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user