/*
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.
#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 <memory>
#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
{
static Texture rocktextureptr;
XYZ position;
- int type;
+ object_type type;
float yaw;
float pitch;
float rotx;
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
-