Exemplo n.º 1
0
void HookMgr::HandleContinentCreateHook(MapMgr * pMapMgr)
{
	HookList::iterator itr = mContinentCreateHooks.begin();
	for(; itr != mContinentCreateHooks.end(); itr++)
	{
		ContinentCreateHook * pHook = (ContinentCreateHook*)(*itr);
		if(pMapMgr->GetMapId() == pHook->mapId || pHook->mapId == ALL_MAPS)
			pHook->function(pMapMgr);
	}
}
Exemplo n.º 2
0
void HookMgr::HandleEnterWorldHook(Player * pPlayer)
{
	HookList::iterator itr = mEnterWorldHooks.begin();
	for(; itr != mEnterWorldHooks.end(); itr++)
	{
		EnterWorldHook * pHook = (EnterWorldHook*)(*itr);
		if(pPlayer->GetMapId() == pHook->mapId || pHook->mapId == ALL_MAPS)
			pHook->function(pPlayer);
	}
}
Exemplo n.º 3
0
void HookMgr::HandleKillPlayerHook(Player * pPlayer, Player * pVictim)
{
	HookList::iterator itr = mKillPlayerHooks.begin();
	for(; itr != mKillPlayerHooks.end(); itr++)
	{
		KillPlayerHook * pHook = (KillPlayerHook*)(*itr);
		if(pPlayer->GetMapId() == pHook->mapId || pHook->mapId == ALL_MAPS)
			pHook->function(pPlayer, pVictim);
	}
}
Exemplo n.º 4
0
void HookMgr::HandlePostSpellCastHook(Player * pPlayer, SpellEntry * pSpell, Unit * pTarget)
{
	HookList::iterator itr = mPostSpellCastHooks.begin();
	for(; itr != mPostSpellCastHooks.end(); itr++)
	{
		PostSpellCastHook * pHook = (PostSpellCastHook*)(*itr);
		if(pPlayer->GetMapId() == pHook->mapId || pHook->mapId == ALL_MAPS)
			pHook->function(pPlayer, pSpell, pTarget);
	}
}
Exemplo n.º 5
0
void HookMgr::HandleHonorableKillHook(Player * pPlayer, Player * pKilled)
{
	HookList::iterator itr = mHonorableKillHooks.begin();
	for(; itr != mHonorableKillHooks.end(); itr++)
	{
		HonorableKillHook * pHook = (HonorableKillHook*)(*itr);
		if(pPlayer->GetMapId() == pHook->mapId || pHook->mapId == ALL_MAPS)
			pHook->function(pPlayer, pKilled);
	}
}
Exemplo n.º 6
0
void HookMgr::HandleQuestFinishHook(Player * pPlayer, Quest * pQuest)
{
	HookList::iterator itr = mQuestFinishHooks.begin();
	for(; itr != mQuestFinishHooks.end(); itr++)
	{
		QuestFinishHook * pHook = (QuestFinishHook*)(*itr);
		if(pPlayer->GetMapId() == pHook->mapId || pHook->mapId == ALL_MAPS)
			pHook->function(pPlayer, pQuest);
	}
}
Exemplo n.º 7
0
void HookMgr::HandleArenaFinishHook(Player * pPlayer, uint32 type, ArenaTeam * pTeam, bool rated, bool victory)
{
	HookList::iterator itr = mArenaFinishHooks.begin();
	for(; itr != mArenaFinishHooks.end(); itr++)
	{
		ArenaFinishHook * pHook = (ArenaFinishHook*)(*itr);
		if(pPlayer->GetMapId() == pHook->mapId || pHook->mapId == ALL_MAPS)
			pHook->function(pPlayer, type, pTeam, rated, victory);
	}
}
Exemplo n.º 8
0
bool HookMgr::HandleRepopHook(Player * pPlayer)
{
	bool pResult = true;
	HookList::iterator itr = mRepopHooks.begin();
	for(; itr != mRepopHooks.end(); itr++)
	{
		RepopHook * pHook = (RepopHook*)(*itr);
		if(pPlayer->GetMapId() == pHook->mapId || pHook->mapId == ALL_MAPS)
			pResult = pHook->function(pPlayer);
	}
	return pResult;
}
Exemplo n.º 9
0
bool HookMgr::HandleCastSpellHook(Player * pPlayer, SpellEntry * pSpell)
{
	bool pResult = true;
	HookList::iterator itr = mCastSpellHooks.begin();
	for(; itr != mCastSpellHooks.end(); itr++)
	{
		CastSpellHook * pHook = (CastSpellHook*)(*itr);
		if(pPlayer->GetMapId() == pHook->mapId || pHook->mapId == ALL_MAPS)
			pResult = pHook->function(pPlayer, pSpell);
	}

	return pResult;
}
Exemplo n.º 10
0
void Engine::DoHook(HookList& hooklist) {
    if (!_recurseStop) {
        try {
            _recurseStop = true;
            hooklist.flush(); // handle any pending insertions/deletions

            for (HookList::iterator i = hooklist.begin(); i != hooklist.end(); i++) {
                script.ExecObject(*i);
            }
        } catch (...) {
            _recurseStop = false;
            throw;
        }
        _recurseStop = false;
    }
}