diff --git a/src/dehacked.c b/src/dehacked.c index 851fd8e8f..79d8ffa9a 100644 --- a/src/dehacked.c +++ b/src/dehacked.c @@ -7164,6 +7164,9 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit "S_OPAQUESMOKE4", "S_OPAQUESMOKE5", + "S_RINGDEBT1", + "S_RINGDEBT2", + #ifdef SEENAMES "S_NAMECHECK", #endif diff --git a/src/info.c b/src/info.c index adf1cbb00..bc0dbb875 100644 --- a/src/info.c +++ b/src/info.c @@ -69,7 +69,7 @@ char sprnames[NUMSPRITES + 1][5] = "CNDL","DOCH","DUCK","GTRE","CHES","CHIM","DRGN","LZMN","PGSS","ZTCH", "MKMA","MKMP","RTCH","BOWL","BOWH","BRRL","BRRR","HRSE","TOAH","BFRT", "OFRT","RFRT","PFRT","ASPK","HBST","HBSO","HBSF","WBLZ","WBLN","FWRK", - "XMS4","XMS5","VIEW" + "MXCL","XMS4","XMS5","VIEW" }; // Doesn't work with g++, needs actionf_p1 (don't modify this comment) @@ -3413,6 +3413,9 @@ state_t states[NUMSTATES] = {SPR_SMOK, 3, 7, {NULL}, 0, 0, S_OPAQUESMOKE5}, // S_OPAQUESMOKE4 {SPR_SMOK, 4, 8, {NULL}, 0, 0, S_NULL}, // S_OPAQUESMOKE5 + {SPR_MXCL, FF_FULLBRIGHT, -1, {NULL}, 0, 0, S_NULL}, // S_RINGDEBT1 + {SPR_MXCL, FF_FULLBRIGHT|1, -1, {NULL}, 0, 0, S_NULL}, // S_RINGDEBT2 + #ifdef SEENAMES {SPR_NULL, 0, 1, {NULL}, 0, 0, S_NULL}, // S_NAMECHECK #endif diff --git a/src/info.h b/src/info.h index 6a35f011c..6b5fdbf23 100644 --- a/src/info.h +++ b/src/info.h @@ -775,6 +775,7 @@ typedef enum sprite SPR_WBLN, SPR_FWRK, + SPR_MXCL, // Xmas-specific sprites that don't fit aboxe SPR_XMS4, @@ -4070,6 +4071,9 @@ typedef enum state S_OPAQUESMOKE4, S_OPAQUESMOKE5, + S_RINGDEBT1, + S_RINGDEBT2, + #ifdef SEENAMES S_NAMECHECK, #endif diff --git a/src/k_kart.c b/src/k_kart.c index 1b6f79059..e8d1f52c6 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -4930,6 +4930,19 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd) player->mo->colorized = false; } + if (G_RaceGametype() && player->kartstuff[k_rings] <= 0) // spawn ring debt indicator + { + mobj_t *debtflag = P_SpawnMobj(player->mo->x + player->mo->momx, player->mo->y + player->mo->momy, + player->mo->z + player->mo->momz + player->mo->height + (24*player->mo->scale), MT_THOK); + P_SetMobjState(debtflag, ((leveltime/5 & 1) ? S_RINGDEBT2 : S_RINGDEBT1)); + P_SetScale(debtflag, (debtflag->destscale = player->mo->scale)); + K_MatchGenericExtraFlags(debtflag, player->mo); + debtflag->color = player->skincolor; + debtflag->fuse = 2; + if (P_IsLocalPlayer(player)) + debtflag->flags2 |= MF2_DONTDRAW; + } + if (player->kartstuff[k_dashpadcooldown]) // Twinkle Circuit inspired afterimages { mobj_t *ghost;