mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2025-02-21 03:11:24 +00:00
Tweeeeeaks
- MT_FALLINGROCK bumps you instead of spinning you out! RIP annoying af apples - Made some Battle-related messages only happen in netgames - Messed with the timing on the intro
This commit is contained in:
parent
6d263a0dff
commit
c70a2f51aa
9 changed files with 62 additions and 30 deletions
|
@ -412,6 +412,7 @@ extern INT32 boostealtime;
|
|||
extern INT32 mushroomtime;
|
||||
extern INT32 itemtime;
|
||||
extern INT32 comebacktime;
|
||||
extern INT32 bumptime;
|
||||
|
||||
extern UINT8 introtoplay;
|
||||
extern UINT8 creditscutscene;
|
||||
|
|
|
@ -254,7 +254,7 @@ const char *introtext[NUMINTROSCENES];
|
|||
|
||||
static tic_t introscenetime[NUMINTROSCENES] =
|
||||
{
|
||||
8*TICRATE, // KART KR(eW
|
||||
4*TICRATE, // KART KR(eW
|
||||
};
|
||||
|
||||
// custom intros
|
||||
|
|
|
@ -53,8 +53,8 @@ UINT8 wipedefs[NUMWIPEDEFS] = {
|
|||
99, // wipe_credits_toblack
|
||||
0, // wipe_evaluation_toblack
|
||||
0, // wipe_gameend_toblack
|
||||
99, // wipe_intro_toblack (hardcoded)
|
||||
99, // wipe_cutscene_toblack (hardcoded)
|
||||
UINT8_MAX, // wipe_intro_toblack (hardcoded)
|
||||
UINT8_MAX, // wipe_cutscene_toblack (hardcoded)
|
||||
|
||||
0, // wipe_specinter_toblack
|
||||
0, // wipe_multinter_toblack
|
||||
|
|
|
@ -210,6 +210,7 @@ INT32 boostealtime = TICRATE/2;
|
|||
INT32 mushroomtime = TICRATE + (TICRATE/3);
|
||||
INT32 itemtime = 8*TICRATE;
|
||||
INT32 comebacktime = 10*TICRATE;
|
||||
INT32 bumptime = 6;
|
||||
|
||||
INT32 gameovertics = 15*TICRATE;
|
||||
|
||||
|
|
|
@ -13264,13 +13264,13 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
S_NULL, // xdeathstate
|
||||
sfx_None, // deathsound
|
||||
0, // speed
|
||||
8*FRACUNIT, // radius
|
||||
16*FRACUNIT, // height
|
||||
16*FRACUNIT, // radius
|
||||
32*FRACUNIT, // height
|
||||
0, // display offset
|
||||
4, // mass
|
||||
0, // damage
|
||||
sfx_rocks1, // activesound
|
||||
MF_PAIN|MF_BOUNCE, // flags
|
||||
MF_BOUNCE, // flags
|
||||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
|
|
60
src/k_kart.c
60
src/k_kart.c
|
@ -1147,6 +1147,17 @@ void K_KartBouncing(mobj_t *mobj1, mobj_t *mobj2, boolean bounce)
|
|||
|| (mobj2->player && mobj2->player->playerstate != PST_LIVE))
|
||||
return;
|
||||
|
||||
// Don't bump if you've recently bumped
|
||||
if ((mobj1->player && mobj1->player->kartstuff[k_justbumped])
|
||||
|| (mobj2->player && mobj1->player->kartstuff[k_justbumped]))
|
||||
{
|
||||
if (mobj1->player)
|
||||
mobj1->player->kartstuff[k_justbumped] = bumptime;
|
||||
if (mobj2->player)
|
||||
mobj2->player->kartstuff[k_justbumped] = bumptime;
|
||||
return;
|
||||
}
|
||||
|
||||
if (cv_collidesounds.value == 1)
|
||||
{
|
||||
S_StartSound(mobj1, cv_collidesoundnum.value);
|
||||
|
@ -1214,16 +1225,19 @@ void K_KartBouncing(mobj_t *mobj1, mobj_t *mobj2, boolean bounce)
|
|||
|
||||
// Because this is done during collision now, rmomx and rmomy need to be recalculated
|
||||
// so that friction doesn't immediately decide to stop the player if they're at a standstill
|
||||
// Also set justbumped here
|
||||
if (mobj1->player)
|
||||
{
|
||||
mobj1->player->rmomx = mobj1->momx - mobj1->player->cmomx;
|
||||
mobj1->player->rmomy = mobj1->momy - mobj1->player->cmomy;
|
||||
mobj1->player->kartstuff[k_justbumped] = bumptime;
|
||||
}
|
||||
|
||||
if (mobj2->player)
|
||||
{
|
||||
mobj2->player->rmomx = mobj2->momx - mobj2->player->cmomx;
|
||||
mobj2->player->rmomy = mobj2->momy - mobj2->player->cmomy;
|
||||
mobj2->player->kartstuff[k_justbumped] = bumptime;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1924,7 +1938,8 @@ void K_ExplodePlayer(player_t *player, mobj_t *source) // A bit of a hack, we ju
|
|||
if (source->player->kartstuff[k_balloon] <= 0)
|
||||
{
|
||||
source->player->kartstuff[k_comebackpoints] += 2;
|
||||
CONS_Printf(M_GetText("%s bombed %s!\n"), player_names[source->player-players], player_names[player-players]);
|
||||
if (netgame)
|
||||
CONS_Printf(M_GetText("%s bombed %s!\n"), player_names[source->player-players], player_names[player-players]);
|
||||
if (source->player->kartstuff[k_comebackpoints] >= 3)
|
||||
K_StealBalloon(source->player, player, true);
|
||||
}
|
||||
|
@ -1993,10 +2008,13 @@ void K_StealBalloon(player_t *player, player_t *victim, boolean force)
|
|||
return;
|
||||
}
|
||||
|
||||
if (player->kartstuff[k_balloon] <= 0)
|
||||
CONS_Printf(M_GetText("%s is back in the game!\n"), player_names[player-players]);
|
||||
else
|
||||
CONS_Printf(M_GetText("%s stole a balloon from %s!\n"), player_names[player-players], player_names[victim-players]);
|
||||
if (netgame)
|
||||
{
|
||||
if (player->kartstuff[k_balloon] <= 0)
|
||||
CONS_Printf(M_GetText("%s is back in the game!\n"), player_names[player-players]);
|
||||
else
|
||||
CONS_Printf(M_GetText("%s stole a balloon from %s!\n"), player_names[player-players], player_names[victim-players]);
|
||||
}
|
||||
|
||||
newballoon = player->kartstuff[k_balloon];
|
||||
if (newballoon <= 1)
|
||||
|
@ -3710,10 +3728,14 @@ void K_CheckBalloons(void)
|
|||
UINT8 numingame = 0;
|
||||
INT8 winnernum = -1;
|
||||
|
||||
#if 0
|
||||
return; // set to 1 to test comeback mechanics while alone
|
||||
#endif
|
||||
|
||||
if (!multiplayer)
|
||||
return;
|
||||
|
||||
if (gametype == GT_RACE)
|
||||
if (gametype != GT_MATCH)
|
||||
return;
|
||||
|
||||
if (gameaction == ga_completed)
|
||||
|
@ -4812,20 +4834,15 @@ static void K_drawKartBalloonsOrKarma(void)
|
|||
if (stplyr->kartstuff[k_balloon] <= 0)
|
||||
{
|
||||
V_DrawMappedPatch(LAPS_X, LAPS_Y, V_HUDTRANS|splitflags, kp_karmasticker, colormap);
|
||||
V_DrawKartString(LAPS_X+57, LAPS_Y+3, V_HUDTRANS|splitflags, va("%d/3", stplyr->kartstuff[k_comebackpoints]));
|
||||
V_DrawKartString(LAPS_X+59, LAPS_Y+3, V_HUDTRANS|splitflags, va("%d/3", stplyr->kartstuff[k_comebackpoints]));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (stplyr->kartstuff[k_balloon] > 9 || cv_kartballoons.value > 9)
|
||||
{
|
||||
if (stplyr->kartstuff[k_balloon] > 9 && cv_kartballoons.value > 9)
|
||||
V_DrawMappedPatch(LAPS_X, LAPS_Y, V_HUDTRANS|splitflags, kp_balloonstickerwide, colormap);
|
||||
V_DrawKartString(LAPS_X+45, LAPS_Y+3, V_HUDTRANS|splitflags, va("%d/%2d", stplyr->kartstuff[k_balloon], cv_kartballoons.value));
|
||||
}
|
||||
else
|
||||
{
|
||||
V_DrawMappedPatch(LAPS_X, LAPS_Y, V_HUDTRANS|splitflags, kp_balloonsticker, colormap);
|
||||
V_DrawKartString(LAPS_X+45, LAPS_Y+3, V_HUDTRANS|splitflags, va("%d/%d", stplyr->kartstuff[k_balloon], cv_kartballoons.value));
|
||||
}
|
||||
V_DrawKartString(LAPS_X+47, LAPS_Y+3, V_HUDTRANS|splitflags, va("%d/%d", stplyr->kartstuff[k_balloon], cv_kartballoons.value));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -5064,8 +5081,6 @@ static void K_drawBattleFullscreen(void)
|
|||
|
||||
if (splitscreen)
|
||||
{
|
||||
scale /= 2;
|
||||
|
||||
if ((splitscreen == 1 && stplyr == &players[secondarydisplayplayer])
|
||||
|| (splitscreen > 1 && (stplyr == &players[thirddisplayplayer] || stplyr == &players[fourthdisplayplayer])))
|
||||
y = 232-(stplyr->kartstuff[k_cardanimation]/2);
|
||||
|
@ -5074,6 +5089,8 @@ static void K_drawBattleFullscreen(void)
|
|||
|
||||
if (splitscreen > 1)
|
||||
{
|
||||
scale /= 2;
|
||||
|
||||
if (stplyr == &players[secondarydisplayplayer] || stplyr == &players[fourthdisplayplayer])
|
||||
x = 3*BASEVIDWIDTH/4;
|
||||
else
|
||||
|
@ -5307,10 +5324,6 @@ void K_drawKartHUD(void)
|
|||
// Draw the timestamp
|
||||
K_drawKartTimestamp();
|
||||
|
||||
// Draw the speedometer
|
||||
// TODO: Make a better speedometer.
|
||||
K_drawKartSpeedometer();
|
||||
|
||||
if (!modeattacking)
|
||||
{
|
||||
// The little triple-item icons at the bottom
|
||||
|
@ -5324,6 +5337,13 @@ void K_drawKartHUD(void)
|
|||
// Draw the lap counter
|
||||
K_drawKartLaps();
|
||||
|
||||
if (!splitscreen)
|
||||
{
|
||||
// Draw the speedometer
|
||||
// TODO: Make a better speedometer.
|
||||
K_drawKartSpeedometer();
|
||||
}
|
||||
|
||||
if (!modeattacking)
|
||||
{
|
||||
// Draw the numerical position
|
||||
|
|
|
@ -438,7 +438,9 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
|
|||
special->tracer->player->kartstuff[k_comebackmode] = 0;
|
||||
|
||||
special->tracer->player->kartstuff[k_comebackpoints]++;
|
||||
CONS_Printf(M_GetText("%s gave an item to %s.\n"), player_names[special->tracer->player-players], player_names[player-players]);
|
||||
|
||||
if (netgame)
|
||||
CONS_Printf(M_GetText("%s gave an item to %s.\n"), player_names[special->tracer->player-players], player_names[player-players]);
|
||||
|
||||
if (special->tracer->player->kartstuff[k_comebackpoints] >= 3)
|
||||
K_StealBalloon(special->tracer->player, player, true);
|
||||
|
|
13
src/p_map.c
13
src/p_map.c
|
@ -1204,7 +1204,6 @@ static boolean PIT_CheckThing(mobj_t *thing)
|
|||
return true;
|
||||
}
|
||||
|
||||
|
||||
if (thing->type == MT_POKEY)
|
||||
{
|
||||
// see if it went over / under
|
||||
|
@ -1226,6 +1225,16 @@ static boolean PIT_CheckThing(mobj_t *thing)
|
|||
|
||||
//}
|
||||
|
||||
if (thing->type == MT_FALLINGROCK || tmthing->type == MT_FALLINGROCK)
|
||||
{
|
||||
// see if it went over / under
|
||||
if (tmthing->z > thing->z + thing->height)
|
||||
return true; // overhead
|
||||
if (tmthing->z + tmthing->height < thing->z)
|
||||
return true; // underneath
|
||||
K_KartBouncing(thing, tmthing, false);
|
||||
}
|
||||
|
||||
if ((thing->type == MT_SPRINGSHELL || thing->type == MT_YELLOWSHELL) && thing->health > 0
|
||||
&& (tmthing->player || (tmthing->flags & MF_PUSHABLE)) && tmthing->health > 0)
|
||||
{
|
||||
|
@ -1703,8 +1712,6 @@ static boolean PIT_CheckThing(mobj_t *thing)
|
|||
}
|
||||
}
|
||||
|
||||
thing->player->kartstuff[k_justbumped] = 6;
|
||||
tmthing->player->kartstuff[k_justbumped] = 6;
|
||||
return true;
|
||||
}
|
||||
// Are you touching the side of the object you're interacting with?
|
||||
|
|
|
@ -8671,6 +8671,7 @@ mobj_t *P_SpawnMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype_t type)
|
|||
{
|
||||
case MT_PLAYER:
|
||||
case MT_BIGMACE: case MT_SMALLMACE:
|
||||
case MT_FALLINGROCK:
|
||||
//case MT_RANDOMITEM:
|
||||
case MT_BANANAITEM: case MT_BANANASHIELD:
|
||||
case MT_TRIPLEBANANASHIELD1: case MT_TRIPLEBANANASHIELD2: case MT_TRIPLEBANANASHIELD3:
|
||||
|
|
Loading…
Reference in a new issue