File: StringSerializer.h

package info (click to toggle)
spring 0.81.2.1%2Bdfsg1-6
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 28,496 kB
  • ctags: 37,096
  • sloc: cpp: 238,659; ansic: 13,784; java: 12,175; awk: 3,428; python: 1,159; xml: 738; perl: 405; sh: 297; makefile: 267; pascal: 228; objc: 192
file content (81 lines) | stat: -rw-r--r-- 2,948 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#ifndef STRINGSERIALIZER_H
#define STRINGSERIALIZER_H

#include <sstream>
#include <cstdio>

#include "PlayerStatistics.h"
#include "TeamStatistics.h"
#include "demofile.h"

using std::wstringstream;
using std::endl;

wstringstream& operator<<(wstringstream& str, const DemoFileHeader& header)
{
	char idbuf[128];
	const unsigned char* p = header.gameID;

	std::sprintf(idbuf,
		"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
		p[ 0], p[ 1], p[ 2], p[ 3], p[ 4], p[ 5], p[ 6], p[ 7],
		p[ 8], p[ 9], p[10], p[11], p[12], p[13], p[14], p[15]);

	str<<L"Magic: "<<header.magic<<endl;
	str<<L"Version: "<<header.version<<endl;
	str<<L"HeaderSize: " <<header.headerSize<<endl;
	str<<L"VersionString: " <<header.versionString<<endl;
	str<<L"GameID: " <<idbuf<<endl;
	str<<L"UnixTime: " <<header.unixTime<<endl;
	str<<L"ScriptSize: " <<header.scriptSize<<endl;
	str<<L"DemoStreamSize: " <<header.demoStreamSize<<endl;
	str<<L"GameTime: " <<header.gameTime<<endl;
	str<<L"WallclockTime: " <<header.wallclockTime<<endl;
	str<<L"NumPlayers: " <<header.numPlayers<<endl;
	str<<L"PlayerStatSize: " <<header.playerStatSize<<endl;
	str<<L"PlayerStatElemSize: " <<header.playerStatElemSize<<endl;
	str<<L"NumTeams: " <<header.numTeams<<endl;
	str<<L"TeamStatSize: " <<header.teamStatSize<<endl;
	str<<L"TeamStatElemSize: " <<header.teamStatElemSize<<endl;
	str<<L"TeamStatPeriod: " <<header.teamStatPeriod<<endl;
	str<<L"WinningAllyTeam: " <<header.winningAllyTeam<<endl;
	return str;
}


wstringstream& operator<<(wstringstream& str, const PlayerStatistics& header)
{
	str<<L"MousePixels: " <<header.mousePixels<<endl;
	str<<L"MouseClicks: " <<header.mouseClicks<<endl;
	str<<L"KeyPresses: " <<header.keyPresses<<endl;
	str<<L"NumCommands: " <<header.numCommands<<endl;
	str<<L"UnitCommands: " <<header.unitCommands<<endl;
	return str;
}


wstringstream& operator<<(wstringstream& str, const TeamStatistics& header)
{
	str<<L"MetalUsed: " <<header.metalUsed<<endl;
	str<<L"EnergyUsed: " <<header.energyUsed<<endl;
	str<<L"MetalProduced: " <<header.metalProduced<<endl;
	str<<L"EnergyProduced: " <<header.energyProduced<<endl;
	str<<L"MetalExcess: " <<header.metalExcess<<endl;
	str<<L"EnergyExcess: " <<header.energyExcess<<endl;
	str<<L"MetalReceived: " <<header.metalReceived<<endl;
	str<<L"EnergyReceived: " <<header.energyReceived<<endl;
	str<<L"MetalSent: " <<header.metalSent<<endl;
	str<<L"EnergySent: " <<header.energySent<<endl;
	str<<L"DamageDealt: " <<header.damageDealt<<endl;
	str<<L"DamageReceived: " <<header.damageReceived<<endl;
	str<<L"UnitsProduced: " <<header.unitsProduced<<endl;
	str<<L"UnitsDied: " <<header.unitsDied<<endl;
	str<<L"UnitsReceived: " <<header.unitsReceived<<endl;
	str<<L"UnitsSent: " <<header.unitsSent<<endl;
	str<<L"UnitsCaptured: " <<header.unitsCaptured<<endl;
	str<<L"UnitsOutCaptured: " <<header.unitsOutCaptured<<endl;
	str<<L"UnitsKilled: " <<header.unitsKilled<<endl;
	return str;
}

#endif