#include "SpielObjekt.h" #include "Define.h" // Inhalt der SpielObjekt Klasse aus SpielObjekt.h // Konstruktor SpielObjekt::SpielObjekt( ObjektStr *zStr ) { pos = zStr->pos; id = zStr->id; mdl = new Model2D(); style = zStr->style; stability = zStr->maxStability; energie = zStr->maxEnergie; maxStability = zStr->maxStability; maxEnergie = zStr->maxEnergie; energieRadius = zStr->energieRadius; reparatur = zStr->reparatur; akkuLeistung = zStr->akkuLeistung; team = 0; ref = 1; } // Destruktor SpielObjekt::~SpielObjekt() { mdl->release(); if( team ) team->release(); } // nicht constant void SpielObjekt::setModelData( Model2DData *data ) { mdl->setModel( data ); } void SpielObjekt::setTeam( Team *team ) { if( this->team ) this->team->release(); this->team = team; } void SpielObjekt::tick() { repAbk -= TICK; if( repAbk < 0 ) repAbk = 0; akkuAbk -= TICK; if( akkuAbk < 0 ) akkuAbk = 0; if( !repAbk ) { stability += reparatur * TICK; if( stability > maxStability ) stability = maxStability; } if( !akkuAbk ) { if( !team ) { energie -= akkuLeistung * TICK; if( energie < 0 ) energie = 0; } else { energie += akkuLeistung * TICK; if( energie > maxEnergie ) energie = maxEnergie; } } } // constant Team *SpielObjekt::zTeam() const { return team; } // Reference Counting SpielObjekt *SpielObjekt::getThis() { ref++; return this; } SpielObjekt *SpielObjekt::release() { ref--; if( !ref ) delete this; return 0; }