#if !defined(__NGLOG_MW4__)
#define __NGLOG_MW4__

#if !defined(NO_LOG)
// nglog_mw4.hpp - MW4-specific settings for logging
// -------------------------------------------------
// Jason Keimig
// jkeimig@microsoft.com
//

// MW4 engine-specific parameters
#define MW4_BINARY_PATH	"\\Assets\\Binaries\\"
#define MW4_TIME_RESOLUTION	4


// These 4 are necessary:
//		GAME_VERSION
//		GAME_NAME
//		GAME_AUTHOR
//		GAME_AUTHOR_URL
//
#define GAME_VERSION	"Beta - Not for release"
#define GAME_NAME		"MechWarrior4"
#define GAME_AUTHOR		"Microsoft"
#define GAME_AUTHOR_URL	"http://www.Zone.com/mech4"

// Add more log-related entries as needed
#define GAME_PATCHVERSION "No-patch"
#define GAME_PATCH		"No-patch"
#define GAME_PATCHNAME	"No-patch-long-name"
#define GAME_PATCH_DECODER_RING	"No-Patch-DecoderRing"
#define GAME_PATCHAUTHOR		"No-Patch-Author"
#define GAME_PATCHAUTHOR_URL	"No-Patch-AuthorURL"

// Entry Types for MechWarrior4
#define MW4GAME_START	0	// Game started
#define MW4GAME_END		1	// Game over
#define MW4GAME_GEN		2	// Miscellaneous stuff
#define MW4P_CONNECT	3	// Player connect
#define MW4P_DISCONN	4	// Player disconnect
#define MW4P_REJECT		5	// Player reject from server
#define MW4P_INFO		6	// Player info update
#define MW4P_KILL		7	// Player kill/death
#define MW4P_RESPAWN	8	// Player respawn
#define MW4P_DSTATS		9	// Player damage stats
#define MW4L_ADD		10	// Lancemate added

#define MW4G_MAPRESPAWN		 11  // the map respawned
#define MW4T_DEFENDINGTEAM   12  // the defending team
#define MW4T_HQDESTROYED     13  // HQ destroyed
#define MW4T_DEFENDTIMEAWARD 14  // defend time award

// MW4 middleware
char *va(char *, ...);
int  MW4log_load_zLogLib(char *);
void MW4log_unload_zLogLib(void);
void MW4log_init(void);
void MW4log_options_init(void);
void MW4log_start_logging(void);

void MW4log_generic(int, char *);
void MW4log_playerConnect(int, char *, char *, float, unsigned char *, int);
void MW4log_GameEnd(int, char *);
char *MW4log_playerIdentifier(unsigned char *, int);
void MW4log_writeAllStats(void);
void MW4log_checkCurrentStats(void);
void MW4log_writePlayerStats(int, int);
void MW4log_writeBotStats(int, int);

void MW4log_ngWS_update(void);
void MW4log_setStatusString( const char *);

void MW4log_msgDump(int, char *, ...);
char *MW4log_timeDump(void);
void MW4log_writeBuf(void);
char *va(char *, ...);
char *MW4log_hostAddr(void);

// Access for logging tweaks from game app.
extern int  z_style;
extern int  z_flush;
extern int  z_buffer;
extern int  z_id;
extern int  zS_exec;
extern int  zWS_enable;		// Server setting if ngWS is to be enabled.
extern char z_path[1024];
extern char z_logname[1024];
extern char zS_cfg[1024];
extern char zS_logdir[1024];

#endif // !defined(NO_LOG)

#endif // !defined(__NGLOG_MW4__)
