summaryrefslogtreecommitdiff
path: root/src/vehicles/Door.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/vehicles/Door.h
downloadre3-9f61c9e6ac6b1ac5692cf6352d2ebbd47a31a686.tar.gz
re3-9f61c9e6ac6b1ac5692cf6352d2ebbd47a31a686.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/vehicles/Door.h')
-rw-r--r--src/vehicles/Door.h69
1 files changed, 69 insertions, 0 deletions
diff --git a/src/vehicles/Door.h b/src/vehicles/Door.h
new file mode 100644
index 0000000..567d326
--- /dev/null
+++ b/src/vehicles/Door.h
@@ -0,0 +1,69 @@
+#pragma once
+
+class CVehicle;
+
+enum eDoorState
+{
+ DOORST_SWINGING,
+ // actually wrong though,
+ // OPEN is really MAX_ANGLE and CLOSED is MIN_ANGLE
+ DOORST_OPEN,
+ DOORST_CLOSED
+};
+
+class CDoor
+{
+public:
+ float m_fMaxAngle;
+ float m_fMinAngle;
+ // direction of rotation for air resistance
+ int8 m_nDirn;
+ // axis in which this door rotates
+ int8 m_nAxis;
+ int8 m_nDoorState;
+ float m_fAngle;
+ float m_fPrevAngle;
+ float m_fAngVel;
+ CVector m_vecSpeed;
+
+ CDoor(void);
+ void Init(float minAngle, float maxAngle, int8 dir, int8 axis) {
+ m_fMinAngle = minAngle;
+ m_fMaxAngle = maxAngle;
+ m_nDirn = dir;
+ m_nAxis = axis;
+ }
+ void Open(float ratio);
+ void Process(CVehicle *veh);
+ float RetAngleWhenClosed(void); // dead
+ float RetAngleWhenOpen(void);
+ float GetAngleOpenRatio(void);
+ bool IsFullyOpen(void);
+ bool IsClosed(void); // dead
+};
+
+class CTrainDoor
+{
+public:
+ float m_fClosedPosn;
+ float m_fOpenPosn;
+ int8 m_nDirn;
+ int8 m_nDoorState; // same enum as above?
+ int8 m_nAxis;
+ float m_fPosn;
+ float m_fPrevPosn;
+ int field_14; // unused?
+
+ CTrainDoor(void);
+ void Init(float open, float closed, int8 dir, int8 axis) {
+ m_fOpenPosn = open;
+ m_fClosedPosn = closed;
+ m_nDirn = dir;
+ m_nAxis = axis;
+ }
+ bool IsClosed(void);
+ bool IsFullyOpen(void);
+ float RetTranslationWhenClosed(void);
+ float RetTranslationWhenOpen(void);
+ void Open(float ratio);
+};