Handle the "Not enough PP!" window's removal

This commit is contained in:
Lorenzo Carletti 2021-12-02 20:48:16 +01:00
parent 4301e6a747
commit b71218955b
2 changed files with 36 additions and 4 deletions

View File

@ -526,6 +526,17 @@ mov r0,0x50
//Do not redraw unless it is needed
.org 0x80E079A :: bl e079a_battle_psi_window
//Handle background window
.org 0x80E079E :: bl e06ec_clear_window
.org 0x80E0888 :: bl e06ec_redraw_psi
.org 0x80E0A16 :: bl e06ec_redraw_bash_psi
//Handle coming back from the "Not enough PP!" window
.org 0x80E0B10 :: bl initWindow_buffer
.org 0x80E0B2A :: bl initWindow_cursor_buffer
.org 0x80E0B30 :: bl print_window_with_buffer
.org 0x80E0B34 :: bl e0b34_psi_not_enough_pp_reverse_windows :: b 0x80E0B52
//---------------------------------------------------------
// C4B2C hacks (Equip window render)
//---------------------------------------------------------
@ -853,10 +864,6 @@ b 0x80D3A14
.org 0x80DCC36 :: mov r2,2 // "to X" position
.org 0x80DCCE0 :: mov r2,2 // "to the Front Row" position
.org 0x80E079E :: bl e06ec_clear_window
.org 0x80E0888 :: bl e06ec_redraw_psi
.org 0x80E0A16 :: bl e06ec_redraw_bash_psi
//---------------------------------------------------------
// Equipment number printing in dialogue window
//---------------------------------------------------------
@ -2411,6 +2418,7 @@ disclaimer_map:
.definelabel m2_set_target_name ,0x80DAE00
.definelabel m2_setupbattlename ,0x80DCD00
.definelabel m2_stat_symb_checker ,0x8B0EDA4
.definelabel reg_ram_reset ,0x80F47CC
.definelabel vblank ,0x80F47E4
.definelabel m2_div ,0x80F49D8
.definelabel m2_remainder ,0x80F4A70

View File

@ -2342,6 +2342,30 @@ pop {r4,pc}
.pool
//==============================================================================
//Reverses the order in which the target window and the psi window are printed
//when the "Not enough PP!" message goes away in battle in order to make it so
//the graphics are properly stored.
e0b34_psi_not_enough_pp_reverse_windows:
push {lr}
ldr r0,[r4,#0x24] //Initializes the target window
mov r1,#0
mov r2,#0
bl initWindow_buffer
ldr r0,[r4,#0x1C] //Target window printing
bl 0x80C438C
ldr r0,[r4,#0x20] //PSI window printing, grab the type from the types menu
ldrh r0,[r0,#0x36]
add r0,#1
lsl r0,r0,#0x10
asr r0,r0,#0x10
bl 0x80BAE98 //Do the printing
pop {pc}
.pool
//==============================================================================
_4092_print_window:
push {lr}