Updates done a while ago... Not 100% sure what they were. :x

This commit is contained in:
ZTsukei 2016-11-20 23:23:00 -05:00
parent 82b0e9962e
commit 66c6b6885f
14 changed files with 217 additions and 91 deletions

View File

@ -809,27 +809,25 @@ static void IdentifyVersion(void)
// checking in D_SRB2Main
// Add the maps
D_AddFile(va(pandf,srb2waddir,"zones.dta"));
//D_AddFile(va(pandf,srb2waddir,"zones.dta"));
// Add the players
D_AddFile(va(pandf,srb2waddir, "player.dta"));
//D_AddFile(va(pandf,srb2waddir, "player.dta"));
// Add the weapons
D_AddFile(va(pandf,srb2waddir,"rings.dta"));
//D_AddFile(va(pandf,srb2waddir,"rings.dta"));
#ifdef USE_PATCH_DTA
// Add our crappy patches to fix our bugs
D_AddFile(va(pandf,srb2waddir,"patch.dta"));
//D_AddFile(va(pandf,srb2waddir,"patch.dta"));
#endif
// SRB2kart - Add graphics (temp)
D_AddFile(va(pandf,srb2waddir,"AllKartGraphics.wad"));
D_AddFile(va(pandf,srb2waddir,"AllKartChars.wad"));
D_AddFile(va(pandf,srb2waddir,"AllKartSounds.wad"));
D_AddFile(va(pandf,srb2waddir,"KartTextures.wad"));
D_AddFile(va(pandf,srb2waddir,"KMFixes3.wad"));
D_AddFile(va(pandf,srb2waddir,"SNSAssets.wad"));
D_AddFile(va(pandf,srb2waddir,"k_SNSRainbowRoad.wad"));
// SRB2kart - Add graphics (temp) // The command for md5 checks is "W_VerifyFileMD5" - looks for ASSET_HASH_SRB2_SRB in config.h.in
D_AddFile(va(pandf,srb2waddir,"gfx.kart"));
D_AddFile(va(pandf,srb2waddir,"chars.kart"));
D_AddFile(va(pandf,srb2waddir,"maps.kart"));
D_AddFile(va(pandf,srb2waddir,"sounds.kart"));
//D_AddFile(va(pandf,srb2waddir,"k_SNSRainbowRoad.wad"));
#if !defined (HAVE_SDL) || defined (HAVE_MIXER)
{
@ -1117,11 +1115,11 @@ void D_SRB2Main(void)
// Check MD5s of autoloaded files
W_VerifyFileMD5(0, ASSET_HASH_SRB2_SRB); // srb2.srb/srb2.wad
W_VerifyFileMD5(1, ASSET_HASH_ZONES_DTA); // zones.dta
W_VerifyFileMD5(2, ASSET_HASH_PLAYER_DTA); // player.dta
W_VerifyFileMD5(3, ASSET_HASH_RINGS_DTA); // rings.dta
//W_VerifyFileMD5(1, ASSET_HASH_ZONES_DTA); // zones.dta
//W_VerifyFileMD5(2, ASSET_HASH_PLAYER_DTA); // player.dta
//W_VerifyFileMD5(3, ASSET_HASH_RINGS_DTA); // rings.dta
#ifdef USE_PATCH_DTA
W_VerifyFileMD5(4, ASSET_HASH_PATCH_DTA); // patch.dta
//W_VerifyFileMD5(4, ASSET_HASH_PATCH_DTA); // patch.dta
#endif
// don't check music.dta because people like to modify it, and it doesn't matter if they do

View File

@ -197,8 +197,8 @@ UINT16 extralifetics = 4*TICRATE;
// SRB2kart
INT32 bootime = 7*TICRATE;
INT32 mushroomtime = 120;
INT32 bonustime = 700;
INT32 mushroomtime = TICRATE + (TICRATE/3);
INT32 bonustime = 20*TICRATE;
INT32 gameovertics = 15*TICRATE;

View File

@ -55,8 +55,8 @@ char sprnames[NUMSPRITES + 1][5] =
"GWLR","SRBA","SRBB","SRBC","SRBD","SRBE","SRBF","SRBG","SRBH","SRBI",
"SRBJ","SRBK","SRBL","SRBM","SRBN","SRBO",
//SRB2kart Sprites
"SPRG","BSPR","RNDM","SPRK","KFRE","DRIF","FAKE","DFAK","BANA","DBAN",
"GSHE","GSTR","DGSH","RSHE","RSTR","DRSH","BOMB","BLIG","LIGH"
"SPRG","BSPR","RNDM","SPRK","KFRE","DRIF","DSMO","FAKE","DFAK","BANA",
"DBAN","GSHE","GSTR","DGSH","RSHE","RSTR","DRSH","BOMB","BLIG","LIGH"
};
// Doesn't work with g++, needs actionf_p1 (don't modify this comment)
@ -2524,6 +2524,8 @@ state_t states[NUMSTATES] =
{SPR_SPRG, 2, 1, {NULL}, 0, 0, S_GRAYSPRING5}, // S_GRAYSPRING4
{SPR_SPRG, 1, 1, {NULL}, 0, 0, S_GRAYSPRING}, // S_GRAYSPRING5
{SPR_NULL, 0, 1, {A_Pain}, 0, 0, S_INVISIBLE}, // S_INVISSPRING
{SPR_BSPR, 0, -1, {NULL}, 0, 0, S_NULL}, // S_BDIAG1
{SPR_BSPR, 1, 1, {A_Pain}, 0, 0, S_BDIAG3}, // S_BDIAG2
{SPR_BSPR, 2, 1, {NULL}, 0, 0, S_BDIAG4}, // S_BDIAG3
@ -2572,6 +2574,12 @@ state_t states[NUMSTATES] =
{SPR_DRIF, 4, 2, {NULL}, 0, 0, S_DRIFTSPARK6}, // S_DRIFTSPARK5
{SPR_DRIF, 5, 2, {NULL}, 0, 0, S_DRIFTSPARK4}, // S_DRIFTSPARK6
{SPR_DSMO, FF_TRANS50|0, 2, {NULL}, 0, 0, S_DRIFTSMOKE2}, // S_DRIFTSMOKE1
{SPR_DSMO, FF_TRANS50|1, 2, {NULL}, 0, 0, S_DRIFTSMOKE3}, // S_DRIFTSMOKE2
{SPR_DSMO, FF_TRANS50|2, 2, {NULL}, 0, 0, S_DRIFTSMOKE4}, // S_DRIFTSMOKE3
{SPR_DSMO, FF_TRANS50|3, 2, {NULL}, 0, 0, S_DRIFTSMOKE5}, // S_DRIFTSMOKE4
{SPR_DSMO, FF_TRANS50|4, 2, {NULL}, 0, 0, S_NULL}, // S_DRIFTSMOKE5
{SPR_NULL, 0, 10, {NULL}, 0, 0, S_KARTFIRE2}, // S_KARTFIRE1
{SPR_KFRE, FF_FULLBRIGHT, 2, {NULL}, 0, 0, S_KARTFIRE3}, // S_KARTFIRE2
{SPR_KFRE, FF_FULLBRIGHT|1, 2, {NULL}, 0, 0, S_KARTFIRE4}, // S_KARTFIRE3
@ -5617,17 +5625,17 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL // raisestate
},
{ // MT_STARPOST
{ // MT_STARPOST // SRB2kart - Set states to S_INVISIBLE, and sfx to _None
502, // doomednum
S_STARPOST_IDLE, // spawnstate
S_INVISIBLE, // spawnstate
1, // spawnhealth
S_STARPOST_FLASH, // seestate
S_INVISIBLE, // seestate
sfx_None, // seesound
8, // reactiontime
sfx_None, // attacksound
S_STARPOST_SPIN, // painstate
S_INVISIBLE, // painstate
0, // painchance
sfx_strpst, // painsound
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_NULL, // deathstate
@ -13984,9 +13992,9 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
{ // MT_INVISSPRING
554, // doomednum
SPR_NULL, // spawnstate
S_INVISIBLE, // spawnstate
100, // spawnhealth
SPR_NULL, // seestate
S_INVISSPRING, // seestate
sfx_None, // seesound
8, // reactiontime
sfx_None, // attacksound
@ -14006,7 +14014,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
0, // damage
sfx_None, // activesound
MF_SOLID|MF_SPRING, // flags
SPR_NULL // raisestate
S_INVISSPRING // raisestate
},
{ // MT_BLUEDIAG
@ -14059,7 +14067,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
0, // damage
sfx_None, // activesound
MF_SOLID|MF_SHOOTABLE|MF_MONITOR, // flags
MF_SLIDEME|MF_SPECIAL|MF_NOGRAVITY|MF_NOCLIPHEIGHT, // flags
S_NULL // raisestate
},
@ -14113,7 +14121,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
0, // damage
sfx_None, // activesound
MF_NOBLOCKMAP|MF_NOGRAVITY|MF_FIRE, // flags
MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_SCENERY, // flags
S_NULL // raisestate
},
@ -14144,6 +14152,33 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL // raisestate
},
{ // MT_DRIFTSMOKE
-1, // doomednum
S_DRIFTSMOKE1, // spawnstate
1000, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
8, // reactiontime
sfx_None, // attacksound
S_NULL, // painstate
12, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_NULL, // deathstate
S_NULL, // xdeathstate
sfx_None, // deathsound
8, // speed
20*FRACUNIT, // radius
16*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_SCENERY, // flags
S_NULL // raisestate
},
{ // MT_FAKESHIELD
-1, // doomednum
S_FAKEITEM1, // spawnstate

View File

@ -582,6 +582,7 @@ typedef enum sprite
SPR_RPOP, // Random Item Box Pop
SPR_KFRE, // Mushroom fire trail
SPR_DRIF, // Drift Sparks
SPR_DSMO, // Drift Smoke
// Kart Items
SPR_FITE, // Fake Item box
@ -2992,6 +2993,9 @@ typedef enum state
S_GRAYSPRING4,
S_GRAYSPRING5,
// Invis-spring - this is used just for the sproing sound.
S_INVISSPRING,
// Blue Diagonal Spring
S_BDIAG1,
S_BDIAG2,
@ -3045,6 +3049,13 @@ typedef enum state
S_DRIFTSPARK5,
S_DRIFTSPARK6,
// Drift Smoke
S_DRIFTSMOKE1,
S_DRIFTSMOKE2,
S_DRIFTSMOKE3,
S_DRIFTSMOKE4,
S_DRIFTSMOKE5,
// Magnet Burst
// Mushroom Fire Trail
@ -3719,6 +3730,7 @@ typedef enum mobj_type
MT_MUSHROOMTRAIL,
MT_DRIFT,
MT_DRIFTSMOKE,
MT_FAKESHIELD,
MT_FAKEITEM,

View File

@ -668,6 +668,7 @@ static fixed_t K_KartItemOdds_Retro[MAXPLAYERS][NUMKARTITEMS][MAXPLAYERS] =
*/
static void K_KartGetItemResult(player_t *player, fixed_t getitem, boolean retrokart)
{
getitem++;
switch (getitem)
{
case 1: // Magnet
@ -742,11 +743,6 @@ static void K_KartGetItemResult(player_t *player, fixed_t getitem, boolean retro
player->kartstuff[k_mushroom] = 1;
break;
}
player->kartstuff[k_itemroulette] = 0; // Since we're done, clear the roulette number
if (P_IsLocalPlayer(player))
S_StartSound(NULL, sfx_mkitmF);
}
/** \brief Item Roulette for Kart
@ -759,7 +755,8 @@ static void K_KartGetItemResult(player_t *player, fixed_t getitem, boolean retro
static void K_KartSetItemResult(fixed_t position, fixed_t giveitem)
{
prevchance = chance;
basechance = K_KartItemOdds_Retro[pingame][giveitem][position]; // Number of slots in the array, based on odds
basechance = K_KartItemOdds_Retro[pingame-1][giveitem][position]; // Number of slots in the array, based on odds
for (; chance < prevchance + basechance; chance++)
{
spawnchance[chance] = giveitem;
@ -814,15 +811,13 @@ static void K_KartItemRoulette(player_t *player, ticcmd_t *cmd)
player->pflags |= PF_ATTACKDOWN;
player->kartstuff[k_itemclose] = 0; // Reset the item window closer.
player->kartstuff[k_itemroulette] = 0; // And the roulette is done!
// Yes I know I'm defining variables half-way into the function, but they aren't needed until now :/
fixed_t prandom = P_RandomFixed();
fixed_t ppos = player->kartstuff[k_position] - 1;
// Tiny catcher in case player position is unset.
if (ppos == 0)
ppos = 1;
if (ppos < 0) ppos = 0;
// Check the game type to differentiate odds.
//if (gametype == GT_RETRO)
@ -850,7 +845,7 @@ static void K_KartItemRoulette(player_t *player, ticcmd_t *cmd)
if (numchoices > 0)
K_KartGetItemResult(player, spawnchance[prandom%numchoices], true);
else
CONS_Printf("ERROR: P_KartItemRoulette - There were no choices given by the roulette.\n");
CONS_Printf("ERROR: P_KartItemRoulette - There were no choices given by the roulette (ppos = %d).\n", ppos);
//}
/*else if (gametype == GT_NEO)
{
@ -877,11 +872,16 @@ static void K_KartItemRoulette(player_t *player, ticcmd_t *cmd)
if (numchoices > 0)
K_KartGetItemResult(player, spawnchance[prandom%numchoices], false)
else
CONS_Printf("ERROR: P_KartItemRoulette - There were no choices given by the roulette.\n");
CONS_Printf("ERROR: P_KartItemRoulette - There were no choices given by the roulette (ppos = %d).\n", ppos);
}
else
CONS_Printf("ERROR: P_KartItemRoulette - There's no applicable game type!\n");
*/
player->kartstuff[k_itemroulette] = 0; // Since we're done, clear the roulette number
if (P_IsLocalPlayer(player))
S_StartSound(NULL, sfx_mkitmF);
}
//}
@ -976,7 +976,7 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd)
player->kartstuff[k_jmp] = 1;
else
player->kartstuff[k_jmp] = 0;
K_KartItemRoulette(player, cmd); // Roulette Code
// Looping and stopping of the horrible horrible star SFX ~Sryder
@ -1243,6 +1243,71 @@ mobj_t *K_SpawnKartMissile(mobj_t *source, mobjtype_t type, angle_t angle, INT32
return NULL;
}
void K_SpawnDriftTrail(player_t *player)
{
fixed_t newx;
fixed_t newy;
fixed_t ground;
mobj_t *flame;
angle_t travelangle;
INT32 i;
I_Assert(player != NULL);
I_Assert(player->mo != NULL);
I_Assert(!P_MobjWasRemoved(player->mo));
if (player->mo->eflags & MFE_VERTICALFLIP)
ground = player->mo->ceilingz - FixedMul(mobjinfo[MT_MUSHROOMTRAIL].height, player->mo->scale);
else
ground = player->mo->floorz;
if (player->kartstuff[k_drift])
travelangle = player->mo->angle;
else
travelangle = R_PointToAngle2(0, 0, player->rmomx, player->rmomy);
for (i = 0; i < 2; i++)
{
if (player->kartstuff[k_bootaketimer] != 0)
continue;
newx = player->mo->x + P_ReturnThrustX(player->mo, travelangle + ((i&1) ? -1 : 1)*ANGLE_135, FixedMul(24*FRACUNIT, player->mo->scale));
newy = player->mo->y + P_ReturnThrustY(player->mo, travelangle + ((i&1) ? -1 : 1)*ANGLE_135, FixedMul(24*FRACUNIT, player->mo->scale));
#ifdef ESLOPE
if (player->mo->standingslope)
{
ground = P_GetZAt(player->mo->standingslope, newx, newy);
if (player->mo->eflags & MFE_VERTICALFLIP)
ground -= FixedMul(mobjinfo[MT_MUSHROOMTRAIL].height, player->mo->scale);
}
#endif
if ((player->kartstuff[k_drift] == 1 || player->kartstuff[k_drift] == -1) && player->kartstuff[k_mushroomtimer] == 0)
flame = P_SpawnMobj(newx, newy, ground, MT_DRIFTSMOKE);
else
flame = P_SpawnMobj(newx, newy, ground, MT_MUSHROOMTRAIL);
P_SetTarget(&flame->target, player->mo);
flame->angle = travelangle;
flame->fuse = TICRATE*2;
flame->destscale = player->mo->scale;
P_SetScale(flame, player->mo->scale);
flame->eflags = (flame->eflags & ~MFE_VERTICALFLIP)|(player->mo->eflags & MFE_VERTICALFLIP);
flame->momx = 8;
P_XYMovement(flame);
if (P_MobjWasRemoved(flame))
continue;
if (player->mo->eflags & MFE_VERTICALFLIP)
{
if (flame->z + flame->height < flame->ceilingz)
P_RemoveMobj(flame);
}
else if (flame->z > flame->floorz)
P_RemoveMobj(flame);
}
}
static mobj_t *P_ThrowKartItem(player_t *player, boolean missile, mobjtype_t mapthing, INT32 defaultDir, boolean bobombthrow)
{
mobj_t *mo;
@ -1502,7 +1567,7 @@ void K_DoMushroom(player_t *player, boolean doPFlag)
if (player->kartstuff[k_sounds]) // Prevents taunt sounds from playing every time the button is pressed
return;
K_PlayTauntSound(player->mo);
//K_PlayTauntSound(player->mo);
player->kartstuff[k_sounds] = 70;
}
@ -1529,12 +1594,8 @@ void K_DoLightning(player_t *player, boolean bluelightning)
player->kartstuff[k_sounds] = 70;
}
void K_MoveKartPlayer(player_t *player, boolean onground)
void K_MoveKartPlayer(player_t *player, ticcmd_t *cmd, boolean onground)
{
ticcmd_t *cmd;
cmd = &player->cmd;
boolean ATTACK_IS_DOWN = ((cmd->buttons & BT_ATTACK) && !(player->pflags & PF_ATTACKDOWN));
boolean HOLDING_ITEM = (player->kartstuff[k_greenshell] == 1 || player->kartstuff[k_redshell] == 1
|| player->kartstuff[k_banana] == 1 || player->kartstuff[k_fakeitem] == 1 || player->kartstuff[k_bobomb] == 1
@ -1543,8 +1604,11 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
|| player->kartstuff[k_triplebanana] & 1 || player->kartstuff[k_triplebanana] & 2 || player->kartstuff[k_triplebanana] & 4);
boolean NO_BOO = (player->kartstuff[k_boostolentimer] == 0 && player->kartstuff[k_bootaketimer] == 0);
if (!(cmd->buttons & BT_ATTACK))
if ((player->pflags & PF_ATTACKDOWN) && !(cmd->buttons & BT_ATTACK))
player->pflags &= ~PF_ATTACKDOWN;
else if (cmd->buttons & BT_ATTACK)
player->pflags |= PF_ATTACKDOWN;
if (player && player->health > 0 && !player->spectator && !player->exiting && player->kartstuff[k_spinouttimer] == 0)
{
// GoldenMushroom power
@ -2682,8 +2746,8 @@ static void K_drawKartRetroItem(void)
else if (stplyr->kartstuff[k_mushroom] & 4) localpatch = kp_triplemushroom;
else if (stplyr->kartstuff[k_mushroom] & 2) localpatch = kp_doublemushroom;
else if (stplyr->kartstuff[k_mushroom] == 1) localpatch = kp_mushroom;
else if (stplyr->kartstuff[k_boo] & 8) localpatch = kp_boo;
else if (stplyr->kartstuff[k_magnet] & 8) localpatch = kp_magnet;
else if (stplyr->kartstuff[k_boo] == 1) localpatch = kp_boo;
else if (stplyr->kartstuff[k_magnet] == 1) localpatch = kp_magnet;
V_DrawScaledPatch(ITEM_X, STRINGY(ITEM_Y), V_SNAPTORIGHT|V_SNAPTOTOP, localpatch);
}

View File

@ -20,7 +20,8 @@ boolean K_SpinPlayer(player_t *player, mobj_t *source);
boolean K_SquishPlayer(player_t *player, mobj_t *source);
boolean K_ExplodePlayer(player_t *player, mobj_t *source);
void K_SpawnKartExplosion(fixed_t x, fixed_t y, fixed_t z, fixed_t radius, INT32 number, mobjtype_t type, angle_t rotangle, boolean spawncenter, boolean ghostit);
void K_MoveKartPlayer(player_t *player, boolean onground);
void K_SpawnDriftTrail(player_t *player);
void K_MoveKartPlayer(player_t *player, ticcmd_t *cmd, boolean onground);
void K_LoadKartHUDGraphics(void);
void K_drawKartHUD(void);

View File

@ -8081,10 +8081,10 @@ void A_ItemPop(mobj_t *actor)
mobjtype_t item = 0;
// de-solidify
P_UnsetThingPosition(actor);
actor->flags &= ~MF_SOLID;
actor->flags |= MF_NOCLIP;
P_SetThingPosition(actor);
//P_UnsetThingPosition(actor);
//actor->flags &= ~MF_SOLID;
//actor->flags |= MF_NOCLIP;
//P_SetThingPosition(actor);
remains = P_SpawnMobj(actor->x, actor->y, actor->z, MT_RANDOMITEMPOP);
remains->type = actor->type; // Transfer type information
@ -8109,7 +8109,6 @@ void A_ItemPop(mobj_t *actor)
switch (actor->type)
{
case MT_RANDOMITEM: // Random!
{
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
@ -8129,7 +8128,6 @@ void A_ItemPop(mobj_t *actor)
remains->flags &= ~MF_AMBUSH;
break;
}
default:
item = actor->info->damage;
break;

View File

@ -237,6 +237,7 @@ result_e T_MovePlane(sector_t *sector, fixed_t speed, fixed_t dest, boolean crus
{
case MT_GOOP: // Egg Slimer's goop objects
case MT_SPINFIRE: // Elemental Shield flame balls
case MT_MUSHROOMTRAIL:
case MT_SPIKE: // Floor Spike
// Is the object hang from the ceiling?
// In that case, swap the planes used.

View File

@ -382,6 +382,13 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
// We now identify by object type, not sprite! Tails 04-11-2001
switch (special->type)
{
case MT_RANDOMITEM: // SRB2kart
if (!(P_CanPickupItem(player, false)))
return;
special->momx = special->momy = special->momz = 0;
P_SetTarget(&special->target, toucher);
P_SetMobjState(special, special->info->deathstate);
break;
// ***************************************** //
// Rings, coins, spheres, weapon panels, etc //
// ***************************************** //
@ -1549,6 +1556,7 @@ static void P_HitDeathMessages(player_t *player, mobj_t *inflictor, mobj_t *sour
str = M_GetText("%s%s's tagging hand %s %s.\n");
break;
case MT_SPINFIRE:
case MT_MUSHROOMTRAIL:
str = M_GetText("%s%s's elemental fire trail %s %s.\n");
break;
case MT_THROWNBOUNCE:

View File

@ -2252,6 +2252,7 @@ static boolean P_ZMovement(mobj_t *mo)
case MT_BLUETEAMRING:
case MT_FLINGRING:
case MT_FLINGCOIN:
case MT_RANDOMITEM:
// Remove flinged stuff from death pits.
if (P_CheckDeathPitCollide(mo))
{
@ -7225,6 +7226,7 @@ void P_MobjThinker(mobj_t *mobj)
case MT_BLUEBALL:
case MT_REDTEAMRING:
case MT_BLUETEAMRING:
case MT_RANDOMITEM:
// No need to check water. Who cares?
P_RingThinker(mobj);
if (mobj->flags2 & MF2_NIGHTSPULL)
@ -7313,6 +7315,7 @@ void P_MobjThinker(mobj_t *mobj)
#endif
break;
case MT_SPINFIRE:
case MT_MUSHROOMTRAIL:
if (mobj->eflags & MFE_VERTICALFLIP)
mobj->z = mobj->ceilingz - mobj->height;
else
@ -8125,6 +8128,7 @@ void P_RemoveMobj(mobj_t *mobj)
if (mobj->spawnpoint &&
(mobj->type == MT_RING
|| mobj->type == MT_COIN
|| mobj->type == MT_RANDOMITEM
|| mobj->type == MT_BLUEBALL
|| mobj->type == MT_REDTEAMRING
|| mobj->type == MT_BLUETEAMRING

View File

@ -4670,9 +4670,7 @@ static void P_3dMovement(player_t *player)
if (cmd->forwardmove < 0)
topspeed = 5<<16;
else
topspeed = normalspd * 2 > 60<<16 ? 60<<16 : normalspd * 2;
CONS_Printf("topspeed = %d\n", topspeed>>16);
topspeed = (normalspd * 3)/2; //> 60<<16 ? 60<<16 : normalspd * 2;
}
else
{
@ -6665,11 +6663,11 @@ static void P_MovePlayer(player_t *player)
// Drifting sound
{
// Leveltime being 50 might take a while at times. We'll start it up once, isntantly.
if ((player->kartstuff[k_drift] == 1 || player->kartstuff[k_drift] == -1) && onground && player->kartstuff[k_driftcharge] < 5) //!S_SoundPlaying(NULL, sfx_mkdrft))
S_StartSound(player->mo, sfx_mkdrft);
// Start looping the sound now.
else if (leveltime % 50 == 0 && ((player->kartstuff[k_drift] == 1 || player->kartstuff[k_drift] == -1) && onground))
if (leveltime % 50 == 0 && ((player->kartstuff[k_drift] == 1 || player->kartstuff[k_drift] == -1) && onground))
S_StartSound(player->mo, sfx_mkdrft);
// Leveltime being 50 might take a while at times. We'll start it up once, isntantly.
else if ((player->kartstuff[k_drift] == 1 || player->kartstuff[k_drift] == -1) && !S_SoundPlaying(player->mo, sfx_mkdrft) && onground)
S_StartSound(player->mo, sfx_mkdrft);
// Ok, we'll stop now.
else if ((player->kartstuff[k_drift] == 0)
@ -6678,7 +6676,7 @@ static void P_MovePlayer(player_t *player)
}
}
K_MoveKartPlayer(player, onground);
K_MoveKartPlayer(player, cmd, onground);
//}
@ -6929,6 +6927,10 @@ static void P_MovePlayer(player_t *player)
//SPINNING AND SPINDASHING//
////////////////////////////
// SRB2kart - Drifting smoke and fire
if ((player->kartstuff[k_drift] || player->kartstuff[k_mushroomtimer] > 0) && onground && (leveltime & 1))
K_SpawnDriftTrail(player);
/* // SRB2kart - nadah
// If the player isn't on the ground, make sure they aren't in a "starting dash" position.
if (!onground)
@ -7852,16 +7854,16 @@ static void P_DeathThink(player_t *player)
else if (player->lives > 0 && !G_IsSpecialStage(gamemap)) // Don't allow "click to respawn" in special stages!
{
// Respawn with jump button, force respawn time (3 second default, cheat protected) in shooter modes.
if ((cmd->buttons & BT_JUMP) && player->deadtimer > cv_respawntime.value*TICRATE
if ((cmd->buttons & BT_JUMP || cmd->buttons & BT_ACCELERATE) && player->deadtimer > cv_respawntime.value*TICRATE
&& gametype != GT_RACE && gametype != GT_COOP)
player->playerstate = PST_REBORN;
// Instant respawn in race or if you're spectating.
if ((cmd->buttons & BT_JUMP) && (gametype == GT_RACE || player->spectator))
if ((cmd->buttons & BT_JUMP || cmd->buttons & BT_ACCELERATE) && (gametype == GT_RACE || player->spectator))
player->playerstate = PST_REBORN;
// One second respawn in coop.
if ((cmd->buttons & BT_JUMP) && player->deadtimer > TICRATE && (gametype == GT_COOP || gametype == GT_COMPETITION))
if ((cmd->buttons & BT_JUMP || cmd->buttons & BT_ACCELERATE) && player->deadtimer > TICRATE && (gametype == GT_COOP || gametype == GT_COMPETITION))
player->playerstate = PST_REBORN;
// Single player auto respawn

View File

@ -601,26 +601,29 @@ void S_StartSound(const void *origin, sfxenum_t sfx_id)
sfx_id = sfx_mario7;
break;
case sfx_pop:
sfx_id = sfx_mario5;
sfx_id = sfx_mkitem; // SRB2kart
break;
case sfx_jump:
sfx_id = sfx_mario6;
break;
case sfx_shield:
sfx_id = sfx_mario3;
break;
case sfx_itemup:
sfx_id = sfx_mario4;
break;
// case sfx_tink:
// sfx_id = sfx_mario1;
// case sfx_shield:
// sfx_id = sfx_mario3;
// break;
case sfx_itemup:
sfx_id = sfx_None;
break;
case sfx_tink:
sfx_id = sfx_mario1;
break;
// case sfx_cgot:
// sfx_id = sfx_mario9;
// break;
// case sfx_lose:
// sfx_id = sfx_mario2;
// break;
case sfx_lose:
sfx_id = sfx_mario2;
break;
case sfx_prloop:
sfx_id = sfx_bomb2;
break;
default:
break;
}

View File

@ -488,15 +488,15 @@ sfxinfo_t S_sfx[NUMSFX] =
{"mkdrft", true, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"mkslid", true, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"mkitem", true, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"mkitem1", true, 72, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"mkitem2", true, 72, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"mkitem3", true, 72, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"mkitem4", true, 72, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"mkitem5", true, 72, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"mkitem6", true, 72, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"mkitem7", true, 72, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"mkitem8", true, 72, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"mkitemF", true, 72, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"mkitm1", true, 72, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"mkitm2", true, 72, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"mkitm3", true, 72, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"mkitm4", true, 72, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"mkitm5", true, 72, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"mkitm6", true, 72, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"mkitm7", true, 72, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"mkitm8", true, 72, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"mkitmF", true, 72, 0, -1, NULL, 0, -1, -1, LUMPERROR},
// skin sounds free slots to add sounds at run time (Boris HACK!!!)
// initialized to NULL

View File

@ -549,7 +549,7 @@ typedef enum
sfx_shbrk,
sfx_mkdrft,
sfx_mkslid,
sfx_mkitm,
sfx_mkitem,
sfx_mkitm1,
sfx_mkitm2,
sfx_mkitm3,