Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- for(std::vector<CMapVisualSprite>::iterator i = MapLevel::VisualSpritesT.begin(); i != MapLevel::VisualSpritesT.end(); ++i)
- {
- CMapVisualSprite &sprite = (*i);
- if(!sprite.sprite) continue;
- if(sprite.frame < sprite.sprite->GetLength())
- {
- if(sprite.shadow)
- {
- int soffs = 0;
- if(sprite.shadow_flat) soffs = sprite.shadow_slope;
- else soffs = (float)MapLevel::TOD::shadow_offset/128.0*(float)sprite.sprite->GetWidth(0);
- int new_x = sprite.x;
- int new_y = sprite.y;
- if(!sprite.shadow_offs)
- {
- float centerx = (float)sprite.centerx/(float)sprite.sprite->GetWidth(sprite.frame);
- float centery = (float)sprite.centery/(float)sprite.sprite->GetHeight(sprite.frame);
- if(soffs >= 0)
- {
- int delt = (abs(sprite.sprite->GetWidth(sprite.frame)+soffs)-
- sprite.sprite->GetWidth(sprite.frame))*centerx;
- new_x -= delt-delt*(centery);
- }
- else
- {
- int delt = (abs(sprite.sprite->GetWidth(sprite.frame)-soffs)-
- sprite.sprite->GetWidth(sprite.frame))*centerx;
- new_x += delt-delt*(centery);
- }
- }
- else
- {
- new_x += MapLevel::TOD::shadow_offset/3;
- soffs = 0;
- }
- if(sprite.shadow_flat)
- {
- sprite.centerx = 0;
- sprite.centery = 0;
- }
- sprite.sprite->DrawEx(new_x-sprite.centerx, new_y-sprite.centery, sprite.frame, 0, 0, 0,
- MapLevel::TOD::shadow_alpha, sprite.flip, false,
- soffs);
- }
- else
- {
- sprite.sprite->DrawEx(sprite.x-sprite.centerx, sprite.y-sprite.centery, sprite.frame, 255, 255, 255, 255, sprite.flip, false, 0);
- if(sprite.hover) sprite.sprite->DrawEx(sprite.x-sprite.centerx, sprite.y-sprite.centery, sprite.frame, 255, 255, 255, 16, sprite.flip, true, 0);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement