Kart-Public/src/k_kart.h
2016-08-11 21:42:16 -04:00

89 lines
4.4 KiB
C

// SONIC ROBO BLAST 2 KART ~ ZarroTsu
//-----------------------------------------------------------------------------
/// \file k_kart.h
/// \brief SRB2kart stuff.
#ifndef __K_KART__
#define __K_KART__
extern const char *KartColor_Names[MAXSKINCOLORS];
void K_GenerateKartColormap(UINT8 *dest_colormap, INT32 skinnum, UINT8 color);
UINT8 K_GetKartColorByName(const char *name);
//{ SRB2kart Player structure - kartstuff
typedef enum
{
// Basic gameplay things
k_position, // Used for Kart positions, mostly for deterministic stuff
k_playerahead, // Is someone ahead of me or not?
k_oldposition, // Used for taunting when you pass someone
k_prevcheck, // Previous checkpoint distance; for p_user.c (was "pw_pcd")
k_nextcheck, // Next checkpoint distance; for p_user.c (was "pw_ncd")
k_waypoint, // Waypoints.
k_starpostwp, // Temporarily stores player waypoint for... some reason. Used when respawning and finishing.
k_throwdir, // Held dir of controls; 1 = forward, 0 = none, -1 = backward (was "player->heldDir")
k_turndir, // Turn direction for drifting; -1 = Left, 1 = Right, 0 = none
k_sounds, // Used this to avoid sounds being played every tic
k_boosting, // Determines if you're currently shroom-boosting to change how drifting works
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_drift, // Drifting Left or Right, plus a bigger counter = sharper turn
k_driftcharge, // Charge your drift so you can release a burst of speed
k_jmp, // In Mario Kart, letting go of the jump button stops the drift
k_lakitu, // > 0 = Lakitu fishing, < 0 = Lakitu lap counter (was "player->airtime") // NOTE: Check for ->lakitu, replace with this
k_itemroulette, // Used for the roulette when deciding what item to give you (was "pw_kartitem")
k_itemslot, // If you have X item, and kartitem chose X too, save it
k_itemclose, // Used to animate the item window closing (was "pw_psychic")
// Some items use timers for their duration or effects
k_magnettimer, // Duration of Magnet's item-break and item box pull
k_bootaketimer, // You are stealing an item, this is your timer
k_boostolentimer, // You are being stolen from, this is your timer
k_mushroomtimer, // Duration of the Mushroom Boost itself
k_growshrinktimer, // > 0 = Big, < 0 = small
k_squishedtimer, // Squished frame timer
k_goldshroomtimer, // Gold Mushroom duration timer
k_startimer, // Invincibility timer
k_spinouttimer, // Wipe-out from a banana peel or oil slick (was "pw_bananacam")
k_laserwisptimer, // The duration and relative angle of the laser
k_fireflowertimer, // Duration of Fire Flower
// Each item needs its own power slot, for the HUD and held use
k_magnet, // 0x1 = Magnet in inventory
k_boo, // 0x1 = Boo in inventory
k_mushroom, // 0x1 = 1 Mushroom in inventory, 0x2 = 2 Mushrooms in inventory
// 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
NUMKARTSTUFF
} kartstufftype_t;
//}
// =========================================================================
#endif // __K_KART__