1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-05-28 20:27:46 +00:00

Merge pull request #272 from takhlaq/party_crap

Base for social implementation
This commit is contained in:
Mordred 2018-03-10 22:29:44 +01:00 committed by GitHub
commit b36402119e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
378 changed files with 2915 additions and 1250 deletions

View file

@ -16,14 +16,14 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake)
# set(Boost_DEBUG 1) # set(Boost_DEBUG 1)
if(NOT SAPPHIRE_BOOST_VER) if( NOT SAPPHIRE_BOOST_VER )
set(SAPPHIRE_BOOST_VER 1.60.0) set( SAPPHIRE_BOOST_VER 1.63.0 )
endif() endif()
set(SAPPHIRE_BOOST_FOLDER_NAME boost_1_60_0) set( SAPPHIRE_BOOST_FOLDER_NAME boost_1_63_0 )
########################################################################## ##########################################################################
# Common and library path # Common and library path
set(LIBRARY_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src/libraries") set( LIBRARY_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src/libraries" )
########################################################################## ##########################################################################
# Dependencies and compiler settings # Dependencies and compiler settings
@ -34,22 +34,22 @@ include( "cmake/cotire.cmake" )
############################## ##############################
# Git # # Git #
############################## ##############################
include(GetGitRevisionDescription) include( GetGitRevisionDescription )
get_git_head_revision(GIT_REFSPEC GIT_SHA1) get_git_head_revision( GIT_REFSPEC GIT_SHA1 )
git_describe(VERSION --all --dirty=-d) git_describe( VERSION --all --dirty=-d )
configure_file("src/common/Version.cpp.in" configure_file( "${CMAKE_CURRENT_SOURCE_DIR}/src/common/Version.cpp.in"
"src/common/Version.cpp" @ONLY) "${CMAKE_CURRENT_SOURCE_DIR}/src/common/Version.cpp" @ONLY )
########################################################################## ##########################################################################
add_subdirectory("src/libraries/sapphire/datReader") add_subdirectory( "src/libraries/sapphire/datReader" )
add_subdirectory("src/libraries/sapphire/mysqlConnector") add_subdirectory( "src/libraries/sapphire/mysqlConnector" )
add_subdirectory("src/common") add_subdirectory( "src/common" )
add_subdirectory("src/servers") add_subdirectory( "src/servers" )
add_subdirectory("src/tools/exd_common_gen") add_subdirectory( "src/tools/exd_common_gen" )
add_subdirectory("src/tools/exd_struct_gen") add_subdirectory( "src/tools/exd_struct_gen" )
add_subdirectory("src/tools/exd_struct_test") add_subdirectory( "src/tools/exd_struct_test" )
add_subdirectory("src/tools/quest_parser") add_subdirectory( "src/tools/quest_parser" )
#add_subdirectory("src/tools/pcb_reader") #add_subdirectory("src/tools/pcb_reader")
#add_subdirectory("src/tools/event_object_parser") #add_subdirectory("src/tools/event_object_parser")

File diff suppressed because it is too large Load diff

View file

@ -1,13 +1,13 @@
#include "DbConnection.h" #include "DbConnection.h"
#include "DbWorker.h" #include "DbWorker.h"
#include <MySqlConnector.h> #include <MySqlConnector.h>
#include "Logging/Logger.h" #include "Logging/Logger.h"
#include "PreparedStatement.h" #include "PreparedStatement.h"
#include <boost/make_shared.hpp> #include <boost/make_shared.hpp>
#include "Framework.h"
extern Core::Framework g_fw;
extern Core::Logger g_log;
Core::Db::DbConnection::DbConnection( ConnectionInfo &connInfo ) : Core::Db::DbConnection::DbConnection( ConnectionInfo &connInfo ) :
m_reconnecting( false ), m_reconnecting( false ),
@ -67,7 +67,7 @@ uint32_t Core::Db::DbConnection::open()
} }
catch( std::runtime_error& e ) catch( std::runtime_error& e )
{ {
g_log.error( e.what() ); g_fw.get< Logger >()->error( e.what() );
return 1; return 1;
} }
@ -119,7 +119,7 @@ bool Core::Db::DbConnection::execute( const std::string& sql )
} }
catch( std::runtime_error& e ) catch( std::runtime_error& e )
{ {
g_log.error( e.what() ); g_fw.get< Logger >()->error( e.what() );
return false; return false;
} }
} }
@ -134,7 +134,7 @@ boost::shared_ptr< Mysql::ResultSet > Core::Db::DbConnection::query( const std::
} }
catch( std::runtime_error& e ) catch( std::runtime_error& e )
{ {
g_log.error( e.what() ); g_fw.get< Logger >()->error( e.what() );
return nullptr; return nullptr;
} }
} }
@ -148,13 +148,11 @@ boost::shared_ptr< Mysql::ResultSet > Core::Db::DbConnection::query( boost::shar
if( !ping() ) if( !ping() )
{ {
g_log.error( "MysqlConnection went down" );
// naivly reconnect and hope for the best // naivly reconnect and hope for the best
open(); open();
lockIfReady(); lockIfReady();
if( !prepareStatements() ) if( !prepareStatements() )
g_log.error( "Mysql Statements failed to prepare..." ); return nullptr;
g_log.info( "MysqlConnection reestablished" );
} }
uint32_t index = stmt->getIndex(); uint32_t index = stmt->getIndex();
@ -172,7 +170,7 @@ boost::shared_ptr< Mysql::ResultSet > Core::Db::DbConnection::query( boost::shar
} }
catch( std::runtime_error& e ) catch( std::runtime_error& e )
{ {
g_log.error( e.what() ); g_fw.get< Logger >()->error( e.what() );
return nullptr; return nullptr;
} }
@ -198,7 +196,7 @@ bool Core::Db::DbConnection::execute( boost::shared_ptr< Core::Db::PreparedState
} }
catch( std::runtime_error& e ) catch( std::runtime_error& e )
{ {
g_log.error( e.what() ); g_fw.get< Logger >()->error( e.what() );
return false; return false;
} }
} }
@ -234,7 +232,7 @@ void Core::Db::DbConnection::prepareStatement( uint32_t index, const std::string
} }
catch( std::runtime_error& e ) catch( std::runtime_error& e )
{ {
g_log.error( e.what() ); g_fw.get< Logger >()->error( e.what() );
m_prepareError = true; m_prepareError = true;
} }

View file

