]> git.jsancho.org Git - lugaru.git/blobdiff - Source/Objects/Object.hpp
Update copyright year to 2017
[lugaru.git] / Source / Objects / Object.hpp
index a6c4f16a64ef921e9437e65970f8b563b6289907..d8ce273faeff31b2636844b9c175ac6c1129f8af 100644 (file)
@@ -1,6 +1,6 @@
 /*
 Copyright (C) 2003, 2010 - Wolfire Games
-Copyright (C) 2010-2016 - Lugaru contributors (see AUTHORS file)
+Copyright (C) 2010-2017 - Lugaru contributors (see AUTHORS file)
 
 This file is part of Lugaru.
 
@@ -28,7 +28,7 @@ along with Lugaru.  If not, see <http://www.gnu.org/licenses/>.
 #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 <memory>
@@ -39,19 +39,21 @@ along with Lugaru.  If not, see <http://www.gnu.org/licenses/>.
 
 #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,7 +88,7 @@ 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();
@@ -98,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