summaryrefslogblamecommitdiffstats
path: root/src/core/Stats.h
blob: ac3259f96476bb524fcaf350b597a5009bf45e63 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11

            

                    


            



                                         
                                 
                              


                                       

                                               
                                     
                                                                    


                                               

                                                 

                                           














                                                   
                                  










                                                   
                                      
                                      





                                           

                                                           
 
       
                               

                                                       
                                               



                                                 




                                                         

                                                          
                                              

                                                      
                                                                                                                                        

                                                                                        
                                                        
                                                       
  
#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];

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);
};