entity_spell_system/Queued/BSScripts/BaseOnPlayerMoveCallbackComponent.cpp

78 lines
3.4 KiB
C++
Raw Normal View History

2019-04-20 14:02:55 +02:00
#include "BaseOnPlayerMoveCallbackComponent.h"
//Delegate declaration moved to header file
void BaseOnPlayerMoveCallbackComponent::addCOnPlayerMove(BaseOnPlayerMoveCallbackComponent::OnPlayerMoved* value){
BaseOnPlayerMoveCallbackComponent::OnPlayerMoved* onPlayerMoved = this->COnPlayerMove;
BaseOnPlayerMoveCallbackComponent::OnPlayerMoved* onPlayerMoved2;
do{
onPlayerMoved2 = onPlayerMoved;
BaseOnPlayerMoveCallbackComponent::OnPlayerMoved* value2 = (BaseOnPlayerMoveCallbackComponent::OnPlayerMoved*)(Delegate::Combine(onPlayerMoved2, value));
onPlayerMoved = Interlocked::CompareExchange<BaseOnPlayerMoveCallbackComponent::OnPlayerMoved*>(this->COnPlayerMove, value2, onPlayerMoved2);
}
while (*onPlayerMoved != *onPlayerMoved2);
}
void BaseOnPlayerMoveCallbackComponent::removeCOnPlayerMove(BaseOnPlayerMoveCallbackComponent::OnPlayerMoved* value)
{
BaseOnPlayerMoveCallbackComponent::OnPlayerMoved* onPlayerMoved = this->COnPlayerMove;
BaseOnPlayerMoveCallbackComponent::OnPlayerMoved* onPlayerMoved2;
do {
onPlayerMoved2 = onPlayerMoved;
BaseOnPlayerMoveCallbackComponent::OnPlayerMoved* value2 = (BaseOnPlayerMoveCallbackComponent::OnPlayerMoved*)(Delegate::Remove(onPlayerMoved2, value));
onPlayerMoved = Interlocked::CompareExchange<BaseOnPlayerMoveCallbackComponent::OnPlayerMoved*>(this->COnPlayerMove, value2, onPlayerMoved2);
}
while (*onPlayerMoved != *onPlayerMoved2);
}
void BaseOnPlayerMoveCallbackComponent::addSOnPlayerMove(BaseOnPlayerMoveCallbackComponent::OnPlayerMoved* value)
{
BaseOnPlayerMoveCallbackComponent::OnPlayerMoved* onPlayerMoved = this->SOnPlayerMove;
BaseOnPlayerMoveCallbackComponent::OnPlayerMoved* onPlayerMoved2;
do {
onPlayerMoved2 = onPlayerMoved;
BaseOnPlayerMoveCallbackComponent::OnPlayerMoved* value2 = (BaseOnPlayerMoveCallbackComponent::OnPlayerMoved*)(Delegate::Combine(onPlayerMoved2, value));
onPlayerMoved = Interlocked::CompareExchange<BaseOnPlayerMoveCallbackComponent::OnPlayerMoved*>(this->SOnPlayerMove, value2, onPlayerMoved2);
}
while (*onPlayerMoved != *onPlayerMoved2);
}
void BaseOnPlayerMoveCallbackComponent::removeSOnPlayerMove(BaseOnPlayerMoveCallbackComponent::OnPlayerMoved* value)
{
BaseOnPlayerMoveCallbackComponent::OnPlayerMoved* onPlayerMoved = this->SOnPlayerMove;
BaseOnPlayerMoveCallbackComponent::OnPlayerMoved* onPlayerMoved2;
do {
onPlayerMoved2 = onPlayerMoved;
BaseOnPlayerMoveCallbackComponent::OnPlayerMoved* value2 = (BaseOnPlayerMoveCallbackComponent::OnPlayerMoved*)(Delegate::Remove(onPlayerMoved2, value));
onPlayerMoved = Interlocked::CompareExchange<BaseOnPlayerMoveCallbackComponent::OnPlayerMoved*>(this->SOnPlayerMove, value2, onPlayerMoved2);
}
while (*onPlayerMoved != *onPlayerMoved2);
}
public:
virtual List_T<int>* getCSpells() = 0;
public:
virtual List_T<int>* getSSpells() = 0;
void BaseOnPlayerMoveCallbackComponent::CallCOnPlayerMove(Entity* player)
{
if (this->COnPlayerMove != null) {
DELEGATE_INVOKE(this->COnPlayerMove, player);
}
}
void BaseOnPlayerMoveCallbackComponent::CallSOnPlayerMove(Entity* player)
{
if (this->SOnPlayerMove != null) {
DELEGATE_INVOKE(this->SOnPlayerMove, player);
}
}
bool BaseOnPlayerMoveCallbackComponent::COnPlayerMoveIsNull()
{
return this->COnPlayerMove == null;
}
bool BaseOnPlayerMoveCallbackComponent::SOnPlayerMoveIsNull()
{
return this->SOnPlayerMove == null;
}
BaseOnPlayerMoveCallbackComponent::BaseOnPlayerMoveCallbackComponent()
{
CSpells_var = (List_T<int>*)(0);
SSpells_var = (List_T<int>*)(0);
}