summaryrefslogblamecommitdiffstats
path: root/src/control/Darkel.h
blob: f17d758113af98b81d2e015cf7866740545271c5 (plain) (tree)
1
2
3
4
5
6
7
8
9
            
                   
                         
 


               
    
 
                        



                           


             
        









                                               

                                                             




                                    
 
       
                                                                   
                                       
                                    
                           

                                                               

                                                                                                      
                                                                                  

                                                
                                                                                                                                                                                                     

                             
  
#pragma once
#include "Weapon.h"
#include "ModelIndices.h"

class CVehicle;
class CPed;

enum
{
	KILLFRENZY_NONE,
	KILLFRENZY_ONGOING,
	KILLFRENZY_PASSED,
	KILLFRENZY_FAILED,
};

class CDarkel
{
private:
	static int32 &TimeLimit;
	static int32 &PreviousTime;
	static int32 &TimeOfFrenzyStart;
	static int32 &WeaponType;
	static int32 &AmmoInterruptedWeapon;
	static int32 &KillsNeeded;
	static int8 &InterruptedWeapon;
	static int8 &bStandardSoundAndMessages;
	static int8 &bNeedHeadShot;
	static int8 &bProperKillFrenzy;
	static uint16 &Status;
	static uint16 (&RegisteredKills)[NUM_DEFAULT_MODELS];
	static int32 &ModelToKill;
	static int32 &ModelToKill2;
	static int32 &ModelToKill3;
	static int32 &ModelToKill4;
	static wchar *pStartMessage;

public:
	static uint8 CalcFade(uint32 time, uint32 min, uint32 max);
	static void DrawMessages(void);
	static bool FrenzyOnGoing();
	static void Init();
	static uint16 QueryModelsKilledByPlayer(int32 modelId);
	static uint16 ReadStatus();
	static void RegisterCarBlownUpByPlayer(CVehicle *vehicle);
	static void RegisterKillByPlayer(CPed *victim, eWeaponType weapontype, bool headshot = false);
	static void RegisterKillNotByPlayer(CPed* victim, eWeaponType weapontype);
	static void ResetModelsKilledByPlayer();
	static void ResetOnPlayerDeath();
	static void StartFrenzy(eWeaponType weaponType, int32 time, uint16 kill, int32 modelId0, wchar *text, int32 modelId2, int32 modelId3, int32 modelId4, bool standardSound, bool needHeadShot);
	static void Update();

};