2016-08-11 18:42:11 -07:00
|
|
|
// SONIC ROBO BLAST 2 KART ~ ZarroTsu
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
/// \file k_kart.h
|
|
|
|
/// \brief SRB2kart stuff.
|
|
|
|
|
|
|
|
#ifndef __K_KART__
|
|
|
|
#define __K_KART__
|
|
|
|
|
2016-08-14 20:51:08 -07:00
|
|
|
#include "doomdef.h"
|
|
|
|
#include "d_player.h" // Need for player_t
|
|
|
|
|
2017-11-28 13:57:38 -08:00
|
|
|
UINT8 colortranslations[MAXSKINCOLORS][16];
|
2016-08-11 18:42:11 -07:00
|
|
|
extern const char *KartColor_Names[MAXSKINCOLORS];
|
2018-06-19 17:20:06 -07:00
|
|
|
extern const UINT8 KartColor_Opposite[MAXSKINCOLORS*2];
|
2018-02-05 15:55:52 -08:00
|
|
|
void K_RainbowColormap(UINT8 *dest_colormap, UINT8 skincolor);
|
2016-08-11 18:42:11 -07:00
|
|
|
void K_GenerateKartColormap(UINT8 *dest_colormap, INT32 skinnum, UINT8 color);
|
|
|
|
UINT8 K_GetKartColorByName(const char *name);
|
|
|
|
|
2016-08-14 20:51:08 -07:00
|
|
|
void K_RegisterKartStuff(void);
|
2016-08-11 18:42:11 -07:00
|
|
|
|
Winning positions scale with number of players
Anyone in the top 50% gets winning music & blue position, everyone below
gets the losing music & red position. For odd numbers, it rounds up.
2p: 1st wins, 2nd loses
3p: 1-2 win, 3rd loses
4p: 1-2 win, 3-4 lose
5p: 1-3 win, 4-5 lose
6p: 1-3 win, 4-6 lose
7p: 1-4 win, 5-7 lose
8p: 1-4 win, 5-8 lose (SMK)
12p: 1-6 win, 7-12 lose (modern MK)
16p: 1-8 win, 9-16 lose (max player count)
In big netgames you won't just hear the losing music all of the time now
:V
2018-02-20 16:11:09 -08:00
|
|
|
boolean K_IsPlayerLosing(player_t *player);
|
2018-07-01 01:36:09 -07:00
|
|
|
boolean K_IsPlayerWanted(player_t *player);
|
2018-01-08 12:48:19 -08:00
|
|
|
void K_KartBouncing(mobj_t *mobj1, mobj_t *mobj2, boolean bounce, boolean solid);
|
2018-06-24 19:15:22 -07:00
|
|
|
void K_RespawnChecker(player_t *player);
|
2017-11-04 10:32:47 -07:00
|
|
|
void K_KartMoveAnimation(player_t *player);
|
2016-08-14 20:51:08 -07:00
|
|
|
void K_KartPlayerThink(player_t *player, ticcmd_t *cmd);
|
2018-02-04 16:00:36 -08:00
|
|
|
void K_KartPlayerAfterThink(player_t *player);
|
2018-07-26 17:12:42 -07:00
|
|
|
void K_DoInstashield(player_t *player);
|
2018-07-01 01:36:09 -07:00
|
|
|
void K_SpinPlayer(player_t *player, mobj_t *source, INT32 type, boolean trapitem);
|
2017-02-07 14:19:04 -08:00
|
|
|
void K_SquishPlayer(player_t *player, mobj_t *source);
|
|
|
|
void K_ExplodePlayer(player_t *player, mobj_t *source);
|
2018-07-03 12:14:47 -07:00
|
|
|
void K_StealBumper(player_t *player, player_t *victim, boolean force);
|
2017-11-05 09:15:19 -08:00
|
|
|
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);
|
2018-02-05 18:08:01 -08:00
|
|
|
void K_SpawnMineExplosion(mobj_t *source, UINT8 color);
|
2018-06-08 13:05:45 -07:00
|
|
|
void K_SpawnBoostTrail(player_t *player);
|
2018-06-10 13:10:24 -07:00
|
|
|
void K_SpawnSparkleTrail(mobj_t *mo);
|
2018-07-25 09:49:30 -07:00
|
|
|
void K_SpawnWipeoutTrail(mobj_t *mo, boolean translucent);
|
2018-06-08 13:05:45 -07:00
|
|
|
void K_DriftDustHandling(mobj_t *spawner);
|
2018-03-30 21:44:03 -07:00
|
|
|
void K_DoSneaker(player_t *player, boolean doPFlag);
|
2018-07-16 18:27:50 -07:00
|
|
|
void K_DoPogoSpring(mobj_t *mo, fixed_t vertispeed, boolean mute);
|
2018-06-16 16:57:08 -07:00
|
|
|
void K_KillBananaChain(mobj_t *banana, mobj_t *inflictor, mobj_t *source);
|
2018-06-27 12:58:43 -07:00
|
|
|
void K_RepairOrbitChain(mobj_t *orbit);
|
2017-11-10 19:28:20 -08:00
|
|
|
boolean K_CheckPlayersRespawnColliding(INT32 playernum, fixed_t x, fixed_t y);
|
2017-03-06 17:05:18 -08:00
|
|
|
INT16 K_GetKartTurnValue(player_t *player, INT16 turnvalue);
|
Mammoth commit!
* Deaths in record attack no longer put you into a glitchy singleplayer game-over state that we somehow both kept around and also broke since we branched Kart off of Vanilla..
* Fix non-standard mapscales making the Death Egg respawn octagons dissasemble themselves.
* Allow for MULTIPLE TIME EMBLEMS PER MAP, at least in the emblem UI on the timer. It shows all completed emblems plus the uncompleted emblem up to a total of three.
* Major tweaks to the First Person HUD.
* I know this was your baby, Sal, and some of the changes may prove controversial - so I've put the ones that are likely to cause the most fuss inside an ifndef block, so that you can toggle it as you please with minimal code changes.
* Dontdraw-ness, transparency, and colorization match the player's object!
* Moves around on the screen with respect to the direction of the player object's motion, to make drifting look nicer!
* Flashes the colour of your drift sparks.
* Did a WHOLE bunch of things with respect to music. I'm not sure how to describe this, so I'll go through step-by-step.
* Countdowns now play the drowning music again.
* Removed/disabled extraenous P_RestoreMusics.
* Made map-ending music called by its own function, P_EndingMusic(player_t *player).
* Made the ending music play on the LAST player crossing the finishing line in splitscreen, rather than first.
* Make dead players spinout and clip through the floor, at least until we add the new death anims.
* Fix prior pogo spring usage making dead players fall faster.
* Make the time over countdown use the kart font when not splitscreen with 3 or 4 players.
* Removed a weird bonus HWR_DrawCroppedPatch function signature in the hardware header.
2018-07-16 12:19:30 -07:00
|
|
|
fixed_t K_GetKartDriftSparkValue(player_t *player);
|
2018-06-12 13:27:51 -07:00
|
|
|
void K_StripItems(player_t *player);
|
2017-03-09 18:22:49 -08:00
|
|
|
void K_MomentumToFacing(player_t *player);
|
2017-02-23 17:36:43 -08:00
|
|
|
fixed_t K_GetKartSpeed(player_t *player, boolean doboostpower);
|
2017-11-16 21:48:36 -08:00
|
|
|
fixed_t K_GetKartAccel(player_t *player);
|
2018-08-10 21:12:41 -07:00
|
|
|
UINT16 K_GetKartFlashing(player_t *player);
|
2017-04-19 18:04:44 -07:00
|
|
|
fixed_t K_3dKartMovement(player_t *player, boolean onground, fixed_t forwardmove);
|
2017-03-06 17:05:18 -08:00
|
|
|
void K_MoveKartPlayer(player_t *player, boolean onground);
|
2018-07-01 01:36:09 -07:00
|
|
|
void K_CalculateBattleWanted(void);
|
2018-07-03 12:14:47 -07:00
|
|
|
void K_CheckBumpers(void);
|
2018-07-20 16:11:36 -07:00
|
|
|
void K_CheckSpectateStatus(void);
|
2016-08-11 18:42:11 -07:00
|
|
|
|
2017-12-25 07:05:36 -08:00
|
|
|
INT32 K_calcSplitFlags(INT32 snapflags);
|
2016-08-14 20:51:08 -07:00
|
|
|
void K_LoadKartHUDGraphics(void);
|
2017-11-20 23:23:06 -08:00
|
|
|
fixed_t K_FindCheckX(fixed_t px, fixed_t py, angle_t ang, fixed_t mx, fixed_t my);
|
2016-08-14 20:51:08 -07:00
|
|
|
void K_drawKartHUD(void);
|
2018-07-22 08:16:03 -07:00
|
|
|
void K_drawKartFreePlay(UINT32 flashtime);
|
2017-12-18 16:07:38 -08:00
|
|
|
void K_LoadIconGraphics(char *facestr, INT32 skinnum);
|
2017-12-23 16:14:06 -08:00
|
|
|
void K_ReloadSkinIconGraphics(void);
|
2016-08-11 18:42:11 -07:00
|
|
|
|
|
|
|
// =========================================================================
|
|
|
|
#endif // __K_KART__
|