fix rom3 conflicts

This commit is contained in:
DizzyEggg 2017-10-13 19:58:45 +02:00
commit 72ed861715
93 changed files with 13360 additions and 18899 deletions

View File

@ -1323,8 +1323,8 @@ _0805DC02:
.pool
thumb_func_end mplay_80342A4
thumb_func_start sub_805DC0C
sub_805DC0C: @ 805DC0C
thumb_func_start BattleLoadOpponentMonSpriteGfx
BattleLoadOpponentMonSpriteGfx: @ 805DC0C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@ -1474,10 +1474,10 @@ _0805DD46:
pop {r0}
bx r0
.pool
thumb_func_end sub_805DC0C
thumb_func_end BattleLoadOpponentMonSpriteGfx
thumb_func_start sub_805DD7C
sub_805DD7C: @ 805DD7C
thumb_func_start BattleLoadPlayerMonSpriteGfx
BattleLoadPlayerMonSpriteGfx: @ 805DD7C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@ -1658,7 +1658,7 @@ _0805DEFC:
pop {r0}
bx r0
.pool
thumb_func_end sub_805DD7C
thumb_func_end BattleLoadPlayerMonSpriteGfx
thumb_func_start nullsub_23
nullsub_23: @ 805DF30
@ -1703,8 +1703,8 @@ sub_805DF38: @ 805DF38
.pool
thumb_func_end sub_805DF38
thumb_func_start sub_805DF84
sub_805DF84: @ 805DF84
thumb_func_start LoadBackTrainerBankSpriteGfx
LoadBackTrainerBankSpriteGfx: @ 805DF84
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
@ -1742,7 +1742,7 @@ sub_805DF84: @ 805DF84
pop {r0}
bx r0
.pool
thumb_func_end sub_805DF84
thumb_func_end LoadBackTrainerBankSpriteGfx
thumb_func_start nullsub_25
nullsub_25: @ 805DFE0
@ -1772,7 +1772,7 @@ sub_805DFFC: @ 805DFFC
adds r4, 0x8
adds r0, r4, 0
bl LoadSpritePalette
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _0805E034
@ -1821,8 +1821,8 @@ _0805E076:
.pool
thumb_func_end sub_805DFFC
thumb_func_start sub_805E08C
sub_805E08C: @ 805E08C
thumb_func_start BattleLoadAllHealthBoxesGfx
BattleLoadAllHealthBoxesGfx: @ 805E08C
push {r4-r6,lr}
lsls r0, 24
lsrs r4, r0, 24
@ -1843,7 +1843,7 @@ _0805E09C:
b _0805E1AE
.pool
_0805E0B8:
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _0805E120
@ -1953,7 +1953,7 @@ _0805E1AE:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_805E08C
thumb_func_end BattleLoadAllHealthBoxesGfx
thumb_func_start load_gfxc_health_bar
load_gfxc_health_bar: @ 805E1B8
@ -2002,7 +2002,7 @@ _0805E214:
b _0805E324
_0805E21A:
ldrb r0, [r4]
bl sub_805E08C
bl BattleLoadAllHealthBoxesGfx
lsls r0, 24
cmp r0, 0
beq _0805E228
@ -2022,12 +2022,12 @@ _0805E230:
ldrb r0, [r4]
cmp r0, 0
bne _0805E24C
bl battle_make_oam_safari_battle
bl CreateSafariPlayerHealthboxSprites
b _0805E252
.pool
_0805E24C:
ldrb r0, [r4]
bl battle_make_oam_normal_battle
bl CreateBankHealthboxSprites
_0805E252:
ldr r2, =gHealthBoxesIds
ldrb r1, [r4]
@ -2037,7 +2037,7 @@ _0805E252:
.pool
_0805E260:
ldrb r0, [r4]
bl sub_8072B18
bl SetBankHealthboxSpritePos
ldr r0, =gBanksByIdentity
ldrb r1, [r4]
adds r0, r1, r0
@ -2084,7 +2084,7 @@ _0805E29C:
ldr r2, =gPlayerParty
adds r1, r2
movs r2, 0
bl healthbar_draw_field_maybe
bl UpdateHealthboxAttribute
b _0805E302
.pool
_0805E2E4:
@ -2101,13 +2101,13 @@ _0805E2E4:
ldr r2, =gEnemyParty
adds r1, r2
movs r2, 0
bl healthbar_draw_field_maybe
bl UpdateHealthboxAttribute
_0805E302:
ldr r1, =gHealthBoxesIds
ldrb r0, [r4]
adds r0, r1
ldrb r0, [r0]
bl sub_8072984
bl SetHealthboxSpriteInvisible
_0805E30E:
ldrb r0, [r4]
adds r0, 0x1
@ -2128,7 +2128,7 @@ _0805E324:
b _0805E346
.pool
_0805E33C:
bl sub_805EC84
bl LoadAndCreateEnemyShadowSprites
bl sub_81B8C68
movs r6, 0x1
_0805E346:
@ -2630,8 +2630,8 @@ _0805E77A:
.pool
thumb_func_end sub_805E448
thumb_func_start sub_805E7DC
sub_805E7DC: @ 805E7DC
thumb_func_start BattleLoadSubstituteSpriteGfx
BattleLoadSubstituteSpriteGfx: @ 805E7DC
push {r4-r7,lr}
lsls r0, 24
lsrs r4, r0, 24
@ -2732,7 +2732,7 @@ _0805E898:
ldr r1, =gEnemyParty
adds r0, r1
adds r1, r4, 0
bl sub_805DC0C
bl BattleLoadOpponentMonSpriteGfx
b _0805E8E6
.pool
_0805E8D0:
@ -2745,13 +2745,13 @@ _0805E8D0:
ldr r1, =gPlayerParty
adds r0, r1
adds r1, r5, 0
bl sub_805DD7C
bl BattleLoadPlayerMonSpriteGfx
_0805E8E6:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_805E7DC
thumb_func_end BattleLoadSubstituteSpriteGfx
thumb_func_start refresh_graphics_maybe
refresh_graphics_maybe: @ 805E8F4
@ -2766,7 +2766,7 @@ refresh_graphics_maybe: @ 805E8F4
lsrs r4, 24
adds r0, r6, 0
adds r1, r5, 0
bl sub_805E7DC
bl BattleLoadSubstituteSpriteGfx
lsls r0, r4, 4
adds r0, r4
lsls r0, 2
@ -2905,7 +2905,7 @@ _0805EA08:
negs r0, r0
ands r0, r2
strb r0, [r1]
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _0805EA34
@ -2914,7 +2914,7 @@ _0805EA08:
b _0805EA5A
.pool
_0805EA34:
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0805EA5A
@ -2955,7 +2955,7 @@ BattleMusicStop: @ 805EA60
adds r0, r6, 0
ands r0, r2
strb r0, [r1]
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0805EAA2
@ -3059,7 +3059,7 @@ sub_805EAE8: @ 805EAE8
mov r1, r8
bl sub_805E990
_0805EB5A:
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0805EB7E
@ -3195,8 +3195,8 @@ _0805EC6C:
.pool
thumb_func_end sub_805EB9C
thumb_func_start sub_805EC84
sub_805EC84: @ 805EC84
thumb_func_start LoadAndCreateEnemyShadowSprites
LoadAndCreateEnemyShadowSprites: @ 805EC84
push {r4-r7,lr}
mov r7, r8
push {r7}
@ -3247,7 +3247,7 @@ sub_805EC84: @ 805EC84
lsls r0, 2
adds r0, r7
strh r5, [r0, 0x2E]
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0805ED56
@ -3299,7 +3299,7 @@ _0805ED56:
pop {r0}
bx r0
.pool
thumb_func_end sub_805EC84
thumb_func_end LoadAndCreateEnemyShadowSprites
thumb_func_start sub_805ED70
@ int sub_805ED70(obj *a1)
@ -3418,8 +3418,8 @@ sub_805EE48: @ 805EE48
bx lr
thumb_func_end sub_805EE48
thumb_func_start sub_805EE54
sub_805EE54: @ 805EE54
thumb_func_start SetBankEnemyShadowSpriteCallback
SetBankEnemyShadowSpriteCallback: @ 805EE54
push {r4-r6,lr}
lsls r0, 24
lsrs r4, r0, 24
@ -3482,7 +3482,7 @@ _0805EED0:
pop {r0}
bx r0
.pool
thumb_func_end sub_805EE54
thumb_func_end SetBankEnemyShadowSpriteCallback
thumb_func_start sub_805EEE0
sub_805EEE0: @ 805EEE0

View File

@ -4047,7 +4047,7 @@ sub_80A5AFC: @ 80A5AFC
lsls r0, 24
cmp r0, 0
bne _080A5BA6
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _080A5BA6
@ -4129,7 +4129,7 @@ sub_80A5BAC: @ 80A5BAC
lsls r0, 24
cmp r0, 0
bne _080A5C38
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _080A5C38

View File

@ -721,7 +721,7 @@ sub_80FEE1C: @ 80FEE1C
lsls r0, 24
cmp r0, 0
bne _080FEE36
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _080FEE3E
@ -1260,7 +1260,7 @@ _080FF260:
sub_80FF268: @ 80FF268
push {r4,lr}
adds r4, r0, 0
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@ -5433,7 +5433,7 @@ _08101378:
ldr r0, =gAnimationBankTarget
_0810137A:
ldrb r6, [r0]
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _081013C4
@ -7557,7 +7557,7 @@ _08102448:
bne _08102464
adds r0, r4, r5
ldrb r0, [r0]
bl sub_8072984
bl SetHealthboxSpriteInvisible
_08102464:
movs r1, 0x2
ldrsh r0, [r6, r1]
@ -7571,7 +7571,7 @@ _08102464:
bne _08102482
adds r0, r4, r5
ldrb r0, [r0]
bl sub_8072984
bl SetHealthboxSpriteInvisible
_08102482:
adds r0, r4, 0x1
lsls r0, 24
@ -7600,7 +7600,7 @@ _081024B2:
ldr r0, =gHealthBoxesIds
adds r0, r4, r0
ldrb r0, [r0]
bl sub_80729D0
bl SetHealthboxSpriteVisible
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
@ -13205,7 +13205,7 @@ _081051F2:
movs r0, 0x1
adds r4, r0, 0
eors r4, r1
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0810526A
@ -26794,7 +26794,7 @@ _0810BF90:
ldrsh r0, [r0, r1]
cmp r0, 0
beq _0810BFA8
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _0810BFB4
@ -33105,7 +33105,7 @@ _0810F284:
mov r0, r8
cmp r0, 0
bne _0810F2B8
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0810F2B8
@ -33501,7 +33501,7 @@ _0810F5A6:
lsls r0, 24
cmp r0, 0
bne _0810F5EE
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0810F5EE
@ -43194,7 +43194,7 @@ sub_81144F8: @ 81144F8
movs r2, 0x1
bl lcd_bg_operations
_0811455C:
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _081145D6
@ -47859,7 +47859,7 @@ sub_8116B14: @ 8116B14
movs r0, 0xA
bl SetGpuReg
_08116BA2:
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08116C26
@ -48295,7 +48295,7 @@ _08116F5C:
movs r2, 0x1
bl lcd_bg_operations
_08116FBA:
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08117036

View File

@ -3256,7 +3256,7 @@ _0815BAB6:
lsls r1, r0, 2
adds r1, r2
ldrh r1, [r1, 0x2]
bl sub_805EE54
bl SetBankEnemyShadowSpriteCallback
_0815BAF6:
mov r0, r8
bl move_anim_task_del
@ -4001,7 +4001,7 @@ _0815C15C:
bl GetBankIdentity
lsls r0, 24
lsrs r4, r0, 24
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@ -9334,7 +9334,7 @@ sub_815EC48: @ 815EC48
lsls r0, 24
cmp r0, 0
bne _0815ECD0
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
lsrs r7, r0, 24
cmp r7, 0x1

View File

@ -199,11 +199,11 @@ sub_8064520: @ 8064520
movs r0, 0
mov r8, r0
movs r4, 0
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0806454C
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08064584
@ -531,7 +531,7 @@ _080647B4:
ands r0, r1
cmp r0, 0
bne _0806487A
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0806484A
@ -557,7 +557,7 @@ _080647B4:
ldr r2, =gEnemyParty
adds r1, r2
movs r2, 0
bl healthbar_draw_field_maybe
bl UpdateHealthboxAttribute
mov r1, r9
ldrb r0, [r1]
eors r0, r7
@ -567,7 +567,7 @@ _080647B4:
eors r0, r7
adds r0, r4
ldrb r0, [r0]
bl sub_80729D0
bl SetHealthboxSpriteVisible
_0806484A:
ldr r5, =gHealthBoxesIds
ldr r4, =gActiveBank
@ -583,13 +583,13 @@ _0806484A:
ldr r2, =gEnemyParty
adds r1, r2
movs r2, 0
bl healthbar_draw_field_maybe
bl UpdateHealthboxAttribute
ldrb r0, [r4]
bl sub_8076918
ldrb r0, [r4]
adds r0, r5
ldrb r0, [r0]
bl sub_80729D0
bl SetHealthboxSpriteVisible
_0806487A:
ldr r4, =gBattleSpritesDataPtr
ldr r0, [r4]
@ -760,7 +760,7 @@ _08064998:
movs r1, 0
strb r1, [r0, 0x9]
_080649E2:
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08064A3A
@ -799,7 +799,7 @@ _080649E2:
lsls r1, 16
lsrs r1, 16
adds r0, r4, 0
bl sub_805EE54
bl SetBankEnemyShadowSpriteCallback
_08064A3A:
ldr r1, =gUnknown_03005D7C
ldr r4, =gActiveBank
@ -827,7 +827,7 @@ _08064A3A:
lsls r1, 16
lsrs r1, 16
adds r0, r5, 0
bl sub_805EE54
bl SetBankEnemyShadowSpriteCallback
ldr r3, =gBattleSpritesDataPtr
ldr r0, [r3]
ldr r2, [r0, 0x8]
@ -974,7 +974,7 @@ sub_8064BC0: @ 8064BC0
ldrb r0, [r6]
adds r0, r5
ldrb r0, [r0]
bl sub_80729D0
bl SetHealthboxSpriteVisible
lsls r4, 16
asrs r1, r4, 16
movs r0, 0x1
@ -1017,7 +1017,7 @@ sub_8064C14: @ 8064C14
ldr r0, =gHealthBoxesIds
adds r0, r3, r0
ldrb r0, [r0]
bl sub_8072984
bl SetHealthboxSpriteInvisible
bl LinkOpponentBufferExecCompleted
_08064C42:
pop {r0}
@ -1065,7 +1065,7 @@ sub_8064C58: @ 8064C58
ldrb r0, [r6]
adds r0, r1
ldrb r0, [r0]
bl sub_8072984
bl SetHealthboxSpriteInvisible
bl LinkOpponentBufferExecCompleted
_08064CB2:
pop {r4-r6}
@ -1321,13 +1321,13 @@ sub_8064E50: @ 8064E50
ldr r2, =gEnemyParty
adds r1, r2
movs r2, 0
bl healthbar_draw_field_maybe
bl UpdateHealthboxAttribute
ldrb r0, [r5]
bl sub_8076918
ldrb r0, [r5]
adds r0, r4
ldrb r0, [r0]
bl sub_80729D0
bl SetHealthboxSpriteVisible
ldrb r0, [r5]
bl sub_805E408
ldr r1, =gBattleBankFunc
@ -1413,7 +1413,7 @@ _08064F72:
lsls r1, 16
lsrs r1, 16
adds r0, r4, 0
bl sub_805EE54
bl SetBankEnemyShadowSpriteCallback
ldr r1, =gBattleBankFunc
ldrb r0, [r5]
lsls r0, 2
@ -3583,7 +3583,7 @@ sub_80662F8: @ 80662F8
muls r2, r0
adds r0, r2, 0
add r0, r9
bl sub_805DC0C
bl BattleLoadOpponentMonSpriteGfx
ldrb r0, [r6]
bl GetBankIdentity
adds r1, r0, 0
@ -3673,7 +3673,7 @@ sub_80662F8: @ 80662F8
lsls r1, 16
lsrs r1, 16
adds r0, r4, 0
bl sub_805EE54
bl SetBankEnemyShadowSpriteCallback
ldr r1, =gBattleBankFunc
ldrb r0, [r6]
lsls r0, 2
@ -3772,7 +3772,7 @@ sub_8066494: @ 8066494
adds r0, r1, 0
adds r0, r5
adds r1, r6, 0
bl sub_805DC0C
bl BattleLoadOpponentMonSpriteGfx
adds r0, r6, 0
bl GetBankIdentity
adds r1, r0, 0
@ -3947,7 +3947,7 @@ _0806666C:
ldrb r0, [r6]
adds r0, r1
ldrb r0, [r0]
bl sub_8072984
bl SetHealthboxSpriteInvisible
bl LinkOpponentBufferExecCompleted
_080666A8:
pop {r4-r6}
@ -5242,7 +5242,7 @@ sub_806719C: @ 806719C
ldr r2, =gEnemyParty
adds r1, r2
movs r2, 0x9
bl healthbar_draw_field_maybe
bl UpdateHealthboxAttribute
ldrb r2, [r4]
ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
@ -5779,7 +5779,7 @@ c3_08038DC4: @ 8067618
adds r0, r1
ldrh r0, [r0, 0x8]
strb r0, [r7]
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08067652

View File

@ -168,11 +168,11 @@ _0814AFF4:
sub_814B004: @ 814B004
push {r4-r6,lr}
movs r6, 0
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0814B028
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0814B05C
@ -348,7 +348,7 @@ _0814B136:
lsls r0, 2
adds r0, r2
strb r6, [r0, 0x9]
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0814B1F0
@ -383,7 +383,7 @@ _0814B136:
ldr r2, =gPlayerParty
adds r1, r2
movs r2, 0
bl healthbar_draw_field_maybe
bl UpdateHealthboxAttribute
ldrb r0, [r7]
mov r1, r8
eors r0, r1
@ -393,7 +393,7 @@ _0814B136:
eors r0, r1
adds r0, r4
ldrb r0, [r0]
bl sub_80729D0
bl SetHealthboxSpriteVisible
_0814B1F0:
ldr r1, =gUnknown_03005D7C
ldr r4, =gActiveBank
@ -419,13 +419,13 @@ _0814B1F0:
ldr r2, =gPlayerParty
adds r1, r2
movs r2, 0
bl healthbar_draw_field_maybe
bl UpdateHealthboxAttribute
ldrb r0, [r4]
bl sub_8076918
ldrb r0, [r4]
adds r0, r5
ldrb r0, [r0]
bl sub_80729D0
bl SetHealthboxSpriteVisible
ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r2, [r0, 0x8]
@ -498,7 +498,7 @@ bx_t4_healthbar_update: @ 814B2D0
ldrb r0, [r5]
adds r0, r6
ldrb r0, [r0]
bl sub_80729D0
bl SetHealthboxSpriteVisible
lsls r4, 16
asrs r1, r4, 16
movs r0, 0x1
@ -587,7 +587,7 @@ sub_814B340: @ 814B340
ldrb r0, [r4]
adds r0, r1
ldrb r0, [r0]
bl sub_8072984
bl SetHealthboxSpriteInvisible
bl LinkPartnerBufferExecCompleted
_0814B3BC:
pop {r4-r6}
@ -634,7 +634,7 @@ sub_814B3DC: @ 814B3DC
ldrb r0, [r6]
adds r0, r1
ldrb r0, [r0]
bl sub_8072984
bl SetHealthboxSpriteInvisible
bl LinkPartnerBufferExecCompleted
_0814B430:
pop {r4-r6}
@ -878,13 +878,13 @@ sub_814B5A8: @ 814B5A8
muls r1, r6
adds r1, r5
movs r2, 0
bl healthbar_draw_field_maybe
bl UpdateHealthboxAttribute
ldrb r0, [r7]
bl sub_8076918
ldrb r0, [r7]
adds r0, r4
ldrb r0, [r0]
bl sub_80729D0
bl SetHealthboxSpriteVisible
ldr r1, =gBattleBankFunc
ldrb r0, [r7]
lsls r0, 2
@ -3154,7 +3154,7 @@ sub_814CB0C: @ 814CB0C
muls r0, r5
ldr r4, =gPlayerParty
adds r0, r4
bl sub_805DD7C
bl BattleLoadPlayerMonSpriteGfx
ldrb r0, [r6]
lsls r0, 1
add r0, r8
@ -3283,7 +3283,7 @@ sub_814CC28: @ 814CC28
muls r0, r2
ldr r2, =gPlayerParty
adds r0, r2
bl sub_805DD7C
bl BattleLoadPlayerMonSpriteGfx
ldrb r0, [r5]
lsls r1, r0, 9
adds r1, r6
@ -3514,7 +3514,7 @@ _0814CE5C:
ldrb r0, [r6]
adds r0, r1
ldrb r0, [r0]
bl sub_8072984
bl SetHealthboxSpriteInvisible
bl LinkPartnerBufferExecCompleted
_0814CE92:
pop {r4-r6}
@ -3696,7 +3696,7 @@ _0814D002:
ldr r5, =gActiveBank
ldrb r1, [r5]
adds r0, r4, 0
bl sub_805DF84
bl LoadBackTrainerBankSpriteGfx
ldrb r0, [r5]
bl GetBankIdentity
adds r1, r0, 0
@ -4551,7 +4551,7 @@ sub_814D738: @ 814D738
ldr r2, =gPlayerParty
adds r1, r2
movs r2, 0x9
bl healthbar_draw_field_maybe
bl UpdateHealthboxAttribute
ldrb r2, [r4]
ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
@ -5217,7 +5217,7 @@ _0814DCF8:
mov r9, r0
ldrh r0, [r1, 0x8]
strb r0, [r7]
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0814DD18
@ -5276,7 +5276,7 @@ _0814DD48:
muls r0, r2
ldr r2, =gPlayerParty
adds r0, r2
bl sub_805DD7C
bl BattleLoadPlayerMonSpriteGfx
ldrb r0, [r7]
movs r1, 0
bl sub_814CC98

View File

@ -200,11 +200,11 @@ sub_805F2F0: @ 805F2F0
push {r5-r7}
movs r0, 0
mov r10, r0
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0805F32C
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0805F31E
@ -520,7 +520,7 @@ _0805F5A6:
ands r0, r1
cmp r0, 0
bne _0805F5EE
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0805F5EE
@ -583,7 +583,7 @@ _0805F5EE:
ands r0, r1
cmp r0, 0
bne _0805F6B4
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0805F684
@ -609,7 +609,7 @@ _0805F5EE:
ldr r2, =gEnemyParty
adds r1, r2
movs r2, 0
bl healthbar_draw_field_maybe
bl UpdateHealthboxAttribute
mov r1, r8
ldrb r0, [r1]
eors r0, r7
@ -619,7 +619,7 @@ _0805F5EE:
eors r0, r7
adds r0, r4
ldrb r0, [r0]
bl sub_80729D0
bl SetHealthboxSpriteVisible
_0805F684:
ldr r5, =gHealthBoxesIds
ldr r4, =gActiveBank
@ -635,13 +635,13 @@ _0805F684:
ldr r2, =gEnemyParty
adds r1, r2
movs r2, 0
bl healthbar_draw_field_maybe
bl UpdateHealthboxAttribute
ldrb r0, [r4]
bl sub_8076918
ldrb r0, [r4]
adds r0, r5
ldrb r0, [r0]
bl sub_80729D0
bl SetHealthboxSpriteVisible
_0805F6B4:
ldr r3, =gBattleSpritesDataPtr
ldr r2, [r3]
@ -739,11 +739,11 @@ _0805F774:
movs r0, 0x1
str r0, [sp]
_0805F792:
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0805F7B2
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0805F810
@ -838,7 +838,7 @@ _0805F86E:
mov r0, r10
cmp r0, 0
beq _0805F958
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0805F8D2
@ -877,7 +877,7 @@ _0805F86E:
lsls r1, 16
lsrs r1, 16
adds r0, r4, 0
bl sub_805EE54
bl SetBankEnemyShadowSpriteCallback
_0805F8D2:
ldr r1, =gUnknown_03005D7C
ldr r4, =gActiveBank
@ -905,7 +905,7 @@ _0805F8D2:
lsls r1, 16
lsrs r1, 16
adds r0, r5, 0
bl sub_805EE54
bl SetBankEnemyShadowSpriteCallback
ldr r3, =gBattleSpritesDataPtr
ldr r0, [r3]
ldr r2, [r0, 0x8]
@ -1068,7 +1068,7 @@ sub_805FA70: @ 805FA70
ldrb r0, [r6]
adds r0, r5
ldrb r0, [r0]
bl sub_80729D0
bl SetHealthboxSpriteVisible
lsls r4, 16
asrs r1, r4, 16
movs r0, 0x1
@ -1111,7 +1111,7 @@ sub_805FAC4: @ 805FAC4
ldr r0, =gHealthBoxesIds
adds r0, r3, r0
ldrb r0, [r0]
bl sub_8072984
bl SetHealthboxSpriteInvisible
bl OpponentBufferExecCompleted
_0805FAF2:
pop {r0}
@ -1159,7 +1159,7 @@ sub_805FB08: @ 805FB08
ldrb r0, [r6]
adds r0, r1
ldrb r0, [r0]
bl sub_8072984
bl SetHealthboxSpriteInvisible
bl OpponentBufferExecCompleted
_0805FB62:
pop {r4-r6}
@ -1415,13 +1415,13 @@ sub_805FD00: @ 805FD00
ldr r2, =gEnemyParty
adds r1, r2
movs r2, 0
bl healthbar_draw_field_maybe
bl UpdateHealthboxAttribute
ldrb r0, [r5]
bl sub_8076918
ldrb r0, [r5]
adds r0, r4
ldrb r0, [r0]
bl sub_80729D0
bl SetHealthboxSpriteVisible
ldrb r0, [r5]
bl sub_805E408
ldr r1, =gBattleBankFunc
@ -1507,7 +1507,7 @@ _0805FE22:
lsls r1, 16
lsrs r1, 16
adds r0, r4, 0
bl sub_805EE54
bl SetBankEnemyShadowSpriteCallback
ldr r1, =gBattleBankFunc
ldrb r0, [r5]
lsls r0, 2
@ -3730,7 +3730,7 @@ sub_8061224: @ 8061224
ldrh r0, [r0]
muls r0, r7
add r0, r10
bl sub_805DC0C
bl BattleLoadOpponentMonSpriteGfx
ldrb r0, [r6]
bl GetBankIdentity
adds r1, r0, 0
@ -3828,7 +3828,7 @@ sub_8061224: @ 8061224
lsls r1, 16
lsrs r1, 16
adds r0, r4, 0
bl sub_805EE54
bl SetBankEnemyShadowSpriteCallback
ldr r1, =gBattleBankFunc
ldrb r0, [r6]
lsls r0, 2
@ -3934,7 +3934,7 @@ sub_80613DC: @ 80613DC
adds r0, r1, 0
adds r0, r5
adds r1, r6, 0
bl sub_805DC0C
bl BattleLoadOpponentMonSpriteGfx
adds r0, r6, 0
bl GetBankIdentity
adds r1, r0, 0
@ -4109,7 +4109,7 @@ _080615B4:
ldrb r0, [r6]
adds r0, r1
ldrb r0, [r0]
bl sub_8072984
bl SetHealthboxSpriteInvisible
bl OpponentBufferExecCompleted
_080615F0:
pop {r4-r6}
@ -5692,7 +5692,7 @@ sub_8062390: @ 8062390
ldr r2, =gEnemyParty
adds r1, r2
movs r2, 0x9
bl healthbar_draw_field_maybe
bl UpdateHealthboxAttribute
ldrb r2, [r4]
ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
@ -6244,7 +6244,7 @@ sub_8062828: @ 8062828
adds r0, r1
ldrh r0, [r0, 0x8]
strb r0, [r7]
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0806286C

