summaryrefslogtreecommitdiffstats
path: root/src/vehicles/Door.h
diff options
context:
space:
mode:
authoraap <aap@papnet.eu>2019-07-07 18:36:55 +0200
committeraap <aap@papnet.eu>2019-07-07 18:36:55 +0200
commitc1f3ce8cceb675a9c76b4dc4e7cdfb18b17c4f2f (patch)
tree03233dd562394ce53c3a0024d7f9dfe71d722ac8 /src/vehicles/Door.h
parentthe great reorganization (diff)
downloadre3-c1f3ce8cceb675a9c76b4dc4e7cdfb18b17c4f2f.tar
re3-c1f3ce8cceb675a9c76b4dc4e7cdfb18b17c4f2f.tar.gz
re3-c1f3ce8cceb675a9c76b4dc4e7cdfb18b17c4f2f.tar.bz2
re3-c1f3ce8cceb675a9c76b4dc4e7cdfb18b17c4f2f.tar.lz
re3-c1f3ce8cceb675a9c76b4dc4e7cdfb18b17c4f2f.tar.xz
re3-c1f3ce8cceb675a9c76b4dc4e7cdfb18b17c4f2f.tar.zst
re3-c1f3ce8cceb675a9c76b4dc4e7cdfb18b17c4f2f.zip
Diffstat (limited to '')
-rw-r--r--src/vehicles/Door.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/vehicles/Door.h b/src/vehicles/Door.h
new file mode 100644
index 00000000..fc771a40
--- /dev/null
+++ b/src/vehicles/Door.h
@@ -0,0 +1,36 @@
+#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
+};
+
+struct CDoor
+{
+ 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 Open(float ratio);
+ void Process(CVehicle *veh);
+ float RetAngleWhenClosed(void);
+ float RetAngleWhenOpen(void);
+ float GetAngleOpenRatio(void);
+ bool IsFullyOpen(void);
+ bool IsClosed(void);
+};