void CLegacyInfoTextureHandler::SetMode(const std::string& name) { drawMode = NameToDrawMode(name); switch (drawMode) { case drawLos: { returnToLOS = true; highResInfoTexWanted = highResLosTex; } break; case drawHeight: { highResInfoTexWanted = true; } break; case drawMetal: case drawPathTrav: case drawPathHeat: case drawPathFlow: case drawPathCost: { highResInfoTexWanted = false; } break; case drawNormal: break; //TODO? case NUM_INFOTEXTURES: break; //make compiler happy } updateTextureState = 0; while (!UpdateExtraTexture(drawMode)); }
void CBaseGroundDrawer::ToggleRadarAndJammer() { drawRadarAndJammer=!drawRadarAndJammer; if (drawMode==drawLos){ updateTextureState=0; while(!UpdateExtraTexture()); } }
void CBaseGroundDrawer::SetHeightTexture() { if (drawMode == drawHeight) DisableExtraTexture(); else { SetDrawMode (drawHeight); highResInfoTexWanted=true; extraTex=0; updateTextureState=0; while(!UpdateExtraTexture()); } }
//todo: this part of extra textures is a mess really ... void CBaseGroundDrawer::DisableExtraTexture() { if(drawLineOfSight){ SetDrawMode(drawLos); } else { SetDrawMode(drawNormal); } extraTex=0; highResInfoTexWanted=false; updateTextureState=0; while(!UpdateExtraTexture()); }
void CBaseGroundDrawer::SetPathMapTexture() { if (drawMode==drawPath) DisableExtraTexture(); else { SetDrawMode(drawPath); extraTex=0; highResInfoTexWanted=false; updateTextureState=0; while(!UpdateExtraTexture()); } }
void CBaseGroundDrawer::ToggleLosTexture() { if (drawMode==drawLos) { drawLineOfSight=false; DisableExtraTexture(); } else { drawLineOfSight=true; SetDrawMode(drawLos); extraTex=0; highResInfoTexWanted=false; updateTextureState=0; while(!UpdateExtraTexture()); } }
void CBaseGroundDrawer::SetMetalTexture(unsigned char* tex,float* extractMap,unsigned char* pal,bool highRes) { if (drawMode == drawMetal) DisableExtraTexture(); else { SetDrawMode (drawMetal); highResInfoTexWanted=false; extraTex=tex; extraTexPal=pal; extractDepthMap=extractMap; updateTextureState=0; while(!UpdateExtraTexture()); } }
void CLegacyInfoTextureHandler::Update() { UpdateExtraTexture(drawMode); }