mirror of
https://github.com/perfect-dark-pc-port/perfect_dark.git
synced 2026-10-24 00:02:43 +02:00
map L_TRIG to alt button
- switches immediately when releases L - or whenevever L+Z is pressed. Will switch back when L is released.
This commit is contained in:
1 parent
68c00af44e
commit
25b5f66e6b
4 files changed
+41
-1
No files matched your search
+1
-1
@@ -11699,7 +11699,7 @@ s32 bgunConsiderToggleGunFunction(s32 usedowntime, bool trigpressed, bool fromac
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Don't do anything if B hasn't been held for 50/60ths of a second
|
// Don't do anything if B hasn't been held for 50/60ths of a second
|
||||||
if (usedowntime < TICKS(50)) {
|
if (ABS(usedowntime) < 0) {
|
||||||
return USETIMER_CONTINUE;
|
return USETIMER_CONTINUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1349,6 +1349,43 @@ void bmoveProcessInput(bool allowc1x, bool allowc1y, bool allowc1buttons, bool i
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// handle L button
|
||||||
|
for (i = 0; i< numsamples; i++) {
|
||||||
|
if (joyGetButtonsOnSample(i, contpad1, c1allowedbuttons & L_TRIG)) {
|
||||||
|
if (g_Vars.currentplayer->altdowntime >= -1) {
|
||||||
|
if (joyGetButtonsPressedOnSample(i, contpad1, shootbuttons & c1allowedbuttons)
|
||||||
|
&& g_Vars.currentplayer->altdowntime >= 0
|
||||||
|
&& bgunConsiderToggleGunFunction(g_Vars.currentplayer->altdowntime, true, false) != USETIMER_CONTINUE) {
|
||||||
|
g_Vars.currentplayer->altdowntime = -3;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (g_Vars.currentplayer->altdowntime != -4) {
|
||||||
|
if (g_Vars.currentplayer->altdowntime <= 0) {
|
||||||
|
g_Vars.currentplayer->altdowntime++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (g_Vars.currentplayer->altdowntime == -2) {
|
||||||
|
bgunConsiderToggleGunFunction(g_Vars.currentplayer->altdowntime, false, false);
|
||||||
|
g_Vars.currentplayer->altdowntime = -4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Released L
|
||||||
|
if (g_Vars.currentplayer->altdowntime != 0) {
|
||||||
|
s32 result = bgunConsiderToggleGunFunction(g_Vars.currentplayer->altdowntime, (g_Vars.currentplayer->altdowntime == -3 ? true: false), false);
|
||||||
|
|
||||||
|
if (result == USETIMER_STOP) {
|
||||||
|
g_Vars.currentplayer->altdowntime = -1;
|
||||||
|
} else if (result == USETIMER_REPEAT) {
|
||||||
|
g_Vars.currentplayer->altdowntime = -2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
g_Vars.currentplayer->altdowntime = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Handle ALT1 / MI Reload Hack
|
// Handle ALT1 / MI Reload Hack
|
||||||
for (i = 0; i < numsamples; i++) {
|
for (i = 0; i < numsamples; i++) {
|
||||||
if (joyGetButtonsOnSample(i, contpad1, c1allowedbuttons & X_BUTTON)) {
|
if (joyGetButtonsOnSample(i, contpad1, c1allowedbuttons & X_BUTTON)) {
|
||||||
|
|||||||
@@ -806,6 +806,8 @@ void playerLoadDefaults(void)
|
|||||||
g_Vars.currentplayer->prevoverexposurered = 0;
|
g_Vars.currentplayer->prevoverexposurered = 0;
|
||||||
g_Vars.currentplayer->prevoverexposuregreen = 0;
|
g_Vars.currentplayer->prevoverexposuregreen = 0;
|
||||||
g_Vars.currentplayer->prevoverexposureblue = 0;
|
g_Vars.currentplayer->prevoverexposureblue = 0;
|
||||||
|
g_Vars.currentplayer->amdowntime = 0;
|
||||||
|
g_Vars.currentplayer->altdowntime = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool playerSpawnAnti(struct chrdata *hostchr, bool force)
|
bool playerSpawnAnti(struct chrdata *hostchr, bool force)
|
||||||
|
|||||||
@@ -2816,6 +2816,7 @@ struct player {
|
|||||||
/*0x1c64*/ s32 unk1c64;
|
/*0x1c64*/ s32 unk1c64;
|
||||||
/*0x1c68*/ u32 unk1c68;
|
/*0x1c68*/ u32 unk1c68;
|
||||||
/*0x1c6c*/ u32 unk1c6c;
|
/*0x1c6c*/ u32 unk1c6c;
|
||||||
|
s16 altdowntime; // for alt-modes, used like invdowntime and amdowntime
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ailist {
|
struct ailist {
|
||||||
|
|||||||
Reference in new issue
Block a user