View File

@ -249,7 +249,7 @@ _08057674:
ldrb r0, [r4]
adds r0, r5
ldrb r0, [r0]
bl sub_8059CF8
bl ActionSelectionDestroyCursorAt
ldrb r1, [r4]
adds r1, r5
ldrb r0, [r1]
@ -277,7 +277,7 @@ _080576B4:
ldrb r0, [r4]
adds r0, r5
ldrb r0, [r0]
bl sub_8059CF8
bl ActionSelectionDestroyCursorAt
ldrb r1, [r4]
adds r1, r5
ldrb r0, [r1]
@ -321,7 +321,7 @@ _0805771A:
ldrb r0, [r4]
adds r0, r5
ldrb r0, [r0]
bl sub_8059CF8
bl ActionSelectionDestroyCursorAt
ldrb r1, [r4]
adds r1, r5
ldrb r0, [r1]
@ -333,7 +333,7 @@ _08057732:
adds r0, r5
ldrb r0, [r0]
movs r1, 0
bl sub_8059CB4
bl ActionSelectionCreateCursorAt
b _080577E8
.pool
_0805774C:
@ -2385,11 +2385,11 @@ sub_805896C: @ 805896C
mov r5, r8
push {r5-r7}
movs r7, 0
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08058998
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _080589D0
@ -2541,7 +2541,7 @@ _08058A0E:
ldr r4, =gPlayerParty
adds r0, r4
bl sub_805E990
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08058AE4
@ -2672,7 +2672,7 @@ _08058BB2:
ands r0, r1
cmp r0, 0
bne _08058C68
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08058C38
@ -2697,7 +2697,7 @@ _08058BB2:
ldr r2, =gPlayerParty
adds r1, r2
movs r2, 0
bl healthbar_draw_field_maybe
bl UpdateHealthboxAttribute
ldrb r0, [r7]
eors r0, r6
bl sub_8076918
@ -2705,7 +2705,7 @@ _08058BB2:
eors r0, r6
adds r0, r4
ldrb r0, [r0]
bl sub_80729D0
bl SetHealthboxSpriteVisible
_08058C38:
ldr r5, =gHealthBoxesIds
ldr r4, =gActiveBank
@ -2721,13 +2721,13 @@ _08058C38:
ldr r2, =gPlayerParty
adds r1, r2
movs r2, 0
bl healthbar_draw_field_maybe
bl UpdateHealthboxAttribute
ldrb r0, [r4]
bl sub_8076918
ldrb r0, [r4]
adds r0, r5
ldrb r0, [r0]
bl sub_80729D0
bl SetHealthboxSpriteVisible
_08058C68:
ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0]
@ -2817,11 +2817,11 @@ _08058D14:
movs r0, 0x1
mov r9, r0
_08058D32:
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08058D52
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08058DAC
@ -2915,7 +2915,7 @@ _08058E0A:
mov r0, r8
cmp r0, 0
beq _08058EAA
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08058E48
@ -3207,13 +3207,13 @@ _0805905E:
ldr r2, =gPlayerParty
adds r1, r2
movs r2, 0
bl healthbar_draw_field_maybe
bl UpdateHealthboxAttribute
ldrb r0, [r5]
bl sub_8076918
ldrb r0, [r5]
adds r0, r4
ldrb r0, [r0]
bl sub_80729D0
bl SetHealthboxSpriteVisible
ldr r1, =gBattleBankFunc
ldrb r0, [r5]
lsls r0, 2
@ -3267,7 +3267,7 @@ bx_t1_healthbar_update: @ 8059130
ldrb r0, [r5]
adds r0, r6
ldrb r0, [r0]
bl sub_80729D0
bl SetHealthboxSpriteVisible
lsls r4, 16
asrs r1, r4, 16
movs r0, 0x1
@ -3338,7 +3338,7 @@ sub_80591B8: @ 80591B8
str r7, [sp, 0x8]
ldrh r2, [r1, 0xA]
str r2, [sp, 0xC]
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@ -3415,7 +3415,7 @@ _080591FE:
movs r1, 0xB
bl EmitCmd_x21
strb r5, [r4]
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@ -3616,7 +3616,7 @@ _08059430:
lsls r4, 16
lsrs r4, 16
ldrb r0, [r5]
bl sub_80729D0
bl SetHealthboxSpriteVisible
lsls r4, 16
asrs r4, 16
movs r0, 0x1
@ -3729,7 +3729,7 @@ sub_8059544: @ 8059544
adds r0, r1
ldrb r4, [r0, 0xC]
ldrb r6, [r0, 0x8]
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@ -3795,7 +3795,7 @@ sub_80595A4: @ 80595A4
adds r0, r7, 0
movs r1, 0x38
bl GetMonData
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@ -3814,7 +3814,7 @@ sub_80595A4: @ 80595A4
ldrb r0, [r0]
adds r1, r7, 0
movs r2, 0
bl healthbar_draw_field_maybe
bl UpdateHealthboxAttribute
b _08059638
.pool
_08059624:
@ -3826,7 +3826,7 @@ _08059624:
ldr r2, =gPlayerParty
adds r1, r2
movs r2, 0
bl healthbar_draw_field_maybe
bl UpdateHealthboxAttribute
_08059638:
ldr r0, =gTasks
lsls r1, r6, 2
@ -3930,7 +3930,7 @@ sub_80596A8: @ 80596A8
ldrb r0, [r4]
adds r0, r1
ldrb r0, [r0]
bl sub_8072984
bl SetHealthboxSpriteInvisible
bl PlayerBufferExecCompleted
_08059724:
pop {r4-r6}
@ -3977,7 +3977,7 @@ sub_8059744: @ 8059744
ldrb r0, [r6]
adds r0, r1
ldrb r0, [r0]
bl sub_8072984
bl SetHealthboxSpriteInvisible
bl PlayerBufferExecCompleted
_08059798:
pop {r4-r6}
@ -4561,8 +4561,8 @@ battle_menu_cursor_related: @ 8059C70
.pool
thumb_func_end battle_menu_cursor_related
thumb_func_start sub_8059CB4
sub_8059CB4: @ 8059CB4
thumb_func_start ActionSelectionCreateCursorAt
ActionSelectionCreateCursorAt: @ 8059CB4
push {r4,lr}
sub sp, 0x10
adds r3, r0, 0
@ -4595,10 +4595,10 @@ sub_8059CB4: @ 8059CB4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8059CB4
thumb_func_end ActionSelectionCreateCursorAt
thumb_func_start sub_8059CF8
sub_8059CF8: @ 8059CF8
thumb_func_start ActionSelectionDestroyCursorAt
ActionSelectionDestroyCursorAt: @ 8059CF8
push {lr}
sub sp, 0x10
adds r3, r0, 0
@ -4632,7 +4632,7 @@ sub_8059CF8: @ 8059CF8
pop {r0}
bx r0
.pool
thumb_func_end sub_8059CF8
thumb_func_end ActionSelectionDestroyCursorAt
thumb_func_start sub_8059D40
sub_8059D40: @ 8059D40
@ -6866,7 +6866,7 @@ sub_805B164: @ 805B164
muls r0, r2
ldr r2, =gPlayerParty
adds r0, r2
bl sub_805DD7C
bl BattleLoadPlayerMonSpriteGfx
ldr r2, =gSprites
ldr r0, =gBankSpriteIds
ldrb r3, [r4]
@ -6923,7 +6923,7 @@ sub_805B1CC: @ 805B1CC
muls r0, r2
ldr r2, =gPlayerParty
adds r0, r2
bl sub_805DD7C
bl BattleLoadPlayerMonSpriteGfx
ldr r1, =gActionSelectionCursor
ldrb r0, [r5]
adds r0, r1
@ -7162,7 +7162,7 @@ _0805B41C:
ldrb r0, [r6]
adds r0, r1
ldrb r0, [r0]
bl sub_8072984
bl SetHealthboxSpriteInvisible
bl PlayerBufferExecCompleted
_0805B452:
pop {r4-r6}
@ -7542,7 +7542,7 @@ _0805B794:
ldr r5, =gActiveBank
ldrb r1, [r5]
adds r0, r4, 0
bl sub_805DF84
bl LoadBackTrainerBankSpriteGfx
ldrb r0, [r5]
bl GetBankIdentity
adds r1, r0, 0
@ -7724,7 +7724,7 @@ _0805B926:
ldr r5, =gActiveBank
ldrb r1, [r5]
adds r0, r4, 0
bl sub_805DF84
bl LoadBackTrainerBankSpriteGfx
ldrb r0, [r5]
bl GetBankIdentity
adds r1, r0, 0
@ -8539,7 +8539,7 @@ dp01t_12_6_battle_menu: @ 805C044
_0805C062:
lsls r0, r4, 24
lsrs r0, 24
bl sub_8059CF8
bl ActionSelectionDestroyCursorAt
adds r4, 0x1
cmp r4, 0x3
ble _0805C062
@ -8549,7 +8549,7 @@ _0805C062:
adds r0, r1
ldrb r0, [r0]
movs r1, 0
bl sub_8059CB4
bl ActionSelectionCreateCursorAt
ldr r0, =gText_WhatWillPkmnDo
bl BattleStringExpandPlaceholdersToDisplayedString
ldr r0, =gDisplayedStringBattle
@ -9130,7 +9130,7 @@ sub_805C5C4: @ 805C5C4
ldr r2, =gPlayerParty
adds r1, r2
movs r2, 0x9
bl healthbar_draw_field_maybe
bl UpdateHealthboxAttribute
ldrb r2, [r4]
ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
@ -9860,7 +9860,7 @@ sub_805CC00: @ 805CC00
ldr r1, =gPlayerParty
adds r0, r1
adds r1, r4, 0
bl sub_805DD7C
bl BattleLoadPlayerMonSpriteGfx
ldr r0, =gBankSpriteIds
adds r4, r0
ldrb r1, [r4]
@ -9906,7 +9906,7 @@ _0805CC94:
mov r9, r0
ldrh r0, [r1, 0x8]
strb r0, [r7]
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0805CCB4
@ -9965,7 +9965,7 @@ _0805CCE4:
muls r0, r2
ldr r2, =gPlayerParty
adds r0, r2
bl sub_805DD7C
bl BattleLoadPlayerMonSpriteGfx
ldrb r0, [r7]
movs r1, 0
bl sub_805B258

View File

@ -169,11 +169,11 @@ _081BAF38:
sub_81BAF48: @ 81BAF48
push {r4-r6,lr}
movs r6, 0
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _081BAF6C
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _081BAFA0
@ -349,7 +349,7 @@ _081BB07A:
lsls r0, 2
adds r0, r2
strb r6, [r0, 0x9]
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _081BB134
@ -384,7 +384,7 @@ _081BB07A:
ldr r2, =gPlayerParty
adds r1, r2
movs r2, 0
bl healthbar_draw_field_maybe
bl UpdateHealthboxAttribute
ldrb r0, [r7]
mov r1, r8
eors r0, r1
@ -394,7 +394,7 @@ _081BB07A:
eors r0, r1
adds r0, r4
ldrb r0, [r0]
bl sub_80729D0
bl SetHealthboxSpriteVisible
_081BB134:
ldr r1, =gUnknown_03005D7C
ldr r4, =gActiveBank
@ -420,13 +420,13 @@ _081BB134:
ldr r2, =gPlayerParty
adds r1, r2
movs r2, 0
bl healthbar_draw_field_maybe
bl UpdateHealthboxAttribute
ldrb r0, [r4]
bl sub_8076918
ldrb r0, [r4]
adds r0, r5
ldrb r0, [r0]
bl sub_80729D0
bl SetHealthboxSpriteVisible
ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r2, [r0, 0x8]
@ -499,7 +499,7 @@ bx_t3_healthbar_update: @ 81BB214
ldrb r0, [r5]
adds r0, r6
ldrb r0, [r0]
bl sub_80729D0
bl SetHealthboxSpriteVisible
lsls r4, 16
asrs r1, r4, 16
movs r0, 0x1
@ -570,7 +570,7 @@ sub_81BB29C: @ 81BB29C
str r7, [sp, 0x8]
ldrh r2, [r1, 0xA]
str r2, [sp, 0xC]
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@ -647,7 +647,7 @@ _081BB2E2:
movs r1, 0xB
bl EmitCmd_x21
strb r5, [r4]
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@ -848,7 +848,7 @@ _081BB514:
lsls r4, 16
lsrs r4, 16
ldrb r0, [r5]
bl sub_80729D0
bl SetHealthboxSpriteVisible
lsls r4, 16
asrs r4, 16
movs r0, 0x1
@ -961,7 +961,7 @@ sub_81BB628: @ 81BB628
adds r0, r1
ldrb r4, [r0, 0xC]
ldrb r6, [r0, 0x8]
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@ -1027,7 +1027,7 @@ sub_81BB688: @ 81BB688
adds r0, r7, 0
movs r1, 0x38
bl GetMonData
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@ -1046,7 +1046,7 @@ sub_81BB688: @ 81BB688
ldrb r0, [r0]
adds r1, r7, 0
movs r2, 0
bl healthbar_draw_field_maybe
bl UpdateHealthboxAttribute
b _081BB71C
.pool
_081BB708:
@ -1058,7 +1058,7 @@ _081BB708:
ldr r2, =gPlayerParty
adds r1, r2
movs r2, 0
bl healthbar_draw_field_maybe
bl UpdateHealthboxAttribute
_081BB71C:
ldr r0, =gTasks
lsls r1, r6, 2
@ -1162,7 +1162,7 @@ sub_81BB78C: @ 81BB78C
ldrb r0, [r4]
adds r0, r1
ldrb r0, [r0]
bl sub_8072984
bl SetHealthboxSpriteInvisible
bl PlayerPartnerBufferExecCompleted
_081BB808:
pop {r4-r6}
@ -1209,7 +1209,7 @@ sub_81BB828: @ 81BB828
ldrb r0, [r6]
adds r0, r1
ldrb r0, [r0]
bl sub_8072984
bl SetHealthboxSpriteInvisible
bl PlayerPartnerBufferExecCompleted
_081BB87C:
pop {r4-r6}
@ -1453,13 +1453,13 @@ sub_81BB9F4: @ 81BB9F4
muls r1, r6
adds r1, r5
movs r2, 0
bl healthbar_draw_field_maybe
bl UpdateHealthboxAttribute
ldrb r0, [r7]
bl sub_8076918
ldrb r0, [r7]
adds r0, r4
ldrb r0, [r0]
bl sub_80729D0
bl SetHealthboxSpriteVisible
ldr r1, =gBattleBankFunc
ldrb r0, [r7]
lsls r0, 2
@ -3729,7 +3729,7 @@ sub_81BCF58: @ 81BCF58
muls r0, r5
ldr r4, =gPlayerParty
adds r0, r4
bl sub_805DD7C
bl BattleLoadPlayerMonSpriteGfx
ldrb r0, [r6]
lsls r0, 1
add r0, r8
@ -3858,7 +3858,7 @@ sub_81BD074: @ 81BD074
muls r0, r2
ldr r2, =gPlayerParty
adds r0, r2
bl sub_805DD7C
bl BattleLoadPlayerMonSpriteGfx
ldrb r0, [r5]
lsls r1, r0, 9
adds r1, r6
@ -4089,7 +4089,7 @@ _081BD2A8:
ldrb r0, [r6]
adds r0, r1
ldrb r0, [r0]
bl sub_8072984
bl SetHealthboxSpriteInvisible
bl PlayerPartnerBufferExecCompleted
_081BD2DE:
pop {r4-r6}
@ -4213,7 +4213,7 @@ _081BD3BE:
ldr r5, =gActiveBank
ldrb r1, [r5]
adds r0, r4, 0
bl sub_805DF84
bl LoadBackTrainerBankSpriteGfx
ldrb r0, [r5]
bl GetBankIdentity
adds r1, r0, 0
@ -5338,7 +5338,7 @@ sub_81BDD9C: @ 81BDD9C
ldr r2, =gPlayerParty
adds r1, r2
movs r2, 0x9
bl healthbar_draw_field_maybe
bl UpdateHealthboxAttribute
ldrb r2, [r4]
ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
@ -5950,7 +5950,7 @@ _081BE2F4:
mov r9, r0
ldrh r0, [r1, 0x8]
strb r0, [r7]
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _081BE314
@ -6009,7 +6009,7 @@ _081BE344:
muls r0, r2
ldr r2, =gPlayerParty
adds r0, r2
bl sub_805DD7C
bl BattleLoadPlayerMonSpriteGfx
ldrb r0, [r7]
movs r1, 0
bl sub_81BD0E4

View File

@ -198,11 +198,11 @@ sub_8186678: @ 8186678
push {r6,r7}
movs r0, 0
mov r9, r0
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _081866A4
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _081866F8
@ -504,7 +504,7 @@ _081868DE:
ands r0, r1
cmp r0, 0
bne _08186994
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08186964
@ -529,7 +529,7 @@ _081868DE:
ldr r2, =gEnemyParty
adds r1, r2
movs r2, 0
bl healthbar_draw_field_maybe
bl UpdateHealthboxAttribute
ldrb r0, [r7]
eors r0, r6
bl sub_8076918
@ -537,7 +537,7 @@ _081868DE:
eors r0, r6
adds r0, r4
ldrb r0, [r0]
bl sub_80729D0
bl SetHealthboxSpriteVisible
_08186964:
ldr r5, =gHealthBoxesIds
ldr r4, =gActiveBank
@ -553,13 +553,13 @@ _08186964:
ldr r2, =gEnemyParty
adds r1, r2
movs r2, 0
bl healthbar_draw_field_maybe
bl UpdateHealthboxAttribute
ldrb r0, [r4]
bl sub_8076918
ldrb r0, [r4]
adds r0, r5
ldrb r0, [r0]
bl sub_80729D0
bl SetHealthboxSpriteVisible
_08186994:
ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0]
@ -655,7 +655,7 @@ _08186A4C:
movs r0, 0x1
mov r9, r0
_08186A6A:
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _08186AC8
@ -742,7 +742,7 @@ _08186B26:
mov r0, r8
cmp r0, 0
beq _08186C10
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08186B8A
@ -781,7 +781,7 @@ _08186B26:
lsls r1, 16
lsrs r1, 16
adds r0, r4, 0
bl sub_805EE54
bl SetBankEnemyShadowSpriteCallback
_08186B8A:
ldr r1, =gUnknown_03005D7C
ldr r4, =gActiveBank
@ -809,7 +809,7 @@ _08186B8A:
lsls r1, 16
lsrs r1, 16
adds r0, r5, 0
bl sub_805EE54
bl SetBankEnemyShadowSpriteCallback
ldr r3, =gBattleSpritesDataPtr
ldr r0, [r3]
ldr r2, [r0, 0x8]
@ -955,7 +955,7 @@ sub_8186D04: @ 8186D04
ldrb r0, [r6]
adds r0, r5
ldrb r0, [r0]
bl sub_80729D0
bl SetHealthboxSpriteVisible
lsls r4, 16
asrs r1, r4, 16
movs r0, 0x1
@ -998,7 +998,7 @@ sub_8186D58: @ 8186D58
ldr r0, =gHealthBoxesIds
adds r0, r3, r0
ldrb r0, [r0]
bl sub_8072984
bl SetHealthboxSpriteInvisible
bl RecordedOpponentBufferExecCompleted
_08186D86:
pop {r0}
@ -1046,7 +1046,7 @@ sub_8186D9C: @ 8186D9C
ldrb r0, [r6]
adds r0, r1
ldrb r0, [r0]
bl sub_8072984
bl SetHealthboxSpriteInvisible
bl RecordedOpponentBufferExecCompleted
_08186DF6:
pop {r4-r6}
@ -1302,13 +1302,13 @@ sub_8186F94: @ 8186F94
ldr r2, =gEnemyParty
adds r1, r2
movs r2, 0
bl healthbar_draw_field_maybe
bl UpdateHealthboxAttribute
ldrb r0, [r5]
bl sub_8076918
ldrb r0, [r5]
adds r0, r4
ldrb r0, [r0]
bl sub_80729D0
bl SetHealthboxSpriteVisible
ldrb r0, [r5]
bl sub_805E408
ldr r1, =gBattleBankFunc
@ -1394,7 +1394,7 @@ _081870B6:
lsls r1, 16
lsrs r1, 16
adds r0, r4, 0
bl sub_805EE54
bl SetBankEnemyShadowSpriteCallback
ldr r1, =gBattleBankFunc
ldrb r0, [r5]
lsls r0, 2
@ -3564,7 +3564,7 @@ sub_818843C: @ 818843C
muls r2, r0
adds r0, r2, 0
add r0, r9
bl sub_805DC0C
bl BattleLoadOpponentMonSpriteGfx
ldrb r0, [r6]
bl GetBankIdentity
adds r1, r0, 0
@ -3654,7 +3654,7 @@ sub_818843C: @ 818843C
lsls r1, 16
lsrs r1, 16
adds r0, r4, 0
bl sub_805EE54
bl SetBankEnemyShadowSpriteCallback
ldr r1, =gBattleBankFunc
ldrb r0, [r6]
lsls r0, 2
@ -3753,7 +3753,7 @@ sub_81885D8: @ 81885D8
adds r0, r1, 0
adds r0, r5
adds r1, r6, 0
bl sub_805DC0C
bl BattleLoadOpponentMonSpriteGfx
adds r0, r6, 0
bl GetBankIdentity
adds r1, r0, 0
@ -3928,7 +3928,7 @@ _081887B0:
ldrb r0, [r6]
adds r0, r1
ldrb r0, [r0]
bl sub_8072984
bl SetHealthboxSpriteInvisible
bl RecordedOpponentBufferExecCompleted
_081887EC:
pop {r4-r6}
@ -4981,7 +4981,7 @@ sub_81890CC: @ 81890CC
ldr r2, =gEnemyParty
adds r1, r2
movs r2, 0x9
bl healthbar_draw_field_maybe
bl UpdateHealthboxAttribute
ldrb r2, [r4]
ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
@ -5518,7 +5518,7 @@ c3_0803D564: @ 8189548
adds r0, r1
ldrh r0, [r0, 0x8]
strb r0, [r7]
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08189582

View File

@ -180,11 +180,11 @@ sub_8189AA0: @ 8189AA0
beq _08189ABA
b _08189C60
_08189ABA:
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08189ADA
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08189B0C
@ -337,7 +337,7 @@ _08189B86:
ldr r4, =gPlayerParty
adds r0, r4
bl sub_805E990
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08189C22
@ -366,11 +366,11 @@ _08189C22:
b _08189D10
.pool
_08189C60:
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08189C80
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08189CB0
@ -561,7 +561,7 @@ _08189DBE:
ands r0, r1
cmp r0, 0
bne _08189E84
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08189E54
@ -587,7 +587,7 @@ _08189DBE:
ldr r2, =gPlayerParty
adds r1, r2
movs r2, 0
bl healthbar_draw_field_maybe
bl UpdateHealthboxAttribute
mov r1, r9
ldrb r0, [r1]
eors r0, r7
@ -597,7 +597,7 @@ _08189DBE:
eors r0, r7
adds r0, r4
ldrb r0, [r0]
bl sub_80729D0
bl SetHealthboxSpriteVisible
_08189E54:
ldr r5, =gHealthBoxesIds
ldr r4, =gActiveBank
@ -613,13 +613,13 @@ _08189E54:
ldr r2, =gPlayerParty
adds r1, r2
movs r2, 0
bl healthbar_draw_field_maybe
bl UpdateHealthboxAttribute
ldrb r0, [r4]
bl sub_8076918
ldrb r0, [r4]
adds r0, r5
ldrb r0, [r0]
bl sub_80729D0
bl SetHealthboxSpriteVisible
_08189E84:
ldr r4, =gBattleSpritesDataPtr
ldr r0, [r4]
@ -747,7 +747,7 @@ _08189F62:
ldr r0, [r0]
cmp r0, r2
bne _0818A02A
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08189FC8
@ -874,7 +874,7 @@ sub_818A0A4: @ 818A0A4
ldrb r0, [r5]
adds r0, r6
ldrb r0, [r0]
bl sub_80729D0
bl SetHealthboxSpriteVisible
lsls r4, 16
asrs r1, r4, 16
movs r0, 0x1
@ -963,7 +963,7 @@ sub_818A114: @ 818A114
ldrb r0, [r4]
adds r0, r1
ldrb r0, [r0]
bl sub_8072984
bl SetHealthboxSpriteInvisible
bl RecordedPlayerBufferExecCompleted
_0818A190:
pop {r4-r6}
@ -1010,7 +1010,7 @@ sub_818A1B0: @ 818A1B0
ldrb r0, [r6]
adds r0, r1
ldrb r0, [r0]
bl sub_8072984
bl SetHealthboxSpriteInvisible
bl RecordedPlayerBufferExecCompleted
_0818A204:
pop {r4-r6}
@ -1254,13 +1254,13 @@ sub_818A37C: @ 818A37C
muls r1, r6
adds r1, r5
movs r2, 0
bl healthbar_draw_field_maybe
bl UpdateHealthboxAttribute
ldrb r0, [r7]
bl sub_8076918
ldrb r0, [r7]
adds r0, r4
ldrb r0, [r0]
bl sub_80729D0
bl SetHealthboxSpriteVisible
ldr r1, =gBattleBankFunc
ldrb r0, [r7]
lsls r0, 2
@ -3530,7 +3530,7 @@ sub_818B8E0: @ 818B8E0
muls r0, r5
ldr r4, =gPlayerParty
adds r0, r4
bl sub_805DD7C
bl BattleLoadPlayerMonSpriteGfx
ldrb r0, [r6]
lsls r0, 1
add r0, r8
@ -3659,7 +3659,7 @@ sub_818B9FC: @ 818B9FC
muls r0, r2
ldr r2, =gPlayerParty
adds r0, r2
bl sub_805DD7C
bl BattleLoadPlayerMonSpriteGfx
ldrb r0, [r5]
lsls r1, r0, 9
adds r1, r6
@ -3890,7 +3890,7 @@ _0818BC30:
ldrb r0, [r6]
adds r0, r1
ldrb r0, [r0]
bl sub_8072984
bl SetHealthboxSpriteInvisible
bl RecordedPlayerBufferExecCompleted
_0818BC66:
pop {r4-r6}
@ -4182,7 +4182,7 @@ _0818BEDC:
ldr r5, =gActiveBank
ldrb r1, [r5]
adds r0, r4, 0
bl sub_805DF84
bl LoadBackTrainerBankSpriteGfx
ldrb r0, [r5]
bl GetBankIdentity
adds r1, r0, 0
@ -5132,7 +5132,7 @@ sub_818C6F4: @ 818C6F4
ldr r2, =gPlayerParty
adds r1, r2
movs r2, 0x9
bl healthbar_draw_field_maybe
bl UpdateHealthboxAttribute
ldrb r2, [r4]
ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
@ -5746,7 +5746,7 @@ _0818CC50:
mov r9, r0
ldrh r0, [r1, 0x8]
strb r0, [r7]
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0818CC70
@ -5805,7 +5805,7 @@ _0818CCA0:
muls r0, r2
ldr r2, =gPlayerParty
adds r0, r2
bl sub_805DD7C
bl BattleLoadPlayerMonSpriteGfx
ldrb r0, [r7]
movs r1, 0
bl sub_818BA6C

View File

