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.
175 lines
3.6 KiB
175 lines
3.6 KiB
//========= Copyright 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
|