Permalink
Cannot retrieve contributors at this time
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
175 lines (130 sloc)
3.65 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============// | |
// | |
// Purpose: The dod game stats header | |
// | |
// $NoKeywords: $ | |
//=============================================================================// | |
#ifndef DOD_GAMESTATS_H | |
#define DOD_GAMESTATS_H | |
#ifdef _WIN32 | |
#pragma once | |
#endif | |
// Redefine some things for the stat reader so it doesn't have to include weapon_dodbase.h | |
#ifndef GAME_DLL | |
typedef enum | |
{ | |
WEAPON_NONE = 0, | |
//Melee | |
WEAPON_AMERKNIFE, | |
WEAPON_SPADE, | |
//Pistols | |
WEAPON_COLT, | |
WEAPON_P38, | |
WEAPON_C96, | |
//Rifles | |
WEAPON_GARAND, | |
WEAPON_M1CARBINE, | |
WEAPON_K98, | |
//Sniper Rifles | |
WEAPON_SPRING, | |
WEAPON_K98_SCOPED, | |
//SMG | |
WEAPON_THOMPSON, | |
WEAPON_MP40, | |
WEAPON_MP44, | |
WEAPON_BAR, | |
//Machine guns | |
WEAPON_30CAL, | |
WEAPON_MG42, | |
//Rocket weapons | |
WEAPON_BAZOOKA, | |
WEAPON_PSCHRECK, | |
//Grenades | |
WEAPON_FRAG_US, | |
WEAPON_FRAG_GER, | |
WEAPON_FRAG_US_LIVE, | |
WEAPON_FRAG_GER_LIVE, | |
WEAPON_SMOKE_US, | |
WEAPON_SMOKE_GER, | |
WEAPON_RIFLEGREN_US, | |
WEAPON_RIFLEGREN_GER, | |
WEAPON_RIFLEGREN_US_LIVE, | |
WEAPON_RIFLEGREN_GER_LIVE, | |
// not actually separate weapons, but defines used in stats recording | |
// find a better way to do this without polluting the list of actual weapons. | |
WEAPON_THOMPSON_PUNCH, | |
WEAPON_MP40_PUNCH, | |
WEAPON_GARAND_ZOOMED, | |
WEAPON_K98_ZOOMED, | |
WEAPON_SPRING_ZOOMED, | |
WEAPON_K98_SCOPED_ZOOMED, | |
WEAPON_30CAL_UNDEPLOYED, | |
WEAPON_MG42_UNDEPLOYED, | |
WEAPON_BAR_SEMIAUTO, | |
WEAPON_MP44_SEMIAUTO, | |
WEAPON_MAX, // number of weapons weapon index | |
} DODWeaponID; | |
#endif // ndef WEAPON_NONE | |
#define DOD_STATS_BLOB_VERSION 1 | |
#define DOD_NUM_DISTANCE_STAT_WEAPONS 22 | |
#define DOD_NUM_NODIST_STAT_WEAPONS 14 | |
#define DOD_NUM_WEAPON_DISTANCE_BUCKETS 10 | |
extern int iDistanceStatWeapons[DOD_NUM_DISTANCE_STAT_WEAPONS]; | |
extern int iNoDistStatWeapons[DOD_NUM_NODIST_STAT_WEAPONS]; | |
extern int iWeaponBucketDistances[DOD_NUM_WEAPON_DISTANCE_BUCKETS-1]; | |
#ifndef GAME_DLL | |
extern const char * s_WeaponAliasInfo[]; | |
#endif | |
typedef struct | |
{ | |
char szGameName[8]; | |
byte iVersion; | |
char szMapName[32]; | |
char ipAddr[4]; | |
short port; | |
int serverid; | |
} gamestats_header_t; | |
// Stats for bullet weapons - includes distance of hits | |
typedef struct | |
{ | |
short iNumAttacks; // times fired | |
short iNumHits; // times hit | |
// distance buckets - distances are defined per-weapon ( 0 is closest, buckets-1 farthest ) | |
short iDistanceBuckets[DOD_NUM_WEAPON_DISTANCE_BUCKETS]; | |
} dod_gamestats_weapon_distance_t; | |
// Stats for non-bullet weapons | |
typedef struct | |
{ | |
short iNumAttacks; // times fired | |
short iNumHits; // times hit | |
} dod_gamestats_weapon_nodist_t; | |
typedef struct | |
{ | |
gamestats_header_t header; | |
// Team Scores | |
byte iNumAlliesWins; | |
byte iNumAxisWins; | |
short iAlliesTickPoints; | |
short iAxisTickPoints; | |
short iMinutesPlayed; // time spent on the map rotation | |
// Player Data | |
short iMinutesPlayedPerClass_Allies[7]; // includes random | |
short iMinutesPlayedPerClass_Axis[7]; // includes random | |
short iKillsPerClass_Allies[6]; | |
short iKillsPerClass_Axis[6]; | |
short iSpawnsPerClass_Allies[6]; | |
short iSpawnsPerClass_Axis[6]; | |
short iCapsPerClass_Allies[6]; | |
short iCapsPerClass_Axis[6]; | |
byte iDefensesPerClass_Allies[6]; | |
byte iDefensesPerClass_Axis[6]; | |
// Server Settings | |
// assume these class limits don't change through the course of the map | |
byte iClassLimits_Allies[6]; | |
byte iClassLimits_Axis[6]; | |
// Weapon Data | |
dod_gamestats_weapon_distance_t weaponStatsDistance[DOD_NUM_DISTANCE_STAT_WEAPONS]; // 14 * 22 = 308 bytes | |
dod_gamestats_weapon_nodist_t weaponStats[DOD_NUM_NODIST_STAT_WEAPONS]; // 4 * 14 = 56 bytes | |
// how many times a weapon was picked up ? | |
} dod_gamestats_t; | |
#endif // DOD_GAMESTATS_H |