X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;ds=sidebyside;f=Source%2FObjects%2FObject.hpp;h=d1a86a8198c1575ffb3595fd4d501e017c4891c7;hb=1a6ef830cdd01a9b7a8bbcfde8a51b7c430671a3;hp=c1e02cc7dfbe8e0c6df4898661e64971085216cb;hpb=7d2f9d40d94d14a61ecdaaa2c41f964029815bc2;p=lugaru.git
diff --git a/Source/Objects/Object.hpp b/Source/Objects/Object.hpp
index c1e02cc..d1a86a8 100644
--- a/Source/Objects/Object.hpp
+++ b/Source/Objects/Object.hpp
@@ -28,7 +28,7 @@ along with Lugaru. If not, see .
#include "Graphic/Sprite.hpp"
#include "Graphic/Texture.hpp"
#include "Math/Frustum.hpp"
-#include "Math/Quaternions.hpp"
+#include "Math/XYZ.hpp"
#include "Utils/ImageIO.hpp"
#include
@@ -39,19 +39,21 @@ along with Lugaru. If not, see .
#define max_objects 300
-#define boxtype 0
-#define weirdtype 1
-#define spiketype 2
-#define treetrunktype 3
-#define treeleavestype 4
-#define bushtype 5
-#define rocktype 6
-#define walltype 7
-#define chimneytype 8
-#define platformtype 9
-#define tunneltype 11
-#define cooltype 12
-#define firetype 13
+enum object_type {
+ boxtype = 0,
+ weirdtype = 1,
+ spiketype = 2,
+ treetrunktype = 3,
+ treeleavestype = 4,
+ bushtype = 5,
+ rocktype = 6,
+ walltype = 7,
+ chimneytype = 8,
+ platformtype = 9,
+ tunneltype = 11,
+ cooltype = 12,
+ firetype = 13
+};
class Object
@@ -66,7 +68,7 @@ public:
static Texture rocktextureptr;
XYZ position;
- int type;
+ object_type type;
float yaw;
float pitch;
float rotx;
@@ -86,11 +88,10 @@ public:
float flamedelay;
Object();
- Object(int _type, XYZ _position, float _yaw, float _pitch, float _scale);
+ Object(object_type _type, XYZ _position, float _yaw, float _pitch, float _scale);
static void ComputeCenter();
static void ComputeRadius();
- static bool Checkcollide(XYZ startpoint, XYZ endpoint, int which);
static void AddObjectsToTerrain();
static void LoadObjectsFromFile(FILE* tfile, bool skip);
static void SphereCheckPossible(XYZ *p1, float radius);
@@ -99,13 +100,17 @@ public:
static void Draw();
static void DoShadows();
static void DoStuff();
+ static int checkcollide(XYZ startpoint, XYZ endpoint);
+ static int checkcollide(XYZ startpoint, XYZ endpoint, int what);
private:
void handleFire();
+ void handleRot(int divide);
void doShadows(XYZ lightloc);
void draw();
void drawSecondPass();
void addToTerrain(unsigned id);
+ static int checkcollide(XYZ startpoint, XYZ endpoint, int what, float minx, float miny, float minz, float maxx, float maxy, float maxz);
};
#endif