re3/src/control/Darkel.h

54 lines
1.5 KiB
C
Raw Permalink Normal View History

#pragma once
2020-04-19 16:34:08 +00:00
2019-10-06 21:39:25 +00:00
#include "ModelIndices.h"
2020-04-19 16:34:08 +00:00
#include "WeaponType.h"
2019-07-04 20:31:21 +00:00
2019-07-09 16:50:35 +00:00
class CVehicle;
class CPed;
2019-10-06 21:39:25 +00:00
enum
2019-07-04 20:31:21 +00:00
{
2019-07-07 07:13:04 +00:00
KILLFRENZY_NONE,
2019-07-04 20:31:21 +00:00
KILLFRENZY_ONGOING,
KILLFRENZY_PASSED,
KILLFRENZY_FAILED,
};
class CDarkel
{
2019-06-14 23:34:19 +00:00
private:
static int32 TimeLimit;
static int32 PreviousTime;
static int32 TimeOfFrenzyStart;
static int32 WeaponType;
static int32 AmmoInterruptedWeapon;
static int32 KillsNeeded;
static int8 InterruptedWeapon;
2020-08-14 14:34:04 +00:00
static bool bStandardSoundAndMessages;
static bool bNeedHeadShot;
static bool bProperKillFrenzy;
static uint16 Status;
static uint16 RegisteredKills[NUM_DEFAULT_MODELS];
static int32 ModelToKill;
static int32 ModelToKill2;
static int32 ModelToKill3;
static int32 ModelToKill4;
2019-07-04 20:31:21 +00:00
static wchar *pStartMessage;
2019-06-14 23:34:19 +00:00
public:
2019-10-05 13:44:03 +00:00
static uint8 CalcFade(uint32 time, uint32 min, uint32 max);
static void DrawMessages(void);
2019-06-14 23:34:19 +00:00
static bool FrenzyOnGoing();
2019-07-04 20:31:21 +00:00
static void Init();
2019-10-05 13:44:03 +00:00
static uint16 QueryModelsKilledByPlayer(int32 modelId);
static uint16 ReadStatus();
2019-07-09 16:50:35 +00:00
static void RegisterCarBlownUpByPlayer(CVehicle *vehicle);
static void RegisterKillByPlayer(CPed *victim, eWeaponType weapontype, bool headshot = false);
static void RegisterKillNotByPlayer(CPed* victim, eWeaponType weapontype);
2019-07-04 20:31:21 +00:00
static void ResetModelsKilledByPlayer();
static void ResetOnPlayerDeath();
2019-10-05 13:44:03 +00:00
static void StartFrenzy(eWeaponType weaponType, int32 time, uint16 kill, int32 modelId0, wchar *text, int32 modelId2, int32 modelId3, int32 modelId4, bool standardSound, bool needHeadShot);
2019-07-04 20:31:21 +00:00
static void Update();
};