mirror of
https://github.com/pret/pmd-red.git
synced 2026-03-29 13:34:52 -05:00
Match sub_801F280
This commit is contained in:
parent
1506b099e8
commit
62ca91f771
|
|
@ -1,190 +0,0 @@
|
|||
#include "asm/constants/gba_constants.inc"
|
||||
#include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_801F280
|
||||
sub_801F280:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
sub sp, 0x28
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
mov r10, r0
|
||||
ldr r4, _0801F30C
|
||||
ldr r0, [r4]
|
||||
ldr r0, [r0, 0x50]
|
||||
bl CallPrepareTextbox_8008C54
|
||||
ldr r0, [r4]
|
||||
ldr r0, [r0, 0x50]
|
||||
bl sub_80073B8
|
||||
ldr r0, [r4]
|
||||
ldr r1, [r0, 0x8]
|
||||
adds r1, 0x4C
|
||||
add r0, sp, 0x4
|
||||
movs r2, 0xA
|
||||
bl sub_80922B4
|
||||
ldr r0, _0801F310
|
||||
add r1, sp, 0x4
|
||||
bl strcpy
|
||||
ldr r2, _0801F314
|
||||
ldr r0, [r4]
|
||||
ldr r3, [r0, 0x50]
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
movs r0, 0xC
|
||||
movs r1, 0
|
||||
bl PrintFormattedStringOnWindow
|
||||
movs r7, 0
|
||||
ldr r0, [r4]
|
||||
movs r1, 0x36
|
||||
ldrsh r0, [r0, r1]
|
||||
cmp r7, r0
|
||||
bge _0801F394
|
||||
add r5, sp, 0x18
|
||||
mov r8, r4
|
||||
movs r0, 0x1
|
||||
mov r9, r0
|
||||
_0801F2E0:
|
||||
adds r0, r5, 0
|
||||
movs r1, 0
|
||||
movs r2, 0xC
|
||||
bl memset
|
||||
movs r0, 0x6A
|
||||
str r0, [r5, 0x4]
|
||||
mov r1, r8
|
||||
ldr r2, [r1]
|
||||
lsls r1, r7, 3
|
||||
ldr r0, [r2, 0x10]
|
||||
adds r4, r0, r1
|
||||
ldrb r1, [r4]
|
||||
mov r0, r9
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0801F386
|
||||
ldrb r0, [r2, 0xC]
|
||||
cmp r0, 0
|
||||
beq _0801F318
|
||||
movs r0, 0x2
|
||||
b _0801F31A
|
||||
.align 2, 0
|
||||
_0801F30C: .4byte gUnknown_203B270
|
||||
_0801F310: .4byte gFormatBuffer_Monsters
|
||||
_0801F314: .4byte gUnknown_80DC28C
|
||||
_0801F318:
|
||||
movs r0, 0x4
|
||||
_0801F31A:
|
||||
str r0, [sp, 0x18]
|
||||
mov r1, r8
|
||||
ldr r0, [r1]
|
||||
ldrb r0, [r0, 0x6]
|
||||
cmp r0, 0
|
||||
beq _0801F328
|
||||
mov r0, r9
|
||||
_0801F328:
|
||||
strb r0, [r5, 0x9]
|
||||
cmp r7, 0x3
|
||||
ble _0801F332
|
||||
mov r1, r9
|
||||
strb r1, [r5, 0x8]
|
||||
_0801F332:
|
||||
ldr r0, _0801F3EC
|
||||
adds r1, r4, 0
|
||||
adds r2, r5, 0
|
||||
bl sub_80928A0
|
||||
ldr r2, _0801F3F0
|
||||
ldr r0, [r2]
|
||||
adds r0, 0x1C
|
||||
adds r1, r7, 0
|
||||
str r2, [sp, 0x24]
|
||||
bl sub_8013800
|
||||
adds r6, r0, 0
|
||||
ldrb r1, [r4]
|
||||
movs r0, 0x2
|
||||
ands r0, r1
|
||||
movs r4, 0xD
|
||||
ldr r2, [sp, 0x24]
|
||||
cmp r0, 0
|
||||
bne _0801F372
|
||||
movs r4, 0x8
|
||||
cmp r7, 0
|
||||
beq _0801F372
|
||||
ldr r0, [r2]
|
||||
ldr r0, [r0, 0x50]
|
||||
subs r2, r6, 0x2
|
||||
movs r1, 0x7
|
||||
str r1, [sp]
|
||||
movs r1, 0xC
|
||||
movs r3, 0x78
|
||||
bl sub_800792C
|
||||
_0801F372:
|
||||
mov r1, r8
|
||||
ldr r0, [r1]
|
||||
ldr r3, [r0, 0x50]
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
adds r0, r4, 0
|
||||
adds r1, r6, 0
|
||||
ldr r2, _0801F3F4
|
||||
bl PrintFormattedStringOnWindow
|
||||
_0801F386:
|
||||
adds r7, 0x1
|
||||
mov r1, r8
|
||||
ldr r0, [r1]
|
||||
movs r1, 0x36
|
||||
ldrsh r0, [r0, r1]
|
||||
cmp r7, r0
|
||||
blt _0801F2E0
|
||||
_0801F394:
|
||||
ldr r4, _0801F3F0
|
||||
ldr r0, [r4]
|
||||
ldr r0, [r0, 0x50]
|
||||
bl sub_80073E0
|
||||
ldr r1, [r4]
|
||||
adds r0, r1, 0
|
||||
adds r0, 0xB8
|
||||
ldr r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _0801F3DC
|
||||
mov r0, r10
|
||||
cmp r0, 0
|
||||
beq _0801F3DC
|
||||
ldr r0, [r1, 0x54]
|
||||
bl CallPrepareTextbox_8008C54
|
||||
ldr r0, [r4]
|
||||
ldr r0, [r0, 0x54]
|
||||
bl sub_80073B8
|
||||
ldr r1, [r4]
|
||||
adds r0, r1, 0
|
||||
adds r0, 0xB8
|
||||
ldr r2, [r0]
|
||||
ldr r3, [r1, 0x54]
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
movs r0, 0x8
|
||||
movs r1, 0
|
||||
bl PrintFormattedStringOnWindow
|
||||
ldr r0, [r4]
|
||||
ldr r0, [r0, 0x54]
|
||||
bl sub_80073E0
|
||||
_0801F3DC:
|
||||
add sp, 0x28
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0801F3EC: .4byte gFormatBuffer_Items
|
||||
_0801F3F0: .4byte gUnknown_203B270
|
||||
_0801F3F4: .4byte gUnknown_80DC2A0
|
||||
thumb_func_end sub_801F280
|
||||
|
||||
.align 2,0
|
||||
|
|
@ -31,8 +31,6 @@ s32 sub_801F194(void);
|
|||
bool8 sub_801F1A4(void);
|
||||
void sub_801F1B0(bool8, bool8);
|
||||
void sub_801F214(void);
|
||||
|
||||
// code_801EE10.s
|
||||
extern void sub_801F280(u32); // Probably bool
|
||||
void sub_801F280(bool8);
|
||||
|
||||
#endif // CODE_801EE10_H
|
||||
|
|
|
|||
|
|
@ -125,8 +125,6 @@ SECTIONS {
|
|||
src/hints_menu2.o(.text);
|
||||
src/gulpin_shop.o(.text);
|
||||
src/code_801EE10.o(.text);
|
||||
asm/code_801EE10.o(.text);
|
||||
src/code_801EE10_mid.o(.text);
|
||||
src/code_801F428.o(.text);
|
||||
src/code_801F808.o(.text);
|
||||
src/gulpin_shop_801FB50.o(.text);
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@
|
|||
#include "code_801EE10.h"
|
||||
#include "code_80118A4.h"
|
||||
#include "menu_input.h"
|
||||
#include "string_format.h"
|
||||
|
||||
EWRAM_DATA_2 unkStruct_203B270 *gUnknown_203B270 = {0};
|
||||
|
||||
|
|
@ -95,7 +96,7 @@ u8 sub_801EE10(u32 param_1, s16 species, Move *moves, u32 param_4, const u8 *tex
|
|||
xxx_call_save_unk_text_struct_800641C(gUnknown_203B270->unk58, TRUE, TRUE);
|
||||
sub_8013818(&gUnknown_203B270->input,iVar5,iVar5,param_6);
|
||||
sub_8013780(&gUnknown_203B270->input,0);
|
||||
sub_801F280(1);
|
||||
sub_801F280(TRUE);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
@ -147,7 +148,7 @@ u32 sub_801EF38(char param_1)
|
|||
else {
|
||||
goto _134;
|
||||
}
|
||||
sub_801F280(1);
|
||||
sub_801F280(TRUE);
|
||||
return 1;
|
||||
case INPUT_R_DPAD_UP_BUTTONS:
|
||||
if (gUnknown_203B270->unk5 == 0) break;
|
||||
|
|
@ -160,7 +161,7 @@ u32 sub_801EF38(char param_1)
|
|||
_134:
|
||||
PlayMenuSoundEffect(2);
|
||||
}
|
||||
sub_801F280(1);
|
||||
sub_801F280(TRUE);
|
||||
return 1;
|
||||
case INPUT_R_A_BUTTONS:
|
||||
if (gUnknown_203B270->unk6 != 0) {
|
||||
|
|
@ -225,7 +226,7 @@ _134:
|
|||
}
|
||||
if (flag) {
|
||||
_ret:
|
||||
sub_801F280(1);
|
||||
sub_801F280(TRUE);
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
|
|
@ -253,7 +254,7 @@ void sub_801F1B0(bool8 param_1, bool8 param_2)
|
|||
gUnknown_203B270->input.unk22 = sub_801F3F8();
|
||||
sub_8013984(&gUnknown_203B270->input);
|
||||
gUnknown_203B270->input.menuIndex = sub_8092F4C(gUnknown_203B270->moves, gUnknown_203B270->input.menuIndex);
|
||||
sub_801F280(1);
|
||||
sub_801F280(TRUE);
|
||||
if(param_1)
|
||||
AddMenuCursorSprite(&gUnknown_203B270->input);
|
||||
}
|
||||
|
|
@ -273,3 +274,80 @@ void sub_801F214(void)
|
|||
gUnknown_203B270 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
extern void sub_80922B4(u8 *buffer, u8 *string, s32 size);
|
||||
|
||||
void sub_801F280(bool8 param_1)
|
||||
{
|
||||
int i;
|
||||
u8 buffer[20];
|
||||
|
||||
CallPrepareTextbox_8008C54(gUnknown_203B270->unk50);
|
||||
sub_80073B8(gUnknown_203B270->unk50);
|
||||
sub_80922B4(buffer,gUnknown_203B270->pokeStruct->name,10);
|
||||
strcpy(gFormatBuffer_Monsters[0],buffer);
|
||||
PrintFormattedStringOnWindow(0xc,0,gUnknown_80DC28C,gUnknown_203B270->unk50,0); // Move: {COLOR_1 YELLOW}{ARG_POKEMON_0){END_COLOR_TEXT_1}
|
||||
|
||||
for (i = 0; i < gUnknown_203B270->input.unk1A; i++) {
|
||||
struct Move *move;
|
||||
bool8 linkChain;
|
||||
s32 x, y;
|
||||
struct unkStruct_80928C0 uStack_30 = {0};
|
||||
|
||||
uStack_30.unk4 = 0x6a;
|
||||
move = &gUnknown_203B270->moves[i];
|
||||
if (MoveFlagExists(move)) {
|
||||
if (gUnknown_203B270->isTeamLeader) {
|
||||
uStack_30.unk0 = 2;
|
||||
}
|
||||
else {
|
||||
uStack_30.unk0 = 4;
|
||||
}
|
||||
|
||||
if (gUnknown_203B270->unk6) {
|
||||
uStack_30.unk9 = 1;
|
||||
}
|
||||
else {
|
||||
uStack_30.unk9 = 0;
|
||||
}
|
||||
|
||||
if (i >= MAX_MON_MOVES) {
|
||||
uStack_30.unk8 = 1;
|
||||
}
|
||||
|
||||
sub_80928A0(gFormatBuffer_Items[0],move,&uStack_30);
|
||||
y = sub_8013800(&gUnknown_203B270->input,i);
|
||||
linkChain = MoveFlagLinkChain(move);
|
||||
x = !linkChain ? 0x8 : 0xD;
|
||||
if (!linkChain && i != 0) {
|
||||
sub_800792C(gUnknown_203B270->unk50,0xc,y - 2,0x78,7);
|
||||
}
|
||||
PrintFormattedStringOnWindow(x,y,gUnknown_80DC2A0,gUnknown_203B270->unk50,0); // {ARG_MOVE_ITEM_0}
|
||||
}
|
||||
}
|
||||
|
||||
sub_80073E0(gUnknown_203B270->unk50);
|
||||
if ((gUnknown_203B270->text != NULL) && (param_1)) {
|
||||
CallPrepareTextbox_8008C54(gUnknown_203B270->unk54);
|
||||
sub_80073B8(gUnknown_203B270->unk54);
|
||||
PrintFormattedStringOnWindow(8,0,gUnknown_203B270->text,gUnknown_203B270->unk54,0);
|
||||
sub_80073E0(gUnknown_203B270->unk54);
|
||||
}
|
||||
}
|
||||
|
||||
s32 sub_801F3F8(void)
|
||||
{
|
||||
Move *move;
|
||||
int index;
|
||||
s32 counter;
|
||||
|
||||
counter = 0;
|
||||
for(index = 0; index < 8; index++)
|
||||
{
|
||||
move = &gUnknown_203B270->moves[index];
|
||||
if ((move->moveFlags & MOVE_FLAG_EXISTS)) {
|
||||
counter++;
|
||||
}
|
||||
}
|
||||
return counter;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,21 +0,0 @@
|
|||
#include "global.h"
|
||||
#include "code_801EE10.h"
|
||||
|
||||
extern unkStruct_203B270 *gUnknown_203B270;
|
||||
|
||||
s32 sub_801F3F8(void)
|
||||
{
|
||||
Move *move;
|
||||
int index;
|
||||
s32 counter;
|
||||
|
||||
counter = 0;
|
||||
for(index = 0; index < 8; index++)
|
||||
{
|
||||
move = &gUnknown_203B270->moves[index];
|
||||
if ((move->moveFlags & MOVE_FLAG_EXISTS)) {
|
||||
counter++;
|
||||
}
|
||||
}
|
||||
return counter;
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user