@ -132,7 +132,7 @@ _08159446:
ldrb r0, [r4]
adds r0, r5
ldrb r0, [r0]
bl sub_8059CF8
bl ActionSelectionDestroyCursorAt
ldrb r1, [r4]
adds r1, r5
ldrb r0, [r1]
@ -158,7 +158,7 @@ _08159484:
ldrb r0, [r4]
adds r0, r5
ldrb r0, [r0]
bl sub_8059CF8
bl ActionSelectionDestroyCursorAt
ldrb r1, [r4]
adds r1, r5
ldrb r0, [r1]
@ -184,7 +184,7 @@ _081594C0:
ldrb r0, [r4]
adds r0, r5
ldrb r0, [r0]
bl sub_8059CF8
bl ActionSelectionDestroyCursorAt
ldrb r1, [r4]
adds r1, r5
ldrb r0, [r1]
@ -196,7 +196,7 @@ _081594F2:
adds r0, r5
ldrb r0, [r0]
movs r1, 0
bl sub_8059CB4
bl ActionSelectionCreateCursorAt
b _0815954E
.pool
_0815950C:
@ -218,7 +218,7 @@ _0815950C:
ldrb r0, [r4]
adds r0, r5
ldrb r0, [r0]
bl sub_8059CF8
bl ActionSelectionDestroyCursorAt
ldrb r1, [r4]
adds r1, r5
ldrb r0, [r1]
@ -229,7 +229,7 @@ _0815950C:
adds r0, r5
ldrb r0, [r0]
movs r1, 0
bl sub_8059CB4
bl ActionSelectionCreateCursorAt
_0815954E:
pop {r4,r5}
pop {r0}
@ -569,7 +569,7 @@ sub_8159800: @ 8159800
ldrb r0, [r0, 0x8]
ldr r5, =gActiveBank
ldrb r1, [r5]
bl sub_805DF84
bl LoadBackTrainerBankSpriteGfx
ldr r0, [r4]
ldrb r6, [r0, 0x8]
ldrb r0, [r5]
@ -867,7 +867,7 @@ sub_8159A94: @ 8159A94
_08159AAE:
lsls r0, r4, 24
lsrs r0, 24
bl sub_8059CF8
bl ActionSelectionDestroyCursorAt
adds r4, 0x1
cmp r4, 0x3
ble _08159AAE
@ -877,7 +877,7 @@ _08159AAE:
adds r0, r1
ldrb r0, [r0]
movs r1, 0
bl sub_8059CB4
bl ActionSelectionCreateCursorAt
ldr r0, =gText_WhatWillPkmnDo2
bl BattleStringExpandPlaceholdersToDisplayedString
ldr r0, =gDisplayedStringBattle
@ -981,7 +981,7 @@ sub_8159B84: @ 8159B84
ldr r2, =gPlayerParty
adds r1, r2
movs r2, 0xB
bl healthbar_draw_field_maybe
bl UpdateHealthboxAttribute
bl SafariBufferExecCompleted
pop {r0}
bx r0
@ -1256,13 +1256,13 @@ sub_8159D90: @ 8159D90
ldr r2, =gPlayerParty
adds r1, r2
movs r2, 0xA
bl healthbar_draw_field_maybe
bl UpdateHealthboxAttribute
ldrb r0, [r4]
bl sub_8076918
ldrb r0, [r4]
adds r0, r5
ldrb r0, [r0]
bl sub_80729D0
bl SetHealthboxSpriteVisible
ldr r1, =gBattleBankFunc
ldrb r0, [r4]
lsls r0, 2

View File

@ -180,10 +180,10 @@ _08168508:
movs r0, 0x5
bl PlaySE
movs r0, 0
bl sub_8059CF8
bl ActionSelectionDestroyCursorAt
movs r0, 0x1
movs r1, 0
bl sub_8059CB4
bl ActionSelectionCreateCursorAt
ldr r0, [r4]
adds r0, 0x96
movs r1, 0x40
@ -425,7 +425,7 @@ _081686D2:
ldr r0, [r0]
cmp r0, r3
bne _081687DC
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0816877A
@ -459,7 +459,7 @@ _081686D2:
ldr r2, =gPlayerParty
adds r1, r2
movs r2, 0
bl healthbar_draw_field_maybe
bl UpdateHealthboxAttribute
ldrb r0, [r5]
eors r0, r6
bl sub_8076918
@ -467,7 +467,7 @@ _081686D2:
eors r0, r6
adds r0, r4
ldrb r0, [r0]
bl sub_80729D0
bl SetHealthboxSpriteVisible
_0816877A:
ldr r1, =gUnknown_03005D7C
ldr r4, =gActiveBank
@ -493,13 +493,13 @@ _0816877A:
ldr r2, =gPlayerParty
adds r1, r2
movs r2, 0
bl healthbar_draw_field_maybe
bl UpdateHealthboxAttribute
ldrb r0, [r4]
bl sub_8076918
ldrb r0, [r4]
adds r0, r5
ldrb r0, [r0]
bl sub_80729D0
bl SetHealthboxSpriteVisible
ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r2, [r0, 0x8]
@ -665,7 +665,7 @@ sub_8168934: @ 8168934
ldrb r0, [r5]
adds r0, r6
ldrb r0, [r0]
bl sub_80729D0
bl SetHealthboxSpriteVisible
lsls r4, 16
asrs r1, r4, 16
movs r0, 0x1
@ -796,7 +796,7 @@ sub_8168A20: @ 8168A20
ldrb r0, [r6]
adds r0, r1
ldrb r0, [r0]
bl sub_8072984
bl SetHealthboxSpriteInvisible
bl WallyBufferExecCompleted
_08168A74:
pop {r4-r6}
@ -3015,7 +3015,7 @@ _08169E80:
ldrb r0, [r6]
adds r0, r1
ldrb r0, [r0]
bl sub_8072984
bl SetHealthboxSpriteInvisible
bl WallyBufferExecCompleted
_08169EB6:
pop {r4-r6}
@ -3030,7 +3030,7 @@ sub_8169EC8: @ 8169EC8
ldr r4, =gActiveBank
ldrb r1, [r4]
movs r0, 0x6
bl sub_805DF84
bl LoadBackTrainerBankSpriteGfx
ldrb r0, [r4]
bl GetBankIdentity
adds r1, r0, 0
@ -3115,7 +3115,7 @@ dp01t_07_6_: @ 8169F94
ldr r4, =gActiveBank
ldrb r1, [r4]
movs r0, 0x6
bl sub_805DF84
bl LoadBackTrainerBankSpriteGfx
ldrb r0, [r4]
bl GetBankIdentity
adds r1, r0, 0
@ -3681,7 +3681,7 @@ dp01t_12_1_battle_menu: @ 816A470
_0816A48A:
lsls r0, r4, 24
lsrs r0, 24
bl sub_8059CF8
bl ActionSelectionDestroyCursorAt
adds r4, 0x1
cmp r4, 0x3
ble _0816A48A
@ -3691,7 +3691,7 @@ _0816A48A:
adds r0, r1
ldrb r0, [r0]
movs r1, 0
bl sub_8059CB4
bl ActionSelectionCreateCursorAt
ldr r0, =gText_WhatWillWallyDo
bl BattleStringExpandPlaceholdersToDisplayedString
ldr r0, =gDisplayedStringBattle

View File

@ -12935,7 +12935,7 @@ _081A1118:
adds r1, r0, 0
mov r0, sp
movs r2, 0x2
bl sub_81DB5E8
bl TVShowConvertInternationalString
adds r0, r5, 0
mov r1, sp
bl StringCopy
@ -18997,7 +18997,7 @@ sub_81A4594: @ 81A4594
adds r1, r6, 0x6
ldrb r2, [r6, 0xE]
add r0, sp, 0xC
bl sub_81DB5E8
bl TVShowConvertInternationalString
ldr r1, =gUnknown_0203AB74
ldrb r0, [r1]
mov r3, r8
@ -19111,7 +19111,7 @@ sub_81A4684: @ 81A4684
adds r1, 0xA
ldrb r2, [r5, 0x1A]
add r0, sp, 0xC
bl sub_81DB5E8
bl TVShowConvertInternationalString
ldr r1, =gUnknown_0203AB74
ldrb r0, [r1]
adds r3, r7, 0x2
@ -19133,13 +19133,13 @@ sub_81A4684: @ 81A4684
adds r4, r5, 0
adds r4, 0x12
adds r0, r4, 0
bl sub_8009228
bl IsStringJapanese
cmp r0, 0
beq _081A4734
add r0, sp, 0xC
adds r1, r4, 0
movs r2, 0x1
bl sub_81DB5E8
bl TVShowConvertInternationalString
b _081A473C
.pool
_081A4734:
@ -28660,7 +28660,7 @@ _081A95EE:
lsls r0, r7, 2
adds r0, r1
ldr r0, [r0]
bl box_related_two__2
bl ShowFieldMessage
add sp, 0x8
pop {r3,r4}
mov r8, r3

View File

@ -261,8 +261,8 @@ sub_80724A8: @ 80724A8
bx r0
thumb_func_end sub_80724A8
thumb_func_start battle_make_oam_normal_battle
battle_make_oam_normal_battle: @ 80724DC
thumb_func_start CreateBankHealthboxSprites
CreateBankHealthboxSprites: @ 80724DC
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@ -274,7 +274,7 @@ battle_make_oam_normal_battle: @ 80724DC
mov r10, r0
movs r0, 0
str r0, [sp]
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _080725F0
@ -608,10 +608,10 @@ _08072718:
pop {r1}
bx r1
.pool
thumb_func_end battle_make_oam_normal_battle
thumb_func_end CreateBankHealthboxSprites
thumb_func_start battle_make_oam_safari_battle
battle_make_oam_safari_battle: @ 8072804
thumb_func_start CreateSafariPlayerHealthboxSprites
CreateSafariPlayerHealthboxSprites: @ 8072804
push {r4-r7,lr}
mov r7, r9
mov r6, r8
@ -680,7 +680,7 @@ battle_make_oam_safari_battle: @ 8072804
pop {r1}
bx r1
.pool
thumb_func_end battle_make_oam_safari_battle
thumb_func_end CreateSafariPlayerHealthboxSprites
thumb_func_start sub_80728A4
sub_80728A4: @ 80728A4
@ -802,8 +802,8 @@ sub_807294C: @ 807294C
.pool
thumb_func_end sub_807294C
thumb_func_start sub_8072984
sub_8072984: @ 8072984
thumb_func_start SetHealthboxSpriteInvisible
SetHealthboxSpriteInvisible: @ 8072984
push {r4,lr}
lsls r0, 24
lsrs r0, 24
@ -841,10 +841,10 @@ sub_8072984: @ 8072984
pop {r0}
bx r0
.pool
thumb_func_end sub_8072984
thumb_func_end SetHealthboxSpriteInvisible
thumb_func_start sub_80729D0
sub_80729D0: @ 80729D0
thumb_func_start SetHealthboxSpriteVisible
SetHealthboxSpriteVisible: @ 80729D0
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
@ -885,7 +885,7 @@ sub_80729D0: @ 80729D0
pop {r0}
bx r0
.pool
thumb_func_end sub_80729D0
thumb_func_end SetHealthboxSpriteVisible
thumb_func_start sub_8072A24
sub_8072A24: @ 8072A24
@ -1014,14 +1014,14 @@ _08072B00:
.pool
thumb_func_end sub_8072A88
thumb_func_start sub_8072B18
sub_8072B18: @ 8072B18
thumb_func_start SetBankHealthboxSpritePos
SetBankHealthboxSpritePos: @ 8072B18
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
movs r5, 0
movs r4, 0
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _08072B44
@ -1081,7 +1081,7 @@ _08072B7C:
pop {r0}
bx r0
.pool
thumb_func_end sub_8072B18
thumb_func_end SetBankHealthboxSpritePos
thumb_func_start healthbar_draw_level
healthbar_draw_level: @ 8072B94
@ -1132,7 +1132,7 @@ healthbar_draw_level: @ 8072B94
lsls r0, 24
cmp r0, 0
bne _08072C18
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
ldr r2, =0x06010420
adds r1, r4, r2
@ -1187,7 +1187,7 @@ heathbar_draw_hp: @ 8072C38
lsls r0, 24
cmp r0, 0
bne _08072D10
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _08072D10
@ -1267,7 +1267,7 @@ _08072D10:
ldrh r0, [r6, 0x3A]
lsls r0, 24
lsrs r5, r0, 24
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
mov r10, r4
@ -1993,7 +1993,7 @@ _08073354:
bne _0807336A
b _080735A8
_0807336A:
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _08073382
@ -2036,7 +2036,7 @@ _08073382:
lsls r0, 24
cmp r0, 0
bne _080734B0
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _080733D0
@ -2107,7 +2107,7 @@ _08073468:
ldr r2, =gPlayerParty
adds r1, r2
movs r2, 0x5
bl healthbar_draw_field_maybe
bl UpdateHealthboxAttribute
movs r0, 0x75
bl sub_80728A4
ldrb r2, [r6]
@ -2209,7 +2209,7 @@ _0807355C:
ldr r4, =gEnemyParty
adds r1, r4
movs r2, 0x5
bl healthbar_draw_field_maybe
bl UpdateHealthboxAttribute
ldr r0, =gBattleTypeFlags
ldr r0, [r0]
movs r1, 0x80
@ -2222,7 +2222,7 @@ _0807355C:
muls r1, r5
adds r1, r4
movs r2, 0x4
bl healthbar_draw_field_maybe
bl UpdateHealthboxAttribute
_08073592:
ldr r0, =gHealthBoxesIds
add r0, r9
@ -2303,7 +2303,7 @@ _08073630:
mov r9, r3
cmp r4, 0
beq _08073642
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _08073648
@ -3842,7 +3842,7 @@ _08074272:
adds r1, r6, 0
movs r2, 0x6
bl sub_8075198
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
ldr r1, =0x06010400
adds r5, r4, r1
@ -4013,7 +4013,7 @@ draw_status_ailment_maybe: @ 80743F8
movs r1, 0x37
bl GetMonData
adds r4, r0, 0
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
movs r3, 0x12
mov r8, r3
@ -4210,7 +4210,7 @@ _080745B8:
ldr r2, =0x04000018
adds r0, r6, 0
bl CpuSet
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@ -4468,8 +4468,8 @@ sub_80747D8: @ 80747D8
.pool
thumb_func_end sub_80747D8
thumb_func_start healthbar_draw_field_maybe
healthbar_draw_field_maybe: @ 8074860
thumb_func_start UpdateHealthboxAttribute
UpdateHealthboxAttribute: @ 8074860
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@ -4492,7 +4492,7 @@ healthbar_draw_field_maybe: @ 8074860
mov r9, r0
cmp r7, 0
bne _0807489C
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _0807489C
@ -4581,7 +4581,7 @@ _08074914:
movs r3, 0
bl sub_8074AA0
_08074948:
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
mov r10, r0
@ -4742,7 +4742,7 @@ _08074A8E:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end healthbar_draw_field_maybe
thumb_func_end UpdateHealthboxAttribute
thumb_func_start sub_8074AA0
sub_8074AA0: @ 8074AA0

View File

@ -3193,7 +3193,7 @@ _0817E63A:
adds r1, r4, 0
ldr r2, [sp]
ldr r3, [sp, 0x4]
bl sub_80ECB00
bl PutBattleUpdateOnTheAir
b _0817E670
.pool
_0817E65C:
@ -3205,7 +3205,7 @@ _0817E65C:
adds r1, r4, 0
ldr r2, [sp]
ldr r3, [sp, 0x4]
bl sub_80ECB00
bl PutBattleUpdateOnTheAir
_0817E670:
add sp, 0x20
pop {r3-r5}

View File

@ -2407,7 +2407,7 @@ _080B1AD8:
.pool
_080B1AEC:
bl sub_80B1C7C
bl box_related_two__2
bl ShowFieldMessage
_080B1AF4:
pop {r0}
bx r0
@ -2468,7 +2468,7 @@ _080B1B56:
special_trainer_unable_to_battle: @ 80B1B60
push {lr}
bl sub_80B1D18
bl box_related_two__2
bl ShowFieldMessage
pop {r0}
bx r0
thumb_func_end special_trainer_unable_to_battle

View File

@ -1795,7 +1795,7 @@ _08162ED8:
adds r0, 0xE4
ldrb r2, [r0]
adds r0, r6, 0
bl sub_81DB5E8
bl TVShowConvertInternationalString
b _08162F62
.pool
_08162F00:
@ -1835,7 +1835,7 @@ _08162F3E:
adds r1, r0, 0
adds r0, r6, 0
adds r2, r4, 0
bl sub_81DB5E8
bl TVShowConvertInternationalString
b _08162F62
.pool
_08162F5C:
@ -5016,7 +5016,7 @@ _08164B04:
lsls r0, 2
adds r0, r1
ldr r0, [r0]
bl box_related_two__2
bl ShowFieldMessage
b _08164B54
.pool
_08164B28:
@ -5040,7 +5040,7 @@ _08164B28:
lsls r1, 2
adds r1, r0
ldr r0, [r1]
bl box_related_two__2
bl ShowFieldMessage
_08164B54:
add sp, 0x8
pop {r3-r5}
@ -5673,7 +5673,7 @@ _0816508C:
bl SetMonData
ldr r0, [r7]
adds r0, r4
bl sub_80EE5A4
bl GetRibbonCount
strb r0, [r5, 0x1]
_081650D4:
adds r5, 0x4

View File

@ -8568,7 +8568,7 @@ sub_8083F94: @ 8083F94
ldrb r0, [r5, 0x12]
str r0, [sp]
adds r0, r7, 0
bl sub_80ECC04
bl Put3CheersForPokeblocksOnTheAir
lsls r0, 24
cmp r0, 0
bne _080840BA
@ -8617,7 +8617,7 @@ _08084058:
ldrb r0, [r5, 0x12]
str r0, [sp]
adds r0, r7, 0
bl sub_80ECC04
bl Put3CheersForPokeblocksOnTheAir
lsls r0, 24
cmp r0, 0
beq _080840C4

View File

@ -2297,7 +2297,7 @@ _080B3750:
b _080B37CC
_080B375A:
ldr r0, =gUnknown_08278091
bl box_related_two__2
bl ShowFieldMessage
movs r0, 0x1
strh r0, [r5, 0x8]
b _080B37CC

View File

@ -1525,7 +1525,7 @@ sub_80D8490: @ 80D8490
movs r6, 0
ldr r0, =gUnknown_02039F25
mov r8, r0
ldr r2, =gUnknown_02039E1E
ldr r2, =gUnknown_02039E00 + 30
mov r10, r2
ldr r7, =gUnknown_02039F34
_080D84B8:
@ -2624,7 +2624,7 @@ _080D8EF2:
bl sub_80DB89C
ldr r0, =gStringVar1
lsls r1, r6, 6
ldr r2, =gUnknown_02039E02
ldr r2, =gUnknown_02039E00 + 2
adds r1, r2
bl StringCopy
mov r2, r9
@ -3562,7 +3562,7 @@ _080D96D4:
bl sub_80DB89C
ldr r0, =gStringVar1
lsls r1, r6, 6
ldr r2, =gUnknown_02039E02
ldr r2, =gUnknown_02039E00 + 2
adds r1, r2
bl StringCopy
ldr r4, =gStringVar4
@ -3671,7 +3671,7 @@ _080D97DC:
bl sub_80DB89C
ldr r0, =gStringVar1
lsls r1, r6, 6
ldr r2, =gUnknown_02039E02
ldr r2, =gUnknown_02039E00 + 2
adds r1, r2
bl StringCopy
ldr r4, =gStringVar4
@ -3809,7 +3809,7 @@ _080D9904:
bl sub_80DB89C
ldr r0, =gStringVar1
lsls r1, r6, 6
ldr r2, =gUnknown_02039E02
ldr r2, =gUnknown_02039E00 + 2
adds r1, r2
bl StringCopy
ldr r4, =gStringVar4
@ -4010,7 +4010,7 @@ _080D9AD2:
bl sub_80DB89C
ldr r0, =gStringVar1
lsls r1, r6, 6
ldr r2, =gUnknown_02039E02
ldr r2, =gUnknown_02039E00 + 2
adds r1, r2
bl StringCopy
ldr r4, =gUnknown_02039F34
@ -4381,7 +4381,7 @@ _080D9DD4:
lsls r1, 20
lsrs r1, 29
lsls r1, 6
ldr r4, =gUnknown_02039E02
ldr r4, =gUnknown_02039E00 + 2
adds r1, r4
bl StringCopy
ldr r0, =gStringVar1
@ -4476,7 +4476,7 @@ _080D9EDC:
bl sub_80DC9B4
ldr r0, =gStringVar1
lsls r1, r6, 6
ldr r2, =gUnknown_02039E02
ldr r2, =gUnknown_02039E00 + 2
adds r1, r2
bl StringCopy
ldr r0, =gStringVar2
@ -4626,7 +4626,7 @@ _080DA038:
bl sub_80DB89C
ldr r0, =gStringVar1
lsls r1, r6, 6
ldr r2, =gUnknown_02039E02
ldr r2, =gUnknown_02039E00 + 2
adds r1, r2
bl StringCopy
ldr r4, =gStringVar4
@ -5096,7 +5096,7 @@ sub_80DA3CC: @ 80DA3CC
ldr r0, =gStringVar1
ldrb r1, [r5]
lsls r1, 6
ldr r2, =gUnknown_02039E02
ldr r2, =gUnknown_02039E00 + 2
adds r1, r2
bl StringCopy
ldr r5, =gStringVar4
@ -5360,7 +5360,7 @@ _080DA600:
lsls r0, 2
adds r0, r2
ldrh r0, [r0, 0x8]
bl sub_80ED03C
bl BravoTrainerPokemonProfile_BeforeInterview1
b _080DA668
.pool
_080DA65C:
@ -5667,7 +5667,7 @@ _080DA8F2:
ldr r5, =gUnknown_02039F25
ldrb r0, [r5]
lsls r0, 6
ldr r4, =gUnknown_02039E0D
ldr r4, =gUnknown_02039E00 + 13
adds r0, r4
mov r1, sp
movs r2, 0x8
@ -6451,7 +6451,7 @@ sub_80DAF1C: @ 80DAF1C
add r0, sp, 0x4
bl StringCopy
lsls r1, r5, 6
ldr r0, =gUnknown_02039E0D
ldr r0, =gUnknown_02039E00 + 13
adds r1, r0
add r0, sp, 0x4
bl StringAppend
@ -6508,7 +6508,7 @@ sub_80DAFA0: @ 80DAFA0
lsls r1, 24
lsrs r1, 24
lsls r0, r4, 6
ldr r2, =gUnknown_02039E02
ldr r2, =gUnknown_02039E00 + 2
adds r0, r2
bl sub_80DAED4
ldr r0, =gUnknown_02039F26
@ -11173,7 +11173,7 @@ sub_80DD45C: @ 80DD45C
lsrs r6, r1, 24
ldr r0, =gStringVar1
lsls r1, r4, 6
ldr r2, =gUnknown_02039E02
ldr r2, =gUnknown_02039E00 + 2
adds r1, r2
bl StringCopy
ldr r0, =gStringVar2
@ -15385,21 +15385,21 @@ _080DF6AE:
beq _080DF6AE
_080DF6C4:
mov r0, r9
bl sub_80ECDA4
bl ContestLiveUpdates_BeforeInterview_1
mov r0, r10
bl sub_80ECDF4
bl ContestLiveUpdates_BeforeInterview_2
ldr r5, [sp, 0x4]
lsrs r0, r5, 24
bl sub_80ECE34
bl ContestLiveUpdates_BeforeInterview_3
ldr r0, =gUnknown_02039F34
ldr r0, [r0]
ldr r0, [r0, 0x1C]
add r0, r8
ldrh r0, [r0, 0xA]
bl sub_80ECE74
bl ContestLiveUpdates_BeforeInterview_4
adds r0, r4, 0
adds r1, r6, 0
bl sub_80ECEB4
bl ContestLiveUpdates_BeforeInterview_5
_080DF6EE:
add sp, 0xC
pop {r3-r5}

View File

@ -144,7 +144,7 @@ sub_81563B0: @ 81563B0
beq _081564A0
adds r7, r5, 0
ldr r6, =gAIScriptPtr
ldr r0, =gUnknown_02039E1E
ldr r0, =gUnknown_02039E00 + 30
mov r8, r0
_081563CC:
ldr r0, [r7]
@ -5030,7 +5030,7 @@ sub_8158948: @ 8158948
push {r4-r6,lr}
movs r5, 0
movs r4, 0
ldr r6, =gUnknown_02039E1E
ldr r6, =gUnknown_02039E00 + 30
_08158950:
lsls r1, r4, 1
ldr r0, =gUnknown_02039F34

View File

@ -1239,7 +1239,7 @@ _080F6334:
ldr r1, =gUnknown_02039F20
ldrb r0, [r1]
ldr r7, =gStringVar1
ldr r2, =gUnknown_02039E0D
ldr r2, =gUnknown_02039E00 + 13
mov r8, r2
cmp r0, 0
beq _080F636E
@ -1750,7 +1750,7 @@ task_repel: @ 80F67C4
ldrb r0, [r0]
adds r0, r1
ldrb r0, [r0]
bl sub_80ED090
bl BravoTrainerPokemonProfile_BeforeInterview2
_080F67E6:
movs r0, 0
str r0, [sp]
@ -4785,7 +4785,7 @@ _080F8074:
ldrb r0, [r6]
muls r0, r5
adds r0, r4
bl sub_80EE5A4
bl GetRibbonCount
lsls r0, 24
lsrs r0, 24
cmp r0, 0x4
@ -4834,7 +4834,7 @@ _080F80E2:
ldrb r0, [r7]
muls r0, r6
adds r0, r5
bl sub_80EE5A4
bl GetRibbonCount
lsls r0, 24
lsrs r0, 24
cmp r0, 0x4
@ -4883,7 +4883,7 @@ _080F814E:
ldrb r0, [r7]
muls r0, r6
adds r0, r5
bl sub_80EE5A4
bl GetRibbonCount
lsls r0, 24
lsrs r0, 24
cmp r0, 0x4
@ -4926,7 +4926,7 @@ _080F8190:
ldrb r0, [r7]
muls r0, r6
adds r0, r5
bl sub_80EE5A4
bl GetRibbonCount
lsls r0, 24
lsrs r0, 24
cmp r0, 0x4
@ -4969,7 +4969,7 @@ _080F81F8:
ldrb r0, [r7]
muls r0, r6
adds r0, r5
bl sub_80EE5A4
bl GetRibbonCount
lsls r0, 24
lsrs r0, 24
cmp r0, 0x4
@ -4994,7 +4994,7 @@ sub_80F8264: @ 80F8264
ldr r0, =gSpecialVar_0x8006
ldrh r1, [r0]
lsls r1, 6
ldr r0, =gUnknown_02039E0D
ldr r0, =gUnknown_02039E00 + 13
adds r1, r0
adds r0, r4, 0
bl StringCopy
@ -5013,7 +5013,7 @@ sub_80F8290: @ 80F8290
ldr r1, =gSpecialVar_0x8006
ldrh r1, [r1]
lsls r1, 6
ldr r2, =gUnknown_02039E02
ldr r2, =gUnknown_02039E00 + 2
adds r1, r2
bl StringCopy
pop {r0}
@ -5104,7 +5104,7 @@ sub_80F834C: @ 80F834C
ldr r2, =gUnknown_02039F20
ldrb r0, [r2]
ldr r4, =gStringVar3
ldr r3, =gUnknown_02039E0D
ldr r3, =gUnknown_02039E00 + 13
cmp r0, 0
beq _080F836E
_080F835C:
@ -5137,7 +5137,7 @@ sub_80F8390: @ 80F8390
ldr r2, =gUnknown_02039F20
ldrb r0, [r2]
ldr r4, =gStringVar1
ldr r3, =gUnknown_02039E02
ldr r3, =gUnknown_02039E00 + 2
cmp r0, 0
beq _080F83B2
_080F83A0:
@ -5578,7 +5578,7 @@ sub_80F8714: @ 80F8714
b _080F877E
.pool
_080F8748:
ldr r5, =gUnknown_02039E02
ldr r5, =gUnknown_02039E00 + 2
movs r4, 0x3
_080F874C:
adds r0, r5, 0

View File

