Advertisement
Guest User

Untitled

a guest
Dec 19th, 2015
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.59 KB | None | 0 0
  1.         for(std::vector<CMapVisualSprite>::iterator i = MapLevel::VisualSpritesT.begin(); i != MapLevel::VisualSpritesT.end(); ++i)
  2.         {
  3.             CMapVisualSprite &sprite = (*i);
  4.             if(!sprite.sprite) continue;
  5.             if(sprite.frame < sprite.sprite->GetLength())
  6.             {
  7.                 if(sprite.shadow)
  8.                 {
  9.                     int soffs = 0;
  10.                     if(sprite.shadow_flat) soffs = sprite.shadow_slope;
  11.                     else soffs = (float)MapLevel::TOD::shadow_offset/128.0*(float)sprite.sprite->GetWidth(0);
  12.  
  13.                     int new_x = sprite.x;
  14.                     int new_y = sprite.y;
  15.  
  16.                     if(!sprite.shadow_offs)
  17.                     {
  18.                         float centerx = (float)sprite.centerx/(float)sprite.sprite->GetWidth(sprite.frame);
  19.                         float centery = (float)sprite.centery/(float)sprite.sprite->GetHeight(sprite.frame);
  20.  
  21.                         if(soffs >= 0)
  22.                         {
  23.                             int delt = (abs(sprite.sprite->GetWidth(sprite.frame)+soffs)-
  24.                                 sprite.sprite->GetWidth(sprite.frame))*centerx;
  25.                             new_x -= delt-delt*(centery);
  26.                         }
  27.                         else
  28.                         {
  29.                             int delt = (abs(sprite.sprite->GetWidth(sprite.frame)-soffs)-
  30.                                 sprite.sprite->GetWidth(sprite.frame))*centerx;
  31.                             new_x += delt-delt*(centery);
  32.                         }
  33.                     }
  34.                     else
  35.                     {
  36.                         new_x += MapLevel::TOD::shadow_offset/3;
  37.                         soffs = 0;
  38.                     }
  39.  
  40.                     if(sprite.shadow_flat)
  41.                     {
  42.                         sprite.centerx = 0;
  43.                         sprite.centery = 0;
  44.                     }
  45.  
  46.                     sprite.sprite->DrawEx(new_x-sprite.centerx, new_y-sprite.centery, sprite.frame, 0, 0, 0,
  47.                                           MapLevel::TOD::shadow_alpha, sprite.flip, false,
  48.                                           soffs);
  49.                 }
  50.                 else
  51.                 {
  52.                     sprite.sprite->DrawEx(sprite.x-sprite.centerx, sprite.y-sprite.centery, sprite.frame, 255, 255, 255, 255, sprite.flip, false, 0);
  53.                     if(sprite.hover) sprite.sprite->DrawEx(sprite.x-sprite.centerx, sprite.y-sprite.centery, sprite.frame, 255, 255, 255, 16, sprite.flip, true, 0);
  54.                 }
  55.             }
  56.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement