[10935] Move script calls to ScriptMgr

- Script library presence is now optional.
- Some script hooks have new names. Scripting libraries need to be adjusted accordingly.

Signed-off-by: zergtmn <zerg@myisp.com>
This commit is contained in:
zergtmn 2010-12-29 21:48:06 +05:00
parent 918e646ca2
commit ec6089bbd8
32 changed files with 454 additions and 435 deletions

View file

@ -364,7 +364,6 @@ AC_CONFIG_FILES([
src/mangosd/Makefile src/mangosd/Makefile
src/mangosd/mangosd.conf.dist src/mangosd/mangosd.conf.dist
src/bindings/Makefile src/bindings/Makefile
src/bindings/universal/Makefile
]) ])
## Configure ACE, if needed ## Configure ACE, if needed

View file

@ -14,4 +14,3 @@
# along with this program; if not, write to the Free Software # along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
SUBDIRS = universal

View file

@ -30,7 +30,7 @@
#include "BattleGround.h" #include "BattleGround.h"
#include "ArenaTeam.h" #include "ArenaTeam.h"
#include "Language.h" #include "Language.h"
#include "ScriptCalls.h" #include "ScriptMgr.h"
#include "World.h" #include "World.h"
void WorldSession::HandleBattlemasterHelloOpcode(WorldPacket & recv_data) void WorldSession::HandleBattlemasterHelloOpcode(WorldPacket & recv_data)
@ -593,7 +593,7 @@ void WorldSession::HandleAreaSpiritHealerQueueOpcode( WorldPacket & recv_data )
if(!unit->isSpiritService()) // it's not spirit service if(!unit->isSpiritService()) // it's not spirit service
return; return;
Script->GossipHello(GetPlayer(), unit); sScriptMgr.OnGossipHello(GetPlayer(), unit);
} }
void WorldSession::HandleBattlemasterJoinArena( WorldPacket & recv_data ) void WorldSession::HandleBattlemasterJoinArena( WorldPacket & recv_data )

View file

@ -29,7 +29,6 @@
#include "Group.h" #include "Group.h"
#include "Guild.h" #include "Guild.h"
#include "ObjectAccessor.h" #include "ObjectAccessor.h"
#include "ScriptCalls.h"
#include "Player.h" #include "Player.h"
#include "SpellAuras.h" #include "SpellAuras.h"
#include "Language.h" #include "Language.h"

View file

