#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(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(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(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(this->SOnPlayerMove, value2, onPlayerMoved2); } while (*onPlayerMoved != *onPlayerMoved2); } public: virtual List_T* getCSpells() = 0; public: virtual List_T* 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*)(0); SSpells_var = (List_T*)(0); }