X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;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