@ -565,7 +565,7 @@ _0811A72C:
ldr r4, =gStringVar3
adds r0, r4, 0
movs r1, 0x2
bl sub_811F88C
bl InitializeEasyChatWordArray
b _0811A7C2
.pool
_0811A73C:
@ -3704,7 +3704,7 @@ sub_811BDF0: @ 811BDF0
ldrb r2, [r0]
mov r0, sp
adds r1, r5, 0
bl sub_81DB5E8
bl TVShowConvertInternationalString
movs r0, 0
mov r1, sp
bl sub_81AFC0C
@ -11109,8 +11109,8 @@ _0811F886:
bx r1
thumb_func_end sub_811F860
thumb_func_start sub_811F88C
sub_811F88C: @ 811F88C
thumb_func_start InitializeEasyChatWordArray
InitializeEasyChatWordArray: @ 811F88C
push {lr}
adds r2, r0, 0
lsls r1, 16
@ -11133,7 +11133,7 @@ _0811F8AE:
pop {r0}
bx r0
.pool
thumb_func_end sub_811F88C
thumb_func_end InitializeEasyChatWordArray
thumb_func_start sub_811F8BC
sub_811F8BC: @ 811F8BC

View File

@ -108,8 +108,8 @@ _080981E4:
.pool
thumb_func_end task_del_textbox
thumb_func_start box_related_two__2
box_related_two__2: @ 80981EC
thumb_func_start ShowFieldMessage
ShowFieldMessage: @ 80981EC
push {r4,lr}
adds r1, r0, 0
ldr r4, =gUnknown_020375BC
@ -130,7 +130,7 @@ _0809820E:
pop {r4}
pop {r1}
bx r1
thumb_func_end box_related_two__2
thumb_func_end ShowFieldMessage
thumb_func_start sub_8098214
sub_8098214: @ 8098214

View File

@ -217,7 +217,7 @@ _080F96FC:
ldrb r0, [r4, 0x2]
bl sub_80F95C0
ldr r0, =gText_PkmnFainted3
bl box_related_two__2
bl ShowFieldMessage
ldrh r0, [r4]
adds r0, 0x1
strh r0, [r4]

View File

@ -389,8 +389,8 @@ _081DB5E4:
bx r0
thumb_func_end sub_81DB5AC
thumb_func_start sub_81DB5E8
sub_81DB5E8: @ 81DB5E8
thumb_func_start TVShowConvertInternationalString
TVShowConvertInternationalString: @ 81DB5E8
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r2, 0
@ -403,7 +403,7 @@ sub_81DB5E8: @ 81DB5E8
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81DB5E8
thumb_func_end TVShowConvertInternationalString
thumb_func_start sub_81DB604
sub_81DB604: @ 81DB604

View File

@ -1742,8 +1742,8 @@ _0800A298:
.pool
thumb_func_end sub_800A23C
thumb_func_start sub_800A2A4
sub_800A2A4: @ 800A2A4
thumb_func_start GetLinkPlayerTrainerId
GetLinkPlayerTrainerId: @ 800A2A4
lsls r0, 24
lsrs r0, 24
ldr r2, =gLinkPlayers
@ -1755,7 +1755,7 @@ sub_800A2A4: @ 800A2A4
ldr r0, [r1]
bx lr
.pool
thumb_func_end sub_800A2A4
thumb_func_end GetLinkPlayerTrainerId
thumb_func_start sub_800A2BC
sub_800A2BC: @ 800A2BC

View File

@ -1392,7 +1392,7 @@ _08120BB0:
movs r0, 0xFF
strb r0, [r7, 0x7]
mov r0, sp
bl sub_8009228
bl IsStringJapanese
cmp r0, 0
beq _08120BF8
mov r0, sp
@ -1458,7 +1458,7 @@ _08120C48:
muls r0, r5
adds r0, 0x5
adds r0, r6, r0
bl sub_8009228
bl IsStringJapanese
cmp r0, 0
beq _08120C5E
mov r0, r8
@ -1480,7 +1480,7 @@ _08120C6A:
movs r5, 0x3
_08120C74:
adds r0, r6, 0
bl sub_8009228
bl IsStringJapanese
cmp r0, 0
beq _08120C84
mov r1, r8
@ -1569,7 +1569,7 @@ _08120CF2:
mov r1, r8
strb r0, [r1, 0x7]
mov r0, sp
bl sub_8009228
bl IsStringJapanese
cmp r0, 0
beq _08120D1A
movs r0, 0x1
@ -2205,7 +2205,7 @@ sub_8121178: @ 8121178
bl ConvertInternationalString
mov r0, r8
bl sub_8120EC0
bl box_related_two__2
bl ShowFieldMessage
pop {r3}
mov r8, r3
pop {r4-r6}

View File

@ -15872,7 +15872,7 @@ sub_81B8958: @ 81B8958
thumb_func_start sub_81B8984
sub_81B8984: @ 81B8984
push {lr}
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _081B8994
@ -16222,7 +16222,7 @@ _081B8CB0:
strb r0, [r6, 0x2]
b _081B8D58
_081B8CBE:
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _081B8CFC
@ -16382,7 +16382,7 @@ _081B8DE2:
strb r0, [r5, 0x2]
b _081B8E72
_081B8DF0:
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _081B8E28

View File

@ -1211,7 +1211,7 @@ _08075DD4:
cmp r5, r0
bne _08075E56
_08075E00:
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08075E56
@ -1243,7 +1243,7 @@ _08075E4C:
movs r2, 0x80
bl m4aMPlayVolumeControl
_08075E56:
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08075E70
@ -1815,7 +1815,7 @@ _080762F8:
ldrb r0, [r5, 0x6]
strh r0, [r5, 0x3A]
strh r1, [r5, 0x2E]
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08076358
@ -1888,7 +1888,7 @@ sub_8076398: @ 8076398
ble _080763EC
movs r0, 0
strh r0, [r5, 0x2E]
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _080763E8

View File

@ -6514,7 +6514,7 @@ sub_81C3220: @ 81C3220
b _081C3282
.pool
_081C326C:
bl sub_80F0020
bl GetPlayerIDAsU32
adds r4, r0, 0
ldr r0, =0x0000ffff
ands r4, r0

View File

@ -1341,7 +1341,7 @@ _080E7856:
.pool
_080E7868:
movs r0, 0
bl sub_800A2A4
bl GetLinkPlayerTrainerId
adds r2, r0, 0
movs r0, 0x1
ands r2, r0
@ -1362,7 +1362,7 @@ _080E7880:
.pool
_080E7894:
movs r0, 0
bl sub_800A2A4
bl GetLinkPlayerTrainerId
movs r1, 0x9
bl __umodsi3
adds r2, r0, 0
@ -1523,7 +1523,7 @@ _080E79CE:
adds r4, r1, 0
adds r4, 0x20
adds r0, r4, 0
bl sub_8009228
bl IsStringJapanese
cmp r0, 0
beq _080E79F2
adds r0, r4, 0
@ -1878,7 +1878,7 @@ _080E7C9A:
bne _080E7CEE
adds r0, r5, 0
adds r0, 0x24
bl sub_8009228
bl IsStringJapanese
cmp r0, 0
beq _080E7CBA
adds r0, r5, 0
@ -1901,7 +1901,7 @@ _080E7CC6:
adds r4, r0, 0
adds r0, r5, 0
adds r0, 0x2C
bl sub_8009228
bl IsStringJapanese
cmp r0, 0
beq _080E7CE2
ldrb r0, [r4]

File diff suppressed because it is too large Load Diff

View File

@ -5,8 +5,6 @@
.text
thumb_func_start EmitCmd13
EmitCmd13: @ 8033E10
push {lr}

View File

@ -4121,7 +4121,7 @@ _081377BC:
add r2, sp, 0x18
bl SetMonData
adds r0, r4, 0
bl sub_80EE5A4
bl GetRibbonCount
strb r0, [r5, 0x1]
movs r7, 0x1
_0813780A:
@ -4629,7 +4629,7 @@ sub_8137C10: @ 8137C10
ldr r0, =gSpecialVar_0x8004
ldrh r0, [r0]
bl sub_8137A98
bl box_related_two__2
bl ShowFieldMessage
pop {r0}
bx r0
.pool
@ -5405,7 +5405,7 @@ sub_8138240: @ 8138240
movs r4, 0
cmp r4, r5
bcs _0813828A
ldr r0, =gUnknown_0858D144
ldr r0, =gTVStringVarPtrs
mov r8, r0
_08138262:
cmp r7, r4
@ -6378,7 +6378,7 @@ sub_8138AA4: @ 8138AA4
sub_8138AC0: @ 8138AC0
push {lr}
ldr r0, =gStringVar4
bl box_related_two__2
bl ShowFieldMessage
pop {r0}
bx r0
.pool
@ -6537,7 +6537,7 @@ _08138BF6:
thumb_func_start sub_8138C04
sub_8138C04: @ 8138C04
push {r4,lr}
bl sub_8139688
bl GetIdxOfFirstPartyMemberThatIsNotAnEgg
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
@ -7060,7 +7060,7 @@ sub_8138FEC: @ 8138FEC
thumb_func_start sub_8139004
sub_8139004: @ 8139004
push {lr}
bl sub_8139688
bl GetIdxOfFirstPartyMemberThatIsNotAnEgg
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
@ -7084,7 +7084,7 @@ _0813902A:
thumb_func_start sub_8139030
sub_8139030: @ 8139030
push {lr}
bl sub_8139688
bl GetIdxOfFirstPartyMemberThatIsNotAnEgg
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
@ -7108,7 +7108,7 @@ _08139056:
thumb_func_start sub_813905C
sub_813905C: @ 813905C
push {lr}
bl sub_8139688
bl GetIdxOfFirstPartyMemberThatIsNotAnEgg
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
@ -7132,7 +7132,7 @@ _08139082:
thumb_func_start sub_8139088
sub_8139088: @ 8139088
push {lr}
bl sub_8139688
bl GetIdxOfFirstPartyMemberThatIsNotAnEgg
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
@ -7156,7 +7156,7 @@ _081390AE:
thumb_func_start sub_81390B4
sub_81390B4: @ 81390B4
push {lr}
bl sub_8139688
bl GetIdxOfFirstPartyMemberThatIsNotAnEgg
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
@ -7295,7 +7295,7 @@ RemoveScriptFieldObject: @ 81391AC
thumb_func_start sub_81391D0
sub_81391D0: @ 81391D0
push {lr}
bl sub_8139688
bl GetIdxOfFirstPartyMemberThatIsNotAnEgg
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
@ -7479,7 +7479,7 @@ _08139342:
thumb_func_start sub_8139348
sub_8139348: @ 8139348
push {lr}
bl sub_8139688
bl GetIdxOfFirstPartyMemberThatIsNotAnEgg
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
@ -7507,7 +7507,7 @@ sub_8139370: @ 8139370
movs r1, 0x1
mov r0, sp
strb r1, [r0]
bl sub_8139688
bl GetIdxOfFirstPartyMemberThatIsNotAnEgg
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
@ -7519,7 +7519,7 @@ sub_8139370: @ 8139370
mov r2, sp
bl SetMonData
adds r0, r4, 0
bl sub_80EE5A4
bl GetRibbonCount
lsls r0, 24
lsrs r0, 24
cmp r0, 0x4
@ -7538,7 +7538,7 @@ _081393B6:
thumb_func_start sub_81393C8
sub_81393C8: @ 81393C8
push {lr}
bl sub_8139688
bl GetIdxOfFirstPartyMemberThatIsNotAnEgg
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
@ -7882,8 +7882,8 @@ _08139684:
bx r0
thumb_func_end sub_8139668
thumb_func_start sub_8139688
sub_8139688: @ 8139688
thumb_func_start GetIdxOfFirstPartyMemberThatIsNotAnEgg
GetIdxOfFirstPartyMemberThatIsNotAnEgg: @ 8139688
push {r4-r6,lr}
bl CalculatePlayerPartyCount
lsls r0, 24
@ -7926,7 +7926,7 @@ _081396D8:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_8139688
thumb_func_end GetIdxOfFirstPartyMemberThatIsNotAnEgg
thumb_func_start sub_81396E0
sub_81396E0: @ 81396E0
@ -8050,7 +8050,7 @@ sub_81397C4: @ 81397C4
cmp r1, r0
bls _081397E0
movs r0, 0
bl sub_80EF340
bl TV_PrintIntToStringVar
b _08139862
.pool
_081397E0:
@ -9094,7 +9094,7 @@ _0813A062:
lsls r0, 2
adds r0, r7
ldr r0, [r0]
bl box_related_two__2
bl ShowFieldMessage
pop {r4-r7}
pop {r0}
bx r0
@ -9996,7 +9996,7 @@ _0813A7C6:
lsrs r0, 22
adds r0, r1
ldr r0, [r0]
bl box_related_two__2
bl ShowFieldMessage
pop {r0}
bx r0
.pool
@ -10036,7 +10036,7 @@ sub_813A820: @ 813A820
lsls r0, r4, 2
adds r0, r1
ldr r0, [r0]
bl box_related_two__2
bl ShowFieldMessage
ldr r0, =0x00004031
adds r1, r4, 0
bl VarSet
@ -10056,7 +10056,7 @@ sub_813A854: @ 813A854
lsrs r0, 14
adds r0, r4
ldr r0, [r0]
bl box_related_two__2
bl ShowFieldMessage
pop {r4}
pop {r0}
bx r0

View File

@ -1928,15 +1928,15 @@ _080A6B1A:
bx r1
thumb_func_end sub_80A6A90
thumb_func_start battle_type_is_double
battle_type_is_double: @ 80A6B20
thumb_func_start IsDoubleBattle
IsDoubleBattle: @ 80A6B20
ldr r0, =gBattleTypeFlags
ldr r0, [r0]
movs r1, 0x1
ands r0, r1
bx lr
.pool
thumb_func_end battle_type_is_double
thumb_func_end IsDoubleBattle
thumb_func_start sub_80A6B30
sub_80A6B30: @ 80A6B30
@ -5807,7 +5807,7 @@ _080A8946:
bl sub_80A5C6C
lsls r0, 24
lsrs r7, r0, 24
bl battle_type_is_double
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _080A8998

View File

@ -3267,7 +3267,7 @@ s67_execute_box: @ 809ABD4
bne _0809ABE2
ldr r0, [r4, 0x64]
_0809ABE2:
bl box_related_two__2
bl ShowFieldMessage
movs r0, 0
pop {r4}
pop {r1}
@ -3793,7 +3793,7 @@ sBD_virtual_message: @ 809AFA0
ldr r1, =gUnknown_020375C4
ldr r1, [r1]
subs r0, r1
bl box_related_two__2
bl ShowFieldMessage
movs r0, 0
pop {r1}
bx r1
@ -3841,7 +3841,7 @@ s7E_load_first_pokenames: @ 809AFFC
lsls r2, 2
adds r2, r0
ldr r4, [r2]
bl sub_8139688
bl GetIdxOfFirstPartyMemberThatIsNotAnEgg
lsls r0, 24
lsrs r0, 24
movs r1, 0x64

View File

@ -222,7 +222,7 @@ sub_80F8970: @ 80F8970
mov r12, r0
ldr r1, =gSpecialVar_0x8006
mov r9, r1
ldr r2, =gUnknown_02039E02
ldr r2, =gUnknown_02039E00 + 2
mov r10, r2
mov r2, r12
mov r1, sp
@ -625,7 +625,7 @@ sub_80F8C7C: @ 80F8C7C
ldrb r0, [r6]
muls r0, r5
adds r0, r4
bl sub_80EE5A4
bl GetRibbonCount
lsls r0, 24
lsrs r0, 24
cmp r0, 0x4

16938
asm/tv.s

File diff suppressed because it is too large Load Diff

4
common_syms/tv.txt Normal file
View File

@ -0,0 +1,4 @@
sCurTVShowSlot
sTV_SecretBaseVisitMovesTemp
sTV_DecorationsBuffer
sTV_SecretBaseVisitMonsTemp

View File

@ -4497,6 +4497,7 @@ gUnknown_08305D0C:: @ 8305D0C
.4byte gUnknown_08305CFC
.4byte gUnknown_08305D04
@ 8305D2C
.include "data/graphics/trainers/back_pic_coords.inc"

View File

@ -822,7 +822,15 @@ gUnknown_0827EE09:: @ 27EE09
.incbin "baserom.gba", 0x27ee09, 0x2
gUnknown_0827EE0B:: @ 827EE0B
.incbin "baserom.gba", 0x27ee0b, 0x118fa
.incbin "baserom.gba", 0x27ee0b, 0x46a
.include "data/text/tv.inc"
.incbin "baserom.gba", 0x0028c7e9, 0x90f
.include "data/text/pokemon_news.inc"
.incbin "baserom.gba", 0x28e066, 0x269f
gUnknown_08290705:: @ 8290705
.incbin "baserom.gba", 0x290705, 0xeb

165
data/text/pokemon_news.inc Normal file
View File

@ -0,0 +1,165 @@
gPokeNewsTextSlateport_Upcoming:: @ 0828D0F8
.string "Greetings!\n"
.string "Its time for POKéMON NEWS.\p"
.string "SLATEPORTs most popular kind of guy,\n"
.string "the ENERGY GURU, is in the news again!\p"
.string "He promises to, “Stupendously go for\n"
.string "it in just this many days: {STR_VAR_1}!”\p"
.string "While he refused to elaborate on what\n"
.string "he will stupendously go for, the\l"
.string "ENERGY GURU advised, “Save up your\l"
.string "money. Thatll be good…”\p"
.string "It sounds like a trip to SLATEPORT\n"
.string "would be well worth your while that day.\p"
.string "Thats the news on POKéMON NEWS.$"
gPokeNewsTextSlateport_Ongoing:: @ 0828D2A1
.string "Greetings!\n"
.string "Its time for POKéMON NEWS.\p"
.string "This is the news youve all been\n"
.string "waiting for!\p"
.string "SLATEPORTS ENERGY GURU is going\n"
.string "for it stupendously in the MARKET!\p"
.string "He promises unbeatable bargain\n"
.string "prices on CALCIUM and PROTEIN!\p"
.string "A trip to SLATEPORT CITY sounds\n"
.string "worthwhile. Why not visit and shop\l"
.string "to your hearts content?\p"
.string "Thats the news on POKéMON NEWS.$"
gPokeNewsTextSlateport_Ending:: @ 0828D3F5
.string "Greetings!\n"
.string "Its time for POKéMON NEWS.\p"
.string "This is the news youve all been\n"
.string "waiting for!\p"
.string "SLATEPORTS ENERGY GURU is going\n"
.string "for it stupendously in the MARKET!\p"
.string "He promises unbeatable bargain\n"
.string "prices on CALCIUM and PROTEIN!\p"
.string "According to the ENERGY GURU, he\n"
.string "still has ample merchandise left.\p"
.string "Why not visit SLATEPORT CITY for\n"
.string "a most enjoyable shopping trip?\p"
.string "Thats the news on POKéMON NEWS.$"
gPokeNewsTextGameCorner_Upcoming:: @ 0828D571
.string "Greetings!\n"
.string "Its time for POKéMON NEWS.\p"
.string "Its approaching!\n"
.string "Its finally coming!\p"
.string "The GAME CORNERs service day will be\n"
.string "here in just this many days: {STR_VAR_1}!\p"
.string "Even those who are usually unlucky\n"
.string "may be lucky on this particular day!\p"
.string "Thats the news on POKéMON NEWS.$"
gPokeNewsTextGameCorner_Ongoing:: @ 0828D66F
.string "Greetings!\n"
.string "Its time for POKéMON NEWS.\p"
.string "Its here!\n"
.string "Its finally arrived!\p"
.string "GAME CORNERs service day has finally\n"
.string "arrived!\p"
.string "Could you be lucky at the SLOTS \n"
.string "and ROULETTE?\p"
.string "The location is MAUVILLE CITY.\n"
.string "This is the place!\p"
.string "Thats the news on POKéMON NEWS.$"
gPokeNewsTextGameCorner_Ending:: @ 0828D768
.string "Greetings!\n"
.string "Its time for POKéMON NEWS.\p"
.string "Its here!\n"
.string "Its finally arrived!\p"
.string "GAME CORNERs service day has finally\n"
.string "arrived!\p"
.string "Could you be lucky at the SLOTS\n"
.string "and ROULETTE?\p"
.string "Time is limited and has almost run out.\n"
.string "The location is MAUVILLE CITY.\p"
.string "Thats the news on POKéMON NEWS.$"
gPokeNewsTextLilycove_Upcoming:: @ 0828D875
.string "Greetings!\n"
.string "Its time for POKéMON NEWS.\p"
.string "Weve just received wonderful news\n"
.string "from LILYCOVE DEPARTMENT STORE.\p"
.string "The DEPARTMENT STOREs clear-out sale\n"
.string "will be in just this many days: {STR_VAR_1}!\p"
.string "That thingamajig or that doodad that\n"
.string "youve always wanted could be yours!\p"
.string "Thats the news on POKéMON NEWS.$"
gPokeNewsTextLilycove_Ongoing:: @ 0828D994
.string "Greetings!\n"
.string "Its time for POKéMON NEWS.\p"
.string "This is the news youve all been\n"
.string "waiting for!\p"
.string "LILYCOVE DEPARTMENT STOREs clear-out\n"
.string "sale has finally arrived!\p"
.string "All the thingamajigs and doodads that\n"
.string "youve always dreamt about…\p"
.string "You may be in for fateful encounters\n"
.string "with them all!\p"
.string "Thats the news on POKéMON NEWS.$"
gPokeNewsTextLilycove_Ending:: @ 0828DAC0
.string "Greetings!\n"
.string "Its time for POKéMON NEWS.\p"
.string "This is the news youve all been\n"
.string "waiting for!\p"
.string "LILYCOVE DEPARTMENT STOREs clear-out\n"
.string "sale has finally arrived!\p"
.string "All the thingamajigs and doodads that\n"
.string "youve always dreamt about…\p"
.string "You may be in for fateful encounters\n"
.string "with them all!\p"
.string "Thats the news on POKéMON NEWS.$"
gPokeNewsTextBlendMaster_Upcoming:: @ 0828DBEC
.string "Greetings!\n"
.string "Its time for POKéMON NEWS.\p"
.string "We have big news for everyone\n"
.string "involved in the making of {POKEBLOCK}S.\p"
.string "The legendary BLEND MASTER will be\n"
.string "appearing in LILYCOVE CITY with just\l"
.string "a mere {STR_VAR_1}-day wait to go!\p"
.string "The BLEND MASTER is said to be\n"
.string "the best in all HOENN when it comes to\l"
.string "spinning a BERRY BLENDER.\p"
.string "Those people who want to make great\n"
.string "{POKEBLOCK}S or see the MASTER in action\l"
.string "are urged to save their BERRIES.\p"
.string "Thats the news on POKéMON NEWS.$"
gPokeNewsTextBlendMaster_Ongoing:: @ 0828DD9E
.string "Greetings!\n"
.string "Its time for POKéMON NEWS.\p"
.string "We have big news for everyone\n"
.string "involved in the making of {POKEBLOCK}S.\p"
.string "The legendary BLEND MASTER has\n"
.string "finally appeared!\p"
.string "The BLEND MASTER is spinning\n"
.string "the BERRY BLENDER at the LILYCOVE\l"
.string "CONTEST HALL.\p"
.string "Those people who want to make great\n"
.string "{POKEBLOCK}S or see the MASTER in action\l"
.string "should hurry to LILYCOVE.\p"
.string "Thats the news on POKéMON NEWS.$"
gPokeNewsTextBlendMaster_Ending:: @ 0828DF05
.string "Greetings!\n"
.string "Its time for POKéMON NEWS.\p"
.string "Its incredible!\n"
.string "Too incredible, even!\p"
.string "The BERRY BLENDER is spinning at\n"
.string "a dizzying pace!\p"
.string "The BLEND MASTER has lived up to\n"
.string "his reputation!\p"
.string "The BLEND MASTER will soon be\n"
.string "leaving LILYCOVE.\p"
.string "If you havent seen the MASTER in\n"
.string "action, dont waste this chance!\l"
.string "Head to LILYCOVE right now!\p"
.string "Thats the news on POKéMON NEWS.$"

2891
data/text/tv.inc Normal file

File diff suppressed because it is too large Load Diff

128
data/tv.s
View File

@ -1,128 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2, 0
gUnknown_0858D094:: @ 858D094
.incbin "baserom.gba", 0x58d094, 0x3c
gUnknown_0858D0D0:: @ 858D0D0
.incbin "baserom.gba", 0x58d0d0, 0xe
gUnknown_0858D0DE:: @ 858D0DE
.incbin "baserom.gba", 0x58d0de, 0xe
gUnknown_0858D0EC:: @ 858D0EC
.incbin "baserom.gba", 0x58d0ec, 0x1c
gUnknown_0858D108:: @ 858D108
.incbin "baserom.gba", 0x58d108, 0x14
gUnknown_0858D11C:: @ 858D11C
.incbin "baserom.gba", 0x58d11c, 0x14
gUnknown_0858D130:: @ 858D130
.incbin "baserom.gba", 0x58d130, 0x14
gUnknown_0858D144:: @ 858D144
.incbin "baserom.gba", 0x58d144, 0xc
gUnknown_0858D150:: @ 858D150
.incbin "baserom.gba", 0x58d150, 0x20
gUnknown_0858D170:: @ 858D170
.incbin "baserom.gba", 0x58d170, 0x18
gUnknown_0858D188:: @ 858D188
.incbin "baserom.gba", 0x58d188, 0x14
gUnknown_0858D19C:: @ 858D19C
.incbin "baserom.gba", 0x58d19c, 0x4
gUnknown_0858D1A0:: @ 858D1A0
.incbin "baserom.gba", 0x58d1a0, 0x30
gUnknown_0858D1D0:: @ 858D1D0
.incbin "baserom.gba", 0x58d1d0, 0x34
gUnknown_0858D204:: @ 858D204
.incbin "baserom.gba", 0x58d204, 0x24
gUnknown_0858D228:: @ 858D228
.incbin "baserom.gba", 0x58d228, 0x18
gUnknown_0858D240:: @ 858D240
.incbin "baserom.gba", 0x58d240, 0x3c
gUnknown_0858D27C:: @ 858D27C
.incbin "baserom.gba", 0x58d27c, 0x84
gUnknown_0858D300:: @ 858D300
.incbin "baserom.gba", 0x58d300, 0x20
gUnknown_0858D320:: @ 858D320
.incbin "baserom.gba", 0x58d320, 0x18
gUnknown_0858D338:: @ 858D338
.incbin "baserom.gba", 0x58d338, 0x4c
gUnknown_0858D384:: @ 858D384
.incbin "baserom.gba", 0x58d384, 0x10
gUnknown_0858D394:: @ 858D394
.incbin "baserom.gba", 0x58d394, 0x1c
gUnknown_0858D3B0:: @ 858D3B0
.incbin "baserom.gba", 0x58d3b0, 0x8
gUnknown_0858D3B8:: @ 858D3B8
.incbin "baserom.gba", 0x58d3b8, 0xc
gUnknown_0858D3C4:: @ 858D3C4
.incbin "baserom.gba", 0x58d3c4, 0x2c
gUnknown_0858D3F0:: @ 858D3F0
.incbin "baserom.gba", 0x58d3f0, 0x1c
gUnknown_0858D40C:: @ 858D40C
.incbin "baserom.gba", 0x58d40c, 0xc
gUnknown_0858D418:: @ 858D418
.incbin "baserom.gba", 0x58d418, 0x10
gUnknown_0858D428:: @ 858D428
.incbin "baserom.gba", 0x58d428, 0x34
gUnknown_0858D45C:: @ 858D45C
.incbin "baserom.gba", 0x58d45c, 0x38
gUnknown_0858D494:: @ 858D494
.incbin "baserom.gba", 0x58d494, 0x4
gUnknown_0858D498:: @ 858D498
.incbin "baserom.gba", 0x58d498, 0x1c
gUnknown_0858D4B4:: @ 858D4B4
.incbin "baserom.gba", 0x58d4b4, 0x30
gUnknown_0858D4E4:: @ 858D4E4
.incbin "baserom.gba", 0x58d4e4, 0x40
gUnknown_0858D524:: @ 858D524
.incbin "baserom.gba", 0x58d524, 0x4c
gUnknown_0858D570:: @ 858D570
.incbin "baserom.gba", 0x58d570, 0x24
gUnknown_0858D594:: @ 858D594
.incbin "baserom.gba", 0x58d594, 0xac
gUnknown_0858D640:: @ 858D640
.incbin "baserom.gba", 0x58d640, 0x2c
gUnknown_0858D66C:: @ 858D66C
.incbin "baserom.gba", 0x58d66c, 0x24
gUnknown_0858D690:: @ 858D690
.incbin "baserom.gba", 0x58d690, 0x20

