From 1bce9d281df8d5c590da5de2f192a0e1e9bc07de Mon Sep 17 00:00:00 2001 From: James Date: Mon, 18 Feb 2019 00:17:58 -0500 Subject: [PATCH 01/21] Shrink timer is consistent 20sec --- src/k_kart.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/k_kart.c b/src/k_kart.c index b006ae3b..797fbe24 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -3294,7 +3294,7 @@ static void K_DoShrink(player_t *user) players[i].mo->destscale = (6*mapobjectscale)/8; if (cv_kartdebugshrink.value && !modeattacking && !players[i].bot) players[i].mo->destscale = (6*players[i].mo->destscale)/8; - players[i].kartstuff[k_growshrinktimer] = -(200+(40*(MAXPLAYERS-players[i].kartstuff[k_position]))); + players[i].kartstuff[k_growshrinktimer] = -(20*TICRATE); } // Grow should get taken away. From 4c3871cb6d165b7c47a455bc4c04d6e65fcd061a Mon Sep 17 00:00:00 2001 From: James Date: Mon, 18 Feb 2019 00:23:40 -0500 Subject: [PATCH 02/21] Some items have 30 sec cooldown on match start --- src/k_kart.c | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/src/k_kart.c b/src/k_kart.c index 797fbe24..48f1c93a 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -699,17 +699,19 @@ static INT32 K_KartGetItemOdds(UINT8 pos, SINT8 item, fixed_t mashed) if (mashed > 0) \ odds = FixedDiv(odds<> FRACBITS \ +#define COOLDOWNONSTART (leveltime < (31*TICRATE)+starttime) + switch (item) { case KITEM_INVINCIBILITY: case KITEM_GROW: - if (pinvin >= max(1, (pingame+2) / 4)) + if (pinvin >= max(1, (pingame+2) / 4) || COOLDOWNONSTART) newodds = 0; else - /* FALLTHRU */ + POWERITEMODDS(newodds); + break; case KITEM_ROCKETSNEAKER: case KITEM_JAWZ: - case KITEM_MINE: case KITEM_BALLHOG: case KITEM_THUNDERSHIELD: case KRITEM_TRIPLESNEAKER: @@ -720,17 +722,27 @@ static INT32 K_KartGetItemOdds(UINT8 pos, SINT8 item, fixed_t mashed) case KRITEM_DUALJAWZ: POWERITEMODDS(newodds); break; + case KITEM_MINE: + if (COOLDOWNONSTART) + newodds = 0; + else + POWERITEMODDS(newodds); + break; case KITEM_SPB: - //POWERITEMODDS(newodds); if (((indirectitemcooldown > 0) || (pexiting > 0) || (secondist/distvar < 3)) && (pos != 9)) // Force SPB newodds = 0; else - newodds *= min((secondist/distvar)-4, 3); + newodds *= min((secondist/distvar)-4, 3); // POWERITEMODDS(newodds); break; case KITEM_SHRINK: - POWERITEMODDS(newodds); - if ((indirectitemcooldown > 0) || (pingame-1 <= pexiting)) + if ((indirectitemcooldown > 0) || (pingame-1 <= pexiting) || COOLDOWNONSTART) + newodds = 0; + else + POWERITEMODDS(newodds); + break; + case KITEM_HYUDORO: + if (COOLDOWNONSTART) newodds = 0; break; default: From 2f4d3eb087db628958aa95326192ed04ff0cb8d5 Mon Sep 17 00:00:00 2001 From: James Date: Tue, 19 Feb 2019 18:38:54 -0500 Subject: [PATCH 03/21] Mines can be punted Setting behind leaves a longer startup animation window so that it can be punted more easily --- src/k_kart.c | 65 ++++++++++++++++++++++++++++++++++++++++++++++++---- src/k_kart.h | 1 + src/p_map.c | 14 +++++++++-- src/p_mobj.c | 23 ++++++++++++++----- 4 files changed, 91 insertions(+), 12 deletions(-) diff --git a/src/k_kart.c b/src/k_kart.c index 48f1c93a..855e0903 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -2895,7 +2895,8 @@ static mobj_t *K_FindLastTrailMobj(player_t *player) static mobj_t *K_ThrowKartItem(player_t *player, boolean missile, mobjtype_t mapthing, INT32 defaultDir, INT32 altthrow) { mobj_t *mo; - INT32 dir, PROJSPEED; + INT32 dir; + fixed_t PROJSPEED; angle_t newangle; fixed_t newx, newy, newz; mobj_t *throwmo; @@ -3012,10 +3013,10 @@ static mobj_t *K_ThrowKartItem(player_t *player, boolean missile, mobjtype_t map if (mo) { angle_t fa = player->mo->angle>>ANGLETOFINESHIFT; - INT32 HEIGHT = (20 + (dir*10))*mapobjectscale + player->mo->momz; + fixed_t HEIGHT = (20 + (dir*10))*mapobjectscale + player->mo->momz; - mo->momx = player->mo->momx + FixedMul(FINECOSINE(fa), (altthrow == 2 ? 2*PROJSPEED/3 : PROJSPEED)); - mo->momy = player->mo->momy + FixedMul(FINESINE(fa), (altthrow == 2 ? 2*PROJSPEED/3 : PROJSPEED)); + mo->momx = player->mo->momx + FixedMul(FINECOSINE(fa), PROJSPEED); + mo->momy = player->mo->momy + FixedMul(FINESINE(fa), PROJSPEED); mo->momz = P_MobjFlip(player->mo) * HEIGHT; if (player->mo->eflags & MFE_VERTICALFLIP) @@ -3082,12 +3083,68 @@ static mobj_t *K_ThrowKartItem(player_t *player, boolean missile, mobjtype_t map if (player->mo->eflags & MFE_VERTICALFLIP) mo->eflags |= MFE_VERTICALFLIP; + + if (mapthing == MT_SSMINE) + mo->extravalue1 = 14; // Pads the start-up length from 21 frames to a full second } } return mo; } +void K_PuntMine(mobj_t *thismine, mobj_t *punter) +{ + angle_t fa = R_PointToAngle2(0, 0, punter->momx, punter->momy) >> ANGLETOFINESHIFT; + fixed_t z = 30*mapobjectscale + punter->momz; + fixed_t spd; + mobj_t *mine; + + if (!thismine || P_MobjWasRemoved(thismine)) + return; + + if (thismine->type == MT_SSMINE_SHIELD) // Create a new mine + { + mine = P_SpawnMobj(thismine->x, thismine->y, thismine->z, MT_SSMINE); + P_SetTarget(&mine->target, thismine->target); + mine->angle = thismine->angle; + mine->flags2 = thismine->flags2; + mine->floorz = thismine->floorz; + mine->ceilingz = thismine->ceilingz; + P_RemoveMobj(thismine); + } + else + mine = thismine; + + if (!mine || P_MobjWasRemoved(mine)) + return; + + switch (gamespeed) + { + case 0: + spd = 68*mapobjectscale; // Avg Speed is 34 + break; + case 2: + spd = 96*mapobjectscale; // Avg Speed is 48 + break; + default: + spd = 82*mapobjectscale; // Avg Speed is 41 + break; + } + + mine->flags |= MF_NOCLIPTHING; + + P_SetMobjState(mine, S_SSMINE_AIR1); + mine->threshold = 10; + mine->extravalue1 = 0; + mine->reactiontime = mine->info->reactiontime; + + mine->momx = punter->momx + FixedMul(FINECOSINE(fa), spd); + mine->momy = punter->momy + FixedMul(FINESINE(fa), spd); + mine->momz = P_MobjFlip(mine) * z; + + mine->flags &= ~MF_NOCLIPTHING; +} + #define THUNDERRADIUS 320 static void K_DoThunderShield(player_t *player) diff --git a/src/k_kart.h b/src/k_kart.h index dc37956a..a09093f2 100644 --- a/src/k_kart.h +++ b/src/k_kart.h @@ -41,6 +41,7 @@ void K_SpawnBoostTrail(player_t *player); void K_SpawnSparkleTrail(mobj_t *mo); void K_SpawnWipeoutTrail(mobj_t *mo, boolean translucent); void K_DriftDustHandling(mobj_t *spawner); +void K_PuntMine(mobj_t *mine, mobj_t *punter); void K_DoSneaker(player_t *player, INT32 type); void K_DoPogoSpring(mobj_t *mo, fixed_t vertispeed, UINT8 sound); void K_KillBananaChain(mobj_t *banana, mobj_t *inflictor, mobj_t *source); diff --git a/src/p_map.c b/src/p_map.c index 41e5a455..ed71a546 100644 --- a/src/p_map.c +++ b/src/p_map.c @@ -980,7 +980,12 @@ static boolean PIT_CheckThing(mobj_t *thing) if (thing->type == MT_PLAYER) { - P_KillMobj(tmthing, thing, thing); + // Bomb punting + if ((tmthing->state >= &states[S_SSMINE1] && tmthing->state <= &states[S_SSMINE4]) + || (tmthing->state >= &states[S_SSMINE_DEPLOY8] && tmthing->state <= &states[S_SSMINE_DEPLOY13])) + P_KillMobj(tmthing, thing, thing); + else + K_PuntMine(tmthing, thing); } else if (thing->type == MT_ORBINAUT || thing->type == MT_JAWZ || thing->type == MT_JAWZ_DUD || thing->type == MT_ORBINAUT_SHIELD || thing->type == MT_JAWZ_SHIELD) @@ -1079,7 +1084,12 @@ static boolean PIT_CheckThing(mobj_t *thing) if (tmthing->health <= 0 || thing->health <= 0) return true; - P_KillMobj(thing, tmthing, tmthing); + // Bomb punting + if ((thing->state >= &states[S_SSMINE1] && thing->state <= &states[S_SSMINE4]) + || (thing->state >= &states[S_SSMINE_DEPLOY8] && thing->state <= &states[S_SSMINE_DEPLOY13])) + P_KillMobj(thing, tmthing, tmthing); + else + K_PuntMine(thing, tmthing); } else if (thing->type == MT_MINEEXPLOSION && tmthing->player) { diff --git a/src/p_mobj.c b/src/p_mobj.c index 746fc1af..8a290fdf 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -8190,28 +8190,39 @@ void P_MobjThinker(mobj_t *mobj) mobj->color = mobj->target->player->skincolor; else mobj->color = SKINCOLOR_KETCHUP; + if (mobj->momx || mobj->momy) P_SpawnGhostMobj(mobj); + if (P_IsObjectOnGround(mobj)) { - if (mobj->state == &states[S_SSMINE_AIR1] || mobj->state == &states[S_SSMINE_AIR2]) - P_SetMobjState(mobj, S_SSMINE_DEPLOY1); - if (mobj->reactiontime >= mobj->info->reactiontime) + if (mobj->extravalue1 > 0) + mobj->extravalue1--; + else { - mobj->momx = mobj->momy = 0; - S_StartSound(mobj, mobj->info->activesound); - mobj->reactiontime--; + if (mobj->state == &states[S_SSMINE_AIR1] || mobj->state == &states[S_SSMINE_AIR2]) + P_SetMobjState(mobj, S_SSMINE_DEPLOY1); + + if (mobj->reactiontime >= mobj->info->reactiontime) + { + mobj->momx = mobj->momy = 0; + S_StartSound(mobj, mobj->info->activesound); + mobj->reactiontime--; + } } } + if (mobj->reactiontime && mobj->reactiontime < mobj->info->reactiontime) { mobj->reactiontime--; if (!mobj->reactiontime) P_KillMobj(mobj, NULL, NULL); } + if ((mobj->state >= &states[S_SSMINE1] && mobj->state <= &states[S_SSMINE4]) || (mobj->state >= &states[S_SSMINE_DEPLOY8] && mobj->state <= &states[S_SSMINE_DEPLOY13])) A_GrenadeRing(mobj); + if (mobj->threshold > 0) mobj->threshold--; break; From f822eb94cfdf474ee4c568af15dcf6f5cdd4b854 Mon Sep 17 00:00:00 2001 From: James Date: Tue, 19 Feb 2019 20:19:01 -0500 Subject: [PATCH 04/21] Reduce explosion radius, lives forever, longer startup --- src/info.c | 6 +++--- src/k_kart.c | 2 +- src/p_mobj.c | 20 +++----------------- 3 files changed, 7 insertions(+), 21 deletions(-) diff --git a/src/info.c b/src/info.c index 5701f1c9..270e21fd 100644 --- a/src/info.c +++ b/src/info.c @@ -15574,10 +15574,10 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = 1, // spawnhealth S_NULL, // seestate sfx_tossed, // seesound - 6*TICRATE, // reactiontime + 0, // reactiontime sfx_None, // attacksound S_NULL, // painstate - 192*FRACUNIT, // painchance + 128*FRACUNIT, // painchance sfx_None, // painsound S_NULL, // meleestate S_NULL, // missilestate @@ -15604,7 +15604,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = 8, // reactiontime sfx_None, // attacksound S_NULL, // painstate - 192*FRACUNIT, // painchance + 128*FRACUNIT, // painchance sfx_None, // painsound S_NULL, // meleestate S_NULL, // missilestate diff --git a/src/k_kart.c b/src/k_kart.c index 855e0903..b94341bb 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -3085,7 +3085,7 @@ static mobj_t *K_ThrowKartItem(player_t *player, boolean missile, mobjtype_t map mo->eflags |= MFE_VERTICALFLIP; if (mapthing == MT_SSMINE) - mo->extravalue1 = 14; // Pads the start-up length from 21 frames to a full second + mo->extravalue1 = 49; // Pads the start-up length from 21 frames to a full 2 seconds } } diff --git a/src/p_mobj.c b/src/p_mobj.c index 8a290fdf..6898053d 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -8194,31 +8194,17 @@ void P_MobjThinker(mobj_t *mobj) if (mobj->momx || mobj->momy) P_SpawnGhostMobj(mobj); - if (P_IsObjectOnGround(mobj)) + if (P_IsObjectOnGround(mobj) && (mobj->state == &states[S_SSMINE_AIR1] || mobj->state == &states[S_SSMINE_AIR2])) { if (mobj->extravalue1 > 0) mobj->extravalue1--; else { - if (mobj->state == &states[S_SSMINE_AIR1] || mobj->state == &states[S_SSMINE_AIR2]) - P_SetMobjState(mobj, S_SSMINE_DEPLOY1); - - if (mobj->reactiontime >= mobj->info->reactiontime) - { - mobj->momx = mobj->momy = 0; - S_StartSound(mobj, mobj->info->activesound); - mobj->reactiontime--; - } + mobj->momx = mobj->momy = 0; + S_StartSound(mobj, mobj->info->activesound); } } - if (mobj->reactiontime && mobj->reactiontime < mobj->info->reactiontime) - { - mobj->reactiontime--; - if (!mobj->reactiontime) - P_KillMobj(mobj, NULL, NULL); - } - if ((mobj->state >= &states[S_SSMINE1] && mobj->state <= &states[S_SSMINE4]) || (mobj->state >= &states[S_SSMINE_DEPLOY8] && mobj->state <= &states[S_SSMINE_DEPLOY13])) A_GrenadeRing(mobj); From ff57b4bc22ab4567a26f0ea47d402b5f5b1663af Mon Sep 17 00:00:00 2001 From: James Date: Tue, 19 Feb 2019 20:29:53 -0500 Subject: [PATCH 05/21] Missed a line --- src/p_mobj.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/p_mobj.c b/src/p_mobj.c index 6898053d..a84fc1dd 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -8202,6 +8202,7 @@ void P_MobjThinker(mobj_t *mobj) { mobj->momx = mobj->momy = 0; S_StartSound(mobj, mobj->info->activesound); + P_SetMobjState(mobj, S_SSMINE_DEPLOY1); } } From 09c3fd432939fbf4b94c54208d16b56c7f79b6d0 Mon Sep 17 00:00:00 2001 From: James Date: Tue, 19 Feb 2019 23:15:31 -0500 Subject: [PATCH 06/21] Hyu b gone --- src/dehacked.c | 3 +++ src/doomstat.h | 1 + src/g_game.c | 1 + src/k_kart.c | 11 ++++++----- src/p_saveg.c | 2 ++ src/p_setup.c | 1 + src/p_tick.c | 2 ++ 7 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/dehacked.c b/src/dehacked.c index 11aed24d..d0c5b8dc 100644 --- a/src/dehacked.c +++ b/src/dehacked.c @@ -9852,6 +9852,9 @@ static inline int lib_getenum(lua_State *L) } else if (fastcmp(word,"indirectitemcooldown")) { lua_pushinteger(L, indirectitemcooldown); return 1; + } else if (fastcmp(word,"hyubgone")) { + lua_pushinteger(L, hyubgone); + return 1; } else if (fastcmp(word,"thwompsactive")) { lua_pushboolean(L, thwompsactive); return 1; diff --git a/src/doomstat.h b/src/doomstat.h index 9ae2726d..0f057273 100644 --- a/src/doomstat.h +++ b/src/doomstat.h @@ -468,6 +468,7 @@ extern boolean comeback; extern SINT8 battlewanted[4]; extern tic_t wantedcalcdelay; extern tic_t indirectitemcooldown; +extern tic_t hyubgone; extern tic_t mapreset; extern UINT8 nospectategrief; extern boolean thwompsactive; diff --git a/src/g_game.c b/src/g_game.c index f0d221ff..9edb1d84 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -267,6 +267,7 @@ SINT8 pickedvote; // What vote the host rolls SINT8 battlewanted[4]; // WANTED players in battle, worth x2 points tic_t wantedcalcdelay; // Time before it recalculates WANTED tic_t indirectitemcooldown; // Cooldown before any more Shrink, SPB, or any other item that works indirectly is awarded +tic_t hyubgone; // Cooldown before hyudoro is allowed to be rerolled tic_t mapreset; // Map reset delay when enough players have joined an empty game UINT8 nospectategrief; // How many players need to be in-game to eliminate last; for preventing spectate griefing boolean thwompsactive; // Thwomps activate on lap 2 diff --git a/src/k_kart.c b/src/k_kart.c index b94341bb..4da1f6e0 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -556,6 +556,11 @@ static INT32 K_KartItemOddsBattle[NUMKARTRESULTS][6] = */ static void K_KartGetItemResult(player_t *player, SINT8 getitem) { + if (getitem == KITEM_SPB || getitem == KITEM_SHRINK) // Indirect items + indirectitemcooldown = 20*TICRATE; + if (getitem == KITEM_HYUDORO) // Hyudoro cooldown + hyubgone = 5*TICRATE; + switch (getitem) { // Special roulettes first, then the generic ones are handled by default @@ -583,10 +588,6 @@ static void K_KartGetItemResult(player_t *player, SINT8 getitem) player->kartstuff[k_itemtype] = KITEM_JAWZ; player->kartstuff[k_itemamount] = 2; break; - case KITEM_SPB: - case KITEM_SHRINK: // Indirect items - indirectitemcooldown = 20*TICRATE; - /* FALLTHRU */ default: if (getitem <= 0 || getitem >= NUMKARTRESULTS) // Sad (Fallback) { @@ -742,7 +743,7 @@ static INT32 K_KartGetItemOdds(UINT8 pos, SINT8 item, fixed_t mashed) POWERITEMODDS(newodds); break; case KITEM_HYUDORO: - if (COOLDOWNONSTART) + if ((hyubgone > 0) || COOLDOWNONSTART) newodds = 0; break; default: diff --git a/src/p_saveg.c b/src/p_saveg.c index 975a4a5d..f00e3f9b 100644 --- a/src/p_saveg.c +++ b/src/p_saveg.c @@ -3313,6 +3313,7 @@ static void P_NetArchiveMisc(void) WRITEUINT32(save_p, wantedcalcdelay); WRITEUINT32(save_p, indirectitemcooldown); + WRITEUINT32(save_p, hyubgone); WRITEUINT32(save_p, mapreset); WRITEUINT8(save_p, nospectategrief); WRITEUINT8(save_p, thwompsactive); @@ -3421,6 +3422,7 @@ static inline boolean P_NetUnArchiveMisc(void) wantedcalcdelay = READUINT32(save_p); indirectitemcooldown = READUINT32(save_p); + hyubgone = READUINT32(save_p); mapreset = READUINT32(save_p); nospectategrief = READUINT8(save_p); thwompsactive = (boolean)READUINT8(save_p); diff --git a/src/p_setup.c b/src/p_setup.c index 58e13c2e..fab433fe 100644 --- a/src/p_setup.c +++ b/src/p_setup.c @@ -3244,6 +3244,7 @@ boolean P_SetupLevel(boolean skipprecip) wantedcalcdelay = wantedfrequency*2; indirectitemcooldown = 0; + hyubgone = 0; mapreset = 0; nospectategrief = 0; thwompsactive = false; diff --git a/src/p_tick.c b/src/p_tick.c index b46b248b..85eaea9b 100644 --- a/src/p_tick.c +++ b/src/p_tick.c @@ -680,6 +680,8 @@ void P_Ticker(boolean run) if (indirectitemcooldown) indirectitemcooldown--; + if (hyubgone) + hyubgone--; if (G_BattleGametype()) { From a6dd439e998d643a113b94539e388150f71cfd7a Mon Sep 17 00:00:00 2001 From: Sally Cochenour Date: Thu, 21 Feb 2019 17:04:58 -0500 Subject: [PATCH 07/21] Grow cancel Needs item table changes to make it less OP --- src/d_player.h | 1 + src/dehacked.c | 3 ++- src/k_kart.c | 28 ++++++++++++++++++++++++++-- 3 files changed, 29 insertions(+), 3 deletions(-) diff --git a/src/d_player.h b/src/d_player.h index b430f20a..31f6d843 100644 --- a/src/d_player.h +++ b/src/d_player.h @@ -354,6 +354,7 @@ typedef enum k_getsparks, // Disable drift sparks at low speed, JUST enough to give acceleration the actual headstart above speed k_jawztargetdelay, // Delay for Jawz target switching, to make it less twitchy k_spectatewait, // How long have you been waiting as a spectator + k_growcancel, // Hold the item button down to cancel Grow NUMKARTSTUFF } kartstufftype_t; diff --git a/src/dehacked.c b/src/dehacked.c index d0c5b8dc..49b77bd2 100644 --- a/src/dehacked.c +++ b/src/dehacked.c @@ -8335,7 +8335,8 @@ static const char *const KARTSTUFF_LIST[] = { "ITEMBLINKMODE", "GETSPARKS", "JAWZTARGETDELAY", - "SPECTATEWAIT" + "SPECTATEWAIT", + "GROWCANCEL" }; static const char *const HUDITEMS_LIST[] = { diff --git a/src/k_kart.c b/src/k_kart.c index 4da1f6e0..cad54335 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -1991,6 +1991,7 @@ void K_SpinPlayer(player_t *player, mobj_t *source, INT32 type, mobj_t *inflicto static void K_RemoveGrowShrink(player_t *player) { player->kartstuff[k_growshrinktimer] = 0; + player->kartstuff[k_growcancel] = 0; if (player->kartstuff[k_invincibilitytimer] == 0) player->mo->color = player->skincolor; player->mo->scalespeed = mapobjectscale/TICRATE; @@ -5093,6 +5094,18 @@ void K_MoveKartPlayer(player_t *player, boolean onground) if (player->kartstuff[k_rocketsneakertimer] < 1) player->kartstuff[k_rocketsneakertimer] = 1; } + // Grow Canceling + else if (player->kartstuff[k_growshrinktimer] > 0) + { + if (cmd->buttons & BT_ATTACK) + { + player->kartstuff[k_growcancel]++; + if (player->kartstuff[k_growcancel] > 26) + K_RemoveGrowShrink(player); + } + else + player->kartstuff[k_growcancel] = 0; + } else if (player->kartstuff[k_itemamount] <= 0) { player->kartstuff[k_itemamount] = player->kartstuff[k_itemheld] = 0; @@ -5449,6 +5462,9 @@ void K_MoveKartPlayer(player_t *player, boolean onground) if (player->kartstuff[k_itemtype] != KITEM_THUNDERSHIELD) player->kartstuff[k_curshield] = 0; + if (player->kartstuff[k_growshrinktimer] <= 0) + player->kartstuff[k_growcancel] = 0; + if (player->kartstuff[k_itemtype] == KITEM_SPB || player->kartstuff[k_itemtype] == KITEM_SHRINK || player->kartstuff[k_growshrinktimer] < 0) @@ -6510,6 +6526,8 @@ static void K_drawKartItem(void) //INT32 splitflags = K_calcSplitFlags(V_SNAPTOTOP|V_SNAPTOLEFT); const INT32 numberdisplaymin = ((!offset && stplyr->kartstuff[k_itemtype] == KITEM_ORBINAUT) ? 5 : 2); INT32 itembar = 0; + INT32 maxl = 0; // itembar's normal highest value + const INT32 barlength = (splitscreen > 1 ? 12 : 26); UINT8 localcolor = SKINCOLOR_NONE; SINT8 colormode = TC_RAINBOW; UINT8 *colmap = NULL; @@ -6618,6 +6636,8 @@ static void K_drawKartItem(void) else if (stplyr->kartstuff[k_rocketsneakertimer] > 1) { itembar = stplyr->kartstuff[k_rocketsneakertimer]; + maxl = (itemtime*3) - barlength; + if (leveltime & 1) localpatch = kp_rocketsneaker[offset]; else @@ -6625,6 +6645,12 @@ static void K_drawKartItem(void) } else if (stplyr->kartstuff[k_growshrinktimer] > 0) { + if (stplyr->kartstuff[k_growcancel]) + { + itembar = stplyr->kartstuff[k_growcancel]; + maxl = 26; + } + if (leveltime & 1) localpatch = kp_grow[offset]; else @@ -6776,8 +6802,6 @@ static void K_drawKartItem(void) // Extensible meter, currently only used for rocket sneaker... if (itembar && hudtrans) { - const INT32 barlength = (splitscreen > 1 ? 12 : 26); - const INT32 maxl = (itemtime*3) - barlength; // timer's normal highest value const INT32 fill = ((itembar*barlength)/maxl); const INT32 length = min(barlength, fill); const INT32 height = (offset ? 1 : 2); From 6b6fba841c2b4640fd7be34d11ef7d4171a80805 Mon Sep 17 00:00:00 2001 From: Sally Cochenour Date: Fri, 22 Feb 2019 18:43:10 -0500 Subject: [PATCH 08/21] Banana snipe sfx --- src/p_map.c | 8 ++++++++ src/sounds.c | 1 + src/sounds.h | 1 + 3 files changed, 10 insertions(+) diff --git a/src/p_map.c b/src/p_map.c index ed71a546..9cca972a 100644 --- a/src/p_map.c +++ b/src/p_map.c @@ -912,6 +912,10 @@ static boolean PIT_CheckThing(mobj_t *thing) if (thing->type == MT_PLAYER) { + // Banana snipe! + if (tmthing->type == MT_BANANA && tmthing->health > 1) + S_StartSound(thing, sfx_bsnipe); + // Player Damage K_SpinPlayer(thing->player, tmthing->target, 0, tmthing, (tmthing->type == MT_BANANA || tmthing->type == MT_BANANA_SHIELD)); @@ -1061,6 +1065,10 @@ static boolean PIT_CheckThing(mobj_t *thing) if (tmthing->health <= 0 || thing->health <= 0) return true; + // Banana snipe! + if (thing->type == MT_BANANA && thing->health > 1) + S_StartSound(tmthing, sfx_bsnipe); + // Player Damage K_SpinPlayer(tmthing->player, thing->target, 0, tmthing, (thing->type == MT_BANANA || thing->type == MT_BANANA_SHIELD)); diff --git a/src/sounds.c b/src/sounds.c index a3bc8bf4..61fddb76 100644 --- a/src/sounds.c +++ b/src/sounds.c @@ -815,6 +815,7 @@ sfxinfo_t S_sfx[NUMSFX] = {"chain", false, 255, 8, -1, NULL, 0, -1, -1, LUMPERROR}, // Mementos Reaper {"mkuma", false, 96, 8, -1, NULL, 0, -1, -1, LUMPERROR}, // Trigger Happy Havoc Monokuma {"toada", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, // Arid Sands Toad scream + {"bsnipe", false, 96, 8, -1, NULL, 0, -1, -1, LUMPERROR}, // Banana sniping {"itfree", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, // :shitsfree: {"dbgsal", false, 255, 8, -1, NULL, 0, -1, -1, LUMPERROR}, // Debug notification diff --git a/src/sounds.h b/src/sounds.h index 4c341d49..bb46ea9d 100644 --- a/src/sounds.h +++ b/src/sounds.h @@ -890,6 +890,7 @@ typedef enum sfx_chain, sfx_mkuma, sfx_toada, + sfx_bsnipe, sfx_itfree, sfx_dbgsal, From b95d0ac27963ea89588a42a5d8cb7fad884fb37c Mon Sep 17 00:00:00 2001 From: Sally Cochenour Date: Sat, 2 Mar 2019 15:39:52 -0500 Subject: [PATCH 09/21] 16 more colors - Renamed Crimson to Maroon. - Renamed Scarlet back to Crimson. - Renamed Nova to Scarlet. - Added Brick, Flame, Sunset, Popcorn, Camouflage, Caribbean, Plague, Platinum, Rust, Nova, Ultraviolet, Moonslam, Bubblegum, Mauve, Royal, and Fairy - Updated Maroon, Robo-Hood, and Ketchup - Shifted positioning of Aqua Super --- src/dehacked.c | 32 ++++++++++++----- src/doomdef.h | 37 +++++++++++++------ src/k_kart.c | 97 +++++++++++++++++++++++++++++++++++++------------- 3 files changed, 123 insertions(+), 43 deletions(-) diff --git a/src/dehacked.c b/src/dehacked.c index 7795f1f5..0088f664 100644 --- a/src/dehacked.c +++ b/src/dehacked.c @@ -8147,15 +8147,18 @@ static const char *COLOR_ENUMS[] = { // Rejigged for Kart. "SALMON", // SKINCOLOR_SALMON "PINK", // SKINCOLOR_PINK "ROSE", // SKINCOLOR_ROSE + "BRICK", // SKINCOLOR_BRICK "RUBY", // SKINCOLOR_RUBY "RASPBERRY", // SKINCOLOR_RASPBERRY "CHERRY", // SKINCOLOR_CHERRY "RED", // SKINCOLOR_RED - "SCARLET", // SKINCOLOR_SCARLET "CRIMSON", // SKINCOLOR_CRIMSON - "NOVA", // SKINCOLOR_NOVA + "MAROON", // SKINCOLOR_MAROON + "FLAME", // SKINCOLOR_FLAME + "SCARLET", // SKINCOLOR_SCARLET "KETCHUP", // SKINCOLOR_KETCHUP "DAWN", // SKINCOLOR_DAWN + "SUNSET", // SKINCOLOR_SUNSET "CREAMSICLE", // SKINCOLOR_CREAMSICLE "ORANGE", // SKINCOLOR_ORANGE "PUMPKIN", // SKINCOLOR_PUMPKIN @@ -8164,6 +8167,7 @@ static const char *COLOR_ENUMS[] = { // Rejigged for Kart. "TANGERINE", // SKINCOLOR_TANGERINE "PEACH", // SKINCOLOR_PEACH "CARAMEL", // SKINCOLOR_CARAMEL + "POPCORN", // SKINCOLOR_POPCORN "CREAM", // SKINCOLOR_CREAM "GOLD", // SKINCOLOR_GOLD "BRONZE", // SKINCOLOR_BRONZE @@ -8177,6 +8181,7 @@ static const char *COLOR_ENUMS[] = { // Rejigged for Kart. "HANDHELD", // SKINCOLOR_HANDHELD "TEA", // SKINCOLOR_TEA "PISTACHIO", // SKINCOLOR_PISTACHIO + "CAMOUFLAGE", // SKINCOLOR_CAMOUFLAGE "ROBOHOOD", // SKINCOLOR_ROBOHOOD "MOSS", // SKINCOLOR_MOSS "MINT", // SKINCOLOR_MINT @@ -8186,28 +8191,39 @@ static const char *COLOR_ENUMS[] = { // Rejigged for Kart. "SWAMP", // SKINCOLOR_SWAMP "DREAM", // SKINCOLOR_DREAM "ALGAE", // SKINCOLOR_ALGAE + "CARIBBEAN", // SKINCOLOR_CARIBBEAN + "PLAGUE", // SKINCOLOR_PLAGUE "AQUA", // SKINCOLOR_AQUA "TEAL", // SKINCOLOR_TEAL "CYAN", // SKINCOLOR_CYAN "JAWZ", // SKINCOLOR_JAWZ "CERULEAN", // SKINCOLOR_CERULEAN "NAVY", // SKINCOLOR_NAVY + "PLATINUM", // SKINCOLOR_PLATINUM "SLATE", // SKINCOLOR_SLATE "STEEL", // SKINCOLOR_STEEL + "RUST", // SKINCOLOR_RUST "JET", // SKINCOLOR_JET "SAPPHIRE", // SKINCOLOR_SAPPHIRE "PERIWINKLE", // SKINCOLOR_PERIWINKLE "BLUE", // SKINCOLOR_BLUE "BLUEBERRY", // SKINCOLOR_BLUEBERRY + "NOVA", // SKINCOLOR_NOVA "PASTEL", // SKINCOLOR_PASTEL + "ULTRAVIOLET", // SKINCOLOR_ULTRAVIOLET "DUSK", // SKINCOLOR_DUSK + "MOONSLAM", // SKINCOLOR_MOONSLAM + "BUBBLEGUM", // SKINCOLOR_BUBBLEGUM "PURPLE", // SKINCOLOR_PURPLE "FUCHSIA", // SKINCOLOR_FUCHSIA "TOXIC", // SKINCOLOR_TOXIC + "MAUVE", // SKINCOLOR_MAUVE + "ROYAL", // SKINCOLOR_ROYAL "LAVENDER", // SKINCOLOR_LAVENDER "BYZANTIUM", // SKINCOLOR_BYZANTIUM "POMEGRANATE", // SKINCOLOR_POMEGRANATE "LILAC", // SKINCOLOR_LILAC + "FAIRY", // SKINCOLOR_FAIRY // Special super colors // Super Sonic Yellow @@ -8240,6 +8256,12 @@ static const char *COLOR_ENUMS[] = { // Rejigged for Kart. "BSUPER3", // SKINCOLOR_BSUPER3, "BSUPER4", // SKINCOLOR_BSUPER4, "BSUPER5" // SKINCOLOR_BSUPER5, + // Aqua Super + "ASUPER1", // SKINCOLOR_ASUPER1, + "ASUPER2", // SKINCOLOR_ASUPER2, + "ASUPER3", // SKINCOLOR_ASUPER3, + "ASUPER4", // SKINCOLOR_ASUPER4, + "ASUPER5" // SKINCOLOR_ASUPER5, // Hyper Sonic Green "GSUPER1", // SKINCOLOR_GSUPER1, "GSUPER2", // SKINCOLOR_GSUPER2, @@ -8258,12 +8280,6 @@ static const char *COLOR_ENUMS[] = { // Rejigged for Kart. "CSUPER3", // SKINCOLOR_CSUPER3, "CSUPER4", // SKINCOLOR_CSUPER4, "CSUPER5", // SKINCOLOR_CSUPER5, - // Aqua Super - "ASUPER1", // SKINCOLOR_ASUPER1, - "ASUPER2", // SKINCOLOR_ASUPER2, - "ASUPER3", // SKINCOLOR_ASUPER3, - "ASUPER4", // SKINCOLOR_ASUPER4, - "ASUPER5" // SKINCOLOR_ASUPER5, }; static const char *const POWERS_LIST[] = { diff --git a/src/doomdef.h b/src/doomdef.h index 7fc92f48..59c2dfc3 100644 --- a/src/doomdef.h +++ b/src/doomdef.h @@ -256,6 +256,7 @@ typedef enum SKINCOLOR_GREY, SKINCOLOR_NICKEL, SKINCOLOR_BLACK, + SKINCOLOR_POPCORN, SKINCOLOR_SEPIA, SKINCOLOR_BEIGE, SKINCOLOR_BROWN, @@ -263,15 +264,18 @@ typedef enum SKINCOLOR_SALMON, SKINCOLOR_PINK, SKINCOLOR_ROSE, + SKINCOLOR_BRICK, SKINCOLOR_RUBY, SKINCOLOR_RASPBERRY, SKINCOLOR_CHERRY, SKINCOLOR_RED, - SKINCOLOR_SCARLET, SKINCOLOR_CRIMSON, - SKINCOLOR_NOVA, + SKINCOLOR_MAROON, + SKINCOLOR_FLAME, + SKINCOLOR_SCARLET, SKINCOLOR_KETCHUP, SKINCOLOR_DAWN, + SKINCOLOR_SUNSET, SKINCOLOR_CREAMSICLE, SKINCOLOR_ORANGE, SKINCOLOR_PUMPKIN, @@ -289,6 +293,7 @@ typedef enum SKINCOLOR_OLIVE, SKINCOLOR_VOMIT, SKINCOLOR_GARDEN, + SKINCOLOR_CAMOUFLAGE, SKINCOLOR_LIME, SKINCOLOR_HANDHELD, SKINCOLOR_TEA, @@ -301,6 +306,8 @@ typedef enum SKINCOLOR_EMERALD, SKINCOLOR_SWAMP, SKINCOLOR_DREAM, + SKINCOLOR_PLAGUE, + SKINCOLOR_CARIBBEAN, SKINCOLOR_ALGAE, SKINCOLOR_AQUA, SKINCOLOR_TEAL, @@ -308,24 +315,34 @@ typedef enum SKINCOLOR_JAWZ, // Oni's torment SKINCOLOR_CERULEAN, SKINCOLOR_NAVY, + SKINCOLOR_PLATINUM, SKINCOLOR_SLATE, SKINCOLOR_STEEL, + SKINCOLOR_RUST, SKINCOLOR_JET, SKINCOLOR_SAPPHIRE, // sweet mother, i cannot weave - slender aphrodite has overcome me with longing for a girl SKINCOLOR_PERIWINKLE, SKINCOLOR_BLUE, SKINCOLOR_BLUEBERRY, + SKINCOLOR_NOVA, SKINCOLOR_PASTEL, + SKINCOLOR_ULTRAVIOLET, SKINCOLOR_DUSK, + SKINCOLOR_MOONSLAM, + SKINCOLOR_BUBBLEGUM, SKINCOLOR_PURPLE, SKINCOLOR_FUCHSIA, SKINCOLOR_TOXIC, + SKINCOLOR_MAUVE, + SKINCOLOR_ROYAL, SKINCOLOR_LAVENDER, SKINCOLOR_BYZANTIUM, SKINCOLOR_POMEGRANATE, SKINCOLOR_LILAC, + SKINCOLOR_FAIRY, - // Careful! MAXSKINCOLORS cannot be greater than 0x40 -- Which it is now. + // "Careful! MAXSKINCOLORS cannot be greater than 0x40 -- Which it is now." + // (This comment is a dirty liar! This is only limited by the integer type, so 255 for UINT8.) MAXSKINCOLORS, // Super special awesome Super flashing colors! @@ -364,6 +381,13 @@ typedef enum SKINCOLOR_BSUPER4, SKINCOLOR_BSUPER5, + // Aqua Super + SKINCOLOR_ASUPER1, + SKINCOLOR_ASUPER2, + SKINCOLOR_ASUPER3, + SKINCOLOR_ASUPER4, + SKINCOLOR_ASUPER5, + // Hyper Sonic Green SKINCOLOR_GSUPER1, SKINCOLOR_GSUPER2, @@ -385,13 +409,6 @@ typedef enum SKINCOLOR_CSUPER4, SKINCOLOR_CSUPER5, - // Aqua Super - SKINCOLOR_ASUPER1, - SKINCOLOR_ASUPER2, - SKINCOLOR_ASUPER3, - SKINCOLOR_ASUPER4, - SKINCOLOR_ASUPER5, - MAXTRANSLATIONS } skincolors_t; diff --git a/src/k_kart.c b/src/k_kart.c index 8e607191..2bdfc40f 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -56,15 +56,18 @@ const char *KartColor_Names[MAXSKINCOLORS] = "Salmon", // SKINCOLOR_SALMON "Pink", // SKINCOLOR_PINK "Rose", // SKINCOLOR_ROSE + "Brick", // SKINCOLOR_BRICK "Ruby", // SKINCOLOR_RUBY "Raspberry", // SKINCOLOR_RASPBERRY "Cherry", // SKINCOLOR_CHERRY "Red", // SKINCOLOR_RED - "Scarlet", // SKINCOLOR_SCARLET "Crimson", // SKINCOLOR_CRIMSON - "Nova", // SKINCOLOR_NOVA + "Maroon", // SKINCOLOR_MAROON + "Flame", // SKINCOLOR_FLAME + "Scarlet", // SKINCOLOR_SCARLET "Ketchup", // SKINCOLOR_KETCHUP "Dawn", // SKINCOLOR_DAWN + "Sunset", // SKINCOLOR_SUNSET "Creamsicle", // SKINCOLOR_CREAMSICLE "Orange", // SKINCOLOR_ORANGE "Pumpkin", // SKINCOLOR_PUMPKIN @@ -73,6 +76,7 @@ const char *KartColor_Names[MAXSKINCOLORS] = "Tangerine", // SKINCOLOR_TANGERINE "Peach", // SKINCOLOR_PEACH "Caramel", // SKINCOLOR_CARAMEL + "Popcorn", // SKINCOLOR_POPCORN "Cream", // SKINCOLOR_CREAM "Gold", // SKINCOLOR_GOLD "Bronze", // SKINCOLOR_BRONZE @@ -86,6 +90,7 @@ const char *KartColor_Names[MAXSKINCOLORS] = "Handheld", // SKINCOLOR_HANDHELD "Tea", // SKINCOLOR_TEA "Pistachio", // SKINCOLOR_PISTACHIO + "Camouflage", // SKINCOLOR_CAMOUFLAGE "Robo-Hood", // SKINCOLOR_ROBOHOOD "Moss", // SKINCOLOR_MOSS "Mint", // SKINCOLOR_MINT @@ -95,28 +100,39 @@ const char *KartColor_Names[MAXSKINCOLORS] = "Swamp", // SKINCOLOR_SWAMP "Dream", // SKINCOLOR_DREAM "Algae", // SKINCOLOR_ALGAE + "Caribbean", // SKINCOLOR_CARIBBEAN + "Plague", // SKINCOLOR_PLAGUE "Aqua", // SKINCOLOR_AQUA "Teal", // SKINCOLOR_TEAL "Cyan", // SKINCOLOR_CYAN "Jawz", // SKINCOLOR_JAWZ "Cerulean", // SKINCOLOR_CERULEAN "Navy", // SKINCOLOR_NAVY + "Platinum", // SKINCOLOR_PLATINUM "Slate", // SKINCOLOR_SLATE "Steel", // SKINCOLOR_STEEL + "Rust", // SKINCOLOR_RUST "Jet", // SKINCOLOR_JET "Sapphire", // SKINCOLOR_SAPPHIRE "Periwinkle", // SKINCOLOR_PERIWINKLE "Blue", // SKINCOLOR_BLUE "Blueberry", // SKINCOLOR_BLUEBERRY + "Nova", // SKINCOLOR_NOVA "Pastel", // SKINCOLOR_PASTEL + "Ultraviolet", // SKINCOLOR_ULTRAVIOLET "Dusk", // SKINCOLOR_DUSK + "Moonslam", // SKINCOLOR_MOONSLAM + "Bubblegum", // SKINCOLOR_BUBBLEGUM "Purple", // SKINCOLOR_PURPLE "Fuchsia", // SKINCOLOR_FUCHSIA "Toxic", // SKINCOLOR_TOXIC + "Mauve", // SKINCOLOR_MAUVE + "Royal", // SKINCOLOR_ROYAL "Lavender", // SKINCOLOR_LAVENDER "Byzantium", // SKINCOLOR_BYZANTIUM "Pomegranate", // SKINCOLOR_POMEGRANATE - "Lilac" // SKINCOLOR_LILAC + "Lilac", // SKINCOLOR_LILAC + "Fairy" // SKINCOLOR_FAIRY }; // Color_Opposite replacement; frame setting has not been changed from 8 for most, should be done later @@ -135,15 +151,18 @@ const UINT8 KartColor_Opposite[MAXSKINCOLORS*2] = SKINCOLOR_TEA,8, // SKINCOLOR_SALMON SKINCOLOR_PISTACHIO,8, // SKINCOLOR_PINK SKINCOLOR_MOSS,8, // SKINCOLOR_ROSE + SKINCOLOR_RUST,8, // SKINCOLOR_BRICK SKINCOLOR_SAPPHIRE,8, // SKINCOLOR_RUBY SKINCOLOR_MINT,8, // SKINCOLOR_RASPBERRY SKINCOLOR_HANDHELD,10, // SKINCOLOR_CHERRY SKINCOLOR_GREEN,6, // SKINCOLOR_RED - SKINCOLOR_PINETREE,6, // SKINCOLOR_SCARLET - SKINCOLOR_TOXIC,8, // SKINCOLOR_CRIMSON - SKINCOLOR_ALGAE,10, // SKINCOLOR_NOVA + SKINCOLOR_PINETREE,6, // SKINCOLOR_CRIMSON + SKINCOLOR_TOXIC,8, // SKINCOLOR_MAROON + SKINCOLOR_CARIBBEAN,10, // SKINCOLOR_FLAME + SKINCOLOR_ALGAE,10, // SKINCOLOR_SCARLET SKINCOLOR_MUSTARD,10, // SKINCOLOR_KETCHUP SKINCOLOR_DUSK,8, // SKINCOLOR_DAWN + SKINCOLOR_MOONSLAM,8, // SKINCOLOR_SUNSET SKINCOLOR_PERIWINKLE,8, // SKINCOLOR_CREAMSICLE SKINCOLOR_BLUE,8, // SKINCOLOR_ORANGE SKINCOLOR_BLUEBERRY,8, // SKINCOLOR_PUMPKIN @@ -152,6 +171,7 @@ const UINT8 KartColor_Opposite[MAXSKINCOLORS*2] = SKINCOLOR_LIME,8, // SKINCOLOR_TANGERINE SKINCOLOR_CYAN,8, // SKINCOLOR_PEACH SKINCOLOR_CERULEAN,8, // SKINCOLOR_CARAMEL + SKINCOLOR_BUBBLEGUM,8, // SKINCOLOR_POPCORN SKINCOLOR_COPPER,10, // SKINCOLOR_CREAM SKINCOLOR_SLATE,8, // SKINCOLOR_GOLD SKINCOLOR_STEEL,8, // SKINCOLOR_BRONZE @@ -165,37 +185,48 @@ const UINT8 KartColor_Opposite[MAXSKINCOLORS*2] = SKINCOLOR_CHERRY,8, // SKINCOLOR_HANDHELD SKINCOLOR_SALMON,8, // SKINCOLOR_TEA SKINCOLOR_PINK,6, // SKINCOLOR_PISTACHIO + SKINCOLOR_FAIRY,10, // SKINCOLOR_CAMOUFLAGE SKINCOLOR_VOMIT,8, // SKINCOLOR_ROBOHOOD SKINCOLOR_ROSE,8, // SKINCOLOR_MOSS SKINCOLOR_RASPBERRY,8, // SKINCOLOR_MINT SKINCOLOR_RED,8, // SKINCOLOR_GREEN - SKINCOLOR_SCARLET,8, // SKINCOLOR_PINETREE + SKINCOLOR_CRIMSON,8, // SKINCOLOR_PINETREE SKINCOLOR_PURPLE,8, // SKINCOLOR_EMERALD SKINCOLOR_BYZANTIUM,8, // SKINCOLOR_SWAMP SKINCOLOR_POMEGRANATE,8, // SKINCOLOR_DREAM - SKINCOLOR_NOVA,10, // SKINCOLOR_ALGAE + SKINCOLOR_SCARLET,10, // SKINCOLOR_ALGAE + SKINCOLOR_FLAME,8, // SKINCOLOR_CARIBBEAN + SKINCOLOR_NOVA,8, // SKINCOLOR_PLAGUE SKINCOLOR_YELLOW,8, // SKINCOLOR_AQUA SKINCOLOR_OLIVE,8, // SKINCOLOR_TEAL SKINCOLOR_PEACH,8, // SKINCOLOR_CYAN SKINCOLOR_LILAC,10, // SKINCOLOR_JAWZ SKINCOLOR_CARAMEL,8, // SKINCOLOR_CERULEAN SKINCOLOR_ROSEWOOD,8, // SKINCOLOR_NAVY + SKINCOLOR_ROYAL,8, // SKINCOLOR_PLATINUM SKINCOLOR_GOLD,10, // SKINCOLOR_SLATE SKINCOLOR_BRONZE,10, // SKINCOLOR_STEEL + SKINCOLOR_BRICK,10, // SKINCOLOR_RUST SKINCOLOR_BURGUNDY,8, // SKINCOLOR_JET SKINCOLOR_RUBY,6, // SKINCOLOR_SAPPHIRE SKINCOLOR_CREAMSICLE,8, // SKINCOLOR_PERIWINKLE SKINCOLOR_ORANGE,8, // SKINCOLOR_BLUE SKINCOLOR_PUMPKIN,8, // SKINCOLOR_BLUEBERRY + SKINCOLOR_PLAGUE,10, // SKINCOLOR_NOVA SKINCOLOR_FUCHSIA,11, // SKINCOLOR_PASTEL + SKINCOLOR_MAUVE,10, // SKINCOLOR_ULTRAVIOLET SKINCOLOR_DAWN,6, // SKINCOLOR_DUSK + SKINCOLOR_SUNSET,10, // SKINCOLOR_MOONSLAM SKINCOLOR_EMERALD,8, // SKINCOLOR_PURPLE SKINCOLOR_PASTEL,11, // SKINCOLOR_FUCHSIA - SKINCOLOR_CRIMSON,8, // SKINCOLOR_TOXIC + SKINCOLOR_MAROON,8, // SKINCOLOR_TOXIC + SKINCOLOR_ULTRAVIOLET,8, // SKINCOLOR_MAUVE + SKINCOLOR_PLATINUM,6, // SKINCOLOR_ROYAL SKINCOLOR_GARDEN,6, // SKINCOLOR_LAVENDER SKINCOLOR_SWAMP,8, // SKINCOLOR_BYZANTIUM SKINCOLOR_DREAM,8, // SKINCOLOR_POMEGRANATE - SKINCOLOR_JAWZ,6 // SKINCOLOR_LILAC + SKINCOLOR_JAWZ,6, // SKINCOLOR_LILAC + SKINCOLOR_CAMOUFLAGE,8 // SKINCOLOR_FAIRY }; UINT8 colortranslations[MAXTRANSLATIONS][16] = { @@ -212,15 +243,18 @@ UINT8 colortranslations[MAXTRANSLATIONS][16] = { {120, 120, 120, 121, 121, 122, 123, 124, 126, 127, 129, 131, 133, 135, 137, 139}, // SKINCOLOR_SALMON {120, 121, 121, 122, 144, 145, 146, 147, 148, 149, 150, 151, 134, 136, 138, 140}, // SKINCOLOR_PINK {144, 145, 146, 147, 148, 149, 150, 151, 134, 135, 136, 137, 138, 139, 140, 141}, // SKINCOLOR_ROSE + { 64, 67, 70, 73, 146, 147, 148, 150, 118, 118, 119, 119, 156, 159, 141, 143}, // SKINCOLOR_BRICK {120, 121, 144, 145, 147, 149, 132, 133, 134, 136, 198, 198, 199, 255, 30, 31}, // SKINCOLOR_RUBY {120, 121, 122, 123, 124, 125, 126, 127, 128, 130, 131, 134, 136, 137, 139, 140}, // SKINCOLOR_RASPBERRY {120, 65, 67, 69, 71, 124, 125, 127, 132, 133, 135, 136, 138, 139, 140, 141}, // SKINCOLOR_CHERRY {122, 123, 124, 126, 129, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142}, // SKINCOLOR_RED - {123, 125, 128, 131, 133, 135, 136, 138, 140, 140, 141, 141, 142, 142, 143, 31}, // SKINCOLOR_SCARLET - {123, 124, 126, 128, 132, 135, 137, 63, 28, 28, 28, 29, 29, 30, 30, 31}, // SKINCOLOR_CRIMSON - { 99, 113, 113, 84, 85, 87, 126, 128, 130, 196, 197, 198, 199, 240, 243, 246}, // SKINCOLOR_NOVA - {104, 113, 113, 85, 86, 88, 128, 129, 131, 133, 134, 136, 138, 139, 141, 143}, // SKINCOLOR_KETCHUP + {123, 125, 128, 131, 133, 135, 136, 138, 140, 140, 141, 141, 142, 142, 143, 31}, // SKINCOLOR_CRIMSON + {123, 124, 126, 128, 132, 135, 137, 27, 28, 28, 28, 29, 29, 30, 30, 31}, // SKINCOLOR_MAROON + {120, 97, 112, 113, 113, 85, 87, 126, 149, 150, 151, 252, 253, 254, 255, 29}, // SKINCOLOR_FLAME + { 99, 113, 113, 84, 85, 87, 126, 128, 130, 196, 197, 198, 199, 240, 243, 246}, // SKINCOLOR_SCARLET + {103, 113, 113, 84, 85, 88, 127, 130, 131, 133, 134, 136, 138, 139, 141, 143}, // SKINCOLOR_KETCHUP {120, 121, 122, 123, 124, 147, 147, 148, 90, 91, 92, 93, 94, 95, 152, 154}, // SKINCOLOR_DAWN + { 98, 112, 113, 84, 85, 87, 89, 149, 150, 251, 252, 206, 238, 240, 243, 246}, // SKINCOLOR_SUNSET {120, 120, 80, 80, 81, 82, 83, 83, 84, 85, 86, 88, 89, 91, 93, 95}, // SKINCOLOR_CREAMSICLE { 80, 81, 82, 83, 84, 85, 86, 88, 89, 91, 94, 95, 154, 156, 158, 159}, // SKINCOLOR_ORANGE { 82, 83, 84, 85, 87, 89, 90, 92, 94, 152, 153, 155, 157, 159, 141, 142}, // SKINCOLOR_PUMPKIN @@ -229,6 +263,7 @@ UINT8 colortranslations[MAXTRANSLATIONS][16] = { { 98, 98, 112, 112, 113, 113, 84, 85, 87, 89, 91, 93, 95, 153, 156, 159}, // SKINCOLOR_TANGERINE {120, 80, 66, 70, 72, 76, 148, 149, 150, 151, 153, 154, 156, 61, 62, 63}, // SKINCOLOR_PEACH { 64, 66, 68, 70, 72, 74, 76, 78, 48, 50, 52, 54, 56, 58, 60, 62}, // SKINCOLOR_CARAMEL + {120, 96, 97, 98, 99, 71, 32, 11, 13, 16, 18, 21, 23, 26, 28, 31}, // SKINCOLOR_POPCORN {120, 120, 96, 96, 97, 82, 84, 77, 50, 54, 57, 59, 61, 63, 29, 31}, // SKINCOLOR_CREAM {112, 112, 112, 113, 113, 114, 114, 115, 115, 116, 116, 117, 117, 118, 118, 119}, // SKINCOLOR_GOLD {112, 113, 114, 115, 116, 117, 118, 119, 156, 157, 158, 159, 141, 141, 142, 143}, // SKINCOLOR_BRONZE @@ -242,7 +277,8 @@ UINT8 colortranslations[MAXTRANSLATIONS][16] = { { 98, 104, 105, 105, 106, 167, 168, 169, 170, 171, 172, 173, 174, 175, 30, 31}, // SKINCOLOR_HANDHELD {120, 120, 176, 176, 176, 177, 177, 178, 178, 179, 179, 180, 180, 181, 182, 183}, // SKINCOLOR_TEA {120, 120, 176, 176, 177, 177, 178, 179, 165, 166, 167, 168, 169, 170, 171, 172}, // SKINCOLOR_PISTACHIO - {120, 176, 178, 165, 167, 168, 169, 182, 182, 171, 171, 172, 173, 174, 175, 30}, // SKINCOLOR_ROBOHOOD + { 64, 66, 69, 32, 34, 37, 40, 182, 171, 172, 172, 173, 173, 174, 174, 175}, // SKINCOLOR_CAMOUFLAGE + {120, 176, 160, 165, 167, 168, 169, 182, 182, 171, 60, 61, 63, 29, 30, 31}, // SKINCOLOR_ROBOHOOD {178, 178, 178, 179, 179, 180, 181, 182, 183, 172, 172, 173, 173, 174, 174, 175}, // SKINCOLOR_MOSS {120, 176, 176, 176, 177, 163, 164, 165, 167, 221, 221, 222, 223, 207, 207, 31}, // SKINCOLOR_MINT {160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175}, // SKINCOLOR_GREEN @@ -251,28 +287,39 @@ UINT8 colortranslations[MAXTRANSLATIONS][16] = { {160, 184, 185, 186, 187, 188, 189, 190, 191, 191, 29, 29, 30, 30, 31, 31}, // SKINCOLOR_SWAMP {120, 120, 80, 80, 81, 177, 162, 164, 228, 228, 204, 204, 205, 205, 206, 207}, // SKINCOLOR_DREAM {208, 209, 210, 211, 213, 220, 216, 167, 168, 188, 188, 189, 190, 191, 30, 31}, // SKINCOLOR_ALGAE + {120, 176, 177, 160, 185, 220, 216, 217, 221, 230, 206, 206, 254, 255, 29, 31}, // SKINCOLOR_CARIBBEAN + {176, 160, 184, 185, 186, 187, 188, 230, 230, 206, 206, 207, 28, 29, 30, 31}, // SKINCOLOR_PLAGUE {120, 208, 208, 210, 212, 214, 220, 220, 220, 221, 221, 222, 222, 223, 223, 191}, // SKINCOLOR_AQUA {210, 213, 220, 220, 220, 216, 216, 221, 221, 221, 222, 222, 223, 223, 191, 31}, // SKINCOLOR_TEAL {120, 120, 208, 208, 209, 210, 211, 212, 213, 215, 216, 217, 218, 219, 222, 223}, // SKINCOLOR_CYAN {120, 120, 208, 209, 210, 226, 215, 216, 217, 229, 229, 205, 205, 206, 207, 31}, // SKINCOLOR_JAWZ {208, 209, 211, 213, 215, 216, 216, 217, 217, 218, 218, 219, 205, 206, 207, 207}, // SKINCOLOR_CERULEAN {211, 212, 213, 215, 216, 218, 219, 205, 206, 206, 207, 207, 28, 29, 30, 31}, // SKINCOLOR_NAVY + {120, 0, 0, 200, 200, 201, 11, 14, 17, 218, 222, 223, 238, 240, 243, 246}, // SKINCOLOR_PLATINUM {120, 120, 200, 200, 200, 201, 201, 201, 202, 202, 202, 203, 204, 205, 206, 207}, // SKINCOLOR_SLATE {120, 200, 200, 201, 201, 202, 202, 203, 203, 204, 204, 205, 205, 206, 207, 31}, // SKINCOLOR_STEEL + { 64, 66, 68, 70, 32, 34, 36, 203, 204, 205, 24, 25, 26, 28, 29, 31}, // SKINCOLOR_RUST {225, 226, 227, 228, 229, 205, 205, 206, 207, 207, 28, 28, 29, 29, 30, 31}, // SKINCOLOR_JET {208, 209, 211, 213, 215, 217, 229, 230, 232, 234, 236, 238, 240, 242, 244, 246}, // SKINCOLOR_SAPPHIRE {120, 120, 224, 225, 226, 202, 227, 228, 229, 230, 231, 233, 235, 237, 239, 241}, // SKINCOLOR_PERIWINKLE {224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 235, 236, 238, 242, 244, 246}, // SKINCOLOR_BLUE {226, 228, 229, 230, 232, 233, 235, 237, 239, 240, 242, 244, 246, 31, 31, 31}, // SKINCOLOR_BLUEBERRY + {120, 112, 82, 83, 84, 124, 248, 228, 228, 204, 205, 206, 207, 29, 30, 31}, // SKINCOLOR_NOVA {120, 208, 209, 210, 211, 226, 202, 249, 194, 195, 196, 197, 198, 199, 255, 30}, // SKINCOLOR_PASTEL + {120, 64, 81, 122, 192, 249, 203, 221, 221, 219, 219, 223, 223, 191, 191, 31}, // SKINCOLOR_ULTRAVIOLET {121, 145, 192, 249, 250, 251, 204, 204, 205, 205, 206, 206, 207, 29, 30, 31}, // SKINCOLOR_DUSK + {120, 224, 201, 226, 202, 249, 250, 196, 197, 198, 199, 140, 141, 142, 143, 31}, // SKINCOLOR_MOONSLAM + {120, 96, 64, 121, 67, 144, 123, 192, 193, 194, 195, 196, 197, 198, 199, 30}, // SKINCOLOR_BUBBLEGUM {121, 145, 192, 192, 193, 194, 195, 196, 196, 197, 197, 198, 198, 199, 30, 31}, // SKINCOLOR_PURPLE {120, 122, 124, 125, 126, 150, 196, 197, 198, 198, 199, 199, 240, 242, 244, 246}, // SKINCOLOR_FUCHSIA {120, 120, 176, 176, 177, 6, 8, 10, 249, 250, 196, 197, 198, 199, 143, 31}, // SKINCOLOR_TOXIC + { 96, 97, 98, 112, 113, 73, 146, 248, 249, 251, 205, 205, 206, 207, 29, 31}, // SKINCOLOR_MAUVE + { 97, 112, 113, 113, 114, 78, 53, 252, 252, 253, 253, 254, 255, 29, 30, 31}, // SKINCOLOR_ROYAL {121, 145, 192, 248, 249, 250, 251, 252, 252, 253, 253, 254, 254, 255, 30, 31}, // SKINCOLOR_LAVENDER {144, 248, 249, 250, 251, 252, 253, 254, 255, 255, 29, 29, 30, 30, 31, 31}, // SKINCOLOR_BYZANTIUM {144, 145, 146, 147, 148, 149, 150, 251, 251, 252, 252, 253, 254, 255, 29, 30}, // SKINCOLOR_POMEGRANATE {120, 120, 120, 121, 121, 122, 122, 123, 192, 248, 249, 250, 251, 252, 253, 254}, // SKINCOLOR_LILAC + {120, 120, 121, 121, 122, 123, 10, 14, 16, 18, 20, 22, 24, 26, 28, 31}, // SKINCOLOR_FAIRY // MAXSKINCOLORS {120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 96, 100, 104, 113, 116, 119}, // SKINCOLOR_SUPER1 {120, 120, 120, 120, 120, 120, 120, 120, 96, 98, 101, 104, 113, 115, 117, 119}, // SKINCOLOR_SUPER2 @@ -299,6 +346,11 @@ UINT8 colortranslations[MAXTRANSLATIONS][16] = { {120, 120, 120, 120, 120, 120, 224, 224, 225, 226, 227, 228, 229, 230, 231, 232}, // SKINCOLOR_BSUPER3 {120, 120, 120, 120, 224, 224, 225, 226, 226, 227, 228, 229, 229, 230, 231, 232}, // SKINCOLOR_BSUPER4 {120, 120, 224, 224, 225, 225, 226, 227, 227, 228, 228, 229, 230, 230, 231, 232}, // SKINCOLOR_BSUPER5 + {120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 208, 210, 212, 215, 220, 222}, // SKINCOLOR_ASUPER1 + {120, 120, 120, 120, 120, 120, 120, 120, 208, 209, 211, 213, 215, 220, 221, 223}, // SKINCOLOR_ASUPER2 + {120, 120, 120, 120, 120, 120, 208, 209, 210, 211, 212, 213, 215, 220, 221, 223}, // SKINCOLOR_ASUPER3 + {120, 120, 120, 120, 208, 209, 210, 211, 212, 213, 214, 215, 220, 221, 222, 223}, // SKINCOLOR_ASUPER4 + {120, 120, 208, 208, 209, 210, 211, 211, 212, 213, 214, 215, 220, 221, 222, 223}, // SKINCOLOR_ASUPER5 {120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 176, 160, 163, 167, 171, 175}, // SKINCOLOR_GSUPER1 {120, 120, 120, 120, 120, 120, 120, 120, 176, 176, 160, 163, 166, 169, 172, 175}, // SKINCOLOR_GSUPER2 {120, 120, 120, 120, 120, 120, 176, 176, 160, 162, 164, 166, 168, 170, 172, 175}, // SKINCOLOR_GSUPER3 @@ -314,11 +366,6 @@ UINT8 colortranslations[MAXTRANSLATIONS][16] = { {120, 120, 120, 120, 120, 120, 96, 97, 98, 99, 81, 81, 70, 73, 76, 79}, // SKINCOLOR_CSUPER3 {120, 120, 120, 120, 96, 96, 97, 98, 99, 81, 81, 70, 72, 74, 76, 79}, // SKINCOLOR_CSUPER4 {120, 120, 96, 96, 97, 98, 98, 99, 81, 81, 69, 71, 73, 75, 77, 79}, // SKINCOLOR_CSUPER5 - {120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 208, 210, 212, 215, 220, 222}, // SKINCOLOR_ASUPER1 - {120, 120, 120, 120, 120, 120, 120, 120, 208, 209, 211, 213, 215, 220, 221, 223}, // SKINCOLOR_ASUPER2 - {120, 120, 120, 120, 120, 120, 208, 209, 210, 211, 212, 213, 215, 220, 221, 223}, // SKINCOLOR_ASUPER3 - {120, 120, 120, 120, 208, 209, 210, 211, 212, 213, 214, 215, 220, 221, 222, 223}, // SKINCOLOR_ASUPER4 - {120, 120, 208, 208, 209, 210, 211, 211, 212, 213, 214, 215, 220, 221, 222, 223}, // SKINCOLOR_ASUPER5 // MAXTRANSLATIONS }; @@ -4317,7 +4364,7 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd) else { player->mo->colorized = true; - player->mo->color = SKINCOLOR_SCARLET; + player->mo->color = SKINCOLOR_CRIMSON; } } else if (player->kartstuff[k_invincibilitytimer]) // setting players to use the star colormap and spawning afterimages @@ -8698,13 +8745,13 @@ void K_drawKartHUD(void) for (c = 1; c < MAXSKINCOLORS; c++) { UINT8 *cm = R_GetTranslationColormap(TC_RAINBOW, c, 0); - V_DrawFixedPatch(x<skin], cm); + V_DrawFixedPatch(x<>1, 0, facewantprefix[stplyr->skin], cm); - x += 30; - if (x > BASEVIDWIDTH-30) + x += 16; + if (x > BASEVIDWIDTH-16) { x = 0; - y += 30; + y += 16; } } } From f0a0666223f90f8e83bea5d3595de624789f7b14 Mon Sep 17 00:00:00 2001 From: James R Date: Sat, 2 Mar 2019 15:56:44 -0800 Subject: [PATCH 10/21] Use long double suffix --- src/doomdef.h | 6 +++++- src/hardware/hw_bsp.c | 2 +- src/hardware/hw_dll.h | 3 --- src/hardware/r_opengl/r_opengl.c | 2 +- src/r_plane.c | 2 +- 5 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/doomdef.h b/src/doomdef.h index ab863c6f..59b1235a 100644 --- a/src/doomdef.h +++ b/src/doomdef.h @@ -471,13 +471,17 @@ INT32 I_GetKey(void); #define max(x, y) (((x) > (y)) ? (x) : (y)) #endif +#ifndef M_PIl +#define M_PIl 3.1415926535897932384626433832795029L +#endif + // Floating point comparison epsilons from float.h #ifndef FLT_EPSILON #define FLT_EPSILON 1.1920928955078125e-7f #endif #ifndef DBL_EPSILON -#define DBL_EPSILON 2.2204460492503131e-16 +#define DBL_EPSILON 2.2204460492503131e-16l #endif // An assert-type mechanism. diff --git a/src/hardware/hw_bsp.c b/src/hardware/hw_bsp.c index 48393249..9e454bcd 100644 --- a/src/hardware/hw_bsp.c +++ b/src/hardware/hw_bsp.c @@ -201,7 +201,7 @@ static polyvertex_t *fracdivline(fdivline_t *bsp, polyvertex_t *v1, // (do not accept hit with the extensions) num = (v2x - v1x)*v2dy + (v1y - v2y)*v2dx; frac = num / den; - if (frac < 0.0 || frac > 1.0) + if (frac < 0.0l || frac > 1.0l) return NULL; // now get the frac along the BSP line diff --git a/src/hardware/hw_dll.h b/src/hardware/hw_dll.h index 6b9f4d53..46645278 100644 --- a/src/hardware/hw_dll.h +++ b/src/hardware/hw_dll.h @@ -61,9 +61,6 @@ typedef void (*I_Error_t) (const char *error, ...) FUNCIERROR; // ========================================================================== // Constants -#ifndef M_PIl -#define M_PIl 3.1415926535897932384626433832795029L -#endif #define DEGREE (0.017453292519943295769236907684883l) // 2*PI/360 void DBG_Printf(const char *lpFmt, ...) /*FUNCPRINTF*/; diff --git a/src/hardware/r_opengl/r_opengl.c b/src/hardware/r_opengl/r_opengl.c index 3a8be6a0..8b3787da 100644 --- a/src/hardware/r_opengl/r_opengl.c +++ b/src/hardware/r_opengl/r_opengl.c @@ -2088,7 +2088,7 @@ EXPORT void HWRAPI(SetTransform) (FTransform *stransform) pglLoadIdentity(); if (special_splitscreen) { - used_fov = atan(tan(used_fov*M_PI/360)*0.8)*360/M_PI; + used_fov = atan(tan(used_fov*M_PIl/360.0l)*0.8l)*360/M_PIl; GLPerspective(used_fov, 2*ASPECT_RATIO); } else diff --git a/src/r_plane.c b/src/r_plane.c index 3c1fc30e..0ff97fcc 100644 --- a/src/r_plane.c +++ b/src/r_plane.c @@ -1051,7 +1051,7 @@ void R_DrawSinglePlane(visplane_t *pl) temp = P_GetZAt(pl->slope, pl->viewx, pl->viewy); zeroheight = FIXED_TO_FLOAT(temp); -#define ANG2RAD(angle) ((float)((angle)*M_PI)/ANGLE_180) +#define ANG2RAD(angle) ((float)((angle)*M_PIl)/ANGLE_180) // p is the texture origin in view space // Don't add in the offsets at this stage, because doing so can result in From f57335deef0fc4fbd866a531700032aa64b5f92c Mon Sep 17 00:00:00 2001 From: James R Date: Mon, 4 Mar 2019 22:13:22 -0800 Subject: [PATCH 11/21] Check that lumps are okay --- src/p_saveg.c | 149 +++++++++++++++++++++++++------------------------- 1 file changed, 76 insertions(+), 73 deletions(-) diff --git a/src/p_saveg.c b/src/p_saveg.c index 975a4a5d..884c768f 100644 --- a/src/p_saveg.c +++ b/src/p_saveg.c @@ -677,84 +677,87 @@ static void P_NetArchiveWorld(void) mld = W_CacheLumpNum(lastloadedmaplumpnum+ML_LINEDEFS, PU_CACHE); msd = W_CacheLumpNum(lastloadedmaplumpnum+ML_SIDEDEFS, PU_CACHE); - // do lines - for (i = 0; i < numlines; i++, mld++, li++) + if (mld && msd) { - diff = diff2 = 0; - - if (li->special != SHORT(mld->special)) - diff |= LD_SPECIAL; - - if (SHORT(mld->special) == 321 || SHORT(mld->special) == 322) // only reason li->callcount would be non-zero is if either of these are involved - diff |= LD_CLLCOUNT; - - if (li->sidenum[0] != 0xffff) + // do lines + for (i = 0; i < numlines; i++, mld++, li++) { - si = &sides[li->sidenum[0]]; - if (si->textureoffset != SHORT(msd[li->sidenum[0]].textureoffset)<sidenum[0]].toptexture) != -1 - && si->toptexture != R_TextureNumForName(msd[li->sidenum[0]].toptexture)) - diff |= LD_S1TOPTEX; - if (R_CheckTextureNumForName(msd[li->sidenum[0]].bottomtexture) != -1 - && si->bottomtexture != R_TextureNumForName(msd[li->sidenum[0]].bottomtexture)) - diff |= LD_S1BOTTEX; - if (R_CheckTextureNumForName(msd[li->sidenum[0]].midtexture) != -1 - && si->midtexture != R_TextureNumForName(msd[li->sidenum[0]].midtexture)) - diff |= LD_S1MIDTEX; - } - if (li->sidenum[1] != 0xffff) - { - si = &sides[li->sidenum[1]]; - if (si->textureoffset != SHORT(msd[li->sidenum[1]].textureoffset)<sidenum[1]].toptexture) != -1 - && si->toptexture != R_TextureNumForName(msd[li->sidenum[1]].toptexture)) - diff2 |= LD_S2TOPTEX; - if (R_CheckTextureNumForName(msd[li->sidenum[1]].bottomtexture) != -1 - && si->bottomtexture != R_TextureNumForName(msd[li->sidenum[1]].bottomtexture)) - diff2 |= LD_S2BOTTEX; - if (R_CheckTextureNumForName(msd[li->sidenum[1]].midtexture) != -1 - && si->midtexture != R_TextureNumForName(msd[li->sidenum[1]].midtexture)) - diff2 |= LD_S2MIDTEX; - if (diff2) - diff |= LD_DIFF2; - } + diff = diff2 = 0; - if (diff) - { - statline++; - WRITEINT16(put, i); - WRITEUINT8(put, diff); - if (diff & LD_DIFF2) - WRITEUINT8(put, diff2); - if (diff & LD_FLAG) - WRITEINT16(put, li->flags); - if (diff & LD_SPECIAL) - WRITEINT16(put, li->special); - if (diff & LD_CLLCOUNT) - WRITEINT16(put, li->callcount); + if (li->special != SHORT(mld->special)) + diff |= LD_SPECIAL; - si = &sides[li->sidenum[0]]; - if (diff & LD_S1TEXOFF) - WRITEFIXED(put, si->textureoffset); - if (diff & LD_S1TOPTEX) - WRITEINT32(put, si->toptexture); - if (diff & LD_S1BOTTEX) - WRITEINT32(put, si->bottomtexture); - if (diff & LD_S1MIDTEX) - WRITEINT32(put, si->midtexture); + if (SHORT(mld->special) == 321 || SHORT(mld->special) == 322) // only reason li->callcount would be non-zero is if either of these are involved + diff |= LD_CLLCOUNT; - si = &sides[li->sidenum[1]]; - if (diff2 & LD_S2TEXOFF) - WRITEFIXED(put, si->textureoffset); - if (diff2 & LD_S2TOPTEX) - WRITEINT32(put, si->toptexture); - if (diff2 & LD_S2BOTTEX) - WRITEINT32(put, si->bottomtexture); - if (diff2 & LD_S2MIDTEX) - WRITEINT32(put, si->midtexture); + if (li->sidenum[0] != 0xffff) + { + si = &sides[li->sidenum[0]]; + if (si->textureoffset != SHORT(msd[li->sidenum[0]].textureoffset)<sidenum[0]].toptexture) != -1 + && si->toptexture != R_TextureNumForName(msd[li->sidenum[0]].toptexture)) + diff |= LD_S1TOPTEX; + if (R_CheckTextureNumForName(msd[li->sidenum[0]].bottomtexture) != -1 + && si->bottomtexture != R_TextureNumForName(msd[li->sidenum[0]].bottomtexture)) + diff |= LD_S1BOTTEX; + if (R_CheckTextureNumForName(msd[li->sidenum[0]].midtexture) != -1 + && si->midtexture != R_TextureNumForName(msd[li->sidenum[0]].midtexture)) + diff |= LD_S1MIDTEX; + } + if (li->sidenum[1] != 0xffff) + { + si = &sides[li->sidenum[1]]; + if (si->textureoffset != SHORT(msd[li->sidenum[1]].textureoffset)<sidenum[1]].toptexture) != -1 + && si->toptexture != R_TextureNumForName(msd[li->sidenum[1]].toptexture)) + diff2 |= LD_S2TOPTEX; + if (R_CheckTextureNumForName(msd[li->sidenum[1]].bottomtexture) != -1 + && si->bottomtexture != R_TextureNumForName(msd[li->sidenum[1]].bottomtexture)) + diff2 |= LD_S2BOTTEX; + if (R_CheckTextureNumForName(msd[li->sidenum[1]].midtexture) != -1 + && si->midtexture != R_TextureNumForName(msd[li->sidenum[1]].midtexture)) + diff2 |= LD_S2MIDTEX; + if (diff2) + diff |= LD_DIFF2; + } + + if (diff) + { + statline++; + WRITEINT16(put, i); + WRITEUINT8(put, diff); + if (diff & LD_DIFF2) + WRITEUINT8(put, diff2); + if (diff & LD_FLAG) + WRITEINT16(put, li->flags); + if (diff & LD_SPECIAL) + WRITEINT16(put, li->special); + if (diff & LD_CLLCOUNT) + WRITEINT16(put, li->callcount); + + si = &sides[li->sidenum[0]]; + if (diff & LD_S1TEXOFF) + WRITEFIXED(put, si->textureoffset); + if (diff & LD_S1TOPTEX) + WRITEINT32(put, si->toptexture); + if (diff & LD_S1BOTTEX) + WRITEINT32(put, si->bottomtexture); + if (diff & LD_S1MIDTEX) + WRITEINT32(put, si->midtexture); + + si = &sides[li->sidenum[1]]; + if (diff2 & LD_S2TEXOFF) + WRITEFIXED(put, si->textureoffset); + if (diff2 & LD_S2TOPTEX) + WRITEINT32(put, si->toptexture); + if (diff2 & LD_S2BOTTEX) + WRITEINT32(put, si->bottomtexture); + if (diff2 & LD_S2MIDTEX) + WRITEINT32(put, si->midtexture); + } } } WRITEUINT16(put, 0xffff); From ae14d967ea1ce5a1e31a7525bcde222e6a05c5d4 Mon Sep 17 00:00:00 2001 From: Sally Cochenour Date: Tue, 5 Mar 2019 17:50:43 -0500 Subject: [PATCH 12/21] Misc changes - Start cooldown deactivates exactly 30 sec, instead of after 30 seconds. Barely affects gameplay but it looks slightly less of a magic number looking at the code. - Prevent multiple Thunder Shields being out via normal means. - Slightly loosened up the invincibility item limits -- gives more invincibility items sooner for odd player counts but doesn't affect the numbers for the game's balancing points (4P, 8P) - Update comments --- src/k_kart.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/src/k_kart.c b/src/k_kart.c index 10e12da8..b7bf8653 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -681,6 +681,7 @@ static INT32 K_KartGetItemOdds(UINT8 pos, SINT8 item, fixed_t mashed) INT32 newodds; INT32 i; UINT8 pingame = 0, pexiting = 0, pinvin = 0; + boolean thunderisout = false; SINT8 first = -1, second = -1; INT32 secondist = 0; boolean itemenabled[NUMKARTRESULTS-1] = { @@ -725,10 +726,13 @@ static INT32 K_KartGetItemOdds(UINT8 pos, SINT8 item, fixed_t mashed) { if (!playeringame[i] || players[i].spectator) continue; + if (!G_BattleGametype() || players[i].kartstuff[k_bumper]) pingame++; + if (players[i].exiting) pexiting++; + if (players[i].mo) { if (players[i].kartstuff[k_itemtype] == KITEM_INVINCIBILITY @@ -736,6 +740,10 @@ static INT32 K_KartGetItemOdds(UINT8 pos, SINT8 item, fixed_t mashed) || players[i].kartstuff[k_invincibilitytimer] || players[i].kartstuff[k_growshrinktimer] > 0) pinvin++; + + if (players[i].kartstuff[k_itemtype] == KITEM_THUNDERSHIELD) + thunderisout = true; + if (!G_BattleGametype()) { if (players[i].kartstuff[k_position] == 1 && first == -1) @@ -759,9 +767,9 @@ static INT32 K_KartGetItemOdds(UINT8 pos, SINT8 item, fixed_t mashed) // POWERITEMODDS handles all of the "frantic item" related functionality, for all of our powerful items. // First, it multiplies it by 2 if franticitems is true; easy-peasy. // Next, it multiplies it again if it's in SPB mode and 2nd needs to apply pressure to 1st. - // Then, it multiplies it further if there's less than 5 players in game. - // This is done to make low player count races more fair & interesting. (2P normal would be about halfway between 8P normal and 8P frantic) - // Lastly, it *divides* it by your mashed value, which was determined in K_KartItemRoulette, to punish those who are impatient. + // Then, it multiplies it further if the player count isn't equal to 8. + // This is done to make low player count races more interesting and high player count rates more fair. (2P normal would be about halfway between 8P normal and 8P frantic) + // Lastly, it *divides* it by your mashed value, which was determined in K_KartItemRoulette, for lesser items needed in a pinch. #define POWERITEMODDS(odds) \ if (franticitems) \ odds <<= 1; \ @@ -769,13 +777,13 @@ static INT32 K_KartGetItemOdds(UINT8 pos, SINT8 item, fixed_t mashed) if (mashed > 0) \ odds = FixedDiv(odds<> FRACBITS \ -#define COOLDOWNONSTART (leveltime < (31*TICRATE)+starttime) +#define COOLDOWNONSTART (leveltime < (30*TICRATE)+starttime) switch (item) { case KITEM_INVINCIBILITY: case KITEM_GROW: - if (pinvin >= max(1, (pingame+2) / 4) || COOLDOWNONSTART) + if (pinvin >= max(1, (pingame+3) / 4) || COOLDOWNONSTART) newodds = 0; else POWERITEMODDS(newodds); @@ -783,7 +791,6 @@ static INT32 K_KartGetItemOdds(UINT8 pos, SINT8 item, fixed_t mashed) case KITEM_ROCKETSNEAKER: case KITEM_JAWZ: case KITEM_BALLHOG: - case KITEM_THUNDERSHIELD: case KRITEM_TRIPLESNEAKER: case KRITEM_TRIPLEBANANA: case KRITEM_TENFOLDBANANA: @@ -811,6 +818,11 @@ static INT32 K_KartGetItemOdds(UINT8 pos, SINT8 item, fixed_t mashed) else POWERITEMODDS(newodds); break; + case KITEM_THUNDERSHIELD: + if (thunderisout) + newodds = 0; + else + POWERITEMODDS(newodds); case KITEM_HYUDORO: if ((hyubgone > 0) || COOLDOWNONSTART) newodds = 0; From 5760e106e5a6859d082779cb5a157e24ae750bd0 Mon Sep 17 00:00:00 2001 From: Sally Cochenour Date: Tue, 5 Mar 2019 19:45:20 -0500 Subject: [PATCH 13/21] SPB updates - SPB Rush odds are not affected by player count. - Thunder Shield cannot be rolled with SPB out. - Reticule is displayed on minimap while SPB is out. --- src/k_kart.c | 35 ++++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/src/k_kart.c b/src/k_kart.c index b7bf8653..4c59f1e0 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -675,7 +675,7 @@ static void K_KartGetItemResult(player_t *player, SINT8 getitem) \return void */ -static INT32 K_KartGetItemOdds(UINT8 pos, SINT8 item, fixed_t mashed) +static INT32 K_KartGetItemOdds(UINT8 pos, SINT8 item, fixed_t mashed, boolean spbrush) { const INT32 distvar = (64*14); INT32 newodds; @@ -768,12 +768,17 @@ static INT32 K_KartGetItemOdds(UINT8 pos, SINT8 item, fixed_t mashed) // First, it multiplies it by 2 if franticitems is true; easy-peasy. // Next, it multiplies it again if it's in SPB mode and 2nd needs to apply pressure to 1st. // Then, it multiplies it further if the player count isn't equal to 8. - // This is done to make low player count races more interesting and high player count rates more fair. (2P normal would be about halfway between 8P normal and 8P frantic) + // This is done to make low player count races more interesting and high player count rates more fair. + // (2P normal would be about halfway between 8P normal and 8P frantic.) + // (This scaling is not done for SPB Rush, so that catchup strength is not weakened.) // Lastly, it *divides* it by your mashed value, which was determined in K_KartItemRoulette, for lesser items needed in a pinch. + +#define PLAYERSCALING (8 - (spbrush ? 2 : pingame)) + #define POWERITEMODDS(odds) \ if (franticitems) \ odds <<= 1; \ - odds = FixedMul(odds<> FRACBITS; \ + odds = FixedMul(odds<> FRACBITS; \ if (mashed > 0) \ odds = FixedDiv(odds<> FRACBITS \ @@ -860,7 +865,7 @@ static INT32 K_FindUseodds(player_t *player, fixed_t mashed, INT32 pingame, INT3 for (j = 1; j < NUMKARTRESULTS; j++) { - if (K_KartGetItemOdds(i, j, mashed) > 0) + if (K_KartGetItemOdds(i, j, mashed, spbrush) > 0) { available = true; break; @@ -966,6 +971,7 @@ static void K_KartItemRoulette(player_t *player, ticcmd_t *cmd) INT32 bestbumper = 0; fixed_t mashed = 0; boolean dontforcespb = false; + boolean spbrush = false; // This makes the roulette cycle through items - if this is 0, you shouldn't be here. if (player->kartstuff[k_itemroulette]) @@ -1058,15 +1064,18 @@ static void K_KartItemRoulette(player_t *player, ticcmd_t *cmd) return; } + if (G_RaceGametype()) + spbrush = (spbplace != -1 && player->kartstuff[k_position] == spbplace+1); + // Initializes existing spawnchance values for (i = 0; i < NUMKARTRESULTS; i++) spawnchance[i] = 0; // Split into another function for a debug function below - useodds = K_FindUseodds(player, mashed, pingame, bestbumper, (spbplace != -1 && player->kartstuff[k_position] == spbplace+1), dontforcespb); + useodds = K_FindUseodds(player, mashed, pingame, bestbumper, spbrush, dontforcespb); for (i = 1; i < NUMKARTRESULTS; i++) - spawnchance[i] = (totalspawnchance += K_KartGetItemOdds(useodds, i, mashed)); + spawnchance[i] = (totalspawnchance += K_KartGetItemOdds(useodds, i, mashed, spbrush)); // Award the player whatever power is rolled if (totalspawnchance > 0) @@ -7859,8 +7868,12 @@ static void K_drawKartMinimapHead(mobj_t *mo, INT32 x, INT32 y, INT32 flags, pat else colormap = R_GetTranslationColormap(skin, mo->color, GTC_CACHE); V_DrawFixedPatch(amxpos, amypos, FRACUNIT, flags, facemmapprefix[skin], colormap); - if (mo->player && K_IsPlayerWanted(mo->player)) + if (mo->player + && ((G_RaceGametype() && mo->player->kartstuff[k_position] == spbplace) + || (G_BattleGametype() && K_IsPlayerWanted(mo->player)))) + { V_DrawFixedPatch(amxpos - (4<kartstuff[k_position] == spbplace+1), dontforcespb); + if (G_RaceGametype()) + spbrush = (spbplace != -1 && stplyr->kartstuff[k_position] == spbplace+1); + + useodds = K_FindUseodds(stplyr, 0, pingame, bestbumper, spbrush, dontforcespb); for (i = 1; i < NUMKARTRESULTS; i++) { - const INT32 itemodds = K_KartGetItemOdds(useodds, i, 0); + const INT32 itemodds = K_KartGetItemOdds(useodds, i, 0, spbrush); if (itemodds <= 0) continue; From 36a7e88e6382aeb2878364eb4bb2cab46a7b2664 Mon Sep 17 00:00:00 2001 From: Sally Cochenour Date: Tue, 5 Mar 2019 20:49:11 -0500 Subject: [PATCH 14/21] Mine updates - Increase gravity of super-forward throws - Revert explosion radius change - Nerf generic explosion stun (SPB explosion stun is identical) --- src/info.c | 4 ++-- src/k_kart.c | 19 +++++++++++++++---- src/p_mobj.c | 6 ++++-- 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/src/info.c b/src/info.c index 270e21fd..41711fa4 100644 --- a/src/info.c +++ b/src/info.c @@ -15577,7 +15577,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = 0, // reactiontime sfx_None, // attacksound S_NULL, // painstate - 128*FRACUNIT, // painchance + 192*FRACUNIT, // painchance sfx_None, // painsound S_NULL, // meleestate S_NULL, // missilestate @@ -15604,7 +15604,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = 8, // reactiontime sfx_None, // attacksound S_NULL, // painstate - 128*FRACUNIT, // painchance + 192*FRACUNIT, // painchance sfx_None, // painsound S_NULL, // meleestate S_NULL, // missilestate diff --git a/src/k_kart.c b/src/k_kart.c index 4c59f1e0..b1c96773 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -2217,6 +2217,7 @@ void K_ExplodePlayer(player_t *player, mobj_t *source, mobj_t *inflictor) // A b #ifdef HAVE_BLUA boolean force = false; // Used to check if Lua ShouldExplode should get us damaged reguardless of flashtics or heck knows what. UINT8 shouldForce = LUAh_ShouldExplode(player, inflictor, source); + if (P_MobjWasRemoved(player->mo)) return; // mobj was removed (in theory that shouldn't happen) if (shouldForce == 1) @@ -2227,6 +2228,7 @@ void K_ExplodePlayer(player_t *player, mobj_t *source, mobj_t *inflictor) // A b #else static const boolean force = false; #endif + if (G_BattleGametype()) { if (K_IsPlayerWanted(player)) @@ -2308,13 +2310,13 @@ void K_ExplodePlayer(player_t *player, mobj_t *source, mobj_t *inflictor) // A b } player->kartstuff[k_spinouttype] = 1; - player->kartstuff[k_spinouttimer] = 2*TICRATE+(TICRATE/2); + player->kartstuff[k_spinouttimer] = (3*TICRATE/2)+2; player->powers[pw_flashing] = K_GetKartFlashing(player); if (inflictor && inflictor->type == MT_SPBEXPLOSION && inflictor->extravalue1) { - player->kartstuff[k_spinouttimer] = ((3*player->kartstuff[k_spinouttimer])/2)+1; + player->kartstuff[k_spinouttimer] = ((5*player->kartstuff[k_spinouttimer])/2)+1; player->mo->momz *= 2; } @@ -3048,12 +3050,19 @@ static mobj_t *K_ThrowKartItem(player_t *player, boolean missile, mobjtype_t map { if (altthrow == 2) // Kitchen sink throwing { +#if 0 if (player->kartstuff[k_throwdir] == 1) dir = 3; else if (player->kartstuff[k_throwdir] == -1) dir = 1; else dir = 2; +#else + if (player->kartstuff[k_throwdir] == 1) + dir = 2; + else + dir = 1; +#endif } else { @@ -3129,10 +3138,12 @@ static mobj_t *K_ThrowKartItem(player_t *player, boolean missile, mobjtype_t map angle_t fa = player->mo->angle>>ANGLETOFINESHIFT; fixed_t HEIGHT = (20 + (dir*10))*mapobjectscale + player->mo->momz; - mo->momx = player->mo->momx + FixedMul(FINECOSINE(fa), PROJSPEED); - mo->momy = player->mo->momy + FixedMul(FINESINE(fa), PROJSPEED); + mo->momx = player->mo->momx + FixedMul(FINECOSINE(fa), PROJSPEED*dir); + mo->momy = player->mo->momy + FixedMul(FINESINE(fa), PROJSPEED*dir); mo->momz = P_MobjFlip(player->mo) * HEIGHT; + mo->extravalue2 = dir; + if (mo->eflags & MFE_UNDERWATER) mo->momz = (117 * mo->momz) / 200; diff --git a/src/p_mobj.c b/src/p_mobj.c index da35f538..f1074e0f 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -1404,11 +1404,13 @@ fixed_t P_GetMobjGravity(mobj_t *mo) break; case MT_BANANA: case MT_EGGMANITEM: + case MT_SSMINE: + case MT_SINK: + gravityadd *= mo->extravalue2; + /* FALLTHRU */ case MT_ORBINAUT: case MT_JAWZ: case MT_JAWZ_DUD: - case MT_SSMINE: - case MT_SINK: gravityadd = (5*gravityadd)/2; break; case MT_SIGN: From 4e570739fe10b38bb940d4b4af304ec9754f2c44 Mon Sep 17 00:00:00 2001 From: Sally Cochenour Date: Tue, 5 Mar 2019 20:56:02 -0500 Subject: [PATCH 15/21] Make smoke opaque to reduce lag --- src/dehacked.c | 7 +++++++ src/info.c | 17 ++++++++++++----- src/k_kart.c | 2 ++ src/p_mobj.c | 2 ++ 4 files changed, 23 insertions(+), 5 deletions(-) diff --git a/src/dehacked.c b/src/dehacked.c index 530b6906..231f0aa8 100644 --- a/src/dehacked.c +++ b/src/dehacked.c @@ -7150,6 +7150,13 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit "S_KARMAFIREWORK4", "S_KARMAFIREWORKTRAIL", + // Opaque smoke version, to prevent lag + "S_OPAQUESMOKE1", + "S_OPAQUESMOKE2", + "S_OPAQUESMOKE3", + "S_OPAQUESMOKE4", + "S_OPAQUESMOKE5", + #ifdef SEENAMES "S_NAMECHECK", #endif diff --git a/src/info.c b/src/info.c index 41711fa4..84cb4cd4 100644 --- a/src/info.c +++ b/src/info.c @@ -3140,11 +3140,11 @@ state_t states[NUMSTATES] = {SPR_NULL, 0, 1, {A_FZBoomSmoke}, 1, 0, S_FZEROBOOM12}, // S_FZEROBOOM11 {SPR_NULL, 0, 1, {A_FZBoomSmoke}, 0, 0, S_NULL}, // S_FZEROBOOM12 - {SPR_SMOK, FF_TRANS30, 30, {NULL}, 0, 0, S_FZSLOWSMOKE2}, // S_FZSLOWSMOKE1 - {SPR_SMOK, FF_TRANS30|1, 30, {NULL}, 0, 0, S_FZSLOWSMOKE3}, // S_FZSLOWSMOKE2 - {SPR_SMOK, FF_TRANS30|2, 30, {NULL}, 0, 0, S_FZSLOWSMOKE4}, // S_FZSLOWSMOKE3 - {SPR_SMOK, FF_TRANS30|3, 30, {NULL}, 0, 0, S_FZSLOWSMOKE5}, // S_FZSLOWSMOKE4 - {SPR_SMOK, FF_TRANS30|4, 30, {NULL}, 0, 0, S_NULL}, // S_FZSLOWSMOKE5 + {SPR_SMOK, 0, 30, {NULL}, 0, 0, S_FZSLOWSMOKE2}, // S_FZSLOWSMOKE1 + {SPR_SMOK, 1, 30, {NULL}, 0, 0, S_FZSLOWSMOKE3}, // S_FZSLOWSMOKE2 + {SPR_SMOK, 2, 30, {NULL}, 0, 0, S_FZSLOWSMOKE4}, // S_FZSLOWSMOKE3 + {SPR_SMOK, 3, 30, {NULL}, 0, 0, S_FZSLOWSMOKE5}, // S_FZSLOWSMOKE4 + {SPR_SMOK, 4, 30, {NULL}, 0, 0, S_NULL}, // S_FZSLOWSMOKE5 // Various plants {SPR_SBUS, 0, -1, {NULL}, 0, 0, S_NULL}, // S_SONICBUSH @@ -3394,6 +3394,13 @@ state_t states[NUMSTATES] = {SPR_FWRK, 3|FF_FULLBRIGHT, 2, {NULL}, 0, 0, S_KARMAFIREWORK1}, // S_KARMAFIREWORK4 {SPR_FWRK, 4|FF_FULLBRIGHT, TICRATE, {NULL}, 0, 0, S_NULL}, // S_KARMAFIREWORKTRAIL + // Opaque smoke + {SPR_SMOK, 0, 4, {NULL}, 0, 0, S_OPAQUESMOKE2}, // S_OPAQUESMOKE1 + {SPR_SMOK, 1, 5, {NULL}, 0, 0, S_OPAQUESMOKE3}, // S_OPAQUESMOKE2 + {SPR_SMOK, 2, 6, {NULL}, 0, 0, S_OPAQUESMOKE4}, // S_OPAQUESMOKE3 + {SPR_SMOK, 3, 7, {NULL}, 0, 0, S_OPAQUESMOKE5}, // S_OPAQUESMOKE4 + {SPR_SMOK, 4, 8, {NULL}, 0, 0, S_NULL}, // S_OPAQUESMOKE5 + #ifdef SEENAMES {SPR_NULL, 0, 1, {NULL}, 0, 0, S_NULL}, // S_NAMECHECK #endif diff --git a/src/k_kart.c b/src/k_kart.c index b1c96773..dee5df73 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -2515,6 +2515,7 @@ void K_SpawnMineExplosion(mobj_t *source, UINT8 color) for (i = 0; i < 32; i++) { dust = P_SpawnMobj(source->x, source->y, source->z, MT_SMOKE); + P_SetMobjState(dust, S_OPAQUESMOKE1); dust->angle = (ANGLE_180/16) * i; P_SetScale(dust, source->scale); dust->destscale = source->scale*10; @@ -2542,6 +2543,7 @@ void K_SpawnMineExplosion(mobj_t *source, UINT8 color) dust = P_SpawnMobj(source->x + P_RandomRange(-radius, radius)*FRACUNIT, source->y + P_RandomRange(-radius, radius)*FRACUNIT, source->z + P_RandomRange(0, height)*FRACUNIT, MT_SMOKE); + P_SetMobjState(dust, S_OPAQUESMOKE1); P_SetScale(dust, source->scale); dust->destscale = source->scale*10; dust->scalespeed = source->scale/12; diff --git a/src/p_mobj.c b/src/p_mobj.c index f1074e0f..6d36dcc9 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -6653,6 +6653,7 @@ void P_MobjThinker(mobj_t *mobj) fixed_t y = P_RandomRange(-35, 35)*mobj->scale; fixed_t z = P_RandomRange(0, 70)*mobj->scale; mobj_t *smoke = P_SpawnMobj(mobj->x + x, mobj->y + y, mobj->z + z, MT_SMOKE); + P_SetMobjState(smoke, S_OPAQUESMOKE1); smoke->scale = mobj->scale * 2; smoke->destscale = mobj->scale * 6; smoke->momz = P_RandomRange(4, 9)*FRACUNIT; @@ -6674,6 +6675,7 @@ void P_MobjThinker(mobj_t *mobj) else { mobj_t *smoke = P_SpawnMobj(mobj->x + x, mobj->y + y, mobj->z + z, MT_SMOKE); + P_SetMobjState(smoke, S_OPAQUESMOKE1); smoke->scale = mobj->scale; smoke->destscale = mobj->scale*2; } From a3e00bdb0e6640d6d98a27498d2b9f5c1731864c Mon Sep 17 00:00:00 2001 From: Sally Cochenour Date: Tue, 5 Mar 2019 21:25:37 -0500 Subject: [PATCH 16/21] uncommited change... :anger: --- src/info.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/info.h b/src/info.h index 157c72e1..0e23a07c 100644 --- a/src/info.h +++ b/src/info.h @@ -4052,6 +4052,12 @@ typedef enum state S_KARMAFIREWORK4, S_KARMAFIREWORKTRAIL, + S_OPAQUESMOKE1, + S_OPAQUESMOKE2, + S_OPAQUESMOKE3, + S_OPAQUESMOKE4, + S_OPAQUESMOKE5, + #ifdef SEENAMES S_NAMECHECK, #endif From 171ca1670e6e164eb669b2bcc84eda2779539db0 Mon Sep 17 00:00:00 2001 From: Sally Cochenour Date: Tue, 5 Mar 2019 22:02:41 -0500 Subject: [PATCH 17/21] Add banana snipe sound effect to eggboxes & sinks --- src/p_inter.c | 4 ++++ src/p_map.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/p_inter.c b/src/p_inter.c index dd27858f..824d714d 100644 --- a/src/p_inter.c +++ b/src/p_inter.c @@ -411,6 +411,10 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck) player->kartstuff[k_roulettetype] = 2; } + // Eggbox snipe! + if (special->type == MT_EGGMANITEM && special->health > 1) + S_StartSound(toucher, sfx_bsnipe); + { mobj_t *poof = P_SpawnMobj(special->x, special->y, special->z, MT_EXPLODE); S_StartSound(poof, special->info->deathsound); diff --git a/src/p_map.c b/src/p_map.c index d3680c6c..843f588c 100644 --- a/src/p_map.c +++ b/src/p_map.c @@ -853,7 +853,7 @@ static boolean PIT_CheckThing(mobj_t *thing) if (thing->type == MT_PLAYER) { - S_StartSound(NULL, sfx_cgot); //let all players hear it. + S_StartSound(NULL, sfx_bsnipe); //let all players hear it. HU_SetCEchoFlags(0); HU_SetCEchoDuration(5); HU_DoCEcho(va("%s\\was hit by a kitchen sink.\\\\\\\\", player_names[thing->player-players])); From f230e0d6447ff71b9de47825d65d6f2e44daa2db Mon Sep 17 00:00:00 2001 From: Sally Cochenour Date: Tue, 5 Mar 2019 22:06:47 -0500 Subject: [PATCH 18/21] Put eggbox sniping behind an #if On second thought, the old method is "sneakier" --- src/p_inter.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/p_inter.c b/src/p_inter.c index 824d714d..7da581a5 100644 --- a/src/p_inter.c +++ b/src/p_inter.c @@ -411,9 +411,11 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck) player->kartstuff[k_roulettetype] = 2; } +#if 0 // Eggbox snipe! if (special->type == MT_EGGMANITEM && special->health > 1) S_StartSound(toucher, sfx_bsnipe); +#endif { mobj_t *poof = P_SpawnMobj(special->x, special->y, special->z, MT_EXPLODE); From f5fe0736274a2adb5eea62ff34bc153d6ec4f0cd Mon Sep 17 00:00:00 2001 From: Sally Cochenour Date: Wed, 6 Mar 2019 01:53:52 -0500 Subject: [PATCH 19/21] Fix floating lob items --- src/p_mobj.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/p_mobj.c b/src/p_mobj.c index 6d36dcc9..7f4e747c 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -1406,7 +1406,8 @@ fixed_t P_GetMobjGravity(mobj_t *mo) case MT_EGGMANITEM: case MT_SSMINE: case MT_SINK: - gravityadd *= mo->extravalue2; + if (mo->extravalue2 > 0) + gravityadd *= mo->extravalue2; /* FALLTHRU */ case MT_ORBINAUT: case MT_JAWZ: From c18935fbddd63db52a4735667179412e21aef12d Mon Sep 17 00:00:00 2001 From: Sally Cochenour Date: Wed, 6 Mar 2019 03:15:07 -0500 Subject: [PATCH 20/21] Reorder colors, ensure colored names are set properly --- src/dehacked.c | 18 +++--- src/doomdef.h | 12 ++-- src/hu_stuff.c | 163 ++++++++++++++++++++++++++++++++++++++----------- src/k_kart.c | 42 ++++++------- 4 files changed, 164 insertions(+), 71 deletions(-) diff --git a/src/dehacked.c b/src/dehacked.c index 0088f664..421d5b44 100644 --- a/src/dehacked.c +++ b/src/dehacked.c @@ -8140,6 +8140,8 @@ static const char *COLOR_ENUMS[] = { // Rejigged for Kart. "GREY", // SKINCOLOR_GREY "NICKEL", // SKINCOLOR_NICKEL "BLACK", // SKINCOLOR_BLACK + "FAIRY", // SKINCOLOR_FAIRY + "POPCORN", // SKINCOLOR_POPCORN "SEPIA", // SKINCOLOR_SEPIA "BEIGE", // SKINCOLOR_BEIGE "BROWN", // SKINCOLOR_BROWN @@ -8167,9 +8169,9 @@ static const char *COLOR_ENUMS[] = { // Rejigged for Kart. "TANGERINE", // SKINCOLOR_TANGERINE "PEACH", // SKINCOLOR_PEACH "CARAMEL", // SKINCOLOR_CARAMEL - "POPCORN", // SKINCOLOR_POPCORN "CREAM", // SKINCOLOR_CREAM "GOLD", // SKINCOLOR_GOLD + "ROYAL", // SKINCOLOR_ROYAL "BRONZE", // SKINCOLOR_BRONZE "COPPER", // SKINCOLOR_COPPER "YELLOW", // SKINCOLOR_YELLOW @@ -8181,18 +8183,18 @@ static const char *COLOR_ENUMS[] = { // Rejigged for Kart. "HANDHELD", // SKINCOLOR_HANDHELD "TEA", // SKINCOLOR_TEA "PISTACHIO", // SKINCOLOR_PISTACHIO + "MOSS", // SKINCOLOR_MOSS "CAMOUFLAGE", // SKINCOLOR_CAMOUFLAGE "ROBOHOOD", // SKINCOLOR_ROBOHOOD - "MOSS", // SKINCOLOR_MOSS "MINT", // SKINCOLOR_MINT "GREEN", // SKINCOLOR_GREEN "PINETREE", // SKINCOLOR_PINETREE "EMERALD", // SKINCOLOR_EMERALD "SWAMP", // SKINCOLOR_SWAMP "DREAM", // SKINCOLOR_DREAM + "PLAGUE", // SKINCOLOR_PLAGUE "ALGAE", // SKINCOLOR_ALGAE "CARIBBEAN", // SKINCOLOR_CARIBBEAN - "PLAGUE", // SKINCOLOR_PLAGUE "AQUA", // SKINCOLOR_AQUA "TEAL", // SKINCOLOR_TEAL "CYAN", // SKINCOLOR_CYAN @@ -8210,20 +8212,18 @@ static const char *COLOR_ENUMS[] = { // Rejigged for Kart. "BLUEBERRY", // SKINCOLOR_BLUEBERRY "NOVA", // SKINCOLOR_NOVA "PASTEL", // SKINCOLOR_PASTEL + "MOONSLAM", // SKINCOLOR_MOONSLAM "ULTRAVIOLET", // SKINCOLOR_ULTRAVIOLET "DUSK", // SKINCOLOR_DUSK - "MOONSLAM", // SKINCOLOR_MOONSLAM "BUBBLEGUM", // SKINCOLOR_BUBBLEGUM "PURPLE", // SKINCOLOR_PURPLE "FUCHSIA", // SKINCOLOR_FUCHSIA "TOXIC", // SKINCOLOR_TOXIC - "MAUVE", // SKINCOLOR_MAUVE - "ROYAL", // SKINCOLOR_ROYAL "LAVENDER", // SKINCOLOR_LAVENDER "BYZANTIUM", // SKINCOLOR_BYZANTIUM + "MAUVE", // SKINCOLOR_MAUVE "POMEGRANATE", // SKINCOLOR_POMEGRANATE "LILAC", // SKINCOLOR_LILAC - "FAIRY", // SKINCOLOR_FAIRY // Special super colors // Super Sonic Yellow @@ -8261,7 +8261,7 @@ static const char *COLOR_ENUMS[] = { // Rejigged for Kart. "ASUPER2", // SKINCOLOR_ASUPER2, "ASUPER3", // SKINCOLOR_ASUPER3, "ASUPER4", // SKINCOLOR_ASUPER4, - "ASUPER5" // SKINCOLOR_ASUPER5, + "ASUPER5", // SKINCOLOR_ASUPER5, // Hyper Sonic Green "GSUPER1", // SKINCOLOR_GSUPER1, "GSUPER2", // SKINCOLOR_GSUPER2, @@ -8279,7 +8279,7 @@ static const char *COLOR_ENUMS[] = { // Rejigged for Kart. "CSUPER2", // SKINCOLOR_CSUPER2, "CSUPER3", // SKINCOLOR_CSUPER3, "CSUPER4", // SKINCOLOR_CSUPER4, - "CSUPER5", // SKINCOLOR_CSUPER5, + "CSUPER5" // SKINCOLOR_CSUPER5, }; static const char *const POWERS_LIST[] = { diff --git a/src/doomdef.h b/src/doomdef.h index 59c2dfc3..e5544c07 100644 --- a/src/doomdef.h +++ b/src/doomdef.h @@ -257,6 +257,7 @@ typedef enum SKINCOLOR_NICKEL, SKINCOLOR_BLACK, SKINCOLOR_POPCORN, + SKINCOLOR_FAIRY, SKINCOLOR_SEPIA, SKINCOLOR_BEIGE, SKINCOLOR_BROWN, @@ -286,6 +287,7 @@ typedef enum SKINCOLOR_CARAMEL, SKINCOLOR_CREAM, SKINCOLOR_GOLD, + SKINCOLOR_ROYAL, SKINCOLOR_BRONZE, SKINCOLOR_COPPER, SKINCOLOR_YELLOW, @@ -293,13 +295,13 @@ typedef enum SKINCOLOR_OLIVE, SKINCOLOR_VOMIT, SKINCOLOR_GARDEN, - SKINCOLOR_CAMOUFLAGE, SKINCOLOR_LIME, SKINCOLOR_HANDHELD, SKINCOLOR_TEA, SKINCOLOR_PISTACHIO, - SKINCOLOR_ROBOHOOD, SKINCOLOR_MOSS, + SKINCOLOR_CAMOUFLAGE, + SKINCOLOR_ROBOHOOD, SKINCOLOR_MINT, SKINCOLOR_GREEN, SKINCOLOR_PINETREE, @@ -307,8 +309,8 @@ typedef enum SKINCOLOR_SWAMP, SKINCOLOR_DREAM, SKINCOLOR_PLAGUE, - SKINCOLOR_CARIBBEAN, SKINCOLOR_ALGAE, + SKINCOLOR_CARIBBEAN, SKINCOLOR_AQUA, SKINCOLOR_TEAL, SKINCOLOR_CYAN, @@ -326,20 +328,18 @@ typedef enum SKINCOLOR_BLUEBERRY, SKINCOLOR_NOVA, SKINCOLOR_PASTEL, + SKINCOLOR_MOONSLAM, SKINCOLOR_ULTRAVIOLET, SKINCOLOR_DUSK, - SKINCOLOR_MOONSLAM, SKINCOLOR_BUBBLEGUM, SKINCOLOR_PURPLE, SKINCOLOR_FUCHSIA, SKINCOLOR_TOXIC, SKINCOLOR_MAUVE, - SKINCOLOR_ROYAL, SKINCOLOR_LAVENDER, SKINCOLOR_BYZANTIUM, SKINCOLOR_POMEGRANATE, SKINCOLOR_LILAC, - SKINCOLOR_FAIRY, // "Careful! MAXSKINCOLORS cannot be greater than 0x40 -- Which it is now." // (This comment is a dirty liar! This is only limited by the integer type, so 255 for UINT8.) diff --git a/src/hu_stuff.c b/src/hu_stuff.c index 94cca970..45870577 100644 --- a/src/hu_stuff.c +++ b/src/hu_stuff.c @@ -778,44 +778,139 @@ static void Got_Saycmd(UINT8 **p, INT32 playernum) } } else - { + { const UINT8 color = players[playernum].skincolor; cstart = "\x83"; - if (color <= SKINCOLOR_SILVER || color == SKINCOLOR_SLATE) - cstart = "\x80"; // white - else if (color <= SKINCOLOR_BLACK || color == SKINCOLOR_JET) - cstart = "\x86"; // V_GRAYMAP - else if (color <= SKINCOLOR_LEATHER) - cstart = "\x8e"; // V_BROWNMAP - else if (color <= SKINCOLOR_ROSE || color == SKINCOLOR_LILAC) - cstart = "\x8d"; // V_PINKMAP - else if (color <= SKINCOLOR_KETCHUP) - cstart = "\x85"; // V_REDMAP - else if (color <= SKINCOLOR_TANGERINE) - cstart = "\x87"; // V_ORANGEMAP - else if (color <= SKINCOLOR_CREAM) - cstart = "\x8f"; // V_PEACHMAP - else if (color <= SKINCOLOR_COPPER) - cstart = "\x8A"; // V_GOLDMAP - else if (color <= SKINCOLOR_OLIVE) - cstart = "\x82"; // V_YELLOWMAP - else if (color <= SKINCOLOR_PISTACHIO) - cstart = "\x8b"; // V_TEAMAP - else if (color <= SKINCOLOR_ALGAE || color == SKINCOLOR_LIME || color == SKINCOLOR_HANDHELD) - cstart = "\x83"; // V_GREENMAP - else if (color <= SKINCOLOR_NAVY || color == SKINCOLOR_SAPPHIRE) - cstart = "\x88"; // V_SKYMAP - else if (color <= SKINCOLOR_STEEL) - cstart = "\x8c"; // V_STEELMAP - else if (color <= SKINCOLOR_BLUEBERRY) - cstart = "\x84"; // V_BLUEMAP - else if (color == SKINCOLOR_PURPLE) - cstart = "\x81"; // V_PURPLEMAP - else //if (color <= SKINCOLOR_POMEGRANATE) - cstart = "\x89"; // V_LAVENDERMAP - } + switch (color) + { + case SKINCOLOR_WHITE: + case SKINCOLOR_SILVER: + case SKINCOLOR_SLATE: + cstart = "\x80"; // White + break; + case SKINCOLOR_GREY: + case SKINCOLOR_NICKEL: + case SKINCOLOR_BLACK: + case SKINCOLOR_JET: + cstart = "\x86"; // V_GRAYMAP + break; + case SKINCOLOR_SEPIA: + case SKINCOLOR_BEIGE: + case SKINCOLOR_BROWN: + case SKINCOLOR_LEATHER: + case SKINCOLOR_RUST: + cstart = "\x8e"; // V_BROWNMAP + break; + case SKINCOLOR_FAIRY: + case SKINCOLOR_SALMON: + case SKINCOLOR_PINK: + case SKINCOLOR_ROSE: + case SKINCOLOR_BRICK: + case SKINCOLOR_BUBBLEGUM: + case SKINCOLOR_LILAC: + cstart = "\x8d"; // V_PINKMAP + break; + case SKINCOLOR_RUBY: + case SKINCOLOR_RASPBERRY: + case SKINCOLOR_CHERRY: + case SKINCOLOR_RED: + case SKINCOLOR_CRIMSON: + case SKINCOLOR_MAROON: + case SKINCOLOR_FLAME: + case SKINCOLOR_SCARLET: + case SKINCOLOR_KETCHUP: + cstart = "\x85"; // V_REDMAP + break; + case SKINCOLOR_DAWN: + case SKINCOLOR_SUNSET: + case SKINCOLOR_CREAMSICLE: + case SKINCOLOR_ORANGE: + case SKINCOLOR_PUMPKIN: + case SKINCOLOR_ROSEWOOD: + case SKINCOLOR_BURGUNDY: + case SKINCOLOR_TANGERINE: + cstart = "\x87"; // V_ORANGEMAP + break; + case SKINCOLOR_PEACH: + case SKINCOLOR_CARAMEL: + case SKINCOLOR_CREAM: + cstart = "\x8f"; // V_PEACHMAP + break; + case SKINCOLOR_GOLD: + case SKINCOLOR_ROYAL: + case SKINCOLOR_BRONZE: + case SKINCOLOR_COPPER: + cstart = "\x8A"; // V_GOLDMAP + break; + case SKINCOLOR_POPCORN: + case SKINCOLOR_YELLOW: + case SKINCOLOR_MUSTARD: + case SKINCOLOR_OLIVE: + cstart = "\x82"; // V_YELLOWMAP + break; + case SKINCOLOR_VOMIT: + case SKINCOLOR_GARDEN: + case SKINCOLOR_TEA: + case SKINCOLOR_PISTACHIO: + cstart = "\x8b"; // V_TEAMAP + break; + case SKINCOLOR_LIME: + case SKINCOLOR_HANDHELD: + case SKINCOLOR_MOSS: + case SKINCOLOR_CAMOUFLAGE: + case SKINCOLOR_ROBOHOOD: + case SKINCOLOR_MINT: + case SKINCOLOR_GREEN: + case SKINCOLOR_PINETREE: + case SKINCOLOR_EMERALD: + case SKINCOLOR_SWAMP: + case SKINCOLOR_DREAM: + case SKINCOLOR_PLAGUE: + case SKINCOLOR_ALGAE: + cstart = "\x83"; // V_GREENMAP + break; + case SKINCOLOR_CARIBBEAN: + case SKINCOLOR_AQUA: + case SKINCOLOR_TEAL: + case SKINCOLOR_CYAN: + case SKINCOLOR_JAWZ: + case SKINCOLOR_CERULEAN: + case SKINCOLOR_NAVY: + case SKINCOLOR_SAPPHIRE: + cstart = "\x88"; // V_SKYMAP + break; + case SKINCOLOR_PLATINUM: + case SKINCOLOR_STEEL: + cstart = "\x8c"; // V_STEELMAP + break; + case SKINCOLOR_PERIWINKLE: + case SKINCOLOR_BLUE: + case SKINCOLOR_BLUEBERRY: + case SKINCOLOR_NOVA: + cstart = "\x84"; // V_BLUEMAP + break; + case SKINCOLOR_ULTRAVIOLET: + case SKINCOLOR_PURPLE: + case SKINCOLOR_FUCHSIA: + cstart = "\x81"; // V_PURPLEMAP + break; + case SKINCOLOR_PASTEL: + case SKINCOLOR_MOONSLAM: + case SKINCOLOR_DUSK: + case SKINCOLOR_TOXIC: + case SKINCOLOR_MAUVE: + case SKINCOLOR_LAVENDER: + case SKINCOLOR_BYZANTIUM: + case SKINCOLOR_POMEGRANATE: + cstart = "\x89"; // V_LAVENDERMAP + break; + default: + break; + } + } + prefix = cstart; // Give admins and remote admins their symbols. diff --git a/src/k_kart.c b/src/k_kart.c index 2bdfc40f..d75e5e42 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -49,6 +49,8 @@ const char *KartColor_Names[MAXSKINCOLORS] = "Grey", // SKINCOLOR_GREY "Nickel", // SKINCOLOR_NICKEL "Black", // SKINCOLOR_BLACK + "Fairy", // SKINCOLOR_FAIRY + "Popcorn", // SKINCOLOR_POPCORN "Sepia", // SKINCOLOR_SEPIA "Beige", // SKINCOLOR_BEIGE "Brown", // SKINCOLOR_BROWN @@ -76,9 +78,9 @@ const char *KartColor_Names[MAXSKINCOLORS] = "Tangerine", // SKINCOLOR_TANGERINE "Peach", // SKINCOLOR_PEACH "Caramel", // SKINCOLOR_CARAMEL - "Popcorn", // SKINCOLOR_POPCORN "Cream", // SKINCOLOR_CREAM "Gold", // SKINCOLOR_GOLD + "Royal", // SKINCOLOR_ROYAL "Bronze", // SKINCOLOR_BRONZE "Copper", // SKINCOLOR_COPPER "Yellow", // SKINCOLOR_YELLOW @@ -90,18 +92,18 @@ const char *KartColor_Names[MAXSKINCOLORS] = "Handheld", // SKINCOLOR_HANDHELD "Tea", // SKINCOLOR_TEA "Pistachio", // SKINCOLOR_PISTACHIO + "Moss", // SKINCOLOR_MOSS "Camouflage", // SKINCOLOR_CAMOUFLAGE "Robo-Hood", // SKINCOLOR_ROBOHOOD - "Moss", // SKINCOLOR_MOSS "Mint", // SKINCOLOR_MINT "Green", // SKINCOLOR_GREEN "Pinetree", // SKINCOLOR_PINETREE "Emerald", // SKINCOLOR_EMERALD "Swamp", // SKINCOLOR_SWAMP "Dream", // SKINCOLOR_DREAM + "Plague", // SKINCOLOR_PLAGUE "Algae", // SKINCOLOR_ALGAE "Caribbean", // SKINCOLOR_CARIBBEAN - "Plague", // SKINCOLOR_PLAGUE "Aqua", // SKINCOLOR_AQUA "Teal", // SKINCOLOR_TEAL "Cyan", // SKINCOLOR_CYAN @@ -119,20 +121,18 @@ const char *KartColor_Names[MAXSKINCOLORS] = "Blueberry", // SKINCOLOR_BLUEBERRY "Nova", // SKINCOLOR_NOVA "Pastel", // SKINCOLOR_PASTEL + "Moonslam", // SKINCOLOR_MOONSLAM "Ultraviolet", // SKINCOLOR_ULTRAVIOLET "Dusk", // SKINCOLOR_DUSK - "Moonslam", // SKINCOLOR_MOONSLAM "Bubblegum", // SKINCOLOR_BUBBLEGUM "Purple", // SKINCOLOR_PURPLE "Fuchsia", // SKINCOLOR_FUCHSIA "Toxic", // SKINCOLOR_TOXIC "Mauve", // SKINCOLOR_MAUVE - "Royal", // SKINCOLOR_ROYAL "Lavender", // SKINCOLOR_LAVENDER "Byzantium", // SKINCOLOR_BYZANTIUM "Pomegranate", // SKINCOLOR_POMEGRANATE - "Lilac", // SKINCOLOR_LILAC - "Fairy" // SKINCOLOR_FAIRY + "Lilac" // SKINCOLOR_LILAC }; // Color_Opposite replacement; frame setting has not been changed from 8 for most, should be done later @@ -144,6 +144,8 @@ const UINT8 KartColor_Opposite[MAXSKINCOLORS*2] = SKINCOLOR_GREY,8, // SKINCOLOR_GREY SKINCOLOR_SILVER,8, // SKINCOLOR_NICKEL SKINCOLOR_WHITE,8, // SKINCOLOR_BLACK + SKINCOLOR_CAMOUFLAGE,8, // SKINCOLOR_FAIRY + SKINCOLOR_BUBBLEGUM,8, // SKINCOLOR_POPCORN SKINCOLOR_LEATHER,6, // SKINCOLOR_SEPIA SKINCOLOR_BROWN,2, // SKINCOLOR_BEIGE SKINCOLOR_BEIGE,8, // SKINCOLOR_BROWN @@ -171,9 +173,9 @@ const UINT8 KartColor_Opposite[MAXSKINCOLORS*2] = SKINCOLOR_LIME,8, // SKINCOLOR_TANGERINE SKINCOLOR_CYAN,8, // SKINCOLOR_PEACH SKINCOLOR_CERULEAN,8, // SKINCOLOR_CARAMEL - SKINCOLOR_BUBBLEGUM,8, // SKINCOLOR_POPCORN SKINCOLOR_COPPER,10, // SKINCOLOR_CREAM SKINCOLOR_SLATE,8, // SKINCOLOR_GOLD + SKINCOLOR_PLATINUM,6, // SKINCOLOR_ROYAL SKINCOLOR_STEEL,8, // SKINCOLOR_BRONZE SKINCOLOR_CREAM,6, // SKINCOLOR_COPPER SKINCOLOR_AQUA,8, // SKINCOLOR_YELLOW @@ -185,18 +187,18 @@ const UINT8 KartColor_Opposite[MAXSKINCOLORS*2] = SKINCOLOR_CHERRY,8, // SKINCOLOR_HANDHELD SKINCOLOR_SALMON,8, // SKINCOLOR_TEA SKINCOLOR_PINK,6, // SKINCOLOR_PISTACHIO + SKINCOLOR_ROSE,8, // SKINCOLOR_MOSS SKINCOLOR_FAIRY,10, // SKINCOLOR_CAMOUFLAGE SKINCOLOR_VOMIT,8, // SKINCOLOR_ROBOHOOD - SKINCOLOR_ROSE,8, // SKINCOLOR_MOSS SKINCOLOR_RASPBERRY,8, // SKINCOLOR_MINT SKINCOLOR_RED,8, // SKINCOLOR_GREEN SKINCOLOR_CRIMSON,8, // SKINCOLOR_PINETREE SKINCOLOR_PURPLE,8, // SKINCOLOR_EMERALD SKINCOLOR_BYZANTIUM,8, // SKINCOLOR_SWAMP SKINCOLOR_POMEGRANATE,8, // SKINCOLOR_DREAM + SKINCOLOR_NOVA,8, // SKINCOLOR_PLAGUE SKINCOLOR_SCARLET,10, // SKINCOLOR_ALGAE SKINCOLOR_FLAME,8, // SKINCOLOR_CARIBBEAN - SKINCOLOR_NOVA,8, // SKINCOLOR_PLAGUE SKINCOLOR_YELLOW,8, // SKINCOLOR_AQUA SKINCOLOR_OLIVE,8, // SKINCOLOR_TEAL SKINCOLOR_PEACH,8, // SKINCOLOR_CYAN @@ -214,19 +216,17 @@ const UINT8 KartColor_Opposite[MAXSKINCOLORS*2] = SKINCOLOR_PUMPKIN,8, // SKINCOLOR_BLUEBERRY SKINCOLOR_PLAGUE,10, // SKINCOLOR_NOVA SKINCOLOR_FUCHSIA,11, // SKINCOLOR_PASTEL + SKINCOLOR_SUNSET,10, // SKINCOLOR_MOONSLAM SKINCOLOR_MAUVE,10, // SKINCOLOR_ULTRAVIOLET SKINCOLOR_DAWN,6, // SKINCOLOR_DUSK - SKINCOLOR_SUNSET,10, // SKINCOLOR_MOONSLAM SKINCOLOR_EMERALD,8, // SKINCOLOR_PURPLE SKINCOLOR_PASTEL,11, // SKINCOLOR_FUCHSIA SKINCOLOR_MAROON,8, // SKINCOLOR_TOXIC SKINCOLOR_ULTRAVIOLET,8, // SKINCOLOR_MAUVE - SKINCOLOR_PLATINUM,6, // SKINCOLOR_ROYAL SKINCOLOR_GARDEN,6, // SKINCOLOR_LAVENDER SKINCOLOR_SWAMP,8, // SKINCOLOR_BYZANTIUM SKINCOLOR_DREAM,8, // SKINCOLOR_POMEGRANATE - SKINCOLOR_JAWZ,6, // SKINCOLOR_LILAC - SKINCOLOR_CAMOUFLAGE,8 // SKINCOLOR_FAIRY + SKINCOLOR_JAWZ,6 // SKINCOLOR_LILAC }; UINT8 colortranslations[MAXTRANSLATIONS][16] = { @@ -236,6 +236,8 @@ UINT8 colortranslations[MAXTRANSLATIONS][16] = { { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31}, // SKINCOLOR_GREY { 3, 5, 8, 11, 15, 17, 19, 21, 23, 24, 25, 26, 27, 29, 30, 31}, // SKINCOLOR_NICKEL { 4, 7, 11, 15, 20, 22, 24, 27, 28, 28, 28, 29, 29, 30, 30, 31}, // SKINCOLOR_BLACK + {120, 120, 121, 121, 122, 123, 10, 14, 16, 18, 20, 22, 24, 26, 28, 31}, // SKINCOLOR_FAIRY + {120, 96, 97, 98, 99, 71, 32, 11, 13, 16, 18, 21, 23, 26, 28, 31}, // SKINCOLOR_POPCORN { 0, 1, 3, 5, 7, 9, 34, 36, 38, 40, 42, 44, 60, 61, 62, 63}, // SKINCOLOR_SEPIA {120, 65, 67, 69, 32, 34, 36, 38, 40, 42, 44, 45, 46, 47, 62, 63}, // SKINCOLOR_BEIGE { 67, 70, 73, 76, 48, 49, 51, 53, 54, 56, 58, 59, 61, 63, 29, 30}, // SKINCOLOR_BROWN @@ -263,9 +265,9 @@ UINT8 colortranslations[MAXTRANSLATIONS][16] = { { 98, 98, 112, 112, 113, 113, 84, 85, 87, 89, 91, 93, 95, 153, 156, 159}, // SKINCOLOR_TANGERINE {120, 80, 66, 70, 72, 76, 148, 149, 150, 151, 153, 154, 156, 61, 62, 63}, // SKINCOLOR_PEACH { 64, 66, 68, 70, 72, 74, 76, 78, 48, 50, 52, 54, 56, 58, 60, 62}, // SKINCOLOR_CARAMEL - {120, 96, 97, 98, 99, 71, 32, 11, 13, 16, 18, 21, 23, 26, 28, 31}, // SKINCOLOR_POPCORN {120, 120, 96, 96, 97, 82, 84, 77, 50, 54, 57, 59, 61, 63, 29, 31}, // SKINCOLOR_CREAM {112, 112, 112, 113, 113, 114, 114, 115, 115, 116, 116, 117, 117, 118, 118, 119}, // SKINCOLOR_GOLD + { 97, 112, 113, 113, 114, 78, 53, 252, 252, 253, 253, 254, 255, 29, 30, 31}, // SKINCOLOR_ROYAL {112, 113, 114, 115, 116, 117, 118, 119, 156, 157, 158, 159, 141, 141, 142, 143}, // SKINCOLOR_BRONZE {120, 99, 113, 114, 116, 117, 119, 61, 63, 28, 28, 29, 29, 30, 30, 31}, // SKINCOLOR_COPPER { 96, 97, 98, 100, 101, 102, 104, 113, 114, 115, 116, 117, 118, 119, 156, 159}, // SKINCOLOR_YELLOW @@ -277,18 +279,18 @@ UINT8 colortranslations[MAXTRANSLATIONS][16] = { { 98, 104, 105, 105, 106, 167, 168, 169, 170, 171, 172, 173, 174, 175, 30, 31}, // SKINCOLOR_HANDHELD {120, 120, 176, 176, 176, 177, 177, 178, 178, 179, 179, 180, 180, 181, 182, 183}, // SKINCOLOR_TEA {120, 120, 176, 176, 177, 177, 178, 179, 165, 166, 167, 168, 169, 170, 171, 172}, // SKINCOLOR_PISTACHIO + {178, 178, 178, 179, 179, 180, 181, 182, 183, 172, 172, 173, 173, 174, 174, 175}, // SKINCOLOR_MOSS { 64, 66, 69, 32, 34, 37, 40, 182, 171, 172, 172, 173, 173, 174, 174, 175}, // SKINCOLOR_CAMOUFLAGE {120, 176, 160, 165, 167, 168, 169, 182, 182, 171, 60, 61, 63, 29, 30, 31}, // SKINCOLOR_ROBOHOOD - {178, 178, 178, 179, 179, 180, 181, 182, 183, 172, 172, 173, 173, 174, 174, 175}, // SKINCOLOR_MOSS {120, 176, 176, 176, 177, 163, 164, 165, 167, 221, 221, 222, 223, 207, 207, 31}, // SKINCOLOR_MINT {160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175}, // SKINCOLOR_GREEN {161, 163, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 30, 30, 31}, // SKINCOLOR_PINETREE {160, 184, 184, 185, 185, 186, 186, 187, 187, 188, 188, 189, 189, 190, 191, 175}, // SKINCOLOR_EMERALD {160, 184, 185, 186, 187, 188, 189, 190, 191, 191, 29, 29, 30, 30, 31, 31}, // SKINCOLOR_SWAMP {120, 120, 80, 80, 81, 177, 162, 164, 228, 228, 204, 204, 205, 205, 206, 207}, // SKINCOLOR_DREAM + {176, 160, 184, 185, 186, 187, 188, 230, 230, 206, 206, 207, 28, 29, 30, 31}, // SKINCOLOR_PLAGUE {208, 209, 210, 211, 213, 220, 216, 167, 168, 188, 188, 189, 190, 191, 30, 31}, // SKINCOLOR_ALGAE {120, 176, 177, 160, 185, 220, 216, 217, 221, 230, 206, 206, 254, 255, 29, 31}, // SKINCOLOR_CARIBBEAN - {176, 160, 184, 185, 186, 187, 188, 230, 230, 206, 206, 207, 28, 29, 30, 31}, // SKINCOLOR_PLAGUE {120, 208, 208, 210, 212, 214, 220, 220, 220, 221, 221, 222, 222, 223, 223, 191}, // SKINCOLOR_AQUA {210, 213, 220, 220, 220, 216, 216, 221, 221, 221, 222, 222, 223, 223, 191, 31}, // SKINCOLOR_TEAL {120, 120, 208, 208, 209, 210, 211, 212, 213, 215, 216, 217, 218, 219, 222, 223}, // SKINCOLOR_CYAN @@ -306,21 +308,18 @@ UINT8 colortranslations[MAXTRANSLATIONS][16] = { {226, 228, 229, 230, 232, 233, 235, 237, 239, 240, 242, 244, 246, 31, 31, 31}, // SKINCOLOR_BLUEBERRY {120, 112, 82, 83, 84, 124, 248, 228, 228, 204, 205, 206, 207, 29, 30, 31}, // SKINCOLOR_NOVA {120, 208, 209, 210, 211, 226, 202, 249, 194, 195, 196, 197, 198, 199, 255, 30}, // SKINCOLOR_PASTEL + {120, 224, 201, 226, 202, 249, 250, 196, 197, 198, 199, 140, 141, 142, 143, 31}, // SKINCOLOR_MOONSLAM {120, 64, 81, 122, 192, 249, 203, 221, 221, 219, 219, 223, 223, 191, 191, 31}, // SKINCOLOR_ULTRAVIOLET {121, 145, 192, 249, 250, 251, 204, 204, 205, 205, 206, 206, 207, 29, 30, 31}, // SKINCOLOR_DUSK - {120, 224, 201, 226, 202, 249, 250, 196, 197, 198, 199, 140, 141, 142, 143, 31}, // SKINCOLOR_MOONSLAM {120, 96, 64, 121, 67, 144, 123, 192, 193, 194, 195, 196, 197, 198, 199, 30}, // SKINCOLOR_BUBBLEGUM {121, 145, 192, 192, 193, 194, 195, 196, 196, 197, 197, 198, 198, 199, 30, 31}, // SKINCOLOR_PURPLE {120, 122, 124, 125, 126, 150, 196, 197, 198, 198, 199, 199, 240, 242, 244, 246}, // SKINCOLOR_FUCHSIA {120, 120, 176, 176, 177, 6, 8, 10, 249, 250, 196, 197, 198, 199, 143, 31}, // SKINCOLOR_TOXIC { 96, 97, 98, 112, 113, 73, 146, 248, 249, 251, 205, 205, 206, 207, 29, 31}, // SKINCOLOR_MAUVE - { 97, 112, 113, 113, 114, 78, 53, 252, 252, 253, 253, 254, 255, 29, 30, 31}, // SKINCOLOR_ROYAL {121, 145, 192, 248, 249, 250, 251, 252, 252, 253, 253, 254, 254, 255, 30, 31}, // SKINCOLOR_LAVENDER {144, 248, 249, 250, 251, 252, 253, 254, 255, 255, 29, 29, 30, 30, 31, 31}, // SKINCOLOR_BYZANTIUM {144, 145, 146, 147, 148, 149, 150, 251, 251, 252, 252, 253, 254, 255, 29, 30}, // SKINCOLOR_POMEGRANATE {120, 120, 120, 121, 121, 122, 122, 123, 192, 248, 249, 250, 251, 252, 253, 254}, // SKINCOLOR_LILAC - {120, 120, 121, 121, 122, 123, 10, 14, 16, 18, 20, 22, 24, 26, 28, 31}, // SKINCOLOR_FAIRY - // MAXSKINCOLORS {120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 96, 100, 104, 113, 116, 119}, // SKINCOLOR_SUPER1 {120, 120, 120, 120, 120, 120, 120, 120, 96, 98, 101, 104, 113, 115, 117, 119}, // SKINCOLOR_SUPER2 {120, 120, 120, 120, 120, 120, 96, 98, 100, 102, 104, 113, 114, 116, 117, 119}, // SKINCOLOR_SUPER3 @@ -366,7 +365,6 @@ UINT8 colortranslations[MAXTRANSLATIONS][16] = { {120, 120, 120, 120, 120, 120, 96, 97, 98, 99, 81, 81, 70, 73, 76, 79}, // SKINCOLOR_CSUPER3 {120, 120, 120, 120, 96, 96, 97, 98, 99, 81, 81, 70, 72, 74, 76, 79}, // SKINCOLOR_CSUPER4 {120, 120, 96, 96, 97, 98, 98, 99, 81, 81, 69, 71, 73, 75, 77, 79}, // SKINCOLOR_CSUPER5 - // MAXTRANSLATIONS }; // Define for getting accurate color brightness readings according to how the human eye sees them. From 4faaa932ec609d7d6494ae8bf6c7408cc47c0e1d Mon Sep 17 00:00:00 2001 From: TehRealSalt Date: Fri, 8 Mar 2019 19:06:27 -0500 Subject: [PATCH 21/21] Fix macro expansion warning Sryder got --- src/k_kart.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/k_kart.c b/src/k_kart.c index d4d2cc64..aaf77ff3 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -820,12 +820,13 @@ static INT32 K_KartGetItemOdds(UINT8 pos, SINT8 item, fixed_t mashed, boolean sp #define PLAYERSCALING (8 - (spbrush ? 2 : pingame)) -#define POWERITEMODDS(odds) \ +#define POWERITEMODDS(odds) {\ if (franticitems) \ odds <<= 1; \ odds = FixedMul(odds<> FRACBITS; \ if (mashed > 0) \ - odds = FixedDiv(odds<> FRACBITS \ + odds = FixedDiv(odds<> FRACBITS; \ +} #define COOLDOWNONSTART (leveltime < (30*TICRATE)+starttime)