|
|
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
//=============================================================================//
#ifndef DOD_SHAREDDEFS_H
#define DOD_SHAREDDEFS_H
#ifdef _WIN32
#pragma once
#endif
#include "dod_playeranimstate.h"
#define DOD_PLAYER_VIEW_OFFSET Vector( 0, 0, 54 )
// DOD Team IDs.
#define TEAM_ALLIES 2
#define TEAM_AXIS 3
#define TEAM_MAXCOUNT 4 // update this if we ever add teams (unlikely)
enum SubTeam { SUBTEAM_NORMAL = 0, SUBTEAM_PARA, SUBTEAM_ALT_NATION, NUM_SUBTEAMS };
#define MAX_CONTROL_POINTS 8
#define MAX_CONTROL_POINT_GROUPS 8
#define DEATH_CAM_TIME 5.0f
#define MAX_WAVE_RESPAWN_TIME 20.0f
#define DOD_BOMB_TIMER_LENGTH 20
#define DOD_BOMB_DEFUSE_TIME 3.0f
#define DOD_BOMB_PLANT_TIME 2.0f
#define DOD_BOMB_PLANT_RADIUS 80
#define DOD_BOMB_DEFUSE_MAXDIST 96.0f
enum { CAP_EVENT_NONE, CAP_EVENT_BOMB, CAP_EVENT_FLAG, CAP_EVENT_TIMER_EXPIRE };
enum { WINPANEL_TOP3_NONE, WINPANEL_TOP3_BOMBERS, WINPANEL_TOP3_CAPPERS, WINPANEL_TOP3_DEFENDERS, WINPANEL_TOP3_KILLERS };
//--------------
// DoD Specific damage flags
//--------------
// careful when reusing HL2 DMG_ flags, some of them cancel out the damage, eg if they are in DMG_TIMEBASED
#define DMG_STUN (DMG_PARALYZE) //(1<<15)
#define DMG_MACHINEGUN (DMG_LASTGENERICFLAG<<1) //(1<<30)
#define DMG_BOMB (DMG_LASTGENERICFLAG<<2) //(1<<31)
//END OF THE EXTENDABLE LIST!! Start reusing HL2 specific flags
#define MELEE_DMG_SECONDARYATTACK (1<<0)
#define MELEE_DMG_FIST (1<<1)
#define MELEE_DMG_EDGE (1<<2)
#define MELEE_DMG_STRONGATTACK (1<<3)
#define SANDBAG_NOT_TOUCHING 0
#define SANDBAG_TOUCHING 1
#define SANDBAG_TOUCHING_ALIGNED 2
#define SANDBAG_DEPLOYED 3
#define PRONE_DEPLOY_HEIGHT -1
#define STANDING_DEPLOY_HEIGHT 58
#define CROUCHING_DEPLOY_HEIGHT 28
#define TIME_TO_DEPLOY 0.3
#define MIN_DEPLOY_PITCH 45
#define MAX_DEPLOY_PITCH -60
#define VEC_DUCK_MOVING_HULL_MIN Vector(-16, -16, 0 )
#define VEC_DUCK_MOVING_HULL_MAX Vector( 16, 16, 55 )
#define VEC_PRONE_HULL_MIN DODGameRules()->GetDODViewVectors()->m_vProneHullMin
#define VEC_PRONE_HULL_MAX DODGameRules()->GetDODViewVectors()->m_vProneHullMax // MUST be shorter than duck hull for deploy check
#define VEC_PRONE_HULL_MIN_SCALED( player ) ( DODGameRules()->GetDODViewVectors()->m_vProneHullMin * player->GetModelScale() )
#define VEC_PRONE_HULL_MAX_SCALED( player ) ( DODGameRules()->GetDODViewVectors()->m_vProneHullMax * player->GetModelScale() )
#define VEC_PRONE_HELPER_HULL_MIN Vector(-48, -48, 0 )
#define VEC_PRONE_HELPER_HULL_MAX Vector( 48, 48, 24 )
#define GRENADE_FUSE_LENGTH 5.0
#define RIFLEGRENADE_FUSE_LENGTH 3.5
#define CONTENTS_PRONE_HELPER 0x80000000
#define PASS_OUT_CHANGE_TIME 1.5
#define PASS_OUT_GET_UP_TIME 1.5
// DOD-specific viewport panels
#define PANEL_TEAM "team"
#define PANEL_CLASS_ALLIES "class_us"
#define PANEL_CLASS_AXIS "class_ger"
#define PANEL_BACKGROUND "background"
#define COLOR_DOD_GREEN Color(77, 121, 66, 255) // Color(76, 102, 76, 255)
#define COLOR_DOD_RED Color(255, 64, 64, 255)
#define DOD_HUD_HEALTH_IMAGE_LENGTH 64
// The various states the player can be in during the join game process.
enum DODPlayerState { // Happily running around in the game.
// This state can jump to a bunch of other states like STATE_PICKINGCLASS or STATE_DEATH_ANIM.
STATE_ACTIVE=0, // This is the state you're in when you first enter the server.
// It's switching between intro cameras every few seconds, and there's a level info
// screen up.
STATE_WELCOME, // Show the level intro screen.
// During these states, you can either be a new player waiting to join, or
// you can be a live player in the game who wants to change teams.
// Either way, you can't move while choosing team or class (or while any menu is up).
STATE_PICKINGTEAM, // Choosing team.
STATE_PICKINGCLASS, // Choosing class.
STATE_DEATH_ANIM, // Playing death anim, waiting for that to finish.
STATE_DEATH_OBSERVING, // Done playing death anim. Waiting for keypress to go into observer mode.
STATE_OBSERVER_MODE, // Noclipping around, watching players, etc.
NUM_PLAYER_STATES };
enum DODRoundState { // initialize the game, create teams
STATE_INIT=0,
//Before players have joined the game. Periodically checks to see if enough players are ready
//to start a game. Also reverts to this when there are no active players
STATE_PREGAME,
//The game is about to start, wait a bit and spawn everyone
STATE_STARTGAME,
//All players are respawned, frozen in place
STATE_PREROUND,
//Round is on, playing normally
STATE_RND_RUNNING,
//Someone has won the round
STATE_ALLIES_WIN, STATE_AXIS_WIN,
//Noone has won, manually restart the game, reset scores
STATE_RESTART,
//Game is over, showing the scoreboard etc
STATE_GAME_OVER,
NUM_ROUND_STATES };
#define PLAYERCLASS_RANDOM -2
#define PLAYERCLASS_UNDEFINED -1
#define DOD_PLAYERMODEL_AXIS_RIFLEMAN "models/player/german_rifleman.mdl"
#define DOD_PLAYERMODEL_AXIS_ASSAULT "models/player/german_assault.mdl"
#define DOD_PLAYERMODEL_AXIS_SUPPORT "models/player/german_support.mdl"
#define DOD_PLAYERMODEL_AXIS_SNIPER "models/player/german_sniper.mdl"
#define DOD_PLAYERMODEL_AXIS_MG "models/player/german_mg.mdl"
#define DOD_PLAYERMODEL_AXIS_ROCKET "models/player/german_rocket.mdl"
#define DOD_PLAYERMODEL_US_RIFLEMAN "models/player/american_rifleman.mdl"
#define DOD_PLAYERMODEL_US_ASSAULT "models/player/american_assault.mdl"
#define DOD_PLAYERMODEL_US_SUPPORT "models/player/american_support.mdl"
#define DOD_PLAYERMODEL_US_SNIPER "models/player/american_sniper.mdl"
#define DOD_PLAYERMODEL_US_MG "models/player/american_mg.mdl"
#define DOD_PLAYERMODEL_US_ROCKET "models/player/american_rocket.mdl"
typedef struct DodClassInfo_s { char selectcmd[32]; char classname[128]; char modelname[128];
int team; //which team. 0 == allies, 1 == axis
int primarywpn; int secondarywpn; int meleewpn;
int numgrenades; int armskin; //what skin does this class show in grenades / knives
int headgroup; //bodygroups
int helmetgroup; int geargroup; int bodygroup; int hairgroup; //what helmet group to switch to when the helmet comes off
} DodClassInfo_t;
extern DodClassInfo_t g_ClassInfo[]; //a structure to hold all of the classes
extern DodClassInfo_t g_ParaClassInfo[];
// Voice Commands
typedef struct DodVoiceCommand_s { const char *pszCommandName; // console command that will produce the voice command
const char *pszSoundName; // name of sound to play
PlayerAnimEvent_t iHandSignal; //index into the hand signal array
const char *pszAlliedSubtitle; // subtitles for each nationality
const char *pszAxisSubtitle; const char *pszBritishSubtitle; } DodVoiceCommand_t;
extern DodVoiceCommand_t g_VoiceCommands[];
// Hand Signals
typedef struct DodHandSignal_s { const char *pszCommandName; // console command that will produce the voice command
PlayerAnimEvent_t iHandSignal; //index into the hand signal array
const char *pszSubtitle; // subtitles for each nationality
} DodHandSignal_t;
extern DodHandSignal_t g_HandSignals[];
#define ARM_SKIN_UNDEFINED 0
enum { HEAD_GROUP_0 = 0, HEAD_GROUP_1, HEAD_GROUP_2, HEAD_GROUP_3, HEAD_GROUP_4, HEAD_GROUP_5, HEAD_GROUP_6, };
enum { HELMET_GROUP_0 = 0, HELMET_GROUP_1, HELMET_GROUP_2, HELMET_GROUP_3, HELMET_GROUP_4, HELMET_GROUP_5, HELMET_GROUP_6, HELMET_GROUP_7, };
enum { BODY_GROUP_0 = 0, BODY_GROUP_1, BODY_GROUP_2, BODY_GROUP_3, BODY_GROUP_4, BODY_GROUP_5, };
enum { GEAR_GROUP_0 = 0, GEAR_GROUP_1, GEAR_GROUP_2, GEAR_GROUP_3, GEAR_GROUP_4, GEAR_GROUP_5, GEAR_GROUP_6, };
enum { BODYGROUP_BODY = 0, BODYGROUP_HELMET, BODYGROUP_HEAD, BODYGROUP_GEAR, BODYGROUP_JUMPGEAR };
enum { BODYGROUP_HEAD1 = 0, BODYGROUP_HEAD2, BODYGROUP_HEAD3, BODYGROUP_HEAD4, BODYGROUP_HEAD5, BODYGROUP_HEAD6, BODYGROUP_HEAD7 };
//helmet groups
#define BODYGROUP_HELMET_ON 0
#define BODYGROUP_ALLIES_HELMET_HELMET1 0
#define BODYGROUP_ALLIES_HELMET_HELMET2 1
#define BODYGROUP_ALLIES_HELMET_OFF 2
#define BODYGROUP_AXIS_HAIR0 1
#define BODYGROUP_AXIS_HAIR1 2
#define BODYGROUP_AXIS_HAIR2 3
#define BODYGROUP_AXIS_HAIR3 4
#define BODYGROUP_AXIS_HAIR4 5
#define BODYGROUP_AXIS_HAIR5 6
#define BODYGROUP_AXIS_HAIR6 7
//battle gear groups
#define BODYGROUP_TOMMYGEAR 0
#define BODYGROUP_SPRINGGEAR 1
#define BODYGROUP_GARANDGEAR 2
#define BODYGROUP_MGGEAR 3
#define BODYGROUP_BARGEAR 4
#define BODYGROUP_CARBGEAR 5
#define BODYGROUP_GREASEGUNGEAR 6
//jump gear
#define BODYGROUP_JUMPGEAR_OFF 0
#define BODYGROUP_JUMPGEAR_ON 1
enum { HELMET_ALLIES = 0, HELMET_AXIS,
NUM_HELMETS };
extern const char *m_pszHelmetModels[NUM_HELMETS];
//Materials
/*
#define CHAR_TEX_CONCRETE 'C' // texture types
#define CHAR_TEX_METAL 'M'
#define CHAR_TEX_DIRT 'D'
#define CHAR_TEX_GRATE 'G'
#define CHAR_TEX_TILE 'T'
#define CHAR_TEX_WOOD 'W'
#define CHAR_TEX_GLASS 'Y'
#define CHAR_TEX_FLESH 'F'
#define CHAR_TEX_WATER 'S'
#define CHAR_TEX_ROCK 'R'
#define CHAR_TEX_SAND 'A'
#define CHAR_TEX_GRAVEL 'L'
#define CHAR_TEX_STUCCO 'Z'
#define CHAR_TEX_BRICK 'B'
#define CHAR_TEX_SNOW 'N'
#define CHAR_TEX_HEAVYMETAL 'H'
#define CHAR_TEX_LEAVES 'E'
#define CHAR_TEX_SKY 'K'
#define CHAR_TEX_GRASS 'P'
*/
#define WPN_SLOT_PRIMARY 0
#define WPN_SLOT_SECONDARY 1
#define WPN_SLOT_MELEE 2
#define WPN_SLOT_GRENADES 3
#define WPN_SLOT_BOMB 4
#define SLEEVE_AXIS 0
#define SLEEVE_ALLIES 1
#define VM_BODYGROUP_GUN 0
#define VM_BODYGROUP_SLEEVE 1
#define PLAYER_SPEED_FROZEN 1
#define PLAYER_SPEED_PRONE 50
#define PLAYER_SPEED_PRONE_ZOOMED 30
#define PLAYER_SPEED_PRONE_BAZOOKA_DEPLOYED 30
#define PLAYER_SPEED_ZOOMED 42
#define PLAYER_SPEED_BAZOOKA_DEPLOYED 50
#define PLAYER_SPEED_NORMAL 600.0f
#define PLAYER_SPEED_SLOWED 120
#define PLAYER_SPEED_RUN 220
#define PLAYER_SPEED_SPRINT 330
#define PUSHAWAY_THINK_INTERVAL (1.0f / 20.0f)
#define VEC_PRONE_VIEW Vector(0,0,10)
#define VEC_PRONE_VIEW_SCALED( player ) ( Vector(0,0,10) * player->GetModelScale() )
#define TIME_TO_PRONE 1.2f // should be 1.5!
#define INITIAL_SPRINT_STAMINA_PENALTY 15
#define LOW_STAMINA_THRESHOLD 35
// changed to 80% of goldsrc values, gives the same end result
#define ZOOM_SWAY_PRONE 0.1
#define ZOOM_SWAY_DUCKING 0.2
#define ZOOM_SWAY_STANDING 0.5
#define ZOOM_SWAY_MOVING_PENALTY 0.4
extern const char * s_WeaponAliasInfo[];
enum { //Dod hint messages
HINT_FRIEND_SEEN = 0, // #Hint_spotted_a_friend
HINT_ENEMY_SEEN, // #Hint_spotted_an_enemy
HINT_FRIEND_INJURED, // #Hint_try_not_to_injure_teammates
HINT_FRIEND_KILLED, // #Hint_careful_around_teammates
HINT_ENEMY_KILLED, // #Hint_killing_enemies_is_good
HINT_IN_AREA_CAP, // #Hint_touched_area_capture
HINT_FLAG_TOUCH, // #Hint_touched_control_point
HINT_OBJECT_PICKUP, // #Hint_picked_up_object
HINT_MG_FIRE_UNDEPLOYED, // #Hint_mgs_fire_better_deployed
HINT_SANDBAG_AREA, // #Hint_sandbag_area_touch
HINT_BAZOOKA_PICKUP, // #Hint_rocket_weapon_pickup
HINT_AMMO_EXHAUSTED, // #Hint_out_of_ammo
HINT_PRONE, // #Hint_prone
HINT_LOW_STAMINA, // #Hint_low_stamina
HINT_OBJECT_REQUIRED, // #Hint_area_requires_object
HINT_PLAYER_KILLED_WAVETIME, // #Hint_player_killed_wavetime
HINT_WEAPON_OVERHEAT, // #Hint_mg_overheat
HINT_SHOULDER_WEAPON, // #game_shoulder_rpg
HINT_PICK_UP_WEAPON, // #Hint_pick_up_weapon
HINT_PICK_UP_GRENADE, // #Hint_pick_up_grenade
HINT_DEATHCAM, // #Hint_death_cam
HINT_CLASSMENU, // #Hint_class_menu
HINT_USE_MELEE, // #Hint_use_2e_melee
HINT_USE_ZOOM, // #Hint_use_zoom
HINT_USE_IRON_SIGHTS, // #Hint_use_iron_sights
HINT_USE_SEMI_AUTO, // #Hint_use_semi_auto
HINT_USE_SPRINT, // #Hint_use_sprint
HINT_USE_DEPLOY, // #Hint_use_deploy
HINT_USE_PRIME, // #Hint_use_prime
HINT_MG_DEPLOY_USAGE, // #Hint_mg_deploy_usage
HINT_MG_DEPLOY_TO_RELOAD, // #Dod_mg_reload
HINT_GARAND_RELOAD, // #Hint_garand_reload
HINT_TURN_OFF_HINTS, // #Hint_turn_off_hints
HINT_NEED_BOMB, // #Hint_need_bomb_to_plant
HINT_BOMB_PLANTED, // #Hint_bomb_planted
HINT_DEFUSE_BOMB, // #Hint_defuse_bomb
HINT_BOMB_TARGET, // #Hint_bomb_target
HINT_BOMB_PICKUP, // #Hint_bomb_pickup
HINT_BOMB_DEFUSE_ONGROUND, // #Hint_bomb_defuse_onground
HINT_BOMB_PLANT_MAP, // #Hint_bomb_plant_map
HINT_BOMB_FIRST_SELECT, // #Hint_bomb_first_select
NUM_HINTS };
extern const char *g_pszHintMessages[];
// HINT_xxx bits to clear when the round restarts
#define HINT_MASK_SPAWN_CLEAR ( 1 << HINT_FRIEND_KILLED )
// criteria for when a weapon model wants to use an alt model
#define ALTWPN_CRITERIA_NONE 0
#define ALTWPN_CRITERIA_FIRING (1 << 0)
#define ALTWPN_CRITERIA_RELOADING (1 << 1)
#define ALTWPN_CRITERIA_DEPLOYED (1 << 2)
#define ALTWPN_CRITERIA_DEPLOYED_RELOAD (1 << 3)
#define ALTWPN_CRITERIA_PRONE (1 << 4) // player is prone
#define ALTWPN_CRITERIA_PRONE_DEPLOYED_RELOAD (1 << 5) // player should use special alt model when prone deployed reloading
// eject brass shells
#define EJECTBRASS_PISTOL 0
#define EJECTBRASS_RIFLE 1
#define EJECTBRASS_MG 2
#define EJECTBRASS_MG_2 3 // ?
#define EJECTBRASS_GARANDCLIP 4
extern const char *pszTeamAlliesClasses[]; extern const char *pszTeamAxisClasses[];
enum { DOD_COLLISIONGROUP_SHELLS = LAST_SHARED_COLLISION_GROUP, DOD_COLLISIONGROUP_BLOCKERWALL, };
enum { PROGRESS_BAR_BANDAGER = 0, PROGRESS_BAR_BANDAGEE, PROGRESS_BAR_CAP, // done by objective resource
NUM_PROGRESS_BAR_TYPES };
// used for the corner cut panels in the HUD
enum { DOD_CORNERCUT_PANEL_BOTTOMRIGHT = 0, DOD_CORNERCUT_PANEL_BOTTOMLEFT, DOD_CORNERCUT_PANEL_TOPRIGHT, DOD_CORNERCUT_PANEL_TOPLEFT, };
enum ViewAnimationType { VIEW_ANIM_LINEAR_Z_ONLY, VIEW_ANIM_SPLINE_Z_ONLY, VIEW_ANIM_EXPONENTIAL_Z_ONLY, };
enum BombTargetState { // invisible, not active
BOMB_TARGET_INACTIVE=0,
// visible, accepts planting +use
BOMB_TARGET_ACTIVE,
// visible, accepts disarm +use, counts down to explosion
// if disarmed, returns to BOMB_TARGET_ACTIVE
// if explodes, returns to BOMB_TARGET_INACTIVE
BOMB_TARGET_ARMED,
NUM_BOMB_TARGET_STATES };
extern const char *pszWinPanelCategoryHeaders[];
enum { // Season 1
ACHIEVEMENT_DOD_THROW_BACK_GREN = 0, ACHIEVEMENT_DOD_CONSECUTIVE_HEADSHOTS, ACHIEVEMENT_DOD_MG_POSITION_STREAK, ACHIEVEMENT_DOD_WIN_KNIFE_FIGHT, ACHIEVEMENT_DOD_PLAY_CUSTOM_MAPS, ACHIEVEMENT_DOD_KILLS_WITH_GRENADE, ACHIEVEMENT_DOD_LONG_RANGE_ROCKET, ACHIEVEMENT_DOD_END_ROUND_KILLS, ACHIEVEMENT_DOD_CAP_LAST_FLAG, ACHIEVEMENT_DOD_USE_ENEMY_WEAPONS, ACHIEVEMENT_DOD_KILL_DOMINATING_MG, ACHIEVEMENT_DOD_COLMAR_DEFENSE, ACHIEVEMENT_DOD_BLOCK_CAPTURES, ACHIEVEMENT_DOD_JAGD_OVERTIME_CAP, ACHIEVEMENT_DOD_WEAPON_MASTERY,
// grinds
ACHIEVEMENT_DOD_KILLS_AS_ALLIES, ACHIEVEMENT_DOD_KILLS_AS_AXIS,
ACHIEVEMENT_DOD_KILLS_AS_RIFLEMAN, ACHIEVEMENT_DOD_KILLS_AS_ASSAULT, ACHIEVEMENT_DOD_KILLS_AS_SUPPORT, ACHIEVEMENT_DOD_KILLS_AS_SNIPER, ACHIEVEMENT_DOD_KILLS_AS_MG, ACHIEVEMENT_DOD_KILLS_AS_BAZOOKAGUY,
ACHIEVEMENT_DOD_KILLS_WITH_GARAND, ACHIEVEMENT_DOD_KILLS_WITH_THOMPSON, ACHIEVEMENT_DOD_KILLS_WITH_BAR, ACHIEVEMENT_DOD_KILLS_WITH_SPRING, ACHIEVEMENT_DOD_KILLS_WITH_30CAL, ACHIEVEMENT_DOD_KILLS_WITH_BAZOOKA, ACHIEVEMENT_DOD_KILLS_WITH_K98, ACHIEVEMENT_DOD_KILLS_WITH_MP40, ACHIEVEMENT_DOD_KILLS_WITH_MP44, ACHIEVEMENT_DOD_KILLS_WITH_K98SCOPED, ACHIEVEMENT_DOD_KILLS_WITH_MG42, ACHIEVEMENT_DOD_KILLS_WITH_PSCHRECK, ACHIEVEMENT_DOD_KILLS_WITH_COLT, ACHIEVEMENT_DOD_KILLS_WITH_P38, ACHIEVEMENT_DOD_KILLS_WITH_C96, ACHIEVEMENT_DOD_KILLS_WITH_M1CARBINE, ACHIEVEMENT_DOD_KILLS_WITH_AMERKNIFE, ACHIEVEMENT_DOD_KILLS_WITH_SPADE, ACHIEVEMENT_DOD_KILLS_WITH_PUNCH, ACHIEVEMENT_DOD_KILLS_WITH_FRAG_US, ACHIEVEMENT_DOD_KILLS_WITH_FRAG_GER, ACHIEVEMENT_DOD_KILLS_WITH_RIFLEGREN_US, ACHIEVEMENT_DOD_KILLS_WITH_RIFLEGREN_GER,
ACHIEVEMENT_DOD_CAPTURE_GRIND, ACHIEVEMENT_DOD_BLOCK_CAPTURES_GRIND, ACHIEVEMENT_DOD_ROUNDS_WON_GRIND,
ACHIEVEMENT_DOD_BOMBS_PLANTED_GRIND, ACHIEVEMENT_DOD_BOMBS_DEFUSED_GRIND,
ACHIEVEMENT_DOD_ALL_PACK_1,
ACHIEVEMENT_DOD_BEAT_THE_HEAT,
// Winter 2011
ACHIEVEMENT_DOD_COLLECT_HOLIDAY_GIFTS,
NUM_DOD_ACHIEVEMENTS };
#define ACHIEVEMENT_NUM_CONSECUTIVE_HEADSHOTS 5
#define ACHIEVEMENT_MG_STREAK_IS_DOMINATING 8
#define ACHIEVEMENT_NUM_ENEMY_WPN_KILLS 5
#define ACHIEVEMENT_LONG_RANGE_ROCKET_DIST 1200
// other magic numbers exist inside the achievements themselves in achievements_dod.cpp
enum { DOD_MUZZLEFLASH_PISTOL = 0, DOD_MUZZLEFLASH_AUTO, DOD_MUZZLEFLASH_RIFLE, DOD_MUZZLEFLASH_MG, DOD_MUZZLEFLASH_ROCKET, DOD_MUZZLEFLASH_MG42 };
#define DOD_KILLS_DOMINATION 4
// Death notice flags
#define DOD_DEATHFLAG_DOMINATION 0x0001 // killer is dominating victim
#define DOD_DEATHFLAG_REVENGE 0x0002 // killer got revenge on victim
enum { ACHIEVEMENT_AWARDS_NONE = 0, ACHIEVEMENT_AWARDS_RIFLEMAN, ACHIEVEMENT_AWARDS_ASSAULT, ACHIEVEMENT_AWARDS_SUPPORT, ACHIEVEMENT_AWARDS_SNIPER, ACHIEVEMENT_AWARDS_MG, ACHIEVEMENT_AWARDS_ROCKET, ACHIEVEMENT_AWARDS_ALL_PACK_1,
NUM_ACHIEVEMENT_AWARDS };
extern const char *g_pszAchievementAwards[NUM_ACHIEVEMENT_AWARDS]; extern const char *g_pszAchievementAwardMaterials_Allies[NUM_ACHIEVEMENT_AWARDS]; extern const char *g_pszAchievementAwardMaterials_Axis[NUM_ACHIEVEMENT_AWARDS];
enum DODStatType_t { DODSTAT_PLAYTIME = 0, DODSTAT_ROUNDSWON, DODSTAT_ROUNDSLOST, DODSTAT_KILLS, DODSTAT_DEATHS, DODSTAT_CAPTURES, DODSTAT_BLOCKS, DODSTAT_BOMBSPLANTED, DODSTAT_BOMBSDEFUSED, DODSTAT_DOMINATIONS, DODSTAT_REVENGES, DODSTAT_SHOTS_HIT, DODSTAT_SHOTS_FIRED, DODSTAT_HEADSHOTS,
DODSTAT_MAX };
#define DODSTAT_FIRST DODSTAT_PLAYTIME
typedef struct { int m_iStat[DODSTAT_MAX]; bool m_bDirty[DODSTAT_MAX];
} dod_stat_accumulator_t;
#define NUM_DOD_PLAYERCLASSES 6
#endif // DOD_SHAREDDEFS_H
|