X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FModels.cpp;h=4db0b741709a39ae0317390f4dd7d750d1fd3390;hb=8afdcba610cded0e54b85069ba051268b29669a6;hp=b006c6db2dbe398d108e9e4049d1a65cd1fa8138;hpb=44146d06c780d3aaa283672fedb08b8870ebe1b9;p=lugaru.git diff --git a/Source/Models.cpp b/Source/Models.cpp index b006c6d..4db0b74 100644 --- a/Source/Models.cpp +++ b/Source/Models.cpp @@ -19,9 +19,8 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#include "Models.h" -//#include "altivec.h" #include "Game.h" +#include "Models.h" extern float multiplier; extern float viewdistance; @@ -29,30 +28,9 @@ extern XYZ viewer; extern float fadestart; extern float texdetail; extern bool decals; -extern int loadscreencolor; -#include "Game.h" extern Game * pgame; extern bool visibleloading; -//Functions -void *allocate_aligned(size_t pointer_size, size_t byte_alignment) -{ - uintptr_t pointer = (uintptr_t)malloc(pointer_size + byte_alignment + 1); - uintptr_t aligned_pointer = (pointer + byte_alignment + 1); - aligned_pointer -= (aligned_pointer % byte_alignment); - *(uint8_t *)(aligned_pointer - 1) = (aligned_pointer - pointer); - return (void *)aligned_pointer; -} - -void free_aligned(void *aligned_pointer) -{ - free((uint8_t *)(aligned_pointer) - *((uint8_t *)(aligned_pointer) - 1)); -} - -void dealloc(void* param){ - free(param); - param=0; -} int Model::LineCheck(XYZ *p1,XYZ *p2, XYZ *p, XYZ *move, float *rotate) { @@ -425,7 +403,7 @@ void Model::UpdateVertexArrayNoTexNoNorm(){ } } -bool Model::loadnotex(char *filename ) +bool Model::loadnotex(const char *filename ) { FILE *tfile; long i; @@ -437,20 +415,13 @@ bool Model::loadnotex(char *filename ) type=notextype; color=0; - tfile=fopen( filename, "rb" ); + tfile=fopen( ConvertFileName(filename), "rb" ); // read model settings fseek(tfile, 0, SEEK_SET); funpackf(tfile, "Bs Bs", &vertexNum, &TriangleNum); // read the model data - /*if(owner)dealloc(owner); - if(possible)dealloc(possible); - if(vertex)dealloc(vertex); - if(normals)dealloc(normals); - if(facenormals)dealloc(facenormals); - if(Triangles)dealloc(Triangles); - if(vArray)dealloc(vArray);*/ deallocate(); numpossible=0; @@ -500,7 +471,7 @@ bool Model::loadnotex(char *filename ) } -bool Model::load(char *filename,bool texture ) +bool Model::load(const char *filename,bool texture ) { FILE *tfile; long i; @@ -509,10 +480,8 @@ bool Model::load(char *filename,bool texture ) LOG(std::string("Loading model...") + filename); - if(visibleloading){ - loadscreencolor=2; + if(visibleloading) pgame->LoadingScreen(); - } int oldvertexNum,oldTriangleNum; oldvertexNum=vertexNum; @@ -529,13 +498,6 @@ bool Model::load(char *filename,bool texture ) funpackf(tfile, "Bs Bs", &vertexNum, &TriangleNum); // read the model data - /*if(owner)dealloc(owner); - if(possible)dealloc(possible); - if(vertex)dealloc(vertex); - if(normals)dealloc(normals); - if(facenormals)dealloc(facenormals); - if(Triangles)dealloc(Triangles); - if(vArray)dealloc(vArray);*/ deallocate(); numpossible=0; @@ -588,14 +550,17 @@ bool Model::load(char *filename,bool texture ) return 1; } -bool Model::loaddecal(char *filename,bool texture ) +bool Model::loaddecal(const char *filename,bool texture ) { FILE *tfile; long i,j; LOGFUNC; - LOG(std::string("Loading decal...") + filename); + // Changing the filename so that its more os specific + char * FixedFN = ConvertFileName(filename); + + LOG(std::string("Loading decal...") + FixedFN); int oldvertexNum,oldTriangleNum; oldvertexNum=vertexNum; @@ -605,7 +570,7 @@ bool Model::loaddecal(char *filename,bool texture ) numdecals=0; color=0; - tfile=fopen( filename, "rb" ); + tfile=fopen( FixedFN, "rb" ); // read model settings @@ -614,13 +579,6 @@ bool Model::loaddecal(char *filename,bool texture ) // read the model data - /*if(owner)dealloc(owner); - if(possible)dealloc(possible); - if(vertex)dealloc(vertex); - if(normals)dealloc(normals); - if(facenormals)dealloc(facenormals); - if(Triangles)dealloc(Triangles); - if(vArray)dealloc(vArray);*/ deallocate(); numpossible=0; @@ -712,7 +670,7 @@ bool Model::loadraw(char *filename ) type = rawtype; color=0; - tfile=fopen( filename, "rb" ); + tfile=fopen( ConvertFileName(filename), "rb" ); // read model settings @@ -720,13 +678,6 @@ bool Model::loadraw(char *filename ) funpackf(tfile, "Bs Bs", &vertexNum, &TriangleNum); // read the model data - /*if(owner)dealloc(owner); - if(possible)dealloc(possible); - if(vertex)dealloc(vertex); - if(normals)dealloc(normals); - if(facenormals)dealloc(facenormals); - if(Triangles)dealloc(Triangles); - if(vArray)dealloc(vArray);*/ deallocate(); numpossible=0; @@ -892,10 +843,8 @@ void Model::Rotate(float xang,float yang,float zang) void Model::CalculateNormals(bool facenormalise) { - if(visibleloading){ - loadscreencolor=3; + if(visibleloading) pgame->LoadingScreen(); - } static int i; if(type!=normaltype&&type!=decalstype)return; @@ -1445,25 +1394,25 @@ void Model::deallocate() { int i = 0, j = 0; - if(owner)dealloc(owner); + if(owner)free(owner); owner = 0; - if(possible)dealloc(possible); + if(possible)free(possible); possible = 0; - if(vertex)dealloc(vertex); + if(vertex)free(vertex); vertex = 0; - if(normals)dealloc(normals); + if(normals)free(normals); normals = 0; - if(facenormals)dealloc(facenormals); + if(facenormals)free(facenormals); facenormals = 0; - if(Triangles)dealloc(Triangles); + if(Triangles)free(Triangles); Triangles = 0; - if(vArray)dealloc(vArray); + if(vArray)free(vArray); vArray = 0; @@ -1474,11 +1423,11 @@ void Model::deallocate() { for(j=0;j<3;j++) { - dealloc(decaltexcoords[i][j]); + free(decaltexcoords[i][j]); } - dealloc(decaltexcoords[i]); + free(decaltexcoords[i]); } - dealloc(decaltexcoords); + free(decaltexcoords); } decaltexcoords = 0; @@ -1487,26 +1436,26 @@ void Model::deallocate() { for(i=0;i