X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FObjects%2FObject.hpp;h=61ba4abb30917e6f668dbe7c13f9e7c574803f4d;hb=d67f3dc0e14c195e650e732e8477c1ac4085e9de;hp=a6c4f16a64ef921e9437e65970f8b563b6289907;hpb=a389d6c2d7aef7995826f3c20ffe5e5a998d858d;p=lugaru.git diff --git a/Source/Objects/Object.hpp b/Source/Objects/Object.hpp index a6c4f16..61ba4ab 100644 --- a/Source/Objects/Object.hpp +++ b/Source/Objects/Object.hpp @@ -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. @@ -23,12 +23,12 @@ along with Lugaru. If not, see . #include "Environment/Lights.hpp" #include "Environment/Terrain.hpp" -#include "Graphic/gamegl.hpp" #include "Graphic/Models.hpp" #include "Graphic/Sprite.hpp" #include "Graphic/Texture.hpp" +#include "Graphic/gamegl.hpp" #include "Math/Frustum.hpp" -#include "Math/Quaternions.hpp" +#include "Math/XYZ.hpp" #include "Utils/ImageIO.hpp" #include @@ -39,20 +39,22 @@ 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,26 +88,29 @@ 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 void AddObjectsToTerrain(); static void LoadObjectsFromFile(FILE* tfile, bool skip); - static void SphereCheckPossible(XYZ *p1, float radius); + static void SphereCheckPossible(XYZ* p1, float radius); static void DeleteObject(int which); static void MakeObject(int atype, XYZ where, float ayaw, float apitch, float ascale); 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 -