void SiegeTankClass::blitToScreen() { SDL_Rect dest, source; dest.x = getDrawnX(); dest.y = getDrawnY(); dest.w = source.w = imageW; dest.h = source.h = imageH; source.y = 0; source.x = drawnAngle*imageW; SDL_BlitSurface(graphic, &source, screen, &dest); //blit base source.x = drawnTurretAngle*source.w; source.y = 0; dest.x = getDrawnX() + TurretOffset[drawnTurretAngle].x; dest.y = getDrawnY() + TurretOffset[drawnTurretAngle].y; SDL_BlitSurface(turretGraphic, &source, screen, &dest); //blit turret if(isBadlyDamaged()) drawSmoke(screenborder->world2screenX(realX), screenborder->world2screenY(realY)); }
void StructureClass::draw(const Image& dest, SPoint off, SPoint view) { if (!m_destroyed) { Rect src(m_curAnimFrame * w,0,w,h); /* //TODO: Put m_fogged somw if(m_fogged) { //m_pic->blitTo(SDL_BlitSurface(graphic, &lastVisible, screen, &dest); //SDL_BlitSurface(fogSurf, &lastVisible, screen, &dest); } else {*/ // m_lastVisible = source; m_graphic->blitTo(dest, src, m_drawnPos); // if (m_selected) // drawSelectRect(dest); // selectionBlitList->insertLast(this); } else { //TODO: Add this death graphic stuff #if 0 int i, j; SDL_Rect dest, source; dest.w = source.w = imageW; dest.h = source.h = imageH; source.x = deathFrame*imageW; source.y = 0; for(i = 0; i < structureSize.x; i++) for(j = 0; j < structureSize.y; j++) { dest.x = getDrawnX() + i*BLOCKSIZE; dest.y = getDrawnY() + j*BLOCKSIZE; SDL_BlitSurface(deathGraphic[i][j], &source, screen, &dest); } #endif } }