mirror of
https://github.com/pret/pmd-red.git
synced 2026-04-26 00:15:48 -05:00
another menu decomped
This commit is contained in:
parent
2116aef8c2
commit
d9a411956b
|
|
@ -1,8 +0,0 @@
|
|||
#include "asm/constants/gba_constants.inc"
|
||||
#include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
.align 2,0
|
||||
|
|
@ -1,78 +0,0 @@
|
|||
#include "asm/constants/gba_constants.inc"
|
||||
#include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_803AEB0
|
||||
sub_803AEB0:
|
||||
push {r4-r6,lr}
|
||||
ldr r4, _0803AEFC
|
||||
ldr r0, [r4]
|
||||
adds r0, 0xD0
|
||||
movs r1, 0
|
||||
movs r2, 0x10
|
||||
bl MemoryFill16
|
||||
ldr r4, [r4]
|
||||
movs r3, 0
|
||||
adds r1, r4, 0
|
||||
adds r1, 0x90
|
||||
ldr r0, _0803AF00
|
||||
str r0, [r1]
|
||||
adds r5, r4, 0
|
||||
adds r5, 0x94
|
||||
movs r0, 0x4
|
||||
str r0, [r5]
|
||||
movs r2, 0x1
|
||||
adds r1, 0x8
|
||||
ldr r0, _0803AF04
|
||||
str r0, [r1]
|
||||
adds r1, 0x4
|
||||
movs r0, 0x5
|
||||
str r0, [r1]
|
||||
movs r6, 0x2
|
||||
adds r0, r4, 0
|
||||
adds r0, 0xA0
|
||||
str r3, [r0]
|
||||
adds r0, 0x4
|
||||
str r2, [r0]
|
||||
adds r0, 0x2C
|
||||
ldrh r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _0803AF08
|
||||
ldr r0, [r5]
|
||||
str r0, [r4, 0xC]
|
||||
b _0803AF2C
|
||||
.align 2, 0
|
||||
_0803AEFC: .4byte gUnknown_203B3F8
|
||||
_0803AF00: .4byte gDebug_LevelText
|
||||
_0803AF04: .4byte gUnknown_80E7F2C
|
||||
_0803AF08:
|
||||
adds r3, 0x1
|
||||
cmp r3, r6
|
||||
bge _0803AF2C
|
||||
ldr r0, _0803AF34
|
||||
ldr r2, [r0]
|
||||
lsls r1, r3, 1
|
||||
adds r0, r2, 0
|
||||
adds r0, 0xD0
|
||||
adds r0, r1
|
||||
ldrh r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _0803AF08
|
||||
lsls r0, r3, 3
|
||||
adds r1, r2, 0
|
||||
adds r1, 0x94
|
||||
adds r1, r0
|
||||
ldr r0, [r1]
|
||||
str r0, [r2, 0xC]
|
||||
_0803AF2C:
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0803AF34: .4byte gUnknown_203B3F8
|
||||
thumb_func_end sub_803AEB0
|
||||
|
||||
.align 2,0
|
||||
|
|
@ -420,56 +420,4 @@ _0802778E:
|
|||
bx r0
|
||||
thumb_func_end sub_80276A8
|
||||
|
||||
thumb_func_start sub_8027794
|
||||
sub_8027794:
|
||||
push {r4,lr}
|
||||
ldr r4, _080277F0
|
||||
ldr r0, [r4]
|
||||
movs r1, 0xB6
|
||||
lsls r1, 1
|
||||
adds r0, r1
|
||||
movs r1, 0
|
||||
movs r2, 0x14
|
||||
bl MemoryFill16
|
||||
ldr r4, [r4]
|
||||
movs r3, 0
|
||||
movs r0, 0x8E
|
||||
lsls r0, 1
|
||||
adds r1, r4, r0
|
||||
ldr r0, _080277F4
|
||||
ldr r0, [r0]
|
||||
str r0, [r1]
|
||||
movs r0, 0x90
|
||||
lsls r0, 1
|
||||
adds r1, r4, r0
|
||||
movs r0, 0x2
|
||||
str r0, [r1]
|
||||
movs r2, 0x1
|
||||
movs r0, 0x92
|
||||
lsls r0, 1
|
||||
adds r1, r4, r0
|
||||
ldr r0, _080277F8
|
||||
ldr r0, [r0]
|
||||
str r0, [r1]
|
||||
movs r0, 0x94
|
||||
lsls r0, 1
|
||||
adds r1, r4, r0
|
||||
movs r0, 0x3
|
||||
str r0, [r1]
|
||||
movs r1, 0x96
|
||||
lsls r1, 1
|
||||
adds r0, r4, r1
|
||||
str r3, [r0]
|
||||
adds r1, 0x4
|
||||
adds r0, r4, r1
|
||||
str r2, [r0]
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080277F0: .4byte gUnknown_203B2BC
|
||||
_080277F4: .4byte gUnknown_80D4920
|
||||
_080277F8: .4byte gUnknown_80D4928
|
||||
thumb_func_end sub_8027794
|
||||
|
||||
.align 2,0
|
||||
|
|
|
|||
|
|
@ -27,11 +27,7 @@ struct unkStruct_203B2BC
|
|||
u8 fill101[0x11C - 0x104];
|
||||
struct MenuItem menuItems[4];
|
||||
u8 fill120[0x16C - 0x13C];
|
||||
|
||||
// Structure of some sort
|
||||
u16 unk16C;
|
||||
u8 fill170[0x180 - 0x170];
|
||||
|
||||
u16 unk16C[10];
|
||||
struct UnkTextStruct2 unk180[4];
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -181,8 +181,6 @@ SECTIONS {
|
|||
src/debug_menu.o(.text);
|
||||
src/debug_menu_mid.o(.text);
|
||||
asm/debug_menu_1.o(.text);
|
||||
src/debug_menu_2.o(.text);
|
||||
asm/debug_menu_2.o(.text);
|
||||
src/debug_menu_1.o(.text);
|
||||
asm/code_803B050.o(.text);
|
||||
src/code_803B050.o(.text);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,12 @@
|
|||
#include "global.h"
|
||||
#include "pokemon.h"
|
||||
#include "debug_menu.h"
|
||||
#include "memory.h"
|
||||
#include "text.h"
|
||||
#include "input.h"
|
||||
#include "menu.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
|
||||
extern struct unkStruct_203B3F8 *gUnknown_203B3F8;
|
||||
extern u32 sub_8013BBC(u32 *);
|
||||
|
|
@ -13,6 +19,190 @@ extern u32 sub_8023A94(u32);
|
|||
extern s16 sub_8023B44(void);
|
||||
extern void sub_8023C60(void);
|
||||
|
||||
extern struct UnkTextStruct2 gUnknown_80E7ED4;
|
||||
extern struct UnkTextStruct2 gUnknown_80E7EEC;
|
||||
extern struct UnkTextStruct2 gUnknown_80E7F04;
|
||||
extern u8 gDebug_NumberText2[];
|
||||
extern u8 gDebug_LevelText[];
|
||||
extern u8 gUnknown_80E7F2C[];
|
||||
|
||||
extern void sub_8008C54(u32);
|
||||
extern void sub_80073B8(u32);
|
||||
extern void sub_8013C68(u32 *);
|
||||
extern void sub_80073E0(u32);
|
||||
extern void sub_8023DA4(void);
|
||||
extern void xxx_call_draw_string(u32, u32, u8 *, u32, u32);
|
||||
|
||||
extern void sub_803ACE8();
|
||||
extern void sub_803AD88();
|
||||
extern void sub_803AF38();
|
||||
extern void sub_803AF88();
|
||||
extern void sub_803AFE8();
|
||||
extern void sub_803B034();
|
||||
extern void sub_8023868(u32, u32, u32, u32);
|
||||
extern void sub_8023B7C(u32);
|
||||
extern void sub_8013AA0(u32 *);
|
||||
extern void sub_801602C(u32, u8 *);
|
||||
|
||||
extern void sub_803AEB0();
|
||||
|
||||
|
||||
u32 sub_803AC24(void)
|
||||
{
|
||||
gUnknown_203B3F8 = MemoryAlloc(sizeof(struct unkStruct_203B3F8), 8);
|
||||
sub_803ACD0(0);
|
||||
return 1;
|
||||
}
|
||||
|
||||
u32 sub_803AC48(void)
|
||||
{
|
||||
switch(gUnknown_203B3F8->state)
|
||||
{
|
||||
case 0:
|
||||
sub_803ACD0(1);
|
||||
break;
|
||||
case 1:
|
||||
case 2:
|
||||
sub_803AF38();
|
||||
break;
|
||||
case 3:
|
||||
sub_803AF88();
|
||||
break;
|
||||
case 5:
|
||||
sub_803AFE8();
|
||||
break;
|
||||
case 6:
|
||||
sub_803B034();
|
||||
break;
|
||||
case 4:
|
||||
case 7:
|
||||
default:
|
||||
return 3;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void sub_803ACB4(void)
|
||||
{
|
||||
if(gUnknown_203B3F8 != NULL)
|
||||
{
|
||||
MemoryFree(gUnknown_203B3F8);
|
||||
gUnknown_203B3F8 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_803ACD0(u32 newState)
|
||||
{
|
||||
gUnknown_203B3F8->state = newState;
|
||||
sub_803ACE8();
|
||||
sub_803AD88();
|
||||
}
|
||||
|
||||
void sub_803ACE8(void)
|
||||
{
|
||||
s32 index;
|
||||
sub_8006518(gUnknown_203B3F8->unkE0);
|
||||
switch(gUnknown_203B3F8->state)
|
||||
{
|
||||
case 3:
|
||||
sub_803AEB0();
|
||||
gUnknown_203B3F8->unkE0[2] = gUnknown_80E7EEC;
|
||||
sub_8012CAC(&gUnknown_203B3F8->unkE0[2], gUnknown_203B3F8->unk90);
|
||||
break;
|
||||
case 5:
|
||||
gUnknown_203B3F8->unkE0[3] = gUnknown_80E7F04;
|
||||
break;
|
||||
default:
|
||||
for(index = 0; index < 4; index++)
|
||||
{
|
||||
gUnknown_203B3F8->unkE0[index] = gUnknown_80E7ED4;
|
||||
}
|
||||
break;
|
||||
}
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B3F8->unkE0, 1, 1);
|
||||
}
|
||||
|
||||
void sub_803AD88(void)
|
||||
{
|
||||
switch(gUnknown_203B3F8->state)
|
||||
{
|
||||
case 1:
|
||||
sub_8023868(1, 0, 0, 10);
|
||||
break;
|
||||
case 2:
|
||||
sub_8023B7C(1);
|
||||
break;
|
||||
case 3:
|
||||
sub_8023DA4();
|
||||
sub_8012D60(&gUnknown_203B3F8->unk10, gUnknown_203B3F8->unk90, 0, gUnknown_203B3F8->unkD0, gUnknown_203B3F8->menuAction, 2);
|
||||
break;
|
||||
case 5:
|
||||
gUnknown_203B3F8->unk70 = 3;
|
||||
gUnknown_203B3F8->unk68 = 1;
|
||||
gUnknown_203B3F8->unk6C = 0x64;
|
||||
gUnknown_203B3F8->unk64 = gUnknown_203B3F8->pokemon->unkHasNextStage;
|
||||
gUnknown_203B3F8->unk74 = 3;
|
||||
gUnknown_203B3F8->unk78 = &gUnknown_203B3F8->unkE0[3];
|
||||
gUnknown_203B3F8->unk7C = 0x2C;
|
||||
gUnknown_203B3F8->unk80 = 0x12;
|
||||
sub_8013AA0(&gUnknown_203B3F8->unk60);
|
||||
sub_803AE58();
|
||||
break;
|
||||
case 6:
|
||||
sub_801602C(2, gUnknown_203B3F8->pokemon->name);
|
||||
case 0:
|
||||
case 4:
|
||||
case 7:
|
||||
default:
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void sub_803AE58(void)
|
||||
{
|
||||
sub_8008C54(gUnknown_203B3F8->unk74);
|
||||
sub_80073B8(gUnknown_203B3F8->unk74);
|
||||
xxx_call_draw_string(4, 0, gDebug_NumberText2, gUnknown_203B3F8->unk74, 0);
|
||||
sub_8013C68(&gUnknown_203B3F8->unk60);
|
||||
sub_80073E0(gUnknown_203B3F8->unk74);
|
||||
sub_8023DA4();
|
||||
sub_8012EA4(&gUnknown_203B3F8->unk10, 0);
|
||||
}
|
||||
|
||||
void sub_803AEB0(void)
|
||||
{
|
||||
|
||||
s32 index;
|
||||
s32 loopMax;
|
||||
u8 *nullText;
|
||||
s32 menuAction;
|
||||
struct unkStruct_203B3F8 *preload;
|
||||
|
||||
MemoryFill16(gUnknown_203B3F8->unkD0,0,sizeof(gUnknown_203B3F8->unkD0));
|
||||
|
||||
preload = gUnknown_203B3F8;
|
||||
nullText = NULL;
|
||||
preload->unk90[0].text = gDebug_LevelText;
|
||||
preload->unk90[0].menuAction = 4;
|
||||
menuAction = 1;
|
||||
preload->unk90[1].text = gUnknown_80E7F2C;
|
||||
preload->unk90[1].menuAction = 5;
|
||||
loopMax = 2;
|
||||
preload->unk90[2].text = nullText;
|
||||
preload->unk90[2].menuAction = menuAction;
|
||||
|
||||
for(index = 0; index < loopMax; index++)
|
||||
{
|
||||
if (gUnknown_203B3F8->unkD0[index] == 0)
|
||||
{
|
||||
gUnknown_203B3F8->menuAction = gUnknown_203B3F8->unk90[index].menuAction;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_803AF38(void)
|
||||
{
|
||||
switch(sub_8023A94(1))
|
||||
|
|
|
|||
|
|
@ -1,161 +0,0 @@
|
|||
#include "global.h"
|
||||
#include "memory.h"
|
||||
#include "pokemon.h"
|
||||
#include "text.h"
|
||||
#include "input.h"
|
||||
#include "menu.h"
|
||||
#include "debug_menu.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
extern struct unkStruct_203B3F8 *gUnknown_203B3F8;
|
||||
extern struct UnkTextStruct2 gUnknown_80E7ED4;
|
||||
extern struct UnkTextStruct2 gUnknown_80E7EEC;
|
||||
extern struct UnkTextStruct2 gUnknown_80E7F04;
|
||||
extern u8 gDebug_NumberText2[];
|
||||
|
||||
extern void sub_8008C54(u32);
|
||||
extern void sub_80073B8(u32);
|
||||
extern void sub_8013C68(u32 *);
|
||||
extern void sub_80073E0(u32);
|
||||
extern void sub_8023DA4(void);
|
||||
extern void xxx_call_draw_string(u32, u32, u8 *, u32, u32);
|
||||
|
||||
void sub_803ACD0(u32);
|
||||
extern void sub_803ACE8();
|
||||
extern void sub_803AD88();
|
||||
extern void sub_803AF38();
|
||||
extern void sub_803AF88();
|
||||
extern void sub_803AFE8();
|
||||
extern void sub_803B034();
|
||||
extern void sub_8023868(u32, u32, u32, u32);
|
||||
extern void sub_8023B7C(u32);
|
||||
extern void sub_8023DA4();
|
||||
extern void sub_8013AA0(u32 *);
|
||||
extern void sub_803AE58();
|
||||
extern void sub_801602C(u32, u8 *);
|
||||
|
||||
extern void sub_803AEB0();
|
||||
|
||||
u32 sub_803AC24(void)
|
||||
{
|
||||
gUnknown_203B3F8 = MemoryAlloc(sizeof(struct unkStruct_203B3F8), 8);
|
||||
sub_803ACD0(0);
|
||||
return 1;
|
||||
}
|
||||
|
||||
u32 sub_803AC48(void)
|
||||
{
|
||||
switch(gUnknown_203B3F8->state)
|
||||
{
|
||||
case 0:
|
||||
sub_803ACD0(1);
|
||||
break;
|
||||
case 1:
|
||||
case 2:
|
||||
sub_803AF38();
|
||||
break;
|
||||
case 3:
|
||||
sub_803AF88();
|
||||
break;
|
||||
case 5:
|
||||
sub_803AFE8();
|
||||
break;
|
||||
case 6:
|
||||
sub_803B034();
|
||||
break;
|
||||
case 4:
|
||||
case 7:
|
||||
default:
|
||||
return 3;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void sub_803ACB4(void)
|
||||
{
|
||||
if(gUnknown_203B3F8 != NULL)
|
||||
{
|
||||
MemoryFree(gUnknown_203B3F8);
|
||||
gUnknown_203B3F8 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_803ACD0(u32 newState)
|
||||
{
|
||||
gUnknown_203B3F8->state = newState;
|
||||
sub_803ACE8();
|
||||
sub_803AD88();
|
||||
}
|
||||
|
||||
void sub_803ACE8(void)
|
||||
{
|
||||
s32 index;
|
||||
sub_8006518(gUnknown_203B3F8->unkE0);
|
||||
switch(gUnknown_203B3F8->state)
|
||||
{
|
||||
case 3:
|
||||
sub_803AEB0();
|
||||
gUnknown_203B3F8->unkE0[2] = gUnknown_80E7EEC;
|
||||
sub_8012CAC(&gUnknown_203B3F8->unkE0[2], gUnknown_203B3F8->unk90);
|
||||
break;
|
||||
case 5:
|
||||
gUnknown_203B3F8->unkE0[3] = gUnknown_80E7F04;
|
||||
break;
|
||||
default:
|
||||
for(index = 0; index < 4; index++)
|
||||
{
|
||||
gUnknown_203B3F8->unkE0[index] = gUnknown_80E7ED4;
|
||||
}
|
||||
break;
|
||||
}
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B3F8->unkE0, 1, 1);
|
||||
}
|
||||
|
||||
void sub_803AD88(void)
|
||||
{
|
||||
switch(gUnknown_203B3F8->state)
|
||||
{
|
||||
case 1:
|
||||
sub_8023868(1, 0, 0, 10);
|
||||
break;
|
||||
case 2:
|
||||
sub_8023B7C(1);
|
||||
break;
|
||||
case 3:
|
||||
sub_8023DA4();
|
||||
sub_8012D60(&gUnknown_203B3F8->unk10, gUnknown_203B3F8->unk90, 0, gUnknown_203B3F8->unkD0, gUnknown_203B3F8->menuAction, 2);
|
||||
break;
|
||||
case 5:
|
||||
gUnknown_203B3F8->unk70 = 3;
|
||||
gUnknown_203B3F8->unk68 = 1;
|
||||
gUnknown_203B3F8->unk6C = 0x64;
|
||||
gUnknown_203B3F8->unk64 = gUnknown_203B3F8->pokemon->unkHasNextStage;
|
||||
gUnknown_203B3F8->unk74 = 3;
|
||||
gUnknown_203B3F8->unk78 = &gUnknown_203B3F8->unkE0[3];
|
||||
gUnknown_203B3F8->unk7C = 0x2C;
|
||||
gUnknown_203B3F8->unk80 = 0x12;
|
||||
sub_8013AA0(&gUnknown_203B3F8->unk60);
|
||||
sub_803AE58();
|
||||
break;
|
||||
case 6:
|
||||
sub_801602C(2, gUnknown_203B3F8->pokemon->name);
|
||||
case 0:
|
||||
case 4:
|
||||
case 7:
|
||||
default:
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void sub_803AE58(void)
|
||||
{
|
||||
sub_8008C54(gUnknown_203B3F8->unk74);
|
||||
sub_80073B8(gUnknown_203B3F8->unk74);
|
||||
xxx_call_draw_string(4, 0, gDebug_NumberText2, gUnknown_203B3F8->unk74, 0);
|
||||
sub_8013C68(&gUnknown_203B3F8->unk60);
|
||||
sub_80073E0(gUnknown_203B3F8->unk74);
|
||||
sub_8023DA4();
|
||||
sub_8012EA4(&gUnknown_203B3F8->unk10, 0);
|
||||
}
|
||||
|
|
@ -247,7 +247,7 @@ void sub_8027274(void)
|
|||
case 3:
|
||||
sub_8027D40(3,&gUnknown_203B2BC->item2);
|
||||
sub_8023DA4();
|
||||
sub_8012D60(&gUnknown_203B2BC->unk7C,gUnknown_203B2BC->menuItems,0,&gUnknown_203B2BC->unk16C,gUnknown_203B2BC->menuAction1,2);
|
||||
sub_8012D60(&gUnknown_203B2BC->unk7C,gUnknown_203B2BC->menuItems,0,gUnknown_203B2BC->unk16C,gUnknown_203B2BC->menuAction1,2);
|
||||
break;
|
||||
case 4:
|
||||
sub_8024458(gUnknown_203B2BC->targetPoke,2);
|
||||
|
|
@ -263,7 +263,7 @@ void sub_8027274(void)
|
|||
break;
|
||||
case 0xc:
|
||||
sub_801A9E0();
|
||||
sub_8012D60(&gUnknown_203B2BC->unk7C,gUnknown_203B2BC->menuItems,0,&gUnknown_203B2BC->unk16C,gUnknown_203B2BC->menuAction2,2);
|
||||
sub_8012D60(&gUnknown_203B2BC->unk7C,gUnknown_203B2BC->menuItems,0,gUnknown_203B2BC->unk16C,gUnknown_203B2BC->menuAction2,2);
|
||||
break;
|
||||
case 0xd:
|
||||
HeldItemToSlot(&slot, &gUnknown_203B2BC->itemToGive);
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
#include "global.h"
|
||||
#include "memory.h"
|
||||
#include "text.h"
|
||||
#include "input.h"
|
||||
#include "menu.h"
|
||||
|
|
@ -68,6 +69,27 @@ ALIGNED(4) const u8 gUnknown_80DD958[] = _("Item: {COLOR_1 GREEN}{ARG_MOVE_ITEM_
|
|||
static const u8 filler[] = "pksdir0";
|
||||
|
||||
|
||||
extern u8 *gUnknown_80D4920[];
|
||||
extern u8 *gUnknown_80D4928[];
|
||||
|
||||
void sub_8027794(void)
|
||||
{
|
||||
struct unkStruct_203B2BC *puVar1;
|
||||
u8 *nullText;
|
||||
s32 menuAction;
|
||||
|
||||
MemoryFill16(gUnknown_203B2BC->unk16C,0,sizeof(gUnknown_203B2BC->unk16C));
|
||||
puVar1 = gUnknown_203B2BC;
|
||||
nullText = NULL;
|
||||
puVar1->menuItems[0].text = *gUnknown_80D4920;
|
||||
gUnknown_203B2BC->menuItems[0].menuAction = 0x2;
|
||||
menuAction = 1;
|
||||
gUnknown_203B2BC->menuItems[1].text = *gUnknown_80D4928;
|
||||
gUnknown_203B2BC->menuItems[1].menuAction = 3;
|
||||
gUnknown_203B2BC->menuItems[2].text = nullText;
|
||||
gUnknown_203B2BC->menuItems[2].menuAction = menuAction;
|
||||
}
|
||||
|
||||
void sub_80277FC(void)
|
||||
{
|
||||
struct PokemonStruct *pokeStruct;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user