summaryrefslogtreecommitdiffstats
path: root/src/objects/Object.h
diff options
context:
space:
mode:
authoraap <aap@papnet.eu>2019-07-07 13:09:11 +0200
committeraap <aap@papnet.eu>2019-07-07 13:09:11 +0200
commit53023eb65bdcde43e341c1ecb7cf0c7f8ee524fb (patch)
treefc65a6c40fa719f9d43be9e0e15be79c490135e0 /src/objects/Object.h
parentfinished CPhysical (diff)
downloadre3-53023eb65bdcde43e341c1ecb7cf0c7f8ee524fb.tar
re3-53023eb65bdcde43e341c1ecb7cf0c7f8ee524fb.tar.gz
re3-53023eb65bdcde43e341c1ecb7cf0c7f8ee524fb.tar.bz2
re3-53023eb65bdcde43e341c1ecb7cf0c7f8ee524fb.tar.lz
re3-53023eb65bdcde43e341c1ecb7cf0c7f8ee524fb.tar.xz
re3-53023eb65bdcde43e341c1ecb7cf0c7f8ee524fb.tar.zst
re3-53023eb65bdcde43e341c1ecb7cf0c7f8ee524fb.zip
Diffstat (limited to 'src/objects/Object.h')
-rw-r--r--src/objects/Object.h81
1 files changed, 81 insertions, 0 deletions
diff --git a/src/objects/Object.h b/src/objects/Object.h
new file mode 100644
index 00000000..de4c8e05
--- /dev/null
+++ b/src/objects/Object.h
@@ -0,0 +1,81 @@
+#pragma once
+
+#include "Physical.h"
+
+enum {
+ GAME_OBJECT = 1,
+ MISSION_OBJECT = 2,
+ TEMP_OBJECT = 3,
+ CUTSCENE_OBJECT = 4,
+};
+
+enum {
+ COLLRESPONSE_NONE,
+ COLLRESPONSE_CHANGE_MODEL,
+ COLLRESPONSE_SPLIT_MODEL,
+ COLLRESPONSE_SMASH_COMPLETELY,
+ COLLRESPONSE_CHANGE_THEN_SMASH,
+ COLLRESPONSE_UNKNOWN5,
+
+ COLLRESPONSE_SMASH_CARDBOARD_COMPLETELY = 50,
+ COLLRESPONSE_SMASH_WOODENBOX_COMPLETELY = 60,
+ COLLRESPONSE_SMASH_TRAFFICCONE_COMPLETELY = 70,
+ COLLRESPONSE_SMASH_BARPOST_COMPLETELY = 80,
+
+};
+
+class CVehicle;
+
+class CObject : public CPhysical
+{
+public:
+ CMatrix m_objectMatrix;
+ float m_fUprootLimit;
+ int8 ObjectCreatedBy;
+ int8 bIsPickup : 1;
+ int8 m_obj_flag2 : 1;
+ int8 m_obj_flag4 : 1;
+ int8 m_obj_flag8 : 1;
+ int8 m_obj_flag10 : 1;
+ int8 bHasBeenDamaged : 1;
+ int8 bUseVehicleColours : 1;
+ int8 m_obj_flag80 : 1;
+ int8 field_172;
+ int8 field_173;
+ float m_fCollisionDamageMultiplier;
+ uint8 m_nCollisionDamageEffect;
+ uint8 m_nSpecialCollisionResponseCases;
+ bool m_bCameraToAvoidThisObject;
+ int8 field_17B;
+ int8 field_17C;
+ int8 field_17D;
+ int8 field_17E;
+ int8 field_17F;
+ int32 m_nEndOfLifeTime;
+ int16 m_nRefModelIndex;
+ int8 field_186;
+ int8 field_187;
+ CEntity *m_pCurSurface;
+ CEntity *m_pCollidingEntity;
+ int8 m_colour1, m_colour2;
+
+ static int16 &nNoTempObjects;
+
+ static void *operator new(size_t);
+ static void operator delete(void*, size_t);
+
+ CObject(void);
+ ~CObject(void);
+
+ void Render(void);
+ bool SetupLighting(void);
+ void RemoveLighting(bool reset);
+
+ void ObjectDamage(float amount);
+
+ static void DeleteAllTempObjectInArea(CVector, float);
+
+ void dtor(void) { this->CObject::~CObject(); }
+ void Render_(void) { CObject::Render(); }
+};
+static_assert(sizeof(CObject) == 0x198, "CObject: error");