/* $Id: bonusfuel.cpp,v 1.5 2005/10/05 14:46:44 chfreund Exp $ */ #include "bonusfuel.hpp" #include "avatar.hpp" /**********************************************************/ #define FUELBONUS_FUEL_CONTENT 300 #define FUELBONUS_HEALTH 400000 /**********************************************************/ BonusFuel::BonusFuel( World* wp ) : m_fuelContent(FUELBONUS_FUEL_CONTENT) { m_worldPointer = wp; // set health for the health bonus m_health = FUELBONUS_HEALTH; // for mass and collission rectangle take the // default values from base class Bonus // THIS CALL MUST BE PART OF EACH CONSTRUCTOR // OF BONI, DERIVED FROM ITS BASE CLASS Bonus registerAtManager(); } /**********************************************************/ BonusFuel::~BonusFuel() { // THIS CALL MUST BE PART OF EACH DESTRUCTOR // OF BONI, DERIVED FROM ITS BASE CLASS Bonus unregisterAtManager(); } /**********************************************************/ bool BonusFuel::canBePickedUpByAvatar( const Avatar* const avatar ) { return avatar->getFuel() < avatar->getMaxFuel(); } /**********************************************************/ void BonusFuel::apply( Avatar *const avatar ) { avatar->fillFuel( m_fuelContent ); } /**********************************************************/ Uint32 BonusFuel::getSerializeBufferSize() const { return Bonus::getSerializeBufferSize() + Serialize::sizeOf( m_fuelContent ) // adds additional size for debugging (see serialize.hpp), // but only, if the tags are used PLUS_TAG_SIZE( 1 ); } /**********************************************************/ void BonusFuel::serialize( Uint8*& bufferPointer ) const { // expands to a check of the buffer movement START_OBJECT_SERIALIZED_SIZE_CHECK( bufferPointer ); Bonus::serialize( bufferPointer ); Serialize::serialize( m_fuelContent, bufferPointer ); // expands to tag serialization SERIALIZE_OBJECT_TAG( bufferPointer ); // expands to a check of the buffer movement END_OBJECT_SERIALIZED_SIZE_CHECK( bufferPointer, BonusFuel ); } /**********************************************************/ void BonusFuel::deserialize( Uint8*& bufferPointer ) { Bonus::deserialize( bufferPointer ); Serialize::deserialize( bufferPointer, m_fuelContent ); // expands to tag deserialization DESERIALIZE_OBJECT_TAG( bufferPointer ); } /**********************************************************/