X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FObjects.cpp;h=d67044eee0923ea543436805384068352c0cf457;hb=decb00e82a2e65e25dbcdd8f16fff5a6a07d31d6;hp=67feaacc61a277f8c4b5defdd44fba60adcb1849;hpb=0cca0c495c7dc29d134a10d7eed5de1f377c99bf;p=lugaru.git diff --git a/Source/Objects.cpp b/Source/Objects.cpp index 67feaac..d67044e 100644 --- a/Source/Objects.cpp +++ b/Source/Objects.cpp @@ -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. +*/ + #include "Objects.h" extern XYZ viewer; extern float viewdistance; @@ -97,26 +118,26 @@ void Objects::Draw() if(type[i]==bushtype){ messedwith[i]-=multiplier; if(rotxvel[i]||rotx[i]){ - if(rotx[i]>0)rotxvel[i]-=multiplier*8*abs(rotx[i]); - if(rotx[i]<0)rotxvel[i]+=multiplier*8*abs(rotx[i]); + if(rotx[i]>0)rotxvel[i]-=multiplier*8*fabs(rotx[i]); + if(rotx[i]<0)rotxvel[i]+=multiplier*8*fabs(rotx[i]); if(rotx[i]>0)rotxvel[i]-=multiplier*4; if(rotx[i]<0)rotxvel[i]+=multiplier*4; if(rotxvel[i]>0)rotxvel[i]-=multiplier*4; if(rotxvel[i]<0)rotxvel[i]+=multiplier*4; - if(abs(rotx[i])0)rotyvel[i]-=multiplier*8*abs(roty[i]); - if(roty[i]<0)rotyvel[i]+=multiplier*8*abs(roty[i]); + if(roty[i]>0)rotyvel[i]-=multiplier*8*fabs(roty[i]); + if(roty[i]<0)rotyvel[i]+=multiplier*8*fabs(roty[i]); if(roty[i]>0)rotyvel[i]-=multiplier*4; if(roty[i]<0)rotyvel[i]+=multiplier*4; if(rotyvel[i]>0)rotyvel[i]-=multiplier*4; if(rotyvel[i]<0)rotyvel[i]+=multiplier*4; - if(abs(roty[i])0)rotxvel[i]-=multiplier*8*abs(rotx[i]); - if(rotx[i]<0)rotxvel[i]+=multiplier*8*abs(rotx[i]); + if(rotx[i]>0)rotxvel[i]-=multiplier*8*fabs(rotx[i]); + if(rotx[i]<0)rotxvel[i]+=multiplier*8*fabs(rotx[i]); if(rotx[i]>0)rotxvel[i]-=multiplier*4; if(rotx[i]<0)rotxvel[i]+=multiplier*4; if(rotxvel[i]>0)rotxvel[i]-=multiplier*4; if(rotxvel[i]<0)rotxvel[i]+=multiplier*4; - if(abs(rotx[i])0)rotyvel[i]-=multiplier*8*abs(roty[i]); - if(roty[i]<0)rotyvel[i]+=multiplier*8*abs(roty[i]); + if(roty[i]>0)rotyvel[i]-=multiplier*8*fabs(roty[i]); + if(roty[i]<0)rotyvel[i]+=multiplier*8*fabs(roty[i]); if(roty[i]>0)rotyvel[i]-=multiplier*4; if(roty[i]<0)rotyvel[i]+=multiplier*4; if(rotyvel[i]>0)rotyvel[i]-=multiplier*4; if(rotyvel[i]<0)rotyvel[i]+=multiplier*4; - if(abs(roty[i])0)rotxvel[i]-=multiplier*8*abs(rotx[i]); - if(rotx[i]<0)rotxvel[i]+=multiplier*8*abs(rotx[i]); + if(rotx[i]>0)rotxvel[i]-=multiplier*8*fabs(rotx[i]); + if(rotx[i]<0)rotxvel[i]+=multiplier*8*fabs(rotx[i]); if(rotx[i]>0)rotxvel[i]-=multiplier*4; if(rotx[i]<0)rotxvel[i]+=multiplier*4; if(rotxvel[i]>0)rotxvel[i]-=multiplier*4; if(rotxvel[i]<0)rotxvel[i]+=multiplier*4; - if(abs(rotx[i])0)rotyvel[i]-=multiplier*8*abs(roty[i]); - if(roty[i]<0)rotyvel[i]+=multiplier*8*abs(roty[i]); + if(roty[i]>0)rotyvel[i]-=multiplier*8*fabs(roty[i]); + if(roty[i]<0)rotyvel[i]+=multiplier*8*fabs(roty[i]); if(roty[i]>0)rotyvel[i]-=multiplier*4; if(roty[i]<0)rotyvel[i]+=multiplier*4; if(rotyvel[i]>0)rotyvel[i]-=multiplier*4; if(rotyvel[i]<0)rotyvel[i]+=multiplier*4; - if(abs(roty[i])0)rotxvel[i]-=multiplier*8*abs(rotx[i]); - if(rotx[i]<0)rotxvel[i]+=multiplier*8*abs(rotx[i]); + if(rotx[i]>0)rotxvel[i]-=multiplier*8*fabs(rotx[i]); + if(rotx[i]<0)rotxvel[i]+=multiplier*8*fabs(rotx[i]); if(rotx[i]>0)rotxvel[i]-=multiplier*4; if(rotx[i]<0)rotxvel[i]+=multiplier*4; if(rotxvel[i]>0)rotxvel[i]-=multiplier*4; if(rotxvel[i]<0)rotxvel[i]+=multiplier*4; - if(abs(rotx[i])0)rotyvel[i]-=multiplier*8*abs(roty[i]); - if(roty[i]<0)rotyvel[i]+=multiplier*8*abs(roty[i]); + if(roty[i]>0)rotyvel[i]-=multiplier*8*fabs(roty[i]); + if(roty[i]<0)rotyvel[i]+=multiplier*8*fabs(roty[i]); if(roty[i]>0)rotyvel[i]-=multiplier*4; if(roty[i]<0)rotyvel[i]+=multiplier*4; if(rotyvel[i]>0)rotyvel[i]-=multiplier*4; if(rotyvel[i]<0)rotyvel[i]+=multiplier*4; - if(abs(roty[i])0)rotxvel[i]-=multiplier*8*abs(rotx[i]); - if(rotx[i]<0)rotxvel[i]+=multiplier*8*abs(rotx[i]); + if(rotx[i]>0)rotxvel[i]-=multiplier*8*fabs(rotx[i]); + if(rotx[i]<0)rotxvel[i]+=multiplier*8*fabs(rotx[i]); if(rotx[i]>0)rotxvel[i]-=multiplier*4; if(rotx[i]<0)rotxvel[i]+=multiplier*4; if(rotxvel[i]>0)rotxvel[i]-=multiplier*4; if(rotxvel[i]<0)rotxvel[i]+=multiplier*4; - if(abs(rotx[i])0)rotyvel[i]-=multiplier*8*abs(roty[i]); - if(roty[i]<0)rotyvel[i]+=multiplier*8*abs(roty[i]); + if(roty[i]>0)rotyvel[i]-=multiplier*8*fabs(roty[i]); + if(roty[i]<0)rotyvel[i]+=multiplier*8*fabs(roty[i]); if(roty[i]>0)rotyvel[i]-=multiplier*4; if(roty[i]<0)rotyvel[i]+=multiplier*4; if(rotyvel[i]>0)rotyvel[i]-=multiplier*4; if(rotyvel[i]<0)rotyvel[i]+=multiplier*4; - if(abs(roty[i])5)friction[numobjects]=.5; + if(friction[numobjects]==1.5&&fabs(arotation2)>5)friction[numobjects]=.5; if(atype==platformtype){ model[numobjects].loaddecal((char *)":Data:Models:Platform.solid",0); @@ -770,8 +791,9 @@ Objects::Objects() Objects::~Objects() { - if (boxtextureptr) glDeleteTextures( 1, (const unsigned long *)&boxtextureptr ); - if (treetextureptr) glDeleteTextures( 1, (const unsigned long *)&treetextureptr ); - if (bushtextureptr) glDeleteTextures( 1, (const unsigned long *)&bushtextureptr ); - if (rocktextureptr) glDeleteTextures( 1, (const unsigned long *)&rocktextureptr ); + if (boxtextureptr) glDeleteTextures( 1, &boxtextureptr ); + if (treetextureptr) glDeleteTextures( 1, &treetextureptr ); + if (bushtextureptr) glDeleteTextures( 1, &bushtextureptr ); + if (rocktextureptr) glDeleteTextures( 1, &rocktextureptr ); }; +