diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/code_8040094.c | 4 | ||||
-rw-r--r-- | src/code_8098BDC.c | 4 | ||||
-rw-r--r-- | src/input.c | 86 | ||||
-rw-r--r-- | src/save1.c | 2 |
4 files changed, 48 insertions, 48 deletions
diff --git a/src/code_8040094.c b/src/code_8040094.c index 547569c..97458c9 100644 --- a/src/code_8040094.c +++ b/src/code_8040094.c @@ -7,7 +7,7 @@ extern struct PlayTimeStruct *gUnknown_203B47C; extern void sub_803F7BC(void); extern void sub_80060EC(void); extern void sub_800CB20(void); -extern void sub_800485C(void); +extern void LoadBufferedInputs(void); extern void xxx_call_update_bg_sound_input(void); extern void sub_8083F58(void); extern void sub_8011860(void); @@ -19,7 +19,7 @@ void sub_8040094(u8 r0) sub_80060EC(); IncrementPlayTime(gUnknown_203B47C); sub_800CB20(); - sub_800485C(); + LoadBufferedInputs(); xxx_call_update_bg_sound_input(); sub_8083F58(); sub_8011860(); diff --git a/src/code_8098BDC.c b/src/code_8098BDC.c index 491fdc9..40a25fa 100644 --- a/src/code_8098BDC.c +++ b/src/code_8098BDC.c @@ -33,7 +33,7 @@ extern void sub_8099BE4(); extern void sub_8099744(); extern void sub_8011860(); extern void sub_800CB20(); -extern void sub_800485C(); +extern void LoadBufferedInputs(); extern void nullsub_120(); extern void sub_80A5E70(); extern void sub_809B638(); @@ -83,7 +83,7 @@ void sub_8098BDC(void) sub_8011860(); IncrementPlayTime(gUnknown_203B47C); sub_800CB20(); - sub_800485C(); + LoadBufferedInputs(); nullsub_120(); sub_80A5E70(); sub_809B638(); diff --git a/src/input.c b/src/input.c index 91b20ac..5951103 100644 --- a/src/input.c +++ b/src/input.c @@ -2,8 +2,8 @@ #include "input.h" EWRAM_DATA struct Input gUnknown_2025600; -EWRAM_DATA struct UnkInputStruct1 gUnknown_20255F0; -EWRAM_DATA struct UnkInputStruct1 gUnknown_2025638; +EWRAM_DATA struct UnkInputStruct1 gRealInputs; +EWRAM_DATA struct UnkInputStruct1 gBufferedInputs; EWRAM_DATA struct UnkInputStruct1 gCurrentInputs; EWRAM_DATA struct UnkInputStruct1 gLastInputs; EWRAM_DATA struct UnkInputStruct2 gUnknown_2025668; @@ -13,15 +13,15 @@ void ReadKeyInput(struct UnkInputStruct1 *r0); void InitInput(void) { - gUnknown_20255F0.held = 0; - gUnknown_20255F0.pressed = 0; - gUnknown_20255F0.unk4 = 0; - gUnknown_20255F0.unk6 = 0; + gRealInputs.held = 0; + gRealInputs.pressed = 0; + gRealInputs.repeated = 0; + gRealInputs.shortPress = 0; - gUnknown_2025638.held = 0; - gUnknown_2025638.pressed = 0; - gUnknown_2025638.unk4 = 0; - gUnknown_2025638.unk6 = 0; + gBufferedInputs.held = 0; + gBufferedInputs.pressed = 0; + gBufferedInputs.repeated = 0; + gBufferedInputs.shortPress = 0; gUnusedScrambledInputJunk = 0x4a14c1; // seems like random keyboard mashing (see UpdateInput) @@ -47,14 +47,14 @@ void InitInput(void) gUnknown_2025668.holdTimerR = 0; } -void sub_800485C(void) +void LoadBufferedInputs(void) { - gUnknown_20255F0 = gUnknown_2025638; + gRealInputs = gBufferedInputs; - gUnknown_2025638.held = 0; - gUnknown_2025638.pressed = 0; - gUnknown_2025638.unk4 = 0; - gUnknown_2025638.unk6 = 0; + gBufferedInputs.held = 0; + gBufferedInputs.pressed = 0; + gBufferedInputs.repeated = 0; + gBufferedInputs.shortPress = 0; gUnknown_2025600.unk0 = 0xffff; gUnknown_2025600.unk2 = -1; @@ -107,20 +107,20 @@ u8 sub_80048CC(void) return 0; } -void sub_80048D0(void) +void ResetRepeatTimers(void) { - gUnknown_20255F0.unk4 = 0; - gCurrentInputs.repeatTimer = 0; - gCurrentInputs.unk8 = 0; + gRealInputs.repeated = 0; + gCurrentInputs.repeatTimerDpad = 0; + gCurrentInputs.heldDpad = 0; gUnknown_2025668.holdTimerB = 999; gUnknown_2025668.holdTimerR = 999; } -void sub_80048F8(void) +void UnpressButtons(void) { - gUnknown_20255F0.pressed = 0; - gUnknown_2025638.pressed = 0; + gRealInputs.pressed = 0; + gBufferedInputs.pressed = 0; gCurrentInputs.pressed = 0; } @@ -156,33 +156,33 @@ void UpdateInput(void) if (gCurrentInputs.held) { // 0xF0 -- DPAD buttons - if ((gCurrentInputs.unk8 & 0xf0) == (gCurrentInputs.held & 0xf0)) { - if (gCurrentInputs.repeatTimer < 50) - gCurrentInputs.repeatTimer = gCurrentInputs.repeatTimer + 1; + if ((gCurrentInputs.heldDpad & 0xf0) == (gCurrentInputs.held & 0xf0)) { + if (gCurrentInputs.repeatTimerDpad < 50) + gCurrentInputs.repeatTimerDpad++; } else { - gCurrentInputs.unk8 = gCurrentInputs.held & 0xf0; - gCurrentInputs.repeatTimer = 1; + gCurrentInputs.heldDpad = gCurrentInputs.held & 0xf0; + gCurrentInputs.repeatTimerDpad = 1; } } else { - gCurrentInputs.repeatTimer = 0; - gCurrentInputs.unk8 = 0; + gCurrentInputs.repeatTimerDpad = 0; + gCurrentInputs.heldDpad = 0; } - if (gCurrentInputs.repeatTimer == 1) { - gCurrentInputs.unk4 = (gCurrentInputs.unk8 & 0xf0) | gCurrentInputs.pressed; - } else if (gCurrentInputs.repeatTimer == 48) { - gCurrentInputs.repeatTimer = 43; - gCurrentInputs.unk4 = (gCurrentInputs.unk8 & 0xf0) | gCurrentInputs.pressed; + if (gCurrentInputs.repeatTimerDpad == 1) { + gCurrentInputs.repeated = (gCurrentInputs.heldDpad & 0xf0) | gCurrentInputs.pressed; + } else if (gCurrentInputs.repeatTimerDpad == 48) { + gCurrentInputs.repeatTimerDpad = 43; + gCurrentInputs.repeated = (gCurrentInputs.heldDpad & 0xf0) | gCurrentInputs.pressed; } else { - gCurrentInputs.unk4 = 0; + gCurrentInputs.repeated = 0; } - gCurrentInputs.unk6 = 0; + gCurrentInputs.shortPress = 0; if (gCurrentInputs.held & B_BUTTON) { if (gUnknown_2025668.holdTimerB < 100) gUnknown_2025668.holdTimerB++; } else if (1 < gUnknown_2025668.holdTimerB && gUnknown_2025668.holdTimerB < 12) { - gCurrentInputs.unk6 = B_BUTTON; + gCurrentInputs.shortPress = B_BUTTON; gUnknown_2025668.holdTimerB = 0; } else { gUnknown_2025668.holdTimerB = 0; @@ -192,16 +192,16 @@ void UpdateInput(void) if (gUnknown_2025668.holdTimerR < 100) gUnknown_2025668.holdTimerR++; } else if (1 < gUnknown_2025668.holdTimerR && gUnknown_2025668.holdTimerR < 12) { - gCurrentInputs.unk6 |= R_BUTTON; + gCurrentInputs.shortPress |= R_BUTTON; gUnknown_2025668.holdTimerR = 0; } else { gUnknown_2025668.holdTimerR = 0; } - gUnknown_2025638.held |= gCurrentInputs.held; - gUnknown_2025638.pressed |= gCurrentInputs.pressed; - gUnknown_2025638.unk4 |= gCurrentInputs.unk4; - gUnknown_2025638.unk6 |= gCurrentInputs.unk6; + gBufferedInputs.held |= gCurrentInputs.held; + gBufferedInputs.pressed |= gCurrentInputs.pressed; + gBufferedInputs.repeated |= gCurrentInputs.repeated; + gBufferedInputs.shortPress |= gCurrentInputs.shortPress; gUnusedScrambledInputJunk *= gCurrentInputs.held | 0x54a1c41; // very similar to odd constant in InitInput - probably keymashing } diff --git a/src/save1.c b/src/save1.c index a194557..dd0fc45 100644 --- a/src/save1.c +++ b/src/save1.c @@ -69,7 +69,7 @@ void sub_8012A18() sub_8005180(); sub_80060EC(); sub_800CB20(); - sub_800485C(); // Input related + LoadBufferedInputs(); // Input related CopySpritesToOam(); sub_8005304(); TransferBGPaletteBuffer(); |