aboutsummaryrefslogtreecommitdiff
path: root/src/bindings/scripts
diff options
context:
space:
mode:
authorNeo2003 <none@none>2008-10-11 14:16:25 -0500
committerNeo2003 <none@none>2008-10-11 14:16:25 -0500
commit95b91afbab455d917a2800d8936e1f29e4d9604d (patch)
tree85e9e642d493123cd8cbafbf8d88ce9cafa32ddf /src/bindings/scripts
parentf84ae3af9e9ab10bf43243187e5b458698e9a39a (diff)
[svn] * svn:eol-style native set on all files that need it
--HG-- branch : trunk
Diffstat (limited to 'src/bindings/scripts')
-rw-r--r--src/bindings/scripts/README.TXT12
-rw-r--r--src/bindings/scripts/ScriptMgr.cpp4270
-rw-r--r--src/bindings/scripts/ScriptMgr.h176
-rw-r--r--src/bindings/scripts/VC71/71ScriptDev2.vcproj3190
-rw-r--r--src/bindings/scripts/VC80/80ScriptDev2.vcproj4686
-rw-r--r--src/bindings/scripts/VC90/90ScriptDev2.vcproj4682
-rw-r--r--src/bindings/scripts/docs/EventAI.txt1402
-rw-r--r--src/bindings/scripts/include/sc_creature.cpp1216
-rw-r--r--src/bindings/scripts/include/sc_gossip.h366
-rw-r--r--src/bindings/scripts/sql/create_database.sql6
-rw-r--r--src/bindings/scripts/sql/scriptdev2_structure.sql228
-rw-r--r--src/bindings/scripts/trinityscript.conf.dist40
12 files changed, 10137 insertions, 10137 deletions
diff --git a/src/bindings/scripts/README.TXT b/src/bindings/scripts/README.TXT
index 5fe11481431..548dabd1cb7 100644
--- a/src/bindings/scripts/README.TXT
+++ b/src/bindings/scripts/README.TXT
@@ -1,6 +1,6 @@
-To compile this properly, you need to get the scripts from:
-
-http://svn.assembla.com/svn/trinityscripts
-
-and get them in a "scripts" folder inside this folder
-
+To compile this properly, you need to get the scripts from:
+
+http://svn.assembla.com/svn/trinityscripts
+
+and get them in a "scripts" folder inside this folder
+
diff --git a/src/bindings/scripts/ScriptMgr.cpp b/src/bindings/scripts/ScriptMgr.cpp
index 11d293ffe3d..d29999cb003 100644
--- a/src/bindings/scripts/ScriptMgr.cpp
+++ b/src/bindings/scripts/ScriptMgr.cpp
@@ -1,2135 +1,2135 @@
-/* Copyright (C) 2006 - 2008 TrinityScript <https://scriptdev2.svn.sourceforge.net/>
- * This program is free software licensed under GPL version 2
- * Please see the included DOCS/LICENSE.TXT for more information */
-
-#include "precompiled.h"
-#include "Config/Config.h"
-#include "Database/DatabaseEnv.h"
-#include "Database/DBCStores.h"
-#include "ObjectMgr.h"
-#include "ProgressBar.h"
-#include "scripts/creature/mob_event_ai.h"
-
-#define _FULLVERSION "TrinityScript"
-
-#ifndef _TSCRIPTCONFVERSION
-# define _TSCRIPTCONFVERSION 2008100201
-#endif //_TSCRIPTCONFVERSION
-
-#ifndef _TRINITY_SCRIPT_CONFIG
-# define _TRINITY_SCRIPT_CONFIG "trinityscript.conf"
-#endif //_TRINITY_SCRIPT_CONFIG
-
-//*** Global data ***
-int nrscripts;
-Script *m_scripts[MAX_SCRIPTS];
-
-DatabaseType TScriptDB;
-Config TScriptConfig;
-uint32 Locale;
-
-// String text additional data, used in TextMap
-struct StringTextData
-{
- uint32 SoundId;
- uint8 Type;
- uint32 Language;
-};
-
-// Enums used by StringTextData::Type
-enum ChatType
-{
- CHAT_TYPE_SAY = 0,
- CHAT_TYPE_YELL = 1,
- CHAT_TYPE_TEXT_EMOTE = 2,
- CHAT_TYPE_BOSS_EMOTE = 3,
- CHAT_TYPE_WHISPER = 4,
- CHAT_TYPE_BOSS_WHISPER = 5,
-};
-
-#define TEXT_SOURCE_RANGE -100000 //the amount of entries each text source has available
-
-// Text Maps
-HM_NAMESPACE::hash_map<uint32, std::string> EventAI_Text_Map;
-HM_NAMESPACE::hash_map<int32, StringTextData> TextMap;
-
-// Localized Text structure for storing locales (for EAI and SD2 scripts).
-struct Localized_Text
-{
- std::string locale_1;
- std::string locale_2;
- std::string locale_3;
- std::string locale_4;
- std::string locale_5;
- std::string locale_6;
- std::string locale_7;
- std::string locale_8;
-};
-//*** End Global data ***
-
-//*** EventAI data ***
-HM_NAMESPACE::hash_map<uint32, Localized_Text> EventAI_LocalizedTextMap;
-
-//Event AI structure. Used exclusivly by mob_event_ai.cpp (60 bytes each)
-std::list<EventAI_Event> EventAI_Event_List;
-
-//Event AI summon structure. Used exclusivly by mob_event_ai.cpp.
-HM_NAMESPACE::hash_map<uint32, EventAI_Summon> EventAI_Summon_Map;
-
-//Event AI error prevention structure. Used at runtime to prevent error log spam of same creature id.
-//HM_NAMESPACE::hash_map<uint32, EventAI_CreatureError> EventAI_CreatureErrorPreventionList;
-
-uint32 EAI_ErrorLevel;
-//*** End EventAI data ***
-
-void FillSpellSummary();
-
-// -- Scripts to be added --
-
-// -- Areatrigger --
-extern void AddSC_areatrigger_scripts();
-
-// -- Boss --
-extern void AddSC_boss_emeriss();
-extern void AddSC_boss_taerar();
-extern void AddSC_boss_ysondre();
-
-// -- Creature --
-extern void AddSC_mob_event();
-extern void AddSC_generic_creature();
-
-// -- Custom --
-extern void AddSC_custom_example();
-extern void AddSC_custom_gossip_codebox();
-extern void AddSC_test();
-
-// -- GO --
-extern void AddSC_go_scripts();
-
-// -- Guard --
-extern void AddSC_guards();
-
-// -- Honor --
-
-// -- Item --
-extern void AddSC_item_scripts();
-extern void AddSC_item_test();
-
-// -- NPC --
-extern void AddSC_npc_professions();
-extern void AddSC_npcs_special();
-
-// -- Servers --
-
-//--------------------
-//------ ZONE --------
-
-//Alterac Mountains
-extern void AddSC_alterac_mountains();
-
-//Arathi Highlands
-//Ashenvale Forest
-//Aunchindoun
-//--Auchenai Crypts
-extern void AddSC_boss_exarch_maladaar();
-//--Mana Tombs
-extern void AddSC_boss_nexusprince_shaffar();
-extern void AddSC_boss_pandemonius();
-
-//--Sekketh Halls
-extern void AddSC_boss_darkweaver_syth();
-extern void AddSC_boss_talon_king_ikiss();
-extern void AddSC_instance_sethekk_halls();
-
-//--Shadow Labyrinth
-extern void AddSC_boss_ambassador_hellmaw();
-extern void AddSC_boss_blackheart_the_inciter();
-extern void AddSC_boss_grandmaster_vorpil();
-extern void AddSC_boss_murmur();
-extern void AddSC_instance_shadow_labyrinth();
-
-//Azshara
-extern void AddSC_boss_azuregos();
-extern void AddSC_azshara();
-
-//Azuremyst Isle
-extern void AddSC_azuremyst_isle();
-
-//Badlands
-//Barrens
-extern void AddSC_the_barrens();
-
-//Black Temple
-extern void AddSC_black_temple();
-extern void AddSC_boss_illidan();
-extern void AddSC_boss_shade_of_akama();
-extern void AddSC_boss_supremus();
-extern void AddSC_boss_gurtogg_bloodboil();
-extern void AddSC_boss_mother_shahraz();
-extern void AddSC_boss_reliquary_of_souls();
-extern void AddSC_boss_teron_gorefiend();
-extern void AddSC_boss_najentus();
-extern void AddSC_boss_illidari_council();
-extern void AddSC_instance_black_temple();
-
-//Blackfathom Depths
-//Blackrock Depths
-extern void AddSC_blackrock_depths();
-extern void AddSC_boss_ambassador_flamelash();
-extern void AddSC_boss_angerrel();
-extern void AddSC_boss_anubshiah();
-extern void AddSC_boss_doomrel();
-extern void AddSC_boss_doperel();
-extern void AddSC_boss_draganthaurissan();
-extern void AddSC_boss_general_angerforge();
-extern void AddSC_boss_gloomrel();
-extern void AddSC_boss_gorosh_the_dervish();
-extern void AddSC_boss_grizzle();
-extern void AddSC_boss_haterel();
-extern void AddSC_boss_high_interrogator_gerstahn();
-extern void AddSC_boss_magmus();
-extern void AddSC_boss_moira_bronzebeard();
-extern void AddSC_boss_seethrel();
-extern void AddSC_boss_vilerel();
-
-//Blackrock Spire
-extern void AddSC_boss_drakkisath();
-extern void AddSC_boss_halycon();
-extern void AddSC_boss_highlordomokk();
-extern void AddSC_boss_mothersmolderweb();
-extern void AddSC_boss_overlordwyrmthalak();
-extern void AddSC_boss_shadowvosh();
-extern void AddSC_boss_thebeast();
-extern void AddSC_boss_warmastervoone();
-extern void AddSC_boss_quatermasterzigris();
-extern void AddSC_boss_pyroguard_emberseer();
-extern void AddSC_boss_gyth();
-extern void AddSC_boss_rend_blackhand();
-
-//Blackwing lair
-extern void AddSC_boss_razorgore();
-extern void AddSC_boss_vael();
-extern void AddSC_boss_broodlord();
-extern void AddSC_boss_firemaw();
-extern void AddSC_boss_ebonroc();
-extern void AddSC_boss_flamegor();
-extern void AddSC_boss_chromaggus();
-extern void AddSC_boss_nefarian();
-extern void AddSC_boss_victor_nefarius();
-
-//Blade's Edge Mountains
-extern void AddSC_blades_edge_mountains();
-
-//Blasted lands
-extern void AddSC_boss_kruul();
-extern void AddSC_blasted_lands();
-
-//Bloodmyst Isle
-extern void AddSC_bloodmyst_isle();
-
-//Burning steppes
-extern void AddSC_burning_steppes();
-
-//Caverns of Time
-//--Battle for Mt. Hyjal
-extern void AddSC_hyjal();
-extern void AddSC_boss_archimonde();
-extern void AddSC_instance_mount_hyjal();
-
-//--Old Hillsbrad
-extern void AddSC_boss_captain_skarloc();
-extern void AddSC_boss_epoch_hunter();
-extern void AddSC_boss_lieutenant_drake();
-extern void AddSC_instance_old_hillsbrad();
-extern void AddSC_old_hillsbrad();
-
-//--The Dark Portal
-extern void AddSC_boss_aeonus();
-extern void AddSC_boss_chrono_lord_deja();
-extern void AddSC_boss_temporus();
-
-//Coilfang Resevoir
-//--Serpent Shrine Cavern
-extern void AddSC_boss_fathomlord_karathress();
-extern void AddSC_boss_hydross_the_unstable();
-extern void AddSC_boss_lady_vashj();
-extern void AddSC_boss_leotheras_the_blind();
-extern void AddSC_boss_morogrim_tidewalker();
-extern void AddSC_instance_serpentshrine_cavern();
-
-//--Slave Pens
-
-//--Steam Vault
-extern void AddSC_boss_hydromancer_thespia();
-extern void AddSC_boss_mekgineer_steamrigger();
-extern void AddSC_boss_warlord_kalithresh();
-extern void AddSC_instance_steam_vault();
-
-//--Underbog
-extern void AddSC_boss_hungarfen();
-
-//Darkshore
-//Darnassus
-//Deadmines
-//Deadwind pass
-//Desolace
-//Dire Maul
-//Dun Morogh
-extern void AddSC_dun_morogh();
-
-//Durotar
-//Duskwood
-//Dustwallow marsh
-extern void AddSC_dustwallow_marsh();
-
-//Eversong Woods
-extern void AddSC_eversong_woods();
-
-//Exodar
-//Eastern Plaguelands
-extern void AddSC_eastern_plaguelands();
-
-//Elwynn Forest
-extern void AddSC_elwynn_forest();
-
-//Felwood
-extern void AddSC_felwood();
-
-//Feralas
-extern void AddSC_feralas();
-
-//Ghostlands
-extern void AddSC_ghostlands();
-
-//Gnomeregan
-//Gruul's Lair
-extern void AddSC_boss_gruul();
-extern void AddSC_boss_high_king_maulgar();
-extern void AddSC_instance_gruuls_lair();
-
-//Hellfire Citadel
-//--Blood Furnace
-extern void AddSC_boss_broggok();
-extern void AddSC_boss_kelidan_the_breaker();
-extern void AddSC_boss_the_maker();
-
-//--Magtheridon's Lair
-extern void AddSC_boss_magtheridon();
-extern void AddSC_instance_magtheridons_lair();
-
-//--Shattered Halls
-extern void AddSC_boss_grand_warlock_nethekurse();
-extern void AddSC_boss_warbringer_omrogg();
-extern void AddSC_instance_shattered_halls();
-
-//--Ramparts
-extern void AddSC_boss_watchkeeper_gargolmar();
-extern void AddSC_boss_omor_the_unscarred();
-
-//Hellfire Peninsula
-extern void AddSC_boss_doomlordkazzak();
-extern void AddSC_hellfire_peninsula();
-
-//Hillsbrad Foothills
-//Hinterlands
-//Ironforge
-extern void AddSC_ironforge();
-
-//Isle of Quel'Danas
-extern void AddSC_isle_of_queldanas();
-
-//Karazhan
-extern void AddSC_boss_attumen();
-extern void AddSC_boss_curator();
-extern void AddSC_boss_maiden_of_virtue();
-extern void AddSC_boss_shade_of_aran();
-extern void AddSC_boss_malchezaar();
-extern void AddSC_boss_terestian_illhoof();
-extern void AddSC_netherspite_infernal();
-extern void AddSC_boss_moroes();
-extern void AddSC_bosses_opera();
-extern void AddSC_instance_karazhan();
-extern void AddSC_karazhan();
-
-//Loch Modan
-extern void AddSC_loch_modan();
-
-//Lower Blackrock Spire
-
-// Magister's Terrace
-extern void AddSC_boss_felblood_kaelthas();
-extern void AddSC_boss_selin_fireheart();
-extern void AddSC_boss_vexallus();
-extern void AddSC_boss_priestess_delrissa();
-extern void AddSC_instance_magisters_terrace();
-
-//Maraudon
-extern void AddSC_boss_celebras_the_cursed();
-extern void AddSC_boss_landslide();
-extern void AddSC_boss_noxxion();
-extern void AddSC_boss_ptheradras();
-
-//Molten core
-extern void AddSC_boss_lucifron();
-extern void AddSC_boss_magmadar();
-extern void AddSC_boss_gehennas();
-extern void AddSC_boss_garr();
-extern void AddSC_boss_baron_geddon();
-extern void AddSC_boss_shazzrah();
-extern void AddSC_boss_golemagg();
-extern void AddSC_boss_sulfuron();
-extern void AddSC_boss_majordomo();
-extern void AddSC_boss_ragnaros();
-extern void AddSC_instance_molten_core();
-extern void AddSC_molten_core();
-
-//Moonglade
-extern void AddSC_moonglade();
-
-//Mulgore
-extern void AddSC_mulgore();
-
-//Nagrand
-extern void AddSC_nagrand();
-
-//Naxxramas
-extern void AddSC_boss_anubrekhan();
-extern void AddSC_boss_maexxna();
-extern void AddSC_boss_patchwerk();
-extern void AddSC_boss_razuvious();
-extern void AddSC_boss_highlord_mograine();
-extern void AddSC_boss_lady_blaumeux();
-extern void AddSC_boss_sir_zeliek();
-extern void AddSC_boss_thane_korthazz();
-extern void AddSC_boss_kelthuzad();
-extern void AddSC_boss_faerlina();
-extern void AddSC_boss_loatheb();
-extern void AddSC_boss_noth();
-extern void AddSC_boss_gluth();
-extern void AddSC_boss_sapphiron();
-
-//Netherstorm
-extern void AddSC_netherstorm();
-
-//Onyxia's Lair
-extern void AddSC_boss_onyxia();
-
-//Orgrimmar
-extern void AddSC_orgrimmar();
-
-//Ragefire Chasm
-//Razorfen Downs
-extern void AddSC_boss_amnennar_the_coldbringer();
-
-//Redridge Mountains
-//Ruins of Ahn'Qiraj
-//Scarlet Monastery
-extern void AddSC_boss_arcanist_doan();
-extern void AddSC_boss_azshir_the_sleepless();
-extern void AddSC_boss_bloodmage_thalnos();
-extern void AddSC_boss_herod();
-extern void AddSC_boss_high_inquisitor_fairbanks();
-extern void AddSC_boss_high_inquisitor_whitemane();
-extern void AddSC_boss_houndmaster_loksey();
-extern void AddSC_boss_interrogator_vishas();
-extern void AddSC_boss_scarlet_commander_mograine();
-extern void AddSC_boss_scorn();
-
-//Scholomance
-extern void AddSC_boss_darkmaster_gandling();
-extern void AddSC_boss_death_knight_darkreaver();
-extern void AddSC_boss_theolenkrastinov();
-extern void AddSC_boss_illuciabarov();
-extern void AddSC_boss_instructormalicia();
-extern void AddSC_boss_jandicebarov();
-extern void AddSC_boss_kormok();
-extern void AddSC_boss_lordalexeibarov();
-extern void AddSC_boss_lorekeeperpolkelt();
-extern void AddSC_boss_rasfrost();
-extern void AddSC_boss_theravenian();
-extern void AddSC_boss_vectus();
-extern void AddSC_instance_scholomance();
-
-//Searing gorge
-extern void AddSC_searing_gorge();
-
-//Shadowfang keep
-extern void AddSC_shadowfang_keep();
-extern void AddSC_instance_shadowfang_keep();
-
-//Shadowmoon Valley
-extern void AddSC_boss_doomwalker();
-extern void AddSC_shadowmoon_valley();
-
-//Shattrath
-extern void AddSC_shattrath_city();
-
-//Silithus
-extern void AddSC_silithus();
-
-//Silvermoon
-extern void AddSC_silvermoon_city();
-
-//Silverpine forest
-extern void AddSC_silverpine_forest();
-
-//Stockade
-//Stonetalon mountains
-extern void AddSC_stonetalon_mountains();
-
-//Stormwind City
-extern void AddSC_stormwind_city();
-
-//Stranglethorn Vale
-extern void AddSC_stranglethorn_vale();
-
-//Stratholme
-extern void AddSC_boss_magistrate_barthilas();
-extern void AddSC_boss_maleki_the_pallid();
-extern void AddSC_boss_nerubenkan();
-extern void AddSC_boss_cannon_master_willey();
-extern void AddSC_boss_baroness_anastari();
-extern void AddSC_boss_ramstein_the_gorger();
-extern void AddSC_boss_timmy_the_cruel();
-extern void AddSC_boss_postmaster_malown();
-extern void AddSC_boss_baron_rivendare();
-extern void AddSC_boss_dathrohan_balnazzar();
-extern void AddSC_boss_order_of_silver_hand();
-extern void AddSC_instance_stratholme();
-extern void AddSC_stratholme();
-
-//Sunken Temple
-//Tanaris
-extern void AddSC_tanaris();
-
-//Teldrassil
-//Tempest Keep
-//--Arcatraz
-extern void AddSC_arcatraz();
-extern void AddSC_boss_harbinger_skyriss();
-extern void AddSC_instance_arcatraz();
-
-//--Botanica
-extern void AddSC_boss_high_botanist_freywinn();
-extern void AddSC_boss_laj();
-extern void AddSC_boss_warp_splinter();
-
-//--The Eye
-extern void AddSC_boss_kaelthas();
-extern void AddSC_boss_void_reaver();
-extern void AddSC_boss_high_astromancer_solarian();
-extern void AddSC_instance_the_eye();
-extern void AddSC_the_eye();
-
-//--The Mechanar
-extern void AddSC_boss_gatewatcher_iron_hand();
-extern void AddSC_boss_nethermancer_sepethrea();
-
-//Temple of ahn'qiraj
-extern void AddSC_boss_cthun();
-extern void AddSC_boss_fankriss();
-extern void AddSC_boss_huhuran();
-extern void AddSC_bug_trio();
-extern void AddSC_boss_sartura();
-extern void AddSC_boss_skeram();
-extern void AddSC_boss_twinemperors();
-extern void AddSC_mob_anubisath_sentinel();
-extern void AddSC_instance_temple_of_ahnqiraj();
-
-//Terokkar Forest
-extern void AddSC_terokkar_forest();
-
-//Thousand Needles
-//Thunder Bluff
-extern void AddSC_thunder_bluff();
-
-//Tirisfal Glades
-extern void AddSC_tirisfal_glades();
-
-//Uldaman
-extern void AddSC_boss_ironaya();
-extern void AddSC_uldaman();
-
-//Undercity
-extern void AddSC_undercity();
-
-//Un'Goro Crater
-//Upper blackrock spire
-//Wailing caverns
-
-//Western plaguelands
-extern void AddSC_western_plaguelands();
-
-//Westfall
-//Wetlands
-//Winterspring
-extern void AddSC_winterspring();
-
-//Zangarmarsh
-extern void AddSC_zangarmarsh();
-
-//Zul'Farrak
-//Zul'Gurub
-extern void AddSC_boss_jeklik();
-extern void AddSC_boss_venoxis();
-extern void AddSC_boss_marli();
-extern void AddSC_boss_mandokir();
-extern void AddSC_boss_gahzranka();
-extern void AddSC_boss_thekal();
-extern void AddSC_boss_arlokk();
-extern void AddSC_boss_jindo();
-extern void AddSC_boss_hakkar();
-extern void AddSC_boss_grilek();
-extern void AddSC_boss_hazzarah();
-extern void AddSC_boss_renataki();
-extern void AddSC_boss_wushoolay();
-extern void AddSC_instance_zulgurub();
-//Zul'Aman
-extern void AddSC_boss_janalai();
-extern void AddSC_boss_nalorakk();
-extern void AddSC_instance_zulaman();
-extern void AddSC_zulaman();
-
-// -------------------
-void LoadDatabase()
-{
- //Get db string from file
- char const* dbstring = NULL;
-
- if( !TScriptConfig.GetString("TScriptDatabaseInfo", &dbstring) )
- {
- error_log("TSCR: Missing Trinity Script database info from configuration file. Load database aborted.");
- return;
- }
-
- //Initialize connection to DB
- if( dbstring && TScriptDB.Initialize(dbstring) )
- outstring_log("TSCR: TrinityScript database: %s",dbstring);
- else
- {
- error_log("TSCR: Unable to connect to Database. Load database aborted.");
- return;
- }
-
- //***Preform all DB queries here***
- QueryResult *result;
-
- //Get Version information
- result = TScriptDB.PQuery("SELECT version FROM script_db_version");
-
- if (result)
- {
- Field *fields = result->Fetch();
- outstring_log("TSCR: Database version is: %s", fields[0].GetString());
- outstring_log("");
- delete result;
-
- }else
- {
- error_log("TSCR: Missing `script_db_version` information.");
- outstring_log("");
- }
-
- // Drop Existing Text Map, only done once and we are ready to add data from multiple sources.
- TextMap.clear();
-
- //TODO: Add load from eventai_texts here
-
- // Load Script Text
- outstring_log("TSCR: Loading Script Texts...");
- LoadMangosStrings(TScriptDB,"script_texts",TEXT_SOURCE_RANGE,(TEXT_SOURCE_RANGE*2)+1);
-
- // Gather Additional data from Script Texts
- result = TScriptDB.PQuery("SELECT entry, sound, type, language FROM script_texts");
-
- outstring_log("TSCR: Loading Script Texts additional data...");
- if (result)
- {
- barGoLink bar(result->GetRowCount());
- uint32 count = 0;
-
- do
- {
- bar.step();
- Field* fields = result->Fetch();
- StringTextData temp;
-
- int32 i = fields[0].GetInt32();
- temp.SoundId = fields[1].GetInt32();
- temp.Type = fields[2].GetInt32();
- temp.Language = fields[3].GetInt32();
-
- if (i >= 0)
- {
- error_db_log("TSCR: Entry %i in table `script_texts` is not a negative value.",i);
- continue;
- }
-
- if (i > TEXT_SOURCE_RANGE || i <= TEXT_SOURCE_RANGE*2)
- {
- error_db_log("TSCR: Entry %i in table `script_texts` is out of accepted entry range for table.",i);
- continue;
- }
-
- if (temp.SoundId)
- {
- if (!GetSoundEntriesStore()->LookupEntry(temp.SoundId))
- error_db_log("TSCR: Entry %i in table `script_texts` has soundId %u but sound does not exist.",i,temp.SoundId);
- }
-
- if (!GetLanguageDescByID(temp.Language))
- error_db_log("TSCR: Entry %i in table `script_texts` using Language %u but Language does not exist.",i,temp.Language);
-
- if (temp.Type > CHAT_TYPE_BOSS_WHISPER)
- error_db_log("TSCR: Entry %i in table `script_texts` has Type %u but this Chat Type does not exist.",i,temp.Type);
-
- TextMap[i] = temp;
- ++count;
- } while (result->NextRow());
-
- delete result;
-
- outstring_log("");
- outstring_log(">> TSCR: Loaded %u additional Script Texts data.", count);
- }else
- {
- barGoLink bar(1);
- bar.step();
- outstring_log("");
- outstring_log(">> Loaded 0 additional Script Texts data. DB table `script_texts` is empty.");
- }
-
- // Load Custom Text
- outstring_log("TSCR: Loading Custom Texts...");
- LoadMangosStrings(TScriptDB,"custom_texts",TEXT_SOURCE_RANGE*2,(TEXT_SOURCE_RANGE*3)+1);
-
- // Gather Additional data from Custom Texts
- result = TScriptDB.PQuery("SELECT entry, sound, type, language FROM custom_texts");
-
- outstring_log("TSCR: Loading Custom Texts additional data...");
- if (result)
- {
- barGoLink bar(result->GetRowCount());
- uint32 count = 0;
-
- do
- {
- bar.step();
- Field* fields = result->Fetch();
- StringTextData temp;
-
- int32 i = fields[0].GetInt32();
- temp.SoundId = fields[1].GetInt32();
- temp.Type = fields[2].GetInt32();
- temp.Language = fields[3].GetInt32();
-
- if (i >= 0)
- {
- error_db_log("TSCR: Entry %i in table `custom_texts` is not a negative value.",i);
- continue;
- }
-
- if (i > TEXT_SOURCE_RANGE*2 || i <= TEXT_SOURCE_RANGE*3)
- {
- error_db_log("TSCR: Entry %i in table `custom_texts` is out of accepted entry range for table.",i);
- continue;
- }
-
- if (temp.SoundId)
- {
- if (!GetSoundEntriesStore()->LookupEntry(temp.SoundId))
- error_db_log("TSCR: Entry %i in table `custom_texts` has soundId %u but sound does not exist.",i,temp.SoundId);
- }
-
- if (!GetLanguageDescByID(temp.Language))
- error_db_log("TSCR: Entry %i in table `custom_texts` using Language %u but Language does not exist.",i,temp.Language);
-
- if (temp.Type > CHAT_TYPE_BOSS_WHISPER)
- error_db_log("TSCR: Entry %i in table `custom_texts` has Type %u but this Chat Type does not exist.",i,temp.Type);
-
- TextMap[i] = temp;
- ++count;
- } while (result->NextRow());
-
- delete result;
-
- outstring_log("");
- outstring_log(">> Loaded %u additional Custom Texts data.", count);
- }else
- {
- barGoLink bar(1);
- bar.step();
- outstring_log("");
- outstring_log(">> Loaded 0 additional Custom Texts data. DB table `custom_texts` is empty.");
- }
-
- // Drop existing Event AI Localized Text hash map
- EventAI_LocalizedTextMap.clear();
-
- // Gather EventAI Localized Texts
- result = TScriptDB.PQuery("SELECT id, locale_1, locale_2, locale_3, locale_4, locale_5, locale_6, locale_7, locale_8 "
- "FROM eventai_localized_texts");
-
- outstring_log("TSCR: Loading EventAI Localized Texts...");
- if(result)
- {
- barGoLink bar(result->GetRowCount());
- uint32 count = 0;
-
- do
- {
- Localized_Text temp;
- bar.step();
-
- Field *fields = result->Fetch();
-
- uint32 i = fields[0].GetInt32();
-
- temp.locale_1 = fields[1].GetString();
- temp.locale_2 = fields[2].GetString();
- temp.locale_3 = fields[3].GetString();
- temp.locale_4 = fields[4].GetString();
- temp.locale_5 = fields[5].GetString();
- temp.locale_6 = fields[6].GetString();
- temp.locale_7 = fields[7].GetString();
- temp.locale_8 = fields[8].GetString();
-
- EventAI_LocalizedTextMap[i] = temp;
- ++count;
-
- }while(result->NextRow());
-
- delete result;
-
- outstring_log("");
- outstring_log(">> Loaded %u EventAI Localized Texts", count);
- }else
- {
- barGoLink bar(1);
- bar.step();
- outstring_log("");
- outstring_log(">> Loaded 0 EventAI Localized Texts. DB table `eventai_localized_texts` is empty");
- }
-
- //Drop existing EventAI Text hash map
- EventAI_Text_Map.clear();
-
- //Gather EventAI Text Entries
- result = TScriptDB.PQuery("SELECT id, text FROM eventai_texts");
-
- outstring_log("TSCR: Loading EventAI_Texts...");
- if (result)
- {
- barGoLink bar(result->GetRowCount());
- uint32 Count = 0;
-
- do
- {
- bar.step();
- Field *fields = result->Fetch();
-
- uint32 i = fields[0].GetInt32();
-
- std::string text = fields[1].GetString();
-
- if (!strlen(text.c_str()))
- error_db_log("TSCR: EventAI text %u is empty", i);
-
- EventAI_Text_Map[i] = text;
- ++Count;
-
- }while (result->NextRow());
-
- delete result;
-
- outstring_log("");
- outstring_log(">> Loaded %u EventAI texts", Count);
- }else
- {
- barGoLink bar(1);
- bar.step();
- outstring_log("");
- outstring_log(">> Loaded 0 EventAI texts. DB table `eventai_texts` is empty.");
- }
-
- //Gather event data
- result = TScriptDB.PQuery("SELECT id, position_x, position_y, position_z, orientation, spawntimesecs FROM eventai_summons");
-
- //Drop Existing EventSummon Map
- EventAI_Summon_Map.clear();
-
- outstring_log("TSCR: Loading EventAI_Summons...");
- if (result)
- {
- barGoLink bar(result->GetRowCount());
- uint32 Count = 0;
-
- do
- {
- bar.step();
- Field *fields = result->Fetch();
-
- EventAI_Summon temp;
-
- uint32 i = fields[0].GetUInt32();
- temp.position_x = fields[1].GetFloat();
- temp.position_y = fields[2].GetFloat();
- temp.position_z = fields[3].GetFloat();
- temp.orientation = fields[4].GetFloat();
- temp.SpawnTimeSecs = fields[5].GetUInt32();
-
- //Add to map
- EventAI_Summon_Map[i] = temp;
- ++Count;
- }while (result->NextRow());
-
- delete result;
-
- outstring_log("");
- outstring_log(">> Loaded %u EventAI summon definitions", Count);
- }else
- {
- barGoLink bar(1);
- bar.step();
- outstring_log("");
- outstring_log(">> Loaded 0 EventAI Summon definitions. DB table `eventai_summons` is empty.");
- }
-
- //Gather event data
- result = TScriptDB.PQuery("SELECT id, creature_id, event_type, event_inverse_phase_mask, event_chance, event_flags, "
- "event_param1, event_param2, event_param3, event_param4, "
- "action1_type, action1_param1, action1_param2, action1_param3, "
- "action2_type, action2_param1, action2_param2, action2_param3, "
- "action3_type, action3_param1, action3_param2, action3_param3 "
- "FROM eventai_scripts");
-
- //Drop Existing EventAI List
- EventAI_Event_List.clear();
-
- outstring_log("TSCR: Loading EventAI_Scripts...");
- if (result)
- {
- barGoLink bar(result->GetRowCount());
- uint32 Count = 0;
-
- do
- {
- bar.step();
- Field *fields = result->Fetch();
-
- EventAI_Event temp;
-
- temp.event_id = fields[0].GetUInt32();
- uint32 i = temp.event_id;
- temp.creature_id = fields[1].GetUInt32();
- temp.event_type = fields[2].GetUInt16();
- temp.event_inverse_phase_mask = fields[3].GetUInt32();
- temp.event_chance = fields[4].GetUInt8();
- temp.event_flags = fields[5].GetUInt8();
- temp.event_param1 = fields[6].GetUInt32();
- temp.event_param2 = fields[7].GetUInt32();
- temp.event_param3 = fields[8].GetUInt32();
- temp.event_param4 = fields[9].GetUInt32();
-
- //Report any errors in event
- if (temp.event_type >= EVENT_T_END)
- error_db_log("TSCR: Event %u has incorrect event type. Maybe DB requires updated version of SD2.", i);
-
- //No chance of this event occuring
- if (temp.event_chance == 0)
- error_db_log("TSCR: Event %u has 0 percent chance. Event will never trigger!", i);
-
- //Chance above 100, force it to be 100
- if (temp.event_chance > 100)
- {
- error_db_log("TSCR: Creature %u are using event %u with more than 100 percent chance. Adjusting to 100 percent.", temp.creature_id, i);
- temp.event_chance = 100;
- }
-
- //Individual event checks
- switch (temp.event_type)
- {
- case EVENT_T_HP:
- case EVENT_T_MANA:
- case EVENT_T_TARGET_HP:
- {
- if (temp.event_param2 > 100)
- error_db_log("TSCR: Creature %u are using percentage event(%u) with param2 (MinPercent) > 100. Event will never trigger! ", temp.creature_id, i);
-
- if (temp.event_param1 <= temp.event_param2)
- error_db_log("TSCR: Creature %u are using percentage event(%u) with param1 <= param2 (MaxPercent <= MinPercent). Event will never trigger! ", temp.creature_id, i);
-
- if (temp.event_flags & EFLAG_REPEATABLE && !temp.event_param3 && !temp.event_param4)
- {
- error_db_log("TSCR: Creature %u has param3 and param4=0 (RepeatMin/RepeatMax) but cannot be repeatable without timers. Removing EFLAG_REPEATABLE for event %u.", temp.creature_id, i);
- temp.event_flags &= ~EFLAG_REPEATABLE;
- }
- }
- break;
-
- case EVENT_T_SPELLHIT:
- {
- if (temp.event_param1)
- {
- SpellEntry const* pSpell = GetSpellStore()->LookupEntry(temp.event_param1);
- if (!pSpell)
- {
- error_db_log("TSCR: Creature %u has non-existant SpellID(%u) defined in event %u.", temp.creature_id, temp.event_param1, i);
- continue;
- }
-
- if (temp.event_param2_s != -1 && temp.event_param2 != pSpell->SchoolMask)
- error_db_log("TSCR: Creature %u has param1(spellId %u) but param2 is not -1 and not equal to spell's school mask. Event %u can never trigger.", temp.creature_id, temp.event_param1, i);
- }
-
- //TODO: fix this system with SPELL_SCHOOL_MASK. Current complicate things, using int32(-1) instead of just 0
- //SPELL_SCHOOL_MASK_NONE = 0 and does not exist, thus it can not ever trigger or be used in SpellHit()
- if (temp.event_param2_s != -1 && temp.event_param2_s > SPELL_SCHOOL_MASK_ALL)
- error_db_log("TSCR: Creature %u is using invalid SpellSchoolMask(%u) defined in event %u.", temp.creature_id, temp.event_param2, i);
-
- if (temp.event_param4 < temp.event_param3)
- error_db_log("TSCR: Creature %u are using repeatable event(%u) with param4 < param3 (RepeatMax < RepeatMin). Event will never repeat.", temp.creature_id, i);
- }
- break;
-
- case EVENT_T_RANGE:
- case EVENT_T_OOC_LOS:
- case EVENT_T_FRIENDLY_HP:
- case EVENT_T_FRIENDLY_IS_CC:
- case EVENT_T_FRIENDLY_MISSING_BUFF:
- {
- if (temp.event_param4 < temp.event_param3)
- error_db_log("TSCR: Creature %u are using repeatable event(%u) with param4 < param3 (RepeatMax < RepeatMin). Event will never repeat.", temp.creature_id, i);
- }
- break;
-
- case EVENT_T_TIMER:
- case EVENT_T_TIMER_OOC:
- {
- if (temp.event_param2 < temp.event_param1)
- error_db_log("TSCR: Creature %u are using timed event(%u) with param2 < param1 (InitialMax < InitialMin). Event will never repeat.", temp.creature_id, i);
-
- if (temp.event_param4 < temp.event_param3)
- error_db_log("TSCR: Creature %u are using repeatable event(%u) with param4 < param3 (RepeatMax < RepeatMin). Event will never repeat.", temp.creature_id, i);
- }
- break;
-
- case EVENT_T_KILL:
- case EVENT_T_TARGET_CASTING:
- {
- if (temp.event_param2 < temp.event_param1)
- error_db_log("TSCR: Creature %u are using event(%u) with param2 < param1 (RepeatMax < RepeatMin). Event will never repeat.", temp.creature_id, i);
- }
- break;
-
- case EVENT_T_AGGRO:
- case EVENT_T_DEATH:
- case EVENT_T_EVADE:
- case EVENT_T_SPAWNED:
- {
- if (temp.event_flags & EFLAG_REPEATABLE)
- {
- error_db_log("TSCR: Creature %u has EFLAG_REPEATABLE set. Event can never be repeatable. Removing flag for event %u.", temp.creature_id, i);
- temp.event_flags &= ~EFLAG_REPEATABLE;
- }
- }
- break;
- }
-
- for (uint32 j = 0; j < MAX_ACTIONS; j++)
- {
- temp.action[j].type = fields[10+(j*4)].GetUInt16();
- temp.action[j].param1 = fields[11+(j*4)].GetUInt32();
- temp.action[j].param2 = fields[12+(j*4)].GetUInt32();
- temp.action[j].param3 = fields[13+(j*4)].GetUInt32();
-
- //Report any errors in actions
- switch (temp.action[j].type)
- {
- case ACTION_T_SAY:
- case ACTION_T_YELL:
- case ACTION_T_TEXTEMOTE:
- if (GetEventAIText(temp.action[j].param1) == DEFAULT_TEXT)
- error_db_log("TSCR: Event %u Action %u refrences missing Localized_Text entry", i, j+1);
- break;
-
- case ACTION_T_SOUND:
- if (!GetSoundEntriesStore()->LookupEntry(temp.action[j].param1))
- error_db_log("TSCR: Event %u Action %u uses non-existant SoundID %u.", i, j+1, temp.action[j].param1);
- break;
-
- case ACTION_T_RANDOM_SAY:
- case ACTION_T_RANDOM_YELL:
- case ACTION_T_RANDOM_TEXTEMOTE:
- if ((temp.action[j].param1 != 0xffffffff && GetEventAIText(temp.action[j].param1) == DEFAULT_TEXT) ||
- (temp.action[j].param2 != 0xffffffff && GetEventAIText(temp.action[j].param2) == DEFAULT_TEXT) ||
- (temp.action[j].param3 != 0xffffffff && GetEventAIText(temp.action[j].param3) == DEFAULT_TEXT))
- error_db_log("TSCR: Event %u Action %u refrences missing Localized_Text entry", i, j+1);
- break;
-
- case ACTION_T_CAST:
- {
- if (!GetSpellStore()->LookupEntry(temp.action[j].param1))
- error_db_log("TSCR: Event %u Action %u uses non-existant SpellID %u.", i, j+1, temp.action[j].param1);
-
- if (temp.action[j].param2 >= TARGET_T_END)
- error_db_log("TSCR: Event %u Action %u uses incorrect Target type", i, j+1);
- }
- break;
-
- case ACTION_T_REMOVEAURASFROMSPELL:
- {
- if (!GetSpellStore()->LookupEntry(temp.action[j].param2))
- error_db_log("TSCR: Event %u Action %u uses non-existant SpellID %u.", i, j+1, temp.action[j].param2);
-
- if (temp.action[j].param1 >= TARGET_T_END)
- error_db_log("TSCR: Event %u Action %u uses incorrect Target type", i, j+1);
- }
- break;
-
- case ACTION_T_CASTCREATUREGO:
- {
- if (!GetSpellStore()->LookupEntry(temp.action[j].param2))
- error_db_log("TSCR: Event %u Action %u uses non-existant SpellID %u.", i, j+1, temp.action[j].param2);
-
- if (temp.action[j].param3 >= TARGET_T_END)
- error_db_log("TSCR: Event %u Action %u uses incorrect Target type", i, j+1);
- }
- break;
-
- //2nd param target
- case ACTION_T_SUMMON_ID:
- {
- if (EventAI_Summon_Map.find(temp.action[j].param3) == EventAI_Summon_Map.end())
- error_db_log("TSCR: Event %u Action %u summons missing EventAI_Summon %u", i, j+1, temp.action[j].param3);
-
- if (temp.action[j].param2 >= TARGET_T_END)
- error_db_log("TSCR: Event %u Action %u uses incorrect Target type", i, j+1);
- }
- break;
-
- case ACTION_T_SUMMON:
- case ACTION_T_THREAT_SINGLE_PCT:
- case ACTION_T_QUEST_EVENT:
- case ACTION_T_SET_UNIT_FLAG:
- case ACTION_T_REMOVE_UNIT_FLAG:
- case ACTION_T_SET_INST_DATA64:
- if (temp.action[j].param2 >= TARGET_T_END)
- error_db_log("TSCR: Event %u Action %u uses incorrect Target type", i, j+1);
- break;
-
- //3rd param target
- case ACTION_T_SET_UNIT_FIELD:
- if (temp.action[j].param3 >= TARGET_T_END)
- error_db_log("TSCR: Event %u Action %u uses incorrect Target type", i, j+1);
- break;
-
- case ACTION_T_SET_PHASE:
- if (temp.action[j].param1 > 31)
- error_db_log("TSCR: Event %u Action %u attempts to set phase > 31. Phase mask cannot be used past phase 31.", i, j+1);
- break;
-
- case ACTION_T_INC_PHASE:
- if (!temp.action[j].param1)
- error_db_log("TSCR: Event %u Action %u is incrementing phase by 0. Was this intended?", i, j+1);
- break;
-
- case ACTION_T_KILLED_MONSTER:
- if (temp.event_type != EVENT_T_DEATH)
- outstring_log("SD2 WARNING: Event %u Action %u calling ACTION_T_KILLED_MONSTER outside of EVENT_T_DEATH", i, j+1);
- break;
-
- case ACTION_T_SET_INST_DATA:
- if (temp.action[j].param2 > 3)
- error_db_log("TSCR: Event %u Action %u attempts to set instance data above encounter state 3. Custom case?", i, j+1);
- break;
-
- default:
- if (temp.action[j].type >= ACTION_T_END)
- error_db_log("TSCR: Event %u Action %u has incorrect action type. Maybe DB requires updated version of SD2.", i, j+1);
- break;
- }
- }
-
- //Add to list
- EventAI_Event_List.push_back(temp);
- ++Count;
- } while (result->NextRow());
-
- delete result;
-
- outstring_log("");
- outstring_log(">> Loaded %u EventAI scripts", Count);
- }else
- {
- barGoLink bar(1);
- bar.step();
- outstring_log("");
- outstring_log(">> Loaded 0 EventAI scripts. DB table `eventai_scripts` is empty.");
- }
-
- //Free database thread and resources
- TScriptDB.HaltDelayThread();
-
-}
-
-struct TSpellSummary {
- uint8 Targets; // set of enum SelectTarget
- uint8 Effects; // set of enum SelectEffect
-}extern *SpellSummary;
-
-MANGOS_DLL_EXPORT
-void ScriptsFree()
-{
- // Free Spell Summary
- delete []SpellSummary;
-
- // Free resources before library unload
- for(int i=0;i<nrscripts;i++)
- delete m_scripts[i];
-
- nrscripts = 0;
-}
-
-MANGOS_DLL_EXPORT
-void ScriptsInit()
-{
- bool CanLoadDB = true;
-
- //Trinity Script startup
- outstring_log(" _____ _ _ _ ____ _ _");
- outstring_log("|_ _| __(_)_ __ (_) |_ _ _/ ___| ___ _ __(_)_ __ | |_ ");
- outstring_log(" | || '__| | '_ \\| | __| | | \\___ \\ / __| \'__| | \'_ \\| __|");
- outstring_log(" | || | | | | | | | |_| |_| |___) | (__| | | | |_) | |_ ");
- outstring_log(" |_||_| |_|_| |_|_|\\__|\\__, |____/ \\___|_| |_| .__/ \\__|");
- outstring_log(" |___/ |_| ");
- outstring_log("Trinity Script initializing %s", _FULLVERSION);
- outstring_log("");
-
- //Get configuration file
- if (!TScriptConfig.SetSource(_TRINITY_SCRIPT_CONFIG))
- {
- CanLoadDB = false;
- error_log("TSCR: Unable to open configuration file. Database will be unaccessible. Configuration values will use default.");
- }
- else outstring_log("TSCR: Using configuration file %s",_TRINITY_SCRIPT_CONFIG);
-
- //Check config file version
- if (TScriptConfig.GetIntDefault("ConfVersion", 0) != _TSCRIPTCONFVERSION)
- error_log("TSCR: Configuration file version doesn't match expected version. Some config variables may be wrong or missing.");
-
- //Locale
- Locale = TScriptConfig.GetIntDefault("Locale", 0);
-
- if (Locale > 8)
- {
- Locale = 0;
- error_log("TSCR: Locale set to invalid language id. Defaulting to 0.");
- }
-
- outstring_log("TSCR: Using locale %u", Locale);
-
- EAI_ErrorLevel = TScriptConfig.GetIntDefault("EAIErrorLevel", 1);
-
- switch (EAI_ErrorLevel)
- {
- case 0:
- outstring_log("TSCR: EventAI Error Reporting level set to 0 (Startup Errors only)");
- break;
- case 1:
- outstring_log("TSCR: EventAI Error Reporting level set to 1 (Startup errors and Runtime event errors)");
- break;
- case 2:
- outstring_log("TSCR: EventAI Error Reporting level set to 2 (Startup errors, Runtime event errors, and Creation errors)");
- break;
- default:
- outstring_log("TSCR: Unknown EventAI Error Reporting level. Defaulting to 1 (Startup errors and Runtime event errors)");
- EAI_ErrorLevel = 1;
- break;
- }
-
- outstring_log("");
-
- //Load database (must be called after TScriptConfig.SetSource). In case it failed, no need to even try load.
- if (CanLoadDB)
- LoadDatabase();
-
- outstring_log("TSCR: Loading C++ scripts");
- barGoLink bar(1);
- bar.step();
- outstring_log("");
-
- nrscripts = 0;
- for(int i=0;i<MAX_SCRIPTS;i++)
- m_scripts[i]=NULL;
-
- FillSpellSummary();
-
- // -- Scripts to be added --
-
- // -- Areatrigger --
- AddSC_areatrigger_scripts();
-
- // -- Boss --
- AddSC_boss_emeriss();
- AddSC_boss_taerar();
- AddSC_boss_ysondre();
-
- // -- Creature --
- AddSC_mob_event();
- AddSC_generic_creature();
-
- // -- Custom --
- AddSC_custom_example();
- AddSC_custom_gossip_codebox();
- AddSC_test();
-
- // -- GO --
- AddSC_go_scripts();
-
- // -- Guard --
- AddSC_guards();
-
- // -- Honor --
-
- // -- Item --
- AddSC_item_scripts();
- AddSC_item_test();
-
- // -- NPC --
- AddSC_npc_professions();
- AddSC_npcs_special();
-
- // -- Servers --
-
- //--------------------
- //------ ZONE --------
-
- //Alterac Mountains
- AddSC_alterac_mountains();
-
- //Arathi Highlands
- //Ashenvale Forest
- //Aunchindoun
- //--Auchenai Crypts
- AddSC_boss_exarch_maladaar();
-
- //--Mana Tombs
- AddSC_boss_nexusprince_shaffar();
- AddSC_boss_pandemonius();
-
- //--Sekketh Halls
- AddSC_boss_darkweaver_syth();
- AddSC_boss_talon_king_ikiss();
- AddSC_instance_sethekk_halls();
-
- //--Shadow Labyrinth
- AddSC_boss_ambassador_hellmaw();
- AddSC_boss_blackheart_the_inciter();
- AddSC_boss_grandmaster_vorpil();
- AddSC_boss_murmur();
- AddSC_instance_shadow_labyrinth();
-
- //Azshara
- AddSC_boss_azuregos();
- AddSC_azshara();
-
- //Azuremyst Isle
- AddSC_azuremyst_isle();
-
- //Badlands
- //Barrens
- AddSC_the_barrens();
-
- //Black Temple
- AddSC_black_temple();
- AddSC_boss_illidan();
- AddSC_boss_shade_of_akama();
- AddSC_boss_supremus();
- AddSC_boss_gurtogg_bloodboil();
- AddSC_boss_mother_shahraz();
- AddSC_boss_reliquary_of_souls();
- AddSC_boss_teron_gorefiend();
- AddSC_boss_najentus();
- AddSC_boss_illidari_council();
- AddSC_instance_black_temple();
-
- //Blackfathom Depths
- //Blackrock Depths
- AddSC_blackrock_depths();
- AddSC_boss_ambassador_flamelash();
- AddSC_boss_angerrel();
- AddSC_boss_anubshiah();
- AddSC_boss_doomrel();
- AddSC_boss_doperel();
- AddSC_boss_draganthaurissan();
- AddSC_boss_general_angerforge();
- AddSC_boss_gloomrel();
- AddSC_boss_gorosh_the_dervish();
- AddSC_boss_grizzle();
- AddSC_boss_haterel();
- AddSC_boss_high_interrogator_gerstahn();
- AddSC_boss_magmus();
- AddSC_boss_moira_bronzebeard();
- AddSC_boss_seethrel();
- AddSC_boss_vilerel();
-
- //Blackrock Spire
- AddSC_boss_drakkisath();
- AddSC_boss_halycon();
- AddSC_boss_highlordomokk();
- AddSC_boss_mothersmolderweb();
- AddSC_boss_overlordwyrmthalak();
- AddSC_boss_shadowvosh();
- AddSC_boss_thebeast();
- AddSC_boss_warmastervoone();
- AddSC_boss_quatermasterzigris();
- AddSC_boss_pyroguard_emberseer();
- AddSC_boss_gyth();
- AddSC_boss_rend_blackhand();
-
- //Blackwing lair
- AddSC_boss_razorgore();
- AddSC_boss_vael();
- AddSC_boss_broodlord();
- AddSC_boss_firemaw();
- AddSC_boss_ebonroc();
- AddSC_boss_flamegor();
- AddSC_boss_chromaggus();
- AddSC_boss_nefarian();
- AddSC_boss_victor_nefarius();
-
- //Blade's Edge Mountains
- AddSC_blades_edge_mountains();
-
- //Blasted lands
- AddSC_boss_kruul();
- AddSC_blasted_lands();
-
- //Bloodmyst Isle
- AddSC_bloodmyst_isle();
-
- //Burning steppes
- AddSC_burning_steppes();
-
- //Caverns of Time
- //--Battle for Mt. Hyjal
- AddSC_hyjal();
- AddSC_boss_archimonde();
- AddSC_instance_mount_hyjal();
-
- //--Old Hillsbrad
- AddSC_boss_captain_skarloc();
- AddSC_boss_epoch_hunter();
- AddSC_boss_lieutenant_drake();
- AddSC_instance_old_hillsbrad();
- AddSC_old_hillsbrad();
-
- //--The Dark Portal
- AddSC_boss_aeonus();
- AddSC_boss_chrono_lord_deja();
- AddSC_boss_temporus();
-
- //Coilfang Resevoir
- //--Serpent Shrine Cavern
- AddSC_boss_fathomlord_karathress();
- AddSC_boss_hydross_the_unstable();
- AddSC_boss_lady_vashj();
- AddSC_boss_leotheras_the_blind();
- AddSC_boss_morogrim_tidewalker();
- AddSC_instance_serpentshrine_cavern();
-
- //--Slave Pens
- //--Steam Vault
- AddSC_boss_hydromancer_thespia();
- AddSC_boss_mekgineer_steamrigger();
- AddSC_boss_warlord_kalithresh();
- AddSC_instance_steam_vault();
-
- //--Underbog
- AddSC_boss_hungarfen();
-
- //Darkshore
- //Darnassus
- //Deadmines
- //Deadwind pass
- //Desolace
- //Dire Maul
- //Dun Morogh
- AddSC_dun_morogh();
-
- //Durotar
- //Duskwood
- //Dustwallow marsh
- AddSC_dustwallow_marsh();
-
- //Eversong Woods
- AddSC_eversong_woods();
-
- //Exodar
- //Eastern Plaguelands
- AddSC_eastern_plaguelands();
-
- //Elwynn Forest
- AddSC_elwynn_forest();
-
- //Felwood
- AddSC_felwood();
-
- //Feralas
- AddSC_feralas();
-
- //Ghostlands
- AddSC_ghostlands();
-
- //Gnomeregan
- //Gruul's Lair
- AddSC_boss_gruul();
- AddSC_boss_high_king_maulgar();
- AddSC_instance_gruuls_lair();
-
- //Hellfire Citadel
- //--Blood Furnace
- AddSC_boss_broggok();
- AddSC_boss_kelidan_the_breaker();
- AddSC_boss_the_maker();
-
- //--Magtheridon's Lair
- AddSC_boss_magtheridon();
- AddSC_instance_magtheridons_lair();
-
- //--Shattered Halls
- AddSC_boss_grand_warlock_nethekurse();
- AddSC_boss_warbringer_omrogg();
- AddSC_instance_shattered_halls();
-
- //--Ramparts
- AddSC_boss_watchkeeper_gargolmar();
- AddSC_boss_omor_the_unscarred();
-
- //Hellfire Peninsula
- AddSC_boss_doomlordkazzak();
- AddSC_hellfire_peninsula();
-
- //Hillsbrad Foothills
- //Hinterlands
- //Ironforge
- AddSC_ironforge();
-
- //Isle of Quel'Danas
- AddSC_isle_of_queldanas();
-
- //Karazhan
- AddSC_boss_attumen();
- AddSC_boss_curator();
- AddSC_boss_maiden_of_virtue();
- AddSC_boss_shade_of_aran();
- AddSC_boss_malchezaar();
- AddSC_boss_terestian_illhoof();
- AddSC_netherspite_infernal();
- AddSC_boss_moroes();
- AddSC_bosses_opera();
- AddSC_instance_karazhan();
- AddSC_karazhan();
-
- //Loch Modan
- AddSC_loch_modan();
-
- //Lower Blackrock Spire
-
- // Magister's Terrace
- AddSC_boss_felblood_kaelthas();
- AddSC_boss_selin_fireheart();
- AddSC_boss_vexallus();
- AddSC_boss_priestess_delrissa();
- AddSC_instance_magisters_terrace();
-
- //Maraudon
- AddSC_boss_celebras_the_cursed();
- AddSC_boss_landslide();
- AddSC_boss_noxxion();
- AddSC_boss_ptheradras();
-
- //Molten core
- AddSC_boss_lucifron();
- AddSC_boss_magmadar();
- AddSC_boss_gehennas();
- AddSC_boss_garr();
- AddSC_boss_baron_geddon();
- AddSC_boss_shazzrah();
- AddSC_boss_golemagg();
- AddSC_boss_sulfuron();
- AddSC_boss_majordomo();
- AddSC_boss_ragnaros();
- AddSC_instance_molten_core();
- AddSC_molten_core();
-
- //Moonglade
- AddSC_moonglade();
-
- //Mulgore
- AddSC_mulgore();
-
- //Nagrand
- AddSC_nagrand();
-
- //Naxxramas
- AddSC_boss_anubrekhan();
- AddSC_boss_maexxna();
- AddSC_boss_patchwerk();
- AddSC_boss_razuvious();
- AddSC_boss_highlord_mograine();
- AddSC_boss_lady_blaumeux();
- AddSC_boss_sir_zeliek();
- AddSC_boss_thane_korthazz();
- AddSC_boss_kelthuzad();
- AddSC_boss_faerlina();
- AddSC_boss_loatheb();
- AddSC_boss_noth();
- AddSC_boss_gluth();
- AddSC_boss_sapphiron();
-
- //Netherstorm
- AddSC_netherstorm();
-
- //Onyxia's Lair
- AddSC_boss_onyxia();
-
- //Orgrimmar
- AddSC_orgrimmar();
-
- //Ragefire Chasm
- //Razorfen Downs
- AddSC_boss_amnennar_the_coldbringer();
-
- //Redridge Mountains
- //Ruins of Ahn'Qiraj
- //Scarlet Monastery
- AddSC_boss_arcanist_doan();
- AddSC_boss_azshir_the_sleepless();
- AddSC_boss_bloodmage_thalnos();
- AddSC_boss_herod();
- AddSC_boss_high_inquisitor_fairbanks();
- AddSC_boss_high_inquisitor_whitemane();
- AddSC_boss_houndmaster_loksey();
- AddSC_boss_interrogator_vishas();
- AddSC_boss_scarlet_commander_mograine();
- AddSC_boss_scorn();
-
- //Scholomance
- AddSC_boss_darkmaster_gandling();
- AddSC_boss_death_knight_darkreaver();
- AddSC_boss_theolenkrastinov();
- AddSC_boss_illuciabarov();
- AddSC_boss_instructormalicia();
- AddSC_boss_jandicebarov();
- AddSC_boss_kormok();
- AddSC_boss_lordalexeibarov();
- AddSC_boss_lorekeeperpolkelt();
- AddSC_boss_rasfrost();
- AddSC_boss_theravenian();
- AddSC_boss_vectus();
- AddSC_instance_scholomance();
-
- //Searing gorge
- AddSC_searing_gorge();
-
- //Shadowfang keep
- AddSC_shadowfang_keep();
- AddSC_instance_shadowfang_keep();
-
- //Shadowmoon Valley
- AddSC_boss_doomwalker();
- AddSC_shadowmoon_valley();
-
- //Shattrath
- AddSC_shattrath_city();
-
- //Silithus
- AddSC_silithus();
-
- //Silvermoon
- AddSC_silvermoon_city();
-
- //Silverpine forest
- AddSC_silverpine_forest();
-
- //Stockade
- //Stonetalon mountains
- AddSC_stonetalon_mountains();
-
- //Stormwind City
- AddSC_stormwind_city();
-
- //Stranglethorn Vale
- AddSC_stranglethorn_vale();
-
- //Stratholme
- AddSC_boss_magistrate_barthilas();
- AddSC_boss_maleki_the_pallid();
- AddSC_boss_nerubenkan();
- AddSC_boss_cannon_master_willey();
- AddSC_boss_baroness_anastari();
- AddSC_boss_ramstein_the_gorger();
- AddSC_boss_timmy_the_cruel();
- AddSC_boss_postmaster_malown();
- AddSC_boss_baron_rivendare();
- AddSC_boss_dathrohan_balnazzar();
- AddSC_boss_order_of_silver_hand();
- AddSC_instance_stratholme();
- AddSC_stratholme();
-
- //Sunken Temple
- //Tanaris
- AddSC_tanaris();
-
- //Teldrassil
- //Tempest Keep
- //--Arcatraz
- AddSC_arcatraz();
- AddSC_boss_harbinger_skyriss();
- AddSC_instance_arcatraz();
-
- //--Botanica
- AddSC_boss_high_botanist_freywinn();
- AddSC_boss_laj();
- AddSC_boss_warp_splinter();
-
- //--The Eye
- AddSC_boss_kaelthas();
- AddSC_boss_void_reaver();
- AddSC_boss_high_astromancer_solarian();
- AddSC_instance_the_eye();
- AddSC_the_eye();
-
- //--The Mechanar
- AddSC_boss_gatewatcher_iron_hand();
- AddSC_boss_nethermancer_sepethrea();
-
- //Temple of ahn'qiraj
- AddSC_boss_cthun();
- AddSC_boss_fankriss();
- AddSC_boss_huhuran();
- AddSC_bug_trio();
- AddSC_boss_sartura();
- AddSC_boss_skeram();
- AddSC_boss_twinemperors();
- AddSC_mob_anubisath_sentinel();
- AddSC_instance_temple_of_ahnqiraj();
-
- //Terokkar Forest
- AddSC_terokkar_forest();
-
- //Thousand Needles
- //Thunder Bluff
- AddSC_thunder_bluff();
-
- //Tirisfal Glades
- AddSC_tirisfal_glades();
-
- //Uldaman
- AddSC_boss_ironaya();
- AddSC_uldaman();
-
- //Undercity
- AddSC_undercity();
-
- //Un'Goro Crater
- //Upper blackrock spire
- //Wailing caverns
-
- //Western plaguelands
- AddSC_western_plaguelands();
-
- //Westfall
- //Wetlands
- //Winterspring
- AddSC_winterspring();
-
- //Zangarmarsh
- AddSC_zangarmarsh();
-
- //Zul'Farrak
- //Zul'Gurub
- AddSC_boss_jeklik();
- AddSC_boss_venoxis();
- AddSC_boss_marli();
- AddSC_boss_mandokir();
- AddSC_boss_gahzranka();
- AddSC_boss_thekal();
- AddSC_boss_arlokk();
- AddSC_boss_jindo();
- AddSC_boss_hakkar();
- AddSC_boss_grilek();
- AddSC_boss_hazzarah();
- AddSC_boss_renataki();
- AddSC_boss_wushoolay();
- AddSC_instance_zulgurub();
-
- //Zul'Aman
- AddSC_boss_janalai();
- AddSC_boss_nalorakk();
- AddSC_instance_zulaman();
- AddSC_zulaman();
-
- // -------------------
-
- outstring_log("TSCR: Loaded %u C++ Scripts", nrscripts);
- outstring_log("");
-}
-
-//*********************************
-//*** Functions used internally ***
-
-const char* GetEventAILocalizedText(uint32 entry)
-{
- if (entry == 0xffffffff)
- error_log("TSCR: Entry = -1, GetEventAILocalizedText should not be called in this case.");
-
- const char* temp = NULL;
-
- HM_NAMESPACE::hash_map<uint32, Localized_Text>::iterator i = EventAI_LocalizedTextMap.find(entry);
-
- if (i == EventAI_LocalizedTextMap.end())
- {
- error_log("TSCR: EventAI Localized Text %u not found", entry);
- return DEFAULT_TEXT;
- }
-
- switch (Locale)
- {
- case 1:
- temp = (*i).second.locale_1.c_str();
- break;
-
- case 2:
- temp = (*i).second.locale_2.c_str();
- break;
-
- case 3:
- temp = (*i).second.locale_3.c_str();
- break;
-
- case 4:
- temp = (*i).second.locale_4.c_str();
- break;
-
- case 5:
- temp = (*i).second.locale_5.c_str();
- break;
-
- case 6:
- temp = (*i).second.locale_6.c_str();
- break;
-
- case 7:
- temp = (*i).second.locale_7.c_str();
- break;
-
- case 8:
- temp = (*i).second.locale_8.c_str();
- break;
- };
-
- if (strlen(temp))
- return temp;
-
- return DEFAULT_TEXT;
-}
-
-const char* GetEventAIText(uint32 entry)
-{
- if(entry == 0xffffffff)
- error_log("TSCR: Entry = -1, GetEventAIText should not be called in this case.");
-
- const char* str = NULL;
-
- HM_NAMESPACE::hash_map<uint32, std::string>::iterator itr = EventAI_Text_Map.find(entry);
- if(itr == EventAI_Text_Map.end())
- {
- error_log("TSCR: Unable to find EventAI Text %u", entry);
- return DEFAULT_TEXT;
- }
-
- str = (*itr).second.c_str();
-
- if(strlen(str))
- return str;
-
- if(strlen((*itr).second.c_str()))
- return (*itr).second.c_str();
-
- return DEFAULT_TEXT;
-}
-
-void DoScriptText(int32 textEntry, WorldObject* pSource, Unit* target)
-{
- if (!pSource)
- {
- error_log("TSCR: DoScriptText entry %i, invalid Source pointer.",textEntry);
- return;
- }
-
- if (textEntry >= 0)
- {
- error_log("TSCR: DoScriptText attempts to process entry %i, but entry must be negative.",textEntry);
- return;
- }
-
- HM_NAMESPACE::hash_map<int32, StringTextData>::iterator i = TextMap.find(textEntry);
-
- if (i == TextMap.end())
- {
- error_log("TSCR: DoScriptText could not find text entry %i.",textEntry);
- return;
- }
-
- if((*i).second.SoundId)
- {
- if( GetSoundEntriesStore()->LookupEntry((*i).second.SoundId) )
- {
- pSource->SendPlaySound((*i).second.SoundId, false);
- }
- else
- error_log("TSCR: DoScriptText entry %i tried to process invalid sound id %u.",textEntry,(*i).second.SoundId);
- }
-
- switch((*i).second.Type)
- {
- case CHAT_TYPE_SAY:
- pSource->MonsterSay(textEntry, (*i).second.Language, target ? target->GetGUID() : 0);
- break;
- case CHAT_TYPE_YELL:
- pSource->MonsterYell(textEntry, (*i).second.Language, target ? target->GetGUID() : 0);
- break;
- case CHAT_TYPE_TEXT_EMOTE:
- pSource->MonsterTextEmote(textEntry, target ? target->GetGUID() : 0);
- break;
- case CHAT_TYPE_BOSS_EMOTE:
- pSource->MonsterTextEmote(textEntry, target ? target->GetGUID() : 0, true);
- break;
- case CHAT_TYPE_WHISPER:
- {
- if (target && target->GetTypeId() == TYPEID_PLAYER)
- pSource->MonsterWhisper(textEntry, target->GetGUID());
- else error_log("TSCR: DoScriptText entry %i cannot whisper without target unit (TYPEID_PLAYER).", textEntry);
- }break;
- case CHAT_TYPE_BOSS_WHISPER:
- {
- if (target && target->GetTypeId() == TYPEID_PLAYER)
- pSource->MonsterWhisper(textEntry, target->GetGUID(), true);
- else error_log("TSCR: DoScriptText entry %i cannot whisper without target unit (TYPEID_PLAYER).", textEntry);
- }break;
- }
-}
-
-Script* GetScriptByName(std::string Name)
-{
- if(Name.empty())
- return NULL;
-
- for(int i=0;i<MAX_SCRIPTS;i++)
- {
- if( m_scripts[i] && m_scripts[i]->Name == Name )
- return m_scripts[i];
- }
- return NULL;
-}
-
-//********************************
-//*** Functions to be Exported ***
-
-MANGOS_DLL_EXPORT
-bool GossipHello ( Player * player, Creature *_Creature )
-{
- Script *tmpscript = GetScriptByName(_Creature->GetScriptName());
- if(!tmpscript || !tmpscript->pGossipHello) return false;
-
- player->PlayerTalkClass->ClearMenus();
- return tmpscript->pGossipHello(player,_Creature);
-}
-
-MANGOS_DLL_EXPORT
-bool GossipSelect( Player *player, Creature *_Creature, uint32 sender, uint32 action )
-{
- debug_log("TSCR: Gossip selection, sender: %d, action: %d",sender, action);
-
- Script *tmpscript = GetScriptByName(_Creature->GetScriptName());
- if(!tmpscript || !tmpscript->pGossipSelect) return false;
-
- player->PlayerTalkClass->ClearMenus();
- return tmpscript->pGossipSelect(player,_Creature,sender,action);
-}
-
-MANGOS_DLL_EXPORT
-bool GossipSelectWithCode( Player *player, Creature *_Creature, uint32 sender, uint32 action, const char* sCode )
-{
- debug_log("TSCR: Gossip selection with code, sender: %d, action: %d",sender, action);
-
- Script *tmpscript = GetScriptByName(_Creature->GetScriptName());
- if(!tmpscript || !tmpscript->pGossipSelectWithCode) return false;
-
- player->PlayerTalkClass->ClearMenus();
- return tmpscript->pGossipSelectWithCode(player,_Creature,sender,action,sCode);
-}
-
-MANGOS_DLL_EXPORT
-bool QuestAccept( Player *player, Creature *_Creature, Quest const *_Quest )
-{
- Script *tmpscript = GetScriptByName(_Creature->GetScriptName());
- if(!tmpscript || !tmpscript->pQuestAccept) return false;
-
- player->PlayerTalkClass->ClearMenus();
- return tmpscript->pQuestAccept(player,_Creature,_Quest);
-}
-
-MANGOS_DLL_EXPORT
-bool QuestSelect( Player *player, Creature *_Creature, Quest const *_Quest )
-{
- Script *tmpscript = GetScriptByName(_Creature->GetScriptName());
- if(!tmpscript || !tmpscript->pQuestSelect) return false;
-
- player->PlayerTalkClass->ClearMenus();
- return tmpscript->pQuestSelect(player,_Creature,_Quest);
-}
-
-MANGOS_DLL_EXPORT
-bool QuestComplete( Player *player, Creature *_Creature, Quest const *_Quest )
-{
- Script *tmpscript = GetScriptByName(_Creature->GetScriptName());
- if(!tmpscript || !tmpscript->pQuestComplete) return false;
-
- player->PlayerTalkClass->ClearMenus();
- return tmpscript->pQuestComplete(player,_Creature,_Quest);
-}
-
-MANGOS_DLL_EXPORT
-bool ChooseReward( Player *player, Creature *_Creature, Quest const *_Quest, uint32 opt )
-{
- Script *tmpscript = GetScriptByName(_Creature->GetScriptName());
- if(!tmpscript || !tmpscript->pChooseReward) return false;
-
- player->PlayerTalkClass->ClearMenus();
- return tmpscript->pChooseReward(player,_Creature,_Quest,opt);
-}
-
-MANGOS_DLL_EXPORT
-uint32 NPCDialogStatus( Player *player, Creature *_Creature )
-{
- Script *tmpscript = GetScriptByName(_Creature->GetScriptName());
- if(!tmpscript || !tmpscript->pNPCDialogStatus) return 100;
-
- player->PlayerTalkClass->ClearMenus();
- return tmpscript->pNPCDialogStatus(player,_Creature);
-}
-
-MANGOS_DLL_EXPORT
-uint32 GODialogStatus( Player *player, GameObject *_GO )
-{
- Script *tmpscript = GetScriptByName(_GO->GetGOInfo()->ScriptName);
- if(!tmpscript || !tmpscript->pGODialogStatus) return 100;
-
- player->PlayerTalkClass->ClearMenus();
- return tmpscript->pGODialogStatus(player,_GO);
-}
-
-MANGOS_DLL_EXPORT
-bool ItemHello( Player *player, Item *_Item, Quest const *_Quest )
-{
- Script *tmpscript = GetScriptByName(_Item->GetProto()->ScriptName);
- if(!tmpscript || !tmpscript->pItemHello) return false;
-
- player->PlayerTalkClass->ClearMenus();
- return tmpscript->pItemHello(player,_Item,_Quest);
-}
-
-MANGOS_DLL_EXPORT
-bool ItemQuestAccept( Player *player, Item *_Item, Quest const *_Quest )
-{
- Script *tmpscript = GetScriptByName(_Item->GetProto()->ScriptName);
- if(!tmpscript || !tmpscript->pItemQuestAccept) return false;
-
- player->PlayerTalkClass->ClearMenus();
- return tmpscript->pItemQuestAccept(player,_Item,_Quest);
-}
-
-MANGOS_DLL_EXPORT
-bool GOHello( Player *player, GameObject *_GO )
-{
- Script *tmpscript = GetScriptByName(_GO->GetGOInfo()->ScriptName);
- if(!tmpscript || !tmpscript->pGOHello) return false;
-
- player->PlayerTalkClass->ClearMenus();
- return tmpscript->pGOHello(player,_GO);
-}
-
-MANGOS_DLL_EXPORT
-bool GOQuestAccept( Player *player, GameObject *_GO, Quest const *_Quest )
-{
- Script *tmpscript = GetScriptByName(_GO->GetGOInfo()->ScriptName);
- if(!tmpscript || !tmpscript->pGOQuestAccept) return false;
-
- player->PlayerTalkClass->ClearMenus();
- return tmpscript->pGOQuestAccept(player,_GO,_Quest);
-}
-
-MANGOS_DLL_EXPORT
-bool GOChooseReward( Player *player, GameObject *_GO, Quest const *_Quest, uint32 opt )
-{
- Script *tmpscript = GetScriptByName(_GO->GetGOInfo()->ScriptName);
- if(!tmpscript || !tmpscript->pGOChooseReward) return false;
-
- player->PlayerTalkClass->ClearMenus();
- return tmpscript->pGOChooseReward(player,_GO,_Quest,opt);
-}
-
-MANGOS_DLL_EXPORT
-bool AreaTrigger( Player *player, AreaTriggerEntry * atEntry)
-{
- Script *tmpscript = NULL;
-
- tmpscript = GetScriptByName(GetAreaTriggerScriptNameById(atEntry->id));
- if(!tmpscript || !tmpscript->pAreaTrigger) return false;
-
- return tmpscript->pAreaTrigger(player, atEntry);
-}
-
-MANGOS_DLL_EXPORT
-CreatureAI* GetAI(Creature *_Creature)
-{
- Script *tmpscript = GetScriptByName(_Creature->GetScriptName());
-
- if(!tmpscript || !tmpscript->GetAI) return NULL;
- return tmpscript->GetAI(_Creature);
-}
-
-MANGOS_DLL_EXPORT
-bool ItemUse( Player *player, Item* _Item, SpellCastTargets const& targets)
-{
- Script *tmpscript = GetScriptByName(_Item->GetProto()->ScriptName);
- if(!tmpscript || !tmpscript->pItemUse) return false;
-
- return tmpscript->pItemUse(player,_Item,targets);
-}
-
-MANGOS_DLL_EXPORT
-bool ReceiveEmote( Player *player, Creature *_Creature, uint32 emote )
-{
- Script *tmpscript = GetScriptByName(_Creature->GetScriptName());
- if(!tmpscript || !tmpscript->pReceiveEmote) return false;
-
- return tmpscript->pReceiveEmote(player, _Creature, emote);
-}
-
-MANGOS_DLL_EXPORT
-InstanceData* CreateInstanceData(Map *map)
-{
- Script *tmpscript = NULL;
-
- if(!map->IsDungeon()) return false;
-
- tmpscript = GetScriptByName(((InstanceMap*)map)->GetScript());
- if(!tmpscript || !tmpscript->GetInstanceData) return false;
-
- return tmpscript->GetInstanceData(map);
-}
+/* Copyright (C) 2006 - 2008 TrinityScript <https://scriptdev2.svn.sourceforge.net/>
+ * This program is free software licensed under GPL version 2
+ * Please see the included DOCS/LICENSE.TXT for more information */
+
+#include "precompiled.h"
+#include "Config/Config.h"
+#include "Database/DatabaseEnv.h"
+#include "Database/DBCStores.h"
+#include "ObjectMgr.h"
+#include "ProgressBar.h"
+#include "scripts/creature/mob_event_ai.h"
+
+#define _FULLVERSION "TrinityScript"
+
+#ifndef _TSCRIPTCONFVERSION
+# define _TSCRIPTCONFVERSION 2008100201
+#endif //_TSCRIPTCONFVERSION
+
+#ifndef _TRINITY_SCRIPT_CONFIG
+# define _TRINITY_SCRIPT_CONFIG "trinityscript.conf"
+#endif //_TRINITY_SCRIPT_CONFIG
+
+//*** Global data ***
+int nrscripts;
+Script *m_scripts[MAX_SCRIPTS];
+
+DatabaseType TScriptDB;
+Config TScriptConfig;
+uint32 Locale;
+
+// String text additional data, used in TextMap
+struct StringTextData
+{
+ uint32 SoundId;
+ uint8 Type;
+ uint32 Language;
+};
+
+// Enums used by StringTextData::Type
+enum ChatType
+{
+ CHAT_TYPE_SAY = 0,
+ CHAT_TYPE_YELL = 1,
+ CHAT_TYPE_TEXT_EMOTE = 2,
+ CHAT_TYPE_BOSS_EMOTE = 3,
+ CHAT_TYPE_WHISPER = 4,
+ CHAT_TYPE_BOSS_WHISPER = 5,
+};
+
+#define TEXT_SOURCE_RANGE -100000 //the amount of entries each text source has available
+
+// Text Maps
+HM_NAMESPACE::hash_map<uint32, std::string> EventAI_Text_Map;
+HM_NAMESPACE::hash_map<int32, StringTextData> TextMap;
+
+// Localized Text structure for storing locales (for EAI and SD2 scripts).
+struct Localized_Text
+{
+ std::string locale_1;
+ std::string locale_2;
+ std::string locale_3;
+ std::string locale_4;
+ std::string locale_5;
+ std::string locale_6;
+ std::string locale_7;
+ std::string locale_8;
+};
+//*** End Global data ***
+
+//*** EventAI data ***
+HM_NAMESPACE::hash_map<uint32, Localized_Text> EventAI_LocalizedTextMap;
+
+//Event AI structure. Used exclusivly by mob_event_ai.cpp (60 bytes each)
+std::list<EventAI_Event> EventAI_Event_List;
+
+//Event AI summon structure. Used exclusivly by mob_event_ai.cpp.
+HM_NAMESPACE::hash_map<uint32, EventAI_Summon> EventAI_Summon_Map;
+
+//Event AI error prevention structure. Used at runtime to prevent error log spam of same creature id.
+//HM_NAMESPACE::hash_map<uint32, EventAI_CreatureError> EventAI_CreatureErrorPreventionList;
+
+uint32 EAI_ErrorLevel;
+//*** End EventAI data ***
+
+void FillSpellSummary();
+
+// -- Scripts to be added --
+
+// -- Areatrigger --
+extern void AddSC_areatrigger_scripts();
+
+// -- Boss --
+extern void AddSC_boss_emeriss();
+extern void AddSC_boss_taerar();
+extern void AddSC_boss_ysondre();
+
+// -- Creature --
+extern void AddSC_mob_event();
+extern void AddSC_generic_creature();
+
+// -- Custom --
+extern void AddSC_custom_example();
+extern void AddSC_custom_gossip_codebox();
+extern void AddSC_test();
+
+// -- GO --
+extern void AddSC_go_scripts();
+
+// -- Guard --
+extern void AddSC_guards();
+
+// -- Honor --
+
+// -- Item --
+extern void AddSC_item_scripts();
+extern void AddSC_item_test();
+
+// -- NPC --
+extern void AddSC_npc_professions();
+extern void AddSC_npcs_special();
+
+// -- Servers --
+
+//--------------------
+//------ ZONE --------
+
+//Alterac Mountains
+extern void AddSC_alterac_mountains();
+
+//Arathi Highlands
+//Ashenvale Forest
+//Aunchindoun
+//--Auchenai Crypts
+extern void AddSC_boss_exarch_maladaar();
+//--Mana Tombs
+extern void AddSC_boss_nexusprince_shaffar();
+extern void AddSC_boss_pandemonius();
+
+//--Sekketh Halls
+extern void AddSC_boss_darkweaver_syth();
+extern void AddSC_boss_talon_king_ikiss();
+extern void AddSC_instance_sethekk_halls();
+
+//--Shadow Labyrinth
+extern void AddSC_boss_ambassador_hellmaw();
+extern void AddSC_boss_blackheart_the_inciter();
+extern void AddSC_boss_grandmaster_vorpil();
+extern void AddSC_boss_murmur();
+extern void AddSC_instance_shadow_labyrinth();
+
+//Azshara
+extern void AddSC_boss_azuregos();
+extern void AddSC_azshara();
+
+//Azuremyst Isle
+extern void AddSC_azuremyst_isle();
+
+//Badlands
+//Barrens
+extern void AddSC_the_barrens();
+
+//Black Temple
+extern void AddSC_black_temple();
+extern void AddSC_boss_illidan();
+extern void AddSC_boss_shade_of_akama();
+extern void AddSC_boss_supremus();
+extern void AddSC_boss_gurtogg_bloodboil();
+extern void AddSC_boss_mother_shahraz();
+extern void AddSC_boss_reliquary_of_souls();
+extern void AddSC_boss_teron_gorefiend();
+extern void AddSC_boss_najentus();
+extern void AddSC_boss_illidari_council();
+extern void AddSC_instance_black_temple();
+
+//Blackfathom Depths
+//Blackrock Depths
+extern void AddSC_blackrock_depths();
+extern void AddSC_boss_ambassador_flamelash();
+extern void AddSC_boss_angerrel();
+extern void AddSC_boss_anubshiah();
+extern void AddSC_boss_doomrel();
+extern void AddSC_boss_doperel();
+extern void AddSC_boss_draganthaurissan();
+extern void AddSC_boss_general_angerforge();
+extern void AddSC_boss_gloomrel();
+extern void AddSC_boss_gorosh_the_dervish();
+extern void AddSC_boss_grizzle();
+extern void AddSC_boss_haterel();
+extern void AddSC_boss_high_interrogator_gerstahn();
+extern void AddSC_boss_magmus();
+extern void AddSC_boss_moira_bronzebeard();
+extern void AddSC_boss_seethrel();
+extern void AddSC_boss_vilerel();
+
+//Blackrock Spire
+extern void AddSC_boss_drakkisath();
+extern void AddSC_boss_halycon();
+extern void AddSC_boss_highlordomokk();
+extern void AddSC_boss_mothersmolderweb();
+extern void AddSC_boss_overlordwyrmthalak();
+extern void AddSC_boss_shadowvosh();
+extern void AddSC_boss_thebeast();
+extern void AddSC_boss_warmastervoone();
+extern void AddSC_boss_quatermasterzigris();
+extern void AddSC_boss_pyroguard_emberseer();
+extern void AddSC_boss_gyth();
+extern void AddSC_boss_rend_blackhand();
+
+//Blackwing lair
+extern void AddSC_boss_razorgore();
+extern void AddSC_boss_vael();
+extern void AddSC_boss_broodlord();
+extern void AddSC_boss_firemaw();
+extern void AddSC_boss_ebonroc();
+extern void AddSC_boss_flamegor();
+extern void AddSC_boss_chromaggus();
+extern void AddSC_boss_nefarian();
+extern void AddSC_boss_victor_nefarius();
+
+//Blade's Edge Mountains
+extern void AddSC_blades_edge_mountains();
+
+//Blasted lands
+extern void AddSC_boss_kruul();
+extern void AddSC_blasted_lands();
+
+//Bloodmyst Isle
+extern void AddSC_bloodmyst_isle();
+
+//Burning steppes
+extern void AddSC_burning_steppes();
+
+//Caverns of Time
+//--Battle for Mt. Hyjal
+extern void AddSC_hyjal();
+extern void AddSC_boss_archimonde();
+extern void AddSC_instance_mount_hyjal();
+
+//--Old Hillsbrad
+extern void AddSC_boss_captain_skarloc();
+extern void AddSC_boss_epoch_hunter();
+extern void AddSC_boss_lieutenant_drake();
+extern void AddSC_instance_old_hillsbrad();
+extern void AddSC_old_hillsbrad();
+
+//--The Dark Portal
+extern void AddSC_boss_aeonus();
+extern void AddSC_boss_chrono_lord_deja();
+extern void AddSC_boss_temporus();
+
+//Coilfang Resevoir
+//--Serpent Shrine Cavern
+extern void AddSC_boss_fathomlord_karathress();
+extern void AddSC_boss_hydross_the_unstable();
+extern void AddSC_boss_lady_vashj();
+extern void AddSC_boss_leotheras_the_blind();
+extern void AddSC_boss_morogrim_tidewalker();
+extern void AddSC_instance_serpentshrine_cavern();
+
+//--Slave Pens
+
+//--Steam Vault
+extern void AddSC_boss_hydromancer_thespia();
+extern void AddSC_boss_mekgineer_steamrigger();
+extern void AddSC_boss_warlord_kalithresh();
+extern void AddSC_instance_steam_vault();
+
+//--Underbog
+extern void AddSC_boss_hungarfen();
+
+//Darkshore
+//Darnassus
+//Deadmines
+//Deadwind pass
+//Desolace
+//Dire Maul
+//Dun Morogh
+extern void AddSC_dun_morogh();
+
+//Durotar
+//Duskwood
+//Dustwallow marsh
+extern void AddSC_dustwallow_marsh();
+
+//Eversong Woods
+extern void AddSC_eversong_woods();
+
+//Exodar
+//Eastern Plaguelands
+extern void AddSC_eastern_plaguelands();
+
+//Elwynn Forest
+extern void AddSC_elwynn_forest();
+
+//Felwood
+extern void AddSC_felwood();
+
+//Feralas
+extern void AddSC_feralas();
+
+//Ghostlands
+extern void AddSC_ghostlands();
+
+//Gnomeregan
+//Gruul's Lair
+extern void AddSC_boss_gruul();
+extern void AddSC_boss_high_king_maulgar();
+extern void AddSC_instance_gruuls_lair();
+
+//Hellfire Citadel
+//--Blood Furnace
+extern void AddSC_boss_broggok();
+extern void AddSC_boss_kelidan_the_breaker();
+extern void AddSC_boss_the_maker();
+
+//--Magtheridon's Lair
+extern void AddSC_boss_magtheridon();
+extern void AddSC_instance_magtheridons_lair();
+
+//--Shattered Halls
+extern void AddSC_boss_grand_warlock_nethekurse();
+extern void AddSC_boss_warbringer_omrogg();
+extern void AddSC_instance_shattered_halls();
+
+//--Ramparts
+extern void AddSC_boss_watchkeeper_gargolmar();
+extern void AddSC_boss_omor_the_unscarred();
+
+//Hellfire Peninsula
+extern void AddSC_boss_doomlordkazzak();
+extern void AddSC_hellfire_peninsula();
+
+//Hillsbrad Foothills
+//Hinterlands
+//Ironforge
+extern void AddSC_ironforge();
+
+//Isle of Quel'Danas
+extern void AddSC_isle_of_queldanas();
+
+//Karazhan
+extern void AddSC_boss_attumen();
+extern void AddSC_boss_curator();
+extern void AddSC_boss_maiden_of_virtue();
+extern void AddSC_boss_shade_of_aran();
+extern void AddSC_boss_malchezaar();
+extern void AddSC_boss_terestian_illhoof();
+extern void AddSC_netherspite_infernal();
+extern void AddSC_boss_moroes();
+extern void AddSC_bosses_opera();
+extern void AddSC_instance_karazhan();
+extern void AddSC_karazhan();
+
+//Loch Modan
+extern void AddSC_loch_modan();
+
+//Lower Blackrock Spire
+
+// Magister's Terrace
+extern void AddSC_boss_felblood_kaelthas();
+extern void AddSC_boss_selin_fireheart();
+extern void AddSC_boss_vexallus();
+extern void AddSC_boss_priestess_delrissa();
+extern void AddSC_instance_magisters_terrace();
+
+//Maraudon
+extern void AddSC_boss_celebras_the_cursed();
+extern void AddSC_boss_landslide();
+extern void AddSC_boss_noxxion();
+extern void AddSC_boss_ptheradras();
+
+//Molten core
+extern void AddSC_boss_lucifron();
+extern void AddSC_boss_magmadar();
+extern void AddSC_boss_gehennas();
+extern void AddSC_boss_garr();
+extern void AddSC_boss_baron_geddon();
+extern void AddSC_boss_shazzrah();
+extern void AddSC_boss_golemagg();
+extern void AddSC_boss_sulfuron();
+extern void AddSC_boss_majordomo();
+extern void AddSC_boss_ragnaros();
+extern void AddSC_instance_molten_core();
+extern void AddSC_molten_core();
+
+//Moonglade
+extern void AddSC_moonglade();
+
+//Mulgore
+extern void AddSC_mulgore();
+
+//Nagrand
+extern void AddSC_nagrand();
+
+//Naxxramas
+extern void AddSC_boss_anubrekhan();
+extern void AddSC_boss_maexxna();
+extern void AddSC_boss_patchwerk();
+extern void AddSC_boss_razuvious();
+extern void AddSC_boss_highlord_mograine();
+extern void AddSC_boss_lady_blaumeux();
+extern void AddSC_boss_sir_zeliek();
+extern void AddSC_boss_thane_korthazz();
+extern void AddSC_boss_kelthuzad();
+extern void AddSC_boss_faerlina();
+extern void AddSC_boss_loatheb();
+extern void AddSC_boss_noth();
+extern void AddSC_boss_gluth();
+extern void AddSC_boss_sapphiron();
+
+//Netherstorm
+extern void AddSC_netherstorm();
+
+//Onyxia's Lair
+extern void AddSC_boss_onyxia();
+
+//Orgrimmar
+extern void AddSC_orgrimmar();
+
+//Ragefire Chasm
+//Razorfen Downs
+extern void AddSC_boss_amnennar_the_coldbringer();
+
+//Redridge Mountains
+//Ruins of Ahn'Qiraj
+//Scarlet Monastery
+extern void AddSC_boss_arcanist_doan();
+extern void AddSC_boss_azshir_the_sleepless();
+extern void AddSC_boss_bloodmage_thalnos();
+extern void AddSC_boss_herod();
+extern void AddSC_boss_high_inquisitor_fairbanks();
+extern void AddSC_boss_high_inquisitor_whitemane();
+extern void AddSC_boss_houndmaster_loksey();
+extern void AddSC_boss_interrogator_vishas();
+extern void AddSC_boss_scarlet_commander_mograine();
+extern void AddSC_boss_scorn();
+
+//Scholomance
+extern void AddSC_boss_darkmaster_gandling();
+extern void AddSC_boss_death_knight_darkreaver();
+extern void AddSC_boss_theolenkrastinov();
+extern void AddSC_boss_illuciabarov();
+extern void AddSC_boss_instructormalicia();
+extern void AddSC_boss_jandicebarov();
+extern void AddSC_boss_kormok();
+extern void AddSC_boss_lordalexeibarov();
+extern void AddSC_boss_lorekeeperpolkelt();
+extern void AddSC_boss_rasfrost();
+extern void AddSC_boss_theravenian();
+extern void AddSC_boss_vectus();
+extern void AddSC_instance_scholomance();
+
+//Searing gorge
+extern void AddSC_searing_gorge();
+
+//Shadowfang keep
+extern void AddSC_shadowfang_keep();
+extern void AddSC_instance_shadowfang_keep();
+
+//Shadowmoon Valley
+extern void AddSC_boss_doomwalker();
+extern void AddSC_shadowmoon_valley();
+
+//Shattrath
+extern void AddSC_shattrath_city();
+
+//Silithus
+extern void AddSC_silithus();
+
+//Silvermoon
+extern void AddSC_silvermoon_city();
+
+//Silverpine forest
+extern void AddSC_silverpine_forest();
+
+//Stockade
+//Stonetalon mountains
+extern void AddSC_stonetalon_mountains();
+
+//Stormwind City
+extern void AddSC_stormwind_city();
+
+//Stranglethorn Vale
+extern void AddSC_stranglethorn_vale();
+
+//Stratholme
+extern void AddSC_boss_magistrate_barthilas();
+extern void AddSC_boss_maleki_the_pallid();
+extern void AddSC_boss_nerubenkan();
+extern void AddSC_boss_cannon_master_willey();
+extern void AddSC_boss_baroness_anastari();
+extern void AddSC_boss_ramstein_the_gorger();
+extern void AddSC_boss_timmy_the_cruel();
+extern void AddSC_boss_postmaster_malown();
+extern void AddSC_boss_baron_rivendare();
+extern void AddSC_boss_dathrohan_balnazzar();
+extern void AddSC_boss_order_of_silver_hand();
+extern void AddSC_instance_stratholme();
+extern void AddSC_stratholme();
+
+//Sunken Temple
+//Tanaris
+extern void AddSC_tanaris();
+
+//Teldrassil
+//Tempest Keep
+//--Arcatraz
+extern void AddSC_arcatraz();
+extern void AddSC_boss_harbinger_skyriss();
+extern void AddSC_instance_arcatraz();
+
+//--Botanica
+extern void AddSC_boss_high_botanist_freywinn();
+extern void AddSC_boss_laj();
+extern void AddSC_boss_warp_splinter();
+
+//--The Eye
+extern void AddSC_boss_kaelthas();
+extern void AddSC_boss_void_reaver();
+extern void AddSC_boss_high_astromancer_solarian();
+extern void AddSC_instance_the_eye();
+extern void AddSC_the_eye();
+
+//--The Mechanar
+extern void AddSC_boss_gatewatcher_iron_hand();
+extern void AddSC_boss_nethermancer_sepethrea();
+
+//Temple of ahn'qiraj
+extern void AddSC_boss_cthun();
+extern void AddSC_boss_fankriss();
+extern void AddSC_boss_huhuran();
+extern void AddSC_bug_trio();
+extern void AddSC_boss_sartura();
+extern void AddSC_boss_skeram();
+extern void AddSC_boss_twinemperors();
+extern void AddSC_mob_anubisath_sentinel();
+extern void AddSC_instance_temple_of_ahnqiraj();
+
+//Terokkar Forest
+extern void AddSC_terokkar_forest();
+
+//Thousand Needles
+//Thunder Bluff
+extern void AddSC_thunder_bluff();
+
+//Tirisfal Glades
+extern void AddSC_tirisfal_glades();
+
+//Uldaman
+extern void AddSC_boss_ironaya();
+extern void AddSC_uldaman();
+
+//Undercity
+extern void AddSC_undercity();
+
+//Un'Goro Crater
+//Upper blackrock spire
+//Wailing caverns
+
+//Western plaguelands
+extern void AddSC_western_plaguelands();
+
+//Westfall
+//Wetlands
+//Winterspring
+extern void AddSC_winterspring();
+
+//Zangarmarsh
+extern void AddSC_zangarmarsh();
+
+//Zul'Farrak
+//Zul'Gurub
+extern void AddSC_boss_jeklik();
+extern void AddSC_boss_venoxis();
+extern void AddSC_boss_marli();
+extern void AddSC_boss_mandokir();
+extern void AddSC_boss_gahzranka();
+extern void AddSC_boss_thekal();
+extern void AddSC_boss_arlokk();
+extern void AddSC_boss_jindo();
+extern void AddSC_boss_hakkar();
+extern void AddSC_boss_grilek();
+extern void AddSC_boss_hazzarah();
+extern void AddSC_boss_renataki();
+extern void AddSC_boss_wushoolay();
+extern void AddSC_instance_zulgurub();
+//Zul'Aman
+extern void AddSC_boss_janalai();
+extern void AddSC_boss_nalorakk();
+extern void AddSC_instance_zulaman();
+extern void AddSC_zulaman();
+
+// -------------------
+void LoadDatabase()
+{
+ //Get db string from file
+ char const* dbstring = NULL;
+
+ if( !TScriptConfig.GetString("TScriptDatabaseInfo", &dbstring) )
+ {
+ error_log("TSCR: Missing Trinity Script database info from configuration file. Load database aborted.");
+ return;
+ }
+
+ //Initialize connection to DB
+ if( dbstring && TScriptDB.Initialize(dbstring) )
+ outstring_log("TSCR: TrinityScript database: %s",dbstring);
+ else
+ {
+ error_log("TSCR: Unable to connect to Database. Load database aborted.");
+ return;
+ }
+
+ //***Preform all DB queries here***
+ QueryResult *result;
+
+ //Get Version information
+ result = TScriptDB.PQuery("SELECT version FROM script_db_version");
+
+ if (result)
+ {
+ Field *fields = result->Fetch();
+ outstring_log("TSCR: Database version is: %s", fields[0].GetString());
+ outstring_log("");
+ delete result;
+
+ }else
+ {
+ error_log("TSCR: Missing `script_db_version` information.");
+ outstring_log("");
+ }
+
+ // Drop Existing Text Map, only done once and we are ready to add data from multiple sources.
+ TextMap.clear();
+
+ //TODO: Add load from eventai_texts here
+
+ // Load Script Text
+ outstring_log("TSCR: Loading Script Texts...");
+ LoadMangosStrings(TScriptDB,"script_texts",TEXT_SOURCE_RANGE,(TEXT_SOURCE_RANGE*2)+1);
+
+ // Gather Additional data from Script Texts
+ result = TScriptDB.PQuery("SELECT entry, sound, type, language FROM script_texts");
+
+ outstring_log("TSCR: Loading Script Texts additional data...");
+ if (result)
+ {
+ barGoLink bar(result->GetRowCount());
+ uint32 count = 0;
+
+ do
+ {
+ bar.step();
+ Field* fields = result->Fetch();
+ StringTextData temp;
+
+ int32 i = fields[0].GetInt32();
+ temp.SoundId = fields[1].GetInt32();
+ temp.Type = fields[2].GetInt32();
+ temp.Language = fields[3].GetInt32();
+
+ if (i >= 0)
+ {
+ error_db_log("TSCR: Entry %i in table `script_texts` is not a negative value.",i);
+ continue;
+ }
+
+ if (i > TEXT_SOURCE_RANGE || i <= TEXT_SOURCE_RANGE*2)
+ {
+ error_db_log("TSCR: Entry %i in table `script_texts` is out of accepted entry range for table.",i);
+ continue;
+ }
+
+ if (temp.SoundId)
+ {
+ if (!GetSoundEntriesStore()->LookupEntry(temp.SoundId))
+ error_db_log("TSCR: Entry %i in table `script_texts` has soundId %u but sound does not exist.",i,temp.SoundId);
+ }
+
+ if (!GetLanguageDescByID(temp.Language))
+ error_db_log("TSCR: Entry %i in table `script_texts` using Language %u but Language does not exist.",i,temp.Language);
+
+ if (temp.Type > CHAT_TYPE_BOSS_WHISPER)
+ error_db_log("TSCR: Entry %i in table `script_texts` has Type %u but this Chat Type does not exist.",i,temp.Type);
+
+ TextMap[i] = temp;
+ ++count;
+ } while (result->NextRow());
+
+ delete result;
+
+ outstring_log("");
+ outstring_log(">> TSCR: Loaded %u additional Script Texts data.", count);
+ }else
+ {
+ barGoLink bar(1);
+ bar.step();
+ outstring_log("");
+ outstring_log(">> Loaded 0 additional Script Texts data. DB table `script_texts` is empty.");
+ }
+
+ // Load Custom Text
+ outstring_log("TSCR: Loading Custom Texts...");
+ LoadMangosStrings(TScriptDB,"custom_texts",TEXT_SOURCE_RANGE*2,(TEXT_SOURCE_RANGE*3)+1);
+
+ // Gather Additional data from Custom Texts
+ result = TScriptDB.PQuery("SELECT entry, sound, type, language FROM custom_texts");
+
+ outstring_log("TSCR: Loading Custom Texts additional data...");
+ if (result)
+ {
+ barGoLink bar(result->GetRowCount());
+ uint32 count = 0;
+
+ do
+ {
+ bar.step();
+ Field* fields = result->Fetch();
+ StringTextData temp;
+
+ int32 i = fields[0].GetInt32();
+ temp.SoundId = fields[1].GetInt32();
+ temp.Type = fields[2].GetInt32();
+ temp.Language = fields[3].GetInt32();
+
+ if (i >= 0)
+ {
+ error_db_log("TSCR: Entry %i in table `custom_texts` is not a negative value.",i);
+ continue;
+ }
+
+ if (i > TEXT_SOURCE_RANGE*2 || i <= TEXT_SOURCE_RANGE*3)
+ {
+ error_db_log("TSCR: Entry %i in table `custom_texts` is out of accepted entry range for table.",i);
+ continue;
+ }
+
+ if (temp.SoundId)
+ {
+ if (!GetSoundEntriesStore()->LookupEntry(temp.SoundId))
+ error_db_log("TSCR: Entry %i in table `custom_texts` has soundId %u but sound does not exist.",i,temp.SoundId);
+ }
+
+ if (!GetLanguageDescByID(temp.Language))
+ error_db_log("TSCR: Entry %i in table `custom_texts` using Language %u but Language does not exist.",i,temp.Language);
+
+ if (temp.Type > CHAT_TYPE_BOSS_WHISPER)
+ error_db_log("TSCR: Entry %i in table `custom_texts` has Type %u but this Chat Type does not exist.",i,temp.Type);
+
+ TextMap[i] = temp;
+ ++count;
+ } while (result->NextRow());
+
+ delete result;
+
+ outstring_log("");
+ outstring_log(">> Loaded %u additional Custom Texts data.", count);
+ }else
+ {
+ barGoLink bar(1);
+ bar.step();
+ outstring_log("");
+ outstring_log(">> Loaded 0 additional Custom Texts data. DB table `custom_texts` is empty.");
+ }
+
+ // Drop existing Event AI Localized Text hash map
+ EventAI_LocalizedTextMap.clear();
+
+ // Gather EventAI Localized Texts
+ result = TScriptDB.PQuery("SELECT id, locale_1, locale_2, locale_3, locale_4, locale_5, locale_6, locale_7, locale_8 "
+ "FROM eventai_localized_texts");
+
+ outstring_log("TSCR: Loading EventAI Localized Texts...");
+ if(result)
+ {
+ barGoLink bar(result->GetRowCount());
+ uint32 count = 0;
+
+ do
+ {
+ Localized_Text temp;
+ bar.step();
+
+ Field *fields = result->Fetch();
+
+ uint32 i = fields[0].GetInt32();
+
+ temp.locale_1 = fields[1].GetString();
+ temp.locale_2 = fields[2].GetString();
+ temp.locale_3 = fields[3].GetString();
+ temp.locale_4 = fields[4].GetString();
+ temp.locale_5 = fields[5].GetString();
+ temp.locale_6 = fields[6].GetString();
+ temp.locale_7 = fields[7].GetString();
+ temp.locale_8 = fields[8].GetString();
+
+ EventAI_LocalizedTextMap[i] = temp;
+ ++count;
+
+ }while(result->NextRow());
+
+ delete result;
+
+ outstring_log("");
+ outstring_log(">> Loaded %u EventAI Localized Texts", count);
+ }else
+ {
+ barGoLink bar(1);
+ bar.step();
+ outstring_log("");
+ outstring_log(">> Loaded 0 EventAI Localized Texts. DB table `eventai_localized_texts` is empty");
+ }
+
+ //Drop existing EventAI Text hash map
+ EventAI_Text_Map.clear();
+
+ //Gather EventAI Text Entries
+ result = TScriptDB.PQuery("SELECT id, text FROM eventai_texts");
+
+ outstring_log("TSCR: Loading EventAI_Texts...");
+ if (result)
+ {
+ barGoLink bar(result->GetRowCount());
+ uint32 Count = 0;
+
+ do
+ {
+ bar.step();
+ Field *fields = result->Fetch();
+
+ uint32 i = fields[0].GetInt32();
+
+ std::string text = fields[1].GetString();
+
+ if (!strlen(text.c_str()))
+ error_db_log("TSCR: EventAI text %u is empty", i);
+
+ EventAI_Text_Map[i] = text;
+ ++Count;
+
+ }while (result->NextRow());
+
+ delete result;
+
+ outstring_log("");
+ outstring_log(">> Loaded %u EventAI texts", Count);
+ }else
+ {
+ barGoLink bar(1);
+ bar.step();
+ outstring_log("");
+ outstring_log(">> Loaded 0 EventAI texts. DB table `eventai_texts` is empty.");
+ }
+
+ //Gather event data
+ result = TScriptDB.PQuery("SELECT id, position_x, position_y, position_z, orientation, spawntimesecs FROM eventai_summons");
+
+ //Drop Existing EventSummon Map
+ EventAI_Summon_Map.clear();
+
+ outstring_log("TSCR: Loading EventAI_Summons...");
+ if (result)
+ {
+ barGoLink bar(result->GetRowCount());
+ uint32 Count = 0;
+
+ do
+ {
+ bar.step();
+ Field *fields = result->Fetch();
+
+ EventAI_Summon temp;
+
+ uint32 i = fields[0].GetUInt32();
+ temp.position_x = fields[1].GetFloat();
+ temp.position_y = fields[2].GetFloat();
+ temp.position_z = fields[3].GetFloat();
+ temp.orientation = fields[4].GetFloat();
+ temp.SpawnTimeSecs = fields[5].GetUInt32();
+
+ //Add to map
+ EventAI_Summon_Map[i] = temp;
+ ++Count;
+ }while (result->NextRow());
+
+ delete result;
+
+ outstring_log("");
+ outstring_log(">> Loaded %u EventAI summon definitions", Count);
+ }else
+ {
+ barGoLink bar(1);
+ bar.step();
+ outstring_log("");
+ outstring_log(">> Loaded 0 EventAI Summon definitions. DB table `eventai_summons` is empty.");
+ }
+
+ //Gather event data
+ result = TScriptDB.PQuery("SELECT id, creature_id, event_type, event_inverse_phase_mask, event_chance, event_flags, "
+ "event_param1, event_param2, event_param3, event_param4, "
+ "action1_type, action1_param1, action1_param2, action1_param3, "
+ "action2_type, action2_param1, action2_param2, action2_param3, "
+ "action3_type, action3_param1, action3_param2, action3_param3 "
+ "FROM eventai_scripts");
+
+ //Drop Existing EventAI List
+ EventAI_Event_List.clear();
+
+ outstring_log("TSCR: Loading EventAI_Scripts...");
+ if (result)
+ {
+ barGoLink bar(result->GetRowCount());
+ uint32 Count = 0;
+
+ do
+ {
+ bar.step();
+ Field *fields = result->Fetch();
+
+ EventAI_Event temp;
+
+ temp.event_id = fields[0].GetUInt32();
+ uint32 i = temp.event_id;
+ temp.creature_id = fields[1].GetUInt32();
+ temp.event_type = fields[2].GetUInt16();
+ temp.event_inverse_phase_mask = fields[3].GetUInt32();
+ temp.event_chance = fields[4].GetUInt8();
+ temp.event_flags = fields[5].GetUInt8();
+ temp.event_param1 = fields[6].GetUInt32();
+ temp.event_param2 = fields[7].GetUInt32();
+ temp.event_param3 = fields[8].GetUInt32();
+ temp.event_param4 = fields[9].GetUInt32();
+
+ //Report any errors in event
+ if (temp.event_type >= EVENT_T_END)
+ error_db_log("TSCR: Event %u has incorrect event type. Maybe DB requires updated version of SD2.", i);
+
+ //No chance of this event occuring
+ if (temp.event_chance == 0)
+ error_db_log("TSCR: Event %u has 0 percent chance. Event will never trigger!", i);
+
+ //Chance above 100, force it to be 100
+ if (temp.event_chance > 100)
+ {
+ error_db_log("TSCR: Creature %u are using event %u with more than 100 percent chance. Adjusting to 100 percent.", temp.creature_id, i);
+ temp.event_chance = 100;
+ }
+
+ //Individual event checks
+ switch (temp.event_type)
+ {
+ case EVENT_T_HP:
+ case EVENT_T_MANA:
+ case EVENT_T_TARGET_HP:
+ {
+ if (temp.event_param2 > 100)
+ error_db_log("TSCR: Creature %u are using percentage event(%u) with param2 (MinPercent) > 100. Event will never trigger! ", temp.creature_id, i);
+
+ if (temp.event_param1 <= temp.event_param2)
+ error_db_log("TSCR: Creature %u are using percentage event(%u) with param1 <= param2 (MaxPercent <= MinPercent). Event will never trigger! ", temp.creature_id, i);
+
+ if (temp.event_flags & EFLAG_REPEATABLE && !temp.event_param3 && !temp.event_param4)
+ {
+ error_db_log("TSCR: Creature %u has param3 and param4=0 (RepeatMin/RepeatMax) but cannot be repeatable without timers. Removing EFLAG_REPEATABLE for event %u.", temp.creature_id, i);
+ temp.event_flags &= ~EFLAG_REPEATABLE;
+ }
+ }
+ break;
+
+ case EVENT_T_SPELLHIT:
+ {
+ if (temp.event_param1)
+ {
+ SpellEntry const* pSpell = GetSpellStore()->LookupEntry(temp.event_param1);
+ if (!pSpell)
+ {
+ error_db_log("TSCR: Creature %u has non-existant SpellID(%u) defined in event %u.", temp.creature_id, temp.event_param1, i);
+ continue;
+ }
+
+ if (temp.event_param2_s != -1 && temp.event_param2 != pSpell->SchoolMask)
+ error_db_log("TSCR: Creature %u has param1(spellId %u) but param2 is not -1 and not equal to spell's school mask. Event %u can never trigger.", temp.creature_id, temp.event_param1, i);
+ }
+
+ //TODO: fix this system with SPELL_SCHOOL_MASK. Current complicate things, using int32(-1) instead of just 0
+ //SPELL_SCHOOL_MASK_NONE = 0 and does not exist, thus it can not ever trigger or be used in SpellHit()
+ if (temp.event_param2_s != -1 && temp.event_param2_s > SPELL_SCHOOL_MASK_ALL)
+ error_db_log("TSCR: Creature %u is using invalid SpellSchoolMask(%u) defined in event %u.", temp.creature_id, temp.event_param2, i);
+
+ if (temp.event_param4 < temp.event_param3)
+ error_db_log("TSCR: Creature %u are using repeatable event(%u) with param4 < param3 (RepeatMax < RepeatMin). Event will never repeat.", temp.creature_id, i);
+ }
+ break;
+
+ case EVENT_T_RANGE:
+ case EVENT_T_OOC_LOS:
+ case EVENT_T_FRIENDLY_HP:
+ case EVENT_T_FRIENDLY_IS_CC:
+ case EVENT_T_FRIENDLY_MISSING_BUFF:
+ {
+ if (temp.event_param4 < temp.event_param3)
+ error_db_log("TSCR: Creature %u are using repeatable event(%u) with param4 < param3 (RepeatMax < RepeatMin). Event will never repeat.", temp.creature_id, i);
+ }
+ break;
+
+ case EVENT_T_TIMER:
+ case EVENT_T_TIMER_OOC:
+ {
+ if (temp.event_param2 < temp.event_param1)
+ error_db_log("TSCR: Creature %u are using timed event(%u) with param2 < param1 (InitialMax < InitialMin). Event will never repeat.", temp.creature_id, i);
+
+ if (temp.event_param4 < temp.event_param3)
+ error_db_log("TSCR: Creature %u are using repeatable event(%u) with param4 < param3 (RepeatMax < RepeatMin). Event will never repeat.", temp.creature_id, i);
+ }
+ break;
+
+ case EVENT_T_KILL:
+ case EVENT_T_TARGET_CASTING:
+ {
+ if (temp.event_param2 < temp.event_param1)
+ error_db_log("TSCR: Creature %u are using event(%u) with param2 < param1 (RepeatMax < RepeatMin). Event will never repeat.", temp.creature_id, i);
+ }
+ break;
+
+ case EVENT_T_AGGRO:
+ case EVENT_T_DEATH:
+ case EVENT_T_EVADE:
+ case EVENT_T_SPAWNED:
+ {
+ if (temp.event_flags & EFLAG_REPEATABLE)
+ {
+ error_db_log("TSCR: Creature %u has EFLAG_REPEATABLE set. Event can never be repeatable. Removing flag for event %u.", temp.creature_id, i);
+ temp.event_flags &= ~EFLAG_REPEATABLE;
+ }
+ }
+ break;
+ }
+
+ for (uint32 j = 0; j < MAX_ACTIONS; j++)
+ {
+ temp.action[j].type = fields[10+(j*4)].GetUInt16();
+ temp.action[j].param1 = fields[11+(j*4)].GetUInt32();
+ temp.action[j].param2 = fields[12+(j*4)].GetUInt32();
+ temp.action[j].param3 = fields[13+(j*4)].GetUInt32();
+
+ //Report any errors in actions
+ switch (temp.action[j].type)
+ {
+ case ACTION_T_SAY:
+ case ACTION_T_YELL:
+ case ACTION_T_TEXTEMOTE:
+ if (GetEventAIText(temp.action[j].param1) == DEFAULT_TEXT)
+ error_db_log("TSCR: Event %u Action %u refrences missing Localized_Text entry", i, j+1);
+ break;
+
+ case ACTION_T_SOUND:
+ if (!GetSoundEntriesStore()->LookupEntry(temp.action[j].param1))
+ error_db_log("TSCR: Event %u Action %u uses non-existant SoundID %u.", i, j+1, temp.action[j].param1);
+ break;
+
+ case ACTION_T_RANDOM_SAY:
+ case ACTION_T_RANDOM_YELL:
+ case ACTION_T_RANDOM_TEXTEMOTE:
+ if ((temp.action[j].param1 != 0xffffffff && GetEventAIText(temp.action[j].param1) == DEFAULT_TEXT) ||
+ (temp.action[j].param2 != 0xffffffff && GetEventAIText(temp.action[j].param2) == DEFAULT_TEXT) ||
+ (temp.action[j].param3 != 0xffffffff && GetEventAIText(temp.action[j].param3) == DEFAULT_TEXT))
+ error_db_log("TSCR: Event %u Action %u refrences missing Localized_Text entry", i, j+1);
+ break;
+
+ case ACTION_T_CAST:
+ {
+ if (!GetSpellStore()->LookupEntry(temp.action[j].param1))
+ error_db_log("TSCR: Event %u Action %u uses non-existant SpellID %u.", i, j+1, temp.action[j].param1);
+
+ if (temp.action[j].param2 >= TARGET_T_END)
+ error_db_log("TSCR: Event %u Action %u uses incorrect Target type", i, j+1);
+ }
+ break;
+
+ case ACTION_T_REMOVEAURASFROMSPELL:
+ {
+ if (!GetSpellStore()->LookupEntry(temp.action[j].param2))
+ error_db_log("TSCR: Event %u Action %u uses non-existant SpellID %u.", i, j+1, temp.action[j].param2);
+
+ if (temp.action[j].param1 >= TARGET_T_END)
+ error_db_log("TSCR: Event %u Action %u uses incorrect Target type", i, j+1);
+ }
+ break;
+
+ case ACTION_T_CASTCREATUREGO:
+ {
+ if (!GetSpellStore()->LookupEntry(temp.action[j].param2))
+ error_db_log("TSCR: Event %u Action %u uses non-existant SpellID %u.", i, j+1, temp.action[j].param2);
+
+ if (temp.action[j].param3 >= TARGET_T_END)
+ error_db_log("TSCR: Event %u Action %u uses incorrect Target type", i, j+1);
+ }
+ break;
+
+ //2nd param target
+ case ACTION_T_SUMMON_ID:
+ {
+ if (EventAI_Summon_Map.find(temp.action[j].param3) == EventAI_Summon_Map.end())
+ error_db_log("TSCR: Event %u Action %u summons missing EventAI_Summon %u", i, j+1, temp.action[j].param3);
+
+ if (temp.action[j].param2 >= TARGET_T_END)
+ error_db_log("TSCR: Event %u Action %u uses incorrect Target type", i, j+1);
+ }
+ break;
+
+ case ACTION_T_SUMMON:
+ case ACTION_T_THREAT_SINGLE_PCT:
+ case ACTION_T_QUEST_EVENT:
+ case ACTION_T_SET_UNIT_FLAG:
+ case ACTION_T_REMOVE_UNIT_FLAG:
+ case ACTION_T_SET_INST_DATA64:
+ if (temp.action[j].param2 >= TARGET_T_END)
+ error_db_log("TSCR: Event %u Action %u uses incorrect Target type", i, j+1);
+ break;
+
+ //3rd param target
+ case ACTION_T_SET_UNIT_FIELD:
+ if (temp.action[j].param3 >= TARGET_T_END)
+ error_db_log("TSCR: Event %u Action %u uses incorrect Target type", i, j+1);
+ break;
+
+ case ACTION_T_SET_PHASE:
+ if (temp.action[j].param1 > 31)
+ error_db_log("TSCR: Event %u Action %u attempts to set phase > 31. Phase mask cannot be used past phase 31.", i, j+1);
+ break;
+
+ case ACTION_T_INC_PHASE:
+ if (!temp.action[j].param1)
+ error_db_log("TSCR: Event %u Action %u is incrementing phase by 0. Was this intended?", i, j+1);
+ break;
+
+ case ACTION_T_KILLED_MONSTER:
+ if (temp.event_type != EVENT_T_DEATH)
+ outstring_log("SD2 WARNING: Event %u Action %u calling ACTION_T_KILLED_MONSTER outside of EVENT_T_DEATH", i, j+1);
+ break;
+
+ case ACTION_T_SET_INST_DATA:
+ if (temp.action[j].param2 > 3)
+ error_db_log("TSCR: Event %u Action %u attempts to set instance data above encounter state 3. Custom case?", i, j+1);
+ break;
+
+ default:
+ if (temp.action[j].type >= ACTION_T_END)
+ error_db_log("TSCR: Event %u Action %u has incorrect action type. Maybe DB requires updated version of SD2.", i, j+1);
+ break;
+ }
+ }
+
+ //Add to list
+ EventAI_Event_List.push_back(temp);
+ ++Count;
+ } while (result->NextRow());
+
+ delete result;
+
+ outstring_log("");
+ outstring_log(">> Loaded %u EventAI scripts", Count);
+ }else
+ {
+ barGoLink bar(1);
+ bar.step();
+ outstring_log("");
+ outstring_log(">> Loaded 0 EventAI scripts. DB table `eventai_scripts` is empty.");
+ }
+
+ //Free database thread and resources
+ TScriptDB.HaltDelayThread();
+
+}
+
+struct TSpellSummary {
+ uint8 Targets; // set of enum SelectTarget
+ uint8 Effects; // set of enum SelectEffect
+}extern *SpellSummary;
+
+MANGOS_DLL_EXPORT
+void ScriptsFree()
+{
+ // Free Spell Summary
+ delete []SpellSummary;
+
+ // Free resources before library unload
+ for(int i=0;i<nrscripts;i++)
+ delete m_scripts[i];
+
+ nrscripts = 0;
+}
+
+MANGOS_DLL_EXPORT
+void ScriptsInit()
+{
+ bool CanLoadDB = true;
+
+ //Trinity Script startup
+ outstring_log(" _____ _ _ _ ____ _ _");
+ outstring_log("|_ _| __(_)_ __ (_) |_ _ _/ ___| ___ _ __(_)_ __ | |_ ");
+ outstring_log(" | || '__| | '_ \\| | __| | | \\___ \\ / __| \'__| | \'_ \\| __|");
+ outstring_log(" | || | | | | | | | |_| |_| |___) | (__| | | | |_) | |_ ");
+ outstring_log(" |_||_| |_|_| |_|_|\\__|\\__, |____/ \\___|_| |_| .__/ \\__|");
+ outstring_log(" |___/ |_| ");
+ outstring_log("Trinity Script initializing %s", _FULLVERSION);
+ outstring_log("");
+
+ //Get configuration file
+ if (!TScriptConfig.SetSource(_TRINITY_SCRIPT_CONFIG))
+ {
+ CanLoadDB = false;
+ error_log("TSCR: Unable to open configuration file. Database will be unaccessible. Configuration values will use default.");
+ }
+ else outstring_log("TSCR: Using configuration file %s",_TRINITY_SCRIPT_CONFIG);
+
+ //Check config file version
+ if (TScriptConfig.GetIntDefault("ConfVersion", 0) != _TSCRIPTCONFVERSION)
+ error_log("TSCR: Configuration file version doesn't match expected version. Some config variables may be wrong or missing.");
+
+ //Locale
+ Locale = TScriptConfig.GetIntDefault("Locale", 0);
+
+ if (Locale > 8)
+ {
+ Locale = 0;
+ error_log("TSCR: Locale set to invalid language id. Defaulting to 0.");
+ }
+
+ outstring_log("TSCR: Using locale %u", Locale);
+
+ EAI_ErrorLevel = TScriptConfig.GetIntDefault("EAIErrorLevel", 1);
+
+ switch (EAI_ErrorLevel)
+ {
+ case 0:
+ outstring_log("TSCR: EventAI Error Reporting level set to 0 (Startup Errors only)");
+ break;
+ case 1:
+ outstring_log("TSCR: EventAI Error Reporting level set to 1 (Startup errors and Runtime event errors)");
+ break;
+ case 2:
+ outstring_log("TSCR: EventAI Error Reporting level set to 2 (Startup errors, Runtime event errors, and Creation errors)");
+ break;
+ default:
+ outstring_log("TSCR: Unknown EventAI Error Reporting level. Defaulting to 1 (Startup errors and Runtime event errors)");
+ EAI_ErrorLevel = 1;
+ break;
+ }
+
+ outstring_log("");
+
+ //Load database (must be called after TScriptConfig.SetSource). In case it failed, no need to even try load.
+ if (CanLoadDB)
+ LoadDatabase();
+
+ outstring_log("TSCR: Loading C++ scripts");
+ barGoLink bar(1);
+ bar.step();
+ outstring_log("");
+
+ nrscripts = 0;
+ for(int i=0;i<MAX_SCRIPTS;i++)
+ m_scripts[i]=NULL;
+
+ FillSpellSummary();
+
+ // -- Scripts to be added --
+
+ // -- Areatrigger --
+ AddSC_areatrigger_scripts();
+
+ // -- Boss --
+ AddSC_boss_emeriss();
+ AddSC_boss_taerar();
+ AddSC_boss_ysondre();
+
+ // -- Creature --
+ AddSC_mob_event();
+ AddSC_generic_creature();
+
+ // -- Custom --
+ AddSC_custom_example();
+ AddSC_custom_gossip_codebox();
+ AddSC_test();
+
+ // -- GO --
+ AddSC_go_scripts();
+
+ // -- Guard --
+ AddSC_guards();
+
+ // -- Honor --
+
+ // -- Item --
+ AddSC_item_scripts();
+ AddSC_item_test();
+
+ // -- NPC --
+ AddSC_npc_professions();
+ AddSC_npcs_special();
+
+ // -- Servers --
+
+ //--------------------
+ //------ ZONE --------
+
+ //Alterac Mountains
+ AddSC_alterac_mountains();
+
+ //Arathi Highlands
+ //Ashenvale Forest
+ //Aunchindoun
+ //--Auchenai Crypts
+ AddSC_boss_exarch_maladaar();
+
+ //--Mana Tombs
+ AddSC_boss_nexusprince_shaffar();
+ AddSC_boss_pandemonius();
+
+ //--Sekketh Halls
+ AddSC_boss_darkweaver_syth();
+ AddSC_boss_talon_king_ikiss();
+ AddSC_instance_sethekk_halls();
+
+ //--Shadow Labyrinth
+ AddSC_boss_ambassador_hellmaw();
+ AddSC_boss_blackheart_the_inciter();
+ AddSC_boss_grandmaster_vorpil();
+ AddSC_boss_murmur();
+ AddSC_instance_shadow_labyrinth();
+
+ //Azshara
+ AddSC_boss_azuregos();
+ AddSC_azshara();
+
+ //Azuremyst Isle
+ AddSC_azuremyst_isle();
+
+ //Badlands
+ //Barrens
+ AddSC_the_barrens();
+
+ //Black Temple
+ AddSC_black_temple();
+ AddSC_boss_illidan();
+ AddSC_boss_shade_of_akama();
+ AddSC_boss_supremus();
+ AddSC_boss_gurtogg_bloodboil();
+ AddSC_boss_mother_shahraz();
+ AddSC_boss_reliquary_of_souls();
+ AddSC_boss_teron_gorefiend();
+ AddSC_boss_najentus();
+ AddSC_boss_illidari_council();
+ AddSC_instance_black_temple();
+
+ //Blackfathom Depths
+ //Blackrock Depths
+ AddSC_blackrock_depths();
+ AddSC_boss_ambassador_flamelash();
+ AddSC_boss_angerrel();
+ AddSC_boss_anubshiah();
+ AddSC_boss_doomrel();
+ AddSC_boss_doperel();
+ AddSC_boss_draganthaurissan();
+ AddSC_boss_general_angerforge();
+ AddSC_boss_gloomrel();
+ AddSC_boss_gorosh_the_dervish();
+ AddSC_boss_grizzle();
+ AddSC_boss_haterel();
+ AddSC_boss_high_interrogator_gerstahn();
+ AddSC_boss_magmus();
+ AddSC_boss_moira_bronzebeard();
+ AddSC_boss_seethrel();
+ AddSC_boss_vilerel();
+
+ //Blackrock Spire
+ AddSC_boss_drakkisath();
+ AddSC_boss_halycon();
+ AddSC_boss_highlordomokk();
+ AddSC_boss_mothersmolderweb();
+ AddSC_boss_overlordwyrmthalak();
+ AddSC_boss_shadowvosh();
+ AddSC_boss_thebeast();
+ AddSC_boss_warmastervoone();
+ AddSC_boss_quatermasterzigris();
+ AddSC_boss_pyroguard_emberseer();
+ AddSC_boss_gyth();
+ AddSC_boss_rend_blackhand();
+
+ //Blackwing lair
+ AddSC_boss_razorgore();
+ AddSC_boss_vael();
+ AddSC_boss_broodlord();
+ AddSC_boss_firemaw();
+ AddSC_boss_ebonroc();
+ AddSC_boss_flamegor();
+ AddSC_boss_chromaggus();
+ AddSC_boss_nefarian();
+ AddSC_boss_victor_nefarius();
+
+ //Blade's Edge Mountains
+ AddSC_blades_edge_mountains();
+
+ //Blasted lands
+ AddSC_boss_kruul();
+ AddSC_blasted_lands();
+
+ //Bloodmyst Isle
+ AddSC_bloodmyst_isle();
+
+ //Burning steppes
+ AddSC_burning_steppes();
+
+ //Caverns of Time
+ //--Battle for Mt. Hyjal
+ AddSC_hyjal();
+ AddSC_boss_archimonde();
+ AddSC_instance_mount_hyjal();
+
+ //--Old Hillsbrad
+ AddSC_boss_captain_skarloc();
+ AddSC_boss_epoch_hunter();
+ AddSC_boss_lieutenant_drake();
+ AddSC_instance_old_hillsbrad();
+ AddSC_old_hillsbrad();
+
+ //--The Dark Portal
+ AddSC_boss_aeonus();
+ AddSC_boss_chrono_lord_deja();
+ AddSC_boss_temporus();
+
+ //Coilfang Resevoir
+ //--Serpent Shrine Cavern
+ AddSC_boss_fathomlord_karathress();
+ AddSC_boss_hydross_the_unstable();
+ AddSC_boss_lady_vashj();
+ AddSC_boss_leotheras_the_blind();
+ AddSC_boss_morogrim_tidewalker();
+ AddSC_instance_serpentshrine_cavern();
+
+ //--Slave Pens
+ //--Steam Vault
+ AddSC_boss_hydromancer_thespia();
+ AddSC_boss_mekgineer_steamrigger();
+ AddSC_boss_warlord_kalithresh();
+ AddSC_instance_steam_vault();
+
+ //--Underbog
+ AddSC_boss_hungarfen();
+
+ //Darkshore
+ //Darnassus
+ //Deadmines
+ //Deadwind pass
+ //Desolace
+ //Dire Maul
+ //Dun Morogh
+ AddSC_dun_morogh();
+
+ //Durotar
+ //Duskwood
+ //Dustwallow marsh
+ AddSC_dustwallow_marsh();
+
+ //Eversong Woods
+ AddSC_eversong_woods();
+
+ //Exodar
+ //Eastern Plaguelands
+ AddSC_eastern_plaguelands();
+
+ //Elwynn Forest
+ AddSC_elwynn_forest();
+
+ //Felwood
+ AddSC_felwood();
+
+ //Feralas
+ AddSC_feralas();
+
+ //Ghostlands
+ AddSC_ghostlands();
+
+ //Gnomeregan
+ //Gruul's Lair
+ AddSC_boss_gruul();
+ AddSC_boss_high_king_maulgar();
+ AddSC_instance_gruuls_lair();
+
+ //Hellfire Citadel
+ //--Blood Furnace
+ AddSC_boss_broggok();
+ AddSC_boss_kelidan_the_breaker();
+ AddSC_boss_the_maker();
+
+ //--Magtheridon's Lair
+ AddSC_boss_magtheridon();
+ AddSC_instance_magtheridons_lair();
+
+ //--Shattered Halls
+ AddSC_boss_grand_warlock_nethekurse();
+ AddSC_boss_warbringer_omrogg();
+ AddSC_instance_shattered_halls();
+
+ //--Ramparts
+ AddSC_boss_watchkeeper_gargolmar();
+ AddSC_boss_omor_the_unscarred();
+
+ //Hellfire Peninsula
+ AddSC_boss_doomlordkazzak();
+ AddSC_hellfire_peninsula();
+
+ //Hillsbrad Foothills
+ //Hinterlands
+ //Ironforge
+ AddSC_ironforge();
+
+ //Isle of Quel'Danas
+ AddSC_isle_of_queldanas();
+
+ //Karazhan
+ AddSC_boss_attumen();
+ AddSC_boss_curator();
+ AddSC_boss_maiden_of_virtue();
+ AddSC_boss_shade_of_aran();
+ AddSC_boss_malchezaar();
+ AddSC_boss_terestian_illhoof();
+ AddSC_netherspite_infernal();
+ AddSC_boss_moroes();
+ AddSC_bosses_opera();
+ AddSC_instance_karazhan();
+ AddSC_karazhan();
+
+ //Loch Modan
+ AddSC_loch_modan();
+
+ //Lower Blackrock Spire
+
+ // Magister's Terrace
+ AddSC_boss_felblood_kaelthas();
+ AddSC_boss_selin_fireheart();
+ AddSC_boss_vexallus();
+ AddSC_boss_priestess_delrissa();
+ AddSC_instance_magisters_terrace();
+
+ //Maraudon
+ AddSC_boss_celebras_the_cursed();
+ AddSC_boss_landslide();
+ AddSC_boss_noxxion();
+ AddSC_boss_ptheradras();
+
+ //Molten core
+ AddSC_boss_lucifron();
+ AddSC_boss_magmadar();
+ AddSC_boss_gehennas();
+ AddSC_boss_garr();
+ AddSC_boss_baron_geddon();
+ AddSC_boss_shazzrah();
+ AddSC_boss_golemagg();
+ AddSC_boss_sulfuron();
+ AddSC_boss_majordomo();
+ AddSC_boss_ragnaros();
+ AddSC_instance_molten_core();
+ AddSC_molten_core();
+
+ //Moonglade
+ AddSC_moonglade();
+
+ //Mulgore
+ AddSC_mulgore();
+
+ //Nagrand
+ AddSC_nagrand();
+
+ //Naxxramas
+ AddSC_boss_anubrekhan();
+ AddSC_boss_maexxna();
+ AddSC_boss_patchwerk();
+ AddSC_boss_razuvious();
+ AddSC_boss_highlord_mograine();
+ AddSC_boss_lady_blaumeux();
+ AddSC_boss_sir_zeliek();
+ AddSC_boss_thane_korthazz();
+ AddSC_boss_kelthuzad();
+ AddSC_boss_faerlina();
+ AddSC_boss_loatheb();
+ AddSC_boss_noth();
+ AddSC_boss_gluth();
+ AddSC_boss_sapphiron();
+
+ //Netherstorm
+ AddSC_netherstorm();
+
+ //Onyxia's Lair
+ AddSC_boss_onyxia();
+
+ //Orgrimmar
+ AddSC_orgrimmar();
+
+ //Ragefire Chasm
+ //Razorfen Downs
+ AddSC_boss_amnennar_the_coldbringer();
+
+ //Redridge Mountains
+ //Ruins of Ahn'Qiraj
+ //Scarlet Monastery
+ AddSC_boss_arcanist_doan();
+ AddSC_boss_azshir_the_sleepless();
+ AddSC_boss_bloodmage_thalnos();
+ AddSC_boss_herod();
+ AddSC_boss_high_inquisitor_fairbanks();
+ AddSC_boss_high_inquisitor_whitemane();
+ AddSC_boss_houndmaster_loksey();
+ AddSC_boss_interrogator_vishas();
+ AddSC_boss_scarlet_commander_mograine();
+ AddSC_boss_scorn();
+
+ //Scholomance
+ AddSC_boss_darkmaster_gandling();
+ AddSC_boss_death_knight_darkreaver();
+ AddSC_boss_theolenkrastinov();
+ AddSC_boss_illuciabarov();
+ AddSC_boss_instructormalicia();
+ AddSC_boss_jandicebarov();
+ AddSC_boss_kormok();
+ AddSC_boss_lordalexeibarov();
+ AddSC_boss_lorekeeperpolkelt();
+ AddSC_boss_rasfrost();
+ AddSC_boss_theravenian();
+ AddSC_boss_vectus();
+ AddSC_instance_scholomance();
+
+ //Searing gorge
+ AddSC_searing_gorge();
+
+ //Shadowfang keep
+ AddSC_shadowfang_keep();
+ AddSC_instance_shadowfang_keep();
+
+ //Shadowmoon Valley
+ AddSC_boss_doomwalker();
+ AddSC_shadowmoon_valley();
+
+ //Shattrath
+ AddSC_shattrath_city();
+
+ //Silithus
+ AddSC_silithus();
+
+ //Silvermoon
+ AddSC_silvermoon_city();
+
+ //Silverpine forest
+ AddSC_silverpine_forest();
+
+ //Stockade
+ //Stonetalon mountains
+ AddSC_stonetalon_mountains();
+
+ //Stormwind City
+ AddSC_stormwind_city();
+
+ //Stranglethorn Vale
+ AddSC_stranglethorn_vale();
+
+ //Stratholme
+ AddSC_boss_magistrate_barthilas();
+ AddSC_boss_maleki_the_pallid();
+ AddSC_boss_nerubenkan();
+ AddSC_boss_cannon_master_willey();
+ AddSC_boss_baroness_anastari();
+ AddSC_boss_ramstein_the_gorger();
+ AddSC_boss_timmy_the_cruel();
+ AddSC_boss_postmaster_malown();
+ AddSC_boss_baron_rivendare();
+ AddSC_boss_dathrohan_balnazzar();
+ AddSC_boss_order_of_silver_hand();
+ AddSC_instance_stratholme();
+ AddSC_stratholme();
+
+ //Sunken Temple
+ //Tanaris
+ AddSC_tanaris();
+
+ //Teldrassil
+ //Tempest Keep
+ //--Arcatraz
+ AddSC_arcatraz();
+ AddSC_boss_harbinger_skyriss();
+ AddSC_instance_arcatraz();
+
+ //--Botanica
+ AddSC_boss_high_botanist_freywinn();
+ AddSC_boss_laj();
+ AddSC_boss_warp_splinter();
+
+ //--The Eye
+ AddSC_boss_kaelthas();
+ AddSC_boss_void_reaver();
+ AddSC_boss_high_astromancer_solarian();
+ AddSC_instance_the_eye();
+ AddSC_the_eye();
+
+ //--The Mechanar
+ AddSC_boss_gatewatcher_iron_hand();
+ AddSC_boss_nethermancer_sepethrea();
+
+ //Temple of ahn'qiraj
+ AddSC_boss_cthun();
+ AddSC_boss_fankriss();
+ AddSC_boss_huhuran();
+ AddSC_bug_trio();
+ AddSC_boss_sartura();
+ AddSC_boss_skeram();
+ AddSC_boss_twinemperors();
+ AddSC_mob_anubisath_sentinel();
+ AddSC_instance_temple_of_ahnqiraj();
+
+ //Terokkar Forest
+ AddSC_terokkar_forest();
+
+ //Thousand Needles
+ //Thunder Bluff
+ AddSC_thunder_bluff();
+
+ //Tirisfal Glades
+ AddSC_tirisfal_glades();
+
+ //Uldaman
+ AddSC_boss_ironaya();
+ AddSC_uldaman();
+
+ //Undercity
+ AddSC_undercity();
+
+ //Un'Goro Crater
+ //Upper blackrock spire
+ //Wailing caverns
+
+ //Western plaguelands
+ AddSC_western_plaguelands();
+
+ //Westfall
+ //Wetlands
+ //Winterspring
+ AddSC_winterspring();
+
+ //Zangarmarsh
+ AddSC_zangarmarsh();
+
+ //Zul'Farrak
+ //Zul'Gurub
+ AddSC_boss_jeklik();
+ AddSC_boss_venoxis();
+ AddSC_boss_marli();
+ AddSC_boss_mandokir();
+ AddSC_boss_gahzranka();
+ AddSC_boss_thekal();
+ AddSC_boss_arlokk();
+ AddSC_boss_jindo();
+ AddSC_boss_hakkar();
+ AddSC_boss_grilek();
+ AddSC_boss_hazzarah();
+ AddSC_boss_renataki();
+ AddSC_boss_wushoolay();
+ AddSC_instance_zulgurub();
+
+ //Zul'Aman
+ AddSC_boss_janalai();
+ AddSC_boss_nalorakk();
+ AddSC_instance_zulaman();
+ AddSC_zulaman();
+
+ // -------------------
+
+ outstring_log("TSCR: Loaded %u C++ Scripts", nrscripts);
+ outstring_log("");
+}
+
+//*********************************
+//*** Functions used internally ***
+
+const char* GetEventAILocalizedText(uint32 entry)
+{
+ if (entry == 0xffffffff)
+ error_log("TSCR: Entry = -1, GetEventAILocalizedText should not be called in this case.");
+
+ const char* temp = NULL;
+
+ HM_NAMESPACE::hash_map<uint32, Localized_Text>::iterator i = EventAI_LocalizedTextMap.find(entry);
+
+ if (i == EventAI_LocalizedTextMap.end())
+ {
+ error_log("TSCR: EventAI Localized Text %u not found", entry);
+ return DEFAULT_TEXT;
+ }
+
+ switch (Locale)
+ {
+ case 1:
+ temp = (*i).second.locale_1.c_str();
+ break;
+
+ case 2:
+ temp = (*i).second.locale_2.c_str();
+ break;
+
+ case 3:
+ temp = (*i).second.locale_3.c_str();
+ break;
+
+ case 4:
+ temp = (*i).second.locale_4.c_str();
+ break;
+
+ case 5:
+ temp = (*i).second.locale_5.c_str();
+ break;
+
+ case 6:
+ temp = (*i).second.locale_6.c_str();
+ break;
+
+ case 7:
+ temp = (*i).second.locale_7.c_str();
+ break;
+
+ case 8:
+ temp = (*i).second.locale_8.c_str();
+ break;
+ };
+
+ if (strlen(temp))
+ return temp;
+
+ return DEFAULT_TEXT;
+}
+
+const char* GetEventAIText(uint32 entry)
+{
+ if(entry == 0xffffffff)
+ error_log("TSCR: Entry = -1, GetEventAIText should not be called in this case.");
+
+ const char* str = NULL;
+
+ HM_NAMESPACE::hash_map<uint32, std::string>::iterator itr = EventAI_Text_Map.find(entry);
+ if(itr == EventAI_Text_Map.end())
+ {
+ error_log("TSCR: Unable to find EventAI Text %u", entry);
+ return DEFAULT_TEXT;
+ }
+
+ str = (*itr).second.c_str();
+
+ if(strlen(str))
+ return str;
+
+ if(strlen((*itr).second.c_str()))
+ return (*itr).second.c_str();
+
+ return DEFAULT_TEXT;
+}
+
+void DoScriptText(int32 textEntry, WorldObject* pSource, Unit* target)
+{
+ if (!pSource)
+ {
+ error_log("TSCR: DoScriptText entry %i, invalid Source pointer.",textEntry);
+ return;
+ }
+
+ if (textEntry >= 0)
+ {
+ error_log("TSCR: DoScriptText attempts to process entry %i, but entry must be negative.",textEntry);
+ return;
+ }
+
+ HM_NAMESPACE::hash_map<int32, StringTextData>::iterator i = TextMap.find(textEntry);
+
+ if (i == TextMap.end())
+ {
+ error_log("TSCR: DoScriptText could not find text entry %i.",textEntry);
+ return;
+ }
+
+ if((*i).second.SoundId)
+ {
+ if( GetSoundEntriesStore()->LookupEntry((*i).second.SoundId) )
+ {
+ pSource->SendPlaySound((*i).second.SoundId, false);
+ }
+ else
+ error_log("TSCR: DoScriptText entry %i tried to process invalid sound id %u.",textEntry,(*i).second.SoundId);
+ }
+
+ switch((*i).second.Type)
+ {
+ case CHAT_TYPE_SAY:
+ pSource->MonsterSay(textEntry, (*i).second.Language, target ? target->GetGUID() : 0);
+ break;
+ case CHAT_TYPE_YELL:
+ pSource->MonsterYell(textEntry, (*i).second.Language, target ? target->GetGUID() : 0);
+ break;
+ case CHAT_TYPE_TEXT_EMOTE:
+ pSource->MonsterTextEmote(textEntry, target ? target->GetGUID() : 0);
+ break;
+ case CHAT_TYPE_BOSS_EMOTE:
+ pSource->MonsterTextEmote(textEntry, target ? target->GetGUID() : 0, true);
+ break;
+ case CHAT_TYPE_WHISPER:
+ {
+ if (target && target->GetTypeId() == TYPEID_PLAYER)
+ pSource->MonsterWhisper(textEntry, target->GetGUID());
+ else error_log("TSCR: DoScriptText entry %i cannot whisper without target unit (TYPEID_PLAYER).", textEntry);
+ }break;
+ case CHAT_TYPE_BOSS_WHISPER:
+ {
+ if (target && target->GetTypeId() == TYPEID_PLAYER)
+ pSource->MonsterWhisper(textEntry, target->GetGUID(), true);
+ else error_log("TSCR: DoScriptText entry %i cannot whisper without target unit (TYPEID_PLAYER).", textEntry);
+ }break;
+ }
+}
+
+Script* GetScriptByName(std::string Name)
+{
+ if(Name.empty())
+ return NULL;
+
+ for(int i=0;i<MAX_SCRIPTS;i++)
+ {
+ if( m_scripts[i] && m_scripts[i]->Name == Name )
+ return m_scripts[i];
+ }
+ return NULL;
+}
+
+//********************************
+//*** Functions to be Exported ***
+
+MANGOS_DLL_EXPORT
+bool GossipHello ( Player * player, Creature *_Creature )
+{
+ Script *tmpscript = GetScriptByName(_Creature->GetScriptName());
+ if(!tmpscript || !tmpscript->pGossipHello) return false;
+
+ player->PlayerTalkClass->ClearMenus();
+ return tmpscript->pGossipHello(player,_Creature);
+}
+
+MANGOS_DLL_EXPORT
+bool GossipSelect( Player *player, Creature *_Creature, uint32 sender, uint32 action )
+{
+ debug_log("TSCR: Gossip selection, sender: %d, action: %d",sender, action);
+
+ Script *tmpscript = GetScriptByName(_Creature->GetScriptName());
+ if(!tmpscript || !tmpscript->pGossipSelect) return false;
+
+ player->PlayerTalkClass->ClearMenus();
+ return tmpscript->pGossipSelect(player,_Creature,sender,action);
+}
+
+MANGOS_DLL_EXPORT
+bool GossipSelectWithCode( Player *player, Creature *_Creature, uint32 sender, uint32 action, const char* sCode )
+{
+ debug_log("TSCR: Gossip selection with code, sender: %d, action: %d",sender, action);
+
+ Script *tmpscript = GetScriptByName(_Creature->GetScriptName());
+ if(!tmpscript || !tmpscript->pGossipSelectWithCode) return false;
+
+ player->PlayerTalkClass->ClearMenus();
+ return tmpscript->pGossipSelectWithCode(player,_Creature,sender,action,sCode);
+}
+
+MANGOS_DLL_EXPORT
+bool QuestAccept( Player *player, Creature *_Creature, Quest const *_Quest )
+{
+ Script *tmpscript = GetScriptByName(_Creature->GetScriptName());
+ if(!tmpscript || !tmpscript->pQuestAccept) return false;
+
+ player->PlayerTalkClass->ClearMenus();
+ return tmpscript->pQuestAccept(player,_Creature,_Quest);
+}
+
+MANGOS_DLL_EXPORT
+bool QuestSelect( Player *player, Creature *_Creature, Quest const *_Quest )
+{
+ Script *tmpscript = GetScriptByName(_Creature->GetScriptName());
+ if(!tmpscript || !tmpscript->pQuestSelect) return false;
+
+ player->PlayerTalkClass->ClearMenus();
+ return tmpscript->pQuestSelect(player,_Creature,_Quest);
+}
+
+MANGOS_DLL_EXPORT
+bool QuestComplete( Player *player, Creature *_Creature, Quest const *_Quest )
+{
+ Script *tmpscript = GetScriptByName(_Creature->GetScriptName());
+ if(!tmpscript || !tmpscript->pQuestComplete) return false;
+
+ player->PlayerTalkClass->ClearMenus();
+ return tmpscript->pQuestComplete(player,_Creature,_Quest);
+}
+
+MANGOS_DLL_EXPORT
+bool ChooseReward( Player *player, Creature *_Creature, Quest const *_Quest, uint32 opt )
+{
+ Script *tmpscript = GetScriptByName(_Creature->GetScriptName());
+ if(!tmpscript || !tmpscript->pChooseReward) return false;
+
+ player->PlayerTalkClass->ClearMenus();
+ return tmpscript->pChooseReward(player,_Creature,_Quest,opt);
+}
+
+MANGOS_DLL_EXPORT
+uint32 NPCDialogStatus( Player *player, Creature *_Creature )
+{
+ Script *tmpscript = GetScriptByName(_Creature->GetScriptName());
+ if(!tmpscript || !tmpscript->pNPCDialogStatus) return 100;
+
+ player->PlayerTalkClass->ClearMenus();
+ return tmpscript->pNPCDialogStatus(player,_Creature);
+}
+
+MANGOS_DLL_EXPORT
+uint32 GODialogStatus( Player *player, GameObject *_GO )
+{
+ Script *tmpscript = GetScriptByName(_GO->GetGOInfo()->ScriptName);
+ if(!tmpscript || !tmpscript->pGODialogStatus) return 100;
+
+ player->PlayerTalkClass->ClearMenus();
+ return tmpscript->pGODialogStatus(player,_GO);
+}
+
+MANGOS_DLL_EXPORT
+bool ItemHello( Player *player, Item *_Item, Quest const *_Quest )
+{
+ Script *tmpscript = GetScriptByName(_Item->GetProto()->ScriptName);
+ if(!tmpscript || !tmpscript->pItemHello) return false;
+
+ player->PlayerTalkClass->ClearMenus();
+ return tmpscript->pItemHello(player,_Item,_Quest);
+}
+
+MANGOS_DLL_EXPORT
+bool ItemQuestAccept( Player *player, Item *_Item, Quest const *_Quest )
+{
+ Script *tmpscript = GetScriptByName(_Item->GetProto()->ScriptName);
+ if(!tmpscript || !tmpscript->pItemQuestAccept) return false;
+
+ player->PlayerTalkClass->ClearMenus();
+ return tmpscript->pItemQuestAccept(player,_Item,_Quest);
+}
+
+MANGOS_DLL_EXPORT
+bool GOHello( Player *player, GameObject *_GO )
+{
+ Script *tmpscript = GetScriptByName(_GO->GetGOInfo()->ScriptName);
+ if(!tmpscript || !tmpscript->pGOHello) return false;
+
+ player->PlayerTalkClass->ClearMenus();
+ return tmpscript->pGOHello(player,_GO);
+}
+
+MANGOS_DLL_EXPORT
+bool GOQuestAccept( Player *player, GameObject *_GO, Quest const *_Quest )
+{
+ Script *tmpscript = GetScriptByName(_GO->GetGOInfo()->ScriptName);
+ if(!tmpscript || !tmpscript->pGOQuestAccept) return false;
+
+ player->PlayerTalkClass->ClearMenus();
+ return tmpscript->pGOQuestAccept(player,_GO,_Quest);
+}
+
+MANGOS_DLL_EXPORT
+bool GOChooseReward( Player *player, GameObject *_GO, Quest const *_Quest, uint32 opt )
+{
+ Script *tmpscript = GetScriptByName(_GO->GetGOInfo()->ScriptName);
+ if(!tmpscript || !tmpscript->pGOChooseReward) return false;
+
+ player->PlayerTalkClass->ClearMenus();
+ return tmpscript->pGOChooseReward(player,_GO,_Quest,opt);
+}
+
+MANGOS_DLL_EXPORT
+bool AreaTrigger( Player *player, AreaTriggerEntry * atEntry)
+{
+ Script *tmpscript = NULL;
+
+ tmpscript = GetScriptByName(GetAreaTriggerScriptNameById(atEntry->id));
+ if(!tmpscript || !tmpscript->pAreaTrigger) return false;
+
+ return tmpscript->pAreaTrigger(player, atEntry);
+}
+
+MANGOS_DLL_EXPORT
+CreatureAI* GetAI(Creature *_Creature)
+{
+ Script *tmpscript = GetScriptByName(_Creature->GetScriptName());
+
+ if(!tmpscript || !tmpscript->GetAI) return NULL;
+ return tmpscript->GetAI(_Creature);
+}
+
+MANGOS_DLL_EXPORT
+bool ItemUse( Player *player, Item* _Item, SpellCastTargets const& targets)
+{
+ Script *tmpscript = GetScriptByName(_Item->GetProto()->ScriptName);
+ if(!tmpscript || !tmpscript->pItemUse) return false;
+
+ return tmpscript->pItemUse(player,_Item,targets);
+}
+
+MANGOS_DLL_EXPORT
+bool ReceiveEmote( Player *player, Creature *_Creature, uint32 emote )
+{
+ Script *tmpscript = GetScriptByName(_Creature->GetScriptName());
+ if(!tmpscript || !tmpscript->pReceiveEmote) return false;
+
+ return tmpscript->pReceiveEmote(player, _Creature, emote);
+}
+
+MANGOS_DLL_EXPORT
+InstanceData* CreateInstanceData(Map *map)
+{
+ Script *tmpscript = NULL;
+
+ if(!map->IsDungeon()) return false;
+
+ tmpscript = GetScriptByName(((InstanceMap*)map)->GetScript());
+ if(!tmpscript || !tmpscript->GetInstanceData) return false;
+
+ return tmpscript->GetInstanceData(map);
+}
diff --git a/src/bindings/scripts/ScriptMgr.h b/src/bindings/scripts/ScriptMgr.h
index 8ff1ee3cfdd..5709a9e496b 100644
--- a/src/bindings/scripts/ScriptMgr.h
+++ b/src/bindings/scripts/ScriptMgr.h
@@ -1,88 +1,88 @@
-/* Copyright (C) 2006 - 2008 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
- * This program is free software licensed under GPL version 2
- * Please see the included DOCS/LICENSE.TXT for more information */
-
-#ifndef SCRIPTMGR_H
-#define SCRIPTMGR_H
-
-#include "Common.h"
-#include "Platform/CompilerDefs.h"
-#include "Database/DBCStructure.h"
-
-class Player;
-class Creature;
-class CreatureAI;
-class InstanceData;
-class Quest;
-class Item;
-class GameObject;
-class SpellCastTargets;
-class Map;
-class Unit;
-class WorldObject;
-
-#define MAX_SCRIPTS 1000 //72 bytes each (approx 71kb)
-#define VISIBLE_RANGE (166.0f) //MAX visible range (size of grid)
-#define DEFAULT_TEXT "<Trinity Script Text Entry Missing!>"
-
-struct Script
-{
- Script() :
-pGossipHello(NULL), pQuestAccept(NULL), pGossipSelect(NULL), pGossipSelectWithCode(NULL),
-pQuestSelect(NULL), pQuestComplete(NULL), pNPCDialogStatus(NULL), pGODialogStatus(NULL), pChooseReward(NULL),
-pItemHello(NULL), pGOHello(NULL), pAreaTrigger(NULL), pItemQuestAccept(NULL), pGOQuestAccept(NULL),
-pGOChooseReward(NULL),pReceiveEmote(NULL),pItemUse(NULL), GetAI(NULL), GetInstanceData(NULL)
-{}
-
-std::string Name;
-
-// Quest/gossip Methods to be scripted
-bool (*pGossipHello )(Player*, Creature*);
-bool (*pQuestAccept )(Player*, Creature*, Quest const* );
-bool (*pGossipSelect )(Player*, Creature*, uint32 , uint32 );
-bool (*pGossipSelectWithCode)(Player*, Creature*, uint32 , uint32 , const char* );
-bool (*pQuestSelect )(Player*, Creature*, Quest const* );
-bool (*pQuestComplete )(Player*, Creature*, Quest const* );
-uint32 (*pNPCDialogStatus )(Player*, Creature* );
-uint32 (*pGODialogStatus )(Player *player, GameObject * _GO );
-bool (*pChooseReward )(Player*, Creature*, Quest const*, uint32 );
-bool (*pItemHello )(Player*, Item*, Quest const* );
-bool (*pGOHello )(Player*, GameObject* );
-bool (*pAreaTrigger )(Player*, AreaTriggerEntry* );
-bool (*pItemQuestAccept )(Player*, Item *, Quest const* );
-bool (*pGOQuestAccept )(Player*, GameObject*, Quest const* );
-bool (*pGOChooseReward )(Player*, GameObject*_GO, Quest const*, uint32 );
-bool (*pReceiveEmote )(Player*, Creature*, uint32 );
-bool (*pItemUse )(Player*, Item*, SpellCastTargets const& );
-
-CreatureAI* (*GetAI)(Creature*);
-InstanceData* (*GetInstanceData)(Map*);
-};
-
-extern int nrscripts;
-extern Script *m_scripts[MAX_SCRIPTS];
-
-// Localized Text function
-const char* GetEventAILocalizedText(uint32 entry);
-
-//EventAI text function
-const char* GetEventAIText(uint32 entry); // TODO: Locales
-
-//Generic scripting text function
-void DoScriptText(int32 textEntry, WorldObject* pSource, Unit* target = NULL);
-
-#if COMPILER == COMPILER_GNU
-#define FUNC_PTR(name,callconvention,returntype,parameters) typedef returntype(*name)parameters __attribute__ ((callconvention));
-#else
-#define FUNC_PTR(name, callconvention, returntype, parameters) typedef returntype(callconvention *name)parameters;
-#endif
-
-#ifdef WIN32
- #define MANGOS_DLL_EXPORT extern "C" __declspec(dllexport)
-#elif defined( __GNUC__ )
- #define MANGOS_DLL_EXPORT extern "C"
-#else
- #define MANGOS_DLL_EXPORT extern "C" export
-#endif
-
-#endif
+/* Copyright (C) 2006 - 2008 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
+ * This program is free software licensed under GPL version 2
+ * Please see the included DOCS/LICENSE.TXT for more information */
+
+#ifndef SCRIPTMGR_H
+#define SCRIPTMGR_H
+
+#include "Common.h"
+#include "Platform/CompilerDefs.h"
+#include "Database/DBCStructure.h"
+
+class Player;
+class Creature;
+class CreatureAI;
+class InstanceData;
+class Quest;
+class Item;
+class GameObject;
+class SpellCastTargets;
+class Map;
+class Unit;
+class WorldObject;
+
+#define MAX_SCRIPTS 1000 //72 bytes each (approx 71kb)
+#define VISIBLE_RANGE (166.0f) //MAX visible range (size of grid)
+#define DEFAULT_TEXT "<Trinity Script Text Entry Missing!>"
+
+struct Script
+{
+ Script() :
+pGossipHello(NULL), pQuestAccept(NULL), pGossipSelect(NULL), pGossipSelectWithCode(NULL),
+pQuestSelect(NULL), pQuestComplete(NULL), pNPCDialogStatus(NULL), pGODialogStatus(NULL), pChooseReward(NULL),
+pItemHello(NULL), pGOHello(NULL), pAreaTrigger(NULL), pItemQuestAccept(NULL), pGOQuestAccept(NULL),
+pGOChooseReward(NULL),pReceiveEmote(NULL),pItemUse(NULL), GetAI(NULL), GetInstanceData(NULL)
+{}
+
+std::string Name;
+
+// Quest/gossip Methods to be scripted
+bool (*pGossipHello )(Player*, Creature*);
+bool (*pQuestAccept )(Player*, Creature*, Quest const* );
+bool (*pGossipSelect )(Player*, Creature*, uint32 , uint32 );
+bool (*pGossipSelectWithCode)(Player*, Creature*, uint32 , uint32 , const char* );
+bool (*pQuestSelect )(Player*, Creature*, Quest const* );
+bool (*pQuestComplete )(Player*, Creature*, Quest const* );
+uint32 (*pNPCDialogStatus )(Player*, Creature* );
+uint32 (*pGODialogStatus )(Player *player, GameObject * _GO );
+bool (*pChooseReward )(Player*, Creature*, Quest const*, uint32 );
+bool (*pItemHello )(Player*, Item*, Quest const* );
+bool (*pGOHello )(Player*, GameObject* );
+bool (*pAreaTrigger )(Player*, AreaTriggerEntry* );
+bool (*pItemQuestAccept )(Player*, Item *, Quest const* );
+bool (*pGOQuestAccept )(Player*, GameObject*, Quest const* );
+bool (*pGOChooseReward )(Player*, GameObject*_GO, Quest const*, uint32 );
+bool (*pReceiveEmote )(Player*, Creature*, uint32 );
+bool (*pItemUse )(Player*, Item*, SpellCastTargets const& );
+
+CreatureAI* (*GetAI)(Creature*);
+InstanceData* (*GetInstanceData)(Map*);
+};
+
+extern int nrscripts;
+extern Script *m_scripts[MAX_SCRIPTS];
+
+// Localized Text function
+const char* GetEventAILocalizedText(uint32 entry);
+
+//EventAI text function
+const char* GetEventAIText(uint32 entry); // TODO: Locales
+
+//Generic scripting text function
+void DoScriptText(int32 textEntry, WorldObject* pSource, Unit* target = NULL);
+
+#if COMPILER == COMPILER_GNU
+#define FUNC_PTR(name,callconvention,returntype,parameters) typedef returntype(*name)parameters __attribute__ ((callconvention));
+#else
+#define FUNC_PTR(name, callconvention, returntype, parameters) typedef returntype(callconvention *name)parameters;
+#endif
+
+#ifdef WIN32
+ #define MANGOS_DLL_EXPORT extern "C" __declspec(dllexport)
+#elif defined( __GNUC__ )
+ #define MANGOS_DLL_EXPORT extern "C"
+#else
+ #define MANGOS_DLL_EXPORT extern "C" export
+#endif
+
+#endif
diff --git a/src/bindings/scripts/VC71/71ScriptDev2.vcproj b/src/bindings/scripts/VC71/71ScriptDev2.vcproj
index 38368d48de5..80d611c2afc 100644
--- a/src/bindings/scripts/VC71/71ScriptDev2.vcproj
+++ b/src/bindings/scripts/VC71/71ScriptDev2.vcproj
@@ -1,1595 +1,1595 @@
-<?xml version="1.0" encoding="windows-1251"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="7.10"
- Name="TrinityScript"
- ProjectGUID="{4295C8A9-79B7-4354-8064-F05FB9CA0C96}"
- RootNamespace="ScriptDev2"
- Keyword="Win32Proj">
- <Platforms>
- <Platform
- Name="Win32"/>
- </Platforms>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="..\..\..\..\bin\$(PlatformName)_$(ConfigurationName)"
- IntermediateDirectory=".\ScriptDev2__$(PlatformName)_$(ConfigurationName)"
- ConfigurationType="2"
- CharacterSet="2">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="..\..\..\..\dep\include\;..\..\..\shared\;..\..\..\framework\;..\..\..\game\;..\include\;..\..\..\..\dep\ACE_wrappers"
- PreprocessorDefinitions="WIN32;_DEBUG;MANGOS_DEBUG;_WINDOWS;_USRDLL;SCRIPT"
- MinimalRebuild="TRUE"
- BasicRuntimeChecks="3"
- RuntimeLibrary="1"
- UsePrecompiledHeader="3"
- PrecompiledHeaderThrough="precompiled.h"
- WarningLevel="3"
- Detect64BitPortabilityProblems="TRUE"
- DebugInformationFormat="4"/>
- <Tool
- Name="VCCustomBuildTool"/>
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="trinitycore.lib zthread.lib"
- OutputFile="$(OutDir)/TrinityScript.dll"
- LinkIncremental="2"
- AdditionalLibraryDirectories="..\..\..\..\win\VC71\zthread__$(PlatformName)_$(ConfigurationName);..\..\..\..\win\VC71\trinitycore__$(PlatformName)_$(ConfigurationName)"
- GenerateDebugInformation="TRUE"
- ProgramDatabaseFile="$(OutDir)/MaNGOSScript.pdb"
- SubSystem="2"
- ImportLibrary="$(OutDir)/TrinityScript.lib"
- TargetMachine="1"/>
- <Tool
- Name="VCMIDLTool"/>
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine="copy ..\trinityscript.conf.dist ..\..\..\..\bin\$(PlatformName)_$(ConfigurationName)\TrinityScript.conf.dist"/>
- <Tool
- Name="VCPreBuildEventTool"/>
- <Tool
- Name="VCPreLinkEventTool"/>
- <Tool
- Name="VCResourceCompilerTool"/>
- <Tool
- Name="VCWebServiceProxyGeneratorTool"/>
- <Tool
- Name="VCXMLDataGeneratorTool"/>
- <Tool
- Name="VCWebDeploymentTool"/>
- <Tool
- Name="VCManagedWrapperGeneratorTool"/>
- <Tool
- Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="..\..\..\..\bin\$(PlatformName)_$(ConfigurationName)"
- IntermediateDirectory=".\ScriptDev2__$(PlatformName)_$(ConfigurationName)"
- ConfigurationType="2"
- CharacterSet="2">
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories="..\..\..\..\dep\include\;..\..\..\shared\;..\..\..\framework\;..\..\..\game\;..\include\;..\..\..\..\dep\ACE_wrappers"
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;SCRIPT"
- RuntimeLibrary="0"
- EnableEnhancedInstructionSet="1"
- UsePrecompiledHeader="3"
- PrecompiledHeaderThrough="precompiled.h"
- WarningLevel="3"
- Detect64BitPortabilityProblems="TRUE"
- DebugInformationFormat="3"/>
- <Tool
- Name="VCCustomBuildTool"/>
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="trinitycore.lib zthread.lib"
- OutputFile="$(OutDir)/TrinityScript.dll"
- LinkIncremental="1"
- AdditionalLibraryDirectories="..\..\..\..\win\VC71\zthread__$(PlatformName)_$(ConfigurationName);..\..\..\..\win\VC71\trinitycore__$(PlatformName)_$(ConfigurationName)"
- GenerateDebugInformation="FALSE"
- SubSystem="2"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- ImportLibrary="$(OutDir)/TrinityScript.lib"
- TargetMachine="1"/>
- <Tool
- Name="VCMIDLTool"/>
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine="copy ..\trinityscript.conf.dist ..\..\..\..\bin\$(PlatformName)_$(ConfigurationName)\TrinityScript.conf.dist"/>
- <Tool
- Name="VCPreBuildEventTool"/>
- <Tool
- Name="VCPreLinkEventTool"/>
- <Tool
- Name="VCResourceCompilerTool"/>
- <Tool
- Name="VCWebServiceProxyGeneratorTool"/>
- <Tool
- Name="VCXMLDataGeneratorTool"/>
- <Tool
- Name="VCWebDeploymentTool"/>
- <Tool
- Name="VCManagedWrapperGeneratorTool"/>
- <Tool
- Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Scripts">
- <Filter
- Name="boss">
- <File
- RelativePath="..\scripts\boss\boss_emeriss.cpp">
- </File>
- <File
- RelativePath="..\scripts\boss\boss_lethon.cpp">
- </File>
- <File
- RelativePath="..\scripts\boss\boss_taerar.cpp">
- </File>
- <File
- RelativePath="..\scripts\boss\boss_ysondre.cpp">
- </File>
- </Filter>
- <Filter
- Name="creature">
- <File
- RelativePath="..\scripts\creature\mob_event_ai.cpp">
- </File>
- <File
- RelativePath="..\scripts\creature\mob_event_ai.h">
- </File>
- <File
- RelativePath="..\scripts\creature\mob_generic_creature.cpp">
- </File>
- <File
- RelativePath="..\scripts\creature\simple_ai.cpp">
- </File>
- <File
- RelativePath="..\scripts\creature\simple_ai.h">
- </File>
- </Filter>
- <Filter
- Name="guard">
- <File
- RelativePath="..\scripts\guard\guard_ai.cpp">
- </File>
- <File
- RelativePath="..\scripts\guard\guard_ai.h">
- </File>
- <File
- RelativePath="..\scripts\guard\guards.cpp">
- </File>
- </Filter>
- <Filter
- Name="honor">
- </Filter>
- <Filter
- Name="npc">
- <File
- RelativePath="..\scripts\npc\npc_escortAI.cpp">
- </File>
- <File
- RelativePath="..\scripts\npc\npc_escortAI.h">
- </File>
- <File
- RelativePath="..\scripts\npc\npc_innkeeper.cpp">
- </File>
- <File
- RelativePath="..\scripts\npc\npc_professions.cpp">
- </File>
- <File
- RelativePath="..\scripts\npc\npcs_special.cpp">
- </File>
- </Filter>
- <Filter
- Name="servers">
- </Filter>
- <Filter
- Name="custom">
- <File
- RelativePath="..\scripts\custom\custom_example.cpp">
- </File>
- <File
- RelativePath="..\scripts\custom\custom_gossip_codebox.cpp">
- </File>
- <File
- RelativePath="..\scripts\custom\test.cpp">
- </File>
- </Filter>
- <Filter
- Name="areatrigger">
- <File
- RelativePath="..\scripts\areatrigger\areatrigger_scripts.cpp">
- </File>
- </Filter>
- <Filter
- Name="go">
- <File
- RelativePath="..\scripts\go\go_scripts.cpp">
- </File>
- </Filter>
- <Filter
- Name="item">
- <File
- RelativePath="..\scripts\item\item_scripts.cpp">
- </File>
- <File
- RelativePath="..\scripts\item\item_test.cpp">
- </File>
- </Filter>
- <Filter
- Name="zone">
- <Filter
- Name="Alterac Mountains">
- <File
- RelativePath="..\scripts\zone\alterac_mountains\alterac_mountains.cpp">
- </File>
- </Filter>
- <Filter
- Name="Ashenvale Forest">
- </Filter>
- <Filter
- Name="Azshara">
- <File
- RelativePath="..\scripts\zone\azshara\azshara.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\azshara\boss_azuregos.cpp">
- </File>
- </Filter>
- <Filter
- Name="Badlands">
- </Filter>
- <Filter
- Name="Barrens">
- <File
- RelativePath="..\scripts\zone\barrens\the_barrens.cpp">
- </File>
- </Filter>
- <Filter
- Name="Blackfathom Depths">
- </Filter>
- <Filter
- Name="Arathi Highlands">
- </Filter>
- <Filter
- Name="Deadmines">
- <File
- RelativePath="..\scripts\zone\deadmines\deadmines.cpp">
- </File>
- </Filter>
- <Filter
- Name="Deadwind Pass">
- </Filter>
- <Filter
- Name="Desolace">
- </Filter>
- <Filter
- Name="Dire Maul">
- </Filter>
- <Filter
- Name="Dun Morogh">
- <File
- RelativePath="..\scripts\zone\dun_morogh\dun_morogh.cpp">
- </File>
- </Filter>
- <Filter
- Name="Durotar">
- </Filter>
- <Filter
- Name="Duskwood">
- </Filter>
- <Filter
- Name="Dustwallow Marsh">
- <File
- RelativePath="..\scripts\zone\dustwallow_marsh\dustwallow_marsh.cpp">
- </File>
- </Filter>
- <Filter
- Name="Blackwing Lair">
- <File
- RelativePath="..\scripts\zone\blackwing_lair\boss_broodlord_lashlayer.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\blackwing_lair\boss_chromaggus.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\blackwing_lair\boss_ebonroc.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\blackwing_lair\boss_firemaw.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\blackwing_lair\boss_flamegor.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\blackwing_lair\boss_nefarian.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\blackwing_lair\boss_razorgore.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\blackwing_lair\boss_vaelastrasz.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\blackwing_lair\boss_victor_nefarius.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\blackwing_lair\instance_blackwing_lair.cpp">
- </File>
- </Filter>
- <Filter
- Name="Bloodmyst Isle">
- <File
- RelativePath="..\scripts\zone\bloodmyst_isle\bloodmyst_isle.cpp">
- </File>
- </Filter>
- <Filter
- Name="Gruul&apos;s Lair">
- <File
- RelativePath="..\scripts\zone\gruuls_lair\boss_gruul.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\gruuls_lair\boss_high_king_maulgar.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\gruuls_lair\def_gruuls_lair.h">
- </File>
- <File
- RelativePath="..\scripts\zone\gruuls_lair\instance_gruuls_lair.cpp">
- </File>
- </Filter>
- <Filter
- Name="Burning Steppes">
- <File
- RelativePath="..\scripts\zone\burning_steppes\burning_steppes.cpp">
- </File>
- </Filter>
- <Filter
- Name="Darkshore">
- <File
- RelativePath="..\scripts\zone\darkshore\darkshore.cpp">
- </File>
- </Filter>
- <Filter
- Name="Eastern Plaguelands">
- <File
- RelativePath="..\scripts\zone\eastern_plaguelands\eastern_plaguelands.cpp">
- </File>
- </Filter>
- <Filter
- Name="Moonglade">
- <File
- RelativePath="..\scripts\zone\moonglade\moonglade.cpp">
- </File>
- </Filter>
- <Filter
- Name="Razorfen Kraul">
- </Filter>
- <Filter
- Name="Redridge Mountains">
- </Filter>
- <Filter
- Name="Ruins of Ahn&apos;Qiraj">
- <File
- RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_ayamiss.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_buru.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_kurinnaxx.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_moam.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_ossirian.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_rajaxx.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\ruins_of_ahnqiraj\instance_ruins_of_ahnqiraj.cpp">
- </File>
- </Filter>
- <Filter
- Name="Swamp of Sorrows">
- </Filter>
- <Filter
- Name="Scarlet Monastery">
- <File
- RelativePath="..\scripts\zone\scarlet_monastery\boss_arcanist_doan.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\scarlet_monastery\boss_azshir_the_sleepless.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\scarlet_monastery\boss_bloodmage_thalnos.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\scarlet_monastery\boss_herod.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\scarlet_monastery\boss_high_inquisitor_fairbanks.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\scarlet_monastery\boss_high_inquisitor_whitemane.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\scarlet_monastery\boss_houndmaster_loksey.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\scarlet_monastery\boss_interrogator_vishas.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\scarlet_monastery\boss_scarlet_commander_mograine.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\scarlet_monastery\boss_scorn.cpp">
- </File>
- </Filter>
- <Filter
- Name="Scholomance">
- <File
- RelativePath="..\scripts\zone\scholomance\boss_darkmaster_gandling.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\scholomance\boss_death_knight_darkreaver.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\scholomance\boss_doctor_theolen_krastinov.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\scholomance\boss_illucia_barov.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\scholomance\boss_instructor_malicia.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\scholomance\boss_jandice_barov.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\scholomance\boss_kormok.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\scholomance\boss_lord_alexei_barov.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\scholomance\boss_lorekeeper_polkelt.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\scholomance\boss_ras_frostwhisper.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\scholomance\boss_the_ravenian.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\scholomance\boss_vectus.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\scholomance\def_scholomance.h">
- </File>
- <File
- RelativePath="..\scripts\zone\scholomance\instance_scholomance.cpp">
- </File>
- </Filter>
- <Filter
- Name="Searing Gorge">
- <File
- RelativePath="..\scripts\zone\searing_gorge\searing_gorge.cpp">
- </File>
- </Filter>
- <Filter
- Name="Elwynn Forest">
- <File
- RelativePath="..\scripts\zone\elwynn_forest\elwynn_forest.cpp">
- </File>
- </Filter>
- <Filter
- Name="Felwood">
- <File
- RelativePath="..\scripts\zone\felwood\felwood.cpp">
- </File>
- </Filter>
- <Filter
- Name="Feralas">
- <File
- RelativePath="..\scripts\zone\feralas\feralas.cpp">
- </File>
- </Filter>
- <Filter
- Name="Gnomeregan">
- </Filter>
- <Filter
- Name="Hillsbrad Foothills">
- </Filter>
- <Filter
- Name="Hinterlands">
- </Filter>
- <Filter
- Name="Maraudon">
- <File
- RelativePath="..\scripts\zone\maraudon\boss_celebras_the_cursed.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\maraudon\boss_landslide.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\maraudon\boss_noxxion.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\maraudon\boss_princess_theradras.cpp">
- </File>
- </Filter>
- <Filter
- Name="Molten Core">
- <File
- RelativePath="..\scripts\zone\molten_core\boss_baron_geddon.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\molten_core\boss_garr.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\molten_core\boss_gehennas.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\molten_core\boss_golemagg.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\molten_core\boss_lucifron.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\molten_core\boss_magmadar.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\molten_core\boss_majordomo_executus.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\molten_core\boss_ragnaros.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\molten_core\boss_shazzrah.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\molten_core\boss_sulfuron_harbinger.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\molten_core\def_molten_core.h">
- </File>
- <File
- RelativePath="..\scripts\zone\molten_core\instance_molten_core.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\molten_core\molten_core.cpp">
- </File>
- </Filter>
- <Filter
- Name="Mulgore">
- <File
- RelativePath="..\scripts\zone\mulgore\mulgore.cpp">
- </File>
- </Filter>
- <Filter
- Name="Naxxramas">
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_anubrekhan.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_faerlina.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_feugen.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_gluth.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_gothik.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_grobbulus.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_heigan.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_highlord_mograine.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_kelthuzad.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_lady_blaumeux.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_loatheb.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_maexxna.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_noth.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_patchwerk.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_razuvious.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_sapphiron.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_sir_zeliek.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_stalagg.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_thaddius.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_thane_korthazz.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\instance_naxxramas.cpp">
- </File>
- </Filter>
- <Filter
- Name="Onyxia&apos;s Lair">
- <File
- RelativePath="..\scripts\zone\onyxias_lair\boss_onyxia.cpp">
- </File>
- </Filter>
- <Filter
- Name="Ragefire Chasm">
- </Filter>
- <Filter
- Name="Razorfen Downs">
- <File
- RelativePath="..\scripts\zone\razorfen_downs\boss_amnennar_the_coldbringer.cpp">
- </File>
- </Filter>
- <Filter
- Name="Shadowfang Keep">
- <File
- RelativePath="..\scripts\zone\shadowfang_keep\def_shadowfang_keep.h">
- </File>
- <File
- RelativePath="..\scripts\zone\shadowfang_keep\instance_shadowfang_keep.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\shadowfang_keep\shadowfang_keep.cpp">
- </File>
- </Filter>
- <Filter
- Name="Stonetalon Mountains">
- <File
- RelativePath="..\scripts\zone\stonetalon_mountains\stonetalon_mountains.cpp">
- </File>
- </Filter>
- <Filter
- Name="Stranglethorn Vale">
- <File
- RelativePath="..\scripts\zone\stranglethorn_vale\stranglethorn_vale.cpp">
- </File>
- </Filter>
- <Filter
- Name="Stratholme">
- <File
- RelativePath="..\scripts\zone\stratholme\boss_baron_rivendare.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\stratholme\boss_baroness_anastari.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\stratholme\boss_cannon_master_willey.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\stratholme\boss_dathrohan_balnazzar.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\stratholme\boss_magistrate_barthilas.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\stratholme\boss_maleki_the_pallid.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\stratholme\boss_nerubenkan.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\stratholme\boss_order_of_silver_hand.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\stratholme\boss_postmaster_malown.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\stratholme\boss_ramstein_the_gorger.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\stratholme\boss_timmy_the_cruel.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\stratholme\def_stratholme.h">
- </File>
- <File
- RelativePath="..\scripts\zone\stratholme\instance_stratholme.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\stratholme\stratholme.cpp">
- </File>
- </Filter>
- <Filter
- Name="Sunken Temple">
- </Filter>
- <Filter
- Name="Tanaris">
- <File
- RelativePath="..\scripts\zone\tanaris\tanaris.cpp">
- </File>
- </Filter>
- <Filter
- Name="Teldrassil">
- </Filter>
- <Filter
- Name="Temple of Ahn&apos;Qiraj">
- <File
- RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_bug_trio.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_cthun.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_fankriss.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_huhuran.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_ouro.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_sartura.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_skeram.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_twinemperors.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_viscidus.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\temple_of_ahnqiraj\def_temple_of_ahnqiraj.h">
- </File>
- <File
- RelativePath="..\scripts\zone\temple_of_ahnqiraj\instance_temple_of_ahnqiraj.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\temple_of_ahnqiraj\mob_anubisath_sentinel.cpp">
- </File>
- </Filter>
- <Filter
- Name="Thousand Needles">
- </Filter>
- <Filter
- Name="Silithus">
- <File
- RelativePath="..\scripts\zone\silithus\silithus.cpp">
- </File>
- </Filter>
- <Filter
- Name="Silverpine Forest">
- <File
- RelativePath="..\scripts\zone\silverpine_forest\silverpine_forest.cpp">
- </File>
- </Filter>
- <Filter
- Name="Stockade">
- </Filter>
- <Filter
- Name="Tirisfal Glades">
- <File
- RelativePath="..\scripts\zone\tirisfal_glades\tirisfal_glades.cpp">
- </File>
- </Filter>
- <Filter
- Name="Wailing Caverns">
- <File
- RelativePath="..\scripts\zone\wailing_caverns\instance_wailing_caverns.cpp">
- </File>
- </Filter>
- <Filter
- Name="Western Plaguelands">
- <File
- RelativePath="..\scripts\zone\western_plaguelands\western_plaguelands.cpp">
- </File>
- </Filter>
- <Filter
- Name="Westfall">
- </Filter>
- <Filter
- Name="Wetlands">
- </Filter>
- <Filter
- Name="Winterspring">
- <File
- RelativePath="..\scripts\zone\winterspring\winterspring.cpp">
- </File>
- </Filter>
- <Filter
- Name="Zul&apos;Farrak">
- <File
- RelativePath="..\scripts\zone\zulfarrak\zulfarrak.cpp">
- </File>
- </Filter>
- <Filter
- Name="Zul&apos;Gurub">
- <File
- RelativePath="..\scripts\zone\zulgurub\boss_arlokk.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\zulgurub\boss_gahzranka.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\zulgurub\boss_grilek.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\zulgurub\boss_hakkar.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\zulgurub\boss_hazzarah.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\zulgurub\boss_jeklik.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\zulgurub\boss_jindo.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\zulgurub\boss_mandokir.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\zulgurub\boss_marli.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\zulgurub\boss_renataki.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\zulgurub\boss_thekal.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\zulgurub\boss_venoxis.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\zulgurub\boss_wushoolay.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\zulgurub\def_zulgurub.h">
- </File>
- <File
- RelativePath="..\scripts\zone\zulgurub\instance_zulgurub.cpp">
- </File>
- </Filter>
- <Filter
- Name="Uldaman">
- <File
- RelativePath="..\scripts\zone\uldaman\boss_ironaya.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\uldaman\uldaman.cpp">
- </File>
- </Filter>
- <Filter
- Name="Un&apos;Goro Crater">
- </Filter>
- <Filter
- Name="Aunchindoun">
- <Filter
- Name="Auchenai Crypts">
- <File
- RelativePath="..\scripts\zone\aunchindoun\auchenai_crypts\boss_exarch_maladaar.cpp">
- </File>
- </Filter>
- <Filter
- Name="Mana Tombs">
- <File
- RelativePath="..\scripts\zone\aunchindoun\mana_tombs\boss_nexusprince_shaffar.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\aunchindoun\mana_tombs\boss_pandemonius.cpp">
- </File>
- </Filter>
- <Filter
- Name="Sethekk Halls">
- <File
- RelativePath="..\scripts\zone\aunchindoun\sethekk_halls\boss_darkweaver_syth.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\aunchindoun\sethekk_halls\boss_tailonking_ikiss.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\aunchindoun\sethekk_halls\def_sethekk_halls.h">
- </File>
- <File
- RelativePath="..\scripts\zone\aunchindoun\sethekk_halls\instance_sethekk_halls.cpp">
- </File>
- </Filter>
- <Filter
- Name="Shadow Labyrinth">
- <File
- RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\boss_ambassador_hellmaw.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\boss_blackheart_the_inciter.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\boss_grandmaster_vorpil.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\boss_murmur.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\def_shadow_labyrinth.h">
- </File>
- <File
- RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\instance_shadow_labyrinth.cpp">
- </File>
- </Filter>
- </Filter>
- <Filter
- Name="Azuremyst Isle">
- <File
- RelativePath="..\scripts\zone\azuremyst_isle\azuremyst_isle.cpp">
- </File>
- </Filter>
- <Filter
- Name="Black Temple">
- <File
- RelativePath="..\scripts\zone\black_temple\black_temple.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\black_temple\boss_bloodboil.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\black_temple\boss_illidan.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\black_temple\boss_mother_shahraz.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\black_temple\boss_reliquary_of_souls.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\black_temple\boss_shade_of_akama.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\black_temple\boss_supremus.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\black_temple\boss_teron_gorefiend.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\black_temple\boss_warlord_najentus.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\black_temple\def_black_temple.h">
- </File>
- <File
- RelativePath="..\scripts\zone\black_temple\illidari_council.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\black_temple\instance_black_temple.cpp">
- </File>
- </Filter>
- <Filter
- Name="Eversong Woods">
- <File
- RelativePath="..\scripts\zone\eversong_woods\eversong_woods.cpp">
- </File>
- </Filter>
- <Filter
- Name="Ghostlands">
- <File
- RelativePath="..\scripts\zone\ghostlands\ghostlands.cpp">
- </File>
- </Filter>
- <Filter
- Name="Blade&apos;s Edge Mountains">
- <File
- RelativePath="..\scripts\zone\blades_edge_mountains\blades_edge_mountains.cpp">
- </File>
- </Filter>
- <Filter
- Name="Blasted Lands">
- <File
- RelativePath="..\scripts\zone\blasted_lands\blasted_lands.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\blasted_lands\boss_kruul.cpp">
- </File>
- </Filter>
- <Filter
- Name="Hellfire Citadel">
- <Filter
- Name="Blood Furnace">
- <File
- RelativePath="..\scripts\zone\hellfire_citadel\blood_furnace\boss_broggok.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\hellfire_citadel\blood_furnace\boss_kelidan_the_breaker.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\hellfire_citadel\blood_furnace\boss_the_maker.cpp">
- </File>
- </Filter>
- <Filter
- Name="Magtheridon&apos;s lair">
- <File
- RelativePath="..\scripts\zone\hellfire_citadel\magtheridons_lair\boss_magtheridon.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\hellfire_citadel\magtheridons_lair\def_magtheridons_lair.h">
- </File>
- <File
- RelativePath="..\scripts\zone\hellfire_citadel\magtheridons_lair\instance_magtheridons_lair.cpp">
- </File>
- </Filter>
- <Filter
- Name="Hellfire Ramparts">
- <File
- RelativePath="..\scripts\zone\hellfire_citadel\hellfire_ramparts\boss_omor_the_unscarred.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\hellfire_citadel\hellfire_ramparts\boss_watchkeeper_gargolmar.cpp">
- </File>
- </Filter>
- <Filter
- Name="Shattered Halls">
- <File
- RelativePath="..\scripts\zone\hellfire_citadel\shattered_halls\boss_nethekurse.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\hellfire_citadel\shattered_halls\boss_warbringer_omrogg.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\hellfire_citadel\shattered_halls\def_shattered_halls.h">
- </File>
- <File
- RelativePath="..\scripts\zone\hellfire_citadel\shattered_halls\instance_shattered_halls.cpp">
- </File>
- </Filter>
- </Filter>
- <Filter
- Name="Hellfire Peninsula">
- <File
- RelativePath="..\scripts\zone\hellfire_peninsula\boss_doomlord_kazzak.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\hellfire_peninsula\hellfire_peninsula.cpp">
- </File>
- </Filter>
- <Filter
- Name="Karazhan">
- <File
- RelativePath="..\scripts\zone\karazhan\boss_curator.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\karazhan\boss_maiden_of_virtue.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\karazhan\boss_midnight.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\karazhan\boss_moroes.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\karazhan\boss_netherspite.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\karazhan\boss_nightbane.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\karazhan\boss_prince_malchezaar.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\karazhan\boss_shade_of_aran.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\karazhan\boss_terestian_illhoof.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\karazhan\bosses_opera.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\karazhan\def_karazhan.h">
- </File>
- <File
- RelativePath="..\scripts\zone\karazhan\instance_karazhan.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\karazhan\karazhan.cpp">
- </File>
- </Filter>
- <Filter
- Name="Nagrand">
- <File
- RelativePath="..\scripts\zone\nagrand\nagrand.cpp">
- </File>
- </Filter>
- <Filter
- Name="Netherstorm">
- <File
- RelativePath="..\scripts\zone\netherstorm\netherstorm.cpp">
- </File>
- </Filter>
- <Filter
- Name="Shadowmoon Valley">
- <File
- RelativePath="..\scripts\zone\shadowmoon_valley\boss_doomwalker.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\shadowmoon_valley\shadowmoon_valley.cpp">
- </File>
- </Filter>
- <Filter
- Name="Tempest Keep">
- <Filter
- Name="Arcatraz">
- <File
- RelativePath="..\scripts\zone\tempest_keep\arcatraz\arcatraz.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\tempest_keep\arcatraz\boss_harbinger_skyriss.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\tempest_keep\arcatraz\def_arcatraz.h">
- </File>
- <File
- RelativePath="..\scripts\zone\tempest_keep\arcatraz\instance_arcatraz.cpp">
- </File>
- </Filter>
- <Filter
- Name="Botanica">
- <File
- RelativePath="..\scripts\zone\tempest_keep\botanica\boss_high_botanist_freywinn.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\tempest_keep\botanica\boss_laj.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\tempest_keep\botanica\boss_warp_splinter.cpp">
- </File>
- </Filter>
- <Filter
- Name="The Eye">
- <File
- RelativePath="..\scripts\zone\tempest_keep\the_eye\boss_astromancer.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\tempest_keep\the_eye\boss_kaelthas.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\tempest_keep\the_eye\boss_void_reaver.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\tempest_keep\the_eye\def_the_eye.h">
- </File>
- <File
- RelativePath="..\scripts\zone\tempest_keep\the_eye\instance_the_eye.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\tempest_keep\the_eye\the_eye.cpp">
- </File>
- </Filter>
- <Filter
- Name="The Mechanar">
- <File
- RelativePath="..\scripts\zone\tempest_keep\the_mechanar\boss_gatewatcher_gyrokill.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\tempest_keep\the_mechanar\boss_gatewatcher_ironhand.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\tempest_keep\the_mechanar\boss_nethermancer_sepethrea.cpp">
- </File>
- </Filter>
- </Filter>
- <Filter
- Name="Terokkar Forest">
- <File
- RelativePath="..\scripts\zone\terokkar_forest\terokkar_forest.cpp">
- </File>
- </Filter>
- <Filter
- Name="Zangarmarsh">
- <File
- RelativePath="..\scripts\zone\zangarmarsh\zangarmarsh.cpp">
- </File>
- </Filter>
- <Filter
- Name="Blackrock Spire">
- <File
- RelativePath="..\scripts\zone\blackrock_spire\boss_drakkisath.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_spire\boss_gyth.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_spire\boss_halycon.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_spire\boss_highlord_omokk.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_spire\boss_mother_smolderweb.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_spire\boss_overlord_wyrmthalak.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_spire\boss_pyroguard_emberseer.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_spire\boss_quartermaster_zigris.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_spire\boss_rend_blackhand.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_spire\boss_shadow_hunter_voshgajin.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_spire\boss_the_beast.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_spire\boss_warmaster_voone.cpp">
- </File>
- </Filter>
- <Filter
- Name="Stormwind City">
- <File
- RelativePath="..\scripts\zone\stormwind\stormwind_city.cpp">
- </File>
- </Filter>
- <Filter
- Name="Coilfang Resevoir">
- <Filter
- Name="Serpent Shrine Cavern">
- <File
- RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\boss_fathomlord_karathress.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\boss_hydross_the_unstable.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\boss_lady_vashj.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\boss_leotheras_the_blind.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\boss_morogrim_tidewalker.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\def_serpent_shrine.h">
- </File>
- <File
- RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\instance_serpent_shrine.cpp">
- </File>
- </Filter>
- <Filter
- Name="Slave Pens">
- </Filter>
- <Filter
- Name="Steam Vault">
- <File
- RelativePath="..\scripts\zone\coilfang_resevoir\steam_vault\boss_hydromancer_thespia.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\coilfang_resevoir\steam_vault\boss_mekgineer_steamrigger.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\coilfang_resevoir\steam_vault\boss_warlord_kalithresh.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\coilfang_resevoir\steam_vault\def_steam_vault.h">
- </File>
- <File
- RelativePath="..\scripts\zone\coilfang_resevoir\steam_vault\instance_steam_vault.cpp">
- </File>
- </Filter>
- <Filter
- Name="Underbog">
- <File
- RelativePath="..\scripts\zone\coilfang_resevoir\underbog\boss_hungarfen.cpp">
- </File>
- </Filter>
- </Filter>
- <Filter
- Name="Caverns of Time">
- <Filter
- Name="The Dark Portal">
- <File
- RelativePath="..\scripts\zone\caverns_of_time\dark_portal\boss_aeonus.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\caverns_of_time\dark_portal\boss_chrono_lord_deja.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\caverns_of_time\dark_portal\boss_temporus.cpp">
- </File>
- </Filter>
- <Filter
- Name="Battle for Mt. Hyjal">
- <File
- RelativePath="..\scripts\zone\caverns_of_time\hyjal\boss_archimonde.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\caverns_of_time\hyjal\def_hyjal.h">
- </File>
- <File
- RelativePath="..\scripts\zone\caverns_of_time\hyjal\hyjal.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\caverns_of_time\hyjal\hyjalAI.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\caverns_of_time\hyjal\hyjalAI.h">
- </File>
- <File
- RelativePath="..\scripts\zone\caverns_of_time\hyjal\instance_hyjal.cpp">
- </File>
- </Filter>
- <Filter
- Name="Old Hillsbrad">
- <File
- RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\boss_captain_skarloc.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\boss_epoch_hunter.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\boss_leutenant_drake.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\def_old_hillsbrad.h">
- </File>
- <File
- RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\instance_old_hillsbrad.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\old_hillsbrad.cpp">
- </File>
- </Filter>
- </Filter>
- <Filter
- Name="Silvermoon City">
- <File
- RelativePath="..\scripts\zone\silvermoon\silvermoon_city.cpp">
- </File>
- </Filter>
- <Filter
- Name="Darnassus">
- </Filter>
- <Filter
- Name="Exodar">
- </Filter>
- <Filter
- Name="Iron Forge">
- <File
- RelativePath="..\scripts\zone\ironforge\ironforge.cpp">
- </File>
- </Filter>
- <Filter
- Name="Orgrimmar">
- <File
- RelativePath="..\scripts\zone\orgrimmar\orgrimmar.cpp">
- </File>
- </Filter>
- <Filter
- Name="Shattrath City">
- <File
- RelativePath="..\scripts\zone\shattrath\shattrath_city.cpp">
- </File>
- </Filter>
- <Filter
- Name="Thunder Bluff">
- <File
- RelativePath="..\scripts\zone\thunder_bluff\thunder_bluff.cpp">
- </File>
- </Filter>
- <Filter
- Name="Undercity">
- <File
- RelativePath="..\scripts\zone\undercity\undercity.cpp">
- </File>
- </Filter>
- <Filter
- Name="Zul&apos;Aman">
- <File
- RelativePath="..\scripts\zone\zulaman\boss_janalai.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\zulaman\boss_nalorakk.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\zulaman\def_zulaman.h">
- </File>
- <File
- RelativePath="..\scripts\zone\zulaman\instance_zulaman.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\zulaman\zulaman.cpp">
- </File>
- </Filter>
- <Filter
- Name="Isle of Quel&apos;Danas">
- <File
- RelativePath="..\scripts\zone\isle_of_queldanas\isle_of_queldanas.cpp">
- </File>
- </Filter>
- <Filter
- Name="Magister&apos;s Terrace">
- <File
- RelativePath="..\scripts\zone\magisters_terrace\boss_felblood_kaelthas.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\magisters_terrace\boss_priestess_delrissa.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\magisters_terrace\boss_selin_fireheart.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\magisters_terrace\boss_vexallus.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\magisters_terrace\def_magisters_terrace.h">
- </File>
- <File
- RelativePath="..\scripts\zone\magisters_terrace\instance_magisters_terrace.cpp">
- </File>
- </Filter>
- <Filter
- Name="Sunwell Plateau">
- <File
- RelativePath="..\scripts\zone\sunwell_plateau\boss_brutallus.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\sunwell_plateau\boss_kalecgos.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\sunwell_plateau\def_sunwell_plateau.h">
- </File>
- <File
- RelativePath="..\scripts\zone\sunwell_plateau\instance_sunwell_plateau.cpp">
- </File>
- </Filter>
- <Filter
- Name="Blackrock Depths">
- <File
- RelativePath="..\scripts\zone\blackrock_depths\blackrock_depths.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_ambassador_flamelash.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_angerrel.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_anubshiah.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_doomrel.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_doperel.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_emperor_dagran_thaurissan.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_general_angerforge.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_gloomrel.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_gorosh_the_dervish.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_grizzle.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_haterel.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_high_interrogator_gerstahn.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_magmus.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_moira_bronzebeard.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_seethrel.cpp">
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_vilerel.cpp">
- </File>
- </Filter>
- <Filter
- Name="Loch Modan">
- <File
- RelativePath="..\scripts\zone\loch_modan\loch_modan.cpp">
- </File>
- </Filter>
- </Filter>
- </Filter>
- <Filter
- Name="Include">
- <File
- RelativePath="..\include\precompiled.cpp">
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- UsePrecompiledHeader="1"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- UsePrecompiledHeader="1"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\include\precompiled.h">
- </File>
- <File
- RelativePath="..\include\sc_creature.cpp">
- </File>
- <File
- RelativePath="..\include\sc_creature.h">
- </File>
- <File
- RelativePath="..\include\sc_gossip.h">
- </File>
- <File
- RelativePath="..\include\sc_instance.h">
- </File>
- <File
- RelativePath="..\include\sc_item.h">
- </File>
- </Filter>
- <File
- RelativePath="..\config.h">
- </File>
- <File
- RelativePath="..\ScriptMgr.cpp">
- </File>
- <File
- RelativePath="..\ScriptMgr.h">
- </File>
- <File
- RelativePath="..\svn_revision.h">
- </File>
- <File
- RelativePath="..\system.cpp">
- </File>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
+<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="7.10"
+ Name="TrinityScript"
+ ProjectGUID="{4295C8A9-79B7-4354-8064-F05FB9CA0C96}"
+ RootNamespace="ScriptDev2"
+ Keyword="Win32Proj">
+ <Platforms>
+ <Platform
+ Name="Win32"/>
+ </Platforms>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="..\..\..\..\bin\$(PlatformName)_$(ConfigurationName)"
+ IntermediateDirectory=".\ScriptDev2__$(PlatformName)_$(ConfigurationName)"
+ ConfigurationType="2"
+ CharacterSet="2">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\..\..\..\dep\include\;..\..\..\shared\;..\..\..\framework\;..\..\..\game\;..\include\;..\..\..\..\dep\ACE_wrappers"
+ PreprocessorDefinitions="WIN32;_DEBUG;MANGOS_DEBUG;_WINDOWS;_USRDLL;SCRIPT"
+ MinimalRebuild="TRUE"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ UsePrecompiledHeader="3"
+ PrecompiledHeaderThrough="precompiled.h"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="TRUE"
+ DebugInformationFormat="4"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="trinitycore.lib zthread.lib"
+ OutputFile="$(OutDir)/TrinityScript.dll"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="..\..\..\..\win\VC71\zthread__$(PlatformName)_$(ConfigurationName);..\..\..\..\win\VC71\trinitycore__$(PlatformName)_$(ConfigurationName)"
+ GenerateDebugInformation="TRUE"
+ ProgramDatabaseFile="$(OutDir)/MaNGOSScript.pdb"
+ SubSystem="2"
+ ImportLibrary="$(OutDir)/TrinityScript.lib"
+ TargetMachine="1"/>
+ <Tool
+ Name="VCMIDLTool"/>
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="copy ..\trinityscript.conf.dist ..\..\..\..\bin\$(PlatformName)_$(ConfigurationName)\TrinityScript.conf.dist"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCXMLDataGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ <Tool
+ Name="VCManagedWrapperGeneratorTool"/>
+ <Tool
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="..\..\..\..\bin\$(PlatformName)_$(ConfigurationName)"
+ IntermediateDirectory=".\ScriptDev2__$(PlatformName)_$(ConfigurationName)"
+ ConfigurationType="2"
+ CharacterSet="2">
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="..\..\..\..\dep\include\;..\..\..\shared\;..\..\..\framework\;..\..\..\game\;..\include\;..\..\..\..\dep\ACE_wrappers"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;SCRIPT"
+ RuntimeLibrary="0"
+ EnableEnhancedInstructionSet="1"
+ UsePrecompiledHeader="3"
+ PrecompiledHeaderThrough="precompiled.h"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="TRUE"
+ DebugInformationFormat="3"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="trinitycore.lib zthread.lib"
+ OutputFile="$(OutDir)/TrinityScript.dll"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="..\..\..\..\win\VC71\zthread__$(PlatformName)_$(ConfigurationName);..\..\..\..\win\VC71\trinitycore__$(PlatformName)_$(ConfigurationName)"
+ GenerateDebugInformation="FALSE"
+ SubSystem="2"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ ImportLibrary="$(OutDir)/TrinityScript.lib"
+ TargetMachine="1"/>
+ <Tool
+ Name="VCMIDLTool"/>
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="copy ..\trinityscript.conf.dist ..\..\..\..\bin\$(PlatformName)_$(ConfigurationName)\TrinityScript.conf.dist"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCXMLDataGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ <Tool
+ Name="VCManagedWrapperGeneratorTool"/>
+ <Tool
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Scripts">
+ <Filter
+ Name="boss">
+ <File
+ RelativePath="..\scripts\boss\boss_emeriss.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\boss\boss_lethon.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\boss\boss_taerar.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\boss\boss_ysondre.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="creature">
+ <File
+ RelativePath="..\scripts\creature\mob_event_ai.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\creature\mob_event_ai.h">
+ </File>
+ <File
+ RelativePath="..\scripts\creature\mob_generic_creature.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\creature\simple_ai.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\creature\simple_ai.h">
+ </File>
+ </Filter>
+ <Filter
+ Name="guard">
+ <File
+ RelativePath="..\scripts\guard\guard_ai.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\guard\guard_ai.h">
+ </File>
+ <File
+ RelativePath="..\scripts\guard\guards.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="honor">
+ </Filter>
+ <Filter
+ Name="npc">
+ <File
+ RelativePath="..\scripts\npc\npc_escortAI.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\npc\npc_escortAI.h">
+ </File>
+ <File
+ RelativePath="..\scripts\npc\npc_innkeeper.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\npc\npc_professions.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\npc\npcs_special.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="servers">
+ </Filter>
+ <Filter
+ Name="custom">
+ <File
+ RelativePath="..\scripts\custom\custom_example.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\custom\custom_gossip_codebox.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\custom\test.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="areatrigger">
+ <File
+ RelativePath="..\scripts\areatrigger\areatrigger_scripts.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="go">
+ <File
+ RelativePath="..\scripts\go\go_scripts.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="item">
+ <File
+ RelativePath="..\scripts\item\item_scripts.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\item\item_test.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="zone">
+ <Filter
+ Name="Alterac Mountains">
+ <File
+ RelativePath="..\scripts\zone\alterac_mountains\alterac_mountains.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Ashenvale Forest">
+ </Filter>
+ <Filter
+ Name="Azshara">
+ <File
+ RelativePath="..\scripts\zone\azshara\azshara.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\azshara\boss_azuregos.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Badlands">
+ </Filter>
+ <Filter
+ Name="Barrens">
+ <File
+ RelativePath="..\scripts\zone\barrens\the_barrens.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Blackfathom Depths">
+ </Filter>
+ <Filter
+ Name="Arathi Highlands">
+ </Filter>
+ <Filter
+ Name="Deadmines">
+ <File
+ RelativePath="..\scripts\zone\deadmines\deadmines.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Deadwind Pass">
+ </Filter>
+ <Filter
+ Name="Desolace">
+ </Filter>
+ <Filter
+ Name="Dire Maul">
+ </Filter>
+ <Filter
+ Name="Dun Morogh">
+ <File
+ RelativePath="..\scripts\zone\dun_morogh\dun_morogh.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Durotar">
+ </Filter>
+ <Filter
+ Name="Duskwood">
+ </Filter>
+ <Filter
+ Name="Dustwallow Marsh">
+ <File
+ RelativePath="..\scripts\zone\dustwallow_marsh\dustwallow_marsh.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Blackwing Lair">
+ <File
+ RelativePath="..\scripts\zone\blackwing_lair\boss_broodlord_lashlayer.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackwing_lair\boss_chromaggus.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackwing_lair\boss_ebonroc.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackwing_lair\boss_firemaw.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackwing_lair\boss_flamegor.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackwing_lair\boss_nefarian.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackwing_lair\boss_razorgore.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackwing_lair\boss_vaelastrasz.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackwing_lair\boss_victor_nefarius.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackwing_lair\instance_blackwing_lair.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Bloodmyst Isle">
+ <File
+ RelativePath="..\scripts\zone\bloodmyst_isle\bloodmyst_isle.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Gruul&apos;s Lair">
+ <File
+ RelativePath="..\scripts\zone\gruuls_lair\boss_gruul.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\gruuls_lair\boss_high_king_maulgar.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\gruuls_lair\def_gruuls_lair.h">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\gruuls_lair\instance_gruuls_lair.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Burning Steppes">
+ <File
+ RelativePath="..\scripts\zone\burning_steppes\burning_steppes.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Darkshore">
+ <File
+ RelativePath="..\scripts\zone\darkshore\darkshore.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Eastern Plaguelands">
+ <File
+ RelativePath="..\scripts\zone\eastern_plaguelands\eastern_plaguelands.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Moonglade">
+ <File
+ RelativePath="..\scripts\zone\moonglade\moonglade.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Razorfen Kraul">
+ </Filter>
+ <Filter
+ Name="Redridge Mountains">
+ </Filter>
+ <Filter
+ Name="Ruins of Ahn&apos;Qiraj">
+ <File
+ RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_ayamiss.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_buru.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_kurinnaxx.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_moam.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_ossirian.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_rajaxx.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\ruins_of_ahnqiraj\instance_ruins_of_ahnqiraj.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Swamp of Sorrows">
+ </Filter>
+ <Filter
+ Name="Scarlet Monastery">
+ <File
+ RelativePath="..\scripts\zone\scarlet_monastery\boss_arcanist_doan.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scarlet_monastery\boss_azshir_the_sleepless.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scarlet_monastery\boss_bloodmage_thalnos.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scarlet_monastery\boss_herod.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scarlet_monastery\boss_high_inquisitor_fairbanks.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scarlet_monastery\boss_high_inquisitor_whitemane.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scarlet_monastery\boss_houndmaster_loksey.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scarlet_monastery\boss_interrogator_vishas.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scarlet_monastery\boss_scarlet_commander_mograine.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scarlet_monastery\boss_scorn.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Scholomance">
+ <File
+ RelativePath="..\scripts\zone\scholomance\boss_darkmaster_gandling.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scholomance\boss_death_knight_darkreaver.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scholomance\boss_doctor_theolen_krastinov.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scholomance\boss_illucia_barov.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scholomance\boss_instructor_malicia.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scholomance\boss_jandice_barov.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scholomance\boss_kormok.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scholomance\boss_lord_alexei_barov.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scholomance\boss_lorekeeper_polkelt.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scholomance\boss_ras_frostwhisper.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scholomance\boss_the_ravenian.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scholomance\boss_vectus.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scholomance\def_scholomance.h">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scholomance\instance_scholomance.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Searing Gorge">
+ <File
+ RelativePath="..\scripts\zone\searing_gorge\searing_gorge.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Elwynn Forest">
+ <File
+ RelativePath="..\scripts\zone\elwynn_forest\elwynn_forest.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Felwood">
+ <File
+ RelativePath="..\scripts\zone\felwood\felwood.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Feralas">
+ <File
+ RelativePath="..\scripts\zone\feralas\feralas.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Gnomeregan">
+ </Filter>
+ <Filter
+ Name="Hillsbrad Foothills">
+ </Filter>
+ <Filter
+ Name="Hinterlands">
+ </Filter>
+ <Filter
+ Name="Maraudon">
+ <File
+ RelativePath="..\scripts\zone\maraudon\boss_celebras_the_cursed.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\maraudon\boss_landslide.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\maraudon\boss_noxxion.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\maraudon\boss_princess_theradras.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Molten Core">
+ <File
+ RelativePath="..\scripts\zone\molten_core\boss_baron_geddon.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\molten_core\boss_garr.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\molten_core\boss_gehennas.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\molten_core\boss_golemagg.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\molten_core\boss_lucifron.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\molten_core\boss_magmadar.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\molten_core\boss_majordomo_executus.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\molten_core\boss_ragnaros.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\molten_core\boss_shazzrah.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\molten_core\boss_sulfuron_harbinger.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\molten_core\def_molten_core.h">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\molten_core\instance_molten_core.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\molten_core\molten_core.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Mulgore">
+ <File
+ RelativePath="..\scripts\zone\mulgore\mulgore.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Naxxramas">
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_anubrekhan.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_faerlina.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_feugen.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_gluth.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_gothik.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_grobbulus.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_heigan.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_highlord_mograine.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_kelthuzad.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_lady_blaumeux.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_loatheb.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_maexxna.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_noth.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_patchwerk.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_razuvious.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_sapphiron.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_sir_zeliek.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_stalagg.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_thaddius.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_thane_korthazz.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\instance_naxxramas.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Onyxia&apos;s Lair">
+ <File
+ RelativePath="..\scripts\zone\onyxias_lair\boss_onyxia.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Ragefire Chasm">
+ </Filter>
+ <Filter
+ Name="Razorfen Downs">
+ <File
+ RelativePath="..\scripts\zone\razorfen_downs\boss_amnennar_the_coldbringer.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Shadowfang Keep">
+ <File
+ RelativePath="..\scripts\zone\shadowfang_keep\def_shadowfang_keep.h">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\shadowfang_keep\instance_shadowfang_keep.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\shadowfang_keep\shadowfang_keep.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Stonetalon Mountains">
+ <File
+ RelativePath="..\scripts\zone\stonetalon_mountains\stonetalon_mountains.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Stranglethorn Vale">
+ <File
+ RelativePath="..\scripts\zone\stranglethorn_vale\stranglethorn_vale.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Stratholme">
+ <File
+ RelativePath="..\scripts\zone\stratholme\boss_baron_rivendare.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\stratholme\boss_baroness_anastari.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\stratholme\boss_cannon_master_willey.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\stratholme\boss_dathrohan_balnazzar.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\stratholme\boss_magistrate_barthilas.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\stratholme\boss_maleki_the_pallid.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\stratholme\boss_nerubenkan.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\stratholme\boss_order_of_silver_hand.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\stratholme\boss_postmaster_malown.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\stratholme\boss_ramstein_the_gorger.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\stratholme\boss_timmy_the_cruel.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\stratholme\def_stratholme.h">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\stratholme\instance_stratholme.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\stratholme\stratholme.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Sunken Temple">
+ </Filter>
+ <Filter
+ Name="Tanaris">
+ <File
+ RelativePath="..\scripts\zone\tanaris\tanaris.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Teldrassil">
+ </Filter>
+ <Filter
+ Name="Temple of Ahn&apos;Qiraj">
+ <File
+ RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_bug_trio.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_cthun.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_fankriss.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_huhuran.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_ouro.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_sartura.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_skeram.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_twinemperors.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_viscidus.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\temple_of_ahnqiraj\def_temple_of_ahnqiraj.h">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\temple_of_ahnqiraj\instance_temple_of_ahnqiraj.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\temple_of_ahnqiraj\mob_anubisath_sentinel.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Thousand Needles">
+ </Filter>
+ <Filter
+ Name="Silithus">
+ <File
+ RelativePath="..\scripts\zone\silithus\silithus.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Silverpine Forest">
+ <File
+ RelativePath="..\scripts\zone\silverpine_forest\silverpine_forest.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Stockade">
+ </Filter>
+ <Filter
+ Name="Tirisfal Glades">
+ <File
+ RelativePath="..\scripts\zone\tirisfal_glades\tirisfal_glades.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Wailing Caverns">
+ <File
+ RelativePath="..\scripts\zone\wailing_caverns\instance_wailing_caverns.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Western Plaguelands">
+ <File
+ RelativePath="..\scripts\zone\western_plaguelands\western_plaguelands.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Westfall">
+ </Filter>
+ <Filter
+ Name="Wetlands">
+ </Filter>
+ <Filter
+ Name="Winterspring">
+ <File
+ RelativePath="..\scripts\zone\winterspring\winterspring.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Zul&apos;Farrak">
+ <File
+ RelativePath="..\scripts\zone\zulfarrak\zulfarrak.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Zul&apos;Gurub">
+ <File
+ RelativePath="..\scripts\zone\zulgurub\boss_arlokk.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulgurub\boss_gahzranka.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulgurub\boss_grilek.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulgurub\boss_hakkar.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulgurub\boss_hazzarah.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulgurub\boss_jeklik.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulgurub\boss_jindo.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulgurub\boss_mandokir.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulgurub\boss_marli.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulgurub\boss_renataki.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulgurub\boss_thekal.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulgurub\boss_venoxis.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulgurub\boss_wushoolay.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulgurub\def_zulgurub.h">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulgurub\instance_zulgurub.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Uldaman">
+ <File
+ RelativePath="..\scripts\zone\uldaman\boss_ironaya.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\uldaman\uldaman.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Un&apos;Goro Crater">
+ </Filter>
+ <Filter
+ Name="Aunchindoun">
+ <Filter
+ Name="Auchenai Crypts">
+ <File
+ RelativePath="..\scripts\zone\aunchindoun\auchenai_crypts\boss_exarch_maladaar.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Mana Tombs">
+ <File
+ RelativePath="..\scripts\zone\aunchindoun\mana_tombs\boss_nexusprince_shaffar.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\aunchindoun\mana_tombs\boss_pandemonius.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Sethekk Halls">
+ <File
+ RelativePath="..\scripts\zone\aunchindoun\sethekk_halls\boss_darkweaver_syth.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\aunchindoun\sethekk_halls\boss_tailonking_ikiss.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\aunchindoun\sethekk_halls\def_sethekk_halls.h">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\aunchindoun\sethekk_halls\instance_sethekk_halls.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Shadow Labyrinth">
+ <File
+ RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\boss_ambassador_hellmaw.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\boss_blackheart_the_inciter.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\boss_grandmaster_vorpil.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\boss_murmur.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\def_shadow_labyrinth.h">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\instance_shadow_labyrinth.cpp">
+ </File>
+ </Filter>
+ </Filter>
+ <Filter
+ Name="Azuremyst Isle">
+ <File
+ RelativePath="..\scripts\zone\azuremyst_isle\azuremyst_isle.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Black Temple">
+ <File
+ RelativePath="..\scripts\zone\black_temple\black_temple.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\black_temple\boss_bloodboil.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\black_temple\boss_illidan.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\black_temple\boss_mother_shahraz.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\black_temple\boss_reliquary_of_souls.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\black_temple\boss_shade_of_akama.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\black_temple\boss_supremus.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\black_temple\boss_teron_gorefiend.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\black_temple\boss_warlord_najentus.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\black_temple\def_black_temple.h">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\black_temple\illidari_council.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\black_temple\instance_black_temple.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Eversong Woods">
+ <File
+ RelativePath="..\scripts\zone\eversong_woods\eversong_woods.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Ghostlands">
+ <File
+ RelativePath="..\scripts\zone\ghostlands\ghostlands.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Blade&apos;s Edge Mountains">
+ <File
+ RelativePath="..\scripts\zone\blades_edge_mountains\blades_edge_mountains.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Blasted Lands">
+ <File
+ RelativePath="..\scripts\zone\blasted_lands\blasted_lands.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blasted_lands\boss_kruul.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Hellfire Citadel">
+ <Filter
+ Name="Blood Furnace">
+ <File
+ RelativePath="..\scripts\zone\hellfire_citadel\blood_furnace\boss_broggok.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\hellfire_citadel\blood_furnace\boss_kelidan_the_breaker.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\hellfire_citadel\blood_furnace\boss_the_maker.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Magtheridon&apos;s lair">
+ <File
+ RelativePath="..\scripts\zone\hellfire_citadel\magtheridons_lair\boss_magtheridon.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\hellfire_citadel\magtheridons_lair\def_magtheridons_lair.h">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\hellfire_citadel\magtheridons_lair\instance_magtheridons_lair.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Hellfire Ramparts">
+ <File
+ RelativePath="..\scripts\zone\hellfire_citadel\hellfire_ramparts\boss_omor_the_unscarred.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\hellfire_citadel\hellfire_ramparts\boss_watchkeeper_gargolmar.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Shattered Halls">
+ <File
+ RelativePath="..\scripts\zone\hellfire_citadel\shattered_halls\boss_nethekurse.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\hellfire_citadel\shattered_halls\boss_warbringer_omrogg.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\hellfire_citadel\shattered_halls\def_shattered_halls.h">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\hellfire_citadel\shattered_halls\instance_shattered_halls.cpp">
+ </File>
+ </Filter>
+ </Filter>
+ <Filter
+ Name="Hellfire Peninsula">
+ <File
+ RelativePath="..\scripts\zone\hellfire_peninsula\boss_doomlord_kazzak.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\hellfire_peninsula\hellfire_peninsula.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Karazhan">
+ <File
+ RelativePath="..\scripts\zone\karazhan\boss_curator.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\karazhan\boss_maiden_of_virtue.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\karazhan\boss_midnight.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\karazhan\boss_moroes.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\karazhan\boss_netherspite.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\karazhan\boss_nightbane.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\karazhan\boss_prince_malchezaar.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\karazhan\boss_shade_of_aran.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\karazhan\boss_terestian_illhoof.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\karazhan\bosses_opera.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\karazhan\def_karazhan.h">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\karazhan\instance_karazhan.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\karazhan\karazhan.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Nagrand">
+ <File
+ RelativePath="..\scripts\zone\nagrand\nagrand.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Netherstorm">
+ <File
+ RelativePath="..\scripts\zone\netherstorm\netherstorm.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Shadowmoon Valley">
+ <File
+ RelativePath="..\scripts\zone\shadowmoon_valley\boss_doomwalker.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\shadowmoon_valley\shadowmoon_valley.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Tempest Keep">
+ <Filter
+ Name="Arcatraz">
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\arcatraz\arcatraz.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\arcatraz\boss_harbinger_skyriss.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\arcatraz\def_arcatraz.h">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\arcatraz\instance_arcatraz.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Botanica">
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\botanica\boss_high_botanist_freywinn.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\botanica\boss_laj.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\botanica\boss_warp_splinter.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="The Eye">
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\the_eye\boss_astromancer.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\the_eye\boss_kaelthas.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\the_eye\boss_void_reaver.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\the_eye\def_the_eye.h">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\the_eye\instance_the_eye.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\the_eye\the_eye.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="The Mechanar">
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\the_mechanar\boss_gatewatcher_gyrokill.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\the_mechanar\boss_gatewatcher_ironhand.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\the_mechanar\boss_nethermancer_sepethrea.cpp">
+ </File>
+ </Filter>
+ </Filter>
+ <Filter
+ Name="Terokkar Forest">
+ <File
+ RelativePath="..\scripts\zone\terokkar_forest\terokkar_forest.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Zangarmarsh">
+ <File
+ RelativePath="..\scripts\zone\zangarmarsh\zangarmarsh.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Blackrock Spire">
+ <File
+ RelativePath="..\scripts\zone\blackrock_spire\boss_drakkisath.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_spire\boss_gyth.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_spire\boss_halycon.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_spire\boss_highlord_omokk.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_spire\boss_mother_smolderweb.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_spire\boss_overlord_wyrmthalak.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_spire\boss_pyroguard_emberseer.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_spire\boss_quartermaster_zigris.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_spire\boss_rend_blackhand.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_spire\boss_shadow_hunter_voshgajin.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_spire\boss_the_beast.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_spire\boss_warmaster_voone.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Stormwind City">
+ <File
+ RelativePath="..\scripts\zone\stormwind\stormwind_city.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Coilfang Resevoir">
+ <Filter
+ Name="Serpent Shrine Cavern">
+ <File
+ RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\boss_fathomlord_karathress.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\boss_hydross_the_unstable.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\boss_lady_vashj.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\boss_leotheras_the_blind.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\boss_morogrim_tidewalker.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\def_serpent_shrine.h">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\instance_serpent_shrine.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Slave Pens">
+ </Filter>
+ <Filter
+ Name="Steam Vault">
+ <File
+ RelativePath="..\scripts\zone\coilfang_resevoir\steam_vault\boss_hydromancer_thespia.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\coilfang_resevoir\steam_vault\boss_mekgineer_steamrigger.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\coilfang_resevoir\steam_vault\boss_warlord_kalithresh.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\coilfang_resevoir\steam_vault\def_steam_vault.h">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\coilfang_resevoir\steam_vault\instance_steam_vault.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Underbog">
+ <File
+ RelativePath="..\scripts\zone\coilfang_resevoir\underbog\boss_hungarfen.cpp">
+ </File>
+ </Filter>
+ </Filter>
+ <Filter
+ Name="Caverns of Time">
+ <Filter
+ Name="The Dark Portal">
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\dark_portal\boss_aeonus.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\dark_portal\boss_chrono_lord_deja.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\dark_portal\boss_temporus.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Battle for Mt. Hyjal">
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\hyjal\boss_archimonde.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\hyjal\def_hyjal.h">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\hyjal\hyjal.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\hyjal\hyjalAI.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\hyjal\hyjalAI.h">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\hyjal\instance_hyjal.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Old Hillsbrad">
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\boss_captain_skarloc.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\boss_epoch_hunter.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\boss_leutenant_drake.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\def_old_hillsbrad.h">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\instance_old_hillsbrad.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\old_hillsbrad.cpp">
+ </File>
+ </Filter>
+ </Filter>
+ <Filter
+ Name="Silvermoon City">
+ <File
+ RelativePath="..\scripts\zone\silvermoon\silvermoon_city.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Darnassus">
+ </Filter>
+ <Filter
+ Name="Exodar">
+ </Filter>
+ <Filter
+ Name="Iron Forge">
+ <File
+ RelativePath="..\scripts\zone\ironforge\ironforge.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Orgrimmar">
+ <File
+ RelativePath="..\scripts\zone\orgrimmar\orgrimmar.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Shattrath City">
+ <File
+ RelativePath="..\scripts\zone\shattrath\shattrath_city.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Thunder Bluff">
+ <File
+ RelativePath="..\scripts\zone\thunder_bluff\thunder_bluff.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Undercity">
+ <File
+ RelativePath="..\scripts\zone\undercity\undercity.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Zul&apos;Aman">
+ <File
+ RelativePath="..\scripts\zone\zulaman\boss_janalai.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulaman\boss_nalorakk.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulaman\def_zulaman.h">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulaman\instance_zulaman.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulaman\zulaman.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Isle of Quel&apos;Danas">
+ <File
+ RelativePath="..\scripts\zone\isle_of_queldanas\isle_of_queldanas.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Magister&apos;s Terrace">
+ <File
+ RelativePath="..\scripts\zone\magisters_terrace\boss_felblood_kaelthas.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\magisters_terrace\boss_priestess_delrissa.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\magisters_terrace\boss_selin_fireheart.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\magisters_terrace\boss_vexallus.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\magisters_terrace\def_magisters_terrace.h">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\magisters_terrace\instance_magisters_terrace.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Sunwell Plateau">
+ <File
+ RelativePath="..\scripts\zone\sunwell_plateau\boss_brutallus.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\sunwell_plateau\boss_kalecgos.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\sunwell_plateau\def_sunwell_plateau.h">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\sunwell_plateau\instance_sunwell_plateau.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Blackrock Depths">
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\blackrock_depths.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_ambassador_flamelash.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_angerrel.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_anubshiah.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_doomrel.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_doperel.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_emperor_dagran_thaurissan.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_general_angerforge.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_gloomrel.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_gorosh_the_dervish.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_grizzle.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_haterel.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_high_interrogator_gerstahn.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_magmus.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_moira_bronzebeard.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_seethrel.cpp">
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_vilerel.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Loch Modan">
+ <File
+ RelativePath="..\scripts\zone\loch_modan\loch_modan.cpp">
+ </File>
+ </Filter>
+ </Filter>
+ </Filter>
+ <Filter
+ Name="Include">
+ <File
+ RelativePath="..\include\precompiled.cpp">
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\include\precompiled.h">
+ </File>
+ <File
+ RelativePath="..\include\sc_creature.cpp">
+ </File>
+ <File
+ RelativePath="..\include\sc_creature.h">
+ </File>
+ <File
+ RelativePath="..\include\sc_gossip.h">
+ </File>
+ <File
+ RelativePath="..\include\sc_instance.h">
+ </File>
+ <File
+ RelativePath="..\include\sc_item.h">
+ </File>
+ </Filter>
+ <File
+ RelativePath="..\config.h">
+ </File>
+ <File
+ RelativePath="..\ScriptMgr.cpp">
+ </File>
+ <File
+ RelativePath="..\ScriptMgr.h">
+ </File>
+ <File
+ RelativePath="..\svn_revision.h">
+ </File>
+ <File
+ RelativePath="..\system.cpp">
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/bindings/scripts/VC80/80ScriptDev2.vcproj b/src/bindings/scripts/VC80/80ScriptDev2.vcproj
index d23e8dcbc7d..79470fefa28 100644
--- a/src/bindings/scripts/VC80/80ScriptDev2.vcproj
+++ b/src/bindings/scripts/VC80/80ScriptDev2.vcproj
@@ -1,2343 +1,2343 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="8,00"
- Name="TrinityScript"
- ProjectGUID="{4295C8A9-79B7-4354-8064-F05FB9CA0C96}"
- RootNamespace="ScriptDev2"
- Keyword="Win32Proj"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- <Platform
- Name="x64"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="..\..\..\..\bin\$(PlatformName)_$(ConfigurationName)"
- IntermediateDirectory=".\ScriptDev2__$(PlatformName)_$(ConfigurationName)"
- ConfigurationType="2"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
- CharacterSet="2"
- >
- <Tool
- Name="VCPreBuildEventTool"
- CommandLine=""
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="..\..\..\..\dep\include\;..\..\..\shared\;..\..\..\framework\;..\..\..\game\;..\include\;..\..\..\..\dep\ACE_wrappers"
- PreprocessorDefinitions="WIN32;_DEBUG;MANGOS_DEBUG;_WINDOWS;_USRDLL;SCRIPT"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="1"
- UsePrecompiledHeader="2"
- PrecompiledHeaderThrough="precompiled.h"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="4"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="TrinityCore.lib zthread.lib"
- OutputFile="$(OutDir)/TrinityScript.dll"
- LinkIncremental="2"
- AdditionalLibraryDirectories="..\..\..\..\win\VC80\zthread__$(PlatformName)_$(ConfigurationName);..\..\..\..\win\VC80\trinitycore__$(PlatformName)_$(ConfigurationName)"
- GenerateDebugInformation="true"
- ProgramDatabaseFile="$(OutDir)/MaNGOSScript.pdb"
- SubSystem="2"
- ImportLibrary="$(OutDir)/TrinityScript.lib"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCWebDeploymentTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine="copy ..\trinityscript.conf.dist ..\..\..\..\bin\$(PlatformName)_$(ConfigurationName)\TrinityScript.conf.dist"
- />
- </Configuration>
- <Configuration
- Name="Debug|x64"
- OutputDirectory="..\..\..\..\bin\$(PlatformName)_$(ConfigurationName)"
- IntermediateDirectory=".\ScriptDev2__$(PlatformName)_$(ConfigurationName)"
- ConfigurationType="2"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
- CharacterSet="2"
- >
- <Tool
- Name="VCPreBuildEventTool"
- CommandLine=""
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- TargetEnvironment="3"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="..\..\..\..\dep\include\;..\..\..\shared\;..\..\..\framework\;..\..\..\game\;..\include\;..\..\..\..\dep\ACE_wrappers"
- PreprocessorDefinitions="WIN32;_DEBUG;MANGOS_DEBUG;_WINDOWS;_USRDLL;SCRIPT"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="1"
- UsePrecompiledHeader="2"
- PrecompiledHeaderThrough="precompiled.h"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="TrinityCore.lib zthread.lib"
- OutputFile="$(OutDir)/TrinityScript.dll"
- LinkIncremental="2"
- AdditionalLibraryDirectories="..\..\..\..\win\VC80\zthread__$(PlatformName)_$(ConfigurationName);..\..\..\..\win\VC80\trinitycore__$(PlatformName)_$(ConfigurationName)"
- GenerateDebugInformation="true"
- ProgramDatabaseFile="$(OutDir)/MaNGOSScript.pdb"
- SubSystem="2"
- ImportLibrary="$(OutDir)/TrinityScript.lib"
- TargetMachine="17"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCWebDeploymentTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine="copy ..\trinityscript.conf.dist ..\..\..\..\bin\$(PlatformName)_$(ConfigurationName)\TrinityScript.conf.dist"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="..\..\..\..\bin\$(PlatformName)_$(ConfigurationName)"
- IntermediateDirectory=".\ScriptDev2__$(PlatformName)_$(ConfigurationName)"
- ConfigurationType="2"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
- CharacterSet="2"
- >
- <Tool
- Name="VCPreBuildEventTool"
- CommandLine=""
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
- AdditionalIncludeDirectories="..\..\..\..\dep\include\;..\..\..\shared\;..\..\..\framework\;..\..\..\game\;..\include\;..\..\..\..\dep\ACE_wrappers"
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;SCRIPT"
- RuntimeLibrary="0"
- EnableEnhancedInstructionSet="1"
- FloatingPointModel="2"
- UsePrecompiledHeader="2"
- PrecompiledHeaderThrough="precompiled.h"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="TrinityCore.lib zthread.lib"
- OutputFile="$(OutDir)/TrinityScript.dll"
- LinkIncremental="1"
- AdditionalLibraryDirectories="..\..\..\..\win\VC80\zthread__$(PlatformName)_$(ConfigurationName);..\..\..\..\win\VC80\trinitycore__$(PlatformName)_$(ConfigurationName)"
- GenerateDebugInformation="false"
- SubSystem="2"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- ImportLibrary="$(OutDir)/TrinityScript.lib"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCWebDeploymentTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine="copy ..\trinityscript.conf.dist ..\..\..\..\bin\$(PlatformName)_$(ConfigurationName)\TrinityScript.conf.dist"
- />
- </Configuration>
- <Configuration
- Name="Release|x64"
- OutputDirectory="..\..\..\..\bin\$(PlatformName)_$(ConfigurationName)"
- IntermediateDirectory=".\ScriptDev2__$(PlatformName)_$(ConfigurationName)"
- ConfigurationType="2"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
- CharacterSet="2"
- >
- <Tool
- Name="VCPreBuildEventTool"
- CommandLine=""
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- TargetEnvironment="3"
- />
- <Tool
- Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
- AdditionalIncludeDirectories="..\..\..\..\dep\include\;..\..\..\shared\;..\..\..\framework\;..\..\..\game\;..\include\;..\..\..\..\dep\ACE_wrappers"
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;SCRIPT"
- RuntimeLibrary="0"
- FloatingPointModel="2"
- UsePrecompiledHeader="2"
- PrecompiledHeaderThrough="precompiled.h"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="TrinityCore.lib zthread.lib"
- OutputFile="$(OutDir)/TrinityScript.dll"
- LinkIncremental="1"
- AdditionalLibraryDirectories="..\..\..\..\win\VC80\zthread__$(PlatformName)_$(ConfigurationName);..\..\..\..\win\VC80\trinitycore__$(PlatformName)_$(ConfigurationName)"
- GenerateDebugInformation="false"
- SubSystem="2"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- ImportLibrary="$(OutDir)/TrinityScript.lib"
- TargetMachine="17"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCWebDeploymentTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine="copy ..\trinityscript.conf.dist ..\..\..\..\bin\$(PlatformName)_$(ConfigurationName)\TrinityScript.conf.dist"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Scripts"
- >
- <Filter
- Name="boss"
- >
- <File
- RelativePath="..\scripts\boss\boss_emeriss.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\boss\boss_lethon.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\boss\boss_taerar.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\boss\boss_ysondre.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="creature"
- >
- <File
- RelativePath="..\scripts\creature\mob_event_ai.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\creature\mob_event_ai.h"
- >
- </File>
- <File
- RelativePath="..\scripts\creature\mob_generic_creature.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\creature\simple_ai.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\creature\simple_ai.h"
- >
- </File>
- </Filter>
- <Filter
- Name="guard"
- >
- <File
- RelativePath="..\scripts\guard\guard_ai.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\guard\guard_ai.h"
- >
- </File>
- <File
- RelativePath="..\scripts\guard\guards.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="honor"
- >
- </Filter>
- <Filter
- Name="npc"
- >
- <File
- RelativePath="..\scripts\npc\npc_escortAI.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\npc\npc_escortAI.h"
- >
- </File>
- <File
- RelativePath="..\scripts\npc\npc_innkeeper.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\npc\npc_professions.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\npc\npcs_special.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="servers"
- >
- </Filter>
- <Filter
- Name="custom"
- >
- <File
- RelativePath="..\scripts\custom\custom_example.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\custom\custom_gossip_codebox.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\custom\test.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="areatrigger"
- >
- <File
- RelativePath="..\scripts\areatrigger\areatrigger_scripts.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="go"
- >
- <File
- RelativePath="..\scripts\go\go_scripts.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="item"
- >
- <File
- RelativePath="..\scripts\item\item_scripts.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\item\item_test.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="zone"
- >
- <Filter
- Name="Alterac Mountains"
- >
- <File
- RelativePath="..\scripts\zone\alterac_mountains\alterac_mountains.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Ashenvale Forest"
- >
- </Filter>
- <Filter
- Name="Azshara"
- >
- <File
- RelativePath="..\scripts\zone\azshara\azshara.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\azshara\boss_azuregos.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Badlands"
- >
- </Filter>
- <Filter
- Name="Barrens"
- >
- <File
- RelativePath="..\scripts\zone\barrens\the_barrens.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Blackfathom Depths"
- >
- </Filter>
- <Filter
- Name="Arathi Highlands"
- >
- </Filter>
- <Filter
- Name="Deadmines"
- >
- <File
- RelativePath="..\scripts\zone\deadmines\deadmines.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Deadwind Pass"
- >
- </Filter>
- <Filter
- Name="Desolace"
- >
- </Filter>
- <Filter
- Name="Dire Maul"
- >
- </Filter>
- <Filter
- Name="Dun Morogh"
- >
- <File
- RelativePath="..\scripts\zone\dun_morogh\dun_morogh.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Durotar"
- >
- </Filter>
- <Filter
- Name="Duskwood"
- >
- </Filter>
- <Filter
- Name="Dustwallow Marsh"
- >
- <File
- RelativePath="..\scripts\zone\dustwallow_marsh\dustwallow_marsh.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Blackwing Lair"
- >
- <File
- RelativePath="..\scripts\zone\blackwing_lair\boss_broodlord_lashlayer.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackwing_lair\boss_chromaggus.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackwing_lair\boss_ebonroc.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackwing_lair\boss_firemaw.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackwing_lair\boss_flamegor.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackwing_lair\boss_nefarian.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackwing_lair\boss_razorgore.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackwing_lair\boss_vaelastrasz.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackwing_lair\boss_victor_nefarius.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackwing_lair\instance_blackwing_lair.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Bloodmyst Isle"
- >
- <File
- RelativePath="..\scripts\zone\bloodmyst_isle\bloodmyst_isle.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Gruul&apos;s Lair"
- >
- <File
- RelativePath="..\scripts\zone\gruuls_lair\boss_gruul.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\gruuls_lair\boss_high_king_maulgar.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\gruuls_lair\def_gruuls_lair.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\gruuls_lair\instance_gruuls_lair.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Burning Steppes"
- >
- <File
- RelativePath="..\scripts\zone\burning_steppes\burning_steppes.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Darkshore"
- >
- <File
- RelativePath="..\scripts\zone\darkshore\darkshore.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Eastern Plaguelands"
- >
- <File
- RelativePath="..\scripts\zone\eastern_plaguelands\eastern_plaguelands.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Moonglade"
- >
- <File
- RelativePath="..\scripts\zone\moonglade\moonglade.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Razorfen Kraul"
- >
- </Filter>
- <Filter
- Name="Redridge Mountains"
- >
- </Filter>
- <Filter
- Name="Ruins of Ahn&apos;Qiraj"
- >
- <File
- RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_ayamiss.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_buru.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_kurinnaxx.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_moam.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_ossirian.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_rajaxx.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\ruins_of_ahnqiraj\instance_ruins_of_ahnqiraj.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Swamp of Sorrows"
- >
- </Filter>
- <Filter
- Name="Scarlet Monastery"
- >
- <File
- RelativePath="..\scripts\zone\scarlet_monastery\boss_arcanist_doan.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scarlet_monastery\boss_azshir_the_sleepless.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scarlet_monastery\boss_bloodmage_thalnos.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scarlet_monastery\boss_herod.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scarlet_monastery\boss_high_inquisitor_fairbanks.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scarlet_monastery\boss_high_inquisitor_whitemane.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scarlet_monastery\boss_houndmaster_loksey.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scarlet_monastery\boss_interrogator_vishas.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scarlet_monastery\boss_scarlet_commander_mograine.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scarlet_monastery\boss_scorn.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Scholomance"
- >
- <File
- RelativePath="..\scripts\zone\scholomance\boss_darkmaster_gandling.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scholomance\boss_death_knight_darkreaver.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scholomance\boss_doctor_theolen_krastinov.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scholomance\boss_illucia_barov.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scholomance\boss_instructor_malicia.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scholomance\boss_jandice_barov.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scholomance\boss_kormok.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scholomance\boss_lord_alexei_barov.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scholomance\boss_lorekeeper_polkelt.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scholomance\boss_ras_frostwhisper.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scholomance\boss_the_ravenian.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scholomance\boss_vectus.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scholomance\def_scholomance.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scholomance\instance_scholomance.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Searing Gorge"
- >
- <File
- RelativePath="..\scripts\zone\searing_gorge\searing_gorge.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Elwynn Forest"
- >
- <File
- RelativePath="..\scripts\zone\elwynn_forest\elwynn_forest.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Felwood"
- >
- <File
- RelativePath="..\scripts\zone\felwood\felwood.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Feralas"
- >
- <File
- RelativePath="..\scripts\zone\feralas\feralas.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Gnomeregan"
- >
- </Filter>
- <Filter
- Name="Hillsbrad Foothills"
- >
- </Filter>
- <Filter
- Name="Hinterlands"
- >
- </Filter>
- <Filter
- Name="Maraudon"
- >
- <File
- RelativePath="..\scripts\zone\maraudon\boss_celebras_the_cursed.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\maraudon\boss_landslide.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\maraudon\boss_noxxion.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\maraudon\boss_princess_theradras.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Molten Core"
- >
- <File
- RelativePath="..\scripts\zone\molten_core\boss_baron_geddon.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\molten_core\boss_garr.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\molten_core\boss_gehennas.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\molten_core\boss_golemagg.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\molten_core\boss_lucifron.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\molten_core\boss_magmadar.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\molten_core\boss_majordomo_executus.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\molten_core\boss_ragnaros.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\molten_core\boss_shazzrah.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\molten_core\boss_sulfuron_harbinger.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\molten_core\def_molten_core.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\molten_core\instance_molten_core.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\molten_core\molten_core.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Mulgore"
- >
- <File
- RelativePath="..\scripts\zone\mulgore\mulgore.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Naxxramas"
- >
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_anubrekhan.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_faerlina.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_feugen.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_gluth.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_gothik.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_grobbulus.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_heigan.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_highlord_mograine.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_kelthuzad.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_lady_blaumeux.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_loatheb.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_maexxna.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_noth.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_patchwerk.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_razuvious.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_sapphiron.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_sir_zeliek.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_stalagg.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_thaddius.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_thane_korthazz.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\instance_naxxramas.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Onyxia&apos;s Lair"
- >
- <File
- RelativePath="..\scripts\zone\onyxias_lair\boss_onyxia.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Ragefire Chasm"
- >
- </Filter>
- <Filter
- Name="Razorfen Downs"
- >
- <File
- RelativePath="..\scripts\zone\razorfen_downs\boss_amnennar_the_coldbringer.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Shadowfang Keep"
- >
- <File
- RelativePath="..\scripts\zone\shadowfang_keep\def_shadowfang_keep.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\shadowfang_keep\instance_shadowfang_keep.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\shadowfang_keep\shadowfang_keep.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Stonetalon Mountains"
- >
- <File
- RelativePath="..\scripts\zone\stonetalon_mountains\stonetalon_mountains.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Stranglethorn Vale"
- >
- <File
- RelativePath="..\scripts\zone\stranglethorn_vale\stranglethorn_vale.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Stratholme"
- >
- <File
- RelativePath="..\scripts\zone\stratholme\boss_baron_rivendare.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\stratholme\boss_baroness_anastari.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\stratholme\boss_cannon_master_willey.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\stratholme\boss_dathrohan_balnazzar.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\stratholme\boss_magistrate_barthilas.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\stratholme\boss_maleki_the_pallid.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\stratholme\boss_nerubenkan.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\stratholme\boss_order_of_silver_hand.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\stratholme\boss_postmaster_malown.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\stratholme\boss_ramstein_the_gorger.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\stratholme\boss_timmy_the_cruel.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\stratholme\def_stratholme.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\stratholme\instance_stratholme.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\stratholme\stratholme.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Sunken Temple"
- >
- </Filter>
- <Filter
- Name="Tanaris"
- >
- <File
- RelativePath="..\scripts\zone\tanaris\tanaris.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Teldrassil"
- >
- </Filter>
- <Filter
- Name="Temple of Ahn&apos;Qiraj"
- >
- <File
- RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_bug_trio.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_cthun.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_fankriss.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_huhuran.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_ouro.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_sartura.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_skeram.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_twinemperors.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_viscidus.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\temple_of_ahnqiraj\def_temple_of_ahnqiraj.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\temple_of_ahnqiraj\instance_temple_of_ahnqiraj.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\temple_of_ahnqiraj\mob_anubisath_sentinel.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Thousand Needles"
- >
- </Filter>
- <Filter
- Name="Silithus"
- >
- <File
- RelativePath="..\scripts\zone\silithus\silithus.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Silverpine Forest"
- >
- <File
- RelativePath="..\scripts\zone\silverpine_forest\silverpine_forest.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Stockade"
- >
- </Filter>
- <Filter
- Name="Tirisfal Glades"
- >
- <File
- RelativePath="..\scripts\zone\tirisfal_glades\tirisfal_glades.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Wailing Caverns"
- >
- <File
- RelativePath="..\scripts\zone\wailing_caverns\instance_wailing_caverns.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Western Plaguelands"
- >
- <File
- RelativePath="..\scripts\zone\western_plaguelands\western_plaguelands.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Westfall"
- >
- </Filter>
- <Filter
- Name="Wetlands"
- >
- </Filter>
- <Filter
- Name="Winterspring"
- >
- <File
- RelativePath="..\scripts\zone\winterspring\winterspring.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Zul&apos;Farrak"
- >
- <File
- RelativePath="..\scripts\zone\zulfarrak\zulfarrak.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Zul&apos;Gurub"
- >
- <File
- RelativePath="..\scripts\zone\zulgurub\boss_arlokk.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\zulgurub\boss_gahzranka.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\zulgurub\boss_grilek.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\zulgurub\boss_hakkar.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\zulgurub\boss_hazzarah.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\zulgurub\boss_jeklik.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\zulgurub\boss_jindo.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\zulgurub\boss_mandokir.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\zulgurub\boss_marli.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\zulgurub\boss_renataki.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\zulgurub\boss_thekal.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\zulgurub\boss_venoxis.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\zulgurub\boss_wushoolay.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\zulgurub\def_zulgurub.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\zulgurub\instance_zulgurub.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Uldaman"
- >
- <File
- RelativePath="..\scripts\zone\uldaman\boss_ironaya.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\uldaman\uldaman.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Un&apos;Goro Crater"
- >
- </Filter>
- <Filter
- Name="Aunchindoun"
- >
- <Filter
- Name="Auchenai Crypts"
- >
- <File
- RelativePath="..\scripts\zone\aunchindoun\auchenai_crypts\boss_exarch_maladaar.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Mana Tombs"
- >
- <File
- RelativePath="..\scripts\zone\aunchindoun\mana_tombs\boss_nexusprince_shaffar.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\aunchindoun\mana_tombs\boss_pandemonius.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Sethekk Halls"
- >
- <File
- RelativePath="..\scripts\zone\aunchindoun\sethekk_halls\boss_darkweaver_syth.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\aunchindoun\sethekk_halls\boss_tailonking_ikiss.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\aunchindoun\sethekk_halls\def_sethekk_halls.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\aunchindoun\sethekk_halls\instance_sethekk_halls.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Shadow Labyrinth"
- >
- <File
- RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\boss_ambassador_hellmaw.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\boss_blackheart_the_inciter.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\boss_grandmaster_vorpil.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\boss_murmur.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\def_shadow_labyrinth.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\instance_shadow_labyrinth.cpp"
- >
- </File>
- </Filter>
- </Filter>
- <Filter
- Name="Azuremyst Isle"
- >
- <File
- RelativePath="..\scripts\zone\azuremyst_isle\azuremyst_isle.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Black Temple"
- >
- <File
- RelativePath="..\scripts\zone\black_temple\black_temple.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\black_temple\boss_bloodboil.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\black_temple\boss_illidan.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\black_temple\boss_mother_shahraz.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\black_temple\boss_reliquary_of_souls.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\black_temple\boss_shade_of_akama.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\black_temple\boss_supremus.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\black_temple\boss_teron_gorefiend.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\black_temple\boss_warlord_najentus.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\black_temple\def_black_temple.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\black_temple\illidari_council.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\black_temple\instance_black_temple.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Eversong Woods"
- >
- <File
- RelativePath="..\scripts\zone\eversong_woods\eversong_woods.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Ghostlands"
- >
- <File
- RelativePath="..\scripts\zone\ghostlands\ghostlands.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Blade&apos;s Edge Mountains"
- >
- <File
- RelativePath="..\scripts\zone\blades_edge_mountains\blades_edge_mountains.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Blasted Lands"
- >
- <File
- RelativePath="..\scripts\zone\blasted_lands\blasted_lands.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blasted_lands\boss_kruul.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Hellfire Citadel"
- >
- <Filter
- Name="Blood Furnace"
- >
- <File
- RelativePath="..\scripts\zone\hellfire_citadel\blood_furnace\boss_broggok.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\hellfire_citadel\blood_furnace\boss_kelidan_the_breaker.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\hellfire_citadel\blood_furnace\boss_the_maker.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Magtheridon&apos;s lair"
- >
- <File
- RelativePath="..\scripts\zone\hellfire_citadel\magtheridons_lair\boss_magtheridon.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\hellfire_citadel\magtheridons_lair\def_magtheridons_lair.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\hellfire_citadel\magtheridons_lair\instance_magtheridons_lair.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Hellfire Ramparts"
- >
- <File
- RelativePath="..\scripts\zone\hellfire_citadel\hellfire_ramparts\boss_omor_the_unscarred.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\hellfire_citadel\hellfire_ramparts\boss_watchkeeper_gargolmar.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Shattered Halls"
- >
- <File
- RelativePath="..\scripts\zone\hellfire_citadel\shattered_halls\boss_nethekurse.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\hellfire_citadel\shattered_halls\boss_warbringer_omrogg.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\hellfire_citadel\shattered_halls\def_shattered_halls.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\hellfire_citadel\shattered_halls\instance_shattered_halls.cpp"
- >
- </File>
- </Filter>
- </Filter>
- <Filter
- Name="Hellfire Peninsula"
- >
- <File
- RelativePath="..\scripts\zone\hellfire_peninsula\boss_doomlord_kazzak.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\hellfire_peninsula\hellfire_peninsula.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Karazhan"
- >
- <File
- RelativePath="..\scripts\zone\karazhan\boss_curator.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\karazhan\boss_maiden_of_virtue.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\karazhan\boss_midnight.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\karazhan\boss_moroes.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\karazhan\boss_netherspite.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\karazhan\boss_nightbane.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\karazhan\boss_prince_malchezaar.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\karazhan\boss_shade_of_aran.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\karazhan\boss_terestian_illhoof.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\karazhan\bosses_opera.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\karazhan\def_karazhan.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\karazhan\instance_karazhan.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\karazhan\karazhan.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Nagrand"
- >
- <File
- RelativePath="..\scripts\zone\nagrand\nagrand.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Netherstorm"
- >
- <File
- RelativePath="..\scripts\zone\netherstorm\netherstorm.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Shadowmoon Valley"
- >
- <File
- RelativePath="..\scripts\zone\shadowmoon_valley\boss_doomwalker.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\shadowmoon_valley\shadowmoon_valley.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Tempest Keep"
- >
- <Filter
- Name="Arcatraz"
- >
- <File
- RelativePath="..\scripts\zone\tempest_keep\arcatraz\arcatraz.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\tempest_keep\arcatraz\boss_harbinger_skyriss.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\tempest_keep\arcatraz\def_arcatraz.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\tempest_keep\arcatraz\instance_arcatraz.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Botanica"
- >
- <File
- RelativePath="..\scripts\zone\tempest_keep\botanica\boss_high_botanist_freywinn.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\tempest_keep\botanica\boss_laj.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\tempest_keep\botanica\boss_warp_splinter.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="The Eye"
- >
- <File
- RelativePath="..\scripts\zone\tempest_keep\the_eye\boss_astromancer.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\tempest_keep\the_eye\boss_kaelthas.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\tempest_keep\the_eye\boss_void_reaver.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\tempest_keep\the_eye\def_the_eye.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\tempest_keep\the_eye\instance_the_eye.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\tempest_keep\the_eye\the_eye.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="The Mechanar"
- >
- <File
- RelativePath="..\scripts\zone\tempest_keep\the_mechanar\boss_gatewatcher_gyrokill.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\tempest_keep\the_mechanar\boss_gatewatcher_ironhand.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\tempest_keep\the_mechanar\boss_nethermancer_sepethrea.cpp"
- >
- </File>
- </Filter>
- </Filter>
- <Filter
- Name="Terokkar Forest"
- >
- <File
- RelativePath="..\scripts\zone\terokkar_forest\terokkar_forest.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Zangarmarsh"
- >
- <File
- RelativePath="..\scripts\zone\zangarmarsh\zangarmarsh.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Blackrock Spire"
- >
- <File
- RelativePath="..\scripts\zone\blackrock_spire\boss_drakkisath.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_spire\boss_gyth.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_spire\boss_halycon.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_spire\boss_highlord_omokk.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_spire\boss_mother_smolderweb.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_spire\boss_overlord_wyrmthalak.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_spire\boss_pyroguard_emberseer.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_spire\boss_quartermaster_zigris.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_spire\boss_rend_blackhand.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_spire\boss_shadow_hunter_voshgajin.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_spire\boss_the_beast.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_spire\boss_warmaster_voone.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Stormwind City"
- >
- <File
- RelativePath="..\scripts\zone\stormwind\stormwind_city.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Coilfang Resevoir"
- >
- <Filter
- Name="Serpent Shrine Cavern"
- >
- <File
- RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\boss_fathomlord_karathress.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\boss_hydross_the_unstable.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\boss_lady_vashj.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\boss_leotheras_the_blind.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\boss_morogrim_tidewalker.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\def_serpent_shrine.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\instance_serpent_shrine.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Slave Pens"
- >
- </Filter>
- <Filter
- Name="Steam Vault"
- >
- <File
- RelativePath="..\scripts\zone\coilfang_resevoir\steam_vault\boss_hydromancer_thespia.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\coilfang_resevoir\steam_vault\boss_mekgineer_steamrigger.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\coilfang_resevoir\steam_vault\boss_warlord_kalithresh.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\coilfang_resevoir\steam_vault\def_steam_vault.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\coilfang_resevoir\steam_vault\instance_steam_vault.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Underbog"
- >
- <File
- RelativePath="..\scripts\zone\coilfang_resevoir\underbog\boss_hungarfen.cpp"
- >
- </File>
- </Filter>
- </Filter>
- <Filter
- Name="Caverns of Time"
- >
- <Filter
- Name="The Dark Portal"
- >
- <File
- RelativePath="..\scripts\zone\caverns_of_time\dark_portal\boss_aeonus.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\caverns_of_time\dark_portal\boss_chrono_lord_deja.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\caverns_of_time\dark_portal\boss_temporus.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Battle for Mt. Hyjal"
- >
- <File
- RelativePath="..\scripts\zone\caverns_of_time\hyjal\boss_archimonde.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\caverns_of_time\hyjal\def_hyjal.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\caverns_of_time\hyjal\hyjal.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\caverns_of_time\hyjal\hyjalAI.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\caverns_of_time\hyjal\hyjalAI.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\caverns_of_time\hyjal\instance_hyjal.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Old Hillsbrad"
- >
- <File
- RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\boss_captain_skarloc.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\boss_epoch_hunter.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\boss_leutenant_drake.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\def_old_hillsbrad.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\instance_old_hillsbrad.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\old_hillsbrad.cpp"
- >
- </File>
- </Filter>
- </Filter>
- <Filter
- Name="Silvermoon City"
- >
- <File
- RelativePath="..\scripts\zone\silvermoon\silvermoon_city.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Darnassus"
- >
- </Filter>
- <Filter
- Name="Exodar"
- >
- </Filter>
- <Filter
- Name="Iron Forge"
- >
- <File
- RelativePath="..\scripts\zone\ironforge\ironforge.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Orgrimmar"
- >
- <File
- RelativePath="..\scripts\zone\orgrimmar\orgrimmar.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Shattrath City"
- >
- <File
- RelativePath="..\scripts\zone\shattrath\shattrath_city.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Thunder Bluff"
- >
- <File
- RelativePath="..\scripts\zone\thunder_bluff\thunder_bluff.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Undercity"
- >
- <File
- RelativePath="..\scripts\zone\undercity\undercity.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Zul&apos;Aman"
- >
- <File
- RelativePath="..\scripts\zone\zulaman\boss_janalai.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\zulaman\boss_nalorakk.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\zulaman\def_zulaman.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\zulaman\instance_zulaman.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\zulaman\zulaman.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Isle of Quel&apos;Danas"
- >
- <File
- RelativePath="..\scripts\zone\isle_of_queldanas\isle_of_queldanas.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Magister&apos;s Terrace"
- >
- <File
- RelativePath="..\scripts\zone\magisters_terrace\boss_felblood_kaelthas.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\magisters_terrace\boss_priestess_delrissa.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\magisters_terrace\boss_selin_fireheart.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\magisters_terrace\boss_vexallus.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\magisters_terrace\def_magisters_terrace.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\magisters_terrace\instance_magisters_terrace.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Sunwell Plateau"
- >
- <File
- RelativePath="..\scripts\zone\sunwell_plateau\boss_brutallus.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\sunwell_plateau\boss_kalecgos.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\sunwell_plateau\def_sunwell_plateau.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\sunwell_plateau\instance_sunwell_plateau.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Blackrock Depths"
- >
- <File
- RelativePath="..\scripts\zone\blackrock_depths\blackrock_depths.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_ambassador_flamelash.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_angerrel.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_anubshiah.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_doomrel.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_doperel.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_emperor_dagran_thaurissan.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_general_angerforge.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_gloomrel.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_gorosh_the_dervish.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_grizzle.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_haterel.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_high_interrogator_gerstahn.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_magmus.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_moira_bronzebeard.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_seethrel.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_vilerel.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Loch Modan"
- >
- <File
- RelativePath="..\scripts\zone\loch_modan\loch_modan.cpp"
- >
- </File>
- </Filter>
- </Filter>
- </Filter>
- <Filter
- Name="Include"
- >
- <File
- RelativePath="..\include\precompiled.cpp"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- UsePrecompiledHeader="1"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|x64"
- >
- <Tool
- Name="VCCLCompilerTool"
- UsePrecompiledHeader="1"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- UsePrecompiledHeader="1"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|x64"
- >
- <Tool
- Name="VCCLCompilerTool"
- UsePrecompiledHeader="1"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\include\precompiled.h"
- >
- </File>
- <File
- RelativePath="..\include\sc_creature.cpp"
- >
- </File>
- <File
- RelativePath="..\include\sc_creature.h"
- >
- </File>
- <File
- RelativePath="..\include\sc_gossip.h"
- >
- </File>
- <File
- RelativePath="..\include\sc_instance.h"
- >
- </File>
- <File
- RelativePath="..\include\sc_item.h"
- >
- </File>
- </Filter>
- <File
- RelativePath="..\config.h"
- >
- </File>
- <File
- RelativePath="..\ScriptMgr.cpp"
- >
- </File>
- <File
- RelativePath="..\ScriptMgr.h"
- >
- </File>
- <File
- RelativePath="..\svn_revision.h"
- >
- </File>
- <File
- RelativePath="..\system.cpp"
- >
- </File>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8,00"
+ Name="TrinityScript"
+ ProjectGUID="{4295C8A9-79B7-4354-8064-F05FB9CA0C96}"
+ RootNamespace="ScriptDev2"
+ Keyword="Win32Proj"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ <Platform
+ Name="x64"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="..\..\..\..\bin\$(PlatformName)_$(ConfigurationName)"
+ IntermediateDirectory=".\ScriptDev2__$(PlatformName)_$(ConfigurationName)"
+ ConfigurationType="2"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ CommandLine=""
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\..\..\..\dep\include\;..\..\..\shared\;..\..\..\framework\;..\..\..\game\;..\include\;..\..\..\..\dep\ACE_wrappers"
+ PreprocessorDefinitions="WIN32;_DEBUG;MANGOS_DEBUG;_WINDOWS;_USRDLL;SCRIPT"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderThrough="precompiled.h"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="TrinityCore.lib zthread.lib"
+ OutputFile="$(OutDir)/TrinityScript.dll"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="..\..\..\..\win\VC80\zthread__$(PlatformName)_$(ConfigurationName);..\..\..\..\win\VC80\trinitycore__$(PlatformName)_$(ConfigurationName)"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)/MaNGOSScript.pdb"
+ SubSystem="2"
+ ImportLibrary="$(OutDir)/TrinityScript.lib"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="copy ..\trinityscript.conf.dist ..\..\..\..\bin\$(PlatformName)_$(ConfigurationName)\TrinityScript.conf.dist"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|x64"
+ OutputDirectory="..\..\..\..\bin\$(PlatformName)_$(ConfigurationName)"
+ IntermediateDirectory=".\ScriptDev2__$(PlatformName)_$(ConfigurationName)"
+ ConfigurationType="2"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ CommandLine=""
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="3"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\..\..\..\dep\include\;..\..\..\shared\;..\..\..\framework\;..\..\..\game\;..\include\;..\..\..\..\dep\ACE_wrappers"
+ PreprocessorDefinitions="WIN32;_DEBUG;MANGOS_DEBUG;_WINDOWS;_USRDLL;SCRIPT"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderThrough="precompiled.h"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="TrinityCore.lib zthread.lib"
+ OutputFile="$(OutDir)/TrinityScript.dll"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="..\..\..\..\win\VC80\zthread__$(PlatformName)_$(ConfigurationName);..\..\..\..\win\VC80\trinitycore__$(PlatformName)_$(ConfigurationName)"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)/MaNGOSScript.pdb"
+ SubSystem="2"
+ ImportLibrary="$(OutDir)/TrinityScript.lib"
+ TargetMachine="17"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="copy ..\trinityscript.conf.dist ..\..\..\..\bin\$(PlatformName)_$(ConfigurationName)\TrinityScript.conf.dist"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="..\..\..\..\bin\$(PlatformName)_$(ConfigurationName)"
+ IntermediateDirectory=".\ScriptDev2__$(PlatformName)_$(ConfigurationName)"
+ ConfigurationType="2"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ CommandLine=""
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalOptions="/MP"
+ AdditionalIncludeDirectories="..\..\..\..\dep\include\;..\..\..\shared\;..\..\..\framework\;..\..\..\game\;..\include\;..\..\..\..\dep\ACE_wrappers"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;SCRIPT"
+ RuntimeLibrary="0"
+ EnableEnhancedInstructionSet="1"
+ FloatingPointModel="2"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderThrough="precompiled.h"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="TrinityCore.lib zthread.lib"
+ OutputFile="$(OutDir)/TrinityScript.dll"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="..\..\..\..\win\VC80\zthread__$(PlatformName)_$(ConfigurationName);..\..\..\..\win\VC80\trinitycore__$(PlatformName)_$(ConfigurationName)"
+ GenerateDebugInformation="false"
+ SubSystem="2"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ ImportLibrary="$(OutDir)/TrinityScript.lib"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="copy ..\trinityscript.conf.dist ..\..\..\..\bin\$(PlatformName)_$(ConfigurationName)\TrinityScript.conf.dist"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|x64"
+ OutputDirectory="..\..\..\..\bin\$(PlatformName)_$(ConfigurationName)"
+ IntermediateDirectory=".\ScriptDev2__$(PlatformName)_$(ConfigurationName)"
+ ConfigurationType="2"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ CommandLine=""
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="3"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalOptions="/MP"
+ AdditionalIncludeDirectories="..\..\..\..\dep\include\;..\..\..\shared\;..\..\..\framework\;..\..\..\game\;..\include\;..\..\..\..\dep\ACE_wrappers"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;SCRIPT"
+ RuntimeLibrary="0"
+ FloatingPointModel="2"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderThrough="precompiled.h"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="TrinityCore.lib zthread.lib"
+ OutputFile="$(OutDir)/TrinityScript.dll"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="..\..\..\..\win\VC80\zthread__$(PlatformName)_$(ConfigurationName);..\..\..\..\win\VC80\trinitycore__$(PlatformName)_$(ConfigurationName)"
+ GenerateDebugInformation="false"
+ SubSystem="2"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ ImportLibrary="$(OutDir)/TrinityScript.lib"
+ TargetMachine="17"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="copy ..\trinityscript.conf.dist ..\..\..\..\bin\$(PlatformName)_$(ConfigurationName)\TrinityScript.conf.dist"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Scripts"
+ >
+ <Filter
+ Name="boss"
+ >
+ <File
+ RelativePath="..\scripts\boss\boss_emeriss.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\boss\boss_lethon.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\boss\boss_taerar.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\boss\boss_ysondre.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="creature"
+ >
+ <File
+ RelativePath="..\scripts\creature\mob_event_ai.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\creature\mob_event_ai.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\creature\mob_generic_creature.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\creature\simple_ai.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\creature\simple_ai.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="guard"
+ >
+ <File
+ RelativePath="..\scripts\guard\guard_ai.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\guard\guard_ai.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\guard\guards.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="honor"
+ >
+ </Filter>
+ <Filter
+ Name="npc"
+ >
+ <File
+ RelativePath="..\scripts\npc\npc_escortAI.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\npc\npc_escortAI.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\npc\npc_innkeeper.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\npc\npc_professions.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\npc\npcs_special.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="servers"
+ >
+ </Filter>
+ <Filter
+ Name="custom"
+ >
+ <File
+ RelativePath="..\scripts\custom\custom_example.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\custom\custom_gossip_codebox.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\custom\test.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="areatrigger"
+ >
+ <File
+ RelativePath="..\scripts\areatrigger\areatrigger_scripts.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="go"
+ >
+ <File
+ RelativePath="..\scripts\go\go_scripts.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="item"
+ >
+ <File
+ RelativePath="..\scripts\item\item_scripts.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\item\item_test.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="zone"
+ >
+ <Filter
+ Name="Alterac Mountains"
+ >
+ <File
+ RelativePath="..\scripts\zone\alterac_mountains\alterac_mountains.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Ashenvale Forest"
+ >
+ </Filter>
+ <Filter
+ Name="Azshara"
+ >
+ <File
+ RelativePath="..\scripts\zone\azshara\azshara.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\azshara\boss_azuregos.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Badlands"
+ >
+ </Filter>
+ <Filter
+ Name="Barrens"
+ >
+ <File
+ RelativePath="..\scripts\zone\barrens\the_barrens.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Blackfathom Depths"
+ >
+ </Filter>
+ <Filter
+ Name="Arathi Highlands"
+ >
+ </Filter>
+ <Filter
+ Name="Deadmines"
+ >
+ <File
+ RelativePath="..\scripts\zone\deadmines\deadmines.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Deadwind Pass"
+ >
+ </Filter>
+ <Filter
+ Name="Desolace"
+ >
+ </Filter>
+ <Filter
+ Name="Dire Maul"
+ >
+ </Filter>
+ <Filter
+ Name="Dun Morogh"
+ >
+ <File
+ RelativePath="..\scripts\zone\dun_morogh\dun_morogh.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Durotar"
+ >
+ </Filter>
+ <Filter
+ Name="Duskwood"
+ >
+ </Filter>
+ <Filter
+ Name="Dustwallow Marsh"
+ >
+ <File
+ RelativePath="..\scripts\zone\dustwallow_marsh\dustwallow_marsh.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Blackwing Lair"
+ >
+ <File
+ RelativePath="..\scripts\zone\blackwing_lair\boss_broodlord_lashlayer.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackwing_lair\boss_chromaggus.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackwing_lair\boss_ebonroc.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackwing_lair\boss_firemaw.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackwing_lair\boss_flamegor.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackwing_lair\boss_nefarian.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackwing_lair\boss_razorgore.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackwing_lair\boss_vaelastrasz.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackwing_lair\boss_victor_nefarius.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackwing_lair\instance_blackwing_lair.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Bloodmyst Isle"
+ >
+ <File
+ RelativePath="..\scripts\zone\bloodmyst_isle\bloodmyst_isle.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Gruul&apos;s Lair"
+ >
+ <File
+ RelativePath="..\scripts\zone\gruuls_lair\boss_gruul.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\gruuls_lair\boss_high_king_maulgar.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\gruuls_lair\def_gruuls_lair.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\gruuls_lair\instance_gruuls_lair.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Burning Steppes"
+ >
+ <File
+ RelativePath="..\scripts\zone\burning_steppes\burning_steppes.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Darkshore"
+ >
+ <File
+ RelativePath="..\scripts\zone\darkshore\darkshore.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Eastern Plaguelands"
+ >
+ <File
+ RelativePath="..\scripts\zone\eastern_plaguelands\eastern_plaguelands.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Moonglade"
+ >
+ <File
+ RelativePath="..\scripts\zone\moonglade\moonglade.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Razorfen Kraul"
+ >
+ </Filter>
+ <Filter
+ Name="Redridge Mountains"
+ >
+ </Filter>
+ <Filter
+ Name="Ruins of Ahn&apos;Qiraj"
+ >
+ <File
+ RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_ayamiss.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_buru.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_kurinnaxx.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_moam.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_ossirian.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_rajaxx.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\ruins_of_ahnqiraj\instance_ruins_of_ahnqiraj.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Swamp of Sorrows"
+ >
+ </Filter>
+ <Filter
+ Name="Scarlet Monastery"
+ >
+ <File
+ RelativePath="..\scripts\zone\scarlet_monastery\boss_arcanist_doan.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scarlet_monastery\boss_azshir_the_sleepless.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scarlet_monastery\boss_bloodmage_thalnos.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scarlet_monastery\boss_herod.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scarlet_monastery\boss_high_inquisitor_fairbanks.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scarlet_monastery\boss_high_inquisitor_whitemane.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scarlet_monastery\boss_houndmaster_loksey.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scarlet_monastery\boss_interrogator_vishas.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scarlet_monastery\boss_scarlet_commander_mograine.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scarlet_monastery\boss_scorn.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Scholomance"
+ >
+ <File
+ RelativePath="..\scripts\zone\scholomance\boss_darkmaster_gandling.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scholomance\boss_death_knight_darkreaver.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scholomance\boss_doctor_theolen_krastinov.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scholomance\boss_illucia_barov.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scholomance\boss_instructor_malicia.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scholomance\boss_jandice_barov.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scholomance\boss_kormok.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scholomance\boss_lord_alexei_barov.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scholomance\boss_lorekeeper_polkelt.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scholomance\boss_ras_frostwhisper.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scholomance\boss_the_ravenian.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scholomance\boss_vectus.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scholomance\def_scholomance.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scholomance\instance_scholomance.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Searing Gorge"
+ >
+ <File
+ RelativePath="..\scripts\zone\searing_gorge\searing_gorge.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Elwynn Forest"
+ >
+ <File
+ RelativePath="..\scripts\zone\elwynn_forest\elwynn_forest.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Felwood"
+ >
+ <File
+ RelativePath="..\scripts\zone\felwood\felwood.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Feralas"
+ >
+ <File
+ RelativePath="..\scripts\zone\feralas\feralas.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Gnomeregan"
+ >
+ </Filter>
+ <Filter
+ Name="Hillsbrad Foothills"
+ >
+ </Filter>
+ <Filter
+ Name="Hinterlands"
+ >
+ </Filter>
+ <Filter
+ Name="Maraudon"
+ >
+ <File
+ RelativePath="..\scripts\zone\maraudon\boss_celebras_the_cursed.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\maraudon\boss_landslide.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\maraudon\boss_noxxion.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\maraudon\boss_princess_theradras.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Molten Core"
+ >
+ <File
+ RelativePath="..\scripts\zone\molten_core\boss_baron_geddon.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\molten_core\boss_garr.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\molten_core\boss_gehennas.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\molten_core\boss_golemagg.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\molten_core\boss_lucifron.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\molten_core\boss_magmadar.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\molten_core\boss_majordomo_executus.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\molten_core\boss_ragnaros.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\molten_core\boss_shazzrah.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\molten_core\boss_sulfuron_harbinger.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\molten_core\def_molten_core.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\molten_core\instance_molten_core.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\molten_core\molten_core.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Mulgore"
+ >
+ <File
+ RelativePath="..\scripts\zone\mulgore\mulgore.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Naxxramas"
+ >
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_anubrekhan.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_faerlina.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_feugen.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_gluth.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_gothik.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_grobbulus.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_heigan.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_highlord_mograine.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_kelthuzad.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_lady_blaumeux.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_loatheb.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_maexxna.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_noth.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_patchwerk.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_razuvious.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_sapphiron.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_sir_zeliek.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_stalagg.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_thaddius.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_thane_korthazz.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\instance_naxxramas.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Onyxia&apos;s Lair"
+ >
+ <File
+ RelativePath="..\scripts\zone\onyxias_lair\boss_onyxia.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Ragefire Chasm"
+ >
+ </Filter>
+ <Filter
+ Name="Razorfen Downs"
+ >
+ <File
+ RelativePath="..\scripts\zone\razorfen_downs\boss_amnennar_the_coldbringer.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Shadowfang Keep"
+ >
+ <File
+ RelativePath="..\scripts\zone\shadowfang_keep\def_shadowfang_keep.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\shadowfang_keep\instance_shadowfang_keep.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\shadowfang_keep\shadowfang_keep.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Stonetalon Mountains"
+ >
+ <File
+ RelativePath="..\scripts\zone\stonetalon_mountains\stonetalon_mountains.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Stranglethorn Vale"
+ >
+ <File
+ RelativePath="..\scripts\zone\stranglethorn_vale\stranglethorn_vale.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Stratholme"
+ >
+ <File
+ RelativePath="..\scripts\zone\stratholme\boss_baron_rivendare.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\stratholme\boss_baroness_anastari.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\stratholme\boss_cannon_master_willey.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\stratholme\boss_dathrohan_balnazzar.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\stratholme\boss_magistrate_barthilas.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\stratholme\boss_maleki_the_pallid.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\stratholme\boss_nerubenkan.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\stratholme\boss_order_of_silver_hand.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\stratholme\boss_postmaster_malown.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\stratholme\boss_ramstein_the_gorger.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\stratholme\boss_timmy_the_cruel.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\stratholme\def_stratholme.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\stratholme\instance_stratholme.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\stratholme\stratholme.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Sunken Temple"
+ >
+ </Filter>
+ <Filter
+ Name="Tanaris"
+ >
+ <File
+ RelativePath="..\scripts\zone\tanaris\tanaris.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Teldrassil"
+ >
+ </Filter>
+ <Filter
+ Name="Temple of Ahn&apos;Qiraj"
+ >
+ <File
+ RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_bug_trio.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_cthun.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_fankriss.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_huhuran.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_ouro.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_sartura.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_skeram.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_twinemperors.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_viscidus.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\temple_of_ahnqiraj\def_temple_of_ahnqiraj.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\temple_of_ahnqiraj\instance_temple_of_ahnqiraj.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\temple_of_ahnqiraj\mob_anubisath_sentinel.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Thousand Needles"
+ >
+ </Filter>
+ <Filter
+ Name="Silithus"
+ >
+ <File
+ RelativePath="..\scripts\zone\silithus\silithus.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Silverpine Forest"
+ >
+ <File
+ RelativePath="..\scripts\zone\silverpine_forest\silverpine_forest.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Stockade"
+ >
+ </Filter>
+ <Filter
+ Name="Tirisfal Glades"
+ >
+ <File
+ RelativePath="..\scripts\zone\tirisfal_glades\tirisfal_glades.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Wailing Caverns"
+ >
+ <File
+ RelativePath="..\scripts\zone\wailing_caverns\instance_wailing_caverns.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Western Plaguelands"
+ >
+ <File
+ RelativePath="..\scripts\zone\western_plaguelands\western_plaguelands.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Westfall"
+ >
+ </Filter>
+ <Filter
+ Name="Wetlands"
+ >
+ </Filter>
+ <Filter
+ Name="Winterspring"
+ >
+ <File
+ RelativePath="..\scripts\zone\winterspring\winterspring.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Zul&apos;Farrak"
+ >
+ <File
+ RelativePath="..\scripts\zone\zulfarrak\zulfarrak.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Zul&apos;Gurub"
+ >
+ <File
+ RelativePath="..\scripts\zone\zulgurub\boss_arlokk.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulgurub\boss_gahzranka.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulgurub\boss_grilek.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulgurub\boss_hakkar.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulgurub\boss_hazzarah.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulgurub\boss_jeklik.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulgurub\boss_jindo.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulgurub\boss_mandokir.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulgurub\boss_marli.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulgurub\boss_renataki.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulgurub\boss_thekal.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulgurub\boss_venoxis.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulgurub\boss_wushoolay.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulgurub\def_zulgurub.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulgurub\instance_zulgurub.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Uldaman"
+ >
+ <File
+ RelativePath="..\scripts\zone\uldaman\boss_ironaya.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\uldaman\uldaman.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Un&apos;Goro Crater"
+ >
+ </Filter>
+ <Filter
+ Name="Aunchindoun"
+ >
+ <Filter
+ Name="Auchenai Crypts"
+ >
+ <File
+ RelativePath="..\scripts\zone\aunchindoun\auchenai_crypts\boss_exarch_maladaar.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Mana Tombs"
+ >
+ <File
+ RelativePath="..\scripts\zone\aunchindoun\mana_tombs\boss_nexusprince_shaffar.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\aunchindoun\mana_tombs\boss_pandemonius.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Sethekk Halls"
+ >
+ <File
+ RelativePath="..\scripts\zone\aunchindoun\sethekk_halls\boss_darkweaver_syth.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\aunchindoun\sethekk_halls\boss_tailonking_ikiss.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\aunchindoun\sethekk_halls\def_sethekk_halls.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\aunchindoun\sethekk_halls\instance_sethekk_halls.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Shadow Labyrinth"
+ >
+ <File
+ RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\boss_ambassador_hellmaw.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\boss_blackheart_the_inciter.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\boss_grandmaster_vorpil.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\boss_murmur.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\def_shadow_labyrinth.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\instance_shadow_labyrinth.cpp"
+ >
+ </File>
+ </Filter>
+ </Filter>
+ <Filter
+ Name="Azuremyst Isle"
+ >
+ <File
+ RelativePath="..\scripts\zone\azuremyst_isle\azuremyst_isle.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Black Temple"
+ >
+ <File
+ RelativePath="..\scripts\zone\black_temple\black_temple.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\black_temple\boss_bloodboil.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\black_temple\boss_illidan.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\black_temple\boss_mother_shahraz.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\black_temple\boss_reliquary_of_souls.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\black_temple\boss_shade_of_akama.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\black_temple\boss_supremus.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\black_temple\boss_teron_gorefiend.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\black_temple\boss_warlord_najentus.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\black_temple\def_black_temple.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\black_temple\illidari_council.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\black_temple\instance_black_temple.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Eversong Woods"
+ >
+ <File
+ RelativePath="..\scripts\zone\eversong_woods\eversong_woods.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Ghostlands"
+ >
+ <File
+ RelativePath="..\scripts\zone\ghostlands\ghostlands.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Blade&apos;s Edge Mountains"
+ >
+ <File
+ RelativePath="..\scripts\zone\blades_edge_mountains\blades_edge_mountains.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Blasted Lands"
+ >
+ <File
+ RelativePath="..\scripts\zone\blasted_lands\blasted_lands.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blasted_lands\boss_kruul.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Hellfire Citadel"
+ >
+ <Filter
+ Name="Blood Furnace"
+ >
+ <File
+ RelativePath="..\scripts\zone\hellfire_citadel\blood_furnace\boss_broggok.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\hellfire_citadel\blood_furnace\boss_kelidan_the_breaker.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\hellfire_citadel\blood_furnace\boss_the_maker.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Magtheridon&apos;s lair"
+ >
+ <File
+ RelativePath="..\scripts\zone\hellfire_citadel\magtheridons_lair\boss_magtheridon.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\hellfire_citadel\magtheridons_lair\def_magtheridons_lair.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\hellfire_citadel\magtheridons_lair\instance_magtheridons_lair.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Hellfire Ramparts"
+ >
+ <File
+ RelativePath="..\scripts\zone\hellfire_citadel\hellfire_ramparts\boss_omor_the_unscarred.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\hellfire_citadel\hellfire_ramparts\boss_watchkeeper_gargolmar.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Shattered Halls"
+ >
+ <File
+ RelativePath="..\scripts\zone\hellfire_citadel\shattered_halls\boss_nethekurse.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\hellfire_citadel\shattered_halls\boss_warbringer_omrogg.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\hellfire_citadel\shattered_halls\def_shattered_halls.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\hellfire_citadel\shattered_halls\instance_shattered_halls.cpp"
+ >
+ </File>
+ </Filter>
+ </Filter>
+ <Filter
+ Name="Hellfire Peninsula"
+ >
+ <File
+ RelativePath="..\scripts\zone\hellfire_peninsula\boss_doomlord_kazzak.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\hellfire_peninsula\hellfire_peninsula.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Karazhan"
+ >
+ <File
+ RelativePath="..\scripts\zone\karazhan\boss_curator.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\karazhan\boss_maiden_of_virtue.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\karazhan\boss_midnight.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\karazhan\boss_moroes.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\karazhan\boss_netherspite.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\karazhan\boss_nightbane.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\karazhan\boss_prince_malchezaar.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\karazhan\boss_shade_of_aran.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\karazhan\boss_terestian_illhoof.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\karazhan\bosses_opera.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\karazhan\def_karazhan.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\karazhan\instance_karazhan.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\karazhan\karazhan.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Nagrand"
+ >
+ <File
+ RelativePath="..\scripts\zone\nagrand\nagrand.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Netherstorm"
+ >
+ <File
+ RelativePath="..\scripts\zone\netherstorm\netherstorm.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Shadowmoon Valley"
+ >
+ <File
+ RelativePath="..\scripts\zone\shadowmoon_valley\boss_doomwalker.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\shadowmoon_valley\shadowmoon_valley.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Tempest Keep"
+ >
+ <Filter
+ Name="Arcatraz"
+ >
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\arcatraz\arcatraz.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\arcatraz\boss_harbinger_skyriss.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\arcatraz\def_arcatraz.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\arcatraz\instance_arcatraz.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Botanica"
+ >
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\botanica\boss_high_botanist_freywinn.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\botanica\boss_laj.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\botanica\boss_warp_splinter.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="The Eye"
+ >
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\the_eye\boss_astromancer.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\the_eye\boss_kaelthas.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\the_eye\boss_void_reaver.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\the_eye\def_the_eye.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\the_eye\instance_the_eye.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\the_eye\the_eye.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="The Mechanar"
+ >
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\the_mechanar\boss_gatewatcher_gyrokill.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\the_mechanar\boss_gatewatcher_ironhand.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\the_mechanar\boss_nethermancer_sepethrea.cpp"
+ >
+ </File>
+ </Filter>
+ </Filter>
+ <Filter
+ Name="Terokkar Forest"
+ >
+ <File
+ RelativePath="..\scripts\zone\terokkar_forest\terokkar_forest.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Zangarmarsh"
+ >
+ <File
+ RelativePath="..\scripts\zone\zangarmarsh\zangarmarsh.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Blackrock Spire"
+ >
+ <File
+ RelativePath="..\scripts\zone\blackrock_spire\boss_drakkisath.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_spire\boss_gyth.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_spire\boss_halycon.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_spire\boss_highlord_omokk.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_spire\boss_mother_smolderweb.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_spire\boss_overlord_wyrmthalak.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_spire\boss_pyroguard_emberseer.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_spire\boss_quartermaster_zigris.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_spire\boss_rend_blackhand.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_spire\boss_shadow_hunter_voshgajin.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_spire\boss_the_beast.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_spire\boss_warmaster_voone.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Stormwind City"
+ >
+ <File
+ RelativePath="..\scripts\zone\stormwind\stormwind_city.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Coilfang Resevoir"
+ >
+ <Filter
+ Name="Serpent Shrine Cavern"
+ >
+ <File
+ RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\boss_fathomlord_karathress.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\boss_hydross_the_unstable.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\boss_lady_vashj.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\boss_leotheras_the_blind.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\boss_morogrim_tidewalker.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\def_serpent_shrine.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\instance_serpent_shrine.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Slave Pens"
+ >
+ </Filter>
+ <Filter
+ Name="Steam Vault"
+ >
+ <File
+ RelativePath="..\scripts\zone\coilfang_resevoir\steam_vault\boss_hydromancer_thespia.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\coilfang_resevoir\steam_vault\boss_mekgineer_steamrigger.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\coilfang_resevoir\steam_vault\boss_warlord_kalithresh.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\coilfang_resevoir\steam_vault\def_steam_vault.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\coilfang_resevoir\steam_vault\instance_steam_vault.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Underbog"
+ >
+ <File
+ RelativePath="..\scripts\zone\coilfang_resevoir\underbog\boss_hungarfen.cpp"
+ >
+ </File>
+ </Filter>
+ </Filter>
+ <Filter
+ Name="Caverns of Time"
+ >
+ <Filter
+ Name="The Dark Portal"
+ >
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\dark_portal\boss_aeonus.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\dark_portal\boss_chrono_lord_deja.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\dark_portal\boss_temporus.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Battle for Mt. Hyjal"
+ >
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\hyjal\boss_archimonde.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\hyjal\def_hyjal.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\hyjal\hyjal.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\hyjal\hyjalAI.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\hyjal\hyjalAI.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\hyjal\instance_hyjal.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Old Hillsbrad"
+ >
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\boss_captain_skarloc.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\boss_epoch_hunter.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\boss_leutenant_drake.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\def_old_hillsbrad.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\instance_old_hillsbrad.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\old_hillsbrad.cpp"
+ >
+ </File>
+ </Filter>
+ </Filter>
+ <Filter
+ Name="Silvermoon City"
+ >
+ <File
+ RelativePath="..\scripts\zone\silvermoon\silvermoon_city.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Darnassus"
+ >
+ </Filter>
+ <Filter
+ Name="Exodar"
+ >
+ </Filter>
+ <Filter
+ Name="Iron Forge"
+ >
+ <File
+ RelativePath="..\scripts\zone\ironforge\ironforge.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Orgrimmar"
+ >
+ <File
+ RelativePath="..\scripts\zone\orgrimmar\orgrimmar.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Shattrath City"
+ >
+ <File
+ RelativePath="..\scripts\zone\shattrath\shattrath_city.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Thunder Bluff"
+ >
+ <File
+ RelativePath="..\scripts\zone\thunder_bluff\thunder_bluff.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Undercity"
+ >
+ <File
+ RelativePath="..\scripts\zone\undercity\undercity.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Zul&apos;Aman"
+ >
+ <File
+ RelativePath="..\scripts\zone\zulaman\boss_janalai.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulaman\boss_nalorakk.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulaman\def_zulaman.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulaman\instance_zulaman.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulaman\zulaman.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Isle of Quel&apos;Danas"
+ >
+ <File
+ RelativePath="..\scripts\zone\isle_of_queldanas\isle_of_queldanas.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Magister&apos;s Terrace"
+ >
+ <File
+ RelativePath="..\scripts\zone\magisters_terrace\boss_felblood_kaelthas.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\magisters_terrace\boss_priestess_delrissa.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\magisters_terrace\boss_selin_fireheart.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\magisters_terrace\boss_vexallus.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\magisters_terrace\def_magisters_terrace.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\magisters_terrace\instance_magisters_terrace.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Sunwell Plateau"
+ >
+ <File
+ RelativePath="..\scripts\zone\sunwell_plateau\boss_brutallus.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\sunwell_plateau\boss_kalecgos.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\sunwell_plateau\def_sunwell_plateau.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\sunwell_plateau\instance_sunwell_plateau.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Blackrock Depths"
+ >
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\blackrock_depths.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_ambassador_flamelash.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_angerrel.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_anubshiah.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_doomrel.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_doperel.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_emperor_dagran_thaurissan.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_general_angerforge.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_gloomrel.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_gorosh_the_dervish.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_grizzle.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_haterel.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_high_interrogator_gerstahn.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_magmus.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_moira_bronzebeard.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_seethrel.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_vilerel.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Loch Modan"
+ >
+ <File
+ RelativePath="..\scripts\zone\loch_modan\loch_modan.cpp"
+ >
+ </File>
+ </Filter>
+ </Filter>
+ </Filter>
+ <Filter
+ Name="Include"
+ >
+ <File
+ RelativePath="..\include\precompiled.cpp"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\include\precompiled.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\sc_creature.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\include\sc_creature.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\sc_gossip.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\sc_instance.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\sc_item.h"
+ >
+ </File>
+ </Filter>
+ <File
+ RelativePath="..\config.h"
+ >
+ </File>
+ <File
+ RelativePath="..\ScriptMgr.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\ScriptMgr.h"
+ >
+ </File>
+ <File
+ RelativePath="..\svn_revision.h"
+ >
+ </File>
+ <File
+ RelativePath="..\system.cpp"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/bindings/scripts/VC90/90ScriptDev2.vcproj b/src/bindings/scripts/VC90/90ScriptDev2.vcproj
index 0492d923dd5..e3ddffba8eb 100644
--- a/src/bindings/scripts/VC90/90ScriptDev2.vcproj
+++ b/src/bindings/scripts/VC90/90ScriptDev2.vcproj
@@ -1,2341 +1,2341 @@
-<?xml version="1.0" encoding="windows-1250"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="9,00"
- Name="TrinityScript"
- ProjectGUID="{4295C8A9-79B7-4354-8064-F05FB9CA0C96}"
- RootNamespace="ScriptDev2"
- Keyword="Win32Proj"
- TargetFrameworkVersion="131072"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- <Platform
- Name="x64"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="..\..\..\..\bin\$(PlatformName)_$(ConfigurationName)"
- IntermediateDirectory=".\ScriptDev2__$(PlatformName)_$(ConfigurationName)"
- ConfigurationType="2"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
- CharacterSet="2"
- >
- <Tool
- Name="VCPreBuildEventTool"
- CommandLine=""
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="..\..\..\..\dep\include\;..\..\..\shared\;..\..\..\framework\;..\..\..\game\;..\include\;..\..\..\..\dep\ACE_wrappers"
- PreprocessorDefinitions="WIN32;_DEBUG;MANGOS_DEBUG;_WINDOWS;_USRDLL;SCRIPT"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="1"
- UsePrecompiledHeader="2"
- PrecompiledHeaderThrough="precompiled.h"
- WarningLevel="3"
- Detect64BitPortabilityProblems="false"
- DebugInformationFormat="4"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="trinitycore.lib zthread.lib"
- OutputFile="$(OutDir)/TrinityScript.dll"
- LinkIncremental="2"
- AdditionalLibraryDirectories="..\..\..\..\win\VC90\zthread__$(PlatformName)_$(ConfigurationName);..\..\..\..\win\VC90\trinitycore__$(PlatformName)_$(ConfigurationName)"
- GenerateDebugInformation="true"
- ProgramDatabaseFile="$(OutDir)/MaNGOSScript.pdb"
- SubSystem="2"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="0"
- ImportLibrary="$(OutDir)/TrinityScript.lib"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine="copy ..\trinityscript.conf.dist ..\..\..\..\bin\$(PlatformName)_$(ConfigurationName)\TrinityScript.conf.dist"
- />
- </Configuration>
- <Configuration
- Name="Debug|x64"
- OutputDirectory="..\..\..\..\bin\$(PlatformName)_$(ConfigurationName)"
- IntermediateDirectory=".\ScriptDev2__$(PlatformName)_$(ConfigurationName)"
- ConfigurationType="2"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
- CharacterSet="2"
- >
- <Tool
- Name="VCPreBuildEventTool"
- CommandLine=""
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- TargetEnvironment="3"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="..\..\..\..\dep\include\;..\..\..\shared\;..\..\..\framework\;..\..\..\game\;..\include\;..\..\..\..\dep\ACE_wrappers"
- PreprocessorDefinitions="WIN32;_DEBUG;MANGOS_DEBUG;_WINDOWS;_USRDLL;SCRIPT"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="1"
- UsePrecompiledHeader="2"
- PrecompiledHeaderThrough="precompiled.h"
- WarningLevel="3"
- Detect64BitPortabilityProblems="false"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="trinitycore.lib zthread.lib"
- OutputFile="$(OutDir)/TrinityScript.dll"
- LinkIncremental="2"
- AdditionalLibraryDirectories="..\..\..\..\win\VC90\zthread__$(PlatformName)_$(ConfigurationName);..\..\..\..\win\VC90\trinitycore__$(PlatformName)_$(ConfigurationName)"
- GenerateDebugInformation="true"
- ProgramDatabaseFile="$(OutDir)/MaNGOSScript.pdb"
- SubSystem="2"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="0"
- ImportLibrary="$(OutDir)/TrinityScript.lib"
- TargetMachine="17"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine="copy ..\trinityscript.conf.dist ..\..\..\..\bin\$(PlatformName)_$(ConfigurationName)\TrinityScript.conf.dist"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="..\..\..\..\bin\$(PlatformName)_$(ConfigurationName)"
- IntermediateDirectory=".\ScriptDev2__$(PlatformName)_$(ConfigurationName)"
- ConfigurationType="2"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
- CharacterSet="2"
- >
- <Tool
- Name="VCPreBuildEventTool"
- CommandLine=""
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
- AdditionalIncludeDirectories="..\..\..\..\dep\include\;..\..\..\shared\;..\..\..\framework\;..\..\..\game\;..\include\;..\..\..\..\dep\ACE_wrappers"
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;SCRIPT"
- MinimalRebuild="false"
- RuntimeLibrary="0"
- EnableEnhancedInstructionSet="1"
- FloatingPointModel="2"
- UsePrecompiledHeader="2"
- PrecompiledHeaderThrough="precompiled.h"
- WarningLevel="3"
- Detect64BitPortabilityProblems="false"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="trinitycore.lib zthread.lib"
- OutputFile="$(OutDir)/TrinityScript.dll"
- LinkIncremental="1"
- AdditionalLibraryDirectories="..\..\..\..\win\VC90\zthread__$(PlatformName)_$(ConfigurationName);..\..\..\..\win\VC90\trinitycore__$(PlatformName)_$(ConfigurationName)"
- GenerateDebugInformation="false"
- SubSystem="2"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="0"
- ImportLibrary="$(OutDir)/TrinityScript.lib"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine="copy ..\trinityscript.conf.dist ..\..\..\..\bin\$(PlatformName)_$(ConfigurationName)\TrinityScript.conf.dist"
- />
- </Configuration>
- <Configuration
- Name="Release|x64"
- OutputDirectory="..\..\..\..\bin\$(PlatformName)_$(ConfigurationName)"
- IntermediateDirectory=".\ScriptDev2__$(PlatformName)_$(ConfigurationName)"
- ConfigurationType="2"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
- CharacterSet="2"
- >
- <Tool
- Name="VCPreBuildEventTool"
- CommandLine=""
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- TargetEnvironment="3"
- />
- <Tool
- Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
- AdditionalIncludeDirectories="..\..\..\..\dep\include\;..\..\..\shared\;..\..\..\framework\;..\..\..\game\;..\include\;..\..\..\..\dep\ACE_wrappers"
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;SCRIPT"
- MinimalRebuild="false"
- RuntimeLibrary="0"
- UsePrecompiledHeader="2"
- PrecompiledHeaderThrough="precompiled.h"
- WarningLevel="3"
- Detect64BitPortabilityProblems="false"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="trinitycore.lib zthread.lib"
- OutputFile="$(OutDir)/TrinityScript.dll"
- LinkIncremental="1"
- AdditionalLibraryDirectories="..\..\..\..\win\VC90\zthread__$(PlatformName)_$(ConfigurationName);..\..\..\..\win\VC90\trinitycore__$(PlatformName)_$(ConfigurationName)"
- GenerateDebugInformation="false"
- SubSystem="2"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="0"
- ImportLibrary="$(OutDir)/TrinityScript.lib"
- TargetMachine="17"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine="copy ..\trinityscript.conf.dist ..\..\..\..\bin\$(PlatformName)_$(ConfigurationName)\TrinityScript.conf.dist"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Scripts"
- >
- <Filter
- Name="boss"
- >
- <File
- RelativePath="..\scripts\boss\boss_emeriss.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\boss\boss_lethon.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\boss\boss_taerar.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\boss\boss_ysondre.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="creature"
- >
- <File
- RelativePath="..\scripts\creature\mob_event_ai.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\creature\mob_event_ai.h"
- >
- </File>
- <File
- RelativePath="..\scripts\creature\mob_generic_creature.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\creature\simple_ai.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\creature\simple_ai.h"
- >
- </File>
- </Filter>
- <Filter
- Name="guard"
- >
- <File
- RelativePath="..\scripts\guard\guard_ai.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\guard\guard_ai.h"
- >
- </File>
- <File
- RelativePath="..\scripts\guard\guards.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="honor"
- >
- </Filter>
- <Filter
- Name="npc"
- >
- <File
- RelativePath="..\scripts\npc\npc_escortAI.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\npc\npc_escortAI.h"
- >
- </File>
- <File
- RelativePath="..\scripts\npc\npc_innkeeper.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\npc\npc_professions.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\npc\npcs_special.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="servers"
- >
- </Filter>
- <Filter
- Name="custom"
- >
- <File
- RelativePath="..\scripts\custom\custom_example.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\custom\custom_gossip_codebox.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\custom\test.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="areatrigger"
- >
- <File
- RelativePath="..\scripts\areatrigger\areatrigger_scripts.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="go"
- >
- <File
- RelativePath="..\scripts\go\go_scripts.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="item"
- >
- <File
- RelativePath="..\scripts\item\item_scripts.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\item\item_test.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="zone"
- >
- <Filter
- Name="Alterac Mountains"
- >
- <File
- RelativePath="..\scripts\zone\alterac_mountains\alterac_mountains.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Ashenvale Forest"
- >
- </Filter>
- <Filter
- Name="Azshara"
- >
- <File
- RelativePath="..\scripts\zone\azshara\azshara.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\azshara\boss_azuregos.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Badlands"
- >
- </Filter>
- <Filter
- Name="Barrens"
- >
- <File
- RelativePath="..\scripts\zone\barrens\the_barrens.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Blackfathom Depths"
- >
- </Filter>
- <Filter
- Name="Arathi Highlands"
- >
- </Filter>
- <Filter
- Name="Deadmines"
- >
- <File
- RelativePath="..\scripts\zone\deadmines\deadmines.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Deadwind Pass"
- >
- </Filter>
- <Filter
- Name="Desolace"
- >
- </Filter>
- <Filter
- Name="Dire Maul"
- >
- </Filter>
- <Filter
- Name="Dun Morogh"
- >
- <File
- RelativePath="..\scripts\zone\dun_morogh\dun_morogh.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Durotar"
- >
- </Filter>
- <Filter
- Name="Duskwood"
- >
- </Filter>
- <Filter
- Name="Dustwallow Marsh"
- >
- <File
- RelativePath="..\scripts\zone\dustwallow_marsh\dustwallow_marsh.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Blackwing Lair"
- >
- <File
- RelativePath="..\scripts\zone\blackwing_lair\boss_broodlord_lashlayer.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackwing_lair\boss_chromaggus.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackwing_lair\boss_ebonroc.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackwing_lair\boss_firemaw.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackwing_lair\boss_flamegor.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackwing_lair\boss_nefarian.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackwing_lair\boss_razorgore.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackwing_lair\boss_vaelastrasz.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackwing_lair\boss_victor_nefarius.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackwing_lair\instance_blackwing_lair.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Bloodmyst Isle"
- >
- <File
- RelativePath="..\scripts\zone\bloodmyst_isle\bloodmyst_isle.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Gruul&apos;s Lair"
- >
- <File
- RelativePath="..\scripts\zone\gruuls_lair\boss_gruul.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\gruuls_lair\boss_high_king_maulgar.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\gruuls_lair\def_gruuls_lair.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\gruuls_lair\instance_gruuls_lair.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Burning Steppes"
- >
- <File
- RelativePath="..\scripts\zone\burning_steppes\burning_steppes.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Darkshore"
- >
- <File
- RelativePath="..\scripts\zone\darkshore\darkshore.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Eastern Plaguelands"
- >
- <File
- RelativePath="..\scripts\zone\eastern_plaguelands\eastern_plaguelands.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Moonglade"
- >
- <File
- RelativePath="..\scripts\zone\moonglade\moonglade.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Razorfen Kraul"
- >
- </Filter>
- <Filter
- Name="Redridge Mountains"
- >
- </Filter>
- <Filter
- Name="Ruins of Ahn&apos;Qiraj"
- >
- <File
- RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_ayamiss.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_buru.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_kurinnaxx.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_moam.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_ossirian.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_rajaxx.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\ruins_of_ahnqiraj\instance_ruins_of_ahnqiraj.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Swamp of Sorrows"
- >
- </Filter>
- <Filter
- Name="Scarlet Monastery"
- >
- <File
- RelativePath="..\scripts\zone\scarlet_monastery\boss_arcanist_doan.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scarlet_monastery\boss_azshir_the_sleepless.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scarlet_monastery\boss_bloodmage_thalnos.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scarlet_monastery\boss_herod.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scarlet_monastery\boss_high_inquisitor_fairbanks.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scarlet_monastery\boss_high_inquisitor_whitemane.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scarlet_monastery\boss_houndmaster_loksey.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scarlet_monastery\boss_interrogator_vishas.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scarlet_monastery\boss_scarlet_commander_mograine.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scarlet_monastery\boss_scorn.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Scholomance"
- >
- <File
- RelativePath="..\scripts\zone\scholomance\boss_darkmaster_gandling.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scholomance\boss_death_knight_darkreaver.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scholomance\boss_doctor_theolen_krastinov.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scholomance\boss_illucia_barov.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scholomance\boss_instructor_malicia.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scholomance\boss_jandice_barov.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scholomance\boss_kormok.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scholomance\boss_lord_alexei_barov.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scholomance\boss_lorekeeper_polkelt.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scholomance\boss_ras_frostwhisper.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scholomance\boss_the_ravenian.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scholomance\boss_vectus.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scholomance\def_scholomance.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\scholomance\instance_scholomance.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Searing Gorge"
- >
- <File
- RelativePath="..\scripts\zone\searing_gorge\searing_gorge.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Elwynn Forest"
- >
- <File
- RelativePath="..\scripts\zone\elwynn_forest\elwynn_forest.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Felwood"
- >
- <File
- RelativePath="..\scripts\zone\felwood\felwood.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Feralas"
- >
- <File
- RelativePath="..\scripts\zone\feralas\feralas.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Gnomeregan"
- >
- </Filter>
- <Filter
- Name="Hillsbrad Foothills"
- >
- </Filter>
- <Filter
- Name="Hinterlands"
- >
- </Filter>
- <Filter
- Name="Maraudon"
- >
- <File
- RelativePath="..\scripts\zone\maraudon\boss_celebras_the_cursed.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\maraudon\boss_landslide.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\maraudon\boss_noxxion.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\maraudon\boss_princess_theradras.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Molten Core"
- >
- <File
- RelativePath="..\scripts\zone\molten_core\boss_baron_geddon.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\molten_core\boss_garr.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\molten_core\boss_gehennas.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\molten_core\boss_golemagg.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\molten_core\boss_lucifron.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\molten_core\boss_magmadar.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\molten_core\boss_majordomo_executus.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\molten_core\boss_ragnaros.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\molten_core\boss_shazzrah.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\molten_core\boss_sulfuron_harbinger.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\molten_core\def_molten_core.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\molten_core\instance_molten_core.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\molten_core\molten_core.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Mulgore"
- >
- <File
- RelativePath="..\scripts\zone\mulgore\mulgore.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Naxxramas"
- >
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_anubrekhan.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_faerlina.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_feugen.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_gluth.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_gothik.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_grobbulus.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_heigan.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_highlord_mograine.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_kelthuzad.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_lady_blaumeux.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_loatheb.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_maexxna.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_noth.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_patchwerk.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_razuvious.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_sapphiron.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_sir_zeliek.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_stalagg.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_thaddius.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\boss_thane_korthazz.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\naxxramas\instance_naxxramas.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Onyxia&apos;s Lair"
- >
- <File
- RelativePath="..\scripts\zone\onyxias_lair\boss_onyxia.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Ragefire Chasm"
- >
- </Filter>
- <Filter
- Name="Razorfen Downs"
- >
- <File
- RelativePath="..\scripts\zone\razorfen_downs\boss_amnennar_the_coldbringer.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Shadowfang Keep"
- >
- <File
- RelativePath="..\scripts\zone\shadowfang_keep\def_shadowfang_keep.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\shadowfang_keep\instance_shadowfang_keep.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\shadowfang_keep\shadowfang_keep.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Stonetalon Mountains"
- >
- <File
- RelativePath="..\scripts\zone\stonetalon_mountains\stonetalon_mountains.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Stranglethorn Vale"
- >
- <File
- RelativePath="..\scripts\zone\stranglethorn_vale\stranglethorn_vale.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Stratholme"
- >
- <File
- RelativePath="..\scripts\zone\stratholme\boss_baron_rivendare.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\stratholme\boss_baroness_anastari.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\stratholme\boss_cannon_master_willey.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\stratholme\boss_dathrohan_balnazzar.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\stratholme\boss_magistrate_barthilas.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\stratholme\boss_maleki_the_pallid.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\stratholme\boss_nerubenkan.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\stratholme\boss_order_of_silver_hand.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\stratholme\boss_postmaster_malown.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\stratholme\boss_ramstein_the_gorger.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\stratholme\boss_timmy_the_cruel.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\stratholme\def_stratholme.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\stratholme\instance_stratholme.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\stratholme\stratholme.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Sunken Temple"
- >
- </Filter>
- <Filter
- Name="Tanaris"
- >
- <File
- RelativePath="..\scripts\zone\tanaris\tanaris.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Teldrassil"
- >
- </Filter>
- <Filter
- Name="Temple of Ahn&apos;Qiraj"
- >
- <File
- RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_bug_trio.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_cthun.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_fankriss.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_huhuran.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_ouro.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_sartura.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_skeram.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_twinemperors.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_viscidus.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\temple_of_ahnqiraj\def_temple_of_ahnqiraj.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\temple_of_ahnqiraj\instance_temple_of_ahnqiraj.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\temple_of_ahnqiraj\mob_anubisath_sentinel.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Thousand Needles"
- >
- </Filter>
- <Filter
- Name="Silithus"
- >
- <File
- RelativePath="..\scripts\zone\silithus\silithus.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Silverpine Forest"
- >
- <File
- RelativePath="..\scripts\zone\silverpine_forest\silverpine_forest.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Stockade"
- >
- </Filter>
- <Filter
- Name="Tirisfal Glades"
- >
- <File
- RelativePath="..\scripts\zone\tirisfal_glades\tirisfal_glades.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Wailing Caverns"
- >
- <File
- RelativePath="..\scripts\zone\wailing_caverns\instance_wailing_caverns.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Western Plaguelands"
- >
- <File
- RelativePath="..\scripts\zone\western_plaguelands\western_plaguelands.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Westfall"
- >
- </Filter>
- <Filter
- Name="Wetlands"
- >
- </Filter>
- <Filter
- Name="Winterspring"
- >
- <File
- RelativePath="..\scripts\zone\winterspring\winterspring.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Zul&apos;Farrak"
- >
- <File
- RelativePath="..\scripts\zone\zulfarrak\zulfarrak.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Zul&apos;Gurub"
- >
- <File
- RelativePath="..\scripts\zone\zulgurub\boss_arlokk.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\zulgurub\boss_gahzranka.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\zulgurub\boss_grilek.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\zulgurub\boss_hakkar.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\zulgurub\boss_hazzarah.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\zulgurub\boss_jeklik.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\zulgurub\boss_jindo.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\zulgurub\boss_mandokir.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\zulgurub\boss_marli.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\zulgurub\boss_renataki.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\zulgurub\boss_thekal.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\zulgurub\boss_venoxis.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\zulgurub\boss_wushoolay.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\zulgurub\def_zulgurub.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\zulgurub\instance_zulgurub.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Uldaman"
- >
- <File
- RelativePath="..\scripts\zone\uldaman\boss_ironaya.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\uldaman\uldaman.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Un&apos;Goro Crater"
- >
- </Filter>
- <Filter
- Name="Aunchindoun"
- >
- <Filter
- Name="Auchenai Crypts"
- >
- <File
- RelativePath="..\scripts\zone\aunchindoun\auchenai_crypts\boss_exarch_maladaar.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Mana Tombs"
- >
- <File
- RelativePath="..\scripts\zone\aunchindoun\mana_tombs\boss_nexusprince_shaffar.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\aunchindoun\mana_tombs\boss_pandemonius.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Sethekk Halls"
- >
- <File
- RelativePath="..\scripts\zone\aunchindoun\sethekk_halls\boss_darkweaver_syth.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\aunchindoun\sethekk_halls\boss_tailonking_ikiss.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\aunchindoun\sethekk_halls\def_sethekk_halls.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\aunchindoun\sethekk_halls\instance_sethekk_halls.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Shadow Labyrinth"
- >
- <File
- RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\boss_ambassador_hellmaw.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\boss_blackheart_the_inciter.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\boss_grandmaster_vorpil.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\boss_murmur.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\def_shadow_labyrinth.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\instance_shadow_labyrinth.cpp"
- >
- </File>
- </Filter>
- </Filter>
- <Filter
- Name="Azuremyst Isle"
- >
- <File
- RelativePath="..\scripts\zone\azuremyst_isle\azuremyst_isle.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Black Temple"
- >
- <File
- RelativePath="..\scripts\zone\black_temple\black_temple.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\black_temple\boss_bloodboil.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\black_temple\boss_illidan.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\black_temple\boss_mother_shahraz.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\black_temple\boss_reliquary_of_souls.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\black_temple\boss_shade_of_akama.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\black_temple\boss_supremus.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\black_temple\boss_teron_gorefiend.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\black_temple\boss_warlord_najentus.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\black_temple\def_black_temple.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\black_temple\illidari_council.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\black_temple\instance_black_temple.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Eversong Woods"
- >
- <File
- RelativePath="..\scripts\zone\eversong_woods\eversong_woods.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Ghostlands"
- >
- <File
- RelativePath="..\scripts\zone\ghostlands\ghostlands.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Blade&apos;s Edge Mountains"
- >
- <File
- RelativePath="..\scripts\zone\blades_edge_mountains\blades_edge_mountains.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Blasted Lands"
- >
- <File
- RelativePath="..\scripts\zone\blasted_lands\blasted_lands.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blasted_lands\boss_kruul.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Hellfire Citadel"
- >
- <Filter
- Name="Blood Furnace"
- >
- <File
- RelativePath="..\scripts\zone\hellfire_citadel\blood_furnace\boss_broggok.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\hellfire_citadel\blood_furnace\boss_kelidan_the_breaker.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\hellfire_citadel\blood_furnace\boss_the_maker.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Magtheridon&apos;s lair"
- >
- <File
- RelativePath="..\scripts\zone\hellfire_citadel\magtheridons_lair\boss_magtheridon.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\hellfire_citadel\magtheridons_lair\def_magtheridons_lair.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\hellfire_citadel\magtheridons_lair\instance_magtheridons_lair.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Hellfire Ramparts"
- >
- <File
- RelativePath="..\scripts\zone\hellfire_citadel\hellfire_ramparts\boss_omor_the_unscarred.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\hellfire_citadel\hellfire_ramparts\boss_watchkeeper_gargolmar.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Shattered Halls"
- >
- <File
- RelativePath="..\scripts\zone\hellfire_citadel\shattered_halls\boss_nethekurse.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\hellfire_citadel\shattered_halls\boss_warbringer_omrogg.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\hellfire_citadel\shattered_halls\def_shattered_halls.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\hellfire_citadel\shattered_halls\instance_shattered_halls.cpp"
- >
- </File>
- </Filter>
- </Filter>
- <Filter
- Name="Hellfire Peninsula"
- >
- <File
- RelativePath="..\scripts\zone\hellfire_peninsula\boss_doomlord_kazzak.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\hellfire_peninsula\hellfire_peninsula.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Karazhan"
- >
- <File
- RelativePath="..\scripts\zone\karazhan\boss_curator.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\karazhan\boss_maiden_of_virtue.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\karazhan\boss_midnight.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\karazhan\boss_moroes.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\karazhan\boss_netherspite.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\karazhan\boss_nightbane.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\karazhan\boss_prince_malchezaar.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\karazhan\boss_shade_of_aran.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\karazhan\boss_terestian_illhoof.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\karazhan\bosses_opera.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\karazhan\def_karazhan.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\karazhan\instance_karazhan.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\karazhan\karazhan.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Nagrand"
- >
- <File
- RelativePath="..\scripts\zone\nagrand\nagrand.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Netherstorm"
- >
- <File
- RelativePath="..\scripts\zone\netherstorm\netherstorm.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Shadowmoon Valley"
- >
- <File
- RelativePath="..\scripts\zone\shadowmoon_valley\boss_doomwalker.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\shadowmoon_valley\shadowmoon_valley.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Tempest Keep"
- >
- <Filter
- Name="Arcatraz"
- >
- <File
- RelativePath="..\scripts\zone\tempest_keep\arcatraz\arcatraz.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\tempest_keep\arcatraz\boss_harbinger_skyriss.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\tempest_keep\arcatraz\def_arcatraz.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\tempest_keep\arcatraz\instance_arcatraz.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Botanica"
- >
- <File
- RelativePath="..\scripts\zone\tempest_keep\botanica\boss_high_botanist_freywinn.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\tempest_keep\botanica\boss_laj.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\tempest_keep\botanica\boss_warp_splinter.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="The Eye"
- >
- <File
- RelativePath="..\scripts\zone\tempest_keep\the_eye\boss_astromancer.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\tempest_keep\the_eye\boss_kaelthas.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\tempest_keep\the_eye\boss_void_reaver.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\tempest_keep\the_eye\def_the_eye.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\tempest_keep\the_eye\instance_the_eye.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\tempest_keep\the_eye\the_eye.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="The Mechanar"
- >
- <File
- RelativePath="..\scripts\zone\tempest_keep\the_mechanar\boss_gatewatcher_gyrokill.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\tempest_keep\the_mechanar\boss_gatewatcher_ironhand.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\tempest_keep\the_mechanar\boss_nethermancer_sepethrea.cpp"
- >
- </File>
- </Filter>
- </Filter>
- <Filter
- Name="Terokkar Forest"
- >
- <File
- RelativePath="..\scripts\zone\terokkar_forest\terokkar_forest.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Zangarmarsh"
- >
- <File
- RelativePath="..\scripts\zone\zangarmarsh\zangarmarsh.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Blackrock Spire"
- >
- <File
- RelativePath="..\scripts\zone\blackrock_spire\boss_drakkisath.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_spire\boss_gyth.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_spire\boss_halycon.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_spire\boss_highlord_omokk.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_spire\boss_mother_smolderweb.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_spire\boss_overlord_wyrmthalak.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_spire\boss_pyroguard_emberseer.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_spire\boss_quartermaster_zigris.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_spire\boss_rend_blackhand.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_spire\boss_shadow_hunter_voshgajin.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_spire\boss_the_beast.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_spire\boss_warmaster_voone.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Stormwind City"
- >
- <File
- RelativePath="..\scripts\zone\stormwind\stormwind_city.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Coilfang Resevoir"
- >
- <Filter
- Name="Serpent Shrine Cavern"
- >
- <File
- RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\boss_fathomlord_karathress.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\boss_hydross_the_unstable.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\boss_lady_vashj.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\boss_leotheras_the_blind.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\boss_morogrim_tidewalker.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\def_serpent_shrine.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\instance_serpent_shrine.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Slave Pens"
- >
- </Filter>
- <Filter
- Name="Steam Vault"
- >
- <File
- RelativePath="..\scripts\zone\coilfang_resevoir\steam_vault\boss_hydromancer_thespia.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\coilfang_resevoir\steam_vault\boss_mekgineer_steamrigger.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\coilfang_resevoir\steam_vault\boss_warlord_kalithresh.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\coilfang_resevoir\steam_vault\def_steam_vault.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\coilfang_resevoir\steam_vault\instance_steam_vault.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Underbog"
- >
- <File
- RelativePath="..\scripts\zone\coilfang_resevoir\underbog\boss_hungarfen.cpp"
- >
- </File>
- </Filter>
- </Filter>
- <Filter
- Name="Caverns of Time"
- >
- <Filter
- Name="The Dark Portal"
- >
- <File
- RelativePath="..\scripts\zone\caverns_of_time\dark_portal\boss_aeonus.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\caverns_of_time\dark_portal\boss_chrono_lord_deja.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\caverns_of_time\dark_portal\boss_temporus.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Battle for Mt. Hyjal"
- >
- <File
- RelativePath="..\scripts\zone\caverns_of_time\hyjal\boss_archimonde.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\caverns_of_time\hyjal\def_hyjal.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\caverns_of_time\hyjal\hyjal.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\caverns_of_time\hyjal\hyjalAI.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\caverns_of_time\hyjal\hyjalAI.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\caverns_of_time\hyjal\instance_hyjal.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Old Hillsbrad"
- >
- <File
- RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\boss_captain_skarloc.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\boss_epoch_hunter.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\boss_leutenant_drake.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\def_old_hillsbrad.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\instance_old_hillsbrad.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\old_hillsbrad.cpp"
- >
- </File>
- </Filter>
- </Filter>
- <Filter
- Name="Silvermoon City"
- >
- <File
- RelativePath="..\scripts\zone\silvermoon\silvermoon_city.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Darnassus"
- >
- </Filter>
- <Filter
- Name="Exodar"
- >
- </Filter>
- <Filter
- Name="Iron Forge"
- >
- <File
- RelativePath="..\scripts\zone\ironforge\ironforge.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Orgrimmar"
- >
- <File
- RelativePath="..\scripts\zone\orgrimmar\orgrimmar.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Shattrath City"
- >
- <File
- RelativePath="..\scripts\zone\shattrath\shattrath_city.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Thunder Bluff"
- >
- <File
- RelativePath="..\scripts\zone\thunder_bluff\thunder_bluff.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Undercity"
- >
- <File
- RelativePath="..\scripts\zone\undercity\undercity.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Zul&apos;Aman"
- >
- <File
- RelativePath="..\scripts\zone\zulaman\boss_janalai.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\zulaman\boss_nalorakk.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\zulaman\def_zulaman.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\zulaman\instance_zulaman.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\zulaman\zulaman.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Isle of Quel&apos;Danas"
- >
- <File
- RelativePath="..\scripts\zone\isle_of_queldanas\isle_of_queldanas.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Magister&apos;s Terrace"
- >
- <File
- RelativePath="..\scripts\zone\magisters_terrace\boss_felblood_kaelthas.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\magisters_terrace\boss_priestess_delrissa.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\magisters_terrace\boss_selin_fireheart.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\magisters_terrace\boss_vexallus.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\magisters_terrace\def_magisters_terrace.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\magisters_terrace\instance_magisters_terrace.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Sunwell Plateau"
- >
- <File
- RelativePath="..\scripts\zone\sunwell_plateau\boss_brutallus.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\sunwell_plateau\boss_kalecgos.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\sunwell_plateau\def_sunwell_plateau.h"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\sunwell_plateau\instance_sunwell_plateau.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Blackrock Depths"
- >
- <File
- RelativePath="..\scripts\zone\blackrock_depths\blackrock_depths.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_ambassador_flamelash.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_angerrel.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_anubshiah.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_doomrel.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_doperel.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_emperor_dagran_thaurissan.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_general_angerforge.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_gloomrel.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_gorosh_the_dervish.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_grizzle.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_haterel.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_high_interrogator_gerstahn.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_magmus.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_moira_bronzebeard.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_seethrel.cpp"
- >
- </File>
- <File
- RelativePath="..\scripts\zone\blackrock_depths\boss_vilerel.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Loch Modan"
- >
- <File
- RelativePath="..\scripts\zone\loch_modan\loch_modan.cpp"
- >
- </File>
- </Filter>
- </Filter>
- </Filter>
- <Filter
- Name="Include"
- >
- <File
- RelativePath="..\include\precompiled.cpp"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- UsePrecompiledHeader="1"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|x64"
- >
- <Tool
- Name="VCCLCompilerTool"
- UsePrecompiledHeader="1"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- UsePrecompiledHeader="1"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|x64"
- >
- <Tool
- Name="VCCLCompilerTool"
- UsePrecompiledHeader="1"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\include\precompiled.h"
- >
- </File>
- <File
- RelativePath="..\include\sc_creature.cpp"
- >
- </File>
- <File
- RelativePath="..\include\sc_creature.h"
- >
- </File>
- <File
- RelativePath="..\include\sc_gossip.h"
- >
- </File>
- <File
- RelativePath="..\include\sc_instance.h"
- >
- </File>
- <File
- RelativePath="..\include\sc_item.h"
- >
- </File>
- </Filter>
- <File
- RelativePath="..\config.h"
- >
- </File>
- <File
- RelativePath="..\ScriptMgr.cpp"
- >
- </File>
- <File
- RelativePath="..\ScriptMgr.h"
- >
- </File>
- <File
- RelativePath="..\svn_revision.h"
- >
- </File>
- <File
- RelativePath="..\system.cpp"
- >
- </File>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
+<?xml version="1.0" encoding="windows-1250"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="TrinityScript"
+ ProjectGUID="{4295C8A9-79B7-4354-8064-F05FB9CA0C96}"
+ RootNamespace="ScriptDev2"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ <Platform
+ Name="x64"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="..\..\..\..\bin\$(PlatformName)_$(ConfigurationName)"
+ IntermediateDirectory=".\ScriptDev2__$(PlatformName)_$(ConfigurationName)"
+ ConfigurationType="2"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ CommandLine=""
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\..\..\..\dep\include\;..\..\..\shared\;..\..\..\framework\;..\..\..\game\;..\include\;..\..\..\..\dep\ACE_wrappers"
+ PreprocessorDefinitions="WIN32;_DEBUG;MANGOS_DEBUG;_WINDOWS;_USRDLL;SCRIPT"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderThrough="precompiled.h"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="trinitycore.lib zthread.lib"
+ OutputFile="$(OutDir)/TrinityScript.dll"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="..\..\..\..\win\VC90\zthread__$(PlatformName)_$(ConfigurationName);..\..\..\..\win\VC90\trinitycore__$(PlatformName)_$(ConfigurationName)"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)/MaNGOSScript.pdb"
+ SubSystem="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ ImportLibrary="$(OutDir)/TrinityScript.lib"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="copy ..\trinityscript.conf.dist ..\..\..\..\bin\$(PlatformName)_$(ConfigurationName)\TrinityScript.conf.dist"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|x64"
+ OutputDirectory="..\..\..\..\bin\$(PlatformName)_$(ConfigurationName)"
+ IntermediateDirectory=".\ScriptDev2__$(PlatformName)_$(ConfigurationName)"
+ ConfigurationType="2"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ CommandLine=""
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="3"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\..\..\..\dep\include\;..\..\..\shared\;..\..\..\framework\;..\..\..\game\;..\include\;..\..\..\..\dep\ACE_wrappers"
+ PreprocessorDefinitions="WIN32;_DEBUG;MANGOS_DEBUG;_WINDOWS;_USRDLL;SCRIPT"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderThrough="precompiled.h"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="trinitycore.lib zthread.lib"
+ OutputFile="$(OutDir)/TrinityScript.dll"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="..\..\..\..\win\VC90\zthread__$(PlatformName)_$(ConfigurationName);..\..\..\..\win\VC90\trinitycore__$(PlatformName)_$(ConfigurationName)"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)/MaNGOSScript.pdb"
+ SubSystem="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ ImportLibrary="$(OutDir)/TrinityScript.lib"
+ TargetMachine="17"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="copy ..\trinityscript.conf.dist ..\..\..\..\bin\$(PlatformName)_$(ConfigurationName)\TrinityScript.conf.dist"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="..\..\..\..\bin\$(PlatformName)_$(ConfigurationName)"
+ IntermediateDirectory=".\ScriptDev2__$(PlatformName)_$(ConfigurationName)"
+ ConfigurationType="2"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ CommandLine=""
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalOptions="/MP"
+ AdditionalIncludeDirectories="..\..\..\..\dep\include\;..\..\..\shared\;..\..\..\framework\;..\..\..\game\;..\include\;..\..\..\..\dep\ACE_wrappers"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;SCRIPT"
+ MinimalRebuild="false"
+ RuntimeLibrary="0"
+ EnableEnhancedInstructionSet="1"
+ FloatingPointModel="2"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderThrough="precompiled.h"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="trinitycore.lib zthread.lib"
+ OutputFile="$(OutDir)/TrinityScript.dll"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="..\..\..\..\win\VC90\zthread__$(PlatformName)_$(ConfigurationName);..\..\..\..\win\VC90\trinitycore__$(PlatformName)_$(ConfigurationName)"
+ GenerateDebugInformation="false"
+ SubSystem="2"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ ImportLibrary="$(OutDir)/TrinityScript.lib"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="copy ..\trinityscript.conf.dist ..\..\..\..\bin\$(PlatformName)_$(ConfigurationName)\TrinityScript.conf.dist"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|x64"
+ OutputDirectory="..\..\..\..\bin\$(PlatformName)_$(ConfigurationName)"
+ IntermediateDirectory=".\ScriptDev2__$(PlatformName)_$(ConfigurationName)"
+ ConfigurationType="2"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ CommandLine=""
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="3"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalOptions="/MP"
+ AdditionalIncludeDirectories="..\..\..\..\dep\include\;..\..\..\shared\;..\..\..\framework\;..\..\..\game\;..\include\;..\..\..\..\dep\ACE_wrappers"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;SCRIPT"
+ MinimalRebuild="false"
+ RuntimeLibrary="0"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderThrough="precompiled.h"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="trinitycore.lib zthread.lib"
+ OutputFile="$(OutDir)/TrinityScript.dll"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="..\..\..\..\win\VC90\zthread__$(PlatformName)_$(ConfigurationName);..\..\..\..\win\VC90\trinitycore__$(PlatformName)_$(ConfigurationName)"
+ GenerateDebugInformation="false"
+ SubSystem="2"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ ImportLibrary="$(OutDir)/TrinityScript.lib"
+ TargetMachine="17"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="copy ..\trinityscript.conf.dist ..\..\..\..\bin\$(PlatformName)_$(ConfigurationName)\TrinityScript.conf.dist"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Scripts"
+ >
+ <Filter
+ Name="boss"
+ >
+ <File
+ RelativePath="..\scripts\boss\boss_emeriss.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\boss\boss_lethon.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\boss\boss_taerar.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\boss\boss_ysondre.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="creature"
+ >
+ <File
+ RelativePath="..\scripts\creature\mob_event_ai.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\creature\mob_event_ai.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\creature\mob_generic_creature.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\creature\simple_ai.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\creature\simple_ai.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="guard"
+ >
+ <File
+ RelativePath="..\scripts\guard\guard_ai.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\guard\guard_ai.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\guard\guards.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="honor"
+ >
+ </Filter>
+ <Filter
+ Name="npc"
+ >
+ <File
+ RelativePath="..\scripts\npc\npc_escortAI.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\npc\npc_escortAI.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\npc\npc_innkeeper.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\npc\npc_professions.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\npc\npcs_special.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="servers"
+ >
+ </Filter>
+ <Filter
+ Name="custom"
+ >
+ <File
+ RelativePath="..\scripts\custom\custom_example.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\custom\custom_gossip_codebox.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\custom\test.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="areatrigger"
+ >
+ <File
+ RelativePath="..\scripts\areatrigger\areatrigger_scripts.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="go"
+ >
+ <File
+ RelativePath="..\scripts\go\go_scripts.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="item"
+ >
+ <File
+ RelativePath="..\scripts\item\item_scripts.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\item\item_test.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="zone"
+ >
+ <Filter
+ Name="Alterac Mountains"
+ >
+ <File
+ RelativePath="..\scripts\zone\alterac_mountains\alterac_mountains.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Ashenvale Forest"
+ >
+ </Filter>
+ <Filter
+ Name="Azshara"
+ >
+ <File
+ RelativePath="..\scripts\zone\azshara\azshara.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\azshara\boss_azuregos.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Badlands"
+ >
+ </Filter>
+ <Filter
+ Name="Barrens"
+ >
+ <File
+ RelativePath="..\scripts\zone\barrens\the_barrens.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Blackfathom Depths"
+ >
+ </Filter>
+ <Filter
+ Name="Arathi Highlands"
+ >
+ </Filter>
+ <Filter
+ Name="Deadmines"
+ >
+ <File
+ RelativePath="..\scripts\zone\deadmines\deadmines.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Deadwind Pass"
+ >
+ </Filter>
+ <Filter
+ Name="Desolace"
+ >
+ </Filter>
+ <Filter
+ Name="Dire Maul"
+ >
+ </Filter>
+ <Filter
+ Name="Dun Morogh"
+ >
+ <File
+ RelativePath="..\scripts\zone\dun_morogh\dun_morogh.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Durotar"
+ >
+ </Filter>
+ <Filter
+ Name="Duskwood"
+ >
+ </Filter>
+ <Filter
+ Name="Dustwallow Marsh"
+ >
+ <File
+ RelativePath="..\scripts\zone\dustwallow_marsh\dustwallow_marsh.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Blackwing Lair"
+ >
+ <File
+ RelativePath="..\scripts\zone\blackwing_lair\boss_broodlord_lashlayer.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackwing_lair\boss_chromaggus.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackwing_lair\boss_ebonroc.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackwing_lair\boss_firemaw.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackwing_lair\boss_flamegor.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackwing_lair\boss_nefarian.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackwing_lair\boss_razorgore.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackwing_lair\boss_vaelastrasz.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackwing_lair\boss_victor_nefarius.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackwing_lair\instance_blackwing_lair.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Bloodmyst Isle"
+ >
+ <File
+ RelativePath="..\scripts\zone\bloodmyst_isle\bloodmyst_isle.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Gruul&apos;s Lair"
+ >
+ <File
+ RelativePath="..\scripts\zone\gruuls_lair\boss_gruul.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\gruuls_lair\boss_high_king_maulgar.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\gruuls_lair\def_gruuls_lair.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\gruuls_lair\instance_gruuls_lair.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Burning Steppes"
+ >
+ <File
+ RelativePath="..\scripts\zone\burning_steppes\burning_steppes.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Darkshore"
+ >
+ <File
+ RelativePath="..\scripts\zone\darkshore\darkshore.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Eastern Plaguelands"
+ >
+ <File
+ RelativePath="..\scripts\zone\eastern_plaguelands\eastern_plaguelands.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Moonglade"
+ >
+ <File
+ RelativePath="..\scripts\zone\moonglade\moonglade.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Razorfen Kraul"
+ >
+ </Filter>
+ <Filter
+ Name="Redridge Mountains"
+ >
+ </Filter>
+ <Filter
+ Name="Ruins of Ahn&apos;Qiraj"
+ >
+ <File
+ RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_ayamiss.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_buru.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_kurinnaxx.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_moam.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_ossirian.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_rajaxx.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\ruins_of_ahnqiraj\instance_ruins_of_ahnqiraj.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Swamp of Sorrows"
+ >
+ </Filter>
+ <Filter
+ Name="Scarlet Monastery"
+ >
+ <File
+ RelativePath="..\scripts\zone\scarlet_monastery\boss_arcanist_doan.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scarlet_monastery\boss_azshir_the_sleepless.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scarlet_monastery\boss_bloodmage_thalnos.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scarlet_monastery\boss_herod.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scarlet_monastery\boss_high_inquisitor_fairbanks.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scarlet_monastery\boss_high_inquisitor_whitemane.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scarlet_monastery\boss_houndmaster_loksey.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scarlet_monastery\boss_interrogator_vishas.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scarlet_monastery\boss_scarlet_commander_mograine.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scarlet_monastery\boss_scorn.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Scholomance"
+ >
+ <File
+ RelativePath="..\scripts\zone\scholomance\boss_darkmaster_gandling.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scholomance\boss_death_knight_darkreaver.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scholomance\boss_doctor_theolen_krastinov.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scholomance\boss_illucia_barov.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scholomance\boss_instructor_malicia.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scholomance\boss_jandice_barov.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scholomance\boss_kormok.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scholomance\boss_lord_alexei_barov.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scholomance\boss_lorekeeper_polkelt.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scholomance\boss_ras_frostwhisper.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scholomance\boss_the_ravenian.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scholomance\boss_vectus.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scholomance\def_scholomance.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\scholomance\instance_scholomance.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Searing Gorge"
+ >
+ <File
+ RelativePath="..\scripts\zone\searing_gorge\searing_gorge.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Elwynn Forest"
+ >
+ <File
+ RelativePath="..\scripts\zone\elwynn_forest\elwynn_forest.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Felwood"
+ >
+ <File
+ RelativePath="..\scripts\zone\felwood\felwood.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Feralas"
+ >
+ <File
+ RelativePath="..\scripts\zone\feralas\feralas.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Gnomeregan"
+ >
+ </Filter>
+ <Filter
+ Name="Hillsbrad Foothills"
+ >
+ </Filter>
+ <Filter
+ Name="Hinterlands"
+ >
+ </Filter>
+ <Filter
+ Name="Maraudon"
+ >
+ <File
+ RelativePath="..\scripts\zone\maraudon\boss_celebras_the_cursed.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\maraudon\boss_landslide.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\maraudon\boss_noxxion.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\maraudon\boss_princess_theradras.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Molten Core"
+ >
+ <File
+ RelativePath="..\scripts\zone\molten_core\boss_baron_geddon.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\molten_core\boss_garr.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\molten_core\boss_gehennas.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\molten_core\boss_golemagg.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\molten_core\boss_lucifron.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\molten_core\boss_magmadar.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\molten_core\boss_majordomo_executus.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\molten_core\boss_ragnaros.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\molten_core\boss_shazzrah.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\molten_core\boss_sulfuron_harbinger.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\molten_core\def_molten_core.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\molten_core\instance_molten_core.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\molten_core\molten_core.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Mulgore"
+ >
+ <File
+ RelativePath="..\scripts\zone\mulgore\mulgore.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Naxxramas"
+ >
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_anubrekhan.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_faerlina.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_feugen.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_gluth.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_gothik.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_grobbulus.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_heigan.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_highlord_mograine.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_kelthuzad.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_lady_blaumeux.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_loatheb.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_maexxna.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_noth.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_patchwerk.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_razuvious.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_sapphiron.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_sir_zeliek.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_stalagg.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_thaddius.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\boss_thane_korthazz.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\naxxramas\instance_naxxramas.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Onyxia&apos;s Lair"
+ >
+ <File
+ RelativePath="..\scripts\zone\onyxias_lair\boss_onyxia.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Ragefire Chasm"
+ >
+ </Filter>
+ <Filter
+ Name="Razorfen Downs"
+ >
+ <File
+ RelativePath="..\scripts\zone\razorfen_downs\boss_amnennar_the_coldbringer.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Shadowfang Keep"
+ >
+ <File
+ RelativePath="..\scripts\zone\shadowfang_keep\def_shadowfang_keep.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\shadowfang_keep\instance_shadowfang_keep.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\shadowfang_keep\shadowfang_keep.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Stonetalon Mountains"
+ >
+ <File
+ RelativePath="..\scripts\zone\stonetalon_mountains\stonetalon_mountains.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Stranglethorn Vale"
+ >
+ <File
+ RelativePath="..\scripts\zone\stranglethorn_vale\stranglethorn_vale.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Stratholme"
+ >
+ <File
+ RelativePath="..\scripts\zone\stratholme\boss_baron_rivendare.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\stratholme\boss_baroness_anastari.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\stratholme\boss_cannon_master_willey.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\stratholme\boss_dathrohan_balnazzar.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\stratholme\boss_magistrate_barthilas.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\stratholme\boss_maleki_the_pallid.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\stratholme\boss_nerubenkan.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\stratholme\boss_order_of_silver_hand.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\stratholme\boss_postmaster_malown.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\stratholme\boss_ramstein_the_gorger.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\stratholme\boss_timmy_the_cruel.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\stratholme\def_stratholme.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\stratholme\instance_stratholme.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\stratholme\stratholme.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Sunken Temple"
+ >
+ </Filter>
+ <Filter
+ Name="Tanaris"
+ >
+ <File
+ RelativePath="..\scripts\zone\tanaris\tanaris.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Teldrassil"
+ >
+ </Filter>
+ <Filter
+ Name="Temple of Ahn&apos;Qiraj"
+ >
+ <File
+ RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_bug_trio.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_cthun.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_fankriss.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_huhuran.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_ouro.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_sartura.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_skeram.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_twinemperors.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_viscidus.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\temple_of_ahnqiraj\def_temple_of_ahnqiraj.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\temple_of_ahnqiraj\instance_temple_of_ahnqiraj.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\temple_of_ahnqiraj\mob_anubisath_sentinel.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Thousand Needles"
+ >
+ </Filter>
+ <Filter
+ Name="Silithus"
+ >
+ <File
+ RelativePath="..\scripts\zone\silithus\silithus.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Silverpine Forest"
+ >
+ <File
+ RelativePath="..\scripts\zone\silverpine_forest\silverpine_forest.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Stockade"
+ >
+ </Filter>
+ <Filter
+ Name="Tirisfal Glades"
+ >
+ <File
+ RelativePath="..\scripts\zone\tirisfal_glades\tirisfal_glades.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Wailing Caverns"
+ >
+ <File
+ RelativePath="..\scripts\zone\wailing_caverns\instance_wailing_caverns.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Western Plaguelands"
+ >
+ <File
+ RelativePath="..\scripts\zone\western_plaguelands\western_plaguelands.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Westfall"
+ >
+ </Filter>
+ <Filter
+ Name="Wetlands"
+ >
+ </Filter>
+ <Filter
+ Name="Winterspring"
+ >
+ <File
+ RelativePath="..\scripts\zone\winterspring\winterspring.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Zul&apos;Farrak"
+ >
+ <File
+ RelativePath="..\scripts\zone\zulfarrak\zulfarrak.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Zul&apos;Gurub"
+ >
+ <File
+ RelativePath="..\scripts\zone\zulgurub\boss_arlokk.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulgurub\boss_gahzranka.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulgurub\boss_grilek.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulgurub\boss_hakkar.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulgurub\boss_hazzarah.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulgurub\boss_jeklik.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulgurub\boss_jindo.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulgurub\boss_mandokir.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulgurub\boss_marli.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulgurub\boss_renataki.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulgurub\boss_thekal.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulgurub\boss_venoxis.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulgurub\boss_wushoolay.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulgurub\def_zulgurub.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulgurub\instance_zulgurub.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Uldaman"
+ >
+ <File
+ RelativePath="..\scripts\zone\uldaman\boss_ironaya.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\uldaman\uldaman.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Un&apos;Goro Crater"
+ >
+ </Filter>
+ <Filter
+ Name="Aunchindoun"
+ >
+ <Filter
+ Name="Auchenai Crypts"
+ >
+ <File
+ RelativePath="..\scripts\zone\aunchindoun\auchenai_crypts\boss_exarch_maladaar.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Mana Tombs"
+ >
+ <File
+ RelativePath="..\scripts\zone\aunchindoun\mana_tombs\boss_nexusprince_shaffar.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\aunchindoun\mana_tombs\boss_pandemonius.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Sethekk Halls"
+ >
+ <File
+ RelativePath="..\scripts\zone\aunchindoun\sethekk_halls\boss_darkweaver_syth.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\aunchindoun\sethekk_halls\boss_tailonking_ikiss.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\aunchindoun\sethekk_halls\def_sethekk_halls.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\aunchindoun\sethekk_halls\instance_sethekk_halls.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Shadow Labyrinth"
+ >
+ <File
+ RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\boss_ambassador_hellmaw.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\boss_blackheart_the_inciter.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\boss_grandmaster_vorpil.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\boss_murmur.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\def_shadow_labyrinth.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\instance_shadow_labyrinth.cpp"
+ >
+ </File>
+ </Filter>
+ </Filter>
+ <Filter
+ Name="Azuremyst Isle"
+ >
+ <File
+ RelativePath="..\scripts\zone\azuremyst_isle\azuremyst_isle.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Black Temple"
+ >
+ <File
+ RelativePath="..\scripts\zone\black_temple\black_temple.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\black_temple\boss_bloodboil.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\black_temple\boss_illidan.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\black_temple\boss_mother_shahraz.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\black_temple\boss_reliquary_of_souls.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\black_temple\boss_shade_of_akama.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\black_temple\boss_supremus.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\black_temple\boss_teron_gorefiend.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\black_temple\boss_warlord_najentus.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\black_temple\def_black_temple.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\black_temple\illidari_council.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\black_temple\instance_black_temple.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Eversong Woods"
+ >
+ <File
+ RelativePath="..\scripts\zone\eversong_woods\eversong_woods.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Ghostlands"
+ >
+ <File
+ RelativePath="..\scripts\zone\ghostlands\ghostlands.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Blade&apos;s Edge Mountains"
+ >
+ <File
+ RelativePath="..\scripts\zone\blades_edge_mountains\blades_edge_mountains.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Blasted Lands"
+ >
+ <File
+ RelativePath="..\scripts\zone\blasted_lands\blasted_lands.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blasted_lands\boss_kruul.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Hellfire Citadel"
+ >
+ <Filter
+ Name="Blood Furnace"
+ >
+ <File
+ RelativePath="..\scripts\zone\hellfire_citadel\blood_furnace\boss_broggok.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\hellfire_citadel\blood_furnace\boss_kelidan_the_breaker.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\hellfire_citadel\blood_furnace\boss_the_maker.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Magtheridon&apos;s lair"
+ >
+ <File
+ RelativePath="..\scripts\zone\hellfire_citadel\magtheridons_lair\boss_magtheridon.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\hellfire_citadel\magtheridons_lair\def_magtheridons_lair.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\hellfire_citadel\magtheridons_lair\instance_magtheridons_lair.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Hellfire Ramparts"
+ >
+ <File
+ RelativePath="..\scripts\zone\hellfire_citadel\hellfire_ramparts\boss_omor_the_unscarred.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\hellfire_citadel\hellfire_ramparts\boss_watchkeeper_gargolmar.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Shattered Halls"
+ >
+ <File
+ RelativePath="..\scripts\zone\hellfire_citadel\shattered_halls\boss_nethekurse.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\hellfire_citadel\shattered_halls\boss_warbringer_omrogg.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\hellfire_citadel\shattered_halls\def_shattered_halls.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\hellfire_citadel\shattered_halls\instance_shattered_halls.cpp"
+ >
+ </File>
+ </Filter>
+ </Filter>
+ <Filter
+ Name="Hellfire Peninsula"
+ >
+ <File
+ RelativePath="..\scripts\zone\hellfire_peninsula\boss_doomlord_kazzak.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\hellfire_peninsula\hellfire_peninsula.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Karazhan"
+ >
+ <File
+ RelativePath="..\scripts\zone\karazhan\boss_curator.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\karazhan\boss_maiden_of_virtue.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\karazhan\boss_midnight.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\karazhan\boss_moroes.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\karazhan\boss_netherspite.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\karazhan\boss_nightbane.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\karazhan\boss_prince_malchezaar.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\karazhan\boss_shade_of_aran.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\karazhan\boss_terestian_illhoof.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\karazhan\bosses_opera.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\karazhan\def_karazhan.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\karazhan\instance_karazhan.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\karazhan\karazhan.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Nagrand"
+ >
+ <File
+ RelativePath="..\scripts\zone\nagrand\nagrand.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Netherstorm"
+ >
+ <File
+ RelativePath="..\scripts\zone\netherstorm\netherstorm.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Shadowmoon Valley"
+ >
+ <File
+ RelativePath="..\scripts\zone\shadowmoon_valley\boss_doomwalker.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\shadowmoon_valley\shadowmoon_valley.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Tempest Keep"
+ >
+ <Filter
+ Name="Arcatraz"
+ >
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\arcatraz\arcatraz.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\arcatraz\boss_harbinger_skyriss.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\arcatraz\def_arcatraz.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\arcatraz\instance_arcatraz.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Botanica"
+ >
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\botanica\boss_high_botanist_freywinn.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\botanica\boss_laj.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\botanica\boss_warp_splinter.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="The Eye"
+ >
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\the_eye\boss_astromancer.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\the_eye\boss_kaelthas.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\the_eye\boss_void_reaver.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\the_eye\def_the_eye.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\the_eye\instance_the_eye.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\the_eye\the_eye.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="The Mechanar"
+ >
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\the_mechanar\boss_gatewatcher_gyrokill.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\the_mechanar\boss_gatewatcher_ironhand.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\tempest_keep\the_mechanar\boss_nethermancer_sepethrea.cpp"
+ >
+ </File>
+ </Filter>
+ </Filter>
+ <Filter
+ Name="Terokkar Forest"
+ >
+ <File
+ RelativePath="..\scripts\zone\terokkar_forest\terokkar_forest.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Zangarmarsh"
+ >
+ <File
+ RelativePath="..\scripts\zone\zangarmarsh\zangarmarsh.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Blackrock Spire"
+ >
+ <File
+ RelativePath="..\scripts\zone\blackrock_spire\boss_drakkisath.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_spire\boss_gyth.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_spire\boss_halycon.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_spire\boss_highlord_omokk.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_spire\boss_mother_smolderweb.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_spire\boss_overlord_wyrmthalak.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_spire\boss_pyroguard_emberseer.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_spire\boss_quartermaster_zigris.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_spire\boss_rend_blackhand.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_spire\boss_shadow_hunter_voshgajin.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_spire\boss_the_beast.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_spire\boss_warmaster_voone.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Stormwind City"
+ >
+ <File
+ RelativePath="..\scripts\zone\stormwind\stormwind_city.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Coilfang Resevoir"
+ >
+ <Filter
+ Name="Serpent Shrine Cavern"
+ >
+ <File
+ RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\boss_fathomlord_karathress.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\boss_hydross_the_unstable.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\boss_lady_vashj.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\boss_leotheras_the_blind.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\boss_morogrim_tidewalker.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\def_serpent_shrine.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\instance_serpent_shrine.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Slave Pens"
+ >
+ </Filter>
+ <Filter
+ Name="Steam Vault"
+ >
+ <File
+ RelativePath="..\scripts\zone\coilfang_resevoir\steam_vault\boss_hydromancer_thespia.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\coilfang_resevoir\steam_vault\boss_mekgineer_steamrigger.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\coilfang_resevoir\steam_vault\boss_warlord_kalithresh.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\coilfang_resevoir\steam_vault\def_steam_vault.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\coilfang_resevoir\steam_vault\instance_steam_vault.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Underbog"
+ >
+ <File
+ RelativePath="..\scripts\zone\coilfang_resevoir\underbog\boss_hungarfen.cpp"
+ >
+ </File>
+ </Filter>
+ </Filter>
+ <Filter
+ Name="Caverns of Time"
+ >
+ <Filter
+ Name="The Dark Portal"
+ >
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\dark_portal\boss_aeonus.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\dark_portal\boss_chrono_lord_deja.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\dark_portal\boss_temporus.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Battle for Mt. Hyjal"
+ >
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\hyjal\boss_archimonde.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\hyjal\def_hyjal.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\hyjal\hyjal.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\hyjal\hyjalAI.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\hyjal\hyjalAI.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\hyjal\instance_hyjal.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Old Hillsbrad"
+ >
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\boss_captain_skarloc.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\boss_epoch_hunter.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\boss_leutenant_drake.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\def_old_hillsbrad.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\instance_old_hillsbrad.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\old_hillsbrad.cpp"
+ >
+ </File>
+ </Filter>
+ </Filter>
+ <Filter
+ Name="Silvermoon City"
+ >
+ <File
+ RelativePath="..\scripts\zone\silvermoon\silvermoon_city.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Darnassus"
+ >
+ </Filter>
+ <Filter
+ Name="Exodar"
+ >
+ </Filter>
+ <Filter
+ Name="Iron Forge"
+ >
+ <File
+ RelativePath="..\scripts\zone\ironforge\ironforge.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Orgrimmar"
+ >
+ <File
+ RelativePath="..\scripts\zone\orgrimmar\orgrimmar.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Shattrath City"
+ >
+ <File
+ RelativePath="..\scripts\zone\shattrath\shattrath_city.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Thunder Bluff"
+ >
+ <File
+ RelativePath="..\scripts\zone\thunder_bluff\thunder_bluff.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Undercity"
+ >
+ <File
+ RelativePath="..\scripts\zone\undercity\undercity.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Zul&apos;Aman"
+ >
+ <File
+ RelativePath="..\scripts\zone\zulaman\boss_janalai.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulaman\boss_nalorakk.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulaman\def_zulaman.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulaman\instance_zulaman.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\zulaman\zulaman.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Isle of Quel&apos;Danas"
+ >
+ <File
+ RelativePath="..\scripts\zone\isle_of_queldanas\isle_of_queldanas.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Magister&apos;s Terrace"
+ >
+ <File
+ RelativePath="..\scripts\zone\magisters_terrace\boss_felblood_kaelthas.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\magisters_terrace\boss_priestess_delrissa.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\magisters_terrace\boss_selin_fireheart.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\magisters_terrace\boss_vexallus.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\magisters_terrace\def_magisters_terrace.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\magisters_terrace\instance_magisters_terrace.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Sunwell Plateau"
+ >
+ <File
+ RelativePath="..\scripts\zone\sunwell_plateau\boss_brutallus.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\sunwell_plateau\boss_kalecgos.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\sunwell_plateau\def_sunwell_plateau.h"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\sunwell_plateau\instance_sunwell_plateau.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Blackrock Depths"
+ >
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\blackrock_depths.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_ambassador_flamelash.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_angerrel.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_anubshiah.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_doomrel.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_doperel.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_emperor_dagran_thaurissan.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_general_angerforge.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_gloomrel.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_gorosh_the_dervish.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_grizzle.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_haterel.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_high_interrogator_gerstahn.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_magmus.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_moira_bronzebeard.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_seethrel.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\scripts\zone\blackrock_depths\boss_vilerel.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Loch Modan"
+ >
+ <File
+ RelativePath="..\scripts\zone\loch_modan\loch_modan.cpp"
+ >
+ </File>
+ </Filter>
+ </Filter>
+ </Filter>
+ <Filter
+ Name="Include"
+ >
+ <File
+ RelativePath="..\include\precompiled.cpp"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\include\precompiled.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\sc_creature.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\include\sc_creature.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\sc_gossip.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\sc_instance.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\sc_item.h"
+ >
+ </File>
+ </Filter>
+ <File
+ RelativePath="..\config.h"
+ >
+ </File>
+ <File
+ RelativePath="..\ScriptMgr.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\ScriptMgr.h"
+ >
+ </File>
+ <File
+ RelativePath="..\svn_revision.h"
+ >
+ </File>
+ <File
+ RelativePath="..\system.cpp"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/bindings/scripts/docs/EventAI.txt b/src/bindings/scripts/docs/EventAI.txt
index f1f5a1e9f7f..1549fe74f1c 100644
--- a/src/bindings/scripts/docs/EventAI.txt
+++ b/src/bindings/scripts/docs/EventAI.txt
@@ -1,702 +1,702 @@
-=========================================
-Event AI documentation
-=========================================
-
-Scriptdev2 Revision 220 introduces a new database defined AI named EventAI.
-This system allows users to create new creature scripts entierly within the Database.
-ScriptName must still be set to "mob_eventai" within the MaNGOS database creature_template.scriptname field.
-
-=========================================
-Basic Structure of EventAI
-=========================================
-Event AI follows a basic if (Event) then do {Action} format.
-Below is a the list of current fields within the Eventai_scripts table.
-
-(Field_Name Discription)
-id This value is mearly an incrementing counter of the current Event number. Required for sql queries.
-creature_id Creature id which this event should occur on.
-
-event_type Type of event (See Event Types below)
-event_inverse_phase_mask Mask which phases this event should NOT trigger in*
-event_chance Percent chance of this event occuring (1 - 100)
-event_flags Event flags such as if the event is repeatable (see below)
-event_param1 Variable for event (dependant on Event type)
-event_param2
-event_param3
-event_param4
-
-action1_type First Type of Action to take when event occurs (See Action Types below)
-action1_param1 Variables used for Action1 (dependant on Action type)
-action1_param2
-action1_param3
-
-action2_type Second Type of Action to take when event occurs (See Action Types below)
-action2_param1 Variables used for Action2 (dependant on Action type)
-action2_param2
-action2_param3
-
-action3_type Third Type of Action to take when event occurs (See Action Types below)
-action3_param1 Variables used for Action3 (dependant on Action type)
-action3_param2
-action3_param3
-
-All params are signed 32 bit values (+/- 2147483647). If param specifies time then time is in milliseconds. If param specifies percentage then percentages are value/100 (ex: if param = 500 then that means 500%, -50 = -50%)
-
-*Phase mask is a bit mask of which phases this event should not trigger in. Example: Phase mask value of 12 (1100) would mean that this event would trigger 0, 1 and all other phases except for 2 and 3 (0 counts as the first phase).
-
-=========================================
-Event Types
-=========================================
-Below is the list of current Event types that EventAI can handle.
-Each event type has its own specific interpretation of the params that accompany it.
-Params are always read from Param1, then Param2, then Param3.
-Events will not repeat until the creature exits combat unless EFLAG_REPEATABLE is set. Some events such as EVENT_T_AGGRO, EVENT_T_DEATH, EVENT_T_SPAWNED, and EVENT_T_EVADE cannot repeat.
-
-# Internal Name Pamarm usage Description
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-0 EVENT_T_TIMER InitialMin, InitialMax, RepeatMin, RepeatMax Expires first between (Param1) and (Param2) and then between every (Param3) and (Param4). but only in combat.
-1 EVENT_T_TIMER_OOC InitialMin, InitialMax, RepeatMin, RepeatMax Expires first between (Param1) and (Param2) and then between every (Param3) and (Param4). but only out of combat.
-2 EVENT_T_HP HPMax%, HPMin%, RepeatMin, RepeatMax Expires when HP is between (Param1) and (Param2). Will repeat every (Param3) and (Param4).
-3 EVENT_T_MANA ManaMax%,ManaMin% RepeatMin, RepeatMax Expires once Mana% is between (Param1) and (Param2). Will repeat every (Param3) and (Param4).
-4 EVENT_T_AGGRO NONE Expires upon initial aggro (does not repeat).
-5 EVENT_T_KILL RepeatMin, RepeatMax Expires upon killing a player. Will repeat between every (Param1) and (Param2).
-6 EVENT_T_DEATH NONE Expires upon Death of the Creature.
-7 EVENT_T_EVADE NONE Expires upon creature EnterEvadeMode().
-8 EVENT_T_SPELLHIT SpellID, School, RepeatMin, RepeatMax Expires upon Spell hit. If (param1) is set will only expire on that spell. If (param2) will only expire on spells of that school (-1 for all). Will repeat every (Param3) and (Param4) .
-9 EVENT_T_RANGE MinDist, MaxDist, RepeatMin, RepeatMax Expires when the highest threat target distance is greater than (Param1) and less than (Param2). Will repeat every (Param3) and (Param4) .
-10 EVENT_T_OOC_LOS NoHostile, NoFriendly, RepeatMin, RepeatMax Expires when a Player moves within visible distance to creature. Does not expire for Hostile Players if (Param1) is not 0. Does not expire for Friendly Players if (Param2) is not 0. Will repeat every (Param3) and (Param4) . Does not expire for creatures or pet or when the creature is in combat.
-11 EVENT_T_SPAWNED NONE Expires at initial spawn and at creature respawn (useful for setting ranged movement type)
-12 EVENT_T_TARGET_HP HPMax%, HPMin%, RepeatMin, RepeatMax Expires when Current Target's HP is between (Param1) and (Param2). Will repeat every (Param3) and (Param4) .
-13 EVENT_T_TARGET_CASTING RepeatMin, RepeatatMax Expires when the current target is casting a spell. Will repeat every (Param1) and (Param2) .
-14 EVENT_T_FRIENDLY_HP HPDeficit, Radius, RepeatMin, RepeatMax Expires when a friendly unit in radius has at least (param1) hp missing. Will repeat every (Param3) and (Param4) .
-15 EVENT_T_FRIENDLY_IS_CC DispelType, Radius, RepeatMin, RepeatMax Expires when a friendly unit is Crowd controlled within the given radius (param2). Will repeat every (Param3) and (Param4) .
-16 EVENT_T_MISSING_BUFF SpellId, Radius, RepeatMin, RepeatMax Expires when a friendly unit is missing aura's given by spell (param1) within radius (param2). Will repeat every (Param3) and (Param4) .
-17 EVENT_T_SUMMONED_UNIT CreatureId, RepeatMin, RepeatMax Expires after creature with entry = (param1) is spawned or for all spawns if param1 = 0. Will repeat every (Param2) and (Param3) .
-
-=========================================
-Action Types
-=========================================
-Below is the list of current Action types that EventAI can handle.
-Each event type has its own specific interpretation of the params that accompany it.
-Params are always read from Param1, then Param2, then Param3.
-
-(# Internal Name Param usage Discription)
-0 ACTION_T_NONE No Action Does Nothing
-1 ACTION_T_SAY TextId Says Text
-2 ACTION_T_YELL TextId Yells Text
-3 ACTION_T_TEXTEMOTE TextId Text Emotes Text
-4 ACTION_T_SOUND SoundId Plays Sound
-5 ACTION_T_EMOTE EmoteId Does emote
-6 ACTION_T_RANDOM_SAY TextId1, TextId2, TextId3 Says random text between 3 params*
-7 ACTION_T_RANDOM_YELL TextId1, TextId2, TextId3 Yells random text between 3 params*
-8 ACTION_T_RANDOM_TEXTEMOTE TextId1, TextId2, TextId3 Text Emotes random text between 3 params*
-9 ACTION_T_RANDOM_SOUND SoundId1, SoundId2, SoundId3 Plays random sound between 3 params*
-10 ACTION_T_RANDOM_EMOTE EmoteId1, EmoteId2, EmoteId3 Emotes random emote between 3 params
-11 ACTION_T_CAST SpellId, Target, CastFlags Casts spell (param1) on target type (param2). Uses Cast Flags (specified below target types)
-12 ACTION_T_SUMMON CreatureID, Target, Duration Summons creature (param1) to attack target (param2) for (param3) duration. Spawns on top of current creature.
-13 ACTION_T_THREAT_SINGLE_PCT Threat%, Target Modifies threat by (param1) on target type (param2)
-14 ACTION_T_THREAT_ALL_PCT Threat% Modifies threat by (param1) on all targets (using -100% on all will result in full aggro dump)
-15 ACTION_T_QUEST_EVENT QuestID, Target Calls AreaExploredOrEventHappens with (param1) for target type (Param2)
-16 ACTION_T_QUEST_CASTCREATUREGO CreatureID, SpellId, Target Sends CastCreatureOrGo for CreatureId (param1) with SpellId (param2) for target (param3)
-17 ACTION_T_SET_UNIT_FIELD Field_Number, Value, Target Sets Unit Field (param1) to Value (param2) on target type (param3)
-18 ACTION_T_SET_UNIT_FLAG Flags, Target Sets flag (flags can be binary OR together to modify multiple flags at once) on for Target type (param2)
-19 ACTION_T_REMOVE_UNIT_FLAG Flags, Target Removes flag (flags can be binary OR together to modify multiple flags at once) on for Target type (param2)
-20 ACTION_T_AUTO_ATTACK AllowAutoAttack 0 = stop melee attack, anything else means continue attacking/allow melee attacking
-21 ACTION_T_COMBAT_MOVEMENT AllowCombatMovement 0 = stop combat based movement, anything else continue/allow combat based movement (targeted movement generator)
-22 ACTION_T_SET_PHASE Phase Sets the current phase to (param1)
-23 ACTION_T_INC_PHASE Value Increments the phase by (param1). May be negative to decrement phase but should not be 0.
-24 ACTION_T_EVADE No Params Forces the creature to evade. Wiping all threat and dropping combat.
-25 ACTION_T_FLEE No Params Causes the .creature to flee. Please use this action instead of directly casting this spell so we may change this when a more correct approach is found.
-26 ACTION_T_QUEST_EVENT_ALL QuestId Calls GroupEventHappens with (param1). Only used if it's _expected_ event should complete for all players in current party
-27 ACTION_T_CASTCREATUREGO_ALL QuestId, SpellId Calls CastedCreatureOrGo for all players on the threat list with QuestID(Param1) and SpellId(Param2)
-28 ACTION_T_REMOVEAURASFROMSPELL Target, Spellid Removes all auras on Target caused by Spellid
-29 ACTION_T_RANGED_MOVEMENT Distance, Angle Changes the movement generator type to a ranged type. Note: Default melee type can still be done with this. Specify 0 angle and 0 distance.
-30 ACTION_T_RANDOM_PHASE PhaseId1, PhaseId2, PhaseId3 Sets the phase to the id between 3 params*
-31 ACTION_T_RANDOM_PHASE_RANGE PhaseMin, PhaseMax Sets the phase to a random id (Phase = PhaseMin + rnd % PhaseMin-PhaseMax). PhaseMax must be greater than PhaseMin.
-32 ACTION_T_SUMMON CreatureID, Target, SummonID Summons creature (param1) to attack target (param2) at location specified by EventAI_Summons (param3).
-33 ACTION_T_KILLED_MONSTER CreatureID, Target Calls KilledMonster (param1) for target of type (param2)
-34 ACTION_T_SET_INST_DATA Field, Data Calls ScriptedInstance::SetData with field (param1) and data (param2)
-35 ACTION_T_SET_INST_DATA64 Field, Target Calls ScriptedInstance::SetData64 with field (param1) and data (param2) target's GUID.
-36 ACTION_T_UPDATE_TEMPLATE TemplateId, Team Changes the creature to a new creature template of (param1) with team = Alliance if (param2) = false or Horde if (param2) = true
-37 ACTION_T_DIE No Params Kills the creature
-38 ACTION_T_ZONE_COMBAT_PULSE No Params Places all players within the instance into combat with the creature. Only works in combat and only works inside of instances.
-
-* = Use -1 to specify that if this param is picked to do nothing. Random is constant between actions within an event. So if you have a random Yell and a random Sound they will match up (ex: param2 with param2)
-
-=========================================
-Event Types
-=========================================
-Note:
-COMBAT ONLY - Means that this event will only trigger durring combat.
-OUT OF COMBAT ONLY - Means that this event will only trigger while out of combat.
-BOTH - This event can trigger both in and out of combat.
-
-Events that do not have lables on them are events that are directly involved with the in and out of combat state.
-
-------------------
-0 = EVENT_T_TIMER:
-------------------
-Parameter 1: InitialMin - Minumum Time used to calculate Random Initial Expire
-Parameter 2: InitialMax - Maximum Time used to calculate Random Initial Expire
-Parameter 3: RepeatMin - Minimum Time used to calculate Random Repeat Expire
-Parameter 4: RepeatMax - Maximum Time used to calculate Random Repeat Expire
-
-COMBAT ONLY! - Expires first between (Param1) and (Param2) and then between every (Param3) and (Param4) from then on.
-This is commonly used for spells that repeat cast during combat (Simulate Spell Cooldown).
-
-----------------------
-1 = EVENT_T_TIMER_OOC:
-----------------------
-Parameter 1: InitialMin - Minumum Time used to calculate Random Initial Expire
-Parameter 2: InitialMax - Maximum Time used to calculate Random Initial Expire
-Parameter 3: RepeatMin - Minimum Time used to calculate Random Repeat Expire
-Parameter 4: RepeatMax - Maximum Time used to calculate Random Repeat Expire
-
-OUT OF COMBAT ONLY! - Expires first between (Param1) and (Param2) and then between every (Param3) and (Param4) from then on.
-This is commonly used for events that occur and repeat outside of combat.
-
----------------
-2 = EVENT_T_HP:
----------------
-Parameter 1: HPMax% - Maximum HP% That this Event will Expire
-Parameter 2: HPMin% - Minimum HP% That this Event will Expire
-Parameter 3: RepeatMin - Minimum Time used to calculate Random Repeat Expire
-Parameter 4: RepeatMax - Maximum Time used to calculate Random Repeat Expire
-
-BOTH - Expires when HP is between (Param1) and (Param2). Will repeat every (Param3) and (Param4).
-This is commonly used for events that trigger at a specific HP% (Such as Heal/Enrage Spells or NPC's that Flee).
-
------------------
-3 = EVENT_T_MANA:
------------------
-Parameter 1: ManaMax% - Maximum Mana% That this Event will Expire
-Parameter 2: ManaMin% - Minimum Mana% That this Event will Expire
-Parameter 3: RepeatMin - Minimum Time used to calculate Random Repeat Expire
-Parameter 4: RepeatMax - Maximum Time used to calculate Random Repeat Expire
-
-BOTH - Expires once Mana% is between (Param1) and (Param2). Will repeat every (Param3) and (Param4).
-This is commonly used for events where an NPC low on Mana will do something (Such as stop casting spells and switch to melee).
-
-------------------
-4 = EVENT_T_AGGRO:
-------------------
-This Event Expires upon initial aggro (does not repeat).
-
------------------
-5 = EVENT_T_KILL:
------------------
-Parameter 1: RepeatMin - Minimum Time used to calculate Random Repeat Expire
-Parameter 2: RepeatMax - Maximum Time used to calculate Random Repeat Expire
-
-COMBAT ONLY! - Expires upon killing a player. Will repeat every (Param1) and (Param2).
-This Event Expires upon killing a player. It is commonly used for NPC's who yell or do something after killing a player.
-
-------------------
-6 = EVENT_T_DEATH:
-------------------
-This Event Expires upon Death of the Scripted NPC.
-This is commonly used for NPC's who have a yell on death or cast some kind if summon spell when they die.
-
-------------------
-7 = EVENT_T_EVADE:
-------------------
-This Event Expires upon the creature EnterEvadeMode().
-This is commonly used for NPC's who use phases, allows you to reset their phase to 0 upon evade to prevent possible strange behavior.
-
----------------------
-8 = EVENT_T_SPELLHIT:
----------------------
-Parameter 1: SpellID - The Spell ID that will trigger the event to occur (NOTE: If you use Spell School as the trigger set this value to 0)
-Parameter 2: School - Spell School to trigger the event (NOTE: If you use a SpellID then set this value to -1) - *See Below for Spell School Bitmask Values*
-Parameter 3: RepeatMin - Minimum Time used to calculate Random Repeat Expire
-Parameter 4: RepeatMax - Maximum Time used to calculate Random Repeat Expire
-
-BOTH - Expires upon Spell hit. If (param1) is set will only expire on that spell. If (param2) will only expire on spells of that school. Will repeat every (Param3) and (Param4).
-This Event is commonly used for NPC's who can do special things when you cast a spell (Or specific spell) on them.
-
-------------------
-9 = EVENT_T_RANGE:
-------------------
-Parameter 1: MinDist - This Distance is the Minimum Distance between the NPC and it's target to allow this Event to Expire
-Parameter 2: MaxDist - This Distance is the Maximum Distance between the NPC and it's target to allow this Event to Expire
-Parameter 3: RepeatMin - Minimum Time used to calculate Random Repeat Expire
-Parameter 4: RepeatMax - Maximum Time used to calculate Random Repeat Expire
-
-COMBAT ONLY! - Expires when the highest threat target distance is greater than (Param1) and less than (Param2). Will repeat every (Param3) and (Param4).
-This Event is commonly used for NPC's who have Ranged Combat and will Throw/Shoot between a certian distance.
-
----------------------
-10 = EVENT_T_OOC_LOS:
----------------------
-Parameter 1: NoHostile - This Value is to Prevent this Action from Expiring When Caused by a Player/Creature Hostile to them (0 = Prevent Event from Expiring, 1 = Allow Event to Expire)
-Parameter 2: NoFriendly - This Value is to Prevent this Action from Expiring When Caused by a Player/Creature Friendly to them (0 = Prevent Event from Expiring, 1 = Allow Event to Expire)
-Parameter 3: RepeatMin - Minimum Time used to calculate Random Repeat Expire
-Parameter 4: RepeatMax - Maximum Time used to calculate Random Repeat Expire
-
-OUT OF COMBAT ONLY! - Expires when a Player moves within visible distance to the NPC. Does not expire for Hostile Players if (Param1) is not 0. Does not expire for Friendly Players if (Param2) is not 0. Will repeat every (Param3) and (Param4). Does not expire for creatures or pets when they are in combat.
-This Event is commonly used for NPC's who Do Something or Say Something when you walk past them Out of Combat.
-
----------------------
-11 = EVENT_T_SPAWNED:
----------------------
-Expires at initial spawn and at creature respawn.
-This Event is commonly used for setting ranged movement type or Summoning a Pet on Spawn
-
------------------------
-12 = EVENT_T_TARGET_HP:
------------------------
-Parameter 1: HPMax% - Maximum HP% That this Event will Expire
-Parameter 2: HPMin% - Minimum HP% That this Event will Expire
-Parameter 3: RepeatMin - Minimum Time used to calculate Random Repeat Expire
-Parameter 4: RepeatMax - Maximum Time used to calculate Random Repeat Expire
-
-COMBAT ONLY! - Expires when Current NPC's Target's HP is between (Param1) and (Param2). Will repeat every (Param3) and (Param4).
-This Event is commonly used for NPC's who have a special ability (Like Execute) that only casts when a Player HP is low.
-
-----------------------------
-13 = EVENT_T_TARGET_CASTING:
-----------------------------
-Parameter 1: RepeatMin - Minimum Time used to calculate Random Repeat Expire
-Parameter 2: RepeatMax - Maximum Time used to calculate Random Repeat Expire
-
-COMBAT ONLY! - Expires when the current target is casting a spell. Will repeat every (Param1) and (Param2).
-This event is commonly used for NPC's who will cast a counter spell when their target starts to cast a spell.
-
--------------------------
-14 = EVENT_T_FRIENDLY_HP:
--------------------------
-Parameter 1: HPDeficit - This is the Amount of HP Missing from Full HP to trigger this event (You would need to calculate the amount of HP the event happens and subtract that from Full HP Value to get this number)
-Parameter 2: Radius - This is the Range in Yards the NPC will scan for nearby Friendlies (Faction is Friendly To) for the missing amount of HP in Param1.
-Parameter 3: RepeatMin - Minimum Time used to calculate Random Repeat Expire
-Parameter 4: RepeatMax - Maximum Time used to calculate Random Repeat Expire
-
-COMBAT ONLY! - Expires when a friendly unit in radius(param2) has at least (param1) hp missing. Will repeat every (Param3) and (Param4).
-This is commonly used when an NPC in Combat will heal a nearby Friendly NPC in Combat with a Heal/Renew Spell.
-
-----------------------------
-15 = EVENT_T_FRIENDLY_IS_CC:
-----------------------------
-Parameter 1: DispelType - Dispel Type to trigger the event - *See Below for Dispel Bitmask Values*
-Parameter 2: Radius - This is the Range in Yards the NPC will scan for nearby Friendlies being Crowd Controlled
-Parameter 3: RepeatMin - Minimum Time used to calculate Random Repeat Expire
-Parameter 4: RepeatMax - Maximum Time used to calculate Random Repeat Expire
-
-COMBAT ONLY! - Expires when a friendly unit is Crowd controlled within the given radius (param2). Will repeat every (Param3) and (Param4).
-This is commonly used for NPC's who can come to the resule of other Friendly NPC's if being Crowd Controlled
-
---------------------------
-16 = EVENT_T_MISSING_BUFF:
---------------------------
-Parameter 1: SpellId - This is the SpellID That the Aura Check will look for (If it is missing this Aura)
-Parameter 2: Radius - This is the Range in Yards the NPC will scan for nearby Friendlies (Faction is Friendly To) for the missing Aura.
-Parameter 3: RepeatMin - Minimum Time used to calculate Random Repeat Expire
-Parameter 4: RepeatMax - Maximum Time used to calculate Random Repeat Expire
-
-BOTH - Expires when a friendly unit is missing aura's given by spell (param1) within radius (param2). Will repeat every (Param3) and (Param4).
-This is commonly used for NPC's who watch friendly units for a debuff to end so they can recast it on them again.
-
----------------------------
-17 = EVENT_T_SUMMONED_UNIT:
----------------------------
-Parameter 1: CreatureId - The CreatureID that the NPC is watching to spawn to trigger this event
-Parameter 2: RepeatMin - Minimum Time used to calculate Random Repeat Expire
-Parameter 3: RepeatMax - Maximum Time used to calculate Random Repeat Expire
-
-BOTH - Expires after creature with entry(Param1) is spawned or for all spawns if param1 = 0. Will repeat every (Param2) and (Param3) .
-This is commonly used for NPC's who will do something special once another NPC is summoned. Usually used is Complex Scripts or Special Events.
-
-
-=========================================
-Action Types
-=========================================
-
------------------
-1 = ACTION_T_SAY:
------------------
-Parameter 1: The ID of the text that the NPC should SAY from the Localized_Texts Table.
-
-This action is pretty straightforward. When activated, the creature will SAY the specified text (Speech Bubble).
-
-------------------
-2 = ACTION_T_YELL:
-------------------
-Parameter 1: The ID of the text that the NPC should YELL from the Localized_Texts Table.
-
-The creature will YELL the specified text (Red Speech Bubble).
-
------------------------
-3 = ACTION_T_TEXTEMOTE:
------------------------
-Parameter 1: The ID of the text that the NPC should TEXTEMOTE from the Localized_Texts Table.
-
-When activated, the creature will do a text emote using the specified text. A text emote is what you would regularly see by using the /em slash command.
-NOTE: The text should be written with the assumption that the creature's name is the first word or words in the sentence (for example, "is doing a text emote" would appear as "XYZ is doing a text emote" for a creature named XYZ).
-
--------------------
-4 = ACTION_T_SOUND:
--------------------
-Parameter 1: The Sound ID to be played. (Sound IDs are contained in the DBC files.)
-
-The creature will play the specified sound.
-This is commonly used for Bosses who Yell and then also have a Voice for the same thing.
-
--------------------
-5 = ACTION_T_EMOTE:
--------------------
-Parameter 1: The Emote ID that the creature should perform. (Emote IDs are also contained in the DBC but they can be found in the mangos source as well).
-
-The creature will perform a visual emote. Unlike a text emote, a visual emote is one where the creature will actually move or perform a gesture.
-This is commonly used for NPC's who may perform a special action (Salute, Roar, ect...). Not all player emotes work for creature models.
-
-------------------------
-6 = ACTION_T_RANDOM_SAY:
-------------------------
-Parameter 1: The ID of the text that the NPC should SAY from the Localized_Texts Table (Random Choice #1).
-Parameter 2: The ID of the text that the NPC should SAY from the Localized_Texts Table (Random Choice #2).
-Parameter 3: The ID of the text that the NPC should SAY from the Localized_Texts Table (Random Choice #3).
-
-Similar to the ACTION_T_SAY action, it will choose at random a text entry to SAY. This action will pick a random entry from the three.
-NOTE: If you want any of the options if selected to do nothing you set that Param to -1 value. Then if selected it will do nothing.
-NOTE: When using Random Select Actions, ALL The Actions using Random in a Single Event (Action 1,2,3) will select the SAME Random Choice when it expires. This can come in handy if you are doing a ACTION_T_RANDOM_YELL for Action1 and then the corresponding sounds for ACTION_T_RANDOM_SOUND in Action2. If it selects Random Choice #2 for the Yell it will Select Random Choice #2 for the sound so you can match them up as required.
-This is commonly used for NPC's who have several different Aggro Say's and you would like one of them selected at random.
-
--------------------------
-7 = ACTION_T_RANDOM_YELL:
--------------------------
-Parameter 1: The ID of the text that the NPC should YELL from the Localized_Texts Table (Random Choice #1).
-Parameter 2: The ID of the text that the NPC should YELL from the Localized_Texts Table (Random Choice #2).
-Parameter 3: The ID of the text that the NPC should YELL from the Localized_Texts Table (Random Choice #3).
-
-Similar to the ACTION_T_YELL action, it will choose at random a text entry to YELL.
-
-------------------------------
-8 = ACTION_T_RANDOM_TEXTEMOTE:
-------------------------------
-Parameter 1: The ID of the text that the NPC should TEXTEMOTE from the Localized_Texts Table (Random Choice #1).
-Parameter 2: The ID of the text that the NPC should TEXTEMOTE from the Localized_Texts Table (Random Choice #2).
-Parameter 3: The ID of the text that the NPC should TEXTEMOTE from the Localized_Texts Table (Random Choice #3).
-
-Similar to the ACTION_T_TEXTEMOTE action, it will choose at random a text entry to TEXTEMOTE.
-
---------------------------
-9 = ACTION_T_RANDOM_SOUND:
---------------------------
-Parameter 1: The Sound ID to be played as Random Choice #1.
-Parameter 2: The Sound ID to be played as Random Choice #2.
-Parameter 3: The Sound ID to be played as Random Choice #3.
-
-Similar to the ACTION_T_SOUND action, it will choose at random a sound to play.
-
----------------------------
-10 = ACTION_T_RANDOM_EMOTE:
----------------------------
-Parameter 1: The Emote ID to be played as Random Choice #1.
-Parameter 2: The Emote ID to be played as Random Choice #2.
-Parameter 3: The Emote ID to be played as Random Choice #3.
-
-Similar to the ACTION_T_EMOTE action, it will choose at random an Emote to Visually Perform.
-
--------------------
-11 = ACTION_T_CAST:
--------------------
-Parameter 1: SpellId - The Spell ID to use for the NPC to cast. The value used in this field needs to be a valid Spell ID.
-Parameter 2: Target - The Target Type defining who the creature should cast the spell at. The value in this field needs to be a valid Target Type as specified in the reference tables below.
-Parameter 3: CastFlags - See Table Below for Cast Flag Bitmask Values. If you are unsure what to set this value at leave it at 0.
-
-The creature will cast a spell specified by a spell ID on a target specified by the target type.
-This is commonly used for NPC's who cast spells.
-
----------------------
-12 = ACTION_T_SUMMON:
----------------------
-Parameter 1: CreatureID - The Creature Template ID to be Summoned. The value here needs to be a valid Creature Template ID.
-Parameter 2: Target - The Target Type defining who the Summoned creature will attack once spawned. The value in this field needs to be a valid Target Type as specified in the reference tables below.
-Parameter 3: Duration - The duration until the summoned creature should be unsummoned AFTER Combat ends. The value in this field is in milliseconds or 0.
-
-The NPC will Summon another creature at the same spot as itself that will attack the specified target.
-NOTE: Almost all Creature Summons have proper Summon Spells that should be used when possible. This Action is a powerful last resort option only to be used if nothing else works.
-NOTE: Using Target Type 0 will cause the Summoned creature to not attack anyone.
-NOTE: If Duration is set at 0, then the summoned creature will not despawn until it has died.
-This is used as a manual way to force an NPC to Summon.
---------------------------------
-13 = ACTION_T_THREAT_SINGLE_PCT:
---------------------------------
-Parameter 1: Threat% - Threat percent that should be modified. The value in this field can range from -100 to +100. If it is negative, threat will be taken away and if positive, threat will be added.
-Parameter 2: Target - The Target Type defining on whom the threat change should occur. The value in this field needs to be a valid target type as specified in the reference tables below.
-
-This action will modify the threat of a target in the creature's threat list by the specified percent.
-This is commonly used to allow an NPC to adjust the Threat to a single player.
-
------------------------------
-14 = ACTION_T_THREAT_ALL_PCT:
------------------------------
-Parameter 1: Threat% - The percent that should be used in modifying everyone's threat in the creature's threat list. The value here can range from -100 to +100.
-
-This action will modify the threat for everyone in the creature's threat list by the specified percent.
-NOTE: Using -100 will cause the creature to reset everyone's threat to 0 so that everyone has the same amount of threat. It will NOT remove anyone from the threat list.
-This is commonly used to allow an NPC to drop threat for all players to zero.
-
---------------------------
-15 = ACTION_T_QUEST_EVENT:
---------------------------
-Parameter 1: QuestID - The Quest Template ID. The value here must be a valid quest template ID. Furthermore, the quest should have SpecialFlags | 2 as it would need to be completed by an external event which is the activation of this action.
-Parameter 2: Target - The Target Type defining whom the quest should be completed for. The value in this field needs to be a valid target type as specified in the reference tables below.
-
-This action will satisfy the external completion requirement for the quest for the specified target defined by the target type.
-NOTE: This action can only be used with player targets so it must be ensured that the target type will point to a player.
-This is commonly used for Quests where only ONE player will gain credit for the quest.
-
------------------------------
-16 = ACTION_T_CASTCREATUREGO:
------------------------------
-Parameter 1: CreatureID - The Creature Template ID to be Summoned. The value here needs to be a valid Creature Template ID.
-Parameter 2: SpellId - The Spell ID to use to simulate the cast. The value used in this field needs to be a valid Spell ID.
-Parameter 3: Target - The Target Type defining whom the quest credit should be given to. The value in this field needs to be a valid target type as specified in the reference tables below.
-
-This action will call CastedCreatureOrGO() function for the player. It can be used to give quest credit for casting a spell on the creature.
-This is commonly used for NPC's who have a special requirement to have a Spell cast on them to complete a quest.
-
------------------------------
-17 = ACTION_T_SET_UNIT_FIELD:
------------------------------
-Parameter 1: Field_Number - The index of the Field Number to be changed. Use (http://wiki.udbforums.org/index.php/Character_data) for a list of indeces and what they control. Creatures only contain the OBJECT_FIELD_* and UNIT_FIELD_* fields. They do not contain the PLAYER_FIELD_* fields.
-Parameter 2: Value - The new value to be put in the field.
-Parameter 3: Target - The Target Type defining for whom the unit field should be changed. The value in this field needs to be a valid target type as specified in the reference tables below.
-
-When activated, this action can change the target's unit field values. More information on the field value indeces can be found at (http://wiki.udbforums.org/index.php/Character_data)
-
-----------------------------
-18 = ACTION_T_SET_UNIT_FLAG:
-----------------------------
-Parameter 1: Flags - The flag(s) to be set. Multiple flags can be set by using bitwise-OR on them (adding them together).
-Parameter 2: Target - The Target Type defining for whom the flags should be changed. The value in this field needs to be a valid Target Type as specified in the reference tables below.
-
-When activated, this action changes the target's flags by adding (turning on) more flags. For example, this action can make the creature unattackable/unselectable if the right flags are used.
-
--------------------------------
-19 = ACTION_T_REMOVE_UNIT_FLAG:
--------------------------------
-Parameter 1: Flags - The flag(s) to be removed. Multiple flags can be set by using bitwise-OR on them (adding them together).
-Parameter 2: Target - The target type defining for whom the flags should be changed. The value in this field needs to be a valid Target Type as specified in the reference tables below.
-
-When activated, this action changes the target's flags by removing (turning off) flags. For example, this action can make the creature normal after it was unattackable/unselectable if the right flags are used.
-
---------------------------
-20 = ACTION_T_AUTO_ATTACK:
---------------------------
-Parameter 1: AllowAutoAttack - If zero, then the creature will stop its melee attacks. If non-zero, then the creature will either continue its melee attacks (the action would then have no effect) or it will start its melee attacks on the target with the top threat if its melee attacks were previously stopped.
-
-This action controls whether or not the creature should stop or start the auto melee attack.
-NOTE: The ACID Dev Team has conformed to using either 0 or 1 for the Param values (0 = Stop Melee, 1 = Start Melee).
-This is commonly used in combination with EVENT_T_RANGE and ACTION_T_COMBAT_MOVEMENT for Ranged Combat for Mages and Spell Casters.
-
-------------------------------
-21 = ACTION_T_COMBAT_MOVEMENT:
-------------------------------
-Parameter 1: If zero, then the creature will stop moving towards its victim (if its victim gets out of melee range) and will be stationary. If non-zero, then the creature will either continue to follow its victim (the action would have no effect) or it will start to follow the target with the top threat if its movement was disabled before.
-
-This action controls whether or not the creature will always move towards its target.
-NOTE: The ACID Dev Team has conformed to using either 0 or 1 for the Param values. (0 = Stop Movement, 1 = Start Movement)
-This is commonly used with EVENT_T_RANGE and ACTION_T_AUTO_ATTACK for NPC's who engage in Ranged Comabt (Either Spells or Ranged Attacks)
-
-------------------------
-22 = ACTION_T_SET_PHASE:
-------------------------
-Parameter 1: The new phase to set the creature in. This number must be an integer between 0 and 31. Numbers outside of that range will result in an error.
-
-When activated, this action sets the creature's event to the specified value.
-NOTE: The creature's current Phase is NOT reset at creature evade. You must manually set the phase back to 0 at EVENT_T_RESET.
-NOTE: The value used for the Param is the actual Phase Number (Not The Event_Inverse_Phase_Mask)
-This is commonly used for complex scripts with several phases and you need to switch to a different phase.
-
-------------------------
-23 = ACTION_T_INC_PHASE:
-------------------------
-Parameter 1: Value - The number of phases to increase or decrease. Use negative values to decrease the current phase.
-
-When activated, this action will increase (or decrease) the current creature's phase.
-NOTE: After increasing or decreasing the phase by this action, the current phase must NOT be lower than 0 or exceed 31.
-This can be used instead of ACTION_T_SET_PHASE to change phases in scripts. Just a user friendly option for changing phases.
-
---------------------
-24 = ACTION_T_EVADE:
---------------------
-When activated, the creature will immediately exit out of combat, clear its threat list, and move back to its spawn point. Basically, this action will reset the whole encounter.
-NOTE: All Param Values Are 0 for this Action.
-
--------------------
-25 = ACTION_T_FLEE:
--------------------
-When activated, the creature will try to flee from combat. Currently this is done by it casting a fear-like spell on itself called "Run Away". A Better Flee system is in Development but will take time before it is implimented.
-NOTE: All Param Values Are 0 for this Action.
-
-------------------------------
-26 = ACTION_T_QUEST_EVENT_ALL:
-------------------------------
-Parameter 1: QuestId - The quest ID to finish for everyone.
-
-This action does the same thing as the ACTION_T_QUEST_EVENT does but it does it for all players in the creature's threat list.
-NOTE: If a player is not in the NPC's threat list for whatever reason, he/she won't get the quest completed.
-
----------------------------------
-27 = ACTION_T_CASTCREATUREGO_ALL:
----------------------------------
-Parameter 1: QuestId - The quest template ID.
-Parameter 2: SpellId - The spell ID used to simulate the cast.
-
-This action does the same thing as the ACTION_T_CASTCREATUREGO does but it does it for all players in the creature's threat list.
-NOTE: If a player is not in its threat list for whatever reason, he/she won't receive the cast emulation.
-
------------------------------------
-28 = ACTION_T_REMOVEAURASFROMSPELL:
------------------------------------
-Parameter 1: Target - The target type defining for whom the unit field should be changed. The value in this field needs to be a valid target type as specified in the reference tables below.
-Parameter 2: SpellId - The spell ID whose auras will be removed.
-
-This action will remove all auras from a specific spell from the target.
-This is commonly used for NPC's who have an OOC Aura that is removed at combat start or a similar idea (Like Stealth or Shape Shift)
-
-------------------------------
-29 = ACTION_T_RANGED_MOVEMENT:
-------------------------------
-Parameter 1: Distance - The distance the mob should keep between it and its target.
-Parameter 2: Angle - The angle the mob should use.
-
-This action changes the movement type generator to ranged type using the specified values for angle and distance.
-NOTE: Specifying zero angle and distance will make it just melee instead.
-This is commonly used for NPC's who always attack at range and you can specify the distance they will maintain from the target.
-
----------------------------
-30 = ACTION_T_RANDOM_PHASE:
----------------------------
-Parameter 1: PhaseId1 - A possible random phase choice.
-Parameter 2: PhaseId2 - A possible random phase choice.
-Parameter 3: PhaseId3 - A possible random phase choice.
-
-Randomly sets the phase to one from the three parameter choices.
-NOTE: Use -1 to specify that if this param is picked to do nothing. Random is constant between actions within an event. So if you have a random Yell and a random Sound they will match up (ex: param2 with param2)
-NOTE 2: PLEASE NOTE THAT EACH OF THE PARAM VALUES ARE ACTUAL PHASE NUMBERS NOT THE INVERSE PHASE MASK VALUE.
-This is commonly used for Spellcasting NPC's who on Aggro may select at random a school of spells to use for the fight. Use this if you have up to 3 phases used, otherwise use Action 31 for more then 3 phases.
-
----------------------------------
-31 = ACTION_T_RANDOM_PHASE_RANGE:
----------------------------------
-Parameter 1: PhaseMin - The minimum of the phase range.
-Parameter 2: PhaseMax - The maximum of the phase range. The number here must be greater than PhaseMin.
-
-Randomly sets the phase between a range of phases controlled by the parameters. Sets the phase to a random id (Phase = PhaseMin + rnd % PhaseMin-PhaseMax).
-NOTE: PhaseMax must be greater than PhaseMin.
-NOTE 2: PLEASE NOTE THAT EACH OF THE PARAM VALUES ARE ACTUAL PHASE NUMBERS NOT THE INVERSE PHASE MASK VALUE.
-This is commonly used for Spellcasting NPC's who on Aggro may select at random a school of spells to use for the fight. Use this if you have MORE then 3 phases used, otherwise use Action 30.
-
----------------------
-32 = ACTION_T_SUMMON:
----------------------
-Parameter 1: CreatureID - The creature template ID to be summoned. The value here needs to be a valid creature template ID.
-Parameter 2: Target - The target type defining who the summoned creature will attack. The value in this field needs to be a valid target type as specified in the reference tables below. NOTE: Using target type 0 will cause the summoned creature to not attack anyone.
-Parameter 3: SummonID - The summon ID from the eventai_summons table controlling the position (and spawntime) where the summoned mob should be spawned at.
-
-Summons creature (param1) to attack target (param2) at location specified by EventAI_Summons (param3).
-NOTE: Param3 Value is the ID Value used for the entry used in EventAI_Summons for this action. You MUST have an EventAI_Summons entry to use this action.
-This is commonly used for NPC's who need to Summon a creature at a specific location. (Normally used for complex events)
-
------------------------------
-33 = ACTION_T_KILLED_MONSTER:
------------------------------
-Parameter 1: CreatureID - The creature template ID. The value here must be a valid creature template ID.
-Parameter 2: Target - The target type defining whom the quest kill count should be given to. The value in this field needs to be a valid target type as specified in the reference tables below.
-
-When activated, this action will call KilledMonster() function for the player. It can be used to give creature credit for killing a creature. In general if the quest is set to be accompished on different creatures (e.g. "Credit" templates).
-NOTE: It can be ANY creature including certain quest specific triggers
-This is commonly used for giving the player Quest Credits for NPC kills (Many NPC's may use the same CreatureID for the Kill Credit)
-
-----------------------------
-34 = ACTION_T_SET_INST_DATA:
-----------------------------
-Parameter 1: Field - The field to change in the instance script. Again, this field needs to be a valid field that has been already defined in the instance's script.
-Parameter 2: Data - The value to put at that field index.
-
-Sets data for the instance. Note that this will only work when the creature is inside an instantiable zone that has a valid script (ScriptedInstance) assigned.
-NOTE: Param1 Value is located in "def_<instance name>.h" SD2 File and Param2 value is generally found in the "sc_instance.h" file in SD2
-This is commonly used to link an ACID script with a SD2 C++ Script. You make make things happen like opening doors on specific events that happen. ACID Just triggers the C++ Script to function.
-
-------------------------------
-35 = ACTION_T_SET_INST_DATA64:
-------------------------------
-Parameter 1: Field - The field to change in the instance script. Again, this field needs to be a valid field that has been already defined in the instance's script.
-Parameter 2: Target - The target type to use to get the GUID that will be stored at the field index. The value in this field needs to be a valid target type as specified in the reference tables below.
-
-Sets GUID (64 bits) data for the instance based on the target. Note that this will only work when the creature is inside an instantiable zone that has a valid script (ScriptedInstance) assigned.
-Calls ScriptedInstance::SetData64 with field (param1) and data (param2) target's GUID.
-
-------------------------------
-36 = ACTION_T_UPDATE_TEMPLATE:
-------------------------------
-Parameter 1: TemplateId - The creature template ID. The value here must be a valid creature template ID.
-Parameter 2: Team - Use model_id from team : Alliance(0) or Horde (1).
-
-This function temporarily changes creature entry to new entry, display is changed, loot is changed, but AI is not changed. At respawn creature will be reverted to original entry.
-Changes the creature to a new creature template of (param1) with team = Alliance if (param2) = false or Horde if (param2) = true
-
-------------------
-37 = ACTION_T_DIE:
-------------------
-Kills the creature
-This is commonly used if you need to Instakill the creature for one reason or another.
-
---------------------------------
-38 = ACTION_T_ZONE_COMBAT_PULSE:
---------------------------------
-Places all players within the instance into combat with the creature. Only works in combat and only works inside of instances.
-
-
-=========================================
-Target Types
-=========================================
-Below is the list of current Target types that EventAI can handle.
-Target types are used by certain actions and may effect actions differently
-
-(# Internal Name Discription)
-0 TARGET_T_SELF Self cast
-1 TARGET_T_HOSTILE Our current target (ie: highest aggro)
-2 TARGET_T_HOSTILE_SECOND_AGGRO Second highest aggro (generaly used for cleaves and some special attacks)
-3 TARGET_T_HOSTILE_LAST_AGGRO Dead last on aggro (no idea what this could be used for)
-4 TARGET_T_HOSTILE_RANDOM Just any random target on our threat list
-5 TARGET_T_HOSTILE_RANDOM_NOT_TOP Any random target except top threat
-6 TARGET_T_ACTION_INVOKER Unit who caused this Event to occur (only works for EVENT_T_AGGRO, EVENT_T_KILL, EVENT_T_DEATH, EVENT_T_SPELLHIT, EVENT_T_OOC_LOS, EVENT_T_FRIENDLY_HP)
-
-=========================================
-Cast Flags
-=========================================
-Below is the list of current Cast Flags that EventAI's spell casting can handle.
-Cast flags are handled bitwise. Bit 0 is Interrupt Previous, bit 1 is triggered, etc.
-So for example the number "3" (11 in Binary, selecting first 2 options) would mean that this cast has both CAST_INTURRUPT_PREVIOUS and CAST_TRIGGERED.
-Another example: the number "5" (101 in Binary, selecting first and third options) would mean that this cast has CAST_INTURRUPT_PREVIOUS and CAST_FORCE_CAST.
-
-(bit# Decimal Internal Name Discription)
-0 1 CAST_INTURRUPT_PREVIOUS Interrupts any previous spell casting (basicaly makes sure that this spell goes off)
-1 2 CAST_TRIGGERED Forces the spell to be instant cast and require no mana/reagents.
-2 4 CAST_FORCE_CAST Forces spell to cast even if the target is possibly out of range or the creature is possibly out of mana
-3 8 CAST_NO_MELEE_IF_OOM Prevents creature from entering melee if out of mana or out of range
-4 16 CAST_FORCE_TARGET_SELF Forces the target to cast this spell on itself
-5 32 CAST_AURA_NOT_PRESENT Only casts the spell on the target if the target does not have the aura from that spell on itself already.
-
-NOTE: You can add the numbers in the decimal column to combine flags.
- For example if you wanted to use CAST_NO_MELEE_IF_OOM(8) and CAST_TRIGGERED(2) you would simply use 10 in the cast flags field (8 + 2 = 10).
-
-=========================================
-Event Flags
-=========================================
-Below is the list of current Event Flags that EventAI can handle. Event flags are handled bitwise.
-
-(bit# Decimal Internal Name Discription)
-0 1 EFLAG_REPEATABLE Event repeats (Does not repeat if this flag is not set)
-1 2 EFLAG_NORMAL Event occurs in Normal instance difficulty (will not occur in Normal if not set)
-2 4 EFLAG_HEROIC Event occurs in Heroic instance difficulty (will not occur in Heroic if not set)
-3 8
-4 16
-5 32
-6 64
-7 128 EFLAG_DEBUG_ONLY Prevents events from occuring on Release builds of ScriptDev2. Useful for testing new features.
-
+=========================================
+Event AI documentation
+=========================================
+
+Scriptdev2 Revision 220 introduces a new database defined AI named EventAI.
+This system allows users to create new creature scripts entierly within the Database.
+ScriptName must still be set to "mob_eventai" within the MaNGOS database creature_template.scriptname field.
+
+=========================================
+Basic Structure of EventAI
+=========================================
+Event AI follows a basic if (Event) then do {Action} format.
+Below is a the list of current fields within the Eventai_scripts table.
+
+(Field_Name Discription)
+id This value is mearly an incrementing counter of the current Event number. Required for sql queries.
+creature_id Creature id which this event should occur on.
+
+event_type Type of event (See Event Types below)
+event_inverse_phase_mask Mask which phases this event should NOT trigger in*
+event_chance Percent chance of this event occuring (1 - 100)
+event_flags Event flags such as if the event is repeatable (see below)
+event_param1 Variable for event (dependant on Event type)
+event_param2
+event_param3
+event_param4
+
+action1_type First Type of Action to take when event occurs (See Action Types below)
+action1_param1 Variables used for Action1 (dependant on Action type)
+action1_param2
+action1_param3
+
+action2_type Second Type of Action to take when event occurs (See Action Types below)
+action2_param1 Variables used for Action2 (dependant on Action type)
+action2_param2
+action2_param3
+
+action3_type Third Type of Action to take when event occurs (See Action Types below)
+action3_param1 Variables used for Action3 (dependant on Action type)
+action3_param2
+action3_param3
+
+All params are signed 32 bit values (+/- 2147483647). If param specifies time then time is in milliseconds. If param specifies percentage then percentages are value/100 (ex: if param = 500 then that means 500%, -50 = -50%)
+
+*Phase mask is a bit mask of which phases this event should not trigger in. Example: Phase mask value of 12 (1100) would mean that this event would trigger 0, 1 and all other phases except for 2 and 3 (0 counts as the first phase).
+
+=========================================
+Event Types
+=========================================
+Below is the list of current Event types that EventAI can handle.
+Each event type has its own specific interpretation of the params that accompany it.
+Params are always read from Param1, then Param2, then Param3.
+Events will not repeat until the creature exits combat unless EFLAG_REPEATABLE is set. Some events such as EVENT_T_AGGRO, EVENT_T_DEATH, EVENT_T_SPAWNED, and EVENT_T_EVADE cannot repeat.
+
+# Internal Name Pamarm usage Description
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+0 EVENT_T_TIMER InitialMin, InitialMax, RepeatMin, RepeatMax Expires first between (Param1) and (Param2) and then between every (Param3) and (Param4). but only in combat.
+1 EVENT_T_TIMER_OOC InitialMin, InitialMax, RepeatMin, RepeatMax Expires first between (Param1) and (Param2) and then between every (Param3) and (Param4). but only out of combat.
+2 EVENT_T_HP HPMax%, HPMin%, RepeatMin, RepeatMax Expires when HP is between (Param1) and (Param2). Will repeat every (Param3) and (Param4).
+3 EVENT_T_MANA ManaMax%,ManaMin% RepeatMin, RepeatMax Expires once Mana% is between (Param1) and (Param2). Will repeat every (Param3) and (Param4).
+4 EVENT_T_AGGRO NONE Expires upon initial aggro (does not repeat).
+5 EVENT_T_KILL RepeatMin, RepeatMax Expires upon killing a player. Will repeat between every (Param1) and (Param2).
+6 EVENT_T_DEATH NONE Expires upon Death of the Creature.
+7 EVENT_T_EVADE NONE Expires upon creature EnterEvadeMode().
+8 EVENT_T_SPELLHIT SpellID, School, RepeatMin, RepeatMax Expires upon Spell hit. If (param1) is set will only expire on that spell. If (param2) will only expire on spells of that school (-1 for all). Will repeat every (Param3) and (Param4) .
+9 EVENT_T_RANGE MinDist, MaxDist, RepeatMin, RepeatMax Expires when the highest threat target distance is greater than (Param1) and less than (Param2). Will repeat every (Param3) and (Param4) .
+10 EVENT_T_OOC_LOS NoHostile, NoFriendly, RepeatMin, RepeatMax Expires when a Player moves within visible distance to creature. Does not expire for Hostile Players if (Param1) is not 0. Does not expire for Friendly Players if (Param2) is not 0. Will repeat every (Param3) and (Param4) . Does not expire for creatures or pet or when the creature is in combat.
+11 EVENT_T_SPAWNED NONE Expires at initial spawn and at creature respawn (useful for setting ranged movement type)
+12 EVENT_T_TARGET_HP HPMax%, HPMin%, RepeatMin, RepeatMax Expires when Current Target's HP is between (Param1) and (Param2). Will repeat every (Param3) and (Param4) .
+13 EVENT_T_TARGET_CASTING RepeatMin, RepeatatMax Expires when the current target is casting a spell. Will repeat every (Param1) and (Param2) .
+14 EVENT_T_FRIENDLY_HP HPDeficit, Radius, RepeatMin, RepeatMax Expires when a friendly unit in radius has at least (param1) hp missing. Will repeat every (Param3) and (Param4) .
+15 EVENT_T_FRIENDLY_IS_CC DispelType, Radius, RepeatMin, RepeatMax Expires when a friendly unit is Crowd controlled within the given radius (param2). Will repeat every (Param3) and (Param4) .
+16 EVENT_T_MISSING_BUFF SpellId, Radius, RepeatMin, RepeatMax Expires when a friendly unit is missing aura's given by spell (param1) within radius (param2). Will repeat every (Param3) and (Param4) .
+17 EVENT_T_SUMMONED_UNIT CreatureId, RepeatMin, RepeatMax Expires after creature with entry = (param1) is spawned or for all spawns if param1 = 0. Will repeat every (Param2) and (Param3) .
+
+=========================================
+Action Types
+=========================================
+Below is the list of current Action types that EventAI can handle.
+Each event type has its own specific interpretation of the params that accompany it.
+Params are always read from Param1, then Param2, then Param3.
+
+(# Internal Name Param usage Discription)
+0 ACTION_T_NONE No Action Does Nothing
+1 ACTION_T_SAY TextId Says Text
+2 ACTION_T_YELL TextId Yells Text
+3 ACTION_T_TEXTEMOTE TextId Text Emotes Text
+4 ACTION_T_SOUND SoundId Plays Sound
+5 ACTION_T_EMOTE EmoteId Does emote
+6 ACTION_T_RANDOM_SAY TextId1, TextId2, TextId3 Says random text between 3 params*
+7 ACTION_T_RANDOM_YELL TextId1, TextId2, TextId3 Yells random text between 3 params*
+8 ACTION_T_RANDOM_TEXTEMOTE TextId1, TextId2, TextId3 Text Emotes random text between 3 params*
+9 ACTION_T_RANDOM_SOUND SoundId1, SoundId2, SoundId3 Plays random sound between 3 params*
+10 ACTION_T_RANDOM_EMOTE EmoteId1, EmoteId2, EmoteId3 Emotes random emote between 3 params
+11 ACTION_T_CAST SpellId, Target, CastFlags Casts spell (param1) on target type (param2). Uses Cast Flags (specified below target types)
+12 ACTION_T_SUMMON CreatureID, Target, Duration Summons creature (param1) to attack target (param2) for (param3) duration. Spawns on top of current creature.
+13 ACTION_T_THREAT_SINGLE_PCT Threat%, Target Modifies threat by (param1) on target type (param2)
+14 ACTION_T_THREAT_ALL_PCT Threat% Modifies threat by (param1) on all targets (using -100% on all will result in full aggro dump)
+15 ACTION_T_QUEST_EVENT QuestID, Target Calls AreaExploredOrEventHappens with (param1) for target type (Param2)
+16 ACTION_T_QUEST_CASTCREATUREGO CreatureID, SpellId, Target Sends CastCreatureOrGo for CreatureId (param1) with SpellId (param2) for target (param3)
+17 ACTION_T_SET_UNIT_FIELD Field_Number, Value, Target Sets Unit Field (param1) to Value (param2) on target type (param3)
+18 ACTION_T_SET_UNIT_FLAG Flags, Target Sets flag (flags can be binary OR together to modify multiple flags at once) on for Target type (param2)
+19 ACTION_T_REMOVE_UNIT_FLAG Flags, Target Removes flag (flags can be binary OR together to modify multiple flags at once) on for Target type (param2)
+20 ACTION_T_AUTO_ATTACK AllowAutoAttack 0 = stop melee attack, anything else means continue attacking/allow melee attacking
+21 ACTION_T_COMBAT_MOVEMENT AllowCombatMovement 0 = stop combat based movement, anything else continue/allow combat based movement (targeted movement generator)
+22 ACTION_T_SET_PHASE Phase Sets the current phase to (param1)
+23 ACTION_T_INC_PHASE Value Increments the phase by (param1). May be negative to decrement phase but should not be 0.
+24 ACTION_T_EVADE No Params Forces the creature to evade. Wiping all threat and dropping combat.
+25 ACTION_T_FLEE No Params Causes the .creature to flee. Please use this action instead of directly casting this spell so we may change this when a more correct approach is found.
+26 ACTION_T_QUEST_EVENT_ALL QuestId Calls GroupEventHappens with (param1). Only used if it's _expected_ event should complete for all players in current party
+27 ACTION_T_CASTCREATUREGO_ALL QuestId, SpellId Calls CastedCreatureOrGo for all players on the threat list with QuestID(Param1) and SpellId(Param2)
+28 ACTION_T_REMOVEAURASFROMSPELL Target, Spellid Removes all auras on Target caused by Spellid
+29 ACTION_T_RANGED_MOVEMENT Distance, Angle Changes the movement generator type to a ranged type. Note: Default melee type can still be done with this. Specify 0 angle and 0 distance.
+30 ACTION_T_RANDOM_PHASE PhaseId1, PhaseId2, PhaseId3 Sets the phase to the id between 3 params*
+31 ACTION_T_RANDOM_PHASE_RANGE PhaseMin, PhaseMax Sets the phase to a random id (Phase = PhaseMin + rnd % PhaseMin-PhaseMax). PhaseMax must be greater than PhaseMin.
+32 ACTION_T_SUMMON CreatureID, Target, SummonID Summons creature (param1) to attack target (param2) at location specified by EventAI_Summons (param3).
+33 ACTION_T_KILLED_MONSTER CreatureID, Target Calls KilledMonster (param1) for target of type (param2)
+34 ACTION_T_SET_INST_DATA Field, Data Calls ScriptedInstance::SetData with field (param1) and data (param2)
+35 ACTION_T_SET_INST_DATA64 Field, Target Calls ScriptedInstance::SetData64 with field (param1) and data (param2) target's GUID.
+36 ACTION_T_UPDATE_TEMPLATE TemplateId, Team Changes the creature to a new creature template of (param1) with team = Alliance if (param2) = false or Horde if (param2) = true
+37 ACTION_T_DIE No Params Kills the creature
+38 ACTION_T_ZONE_COMBAT_PULSE No Params Places all players within the instance into combat with the creature. Only works in combat and only works inside of instances.
+
+* = Use -1 to specify that if this param is picked to do nothing. Random is constant between actions within an event. So if you have a random Yell and a random Sound they will match up (ex: param2 with param2)
+
+=========================================
+Event Types
+=========================================
+Note:
+COMBAT ONLY - Means that this event will only trigger durring combat.
+OUT OF COMBAT ONLY - Means that this event will only trigger while out of combat.
+BOTH - This event can trigger both in and out of combat.
+
+Events that do not have lables on them are events that are directly involved with the in and out of combat state.
+
+------------------
+0 = EVENT_T_TIMER:
+------------------
+Parameter 1: InitialMin - Minumum Time used to calculate Random Initial Expire
+Parameter 2: InitialMax - Maximum Time used to calculate Random Initial Expire
+Parameter 3: RepeatMin - Minimum Time used to calculate Random Repeat Expire
+Parameter 4: RepeatMax - Maximum Time used to calculate Random Repeat Expire
+
+COMBAT ONLY! - Expires first between (Param1) and (Param2) and then between every (Param3) and (Param4) from then on.
+This is commonly used for spells that repeat cast during combat (Simulate Spell Cooldown).
+
+----------------------
+1 = EVENT_T_TIMER_OOC:
+----------------------
+Parameter 1: InitialMin - Minumum Time used to calculate Random Initial Expire
+Parameter 2: InitialMax - Maximum Time used to calculate Random Initial Expire
+Parameter 3: RepeatMin - Minimum Time used to calculate Random Repeat Expire
+Parameter 4: RepeatMax - Maximum Time used to calculate Random Repeat Expire
+
+OUT OF COMBAT ONLY! - Expires first between (Param1) and (Param2) and then between every (Param3) and (Param4) from then on.
+This is commonly used for events that occur and repeat outside of combat.
+
+---------------
+2 = EVENT_T_HP:
+---------------
+Parameter 1: HPMax% - Maximum HP% That this Event will Expire
+Parameter 2: HPMin% - Minimum HP% That this Event will Expire
+Parameter 3: RepeatMin - Minimum Time used to calculate Random Repeat Expire
+Parameter 4: RepeatMax - Maximum Time used to calculate Random Repeat Expire
+
+BOTH - Expires when HP is between (Param1) and (Param2). Will repeat every (Param3) and (Param4).
+This is commonly used for events that trigger at a specific HP% (Such as Heal/Enrage Spells or NPC's that Flee).
+
+-----------------
+3 = EVENT_T_MANA:
+-----------------
+Parameter 1: ManaMax% - Maximum Mana% That this Event will Expire
+Parameter 2: ManaMin% - Minimum Mana% That this Event will Expire
+Parameter 3: RepeatMin - Minimum Time used to calculate Random Repeat Expire
+Parameter 4: RepeatMax - Maximum Time used to calculate Random Repeat Expire
+
+BOTH - Expires once Mana% is between (Param1) and (Param2). Will repeat every (Param3) and (Param4).
+This is commonly used for events where an NPC low on Mana will do something (Such as stop casting spells and switch to melee).
+
+------------------
+4 = EVENT_T_AGGRO:
+------------------
+This Event Expires upon initial aggro (does not repeat).
+
+-----------------
+5 = EVENT_T_KILL:
+-----------------
+Parameter 1: RepeatMin - Minimum Time used to calculate Random Repeat Expire
+Parameter 2: RepeatMax - Maximum Time used to calculate Random Repeat Expire
+
+COMBAT ONLY! - Expires upon killing a player. Will repeat every (Param1) and (Param2).
+This Event Expires upon killing a player. It is commonly used for NPC's who yell or do something after killing a player.
+
+------------------
+6 = EVENT_T_DEATH:
+------------------
+This Event Expires upon Death of the Scripted NPC.
+This is commonly used for NPC's who have a yell on death or cast some kind if summon spell when they die.
+
+------------------
+7 = EVENT_T_EVADE:
+------------------
+This Event Expires upon the creature EnterEvadeMode().
+This is commonly used for NPC's who use phases, allows you to reset their phase to 0 upon evade to prevent possible strange behavior.
+
+---------------------
+8 = EVENT_T_SPELLHIT:
+---------------------
+Parameter 1: SpellID - The Spell ID that will trigger the event to occur (NOTE: If you use Spell School as the trigger set this value to 0)
+Parameter 2: School - Spell School to trigger the event (NOTE: If you use a SpellID then set this value to -1) - *See Below for Spell School Bitmask Values*
+Parameter 3: RepeatMin - Minimum Time used to calculate Random Repeat Expire
+Parameter 4: RepeatMax - Maximum Time used to calculate Random Repeat Expire
+
+BOTH - Expires upon Spell hit. If (param1) is set will only expire on that spell. If (param2) will only expire on spells of that school. Will repeat every (Param3) and (Param4).
+This Event is commonly used for NPC's who can do special things when you cast a spell (Or specific spell) on them.
+
+------------------
+9 = EVENT_T_RANGE:
+------------------
+Parameter 1: MinDist - This Distance is the Minimum Distance between the NPC and it's target to allow this Event to Expire
+Parameter 2: MaxDist - This Distance is the Maximum Distance between the NPC and it's target to allow this Event to Expire
+Parameter 3: RepeatMin - Minimum Time used to calculate Random Repeat Expire
+Parameter 4: RepeatMax - Maximum Time used to calculate Random Repeat Expire
+
+COMBAT ONLY! - Expires when the highest threat target distance is greater than (Param1) and less than (Param2). Will repeat every (Param3) and (Param4).
+This Event is commonly used for NPC's who have Ranged Combat and will Throw/Shoot between a certian distance.
+
+---------------------
+10 = EVENT_T_OOC_LOS:
+---------------------
+Parameter 1: NoHostile - This Value is to Prevent this Action from Expiring When Caused by a Player/Creature Hostile to them (0 = Prevent Event from Expiring, 1 = Allow Event to Expire)
+Parameter 2: NoFriendly - This Value is to Prevent this Action from Expiring When Caused by a Player/Creature Friendly to them (0 = Prevent Event from Expiring, 1 = Allow Event to Expire)
+Parameter 3: RepeatMin - Minimum Time used to calculate Random Repeat Expire
+Parameter 4: RepeatMax - Maximum Time used to calculate Random Repeat Expire
+
+OUT OF COMBAT ONLY! - Expires when a Player moves within visible distance to the NPC. Does not expire for Hostile Players if (Param1) is not 0. Does not expire for Friendly Players if (Param2) is not 0. Will repeat every (Param3) and (Param4). Does not expire for creatures or pets when they are in combat.
+This Event is commonly used for NPC's who Do Something or Say Something when you walk past them Out of Combat.
+
+---------------------
+11 = EVENT_T_SPAWNED:
+---------------------
+Expires at initial spawn and at creature respawn.
+This Event is commonly used for setting ranged movement type or Summoning a Pet on Spawn
+
+-----------------------
+12 = EVENT_T_TARGET_HP:
+-----------------------
+Parameter 1: HPMax% - Maximum HP% That this Event will Expire
+Parameter 2: HPMin% - Minimum HP% That this Event will Expire
+Parameter 3: RepeatMin - Minimum Time used to calculate Random Repeat Expire
+Parameter 4: RepeatMax - Maximum Time used to calculate Random Repeat Expire
+
+COMBAT ONLY! - Expires when Current NPC's Target's HP is between (Param1) and (Param2). Will repeat every (Param3) and (Param4).
+This Event is commonly used for NPC's who have a special ability (Like Execute) that only casts when a Player HP is low.
+
+----------------------------
+13 = EVENT_T_TARGET_CASTING:
+----------------------------
+Parameter 1: RepeatMin - Minimum Time used to calculate Random Repeat Expire
+Parameter 2: RepeatMax - Maximum Time used to calculate Random Repeat Expire
+
+COMBAT ONLY! - Expires when the current target is casting a spell. Will repeat every (Param1) and (Param2).
+This event is commonly used for NPC's who will cast a counter spell when their target starts to cast a spell.
+
+-------------------------
+14 = EVENT_T_FRIENDLY_HP:
+-------------------------
+Parameter 1: HPDeficit - This is the Amount of HP Missing from Full HP to trigger this event (You would need to calculate the amount of HP the event happens and subtract that from Full HP Value to get this number)
+Parameter 2: Radius - This is the Range in Yards the NPC will scan for nearby Friendlies (Faction is Friendly To) for the missing amount of HP in Param1.
+Parameter 3: RepeatMin - Minimum Time used to calculate Random Repeat Expire
+Parameter 4: RepeatMax - Maximum Time used to calculate Random Repeat Expire
+
+COMBAT ONLY! - Expires when a friendly unit in radius(param2) has at least (param1) hp missing. Will repeat every (Param3) and (Param4).
+This is commonly used when an NPC in Combat will heal a nearby Friendly NPC in Combat with a Heal/Renew Spell.
+
+----------------------------
+15 = EVENT_T_FRIENDLY_IS_CC:
+----------------------------
+Parameter 1: DispelType - Dispel Type to trigger the event - *See Below for Dispel Bitmask Values*
+Parameter 2: Radius - This is the Range in Yards the NPC will scan for nearby Friendlies being Crowd Controlled
+Parameter 3: RepeatMin - Minimum Time used to calculate Random Repeat Expire
+Parameter 4: RepeatMax - Maximum Time used to calculate Random Repeat Expire
+
+COMBAT ONLY! - Expires when a friendly unit is Crowd controlled within the given radius (param2). Will repeat every (Param3) and (Param4).
+This is commonly used for NPC's who can come to the resule of other Friendly NPC's if being Crowd Controlled
+
+--------------------------
+16 = EVENT_T_MISSING_BUFF:
+--------------------------
+Parameter 1: SpellId - This is the SpellID That the Aura Check will look for (If it is missing this Aura)
+Parameter 2: Radius - This is the Range in Yards the NPC will scan for nearby Friendlies (Faction is Friendly To) for the missing Aura.
+Parameter 3: RepeatMin - Minimum Time used to calculate Random Repeat Expire
+Parameter 4: RepeatMax - Maximum Time used to calculate Random Repeat Expire
+
+BOTH - Expires when a friendly unit is missing aura's given by spell (param1) within radius (param2). Will repeat every (Param3) and (Param4).
+This is commonly used for NPC's who watch friendly units for a debuff to end so they can recast it on them again.
+
+---------------------------
+17 = EVENT_T_SUMMONED_UNIT:
+---------------------------
+Parameter 1: CreatureId - The CreatureID that the NPC is watching to spawn to trigger this event
+Parameter 2: RepeatMin - Minimum Time used to calculate Random Repeat Expire
+Parameter 3: RepeatMax - Maximum Time used to calculate Random Repeat Expire
+
+BOTH - Expires after creature with entry(Param1) is spawned or for all spawns if param1 = 0. Will repeat every (Param2) and (Param3) .
+This is commonly used for NPC's who will do something special once another NPC is summoned. Usually used is Complex Scripts or Special Events.
+
+
+=========================================
+Action Types
+=========================================
+
+-----------------
+1 = ACTION_T_SAY:
+-----------------
+Parameter 1: The ID of the text that the NPC should SAY from the Localized_Texts Table.
+
+This action is pretty straightforward. When activated, the creature will SAY the specified text (Speech Bubble).
+
+------------------
+2 = ACTION_T_YELL:
+------------------
+Parameter 1: The ID of the text that the NPC should YELL from the Localized_Texts Table.
+
+The creature will YELL the specified text (Red Speech Bubble).
+
+-----------------------
+3 = ACTION_T_TEXTEMOTE:
+-----------------------
+Parameter 1: The ID of the text that the NPC should TEXTEMOTE from the Localized_Texts Table.
+
+When activated, the creature will do a text emote using the specified text. A text emote is what you would regularly see by using the /em slash command.
+NOTE: The text should be written with the assumption that the creature's name is the first word or words in the sentence (for example, "is doing a text emote" would appear as "XYZ is doing a text emote" for a creature named XYZ).
+
+-------------------
+4 = ACTION_T_SOUND:
+-------------------
+Parameter 1: The Sound ID to be played. (Sound IDs are contained in the DBC files.)
+
+The creature will play the specified sound.
+This is commonly used for Bosses who Yell and then also have a Voice for the same thing.
+
+-------------------
+5 = ACTION_T_EMOTE:
+-------------------
+Parameter 1: The Emote ID that the creature should perform. (Emote IDs are also contained in the DBC but they can be found in the mangos source as well).
+
+The creature will perform a visual emote. Unlike a text emote, a visual emote is one where the creature will actually move or perform a gesture.
+This is commonly used for NPC's who may perform a special action (Salute, Roar, ect...). Not all player emotes work for creature models.
+
+------------------------
+6 = ACTION_T_RANDOM_SAY:
+------------------------
+Parameter 1: The ID of the text that the NPC should SAY from the Localized_Texts Table (Random Choice #1).
+Parameter 2: The ID of the text that the NPC should SAY from the Localized_Texts Table (Random Choice #2).
+Parameter 3: The ID of the text that the NPC should SAY from the Localized_Texts Table (Random Choice #3).
+
+Similar to the ACTION_T_SAY action, it will choose at random a text entry to SAY. This action will pick a random entry from the three.
+NOTE: If you want any of the options if selected to do nothing you set that Param to -1 value. Then if selected it will do nothing.
+NOTE: When using Random Select Actions, ALL The Actions using Random in a Single Event (Action 1,2,3) will select the SAME Random Choice when it expires. This can come in handy if you are doing a ACTION_T_RANDOM_YELL for Action1 and then the corresponding sounds for ACTION_T_RANDOM_SOUND in Action2. If it selects Random Choice #2 for the Yell it will Select Random Choice #2 for the sound so you can match them up as required.
+This is commonly used for NPC's who have several different Aggro Say's and you would like one of them selected at random.
+
+-------------------------
+7 = ACTION_T_RANDOM_YELL:
+-------------------------
+Parameter 1: The ID of the text that the NPC should YELL from the Localized_Texts Table (Random Choice #1).
+Parameter 2: The ID of the text that the NPC should YELL from the Localized_Texts Table (Random Choice #2).
+Parameter 3: The ID of the text that the NPC should YELL from the Localized_Texts Table (Random Choice #3).
+
+Similar to the ACTION_T_YELL action, it will choose at random a text entry to YELL.
+
+------------------------------
+8 = ACTION_T_RANDOM_TEXTEMOTE:
+------------------------------
+Parameter 1: The ID of the text that the NPC should TEXTEMOTE from the Localized_Texts Table (Random Choice #1).
+Parameter 2: The ID of the text that the NPC should TEXTEMOTE from the Localized_Texts Table (Random Choice #2).
+Parameter 3: The ID of the text that the NPC should TEXTEMOTE from the Localized_Texts Table (Random Choice #3).
+
+Similar to the ACTION_T_TEXTEMOTE action, it will choose at random a text entry to TEXTEMOTE.
+
+--------------------------
+9 = ACTION_T_RANDOM_SOUND:
+--------------------------
+Parameter 1: The Sound ID to be played as Random Choice #1.
+Parameter 2: The Sound ID to be played as Random Choice #2.
+Parameter 3: The Sound ID to be played as Random Choice #3.
+
+Similar to the ACTION_T_SOUND action, it will choose at random a sound to play.
+
+---------------------------
+10 = ACTION_T_RANDOM_EMOTE:
+---------------------------
+Parameter 1: The Emote ID to be played as Random Choice #1.
+Parameter 2: The Emote ID to be played as Random Choice #2.
+Parameter 3: The Emote ID to be played as Random Choice #3.
+
+Similar to the ACTION_T_EMOTE action, it will choose at random an Emote to Visually Perform.
+
+-------------------
+11 = ACTION_T_CAST:
+-------------------
+Parameter 1: SpellId - The Spell ID to use for the NPC to cast. The value used in this field needs to be a valid Spell ID.
+Parameter 2: Target - The Target Type defining who the creature should cast the spell at. The value in this field needs to be a valid Target Type as specified in the reference tables below.
+Parameter 3: CastFlags - See Table Below for Cast Flag Bitmask Values. If you are unsure what to set this value at leave it at 0.
+
+The creature will cast a spell specified by a spell ID on a target specified by the target type.
+This is commonly used for NPC's who cast spells.
+
+---------------------
+12 = ACTION_T_SUMMON:
+---------------------
+Parameter 1: CreatureID - The Creature Template ID to be Summoned. The value here needs to be a valid Creature Template ID.
+Parameter 2: Target - The Target Type defining who the Summoned creature will attack once spawned. The value in this field needs to be a valid Target Type as specified in the reference tables below.
+Parameter 3: Duration - The duration until the summoned creature should be unsummoned AFTER Combat ends. The value in this field is in milliseconds or 0.
+
+The NPC will Summon another creature at the same spot as itself that will attack the specified target.
+NOTE: Almost all Creature Summons have proper Summon Spells that should be used when possible. This Action is a powerful last resort option only to be used if nothing else works.
+NOTE: Using Target Type 0 will cause the Summoned creature to not attack anyone.
+NOTE: If Duration is set at 0, then the summoned creature will not despawn until it has died.
+This is used as a manual way to force an NPC to Summon.
+--------------------------------
+13 = ACTION_T_THREAT_SINGLE_PCT:
+--------------------------------
+Parameter 1: Threat% - Threat percent that should be modified. The value in this field can range from -100 to +100. If it is negative, threat will be taken away and if positive, threat will be added.
+Parameter 2: Target - The Target Type defining on whom the threat change should occur. The value in this field needs to be a valid target type as specified in the reference tables below.
+
+This action will modify the threat of a target in the creature's threat list by the specified percent.
+This is commonly used to allow an NPC to adjust the Threat to a single player.
+
+-----------------------------
+14 = ACTION_T_THREAT_ALL_PCT:
+-----------------------------
+Parameter 1: Threat% - The percent that should be used in modifying everyone's threat in the creature's threat list. The value here can range from -100 to +100.
+
+This action will modify the threat for everyone in the creature's threat list by the specified percent.
+NOTE: Using -100 will cause the creature to reset everyone's threat to 0 so that everyone has the same amount of threat. It will NOT remove anyone from the threat list.
+This is commonly used to allow an NPC to drop threat for all players to zero.
+
+--------------------------
+15 = ACTION_T_QUEST_EVENT:
+--------------------------
+Parameter 1: QuestID - The Quest Template ID. The value here must be a valid quest template ID. Furthermore, the quest should have SpecialFlags | 2 as it would need to be completed by an external event which is the activation of this action.
+Parameter 2: Target - The Target Type defining whom the quest should be completed for. The value in this field needs to be a valid target type as specified in the reference tables below.
+
+This action will satisfy the external completion requirement for the quest for the specified target defined by the target type.
+NOTE: This action can only be used with player targets so it must be ensured that the target type will point to a player.
+This is commonly used for Quests where only ONE player will gain credit for the quest.
+
+-----------------------------
+16 = ACTION_T_CASTCREATUREGO:
+-----------------------------
+Parameter 1: CreatureID - The Creature Template ID to be Summoned. The value here needs to be a valid Creature Template ID.
+Parameter 2: SpellId - The Spell ID to use to simulate the cast. The value used in this field needs to be a valid Spell ID.
+Parameter 3: Target - The Target Type defining whom the quest credit should be given to. The value in this field needs to be a valid target type as specified in the reference tables below.
+
+This action will call CastedCreatureOrGO() function for the player. It can be used to give quest credit for casting a spell on the creature.
+This is commonly used for NPC's who have a special requirement to have a Spell cast on them to complete a quest.
+
+-----------------------------
+17 = ACTION_T_SET_UNIT_FIELD:
+-----------------------------
+Parameter 1: Field_Number - The index of the Field Number to be changed. Use (http://wiki.udbforums.org/index.php/Character_data) for a list of indeces and what they control. Creatures only contain the OBJECT_FIELD_* and UNIT_FIELD_* fields. They do not contain the PLAYER_FIELD_* fields.
+Parameter 2: Value - The new value to be put in the field.
+Parameter 3: Target - The Target Type defining for whom the unit field should be changed. The value in this field needs to be a valid target type as specified in the reference tables below.
+
+When activated, this action can change the target's unit field values. More information on the field value indeces can be found at (http://wiki.udbforums.org/index.php/Character_data)
+
+----------------------------
+18 = ACTION_T_SET_UNIT_FLAG:
+----------------------------
+Parameter 1: Flags - The flag(s) to be set. Multiple flags can be set by using bitwise-OR on them (adding them together).
+Parameter 2: Target - The Target Type defining for whom the flags should be changed. The value in this field needs to be a valid Target Type as specified in the reference tables below.
+
+When activated, this action changes the target's flags by adding (turning on) more flags. For example, this action can make the creature unattackable/unselectable if the right flags are used.
+
+-------------------------------
+19 = ACTION_T_REMOVE_UNIT_FLAG:
+-------------------------------
+Parameter 1: Flags - The flag(s) to be removed. Multiple flags can be set by using bitwise-OR on them (adding them together).
+Parameter 2: Target - The target type defining for whom the flags should be changed. The value in this field needs to be a valid Target Type as specified in the reference tables below.
+
+When activated, this action changes the target's flags by removing (turning off) flags. For example, this action can make the creature normal after it was unattackable/unselectable if the right flags are used.
+
+--------------------------
+20 = ACTION_T_AUTO_ATTACK:
+--------------------------
+Parameter 1: AllowAutoAttack - If zero, then the creature will stop its melee attacks. If non-zero, then the creature will either continue its melee attacks (the action would then have no effect) or it will start its melee attacks on the target with the top threat if its melee attacks were previously stopped.
+
+This action controls whether or not the creature should stop or start the auto melee attack.
+NOTE: The ACID Dev Team has conformed to using either 0 or 1 for the Param values (0 = Stop Melee, 1 = Start Melee).
+This is commonly used in combination with EVENT_T_RANGE and ACTION_T_COMBAT_MOVEMENT for Ranged Combat for Mages and Spell Casters.
+
+------------------------------
+21 = ACTION_T_COMBAT_MOVEMENT:
+------------------------------
+Parameter 1: If zero, then the creature will stop moving towards its victim (if its victim gets out of melee range) and will be stationary. If non-zero, then the creature will either continue to follow its victim (the action would have no effect) or it will start to follow the target with the top threat if its movement was disabled before.
+
+This action controls whether or not the creature will always move towards its target.
+NOTE: The ACID Dev Team has conformed to using either 0 or 1 for the Param values. (0 = Stop Movement, 1 = Start Movement)
+This is commonly used with EVENT_T_RANGE and ACTION_T_AUTO_ATTACK for NPC's who engage in Ranged Comabt (Either Spells or Ranged Attacks)
+
+------------------------
+22 = ACTION_T_SET_PHASE:
+------------------------
+Parameter 1: The new phase to set the creature in. This number must be an integer between 0 and 31. Numbers outside of that range will result in an error.
+
+When activated, this action sets the creature's event to the specified value.
+NOTE: The creature's current Phase is NOT reset at creature evade. You must manually set the phase back to 0 at EVENT_T_RESET.
+NOTE: The value used for the Param is the actual Phase Number (Not The Event_Inverse_Phase_Mask)
+This is commonly used for complex scripts with several phases and you need to switch to a different phase.
+
+------------------------
+23 = ACTION_T_INC_PHASE:
+------------------------
+Parameter 1: Value - The number of phases to increase or decrease. Use negative values to decrease the current phase.
+
+When activated, this action will increase (or decrease) the current creature's phase.
+NOTE: After increasing or decreasing the phase by this action, the current phase must NOT be lower than 0 or exceed 31.
+This can be used instead of ACTION_T_SET_PHASE to change phases in scripts. Just a user friendly option for changing phases.
+
+--------------------
+24 = ACTION_T_EVADE:
+--------------------
+When activated, the creature will immediately exit out of combat, clear its threat list, and move back to its spawn point. Basically, this action will reset the whole encounter.
+NOTE: All Param Values Are 0 for this Action.
+
+-------------------
+25 = ACTION_T_FLEE:
+-------------------
+When activated, the creature will try to flee from combat. Currently this is done by it casting a fear-like spell on itself called "Run Away". A Better Flee system is in Development but will take time before it is implimented.
+NOTE: All Param Values Are 0 for this Action.
+
+------------------------------
+26 = ACTION_T_QUEST_EVENT_ALL:
+------------------------------
+Parameter 1: QuestId - The quest ID to finish for everyone.
+
+This action does the same thing as the ACTION_T_QUEST_EVENT does but it does it for all players in the creature's threat list.
+NOTE: If a player is not in the NPC's threat list for whatever reason, he/she won't get the quest completed.
+
+---------------------------------
+27 = ACTION_T_CASTCREATUREGO_ALL:
+---------------------------------
+Parameter 1: QuestId - The quest template ID.
+Parameter 2: SpellId - The spell ID used to simulate the cast.
+
+This action does the same thing as the ACTION_T_CASTCREATUREGO does but it does it for all players in the creature's threat list.
+NOTE: If a player is not in its threat list for whatever reason, he/she won't receive the cast emulation.
+
+-----------------------------------
+28 = ACTION_T_REMOVEAURASFROMSPELL:
+-----------------------------------
+Parameter 1: Target - The target type defining for whom the unit field should be changed. The value in this field needs to be a valid target type as specified in the reference tables below.
+Parameter 2: SpellId - The spell ID whose auras will be removed.
+
+This action will remove all auras from a specific spell from the target.
+This is commonly used for NPC's who have an OOC Aura that is removed at combat start or a similar idea (Like Stealth or Shape Shift)
+
+------------------------------
+29 = ACTION_T_RANGED_MOVEMENT:
+------------------------------
+Parameter 1: Distance - The distance the mob should keep between it and its target.
+Parameter 2: Angle - The angle the mob should use.
+
+This action changes the movement type generator to ranged type using the specified values for angle and distance.
+NOTE: Specifying zero angle and distance will make it just melee instead.
+This is commonly used for NPC's who always attack at range and you can specify the distance they will maintain from the target.
+
+---------------------------
+30 = ACTION_T_RANDOM_PHASE:
+---------------------------
+Parameter 1: PhaseId1 - A possible random phase choice.
+Parameter 2: PhaseId2 - A possible random phase choice.
+Parameter 3: PhaseId3 - A possible random phase choice.
+
+Randomly sets the phase to one from the three parameter choices.
+NOTE: Use -1 to specify that if this param is picked to do nothing. Random is constant between actions within an event. So if you have a random Yell and a random Sound they will match up (ex: param2 with param2)
+NOTE 2: PLEASE NOTE THAT EACH OF THE PARAM VALUES ARE ACTUAL PHASE NUMBERS NOT THE INVERSE PHASE MASK VALUE.
+This is commonly used for Spellcasting NPC's who on Aggro may select at random a school of spells to use for the fight. Use this if you have up to 3 phases used, otherwise use Action 31 for more then 3 phases.
+
+---------------------------------
+31 = ACTION_T_RANDOM_PHASE_RANGE:
+---------------------------------
+Parameter 1: PhaseMin - The minimum of the phase range.
+Parameter 2: PhaseMax - The maximum of the phase range. The number here must be greater than PhaseMin.
+
+Randomly sets the phase between a range of phases controlled by the parameters. Sets the phase to a random id (Phase = PhaseMin + rnd % PhaseMin-PhaseMax).
+NOTE: PhaseMax must be greater than PhaseMin.
+NOTE 2: PLEASE NOTE THAT EACH OF THE PARAM VALUES ARE ACTUAL PHASE NUMBERS NOT THE INVERSE PHASE MASK VALUE.
+This is commonly used for Spellcasting NPC's who on Aggro may select at random a school of spells to use for the fight. Use this if you have MORE then 3 phases used, otherwise use Action 30.
+
+---------------------
+32 = ACTION_T_SUMMON:
+---------------------
+Parameter 1: CreatureID - The creature template ID to be summoned. The value here needs to be a valid creature template ID.
+Parameter 2: Target - The target type defining who the summoned creature will attack. The value in this field needs to be a valid target type as specified in the reference tables below. NOTE: Using target type 0 will cause the summoned creature to not attack anyone.
+Parameter 3: SummonID - The summon ID from the eventai_summons table controlling the position (and spawntime) where the summoned mob should be spawned at.
+
+Summons creature (param1) to attack target (param2) at location specified by EventAI_Summons (param3).
+NOTE: Param3 Value is the ID Value used for the entry used in EventAI_Summons for this action. You MUST have an EventAI_Summons entry to use this action.
+This is commonly used for NPC's who need to Summon a creature at a specific location. (Normally used for complex events)
+
+-----------------------------
+33 = ACTION_T_KILLED_MONSTER:
+-----------------------------
+Parameter 1: CreatureID - The creature template ID. The value here must be a valid creature template ID.
+Parameter 2: Target - The target type defining whom the quest kill count should be given to. The value in this field needs to be a valid target type as specified in the reference tables below.
+
+When activated, this action will call KilledMonster() function for the player. It can be used to give creature credit for killing a creature. In general if the quest is set to be accompished on different creatures (e.g. "Credit" templates).
+NOTE: It can be ANY creature including certain quest specific triggers
+This is commonly used for giving the player Quest Credits for NPC kills (Many NPC's may use the same CreatureID for the Kill Credit)
+
+----------------------------
+34 = ACTION_T_SET_INST_DATA:
+----------------------------
+Parameter 1: Field - The field to change in the instance script. Again, this field needs to be a valid field that has been already defined in the instance's script.
+Parameter 2: Data - The value to put at that field index.
+
+Sets data for the instance. Note that this will only work when the creature is inside an instantiable zone that has a valid script (ScriptedInstance) assigned.
+NOTE: Param1 Value is located in "def_<instance name>.h" SD2 File and Param2 value is generally found in the "sc_instance.h" file in SD2
+This is commonly used to link an ACID script with a SD2 C++ Script. You make make things happen like opening doors on specific events that happen. ACID Just triggers the C++ Script to function.
+
+------------------------------
+35 = ACTION_T_SET_INST_DATA64:
+------------------------------
+Parameter 1: Field - The field to change in the instance script. Again, this field needs to be a valid field that has been already defined in the instance's script.
+Parameter 2: Target - The target type to use to get the GUID that will be stored at the field index. The value in this field needs to be a valid target type as specified in the reference tables below.
+
+Sets GUID (64 bits) data for the instance based on the target. Note that this will only work when the creature is inside an instantiable zone that has a valid script (ScriptedInstance) assigned.
+Calls ScriptedInstance::SetData64 with field (param1) and data (param2) target's GUID.
+
+------------------------------
+36 = ACTION_T_UPDATE_TEMPLATE:
+------------------------------
+Parameter 1: TemplateId - The creature template ID. The value here must be a valid creature template ID.
+Parameter 2: Team - Use model_id from team : Alliance(0) or Horde (1).
+
+This function temporarily changes creature entry to new entry, display is changed, loot is changed, but AI is not changed. At respawn creature will be reverted to original entry.
+Changes the creature to a new creature template of (param1) with team = Alliance if (param2) = false or Horde if (param2) = true
+
+------------------
+37 = ACTION_T_DIE:
+------------------
+Kills the creature
+This is commonly used if you need to Instakill the creature for one reason or another.
+
+--------------------------------
+38 = ACTION_T_ZONE_COMBAT_PULSE:
+--------------------------------
+Places all players within the instance into combat with the creature. Only works in combat and only works inside of instances.
+
+
+=========================================
+Target Types
+=========================================
+Below is the list of current Target types that EventAI can handle.
+Target types are used by certain actions and may effect actions differently
+
+(# Internal Name Discription)
+0 TARGET_T_SELF Self cast
+1 TARGET_T_HOSTILE Our current target (ie: highest aggro)
+2 TARGET_T_HOSTILE_SECOND_AGGRO Second highest aggro (generaly used for cleaves and some special attacks)
+3 TARGET_T_HOSTILE_LAST_AGGRO Dead last on aggro (no idea what this could be used for)
+4 TARGET_T_HOSTILE_RANDOM Just any random target on our threat list
+5 TARGET_T_HOSTILE_RANDOM_NOT_TOP Any random target except top threat
+6 TARGET_T_ACTION_INVOKER Unit who caused this Event to occur (only works for EVENT_T_AGGRO, EVENT_T_KILL, EVENT_T_DEATH, EVENT_T_SPELLHIT, EVENT_T_OOC_LOS, EVENT_T_FRIENDLY_HP)
+
+=========================================
+Cast Flags
+=========================================
+Below is the list of current Cast Flags that EventAI's spell casting can handle.
+Cast flags are handled bitwise. Bit 0 is Interrupt Previous, bit 1 is triggered, etc.
+So for example the number "3" (11 in Binary, selecting first 2 options) would mean that this cast has both CAST_INTURRUPT_PREVIOUS and CAST_TRIGGERED.
+Another example: the number "5" (101 in Binary, selecting first and third options) would mean that this cast has CAST_INTURRUPT_PREVIOUS and CAST_FORCE_CAST.
+
+(bit# Decimal Internal Name Discription)
+0 1 CAST_INTURRUPT_PREVIOUS Interrupts any previous spell casting (basicaly makes sure that this spell goes off)
+1 2 CAST_TRIGGERED Forces the spell to be instant cast and require no mana/reagents.
+2 4 CAST_FORCE_CAST Forces spell to cast even if the target is possibly out of range or the creature is possibly out of mana
+3 8 CAST_NO_MELEE_IF_OOM Prevents creature from entering melee if out of mana or out of range
+4 16 CAST_FORCE_TARGET_SELF Forces the target to cast this spell on itself
+5 32 CAST_AURA_NOT_PRESENT Only casts the spell on the target if the target does not have the aura from that spell on itself already.
+
+NOTE: You can add the numbers in the decimal column to combine flags.
+ For example if you wanted to use CAST_NO_MELEE_IF_OOM(8) and CAST_TRIGGERED(2) you would simply use 10 in the cast flags field (8 + 2 = 10).
+
+=========================================
+Event Flags
+=========================================
+Below is the list of current Event Flags that EventAI can handle. Event flags are handled bitwise.
+
+(bit# Decimal Internal Name Discription)
+0 1 EFLAG_REPEATABLE Event repeats (Does not repeat if this flag is not set)
+1 2 EFLAG_NORMAL Event occurs in Normal instance difficulty (will not occur in Normal if not set)
+2 4 EFLAG_HEROIC Event occurs in Heroic instance difficulty (will not occur in Heroic if not set)
+3 8
+4 16
+5 32
+6 64
+7 128 EFLAG_DEBUG_ONLY Prevents events from occuring on Release builds of ScriptDev2. Useful for testing new features.
+
NOTE: You can add the numbers in the decimal column to combine flags. \ No newline at end of file
diff --git a/src/bindings/scripts/include/sc_creature.cpp b/src/bindings/scripts/include/sc_creature.cpp
index 8e18b0fc29e..80271821ade 100644
--- a/src/bindings/scripts/include/sc_creature.cpp
+++ b/src/bindings/scripts/include/sc_creature.cpp
@@ -1,608 +1,608 @@
-/* Copyright (C) 2006 - 2008 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
- * This program is free software licensed under GPL version 2
- * Please see the included DOCS/LICENSE.TXT for more information */
-
-#include "precompiled.h"
-#include "Item.h"
-#include "Spell.h"
-
-// Spell summary for ScriptedAI::SelectSpell
-struct TSpellSummary {
- uint8 Targets; // set of enum SelectTarget
- uint8 Effects; // set of enum SelectEffect
-} *SpellSummary;
-
-bool ScriptedAI::IsVisible(Unit* who) const
-{
- if (!who)
- return false;
-
- return (m_creature->GetDistance(who) < VISIBLE_RANGE) && who->isVisibleForOrDetect(m_creature,true);
-}
-
-void ScriptedAI::MoveInLineOfSight(Unit *who)
-{
- if( !m_creature->getVictim() && who->isTargetableForAttack() && ( m_creature->IsHostileTo( who )) && who->isInAccessablePlaceFor(m_creature) )
- {
- if (!m_creature->canFly() && m_creature->GetDistanceZ(who) > CREATURE_Z_ATTACK_RANGE)
- return;
-
- float attackRadius = m_creature->GetAttackDistance(who);
- if( m_creature->IsWithinDistInMap(who, attackRadius) && m_creature->IsWithinLOSInMap(who) )
- {
- DoStartAttackAndMovement(who);
- who->RemoveSpellsCausingAura(SPELL_AURA_MOD_STEALTH);
-
- if (!InCombat)
- {
- InCombat = true;
- Aggro(who);
- }
- }
- }
-}
-
-void ScriptedAI::AttackStart(Unit* who)
-{
- if (!who)
- return;
-
- if (who->isTargetableForAttack())
- {
- //Begin attack
- DoStartAttackAndMovement(who);
-
- if (!InCombat)
- {
- InCombat = true;
- Aggro(who);
- }
- }
-}
-
-void ScriptedAI::UpdateAI(const uint32 diff)
-{
- //Check if we have a current target
- if( m_creature->isAlive() && m_creature->SelectHostilTarget() && m_creature->getVictim())
- {
- if( m_creature->isAttackReady() )
- {
- //If we are within range melee the target
- if( m_creature->IsWithinDistInMap(m_creature->getVictim(), ATTACK_DISTANCE))
- {
- m_creature->AttackerStateUpdate(m_creature->getVictim());
- m_creature->resetAttackTimer();
- }
- }
- }
-}
-
-void ScriptedAI::EnterEvadeMode()
-{
- m_creature->InterruptNonMeleeSpells(true);
- m_creature->RemoveAllAuras();
- m_creature->DeleteThreatList();
- m_creature->CombatStop();
- m_creature->LoadCreaturesAddon();
-
- if( m_creature->isAlive() )
- m_creature->GetMotionMaster()->MoveTargetedHome();
-
- m_creature->SetLootRecipient(NULL);
-
- InCombat = false;
- Reset();
-}
-
-void ScriptedAI::JustRespawned()
-{
- InCombat = false;
- Reset();
-}
-
-void ScriptedAI::DoStartAttackAndMovement(Unit* victim, float distance, float angle)
-{
- if (!victim)
- return;
-
- if ( m_creature->Attack(victim, true) )
- {
- m_creature->GetMotionMaster()->MoveChase(victim, distance, angle);
- m_creature->AddThreat(victim, 0.0f);
- }
-}
-
-void ScriptedAI::DoStartAttackNoMovement(Unit* victim)
-{
- if (!victim)
- return;
-
- if ( m_creature->Attack(victim, true) )
- {
- m_creature->AddThreat(victim, 0.0f);
- }
-}
-
-
-void ScriptedAI::DoMeleeAttackIfReady()
-{
- //Make sure our attack is ready and we aren't currently casting before checking distance
- if( m_creature->isAttackReady() && !m_creature->IsNonMeleeSpellCasted(false))
- {
- //If we are within range melee the target
- if( m_creature->IsWithinDistInMap(m_creature->getVictim(), ATTACK_DISTANCE))
- {
- m_creature->AttackerStateUpdate(m_creature->getVictim());
- m_creature->resetAttackTimer();
- }
- }
-}
-
-void ScriptedAI::DoStopAttack()
-{
- if( m_creature->getVictim() != NULL )
- {
- m_creature->AttackStop();
- }
-}
-
-void ScriptedAI::DoCast(Unit* victim, uint32 spellId, bool triggered)
-{
- if (!victim || m_creature->IsNonMeleeSpellCasted(false))
- return;
-
- m_creature->StopMoving();
- m_creature->CastSpell(victim, spellId, triggered);
-}
-
-void ScriptedAI::DoCastSpell(Unit* who,SpellEntry const *spellInfo, bool triggered)
-{
- if (!who || m_creature->IsNonMeleeSpellCasted(false))
- return;
-
- m_creature->StopMoving();
- m_creature->CastSpell(who, spellInfo, triggered);
-}
-
-void ScriptedAI::DoSay(const char* text, uint32 language, Unit* target)
-{
- if (target)m_creature->Say(text, language, target->GetGUID());
- else m_creature->Say(text, language, 0);
-}
-
-void ScriptedAI::DoYell(const char* text, uint32 language, Unit* target)
-{
- if (target)m_creature->Yell(text, language, target->GetGUID());
- else m_creature->Yell(text, language, 0);
-}
-
-void ScriptedAI::DoTextEmote(const char* text, Unit* target, bool IsBossEmote)
-{
- if (target)m_creature->TextEmote(text, target->GetGUID(), IsBossEmote);
- else m_creature->TextEmote(text, 0, IsBossEmote);
-}
-
-void ScriptedAI::DoWhisper(const char* text, Unit* reciever, bool IsBossWhisper)
-{
- if (!reciever || reciever->GetTypeId() != TYPEID_PLAYER)
- return;
-
- m_creature->Whisper(text, reciever->GetGUID(), IsBossWhisper);
-}
-
-void ScriptedAI::DoPlaySoundToSet(Unit* unit, uint32 sound)
-{
- if (!unit)
- return;
-
- if (!GetSoundEntriesStore()->LookupEntry(sound))
- {
- error_log("SD2: Invalid soundId %u used in DoPlaySoundToSet (by unit TypeId %u, guid %u)", sound, unit->GetTypeId(), unit->GetGUID());
- return;
- }
-
- unit->SendPlaySound(sound, false);
-}
-
-Creature* ScriptedAI::DoSpawnCreature(uint32 id, float x, float y, float z, float angle, uint32 type, uint32 despawntime)
-{
- return m_creature->SummonCreature(id,m_creature->GetPositionX() + x,m_creature->GetPositionY() + y,m_creature->GetPositionZ() + z, angle, (TempSummonType)type, despawntime);
-}
-
-Unit* ScriptedAI::SelectUnit(SelectAggroTarget target, uint32 position)
-{
- //ThreatList m_threatlist;
- std::list<HostilReference*>& m_threatlist = m_creature->getThreatManager().getThreatList();
- std::list<HostilReference*>::iterator i = m_threatlist.begin();
- std::list<HostilReference*>::reverse_iterator r = m_threatlist.rbegin();
-
- if (position >= m_threatlist.size() || !m_threatlist.size())
- return NULL;
-
- switch (target)
- {
- case SELECT_TARGET_RANDOM:
- advance ( i , position + (rand() % (m_threatlist.size() - position ) ));
- return Unit::GetUnit((*m_creature),(*i)->getUnitGuid());
- break;
-
- case SELECT_TARGET_TOPAGGRO:
- advance ( i , position);
- return Unit::GetUnit((*m_creature),(*i)->getUnitGuid());
- break;
-
- case SELECT_TARGET_BOTTOMAGGRO:
- advance ( r , position);
- return Unit::GetUnit((*m_creature),(*r)->getUnitGuid());
- break;
- }
-
- return NULL;
-}
-
-SpellEntry const* ScriptedAI::SelectSpell(Unit* Target, int32 School, int32 Mechanic, SelectTarget Targets, uint32 PowerCostMin, uint32 PowerCostMax, float RangeMin, float RangeMax, SelectEffect Effects)
-{
- //No target so we can't cast
- if (!Target)
- return false;
-
- //Silenced so we can't cast
- if (m_creature->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SILENCED))
- return false;
-
- //Using the extended script system we first create a list of viable spells
- SpellEntry const* Spell[4];
- Spell[0] = 0;
- Spell[1] = 0;
- Spell[2] = 0;
- Spell[3] = 0;
-
- uint32 SpellCount = 0;
-
- SpellEntry const* TempSpell;
- SpellRangeEntry const* TempRange;
-
- //Check if each spell is viable(set it to null if not)
- for (uint32 i = 0; i < 4; i++)
- {
- TempSpell = GetSpellStore()->LookupEntry(m_creature->m_spells[i]);
-
- //This spell doesn't exist
- if (!TempSpell)
- continue;
-
- // Targets and Effects checked first as most used restrictions
- //Check the spell targets if specified
- if ( Targets && !(SpellSummary[m_creature->m_spells[i]].Targets & (1 << (Targets-1))) )
- continue;
-
- //Check the type of spell if we are looking for a specific spell type
- if ( Effects && !(SpellSummary[m_creature->m_spells[i]].Effects & (1 << (Effects-1))) )
- continue;
-
- //Check for school if specified
- if (School >= 0 && TempSpell->SchoolMask & School)
- continue;
-
- //Check for spell mechanic if specified
- if (Mechanic >= 0 && TempSpell->Mechanic != Mechanic)
- continue;
-
- //Make sure that the spell uses the requested amount of power
- if (PowerCostMin && TempSpell->manaCost < PowerCostMin)
- continue;
-
- if (PowerCostMax && TempSpell->manaCost > PowerCostMax)
- continue;
-
- //Continue if we don't have the mana to actually cast this spell
- if (TempSpell->manaCost > m_creature->GetPower((Powers)TempSpell->powerType))
- continue;
-
- //Get the Range
- TempRange = GetSpellRangeStore()->LookupEntry(TempSpell->rangeIndex);
-
- //Spell has invalid range store so we can't use it
- if (!TempRange)
- continue;
-
- //Check if the spell meets our range requirements
- if (RangeMin && TempRange->maxRange < RangeMin)
- continue;
- if (RangeMax && TempRange->maxRange > RangeMax)
- continue;
-
- //Check if our target is in range
- if (m_creature->IsWithinDistInMap(Target, TempRange->minRange) || !m_creature->IsWithinDistInMap(Target, TempRange->maxRange))
- continue;
-
- //All good so lets add it to the spell list
- Spell[SpellCount] = TempSpell;
- SpellCount++;
- }
-
- //We got our usable spells so now lets randomly pick one
- if (!SpellCount)
- return NULL;
-
- return Spell[rand()%SpellCount];
-}
-
-bool ScriptedAI::CanCast(Unit* Target, SpellEntry const *Spell, bool Triggered)
-{
- //No target so we can't cast
- if (!Target || !Spell)
- return false;
-
- //Silenced so we can't cast
- if (!Triggered && m_creature->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SILENCED))
- return false;
-
- //Check for power
- if (!Triggered && m_creature->GetPower((Powers)Spell->powerType) < Spell->manaCost)
- return false;
-
- SpellRangeEntry const *TempRange = NULL;
-
- TempRange = GetSpellRangeStore()->LookupEntry(Spell->rangeIndex);
-
- //Spell has invalid range store so we can't use it
- if (!TempRange)
- return false;
-
- //Unit is out of range of this spell
- if (m_creature->GetDistance(Target) > TempRange->maxRange || m_creature->GetDistance(Target) < TempRange->minRange)
- return false;
-
- return true;
-}
-
-void FillSpellSummary()
-{
- SpellSummary = new TSpellSummary[GetSpellStore()->GetNumRows()];
-
- SpellEntry const* TempSpell;
-
- for (int i=0; i < GetSpellStore()->GetNumRows(); i++ )
- {
- SpellSummary[i].Effects = 0;
- SpellSummary[i].Targets = 0;
-
- TempSpell = GetSpellStore()->LookupEntry(i);
- //This spell doesn't exist
- if (!TempSpell)
- continue;
-
- for (int j=0; j<3; j++)
- {
- //Spell targets self
- if ( TempSpell->EffectImplicitTargetA[j] == TARGET_SELF )
- SpellSummary[i].Targets |= 1 << (SELECT_TARGET_SELF-1);
-
- //Spell targets a single enemy
- if ( TempSpell->EffectImplicitTargetA[j] == TARGET_CHAIN_DAMAGE ||
- TempSpell->EffectImplicitTargetA[j] == TARGET_CURRENT_ENEMY_COORDINATES )
- SpellSummary[i].Targets |= 1 << (SELECT_TARGET_SINGLE_ENEMY-1);
-
- //Spell targets AoE at enemy
- if ( TempSpell->EffectImplicitTargetA[j] == TARGET_ALL_ENEMY_IN_AREA ||
- TempSpell->EffectImplicitTargetA[j] == TARGET_ALL_ENEMY_IN_AREA_INSTANT ||
- TempSpell->EffectImplicitTargetA[j] == TARGET_ALL_AROUND_CASTER ||
- TempSpell->EffectImplicitTargetA[j] == TARGET_ALL_ENEMY_IN_AREA_CHANNELED )
- SpellSummary[i].Targets |= 1 << (SELECT_TARGET_AOE_ENEMY-1);
-
- //Spell targets an enemy
- if ( TempSpell->EffectImplicitTargetA[j] == TARGET_CHAIN_DAMAGE ||
- TempSpell->EffectImplicitTargetA[j] == TARGET_CURRENT_ENEMY_COORDINATES ||
- TempSpell->EffectImplicitTargetA[j] == TARGET_ALL_ENEMY_IN_AREA ||
- TempSpell->EffectImplicitTargetA[j] == TARGET_ALL_ENEMY_IN_AREA_INSTANT ||
- TempSpell->EffectImplicitTargetA[j] == TARGET_ALL_AROUND_CASTER ||
- TempSpell->EffectImplicitTargetA[j] == TARGET_ALL_ENEMY_IN_AREA_CHANNELED )
- SpellSummary[i].Targets |= 1 << (SELECT_TARGET_ANY_ENEMY-1);
-
- //Spell targets a single friend(or self)
- if ( TempSpell->EffectImplicitTargetA[j] == TARGET_SELF ||
- TempSpell->EffectImplicitTargetA[j] == TARGET_SINGLE_FRIEND ||
- TempSpell->EffectImplicitTargetA[j] == TARGET_SINGLE_PARTY )
- SpellSummary[i].Targets |= 1 << (SELECT_TARGET_SINGLE_FRIEND-1);
-
- //Spell targets aoe friends
- if ( TempSpell->EffectImplicitTargetA[j] == TARGET_ALL_PARTY_AROUND_CASTER ||
- TempSpell->EffectImplicitTargetA[j] == TARGET_AREAEFFECT_PARTY ||
- TempSpell->EffectImplicitTargetA[j] == TARGET_ALL_AROUND_CASTER)
- SpellSummary[i].Targets |= 1 << (SELECT_TARGET_AOE_FRIEND-1);
-
- //Spell targets any friend(or self)
- if ( TempSpell->EffectImplicitTargetA[j] == TARGET_SELF ||
- TempSpell->EffectImplicitTargetA[j] == TARGET_SINGLE_FRIEND ||
- TempSpell->EffectImplicitTargetA[j] == TARGET_SINGLE_PARTY ||
- TempSpell->EffectImplicitTargetA[j] == TARGET_ALL_PARTY_AROUND_CASTER ||
- TempSpell->EffectImplicitTargetA[j] == TARGET_AREAEFFECT_PARTY ||
- TempSpell->EffectImplicitTargetA[j] == TARGET_ALL_AROUND_CASTER)
- SpellSummary[i].Targets |= 1 << (SELECT_TARGET_ANY_FRIEND-1);
-
- //Make sure that this spell includes a damage effect
- if ( TempSpell->Effect[j] == SPELL_EFFECT_SCHOOL_DAMAGE ||
- TempSpell->Effect[j] == SPELL_EFFECT_INSTAKILL ||
- TempSpell->Effect[j] == SPELL_EFFECT_ENVIRONMENTAL_DAMAGE ||
- TempSpell->Effect[j] == SPELL_EFFECT_HEALTH_LEECH )
- SpellSummary[i].Effects |= 1 << (SELECT_EFFECT_DAMAGE-1);
-
- //Make sure that this spell includes a healing effect (or an apply aura with a periodic heal)
- if ( TempSpell->Effect[j] == SPELL_EFFECT_HEAL ||
- TempSpell->Effect[j] == SPELL_EFFECT_HEAL_MAX_HEALTH ||
- TempSpell->Effect[j] == SPELL_EFFECT_HEAL_MECHANICAL ||
- (TempSpell->Effect[j] == SPELL_EFFECT_APPLY_AURA && TempSpell->EffectApplyAuraName[j]== 8 ))
- SpellSummary[i].Effects |= 1 << (SELECT_EFFECT_HEALING-1);
-
- //Make sure that this spell applies an aura
- if ( TempSpell->Effect[j] == SPELL_EFFECT_APPLY_AURA )
- SpellSummary[i].Effects |= 1 << (SELECT_EFFECT_AURA-1);
- }
- }
-}
-
-void ScriptedAI::DoZoneInCombat(Unit* pUnit)
-{
- if (!pUnit)
- pUnit = m_creature;
-
- Map *map = pUnit->GetMap();
-
- if (!map->IsDungeon()) //use IsDungeon instead of Instanceable, in case battlegrounds will be instantiated
- {
- error_log("SD2: DoZoneInCombat call for map that isn't an instance (pUnit entry = %d)", pUnit->GetTypeId() == TYPEID_UNIT ? ((Creature*)pUnit)->GetEntry() : 0);
- return;
- }
-
- if (!pUnit->CanHaveThreatList() || pUnit->getThreatManager().isThreatListEmpty())
- {
- error_log("SD2: DoZoneInCombat called for creature that either cannot have threat list or has empty threat list (pUnit entry = %d)", pUnit->GetTypeId() == TYPEID_UNIT ? ((Creature*)pUnit)->GetEntry() : 0);
-
- return;
- }
-
- InstanceMap::PlayerList const &PlayerList = ((InstanceMap*)map)->GetPlayers();
- InstanceMap::PlayerList::const_iterator i;
- for (i = PlayerList.begin(); i != PlayerList.end(); ++i)
- {
- if(!(*i)->isGameMaster())
- pUnit->AddThreat(*i, 0.0f);
- }
-}
-
-void ScriptedAI::DoResetThreat()
-{
- if (!m_creature->CanHaveThreatList() || m_creature->getThreatManager().isThreatListEmpty())
- {
- error_log("SD2: DoResetThreat called for creature that either cannot have threat list or has empty threat list (m_creature entry = %d)", m_creature->GetEntry());
-
- return;
- }
-
- std::list<HostilReference*>& m_threatlist = m_creature->getThreatManager().getThreatList();
- std::list<HostilReference*>::iterator itr;
-
- for(itr = m_threatlist.begin(); itr != m_threatlist.end(); ++itr)
- {
- Unit* pUnit = NULL;
- pUnit = Unit::GetUnit((*m_creature), (*itr)->getUnitGuid());
- if(pUnit && m_creature->getThreatManager().getThreat(pUnit))
- m_creature->getThreatManager().modifyThreatPercent(pUnit, -100);
- }
-}
-
-void ScriptedAI::DoTeleportPlayer(Unit* pUnit, float x, float y, float z, float o)
-{
- if(!pUnit || pUnit->GetTypeId() != TYPEID_PLAYER)
- {
- if(pUnit)
- error_log("SD2: Creature %u (Entry: %u) Tried to teleport non-player unit (Type: %u GUID: %u) to x: %f y:%f z: %f o: %f. Aborted.", m_creature->GetGUID(), m_creature->GetEntry(), pUnit->GetTypeId(), pUnit->GetGUID(), x, y, z, o);
- return;
- }
-
- ((Player*)pUnit)->TeleportTo(pUnit->GetMapId(), x, y, z, o, TELE_TO_NOT_LEAVE_COMBAT);
-}
-
-Unit* ScriptedAI::DoSelectLowestHpFriendly(float range, uint32 MinHPDiff)
-{
- CellPair p(MaNGOS::ComputeCellPair(m_creature->GetPositionX(), m_creature->GetPositionY()));
- Cell cell(p);
- cell.data.Part.reserved = ALL_DISTRICT;
- cell.SetNoCreate();
-
- Unit* pUnit = NULL;
-
- MaNGOS::MostHPMissingInRange u_check(m_creature, range, MinHPDiff);
- MaNGOS::UnitLastSearcher<MaNGOS::MostHPMissingInRange> searcher(pUnit, u_check);
-
- /*
- typedef TYPELIST_4(GameObject, Creature*except pets*, DynamicObject, Corpse*Bones*) AllGridObjectTypes;
- This means that if we only search grid then we cannot possibly return pets or players so this is safe
- */
- TypeContainerVisitor<MaNGOS::UnitLastSearcher<MaNGOS::MostHPMissingInRange>, GridTypeMapContainer > grid_unit_searcher(searcher);
-
- CellLock<GridReadGuard> cell_lock(cell, p);
- cell_lock->Visit(cell_lock, grid_unit_searcher, *(m_creature->GetMap()));
- return pUnit;
-}
-
-std::list<Creature*> ScriptedAI::DoFindFriendlyCC(float range)
-{
- CellPair p(MaNGOS::ComputeCellPair(m_creature->GetPositionX(), m_creature->GetPositionY()));
- Cell cell(p);
- cell.data.Part.reserved = ALL_DISTRICT;
- cell.SetNoCreate();
-
- std::list<Creature*> pList;
-
- MaNGOS::FriendlyCCedInRange u_check(m_creature, range);
- MaNGOS::CreatureListSearcher<MaNGOS::FriendlyCCedInRange> searcher(pList, u_check);
-
- TypeContainerVisitor<MaNGOS::CreatureListSearcher<MaNGOS::FriendlyCCedInRange>, GridTypeMapContainer > grid_creature_searcher(searcher);
-
- CellLock<GridReadGuard> cell_lock(cell, p);
- cell_lock->Visit(cell_lock, grid_creature_searcher, *(m_creature->GetMap()));
-
- return pList;
-}
-
-std::list<Creature*> ScriptedAI::DoFindFriendlyMissingBuff(float range, uint32 spellid)
-{
- CellPair p(MaNGOS::ComputeCellPair(m_creature->GetPositionX(), m_creature->GetPositionY()));
- Cell cell(p);
- cell.data.Part.reserved = ALL_DISTRICT;
- cell.SetNoCreate();
-
- std::list<Creature*> pList;
-
- MaNGOS::FriendlyMissingBuffInRange u_check(m_creature, range, spellid);
- MaNGOS::CreatureListSearcher<MaNGOS::FriendlyMissingBuffInRange> searcher(pList, u_check);
-
- TypeContainerVisitor<MaNGOS::CreatureListSearcher<MaNGOS::FriendlyMissingBuffInRange>, GridTypeMapContainer > grid_creature_searcher(searcher);
-
- CellLock<GridReadGuard> cell_lock(cell, p);
- cell_lock->Visit(cell_lock, grid_creature_searcher, *(m_creature->GetMap()));
-
- return pList;
-}
-
-void Scripted_NoMovementAI::MoveInLineOfSight(Unit *who)
-{
- if( !m_creature->getVictim() && who->isTargetableForAttack() && ( m_creature->IsHostileTo( who )) && who->isInAccessablePlaceFor(m_creature) )
- {
- if (!m_creature->canFly() && m_creature->GetDistanceZ(who) > CREATURE_Z_ATTACK_RANGE)
- return;
-
- float attackRadius = m_creature->GetAttackDistance(who);
- if( m_creature->IsWithinDistInMap(who, attackRadius) && m_creature->IsWithinLOSInMap(who) )
- {
- DoStartAttackNoMovement(who);
- who->RemoveSpellsCausingAura(SPELL_AURA_MOD_STEALTH);
-
- if (!InCombat)
- {
- InCombat = true;
- Aggro(who);
- }
- }
- }
-}
-
-void Scripted_NoMovementAI::AttackStart(Unit* who)
-{
- if (!who)
- return;
-
- if (who->isTargetableForAttack())
- {
- //Begin attack
- DoStartAttackNoMovement(who);
-
- if (!InCombat)
- {
- InCombat = true;
- Aggro(who);
- }
- }
-}
+/* Copyright (C) 2006 - 2008 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
+ * This program is free software licensed under GPL version 2
+ * Please see the included DOCS/LICENSE.TXT for more information */
+
+#include "precompiled.h"
+#include "Item.h"
+#include "Spell.h"
+
+// Spell summary for ScriptedAI::SelectSpell
+struct TSpellSummary {
+ uint8 Targets; // set of enum SelectTarget
+ uint8 Effects; // set of enum SelectEffect
+} *SpellSummary;
+
+bool ScriptedAI::IsVisible(Unit* who) const
+{
+ if (!who)
+ return false;
+
+ return (m_creature->GetDistance(who) < VISIBLE_RANGE) && who->isVisibleForOrDetect(m_creature,true);
+}
+
+void ScriptedAI::MoveInLineOfSight(Unit *who)
+{
+ if( !m_creature->getVictim() && who->isTargetableForAttack() && ( m_creature->IsHostileTo( who )) && who->isInAccessablePlaceFor(m_creature) )
+ {
+ if (!m_creature->canFly() && m_creature->GetDistanceZ(who) > CREATURE_Z_ATTACK_RANGE)
+ return;
+
+ float attackRadius = m_creature->GetAttackDistance(who);
+ if( m_creature->IsWithinDistInMap(who, attackRadius) && m_creature->IsWithinLOSInMap(who) )
+ {
+ DoStartAttackAndMovement(who);
+ who->RemoveSpellsCausingAura(SPELL_AURA_MOD_STEALTH);
+
+ if (!InCombat)
+ {
+ InCombat = true;
+ Aggro(who);
+ }
+ }
+ }
+}
+
+void ScriptedAI::AttackStart(Unit* who)
+{
+ if (!who)
+ return;
+
+ if (who->isTargetableForAttack())
+ {
+ //Begin attack
+ DoStartAttackAndMovement(who);
+
+ if (!InCombat)
+ {
+ InCombat = true;
+ Aggro(who);
+ }
+ }
+}
+
+void ScriptedAI::UpdateAI(const uint32 diff)
+{
+ //Check if we have a current target
+ if( m_creature->isAlive() && m_creature->SelectHostilTarget() && m_creature->getVictim())
+ {
+ if( m_creature->isAttackReady() )
+ {
+ //If we are within range melee the target
+ if( m_creature->IsWithinDistInMap(m_creature->getVictim(), ATTACK_DISTANCE))
+ {
+ m_creature->AttackerStateUpdate(m_creature->getVictim());
+ m_creature->resetAttackTimer();
+ }
+ }
+ }
+}
+
+void ScriptedAI::EnterEvadeMode()
+{
+ m_creature->InterruptNonMeleeSpells(true);
+ m_creature->RemoveAllAuras();
+ m_creature->DeleteThreatList();
+ m_creature->CombatStop();
+ m_creature->LoadCreaturesAddon();
+
+ if( m_creature->isAlive() )
+ m_creature->GetMotionMaster()->MoveTargetedHome();
+
+ m_creature->SetLootRecipient(NULL);
+
+ InCombat = false;
+ Reset();
+}
+
+void ScriptedAI::JustRespawned()
+{
+ InCombat = false;
+ Reset();
+}
+
+void ScriptedAI::DoStartAttackAndMovement(Unit* victim, float distance, float angle)
+{
+ if (!victim)
+ return;
+
+ if ( m_creature->Attack(victim, true) )
+ {
+ m_creature->GetMotionMaster()->MoveChase(victim, distance, angle);
+ m_creature->AddThreat(victim, 0.0f);
+ }
+}
+
+void ScriptedAI::DoStartAttackNoMovement(Unit* victim)
+{
+ if (!victim)
+ return;
+
+ if ( m_creature->Attack(victim, true) )
+ {
+ m_creature->AddThreat(victim, 0.0f);
+ }
+}
+
+
+void ScriptedAI::DoMeleeAttackIfReady()
+{
+ //Make sure our attack is ready and we aren't currently casting before checking distance
+ if( m_creature->isAttackReady() && !m_creature->IsNonMeleeSpellCasted(false))
+ {
+ //If we are within range melee the target
+ if( m_creature->IsWithinDistInMap(m_creature->getVictim(), ATTACK_DISTANCE))
+ {
+ m_creature->AttackerStateUpdate(m_creature->getVictim());
+ m_creature->resetAttackTimer();
+ }
+ }
+}
+
+void ScriptedAI::DoStopAttack()
+{
+ if( m_creature->getVictim() != NULL )
+ {
+ m_creature->AttackStop();
+ }
+}
+
+void ScriptedAI::DoCast(Unit* victim, uint32 spellId, bool triggered)
+{
+ if (!victim || m_creature->IsNonMeleeSpellCasted(false))
+ return;
+
+ m_creature->StopMoving();
+ m_creature->CastSpell(victim, spellId, triggered);
+}
+
+void ScriptedAI::DoCastSpell(Unit* who,SpellEntry const *spellInfo, bool triggered)
+{
+ if (!who || m_creature->IsNonMeleeSpellCasted(false))
+ return;
+
+ m_creature->StopMoving();
+ m_creature->CastSpell(who, spellInfo, triggered);
+}
+
+void ScriptedAI::DoSay(const char* text, uint32 language, Unit* target)
+{
+ if (target)m_creature->Say(text, language, target->GetGUID());
+ else m_creature->Say(text, language, 0);
+}
+
+void ScriptedAI::DoYell(const char* text, uint32 language, Unit* target)
+{
+ if (target)m_creature->Yell(text, language, target->GetGUID());
+ else m_creature->Yell(text, language, 0);
+}
+
+void ScriptedAI::DoTextEmote(const char* text, Unit* target, bool IsBossEmote)
+{
+ if (target)m_creature->TextEmote(text, target->GetGUID(), IsBossEmote);
+ else m_creature->TextEmote(text, 0, IsBossEmote);
+}
+
+void ScriptedAI::DoWhisper(const char* text, Unit* reciever, bool IsBossWhisper)
+{
+ if (!reciever || reciever->GetTypeId() != TYPEID_PLAYER)
+ return;
+
+ m_creature->Whisper(text, reciever->GetGUID(), IsBossWhisper);
+}
+
+void ScriptedAI::DoPlaySoundToSet(Unit* unit, uint32 sound)
+{
+ if (!unit)
+ return;
+
+ if (!GetSoundEntriesStore()->LookupEntry(sound))
+ {
+ error_log("SD2: Invalid soundId %u used in DoPlaySoundToSet (by unit TypeId %u, guid %u)", sound, unit->GetTypeId(), unit->GetGUID());
+ return;
+ }
+
+ unit->SendPlaySound(sound, false);
+}
+
+Creature* ScriptedAI::DoSpawnCreature(uint32 id, float x, float y, float z, float angle, uint32 type, uint32 despawntime)
+{
+ return m_creature->SummonCreature(id,m_creature->GetPositionX() + x,m_creature->GetPositionY() + y,m_creature->GetPositionZ() + z, angle, (TempSummonType)type, despawntime);
+}
+
+Unit* ScriptedAI::SelectUnit(SelectAggroTarget target, uint32 position)
+{
+ //ThreatList m_threatlist;
+ std::list<HostilReference*>& m_threatlist = m_creature->getThreatManager().getThreatList();
+ std::list<HostilReference*>::iterator i = m_threatlist.begin();
+ std::list<HostilReference*>::reverse_iterator r = m_threatlist.rbegin();
+
+ if (position >= m_threatlist.size() || !m_threatlist.size())
+ return NULL;
+
+ switch (target)
+ {
+ case SELECT_TARGET_RANDOM:
+ advance ( i , position + (rand() % (m_threatlist.size() - position ) ));
+ return Unit::GetUnit((*m_creature),(*i)->getUnitGuid());
+ break;
+
+ case SELECT_TARGET_TOPAGGRO:
+ advance ( i , position);
+ return Unit::GetUnit((*m_creature),(*i)->getUnitGuid());
+ break;
+
+ case SELECT_TARGET_BOTTOMAGGRO:
+ advance ( r , position);
+ return Unit::GetUnit((*m_creature),(*r)->getUnitGuid());
+ break;
+ }
+
+ return NULL;
+}
+
+SpellEntry const* ScriptedAI::SelectSpell(Unit* Target, int32 School, int32 Mechanic, SelectTarget Targets, uint32 PowerCostMin, uint32 PowerCostMax, float RangeMin, float RangeMax, SelectEffect Effects)
+{
+ //No target so we can't cast
+ if (!Target)
+ return false;
+
+ //Silenced so we can't cast
+ if (m_creature->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SILENCED))
+ return false;
+
+ //Using the extended script system we first create a list of viable spells
+ SpellEntry const* Spell[4];
+ Spell[0] = 0;
+ Spell[1] = 0;
+ Spell[2] = 0;
+ Spell[3] = 0;
+
+ uint32 SpellCount = 0;
+
+ SpellEntry const* TempSpell;
+ SpellRangeEntry const* TempRange;
+
+ //Check if each spell is viable(set it to null if not)
+ for (uint32 i = 0; i < 4; i++)
+ {
+ TempSpell = GetSpellStore()->LookupEntry(m_creature->m_spells[i]);
+
+ //This spell doesn't exist
+ if (!TempSpell)
+ continue;
+
+ // Targets and Effects checked first as most used restrictions
+ //Check the spell targets if specified
+ if ( Targets && !(SpellSummary[m_creature->m_spells[i]].Targets & (1 << (Targets-1))) )
+ continue;
+
+ //Check the type of spell if we are looking for a specific spell type
+ if ( Effects && !(SpellSummary[m_creature->m_spells[i]].Effects & (1 << (Effects-1))) )
+ continue;
+
+ //Check for school if specified
+ if (School >= 0 && TempSpell->SchoolMask & School)
+ continue;
+
+ //Check for spell mechanic if specified
+ if (Mechanic >= 0 && TempSpell->Mechanic != Mechanic)
+ continue;
+
+ //Make sure that the spell uses the requested amount of power
+ if (PowerCostMin && TempSpell->manaCost < PowerCostMin)
+ continue;
+
+ if (PowerCostMax && TempSpell->manaCost > PowerCostMax)
+ continue;
+
+ //Continue if we don't have the mana to actually cast this spell
+ if (TempSpell->manaCost > m_creature->GetPower((Powers)TempSpell->powerType))
+ continue;
+
+ //Get the Range
+ TempRange = GetSpellRangeStore()->LookupEntry(TempSpell->rangeIndex);
+
+ //Spell has invalid range store so we can't use it
+ if (!TempRange)
+ continue;
+
+ //Check if the spell meets our range requirements
+ if (RangeMin && TempRange->maxRange < RangeMin)
+ continue;
+ if (RangeMax && TempRange->maxRange > RangeMax)
+ continue;
+
+ //Check if our target is in range
+ if (m_creature->IsWithinDistInMap(Target, TempRange->minRange) || !m_creature->IsWithinDistInMap(Target, TempRange->maxRange))
+ continue;
+
+ //All good so lets add it to the spell list
+ Spell[SpellCount] = TempSpell;
+ SpellCount++;
+ }
+
+ //We got our usable spells so now lets randomly pick one
+ if (!SpellCount)
+ return NULL;
+
+ return Spell[rand()%SpellCount];
+}
+
+bool ScriptedAI::CanCast(Unit* Target, SpellEntry const *Spell, bool Triggered)
+{
+ //No target so we can't cast
+ if (!Target || !Spell)
+ return false;
+
+ //Silenced so we can't cast
+ if (!Triggered && m_creature->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SILENCED))
+ return false;
+
+ //Check for power
+ if (!Triggered && m_creature->GetPower((Powers)Spell->powerType) < Spell->manaCost)
+ return false;
+
+ SpellRangeEntry const *TempRange = NULL;
+
+ TempRange = GetSpellRangeStore()->LookupEntry(Spell->rangeIndex);
+
+ //Spell has invalid range store so we can't use it
+ if (!TempRange)
+ return false;
+
+ //Unit is out of range of this spell
+ if (m_creature->GetDistance(Target) > TempRange->maxRange || m_creature->GetDistance(Target) < TempRange->minRange)
+ return false;
+
+ return true;
+}
+
+void FillSpellSummary()
+{
+ SpellSummary = new TSpellSummary[GetSpellStore()->GetNumRows()];
+
+ SpellEntry const* TempSpell;
+
+ for (int i=0; i < GetSpellStore()->GetNumRows(); i++ )
+ {
+ SpellSummary[i].Effects = 0;
+ SpellSummary[i].Targets = 0;
+
+ TempSpell = GetSpellStore()->LookupEntry(i);
+ //This spell doesn't exist
+ if (!TempSpell)
+ continue;
+
+ for (int j=0; j<3; j++)
+ {
+ //Spell targets self
+ if ( TempSpell->EffectImplicitTargetA[j] == TARGET_SELF )
+ SpellSummary[i].Targets |= 1 << (SELECT_TARGET_SELF-1);
+
+ //Spell targets a single enemy
+ if ( TempSpell->EffectImplicitTargetA[j] == TARGET_CHAIN_DAMAGE ||
+ TempSpell->EffectImplicitTargetA[j] == TARGET_CURRENT_ENEMY_COORDINATES )
+ SpellSummary[i].Targets |= 1 << (SELECT_TARGET_SINGLE_ENEMY-1);
+
+ //Spell targets AoE at enemy
+ if ( TempSpell->EffectImplicitTargetA[j] == TARGET_ALL_ENEMY_IN_AREA ||
+ TempSpell->EffectImplicitTargetA[j] == TARGET_ALL_ENEMY_IN_AREA_INSTANT ||
+ TempSpell->EffectImplicitTargetA[j] == TARGET_ALL_AROUND_CASTER ||
+ TempSpell->EffectImplicitTargetA[j] == TARGET_ALL_ENEMY_IN_AREA_CHANNELED )
+ SpellSummary[i].Targets |= 1 << (SELECT_TARGET_AOE_ENEMY-1);
+
+ //Spell targets an enemy
+ if ( TempSpell->EffectImplicitTargetA[j] == TARGET_CHAIN_DAMAGE ||
+ TempSpell->EffectImplicitTargetA[j] == TARGET_CURRENT_ENEMY_COORDINATES ||
+ TempSpell->EffectImplicitTargetA[j] == TARGET_ALL_ENEMY_IN_AREA ||
+ TempSpell->EffectImplicitTargetA[j] == TARGET_ALL_ENEMY_IN_AREA_INSTANT ||
+ TempSpell->EffectImplicitTargetA[j] == TARGET_ALL_AROUND_CASTER ||
+ TempSpell->EffectImplicitTargetA[j] == TARGET_ALL_ENEMY_IN_AREA_CHANNELED )
+ SpellSummary[i].Targets |= 1 << (SELECT_TARGET_ANY_ENEMY-1);
+
+ //Spell targets a single friend(or self)
+ if ( TempSpell->EffectImplicitTargetA[j] == TARGET_SELF ||
+ TempSpell->EffectImplicitTargetA[j] == TARGET_SINGLE_FRIEND ||
+ TempSpell->EffectImplicitTargetA[j] == TARGET_SINGLE_PARTY )
+ SpellSummary[i].Targets |= 1 << (SELECT_TARGET_SINGLE_FRIEND-1);
+
+ //Spell targets aoe friends
+ if ( TempSpell->EffectImplicitTargetA[j] == TARGET_ALL_PARTY_AROUND_CASTER ||
+ TempSpell->EffectImplicitTargetA[j] == TARGET_AREAEFFECT_PARTY ||
+ TempSpell->EffectImplicitTargetA[j] == TARGET_ALL_AROUND_CASTER)
+ SpellSummary[i].Targets |= 1 << (SELECT_TARGET_AOE_FRIEND-1);
+
+ //Spell targets any friend(or self)
+ if ( TempSpell->EffectImplicitTargetA[j] == TARGET_SELF ||
+ TempSpell->EffectImplicitTargetA[j] == TARGET_SINGLE_FRIEND ||
+ TempSpell->EffectImplicitTargetA[j] == TARGET_SINGLE_PARTY ||
+ TempSpell->EffectImplicitTargetA[j] == TARGET_ALL_PARTY_AROUND_CASTER ||
+ TempSpell->EffectImplicitTargetA[j] == TARGET_AREAEFFECT_PARTY ||
+ TempSpell->EffectImplicitTargetA[j] == TARGET_ALL_AROUND_CASTER)
+ SpellSummary[i].Targets |= 1 << (SELECT_TARGET_ANY_FRIEND-1);
+
+ //Make sure that this spell includes a damage effect
+ if ( TempSpell->Effect[j] == SPELL_EFFECT_SCHOOL_DAMAGE ||
+ TempSpell->Effect[j] == SPELL_EFFECT_INSTAKILL ||
+ TempSpell->Effect[j] == SPELL_EFFECT_ENVIRONMENTAL_DAMAGE ||
+ TempSpell->Effect[j] == SPELL_EFFECT_HEALTH_LEECH )
+ SpellSummary[i].Effects |= 1 << (SELECT_EFFECT_DAMAGE-1);
+
+ //Make sure that this spell includes a healing effect (or an apply aura with a periodic heal)
+ if ( TempSpell->Effect[j] == SPELL_EFFECT_HEAL ||
+ TempSpell->Effect[j] == SPELL_EFFECT_HEAL_MAX_HEALTH ||
+ TempSpell->Effect[j] == SPELL_EFFECT_HEAL_MECHANICAL ||
+ (TempSpell->Effect[j] == SPELL_EFFECT_APPLY_AURA && TempSpell->EffectApplyAuraName[j]== 8 ))
+ SpellSummary[i].Effects |= 1 << (SELECT_EFFECT_HEALING-1);
+
+ //Make sure that this spell applies an aura
+ if ( TempSpell->Effect[j] == SPELL_EFFECT_APPLY_AURA )
+ SpellSummary[i].Effects |= 1 << (SELECT_EFFECT_AURA-1);
+ }
+ }
+}
+
+void ScriptedAI::DoZoneInCombat(Unit* pUnit)
+{
+ if (!pUnit)
+ pUnit = m_creature;
+
+ Map *map = pUnit->GetMap();
+
+ if (!map->IsDungeon()) //use IsDungeon instead of Instanceable, in case battlegrounds will be instantiated
+ {
+ error_log("SD2: DoZoneInCombat call for map that isn't an instance (pUnit entry = %d)", pUnit->GetTypeId() == TYPEID_UNIT ? ((Creature*)pUnit)->GetEntry() : 0);
+ return;
+ }
+
+ if (!pUnit->CanHaveThreatList() || pUnit->getThreatManager().isThreatListEmpty())
+ {
+ error_log("SD2: DoZoneInCombat called for creature that either cannot have threat list or has empty threat list (pUnit entry = %d)", pUnit->GetTypeId() == TYPEID_UNIT ? ((Creature*)pUnit)->GetEntry() : 0);
+
+ return;
+ }
+
+ InstanceMap::PlayerList const &PlayerList = ((InstanceMap*)map)->GetPlayers();
+ InstanceMap::PlayerList::const_iterator i;
+ for (i = PlayerList.begin(); i != PlayerList.end(); ++i)
+ {
+ if(!(*i)->isGameMaster())
+ pUnit->AddThreat(*i, 0.0f);
+ }
+}
+
+void ScriptedAI::DoResetThreat()
+{
+ if (!m_creature->CanHaveThreatList() || m_creature->getThreatManager().isThreatListEmpty())
+ {
+ error_log("SD2: DoResetThreat called for creature that either cannot have threat list or has empty threat list (m_creature entry = %d)", m_creature->GetEntry());
+
+ return;
+ }
+
+ std::list<HostilReference*>& m_threatlist = m_creature->getThreatManager().getThreatList();
+ std::list<HostilReference*>::iterator itr;
+
+ for(itr = m_threatlist.begin(); itr != m_threatlist.end(); ++itr)
+ {
+ Unit* pUnit = NULL;
+ pUnit = Unit::GetUnit((*m_creature), (*itr)->getUnitGuid());
+ if(pUnit && m_creature->getThreatManager().getThreat(pUnit))
+ m_creature->getThreatManager().modifyThreatPercent(pUnit, -100);
+ }
+}
+
+void ScriptedAI::DoTeleportPlayer(Unit* pUnit, float x, float y, float z, float o)
+{
+ if(!pUnit || pUnit->GetTypeId() != TYPEID_PLAYER)
+ {
+ if(pUnit)
+ error_log("SD2: Creature %u (Entry: %u) Tried to teleport non-player unit (Type: %u GUID: %u) to x: %f y:%f z: %f o: %f. Aborted.", m_creature->GetGUID(), m_creature->GetEntry(), pUnit->GetTypeId(), pUnit->GetGUID(), x, y, z, o);
+ return;
+ }
+
+ ((Player*)pUnit)->TeleportTo(pUnit->GetMapId(), x, y, z, o, TELE_TO_NOT_LEAVE_COMBAT);
+}
+
+Unit* ScriptedAI::DoSelectLowestHpFriendly(float range, uint32 MinHPDiff)
+{
+ CellPair p(MaNGOS::ComputeCellPair(m_creature->GetPositionX(), m_creature->GetPositionY()));
+ Cell cell(p);
+ cell.data.Part.reserved = ALL_DISTRICT;
+ cell.SetNoCreate();
+
+ Unit* pUnit = NULL;
+
+ MaNGOS::MostHPMissingInRange u_check(m_creature, range, MinHPDiff);
+ MaNGOS::UnitLastSearcher<MaNGOS::MostHPMissingInRange> searcher(pUnit, u_check);
+
+ /*
+ typedef TYPELIST_4(GameObject, Creature*except pets*, DynamicObject, Corpse*Bones*) AllGridObjectTypes;
+ This means that if we only search grid then we cannot possibly return pets or players so this is safe
+ */
+ TypeContainerVisitor<MaNGOS::UnitLastSearcher<MaNGOS::MostHPMissingInRange>, GridTypeMapContainer > grid_unit_searcher(searcher);
+
+ CellLock<GridReadGuard> cell_lock(cell, p);
+ cell_lock->Visit(cell_lock, grid_unit_searcher, *(m_creature->GetMap()));
+ return pUnit;
+}
+
+std::list<Creature*> ScriptedAI::DoFindFriendlyCC(float range)
+{
+ CellPair p(MaNGOS::ComputeCellPair(m_creature->GetPositionX(), m_creature->GetPositionY()));
+ Cell cell(p);
+ cell.data.Part.reserved = ALL_DISTRICT;
+ cell.SetNoCreate();
+
+ std::list<Creature*> pList;
+
+ MaNGOS::FriendlyCCedInRange u_check(m_creature, range);
+ MaNGOS::CreatureListSearcher<MaNGOS::FriendlyCCedInRange> searcher(pList, u_check);
+
+ TypeContainerVisitor<MaNGOS::CreatureListSearcher<MaNGOS::FriendlyCCedInRange>, GridTypeMapContainer > grid_creature_searcher(searcher);
+
+ CellLock<GridReadGuard> cell_lock(cell, p);
+ cell_lock->Visit(cell_lock, grid_creature_searcher, *(m_creature->GetMap()));
+
+ return pList;
+}
+
+std::list<Creature*> ScriptedAI::DoFindFriendlyMissingBuff(float range, uint32 spellid)
+{
+ CellPair p(MaNGOS::ComputeCellPair(m_creature->GetPositionX(), m_creature->GetPositionY()));
+ Cell cell(p);
+ cell.data.Part.reserved = ALL_DISTRICT;
+ cell.SetNoCreate();
+
+ std::list<Creature*> pList;
+
+ MaNGOS::FriendlyMissingBuffInRange u_check(m_creature, range, spellid);
+ MaNGOS::CreatureListSearcher<MaNGOS::FriendlyMissingBuffInRange> searcher(pList, u_check);
+
+ TypeContainerVisitor<MaNGOS::CreatureListSearcher<MaNGOS::FriendlyMissingBuffInRange>, GridTypeMapContainer > grid_creature_searcher(searcher);
+
+ CellLock<GridReadGuard> cell_lock(cell, p);
+ cell_lock->Visit(cell_lock, grid_creature_searcher, *(m_creature->GetMap()));
+
+ return pList;
+}
+
+void Scripted_NoMovementAI::MoveInLineOfSight(Unit *who)
+{
+ if( !m_creature->getVictim() && who->isTargetableForAttack() && ( m_creature->IsHostileTo( who )) && who->isInAccessablePlaceFor(m_creature) )
+ {
+ if (!m_creature->canFly() && m_creature->GetDistanceZ(who) > CREATURE_Z_ATTACK_RANGE)
+ return;
+
+ float attackRadius = m_creature->GetAttackDistance(who);
+ if( m_creature->IsWithinDistInMap(who, attackRadius) && m_creature->IsWithinLOSInMap(who) )
+ {
+ DoStartAttackNoMovement(who);
+ who->RemoveSpellsCausingAura(SPELL_AURA_MOD_STEALTH);
+
+ if (!InCombat)
+ {
+ InCombat = true;
+ Aggro(who);
+ }
+ }
+ }
+}
+
+void Scripted_NoMovementAI::AttackStart(Unit* who)
+{
+ if (!who)
+ return;
+
+ if (who->isTargetableForAttack())
+ {
+ //Begin attack
+ DoStartAttackNoMovement(who);
+
+ if (!InCombat)
+ {
+ InCombat = true;
+ Aggro(who);
+ }
+ }
+}
diff --git a/src/bindings/scripts/include/sc_gossip.h b/src/bindings/scripts/include/sc_gossip.h
index 48d9786a4ed..9857661ae9a 100644
--- a/src/bindings/scripts/include/sc_gossip.h
+++ b/src/bindings/scripts/include/sc_gossip.h
@@ -1,183 +1,183 @@
-/* Copyright (C) 2006 - 2008 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
- * This program is free software licensed under GPL version 2
- * Please see the included DOCS/LICENSE.TXT for more information */
-
-#ifndef SC_PLAYER_H
-#define SC_PLAYER_H
-
-#include "Player.h"
-#include "GossipDef.h"
-#include "QuestDef.h"
-
-// Gossip Item Text
-#define GOSSIP_TEXT_BROWSE_GOODS "I'd like to browse your goods."
-#define GOSSIP_TEXT_TRAIN "Train me!"
-
-#define GOSSIP_TEXT_BANK "The Bank"
-#define GOSSIP_TEXT_WINDRIDER "Wind rider master"
-#define GOSSIP_TEXT_GRYPHON "Gryphon Master"
-#define GOSSIP_TEXT_BATHANDLER "Bat Handler"
-#define GOSSIP_TEXT_HIPPOGRYPH "Hippogryph Master"
-#define GOSSIP_TEXT_FLIGHTMASTER "Flight Master"
-#define GOSSIP_TEXT_AUCTIONHOUSE "Auction House"
-#define GOSSIP_TEXT_GUILDMASTER "Guild Master"
-#define GOSSIP_TEXT_INN "The Inn"
-#define GOSSIP_TEXT_MAILBOX "Mailbox"
-#define GOSSIP_TEXT_STABLEMASTER "Stable Master"
-#define GOSSIP_TEXT_WEAPONMASTER "Weapons Trainer"
-#define GOSSIP_TEXT_BATTLEMASTER "Battlemaster"
-#define GOSSIP_TEXT_CLASSTRAINER "Class Trainer"
-#define GOSSIP_TEXT_PROFTRAINER "Profession Trainer"
-#define GOSSIP_TEXT_OFFICERS "The officers` lounge"
-
-#define GOSSIP_TEXT_ALTERACVALLEY "Alterac Valley"
-#define GOSSIP_TEXT_ARATHIBASIN "Arathi Basin"
-#define GOSSIP_TEXT_WARSONGULCH "Warsong Gulch"
-#define GOSSIP_TEXT_ARENA "Arena"
-#define GOSSIP_TEXT_EYEOFTHESTORM "Eye of The Storm"
-
-#define GOSSIP_TEXT_DRUID "Druid"
-#define GOSSIP_TEXT_HUNTER "Hunter"
-#define GOSSIP_TEXT_PRIEST "Priest"
-#define GOSSIP_TEXT_ROGUE "Rogue"
-#define GOSSIP_TEXT_WARRIOR "Warrior"
-#define GOSSIP_TEXT_PALADIN "Paladin"
-#define GOSSIP_TEXT_SHAMAN "Shaman"
-#define GOSSIP_TEXT_MAGE "Mage"
-#define GOSSIP_TEXT_WARLOCK "Warlock"
-
-#define GOSSIP_TEXT_ALCHEMY "Alchemy"
-#define GOSSIP_TEXT_BLACKSMITHING "Blacksmithing"
-#define GOSSIP_TEXT_COOKING "Cooking"
-#define GOSSIP_TEXT_ENCHANTING "Enchanting"
-#define GOSSIP_TEXT_ENGINEERING "Engineering"
-#define GOSSIP_TEXT_FIRSTAID "First Aid"
-#define GOSSIP_TEXT_HERBALISM "Herbalism"
-#define GOSSIP_TEXT_LEATHERWORKING "Leatherworking"
-#define GOSSIP_TEXT_POISONS "Poisons"
-#define GOSSIP_TEXT_TAILORING "Tailoring"
-#define GOSSIP_TEXT_MINING "Mining"
-#define GOSSIP_TEXT_FISHING "Fishing"
-#define GOSSIP_TEXT_SKINNING "Skinning"
-#define GOSSIP_TEXT_JEWELCRAFTING "Jewelcrafting"
-
-#define GOSSIP_TEXT_IRONFORGE_BANK "Bank of Ironforge"
-#define GOSSIP_TEXT_STORMWIND_BANK "Bank of Stormwind"
-#define GOSSIP_TEXT_DEEPRUNTRAM "Deeprun Tram"
-#define GOSSIP_TEXT_ZEPPLINMASTER "Zeppelin master"
-#define GOSSIP_TEXT_FERRY "Rut'theran Ferry"
-
-// Skill defines
-
-#define TRADESKILL_ALCHEMY 1
-#define TRADESKILL_BLACKSMITHING 2
-#define TRADESKILL_COOKING 3
-#define TRADESKILL_ENCHANTING 4
-#define TRADESKILL_ENGINEERING 5
-#define TRADESKILL_FIRSTAID 6
-#define TRADESKILL_HERBALISM 7
-#define TRADESKILL_LEATHERWORKING 8
-#define TRADESKILL_POISONS 9
-#define TRADESKILL_TAILORING 10
-#define TRADESKILL_MINING 11
-#define TRADESKILL_FISHING 12
-#define TRADESKILL_SKINNING 13
-#define TRADESKILL_JEWLCRAFTING 14
-
-#define TRADESKILL_LEVEL_NONE 0
-#define TRADESKILL_LEVEL_APPRENTICE 1
-#define TRADESKILL_LEVEL_JOURNEYMAN 2
-#define TRADESKILL_LEVEL_EXPERT 3
-#define TRADESKILL_LEVEL_ARTISAN 4
-#define TRADESKILL_LEVEL_MASTER 5
-
-// Gossip defines
-
-#define GOSSIP_ACTION_TRADE 1
-#define GOSSIP_ACTION_TRAIN 2
-#define GOSSIP_ACTION_TAXI 3
-#define GOSSIP_ACTION_GUILD 4
-#define GOSSIP_ACTION_BATTLE 5
-#define GOSSIP_ACTION_BANK 6
-#define GOSSIP_ACTION_INN 7
-#define GOSSIP_ACTION_HEAL 8
-#define GOSSIP_ACTION_TABARD 9
-#define GOSSIP_ACTION_AUCTION 10
-#define GOSSIP_ACTION_INN_INFO 11
-#define GOSSIP_ACTION_UNLEARN 12
-#define GOSSIP_ACTION_INFO_DEF 1000
-
-#define GOSSIP_SENDER_MAIN 1
-#define GOSSIP_SENDER_INN_INFO 2
-#define GOSSIP_SENDER_INFO 3
-#define GOSSIP_SENDER_SEC_PROFTRAIN 4
-#define GOSSIP_SENDER_SEC_CLASSTRAIN 5
-#define GOSSIP_SENDER_SEC_BATTLEINFO 6
-#define GOSSIP_SENDER_SEC_BANK 7
-#define GOSSIP_SENDER_SEC_INN 8
-#define GOSSIP_SENDER_SEC_MAILBOX 9
-#define GOSSIP_SENDER_SEC_STABLEMASTER 10
-
-#define DEFAULT_GOSSIP_MESSAGE 0xffffff
-
-extern uint32 GetSkillLevel(Player *player,uint32 skill);
-
-// Defined fuctions to use with player.
-
-// This fuction add's a menu item,
-// a - Icon Id
-// b - Text
-// c - Sender(this is to identify the current Menu with this item)
-// d - Action (identifys this Menu Item)
-// e - Text to be displayed in pop up box
-// f - Money value in pop up box
-#define ADD_GOSSIP_ITEM(a,b,c,d) PlayerTalkClass->GetGossipMenu().AddMenuItem(a,b,c,d,"",0)
-#define ADD_GOSSIP_ITEM_EXTENDED(a,b,c,d,e,f,g) PlayerTalkClass->GetGossipMenu().AddMenuItem(a,b,c,d,e,f,g)
-
-// This fuction Sends the current menu to show to client, a - NPCTEXTID(uint32) , b - npc guid(uint64)
-#define SEND_GOSSIP_MENU(a,b) PlayerTalkClass->SendGossipMenu(a,b)
-
-// This fuction shows POI(point of interest) to client.
-// a - position X
-// b - position Y
-// c - Icon Id
-// d - Flags
-// e - Data
-// f - Location Name
-#define SEND_POI(a,b,c,d,e,f) PlayerTalkClass->SendPointOfInterest(a,b,c,d,e,f)
-
-// Closes the Menu
-#define CLOSE_GOSSIP_MENU() PlayerTalkClass->CloseGossip()
-
-// Fuction to tell to client the details
-// a - quest object
-// b - npc guid(uint64)
-// c - Activate accept(bool)
-#define SEND_QUEST_DETAILS(a,b,c) PlayerTalkClass->SendQuestDetails(a,b,c)
-
-// Fuction to tell to client the requested items to complete quest
-// a - quest object
-// b - npc guid(uint64)
-// c - Iscompletable(bool)
-// d - close at cancel(bool) - in case single incomplite ques
-#define SEND_REQUESTEDITEMS(a,b,c,d) PlayerTalkClass->SendRequestedItems(a,b,c,d)
-
-// Fuctions to send NPC lists, a - is always the npc guid(uint64)
-#define SEND_VENDORLIST(a) GetSession()->SendListInventory(a)
-#define SEND_TRAINERLIST(a) GetSession()->SendTrainerList(a)
-#define SEND_BANKERLIST(a) GetSession()->SendShowBank(a)
-#define SEND_TABARDLIST(a) GetSession()->SendTabardVendorActivate(a)
-#define SEND_AUCTIONLIST(a) GetSession()->SendAuctionHello(a)
-#define SEND_TAXILIST(a) GetSession()->SendTaxiStatus(a)
-
-// Ressurect's the player if is dead.
-#define SEND_SPRESURRECT() GetSession()->SendSpiritResurrect()
-
-// Get the player's honor rank.
-#define GET_HONORRANK() GetHonorRank()
-// -----------------------------------
-
-// defined fuctions to use with Creature
-
-#define QUEST_DIALOG_STATUS(a,b,c) GetSession()->getDialogStatus(a,b,c)
-#endif
+/* Copyright (C) 2006 - 2008 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
+ * This program is free software licensed under GPL version 2
+ * Please see the included DOCS/LICENSE.TXT for more information */
+
+#ifndef SC_PLAYER_H
+#define SC_PLAYER_H
+
+#include "Player.h"
+#include "GossipDef.h"
+#include "QuestDef.h"
+
+// Gossip Item Text
+#define GOSSIP_TEXT_BROWSE_GOODS "I'd like to browse your goods."
+#define GOSSIP_TEXT_TRAIN "Train me!"
+
+#define GOSSIP_TEXT_BANK "The Bank"
+#define GOSSIP_TEXT_WINDRIDER "Wind rider master"
+#define GOSSIP_TEXT_GRYPHON "Gryphon Master"
+#define GOSSIP_TEXT_BATHANDLER "Bat Handler"
+#define GOSSIP_TEXT_HIPPOGRYPH "Hippogryph Master"
+#define GOSSIP_TEXT_FLIGHTMASTER "Flight Master"
+#define GOSSIP_TEXT_AUCTIONHOUSE "Auction House"
+#define GOSSIP_TEXT_GUILDMASTER "Guild Master"
+#define GOSSIP_TEXT_INN "The Inn"
+#define GOSSIP_TEXT_MAILBOX "Mailbox"
+#define GOSSIP_TEXT_STABLEMASTER "Stable Master"
+#define GOSSIP_TEXT_WEAPONMASTER "Weapons Trainer"
+#define GOSSIP_TEXT_BATTLEMASTER "Battlemaster"
+#define GOSSIP_TEXT_CLASSTRAINER "Class Trainer"
+#define GOSSIP_TEXT_PROFTRAINER "Profession Trainer"
+#define GOSSIP_TEXT_OFFICERS "The officers` lounge"
+
+#define GOSSIP_TEXT_ALTERACVALLEY "Alterac Valley"
+#define GOSSIP_TEXT_ARATHIBASIN "Arathi Basin"
+#define GOSSIP_TEXT_WARSONGULCH "Warsong Gulch"
+#define GOSSIP_TEXT_ARENA "Arena"
+#define GOSSIP_TEXT_EYEOFTHESTORM "Eye of The Storm"
+
+#define GOSSIP_TEXT_DRUID "Druid"
+#define GOSSIP_TEXT_HUNTER "Hunter"
+#define GOSSIP_TEXT_PRIEST "Priest"
+#define GOSSIP_TEXT_ROGUE "Rogue"
+#define GOSSIP_TEXT_WARRIOR "Warrior"
+#define GOSSIP_TEXT_PALADIN "Paladin"
+#define GOSSIP_TEXT_SHAMAN "Shaman"
+#define GOSSIP_TEXT_MAGE "Mage"
+#define GOSSIP_TEXT_WARLOCK "Warlock"
+
+#define GOSSIP_TEXT_ALCHEMY "Alchemy"
+#define GOSSIP_TEXT_BLACKSMITHING "Blacksmithing"
+#define GOSSIP_TEXT_COOKING "Cooking"
+#define GOSSIP_TEXT_ENCHANTING "Enchanting"
+#define GOSSIP_TEXT_ENGINEERING "Engineering"
+#define GOSSIP_TEXT_FIRSTAID "First Aid"
+#define GOSSIP_TEXT_HERBALISM "Herbalism"
+#define GOSSIP_TEXT_LEATHERWORKING "Leatherworking"
+#define GOSSIP_TEXT_POISONS "Poisons"
+#define GOSSIP_TEXT_TAILORING "Tailoring"
+#define GOSSIP_TEXT_MINING "Mining"
+#define GOSSIP_TEXT_FISHING "Fishing"
+#define GOSSIP_TEXT_SKINNING "Skinning"
+#define GOSSIP_TEXT_JEWELCRAFTING "Jewelcrafting"
+
+#define GOSSIP_TEXT_IRONFORGE_BANK "Bank of Ironforge"
+#define GOSSIP_TEXT_STORMWIND_BANK "Bank of Stormwind"
+#define GOSSIP_TEXT_DEEPRUNTRAM "Deeprun Tram"
+#define GOSSIP_TEXT_ZEPPLINMASTER "Zeppelin master"
+#define GOSSIP_TEXT_FERRY "Rut'theran Ferry"
+
+// Skill defines
+
+#define TRADESKILL_ALCHEMY 1
+#define TRADESKILL_BLACKSMITHING 2
+#define TRADESKILL_COOKING 3
+#define TRADESKILL_ENCHANTING 4
+#define TRADESKILL_ENGINEERING 5
+#define TRADESKILL_FIRSTAID 6
+#define TRADESKILL_HERBALISM 7
+#define TRADESKILL_LEATHERWORKING 8
+#define TRADESKILL_POISONS 9
+#define TRADESKILL_TAILORING 10
+#define TRADESKILL_MINING 11
+#define TRADESKILL_FISHING 12
+#define TRADESKILL_SKINNING 13
+#define TRADESKILL_JEWLCRAFTING 14
+
+#define TRADESKILL_LEVEL_NONE 0
+#define TRADESKILL_LEVEL_APPRENTICE 1
+#define TRADESKILL_LEVEL_JOURNEYMAN 2
+#define TRADESKILL_LEVEL_EXPERT 3
+#define TRADESKILL_LEVEL_ARTISAN 4
+#define TRADESKILL_LEVEL_MASTER 5
+
+// Gossip defines
+
+#define GOSSIP_ACTION_TRADE 1
+#define GOSSIP_ACTION_TRAIN 2
+#define GOSSIP_ACTION_TAXI 3
+#define GOSSIP_ACTION_GUILD 4
+#define GOSSIP_ACTION_BATTLE 5
+#define GOSSIP_ACTION_BANK 6
+#define GOSSIP_ACTION_INN 7
+#define GOSSIP_ACTION_HEAL 8
+#define GOSSIP_ACTION_TABARD 9
+#define GOSSIP_ACTION_AUCTION 10
+#define GOSSIP_ACTION_INN_INFO 11
+#define GOSSIP_ACTION_UNLEARN 12
+#define GOSSIP_ACTION_INFO_DEF 1000
+
+#define GOSSIP_SENDER_MAIN 1
+#define GOSSIP_SENDER_INN_INFO 2
+#define GOSSIP_SENDER_INFO 3
+#define GOSSIP_SENDER_SEC_PROFTRAIN 4
+#define GOSSIP_SENDER_SEC_CLASSTRAIN 5
+#define GOSSIP_SENDER_SEC_BATTLEINFO 6
+#define GOSSIP_SENDER_SEC_BANK 7
+#define GOSSIP_SENDER_SEC_INN 8
+#define GOSSIP_SENDER_SEC_MAILBOX 9
+#define GOSSIP_SENDER_SEC_STABLEMASTER 10
+
+#define DEFAULT_GOSSIP_MESSAGE 0xffffff
+
+extern uint32 GetSkillLevel(Player *player,uint32 skill);
+
+// Defined fuctions to use with player.
+
+// This fuction add's a menu item,
+// a - Icon Id
+// b - Text
+// c - Sender(this is to identify the current Menu with this item)
+// d - Action (identifys this Menu Item)
+// e - Text to be displayed in pop up box
+// f - Money value in pop up box
+#define ADD_GOSSIP_ITEM(a,b,c,d) PlayerTalkClass->GetGossipMenu().AddMenuItem(a,b,c,d,"",0)
+#define ADD_GOSSIP_ITEM_EXTENDED(a,b,c,d,e,f,g) PlayerTalkClass->GetGossipMenu().AddMenuItem(a,b,c,d,e,f,g)
+
+// This fuction Sends the current menu to show to client, a - NPCTEXTID(uint32) , b - npc guid(uint64)
+#define SEND_GOSSIP_MENU(a,b) PlayerTalkClass->SendGossipMenu(a,b)
+
+// This fuction shows POI(point of interest) to client.
+// a - position X
+// b - position Y
+// c - Icon Id
+// d - Flags
+// e - Data
+// f - Location Name
+#define SEND_POI(a,b,c,d,e,f) PlayerTalkClass->SendPointOfInterest(a,b,c,d,e,f)
+
+// Closes the Menu
+#define CLOSE_GOSSIP_MENU() PlayerTalkClass->CloseGossip()
+
+// Fuction to tell to client the details
+// a - quest object
+// b - npc guid(uint64)
+// c - Activate accept(bool)
+#define SEND_QUEST_DETAILS(a,b,c) PlayerTalkClass->SendQuestDetails(a,b,c)
+
+// Fuction to tell to client the requested items to complete quest
+// a - quest object
+// b - npc guid(uint64)
+// c - Iscompletable(bool)
+// d - close at cancel(bool) - in case single incomplite ques
+#define SEND_REQUESTEDITEMS(a,b,c,d) PlayerTalkClass->SendRequestedItems(a,b,c,d)
+
+// Fuctions to send NPC lists, a - is always the npc guid(uint64)
+#define SEND_VENDORLIST(a) GetSession()->SendListInventory(a)
+#define SEND_TRAINERLIST(a) GetSession()->SendTrainerList(a)
+#define SEND_BANKERLIST(a) GetSession()->SendShowBank(a)
+#define SEND_TABARDLIST(a) GetSession()->SendTabardVendorActivate(a)
+#define SEND_AUCTIONLIST(a) GetSession()->SendAuctionHello(a)
+#define SEND_TAXILIST(a) GetSession()->SendTaxiStatus(a)
+
+// Ressurect's the player if is dead.
+#define SEND_SPRESURRECT() GetSession()->SendSpiritResurrect()
+
+// Get the player's honor rank.
+#define GET_HONORRANK() GetHonorRank()
+// -----------------------------------
+
+// defined fuctions to use with Creature
+
+#define QUEST_DIALOG_STATUS(a,b,c) GetSession()->getDialogStatus(a,b,c)
+#endif
diff --git a/src/bindings/scripts/sql/create_database.sql b/src/bindings/scripts/sql/create_database.sql
index 39da79b6fde..2673b90555a 100644
--- a/src/bindings/scripts/sql/create_database.sql
+++ b/src/bindings/scripts/sql/create_database.sql
@@ -1,3 +1,3 @@
-CREATE DATABASE `trinityscript` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
-
-GRANT ALL PRIVILEGES ON `trinityscript` . * TO 'trinity'@'localhost' WITH GRANT OPTION;
+CREATE DATABASE `trinityscript` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
+
+GRANT ALL PRIVILEGES ON `trinityscript` . * TO 'trinity'@'localhost' WITH GRANT OPTION;
diff --git a/src/bindings/scripts/sql/scriptdev2_structure.sql b/src/bindings/scripts/sql/scriptdev2_structure.sql
index 122deb53357..db46c42c948 100644
--- a/src/bindings/scripts/sql/scriptdev2_structure.sql
+++ b/src/bindings/scripts/sql/scriptdev2_structure.sql
@@ -1,115 +1,115 @@
-DROP TABLE IF EXISTS `eventai_scripts`;
-CREATE TABLE `eventai_scripts` (
-`id` int(11) unsigned NOT NULL COMMENT 'Identifier' AUTO_INCREMENT,
-`creature_id` int(11) unsigned NOT NULL default '0' COMMENT 'Creature Template Identifier',
-
-`event_type` tinyint(5) unsigned NOT NULL default '0' COMMENT 'Event Type',
-`event_inverse_phase_mask` int(11) signed NOT NULL default '0' COMMENT 'Mask which phases this event will not trigger in',
-`event_chance` int(3) unsigned NOT NULL default '100',
-`event_flags` int(3) unsigned NOT NULL default '0',
-`event_param1` int(11) signed NOT NULL default '0',
-`event_param2` int(11) signed NOT NULL default '0',
-`event_param3` int(11) signed NOT NULL default '0',
-`event_param4` int(11) signed NOT NULL default '0',
-
-`action1_type` tinyint(5) unsigned NOT NULL default '0' COMMENT 'Action Type',
-`action1_param1` int(11) signed NOT NULL default '0',
-`action1_param2` int(11) signed NOT NULL default '0',
-`action1_param3` int(11) signed NOT NULL default '0',
-
-`action2_type` tinyint(5) unsigned NOT NULL default '0' COMMENT 'Action Type',
-`action2_param1` int(11) signed NOT NULL default '0',
-`action2_param2` int(11) signed NOT NULL default '0',
-`action2_param3` int(11) signed NOT NULL default '0',
-
-`action3_type` tinyint(5) unsigned NOT NULL default '0' COMMENT 'Action Type',
-`action3_param1` int(11) signed NOT NULL default '0',
-`action3_param2` int(11) signed NOT NULL default '0',
-`action3_param3` int(11) signed NOT NULL default '0',
-
-`comment` varchar(255) NOT NULL default '' COMMENT 'Event Comment',
-
- PRIMARY KEY (`id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='EventAI Scripts';
-
-DROP TABLE IF EXISTS `eventai_texts`;
-CREATE TABLE `eventai_texts` (
-
-`id` int(11) unsigned NOT NULL default '0' COMMENT 'Identifier',
-`text` varchar(255) character set utf8 NOT NULL default '',
-`comment` varchar(255) character set utf8 NOT NULL default '' COMMENT 'Text Comment',
-
-PRIMARY KEY (`id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Texts used in EventAI';
-
-DROP TABLE IF EXISTS `eventai_localized_texts`;
-CREATE TABLE `eventai_localized_texts` (
-
-`id` int(11) unsigned NOT NULL COMMENT 'Identifier' AUTO_INCREMENT,
-`locale_1` varchar(255) NOT NULL default '',
-`locale_2` varchar(255) NOT NULL default '',
-`locale_3` varchar(255) NOT NULL default '',
-`locale_4` varchar(255) NOT NULL default '',
-`locale_5` varchar(255) NOT NULL default '',
-`locale_6` varchar(255) NOT NULL default '',
-`locale_7` varchar(255) NOT NULL default '',
-`locale_8` varchar(255) NOT NULL default '',
-`comment` varchar(255) NOT NULL default '' COMMENT 'Text Comment',
-
-PRIMARY KEY (`id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='EventAI Localized Text';
-
-DROP TABLE IF EXISTS `eventai_summons`;
-CREATE TABLE `eventai_summons` (
-`id` int(11) unsigned NOT NULL COMMENT 'Location Identifier' AUTO_INCREMENT,
-`position_x` float NOT NULL default '0',
-`position_y` float NOT NULL default '0',
-`position_z` float NOT NULL default '0',
-`orientation` float NOT NULL default '0',
-`spawntimesecs` int(11) unsigned NOT NULL default '120',
-`comment` varchar(255) NOT NULL default '' COMMENT 'Summon Comment',
-PRIMARY KEY (`id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='EventAI Summoning Locations';
-
-DROP TABLE IF EXISTS `script_texts`;
-CREATE TABLE `script_texts` (
- `entry` mediumint(8) NOT NULL,
- `content_default` text NOT NULL,
- `content_loc1` text,
- `content_loc2` text,
- `content_loc3` text,
- `content_loc4` text,
- `content_loc5` text,
- `content_loc6` text,
- `content_loc7` text,
- `content_loc8` text,
- `sound` mediumint(8) unsigned NOT NULL default '0',
- `type` tinyint unsigned NOT NULL default '0',
- `language` tinyint unsigned NOT NULL default '0',
- `comment` text,
- PRIMARY KEY (`entry`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Script Texts';
-
-DROP TABLE IF EXISTS `custom_texts`;
-CREATE TABLE `custom_texts` (
- `entry` mediumint(8) NOT NULL,
- `content_default` text NOT NULL,
- `content_loc1` text,
- `content_loc2` text,
- `content_loc3` text,
- `content_loc4` text,
- `content_loc5` text,
- `content_loc6` text,
- `content_loc7` text,
- `content_loc8` text,
- `sound` mediumint(8) unsigned NOT NULL default '0',
- `type` tinyint unsigned NOT NULL default '0',
- `language` tinyint unsigned NOT NULL default '0',
- `comment` text,
- PRIMARY KEY (`entry`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Custom Texts';
-
-DROP TABLE IF EXISTS `script_db_version`;
-CREATE TABLE `script_db_version` (
-`version` varchar(255) NOT NULL default '' COMMENT 'Script Database version string'
+DROP TABLE IF EXISTS `eventai_scripts`;
+CREATE TABLE `eventai_scripts` (
+`id` int(11) unsigned NOT NULL COMMENT 'Identifier' AUTO_INCREMENT,
+`creature_id` int(11) unsigned NOT NULL default '0' COMMENT 'Creature Template Identifier',
+
+`event_type` tinyint(5) unsigned NOT NULL default '0' COMMENT 'Event Type',
+`event_inverse_phase_mask` int(11) signed NOT NULL default '0' COMMENT 'Mask which phases this event will not trigger in',
+`event_chance` int(3) unsigned NOT NULL default '100',
+`event_flags` int(3) unsigned NOT NULL default '0',
+`event_param1` int(11) signed NOT NULL default '0',
+`event_param2` int(11) signed NOT NULL default '0',
+`event_param3` int(11) signed NOT NULL default '0',
+`event_param4` int(11) signed NOT NULL default '0',
+
+`action1_type` tinyint(5) unsigned NOT NULL default '0' COMMENT 'Action Type',
+`action1_param1` int(11) signed NOT NULL default '0',
+`action1_param2` int(11) signed NOT NULL default '0',
+`action1_param3` int(11) signed NOT NULL default '0',
+
+`action2_type` tinyint(5) unsigned NOT NULL default '0' COMMENT 'Action Type',
+`action2_param1` int(11) signed NOT NULL default '0',
+`action2_param2` int(11) signed NOT NULL default '0',
+`action2_param3` int(11) signed NOT NULL default '0',
+
+`action3_type` tinyint(5) unsigned NOT NULL default '0' COMMENT 'Action Type',
+`action3_param1` int(11) signed NOT NULL default '0',
+`action3_param2` int(11) signed NOT NULL default '0',
+`action3_param3` int(11) signed NOT NULL default '0',
+
+`comment` varchar(255) NOT NULL default '' COMMENT 'Event Comment',
+
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='EventAI Scripts';
+
+DROP TABLE IF EXISTS `eventai_texts`;
+CREATE TABLE `eventai_texts` (
+
+`id` int(11) unsigned NOT NULL default '0' COMMENT 'Identifier',
+`text` varchar(255) character set utf8 NOT NULL default '',
+`comment` varchar(255) character set utf8 NOT NULL default '' COMMENT 'Text Comment',
+
+PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Texts used in EventAI';
+
+DROP TABLE IF EXISTS `eventai_localized_texts`;
+CREATE TABLE `eventai_localized_texts` (
+
+`id` int(11) unsigned NOT NULL COMMENT 'Identifier' AUTO_INCREMENT,
+`locale_1` varchar(255) NOT NULL default '',
+`locale_2` varchar(255) NOT NULL default '',
+`locale_3` varchar(255) NOT NULL default '',
+`locale_4` varchar(255) NOT NULL default '',
+`locale_5` varchar(255) NOT NULL default '',
+`locale_6` varchar(255) NOT NULL default '',
+`locale_7` varchar(255) NOT NULL default '',
+`locale_8` varchar(255) NOT NULL default '',
+`comment` varchar(255) NOT NULL default '' COMMENT 'Text Comment',
+
+PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='EventAI Localized Text';
+
+DROP TABLE IF EXISTS `eventai_summons`;
+CREATE TABLE `eventai_summons` (
+`id` int(11) unsigned NOT NULL COMMENT 'Location Identifier' AUTO_INCREMENT,
+`position_x` float NOT NULL default '0',
+`position_y` float NOT NULL default '0',
+`position_z` float NOT NULL default '0',
+`orientation` float NOT NULL default '0',
+`spawntimesecs` int(11) unsigned NOT NULL default '120',
+`comment` varchar(255) NOT NULL default '' COMMENT 'Summon Comment',
+PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='EventAI Summoning Locations';
+
+DROP TABLE IF EXISTS `script_texts`;
+CREATE TABLE `script_texts` (
+ `entry` mediumint(8) NOT NULL,
+ `content_default` text NOT NULL,
+ `content_loc1` text,
+ `content_loc2` text,
+ `content_loc3` text,
+ `content_loc4` text,
+ `content_loc5` text,
+ `content_loc6` text,
+ `content_loc7` text,
+ `content_loc8` text,
+ `sound` mediumint(8) unsigned NOT NULL default '0',
+ `type` tinyint unsigned NOT NULL default '0',
+ `language` tinyint unsigned NOT NULL default '0',
+ `comment` text,
+ PRIMARY KEY (`entry`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Script Texts';
+
+DROP TABLE IF EXISTS `custom_texts`;
+CREATE TABLE `custom_texts` (
+ `entry` mediumint(8) NOT NULL,
+ `content_default` text NOT NULL,
+ `content_loc1` text,
+ `content_loc2` text,
+ `content_loc3` text,
+ `content_loc4` text,
+ `content_loc5` text,
+ `content_loc6` text,
+ `content_loc7` text,
+ `content_loc8` text,
+ `sound` mediumint(8) unsigned NOT NULL default '0',
+ `type` tinyint unsigned NOT NULL default '0',
+ `language` tinyint unsigned NOT NULL default '0',
+ `comment` text,
+ PRIMARY KEY (`entry`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Custom Texts';
+
+DROP TABLE IF EXISTS `script_db_version`;
+CREATE TABLE `script_db_version` (
+`version` varchar(255) NOT NULL default '' COMMENT 'Script Database version string'
) ENGINE=MyISAM DEFAULT CHARSET=utf8; \ No newline at end of file
diff --git a/src/bindings/scripts/trinityscript.conf.dist b/src/bindings/scripts/trinityscript.conf.dist
index 8a91eda5deb..b391945c6a2 100644
--- a/src/bindings/scripts/trinityscript.conf.dist
+++ b/src/bindings/scripts/trinityscript.conf.dist
@@ -1,20 +1,20 @@
-# TrinityScript Configuration file
-# This file must be placed within the directory which holds TrinityCore.conf and TrinityRealm.conf
-ConfVersion=2008100201
-
-# Database connection settings for the world server.
-# Default: hostname;port;username;password;database
-# .;somenumber;username;password;database - use named pipes at Windows
-# Named pipes: mySQL required adding "enable-named-pipe" to [mysqld] section my.ini
-# .;/path/to/unix_socket;username;password;database - use Unix sockets at Unix/Linux
-# Unix sockets: experimental, not tested
-TScriptDatabaseInfo = "127.0.0.1;3306;trinity;trinity;trinityscript"
-
-# Setting for current locale to use
-Locale = 0
-
-# EventAI Error reporting
-# 0 - Only startup (Default)
-# 1 - Startup errors and Runtime event errors
-# 2 - Startup errors, Runtime event errors, and Creation errors
-EAIErrorLevel = 1
+# TrinityScript Configuration file
+# This file must be placed within the directory which holds TrinityCore.conf and TrinityRealm.conf
+ConfVersion=2008100201
+
+# Database connection settings for the world server.
+# Default: hostname;port;username;password;database
+# .;somenumber;username;password;database - use named pipes at Windows
+# Named pipes: mySQL required adding "enable-named-pipe" to [mysqld] section my.ini
+# .;/path/to/unix_socket;username;password;database - use Unix sockets at Unix/Linux
+# Unix sockets: experimental, not tested
+TScriptDatabaseInfo = "127.0.0.1;3306;trinity;trinity;trinityscript"
+
+# Setting for current locale to use
+Locale = 0
+
+# EventAI Error reporting
+# 0 - Only startup (Default)
+# 1 - Startup errors and Runtime event errors
+# 2 - Startup errors, Runtime event errors, and Creation errors
+EAIErrorLevel = 1