rott/rott/rt_battl.h

225 lines
4.5 KiB
C
Executable File

/*
Copyright (C) 1994-1995 Apogee Software, Ltd.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
/**********************************************************************
module: RT_BATTL.H
author: James R. Dose
phone: (214)-271-1365 Ext #221
date: September 8, 1994
Public header for RT_BATTL.C
(c) Copyright 1994 Apogee Software. All Rights Reserved.
**********************************************************************/
#ifndef __RT_BATTLE_public
#define __RT_BATTLE_public
#define BIT_MASK( bit_number ) ( 1 << ( bit_number ) )
#define MINUTES_TO_GAMECOUNT( minutes ) \
( ( minutes ) * 60 * VBLCOUNTER )
//
// Return codes
//
typedef enum
{
battle_no_event,
battle_end_game,
battle_end_round,
battle_out_of_time
} battle_status;
//
// Types of battle events
//
typedef enum
{
battle_refresh,
battle_player_killed,
battle_player_tagged,
battle_kill_with_missile,
battle_kill_with_bullet,
battle_kill_with_missile_in_air,
battle_kill_with_bullet_in_air,
battle_kill_by_crushing,
battle_get_collector_item,
battle_caught_eluder,
battle_shot_deluder,
battle_captured_triad
} battle_event;
//
// Battle modes
//
enum
{
battle_StandAloneGame,
battle_Normal,
battle_ScoreMore,
battle_Collector,
battle_Scavenger,
battle_Hunter,
battle_Tag,
battle_Eluder,
battle_Deluder,
battle_CaptureTheTriad,
battle_NumBattleModes
};
//
// Battle mode option : Gravity
//
//enum
// {
// bo_low_gravity,
// bo_normal_gravity,
// bo_high_gravity
// };
//
// Battle mode option : Speed
//
enum
{
bo_normal_speed,
bo_fast_speed
};
//
// Battle mode option : Ammo
//
enum
{
bo_one_shot,
bo_normal_shots,
bo_infinite_shots
};
//
// Battle mode option : Hit points
//
#define bo_character_hitpoints 0
#define bo_default_hitpoints 250
//
// Battle mode option : Light levels
//
enum
{
bo_light_dark,
bo_light_normal,
bo_light_bright,
bo_light_fog,
bo_light_periodic,
bo_light_lightning
};
//
// Battle mode option : Number of kills
//
enum
{
bo_kills_random = -2,
bo_kills_blind = -1,
bo_kills_infinite = 0,
bo_kills_default = 21
};
//
// Battle mode option : Environment danger damage
//
enum
{
bo_danger_normal = -1,
bo_danger_low = 1,
bo_danger_kill = 30000
};
//
// Battle mode option : Time limit
//
#define bo_time_infinite 0
//
// Battle mode configuration
//
typedef struct
{
unsigned Gravity;
unsigned Speed;
unsigned Ammo;
unsigned HitPoints;
unsigned SpawnDangers;
unsigned SpawnHealth;
unsigned SpawnWeapons;
unsigned SpawnMines;
unsigned RespawnItems;
unsigned WeaponPersistence;
unsigned RandomWeapons;
unsigned FriendlyFire;
unsigned LightLevel;
int Kills;
int DangerDamage;
unsigned TimeLimit;
unsigned RespawnTime;
} battle_type;
#define bo_normal_respawn_time 30
extern boolean BATTLEMODE;
extern short WhoKilledWho[ MAXPLAYERS ][ MAXPLAYERS ];
extern short BATTLE_Points[ MAXPLAYERS ];
extern short BATTLE_PlayerOrder[ MAXPLAYERS ];
extern int BATTLE_NumCollectorItems;
extern int PointGoal;
extern int DisplayPoints;
extern int BATTLE_It;
extern boolean BATTLE_ShowKillCount;
extern short BATTLE_Team[ MAXPLAYERS ];
extern short BATTLE_TeamLeader[ MAXPLAYERS ];
extern int BATTLE_NumberOfTeams;
extern boolean UpdateKills;
// Located in RT_MENU.C
extern battle_type BATTLE_Options[ battle_NumBattleModes ];
void BATTLE_Init( int battlemode, int numplayers );
void BATTLE_GetSpecials( void );
void BATTLE_SetOptions( battle_type *options );
void BATTLE_GetOptions( battle_type *options );
battle_status BATTLE_CheckGameStatus( battle_event reason, int player );
void BATTLE_SortPlayerRanks( void );
battle_status BATTLE_PlayerKilledPlayer( battle_event reason, int killer, int victim );
void BATTLE_Shutdown( void );
#endif