ns/dev/hitboxtest/source/mod/AvHConstants.h
2005-04-12 13:43:58 +00:00

989 lines
33 KiB
C

//======== (C) Copyright 2001 Charles G. Cleveland All rights reserved. =========
//
// The copyright to the contents herein is the property of Charles G. Cleveland.
// The contents may be used and/or copied only with the written permission of
// Charles G. Cleveland, or in accordance with the terms and conditions stipulated in
// the agreement/contract under which the contents have been supplied.
//
// Purpose:
//
// $Workfile: AvHConstants.h$
// $Date: 2002/11/12 02:23:01 $
//
//-------------------------------------------------------------------------------
// $Log: AvHConstants.h,v $
// Revision 1.61 2002/11/12 02:23:01 Flayra
// - Renamed avhplayer for 3rd party compatibility (adminmod, etc.)
//
// Revision 1.60 2002/11/06 01:39:48 Flayra
// - Regeneration now heals a percentage
//
// Revision 1.59 2002/11/05 06:17:25 Flayra
// - Balance changes
//
// Revision 1.58 2002/11/03 04:50:19 Flayra
// - Hard-coded gameplay constants instead of putting in skill.cfg
//
// Revision 1.57 2002/10/24 21:23:01 Flayra
// - Reworked jetpacks
// - Added alien easter eggs
//
// Revision 1.56 2002/10/18 22:18:44 Flayra
// - Added alien easter egg sayings
// - Added sensory chamber sayings
// - Limit number of buildings in radius
// - Fixed motd.txt length crash
//
// Revision 1.55 2002/10/16 20:51:44 Flayra
// - Hive health while gestating
//
// Revision 1.54 2002/10/16 00:52:45 Flayra
// - Added "need order" alert
// - Added authentication mask
// - Updated alien building sounds
// - Removed a couple unneeded sounds
//
// Revision 1.53 2002/10/03 18:41:58 Flayra
// - Added alien HUD sounds
// - Added more order sounds
//
// Revision 1.52 2002/09/25 20:43:40 Flayra
// - Removed use order, sound update
//
// Revision 1.51 2002/09/23 22:12:07 Flayra
// - New CC sounds
// - Regular update
//
// Revision 1.50 2002/09/09 19:49:25 Flayra
// - Added deathmessage cheat
//
// Revision 1.49 2002/08/31 18:01:01 Flayra
// - Work at VALVe
//
// Revision 1.48 2002/08/16 02:33:57 Flayra
// - Regular update
//
// Revision 1.47 2002/08/09 00:56:18 Flayra
// - Added "adjustscore" cheat for testing new scoreboard
//
// Revision 1.46 2002/08/02 22:01:04 Flayra
// - Regular update
//
// Revision 1.45 2002/07/28 19:38:59 Flayra
// - Linux path fixes
//
// Revision 1.44 2002/07/26 23:04:08 Flayra
// - Generate numerical feedback for damage events
//
// Revision 1.43 2002/07/23 17:01:02 Flayra
// - Regular update
//
// Revision 1.42 2002/07/08 16:50:20 Flayra
// - Reworked team colors, #define a few more sounds, weapon spread
//
// Revision 1.41 2002/07/01 22:41:40 Flayra
// - Removed outdated overwatch target and tension events
//
// Revision 1.40 2002/07/01 21:25:26 Flayra
// - Added new alien weapons, added build ranges
//
// Revision 1.39 2002/06/25 17:53:19 Flayra
// - Regular update (cleanup, new entities, new classnames)
//
// Revision 1.38 2002/06/10 19:51:29 Flayra
// - Regular update
//
// Revision 1.37 2002/06/03 16:41:50 Flayra
// - Removed duplicate hive class name, added more player class types for scoreboard info
//
// Revision 1.36 2002/05/28 17:37:48 Flayra
// - Reinforcment refactoring, renamed role sounds to be less confusing
//
// Revision 1.35 2002/05/23 02:34:00 Flayra
// - Post-crash checkin. Restored @Backup from around 4/16. Contains changes for last four weeks of development.
//
//===============================================================================
#ifndef AVHCONSTANTS_H
#define AVHCONSTANTS_H
#include "types.h"
#include "game_shared/teamconst.h"
// Basic constants
const int kMaxPlayers = 32;
const int kMaxEntities = 1500;
const int kSelectionStartRange = 50;
const int kSelectionEndRange = 8012;
const int kSelectionExtreme = 8012;
const float kSelectionNetworkConstant = 1000.0f;
const float kBuildInvalidRangeMultiplier = 2.0f;
const float kWorldPosNetworkConstant = 6.0f;
const float kNumericNetworkConstant = 100.0f;
const int kWorldMinimumZ = -4096;
const int kMaxGroundPlayerSpeed = 1200;
const int kNumHotkeyGroups = 5;
const int kSelectAllHotGroup = kNumHotkeyGroups + 1;
const int kNumRequestTypes = 3;
const int kPendingIdleSoldiers = (kNumHotkeyGroups + 1);
const int kPendingAmmoRequests = (kNumHotkeyGroups + 2);
const int kPendingHealthRequests = (kNumHotkeyGroups + 3);
const int kMaxHives = 3;
const int kMaxUpgradeCategories = 3;
const int kMaxUpgradeLevel = 3;
const int kFuncResourceMaxResources = 300;
//const float kPlayerResourceScalar = 2.0f; // 1.5 might be better
const int kVictoryIntermission = 12;
const int kResetPlayersPerSecond = 8;
const float kBuildingUseWarmupTime = 2.0f;
const float kRedeemInvulnerableTime = 1.0f;
const float kMaxBuildingDropSlope = 1.0f;
const float kMaxEquipmentDropSlope = 1.0f;
// Used to be cl_forwardspeed, cl_backspeed, cl_sidespeed.
const float kForwardSpeed = 1000.0f;
const float kBackSpeed = 1000.0f;
const float kSideSpeed = 1000.0f;
// Name this guy for custom propagation, maybe
typedef int EntityInfo;
typedef vector<EntityInfo> EntityListType;
typedef pair<EntityInfo, float> EntityFloatPairType;
typedef vector<EntityFloatPairType> EntityFloatPairListType;
typedef map<int, EntityInfo> EntityMap;
typedef vector<int> IntList;
#define kAvHGameName ((const char*)("Natural Selection"))
#define kAvHGameAcronymn ((const char*)("NS"))
#define kInvalidTeamName "Invalid team name"
#define kAvHPlayerClassName "player"
#define kwsWeldableClassName "avhweldable"
#define kwsMapInfoClassName "avhmapinfo"
#define kwsGameplayClassName "avhgameplay"
#define kwsGammaClassName "avhgamma"
#define kNumAlienLifeforms 5
#define kNumAlienUpgrades 12
#define kNumAlienUpgradeCategories 3
#define kNumUpgradesInCategory 3
#define kNumUpgradeLevelsInCategory 3
#define kMaxAlienHives 3
#define kMaxAlienEnergy 100
#define kMaxAlienResources 100
typedef enum
{
AVH_CLASS_TYPE_UNDEFINED = 0,
AVH_CLASS_TYPE_MARINE = 1,
AVH_CLASS_TYPE_ALIEN = 2,
AVH_CLASS_TYPE_AUTOASSIGN = 3
} AvHClassType;
typedef enum
{
MAP_MODE_UNDEFINED = 0,
MAP_MODE_NS = 1,
MAP_MODE_CS = 2,
MAP_MODE_DM = 3,
MAP_MODE_CO = 4
}
AvHMapMode;
#define kUndefinedTeam "undefinedteam"
#define kMarine1Team "marine1team"
#define kAlien1Team "alien1team"
#define kMarine2Team "marine2team"
#define kAlien2Team "alien2team"
#define kSpectatorTeam "spectatorteam"
#define kTeamString "undefinedteam;marine1team;alien1team;marine2team;alien2team;spectatorteam"
#define kMarinePrettyName "Frontiersmen"
#define kAlienPrettyName "Kharaa"
#define kUndefPrettyName "Undefined"
typedef enum
{
PLAYMODE_UNDEFINED = 0,
PLAYMODE_READYROOM = 1,
PLAYMODE_PLAYING = 2,
PLAYMODE_AWAITINGREINFORCEMENT = 3, // Player is dead and waiting in line to get back in
PLAYMODE_REINFORCING = 4, // Player is in the process of coming back into the game
PLAYMODE_OBSERVER = 5,
PLAYMODE_REINFORCINGCOMPLETE = 6 // Combat only: 'press fire to respawn'
} AvHPlayMode;
typedef enum
{
TEAM_IND = 0,
TEAM_ONE = 1,
TEAM_TWO = 2,
TEAM_THREE = 3,
TEAM_FOUR = 4,
TEAM_SPECT = 5
} AvHTeamNumber;
typedef enum
{
ALERT_NONE = 0,
ALERT_PLAYER_ENGAGE = 1,
ALERT_UNDER_ATTACK = 2,
ALERT_RESEARCH_COMPLETE = 3,
ALERT_UPGRADE_COMPLETE = 4,
ALERT_LOW_RESOURCES = 5,
ALERT_SOLDIER_NEEDS_AMMO = 6,
ALERT_SOLDIER_NEEDS_HEALTH = 7,
ALERT_PLAYER_DIED = 8,
ALERT_SENTRY_FIRING = 9,
ALERT_SENTRY_DAMAGED = 10,
ALERT_HIVE_COMPLETE = 11,
ALERT_HIVE_DYING = 12,
ALERT_NEW_TRAIT = 13,
ALERT_ORDER_NEEDED = 14,
ALERT_ORDER_COMPLETE = 15,
ALERT_MAX_ALERTS = 16
} AvHAlertType;
typedef enum
{
PLAYERCLASS_NONE = 0,
PLAYERCLASS_ALIVE_MARINE,
PLAYERCLASS_ALIVE_JETPACK_MARINE,
PLAYERCLASS_ALIVE_HEAVY_MARINE,
PLAYERCLASS_ALIVE_LEVEL1,
PLAYERCLASS_ALIVE_LEVEL2,
PLAYERCLASS_ALIVE_LEVEL3,
PLAYERCLASS_ALIVE_LEVEL4,
PLAYERCLASS_ALIVE_LEVEL5,
PLAYERCLASS_ALIVE_DIGESTING,
PLAYERCLASS_ALIVE_GESTATING,
PLAYERCLASS_DEAD_MARINE,
PLAYERCLASS_DEAD_ALIEN,
PLAYERCLASS_COMMANDER,
PLAYERCLASS_REINFORCING,
PLAYERCLASS_SPECTATOR,
PLAYERCLASS_REINFORCINGCOMPLETE
} AvHPlayerClass;
// This is a mask because players can have more then one of these
typedef enum
{
PLAYERAUTH_NONE = 0,
PLAYERAUTH_DEVELOPER = 1,
PLAYERAUTH_GUIDE = 2,
PLAYERAUTH_SERVEROP = 4,
PLAYERAUTH_PLAYTESTER = 8,
PLAYERAUTH_CONTRIBUTOR = 16,
PLAYERAUTH_CHEATINGDEATH = 32,
PLAYERAUTH_VETERAN = 64,
PLAYERAUTH_BETASERVEROP = 128,
PLAYERAUTH_PENDING = 256,
PLAYERAUTH_CUSTOM = 512,
PLAYERAUTH_UPP_MODE = 16384
} AvHPlayerAuthentication;
typedef enum
{
HUD_SOUND_INVALID = 0,
HUD_SOUND_POINTS_SPENT,
HUD_SOUND_COUNTDOWN,
HUD_SOUND_SELECT,
HUD_SOUND_SQUAD1,
HUD_SOUND_SQUAD2,
HUD_SOUND_SQUAD3,
HUD_SOUND_SQUAD4,
HUD_SOUND_SQUAD5,
HUD_SOUND_PLACE_BUILDING,
HUD_SOUND_MARINE_RESEARCHCOMPLETE,
HUD_SOUND_MARINE_SOLDIER_UNDER_ATTACK,
HUD_SOUND_MARINE_BASE_UNDER_ATTACK,
HUD_SOUND_MARINE_UPGRADE_COMPLETE,
HUD_SOUND_MARINE_MORE,
HUD_SOUND_MARINE_SOLDIERLOST,
HUD_SOUND_MARINE_CCONLINE,
HUD_SOUND_MARINE_CCUNDERATTACK,
HUD_SOUND_MARINE_COMMANDER_EJECTED,
HUD_SOUND_MARINE_RESOURCES_LOW,
HUD_SOUND_MARINE_NEEDS_AMMO,
HUD_SOUND_MARINE_NEEDS_HEALTH,
HUD_SOUND_MARINE_NEEDS_ORDER,
HUD_SOUND_MARINE_POINTS_RECEIVED,
HUD_SOUND_MARINE_SOLDIER_LOST,
HUD_SOUND_MARINE_SENTRYFIRING,
HUD_SOUND_MARINE_SENTRYDAMAGED,
HUD_SOUND_MARINE_GIVEORDERS,
HUD_SOUND_MARINE_NEEDPORTAL,
HUD_SOUND_MARINE_GOTOALERT,
HUD_SOUND_MARINE_COMMANDERIDLE,
HUD_SOUND_MARINE_ARMORYUPGRADING,
HUD_SOUND_ALIEN_ENEMY_APPROACHES,
HUD_SOUND_ALIEN_GAMEOVERMAN,
HUD_SOUND_ALIEN_HIVE_ATTACK,
HUD_SOUND_ALIEN_HIVE_COMPLETE,
HUD_SOUND_ALIEN_HIVE_DYING,
HUD_SOUND_ALIEN_LIFEFORM_ATTACK,
HUD_SOUND_ALIEN_RESOURCES_LOW,
HUD_SOUND_ALIEN_MESS,
HUD_SOUND_ALIEN_MORE,
HUD_SOUND_ALIEN_NEED_BETTER,
HUD_SOUND_ALIEN_NEED_BUILDERS,
HUD_SOUND_ALIEN_NEW_TRAIT,
HUD_SOUND_ALIEN_NOW_DONCE,
HUD_SOUND_ALIEN_POINTS_RECEIVED,
HUD_SOUND_ALIEN_RESOURCES_ATTACK,
HUD_SOUND_ALIEN_STRUCTURE_ATTACK,
HUD_SOUND_ALIEN_UPGRADELOST,
HUD_SOUND_ORDER_MOVE,
HUD_SOUND_ORDER_ATTACK,
HUD_SOUND_ORDER_BUILD,
HUD_SOUND_ORDER_WELD,
HUD_SOUND_ORDER_GUARD,
HUD_SOUND_ORDER_GET,
HUD_SOUND_ORDER_COMPLETE,
HUD_SOUND_GAMESTART,
HUD_SOUND_YOU_WIN,
HUD_SOUND_YOU_LOSE,
HUD_SOUND_TOOLTIP,
// joev: bug 0000767
HUD_SOUND_PLAYERJOIN,
// :joev
HUD_SOUND_MAX
} AvHHUDSound;
typedef vector<AvHHUDSound> HUDSoundListType;
//typedef enum
//{
// ARMOR_BASE = 1,
// ARMOR_HEAVY = 2,
// ARMOR_LIFESUPPORT = 4,
// ARMOR_JETPACK = 8,
// ARMOR_MOTIONTRACK = 16
//} AvHMarineArmor;
// Location orders, global orders
typedef enum
{
ORDERTYPE_UNDEFINED = 0,
ORDERTYPEL_DEFAULT,
ORDERTYPEL_MOVE,
ORDERTYPET_ATTACK,
ORDERTYPET_BUILD,
ORDERTYPET_GUARD,
ORDERTYPET_WELD,
ORDERTYPET_GET,
ORDERTYPEG_HOLD_POSITION,
ORDERTYPEG_CODE_DEPLOY_MINES,
ORDERTYPEG_CODE_GREEN,
ORDERTYPEG_CODE_YELLOW,
ORDERTYPEG_CODE_RED,
ORDERTYPE_MAX
}
AvHOrderType;
typedef enum
{
ORDERTARGETTYPE_UNDEFINED = 0,
ORDERTARGETTYPE_GLOBAL = 1,
ORDERTARGETTYPE_LOCATION = 2,
ORDERTARGETTYPE_TARGET = 3
}
AvHOrderTargetType;
extern const char* getModDirectory(void);
extern const char* getModName(void);
#define kSpriteDirectory "sprites"
#define kMiniMapSpritesDirectory "sprites/minimaps"
#define kTechTreeSpriteDirectory "sprites/techtree"
#define kTechTreeSpritePrefix "tech"
#define kScriptsDirectory "scripts"
#define kSoundDirectory "sound"
#define kMapDirectory "maps"
#define kMusicDirectory "music"
#define kBasePSName "ns.ps"
// Entities
#define kesDeathMatchStart "info_player_deathmatch"
#define kesTerroristStart "info_player_deathmatch"
#define kesCounterTerroristStart "info_player_start"
#define kesFuncDoor "func_door"
#define kesFuncWall "func_wall"
#define kesEnvSprite "env_sprite"
#define kesFuncIllusionary "func_illusionary"
#define kesReadyRoomStart "info_player_start"
#define keTeamStart info_team_start
#define kesTeamStart "info_team_start"
#define keLeaveGame info_leave_game
#define keJoinTeam info_join_team
#define keSpectate info_spectate
#define keAutoAssign info_join_autoassign
#define keMapInfo info_mapinfo
#define kesMapInfo "info_mapinfo"
#define keGameplay info_gameplay
#define kesGameplay "info_gameplay"
//#define keGlow glow
#define keGamma env_gamma
#define kesGamma "env_gamma"
#define keParticles env_particles
#define kesParticles "env_particles"
#define keParticlesCustom env_particles_custom
#define kesParticlesCustom "env_particles_custom"
//#define keResource resource
#define keWeldable func_weldable
#define kesWeldable "func_weldable"
#define keSeethrough func_seethrough
#define kesSeethrough "func_seethrough"
#define keSeethroughDoor func_seethroughdoor
#define kesSeethroughDoor "func_seethroughdoor"
//#define keWaypoint func_waypoint
//#define kesWaypoint "func_waypoint"
#define keNoBuild func_nobuild
#define kesNoBuild "func_nobuild"
#define keFuncResource func_resource
#define kesFuncResource "func_resource"
#define keMP3Audio target_mp3audio
#define kesMP3Audio "target_mp3audio"
#define keFog env_fog
#define kesFog "env_fog"
#define keInfoLocation info_location
#define kesInfoLocation "info_location"
#define keTeamHive team_hive
#define kesTeamHive "team_hive"
#define keTeamEgg team_egg
#define kesTeamEgg "team_egg"
#define keTriggerRandom trigger_random
#define kesTriggerRandom "trigger_random"
#define keTriggerPresence trigger_presence
#define kesTriggerPresence "trigger_presence"
#define keTriggerScript trigger_script
#define kesTriggerScript "trigger_script"
#define keTeamWebStrand team_webstrand
#define kesTeamWebStrand "team_webstrand"
// Targets fired by game
#define ktGameStartedStatus "gamestartedstatus"
#define ktGameReset "gamereset"
// Weapons/Equipment
#define kwsKnife "weapon_knife"
#define kwKnife weapon_knife
#define kwsGrenade "weapon_grenade"
#define kwGrenade weapon_grenade
#define kwsMachineGun "weapon_machinegun"
#define kwMachineGun weapon_machinegun
#define kwsPistol "weapon_pistol"
#define kwPistol weapon_pistol
#define kwsShotGun "weapon_shotgun"
#define kwShotGun weapon_shotgun
#define kwsHeavyMachineGun "weapon_heavymachinegun"
#define kwHeavyMachineGun weapon_heavymachinegun
#define kwsGrenadeGun "weapon_grenadegun"
#define kwGrenadeGun weapon_grenadegun
#define kwsNukeGun "weapon_nukegun"
#define kwNukeGun weapon_nukegun
#define kwsFlameGun "weapon_flamegun"
#define kwFlameGun weapon_flamegun
// Weapon that dispenses mines
#define kwsMine "weapon_mine"
#define kwMine weapon_mine
// Deployed mines
#define kwDeployedMine item_mine
#define kwsDeployedMine "item_mine"
#define kwsDeployedTurret "turret"
#define kwDeployedTurret turret
#define kwsHealth "item_health"
#define kwHealth item_health
#define kwsCatalyst "item_catalyst"
#define kwCatalyst item_catalyst
#define kwsGenericAmmo "item_genericammo"
#define kwGenericAmmo item_genericammo
#define kwsHeavyArmor "item_heavyarmor"
#define kwHeavyArmor item_heavyarmor
#define kwsJetpack "item_jetpack"
#define kwJetpack item_jetpack
#define kwsAmmoPack "item_ammopack"
#define kwAmmoPack item_ammopack
// Alien weapons
#define kwsParalysisGun "weapon_paralysis"
#define kwParalysisGun weapon_paralysis
#define kwsSpitGun "weapon_spit"
#define kwSpitGun weapon_spit
#define kwClaws weapon_claws
#define kwsClaws "weapon_claws"
#define kwSwipe weapon_swipe
#define kwsSwipe "weapon_swipe"
#define kwSporeGun weapon_spore
#define kwsSporeGun "weapon_spore"
// Alien projectiles
#define kwsSpitProjectile "spitgunprojectile"
#define kwSpitProjectile spitgunprojectile
#define kwSporeProjectile sporegunprojectile
#define kwsSporeProjectile "sporegunprojectile"
#define kwSpikeGun weapon_spikegun
#define kwsSpikeGun "weapon_spikegun"
#define kwBiteGun weapon_bitegun
#define kwsBiteGun "weapon_bitegun"
#define kwBite2Gun weapon_bite2gun
#define kwsBite2Gun "weapon_bite2gun"
#define kwResourceTowerGun weapon_resourcetowergun
#define kwsResourceTowerGun "weapon_resourcetowergun"
#define kwOffenseChamberGun weapon_offensechambergun
#define kwsOffenseChamberGun "weapon_offensechambergun"
#define kwDefenseChamberGun weapon_defensechambergun
#define kwsDefenseChamberGun "weapon_defensechambergun"
#define kwSensoryChamberGun weapon_sensorychambergun
#define kwsSensoryChamberGun "weapon_sensorychambergun"
#define kwMovementChamberGun weapon_movementchambergun
#define kwsMovementChamberGun "weapon_movementchambergun"
#define kwHiveGun weapon_hivegun
#define kwsHiveGun "weapon_hivegun"
#define kwHealingSpray weapon_healingspray
#define kwsHealingSpray "weapon_healingspray"
#define kwMetabolize weapon_metabolize
#define kwsMetabolize "weapon_metabolize"
#define kwWebSpinner weapon_webspinner
#define kwsWebSpinner "weapon_webspinner"
#define kwsWebProjectile "webgunprojectile"
#define kwWebProjectile webgunprojectile
#define kwBabblerGun weapon_babblergun
#define kwsBabblerGun "weapon_babblergun"
#define kwBabblerProjectile weapon_babblerprojectile
#define kwsBabblerProjectile "weapon_babblerprojectile"
#define kwPrimalScream weapon_primalscream
#define kwsPrimalScream "weapon_primalscream"
#define kwLeap weapon_leap
#define kwsLeap "weapon_leap"
#define kwAmplify weapon_amplify
#define kwsAmplify "weapon_amplify"
#define kwStomp weapon_stomp
#define kwsStomp "weapon_stomp"
#define kwStompProjectile stompprojectile
#define kwsStompProjectile "stompprojectile"
#define kwDevour weapon_devour
#define kwsDevour "weapon_devour"
#define kwCharge weapon_charge
#define kwsCharge "weapon_charge"
#define kwsParasiteGun "weapon_parasite"
#define kwParasiteGun weapon_parasite
#define kwsUmbraCloud "umbracloud"
#define kwUmbraCloud umbracloud
#define kwsUmbraProjectile "umbraprojectile"
#define kwUmbraProjectile umbraprojectile
#define kwsUmbraGun "weapon_umbra"
#define kwUmbraGun weapon_umbra
#define kwsBlinkGun "weapon_blink"
#define kwBlinkGun weapon_blink
#define kwsDivineWind "weapon_divinewind"
#define kwDivineWind weapon_divinewind
#define kwBileBomb weapon_bilebomb
#define kwsBileBomb "weapon_bilebomb"
#define kwBileBombGun weapon_bilebombgun
#define kwsBileBombGun "weapon_bilebombgun"
#define kwAcidRocket weapon_acidrocket
#define kwsAcidRocket "weapon_acidrocket"
#define kwAcidRocketGun weapon_acidrocketgun
#define kwsAcidRocketGun "weapon_acidrocketgun"
// Debug item
#define kwsDebugEntity "item_genericammo"
// Filenames
#define kMOTDName "motd.txt"
// Tech node prefix (skill.cfg)
#define kTechCostPrefix "avh_techcost_"
#define kTechHealthPrefix "avh_techhealth_"
#define kTechTimePrefix "avh_techtime_"
// Player models
#define kNullModel "models/null.mdl"
#define kReadyRoomModel "models/player.mdl"
#define kMarineSoldierModel "models/player/soldier/soldier.mdl"
#define kHeavySoldierModel "models/player/heavy/heavy.mdl"
#define kMarineCommanderModel "models/player/commander/commander.mdl"
#define kAlienLevelOneModel "models/player/alien1/alien1.mdl"
#define kAlienLevelTwoModel "models/player/alien2/alien2.mdl"
#define kAlienLevelThreeModel "models/player/alien3/alien3.mdl"
#define kAlienLevelFourModel "models/player/alien4/alien4.mdl"
#define kAlienLevelFiveModel "models/player/alien5/alien5.mdl"
#define kAlienGestateModel "models/player/gestate/gestate.mdl"
//#define kAlienAbilitiesGrantedSound "misc/a-abilities_granted.wav"
//#define kAlienAbilitiesLostSound "misc/a-abilities_lost.wav"
#define kAlienBuildingSound1 "misc/a-build1.wav"
#define kAlienBuildingSound2 "misc/a-build2.wav"
#define kDistressBeaconSound "misc/distressbeacon.wav"
#define kBuildableRecycleSound "misc/b_recycle.wav"
#define kBuildableHurt1Sound "misc/b_hurt1.wav"
#define kBuildableHurt2Sound "misc/b_hurt2.wav"
#define kElectricalSprite "sprites/lgtning.spr"
// Model names for key
#define kSoldierName "soldier"
#define kHeavyName "heavy"
#define kCommanderName "commander"
#define kAlien1Name "alien1"
#define kAlien2Name "alien2"
#define kAlien3Name "alien3"
#define kAlien4Name "alien4"
#define kAlien5Name "alien5"
#define kAlienGestationName "gestate"
// Sound lists
#define kPlayerLevelAttackSoundList "player/role%d_attack"
#define kPlayerLevelDieSoundList "player/role%d_die"
#define kPlayerLevelIdleSoundList "player/role%d_idle"
#define kPlayerLevelMoveSoundList "player/role%d_move"
#define kPlayerLevelPainSoundList "player/role%d_pain"
#define kPlayerLevelSpawnSoundList "player/role%d_spawn"
#define kPlayerLevelWoundSoundList "player/role%d_wound"
#define kHiveWoundSoundList "misc/hive_wound"
#define kFallPainSoundFormat "player/pl_fallpain3-%d.wav"
#define kDigestingSound "player/digesting.wav"
// Not quite a sound list
//#define kHiveWoundSoundPrefix "misc/hive_wound"
#define kPieSelectForwardSound "hud/select_node_forward.wav"
#define kPieSelectBackwardSound "hud/select_node_backward.wav"
#define kPieSelectForwardAlienSound "hud/select_node_forward-a.wav"
#define kPieSelectBackwardAlienSound "hud/select_node_backward-a.wav"
#define kSelectSound "hud/select.wav"
#define kSelectAlienSound "hud/select-a.wav"
#define kSquad1Sound "hud/squad1.wav"
#define kSquad2Sound "hud/squad2.wav"
#define kSquad3Sound "hud/squad3.wav"
#define kSquad4Sound "hud/squad4.wav"
#define kSquad5Sound "hud/squad5.wav"
#define kMarineSquad1Sound "hud/m-squad1.wav"
#define kMarineSquad2Sound "hud/m-squad2.wav"
#define kMarineSquad3Sound "hud/m-squad3.wav"
#define kMarineSquad4Sound "hud/m-squad4.wav"
#define kMarineSquad5Sound "hud/m-squad5.wav"
#define kPlaceBuildingSound "hud/place_building.wav"
#define kCountdownSound "hud/countdown.wav"
#define kPointsSpentSound "hud/points_spent.wav"
#define kAlienPointsReceivedSound "hud/alien_points_received.wav"
#define kMarinePointsReceivedSound "hud/marine_points_received.wav"
#define kMarineResearchComplete "hud/marine_research_complete.wav"
#define kMarineSoldierUnderAttack "hud/marine_soldierunderattack.wav"
#define kMarineCCOnline1 "hud/marine_cconline1.wav"
#define kMarineCCOnline2 "hud/marine_cconline2.wav"
#define kMarineCCUnderAttack1 "hud/marine_ccunderattack1.wav"
#define kMarineCCUnderAttack2 "hud/marine_ccunderattack2.wav"
#define kMarineCommanderEjected "hud/marine_commander_ejected.wav"
#define kMarineBaseUnderAttack1 "hud/marine_baseattack1.wav"
#define kMarineBaseUnderAttack2 "hud/marine_baseattack2.wav"
#define kMarineMoreResources "hud/marine_more.wav"
#define kMarineLowResources "hud/marine_lowresources.wav"
#define kMarineNeedsAmmo1 "hud/marine_needsammo1.wav"
#define kMarineNeedsAmmo2 "hud/marine_needsammo2.wav"
#define kMarineNeedsHealth1 "hud/marine_needshealth1.wav"
#define kMarineNeedsHealth2 "hud/marine_needshealth2.wav"
#define kMarineNeedsOrder1 "hud/marine_needsorder1.wav"
#define kMarineNeedsOrder2 "hud/marine_needsorder2.wav"
#define kMarineSoldierLost1 "hud/marine_soldierlost1.wav"
#define kMarineSoldierLost2 "hud/marine_soldierlost2.wav"
#define kMarineSentryFiring1 "hud/marine_sentryfiring1.wav"
#define kMarineSentryFiring2 "hud/marine_sentryfiring2.wav"
#define kMarineSentryTakingDamage1 "hud/marine_sentrytakingdamage1.wav"
#define kMarineSentryTakingDamage2 "hud/marine_sentrytakingdamage2.wav"
#define kMarineUpgradeComplete "hud/marine_upgradecomplete.wav"
#define kMarineGiveOrders "hud/marine_giveorders.wav"
#define kMarineNeedPortal1 "hud/marine_needportal1.wav"
#define kMarineNeedPortal2 "hud/marine_needportal2.wav"
#define kMarineGotoAlert "hud/marine_gotoalert.wav"
#define kMarineCommanderIdle1 "hud/marine_commanderidle1.wav"
#define kMarineCommanderIdle2 "hud/marine_commanderidle2.wav"
#define kMarineArmoryUpgrading "hud/marine_armoryupgrading.wav"
#define kAlienEnemyApproaches1 "hud/alien_enemyapproaches1.wav"
#define kAlienEnemyApproaches2 "hud/alien_enemyapproaches2.wav"
#define kAlienGameOverMan "hud/alien_gameoverman.wav"
#define kAlienHiveAttack "hud/alien_hiveattack.wav"
#define kAlienHiveComplete1 "hud/alien_hivecomplete1.wav"
#define kAlienHiveComplete2 "hud/alien_hivecomplete2.wav"
#define kAlienHiveDying1 "hud/alien_hivedying1.wav"
#define kAlienHiveDying2 "hud/alien_hivedying2.wav"
#define kAlienLifeformAttack1 "hud/alien_lifeformattack1.wav"
#define kAlienLifeformAttack2 "hud/alien_lifeformattack2.wav"
#define kAlienLowResources "hud/alien_lowresources.wav"
#define kAlienMess "hud/alien_mess.wav"
#define kAlienMoreResources1 "hud/alien_more1.wav"
#define kAlienMoreResources2 "hud/alien_more2.wav"
#define kAlienNeedBetter "hud/alien_needbetter.wav"
#define kAlienNeedBuilders1 "hud/alien_needbuilders1.wav"
#define kAlienNeedBuilders2 "hud/alien_needbuilders2.wav"
#define kAlienNewTrait1 "hud/alien_newtrait1.wav"
#define kAlienNewTrait2 "hud/alien_newtrait2.wav"
#define kAlienNowDonce "hud/alien_now.wav"
#define kAlienResourceAttack1 "hud/alien_resourceattack1.wav"
#define kAlienResourceAttack2 "hud/alien_resourceattack2.wav"
#define kAlienSeeDead "hud/alien_seedead.wav"
#define kAlienStructureAttack1 "hud/alien_structureattack1.wav"
#define kAlienStructureAttack2 "hud/alien_structureattack2.wav"
#define kAlienUpgradeLost "hud/alien_upgrade_lost.wav"
#define kSoundOrderMove1 "hud/marine_order_move1.wav"
#define kSoundOrderMove2 "hud/marine_order_move2.wav"
#define kSoundOrderMove3 "hud/marine_order_move3.wav"
#define kSoundOrderMove4 "hud/marine_order_move4.wav"
#define kSoundOrderAttack "hud/marine_order_attack.wav"
#define kSoundOrderBuild "hud/marine_order_build.wav"
#define kSoundOrderWeld "hud/marine_order_weld.wav"
#define kSoundOrderGuard "hud/marine_order_guard.wav"
#define kSoundOrderGet "hud/marine_order_get.wav"
#define kSoundOrderComplete1 "hud/marine_order_complete1.wav"
#define kSoundOrderComplete2 "hud/marine_order_complete2.wav"
#define kSoundOrderComplete3 "hud/marine_order_complete3.wav"
#define kSoundOrderComplete4 "hud/marine_order_complete4.wav"
#define kSoundOrderComplete5 "hud/marine_order_complete5.wav"
#define kSoundOrderComplete6 "hud/marine_order_complete6.wav"
#define kAlienGameStart1 "hud/alien_gamestart1.wav"
#define kAlienGameStart2 "hud/alien_gamestart2.wav"
#define kMarineGameStart1 "hud/marine_gamestart1.wav"
#define kMarineGameStart2 "hud/marine_gamestart2.wav"
#define kYouWinSound "hud/you_win.wav"
#define kYouLoseSound "hud/you_lose.wav"
#define kTooltipSound "hud/tooltip.wav"
#define kMyHiveEasterEgg "hud/alien_myhive.wav"
// Tech category names
#define kWeaponTechCategory "WeaponCategory"
#define kArmorTechCategory "ArmorCategory"
#define kBuildTechCategory "BuildCategory"
#define kRadioTechCategory "RadioCategory"
// Tech button components are the category plus this suffix
//#define kMessageButtonsSuffix "Buttons"
#define kTechNodeLabelPrefix "TechNodeLabel_"
#define kTechNodeHelpPrefix "TechNodeHelp_"
#define kPrerequisitePrefix "Prerequisite"
#define kUser3Name "User3Name_"
#define kUser3Description "User3Desc_"
#define kUser3FriendlyDescription "User3FriendlyDesc_"
#define kUser3CommanderDescription "User3CommanderDesc_"
#define kBlipStatusPrefix "BlipStatus_"
#define kMessageButtonCost "Cost"
#define kNotFullyBuilt "NotFullyBuilt"
#define kPointsSuffix "Points"
const float kSquadHierarchyScaleFactor = .0001f;
const float kCommanderHierarchyScaleFactor = .0002f;
// Sayings
#define kSoldierSayingList "vox/ssay%d"
#define kCommanderSayingList "vox/csay%d"
#define kAlienSayingList "vox/asay%d"
#define kSoldierOrderRequestList "vox/sreq"
#define kSoldierOrderAckList "vox/sack"
// Other sounds
#define kJetpackSound "misc/jetpack.wav"
//#define kAdrenalineSound "misc/adren.wav"
#define kGestationSound "misc/gestate.wav"
#define kConnectSound "misc/connect.wav"
//#define kDisconnectSound "misc/disconnect.wav"
#define kEmptySound "weapons/357_cock1.wav"
#define kInvalidSound "misc/invalid.wav"
#define kLevelUpMarineSound "misc/levelup.wav"
#define kLevelUpAlienSound "misc/a-levelup.wav"
// joev: bug 0000767
#define kPlayerJoinedSound "player/jointeam.wav"
// :joev
// Events
#define kJetpackEvent "events/Jetpack.sc"
#define kStartOverwatchEvent "events/StartOverwatch.sc"
#define kEndOverwatchEvent "events/EndOverwatch.sc"
#define kStopVoiceSoundEvent "events/StopVoice.sc"
#define kRegenerationEvent "events/Regeneration.sc"
#define kStartCloakEvent "events/StartCloak.sc"
#define kEndCloakEvent "events/EndCloak.sc"
#define kWallJumpEvent "events/WallJump.sc"
#define kFlightEvent "events/Flight.sc"
#define kTeleportEvent "events/Teleport.sc"
#define kSiegeHitEvent "events/SiegeHit.sc"
#define kSiegeViewHitEvent "events/SiegeViewHit.sc"
#define kPhaseInEvent "events/PhaseIn.sc"
#define kCommanderPointsAwardedEvent "events/CommandPoints.sc"
#define kEmptySoundEvent "events/Empty.sc"
#define kNumericalInfoEvent "events/NumericalInfo.sc"
#define kAlienSightOnEvent "events/AlienSightOn.sc"
#define kAlienSightOffEvent "events/AlienSightOff.sc"
#define kInvalidActionEvent "events/InvalidAction.sc"
#define kParticleEvent "events/Particle.sc"
#define kDistressBeaconEvent "events/DistressBeacon.sc"
#define kWeaponAnimationEvent "events/WeaponAnimation.sc"
#define kLevelUpEvent "events/LevelUp.sc"
#define kAbilityEventName "events/Ability.sc"
// Targets
#define kTargetCommandStationUseTeamOne "commandstationuse1"
#define kTargetCommandStationUseTeamTwo "commandstationuse2"
#define kTargetCommandStationLogoutTeamOne "commandstationlogout1"
#define kTargetCommandStationLogoutTeamTwo "commandstationlogout2"
#define kTargetCommandStationDestroyedTeamOne "commandstationdestroyed1"
#define kTargetCommandStationDestroyedTeamTwo "commandstationdestroyed2"
#define kReadyNotification "ready"
#define kNotReadyNotification "notready"
const int kOverwatchBreakingVelocity = 5;
const float kOverwatchAcquireTime = 6.0f;
const float kOverwatchLostTargetTime = 4.0f;
const float kOverwatchKeepFiringAfterMissingTargetTime = 1.0f;
const float kSpeakingTime = 4.0f;
const float kEnemySightedTime = 2.0f;
const int kDefaultViewHeight = 0;
const float kDefaultMinMapExtent = -4000;
const float kDefaultMaxMapExtent = 4000;
// Energy constants for marine structures
const float kMarineStructureEnergyRate = .33f;
const float kMarineStructureMaxEnergy = 100;
const int kShellRenderAmount = 50;
const int kInvulShellRenderAmount = 15;
// This is one less then 4096 because we need top bit for sign.
// Only allow map dimensions of this size or lower
const float kMaxMapDimension = 4095;
const float kDefaultMapGamma = 1.0f;
const float kNormalizationNetworkFactor = 1000.0f;
const float kHotKeyNetworkFactor = 100.0f;
const int kDetectionDistance = 500;
const float kMaxRelevantCullDistance = 1024;
const int kHiveXYDistanceTolerance = 400;
const float kBaseHealthPercentage = .5f;
const float kHUDSoundVolume = .3f;
#define kHotKeyPrefix "hotkey"
// How many directions can bullets travel in within spread vector?
//const int kBulletSpreadGranularity = 15;
const int iNumberOfTeamColors = 6;
extern int kTeamColors[iNumberOfTeamColors][3];
extern float kFTeamColors[iNumberOfTeamColors][3];
// Random resource constants
const int kNumSharesPerPlayer = 3;
const int kTotalShares = MAX_PLAYERS_PER_TEAM*kNumSharesPerPlayer;
const int kNumericalInfoResourcesEvent = 0;
const int kNumericalInfoHealthEvent = 1;
const int kNumericalInfoResourcesDonatedEvent = 2;
const int kNumericalInfoAmmoEvent = 3;
const int kGameStatusReset = 0;
const int kGameStatusResetNewMap = 1;
const int kGameStatusEnded = 2;
const int kGameStatusGameTime = 3;
const int kGameStatusUnspentLevels = 4;
// Max message length is 192, take into account rest of message
const int kMaxPlayerSendMessageLength = 160;
const int kTopDownYaw = 90;
const int kTopDownPitch = 0;
const int kTopDownRoll = -90;
// Extra fudge factor to make sure players don't get stuck when respawning
const int kRespawnFudgeFactorHeight = 1;
#endif