summaryrefslogtreecommitdiffstats
path: root/src/core/Stats.h
blob: bf40a5a6ce58040ba91449e68e8f1d749998320f (plain) (blame)
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
82
83
84
85
86
87
88
89
90
91
92
93
#pragma once

#include "PedType.h"

class CStats
{
public:
	enum {
		TOTAL_FASTEST_TIMES = 16,
		TOTAL_HIGHEST_SCORES = 16
	};
	static int32 DaysPassed;
    static int32 HeadsPopped;
	static int32 CommercialPassed;
	static int32 IndustrialPassed;
	static int32 SuburbanPassed;
	static int32 NumberKillFrenziesPassed;
	static int32 PeopleKilledByOthers;
	static int32 HelisDestroyed;
	static int32 PedsKilledOfThisType[ePedType::NUM_PEDTYPES];
	static int32 TimesDied;
	static int32 TimesArrested;
	static int32 KillsSinceLastCheckpoint;
	static int32 DistanceTravelledInVehicle;
	static int32 DistanceTravelledOnFoot;
	static int32 CarsExploded;
	static int32 PeopleKilledByPlayer;
	static int32 ProgressMade;
	static int32 TotalProgressInGame;
	static float MaximumJumpDistance;
	static float MaximumJumpHeight;
	static int32 MaximumJumpFlips;
	static int32 MaximumJumpSpins;
	static int32 BestStuntJump;
	static int32 NumberOfUniqueJumpsFound;
	static int32 TotalNumberOfUniqueJumps;
	static int32 PassengersDroppedOffWithTaxi;
	static int32 MoneyMadeWithTaxi;
	static int32 MissionsGiven;
	static int32 MissionsPassed;
	static char  LastMissionPassedName[8];
	static int32 TotalLegitimateKills;
	static int32 ElBurroTime;
	static int32 Record4x4One;
	static int32 Record4x4Two;
	static int32 Record4x4Three;
	static int32 Record4x4Mayhem;
	static int32 LivesSavedWithAmbulance;
	static int32 CriminalsCaught;
	static int32 HighestLevelAmbulanceMission;
	static int32 FiresExtinguished;
	static int32 LongestFlightInDodo;
	static int32 TimeTakenDefuseMission;
	static int32 TotalNumberKillFrenzies;
    static int32 TotalNumberMissions;
    static int32 RoundsFiredByPlayer;
    static int32 KgsOfExplosivesUsed;
    static int32 InstantHitsFiredByPlayer;
    static int32 InstantHitsHitByPlayer;
    static int32 BestTimeBombDefusal;
    static int32 mmRain;
    static int32 CarsCrushed;
	static int32 FastestTimes[TOTAL_FASTEST_TIMES];
	static int32 HighestScores[TOTAL_HIGHEST_SCORES];
	static int32 Sprayings;
	static float AutoPaintingBudget;
	static int32 NoMoreHurricanes;

public:
	static void Init(void);
	static void RegisterFastestTime(int32, int32);
	static void RegisterHighestScore(int32, int32);
	static void RegisterElBurroTime(int32);
	static void Register4x4OneTime(int32);
	static void Register4x4TwoTime(int32);
	static void Register4x4ThreeTime(int32);
	static void Register4x4MayhemTime(int32);
	static void AnotherLifeSavedWithAmbulance();
	static void AnotherCriminalCaught();
	static void RegisterLevelAmbulanceMission(int32);
	static void AnotherFireExtinguished();
	static wchar *FindCriminalRatingString();
	static void RegisterLongestFlightInDodo(int32);
	static void RegisterTimeTakenDefuseMission(int32);
	static void AnotherKillFrenzyPassed();
	static void SetTotalNumberKillFrenzies(int32);
	static void SetTotalNumberMissions(int32);
	static void CheckPointReachedSuccessfully() { TotalLegitimateKills += KillsSinceLastCheckpoint; KillsSinceLastCheckpoint = 0; };
	static void CheckPointReachedUnsuccessfully() { KillsSinceLastCheckpoint = 0; };
	static int32 FindCriminalRatingNumber();
	static void SaveStats(uint8 *buf, uint32 *size);
	static void LoadStats(uint8 *buf, uint32 size);
};