mirror of
https://github.com/nillerusr/source-engine.git
synced 2024-12-22 22:27:05 +00:00
175 lines
3.6 KiB
C
175 lines
3.6 KiB
C
|
//========= 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
|