From: <kla...@us...> - 2006-12-01 03:47:40
|
Revision: 10814 http://svn.sourceforge.net/vegastrike/?rev=10814&view=rev Author: klaussfreire Date: 2006-11-30 19:47:41 -0800 (Thu, 30 Nov 2006) Log Message: ----------- Bugfixes concerning ROI + video modifiers in .ani files. Modified Paths: -------------- trunk/vegastrike/src/gfx/ani_texture.cpp Modified: trunk/vegastrike/src/gfx/ani_texture.cpp =================================================================== --- trunk/vegastrike/src/gfx/ani_texture.cpp 2006-11-30 21:21:53 UTC (rev 10813) +++ trunk/vegastrike/src/gfx/ani_texture.cpp 2006-12-01 03:47:41 UTC (rev 10814) @@ -161,7 +161,7 @@ this->mintcoord = (1-fraction)*frames_mintc[active] + fraction*frames_mintc[nextactive]; } } else { - if (frames_maxtc.size()<active) { + if (active<frames_maxtc.size()) { this->maxtcoord = frames_maxtc[active]; this->mintcoord = frames_mintc[active]; } @@ -384,33 +384,31 @@ alltrim(opt); }else break; } - if (loadall||i==numframes/2) { - if (vidMode) { - frames.push_back(StringPool::Reference(string(temp))); - frames_mintc.push_back(Vector( - XMLSupport::parse_float(XMLSupport::parse_option_value(opt,"mins",defms)), - XMLSupport::parse_float(XMLSupport::parse_option_value(opt,"mint",defmt)), - XMLSupport::parse_float(XMLSupport::parse_option_value(opt,"minr",defmr)))); - frames_maxtc.push_back(Vector( - XMLSupport::parse_float(XMLSupport::parse_option_value(opt,"maxs",defMs)), - XMLSupport::parse_float(XMLSupport::parse_option_value(opt,"maxt",defMt)), - XMLSupport::parse_float(XMLSupport::parse_option_value(opt,"maxr",defMr)))); - } else { - enum ADDRESSMODE addrmode = parseAddressMode(XMLSupport::parse_option_value(opt,"addressMode",""),defaultAddressMode); - if (alp[0]!='\0') - Decal[j++]=new Texture (file,alp,stage,ismipmapped,TEXTURE2D,TEXTURE_2D,1,0,(g_game.use_animations)?GFXTRUE:GFXFALSE,65536,(detailtex?GFXTRUE:GFXFALSE),GFXFALSE,addrmode); else - Decal[j++]=new Texture (file,stage,ismipmapped,TEXTURE2D,TEXTURE_2D,(g_game.use_animations)?GFXTRUE:GFXFALSE,65536,(detailtex?GFXTRUE:GFXFALSE),GFXFALSE,addrmode); - if (Decal[j-1]) { - Decal[j-1]->mintcoord=Vector( - XMLSupport::parse_float(XMLSupport::parse_option_value(opt,"mins",defms)), - XMLSupport::parse_float(XMLSupport::parse_option_value(opt,"mint",defmt)), - XMLSupport::parse_float(XMLSupport::parse_option_value(opt,"minr",defmr))); - Decal[j-1]->maxtcoord=Vector( - XMLSupport::parse_float(XMLSupport::parse_option_value(opt,"maxs",defMs)), - XMLSupport::parse_float(XMLSupport::parse_option_value(opt,"maxt",defMt)), - XMLSupport::parse_float(XMLSupport::parse_option_value(opt,"maxr",defMr))); - } - } + if (vidMode) { + frames.push_back(StringPool::Reference(string(temp))); + frames_mintc.push_back(Vector( + XMLSupport::parse_float(XMLSupport::parse_option_value(opt,"mins",defms)), + XMLSupport::parse_float(XMLSupport::parse_option_value(opt,"mint",defmt)), + XMLSupport::parse_float(XMLSupport::parse_option_value(opt,"minr",defmr)))); + frames_maxtc.push_back(Vector( + XMLSupport::parse_float(XMLSupport::parse_option_value(opt,"maxs",defMs)), + XMLSupport::parse_float(XMLSupport::parse_option_value(opt,"maxt",defMt)), + XMLSupport::parse_float(XMLSupport::parse_option_value(opt,"maxr",defMr)))); + } else { + enum ADDRESSMODE addrmode = parseAddressMode(XMLSupport::parse_option_value(opt,"addressMode",""),defaultAddressMode); + if (alp[0]!='\0') + Decal[j++]=new Texture (file,alp,stage,ismipmapped,TEXTURE2D,TEXTURE_2D,1,0,(g_game.use_animations)?GFXTRUE:GFXFALSE,65536,(detailtex?GFXTRUE:GFXFALSE),GFXFALSE,addrmode); else + Decal[j++]=new Texture (file,stage,ismipmapped,TEXTURE2D,TEXTURE_2D,(g_game.use_animations)?GFXTRUE:GFXFALSE,65536,(detailtex?GFXTRUE:GFXFALSE),GFXFALSE,addrmode); + if (Decal[j-1]) { + Decal[j-1]->mintcoord=Vector( + XMLSupport::parse_float(XMLSupport::parse_option_value(opt,"mins",defms)), + XMLSupport::parse_float(XMLSupport::parse_option_value(opt,"mint",defmt)), + XMLSupport::parse_float(XMLSupport::parse_option_value(opt,"minr",defmr))); + Decal[j-1]->maxtcoord=Vector( + XMLSupport::parse_float(XMLSupport::parse_option_value(opt,"maxs",defMs)), + XMLSupport::parse_float(XMLSupport::parse_option_value(opt,"maxt",defMt)), + XMLSupport::parse_float(XMLSupport::parse_option_value(opt,"maxr",defMr))); + } } } @@ -427,6 +425,9 @@ loadSuccess=true; anis.insert(this); + + //Needed - must do housekeeping, tcoord stuff and the like. + setTime(curtime); } void AnimatedTexture::LoadFrame(int frame) { |