View File

@ -80,6 +80,7 @@
#define BATTLE_PLAYER_TELEPORTED 0x5
#define BATTLE_POKE_FLED 0x6
#define BATTLE_CAUGHT 0x7
#define BATTLE_SAFARI_OUT_OF_BALLS 0x8
#define BATTLE_FORFEITED 0x9
#define BATTLE_OPPONENT_TELEPORTED 0xA
@ -530,11 +531,11 @@ struct BattleResults
u8 playerSwitchesCounter; // 0x2
u8 unk3; // 0x3
u8 unk4; // 0x4
u8 unk5_0:1; // 0x5 , 0x1
u8 unk5_1:1; // 0x5 , 0x2
u8 caughtMonBall:4; // 0x5 , 0x4/0x8/0x10/0x20
u8 unk5_6:1; // 0x5 , 0x40
u8 unk5_7:1; // 0x5 , 0x80
u8 unk5_0:1; // 0x5
u8 usedMasterBall:1; // 0x5
u8 caughtMonBall:4; // 0x5
u8 unk5_6:1; // 0x5
u8 unk5_7:1; // 0x5
u16 playerMon1Species; // 0x6
u8 playerMon1Name[11]; // 0x8
u8 battleTurnCounter; // 0x13
@ -547,7 +548,7 @@ struct BattleResults
u16 caughtMonSpecies; // 0x28
u8 caughtMonNick[10]; // 0x2A
u8 filler34[2];
u8 catchAttempts[12]; // 0x36
u8 catchAttempts[11]; // 0x36
};
extern struct BattleResults gBattleResults;
@ -813,8 +814,8 @@ struct BattleScripting
u8 atk6C_state;
u8 learnMoveState;
u8 field_20;
u8 field_21;
u8 field_22;
u8 reshowMainState;
u8 reshowHelperState;
u8 field_23;
u8 field_24;
u8 multiplayerId;
@ -844,9 +845,29 @@ void FreeBattleSpritesData(void);
void AllocateMonSpritesGfx(void);
void FreeMonSpritesGfx(void);
void BattleMusicStop(void);
void sub_805E990(struct Pokemon* mon, u8 bank);
void sub_805E990(struct Pokemon *mon, u8 bank);
void sub_805EF14(void);
bool8 BattleInitAllSprites(u8 *state1, u8 *state2);
void sub_805E350(void);
bool8 BattleLoadAllHealthBoxesGfx(u8 state);
void LoadAndCreateEnemyShadowSprites(void);
void SetBankEnemyShadowSpriteCallback(u8 bank, u16 species);
void BattleLoadPlayerMonSpriteGfx(struct Pokemon *mon, u8 bank);
void BattleLoadOpponentMonSpriteGfx(struct Pokemon *mon, u8 bank);
void BattleLoadSubstituteSpriteGfx(u8 bank, bool8 arg1);
enum
{
BACK_PIC_BRENDAN,
BACK_PIC_MAY,
BACK_PIC_RED,
BACK_PIC_LEAF,
BACK_PIC_RS_BRENDAN,
BACK_PIC_RS_MAY,
BACK_PIC_WALLY,
BACK_PIC_STEVEN
};
void LoadBackTrainerBankSpriteGfx(u8 backPicId, u8 bank);
// rom_80A5C6C
u8 GetBankSide(u8 bank);
@ -911,6 +932,10 @@ struct MonSpritesGfx
struct SpriteTemplate templates[4];
};
extern struct BattleSpritesGfx* gMonSpritesGfx;
extern u8 gBattleOutcome;
extern u16 gLastUsedItem;
extern u32 gBattleTypeFlags;
extern struct MonSpritesGfx* gMonSpritesGfxPtr;
#endif // GUARD_BATTLE_H

View File

@ -0,0 +1,28 @@
#ifndef GUARD_BATTLE_INTERFACE_H
#define GUARD_BATTLE_INTERFACE_H
enum
{
HEALTHBOX_ALL,
HEALTHBOX_CURRENT_HP,
HEALTHBOX_MAX_HP,
HEALTHBOX_LEVEL,
HEALTHBOX_NICK,
HEALTHBOX_HEALTH_BAR,
HEALTHBOX_EXP_BAR,
HEALTHBOX_7,
HEALTHBOX_8,
HEALTHBOX_STATUS_ICON,
HEALTHBOX_SAFARI_ALL_TEXT,
HEALTHBOX_SAFARI_BALLS_TEXT
};
u8 CreateBankHealthboxSprites(u8 bank);
u8 CreateSafariPlayerHealthboxSprites(void);
void SetBankHealthboxSpritePos(u8 bank);
void SetHealthboxSpriteVisible(u8 healthboxSpriteId);
void SetHealthboxSpriteInvisible(u8 healthboxSpriteId);
void UpdateHealthboxAttribute(u8 healthboxSpriteId, struct Pokemon *mon, u8 elementId);
void nullsub_30(u8 healthboxSpriteId, bool8 isDoubleBattleBankOnly);
#endif // GUARD_BATTLE_INTERFACE_H

6
include/battle_tower.h Normal file
View File

@ -0,0 +1,6 @@
#ifndef GUARD_BATTLE_TOWER_H
#define GUARD_BATTLE_TOWER_H
u16 sub_8164FCC(u8, u8);
#endif //GUARD_BATTLE_TOWER_H

View File

