You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
691 lines
18 KiB
691 lines
18 KiB
//========= 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
|
|
|