Fixed thwomp sectors, Added Magnet Item.

This commit is contained in:
ZTsukei 2017-02-18 13:39:25 -05:00
parent 559607dfe2
commit 0a782bf79e
12 changed files with 233 additions and 119 deletions

View file

@ -2536,37 +2536,36 @@ state_t states[NUMSTATES] =
{SPR_BSPR, 2, 1, {NULL}, 0, 0, S_BDIAG8}, // S_BDIAG7 {SPR_BSPR, 2, 1, {NULL}, 0, 0, S_BDIAG8}, // S_BDIAG7
{SPR_BSPR, 1, 1, {NULL}, 0, 0, S_BDIAG1}, // S_BDIAG8 {SPR_BSPR, 1, 1, {NULL}, 0, 0, S_BDIAG1}, // S_BDIAG8
{SPR_RNDM, 0, 3, {A_AttractChase}, 0, 0, S_RANDOMITEM2}, // S_RANDOMITEM1 {SPR_RNDM, 0, 3, {NULL}, 0, 0, S_RANDOMITEM2}, // S_RANDOMITEM1
{SPR_RNDM, 1, 3, {A_AttractChase}, 0, 0, S_RANDOMITEM3}, // S_RANDOMITEM2 {SPR_RNDM, 1, 3, {NULL}, 0, 0, S_RANDOMITEM3}, // S_RANDOMITEM2
{SPR_RNDM, 2, 3, {A_AttractChase}, 0, 0, S_RANDOMITEM4}, // S_RANDOMITEM3 {SPR_RNDM, 2, 3, {NULL}, 0, 0, S_RANDOMITEM4}, // S_RANDOMITEM3
{SPR_RNDM, 3, 3, {A_AttractChase}, 0, 0, S_RANDOMITEM5}, // S_RANDOMITEM4 {SPR_RNDM, 3, 3, {NULL}, 0, 0, S_RANDOMITEM5}, // S_RANDOMITEM4
{SPR_RNDM, 4, 3, {A_AttractChase}, 0, 0, S_RANDOMITEM6}, // S_RANDOMITEM5 {SPR_RNDM, 4, 3, {NULL}, 0, 0, S_RANDOMITEM6}, // S_RANDOMITEM5
{SPR_RNDM, 5, 3, {A_AttractChase}, 0, 0, S_RANDOMITEM7}, // S_RANDOMITEM6 {SPR_RNDM, 5, 3, {NULL}, 0, 0, S_RANDOMITEM7}, // S_RANDOMITEM6
{SPR_RNDM, 6, 3, {A_AttractChase}, 0, 0, S_RANDOMITEM8}, // S_RANDOMITEM7 {SPR_RNDM, 6, 3, {NULL}, 0, 0, S_RANDOMITEM8}, // S_RANDOMITEM7
{SPR_RNDM, 7, 3, {A_AttractChase}, 0, 0, S_RANDOMITEM9}, // S_RANDOMITEM8 {SPR_RNDM, 7, 3, {NULL}, 0, 0, S_RANDOMITEM9}, // S_RANDOMITEM8
{SPR_RNDM, 8, 3, {A_AttractChase}, 0, 0, S_RANDOMITEM10}, // S_RANDOMITEM9 {SPR_RNDM, 8, 3, {NULL}, 0, 0, S_RANDOMITEM10}, // S_RANDOMITEM9
{SPR_RNDM, 9, 3, {A_AttractChase}, 0, 0, S_RANDOMITEM11}, // S_RANDOMITEM10 {SPR_RNDM, 9, 3, {NULL}, 0, 0, S_RANDOMITEM11}, // S_RANDOMITEM10
{SPR_RNDM, 10, 3, {A_AttractChase}, 0, 0, S_RANDOMITEM12}, // S_RANDOMITEM11 {SPR_RNDM, 10, 3, {NULL}, 0, 0, S_RANDOMITEM12}, // S_RANDOMITEM11
{SPR_RNDM, 11, 3, {A_AttractChase}, 0, 0, S_RANDOMITEM13}, // S_RANDOMITEM12 {SPR_RNDM, 11, 3, {NULL}, 0, 0, S_RANDOMITEM13}, // S_RANDOMITEM12
{SPR_RNDM, 12, 3, {A_AttractChase}, 0, 0, S_RANDOMITEM14}, // S_RANDOMITEM13 {SPR_RNDM, 12, 3, {NULL}, 0, 0, S_RANDOMITEM14}, // S_RANDOMITEM13
{SPR_RNDM, 13, 3, {A_AttractChase}, 0, 0, S_RANDOMITEM15}, // S_RANDOMITEM14 {SPR_RNDM, 13, 3, {NULL}, 0, 0, S_RANDOMITEM15}, // S_RANDOMITEM14
{SPR_RNDM, 14, 3, {A_AttractChase}, 0, 0, S_RANDOMITEM16}, // S_RANDOMITEM15 {SPR_RNDM, 14, 3, {NULL}, 0, 0, S_RANDOMITEM16}, // S_RANDOMITEM15
{SPR_RNDM, 15, 3, {A_AttractChase}, 0, 0, S_RANDOMITEM17}, // S_RANDOMITEM16 {SPR_RNDM, 15, 3, {NULL}, 0, 0, S_RANDOMITEM17}, // S_RANDOMITEM16
{SPR_RNDM, 16, 3, {A_AttractChase}, 0, 0, S_RANDOMITEM18}, // S_RANDOMITEM17 {SPR_RNDM, 16, 3, {NULL}, 0, 0, S_RANDOMITEM18}, // S_RANDOMITEM17
{SPR_RNDM, 17, 3, {A_AttractChase}, 0, 0, S_RANDOMITEM19}, // S_RANDOMITEM18 {SPR_RNDM, 17, 3, {NULL}, 0, 0, S_RANDOMITEM19}, // S_RANDOMITEM18
{SPR_RNDM, 18, 3, {A_AttractChase}, 0, 0, S_RANDOMITEM20}, // S_RANDOMITEM19 {SPR_RNDM, 18, 3, {NULL}, 0, 0, S_RANDOMITEM20}, // S_RANDOMITEM19
{SPR_RNDM, 19, 3, {A_AttractChase}, 0, 0, S_RANDOMITEM21}, // S_RANDOMITEM20 {SPR_RNDM, 19, 3, {NULL}, 0, 0, S_RANDOMITEM21}, // S_RANDOMITEM20
{SPR_RNDM, 20, 3, {A_AttractChase}, 0, 0, S_RANDOMITEM22}, // S_RANDOMITEM21 {SPR_RNDM, 20, 3, {NULL}, 0, 0, S_RANDOMITEM22}, // S_RANDOMITEM21
{SPR_RNDM, 21, 3, {A_AttractChase}, 0, 0, S_RANDOMITEM23}, // S_RANDOMITEM22 {SPR_RNDM, 21, 3, {NULL}, 0, 0, S_RANDOMITEM23}, // S_RANDOMITEM22
{SPR_RNDM, 22, 3, {A_AttractChase}, 0, 0, S_RANDOMITEM24}, // S_RANDOMITEM23 {SPR_RNDM, 22, 3, {NULL}, 0, 0, S_RANDOMITEM24}, // S_RANDOMITEM23
{SPR_RNDM, 23, 3, {A_AttractChase}, 0, 0, S_RANDOMITEM1}, // S_RANDOMITEM24 {SPR_RNDM, 23, 3, {NULL}, 0, 0, S_RANDOMITEM1}, // S_RANDOMITEM24
{SPR_RNDM, 0, 1, {A_ItemPop}, 0, 0, S_NULL}, // S_DEADRANDOMITEM {SPR_RNDM, 0, 1, {A_ItemPop}, 0, 0, S_NULL}, // S_DEADRANDOMITEM
{SPR_SPRK, 0, 2, {NULL}, 0, 0, S_RANDOMITEMPOP2}, // S_RANDOMITEMPOP1 {SPR_SPRK, FF_FULLBRIGHT, 5, {NULL}, 0, 0, S_RANDOMITEMPOP2}, // S_RANDOMITEMPOP1
{SPR_SPRK, 1, 2, {NULL}, 0, 0, S_RANDOMITEMPOP3}, // S_RANDOMITEMPOP2 {SPR_SPRK, FF_FULLBRIGHT|1, 5, {NULL}, 0, 0, S_RANDOMITEMPOP3}, // S_RANDOMITEMPOP2
{SPR_SPRK, 2, 2, {NULL}, 0, 0, S_RANDOMITEMPOP4}, // S_RANDOMITEMPOP3 {SPR_SPRK, FF_FULLBRIGHT|2, 5, {NULL}, 0, 0, S_RANDOMITEMPOP4}, // S_RANDOMITEMPOP3
{SPR_SPRK, 3, 2, {NULL}, 0, 0, S_RANDOMITEMPOP5}, // S_RANDOMITEMPOP4 {SPR_SPRK, FF_FULLBRIGHT|3, 5, {NULL}, 0, 0, S_NULL}, // S_RANDOMITEMPOP4
{SPR_NULL, 0, -1, {NULL}, 0, 0, S_NULL}, // S_RANDOMITEMPOP5
{SPR_DRIF, 0, 2, {NULL}, 0, 0, S_DRIFTSPARK2}, // S_DRIFTSPARK1 {SPR_DRIF, 0, 2, {NULL}, 0, 0, S_DRIFTSPARK2}, // S_DRIFTSPARK1
{SPR_DRIF, 1, 2, {NULL}, 0, 0, S_DRIFTSPARK3}, // S_DRIFTSPARK2 {SPR_DRIF, 1, 2, {NULL}, 0, 0, S_DRIFTSPARK3}, // S_DRIFTSPARK2
@ -14062,12 +14061,12 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
{ // MT_RANDOMITEM { // MT_RANDOMITEM
2000, // doomednum 2000, // doomednum
S_RANDOMITEM1, // spawnstate S_RANDOMITEM1, // spawnstate
1, // spawnhealth 1000, // spawnhealth
S_NULL, // seestate S_NULL, // seestate
sfx_None, // seesound sfx_None, // seesound
8, // reactiontime MT_FLINGRANDOMITEM, // reactiontime
sfx_None, // attacksound sfx_None, // attacksound
S_RANDOMITEM1, // painstate S_NULL, // painstate
0, // painchance 0, // painchance
sfx_None, // painsound sfx_None, // painsound
S_NULL, // meleestate S_NULL, // meleestate
@ -14075,7 +14074,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_DEADRANDOMITEM, // deathstate S_DEADRANDOMITEM, // deathstate
S_NULL, // xdeathstate S_NULL, // xdeathstate
sfx_pop, // deathsound sfx_pop, // deathsound
64*FRACUNIT, // speed 60*FRACUNIT, // speed
32*FRACUNIT, // radius 32*FRACUNIT, // radius
32*FRACUNIT, // height 32*FRACUNIT, // height
0, // display offset 0, // display offset
@ -14086,13 +14085,40 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL // raisestate S_NULL // raisestate
}, },
{ // MT_FLINGRANDOMITEM
-1, // doomednum
S_RANDOMITEM1, // spawnstate
1000, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
MT_FLINGRANDOMITEM, // reactiontime
sfx_None, // attacksound
S_NULL, // painstate
MT_RANDOMITEM, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_DEADRANDOMITEM, // deathstate
S_NULL, // xdeathstate
sfx_pop, // deathsound
60*FRACUNIT, // speed
31*FRACUNIT, // radius
16*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_SLIDEME|MF_SPECIAL, // flags
S_NULL // raisestate
},
{ // MT_RANDOMITEMPOP { // MT_RANDOMITEMPOP
-1, // doomednum -1, // doomednum
S_RANDOMITEMPOP1, // spawnstate S_RANDOMITEMPOP1, // spawnstate
1, // spawnhealth 1, // spawnhealth
S_NULL, // seestate S_NULL, // seestate
sfx_None, // seesound sfx_None, // seesound
8, // reactiontime 0, // reactiontime
sfx_None, // attacksound sfx_None, // attacksound
S_RANDOMITEMPOP1, // painstate S_RANDOMITEMPOP1, // painstate
0, // painchance 0, // painchance

View file

@ -3043,7 +3043,6 @@ typedef enum state
S_RANDOMITEMPOP2, S_RANDOMITEMPOP2,
S_RANDOMITEMPOP3, S_RANDOMITEMPOP3,
S_RANDOMITEMPOP4, S_RANDOMITEMPOP4,
S_RANDOMITEMPOP5,
//} //}
// Drift Sparks // Drift Sparks
@ -3748,6 +3747,7 @@ typedef enum mobj_type
MT_INVISSPRING, MT_INVISSPRING,
MT_BLUEDIAG, MT_BLUEDIAG,
MT_RANDOMITEM, MT_RANDOMITEM,
MT_FLINGRANDOMITEM,
MT_RANDOMITEMPOP, MT_RANDOMITEMPOP,
MT_MUSHROOMTRAIL, MT_MUSHROOMTRAIL,

View file

@ -672,7 +672,6 @@ static fixed_t K_KartItemOdds_Retro[MAXPLAYERS][NUMKARTITEMS][MAXPLAYERS] =
*/ */
static void K_KartGetItemResult(player_t *player, fixed_t getitem, boolean retrokart) static void K_KartGetItemResult(player_t *player, fixed_t getitem, boolean retrokart)
{ {
getitem++;
switch (getitem) switch (getitem)
{ {
case 1: // Magnet case 1: // Magnet
@ -758,8 +757,11 @@ static void K_KartGetItemResult(player_t *player, fixed_t getitem, boolean retro
*/ */
static void K_KartSetItemResult(fixed_t position, fixed_t giveitem) static void K_KartSetItemResult(fixed_t position, fixed_t giveitem)
{ {
fixed_t this_pingame = pingame-1;
fixed_t this_giveitem = giveitem-1;
prevchance = chance; prevchance = chance;
basechance = K_KartItemOdds_Retro[pingame-1][giveitem][position]; // Number of slots in the array, based on odds basechance = K_KartItemOdds_Retro[this_pingame][this_giveitem][position]; // Number of slots in the array, based on odds
for (; chance < prevchance + basechance; chance++) for (; chance < prevchance + basechance; chance++)
{ {
@ -1533,6 +1535,13 @@ static mobj_t *P_ThrowKartItem(player_t *player, boolean missile, mobjtype_t map
return mo; return mo;
} }
static void K_DoMagnet(player_t * player)
{
S_StartSound(player->mo, sfx_s3k45);
player->kartstuff[k_magnettimer] = 35;
P_NukeEnemies(player->mo, player->mo, 16*FRACUNIT);
}
static void K_DoBooSteal(player_t * player) static void K_DoBooSteal(player_t * player)
{ {
INT32 i, numplayers = 0; INT32 i, numplayers = 0;
@ -1957,6 +1966,26 @@ void K_MoveKartPlayer(player_t *player, ticcmd_t *cmd, boolean onground)
if (player && player->health > 0 && !player->spectator && !player->exiting && player->kartstuff[k_spinouttimer] == 0) if (player && player->health > 0 && !player->spectator && !player->exiting && player->kartstuff[k_spinouttimer] == 0)
{ {
// Magnet
// Boo
// Mushroom
// Triple Mushroom
// Mega Mushroom
// Gold Mushroom
// Star
// Triple Banana
// Fake Item
// Banana
// Green Shell
// Red Shell
// Triple Green Shell
// Bob-omb
// Blue Shell
// Fire Flower
// Triple Red Shell
// Lightning
// GoldenMushroom power // GoldenMushroom power
if (ATTACK_IS_DOWN && !HOLDING_ITEM && onground && player->kartstuff[k_goldshroom] == 1 && player->kartstuff[k_goldshroomtimer] == 0 && NO_BOO) if (ATTACK_IS_DOWN && !HOLDING_ITEM && onground && player->kartstuff[k_goldshroom] == 1 && player->kartstuff[k_goldshroomtimer] == 0 && NO_BOO)
{ {
@ -2314,6 +2343,13 @@ void K_MoveKartPlayer(player_t *player, ticcmd_t *cmd, boolean onground)
player->pflags |= PF_ATTACKDOWN; player->pflags |= PF_ATTACKDOWN;
player->kartstuff[k_boo] = 0; player->kartstuff[k_boo] = 0;
} }
// Magnet
else if (ATTACK_IS_DOWN && !HOLDING_ITEM && player->kartstuff[k_magnet] == 1 && NO_BOO)
{
K_DoMagnet(player);
player->pflags |= PF_ATTACKDOWN;
player->kartstuff[k_magnet] = 0;
}
if (player->kartstuff[k_mushroomtimer] > 0 && player->kartstuff[k_boosting] == 0 && onground) if (player->kartstuff[k_mushroomtimer] > 0 && player->kartstuff[k_boosting] == 0 && onground)
{ {

View file

@ -740,8 +740,9 @@ static boolean P_LookForShield(mobj_t *actor)
(actor->type == MT_BLUETEAMRING && player->ctfteam != 2)) (actor->type == MT_BLUETEAMRING && player->ctfteam != 2))
continue; continue;
if ((player->powers[pw_shield] & SH_NOSTACK) == SH_ATTRACT // SRB2kart - magnet item
&& (P_AproxDistance(P_AproxDistance(actor->x-player->mo->x, actor->y-player->mo->y), actor->z-player->mo->z) < FixedMul(RING_DIST, player->mo->scale))) if (player->kartstuff[k_magnettimer] //(player->powers[pw_shield] & SH_NOSTACK) == SH_ATTRACT
&& (P_AproxDistance(P_AproxDistance(actor->x-player->mo->x, actor->y-player->mo->y), actor->z-player->mo->z) < FixedMul(RING_DIST/2, player->mo->scale)))
{ {
P_SetTarget(&actor->tracer, player->mo); P_SetTarget(&actor->tracer, player->mo);
return true; return true;
@ -849,6 +850,9 @@ void A_Look(mobj_t *actor)
if (!P_LookForPlayers(actor, locvar1 & 65535, false , FixedMul((locvar1 >> 16)*FRACUNIT, actor->scale))) if (!P_LookForPlayers(actor, locvar1 & 65535, false , FixedMul((locvar1 >> 16)*FRACUNIT, actor->scale)))
return; return;
if (leveltime < 4*TICRATE && gametype == GT_RACE) // SRB2kart - no looking before race starts
return;
// go into chase state // go into chase state
if (!locvar2) if (!locvar2)
{ {
@ -3004,7 +3008,8 @@ void A_RingShield(mobj_t *actor)
P_SpawnShieldOrb(player); P_SpawnShieldOrb(player);
} }
S_StartSound(player->mo, actor->info->seesound); if (!player->exiting) // SRB2kart
S_StartSound(player->mo, actor->info->seesound);
} }
// Function: A_RingBox // Function: A_RingBox
@ -3608,7 +3613,8 @@ void A_AttractChase(mobj_t *actor)
// Turn flingrings back into regular rings if attracted. // Turn flingrings back into regular rings if attracted.
if (actor->tracer && actor->tracer->player if (actor->tracer && actor->tracer->player
&& (actor->tracer->player->powers[pw_shield] & SH_NOSTACK) != SH_ATTRACT && actor->info->reactiontime && actor->type != (mobjtype_t)actor->info->reactiontime) && actor->tracer->player->kartstuff[k_magnettimer] //&& (actor->tracer->player->powers[pw_shield] & SH_NOSTACK) != SH_ATTRACT
&& actor->info->reactiontime && actor->type != (mobjtype_t)actor->info->reactiontime)
{ {
mobj_t *newring; mobj_t *newring;
newring = P_SpawnMobj(actor->x, actor->y, actor->z, actor->info->reactiontime); newring = P_SpawnMobj(actor->x, actor->y, actor->z, actor->info->reactiontime);
@ -3813,15 +3819,15 @@ void A_ThrownRing(mobj_t *actor)
// A non-homing ring getting attracted by a // A non-homing ring getting attracted by a
// magnetic player. If he gets too far away, make // magnetic player. If he gets too far away, make
// sure to stop the attraction! // sure to stop the attraction!
if ((!actor->tracer->health) || (actor->tracer->player && (actor->tracer->player->powers[pw_shield] & SH_NOSTACK) == SH_ATTRACT if ((!actor->tracer->health) // || (actor->tracer->player && (actor->tracer->player->powers[pw_shield] & SH_NOSTACK) == SH_ATTRACT
&& P_AproxDistance(P_AproxDistance(actor->tracer->x-actor->x, || P_AproxDistance(P_AproxDistance(actor->tracer->x-actor->x,
actor->tracer->y-actor->y), actor->tracer->z-actor->z) > FixedMul(RING_DIST/4, actor->tracer->scale))) actor->tracer->y-actor->y), actor->tracer->z-actor->z) > FixedMul(RING_DIST, actor->tracer->scale)) // SRB2kart
{ {
P_SetTarget(&actor->tracer, NULL); P_SetTarget(&actor->tracer, NULL);
} }
if (actor->tracer && (actor->tracer->health) if (actor->tracer && (actor->tracer->health)) // SRB2kart - red shells always follow
&& (actor->tracer->player->powers[pw_shield] & SH_NOSTACK) == SH_ATTRACT)// Already found someone to follow. //&& (actor->tracer->player->powers[pw_shield] & SH_NOSTACK) == SH_ATTRACT)// Already found someone to follow.
{ {
const INT32 temp = actor->threshold; const INT32 temp = actor->threshold;
actor->threshold = 32000; actor->threshold = 32000;
@ -3871,6 +3877,10 @@ void A_ThrownRing(mobj_t *actor)
if (gametype == GT_CTF if (gametype == GT_CTF
&& actor->target->player->ctfteam == player->ctfteam) && actor->target->player->ctfteam == player->ctfteam)
continue; continue;
if (actor->target->player->kartstuff[k_position] < player->kartstuff[k_position]) // SRB2kart - Red Shells only go after people ahead of you
continue;
} }
dist = P_AproxDistance(P_AproxDistance(player->mo->x-actor->x, dist = P_AproxDistance(P_AproxDistance(player->mo->x-actor->x,
@ -3889,8 +3899,7 @@ void A_ThrownRing(mobj_t *actor)
if (!P_CheckSight(actor, player->mo)) if (!P_CheckSight(actor, player->mo))
continue; // out of sight continue; // out of sight
if ((player->powers[pw_shield] & SH_NOSTACK) == SH_ATTRACT if (dist < FixedMul(2048*FRACUNIT, player->mo->scale)) // SRB2kart // (player->powers[pw_shield] & SH_NOSTACK) == SH_ATTRACT &&
&& dist < FixedMul(RING_DIST/4, player->mo->scale))
P_SetTarget(&actor->tracer, player->mo); P_SetTarget(&actor->tracer, player->mo);
return; return;
} }
@ -8078,7 +8087,6 @@ void A_ToggleFlameJet(mobj_t* actor)
void A_ItemPop(mobj_t *actor) void A_ItemPop(mobj_t *actor)
{ {
mobj_t *remains; mobj_t *remains;
mobjtype_t item = 0;
// de-solidify // de-solidify
//P_UnsetThingPosition(actor); //P_UnsetThingPosition(actor);
@ -8104,35 +8112,33 @@ void A_ItemPop(mobj_t *actor)
actor->flags2 |= MF2_BOSSNOTRAP; // Dummy flag to mark this as an exploded TV until it respawns actor->flags2 |= MF2_BOSSNOTRAP; // Dummy flag to mark this as an exploded TV until it respawns
tmthing = remains; tmthing = remains;
if (actor->info->deathsound) S_StartSound(remains, actor->info->deathsound); if (actor->info->deathsound)
S_StartSound(remains, actor->info->deathsound);
switch (actor->type) if (actor->type != MT_RANDOMITEM)
{ {
case MT_RANDOMITEM: // Random! P_RemoveMobj(actor);
if (actor->target && actor->target->player return;
&& !(actor->target->player->kartstuff[k_greenshell] & 2 || actor->target->player->kartstuff[k_triplegreenshell] & 8
|| actor->target->player->kartstuff[k_redshell] & 2 || actor->target->player->kartstuff[k_tripleredshell] & 8
|| actor->target->player->kartstuff[k_banana] & 2 || actor->target->player->kartstuff[k_triplebanana] & 8
|| actor->target->player->kartstuff[k_fakeitem] & 2 || actor->target->player->kartstuff[k_magnet]
|| actor->target->player->kartstuff[k_bobomb] & 2 || actor->target->player->kartstuff[k_blueshell]
|| actor->target->player->kartstuff[k_mushroom] || actor->target->player->kartstuff[k_fireflower]
|| actor->target->player->kartstuff[k_star] || actor->target->player->kartstuff[k_goldshroom]
|| actor->target->player->kartstuff[k_lightning] || actor->target->player->kartstuff[k_megashroom]
|| actor->target->player->kartstuff[k_itemroulette]
|| actor->target->player->kartstuff[k_boo] || actor->target->player->kartstuff[k_bootaketimer]
|| actor->target->player->kartstuff[k_boostolentimer])
)
actor->target->player->kartstuff[k_itemroulette] = 1;
else if(cv_debug && !(actor->target && actor->target->player))
CONS_Printf("ERROR: Powerup has no target!\n");
remains->flags &= ~MF_AMBUSH;
break;
default:
item = actor->info->damage;
break;
} }
if (actor->target && actor->target->player
&& !(actor->target->player->kartstuff[k_greenshell] & 2 || actor->target->player->kartstuff[k_triplegreenshell] & 8
|| actor->target->player->kartstuff[k_redshell] & 2 || actor->target->player->kartstuff[k_tripleredshell] & 8
|| actor->target->player->kartstuff[k_banana] & 2 || actor->target->player->kartstuff[k_triplebanana] & 8
|| actor->target->player->kartstuff[k_fakeitem] & 2 || actor->target->player->kartstuff[k_magnet]
|| actor->target->player->kartstuff[k_bobomb] & 2 || actor->target->player->kartstuff[k_blueshell]
|| actor->target->player->kartstuff[k_mushroom] || actor->target->player->kartstuff[k_fireflower]
|| actor->target->player->kartstuff[k_star] || actor->target->player->kartstuff[k_goldshroom]
|| actor->target->player->kartstuff[k_lightning] || actor->target->player->kartstuff[k_megashroom]
|| actor->target->player->kartstuff[k_itemroulette]
|| actor->target->player->kartstuff[k_boo] || actor->target->player->kartstuff[k_bootaketimer]
|| actor->target->player->kartstuff[k_boostolentimer]))
actor->target->player->kartstuff[k_itemroulette] = 1;
else if(cv_debug && !(actor->target && actor->target->player))
CONS_Printf("ERROR: Powerup has no target!\n");
remains->flags &= ~MF_AMBUSH;
P_RemoveMobj(actor); P_RemoveMobj(actor);
} }

View file

@ -1819,10 +1819,20 @@ void T_ThwompSector(levelspecthink_t *thwomp)
sector_t *actionsector; sector_t *actionsector;
INT32 secnum; INT32 secnum;
// SRB2kart 170217 - Thwomps are automatic.
// Put up a timer before you start falling down.
// I could of used rowoffset, but the FOF actually
// modifies the textures's Y offset. It doesn't with
// textureoffset, so Effect 4 can be ignored as usual.
if (thwomp->sourceline->flags & ML_EFFECT1
&& leveltime < (unsigned)(sides[thwomp->sourceline->sidenum[0]].textureoffset>>FRACBITS))
thwomp->direction = 0;
// If you just crashed down, wait a second before coming back up. // If you just crashed down, wait a second before coming back up.
if (--thwomp->distance > 0) if (--thwomp->distance > 0)
{ {
sides[thwomp->sourceline->sidenum[0]].midtexture = sides[thwomp->sourceline->sidenum[0]].bottomtexture; sides[thwomp->sourceline->sidenum[0]].midtexture = sides[thwomp->sourceline->sidenum[0]].toptexture;
//sides[thwomp->sourceline->sidenum[0]].midtexture = sides[thwomp->sourceline->sidenum[0]].bottomtexture;
return; return;
} }
@ -1934,9 +1944,12 @@ void T_ThwompSector(levelspecthink_t *thwomp)
} }
else // Not going anywhere, so look for players. else // Not going anywhere, so look for players.
{ {
thinker_t *th; //thinker_t *th;
mobj_t *mo; //mobj_t *mo;
thwomp->direction = -1;
/* // SRB2kart 170217 - Thwomps are automatic.
// scan the thinkers to find players! // scan the thinkers to find players!
for (th = thinkercap.next; th != &thinkercap; th = th->next) for (th = thinkercap.next; th != &thinkercap; th = th->next)
{ {
@ -1950,7 +1963,7 @@ void T_ThwompSector(levelspecthink_t *thwomp)
thwomp->direction = -1; thwomp->direction = -1;
break; break;
} }
} }*/
thwomp->sector->ceilspeed = 0; thwomp->sector->ceilspeed = 0;
thwomp->sector->floorspeed = 0; thwomp->sector->floorspeed = 0;
@ -3118,7 +3131,7 @@ INT32 EV_MarioBlock(sector_t *sec, sector_t *roversector, fixed_t topheight, mob
P_SetThingPosition(thing); P_SetThingPosition(thing);
if (thing->flags & MF_SHOOTABLE) if (thing->flags & MF_SHOOTABLE)
P_DamageMobj(thing, puncher, puncher, 1); P_DamageMobj(thing, puncher, puncher, 1);
else if (thing->type == MT_RING || thing->type == MT_COIN) else if (thing->type == MT_RING || thing->type == MT_COIN || thing->type == MT_RANDOMITEM)
{ {
thing->momz = FixedMul(3*FRACUNIT, thing->scale); thing->momz = FixedMul(3*FRACUNIT, thing->scale);
P_TouchSpecialThing(thing, puncher, false); P_TouchSpecialThing(thing, puncher, false);

View file

@ -386,7 +386,8 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
// We now identify by object type, not sprite! Tails 04-11-2001 // We now identify by object type, not sprite! Tails 04-11-2001
switch (special->type) switch (special->type)
{ {
case MT_RANDOMITEM: // SRB2kart case MT_RANDOMITEM: // SRB2kart
case MT_FLINGRANDOMITEM:
if (!(P_CanPickupItem(player, false))) if (!(P_CanPickupItem(player, false)))
return; return;
special->momx = special->momy = special->momz = 0; special->momx = special->momy = special->momz = 0;
@ -2859,7 +2860,8 @@ void P_RemoveShield(player_t *player)
player->powers[pw_shield] = player->powers[pw_shield] & SH_STACK; player->powers[pw_shield] = player->powers[pw_shield] & SH_STACK;
} }
static void P_ShieldDamage(player_t *player, mobj_t *inflictor, mobj_t *source, INT32 damage) /*
static void P_ShieldDamage(player_t *player, mobj_t *inflictor, mobj_t *source, INT32 damage) // SRB2kart - unused.
{ {
// Must do pain first to set flashing -- P_RemoveShield can cause damage // Must do pain first to set flashing -- P_RemoveShield can cause damage
P_DoPlayerPain(player, source, inflictor); P_DoPlayerPain(player, source, inflictor);
@ -2890,6 +2892,7 @@ static void P_ShieldDamage(player_t *player, mobj_t *inflictor, mobj_t *source,
P_AddPlayerScore(source->player, cv_match_scoring.value == 1 ? 25 : 50); P_AddPlayerScore(source->player, cv_match_scoring.value == 1 ? 25 : 50);
} }
} }
*/
static void P_RingDamage(player_t *player, mobj_t *inflictor, mobj_t *source, INT32 damage) static void P_RingDamage(player_t *player, mobj_t *inflictor, mobj_t *source, INT32 damage)
{ {

View file

@ -26,6 +26,9 @@
#include "w_wad.h" #include "w_wad.h"
#include "k_kart.h" // SRB2kart 011617 #include "k_kart.h" // SRB2kart 011617
#include "hu_stuff.h" // SRB2kart
#include "i_system.h" // SRB2kart
#include "r_splats.h" #include "r_splats.h"
#ifdef ESLOPE #ifdef ESLOPE
@ -112,7 +115,7 @@ boolean P_TeleportMove(mobj_t *thing, fixed_t x, fixed_t y, fixed_t z)
boolean P_DoSpring(mobj_t *spring, mobj_t *object) boolean P_DoSpring(mobj_t *spring, mobj_t *object)
{ {
INT32 pflags; //INT32 pflags;
fixed_t offx, offy; fixed_t offx, offy;
fixed_t vertispeed = spring->info->mass; fixed_t vertispeed = spring->info->mass;
fixed_t horizspeed = spring->info->damage; fixed_t horizspeed = spring->info->damage;
@ -203,7 +206,7 @@ boolean P_DoSpring(mobj_t *spring, mobj_t *object)
} }
} }
pflags = object->player->pflags & (PF_JUMPED|PF_SPINNING|PF_THOKKED); // I still need these. //pflags = object->player->pflags & (PF_JUMPED|PF_SPINNING|PF_THOKKED); // I still need these.
P_ResetPlayer(object->player); P_ResetPlayer(object->player);
/* // SRB2kart - Springs don't need to change player state in kart. /* // SRB2kart - Springs don't need to change player state in kart.

View file

@ -1347,6 +1347,7 @@ fixed_t P_GetMobjGravity(mobj_t *mo)
{ {
case MT_FLINGRING: case MT_FLINGRING:
case MT_FLINGCOIN: case MT_FLINGCOIN:
case MT_FLINGRANDOMITEM: // SRB2kart
case MT_FLINGEMERALD: case MT_FLINGEMERALD:
case MT_BOUNCERING: case MT_BOUNCERING:
case MT_RAILRING: case MT_RAILRING:
@ -2257,6 +2258,7 @@ static boolean P_ZMovement(mobj_t *mo)
case MT_BLUETEAMRING: case MT_BLUETEAMRING:
case MT_FLINGRING: case MT_FLINGRING:
case MT_FLINGCOIN: case MT_FLINGCOIN:
case MT_FLINGRANDOMITEM:
case MT_FLINGEMERALD: case MT_FLINGEMERALD:
case MT_RANDOMITEM: case MT_RANDOMITEM:
// Remove flinged stuff from death pits. // Remove flinged stuff from death pits.
@ -2450,6 +2452,7 @@ static boolean P_ZMovement(mobj_t *mo)
// Flingrings bounce // Flingrings bounce
if (mo->type == MT_FLINGRING if (mo->type == MT_FLINGRING
|| mo->type == MT_FLINGCOIN || mo->type == MT_FLINGCOIN
|| mo->type == MT_FLINGRANDOMITEM
|| P_WeaponOrPanel(mo->type) || P_WeaponOrPanel(mo->type)
|| mo->type == MT_FLINGEMERALD || mo->type == MT_FLINGEMERALD
|| mo->type == MT_BIGTUMBLEWEED || mo->type == MT_BIGTUMBLEWEED
@ -5874,6 +5877,9 @@ void P_Attract(mobj_t *source, mobj_t *dest, boolean nightsgrab) // Home in on y
fixed_t ty = dest->y; fixed_t ty = dest->y;
fixed_t tz = dest->z + (dest->height/2); // Aim for center fixed_t tz = dest->z + (dest->height/2); // Aim for center
if (source->type == MT_RANDOMITEM || source->type == MT_FLINGRANDOMITEM) // SRB2kart - item boxes are sorta tall
tz = dest->z;
if (!dest || dest->health <= 0 || !dest->player || !source->tracer) if (!dest || dest->health <= 0 || !dest->player || !source->tracer)
return; return;
@ -7255,6 +7261,7 @@ void P_MobjThinker(mobj_t *mobj)
// Flung items // Flung items
case MT_FLINGRING: case MT_FLINGRING:
case MT_FLINGCOIN: case MT_FLINGCOIN:
case MT_FLINGRANDOMITEM:
if (mobj->flags2 & MF2_NIGHTSPULL) if (mobj->flags2 & MF2_NIGHTSPULL)
P_NightsItemChase(mobj); P_NightsItemChase(mobj);
else else
@ -7590,6 +7597,7 @@ for (i = ((mobj->flags2 & MF2_STRONGBOX) ? strongboxamt : weakboxamt); i; --i) s
#ifdef ESLOPE // Sliding physics for slidey mobjs! #ifdef ESLOPE // Sliding physics for slidey mobjs!
if (mobj->type == MT_FLINGRING if (mobj->type == MT_FLINGRING
|| mobj->type == MT_FLINGCOIN || mobj->type == MT_FLINGCOIN
|| mobj->type == MT_FLINGRANDOMITEM
|| P_WeaponOrPanel(mobj->type) || P_WeaponOrPanel(mobj->type)
|| mobj->type == MT_FLINGEMERALD || mobj->type == MT_FLINGEMERALD
|| mobj->type == MT_BIGTUMBLEWEED || mobj->type == MT_BIGTUMBLEWEED

View file

@ -816,7 +816,8 @@ void P_ReloadRings(void)
} }
continue; continue;
} }
if (!(mo->type == MT_RING || mo->type == MT_NIGHTSWING || mo->type == MT_COIN || mo->type == MT_BLUEBALL)) if (!(mo->type == MT_RING || mo->type == MT_NIGHTSWING || mo->type == MT_COIN
|| mo->type == MT_BLUEBALL || mo->type == MT_RANDOMITEM))
continue; continue;
// Don't auto-disintegrate things being pulled to us // Don't auto-disintegrate things being pulled to us

View file

@ -2311,14 +2311,15 @@ static void P_DoPlayerHeadSigns(player_t *player)
// //
// Handles player climbing // Handles player climbing
// //
static void P_DoClimbing(player_t *player) /*
static void P_DoClimbing(player_t *player) // SRB2kart - unused
{ {
return; // SRB2kart - don't need return; // SRB2kart - don't need
ticcmd_t *cmd = &player->cmd; ticcmd_t *cmd = &player->cmd;
fixed_t platx; fixed_t platx;
fixed_t platy; fixed_t platy;
subsector_t *glidesector; subsector_t *glidesector;
boolean climb = true; //boolean climb = true; // SRB2kart - unused
platx = P_ReturnThrustX(player->mo, player->mo->angle, player->mo->radius + FixedMul(8*FRACUNIT, player->mo->scale)); platx = P_ReturnThrustX(player->mo, player->mo->angle, player->mo->radius + FixedMul(8*FRACUNIT, player->mo->scale));
platy = P_ReturnThrustY(player->mo, player->mo->angle, player->mo->radius + FixedMul(8*FRACUNIT, player->mo->scale)); platy = P_ReturnThrustY(player->mo, player->mo->angle, player->mo->radius + FixedMul(8*FRACUNIT, player->mo->scale));
@ -2328,9 +2329,9 @@ static void P_DoClimbing(player_t *player)
if (!glidesector || glidesector->sector != player->mo->subsector->sector) if (!glidesector || glidesector->sector != player->mo->subsector->sector)
{ {
boolean floorclimb = false; boolean floorclimb = false;
boolean thrust = false; //boolean thrust = false; // SRB2kart - unused
boolean boostup = false; //boolean boostup = false; // SRB2kart - unused
boolean skyclimber = false; //boolean skyclimber = false; // SRB2kart - unused
fixed_t floorheight, ceilingheight; // ESLOPE fixed_t floorheight, ceilingheight; // ESLOPE
if (!glidesector) if (!glidesector)
@ -2693,7 +2694,6 @@ static void P_DoClimbing(player_t *player)
else else
climb = false; climb = false;
/* // SRB2kart - don't need
if (player->climbing && climb && (player->mo->momx || player->mo->momy || player->mo->momz) if (player->climbing && climb && (player->mo->momx || player->mo->momy || player->mo->momz)
&& !(player->mo->state >= &states[S_PLAY_CLIMB2] && player->mo->state <= &states[S_PLAY_CLIMB5])) && !(player->mo->state >= &states[S_PLAY_CLIMB2] && player->mo->state <= &states[S_PLAY_CLIMB5]))
P_SetPlayerMobjState(player->mo, S_PLAY_CLIMB2); P_SetPlayerMobjState(player->mo, S_PLAY_CLIMB2);
@ -2718,7 +2718,6 @@ static void P_DoClimbing(player_t *player)
player->pflags |= PF_JUMPED; player->pflags |= PF_JUMPED;
P_SetPlayerMobjState(player->mo, S_PLAY_ATK1); P_SetPlayerMobjState(player->mo, S_PLAY_ATK1);
} }
*/
} }
else else
{ {
@ -2732,7 +2731,6 @@ static void P_DoClimbing(player_t *player)
else else
climb = false; climb = false;
/*
if (player->climbing && climb && (player->mo->momx || player->mo->momy || player->mo->momz) if (player->climbing && climb && (player->mo->momx || player->mo->momy || player->mo->momz)
&& !(player->mo->state >= &states[S_PLAY_CLIMB2] && player->mo->state <= &states[S_PLAY_CLIMB5])) && !(player->mo->state >= &states[S_PLAY_CLIMB2] && player->mo->state <= &states[S_PLAY_CLIMB5]))
P_SetPlayerMobjState(player->mo, S_PLAY_CLIMB2); P_SetPlayerMobjState(player->mo, S_PLAY_CLIMB2);
@ -2758,7 +2756,7 @@ static void P_DoClimbing(player_t *player)
if (player->climbing == 0) if (player->climbing == 0)
P_SetPlayerMobjState(player->mo, S_PLAY_ATK1); P_SetPlayerMobjState(player->mo, S_PLAY_ATK1);
*/
if (player->climbing && P_IsObjectOnGround(player->mo)) if (player->climbing && P_IsObjectOnGround(player->mo))
{ {
@ -2766,6 +2764,7 @@ static void P_DoClimbing(player_t *player)
P_SetPlayerMobjState(player->mo, S_KART_STND); // SRB2kart P_SetPlayerMobjState(player->mo, S_KART_STND); // SRB2kart
} }
} }
*/
// //
// PIT_CheckSolidsTeeter // PIT_CheckSolidsTeeter
@ -2780,7 +2779,8 @@ static boolean couldteeter;
static fixed_t teeterxl, teeterxh; static fixed_t teeterxl, teeterxh;
static fixed_t teeteryl, teeteryh; static fixed_t teeteryl, teeteryh;
static boolean PIT_CheckSolidsTeeter(mobj_t *thing) /*
static boolean PIT_CheckSolidsTeeter(mobj_t *thing) // SRB2kart - unused.
{ {
fixed_t blockdist; fixed_t blockdist;
fixed_t tiptop = FixedMul(MAXSTEPMOVE, teeterer->scale); fixed_t tiptop = FixedMul(MAXSTEPMOVE, teeterer->scale);
@ -2885,13 +2885,15 @@ static boolean PIT_CheckSolidsTeeter(mobj_t *thing)
solidteeter = false; solidteeter = false;
return true; // you're not teetering but it's not neccessarily over, YET return true; // you're not teetering but it's not neccessarily over, YET
} }
*/
// //
// P_DoTeeter // P_DoTeeter
// //
// Handles player teetering // Handles player teetering
// //
static void P_DoTeeter(player_t *player) /*
static void P_DoTeeter(player_t *player) // SRB2kart - unused.
{ {
return; // SRB2kart - don't need return; // SRB2kart - don't need
boolean teeter = false; boolean teeter = false;
@ -3137,7 +3139,6 @@ teeterdone:
tmthing = oldtmthing; // restore old tmthing, goodness knows what the game does with this before mobj thinkers tmthing = oldtmthing; // restore old tmthing, goodness knows what the game does with this before mobj thinkers
} }
} }
/*
if (teeter) if (teeter)
{ {
if ((player->mo->state == &states[S_PLAY_STND] || player->mo->state == &states[S_PLAY_TAP1] || player->mo->state == &states[S_PLAY_TAP2] || player->mo->state == &states[S_PLAY_SUPERSTAND])) if ((player->mo->state == &states[S_PLAY_STND] || player->mo->state == &states[S_PLAY_TAP1] || player->mo->state == &states[S_PLAY_TAP2] || player->mo->state == &states[S_PLAY_SUPERSTAND]))
@ -3145,8 +3146,8 @@ teeterdone:
} }
else if ((player->mo->state == &states[S_PLAY_TEETER1] || player->mo->state == &states[S_PLAY_TEETER2] || player->mo->state == &states[S_PLAY_SUPERTEETER])) else if ((player->mo->state == &states[S_PLAY_TEETER1] || player->mo->state == &states[S_PLAY_TEETER2] || player->mo->state == &states[S_PLAY_SUPERTEETER]))
P_SetPlayerMobjState(player->mo, S_PLAY_STND); P_SetPlayerMobjState(player->mo, S_PLAY_STND);
*/
} }
*/
// //
// P_SetWeaponDelay // P_SetWeaponDelay
@ -3171,7 +3172,8 @@ static void P_SetWeaponDelay(player_t *player, INT32 delay)
// //
// Handles firing ring weapons and Mario fireballs. // Handles firing ring weapons and Mario fireballs.
// //
static void P_DoFiring(player_t *player, ticcmd_t *cmd) /*
static void P_DoFiring(player_t *player, ticcmd_t *cmd) // SRB2kart - unused.
{ {
INT32 i; INT32 i;
@ -3382,6 +3384,7 @@ static void P_DoFiring(player_t *player, ticcmd_t *cmd)
// Release the grenade / whatever. // Release the grenade / whatever.
player->pflags &= ~PF_ATTACKDOWN; player->pflags &= ~PF_ATTACKDOWN;
} }
*/
// //
// P_DoSuperStuff() // P_DoSuperStuff()
@ -3732,7 +3735,8 @@ void P_DoJump(player_t *player, boolean soundandstate)
// //
// Player spindash handling // Player spindash handling
// //
static void P_DoSpinDash(player_t *player, ticcmd_t *cmd) /*
static void P_DoSpinDash(player_t *player, ticcmd_t *cmd) // SRB2kart - unused.
{ {
return; // SRB2kart - what's a spindash? return; // SRB2kart - what's a spindash?
if (player->pflags & PF_STASIS) if (player->pflags & PF_STASIS)
@ -3836,6 +3840,7 @@ static void P_DoSpinDash(player_t *player, ticcmd_t *cmd)
//if (onground && (player->pflags & PF_SPINNING) && !(player->panim == PA_ROLL)) //if (onground && (player->pflags & PF_SPINNING) && !(player->panim == PA_ROLL))
// P_SetPlayerMobjState(player->mo, S_PLAY_ATK1); // P_SetPlayerMobjState(player->mo, S_PLAY_ATK1);
} }
*/
// //
// P_DoJumpShield // P_DoJumpShield
@ -7404,10 +7409,9 @@ static void P_DoZoomTube(player_t *player)
// Kinda like P_DoZoomTube // Kinda like P_DoZoomTube
// but a little different. // but a little different.
// //
static void P_DoRopeHang(player_t *player) /*
static void P_DoRopeHang(player_t *player) // SRB2kart - unused.
{ {
return; // SRB2kart - errr
/*
INT32 sequence; INT32 sequence;
fixed_t speed; fixed_t speed;
thinker_t *th; thinker_t *th;
@ -7553,8 +7557,8 @@ static void P_DoRopeHang(player_t *player)
CONS_Debug(DBG_GAMELOGIC, "Next waypoint not found!\n"); CONS_Debug(DBG_GAMELOGIC, "Next waypoint not found!\n");
} }
} }
*/
} }
*/
#if 0 #if 0
// //
@ -7645,7 +7649,7 @@ void P_NukeEnemies(mobj_t *inflictor, mobj_t *source, fixed_t radius)
P_KillMobj(mo->tracer, inflictor, source); P_KillMobj(mo->tracer, inflictor, source);
if (mo->flags & MF_BOSS || mo->type == MT_PLAYER) //don't OHKO bosses nor players! if (mo->flags & MF_BOSS || mo->type == MT_PLAYER) //don't OHKO bosses nor players!
P_DamageMobj(mo, inflictor, source, 1); continue; // SRB2kart - P_Nuke is for magnet (for now), and doesn't hurt other players, only obstacles. // P_DamageMobj(mo, inflictor, source, 1);
else else
P_DamageMobj(mo, inflictor, source, 1000); P_DamageMobj(mo, inflictor, source, 1000);
} }
@ -9092,7 +9096,7 @@ void P_PlayerThink(player_t *player)
mo2 = (mobj_t *)th; mo2 = (mobj_t *)th;
if (!(mo2->type == MT_NIGHTSWING || mo2->type == MT_RING || mo2->type == MT_COIN if (!(mo2->type == MT_NIGHTSWING || mo2->type == MT_RING || mo2->type == MT_COIN
|| mo2->type == MT_BLUEBALL)) || mo2->type == MT_BLUEBALL || mo2->type == MT_RANDOMITEM))
continue; continue;
if (P_AproxDistance(P_AproxDistance(mo2->x - x, mo2->y - y), mo2->z - z) > FixedMul(128*FRACUNIT, player->mo->scale)) if (P_AproxDistance(P_AproxDistance(mo2->x - x, mo2->y - y), mo2->z - z) > FixedMul(128*FRACUNIT, player->mo->scale))
@ -9367,7 +9371,7 @@ void P_PlayerThink(player_t *player)
void P_PlayerAfterThink(player_t *player) void P_PlayerAfterThink(player_t *player)
{ {
ticcmd_t *cmd; ticcmd_t *cmd;
INT32 oldweapon = player->currentweapon; //INT32 oldweapon = player->currentweapon; // SRB2kart - unused
camera_t *thiscam = NULL; // if not one of the displayed players, just don't bother camera_t *thiscam = NULL; // if not one of the displayed players, just don't bother
#ifdef PARANOIA #ifdef PARANOIA

View file

@ -689,7 +689,8 @@ static inline void ST_drawRings(void)
ST_DrawNumFromHudWS(HUD_RINGSNUM, ringnum); ST_DrawNumFromHudWS(HUD_RINGSNUM, ringnum);
} }
static void ST_drawLives(void) /*
static void ST_drawLives(void) // SRB2kart - unused.
{ {
const INT32 v_splitflag = (splitscreen && stplyr == &players[displayplayer] ? V_SPLITSCREEN : 0); const INT32 v_splitflag = (splitscreen && stplyr == &players[displayplayer] ? V_SPLITSCREEN : 0);
@ -733,6 +734,7 @@ static void ST_drawLives(void)
V_DrawRightAlignedString(hudinfo[HUD_LIVESNUM].x, hudinfo[HUD_LIVESNUM].y + (v_splitflag ? -4 : 0), V_DrawRightAlignedString(hudinfo[HUD_LIVESNUM].x, hudinfo[HUD_LIVESNUM].y + (v_splitflag ? -4 : 0),
V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_HUDTRANS|v_splitflag, va("%d",stplyr->lives)); V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_HUDTRANS|v_splitflag, va("%d",stplyr->lives));
} }
*/
static void ST_drawLevelTitle(void) static void ST_drawLevelTitle(void)
{ {
@ -970,7 +972,8 @@ static void ST_drawNightsRecords(void)
} }
} }
static void ST_drawNiGHTSHUD(void) /*
static void ST_drawNiGHTSHUD(void) // SRB2kart - unused.
{ {
INT32 origamount; INT32 origamount;
INT32 minlink = 1; INT32 minlink = 1;
@ -1144,7 +1147,7 @@ static void ST_drawNiGHTSHUD(void)
INT32 i; INT32 i;
total_ringcount = 0; total_ringcount = 0;
for (i = 0; i < MAXPLAYERS; i++) for (i = 0; i < MAXPLAYERS; i++)
if (playeringame[i] /*&& players[i].pflags & PF_NIGHTSMODE*/ && players[i].health) if (playeringame[i] && players[i].pflags & PF_NIGHTSMODE && players[i].health)
total_ringcount += players[i].health - 1; total_ringcount += players[i].health - 1;
} }
else else
@ -1349,6 +1352,7 @@ static void ST_drawNiGHTSHUD(void)
if (nosshack) if (nosshack)
splitscreen = true; splitscreen = true;
} }
*/
static void ST_drawWeaponRing(powertype_t weapon, INT32 rwflag, INT32 wepflag, INT32 xoffs, patch_t *pat) static void ST_drawWeaponRing(powertype_t weapon, INT32 rwflag, INT32 wepflag, INT32 xoffs, patch_t *pat)
{ {
@ -1382,7 +1386,8 @@ static void ST_drawWeaponRing(powertype_t weapon, INT32 rwflag, INT32 wepflag, I
V_DrawScaledPatch(8 + xoffs, STRINGY(162), V_SNAPTOLEFT|V_TRANSLUCENT, pat); V_DrawScaledPatch(8 + xoffs, STRINGY(162), V_SNAPTOLEFT|V_TRANSLUCENT, pat);
} }
static void ST_drawMatchHUD(void) /*
static void ST_drawMatchHUD(void) // SRB2kart - unused.
{ {
INT32 offset = (BASEVIDWIDTH / 2) - (NUM_WEAPONS * 10); INT32 offset = (BASEVIDWIDTH / 2) - (NUM_WEAPONS * 10);
@ -1461,6 +1466,7 @@ static void ST_drawMatchHUD(void)
} }
#endif #endif
} }
*/
static inline void ST_drawRaceHUD(void) static inline void ST_drawRaceHUD(void)
{ {
@ -1482,7 +1488,8 @@ static inline void ST_drawRaceHUD(void)
} }
} }
static void ST_drawTagHUD(void) /*
static void ST_drawTagHUD(void) // SRB2kart - unused.
{ {
char pstime[33] = ""; char pstime[33] = "";
char pstext[33] = ""; char pstext[33] = "";
@ -1541,7 +1548,7 @@ static void ST_drawTagHUD(void)
} }
} }
static void ST_drawCTFHUD(void) static void ST_drawCTFHUD(void) // SRB2kart - unused.
{ {
INT32 i; INT32 i;
UINT16 whichflag = 0; UINT16 whichflag = 0;
@ -1589,6 +1596,7 @@ static void ST_drawCTFHUD(void)
} }
} }
} }
*/
// Draws "Red Team", "Blue Team", or "Spectator" for team gametypes. // Draws "Red Team", "Blue Team", or "Spectator" for team gametypes.
static inline void ST_drawTeamName(void) static inline void ST_drawTeamName(void)
@ -1601,7 +1609,8 @@ static inline void ST_drawTeamName(void)
V_DrawString(244, (splitscreen) ? STRINGY(184) : STRINGY(192), V_HUDTRANSHALF, "SPECTATOR"); V_DrawString(244, (splitscreen) ? STRINGY(184) : STRINGY(192), V_HUDTRANSHALF, "SPECTATOR");
} }
static void ST_drawSpecialStageHUD(void) /*
static void ST_drawSpecialStageHUD(void) // SRB2kart - unused.
{ {
if (totalrings > 0) if (totalrings > 0)
ST_DrawNumFromHudWS(HUD_SS_TOTALRINGS, totalrings); ST_DrawNumFromHudWS(HUD_SS_TOTALRINGS, totalrings);
@ -1620,6 +1629,7 @@ static void ST_drawSpecialStageHUD(void)
else else
ST_DrawPatchFromHud(HUD_TIMEUP, timeup); ST_DrawPatchFromHud(HUD_TIMEUP, timeup);
} }
*/
static INT32 ST_drawEmeraldHuntIcon(mobj_t *hunt, patch_t **patches, INT32 offset) static INT32 ST_drawEmeraldHuntIcon(mobj_t *hunt, patch_t **patches, INT32 offset)
{ {
@ -1661,8 +1671,9 @@ static INT32 ST_drawEmeraldHuntIcon(mobj_t *hunt, patch_t **patches, INT32 offse
return interval; return interval;
} }
/*
// Separated a few things to stop the SOUND EFFECTS BLARING UGH SHUT UP AAAA // Separated a few things to stop the SOUND EFFECTS BLARING UGH SHUT UP AAAA
static void ST_doHuntIconsAndSound(void) static void ST_doHuntIconsAndSound(void) // SRB2kart - unused.
{ {
INT32 interval = 0, newinterval = 0; INT32 interval = 0, newinterval = 0;
@ -1687,7 +1698,7 @@ static void ST_doHuntIconsAndSound(void)
S_StartSound(NULL, sfx_emfind); S_StartSound(NULL, sfx_emfind);
} }
static void ST_doItemFinderIconsAndSound(void) static void ST_doItemFinderIconsAndSound(void) // SRB2kart - unused.
{ {
INT32 emblems[16]; INT32 emblems[16];
thinker_t *th; thinker_t *th;
@ -1746,6 +1757,7 @@ static void ST_doItemFinderIconsAndSound(void)
if (!(P_AutoPause() || paused) && interval > 0 && leveltime && leveltime % interval == 0) if (!(P_AutoPause() || paused) && interval > 0 && leveltime && leveltime % interval == 0)
S_StartSound(NULL, sfx_emfind); S_StartSound(NULL, sfx_emfind);
} }
*/
// Draw the status bar overlay, customisable: the user chooses which // Draw the status bar overlay, customisable: the user chooses which
// kind of information to overlay // kind of information to overlay

View file

@ -1204,7 +1204,7 @@ void Y_StartIntermission(void)
usetile = !useinterpic; usetile = !useinterpic;
// get special stage specific patches // get special stage specific patches
/* if (!stagefailed && ALL7EMERALDS(emeralds)) if (!stagefailed && ALL7EMERALDS(emeralds))
{ {
data.spec.cemerald = W_CachePatchName("GOTEMALL", PU_STATIC); data.spec.cemerald = W_CachePatchName("GOTEMALL", PU_STATIC);
data.spec.headx = 70; data.spec.headx = 70;
@ -1216,8 +1216,8 @@ void Y_StartIntermission(void)
data.spec.cemerald = W_CachePatchName("CEMERALD", PU_STATIC); data.spec.cemerald = W_CachePatchName("CEMERALD", PU_STATIC);
data.spec.headx = 48; data.spec.headx = 48;
data.spec.nowsuper = NULL; data.spec.nowsuper = NULL;
} */ }
/*
// Super form stuff (normally blank) // Super form stuff (normally blank)
data.spec.passed3[0] = '\0'; data.spec.passed3[0] = '\0';
data.spec.passed4[0] = '\0'; data.spec.passed4[0] = '\0';
@ -1658,12 +1658,14 @@ static void Y_SetRingBonus(player_t *player, y_bonus_t *bstruct)
// //
// Y_SetLinkBonus // Y_SetLinkBonus
// //
static void Y_SetLinkBonus(player_t *player, y_bonus_t *bstruct) /*
static void Y_SetLinkBonus(player_t *player, y_bonus_t *bstruct) // SRB2kart - unused.
{ {
strncpy(bstruct->patch, "YB_LINK", sizeof(bstruct->patch)); strncpy(bstruct->patch, "YB_LINK", sizeof(bstruct->patch));
bstruct->display = true; bstruct->display = true;
bstruct->points = max(0, (player->maxlink - 1) * 100); bstruct->points = max(0, (player->maxlink - 1) * 100);
} }
*/
// //
// Y_SetGuardBonus // Y_SetGuardBonus