@ -1,6 +1,16 @@
#ifndef GUARD_BG_H
#define GUARD_BG_H
struct BGCntrlBitfield // for the I/O registers
{
volatile u16 priority:2;
volatile u16 charBaseBlock:2;
volatile u16 field_0_2:4;
volatile u16 field_1_0:5;
volatile u16 areaOverflowMode:1;
volatile u16 screenSize:2;
};
enum
{
BG_CTRL_ATTR_VISIBLE = 1,

18
include/contest.h Normal file
View File

@ -0,0 +1,18 @@
#ifndef GUARD_CONTEST_H
#define GUARD_CONTEST_H
struct ContestStruct_02039E00 {
u16 unk_00;
u8 unk_02[11];
u8 unk_0d[8];
u8 filler_15[9];
u8 filler_1E[34];
};
extern struct ContestStruct_02039E00 gUnknown_02039E00[4];
extern u8 gUnknown_02039F24;
extern EWRAM_DATA u16 gUnknown_02039F2C;
extern EWRAM_DATA u8 gUnknown_02039F2E;
extern EWRAM_DATA u8 gUnknown_02039F30;
#endif //GUARD_CONTEST_H

147
include/decoration.h Normal file
View File

@ -0,0 +1,147 @@
#ifndef GUARD_DECORATION_H
#define GUARD_DECORATION_H
enum DecoId {
/*000*/ DECOR_NONE,
/*001*/ DECOR_SMALL_DESK,
/*002*/ DECOR_POKEMON_DESK,
/*003*/ DECOR_HEAVY_DESK,
/*004*/ DECOR_RAGGED_DESK,
/*005*/ DECOR_COMFORT_DESK,
/*006*/ DECOR_PRETTY_DESK,
/*007*/ DECOR_BRICK_DESK,
/*008*/ DECOR_CAMP_DESK,
/*009*/ DECOR_HARD_DESK,
/*010*/ DECOR_SMALL_CHAIR,
/*011*/ DECOR_POKEMON_CHAIR,
/*012*/ DECOR_HEAVY_CHAIR,
/*013*/ DECOR_PRETTY_CHAIR,
/*014*/ DECOR_COMFORT_CHAIR,
/*015*/ DECOR_RAGGED_CHAIR,
/*016*/ DECOR_BRICK_CHAIR,
/*017*/ DECOR_CAMP_CHAIR,
/*018*/ DECOR_HARD_CHAIR,
/*019*/ DECOR_RED_PLANT,
/*020*/ DECOR_TROPICAL_PLANT,
/*021*/ DECOR_PRETTY_FLOWERS,
/*022*/ DECOR_COLORFUL_PLANT,
/*023*/ DECOR_BIG_PLANT,
/*024*/ DECOR_GORGEOUS_PLANT,
/*025*/ DECOR_RED_BRICK,
/*026*/ DECOR_YELLOW_BRICK,
/*027*/ DECOR_BLUE_BRICK,
/*028*/ DECOR_RED_BALLOON,
/*029*/ DECOR_BLUE_BALLOON,
/*030*/ DECOR_YELLOW_BALLOON,
/*031*/ DECOR_RED_TENT,
/*032*/ DECOR_BLUE_TENT,
/*033*/ DECOR_SOLID_BOARD,
/*034*/ DECOR_SLIDE,
/*035*/ DECOR_FENCE_LENGTH,
/*036*/ DECOR_FENCE_WIDTH,
/*037*/ DECOR_TIRE,
/*038*/ DECOR_STAND,
/*039*/ DECOR_MUD_BALL,
/*040*/ DECOR_BREAKABLE_DOOR,
/*041*/ DECOR_SAND_ORNAMENT,
/*042*/ DECOR_SILVER_SHIELD,
/*043*/ DECOR_GOLD_SHIELD,
/*044*/ DECOR_GLASS_ORNAMENT,
/*045*/ DECOR_TV,
/*046*/ DECOR_ROUND_TV,
/*047*/ DECOR_CUTE_TV,
/*048*/ DECOR_GLITTER_MAT,
/*049*/ DECOR_JUMP_MAT,
/*050*/ DECOR_SPIN_MAT,
/*051*/ DECOR_C_LOW_NOTE_MAT,
/*052*/ DECOR_D_NOTE_MAT,
/*053*/ DECOR_E_NOTE_MAT,
/*054*/ DECOR_F_NOTE_MAT,
/*055*/ DECOR_G_NOTE_MAT,
/*056*/ DECOR_A_NOTE_MAT,
/*057*/ DECOR_B_NOTE_MAT,
/*058*/ DECOR_C_HIGH_NOTE_MAT,
/*059*/ DECOR_SURF_MAT,
/*060*/ DECOR_THUNDER_MAT,
/*061*/ DECOR_FIRE_BLAST_MAT,
/*062*/ DECOR_POWDER_SNOW_MAT,
/*063*/ DECOR_ATTRACT_MAT,
/*064*/ DECOR_FISSURE_MAT,
/*065*/ DECOR_SPIKES_MAT,
/*066*/ DECOR_BALL_POSTER,
/*067*/ DECOR_GREEN_POSTER,
/*068*/ DECOR_RED_POSTER,
/*069*/ DECOR_BLUE_POSTER,
/*070*/ DECOR_CUTE_POSTER,
/*071*/ DECOR_PIKA_POSTER,
/*072*/ DECOR_LONG_POSTER,
/*073*/ DECOR_SEA_POSTER,
/*074*/ DECOR_SKY_POSTER,
/*075*/ DECOR_KISS_POSTER,
/*076*/ DECOR_PICHU_DOLL,
/*077*/ DECOR_PIKACHU_DOLL,
/*078*/ DECOR_MARILL_DOLL,
/*079*/ DECOR_TOGEPI_DOLL,
/*080*/ DECOR_CYNDAQUIL_DOLL,
/*081*/ DECOR_CHIKORITA_DOLL,
/*082*/ DECOR_TOTODILE_DOLL,
/*083*/ DECOR_JIGGLYPUFF_DOLL,
/*084*/ DECOR_MEOWTH_DOLL,
/*085*/ DECOR_CLEFAIRY_DOLL,
/*086*/ DECOR_DITTO_DOLL,
/*087*/ DECOR_SMOOCHUM_DOLL,
/*088*/ DECOR_TREECKO_DOLL,
/*089*/ DECOR_TORCHIC_DOLL,
/*090*/ DECOR_MUDKIP_DOLL,
/*091*/ DECOR_DUSKULL_DOLL,
/*092*/ DECOR_WYNAUT_DOLL,
/*093*/ DECOR_BALTOY_DOLL,
/*094*/ DECOR_KECLEON_DOLL,
/*095*/ DECOR_AZURILL_DOLL,
/*096*/ DECOR_SKITTY_DOLL,
/*097*/ DECOR_SWABLU_DOLL,
/*098*/ DECOR_GULPIN_DOLL,
/*099*/ DECOR_LOTAD_DOLL,
/*100*/ DECOR_SEEDOT_DOLL,
/*101*/ DECOR_PIKA_CUSHION,
/*102*/ DECOR_ROUND_CUSHION,
/*103*/ DECOR_KISS_CUSHION,
/*104*/ DECOR_ZIGZAG_CUSHION,
/*105*/ DECOR_SPIN_CUSHION,
/*106*/ DECOR_DIAMOND_CUSHION,
/*107*/ DECOR_BALL_CUSHION,
/*108*/ DECOR_GRASS_CUSHION,
/*109*/ DECOR_FIRE_CUSHION,
/*110*/ DECOR_WATER_CUSHION,
/*111*/ DECOR_SNORLAX_DOLL,
/*112*/ DECOR_RHYDON_DOLL,
/*113*/ DECOR_LAPRAS_DOLL,
/*114*/ DECOR_VENUSAUR_DOLL,
/*115*/ DECOR_CHARIZARD_DOLL,
/*116*/ DECOR_BLASTOISE_DOLL,
/*117*/ DECOR_WAILMER_DOLL,
/*118*/ DECOR_REGIROCK_DOLL,
/*119*/ DECOR_REGICE_DOLL,
/*120*/ DECOR_REGISTEEL_DOLL
};
// Exported type declarations
struct Decoration
{
/*0x00*/ u8 id;
/*0x01*/ u8 name[16];
/*0x11*/ u8 permission;
/*0x12*/ u8 shape;
/*0x13*/ u8 category;
/*0x14*/ u16 price;
/*0x18*/ const u8 *description;
/*0x1c*/ const u16 *tiles;
};
// Exported RAM declarations
// Exported ROM declarations
extern const struct Decoration gDecorations[];
#endif //GUARD_DECORATION_H

View File

@ -30,7 +30,9 @@ enum
void InitEasyChatPhrases(void);
void easy_chat_input_maybe(void);
void CopyEasyChatWord(u8 *, u16);
bool32 sub_811F8D8(u16);
void CopyEasyChatWord(u8 *dest, u16 word);
bool32 sub_811F8D8(u16 word);
void InitializeEasyChatWordArray(u16 *words, u16 length);
void ConvertEasyChatWordsToString(u8 *dest, const u16 *src, u16 length1, u16 length2);
#endif // GUARD_EASYCHAT_H

View File

@ -8,4 +8,353 @@
extern const u8 gUnknown_082766A2[];
extern const u8 gUnknown_082766A6[];
extern const u8 gTVBravoTrainerText00[];
extern const u8 gTVBravoTrainerText01[];
extern const u8 gTVBravoTrainerText02[];
extern const u8 gTVBravoTrainerText03[];
extern const u8 gTVBravoTrainerText04[];
extern const u8 gTVBravoTrainerText05[];
extern const u8 gTVBravoTrainerText06[];
extern const u8 gTVBravoTrainerText07[];
extern const u8 gTVBravoTrainerText08[];
extern const u8 gTVBravoTrainerBattleTowerText00[];
extern const u8 gTVBravoTrainerBattleTowerText01[];
extern const u8 gTVBravoTrainerBattleTowerText02[];
extern const u8 gTVBravoTrainerBattleTowerText03[];
extern const u8 gTVBravoTrainerBattleTowerText04[];
extern const u8 gTVBravoTrainerBattleTowerText05[];
extern const u8 gTVBravoTrainerBattleTowerText06[];
extern const u8 gTVBravoTrainerBattleTowerText07[];
extern const u8 gTVBravoTrainerBattleTowerText08[];
extern const u8 gTVBravoTrainerBattleTowerText09[];
extern const u8 gTVBravoTrainerBattleTowerText10[];
extern const u8 gTVBravoTrainerBattleTowerText11[];
extern const u8 gTVBravoTrainerBattleTowerText12[];
extern const u8 gTVBravoTrainerBattleTowerText13[];
extern const u8 gTVBravoTrainerBattleTowerText14[];
extern const u8 gTVFanClubOpinionsText00[];
extern const u8 gTVFanClubOpinionsText01[];
extern const u8 gTVFanClubOpinionsText02[];
extern const u8 gTVFanClubOpinionsText03[];
extern const u8 gTVFanClubOpinionsText04[];
extern const u8 gTVFanClubText00[];
extern const u8 gTVFanClubText01[];
extern const u8 gTVFanClubText02[];
extern const u8 gTVFanClubText03[];
extern const u8 gTVFanClubText04[];
extern const u8 gTVFanClubText05[];
extern const u8 gTVFanClubText06[];
extern const u8 gTVFanClubText07[];
extern const u8 gTVRecentHappeningsText00[];
extern const u8 gTVRecentHappeningsText01[];
extern const u8 gTVRecentHappeningsText02[];
extern const u8 gTVRecentHappeningsText03[];
extern const u8 gTVRecentHappeningsText04[];
extern const u8 gTVRecentHappeningsText05[];
extern const u8 gTVMassOutbreakText00[];
extern const u8 gTV3CheersForPokeblocksText00[];
extern const u8 gTV3CheersForPokeblocksText01[];
extern const u8 gTV3CheersForPokeblocksText02[];
extern const u8 gTV3CheersForPokeblocksText03[];
extern const u8 gTV3CheersForPokeblocksText04[];
extern const u8 gTV3CheersForPokeblocksText05[];
extern const u8 gTVTrainerFanClubSpecialText00[];
extern const u8 gTVTrainerFanClubSpecialText01[];
extern const u8 gTVTrainerFanClubSpecialText02[];
extern const u8 gTVTrainerFanClubSpecialText03[];
extern const u8 gTVTrainerFanClubSpecialText04[];
extern const u8 gTVTrainerFanClubSpecialText05[];
extern const u8 gTVNameRaterText00[];
extern const u8 gTVNameRaterText01[];
extern const u8 gTVNameRaterText02[];
extern const u8 gTVNameRaterText03[];
extern const u8 gTVNameRaterText04[];
extern const u8 gTVNameRaterText05[];
extern const u8 gTVNameRaterText06[];
extern const u8 gTVNameRaterText07[];
extern const u8 gTVNameRaterText08[];
extern const u8 gTVNameRaterText09[];
extern const u8 gTVNameRaterText10[];
extern const u8 gTVNameRaterText11[];
extern const u8 gTVNameRaterText12[];
extern const u8 gTVNameRaterText13[];
extern const u8 gTVNameRaterText14[];
extern const u8 gTVNameRaterText15[];
extern const u8 gTVNameRaterText16[];
extern const u8 gTVNameRaterText17[];
extern const u8 gTVNameRaterText18[];
extern const u8 gTVPokemonAnglerText00[];
extern const u8 gTVPokemonAnglerText01[];
extern const u8 gTVPokemonTodayFailedText00[];
extern const u8 gTVPokemonTodayFailedText01[];
extern const u8 gTVPokemonTodayFailedText02[];
extern const u8 gTVPokemonTodayFailedText03[];
extern const u8 gTVPokemonTodayFailedText04[];
extern const u8 gTVPokemonTodayFailedText05[];
extern const u8 gTVPokemonTodayFailedText06[];
extern const u8 gTVPokemonTodaySuccessfulText00[];
extern const u8 gTVPokemonTodaySuccessfulText01[];
extern const u8 gTVPokemonTodaySuccessfulText02[];
extern const u8 gTVPokemonTodaySuccessfulText03[];
extern const u8 gTVPokemonTodaySuccessfulText04[];
extern const u8 gTVPokemonTodaySuccessfulText05[];
extern const u8 gTVPokemonTodaySuccessfulText06[];
extern const u8 gTVPokemonTodaySuccessfulText07[];
extern const u8 gTVPokemonTodaySuccessfulText08[];
extern const u8 gTVPokemonTodaySuccessfulText09[];
extern const u8 gTVPokemonTodaySuccessfulText10[];
extern const u8 gTVPokemonTodaySuccessfulText11[];
extern const u8 gTVTodaysSmartShopperText00[];
extern const u8 gTVTodaysSmartShopperText01[];
extern const u8 gTVTodaysSmartShopperText02[];
extern const u8 gTVTodaysSmartShopperText03[];
extern const u8 gTVTodaysSmartShopperText04[];
extern const u8 gTVTodaysSmartShopperText05[];
extern const u8 gTVTodaysSmartShopperText06[];
extern const u8 gTVTodaysSmartShopperText07[];
extern const u8 gTVTodaysSmartShopperText08[];
extern const u8 gTVTodaysSmartShopperText09[];
extern const u8 gTVTodaysSmartShopperText10[];
extern const u8 gTVTodaysSmartShopperText11[];
extern const u8 gTVTodaysSmartShopperText12[];
extern const u8 gTVWorldOfMastersText00[];
extern const u8 gTVWorldOfMastersText01[];
extern const u8 gTVWorldOfMastersText02[];
extern const u8 gTVTodaysRivalTrainerText00[];
extern const u8 gTVTodaysRivalTrainerText07[];
extern const u8 gTVTodaysRivalTrainerText08[];
extern const u8 gTVTodaysRivalTrainerText09[];
extern const u8 gTVTodaysRivalTrainerText10[];
extern const u8 gTVTodaysRivalTrainerText01[];
extern const u8 gTVTodaysRivalTrainerText02[];
extern const u8 gTVTodaysRivalTrainerText03[];
extern const u8 gTVTodaysRivalTrainerText04[];
extern const u8 gTVTodaysRivalTrainerText05[];
extern const u8 gTVTodaysRivalTrainerText06[];
extern const u8 gTVDewfordTrendWatcherNetworkText00[];
extern const u8 gTVDewfordTrendWatcherNetworkText01[];
extern const u8 gTVDewfordTrendWatcherNetworkText02[];
extern const u8 gTVDewfordTrendWatcherNetworkText03[];
extern const u8 gTVDewfordTrendWatcherNetworkText04[];
extern const u8 gTVDewfordTrendWatcherNetworkText05[];
extern const u8 gTVDewfordTrendWatcherNetworkText06[];
extern const u8 gTVHoennTreasureInvestigatorsText00[];
extern const u8 gTVHoennTreasureInvestigatorsText01[];
extern const u8 gTVHoennTreasureInvestigatorsText02[];
extern const u8 gTVFindThatGamerText00[];
extern const u8 gTVFindThatGamerText01[];
extern const u8 gTVFindThatGamerText02[];
extern const u8 gTVFindThatGamerText03[];
extern const u8 gTVBreakingNewsText00[];
extern const u8 gTVBreakingNewsText01[];
extern const u8 gTVBreakingNewsText02[];
extern const u8 gTVBreakingNewsText03[];
extern const u8 gTVBreakingNewsText04[];
extern const u8 gTVBreakingNewsText05[];
extern const u8 gTVBreakingNewsText06[];
extern const u8 gTVBreakingNewsText07[];
extern const u8 gTVBreakingNewsText12[];
extern const u8 gTVBreakingNewsText08[];
extern const u8 gTVBreakingNewsText09[];
extern const u8 gTVBreakingNewsText10[];
extern const u8 gTVBreakingNewsText11[];
extern const u8 gTVSecretBaseVisitText00[];
extern const u8 gTVSecretBaseVisitText01[];
extern const u8 gTVSecretBaseVisitText02[];
extern const u8 gTVSecretBaseVisitText03[];
extern const u8 gTVSecretBaseVisitText04[];
extern const u8 gTVSecretBaseVisitText05[];
extern const u8 gTVSecretBaseVisitText06[];
extern const u8 gTVSecretBaseVisitText07[];
extern const u8 gTVSecretBaseVisitText08[];
extern const u8 gTVSecretBaseVisitText09[];
extern const u8 gTVSecretBaseVisitText10[];
extern const u8 gTVSecretBaseVisitText11[];
extern const u8 gTVSecretBaseVisitText12[];
extern const u8 gTVSecretBaseVisitText13[];
extern const u8 gTVPokemonLotteryWinnerFlashReportText00[];
extern const u8 gTVThePokemonBattleSeminarText00[];
extern const u8 gTVThePokemonBattleSeminarText01[];
extern const u8 gTVThePokemonBattleSeminarText02[];
extern const u8 gTVThePokemonBattleSeminarText03[];
extern const u8 gTVThePokemonBattleSeminarText04[];
extern const u8 gTVThePokemonBattleSeminarText05[];
extern const u8 gTVThePokemonBattleSeminarText06[];
extern const u8 gTVTrainerFanClubText00[];
extern const u8 gTVTrainerFanClubText01[];
extern const u8 gTVTrainerFanClubText02[];
extern const u8 gTVTrainerFanClubText03[];
extern const u8 gTVTrainerFanClubText04[];
extern const u8 gTVTrainerFanClubText05[];
extern const u8 gTVTrainerFanClubText06[];
extern const u8 gTVTrainerFanClubText07[];
extern const u8 gTVTrainerFanClubText08[];
extern const u8 gTVTrainerFanClubText09[];
extern const u8 gTVTrainerFanClubText10[];
extern const u8 gTVTrainerFanClubText11[];
extern const u8 gTVCutiesText00[];
extern const u8 gTVCutiesText01[];
extern const u8 gTVCutiesText02[];
extern const u8 gTVCutiesText03[];
extern const u8 gTVCutiesText04[];
extern const u8 gTVCutiesText05[];
extern const u8 gTVCutiesText06[];
extern const u8 gTVCutiesText07[];
extern const u8 gTVCutiesText08[];
extern const u8 gTVCutiesText09[];
extern const u8 gTVCutiesText10[];
extern const u8 gTVCutiesText11[];
extern const u8 gTVCutiesText12[];
extern const u8 gTVCutiesText13[];
extern const u8 gTVCutiesText14[];
extern const u8 gTVCutiesText15[];
extern const u8 gTVPokemonNewsBattleFrontierText00[];
extern const u8 gTVPokemonNewsBattleFrontierText01[];
extern const u8 gTVPokemonNewsBattleFrontierText02[];
extern const u8 gTVPokemonNewsBattleFrontierText03[];
extern const u8 gTVPokemonNewsBattleFrontierText04[];
extern const u8 gTVPokemonNewsBattleFrontierText05[];
extern const u8 gTVPokemonNewsBattleFrontierText06[];
extern const u8 gTVPokemonNewsBattleFrontierText07[];
extern const u8 gTVPokemonNewsBattleFrontierText08[];
extern const u8 gTVPokemonNewsBattleFrontierText09[];
extern const u8 gTVPokemonNewsBattleFrontierText10[];
extern const u8 gTVPokemonNewsBattleFrontierText11[];
extern const u8 gTVPokemonNewsBattleFrontierText12[];
extern const u8 gTVPokemonNewsBattleFrontierText13[];
extern const u8 gTVPokemonNewsBattleFrontierText14[];
extern const u8 gTVPokemonNewsBattleFrontierText15[];
extern const u8 gTVPokemonNewsBattleFrontierText16[];
extern const u8 gTVPokemonNewsBattleFrontierText17[];
extern const u8 gTVPokemonNewsBattleFrontierText18[];
extern const u8 gTVWhatsNo1InHoennTodayText00[];
extern const u8 gTVWhatsNo1InHoennTodayText01[];
extern const u8 gTVWhatsNo1InHoennTodayText02[];
extern const u8 gTVWhatsNo1InHoennTodayText03[];
extern const u8 gTVWhatsNo1InHoennTodayText04[];
extern const u8 gTVWhatsNo1InHoennTodayText05[];
extern const u8 gTVWhatsNo1InHoennTodayText06[];
extern const u8 gTVWhatsNo1InHoennTodayText07[];
extern const u8 gTVWhatsNo1InHoennTodayText08[];
extern const u8 gTVSecretBaseSecretsText00[];
extern const u8 gTVSecretBaseSecretsText01[];
extern const u8 gTVSecretBaseSecretsText02[];
extern const u8 gTVSecretBaseSecretsText03[];
extern const u8 gTVSecretBaseSecretsText04[];
extern const u8 gTVSecretBaseSecretsText05[];
extern const u8 gTVSecretBaseSecretsText06[];
extern const u8 gTVSecretBaseSecretsText07[];
extern const u8 gTVSecretBaseSecretsText08[];
extern const u8 gTVSecretBaseSecretsText09[];
extern const u8 gTVSecretBaseSecretsText10[];
extern const u8 gTVSecretBaseSecretsText11[];
extern const u8 gTVSecretBaseSecretsText12[];
extern const u8 gTVSecretBaseSecretsText13[];
extern const u8 gTVSecretBaseSecretsText14[];
extern const u8 gTVSecretBaseSecretsText15[];
extern const u8 gTVSecretBaseSecretsText16[];
extern const u8 gTVSecretBaseSecretsText17[];
extern const u8 gTVSecretBaseSecretsText18[];
extern const u8 gTVSecretBaseSecretsText19[];
extern const u8 gTVSecretBaseSecretsText20[];
extern const u8 gTVSecretBaseSecretsText21[];
extern const u8 gTVSecretBaseSecretsText22[];
extern const u8 gTVSecretBaseSecretsText23[];
extern const u8 gTVSecretBaseSecretsText24[];
extern const u8 gTVSecretBaseSecretsText25[];
extern const u8 gTVSecretBaseSecretsText26[];
extern const u8 gTVSecretBaseSecretsText27[];
extern const u8 gTVSecretBaseSecretsText28[];
extern const u8 gTVSecretBaseSecretsText29[];
extern const u8 gTVSecretBaseSecretsText30[];
extern const u8 gTVSecretBaseSecretsText31[];
extern const u8 gTVSecretBaseSecretsText32[];
extern const u8 gTVSecretBaseSecretsText33[];
extern const u8 gTVSecretBaseSecretsText34[];
extern const u8 gTVSecretBaseSecretsText35[];
extern const u8 gTVSecretBaseSecretsText36[];
extern const u8 gTVSecretBaseSecretsText37[];
extern const u8 gTVSecretBaseSecretsText38[];
extern const u8 gTVSecretBaseSecretsText39[];
extern const u8 gTVSecretBaseSecretsText40[];
extern const u8 gTVSecretBaseSecretsText41[];
extern const u8 gTVSecretBaseSecretsText42[];
extern const u8 gTVSafariFanClubText00[];
extern const u8 gTVSafariFanClubText01[];
extern const u8 gTVSafariFanClubText02[];
extern const u8 gTVSafariFanClubText03[];
extern const u8 gTVSafariFanClubText04[];
extern const u8 gTVSafariFanClubText05[];
extern const u8 gTVSafariFanClubText06[];
extern const u8 gTVSafariFanClubText07[];
extern const u8 gTVSafariFanClubText08[];
extern const u8 gTVSafariFanClubText09[];
extern const u8 gTVSafariFanClubText10[];
extern const u8 gTVContestLiveUpdatesText00[];
extern const u8 gTVContestLiveUpdatesText01[];
extern const u8 gTVContestLiveUpdatesText02[];
extern const u8 gTVContestLiveUpdatesText03[];
extern const u8 gTVContestLiveUpdatesText04[];
extern const u8 gTVContestLiveUpdatesText05[];
extern const u8 gTVContestLiveUpdatesText06[];
extern const u8 gTVContestLiveUpdatesText07[];
extern const u8 gTVContestLiveUpdatesText08[];
extern const u8 gTVContestLiveUpdatesText09[];
extern const u8 gTVContestLiveUpdatesText10[];
extern const u8 gTVContestLiveUpdatesText11[];
extern const u8 gTVContestLiveUpdatesText12[];
extern const u8 gTVContestLiveUpdatesText13[];
extern const u8 gTVContestLiveUpdatesText14[];
extern const u8 gTVContestLiveUpdatesText15[];
extern const u8 gTVContestLiveUpdatesText16[];
extern const u8 gTVContestLiveUpdatesText17[];
extern const u8 gTVContestLiveUpdatesText18[];
extern const u8 gTVContestLiveUpdatesText19[];
extern const u8 gTVContestLiveUpdatesText20[];
extern const u8 gTVContestLiveUpdatesText21[];
extern const u8 gTVContestLiveUpdatesText22[];
extern const u8 gTVContestLiveUpdatesText23[];
extern const u8 gTVContestLiveUpdatesText24[];
extern const u8 gTVContestLiveUpdatesText25[];
extern const u8 gTVContestLiveUpdatesText26[];
extern const u8 gTVContestLiveUpdatesText27[];
extern const u8 gTVContestLiveUpdatesText28[];
extern const u8 gTVContestLiveUpdatesText29[];
extern const u8 gTVContestLiveUpdatesText30[];
extern const u8 gTVContestLiveUpdatesText31[];
extern const u8 gTVContestLiveUpdatesText32[];
extern const u8 gTVPokemonBattleUpdateText00[];
extern const u8 gTVPokemonBattleUpdateText01[];
extern const u8 gTVPokemonBattleUpdateText02[];
extern const u8 gTVPokemonBattleUpdateText03[];
extern const u8 gTVPokemonBattleUpdateText04[];
extern const u8 gTVPokemonBattleUpdateText05[];
extern const u8 gTVPokemonBattleUpdateText06[];
extern const u8 gTVPokemonBattleUpdateText07[];
extern const u8 gTVInSearchOfTrainersText00[];
extern const u8 gTVInSearchOfTrainersText01[];
extern const u8 gTVInSearchOfTrainersText02[];
extern const u8 gTVInSearchOfTrainersText03[];
extern const u8 gTVInSearchOfTrainersText04[];
extern const u8 gTVInSearchOfTrainersText05[];
extern const u8 gTVInSearchOfTrainersText06[];
extern const u8 gTVInSearchOfTrainersText07[];
extern const u8 gTVInSearchOfTrainersText08[];
extern const u8 gTVPokemonContestLiveUpdates2Text00[];
extern const u8 gTVPokemonContestLiveUpdates2Text01[];
extern const u8 gTVPokemonContestLiveUpdates2Text02[];
extern const u8 gTVPokemonContestLiveUpdates2Text03[];
extern const u8 gPokeNewsTextSlateport_Upcoming[];
extern const u8 gPokeNewsTextSlateport_Ongoing[];
extern const u8 gPokeNewsTextSlateport_Ending[];
extern const u8 gPokeNewsTextGameCorner_Upcoming[];
extern const u8 gPokeNewsTextGameCorner_Ongoing[];
extern const u8 gPokeNewsTextGameCorner_Ending[];
extern const u8 gPokeNewsTextLilycove_Upcoming[];
extern const u8 gPokeNewsTextLilycove_Ongoing[];
extern const u8 gPokeNewsTextLilycove_Ending[];
extern const u8 gPokeNewsTextBlendMaster_Upcoming[];
extern const u8 gPokeNewsTextBlendMaster_Ongoing[];
extern const u8 gPokeNewsTextBlendMaster_Ending[];
#endif //GUARD_EVENT_SCRIPTS_H

View File

@ -22,4 +22,6 @@ extern u16 gUnknown_03005DE8;
// Exported ROM declarations
void DrawWholeMapView(void);
#endif //GUARD_FIELD_CAMERA_H

View File

@ -0,0 +1,12 @@
#ifndef GUARD_field_message_box_H
#define GUARD_field_message_box_H
// Exported type declarations
// Exported RAM declarations
// Exported ROM declarations
void ShowFieldMessage(const u8 *);
#endif //GUARD_field_message_box_H

View File

@ -8,9 +8,14 @@
// Exported type declarations
// Exported RAM declarations
extern struct MapCoords {
int width;
int height;
} gUnknown_03005DC0;
// Exported ROM declarations
u8 MapGridGetMetatileBehaviorAt(s16, s16);
u32 MapGridGetMetatileBehaviorAt(int, int);
void MapGridSetMetatileIdAt(int, int, u16);
void GetCameraCoords(u16*, u16*);
bool8 MapGridIsImpassableAt(s16, s16);
s32 GetMapBorderIdAt(s16, s16);

View File

@ -3,7 +3,7 @@
#define TRAINER_FLAG_START 0x500
#define TRAINERS_FLAG_NO 0x356
#define CODE_FLAGS (TRAINER_FLAG_START + TRAINERS_FLAG_NO + 0xA)
#define CODE_FLAGS (TRAINER_FLAG_START + TRAINERS_FLAG_NO + 0xA) // 0x860
// SYSTEM FLAGS
@ -84,6 +84,20 @@
#define SYS_CTRL_OBJ_DELETE CODE_FLAGS + 0x61
#define SYS_RESET_RTC_ENABLE CODE_FLAGS + 0x62
#define SYS_TOWER_SILVER CODE_FLAGS + 0x64
#define SYS_TOWER_GOLD CODE_FLAGS + 0x65
#define SYS_DOME_SILVER CODE_FLAGS + 0x66
#define SYS_DOME_GOLD CODE_FLAGS + 0x67
#define SYS_PALACE_SILVER CODE_FLAGS + 0x68
#define SYS_PALACE_GOLD CODE_FLAGS + 0x69
#define SYS_ARENA_SILVER CODE_FLAGS + 0x6A
#define SYS_ARENA_GOLD CODE_FLAGS + 0x6B
#define SYS_FACTORY_SILVER CODE_FLAGS + 0x6C
#define SYS_FACTORY_GOLD CODE_FLAGS + 0x6D
#define SYS_PIKE_SILVER CODE_FLAGS + 0x6E
#define SYS_PIKE_GOLD CODE_FLAGS + 0x6F
#define SYS_PYRAMID_SILVER CODE_FLAGS + 0x70
#define SYS_PYRAMID_GOLD CODE_FLAGS + 0x71
#define SYS_FRONTIER_PASS CODE_FLAGS + 0x72
#define SYS_STORAGE_UNKNOWN_FLAG CODE_FLAGS + 0x77

View File

@ -56,4 +56,7 @@
#define NUM_GAME_STATS 64
void IncrementGameStat(u8);
u32 GetGameStat(u8);
#endif // GUARD_GAME_STAT_H

View File

@ -197,7 +197,13 @@ struct SaveBlock2
// All below could be a one giant struct
/*0x64C*/ u8 field_64C[1629];
/*0x64C*/ u8 field_64C[0x588];
/*0xBD4*/ u16 field_BD4;
/*0xBD6*/ u16 field_BD6;
/*0xBD8*/ u8 field_BD8[11];
/*0xBE3*/ u8 filler_BE3[8];
/*0xBEB*/ u8 field_BEB;
/*0xBE3*/ u8 filler_BEC[189];
/*0xCA9*/ u8 frontierChosenLvl : 2; // 0x1, 0x2 -> 0x3
/*0xCA9*/ u8 field_CA9_a : 1; // 0x4
/*0xCA9*/ u8 field_CA9_b : 1; // 0x8
@ -205,7 +211,10 @@ struct SaveBlock2
/*0xCA9*/ u8 field_CA9_d : 1; // 0x20
/*0xCA9*/ u8 field_CA9_e : 1; // 0x40
/*0xCA9*/ u8 field_CA9_f : 1; // 0x80
/*0xCAA*/ u8 field_CAA[368];
/*0xCAA*/ u16 field_CAA[0x2e];
/*0xD06*/ u8 field_D06;
/*0xD07*/ u8 field_D07;
/*0xd08*/ u8 filler_D08[0x112];
/*0xE1A*/ u16 battlePyramidFloor; // possibly?
/*0xE1C*/ u8 field_E1C[16];
/*0xE2C*/ struct PyramidBag pyramidBag;
@ -225,30 +234,31 @@ extern struct SaveBlock2 *gSaveBlock2Ptr;
struct SecretBaseRecord
{
u8 sbr_field_0;
u8 sbr_field_1_0:4;
u8 gender:1;
u8 sbr_field_1_5:1;
u8 sbr_field_1_6:2;
u8 trainerName[7];
u8 trainerId[4]; // byte 0 is used for determining trainer class
u8 language;
u16 sbr_field_e;
u8 sbr_field_10;
u8 sbr_field_11;
u8 decorations[16];
u8 decorationPos[16];
u32 partyPersonality[6];
u16 partyMoves[6 * 4];
u16 partySpecies[6];
u16 partyHeldItems[6];
u8 partyLevels[6];
u8 partyEVs[6];
/*ID?*/ /*0x1A9C*/ u8 sbr_field_0;
/*0x1A9D*/ u8 sbr_field_1_0:4;
/*0x1A9D*/ u8 gender:1;
/*0x1A9D*/ u8 sbr_field_1_5:1;
/*0x1A9D*/ u8 sbr_field_1_6:2;
/*0x1A9E*/ u8 trainerName[7]; // 0xFF bytes?
/*0x1AA5*/ u8 trainerId[4]; // byte 0 is used for determining trainer class
/*0x1AA9*/ u8 language;
/*0x1AAA*/ u16 sbr_field_e;
/*0x1AAC*/ u8 sbr_field_10;
/*0x1AAD*/ u8 sbr_field_11;
/*0x1AAE*/ u8 decorations[16];
/*0x1ABE*/ u8 decorationPos[16];
/*0x1ACE*/ u32 partyPersonality[6];
/*0x1AE6*/ u16 partyMoves[6 * 4];
/*0x1B16*/ u16 partySpecies[6];
/*0x1B22*/ u16 partyHeldItems[6];
/*0x1B2E*/ u8 partyLevels[6];
/*0x1B34*/ u8 partyEVs[6];
};
#include "game_stat.h"
#include "global.fieldmap.h"
#include "global.berry.h"
#include "global.tv.h"
#include "pokemon.h"
struct WarpData
@ -317,218 +327,6 @@ struct EasyChatPair
u16 words[2];
}; /*size = 0x8*/
struct TVShowCommon
{
/*0x00*/ u8 var00;
/*0x01*/ u8 var01;
/*0x02*/ u8 pad02[20];
/*0x16*/ u16 var16[3];
/*0x1C*/ u8 srcTrainerId3Lo;
/*0x1D*/ u8 srcTrainerId3Hi;
/*0x1E*/ u8 srcTrainerId2Lo;
/*0x1F*/ u8 srcTrainerId2Hi;
/*0x20*/ u8 srcTrainerIdLo;
/*0x21*/ u8 srcTrainerIdHi;
/*0x22*/ u8 trainerIdLo;
/*0x23*/ u8 trainerIdHi;
};
struct TVShowFanClubLetter
{
/*0x00*/ u8 var00;
/*0x01*/ u8 var01;
/*0x02*/ u16 species;
/*0x04*/ u16 pad04[6];
/*0x10*/ u8 playerName[8];
/*0x18*/ u8 language;
};
struct TVShowRecentHappenings
{
/*0x00*/ u8 var00;
/*0x01*/ u8 var01;
/*0x02*/ u16 var02;
/*0x04*/ u16 var04[6];
/*0x10*/ u8 playerName[8];
/*0x18*/ u8 language;
/*0x19*/ u8 pad19[10];
};
struct TVShowFanclubOpinions
{
/*0x00*/ u8 var00;
/*0x01*/ u8 var01;
/*0x02*/ u16 var02;
/*0x04*/ u8 var04A:4;
/*0x04*/ u8 var04B:4;
/*0x05*/ u8 playerName[8];
/*0x0D*/ u8 language;
/*0x0E*/ u8 var0E;
/*0x0F*/ u8 var0F;
/*0x10*/ u8 var10[8];
/*0x18*/ u16 var18[2];
/*0x1C*/ u16 var1C[4];
};
struct TVShowUnknownType04
{
/*0x00*/ u8 var00;
/*0x01*/ u8 var01;
/*0x02*/ u8 pad02[4];
/*0x06*/ u16 var06;
};
struct TVShowNameRaterShow
{
/*0x00*/ u8 var00;
/*0x01*/ u8 var01;
/*0x02*/ u16 species;
/*0x04*/ u8 pokemonName[11];
/*0x0F*/ u8 trainerName[11];
/*0x1A*/ u8 random;
/*0x1B*/ u8 random2;
/*0x1C*/ u16 var1C;
/*0x1E*/ u8 language;
/*0x1F*/ u8 pokemonNameLanguage;
};
struct TVShowBravoTrainerPokemonProfiles
{
/*0x00*/ u8 var00;
/*0x01*/ u8 var01;
/*0x02*/ u16 species;
/*0x04*/ u16 var04[2];
/*0x08*/ u8 pokemonNickname[11];
/*0x13*/ u8 contestCategory:3;
/*0x13*/ u8 contestRank:2;
/*0x13*/ u8 contestResult:2;
/*0x13*/ u8 var13_7:1;
/*0x14*/ u16 var14;
/*0x16*/ u8 playerName[8];
/*0x1E*/ u8 language;
/*0x1F*/ u8 var1f;
};
struct TVShowBravoTrainerBattleTowerSpotlight
{
/*0x00*/ u8 var00;
/*0x01*/ u8 var01;
/*0x02*/ u8 trainerName[8];
/*0x0A*/ u16 species;
/*0x0C*/ u8 pokemonName[8];
/*0x14*/ u16 defeatedSpecies;
/*0x16*/ u16 var16;
/*0x18*/ u16 var18[1];
/*0x1A*/ u8 btLevel;
/*0x1B*/ u8 var1b;
/*0x1C*/ u8 var1c;
/*0x1D*/ u8 language;
};
struct TVShowPokemonToday
{
/*0x00*/ u8 var00;
/*0x01*/ u8 var01;
/*0x02*/ u8 language;
/*0x03*/ u8 language2;
/*0x04*/ u8 nickname[11];
/*0x0F*/ u8 ball;
/*0x10*/ u16 species;
/*0x12*/ u8 var12;
/*0x13*/ u8 playerName[8];
};
struct TVShowSmartShopper
{
/*0x00*/ u8 var00;
/*0x01*/ u8 var01;
/*0x02*/ u8 priceReduced;
/*0x03*/ u8 language;
/*0x04*/ u8 pad04[2];
/*0x06*/ u16 itemIds[3];
/*0x0C*/ u16 itemAmounts[3];
/*0x12*/ u8 shopLocation;
/*0x13*/ u8 playerName[8];
};
struct TVShowPokemonTodayFailed
{
/*0x00*/ u8 var00;
/*0x01*/ u8 var01;
/*0x02*/ u8 language;
/*0x03*/ u8 pad03[9];
/*0x0c*/ u16 species;
/*0x0e*/ u16 species2;
/*0x10*/ u8 var10;
/*0x11*/ u8 var11;
/*0x12*/ u8 var12;
/*0x13*/ u8 playerName[8];
};
struct TVShowPokemonAngler
{
/*0x00*/ u8 var00;
/*0x01*/ u8 var01;
/*0x02*/ u8 var02;
/*0x03*/ u8 var03;
/*0x04*/ u16 var04;
/*0x06*/ u8 language;
u8 pad07[12];
/*0x13*/ u8 playerName[8];
};
struct TVShowWorldOfMasters
{
/*0x00*/ u8 var00;
/*0x01*/ u8 var01;
/*0x02*/ u16 var02;
/*0x04*/ u16 var04;
/*0x06*/ u16 var06;
/*0x08*/ u16 var08;
/*0x0a*/ u8 var0a;
/*0x0b*/ u8 language;
u8 pad0c[7];
/*0x13*/ u8 playerName[8];
};
struct TVShowMassOutbreak
{
/*0x00*/ u8 var00;
/*0x01*/ u8 var01;
/*0x02*/ u8 var02;
/*0x03*/ u8 var03;
/*0x04*/ u16 moves[4];
/*0x0C*/ u16 species;
/*0x0E*/ u16 var0E;
/*0x10*/ u8 locationMapNum;
/*0x11*/ u8 locationMapGroup;
/*0x12*/ u8 var12;
/*0x13*/ u8 probability;
/*0x14*/ u8 level;
/*0x15*/ u8 var15;
/*0x16*/ u16 var16;
/*0x18*/ u8 language;
u8 pad19[11];
};
typedef union TVShow
{
struct TVShowCommon common;
struct TVShowFanClubLetter fanclubLetter;
struct TVShowRecentHappenings recentHappenings;
struct TVShowFanclubOpinions fanclubOpinions;
struct TVShowUnknownType04 unkShow04;
struct TVShowNameRaterShow nameRaterShow;
struct TVShowBravoTrainerPokemonProfiles bravoTrainer;
struct TVShowBravoTrainerBattleTowerSpotlight bravoTrainerTower;
struct TVShowPokemonToday pokemonToday;
struct TVShowSmartShopper smartshopperShow;
struct TVShowPokemonTodayFailed pokemonTodayFailed;
struct TVShowPokemonAngler pokemonAngler;
struct TVShowWorldOfMasters worldOfMasters;
struct TVShowMassOutbreak massOutbreak;
} TVShow;
struct MailStruct
{
/*0x00*/ u16 words[9];
@ -576,35 +374,6 @@ typedef union OldMan
u8 filler[0x40];
} OldMan;
struct UnknownSaveStruct2ABC
{
u8 val0;
u8 val1;
u16 val2;
};
struct GabbyAndTyData
{
/*2b10*/ u16 mon1;
/*2b12*/ u16 mon2;
/*2b14*/ u16 lastMove;
/*2b16*/ u16 quote;
/*2b18*/ u8 mapnum;
/*2b19*/ u8 battleNum;
/*2b1a*/ u8 valA_0:1;
/*2b1a*/ u8 valA_1:1;
/*2b1a*/ u8 valA_2:1;
/*2b1a*/ u8 valA_3:1;
/*2b1a*/ u8 valA_4:1;
/*2b1a*/ u8 valA_5:3;
/*2b1b*/ u8 valB_0:1;
/*2b1b*/ u8 valB_1:1;
/*2b1b*/ u8 valB_2:1;
/*2b1b*/ u8 valB_3:1;
/*2b1b*/ u8 valB_4:1;
/*2b1b*/ u8 valB_5:3;
};
struct RecordMixing_UnknownStructSub
{
u32 unk0;
@ -781,22 +550,22 @@ struct SaveBlock1
/*0x????*/ u8 decorCushion[10];
/*0x27CA*/ u8 padding_27CA[2];
/*0x27CC*/ TVShow tvShows[25];
/*0x2B50*/ struct UnknownSaveStruct2ABC pokeNews[16];
/*0x2B50*/ PokeNews pokeNews[16];
/*0x2B90*/ u16 outbreakPokemonSpecies;
/*0x????*/ u8 outbreakLocationMapNum;
/*0x????*/ u8 outbreakLocationMapGroup;
/*0x????*/ u8 outbreakPokemonLevel;
/*0x????*/ u8 outbreakUnk1;
/*0x????*/ u16 outbreakUnk2;
/*0x????*/ u16 outbreakPokemonMoves[4];
/*0x????*/ u8 outbreakUnk4;
/*0x????*/ u8 outbreakPokemonProbability;
/*0x????*/ u16 outbreakUnk5;
/*0x2B92*/ u8 outbreakLocationMapNum;
/*0x2B93*/ u8 outbreakLocationMapGroup;
/*0x2B94*/ u8 outbreakPokemonLevel;
/*0x2B95*/ u8 outbreakUnk1;
/*0x2B96*/ u16 outbreakUnk2;
/*0x2B98*/ u16 outbreakPokemonMoves[4];
/*0x2BA0*/ u8 outbreakUnk4;
/*0x2BA1*/ u8 outbreakPokemonProbability;
/*0x2BA2*/ u16 outbreakDaysLeft;
/*0x2BA4*/ struct GabbyAndTyData gabbyAndTyData;
/*0x????*/ u16 unk2B1C[6];
/*0x????*/ u16 unk2B28[6];
/*0x????*/ u16 unk2B34[6];
/*0x????*/ u16 unk2B3A[3];
/*0x2BB0*/ u16 unk2BB0[6];
/*0x2BBC*/ u16 unk2BBC[6];
/*0x2BC8*/ u16 unk2BC8[6];
/*0x2BD4*/ u16 unk2BD4[3];
/*0x2BE0*/ struct MailStruct mail[16];
/*0x2E20*/ u8 additionalPhrases[5]; // bitfield for 33 additional phrases in easy chat system
/*0x2E25*/ u8 unk2E25[3]; // possibly padding?
@ -806,7 +575,8 @@ struct SaveBlock1
/*0x2e90*/ struct ContestWinner contestWinners[13]; // 0 - 5 used in contest hall, 6 - 7 unused?, 8 - 12 museum
/*0x3030*/ struct DaycareData daycare;
/*0x3150*/ struct LinkBattleRecord linkBattleRecords[5];
/*0x31A0*/ u8 filler_31A0[8];
/*0x31A0*/ u8 unk_31A0;
/*0x31A1*/ u8 filler_31A1[7];
/*0x31A8*/ u8 giftRibbons[52];
/*0x31DC*/ struct Roamer roamer;
/*0x31F8*/ struct EnigmaBerry enigmaBerry;

535
include/global.tv.h Normal file
View File

@ -0,0 +1,535 @@
#ifndef GUARD_GLOBAL_TV_H
#define GUARD_GLOBAL_TV_H
enum
{
TVSHOW_OFF_AIR,
TVSHOW_FAN_CLUB_LETTER = 1,
TVSHOW_RECENT_HAPPENINGS,
TVSHOW_PKMN_FAN_CLUB_OPINIONS,
TVSHOW_UNKN_SHOWTYPE_04,
TVSHOW_NAME_RATER_SHOW,
TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE,
TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE,
TVSHOW_CONTEST_LIVE_UPDATES,
TVSHOW_3_CHEERS_FOR_POKEBLOCKS,
TVSHOW_BATTLE_UPDATE,
TVSHOW_FAN_CLUB_SPECIAL,
TVSHOW_CONTEST_LIVE_UPDATES_2,
TVSHOW_POKEMON_TODAY_CAUGHT = 21,
TVSHOW_SMART_SHOPPER,
TVSHOW_POKEMON_TODAY_FAILED,
TVSHOW_FISHING_ADVICE,
TVSHOW_WORLD_OF_MASTERS,
TVSHOW_TODAYS_RIVAL_TRAINER,
TVSHOW_TREND_WATCHER,
TVSHOW_TREASURE_INVESTIGATORS,
TVSHOW_FIND_THAT_GAMER,
TVSHOW_BREAKING_NEWS,
TVSHOW_SECRET_BASE_VISIT,
TVSHOW_LOTTO_WINNER,
TVSHOW_BATTLE_SEMINAR,
TVSHOW_TRAINER_FAN_CLUB,
TVSHOW_CUTIES,
TVSHOW_FRONTIER,
TVSHOW_NUMBER_ONE,
TVSHOW_SECRET_BASE_SECRETS,
TVSHOW_SAFARI_FAN_CLUB,
TVSHOW_MASS_OUTBREAK = 41,
};
typedef union // size = 0x24
{
// Common
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u8 pad02[26];
/*0x1C*/ u8 srcTrainerId3Lo;
/*0x1D*/ u8 srcTrainerId3Hi;
/*0x1E*/ u8 srcTrainerId2Lo;
/*0x1F*/ u8 srcTrainerId2Hi;
/*0x20*/ u8 srcTrainerIdLo;
/*0x21*/ u8 srcTrainerIdHi;
/*0x22*/ u8 trainerIdLo;
/*0x23*/ u8 trainerIdHi;
} common;
// Local shows
// TVSHOW_FAN_CLUB_LETTER
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u16 species;
/*0x04*/ u16 words[6];
/*0x10*/ u8 playerName[8];
/*0x18*/ u8 language;
} fanclubLetter;
// TVSHOW_RECENT_HAPPENINGS
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u16 var02;
/*0x04*/ u16 words[6];
/*0x10*/ u8 playerName[8];
/*0x18*/ u8 language;
} recentHappenings;
// TVSHOW_PKMN_FAN_CLUB_OPINIONS
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u16 species;
/*0x04*/ u8 friendshipHighNybble:4;
/*0x04*/ u8 questionAsked:4;
/*0x05*/ u8 playerName[8];
/*0x0D*/ u8 language;
/*0x0E*/ u8 pokemonNameLanguage;
/*0x0F*/ u8 filler_0F[1];
/*0x10*/ u8 nickname[8];
/*0x18*/ u8 filler_18[4];
/*0x1C*/ u16 words[4];
} fanclubOpinions;
// TVSHOW_UNKN_SHOWTYPE_04 (dummied out)
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u8 pad02[4];
/*0x06*/ u16 var06;
/*0x08*/ u8 pad_08[3];
/*0x0b*/ u8 string_0b[12];
/*0x17*/ u8 language;
} unkShow04;
// TVSHOW_NAME_RATER_SHOW
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u16 species;
/*0x04*/ u8 pokemonName[11];
/*0x0F*/ u8 trainerName[11];
/*0x1A*/ u8 random;
/*0x1B*/ u8 random2;
/*0x1C*/ u16 randomSpecies;
/*0x1E*/ u8 language;
/*0x1F*/ u8 pokemonNameLanguage;
} nameRaterShow;
// TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE (contest)
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u16 species;
/*0x04*/ u16 words[2];
/*0x08*/ u8 pokemonNickname[11];
/*0x13*/ u8 contestCategory:3;
/*0x13*/ u8 contestRank:2;
/*0x13*/ u8 contestResult:2;
/*0x14*/ u16 move;
/*0x16*/ u8 playerName[8];
/*0x1E*/ u8 language;
/*0x1F*/ u8 pokemonNameLanguage;
} bravoTrainer;
// TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u8 trainerName[8];
/*0x0A*/ u16 species;
/*0x0C*/ u8 pokemonName[8];
/*0x14*/ u16 defeatedSpecies;
/*0x16*/ u16 numFights;
/*0x18*/ u16 words[1];
/*0x1A*/ u8 btLevel;
/*0x1B*/ u8 interviewResponse;
/*0x1C*/ bool8 wonTheChallenge;
/*0x1D*/ u8 language;
/*0x1E*/ u8 pokemonNameLanguage;
} bravoTrainerTower;
// TVSHOW_CONTEST_LIVE_UPDATES
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u16 winningSpecies;
/*0x04*/ u8 winningTrainerName[8];
/*0x0C*/ u8 appealFlags2;
/*0x0D*/ u8 round1Rank;
/*0x0e*/ u8 round2Rank;
/*0x0f*/ u8 appealFlags1;
/*0x10*/ u16 move;
/*0x12*/ u16 species;
/*0x14*/ u8 playerName[8];
/*0x1C*/ u8 category;
/*0x1D*/ u8 language;
/*0x1E*/ u8 winningTrainerLanguage;
} contestLiveUpdates;
// TVSHOW_3_CHEERS_FOR_POKEBLOCKS
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u8 sheen;
/*0x03*/ u8 flavor:3;
/*0x03*/ u8 unk_03_3:2;
/*0x04*/ u8 worstBlenderName[8];
/*0x0C*/ u8 playerName[8];
/*0x14*/ u8 language;
/*0x15*/ u8 worstBlenderLanguage;
} threeCheers;
// TVSHOW_BATTLE_UPDATE
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u16 species;
/*0x04*/ u8 playerName[8];
/*0x0C*/ u8 linkOpponentName[8];
/*0x14*/ u16 move;
/*0x16*/ u16 species2;
/*0x18*/ u8 battleType;
/*0x19*/ u8 language;
/*0x1A*/ u8 linkOpponentLanguage;
} battleUpdate;
// TVSHOW_FAN_CLUB_SPECIAL
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u8 playerName[8];
/*0x0a*/ u8 idLo;
/*0x0b*/ u8 idHi;
/*0x0c*/ u8 idolName[8];
/*0x14*/ u16 words[1];
/*0x16*/ u8 score;
/*0x17*/ u8 language;
/*0x18*/ u8 idolNameLanguage;
} fanClubSpecial;
// TVSHOW_CONTEST_LIVE_UPDATES_2
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u8 playerName[8];
/*0x0a*/ u8 contestCategory;
/*0x0b*/ u8 nickname[11];
/*0x16*/ u8 pokeblockState;
/*0x17*/ u8 language;
/*0x18*/ u8 pokemonNameLanguage;
} contestLiveUpdates2;
// Record Mixing Shows
// TVSHOW_POKEMON_TODAY_CAUGHT
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u8 language;
/*0x03*/ u8 language2;
/*0x04*/ u8 nickname[11];
/*0x0F*/ u8 ball;
/*0x10*/ u16 species;
/*0x12*/ u8 nBallsUsed;
/*0x13*/ u8 playerName[8];
} pokemonToday;
// TVSHOW_SMART_SHOPPER
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u8 priceReduced;
/*0x03*/ u8 language;
/*0x04*/ u8 pad04[2];
/*0x06*/ u16 itemIds[3];
/*0x0C*/ u16 itemAmounts[3];
/*0x12*/ u8 shopLocation;
/*0x13*/ u8 playerName[8];
} smartshopperShow;
// TVSHOW_POKEMON_TODAY_FAILED
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u8 language;
/*0x03*/ u8 pad03[9];
/*0x0c*/ u16 species;
/*0x0e*/ u16 species2;
/*0x10*/ u8 nBallsUsed;
/*0x11*/ u8 outcome;
/*0x12*/ u8 location;
/*0x13*/ u8 playerName[8];
} pokemonTodayFailed;
// TVSHOW_FISHING_ADVICE
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u8 nBites;
/*0x03*/ u8 nFails;
/*0x04*/ u16 species;
/*0x06*/ u8 language;
/*0x07*/ u8 pad07[12];
/*0x13*/ u8 playerName[8];
} pokemonAngler;
// TVSHOW_WORLD_OF_MASTERS
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u16 numPokeCaught;
/*0x04*/ u16 caughtPoke;
/*0x06*/ u16 steps;
/*0x08*/ u16 species;
/*0x0a*/ u8 location;
/*0x0b*/ u8 language;
/*0x0c*/ u8 pad0c[7];
/*0x13*/ u8 playerName[8];
} worldOfMasters;
// TVSHOW_TODAYS_RIVAL_TRAINER
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u16 dexCount;
/*0x04*/ u8 badgeCount;
/*0x05*/ u8 nSilverSymbols;
/*0x06*/ u8 nGoldSymbols;
/*0x07*/ u8 location;
/*0x08*/ u16 battlePoints;
/*0x0a*/ u16 mapDataId;
/*0x0c*/ u8 language;
/*0x0d*/ u8 filler_0d[6];
/*0x13*/ u8 playerName[8];
} rivalTrainer;
// TVSHOW_TREND_WATCHER
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u8 filler_02[2];
/*0x04*/ u16 words[2];
/*0x08*/ u8 gender;
/*0x09*/ u8 language;
/*0x0a*/ u8 filler_0a[9];
/*0x13*/ u8 playerName[8];
} trendWatcher;
// TVSHOW_TREASURE_INVESTIGATORS
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u16 item;
/*0x04*/ u8 location;
/*0x05*/ u8 language;
/*0x06*/ u16 mapDataId;
/*0x08*/ u8 filler_08[11];
/*0x13*/ u8 playerName[8];
} treasureInvestigators;
// TVSHOW_FIND_THAT_GAMER
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u8 won;
/*0x03*/ u8 whichGame;
/*0x04*/ u16 nCoins;
/*0x06*/ u8 filler_06[2];
/*0x08*/ u8 language;
/*0x09*/ u8 filler_09[10];
/*0x13*/ u8 playerName[8];
} findThatGamer;
// TVSHOW_BREAKING_NEWS
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u16 lastOpponentSpecies;
/*0x04*/ u8 location;
/*0x05*/ u8 outcome;
/*0x06*/ u16 caughtMonBall;
/*0x08*/ u16 balls;
/*0x0a*/ u16 poke1Species;
/*0x0c*/ u16 lastUsedMove;
/*0x0e*/ u8 language;
/*0x0f*/ u8 filler_0f[4];
/*0x13*/ u8 playerName[8];
} breakingNews;
// TVSHOW_SECRET_BASE_VISIT
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u8 avgLevel;
/*0x03*/ u8 nDecorations;
/*0x04*/ u8 decorations[4];
/*0x08*/ u16 species;
/*0x0a*/ u16 move;
/*0x0c*/ u8 language;
/*0x0d*/ u8 filler_0d[6];
/*0x13*/ u8 playerName[8];
} secretBaseVisit;
// TVSHOW_LOTTO_WINNER
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u16 item;
/*0x04*/ u8 whichPrize;
/*0x05*/ u8 language;
/*0x06*/ u8 filler_06[13];
/*0x13*/ u8 playerName[8];
} lottoWinner;
// TVSHOW_BATTLE_SEMINAR
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u16 move;
/*0x04*/ u16 foeSpecies;
/*0x06*/ u16 species;
/*0x08*/ u16 otherMoves[3];
/*0x0e*/ u16 betterMove;
/*0x10*/ u8 nOtherMoves;
/*0x11*/ u8 language;
/*0x12*/ u8 filler_12[1];
/*0x13*/ u8 playerName[8];
} battleSeminar;
// TVSHOW_TRAINER_FAN_CLUB
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u8 filler_02[2];
/*0x04*/ u16 words[2];
/*0x08*/ u8 language;
/*0x09*/ u8 filler_09[10];
/*0x13*/ u8 playerName[8];
} trainerFanClub;
// TVSHOW_CUTIES
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u8 nRibbons;
/*0x03*/ u8 selectedRibbon;
/*0x04*/ u8 nickname[11];
/*0x0f*/ u8 language;
/*0x10*/ u8 pokemonNameLanguage;
/*0x11*/ u8 filler_12[2];
/*0x13*/ u8 playerName[8];
} cuties;
// TVSHOW_FRONTIER
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u16 winStreak;
/*0x04*/ u16 species1;
/*0x06*/ u16 species2;
/*0x08*/ u16 species3;
/*0x0a*/ u16 species4;
/*0x0c*/ u8 language;
/*0x0d*/ u8 facility;
/*0x0e*/ u8 filler_0e[5];
/*0x13*/ u8 playerName[8];
} frontier;
// TVSHOW_NUMBER_ONE
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u16 count;
/*0x04*/ u8 actionIdx;
/*0x05*/ u8 language;
/*0x06*/ u8 filler_06[13];
/*0x13*/ u8 playerName[8];
} numberOne;
// TVSHOW_SECRET_BASE_SECRETS
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u16 stepsInBase;
/*0x04*/ u8 baseOwnersName[8];
/*0x0c*/ u32 flags;
/*0x10*/ u16 item;
/*0x12*/ u8 savedState;
/*0x13*/ u8 playerName[8];
/*0x1b*/ u8 language;
/*0x1c*/ u8 baseOwnersNameLanguage;
} secretBaseSecrets;
// TVSHOW_SAFARI_FAN_CLUB
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u8 nMonsCaught;
/*0x03*/ u8 nPkblkUsed;
/*0x04*/ u8 language;
/*0x05*/ u8 filler_05[14];
/*0x13*/ u8 playerName[8];
} safariFanClub;
// Mass Outbreak
// TVSHOW_MASS_OUTBREAK
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u8 var02;
/*0x03*/ u8 var03;
/*0x04*/ u16 moves[4];
/*0x0C*/ u16 species;
/*0x0E*/ u16 var0E;
/*0x10*/ u8 locationMapNum;
/*0x11*/ u8 locationMapGroup;
/*0x12*/ u8 var12;
/*0x13*/ u8 probability;
/*0x14*/ u8 level;
/*0x15*/ u8 var15;
/*0x16*/ u16 daysLeft;
/*0x18*/ u8 language;
} massOutbreak;
} TVShow;
enum {
POKENEWS_NONE,
POKENEWS_SLATEPORT,
POKENEWS_GAME_CORNER,
POKENEWS_LILYCOVE,
POKENEWS_BLENDMASTER
};
typedef struct // 2b50
{
u8 kind;
u8 state;
u16 days;
} PokeNews;
struct GabbyAndTyData
{
/*2ba4*/ u16 mon1;
/*2ba6*/ u16 mon2;
/*2ba8*/ u16 lastMove;
/*2baa*/ u16 quote[1];
/*2bac*/ u8 mapnum;
/*2bad*/ u8 battleNum;
/*2bae*/ u8 battleTookMoreThanOneTurn:1;
/*2bae*/ u8 playerLostAMon:1;
/*2bae*/ u8 playerUsedAnItem:1;
/*2bae*/ u8 playerThrewABall:1;
/*2bae*/ u8 onAir:1;
/*2bae*/ u8 valA_5:3;
/*2baf*/ u8 battleTookMoreThanOneTurn2:1;
/*2baf*/ u8 playerLostAMon2:1;
/*2baf*/ u8 playerUsedAnItem2:1;
/*2baf*/ u8 playerThrewABall2:1;
/*2baf*/ u8 valB_4:4;
};
#endif //GUARD_GLOBAL_TV_H

