summaryrefslogtreecommitdiff
path: root/src/control/Darkel.h
diff options
context:
space:
mode:
authorclaude-bot <[email protected]>2026-07-13 12:27:07 +0000
committerclaude-bot <[email protected]>2026-07-13 12:27:07 +0000
commit9f61c9e6ac6b1ac5692cf6352d2ebbd47a31a686 (patch)
treea84756b82513739a2672db3a1f0ec579db6d18ff /src/control/Darkel.h
downloadre3-miami.tar.gz
re3-miami.zip
Import Cai1Hsu/re3 @ miami (reVC / GTA:VC decompilation)HEADmiami
Snapshot import (no upstream history) into git.ancap.in.ua/claude, per @lzcnt. Source: https://github.com/Cai1Hsu/re3 branch miami.
Diffstat (limited to 'src/control/Darkel.h')
-rw-r--r--src/control/Darkel.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/control/Darkel.h b/src/control/Darkel.h
new file mode 100644
index 0000000..9195547
--- /dev/null
+++ b/src/control/Darkel.h
@@ -0,0 +1,55 @@
+#pragma once
+
+#include "ModelIndices.h"
+#include "WeaponType.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 int32 InterruptedWeaponType;
+ static int32 InterruptedWeaponSelected;
+ 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;
+ 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();
+ static void DealWithWeaponChangeAtEndOfFrenzy();
+
+};