@ -22,7 +22,7 @@
#include "NullCreatureAI.h" #include "NullCreatureAI.h"
#include "Policies/SingletonImp.h" #include "Policies/SingletonImp.h"
#include "MovementGenerator.h" #include "MovementGenerator.h"
#include "ScriptCalls.h" #include "ScriptMgr.h"
#include "Pet.h" #include "Pet.h"
INSTANTIATE_SINGLETON_1(CreatureAIRegistry); INSTANTIATE_SINGLETON_1(CreatureAIRegistry);
@ -34,7 +34,7 @@ namespace FactorySelector
{ {
// Allow scripting AI for normal creatures and not controlled pets (guardians and mini-pets) // Allow scripting AI for normal creatures and not controlled pets (guardians and mini-pets)
if ((!creature->IsPet() || !((Pet*)creature)->isControlled()) && !creature->isCharmed()) if ((!creature->IsPet() || !((Pet*)creature)->isControlled()) && !creature->isCharmed())
if(CreatureAI* scriptedAI = Script->GetAI(creature)) if (CreatureAI* scriptedAI = sScriptMgr.GetCreatureAI(creature))
return scriptedAI; return scriptedAI;
CreatureAIRegistry &ai_registry(CreatureAIRepository::Instance()); CreatureAIRegistry &ai_registry(CreatureAIRepository::Instance());

View file

@ -35,7 +35,6 @@
#include "BattleGround.h" #include "BattleGround.h"
#include "BattleGroundAV.h" #include "BattleGroundAV.h"
#include "Util.h" #include "Util.h"
#include "ScriptCalls.h"
#include "ScriptMgr.h" #include "ScriptMgr.h"
GameObject::GameObject() : WorldObject() GameObject::GameObject() : WorldObject()
@ -920,7 +919,7 @@ void GameObject::Use(Unit* user)
uint32 spellId = 0; uint32 spellId = 0;
bool triggered = false; bool triggered = false;
if (user->GetTypeId() == TYPEID_PLAYER && Script->GOHello((Player*)user, this)) if (user->GetTypeId() == TYPEID_PLAYER && sScriptMgr.OnGameObjectUse((Player*)user, this))
return; return;
switch(GetGoType()) switch(GetGoType())
@ -952,7 +951,7 @@ void GameObject::Use(Unit* user)
Player* player = (Player*)user; Player* player = (Player*)user;
if (!Script->GOGossipHello(player, this)) if (!sScriptMgr.OnGossipHello(player, this))
{ {
player->PrepareGossipMenu(this, GetGOInfo()->questgiver.gossipID); player->PrepareGossipMenu(this, GetGOInfo()->questgiver.gossipID);
player->SendPreparedGossip(this); player->SendPreparedGossip(this);
@ -970,7 +969,7 @@ void GameObject::Use(Unit* user)
{ {
DEBUG_LOG("Chest ScriptStart id %u for GO %u", GetGOInfo()->chest.eventId, GetDBTableGUIDLow()); DEBUG_LOG("Chest ScriptStart id %u for GO %u", GetGOInfo()->chest.eventId, GetDBTableGUIDLow());
if (!Script->ProcessEventId(GetGOInfo()->chest.eventId, user, this, true)) if (!sScriptMgr.OnProcessEvent(GetGOInfo()->chest.eventId, user, this, true))
GetMap()->ScriptsStart(sEventScripts, GetGOInfo()->chest.eventId, user, this); GetMap()->ScriptsStart(sEventScripts, GetGOInfo()->chest.eventId, user, this);
} }
@ -1080,7 +1079,7 @@ void GameObject::Use(Unit* user)
} }
else if (info->goober.gossipID) // ...or gossip, if page does not exist else if (info->goober.gossipID) // ...or gossip, if page does not exist
{ {
if (!Script->GOGossipHello(player, this)) if (!sScriptMgr.OnGossipHello(player, this))
{ {
player->PrepareGossipMenu(this, info->goober.gossipID); player->PrepareGossipMenu(this, info->goober.gossipID);
player->SendPreparedGossip(this); player->SendPreparedGossip(this);
@ -1091,7 +1090,7 @@ void GameObject::Use(Unit* user)
{ {
DEBUG_FILTER_LOG(LOG_FILTER_AI_AND_MOVEGENSS, "Goober ScriptStart id %u for GO entry %u (GUID %u).", info->goober.eventId, GetEntry(), GetDBTableGUIDLow()); DEBUG_FILTER_LOG(LOG_FILTER_AI_AND_MOVEGENSS, "Goober ScriptStart id %u for GO entry %u (GUID %u).", info->goober.eventId, GetEntry(), GetDBTableGUIDLow());
if (!Script->ProcessEventId(info->goober.eventId, player, this, true)) if (!sScriptMgr.OnProcessEvent(info->goober.eventId, player, this, true))
GetMap()->ScriptsStart(sEventScripts, info->goober.eventId, player, this); GetMap()->ScriptsStart(sEventScripts, info->goober.eventId, player, this);
} }
@ -1153,7 +1152,7 @@ void GameObject::Use(Unit* user)
if (info->camera.eventID) if (info->camera.eventID)
{ {
if (!Script->ProcessEventId(info->camera.eventID, player, this, true)) if (!sScriptMgr.OnProcessEvent(info->camera.eventID, player, this, true))
GetMap()->ScriptsStart(sEventScripts, info->camera.eventID, player, this); GetMap()->ScriptsStart(sEventScripts, info->camera.eventID, player, this);
} }

View file

@ -33,7 +33,7 @@
#include "Guild.h" #include "Guild.h"
#include "ObjectAccessor.h" #include "ObjectAccessor.h"
#include "MapManager.h" #include "MapManager.h"
#include "ScriptCalls.h" #include "ScriptMgr.h"
#include "Language.h" #include "Language.h"
#include "GridNotifiersImpl.h" #include "GridNotifiersImpl.h"
#include "CellImpl.h" #include "CellImpl.h"
@ -927,7 +927,10 @@ bool ChatHandler::HandleReloadMailLevelRewardCommand(char* /*args*/)
bool ChatHandler::HandleLoadScriptsCommand(char* args) bool ChatHandler::HandleLoadScriptsCommand(char* args)
{ {
if (!LoadScriptingModule(args)) if (!*args)
return false;
if (!sScriptMgr.LoadScriptLibrary(args))
return true; return true;
sWorld.SendWorldText(LANG_SCRIPTS_RELOADED); sWorld.SendWorldText(LANG_SCRIPTS_RELOADED);

View file

@ -233,8 +233,6 @@ libmangosgame_a_SOURCES = \
ReactorAI.h \ ReactorAI.h \
ReputationMgr.cpp \ ReputationMgr.cpp \
ReputationMgr.h \ ReputationMgr.h \
ScriptCalls.cpp \
ScriptCalls.h \
ScriptMgr.cpp \ ScriptMgr.cpp \
ScriptMgr.h \ ScriptMgr.h \
SharedDefines.h \ SharedDefines.h \

View file

@ -30,7 +30,7 @@
#include "ObjectAccessor.h" #include "ObjectAccessor.h"
#include "ObjectMgr.h" #include "ObjectMgr.h"
#include "World.h" #include "World.h"
#include "ScriptCalls.h" #include "ScriptMgr.h"
#include "Group.h" #include "Group.h"
#include "MapRefManager.h" #include "MapRefManager.h"
#include "DBCEnums.h" #include "DBCEnums.h"
@ -1467,7 +1467,7 @@ void InstanceMap::CreateInstanceData(bool load)
if (mInstance) if (mInstance)
{ {
i_script_id = mInstance->script_id; i_script_id = mInstance->script_id;
i_data = Script->CreateInstanceData(this); i_data = sScriptMgr.CreateInstanceData(this);
} }
if(!i_data) if(!i_data)

View file

@ -32,7 +32,7 @@
#include "UpdateData.h" #include "UpdateData.h"
#include "LootMgr.h" #include "LootMgr.h"
#include "Chat.h" #include "Chat.h"
#include "ScriptCalls.h" #include "ScriptMgr.h"
#include <zlib/zlib.h> #include <zlib/zlib.h>
#include "ObjectAccessor.h" #include "ObjectAccessor.h"
#include "Object.h" #include "Object.h"
@ -709,7 +709,7 @@ void WorldSession::HandleAreaTriggerOpcode(WorldPacket & recv_data)
return; return;
} }
if(Script->scriptAreaTrigger(pl, atEntry)) if (sScriptMgr.OnAreaTrigger(pl, atEntry))
return; return;
uint32 quest_id = sObjectMgr.GetQuestForAreaTrigger( Trigger_ID ); uint32 quest_id = sObjectMgr.GetQuestForAreaTrigger( Trigger_ID );

View file

@ -28,7 +28,7 @@
#include "Player.h" #include "Player.h"
#include "GossipDef.h" #include "GossipDef.h"
#include "UpdateMask.h" #include "UpdateMask.h"
#include "ScriptCalls.h" #include "ScriptMgr.h"
#include "ObjectAccessor.h" #include "ObjectAccessor.h"
#include "Creature.h" #include "Creature.h"
#include "Pet.h" #include "Pet.h"
@ -316,7 +316,7 @@ void WorldSession::HandleGossipHelloOpcode(WorldPacket & recv_data)
if (pCreature->isSpiritGuide()) if (pCreature->isSpiritGuide())
pCreature->SendAreaSpiritHealerQueryOpcode(_player); pCreature->SendAreaSpiritHealerQueryOpcode(_player);
if (!Script->GossipHello(_player, pCreature)) if (!sScriptMgr.OnGossipHello(_player, pCreature))
{ {
_player->PrepareGossipMenu(pCreature, pCreature->GetCreatureInfo()->GossipMenuId); _player->PrepareGossipMenu(pCreature, pCreature->GetCreatureInfo()->GossipMenuId);
_player->SendPreparedGossip(pCreature); _player->SendPreparedGossip(pCreature);
@ -344,6 +344,9 @@ void WorldSession::HandleGossipSelectOptionOpcode( WorldPacket & recv_data )
if (GetPlayer()->hasUnitState(UNIT_STAT_DIED)) if (GetPlayer()->hasUnitState(UNIT_STAT_DIED))
GetPlayer()->RemoveSpellsCausingAura(SPELL_AURA_FEIGN_DEATH); GetPlayer()->RemoveSpellsCausingAura(SPELL_AURA_FEIGN_DEATH);
uint32 sender = _player->PlayerTalkClass->GossipOptionSender(gossipListId);
uint32 action = _player->PlayerTalkClass->GossipOptionAction(gossipListId);
if (guid.IsAnyTypeCreature()) if (guid.IsAnyTypeCreature())
{ {
Creature *pCreature = GetPlayer()->GetNPCIfCanInteractWith(guid, UNIT_NPC_FLAG_NONE); Creature *pCreature = GetPlayer()->GetNPCIfCanInteractWith(guid, UNIT_NPC_FLAG_NONE);
@ -354,17 +357,9 @@ void WorldSession::HandleGossipSelectOptionOpcode( WorldPacket & recv_data )
return; return;
} }
if (!code.empty()) if (!sScriptMgr.OnGossipSelect(_player, pCreature, sender, action, code.empty() ? NULL : code.c_str()))
{
if (!Script->GossipSelectWithCode(_player, pCreature, _player->PlayerTalkClass->GossipOptionSender(gossipListId), _player->PlayerTalkClass->GossipOptionAction(gossipListId), code.c_str()))
_player->OnGossipSelect(pCreature, gossipListId, menuId); _player->OnGossipSelect(pCreature, gossipListId, menuId);
} }
else
{
if (!Script->GossipSelect(_player, pCreature, _player->PlayerTalkClass->GossipOptionSender(gossipListId), _player->PlayerTalkClass->GossipOptionAction(gossipListId)))
_player->OnGossipSelect(pCreature, gossipListId, menuId);
}
}
else if (guid.IsGameObject()) else if (guid.IsGameObject())
{ {
GameObject *pGo = GetPlayer()->GetGameObjectIfCanInteractWith(guid); GameObject *pGo = GetPlayer()->GetGameObjectIfCanInteractWith(guid);
@ -375,17 +370,9 @@ void WorldSession::HandleGossipSelectOptionOpcode( WorldPacket & recv_data )
return; return;
} }
if (!code.empty()) if (!sScriptMgr.OnGossipSelect(_player, pGo, sender, action, code.empty() ? NULL : code.c_str()))
{
if (!Script->GOGossipSelectWithCode(_player, pGo, _player->PlayerTalkClass->GossipOptionSender(gossipListId), _player->PlayerTalkClass->GossipOptionAction(gossipListId), code.c_str()))
_player->OnGossipSelect(pGo, gossipListId, menuId); _player->OnGossipSelect(pGo, gossipListId, menuId);
} }
else
{
if (!Script->GOGossipSelect(_player, pGo, _player->PlayerTalkClass->GossipOptionSender(gossipListId), _player->PlayerTalkClass->GossipOptionAction(gossipListId)))
_player->OnGossipSelect(pGo, gossipListId, menuId);
}
}
} }
void WorldSession::HandleSpiritHealerActivateOpcode( WorldPacket & recv_data ) void WorldSession::HandleSpiritHealerActivateOpcode( WorldPacket & recv_data )

View file

@ -27,7 +27,7 @@
#include "GossipDef.h" #include "GossipDef.h"
#include "QuestDef.h" #include "QuestDef.h"
#include "ObjectAccessor.h" #include "ObjectAccessor.h"
#include "ScriptCalls.h" #include "ScriptMgr.h"
#include "Group.h" #include "Group.h"
void WorldSession::HandleQuestgiverStatusQueryOpcode( WorldPacket & recv_data ) void WorldSession::HandleQuestgiverStatusQueryOpcode( WorldPacket & recv_data )
@ -54,7 +54,7 @@ void WorldSession::HandleQuestgiverStatusQueryOpcode( WorldPacket & recv_data )
if (!cr_questgiver->IsHostileTo(_player)) // not show quest status to enemies if (!cr_questgiver->IsHostileTo(_player)) // not show quest status to enemies
{ {
dialogStatus = Script->NPCDialogStatus(_player, cr_questgiver); dialogStatus = sScriptMgr.OnDialogStatus(_player, cr_questgiver);
if (dialogStatus > DIALOG_STATUS_REWARD_REP) if (dialogStatus > DIALOG_STATUS_REWARD_REP)
dialogStatus = getDialogStatus(_player, cr_questgiver, DIALOG_STATUS_NONE); dialogStatus = getDialogStatus(_player, cr_questgiver, DIALOG_STATUS_NONE);
@ -64,7 +64,7 @@ void WorldSession::HandleQuestgiverStatusQueryOpcode( WorldPacket & recv_data )
case TYPEID_GAMEOBJECT: case TYPEID_GAMEOBJECT:
{ {
GameObject* go_questgiver = (GameObject*)questgiver; GameObject* go_questgiver = (GameObject*)questgiver;
dialogStatus = Script->GODialogStatus(_player, go_questgiver); dialogStatus = sScriptMgr.OnDialogStatus(_player, go_questgiver);
if (dialogStatus > DIALOG_STATUS_REWARD_REP) if (dialogStatus > DIALOG_STATUS_REWARD_REP)
dialogStatus = getDialogStatus(_player, go_questgiver, DIALOG_STATUS_NONE); dialogStatus = getDialogStatus(_player, go_questgiver, DIALOG_STATUS_NONE);
@ -103,7 +103,7 @@ void WorldSession::HandleQuestgiverHelloOpcode(WorldPacket & recv_data)
if (!pCreature->IsStopped()) if (!pCreature->IsStopped())
pCreature->StopMoving(); pCreature->StopMoving();
if (Script->GossipHello(_player, pCreature)) if (sScriptMgr.OnGossipHello(_player, pCreature))
return; return;
_player->PrepareGossipMenu(pCreature, pCreature->GetCreatureInfo()->GossipMenuId); _player->PrepareGossipMenu(pCreature, pCreature->GetCreatureInfo()->GossipMenuId);
@ -192,12 +192,12 @@ void WorldSession::HandleQuestgiverAcceptQuestOpcode( WorldPacket & recv_data )
switch(pObject->GetTypeId()) switch(pObject->GetTypeId())
{ {
case TYPEID_UNIT: case TYPEID_UNIT:
Script->QuestAccept(_player, ((Creature*)pObject), qInfo ); sScriptMgr.OnQuestAccept(_player, (Creature*)pObject, qInfo);
break; break;
case TYPEID_ITEM: case TYPEID_ITEM:
case TYPEID_CONTAINER: case TYPEID_CONTAINER:
{ {
Script->ItemQuestAccept(_player, ((Item*)pObject), qInfo ); sScriptMgr.OnQuestAccept(_player, (Item*)pObject, qInfo);
// destroy not required for quest finish quest starting item // destroy not required for quest finish quest starting item
bool destroyItem = true; bool destroyItem = true;
@ -216,7 +216,7 @@ void WorldSession::HandleQuestgiverAcceptQuestOpcode( WorldPacket & recv_data )
break; break;
} }
case TYPEID_GAMEOBJECT: case TYPEID_GAMEOBJECT:
Script->GOQuestAccept(_player, ((GameObject*)pObject), qInfo ); sScriptMgr.OnQuestAccept(_player, (GameObject*)pObject, qInfo);
break; break;
} }
_player->PlayerTalkClass->CloseGossip(); _player->PlayerTalkClass->CloseGossip();
@ -299,7 +299,7 @@ void WorldSession::HandleQuestgiverChooseRewardOpcode( WorldPacket & recv_data )
switch(pObject->GetTypeId()) switch(pObject->GetTypeId())
{ {
case TYPEID_UNIT: case TYPEID_UNIT:
if (!(Script->ChooseReward(_player, ((Creature*)pObject), pQuest, reward))) if (!sScriptMgr.OnQuestChooseReward(_player, (Creature*)pObject, pQuest, reward))
{ {
// Send next quest // Send next quest
if (Quest const* nextquest = _player->GetNextQuest(guid, pQuest)) if (Quest const* nextquest = _player->GetNextQuest(guid, pQuest))
@ -307,10 +307,10 @@ void WorldSession::HandleQuestgiverChooseRewardOpcode( WorldPacket & recv_data )
} }
break; break;
case TYPEID_GAMEOBJECT: case TYPEID_GAMEOBJECT:
if (!Script->GOChooseReward(_player, ((GameObject*)pObject), pQuest, reward)) if (!sScriptMgr.OnQuestChooseReward(_player, (GameObject*)pObject, pQuest, reward))
{ {
// Send next quest // Send next quest
if (Quest const* nextquest = _player->GetNextQuest(guid ,pQuest)) if (Quest const* nextquest = _player->GetNextQuest(guid, pQuest))
_player->PlayerTalkClass->SendQuestGiverQuestDetails(nextquest, guid, true); _player->PlayerTalkClass->SendQuestGiverQuestDetails(nextquest, guid, true);
} }
break; break;
@ -663,7 +663,7 @@ void WorldSession::HandleQuestgiverStatusMultipleQuery(WorldPacket& /*recvPacket
if (!questgiver->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER)) if (!questgiver->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER))
continue; continue;
dialogStatus = Script->NPCDialogStatus(_player, questgiver); dialogStatus = sScriptMgr.OnDialogStatus(_player, questgiver);
if (dialogStatus > DIALOG_STATUS_REWARD_REP) if (dialogStatus > DIALOG_STATUS_REWARD_REP)
dialogStatus = getDialogStatus(_player, questgiver, DIALOG_STATUS_NONE); dialogStatus = getDialogStatus(_player, questgiver, DIALOG_STATUS_NONE);
@ -682,7 +682,7 @@ void WorldSession::HandleQuestgiverStatusMultipleQuery(WorldPacket& /*recvPacket
if (questgiver->GetGoType() != GAMEOBJECT_TYPE_QUESTGIVER) if (questgiver->GetGoType() != GAMEOBJECT_TYPE_QUESTGIVER)
continue; continue;
dialogStatus = Script->GODialogStatus(_player, questgiver); dialogStatus = sScriptMgr.OnDialogStatus(_player, questgiver);
if (dialogStatus > DIALOG_STATUS_REWARD_REP) if (dialogStatus > DIALOG_STATUS_REWARD_REP)
dialogStatus = getDialogStatus(_player, questgiver, DIALOG_STATUS_NONE); dialogStatus = getDialogStatus(_player, questgiver, DIALOG_STATUS_NONE);

View file

@ -1,107 +0,0 @@
/*
* Copyright (C) 2005-2010 MaNGOS <http://getmangos.com/>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef WIN32
#include <dlfcn.h>
#endif
#include "Platform/Define.h"
#include "ScriptCalls.h"
#include "World.h"
ScriptsSet Script=NULL;
void UnloadScriptingModule()
{
if(Script)
{
//todo: some check if some func from script library is called right now
Script->ScriptsFree();
MANGOS_CLOSE_LIBRARY(Script->hScriptsLib);
delete Script;
Script = NULL;
}
}
bool LoadScriptingModule(char const* libName)
{
ScriptsSet testScript=new _ScriptSet;
std::string name = strlen(libName) ? libName : MANGOS_SCRIPT_NAME;
name = MANGOS_SCRIPT_PREFIX + name + MANGOS_SCRIPT_SUFFIX;
testScript->hScriptsLib=MANGOS_LOAD_LIBRARY(name.c_str());
if(!testScript->hScriptsLib )
{
printf("Error loading Scripts Library %s !\n",name.c_str());
delete testScript;
return false;
}
if( !(testScript->ScriptsInit =(scriptCallScriptsInit )MANGOS_GET_PROC_ADDR(testScript->hScriptsLib,"ScriptsInit" ))
||!(testScript->ScriptsFree =(scriptCallScriptsFree )MANGOS_GET_PROC_ADDR(testScript->hScriptsLib,"ScriptsFree" ))
||!(testScript->ScriptsVersion =(scriptCallScriptsVersion )MANGOS_GET_PROC_ADDR(testScript->hScriptsLib,"ScriptsVersion" ))
||!(testScript->GossipHello =(scriptCallGossipHello )MANGOS_GET_PROC_ADDR(testScript->hScriptsLib,"GossipHello" ))
||!(testScript->GOGossipHello =(scriptCallGOGossipHello )MANGOS_GET_PROC_ADDR(testScript->hScriptsLib,"GOGossipHello" ))
||!(testScript->GOChooseReward =(scriptCallGOChooseReward )MANGOS_GET_PROC_ADDR(testScript->hScriptsLib,"GOChooseReward" ))
||!(testScript->QuestAccept =(scriptCallQuestAccept )MANGOS_GET_PROC_ADDR(testScript->hScriptsLib,"QuestAccept" ))
||!(testScript->GossipSelect =(scriptCallGossipSelect )MANGOS_GET_PROC_ADDR(testScript->hScriptsLib,"GossipSelect" ))
||!(testScript->GOGossipSelect =(scriptCallGOGossipSelect )MANGOS_GET_PROC_ADDR(testScript->hScriptsLib,"GOGossipSelect" ))
||!(testScript->GossipSelectWithCode=(scriptCallGossipSelectWithCode)MANGOS_GET_PROC_ADDR(testScript->hScriptsLib,"GossipSelectWithCode"))
||!(testScript->GOGossipSelectWithCode=(scriptCallGOGossipSelectWithCode)MANGOS_GET_PROC_ADDR(testScript->hScriptsLib,"GOGossipSelectWithCode"))
||!(testScript->QuestSelect =(scriptCallQuestSelect )MANGOS_GET_PROC_ADDR(testScript->hScriptsLib,"QuestSelect" ))
||!(testScript->QuestComplete =(scriptCallQuestComplete )MANGOS_GET_PROC_ADDR(testScript->hScriptsLib,"QuestComplete" ))
||!(testScript->NPCDialogStatus =(scriptCallNPCDialogStatus )MANGOS_GET_PROC_ADDR(testScript->hScriptsLib,"NPCDialogStatus" ))
||!(testScript->GODialogStatus =(scriptCallGODialogStatus )MANGOS_GET_PROC_ADDR(testScript->hScriptsLib,"GODialogStatus" ))
||!(testScript->ChooseReward =(scriptCallChooseReward )MANGOS_GET_PROC_ADDR(testScript->hScriptsLib,"ChooseReward" ))
||!(testScript->ItemHello =(scriptCallItemHello )MANGOS_GET_PROC_ADDR(testScript->hScriptsLib,"ItemHello" ))
||!(testScript->GOHello =(scriptCallGOHello )MANGOS_GET_PROC_ADDR(testScript->hScriptsLib,"GOHello" ))
||!(testScript->scriptAreaTrigger =(scriptCallAreaTrigger )MANGOS_GET_PROC_ADDR(testScript->hScriptsLib,"AreaTrigger" ))
||!(testScript->ProcessEventId =(scriptCallProcessEventId )MANGOS_GET_PROC_ADDR(testScript->hScriptsLib,"ProcessEventId" ))
||!(testScript->ItemQuestAccept =(scriptCallItemQuestAccept )MANGOS_GET_PROC_ADDR(testScript->hScriptsLib,"ItemQuestAccept" ))
||!(testScript->GOQuestAccept =(scriptCallGOQuestAccept )MANGOS_GET_PROC_ADDR(testScript->hScriptsLib,"GOQuestAccept" ))
||!(testScript->ItemUse =(scriptCallItemUse )MANGOS_GET_PROC_ADDR(testScript->hScriptsLib,"ItemUse" ))
||!(testScript->EffectDummyGameObj =(scriptCallEffectDummyGameObj )MANGOS_GET_PROC_ADDR(testScript->hScriptsLib,"EffectDummyGameObj" ))
||!(testScript->EffectDummyCreature =(scriptCallEffectDummyCreature )MANGOS_GET_PROC_ADDR(testScript->hScriptsLib,"EffectDummyCreature" ))
||!(testScript->EffectDummyItem =(scriptCallEffectDummyItem )MANGOS_GET_PROC_ADDR(testScript->hScriptsLib,"EffectDummyItem" ))
||!(testScript->EffectAuraDummy =(scriptCallEffectAuraDummy )MANGOS_GET_PROC_ADDR(testScript->hScriptsLib,"EffectAuraDummy" ))
||!(testScript->GetAI =(scriptCallGetAI )MANGOS_GET_PROC_ADDR(testScript->hScriptsLib,"GetAI" ))
||!(testScript->CreateInstanceData =(scriptCallCreateInstanceData )MANGOS_GET_PROC_ADDR(testScript->hScriptsLib,"CreateInstanceData" ))
)
{
printf("Error loading Scripts Library %s !\n Library missing required functions.",name.c_str());
MANGOS_CLOSE_LIBRARY(testScript->hScriptsLib);
delete testScript;
return false;
}
sLog.outString();
sLog.outString( ">>> Scripts Library %s was successfully loaded.\n", name.c_str() );
//heh we are still there :P we have a valid library
//we reload script
UnloadScriptingModule();
Script=testScript;
Script->ScriptsInit(sScriptMgr.GetScriptNames());
sWorld.SetScriptsVersion(Script->ScriptsVersion());
return true;
}

View file

@ -1,111 +0,0 @@
/*
* Copyright (C) 2005-2010 MaNGOS <http://getmangos.com/>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef __SCRIPT_CALLS_H
#define __SCRIPT_CALLS_H
#include "Common.h"
#include "ObjectMgr.h"
#include "ScriptMgr.h"
#include "DBCStructure.h"
class Aura;
class Creature;
class CreatureAI;
class GameObject;
class Item;
class Object;
class Player;
class Quest;
class Unit;
class SpellCastTargets;
class Map;
class InstanceData;
bool LoadScriptingModule(char const* libName = "");
void UnloadScriptingModule();
typedef void(MANGOS_IMPORT * scriptCallScriptsInit) (ScriptMgr::ScriptNameMap const& scriptNames);
typedef void(MANGOS_IMPORT * scriptCallScriptsFree) ();
typedef char const* (MANGOS_IMPORT * scriptCallScriptsVersion) ();
typedef bool(MANGOS_IMPORT * scriptCallGossipHello) (Player *player, Creature *_Creature );
typedef bool(MANGOS_IMPORT * scriptCallGOGossipHello) (Player *player, GameObject *_GO);
typedef bool(MANGOS_IMPORT * scriptCallQuestAccept) (Player *player, Creature *_Creature, Quest const *);
typedef bool(MANGOS_IMPORT * scriptCallGossipSelect)(Player *player, Creature *_Creature, uint32 sender, uint32 action);
typedef bool(MANGOS_IMPORT * scriptCallGOGossipSelect)(Player *player, GameObject *_GO, uint32 sender, uint32 action);
typedef bool(MANGOS_IMPORT * scriptCallGossipSelectWithCode)( Player *player, Creature *_Creature, uint32 sender, uint32 action, const char* sCode );
typedef bool(MANGOS_IMPORT * scriptCallGOGossipSelectWithCode)( Player *player, GameObject *_GO, uint32 sender, uint32 action, const char* sCode );
typedef bool(MANGOS_IMPORT * scriptCallQuestSelect)( Player *player, Creature *_Creature, Quest const* );
typedef bool(MANGOS_IMPORT * scriptCallQuestComplete)(Player *player, Creature *_Creature, Quest const*);
typedef uint32(MANGOS_IMPORT * scriptCallNPCDialogStatus)( Player *player, Creature *_Creature);
typedef uint32(MANGOS_IMPORT * scriptCallGODialogStatus)( Player *player, GameObject * _GO);
typedef bool(MANGOS_IMPORT * scriptCallChooseReward)( Player *player, Creature *_Creature, Quest const*, uint32 opt );
typedef bool(MANGOS_IMPORT * scriptCallItemHello)( Player *player, Item *, Quest const*);
typedef bool(MANGOS_IMPORT * scriptCallGOHello)( Player *player, GameObject * );
typedef bool(MANGOS_IMPORT * scriptCallAreaTrigger)( Player *player, AreaTriggerEntry const* );
typedef bool(MANGOS_IMPORT * scriptCallProcessEventId)(uint32 eventId, Object* source, Object* target, bool isStart);
typedef bool(MANGOS_IMPORT * scriptCallItemQuestAccept)(Player *player, Item *, Quest const*);
typedef bool(MANGOS_IMPORT * scriptCallGOQuestAccept)(Player *player, GameObject *, Quest const*);
typedef bool(MANGOS_IMPORT * scriptCallGOChooseReward)(Player *player, GameObject *, Quest const*, uint32 opt );
typedef bool(MANGOS_IMPORT * scriptCallItemUse) (Player *player, Item *_Item, SpellCastTargets const& targets);
typedef bool(MANGOS_IMPORT * scriptCallEffectDummyGameObj) (Unit *caster, uint32 spellId, SpellEffectIndex effIndex, GameObject *gameObjTarget);
typedef bool(MANGOS_IMPORT * scriptCallEffectDummyCreature) (Unit *caster, uint32 spellId, SpellEffectIndex effIndex, Creature *crTarget);
typedef bool(MANGOS_IMPORT * scriptCallEffectDummyItem) (Unit *caster, uint32 spellId, SpellEffectIndex effIndex, Item *itemTarget);
typedef bool(MANGOS_IMPORT * scriptCallEffectAuraDummy) (const Aura* pAura, bool apply);
typedef CreatureAI* (MANGOS_IMPORT * scriptCallGetAI) ( Creature *_Creature );
typedef InstanceData* (MANGOS_IMPORT * scriptCallCreateInstanceData) (Map *map);
typedef struct
{
scriptCallScriptsInit ScriptsInit;
scriptCallScriptsFree ScriptsFree;
scriptCallScriptsVersion ScriptsVersion;
scriptCallGossipHello GossipHello;
scriptCallGOGossipHello GOGossipHello;
scriptCallGOChooseReward GOChooseReward;
scriptCallQuestAccept QuestAccept;
scriptCallGossipSelect GossipSelect;
scriptCallGOGossipSelect GOGossipSelect;
scriptCallGossipSelectWithCode GossipSelectWithCode;
scriptCallGOGossipSelectWithCode GOGossipSelectWithCode;
scriptCallQuestSelect QuestSelect;
scriptCallQuestComplete QuestComplete;
scriptCallNPCDialogStatus NPCDialogStatus;
scriptCallGODialogStatus GODialogStatus;
scriptCallChooseReward ChooseReward;
scriptCallItemHello ItemHello;
scriptCallGOHello GOHello;
scriptCallAreaTrigger scriptAreaTrigger;
scriptCallProcessEventId ProcessEventId;
scriptCallItemQuestAccept ItemQuestAccept;
scriptCallGOQuestAccept GOQuestAccept;
scriptCallItemUse ItemUse;
scriptCallEffectDummyGameObj EffectDummyGameObj;
scriptCallEffectDummyCreature EffectDummyCreature;
scriptCallEffectDummyItem EffectDummyItem;
scriptCallEffectAuraDummy EffectAuraDummy;
scriptCallGetAI GetAI;
scriptCallCreateInstanceData CreateInstanceData;
MANGOS_LIBRARY_HANDLE hScriptsLib;
}_ScriptSet,*ScriptsSet;
extern ScriptsSet Script;
#endif

View file

@ -34,12 +34,44 @@ ScriptMapMap sCreatureMovementScripts;
INSTANTIATE_SINGLETON_1(ScriptMgr); INSTANTIATE_SINGLETON_1(ScriptMgr);
ScriptMgr::ScriptMgr() ScriptMgr::ScriptMgr() :
m_hScriptLib(NULL),
m_pOnInitScriptLibrary(NULL),
m_pOnFreeScriptLibrary(NULL),
m_pGetScriptLibraryVersion(NULL),
m_pGetCreatureAI(NULL),
m_pCreateInstanceData(NULL),
m_pOnGossipHello(NULL),
m_pOnGOGossipHello(NULL),
m_pOnGossipSelect(NULL),
m_pOnGOGossipSelect(NULL),
m_pOnGossipSelectWithCode(NULL),
m_pOnGOGossipSelectWithCode(NULL),
m_pOnQuestAccept(NULL),
m_pOnGOQuestAccept(NULL),
m_pOnItemQuestAccept(NULL),
m_pOnQuestComplete(NULL),
m_pOnQuestChooseReward(NULL),
m_pOnGOQuestChooseReward(NULL),
m_pOnNPCDialogStatus(NULL),
m_pOnGODialogStatus(NULL),
m_pOnGOUse(NULL),
m_pOnItemUse(NULL),
m_pOnAreaTrigger(NULL),
m_pOnProcessEvent(NULL),
m_pOnEffectDummyCreature(NULL),
m_pOnEffectDummyGO(NULL),
m_pOnEffectDummyItem(NULL),
m_pOnAuraDummy(NULL)
{ {
} }
ScriptMgr::~ScriptMgr() ScriptMgr::~ScriptMgr()
{ {
UnloadScriptLibrary();
} }
void ScriptMgr::LoadScripts(ScriptMapMap& scripts, const char* tablename) void ScriptMgr::LoadScripts(ScriptMapMap& scripts, const char* tablename)
@ -878,6 +910,227 @@ uint32 ScriptMgr::GetEventIdScriptId(uint32 eventId) const
return 0; return 0;
} }
CreatureAI* ScriptMgr::GetCreatureAI(Creature* pCreature)
{
if (!m_pGetCreatureAI)
return NULL;
return m_pGetCreatureAI(pCreature);
}
InstanceData* ScriptMgr::CreateInstanceData(Map* pMap)
{
if (!m_pCreateInstanceData)
return NULL;
return m_pCreateInstanceData(pMap);
}
bool ScriptMgr::OnGossipHello(Player* pPlayer, Creature* pCreature)
{
return m_pOnGossipHello != NULL && m_pOnGossipHello(pPlayer, pCreature);
}
bool ScriptMgr::OnGossipHello(Player* pPlayer, GameObject* pGameObject)
{
return m_pOnGOGossipHello != NULL && m_pOnGOGossipHello(pPlayer, pGameObject);
}
bool ScriptMgr::OnGossipSelect(Player* pPlayer, Creature* pCreature, uint32 sender, uint32 action, const char* code)
{
if (code)
return m_pOnGossipSelectWithCode != NULL && m_pOnGossipSelectWithCode(pPlayer, pCreature, sender, action, code);
else
return m_pOnGossipSelect != NULL && m_pOnGossipSelect(pPlayer, pCreature, sender, action);
}
bool ScriptMgr::OnGossipSelect(Player* pPlayer, GameObject* pGameObject, uint32 sender, uint32 action, const char* code)
{
if (code)
return m_pOnGOGossipSelectWithCode != NULL && m_pOnGOGossipSelectWithCode(pPlayer, pGameObject, sender, action, code);
else
return m_pOnGOGossipSelect != NULL && m_pOnGOGossipSelect(pPlayer, pGameObject, sender, action);
}
bool ScriptMgr::OnQuestAccept(Player* pPlayer, Creature* pCreature, Quest const* pQuest)
{
return m_pOnQuestAccept != NULL && m_pOnQuestAccept(pPlayer, pCreature, pQuest);
}
bool ScriptMgr::OnQuestAccept(Player* pPlayer, GameObject* pGameObject, Quest const* pQuest)
{
return m_pOnGOQuestAccept != NULL && m_pOnGOQuestAccept(pPlayer, pGameObject, pQuest);
}
bool ScriptMgr::OnQuestAccept(Player* pPlayer, Item* pItem, Quest const* pQuest)
{
return m_pOnItemQuestAccept != NULL && m_pOnItemQuestAccept(pPlayer, pItem, pQuest);
}
bool ScriptMgr::OnQuestComplete(Player* pPlayer, Creature* pCreature, Quest const* pQuest)
{
return m_pOnQuestComplete != NULL && m_pOnQuestComplete(pPlayer, pCreature, pQuest);
}
bool ScriptMgr::OnQuestChooseReward(Player* pPlayer, Creature* pCreature, Quest const* pQuest, uint32 opt)
{
return m_pOnQuestChooseReward != NULL && m_pOnQuestChooseReward(pPlayer, pCreature, pQuest, opt);
}
bool ScriptMgr::OnQuestChooseReward(Player* pPlayer, GameObject* pGameObject, Quest const* pQuest, uint32 opt)
{
return m_pOnGOQuestChooseReward != NULL && m_pOnGOQuestChooseReward(pPlayer, pGameObject, pQuest, opt);
}
uint32 ScriptMgr::OnDialogStatus(Player* pPlayer, Creature* pCreature)
{
if (!m_pOnNPCDialogStatus)
return 100;
return m_pOnNPCDialogStatus(pPlayer, pCreature);
}
uint32 ScriptMgr::OnDialogStatus(Player* pPlayer, GameObject* pGameObject)
{
if (!m_pOnGODialogStatus)
return 100;
return m_pOnGODialogStatus(pPlayer, pGameObject);
}
bool ScriptMgr::OnGameObjectUse(Player* pPlayer, GameObject* pGameObject)
{
return m_pOnGOUse != NULL && m_pOnGOUse(pPlayer, pGameObject);
}
bool ScriptMgr::OnItemUse(Player* pPlayer, Item* pItem, SpellCastTargets const& targets)
{
return m_pOnItemUse != NULL && m_pOnItemUse(pPlayer, pItem, targets);
}
bool ScriptMgr::OnAreaTrigger(Player* pPlayer, AreaTriggerEntry const* atEntry)
{
return m_pOnAreaTrigger != NULL && m_pOnAreaTrigger(pPlayer, atEntry);
}
bool ScriptMgr::OnProcessEvent(uint32 eventId, WorldObject* pSource, WorldObject* pTarget, bool isStart)
{
return m_pOnProcessEvent != NULL && m_pOnProcessEvent(eventId, pSource, pTarget, isStart);
}
bool ScriptMgr::OnEffectDummy(Unit* pCaster, uint32 spellId, SpellEffectIndex effIndex, Creature* pTarget)
{
return m_pOnEffectDummyCreature != NULL && m_pOnEffectDummyCreature(pCaster, spellId, effIndex, pTarget);
}
bool ScriptMgr::OnEffectDummy(Unit* pCaster, uint32 spellId, SpellEffectIndex effIndex, GameObject* pTarget)
{
return m_pOnEffectDummyGO != NULL && m_pOnEffectDummyGO(pCaster, spellId, effIndex, pTarget);
}
bool ScriptMgr::OnEffectDummy(Unit* pCaster, uint32 spellId, SpellEffectIndex effIndex, Item* pTarget)
{
return m_pOnEffectDummyItem != NULL && m_pOnEffectDummyItem(pCaster, spellId, effIndex, pTarget);
}
bool ScriptMgr::OnAuraDummy(Aura const* pAura, bool apply)
{
return m_pOnAuraDummy != NULL && m_pOnAuraDummy(pAura, apply);
}
bool ScriptMgr::LoadScriptLibrary(const char* libName)
{
UnloadScriptLibrary();
std::string name = libName;
name = MANGOS_SCRIPT_PREFIX + name + MANGOS_SCRIPT_SUFFIX;
m_hScriptLib = MANGOS_LOAD_LIBRARY(name.c_str());
if (!m_hScriptLib)
return false;
GetScriptHookPtr(m_pOnInitScriptLibrary, "InitScriptLibrary");
GetScriptHookPtr(m_pOnFreeScriptLibrary, "FreeScriptLibrary");
GetScriptHookPtr(m_pGetScriptLibraryVersion, "GetScriptLibraryVersion");
GetScriptHookPtr(m_pGetCreatureAI, "GetCreatureAI");
GetScriptHookPtr(m_pCreateInstanceData, "CreateInstanceData");
GetScriptHookPtr(m_pOnGossipHello, "GossipHello");
GetScriptHookPtr(m_pOnGOGossipHello, "GOGossipHello");
GetScriptHookPtr(m_pOnGossipSelect, "GossipSelect");
GetScriptHookPtr(m_pOnGOGossipSelect, "GOGossipSelect");
GetScriptHookPtr(m_pOnGossipSelectWithCode, "GossipSelectWithCode");
GetScriptHookPtr(m_pOnGOGossipSelectWithCode, "GOGossipSelectWithCode");
GetScriptHookPtr(m_pOnQuestAccept, "QuestAccept");
GetScriptHookPtr(m_pOnGOQuestAccept, "GOQuestAccept");
GetScriptHookPtr(m_pOnItemQuestAccept, "ItemQuestAccept");
GetScriptHookPtr(m_pOnQuestComplete, "QuestComplete");
GetScriptHookPtr(m_pOnQuestChooseReward, "QuestChooseReward");
GetScriptHookPtr(m_pOnGOQuestChooseReward, "GOQuestChooseReward");
GetScriptHookPtr(m_pOnNPCDialogStatus, "NPCDialogStatus");
GetScriptHookPtr(m_pOnGODialogStatus, "GODialogStatus");
GetScriptHookPtr(m_pOnGOUse, "GOUse");
GetScriptHookPtr(m_pOnItemUse, "ItemUse");
GetScriptHookPtr(m_pOnAreaTrigger, "AreaTrigger");
GetScriptHookPtr(m_pOnProcessEvent, "ProcessEvent");
GetScriptHookPtr(m_pOnEffectDummyCreature, "EffectDummyCreature");
GetScriptHookPtr(m_pOnEffectDummyGO, "EffectDummyGameObject");
GetScriptHookPtr(m_pOnEffectDummyItem, "EffectDummyItem");
GetScriptHookPtr(m_pOnAuraDummy, "AuraDummy");
if (m_pOnInitScriptLibrary)
m_pOnInitScriptLibrary();
if (m_pGetScriptLibraryVersion)
sWorld.SetScriptsVersion(m_pGetScriptLibraryVersion());
return true;
}
void ScriptMgr::UnloadScriptLibrary()
{
if (!m_hScriptLib)
return;
if (m_pOnFreeScriptLibrary)
m_pOnFreeScriptLibrary();
MANGOS_CLOSE_LIBRARY(m_hScriptLib);
m_hScriptLib = NULL;
m_pOnInitScriptLibrary = NULL;
m_pOnFreeScriptLibrary = NULL;
m_pGetScriptLibraryVersion = NULL;
m_pGetCreatureAI = NULL;
m_pCreateInstanceData = NULL;
m_pOnGossipHello = NULL;
m_pOnGOGossipHello = NULL;
m_pOnGossipSelect = NULL;
m_pOnGOGossipSelect = NULL;
m_pOnGossipSelectWithCode = NULL;
m_pOnGOGossipSelectWithCode = NULL;
m_pOnQuestAccept = NULL;
m_pOnGOQuestAccept = NULL;
m_pOnItemQuestAccept = NULL;
m_pOnQuestComplete = NULL;
m_pOnQuestChooseReward = NULL;
m_pOnGOQuestChooseReward = NULL;
m_pOnNPCDialogStatus = NULL;
m_pOnGODialogStatus = NULL;
m_pOnGOUse = NULL;
m_pOnItemUse = NULL;
m_pOnAreaTrigger = NULL;
m_pOnProcessEvent = NULL;
m_pOnEffectDummyCreature = NULL;
m_pOnEffectDummyGO = NULL;
m_pOnEffectDummyItem = NULL;
m_pOnAuraDummy = NULL;
}
uint32 GetAreaTriggerScriptId(uint32 triggerId) uint32 GetAreaTriggerScriptId(uint32 triggerId)
{ {
return sScriptMgr.GetAreaTriggerScriptId(triggerId); return sScriptMgr.GetAreaTriggerScriptId(triggerId);
@ -892,8 +1145,3 @@ uint32 GetScriptId(const char *name)
{ {
return sScriptMgr.GetScriptId(name); return sScriptMgr.GetScriptId(name);
} }
ScriptMgr::ScriptNameMap const& GetScriptNames()
{
return sScriptMgr.GetScriptNames();
}

View file

@ -22,6 +22,21 @@
#include "Common.h" #include "Common.h"
#include "Policies/Singleton.h" #include "Policies/Singleton.h"
#include "ObjectGuid.h" #include "ObjectGuid.h"
#include "DBCEnums.h"
struct AreaTriggerEntry;
class Aura;
class Creature;
class CreatureAI;
class GameObject;
class InstanceData;
class Item;
class Map;
class Player;
class Quest;
class SpellCastTargets;
class Unit;
class WorldObject;
enum eScriptCommand enum eScriptCommand
{ {
@ -294,8 +309,6 @@ public:
ScriptMgr(); ScriptMgr();
~ScriptMgr(); ~ScriptMgr();
typedef std::vector<std::string> ScriptNameMap;
void LoadGameObjectScripts(); void LoadGameObjectScripts();
void LoadQuestEndScripts(); void LoadQuestEndScripts();
void LoadQuestStartScripts(); void LoadQuestStartScripts();
@ -313,13 +326,47 @@ public:
uint32 GetAreaTriggerScriptId(uint32 triggerId) const; uint32 GetAreaTriggerScriptId(uint32 triggerId) const;
uint32 GetEventIdScriptId(uint32 eventId) const; uint32 GetEventIdScriptId(uint32 eventId) const;
ScriptNameMap const& GetScriptNames() { return m_scriptNames; }
const char* GetScriptName(uint32 id) const { return id < m_scriptNames.size() ? m_scriptNames[id].c_str() : ""; } const char* GetScriptName(uint32 id) const { return id < m_scriptNames.size() ? m_scriptNames[id].c_str() : ""; }
uint32 GetScriptId(const char *name) const; uint32 GetScriptId(const char *name) const;
bool LoadScriptLibrary(const char* libName);
void UnloadScriptLibrary();
CreatureAI* GetCreatureAI(Creature* pCreature);
InstanceData* CreateInstanceData(Map* pMap);
bool OnGossipHello(Player* pPlayer, Creature* pCreature);
bool OnGossipHello(Player* pPlayer, GameObject* pGameObject);
bool OnGossipSelect(Player* pPlayer, Creature* pCreature, uint32 sender, uint32 action, const char* code);
bool OnGossipSelect(Player* pPlayer, GameObject* pGameObject, uint32 sender, uint32 action, const char* code);
bool OnQuestAccept(Player* pPlayer, Creature* pCreature, Quest const* pQuest);
bool OnQuestAccept(Player* pPlayer, GameObject* pGameObject, Quest const* pQuest);
bool OnQuestAccept(Player* pPlayer, Item* pItem, Quest const* pQuest);
bool OnQuestComplete(Player* pPlayer, Creature* pCreature, Quest const* pQuest);
bool OnQuestChooseReward(Player* pPlayer, Creature* pCreature, Quest const* pQuest, uint32 opt);
bool OnQuestChooseReward(Player* pPlayer, GameObject* pGameObject, Quest const* pQuest, uint32 opt);
uint32 OnDialogStatus(Player* pPlayer, Creature* pCreature);
uint32 OnDialogStatus(Player* pPlayer, GameObject* pGameObject);
bool OnGameObjectUse(Player* pPlayer, GameObject* pGameObject);
bool OnItemUse(Player* pPlayer, Item* pItem, SpellCastTargets const& targets);
bool OnAreaTrigger(Player* pPlayer, AreaTriggerEntry const* atEntry);
bool OnProcessEvent(uint32 eventId, WorldObject* pSource, WorldObject* pTarget, bool isStart);
bool OnEffectDummy(Unit* pCaster, uint32 spellId, SpellEffectIndex effIndex, Creature* pTarget);
bool OnEffectDummy(Unit* pCaster, uint32 spellId, SpellEffectIndex effIndex, GameObject* pTarget);
bool OnEffectDummy(Unit* pCaster, uint32 spellId, SpellEffectIndex effIndex, Item* pTarget);
bool OnAuraDummy(Aura const* pAura, bool apply);
private: private:
void LoadScripts(ScriptMapMap& scripts, const char* tablename); void LoadScripts(ScriptMapMap& scripts, const char* tablename);
void CheckScriptTexts(ScriptMapMap const& scripts, std::set<int32>& ids); void CheckScriptTexts(ScriptMapMap const& scripts, std::set<int32>& ids);
template<class T>
void GetScriptHookPtr(T& ptr, const char* name)
{
ptr = (T)MANGOS_GET_PROC_ADDR(m_hScriptLib, name);
}
typedef std::vector<std::string> ScriptNameMap;
typedef UNORDERED_MAP<uint32, uint32> AreaTriggerScriptMap; typedef UNORDERED_MAP<uint32, uint32> AreaTriggerScriptMap;
typedef UNORDERED_MAP<uint32, uint32> EventIdScriptMap; typedef UNORDERED_MAP<uint32, uint32> EventIdScriptMap;
@ -327,6 +374,37 @@ private:
EventIdScriptMap m_EventIdScripts; EventIdScriptMap m_EventIdScripts;
ScriptNameMap m_scriptNames; ScriptNameMap m_scriptNames;
MANGOS_LIBRARY_HANDLE m_hScriptLib;
void (MANGOS_IMPORT* m_pOnInitScriptLibrary)();
void (MANGOS_IMPORT* m_pOnFreeScriptLibrary)();
const char* (MANGOS_IMPORT* m_pGetScriptLibraryVersion)();
CreatureAI* (MANGOS_IMPORT* m_pGetCreatureAI) (Creature*);
InstanceData* (MANGOS_IMPORT* m_pCreateInstanceData) (Map*);
bool (MANGOS_IMPORT* m_pOnGossipHello) (Player*, Creature*);
bool (MANGOS_IMPORT* m_pOnGOGossipHello) (Player*, GameObject*);
bool (MANGOS_IMPORT* m_pOnGossipSelect) (Player*, Creature*, uint32, uint32);
bool (MANGOS_IMPORT* m_pOnGOGossipSelect) (Player*, GameObject*, uint32, uint32);
bool (MANGOS_IMPORT* m_pOnGossipSelectWithCode) (Player*, Creature*, uint32, uint32, const char*);
bool (MANGOS_IMPORT* m_pOnGOGossipSelectWithCode) (Player*, GameObject*, uint32, uint32, const char*);
bool (MANGOS_IMPORT* m_pOnQuestAccept) (Player*, Creature*, Quest const*);
bool (MANGOS_IMPORT* m_pOnGOQuestAccept) (Player*, GameObject*, Quest const*);
bool (MANGOS_IMPORT* m_pOnItemQuestAccept) (Player*, Item*pItem, Quest const*);
bool (MANGOS_IMPORT* m_pOnQuestComplete) (Player*, Creature* pCreature, Quest const*);
bool (MANGOS_IMPORT* m_pOnQuestChooseReward) (Player*, Creature*, Quest const*, uint32);
bool (MANGOS_IMPORT* m_pOnGOQuestChooseReward) (Player*, GameObject*, Quest const*, uint32);
uint32 (MANGOS_IMPORT* m_pOnNPCDialogStatus) (Player*, Creature*);
uint32 (MANGOS_IMPORT* m_pOnGODialogStatus) (Player*, GameObject*);
bool (MANGOS_IMPORT* m_pOnGOUse) (Player*, GameObject*);
bool (MANGOS_IMPORT* m_pOnItemUse) (Player*, Item*, SpellCastTargets const&);
bool (MANGOS_IMPORT* m_pOnAreaTrigger) (Player*, AreaTriggerEntry const*);
bool (MANGOS_IMPORT* m_pOnProcessEvent)(uint32, WorldObject*, WorldObject*, bool);
bool (MANGOS_IMPORT* m_pOnEffectDummyCreature) (Unit*, uint32, SpellEffectIndex, Creature*);
bool (MANGOS_IMPORT* m_pOnEffectDummyGO) (Unit*, uint32, SpellEffectIndex, GameObject*);
bool (MANGOS_IMPORT* m_pOnEffectDummyItem) (Unit*, uint32, SpellEffectIndex, Item*);
bool (MANGOS_IMPORT* m_pOnAuraDummy) (Aura const*, bool);
}; };
#define sScriptMgr MaNGOS::Singleton<ScriptMgr>::Instance() #define sScriptMgr MaNGOS::Singleton<ScriptMgr>::Instance()
@ -334,6 +412,5 @@ private:
MANGOS_DLL_SPEC uint32 GetAreaTriggerScriptId(uint32 triggerId); MANGOS_DLL_SPEC uint32 GetAreaTriggerScriptId(uint32 triggerId);
MANGOS_DLL_SPEC uint32 GetEventIdScriptId(uint32 eventId); MANGOS_DLL_SPEC uint32 GetEventIdScriptId(uint32 eventId);
MANGOS_DLL_SPEC uint32 GetScriptId(const char *name); MANGOS_DLL_SPEC uint32 GetScriptId(const char *name);
MANGOS_DLL_SPEC ScriptMgr::ScriptNameMap const& GetScriptNames();
#endif #endif

View file

@ -39,7 +39,7 @@
#include "Formulas.h" #include "Formulas.h"
#include "BattleGround.h" #include "BattleGround.h"
#include "CreatureAI.h" #include "CreatureAI.h"
#include "ScriptCalls.h" #include "ScriptMgr.h"
#include "Util.h" #include "Util.h"
#include "GridNotifiers.h" #include "GridNotifiers.h"
#include "GridNotifiersImpl.h" #include "GridNotifiersImpl.h"
@ -1903,7 +1903,7 @@ void Aura::TriggerSpell()
{ {
if (Unit* caster = GetCaster()) if (Unit* caster = GetCaster())
{ {
if (triggerTarget->GetTypeId() != TYPEID_UNIT || !Script->EffectDummyCreature(caster, GetId(), GetEffIndex(), (Creature*)triggerTarget)) if (triggerTarget->GetTypeId() != TYPEID_UNIT || !sScriptMgr.OnEffectDummy(caster, GetId(), GetEffIndex(), (Creature*)triggerTarget))
sLog.outError("Aura::TriggerSpell: Spell %u have 0 in EffectTriggered[%d], not handled custom case?",GetId(),GetEffIndex()); sLog.outError("Aura::TriggerSpell: Spell %u have 0 in EffectTriggered[%d], not handled custom case?",GetId(),GetEffIndex());
} }
} }
@ -2804,7 +2804,7 @@ void Aura::HandleAuraDummy(bool apply, bool Real)
// script has to "handle with care", only use where data are not ok to use in the above code. // script has to "handle with care", only use where data are not ok to use in the above code.
if (target->GetTypeId() == TYPEID_UNIT) if (target->GetTypeId() == TYPEID_UNIT)
Script->EffectAuraDummy(this, apply); sScriptMgr.OnAuraDummy(this, apply);
} }
void Aura::HandleAuraMounted(bool apply, bool Real) void Aura::HandleAuraMounted(bool apply, bool Real)

View file

@ -51,7 +51,6 @@
#include "VMapFactory.h" #include "VMapFactory.h"
#include "Util.h" #include "Util.h"
#include "TemporarySummon.h" #include "TemporarySummon.h"
#include "ScriptCalls.h"
#include "ScriptMgr.h" #include "ScriptMgr.h"
#include "SkillDiscovery.h" #include "SkillDiscovery.h"
#include "Formulas.h" #include "Formulas.h"
@ -2697,11 +2696,11 @@ void Spell::EffectDummy(SpellEffectIndex eff_idx)
// Script based implementation. Must be used only for not good for implementation in core spell effects // Script based implementation. Must be used only for not good for implementation in core spell effects
// So called only for not processed cases // So called only for not processed cases
if (gameObjTarget) if (gameObjTarget)
Script->EffectDummyGameObj(m_caster, m_spellInfo->Id, eff_idx, gameObjTarget); sScriptMgr.OnEffectDummy(m_caster, m_spellInfo->Id, eff_idx, gameObjTarget);
else if (unitTarget && unitTarget->GetTypeId()==TYPEID_UNIT) else if (unitTarget && unitTarget->GetTypeId() == TYPEID_UNIT)
Script->EffectDummyCreature(m_caster, m_spellInfo->Id, eff_idx, (Creature*)unitTarget); sScriptMgr.OnEffectDummy(m_caster, m_spellInfo->Id, eff_idx, (Creature*)unitTarget);
else if (itemTarget) else if (itemTarget)
Script->EffectDummyItem(m_caster, m_spellInfo->Id, eff_idx, itemTarget); sScriptMgr.OnEffectDummy(m_caster, m_spellInfo->Id, eff_idx, itemTarget);
} }
void Spell::EffectTriggerSpellWithValue(SpellEffectIndex eff_idx) void Spell::EffectTriggerSpellWithValue(SpellEffectIndex eff_idx)
@ -3304,7 +3303,7 @@ void Spell::EffectSendEvent(SpellEffectIndex effectIndex)
*/ */
DEBUG_FILTER_LOG(LOG_FILTER_SPELL_CAST, "Spell ScriptStart %u for spellid %u in EffectSendEvent ", m_spellInfo->EffectMiscValue[effectIndex], m_spellInfo->Id); DEBUG_FILTER_LOG(LOG_FILTER_SPELL_CAST, "Spell ScriptStart %u for spellid %u in EffectSendEvent ", m_spellInfo->EffectMiscValue[effectIndex], m_spellInfo->Id);
if (!Script->ProcessEventId(m_spellInfo->EffectMiscValue[effectIndex], m_caster, focusObject, true)) if (!sScriptMgr.OnProcessEvent(m_spellInfo->EffectMiscValue[effectIndex], m_caster, focusObject, true))
m_caster->GetMap()->ScriptsStart(sEventScripts, m_spellInfo->EffectMiscValue[effectIndex], m_caster, focusObject); m_caster->GetMap()->ScriptsStart(sEventScripts, m_spellInfo->EffectMiscValue[effectIndex], m_caster, focusObject);
} }

View file

@ -25,7 +25,7 @@
#include "Log.h" #include "Log.h"
#include "Opcodes.h" #include "Opcodes.h"
#include "Spell.h" #include "Spell.h"
#include "ScriptCalls.h" #include "ScriptMgr.h"
#include "Totem.h" #include "Totem.h"
#include "SpellAuras.h" #include "SpellAuras.h"
@ -177,7 +177,7 @@ void WorldSession::HandleUseItemOpcode(WorldPacket& recvPacket)
} }
//Note: If script stop casting it must send appropriate data to client to prevent stuck item in gray state. //Note: If script stop casting it must send appropriate data to client to prevent stuck item in gray state.
if(!Script->ItemUse(pUser,pItem,targets)) if (!sScriptMgr.OnItemUse(pUser, pItem, targets))
{ {
// no script or script not process request by self // no script or script not process request by self
pUser->CastItemUseSpell(pItem,targets,cast_count,glyphIndex); pUser->CastItemUseSpell(pItem,targets,cast_count,glyphIndex);

View file

@ -27,7 +27,6 @@
#include "WorldPacket.h" #include "WorldPacket.h"
#include "DBCStores.h" #include "DBCStores.h"
#include "ProgressBar.h" #include "ProgressBar.h"
#include "ScriptCalls.h"
#include "ScriptMgr.h" #include "ScriptMgr.h"
void MapManager::LoadTransports() void MapManager::LoadTransports()
@ -579,7 +578,7 @@ void Transport::DoEventIfAny(WayPointMap::value_type const& node, bool departure
{ {
DEBUG_FILTER_LOG(LOG_FILTER_TRANSPORT_MOVES, "Taxi %s event %u of node %u of %s \"%s\") path", departure ? "departure" : "arrival", eventid, node.first, GetGuidStr().c_str(), GetName()); DEBUG_FILTER_LOG(LOG_FILTER_TRANSPORT_MOVES, "Taxi %s event %u of node %u of %s \"%s\") path", departure ? "departure" : "arrival", eventid, node.first, GetGuidStr().c_str(), GetName());
if (!Script->ProcessEventId(eventid, this, this, departure)) if (!sScriptMgr.OnProcessEvent(eventid, this, this, departure))
GetMap()->ScriptsStart(sEventScripts, eventid, this, this); GetMap()->ScriptsStart(sEventScripts, eventid, this, this);
} }
} }

View file

@ -28,7 +28,6 @@
#include "Creature.h" #include "Creature.h"
#include "Formulas.h" #include "Formulas.h"
#include "CreatureAI.h" #include "CreatureAI.h"
#include "ScriptCalls.h"
#include "Util.h" #include "Util.h"
pAuraProcHandler AuraProcHandler[TOTAL_AURAS]= pAuraProcHandler AuraProcHandler[TOTAL_AURAS]=

View file

@ -39,7 +39,7 @@ alter table creature_movement add `wpguid` int(11) default '0';
#include "CreatureAI.h" #include "CreatureAI.h"
#include "WaypointManager.h" #include "WaypointManager.h"
#include "WorldPacket.h" #include "WorldPacket.h"
#include "ScriptCalls.h" #include "ScriptMgr.h"
#include <cassert> #include <cassert>
@ -435,7 +435,7 @@ void FlightPathMovementGenerator::DoEventIfAny(Player& player, TaxiPathNodeEntry
{ {
DEBUG_FILTER_LOG(LOG_FILTER_AI_AND_MOVEGENSS, "Taxi %s event %u of node %u of path %u for player %s", departure ? "departure" : "arrival", eventid, node.index, node.path, player.GetName()); DEBUG_FILTER_LOG(LOG_FILTER_AI_AND_MOVEGENSS, "Taxi %s event %u of node %u of path %u for player %s", departure ? "departure" : "arrival", eventid, node.index, node.path, player.GetName());
if (!Script->ProcessEventId(eventid, &player, &player, departure)) if (!sScriptMgr.OnProcessEvent(eventid, &player, &player, departure))
player.GetMap()->ScriptsStart(sEventScripts, eventid, &player, &player); player.GetMap()->ScriptsStart(sEventScripts, eventid, &player, &player);
} }
} }

View file

@ -23,6 +23,7 @@
#include "World.h" #include "World.h"
#include "Database/DatabaseEnv.h" #include "Database/DatabaseEnv.h"
#include "Config/Config.h" #include "Config/Config.h"
#include "Platform/Define.h"
#include "SystemConfig.h" #include "SystemConfig.h"
#include "Log.h" #include "Log.h"
#include "Opcodes.h" #include "Opcodes.h"
@ -44,7 +45,6 @@
#include "LootMgr.h" #include "LootMgr.h"
#include "ItemEnchantmentMgr.h" #include "ItemEnchantmentMgr.h"
#include "MapManager.h" #include "MapManager.h"
#include "ScriptCalls.h"
#include "ScriptMgr.h" #include "ScriptMgr.h"
#include "CreatureAIRegistry.h" #include "CreatureAIRegistry.h"
#include "Policies/SingletonImp.h" #include "Policies/SingletonImp.h"
@ -1250,11 +1250,7 @@ void World::SetInitialWorldSettings()
sEventAIMgr.LoadCreatureEventAI_Scripts(); sEventAIMgr.LoadCreatureEventAI_Scripts();
sLog.outString( "Initializing Scripts..." ); sLog.outString( "Initializing Scripts..." );
if(!LoadScriptingModule()) sScriptMgr.LoadScriptLibrary(MANGOS_SCRIPT_NAME);
{
Log::WaitBeforeContinueIfNeed();
exit(1); // Error message displayed in function already
}
///- Initialize game time and timers ///- Initialize game time and timers
sLog.outString( "DEBUG:: Initialize game time and timers" ); sLog.outString( "DEBUG:: Initialize game time and timers" );

View file

@ -24,7 +24,6 @@
#include "Language.h" #include "Language.h"
#include "Log.h" #include "Log.h"
#include "World.h" #include "World.h"
#include "ScriptCalls.h"
#include "ObjectMgr.h" #include "ObjectMgr.h"
#include "WorldSession.h" #include "WorldSession.h"
#include "Config/Config.h" #include "Config/Config.h"

View file

@ -40,7 +40,6 @@ mangos_worldd_SOURCES = \
## Link world daemon against the shared library ## Link world daemon against the shared library
mangos_worldd_LDADD = \ mangos_worldd_LDADD = \
../bindings/universal/libmangosscript.la \
../game/libmangosgame.a \ ../game/libmangosgame.a \
../game/vmap/libmangosvmaps.a \ ../game/vmap/libmangosvmaps.a \
../shared/Database/libmangosdatabase.a \ ../shared/Database/libmangosdatabase.a \
@ -51,7 +50,7 @@ mangos_worldd_LDADD = \
../../dep/src/g3dlite/libg3dlite.a \ ../../dep/src/g3dlite/libg3dlite.a \
../../dep/src/gsoap/libgsoap.a ../../dep/src/gsoap/libgsoap.a
mangos_worldd_LDFLAGS = -L../../dep/src/g3dlite -L../../dep/src/gsoap -L../bindings/universal/ -L$(libdir) $(MANGOS_LIBS) -export-dynamic mangos_worldd_LDFLAGS = -L../../dep/src/g3dlite -L../../dep/src/gsoap -L$(libdir) $(MANGOS_LIBS) -export-dynamic
## Additional files to include when running 'make dist' ## Additional files to include when running 'make dist'
# Include world daemon configuration # Include world daemon configuration

View file

@ -34,10 +34,10 @@
#include "Database/DatabaseEnv.h" #include "Database/DatabaseEnv.h"
#include "CliRunnable.h" #include "CliRunnable.h"
#include "RASocket.h" #include "RASocket.h"
#include "ScriptCalls.h"
#include "Util.h" #include "Util.h"
#include "revision_sql.h" #include "revision_sql.h"
#include "MaNGOSsoap.h" #include "MaNGOSsoap.h"
#include "DBCStores.h"
#include <ace/OS_NS_signal.h> #include <ace/OS_NS_signal.h>
#include <ace/TP_Reactor.h> #include <ace/TP_Reactor.h>
@ -403,10 +403,6 @@ int Master::Run()
delete cliThread; delete cliThread;
} }
// for some unknown reason, unloading scripts here and not in worldrunnable
// fixes a memory leak related to detaching threads from the module
UnloadScriptingModule();
///- Exit the process with specified return value ///- Exit the process with specified return value
return World::GetExitCode(); return World::GetExitCode();
} }

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__ #ifndef __REVISION_NR_H__
#define __REVISION_NR_H__ #define __REVISION_NR_H__
#define REVISION_NR "10934" #define REVISION_NR "10935"
#endif // __REVISION_NR_H__ #endif // __REVISION_NR_H__

View file

@ -473,7 +473,6 @@
<ClCompile Include="..\..\src\game\RandomMovementGenerator.cpp" /> <ClCompile Include="..\..\src\game\RandomMovementGenerator.cpp" />
<ClCompile Include="..\..\src\game\ReactorAI.cpp" /> <ClCompile Include="..\..\src\game\ReactorAI.cpp" />
<ClCompile Include="..\..\src\game\ReputationMgr.cpp" /> <ClCompile Include="..\..\src\game\ReputationMgr.cpp" />
<ClCompile Include="..\..\src\game\ScriptCalls.cpp" />
<ClCompile Include="..\..\src\game\ScriptMgr.cpp" /> <ClCompile Include="..\..\src\game\ScriptMgr.cpp" />
<ClCompile Include="..\..\src\game\SkillDiscovery.cpp" /> <ClCompile Include="..\..\src\game\SkillDiscovery.cpp" />
<ClCompile Include="..\..\src\game\SkillExtraItems.cpp" /> <ClCompile Include="..\..\src\game\SkillExtraItems.cpp" />
@ -616,7 +615,6 @@
<ClInclude Include="..\..\src\game\RandomMovementGenerator.h" /> <ClInclude Include="..\..\src\game\RandomMovementGenerator.h" />
<ClInclude Include="..\..\src\game\ReactorAI.h" /> <ClInclude Include="..\..\src\game\ReactorAI.h" />
<ClInclude Include="..\..\src\game\ReputationMgr.h" /> <ClInclude Include="..\..\src\game\ReputationMgr.h" />
<ClInclude Include="..\..\src\game\ScriptCalls.h" />
<ClInclude Include="..\..\src\game\ScriptMgr.h" /> <ClInclude Include="..\..\src\game\ScriptMgr.h" />
<ClInclude Include="..\..\src\game\SharedDefines.h" /> <ClInclude Include="..\..\src\game\SharedDefines.h" />
<ClInclude Include="..\..\src\game\SkillDiscovery.h" /> <ClInclude Include="..\..\src\game\SkillDiscovery.h" />

View file

@ -195,9 +195,6 @@
<ClCompile Include="..\..\src\game\QuestHandler.cpp"> <ClCompile Include="..\..\src\game\QuestHandler.cpp">
<Filter>World/Handlers</Filter> <Filter>World/Handlers</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\src\game\ScriptCalls.cpp">
<Filter>World/Handlers</Filter>
</ClCompile>
<ClCompile Include="..\..\src\game\ScriptMgr.cpp"> <ClCompile Include="..\..\src\game\ScriptMgr.cpp">
<Filter>World/Handlers</Filter> <Filter>World/Handlers</Filter>
</ClCompile> </ClCompile>
@ -597,9 +594,6 @@
<ClInclude Include="..\..\src\game\QuestDef.h"> <ClInclude Include="..\..\src\game\QuestDef.h">
<Filter>World/Handlers</Filter> <Filter>World/Handlers</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\..\src\game\ScriptCalls.h">
<Filter>World/Handlers</Filter>
</ClInclude>
<ClInclude Include="..\..\src\game\ScriptMgr.h"> <ClInclude Include="..\..\src\game\ScriptMgr.h">
<Filter>World/Handlers</Filter> <Filter>World/Handlers</Filter>
</ClInclude> </ClInclude>

View file

@ -1,5 +1,5 @@
Microsoft Visual Studio Solution File, Format Version 11.00 Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 10 # Visual Studio 2010
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "game", "VC100\game.vcxproj", "{1DC6C4DA-A028-41F3-877D-D5400C594F88}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "game", "VC100\game.vcxproj", "{1DC6C4DA-A028-41F3-877D-D5400C594F88}"
ProjectSection(ProjectDependencies) = postProject ProjectSection(ProjectDependencies) = postProject
{90297C34-F231-4DF4-848E-A74BCC0E40ED} = {90297C34-F231-4DF4-848E-A74BCC0E40ED} {90297C34-F231-4DF4-848E-A74BCC0E40ED} = {90297C34-F231-4DF4-848E-A74BCC0E40ED}
@ -34,11 +34,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "realmd", "VC100\realmd.vcxp
{90297C34-F231-4DF4-848E-A74BCC0E40ED} = {90297C34-F231-4DF4-848E-A74BCC0E40ED} {90297C34-F231-4DF4-848E-A74BCC0E40ED} = {90297C34-F231-4DF4-848E-A74BCC0E40ED}
EndProjectSection EndProjectSection
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "script", "VC100\script.vcxproj", "{4205C8A9-79B7-4354-8064-F05FB9CA0C96}"
ProjectSection(ProjectDependencies) = postProject
{A3A04E47-43A2-4C08-90B3-029CEF558594} = {A3A04E47-43A2-4C08-90B3-029CEF558594}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "g3dlite", "VC100\g3dlite.vcxproj", "{8072769E-CF10-48BF-B9E1-12752A5DAC6E}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "g3dlite", "VC100\g3dlite.vcxproj", "{8072769E-CF10-48BF-B9E1-12752A5DAC6E}"
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genrevision", "VC100\genrevision.vcxproj", "{803F488E-4C5A-4866-8D5C-1E6C03C007C2}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genrevision", "VC100\genrevision.vcxproj", "{803F488E-4C5A-4866-8D5C-1E6C03C007C2}"
@ -64,100 +59,88 @@ Global
GlobalSection(ProjectConfigurationPlatforms) = postSolution GlobalSection(ProjectConfigurationPlatforms) = postSolution
{1DC6C4DA-A028-41F3-877D-D5400C594F88}.Debug_NoPCH|Win32.ActiveCfg = Debug_NoPCH|Win32 {1DC6C4DA-A028-41F3-877D-D5400C594F88}.Debug_NoPCH|Win32.ActiveCfg = Debug_NoPCH|Win32
{1DC6C4DA-A028-41F3-877D-D5400C594F88}.Debug_NoPCH|Win32.Build.0 = Debug_NoPCH|Win32 {1DC6C4DA-A028-41F3-877D-D5400C594F88}.Debug_NoPCH|Win32.Build.0 = Debug_NoPCH|Win32
{1DC6C4DA-A028-41F3-877D-D5400C594F88}.Debug_NoPCH|x64.ActiveCfg = Debug_NoPCH|X64 {1DC6C4DA-A028-41F3-877D-D5400C594F88}.Debug_NoPCH|x64.ActiveCfg = Debug_NoPCH|x64
{1DC6C4DA-A028-41F3-877D-D5400C594F88}.Debug_NoPCH|x64.Build.0 = Debug_NoPCH|X64 {1DC6C4DA-A028-41F3-877D-D5400C594F88}.Debug_NoPCH|x64.Build.0 = Debug_NoPCH|x64
{1DC6C4DA-A028-41F3-877D-D5400C594F88}.Debug|Win32.ActiveCfg = Debug|Win32 {1DC6C4DA-A028-41F3-877D-D5400C594F88}.Debug|Win32.ActiveCfg = Debug|Win32
{1DC6C4DA-A028-41F3-877D-D5400C594F88}.Debug|Win32.Build.0 = Debug|Win32 {1DC6C4DA-A028-41F3-877D-D5400C594F88}.Debug|Win32.Build.0 = Debug|Win32
{1DC6C4DA-A028-41F3-877D-D5400C594F88}.Debug|x64.ActiveCfg = Debug|X64 {1DC6C4DA-A028-41F3-877D-D5400C594F88}.Debug|x64.ActiveCfg = Debug|x64
{1DC6C4DA-A028-41F3-877D-D5400C594F88}.Debug|x64.Build.0 = Debug|X64 {1DC6C4DA-A028-41F3-877D-D5400C594F88}.Debug|x64.Build.0 = Debug|x64
{1DC6C4DA-A028-41F3-877D-D5400C594F88}.Release|Win32.ActiveCfg = Release|Win32 {1DC6C4DA-A028-41F3-877D-D5400C594F88}.Release|Win32.ActiveCfg = Release|Win32
{1DC6C4DA-A028-41F3-877D-D5400C594F88}.Release|Win32.Build.0 = Release|Win32 {1DC6C4DA-A028-41F3-877D-D5400C594F88}.Release|Win32.Build.0 = Release|Win32
{1DC6C4DA-A028-41F3-877D-D5400C594F88}.Release|x64.ActiveCfg = Release|X64 {1DC6C4DA-A028-41F3-877D-D5400C594F88}.Release|x64.ActiveCfg = Release|x64
{1DC6C4DA-A028-41F3-877D-D5400C594F88}.Release|x64.Build.0 = Release|X64 {1DC6C4DA-A028-41F3-877D-D5400C594F88}.Release|x64.Build.0 = Release|x64
{90297C34-F231-4DF4-848E-A74BCC0E40ED}.Debug_NoPCH|Win32.ActiveCfg = Debug_NoPCH|Win32 {90297C34-F231-4DF4-848E-A74BCC0E40ED}.Debug_NoPCH|Win32.ActiveCfg = Debug_NoPCH|Win32
{90297C34-F231-4DF4-848E-A74BCC0E40ED}.Debug_NoPCH|Win32.Build.0 = Debug_NoPCH|Win32 {90297C34-F231-4DF4-848E-A74BCC0E40ED}.Debug_NoPCH|Win32.Build.0 = Debug_NoPCH|Win32
{90297C34-F231-4DF4-848E-A74BCC0E40ED}.Debug_NoPCH|x64.ActiveCfg = Debug_NoPCH|X64 {90297C34-F231-4DF4-848E-A74BCC0E40ED}.Debug_NoPCH|x64.ActiveCfg = Debug_NoPCH|x64
{90297C34-F231-4DF4-848E-A74BCC0E40ED}.Debug_NoPCH|x64.Build.0 = Debug_NoPCH|X64 {90297C34-F231-4DF4-848E-A74BCC0E40ED}.Debug_NoPCH|x64.Build.0 = Debug_NoPCH|x64
{90297C34-F231-4DF4-848E-A74BCC0E40ED}.Debug|Win32.ActiveCfg = Debug|Win32 {90297C34-F231-4DF4-848E-A74BCC0E40ED}.Debug|Win32.ActiveCfg = Debug|Win32
{90297C34-F231-4DF4-848E-A74BCC0E40ED}.Debug|Win32.Build.0 = Debug|Win32 {90297C34-F231-4DF4-848E-A74BCC0E40ED}.Debug|Win32.Build.0 = Debug|Win32
{90297C34-F231-4DF4-848E-A74BCC0E40ED}.Debug|x64.ActiveCfg = Debug|X64 {90297C34-F231-4DF4-848E-A74BCC0E40ED}.Debug|x64.ActiveCfg = Debug|x64
{90297C34-F231-4DF4-848E-A74BCC0E40ED}.Debug|x64.Build.0 = Debug|X64 {90297C34-F231-4DF4-848E-A74BCC0E40ED}.Debug|x64.Build.0 = Debug|x64
{90297C34-F231-4DF4-848E-A74BCC0E40ED}.Release|Win32.ActiveCfg = Release|Win32 {90297C34-F231-4DF4-848E-A74BCC0E40ED}.Release|Win32.ActiveCfg = Release|Win32
{90297C34-F231-4DF4-848E-A74BCC0E40ED}.Release|Win32.Build.0 = Release|Win32 {90297C34-F231-4DF4-848E-A74BCC0E40ED}.Release|Win32.Build.0 = Release|Win32
{90297C34-F231-4DF4-848E-A74BCC0E40ED}.Release|x64.ActiveCfg = Release|X64 {90297C34-F231-4DF4-848E-A74BCC0E40ED}.Release|x64.ActiveCfg = Release|x64
{90297C34-F231-4DF4-848E-A74BCC0E40ED}.Release|x64.Build.0 = Release|X64 {90297C34-F231-4DF4-848E-A74BCC0E40ED}.Release|x64.Build.0 = Release|x64
{A3A04E47-43A2-4C08-90B3-029CEF558594}.Debug_NoPCH|Win32.ActiveCfg = Debug_NoPCH|Win32 {A3A04E47-43A2-4C08-90B3-029CEF558594}.Debug_NoPCH|Win32.ActiveCfg = Debug_NoPCH|Win32
{A3A04E47-43A2-4C08-90B3-029CEF558594}.Debug_NoPCH|Win32.Build.0 = Debug_NoPCH|Win32 {A3A04E47-43A2-4C08-90B3-029CEF558594}.Debug_NoPCH|Win32.Build.0 = Debug_NoPCH|Win32
{A3A04E47-43A2-4C08-90B3-029CEF558594}.Debug_NoPCH|x64.ActiveCfg = Debug_NoPCH|X64 {A3A04E47-43A2-4C08-90B3-029CEF558594}.Debug_NoPCH|x64.ActiveCfg = Debug_NoPCH|x64
{A3A04E47-43A2-4C08-90B3-029CEF558594}.Debug_NoPCH|x64.Build.0 = Debug_NoPCH|X64 {A3A04E47-43A2-4C08-90B3-029CEF558594}.Debug_NoPCH|x64.Build.0 = Debug_NoPCH|x64
{A3A04E47-43A2-4C08-90B3-029CEF558594}.Debug|Win32.ActiveCfg = Debug|Win32 {A3A04E47-43A2-4C08-90B3-029CEF558594}.Debug|Win32.ActiveCfg = Debug|Win32
{A3A04E47-43A2-4C08-90B3-029CEF558594}.Debug|Win32.Build.0 = Debug|Win32 {A3A04E47-43A2-4C08-90B3-029CEF558594}.Debug|Win32.Build.0 = Debug|Win32
{A3A04E47-43A2-4C08-90B3-029CEF558594}.Debug|x64.ActiveCfg = Debug|X64 {A3A04E47-43A2-4C08-90B3-029CEF558594}.Debug|x64.ActiveCfg = Debug|x64
{A3A04E47-43A2-4C08-90B3-029CEF558594}.Debug|x64.Build.0 = Debug|X64 {A3A04E47-43A2-4C08-90B3-029CEF558594}.Debug|x64.Build.0 = Debug|x64
{A3A04E47-43A2-4C08-90B3-029CEF558594}.Release|Win32.ActiveCfg = Release|Win32 {A3A04E47-43A2-4C08-90B3-029CEF558594}.Release|Win32.ActiveCfg = Release|Win32
{A3A04E47-43A2-4C08-90B3-029CEF558594}.Release|Win32.Build.0 = Release|Win32 {A3A04E47-43A2-4C08-90B3-029CEF558594}.Release|Win32.Build.0 = Release|Win32
{A3A04E47-43A2-4C08-90B3-029CEF558594}.Release|x64.ActiveCfg = Release|X64 {A3A04E47-43A2-4C08-90B3-029CEF558594}.Release|x64.ActiveCfg = Release|x64
{A3A04E47-43A2-4C08-90B3-029CEF558594}.Release|x64.Build.0 = Release|X64 {A3A04E47-43A2-4C08-90B3-029CEF558594}.Release|x64.Build.0 = Release|x64
{8F1DEA42-6A5B-4B62-839D-C141A7BFACF2}.Debug_NoPCH|Win32.ActiveCfg = Debug_NoPCH|Win32 {8F1DEA42-6A5B-4B62-839D-C141A7BFACF2}.Debug_NoPCH|Win32.ActiveCfg = Debug_NoPCH|Win32
{8F1DEA42-6A5B-4B62-839D-C141A7BFACF2}.Debug_NoPCH|Win32.Build.0 = Debug_NoPCH|Win32 {8F1DEA42-6A5B-4B62-839D-C141A7BFACF2}.Debug_NoPCH|Win32.Build.0 = Debug_NoPCH|Win32
{8F1DEA42-6A5B-4B62-839D-C141A7BFACF2}.Debug_NoPCH|x64.ActiveCfg = Debug_NoPCH|X64 {8F1DEA42-6A5B-4B62-839D-C141A7BFACF2}.Debug_NoPCH|x64.ActiveCfg = Debug_NoPCH|x64
{8F1DEA42-6A5B-4B62-839D-C141A7BFACF2}.Debug_NoPCH|x64.Build.0 = Debug_NoPCH|X64 {8F1DEA42-6A5B-4B62-839D-C141A7BFACF2}.Debug_NoPCH|x64.Build.0 = Debug_NoPCH|x64
{8F1DEA42-6A5B-4B62-839D-C141A7BFACF2}.Debug|Win32.ActiveCfg = Debug|Win32 {8F1DEA42-6A5B-4B62-839D-C141A7BFACF2}.Debug|Win32.ActiveCfg = Debug|Win32
{8F1DEA42-6A5B-4B62-839D-C141A7BFACF2}.Debug|Win32.Build.0 = Debug|Win32 {8F1DEA42-6A5B-4B62-839D-C141A7BFACF2}.Debug|Win32.Build.0 = Debug|Win32
{8F1DEA42-6A5B-4B62-839D-C141A7BFACF2}.Debug|x64.ActiveCfg = Debug|X64 {8F1DEA42-6A5B-4B62-839D-C141A7BFACF2}.Debug|x64.ActiveCfg = Debug|x64
{8F1DEA42-6A5B-4B62-839D-C141A7BFACF2}.Debug|x64.Build.0 = Debug|X64 {8F1DEA42-6A5B-4B62-839D-C141A7BFACF2}.Debug|x64.Build.0 = Debug|x64
{8F1DEA42-6A5B-4B62-839D-C141A7BFACF2}.Release|Win32.ActiveCfg = Release|Win32 {8F1DEA42-6A5B-4B62-839D-C141A7BFACF2}.Release|Win32.ActiveCfg = Release|Win32
{8F1DEA42-6A5B-4B62-839D-C141A7BFACF2}.Release|Win32.Build.0 = Release|Win32 {8F1DEA42-6A5B-4B62-839D-C141A7BFACF2}.Release|Win32.Build.0 = Release|Win32
{8F1DEA42-6A5B-4B62-839D-C141A7BFACF2}.Release|x64.ActiveCfg = Release|X64 {8F1DEA42-6A5B-4B62-839D-C141A7BFACF2}.Release|x64.ActiveCfg = Release|x64
{8F1DEA42-6A5B-4B62-839D-C141A7BFACF2}.Release|x64.Build.0 = Release|X64 {8F1DEA42-6A5B-4B62-839D-C141A7BFACF2}.Release|x64.Build.0 = Release|x64
{BF6F5D0E-33A5-4E23-9E7D-DD481B7B5B9E}.Debug_NoPCH|Win32.ActiveCfg = Debug_NoPCH|Win32 {BF6F5D0E-33A5-4E23-9E7D-DD481B7B5B9E}.Debug_NoPCH|Win32.ActiveCfg = Debug_NoPCH|Win32
{BF6F5D0E-33A5-4E23-9E7D-DD481B7B5B9E}.Debug_NoPCH|Win32.Build.0 = Debug_NoPCH|Win32 {BF6F5D0E-33A5-4E23-9E7D-DD481B7B5B9E}.Debug_NoPCH|Win32.Build.0 = Debug_NoPCH|Win32
{BF6F5D0E-33A5-4E23-9E7D-DD481B7B5B9E}.Debug_NoPCH|x64.ActiveCfg = Debug_NoPCH|X64 {BF6F5D0E-33A5-4E23-9E7D-DD481B7B5B9E}.Debug_NoPCH|x64.ActiveCfg = Debug_NoPCH|x64
{BF6F5D0E-33A5-4E23-9E7D-DD481B7B5B9E}.Debug_NoPCH|x64.Build.0 = Debug_NoPCH|X64 {BF6F5D0E-33A5-4E23-9E7D-DD481B7B5B9E}.Debug_NoPCH|x64.Build.0 = Debug_NoPCH|x64
{BF6F5D0E-33A5-4E23-9E7D-DD481B7B5B9E}.Debug|Win32.ActiveCfg = Debug|Win32 {BF6F5D0E-33A5-4E23-9E7D-DD481B7B5B9E}.Debug|Win32.ActiveCfg = Debug|Win32
{BF6F5D0E-33A5-4E23-9E7D-DD481B7B5B9E}.Debug|Win32.Build.0 = Debug|Win32 {BF6F5D0E-33A5-4E23-9E7D-DD481B7B5B9E}.Debug|Win32.Build.0 = Debug|Win32
{BF6F5D0E-33A5-4E23-9E7D-DD481B7B5B9E}.Debug|x64.ActiveCfg = Debug|X64 {BF6F5D0E-33A5-4E23-9E7D-DD481B7B5B9E}.Debug|x64.ActiveCfg = Debug|x64
{BF6F5D0E-33A5-4E23-9E7D-DD481B7B5B9E}.Debug|x64.Build.0 = Debug|X64 {BF6F5D0E-33A5-4E23-9E7D-DD481B7B5B9E}.Debug|x64.Build.0 = Debug|x64
{BF6F5D0E-33A5-4E23-9E7D-DD481B7B5B9E}.Release|Win32.ActiveCfg = Release|Win32 {BF6F5D0E-33A5-4E23-9E7D-DD481B7B5B9E}.Release|Win32.ActiveCfg = Release|Win32
{BF6F5D0E-33A5-4E23-9E7D-DD481B7B5B9E}.Release|Win32.Build.0 = Release|Win32 {BF6F5D0E-33A5-4E23-9E7D-DD481B7B5B9E}.Release|Win32.Build.0 = Release|Win32
{BF6F5D0E-33A5-4E23-9E7D-DD481B7B5B9E}.Release|x64.ActiveCfg = Release|X64 {BF6F5D0E-33A5-4E23-9E7D-DD481B7B5B9E}.Release|x64.ActiveCfg = Release|x64
{BF6F5D0E-33A5-4E23-9E7D-DD481B7B5B9E}.Release|x64.Build.0 = Release|X64 {BF6F5D0E-33A5-4E23-9E7D-DD481B7B5B9E}.Release|x64.Build.0 = Release|x64
{563E9905-3657-460C-AE63-0AC39D162E23}.Debug_NoPCH|Win32.ActiveCfg = Debug_NoPCH|Win32 {563E9905-3657-460C-AE63-0AC39D162E23}.Debug_NoPCH|Win32.ActiveCfg = Debug_NoPCH|Win32
{563E9905-3657-460C-AE63-0AC39D162E23}.Debug_NoPCH|Win32.Build.0 = Debug_NoPCH|Win32 {563E9905-3657-460C-AE63-0AC39D162E23}.Debug_NoPCH|Win32.Build.0 = Debug_NoPCH|Win32
{563E9905-3657-460C-AE63-0AC39D162E23}.Debug_NoPCH|x64.ActiveCfg = Debug_NoPCH|X64 {563E9905-3657-460C-AE63-0AC39D162E23}.Debug_NoPCH|x64.ActiveCfg = Debug_NoPCH|x64
{563E9905-3657-460C-AE63-0AC39D162E23}.Debug_NoPCH|x64.Build.0 = Debug_NoPCH|X64 {563E9905-3657-460C-AE63-0AC39D162E23}.Debug_NoPCH|x64.Build.0 = Debug_NoPCH|x64
{563E9905-3657-460C-AE63-0AC39D162E23}.Debug|Win32.ActiveCfg = Debug|Win32 {563E9905-3657-460C-AE63-0AC39D162E23}.Debug|Win32.ActiveCfg = Debug|Win32
{563E9905-3657-460C-AE63-0AC39D162E23}.Debug|Win32.Build.0 = Debug|Win32 {563E9905-3657-460C-AE63-0AC39D162E23}.Debug|Win32.Build.0 = Debug|Win32
{563E9905-3657-460C-AE63-0AC39D162E23}.Debug|x64.ActiveCfg = Debug|X64 {563E9905-3657-460C-AE63-0AC39D162E23}.Debug|x64.ActiveCfg = Debug|x64
{563E9905-3657-460C-AE63-0AC39D162E23}.Debug|x64.Build.0 = Debug|X64 {563E9905-3657-460C-AE63-0AC39D162E23}.Debug|x64.Build.0 = Debug|x64
{563E9905-3657-460C-AE63-0AC39D162E23}.Release|Win32.ActiveCfg = Release|Win32 {563E9905-3657-460C-AE63-0AC39D162E23}.Release|Win32.ActiveCfg = Release|Win32
{563E9905-3657-460C-AE63-0AC39D162E23}.Release|Win32.Build.0 = Release|Win32 {563E9905-3657-460C-AE63-0AC39D162E23}.Release|Win32.Build.0 = Release|Win32
{563E9905-3657-460C-AE63-0AC39D162E23}.Release|x64.ActiveCfg = Release|X64 {563E9905-3657-460C-AE63-0AC39D162E23}.Release|x64.ActiveCfg = Release|x64
{563E9905-3657-460C-AE63-0AC39D162E23}.Release|x64.Build.0 = Release|X64 {563E9905-3657-460C-AE63-0AC39D162E23}.Release|x64.Build.0 = Release|x64
{4205C8A9-79B7-4354-8064-F05FB9CA0C96}.Debug_NoPCH|Win32.ActiveCfg = Debug_NoPCH|Win32
{4205C8A9-79B7-4354-8064-F05FB9CA0C96}.Debug_NoPCH|Win32.Build.0 = Debug_NoPCH|Win32
{4205C8A9-79B7-4354-8064-F05FB9CA0C96}.Debug_NoPCH|x64.ActiveCfg = Debug_NoPCH|X64
{4205C8A9-79B7-4354-8064-F05FB9CA0C96}.Debug_NoPCH|x64.Build.0 = Debug_NoPCH|X64
{4205C8A9-79B7-4354-8064-F05FB9CA0C96}.Debug|Win32.ActiveCfg = Debug|Win32
{4205C8A9-79B7-4354-8064-F05FB9CA0C96}.Debug|Win32.Build.0 = Debug|Win32
{4205C8A9-79B7-4354-8064-F05FB9CA0C96}.Debug|x64.ActiveCfg = Debug|X64
{4205C8A9-79B7-4354-8064-F05FB9CA0C96}.Debug|x64.Build.0 = Debug|X64
{4205C8A9-79B7-4354-8064-F05FB9CA0C96}.Release|Win32.ActiveCfg = Release|Win32
{4205C8A9-79B7-4354-8064-F05FB9CA0C96}.Release|Win32.Build.0 = Release|Win32
{4205C8A9-79B7-4354-8064-F05FB9CA0C96}.Release|x64.ActiveCfg = Release|X64
{4205C8A9-79B7-4354-8064-F05FB9CA0C96}.Release|x64.Build.0 = Release|X64
{8072769E-CF10-48BF-B9E1-12752A5DAC6E}.Debug_NoPCH|Win32.ActiveCfg = Debug_NoPCH|Win32 {8072769E-CF10-48BF-B9E1-12752A5DAC6E}.Debug_NoPCH|Win32.ActiveCfg = Debug_NoPCH|Win32
{8072769E-CF10-48BF-B9E1-12752A5DAC6E}.Debug_NoPCH|Win32.Build.0 = Debug_NoPCH|Win32 {8072769E-CF10-48BF-B9E1-12752A5DAC6E}.Debug_NoPCH|Win32.Build.0 = Debug_NoPCH|Win32
{8072769E-CF10-48BF-B9E1-12752A5DAC6E}.Debug_NoPCH|x64.ActiveCfg = Debug_NoPCH|X64 {8072769E-CF10-48BF-B9E1-12752A5DAC6E}.Debug_NoPCH|x64.ActiveCfg = Debug_NoPCH|x64
{8072769E-CF10-48BF-B9E1-12752A5DAC6E}.Debug_NoPCH|x64.Build.0 = Debug_NoPCH|X64 {8072769E-CF10-48BF-B9E1-12752A5DAC6E}.Debug_NoPCH|x64.Build.0 = Debug_NoPCH|x64
{8072769E-CF10-48BF-B9E1-12752A5DAC6E}.Debug|Win32.ActiveCfg = Debug|Win32 {8072769E-CF10-48BF-B9E1-12752A5DAC6E}.Debug|Win32.ActiveCfg = Debug|Win32
{8072769E-CF10-48BF-B9E1-12752A5DAC6E}.Debug|Win32.Build.0 = Debug|Win32 {8072769E-CF10-48BF-B9E1-12752A5DAC6E}.Debug|Win32.Build.0 = Debug|Win32
{8072769E-CF10-48BF-B9E1-12752A5DAC6E}.Debug|x64.ActiveCfg = Debug|X64 {8072769E-CF10-48BF-B9E1-12752A5DAC6E}.Debug|x64.ActiveCfg = Debug|x64
{8072769E-CF10-48BF-B9E1-12752A5DAC6E}.Debug|x64.Build.0 = Debug|X64 {8072769E-CF10-48BF-B9E1-12752A5DAC6E}.Debug|x64.Build.0 = Debug|x64
{8072769E-CF10-48BF-B9E1-12752A5DAC6E}.Release|Win32.ActiveCfg = Release|Win32 {8072769E-CF10-48BF-B9E1-12752A5DAC6E}.Release|Win32.ActiveCfg = Release|Win32
{8072769E-CF10-48BF-B9E1-12752A5DAC6E}.Release|Win32.Build.0 = Release|Win32 {8072769E-CF10-48BF-B9E1-12752A5DAC6E}.Release|Win32.Build.0 = Release|Win32
{8072769E-CF10-48BF-B9E1-12752A5DAC6E}.Release|x64.ActiveCfg = Release|X64 {8072769E-CF10-48BF-B9E1-12752A5DAC6E}.Release|x64.ActiveCfg = Release|x64
{8072769E-CF10-48BF-B9E1-12752A5DAC6E}.Release|x64.Build.0 = Release|X64 {8072769E-CF10-48BF-B9E1-12752A5DAC6E}.Release|x64.Build.0 = Release|x64
{803F488E-4C5A-4866-8D5C-1E6C03C007C2}.Debug_NoPCH|Win32.ActiveCfg = Debug_NoPCH|Win32 {803F488E-4C5A-4866-8D5C-1E6C03C007C2}.Debug_NoPCH|Win32.ActiveCfg = Debug_NoPCH|Win32
{803F488E-4C5A-4866-8D5C-1E6C03C007C2}.Debug_NoPCH|Win32.Build.0 = Debug_NoPCH|Win32 {803F488E-4C5A-4866-8D5C-1E6C03C007C2}.Debug_NoPCH|Win32.Build.0 = Debug_NoPCH|Win32
{803F488E-4C5A-4866-8D5C-1E6C03C007C2}.Debug_NoPCH|x64.ActiveCfg = Debug_NoPCH|Win32 {803F488E-4C5A-4866-8D5C-1E6C03C007C2}.Debug_NoPCH|x64.ActiveCfg = Debug_NoPCH|Win32
@ -172,40 +155,40 @@ Global
{803F488E-4C5A-4866-8D5C-1E6C03C007C2}.Release|x64.Build.0 = Release|Win32 {803F488E-4C5A-4866-8D5C-1E6C03C007C2}.Release|x64.Build.0 = Release|Win32
{BD537C9A-FECA-1BAD-6757-8A6348EA12C8}.Debug_NoPCH|Win32.ActiveCfg = Debug_NoPCH|Win32 {BD537C9A-FECA-1BAD-6757-8A6348EA12C8}.Debug_NoPCH|Win32.ActiveCfg = Debug_NoPCH|Win32
{BD537C9A-FECA-1BAD-6757-8A6348EA12C8}.Debug_NoPCH|Win32.Build.0 = Debug_NoPCH|Win32 {BD537C9A-FECA-1BAD-6757-8A6348EA12C8}.Debug_NoPCH|Win32.Build.0 = Debug_NoPCH|Win32
{BD537C9A-FECA-1BAD-6757-8A6348EA12C8}.Debug_NoPCH|x64.ActiveCfg = Debug_NoPCH|X64 {BD537C9A-FECA-1BAD-6757-8A6348EA12C8}.Debug_NoPCH|x64.ActiveCfg = Debug_NoPCH|x64
{BD537C9A-FECA-1BAD-6757-8A6348EA12C8}.Debug_NoPCH|x64.Build.0 = Debug_NoPCH|X64 {BD537C9A-FECA-1BAD-6757-8A6348EA12C8}.Debug_NoPCH|x64.Build.0 = Debug_NoPCH|x64
{BD537C9A-FECA-1BAD-6757-8A6348EA12C8}.Debug|Win32.ActiveCfg = Debug|Win32 {BD537C9A-FECA-1BAD-6757-8A6348EA12C8}.Debug|Win32.ActiveCfg = Debug|Win32
{BD537C9A-FECA-1BAD-6757-8A6348EA12C8}.Debug|Win32.Build.0 = Debug|Win32 {BD537C9A-FECA-1BAD-6757-8A6348EA12C8}.Debug|Win32.Build.0 = Debug|Win32
{BD537C9A-FECA-1BAD-6757-8A6348EA12C8}.Debug|x64.ActiveCfg = Debug|X64 {BD537C9A-FECA-1BAD-6757-8A6348EA12C8}.Debug|x64.ActiveCfg = Debug|x64
{BD537C9A-FECA-1BAD-6757-8A6348EA12C8}.Debug|x64.Build.0 = Debug|X64 {BD537C9A-FECA-1BAD-6757-8A6348EA12C8}.Debug|x64.Build.0 = Debug|x64
{BD537C9A-FECA-1BAD-6757-8A6348EA12C8}.Release|Win32.ActiveCfg = Release|Win32 {BD537C9A-FECA-1BAD-6757-8A6348EA12C8}.Release|Win32.ActiveCfg = Release|Win32
{BD537C9A-FECA-1BAD-6757-8A6348EA12C8}.Release|Win32.Build.0 = Release|Win32 {BD537C9A-FECA-1BAD-6757-8A6348EA12C8}.Release|Win32.Build.0 = Release|Win32
{BD537C9A-FECA-1BAD-6757-8A6348EA12C8}.Release|x64.ActiveCfg = Release|X64 {BD537C9A-FECA-1BAD-6757-8A6348EA12C8}.Release|x64.ActiveCfg = Release|x64
{BD537C9A-FECA-1BAD-6757-8A6348EA12C8}.Release|x64.Build.0 = Release|X64 {BD537C9A-FECA-1BAD-6757-8A6348EA12C8}.Release|x64.Build.0 = Release|x64
{B15F131E-328A-4D42-ADC2-9FF4CA6306D8}.Debug_NoPCH|Win32.ActiveCfg = Debug_NoPCH|Win32 {B15F131E-328A-4D42-ADC2-9FF4CA6306D8}.Debug_NoPCH|Win32.ActiveCfg = Debug_NoPCH|Win32
{B15F131E-328A-4D42-ADC2-9FF4CA6306D8}.Debug_NoPCH|Win32.Build.0 = Debug_NoPCH|Win32 {B15F131E-328A-4D42-ADC2-9FF4CA6306D8}.Debug_NoPCH|Win32.Build.0 = Debug_NoPCH|Win32
{B15F131E-328A-4D42-ADC2-9FF4CA6306D8}.Debug_NoPCH|x64.ActiveCfg = Debug_NoPCH|X64 {B15F131E-328A-4D42-ADC2-9FF4CA6306D8}.Debug_NoPCH|x64.ActiveCfg = Debug_NoPCH|x64
{B15F131E-328A-4D42-ADC2-9FF4CA6306D8}.Debug_NoPCH|x64.Build.0 = Debug_NoPCH|X64 {B15F131E-328A-4D42-ADC2-9FF4CA6306D8}.Debug_NoPCH|x64.Build.0 = Debug_NoPCH|x64
{B15F131E-328A-4D42-ADC2-9FF4CA6306D8}.Debug|Win32.ActiveCfg = Debug|Win32 {B15F131E-328A-4D42-ADC2-9FF4CA6306D8}.Debug|Win32.ActiveCfg = Debug|Win32
{B15F131E-328A-4D42-ADC2-9FF4CA6306D8}.Debug|Win32.Build.0 = Debug|Win32 {B15F131E-328A-4D42-ADC2-9FF4CA6306D8}.Debug|Win32.Build.0 = Debug|Win32
{B15F131E-328A-4D42-ADC2-9FF4CA6306D8}.Debug|x64.ActiveCfg = Debug|X64 {B15F131E-328A-4D42-ADC2-9FF4CA6306D8}.Debug|x64.ActiveCfg = Debug|x64
{B15F131E-328A-4D42-ADC2-9FF4CA6306D8}.Debug|x64.Build.0 = Debug|X64 {B15F131E-328A-4D42-ADC2-9FF4CA6306D8}.Debug|x64.Build.0 = Debug|x64
{B15F131E-328A-4D42-ADC2-9FF4CA6306D8}.Release|Win32.ActiveCfg = Release|Win32 {B15F131E-328A-4D42-ADC2-9FF4CA6306D8}.Release|Win32.ActiveCfg = Release|Win32
{B15F131E-328A-4D42-ADC2-9FF4CA6306D8}.Release|Win32.Build.0 = Release|Win32 {B15F131E-328A-4D42-ADC2-9FF4CA6306D8}.Release|Win32.Build.0 = Release|Win32
{B15F131E-328A-4D42-ADC2-9FF4CA6306D8}.Release|x64.ActiveCfg = Release|X64 {B15F131E-328A-4D42-ADC2-9FF4CA6306D8}.Release|x64.ActiveCfg = Release|x64
{B15F131E-328A-4D42-ADC2-9FF4CA6306D8}.Release|x64.Build.0 = Release|X64 {B15F131E-328A-4D42-ADC2-9FF4CA6306D8}.Release|x64.Build.0 = Release|x64
{F62787DD-1327-448B-9818-030062BCFAA5}.Debug_NoPCH|Win32.ActiveCfg = Debug_NoPCH|Win32 {F62787DD-1327-448B-9818-030062BCFAA5}.Debug_NoPCH|Win32.ActiveCfg = Debug_NoPCH|Win32
{F62787DD-1327-448B-9818-030062BCFAA5}.Debug_NoPCH|Win32.Build.0 = Debug_NoPCH|Win32 {F62787DD-1327-448B-9818-030062BCFAA5}.Debug_NoPCH|Win32.Build.0 = Debug_NoPCH|Win32
{F62787DD-1327-448B-9818-030062BCFAA5}.Debug_NoPCH|x64.ActiveCfg = Debug_NoPCH|X64 {F62787DD-1327-448B-9818-030062BCFAA5}.Debug_NoPCH|x64.ActiveCfg = Debug_NoPCH|x64
{F62787DD-1327-448B-9818-030062BCFAA5}.Debug_NoPCH|x64.Build.0 = Debug_NoPCH|X64 {F62787DD-1327-448B-9818-030062BCFAA5}.Debug_NoPCH|x64.Build.0 = Debug_NoPCH|x64
{F62787DD-1327-448B-9818-030062BCFAA5}.Debug|Win32.ActiveCfg = Debug|Win32 {F62787DD-1327-448B-9818-030062BCFAA5}.Debug|Win32.ActiveCfg = Debug|Win32
{F62787DD-1327-448B-9818-030062BCFAA5}.Debug|Win32.Build.0 = Debug|Win32 {F62787DD-1327-448B-9818-030062BCFAA5}.Debug|Win32.Build.0 = Debug|Win32
{F62787DD-1327-448B-9818-030062BCFAA5}.Debug|x64.ActiveCfg = Debug|X64 {F62787DD-1327-448B-9818-030062BCFAA5}.Debug|x64.ActiveCfg = Debug|x64
{F62787DD-1327-448B-9818-030062BCFAA5}.Debug|x64.Build.0 = Debug|X64 {F62787DD-1327-448B-9818-030062BCFAA5}.Debug|x64.Build.0 = Debug|x64
{F62787DD-1327-448B-9818-030062BCFAA5}.Release|Win32.ActiveCfg = Release|Win32 {F62787DD-1327-448B-9818-030062BCFAA5}.Release|Win32.ActiveCfg = Release|Win32
{F62787DD-1327-448B-9818-030062BCFAA5}.Release|Win32.Build.0 = Release|Win32 {F62787DD-1327-448B-9818-030062BCFAA5}.Release|Win32.Build.0 = Release|Win32
{F62787DD-1327-448B-9818-030062BCFAA5}.Release|x64.ActiveCfg = Release|X64 {F62787DD-1327-448B-9818-030062BCFAA5}.Release|x64.ActiveCfg = Release|x64
{F62787DD-1327-448B-9818-030062BCFAA5}.Release|x64.Build.0 = Release|X64 {F62787DD-1327-448B-9818-030062BCFAA5}.Release|x64.Build.0 = Release|x64
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE

View file

@ -31,11 +31,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "realmd", "VC80\realmd.vcpro
{90297C34-F231-4DF4-848E-A74BCC0E40ED} = {90297C34-F231-4DF4-848E-A74BCC0E40ED} {90297C34-F231-4DF4-848E-A74BCC0E40ED} = {90297C34-F231-4DF4-848E-A74BCC0E40ED}
EndProjectSection EndProjectSection
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "script", "VC80\script.vcproj", "{4205C8A9-79B7-4354-8064-F05FB9CA0C96}"
ProjectSection(ProjectDependencies) = postProject
{A3A04E47-43A2-4C08-90B3-029CEF558594} = {A3A04E47-43A2-4C08-90B3-029CEF558594}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "g3dlite", "VC80\g3dlite.vcproj", "{8072769E-CF10-48BF-B9E1-12752A5DAC6E}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "g3dlite", "VC80\g3dlite.vcproj", "{8072769E-CF10-48BF-B9E1-12752A5DAC6E}"
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genrevision", "VC80\genrevision.vcproj", "{803F488E-4C5A-4866-8D5C-1E6C03C007C2}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genrevision", "VC80\genrevision.vcproj", "{803F488E-4C5A-4866-8D5C-1E6C03C007C2}"
@ -131,18 +126,6 @@ Global
{563E9905-3657-460C-AE63-0AC39D162E23}.Release|Win32.Build.0 = Release|Win32 {563E9905-3657-460C-AE63-0AC39D162E23}.Release|Win32.Build.0 = Release|Win32
{563E9905-3657-460C-AE63-0AC39D162E23}.Release|x64.ActiveCfg = Release|x64 {563E9905-3657-460C-AE63-0AC39D162E23}.Release|x64.ActiveCfg = Release|x64
{563E9905-3657-460C-AE63-0AC39D162E23}.Release|x64.Build.0 = Release|x64 {563E9905-3657-460C-AE63-0AC39D162E23}.Release|x64.Build.0 = Release|x64
{4205C8A9-79B7-4354-8064-F05FB9CA0C96}.Debug_NoPCH|Win32.ActiveCfg = Debug_NoPCH|Win32
{4205C8A9-79B7-4354-8064-F05FB9CA0C96}.Debug_NoPCH|Win32.Build.0 = Debug_NoPCH|Win32
{4205C8A9-79B7-4354-8064-F05FB9CA0C96}.Debug_NoPCH|x64.ActiveCfg = Debug_NoPCH|x64
{4205C8A9-79B7-4354-8064-F05FB9CA0C96}.Debug_NoPCH|x64.Build.0 = Debug_NoPCH|x64
{4205C8A9-79B7-4354-8064-F05FB9CA0C96}.Debug|Win32.ActiveCfg = Debug|Win32
{4205C8A9-79B7-4354-8064-F05FB9CA0C96}.Debug|Win32.Build.0 = Debug|Win32
{4205C8A9-79B7-4354-8064-F05FB9CA0C96}.Debug|x64.ActiveCfg = Debug|x64
{4205C8A9-79B7-4354-8064-F05FB9CA0C96}.Debug|x64.Build.0 = Debug|x64
{4205C8A9-79B7-4354-8064-F05FB9CA0C96}.Release|Win32.ActiveCfg = Release|Win32
{4205C8A9-79B7-4354-8064-F05FB9CA0C96}.Release|Win32.Build.0 = Release|Win32
{4205C8A9-79B7-4354-8064-F05FB9CA0C96}.Release|x64.ActiveCfg = Release|x64
{4205C8A9-79B7-4354-8064-F05FB9CA0C96}.Release|x64.Build.0 = Release|x64
{8072769E-CF10-48BF-B9E1-12752A5DAC6E}.Debug_NoPCH|Win32.ActiveCfg = Debug_NoPCH|Win32 {8072769E-CF10-48BF-B9E1-12752A5DAC6E}.Debug_NoPCH|Win32.ActiveCfg = Debug_NoPCH|Win32
{8072769E-CF10-48BF-B9E1-12752A5DAC6E}.Debug_NoPCH|Win32.Build.0 = Debug_NoPCH|Win32 {8072769E-CF10-48BF-B9E1-12752A5DAC6E}.Debug_NoPCH|Win32.Build.0 = Debug_NoPCH|Win32
{8072769E-CF10-48BF-B9E1-12752A5DAC6E}.Debug_NoPCH|x64.ActiveCfg = Debug_NoPCH|x64 {8072769E-CF10-48BF-B9E1-12752A5DAC6E}.Debug_NoPCH|x64.ActiveCfg = Debug_NoPCH|x64

View file

@ -33,11 +33,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "realmd", "VC90\realmd.vcpro
{90297C34-F231-4DF4-848E-A74BCC0E40ED} = {90297C34-F231-4DF4-848E-A74BCC0E40ED} {90297C34-F231-4DF4-848E-A74BCC0E40ED} = {90297C34-F231-4DF4-848E-A74BCC0E40ED}
EndProjectSection EndProjectSection
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "script", "VC90\script.vcproj", "{4205C8A9-79B7-4354-8064-F05FB9CA0C96}"
ProjectSection(ProjectDependencies) = postProject
{A3A04E47-43A2-4C08-90B3-029CEF558594} = {A3A04E47-43A2-4C08-90B3-029CEF558594}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "g3dlite", "VC90\g3dlite.vcproj", "{8072769E-CF10-48BF-B9E1-12752A5DAC6E}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "g3dlite", "VC90\g3dlite.vcproj", "{8072769E-CF10-48BF-B9E1-12752A5DAC6E}"
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genrevision", "VC90\genrevision.vcproj", "{803F488E-4C5A-4866-8D5C-1E6C03C007C2}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genrevision", "VC90\genrevision.vcproj", "{803F488E-4C5A-4866-8D5C-1E6C03C007C2}"
@ -133,18 +128,6 @@ Global
{563E9905-3657-460C-AE63-0AC39D162E23}.Release|Win32.Build.0 = Release|Win32 {563E9905-3657-460C-AE63-0AC39D162E23}.Release|Win32.Build.0 = Release|Win32
{563E9905-3657-460C-AE63-0AC39D162E23}.Release|x64.ActiveCfg = Release|x64 {563E9905-3657-460C-AE63-0AC39D162E23}.Release|x64.ActiveCfg = Release|x64
{563E9905-3657-460C-AE63-0AC39D162E23}.Release|x64.Build.0 = Release|x64 {563E9905-3657-460C-AE63-0AC39D162E23}.Release|x64.Build.0 = Release|x64
{4205C8A9-79B7-4354-8064-F05FB9CA0C96}.Debug_NoPCH|Win32.ActiveCfg = Debug_NoPCH|Win32
{4205C8A9-79B7-4354-8064-F05FB9CA0C96}.Debug_NoPCH|Win32.Build.0 = Debug_NoPCH|Win32
{4205C8A9-79B7-4354-8064-F05FB9CA0C96}.Debug_NoPCH|x64.ActiveCfg = Debug_NoPCH|x64
{4205C8A9-79B7-4354-8064-F05FB9CA0C96}.Debug_NoPCH|x64.Build.0 = Debug_NoPCH|x64
{4205C8A9-79B7-4354-8064-F05FB9CA0C96}.Debug|Win32.ActiveCfg = Debug|Win32
{4205C8A9-79B7-4354-8064-F05FB9CA0C96}.Debug|Win32.Build.0 = Debug|Win32
{4205C8A9-79B7-4354-8064-F05FB9CA0C96}.Debug|x64.ActiveCfg = Debug|x64
{4205C8A9-79B7-4354-8064-F05FB9CA0C96}.Debug|x64.Build.0 = Debug|x64
{4205C8A9-79B7-4354-8064-F05FB9CA0C96}.Release|Win32.ActiveCfg = Release|Win32
{4205C8A9-79B7-4354-8064-F05FB9CA0C96}.Release|Win32.Build.0 = Release|Win32
{4205C8A9-79B7-4354-8064-F05FB9CA0C96}.Release|x64.ActiveCfg = Release|x64
{4205C8A9-79B7-4354-8064-F05FB9CA0C96}.Release|x64.Build.0 = Release|x64
{8072769E-CF10-48BF-B9E1-12752A5DAC6E}.Debug_NoPCH|Win32.ActiveCfg = Debug_NoPCH|Win32 {8072769E-CF10-48BF-B9E1-12752A5DAC6E}.Debug_NoPCH|Win32.ActiveCfg = Debug_NoPCH|Win32
{8072769E-CF10-48BF-B9E1-12752A5DAC6E}.Debug_NoPCH|Win32.Build.0 = Debug_NoPCH|Win32 {8072769E-CF10-48BF-B9E1-12752A5DAC6E}.Debug_NoPCH|Win32.Build.0 = Debug_NoPCH|Win32
{8072769E-CF10-48BF-B9E1-12752A5DAC6E}.Debug_NoPCH|x64.ActiveCfg = Debug_NoPCH|x64 {8072769E-CF10-48BF-B9E1-12752A5DAC6E}.Debug_NoPCH|x64.ActiveCfg = Debug_NoPCH|x64