mirror of
https://github.com/nillerusr/source-engine.git
synced 2024-12-22 14:16:50 +00:00
692 lines
18 KiB
C
692 lines
18 KiB
C
//========= 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
|