mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Merge branch 'master' into grand-pricks
This commit is contained in:
commit
e425eabf04
19 changed files with 387 additions and 319 deletions
|
|
@ -547,10 +547,7 @@ static void COM_ExecuteString(char *ptext)
|
|||
if (!stricmp(com_argv[0], a->name))
|
||||
{
|
||||
if (recursion > MAX_ALIAS_RECURSION)
|
||||
{
|
||||
CONS_Alert(CONS_WARNING, M_GetText("Alias recursion cycle detected!\n"));
|
||||
recursion = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
char buf[1024];
|
||||
|
|
@ -582,8 +579,10 @@ static void COM_ExecuteString(char *ptext)
|
|||
}
|
||||
WRITESTRING(write, read);
|
||||
|
||||
// Monster Iestyn: keep track of how many levels of recursion we're in
|
||||
recursion++;
|
||||
COM_BufInsertText(buf);
|
||||
recursion--;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2498,6 +2498,7 @@ static void Command_ClearBans(void)
|
|||
return;
|
||||
|
||||
I_ClearBans();
|
||||
D_SaveBan();
|
||||
reasontail = NULL;
|
||||
while (reasonhead)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -515,6 +515,7 @@ typedef struct player_s
|
|||
UINT8 gotcontinue; // Got continue from this stage?
|
||||
|
||||
fixed_t speed; // Player's speed (distance formula of MOMX and MOMY values)
|
||||
fixed_t lastspeed;
|
||||
UINT8 jumping; // Jump counter
|
||||
UINT8 secondjump;
|
||||
|
||||
|
|
|
|||
114
src/dehacked.c
114
src/dehacked.c
|
|
@ -3900,88 +3900,52 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
|
|||
"S_THOK",
|
||||
|
||||
// SRB2kart Frames
|
||||
"S_KART_STND1",
|
||||
"S_KART_STND2",
|
||||
"S_KART_STND1_L",
|
||||
"S_KART_STND2_L",
|
||||
"S_KART_STND1_R",
|
||||
"S_KART_STND2_R",
|
||||
"S_KART_WALK1",
|
||||
"S_KART_WALK2",
|
||||
"S_KART_WALK1_L",
|
||||
"S_KART_WALK2_L",
|
||||
"S_KART_WALK1_R",
|
||||
"S_KART_WALK2_R",
|
||||
"S_KART_RUN1",
|
||||
"S_KART_RUN2",
|
||||
"S_KART_RUN1_L",
|
||||
"S_KART_RUN2_L",
|
||||
"S_KART_RUN1_R",
|
||||
"S_KART_RUN2_R",
|
||||
"S_KART_STILL1",
|
||||
"S_KART_STILL2",
|
||||
"S_KART_STILL1_L",
|
||||
"S_KART_STILL2_L",
|
||||
"S_KART_STILL1_R",
|
||||
"S_KART_STILL2_R",
|
||||
|
||||
"S_KART_SLOW1",
|
||||
"S_KART_SLOW2",
|
||||
"S_KART_SLOW1_L",
|
||||
"S_KART_SLOW2_L",
|
||||
"S_KART_SLOW1_R",
|
||||
"S_KART_SLOW2_R",
|
||||
|
||||
"S_KART_FAST1",
|
||||
"S_KART_FAST2",
|
||||
"S_KART_FAST1_L",
|
||||
"S_KART_FAST2_L",
|
||||
"S_KART_FAST1_R",
|
||||
"S_KART_FAST2_R",
|
||||
|
||||
"S_KART_DRIFT1_L",
|
||||
"S_KART_DRIFT2_L",
|
||||
|
||||
"S_KART_DRIFT1_L_OUT",
|
||||
"S_KART_DRIFT2_L_OUT",
|
||||
|
||||
"S_KART_DRIFT1_L_IN",
|
||||
"S_KART_DRIFT2_L_IN",
|
||||
"S_KART_DRIFT3_L_IN",
|
||||
"S_KART_DRIFT4_L_IN",
|
||||
|
||||
"S_KART_DRIFT1_R",
|
||||
"S_KART_DRIFT2_R",
|
||||
|
||||
"S_KART_DRIFT1_R_OUT",
|
||||
"S_KART_DRIFT2_R_OUT",
|
||||
|
||||
"S_KART_DRIFT1_R_IN",
|
||||
"S_KART_DRIFT2_R_IN",
|
||||
"S_KART_DRIFT3_R_IN",
|
||||
"S_KART_DRIFT4_R_IN",
|
||||
|
||||
"S_KART_SPIN",
|
||||
"S_KART_PAIN",
|
||||
"S_KART_SQUISH",
|
||||
/*
|
||||
"S_PLAY_STND",
|
||||
"S_PLAY_TAP1",
|
||||
"S_PLAY_TAP2",
|
||||
"S_PLAY_RUN1",
|
||||
"S_PLAY_RUN2",
|
||||
"S_PLAY_RUN3",
|
||||
"S_PLAY_RUN4",
|
||||
"S_PLAY_RUN5",
|
||||
"S_PLAY_RUN6",
|
||||
"S_PLAY_RUN7",
|
||||
"S_PLAY_RUN8",
|
||||
"S_PLAY_SPD1",
|
||||
"S_PLAY_SPD2",
|
||||
"S_PLAY_SPD3",
|
||||
"S_PLAY_SPD4",
|
||||
"S_PLAY_ATK1",
|
||||
"S_PLAY_ATK2",
|
||||
"S_PLAY_ATK3",
|
||||
"S_PLAY_ATK4",
|
||||
"S_PLAY_SPRING",
|
||||
"S_PLAY_FALL1",
|
||||
"S_PLAY_FALL2",
|
||||
"S_PLAY_ABL1",
|
||||
"S_PLAY_ABL2",
|
||||
"S_PLAY_SPC1",
|
||||
"S_PLAY_SPC2",
|
||||
"S_PLAY_SPC3",
|
||||
"S_PLAY_SPC4",
|
||||
"S_PLAY_CLIMB1",
|
||||
"S_PLAY_CLIMB2",
|
||||
"S_PLAY_CLIMB3",
|
||||
"S_PLAY_CLIMB4",
|
||||
"S_PLAY_CLIMB5",
|
||||
"S_PLAY_GASP",
|
||||
"S_PLAY_PAIN",
|
||||
"S_PLAY_DIE",
|
||||
"S_PLAY_TEETER1",
|
||||
"S_PLAY_TEETER2",
|
||||
"S_PLAY_CARRY",
|
||||
"S_PLAY_SUPERSTAND",
|
||||
"S_PLAY_SUPERWALK1",
|
||||
"S_PLAY_SUPERWALK2",
|
||||
"S_PLAY_SUPERFLY1",
|
||||
"S_PLAY_SUPERFLY2",
|
||||
"S_PLAY_SUPERTEETER",
|
||||
"S_PLAY_SUPERHIT",
|
||||
"S_PLAY_SUPERTRANS1",
|
||||
"S_PLAY_SUPERTRANS2",
|
||||
"S_PLAY_SUPERTRANS3",
|
||||
"S_PLAY_SUPERTRANS4",
|
||||
"S_PLAY_SUPERTRANS5",
|
||||
"S_PLAY_SUPERTRANS6",
|
||||
"S_PLAY_SUPERTRANS7",
|
||||
"S_PLAY_SUPERTRANS8",
|
||||
"S_PLAY_SUPERTRANS9", // This has special significance in the code. If you add more frames, search for it and make the appropriate changes.
|
||||
*/
|
||||
|
||||
// technically the player goes here but it's an infinite tic state
|
||||
"S_OBJPLACE_DUMMY",
|
||||
|
|
|
|||
|
|
@ -7642,7 +7642,7 @@ void G_AddGhost(char *defdemoname)
|
|||
}
|
||||
gh->mo->z = z;
|
||||
}
|
||||
gh->mo->state = states+S_KART_STND1; // SRB2kart - was S_PLAY_STND
|
||||
gh->mo->state = states+S_KART_STILL1; // SRB2kart - was S_PLAY_STND
|
||||
gh->mo->sprite = gh->mo->state->sprite;
|
||||
gh->mo->frame = (gh->mo->state->frame & FF_FRAMEMASK) | tr_trans20<<FF_TRANSSHIFT;
|
||||
gh->mo->tics = -1;
|
||||
|
|
|
|||
125
src/info.c
125
src/info.c
|
|
@ -98,88 +98,43 @@ state_t states[NUMSTATES] =
|
|||
{SPR_THOK, FF_TRANS50, 8, {NULL}, 0, 0, S_NULL}, // S_THOK
|
||||
|
||||
// Player // SRB2kart
|
||||
{SPR_PLAY, 0, 1, {NULL}, 0, 0, S_KART_STND2}, // S_KART_STND1 A
|
||||
{SPR_PLAY, 1, 1, {NULL}, 0, 0, S_KART_STND1}, // S_KART_STND2 B
|
||||
{SPR_PLAY, 2, 1, {NULL}, 0, 0, S_KART_STND2_L}, // S_KART_STND1_L C
|
||||
{SPR_PLAY, 3, 1, {NULL}, 0, 0, S_KART_STND1_L}, // S_KART_STND2_L D
|
||||
{SPR_PLAY, 4, 1, {NULL}, 0, 0, S_KART_STND2_R}, // S_KART_STND1_R E
|
||||
{SPR_PLAY, 5, 1, {NULL}, 0, 0, S_KART_STND1_R}, // S_KART_STND2_R F
|
||||
{SPR_PLAY, 9, 1, {NULL}, 0, 0, S_KART_WALK2}, // S_KART_WALK1 J
|
||||
{SPR_PLAY, 6, 1, {NULL}, 0, 0, S_KART_WALK1}, // S_KART_WALK2 G
|
||||
{SPR_PLAY, 10, 1, {NULL}, 0, 0, S_KART_WALK2_L}, // S_KART_WALK1_L K
|
||||
{SPR_PLAY, 7, 1, {NULL}, 0, 0, S_KART_WALK1_L}, // S_KART_WALK2_L H
|
||||
{SPR_PLAY, 11, 1, {NULL}, 0, 0, S_KART_WALK2_R}, // S_KART_WALK1_R L
|
||||
{SPR_PLAY, 8, 1, {NULL}, 0, 0, S_KART_WALK1_R}, // S_KART_WALK2_R I
|
||||
{SPR_PLAY, 0, 1, {NULL}, 0, 0, S_KART_RUN2}, // S_KART_RUN1 A
|
||||
{SPR_PLAY, 9, 1, {NULL}, 0, 0, S_KART_RUN1}, // S_KART_RUN2 J
|
||||
{SPR_PLAY, 2, 1, {NULL}, 0, 0, S_KART_RUN2_L}, // S_KART_RUN1_L C
|
||||
{SPR_PLAY, 10, 1, {NULL}, 0, 0, S_KART_RUN1_L}, // S_KART_RUN2_L K
|
||||
{SPR_PLAY, 4, 1, {NULL}, 0, 0, S_KART_RUN2_R}, // S_KART_RUN1_R E
|
||||
{SPR_PLAY, 11, 1, {NULL}, 0, 0, S_KART_RUN1_R}, // S_KART_RUN2_R L
|
||||
{SPR_PLAY, 12, 1, {NULL}, 0, 0, S_KART_DRIFT2_L}, // S_KART_DRIFT1_L M
|
||||
{SPR_PLAY, 13, 1, {NULL}, 0, 0, S_KART_DRIFT1_L}, // S_KART_DRIFT2_L N
|
||||
{SPR_PLAY, 14, 1, {NULL}, 0, 0, S_KART_DRIFT2_R}, // S_KART_DRIFT1_R O
|
||||
{SPR_PLAY, 15, 1, {NULL}, 0, 0, S_KART_DRIFT1_R}, // S_KART_DRIFT2_R P
|
||||
{SPR_PLAY, 16, -1, {NULL}, 0, 0, S_KART_SPIN}, // S_KART_SPIN Q
|
||||
{SPR_PLAY, 16, 350, {NULL}, 0, 0, S_KART_STND1}, // S_KART_PAIN Q
|
||||
{SPR_PLAY, 17, 350, {NULL}, 0, 0, S_KART_STND1}, // S_KART_SQUISH R
|
||||
/*
|
||||
{SPR_PLAY, 0, 105, {NULL}, 0, 0, S_PLAY_TAP1}, // S_PLAY_STND
|
||||
{SPR_PLAY, 1, 16, {NULL}, 0, 0, S_PLAY_TAP2}, // S_PLAY_TAP1
|
||||
{SPR_PLAY, 2, 16, {NULL}, 0, 0, S_PLAY_TAP1}, // S_PLAY_TAP2
|
||||
{SPR_PLAY, 3, 4, {NULL}, 0, 0, S_PLAY_RUN2}, // S_PLAY_RUN1
|
||||
{SPR_PLAY, 4, 4, {NULL}, 0, 0, S_PLAY_RUN3}, // S_PLAY_RUN2
|
||||
{SPR_PLAY, 5, 4, {NULL}, 0, 0, S_PLAY_RUN4}, // S_PLAY_RUN3
|
||||
{SPR_PLAY, 6, 4, {NULL}, 0, 0, S_PLAY_RUN5}, // S_PLAY_RUN4
|
||||
{SPR_PLAY, 7, 4, {NULL}, 0, 0, S_PLAY_RUN6}, // S_PLAY_RUN5
|
||||
{SPR_PLAY, 8, 4, {NULL}, 0, 0, S_PLAY_RUN7}, // S_PLAY_RUN6
|
||||
{SPR_PLAY, 9, 4, {NULL}, 0, 0, S_PLAY_RUN8}, // S_PLAY_RUN7
|
||||
{SPR_PLAY, 10, 4, {NULL}, 0, 0, S_PLAY_RUN1}, // S_PLAY_RUN8
|
||||
{SPR_PLAY, 16, 2, {NULL}, 0, 0, S_PLAY_SPD2}, // S_PLAY_SPD1
|
||||
{SPR_PLAY, 17, 2, {NULL}, 0, 0, S_PLAY_SPD3}, // S_PLAY_SPD2
|
||||
{SPR_PLAY, 18, 2, {NULL}, 0, 0, S_PLAY_SPD4}, // S_PLAY_SPD3
|
||||
{SPR_PLAY, 19, 2, {NULL}, 0, 0, S_PLAY_SPD1}, // S_PLAY_SPD4
|
||||
{SPR_PLAY, 11, 1, {NULL}, 0, 0, S_PLAY_ATK2}, // S_PLAY_ATK1
|
||||
{SPR_PLAY, 12, 1, {NULL}, 0, 0, S_PLAY_ATK3}, // S_PLAY_ATK2
|
||||
{SPR_PLAY, 13, 1, {NULL}, 0, 0, S_PLAY_ATK4}, // S_PLAY_ATK3
|
||||
{SPR_PLAY, 14, 1, {NULL}, 0, 0, S_PLAY_ATK1}, // S_PLAY_ATK4
|
||||
{SPR_PLAY, 15, -1, {NULL}, 0, 0, S_PLAY_FALL1}, // S_PLAY_SPRING
|
||||
{SPR_PLAY, 31, 2, {NULL}, 0, 0, S_PLAY_FALL2}, // S_PLAY_FALL1
|
||||
{SPR_PLAY, 32, 2, {NULL}, 0, 0, S_PLAY_FALL1}, // S_PLAY_FALL2
|
||||
{SPR_PLAY, 20, 2, {NULL}, 0, 0, S_PLAY_ABL2}, // S_PLAY_ABL1
|
||||
{SPR_PLAY, 21, 2, {NULL}, 0, 0, S_PLAY_ABL1}, // S_PLAY_ABL2
|
||||
{SPR_PLAY, 22, 6, {NULL}, 0, 0, S_PLAY_SPC2}, // S_PLAY_SPC1
|
||||
{SPR_PLAY, 23, 6, {NULL}, 0, 0, S_PLAY_SPC3}, // S_PLAY_SPC2
|
||||
{SPR_PLAY, 24, 6, {NULL}, 0, 0, S_PLAY_SPC4}, // S_PLAY_SPC3
|
||||
{SPR_PLAY, 25, 6, {NULL}, 0, 0, S_PLAY_SPC1}, // S_PLAY_SPC4
|
||||
{SPR_PLAY, 22, -1, {NULL}, 0, 0, S_NULL}, // S_PLAY_CLIMB1
|
||||
{SPR_PLAY, 23, 5, {NULL}, 0, 0, S_PLAY_CLIMB3}, // S_PLAY_CLIMB2
|
||||
{SPR_PLAY, 24, 5, {NULL}, 0, 0, S_PLAY_CLIMB4}, // S_PLAY_CLIMB3
|
||||
{SPR_PLAY, 25, 5, {NULL}, 0, 0, S_PLAY_CLIMB5}, // S_PLAY_CLIMB4
|
||||
{SPR_PLAY, 24, 5, {NULL}, 0, 0, S_PLAY_CLIMB2}, // S_PLAY_CLIMB5
|
||||
{SPR_PLAY, 26, 14, {NULL}, 0, 0, S_PLAY_RUN1}, // S_PLAY_GASP
|
||||
{SPR_PLAY, 27, 350, {NULL}, 0, 0, S_PLAY_FALL1}, // S_PLAY_PAIN
|
||||
{SPR_PLAY, 28, -1, {A_Fall}, 0, 0, S_NULL}, // S_PLAY_DIE
|
||||
{SPR_PLAY, 29, 12, {NULL}, 0, 0, S_PLAY_TEETER2}, // S_PLAY_TEETER1
|
||||
{SPR_PLAY, 30, 12, {NULL}, 0, 0, S_PLAY_TEETER1}, // S_PLAY_TEETER2
|
||||
{SPR_PLAY, 33, -1, {NULL}, 0, 0, S_NULL}, // S_PLAY_CARRY
|
||||
{SPR_PLAY, 20, -1, {NULL}, 0, 0, S_PLAY_SUPERSTAND}, // S_PLAY_SUPERSTAND
|
||||
{SPR_PLAY, 20, 7, {NULL}, 0, 0, S_PLAY_SUPERWALK2}, // S_PLAY_SUPERWALK1
|
||||
{SPR_PLAY, 21, 7, {NULL}, 0, 0, S_PLAY_SUPERWALK1}, // S_PLAY_SUPERWALK2
|
||||
{SPR_PLAY, 22, 7, {NULL}, 0, 0, S_PLAY_SUPERFLY2}, // S_PLAY_SUPERFLY1
|
||||
{SPR_PLAY, 23, 7, {NULL}, 0, 0, S_PLAY_SUPERFLY1}, // S_PLAY_SUPERFLY2
|
||||
{SPR_PLAY, 24, 12, {NULL}, 0, 0, S_PLAY_SUPERTEETER}, // S_PLAY_SUPERTEETER
|
||||
{SPR_PLAY, 25, -1, {NULL}, 0, 0, S_PLAY_SUPERSTAND}, // S_PLAY_SUPERHIT
|
||||
{SPR_PLAY, 36, 4, {NULL}, 0, 0, S_PLAY_SUPERTRANS2}, // S_PLAY_SUPERTRANS1
|
||||
{SPR_PLAY, 37, 4, {NULL}, 0, 0, S_PLAY_SUPERTRANS3}, // S_PLAY_SUPERTRANS2
|
||||
{SPR_PLAY, 32806, 4, {NULL}, 0, 0, S_PLAY_SUPERTRANS4}, // S_PLAY_SUPERTRANS3
|
||||
{SPR_PLAY, 39, 3, {NULL}, 0, 0, S_PLAY_SUPERTRANS5}, // S_PLAY_SUPERTRANS4
|
||||
{SPR_PLAY, 40, 3, {NULL}, 0, 0, S_PLAY_SUPERTRANS6}, // S_PLAY_SUPERTRANS5
|
||||
{SPR_PLAY, 41, 3, {NULL}, 0, 0, S_PLAY_SUPERTRANS7}, // S_PLAY_SUPERTRANS6
|
||||
{SPR_PLAY, 42, 3, {NULL}, 0, 0, S_PLAY_SUPERTRANS8}, // S_PLAY_SUPERTRANS7
|
||||
{SPR_PLAY, 43, 3, {NULL}, 0, 0, S_PLAY_SUPERTRANS9}, // S_PLAY_SUPERTRANS8
|
||||
{SPR_PLAY, 44, 16, {NULL}, 0, 0, S_PLAY_RUN1}, // S_PLAY_SUPERTRANS9
|
||||
*/
|
||||
{SPR_PLAY, 0, 1, {NULL}, 0, 0, S_KART_STILL2}, // S_KART_STILL1 A
|
||||
{SPR_PLAY, 1, 1, {NULL}, 0, 0, S_KART_STILL1}, // S_KART_STILL2 B
|
||||
{SPR_PLAY, 2, 1, {NULL}, 0, 0, S_KART_STILL2_L}, // S_KART_STILL1_L C
|
||||
{SPR_PLAY, 3, 1, {NULL}, 0, 0, S_KART_STILL1_L}, // S_KART_STILL2_L D
|
||||
{SPR_PLAY, 4, 1, {NULL}, 0, 0, S_KART_STILL2_R}, // S_KART_STILL1_R E
|
||||
{SPR_PLAY, 5, 1, {NULL}, 0, 0, S_KART_STILL1_R}, // S_KART_STILL2_R F
|
||||
{SPR_PLAY, 9, 1, {NULL}, 0, 0, S_KART_SLOW2}, // S_KART_SLOW1 J
|
||||
{SPR_PLAY, 6, 1, {NULL}, 0, 0, S_KART_SLOW1}, // S_KART_SLOW2 G
|
||||
{SPR_PLAY, 10, 1, {NULL}, 0, 0, S_KART_SLOW2_L}, // S_KART_SLOW1_L K
|
||||
{SPR_PLAY, 7, 1, {NULL}, 0, 0, S_KART_SLOW1_L}, // S_KART_SLOW2_L H
|
||||
{SPR_PLAY, 11, 1, {NULL}, 0, 0, S_KART_SLOW2_R}, // S_KART_SLOW1_R L
|
||||
{SPR_PLAY, 8, 1, {NULL}, 0, 0, S_KART_SLOW1_R}, // S_KART_SLOW2_R I
|
||||
{SPR_PLAY, 0, 1, {NULL}, 0, 0, S_KART_FAST2}, // S_KART_FAST1 A
|
||||
{SPR_PLAY, 9, 1, {NULL}, 0, 0, S_KART_FAST1}, // S_KART_FAST2 J
|
||||
{SPR_PLAY, 2, 1, {NULL}, 0, 0, S_KART_FAST2_L}, // S_KART_FAST1_L C
|
||||
{SPR_PLAY, 10, 1, {NULL}, 0, 0, S_KART_FAST1_L}, // S_KART_FAST2_L K
|
||||
{SPR_PLAY, 4, 1, {NULL}, 0, 0, S_KART_FAST2_R}, // S_KART_FAST1_R E
|
||||
{SPR_PLAY, 11, 1, {NULL}, 0, 0, S_KART_FAST1_R}, // S_KART_FAST2_R L
|
||||
{SPR_PLAY, 12, 1, {NULL}, 0, 0, S_KART_DRIFT2_L}, // S_KART_DRIFT1_L M
|
||||
{SPR_PLAY, 13, 1, {NULL}, 0, 0, S_KART_DRIFT1_L}, // S_KART_DRIFT2_L N
|
||||
{SPR_PLAY, 13, 1, {NULL}, 0, 0, S_KART_DRIFT2_L_OUT}, // S_KART_DRIFT1_L_OUT N
|
||||
{SPR_PLAY, 14, 1, {NULL}, 0, 0, S_KART_DRIFT1_L_OUT}, // S_KART_DRIFT2_L_OUT O
|
||||
{SPR_PLAY, 13, 1, {NULL}, 0, 0, S_KART_DRIFT2_L_IN}, // S_KART_DRIFT1_L_IN N
|
||||
{SPR_PLAY, 15, 1, {NULL}, 0, 0, S_KART_DRIFT3_L_IN}, // S_KART_DRIFT2_L_IN P
|
||||
{SPR_PLAY, 13, 1, {NULL}, 0, 0, S_KART_DRIFT4_L_IN}, // S_KART_DRIFT3_L_IN N
|
||||
{SPR_PLAY, 16, 1, {NULL}, 0, 0, S_KART_DRIFT1_L_IN}, // S_KART_DRIFT4_L_IN Q
|
||||
{SPR_PLAY, 17, 1, {NULL}, 0, 0, S_KART_DRIFT2_R}, // S_KART_DRIFT1_R R
|
||||
{SPR_PLAY, 18, 1, {NULL}, 0, 0, S_KART_DRIFT1_R}, // S_KART_DRIFT2_R S
|
||||
{SPR_PLAY, 18, 1, {NULL}, 0, 0, S_KART_DRIFT2_R_OUT}, // S_KART_DRIFT1_R_OUT S
|
||||
{SPR_PLAY, 19, 1, {NULL}, 0, 0, S_KART_DRIFT1_R_OUT}, // S_KART_DRIFT2_R_OUT T
|
||||
{SPR_PLAY, 18, 1, {NULL}, 0, 0, S_KART_DRIFT2_R_IN}, // S_KART_DRIFT1_R_IN S
|
||||
{SPR_PLAY, 20, 1, {NULL}, 0, 0, S_KART_DRIFT3_R_IN}, // S_KART_DRIFT2_R_IN U
|
||||
{SPR_PLAY, 18, 1, {NULL}, 0, 0, S_KART_DRIFT4_R_IN}, // S_KART_DRIFT3_R_IN S
|
||||
{SPR_PLAY, 21, 1, {NULL}, 0, 0, S_KART_DRIFT1_R_IN}, // S_KART_DRIFT4_R_IN V
|
||||
{SPR_PLAY, 22, -1, {NULL}, 0, 0, S_KART_SPIN}, // S_KART_SPIN W
|
||||
{SPR_PLAY, 22, 350, {NULL}, 0, 0, S_KART_STILL1}, // S_KART_PAIN W
|
||||
{SPR_PLAY, 23, 350, {NULL}, 0, 0, S_KART_STILL1}, // S_KART_SQUISH X
|
||||
|
||||
{SPR_NULL, 0, -1, {NULL}, 0, 0, S_OBJPLACE_DUMMY}, //S_OBJPLACE_DUMMY
|
||||
|
||||
|
|
@ -192,7 +147,7 @@ state_t states[NUMSTATES] =
|
|||
{SPR_NULL, 0, 18, {NULL}, 0, 4, S_NULL}, // S_PLAY_ICON3
|
||||
|
||||
// Level end sign (uses player sprite)
|
||||
{SPR_PLAY, 18|FF_PAPERSPRITE, -1, {NULL}, 0, 0, S_PLAY_SIGN}, // S_PLAY_SIGN
|
||||
{SPR_PLAY, 24|FF_PAPERSPRITE, -1, {NULL}, 0, 0, S_PLAY_SIGN}, // S_PLAY_SIGN
|
||||
|
||||
// Blue Crawla
|
||||
{SPR_POSS, 0, 5, {A_Look}, 0, 0, S_POSS_STND}, // S_POSS_STND
|
||||
|
|
@ -3632,9 +3587,9 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
|
||||
{ // MT_PLAYER
|
||||
-1, // doomednum
|
||||
S_KART_STND1, // spawnstate
|
||||
S_KART_STILL1, // spawnstate
|
||||
1, // spawnhealth
|
||||
S_KART_WALK1, // seestate
|
||||
S_KART_FAST1, // seestate
|
||||
sfx_None, // seesound
|
||||
0, // reactiontime
|
||||
sfx_thok, // attacksound
|
||||
|
|
|
|||
114
src/info.h
114
src/info.h
|
|
@ -826,88 +826,52 @@ typedef enum state
|
|||
S_THOK,
|
||||
|
||||
// SRB2kart Frames
|
||||
S_KART_STND1,
|
||||
S_KART_STND2,
|
||||
S_KART_STND1_L,
|
||||
S_KART_STND2_L,
|
||||
S_KART_STND1_R,
|
||||
S_KART_STND2_R,
|
||||
S_KART_WALK1,
|
||||
S_KART_WALK2,
|
||||
S_KART_WALK1_L,
|
||||
S_KART_WALK2_L,
|
||||
S_KART_WALK1_R,
|
||||
S_KART_WALK2_R,
|
||||
S_KART_RUN1,
|
||||
S_KART_RUN2,
|
||||
S_KART_RUN1_L,
|
||||
S_KART_RUN2_L,
|
||||
S_KART_RUN1_R,
|
||||
S_KART_RUN2_R,
|
||||
S_KART_STILL1,
|
||||
S_KART_STILL2,
|
||||
S_KART_STILL1_L,
|
||||
S_KART_STILL2_L,
|
||||
S_KART_STILL1_R,
|
||||
S_KART_STILL2_R,
|
||||
|
||||
S_KART_SLOW1,
|
||||
S_KART_SLOW2,
|
||||
S_KART_SLOW1_L,
|
||||
S_KART_SLOW2_L,
|
||||
S_KART_SLOW1_R,
|
||||
S_KART_SLOW2_R,
|
||||
|
||||
S_KART_FAST1,
|
||||
S_KART_FAST2,
|
||||
S_KART_FAST1_L,
|
||||
S_KART_FAST2_L,
|
||||
S_KART_FAST1_R,
|
||||
S_KART_FAST2_R,
|
||||
|
||||
S_KART_DRIFT1_L,
|
||||
S_KART_DRIFT2_L,
|
||||
|
||||
S_KART_DRIFT1_L_OUT,
|
||||
S_KART_DRIFT2_L_OUT,
|
||||
|
||||
S_KART_DRIFT1_L_IN,
|
||||
S_KART_DRIFT2_L_IN,
|
||||
S_KART_DRIFT3_L_IN,
|
||||
S_KART_DRIFT4_L_IN,
|
||||
|
||||
S_KART_DRIFT1_R,
|
||||
S_KART_DRIFT2_R,
|
||||
|
||||
S_KART_DRIFT1_R_OUT,
|
||||
S_KART_DRIFT2_R_OUT,
|
||||
|
||||
S_KART_DRIFT1_R_IN,
|
||||
S_KART_DRIFT2_R_IN,
|
||||
S_KART_DRIFT3_R_IN,
|
||||
S_KART_DRIFT4_R_IN,
|
||||
|
||||
S_KART_SPIN,
|
||||
S_KART_PAIN,
|
||||
S_KART_SQUISH,
|
||||
/*
|
||||
S_PLAY_STND,
|
||||
S_PLAY_TAP1,
|
||||
S_PLAY_TAP2,
|
||||
S_PLAY_RUN1,
|
||||
S_PLAY_RUN2,
|
||||
S_PLAY_RUN3,
|
||||
S_PLAY_RUN4,
|
||||
S_PLAY_RUN5,
|
||||
S_PLAY_RUN6,
|
||||
S_PLAY_RUN7,
|
||||
S_PLAY_RUN8,
|
||||
S_PLAY_SPD1,
|
||||
S_PLAY_SPD2,
|
||||
S_PLAY_SPD3,
|
||||
S_PLAY_SPD4,
|
||||
S_PLAY_ATK1,
|
||||
S_PLAY_ATK2,
|
||||
S_PLAY_ATK3,
|
||||
S_PLAY_ATK4,
|
||||
S_PLAY_SPRING,
|
||||
S_PLAY_FALL1,
|
||||
S_PLAY_FALL2,
|
||||
S_PLAY_ABL1,
|
||||
S_PLAY_ABL2,
|
||||
S_PLAY_SPC1,
|
||||
S_PLAY_SPC2,
|
||||
S_PLAY_SPC3,
|
||||
S_PLAY_SPC4,
|
||||
S_PLAY_CLIMB1,
|
||||
S_PLAY_CLIMB2,
|
||||
S_PLAY_CLIMB3,
|
||||
S_PLAY_CLIMB4,
|
||||
S_PLAY_CLIMB5,
|
||||
S_PLAY_GASP,
|
||||
S_PLAY_PAIN,
|
||||
S_PLAY_DIE,
|
||||
S_PLAY_TEETER1,
|
||||
S_PLAY_TEETER2,
|
||||
S_PLAY_CARRY,
|
||||
S_PLAY_SUPERSTAND,
|
||||
S_PLAY_SUPERWALK1,
|
||||
S_PLAY_SUPERWALK2,
|
||||
S_PLAY_SUPERFLY1,
|
||||
S_PLAY_SUPERFLY2,
|
||||
S_PLAY_SUPERTEETER,
|
||||
S_PLAY_SUPERHIT,
|
||||
S_PLAY_SUPERTRANS1,
|
||||
S_PLAY_SUPERTRANS2,
|
||||
S_PLAY_SUPERTRANS3,
|
||||
S_PLAY_SUPERTRANS4,
|
||||
S_PLAY_SUPERTRANS5,
|
||||
S_PLAY_SUPERTRANS6,
|
||||
S_PLAY_SUPERTRANS7,
|
||||
S_PLAY_SUPERTRANS8,
|
||||
S_PLAY_SUPERTRANS9, // This has special significance in the code. If you add more frames, search for it and make the appropriate changes.
|
||||
*/
|
||||
|
||||
// technically the player goes here but it's an infinite tic state
|
||||
S_OBJPLACE_DUMMY,
|
||||
|
|
|
|||
216
src/k_kart.c
216
src/k_kart.c
|
|
@ -2458,49 +2458,183 @@ void K_RespawnChecker(player_t *player)
|
|||
*/
|
||||
void K_KartMoveAnimation(player_t *player)
|
||||
{
|
||||
const INT16 minturn = KART_FULLTURN/8;
|
||||
SINT8 turndir = 0;
|
||||
|
||||
const fixed_t fastspeed = (K_GetKartSpeed(player, false) * 17) / 20; // 85%
|
||||
const fixed_t speedthreshold = player->mo->scale / 8;
|
||||
|
||||
const boolean onground = P_IsObjectOnGround(player->mo);
|
||||
|
||||
ticcmd_t *cmd = &player->cmd;
|
||||
// Standing frames - S_KART_STND1 S_KART_STND1_L S_KART_STND1_R
|
||||
if (player->speed == 0)
|
||||
const boolean spinningwheels = ((cmd->buttons & BT_ACCELERATE) || (onground && player->speed > 0));
|
||||
|
||||
if (cmd->driftturn < -minturn)
|
||||
{
|
||||
if (cmd->driftturn < 0 && !(player->mo->state >= &states[S_KART_STND1_R] && player->mo->state <= &states[S_KART_STND2_R]))
|
||||
P_SetPlayerMobjState(player->mo, S_KART_STND1_R);
|
||||
else if (cmd->driftturn > 0 && !(player->mo->state >= &states[S_KART_STND1_L] && player->mo->state <= &states[S_KART_STND2_L]))
|
||||
P_SetPlayerMobjState(player->mo, S_KART_STND1_L);
|
||||
else if (cmd->driftturn == 0 && !(player->mo->state >= &states[S_KART_STND1] && player->mo->state <= &states[S_KART_STND2]))
|
||||
P_SetPlayerMobjState(player->mo, S_KART_STND1);
|
||||
turndir = -1;
|
||||
}
|
||||
// Drifting Left - S_KART_DRIFT1_L
|
||||
else if (player->kartstuff[k_drift] > 0 && P_IsObjectOnGround(player->mo))
|
||||
else if (cmd->driftturn > minturn)
|
||||
{
|
||||
if (!(player->mo->state >= &states[S_KART_DRIFT1_L] && player->mo->state <= &states[S_KART_DRIFT2_L]))
|
||||
P_SetPlayerMobjState(player->mo, S_KART_DRIFT1_L);
|
||||
turndir = 1;
|
||||
}
|
||||
// Drifting Right - S_KART_DRIFT1_R
|
||||
else if (player->kartstuff[k_drift] < 0 && P_IsObjectOnGround(player->mo))
|
||||
|
||||
if (!onground)
|
||||
{
|
||||
if (!(player->mo->state >= &states[S_KART_DRIFT1_R] && player->mo->state <= &states[S_KART_DRIFT2_R]))
|
||||
P_SetPlayerMobjState(player->mo, S_KART_DRIFT1_R);
|
||||
// Only use certain frames in the air, to make it look like your tires are spinning fruitlessly!
|
||||
|
||||
if (player->kartstuff[k_drift] > 0)
|
||||
{
|
||||
if (!spinningwheels || !(player->mo->state >= &states[S_KART_DRIFT1_L] && player->mo->state <= &states[S_KART_DRIFT2_L]))
|
||||
{
|
||||
// Neutral drift
|
||||
P_SetPlayerMobjState(player->mo, S_KART_DRIFT1_L);
|
||||
}
|
||||
}
|
||||
else if (player->kartstuff[k_drift] > 0)
|
||||
{
|
||||
if (!spinningwheels || !(player->mo->state >= &states[S_KART_DRIFT1_R] && player->mo->state <= &states[S_KART_DRIFT2_R]))
|
||||
{
|
||||
// Neutral drift
|
||||
P_SetPlayerMobjState(player->mo, S_KART_DRIFT1_R);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((turndir == -1)
|
||||
&& (!spinningwheels || !(player->mo->state >= &states[S_KART_FAST1_R] && player->mo->state <= &states[S_KART_FAST2_R])))
|
||||
{
|
||||
P_SetPlayerMobjState(player->mo, S_KART_FAST2_R);
|
||||
}
|
||||
else if ((turndir == 1)
|
||||
&& (!spinningwheels || !(player->mo->state >= &states[S_KART_FAST1_L] && player->mo->state <= &states[S_KART_FAST2_L])))
|
||||
{
|
||||
P_SetPlayerMobjState(player->mo, S_KART_FAST2_L);
|
||||
}
|
||||
else if ((turndir == 0)
|
||||
&& (!spinningwheels || !(player->mo->state >= &states[S_KART_FAST1] && player->mo->state <= &states[S_KART_FAST2])))
|
||||
{
|
||||
P_SetPlayerMobjState(player->mo, S_KART_FAST2);
|
||||
}
|
||||
}
|
||||
}
|
||||
// Run frames - S_KART_RUN1 S_KART_RUN1_L S_KART_RUN1_R
|
||||
else if (player->speed > (20*player->mo->scale))
|
||||
else
|
||||
{
|
||||
if (cmd->driftturn < 0 && !(player->mo->state >= &states[S_KART_RUN1_R] && player->mo->state <= &states[S_KART_RUN2_R]))
|
||||
P_SetPlayerMobjState(player->mo, S_KART_RUN1_R);
|
||||
else if (cmd->driftturn > 0 && !(player->mo->state >= &states[S_KART_RUN1_L] && player->mo->state <= &states[S_KART_RUN2_L]))
|
||||
P_SetPlayerMobjState(player->mo, S_KART_RUN1_L);
|
||||
else if (cmd->driftturn == 0 && !(player->mo->state >= &states[S_KART_RUN1] && player->mo->state <= &states[S_KART_RUN2]))
|
||||
P_SetPlayerMobjState(player->mo, S_KART_RUN1);
|
||||
}
|
||||
// Walk frames - S_KART_WALK1 S_KART_WALK1_L S_KART_WALK1_R
|
||||
else if (player->speed <= (20*player->mo->scale))
|
||||
{
|
||||
if (cmd->driftturn < 0 && !(player->mo->state >= &states[S_KART_WALK1_R] && player->mo->state <= &states[S_KART_WALK2_R]))
|
||||
P_SetPlayerMobjState(player->mo, S_KART_WALK1_R);
|
||||
else if (cmd->driftturn > 0 && !(player->mo->state >= &states[S_KART_WALK1_L] && player->mo->state <= &states[S_KART_WALK2_L]))
|
||||
P_SetPlayerMobjState(player->mo, S_KART_WALK1_L);
|
||||
else if (cmd->driftturn == 0 && !(player->mo->state >= &states[S_KART_WALK1] && player->mo->state <= &states[S_KART_WALK2]))
|
||||
P_SetPlayerMobjState(player->mo, S_KART_WALK1);
|
||||
if (player->kartstuff[k_drift] > 0)
|
||||
{
|
||||
// Drifting LEFT!
|
||||
|
||||
if ((turndir == -1)
|
||||
&& !(player->mo->state >= &states[S_KART_DRIFT1_L_OUT] && player->mo->state <= &states[S_KART_DRIFT2_L_OUT]))
|
||||
{
|
||||
// Right -- outwards drift
|
||||
P_SetPlayerMobjState(player->mo, S_KART_DRIFT1_L_OUT);
|
||||
}
|
||||
else if ((turndir == 1)
|
||||
&& !(player->mo->state >= &states[S_KART_DRIFT1_L_IN] && player->mo->state <= &states[S_KART_DRIFT4_L_IN]))
|
||||
{
|
||||
// Left -- inwards drift
|
||||
P_SetPlayerMobjState(player->mo, S_KART_DRIFT1_L_IN);
|
||||
}
|
||||
else if ((turndir == 0)
|
||||
&& !(player->mo->state >= &states[S_KART_DRIFT1_L] && player->mo->state <= &states[S_KART_DRIFT2_L]))
|
||||
{
|
||||
// Neutral drift
|
||||
P_SetPlayerMobjState(player->mo, S_KART_DRIFT1_L);
|
||||
}
|
||||
}
|
||||
else if (player->kartstuff[k_drift] < 0)
|
||||
{
|
||||
// Drifting RIGHT!
|
||||
|
||||
if ((turndir == -1)
|
||||
&& !(player->mo->state >= &states[S_KART_DRIFT1_R_IN] && player->mo->state <= &states[S_KART_DRIFT4_R_IN]))
|
||||
{
|
||||
// Right -- inwards drift
|
||||
P_SetPlayerMobjState(player->mo, S_KART_DRIFT1_R_IN);
|
||||
}
|
||||
else if ((turndir == 1)
|
||||
&& !(player->mo->state >= &states[S_KART_DRIFT1_R_OUT] && player->mo->state <= &states[S_KART_DRIFT2_R_OUT]))
|
||||
{
|
||||
// Left -- outwards drift
|
||||
P_SetPlayerMobjState(player->mo, S_KART_DRIFT1_R_OUT);
|
||||
}
|
||||
else if ((turndir == 0)
|
||||
&& !(player->mo->state >= &states[S_KART_DRIFT1_R] && player->mo->state <= &states[S_KART_DRIFT2_R]))
|
||||
{
|
||||
// Neutral drift
|
||||
P_SetPlayerMobjState(player->mo, S_KART_DRIFT1_R);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (player->speed >= fastspeed && player->speed >= (player->lastspeed - speedthreshold))
|
||||
{
|
||||
// Going REAL fast!
|
||||
|
||||
if ((turndir == -1)
|
||||
&& !(player->mo->state >= &states[S_KART_FAST1_R] && player->mo->state <= &states[S_KART_FAST2_R]))
|
||||
{
|
||||
P_SetPlayerMobjState(player->mo, S_KART_FAST1_R);
|
||||
}
|
||||
else if ((turndir == 1)
|
||||
&& !(player->mo->state >= &states[S_KART_FAST1_L] && player->mo->state <= &states[S_KART_FAST2_L]))
|
||||
{
|
||||
P_SetPlayerMobjState(player->mo, S_KART_FAST1_L);
|
||||
}
|
||||
else if ((turndir == 0)
|
||||
&& !(player->mo->state >= &states[S_KART_FAST1] && player->mo->state <= &states[S_KART_FAST2]))
|
||||
{
|
||||
P_SetPlayerMobjState(player->mo, S_KART_FAST1);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (spinningwheels)
|
||||
{
|
||||
// Drivin' slow.
|
||||
|
||||
if ((turndir == -1)
|
||||
&& !(player->mo->state >= &states[S_KART_SLOW1_R] && player->mo->state <= &states[S_KART_SLOW2_R]))
|
||||
{
|
||||
P_SetPlayerMobjState(player->mo, S_KART_SLOW1_R);
|
||||
}
|
||||
else if ((turndir == 1)
|
||||
&& !(player->mo->state >= &states[S_KART_SLOW1_L] && player->mo->state <= &states[S_KART_SLOW2_L]))
|
||||
{
|
||||
P_SetPlayerMobjState(player->mo, S_KART_SLOW1_L);
|
||||
}
|
||||
else if ((turndir == 0)
|
||||
&& !(player->mo->state >= &states[S_KART_SLOW1] && player->mo->state <= &states[S_KART_SLOW2]))
|
||||
{
|
||||
P_SetPlayerMobjState(player->mo, S_KART_SLOW1);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Completely still.
|
||||
|
||||
if ((turndir == -1)
|
||||
&& !(player->mo->state >= &states[S_KART_STILL1_R] && player->mo->state <= &states[S_KART_STILL2_R]))
|
||||
{
|
||||
P_SetPlayerMobjState(player->mo, S_KART_STILL1_R);
|
||||
}
|
||||
else if ((turndir == 1)
|
||||
&& !(player->mo->state >= &states[S_KART_STILL1_L] && player->mo->state <= &states[S_KART_STILL2_L]))
|
||||
{
|
||||
P_SetPlayerMobjState(player->mo, S_KART_STILL1_L);
|
||||
}
|
||||
else if ((turndir == 0)
|
||||
&& !(player->mo->state >= &states[S_KART_STILL1] && player->mo->state <= &states[S_KART_STILL2]))
|
||||
{
|
||||
P_SetPlayerMobjState(player->mo, S_KART_STILL1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Update lastspeed value -- we use to display slow driving frames instead of fast driving when slowing down.
|
||||
player->lastspeed = player->speed;
|
||||
}
|
||||
|
||||
static void K_TauntVoiceTimers(player_t *player)
|
||||
|
|
@ -5976,6 +6110,7 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd)
|
|||
player->mo->z + (player->mo->height/2) + (P_RandomRange(-20,20) * player->mo->scale),
|
||||
MT_FASTLINE);
|
||||
|
||||
P_SetTarget(&fast->target, player->mo);
|
||||
fast->angle = R_PointToAngle2(0, 0, player->mo->momx, player->mo->momy);
|
||||
fast->momx = 3*player->mo->momx/4;
|
||||
fast->momy = 3*player->mo->momy/4;
|
||||
|
|
@ -6895,6 +7030,11 @@ static INT16 K_GetKartDriftValue(player_t *player, fixed_t countersteer)
|
|||
basedrift += (basedrift / greasetics) * player->kartstuff[k_tiregrease];
|
||||
}
|
||||
|
||||
if (player->mo->eflags & (MFE_UNDERWATER|MFE_TOUCHWATER))
|
||||
{
|
||||
countersteer = 3*countersteer/2;
|
||||
}
|
||||
|
||||
return basedrift + (FixedMul(driftadjust * FRACUNIT, countersteer) / FRACUNIT);
|
||||
}
|
||||
|
||||
|
|
@ -6939,6 +7079,11 @@ INT16 K_GetKartTurnValue(player_t *player, INT16 turnvalue)
|
|||
turnvalue = 5*turnvalue/4;
|
||||
}
|
||||
|
||||
if (player->mo->eflags & (MFE_UNDERWATER|MFE_TOUCHWATER))
|
||||
{
|
||||
turnvalue = 3*turnvalue/2;
|
||||
}
|
||||
|
||||
turnvalue = FixedMul(turnvalue * FRACUNIT, weightadjust) / FRACUNIT; // Weight has a small effect on turning
|
||||
|
||||
return turnvalue;
|
||||
|
|
@ -8056,6 +8201,9 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
|
|||
if (G_BattleGametype() && player->kartstuff[k_bumper] <= 0)
|
||||
player->mo->friction += 1228;
|
||||
|
||||
if (player->mo->eflags & (MFE_UNDERWATER|MFE_TOUCHWATER))
|
||||
player->mo->friction += 614;
|
||||
|
||||
// Wipeout slowdown
|
||||
if (player->kartstuff[k_spinouttimer] && player->kartstuff[k_wipeoutslow])
|
||||
{
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@
|
|||
#include "d_player.h"
|
||||
#include "g_game.h"
|
||||
#include "p_local.h"
|
||||
#include "d_clisrv.h"
|
||||
|
||||
#include "lua_script.h"
|
||||
#include "lua_libs.h"
|
||||
|
|
@ -387,6 +388,8 @@ static int player_get(lua_State *L)
|
|||
else if (fastcmp(field,"fovadd"))
|
||||
lua_pushfixed(L, plr->fovadd);
|
||||
#endif
|
||||
else if (fastcmp(field,"ping"))
|
||||
lua_pushinteger(L, playerpingtable[( plr - players )]);
|
||||
else {
|
||||
lua_getfield(L, LUA_REGISTRYINDEX, LREG_EXTVARS);
|
||||
I_Assert(lua_istable(L, -1));
|
||||
|
|
|
|||
|
|
@ -1308,7 +1308,7 @@ void Command_ObjectPlace_f(void)
|
|||
op_oldmomy = players[0].mo->momy;
|
||||
op_oldmomz = players[0].mo->momz;
|
||||
op_oldheight = players[0].mo->height;
|
||||
op_oldstate = S_KART_STND1; // SRB2kart - was S_PLAY_STND
|
||||
op_oldstate = S_KART_STILL1; // SRB2kart - was S_PLAY_STND
|
||||
op_oldcolor = players[0].mo->color; // save color too in case of super/fireflower
|
||||
|
||||
// Remove ALL flags and motion.
|
||||
|
|
|
|||
|
|
@ -8561,6 +8561,7 @@ static void SpawnSPBSpeedLines(mobj_t *actor)
|
|||
actor->z + (actor->height/2) + (P_RandomRange(-24,24) * actor->scale),
|
||||
MT_FASTLINE);
|
||||
|
||||
P_SetTarget(&fast->target, actor);
|
||||
fast->angle = R_PointToAngle2(0, 0, actor->momx, actor->momy);
|
||||
fast->color = SKINCOLOR_RED;
|
||||
fast->colorized = true;
|
||||
|
|
|
|||
|
|
@ -1159,7 +1159,7 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
|
|||
|
||||
P_ResetPlayer(player);
|
||||
|
||||
P_SetPlayerMobjState(toucher, S_KART_STND1); // SRB2kart - was S_PLAY_FALL1
|
||||
P_SetPlayerMobjState(toucher, S_KART_STILL1); // SRB2kart - was S_PLAY_FALL1
|
||||
}
|
||||
}
|
||||
return;
|
||||
|
|
@ -1455,7 +1455,7 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
|
|||
if (player->pflags & PF_GLIDING)
|
||||
{
|
||||
player->pflags &= ~(PF_GLIDING|PF_JUMPED);
|
||||
P_SetPlayerMobjState(toucher, S_KART_STND1); // SRB2kart - was S_PLAY_FALL1
|
||||
P_SetPlayerMobjState(toucher, S_KART_STILL1); // SRB2kart - was S_PLAY_FALL1
|
||||
}
|
||||
|
||||
// Play a bounce sound?
|
||||
|
|
@ -1522,7 +1522,7 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
|
|||
if (player->pflags & PF_GLIDING)
|
||||
{
|
||||
player->pflags &= ~(PF_GLIDING|PF_JUMPED);
|
||||
P_SetPlayerMobjState(toucher, S_KART_STND1); // SRB2kart - was S_PLAY_FALL1
|
||||
P_SetPlayerMobjState(toucher, S_KART_STILL1); // SRB2kart - was S_PLAY_FALL1
|
||||
}
|
||||
|
||||
// Play a bounce sound?
|
||||
|
|
@ -1578,7 +1578,7 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
|
|||
{
|
||||
player->pflags |= PF_MACESPIN;
|
||||
S_StartSound(toucher, sfx_spin);
|
||||
P_SetPlayerMobjState(toucher, S_KART_STND1); // SRB2kart - was S_PLAY_ATK1
|
||||
P_SetPlayerMobjState(toucher, S_KART_STILL1); // SRB2kart - was S_PLAY_ATK1
|
||||
}
|
||||
else
|
||||
player->pflags |= PF_ITEMHANG;
|
||||
|
|
|
|||
53
src/p_mobj.c
53
src/p_mobj.c
|
|
@ -211,11 +211,11 @@ boolean P_SetPlayerMobjState(mobj_t *mobj, statenum_t state)
|
|||
// Set animation state
|
||||
// The pflags version of this was just as convoluted.
|
||||
// Rewriten for SRB2kart ... though I don't know what this is.
|
||||
if ((state >= S_KART_STND1 && state <= S_KART_STND2_R) || state == S_KART_SQUISH || state == S_KART_SPIN)
|
||||
if ((state >= S_KART_STILL1 && state <= S_KART_STILL2_R) || state == S_KART_SQUISH || state == S_KART_SPIN)
|
||||
player->panim = PA_IDLE;
|
||||
else if (state >= S_KART_WALK1 && state <= S_KART_WALK2_R)
|
||||
else if (state >= S_KART_SLOW1 && state <= S_KART_SLOW2_R)
|
||||
player->panim = PA_WALK;
|
||||
else if (state >= S_KART_RUN1 && state <= S_KART_DRIFT2_R)
|
||||
else if (state >= S_KART_FAST1 && state <= S_KART_DRIFT2_R)
|
||||
player->panim = PA_RUN;
|
||||
//else if (state >= S_PLAY_ATK1 && state <= S_PLAY_ATK4)
|
||||
// player->panim = PA_ROLL;
|
||||
|
|
@ -1248,29 +1248,45 @@ fixed_t P_GetMobjGravity(mobj_t *mo)
|
|||
}
|
||||
|
||||
// Less gravity underwater.
|
||||
if (mo->eflags & MFE_UNDERWATER && !goopgravity)
|
||||
gravityadd = gravityadd/3;
|
||||
if ((mo->eflags & MFE_UNDERWATER) && !goopgravity)
|
||||
{
|
||||
if (mo->momz * P_MobjFlip(mo) <= 0)
|
||||
{
|
||||
gravityadd = 4*gravityadd/3;
|
||||
}
|
||||
else
|
||||
{
|
||||
gravityadd = gravityadd/3;
|
||||
}
|
||||
}
|
||||
|
||||
if (mo->player)
|
||||
{
|
||||
//if ((mo->player->pflags & PF_GLIDING)
|
||||
//|| (mo->player->charability == CA_FLY && (mo->player->powers[pw_tailsfly]
|
||||
// || (mo->state >= &states[S_PLAY_SPC1] && mo->state <= &states[S_PLAY_SPC4]))))
|
||||
// gravityadd = gravityadd/3; // less gravity while flying/gliding
|
||||
if (mo->player->climbing || (mo->player->pflags & PF_NIGHTSMODE))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!(mo->flags2 & MF2_OBJECTFLIP) != !(mo->player->powers[pw_gravityboots])) // negated to turn numeric into bool - would be double negated, but not needed if both would be
|
||||
{
|
||||
gravityadd = -gravityadd;
|
||||
mo->eflags ^= MFE_VERTICALFLIP;
|
||||
}
|
||||
|
||||
if (wasflip == !(mo->eflags & MFE_VERTICALFLIP)) // note!! == ! is not equivalent to != here - turns numeric into bool this way
|
||||
{
|
||||
P_PlayerFlip(mo);
|
||||
}
|
||||
|
||||
if (mo->player->kartstuff[k_pogospring])
|
||||
{
|
||||
gravityadd = (5*gravityadd)/2;
|
||||
}
|
||||
|
||||
if (mo->player->kartstuff[k_waterskip])
|
||||
{
|
||||
gravityadd = (4*gravityadd)/3;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -1278,10 +1294,15 @@ fixed_t P_GetMobjGravity(mobj_t *mo)
|
|||
if (mo->flags2 & MF2_OBJECTFLIP)
|
||||
{
|
||||
mo->eflags |= MFE_VERTICALFLIP;
|
||||
|
||||
if (mo->z + mo->height >= mo->ceilingz)
|
||||
{
|
||||
gravityadd = 0;
|
||||
}
|
||||
else if (gravityadd < 0) // Don't sink, only rise up
|
||||
gravityadd *= -1;
|
||||
{
|
||||
gravityadd = -gravityadd;
|
||||
}
|
||||
}
|
||||
else //Otherwise, sort through the other exceptions.
|
||||
{
|
||||
|
|
@ -1316,7 +1337,7 @@ fixed_t P_GetMobjGravity(mobj_t *mo)
|
|||
}
|
||||
break;
|
||||
case MT_WATERDROP:
|
||||
gravityadd >>= 1;
|
||||
gravityadd /= 2;
|
||||
break;
|
||||
case MT_BANANA:
|
||||
case MT_EGGMANITEM:
|
||||
|
|
@ -1341,7 +1362,9 @@ fixed_t P_GetMobjGravity(mobj_t *mo)
|
|||
|
||||
// Goop has slower, reversed gravity
|
||||
if (goopgravity)
|
||||
{
|
||||
gravityadd = -gravityadd/5;
|
||||
}
|
||||
|
||||
gravityadd = FixedMul(gravityadd, mo->scale);
|
||||
|
||||
|
|
@ -1445,7 +1468,7 @@ static void P_XYFriction(mobj_t *mo, fixed_t oldx, fixed_t oldy)
|
|||
{
|
||||
// if in a walking frame, stop moving
|
||||
if (player->panim == PA_WALK && player->kartstuff[k_spinouttimer] == 0)
|
||||
P_SetPlayerMobjState(mo, S_KART_STND1); // SRB2kart - was S_PLAY_STND
|
||||
P_SetPlayerMobjState(mo, S_KART_STILL1); // SRB2kart - was S_PLAY_STND
|
||||
mo->momx = player->cmomx;
|
||||
mo->momy = player->cmomy;
|
||||
}
|
||||
|
|
@ -2735,7 +2758,7 @@ static void P_PlayerZMovement(mobj_t *mo)
|
|||
// Get up if you fell.
|
||||
if ((mo->state == &states[mo->info->painstate] || mo->state == &states[S_KART_SPIN])
|
||||
&& mo->player->kartstuff[k_spinouttimer] == 0 && mo->player->kartstuff[k_squishedtimer] == 0) // SRB2kart
|
||||
P_SetPlayerMobjState(mo, S_KART_STND1);
|
||||
P_SetPlayerMobjState(mo, S_KART_STILL1);
|
||||
|
||||
#ifdef ESLOPE
|
||||
if (!mo->standingslope && (mo->eflags & MFE_VERTICALFLIP ? tmceilingslope : tmfloorslope)) {
|
||||
|
|
@ -3848,7 +3871,7 @@ static void P_PlayerMobjThinker(mobj_t *mobj)
|
|||
{
|
||||
mobj->player->secondjump = 0;
|
||||
mobj->player->powers[pw_tailsfly] = 0;
|
||||
P_SetPlayerMobjState(mobj, S_KART_WALK1); // SRB2kart - was S_PLAY_RUN1
|
||||
P_SetPlayerMobjState(mobj, S_KART_SLOW1); // SRB2kart - was S_PLAY_RUN1
|
||||
}
|
||||
mobj->eflags &= ~MFE_JUSTHITFLOOR;
|
||||
}
|
||||
|
|
@ -11927,7 +11950,7 @@ void P_AfterPlayerSpawn(INT32 playernum)
|
|||
else
|
||||
p->viewz = p->mo->z + p->viewheight;
|
||||
|
||||
P_SetPlayerMobjState(p->mo, S_KART_STND1); // SRB2kart - was S_PLAY_STND
|
||||
P_SetPlayerMobjState(p->mo, S_KART_STILL1); // SRB2kart - was S_PLAY_STND
|
||||
p->pflags &= ~PF_SPINNING;
|
||||
|
||||
if (playernum == consoleplayer)
|
||||
|
|
|
|||
10
src/p_spec.c
10
src/p_spec.c
|
|
@ -2875,7 +2875,7 @@ static void P_ProcessLineSpecial(line_t *line, mobj_t *mo, sector_t *callsec)
|
|||
mo->player->rmomx = mo->player->rmomy = 1;
|
||||
mo->player->cmomx = mo->player->cmomy = 0;
|
||||
P_ResetPlayer(mo->player);
|
||||
P_SetPlayerMobjState(mo, S_KART_STND1); // SRB2kart - was S_PLAY_STND
|
||||
P_SetPlayerMobjState(mo, S_KART_STILL1);
|
||||
}
|
||||
break;
|
||||
|
||||
|
|
@ -4314,8 +4314,8 @@ DoneSection2:
|
|||
player->pflags &= ~PF_GLIDING;
|
||||
player->climbing = 0;
|
||||
|
||||
if (!(player->mo->state >= &states[S_KART_RUN1] && player->mo->state <= &states[S_KART_RUN2]))
|
||||
P_SetPlayerMobjState(player->mo, S_KART_RUN1);
|
||||
if (!(player->mo->state >= &states[S_KART_FAST1] && player->mo->state <= &states[S_KART_FAST2]))
|
||||
P_SetPlayerMobjState(player->mo, S_KART_FAST1);
|
||||
|
||||
//if (!(player->mo->state >= &states[S_PLAY_ATK1] && player->mo->state <= &states[S_PLAY_ATK4])) // SRB2kart
|
||||
//{
|
||||
|
|
@ -4389,8 +4389,8 @@ DoneSection2:
|
|||
player->pflags &= ~PF_SPINNING; // SRB2kart 200117
|
||||
player->pflags &= ~PF_JUMPED;
|
||||
|
||||
if (!(player->mo->state >= &states[S_KART_RUN1] && player->mo->state <= &states[S_KART_RUN2]))
|
||||
P_SetPlayerMobjState(player->mo, S_KART_RUN1);
|
||||
if (!(player->mo->state >= &states[S_KART_FAST1] && player->mo->state <= &states[S_KART_FAST2]))
|
||||
P_SetPlayerMobjState(player->mo, S_KART_FAST1);
|
||||
|
||||
//if (!(player->mo->state >= &states[S_PLAY_ATK1] && player->mo->state <= &states[S_PLAY_ATK4])) // SRB2kart
|
||||
//{
|
||||
|
|
|
|||
|
|
@ -100,7 +100,7 @@ void P_MixUp(mobj_t *thing, fixed_t x, fixed_t y, fixed_t z, angle_t angle,
|
|||
thing->player->starpostnum = starpostnum;
|
||||
|
||||
P_ResetPlayer(thing->player);
|
||||
P_SetPlayerMobjState(thing, S_KART_STND1); // SRB2kart - was S_PLAY_STND
|
||||
P_SetPlayerMobjState(thing, S_KART_STILL1); // SRB2kart - was S_PLAY_STND
|
||||
|
||||
P_FlashPal(thing->player, PAL_MIXUP, 10);
|
||||
}
|
||||
|
|
@ -185,7 +185,7 @@ boolean P_Teleport(mobj_t *thing, fixed_t x, fixed_t y, fixed_t z, angle_t angle
|
|||
thing->player->rmomx = thing->player->rmomy = 0;
|
||||
thing->player->speed = 0;
|
||||
P_ResetPlayer(thing->player);
|
||||
P_SetPlayerMobjState(thing, S_KART_STND1); // SRB2kart - was S_PLAY_STND
|
||||
P_SetPlayerMobjState(thing, S_KART_STILL1); // SRB2kart - was S_PLAY_STND
|
||||
}
|
||||
|
||||
if (flash)
|
||||
|
|
|
|||
32
src/p_user.c
32
src/p_user.c
|
|
@ -2933,7 +2933,7 @@ static void P_DoClimbing(player_t *player) // SRB2kart - unused
|
|||
if (player->climbing && P_IsObjectOnGround(player->mo))
|
||||
{
|
||||
P_ResetPlayer(player);
|
||||
P_SetPlayerMobjState(player->mo, S_KART_STND1); // SRB2kart
|
||||
P_SetPlayerMobjState(player->mo, S_KART_STILL1); // SRB2kart
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -3639,7 +3639,7 @@ static void P_DoSpinDash(player_t *player, ticcmd_t *cmd) // SRB2kart - unused.
|
|||
{
|
||||
player->skidtime = 0;
|
||||
player->pflags &= ~PF_SPINNING;
|
||||
P_SetPlayerMobjState(player->mo, S_KART_STND1);
|
||||
P_SetPlayerMobjState(player->mo, S_KART_STILL1);
|
||||
player->mo->momx = player->cmomx;
|
||||
player->mo->momy = player->cmomy;
|
||||
}
|
||||
|
|
@ -3835,14 +3835,14 @@ static void P_2dMovement(player_t *player)
|
|||
else if (player->exiting)
|
||||
{
|
||||
player->pflags &= ~PF_GLIDING;
|
||||
P_SetPlayerMobjState(player->mo, S_KART_WALK1); // SRB2kart - was S_PLAY_RUN1
|
||||
P_SetPlayerMobjState(player->mo, S_KART_SLOW1); // SRB2kart - was S_PLAY_RUN1
|
||||
player->skidtime = 0;
|
||||
}
|
||||
}
|
||||
if (player->pflags & PF_SPINNING && !player->exiting)
|
||||
{
|
||||
player->pflags &= ~PF_SPINNING;
|
||||
P_SetPlayerMobjState(player->mo, S_KART_STND1); // SRB2kart - was S_PLAY_STND
|
||||
P_SetPlayerMobjState(player->mo, S_KART_STILL1); // SRB2kart - was S_PLAY_STND
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -5831,18 +5831,18 @@ static void P_MovePlayer(player_t *player)
|
|||
// If the player is moving fast enough,
|
||||
// break into a run!
|
||||
if (player->speed >= runspd && player->panim == PA_WALK && !player->skidtime && (onground || player->powers[pw_super]))
|
||||
P_SetPlayerMobjState (player->mo, S_KART_RUN1); // SRB2kart - was S_PLAY_SPD1
|
||||
P_SetPlayerMobjState (player->mo, S_KART_FAST1); // SRB2kart - was S_PLAY_SPD1
|
||||
|
||||
// Otherwise, just walk.
|
||||
else if ((player->rmomx || player->rmomy) && player->panim == PA_IDLE)
|
||||
P_SetPlayerMobjState (player->mo, S_KART_WALK1); // SRB2kart - was S_PLAY_RUN1
|
||||
P_SetPlayerMobjState (player->mo, S_KART_SLOW1); // SRB2kart - was S_PLAY_RUN1
|
||||
}
|
||||
*/
|
||||
|
||||
// If your running animation is playing, and you're
|
||||
// going too slow, switch back to the walking frames.
|
||||
//if (player->panim == PA_RUN && player->speed < runspd && player->kartstuff[k_spinouttimer] == 0)
|
||||
//P_SetPlayerMobjState(player->mo, S_KART_WALK1); // SRB2kart - was S_PLAY_RUN1
|
||||
//P_SetPlayerMobjState(player->mo, S_KART_SLOW1); // SRB2kart - was S_PLAY_RUN1
|
||||
|
||||
// If Springing, but travelling DOWNWARD, change back!
|
||||
//if (player->mo->state == &states[S_PLAY_SPRING] && P_MobjFlip(player->mo)*player->mo->momz < 0)
|
||||
|
|
@ -5890,17 +5890,23 @@ static void P_MovePlayer(player_t *player)
|
|||
K_KartMoveAnimation(player);
|
||||
|
||||
if (player->kartstuff[k_pogospring])
|
||||
{
|
||||
player->frameangle += ANGLE_22h;
|
||||
}
|
||||
else
|
||||
{
|
||||
player->frameangle = player->mo->angle;
|
||||
|
||||
if (player->kartstuff[k_drift] != 0)
|
||||
{
|
||||
INT32 a = (ANGLE_45 / 5) * player->kartstuff[k_drift];
|
||||
player->frameangle += a;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
player->mo->movefactor = FRACUNIT; // We're not going to do any more with this, so let's change it back for the next frame.
|
||||
|
||||
// If you are stopped and are still walking, stand still!
|
||||
if (!player->mo->momx && !player->mo->momy && !player->mo->momz && player->panim == PA_WALK)
|
||||
P_SetPlayerMobjState(player->mo, S_KART_STND1); // SRB2kart - was S_PLAY_STND
|
||||
|
||||
//{ SRB2kart
|
||||
|
||||
// Drifting sound
|
||||
|
|
@ -5930,7 +5936,7 @@ static void P_MovePlayer(player_t *player)
|
|||
player->jumping = 0;
|
||||
player->secondjump = 0;
|
||||
player->pflags &= ~PF_THOKKED;
|
||||
P_SetPlayerMobjState(player->mo, S_KART_STND1); // SRB2kart - was S_PLAY_STND
|
||||
P_SetPlayerMobjState(player->mo, S_KART_STILL1); // SRB2kart - was S_PLAY_STND
|
||||
}
|
||||
|
||||
if (/*!(player->charability == CA_GLIDEANDCLIMB) ||*/ player->gotflag) // If you can't glide, then why the heck would you be gliding?
|
||||
|
|
@ -8701,7 +8707,7 @@ void P_PlayerThink(player_t *player)
|
|||
|
||||
if (player->powers[pw_ingoop])
|
||||
{
|
||||
if (player->mo->state == &states[S_KART_STND1]) // SRB2kart - was S_PLAY_STND
|
||||
if (player->mo->state == &states[S_KART_STILL1]) // SRB2kart - was S_PLAY_STND
|
||||
player->mo->tics = 2;
|
||||
|
||||
player->powers[pw_ingoop]--;
|
||||
|
|
|
|||
|
|
@ -1147,7 +1147,7 @@ void R_SetupFrame(player_t *player, boolean skybox)
|
|||
aimingangle = player->aiming;
|
||||
viewangle = viewmobj->angle;
|
||||
|
||||
if (/*!demo.playback && */player->playerstate != PST_DEAD)
|
||||
if (!demo.playback && player->playerstate != PST_DEAD)
|
||||
{
|
||||
if (player == &players[consoleplayer])
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1173,7 +1173,10 @@ void I_StartupSound(void)
|
|||
const char *sdrv_name = NULL;
|
||||
#endif
|
||||
#ifndef HAVE_MIXER
|
||||
midi_disabled = digital_disabled = true;
|
||||
#ifndef NO_MIDI
|
||||
midi_disabled =
|
||||
#endif
|
||||
digital_disabled = true;
|
||||
#endif
|
||||
|
||||
memset(channels, 0, sizeof (channels)); //Alam: Clean it
|
||||
|
|
|
|||
|
|
@ -1797,10 +1797,12 @@ static void ST_doItemFinderIconsAndSound(void) // SRB2kart - unused.
|
|||
//
|
||||
static void ST_overlayDrawer(void)
|
||||
{
|
||||
/* SRB2kart doesn't need this stuff
|
||||
//hu_showscores = auto hide score/time/rings when tab rankings are shown
|
||||
if (!(hu_showscores && (netgame || multiplayer)))
|
||||
{
|
||||
K_drawKartHUD();
|
||||
|
||||
/* SRB2kart doesn't need this stuff
|
||||
if (maptol & TOL_NIGHTS)
|
||||
ST_drawNiGHTSHUD();
|
||||
else
|
||||
|
|
@ -1824,8 +1826,8 @@ static void ST_overlayDrawer(void)
|
|||
)
|
||||
ST_drawLives();
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
// GAME OVER pic
|
||||
/*if (G_GametypeUsesLives() && stplyr->lives <= 0 && !(hu_showscores && (netgame || multiplayer)))
|
||||
|
|
@ -1845,8 +1847,6 @@ static void ST_overlayDrawer(void)
|
|||
// Countdown timer for Race Mode
|
||||
// ...moved to k_kart.c so we can take advantage of the LAPS_Y value
|
||||
|
||||
K_drawKartHUD();
|
||||
|
||||
/* SRB2kart doesn't need this stuff, I think
|
||||
// If you are in overtime, put a big honkin' flashin' message on the screen.
|
||||
if (G_BattleGametype() && cv_overtime.value
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue