mirror of
https://github.com/pret/pokeruby.git
synced 2025-03-03 18:37:47 +00:00
Decompile party_menu functions
This commit is contained in:
parent
9c364f5d17
commit
505ad946b9
367
asm/party_menu.s
367
asm/party_menu.s
@ -7446,82 +7446,9 @@ sub_806E81C: @ 806E81C
|
||||
bx lr
|
||||
thumb_func_end sub_806E81C
|
||||
|
||||
thumb_func_start sub_806E834
|
||||
sub_806E834: @ 806E834
|
||||
push {r4,r5,lr}
|
||||
adds r5, r0, 0
|
||||
lsls r4, r1, 24
|
||||
lsrs r4, 24
|
||||
ldr r1, _0806E878 @ =gUnknown_0202E8F6
|
||||
movs r0, 0x1
|
||||
strb r0, [r1]
|
||||
movs r0, 0x3
|
||||
movs r1, 0xE
|
||||
movs r2, 0x1A
|
||||
movs r3, 0x13
|
||||
bl MenuDrawTextWindow
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x4
|
||||
movs r2, 0xF
|
||||
bl MenuPrintMessage
|
||||
ldr r0, _0806E87C @ =sub_806E884
|
||||
movs r1, 0x1
|
||||
bl CreateTask
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
ldr r2, _0806E880 @ =gTasks
|
||||
lsls r1, r0, 2
|
||||
adds r1, r0
|
||||
lsls r1, 3
|
||||
adds r1, r2
|
||||
strh r4, [r1, 0x8]
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0806E878: .4byte gUnknown_0202E8F6
|
||||
_0806E87C: .4byte sub_806E884
|
||||
_0806E880: .4byte gTasks
|
||||
thumb_func_end sub_806E834
|
||||
.section .text_806E884
|
||||
|
||||
|
||||
thumb_func_start sub_806E884
|
||||
sub_806E884: @ 806E884
|
||||
push {r4,r5,lr}
|
||||
lsls r0, 24
|
||||
lsrs r4, r0, 24
|
||||
adds r5, r4, 0
|
||||
bl MenuUpdateWindowText
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806E8C0
|
||||
ldr r1, _0806E8C8 @ =gUnknown_0202E8F6
|
||||
movs r0, 0
|
||||
strb r0, [r1]
|
||||
ldr r1, _0806E8CC @ =gTasks
|
||||
lsls r0, r4, 2
|
||||
adds r0, r4
|
||||
lsls r0, 3
|
||||
adds r0, r1
|
||||
movs r1, 0x8
|
||||
ldrsh r0, [r0, r1]
|
||||
cmp r0, 0
|
||||
bne _0806E8BA
|
||||
movs r0, 0x3
|
||||
movs r1, 0xE
|
||||
movs r2, 0x1A
|
||||
movs r3, 0x13
|
||||
bl MenuZeroFillWindowRect
|
||||
_0806E8BA:
|
||||
adds r0, r5, 0
|
||||
bl DestroyTask
|
||||
_0806E8C0:
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0806E8C8: .4byte gUnknown_0202E8F6
|
||||
_0806E8CC: .4byte gTasks
|
||||
thumb_func_end sub_806E884
|
||||
|
||||
thumb_func_start sub_806E8D0
|
||||
sub_806E8D0: @ 806E8D0
|
||||
@ -10379,159 +10306,7 @@ _08070080: .4byte 0xfffff27e
|
||||
_08070084: .4byte 0xfffff280
|
||||
thumb_func_end sub_8070048
|
||||
|
||||
thumb_func_start sub_8070088
|
||||
sub_8070088: @ 8070088
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
sub sp, 0x4
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
ldr r1, _08070120 @ =gTasks
|
||||
mov r10, r1
|
||||
lsls r1, r0, 2
|
||||
adds r1, r0
|
||||
lsls r1, 3
|
||||
mov r2, r10
|
||||
adds r7, r1, r2
|
||||
ldr r5, _08070124 @ =TaskDummy
|
||||
str r5, [r7]
|
||||
ldr r4, _08070128 @ =0x0201c000
|
||||
ldrb r0, [r4, 0x5]
|
||||
movs r1, 0x64
|
||||
mov r9, r1
|
||||
mov r2, r9
|
||||
muls r2, r0
|
||||
adds r0, r2, 0
|
||||
ldr r1, _0807012C @ =gPlayerParty
|
||||
mov r8, r1
|
||||
add r0, r8
|
||||
movs r1, 0xB
|
||||
bl GetMonData
|
||||
cmp r0, 0
|
||||
beq _08070118
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x5
|
||||
bl CreateTask
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
lsls r0, r5, 2
|
||||
adds r0, r5
|
||||
lsls r0, 3
|
||||
str r0, [sp]
|
||||
mov r0, r10
|
||||
adds r0, 0x8
|
||||
ldr r2, [sp]
|
||||
adds r6, r2, r0
|
||||
ldrb r0, [r4, 0x5]
|
||||
mov r1, r9
|
||||
muls r1, r0
|
||||
adds r0, r1, 0
|
||||
add r0, r8
|
||||
str r0, [r4]
|
||||
movs r1, 0x3A
|
||||
bl GetMonData
|
||||
strh r0, [r6, 0x14]
|
||||
ldr r0, [r4]
|
||||
movs r1, 0x39
|
||||
bl GetMonData
|
||||
strh r0, [r6, 0x16]
|
||||
ldrb r0, [r4, 0x5]
|
||||
ldrh r1, [r4, 0x6]
|
||||
movs r2, 0
|
||||
bl ExecuteTableBasedItemEffect__
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08070134
|
||||
adds r0, r5, 0
|
||||
bl DestroyTask
|
||||
_08070118:
|
||||
ldr r0, _08070130 @ =sub_80701DC
|
||||
str r0, [r7]
|
||||
b _080701B0
|
||||
.align 2, 0
|
||||
_08070120: .4byte gTasks
|
||||
_08070124: .4byte TaskDummy
|
||||
_08070128: .4byte 0x0201c000
|
||||
_0807012C: .4byte gPlayerParty
|
||||
_08070130: .4byte sub_80701DC
|
||||
_08070134:
|
||||
ldr r1, _080701C0 @ =gUnknown_0202E8F4
|
||||
movs r0, 0x1
|
||||
strb r0, [r1]
|
||||
movs r0, 0x3
|
||||
movs r1, 0xE
|
||||
movs r2, 0x1A
|
||||
movs r3, 0x13
|
||||
bl MenuZeroFillWindowRect
|
||||
movs r0, 0x1
|
||||
bl PlaySE
|
||||
ldr r0, [r4]
|
||||
ldrb r1, [r4, 0x5]
|
||||
bl PartyMenuUpdateLevelOrStatus
|
||||
bl IsDoubleBattle
|
||||
adds r1, r0, 0
|
||||
lsls r1, 24
|
||||
lsrs r1, 24
|
||||
lsls r0, r1, 1
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
ldrb r1, [r4, 0x5]
|
||||
lsls r1, 1
|
||||
adds r0, r1
|
||||
ldr r1, _080701C4 @ =gUnknown_083769A8
|
||||
adds r0, r1
|
||||
movs r1, 0x9
|
||||
bl task_pc_turn_off
|
||||
ldr r2, _080701C8 @ =0xfffff261
|
||||
adds r1, r4, r2
|
||||
movs r0, 0x2
|
||||
strb r0, [r1]
|
||||
ldr r0, [r4]
|
||||
movs r1, 0x39
|
||||
bl GetMonData
|
||||
ldrh r1, [r6, 0x16]
|
||||
subs r0, r1
|
||||
strh r0, [r6, 0x18]
|
||||
movs r0, 0x1
|
||||
strh r0, [r6, 0x1C]
|
||||
ldr r1, _080701CC @ =0xfffff27e
|
||||
adds r0, r4, r1
|
||||
movs r1, 0x1
|
||||
strh r1, [r0]
|
||||
ldr r2, _080701D0 @ =0xfffff280
|
||||
adds r0, r4, r2
|
||||
strh r1, [r0]
|
||||
ldrh r1, [r6, 0x16]
|
||||
adds r2, 0x2
|
||||
adds r0, r4, r2
|
||||
strh r1, [r0]
|
||||
ldr r0, _080701D4 @ =0xffff8000
|
||||
str r0, [r4, 0xC]
|
||||
ldr r1, [sp]
|
||||
add r1, r10
|
||||
ldr r0, _080701D8 @ =sub_806F8AC
|
||||
str r0, [r1]
|
||||
_080701B0:
|
||||
add sp, 0x4
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080701C0: .4byte gUnknown_0202E8F4
|
||||
_080701C4: .4byte gUnknown_083769A8
|
||||
_080701C8: .4byte 0xfffff261
|
||||
_080701CC: .4byte 0xfffff27e
|
||||
_080701D0: .4byte 0xfffff280
|
||||
_080701D4: .4byte 0xffff8000
|
||||
_080701D8: .4byte sub_806F8AC
|
||||
thumb_func_end sub_8070088
|
||||
.section .text_80701DC
|
||||
|
||||
thumb_func_start sub_80701DC
|
||||
sub_80701DC: @ 80701DC
|
||||
@ -11296,141 +11071,7 @@ _08070840: .4byte gTasks
|
||||
_08070844: .4byte Task_RareCandy3
|
||||
thumb_func_end Task_RareCandy2
|
||||
|
||||
thumb_func_start sub_8070848
|
||||
sub_8070848: @ 8070848
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
movs r0, 0xB
|
||||
movs r1, 0
|
||||
movs r2, 0x1D
|
||||
movs r3, 0x7
|
||||
bl MenuDrawTextWindow
|
||||
movs r7, 0
|
||||
ldr r0, _080708E4 @ =gStringVar1
|
||||
mov r10, r0
|
||||
_08070864:
|
||||
ldr r1, _080708E8 @ =0x0201c000
|
||||
ldr r0, [r1]
|
||||
ldr r1, _080708EC @ =gUnknown_08376D1C
|
||||
adds r1, r7, r1
|
||||
ldrb r1, [r1]
|
||||
bl GetMonData
|
||||
adds r1, r7, 0x6
|
||||
lsls r1, 1
|
||||
ldr r2, _080708F0 @ =0x0201b264
|
||||
adds r1, r2
|
||||
strh r0, [r1]
|
||||
lsls r4, r7, 1
|
||||
adds r2, r4, r2
|
||||
ldrh r1, [r2]
|
||||
subs r0, r1
|
||||
strh r0, [r2]
|
||||
adds r0, r7, 0
|
||||
movs r1, 0x3
|
||||
bl __udivsi3
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
lsls r1, r0, 3
|
||||
adds r1, r0
|
||||
adds r1, 0xB
|
||||
lsls r1, 24
|
||||
lsrs r6, r1, 24
|
||||
adds r0, r7, 0
|
||||
movs r1, 0x3
|
||||
bl __umodsi3
|
||||
lsls r0, 1
|
||||
adds r0, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
mov r9, r0
|
||||
ldr r1, _080708F4 @ =gUnknown_08376D04
|
||||
lsls r0, r7, 2
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
adds r1, r6, 0x1
|
||||
lsls r1, 27
|
||||
lsrs r1, 24
|
||||
mov r2, r9
|
||||
lsls r5, r2, 3
|
||||
adds r2, r5, 0
|
||||
movs r3, 0x1
|
||||
bl MenuPrint_PixelCoords
|
||||
mov r8, r4
|
||||
cmp r7, 0x2
|
||||
bne _080708FC
|
||||
adds r4, r6, 0x6
|
||||
lsls r1, r4, 3
|
||||
adds r1, 0x6
|
||||
lsls r1, 24
|
||||
lsrs r1, 24
|
||||
ldr r0, _080708F8 @ =gOtherText_TallPlusAndRightArrow
|
||||
adds r2, r5, 0
|
||||
movs r3, 0
|
||||
bl MenuPrint_PixelCoords
|
||||
b _08070910
|
||||
.align 2, 0
|
||||
_080708E4: .4byte gStringVar1
|
||||
_080708E8: .4byte 0x0201c000
|
||||
_080708EC: .4byte gUnknown_08376D1C
|
||||
_080708F0: .4byte 0x0201b264
|
||||
_080708F4: .4byte gUnknown_08376D04
|
||||
_080708F8: .4byte gOtherText_TallPlusAndRightArrow
|
||||
_080708FC:
|
||||
adds r4, r6, 0x6
|
||||
lsls r1, r4, 3
|
||||
adds r1, 0x6
|
||||
lsls r1, 24
|
||||
lsrs r1, 24
|
||||
ldr r0, _08070960 @ =gOtherText_TallPlusAndRightArrow
|
||||
adds r2, r5, 0
|
||||
movs r3, 0x1
|
||||
bl MenuPrint_PixelCoords
|
||||
_08070910:
|
||||
movs r0, 0xFC
|
||||
mov r1, r10
|
||||
strb r0, [r1]
|
||||
movs r0, 0x14
|
||||
strb r0, [r1, 0x1]
|
||||
movs r0, 0x6
|
||||
strb r0, [r1, 0x2]
|
||||
ldr r0, _08070964 @ =0x0201b264
|
||||
add r0, r8
|
||||
movs r2, 0
|
||||
ldrsh r1, [r0, r2]
|
||||
mov r0, r10
|
||||
adds r0, 0x3
|
||||
movs r2, 0x1
|
||||
movs r3, 0x2
|
||||
bl ConvertIntToDecimalStringN
|
||||
lsls r1, r4, 27
|
||||
movs r0, 0xC0
|
||||
lsls r0, 20
|
||||
adds r1, r0
|
||||
lsrs r1, 24
|
||||
mov r0, r9
|
||||
lsls r2, r0, 3
|
||||
mov r0, r10
|
||||
movs r3, 0
|
||||
bl MenuPrint_PixelCoords
|
||||
adds r0, r7, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r7, r0, 24
|
||||
cmp r7, 0x5
|
||||
bls _08070864
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08070960: .4byte gOtherText_TallPlusAndRightArrow
|
||||
_08070964: .4byte 0x0201b264
|
||||
thumb_func_end sub_8070848
|
||||
.section .text_8070968
|
||||
|
||||
thumb_func_start sub_8070968
|
||||
sub_8070968: @ 8070968
|
||||
|
@ -355,18 +355,8 @@ gUnknown_08376978:: @ 8376978
|
||||
|
||||
.align 2
|
||||
gUnknown_083769A8:: @ 83769A8
|
||||
.byte 0, 3
|
||||
.byte 11, 1
|
||||
.byte 11, 4
|
||||
.byte 11, 7
|
||||
.byte 11, 10
|
||||
.byte 11, 13
|
||||
.byte 0, 1
|
||||
.byte 0, 8
|
||||
.byte 11, 1
|
||||
.byte 11, 5
|
||||
.byte 11, 9
|
||||
.byte 11, 13
|
||||
.byte 0, 3, 11, 1, 11, 4, 11, 7, 11, 10, 11, 13
|
||||
.byte 0, 1, 0, 8, 11, 1, 11, 5, 11, 9, 11, 13
|
||||
|
||||
.align 2
|
||||
gUnknown_083769C0:: @ 83769C0
|
||||
|
@ -9,15 +9,17 @@ u8 sub_8015A98(u8, u8, u8);
|
||||
u8 sub_8018324(u8, u8, u8, u8, u16);
|
||||
void sub_8032AA8(u8 index, int i);
|
||||
|
||||
// asm/rom_803D1FC.o
|
||||
// src/pokemon_3.o
|
||||
u16 SpeciesToNationalPokedexNum(u16);
|
||||
|
||||
// asm/pokemon_3.o
|
||||
void DrawSpindaSpots(u16, u32, void *, u8);
|
||||
u8 sub_803FC58(u16);
|
||||
void AdjustFriendship(struct Pokemon *, u8);
|
||||
void sub_80408BC();
|
||||
void current_map_music_set__default_for_battle(u16);
|
||||
|
||||
// asm/rom_8040EB4.o
|
||||
// asm/util.o
|
||||
void StoreWordInTwoHalfwords(u16 *, u32);
|
||||
void LoadWordFromTwoHalfwords(u16 *, u32 *);
|
||||
|
||||
@ -30,7 +32,7 @@ void sub_8041940(void);
|
||||
void sub_8041950(void);
|
||||
u8 daycare_relationship_score_from_savegame(void);
|
||||
|
||||
// asm/rom_804373C.o
|
||||
// asm/pokeball.o
|
||||
void CreatePokeballSprite(u8 r0, u8 r1, u8 r2, u8 r3, u8 s1, u8 s2, u8 s3, u16 s4);
|
||||
|
||||
// asm/berry_blender.o
|
||||
@ -134,7 +136,7 @@ u8 ZCoordToPriority(u8);
|
||||
void FieldObjectUpdateZCoord(struct MapObject *pObject);
|
||||
void SetObjectSubpriorityByZCoord(u8, struct Sprite *, u8);
|
||||
|
||||
// src/map_obj_80643A4.o
|
||||
// src/field_map_obj_helpers.o
|
||||
bool8 FreezeMapObject(struct MapObject *);
|
||||
void FreezeMapObjects(void);
|
||||
void FreezeMapObjectsExceptOne(u8);
|
||||
@ -142,7 +144,7 @@ void UnfreezeMapObjects(void);
|
||||
void sub_806487C(struct Sprite *sprite, bool8 invisible);
|
||||
void sub_8064990(u8, u8);
|
||||
|
||||
// asm/rom_8065394.o
|
||||
// asm/field_control_avatar.o
|
||||
void sub_8067EEC(struct UnkInputStruct *pStruct);
|
||||
void process_overworld_input(struct UnkInputStruct *pStruct, u16 keys, u16 heldKeys);
|
||||
int sub_8068024(struct UnkInputStruct *pStruct);
|
||||
@ -152,23 +154,26 @@ void prev_quest_postbuffer_cursor_backup_reset(void);
|
||||
u8 *sub_8068E24(struct UnkStruct_8054FF8_Substruct *);
|
||||
u8 *GetFieldObjectScriptPointerForComparison();
|
||||
|
||||
// asm/rom_806936C.o
|
||||
// asm/field_tasks.o
|
||||
void SetUpFieldTasks();
|
||||
void ActivatePerStepCallback(u8);
|
||||
void ResetFieldTasksArgs(void);
|
||||
|
||||
// asm/clock.o
|
||||
void DoTimeBasedEvents(void);
|
||||
|
||||
// asm/reset_rtc_screen.o
|
||||
void CB2_InitResetRtcScreen(void);
|
||||
|
||||
// asm/rom_806D7F8.o
|
||||
// asm/party_menu.o
|
||||
void GetMonNickname(struct Pokemon *mon, u8 *nickname);
|
||||
bool8 pokemon_has_move(struct Pokemon *, u16);
|
||||
|
||||
// asm/rom_8074BAC.o
|
||||
// asm/rom_8077ABC.o
|
||||
u8 battle_side_get_owner(u8);
|
||||
u8 battle_get_per_side_status(u8);
|
||||
u8 battle_get_side_with_given_state(u8);
|
||||
bool8 IsDoubleBattle();
|
||||
|
||||
// asm/weather.o
|
||||
void SetWeather(u32);
|
||||
@ -204,27 +209,41 @@ void objc_exclamation_mark_probably(struct Sprite *sprite);
|
||||
u8 CreateTrainerSprite_BirchSpeech(u8, u16, u16, u8, void *);
|
||||
void LoadTrainerGfx_TrainerCard(u8 gender, int, void *);
|
||||
u8 CreateBirchSprite(u8, u8, u8);
|
||||
|
||||
// asm/unknown_task.o
|
||||
void remove_some_task(void);
|
||||
void dp12_8087EA4(void);
|
||||
void sub_80895F8(u32 i, u32 i1, u32 i2);
|
||||
void sub_8089668(void);
|
||||
void sub_8089944(int i, int i1, int i2, int i3, int i4, int i5, int i6);
|
||||
|
||||
// asm/pokemon_menu.o
|
||||
void sub_8089A70(void);
|
||||
void sub_808AB90(void);
|
||||
|
||||
// asm/rom_8094928.o
|
||||
// asm/pokemon_storage_system.o
|
||||
void sub_80961D8(void);
|
||||
|
||||
// asm/pokemon_icon.o
|
||||
u8 sub_809D3A4(u16 arg0, void (*)(struct Sprite *), int, u8 arg3, u32 arg4);
|
||||
u16 sub_809D4A8(u16);
|
||||
void sub_809D510(struct Sprite *);
|
||||
void sub_809D580(u16);
|
||||
void sub_809D608(u16);
|
||||
|
||||
// asm/pokemon_summary_screen.o
|
||||
u8 pokemon_ailments_get_primary(u32);
|
||||
|
||||
// asm/script_movement.o
|
||||
u8 exec_movement(u8, u8, u8, void *);
|
||||
bool8 sub_80A212C(u8, u8, u8);
|
||||
void sub_80A2178(void);
|
||||
|
||||
// asm/mail_data.o
|
||||
void sub_80A2B18(void);
|
||||
u16 sub_80A2D64(u16, u8 *);
|
||||
|
||||
// asm/map_name_popup.o
|
||||
void AddMapNamePopUpWindowTask(void);
|
||||
void HideMapNamePopUpWindow();
|
||||
|
||||
@ -258,7 +277,7 @@ void CreatePokemartMenu(void *);
|
||||
void CreateDecorationShop1Menu(void *);
|
||||
void CreateDecorationShop2Menu(void *);
|
||||
|
||||
// asm/script_menu.o
|
||||
// src/script_menu.o
|
||||
bool8 sub_80B5054(u8, u8, u8, u8);
|
||||
bool8 sub_80B50B0(u8, u8, u8, u8, u8);
|
||||
bool8 Multichoice(u8, u8, u8, u8);
|
||||
@ -297,6 +316,8 @@ s8 sub_80BF720(TVShow *);
|
||||
u8 sub_80BF77C(u32);
|
||||
void sub_80BFD44(void *, u32, u8);
|
||||
void sub_80C0514(void *, u32, u8);
|
||||
|
||||
// src/tv.o
|
||||
void StartMassOutbreak(void);
|
||||
void TVShowDone(void);
|
||||
|
||||
@ -376,8 +397,8 @@ bool8 IsEasyChatPairEqual(u16 *, u16 *);
|
||||
|
||||
// asm/region_map.o
|
||||
void sub_80FBFB4(u8 *str, u8 region, u8);
|
||||
u8 *CopyLocationName(u8 *dest, u8 location);
|
||||
void CopyMapName();
|
||||
u8 *CopyLocationName(u8 *dest, u8 location);
|
||||
|
||||
// asm/slot_machine.o
|
||||
void PlaySlotMachine(u8, void *);
|
||||
@ -388,9 +409,13 @@ void sub_8106630(u32);
|
||||
// asm/rom6.o
|
||||
bool8 npc_before_player_of_type(u8);
|
||||
u8 oei_task_add(void);
|
||||
|
||||
// asm/pokeblock.o
|
||||
void sub_810C994(void);
|
||||
void sub_810CA6C(s32);
|
||||
s16 sub_810CAE4(u8, struct Pokeblock *);
|
||||
|
||||
// asm/rom_810CBB4.o
|
||||
void sub_810CC80(void);
|
||||
u8 sub_810D32C(void);
|
||||
void ResetCyclingRoadChallengeData(void);
|
||||
@ -407,9 +432,11 @@ void sub_811AABC(u8);
|
||||
void sub_811AAD8(u8);
|
||||
u8 sub_811AAE8(void);
|
||||
|
||||
// asm/mystery_event_script.o
|
||||
// src/mystery_event_script.o
|
||||
u32 sub_812613C(u8 *);
|
||||
void sub_8126160(u8);
|
||||
|
||||
// asm/mystery_event_script.o
|
||||
u16 sub_8126338(void);
|
||||
|
||||
// asm/field_effect_helpers.o
|
||||
@ -435,10 +462,10 @@ void sub_8134394();
|
||||
u8 sub_81344CC(void);
|
||||
void sub_8134AC0(void *);
|
||||
|
||||
// asm/player_pc.o
|
||||
// src/player_pc.o
|
||||
void NewGameInitPCItems(void);
|
||||
|
||||
// asm/rom_813BA94.o
|
||||
// asm/intro.o
|
||||
void sub_813CAF4(u8);
|
||||
void intro_reset_and_hide_bgs(void);
|
||||
void sub_813CCE8(u8);
|
||||
@ -459,11 +486,11 @@ void sub_813E930(/*TODO: arg types*/);
|
||||
void InitIntroTorchicAttackAnim(u8);
|
||||
void InitIntroMudkipAttackAnim(/*TODO: arg types*/);
|
||||
|
||||
// asm/rom_81473B8.o
|
||||
// asm/braille_puzzles.o
|
||||
bool8 ShouldDoBrailleStrengthEffect(void);
|
||||
void DoBrailleStrengthEffect(void);
|
||||
|
||||
// asm/rom_8148B8C.o
|
||||
// asm/intro_credits_graphics.o
|
||||
void load_intro_part2_graphics(/*TODO: arg types*/);
|
||||
void sub_8148C78(/*TODO: arg types*/);
|
||||
u8 sub_8148EC0(/*TODO: arg types*/);
|
||||
@ -472,6 +499,8 @@ u8 intro_create_brendan_sprite(/*TODO: arg types*/);
|
||||
u8 intro_create_may_sprite(/*TODO: arg types*/);
|
||||
u8 intro_create_latios_sprite(/*TODO: arg types*/);
|
||||
u8 intro_create_latias_sprite(/*TODO: arg types*/);
|
||||
|
||||
// asm/name_string_util.o
|
||||
void SanitizeNameString(u8*);
|
||||
|
||||
// src/agb_flash.o
|
||||
|
@ -93,6 +93,12 @@ SECTIONS {
|
||||
src/clock.o(.text);
|
||||
asm/reset_rtc_screen.o(.text);
|
||||
asm/party_menu.o(.text);
|
||||
src/party_menu.o(.text);
|
||||
asm/party_menu.o(.text_806E884);
|
||||
src/party_menu.o(.text_b);
|
||||
asm/party_menu.o(.text_80701DC);
|
||||
src/party_menu.o(.text_c);
|
||||
asm/party_menu.o(.text_8070968);
|
||||
src/start_menu.o(.text);
|
||||
src/menu.o(.text);
|
||||
src/tileset_anim.o(.text);
|
||||
|
@ -24,4 +24,8 @@ dword_2017100 = 0x2017100;
|
||||
|
||||
unk_2018000 = 0x2018000;
|
||||
|
||||
unk_201B260 = 0x201b260;
|
||||
unk_201B264 = 0x201B264;
|
||||
unk_201C000 = 0x201C000;
|
||||
|
||||
gHallOfFame = 0x201E000;
|
||||
|
317
src/party_menu.c
Normal file
317
src/party_menu.c
Normal file
@ -0,0 +1,317 @@
|
||||
#include "global.h"
|
||||
#include "menu.h"
|
||||
#include "pokemon.h"
|
||||
#include "songs.h"
|
||||
#include "sound.h"
|
||||
#include "string_util.h"
|
||||
#include "task.h"
|
||||
|
||||
#define DATA_COUNT (6)
|
||||
|
||||
struct Unk201C000 {
|
||||
/* 0x00 */ struct Pokemon *pokemon;
|
||||
/* 0x04 */ u8 var04;
|
||||
/* 0x05 */ u8 var05;
|
||||
/* 0x06 */ u16 var06;
|
||||
u8 pad_08[10];
|
||||
/* 0x12 */ u16 var12;
|
||||
};
|
||||
|
||||
struct Unk201B260 {
|
||||
/* 0x00 */ u8 var00;
|
||||
/* 0x01 */ u8 var01;
|
||||
u8 pad_02[2];
|
||||
/* 0x04 */ s16 var04[DATA_COUNT * 2];
|
||||
u8 pad_1C[2];
|
||||
/* 0x1E */ u16 var1E;
|
||||
/* 0x20 */ u16 var20;
|
||||
};
|
||||
|
||||
extern struct Unk201B260 unk_201B260;
|
||||
extern struct Unk201C000 unk_201C000;
|
||||
extern u8 gStringVar1[];
|
||||
extern u8 gUnknown_0202E8F4;
|
||||
extern u8 gUnknown_0202E8F6;
|
||||
|
||||
extern u8 gUnknown_083769A8[][12];
|
||||
extern u8 gUnknown_08376D1C[DATA_COUNT];
|
||||
extern u8 *gUnknown_08376D04[DATA_COUNT];
|
||||
extern u8 gOtherText_TallPlusAndRightArrow[];
|
||||
|
||||
void task_pc_turn_off(u8 *u8, int i);
|
||||
static void sub_806E884(u8 taskId);
|
||||
void sub_806F8AC(u8 taskId);
|
||||
void PartyMenuUpdateLevelOrStatus(struct Pokemon *, u8);
|
||||
u8 ExecuteTableBasedItemEffect__(u8 u8, u16 u16, int i);
|
||||
void sub_80701DC(u8 taskId);
|
||||
|
||||
u8 sub_806E834(u8 *message, u8 arg1) {
|
||||
u8 taskId;
|
||||
|
||||
gUnknown_0202E8F6 = 1;
|
||||
|
||||
MenuDrawTextWindow(3, 14, 26, 19);
|
||||
MenuPrintMessage(message, 4, 15);
|
||||
|
||||
taskId = CreateTask(sub_806E884, 1);
|
||||
gTasks[taskId].data[0] = arg1;
|
||||
|
||||
return taskId;
|
||||
}
|
||||
|
||||
static void sub_806E884(u8 taskId) {
|
||||
if (MenuUpdateWindowText() == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
gUnknown_0202E8F6 = 0;
|
||||
|
||||
if (gTasks[taskId].data[0] == 0) {
|
||||
MenuZeroFillWindowRect(3, 14, 26, 19);
|
||||
}
|
||||
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
|
||||
asm(".section .text_b");
|
||||
|
||||
#ifdef NONMATCHING
|
||||
void sub_8070088(u8 taskId) {
|
||||
u8 dummyTaskId;
|
||||
struct Task *task2;
|
||||
|
||||
gTasks[taskId].func = TaskDummy;
|
||||
|
||||
if (GetMonData(&gPlayerParty[unk_201C000.var04], MON_DATA_SPECIES) == 0) {
|
||||
gTasks[taskId].func = sub_80701DC;
|
||||
return;
|
||||
}
|
||||
|
||||
dummyTaskId = CreateTask(TaskDummy, 5);
|
||||
task2 = &gTasks[dummyTaskId];
|
||||
|
||||
task2->data[10] = GetMonData(unk_201C000.pokemon, MON_DATA_MAX_HP);
|
||||
task2->data[11] = GetMonData(unk_201C000.pokemon, MON_DATA_HP);
|
||||
|
||||
if (ExecuteTableBasedItemEffect__(unk_201C000.var05, unk_201C000.var06, 0)) {
|
||||
DestroyTask(dummyTaskId);
|
||||
gTasks[taskId].func = sub_80701DC;
|
||||
return;
|
||||
}
|
||||
|
||||
gUnknown_0202E8F4 = 1;
|
||||
MenuZeroFillWindowRect(3, 14, 26, 19);
|
||||
PlaySE(SE_KAIFUKU);
|
||||
PartyMenuUpdateLevelOrStatus(unk_201C000.pokemon, unk_201C000.var05);
|
||||
|
||||
task_pc_turn_off(&gUnknown_083769A8[IsDoubleBattle()][unk_201C000.var05], 9);
|
||||
unk_201B260.var01 = 2; // u8
|
||||
|
||||
task2->data[12] = GetMonData(unk_201C000.pokemon, MON_DATA_HP) - task2->data[11];
|
||||
task2->data[14]= 1;
|
||||
unk_201B260.var1E = 1; // u16
|
||||
unk_201B260.var20 = 1; // u16
|
||||
|
||||
unk_201C000.var12 = -0x8000;
|
||||
task2->func = sub_806F8AC;
|
||||
}
|
||||
#else
|
||||
__attribute__((naked))
|
||||
void sub_8070088(void) {
|
||||
asm(".syntax unified\n\
|
||||
push {r4-r7,lr}\n\
|
||||
mov r7, r10\n\
|
||||
mov r6, r9\n\
|
||||
mov r5, r8\n\
|
||||
push {r5-r7}\n\
|
||||
sub sp, 0x4\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
ldr r1, _08070120 @ =gTasks\n\
|
||||
mov r10, r1\n\
|
||||
lsls r1, r0, 2\n\
|
||||
adds r1, r0\n\
|
||||
lsls r1, 3\n\
|
||||
mov r2, r10\n\
|
||||
adds r7, r1, r2\n\
|
||||
ldr r5, _08070124 @ =TaskDummy\n\
|
||||
str r5, [r7]\n\
|
||||
ldr r4, _08070128 @ =0x0201c000\n\
|
||||
ldrb r0, [r4, 0x5]\n\
|
||||
movs r1, 0x64\n\
|
||||
mov r9, r1\n\
|
||||
mov r2, r9\n\
|
||||
muls r2, r0\n\
|
||||
adds r0, r2, 0\n\
|
||||
ldr r1, _0807012C @ =gPlayerParty\n\
|
||||
mov r8, r1\n\
|
||||
add r0, r8\n\
|
||||
movs r1, 0xB\n\
|
||||
bl GetMonData\n\
|
||||
cmp r0, 0\n\
|
||||
beq _08070118\n\
|
||||
adds r0, r5, 0\n\
|
||||
movs r1, 0x5\n\
|
||||
bl CreateTask\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r5, r0, 24\n\
|
||||
lsls r0, r5, 2\n\
|
||||
adds r0, r5\n\
|
||||
lsls r0, 3\n\
|
||||
str r0, [sp]\n\
|
||||
mov r0, r10\n\
|
||||
adds r0, 0x8\n\
|
||||
ldr r2, [sp]\n\
|
||||
adds r6, r2, r0\n\
|
||||
ldrb r0, [r4, 0x5]\n\
|
||||
mov r1, r9\n\
|
||||
muls r1, r0\n\
|
||||
adds r0, r1, 0\n\
|
||||
add r0, r8\n\
|
||||
str r0, [r4]\n\
|
||||
movs r1, 0x3A\n\
|
||||
bl GetMonData\n\
|
||||
strh r0, [r6, 0x14]\n\
|
||||
ldr r0, [r4]\n\
|
||||
movs r1, 0x39\n\
|
||||
bl GetMonData\n\
|
||||
strh r0, [r6, 0x16]\n\
|
||||
ldrb r0, [r4, 0x5]\n\
|
||||
ldrh r1, [r4, 0x6]\n\
|
||||
movs r2, 0\n\
|
||||
bl ExecuteTableBasedItemEffect__\n\
|
||||
lsls r0, 24\n\
|
||||
cmp r0, 0\n\
|
||||
beq _08070134\n\
|
||||
adds r0, r5, 0\n\
|
||||
bl DestroyTask\n\
|
||||
_08070118:\n\
|
||||
ldr r0, _08070130 @ =sub_80701DC\n\
|
||||
str r0, [r7]\n\
|
||||
b _080701B0\n\
|
||||
.align 2, 0\n\
|
||||
_08070120: .4byte gTasks\n\
|
||||
_08070124: .4byte TaskDummy\n\
|
||||
_08070128: .4byte 0x0201c000\n\
|
||||
_0807012C: .4byte gPlayerParty\n\
|
||||
_08070130: .4byte sub_80701DC\n\
|
||||
_08070134:\n\
|
||||
ldr r1, _080701C0 @ =gUnknown_0202E8F4\n\
|
||||
movs r0, 0x1\n\
|
||||
strb r0, [r1]\n\
|
||||
movs r0, 0x3\n\
|
||||
movs r1, 0xE\n\
|
||||
movs r2, 0x1A\n\
|
||||
movs r3, 0x13\n\
|
||||
bl MenuZeroFillWindowRect\n\
|
||||
movs r0, 0x1\n\
|
||||
bl PlaySE\n\
|
||||
ldr r0, [r4]\n\
|
||||
ldrb r1, [r4, 0x5]\n\
|
||||
bl PartyMenuUpdateLevelOrStatus\n\
|
||||
bl IsDoubleBattle\n\
|
||||
adds r1, r0, 0\n\
|
||||
lsls r1, 24\n\
|
||||
lsrs r1, 24\n\
|
||||
lsls r0, r1, 1\n\
|
||||
adds r0, r1\n\
|
||||
lsls r0, 2\n\
|
||||
ldrb r1, [r4, 0x5]\n\
|
||||
lsls r1, 1\n\
|
||||
adds r0, r1\n\
|
||||
ldr r1, _080701C4 @ =gUnknown_083769A8\n\
|
||||
adds r0, r1\n\
|
||||
movs r1, 0x9\n\
|
||||
bl task_pc_turn_off\n\
|
||||
ldr r2, _080701C8 @ =0xfffff261\n\
|
||||
adds r1, r4, r2\n\
|
||||
movs r0, 0x2\n\
|
||||
strb r0, [r1]\n\
|
||||
ldr r0, [r4]\n\
|
||||
movs r1, 0x39\n\
|
||||
bl GetMonData\n\
|
||||
ldrh r1, [r6, 0x16]\n\
|
||||
subs r0, r1\n\
|
||||
strh r0, [r6, 0x18]\n\
|
||||
movs r0, 0x1\n\
|
||||
strh r0, [r6, 0x1C]\n\
|
||||
ldr r1, _080701CC @ =0xfffff27e\n\
|
||||
adds r0, r4, r1\n\
|
||||
movs r1, 0x1\n\
|
||||
strh r1, [r0]\n\
|
||||
ldr r2, _080701D0 @ =0xfffff280\n\
|
||||
adds r0, r4, r2\n\
|
||||
strh r1, [r0]\n\
|
||||
ldrh r1, [r6, 0x16]\n\
|
||||
adds r2, 0x2\n\
|
||||
adds r0, r4, r2\n\
|
||||
strh r1, [r0]\n\
|
||||
ldr r0, _080701D4 @ =0xffff8000\n\
|
||||
str r0, [r4, 0xC]\n\
|
||||
ldr r1, [sp]\n\
|
||||
add r1, r10\n\
|
||||
ldr r0, _080701D8 @ =sub_806F8AC\n\
|
||||
str r0, [r1]\n\
|
||||
_080701B0:\n\
|
||||
add sp, 0x4\n\
|
||||
pop {r3-r5}\n\
|
||||
mov r8, r3\n\
|
||||
mov r9, r4\n\
|
||||
mov r10, r5\n\
|
||||
pop {r4-r7}\n\
|
||||
pop {r0}\n\
|
||||
bx r0\n\
|
||||
.align 2, 0\n\
|
||||
_080701C0: .4byte gUnknown_0202E8F4\n\
|
||||
_080701C4: .4byte gUnknown_083769A8\n\
|
||||
_080701C8: .4byte 0xfffff261\n\
|
||||
_080701CC: .4byte 0xfffff27e\n\
|
||||
_080701D0: .4byte 0xfffff280\n\
|
||||
_080701D4: .4byte 0xffff8000\n\
|
||||
_080701D8: .4byte sub_806F8AC\n\
|
||||
.syntax divided\n");
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
asm(".section .text_c");
|
||||
|
||||
void sub_8070848(u8 taskId) {
|
||||
u8 i;
|
||||
|
||||
MenuDrawTextWindow(11, 0, 29, 7);
|
||||
|
||||
for (i = 0; i < DATA_COUNT; i++) {
|
||||
u8 x;
|
||||
u8 y;
|
||||
u32 stat;
|
||||
struct Pokemon **pokemon;
|
||||
|
||||
pokemon = &unk_201C000.pokemon;
|
||||
asm("" ::: "r0");
|
||||
stat = GetMonData(*pokemon, gUnknown_08376D1C[i]);
|
||||
|
||||
unk_201B260.var04[i + DATA_COUNT] = stat;
|
||||
unk_201B260.var04[i] = stat - unk_201B260.var04[i];
|
||||
|
||||
x = (i / 3) * 9 + 11;
|
||||
y = ((i % 3) << 1) + 1;
|
||||
|
||||
MenuPrint_PixelCoords(gUnknown_08376D04[i], (x + 1) * 8, y * 8, 1);
|
||||
|
||||
|
||||
if (i == 2) {
|
||||
MenuPrint_PixelCoords(gOtherText_TallPlusAndRightArrow, (x + 6) * 8 + 6, y * 8, 0);
|
||||
} else {
|
||||
MenuPrint_PixelCoords(gOtherText_TallPlusAndRightArrow, (x + 6) * 8 + 6, y * 8, 1);
|
||||
}
|
||||
|
||||
gStringVar1[0] = 0xFC;
|
||||
gStringVar1[1] = 0x14;
|
||||
gStringVar1[2] = 0x06;
|
||||
|
||||
ConvertIntToDecimalStringN(gStringVar1 + 3, unk_201B260.var04[i], 1, 2);
|
||||
|
||||
MenuPrint_PixelCoords(gStringVar1, (x + 6) * 8 + 12, y * 8, 0);
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user