RingRacers/src/k_battle.h

63 lines
2.1 KiB
C

#ifndef __K_BATTLE__
#define __K_BATTLE__
#include "doomtype.h"
#include "d_player.h"
#ifdef __cplusplus
extern "C" {
#endif
#define BATTLE_SPAWN_INTERVAL (4*TICRATE)
#define BATTLE_DESPAWN_TIME (15*TICRATE)
#define BATTLE_POWERUP_TIME (30*TICRATE)
#define BATTLE_POWERUP_DROPPED_TIME (15*TICRATE)
#define BATTLE_UFO_TIME (20*TICRATE)
extern struct battleovertime
{
UINT16 enabled; ///< Has this been initalized yet?
fixed_t radius; ///< Radius of kill field
fixed_t initial_radius; ///< Starting radius of kill field
tic_t start; ///< Leveltime to decrease kill field radius from
fixed_t x, y, z; ///< Position to center on
} battleovertime;
extern struct battleufo
{
INT32 previousId;
tic_t due;
} g_battleufo;
extern boolean battleprisons;
extern INT32 nummapboxes, numgotboxes; // keep track of spawned battle mode items
extern UINT8 maptargets, numtargets;
extern tic_t g_emeraldWin;
INT32 K_StartingBumperCount(void);
boolean K_IsPlayerWanted(player_t *player);
#define K_CalculateBattleWanted() (void)0 // not nulled out so we know where we need to recalculate some other form of battle mode importance
void K_SpawnBattlePoints(player_t *source, player_t *victim, UINT8 amount);
void K_CheckBumpers(void);
void K_CheckEmeralds(player_t *player);
UINT16 K_GetChaosEmeraldColor(UINT32 emeraldType);
mobj_t *K_SpawnChaosEmerald(fixed_t x, fixed_t y, fixed_t z, angle_t angle, SINT8 flip, UINT32 emeraldType);
mobj_t *K_SpawnSphereBox(fixed_t x, fixed_t y, fixed_t z, angle_t angle, SINT8 flip, UINT8 amount);
void K_DropEmeraldsFromPlayer(player_t *player, UINT32 emeraldType);
UINT8 K_NumEmeralds(player_t *player);
void K_RunPaperItemSpawners(void);
void K_SpawnOvertimeBarrier(void);
void K_RunBattleOvertime(void);
void K_SetupMovingCapsule(mapthing_t *mt, mobj_t *mobj);
void K_SpawnPlayerBattleBumpers(player_t *p);
void K_BattleInit(boolean singleplayercontext);
UINT8 K_Bumpers(player_t *player);
INT32 K_BumpersToHealth(UINT8 bumpers);
boolean K_BattleOvertimeKiller(mobj_t *mobj);
boolean K_EndBattleRound(player_t *victor);
#ifdef __cplusplus
} // extern "C"
#endif
#endif