@ -3,8 +3,9 @@
#include "CharaDbConnection.h" #include "CharaDbConnection.h"
#include "DbWorkerPool.h" #include "DbWorkerPool.h"
#include "Logging/Logger.h" #include "Logging/Logger.h"
#include "Framework.h"
extern Core::Logger g_log; extern Core::Framework g_fw;
Core::Db::DbLoader::DbLoader() Core::Db::DbLoader::DbLoader()
{ {
@ -16,12 +17,14 @@ Core::Db::DbLoader& Core::Db::DbLoader::addDb( Core::Db::DbWorkerPool< T >& pool
m_open.push([this, info, &pool]() -> bool m_open.push([this, info, &pool]() -> bool
{ {
auto pLog = g_fw.get< Logger >();
const uint8_t asyncThreads = info.asyncThreads; const uint8_t asyncThreads = info.asyncThreads;
const uint8_t synchThreads = info.syncThreads; const uint8_t synchThreads = info.syncThreads;
if( asyncThreads < 1 || asyncThreads > 32 ) if( asyncThreads < 1 || asyncThreads > 32 )
{ {
g_log.error( "database: invalid number of worker threads specified. Please pick a value between 1 and 32." ); pLog->error( "database: invalid number of worker threads specified. Please pick a value between 1 and 32." );
return false; return false;
} }
@ -36,7 +39,7 @@ Core::Db::DbLoader& Core::Db::DbLoader::addDb( Core::Db::DbWorkerPool< T >& pool
if( error ) if( error )
{ {
g_log.error( "DatabasePool failed to open." ); pLog->error( "DatabasePool failed to open." );
return false; return false;
} }
} }
@ -50,7 +53,8 @@ Core::Db::DbLoader& Core::Db::DbLoader::addDb( Core::Db::DbWorkerPool< T >& pool
{ {
if( !pool.prepareStatements() ) if( !pool.prepareStatements() )
{ {
g_log.error( "Could not prepare statements of the database, see log for details." ); auto pLog = g_fw.get< Logger >();
pLog->error( "Could not prepare statements of the database, see log for details." );
return false; return false;
} }
return true; return true;
@ -104,5 +108,5 @@ bool Core::Db::DbLoader::process( std::queue< Predicate >& queue )
template template
Core::Db::DbLoader& Core::Db::DbLoader&
Core::Db::DbLoader::addDb< Core::Db::CharaDbConnection >( Core::Db::DbWorkerPool< Core::Db::CharaDbConnection >&, Core::Db::DbLoader::addDb< Core::Db::CharaDbConnection >( Core::Db::DbWorkerPool< Core::Db::CharaDbConnection >&,
const ConnectionInfo& ); const ConnectionInfo& );

View file

@ -6,9 +6,11 @@
#include "Operation.h" #include "Operation.h"
#include "CharaDbConnection.h" #include "CharaDbConnection.h"
#include <boost/make_shared.hpp> #include <boost/make_shared.hpp>
#include "Framework.h"
#include "Logging/Logger.h" #include "Logging/Logger.h"
extern Core::Logger g_log;
extern Core::Framework g_fw;
class PingOperation : public Core::Db::Operation class PingOperation : public Core::Db::Operation
{ {
@ -46,7 +48,8 @@ void Core::Db::DbWorkerPool< T >::setConnectionInfo( const ConnectionInfo& info,
template< class T > template< class T >
uint32_t Core::Db::DbWorkerPool< T >::open() uint32_t Core::Db::DbWorkerPool< T >::open()
{ {
g_log.info( "[DbPool] Opening DatabasePool " + getDatabaseName() + auto pLog = g_fw.get< Logger >();
pLog->info( "[DbPool] Opening DatabasePool " + getDatabaseName() +
" Asynchronous connections: " + std::to_string( m_asyncThreads ) + " Asynchronous connections: " + std::to_string( m_asyncThreads ) +
" Synchronous connections: " + std::to_string( m_synchThreads ) ); " Synchronous connections: " + std::to_string( m_synchThreads ) );
@ -59,7 +62,7 @@ uint32_t Core::Db::DbWorkerPool< T >::open()
if( !error ) if( !error )
{ {
g_log.info( "[DbPool] DatabasePool " + getDatabaseName() + " opened successfully. " + pLog->info( "[DbPool] DatabasePool " + getDatabaseName() + " opened successfully. " +
std::to_string( ( m_connections[IDX_SYNCH].size() + m_connections[IDX_ASYNC].size() ) ) + std::to_string( ( m_connections[IDX_SYNCH].size() + m_connections[IDX_ASYNC].size() ) ) +
" total connections running." ); " total connections running." );
} }
@ -70,10 +73,11 @@ uint32_t Core::Db::DbWorkerPool< T >::open()
template< class T > template< class T >
void Core::Db::DbWorkerPool< T >::close() void Core::Db::DbWorkerPool< T >::close()
{ {
g_log.info("[DbPool] Closing down DatabasePool " + getDatabaseName() ); auto pLog = g_fw.get< Logger >();
pLog->info("[DbPool] Closing down DatabasePool " + getDatabaseName() );
m_connections[IDX_ASYNC].clear(); m_connections[IDX_ASYNC].clear();
m_connections[IDX_SYNCH].clear(); m_connections[IDX_SYNCH].clear();
g_log.info("[DbPool] All connections on DatabasePool " + getDatabaseName() + "closed." ); pLog->info("[DbPool] All connections on DatabasePool " + getDatabaseName() + "closed." );
} }
template< class T > template< class T >

View file

@ -2,6 +2,11 @@
#define _COMMON_FORWARDS_H #define _COMMON_FORWARDS_H
#include <boost/shared_ptr.hpp> #include <boost/shared_ptr.hpp>
#include <chrono>
using namespace std::chrono_literals;
using time_point = std::chrono::steady_clock::time_point;
using duration = std::chrono::steady_clock::duration;
namespace Core namespace Core
{ {

5
src/common/Framework.cpp Normal file
View file

@ -0,0 +1,5 @@
#include "Framework.h"
#include <Logging/Logger.h>
#include <boost/shared_ptr.hpp>
#include <boost/make_shared.hpp>

37
src/common/Framework.h Normal file
View file

@ -0,0 +1,37 @@
#ifndef _CORE_FRAMEWORK_H
#define _CORE_FRAMEWORK_H
#include <map>
#include <typeindex>
#include <typeinfo>
#include <boost/shared_ptr.hpp>
#include <cassert>
namespace Core
{
class Framework
{
using TypenameToObject = std::map< std::type_index, boost::shared_ptr< void > >;
TypenameToObject ObjectMap;
public:
template< typename T >
boost::shared_ptr< T > get()
{
auto iType = ObjectMap.find( typeid( T ) );
assert( !( iType == ObjectMap.end() ) );
return boost::static_pointer_cast< T >( iType->second );
}
template< typename T >
void set( boost::shared_ptr< T > value )
{
assert( value ); // why would anyone store nullptrs....
ObjectMap[typeid( T )] = value;
}
};
}
#endif // _CORE_FRAMEWORK_H

View file

@ -1,7 +1,7 @@
#ifndef _CORE_NETWORK_PACKETS_IPCS_H #ifndef _CORE_NETWORK_PACKETS_IPCS_H
#define _CORE_NETWORK_PACKETS_IPCS_H #define _CORE_NETWORK_PACKETS_IPCS_H
#include<stdint.h> #include <stdint.h>
namespace Core { namespace Core {
namespace Network { namespace Network {
@ -72,9 +72,10 @@ namespace Packets {
Playtime = 0x00DF, // updated 4.2 Playtime = 0x00DF, // updated 4.2
CFRegistered = 0x00B8, // updated 4.1 CFRegistered = 0x00B8, // updated 4.1
SocialRequestResponse = 0x00BB, // updated 4.1
CancelAllianceForming = 0x00C6, // updated 4.2 CancelAllianceForming = 0x00C6, // updated 4.2
Chat = 0x00E1, // updated 4.2 Chat = 0x00E1, // updated 4.2
SocialRequestResponse = 0x00E5, // updated 4.1
SocialRequestReceive = 0x00E6, // updated 4.2
SocialList = 0x00E7, // updated 4.2 SocialList = 0x00E7, // updated 4.2
UpdateSearchInfo = 0x00EA, // updated 4.2 UpdateSearchInfo = 0x00EA, // updated 4.2

View file

@ -81,19 +81,64 @@ struct FFXIVIpcPlayTime : FFXIVIpcBasePacket<Playtime>
*/ */
struct PlayerEntry { struct PlayerEntry {
uint64_t contentId; uint64_t contentId;
uint8_t bytes[12]; uint32_t timestamp;
uint8_t bytes[4];
uint8_t status; // bitmask. friend: if it's a request, if added, recipient/sender
uint8_t unknown; // maybe bitmask? a value of 4 sets it to linkshell request
uint8_t entryIcon; // observed in friend group icon, sideffects for displaying text
uint8_t unavailable; // bool
uint16_t zoneId; uint16_t zoneId;
uint16_t zoneId1; uint8_t grandCompany;
char bytes1[8]; uint8_t clientLanguage;
uint8_t knownLanguages; // bitmask, J 0x01, E 0x02, D 0x04, F 0x08
uint8_t searchComment; // bool
char bytes1[6];
uint64_t onlineStatusMask; uint64_t onlineStatusMask;
uint8_t classJob; Common::ClassJob classJob;
uint8_t padding; uint8_t padding;
uint8_t level; uint16_t level;
uint8_t padding1;
uint16_t padding2; uint16_t padding2;
uint8_t one; uint8_t one;
char name[0x20]; char name[0x20];
char fcTag[9]; char fcTag[5];
};
struct FFXIVIpcSocialRequestReceive : FFXIVIpcBasePacket<SocialRequestReceive>
{
uint32_t actorId; // actor id of player which initiated request
uint16_t unknown;
uint16_t unknown2;
uint32_t timestamp; // must be greater than current time
uint8_t unknown3;
uint8_t unknown4; // Very likely cross-world related
Common::SocialCategory category; // 1 - party invite, 2 - friends request, 3 - ??, 4 - fc signature request, 5 - fc invite,
uint8_t unknown5;
Common::SocialRequestAction action; // 0 - ??, 1 - received, 2 - canceled, 4 - friend accept/fc sign/fc join, 5 - refuse fc petition/decline invite
uint8_t unknown6;
char name[0x20];
uint16_t unknown7;
uint16_t unknown8;
uint16_t unknown9;
};
struct FFXIVIpcSocialRequestError : FFXIVIpcBasePacket<SocialRequestError>
{
uint32_t messageId; // if 0 then type's message is used (type must 2/4/5 or it wont print)
Common::SocialCategory category; // 2 - friend request, 4 - fc petition, 5 - fc invitation, anything else and wont print
uint8_t unknown; // possibly padding
char name[0x20];
uint8_t unknown3[2]; // probably padding
};
struct FFXIVIpcSocialRequestResponse : FFXIVIpcBasePacket<SocialRequestResponse>
{
uint64_t contentId;
uint32_t unknown;
Common::SocialCategory category; // Common::SocialCategory
Common::SocialRequestResponse response; // Common::SocialRequestResponse
char name[0x20];
uint16_t padding;
}; };
struct FFXIVIpcSocialList : FFXIVIpcBasePacket<SocialList> struct FFXIVIpcSocialList : FFXIVIpcBasePacket<SocialList>

View file

@ -72,7 +72,7 @@ namespace Util
return spawnIndex != getAllocFailId(); return spawnIndex != getAllocFailId();
} }
constexpr T getAllocFailId() constexpr T getAllocFailId() const
{ {
return static_cast< T >( -1 ); return static_cast< T >( -1 );
} }

View file

@ -1,10 +1,10 @@
#include "Version.h" #include "Version.h"
namespace Core { namespace Core {
namespace Version { namespace Version {
const std::string GIT_HASH = "@GIT_SHA1@"; const std::string GIT_HASH = "@GIT_SHA1@";
const std::string VERSION = "@VERSION@"; const std::string VERSION = "@VERSION@";
} /* Version */ } /* Version */
} /* Core */ } /* Core */

@ -1 +1 @@
Subproject commit 732e26b4bfb15875d71ae4ec13b8bd6155013840 Subproject commit 67b949dfe3ffbbba7963b0861670ab4bb1819991

View file

@ -12,3 +12,4 @@ include_directories("${PROJECT_SOURCE_DIR}")
add_subdirectory(${PROJECT_SOURCE_DIR}/sapphire_lobby) add_subdirectory(${PROJECT_SOURCE_DIR}/sapphire_lobby)
add_subdirectory(${PROJECT_SOURCE_DIR}/sapphire_api) add_subdirectory(${PROJECT_SOURCE_DIR}/sapphire_api)
add_subdirectory(${PROJECT_SOURCE_DIR}/sapphire_zone) add_subdirectory(${PROJECT_SOURCE_DIR}/sapphire_zone)
add_subdirectory(${PROJECT_SOURCE_DIR}/Scripts)

View file

@ -3,8 +3,6 @@ project(Sapphire_Script)
file(GLOB SCRIPT_INCLUDE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*.h") file(GLOB SCRIPT_INCLUDE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*.h")
include_directories("${CMAKE_SOURCE_DIR}/src/servers/")
message("exec: ${EXECUTABLE_OUTPUT_DIRECTORY}") message("exec: ${EXECUTABLE_OUTPUT_DIRECTORY}")
set(SCRIPT_LIB_DIR "${EXECUTABLE_OUTPUT_DIRECTORY}/compiledscripts/" ) set(SCRIPT_LIB_DIR "${EXECUTABLE_OUTPUT_DIRECTORY}/compiledscripts/" )
@ -38,14 +36,11 @@ foreach(_scriptDir ${children})
endforeach() endforeach()
add_library("script_${_name}" MODULE ${SCRIPT_BUILD_FILES} "${SCRIPT_INCLUDE_FILES}" "${_scriptDir}/ScriptLoader.cpp") add_library("script_${_name}" MODULE ${SCRIPT_BUILD_FILES} "${SCRIPT_INCLUDE_FILES}" "${_scriptDir}/ScriptLoader.cpp")
target_link_libraries("script_${_name}" sapphire_zone) target_link_libraries( "script_${_name}" sapphire_zone )
if(MSVC) if(MSVC)
target_link_libraries("script_${_name}" ${Boost_LIBRARIES}) target_link_libraries( "script_${_name}" ${Boost_LIBRARIES})
endif() set_target_properties( "script_${_name}" PROPERTIES
if(MSVC)
set_target_properties("script_${_name}" PROPERTIES
CXX_STANDARD 14 CXX_STANDARD 14
CXX_STANDARD_REQUIRED ON CXX_STANDARD_REQUIRED ON
CXX_EXTENSIONS ON CXX_EXTENSIONS ON
@ -56,10 +51,7 @@ foreach(_scriptDir ${children})
) )
endif() endif()
target_include_directories("script_${_name}" PUBLIC "${CMAKE_SOURCE_DIR}/src/servers/sapphire_zone/") target_include_directories("script_${_name}" PUBLIC "${CMAKE_SOURCE_DIR}/src/servers/sapphire_zone/")
target_include_directories("script_${_name}" PUBLIC "${CMAKE_SOURCE_DIR}/src/servers/sapphire_zone/Script") target_include_directories("script_${_name}" PUBLIC "${CMAKE_SOURCE_DIR}/src/servers/Script/Scripts")
target_include_directories("script_${_name}" PUBLIC "${CMAKE_SOURCE_DIR}/src/servers/sapphire_zone/Script/Scripts")
target_include_directories("script_${_name}" PUBLIC "${CMAKE_SOURCE_DIR}/src/")
target_include_directories("script_${_name}" PUBLIC "${CMAKE_SOURCE_DIR}/src/common")
target_include_directories("script_${_name}" PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") target_include_directories("script_${_name}" PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")
target_include_directories("script_${_name}" PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/Scripts") target_include_directories("script_${_name}" PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/Scripts")

View file

@ -0,0 +1,15 @@
#include <Script/NativeScriptApi.h>
#include "ActionSprint3.cpp"
const ScriptObject* ptrs[] =
{
static_cast< ScriptObject* >( new ActionSprint3 ),
nullptr
};
extern "C" EXPORT const ScriptObject** getScripts()
{
return ptrs;
}

View file

@ -0,0 +1,25 @@
#include <Script/NativeScriptApi.h>
#include "Aethernet.cpp"
#include "Aetheryte.cpp"
#include "HouFurOrchestrion.cpp"
#include "CmnDefInnBed.cpp"
#include "CmnDefCutSceneReplay.cpp"
#include "CmnDefLinkShell.cpp"
const ScriptObject* ptrs[] =
{
static_cast< ScriptObject* >( new Aethernet ),
static_cast< ScriptObject* >( new Aetheryte ),
static_cast< ScriptObject* >( new HouFurOrchestrion ),
static_cast< ScriptObject* >( new CmnDefInnBed ),
static_cast< ScriptObject* >( new CmnDefCutSceneReplay ),
static_cast< ScriptObject* >( new CmnDefLinkShell ),
nullptr
};
extern "C" EXPORT const ScriptObject** getScripts()
{
return ptrs;
}

View file

@ -0,0 +1,547 @@
#include <Script/NativeScriptApi.h>
#include "pvp/TheFeastTeamRanked.cpp"
#include "pvp/SealRockSeize.cpp"
#include "pvp/TheFeast4on4Ranked.cpp"
#include "pvp/TheFeast4on4LightParty.cpp"
#include "pvp/TheFeastRanked.cpp"
#include "pvp/TheFieldsofGloryShatter.cpp"
#include "pvp/TheFeastTraining.cpp"
#include "pvp/Astragalos.cpp"
#include "pvp/TheFeast4on4Training.cpp"
#include "pvp/TheFeastCustomMatchFeastingGrounds.cpp"
#include "pvp/TheFeastCustomMatchLichenweed.cpp"
#include "pvp/TheBorderlandRuinsSecure.cpp"
#include "pvp/TheFeastCustomMatchCrystalTower.cpp"
#include "dungeons/TheTamTaraDeepcroft.cpp"
#include "dungeons/DomaCastle.cpp"
#include "dungeons/HullbreakerIsleHard.cpp"
#include "dungeons/Snowcloak.cpp"
#include "dungeons/TheGreatGubalLibrary.cpp"
#include "dungeons/TheWanderersPalace.cpp"
#include "dungeons/Xelphatol.cpp"
#include "dungeons/TheLostCityofAmdaporHard.cpp"
#include "dungeons/SaintMociannesArboretum.cpp"
#include "dungeons/BardamsMettle.cpp"
#include "dungeons/TheTamTaraDeepcroftHard.cpp"
#include "dungeons/KuganeCastle.cpp"
#include "dungeons/TheDrownedCityofSkalla.cpp"
#include "dungeons/ShisuioftheVioletTides.cpp"
#include "dungeons/CuttersCry.cpp"
#include "dungeons/HellsLid.cpp"
#include "dungeons/TheVault.cpp"
#include "dungeons/TheStoneVigilHard.cpp"
#include "dungeons/Sastasha.cpp"
#include "dungeons/TheFractalContinuum.cpp"
#include "dungeons/TheLostCityofAmdapor.cpp"
#include "dungeons/TheAurumVale.cpp"
#include "dungeons/SohrKhai.cpp"
#include "dungeons/TheSunkenTempleofQarnHard.cpp"
#include "dungeons/Neverreap.cpp"
#include "dungeons/TheAntitower.cpp"
#include "dungeons/Halatali.cpp"
#include "dungeons/TheAery.cpp"
#include "dungeons/PharosSiriusHard.cpp"
#include "dungeons/CastrumMeridianum.cpp"
#include "dungeons/TheGreatGubalLibraryHard.cpp"
#include "dungeons/SohmAl.cpp"
#include "dungeons/TheTempleoftheFist.cpp"
#include "dungeons/TheKeeperoftheLake.cpp"
#include "dungeons/AmdaporKeepHard.cpp"
#include "dungeons/TheWanderersPalaceHard.cpp"
#include "dungeons/CastrumAbania.cpp"
#include "dungeons/AlaMhigo.cpp"
#include "dungeons/PharosSirius.cpp"
#include "dungeons/TheStoneVigil.cpp"
#include "dungeons/TheThousandMawsofTotoRak.cpp"
#include "dungeons/BrayfloxsLongstopHard.cpp"
#include "dungeons/DzemaelDarkhold.cpp"
#include "dungeons/SohmAlHard.cpp"
#include "dungeons/HaukkeManor.cpp"
#include "dungeons/HullbreakerIsle.cpp"
#include "dungeons/TheFractalContinuumHard.cpp"
#include "dungeons/TheSirensongSea.cpp"
#include "dungeons/BaelsarsWall.cpp"
#include "dungeons/HalataliHard.cpp"
#include "dungeons/TheAetherochemicalResearchFacility.cpp"
#include "dungeons/SastashaHard.cpp"
#include "dungeons/CopperbellMinesHard.cpp"
#include "dungeons/TheSunkenTempleofQarn.cpp"
#include "dungeons/AmdaporKeep.cpp"
#include "dungeons/TheDuskVigil.cpp"
#include "dungeons/BrayfloxsLongstop.cpp"
#include "dungeons/HaukkeManorHard.cpp"
#include "dungeons/CopperbellMines.cpp"
#include "dungeons/ThePraetorium.cpp"
#include "questbattles/RaisingtheSword.cpp"
#include "questbattles/InterdimensionalRift.cpp"
#include "questbattles/CuriousGorgeMeetsHisMatch.cpp"
#include "questbattles/WithHeartandSteel.cpp"
#include "questbattles/OneLifeforOneWorld.cpp"
#include "questbattles/ABloodyReunion.cpp"
#include "questbattles/MatsubaMayhem.cpp"
#include "questbattles/BloodontheDeck.cpp"
#include "questbattles/OurCompromise.cpp"
#include "questbattles/Naadam.cpp"
#include "questbattles/InThalsName.cpp"
#include "questbattles/TheResonant.cpp"
#include "questbattles/OurUnsungHeroes.cpp"
#include "questbattles/DarkwingDragon.cpp"
#include "questbattles/BloodDragoon.cpp"
#include "questbattles/ASpectaclefortheAges.cpp"
#include "questbattles/ItsProbablyaTrap.cpp"
#include "questbattles/TheBattleonBekko.cpp"
#include "questbattles/TheHeartoftheProblem.cpp"
#include "questbattles/TheOrphansandtheBrokenBlade.cpp"
#include "questbattles/TheCarteneauFlatsHeliodrome.cpp"
#include "questbattles/ReturnoftheBull.cpp"
#include "questbattles/TheFaceofTrueEvil.cpp"
#include "questbattles/WhenClansCollide.cpp"
#include "raids/AlexanderTheArmoftheSonSavage.cpp"
#include "raids/TheLabyrinthoftheAncients.cpp"
#include "raids/SigmascapeV30.cpp"
#include "raids/TheVoidArk.cpp"
#include "raids/SyrcusTower.cpp"
#include "raids/DeltascapeV20.cpp"
#include "raids/TheFinalCoilofBahamutTurn1.cpp"
#include "raids/SigmascapeV20Savage.cpp"
#include "raids/TheFinalCoilofBahamutTurn3.cpp"
#include "raids/SigmascapeV30Savage.cpp"
#include "raids/TheBindingCoilofBahamutTurn2.cpp"
#include "raids/AlexanderTheSouloftheCreatorSavage.cpp"
#include "raids/DunScaith.cpp"
#include "raids/DeltascapeV40Savage.cpp"
#include "raids/TheSecondCoilofBahamutTurn1.cpp"
#include "raids/AlexanderTheHeartoftheCreatorSavage.cpp"
#include "raids/DeltascapeV40.cpp"
#include "raids/TheSecondCoilofBahamutSavageTurn2.cpp"
#include "raids/TheSecondCoilofBahamutTurn3.cpp"
#include "raids/TheUnendingCoilofBahamutUltimate.cpp"
#include "raids/TheSecondCoilofBahamutTurn2.cpp"
#include "raids/TheWorldofDarkness.cpp"
#include "raids/SigmascapeV10.cpp"
#include "raids/AlexanderTheBurdenoftheSonSavage.cpp"
#include "raids/TheFinalCoilofBahamutTurn2.cpp"
#include "raids/AlexanderTheBurdenoftheFatherSavage.cpp"
#include "raids/AlexanderTheHeartoftheCreator.cpp"
#include "raids/TheBindingCoilofBahamutTurn4.cpp"
#include "raids/AlexanderTheBreathoftheCreatorSavage.cpp"
#include "raids/AlexanderTheEyesoftheCreatorSavage.cpp"
#include "raids/AlexanderTheArmoftheFatherSavage.cpp"
#include "raids/DeltascapeV30.cpp"
#include "raids/AlexanderTheFistoftheFather.cpp"
#include "raids/DeltascapeV10.cpp"
#include "raids/DeltascapeV10Savage.cpp"
#include "raids/SigmascapeV40Savage.cpp"
#include "raids/AlexanderTheCuffoftheSon.cpp"
#include "raids/AlexanderTheFistoftheSonSavage.cpp"
#include "raids/TheSecondCoilofBahamutSavageTurn3.cpp"
#include "raids/AlexanderTheArmoftheFather.cpp"
#include "raids/AlexanderTheCuffoftheSonSavage.cpp"
#include "raids/TheBindingCoilofBahamutTurn5.cpp"
#include "raids/SigmascapeV20.cpp"
#include "raids/AlexanderTheCuffoftheFather.cpp"
#include "raids/TheSecondCoilofBahamutSavageTurn1.cpp"
#include "raids/TheBindingCoilofBahamutTurn1.cpp"
#include "raids/AlexanderTheBurdenoftheSon.cpp"
#include "raids/AlexanderTheBreathoftheCreator.cpp"
#include "raids/TheFinalCoilofBahamutTurn4.cpp"
#include "raids/DeltascapeV30Savage.cpp"
#include "raids/AlexanderTheFistoftheSon.cpp"
#include "raids/AlexanderTheFistoftheFatherSavage.cpp"
#include "raids/AlexanderTheArmoftheSon.cpp"
#include "raids/TheBindingCoilofBahamutTurn3.cpp"
#include "raids/SigmascapeV40.cpp"
#include "raids/TheSecondCoilofBahamutTurn4.cpp"
#include "raids/AlexanderTheCuffoftheFatherSavage.cpp"
#include "raids/SigmascapeV10Savage.cpp"
#include "raids/DeltascapeV20Savage.cpp"
#include "raids/TheWeepingCityofMhach.cpp"
#include "raids/TheRoyalCityofRabanastre.cpp"
#include "raids/AlexanderTheBurdenoftheFather.cpp"
#include "raids/AlexanderTheEyesoftheCreator.cpp"
#include "raids/TheSecondCoilofBahamutSavageTurn4.cpp"
#include "raids/AlexanderTheSouloftheCreator.cpp"
#include "AkhAfahAmphitheatreExtreme.cpp"
#include "guildhests/HeroontheHalfShell.cpp"
#include "guildhests/BasicTrainingEnemyStrongholds.cpp"
#include "guildhests/ShadowandClaw.cpp"
#include "guildhests/AnnoytheVoid.cpp"
#include "guildhests/StingingBack.cpp"
#include "guildhests/FlickingSticksandTakingNames.cpp"
#include "guildhests/SolemnTrinity.cpp"
#include "guildhests/UndertheArmor.cpp"
#include "guildhests/LongLivetheQueen.cpp"
#include "guildhests/AllsWellthatEndsintheWell.cpp"
#include "guildhests/MorethanaFeeler.cpp"
#include "guildhests/PullingPoisonPosies.cpp"
#include "guildhests/WardUp.cpp"
#include "guildhests/BasicTrainingEnemyParties.cpp"
#include "trials/TheStrikingTreeHard.cpp"
#include "trials/TheJadeStoaExtreme.cpp"
#include "trials/TheMinstrelsBalladThordansReign.cpp"
#include "trials/TheBowlofEmbersHard.cpp"
#include "trials/TheSingularityReactor.cpp"
#include "trials/ContainmentBayS1T7Extreme.cpp"
#include "trials/ContainmentBayS1T7.cpp"
#include "trials/TheHowlingEyeHard.cpp"
#include "trials/TheStrikingTreeExtreme.cpp"
#include "trials/Emanation.cpp"
#include "trials/SpecialEventI.cpp"
#include "trials/TheLimitlessBlueExtreme.cpp"
#include "trials/ThePoolofTributeExtreme.cpp"
#include "trials/BattleontheBigBridge.cpp"
#include "trials/TheRoyalMenagerie.cpp"
#include "trials/BattleintheBigKeep.cpp"
#include "trials/UrthsFount.cpp"
#include "trials/EmanationExtreme.cpp"
#include "trials/TheJadeStoa.cpp"
#include "trials/TheHowlingEyeExtreme.cpp"
#include "trials/TheBowlofEmbers.cpp"
#include "trials/TheChrysalis.cpp"
#include "trials/TheStepsofFaith.cpp"
#include "trials/ARelicReborntheChimera.cpp"
#include "trials/ContainmentBayP1T6.cpp"
#include "trials/TheMinstrelsBalladNidhoggsRage.cpp"
#include "trials/ThokastThokExtreme.cpp"
#include "trials/ThornmarchExtreme.cpp"
#include "trials/TheLimitlessBlueHard.cpp"
#include "trials/ContainmentBayP1T6Extreme.cpp"
#include "trials/TheNavelExtreme.cpp"
#include "trials/SpecialEventII.cpp"
#include "trials/TheWhorleaterExtreme.cpp"
#include "trials/TheMinstrelsBalladUltimasBane.cpp"
#include "trials/ContainmentBayZ1T9.cpp"
#include "trials/TheFinalStepsofFaith.cpp"
#include "trials/ThokastThokHard.cpp"
#include "trials/AkhAfahAmphitheatreHard.cpp"
#include "trials/CapeWestwind.cpp"
#include "trials/TheMinstrelsBalladShinryusDomain.cpp"
#include "trials/ContainmentBayZ1T9Extreme.cpp"
#include "trials/SpecialEventIII.cpp"
#include "trials/ThornmarchHard.cpp"
#include "trials/TheDragonsNeck.cpp"
#include "trials/TheNavelHard.cpp"
#include "trials/TheWhorleaterHard.cpp"
#include "trials/TheNavel.cpp"
#include "trials/TheBowlofEmbersExtreme.cpp"
#include "trials/ARelicReborntheHydra.cpp"
#include "trials/ThePoolofTribute.cpp"
#include "trials/TheHowlingEye.cpp"
#include "deepdungeon/ThePalaceoftheDeadFloors181190.cpp"
#include "deepdungeon/ThePalaceoftheDeadFloors6170.cpp"
#include "deepdungeon/ThePalaceoftheDeadFloors151160.cpp"
#include "deepdungeon/ThePalaceoftheDeadFloors4150.cpp"
#include "deepdungeon/ThePalaceoftheDeadFloors5160.cpp"
#include "deepdungeon/ThePalaceoftheDeadFloors3140.cpp"
#include "deepdungeon/ThePalaceoftheDeadFloors1120.cpp"
#include "deepdungeon/ThePalaceoftheDeadFloors110.cpp"
#include "deepdungeon/ThePalaceoftheDeadFloors141150.cpp"
#include "deepdungeon/ThePalaceoftheDeadFloors161170.cpp"
#include "deepdungeon/ThePalaceoftheDeadFloors131140.cpp"
#include "deepdungeon/ThePalaceoftheDeadFloors7180.cpp"
#include "deepdungeon/ThePalaceoftheDeadFloors101110.cpp"
#include "deepdungeon/ThePalaceoftheDeadFloors171180.cpp"
#include "deepdungeon/ThePalaceoftheDeadFloors2130.cpp"
#include "deepdungeon/ThePalaceoftheDeadFloors191200.cpp"
#include "deepdungeon/ThePalaceoftheDeadFloors121130.cpp"
#include "deepdungeon/ThePalaceoftheDeadFloors111120.cpp"
#include "deepdungeon/ThePalaceoftheDeadFloors91100.cpp"
#include "deepdungeon/ThePalaceoftheDeadFloors8190.cpp"
#include "treasurehunt/TheAquapolis.cpp"
#include "treasurehunt/TheLostCanalsofUznair.cpp"
#include "treasurehunt/TheHiddenCanalsofUznair.cpp"
#include "hallofthenovice/InteractwiththeBattlefield.cpp"
#include "hallofthenovice/AvoidEngagedTargets.cpp"
#include "hallofthenovice/AvoidAreaofEffectAttacks.cpp"
#include "hallofthenovice/HealMultipleAllies.cpp"
#include "hallofthenovice/ExecuteaCombotoIncreaseEnmity.cpp"
#include "hallofthenovice/AssistAlliesinDefeatingaTarget.cpp"
#include "hallofthenovice/HealanAlly.cpp"
#include "hallofthenovice/EngageMultipleTargets.cpp"
#include "hallofthenovice/FinalExercise.cpp"
#include "hallofthenovice/EngageEnemyReinforcements.cpp"
#include "hallofthenovice/ExecuteaRangedAttacktoIncreaseEnmity.cpp"
#include "hallofthenovice/ExecuteaComboinBattle.cpp"
#include "hallofthenovice/DefeatanOccupiedTarget.cpp"
#include "hallofthenovice/AccrueEnmityfromMultipleTargets.cpp"
#include "events/TheValentionesCeremony.cpp"
#include "events/TheHauntedManor.cpp"
const ScriptObject* ptrs[] =
{
static_cast< ScriptObject* >( new TheFeastTeamRanked ),
static_cast< ScriptObject* >( new SealRockSeize ),
static_cast< ScriptObject* >( new TheFeast4on4Ranked ),
static_cast< ScriptObject* >( new TheFeast4on4LightParty ),
static_cast< ScriptObject* >( new TheFeastRanked ),
static_cast< ScriptObject* >( new TheFieldsofGloryShatter ),
static_cast< ScriptObject* >( new TheFeastTraining ),
static_cast< ScriptObject* >( new Astragalos ),
static_cast< ScriptObject* >( new TheFeast4on4Training ),
static_cast< ScriptObject* >( new TheFeastCustomMatchFeastingGrounds ),
static_cast< ScriptObject* >( new TheFeastCustomMatchLichenweed ),
static_cast< ScriptObject* >( new TheBorderlandRuinsSecure ),
static_cast< ScriptObject* >( new TheFeastCustomMatchCrystalTower ),
static_cast< ScriptObject* >( new TheTamTaraDeepcroft ),
static_cast< ScriptObject* >( new DomaCastle ),
static_cast< ScriptObject* >( new HullbreakerIsleHard ),
static_cast< ScriptObject* >( new Snowcloak ),
static_cast< ScriptObject* >( new TheGreatGubalLibrary ),
static_cast< ScriptObject* >( new TheWanderersPalace ),
static_cast< ScriptObject* >( new Xelphatol ),
static_cast< ScriptObject* >( new TheLostCityofAmdaporHard ),
static_cast< ScriptObject* >( new SaintMociannesArboretum ),
static_cast< ScriptObject* >( new BardamsMettle ),
static_cast< ScriptObject* >( new TheTamTaraDeepcroftHard ),
static_cast< ScriptObject* >( new KuganeCastle ),
static_cast< ScriptObject* >( new TheDrownedCityofSkalla ),
static_cast< ScriptObject* >( new ShisuioftheVioletTides ),
static_cast< ScriptObject* >( new CuttersCry ),
static_cast< ScriptObject* >( new HellsLid ),
static_cast< ScriptObject* >( new TheVault ),
static_cast< ScriptObject* >( new TheStoneVigilHard ),
static_cast< ScriptObject* >( new Sastasha ),
static_cast< ScriptObject* >( new TheFractalContinuum ),
static_cast< ScriptObject* >( new TheLostCityofAmdapor ),
static_cast< ScriptObject* >( new TheAurumVale ),
static_cast< ScriptObject* >( new SohrKhai ),
static_cast< ScriptObject* >( new TheSunkenTempleofQarnHard ),
static_cast< ScriptObject* >( new Neverreap ),
static_cast< ScriptObject* >( new TheAntitower ),
static_cast< ScriptObject* >( new Halatali ),
static_cast< ScriptObject* >( new TheAery ),
static_cast< ScriptObject* >( new PharosSiriusHard ),
static_cast< ScriptObject* >( new CastrumMeridianum ),
static_cast< ScriptObject* >( new TheGreatGubalLibraryHard ),
static_cast< ScriptObject* >( new SohmAl ),
static_cast< ScriptObject* >( new TheTempleoftheFist ),
static_cast< ScriptObject* >( new TheKeeperoftheLake ),
static_cast< ScriptObject* >( new AmdaporKeepHard ),
static_cast< ScriptObject* >( new TheWanderersPalaceHard ),
static_cast< ScriptObject* >( new CastrumAbania ),
static_cast< ScriptObject* >( new AlaMhigo ),
static_cast< ScriptObject* >( new PharosSirius ),
static_cast< ScriptObject* >( new TheStoneVigil ),
static_cast< ScriptObject* >( new TheThousandMawsofTotoRak ),
static_cast< ScriptObject* >( new BrayfloxsLongstopHard ),
static_cast< ScriptObject* >( new DzemaelDarkhold ),
static_cast< ScriptObject* >( new SohmAlHard ),
static_cast< ScriptObject* >( new HaukkeManor ),
static_cast< ScriptObject* >( new HullbreakerIsle ),
static_cast< ScriptObject* >( new TheFractalContinuumHard ),
static_cast< ScriptObject* >( new TheSirensongSea ),
static_cast< ScriptObject* >( new BaelsarsWall ),
static_cast< ScriptObject* >( new HalataliHard ),
static_cast< ScriptObject* >( new TheAetherochemicalResearchFacility ),
static_cast< ScriptObject* >( new SastashaHard ),
static_cast< ScriptObject* >( new CopperbellMinesHard ),
static_cast< ScriptObject* >( new TheSunkenTempleofQarn ),
static_cast< ScriptObject* >( new AmdaporKeep ),
static_cast< ScriptObject* >( new TheDuskVigil ),
static_cast< ScriptObject* >( new BrayfloxsLongstop ),
static_cast< ScriptObject* >( new HaukkeManorHard ),
static_cast< ScriptObject* >( new CopperbellMines ),
static_cast< ScriptObject* >( new ThePraetorium ),
static_cast< ScriptObject* >( new RaisingtheSword ),
static_cast< ScriptObject* >( new InterdimensionalRift ),
static_cast< ScriptObject* >( new CuriousGorgeMeetsHisMatch ),
static_cast< ScriptObject* >( new WithHeartandSteel ),
static_cast< ScriptObject* >( new OneLifeforOneWorld ),
static_cast< ScriptObject* >( new ABloodyReunion ),
static_cast< ScriptObject* >( new MatsubaMayhem ),
static_cast< ScriptObject* >( new BloodontheDeck ),
static_cast< ScriptObject* >( new OurCompromise ),
static_cast< ScriptObject* >( new Naadam ),
static_cast< ScriptObject* >( new InThalsName ),
static_cast< ScriptObject* >( new TheResonant ),
static_cast< ScriptObject* >( new OurUnsungHeroes ),
static_cast< ScriptObject* >( new DarkwingDragon ),
static_cast< ScriptObject* >( new BloodDragoon ),
static_cast< ScriptObject* >( new ASpectaclefortheAges ),
static_cast< ScriptObject* >( new ItsProbablyaTrap ),
static_cast< ScriptObject* >( new TheBattleonBekko ),
static_cast< ScriptObject* >( new TheHeartoftheProblem ),
static_cast< ScriptObject* >( new TheOrphansandtheBrokenBlade ),
static_cast< ScriptObject* >( new TheCarteneauFlatsHeliodrome ),
static_cast< ScriptObject* >( new ReturnoftheBull ),
static_cast< ScriptObject* >( new TheFaceofTrueEvil ),
static_cast< ScriptObject* >( new WhenClansCollide ),
static_cast< ScriptObject* >( new AlexanderTheArmoftheSonSavage ),
static_cast< ScriptObject* >( new TheLabyrinthoftheAncients ),
static_cast< ScriptObject* >( new SigmascapeV30 ),
static_cast< ScriptObject* >( new TheVoidArk ),
static_cast< ScriptObject* >( new SyrcusTower ),
static_cast< ScriptObject* >( new DeltascapeV20 ),
static_cast< ScriptObject* >( new TheFinalCoilofBahamutTurn1 ),
static_cast< ScriptObject* >( new SigmascapeV20Savage ),
static_cast< ScriptObject* >( new TheFinalCoilofBahamutTurn3 ),
static_cast< ScriptObject* >( new SigmascapeV30Savage ),
static_cast< ScriptObject* >( new TheBindingCoilofBahamutTurn2 ),
static_cast< ScriptObject* >( new AlexanderTheSouloftheCreatorSavage ),
static_cast< ScriptObject* >( new DunScaith ),
static_cast< ScriptObject* >( new DeltascapeV40Savage ),
static_cast< ScriptObject* >( new TheSecondCoilofBahamutTurn1 ),
static_cast< ScriptObject* >( new AlexanderTheHeartoftheCreatorSavage ),
static_cast< ScriptObject* >( new DeltascapeV40 ),
static_cast< ScriptObject* >( new TheSecondCoilofBahamutSavageTurn2 ),
static_cast< ScriptObject* >( new TheSecondCoilofBahamutTurn3 ),
static_cast< ScriptObject* >( new TheUnendingCoilofBahamutUltimate ),
static_cast< ScriptObject* >( new TheSecondCoilofBahamutTurn2 ),
static_cast< ScriptObject* >( new TheWorldofDarkness ),
static_cast< ScriptObject* >( new SigmascapeV10 ),
static_cast< ScriptObject* >( new AlexanderTheBurdenoftheSonSavage ),
static_cast< ScriptObject* >( new TheFinalCoilofBahamutTurn2 ),
static_cast< ScriptObject* >( new AlexanderTheBurdenoftheFatherSavage ),
static_cast< ScriptObject* >( new AlexanderTheHeartoftheCreator ),
static_cast< ScriptObject* >( new TheBindingCoilofBahamutTurn4 ),
static_cast< ScriptObject* >( new AlexanderTheBreathoftheCreatorSavage ),
static_cast< ScriptObject* >( new AlexanderTheEyesoftheCreatorSavage ),
static_cast< ScriptObject* >( new AlexanderTheArmoftheFatherSavage ),
static_cast< ScriptObject* >( new DeltascapeV30 ),
static_cast< ScriptObject* >( new AlexanderTheFistoftheFather ),
static_cast< ScriptObject* >( new DeltascapeV10 ),
static_cast< ScriptObject* >( new DeltascapeV10Savage ),
static_cast< ScriptObject* >( new SigmascapeV40Savage ),
static_cast< ScriptObject* >( new AlexanderTheCuffoftheSon ),
static_cast< ScriptObject* >( new AlexanderTheFistoftheSonSavage ),
static_cast< ScriptObject* >( new TheSecondCoilofBahamutSavageTurn3 ),
static_cast< ScriptObject* >( new AlexanderTheArmoftheFather ),
static_cast< ScriptObject* >( new AlexanderTheCuffoftheSonSavage ),
static_cast< ScriptObject* >( new TheBindingCoilofBahamutTurn5 ),
static_cast< ScriptObject* >( new SigmascapeV20 ),
static_cast< ScriptObject* >( new AlexanderTheCuffoftheFather ),
static_cast< ScriptObject* >( new TheSecondCoilofBahamutSavageTurn1 ),
static_cast< ScriptObject* >( new TheBindingCoilofBahamutTurn1 ),
static_cast< ScriptObject* >( new AlexanderTheBurdenoftheSon ),
static_cast< ScriptObject* >( new AlexanderTheBreathoftheCreator ),
static_cast< ScriptObject* >( new TheFinalCoilofBahamutTurn4 ),
static_cast< ScriptObject* >( new DeltascapeV30Savage ),
static_cast< ScriptObject* >( new AlexanderTheFistoftheSon ),
static_cast< ScriptObject* >( new AlexanderTheFistoftheFatherSavage ),
static_cast< ScriptObject* >( new AlexanderTheArmoftheSon ),
static_cast< ScriptObject* >( new TheBindingCoilofBahamutTurn3 ),
static_cast< ScriptObject* >( new SigmascapeV40 ),
static_cast< ScriptObject* >( new TheSecondCoilofBahamutTurn4 ),
static_cast< ScriptObject* >( new AlexanderTheCuffoftheFatherSavage ),
static_cast< ScriptObject* >( new SigmascapeV10Savage ),
static_cast< ScriptObject* >( new DeltascapeV20Savage ),
static_cast< ScriptObject* >( new TheWeepingCityofMhach ),
static_cast< ScriptObject* >( new TheRoyalCityofRabanastre ),
static_cast< ScriptObject* >( new AlexanderTheBurdenoftheFather ),
static_cast< ScriptObject* >( new AlexanderTheEyesoftheCreator ),
static_cast< ScriptObject* >( new TheSecondCoilofBahamutSavageTurn4 ),
static_cast< ScriptObject* >( new AlexanderTheSouloftheCreator ),
static_cast< ScriptObject* >( new AkhAfahAmphitheatreExtreme ),
static_cast< ScriptObject* >( new HeroontheHalfShell ),
static_cast< ScriptObject* >( new BasicTrainingEnemyStrongholds ),
static_cast< ScriptObject* >( new ShadowandClaw ),
static_cast< ScriptObject* >( new AnnoytheVoid ),
static_cast< ScriptObject* >( new StingingBack ),
static_cast< ScriptObject* >( new FlickingSticksandTakingNames ),
static_cast< ScriptObject* >( new SolemnTrinity ),
static_cast< ScriptObject* >( new UndertheArmor ),
static_cast< ScriptObject* >( new LongLivetheQueen ),
static_cast< ScriptObject* >( new AllsWellthatEndsintheWell ),
static_cast< ScriptObject* >( new MorethanaFeeler ),
static_cast< ScriptObject* >( new PullingPoisonPosies ),
static_cast< ScriptObject* >( new WardUp ),
static_cast< ScriptObject* >( new BasicTrainingEnemyParties ),
static_cast< ScriptObject* >( new TheStrikingTreeHard ),
static_cast< ScriptObject* >( new TheJadeStoaExtreme ),
static_cast< ScriptObject* >( new TheMinstrelsBalladThordansReign ),
static_cast< ScriptObject* >( new TheBowlofEmbersHard ),
static_cast< ScriptObject* >( new TheSingularityReactor ),
static_cast< ScriptObject* >( new ContainmentBayS1T7Extreme ),
static_cast< ScriptObject* >( new ContainmentBayS1T7 ),
static_cast< ScriptObject* >( new TheHowlingEyeHard ),
static_cast< ScriptObject* >( new TheStrikingTreeExtreme ),
static_cast< ScriptObject* >( new Emanation ),
static_cast< ScriptObject* >( new SpecialEventI ),
static_cast< ScriptObject* >( new TheLimitlessBlueExtreme ),
static_cast< ScriptObject* >( new ThePoolofTributeExtreme ),
static_cast< ScriptObject* >( new BattleontheBigBridge ),
static_cast< ScriptObject* >( new TheRoyalMenagerie ),
static_cast< ScriptObject* >( new BattleintheBigKeep ),
static_cast< ScriptObject* >( new UrthsFount ),
static_cast< ScriptObject* >( new EmanationExtreme ),
static_cast< ScriptObject* >( new TheJadeStoa ),
static_cast< ScriptObject* >( new TheHowlingEyeExtreme ),
static_cast< ScriptObject* >( new TheBowlofEmbers ),
static_cast< ScriptObject* >( new TheChrysalis ),
static_cast< ScriptObject* >( new TheStepsofFaith ),
static_cast< ScriptObject* >( new ARelicReborntheChimera ),
static_cast< ScriptObject* >( new ContainmentBayP1T6 ),
static_cast< ScriptObject* >( new TheMinstrelsBalladNidhoggsRage ),
static_cast< ScriptObject* >( new ThokastThokExtreme ),
static_cast< ScriptObject* >( new ThornmarchExtreme ),
static_cast< ScriptObject* >( new TheLimitlessBlueHard ),
static_cast< ScriptObject* >( new ContainmentBayP1T6Extreme ),
static_cast< ScriptObject* >( new TheNavelExtreme ),
static_cast< ScriptObject* >( new SpecialEventII ),
static_cast< ScriptObject* >( new TheWhorleaterExtreme ),
static_cast< ScriptObject* >( new TheMinstrelsBalladUltimasBane ),
static_cast< ScriptObject* >( new ContainmentBayZ1T9 ),
static_cast< ScriptObject* >( new TheFinalStepsofFaith ),
static_cast< ScriptObject* >( new ThokastThokHard ),
static_cast< ScriptObject* >( new AkhAfahAmphitheatreHard ),
static_cast< ScriptObject* >( new CapeWestwind ),
static_cast< ScriptObject* >( new TheMinstrelsBalladShinryusDomain ),
static_cast< ScriptObject* >( new ContainmentBayZ1T9Extreme ),
static_cast< ScriptObject* >( new SpecialEventIII ),
static_cast< ScriptObject* >( new ThornmarchHard ),
static_cast< ScriptObject* >( new TheDragonsNeck ),
static_cast< ScriptObject* >( new TheNavelHard ),
static_cast< ScriptObject* >( new TheWhorleaterHard ),
static_cast< ScriptObject* >( new TheNavel ),
static_cast< ScriptObject* >( new TheBowlofEmbersExtreme ),
static_cast< ScriptObject* >( new ARelicReborntheHydra ),
static_cast< ScriptObject* >( new ThePoolofTribute ),
static_cast< ScriptObject* >( new TheHowlingEye ),
static_cast< ScriptObject* >( new ThePalaceoftheDeadFloors181190 ),
static_cast< ScriptObject* >( new ThePalaceoftheDeadFloors6170 ),
static_cast< ScriptObject* >( new ThePalaceoftheDeadFloors151160 ),
static_cast< ScriptObject* >( new ThePalaceoftheDeadFloors4150 ),
static_cast< ScriptObject* >( new ThePalaceoftheDeadFloors5160 ),
static_cast< ScriptObject* >( new ThePalaceoftheDeadFloors3140 ),
static_cast< ScriptObject* >( new ThePalaceoftheDeadFloors1120 ),
static_cast< ScriptObject* >( new ThePalaceoftheDeadFloors110 ),
static_cast< ScriptObject* >( new ThePalaceoftheDeadFloors141150 ),
static_cast< ScriptObject* >( new ThePalaceoftheDeadFloors161170 ),
static_cast< ScriptObject* >( new ThePalaceoftheDeadFloors131140 ),
static_cast< ScriptObject* >( new ThePalaceoftheDeadFloors7180 ),
static_cast< ScriptObject* >( new ThePalaceoftheDeadFloors101110 ),
static_cast< ScriptObject* >( new ThePalaceoftheDeadFloors171180 ),
static_cast< ScriptObject* >( new ThePalaceoftheDeadFloors2130 ),
static_cast< ScriptObject* >( new ThePalaceoftheDeadFloors191200 ),
static_cast< ScriptObject* >( new ThePalaceoftheDeadFloors121130 ),
static_cast< ScriptObject* >( new ThePalaceoftheDeadFloors111120 ),
static_cast< ScriptObject* >( new ThePalaceoftheDeadFloors91100 ),
static_cast< ScriptObject* >( new ThePalaceoftheDeadFloors8190 ),
static_cast< ScriptObject* >( new TheAquapolis ),
static_cast< ScriptObject* >( new TheLostCanalsofUznair ),
static_cast< ScriptObject* >( new TheHiddenCanalsofUznair ),
static_cast< ScriptObject* >( new InteractwiththeBattlefield ),
static_cast< ScriptObject* >( new AvoidEngagedTargets ),
static_cast< ScriptObject* >( new AvoidAreaofEffectAttacks ),
static_cast< ScriptObject* >( new HealMultipleAllies ),
static_cast< ScriptObject* >( new ExecuteaCombotoIncreaseEnmity ),
static_cast< ScriptObject* >( new AssistAlliesinDefeatingaTarget ),
static_cast< ScriptObject* >( new HealanAlly ),
static_cast< ScriptObject* >( new EngageMultipleTargets ),
static_cast< ScriptObject* >( new FinalExercise ),
static_cast< ScriptObject* >( new EngageEnemyReinforcements ),
static_cast< ScriptObject* >( new ExecuteaRangedAttacktoIncreaseEnmity ),
static_cast< ScriptObject* >( new ExecuteaComboinBattle ),
static_cast< ScriptObject* >( new DefeatanOccupiedTarget ),
static_cast< ScriptObject* >( new AccrueEnmityfromMultipleTargets ),
static_cast< ScriptObject* >( new TheValentionesCeremony ),
static_cast< ScriptObject* >( new TheHauntedManor ),
nullptr
};
extern "C" EXPORT const ScriptObject** getScripts()
{
return ptrs;
}

Some files were not shown because too many files have changed in this diff Show more