Welt2D.cpp 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. #include "Welt2D.h"
  2. #include "Model2D.h"
  3. using namespace Framework;
  4. // Inhalt der Welt2D Klasse aus Welt3D.h
  5. // Konstruktor
  6. Welt2D::Welt2D()
  7. {
  8. obj = new RCArray< Model2D >();
  9. ref = 1;
  10. }
  11. // Destruktor
  12. Welt2D::~Welt2D()
  13. {
  14. obj->release();
  15. }
  16. // nicht constant
  17. void Welt2D::addModel( Model2D *obj )
  18. {
  19. this->obj->add( obj, 0 );
  20. }
  21. void Welt2D::removeModel( Model2D *zObj )
  22. {
  23. auto *e = &obj->getArray();
  24. for( int z = 0; e && e->set; z++, e = e->next )
  25. {
  26. if( e->var == zObj )
  27. {
  28. obj->lösche( z );
  29. return;
  30. }
  31. }
  32. }
  33. void Welt2D::setModelInVordergrund( Model2D *zObj )
  34. {
  35. auto *e = &obj->getArray();
  36. for( int z = 0; e && e->set; z++, e = e->next )
  37. {
  38. if( e->var == zObj )
  39. {
  40. obj->setPosition( z, 0 );
  41. return;
  42. }
  43. }
  44. }
  45. void Welt2D::setModelInHintergrund( Model2D *zObj )
  46. {
  47. int anz = obj->getEintragAnzahl();
  48. auto *e = &obj->getArray();
  49. for( int z = 0; e && e->set; z++, e = e->next )
  50. {
  51. if( e->var == zObj && z != anz - 1 )
  52. {
  53. obj->setPosition( z, anz - 1 );
  54. return;
  55. }
  56. }
  57. }
  58. void Welt2D::removeAll()
  59. {
  60. obj->leeren();
  61. }
  62. void Welt2D::doMausEreignis( MausEreignis &me )
  63. {
  64. }
  65. void Welt2D::doTastaturEreignis( TastaturEreignis &me )
  66. {
  67. }
  68. bool Welt2D::tick( double t )
  69. {
  70. return 0;
  71. }
  72. void Welt2D::render( Bild &zRObj, Punkt &wPos, Punkt &wGr, Punkt &kamGr )
  73. {
  74. }
  75. // constant
  76. int Welt2D::getModelAnzahl() const
  77. {
  78. return obj->getEintragAnzahl();
  79. }
  80. Model2D *Welt2D::getModel( int z ) const
  81. {
  82. return obj->get( z );
  83. }
  84. Model2D *Welt2D::zModel( int z ) const
  85. {
  86. return obj->z( z );
  87. }
  88. // Reference Counting
  89. Welt2D *Welt2D::getThis()
  90. {
  91. ref++;
  92. return this;
  93. }
  94. Welt2D *Welt2D::release()
  95. {
  96. ref--;
  97. if( !ref )
  98. delete this;
  99. return 0;
  100. }