View File

@ -0,0 +1,13 @@
#ifndef GUARD_international_string_util_H
#define GUARD_international_string_util_H
// Exported type declarations
// Exported RAM declarations
// Exported ROM declarations
void TVShowConvertInternationalString(void *dest, const void *src, u8 language);
u32 sub_81DB604(const u8 *);
#endif //GUARD_international_string_util_H

View File

@ -58,5 +58,6 @@ ItemUseFunc ItemId_GetFieldFunc(u16 itemId);
u8 ItemId_GetBattleUsage(u16 itemId);
ItemUseFunc ItemId_GetBattleFunc(u16 itemId);
u8 ItemId_GetSecondaryId(u16 itemId);
u16 itemid_get_market_price(u16 itemId);
#endif // ITEM_H

View File

@ -178,6 +178,7 @@ u32 LinkMain1(u8 *, u16 *, u16[CMD_LENGTH][MAX_LINK_PLAYERS]);
void LinkVSync(void);
void Timer3Intr(void);
void SerialCB(void);
u8 GetLinkPlayerCount(void);
void sub_800E0E8(void);
bool8 sub_800A520(void);

View File

@ -2,7 +2,7 @@
#define GUARD_MALLOC_H
#define malloc Alloc
#define calloc AllocZeroed
#define calloc(ct, sz) AllocZeroed((ct) * (sz))
#define free Free
extern u8 gHeap[];

View File

@ -359,6 +359,7 @@ enum
MOVE_DOOM_DESIRE,
MOVE_PSYCHO_BOOST,
};
extern const u8 gMoveNames[][13];
#define LAST_MOVE_INDEX MOVE_PSYCHO_BOOST

View File

@ -16,6 +16,8 @@ enum
FLAG_SET_CAUGHT
};
u8 GetSetPokedexFlag(u16 nationalNum, u8 caseId);
s8 GetSetPokedexFlag(u16 nationalNum, u8 caseId);
u16 pokedex_count(u8);
u16 sub_80C0844(u8);
#endif // GUARD_POKEDEX_H

View File

@ -2,5 +2,7 @@
#define GUARD_POKEMON_STORAGE_SYSTEM_H
u8* GetBoxNamePtr(u8 boxNumber);
struct BoxPokemon *GetBoxedMonPtr(u8, u8);
void SetBoxMonNickFromAnyBox(u8, u8, u8 *);
#endif // GUARD_POKEMON_STORAGE_SYSTEM_H

227
include/region_map.h Normal file
View File

@ -0,0 +1,227 @@
#ifndef GUARD_REGION_MAP_H
#define GUARD_REGION_MAP_H
// Exported type declarations
enum {
REGION_MAP_LITTLEROOT_TOWN,
REGION_MAP_OLDALE_TOWN,
REGION_MAP_DEWFORD_TOWN,
REGION_MAP_LAVARIDGE_TOWN,
REGION_MAP_FALLARBOR_TOWN,
REGION_MAP_VERDANTURF_TOWN,
REGION_MAP_PACIFIDLOG_TOWN,
REGION_MAP_PETALBURG_CITY,
REGION_MAP_SLATEPORT_CITY,
REGION_MAP_MAUVILLE_CITY,
REGION_MAP_RUSTBORO_CITY,
REGION_MAP_FORTREE_CITY,
REGION_MAP_LILYCOVE_CITY,
REGION_MAP_MOSSDEEP_CITY,
REGION_MAP_SOOTOPOLIS_CITY,
REGION_MAP_EVER_GRANDE_CITY,
REGION_MAP_ROUTE_101,
REGION_MAP_ROUTE_102,
REGION_MAP_ROUTE_103,
REGION_MAP_ROUTE_104,
REGION_MAP_ROUTE_105,
REGION_MAP_ROUTE_106,
REGION_MAP_ROUTE_107,
REGION_MAP_ROUTE_108,
REGION_MAP_ROUTE_109,
REGION_MAP_ROUTE_110,
REGION_MAP_ROUTE_111,
REGION_MAP_ROUTE_112,
REGION_MAP_ROUTE_113,
REGION_MAP_ROUTE_114,
REGION_MAP_ROUTE_115,
REGION_MAP_ROUTE_116,
REGION_MAP_ROUTE_117,
REGION_MAP_ROUTE_118,
REGION_MAP_ROUTE_119,
REGION_MAP_ROUTE_120,
REGION_MAP_ROUTE_121,
REGION_MAP_ROUTE_122,
REGION_MAP_ROUTE_123,
REGION_MAP_ROUTE_124,
REGION_MAP_ROUTE_125,
REGION_MAP_ROUTE_126,
REGION_MAP_ROUTE_127,
REGION_MAP_ROUTE_128,
REGION_MAP_ROUTE_129,
REGION_MAP_ROUTE_130,
REGION_MAP_ROUTE_131,
REGION_MAP_ROUTE_132,
REGION_MAP_ROUTE_133,
REGION_MAP_ROUTE_134,
REGION_MAP_UNDERWATER_124,
REGION_MAP_UNDERWATER_125,
REGION_MAP_UNDERWATER_126,
REGION_MAP_UNDERWATER_127,
REGION_MAP_UNDERWATER_128,
REGION_MAP_GRANITE_CAVE,
REGION_MAP_MT_CHIMNEY,
REGION_MAP_SAFARI_ZONE,
REGION_MAP_BATTLE_FRONTIER,
REGION_MAP_PETALBURG_WOODS,
REGION_MAP_RUSTURF_TUNNEL,
REGION_MAP_ABANDONED_SHIP,
REGION_MAP_NEW_MAUVILLE,
REGION_MAP_METEOR_FALLS,
REGION_MAP_METEOR_FALLS2,
REGION_MAP_MT_PYRE,
REGION_MAP_AQUA_HIDEOUT_OLD,
REGION_MAP_SHOAL_CAVE,
REGION_MAP_SEAFLOOR_CAVERN,
REGION_MAP_UNDERWATER,
REGION_MAP_VICTORY_ROAD,
REGION_MAP_MIRAGE_ISLAND,
REGION_MAP_CAVE_OF_ORIGIN,
REGION_MAP_SOUTHERN_ISLAND,
REGION_MAP_FIERY_PATH,
REGION_MAP_FIERY_PATH2,
REGION_MAP_JAGGED_PASS,
REGION_MAP_JAGGED_PASS2,
REGION_MAP_SEALED_CHAMBER,
REGION_MAP_UNDERWATER_SEALED_CHAMBER,
REGION_MAP_SCORCHED_SLAB,
REGION_MAP_ISLAND_CAVE,
REGION_MAP_DESERT_RUINS,
REGION_MAP_ANCIENT_TOMB,
REGION_MAP_INSIDE_OF_TRUCK,
REGION_MAP_SKY_PILLAR,
REGION_MAP_SECRET_BASE,
REGION_MAP_NONE,
REGION_MAP_PALLET_TOWN,
REGION_MAP_VIRIDIAN_CITY,
REGION_MAP_PEWTER_CITY,
REGION_MAP_CERULEAN_CITY,
REGION_MAP_LAVENDER_TOWN,
REGION_MAP_VERMILION_CITY,
REGION_MAP_CELADON_CITY,
REGION_MAP_FUCHSIA_CITY,
REGION_MAP_CINNABAR_ISLAND,
REGION_MAP_INDIGO_PLATEAU,
REGION_MAP_SAFFRON_CITY,
REGION_MAP_ROUTE_4,
REGION_MAP_ROUTE_10,
REGION_MAP_ROUTE_1,
REGION_MAP_ROUTE_2,
REGION_MAP_ROUTE_3,
REGION_MAP_ROUTE_4_2,
REGION_MAP_ROUTE_5,
REGION_MAP_ROUTE_6,
REGION_MAP_ROUTE_7,
REGION_MAP_ROUTE_8,
REGION_MAP_ROUTE_9,
REGION_MAP_ROUTE_10_2,
REGION_MAP_ROUTE_11,
REGION_MAP_ROUTE_12,
REGION_MAP_ROUTE_13,
REGION_MAP_ROUTE_14,
REGION_MAP_ROUTE_15,
REGION_MAP_ROUTE_16,
REGION_MAP_ROUTE_17,
REGION_MAP_ROUTE_18,
REGION_MAP_ROUTE_19,
REGION_MAP_ROUTE_20,
REGION_MAP_ROUTE_21,
REGION_MAP_ROUTE_22,
REGION_MAP_ROUTE_23,
REGION_MAP_ROUTE_24,
REGION_MAP_ROUTE_25,
REGION_MAP_VIRIDIAN_FOREST,
REGION_MAP_MT_MOON,
REGION_MAP_S_S_ANNE,
REGION_MAP_UNDERGROUND_PATH,
REGION_MAP_UNDERGROUND_PATH_2,
REGION_MAP_DIGLETTS_CAVE,
REGION_MAP_KANTO_VICTORY_ROAD,
REGION_MAP_ROCKET_HIDEOUT,
REGION_MAP_SILPH_CO,
REGION_MAP_POKEMON_MANSION,
REGION_MAP_KANTO_SAFARI_ZONE,
REGION_MAP_POKEMON_LEAGUE,
REGION_MAP_ROCK_TUNNEL,
REGION_MAP_SEAFOAM_ISLANDS,
REGION_MAP_POKEMON_TOWER,
REGION_MAP_CERULEAN_CAVE,
REGION_MAP_POWER_PLANT,
REGION_MAP_ONE_ISLAND,
REGION_MAP_TWO_ISLAND,
REGION_MAP_THREE_ISLAND,
REGION_MAP_FOUR_ISLAND,
REGION_MAP_FIVE_ISLAND,
REGION_MAP_SEVEN_ISLAND,
REGION_MAP_SIX_ISLAND,
REGION_MAP_KINDLE_ROAD,
REGION_MAP_TREASURE_BEACH,
REGION_MAP_CAPE_BRINK,
REGION_MAP_BOND_BRIDGE,
REGION_MAP_THREE_ISLE_PORT,
REGION_MAP_SEVII_ISLE_6,
REGION_MAP_SEVII_ISLE_7,
REGION_MAP_SEVII_ISLE_8,
REGION_MAP_SEVII_ISLE_9,
REGION_MAP_RESORT_GORGEOUS,
REGION_MAP_WATER_LABYRINTH,
REGION_MAP_FIVE_ISLE_MEADOW,
REGION_MAP_MEMORIAL_PILLAR,
REGION_MAP_OUTCAST_ISLAND,
REGION_MAP_GREEN_PATH,
REGION_MAP_WATER_PATH,
REGION_MAP_RUIN_VALLEY,
REGION_MAP_TRAINER_TOWER,
REGION_MAP_CANYON_ENTRANCE,
REGION_MAP_SEVAULT_CANYON,
REGION_MAP_TANOBY_RUINS,
REGION_MAP_SEVII_ISLE_22,
REGION_MAP_SEVII_ISLE_23,
REGION_MAP_SEVII_ISLE_24,
REGION_MAP_NAVEL_ROCK,
REGION_MAP_MT_EMBER,
REGION_MAP_BERRY_FOREST,
REGION_MAP_ICEFALL_CAVE,
REGION_MAP_ROCKET_WAREHOUSE,
REGION_MAP_TRAINER_TOWER_2,
REGION_MAP_DOTTED_HOLE,
REGION_MAP_LOST_CAVE,
REGION_MAP_PATTERN_BUSH,
REGION_MAP_ALTERING_CAVE,
REGION_MAP_TANOBY_CHAMBERS,
REGION_MAP_THREE_ISLE_PATH,
REGION_MAP_TANOBY_KEY,
REGION_MAP_BIRTH_ISLAND,
REGION_MAP_MONEAN_CHAMBER,
REGION_MAP_LIPTOO_CHAMBER,
REGION_MAP_WEEPTH_CHAMBER,
REGION_MAP_DILFORD_CHAMBER,
REGION_MAP_SCUFIB_CHAMBER,
REGION_MAP_RIXY_CHAMBER,
REGION_MAP_VIAPOIS_CHAMBER,
REGION_MAP_EMBER_SPA,
REGION_MAP_SPECIAL_AREA,
REGION_MAP_AQUA_HIDEOUT,
REGION_MAP_MAGMA_HIDEOUT,
REGION_MAP_MIRAGE_TOWER,
REGION_MAP_BIRTH_ISLAND_2,
REGION_MAP_FARAWAY_ISLAND,
REGION_MAP_ARTISAN_CAVE,
REGION_MAP_MARINE_CAVE,
REGION_MAP_UNDERWATER_MARINE_CAVE,
REGION_MAP_TERRA_CAVE,
REGION_MAP_UNDERWATER_TERRA_CAVE,
REGION_MAP_UNDERWATER_UNK1,
REGION_MAP_UNDERWATER_UNK2,
REGION_MAP_DESERT_UNDERPASS,
REGION_MAP_ALTERING_CAVE_2,
REGION_MAP_NAVEL_ROCK2,
REGION_MAP_TRAINER_HILL
};
// Exported RAM declarations
// Exported ROM declarations
void GetMapName(u8 *, u16, u16);
#endif //GUARD_REGION_MAP_H

View File

@ -1,6 +1,7 @@
#ifndef GUARD_RESHOW_BATTLE_SCREEN_H
#define GUARD_RESHOW_BATTLE_SCREEN_H
void nullsub_35(void);
void ReshowBattleScreenAfterMenu(void);
#endif // GUARD_RESHOW_BATTLE_SCREEN_H

View File

@ -29,5 +29,6 @@ const struct MapHeader *get_mapheader_by_bank_and_number(u8, u8);
void FieldObjectMoveDestCoords(struct MapObject *, u32, s16 *, s16 *);
void sub_8086230(void);
void c2_exit_to_overworld_2_switch(void);
void c2_exit_to_overworld_1_continue_scripts_restart_music(void);
#endif //GUARD_ROM4_H

View File

@ -2,5 +2,6 @@
#define GUARD_ROM6_H
void sub_81357FC(u8, void(void));
u8 GetIdxOfFirstPartyMemberThatIsNotAnEgg(void);
#endif //GUARD_ROM6_H

11
include/script_menu.h Normal file
View File

@ -0,0 +1,11 @@
#ifndef GUARD_SCRIPT_MENU_H
#define GUARD_SCRIPT_MENU_H
// Exported type declarations
// Exported RAM declarations
// Exported ROM declarations
extern const u8 *const gUnknown_0858BAF0[9];
#endif //GUARD_SCRIPT_MENU_H

