summaryrefslogtreecommitdiff
path: root/src/core/Placeable.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/core/Placeable.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/core/Placeable.h')
-rw-r--r--src/core/Placeable.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/core/Placeable.h b/src/core/Placeable.h
new file mode 100644
index 0000000..b0f9a15
--- /dev/null
+++ b/src/core/Placeable.h
@@ -0,0 +1,34 @@
+#pragma once
+
+class CPlaceable
+{
+public:
+ // disable allocation
+ static void *operator new(size_t);
+
+ CMatrix m_matrix;
+
+ CPlaceable(void);
+ const CVector &GetPosition(void) { return m_matrix.GetPosition(); }
+ void SetPosition(float x, float y, float z) {
+ m_matrix.GetPosition().x = x;
+ m_matrix.GetPosition().y = y;
+ m_matrix.GetPosition().z = z;
+ }
+ void SetPosition(const CVector &pos) { m_matrix.GetPosition() = pos; }
+ CVector &GetRight(void) { return m_matrix.GetRight(); }
+ CVector &GetForward(void) { return m_matrix.GetForward(); }
+ CVector &GetUp(void) { return m_matrix.GetUp(); }
+ CMatrix &GetMatrix(void) { return m_matrix; }
+ void SetTransform(RwMatrix *m) { m_matrix = CMatrix(m, false); }
+ void SetHeading(float angle);
+ void SetOrientation(float x, float y, float z){
+ CVector pos = m_matrix.GetPosition();
+ m_matrix.SetRotate(x, y, z);
+ m_matrix.Translate(pos);
+ }
+ bool IsWithinArea(float x1, float y1, float x2, float y2);
+ bool IsWithinArea(float x1, float y1, float z1, float x2, float y2, float z2);
+};
+
+VALIDATE_SIZE(CPlaceable, 0x4C);