Skip to content

Commit 240e41b

Browse files
committed
Implement CheckMapMoveKeys
1 parent a51e1e4 commit 240e41b

2 files changed

Lines changed: 36 additions & 2 deletions

File tree

src/carma2/common/controls.c

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2402,13 +2402,45 @@ void C2_HOOK_FASTCALL EnterUserMessage(void) {
24022402
}
24032403
C2_HOOK_FUNCTION_ORIGINAL(0x00444910, EnterUserMessage, EnterUserMessage_original)
24042404

2405+
void C2_HOOK_FASTCALL MapChanged(void) {
2406+
2407+
InitMap();
2408+
SaveOptions();
2409+
}
2410+
24052411
void (C2_HOOK_FASTCALL * CheckMapMoveKeys_original)(int pKey0);
24062412
void C2_HOOK_FASTCALL CheckMapMoveKeys(int pKey0) {
24072413

2408-
#if defined(C2_HOOKS_ENABLED)
2414+
#if 0//defined(C2_HOOKS_ENABLED)
24092415
CheckMapMoveKeys_original(pKey0);
24102416
#else
2411-
NOT_IMPLEMENTED();
2417+
2418+
if (KeyIsDown(31) && pKey0) {
2419+
C2V(gHeadup_map_y_float) -= (float)C2V(gFrame_period) / 20.f;
2420+
if (C2V(gHeadup_map_y_float) < 0.f) {
2421+
C2V(gHeadup_map_y_float) = 0.f;
2422+
}
2423+
MapChanged();
2424+
} else if (KeyIsDown(32) && pKey0) {
2425+
C2V(gHeadup_map_y_float) += (float)C2V(gFrame_period) / 20.f;
2426+
if (C2V(gHeadup_map_y_float) + C2V(gHeadup_map_h_float) > (float)C2V(gBack_screen)->height) {
2427+
C2V(gHeadup_map_y_float) = (float)(C2V(gBack_screen)->height - C2V(gHeadup_map_h));
2428+
}
2429+
MapChanged();
2430+
}
2431+
if (KeyIsDown(33) && pKey0) {
2432+
C2V(gHeadup_map_x_float) -= (float)C2V(gFrame_period) / 20.f;
2433+
if (C2V(gHeadup_map_x_float) < 0.f) {
2434+
C2V(gHeadup_map_x_float) = 0.f;
2435+
}
2436+
MapChanged();
2437+
} else if (KeyIsDown(34) && pKey0) {
2438+
C2V(gHeadup_map_x_float) += (float)C2V(gFrame_period) / 20.f;
2439+
if (C2V(gHeadup_map_x_float) + C2V(gHeadup_map_w_float) + 8.f > (float)C2V(gBack_screen)->width) {
2440+
C2V(gHeadup_map_x_float) = (float)(C2V(gBack_screen)->width - C2V(gHeadup_map_w) - 8);
2441+
}
2442+
MapChanged();
2443+
}
24122444
#endif
24132445
}
24142446
C2_HOOK_FUNCTION_ORIGINAL(0x00497620, CheckMapMoveKeys, CheckMapMoveKeys_original)

src/carma2/common/controls.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,8 @@ void C2_HOOK_FASTCALL ResetRecoveryVouchers(void);
178178

179179
void C2_HOOK_FASTCALL EnterUserMessage(void);
180180

181+
void C2_HOOK_FASTCALL MapChanged(void);
182+
181183
void C2_HOOK_FASTCALL CheckMapMoveKeys(int pKey0);
182184

183185
void C2_HOOK_FASTCALL PollCameraControls(tU32 pCamera_period);

0 commit comments

Comments
 (0)