mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2025-01-31 05:20:51 +00:00
So much
- Renamed fucking everything - Threw out all of the item code because it looks at me funny
This commit is contained in:
parent
32b2818ab6
commit
cbff4bbf44
24 changed files with 1438 additions and 2584 deletions
|
@ -216,7 +216,7 @@ static CV_PossibleValue_t competitionboxes_cons_t[] = {{0, "Normal"}, {1, "Rando
|
||||||
static CV_PossibleValue_t matchboxes_cons_t[] = {{0, "Normal"}, {1, "Random"}, {2, "Non-Random"},
|
static CV_PossibleValue_t matchboxes_cons_t[] = {{0, "Normal"}, {1, "Random"}, {2, "Non-Random"},
|
||||||
{3, "None"}, {0, NULL}};
|
{3, "None"}, {0, NULL}};
|
||||||
|
|
||||||
static CV_PossibleValue_t chances_cons_t[] = {{0, "MIN"}, {9, "MAX"}, {0, NULL}};
|
//static CV_PossibleValue_t chances_cons_t[] = {{0, "MIN"}, {9, "MAX"}, {0, NULL}};
|
||||||
static CV_PossibleValue_t match_scoring_cons_t[] = {{0, "Normal"}, {1, "Classic"}, {0, NULL}};
|
static CV_PossibleValue_t match_scoring_cons_t[] = {{0, "Normal"}, {1, "Classic"}, {0, NULL}};
|
||||||
static CV_PossibleValue_t pause_cons_t[] = {{0, "Server"}, {1, "All"}, {0, NULL}};
|
static CV_PossibleValue_t pause_cons_t[] = {{0, "Server"}, {1, "All"}, {0, NULL}};
|
||||||
|
|
||||||
|
@ -311,7 +311,7 @@ consvar_t cv_matchboxes = {"matchboxes", "Normal", CV_NETVAR|CV_CHEAT, matchboxe
|
||||||
consvar_t cv_specialrings = {"specialrings", "On", CV_NETVAR, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_specialrings = {"specialrings", "On", CV_NETVAR, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
consvar_t cv_powerstones = {"powerstones", "On", CV_NETVAR, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_powerstones = {"powerstones", "On", CV_NETVAR, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
|
|
||||||
consvar_t cv_recycler = {"tv_recycler", "5", CV_NETVAR|CV_CHEAT, chances_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
/*consvar_t cv_recycler = {"tv_recycler", "5", CV_NETVAR|CV_CHEAT, chances_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
consvar_t cv_teleporters = {"tv_teleporter", "5", CV_NETVAR|CV_CHEAT, chances_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_teleporters = {"tv_teleporter", "5", CV_NETVAR|CV_CHEAT, chances_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
consvar_t cv_superring = {"tv_superring", "5", CV_NETVAR|CV_CHEAT, chances_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_superring = {"tv_superring", "5", CV_NETVAR|CV_CHEAT, chances_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
consvar_t cv_supersneakers = {"tv_supersneaker", "5", CV_NETVAR|CV_CHEAT, chances_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_supersneakers = {"tv_supersneaker", "5", CV_NETVAR|CV_CHEAT, chances_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
|
@ -322,30 +322,30 @@ consvar_t cv_ringshield = {"tv_ringshield", "5", CV_NETVAR|CV_CHEAT, chanc
|
||||||
consvar_t cv_forceshield = {"tv_forceshield", "5", CV_NETVAR|CV_CHEAT, chances_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_forceshield = {"tv_forceshield", "5", CV_NETVAR|CV_CHEAT, chances_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
consvar_t cv_bombshield = {"tv_bombshield", "5", CV_NETVAR|CV_CHEAT, chances_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_bombshield = {"tv_bombshield", "5", CV_NETVAR|CV_CHEAT, chances_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
consvar_t cv_1up = {"tv_1up", "5", CV_NETVAR|CV_CHEAT, chances_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_1up = {"tv_1up", "5", CV_NETVAR|CV_CHEAT, chances_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
consvar_t cv_eggmanbox = {"tv_eggman", "5", CV_NETVAR|CV_CHEAT, chances_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_eggmanbox = {"tv_eggman", "5", CV_NETVAR|CV_CHEAT, chances_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};*/
|
||||||
|
|
||||||
// SRB2kart
|
// SRB2kart
|
||||||
consvar_t cv_magnet = {"magnets", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
|
||||||
consvar_t cv_boo = {"boos", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_sneaker = {"sneaker", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
consvar_t cv_mushroom = {"mushrooms", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_rocketsneaker = {"rocketsneaker", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
consvar_t cv_triplemushroom = {"triplemushrooms", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_invincibility = {"invincibility", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
consvar_t cv_megashroom = {"megashrooms", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_banana = {"banana", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
consvar_t cv_goldshroom = {"goldshrooms", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_fakeitem = {"fakeitem", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
consvar_t cv_star = {"stars", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_orbinaut = {"orbinaut", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
consvar_t cv_triplebanana = {"triplebananas", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_jawz = {"jawz", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
consvar_t cv_fakeitem = {"fakeitems", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_mine = {"mine", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
consvar_t cv_banana = {"bananas", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_ballhog = {"ballhog", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
consvar_t cv_greenshell = {"greenshells", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_selfpropelledbomb = {"selfpropelledbomb", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
consvar_t cv_redshell = {"redshells", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_sizeup = {"sizeup", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
consvar_t cv_laserwisp = {"laserwisps", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_sizedown = {"sizedown", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
consvar_t cv_triplegreenshell = {"triplegreenshells", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_lightningshield = {"lightningshield", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
consvar_t cv_bobomb = {"bobombs", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_hyudoro = {"hyudoro", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
consvar_t cv_blueshell = {"blueshells", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_pogospring = {"pogospring", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
consvar_t cv_jaws = {"jaws", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
|
||||||
consvar_t cv_fireflower = {"fireflowers", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_triplesneaker = {"triplesneaker", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
consvar_t cv_tripleredshell = {"tripleredshells", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_triplebanana = {"triplebanana", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
consvar_t cv_lightning = {"lightning", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_tripleorbinaut = {"tripleorbinaut", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
consvar_t cv_feather = {"feathers", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_dualjawz = {"dualjawz", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
|
|
||||||
consvar_t cv_karthud = {"karthud", "Default", CV_SAVE|CV_CALL, karthud_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_karthud = {"karthud", "Default", CV_SAVE|CV_CALL, karthud_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
consvar_t cv_kartminimap = {"kartminimap", "Yes", CV_SAVE, CV_YesNo, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_kartminimap = {"kartminimap", "Yes", CV_SAVE, CV_YesNo, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
|
@ -361,6 +361,11 @@ consvar_t cv_kartmirror = {"kartmirror", "Off", CV_NETVAR|CV_CHEAT|CV_CALL|CV_NO
|
||||||
static CV_PossibleValue_t speedometer_cons_t[] = {{0, "Off"}, {1, "Kilometers"}, {2, "Miles"}, {3, "Fracunits"}, {0, NULL}};
|
static CV_PossibleValue_t speedometer_cons_t[] = {{0, "Off"}, {1, "Kilometers"}, {2, "Miles"}, {3, "Fracunits"}, {0, NULL}};
|
||||||
consvar_t cv_speedometer = {"speedometer", "Kilometers", CV_SAVE, speedometer_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; // use tics in display
|
consvar_t cv_speedometer = {"speedometer", "Kilometers", CV_SAVE, speedometer_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; // use tics in display
|
||||||
|
|
||||||
|
static CV_PossibleValue_t kartdebugitem_cons_t[] = {{-1, "MIN"}, {NUMKARTITEMS-1, "MAX"}, {0, NULL}};
|
||||||
|
consvar_t cv_kartdebugitem = {"kartdebugitem", "0", CV_NETVAR|CV_CHEAT, kartdebugitem_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
|
static CV_PossibleValue_t kartdebugamount_cons_t[] = {{1, "MIN"}, {255, "MAX"}, {0, NULL}};
|
||||||
|
consvar_t cv_kartdebugamount = {"kartdebugamount", "1", CV_NETVAR|CV_CHEAT, kartdebugamount_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
|
|
||||||
static CV_PossibleValue_t cv_collideminimum_cons_t[] = {{1, "MIN"}, {16384, "MAX"}, {0, NULL}};
|
static CV_PossibleValue_t cv_collideminimum_cons_t[] = {{1, "MIN"}, {16384, "MAX"}, {0, NULL}};
|
||||||
consvar_t cv_collideminimum = {"collide_minspeed", "25", CV_NETVAR, cv_collideminimum_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_collideminimum = {"collide_minspeed", "25", CV_NETVAR, cv_collideminimum_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
static CV_PossibleValue_t cv_collidesoundnum_cons_t[] = {{1, "MIN"}, {1208, "MAX"}, {0, NULL}};
|
static CV_PossibleValue_t cv_collidesoundnum_cons_t[] = {{1, "MIN"}, {1208, "MAX"}, {0, NULL}};
|
||||||
|
@ -595,7 +600,7 @@ void D_RegisterServerCommands(void)
|
||||||
CV_RegisterVar(&cv_competitionboxes);
|
CV_RegisterVar(&cv_competitionboxes);
|
||||||
CV_RegisterVar(&cv_matchboxes);
|
CV_RegisterVar(&cv_matchboxes);
|
||||||
|
|
||||||
CV_RegisterVar(&cv_recycler);
|
/*CV_RegisterVar(&cv_recycler);
|
||||||
CV_RegisterVar(&cv_teleporters);
|
CV_RegisterVar(&cv_teleporters);
|
||||||
CV_RegisterVar(&cv_superring);
|
CV_RegisterVar(&cv_superring);
|
||||||
CV_RegisterVar(&cv_supersneakers);
|
CV_RegisterVar(&cv_supersneakers);
|
||||||
|
@ -606,7 +611,7 @@ void D_RegisterServerCommands(void)
|
||||||
CV_RegisterVar(&cv_forceshield);
|
CV_RegisterVar(&cv_forceshield);
|
||||||
CV_RegisterVar(&cv_bombshield);
|
CV_RegisterVar(&cv_bombshield);
|
||||||
CV_RegisterVar(&cv_1up);
|
CV_RegisterVar(&cv_1up);
|
||||||
CV_RegisterVar(&cv_eggmanbox);
|
CV_RegisterVar(&cv_eggmanbox);*/
|
||||||
|
|
||||||
K_RegisterKartStuff(); // SRB2kart
|
K_RegisterKartStuff(); // SRB2kart
|
||||||
|
|
||||||
|
|
|
@ -103,17 +103,18 @@ extern consvar_t cv_pause;
|
||||||
|
|
||||||
extern consvar_t cv_restrictskinchange, cv_allowteamchange, cv_respawntime;
|
extern consvar_t cv_restrictskinchange, cv_allowteamchange, cv_respawntime;
|
||||||
|
|
||||||
extern consvar_t cv_teleporters, cv_superring, cv_supersneakers, cv_invincibility;
|
/*extern consvar_t cv_teleporters, cv_superring, cv_supersneakers, cv_invincibility;
|
||||||
extern consvar_t cv_jumpshield, cv_watershield, cv_ringshield, cv_forceshield, cv_bombshield;
|
extern consvar_t cv_jumpshield, cv_watershield, cv_ringshield, cv_forceshield, cv_bombshield;
|
||||||
extern consvar_t cv_1up, cv_eggmanbox;
|
extern consvar_t cv_1up, cv_eggmanbox;
|
||||||
extern consvar_t cv_recycler;
|
extern consvar_t cv_recycler;*/
|
||||||
|
|
||||||
// SRB2kart items
|
// SRB2kart items
|
||||||
extern consvar_t cv_magnet, cv_boo, cv_mushroom, cv_triplemushroom, cv_megashroom;
|
extern consvar_t cv_sneaker, cv_rocketsneaker, cv_invincibility, cv_banana;
|
||||||
extern consvar_t cv_goldshroom, cv_star, cv_triplebanana, cv_fakeitem, cv_banana;
|
extern consvar_t cv_fakeitem, cv_orbinaut, cv_jawz, cv_mine;
|
||||||
extern consvar_t cv_greenshell, cv_redshell, cv_laserwisp, cv_triplegreenshell, cv_bobomb;
|
extern consvar_t cv_ballhog, cv_selfpropelledbomb, cv_sizeup, cv_sizedown;
|
||||||
extern consvar_t cv_blueshell, cv_jaws, cv_fireflower, cv_tripleredshell, cv_lightning;
|
extern consvar_t cv_lightningshield, cv_hyudoro, cv_pogospring;
|
||||||
extern consvar_t cv_feather;
|
|
||||||
|
extern consvar_t cv_triplesneaker, cv_triplebanana, cv_tripleorbinaut, cv_dualjawz;
|
||||||
|
|
||||||
extern consvar_t cv_karthud;
|
extern consvar_t cv_karthud;
|
||||||
extern consvar_t cv_kartminimap;
|
extern consvar_t cv_kartminimap;
|
||||||
|
@ -129,6 +130,8 @@ extern consvar_t cv_speedometer;
|
||||||
extern consvar_t cv_collideminimum;
|
extern consvar_t cv_collideminimum;
|
||||||
extern consvar_t cv_collidesoundnum;
|
extern consvar_t cv_collidesoundnum;
|
||||||
extern consvar_t cv_collidesounds;
|
extern consvar_t cv_collidesounds;
|
||||||
|
|
||||||
|
extern consvar_t cv_kartdebugitem, cv_kartdebugamount;
|
||||||
//
|
//
|
||||||
|
|
||||||
extern consvar_t cv_itemfinder;
|
extern consvar_t cv_itemfinder;
|
||||||
|
|
|
@ -230,6 +230,38 @@ typedef enum
|
||||||
NUMPOWERS
|
NUMPOWERS
|
||||||
} powertype_t;
|
} powertype_t;
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
KITEM_SAD = -1,
|
||||||
|
KITEM_NONE = 0,
|
||||||
|
KITEM_SNEAKER,
|
||||||
|
KITEM_ROCKETSNEAKER,
|
||||||
|
KITEM_INVINCIBILITY,
|
||||||
|
KITEM_BANANA,
|
||||||
|
KITEM_FAKE,
|
||||||
|
KITEM_ORBINAUT,
|
||||||
|
KITEM_JAWZ,
|
||||||
|
KITEM_MINE,
|
||||||
|
KITEM_BALLHOG,
|
||||||
|
KITEM_SPB,
|
||||||
|
KITEM_SIZEUP,
|
||||||
|
KITEM_SIZEDOWN,
|
||||||
|
KITEM_LIGHTNINGSHIELD,
|
||||||
|
KITEM_HYUDORO,
|
||||||
|
KITEM_POGOSPRING,
|
||||||
|
KITEM_KITCHENSINK,
|
||||||
|
|
||||||
|
NUMKARTITEMS,
|
||||||
|
|
||||||
|
// Additional roulette numbers, only used for K_KartGetItemResult
|
||||||
|
KRITEM_TRIPLESNEAKER = NUMKARTITEMS,
|
||||||
|
KRITEM_TRIPLEBANANA,
|
||||||
|
KRITEM_TRIPLEORBINAUT,
|
||||||
|
KRITEM_DUALJAWZ,
|
||||||
|
|
||||||
|
NUMKARTRESULTS
|
||||||
|
} kartitems_t;
|
||||||
|
|
||||||
//{ SRB2kart - kartstuff
|
//{ SRB2kart - kartstuff
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
|
@ -249,7 +281,7 @@ typedef enum
|
||||||
k_sounds, // Used this to stop and then force music restores as it hits zero
|
k_sounds, // Used this to stop and then force music restores as it hits zero
|
||||||
|
|
||||||
k_boosting, // Determines if you're currently shroom-boosting
|
k_boosting, // Determines if you're currently shroom-boosting
|
||||||
k_floorboost, // Prevents Mushroom sounds for a breif duration when triggered by a floor panel
|
k_floorboost, // Prevents Sneaker sounds for a breif duration when triggered by a floor panel
|
||||||
k_spinout, // Separate confirmation to prevent endless wipeout loops
|
k_spinout, // Separate confirmation to prevent endless wipeout loops
|
||||||
k_spinouttype, // Determines whether to thrust forward or not while spinning out; 0 = move forwards, 1 = stay still
|
k_spinouttype, // Determines whether to thrust forward or not while spinning out; 0 = move forwards, 1 = stay still
|
||||||
|
|
||||||
|
@ -260,54 +292,32 @@ typedef enum
|
||||||
k_boostcharge, // Charge-up for boosting at the start of the race, or when Lakitu drops you
|
k_boostcharge, // Charge-up for boosting at the start of the race, or when Lakitu drops you
|
||||||
k_jmp, // In Mario Kart, letting go of the jump button stops the drift
|
k_jmp, // In Mario Kart, letting go of the jump button stops the drift
|
||||||
k_offroad, // In Super Mario Kart, going offroad has lee-way of about 1 second before you start losing speed
|
k_offroad, // In Super Mario Kart, going offroad has lee-way of about 1 second before you start losing speed
|
||||||
|
k_pogospring, // Pogo spring effect
|
||||||
|
|
||||||
k_itemroulette, // Used for the roulette when deciding what item to give you (was "pw_kartitem")
|
k_itemroulette, // Used for the roulette when deciding what item to give you (was "pw_kartitem")
|
||||||
k_itemclose, // Used to animate the item window closing (was "pw_psychic")
|
|
||||||
|
|
||||||
// Some items use timers for their duration or effects
|
// Some items use timers for their duration or effects
|
||||||
k_magnettimer, // Duration of Magnet's item-break and item box pull
|
k_attractiontimer, // Duration of Lightning Shield's item-break and item box pull
|
||||||
k_bootimer, // Duration of the boo offroad effect itself
|
k_hyudorotimer, // Duration of the Hyudoro offroad effect itself
|
||||||
k_bootaketimer, // You are stealing an item, this is your timer
|
k_stealingtimer, // You are stealing an item, this is your timer
|
||||||
k_boostolentimer, // You are being stolen from, this is your timer
|
k_stolentimer, // You are being stolen from, this is your timer
|
||||||
k_mushroomtimer, // Duration of the Mushroom Boost itself
|
k_sneakertimer, // Duration of the Sneaker Boost itself
|
||||||
k_growshrinktimer, // > 0 = Big, < 0 = small
|
k_growshrinktimer, // > 0 = Big, < 0 = small
|
||||||
k_squishedtimer, // Squished frame timer
|
k_squishedtimer, // Squished frame timer
|
||||||
k_goldshroomtimer, // Gold Mushroom duration timer
|
k_rocketsneakertimer, // Rocket Sneaker duration timer
|
||||||
k_startimer, // Invincibility timer
|
k_invincibilitytimer, // Invincibility timer
|
||||||
|
k_fakeitem, // Fake item held, separate from itemtype so it doesn't stop you from getting items
|
||||||
k_spinouttimer, // Spin-out from a banana peel or oil slick (was "pw_bananacam")
|
k_spinouttimer, // Spin-out from a banana peel or oil slick (was "pw_bananacam")
|
||||||
k_laserwisptimer, // The duration and relative angle of the laser
|
|
||||||
k_justbumped, // Prevent players from endlessly bumping into each other
|
k_justbumped, // Prevent players from endlessly bumping into each other
|
||||||
k_poweritemtimer, // Battle mode, how long before you're allowed another power item (Star, Megashroom)
|
k_poweritemtimer, // Battle mode, how long before you're allowed another power item (Invincibility, Size Up)
|
||||||
k_comebacktimer, // Battle mode, how long before you become a bomb after death
|
k_comebacktimer, // Battle mode, how long before you become a bomb after death
|
||||||
|
k_sadtimer, // How long you've been sad
|
||||||
|
|
||||||
// Each item needs its own power slot, for the HUD and held use
|
// Each item needs its own power slot, for the HUD and held use
|
||||||
// *** ADDING A NEW ITEM? ADD IT TO K_DoBooSteal PLEASE!! -Salt ***
|
// *** ADDING A NEW ITEM? ADD IT TO K_DoHyudoroSteal PLEASE!! -Salt ***
|
||||||
k_magnet, // 0x1 = Magnet in inventory
|
k_itemtype, // KITEM_ constant for item number
|
||||||
k_boo, // 0x1 = Boo in inventory
|
k_itemamount, // Amount of said item
|
||||||
k_mushroom, // 0x1 = 1 Mushroom in inventory, 0x2 = 2 Mushrooms in inventory
|
k_itemheld, // Are you holding an item? 1 = normal hold, 2 = rotation hold
|
||||||
// 0x4 = 3 Mushrooms in inventory
|
|
||||||
k_megashroom, // 0x1 = Mega Mushroom in inventory
|
|
||||||
k_goldshroom, // 0x1 = Gold Mushroom in inventory
|
|
||||||
k_star, // 0x1 = Star in inventory
|
|
||||||
k_triplebanana, // 0x1 = 1 Banana following, 0x2 = 2 Bananas following
|
|
||||||
// 0x4 = 3 Bananas following, 0x8 = Triple Banana in inventory
|
|
||||||
k_fakeitem, // 0x1 = Fake Item being held, 0x2 = Fake Item in inventory
|
|
||||||
k_banana, // 0x1 = Banana being held, 0x2 = Banana in inventory
|
|
||||||
k_greenshell, // 0x1 = Green Shell being held, 0x2 = Green Shell in inventory
|
|
||||||
k_redshell, // 0x1 = Red Shell being held, 0x2 = Red Shell in inventory
|
|
||||||
k_laserwisp, // 0x1 = Laser Wisp in inventory
|
|
||||||
k_triplegreenshell, // 0x1 = 1 Green Shell orbiting, 0x2 = 2 Green Shells orbiting
|
|
||||||
// 0x4 = 3 Green Shells orbiting, 0x8 = Triple Green Shell in inventory
|
|
||||||
k_bobomb, // 0x1 = Bob-omb being held, 0x2 = Bob-omb in inventory
|
|
||||||
k_blueshell, // 0x1 = Blue Shell in inventory
|
|
||||||
k_jaws, // 0x1 = 1 Jaws orbiting, 0x2 = 2 Jaws orbiting,
|
|
||||||
// 0x4 = 2x Jaws in inventory
|
|
||||||
k_fireflower, // 0x1 = Fire Flower in inventory
|
|
||||||
k_tripleredshell, // 0x1 = 1 Red Shell orbiting, 0x2 = 2 Red Shells orbiting
|
|
||||||
// 0x4 = 3 Red Shells orbiting, 0x8 = Triple Red Shell in inventory
|
|
||||||
k_lightning, // 0x1 = Lightning in inventory
|
|
||||||
k_feather, // 0x1 = Feather in inventory, 0x2 = Player is feather jumping
|
|
||||||
k_kitchensink, // 0x1 = Sink in inventory
|
|
||||||
|
|
||||||
// Battle Mode vars
|
// Battle Mode vars
|
||||||
k_balloon, // Number of balloons left
|
k_balloon, // Number of balloons left
|
||||||
|
|
142
src/dehacked.c
142
src/dehacked.c
|
@ -1822,8 +1822,8 @@ static actionpointer_t actionpointers[] =
|
||||||
{{A_RemoteAction}, "A_REMOTEACTION"},
|
{{A_RemoteAction}, "A_REMOTEACTION"},
|
||||||
{{A_ToggleFlameJet}, "A_TOGGLEFLAMEJET"},
|
{{A_ToggleFlameJet}, "A_TOGGLEFLAMEJET"},
|
||||||
{{A_ItemPop}, "A_ITEMPOP"}, // SRB2kart
|
{{A_ItemPop}, "A_ITEMPOP"}, // SRB2kart
|
||||||
{{A_RedShellChase}, "A_REDSHELLCHASE"}, // SRB2kart
|
{{A_JawzChase}, "A_JAWZCHASE"}, // SRB2kart
|
||||||
{{A_BobombExplode}, "A_BOBOMBEXPLODE"}, // SRB2kart
|
{{A_MineExplode}, "A_MINEEXPLODE"}, // SRB2kart
|
||||||
{{A_OrbitNights}, "A_ORBITNIGHTS"},
|
{{A_OrbitNights}, "A_ORBITNIGHTS"},
|
||||||
{{A_GhostMe}, "A_GHOSTME"},
|
{{A_GhostMe}, "A_GHOSTME"},
|
||||||
{{A_SetObjectState}, "A_SETOBJECTSTATE"},
|
{{A_SetObjectState}, "A_SETOBJECTSTATE"},
|
||||||
|
@ -6248,7 +6248,7 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
|
||||||
|
|
||||||
// Magnet Burst
|
// Magnet Burst
|
||||||
|
|
||||||
// Mushroom Fire Trail
|
// Sneaker Fire Trail
|
||||||
"S_KARTFIRE1",
|
"S_KARTFIRE1",
|
||||||
"S_KARTFIRE2",
|
"S_KARTFIRE2",
|
||||||
"S_KARTFIRE3",
|
"S_KARTFIRE3",
|
||||||
|
@ -6290,15 +6290,7 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
|
||||||
"S_BANANAITEM",
|
"S_BANANAITEM",
|
||||||
"S_DEADBANANA",
|
"S_DEADBANANA",
|
||||||
|
|
||||||
//{ Green Shell
|
//{ Orbinaut
|
||||||
"S_TRIPLEGREENSHIELD1",
|
|
||||||
"S_TRIPLEGREENSHIELD2",
|
|
||||||
"S_TRIPLEGREENSHIELD3",
|
|
||||||
"S_TRIPLEGREENSHIELD4",
|
|
||||||
"S_TRIPLEGREENSHIELD5",
|
|
||||||
"S_TRIPLEGREENSHIELD6",
|
|
||||||
"S_TRIPLEGREENSHIELD7",
|
|
||||||
"S_TRIPLEGREENSHIELD8",
|
|
||||||
"S_GREENSHIELD1",
|
"S_GREENSHIELD1",
|
||||||
"S_GREENSHIELD2",
|
"S_GREENSHIELD2",
|
||||||
"S_GREENSHIELD3",
|
"S_GREENSHIELD3",
|
||||||
|
@ -6317,15 +6309,7 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
|
||||||
"S_GREENITEM8",
|
"S_GREENITEM8",
|
||||||
"S_DEADGREEN",
|
"S_DEADGREEN",
|
||||||
//}
|
//}
|
||||||
//{ Red Shell
|
//{ Jawz
|
||||||
"S_TRIPLEREDSHIELD1",
|
|
||||||
"S_TRIPLEREDSHIELD2",
|
|
||||||
"S_TRIPLEREDSHIELD3",
|
|
||||||
"S_TRIPLEREDSHIELD4",
|
|
||||||
"S_TRIPLEREDSHIELD5",
|
|
||||||
"S_TRIPLEREDSHIELD6",
|
|
||||||
"S_TRIPLEREDSHIELD7",
|
|
||||||
"S_TRIPLEREDSHIELD8",
|
|
||||||
"S_REDSHIELD1",
|
"S_REDSHIELD1",
|
||||||
"S_REDSHIELD2",
|
"S_REDSHIELD2",
|
||||||
"S_REDSHIELD3",
|
"S_REDSHIELD3",
|
||||||
|
@ -6355,20 +6339,38 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
|
||||||
"S_FIRETRAIL8",
|
"S_FIRETRAIL8",
|
||||||
"S_FIRETRAIL9",
|
"S_FIRETRAIL9",
|
||||||
|
|
||||||
// Bob-omb
|
// Special Stage Mine
|
||||||
"S_BOMBSHIELD",
|
"S_BOMBSHIELD1",
|
||||||
"S_BOMBITEM",
|
"S_BOMBSHIELD2",
|
||||||
"S_BOMBAIR",
|
"S_BOMBAIR1",
|
||||||
|
"S_BOMBAIR2",
|
||||||
|
"S_BOMBDEPLOY1",
|
||||||
|
"S_BOMBDEPLOY2",
|
||||||
|
"S_BOMBDEPLOY3",
|
||||||
|
"S_BOMBDEPLOY4",
|
||||||
|
"S_BOMBDEPLOY5",
|
||||||
|
"S_BOMBDEPLOY6",
|
||||||
|
"S_BOMBDEPLOY7",
|
||||||
|
"S_BOMBDEPLOY8",
|
||||||
|
"S_BOMBDEPLOY9",
|
||||||
|
"S_BOMBDEPLOY10",
|
||||||
|
"S_BOMBDEPLOY11",
|
||||||
|
"S_BOMBDEPLOY12",
|
||||||
|
"S_BOMBDEPLOY13",
|
||||||
|
"S_BOMBITEM1",
|
||||||
|
"S_BOMBITEM2",
|
||||||
|
"S_BOMBITEM3",
|
||||||
|
"S_BOMBITEM4",
|
||||||
"S_BOMBEXPLODE",
|
"S_BOMBEXPLODE",
|
||||||
|
|
||||||
// Blue Shell - Blue Lightning for now...
|
// Self-Propelled Bomb - just an explosion for now...
|
||||||
"S_BLUELIGHTNING1",
|
"S_BLUELIGHTNING1",
|
||||||
"S_BLUELIGHTNING2",
|
"S_BLUELIGHTNING2",
|
||||||
"S_BLUELIGHTNING3",
|
"S_BLUELIGHTNING3",
|
||||||
"S_BLUELIGHTNING4",
|
"S_BLUELIGHTNING4",
|
||||||
"S_BLUEEXPLODE",
|
"S_BLUEEXPLODE",
|
||||||
|
|
||||||
// Lightning
|
// Size Down
|
||||||
"S_LIGHTNING1",
|
"S_LIGHTNING1",
|
||||||
"S_LIGHTNING2",
|
"S_LIGHTNING2",
|
||||||
"S_LIGHTNING3",
|
"S_LIGHTNING3",
|
||||||
|
@ -6420,20 +6422,17 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
|
||||||
"S_FIREDITEM4",
|
"S_FIREDITEM4",
|
||||||
|
|
||||||
"S_PLAYERARROW", // Above player arrow
|
"S_PLAYERARROW", // Above player arrow
|
||||||
"S_PLAYERARROW_MUSHROOM",
|
"S_PLAYERARROW_SNEAKER",
|
||||||
"S_PLAYERARROW_GREENSHELL",
|
|
||||||
"S_PLAYERARROW_BANANA",
|
"S_PLAYERARROW_BANANA",
|
||||||
"S_PLAYERARROW_FAKEITEM",
|
"S_PLAYERARROW_FAKEITEM",
|
||||||
"S_PLAYERARROW_BOO",
|
"S_PLAYERARROW_HYUDORO",
|
||||||
"S_PLAYERARROW_FEATHER",
|
"S_PLAYERARROW_POGOSPRING",
|
||||||
"S_PLAYERARROW_REDSHELL",
|
"S_PLAYERARROW_JAWZ",
|
||||||
"S_PLAYERARROW_BOBOMB",
|
"S_PLAYERARROW_MINE",
|
||||||
"S_PLAYERARROW_FIREFLOWER",
|
"S_PLAYERARROW_BALLHOG",
|
||||||
"S_PLAYERARROW_TRIPLEGREENSHELL",
|
"S_PLAYERARROW_ORBINAUT",
|
||||||
"S_PLAYERARROW_TRIPLEBANANA",
|
"S_PLAYERARROW_INVINCIBILITY",
|
||||||
"S_PLAYERARROW_TRIPLEREDSHELL",
|
"S_PLAYERARROW_SIZEUP",
|
||||||
"S_PLAYERARROW_STAR",
|
|
||||||
"S_PLAYERARROW_MEGASHROOM",
|
|
||||||
"S_PLAYERARROW_KITCHENSINK",
|
"S_PLAYERARROW_KITCHENSINK",
|
||||||
"S_PLAYERARROW_EMPTY",
|
"S_PLAYERARROW_EMPTY",
|
||||||
"S_PLAYERARROW_ROULETTE",
|
"S_PLAYERARROW_ROULETTE",
|
||||||
|
@ -6959,39 +6958,31 @@ static const char *const MOBJTYPE_LIST[] = { // array length left dynamic for s
|
||||||
"MT_FLINGRANDOMITEM",
|
"MT_FLINGRANDOMITEM",
|
||||||
"MT_RANDOMITEMPOP",
|
"MT_RANDOMITEMPOP",
|
||||||
|
|
||||||
"MT_MUSHROOMTRAIL",
|
"MT_SNEAKERTRAIL",
|
||||||
"MT_DRIFT",
|
"MT_DRIFT",
|
||||||
"MT_DRIFTSMOKE",
|
"MT_DRIFTSMOKE",
|
||||||
|
|
||||||
"MT_FAKESHIELD",
|
"MT_FAKESHIELD",
|
||||||
"MT_FAKEITEM",
|
"MT_FAKEITEM",
|
||||||
|
|
||||||
"MT_TRIPLEBANANASHIELD1", // Banana Stuff
|
|
||||||
"MT_TRIPLEBANANASHIELD2",
|
"MT_BANANASHIELD", // Banana Stuff
|
||||||
"MT_TRIPLEBANANASHIELD3",
|
|
||||||
"MT_BANANASHIELD",
|
|
||||||
"MT_BANANAITEM",
|
"MT_BANANAITEM",
|
||||||
|
|
||||||
"MT_TRIPLEGREENSHIELD1", // Green shell stuff
|
"MT_GREENSHIELD", // Orbinaut stuff
|
||||||
"MT_TRIPLEGREENSHIELD2",
|
|
||||||
"MT_TRIPLEGREENSHIELD3",
|
|
||||||
"MT_GREENSHIELD",
|
|
||||||
"MT_GREENITEM",
|
"MT_GREENITEM",
|
||||||
"MT_FIRETRAIL",
|
"MT_FIRETRAIL",
|
||||||
|
|
||||||
"MT_TRIPLEREDSHIELD1", // Red shell stuff
|
"MT_REDSHIELD", // Jawz stuff
|
||||||
"MT_TRIPLEREDSHIELD2",
|
|
||||||
"MT_TRIPLEREDSHIELD3",
|
|
||||||
"MT_REDSHIELD",
|
|
||||||
"MT_REDITEM",
|
"MT_REDITEM",
|
||||||
"MT_REDITEMDUD",
|
"MT_REDITEMDUD",
|
||||||
|
|
||||||
"MT_BOMBSHIELD", // Bob-omb stuff
|
"MT_BOMBSHIELD", // Special Stage Mine stuff
|
||||||
"MT_BOMBITEM",
|
"MT_BOMBITEM",
|
||||||
"MT_BOMBEXPLOSION",
|
"MT_BOMBEXPLOSION",
|
||||||
"MT_BOMBEXPLOSIONSOUND",
|
"MT_BOMBEXPLOSIONSOUND",
|
||||||
|
|
||||||
"MT_BLUELIGHTNING", // Lightning stuff
|
"MT_BLUELIGHTNING", // Size Down stuff
|
||||||
"MT_BLUEEXPLOSION",
|
"MT_BLUEEXPLOSION",
|
||||||
"MT_LIGHTNING",
|
"MT_LIGHTNING",
|
||||||
|
|
||||||
|
@ -7338,7 +7329,6 @@ static const char *const KARTSTUFF_LIST[] = {
|
||||||
"LAKITU",
|
"LAKITU",
|
||||||
|
|
||||||
"THROWDIR",
|
"THROWDIR",
|
||||||
"CAMSPIN",
|
|
||||||
"LAPANIMATION",
|
"LAPANIMATION",
|
||||||
"CARDANIMATION",
|
"CARDANIMATION",
|
||||||
"SOUNDS",
|
"SOUNDS",
|
||||||
|
@ -7355,46 +7345,28 @@ static const char *const KARTSTUFF_LIST[] = {
|
||||||
"BOOSTCHARGE",
|
"BOOSTCHARGE",
|
||||||
"JMP",
|
"JMP",
|
||||||
"OFFROAD",
|
"OFFROAD",
|
||||||
|
"POGOSPRING",
|
||||||
|
|
||||||
"ITEMROULETTE",
|
"ITEMROULETTE",
|
||||||
"ITEMCLOSE",
|
|
||||||
|
|
||||||
"MAGNETTIMER",
|
"ATTRACTIONTIMER",
|
||||||
"BOOTIMER",
|
"HYUDOROTIMER",
|
||||||
"BOOTAKETIMER",
|
"STEALINGTIMER",
|
||||||
"BOOSTOLENTIMER",
|
"STOLENTIMER",
|
||||||
"MUSHROOMTIMER",
|
"SNEAKERTIMER",
|
||||||
"GROWSHRINKTIMER",
|
"GROWSHRINKTIMER",
|
||||||
"SQUISHEDTIMER",
|
"SQUISHEDTIMER",
|
||||||
"GOLDSHROOMTIMER",
|
"ROCKETSNEAKERTIMER",
|
||||||
"STARTIMER",
|
"INVINCIBILITYTIMER",
|
||||||
"SPINOUTTIMER",
|
"SPINOUTTIMER",
|
||||||
"LASERWISPTIMER",
|
|
||||||
"JUSTBUMPED",
|
"JUSTBUMPED",
|
||||||
"POWERITEMTIMER",
|
"POWERITEMTIMER",
|
||||||
"COMEBACKTIMER",
|
"COMEBACKTIMER",
|
||||||
|
"SADTIMER",
|
||||||
|
|
||||||
"MAGNET",
|
"ITEMTYPE",
|
||||||
"BOO",
|
"ITEMAMOUNT",
|
||||||
"MUSHROOM",
|
"ITEMHELD",
|
||||||
"MEGASHROOM",
|
|
||||||
"GOLDSHROOM",
|
|
||||||
"STAR",
|
|
||||||
"TRIPLEBANANA",
|
|
||||||
"FAKEITEM",
|
|
||||||
"BANANA",
|
|
||||||
"GREENSHELL",
|
|
||||||
"REDSHELL",
|
|
||||||
"LASERWISP",
|
|
||||||
"TRIPLEGREENSHELL",
|
|
||||||
"BOBOMB",
|
|
||||||
"BLUESHELL",
|
|
||||||
"JAWS",
|
|
||||||
"FIREFLOWER",
|
|
||||||
"TRIPLEREDSHELL",
|
|
||||||
"LIGHTNING",
|
|
||||||
"FEATHER",
|
|
||||||
"KITCHENSINK",
|
|
||||||
|
|
||||||
"BALLOON",
|
"BALLOON",
|
||||||
"COMEBACKPOINTS",
|
"COMEBACKPOINTS",
|
||||||
|
|
|
@ -409,9 +409,9 @@ extern UINT16 spacetimetics;
|
||||||
extern UINT16 extralifetics;
|
extern UINT16 extralifetics;
|
||||||
|
|
||||||
// SRB2kart
|
// SRB2kart
|
||||||
extern INT32 bootime;
|
extern INT32 hyudorotime;
|
||||||
extern INT32 boostealtime;
|
extern INT32 stealtime;
|
||||||
extern INT32 mushroomtime;
|
extern INT32 sneakertime;
|
||||||
extern INT32 itemtime;
|
extern INT32 itemtime;
|
||||||
extern INT32 comebacktime;
|
extern INT32 comebacktime;
|
||||||
extern INT32 bumptime;
|
extern INT32 bumptime;
|
||||||
|
|
|
@ -206,9 +206,9 @@ UINT16 spacetimetics = 11*TICRATE + (TICRATE/2);
|
||||||
UINT16 extralifetics = 4*TICRATE;
|
UINT16 extralifetics = 4*TICRATE;
|
||||||
|
|
||||||
// SRB2kart
|
// SRB2kart
|
||||||
INT32 bootime = 7*TICRATE;
|
INT32 hyudorotime = 7*TICRATE;
|
||||||
INT32 boostealtime = TICRATE/2;
|
INT32 stealtime = TICRATE/2;
|
||||||
INT32 mushroomtime = TICRATE + (TICRATE/3);
|
INT32 sneakertime = TICRATE + (TICRATE/3);
|
||||||
INT32 itemtime = 8*TICRATE;
|
INT32 itemtime = 8*TICRATE;
|
||||||
INT32 comebacktime = 10*TICRATE;
|
INT32 comebacktime = 10*TICRATE;
|
||||||
INT32 bumptime = 6;
|
INT32 bumptime = 6;
|
||||||
|
@ -1379,7 +1379,7 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics, UINT8 ssplayer)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// forward with key or button // SRB2kart - we use an accel/brake instead of forward/backward.
|
// forward with key or button // SRB2kart - we use an accel/brake instead of forward/backward.
|
||||||
if (InputDown(gc_accelerate, ssplayer) || player->kartstuff[k_mushroomtimer])
|
if (InputDown(gc_accelerate, ssplayer) || player->kartstuff[k_sneakertimer])
|
||||||
{
|
{
|
||||||
cmd->buttons |= BT_ACCELERATE;
|
cmd->buttons |= BT_ACCELERATE;
|
||||||
forward = forwardmove[1]; // 50
|
forward = forwardmove[1]; // 50
|
||||||
|
|
|
@ -499,23 +499,46 @@ light_t *t_lspr[NUMSPRITES] =
|
||||||
|
|
||||||
&lspr[NOLIGHT], //"SPRG",
|
&lspr[NOLIGHT], //"SPRG",
|
||||||
&lspr[NOLIGHT], //"BSPR",
|
&lspr[NOLIGHT], //"BSPR",
|
||||||
|
|
||||||
&lspr[NOLIGHT], //"RNDM",
|
&lspr[NOLIGHT], //"RNDM",
|
||||||
&lspr[NOLIGHT], //"SPRK",
|
|
||||||
&lspr[NOLIGHT], //"KFRE",
|
&lspr[NOLIGHT], //"KFRE",
|
||||||
&lspr[NOLIGHT], //"DRIF",
|
&lspr[NOLIGHT], //"DRIF",
|
||||||
&lspr[NOLIGHT], //"FAKE",
|
&lspr[NOLIGHT], //"DSMO",
|
||||||
&lspr[NOLIGHT], //"DFAK",
|
|
||||||
|
&lspr[NOLIGHT], //"FITM",
|
||||||
&lspr[NOLIGHT], //"BANA",
|
&lspr[NOLIGHT], //"BANA",
|
||||||
&lspr[NOLIGHT], //"DBAN",
|
|
||||||
&lspr[NOLIGHT], //"GSHE",
|
&lspr[NOLIGHT], //"GSHE",
|
||||||
&lspr[NOLIGHT], //"GSTR",
|
|
||||||
&lspr[NOLIGHT], //"DGSH",
|
|
||||||
&lspr[NOLIGHT], //"RSHE",
|
&lspr[NOLIGHT], //"RSHE",
|
||||||
&lspr[NOLIGHT], //"RSTR",
|
&lspr[NOLIGHT], //"SSMN",
|
||||||
&lspr[NOLIGHT], //"DRSH",
|
|
||||||
&lspr[NOLIGHT], //"BOMB",
|
|
||||||
&lspr[NOLIGHT], //"BLIG",
|
&lspr[NOLIGHT], //"BLIG",
|
||||||
&lspr[NOLIGHT], //"LIGH"
|
&lspr[NOLIGHT], //"LIGH",
|
||||||
|
&lspr[NOLIGHT], //"SINK",
|
||||||
|
&lspr[NOLIGHT], //"SITR",
|
||||||
|
&lspr[NOLIGHT], //"KBLN",
|
||||||
|
|
||||||
|
&lspr[NOLIGHT], //"LAKI",
|
||||||
|
|
||||||
|
&lspr[NOLIGHT], //"POKE",
|
||||||
|
&lspr[NOLIGHT], //"AUDI",
|
||||||
|
&lspr[NOLIGHT], //"DECO",
|
||||||
|
&lspr[NOLIGHT], //"DOOD",
|
||||||
|
&lspr[NOLIGHT], //"SNES",
|
||||||
|
&lspr[NOLIGHT], //"GBAS",
|
||||||
|
&lspr[NOLIGHT], //"SPRS",
|
||||||
|
&lspr[NOLIGHT], //"BUZB",
|
||||||
|
&lspr[NOLIGHT], //"CHOM",
|
||||||
|
&lspr[NOLIGHT], //"SACO",
|
||||||
|
&lspr[NOLIGHT], //"CRAB",
|
||||||
|
&lspr[NOLIGHT], //"SHAD",
|
||||||
|
|
||||||
|
&lspr[NOLIGHT], //"BUMP",
|
||||||
|
&lspr[NOLIGHT], //"FLEN",
|
||||||
|
&lspr[NOLIGHT], //"CLAS",
|
||||||
|
&lspr[NOLIGHT], //"PSHW",
|
||||||
|
|
||||||
|
&lspr[NOLIGHT], //"ARRO",
|
||||||
|
|
||||||
|
&lspr[NOLIGHT], //"PBOM"
|
||||||
|
|
||||||
// Free slots
|
// Free slots
|
||||||
&lspr[NOLIGHT],
|
&lspr[NOLIGHT],
|
||||||
|
|
|
@ -5276,8 +5276,8 @@ static void HWR_ProjectSprite(mobj_t *thing)
|
||||||
// New colormap stuff for skins Tails 06-07-2002
|
// New colormap stuff for skins Tails 06-07-2002
|
||||||
if (thing->skin && thing->sprite == SPR_PLAY) // This thing is a player!
|
if (thing->skin && thing->sprite == SPR_PLAY) // This thing is a player!
|
||||||
{
|
{
|
||||||
if (thing->player && thing->player->kartstuff[k_startimer])
|
if (thing->player && thing->player->kartstuff[k_invincibilitytimer])
|
||||||
vis->colormap = R_GetTranslationColormap(TC_STARMAN, thing->color, GTC_CACHE);
|
vis->colormap = R_GetTranslationColormap(TC_RAINBOW, thing->color, GTC_CACHE);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
size_t skinnum = (skin_t*)thing->skin-skins;
|
size_t skinnum = (skin_t*)thing->skin-skins;
|
||||||
|
|
362
src/info.c
362
src/info.c
|
@ -55,10 +55,10 @@ char sprnames[NUMSPRITES + 1][5] =
|
||||||
"GWLR","SRBA","SRBB","SRBC","SRBD","SRBE","SRBF","SRBG","SRBH","SRBI",
|
"GWLR","SRBA","SRBB","SRBC","SRBD","SRBE","SRBF","SRBG","SRBH","SRBI",
|
||||||
"SRBJ","SRBK","SRBL","SRBM","SRBN","SRBO",
|
"SRBJ","SRBK","SRBL","SRBM","SRBN","SRBO",
|
||||||
//SRB2kart Sprites
|
//SRB2kart Sprites
|
||||||
"SPRG","BSPR","RNDM","RPOP","KFRE","DRIF","DSMO","FITM","DFAK","BANA",
|
"SPRG","BSPR","RNDM","KFRE","DRIF","DSMO","FITM","BANA","GSHE","RSHE",
|
||||||
"DBAN","GSHE","DGSH","RSHE","DRSH","BOMB","BLIG","LIGH","SINK","SITR",
|
"SSMN","BLIG","LIGH","SINK","SITR","KBLN","LAKI","POKE","AUDI","DECO",
|
||||||
"KBLN","LAKI","POKE","AUDI","DECO","DOOD","SNES","GBAS","SPRS","BUZB",
|
"DOOD","SNES","GBAS","SPRS","BUZB","CHOM","SACO","CRAB","SHAD","BUMP",
|
||||||
"CHOM","SACO","CRAB","SHAD","BUMP","FLEN","CLAS","PSHW","ARRO","PBOM"
|
"FLEN","CLAS","PSHW","ARRO","PBOM"
|
||||||
};
|
};
|
||||||
|
|
||||||
// Doesn't work with g++, needs actionf_p1 (don't modify this comment)
|
// Doesn't work with g++, needs actionf_p1 (don't modify this comment)
|
||||||
|
@ -2565,10 +2565,10 @@ state_t states[NUMSTATES] =
|
||||||
{SPR_RNDM, 23, 3, {NULL}, 0, 0, S_RANDOMITEM1}, // S_RANDOMITEM24
|
{SPR_RNDM, 23, 3, {NULL}, 0, 0, S_RANDOMITEM1}, // S_RANDOMITEM24
|
||||||
{SPR_RNDM, 0, 1, {A_ItemPop}, 0, 0, S_NULL}, // S_DEADRANDOMITEM
|
{SPR_RNDM, 0, 1, {A_ItemPop}, 0, 0, S_NULL}, // S_DEADRANDOMITEM
|
||||||
|
|
||||||
{SPR_RPOP, FF_FULLBRIGHT, 5, {NULL}, 0, 0, S_RANDOMITEMPOP2}, // S_RANDOMITEMPOP1
|
{SPR_RNDM, FF_FULLBRIGHT|24, 5, {NULL}, 0, 0, S_RANDOMITEMPOP2}, // S_RANDOMITEMPOP1
|
||||||
{SPR_RPOP, FF_FULLBRIGHT|1, 5, {NULL}, 0, 0, S_RANDOMITEMPOP3}, // S_RANDOMITEMPOP2
|
{SPR_RNDM, FF_FULLBRIGHT|25, 5, {NULL}, 0, 0, S_RANDOMITEMPOP3}, // S_RANDOMITEMPOP2
|
||||||
{SPR_RPOP, FF_FULLBRIGHT|2, 5, {NULL}, 0, 0, S_RANDOMITEMPOP4}, // S_RANDOMITEMPOP3
|
{SPR_RNDM, FF_FULLBRIGHT|26, 5, {NULL}, 0, 0, S_RANDOMITEMPOP4}, // S_RANDOMITEMPOP3
|
||||||
{SPR_RPOP, FF_FULLBRIGHT|3, 5, {NULL}, 0, 0, S_NULL}, // S_RANDOMITEMPOP4
|
{SPR_RNDM, FF_FULLBRIGHT|27, 5, {NULL}, 0, 0, S_NULL}, // S_RANDOMITEMPOP4
|
||||||
|
|
||||||
{SPR_DRIF, 0, 2, {NULL}, 0, 0, S_DRIFTSPARK2}, // S_DRIFTSPARK1
|
{SPR_DRIF, 0, 2, {NULL}, 0, 0, S_DRIFTSPARK2}, // S_DRIFTSPARK1
|
||||||
{SPR_DRIF, 1, 2, {NULL}, 0, 0, S_DRIFTSPARK3}, // S_DRIFTSPARK2
|
{SPR_DRIF, 1, 2, {NULL}, 0, 0, S_DRIFTSPARK3}, // S_DRIFTSPARK2
|
||||||
|
@ -2616,19 +2616,11 @@ state_t states[NUMSTATES] =
|
||||||
{SPR_FITM, 21, 3, {NULL}, 0, 0, S_FAKEITEM23}, // S_FAKEITEM22 // *****
|
{SPR_FITM, 21, 3, {NULL}, 0, 0, S_FAKEITEM23}, // S_FAKEITEM22 // *****
|
||||||
{SPR_FITM, 22, 3, {NULL}, 0, 0, S_FAKEITEM24}, // S_FAKEITEM23 // *****
|
{SPR_FITM, 22, 3, {NULL}, 0, 0, S_FAKEITEM24}, // S_FAKEITEM23 // *****
|
||||||
{SPR_FITM, 23, 3, {NULL}, 0, 0, S_FAKEITEM1}, // S_FAKEITEM24 // *****
|
{SPR_FITM, 23, 3, {NULL}, 0, 0, S_FAKEITEM1}, // S_FAKEITEM24 // *****
|
||||||
{SPR_DFAK, 0, 175, {NULL}, 0, 0, S_FAKEITEM1}, // S_DEADFAKEITEM
|
{SPR_FITM, 24, 175, {NULL}, 0, 0, S_FAKEITEM1}, // S_DEADFAKEITEM
|
||||||
|
|
||||||
{SPR_BANA, 0, -1, {NULL}, 0, 0, S_NULL}, // S_BANANAITEM
|
{SPR_BANA, 0, -1, {NULL}, 0, 0, S_NULL}, // S_BANANAITEM
|
||||||
{SPR_DBAN, 0, 175, {NULL}, 0, 0, S_NULL}, // S_DEADBANANA
|
{SPR_BANA, 1, 175, {NULL}, 0, 0, S_NULL}, // S_DEADBANANA
|
||||||
|
|
||||||
{SPR_GSHE, 0, 1, {NULL}, 0, 0, S_TRIPLEGREENSHIELD2}, // S_TRIPLEGREENSHIELD1
|
|
||||||
{SPR_GSHE, 1, 1, {NULL}, 0, 0, S_TRIPLEGREENSHIELD3}, // S_TRIPLEGREENSHIELD2
|
|
||||||
{SPR_GSHE, 2, 1, {NULL}, 0, 0, S_TRIPLEGREENSHIELD4}, // S_TRIPLEGREENSHIELD3
|
|
||||||
{SPR_GSHE, 3, 1, {NULL}, 0, 0, S_TRIPLEGREENSHIELD5}, // S_TRIPLEGREENSHIELD4
|
|
||||||
{SPR_GSHE, 4, 1, {NULL}, 0, 0, S_TRIPLEGREENSHIELD6}, // S_TRIPLEGREENSHIELD5
|
|
||||||
{SPR_GSHE, 5, 1, {NULL}, 0, 0, S_TRIPLEGREENSHIELD7}, // S_TRIPLEGREENSHIELD6
|
|
||||||
{SPR_GSHE, 6, 1, {NULL}, 0, 0, S_TRIPLEGREENSHIELD8}, // S_TRIPLEGREENSHIELD7
|
|
||||||
{SPR_GSHE, 7, 1, {NULL}, 0, 0, S_TRIPLEGREENSHIELD1}, // S_TRIPLEGREENSHIELD8
|
|
||||||
{SPR_GSHE, 0, 1, {NULL}, 0, 0, S_GREENSHIELD2}, // S_GREENSHIELD1
|
{SPR_GSHE, 0, 1, {NULL}, 0, 0, S_GREENSHIELD2}, // S_GREENSHIELD1
|
||||||
{SPR_GSHE, 1, 1, {NULL}, 0, 0, S_GREENSHIELD3}, // S_GREENSHIELD2
|
{SPR_GSHE, 1, 1, {NULL}, 0, 0, S_GREENSHIELD3}, // S_GREENSHIELD2
|
||||||
{SPR_GSHE, 2, 1, {NULL}, 0, 0, S_GREENSHIELD4}, // S_GREENSHIELD3
|
{SPR_GSHE, 2, 1, {NULL}, 0, 0, S_GREENSHIELD4}, // S_GREENSHIELD3
|
||||||
|
@ -2645,16 +2637,8 @@ state_t states[NUMSTATES] =
|
||||||
{SPR_GSHE, 5, 1, {NULL}, 0, 0, S_GREENITEM7}, // S_GREENITEM6
|
{SPR_GSHE, 5, 1, {NULL}, 0, 0, S_GREENITEM7}, // S_GREENITEM6
|
||||||
{SPR_GSHE, 6, 1, {NULL}, 0, 0, S_GREENITEM8}, // S_GREENITEM7
|
{SPR_GSHE, 6, 1, {NULL}, 0, 0, S_GREENITEM8}, // S_GREENITEM7
|
||||||
{SPR_GSHE, 7, 1, {NULL}, 0, 0, S_GREENITEM1}, // S_GREENITEM8
|
{SPR_GSHE, 7, 1, {NULL}, 0, 0, S_GREENITEM1}, // S_GREENITEM8
|
||||||
{SPR_DGSH, 0, 175, {NULL}, 0, 0, S_NULL}, // S_DEADGREEN
|
{SPR_GSHE, 8, 175, {NULL}, 0, 0, S_NULL}, // S_DEADGREEN
|
||||||
|
|
||||||
{SPR_RSHE, 0, 1, {NULL}, 0, 0, S_TRIPLEREDSHIELD2}, // S_TRIPLEREDSHIELD1
|
|
||||||
{SPR_RSHE, 1, 1, {NULL}, 0, 0, S_TRIPLEREDSHIELD3}, // S_TRIPLEREDSHIELD2
|
|
||||||
{SPR_RSHE, 2, 1, {NULL}, 0, 0, S_TRIPLEREDSHIELD4}, // S_TRIPLEREDSHIELD3
|
|
||||||
{SPR_RSHE, 3, 1, {NULL}, 0, 0, S_TRIPLEREDSHIELD5}, // S_TRIPLEREDSHIELD4
|
|
||||||
{SPR_RSHE, 4, 1, {NULL}, 0, 0, S_TRIPLEREDSHIELD6}, // S_TRIPLEREDSHIELD5
|
|
||||||
{SPR_RSHE, 5, 1, {NULL}, 0, 0, S_TRIPLEREDSHIELD7}, // S_TRIPLEREDSHIELD6
|
|
||||||
{SPR_RSHE, 6, 1, {NULL}, 0, 0, S_TRIPLEREDSHIELD8}, // S_TRIPLEREDSHIELD7
|
|
||||||
{SPR_RSHE, 7, 1, {NULL}, 0, 0, S_TRIPLEREDSHIELD1}, // S_TRIPLEREDSHIELD8
|
|
||||||
{SPR_RSHE, 0, 1, {NULL}, 0, 0, S_REDSHIELD2}, // S_REDSHIELD1
|
{SPR_RSHE, 0, 1, {NULL}, 0, 0, S_REDSHIELD2}, // S_REDSHIELD1
|
||||||
{SPR_RSHE, 1, 1, {NULL}, 0, 0, S_REDSHIELD3}, // S_REDSHIELD2
|
{SPR_RSHE, 1, 1, {NULL}, 0, 0, S_REDSHIELD3}, // S_REDSHIELD2
|
||||||
{SPR_RSHE, 2, 1, {NULL}, 0, 0, S_REDSHIELD4}, // S_REDSHIELD3
|
{SPR_RSHE, 2, 1, {NULL}, 0, 0, S_REDSHIELD4}, // S_REDSHIELD3
|
||||||
|
@ -2663,15 +2647,15 @@ state_t states[NUMSTATES] =
|
||||||
{SPR_RSHE, 5, 1, {NULL}, 0, 0, S_REDSHIELD7}, // S_REDSHIELD6
|
{SPR_RSHE, 5, 1, {NULL}, 0, 0, S_REDSHIELD7}, // S_REDSHIELD6
|
||||||
{SPR_RSHE, 6, 1, {NULL}, 0, 0, S_REDSHIELD8}, // S_REDSHIELD7
|
{SPR_RSHE, 6, 1, {NULL}, 0, 0, S_REDSHIELD8}, // S_REDSHIELD7
|
||||||
{SPR_RSHE, 7, 1, {NULL}, 0, 0, S_REDSHIELD1}, // S_REDSHIELD8
|
{SPR_RSHE, 7, 1, {NULL}, 0, 0, S_REDSHIELD1}, // S_REDSHIELD8
|
||||||
{SPR_RSHE, 0, 1, {A_RedShellChase}, 0, 0, S_REDITEM2}, // S_REDITEM1
|
{SPR_RSHE, 0, 1, {A_JawzChase}, 0, 0, S_REDITEM2}, // S_REDITEM1
|
||||||
{SPR_RSHE, 1, 1, {A_RedShellChase}, 0, 0, S_REDITEM3}, // S_REDITEM2
|
{SPR_RSHE, 1, 1, {A_JawzChase}, 0, 0, S_REDITEM3}, // S_REDITEM2
|
||||||
{SPR_RSHE, 2, 1, {A_RedShellChase}, 0, 0, S_REDITEM4}, // S_REDITEM3
|
{SPR_RSHE, 2, 1, {A_JawzChase}, 0, 0, S_REDITEM4}, // S_REDITEM3
|
||||||
{SPR_RSHE, 3, 1, {A_RedShellChase}, 0, 0, S_REDITEM5}, // S_REDITEM4
|
{SPR_RSHE, 3, 1, {A_JawzChase}, 0, 0, S_REDITEM5}, // S_REDITEM4
|
||||||
{SPR_RSHE, 4, 1, {A_RedShellChase}, 0, 0, S_REDITEM6}, // S_REDITEM5
|
{SPR_RSHE, 4, 1, {A_JawzChase}, 0, 0, S_REDITEM6}, // S_REDITEM5
|
||||||
{SPR_RSHE, 5, 1, {A_RedShellChase}, 0, 0, S_REDITEM7}, // S_REDITEM6
|
{SPR_RSHE, 5, 1, {A_JawzChase}, 0, 0, S_REDITEM7}, // S_REDITEM6
|
||||||
{SPR_RSHE, 6, 1, {A_RedShellChase}, 0, 0, S_REDITEM8}, // S_REDITEM7
|
{SPR_RSHE, 6, 1, {A_JawzChase}, 0, 0, S_REDITEM8}, // S_REDITEM7
|
||||||
{SPR_RSHE, 7, 1, {A_RedShellChase}, 0, 0, S_REDITEM1}, // S_REDITEM8
|
{SPR_RSHE, 7, 1, {A_JawzChase}, 0, 0, S_REDITEM1}, // S_REDITEM8
|
||||||
{SPR_DRSH, 0, 175, {NULL}, 0, 0, S_NULL}, // S_DEADRED
|
{SPR_RSHE, 8, 175, {NULL}, 0, 0, S_NULL}, // S_DEADRED
|
||||||
|
|
||||||
{SPR_FBLL, 13, 3, {NULL}, 0, 0, S_FIRETRAIL2}, // S_FIRETRAIL1
|
{SPR_FBLL, 13, 3, {NULL}, 0, 0, S_FIRETRAIL2}, // S_FIRETRAIL1
|
||||||
{SPR_FBLL, 14, 3, {NULL}, 0, 0, S_FIRETRAIL3}, // S_FIRETRAIL2
|
{SPR_FBLL, 14, 3, {NULL}, 0, 0, S_FIRETRAIL3}, // S_FIRETRAIL2
|
||||||
|
@ -2683,16 +2667,34 @@ state_t states[NUMSTATES] =
|
||||||
{SPR_FBLL, 20, 3, {NULL}, 0, 0, S_FIRETRAIL9}, // S_FIRETRAIL8
|
{SPR_FBLL, 20, 3, {NULL}, 0, 0, S_FIRETRAIL9}, // S_FIRETRAIL8
|
||||||
{SPR_FBLL, 21, 3, {NULL}, 0, 0, S_NULL}, // S_FIRETRAIL9
|
{SPR_FBLL, 21, 3, {NULL}, 0, 0, S_NULL}, // S_FIRETRAIL9
|
||||||
|
|
||||||
{SPR_BOMB, 0, 1, {NULL}, 0, 0, S_BOMBSHIELD}, // S_BOMBSHIELD
|
{SPR_SSMN, 4, 1, {NULL}, 0, 0, S_BOMBSHIELD2}, // S_BOMBSHIELD1
|
||||||
{SPR_BOMB, 0, 1, {A_GrenadeRing}, 0, 0, S_BOMBITEM}, // S_BOMBITEM
|
{SPR_SSMN, 5, 1, {NULL}, 0, 0, S_BOMBSHIELD1}, // S_BOMBSHIELD2
|
||||||
{SPR_BOMB, 0, 1, {NULL}, 0, 0, S_BOMBAIR}, // S_BOMBAIR
|
{SPR_SSMN, 4, 1, {NULL}, 0, 0, S_BOMBAIR2}, // S_BOMBAIR1
|
||||||
{SPR_BOMB, 0, 1, {A_BobombExplode}, MT_BOMBEXPLOSION, 0, S_NULL}, // S_BOMBEXPLODE
|
{SPR_SSMN, 5, 1, {NULL}, 0, 0, S_BOMBAIR1}, // S_BOMBAIR2
|
||||||
|
{SPR_SSMN, 6, 3, {NULL}, 0, 0, S_BOMBDEPLOY2}, // S_BOMBDEPLOY1
|
||||||
|
{SPR_SSMN, 7, 5, {NULL}, 0, 0, S_BOMBDEPLOY3}, // S_BOMBDEPLOY2
|
||||||
|
{SPR_SSMN, 8, 7, {NULL}, 0, 0, S_BOMBDEPLOY4}, // S_BOMBDEPLOY3
|
||||||
|
{SPR_SSMN, 9, 1, {NULL}, 0, 0, S_BOMBDEPLOY5}, // S_BOMBDEPLOY4
|
||||||
|
{SPR_SSMN, 10, 1, {NULL}, 0, 0, S_BOMBDEPLOY6}, // S_BOMBDEPLOY5
|
||||||
|
{SPR_SSMN, 9, 1, {NULL}, 0, 0, S_BOMBDEPLOY7}, // S_BOMBDEPLOY6
|
||||||
|
{SPR_SSMN, 10, 3, {NULL}, 0, 0, S_BOMBDEPLOY8}, // S_BOMBDEPLOY7
|
||||||
|
{SPR_SSMN, 11, 1, {NULL}, 0, 0, S_BOMBDEPLOY9}, // S_BOMBDEPLOY8
|
||||||
|
{SPR_SSMN, 10, 1, {NULL}, 0, 0, S_BOMBDEPLOY10}, // S_BOMBDEPLOY9
|
||||||
|
{SPR_SSMN, 11, 3, {NULL}, 0, 0, S_BOMBDEPLOY11}, // S_BOMBDEPLOY10
|
||||||
|
{SPR_SSMN, 12, 3, {NULL}, 0, 0, S_BOMBDEPLOY12}, // S_BOMBDEPLOY11
|
||||||
|
{SPR_SSMN, 13, 3, {NULL}, 0, 0, S_BOMBDEPLOY13}, // S_BOMBDEPLOY12
|
||||||
|
{SPR_SSMN, 14, 3, {NULL}, 0, 0, S_BOMBITEM1}, // S_BOMBDEPLOY13
|
||||||
|
{SPR_SSMN, 0, 30, {A_GrenadeRing}, 0, 0, S_BOMBITEM2}, // S_BOMBITEM1
|
||||||
|
{SPR_SSMN, 3, 3, {A_GrenadeRing}, 0, 0, S_BOMBITEM3}, // S_BOMBITEM2
|
||||||
|
{SPR_SSMN, 2, 3, {A_GrenadeRing}, 0, 0, S_BOMBITEM4}, // S_BOMBITEM3
|
||||||
|
{SPR_SSMN, 1, 3, {A_GrenadeRing}, 0, 0, S_BOMBITEM1}, // S_BOMBITEM4
|
||||||
|
{SPR_SSMN, 3, 1, {A_MineExplode}, MT_BOMBEXPLOSION, 0, S_NULL}, // S_BOMBEXPLODE
|
||||||
|
|
||||||
{SPR_BLIG, 0, 2, {NULL}, 0, 0, S_BLUELIGHTNING2}, // S_BLUELIGHTNING1
|
{SPR_BLIG, 0, 2, {NULL}, 0, 0, S_BLUELIGHTNING2}, // S_BLUELIGHTNING1
|
||||||
{SPR_BLIG, 1, 2, {NULL}, 0, 0, S_BLUELIGHTNING3}, // S_BLUELIGHTNING2
|
{SPR_BLIG, 1, 2, {NULL}, 0, 0, S_BLUELIGHTNING3}, // S_BLUELIGHTNING2
|
||||||
{SPR_BLIG, 2, 2, {NULL}, 0, 0, S_BLUELIGHTNING4}, // S_BLUELIGHTNING3
|
{SPR_BLIG, 2, 2, {NULL}, 0, 0, S_BLUELIGHTNING4}, // S_BLUELIGHTNING3
|
||||||
{SPR_BLIG, 3, 2, {NULL}, 0, 0, S_NULL}, // S_BLUELIGHTNING4
|
{SPR_BLIG, 3, 2, {NULL}, 0, 0, S_NULL}, // S_BLUELIGHTNING4
|
||||||
{SPR_BOMB, 0, 1, {A_BobombExplode}, MT_BLUEEXPLOSION, 0, S_NULL}, // S_BLUEEXPLODE
|
{SPR_SSMN, 3, 1, {A_MineExplode}, MT_BLUEEXPLOSION, 0, S_NULL}, // S_BLUEEXPLODE
|
||||||
|
|
||||||
{SPR_LIGH, 0, 2, {NULL}, 0, 0, S_LIGHTNING2}, // S_LIGHTNING1
|
{SPR_LIGH, 0, 2, {NULL}, 0, 0, S_LIGHTNING2}, // S_LIGHTNING1
|
||||||
{SPR_LIGH, 1, 2, {NULL}, 0, 0, S_LIGHTNING3}, // S_LIGHTNING2
|
{SPR_LIGH, 1, 2, {NULL}, 0, 0, S_LIGHTNING3}, // S_LIGHTNING2
|
||||||
|
@ -2863,20 +2865,17 @@ state_t states[NUMSTATES] =
|
||||||
|
|
||||||
// Above player arrow
|
// Above player arrow
|
||||||
{SPR_ARRO, FF_FULLBRIGHT, -1, {NULL}, 0, 0, S_NULL}, // S_PLAYERARROW
|
{SPR_ARRO, FF_FULLBRIGHT, -1, {NULL}, 0, 0, S_NULL}, // S_PLAYERARROW
|
||||||
{SPR_ARRO, FF_FULLBRIGHT|1, -1, {NULL}, 0, 0, S_NULL}, // S_PLAYERARROW_MUSHROOM
|
{SPR_ARRO, FF_FULLBRIGHT|1, -1, {NULL}, 0, 0, S_NULL}, // S_PLAYERARROW_SNEAKER
|
||||||
{SPR_ARRO, FF_FULLBRIGHT|2, -1, {NULL}, 0, 0, S_NULL}, // S_PLAYERARROW_GREENSHELL
|
|
||||||
{SPR_ARRO, FF_FULLBRIGHT|3, -1, {NULL}, 0, 0, S_NULL}, // S_PLAYERARROW_BANANA
|
{SPR_ARRO, FF_FULLBRIGHT|3, -1, {NULL}, 0, 0, S_NULL}, // S_PLAYERARROW_BANANA
|
||||||
{SPR_ARRO, FF_FULLBRIGHT|4, -1, {NULL}, 0, 0, S_NULL}, // S_PLAYERARROW_FAKEITEM
|
{SPR_ARRO, FF_FULLBRIGHT|4, -1, {NULL}, 0, 0, S_NULL}, // S_PLAYERARROW_FAKEITEM
|
||||||
{SPR_ARRO, FF_FULLBRIGHT|5, -1, {NULL}, 0, 0, S_NULL}, // S_PLAYERARROW_BOO
|
{SPR_ARRO, FF_FULLBRIGHT|5, -1, {NULL}, 0, 0, S_NULL}, // S_PLAYERARROW_HYUDORO
|
||||||
{SPR_ARRO, FF_FULLBRIGHT|6, -1, {NULL}, 0, 0, S_NULL}, // S_PLAYERARROW_FEATHER
|
{SPR_ARRO, FF_FULLBRIGHT|6, -1, {NULL}, 0, 0, S_NULL}, // S_PLAYERARROW_POGOSPRING
|
||||||
{SPR_ARRO, FF_FULLBRIGHT|7, -1, {NULL}, 0, 0, S_NULL}, // S_PLAYERARROW_REDSHELL
|
{SPR_ARRO, FF_FULLBRIGHT|7, -1, {NULL}, 0, 0, S_NULL}, // S_PLAYERARROW_JAWZ
|
||||||
{SPR_ARRO, FF_FULLBRIGHT|8, -1, {NULL}, 0, 0, S_NULL}, // S_PLAYERARROW_BOBOMB
|
{SPR_ARRO, FF_FULLBRIGHT|8, -1, {NULL}, 0, 0, S_NULL}, // S_PLAYERARROW_MINE
|
||||||
{SPR_ARRO, FF_FULLBRIGHT|9, -1, {NULL}, 0, 0, S_NULL}, // S_PLAYERARROW_FIREFLOWER
|
{SPR_ARRO, FF_FULLBRIGHT|9, -1, {NULL}, 0, 0, S_NULL}, // S_PLAYERARROW_BALLHOG
|
||||||
{SPR_ARRO, FF_FULLBRIGHT|10, -1, {NULL}, 0, 0, S_NULL}, // S_PLAYERARROW_TRIPLEGREENSHELL
|
{SPR_ARRO, FF_FULLBRIGHT|10, -1, {NULL}, 0, 0, S_NULL}, // S_PLAYERARROW_ORBINAUT
|
||||||
{SPR_ARRO, FF_FULLBRIGHT|11, -1, {NULL}, 0, 0, S_NULL}, // S_PLAYERARROW_TRIPLEBANANA
|
{SPR_ARRO, FF_FULLBRIGHT|13, -1, {NULL}, 0, 0, S_NULL}, // S_PLAYERARROW_INVINCIBILITY
|
||||||
{SPR_ARRO, FF_FULLBRIGHT|12, -1, {NULL}, 0, 0, S_NULL}, // S_PLAYERARROW_TRIPLEREDSHELL
|
{SPR_ARRO, FF_FULLBRIGHT|14, -1, {NULL}, 0, 0, S_NULL}, // S_PLAYERARROW_SIZEUP
|
||||||
{SPR_ARRO, FF_FULLBRIGHT|13, -1, {NULL}, 0, 0, S_NULL}, // S_PLAYERARROW_STAR
|
|
||||||
{SPR_ARRO, FF_FULLBRIGHT|14, -1, {NULL}, 0, 0, S_NULL}, // S_PLAYERARROW_MEGASHROOM
|
|
||||||
{SPR_ARRO, FF_FULLBRIGHT|15, -1, {NULL}, 0, 0, S_NULL}, // S_PLAYERARROW_KITCHENSINK
|
{SPR_ARRO, FF_FULLBRIGHT|15, -1, {NULL}, 0, 0, S_NULL}, // S_PLAYERARROW_KITCHENSINK
|
||||||
{SPR_ARRO, FF_FULLBRIGHT|16, -1, {NULL}, 0, 0, S_NULL}, // S_PLAYERARROW_EMPTY
|
{SPR_ARRO, FF_FULLBRIGHT|16, -1, {NULL}, 0, 0, S_NULL}, // S_PLAYERARROW_EMPTY
|
||||||
{SPR_ARRO, FF_FULLBRIGHT|FF_ANIMATE|1, -1, {NULL}, 5, 3, S_NULL}, // S_PLAYERARROW_ROULETTE
|
{SPR_ARRO, FF_FULLBRIGHT|FF_ANIMATE|1, -1, {NULL}, 5, 3, S_NULL}, // S_PLAYERARROW_ROULETTE
|
||||||
|
@ -14302,7 +14301,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
S_NULL // raisestate
|
S_NULL // raisestate
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // MT_MUSHROOMTRAIL
|
{ // MT_SNEAKERTRAIL
|
||||||
-1, // doomednum
|
-1, // doomednum
|
||||||
S_KARTFIRE1, // spawnstate
|
S_KARTFIRE1, // spawnstate
|
||||||
1, // spawnhealth
|
1, // spawnhealth
|
||||||
|
@ -14437,87 +14436,6 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
S_NULL // raisestate
|
S_NULL // raisestate
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // MT_TRIPLEBANANASHIELD1
|
|
||||||
-1, // doomednum
|
|
||||||
S_BANANAITEM, // spawnstate
|
|
||||||
1000, // spawnhealth
|
|
||||||
S_NULL, // seestate
|
|
||||||
sfx_None, // seesound
|
|
||||||
8, // reactiontime
|
|
||||||
sfx_None, // attacksound
|
|
||||||
S_NULL, // painstate
|
|
||||||
0, // painchance
|
|
||||||
sfx_None, // painsound
|
|
||||||
S_NULL, // meleestate
|
|
||||||
S_NULL, // missilestate
|
|
||||||
S_DEADBANANA, // deathstate
|
|
||||||
S_NULL, // xdeathstate
|
|
||||||
sfx_None, // deathsound
|
|
||||||
k_banana, // speed
|
|
||||||
16*FRACUNIT, // radius
|
|
||||||
32*FRACUNIT, // height
|
|
||||||
0, // display offset
|
|
||||||
100, // mass
|
|
||||||
1, // damage
|
|
||||||
sfx_None, // activesound
|
|
||||||
MF_SHOOTABLE|MF_NOGRAVITY|MF_SCENERY, // flags
|
|
||||||
S_NULL // raisestate
|
|
||||||
},
|
|
||||||
|
|
||||||
{ // MT_TRIPLEBANANASHIELD2
|
|
||||||
-1, // doomednum
|
|
||||||
S_BANANAITEM, // spawnstate
|
|
||||||
1000, // spawnhealth
|
|
||||||
S_NULL, // seestate
|
|
||||||
sfx_None, // seesound
|
|
||||||
8, // reactiontime
|
|
||||||
sfx_None, // attacksound
|
|
||||||
S_NULL, // painstate
|
|
||||||
0, // painchance
|
|
||||||
sfx_None, // painsound
|
|
||||||
S_NULL, // meleestate
|
|
||||||
S_NULL, // missilestate
|
|
||||||
S_DEADBANANA, // deathstate
|
|
||||||
S_NULL, // xdeathstate
|
|
||||||
sfx_None, // deathsound
|
|
||||||
k_banana, // speed
|
|
||||||
16*FRACUNIT, // radius
|
|
||||||
32*FRACUNIT, // height
|
|
||||||
0, // display offset
|
|
||||||
100, // mass
|
|
||||||
1, // damage
|
|
||||||
sfx_None, // activesound
|
|
||||||
MF_SHOOTABLE|MF_NOGRAVITY|MF_SCENERY, // flags
|
|
||||||
S_NULL // raisestate
|
|
||||||
},
|
|
||||||
|
|
||||||
{ // MT_TRIPLEBANANASHIELD3
|
|
||||||
-1, // doomednum
|
|
||||||
S_BANANAITEM, // spawnstate
|
|
||||||
1000, // spawnhealth
|
|
||||||
S_NULL, // seestate
|
|
||||||
sfx_None, // seesound
|
|
||||||
8, // reactiontime
|
|
||||||
sfx_None, // attacksound
|
|
||||||
S_NULL, // painstate
|
|
||||||
0, // painchance
|
|
||||||
sfx_None, // painsound
|
|
||||||
S_NULL, // meleestate
|
|
||||||
S_NULL, // missilestate
|
|
||||||
S_DEADBANANA, // deathstate
|
|
||||||
S_NULL, // xdeathstate
|
|
||||||
sfx_None, // deathsound
|
|
||||||
k_banana, // speed
|
|
||||||
16*FRACUNIT, // radius
|
|
||||||
32*FRACUNIT, // height
|
|
||||||
0, // display offset
|
|
||||||
100, // mass
|
|
||||||
1, // damage
|
|
||||||
sfx_None, // activesound
|
|
||||||
MF_SHOOTABLE|MF_NOGRAVITY|MF_SCENERY, // flags
|
|
||||||
S_NULL // raisestate
|
|
||||||
},
|
|
||||||
|
|
||||||
{ // MT_BANANASHIELD
|
{ // MT_BANANASHIELD
|
||||||
-1, // doomednum
|
-1, // doomednum
|
||||||
S_BANANAITEM, // spawnstate
|
S_BANANAITEM, // spawnstate
|
||||||
|
@ -14534,7 +14452,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
S_DEADBANANA, // deathstate
|
S_DEADBANANA, // deathstate
|
||||||
S_NULL, // xdeathstate
|
S_NULL, // xdeathstate
|
||||||
sfx_None, // deathsound
|
sfx_None, // deathsound
|
||||||
k_banana, // speed
|
0, // speed
|
||||||
16*FRACUNIT, // radius
|
16*FRACUNIT, // radius
|
||||||
32*FRACUNIT, // height
|
32*FRACUNIT, // height
|
||||||
0, // display offset
|
0, // display offset
|
||||||
|
@ -14572,87 +14490,6 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
S_NULL // raisestate
|
S_NULL // raisestate
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // MT_TRIPLEGREENSHIELD1
|
|
||||||
-1, // doomednum
|
|
||||||
S_TRIPLEGREENSHIELD1, // spawnstate
|
|
||||||
1000, // spawnhealth
|
|
||||||
S_NULL, // seestate
|
|
||||||
sfx_None, // seesound
|
|
||||||
8, // reactiontime
|
|
||||||
sfx_None, // attacksound
|
|
||||||
S_NULL, // painstate
|
|
||||||
0, // painchance
|
|
||||||
sfx_None, // painsound
|
|
||||||
S_NULL, // meleestate
|
|
||||||
S_NULL, // missilestate
|
|
||||||
S_DEADGREEN, // deathstate
|
|
||||||
S_NULL, // xdeathstate
|
|
||||||
sfx_None, // deathsound
|
|
||||||
10*FRACUNIT, // speed
|
|
||||||
16*FRACUNIT, // radius
|
|
||||||
32*FRACUNIT, // height
|
|
||||||
0, // display offset
|
|
||||||
100, // mass
|
|
||||||
1, // damage
|
|
||||||
sfx_None, // activesound
|
|
||||||
MF_SHOOTABLE|MF_NOGRAVITY|MF_SCENERY, // flags
|
|
||||||
S_NULL // raisestate
|
|
||||||
},
|
|
||||||
|
|
||||||
{ // MT_TRIPLEGREENSHIELD2
|
|
||||||
-1, // doomednum
|
|
||||||
S_TRIPLEGREENSHIELD4, // spawnstate
|
|
||||||
1000, // spawnhealth
|
|
||||||
S_NULL, // seestate
|
|
||||||
sfx_None, // seesound
|
|
||||||
8, // reactiontime
|
|
||||||
sfx_None, // attacksound
|
|
||||||
S_NULL, // painstate
|
|
||||||
0, // painchance
|
|
||||||
sfx_None, // painsound
|
|
||||||
S_NULL, // meleestate
|
|
||||||
S_NULL, // missilestate
|
|
||||||
S_DEADGREEN, // deathstate
|
|
||||||
S_NULL, // xdeathstate
|
|
||||||
sfx_None, // deathsound
|
|
||||||
10*FRACUNIT, // speed
|
|
||||||
16*FRACUNIT, // radius
|
|
||||||
32*FRACUNIT, // height
|
|
||||||
0, // display offset
|
|
||||||
100, // mass
|
|
||||||
1, // damage
|
|
||||||
sfx_None, // activesound
|
|
||||||
MF_SHOOTABLE|MF_NOGRAVITY|MF_SCENERY, // flags
|
|
||||||
S_NULL // raisestate
|
|
||||||
},
|
|
||||||
|
|
||||||
{ // MT_TRIPLEGREENSHIELD3
|
|
||||||
-1, // doomednum
|
|
||||||
S_TRIPLEGREENSHIELD7, // spawnstate
|
|
||||||
1000, // spawnhealth
|
|
||||||
S_NULL, // seestate
|
|
||||||
sfx_None, // seesound
|
|
||||||
8, // reactiontime
|
|
||||||
sfx_None, // attacksound
|
|
||||||
S_NULL, // painstate
|
|
||||||
0, // painchance
|
|
||||||
sfx_None, // painsound
|
|
||||||
S_NULL, // meleestate
|
|
||||||
S_NULL, // missilestate
|
|
||||||
S_DEADGREEN, // deathstate
|
|
||||||
S_NULL, // xdeathstate
|
|
||||||
sfx_None, // deathsound
|
|
||||||
10*FRACUNIT, // speed
|
|
||||||
16*FRACUNIT, // radius
|
|
||||||
32*FRACUNIT, // height
|
|
||||||
0, // display offset
|
|
||||||
100, // mass
|
|
||||||
1, // damage
|
|
||||||
sfx_None, // activesound
|
|
||||||
MF_SHOOTABLE|MF_NOGRAVITY|MF_SCENERY, // flags
|
|
||||||
S_NULL // raisestate
|
|
||||||
},
|
|
||||||
|
|
||||||
{ // MT_GREENSHIELD
|
{ // MT_GREENSHIELD
|
||||||
-1, // doomednum
|
-1, // doomednum
|
||||||
S_GREENSHIELD1, // spawnstate
|
S_GREENSHIELD1, // spawnstate
|
||||||
|
@ -14669,7 +14506,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
S_DEADGREEN, // deathstate
|
S_DEADGREEN, // deathstate
|
||||||
S_NULL, // xdeathstate
|
S_NULL, // xdeathstate
|
||||||
sfx_None, // deathsound
|
sfx_None, // deathsound
|
||||||
k_greenshell, // speed
|
10*FRACUNIT, // speed
|
||||||
16*FRACUNIT, // radius
|
16*FRACUNIT, // radius
|
||||||
32*FRACUNIT, // height
|
32*FRACUNIT, // height
|
||||||
0, // display offset
|
0, // display offset
|
||||||
|
@ -14734,87 +14571,6 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
S_NULL // raisestate
|
S_NULL // raisestate
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // MT_TRIPLEREDSHIELD1
|
|
||||||
-1, // doomednum
|
|
||||||
S_TRIPLEREDSHIELD2, // spawnstate
|
|
||||||
1000, // spawnhealth
|
|
||||||
S_NULL, // seestate
|
|
||||||
sfx_None, // seesound
|
|
||||||
8, // reactiontime
|
|
||||||
sfx_None, // attacksound
|
|
||||||
S_NULL, // painstate
|
|
||||||
0, // painchance
|
|
||||||
sfx_None, // painsound
|
|
||||||
S_NULL, // meleestate
|
|
||||||
S_NULL, // missilestate
|
|
||||||
S_DEADRED, // deathstate
|
|
||||||
S_NULL, // xdeathstate
|
|
||||||
sfx_None, // deathsound
|
|
||||||
10*FRACUNIT, // speed
|
|
||||||
16*FRACUNIT, // radius
|
|
||||||
32*FRACUNIT, // height
|
|
||||||
0, // display offset
|
|
||||||
100, // mass
|
|
||||||
1, // damage
|
|
||||||
sfx_None, // activesound
|
|
||||||
MF_SHOOTABLE|MF_NOGRAVITY|MF_SCENERY, // flags
|
|
||||||
S_NULL // raisestate
|
|
||||||
},
|
|
||||||
|
|
||||||
{ // MT_TRIPLEREDSHIELD2
|
|
||||||
-1, // doomednum
|
|
||||||
S_TRIPLEREDSHIELD5, // spawnstate
|
|
||||||
1000, // spawnhealth
|
|
||||||
S_NULL, // seestate
|
|
||||||
sfx_None, // seesound
|
|
||||||
8, // reactiontime
|
|
||||||
sfx_None, // attacksound
|
|
||||||
S_NULL, // painstate
|
|
||||||
0, // painchance
|
|
||||||
sfx_None, // painsound
|
|
||||||
S_NULL, // meleestate
|
|
||||||
S_NULL, // missilestate
|
|
||||||
S_DEADRED, // deathstate
|
|
||||||
S_NULL, // xdeathstate
|
|
||||||
sfx_None, // deathsound
|
|
||||||
10*FRACUNIT, // speed
|
|
||||||
16*FRACUNIT, // radius
|
|
||||||
32*FRACUNIT, // height
|
|
||||||
0, // display offset
|
|
||||||
100, // mass
|
|
||||||
1, // damage
|
|
||||||
sfx_None, // activesound
|
|
||||||
MF_SHOOTABLE|MF_NOGRAVITY|MF_SCENERY, // flags
|
|
||||||
S_NULL // raisestate
|
|
||||||
},
|
|
||||||
|
|
||||||
{ // MT_TRIPLEREDSHIELD3
|
|
||||||
-1, // doomednum
|
|
||||||
S_TRIPLEREDSHIELD8, // spawnstate
|
|
||||||
1000, // spawnhealth
|
|
||||||
S_NULL, // seestate
|
|
||||||
sfx_None, // seesound
|
|
||||||
8, // reactiontime
|
|
||||||
sfx_None, // attacksound
|
|
||||||
S_NULL, // painstate
|
|
||||||
0, // painchance
|
|
||||||
sfx_None, // painsound
|
|
||||||
S_NULL, // meleestate
|
|
||||||
S_NULL, // missilestate
|
|
||||||
S_DEADRED, // deathstate
|
|
||||||
S_NULL, // xdeathstate
|
|
||||||
sfx_None, // deathsound
|
|
||||||
10*FRACUNIT, // speed
|
|
||||||
16*FRACUNIT, // radius
|
|
||||||
32*FRACUNIT, // height
|
|
||||||
0, // display offset
|
|
||||||
100, // mass
|
|
||||||
1, // damage
|
|
||||||
sfx_None, // activesound
|
|
||||||
MF_SHOOTABLE|MF_NOGRAVITY|MF_SCENERY, // flags
|
|
||||||
S_NULL // raisestate
|
|
||||||
},
|
|
||||||
|
|
||||||
{ // MT_REDSHIELD
|
{ // MT_REDSHIELD
|
||||||
-1, // doomednum
|
-1, // doomednum
|
||||||
S_REDSHIELD1, // spawnstate
|
S_REDSHIELD1, // spawnstate
|
||||||
|
@ -14831,7 +14587,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
S_DEADRED, // deathstate
|
S_DEADRED, // deathstate
|
||||||
S_NULL, // xdeathstate
|
S_NULL, // xdeathstate
|
||||||
sfx_None, // deathsound
|
sfx_None, // deathsound
|
||||||
k_redshell, // speed
|
10*FRACUNIT, // speed
|
||||||
16*FRACUNIT, // radius
|
16*FRACUNIT, // radius
|
||||||
32*FRACUNIT, // height
|
32*FRACUNIT, // height
|
||||||
0, // display offset
|
0, // display offset
|
||||||
|
@ -14898,7 +14654,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
|
|
||||||
{ // MT_BOMBSHIELD
|
{ // MT_BOMBSHIELD
|
||||||
-1, // doomednum
|
-1, // doomednum
|
||||||
S_BOMBSHIELD, // spawnstate
|
S_BOMBSHIELD1, // spawnstate
|
||||||
1000, // spawnhealth
|
1000, // spawnhealth
|
||||||
S_NULL, // seestate
|
S_NULL, // seestate
|
||||||
sfx_None, // seesound
|
sfx_None, // seesound
|
||||||
|
@ -14912,7 +14668,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
S_BOMBEXPLODE, // deathstate
|
S_BOMBEXPLODE, // deathstate
|
||||||
S_NULL, // xdeathstate
|
S_NULL, // xdeathstate
|
||||||
sfx_None, // deathsound
|
sfx_None, // deathsound
|
||||||
k_bobomb, // speed
|
10*FRACUNIT, // speed
|
||||||
16*FRACUNIT, // radius
|
16*FRACUNIT, // radius
|
||||||
32*FRACUNIT, // height
|
32*FRACUNIT, // height
|
||||||
0, // display offset
|
0, // display offset
|
||||||
|
@ -14925,7 +14681,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
|
|
||||||
{ // MT_BOMBITEM
|
{ // MT_BOMBITEM
|
||||||
-1, // doomednum
|
-1, // doomednum
|
||||||
S_BOMBAIR, // spawnstate
|
S_BOMBAIR1, // spawnstate
|
||||||
105, // spawnhealth
|
105, // spawnhealth
|
||||||
S_NULL, // seestate
|
S_NULL, // seestate
|
||||||
sfx_tossed, // seesound
|
sfx_tossed, // seesound
|
||||||
|
|
117
src/info.h
117
src/info.h
|
@ -164,8 +164,8 @@ void A_DualAction();
|
||||||
void A_RemoteAction();
|
void A_RemoteAction();
|
||||||
void A_ToggleFlameJet();
|
void A_ToggleFlameJet();
|
||||||
void A_ItemPop(); // SRB2kart
|
void A_ItemPop(); // SRB2kart
|
||||||
void A_RedShellChase(); // SRB2kart
|
void A_JawzChase(); // SRB2kart
|
||||||
void A_BobombExplode(); // SRB2kart
|
void A_MineExplode(); // SRB2kart
|
||||||
void A_OrbitNights();
|
void A_OrbitNights();
|
||||||
void A_GhostMe();
|
void A_GhostMe();
|
||||||
void A_SetObjectState();
|
void A_SetObjectState();
|
||||||
|
@ -579,23 +579,18 @@ typedef enum sprite
|
||||||
SPR_BSPR, // Blue Diagonal Spring
|
SPR_BSPR, // Blue Diagonal Spring
|
||||||
|
|
||||||
SPR_RNDM, // Random Item Box
|
SPR_RNDM, // Random Item Box
|
||||||
SPR_RPOP, // Random Item Box Pop
|
SPR_KFRE, // Sneaker fire trail
|
||||||
SPR_KFRE, // Mushroom fire trail
|
|
||||||
SPR_DRIF, // Drift Sparks
|
SPR_DRIF, // Drift Sparks
|
||||||
SPR_DSMO, // Drift Smoke
|
SPR_DSMO, // Drift Smoke
|
||||||
|
|
||||||
// Kart Items
|
// Kart Items
|
||||||
SPR_FITM, // Fake Item box
|
SPR_FITM, // Fake Item
|
||||||
SPR_DFAK, // Dead Fake Item
|
|
||||||
SPR_BANA, // Banana Peel
|
SPR_BANA, // Banana Peel
|
||||||
SPR_DBAN, // Dead Banana Peel
|
SPR_GSHE, // Orbinaut
|
||||||
SPR_GSHE, // Green Shell
|
SPR_RSHE, // Jawz
|
||||||
SPR_DGSH, // Dead Green Shell
|
SPR_SSMN, // SS Mine
|
||||||
SPR_RSHE, // Red Shell
|
SPR_BLIG, // Self-Propelled Bomb
|
||||||
SPR_DRSH, // Dead Red Shell
|
SPR_LIGH, // Size Up/Down beams (Metallic Maddness)
|
||||||
SPR_BOMB, // Bob-omb
|
|
||||||
SPR_BLIG, // Blue Lightning
|
|
||||||
SPR_LIGH, // Lightning
|
|
||||||
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 Balloon
|
||||||
|
@ -3085,7 +3080,7 @@ typedef enum state
|
||||||
|
|
||||||
// Magnet Burst
|
// Magnet Burst
|
||||||
|
|
||||||
// Mushroom Fire Trail
|
// Sneaker Fire Trail
|
||||||
S_KARTFIRE1,
|
S_KARTFIRE1,
|
||||||
S_KARTFIRE2,
|
S_KARTFIRE2,
|
||||||
S_KARTFIRE3,
|
S_KARTFIRE3,
|
||||||
|
@ -3127,15 +3122,7 @@ typedef enum state
|
||||||
S_BANANAITEM,
|
S_BANANAITEM,
|
||||||
S_DEADBANANA,
|
S_DEADBANANA,
|
||||||
|
|
||||||
//{ Green Shell
|
//{ Orbinaut
|
||||||
S_TRIPLEGREENSHIELD1,
|
|
||||||
S_TRIPLEGREENSHIELD2,
|
|
||||||
S_TRIPLEGREENSHIELD3,
|
|
||||||
S_TRIPLEGREENSHIELD4,
|
|
||||||
S_TRIPLEGREENSHIELD5,
|
|
||||||
S_TRIPLEGREENSHIELD6,
|
|
||||||
S_TRIPLEGREENSHIELD7,
|
|
||||||
S_TRIPLEGREENSHIELD8,
|
|
||||||
S_GREENSHIELD1,
|
S_GREENSHIELD1,
|
||||||
S_GREENSHIELD2,
|
S_GREENSHIELD2,
|
||||||
S_GREENSHIELD3,
|
S_GREENSHIELD3,
|
||||||
|
@ -3154,15 +3141,7 @@ typedef enum state
|
||||||
S_GREENITEM8,
|
S_GREENITEM8,
|
||||||
S_DEADGREEN,
|
S_DEADGREEN,
|
||||||
//}
|
//}
|
||||||
//{ Red Shell
|
//{ Jawz
|
||||||
S_TRIPLEREDSHIELD1,
|
|
||||||
S_TRIPLEREDSHIELD2,
|
|
||||||
S_TRIPLEREDSHIELD3,
|
|
||||||
S_TRIPLEREDSHIELD4,
|
|
||||||
S_TRIPLEREDSHIELD5,
|
|
||||||
S_TRIPLEREDSHIELD6,
|
|
||||||
S_TRIPLEREDSHIELD7,
|
|
||||||
S_TRIPLEREDSHIELD8,
|
|
||||||
S_REDSHIELD1,
|
S_REDSHIELD1,
|
||||||
S_REDSHIELD2,
|
S_REDSHIELD2,
|
||||||
S_REDSHIELD3,
|
S_REDSHIELD3,
|
||||||
|
@ -3192,20 +3171,38 @@ typedef enum state
|
||||||
S_FIRETRAIL8,
|
S_FIRETRAIL8,
|
||||||
S_FIRETRAIL9,
|
S_FIRETRAIL9,
|
||||||
|
|
||||||
// Bob-omb
|
// Special Stage Mine
|
||||||
S_BOMBSHIELD,
|
S_BOMBSHIELD1,
|
||||||
S_BOMBITEM,
|
S_BOMBSHIELD2,
|
||||||
S_BOMBAIR,
|
S_BOMBAIR1,
|
||||||
|
S_BOMBAIR2,
|
||||||
|
S_BOMBDEPLOY1,
|
||||||
|
S_BOMBDEPLOY2,
|
||||||
|
S_BOMBDEPLOY3,
|
||||||
|
S_BOMBDEPLOY4,
|
||||||
|
S_BOMBDEPLOY5,
|
||||||
|
S_BOMBDEPLOY6,
|
||||||
|
S_BOMBDEPLOY7,
|
||||||
|
S_BOMBDEPLOY8,
|
||||||
|
S_BOMBDEPLOY9,
|
||||||
|
S_BOMBDEPLOY10,
|
||||||
|
S_BOMBDEPLOY11,
|
||||||
|
S_BOMBDEPLOY12,
|
||||||
|
S_BOMBDEPLOY13,
|
||||||
|
S_BOMBITEM1,
|
||||||
|
S_BOMBITEM2,
|
||||||
|
S_BOMBITEM3,
|
||||||
|
S_BOMBITEM4,
|
||||||
S_BOMBEXPLODE,
|
S_BOMBEXPLODE,
|
||||||
|
|
||||||
// Blue Shell - Blue Lightning for now...
|
// Self-Propelled Bomb - just an explosion for now...
|
||||||
S_BLUELIGHTNING1,
|
S_BLUELIGHTNING1,
|
||||||
S_BLUELIGHTNING2,
|
S_BLUELIGHTNING2,
|
||||||
S_BLUELIGHTNING3,
|
S_BLUELIGHTNING3,
|
||||||
S_BLUELIGHTNING4,
|
S_BLUELIGHTNING4,
|
||||||
S_BLUEEXPLODE,
|
S_BLUEEXPLODE,
|
||||||
|
|
||||||
// Lightning
|
// Size-Down
|
||||||
S_LIGHTNING1,
|
S_LIGHTNING1,
|
||||||
S_LIGHTNING2,
|
S_LIGHTNING2,
|
||||||
S_LIGHTNING3,
|
S_LIGHTNING3,
|
||||||
|
@ -3384,20 +3381,17 @@ typedef enum state
|
||||||
S_FIREDITEM4,
|
S_FIREDITEM4,
|
||||||
|
|
||||||
S_PLAYERARROW, // Above player arrow
|
S_PLAYERARROW, // Above player arrow
|
||||||
S_PLAYERARROW_MUSHROOM,
|
S_PLAYERARROW_SNEAKER,
|
||||||
S_PLAYERARROW_GREENSHELL,
|
|
||||||
S_PLAYERARROW_BANANA,
|
S_PLAYERARROW_BANANA,
|
||||||
S_PLAYERARROW_FAKEITEM,
|
S_PLAYERARROW_FAKEITEM,
|
||||||
S_PLAYERARROW_BOO,
|
S_PLAYERARROW_HYUDORO,
|
||||||
S_PLAYERARROW_FEATHER,
|
S_PLAYERARROW_POGOSPRING,
|
||||||
S_PLAYERARROW_REDSHELL,
|
S_PLAYERARROW_JAWZ,
|
||||||
S_PLAYERARROW_BOBOMB,
|
S_PLAYERARROW_MINE,
|
||||||
S_PLAYERARROW_FIREFLOWER,
|
S_PLAYERARROW_BALLHOG,
|
||||||
S_PLAYERARROW_TRIPLEGREENSHELL,
|
S_PLAYERARROW_ORBINAUT,
|
||||||
S_PLAYERARROW_TRIPLEBANANA,
|
S_PLAYERARROW_INVINCIBILITY,
|
||||||
S_PLAYERARROW_TRIPLEREDSHELL,
|
S_PLAYERARROW_SIZEUP,
|
||||||
S_PLAYERARROW_STAR,
|
|
||||||
S_PLAYERARROW_MEGASHROOM,
|
|
||||||
S_PLAYERARROW_KITCHENSINK,
|
S_PLAYERARROW_KITCHENSINK,
|
||||||
S_PLAYERARROW_EMPTY,
|
S_PLAYERARROW_EMPTY,
|
||||||
S_PLAYERARROW_ROULETTE,
|
S_PLAYERARROW_ROULETTE,
|
||||||
|
@ -3940,39 +3934,30 @@ typedef enum mobj_type
|
||||||
MT_FLINGRANDOMITEM,
|
MT_FLINGRANDOMITEM,
|
||||||
MT_RANDOMITEMPOP,
|
MT_RANDOMITEMPOP,
|
||||||
|
|
||||||
MT_MUSHROOMTRAIL,
|
MT_SNEAKERTRAIL,
|
||||||
MT_DRIFT,
|
MT_DRIFT,
|
||||||
MT_DRIFTSMOKE,
|
MT_DRIFTSMOKE,
|
||||||
|
|
||||||
MT_FAKESHIELD,
|
MT_FAKESHIELD,
|
||||||
MT_FAKEITEM,
|
MT_FAKEITEM,
|
||||||
|
|
||||||
MT_TRIPLEBANANASHIELD1, // Banana Stuff
|
MT_BANANASHIELD, // Banana Stuff
|
||||||
MT_TRIPLEBANANASHIELD2,
|
|
||||||
MT_TRIPLEBANANASHIELD3,
|
|
||||||
MT_BANANASHIELD,
|
|
||||||
MT_BANANAITEM,
|
MT_BANANAITEM,
|
||||||
|
|
||||||
MT_TRIPLEGREENSHIELD1, // Green shell stuff
|
MT_GREENSHIELD, // Orbinaut stuff
|
||||||
MT_TRIPLEGREENSHIELD2,
|
|
||||||
MT_TRIPLEGREENSHIELD3,
|
|
||||||
MT_GREENSHIELD,
|
|
||||||
MT_GREENITEM,
|
MT_GREENITEM,
|
||||||
MT_FIRETRAIL,
|
MT_FIRETRAIL,
|
||||||
|
|
||||||
MT_TRIPLEREDSHIELD1, // Red shell stuff
|
MT_REDSHIELD, // Jawz stuff
|
||||||
MT_TRIPLEREDSHIELD2,
|
|
||||||
MT_TRIPLEREDSHIELD3,
|
|
||||||
MT_REDSHIELD,
|
|
||||||
MT_REDITEM,
|
MT_REDITEM,
|
||||||
MT_REDITEMDUD,
|
MT_REDITEMDUD,
|
||||||
|
|
||||||
MT_BOMBSHIELD, // Bob-omb stuff
|
MT_BOMBSHIELD, // Mine stuff
|
||||||
MT_BOMBITEM,
|
MT_BOMBITEM,
|
||||||
MT_BOMBEXPLOSION,
|
MT_BOMBEXPLOSION,
|
||||||
MT_BOMBEXPLOSIONSOUND,
|
MT_BOMBEXPLOSIONSOUND,
|
||||||
|
|
||||||
MT_BLUELIGHTNING, // Lightning stuff
|
MT_BLUELIGHTNING, // Size Down stuff
|
||||||
MT_BLUEEXPLOSION,
|
MT_BLUEEXPLOSION,
|
||||||
MT_LIGHTNING,
|
MT_LIGHTNING,
|
||||||
|
|
||||||
|
|
2583
src/k_kart.c
2583
src/k_kart.c
File diff suppressed because it is too large
Load diff
|
@ -11,7 +11,7 @@
|
||||||
|
|
||||||
UINT8 colortranslations[MAXSKINCOLORS][16];
|
UINT8 colortranslations[MAXSKINCOLORS][16];
|
||||||
extern const char *KartColor_Names[MAXSKINCOLORS];
|
extern const char *KartColor_Names[MAXSKINCOLORS];
|
||||||
void K_StarmanColormap(UINT8 *dest_colormap, UINT8 skincolor);
|
void K_RainbowColormap(UINT8 *dest_colormap, UINT8 skincolor);
|
||||||
void K_GenerateKartColormap(UINT8 *dest_colormap, INT32 skinnum, UINT8 color);
|
void K_GenerateKartColormap(UINT8 *dest_colormap, INT32 skinnum, UINT8 color);
|
||||||
UINT8 K_GetKartColorByName(const char *name);
|
UINT8 K_GetKartColorByName(const char *name);
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ void K_ExplodePlayer(player_t *player, mobj_t *source);
|
||||||
void K_StealBalloon(player_t *player, player_t *victim, boolean force);
|
void K_StealBalloon(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_SpawnDriftTrail(player_t *player);
|
void K_SpawnDriftTrail(player_t *player);
|
||||||
void K_DoMushroom(player_t *player, boolean doPFlag, boolean startboost);
|
void K_DoSneaker(player_t *player, boolean doPFlag, boolean startboost);
|
||||||
void K_DoBouncePad(mobj_t *mo, fixed_t vertispeed);
|
void K_DoBouncePad(mobj_t *mo, fixed_t vertispeed);
|
||||||
boolean K_CheckPlayersRespawnColliding(INT32 playernum, fixed_t x, fixed_t y);
|
boolean K_CheckPlayersRespawnColliding(INT32 playernum, fixed_t x, fixed_t y);
|
||||||
INT16 K_GetKartTurnValue(player_t *player, INT16 turnvalue);
|
INT16 K_GetKartTurnValue(player_t *player, INT16 turnvalue);
|
||||||
|
|
|
@ -2090,7 +2090,7 @@ static int lib_kSpawnDriftTrail(lua_State *L)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int lib_kDoMushroom(lua_State *L)
|
static int lib_kDoSneaker(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));
|
||||||
boolean doPFlag = luaL_checkboolean(L, 2);
|
boolean doPFlag = luaL_checkboolean(L, 2);
|
||||||
|
@ -2098,7 +2098,7 @@ static int lib_kDoMushroom(lua_State *L)
|
||||||
NOHUD
|
NOHUD
|
||||||
if (!player)
|
if (!player)
|
||||||
return LUA_ErrInvalid(L, "player_t");
|
return LUA_ErrInvalid(L, "player_t");
|
||||||
K_DoMushroom(player, doPFlag, startboost);
|
K_DoSneaker(player, doPFlag, startboost);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2336,7 +2336,7 @@ static luaL_Reg lib[] = {
|
||||||
{"K_StealBalloon",lib_kStealBalloon},
|
{"K_StealBalloon",lib_kStealBalloon},
|
||||||
{"K_SpawnKartExplosion",lib_kSpawnKartExplosion},
|
{"K_SpawnKartExplosion",lib_kSpawnKartExplosion},
|
||||||
{"K_SpawnDriftTrail",lib_kSpawnDriftTrail},
|
{"K_SpawnDriftTrail",lib_kSpawnDriftTrail},
|
||||||
{"K_DoMushroom",lib_kDoMushroom},
|
{"K_DoSneaker",lib_kDoSneaker},
|
||||||
{"K_DoBouncePad",lib_kDoBouncePad},
|
{"K_DoBouncePad",lib_kDoBouncePad},
|
||||||
{"K_MomentumToFacing",lib_kMomentumToFacing},
|
{"K_MomentumToFacing",lib_kMomentumToFacing},
|
||||||
{"K_GetKartSpeed",lib_kGetKartSpeed},
|
{"K_GetKartSpeed",lib_kGetKartSpeed},
|
||||||
|
|
38
src/m_menu.c
38
src/m_menu.c
|
@ -1497,25 +1497,25 @@ static menuitem_t OP_MonitorToggleMenu[] =
|
||||||
{
|
{
|
||||||
// Printing handled by drawing function
|
// Printing handled by drawing function
|
||||||
// Instead of using this for dumb monitors, lets use the new item bools we have :V
|
// Instead of using this for dumb monitors, lets use the new item bools we have :V
|
||||||
{IT_STRING | IT_CVAR, NULL, "Mushrooms", &cv_mushroom, 10},
|
{IT_STRING | IT_CVAR, NULL, "Sneakers", &cv_sneaker, 10},
|
||||||
{IT_STRING | IT_CVAR, NULL, "Triple Mushrooms", &cv_triplemushroom, 18},
|
{IT_STRING | IT_CVAR, NULL, "Triple Sneakers", &cv_triplesneaker, 18},
|
||||||
{IT_STRING | IT_CVAR, NULL, "Mega Mushrooms", &cv_megashroom, 26},
|
{IT_STRING | IT_CVAR, NULL, "Rocket Sneakers", &cv_rocketsneaker, 26},
|
||||||
{IT_STRING | IT_CVAR, NULL, "Golden Mushrooms", &cv_goldshroom, 34},
|
{IT_STRING | IT_CVAR, NULL, "Invinciblity", &cv_invincibility, 34},
|
||||||
{IT_STRING | IT_CVAR, NULL, "Stars", &cv_star, 42},
|
{IT_STRING | IT_CVAR, NULL, "Bananas", &cv_banana, 42},
|
||||||
{IT_STRING | IT_CVAR, NULL, "Bananas", &cv_banana, 50},
|
{IT_STRING | IT_CVAR, NULL, "Triple Bananas", &cv_triplebanana, 50},
|
||||||
{IT_STRING | IT_CVAR, NULL, "Triple Bananas", &cv_triplebanana, 58},
|
{IT_STRING | IT_CVAR, NULL, "Fake Items", &cv_fakeitem, 58},
|
||||||
{IT_STRING | IT_CVAR, NULL, "Fake Items", &cv_fakeitem, 66},
|
{IT_STRING | IT_CVAR, NULL, "Orbinauts", &cv_orbinaut, 66},
|
||||||
{IT_STRING | IT_CVAR, NULL, "Green Shells", &cv_greenshell, 74},
|
{IT_STRING | IT_CVAR, NULL, "Triple Orbinauts", &cv_tripleorbinaut, 74},
|
||||||
{IT_STRING | IT_CVAR, NULL, "Red Shells", &cv_redshell, 82},
|
{IT_STRING | IT_CVAR, NULL, "Jawz", &cv_jawz, 82},
|
||||||
{IT_STRING | IT_CVAR, NULL, "Triple Green Shells", &cv_triplegreenshell, 90},
|
{IT_STRING | IT_CVAR, NULL, "Dual Jawz", &cv_dualjawz, 90},
|
||||||
{IT_STRING | IT_CVAR, NULL, "Triple Red Shells", &cv_tripleredshell, 98},
|
{IT_STRING | IT_CVAR, NULL, "Mines", &cv_mine, 98},
|
||||||
{IT_STRING | IT_CVAR, NULL, "Bob-ombs", &cv_bobomb, 106},
|
{IT_STRING | IT_CVAR, NULL, "Ballhogs", &cv_ballhog, 106},
|
||||||
{IT_STRING | IT_CVAR, NULL, "Fire Flowers", &cv_fireflower, 114},
|
{IT_STRING | IT_CVAR, NULL, "Self-Propelled Bombs",&cv_selfpropelledbomb,114},
|
||||||
{IT_STRING | IT_CVAR, NULL, "Magnets", &cv_magnet, 122},
|
{IT_STRING | IT_CVAR, NULL, "Size Up", &cv_sizeup, 122},
|
||||||
{IT_STRING | IT_CVAR, NULL, "Boos", &cv_boo, 130},
|
{IT_STRING | IT_CVAR, NULL, "Size Down", &cv_sizedown, 130},
|
||||||
{IT_STRING | IT_CVAR, NULL, "Lightning", &cv_lightning, 138},
|
{IT_STRING | IT_CVAR, NULL, "Lightning Shields", &cv_lightningshield, 138},
|
||||||
{IT_STRING | IT_CVAR, NULL, "Blue Lightning", &cv_blueshell, 146},
|
{IT_STRING | IT_CVAR, NULL, "Hyudoros", &cv_hyudoro, 146},
|
||||||
{IT_STRING | IT_CVAR, NULL, "Feathers", &cv_feather, 154},
|
{IT_STRING | IT_CVAR, NULL, "Pogo Springs", &cv_pogospring, 154},
|
||||||
};
|
};
|
||||||
|
|
||||||
// ==========================================================================
|
// ==========================================================================
|
||||||
|
|
|
@ -188,8 +188,8 @@ void A_DualAction(mobj_t *actor);
|
||||||
void A_RemoteAction(mobj_t *actor);
|
void A_RemoteAction(mobj_t *actor);
|
||||||
void A_ToggleFlameJet(mobj_t *actor);
|
void A_ToggleFlameJet(mobj_t *actor);
|
||||||
void A_ItemPop(mobj_t *actor); // SRB2kart
|
void A_ItemPop(mobj_t *actor); // SRB2kart
|
||||||
void A_RedShellChase(mobj_t *actor); // SRB2kart
|
void A_JawzChase(mobj_t *actor); // SRB2kart
|
||||||
void A_BobombExplode(mobj_t *actor); // SRB2kart
|
void A_MineExplode(mobj_t *actor); // SRB2kart
|
||||||
void A_OrbitNights(mobj_t *actor);
|
void A_OrbitNights(mobj_t *actor);
|
||||||
void A_GhostMe(mobj_t *actor);
|
void A_GhostMe(mobj_t *actor);
|
||||||
void A_SetObjectState(mobj_t *actor);
|
void A_SetObjectState(mobj_t *actor);
|
||||||
|
@ -741,7 +741,7 @@ static boolean P_LookForShield(mobj_t *actor)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// SRB2kart - magnet item
|
// SRB2kart - magnet item
|
||||||
if (player->kartstuff[k_magnettimer] //(player->powers[pw_shield] & SH_NOSTACK) == SH_ATTRACT
|
if (player->kartstuff[k_attractiontimer] //(player->powers[pw_shield] & SH_NOSTACK) == SH_ATTRACT
|
||||||
&& (P_AproxDistance(P_AproxDistance(actor->x-player->mo->x, actor->y-player->mo->y), actor->z-player->mo->z) < FixedMul(RING_DIST/4, player->mo->scale)))
|
&& (P_AproxDistance(P_AproxDistance(actor->x-player->mo->x, actor->y-player->mo->y), actor->z-player->mo->z) < FixedMul(RING_DIST/4, player->mo->scale)))
|
||||||
{
|
{
|
||||||
P_SetTarget(&actor->tracer, player->mo);
|
P_SetTarget(&actor->tracer, player->mo);
|
||||||
|
@ -2605,8 +2605,9 @@ void A_MonitorPop(mobj_t *actor)
|
||||||
case MT_QUESTIONBOX: // Random!
|
case MT_QUESTIONBOX: // Random!
|
||||||
{
|
{
|
||||||
mobjtype_t spawnchance[256];
|
mobjtype_t spawnchance[256];
|
||||||
INT32 numchoices = 0, i = 0;
|
INT32 numchoices = 0/*, i = 0*/;
|
||||||
|
|
||||||
|
/*
|
||||||
#define QUESTIONBOXCHANCES(type, cvar) \
|
#define QUESTIONBOXCHANCES(type, cvar) \
|
||||||
for (i = cvar.value; i; --i) spawnchance[numchoices++] = type
|
for (i = cvar.value; i; --i) spawnchance[numchoices++] = type
|
||||||
|
|
||||||
|
@ -2624,6 +2625,7 @@ for (i = cvar.value; i; --i) spawnchance[numchoices++] = type
|
||||||
QUESTIONBOXCHANCES(MT_RECYCLETV, cv_recycler);
|
QUESTIONBOXCHANCES(MT_RECYCLETV, cv_recycler);
|
||||||
|
|
||||||
#undef QUESTIONBOXCHANCES
|
#undef QUESTIONBOXCHANCES
|
||||||
|
*/
|
||||||
|
|
||||||
if (numchoices == 0)
|
if (numchoices == 0)
|
||||||
{
|
{
|
||||||
|
@ -3613,7 +3615,7 @@ void A_AttractChase(mobj_t *actor)
|
||||||
|
|
||||||
// Turn flingrings back into regular rings if attracted.
|
// Turn flingrings back into regular rings if attracted.
|
||||||
if (actor->tracer && actor->tracer->player
|
if (actor->tracer && actor->tracer->player
|
||||||
&& actor->tracer->player->kartstuff[k_magnettimer] //&& (actor->tracer->player->powers[pw_shield] & SH_NOSTACK) != SH_ATTRACT
|
&& actor->tracer->player->kartstuff[k_attractiontimer] //&& (actor->tracer->player->powers[pw_shield] & SH_NOSTACK) != SH_ATTRACT
|
||||||
&& actor->info->reactiontime && actor->type != (mobjtype_t)actor->info->reactiontime)
|
&& actor->info->reactiontime && actor->type != (mobjtype_t)actor->info->reactiontime)
|
||||||
{
|
{
|
||||||
mobj_t *newring;
|
mobj_t *newring;
|
||||||
|
@ -3830,7 +3832,7 @@ void A_ThrownRing(mobj_t *actor)
|
||||||
P_SetTarget(&actor->tracer, NULL);
|
P_SetTarget(&actor->tracer, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (actor->tracer && (actor->tracer->health)) // SRB2kart - red shells always follow
|
if (actor->tracer && (actor->tracer->health)) // SRB2kart - jawz always follow
|
||||||
//&& (actor->tracer->player->powers[pw_shield] & SH_NOSTACK) == SH_ATTRACT)// Already found someone to follow.
|
//&& (actor->tracer->player->powers[pw_shield] & SH_NOSTACK) == SH_ATTRACT)// Already found someone to follow.
|
||||||
{
|
{
|
||||||
const INT32 temp = actor->threshold;
|
const INT32 temp = actor->threshold;
|
||||||
|
@ -3882,7 +3884,7 @@ void A_ThrownRing(mobj_t *actor)
|
||||||
&& actor->target->player->ctfteam == player->ctfteam)
|
&& actor->target->player->ctfteam == player->ctfteam)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (actor->target->player->kartstuff[k_position] < player->kartstuff[k_position]) // SRB2kart - Red Shells only go after people ahead of you
|
if (actor->target->player->kartstuff[k_position] < player->kartstuff[k_position]) // SRB2kart - Jawz only go after people ahead of you
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -3925,8 +3927,11 @@ static inline boolean PIT_GrenadeRing(mobj_t *thing)
|
||||||
if (thing == grenade->target && !(grenade->threshold == 0)) // Don't blow up at your owner.
|
if (thing == grenade->target && !(grenade->threshold == 0)) // Don't blow up at your owner.
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if (thing->player && (thing->player->kartstuff[k_bootimer]
|
if (thing->player && thing->player->kartstuff[k_hyudorotimer])
|
||||||
|| (thing->player->kartstuff[k_balloon] <= 0 && thing->player->kartstuff[k_comebacktimer])))
|
return true;
|
||||||
|
|
||||||
|
if ((gametype != GT_RACE) && thing->player
|
||||||
|
&& thing->player->kartstuff[k_balloon] <= 0 && thing->player->kartstuff[k_comebacktimer])
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if ((gametype == GT_CTF || gametype == GT_TEAMMATCH)
|
if ((gametype == GT_CTF || gametype == GT_TEAMMATCH)
|
||||||
|
@ -8090,7 +8095,7 @@ void A_ToggleFlameJet(mobj_t* actor)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//{ SRB2kart - A_ItemPop, A_RedShellChase and A_BobombExplode
|
//{ SRB2kart - A_ItemPop, A_JawzChase and A_MineExplode
|
||||||
void A_ItemPop(mobj_t *actor)
|
void A_ItemPop(mobj_t *actor)
|
||||||
{
|
{
|
||||||
mobj_t *remains;
|
mobj_t *remains;
|
||||||
|
@ -8149,14 +8154,14 @@ void A_ItemPop(mobj_t *actor)
|
||||||
P_RemoveMobj(actor);
|
P_RemoveMobj(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
void A_RedShellChase(mobj_t *actor)
|
void A_JawzChase(mobj_t *actor)
|
||||||
{
|
{
|
||||||
|
|
||||||
INT32 c = 0;
|
INT32 c = 0;
|
||||||
INT32 stop;
|
INT32 stop;
|
||||||
player_t *player;
|
player_t *player;
|
||||||
#ifdef HAVE_BLUA
|
#ifdef HAVE_BLUA
|
||||||
if (LUA_CallAction("A_RedShellChase", actor))
|
if (LUA_CallAction("A_JawzChase", actor))
|
||||||
return;
|
return;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -8216,7 +8221,7 @@ void A_RedShellChase(mobj_t *actor)
|
||||||
if (gametype == GT_RACE) // Only in races, in match and CTF you should go after any nearby players
|
if (gametype == GT_RACE) // Only in races, in match and CTF you should go after any nearby players
|
||||||
{
|
{
|
||||||
// USER TARGET
|
// USER TARGET
|
||||||
if (actor->target->player->kartstuff[k_position] != (player->kartstuff[k_position] + 1)) // Red Shells only go after the person directly ahead of you -Sryder
|
if (actor->target->player->kartstuff[k_position] != (player->kartstuff[k_position] + 1)) // Jawz only go after the person directly ahead of you -Sryder
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8253,7 +8258,7 @@ void A_RedShellChase(mobj_t *actor)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void A_BobombExplode(mobj_t *actor)
|
void A_MineExplode(mobj_t *actor)
|
||||||
{
|
{
|
||||||
mobj_t *mo2;
|
mobj_t *mo2;
|
||||||
thinker_t *th;
|
thinker_t *th;
|
||||||
|
@ -8261,7 +8266,7 @@ void A_BobombExplode(mobj_t *actor)
|
||||||
INT32 locvar1 = var1;
|
INT32 locvar1 = var1;
|
||||||
mobjtype_t type;
|
mobjtype_t type;
|
||||||
#ifdef HAVE_BLUA
|
#ifdef HAVE_BLUA
|
||||||
if (LUA_CallAction("A_BobombExplode", actor))
|
if (LUA_CallAction("A_MineExplode", actor))
|
||||||
return;
|
return;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -237,7 +237,7 @@ result_e T_MovePlane(sector_t *sector, fixed_t speed, fixed_t dest, boolean crus
|
||||||
{
|
{
|
||||||
case MT_GOOP: // Egg Slimer's goop objects
|
case MT_GOOP: // Egg Slimer's goop objects
|
||||||
case MT_SPINFIRE: // Elemental Shield flame balls
|
case MT_SPINFIRE: // Elemental Shield flame balls
|
||||||
case MT_MUSHROOMTRAIL:
|
case MT_SNEAKERTRAIL:
|
||||||
case MT_SPIKE: // Floor Spike
|
case MT_SPIKE: // Floor Spike
|
||||||
// Is the object hang from the ceiling?
|
// Is the object hang from the ceiling?
|
||||||
// In that case, swap the planes used.
|
// In that case, swap the planes used.
|
||||||
|
|
|
@ -161,23 +161,16 @@ boolean P_CanPickupItem(player_t *player, boolean weapon)
|
||||||
if (gametype != GT_RACE && player->kartstuff[k_balloon] <= 0) // No balloons in Match
|
if (gametype != GT_RACE && player->kartstuff[k_balloon] <= 0) // No balloons in Match
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (player->kartstuff[k_magnettimer]) // You should probably collect stuff when you're attracting it :V
|
if (player->kartstuff[k_attractiontimer]) // You should probably collect stuff when you're attracting it :V
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if (player->kartstuff[k_bootaketimer] || player->kartstuff[k_boostolentimer]
|
if (player->kartstuff[k_stealingtimer] || player->kartstuff[k_stolentimer]
|
||||||
|| player->kartstuff[k_growshrinktimer] > 1 || player->kartstuff[k_goldshroomtimer]) // Item-specific timer going off
|
|| player->kartstuff[k_growshrinktimer] > 1 || player->kartstuff[k_rocketsneakertimer]) // Item-specific timer going off
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (player->kartstuff[k_itemroulette]
|
if (player->kartstuff[k_itemroulette]
|
||||||
|| player->kartstuff[k_greenshell] || player->kartstuff[k_triplegreenshell]
|
|| player->kartstuff[k_itemamount]
|
||||||
|| player->kartstuff[k_redshell] || player->kartstuff[k_tripleredshell]
|
|| player->kartstuff[k_itemheld]) // Item slot already taken up
|
||||||
|| player->kartstuff[k_banana] || player->kartstuff[k_triplebanana]
|
|
||||||
|| player->kartstuff[k_fakeitem] & 2 || player->kartstuff[k_magnet]
|
|
||||||
|| player->kartstuff[k_bobomb] || player->kartstuff[k_blueshell]
|
|
||||||
|| player->kartstuff[k_mushroom] || player->kartstuff[k_fireflower]
|
|
||||||
|| player->kartstuff[k_star] || player->kartstuff[k_goldshroom]
|
|
||||||
|| player->kartstuff[k_lightning] || player->kartstuff[k_megashroom]
|
|
||||||
|| player->kartstuff[k_boo] || player->kartstuff[k_feather] & 1) // Item slot already taken up
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -1635,7 +1628,7 @@ static void P_HitDeathMessages(player_t *player, mobj_t *inflictor, mobj_t *sour
|
||||||
str = M_GetText("%s%s's tagging hand %s %s.\n");
|
str = M_GetText("%s%s's tagging hand %s %s.\n");
|
||||||
break;
|
break;
|
||||||
case MT_SPINFIRE:
|
case MT_SPINFIRE:
|
||||||
case MT_MUSHROOMTRAIL:
|
case MT_SNEAKERTRAIL:
|
||||||
str = M_GetText("%s%s's elemental fire trail %s %s.\n");
|
str = M_GetText("%s%s's elemental fire trail %s %s.\n");
|
||||||
break;
|
break;
|
||||||
case MT_THROWNBOUNCE:
|
case MT_THROWNBOUNCE:
|
||||||
|
@ -2038,36 +2031,22 @@ void P_KillMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source)
|
||||||
// I wish I knew a better way to do this
|
// I wish I knew a better way to do this
|
||||||
if (target->target && target->target->player && target->target->player->mo)
|
if (target->target && target->target->player && target->target->player->mo)
|
||||||
{
|
{
|
||||||
if (target->type == MT_GREENSHIELD && target->target->player->kartstuff[k_greenshell] & 1)
|
if (target->target->player->kartstuff[k_fakeitem] && target->type == MT_FAKESHIELD)
|
||||||
target->target->player->kartstuff[k_greenshell] &= ~1;
|
target->target->player->kartstuff[k_fakeitem] = 0;
|
||||||
else if (target->type == MT_REDSHIELD && target->target->player->kartstuff[k_redshell] & 1)
|
|
||||||
target->target->player->kartstuff[k_redshell] &= ~1;
|
if ((target->target->player->kartstuff[k_itemheld])
|
||||||
else if (target->type == MT_BANANASHIELD && target->target->player->kartstuff[k_banana] & 1)
|
&& ((target->type == MT_GREENSHIELD && target->target->player->kartstuff[k_itemtype] == KITEM_ORBINAUT)
|
||||||
target->target->player->kartstuff[k_banana] &= ~1;
|
|| (target->type == MT_REDSHIELD && target->target->player->kartstuff[k_itemtype] == KITEM_JAWZ)
|
||||||
else if (target->type == MT_FAKESHIELD && target->target->player->kartstuff[k_fakeitem] & 1)
|
|| (target->type == MT_BANANASHIELD && target->target->player->kartstuff[k_itemtype] == KITEM_BANANA)
|
||||||
target->target->player->kartstuff[k_fakeitem] &= ~1;
|
|| (target->type == MT_BOMBSHIELD && target->target->player->kartstuff[k_itemtype] == KITEM_MINE)))
|
||||||
else if (target->type == MT_BOMBSHIELD && target->target->player->kartstuff[k_bobomb] & 1)
|
{
|
||||||
target->target->player->kartstuff[k_bobomb] &= ~1;
|
if (target->lastlook > 0)
|
||||||
else if (target->type == MT_TRIPLEGREENSHIELD1 && target->target->player->kartstuff[k_triplegreenshell] & 1)
|
target->target->player->kartstuff[k_itemamount] = target->lastlook-1;
|
||||||
target->target->player->kartstuff[k_triplegreenshell] &= ~1;
|
else
|
||||||
else if (target->type == MT_TRIPLEGREENSHIELD2 && target->target->player->kartstuff[k_triplegreenshell] & 2)
|
target->target->player->kartstuff[k_itemamount]--;
|
||||||
target->target->player->kartstuff[k_triplegreenshell] &= ~2;
|
if (!target->target->player->kartstuff[k_itemamount])
|
||||||
else if (target->type == MT_TRIPLEGREENSHIELD3 && target->target->player->kartstuff[k_triplegreenshell] & 4)
|
target->target->player->kartstuff[k_itemheld] = 0;
|
||||||
target->target->player->kartstuff[k_triplegreenshell] &= ~4;
|
}
|
||||||
else if (target->type == MT_TRIPLEREDSHIELD1 && target->target->player->kartstuff[k_tripleredshell] & 1)
|
|
||||||
target->target->player->kartstuff[k_tripleredshell] &= ~1;
|
|
||||||
else if (target->type == MT_TRIPLEREDSHIELD2 && target->target->player->kartstuff[k_tripleredshell] & 2)
|
|
||||||
target->target->player->kartstuff[k_tripleredshell] &= ~2;
|
|
||||||
else if (target->type == MT_TRIPLEREDSHIELD3 && target->target->player->kartstuff[k_tripleredshell] & 4)
|
|
||||||
target->target->player->kartstuff[k_tripleredshell] &= ~4;
|
|
||||||
else if (target->type == MT_TRIPLEBANANASHIELD1 && target->target->player->kartstuff[k_triplebanana] & 1)
|
|
||||||
target->target->player->kartstuff[k_triplebanana] &= ~1;
|
|
||||||
else if (target->type == MT_TRIPLEBANANASHIELD2 && target->target->player->kartstuff[k_triplebanana] & 2)
|
|
||||||
target->target->player->kartstuff[k_triplebanana] &= ~2;
|
|
||||||
else if (target->type == MT_TRIPLEBANANASHIELD3 && target->target->player->kartstuff[k_triplebanana] & 4)
|
|
||||||
target->target->player->kartstuff[k_triplebanana] &= ~4;
|
|
||||||
/*else if (target->type == MT_BATTLEBALLOON && target->target->player->kartstuff[k_balloon] > target->threshold-1)
|
|
||||||
target->target->player->kartstuff[k_balloon] = target->threshold-1;*/
|
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
|
|
||||||
|
@ -2080,11 +2059,8 @@ void P_KillMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source)
|
||||||
// SRB2kart
|
// SRB2kart
|
||||||
if (target->type != MT_PLAYER && !(target->flags & MF_MONITOR)
|
if (target->type != MT_PLAYER && !(target->flags & MF_MONITOR)
|
||||||
&& !(target->type == MT_GREENITEM || target->type == MT_GREENSHIELD
|
&& !(target->type == MT_GREENITEM || target->type == MT_GREENSHIELD
|
||||||
|| target->type == MT_TRIPLEGREENSHIELD1 || target->type == MT_TRIPLEGREENSHIELD2 || target->type == MT_TRIPLEGREENSHIELD3
|
|
||||||
|| target->type == MT_REDITEM || target->type == MT_REDITEMDUD || target->type == MT_REDSHIELD
|
|| target->type == MT_REDITEM || target->type == MT_REDITEMDUD || target->type == MT_REDSHIELD
|
||||||
|| target->type == MT_TRIPLEREDSHIELD1 || target->type == MT_TRIPLEREDSHIELD2 || target->type == MT_TRIPLEREDSHIELD3
|
|
||||||
|| target->type == MT_BANANAITEM || target->type == MT_BANANASHIELD
|
|| target->type == MT_BANANAITEM || target->type == MT_BANANASHIELD
|
||||||
|| target->type == MT_TRIPLEBANANASHIELD1 || target->type == MT_TRIPLEBANANASHIELD2 || target->type == MT_TRIPLEBANANASHIELD3
|
|
||||||
|| target->type == MT_FAKEITEM || target->type == MT_FAKESHIELD
|
|| target->type == MT_FAKEITEM || target->type == MT_FAKESHIELD
|
||||||
|| target->type == MT_FIREBALL)) // kart dead items
|
|| target->type == MT_FIREBALL)) // kart dead items
|
||||||
target->flags |= MF_NOGRAVITY; // Don't drop Tails 03-08-2000
|
target->flags |= MF_NOGRAVITY; // Don't drop Tails 03-08-2000
|
||||||
|
@ -3147,13 +3123,13 @@ boolean P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32 da
|
||||||
|
|
||||||
//{ SRB2kart - special damage sources
|
//{ SRB2kart - special damage sources
|
||||||
|
|
||||||
player->kartstuff[k_mushroomtimer] = 0;
|
player->kartstuff[k_sneakertimer] = 0;
|
||||||
|
|
||||||
// Thunder
|
// Thunder
|
||||||
if (damage == 64 && player != source->player)
|
if (damage == 64 && player != source->player)
|
||||||
{
|
{
|
||||||
// Don't flip out while super!
|
// Don't flip out while super!
|
||||||
if (!player->kartstuff[k_startimer] && player->kartstuff[k_growshrinktimer] <= 0)
|
if (!player->kartstuff[k_invincibilitytimer] && player->kartstuff[k_growshrinktimer] <= 0)
|
||||||
{
|
{
|
||||||
// Start slipping!
|
// Start slipping!
|
||||||
K_SpinPlayer(player, source);
|
K_SpinPlayer(player, source);
|
||||||
|
@ -3162,7 +3138,7 @@ boolean P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32 da
|
||||||
player->mo->destscale = 6*FRACUNIT/8;
|
player->mo->destscale = 6*FRACUNIT/8;
|
||||||
player->kartstuff[k_growshrinktimer] -= (100+20*(16-(player->kartstuff[k_position])));
|
player->kartstuff[k_growshrinktimer] -= (100+20*(16-(player->kartstuff[k_position])));
|
||||||
}
|
}
|
||||||
// Mega Mushroom? Let's take that away.
|
// Size Up? Let's take that away.
|
||||||
if (player->kartstuff[k_growshrinktimer] > 0)
|
if (player->kartstuff[k_growshrinktimer] > 0)
|
||||||
{
|
{
|
||||||
player->kartstuff[k_growshrinktimer] = 2;
|
player->kartstuff[k_growshrinktimer] = 2;
|
||||||
|
@ -3208,15 +3184,13 @@ boolean P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32 da
|
||||||
// Instant-Death
|
// Instant-Death
|
||||||
if (damage == 10000)
|
if (damage == 10000)
|
||||||
P_KillPlayer(player, source, damage);
|
P_KillPlayer(player, source, damage);
|
||||||
else if (player->kartstuff[k_startimer] > 0 || player->kartstuff[k_growshrinktimer] > 0 || player->powers[pw_flashing])
|
else if (player->kartstuff[k_invincibilitytimer] > 0 || player->kartstuff[k_growshrinktimer] > 0 || player->powers[pw_flashing])
|
||||||
return false;
|
return false;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (inflictor && (inflictor->type == MT_GREENITEM || inflictor->type == MT_GREENSHIELD
|
if (inflictor && (inflictor->type == MT_GREENITEM || inflictor->type == MT_GREENSHIELD
|
||||||
|| inflictor->type == MT_REDITEM || inflictor->type == MT_REDSHIELD || inflictor->type == MT_REDITEMDUD
|
|| inflictor->type == MT_REDITEM || inflictor->type == MT_REDSHIELD || inflictor->type == MT_REDITEMDUD
|
||||||
|| inflictor->type == MT_FAKEITEM || inflictor->type == MT_FAKESHIELD
|
|| inflictor->type == MT_FAKEITEM || inflictor->type == MT_FAKESHIELD
|
||||||
|| inflictor->type == MT_TRIPLEGREENSHIELD1 || inflictor->type == MT_TRIPLEGREENSHIELD2 || inflictor->type == MT_TRIPLEGREENSHIELD3
|
|
||||||
|| inflictor->type == MT_TRIPLEREDSHIELD1 || inflictor->type == MT_TRIPLEREDSHIELD2 || inflictor->type == MT_TRIPLEREDSHIELD3
|
|
||||||
|| inflictor->player))
|
|| inflictor->player))
|
||||||
{
|
{
|
||||||
player->kartstuff[k_spinouttype] = 1;
|
player->kartstuff[k_spinouttype] = 1;
|
||||||
|
|
69
src/p_map.c
69
src/p_map.c
|
@ -655,10 +655,8 @@ static boolean PIT_CheckThing(mobj_t *thing)
|
||||||
|
|
||||||
if (tmthing->type == MT_RANDOMITEM)
|
if (tmthing->type == MT_RANDOMITEM)
|
||||||
return true;
|
return true;
|
||||||
if (tmthing->type == MT_GREENITEM || tmthing->type == MT_REDITEM || tmthing->type == MT_REDITEMDUD ||
|
if (tmthing->type == MT_GREENITEM || tmthing->type == MT_REDITEM || tmthing->type == MT_REDITEMDUD
|
||||||
tmthing->type == MT_GREENSHIELD || tmthing->type == MT_REDSHIELD ||
|
|| tmthing->type == MT_GREENSHIELD || tmthing->type == MT_REDSHIELD)
|
||||||
tmthing->type == MT_TRIPLEGREENSHIELD1 || tmthing->type == MT_TRIPLEGREENSHIELD2 || tmthing->type == MT_TRIPLEGREENSHIELD3 ||
|
|
||||||
tmthing->type == MT_TRIPLEREDSHIELD1 || tmthing->type == MT_TRIPLEREDSHIELD2 || tmthing->type == MT_TRIPLEREDSHIELD3)
|
|
||||||
{
|
{
|
||||||
// see if it went over / under
|
// see if it went over / under
|
||||||
if (tmthing->z > thing->z + thing->height)
|
if (tmthing->z > thing->z + thing->height)
|
||||||
|
@ -672,10 +670,8 @@ static boolean PIT_CheckThing(mobj_t *thing)
|
||||||
if (tmthing->health <= 0 || thing->health <= 0)
|
if (tmthing->health <= 0 || thing->health <= 0)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if (((tmthing->type == MT_TRIPLEGREENSHIELD1 || tmthing->type == MT_TRIPLEGREENSHIELD2 || tmthing->type == MT_TRIPLEGREENSHIELD3
|
if ((tmthing->type == MT_GREENSHIELD || tmthing->type == MT_REDSHIELD) && tmthing->lastlook
|
||||||
|| tmthing->type == MT_TRIPLEREDSHIELD1 || tmthing->type == MT_TRIPLEREDSHIELD2 || tmthing->type == MT_TRIPLEREDSHIELD3)
|
&& (thing->type == MT_GREENSHIELD || thing->type == MT_REDSHIELD) && thing->lastlook
|
||||||
&& (thing->type == MT_TRIPLEGREENSHIELD1 || thing->type == MT_TRIPLEGREENSHIELD2 || thing->type == MT_TRIPLEGREENSHIELD3
|
|
||||||
|| thing->type == MT_TRIPLEREDSHIELD1 || thing->type == MT_TRIPLEREDSHIELD2 || thing->type == MT_TRIPLEREDSHIELD3))
|
|
||||||
&& (tmthing->target == thing->target)) // Don't hit each other if you have the same target
|
&& (tmthing->target == thing->target)) // Don't hit each other if you have the same target
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
@ -705,10 +701,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
|
||||||
}
|
}
|
||||||
else if (thing->type == MT_GREENITEM || thing->type == MT_REDITEM || thing->type == MT_REDITEMDUD
|
else if (thing->type == MT_GREENITEM || thing->type == MT_REDITEM || thing->type == MT_REDITEMDUD
|
||||||
|| thing->type == MT_GREENSHIELD || thing->type == MT_REDSHIELD
|
|| thing->type == MT_GREENSHIELD || thing->type == MT_REDSHIELD
|
||||||
|| thing->type == MT_TRIPLEGREENSHIELD1 || thing->type == MT_TRIPLEGREENSHIELD2 || thing->type == MT_TRIPLEGREENSHIELD3
|
|
||||||
|| thing->type == MT_TRIPLEREDSHIELD1 || thing->type == MT_TRIPLEREDSHIELD2 || thing->type == MT_TRIPLEREDSHIELD3
|
|
||||||
|| thing->type == MT_BANANAITEM || thing->type == MT_BANANASHIELD
|
|| thing->type == MT_BANANAITEM || thing->type == MT_BANANASHIELD
|
||||||
|| thing->type == MT_TRIPLEBANANASHIELD1 || thing->type == MT_TRIPLEBANANASHIELD2 || thing->type == MT_TRIPLEBANANASHIELD3
|
|
||||||
|| thing->type == MT_FIREBALL)
|
|| thing->type == MT_FIREBALL)
|
||||||
{
|
{
|
||||||
// Other Item Damage
|
// Other Item Damage
|
||||||
|
@ -739,9 +732,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
|
||||||
}
|
}
|
||||||
else if (thing->type == MT_FAKEITEM || thing->type == MT_FAKESHIELD)
|
else if (thing->type == MT_FAKEITEM || thing->type == MT_FAKESHIELD)
|
||||||
{
|
{
|
||||||
if (tmthing->type == MT_GREENSHIELD || tmthing->type == MT_REDSHIELD
|
if (tmthing->type == MT_GREENSHIELD || tmthing->type == MT_REDSHIELD)
|
||||||
|| tmthing->type == MT_TRIPLEGREENSHIELD1 || tmthing->type == MT_TRIPLEGREENSHIELD2 || tmthing->type == MT_TRIPLEGREENSHIELD3
|
|
||||||
|| tmthing->type == MT_TRIPLEREDSHIELD1 || tmthing->type == MT_TRIPLEREDSHIELD2 || tmthing->type == MT_TRIPLEREDSHIELD3)
|
|
||||||
{
|
{
|
||||||
// This Item Damage
|
// This Item Damage
|
||||||
if (tmthing->eflags & MFE_VERTICALFLIP)
|
if (tmthing->eflags & MFE_VERTICALFLIP)
|
||||||
|
@ -856,7 +847,6 @@ static boolean PIT_CheckThing(mobj_t *thing)
|
||||||
return true; // This doesn't collide with anything, but we want it to effect the player anyway.
|
return true; // This doesn't collide with anything, but we want it to effect the player anyway.
|
||||||
}
|
}
|
||||||
else if (tmthing->type == MT_BANANASHIELD || tmthing->type == MT_BANANAITEM
|
else if (tmthing->type == MT_BANANASHIELD || tmthing->type == MT_BANANAITEM
|
||||||
|| tmthing->type == MT_TRIPLEBANANASHIELD1 || tmthing->type == MT_TRIPLEBANANASHIELD2 || tmthing->type == MT_TRIPLEBANANASHIELD3
|
|
||||||
|| tmthing->type == MT_FIREBALL)
|
|| tmthing->type == MT_FIREBALL)
|
||||||
{
|
{
|
||||||
// see if it went over / under
|
// see if it went over / under
|
||||||
|
@ -871,8 +861,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
|
||||||
if (tmthing->health <= 0 || thing->health <= 0)
|
if (tmthing->health <= 0 || thing->health <= 0)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if (((tmthing->type == MT_BANANASHIELD || tmthing->type == MT_TRIPLEBANANASHIELD1 || tmthing->type == MT_TRIPLEBANANASHIELD2 || tmthing->type == MT_TRIPLEBANANASHIELD3)
|
if (((tmthing->type == MT_BANANASHIELD) && (thing->type == MT_BANANASHIELD))
|
||||||
&& (thing->type == MT_BANANASHIELD || thing->type == MT_TRIPLEBANANASHIELD1 || thing->type == MT_TRIPLEBANANASHIELD2 || thing->type == MT_TRIPLEBANANASHIELD3))
|
|
||||||
&& (tmthing->target == thing->target)) // Don't hit each other if you have the same target
|
&& (tmthing->target == thing->target)) // Don't hit each other if you have the same target
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
@ -899,11 +888,9 @@ static boolean PIT_CheckThing(mobj_t *thing)
|
||||||
P_SetObjectMomZ(tmthing, 8*FRACUNIT, false);
|
P_SetObjectMomZ(tmthing, 8*FRACUNIT, false);
|
||||||
P_InstaThrust(tmthing, R_PointToAngle2(thing->x, thing->y, tmthing->x, tmthing->y)+ANGLE_90, 16*FRACUNIT);
|
P_InstaThrust(tmthing, R_PointToAngle2(thing->x, thing->y, tmthing->x, tmthing->y)+ANGLE_90, 16*FRACUNIT);
|
||||||
}
|
}
|
||||||
else if (thing->type == MT_BANANASHIELD || thing->type == MT_BANANAITEM
|
else if (thing->type == MT_BANANAITEM || thing->type == MT_BANANASHIELD
|
||||||
|| thing->type == MT_TRIPLEBANANASHIELD1 || thing->type == MT_TRIPLEBANANASHIELD2 || thing->type == MT_TRIPLEBANANASHIELD3
|
|| thing->type == MT_GREENITEM || thing->type == MT_GREENSHIELD
|
||||||
|| thing->type == MT_GREENITEM || thing->type == MT_REDITEM || thing->type == MT_REDITEMDUD
|
|| thing->type == MT_REDITEM || thing->type == MT_REDITEMDUD || thing->type == MT_REDSHIELD
|
||||||
|| thing->type == MT_GREENSHIELD || thing->type == MT_TRIPLEGREENSHIELD1 || thing->type == MT_TRIPLEGREENSHIELD2 || thing->type == MT_TRIPLEGREENSHIELD3
|
|
||||||
|| thing->type == MT_REDSHIELD || thing->type == MT_TRIPLEREDSHIELD1 || thing->type == MT_TRIPLEREDSHIELD2 || thing->type == MT_TRIPLEREDSHIELD3
|
|
||||||
|| thing->type == MT_FIREBALL)
|
|| thing->type == MT_FIREBALL)
|
||||||
{
|
{
|
||||||
// Other Item Damage
|
// Other Item Damage
|
||||||
|
@ -934,7 +921,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
|
||||||
}
|
}
|
||||||
else if (thing->type == MT_FAKEITEM || thing->type == MT_FAKESHIELD)
|
else if (thing->type == MT_FAKEITEM || thing->type == MT_FAKESHIELD)
|
||||||
{
|
{
|
||||||
if (tmthing->type == MT_BANANASHIELD || tmthing->type == MT_TRIPLEBANANASHIELD1 || tmthing->type == MT_TRIPLEBANANASHIELD2 || tmthing->type == MT_TRIPLEBANANASHIELD3)
|
if (tmthing->type == MT_BANANASHIELD)
|
||||||
{
|
{
|
||||||
// This Item Damage
|
// This Item Damage
|
||||||
if (tmthing->eflags & MFE_VERTICALFLIP)
|
if (tmthing->eflags & MFE_VERTICALFLIP)
|
||||||
|
@ -999,10 +986,10 @@ static boolean PIT_CheckThing(mobj_t *thing)
|
||||||
P_SetObjectMomZ(tmthing, 8*FRACUNIT, false);
|
P_SetObjectMomZ(tmthing, 8*FRACUNIT, false);
|
||||||
P_InstaThrust(tmthing, R_PointToAngle2(thing->x, thing->y, tmthing->x, tmthing->y)+ANGLE_90, 16*FRACUNIT);
|
P_InstaThrust(tmthing, R_PointToAngle2(thing->x, thing->y, tmthing->x, tmthing->y)+ANGLE_90, 16*FRACUNIT);
|
||||||
}
|
}
|
||||||
else if (thing->type == MT_GREENSHIELD || thing->type == MT_TRIPLEGREENSHIELD1 || thing->type == MT_TRIPLEGREENSHIELD2 || thing->type == MT_TRIPLEGREENSHIELD3 // When these items collide with the fake item, both of them are destroyed
|
else if (thing->type == MT_GREENSHIELD // When these items collide with the fake item, both of them are destroyed
|
||||||
|| thing->type == MT_REDSHIELD || thing->type == MT_TRIPLEREDSHIELD1 || thing->type == MT_TRIPLEREDSHIELD2 || thing->type == MT_TRIPLEREDSHIELD3
|
|| thing->type == MT_REDSHIELD
|
||||||
|| thing->type == MT_BOMBSHIELD
|
|| thing->type == MT_BOMBSHIELD
|
||||||
|| thing->type == MT_BANANASHIELD || thing->type == MT_TRIPLEBANANASHIELD1 || thing->type == MT_TRIPLEBANANASHIELD2 || thing->type == MT_TRIPLEBANANASHIELD3
|
|| thing->type == MT_BANANASHIELD
|
||||||
|| thing->type == MT_FAKEITEM || thing->type == MT_FAKESHIELD)
|
|| thing->type == MT_FAKEITEM || thing->type == MT_FAKESHIELD)
|
||||||
{
|
{
|
||||||
// Other Item Damage
|
// Other Item Damage
|
||||||
|
@ -1073,8 +1060,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
|
||||||
P_KillMobj(tmthing, thing, thing);
|
P_KillMobj(tmthing, thing, thing);
|
||||||
}
|
}
|
||||||
else if (thing->type == MT_GREENITEM || thing->type == MT_REDITEM || thing->type == MT_REDITEMDUD
|
else if (thing->type == MT_GREENITEM || thing->type == MT_REDITEM || thing->type == MT_REDITEMDUD
|
||||||
|| thing->type == MT_GREENSHIELD || thing->type == MT_TRIPLEGREENSHIELD1 || thing->type == MT_TRIPLEGREENSHIELD2 || thing->type == MT_TRIPLEGREENSHIELD3
|
|| thing->type == MT_GREENSHIELD || thing->type == MT_REDSHIELD)
|
||||||
|| thing->type == MT_REDSHIELD || thing->type == MT_TRIPLEREDSHIELD1 || thing->type == MT_TRIPLEREDSHIELD2 || thing->type == MT_TRIPLEREDSHIELD3)
|
|
||||||
{
|
{
|
||||||
P_KillMobj(tmthing, thing, thing);
|
P_KillMobj(tmthing, thing, thing);
|
||||||
|
|
||||||
|
@ -1096,11 +1082,8 @@ static boolean PIT_CheckThing(mobj_t *thing)
|
||||||
else if (tmthing->type == MT_PLAYER &&
|
else if (tmthing->type == MT_PLAYER &&
|
||||||
(thing->type == MT_GREENSHIELD || thing->type == MT_GREENITEM
|
(thing->type == MT_GREENSHIELD || thing->type == MT_GREENITEM
|
||||||
|| thing->type == MT_REDSHIELD || thing->type == MT_REDITEM || thing->type == MT_REDITEMDUD
|
|| thing->type == MT_REDSHIELD || thing->type == MT_REDITEM || thing->type == MT_REDITEMDUD
|
||||||
|| thing->type == MT_TRIPLEGREENSHIELD1 || thing->type == MT_TRIPLEGREENSHIELD2 || thing->type == MT_TRIPLEGREENSHIELD3
|
|
||||||
|| thing->type == MT_TRIPLEREDSHIELD1 || thing->type == MT_TRIPLEREDSHIELD2 || thing->type == MT_TRIPLEREDSHIELD3
|
|
||||||
|| thing->type == MT_FAKESHIELD || thing->type == MT_FAKEITEM
|
|| thing->type == MT_FAKESHIELD || thing->type == MT_FAKEITEM
|
||||||
|| thing->type == MT_BANANASHIELD || thing->type == MT_BANANAITEM
|
|| thing->type == MT_BANANASHIELD || thing->type == MT_BANANAITEM
|
||||||
|| thing->type == MT_TRIPLEBANANASHIELD1 || thing->type == MT_TRIPLEBANANASHIELD2 || thing->type == MT_TRIPLEBANANASHIELD3
|
|
||||||
|| thing->type == MT_BOMBSHIELD || thing->type == MT_BOMBITEM
|
|| thing->type == MT_BOMBSHIELD || thing->type == MT_BOMBITEM
|
||||||
|| thing->type == MT_BOMBEXPLOSION
|
|| thing->type == MT_BOMBEXPLOSION
|
||||||
|| thing->type == MT_SINK || thing->type == MT_FIREBALL
|
|| thing->type == MT_SINK || thing->type == MT_FIREBALL
|
||||||
|
@ -1116,8 +1099,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
|
||||||
&& !(thing->type == MT_GREENITEM || thing->type == MT_REDITEM || thing->type == MT_REDITEMDUD))
|
&& !(thing->type == MT_GREENITEM || thing->type == MT_REDITEM || thing->type == MT_REDITEMDUD))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if (thing->type == MT_GREENSHIELD || thing->type == MT_TRIPLEGREENSHIELD1 || thing->type == MT_TRIPLEGREENSHIELD2 || thing->type == MT_TRIPLEGREENSHIELD3
|
if (thing->type == MT_GREENSHIELD || thing->type == MT_REDSHIELD
|
||||||
|| thing->type == MT_REDSHIELD || thing->type == MT_TRIPLEREDSHIELD1 || thing->type == MT_TRIPLEREDSHIELD2 || thing->type == MT_TRIPLEREDSHIELD3
|
|
||||||
|| thing->type == MT_GREENITEM || thing->type == MT_REDITEM || thing->type == MT_REDITEMDUD
|
|| thing->type == MT_GREENITEM || thing->type == MT_REDITEM || thing->type == MT_REDITEMDUD
|
||||||
|| thing->type == MT_FAKESHIELD || thing->type == MT_FAKEITEM)
|
|| thing->type == MT_FAKESHIELD || thing->type == MT_FAKEITEM)
|
||||||
{
|
{
|
||||||
|
@ -1146,7 +1128,6 @@ static boolean PIT_CheckThing(mobj_t *thing)
|
||||||
P_InstaThrust(thing, R_PointToAngle2(tmthing->x, tmthing->y, thing->x, thing->y)+ANGLE_90, 16*FRACUNIT);
|
P_InstaThrust(thing, R_PointToAngle2(tmthing->x, tmthing->y, thing->x, thing->y)+ANGLE_90, 16*FRACUNIT);
|
||||||
}
|
}
|
||||||
else if (thing->type == MT_BANANASHIELD || thing->type == MT_BANANAITEM
|
else if (thing->type == MT_BANANASHIELD || thing->type == MT_BANANAITEM
|
||||||
|| thing->type == MT_TRIPLEBANANASHIELD1 || thing->type == MT_TRIPLEBANANASHIELD2 || thing->type == MT_TRIPLEBANANASHIELD3
|
|
||||||
|| thing->type == MT_FIREBALL)
|
|| thing->type == MT_FIREBALL)
|
||||||
{
|
{
|
||||||
if ((thing->target == tmthing) && (thing->threshold > 0))
|
if ((thing->target == tmthing) && (thing->threshold > 0))
|
||||||
|
@ -1549,9 +1530,9 @@ static boolean PIT_CheckThing(mobj_t *thing)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SRB2kart - Starpower!
|
// SRB2kart - Starpower!
|
||||||
if (tmthing->player->kartstuff[k_startimer] && !thing->player->kartstuff[k_startimer])
|
if (tmthing->player->kartstuff[k_invincibilitytimer] && !thing->player->kartstuff[k_invincibilitytimer])
|
||||||
P_DamageMobj(thing, tmthing, tmthing, 1);
|
P_DamageMobj(thing, tmthing, tmthing, 1);
|
||||||
else if (thing->player->kartstuff[k_startimer] && !tmthing->player->kartstuff[k_startimer])
|
else if (thing->player->kartstuff[k_invincibilitytimer] && !tmthing->player->kartstuff[k_invincibilitytimer])
|
||||||
P_DamageMobj(tmthing, thing, thing, 1);
|
P_DamageMobj(tmthing, thing, thing, 1);
|
||||||
|
|
||||||
if (G_RingSlingerGametype() && (!G_GametypeHasTeams() || tmthing->player->ctfteam != thing->player->ctfteam))
|
if (G_RingSlingerGametype() && (!G_GametypeHasTeams() || tmthing->player->ctfteam != thing->player->ctfteam))
|
||||||
|
@ -1644,13 +1625,13 @@ static boolean PIT_CheckThing(mobj_t *thing)
|
||||||
return true; // underneath
|
return true; // underneath
|
||||||
|
|
||||||
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_bootimer] || thing->player->kartstuff[k_spinouttimer]
|
|| thing->player->kartstuff[k_hyudorotimer] || thing->player->kartstuff[k_spinouttimer]
|
||||||
|| thing->player->kartstuff[k_startimer] || thing->player->kartstuff[k_justbumped]
|
|| thing->player->kartstuff[k_invincibilitytimer] || thing->player->kartstuff[k_justbumped]
|
||||||
|| (gametype != GT_RACE && (thing->player->kartstuff[k_balloon] <= 0
|
|| (gametype != GT_RACE && (thing->player->kartstuff[k_balloon] <= 0
|
||||||
&& (thing->player->kartstuff[k_comebacktimer] || thing->player->kartstuff[k_comebackmode] == 1)))
|
&& (thing->player->kartstuff[k_comebacktimer] || thing->player->kartstuff[k_comebackmode] == 1)))
|
||||||
|| tmthing->player->kartstuff[k_growshrinktimer] || tmthing->player->kartstuff[k_squishedtimer]
|
|| tmthing->player->kartstuff[k_growshrinktimer] || tmthing->player->kartstuff[k_squishedtimer]
|
||||||
|| tmthing->player->kartstuff[k_bootimer] || tmthing->player->kartstuff[k_spinouttimer]
|
|| tmthing->player->kartstuff[k_hyudorotimer] || tmthing->player->kartstuff[k_spinouttimer]
|
||||||
|| tmthing->player->kartstuff[k_startimer] || tmthing->player->kartstuff[k_justbumped]
|
|| tmthing->player->kartstuff[k_invincibilitytimer] || tmthing->player->kartstuff[k_justbumped]
|
||||||
|| (gametype != GT_RACE && (tmthing->player->kartstuff[k_balloon] <= 0
|
|| (gametype != GT_RACE && (tmthing->player->kartstuff[k_balloon] <= 0
|
||||||
&& (tmthing->player->kartstuff[k_comebacktimer] || tmthing->player->kartstuff[k_comebackmode] == 1))))
|
&& (tmthing->player->kartstuff[k_comebacktimer] || tmthing->player->kartstuff[k_comebackmode] == 1))))
|
||||||
{
|
{
|
||||||
|
@ -1680,7 +1661,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
|
||||||
if (P_IsObjectOnGround(thing) && tmthing->momz < 0)
|
if (P_IsObjectOnGround(thing) && tmthing->momz < 0)
|
||||||
{
|
{
|
||||||
K_KartBouncing(tmthing, thing, true, false);
|
K_KartBouncing(tmthing, thing, true, false);
|
||||||
if (gametype != GT_RACE && tmthing->player->kartstuff[k_feather] & 2)
|
if (gametype != GT_RACE && tmthing->player->kartstuff[k_pogospring])
|
||||||
{
|
{
|
||||||
K_StealBalloon(tmthing->player, thing->player, false);
|
K_StealBalloon(tmthing->player, thing->player, false);
|
||||||
K_SpinPlayer(thing->player, tmthing);
|
K_SpinPlayer(thing->player, tmthing);
|
||||||
|
@ -1689,7 +1670,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
|
||||||
else if (P_IsObjectOnGround(tmthing) && thing->momz < 0)
|
else if (P_IsObjectOnGround(tmthing) && thing->momz < 0)
|
||||||
{
|
{
|
||||||
K_KartBouncing(thing, tmthing, true, false);
|
K_KartBouncing(thing, tmthing, true, false);
|
||||||
if (gametype != GT_RACE && thing->player->kartstuff[k_feather] & 2)
|
if (gametype != GT_RACE && thing->player->kartstuff[k_pogospring])
|
||||||
{
|
{
|
||||||
K_StealBalloon(thing->player, tmthing->player, false);
|
K_StealBalloon(thing->player, tmthing->player, false);
|
||||||
K_SpinPlayer(tmthing->player, thing);
|
K_SpinPlayer(tmthing->player, thing);
|
||||||
|
@ -1700,12 +1681,12 @@ static boolean PIT_CheckThing(mobj_t *thing)
|
||||||
|
|
||||||
if (gametype != GT_RACE)
|
if (gametype != GT_RACE)
|
||||||
{
|
{
|
||||||
if (thing->player->kartstuff[k_mushroomtimer] && !(tmthing->player->kartstuff[k_mushroomtimer]))
|
if (thing->player->kartstuff[k_sneakertimer] && !(tmthing->player->kartstuff[k_sneakertimer]))
|
||||||
{
|
{
|
||||||
K_StealBalloon(thing->player, tmthing->player, false);
|
K_StealBalloon(thing->player, tmthing->player, false);
|
||||||
K_SpinPlayer(tmthing->player, thing);
|
K_SpinPlayer(tmthing->player, thing);
|
||||||
}
|
}
|
||||||
else if (tmthing->player->kartstuff[k_mushroomtimer] && !(thing->player->kartstuff[k_mushroomtimer]))
|
else if (tmthing->player->kartstuff[k_sneakertimer] && !(thing->player->kartstuff[k_sneakertimer]))
|
||||||
{
|
{
|
||||||
K_StealBalloon(tmthing->player, thing->player, false);
|
K_StealBalloon(tmthing->player, thing->player, false);
|
||||||
K_SpinPlayer(thing->player, tmthing);
|
K_SpinPlayer(thing->player, tmthing);
|
||||||
|
|
104
src/p_mobj.c
104
src/p_mobj.c
|
@ -1351,7 +1351,7 @@ fixed_t P_GetMobjGravity(mobj_t *mo)
|
||||||
}
|
}
|
||||||
if (wasflip == !(mo->eflags & MFE_VERTICALFLIP)) // note!! == ! is not equivalent to != here - turns numeric into bool this way
|
if (wasflip == !(mo->eflags & MFE_VERTICALFLIP)) // note!! == ! is not equivalent to != here - turns numeric into bool this way
|
||||||
P_PlayerFlip(mo);
|
P_PlayerFlip(mo);
|
||||||
if (mo->player->kartstuff[k_feather] & 2)
|
if (mo->player->kartstuff[k_pogospring])
|
||||||
gravityadd = FixedMul(gravityadd, 5*FRACUNIT/2);
|
gravityadd = FixedMul(gravityadd, 5*FRACUNIT/2);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -1741,7 +1741,7 @@ void P_XYMovement(mobj_t *mo)
|
||||||
if (player->bot)
|
if (player->bot)
|
||||||
B_MoveBlocked(player);
|
B_MoveBlocked(player);
|
||||||
}
|
}
|
||||||
//{ SRB2kart - Red Shell
|
//{ SRB2kart - Jawz
|
||||||
if (mo->type == MT_REDITEM || mo->type == MT_REDITEMDUD)
|
if (mo->type == MT_REDITEM || mo->type == MT_REDITEMDUD)
|
||||||
{
|
{
|
||||||
if (mo->health == 1)
|
if (mo->health == 1)
|
||||||
|
@ -6518,7 +6518,7 @@ void P_MobjThinker(mobj_t *mobj)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mobj->target->player->kartstuff[k_bootimer] > 0)
|
if (mobj->target->player->kartstuff[k_hyudorotimer] > 0)
|
||||||
{
|
{
|
||||||
if ((mobj->target->player == &players[displayplayer]
|
if ((mobj->target->player == &players[displayplayer]
|
||||||
|| (splitscreen && mobj->target->player == &players[secondarydisplayplayer])
|
|| (splitscreen && mobj->target->player == &players[secondarydisplayplayer])
|
||||||
|
@ -6528,7 +6528,7 @@ void P_MobjThinker(mobj_t *mobj)
|
||||||
|| (splitscreen && mobj->target->player == &players[secondarydisplayplayer])
|
|| (splitscreen && mobj->target->player == &players[secondarydisplayplayer])
|
||||||
|| (splitscreen > 1 && mobj->target->player == &players[thirddisplayplayer])
|
|| (splitscreen > 1 && mobj->target->player == &players[thirddisplayplayer])
|
||||||
|| (splitscreen > 2 && mobj->target->player == &players[fourthdisplayplayer]))
|
|| (splitscreen > 2 && mobj->target->player == &players[fourthdisplayplayer]))
|
||||||
&& (mobj->target->player->kartstuff[k_bootimer] < 1*TICRATE/2 || mobj->target->player->kartstuff[k_bootimer] > bootime-(1*TICRATE/2))))
|
&& (mobj->target->player->kartstuff[k_hyudorotimer] < 1*TICRATE/2 || mobj->target->player->kartstuff[k_hyudorotimer] > hyudorotime-(1*TICRATE/2))))
|
||||||
{
|
{
|
||||||
if (leveltime & 1)
|
if (leveltime & 1)
|
||||||
mobj->flags2 |= MF2_DONTDRAW;
|
mobj->flags2 |= MF2_DONTDRAW;
|
||||||
|
@ -6538,7 +6538,7 @@ void P_MobjThinker(mobj_t *mobj)
|
||||||
else
|
else
|
||||||
mobj->flags2 |= MF2_DONTDRAW;
|
mobj->flags2 |= MF2_DONTDRAW;
|
||||||
}
|
}
|
||||||
else if (mobj->target->player->kartstuff[k_bootimer] == 0)
|
else if (mobj->target->player->kartstuff[k_hyudorotimer] == 0)
|
||||||
{
|
{
|
||||||
mobj->flags2 &= ~MF2_DONTDRAW;
|
mobj->flags2 &= ~MF2_DONTDRAW;
|
||||||
}
|
}
|
||||||
|
@ -6592,15 +6592,6 @@ void P_MobjThinker(mobj_t *mobj)
|
||||||
case MT_BANANASHIELD:
|
case MT_BANANASHIELD:
|
||||||
case MT_FAKESHIELD:
|
case MT_FAKESHIELD:
|
||||||
case MT_BOMBSHIELD:
|
case MT_BOMBSHIELD:
|
||||||
case MT_TRIPLEGREENSHIELD1:
|
|
||||||
case MT_TRIPLEGREENSHIELD2:
|
|
||||||
case MT_TRIPLEGREENSHIELD3:
|
|
||||||
case MT_TRIPLEREDSHIELD1:
|
|
||||||
case MT_TRIPLEREDSHIELD2:
|
|
||||||
case MT_TRIPLEREDSHIELD3:
|
|
||||||
case MT_TRIPLEBANANASHIELD1:
|
|
||||||
case MT_TRIPLEBANANASHIELD2:
|
|
||||||
case MT_TRIPLEBANANASHIELD3:
|
|
||||||
if (mobj->health > 0 && mobj->target && mobj->target->player && mobj->target->player->mo
|
if (mobj->health > 0 && mobj->target && mobj->target->player && mobj->target->player->mo
|
||||||
&& mobj->target->player->health > 0 && !mobj->target->player->spectator)
|
&& mobj->target->player->health > 0 && !mobj->target->player->spectator)
|
||||||
{
|
{
|
||||||
|
@ -6608,12 +6599,11 @@ void P_MobjThinker(mobj_t *mobj)
|
||||||
const fixed_t radius = FixedHypot(mobj->target->radius, mobj->target->radius) + FixedHypot(mobj->radius, mobj->radius); // mobj's distance from its Target, or Radius.
|
const fixed_t radius = FixedHypot(mobj->target->radius, mobj->target->radius) + FixedHypot(mobj->radius, mobj->radius); // mobj's distance from its Target, or Radius.
|
||||||
|
|
||||||
//mobj->angle += FixedAngle(12*FRACUNIT); // mobj's actual speed.
|
//mobj->angle += FixedAngle(12*FRACUNIT); // mobj's actual speed.
|
||||||
if (mobj->type == MT_TRIPLEGREENSHIELD1 || mobj->type == MT_TRIPLEGREENSHIELD2 || mobj->type == MT_TRIPLEGREENSHIELD3
|
if ((mobj->type == MT_GREENSHIELD || mobj->type == MT_REDSHIELD) && mobj->lastlook > 0)
|
||||||
|| mobj->type == MT_TRIPLEREDSHIELD1 || mobj->type == MT_TRIPLEREDSHIELD2 || mobj->type == MT_TRIPLEREDSHIELD3)
|
|
||||||
mobj->angle += FixedAngle(mobj->info->speed);
|
mobj->angle += FixedAngle(mobj->info->speed);
|
||||||
else if (mobj->type == MT_TRIPLEBANANASHIELD2)
|
else if (mobj->type == MT_BANANASHIELD && mobj->lastlook == 2)
|
||||||
mobj->angle = (mobj->target->angle + ANGLE_135);
|
mobj->angle = (mobj->target->angle + ANGLE_135);
|
||||||
else if (mobj->type == MT_TRIPLEBANANASHIELD3)
|
else if (mobj->type == MT_BANANASHIELD && mobj->lastlook == 3)
|
||||||
mobj->angle = (mobj->target->angle + ANGLE_225);
|
mobj->angle = (mobj->target->angle + ANGLE_225);
|
||||||
else
|
else
|
||||||
mobj->angle = (mobj->target->angle + ANGLE_180);
|
mobj->angle = (mobj->target->angle + ANGLE_180);
|
||||||
|
@ -6669,20 +6659,13 @@ void P_MobjThinker(mobj_t *mobj)
|
||||||
mobj->momx = mobj->momy = 0;
|
mobj->momx = mobj->momy = 0;
|
||||||
|
|
||||||
// Was this so hard?
|
// Was this so hard?
|
||||||
if ((mobj->type == MT_GREENSHIELD && !(mobj->target->player->kartstuff[k_greenshell] & 1))
|
if ((mobj->type == MT_GREENSHIELD && mobj->target->player->kartstuff[k_itemtype] != KITEM_ORBINAUT)
|
||||||
|| (mobj->type == MT_REDSHIELD && !(mobj->target->player->kartstuff[k_redshell] & 1))
|
|| (mobj->type == MT_REDSHIELD && mobj->target->player->kartstuff[k_itemtype] != KITEM_JAWZ)
|
||||||
|| (mobj->type == MT_BANANASHIELD && !(mobj->target->player->kartstuff[k_banana] & 1))
|
|| (mobj->type == MT_BANANASHIELD && mobj->target->player->kartstuff[k_itemtype] != KITEM_BANANA)
|
||||||
|| (mobj->type == MT_TRIPLEGREENSHIELD1 && !(mobj->target->player->kartstuff[k_triplegreenshell] & 1))
|
|| (mobj->type == MT_BOMBSHIELD && mobj->target->player->kartstuff[k_itemtype] != KITEM_MINE)
|
||||||
|| (mobj->type == MT_TRIPLEGREENSHIELD2 && !(mobj->target->player->kartstuff[k_triplegreenshell] & 2))
|
|| (mobj->type == MT_FAKESHIELD && !mobj->target->player->kartstuff[k_fakeitem])
|
||||||
|| (mobj->type == MT_TRIPLEGREENSHIELD3 && !(mobj->target->player->kartstuff[k_triplegreenshell] & 4))
|
|| (mobj->type != MT_FAKESHIELD && !mobj->target->player->kartstuff[k_itemheld])
|
||||||
|| (mobj->type == MT_TRIPLEREDSHIELD1 && !(mobj->target->player->kartstuff[k_tripleredshell] & 1))
|
|| (mobj->lastlook > 0 && mobj->target->player->kartstuff[k_itemamount] < mobj->lastlook))
|
||||||
|| (mobj->type == MT_TRIPLEREDSHIELD2 && !(mobj->target->player->kartstuff[k_tripleredshell] & 2))
|
|
||||||
|| (mobj->type == MT_TRIPLEREDSHIELD3 && !(mobj->target->player->kartstuff[k_tripleredshell] & 4))
|
|
||||||
|| (mobj->type == MT_TRIPLEBANANASHIELD1 && !(mobj->target->player->kartstuff[k_triplebanana] & 1))
|
|
||||||
|| (mobj->type == MT_TRIPLEBANANASHIELD2 && !(mobj->target->player->kartstuff[k_triplebanana] & 2))
|
|
||||||
|| (mobj->type == MT_TRIPLEBANANASHIELD3 && !(mobj->target->player->kartstuff[k_triplebanana] & 4))
|
|
||||||
|| (mobj->type == MT_BOMBSHIELD && !(mobj->target->player->kartstuff[k_bobomb] & 1))
|
|
||||||
|| (mobj->type == MT_FAKESHIELD && !(mobj->target->player->kartstuff[k_fakeitem] & 1)))
|
|
||||||
{
|
{
|
||||||
P_RemoveMobj(mobj);
|
P_RemoveMobj(mobj);
|
||||||
return;
|
return;
|
||||||
|
@ -6819,26 +6802,30 @@ void P_MobjThinker(mobj_t *mobj)
|
||||||
if (mobj->state != &states[S_PLAYERARROW_ROULETTE]) // don't reset FF_ANIMATE
|
if (mobj->state != &states[S_PLAYERARROW_ROULETTE]) // don't reset FF_ANIMATE
|
||||||
P_SetMobjState(mobj, S_PLAYERARROW_ROULETTE);
|
P_SetMobjState(mobj, S_PLAYERARROW_ROULETTE);
|
||||||
}
|
}
|
||||||
else if (mobj->target->player->kartstuff[k_kitchensink]) P_SetMobjState(mobj, S_PLAYERARROW_KITCHENSINK);
|
else
|
||||||
else if (mobj->target->player->kartstuff[k_megashroom] == 1
|
{
|
||||||
|| (mobj->target->player->kartstuff[k_growshrinktimer] > 1
|
switch(mobj->target->player->kartstuff[k_itemtype])
|
||||||
&& (leveltime & 1))) P_SetMobjState(mobj, S_PLAYERARROW_MEGASHROOM);
|
{
|
||||||
else if (mobj->target->player->kartstuff[k_growshrinktimer] > 1
|
case KITEM_KITCHENSINK: P_SetMobjState(mobj, S_PLAYERARROW_KITCHENSINK); break;
|
||||||
&& !(leveltime & 1)) P_SetMobjState(mobj, S_PLAYERARROW_EMPTY); // S_INVISIBLE
|
case KITEM_SIZEUP: P_SetMobjState(mobj, S_PLAYERARROW_SIZEUP); break;
|
||||||
else if (mobj->target->player->kartstuff[k_star] == 1) P_SetMobjState(mobj, S_PLAYERARROW_STAR);
|
case KITEM_INVINCIBILITY: P_SetMobjState(mobj, S_PLAYERARROW_INVINCIBILITY); break;
|
||||||
else if (mobj->target->player->kartstuff[k_tripleredshell]) P_SetMobjState(mobj, S_PLAYERARROW_TRIPLEREDSHELL);
|
case KITEM_ORBINAUT: P_SetMobjState(mobj, S_PLAYERARROW_ORBINAUT); break;
|
||||||
else if (mobj->target->player->kartstuff[k_triplebanana]) P_SetMobjState(mobj, S_PLAYERARROW_TRIPLEBANANA);
|
case KITEM_BALLHOG: P_SetMobjState(mobj, S_PLAYERARROW_BALLHOG); break;
|
||||||
else if (mobj->target->player->kartstuff[k_triplegreenshell]) P_SetMobjState(mobj, S_PLAYERARROW_TRIPLEGREENSHELL);
|
case KITEM_MINE: P_SetMobjState(mobj, S_PLAYERARROW_MINE); break;
|
||||||
else if (mobj->target->player->kartstuff[k_fireflower]) P_SetMobjState(mobj, S_PLAYERARROW_FIREFLOWER);
|
case KITEM_JAWZ: P_SetMobjState(mobj, S_PLAYERARROW_JAWZ); break;
|
||||||
else if (mobj->target->player->kartstuff[k_bobomb]) P_SetMobjState(mobj, S_PLAYERARROW_BOBOMB);
|
case KITEM_POGOSPRING: P_SetMobjState(mobj, S_PLAYERARROW_POGOSPRING); break;
|
||||||
else if (mobj->target->player->kartstuff[k_redshell]) P_SetMobjState(mobj, S_PLAYERARROW_REDSHELL);
|
case KITEM_HYUDORO: P_SetMobjState(mobj, S_PLAYERARROW_HYUDORO); break;
|
||||||
else if (mobj->target->player->kartstuff[k_feather] & 1) P_SetMobjState(mobj, S_PLAYERARROW_FEATHER);
|
case KITEM_FAKE: P_SetMobjState(mobj, S_PLAYERARROW_FAKEITEM); break;
|
||||||
else if (mobj->target->player->kartstuff[k_boo] == 1) P_SetMobjState(mobj, S_PLAYERARROW_BOO);
|
case KITEM_BANANA: P_SetMobjState(mobj, S_PLAYERARROW_BANANA); break;
|
||||||
else if (mobj->target->player->kartstuff[k_fakeitem] & 2) P_SetMobjState(mobj, S_PLAYERARROW_FAKEITEM);
|
case KITEM_SNEAKER: P_SetMobjState(mobj, S_PLAYERARROW_SNEAKER); break;
|
||||||
else if (mobj->target->player->kartstuff[k_banana]) P_SetMobjState(mobj, S_PLAYERARROW_BANANA);
|
default: P_SetMobjState(mobj, S_PLAYERARROW); break; // S_INVISIBLE
|
||||||
else if (mobj->target->player->kartstuff[k_greenshell]) P_SetMobjState(mobj, S_PLAYERARROW_GREENSHELL);
|
}
|
||||||
else if (mobj->target->player->kartstuff[k_mushroom]) P_SetMobjState(mobj, S_PLAYERARROW_MUSHROOM);
|
}
|
||||||
else P_SetMobjState(mobj, S_PLAYERARROW); // S_INVISIBLE
|
|
||||||
|
if (mobj->target->player->kartstuff[k_growshrinktimer] > 1 && (leveltime & 1))
|
||||||
|
P_SetMobjState(mobj, S_PLAYERARROW_SIZEUP);
|
||||||
|
else if (mobj->target->player->kartstuff[k_growshrinktimer] > 1 && !(leveltime & 1))
|
||||||
|
P_SetMobjState(mobj, S_PLAYERARROW_EMPTY); // S_INVISIBLE
|
||||||
|
|
||||||
scale += FixedMul(FixedDiv(abs(P_AproxDistance(players[displayplayer].mo->x-mobj->target->x,
|
scale += FixedMul(FixedDiv(abs(P_AproxDistance(players[displayplayer].mo->x-mobj->target->x,
|
||||||
players[displayplayer].mo->y-mobj->target->y)), RING_DIST), mobj->target->scale);
|
players[displayplayer].mo->y-mobj->target->y)), RING_DIST), mobj->target->scale);
|
||||||
|
@ -7871,14 +7858,18 @@ void P_MobjThinker(mobj_t *mobj)
|
||||||
mobj->threshold--;
|
mobj->threshold--;
|
||||||
break;
|
break;
|
||||||
case MT_BOMBITEM:
|
case MT_BOMBITEM:
|
||||||
|
if (mobj->target && mobj->target->player)
|
||||||
|
mobj->color = mobj->target->player->skincolor;
|
||||||
|
else
|
||||||
|
mobj->color = SKINCOLOR_RED;
|
||||||
if (mobj->momx || mobj->momy)
|
if (mobj->momx || mobj->momy)
|
||||||
P_SpawnGhostMobj(mobj);
|
P_SpawnGhostMobj(mobj);
|
||||||
if (mobj->z <= mobj->floorz)
|
if (mobj->z <= mobj->floorz)
|
||||||
{
|
{
|
||||||
if (mobj->health > mobj->info->spawnhealth-1)
|
if (mobj->health > mobj->info->spawnhealth-1)
|
||||||
{
|
{
|
||||||
if (mobj->state == &states[S_BOMBAIR])
|
if (mobj->state == &states[S_BOMBAIR1] || mobj->state == &states[S_BOMBAIR2])
|
||||||
P_SetMobjState(mobj, S_BOMBITEM);
|
P_SetMobjState(mobj, S_BOMBDEPLOY1);
|
||||||
|
|
||||||
mobj->momx = mobj->momy = 0;
|
mobj->momx = mobj->momy = 0;
|
||||||
S_StartSound(mobj, mobj->info->activesound);
|
S_StartSound(mobj, mobj->info->activesound);
|
||||||
|
@ -7979,7 +7970,7 @@ void P_MobjThinker(mobj_t *mobj)
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
case MT_SPINFIRE:
|
case MT_SPINFIRE:
|
||||||
case MT_MUSHROOMTRAIL:
|
case MT_SNEAKERTRAIL:
|
||||||
if (mobj->eflags & MFE_VERTICALFLIP)
|
if (mobj->eflags & MFE_VERTICALFLIP)
|
||||||
mobj->z = mobj->ceilingz - mobj->height;
|
mobj->z = mobj->ceilingz - mobj->height;
|
||||||
else
|
else
|
||||||
|
@ -8672,11 +8663,8 @@ mobj_t *P_SpawnMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype_t type)
|
||||||
case MT_FALLINGROCK:
|
case MT_FALLINGROCK:
|
||||||
//case MT_RANDOMITEM:
|
//case MT_RANDOMITEM:
|
||||||
case MT_BANANAITEM: case MT_BANANASHIELD:
|
case MT_BANANAITEM: case MT_BANANASHIELD:
|
||||||
case MT_TRIPLEBANANASHIELD1: case MT_TRIPLEBANANASHIELD2: case MT_TRIPLEBANANASHIELD3:
|
|
||||||
case MT_GREENITEM: case MT_GREENSHIELD:
|
case MT_GREENITEM: case MT_GREENSHIELD:
|
||||||
case MT_TRIPLEGREENSHIELD1: case MT_TRIPLEGREENSHIELD2: case MT_TRIPLEGREENSHIELD3:
|
|
||||||
case MT_REDITEM: case MT_REDSHIELD: case MT_REDITEMDUD:
|
case MT_REDITEM: case MT_REDSHIELD: case MT_REDITEMDUD:
|
||||||
case MT_TRIPLEREDSHIELD1: case MT_TRIPLEREDSHIELD2: case MT_TRIPLEREDSHIELD3:
|
|
||||||
case MT_BATTLEBALLOON: case MT_FIREBALL:
|
case MT_BATTLEBALLOON: case MT_FIREBALL:
|
||||||
case MT_FAKEITEM: case MT_FAKESHIELD:
|
case MT_FAKEITEM: case MT_FAKESHIELD:
|
||||||
case MT_BOMBITEM: case MT_BOMBSHIELD:
|
case MT_BOMBITEM: case MT_BOMBSHIELD:
|
||||||
|
|
10
src/p_spec.c
10
src/p_spec.c
|
@ -3752,7 +3752,7 @@ DoneSection2:
|
||||||
if (player->speed < K_GetKartSpeed(player, true)/4) // Push forward to prevent getting stuck
|
if (player->speed < K_GetKartSpeed(player, true)/4) // Push forward to prevent getting stuck
|
||||||
P_InstaThrust(player->mo, player->mo->angle, FixedMul(K_GetKartSpeed(player, true)/4, player->mo->scale));
|
P_InstaThrust(player->mo, player->mo->angle, FixedMul(K_GetKartSpeed(player, true)/4, player->mo->scale));
|
||||||
|
|
||||||
player->kartstuff[k_feather] |= 2;
|
player->kartstuff[k_pogospring] = 1;
|
||||||
K_DoBouncePad(player->mo, 0);
|
K_DoBouncePad(player->mo, 0);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -3959,14 +3959,14 @@ DoneSection2:
|
||||||
// P_SetPlayerMobjState(player->mo, S_PLAY_FALL1);
|
// P_SetPlayerMobjState(player->mo, S_PLAY_FALL1);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 6: // SRB2kart 190117 - Mushroom Boost Panel
|
case 6: // SRB2kart 190117 - Sneaker Boost Panel
|
||||||
if (roversector || P_MobjReadyToTrigger(player->mo, sector))
|
if (roversector || P_MobjReadyToTrigger(player->mo, sector))
|
||||||
{
|
{
|
||||||
if (!player->kartstuff[k_floorboost])
|
if (!player->kartstuff[k_floorboost])
|
||||||
player->kartstuff[k_floorboost] = 3;
|
player->kartstuff[k_floorboost] = 3;
|
||||||
else
|
else
|
||||||
player->kartstuff[k_floorboost] = 2;
|
player->kartstuff[k_floorboost] = 2;
|
||||||
K_DoMushroom(player, false, false);
|
K_DoSneaker(player, false, false);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -7184,8 +7184,8 @@ void T_Friction(friction_t *f)
|
||||||
// friction works for all mobj's
|
// friction works for all mobj's
|
||||||
// (or at least MF_PUSHABLEs, which is all I care about anyway)
|
// (or at least MF_PUSHABLEs, which is all I care about anyway)
|
||||||
if ((!(thing->flags & (MF_NOGRAVITY | MF_NOCLIP)) && thing->z == thing->floorz) && (thing->player
|
if ((!(thing->flags & (MF_NOGRAVITY | MF_NOCLIP)) && thing->z == thing->floorz) && (thing->player
|
||||||
&& (thing->player->kartstuff[k_startimer] == 0 && thing->player->kartstuff[k_bootimer] == 0
|
&& (thing->player->kartstuff[k_invincibilitytimer] == 0 && thing->player->kartstuff[k_hyudorotimer] == 0
|
||||||
&& thing->player->kartstuff[k_mushroomtimer] == 0 && thing->player->kartstuff[k_growshrinktimer] <= 0)))
|
&& thing->player->kartstuff[k_sneakertimer] == 0 && thing->player->kartstuff[k_growshrinktimer] <= 0)))
|
||||||
{
|
{
|
||||||
if (f->roverfriction)
|
if (f->roverfriction)
|
||||||
{
|
{
|
||||||
|
|
27
src/p_user.c
27
src/p_user.c
|
@ -1134,12 +1134,12 @@ void P_RestoreMusic(player_t *player)
|
||||||
// SRB2kart - We have some different powers than vanilla, some of which tweak the music.
|
// SRB2kart - We have some different powers than vanilla, some of which tweak the music.
|
||||||
if (!player->exiting)
|
if (!player->exiting)
|
||||||
{
|
{
|
||||||
// Item - Mega Mushroom
|
// Item - Size Up
|
||||||
if (player->kartstuff[k_growshrinktimer] > 1)
|
if (player->kartstuff[k_growshrinktimer] > 1)
|
||||||
S_ChangeMusicInternal("mega", true);
|
S_ChangeMusicInternal("mega", true);
|
||||||
|
|
||||||
// Item - Star
|
// Item - Star
|
||||||
else if (player->kartstuff[k_startimer] > 1)
|
else if (player->kartstuff[k_invincibilitytimer] > 1)
|
||||||
S_ChangeMusicInternal("minvnc", false);
|
S_ChangeMusicInternal("minvnc", false);
|
||||||
|
|
||||||
// Event - Final Lap
|
// Event - Final Lap
|
||||||
|
@ -2262,7 +2262,7 @@ static void P_CheckUnderwaterAndSpaceTimer(player_t *player)
|
||||||
//
|
//
|
||||||
static void P_CheckInvincibilityTimer(player_t *player)
|
static void P_CheckInvincibilityTimer(player_t *player)
|
||||||
{
|
{
|
||||||
if (!player->powers[pw_invulnerability] && !player->kartstuff[k_startimer])
|
if (!player->powers[pw_invulnerability] && !player->kartstuff[k_invincibilitytimer])
|
||||||
return;
|
return;
|
||||||
|
|
||||||
//if (mariomode && !player->powers[pw_super]) // SRB2kart
|
//if (mariomode && !player->powers[pw_super]) // SRB2kart
|
||||||
|
@ -2275,7 +2275,7 @@ static void P_CheckInvincibilityTimer(player_t *player)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Resume normal music stuff.
|
// Resume normal music stuff.
|
||||||
if (player->powers[pw_invulnerability] == 1 || player->kartstuff[k_startimer] == 1)
|
if (player->powers[pw_invulnerability] == 1 || player->kartstuff[k_invincibilitytimer] == 1)
|
||||||
{
|
{
|
||||||
if (!player->powers[pw_super])
|
if (!player->powers[pw_super])
|
||||||
{
|
{
|
||||||
|
@ -4769,8 +4769,8 @@ static void P_3dMovement(player_t *player)
|
||||||
// Do not let the player control movement if not onground.
|
// Do not let the player control movement if not onground.
|
||||||
onground = P_IsObjectOnGround(player->mo);
|
onground = P_IsObjectOnGround(player->mo);
|
||||||
|
|
||||||
// SRB2Kart: shhhhhhh don't question me, feather and speed bumps are supposed to control like you're on the ground :p
|
// SRB2Kart: shhhhhhh don't question me, pogo springs and speed bumps are supposed to control like you're on the ground :p
|
||||||
if (player->kartstuff[k_feather] & 2)
|
if (player->kartstuff[k_pogospring])
|
||||||
onground = true;
|
onground = true;
|
||||||
|
|
||||||
player->aiming = cmd->aiming<<FRACBITS;
|
player->aiming = cmd->aiming<<FRACBITS;
|
||||||
|
@ -4799,9 +4799,9 @@ static void P_3dMovement(player_t *player)
|
||||||
else
|
else
|
||||||
topspeed = normalspd;
|
topspeed = normalspd;
|
||||||
}
|
}
|
||||||
else if (player->powers[pw_super] || player->powers[pw_sneakers] || player->kartstuff[k_startimer] || player->kartstuff[k_mushroomtimer])
|
else if (player->powers[pw_super] || player->powers[pw_sneakers] || player->kartstuff[k_invincibilitytimer] || player->kartstuff[k_sneakertimer])
|
||||||
{
|
{
|
||||||
if (player->powers[pw_sneakers] && (player->kartstuff[k_growshrinktimer] > 0 || player->kartstuff[k_mushroomtimer] > 0 || player->kartstuff[k_startimer] > 0))
|
if (player->powers[pw_sneakers] && (player->kartstuff[k_growshrinktimer] > 0 || player->kartstuff[k_sneakertimer] > 0 || player->kartstuff[k_invincibilitytimer] > 0))
|
||||||
thrustfactor = player->thrustfactor*3;
|
thrustfactor = player->thrustfactor*3;
|
||||||
else
|
else
|
||||||
thrustfactor = player->thrustfactor*2;
|
thrustfactor = player->thrustfactor*2;
|
||||||
|
@ -6775,7 +6775,7 @@ static void P_MovePlayer(player_t *player)
|
||||||
{
|
{
|
||||||
K_KartMoveAnimation(player);
|
K_KartMoveAnimation(player);
|
||||||
|
|
||||||
if (player->kartstuff[k_feather] & 2)
|
if (player->kartstuff[k_pogospring])
|
||||||
player->frameangle += ANGLE_22h;
|
player->frameangle += ANGLE_22h;
|
||||||
else
|
else
|
||||||
player->frameangle = player->mo->angle;
|
player->frameangle = player->mo->angle;
|
||||||
|
@ -7071,7 +7071,7 @@ static void P_MovePlayer(player_t *player)
|
||||||
////////////////////////////
|
////////////////////////////
|
||||||
|
|
||||||
// SRB2kart - Drifting smoke and fire
|
// SRB2kart - Drifting smoke and fire
|
||||||
if ((player->kartstuff[k_drift] != 0 || player->kartstuff[k_mushroomtimer] > 0) && onground && (leveltime & 1))
|
if ((player->kartstuff[k_drift] != 0 || player->kartstuff[k_sneakertimer] > 0) && onground && (leveltime & 1))
|
||||||
K_SpawnDriftTrail(player);
|
K_SpawnDriftTrail(player);
|
||||||
|
|
||||||
/* // SRB2kart - nadah
|
/* // SRB2kart - nadah
|
||||||
|
@ -7806,10 +7806,7 @@ void P_NukeEnemies(mobj_t *inflictor, mobj_t *source, fixed_t radius)
|
||||||
//{ SRB2kart
|
//{ SRB2kart
|
||||||
if (mo->type == MT_GREENITEM || mo->type == MT_REDITEM || mo->type == MT_REDITEMDUD
|
if (mo->type == MT_GREENITEM || mo->type == MT_REDITEM || mo->type == MT_REDITEMDUD
|
||||||
|| mo->type == MT_GREENSHIELD || mo->type == MT_REDSHIELD
|
|| mo->type == MT_GREENSHIELD || mo->type == MT_REDSHIELD
|
||||||
|| mo->type == MT_TRIPLEGREENSHIELD1 || mo->type == MT_TRIPLEGREENSHIELD2 || mo->type == MT_TRIPLEGREENSHIELD3
|
|
||||||
|| mo->type == MT_TRIPLEREDSHIELD1 || mo->type == MT_TRIPLEREDSHIELD2 || mo->type == MT_TRIPLEREDSHIELD3
|
|
||||||
|| mo->type == MT_BANANAITEM || mo->type == MT_BANANASHIELD
|
|| mo->type == MT_BANANAITEM || mo->type == MT_BANANASHIELD
|
||||||
|| mo->type == MT_TRIPLEBANANASHIELD1 || mo->type == MT_TRIPLEBANANASHIELD2 || mo->type == MT_TRIPLEBANANASHIELD3
|
|
||||||
|| mo->type == MT_FAKEITEM || mo->type == MT_FAKESHIELD
|
|| mo->type == MT_FAKEITEM || mo->type == MT_FAKESHIELD
|
||||||
|| mo->type == MT_FIREBALL)
|
|| mo->type == MT_FIREBALL)
|
||||||
{
|
{
|
||||||
|
@ -9518,7 +9515,7 @@ void P_PlayerThink(player_t *player)
|
||||||
#if 1
|
#if 1
|
||||||
// "Blur" a bit when you have speed shoes and are going fast enough
|
// "Blur" a bit when you have speed shoes and are going fast enough
|
||||||
if ((player->powers[pw_super] || player->powers[pw_sneakers]
|
if ((player->powers[pw_super] || player->powers[pw_sneakers]
|
||||||
|| player->kartstuff[k_driftboost] || player->kartstuff[k_mushroomtimer]) // SRB2kart
|
|| player->kartstuff[k_driftboost] || player->kartstuff[k_sneakertimer]) // SRB2kart
|
||||||
&& (player->speed + abs(player->mo->momz)) > FixedMul(20*FRACUNIT,player->mo->scale))
|
&& (player->speed + abs(player->mo->momz)) > FixedMul(20*FRACUNIT,player->mo->scale))
|
||||||
{
|
{
|
||||||
mobj_t *gmobj = P_SpawnGhostMobj(player->mo);
|
mobj_t *gmobj = P_SpawnGhostMobj(player->mo);
|
||||||
|
@ -9665,7 +9662,7 @@ void P_PlayerThink(player_t *player)
|
||||||
|| (splitscreen && player == &players[secondarydisplayplayer])
|
|| (splitscreen && player == &players[secondarydisplayplayer])
|
||||||
|| (splitscreen > 1 && player == &players[thirddisplayplayer])
|
|| (splitscreen > 1 && player == &players[thirddisplayplayer])
|
||||||
|| (splitscreen > 2 && player == &players[fourthdisplayplayer]))
|
|| (splitscreen > 2 && player == &players[fourthdisplayplayer]))
|
||||||
&& player->kartstuff[k_bootimer] == 0 && player->kartstuff[k_growshrinktimer] <= 0
|
&& player->kartstuff[k_hyudorotimer] == 0 && player->kartstuff[k_growshrinktimer] <= 0
|
||||||
&& (player->kartstuff[k_comebacktimer] == 0 || (gametype == GT_RACE || player->kartstuff[k_balloon] > 0)))
|
&& (player->kartstuff[k_comebacktimer] == 0 || (gametype == GT_RACE || player->kartstuff[k_balloon] > 0)))
|
||||||
{
|
{
|
||||||
if (player->powers[pw_flashing] > 0 && player->powers[pw_flashing] < K_GetKartFlashing() && (leveltime & 1))
|
if (player->powers[pw_flashing] > 0 && player->powers[pw_flashing] < K_GetKartFlashing() && (leveltime & 1))
|
||||||
|
|
|
@ -135,7 +135,7 @@ UINT32 nflatxshift, nflatyshift, nflatshiftup, nflatmask;
|
||||||
#define BOSS_TT_CACHE_INDEX (MAXSKINS + 1)
|
#define BOSS_TT_CACHE_INDEX (MAXSKINS + 1)
|
||||||
#define METALSONIC_TT_CACHE_INDEX (MAXSKINS + 2)
|
#define METALSONIC_TT_CACHE_INDEX (MAXSKINS + 2)
|
||||||
#define ALLWHITE_TT_CACHE_INDEX (MAXSKINS + 3)
|
#define ALLWHITE_TT_CACHE_INDEX (MAXSKINS + 3)
|
||||||
#define STARMAN_TT_CACHE_INDEX (MAXSKINS + 4)
|
#define RAINBOW_TT_CACHE_INDEX (MAXSKINS + 4)
|
||||||
#define SKIN_RAMP_LENGTH 16
|
#define SKIN_RAMP_LENGTH 16
|
||||||
#define DEFAULT_STARTTRANSCOLOR 160
|
#define DEFAULT_STARTTRANSCOLOR 160
|
||||||
#define NUM_PALETTE_ENTRIES 256
|
#define NUM_PALETTE_ENTRIES 256
|
||||||
|
@ -529,7 +529,7 @@ UINT8* R_GetTranslationColormap(INT32 skinnum, skincolors_t color, UINT8 flags)
|
||||||
else if (skinnum == TC_BOSS) skintableindex = BOSS_TT_CACHE_INDEX;
|
else if (skinnum == TC_BOSS) skintableindex = BOSS_TT_CACHE_INDEX;
|
||||||
else if (skinnum == TC_METALSONIC) skintableindex = METALSONIC_TT_CACHE_INDEX;
|
else if (skinnum == TC_METALSONIC) skintableindex = METALSONIC_TT_CACHE_INDEX;
|
||||||
else if (skinnum == TC_ALLWHITE) skintableindex = ALLWHITE_TT_CACHE_INDEX;
|
else if (skinnum == TC_ALLWHITE) skintableindex = ALLWHITE_TT_CACHE_INDEX;
|
||||||
else if (skinnum == TC_STARMAN) skintableindex = STARMAN_TT_CACHE_INDEX;
|
else if (skinnum == TC_RAINBOW) skintableindex = RAINBOW_TT_CACHE_INDEX;
|
||||||
else skintableindex = skinnum;
|
else skintableindex = skinnum;
|
||||||
|
|
||||||
if (flags & GTC_CACHE)
|
if (flags & GTC_CACHE)
|
||||||
|
|
|
@ -107,7 +107,7 @@ extern lumpnum_t viewborderlump[8];
|
||||||
#define TC_BOSS -2
|
#define TC_BOSS -2
|
||||||
#define TC_METALSONIC -3 // For Metal Sonic battle
|
#define TC_METALSONIC -3 // For Metal Sonic battle
|
||||||
#define TC_ALLWHITE -4 // For Cy-Brak-demon
|
#define TC_ALLWHITE -4 // For Cy-Brak-demon
|
||||||
#define TC_STARMAN -5 // For star power
|
#define TC_RAINBOW -5 // For invincibility power
|
||||||
|
|
||||||
// Initialize color translation tables, for player rendering etc.
|
// Initialize color translation tables, for player rendering etc.
|
||||||
void R_InitTranslationTables(void);
|
void R_InitTranslationTables(void);
|
||||||
|
|
|
@ -827,8 +827,8 @@ static void R_DrawVisSprite(vissprite_t *vis)
|
||||||
dc_transmap = vis->transmap;
|
dc_transmap = vis->transmap;
|
||||||
if (vis->mobj->skin && vis->mobj->sprite == SPR_PLAY) // MT_GHOST LOOKS LIKE A PLAYER SO USE THE PLAYER TRANSLATION TABLES. >_>
|
if (vis->mobj->skin && vis->mobj->sprite == SPR_PLAY) // MT_GHOST LOOKS LIKE A PLAYER SO USE THE PLAYER TRANSLATION TABLES. >_>
|
||||||
{
|
{
|
||||||
if (vis->mobj->player && vis->mobj->player->kartstuff[k_startimer])
|
if (vis->mobj->player && vis->mobj->player->kartstuff[k_invincibilitytimer])
|
||||||
dc_translation = R_GetTranslationColormap(TC_STARMAN, vis->mobj->color, GTC_CACHE);
|
dc_translation = R_GetTranslationColormap(TC_RAINBOW, vis->mobj->color, GTC_CACHE);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
size_t skinnum = (skin_t*)vis->mobj->skin-skins;
|
size_t skinnum = (skin_t*)vis->mobj->skin-skins;
|
||||||
|
@ -851,8 +851,8 @@ static void R_DrawVisSprite(vissprite_t *vis)
|
||||||
// New colormap stuff for skins Tails 06-07-2002
|
// New colormap stuff for skins Tails 06-07-2002
|
||||||
if (vis->mobj->skin && vis->mobj->sprite == SPR_PLAY) // This thing is a player!
|
if (vis->mobj->skin && vis->mobj->sprite == SPR_PLAY) // This thing is a player!
|
||||||
{
|
{
|
||||||
if (vis->mobj->player && vis->mobj->player->kartstuff[k_startimer])
|
if (vis->mobj->player && vis->mobj->player->kartstuff[k_invincibilitytimer])
|
||||||
dc_translation = R_GetTranslationColormap(TC_STARMAN, vis->mobj->color, GTC_CACHE);
|
dc_translation = R_GetTranslationColormap(TC_RAINBOW, vis->mobj->color, GTC_CACHE);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
size_t skinnum = (skin_t*)vis->mobj->skin-skins;
|
size_t skinnum = (skin_t*)vis->mobj->skin-skins;
|
||||||
|
|
Loading…
Reference in a new issue