Effect.cpp 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. #include "Effect.h"
  2. Effect::Effect( Spieler *zSpieler, float maxTime )
  3. {
  4. this->zSpieler = zSpieler;
  5. timeLeft = maxTime;
  6. effectImage = 0;
  7. ref = 1;
  8. }
  9. Effect::~Effect()
  10. {
  11. if( effectImage )
  12. effectImage->release();
  13. }
  14. bool Effect::tick( double time, Spiel *zSpiel )
  15. {
  16. timeLeft -= (float)time;
  17. return timeLeft <= 0;
  18. }
  19. bool Effect::istSpielerBeweglich( Richtung r ) const
  20. {
  21. return 1;
  22. }
  23. bool Effect::istSpielerVerwundbar( Richtung r ) const
  24. {
  25. return 1;
  26. }
  27. bool Effect::istSpielerSichtbar( Team *zTeam ) const
  28. {
  29. return 1;
  30. }
  31. bool Effect::istIntersectable() const
  32. {
  33. return 1;
  34. }
  35. void Effect::move( Richtung r, double time )
  36. {}
  37. bool Effect::istGegenstandErlaubt( GegenstandTyp typ ) const
  38. {
  39. return 1;
  40. }
  41. void Effect::renderSpieler( Bild &rObj )
  42. {}
  43. bool Effect::renderEffect( int x, int y, int width, int height, Bild & rObj, Schrift * zSchrift )
  44. {
  45. if( !effectImage )
  46. return 0;
  47. rObj.alphaBildSkall( x, y, width, height, *effectImage );
  48. TextRenderer tr;
  49. tr.setSchriftZ( zSchrift->getThis() );
  50. tr.setSchriftSize( 12 );
  51. tr.renderText( x + 5, y + 5, Text( (int)(timeLeft * 100) / 100.0 ), rObj, 0xFFFFFFFF );
  52. return 1;
  53. }
  54. Resource *Effect::getCurrentResource()
  55. {
  56. return 0;
  57. }
  58. Effect *Effect::getThis()
  59. {
  60. ref++;
  61. return this;
  62. }
  63. Effect *Effect::release()
  64. {
  65. if( !--ref )
  66. delete this;
  67. return 0;
  68. }