mirror of
https://github.com/pret/pmd-red.git
synced 2026-04-24 23:17:03 -05:00
more menu input work and constant-ify key press functions
This commit is contained in:
parent
4b666d8421
commit
6516301060
|
|
@ -406,164 +406,4 @@ _08012E72:
|
|||
_08012EA0: .4byte gUnknown_80D47B8
|
||||
thumb_func_end sub_8012E04
|
||||
|
||||
thumb_func_start sub_8012EA4
|
||||
sub_8012EA4:
|
||||
push {lr}
|
||||
adds r2, r0, 0
|
||||
adds r2, 0x4C
|
||||
strb r1, [r2]
|
||||
adds r2, 0x1
|
||||
movs r1, 0x1
|
||||
strb r1, [r2]
|
||||
bl sub_8012EBC
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8012EA4
|
||||
|
||||
thumb_func_start sub_8012EBC
|
||||
sub_8012EBC:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
sub sp, 0x164
|
||||
adds r5, r0, 0
|
||||
movs r0, 0x4D
|
||||
adds r0, r5
|
||||
mov r8, r0
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _08012F9E
|
||||
ldr r0, [r5, 0x10]
|
||||
bl sub_80073B8
|
||||
ldr r2, [r5, 0x10]
|
||||
lsls r0, r2, 3
|
||||
adds r0, r2
|
||||
lsls r0, 3
|
||||
ldr r1, _08012F54
|
||||
adds r0, r1
|
||||
ldr r0, [r0, 0xC]
|
||||
cmp r0, 0x6
|
||||
bne _08012F24
|
||||
lsls r0, r2, 1
|
||||
adds r0, r2
|
||||
lsls r0, 3
|
||||
mov r4, sp
|
||||
adds r4, r0
|
||||
adds r4, 0x4
|
||||
add r0, sp, 0x4
|
||||
bl sub_8006518
|
||||
ldr r0, [r5]
|
||||
bl sub_8008ED0
|
||||
adds r1, r0, 0
|
||||
ldr r0, [r4, 0x14]
|
||||
ldrb r0, [r0, 0x2]
|
||||
lsls r0, 3
|
||||
subs r0, r1
|
||||
lsrs r1, r0, 31
|
||||
adds r0, r1
|
||||
asrs r0, 1
|
||||
adds r0, 0x8
|
||||
ldr r2, [r5]
|
||||
ldr r3, [r5, 0x10]
|
||||
movs r1, 0
|
||||
str r1, [sp]
|
||||
bl xxx_format_and_draw
|
||||
_08012F24:
|
||||
ldr r7, [r5, 0x8]
|
||||
ldr r4, [r5, 0x4]
|
||||
ldr r6, [r5, 0xC]
|
||||
movs r1, 0
|
||||
mov r9, r1
|
||||
ldr r0, [r4]
|
||||
mov r10, r8
|
||||
cmp r0, 0
|
||||
beq _08012F92
|
||||
add r0, sp, 0x64
|
||||
mov r8, r0
|
||||
_08012F3A:
|
||||
ldr r3, [r4]
|
||||
ldrb r0, [r3]
|
||||
cmp r0, 0x2A
|
||||
bne _08012F44
|
||||
adds r3, 0x1
|
||||
_08012F44:
|
||||
cmp r6, 0
|
||||
beq _08012F58
|
||||
ldrh r0, [r6]
|
||||
lsls r0, 2
|
||||
adds r0, r7
|
||||
ldr r2, [r0]
|
||||
adds r6, 0x2
|
||||
b _08012F64
|
||||
.align 2, 0
|
||||
_08012F54: .4byte gUnknown_2027370
|
||||
_08012F58:
|
||||
ldr r0, [r4, 0x4]
|
||||
cmp r0, 0
|
||||
bge _08012F62
|
||||
ldr r2, [r7, 0x4]
|
||||
b _08012F64
|
||||
_08012F62:
|
||||
ldr r2, [r7]
|
||||
_08012F64:
|
||||
mov r0, r8
|
||||
ldr r1, _08012FBC
|
||||
bl sprintfStatic
|
||||
adds r0, r5, 0
|
||||
adds r0, 0x14
|
||||
mov r1, r9
|
||||
bl sub_8013800
|
||||
adds r1, r0, 0
|
||||
ldr r3, [r5, 0x10]
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
movs r0, 0x8
|
||||
mov r2, r8
|
||||
bl xxx_format_and_draw
|
||||
adds r4, 0x8
|
||||
movs r1, 0x1
|
||||
add r9, r1
|
||||
ldr r0, [r4]
|
||||
cmp r0, 0
|
||||
bne _08012F3A
|
||||
_08012F92:
|
||||
ldr r0, [r5, 0x10]
|
||||
bl sub_80073E0
|
||||
movs r0, 0
|
||||
mov r1, r10
|
||||
strb r0, [r1]
|
||||
_08012F9E:
|
||||
adds r0, r5, 0
|
||||
adds r0, 0x4E
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _08012FC8
|
||||
adds r0, r5, 0
|
||||
adds r0, 0x4C
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _08012FC0
|
||||
adds r0, r5, 0
|
||||
adds r0, 0x14
|
||||
bl AddMenuCursorSprite
|
||||
b _08012FC8
|
||||
.align 2, 0
|
||||
_08012FBC: .4byte gUnknown_80D4828
|
||||
_08012FC0:
|
||||
adds r0, r5, 0
|
||||
adds r0, 0x14
|
||||
bl sub_8013660
|
||||
_08012FC8:
|
||||
add sp, 0x164
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8012EBC
|
||||
|
||||
.align 2, 0 @ Don't pad with nop.
|
||||
|
|
|
|||
25
include/constants/input.h
Normal file
25
include/constants/input.h
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
#ifndef GUARD_CONSTANTS_INPUT_H
|
||||
#define GUARD_CONSTANTS_INPUT_H
|
||||
|
||||
#define INPUT_NONE 0
|
||||
#define INPUT_A_BUTTON 1
|
||||
#define INPUT_B_BUTTON 2
|
||||
#define INPUT_SELECT_BUTTON 3
|
||||
#define INPUT_START_BUTTON 4
|
||||
#define INPUT_L_BUTTON 5
|
||||
#define INPUT_R_BUTTON 6
|
||||
#define INPUT_DPAD_UP 7
|
||||
#define INPUT_DPAD_DOWN 8
|
||||
#define INPUT_DPAD_LEFT 9
|
||||
#define INPUT_DPAD_RIGHT 10
|
||||
|
||||
// When R button is pressed in combination with other keys
|
||||
#define INPUT_R_A_BUTTONS 11
|
||||
#define INPUT_R_DPAD_UP_BUTTONS 12
|
||||
#define INPUT_R_DPAD_DOWN_BUTTONS 13
|
||||
#define INPUT_R_DPAD_LEFT_BUTTONS 14
|
||||
#define INPUT_R_DPAD_RIGHT_BUTTONS 15
|
||||
|
||||
|
||||
#endif // GUARD_CONSTANTS_INPUT_H
|
||||
|
||||
|
|
@ -10,11 +10,11 @@ struct MenuItem
|
|||
struct MenuStruct
|
||||
{
|
||||
// size: 0x50
|
||||
u32 unk0;
|
||||
u8 *unk0;
|
||||
/* 0x4 */ struct MenuItem *menuItems;
|
||||
u32 unk8;
|
||||
u32 *unk8;
|
||||
u16 *unkC;
|
||||
s32 fill10;
|
||||
/* 0x10 */ s32 index;
|
||||
/* 0x14 */ u32 unk14;
|
||||
u8 fill18[0x2C - 0x18];
|
||||
/* 0x2C */ s16 menuIndex;
|
||||
|
|
@ -22,9 +22,10 @@ struct MenuStruct
|
|||
u8 fill30[0x38 - 0x30];
|
||||
u16 unk38;
|
||||
u8 fill3A[0x48 - 0x3A];
|
||||
s32 menuAction;
|
||||
/* 0x48 */ s32 menuAction;
|
||||
u8 unk4C;
|
||||
u8 unk4D;
|
||||
u8 unk4E;
|
||||
};
|
||||
|
||||
#endif // GUARD_MENU_H
|
||||
|
|
|
|||
|
|
@ -6,7 +6,9 @@ struct UnkTextStruct1 {
|
|||
u16 unk04;
|
||||
u8 fill06[2];
|
||||
u16 unk08;
|
||||
u8 fill04[0x3c];
|
||||
u16 fillA;
|
||||
u32 unkC;
|
||||
u8 fill04[0x36];
|
||||
u8 unk46;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#include "global.h"
|
||||
#include "constants/input.h"
|
||||
#include "input.h"
|
||||
#include "gba/io_reg.h"
|
||||
#include "memory.h"
|
||||
#include "text.h"
|
||||
|
||||
|
|
@ -94,10 +94,10 @@ u32 HandleAdventureLogInput(u8 param_1)
|
|||
else {
|
||||
switch(GetKeyPress(gAdventureLog))
|
||||
{
|
||||
case B_BUTTON:
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
case A_BUTTON:
|
||||
case INPUT_A_BUTTON:
|
||||
PlayMenuSoundEffect(0);
|
||||
return 3;
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -67,10 +67,10 @@ s32 sub_8015FEC(u8 *buffer, s32 size)
|
|||
{
|
||||
struct unkChar *iVar2;
|
||||
s32 currLength;
|
||||
s32 iVar4;
|
||||
s32 length;
|
||||
u8 *bufferPtr;
|
||||
|
||||
iVar4 = 0;
|
||||
length = 0;
|
||||
currLength = 0;
|
||||
|
||||
if(currLength < size && *buffer != '\0')
|
||||
|
|
@ -78,12 +78,12 @@ s32 sub_8015FEC(u8 *buffer, s32 size)
|
|||
bufferPtr = buffer; // Had to have another variable to match..
|
||||
do {
|
||||
iVar2 = GetCharacter(ReturnIntFromChar2(*bufferPtr));
|
||||
iVar4 += iVar2->unk6;
|
||||
length += iVar2->unk6;
|
||||
bufferPtr++;
|
||||
currLength++;
|
||||
} while (currLength < size && *bufferPtr != '\0');
|
||||
}
|
||||
return iVar4;
|
||||
return length;
|
||||
}
|
||||
|
||||
s32 sub_8016028(void)
|
||||
|
|
@ -205,7 +205,7 @@ void CreateConfirmNameMenu(void)
|
|||
|
||||
void sub_80161F8(void)
|
||||
{
|
||||
s32 iVar2;
|
||||
s32 length;
|
||||
s32 maxLength;
|
||||
|
||||
if (sub_80154F0() == 3) {
|
||||
|
|
@ -214,9 +214,9 @@ void sub_80161F8(void)
|
|||
sub_80160F4(3);
|
||||
}
|
||||
else{
|
||||
iVar2 = sub_8015FEC(gUnknown_203B200->pokeName, POKEMON_NAME_LENGTH);
|
||||
length = sub_8015FEC(gUnknown_203B200->pokeName, POKEMON_NAME_LENGTH);
|
||||
maxLength = sub_8016028(); // returns 60
|
||||
if (iVar2 > maxLength) {
|
||||
if (length > maxLength) {
|
||||
sub_80160F4(2);
|
||||
}
|
||||
else {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
#include "global.h"
|
||||
#include "friend_area.h"
|
||||
#include "constants/friend_area.h"
|
||||
#include "constants/input.h"
|
||||
#include "file_system.h"
|
||||
#include "item.h"
|
||||
#include "team_inventory.h"
|
||||
|
|
@ -394,10 +395,10 @@ u32 sub_801DA78(void)
|
|||
{
|
||||
switch(GetKeyPress(gUnknown_203B258))
|
||||
{
|
||||
case 2:
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
case 1:
|
||||
case INPUT_A_BUTTON:
|
||||
return 3;
|
||||
default:
|
||||
if(sub_80138B8(gUnknown_203B258, 1) != 0)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
#include "global.h"
|
||||
#include "constants/input.h"
|
||||
#include "code_800D090.h"
|
||||
#include "pokemon.h"
|
||||
#include "input.h"
|
||||
|
|
@ -244,10 +245,10 @@ u8 sub_80244E4(void)
|
|||
{
|
||||
switch(GetKeyPress(gUnknown_203B2AC))
|
||||
{
|
||||
case 2:
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
case 1:
|
||||
case INPUT_A_BUTTON:
|
||||
PlayMenuSoundEffect(0);
|
||||
return 3;
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
#include "constants/input.h"
|
||||
#include "global.h"
|
||||
#include "constants/iq_skill.h"
|
||||
#include "memory.h"
|
||||
|
|
@ -299,13 +300,13 @@ u8 sub_8023278(u8 param_1)
|
|||
}
|
||||
switch(GetKeyPress(&gUnknown_3001B5C->unk35C))
|
||||
{
|
||||
case 2:
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
case 1:
|
||||
case INPUT_A_BUTTON:
|
||||
PlayMenuSoundEffect(0);
|
||||
return 3;
|
||||
case 3:
|
||||
case INPUT_SELECT_BUTTON:
|
||||
PlayMenuSoundEffect(5);
|
||||
if (temp = gUnknown_3001B5C->unk4, iVar3 = 1, temp < 2) {
|
||||
iVar3 = temp + 1;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
#include "global.h"
|
||||
#include "constants/input.h"
|
||||
#include "file_system.h"
|
||||
#include "memory.h"
|
||||
#include "pokemon.h"
|
||||
|
|
@ -527,10 +528,10 @@ u32 sub_8019EDC(u8 r0)
|
|||
{
|
||||
switch(GetKeyPress(gUnknown_203B214))
|
||||
{
|
||||
case 2:
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
case 1:
|
||||
case INPUT_A_BUTTON:
|
||||
item = GetKecleonShopItem(sub_8019FB0());
|
||||
slot.id = item->id;
|
||||
slot.quantity = item->quantity;
|
||||
|
|
@ -543,7 +544,7 @@ u32 sub_8019EDC(u8 r0)
|
|||
PlayMenuSoundEffect(0);
|
||||
}
|
||||
return 3;
|
||||
case 4:
|
||||
case INPUT_START_BUTTON:
|
||||
PlayMenuSoundEffect(4);
|
||||
return 4;
|
||||
default:
|
||||
|
|
@ -737,13 +738,12 @@ u32 sub_801A2A8(u8 r0)
|
|||
{
|
||||
switch(GetKeyPress(gUnknown_203B21C))
|
||||
{
|
||||
case 2:
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
case 1:
|
||||
case INPUT_A_BUTTON:
|
||||
item = GetKecleonWareItem(sub_801A37C());
|
||||
|
||||
// NOTE: needs seperate vars to match
|
||||
slot.id = item->id;
|
||||
slot.quantity = item->quantity;
|
||||
|
||||
|
|
@ -756,7 +756,7 @@ u32 sub_801A2A8(u8 r0)
|
|||
PlayMenuSoundEffect(0);
|
||||
}
|
||||
return 3;
|
||||
case 4:
|
||||
case INPUT_START_BUTTON:
|
||||
PlayMenuSoundEffect(4);
|
||||
return 4;
|
||||
default:
|
||||
|
|
@ -958,10 +958,10 @@ u32 sub_801A6E8(u8 param_1)
|
|||
return 0;
|
||||
}
|
||||
switch(GetKeyPress(&gUnknown_203B224->unk54)) {
|
||||
case 2:
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
case 1:
|
||||
case INPUT_A_BUTTON:
|
||||
switch(gUnknown_203B224->unk0) {
|
||||
case 0:
|
||||
case 1:
|
||||
|
|
@ -989,11 +989,11 @@ u32 sub_801A6E8(u8 param_1)
|
|||
break;
|
||||
}
|
||||
return 3;
|
||||
case 4:
|
||||
case INPUT_START_BUTTON:
|
||||
PlayMenuSoundEffect(4);
|
||||
return 4;
|
||||
case 5:
|
||||
case 6:
|
||||
case INPUT_L_BUTTON:
|
||||
case INPUT_R_BUTTON:
|
||||
if (gUnknown_203B224->unk0 != 3) goto _0801A87C;
|
||||
index = sub_801A8AC();
|
||||
if ((gUnknown_203B224->unk4[index] != 0) || (sub_801ADA0(index) != 0)) {
|
||||
|
|
@ -1008,7 +1008,7 @@ u32 sub_801A6E8(u8 param_1)
|
|||
PlayMenuSoundEffect(2);
|
||||
goto _0801A87C;
|
||||
}
|
||||
case 3:
|
||||
case INPUT_SELECT_BUTTON:
|
||||
if (gUnknown_203B224->unk0 != 2) {
|
||||
PlayMenuSoundEffect(5);
|
||||
Kecleon_SortItems();
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
#include "global.h"
|
||||
#include "constants/colors.h"
|
||||
#include "constants/dungeon.h"
|
||||
#include "constants/input.h"
|
||||
#include "code_800D090.h"
|
||||
#include "dungeon.h"
|
||||
#include "input.h"
|
||||
|
|
@ -215,10 +216,10 @@ u32 sub_80303AC(u8 param_1)
|
|||
}
|
||||
switch(GetKeyPress(&gUnknown_203B31C->unk30))
|
||||
{
|
||||
case 2:
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
case 1:
|
||||
case INPUT_A_BUTTON:
|
||||
PlayMenuSoundEffect(0);
|
||||
return 3;
|
||||
default:
|
||||
|
|
|
|||
141
src/menu_input.c
141
src/menu_input.c
|
|
@ -1,42 +1,127 @@
|
|||
#include "global.h"
|
||||
#include "constants/input.h"
|
||||
#include "menu.h"
|
||||
#include "text.h"
|
||||
|
||||
extern struct UnkTextStruct1 gUnknown_2027370[4];
|
||||
extern u8 gUnknown_80D4828[];
|
||||
|
||||
extern void PlayMenuSoundEffect(u32);
|
||||
extern s32 GetKeyPress(u32 *);
|
||||
extern u32 sub_80137A8(u32 *);
|
||||
extern void sub_8012EBC(void *);
|
||||
void MoveMenuCursorUp(u32 *);
|
||||
void MoveMenuCursorDown(u32 *);
|
||||
extern void sub_80073B8(u32);
|
||||
extern s32 sub_8008ED0(u8 *);
|
||||
extern void xxx_format_and_draw(u32, u32, u8 *, u32, u32);
|
||||
void sprintfStatic(char *buffer, const char *text, ...);
|
||||
extern s32 sub_8013800(u32 *, s32);
|
||||
extern void sub_80073E0(u32);
|
||||
extern void sub_8013660(u32 *);
|
||||
void AddMenuCursorSprite(void *);
|
||||
|
||||
void sub_8012EBC(struct MenuStruct *param_1);
|
||||
|
||||
void sub_8012EA4(struct MenuStruct *param_1, u32 r1)
|
||||
{
|
||||
param_1->unk4C = r1;
|
||||
param_1->unk4D = 1;
|
||||
sub_8012EBC(param_1);
|
||||
}
|
||||
|
||||
void sub_8012EBC(struct MenuStruct *param_1)
|
||||
{
|
||||
s32 x;
|
||||
s32 y;
|
||||
u32 uVar1;
|
||||
const u8 *textPtr;
|
||||
struct MenuItem *menuItemsPtr;
|
||||
u16 *_puVar2;
|
||||
u32 *puVar3;
|
||||
s32 counter;
|
||||
s32 index;
|
||||
struct UnkTextStruct2 textStack[4];
|
||||
u8 buffer [256];
|
||||
struct UnkTextStruct1 *ptr_text;
|
||||
struct UnkTextStruct2 *ptr_text2;
|
||||
|
||||
if (param_1->unk4D != 0) {
|
||||
sub_80073B8(param_1->index);
|
||||
index = param_1->index;
|
||||
ptr_text = &gUnknown_2027370[index];
|
||||
if ((ptr_text->unkC) == 6) {
|
||||
ptr_text2 = &textStack[index];
|
||||
sub_8006518(textStack);
|
||||
x = sub_8008ED0(param_1->unk0);
|
||||
xxx_format_and_draw((((ptr_text2->unk14[2]) * 8 - x) /2) + 8,
|
||||
0,*(u8 **)param_1, param_1->index, 0);
|
||||
}
|
||||
puVar3 = param_1->unk8;
|
||||
menuItemsPtr = param_1->menuItems;
|
||||
_puVar2 = param_1->unkC;
|
||||
counter = 0;
|
||||
if (menuItemsPtr->text != NULL) {
|
||||
do {
|
||||
textPtr = menuItemsPtr->text;
|
||||
if (*textPtr == '*') {
|
||||
textPtr++;
|
||||
}
|
||||
if (_puVar2 != NULL) {
|
||||
uVar1 = puVar3[*_puVar2];
|
||||
_puVar2++;
|
||||
}
|
||||
else if (menuItemsPtr->menuAction < 0) {
|
||||
uVar1 = puVar3[1];
|
||||
}
|
||||
else {
|
||||
uVar1 = puVar3[0];
|
||||
}
|
||||
sprintfStatic(buffer,gUnknown_80D4828,uVar1,textPtr);
|
||||
y = sub_8013800(¶m_1->unk14,counter);
|
||||
xxx_format_and_draw(8,y,buffer,param_1->index,0);
|
||||
menuItemsPtr++;
|
||||
counter++;
|
||||
} while (menuItemsPtr->text != NULL);
|
||||
}
|
||||
sub_80073E0(param_1->index);
|
||||
param_1->unk4D = 0;
|
||||
}
|
||||
if (param_1->unk4E != 0) {
|
||||
if (param_1->unk4C != 0) {
|
||||
AddMenuCursorSprite(¶m_1->unk14);
|
||||
}
|
||||
else {
|
||||
sub_8013660(¶m_1->unk14);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
u8 sub_8012FD8(struct MenuStruct *param_1) {
|
||||
u32 sVar1;
|
||||
int index;
|
||||
u32 prevMenuIndex;
|
||||
s32 index;
|
||||
struct MenuItem *item;
|
||||
|
||||
sVar1 = param_1->menuIndex;
|
||||
prevMenuIndex = param_1->menuIndex;
|
||||
if (param_1->unk4C != 0) {
|
||||
switch(GetKeyPress(¶m_1->unk14))
|
||||
{
|
||||
// DPAD DOWN
|
||||
case 8:
|
||||
case INPUT_DPAD_DOWN:
|
||||
MoveMenuCursorDown(¶m_1->unk14);
|
||||
if (sVar1 != param_1->menuIndex) {
|
||||
if (prevMenuIndex != param_1->menuIndex) {
|
||||
PlayMenuSoundEffect(3);
|
||||
}
|
||||
break;
|
||||
// DPAD UP
|
||||
case 7:
|
||||
case INPUT_DPAD_UP:
|
||||
MoveMenuCursorUp(¶m_1->unk14);
|
||||
if (sVar1 != param_1->menuIndex) {
|
||||
if (prevMenuIndex != param_1->menuIndex) {
|
||||
PlayMenuSoundEffect(3);
|
||||
}
|
||||
break;
|
||||
// A BUTTON
|
||||
case 1:
|
||||
case INPUT_A_BUTTON:
|
||||
index = sub_80137A8(¶m_1->unk14);
|
||||
item = ¶m_1->menuItems[index];
|
||||
if ((-1 < item->menuAction) &&
|
||||
((param_1->unkC == 0x0 || (param_1->unkC[index] != 1)))) {
|
||||
((param_1->unkC == NULL || (param_1->unkC[index] != 1)))) {
|
||||
param_1->menuAction = item->menuAction;
|
||||
++param_1; --param_1;
|
||||
param_1->unk4C = 0;
|
||||
|
|
@ -47,14 +132,13 @@ u8 sub_8012FD8(struct MenuStruct *param_1) {
|
|||
PlayMenuSoundEffect(2);
|
||||
break;
|
||||
}
|
||||
if ((param_1->unkC != 0x0) && (param_1->unkC[index] == 2)) {
|
||||
if ((param_1->unkC != NULL) && (param_1->unkC[index] == 2)) {
|
||||
PlayMenuSoundEffect(2);
|
||||
}
|
||||
else
|
||||
PlayMenuSoundEffect(0);
|
||||
break;
|
||||
// B BUTTON
|
||||
case 2:
|
||||
case INPUT_B_BUTTON:
|
||||
if (-1 < param_1->menuItems[param_1->unk2E].menuAction) {
|
||||
param_1->menuAction = param_1->menuItems[param_1->unk2E].menuAction;
|
||||
param_1->unk4C = 0;
|
||||
|
|
@ -68,35 +152,26 @@ u8 sub_8012FD8(struct MenuStruct *param_1) {
|
|||
}
|
||||
|
||||
u8 sub_80130A8(struct MenuStruct *param_1) {
|
||||
int keyPress;
|
||||
int index;
|
||||
int menuAction;
|
||||
u8 *ptr;
|
||||
u32 unused; // needed for matching
|
||||
s32 index;
|
||||
s32 menuAction;
|
||||
struct MenuItem *menuItem;
|
||||
|
||||
ptr = ¶m_1->unk4C;
|
||||
if (*ptr != 0) {
|
||||
keyPress = GetKeyPress(¶m_1->unk14);
|
||||
if (param_1->unk4C != 0) {
|
||||
|
||||
switch(keyPress)
|
||||
switch(GetKeyPress(¶m_1->unk14))
|
||||
{
|
||||
// A_BUTTON
|
||||
case 1:
|
||||
case INPUT_A_BUTTON:
|
||||
index = sub_80137A8(¶m_1->unk14);
|
||||
menuItem = ¶m_1->menuItems[index];
|
||||
param_1->menuAction = menuItem->menuAction;
|
||||
unused = 0;
|
||||
*ptr = 0;
|
||||
param_1->unk4C = 0;
|
||||
param_1->unk38 = 0;
|
||||
PlayMenuSoundEffect(0);
|
||||
break;
|
||||
// B_BUTTON
|
||||
case 2:
|
||||
case INPUT_B_BUTTON:
|
||||
if(menuAction = param_1->menuItems[param_1->unk2E].menuAction, -1 < menuAction) {
|
||||
param_1->menuAction = menuAction;
|
||||
unused = 0;
|
||||
*ptr = 0;
|
||||
param_1->unk4C = 0;
|
||||
PlayMenuSoundEffect(0);
|
||||
}
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
#include "constants/input.h"
|
||||
#include "global.h"
|
||||
#include "input.h"
|
||||
|
||||
|
|
@ -34,19 +35,19 @@ u32 GetKeyPress(struct UnkInputStruct *r0)
|
|||
{
|
||||
if(r0->a_button != 0)
|
||||
{
|
||||
return 1;
|
||||
return INPUT_A_BUTTON;
|
||||
}
|
||||
if(r0->b_button != 0)
|
||||
{
|
||||
return 2;
|
||||
return INPUT_B_BUTTON;
|
||||
}
|
||||
if(r0->dpad_left != 0)
|
||||
{
|
||||
return 9;
|
||||
return INPUT_DPAD_LEFT;
|
||||
}
|
||||
if(r0->dpad_right != 0)
|
||||
{
|
||||
return 10;
|
||||
return INPUT_DPAD_RIGHT;
|
||||
}
|
||||
}
|
||||
return sub_8012AE8();
|
||||
|
|
@ -56,54 +57,54 @@ u32 sub_8012AE8(void)
|
|||
{
|
||||
if ((gRealInputs.held & R_BUTTON) != 0) {
|
||||
if ((gRealInputs.pressed & A_BUTTON) != 0) {
|
||||
return 11;
|
||||
return INPUT_R_A_BUTTONS;
|
||||
}
|
||||
if ((gRealInputs.repeated & DPAD_UP) != 0) {
|
||||
return 12;
|
||||
return INPUT_R_DPAD_UP_BUTTONS;
|
||||
}
|
||||
if ((gRealInputs.repeated & DPAD_DOWN) != 0) {
|
||||
return 13;
|
||||
return INPUT_R_DPAD_DOWN_BUTTONS;
|
||||
}
|
||||
if ((gRealInputs.repeated & DPAD_LEFT) != 0) {
|
||||
return 14;
|
||||
return INPUT_R_DPAD_LEFT_BUTTONS;
|
||||
}
|
||||
if ((gRealInputs.repeated & DPAD_RIGHT) != 0) {
|
||||
return 15;
|
||||
return INPUT_R_DPAD_RIGHT_BUTTONS;
|
||||
}
|
||||
if ((gRealInputs.repeated & R_BUTTON) != 0) {
|
||||
return 6;
|
||||
return INPUT_R_BUTTON;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((gRealInputs.pressed & A_BUTTON) != 0) {
|
||||
return 1;
|
||||
return INPUT_A_BUTTON;
|
||||
}
|
||||
if ((gRealInputs.pressed & B_BUTTON) != 0) {
|
||||
return 2;
|
||||
return INPUT_B_BUTTON;
|
||||
}
|
||||
if ((gRealInputs.pressed & SELECT_BUTTON) != 0) {
|
||||
return 3;
|
||||
return INPUT_SELECT_BUTTON;
|
||||
}
|
||||
if ((gRealInputs.pressed & START_BUTTON) != 0) {
|
||||
return 4;
|
||||
return INPUT_START_BUTTON;
|
||||
}
|
||||
if ((gRealInputs.repeated & DPAD_UP) != 0) {
|
||||
return 7;
|
||||
return INPUT_DPAD_UP;
|
||||
}
|
||||
if ((gRealInputs.repeated & DPAD_DOWN) != 0) {
|
||||
return 8;
|
||||
return INPUT_DPAD_DOWN;
|
||||
}
|
||||
if ((gRealInputs.repeated & DPAD_LEFT) != 0) {
|
||||
return 9;
|
||||
return INPUT_DPAD_LEFT;
|
||||
}
|
||||
if ((gRealInputs.repeated & DPAD_RIGHT) != 0) {
|
||||
return 10;
|
||||
return INPUT_DPAD_RIGHT;
|
||||
}
|
||||
if ((gRealInputs.repeated & L_BUTTON) != 0) {
|
||||
return 5;
|
||||
return INPUT_L_BUTTON;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
return INPUT_NONE;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
#include "global.h"
|
||||
#include "personality_test.h"
|
||||
#include "constants/emotions.h"
|
||||
#include "constants/input.h"
|
||||
#include "constants/type.h"
|
||||
#include "random.h"
|
||||
#include "file_system.h"
|
||||
#include "pokemon.h"
|
||||
|
|
@ -801,7 +803,7 @@ u16 HandlePartnerSelectionInput(void)
|
|||
|
||||
partnerID = gUnknown_203B404->currPartnerSelection;
|
||||
gUnknown_203B404->unk16 = 0;
|
||||
if (GetKeyPress(&gUnknown_203B404->unk18) == A_BUTTON) {
|
||||
if (GetKeyPress(&gUnknown_203B404->unk18) == INPUT_A_BUTTON) {
|
||||
PlayMenuSoundEffect(0);
|
||||
return gUnknown_203B404->PartnerArray[gUnknown_203B404->currPartnerSelection];
|
||||
}
|
||||
|
|
@ -1034,8 +1036,8 @@ s32 GetValidPartners(void)
|
|||
CurrentPartnerID = gPartners[counter];
|
||||
currentPartnerTypes[0] = GetPokemonType(CurrentPartnerID, 0);
|
||||
currentPartnerTypes[1] = GetPokemonType(CurrentPartnerID, 1);
|
||||
if (((currentPartnerTypes[0] == '\0') || ((currentPartnerTypes[0] != PlayerType[0] && (currentPartnerTypes[0] != PlayerType[1]))))
|
||||
&& ((currentPartnerTypes[1] == '\0' || ((currentPartnerTypes[1] != PlayerType[0] && (currentPartnerTypes[1] != PlayerType[1])))
|
||||
if (((currentPartnerTypes[0] == TYPE_NONE) || ((currentPartnerTypes[0] != PlayerType[0] && (currentPartnerTypes[0] != PlayerType[1]))))
|
||||
&& ((currentPartnerTypes[1] == TYPE_NONE || ((currentPartnerTypes[1] != PlayerType[0] && (currentPartnerTypes[1] != PlayerType[1])))
|
||||
))) {
|
||||
gUnknown_203B404->PartnerArray[ValidPartnerCounter] = CurrentPartnerID;
|
||||
ValidPartnerCounter++;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
#include "global.h"
|
||||
#include "constants/input.h"
|
||||
#include "constants/mailbox.h"
|
||||
#include "code_800D090.h"
|
||||
#include "input.h"
|
||||
|
|
@ -196,13 +197,13 @@ u32 sub_802C1E4(u8 param_1)
|
|||
else {
|
||||
switch(GetKeyPress(&gUnknown_203B2E0->unk8))
|
||||
{
|
||||
case 2:
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
case 1:
|
||||
case INPUT_A_BUTTON:
|
||||
PlayMenuSoundEffect(0);
|
||||
return 3;
|
||||
case 4:
|
||||
case INPUT_START_BUTTON:
|
||||
PlayMenuSoundEffect(4);
|
||||
return 4;
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
#include "global.h"
|
||||
#include "constants/input.h"
|
||||
#include "memory.h"
|
||||
#include "text.h"
|
||||
#include "input.h"
|
||||
|
|
@ -798,10 +799,10 @@ u32 sub_802F8A0(u8 r0)
|
|||
{
|
||||
switch(GetKeyPress(&gUnknown_203B314->unkBC))
|
||||
{
|
||||
case 2:
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
case 1:
|
||||
case INPUT_A_BUTTON:
|
||||
PlayMenuSoundEffect(0);
|
||||
return 3;
|
||||
default:
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user