summaryrefslogtreecommitdiffstats
path: root/src/core/Stats.h
blob: 243ff0ecd9471b6a2acfcf511717e7c9d91af5de (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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
#pragma once

#include "PedType.h"
#include "audio_enums.h"

class CStats
{
public:
	enum {
		TOTAL_FASTEST_TIMES = 23,
		TOTAL_HIGHEST_SCORES = 5,
		TOTAL_BEST_POSITIONS = 1,
		TOTAL_PROPERTIES = 15
	};
	static int32 SeagullsKilled;
	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[NUM_PEDTYPES];
	static int32 TimesDied;
	static int32 TimesArrested;
	static int32 KillsSinceLastCheckpoint;
	static float DistanceTravelledByCar;
	static float DistanceTravelledByHelicoptor;
	static float DistanceTravelledByBike;
	static float DistanceTravelledByBoat;
	static float DistanceTravelledByPlane;
	static float DistanceTravelledByGolfCart;
	static float DistanceTravelledOnFoot;
	static int32 FlightTime;
	static int32 TimesDrowned;
	static int32 PhotosTaken;
	static float LoanSharks;
	static float StoresKnockedOff;
	static float MovieStunts;
	static float Assassinations;
	static float PizzasDelivered;
	static float GarbagePickups;
	static float IceCreamSold;
	static float TopShootingRangeScore;
	static float ShootingRank;
	static int32 CarsExploded;
	static int32 BoatsExploded;
	static int32 WantedStarsAttained;
	static int32 WantedStarsEvaded;
	static int32 PeopleKilledByPlayer;
	static float ProgressMade;
	static float 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 LivesSavedWithAmbulance;
	static int32 CriminalsCaught;
	static int32 HighestLevelAmbulanceMission;
	static int32 HighestLevelVigilanteMission;
	static int32 HighestLevelFireMission;
	static int32 FiresExtinguished;
	static int32 TotalNumberKillFrenzies;
	static int32 TotalNumberMissions;
	static int32 RoundsFiredByPlayer;
	static int32 KgsOfExplosivesUsed;
	static int32 BulletsThatHit;
	static int32 BestTimeBombDefusal;
	static int32 FastestTimes[TOTAL_FASTEST_TIMES];
	static int32 HighestScores[TOTAL_HIGHEST_SCORES];
	static int32 BestPositions[TOTAL_BEST_POSITIONS];
	static bool PropertyOwned[TOTAL_PROPERTIES];
	static int32 NumPropertyOwned;
	static int32 PropertyDestroyed;
	static float HighestChaseValue;
	static int32 CheatedCount;
	static int32 ShowChaseStatOnScreen;
	static int32 PamphletMissionPassed;
	static bool abSonyCDs[1];
	static int32 BloodRingKills;
	static int32 BloodRingTime;
	static float FavoriteRadioStationList[NUM_RADIOS];
	static int32 Sprayings;
	static float AutoPaintingBudget;
	static int32 NoMoreHurricanes;
	static float FashionBudget;
	static float PropertyBudget;
	static float WeaponBudget;
	static int32 SafeHouseVisits;
	static int32 TyresPopped;

	static int32 LongestWheelie;
	static int32 LongestStoppie;
	static int32 Longest2Wheel;
	static float LongestWheelieDist;
	static float LongestStoppieDist;
	static float Longest2WheelDist;

public:
	static void Init(void);
	static void RegisterFastestTime(int32, int32);
	static void RegisterHighestScore(int32, int32);
	static void RegisterBestPosition(int32, int32);
	static void AnotherLifeSavedWithAmbulance();
	static void AnotherCriminalCaught();
	static void RegisterLevelAmbulanceMission(int32);
	static void RegisterLevelVigilanteMission(int32);
	static void RegisterLevelFireMission(int32);
	static void AnotherFireExtinguished();
	static wchar *FindCriminalRatingString();
	static wchar *FindChaseString(float fMediaLevel);
	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);
	static float GetPercentageProgress();

	static void MoneySpentOnWeapons(int32);
	static void MoneySpentOnProperty(int32);
	static void MoneySpentOnAutoPainting(int32);
	static void MoneySpentOnFashion(int32);

	static void NumOfVisitsFromLoanSharks(int32);
	static void NumOfStoresKnockedOff(int32);
	static void NumOfMovieStunts(int32);
	static void NumOfAssassinations(int32);
	static void NumOfPizzasDelivered(int32);
	static void NumOfGarbagePickups(int32);
	static void NumOfIceCreamSold(int32);
	static void AddNumBloodRingKills(int32);

	static void LongestTimeInBloodRing(int32);
	static void AddPropertyAsOwned(int32);
	static void PopulateFavoriteRadioStationList();
	static float GetFavoriteRadioStationList(int32);
	static void BuildStatLine(Const char *, void *, int, void *, int);
	static int ConstructStatLine(int);
};