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-08-29 21:40:59 +02:00
|
|
|
namespace Core {
|
|
|
|
TYPE_FORWARD( Cell );
|
|
|
|
TYPE_FORWARD( Zone );
|
|
|
|
TYPE_FORWARD( HousingZone );
|
|
|
|
TYPE_FORWARD( InstanceContent );
|
|
|
|
TYPE_FORWARD( Item );
|
|
|
|
TYPE_FORWARD( ItemContainer );
|
|
|
|
TYPE_FORWARD( Session );
|
2018-11-01 00:18:19 +01:00
|
|
|
TYPE_FORWARD( ZonePosition );
|
|
|
|
TYPE_FORWARD( Landset )
|
2018-08-29 21:40:59 +02:00
|
|
|
|
|
|
|
namespace StatusEffect {
|
|
|
|
TYPE_FORWARD( StatusEffect );
|
|
|
|
TYPE_FORWARD( StatusEffectContainer );
|
|
|
|
}
|
|
|
|
|
|
|
|
namespace Entity {
|
|
|
|
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-08-29 21:40:59 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
namespace Event {
|
|
|
|
TYPE_FORWARD( Director );
|
|
|
|
TYPE_FORWARD( EventHandler );
|
|
|
|
}
|
|
|
|
|
|
|
|
namespace Action {
|
|
|
|
TYPE_FORWARD( Action );
|
|
|
|
TYPE_FORWARD( ActionTeleport );
|
|
|
|
TYPE_FORWARD( ActionCast );
|
|
|
|
TYPE_FORWARD( ActionMount );
|
|
|
|
TYPE_FORWARD( EventAction );
|
|
|
|
TYPE_FORWARD( EventItemAction );
|
|
|
|
}
|
|
|
|
|
|
|
|
namespace Network {
|
|
|
|
TYPE_FORWARD( Hive );
|
|
|
|
TYPE_FORWARD( Acceptor );
|
|
|
|
TYPE_FORWARD( Connection );
|
|
|
|
TYPE_FORWARD( GameConnection );
|
|
|
|
TYPE_FORWARD( SessionConnection );
|
|
|
|
TYPE_FORWARD( CustomMsgClientConnection );
|
|
|
|
|
|
|
|
namespace Packets {
|
|
|
|
TYPE_FORWARD( GamePacket );
|
|
|
|
TYPE_FORWARD( FFXIVPacketBase );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
namespace ContentFinder {
|
|
|
|
TYPE_FORWARD( ContentFinder );
|
|
|
|
}
|
|
|
|
|
|
|
|
namespace Scripting {
|
|
|
|
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
|