2017-08-08 13:53:47 +02:00
|
|
|
#ifndef _FORWARDS_H
|
|
|
|
#define _FORWARDS_H
|
|
|
|
|
2018-02-10 01:21:31 +01:00
|
|
|
#include <utility>
|
2018-06-28 00:07:07 +02:00
|
|
|
#include <memory>
|
2017-08-08 13:53:47 +02:00
|
|
|
#include <vector>
|
2018-10-26 11:38:56 +02:00
|
|
|
#include <functional>
|
2018-09-25 07:18:42 -04:00
|
|
|
#include "Common.h"
|
2017-08-08 13:53:47 +02:00
|
|
|
|
|
|
|
#define TYPE_FORWARD( x ) \
|
|
|
|
class x; \
|
2018-10-25 12:44:51 +11:00
|
|
|
typedef std::shared_ptr< x > x ## Ptr; \
|
2018-06-28 00:07:07 +02:00
|
|
|
typedef std::unique_ptr< x > x ## UPtr; \
|
2018-02-10 01:21:31 +01:00
|
|
|
template< typename...Args > \
|
|
|
|
x ## Ptr make_ ## x( Args &&...args ) { \
|
2018-10-25 12:44:51 +11:00
|
|
|
return std::make_shared< x >( std::forward< Args >( args ) ... ); }\
|
2017-08-19 11:28:04 +09:00
|
|
|
typedef std::vector< x > x ## PtrList;
|
2017-08-08 13:53:47 +02:00
|
|
|
|
2018-12-02 02:01:41 +01:00
|
|
|
namespace Sapphire
|
|
|
|
{
|
2018-08-29 21:40:59 +02:00
|
|
|
TYPE_FORWARD( Cell );
|
|
|
|
TYPE_FORWARD( Zone );
|
|
|
|
TYPE_FORWARD( HousingZone );
|
2018-11-19 09:40:44 +01:00
|
|
|
TYPE_FORWARD( House );
|
2018-08-29 21:40:59 +02:00
|
|
|
TYPE_FORWARD( InstanceContent );
|
|
|
|
TYPE_FORWARD( Item );
|
|
|
|
TYPE_FORWARD( ItemContainer );
|
2018-11-01 00:18:19 +01:00
|
|
|
TYPE_FORWARD( ZonePosition );
|
2018-12-22 22:25:03 +01:00
|
|
|
TYPE_FORWARD( Land );
|
|
|
|
TYPE_FORWARD( Linkshell );
|
|
|
|
TYPE_FORWARD( Framework );
|
|
|
|
|
|
|
|
namespace World
|
|
|
|
{
|
|
|
|
TYPE_FORWARD( Session );
|
|
|
|
}
|
2018-08-29 21:40:59 +02:00
|
|
|
|
2018-12-01 18:18:29 +11:00
|
|
|
namespace World::Territory::Housing
|
|
|
|
{
|
|
|
|
TYPE_FORWARD( HousingInteriorTerritory );
|
|
|
|
}
|
|
|
|
|
2018-12-23 22:43:35 +11:00
|
|
|
namespace Inventory
|
|
|
|
{
|
2018-12-28 11:49:12 +11:00
|
|
|
using InventoryContainerPair = std::pair< Common::InventoryType, uint8_t >;
|
|
|
|
using InventoryTypeList = std::vector< Common::InventoryType >;
|
2018-12-23 22:43:35 +11:00
|
|
|
TYPE_FORWARD( HousingItem );
|
|
|
|
}
|
|
|
|
|
2018-12-01 00:27:16 +11:00
|
|
|
namespace World::Manager
|
|
|
|
{
|
|
|
|
TYPE_FORWARD( HousingMgr );
|
|
|
|
}
|
|
|
|
|
2018-12-02 02:01:41 +01:00
|
|
|
namespace StatusEffect
|
|
|
|
{
|
2018-08-29 21:40:59 +02:00
|
|
|
TYPE_FORWARD( StatusEffect );
|
|
|
|
TYPE_FORWARD( StatusEffectContainer );
|
|
|
|
}
|
|
|
|
|
2018-12-02 02:01:41 +01:00
|
|
|
namespace Entity
|
|
|
|
{
|
2018-08-29 21:40:59 +02:00
|
|
|
TYPE_FORWARD( Actor );
|
|
|
|
TYPE_FORWARD( Chara );
|
|
|
|
TYPE_FORWARD( Player );
|
|
|
|
TYPE_FORWARD( EventObject );
|
|
|
|
TYPE_FORWARD( BNpcTemplate );
|
2018-09-09 23:56:22 +02:00
|
|
|
TYPE_FORWARD( BNpc );
|
2018-12-31 13:54:31 +01:00
|
|
|
TYPE_FORWARD( SpawnPoint );
|
|
|
|
TYPE_FORWARD( SpawnGroup );
|
2018-08-29 21:40:59 +02:00
|
|
|
}
|
|
|
|
|
2018-12-02 02:01:41 +01:00
|
|
|
namespace Event
|
|
|
|
{
|
2018-08-29 21:40:59 +02:00
|
|
|
TYPE_FORWARD( Director );
|
|
|
|
TYPE_FORWARD( EventHandler );
|
|
|
|
}
|
|
|
|
|
2018-12-02 02:01:41 +01:00
|
|
|
namespace Action
|
|
|
|
{
|
2018-08-29 21:40:59 +02:00
|
|
|
TYPE_FORWARD( Action );
|
|
|
|
TYPE_FORWARD( ActionTeleport );
|
|
|
|
TYPE_FORWARD( ActionCast );
|
|
|
|
TYPE_FORWARD( ActionMount );
|
|
|
|
TYPE_FORWARD( EventAction );
|
|
|
|
TYPE_FORWARD( EventItemAction );
|
|
|
|
}
|
|
|
|
|
2018-12-02 02:01:41 +01:00
|
|
|
namespace Network
|
|
|
|
{
|
2018-08-29 21:40:59 +02:00
|
|
|
TYPE_FORWARD( Hive );
|
|
|
|
TYPE_FORWARD( Acceptor );
|
|
|
|
TYPE_FORWARD( Connection );
|
|
|
|
TYPE_FORWARD( GameConnection );
|
|
|
|
TYPE_FORWARD( SessionConnection );
|
|
|
|
TYPE_FORWARD( CustomMsgClientConnection );
|
|
|
|
|
2018-12-02 02:01:41 +01:00
|
|
|
namespace Packets
|
|
|
|
{
|
2018-08-29 21:40:59 +02:00
|
|
|
TYPE_FORWARD( GamePacket );
|
|
|
|
TYPE_FORWARD( FFXIVPacketBase );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-12-02 02:01:41 +01:00
|
|
|
namespace ContentFinder
|
|
|
|
{
|
2018-08-29 21:40:59 +02:00
|
|
|
TYPE_FORWARD( ContentFinder );
|
|
|
|
}
|
|
|
|
|
2018-12-02 02:01:41 +01:00
|
|
|
namespace Scripting
|
|
|
|
{
|
2018-08-29 21:40:59 +02:00
|
|
|
class NativeScriptMgr;
|
|
|
|
}
|
|
|
|
|
|
|
|
typedef std::function< void( Entity::Player&, uint32_t, uint64_t ) > ActionCallback;
|
2017-08-08 13:53:47 +02:00
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2017-08-19 11:28:04 +09:00
|
|
|
#endif
|