From cec2264d53978ac8c1397789b940b2f0c162defb Mon Sep 17 00:00:00 2001 From: NotAdam Date: Wed, 20 Feb 2019 19:53:54 +1100 Subject: [PATCH 1/4] pass instancecontent by reference instead of shared ptr --- src/world/Script/NativeScriptApi.cpp | 6 +++--- src/world/Script/NativeScriptApi.h | 6 +++--- src/world/Script/ScriptMgr.cpp | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/world/Script/NativeScriptApi.cpp b/src/world/Script/NativeScriptApi.cpp index 06e04cc2..8dcd2f4a 100644 --- a/src/world/Script/NativeScriptApi.cpp +++ b/src/world/Script/NativeScriptApi.cpp @@ -177,15 +177,15 @@ namespace Sapphire::ScriptAPI { } - void InstanceContentScript::onInit( InstanceContentPtr instance ) + void InstanceContentScript::onInit( InstanceContent& instance ) { } - void InstanceContentScript::onUpdate( InstanceContentPtr instance, uint32_t currTime ) + void InstanceContentScript::onUpdate( InstanceContent& instance, uint32_t currTime ) { } - void InstanceContentScript::onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, + void InstanceContentScript::onEnterTerritory( InstanceContent& instance, Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2 ) { } diff --git a/src/world/Script/NativeScriptApi.h b/src/world/Script/NativeScriptApi.h index a86a8c63..486bb74e 100644 --- a/src/world/Script/NativeScriptApi.h +++ b/src/world/Script/NativeScriptApi.h @@ -221,11 +221,11 @@ namespace Sapphire::ScriptAPI public: explicit InstanceContentScript( uint32_t instanceContentId ); - virtual void onInit( Sapphire::InstanceContentPtr instance ); + virtual void onInit( Sapphire::InstanceContent& instance ); - virtual void onUpdate( Sapphire::InstanceContentPtr instance, uint32_t currTime ); + virtual void onUpdate( Sapphire::InstanceContent& instance, uint32_t currTime ); - virtual void onEnterTerritory( Sapphire::InstanceContentPtr instance, Sapphire::Entity::Player& player, uint32_t eventId, + virtual void onEnterTerritory( Sapphire::InstanceContent& instance, Sapphire::Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2 ); }; diff --git a/src/world/Script/ScriptMgr.cpp b/src/world/Script/ScriptMgr.cpp index e5c59236..a066484c 100644 --- a/src/world/Script/ScriptMgr.cpp +++ b/src/world/Script/ScriptMgr.cpp @@ -371,7 +371,7 @@ bool Sapphire::Scripting::ScriptMgr::onInstanceInit( InstanceContentPtr instance auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::InstanceContentScript >( instance->getDirectorId() ); if( script ) { - script->onInit( instance ); + script->onInit( *instance ); return true; } @@ -384,7 +384,7 @@ bool Sapphire::Scripting::ScriptMgr::onInstanceUpdate( InstanceContentPtr instan if( script ) { - script->onUpdate( instance, currTime ); + script->onUpdate( *instance, currTime ); return true; } @@ -397,7 +397,7 @@ bool Sapphire::Scripting::ScriptMgr::onInstanceEnterTerritory( InstanceContentPt auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::InstanceContentScript >( instance->getDirectorId() ); if( script ) { - script->onEnterTerritory( instance, player, eventId, param1, param2 ); + script->onEnterTerritory( *instance, player, eventId, param1, param2 ); return true; } From 5df527c4205ded443919f6d4d83b0f8cc2187c32 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Wed, 20 Feb 2019 19:54:15 +1100 Subject: [PATCH 2/4] update event_object_parser to use contentfindercondition --- src/tools/event_object_parser/instance.tmpl | 31 ++--- src/tools/event_object_parser/main.cpp | 121 ++++++++++++++------ 2 files changed, 101 insertions(+), 51 deletions(-) diff --git a/src/tools/event_object_parser/instance.tmpl b/src/tools/event_object_parser/instance.tmpl index f904e955..d0ebdbc7 100644 --- a/src/tools/event_object_parser/instance.tmpl +++ b/src/tools/event_object_parser/instance.tmpl @@ -1,26 +1,31 @@ #include #include -class INSTANCE_NAME : public InstanceContentScript +using namespace Sapphire; + +class INSTANCE_NAME : + public Sapphire::ScriptAPI::InstanceContentScript { public: - INSTANCE_NAME() : InstanceContentScript( INSTANCE_ID ) - { } + INSTANCE_NAME() : + Sapphire::ScriptAPI::InstanceContentScript( INSTANCE_ID ) + { } - void onInit( InstanceContentPtr instance ) override - { - EOBJ_INIT - } + void onInit( InstanceContent& instance ) override + { +EOBJ_INIT + } - void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override - { + void onUpdate( InstanceContent& instance, uint32_t currTime ) override + { - } + } - void onEnterTerritory( InstanceContentPtr instance, Sapphire::Entity::Player& player, Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override - { + void onEnterTerritory( InstanceContent& instance, Entity::Player& player, uint32_t eventId, uint16_t param1, + uint16_t param2 ) override + { - } + } }; diff --git a/src/tools/event_object_parser/main.cpp b/src/tools/event_object_parser/main.cpp index 70994e63..8fb216b0 100644 --- a/src/tools/event_object_parser/main.cpp +++ b/src/tools/event_object_parser/main.cpp @@ -290,8 +290,12 @@ void writeEobjEntry( std::ofstream& out, LGB_ENTRY* pObj ) void loadAllInstanceContentEntries() { - auto& catInstance = eData->get_category( "InstanceContent" ); + auto& catInstance = eData->get_category( "ContentFinderCondition" ); + auto& territoryTypeSheet = eData->get_category( "TerritoryType" ); + auto& instanceContentSheet = eData->get_category( "InstanceContent" ); + auto exdInstance = static_cast< xiv::exd::Exd >( catInstance.get_data_ln( xiv::exd::Language::en ) ); + auto instanceContentData = static_cast< xiv::exd::Exd >( instanceContentSheet.get_data_ln( xiv::exd::Language::en ) ); if( zoneNameMap.size() == 0 ) { @@ -315,25 +319,63 @@ void loadAllInstanceContentEntries() auto id = row.first; auto& fields = row.second; - auto name = std::get< std::string >( fields.at( 3 ) ); + auto contentLinkType = std::get< uint8_t >( fields.at( 2 ) ); + auto contentLink = std::get< uint16_t >( fields.at( 3 ) ); + + std::string name; + uint8_t type = 0; + + if( contentLinkType == 1 ) + { + // instancecontent + auto row = instanceContentData.get_row( contentLink ); + + name = std::get< std::string >( row.at( 3 ) ); + type = std::get< uint8_t >( row.at( 0 ) ); + id = contentLink; + } +// else if( contentLinkType == 2 ) +// { +// // partycontent +// auto row = partyContentData.get_row( contentLink ); +// +// name = std::get< std::string >( row.at( 2 ) ); +// } +// else if( contentLinkType == 3 ) +// { +// // publiccontent +// auto row = publicContentData.get_row( contentLink ); +// +// name = std::get< std::string >( row.at( 3 ) ); +// } +// else if( contentLinkType == 4 ) +// { +// // goldsaucercontent +// } + else + { + continue; + } + + if( name.empty() ) continue; - auto type = std::get< uint8_t >( fields.at( 0 ) ); - auto teri = std::get< std::string >( fields.at( 3 ) ); + + auto teri = std::get< uint16_t >( fields.at( 1 ) ); auto i = 0; while( ( i = name.find( ' ' ) ) != std::string::npos ) name = name.replace( name.begin() + i, name.begin() + i + 1, { '_' } ); std::string outStr( - std::to_string( id ) + ", \"" + name + "\", \"" + teri + "\"," + teri + "\n" + std::to_string( id ) + ", \"" + name + "\", \"" + zoneNameMap[ teri ] + "\"," + std::to_string( teri ) + "\n" ); out.write( outStr.c_str(), outStr.size() ); //zoneInstanceMap[zoneId].push_back( std::make_pair( id, name ) ); - zoneDumpList.emplace( teri ); + zoneDumpList.emplace( zoneNameMap[ teri ] ); std::string remove = "★_ '()[]-\x1a\x1\x2\x1f\x1\x3.:"; Sapphire::Util::eraseAllIn( name, remove ); name[ 0 ] = toupper( name[ 0 ] ); - contentList.push_back( { id, name, teri, type } ); + contentList.push_back( { id, name, zoneNameMap[ teri ], type } ); } out.close(); } @@ -379,20 +421,23 @@ int main( int argc, char* argv[] ) } } - std::map< uint8_t, std::string > contentTypeMap; - contentTypeMap[ 0 ] = ""; - contentTypeMap[ 1 ] = "raids"; - contentTypeMap[ 2 ] = "dungeons"; - contentTypeMap[ 3 ] = "guildhests"; - contentTypeMap[ 4 ] = "trials"; - contentTypeMap[ 5 ] = "pvp"; - contentTypeMap[ 6 ] = "pvp"; - contentTypeMap[ 7 ] = "questbattles"; - contentTypeMap[ 8 ] = "hallofthenovice"; - contentTypeMap[ 9 ] = "deepdungeon"; - contentTypeMap[ 10 ] = "treasurehunt"; - contentTypeMap[ 11 ] = "events"; - contentTypeMap[ 12 ] = "pvp"; + std::map< uint8_t, std::string > instanceContentTypeMap; + instanceContentTypeMap[ 0 ] = ""; + instanceContentTypeMap[ 1 ] = "raids"; + instanceContentTypeMap[ 2 ] = "dungeons"; + instanceContentTypeMap[ 3 ] = "guildhests"; + instanceContentTypeMap[ 4 ] = "trials"; + instanceContentTypeMap[ 5 ] = "pvp/thefeast"; + instanceContentTypeMap[ 6 ] = "pvp"; + instanceContentTypeMap[ 7 ] = "questbattles"; + instanceContentTypeMap[ 8 ] = "hallofthenovice"; + instanceContentTypeMap[ 9 ] = "deepdungeon"; + instanceContentTypeMap[ 10 ] = "treasurehunt"; + instanceContentTypeMap[ 11 ] = "events"; + instanceContentTypeMap[ 12 ] = "pvp/rivalwings"; + instanceContentTypeMap[ 13 ] = "maskedcarnivale"; // todo: better name? + instanceContentTypeMap[ 14 ] = "goldsaucer/mahjong"; + instanceContentTypeMap[ 15 ] = "goldsaucer"; if( !fs::exists( "instance.tmpl" ) ) throw std::runtime_error( "instance.tmpl is missing in working directory" ); @@ -446,18 +491,18 @@ int main( int argc, char* argv[] ) loadEobjNames(); //dumpLevelExdEntries( zoneId, zoneName ); - std::string eobjFileName( entry.name + "_eobj.csv" ); - std::ofstream eobjOut( eobjFileName, std::ios::trunc ); - if( !eobjOut.good() ) - throw std::string( "Unable to create " + zoneName + - "_eobj.csv for eobj entries. Run as admin or check there isnt already a handle on the file." ).c_str(); - - eobjOut.close(); - eobjOut.open( eobjFileName, std::ios::app ); - - if( !eobjOut.good() ) - throw std::string( "Unable to create " + zoneName + - "_eobj.csv for eobj entries. Run as admin or check there isnt already a handle on the file." ).c_str(); +// std::string eobjFileName( entry.name + "_eobj.csv" ); +// std::ofstream eobjOut( eobjFileName, std::ios::trunc ); +// if( !eobjOut.good() ) +// throw std::string( "Unable to create " + zoneName + +// "_eobj.csv for eobj entries. Run as admin or check there isnt already a handle on the file." ).c_str(); +// +// eobjOut.close(); +// eobjOut.open( eobjFileName, std::ios::app ); +// +// if( !eobjOut.good() ) +// throw std::string( "Unable to create " + zoneName + +// "_eobj.csv for eobj entries. Run as admin or check there isnt already a handle on the file." ).c_str(); LGB_FILE bgLgb( §ion[ 0 ], "bg" ); LGB_FILE planmapLgb( §ion2[ 0 ], "planmap" ); @@ -569,7 +614,7 @@ int main( int argc, char* argv[] ) states = " // States -> "; for( auto entries1 : sgbFile.stateEntries ) { - states += entries1.name + " "; + states += entries1.name + " (id: " + std::to_string( entries1.header.id ) + ") "; } states += "\n"; } @@ -612,7 +657,7 @@ int main( int argc, char* argv[] ) if( count1 > 0 ) name = name + "_" + std::to_string( count1 ); - eobjects += " instance->registerEObj( \"" + name + "\", " + std::to_string( id ) + + eobjects += " instance.registerEObj( \"" + name + "\", " + std::to_string( id ) + ", " + std::to_string( eobjlevelHierachyId ) + ", " + std::to_string( state ) + ", " + "{ " + std::to_string( pObj->header.translation.x ) + "f, " @@ -664,8 +709,8 @@ int main( int argc, char* argv[] ) std::string subdir = ""; - auto subdirIt = contentTypeMap.find( entry.type ); - if( subdirIt != contentTypeMap.end() ) + auto subdirIt = instanceContentTypeMap.find( entry.type ); + if( subdirIt != instanceContentTypeMap.end() ) subdir = subdirIt->second + "/"; fs::path outDir( "instances/" + subdir ); @@ -682,7 +727,7 @@ int main( int argc, char* argv[] ) std::chrono::duration_cast< std::chrono::seconds >( std::chrono::system_clock::now() - startTime ).count() << " seconds\n"; - getchar(); +// getchar(); if( eData ) delete eData; From 88a252f2f885ebab8153058722dbbb064e57253e Mon Sep 17 00:00:00 2001 From: NotAdam Date: Wed, 20 Feb 2019 19:54:59 +1100 Subject: [PATCH 3/4] update all the instance scripts to add missing ones and use new api --- src/scripts/instances/ScriptLoader.cpp | 144 +++++++- .../deepdungeon/HeavenonHighFloors110.cpp | 34 ++ .../deepdungeon/HeavenonHighFloors1120.cpp | 34 ++ .../deepdungeon/HeavenonHighFloors2130.cpp | 34 ++ .../deepdungeon/HeavenonHighFloors3140.cpp | 34 ++ .../deepdungeon/HeavenonHighFloors4150.cpp | 34 ++ .../deepdungeon/HeavenonHighFloors5160.cpp | 34 ++ .../deepdungeon/HeavenonHighFloors6170.cpp | 34 ++ .../deepdungeon/HeavenonHighFloors7180.cpp | 34 ++ .../deepdungeon/HeavenonHighFloors8190.cpp | 34 ++ .../deepdungeon/HeavenonHighFloors91100.cpp | 34 ++ .../ThePalaceoftheDeadFloors101110.cpp | 19 +- .../ThePalaceoftheDeadFloors110.cpp | 14 +- .../ThePalaceoftheDeadFloors111120.cpp | 14 +- .../ThePalaceoftheDeadFloors1120.cpp | 14 +- .../ThePalaceoftheDeadFloors121130.cpp | 14 +- .../ThePalaceoftheDeadFloors131140.cpp | 14 +- .../ThePalaceoftheDeadFloors141150.cpp | 14 +- .../ThePalaceoftheDeadFloors151160.cpp | 14 +- .../ThePalaceoftheDeadFloors161170.cpp | 14 +- .../ThePalaceoftheDeadFloors171180.cpp | 14 +- .../ThePalaceoftheDeadFloors181190.cpp | 14 +- .../ThePalaceoftheDeadFloors191200.cpp | 14 +- .../ThePalaceoftheDeadFloors2130.cpp | 14 +- .../ThePalaceoftheDeadFloors3140.cpp | 37 +- .../ThePalaceoftheDeadFloors4150.cpp | 37 +- .../ThePalaceoftheDeadFloors5160.cpp | 14 +- .../ThePalaceoftheDeadFloors6170.cpp | 14 +- .../ThePalaceoftheDeadFloors7180.cpp | 14 +- .../ThePalaceoftheDeadFloors8190.cpp | 19 +- .../ThePalaceoftheDeadFloors91100.cpp | 19 +- src/scripts/instances/dungeons/AlaMhigo.cpp | 50 ++- .../instances/dungeons/AmdaporKeep.cpp | 334 +++++++---------- .../instances/dungeons/AmdaporKeepHard.cpp | 115 +++--- .../instances/dungeons/BaelsarsWall.cpp | 97 ++--- .../instances/dungeons/BardamsMettle.cpp | 43 ++- .../instances/dungeons/BrayfloxsLongstop.cpp | 68 ++-- .../dungeons/BrayfloxsLongstopHard.cpp | 85 ++--- .../instances/dungeons/CastrumAbania.cpp | 75 +++- .../instances/dungeons/CastrumMeridianum.cpp | 202 ++++------- .../instances/dungeons/CopperbellMines.cpp | 163 +++------ .../dungeons/CopperbellMinesHard.cpp | 140 +++---- src/scripts/instances/dungeons/CuttersCry.cpp | 116 +++--- src/scripts/instances/dungeons/DomaCastle.cpp | 48 ++- .../instances/dungeons/DzemaelDarkhold.cpp | 273 ++++++-------- src/scripts/instances/dungeons/Halatali.cpp | 149 +++----- .../instances/dungeons/HalataliHard.cpp | 168 +++------ .../instances/dungeons/HaukkeManor.cpp | 125 +++---- .../instances/dungeons/HaukkeManorHard.cpp | 189 ++++------ src/scripts/instances/dungeons/HellsLid.cpp | 62 +++- .../instances/dungeons/HullbreakerIsle.cpp | 190 ++++------ .../dungeons/HullbreakerIsleHard.cpp | 93 ++--- .../instances/dungeons/KuganeCastle.cpp | 80 +++- src/scripts/instances/dungeons/Neverreap.cpp | 67 +++- .../instances/dungeons/PharosSirius.cpp | 100 ++--- .../instances/dungeons/PharosSiriusHard.cpp | 94 ++--- .../dungeons/SaintMociannesArboretum.cpp | 44 ++- .../dungeons/SaintMociannesArboretumHard.cpp | 68 ++++ src/scripts/instances/dungeons/Sastasha.cpp | 151 +++----- .../instances/dungeons/SastashaHard.cpp | 123 +++---- .../dungeons/ShisuioftheVioletTides.cpp | 61 +++- src/scripts/instances/dungeons/Snowcloak.cpp | 133 +++---- src/scripts/instances/dungeons/SohmAl.cpp | 41 ++- src/scripts/instances/dungeons/SohmAlHard.cpp | 61 +++- src/scripts/instances/dungeons/SohrKhai.cpp | 47 ++- src/scripts/instances/dungeons/TheAery.cpp | 39 +- .../TheAetherochemicalResearchFacility.cpp | 51 ++- .../instances/dungeons/TheAntitower.cpp | 70 +++- .../instances/dungeons/TheAurumVale.cpp | 64 ++-- src/scripts/instances/dungeons/TheBurn.cpp | 64 ++++ .../dungeons/TheDrownedCityofSkalla.cpp | 48 ++- .../instances/dungeons/TheDuskVigil.cpp | 60 ++- .../dungeons/TheFractalContinuum.cpp | 82 ++++- .../dungeons/TheFractalContinuumHard.cpp | 52 ++- .../instances/dungeons/TheGhimlytDark.cpp | 78 ++++ .../dungeons/TheGreatGubalLibrary.cpp | 53 ++- .../dungeons/TheGreatGubalLibraryHard.cpp | 63 +++- .../instances/dungeons/TheKeeperoftheLake.cpp | 103 ++---- .../dungeons/TheLostCityofAmdapor.cpp | 160 +++----- .../dungeons/TheLostCityofAmdaporHard.cpp | 140 +++---- .../instances/dungeons/ThePraetorium.cpp | 343 ++++++------------ .../instances/dungeons/TheSirensongSea.cpp | 46 ++- .../instances/dungeons/TheStoneVigil.cpp | 100 +++-- .../instances/dungeons/TheStoneVigilHard.cpp | 82 ++--- .../dungeons/TheSunkenTempleofQarn.cpp | 182 ++++------ .../dungeons/TheSunkenTempleofQarnHard.cpp | 160 +++----- .../instances/dungeons/TheSwallowsCompass.cpp | 74 ++++ .../dungeons/TheTamTaraDeepcroft.cpp | 86 ++--- .../dungeons/TheTamTaraDeepcroftHard.cpp | 212 +++++------ .../instances/dungeons/TheTempleoftheFist.cpp | 56 ++- .../dungeons/TheThousandMawsofTotoRak.cpp | 163 +++------ src/scripts/instances/dungeons/TheVault.cpp | 58 ++- .../instances/dungeons/TheWanderersPalace.cpp | 162 +++------ .../dungeons/TheWanderersPalaceHard.cpp | 104 ++---- src/scripts/instances/dungeons/Xelphatol.cpp | 54 ++- .../instances/events/TheHauntedManor.cpp | 54 ++- .../events/TheValentionesCeremony.cpp | 142 +++----- .../instances/goldsaucer/AirForceOne.cpp | 37 ++ .../mahjong/AdvancedMahjongRanked.cpp | 33 ++ .../FourplayerMahjongKuitanDisabled.cpp | 33 ++ .../FourplayerMahjongKuitanEnabled.cpp | 33 ++ .../mahjong/NoviceMahjongRanked.cpp | 33 ++ .../guildhests/AllsWellthatEndsintheWell.cpp | 16 +- .../instances/guildhests/AnnoytheVoid.cpp | 9 +- .../guildhests/BasicTrainingEnemyParties.cpp | 9 +- .../BasicTrainingEnemyStrongholds.cpp | 19 +- .../FlickingSticksandTakingNames.cpp | 12 +- .../guildhests/HeroontheHalfShell.cpp | 9 +- .../instances/guildhests/LongLivetheQueen.cpp | 58 ++- .../instances/guildhests/MorethanaFeeler.cpp | 9 +- .../guildhests/PullingPoisonPosies.cpp | 9 +- .../instances/guildhests/ShadowandClaw.cpp | 58 ++- .../instances/guildhests/SolemnTrinity.cpp | 9 +- .../instances/guildhests/StingingBack.cpp | 16 +- .../instances/guildhests/UndertheArmor.cpp | 12 +- src/scripts/instances/guildhests/WardUp.cpp | 9 +- .../AccrueEnmityfromMultipleTargets.cpp | 33 +- .../AssistAlliesinDefeatingaTarget.cpp | 33 +- .../AvoidAreaofEffectAttacks.cpp | 33 +- .../hallofthenovice/AvoidEngagedTargets.cpp | 33 +- .../DefeatanOccupiedTarget.cpp | 33 +- .../EngageEnemyReinforcements.cpp | 33 +- .../hallofthenovice/EngageMultipleTargets.cpp | 33 +- .../hallofthenovice/ExecuteaComboinBattle.cpp | 33 +- .../ExecuteaCombotoIncreaseEnmity.cpp | 33 +- .../ExecuteaRangedAttacktoIncreaseEnmity.cpp | 35 +- .../hallofthenovice/FinalExercise.cpp | 17 +- .../hallofthenovice/HealMultipleAllies.cpp | 33 +- .../instances/hallofthenovice/HealanAlly.cpp | 33 +- .../InteractwiththeBattlefield.cpp | 33 +- .../maskedcarnivale/AChorusSlime.cpp | 38 ++ .../maskedcarnivale/ALittleKnightMusic.cpp | 38 ++ .../AllsWellThatStartsWell.cpp | 38 ++ .../AmazingTechnicolorPitFiends.cpp | 38 ++ .../maskedcarnivale/BeautyandaBeast.cpp | 38 ++ .../BehemothsandBroomsticks.cpp | 38 ++ .../maskedcarnivale/BlobsintheWoods.cpp | 38 ++ .../maskedcarnivale/BombedyofErrors.cpp | 38 ++ .../maskedcarnivale/ChimeraonaHotTinRoof.cpp | 38 ++ .../maskedcarnivale/DirtyRottenAzulmagia.cpp | 38 ++ .../instances/maskedcarnivale/EyeSociety.cpp | 38 ++ .../maskedcarnivale/GentlemenPreferSwords.cpp | 38 ++ .../maskedcarnivale/HereComestheBoom.cpp | 38 ++ .../MidsummerNightsExplosion.cpp | 38 ++ .../instances/maskedcarnivale/MissTyphon.cpp | 38 ++ .../maskedcarnivale/MuchAdoAboutPudding.cpp | 38 ++ .../OnaClearDayYouCanSmellForever.cpp | 38 ++ .../SomeLikeItExcruciatinglyHot.cpp | 38 ++ .../maskedcarnivale/SunsetBullevard.cpp | 38 ++ .../maskedcarnivale/TheMeNobodyNodes.cpp | 38 ++ .../maskedcarnivale/ThePlantomoftheOpera.cpp | 38 ++ .../maskedcarnivale/TheSwordofMusic.cpp | 38 ++ .../maskedcarnivale/TheThreepennyTurtles.cpp | 38 ++ .../maskedcarnivale/ToKillaMockingslime.cpp | 38 ++ .../maskedcarnivale/WaitingforGolem.cpp | 38 ++ src/scripts/instances/pvp/Astragalos.cpp | 61 ---- src/scripts/instances/pvp/SealRockSeize.cpp | 79 +++- .../pvp/TheBorderlandRuinsSecure.cpp | 74 ++-- .../instances/pvp/TheFeast4on4LightParty.cpp | 41 --- .../instances/pvp/TheFeast4on4Ranked.cpp | 37 -- .../instances/pvp/TheFeast4on4Training.cpp | 37 -- .../pvp/TheFeastCustomMatchCrystalTower.cpp | 45 --- .../TheFeastCustomMatchFeastingGrounds.cpp | 41 --- .../pvp/TheFeastCustomMatchLichenweed.cpp | 37 -- src/scripts/instances/pvp/TheFeastRanked.cpp | 45 --- .../instances/pvp/TheFeastTeamRanked.cpp | 45 --- .../instances/pvp/TheFeastTraining.cpp | 45 --- .../instances/pvp/TheFieldsofGloryShatter.cpp | 41 ++- .../instances/pvp/rivalwings/Astragalos.cpp | 46 +++ .../instances/pvp/rivalwings/HiddenGorge.cpp | 45 +++ .../pvp/thefeast/TheFeast4on4Ranked.cpp | 34 ++ .../pvp/thefeast/TheFeast4on4Training.cpp | 34 ++ .../TheFeastCustomMatchCrystalTower.cpp | 34 ++ .../TheFeastCustomMatchFeastingGrounds.cpp | 36 ++ .../TheFeastCustomMatchLichenweed.cpp | 34 ++ .../instances/pvp/thefeast/TheFeastRanked.cpp | 34 ++ .../TheFeastTeamCustomMatchCrystalTower.cpp | 34 ++ .../pvp/thefeast/TheFeastTeamRanked.cpp | 34 ++ .../pvp/thefeast/TheFeastTraining.cpp | 34 ++ .../instances/questbattles/ABloodyReunion.cpp | 51 ++- .../questbattles/ASpectaclefortheAges.cpp | 58 ++- .../instances/questbattles/BloodDragoon.cpp | 43 ++- .../instances/questbattles/BloodontheDeck.cpp | 14 +- .../CuriousGorgeMeetsHisMatch.cpp | 17 +- .../instances/questbattles/DarkwingDragon.cpp | 26 +- .../questbattles/EmissaryoftheDawn.cpp | 36 ++ .../instances/questbattles/InThalsName.cpp | 14 +- .../questbattles/InterdimensionalRift.cpp | 23 +- .../questbattles/ItsProbablyaTrap.cpp | 21 +- .../instances/questbattles/MatsubaMayhem.cpp | 21 +- src/scripts/instances/questbattles/Naadam.cpp | 26 +- .../questbattles/OneLifeforOneWorld.cpp | 20 +- .../instances/questbattles/OurCompromise.cpp | 15 +- .../questbattles/OurUnsungHeroes.cpp | 140 +++---- .../questbattles/RaisingtheSword.cpp | 14 +- .../questbattles/ReturnoftheBull.cpp | 50 ++- .../questbattles/TheBattleonBekko.cpp | 15 +- .../TheCarteneauFlatsHeliodrome.cpp | 74 ++-- .../questbattles/TheFaceofTrueEvil.cpp | 9 +- .../questbattles/TheHeartoftheProblem.cpp | 26 +- .../TheOrphansandtheBrokenBlade.cpp | 9 +- .../instances/questbattles/TheResonant.cpp | 19 +- .../questbattles/TheWilloftheMoon.cpp | 45 +++ .../questbattles/WhenClansCollide.cpp | 26 +- .../questbattles/WithHeartandSteel.cpp | 104 +++++- .../raids/AlexanderTheArmoftheFather.cpp | 32 +- .../AlexanderTheArmoftheFatherSavage.cpp | 32 +- .../raids/AlexanderTheArmoftheSon.cpp | 63 +++- .../raids/AlexanderTheArmoftheSonSavage.cpp | 63 +++- .../raids/AlexanderTheBreathoftheCreator.cpp | 39 +- .../AlexanderTheBreathoftheCreatorSavage.cpp | 39 +- .../raids/AlexanderTheBurdenoftheFather.cpp | 17 +- .../AlexanderTheBurdenoftheFatherSavage.cpp | 17 +- .../raids/AlexanderTheBurdenoftheSon.cpp | 20 +- .../AlexanderTheBurdenoftheSonSavage.cpp | 20 +- .../raids/AlexanderTheCuffoftheFather.cpp | 43 ++- .../AlexanderTheCuffoftheFatherSavage.cpp | 43 ++- .../raids/AlexanderTheCuffoftheSon.cpp | 43 ++- .../raids/AlexanderTheCuffoftheSonSavage.cpp | 43 ++- .../raids/AlexanderTheEyesoftheCreator.cpp | 43 ++- .../AlexanderTheEyesoftheCreatorSavage.cpp | 43 ++- .../raids/AlexanderTheFistoftheFather.cpp | 51 ++- .../AlexanderTheFistoftheFatherSavage.cpp | 51 ++- .../raids/AlexanderTheFistoftheSon.cpp | 42 ++- .../raids/AlexanderTheFistoftheSonSavage.cpp | 42 ++- .../raids/AlexanderTheHeartoftheCreator.cpp | 54 ++- .../AlexanderTheHeartoftheCreatorSavage.cpp | 54 ++- .../raids/AlexanderTheSouloftheCreator.cpp | 35 +- .../AlexanderTheSouloftheCreatorSavage.cpp | 35 +- src/scripts/instances/raids/AlphascapeV10.cpp | 41 +++ .../instances/raids/AlphascapeV10Savage.cpp | 41 +++ src/scripts/instances/raids/AlphascapeV20.cpp | 36 ++ .../instances/raids/AlphascapeV20Savage.cpp | 36 ++ src/scripts/instances/raids/AlphascapeV30.cpp | 40 ++ .../instances/raids/AlphascapeV30Savage.cpp | 40 ++ src/scripts/instances/raids/AlphascapeV40.cpp | 44 +++ .../instances/raids/AlphascapeV40Savage.cpp | 44 +++ src/scripts/instances/raids/DeltascapeV10.cpp | 19 +- .../instances/raids/DeltascapeV10Savage.cpp | 19 +- src/scripts/instances/raids/DeltascapeV20.cpp | 18 +- .../instances/raids/DeltascapeV20Savage.cpp | 18 +- src/scripts/instances/raids/DeltascapeV30.cpp | 34 +- .../instances/raids/DeltascapeV30Savage.cpp | 34 +- src/scripts/instances/raids/DeltascapeV40.cpp | 23 +- .../instances/raids/DeltascapeV40Savage.cpp | 23 +- src/scripts/instances/raids/DunScaith.cpp | 81 ++++- src/scripts/instances/raids/SigmascapeV10.cpp | 34 +- .../instances/raids/SigmascapeV10Savage.cpp | 34 +- src/scripts/instances/raids/SigmascapeV20.cpp | 32 +- .../instances/raids/SigmascapeV20Savage.cpp | 32 +- src/scripts/instances/raids/SigmascapeV30.cpp | 27 +- .../instances/raids/SigmascapeV30Savage.cpp | 27 +- src/scripts/instances/raids/SigmascapeV40.cpp | 32 +- .../instances/raids/SigmascapeV40Savage.cpp | 32 +- src/scripts/instances/raids/SyrcusTower.cpp | 196 ++++------ .../raids/TheBindingCoilofBahamutTurn1.cpp | 113 +++--- .../raids/TheBindingCoilofBahamutTurn2.cpp | 114 +++--- .../raids/TheBindingCoilofBahamutTurn3.cpp | 151 +++----- .../raids/TheBindingCoilofBahamutTurn4.cpp | 58 ++- .../raids/TheBindingCoilofBahamutTurn5.cpp | 33 +- .../raids/TheFinalCoilofBahamutTurn1.cpp | 81 ++--- .../raids/TheFinalCoilofBahamutTurn2.cpp | 106 ++---- .../raids/TheFinalCoilofBahamutTurn3.cpp | 31 +- .../raids/TheFinalCoilofBahamutTurn4.cpp | 28 +- .../raids/TheLabyrinthoftheAncients.cpp | 235 +++++------- .../instances/raids/TheOrbonneMonastery.cpp | 106 ++++++ .../instances/raids/TheRidoranaLighthouse.cpp | 109 ++++++ .../raids/TheRoyalCityofRabanastre.cpp | 114 +++++- .../TheSecondCoilofBahamutSavageTurn1.cpp | 53 +-- .../TheSecondCoilofBahamutSavageTurn2.cpp | 54 +-- .../TheSecondCoilofBahamutSavageTurn3.cpp | 215 +++++------ .../TheSecondCoilofBahamutSavageTurn4.cpp | 48 +-- .../raids/TheSecondCoilofBahamutTurn1.cpp | 53 +-- .../raids/TheSecondCoilofBahamutTurn2.cpp | 54 +-- .../raids/TheSecondCoilofBahamutTurn3.cpp | 215 +++++------ .../raids/TheSecondCoilofBahamutTurn4.cpp | 48 +-- .../TheUnendingCoilofBahamutUltimate.cpp | 34 +- src/scripts/instances/raids/TheVoidArk.cpp | 106 +++++- .../raids/TheWeaponsRefrainUltimate.cpp | 44 +-- .../instances/raids/TheWeepingCityofMhach.cpp | 104 +++++- .../instances/raids/TheWorldofDarkness.cpp | 332 ++++++----------- .../instances/treasurehunt/TheAquapolis.cpp | 302 ++++++--------- .../treasurehunt/TheHiddenCanalsofUznair.cpp | 136 ++++++- .../treasurehunt/TheLostCanalsofUznair.cpp | 136 ++++++- .../TheShiftingAltarsofUznair.cpp | 55 +++ .../trials/ARelicReborntheChimera.cpp | 58 ++- .../instances/trials/ARelicReborntheHydra.cpp | 149 +++----- .../trials/AkhAfahAmphitheatreExtreme.cpp | 50 ++- .../trials/AkhAfahAmphitheatreHard.cpp | 44 +-- .../instances/trials/BattleintheBigKeep.cpp | 334 +++++++---------- .../instances/trials/BattleontheBigBridge.cpp | 38 +- src/scripts/instances/trials/CapeWestwind.cpp | 19 +- .../instances/trials/CastrumFluminis.cpp | 48 +++ .../instances/trials/ContainmentBayP1T6.cpp | 22 +- .../trials/ContainmentBayP1T6Extreme.cpp | 22 +- .../instances/trials/ContainmentBayS1T7.cpp | 29 +- .../trials/ContainmentBayS1T7Extreme.cpp | 29 +- .../instances/trials/ContainmentBayZ1T9.cpp | 28 +- .../trials/ContainmentBayZ1T9Extreme.cpp | 28 +- src/scripts/instances/trials/Emanation.cpp | 16 +- .../instances/trials/EmanationExtreme.cpp | 16 +- src/scripts/instances/trials/HellsKier.cpp | 47 +++ .../instances/trials/HellsKierExtreme.cpp | 47 +++ .../instances/trials/SpecialEventI.cpp | 19 +- .../instances/trials/SpecialEventII.cpp | 31 +- .../instances/trials/SpecialEventIII.cpp | 18 +- .../instances/trials/TheBowlofEmbers.cpp | 20 +- .../trials/TheBowlofEmbersExtreme.cpp | 20 +- .../instances/trials/TheBowlofEmbersHard.cpp | 20 +- src/scripts/instances/trials/TheChrysalis.cpp | 90 ++--- .../instances/trials/TheDragonsNeck.cpp | 168 +++------ .../instances/trials/TheFinalStepsofFaith.cpp | 23 +- src/scripts/instances/trials/TheGreatHunt.cpp | 36 ++ .../instances/trials/TheGreatHuntExtreme.cpp | 36 ++ .../instances/trials/TheHowlingEye.cpp | 40 +- .../instances/trials/TheHowlingEyeExtreme.cpp | 40 +- .../instances/trials/TheHowlingEyeHard.cpp | 40 +- src/scripts/instances/trials/TheJadeStoa.cpp | 19 +- .../instances/trials/TheJadeStoaExtreme.cpp | 19 +- .../trials/TheLimitlessBlueExtreme.cpp | 24 +- .../instances/trials/TheLimitlessBlueHard.cpp | 26 +- .../trials/TheMinstrelsBalladNidhoggsRage.cpp | 23 +- .../TheMinstrelsBalladShinryusDomain.cpp | 33 +- .../TheMinstrelsBalladThordansReign.cpp | 69 +++- .../TheMinstrelsBalladTsukuyomisPain.cpp | 48 +++ .../trials/TheMinstrelsBalladUltimasBane.cpp | 34 +- src/scripts/instances/trials/TheNavel.cpp | 16 +- .../instances/trials/TheNavelExtreme.cpp | 16 +- src/scripts/instances/trials/TheNavelHard.cpp | 16 +- .../instances/trials/ThePoolofTribute.cpp | 18 +- .../trials/ThePoolofTributeExtreme.cpp | 18 +- .../instances/trials/TheRoyalMenagerie.cpp | 29 +- .../trials/TheSingularityReactor.cpp | 69 +++- .../instances/trials/TheStepsofFaith.cpp | 74 ++-- .../trials/TheStrikingTreeExtreme.cpp | 16 +- .../instances/trials/TheStrikingTreeHard.cpp | 16 +- .../instances/trials/TheWhorleaterExtreme.cpp | 31 +- .../instances/trials/TheWhorleaterHard.cpp | 31 +- .../instances/trials/TheWreathofSnakes.cpp | 36 ++ .../trials/TheWreathofSnakesExtreme.cpp | 36 ++ .../instances/trials/ThokastThokExtreme.cpp | 36 +- .../instances/trials/ThokastThokHard.cpp | 36 +- .../instances/trials/ThornmarchExtreme.cpp | 16 +- .../instances/trials/ThornmarchHard.cpp | 16 +- src/scripts/instances/trials/UrthsFount.cpp | 16 +- 345 files changed, 11387 insertions(+), 7993 deletions(-) create mode 100644 src/scripts/instances/deepdungeon/HeavenonHighFloors110.cpp create mode 100644 src/scripts/instances/deepdungeon/HeavenonHighFloors1120.cpp create mode 100644 src/scripts/instances/deepdungeon/HeavenonHighFloors2130.cpp create mode 100644 src/scripts/instances/deepdungeon/HeavenonHighFloors3140.cpp create mode 100644 src/scripts/instances/deepdungeon/HeavenonHighFloors4150.cpp create mode 100644 src/scripts/instances/deepdungeon/HeavenonHighFloors5160.cpp create mode 100644 src/scripts/instances/deepdungeon/HeavenonHighFloors6170.cpp create mode 100644 src/scripts/instances/deepdungeon/HeavenonHighFloors7180.cpp create mode 100644 src/scripts/instances/deepdungeon/HeavenonHighFloors8190.cpp create mode 100644 src/scripts/instances/deepdungeon/HeavenonHighFloors91100.cpp create mode 100644 src/scripts/instances/dungeons/SaintMociannesArboretumHard.cpp create mode 100644 src/scripts/instances/dungeons/TheBurn.cpp create mode 100644 src/scripts/instances/dungeons/TheGhimlytDark.cpp create mode 100644 src/scripts/instances/dungeons/TheSwallowsCompass.cpp create mode 100644 src/scripts/instances/goldsaucer/AirForceOne.cpp create mode 100644 src/scripts/instances/goldsaucer/mahjong/AdvancedMahjongRanked.cpp create mode 100644 src/scripts/instances/goldsaucer/mahjong/FourplayerMahjongKuitanDisabled.cpp create mode 100644 src/scripts/instances/goldsaucer/mahjong/FourplayerMahjongKuitanEnabled.cpp create mode 100644 src/scripts/instances/goldsaucer/mahjong/NoviceMahjongRanked.cpp create mode 100644 src/scripts/instances/maskedcarnivale/AChorusSlime.cpp create mode 100644 src/scripts/instances/maskedcarnivale/ALittleKnightMusic.cpp create mode 100644 src/scripts/instances/maskedcarnivale/AllsWellThatStartsWell.cpp create mode 100644 src/scripts/instances/maskedcarnivale/AmazingTechnicolorPitFiends.cpp create mode 100644 src/scripts/instances/maskedcarnivale/BeautyandaBeast.cpp create mode 100644 src/scripts/instances/maskedcarnivale/BehemothsandBroomsticks.cpp create mode 100644 src/scripts/instances/maskedcarnivale/BlobsintheWoods.cpp create mode 100644 src/scripts/instances/maskedcarnivale/BombedyofErrors.cpp create mode 100644 src/scripts/instances/maskedcarnivale/ChimeraonaHotTinRoof.cpp create mode 100644 src/scripts/instances/maskedcarnivale/DirtyRottenAzulmagia.cpp create mode 100644 src/scripts/instances/maskedcarnivale/EyeSociety.cpp create mode 100644 src/scripts/instances/maskedcarnivale/GentlemenPreferSwords.cpp create mode 100644 src/scripts/instances/maskedcarnivale/HereComestheBoom.cpp create mode 100644 src/scripts/instances/maskedcarnivale/MidsummerNightsExplosion.cpp create mode 100644 src/scripts/instances/maskedcarnivale/MissTyphon.cpp create mode 100644 src/scripts/instances/maskedcarnivale/MuchAdoAboutPudding.cpp create mode 100644 src/scripts/instances/maskedcarnivale/OnaClearDayYouCanSmellForever.cpp create mode 100644 src/scripts/instances/maskedcarnivale/SomeLikeItExcruciatinglyHot.cpp create mode 100644 src/scripts/instances/maskedcarnivale/SunsetBullevard.cpp create mode 100644 src/scripts/instances/maskedcarnivale/TheMeNobodyNodes.cpp create mode 100644 src/scripts/instances/maskedcarnivale/ThePlantomoftheOpera.cpp create mode 100644 src/scripts/instances/maskedcarnivale/TheSwordofMusic.cpp create mode 100644 src/scripts/instances/maskedcarnivale/TheThreepennyTurtles.cpp create mode 100644 src/scripts/instances/maskedcarnivale/ToKillaMockingslime.cpp create mode 100644 src/scripts/instances/maskedcarnivale/WaitingforGolem.cpp delete mode 100644 src/scripts/instances/pvp/Astragalos.cpp delete mode 100644 src/scripts/instances/pvp/TheFeast4on4LightParty.cpp delete mode 100644 src/scripts/instances/pvp/TheFeast4on4Ranked.cpp delete mode 100644 src/scripts/instances/pvp/TheFeast4on4Training.cpp delete mode 100644 src/scripts/instances/pvp/TheFeastCustomMatchCrystalTower.cpp delete mode 100644 src/scripts/instances/pvp/TheFeastCustomMatchFeastingGrounds.cpp delete mode 100644 src/scripts/instances/pvp/TheFeastCustomMatchLichenweed.cpp delete mode 100644 src/scripts/instances/pvp/TheFeastRanked.cpp delete mode 100644 src/scripts/instances/pvp/TheFeastTeamRanked.cpp delete mode 100644 src/scripts/instances/pvp/TheFeastTraining.cpp create mode 100644 src/scripts/instances/pvp/rivalwings/Astragalos.cpp create mode 100644 src/scripts/instances/pvp/rivalwings/HiddenGorge.cpp create mode 100644 src/scripts/instances/pvp/thefeast/TheFeast4on4Ranked.cpp create mode 100644 src/scripts/instances/pvp/thefeast/TheFeast4on4Training.cpp create mode 100644 src/scripts/instances/pvp/thefeast/TheFeastCustomMatchCrystalTower.cpp create mode 100644 src/scripts/instances/pvp/thefeast/TheFeastCustomMatchFeastingGrounds.cpp create mode 100644 src/scripts/instances/pvp/thefeast/TheFeastCustomMatchLichenweed.cpp create mode 100644 src/scripts/instances/pvp/thefeast/TheFeastRanked.cpp create mode 100644 src/scripts/instances/pvp/thefeast/TheFeastTeamCustomMatchCrystalTower.cpp create mode 100644 src/scripts/instances/pvp/thefeast/TheFeastTeamRanked.cpp create mode 100644 src/scripts/instances/pvp/thefeast/TheFeastTraining.cpp create mode 100644 src/scripts/instances/questbattles/EmissaryoftheDawn.cpp create mode 100644 src/scripts/instances/questbattles/TheWilloftheMoon.cpp create mode 100644 src/scripts/instances/raids/AlphascapeV10.cpp create mode 100644 src/scripts/instances/raids/AlphascapeV10Savage.cpp create mode 100644 src/scripts/instances/raids/AlphascapeV20.cpp create mode 100644 src/scripts/instances/raids/AlphascapeV20Savage.cpp create mode 100644 src/scripts/instances/raids/AlphascapeV30.cpp create mode 100644 src/scripts/instances/raids/AlphascapeV30Savage.cpp create mode 100644 src/scripts/instances/raids/AlphascapeV40.cpp create mode 100644 src/scripts/instances/raids/AlphascapeV40Savage.cpp create mode 100644 src/scripts/instances/raids/TheOrbonneMonastery.cpp create mode 100644 src/scripts/instances/raids/TheRidoranaLighthouse.cpp create mode 100644 src/scripts/instances/treasurehunt/TheShiftingAltarsofUznair.cpp create mode 100644 src/scripts/instances/trials/CastrumFluminis.cpp create mode 100644 src/scripts/instances/trials/HellsKier.cpp create mode 100644 src/scripts/instances/trials/HellsKierExtreme.cpp create mode 100644 src/scripts/instances/trials/TheGreatHunt.cpp create mode 100644 src/scripts/instances/trials/TheGreatHuntExtreme.cpp create mode 100644 src/scripts/instances/trials/TheMinstrelsBalladTsukuyomisPain.cpp create mode 100644 src/scripts/instances/trials/TheWreathofSnakes.cpp create mode 100644 src/scripts/instances/trials/TheWreathofSnakesExtreme.cpp diff --git a/src/scripts/instances/ScriptLoader.cpp b/src/scripts/instances/ScriptLoader.cpp index 1616c052..ea958b95 100644 --- a/src/scripts/instances/ScriptLoader.cpp +++ b/src/scripts/instances/ScriptLoader.cpp @@ -1,5 +1,15 @@ #include