1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-04-26 22:37:45 +00:00
sapphire/src/servers/sapphire_zone/ForwardsZone.h

88 lines
1.7 KiB
C
Raw Normal View History

2017-08-08 13:53:47 +02:00
#ifndef _FORWARDS_H
#define _FORWARDS_H
#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; \
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 ) ... ); }\
typedef std::vector< x > x ## PtrList;
2017-08-08 13:53:47 +02:00
namespace Core {
TYPE_FORWARD( Cell );
TYPE_FORWARD( Zone );
TYPE_FORWARD( HousingZone );
2018-11-10 19:00:41 +01:00
TYPE_FORWARD( HousingMgr );
2018-11-19 09:40:44 +01:00
TYPE_FORWARD( House );
TYPE_FORWARD( InstanceContent );
TYPE_FORWARD( Item );
TYPE_FORWARD( ItemContainer );
TYPE_FORWARD( Session );
2018-11-01 00:18:19 +01:00
TYPE_FORWARD( ZonePosition );
2018-11-01 23:56:43 +01:00
TYPE_FORWARD( Land )
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 );
TYPE_FORWARD( BNpc );
}
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
}
#endif