2013-11-28 08:33:29 +01:00
|
|
|
//////////////////////////////////////////////////
|
|
|
|
//Created by Erik and Linda of the GameLogic team
|
|
|
|
//////////////////////////////////////////////////
|
2013-11-20 14:25:37 +01:00
|
|
|
#ifndef DYNAMICOBJECT_H
|
|
|
|
#define DYNAMICOBJECT_H
|
2013-12-19 10:21:03 +01:00
|
|
|
#include "GameLogicDef.h"
|
2013-12-20 08:59:46 +01:00
|
|
|
#include "Object.h"
|
|
|
|
|
2013-11-20 14:25:37 +01:00
|
|
|
|
|
|
|
namespace GameLogic
|
|
|
|
{
|
2014-02-25 10:37:33 +01:00
|
|
|
class Player;
|
2014-01-14 09:25:22 +01:00
|
|
|
class DynamicObject : public Object
|
2013-11-20 14:25:37 +01:00
|
|
|
{
|
|
|
|
|
|
|
|
public:
|
2013-12-05 11:50:39 +01:00
|
|
|
DynamicObject();
|
2014-02-14 11:16:02 +01:00
|
|
|
DynamicObject(Oyster::Physics::ICustomBody *rigidBody , void (*EventOnCollision)(Oyster::Physics::ICustomBody *proto,Oyster::Physics::ICustomBody *deuter,Oyster::Math::Float kineticEnergyLoss), ObjectSpecialType type, int objectID);
|
2014-02-14 09:53:02 +01:00
|
|
|
DynamicObject(Oyster::Physics::ICustomBody *rigidBody , Oyster::Physics::ICustomBody::SubscriptMessage (*EventOnCollision)(Oyster::Physics::ICustomBody *proto,Oyster::Physics::ICustomBody *deuter,Oyster::Math::Float kineticEnergyLoss), ObjectSpecialType type, int objectID);
|
2014-02-12 14:48:58 +01:00
|
|
|
|
2014-02-14 11:16:02 +01:00
|
|
|
DynamicObject(Oyster::Physics::ICustomBody *rigidBody , void (*EventOnCollision)(Oyster::Physics::ICustomBody *proto,Oyster::Physics::ICustomBody *deuter,Oyster::Math::Float kineticEnergyLoss), ObjectSpecialType type, int objectID, Oyster::Math::Float extraDamageOnCollision);
|
|
|
|
DynamicObject(Oyster::Physics::ICustomBody *rigidBody , Oyster::Physics::ICustomBody::SubscriptMessage (*EventOnCollision)(Oyster::Physics::ICustomBody *proto,Oyster::Physics::ICustomBody *deuter,Oyster::Math::Float kineticEnergyLoss), ObjectSpecialType type, int objectID, Oyster::Math::Float extraDamageOnCollision);
|
2014-01-29 14:33:21 +01:00
|
|
|
|
2013-11-20 14:25:37 +01:00
|
|
|
~DynamicObject(void);
|
|
|
|
|
2014-02-20 16:52:36 +01:00
|
|
|
void ReleaseDynamicObject();
|
|
|
|
bool IsReleased();
|
|
|
|
bool IsActive();
|
|
|
|
void Inactivate();
|
|
|
|
void Activate();
|
|
|
|
|
2014-02-25 10:37:33 +01:00
|
|
|
void SetAffectedBy(GameLogic::Player &player);
|
2014-02-25 11:20:46 +01:00
|
|
|
void SetManipulatingPlayer(GameLogic::Player &player);
|
2014-02-25 10:37:33 +01:00
|
|
|
void RemoveAffectedBy();
|
2014-02-25 11:20:46 +01:00
|
|
|
void RemoveManipulation();
|
2014-02-25 10:37:33 +01:00
|
|
|
GameLogic::Player* getAffectingPlayer();
|
2014-02-25 11:20:46 +01:00
|
|
|
GameLogic::Player* getManipulatingPlayer();
|
2014-02-25 10:37:33 +01:00
|
|
|
|
|
|
|
static void DynamicObject::DynamicDefaultOnCollision(Oyster::Physics::ICustomBody *rigidBodyObject, Oyster::Physics::ICustomBody *obj, Oyster::Math::Float kineticEnergyLoss);
|
|
|
|
|
2013-12-05 11:50:39 +01:00
|
|
|
private:
|
2014-02-20 16:52:36 +01:00
|
|
|
bool isActive;
|
|
|
|
bool isReleased;
|
2014-02-25 10:37:33 +01:00
|
|
|
protected:
|
|
|
|
GameLogic::Player *affectedBy;
|
2014-02-25 11:20:46 +01:00
|
|
|
GameLogic::Player *manipulatedBy;
|
|
|
|
|
2013-12-12 09:36:14 +01:00
|
|
|
|
2013-11-20 14:25:37 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|