Added eventfunctions for PlayerAction and PickupEvent
This commit is contained in:
parent
f56323ee01
commit
b8395e9af7
|
@ -156,14 +156,18 @@ void Game::SetFrameTimeLength( float seconds )
|
|||
this->frameTime = seconds;
|
||||
}
|
||||
|
||||
void Game::SetSubscription(GameEvent::ObjectMovedFunction functionPointer)
|
||||
void Game::SetMoveSubscription(GameEvent::ObjectMovedFunction functionPointer)
|
||||
{
|
||||
this->onMoveFnc = functionPointer;
|
||||
}
|
||||
void Game::SetSubscription(GameEvent::ObjectDisabledFunction functionPointer)
|
||||
void Game::SetDisableSubscription(GameEvent::ObjectDisabledFunction functionPointer)
|
||||
{
|
||||
this->onDisableFnc = functionPointer;
|
||||
}
|
||||
void Game::SetEnableSubscription(GameEvent::ObjectEnabledFunction functionPointer)
|
||||
{
|
||||
this->onEnableFnc = functionPointer;
|
||||
}
|
||||
void Game::SetHpSubscription(GameEvent::ObjectHpFunction functionPointer)
|
||||
{
|
||||
this->onDamageTakenFnc = functionPointer;
|
||||
|
@ -176,7 +180,14 @@ void Game::SetDeadSubscription(GameEvent::ObjectDeadFunction functionPointer)
|
|||
{
|
||||
this->onDeadFnc = functionPointer;
|
||||
}
|
||||
|
||||
void Game::SetActionSubscription(GameEvent::AnimationEventFunction functionPointer)
|
||||
{
|
||||
this->onPlayerActionEventFnc = functionPointer;
|
||||
}
|
||||
void Game::SetPickupSubscription(GameEvent::PickupEventFunction functionPointer)
|
||||
{
|
||||
this->onPickupEventFnc = functionPointer;
|
||||
}
|
||||
bool Game::Initiate()
|
||||
{
|
||||
API::Instance().Init();
|
||||
|
@ -204,5 +215,5 @@ void Game::PhysicsOnMove(const ICustomBody *object)
|
|||
}
|
||||
void Game::PhysicsOnDestroy(::Utility::DynamicMemory::UniquePointer<ICustomBody> proto)
|
||||
{
|
||||
if(gameInstance.onDisableFnc) gameInstance.onDisableFnc(0, 0);
|
||||
if(gameInstance.onDisableFnc) gameInstance.onDisableFnc(0);
|
||||
}
|
||||
|
|
|
@ -79,11 +79,14 @@ namespace GameLogic
|
|||
bool NewFrame() override;
|
||||
void SetFPS( int FPS ) override;
|
||||
void SetFrameTimeLength( float seconds ) override;
|
||||
void SetSubscription(GameEvent::ObjectMovedFunction functionPointer) override;
|
||||
void SetSubscription(GameEvent::ObjectDisabledFunction functionPointer) override;
|
||||
void SetMoveSubscription(GameEvent::ObjectMovedFunction functionPointer) override;
|
||||
void SetDisableSubscription(GameEvent::ObjectDisabledFunction functionPointer) override;
|
||||
void SetEnableSubscription(GameEvent::ObjectEnabledFunction functionPointer) override;
|
||||
void SetHpSubscription(GameEvent::ObjectHpFunction functionPointer) override;
|
||||
void SetRespawnSubscription(GameEvent::ObjectRespawnedFunction functionPointer) override;
|
||||
void SetDeadSubscription(GameEvent::ObjectDeadFunction functionPointer) override;
|
||||
void SetActionSubscription(GameEvent::AnimationEventFunction functionPointer) override;
|
||||
void SetPickupSubscription(GameEvent::PickupEventFunction functionPointer) override;
|
||||
bool Initiate() override;
|
||||
|
||||
float GetFrameTime() const;
|
||||
|
@ -96,11 +99,15 @@ namespace GameLogic
|
|||
LevelData* level;
|
||||
float frameTime;
|
||||
bool initiated;
|
||||
GameEvent::ObjectDisabledFunction onDisableFnc;
|
||||
|
||||
GameEvent::ObjectMovedFunction onMoveFnc;
|
||||
GameEvent::ObjectDisabledFunction onDisableFnc;
|
||||
GameEvent::ObjectEnabledFunction onEnableFnc;
|
||||
GameEvent::ObjectHpFunction onDamageTakenFnc;
|
||||
GameEvent::ObjectRespawnedFunction onRespawnFnc;
|
||||
GameEvent::ObjectDeadFunction onDeadFnc;
|
||||
GameEvent::AnimationEventFunction onPlayerActionEventFnc;
|
||||
GameEvent::PickupEventFunction onPickupEventFnc;
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -26,10 +26,13 @@ namespace GameLogic
|
|||
namespace GameEvent
|
||||
{
|
||||
typedef void(*ObjectMovedFunction)(IObjectData* object); // Callback method that recieves and object
|
||||
typedef void(*ObjectDisabledFunction)(IObjectData* object, float seconds); // Callback method that recieves and object
|
||||
typedef void(*ObjectDisabledFunction)(IObjectData* object); // Callback method that recieves and object
|
||||
typedef void(*ObjectEnabledFunction)(IObjectData* object); // Callback method that recieves and object
|
||||
typedef void(*ObjectHpFunction)(IObjectData* object, float hp); // Callback method that sends obj HP
|
||||
typedef void(*ObjectRespawnedFunction)(IObjectData* object, Oyster::Math::Float3 spawnPos ); // Callback method that sends spawnPos
|
||||
typedef void(*ObjectDeadFunction)(IObjectData* victim, IObjectData* killer, float seconds); // Callback method that sends killer and death timer
|
||||
typedef void(*PickupEventFunction)(IObjectData* player, int pickupEffectID ); // Callback method that sends killer and death timer
|
||||
typedef void(*AnimationEventFunction)(IObjectData* player, int actionID ); // Callback method that sends killer and death timer
|
||||
//etc...
|
||||
};
|
||||
|
||||
|
@ -177,15 +180,14 @@ namespace GameLogic
|
|||
/** Set a specific object event subscription callback
|
||||
* @param
|
||||
*/
|
||||
virtual void SetSubscription(GameEvent::ObjectMovedFunction functionPointer) = 0;
|
||||
|
||||
/** Set a specific object event subscription callback
|
||||
* @param
|
||||
*/
|
||||
virtual void SetSubscription(GameEvent::ObjectDisabledFunction functionPointer) = 0;
|
||||
virtual void SetMoveSubscription(GameEvent::ObjectMovedFunction functionPointer) = 0;
|
||||
virtual void SetDisableSubscription(GameEvent::ObjectDisabledFunction functionPointer) = 0;
|
||||
virtual void SetEnableSubscription(GameEvent::ObjectEnabledFunction functionPointer) = 0;
|
||||
virtual void SetHpSubscription(GameEvent::ObjectHpFunction functionPointer) = 0;
|
||||
virtual void SetRespawnSubscription(GameEvent::ObjectRespawnedFunction functionPointer) = 0;
|
||||
virtual void SetDeadSubscription(GameEvent::ObjectDeadFunction functionPointer) = 0;
|
||||
virtual void SetActionSubscription(GameEvent::AnimationEventFunction functionPointer) = 0;
|
||||
virtual void SetPickupSubscription(GameEvent::PickupEventFunction functionPointer) = 0;
|
||||
|
||||
};
|
||||
}
|
||||
|
|
|
@ -434,10 +434,13 @@ void Level::Update(float deltaTime)
|
|||
{
|
||||
this->playerObjects[i]->setDeathTimer(DEATH_TIMER);
|
||||
// HACK to avoid crasch. affected by tag is NULL
|
||||
Player* killer = this->playerObjects[i]->getAffectingPlayer();
|
||||
((Game*)&Game::Instance())->onDeadFnc(this->playerObjects[i], this->playerObjects[i], DEATH_TIMER); // add killer ID
|
||||
//((Game*)&Game::Instance())->onDeadFnc(this->playerObjects[i], this->playerObjects[i]->getAffectingPlayer(), DEATH_TIMER); // add killer ID
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
int Level::getNrOfDynamicObj()
|
||||
{
|
||||
|
|
|
@ -98,11 +98,13 @@ namespace DanBias
|
|||
|
||||
//Callback method receiving from game logic
|
||||
static void ObjectMove ( GameLogic::IObjectData* movedObject );
|
||||
static void ObjectDisabled ( GameLogic::IObjectData* movedObject, float seconds );
|
||||
static void ObjectDisabled ( GameLogic::IObjectData* movedObject );
|
||||
static void ObjectEnabled ( GameLogic::IObjectData* movedObject );
|
||||
static void ObjectDamaged ( GameLogic::IObjectData* movedObject, float hp );
|
||||
static void ObjectRespawned ( GameLogic::IObjectData* movedObject, Oyster::Math::Float3 spawnPos );
|
||||
static void ObjectDead ( GameLogic::IObjectData* victim, GameLogic::IObjectData* killer, float seconds );
|
||||
|
||||
static void PickupEvent ( GameLogic::IObjectData* movedObject, int pickupEffectID );
|
||||
static void ActionEvent ( GameLogic::IObjectData* movedObject , int actionID );
|
||||
//Private member variables
|
||||
private:
|
||||
Utility::DynamicMemory::DynamicArray<gClient> gClients;
|
||||
|
|
|
@ -146,9 +146,13 @@ using namespace DanBias;
|
|||
GameSession::gameSession->Send(p.GetProtocol());
|
||||
//}
|
||||
}
|
||||
void GameSession::ObjectDisabled( GameLogic::IObjectData* movedObject, float seconds )
|
||||
void GameSession::ObjectDisabled( GameLogic::IObjectData* movedObject )
|
||||
{
|
||||
GameSession::gameSession->Send(Protocol_ObjectDisable(movedObject->GetID(), seconds).GetProtocol());
|
||||
//GameSession::gameSession->Send(Protocol_ObjectDisable(movedObject->GetID()).GetProtocol());
|
||||
}
|
||||
void GameSession::ObjectEnabled( GameLogic::IObjectData* movedObject )
|
||||
{
|
||||
//GameSession::gameSession->Send(Protocol_ObjectDisable(movedObject->GetID()).GetProtocol());
|
||||
}
|
||||
void GameSession::ObjectDamaged( GameLogic::IObjectData* movedObject, float hp )
|
||||
{
|
||||
|
@ -162,6 +166,16 @@ using namespace DanBias;
|
|||
{
|
||||
GameSession::gameSession->Send(Protocol_ObjectDie(victim->GetID(), killer->GetID(), seconds).GetProtocol());
|
||||
}
|
||||
void GameSession::PickupEvent( GameLogic::IObjectData* movedObject, int pickupEffectID )
|
||||
{
|
||||
// send pickup protocol
|
||||
GameSession::gameSession->Send(Protocol_ObjectPickup(movedObject->GetID(), pickupEffectID).GetProtocol());
|
||||
}
|
||||
void GameSession::ActionEvent( GameLogic::IObjectData* movedObject , int actionID )
|
||||
{
|
||||
// send action protocol
|
||||
GameSession::gameSession->Send(Protocol_ObjectAction(movedObject->GetID(), actionID).GetProtocol());
|
||||
}
|
||||
//*****************************************************//
|
||||
//****************** Protocol methods *****************//
|
||||
//******************************************************************************************************************//
|
||||
|
|
|
@ -106,11 +106,14 @@ bool GameSession::Create(GameDescription& desc, bool forceStart)
|
|||
}
|
||||
|
||||
/* Set some game instance data options */
|
||||
this->gameInstance.SetSubscription(GameSession::ObjectMove);
|
||||
this->gameInstance.SetSubscription(GameSession::ObjectDisabled);
|
||||
this->gameInstance.SetMoveSubscription(GameSession::ObjectMove);
|
||||
this->gameInstance.SetDisableSubscription(GameSession::ObjectDisabled);
|
||||
this->gameInstance.SetEnableSubscription(GameSession::ObjectEnabled);
|
||||
this->gameInstance.SetHpSubscription(GameSession::ObjectDamaged);
|
||||
this->gameInstance.SetRespawnSubscription(GameSession::ObjectRespawned);
|
||||
this->gameInstance.SetDeadSubscription(GameSession::ObjectDead);
|
||||
this->gameInstance.SetActionSubscription(GameSession::ActionEvent);
|
||||
this->gameInstance.SetPickupSubscription(GameSession::PickupEvent);
|
||||
this->gameInstance.SetFPS(60);
|
||||
|
||||
this->description.clients.Clear();
|
||||
|
|
|
@ -92,6 +92,18 @@ namespace GameLogic
|
|||
WorldSize_Unknown = -1
|
||||
};
|
||||
|
||||
enum PlayerAction
|
||||
{
|
||||
PlayerAction_Jump,
|
||||
PlayerAction_Walk,
|
||||
PlayerAction_Idle,
|
||||
};
|
||||
|
||||
enum PickupType
|
||||
{
|
||||
PickupType_Health,
|
||||
PickupType_SpeedBoost
|
||||
};
|
||||
|
||||
/************************************
|
||||
Structs
|
||||
|
|
Loading…
Reference in New Issue