mirror of
https://github.com/pret/pmd-red.git
synced 2026-09-11 10:35:55 -05:00
more decomp on code_801EE10
This commit is contained in:
@@ -5,424 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_801EF38
|
||||
sub_801EF38:
|
||||
push {r4-r7,lr}
|
||||
lsls r0, 24
|
||||
movs r7, 0
|
||||
cmp r0, 0
|
||||
bne _0801EF54
|
||||
ldr r0, _0801EF50
|
||||
ldr r0, [r0]
|
||||
adds r0, 0x1C
|
||||
bl sub_8013660
|
||||
b _0801F18C
|
||||
.align 2, 0
|
||||
_0801EF50: .4byte gUnknown_203B270
|
||||
_0801EF54:
|
||||
ldr r0, _0801EF70
|
||||
ldr r0, [r0]
|
||||
adds r0, 0x1C
|
||||
bl GetKeyPress
|
||||
subs r0, 0x1
|
||||
cmp r0, 0xC
|
||||
bls _0801EF66
|
||||
b _0801F12E
|
||||
_0801EF66:
|
||||
lsls r0, 2
|
||||
ldr r1, _0801EF74
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_0801EF70: .4byte gUnknown_203B270
|
||||
_0801EF74: .4byte _0801EF78
|
||||
.align 2, 0
|
||||
_0801EF78:
|
||||
.4byte _0801EFB6
|
||||
.4byte _0801EFAC
|
||||
.4byte _0801F0E4
|
||||
.4byte _0801EFC0
|
||||
.4byte _0801F12E
|
||||
.4byte _0801F12E
|
||||
.4byte _0801EFE4
|
||||
.4byte _0801EFCA
|
||||
.4byte _0801F12E
|
||||
.4byte _0801F12E
|
||||
.4byte _0801F074
|
||||
.4byte _0801F04C
|
||||
.4byte _0801F018
|
||||
_0801EFAC:
|
||||
movs r0, 0x1
|
||||
bl PlayMenuSoundEffect
|
||||
movs r0, 0x2
|
||||
b _0801F18E
|
||||
_0801EFB6:
|
||||
movs r0, 0
|
||||
bl PlayMenuSoundEffect
|
||||
movs r0, 0x3
|
||||
b _0801F18E
|
||||
_0801EFC0:
|
||||
movs r0, 0x4
|
||||
bl PlayMenuSoundEffect
|
||||
movs r0, 0x4
|
||||
b _0801F18E
|
||||
_0801EFCA:
|
||||
ldr r5, _0801EFE0
|
||||
ldr r0, [r5]
|
||||
movs r1, 0x34
|
||||
ldrsh r6, [r0, r1]
|
||||
adds r4, r0, 0
|
||||
adds r4, 0x1C
|
||||
ldr r0, [r0, 0x10]
|
||||
adds r1, r6, 0
|
||||
bl unk_FindMoveEnabledForAIAfter8_v2
|
||||
b _0801EFF8
|
||||
.align 2, 0
|
||||
_0801EFE0: .4byte gUnknown_203B270
|
||||
_0801EFE4:
|
||||
ldr r5, _0801F014
|
||||
ldr r0, [r5]
|
||||
movs r1, 0x34
|
||||
ldrsh r6, [r0, r1]
|
||||
adds r4, r0, 0
|
||||
adds r4, 0x1C
|
||||
ldr r0, [r0, 0x10]
|
||||
adds r1, r6, 0
|
||||
bl unk_FindMoveEnabledForAIBefore8_v2
|
||||
_0801EFF8:
|
||||
adds r1, r0, 0
|
||||
adds r0, r4, 0
|
||||
bl sub_8013780
|
||||
ldr r0, [r5]
|
||||
movs r2, 0x34
|
||||
ldrsh r0, [r0, r2]
|
||||
cmp r6, r0
|
||||
bne _0801F00C
|
||||
b _0801F12E
|
||||
_0801F00C:
|
||||
movs r0, 0x3
|
||||
bl PlayMenuSoundEffect
|
||||
b _0801F12E
|
||||
.align 2, 0
|
||||
_0801F014: .4byte gUnknown_203B270
|
||||
_0801F018:
|
||||
ldr r0, _0801F048
|
||||
ldr r2, [r0]
|
||||
ldrb r1, [r2, 0x5]
|
||||
adds r5, r0, 0
|
||||
cmp r1, 0
|
||||
bne _0801F026
|
||||
b _0801F12E
|
||||
_0801F026:
|
||||
movs r0, 0x34
|
||||
ldrsh r4, [r2, r0]
|
||||
ldr r0, [r2, 0x10]
|
||||
adds r1, r4, 0
|
||||
bl unk_SetMoveToLastInLinkedSequence8_v2
|
||||
_0801F032:
|
||||
ldr r1, [r5]
|
||||
strh r0, [r1, 0x34]
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
cmp r4, r0
|
||||
beq _0801F06C
|
||||
movs r0, 0x3
|
||||
bl PlayMenuSoundEffect
|
||||
b _0801F182
|
||||
.align 2, 0
|
||||
_0801F048: .4byte gUnknown_203B270
|
||||
_0801F04C:
|
||||
ldr r0, _0801F068
|
||||
ldr r2, [r0]
|
||||
ldrb r1, [r2, 0x5]
|
||||
adds r5, r0, 0
|
||||
cmp r1, 0
|
||||
beq _0801F12E
|
||||
movs r1, 0x34
|
||||
ldrsh r4, [r2, r1]
|
||||
ldr r0, [r2, 0x10]
|
||||
adds r1, r4, 0
|
||||
bl unk_SetMoveToFirstInLinkedSequence8_v2
|
||||
b _0801F032
|
||||
.align 2, 0
|
||||
_0801F068: .4byte gUnknown_203B270
|
||||
_0801F06C:
|
||||
movs r0, 0x2
|
||||
bl PlayMenuSoundEffect
|
||||
b _0801F182
|
||||
_0801F074:
|
||||
ldr r0, _0801F0C8
|
||||
ldr r2, [r0]
|
||||
ldrb r1, [r2, 0x6]
|
||||
adds r5, r0, 0
|
||||
cmp r1, 0
|
||||
beq _0801F12E
|
||||
ldr r0, _0801F0CC
|
||||
ldr r0, [r0]
|
||||
movs r1, 0x98
|
||||
lsls r1, 2
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
cmp r0, 0x95
|
||||
ble _0801F0D0
|
||||
movs r1, 0x34
|
||||
ldrsh r0, [r2, r1]
|
||||
ldr r1, [r2, 0x10]
|
||||
bl sub_8093318
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0801F0D0
|
||||
ldr r1, [r5]
|
||||
movs r2, 0x34
|
||||
ldrsh r0, [r1, r2]
|
||||
ldr r1, [r1, 0x10]
|
||||
bl TryLinkMovesAfter
|
||||
movs r0, 0x6
|
||||
bl PlayMenuSoundEffect
|
||||
movs r7, 0x1
|
||||
ldr r1, [r5]
|
||||
ldrb r0, [r1, 0x4]
|
||||
cmp r0, 0
|
||||
bne _0801F12E
|
||||
strb r7, [r1, 0x4]
|
||||
movs r0, 0xA6
|
||||
lsls r0, 1
|
||||
bl PlaySound
|
||||
b _0801F12E
|
||||
.align 2, 0
|
||||
_0801F0C8: .4byte gUnknown_203B270
|
||||
_0801F0CC: .4byte gTeamInventoryRef
|
||||
_0801F0D0:
|
||||
ldr r0, _0801F0E0
|
||||
ldr r1, [r0]
|
||||
movs r2, 0x34
|
||||
ldrsh r0, [r1, r2]
|
||||
ldr r1, [r1, 0x10]
|
||||
bl UnlinkMovesAfter
|
||||
b _0801F0FE
|
||||
.align 2, 0
|
||||
_0801F0E0: .4byte gUnknown_203B270
|
||||
_0801F0E4:
|
||||
ldr r0, _0801F10C
|
||||
ldr r1, [r0]
|
||||
ldrb r0, [r1, 0x7]
|
||||
cmp r0, 0
|
||||
beq _0801F12E
|
||||
ldrb r0, [r1, 0xC]
|
||||
cmp r0, 0
|
||||
beq _0801F110
|
||||
movs r2, 0x34
|
||||
ldrsh r0, [r1, r2]
|
||||
ldr r1, [r1, 0x10]
|
||||
bl ToggleSetMove
|
||||
_0801F0FE:
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0801F120
|
||||
movs r0, 0x2
|
||||
bl PlayMenuSoundEffect
|
||||
b _0801F12E
|
||||
.align 2, 0
|
||||
_0801F10C: .4byte gUnknown_203B270
|
||||
_0801F110:
|
||||
movs r2, 0x34
|
||||
ldrsh r0, [r1, r2]
|
||||
ldr r1, [r1, 0x10]
|
||||
bl ToggleMoveEnabled
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0801F128
|
||||
_0801F120:
|
||||
movs r0, 0x6
|
||||
bl PlayMenuSoundEffect
|
||||
b _0801F182
|
||||
_0801F128:
|
||||
movs r0, 0x2
|
||||
bl PlayMenuSoundEffect
|
||||
_0801F12E:
|
||||
cmp r7, 0
|
||||
bne _0801F182
|
||||
movs r3, 0
|
||||
ldr r5, _0801F160
|
||||
movs r4, 0x1
|
||||
_0801F138:
|
||||
ldr r2, [r5]
|
||||
lsls r0, r3, 3
|
||||
ldr r1, [r2, 0x10]
|
||||
adds r1, r0
|
||||
ldrb r1, [r1]
|
||||
adds r0, r4, 0
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0801F16C
|
||||
movs r0, 0x2
|
||||
ands r0, r1
|
||||
lsls r0, 24
|
||||
lsrs r1, r0, 24
|
||||
cmp r1, 0
|
||||
beq _0801F164
|
||||
adds r0, r2, 0
|
||||
adds r0, 0x14
|
||||
adds r0, r3
|
||||
strb r4, [r0]
|
||||
b _0801F16C
|
||||
.align 2, 0
|
||||
_0801F160: .4byte gUnknown_203B270
|
||||
_0801F164:
|
||||
adds r0, r2, 0
|
||||
adds r0, 0x14
|
||||
adds r0, r3
|
||||
strb r1, [r0]
|
||||
_0801F16C:
|
||||
adds r3, 0x1
|
||||
cmp r3, 0x7
|
||||
ble _0801F138
|
||||
ldr r1, [r5]
|
||||
adds r0, r1, 0
|
||||
adds r0, 0x1C
|
||||
adds r1, 0x14
|
||||
bl AddMenuCursorSprite_
|
||||
cmp r7, 0
|
||||
beq _0801F18C
|
||||
_0801F182:
|
||||
movs r0, 0x1
|
||||
bl sub_801F280
|
||||
movs r0, 0x1
|
||||
b _0801F18E
|
||||
_0801F18C:
|
||||
movs r0, 0
|
||||
_0801F18E:
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_801EF38
|
||||
|
||||
thumb_func_start sub_801F194
|
||||
sub_801F194:
|
||||
ldr r0, _0801F1A0
|
||||
ldr r0, [r0]
|
||||
movs r1, 0x34
|
||||
ldrsh r0, [r0, r1]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0801F1A0: .4byte gUnknown_203B270
|
||||
thumb_func_end sub_801F194
|
||||
|
||||
thumb_func_start sub_801F1A4
|
||||
sub_801F1A4:
|
||||
ldr r0, _0801F1AC
|
||||
ldr r0, [r0]
|
||||
ldrb r0, [r0, 0x4]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0801F1AC: .4byte gUnknown_203B270
|
||||
thumb_func_end sub_801F1A4
|
||||
|
||||
thumb_func_start sub_801F1B0
|
||||
sub_801F1B0:
|
||||
push {r4,r5,lr}
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
lsls r1, 24
|
||||
lsrs r1, 24
|
||||
ldr r4, _0801F210
|
||||
ldr r2, [r4]
|
||||
ldrb r0, [r2, 0x4]
|
||||
cmp r0, 0
|
||||
bne _0801F1C6
|
||||
strb r1, [r2, 0x4]
|
||||
_0801F1C6:
|
||||
bl ResetUnusedInputStruct
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x58
|
||||
movs r1, 0x1
|
||||
movs r2, 0x1
|
||||
bl sub_800641C
|
||||
bl sub_801F3F8
|
||||
adds r1, r0, 0
|
||||
ldr r0, [r4]
|
||||
strh r1, [r0, 0x3E]
|
||||
adds r0, 0x1C
|
||||
bl sub_8013984
|
||||
ldr r1, [r4]
|
||||
ldr r0, [r1, 0x10]
|
||||
movs r2, 0x34
|
||||
ldrsh r1, [r1, r2]
|
||||
bl sub_8092F4C
|
||||
ldr r1, [r4]
|
||||
strh r0, [r1, 0x34]
|
||||
movs r0, 0x1
|
||||
bl sub_801F280
|
||||
cmp r5, 0
|
||||
beq _0801F208
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x1C
|
||||
bl AddMenuCursorSprite
|
||||
_0801F208:
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0801F210: .4byte gUnknown_203B270
|
||||
thumb_func_end sub_801F1B0
|
||||
|
||||
thumb_func_start sub_801F214
|
||||
sub_801F214:
|
||||
push {r4-r6,lr}
|
||||
ldr r4, _0801F278
|
||||
ldr r2, [r4]
|
||||
cmp r2, 0
|
||||
beq _0801F272
|
||||
ldr r0, [r2, 0x50]
|
||||
lsls r1, r0, 1
|
||||
adds r1, r0
|
||||
lsls r1, 3
|
||||
adds r1, r2, r1
|
||||
ldr r3, _0801F27C
|
||||
adds r1, 0x58
|
||||
adds r0, r3, 0
|
||||
ldm r0!, {r2,r5,r6}
|
||||
stm r1!, {r2,r5,r6}
|
||||
ldm r0!, {r2,r5,r6}
|
||||
stm r1!, {r2,r5,r6}
|
||||
ldr r2, [r4]
|
||||
adds r0, r2, 0
|
||||
adds r0, 0xB8
|
||||
ldr r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _0801F258
|
||||
ldr r0, [r2, 0x54]
|
||||
lsls r1, r0, 1
|
||||
adds r1, r0
|
||||
lsls r1, 3
|
||||
adds r1, r2, r1
|
||||
adds r1, 0x58
|
||||
adds r0, r3, 0
|
||||
ldm r0!, {r2,r3,r5}
|
||||
stm r1!, {r2,r3,r5}
|
||||
ldm r0!, {r2,r3,r6}
|
||||
stm r1!, {r2,r3,r6}
|
||||
_0801F258:
|
||||
bl ResetUnusedInputStruct
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x58
|
||||
movs r1, 0x1
|
||||
movs r2, 0x1
|
||||
bl sub_800641C
|
||||
ldr r0, [r4]
|
||||
bl MemoryFree
|
||||
movs r0, 0
|
||||
str r0, [r4]
|
||||
_0801F272:
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0801F278: .4byte gUnknown_203B270
|
||||
_0801F27C: .4byte gUnknown_80DC240
|
||||
thumb_func_end sub_801F214
|
||||
|
||||
thumb_func_start sub_801F280
|
||||
sub_801F280:
|
||||
push {r4-r7,lr}
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
typedef struct unkStruct_203B270
|
||||
{
|
||||
u32 unk0;
|
||||
u8 unk4;
|
||||
bool8 unk4;
|
||||
u8 unk5;
|
||||
u8 unk6;
|
||||
u8 unk7;
|
||||
@@ -18,7 +18,7 @@ typedef struct unkStruct_203B270
|
||||
/* 0xC */ u8 isTeamLeader;
|
||||
/* 0x10 */ Move *moves;
|
||||
u8 fill14[0x1C - 0x14];
|
||||
MenuInputStruct input;
|
||||
/* 0x1C */ MenuInputStruct input;
|
||||
u32 unk50;
|
||||
u32 unk54;
|
||||
UnkTextStruct2 unk58[4];
|
||||
@@ -26,13 +26,13 @@ typedef struct unkStruct_203B270
|
||||
} unkStruct_203B270;
|
||||
|
||||
u8 sub_801EE10(u32, s16 species, Move *moves, u32, const u8 *text, u32);
|
||||
u32 sub_801EF38(char);
|
||||
s32 sub_801F194(void);
|
||||
bool8 sub_801F1A4(void);
|
||||
void sub_801F1B0(bool8, bool8);
|
||||
void sub_801F214(void);
|
||||
|
||||
// code_801EE10.s
|
||||
extern u32 sub_801EF38(u32);
|
||||
extern u32 sub_801F194(void);
|
||||
extern bool8 sub_801F1A4(void);
|
||||
extern void sub_801F1B0(bool8, bool8);
|
||||
extern void sub_801F214(void);
|
||||
extern void sub_801F280(u32); // Probably bool
|
||||
|
||||
#endif // CODE_801EE10_H
|
||||
#endif // CODE_801EE10_H
|
||||
|
||||
@@ -40,7 +40,7 @@ bool8 sub_8013938(MenuInputStruct *param_1);
|
||||
void sub_8013984(MenuInputStruct * param_1);
|
||||
void sub_8013A54(MenuInputStruct *param_1);
|
||||
void sub_8013A7C(MenuInputStruct *param_1);
|
||||
void AddMenuCursorSprite_(MenuInputStruct *, u32);
|
||||
void AddMenuCursorSprite_(MenuInputStruct *, u8 *);
|
||||
void nullsub_34(MenuInputStructSub *);
|
||||
|
||||
void sub_8013AA0(unkStructFor8013AA0 *);
|
||||
@@ -48,4 +48,4 @@ u32 sub_8013BBC(unkStructFor8013AA0 *);
|
||||
void sub_8013C68(unkStructFor8013AA0 *);
|
||||
void sub_8013D10(unkStructFor8013AA0 *);
|
||||
|
||||
#endif // GUARD_MENU_INPUT_H
|
||||
#endif // GUARD_MENU_INPUT_H
|
||||
|
||||
@@ -1,14 +1,18 @@
|
||||
#include "global.h"
|
||||
#include "input.h"
|
||||
#include "items.h"
|
||||
#include "text1.h"
|
||||
#include "text2.h"
|
||||
#include "memory.h"
|
||||
#include "moves.h"
|
||||
#include "code_801EE10.h"
|
||||
#include "code_80118A4.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
extern unkStruct_203B270 *gUnknown_203B270;
|
||||
extern UnkTextStruct2 gUnknown_80DC25C;
|
||||
extern UnkTextStruct2 gUnknown_80DC274;
|
||||
extern UnkTextStruct2 gUnknown_80DC240;
|
||||
|
||||
u32 sub_8006544(u32 index);
|
||||
s32 sub_801F3F8(void);
|
||||
@@ -65,3 +69,190 @@ u8 sub_801EE10(u32 param_1, s16 species, Move *moves, u32 param_4, const u8 *tex
|
||||
sub_801F280(1);
|
||||
return 1;
|
||||
}
|
||||
|
||||
u32 sub_801EF38(char param_1)
|
||||
{
|
||||
bool8 bVar2;
|
||||
s32 index;
|
||||
s32 index2;
|
||||
s32 moveIndex;
|
||||
s32 newIndex;
|
||||
struct Move *move;
|
||||
|
||||
bVar2 = 0;
|
||||
if (param_1 == 0) {
|
||||
sub_8013660(&gUnknown_203B270->input);
|
||||
return 0;
|
||||
}
|
||||
switch(GetKeyPress(&gUnknown_203B270->input)) {
|
||||
// B_BUTTON
|
||||
case 2:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
// A_BUTTON
|
||||
case 1:
|
||||
PlayMenuSoundEffect(0);
|
||||
return 3;
|
||||
// START_BUTTON
|
||||
case 4:
|
||||
PlayMenuSoundEffect(4);
|
||||
return 4;
|
||||
// DPAD_DOWN
|
||||
case 8:
|
||||
index = gUnknown_203B270->input.menuIndex;
|
||||
sub_8013780(&gUnknown_203B270->input, unk_FindMoveEnabledForAIAfter8_v2(gUnknown_203B270->moves, index));
|
||||
if (index != gUnknown_203B270->input.menuIndex) {
|
||||
PlayMenuSoundEffect(3);
|
||||
}
|
||||
break;
|
||||
// DPAD_UP
|
||||
case 7:
|
||||
index = gUnknown_203B270->input.menuIndex;
|
||||
sub_8013780(&gUnknown_203B270->input,unk_FindMoveEnabledForAIBefore8_v2(gUnknown_203B270->moves,index));
|
||||
if (index != gUnknown_203B270->input.menuIndex) {
|
||||
PlayMenuSoundEffect(3);
|
||||
}
|
||||
break;
|
||||
// R_PAD_DOWN_BUTTONS
|
||||
case 0xd:
|
||||
if (gUnknown_203B270->unk5 == 0) break;
|
||||
moveIndex = gUnknown_203B270->input.menuIndex;
|
||||
newIndex = gUnknown_203B270->input.menuIndex = unk_SetMoveToLastInLinkedSequence8_v2(gUnknown_203B270->moves, moveIndex);
|
||||
if (moveIndex != newIndex) {
|
||||
PlayMenuSoundEffect(3);
|
||||
}
|
||||
else {
|
||||
goto _134;
|
||||
}
|
||||
sub_801F280(1);
|
||||
return 1;
|
||||
// R_PAD_UP_BUTTONS
|
||||
case 0xc:
|
||||
if (gUnknown_203B270->unk5 == 0) break;
|
||||
moveIndex = gUnknown_203B270->input.menuIndex;
|
||||
newIndex = gUnknown_203B270->input.menuIndex = unk_SetMoveToFirstInLinkedSequence8_v2(gUnknown_203B270->moves,moveIndex);
|
||||
if (moveIndex != newIndex) {
|
||||
PlayMenuSoundEffect(3);
|
||||
}
|
||||
else {
|
||||
_134:
|
||||
PlayMenuSoundEffect(2);
|
||||
}
|
||||
sub_801F280(1);
|
||||
return 1;
|
||||
// R_A_BUTTONS
|
||||
case 0xb:
|
||||
if (gUnknown_203B270->unk6 != 0) {
|
||||
if ((gTeamInventoryRef->teamMoney > 0x95) && (sub_8093318(gUnknown_203B270->input.menuIndex,gUnknown_203B270->moves) != 0))
|
||||
{
|
||||
TryLinkMovesAfter(gUnknown_203B270->input.menuIndex,gUnknown_203B270->moves);
|
||||
PlayMenuSoundEffect(6);
|
||||
bVar2 = 1;
|
||||
if (gUnknown_203B270->unk4 == 0) {
|
||||
gUnknown_203B270->unk4 = 1;
|
||||
PlaySound(0x14c);
|
||||
}
|
||||
break;
|
||||
}
|
||||
else if (UnlinkMovesAfter(gUnknown_203B270->input.menuIndex,gUnknown_203B270->moves) != 0) {
|
||||
PlayMenuSoundEffect(6);
|
||||
goto _ret;
|
||||
}
|
||||
else {
|
||||
PlayMenuSoundEffect(2);
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
// SELECT_BUTTON
|
||||
case 3:
|
||||
if (gUnknown_203B270->unk7 != 0) {
|
||||
if (gUnknown_203B270->isTeamLeader) {
|
||||
if (ToggleSetMove(gUnknown_203B270->input.menuIndex,gUnknown_203B270->moves) == 0) {
|
||||
PlayMenuSoundEffect(2);
|
||||
break;
|
||||
}
|
||||
else {
|
||||
PlayMenuSoundEffect(6);
|
||||
goto _ret;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (ToggleMoveEnabled(gUnknown_203B270->input.menuIndex,gUnknown_203B270->moves) != 0) {
|
||||
PlayMenuSoundEffect(6);
|
||||
goto _ret;
|
||||
}
|
||||
else {
|
||||
PlayMenuSoundEffect(2);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (!bVar2) {
|
||||
for(index2 = 0; index2 < 8; index2++)
|
||||
{
|
||||
move = &gUnknown_203B270->moves[index2];
|
||||
if ((move->moveFlags & 1)) {
|
||||
if ((move->moveFlags & 2)) {
|
||||
gUnknown_203B270->fill14[index2] = 1;
|
||||
}
|
||||
else {
|
||||
gUnknown_203B270->fill14[index2] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
AddMenuCursorSprite_(&gUnknown_203B270->input, gUnknown_203B270->fill14);
|
||||
}
|
||||
if (bVar2) {
|
||||
_ret:
|
||||
sub_801F280(1);
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
s32 sub_801F194 (void)
|
||||
{
|
||||
return gUnknown_203B270->input.menuIndex;
|
||||
}
|
||||
|
||||
u8 sub_801F1A4(void)
|
||||
{
|
||||
return gUnknown_203B270->unk4;
|
||||
}
|
||||
|
||||
void sub_801F1B0(bool8 param_1, bool8 param_2)
|
||||
{
|
||||
if(!gUnknown_203B270->unk4)
|
||||
gUnknown_203B270->unk4 = param_2;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B270->unk58, TRUE, TRUE);
|
||||
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);
|
||||
if(param_1)
|
||||
AddMenuCursorSprite(&gUnknown_203B270->input);
|
||||
}
|
||||
|
||||
void sub_801F214(void)
|
||||
{
|
||||
if(gUnknown_203B270)
|
||||
{
|
||||
gUnknown_203B270->unk58[gUnknown_203B270->unk50] = gUnknown_80DC240;
|
||||
if(gUnknown_203B270->text)
|
||||
{
|
||||
gUnknown_203B270->unk58[gUnknown_203B270->unk54] = gUnknown_80DC240;
|
||||
}
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B270->unk58, TRUE, TRUE);
|
||||
MemoryFree(gUnknown_203B270);
|
||||
gUnknown_203B270 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -587,7 +587,7 @@ void AddMenuCursorSprite(MenuInputStruct *param_1)
|
||||
AddMenuCursorSprite_(param_1, 0);
|
||||
}
|
||||
|
||||
void AddMenuCursorSprite_(MenuInputStruct *a0, u32 a1)
|
||||
void AddMenuCursorSprite_(MenuInputStruct *a0, u8 *a1)
|
||||
{
|
||||
SpriteOAM sp = {};
|
||||
SpriteOAM* ptr;
|
||||
|
||||
@@ -20,8 +20,9 @@
|
||||
#include "dungeon_visibility.h"
|
||||
#include "structs/map.h"
|
||||
#include "moves.h"
|
||||
#include "move_util.h"
|
||||
#include "number_util.h"
|
||||
//#include "pokemon.h" // NOTE: overriding some of the funcs below... when fixed, uncomment this
|
||||
#include "pokemon.h"
|
||||
#include "status.h"
|
||||
#include "status_checks_1.h"
|
||||
|
||||
@@ -31,7 +32,6 @@
|
||||
#include "weather.h"
|
||||
|
||||
extern void sub_807F43C(Entity *, Entity *);
|
||||
extern void MobileStatusTarget(Entity *, Entity *);
|
||||
extern void sub_807DC68(Entity *, Entity *);
|
||||
extern void sub_8078A58(Entity *, Entity *, s16, u32);
|
||||
extern u32 sub_803D73C(u32);
|
||||
@@ -59,16 +59,12 @@ extern void sub_807DA14(Entity *, Entity *, s32);
|
||||
extern s16 sub_803D970(u32);
|
||||
extern u8 sub_806AA0C(s32, u32);
|
||||
extern void sub_806BB6C(Entity *, s32);
|
||||
extern void sub_8075C58(Entity *, Entity *, s32, s32);
|
||||
extern void sub_807E254(Entity *, Entity *, u32);
|
||||
extern bool8 sub_805727C(Entity * pokemon, Entity * target, s32 chance);
|
||||
extern u32 sub_8055640(Entity *, Entity *, Move *, u32, u32);
|
||||
extern void sub_806A6E8(Entity *);
|
||||
extern void sub_807D3CC(Entity *, Entity *);
|
||||
extern u8 sub_8069D18(Position *);
|
||||
extern u8 sub_804AD34(Position *);
|
||||
extern u8 sub_8057308(Entity *, u32);
|
||||
|
||||
|
||||
// TODO include dungeon_ai.h when SqueezedStatusTarget is figured out
|
||||
extern void LowerDefenseStageTarget(Entity *, Entity *, s32, s32, u8, bool8);
|
||||
@@ -80,8 +76,9 @@ extern void LowerAttackStageTarget(Entity *, Entity *, s32, s32, u8, bool8);
|
||||
extern void PetrifiedStatusTarget(Entity *, Entity *);
|
||||
extern void WrapTarget(Entity *, Entity *);
|
||||
|
||||
// TODO having matching issues when this isn't s32..
|
||||
// TODO having matching issues when this isn't s32.. (move_effects_target.h)
|
||||
extern void SqueezedStatusTarget(Entity *, Entity *, s32, bool32);
|
||||
extern void sub_8075C58(Entity *, Entity *, s32, s32);
|
||||
|
||||
extern void sub_806F324(Entity *, s32, u32, u32);
|
||||
extern bool8 sub_805755C(Entity* pokemon,u16 moveID);
|
||||
|
||||
Reference in New Issue
Block a user