11
include/secret_base.h Normal file
View File

@ -0,0 +1,11 @@
#ifndef GUARD_SECRET_BASE_H
#define GUARD_SECRET_BASE_H
// Exported type declarations
// Exported RAM declarations
// Exported ROM declarations
void sub_80E980C(void);
#endif //GUARD_SECRET_BASE_H

12
include/shop.h Normal file
View File

@ -0,0 +1,12 @@
#ifndef GUARD_SHOP_H
#define GUARD_SHOP_H
// Exported type declarations
// Exported RAM declarations
extern EWRAM_DATA struct ItemSlot gUnknown_02039F80[3];
// Exported ROM declarations
#endif //GUARD_SHOP_H

View File

@ -449,5 +449,6 @@ enum
};
#define NUM_SPECIES SPECIES_EGG
extern const u8 gSpeciesNames[][11];
#endif // GUARD_SPECIES_H

View File

@ -31,7 +31,7 @@ u8 *StringFillWithTerminator(u8 *dest, u16 n);
u8 *StringCopyN_Multibyte(u8 *dest, u8 *src, u32 n);
u32 StringLength_Multibyte(u8 *str);
u8 *WriteColorChangeControlCode(u8 *dest, u32 colorType, u8 color);
bool32 sub_8009228(u8 *str);
bool32 IsStringJapanese(u8 *str);
bool32 sub_800924C(u8 *str, s32 n);
u8 GetExtCtrlCodeLength(u8 code);
static const u8 *SkipExtCtrlCode(const u8 *s);

33
include/strings.h Normal file
View File

@ -0,0 +1,33 @@
#ifndef GUARD_strings_H
#define GUARD_strings_H
extern const u8 gText_Lv50[];
extern const u8 gText_OpenLevel[];
extern const u8 gText_Mom[];
extern const u8 gText_Dad[];
extern const u8 gText_Cool[];
extern const u8 gText_Beauty[];
extern const u8 gText_Cute[];
extern const u8 gText_Smart[];
extern const u8 gText_Tough[];
extern const u8 gText_Single[];
extern const u8 gText_Double[];
extern const u8 gText_Spicy2[];
extern const u8 gText_Dry2[];
extern const u8 gText_Sweet2[];
extern const u8 gText_Bitter2[];
extern const u8 gText_Sour2[];
extern const u8 gText_Excellent[];
extern const u8 gText_VeryGood[];
extern const u8 gText_Good[];
extern const u8 gText_SoSo[];
extern const u8 gText_Bad[];
extern const u8 gText_TheWorst[];
extern const u8 gText_Slots[];
extern const u8 gText_Roulette[];
extern const u8 gText_Jackpot[];
extern const u8 gText_First[];
extern const u8 gText_Second[];
extern const u8 gText_Third[];
#endif //GUARD_strings_H

21
include/tv.h Normal file
View File

@ -0,0 +1,21 @@
#ifndef GUARD_TV_H
#define GUARD_TV_H
// Exported type declarations
// Exported RAM declarations
// Exported ROM declarations
extern u8 *const gTVStringVarPtrs[3];
void ClearTVShowData(void);
void PutPokemonTodayCaughtOnAir(void);
u32 GetPlayerIDAsU32(void);
bool8 GetPriceReduction(u8 newsKind);
u8 GetRibbonCount(struct Pokemon *pokemon);
void sub_80EE184(void);
void sub_80F14F8(TVShow *shows);
int sub_80EF370(int value);
#endif //GUARD_TV_H

View File

@ -53,4 +53,14 @@
#define VAR_0x40BC 0x40BC
#define VAR_0x40C2 0x40C2
#define VAR_FRONTIER_FACILITY 0x40CF
#define VAR_DAILY_SLOTS 0x40E6
#define VAR_DAILY_WILDS 0x40E7
#define VAR_DAILY_BLENDER 0x40E8
#define VAR_DAILY_PLANTED_BERRIES 0x40E9
#define VAR_DAILY_PICKED_BERRIES 0x40EA
#define VAR_DAILY_ROULETTE 0x40EB
#define VAR_DAILY_BP 0x40F1
#endif // GUARD_VARS_H

View File

@ -117,7 +117,7 @@ SECTIONS {
asm/battle_anim.o(.text);
asm/rom_80A5C6C.o(.text);
src/task.o(.text);
asm/reshow_battle_screen.o(.text);
src/reshow_battle_screen.o(.text);
asm/battle_anim_80A9C70.o(.text);
asm/title_screen.o(.text);
asm/field_screen.o(.text);
@ -149,7 +149,7 @@ SECTIONS {
asm/contest_effect.o(.text);
asm/record_mixing.o(.text);
asm/secret_base.o(.text);
asm/tv.o(.text);
src/tv.o(.text);
asm/contest_link_80F57C4.o(.text);
asm/script_pokemon_util_80F87D8.o(.text);
asm/field_poison.o(.text);
@ -388,7 +388,7 @@ SECTIONS {
data/contest_effect.o(.rodata);
data/record_mixing.o(.rodata);
data/secret_base.o(.rodata);
data/tv.o(.rodata);
src/tv.o(.rodata);
data/contest_link_80F57C4.o(.rodata);
data/script_pokemon_util_80F87D8.o(.rodata);
src/pokemon_size_record.o(.rodata)

View File

@ -40,6 +40,7 @@
#include "trainer_classes.h"
#include "evolution_scene.h"
#include "roamer.h"
#include "tv.h"
#include "safari_zone.h"
#include "battle_string_ids.h"
@ -64,7 +65,6 @@ struct UnknownPokemonStruct2
/*0x1D*/ u8 language;
};
extern u32 gBattleTypeFlags;
extern u8 gBattleCommunication[];
extern u8 gBattleTerrain;
extern u16 gBattle_BG0_X;
@ -88,7 +88,6 @@ extern void (*gBattleMainFunc)(void);
extern void (*gUnknown_030061E8)(void);
extern struct UnknownPokemonStruct2 gUnknown_02022FF8[3]; // what is it used for?
extern struct UnknownPokemonStruct2* gUnknown_02023058; // what is it used for?
extern u8 gBattleOutcome;
extern u8 gUnknown_02039B28[]; // possibly a struct?
extern struct UnknownStruct6 gUnknown_02038C28; // todo: identify & document
extern struct MusicPlayerInfo gMPlay_SE1;
@ -139,7 +138,6 @@ extern u8 gActionForBanks[BATTLE_BANKS_COUNT];
extern u16 gChosenMovesByBanks[BATTLE_BANKS_COUNT];
extern u8 gCurrentActionFuncId;
extern u8 gLastUsedAbility;
extern u16 gLastUsedItem;
extern u8 gUnknown_0203CF00[];
extern const u8* gBattlescriptPtrsForSelection[BATTLE_BANKS_COUNT];
extern const u8* gBattlescriptCurrInstr;
@ -152,7 +150,6 @@ extern u8 gCurrMovePos;
extern u8 gUnknown_020241E9;
extern u16 gLastUsedMove;
extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1];
extern const struct BattleMove gBattleMoves[];
extern const u16 gUnknown_08C004E0[]; // battle textbox palette
extern const struct BgTemplate gUnknown_0831AA08[];
@ -217,14 +214,12 @@ extern void sub_81B9150(void);
extern void sub_800AC34(void);
extern void sub_80B3AF8(u8 taskId); // cable club
extern void sub_8076918(u8 bank);
extern void sub_80729D0(u8 healthoxSpriteId);
extern void SetHealthboxSpriteVisible(u8 healthoxSpriteId);
extern void sub_81A56B4(void); // battle frontier 2
extern u8 sub_81A9E28(void); // battle frontier 2
extern void sub_81A56E8(u8 bank); // battle frontier 2
extern void sub_81B8FB0(u8, u8); // party menu
extern u8 pokemon_order_func(u8); // party menu
extern void sub_80EC728(void); // tv
extern void sub_80EE184(void); // tv
extern bool8 InBattlePyramid(void);
// this file's functions
@ -856,7 +851,7 @@ static void CB2_HandleStartBattle(void)
{
s32 i;
for (i = 0; i < 2 && (gLinkPlayers[i].version & 0xFF) == 3; i++);
for (i = 0; i < 2 && (gLinkPlayers[i].version & 0xFF) == VERSION_EMERALD; i++);
if (i == 2)
gBattleCommunication[MULTIUSE_STATE] = 16;
@ -2070,7 +2065,7 @@ static void sub_8038F34(void)
else
monsCount = 2;
for (i = 0; i < monsCount && (gLinkPlayers[i].version & 0xFF) == 3; i++);
for (i = 0; i < monsCount && (gLinkPlayers[i].version & 0xFF) == VERSION_EMERALD; i++);
if (!gSaveBlock2Ptr->field_CA9_b && i == monsCount)
{
@ -2439,7 +2434,7 @@ static void sub_8039838(struct Sprite *sprite)
if (sprite->animEnded)
{
sub_8076918(sprite->tBank);
sub_80729D0(gHealthBoxesIds[sprite->tBank]);
SetHealthboxSpriteVisible(gHealthBoxesIds[sprite->tBank]);
sprite->callback = sub_8039894;
StartSpriteAnimIfDifferent(sprite, 0);
BeginNormalPaletteFade(0x20000, 0, 10, 0, 0x2108);
@ -4924,7 +4919,7 @@ static void HandleEndTurn_FinishBattle(void)
}
}
}
sub_80EC728();
PutPokemonTodayCaughtOnAir();
}
if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK

View File

@ -11087,7 +11087,7 @@ static void atkEF_pokeball_catch_calculation(void)
{
if (gLastUsedItem == ITEM_MASTER_BALL)
{
gBattleResults.unk5_1 = 1;
gBattleResults.usedMasterBall = TRUE;
}
else
{

View File

@ -59,7 +59,7 @@ extern u8* GetMonNick(struct Pokemon* mon, u8* dst);
extern u8* GetBoxMonNick(struct BoxPokemon* boxMon, u8* dst);
extern u8 sav1_map_get_name(void);
extern s8 sub_8198C58(void);
extern void sub_81DB5E8(u8* str1, u8* str2, u8);
extern void TVShowConvertInternationalString(u8* str1, u8* str2, u8);
extern void sub_806A068(u16, u8);
extern void fade_screen(u8, u8);
extern void overworld_free_bg_tilemaps(void);
@ -404,8 +404,8 @@ static bool8 sub_807158C(struct DaycareData* daycare, u8 daycareId)
|| StringCompareWithoutExtCtrlCodes(gSaveBlock2Ptr->playerName, daycareMon->OT_name) != 0))
{
StringCopy(gStringVar1, nick);
sub_81DB5E8(gStringVar2, daycareMon->OT_name, daycareMon->language_maybe);
sub_81DB5E8(gStringVar3, daycareMon->monName, daycareMon->unknown);
TVShowConvertInternationalString(gStringVar2, daycareMon->OT_name, daycareMon->language_maybe);
TVShowConvertInternationalString(gStringVar3, daycareMon->monName, daycareMon->unknown);
return TRUE;
}
return FALSE;

View File

@ -17,6 +17,7 @@
#include "easy_chat.h"
#include "event_data.h"
#include "money.h"
#include "tv.h"
#include "coins.h"
#include "text.h"
@ -36,7 +37,6 @@ extern void sub_813624C(void); // clears something pokeblock related
extern void ResetPokedex(void);
extern void sub_8084400(void);
extern void ClearMailData(void);
extern void ClearTVShowData(void);
extern void ResetGabbyAndTy(void);
extern void ResetSecretBases(void);
extern void ResetLinkContestBoolean(void);

354
src/reshow_battle_screen.c Normal file
View File

@ -0,0 +1,354 @@
#include "global.h"
#include "reshow_battle_screen.h"
#include "battle.h"
#include "palette.h"
#include "main.h"
#include "unknown_task.h"
#include "text.h"
#include "gpu_regs.h"
#include "bg.h"
#include "battle_controllers.h"
#include "link.h"
#include "sprite.h"
#include "species.h"
#include "battle_interface.h"
extern u16 gBattle_BG0_X;
extern u16 gBattle_BG0_Y;
extern u16 gBattle_BG1_X;
extern u16 gBattle_BG1_Y;
extern u16 gBattle_BG2_X;
extern u16 gBattle_BG2_Y;
extern u16 gBattle_BG3_X;
extern u16 gBattle_BG3_Y;
extern u8 gReservedSpritePaletteCount;
extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT];
extern u8 gBankInMenu;
extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
extern u8 gNoOfAllBanks;
extern u32 gBattleTypeFlags;
extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT];
extern u8 gBattleMonForms[BATTLE_BANKS_COUNT];
extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT];
extern struct SpriteTemplate gUnknown_0202499C;
extern const union AnimCmd * const * const gMonAnimationsSpriteAnimsPtrTable[];
extern void dp12_8087EA4(void);
extern void trs_config(void);
extern bool8 IsDoubleBattle(void);
extern u8 sub_80A614C(u8 bank);
extern u8 sub_80A6138(u8 bank);
extern u8 sub_80A82E4(u8 bank);
extern void sub_806A068(u16 species, u8 bankIdentity);
extern void sub_806A12C(u16 backPicId, u8 bankIdentity);
extern u8 sub_80A5C6C(u8 bank, u8 caseId);
// this file's functions
static void CB2_ReshowBattleScreenAfterMenu(void);
static bool8 LoadBankSpriteGfx(u8 bank);
static void CreateBankSprite(u8 bank);
static void CreateHealthboxSprite(u8 bank);
static void sub_80A95F4(void);
void nullsub_35(void)
{
}
void ReshowBattleScreenAfterMenu(void)
{
gPaletteFade.bufferTransferDisabled = 1;
SetHBlankCallback(NULL);
SetVBlankCallback(NULL);
SetGpuReg(REG_OFFSET_MOSAIC, 0);
gBattleScripting.reshowMainState = 0;
gBattleScripting.reshowHelperState = 0;
SetMainCallback2(CB2_ReshowBattleScreenAfterMenu);
}
static void CB2_ReshowBattleScreenAfterMenu(void)
{
switch (gBattleScripting.reshowMainState)
{
case 0:
dp12_8087EA4();
trs_config();
SetBgAttribute(1, BG_CTRL_ATTR_VISIBLE, 0);
SetBgAttribute(2, BG_CTRL_ATTR_VISIBLE, 0);
ShowBg(0);
ShowBg(1);
ShowBg(2);
ShowBg(3);
ResetPaletteFade();
gBattle_BG0_X = 0;
gBattle_BG0_Y = 0;
gBattle_BG1_X = 0;
gBattle_BG1_Y = 0;
gBattle_BG2_X = 0;
gBattle_BG2_Y = 0;
gBattle_BG3_X = 0;
gBattle_BG3_Y = 0;
break;
case 1:
CpuFastFill(0, (void*)(VRAM), VRAM_SIZE);
break;
case 2:
LoadBattleTextboxAndBackground();
break;
case 3:
ResetSpriteData();
break;
case 4:
FreeAllSpritePalettes();
gReservedSpritePaletteCount = 4;
break;
case 5:
sub_805E350();
break;
case 6:
if (BattleLoadAllHealthBoxesGfx(gBattleScripting.reshowHelperState))
{
gBattleScripting.reshowHelperState = 0;
}
else
{
gBattleScripting.reshowHelperState++;
gBattleScripting.reshowMainState--;
}
break;
case 7:
if (!LoadBankSpriteGfx(0))
gBattleScripting.reshowMainState--;
break;
case 8:
if (!LoadBankSpriteGfx(1))
gBattleScripting.reshowMainState--;
break;
case 9:
if (!LoadBankSpriteGfx(2))
gBattleScripting.reshowMainState--;
break;
case 10:
if (!LoadBankSpriteGfx(3))
gBattleScripting.reshowMainState--;
break;
case 11:
CreateBankSprite(0);
break;
case 12:
CreateBankSprite(1);
break;
case 13:
CreateBankSprite(2);
break;
case 14:
CreateBankSprite(3);
break;
case 15:
CreateHealthboxSprite(0);
break;
case 16:
CreateHealthboxSprite(1);
break;
case 17:
CreateHealthboxSprite(2);
break;
case 18:
CreateHealthboxSprite(3);
break;
case 19:
{
u8 opponentBank;
u16 species;
LoadAndCreateEnemyShadowSprites();
opponentBank = GetBankByIdentity(IDENTITY_OPPONENT_MON1);
species = GetMonData(&gEnemyParty[gBattlePartyID[opponentBank]], MON_DATA_SPECIES);
SetBankEnemyShadowSpriteCallback(opponentBank, species);
if (IsDoubleBattle())
{
opponentBank = GetBankByIdentity(IDENTITY_OPPONENT_MON2);
species = GetMonData(&gEnemyParty[gBattlePartyID[opponentBank]], MON_DATA_SPECIES);
SetBankEnemyShadowSpriteCallback(opponentBank, species);
}
ActionSelectionCreateCursorAt(gActionSelectionCursor[gBankInMenu], 0);
if (gLinkVSyncDisabled != 0 && gReceivedRemoteLinkPlayers != 0)
{
sub_800E0E8();
sub_800DFB4(0, 0);
}
}
break;
default:
SetVBlankCallback(VBlankCB_Battle);
sub_80A95F4();
BeginHardwarePaletteFade(0xFF, 0, 0x10, 0, 1);
gPaletteFade.bufferTransferDisabled = 0;
SetMainCallback2(BattleMainCB2);
sub_805EF14();
break;
}
gBattleScripting.reshowMainState++;
}
static void sub_80A95F4(void)
{
struct BGCntrlBitfield *regBgcnt1, *regBgcnt2;
regBgcnt1 = (struct BGCntrlBitfield *)(&REG_BG1CNT);
regBgcnt1->charBaseBlock = 0;
regBgcnt2 = (struct BGCntrlBitfield *)(&REG_BG2CNT);
regBgcnt2->charBaseBlock = 0;
}
static bool8 LoadBankSpriteGfx(u8 bank)
{
if (bank < gNoOfAllBanks)
{
if (GetBankSide(bank) != SIDE_PLAYER)
{
if (!gBattleSpritesDataPtr->bankData[bank].behindSubstitute)
BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlePartyID[bank]], bank);
else
BattleLoadSubstituteSpriteGfx(bank, FALSE);
}
else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && bank == 0)
LoadBackTrainerBankSpriteGfx(gSaveBlock2Ptr->playerGender, bank);
else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL && bank == 0)
LoadBackTrainerBankSpriteGfx(BACK_PIC_WALLY, bank);
else if (!gBattleSpritesDataPtr->bankData[bank].behindSubstitute)
BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[bank]], bank);
else
BattleLoadSubstituteSpriteGfx(bank, FALSE);
gBattleScripting.reshowHelperState = 0;
}
return TRUE;
}
// todo: get rid of it once the struct is declared in a header
struct MonCoords
{
// This would use a bitfield, but sub_8079F44
// uses it as a u8 and casting won't match.
u8 coords; // u8 x:4, y:4;
u8 y_offset;
};
extern const struct MonCoords gTrainerBackPicCoords[];
static void CreateBankSprite(u8 bank)
{
if (bank < gNoOfAllBanks)
{
u8 posY;
if (gBattleSpritesDataPtr->bankData[bank].behindSubstitute)
posY = sub_80A614C(bank);
else
posY = sub_80A6138(bank);
if (GetBankSide(bank) != SIDE_PLAYER)
{
if (GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_HP) == 0)
return;
sub_806A068(GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES), GetBankIdentity(bank));
gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, sub_80A5C6C(bank, 2), posY, sub_80A82E4(bank));
gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank;
gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy;
gSprites[gBankSpriteIds[bank]].data0 = bank;
gSprites[gBankSpriteIds[bank]].data2 = GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES);
StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]);
if (gBattleSpritesDataPtr->bankData[bank].transformSpecies == SPECIES_CASTFORM)
gSprites[gBankSpriteIds[bank]].anims = gMonAnimationsSpriteAnimsPtrTable[SPECIES_CASTFORM];
}
else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && bank == 0)
{
sub_806A12C(gSaveBlock2Ptr->playerGender, GetBankIdentity(IDENTITY_PLAYER_MON1));
gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, 0x50,
(8 - gTrainerBackPicCoords[gSaveBlock2Ptr->playerGender].coords) * 4 + 80,
sub_80A82E4(0));
gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank;
gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy;
gSprites[gBankSpriteIds[bank]].data0 = bank;
}
else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL && bank == 0)
{
sub_806A12C(BACK_PIC_WALLY, GetBankIdentity(0));
gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, 0x50,
(8 - gTrainerBackPicCoords[BACK_PIC_WALLY].coords) * 4 + 80,
sub_80A82E4(0));
gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank;
gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy;
gSprites[gBankSpriteIds[bank]].data0 = bank;
}
else
{
if (GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_HP) == 0)
return;
sub_806A068(GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES), GetBankIdentity(bank));
gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, sub_80A5C6C(bank, 2), posY, sub_80A82E4(bank));
gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank;
gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy;
gSprites[gBankSpriteIds[bank]].data0 = bank;
gSprites[gBankSpriteIds[bank]].data2 = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES);
StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]);
if (gBattleSpritesDataPtr->bankData[bank].transformSpecies == SPECIES_CASTFORM)
gSprites[gBankSpriteIds[bank]].anims = gMonAnimationsSpriteAnimsPtrTable[SPECIES_CASTFORM];
}
gSprites[gBankSpriteIds[bank]].invisible = gBattleSpritesDataPtr->bankData[bank].invisible;
}
}
static void CreateHealthboxSprite(u8 bank)
{
if (bank < gNoOfAllBanks)
{
u8 healthboxSpriteId;
if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && bank == 0)
healthboxSpriteId = CreateSafariPlayerHealthboxSprites();
else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL && bank == 0)
return;
else
healthboxSpriteId = CreateBankHealthboxSprites(bank);
gHealthBoxesIds[bank] = healthboxSpriteId;
SetBankHealthboxSpritePos(bank);
SetHealthboxSpriteVisible(healthboxSpriteId);
if (GetBankSide(bank) != SIDE_PLAYER)
UpdateHealthboxAttribute(gHealthBoxesIds[bank], &gEnemyParty[gBattlePartyID[bank]], HEALTHBOX_ALL);
else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI)
UpdateHealthboxAttribute(gHealthBoxesIds[bank], &gPlayerParty[gBattlePartyID[bank]], HEALTHBOX_SAFARI_ALL_TEXT);
else
UpdateHealthboxAttribute(gHealthBoxesIds[bank], &gPlayerParty[gBattlePartyID[bank]], HEALTHBOX_ALL);
if (GetBankIdentity(bank) == IDENTITY_OPPONENT_MON2 || GetBankIdentity(bank) == IDENTITY_PLAYER_MON2)
nullsub_30(gHealthBoxesIds[bank], TRUE);
else
nullsub_30(gHealthBoxesIds[bank], FALSE);
if (GetBankSide(bank) != SIDE_PLAYER)
{
if (GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_HP) == 0)
SetHealthboxSpriteInvisible(healthboxSpriteId);
}
else if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI))
{
if (GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_HP) == 0)
SetHealthboxSpriteInvisible(healthboxSpriteId);
}
}
}

View File

@ -114,7 +114,7 @@ void sub_80FC190(void)
{
SetMainCallback2(c2_exit_to_overworld_2_switch);
}
else if (gBattleOutcome == 8)
else if (gBattleOutcome == BATTLE_SAFARI_OUT_OF_BALLS)
{
ScriptContext2_RunNewScript(gUnknown_082A4B4C);
warp_in();

View File

@ -170,13 +170,13 @@ extern const u8 gText_BattlePyramidFloor[];
void DisplayPyramidFloorWindow(void)
{
// TODO: fix location
if (*(u16*)(&gSaveBlock2Ptr->field_CAA[8]) == 7)
if (gSaveBlock2Ptr->field_CAA[4] == 7)
sBattlePyramidFloorWindowId = AddWindow(&gPyramidFloorWindowTemplate_1);
else
sBattlePyramidFloorWindowId = AddWindow(&gPyramidFloorWindowTemplate_2);
PutWindowTilemap(sBattlePyramidFloorWindowId);
sub_81973FC(sBattlePyramidFloorWindowId, 0);
StringCopy(gStringVar1, gUnknown_08510510[*(u16*)(&gSaveBlock2Ptr->field_CAA[8])]);
StringCopy(gStringVar1, gUnknown_08510510[gSaveBlock2Ptr->field_CAA[4]]);
StringExpandPlaceholders(gStringVar4, gText_BattlePyramidFloor);
PrintTextOnWindow(sBattlePyramidFloorWindowId, 1, gStringVar4, 0, 1, 0xFF, NULL);
CopyWindowToVram(sBattlePyramidFloorWindowId, 2);

View File

@ -625,7 +625,7 @@ u8 *WriteColorChangeControlCode(u8 *dest, u32 colorType, u8 color)
return dest;
}
bool32 sub_8009228(u8 *str)
bool32 IsStringJapanese(u8 *str)
{
while (*str != EOS)
{

7927
src/tv.c Normal file

File diff suppressed because it is too large Load Diff

View File

@ -25,16 +25,9 @@
.include "src/fldeff_cut.o"
.include "src/script_menu.o"
.include "src/record_mixing.o"
.include "src/tv.o"
gUnknown_03001174: @ 3001174
.space 0x1
gUnknown_03001175: @ 3001175
.space 0x1
gUnknown_03001176: @ 3001176
.space 0x2
.space 1 @ TODO: define this u32 in mauville_old_man
gUnknown_03001178: @ 3001178
.space 0x4

View File

@ -210,13 +210,7 @@ gBattleMainFunc: @ 3005D04
.space 0xC
gBattleResults: @ 3005D10
.space 0x2A
gUnknown_03005D3A: @ 3005D3A
.space 0xC
gUnknown_03005D46: @ 3005D46
.space 0xE
.space 0x44
gLeveledUpInBattle: @ 3005D54
.space 0xC
@ -326,17 +320,7 @@ gUnknown_030060B4: @ 30060B4
gUnknown_030060B8: @ 30060B8
.space 0x4
gUnknown_030060BC: @ 30060BC
.space 0x4
gUnknown_030060C0: @ 30060C0
.space 0x10
gUnknown_030060D0: @ 30060D0
.space 0x10
gUnknown_030060E0: @ 30060E0
.space 0x50
.include "tv.o"
gUnknown_03006130: @ 3006130
.space 0x34
@ -393,7 +377,7 @@ gUnknown_030061EC: @ 30061EC
.space 0x4
.include"save.o"
.space 0x8
gRamSaveSectionLocations: @ 3006220

View File

@ -1029,16 +1029,7 @@ gBagPockets: @ 2039DD8
.space 0x28
gUnknown_02039E00: @ 2039E00
.space 0x2
gUnknown_02039E02: @ 2039E02
.space 0xB
gUnknown_02039E0D: @ 2039E0D
.space 0x11
gUnknown_02039E1E: @ 2039E1E
.space 0xE2
.space 0x100
gUnknown_02039F00: @ 2039F00
.space 0x8
@ -1145,26 +1136,7 @@ gUnknown_0203A01D: @ 203A01D
gUnknown_0203A020: @ 203A020
.space 0x4
gUnknown_0203A024: @ 203A024
.space 0x2
gUnknown_0203A026: @ 203A026
.space 0x2
gUnknown_0203A028: @ 203A028
.space 0x2
gUnknown_0203A02A: @ 203A02A
.space 0x2
gUnknown_0203A02C: @ 203A02C
.space 0x4
gUnknown_0203A030: @ 203A030
.space 0x1
gUnknown_0203A031: @ 203A031
.space 0x3
.include "src/tv.o"
gUnknown_0203A034: @ 203A034
.space 0x4