mirror of
https://github.com/pret/pmd-red.git
synced 2026-05-06 21:17:23 -05:00
238 lines
3.8 KiB
C
238 lines
3.8 KiB
C
#include "global.h"
|
|
#include "input.h"
|
|
|
|
struct unkStruct_809CC88
|
|
{
|
|
u16 padding;
|
|
u16 unk2;
|
|
u16 unk4;
|
|
u16 unk6;
|
|
};
|
|
|
|
extern u16 gUnknown_203B0BC;
|
|
extern u8 gUnknown_202D6B8;
|
|
extern u8 gUnknown_202D6B9;
|
|
extern u16 gUnknown_202D7FA;
|
|
|
|
extern struct unkStruct_809CC88 gUnknown_202D698;
|
|
extern struct unkStruct_809CC88 gUnknown_202D6A0;
|
|
extern struct unkStruct_809CC88 gUnknown_202D6A8;
|
|
extern struct unkStruct_809CC88 gUnknown_202D6B0;
|
|
|
|
void ReadKeyInput(struct UnkInputStruct1 *r0)
|
|
{
|
|
u16 keyInput = REG_KEYINPUT ^ KEYS_MASK;
|
|
r0->unk0 = 0;
|
|
|
|
if((keyInput & DPAD_UP) != 0)
|
|
{
|
|
r0->unk0 = DPAD_UP;
|
|
}
|
|
|
|
if((keyInput & DPAD_DOWN) != 0)
|
|
{
|
|
r0->unk0 |= DPAD_DOWN;
|
|
}
|
|
|
|
if((keyInput & DPAD_LEFT) != 0)
|
|
{
|
|
r0->unk0 |= DPAD_LEFT;
|
|
}
|
|
|
|
if((keyInput & DPAD_RIGHT) != 0)
|
|
{
|
|
r0->unk0 |= DPAD_RIGHT;
|
|
}
|
|
|
|
if((keyInput & A_BUTTON) != 0)
|
|
{
|
|
r0->unk0 |= A_BUTTON;
|
|
}
|
|
|
|
if((keyInput & B_BUTTON) != 0)
|
|
{
|
|
r0->unk0 |= B_BUTTON;
|
|
}
|
|
|
|
if((keyInput & START_BUTTON) != 0)
|
|
{
|
|
r0->unk0 |= START_BUTTON;
|
|
}
|
|
|
|
if((keyInput & SELECT_BUTTON) != 0)
|
|
{
|
|
r0->unk0 |= SELECT_BUTTON;
|
|
}
|
|
|
|
if((keyInput & R_BUTTON) != 0)
|
|
{
|
|
r0->unk0 |= R_BUTTON;
|
|
}
|
|
|
|
if((keyInput & L_BUTTON) != 0)
|
|
{
|
|
r0->unk0 |= L_BUTTON;
|
|
}
|
|
gUnknown_203B0BC = keyInput;
|
|
}
|
|
|
|
void sub_800CC44(s32 r0, s32 r1)
|
|
{
|
|
u32 preload1;
|
|
u8 preload2;
|
|
u8 preload3;
|
|
|
|
if(r0 < 0)
|
|
{
|
|
r0 = 0;
|
|
}
|
|
else
|
|
{
|
|
if(r0 > 0x10)
|
|
{
|
|
r0 = 0x10;
|
|
}
|
|
}
|
|
if(r1 < 0)
|
|
{
|
|
r1 = 0;
|
|
}
|
|
else
|
|
{
|
|
if(r1 > 0x10)
|
|
{
|
|
r1 = 0x10;
|
|
}
|
|
}
|
|
gUnknown_202D6B8 = r0;
|
|
gUnknown_202D6B9 = r1;
|
|
|
|
// Forcing the correct loads
|
|
preload1 = gUnknown_202D7FA;
|
|
preload2 = gUnknown_202D6B8;
|
|
preload3 = gUnknown_202D6B9;
|
|
|
|
gUnknown_202D7FA = (gUnknown_202D6B9 << 8) | gUnknown_202D6B8;
|
|
|
|
}
|
|
|
|
void sub_800CC88(u32 r0, u32 r1)
|
|
{
|
|
gUnknown_202D698.unk4 = r0;
|
|
gUnknown_202D698.unk6 = r1;
|
|
}
|
|
|
|
void sub_800CC94(u32 r0, u32 r1)
|
|
{
|
|
gUnknown_202D6A0.unk4 = r0;
|
|
gUnknown_202D6A0.unk6 = r1;
|
|
}
|
|
|
|
void sub_800CCA0(u32 r0, u32 r1)
|
|
{
|
|
gUnknown_202D6A8.unk4 = r0;
|
|
gUnknown_202D6A8.unk6 = r1;
|
|
}
|
|
|
|
void sub_800CCAC(u32 r0, u32 r1)
|
|
{
|
|
gUnknown_202D6B0.unk4 = r0;
|
|
gUnknown_202D6B0.unk6 = r1;
|
|
}
|
|
|
|
void sub_800CCB8(s32 r0, u32 r1, u32 r2)
|
|
{
|
|
if(r0 == 1)
|
|
{
|
|
goto _0800CCD4;
|
|
}
|
|
if(r0 <= 1)
|
|
{
|
|
goto _0800CCCA;
|
|
}
|
|
if(r0 == 2)
|
|
{
|
|
goto _0800CCDE;
|
|
}
|
|
if(r0 == 3)
|
|
{
|
|
goto _0800CCE8;
|
|
}
|
|
|
|
_0800CCCA:
|
|
sub_800CC88(r1, r2);
|
|
return;
|
|
_0800CCD4:
|
|
sub_800CC94(r1, r2);
|
|
return;
|
|
_0800CCDE:
|
|
sub_800CCA0(r1, r2);
|
|
return;
|
|
_0800CCE8:
|
|
sub_800CCAC(r1, r2);
|
|
}
|
|
|
|
void sub_800CCF4(s32 r0, u32 r1)
|
|
{
|
|
if(r0 == 1)
|
|
{
|
|
goto _0800CD10;
|
|
}
|
|
if(r0 <= 1)
|
|
{
|
|
goto _0800CD06;
|
|
}
|
|
if(r0 == 2)
|
|
{
|
|
goto _0800CD18;
|
|
}
|
|
if(r0 == 3)
|
|
{
|
|
goto _0800CD20;
|
|
}
|
|
|
|
_0800CD06:
|
|
gUnknown_202D698.unk4 = r1;
|
|
return;
|
|
_0800CD10:
|
|
gUnknown_202D6A0.unk4 = r1;
|
|
return;
|
|
_0800CD18:
|
|
gUnknown_202D6A8.unk4 = r1;
|
|
return;
|
|
_0800CD20:
|
|
gUnknown_202D6B0.unk4 = r1;
|
|
}
|
|
|
|
void sub_800CD2C(s32 r0, u32 r1)
|
|
{
|
|
if(r0 == 1)
|
|
{
|
|
goto _0800CD48;
|
|
}
|
|
if(r0 <= 1)
|
|
{
|
|
goto _0800CD3E;
|
|
}
|
|
if(r0 == 2)
|
|
{
|
|
goto _0800CD50;
|
|
}
|
|
if(r0 == 3)
|
|
{
|
|
goto _0800CD58;
|
|
}
|
|
|
|
_0800CD3E:
|
|
gUnknown_202D698.unk6 = r1;
|
|
return;
|
|
_0800CD48:
|
|
gUnknown_202D6A0.unk6 = r1;
|
|
return;
|
|
_0800CD50:
|
|
gUnknown_202D6A8.unk6 = r1;
|
|
return;
|
|
_0800CD58:
|
|
gUnknown_202D6B0.unk6 = r1;
|
|
}
|