12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- #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;
- }
|