225 lines
4.5 KiB
C
Executable File
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
|