summaryrefslogblamecommitdiffstats
path: root/src/core/Stats.h
blob: 029b2307b7e9794d15f16fc9ab24917c470a86c0 (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 bool& CommercialPassed;
	static bool& IndustrialPassed;
	static bool& 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 &ShotsMade;
    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 RegisterFastestTime(int32, int32);
	static void RegisterHighestScore(int32, int32);
	static void AnotherKillFrenzyPassed();
	static void AnotherLifeSavedWithAmbulance();
	static void AnotherCriminalCaught();
	static void RegisterLevelAmbulanceMission(int32);
	static void AnotherFireExtinguished();
	static void Register4x4OneTime(int32);
	static void Register4x4TwoTime(int32);
	static void Register4x4ThreeTime(int32);
	static void Register4x4MayhemTime(int32);
	static void RegisterLongestFlightInDodo(int32);
	static void RegisterTimeTakenDefuseMission(int32);
	static void SetTotalNumberKillFrenzies(int32);
	static void SetTotalNumberMissions(int32);
	static void CheckPointReachedUnsuccessfully() { KillsSinceLastCheckpoint = 0; };
	static void CheckPointReachedSuccessfully() { TotalLegitimateKills += KillsSinceLastCheckpoint; KillsSinceLastCheckpoint = 0; };
	static void RegisterElBurroTime(int32);
	static void SaveStats(uint8 *buf, uint32 *size);
	static void Init(void);
};