mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2025-01-23 17:51:11 +00:00
Changed all instances of "balloon" to "bumper"
Also changed "It's you!" to "Select character & color..."
This commit is contained in:
parent
249bb594d8
commit
80c2b56927
21 changed files with 211 additions and 208 deletions
1
bin/Mingw/Release/null
Normal file
1
bin/Mingw/Release/null
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Press any key to continue . . .
|
BIN
bin/Mingw/Release/srb2kart_sev.upx
Normal file
BIN
bin/Mingw/Release/srb2kart_sev.upx
Normal file
Binary file not shown.
1
objs/Mingw/SDL/Release/null
Normal file
1
objs/Mingw/SDL/Release/null
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Press any key to continue . . .
|
|
@ -2494,7 +2494,7 @@ static void CL_RemovePlayer(INT32 playernum)
|
||||||
if (G_TagGametype()) //Check if you still have a game. Location flexible. =P
|
if (G_TagGametype()) //Check if you still have a game. Location flexible. =P
|
||||||
P_CheckSurvivors();
|
P_CheckSurvivors();
|
||||||
else if (G_BattleGametype()) // SRB2Kart
|
else if (G_BattleGametype()) // SRB2Kart
|
||||||
K_CheckBalloons();
|
K_CheckBumpers();
|
||||||
else if (G_RaceGametype())
|
else if (G_RaceGametype())
|
||||||
P_CheckRacers();
|
P_CheckRacers();
|
||||||
}
|
}
|
||||||
|
|
|
@ -358,8 +358,8 @@ consvar_t cv_kartcheck = {"kartcheck", "Yes", CV_SAVE, CV_YesNo, NULL, 0, NULL,
|
||||||
static CV_PossibleValue_t kartinvinsfx_cons_t[] = {{0, "Music"}, {1, "SFX"}, {0, NULL}};
|
static CV_PossibleValue_t kartinvinsfx_cons_t[] = {{0, "Music"}, {1, "SFX"}, {0, NULL}};
|
||||||
consvar_t cv_kartinvinsfx = {"kartinvinsfx", "SFX", CV_SAVE, kartinvinsfx_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_kartinvinsfx = {"kartinvinsfx", "SFX", CV_SAVE, kartinvinsfx_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
consvar_t cv_kartspeed = {"kartspeed", "Normal", CV_NETVAR|CV_CALL|CV_NOINIT, kartspeed_cons_t, KartSpeed_OnChange, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_kartspeed = {"kartspeed", "Normal", CV_NETVAR|CV_CALL|CV_NOINIT, kartspeed_cons_t, KartSpeed_OnChange, 0, NULL, NULL, 0, 0, NULL};
|
||||||
static CV_PossibleValue_t kartballoons_cons_t[] = {{1, "MIN"}, {12, "MAX"}, {0, NULL}};
|
static CV_PossibleValue_t kartbumpers_cons_t[] = {{1, "MIN"}, {12, "MAX"}, {0, NULL}};
|
||||||
consvar_t cv_kartballoons = {"kartballoons", "3", CV_NETVAR|CV_CHEAT, kartballoons_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_kartbumpers = {"kartbumpers", "3", CV_NETVAR|CV_CHEAT, kartbumpers_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
consvar_t cv_kartfrantic = {"kartfrantic", "Off", CV_NETVAR|CV_CHEAT|CV_CALL|CV_NOINIT, CV_OnOff, KartFrantic_OnChange, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_kartfrantic = {"kartfrantic", "Off", CV_NETVAR|CV_CHEAT|CV_CALL|CV_NOINIT, CV_OnOff, KartFrantic_OnChange, 0, NULL, NULL, 0, 0, NULL};
|
||||||
consvar_t cv_kartcomeback = {"kartcomeback", "On", CV_NETVAR|CV_CHEAT|CV_CALL|CV_NOINIT, CV_OnOff, KartComeback_OnChange, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_kartcomeback = {"kartcomeback", "On", CV_NETVAR|CV_CHEAT|CV_CALL|CV_NOINIT, CV_OnOff, KartComeback_OnChange, 0, NULL, NULL, 0, 0, NULL};
|
||||||
consvar_t cv_kartmirror = {"kartmirror", "Off", CV_NETVAR|CV_CHEAT|CV_CALL|CV_NOINIT, CV_OnOff, KartMirror_OnChange, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_kartmirror = {"kartmirror", "Off", CV_NETVAR|CV_CHEAT|CV_CALL|CV_NOINIT, CV_OnOff, KartMirror_OnChange, 0, NULL, NULL, 0, 0, NULL};
|
||||||
|
@ -2360,7 +2360,7 @@ static void Command_Suicide(void)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*if (!G_RaceGametype()) // srb2kart: not necessary, suiciding makes you lose a balloon in battle, so it's not desirable to use as a way to escape a hit
|
/*if (!G_RaceGametype()) // srb2kart: not necessary, suiciding makes you lose a bumper in battle, so it's not desirable to use as a way to escape a hit
|
||||||
{
|
{
|
||||||
CONS_Printf(M_GetText("You may only use this in co-op, race, and competition!\n"));
|
CONS_Printf(M_GetText("You may only use this in co-op, race, and competition!\n"));
|
||||||
return;
|
return;
|
||||||
|
@ -3255,7 +3255,7 @@ static void Got_Teamchange(UINT8 **cp, INT32 playernum)
|
||||||
if (G_TagGametype())
|
if (G_TagGametype())
|
||||||
P_CheckSurvivors();
|
P_CheckSurvivors();
|
||||||
else if (G_BattleGametype())
|
else if (G_BattleGametype())
|
||||||
K_CheckBalloons(); // SRB2Kart
|
K_CheckBumpers(); // SRB2Kart
|
||||||
else if (G_RaceGametype())
|
else if (G_RaceGametype())
|
||||||
P_CheckRacers(); // also SRB2Kart
|
P_CheckRacers(); // also SRB2Kart
|
||||||
}
|
}
|
||||||
|
|
|
@ -121,7 +121,7 @@ extern consvar_t cv_kartminimap;
|
||||||
extern consvar_t cv_kartcheck;
|
extern consvar_t cv_kartcheck;
|
||||||
extern consvar_t cv_kartinvinsfx;
|
extern consvar_t cv_kartinvinsfx;
|
||||||
extern consvar_t cv_kartspeed;
|
extern consvar_t cv_kartspeed;
|
||||||
extern consvar_t cv_kartballoons;
|
extern consvar_t cv_kartbumpers;
|
||||||
extern consvar_t cv_kartfrantic;
|
extern consvar_t cv_kartfrantic;
|
||||||
extern consvar_t cv_kartcomeback;
|
extern consvar_t cv_kartcomeback;
|
||||||
extern consvar_t cv_kartmirror;
|
extern consvar_t cv_kartmirror;
|
||||||
|
|
|
@ -321,8 +321,8 @@ typedef enum
|
||||||
k_sadtimer, // How long you've been sad
|
k_sadtimer, // How long you've been sad
|
||||||
|
|
||||||
// Battle Mode vars
|
// Battle Mode vars
|
||||||
k_balloon, // Number of balloons left
|
k_bumper, // Number of bumpers left
|
||||||
k_comebackpoints, // Number of times you've bombed or gave an item to someone; once it's 3 it gets set back to 0 and you're given a balloon
|
k_comebackpoints, // Number of times you've bombed or gave an item to someone; once it's 3 it gets set back to 0 and you're given a bumper
|
||||||
k_comebackmode, // 0 = bomb, 1 = item
|
k_comebackmode, // 0 = bomb, 1 = item
|
||||||
k_wanted, // Timer for determining WANTED status, lowers when hitting people, prevents the game turning into Camp Lazlo
|
k_wanted, // Timer for determining WANTED status, lowers when hitting people, prevents the game turning into Camp Lazlo
|
||||||
|
|
||||||
|
|
|
@ -6426,10 +6426,10 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
|
||||||
"S_SINKTRAIL2",
|
"S_SINKTRAIL2",
|
||||||
"S_SINKTRAIL3",
|
"S_SINKTRAIL3",
|
||||||
|
|
||||||
// Battle Mode balloon
|
// Battle Mode bumper
|
||||||
"S_BATTLEBALLOON1",
|
"S_BATTLEBUMPER1",
|
||||||
"S_BATTLEBALLOON2",
|
"S_BATTLEBUMPER2",
|
||||||
"S_BATTLEBALLOON3",
|
"S_BATTLEBUMPER3",
|
||||||
|
|
||||||
// DEZ respawn laser
|
// DEZ respawn laser
|
||||||
"S_DEZLASER",
|
"S_DEZLASER",
|
||||||
|
@ -6512,8 +6512,8 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
|
||||||
"S_DOOD_BOX4",
|
"S_DOOD_BOX4",
|
||||||
"S_DOOD_BOX5",
|
"S_DOOD_BOX5",
|
||||||
|
|
||||||
// D00Dkart - Diddy Kong Racing Balloon
|
// D00Dkart - Diddy Kong Racing Bumper
|
||||||
"S_DOOD_BALLOON",
|
"S_DOOD_BUMPER",
|
||||||
|
|
||||||
// Chaotix Big Ring
|
// Chaotix Big Ring
|
||||||
"S_BIGRING01",
|
"S_BIGRING01",
|
||||||
|
@ -7171,7 +7171,7 @@ static const char *const MOBJTYPE_LIST[] = { // array length left dynamic for s
|
||||||
"MT_SINK", // Kitchen Sink Stuff
|
"MT_SINK", // Kitchen Sink Stuff
|
||||||
"MT_SINKTRAIL",
|
"MT_SINKTRAIL",
|
||||||
|
|
||||||
"MT_BATTLEBALLOON", // Battle Mode balloon
|
"MT_BATTLEBUMPER", // Battle Mode bumper
|
||||||
|
|
||||||
"MT_DEZLASER",
|
"MT_DEZLASER",
|
||||||
|
|
||||||
|
@ -7208,7 +7208,7 @@ static const char *const MOBJTYPE_LIST[] = { // array length left dynamic for s
|
||||||
"MT_DOOD_FLOWER3",
|
"MT_DOOD_FLOWER3",
|
||||||
"MT_DOOD_FLOWER4",
|
"MT_DOOD_FLOWER4",
|
||||||
"MT_DOOD_BOX",
|
"MT_DOOD_BOX",
|
||||||
"MT_DOOD_BALLOON",
|
"MT_DOOD_BUMPER",
|
||||||
"MT_BIGRING",
|
"MT_BIGRING",
|
||||||
|
|
||||||
"MT_SNES_DONUTBUSH1",
|
"MT_SNES_DONUTBUSH1",
|
||||||
|
@ -7621,7 +7621,7 @@ static const char *const KARTSTUFF_LIST[] = {
|
||||||
"SADTIMER",
|
"SADTIMER",
|
||||||
|
|
||||||
// Battle Mode vars
|
// Battle Mode vars
|
||||||
"BALLOON",
|
"BUMPER",
|
||||||
"COMEBACKPOINTS",
|
"COMEBACKPOINTS",
|
||||||
"COMEBACKMODE",
|
"COMEBACKMODE",
|
||||||
};
|
};
|
||||||
|
|
|
@ -1813,7 +1813,7 @@ boolean G_Responder(event_t *ev)
|
||||||
// SRB2Kart: Ehhh, who cares, Mario Kart's designed around screen-cheating anyway
|
// SRB2Kart: Ehhh, who cares, Mario Kart's designed around screen-cheating anyway
|
||||||
/*if (gametype != GT_RACE)
|
/*if (gametype != GT_RACE)
|
||||||
{
|
{
|
||||||
if (players[consoleplayer].kartstuff[k_balloon] > 0)
|
if (players[consoleplayer].kartstuff[k_bumper] > 0)
|
||||||
continue;
|
continue;
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
|
@ -2294,7 +2294,7 @@ void G_PlayerReborn(INT32 player)
|
||||||
|
|
||||||
// SRB2kart
|
// SRB2kart
|
||||||
INT32 starpostwp;
|
INT32 starpostwp;
|
||||||
INT32 balloon;
|
INT32 bumper;
|
||||||
INT32 comebackpoints;
|
INT32 comebackpoints;
|
||||||
INT32 wanted;
|
INT32 wanted;
|
||||||
|
|
||||||
|
@ -2351,7 +2351,7 @@ void G_PlayerReborn(INT32 player)
|
||||||
|
|
||||||
// SRB2kart
|
// SRB2kart
|
||||||
starpostwp = players[player].kartstuff[k_starpostwp];
|
starpostwp = players[player].kartstuff[k_starpostwp];
|
||||||
balloon = players[player].kartstuff[k_balloon];
|
bumper = players[player].kartstuff[k_bumper];
|
||||||
comebackpoints = players[player].kartstuff[k_comebackpoints];
|
comebackpoints = players[player].kartstuff[k_comebackpoints];
|
||||||
wanted = players[player].kartstuff[k_wanted];
|
wanted = players[player].kartstuff[k_wanted];
|
||||||
|
|
||||||
|
@ -2409,7 +2409,7 @@ void G_PlayerReborn(INT32 player)
|
||||||
|
|
||||||
// SRB2kart
|
// SRB2kart
|
||||||
p->kartstuff[k_starpostwp] = starpostwp; // TODO: get these out of kartstuff, it causes desync
|
p->kartstuff[k_starpostwp] = starpostwp; // TODO: get these out of kartstuff, it causes desync
|
||||||
p->kartstuff[k_balloon] = balloon;
|
p->kartstuff[k_bumper] = bumper;
|
||||||
p->kartstuff[k_comebackpoints] = comebackpoints;
|
p->kartstuff[k_comebackpoints] = comebackpoints;
|
||||||
p->kartstuff[k_comebacktimer] = comebacktime;
|
p->kartstuff[k_comebacktimer] = comebacktime;
|
||||||
p->kartstuff[k_wanted] = wanted;
|
p->kartstuff[k_wanted] = wanted;
|
||||||
|
|
16
src/info.c
16
src/info.c
|
@ -2752,9 +2752,9 @@ state_t states[NUMSTATES] =
|
||||||
{SPR_SITR, 1, 5, {NULL}, 0, 0, S_SINKTRAIL3}, // S_SINKTRAIL2
|
{SPR_SITR, 1, 5, {NULL}, 0, 0, S_SINKTRAIL3}, // S_SINKTRAIL2
|
||||||
{SPR_SITR, 2, 3, {NULL}, 0, 0, S_NULL}, // S_SINKTRAIL3
|
{SPR_SITR, 2, 3, {NULL}, 0, 0, S_NULL}, // S_SINKTRAIL3
|
||||||
|
|
||||||
{SPR_KBLN, FF_FULLBRIGHT, -1, {NULL}, 0, 0, S_BATTLEBALLOON1}, // S_BATTLEBALLOON1
|
{SPR_KBLN, FF_FULLBRIGHT, -1, {NULL}, 0, 0, S_BATTLEBUMPER1}, // S_BATTLEBUMPER1
|
||||||
{SPR_KBLN, FF_FULLBRIGHT|1, -1, {NULL}, 0, 0, S_BATTLEBALLOON2}, // S_BATTLEBALLOON2
|
{SPR_KBLN, FF_FULLBRIGHT|1, -1, {NULL}, 0, 0, S_BATTLEBUMPER2}, // S_BATTLEBUMPER2
|
||||||
{SPR_KBLN, FF_FULLBRIGHT|2, -1, {NULL}, 0, 0, S_BATTLEBALLOON3}, // S_BATTLEBALLOON3
|
{SPR_KBLN, FF_FULLBRIGHT|2, -1, {NULL}, 0, 0, S_BATTLEBUMPER3}, // S_BATTLEBUMPER3
|
||||||
|
|
||||||
{SPR_DEZL, FF_FULLBRIGHT|FF_PAPERSPRITE, 8, {NULL}, 0, 0, S_NULL}, // S_DEZLASER
|
{SPR_DEZL, FF_FULLBRIGHT|FF_PAPERSPRITE, 8, {NULL}, 0, 0, S_NULL}, // S_DEZLASER
|
||||||
|
|
||||||
|
@ -2833,7 +2833,7 @@ state_t states[NUMSTATES] =
|
||||||
{SPR_DOOD, 9, 2, {NULL}, 0, 0, S_DOOD_BOX5}, // S_DOOD_BOX4
|
{SPR_DOOD, 9, 2, {NULL}, 0, 0, S_DOOD_BOX5}, // S_DOOD_BOX4
|
||||||
{SPR_DOOD, 10, 2, {NULL}, 0, 0, S_DOOD_BOX1}, // S_DOOD_BOX5
|
{SPR_DOOD, 10, 2, {NULL}, 0, 0, S_DOOD_BOX1}, // S_DOOD_BOX5
|
||||||
|
|
||||||
{SPR_DOOD, 11, -1, {NULL}, 0, 0, S_NULL}, // S_DOOD_BALLOON
|
{SPR_DOOD, 11, -1, {NULL}, 0, 0, S_NULL}, // S_DOOD_BUMPER
|
||||||
|
|
||||||
{SPR_BRNG, 0, 2, {NULL}, 0, 0, S_BIGRING02}, // S_BIGRING01
|
{SPR_BRNG, 0, 2, {NULL}, 0, 0, S_BIGRING02}, // S_BIGRING01
|
||||||
{SPR_BRNG, 1, 2, {NULL}, 0, 0, S_BIGRING03}, // S_BIGRING02
|
{SPR_BRNG, 1, 2, {NULL}, 0, 0, S_BIGRING03}, // S_BIGRING02
|
||||||
|
@ -15056,9 +15056,9 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
S_NULL // raisestate
|
S_NULL // raisestate
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // MT_BATTLEBALLOON
|
{ // MT_BATTLEBUMPER
|
||||||
-1, // doomednum
|
-1, // doomednum
|
||||||
S_BATTLEBALLOON1,// spawnstate
|
S_BATTLEBUMPER1,// spawnstate
|
||||||
1000, // spawnhealth
|
1000, // spawnhealth
|
||||||
S_NULL, // seestate
|
S_NULL, // seestate
|
||||||
sfx_None, // seesound
|
sfx_None, // seesound
|
||||||
|
@ -15866,9 +15866,9 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
S_NULL // raisestate
|
S_NULL // raisestate
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // MT_DOOD_BALLOON
|
{ // MT_DOOD_BUMPER
|
||||||
2807, // doomednum
|
2807, // doomednum
|
||||||
S_DOOD_BALLOON, // spawnstate
|
S_DOOD_BUMPER, // spawnstate
|
||||||
1000, // spawnhealth
|
1000, // spawnhealth
|
||||||
S_NULL, // seestate
|
S_NULL, // seestate
|
||||||
sfx_None, // seesound
|
sfx_None, // seesound
|
||||||
|
|
18
src/info.h
18
src/info.h
|
@ -599,7 +599,7 @@ typedef enum sprite
|
||||||
SPR_LIGH, // Grow/shrink beams (Metallic Maddness)
|
SPR_LIGH, // Grow/shrink beams (Metallic Maddness)
|
||||||
SPR_SINK, // Kitchen Sink
|
SPR_SINK, // Kitchen Sink
|
||||||
SPR_SITR, // Kitchen Sink Trail
|
SPR_SITR, // Kitchen Sink Trail
|
||||||
SPR_KBLN, // Battle Mode Balloon
|
SPR_KBLN, // Battle Mode Bumper
|
||||||
|
|
||||||
SPR_DEZL, // DEZ Laser respawn
|
SPR_DEZL, // DEZ Laser respawn
|
||||||
|
|
||||||
|
@ -3273,10 +3273,10 @@ typedef enum state
|
||||||
S_SINKTRAIL2,
|
S_SINKTRAIL2,
|
||||||
S_SINKTRAIL3,
|
S_SINKTRAIL3,
|
||||||
|
|
||||||
// Battle Mode balloons
|
// Battle Mode bumpers
|
||||||
S_BATTLEBALLOON1,
|
S_BATTLEBUMPER1,
|
||||||
S_BATTLEBALLOON2,
|
S_BATTLEBUMPER2,
|
||||||
S_BATTLEBALLOON3,
|
S_BATTLEBUMPER3,
|
||||||
|
|
||||||
// DEZ Laser respawn
|
// DEZ Laser respawn
|
||||||
S_DEZLASER,
|
S_DEZLASER,
|
||||||
|
@ -3359,8 +3359,8 @@ typedef enum state
|
||||||
S_DOOD_BOX4,
|
S_DOOD_BOX4,
|
||||||
S_DOOD_BOX5,
|
S_DOOD_BOX5,
|
||||||
|
|
||||||
// D00Dkart - Diddy Kong Racing Balloon
|
// D00Dkart - Diddy Kong Racing Bumper
|
||||||
S_DOOD_BALLOON,
|
S_DOOD_BUMPER,
|
||||||
|
|
||||||
// Chaotix Big Ring
|
// Chaotix Big Ring
|
||||||
S_BIGRING01,
|
S_BIGRING01,
|
||||||
|
@ -4035,7 +4035,7 @@ typedef enum mobj_type
|
||||||
MT_SINK, // Kitchen Sink Stuff
|
MT_SINK, // Kitchen Sink Stuff
|
||||||
MT_SINKTRAIL,
|
MT_SINKTRAIL,
|
||||||
|
|
||||||
MT_BATTLEBALLOON, // Battle Mode balloons
|
MT_BATTLEBUMPER, // Battle Mode bumpers
|
||||||
|
|
||||||
MT_DEZLASER,
|
MT_DEZLASER,
|
||||||
|
|
||||||
|
@ -4072,7 +4072,7 @@ typedef enum mobj_type
|
||||||
MT_DOOD_FLOWER3,
|
MT_DOOD_FLOWER3,
|
||||||
MT_DOOD_FLOWER4,
|
MT_DOOD_FLOWER4,
|
||||||
MT_DOOD_BOX,
|
MT_DOOD_BOX,
|
||||||
MT_DOOD_BALLOON,
|
MT_DOOD_BUMPER,
|
||||||
MT_BIGRING,
|
MT_BIGRING,
|
||||||
|
|
||||||
MT_SNES_DONUTBUSH1,
|
MT_SNES_DONUTBUSH1,
|
||||||
|
|
230
src/k_kart.c
230
src/k_kart.c
|
@ -396,7 +396,7 @@ void K_RegisterKartStuff(void)
|
||||||
CV_RegisterVar(&cv_kartcheck);
|
CV_RegisterVar(&cv_kartcheck);
|
||||||
CV_RegisterVar(&cv_kartinvinsfx);
|
CV_RegisterVar(&cv_kartinvinsfx);
|
||||||
CV_RegisterVar(&cv_kartspeed);
|
CV_RegisterVar(&cv_kartspeed);
|
||||||
CV_RegisterVar(&cv_kartballoons);
|
CV_RegisterVar(&cv_kartbumpers);
|
||||||
CV_RegisterVar(&cv_kartfrantic);
|
CV_RegisterVar(&cv_kartfrantic);
|
||||||
CV_RegisterVar(&cv_kartcomeback);
|
CV_RegisterVar(&cv_kartcomeback);
|
||||||
CV_RegisterVar(&cv_kartmirror);
|
CV_RegisterVar(&cv_kartmirror);
|
||||||
|
@ -725,7 +725,7 @@ static void K_KartItemRoulette(player_t *player, ticcmd_t *cmd)
|
||||||
INT32 pdis = 0, useodds = 0;
|
INT32 pdis = 0, useodds = 0;
|
||||||
INT32 spawnchance[NUMKARTRESULTS * NUMKARTODDS];
|
INT32 spawnchance[NUMKARTRESULTS * NUMKARTODDS];
|
||||||
INT32 chance = 0, numchoices = 0;
|
INT32 chance = 0, numchoices = 0;
|
||||||
INT32 avgballoon = 0;
|
INT32 avgbumper = 0;
|
||||||
boolean oddsvalid[9];
|
boolean oddsvalid[9];
|
||||||
UINT8 disttable[14];
|
UINT8 disttable[14];
|
||||||
UINT8 distlen = 0;
|
UINT8 distlen = 0;
|
||||||
|
@ -743,12 +743,12 @@ static void K_KartItemRoulette(player_t *player, ticcmd_t *cmd)
|
||||||
if (!playeringame[i] || players[i].spectator)
|
if (!playeringame[i] || players[i].spectator)
|
||||||
continue;
|
continue;
|
||||||
pingame++;
|
pingame++;
|
||||||
if (players[i].kartstuff[k_balloon] > 0)
|
if (players[i].kartstuff[k_bumper] > 0)
|
||||||
avgballoon += players[i].kartstuff[k_balloon];
|
avgbumper += players[i].kartstuff[k_bumper];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pingame)
|
if (pingame)
|
||||||
avgballoon /= pingame;
|
avgbumper /= pingame;
|
||||||
|
|
||||||
// This makes the roulette produce the random noises.
|
// This makes the roulette produce the random noises.
|
||||||
if ((player->kartstuff[k_itemroulette] % 3) == 1 && P_IsLocalPlayer(player))
|
if ((player->kartstuff[k_itemroulette] % 3) == 1 && P_IsLocalPlayer(player))
|
||||||
|
@ -826,7 +826,7 @@ static void K_KartItemRoulette(player_t *player, ticcmd_t *cmd)
|
||||||
useodds = 3;
|
useodds = 3;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
SINT8 wantedpos = (player->kartstuff[k_balloon]-avgballoon)+2; // 0 is two balloons below average, 2 is average
|
SINT8 wantedpos = (player->kartstuff[k_bumper]-avgbumper)+2; // 0 is two bumpers below average, 2 is average
|
||||||
if (wantedpos > 2)
|
if (wantedpos > 2)
|
||||||
wantedpos = 2;
|
wantedpos = 2;
|
||||||
if (wantedpos < 0)
|
if (wantedpos < 0)
|
||||||
|
@ -1386,7 +1386,7 @@ fixed_t K_GetKartSpeed(player_t *player, boolean doboostpower)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (G_BattleGametype() && player->kartstuff[k_balloon] <= 0)
|
if (G_BattleGametype() && player->kartstuff[k_bumper] <= 0)
|
||||||
kartspeed = 1;
|
kartspeed = 1;
|
||||||
|
|
||||||
k_speed += kartspeed*3; // 153 - 177
|
k_speed += kartspeed*3; // 153 - 177
|
||||||
|
@ -1403,7 +1403,7 @@ fixed_t K_GetKartAccel(player_t *player)
|
||||||
fixed_t k_accel = 32; // 36;
|
fixed_t k_accel = 32; // 36;
|
||||||
UINT8 kartspeed = player->kartspeed;
|
UINT8 kartspeed = player->kartspeed;
|
||||||
|
|
||||||
if (G_BattleGametype() && player->kartstuff[k_balloon] <= 0)
|
if (G_BattleGametype() && player->kartstuff[k_bumper] <= 0)
|
||||||
kartspeed = 1;
|
kartspeed = 1;
|
||||||
|
|
||||||
//k_accel += 3 * (9 - kartspeed); // 36 - 60
|
//k_accel += 3 * (9 - kartspeed); // 36 - 60
|
||||||
|
@ -1466,7 +1466,7 @@ void K_SpinPlayer(player_t *player, mobj_t *source, INT32 type, boolean trapitem
|
||||||
|
|
||||||
if (player->powers[pw_flashing] > 0 || player->kartstuff[k_squishedtimer] > 0 || player->kartstuff[k_spinouttimer] > 0
|
if (player->powers[pw_flashing] > 0 || player->kartstuff[k_squishedtimer] > 0 || player->kartstuff[k_spinouttimer] > 0
|
||||||
|| player->kartstuff[k_invincibilitytimer] > 0 || player->kartstuff[k_growshrinktimer] > 0 || player->kartstuff[k_hyudorotimer] > 0
|
|| player->kartstuff[k_invincibilitytimer] > 0 || player->kartstuff[k_growshrinktimer] > 0 || player->kartstuff[k_hyudorotimer] > 0
|
||||||
|| (G_BattleGametype() && ((player->kartstuff[k_balloon] <= 0 && player->kartstuff[k_comebacktimer]) || player->kartstuff[k_comebackmode] == 1)))
|
|| (G_BattleGametype() && ((player->kartstuff[k_bumper] <= 0 && player->kartstuff[k_comebacktimer]) || player->kartstuff[k_comebackmode] == 1)))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (source && source != player->mo && source->player)
|
if (source && source != player->mo && source->player)
|
||||||
|
@ -1487,22 +1487,22 @@ void K_SpinPlayer(player_t *player, mobj_t *source, INT32 type, boolean trapitem
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (player->kartstuff[k_balloon] > 0)
|
if (player->kartstuff[k_bumper] > 0)
|
||||||
{
|
{
|
||||||
if (player->kartstuff[k_balloon] == 1)
|
if (player->kartstuff[k_bumper] == 1)
|
||||||
{
|
{
|
||||||
mobj_t *karmahitbox = P_SpawnMobj(player->mo->x, player->mo->y, player->mo->z, MT_KARMAHITBOX); // Player hitbox is too small!!
|
mobj_t *karmahitbox = P_SpawnMobj(player->mo->x, player->mo->y, player->mo->z, MT_KARMAHITBOX); // Player hitbox is too small!!
|
||||||
P_SetTarget(&karmahitbox->target, player->mo);
|
P_SetTarget(&karmahitbox->target, player->mo);
|
||||||
karmahitbox->destscale = player->mo->scale;
|
karmahitbox->destscale = player->mo->scale;
|
||||||
P_SetScale(karmahitbox, player->mo->scale);
|
P_SetScale(karmahitbox, player->mo->scale);
|
||||||
CONS_Printf(M_GetText("%s lost all of their balloons!\n"), player_names[player-players]);
|
CONS_Printf(M_GetText("%s lost all of their bumpers!\n"), player_names[player-players]);
|
||||||
if (K_IsPlayerWanted(player))
|
if (K_IsPlayerWanted(player))
|
||||||
K_CalculateBattleWanted();
|
K_CalculateBattleWanted();
|
||||||
}
|
}
|
||||||
player->kartstuff[k_balloon]--;
|
player->kartstuff[k_bumper]--;
|
||||||
}
|
}
|
||||||
|
|
||||||
K_CheckBalloons();
|
K_CheckBumpers();
|
||||||
}
|
}
|
||||||
|
|
||||||
player->kartstuff[k_comebacktimer] = comebacktime;
|
player->kartstuff[k_comebacktimer] = comebacktime;
|
||||||
|
@ -1539,7 +1539,7 @@ void K_SquishPlayer(player_t *player, mobj_t *source)
|
||||||
|
|
||||||
if (player->powers[pw_flashing] > 0 || player->kartstuff[k_squishedtimer] > 0 || player->kartstuff[k_invincibilitytimer] > 0
|
if (player->powers[pw_flashing] > 0 || player->kartstuff[k_squishedtimer] > 0 || player->kartstuff[k_invincibilitytimer] > 0
|
||||||
|| player->kartstuff[k_growshrinktimer] > 0 || player->kartstuff[k_hyudorotimer] > 0
|
|| player->kartstuff[k_growshrinktimer] > 0 || player->kartstuff[k_hyudorotimer] > 0
|
||||||
|| (G_BattleGametype() && ((player->kartstuff[k_balloon] <= 0 && player->kartstuff[k_comebacktimer]) || player->kartstuff[k_comebackmode] == 1)))
|
|| (G_BattleGametype() && ((player->kartstuff[k_bumper] <= 0 && player->kartstuff[k_comebacktimer]) || player->kartstuff[k_comebackmode] == 1)))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
player->kartstuff[k_sneakertimer] = 0;
|
player->kartstuff[k_sneakertimer] = 0;
|
||||||
|
@ -1554,22 +1554,22 @@ void K_SquishPlayer(player_t *player, mobj_t *source)
|
||||||
player->kartstuff[k_wanted] -= (wantedreduce/2);
|
player->kartstuff[k_wanted] -= (wantedreduce/2);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (player->kartstuff[k_balloon] > 0)
|
if (player->kartstuff[k_bumper] > 0)
|
||||||
{
|
{
|
||||||
if (player->kartstuff[k_balloon] == 1)
|
if (player->kartstuff[k_bumper] == 1)
|
||||||
{
|
{
|
||||||
mobj_t *karmahitbox = P_SpawnMobj(player->mo->x, player->mo->y, player->mo->z, MT_KARMAHITBOX); // Player hitbox is too small!!
|
mobj_t *karmahitbox = P_SpawnMobj(player->mo->x, player->mo->y, player->mo->z, MT_KARMAHITBOX); // Player hitbox is too small!!
|
||||||
P_SetTarget(&karmahitbox->target, player->mo);
|
P_SetTarget(&karmahitbox->target, player->mo);
|
||||||
karmahitbox->destscale = player->mo->scale;
|
karmahitbox->destscale = player->mo->scale;
|
||||||
P_SetScale(karmahitbox, player->mo->scale);
|
P_SetScale(karmahitbox, player->mo->scale);
|
||||||
CONS_Printf(M_GetText("%s lost all of their balloons!\n"), player_names[player-players]);
|
CONS_Printf(M_GetText("%s lost all of their bumpers!\n"), player_names[player-players]);
|
||||||
if (K_IsPlayerWanted(player))
|
if (K_IsPlayerWanted(player))
|
||||||
K_CalculateBattleWanted();
|
K_CalculateBattleWanted();
|
||||||
}
|
}
|
||||||
player->kartstuff[k_balloon]--;
|
player->kartstuff[k_bumper]--;
|
||||||
}
|
}
|
||||||
|
|
||||||
K_CheckBalloons();
|
K_CheckBumpers();
|
||||||
}
|
}
|
||||||
|
|
||||||
player->kartstuff[k_comebacktimer] = comebacktime;
|
player->kartstuff[k_comebacktimer] = comebacktime;
|
||||||
|
@ -1597,7 +1597,7 @@ void K_ExplodePlayer(player_t *player, mobj_t *source) // A bit of a hack, we ju
|
||||||
|
|
||||||
if (player->powers[pw_flashing] > 0 || player->kartstuff[k_squishedtimer] > 0 || player->kartstuff[k_spinouttimer] > 0
|
if (player->powers[pw_flashing] > 0 || player->kartstuff[k_squishedtimer] > 0 || player->kartstuff[k_spinouttimer] > 0
|
||||||
|| player->kartstuff[k_invincibilitytimer] > 0 || player->kartstuff[k_growshrinktimer] > 0 || player->kartstuff[k_hyudorotimer] > 0
|
|| player->kartstuff[k_invincibilitytimer] > 0 || player->kartstuff[k_growshrinktimer] > 0 || player->kartstuff[k_hyudorotimer] > 0
|
||||||
|| (G_BattleGametype() && ((player->kartstuff[k_balloon] <= 0 && player->kartstuff[k_comebacktimer]) || player->kartstuff[k_comebackmode] == 1)))
|
|| (G_BattleGametype() && ((player->kartstuff[k_bumper] <= 0 && player->kartstuff[k_comebacktimer]) || player->kartstuff[k_comebackmode] == 1)))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
player->mo->momz = 18*(mapheaderinfo[gamemap-1]->mobj_scale);
|
player->mo->momz = 18*(mapheaderinfo[gamemap-1]->mobj_scale);
|
||||||
|
@ -1615,22 +1615,22 @@ void K_ExplodePlayer(player_t *player, mobj_t *source) // A bit of a hack, we ju
|
||||||
player->kartstuff[k_wanted] -= (wantedreduce/2);
|
player->kartstuff[k_wanted] -= (wantedreduce/2);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (player->kartstuff[k_balloon] > 0)
|
if (player->kartstuff[k_bumper] > 0)
|
||||||
{
|
{
|
||||||
if (player->kartstuff[k_balloon] == 1)
|
if (player->kartstuff[k_bumper] == 1)
|
||||||
{
|
{
|
||||||
mobj_t *karmahitbox = P_SpawnMobj(player->mo->x, player->mo->y, player->mo->z, MT_KARMAHITBOX); // Player hitbox is too small!!
|
mobj_t *karmahitbox = P_SpawnMobj(player->mo->x, player->mo->y, player->mo->z, MT_KARMAHITBOX); // Player hitbox is too small!!
|
||||||
P_SetTarget(&karmahitbox->target, player->mo);
|
P_SetTarget(&karmahitbox->target, player->mo);
|
||||||
karmahitbox->destscale = player->mo->scale;
|
karmahitbox->destscale = player->mo->scale;
|
||||||
P_SetScale(karmahitbox, player->mo->scale);
|
P_SetScale(karmahitbox, player->mo->scale);
|
||||||
CONS_Printf(M_GetText("%s lost all of their balloons!\n"), player_names[player-players]);
|
CONS_Printf(M_GetText("%s lost all of their bumpers!\n"), player_names[player-players]);
|
||||||
if (K_IsPlayerWanted(player))
|
if (K_IsPlayerWanted(player))
|
||||||
K_CalculateBattleWanted();
|
K_CalculateBattleWanted();
|
||||||
}
|
}
|
||||||
player->kartstuff[k_balloon]--;
|
player->kartstuff[k_bumper]--;
|
||||||
}
|
}
|
||||||
|
|
||||||
K_CheckBalloons();
|
K_CheckBumpers();
|
||||||
}
|
}
|
||||||
|
|
||||||
player->kartstuff[k_comebacktimer] = comebacktime;
|
player->kartstuff[k_comebacktimer] = comebacktime;
|
||||||
|
@ -1654,9 +1654,9 @@ void K_ExplodePlayer(player_t *player, mobj_t *source) // A bit of a hack, we ju
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
void K_StealBalloon(player_t *player, player_t *victim, boolean force)
|
void K_StealBumper(player_t *player, player_t *victim, boolean force)
|
||||||
{
|
{
|
||||||
INT32 newballoon;
|
INT32 newbumper;
|
||||||
angle_t newangle, diff;
|
angle_t newangle, diff;
|
||||||
fixed_t newx, newy;
|
fixed_t newx, newy;
|
||||||
mobj_t *newmo;
|
mobj_t *newmo;
|
||||||
|
@ -1669,12 +1669,12 @@ void K_StealBalloon(player_t *player, player_t *victim, boolean force)
|
||||||
|
|
||||||
if (!force)
|
if (!force)
|
||||||
{
|
{
|
||||||
if (victim->kartstuff[k_balloon] <= 0) // || player->kartstuff[k_balloon] >= cv_kartballoons.value+2
|
if (victim->kartstuff[k_bumper] <= 0) // || player->kartstuff[k_bumper] >= cv_kartbumpers.value+2
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if ((player->powers[pw_flashing] > 0 || player->kartstuff[k_squishedtimer] > 0 || player->kartstuff[k_spinouttimer] > 0
|
if ((player->powers[pw_flashing] > 0 || player->kartstuff[k_squishedtimer] > 0 || player->kartstuff[k_spinouttimer] > 0
|
||||||
|| player->kartstuff[k_invincibilitytimer] > 0 || player->kartstuff[k_growshrinktimer] > 0 || player->kartstuff[k_hyudorotimer] > 0
|
|| player->kartstuff[k_invincibilitytimer] > 0 || player->kartstuff[k_growshrinktimer] > 0 || player->kartstuff[k_hyudorotimer] > 0
|
||||||
|| (player->kartstuff[k_balloon] <= 0 && player->kartstuff[k_comebacktimer]))
|
|| (player->kartstuff[k_bumper] <= 0 && player->kartstuff[k_comebacktimer]))
|
||||||
|| (victim->powers[pw_flashing] > 0 || victim->kartstuff[k_squishedtimer] > 0 || victim->kartstuff[k_spinouttimer] > 0
|
|| (victim->powers[pw_flashing] > 0 || victim->kartstuff[k_squishedtimer] > 0 || victim->kartstuff[k_spinouttimer] > 0
|
||||||
|| victim->kartstuff[k_invincibilitytimer] > 0 || victim->kartstuff[k_growshrinktimer] > 0 || victim->kartstuff[k_hyudorotimer] > 0))
|
|| victim->kartstuff[k_invincibilitytimer] > 0 || victim->kartstuff[k_growshrinktimer] > 0 || victim->kartstuff[k_hyudorotimer] > 0))
|
||||||
return;
|
return;
|
||||||
|
@ -1682,39 +1682,39 @@ void K_StealBalloon(player_t *player, player_t *victim, boolean force)
|
||||||
|
|
||||||
if (netgame)
|
if (netgame)
|
||||||
{
|
{
|
||||||
if (player->kartstuff[k_balloon] <= 0)
|
if (player->kartstuff[k_bumper] <= 0)
|
||||||
CONS_Printf(M_GetText("%s is back in the game!\n"), player_names[player-players]);
|
CONS_Printf(M_GetText("%s is back in the game!\n"), player_names[player-players]);
|
||||||
else if (cv_hazardlog.value)
|
else if (cv_hazardlog.value)
|
||||||
CONS_Printf(M_GetText("%s stole a balloon from %s!\n"), player_names[player-players], player_names[victim-players]);
|
CONS_Printf(M_GetText("%s stole a bumper from %s!\n"), player_names[player-players], player_names[victim-players]);
|
||||||
}
|
}
|
||||||
|
|
||||||
newballoon = player->kartstuff[k_balloon];
|
newbumper = player->kartstuff[k_bumper];
|
||||||
if (newballoon <= 1)
|
if (newbumper <= 1)
|
||||||
diff = 0;
|
diff = 0;
|
||||||
else
|
else
|
||||||
diff = FixedAngle(360*FRACUNIT/newballoon);
|
diff = FixedAngle(360*FRACUNIT/newbumper);
|
||||||
|
|
||||||
newangle = player->mo->angle;
|
newangle = player->mo->angle;
|
||||||
newx = player->mo->x + P_ReturnThrustX(player->mo, newangle + ANGLE_180, 64*FRACUNIT);
|
newx = player->mo->x + P_ReturnThrustX(player->mo, newangle + ANGLE_180, 64*FRACUNIT);
|
||||||
newy = player->mo->y + P_ReturnThrustY(player->mo, newangle + ANGLE_180, 64*FRACUNIT);
|
newy = player->mo->y + P_ReturnThrustY(player->mo, newangle + ANGLE_180, 64*FRACUNIT);
|
||||||
|
|
||||||
newmo = P_SpawnMobj(newx, newy, player->mo->z, MT_BATTLEBALLOON);
|
newmo = P_SpawnMobj(newx, newy, player->mo->z, MT_BATTLEBUMPER);
|
||||||
newmo->threshold = newballoon;
|
newmo->threshold = newbumper;
|
||||||
P_SetTarget(&newmo->tracer, victim->mo);
|
P_SetTarget(&newmo->tracer, victim->mo);
|
||||||
P_SetTarget(&newmo->target, player->mo);
|
P_SetTarget(&newmo->target, player->mo);
|
||||||
newmo->angle = (diff * (newballoon-1));
|
newmo->angle = (diff * (newbumper-1));
|
||||||
newmo->color = victim->skincolor;
|
newmo->color = victim->skincolor;
|
||||||
|
|
||||||
if (newballoon+1 < 2)
|
if (newbumper+1 < 2)
|
||||||
P_SetMobjState(newmo, S_BATTLEBALLOON3);
|
P_SetMobjState(newmo, S_BATTLEBUMPER3);
|
||||||
else if (newballoon+1 < 3)
|
else if (newbumper+1 < 3)
|
||||||
P_SetMobjState(newmo, S_BATTLEBALLOON2);
|
P_SetMobjState(newmo, S_BATTLEBUMPER2);
|
||||||
else
|
else
|
||||||
P_SetMobjState(newmo, S_BATTLEBALLOON1);
|
P_SetMobjState(newmo, S_BATTLEBUMPER1);
|
||||||
|
|
||||||
S_StartSound(player->mo, sfx_3db06);
|
S_StartSound(player->mo, sfx_3db06);
|
||||||
|
|
||||||
player->kartstuff[k_balloon]++;
|
player->kartstuff[k_bumper]++;
|
||||||
player->kartstuff[k_comebackpoints] = 0;
|
player->kartstuff[k_comebackpoints] = 0;
|
||||||
player->powers[pw_flashing] = K_GetKartFlashing();
|
player->powers[pw_flashing] = K_GetKartFlashing();
|
||||||
player->kartstuff[k_comebacktimer] = comebacktime;
|
player->kartstuff[k_comebacktimer] = comebacktime;
|
||||||
|
@ -1965,7 +1965,7 @@ void K_SpawnBoostTrail(player_t *player)
|
||||||
|
|
||||||
if (!P_IsObjectOnGround(player->mo)
|
if (!P_IsObjectOnGround(player->mo)
|
||||||
|| player->kartstuff[k_hyudorotimer] != 0
|
|| player->kartstuff[k_hyudorotimer] != 0
|
||||||
|| (G_BattleGametype() && player->kartstuff[k_balloon] <= 0 && player->kartstuff[k_comebacktimer]))
|
|| (G_BattleGametype() && player->kartstuff[k_bumper] <= 0 && player->kartstuff[k_comebacktimer]))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (player->mo->eflags & MFE_VERTICALFLIP)
|
if (player->mo->eflags & MFE_VERTICALFLIP)
|
||||||
|
@ -2343,7 +2343,7 @@ static void K_DoHyudoroSteal(player_t *player)
|
||||||
|
|
||||||
// Can steal from this player
|
// Can steal from this player
|
||||||
&& (G_RaceGametype() //&& players[i].kartstuff[k_position] < player->kartstuff[k_position])
|
&& (G_RaceGametype() //&& players[i].kartstuff[k_position] < player->kartstuff[k_position])
|
||||||
|| (G_BattleGametype() && players[i].kartstuff[k_balloon] > 0))
|
|| (G_BattleGametype() && players[i].kartstuff[k_bumper] > 0))
|
||||||
|
|
||||||
// Has an item
|
// Has an item
|
||||||
&& (players[i].kartstuff[k_itemtype]
|
&& (players[i].kartstuff[k_itemtype]
|
||||||
|
@ -2730,7 +2730,7 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd)
|
||||||
else if (player->kartstuff[k_comebacktimer])
|
else if (player->kartstuff[k_comebacktimer])
|
||||||
{
|
{
|
||||||
player->kartstuff[k_comebacktimer]--;
|
player->kartstuff[k_comebacktimer]--;
|
||||||
if (P_IsLocalPlayer(player) && player->kartstuff[k_balloon] <= 0 && player->kartstuff[k_comebacktimer] <= 0)
|
if (P_IsLocalPlayer(player) && player->kartstuff[k_bumper] <= 0 && player->kartstuff[k_comebacktimer] <= 0)
|
||||||
comebackshowninfo = true; // client has already seen the message
|
comebackshowninfo = true; // client has already seen the message
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2825,7 +2825,7 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd)
|
||||||
if (player->kartstuff[k_tauntvoices])
|
if (player->kartstuff[k_tauntvoices])
|
||||||
player->kartstuff[k_tauntvoices]--;
|
player->kartstuff[k_tauntvoices]--;
|
||||||
|
|
||||||
if (G_BattleGametype() && player->kartstuff[k_balloon] > 0)
|
if (G_BattleGametype() && player->kartstuff[k_bumper] > 0)
|
||||||
player->kartstuff[k_wanted]++;
|
player->kartstuff[k_wanted]++;
|
||||||
|
|
||||||
// ???
|
// ???
|
||||||
|
@ -2985,7 +2985,7 @@ static void K_KartDrift(player_t *player, boolean onground)
|
||||||
UINT8 kartspeed = player->kartspeed;
|
UINT8 kartspeed = player->kartspeed;
|
||||||
fixed_t dsone, dstwo;
|
fixed_t dsone, dstwo;
|
||||||
|
|
||||||
if (G_BattleGametype() && player->kartstuff[k_balloon] <= 0)
|
if (G_BattleGametype() && player->kartstuff[k_bumper] <= 0)
|
||||||
kartspeed = 1;
|
kartspeed = 1;
|
||||||
|
|
||||||
// IF YOU CHANGE THESE: MAKE SURE YOU UPDATE THE SAME VALUES IN p_mobjc, "case MT_DRIFT:"
|
// IF YOU CHANGE THESE: MAKE SURE YOU UPDATE THE SAME VALUES IN p_mobjc, "case MT_DRIFT:"
|
||||||
|
@ -3205,9 +3205,9 @@ static void K_KartUpdatePosition(player_t *player)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (players[i].kartstuff[k_balloon] == player->kartstuff[k_balloon] && players[i].score > player->score)
|
if (players[i].kartstuff[k_bumper] == player->kartstuff[k_bumper] && players[i].score > player->score)
|
||||||
position++;
|
position++;
|
||||||
else if (players[i].kartstuff[k_balloon] > player->kartstuff[k_balloon])
|
else if (players[i].kartstuff[k_bumper] > player->kartstuff[k_bumper])
|
||||||
position++;
|
position++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3707,13 +3707,13 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
|
||||||
player->mo->eflags &= ~(MFE_DRAWONLYFORP1|MFE_DRAWONLYFORP2|MFE_DRAWONLYFORP3|MFE_DRAWONLYFORP4);
|
player->mo->eflags &= ~(MFE_DRAWONLYFORP1|MFE_DRAWONLYFORP2|MFE_DRAWONLYFORP3|MFE_DRAWONLYFORP4);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (G_BattleGametype() && player->kartstuff[k_balloon] <= 0) // dead in match? you da bomb
|
if (G_BattleGametype() && player->kartstuff[k_bumper] <= 0) // dead in match? you da bomb
|
||||||
{
|
{
|
||||||
K_StripItems(player);
|
K_StripItems(player);
|
||||||
player->mo->flags2 |= MF2_SHADOW;
|
player->mo->flags2 |= MF2_SHADOW;
|
||||||
player->powers[pw_flashing] = player->kartstuff[k_comebacktimer];
|
player->powers[pw_flashing] = player->kartstuff[k_comebacktimer];
|
||||||
}
|
}
|
||||||
else if (G_RaceGametype() || player->kartstuff[k_balloon] > 0)
|
else if (G_RaceGametype() || player->kartstuff[k_bumper] > 0)
|
||||||
{
|
{
|
||||||
player->mo->flags2 &= ~MF2_SHADOW;
|
player->mo->flags2 &= ~MF2_SHADOW;
|
||||||
}
|
}
|
||||||
|
@ -3727,7 +3727,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
|
||||||
player->mo->friction += 4608;
|
player->mo->friction += 4608;
|
||||||
if (player->speed > 0 && cmd->forwardmove < 0 && player->mo->friction == 59392)
|
if (player->speed > 0 && cmd->forwardmove < 0 && player->mo->friction == 59392)
|
||||||
player->mo->friction += 1608;
|
player->mo->friction += 1608;
|
||||||
if (G_BattleGametype() && player->kartstuff[k_balloon] <= 0)
|
if (G_BattleGametype() && player->kartstuff[k_bumper] <= 0)
|
||||||
{
|
{
|
||||||
player->mo->friction += 1228;
|
player->mo->friction += 1228;
|
||||||
|
|
||||||
|
@ -3830,10 +3830,10 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
|
||||||
void K_CalculateBattleWanted(void)
|
void K_CalculateBattleWanted(void)
|
||||||
{
|
{
|
||||||
UINT8 numingame = 0, numwanted = 0;
|
UINT8 numingame = 0, numwanted = 0;
|
||||||
SINT8 bestballoonplayer = -1, bestballoon = -1;
|
SINT8 bestbumperplayer = -1, bestbumper = -1;
|
||||||
SINT8 camppos[MAXPLAYERS]; // who is the biggest camper
|
SINT8 camppos[MAXPLAYERS]; // who is the biggest camper
|
||||||
UINT8 ties = 0, nextcamppos = 0;
|
UINT8 ties = 0, nextcamppos = 0;
|
||||||
boolean setballoon = false;
|
boolean setbumper = false;
|
||||||
UINT8 i, j;
|
UINT8 i, j;
|
||||||
|
|
||||||
if (!G_BattleGametype())
|
if (!G_BattleGametype())
|
||||||
|
@ -3856,24 +3856,24 @@ void K_CalculateBattleWanted(void)
|
||||||
if (players[i].exiting) // We're done, don't calculate.
|
if (players[i].exiting) // We're done, don't calculate.
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (players[i].kartstuff[k_balloon] <= 0) // Not alive, so don't do anything else
|
if (players[i].kartstuff[k_bumper] <= 0) // Not alive, so don't do anything else
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
numingame++;
|
numingame++;
|
||||||
|
|
||||||
if (bestballoon == -1 || players[i].kartstuff[k_balloon] > bestballoon)
|
if (bestbumper == -1 || players[i].kartstuff[k_bumper] > bestbumper)
|
||||||
{
|
{
|
||||||
bestballoon = players[i].kartstuff[k_balloon];
|
bestbumper = players[i].kartstuff[k_bumper];
|
||||||
bestballoonplayer = i;
|
bestbumperplayer = i;
|
||||||
}
|
}
|
||||||
else if (players[i].kartstuff[k_balloon] == bestballoon)
|
else if (players[i].kartstuff[k_bumper] == bestbumper)
|
||||||
bestballoonplayer = -1; // Tie, no one has best balloon.
|
bestbumperplayer = -1; // Tie, no one has best bumper.
|
||||||
|
|
||||||
for (j = 0; j < MAXPLAYERS; j++)
|
for (j = 0; j < MAXPLAYERS; j++)
|
||||||
{
|
{
|
||||||
if (!playeringame[j] || players[j].spectator)
|
if (!playeringame[j] || players[j].spectator)
|
||||||
continue;
|
continue;
|
||||||
if (players[j].kartstuff[k_balloon] <= 0)
|
if (players[j].kartstuff[k_bumper] <= 0)
|
||||||
continue;
|
continue;
|
||||||
if (j == i)
|
if (j == i)
|
||||||
continue;
|
continue;
|
||||||
|
@ -3900,16 +3900,16 @@ void K_CalculateBattleWanted(void)
|
||||||
{
|
{
|
||||||
if (i+1 > numwanted) // Not enough players for this slot to be wanted!
|
if (i+1 > numwanted) // Not enough players for this slot to be wanted!
|
||||||
battlewanted[i] = -1;
|
battlewanted[i] = -1;
|
||||||
else if (bestballoonplayer != -1 && !setballoon) // If there's a player who has an untied balloon lead over everyone else, they are the first to be wanted.
|
else if (bestbumperplayer != -1 && !setbumper) // If there's a player who has an untied bumper lead over everyone else, they are the first to be wanted.
|
||||||
{
|
{
|
||||||
battlewanted[i] = bestballoonplayer;
|
battlewanted[i] = bestbumperplayer;
|
||||||
setballoon = true; // Don't set twice
|
setbumper = true; // Don't set twice
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Don't accidentally set the same player, if the bestballoonplayer is also a huge camper.
|
// Don't accidentally set the same player, if the bestbumperplayer is also a huge camper.
|
||||||
while (bestballoonplayer != -1 && camppos[nextcamppos] != -1
|
while (bestbumperplayer != -1 && camppos[nextcamppos] != -1
|
||||||
&& bestballoonplayer == camppos[nextcamppos])
|
&& bestbumperplayer == camppos[nextcamppos])
|
||||||
nextcamppos++;
|
nextcamppos++;
|
||||||
|
|
||||||
// Do not add *any* more people if there's too many times that are tied with others.
|
// Do not add *any* more people if there's too many times that are tied with others.
|
||||||
|
@ -3946,7 +3946,7 @@ void K_CalculateBattleWanted(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void K_CheckBalloons(void)
|
void K_CheckBumpers(void)
|
||||||
{
|
{
|
||||||
UINT8 i;
|
UINT8 i;
|
||||||
UINT8 numingame = 0;
|
UINT8 numingame = 0;
|
||||||
|
@ -3973,7 +3973,7 @@ void K_CheckBalloons(void)
|
||||||
numingame++;
|
numingame++;
|
||||||
winnerscoreadd += players[i].score;
|
winnerscoreadd += players[i].score;
|
||||||
|
|
||||||
if (players[i].kartstuff[k_balloon] <= 0) // if you don't have any balloons, you're probably not a winner
|
if (players[i].kartstuff[k_bumper] <= 0) // if you don't have any bumpers, you're probably not a winner
|
||||||
continue;
|
continue;
|
||||||
else if (winnernum > -1) // TWO winners? that's dumb :V
|
else if (winnernum > -1) // TWO winners? that's dumb :V
|
||||||
return;
|
return;
|
||||||
|
@ -4010,8 +4010,8 @@ static patch_t *kp_timestickerwide;
|
||||||
static patch_t *kp_lapsticker;
|
static patch_t *kp_lapsticker;
|
||||||
static patch_t *kp_lapstickernarrow;
|
static patch_t *kp_lapstickernarrow;
|
||||||
static patch_t *kp_splitlapflag;
|
static patch_t *kp_splitlapflag;
|
||||||
static patch_t *kp_balloonsticker;
|
static patch_t *kp_bumpersticker;
|
||||||
static patch_t *kp_balloonstickerwide;
|
static patch_t *kp_bumperstickerwide;
|
||||||
static patch_t *kp_karmasticker;
|
static patch_t *kp_karmasticker;
|
||||||
static patch_t *kp_splitkarmabomb;
|
static patch_t *kp_splitkarmabomb;
|
||||||
static patch_t *kp_timeoutsticker;
|
static patch_t *kp_timeoutsticker;
|
||||||
|
@ -4027,8 +4027,8 @@ static patch_t *kp_facesecond;
|
||||||
static patch_t *kp_facethird;
|
static patch_t *kp_facethird;
|
||||||
static patch_t *kp_facefourth;
|
static patch_t *kp_facefourth;
|
||||||
|
|
||||||
static patch_t *kp_rankballoon;
|
static patch_t *kp_rankbumper;
|
||||||
static patch_t *kp_ranknoballoons;
|
static patch_t *kp_ranknobumpers;
|
||||||
|
|
||||||
static patch_t *kp_battlewin;
|
static patch_t *kp_battlewin;
|
||||||
static patch_t *kp_battlelose;
|
static patch_t *kp_battlelose;
|
||||||
|
@ -4078,8 +4078,8 @@ void K_LoadKartHUDGraphics(void)
|
||||||
kp_lapsticker = W_CachePatchName("K_STLAPS", PU_HUDGFX);
|
kp_lapsticker = W_CachePatchName("K_STLAPS", PU_HUDGFX);
|
||||||
kp_lapstickernarrow = W_CachePatchName("K_STLAPN", PU_HUDGFX);
|
kp_lapstickernarrow = W_CachePatchName("K_STLAPN", PU_HUDGFX);
|
||||||
kp_splitlapflag = W_CachePatchName("K_SPTLAP", PU_HUDGFX);
|
kp_splitlapflag = W_CachePatchName("K_SPTLAP", PU_HUDGFX);
|
||||||
kp_balloonsticker = W_CachePatchName("K_STBALN", PU_HUDGFX);
|
kp_bumpersticker = W_CachePatchName("K_STBALN", PU_HUDGFX);
|
||||||
kp_balloonstickerwide = W_CachePatchName("K_STBALW", PU_HUDGFX);
|
kp_bumperstickerwide = W_CachePatchName("K_STBALW", PU_HUDGFX);
|
||||||
kp_karmasticker = W_CachePatchName("K_STKARM", PU_HUDGFX);
|
kp_karmasticker = W_CachePatchName("K_STKARM", PU_HUDGFX);
|
||||||
kp_splitkarmabomb = W_CachePatchName("K_SPTKRM", PU_HUDGFX);
|
kp_splitkarmabomb = W_CachePatchName("K_SPTKRM", PU_HUDGFX);
|
||||||
kp_timeoutsticker = W_CachePatchName("K_STTOUT", PU_HUDGFX);
|
kp_timeoutsticker = W_CachePatchName("K_STTOUT", PU_HUDGFX);
|
||||||
|
@ -4117,8 +4117,8 @@ void K_LoadKartHUDGraphics(void)
|
||||||
kp_facefourth = W_CachePatchName("K_PFACE4", PU_HUDGFX);
|
kp_facefourth = W_CachePatchName("K_PFACE4", PU_HUDGFX);
|
||||||
|
|
||||||
// Extra ranking icons
|
// Extra ranking icons
|
||||||
kp_rankballoon = W_CachePatchName("K_BLNICO", PU_HUDGFX);
|
kp_rankbumper = W_CachePatchName("K_BLNICO", PU_HUDGFX);
|
||||||
kp_ranknoballoons = W_CachePatchName("K_NOBLNS", PU_HUDGFX);
|
kp_ranknobumpers = W_CachePatchName("K_NOBLNS", PU_HUDGFX);
|
||||||
|
|
||||||
// Battle graphics
|
// Battle graphics
|
||||||
kp_battlewin = W_CachePatchName("K_BWIN", PU_HUDGFX);
|
kp_battlewin = W_CachePatchName("K_BWIN", PU_HUDGFX);
|
||||||
|
@ -4664,7 +4664,7 @@ static void K_drawKartPositionFaces(void)
|
||||||
INT32 rankplayer[MAXPLAYERS];
|
INT32 rankplayer[MAXPLAYERS];
|
||||||
INT32 rankcolor[MAXPLAYERS];
|
INT32 rankcolor[MAXPLAYERS];
|
||||||
INT32 myplayer;
|
INT32 myplayer;
|
||||||
INT32 balloonx;
|
INT32 bumperx;
|
||||||
UINT8 *colormap;
|
UINT8 *colormap;
|
||||||
patch_t *localpatch = kp_facenull;
|
patch_t *localpatch = kp_facenull;
|
||||||
|
|
||||||
|
@ -4704,7 +4704,7 @@ static void K_drawKartPositionFaces(void)
|
||||||
if (players[rankplayer[i]].spectator) continue; // Spectators are ignored
|
if (players[rankplayer[i]].spectator) continue; // Spectators are ignored
|
||||||
if (!players[rankplayer[i]].mo) continue;
|
if (!players[rankplayer[i]].mo) continue;
|
||||||
|
|
||||||
balloonx = FACE_X+18;
|
bumperx = FACE_X+18;
|
||||||
|
|
||||||
if (rankcolor[i] == 0)
|
if (rankcolor[i] == 0)
|
||||||
{
|
{
|
||||||
|
@ -4712,24 +4712,24 @@ static void K_drawKartPositionFaces(void)
|
||||||
if (rankplayer[i] != myplayer)
|
if (rankplayer[i] != myplayer)
|
||||||
{
|
{
|
||||||
V_DrawSmallTranslucentPatch(FACE_X, Y, V_HUDTRANS|V_SNAPTOLEFT, faceprefix[players[rankplayer[i]].skin]);
|
V_DrawSmallTranslucentPatch(FACE_X, Y, V_HUDTRANS|V_SNAPTOLEFT, faceprefix[players[rankplayer[i]].skin]);
|
||||||
if (G_BattleGametype() && players[rankplayer[i]].kartstuff[k_balloon] > 0)
|
if (G_BattleGametype() && players[rankplayer[i]].kartstuff[k_bumper] > 0)
|
||||||
{
|
{
|
||||||
for (j = 0; j < players[rankplayer[i]].kartstuff[k_balloon]; j++)
|
for (j = 0; j < players[rankplayer[i]].kartstuff[k_bumper]; j++)
|
||||||
{
|
{
|
||||||
V_DrawSmallTranslucentPatch(balloonx, Y+10, V_HUDTRANS|V_SNAPTOLEFT, kp_rankballoon);
|
V_DrawSmallTranslucentPatch(bumperx, Y+10, V_HUDTRANS|V_SNAPTOLEFT, kp_rankbumper);
|
||||||
balloonx += 3;
|
bumperx += 3;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
V_DrawSmallScaledPatch(FACE_X, Y, V_HUDTRANS|V_SNAPTOLEFT, faceprefix[players[rankplayer[i]].skin]);
|
V_DrawSmallScaledPatch(FACE_X, Y, V_HUDTRANS|V_SNAPTOLEFT, faceprefix[players[rankplayer[i]].skin]);
|
||||||
if (G_BattleGametype() && players[rankplayer[i]].kartstuff[k_balloon] > 0)
|
if (G_BattleGametype() && players[rankplayer[i]].kartstuff[k_bumper] > 0)
|
||||||
{
|
{
|
||||||
for (j = 0; j < players[rankplayer[i]].kartstuff[k_balloon]; j++)
|
for (j = 0; j < players[rankplayer[i]].kartstuff[k_bumper]; j++)
|
||||||
{
|
{
|
||||||
V_DrawSmallScaledPatch(balloonx, Y+10, V_HUDTRANS|V_SNAPTOLEFT, kp_rankballoon);
|
V_DrawSmallScaledPatch(bumperx, Y+10, V_HUDTRANS|V_SNAPTOLEFT, kp_rankbumper);
|
||||||
balloonx += 3;
|
bumperx += 3;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4749,24 +4749,24 @@ static void K_drawKartPositionFaces(void)
|
||||||
if (rankplayer[i] != myplayer)
|
if (rankplayer[i] != myplayer)
|
||||||
{
|
{
|
||||||
V_DrawSmallTranslucentMappedPatch(FACE_X, Y, V_HUDTRANS|V_SNAPTOLEFT, faceprefix[players[rankplayer[i]].skin], colormap);
|
V_DrawSmallTranslucentMappedPatch(FACE_X, Y, V_HUDTRANS|V_SNAPTOLEFT, faceprefix[players[rankplayer[i]].skin], colormap);
|
||||||
if (G_BattleGametype() && players[rankplayer[i]].kartstuff[k_balloon] > 0)
|
if (G_BattleGametype() && players[rankplayer[i]].kartstuff[k_bumper] > 0)
|
||||||
{
|
{
|
||||||
for (j = 0; j < players[rankplayer[i]].kartstuff[k_balloon]; j++)
|
for (j = 0; j < players[rankplayer[i]].kartstuff[k_bumper]; j++)
|
||||||
{
|
{
|
||||||
V_DrawSmallTranslucentMappedPatch(balloonx, Y+10, V_HUDTRANS|V_SNAPTOLEFT, kp_rankballoon, colormap);
|
V_DrawSmallTranslucentMappedPatch(bumperx, Y+10, V_HUDTRANS|V_SNAPTOLEFT, kp_rankbumper, colormap);
|
||||||
balloonx += 3;
|
bumperx += 3;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
V_DrawSmallMappedPatch(FACE_X, Y, V_HUDTRANS|V_SNAPTOLEFT, faceprefix[players[rankplayer[i]].skin], colormap);
|
V_DrawSmallMappedPatch(FACE_X, Y, V_HUDTRANS|V_SNAPTOLEFT, faceprefix[players[rankplayer[i]].skin], colormap);
|
||||||
if (G_BattleGametype() && players[rankplayer[i]].kartstuff[k_balloon] > 0)
|
if (G_BattleGametype() && players[rankplayer[i]].kartstuff[k_bumper] > 0)
|
||||||
{
|
{
|
||||||
for (j = 0; j < players[rankplayer[i]].kartstuff[k_balloon]; j++)
|
for (j = 0; j < players[rankplayer[i]].kartstuff[k_bumper]; j++)
|
||||||
{
|
{
|
||||||
V_DrawSmallMappedPatch(balloonx, Y+10, V_HUDTRANS|V_SNAPTOLEFT, kp_rankballoon, colormap);
|
V_DrawSmallMappedPatch(bumperx, Y+10, V_HUDTRANS|V_SNAPTOLEFT, kp_rankbumper, colormap);
|
||||||
balloonx += 3;
|
bumperx += 3;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4784,15 +4784,15 @@ static void K_drawKartPositionFaces(void)
|
||||||
|
|
||||||
if (rankplayer[i] != myplayer)
|
if (rankplayer[i] != myplayer)
|
||||||
{
|
{
|
||||||
if (G_BattleGametype() && players[rankplayer[i]].kartstuff[k_balloon] <= 0)
|
if (G_BattleGametype() && players[rankplayer[i]].kartstuff[k_bumper] <= 0)
|
||||||
V_DrawSmallTranslucentPatch(FACE_X-2, Y, V_HUDTRANS|V_SNAPTOLEFT, kp_ranknoballoons);
|
V_DrawSmallTranslucentPatch(FACE_X-2, Y, V_HUDTRANS|V_SNAPTOLEFT, kp_ranknobumpers);
|
||||||
else
|
else
|
||||||
V_DrawSmallTranslucentPatch(FACE_X, Y, V_HUDTRANS|V_SNAPTOLEFT, localpatch);
|
V_DrawSmallTranslucentPatch(FACE_X, Y, V_HUDTRANS|V_SNAPTOLEFT, localpatch);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (G_BattleGametype() && players[rankplayer[i]].kartstuff[k_balloon] <= 0)
|
if (G_BattleGametype() && players[rankplayer[i]].kartstuff[k_bumper] <= 0)
|
||||||
V_DrawSmallScaledPatch(FACE_X-2, Y, V_HUDTRANS|V_SNAPTOLEFT, kp_ranknoballoons);
|
V_DrawSmallScaledPatch(FACE_X-2, Y, V_HUDTRANS|V_SNAPTOLEFT, kp_ranknobumpers);
|
||||||
else
|
else
|
||||||
V_DrawSmallScaledPatch(FACE_X, Y, V_HUDTRANS|V_SNAPTOLEFT, localpatch);
|
V_DrawSmallScaledPatch(FACE_X, Y, V_HUDTRANS|V_SNAPTOLEFT, localpatch);
|
||||||
}
|
}
|
||||||
|
@ -4847,38 +4847,38 @@ static void K_drawKartSpeedometer(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void K_drawKartBalloonsOrKarma(void)
|
static void K_drawKartBumpersOrKarma(void)
|
||||||
{
|
{
|
||||||
UINT8 *colormap = R_GetTranslationColormap(TC_DEFAULT, stplyr->skincolor, 0);
|
UINT8 *colormap = R_GetTranslationColormap(TC_DEFAULT, stplyr->skincolor, 0);
|
||||||
INT32 splitflags = K_calcSplitFlags(V_SNAPTOBOTTOM|V_SNAPTOLEFT);
|
INT32 splitflags = K_calcSplitFlags(V_SNAPTOBOTTOM|V_SNAPTOLEFT);
|
||||||
|
|
||||||
if (splitscreen > 1)
|
if (splitscreen > 1)
|
||||||
{
|
{
|
||||||
if (stplyr->kartstuff[k_balloon] <= 0)
|
if (stplyr->kartstuff[k_bumper] <= 0)
|
||||||
{
|
{
|
||||||
V_DrawMappedPatch(LAPS_X, LAPS_Y-1, V_HUDTRANS|splitflags, kp_splitkarmabomb, colormap);
|
V_DrawMappedPatch(LAPS_X, LAPS_Y-1, V_HUDTRANS|splitflags, kp_splitkarmabomb, colormap);
|
||||||
V_DrawString(LAPS_X+13, LAPS_Y+1, V_HUDTRANS|splitflags, va("%d/3", stplyr->kartstuff[k_comebackpoints]));
|
V_DrawString(LAPS_X+13, LAPS_Y+1, V_HUDTRANS|splitflags, va("%d/3", stplyr->kartstuff[k_comebackpoints]));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
V_DrawMappedPatch(LAPS_X, LAPS_Y-1, V_HUDTRANS|splitflags, kp_rankballoon, colormap);
|
V_DrawMappedPatch(LAPS_X, LAPS_Y-1, V_HUDTRANS|splitflags, kp_rankbumper, colormap);
|
||||||
V_DrawString(LAPS_X+13, LAPS_Y+1, V_HUDTRANS|splitflags, va("%d/%d", stplyr->kartstuff[k_balloon], cv_kartballoons.value));
|
V_DrawString(LAPS_X+13, LAPS_Y+1, V_HUDTRANS|splitflags, va("%d/%d", stplyr->kartstuff[k_bumper], cv_kartbumpers.value));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (stplyr->kartstuff[k_balloon] <= 0)
|
if (stplyr->kartstuff[k_bumper] <= 0)
|
||||||
{
|
{
|
||||||
V_DrawMappedPatch(LAPS_X, LAPS_Y, V_HUDTRANS|splitflags, kp_karmasticker, colormap);
|
V_DrawMappedPatch(LAPS_X, LAPS_Y, V_HUDTRANS|splitflags, kp_karmasticker, colormap);
|
||||||
V_DrawKartString(LAPS_X+59, 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
|
else
|
||||||
{
|
{
|
||||||
if (stplyr->kartstuff[k_balloon] > 9 && cv_kartballoons.value > 9)
|
if (stplyr->kartstuff[k_bumper] > 9 && cv_kartbumpers.value > 9)
|
||||||
V_DrawMappedPatch(LAPS_X, LAPS_Y, V_HUDTRANS|splitflags, kp_balloonstickerwide, colormap);
|
V_DrawMappedPatch(LAPS_X, LAPS_Y, V_HUDTRANS|splitflags, kp_bumperstickerwide, colormap);
|
||||||
else
|
else
|
||||||
V_DrawMappedPatch(LAPS_X, LAPS_Y, V_HUDTRANS|splitflags, kp_balloonsticker, colormap);
|
V_DrawMappedPatch(LAPS_X, LAPS_Y, V_HUDTRANS|splitflags, kp_bumpersticker, colormap);
|
||||||
V_DrawKartString(LAPS_X+47, 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_bumper], cv_kartbumpers.value));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5234,7 +5234,7 @@ static void K_drawKartMinimap(void)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (G_BattleGametype() && players[i].kartstuff[k_balloon] <= 0)
|
if (G_BattleGametype() && players[i].kartstuff[k_bumper] <= 0)
|
||||||
continue;
|
continue;
|
||||||
if (players[i].kartstuff[k_hyudorotimer] > 0)
|
if (players[i].kartstuff[k_hyudorotimer] > 0)
|
||||||
{
|
{
|
||||||
|
@ -5298,12 +5298,12 @@ static void K_drawBattleFullscreen(void)
|
||||||
{
|
{
|
||||||
if (stplyr == &players[displayplayer])
|
if (stplyr == &players[displayplayer])
|
||||||
V_DrawFadeScreen(0xFF00, 16);
|
V_DrawFadeScreen(0xFF00, 16);
|
||||||
if (stplyr->kartstuff[k_balloon])
|
if (stplyr->kartstuff[k_bumper])
|
||||||
V_DrawFixedPatch(x<<FRACBITS, y<<FRACBITS, scale, splitflags, kp_battlewin, NULL);
|
V_DrawFixedPatch(x<<FRACBITS, y<<FRACBITS, scale, splitflags, kp_battlewin, NULL);
|
||||||
else if (splitscreen < 2)
|
else if (splitscreen < 2)
|
||||||
V_DrawFixedPatch(x<<FRACBITS, y<<FRACBITS, scale, splitflags, kp_battlelose, NULL);
|
V_DrawFixedPatch(x<<FRACBITS, y<<FRACBITS, scale, splitflags, kp_battlelose, NULL);
|
||||||
}
|
}
|
||||||
else if (stplyr->kartstuff[k_balloon] <= 0 && stplyr->kartstuff[k_comebacktimer] && comeback)
|
else if (stplyr->kartstuff[k_bumper] <= 0 && stplyr->kartstuff[k_comebacktimer] && comeback)
|
||||||
{
|
{
|
||||||
INT32 t = stplyr->kartstuff[k_comebacktimer]/TICRATE;
|
INT32 t = stplyr->kartstuff[k_comebacktimer]/TICRATE;
|
||||||
INT32 txoff = 0;
|
INT32 txoff = 0;
|
||||||
|
@ -5470,7 +5470,7 @@ void K_drawKartHUD(void)
|
||||||
// Draw full screen stuff that turns off the rest of the HUD
|
// Draw full screen stuff that turns off the rest of the HUD
|
||||||
if ((G_BattleGametype())
|
if ((G_BattleGametype())
|
||||||
&& (stplyr->exiting
|
&& (stplyr->exiting
|
||||||
|| (stplyr->kartstuff[k_balloon] <= 0
|
|| (stplyr->kartstuff[k_bumper] <= 0
|
||||||
&& stplyr->kartstuff[k_comebacktimer]
|
&& stplyr->kartstuff[k_comebacktimer]
|
||||||
&& comeback
|
&& comeback
|
||||||
&& stplyr->playerstate == PST_LIVE)))
|
&& stplyr->playerstate == PST_LIVE)))
|
||||||
|
@ -5533,7 +5533,7 @@ void K_drawKartHUD(void)
|
||||||
else if (G_BattleGametype()) // Battle-only
|
else if (G_BattleGametype()) // Battle-only
|
||||||
{
|
{
|
||||||
// Draw the hits left!
|
// Draw the hits left!
|
||||||
K_drawKartBalloonsOrKarma();
|
K_drawKartBumpersOrKarma();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@ void K_KartPlayerAfterThink(player_t *player);
|
||||||
void K_SpinPlayer(player_t *player, mobj_t *source, INT32 type, boolean trapitem);
|
void K_SpinPlayer(player_t *player, mobj_t *source, INT32 type, boolean trapitem);
|
||||||
void K_SquishPlayer(player_t *player, mobj_t *source);
|
void K_SquishPlayer(player_t *player, mobj_t *source);
|
||||||
void K_ExplodePlayer(player_t *player, mobj_t *source);
|
void K_ExplodePlayer(player_t *player, mobj_t *source);
|
||||||
void K_StealBalloon(player_t *player, player_t *victim, boolean force);
|
void K_StealBumper(player_t *player, player_t *victim, boolean force);
|
||||||
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, 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, mobj_t *source);
|
||||||
void K_SpawnMineExplosion(mobj_t *source, UINT8 color);
|
void K_SpawnMineExplosion(mobj_t *source, UINT8 color);
|
||||||
void K_SpawnBoostTrail(player_t *player);
|
void K_SpawnBoostTrail(player_t *player);
|
||||||
|
@ -48,7 +48,7 @@ UINT16 K_GetKartFlashing(void);
|
||||||
fixed_t K_3dKartMovement(player_t *player, boolean onground, fixed_t forwardmove);
|
fixed_t K_3dKartMovement(player_t *player, boolean onground, fixed_t forwardmove);
|
||||||
void K_MoveKartPlayer(player_t *player, boolean onground);
|
void K_MoveKartPlayer(player_t *player, boolean onground);
|
||||||
void K_CalculateBattleWanted(void);
|
void K_CalculateBattleWanted(void);
|
||||||
void K_CheckBalloons(void);
|
void K_CheckBumpers(void);
|
||||||
|
|
||||||
INT32 K_calcSplitFlags(INT32 snapflags);
|
INT32 K_calcSplitFlags(INT32 snapflags);
|
||||||
void K_LoadKartHUDGraphics(void);
|
void K_LoadKartHUDGraphics(void);
|
||||||
|
|
|
@ -2069,7 +2069,7 @@ static int lib_kExplodePlayer(lua_State *L)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int lib_kStealBalloon(lua_State *L)
|
static int lib_kStealBumper(lua_State *L)
|
||||||
{
|
{
|
||||||
player_t *player = *((player_t **)luaL_checkudata(L, 1, META_PLAYER));
|
player_t *player = *((player_t **)luaL_checkudata(L, 1, META_PLAYER));
|
||||||
player_t *victim = *((player_t **)luaL_checkudata(L, 2, META_PLAYER));
|
player_t *victim = *((player_t **)luaL_checkudata(L, 2, META_PLAYER));
|
||||||
|
@ -2079,7 +2079,7 @@ static int lib_kStealBalloon(lua_State *L)
|
||||||
return LUA_ErrInvalid(L, "player_t");
|
return LUA_ErrInvalid(L, "player_t");
|
||||||
if (!victim)
|
if (!victim)
|
||||||
return LUA_ErrInvalid(L, "player_t");
|
return LUA_ErrInvalid(L, "player_t");
|
||||||
K_StealBalloon(player, victim, force);
|
K_StealBumper(player, victim, force);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2402,7 +2402,7 @@ static luaL_Reg lib[] = {
|
||||||
{"K_SpinPlayer",lib_kSpinPlayer},
|
{"K_SpinPlayer",lib_kSpinPlayer},
|
||||||
{"K_SquishPlayer",lib_kSquishPlayer},
|
{"K_SquishPlayer",lib_kSquishPlayer},
|
||||||
{"K_ExplodePlayer",lib_kExplodePlayer},
|
{"K_ExplodePlayer",lib_kExplodePlayer},
|
||||||
{"K_StealBalloon",lib_kStealBalloon},
|
{"K_StealBumper",lib_kStealBumper},
|
||||||
{"K_SpawnKartExplosion",lib_kSpawnKartExplosion},
|
{"K_SpawnKartExplosion",lib_kSpawnKartExplosion},
|
||||||
{"K_SpawnBoostTrail",lib_kSpawnBoostTrail},
|
{"K_SpawnBoostTrail",lib_kSpawnBoostTrail},
|
||||||
{"K_SpawnSparkleTrail",lib_kSpawnSparkleTrail},
|
{"K_SpawnSparkleTrail",lib_kSpawnSparkleTrail},
|
||||||
|
|
|
@ -921,7 +921,7 @@ menuitem_t PlayerMenu[32] =
|
||||||
static menuitem_t MP_MainMenu[] =
|
static menuitem_t MP_MainMenu[] =
|
||||||
{
|
{
|
||||||
{IT_HEADER, NULL, "Player setup", NULL, 10},
|
{IT_HEADER, NULL, "Player setup", NULL, 10},
|
||||||
{IT_STRING|IT_CALL, NULL, "It's you!", M_SetupMultiPlayer, 20},
|
{IT_STRING|IT_CALL, NULL, "Select character & color...", M_SetupMultiPlayer, 20},
|
||||||
{IT_HEADER, NULL, "Host a game", NULL, 34},
|
{IT_HEADER, NULL, "Host a game", NULL, 34},
|
||||||
{IT_NETCALL, NULL, "Internet/LAN...", M_StartServerMenu, 44},
|
{IT_NETCALL, NULL, "Internet/LAN...", M_StartServerMenu, 44},
|
||||||
{IT_STRING|IT_CALL, NULL, "Splitscreen...", M_StartSplitServerMenu, 52},
|
{IT_STRING|IT_CALL, NULL, "Splitscreen...", M_StartSplitServerMenu, 52},
|
||||||
|
@ -1402,7 +1402,7 @@ static menuitem_t OP_EraseDataMenu[] =
|
||||||
|
|
||||||
static menuitem_t OP_HUDOptionsMenu[] =
|
static menuitem_t OP_HUDOptionsMenu[] =
|
||||||
{
|
{
|
||||||
{IT_STRING | IT_CVAR, NULL, "Show HUD", &cv_showhud, 10},
|
{IT_STRING | IT_CVAR, NULL, "Show HUD (F3)", &cv_showhud, 10},
|
||||||
{IT_STRING | IT_CVAR | IT_CV_SLIDER,
|
{IT_STRING | IT_CVAR | IT_CV_SLIDER,
|
||||||
NULL, "HUD Visibility", &cv_translucenthud, 20},
|
NULL, "HUD Visibility", &cv_translucenthud, 20},
|
||||||
|
|
||||||
|
@ -1429,7 +1429,7 @@ static menuitem_t OP_GameOptionsMenu[] =
|
||||||
{IT_STRING | IT_CVAR, NULL, "Exit Countdown Timer", &cv_countdowntime, 80},
|
{IT_STRING | IT_CVAR, NULL, "Exit Countdown Timer", &cv_countdowntime, 80},
|
||||||
|
|
||||||
//{IT_STRING | IT_CVAR, NULL, "Time Limit", &cv_timelimit, 100},
|
//{IT_STRING | IT_CVAR, NULL, "Time Limit", &cv_timelimit, 100},
|
||||||
{IT_STRING | IT_CVAR, NULL, "Starting Balloons", &cv_kartballoons, 100},
|
{IT_STRING | IT_CVAR, NULL, "Starting Bumpers", &cv_kartbumpers, 100},
|
||||||
{IT_STRING | IT_CVAR, NULL, "Karma Comeback", &cv_kartcomeback, 110},
|
{IT_STRING | IT_CVAR, NULL, "Karma Comeback", &cv_kartcomeback, 110},
|
||||||
|
|
||||||
{IT_STRING | IT_CVAR, NULL, "Force Character #", &cv_forceskin, 130},
|
{IT_STRING | IT_CVAR, NULL, "Force Character #", &cv_forceskin, 130},
|
||||||
|
@ -1485,7 +1485,7 @@ static menuitem_t OP_ServerOptionsMenu[] =
|
||||||
{IT_STRING | IT_CVAR, NULL, "Use Map Lap Counts", &cv_usemapnumlaps, 34},
|
{IT_STRING | IT_CVAR, NULL, "Use Map Lap Counts", &cv_usemapnumlaps, 34},
|
||||||
|
|
||||||
{IT_HEADER, NULL, "BATTLE", NULL, 50},
|
{IT_HEADER, NULL, "BATTLE", NULL, 50},
|
||||||
{IT_STRING | IT_CVAR, NULL, "Starting Balloons", &cv_kartballoons, 58},
|
{IT_STRING | IT_CVAR, NULL, "Starting Bumpers", &cv_kartbumpers, 58},
|
||||||
{IT_STRING | IT_CVAR, NULL, "Karma Comeback", &cv_kartcomeback, 66},
|
{IT_STRING | IT_CVAR, NULL, "Karma Comeback", &cv_kartcomeback, 66},
|
||||||
};*/
|
};*/
|
||||||
|
|
||||||
|
|
1
src/null
Normal file
1
src/null
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Press any key to continue . . .
|
|
@ -3922,7 +3922,7 @@ static inline boolean PIT_GrenadeRing(mobj_t *thing)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if (thing->player && (thing->player->kartstuff[k_hyudorotimer]
|
if (thing->player && (thing->player->kartstuff[k_hyudorotimer]
|
||||||
|| (G_BattleGametype() && thing->player && thing->player->kartstuff[k_balloon] <= 0 && thing->player->kartstuff[k_comebacktimer])))
|
|| (G_BattleGametype() && thing->player && thing->player->kartstuff[k_bumper] <= 0 && thing->player->kartstuff[k_comebacktimer])))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if ((gametype == GT_CTF || gametype == GT_TEAMMATCH)
|
if ((gametype == GT_CTF || gametype == GT_TEAMMATCH)
|
||||||
|
@ -8144,7 +8144,7 @@ void A_ItemPop(mobj_t *actor)
|
||||||
if (actor->info->deathsound)
|
if (actor->info->deathsound)
|
||||||
S_StartSound(remains, actor->info->deathsound);
|
S_StartSound(remains, actor->info->deathsound);
|
||||||
|
|
||||||
if (!(G_BattleGametype() && actor->target->player->kartstuff[k_balloon] <= 0))
|
if (!(G_BattleGametype() && actor->target->player->kartstuff[k_bumper] <= 0))
|
||||||
actor->target->player->kartstuff[k_itemroulette] = 1;
|
actor->target->player->kartstuff[k_itemroulette] = 1;
|
||||||
|
|
||||||
remains->flags2 &= ~MF2_AMBUSH;
|
remains->flags2 &= ~MF2_AMBUSH;
|
||||||
|
@ -8228,7 +8228,7 @@ void A_JawzChase(mobj_t *actor)
|
||||||
|
|
||||||
if (G_BattleGametype())
|
if (G_BattleGametype())
|
||||||
{
|
{
|
||||||
if (player->kartstuff[k_balloon] <= 0)
|
if (player->kartstuff[k_bumper] <= 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (P_AproxDistance(P_AproxDistance(player->mo->x-actor->x,
|
if (P_AproxDistance(P_AproxDistance(player->mo->x-actor->x,
|
||||||
|
@ -8240,7 +8240,7 @@ void A_JawzChase(mobj_t *actor)
|
||||||
if ((G_RaceGametype()) || (G_BattleGametype() // If in match etc. only home in when you get close enough, in race etc. home in all the time
|
if ((G_RaceGametype()) || (G_BattleGametype() // If in match etc. only home in when you get close enough, in race etc. home in all the time
|
||||||
&& P_AproxDistance(P_AproxDistance(player->mo->x-actor->x,
|
&& P_AproxDistance(P_AproxDistance(player->mo->x-actor->x,
|
||||||
player->mo->y-actor->y), player->mo->z-actor->z) < RING_DIST
|
player->mo->y-actor->y), player->mo->z-actor->z) < RING_DIST
|
||||||
&& player->kartstuff[k_balloon] > 0))
|
&& player->kartstuff[k_bumper] > 0))
|
||||||
P_SetTarget(&actor->tracer, player->mo);
|
P_SetTarget(&actor->tracer, player->mo);
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -8324,7 +8324,7 @@ void A_MineExplode(mobj_t *actor)
|
||||||
if (mo2 == actor || mo2->type == MT_MINEEXPLOSIONSOUND) // Don't explode yourself! Endless loop!
|
if (mo2 == actor || mo2->type == MT_MINEEXPLOSIONSOUND) // Don't explode yourself! Endless loop!
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (G_BattleGametype() && actor->target && actor->target->player && actor->target->player->kartstuff[k_balloon] <= 0 && mo2 == actor->target)
|
if (G_BattleGametype() && actor->target && actor->target->player && actor->target->player->kartstuff[k_bumper] <= 0 && mo2 == actor->target)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (P_AproxDistance(P_AproxDistance(mo2->x - actor->x, mo2->y - actor->y), mo2->z - actor->z) > actor->info->painchance)
|
if (P_AproxDistance(P_AproxDistance(mo2->x - actor->x, mo2->y - actor->y), mo2->z - actor->z) > actor->info->painchance)
|
||||||
|
|
|
@ -155,7 +155,7 @@ boolean P_CanPickupItem(player_t *player, boolean weapon)
|
||||||
if (player->exiting)
|
if (player->exiting)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
/*if (G_BattleGametype() && player->kartstuff[k_balloon] <= 0) // No balloons in Match
|
/*if (G_BattleGametype() && player->kartstuff[k_bumper] <= 0) // No bumpers in Match
|
||||||
return false;*/
|
return false;*/
|
||||||
|
|
||||||
if (weapon)
|
if (weapon)
|
||||||
|
@ -410,7 +410,7 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
|
||||||
if (!P_CanPickupItem(player, true))
|
if (!P_CanPickupItem(player, true))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (G_BattleGametype() && player->kartstuff[k_balloon] <= 0)
|
if (G_BattleGametype() && player->kartstuff[k_bumper] <= 0)
|
||||||
{
|
{
|
||||||
if (player->kartstuff[k_comebackmode] == 1 || player->kartstuff[k_comebacktimer])
|
if (player->kartstuff[k_comebackmode] == 1 || player->kartstuff[k_comebacktimer])
|
||||||
return;
|
return;
|
||||||
|
@ -427,7 +427,7 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
|
||||||
return;
|
return;
|
||||||
if (player == special->target->player)
|
if (player == special->target->player)
|
||||||
return;
|
return;
|
||||||
if (player->kartstuff[k_balloon] <= 0)
|
if (player->kartstuff[k_bumper] <= 0)
|
||||||
return;
|
return;
|
||||||
if (special->target->player->exiting || player->exiting)
|
if (special->target->player->exiting || player->exiting)
|
||||||
return;
|
return;
|
||||||
|
@ -459,7 +459,7 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
|
||||||
if (netgame && cv_hazardlog.value)
|
if (netgame && cv_hazardlog.value)
|
||||||
CONS_Printf(M_GetText("%s bombed %s!\n"), player_names[special->target->player-players], player_names[player-players]);
|
CONS_Printf(M_GetText("%s bombed %s!\n"), player_names[special->target->player-players], player_names[player-players]);
|
||||||
if (special->target->player->kartstuff[k_comebackpoints] >= 3)
|
if (special->target->player->kartstuff[k_comebackpoints] >= 3)
|
||||||
K_StealBalloon(special->target->player, player, true);
|
K_StealBumper(special->target->player, player, true);
|
||||||
special->target->player->kartstuff[k_comebacktimer] = comebacktime;
|
special->target->player->kartstuff[k_comebacktimer] = comebacktime;
|
||||||
|
|
||||||
K_ExplodePlayer(player, special->target);
|
K_ExplodePlayer(player, special->target);
|
||||||
|
@ -476,7 +476,7 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
|
||||||
if (netgame && cv_hazardlog.value)
|
if (netgame && cv_hazardlog.value)
|
||||||
CONS_Printf(M_GetText("%s gave an item to %s.\n"), player_names[special->target->player-players], player_names[player-players]);
|
CONS_Printf(M_GetText("%s gave an item to %s.\n"), player_names[special->target->player-players], player_names[player-players]);
|
||||||
if (special->target->player->kartstuff[k_comebackpoints] >= 3)
|
if (special->target->player->kartstuff[k_comebackpoints] >= 3)
|
||||||
K_StealBalloon(special->target->player, player, true);
|
K_StealBumper(special->target->player, player, true);
|
||||||
special->target->player->kartstuff[k_comebacktimer] = comebacktime;
|
special->target->player->kartstuff[k_comebacktimer] = comebacktime;
|
||||||
|
|
||||||
player->kartstuff[k_itemroulette] = 1;
|
player->kartstuff[k_itemroulette] = 1;
|
||||||
|
@ -2330,7 +2330,7 @@ void P_KillMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source)
|
||||||
}
|
}
|
||||||
else if (G_BattleGametype())
|
else if (G_BattleGametype())
|
||||||
{
|
{
|
||||||
K_CheckBalloons();
|
K_CheckBumpers();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2830,22 +2830,22 @@ static void P_KillPlayer(player_t *player, mobj_t *source, INT32 damage)
|
||||||
|
|
||||||
if (G_BattleGametype())
|
if (G_BattleGametype())
|
||||||
{
|
{
|
||||||
if (player->kartstuff[k_balloon] > 0)
|
if (player->kartstuff[k_bumper] > 0)
|
||||||
{
|
{
|
||||||
if (player->kartstuff[k_balloon] == 1)
|
if (player->kartstuff[k_bumper] == 1)
|
||||||
{
|
{
|
||||||
mobj_t *karmahitbox = P_SpawnMobj(player->mo->x, player->mo->y, player->mo->z, MT_KARMAHITBOX); // Player hitbox is too small!!
|
mobj_t *karmahitbox = P_SpawnMobj(player->mo->x, player->mo->y, player->mo->z, MT_KARMAHITBOX); // Player hitbox is too small!!
|
||||||
P_SetTarget(&karmahitbox->target, player->mo);
|
P_SetTarget(&karmahitbox->target, player->mo);
|
||||||
karmahitbox->destscale = player->mo->scale;
|
karmahitbox->destscale = player->mo->scale;
|
||||||
P_SetScale(karmahitbox, player->mo->scale);
|
P_SetScale(karmahitbox, player->mo->scale);
|
||||||
CONS_Printf(M_GetText("%s lost all of their balloons!\n"), player_names[player-players]);
|
CONS_Printf(M_GetText("%s lost all of their bumpers!\n"), player_names[player-players]);
|
||||||
if (K_IsPlayerWanted(player))
|
if (K_IsPlayerWanted(player))
|
||||||
K_CalculateBattleWanted();
|
K_CalculateBattleWanted();
|
||||||
}
|
}
|
||||||
player->kartstuff[k_balloon]--;
|
player->kartstuff[k_bumper]--;
|
||||||
}
|
}
|
||||||
|
|
||||||
K_CheckBalloons();
|
K_CheckBumpers();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
12
src/p_map.c
12
src/p_map.c
|
@ -1633,11 +1633,11 @@ static boolean PIT_CheckThing(mobj_t *thing)
|
||||||
if (thing->player->kartstuff[k_growshrinktimer] || thing->player->kartstuff[k_squishedtimer]
|
if (thing->player->kartstuff[k_growshrinktimer] || thing->player->kartstuff[k_squishedtimer]
|
||||||
|| thing->player->kartstuff[k_hyudorotimer] || thing->player->kartstuff[k_spinouttimer]
|
|| thing->player->kartstuff[k_hyudorotimer] || thing->player->kartstuff[k_spinouttimer]
|
||||||
|| thing->player->kartstuff[k_invincibilitytimer] || thing->player->kartstuff[k_justbumped]
|
|| thing->player->kartstuff[k_invincibilitytimer] || thing->player->kartstuff[k_justbumped]
|
||||||
|| (G_BattleGametype() && thing->player->kartstuff[k_balloon] <= 0)
|
|| (G_BattleGametype() && thing->player->kartstuff[k_bumper] <= 0)
|
||||||
|| tmthing->player->kartstuff[k_growshrinktimer] || tmthing->player->kartstuff[k_squishedtimer]
|
|| tmthing->player->kartstuff[k_growshrinktimer] || tmthing->player->kartstuff[k_squishedtimer]
|
||||||
|| tmthing->player->kartstuff[k_hyudorotimer] || tmthing->player->kartstuff[k_spinouttimer]
|
|| tmthing->player->kartstuff[k_hyudorotimer] || tmthing->player->kartstuff[k_spinouttimer]
|
||||||
|| tmthing->player->kartstuff[k_invincibilitytimer] || tmthing->player->kartstuff[k_justbumped]
|
|| tmthing->player->kartstuff[k_invincibilitytimer] || tmthing->player->kartstuff[k_justbumped]
|
||||||
|| (G_BattleGametype() && tmthing->player->kartstuff[k_balloon] <= 0))
|
|| (G_BattleGametype() && tmthing->player->kartstuff[k_bumper] <= 0))
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -1647,7 +1647,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
|
||||||
K_KartBouncing(tmthing, thing, true, false);
|
K_KartBouncing(tmthing, thing, true, false);
|
||||||
if (G_BattleGametype() && tmthing->player->kartstuff[k_pogospring])
|
if (G_BattleGametype() && tmthing->player->kartstuff[k_pogospring])
|
||||||
{
|
{
|
||||||
K_StealBalloon(tmthing->player, thing->player, false);
|
K_StealBumper(tmthing->player, thing->player, false);
|
||||||
K_SpinPlayer(thing->player, tmthing, 0, false);
|
K_SpinPlayer(thing->player, tmthing, 0, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1656,7 +1656,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
|
||||||
K_KartBouncing(thing, tmthing, true, false);
|
K_KartBouncing(thing, tmthing, true, false);
|
||||||
if (G_BattleGametype() && thing->player->kartstuff[k_pogospring])
|
if (G_BattleGametype() && thing->player->kartstuff[k_pogospring])
|
||||||
{
|
{
|
||||||
K_StealBalloon(thing->player, tmthing->player, false);
|
K_StealBumper(thing->player, tmthing->player, false);
|
||||||
K_SpinPlayer(tmthing->player, thing, 0, false);
|
K_SpinPlayer(tmthing->player, thing, 0, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1667,12 +1667,12 @@ static boolean PIT_CheckThing(mobj_t *thing)
|
||||||
{
|
{
|
||||||
if (thing->player->kartstuff[k_sneakertimer] && !(tmthing->player->kartstuff[k_sneakertimer]))
|
if (thing->player->kartstuff[k_sneakertimer] && !(tmthing->player->kartstuff[k_sneakertimer]))
|
||||||
{
|
{
|
||||||
K_StealBalloon(thing->player, tmthing->player, false);
|
K_StealBumper(thing->player, tmthing->player, false);
|
||||||
K_SpinPlayer(tmthing->player, thing, 0, false);
|
K_SpinPlayer(tmthing->player, thing, 0, false);
|
||||||
}
|
}
|
||||||
else if (tmthing->player->kartstuff[k_sneakertimer] && !(thing->player->kartstuff[k_sneakertimer]))
|
else if (tmthing->player->kartstuff[k_sneakertimer] && !(thing->player->kartstuff[k_sneakertimer]))
|
||||||
{
|
{
|
||||||
K_StealBalloon(tmthing->player, thing->player, false);
|
K_StealBumper(tmthing->player, thing->player, false);
|
||||||
K_SpinPlayer(thing->player, tmthing, 0, false);
|
K_SpinPlayer(thing->player, tmthing, 0, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
42
src/p_mobj.c
42
src/p_mobj.c
|
@ -6592,7 +6592,7 @@ void P_MobjThinker(mobj_t *mobj)
|
||||||
INT32 HEIGHT;
|
INT32 HEIGHT;
|
||||||
fixed_t radius;
|
fixed_t radius;
|
||||||
|
|
||||||
if (G_BattleGametype() && mobj->target->player->kartstuff[k_balloon] <= 0)
|
if (G_BattleGametype() && mobj->target->player->kartstuff[k_bumper] <= 0)
|
||||||
kartspeed = 1;
|
kartspeed = 1;
|
||||||
|
|
||||||
dsone = (26*4 + kartspeed*2 + (9 - mobj->target->player->kartweight))*8;
|
dsone = (26*4 + kartspeed*2 + (9 - mobj->target->player->kartweight))*8;
|
||||||
|
@ -6779,7 +6779,7 @@ void P_MobjThinker(mobj_t *mobj)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case MT_BATTLEBALLOON:
|
case MT_BATTLEBUMPER:
|
||||||
if (mobj->health > 0 && mobj->target && mobj->target->player
|
if (mobj->health > 0 && mobj->target && mobj->target->player
|
||||||
&& mobj->target->player->health > 0 && !mobj->target->player->spectator)
|
&& mobj->target->player->health > 0 && !mobj->target->player->spectator)
|
||||||
{
|
{
|
||||||
|
@ -6792,10 +6792,10 @@ void P_MobjThinker(mobj_t *mobj)
|
||||||
else
|
else
|
||||||
ang = FixedAngle(mobj->info->speed);
|
ang = FixedAngle(mobj->info->speed);
|
||||||
|
|
||||||
if (mobj->target->player->kartstuff[k_balloon] <= 1)
|
if (mobj->target->player->kartstuff[k_bumper] <= 1)
|
||||||
diff = 0;
|
diff = 0;
|
||||||
else
|
else
|
||||||
diff = FixedAngle(360*FRACUNIT/mobj->target->player->kartstuff[k_balloon]);
|
diff = FixedAngle(360*FRACUNIT/mobj->target->player->kartstuff[k_bumper]);
|
||||||
|
|
||||||
ang = (ang*leveltime) + (diff * (mobj->threshold-1));
|
ang = (ang*leveltime) + (diff * (mobj->threshold-1));
|
||||||
|
|
||||||
|
@ -6843,16 +6843,16 @@ void P_MobjThinker(mobj_t *mobj)
|
||||||
|
|
||||||
if (mobj->tracer && mobj->tracer->player && mobj->tracer->player->mo
|
if (mobj->tracer && mobj->tracer->player && mobj->tracer->player->mo
|
||||||
&& mobj->tracer->player->health > 0 && !mobj->tracer->player->spectator) // STOLEN
|
&& mobj->tracer->player->health > 0 && !mobj->tracer->player->spectator) // STOLEN
|
||||||
mobj->color = mobj->tracer->player->skincolor; // don't do star flashing for stolen balloons
|
mobj->color = mobj->tracer->player->skincolor; // don't do star flashing for stolen bumpers
|
||||||
else
|
else
|
||||||
mobj->color = mobj->target->color; // but do so if it belongs to you :B
|
mobj->color = mobj->target->color; // but do so if it belongs to you :B
|
||||||
|
|
||||||
if (mobj->target->player->kartstuff[k_balloon] < 2)
|
if (mobj->target->player->kartstuff[k_bumper] < 2)
|
||||||
P_SetMobjState(mobj, S_BATTLEBALLOON3);
|
P_SetMobjState(mobj, S_BATTLEBUMPER3);
|
||||||
else if (mobj->target->player->kartstuff[k_balloon] < 3)
|
else if (mobj->target->player->kartstuff[k_bumper] < 3)
|
||||||
P_SetMobjState(mobj, S_BATTLEBALLOON2);
|
P_SetMobjState(mobj, S_BATTLEBUMPER2);
|
||||||
else
|
else
|
||||||
P_SetMobjState(mobj, S_BATTLEBALLOON1);
|
P_SetMobjState(mobj, S_BATTLEBUMPER1);
|
||||||
|
|
||||||
// Shrink your items if the player shrunk too.
|
// Shrink your items if the player shrunk too.
|
||||||
mobj->scale = mobj->target->scale;
|
mobj->scale = mobj->target->scale;
|
||||||
|
@ -6867,7 +6867,7 @@ void P_MobjThinker(mobj_t *mobj)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Was this so hard?
|
// Was this so hard?
|
||||||
if (mobj->target->player->kartstuff[k_balloon] <= mobj->threshold)
|
if (mobj->target->player->kartstuff[k_bumper] <= mobj->threshold)
|
||||||
{
|
{
|
||||||
P_RemoveMobj(mobj);
|
P_RemoveMobj(mobj);
|
||||||
return;
|
return;
|
||||||
|
@ -6893,7 +6893,7 @@ void P_MobjThinker(mobj_t *mobj)
|
||||||
|
|
||||||
if (G_RaceGametype()
|
if (G_RaceGametype()
|
||||||
|| mobj->target->player == &players[displayplayer]
|
|| mobj->target->player == &players[displayplayer]
|
||||||
|| mobj->target->player->kartstuff[k_balloon] <= 0
|
|| mobj->target->player->kartstuff[k_bumper] <= 0
|
||||||
|| (mobj->target->player->mo->flags2 & MF2_DONTDRAW)
|
|| (mobj->target->player->mo->flags2 & MF2_DONTDRAW)
|
||||||
#if 1 // Set to 0 to test without needing to host
|
#if 1 // Set to 0 to test without needing to host
|
||||||
|| !netgame
|
|| !netgame
|
||||||
|
@ -8179,7 +8179,7 @@ void P_MobjThinker(mobj_t *mobj)
|
||||||
break;
|
break;
|
||||||
case MT_KARMAHITBOX:
|
case MT_KARMAHITBOX:
|
||||||
if (!mobj->target || !mobj->target->health || !mobj->target->player
|
if (!mobj->target || !mobj->target->health || !mobj->target->player
|
||||||
|| (G_RaceGametype() || mobj->target->player->kartstuff[k_balloon]))
|
|| (G_RaceGametype() || mobj->target->player->kartstuff[k_bumper]))
|
||||||
{
|
{
|
||||||
P_RemoveMobj(mobj);
|
P_RemoveMobj(mobj);
|
||||||
return;
|
return;
|
||||||
|
@ -9049,7 +9049,7 @@ mobj_t *P_SpawnMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype_t type)
|
||||||
case MT_BIGMACE: case MT_SMALLMACE:
|
case MT_BIGMACE: case MT_SMALLMACE:
|
||||||
case MT_FALLINGROCK:
|
case MT_FALLINGROCK:
|
||||||
//case MT_RANDOMITEM:
|
//case MT_RANDOMITEM:
|
||||||
case MT_BATTLEBALLOON:
|
case MT_BATTLEBUMPER:
|
||||||
case MT_BANANA: case MT_BANANA_SHIELD:
|
case MT_BANANA: case MT_BANANA_SHIELD:
|
||||||
case MT_FAKEITEM: case MT_FAKESHIELD:
|
case MT_FAKEITEM: case MT_FAKESHIELD:
|
||||||
case MT_GREENITEM: case MT_GREENSHIELD:
|
case MT_GREENITEM: case MT_GREENSHIELD:
|
||||||
|
@ -9905,7 +9905,7 @@ void P_SpawnPlayer(INT32 playernum)
|
||||||
pcount++;
|
pcount++;
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
if (p->kartstuff[k_balloon] > 0 || leveltime < 1/* || pcount <= 1*/)
|
if (p->kartstuff[k_bumper] > 0 || leveltime < 1/* || pcount <= 1*/)
|
||||||
{
|
{
|
||||||
INT32 i;
|
INT32 i;
|
||||||
angle_t newangle;
|
angle_t newangle;
|
||||||
|
@ -9915,20 +9915,20 @@ void P_SpawnPlayer(INT32 playernum)
|
||||||
mobj_t *mo;
|
mobj_t *mo;
|
||||||
|
|
||||||
if (leveltime < 1 && !p->spectator /*|| pcount <= 1*/) // Start of the map?
|
if (leveltime < 1 && !p->spectator /*|| pcount <= 1*/) // Start of the map?
|
||||||
p->kartstuff[k_balloon] = cv_kartballoons.value; // Reset those balloons!
|
p->kartstuff[k_bumper] = cv_kartbumpers.value; // Reset those bumpers!
|
||||||
|
|
||||||
if (p->kartstuff[k_balloon] <= 1)
|
if (p->kartstuff[k_bumper] <= 1)
|
||||||
diff = 0;
|
diff = 0;
|
||||||
else
|
else
|
||||||
diff = FixedAngle(360*FRACUNIT/p->kartstuff[k_balloon]);
|
diff = FixedAngle(360*FRACUNIT/p->kartstuff[k_bumper]);
|
||||||
|
|
||||||
newangle = mobj->angle;
|
newangle = mobj->angle;
|
||||||
newx = mobj->x + P_ReturnThrustX(mobj, newangle + ANGLE_180, 64*FRACUNIT);
|
newx = mobj->x + P_ReturnThrustX(mobj, newangle + ANGLE_180, 64*FRACUNIT);
|
||||||
newy = mobj->y + P_ReturnThrustY(mobj, newangle + ANGLE_180, 64*FRACUNIT);
|
newy = mobj->y + P_ReturnThrustY(mobj, newangle + ANGLE_180, 64*FRACUNIT);
|
||||||
|
|
||||||
for (i = 0; i < p->kartstuff[k_balloon]; i++)
|
for (i = 0; i < p->kartstuff[k_bumper]; i++)
|
||||||
{
|
{
|
||||||
mo = P_SpawnMobj(newx, newy, mobj->z, MT_BATTLEBALLOON);
|
mo = P_SpawnMobj(newx, newy, mobj->z, MT_BATTLEBUMPER);
|
||||||
mo->threshold = i;
|
mo->threshold = i;
|
||||||
P_SetTarget(&mo->target, mobj);
|
P_SetTarget(&mo->target, mobj);
|
||||||
mo->angle = (diff * (i-1));
|
mo->angle = (diff * (i-1));
|
||||||
|
@ -9939,7 +9939,7 @@ void P_SpawnPlayer(INT32 playernum)
|
||||||
mo->flags2 &= ~MF2_DONTDRAW;
|
mo->flags2 &= ~MF2_DONTDRAW;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (p->kartstuff[k_balloon] <= 0)
|
else if (p->kartstuff[k_bumper] <= 0)
|
||||||
{
|
{
|
||||||
mobj_t *karmahitbox = P_SpawnMobj(mobj->x, mobj->y, mobj->z, MT_KARMAHITBOX); // Player hitbox is too small!!
|
mobj_t *karmahitbox = P_SpawnMobj(mobj->x, mobj->y, mobj->z, MT_KARMAHITBOX); // Player hitbox is too small!!
|
||||||
P_SetTarget(&karmahitbox->target, mobj);
|
P_SetTarget(&karmahitbox->target, mobj);
|
||||||
|
|
|
@ -1134,7 +1134,7 @@ void P_RestoreMusic(player_t *player)
|
||||||
{
|
{
|
||||||
if (!playeringame[i] || players[i].spectator)
|
if (!playeringame[i] || players[i].spectator)
|
||||||
continue;
|
continue;
|
||||||
if (players[i].kartstuff[k_balloon] > player->kartstuff[k_balloon])
|
if (players[i].kartstuff[k_bumper] > player->kartstuff[k_bumper])
|
||||||
pos++;
|
pos++;
|
||||||
else if (players[i].score > player->score)
|
else if (players[i].score > player->score)
|
||||||
pos++;
|
pos++;
|
||||||
|
@ -1716,7 +1716,7 @@ void P_DoPlayerExit(player_t *player)
|
||||||
{
|
{
|
||||||
if (!playeringame[i] || players[i].spectator)
|
if (!playeringame[i] || players[i].spectator)
|
||||||
continue;
|
continue;
|
||||||
if (players[i].kartstuff[k_balloon] > player->kartstuff[k_balloon])
|
if (players[i].kartstuff[k_bumper] > player->kartstuff[k_bumper])
|
||||||
pos++;
|
pos++;
|
||||||
else if (players[i].score > player->score)
|
else if (players[i].score > player->score)
|
||||||
pos++;
|
pos++;
|
||||||
|
@ -9585,7 +9585,7 @@ void P_PlayerThink(player_t *player)
|
||||||
if (!(player->pflags & PF_NIGHTSMODE
|
if (!(player->pflags & PF_NIGHTSMODE
|
||||||
|| player->kartstuff[k_hyudorotimer] // SRB2kart - fixes Hyudoro not flashing when it should.
|
|| player->kartstuff[k_hyudorotimer] // SRB2kart - fixes Hyudoro not flashing when it should.
|
||||||
|| player->kartstuff[k_growshrinktimer] > 0 // Grow doesn't flash either.
|
|| player->kartstuff[k_growshrinktimer] > 0 // Grow doesn't flash either.
|
||||||
|| (G_BattleGametype() && player->kartstuff[k_balloon] <= 0 && player->kartstuff[k_comebacktimer])
|
|| (G_BattleGametype() && player->kartstuff[k_bumper] <= 0 && player->kartstuff[k_comebacktimer])
|
||||||
|| leveltime < starttime)) // Level intro
|
|| leveltime < starttime)) // Level intro
|
||||||
{
|
{
|
||||||
if (player->powers[pw_flashing] > 0 && player->powers[pw_flashing] < K_GetKartFlashing()
|
if (player->powers[pw_flashing] > 0 && player->powers[pw_flashing] < K_GetKartFlashing()
|
||||||
|
|
Loading…
Reference in a new issue