]> git.jsancho.org Git - lugaru.git/blobdiff - Source/Models.h
major refactor of texture system
[lugaru.git] / Source / Models.h
index 45ae7a33fbaaf20282fada9cc3aecbcd2e8390a7..a82f85d04287ec55a750fddebfb80ed5364da274 100644 (file)
@@ -1,3 +1,24 @@
+/*
+Copyright (C) 2003, 2010 - Wolfire Games
+
+This file is part of Lugaru.
+
+Lugaru is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
+
+See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+*/
+
 #ifndef _MODELS_H_
 #define _MODELS_H_
 
 #include <string.h>
 #include <vector>
 
-#include "Constants.h"
 #include "Terrain.h"
 #include "binio.h"
 #include "Quaternions.h"
+#include "Texture.h"
 
 //
 // Textures List
@@ -65,8 +86,8 @@ public:
        TexturedTriangle Triangles[max_textured_triangle];
        GLfloat vArray[max_textured_triangle*24];*/
 
-       GLuint                          textureptr;
-       ModelTexture            Texture;
+       Texture textureptr;
+       ModelTexture modelTexture;
        int numpossible;
        bool color;
 
@@ -96,7 +117,7 @@ public:
        void DeleteDecal(int which);
        void MakeDecal(int atype, XYZ *where, float *size, float *opacity, float *rotation);
        void MakeDecal(int atype, XYZ where, float size, float opacity, float rotation);
-       void drawdecals(GLuint shadowtexture,GLuint bloodtexture,GLuint bloodtexture2,GLuint breaktexture);
+       void drawdecals(Texture shadowtexture,Texture bloodtexture,Texture bloodtexture2,Texture breaktexture);
        int SphereCheck(XYZ *p1,float radius, XYZ *p, XYZ *move, float *rotate);
        int SphereCheckPossible(XYZ *p1,float radius, XYZ *move, float *rotate);
        int LineCheck(XYZ *p1,XYZ *p2, XYZ *p, XYZ *move, float *rotate);
@@ -106,10 +127,10 @@ public:
        void UpdateVertexArray();
        void UpdateVertexArrayNoTex();
        void UpdateVertexArrayNoTexNoNorm();
-       bool loadnotex(char *filename);
+       bool loadnotex(const char *filename);
        bool loadraw(char *filename);
-       bool load(char *filename,bool texture);
-       bool loaddecal(char *filename,bool texture);
+       bool load(const char *filename,bool texture);
+       bool loaddecal(const char *filename,bool texture);
        void Scale(float xscale,float yscale,float zscale);
        void FlipTexCoords();
        void UniformTexCoords();
@@ -119,6 +140,7 @@ public:
        void CalculateNormals(bool facenormalise);
        void draw();
        void drawdifftex(GLuint texture);
+       void drawdifftex(Texture texture);
        void drawimmediate();
        void drawdiffteximmediate(GLuint texture);
        void Rotate(float xang,float yang,float zang);