mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2025-01-27 05:43:51 +01:00
through sub_80E9FB0
This commit is contained in:
parent
ae3119a9c8
commit
68a253990d
@ -5,104 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start sub_80E9F20
|
|
||||||
sub_80E9F20: @ 80E9F20
|
|
||||||
push {r4-r6,lr}
|
|
||||||
mov r6, r8
|
|
||||||
push {r6}
|
|
||||||
sub sp, 0x8
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
lsls r4, r0, 2
|
|
||||||
adds r4, r0
|
|
||||||
lsls r4, 3
|
|
||||||
ldr r6, =gTasks + 0x8
|
|
||||||
adds r5, r4, r6
|
|
||||||
ldrb r0, [r5, 0x10]
|
|
||||||
bl RemoveScrollIndicatorArrowPair
|
|
||||||
ldr r0, =gUnknown_0858D06C
|
|
||||||
ldr r1, [r0, 0xC]
|
|
||||||
ldr r0, [r0, 0x8]
|
|
||||||
str r0, [sp]
|
|
||||||
str r1, [sp, 0x4]
|
|
||||||
ldr r0, =gUnknown_0858D048
|
|
||||||
mov r8, r0
|
|
||||||
movs r1, 0x2
|
|
||||||
bl GetMaxWidthInMenuTable
|
|
||||||
lsls r0, 24
|
|
||||||
ldr r2, =0x00ffffff
|
|
||||||
ldr r1, [sp]
|
|
||||||
ands r1, r2
|
|
||||||
orrs r1, r0
|
|
||||||
str r1, [sp]
|
|
||||||
mov r0, sp
|
|
||||||
bl AddWindow
|
|
||||||
strh r0, [r5, 0xE]
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
movs r1, 0
|
|
||||||
bl SetStandardWindowBorderStyle
|
|
||||||
ldrb r0, [r5, 0xE]
|
|
||||||
movs r1, 0x2
|
|
||||||
mov r2, r8
|
|
||||||
bl PrintMenuTable
|
|
||||||
ldrb r0, [r5, 0xE]
|
|
||||||
movs r1, 0x2
|
|
||||||
movs r2, 0
|
|
||||||
bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
|
|
||||||
movs r0, 0
|
|
||||||
bl schedule_bg_copy_tilemap_to_vram
|
|
||||||
subs r6, 0x8
|
|
||||||
adds r4, r6
|
|
||||||
ldr r0, =sub_80E9FB0
|
|
||||||
str r0, [r4]
|
|
||||||
add sp, 0x8
|
|
||||||
pop {r3}
|
|
||||||
mov r8, r3
|
|
||||||
pop {r4-r6}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.pool
|
|
||||||
thumb_func_end sub_80E9F20
|
|
||||||
|
|
||||||
thumb_func_start sub_80E9FB0
|
|
||||||
sub_80E9FB0: @ 80E9FB0
|
|
||||||
push {r4-r6,lr}
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r5, r0, 24
|
|
||||||
adds r6, r5, 0
|
|
||||||
bl ProcessMenuInputNoWrapAround
|
|
||||||
lsls r0, 24
|
|
||||||
asrs r4, r0, 24
|
|
||||||
movs r0, 0x2
|
|
||||||
negs r0, r0
|
|
||||||
cmp r4, r0
|
|
||||||
beq _080E9FF2
|
|
||||||
adds r0, 0x1
|
|
||||||
cmp r4, r0
|
|
||||||
bne _080E9FDC
|
|
||||||
movs r0, 0x5
|
|
||||||
bl PlaySE
|
|
||||||
adds r0, r5, 0
|
|
||||||
bl sub_80EA18C
|
|
||||||
b _080E9FF2
|
|
||||||
_080E9FDC:
|
|
||||||
movs r0, 0x5
|
|
||||||
bl PlaySE
|
|
||||||
ldr r0, =gUnknown_0858D048
|
|
||||||
lsls r1, r4, 3
|
|
||||||
adds r0, 0x4
|
|
||||||
adds r1, r0
|
|
||||||
ldr r1, [r1]
|
|
||||||
adds r0, r6, 0
|
|
||||||
bl _call_via_r1
|
|
||||||
_080E9FF2:
|
|
||||||
pop {r4-r6}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.pool
|
|
||||||
thumb_func_end sub_80E9FB0
|
|
||||||
|
|
||||||
thumb_func_start sub_80E9FFC
|
thumb_func_start sub_80E9FFC
|
||||||
sub_80E9FFC: @ 80E9FFC
|
sub_80E9FFC: @ 80E9FFC
|
||||||
push {r4,r5,lr}
|
push {r4,r5,lr}
|
||||||
|
@ -21,6 +21,7 @@ void PrintMenuTable(u8 idx, u8 nstrs, const struct MenuAction *strs);
|
|||||||
void InitMenuInUpperLeftCornerPlaySoundWhenAPressed(u8 idx, u8 nstrs,u8);
|
void InitMenuInUpperLeftCornerPlaySoundWhenAPressed(u8 idx, u8 nstrs,u8);
|
||||||
u8 GetMenuCursorPos(void);
|
u8 GetMenuCursorPos(void);
|
||||||
s8 ProcessMenuInput(void);
|
s8 ProcessMenuInput(void);
|
||||||
|
s8 ProcessMenuInputNoWrapAround(void);
|
||||||
void blit_move_info_icon(u8 winId, u8 a2, u16 x, u16 y);
|
void blit_move_info_icon(u8 winId, u8 a2, u16 x, u16 y);
|
||||||
void reset_temp_tile_data_buffers(void);
|
void reset_temp_tile_data_buffers(void);
|
||||||
int decompress_and_copy_tile_data_to_vram(u8 bg_id, const void *src, int size, u16 offset, u8 mode);
|
int decompress_and_copy_tile_data_to_vram(u8 bg_id, const void *src, int size, u16 offset, u8 mode);
|
||||||
|
@ -26,6 +26,7 @@
|
|||||||
#include "script.h"
|
#include "script.h"
|
||||||
#include "event_scripts.h"
|
#include "event_scripts.h"
|
||||||
#include "strings.h"
|
#include "strings.h"
|
||||||
|
#include "international_string_util.h"
|
||||||
#include "event_data.h"
|
#include "event_data.h"
|
||||||
#include "decoration.h"
|
#include "decoration.h"
|
||||||
#include "decoration_inventory.h"
|
#include "decoration_inventory.h"
|
||||||
@ -51,7 +52,9 @@ void sub_80E9E00(u8 taskId);
|
|||||||
void sub_80E9E44(u8 taskId);
|
void sub_80E9E44(u8 taskId);
|
||||||
void sub_80E9E90(u8 taskId);
|
void sub_80E9E90(u8 taskId);
|
||||||
void sub_80E9F20(u8 taskId);
|
void sub_80E9F20(u8 taskId);
|
||||||
|
void sub_80E9FB0(u8 taskId);
|
||||||
void task_pc_turn_off(u8 taskId);
|
void task_pc_turn_off(u8 taskId);
|
||||||
|
u8 sub_80EA18C(u8 sbId);
|
||||||
u8 sub_80EA20C(u8 sbId);
|
u8 sub_80EA20C(u8 sbId);
|
||||||
|
|
||||||
// .rodata
|
// .rodata
|
||||||
@ -63,8 +66,9 @@ extern const struct {
|
|||||||
|
|
||||||
extern const u8 gUnknown_0858CFE8[];
|
extern const u8 gUnknown_0858CFE8[];
|
||||||
extern const u8 gUnknown_0858D060[];
|
extern const u8 gUnknown_0858D060[];
|
||||||
extern const struct WindowTemplate gUnknown_0858D06C;
|
extern const struct WindowTemplate gUnknown_0858D06C[];
|
||||||
extern const struct ListMenuTemplate gUnknown_0858D07C;
|
extern const struct ListMenuTemplate gUnknown_0858D07C;
|
||||||
|
extern const struct MenuAction gUnknown_0858D048[];
|
||||||
|
|
||||||
// .text
|
// .text
|
||||||
|
|
||||||
@ -980,7 +984,7 @@ void sub_80E9C9C(u8 taskId)
|
|||||||
data[2] = 0;
|
data[2] = 0;
|
||||||
sub_8197434(0, 0);
|
sub_8197434(0, 0);
|
||||||
gUnknown_0203A020 = calloc(1, sizeof(struct SecretBaseListMenuBuffer));
|
gUnknown_0203A020 = calloc(1, sizeof(struct SecretBaseListMenuBuffer));
|
||||||
data[6] = AddWindow(&gUnknown_0858D06C);
|
data[6] = AddWindow(&gUnknown_0858D06C[0]);
|
||||||
game_continue(taskId);
|
game_continue(taskId);
|
||||||
sub_80E9E00(taskId);
|
sub_80E9E00(taskId);
|
||||||
gTasks[taskId].func = sub_80E9E90;
|
gTasks[taskId].func = sub_80E9E90;
|
||||||
@ -1084,3 +1088,40 @@ void sub_80E9E90(u8 taskId)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void sub_80E9F20(u8 taskId)
|
||||||
|
{
|
||||||
|
struct WindowTemplate template;
|
||||||
|
s16 *data;
|
||||||
|
|
||||||
|
data = gTasks[taskId].data;
|
||||||
|
RemoveScrollIndicatorArrowPair(data[8]);
|
||||||
|
template = gUnknown_0858D06C[1];
|
||||||
|
template.width = GetMaxWidthInMenuTable(gUnknown_0858D048, 2);
|
||||||
|
data[7] = AddWindow(&template);
|
||||||
|
SetStandardWindowBorderStyle(data[7], 0);
|
||||||
|
PrintMenuTable(data[7], 2, gUnknown_0858D048);
|
||||||
|
InitMenuInUpperLeftCornerPlaySoundWhenAPressed(data[7], 2, 0);
|
||||||
|
schedule_bg_copy_tilemap_to_vram(0);
|
||||||
|
gTasks[taskId].func = sub_80E9FB0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_80E9FB0(u8 taskId)
|
||||||
|
{
|
||||||
|
s8 input;
|
||||||
|
|
||||||
|
input = ProcessMenuInputNoWrapAround();
|
||||||
|
switch (input)
|
||||||
|
{
|
||||||
|
case -1:
|
||||||
|
PlaySE(SE_SELECT);
|
||||||
|
sub_80EA18C(taskId);
|
||||||
|
break;
|
||||||
|
case -2:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
PlaySE(SE_SELECT);
|
||||||
|
gUnknown_0858D048[input].func.void_u8(taskId);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user