From 00a7c1c6d3b89ceb21e7ab0ab4bc2ef820d1976d Mon Sep 17 00:00:00 2001 From: Adam Date: Thu, 22 Mar 2018 23:45:17 +1100 Subject: [PATCH] remove bindscene macro and move to wrapper func --- src/servers/Scripts/ScriptObject.h | 3 --- src/servers/Scripts/quest/ManFst001.cpp | 4 ++-- src/servers/Scripts/quest/ManFst002.cpp | 4 ++-- src/servers/Scripts/quest/ManSea001.cpp | 8 ++++---- src/servers/Scripts/quest/ManWil001.cpp | 2 +- src/servers/sapphire_zone/Script/NativeScriptApi.h | 8 ++++++++ 6 files changed, 17 insertions(+), 12 deletions(-) diff --git a/src/servers/Scripts/ScriptObject.h b/src/servers/Scripts/ScriptObject.h index b63e2b61..1106541c 100644 --- a/src/servers/Scripts/ScriptObject.h +++ b/src/servers/Scripts/ScriptObject.h @@ -6,7 +6,4 @@ #include -#define BIND_SCENE( x ) std::bind( x, this, std::placeholders::_1 ) - - #endif //SAPPHIRE_SCRIPTOBJECT_H diff --git a/src/servers/Scripts/quest/ManFst001.cpp b/src/servers/Scripts/quest/ManFst001.cpp index 993c1b98..a351e61c 100644 --- a/src/servers/Scripts/quest/ManFst001.cpp +++ b/src/servers/Scripts/quest/ManFst001.cpp @@ -49,7 +49,7 @@ private: void Scene00001( Entity::Player& player ) { - player.playSceneChain( getId(), 1, DISABLE_SKIP | HIDE_HOTBAR | SET_BASE, BIND_SCENE( &ManFst001::Scene00002 ) ); + player.playSceneChain( getId(), 1, DISABLE_SKIP | HIDE_HOTBAR | SET_BASE, bindScene( &ManFst001::Scene00002 ) ); } void Scene00002( Entity::Player& player ) @@ -66,7 +66,7 @@ private: void Scene00004( Entity::Player& player ) { - player.playSceneChain( getId(), 4, FADE_OUT | HIDE_HOTBAR | CONDITION_CUTSCENE | HIDE_UI, BIND_SCENE( &ManFst001::Scene00005 ) ); + player.playSceneChain( getId(), 4, FADE_OUT | HIDE_HOTBAR | CONDITION_CUTSCENE | HIDE_UI, bindScene( &ManFst001::Scene00005 ) ); } void Scene00005( Entity::Player& player ) diff --git a/src/servers/Scripts/quest/ManFst002.cpp b/src/servers/Scripts/quest/ManFst002.cpp index 9f3c6e3f..153fb9a0 100644 --- a/src/servers/Scripts/quest/ManFst002.cpp +++ b/src/servers/Scripts/quest/ManFst002.cpp @@ -162,12 +162,12 @@ private: void Scene00051( Entity::Player& player ) { - player.playSceneChain( getId(), SEQ_1_ACTOR1_WAIT, NONE, BIND_SCENE( &ManFst002::Scene00001 )); + player.playSceneChain( getId(), SEQ_1_ACTOR1_WAIT, NONE, bindScene( &ManFst002::Scene00001 )); } void Scene00099( Entity::Player& player ) { - player.playSceneChain( getId(), SEQ_1_ACTOR3_NPCTRADENO, NONE, BIND_SCENE( &ManFst002::Scene00005 )); + player.playSceneChain( getId(), SEQ_1_ACTOR3_NPCTRADENO, NONE, bindScene( &ManFst002::Scene00005 )); } void Scene00100( Entity::Player& player ) diff --git a/src/servers/Scripts/quest/ManSea001.cpp b/src/servers/Scripts/quest/ManSea001.cpp index ecc202af..79d56ecc 100644 --- a/src/servers/Scripts/quest/ManSea001.cpp +++ b/src/servers/Scripts/quest/ManSea001.cpp @@ -41,12 +41,12 @@ private: void Scene00001( Entity::Player& player ) { - player.playSceneChain( getId(), 1, DISABLE_SKIP | HIDE_HOTBAR | SET_BASE, BIND_SCENE( &ManSea001::Scene00002 ) ); + player.playSceneChain( getId(), 1, DISABLE_SKIP | HIDE_HOTBAR | SET_BASE, bindScene( &ManSea001::Scene00002 ) ); } void Scene00002( Entity::Player& player ) { - player.playSceneChain( getId(), 2, NONE, BIND_SCENE( &ManSea001::Scene00003 ) ); + player.playSceneChain( getId(), 2, NONE, bindScene( &ManSea001::Scene00003 ) ); } void Scene00003( Entity::Player& player ) @@ -66,7 +66,7 @@ private: void Scene00005( Entity::Player& player ) { - player.playSceneChain( getId(), 5, HIDE_HOTBAR, BIND_SCENE( &ManSea001::Scene00006 ) ); + player.playSceneChain( getId(), 5, HIDE_HOTBAR, bindScene( &ManSea001::Scene00006 ) ); } void Scene00006( Entity::Player& player ) @@ -103,7 +103,7 @@ private: void Scene00011( Entity::Player& player ) { - player.playSceneChain( getId(), 11, 0x2c02, 0, 0, BIND_SCENE( &ManSea001::Scene00012 ) ); + player.playSceneChain( getId(), 11, 0x2c02, 0, 0, bindScene( &ManSea001::Scene00012 ) ); } void Scene00012( Entity::Player& player ) diff --git a/src/servers/Scripts/quest/ManWil001.cpp b/src/servers/Scripts/quest/ManWil001.cpp index 667f429a..8a3f0dfd 100644 --- a/src/servers/Scripts/quest/ManWil001.cpp +++ b/src/servers/Scripts/quest/ManWil001.cpp @@ -67,7 +67,7 @@ private: void Scene00004( Entity::Player& player ) { - player.playSceneChain( getId(), 4, 0x2c02, BIND_SCENE( &ManWil001::Scene00005 ) ); + player.playSceneChain( getId(), 4, 0x2c02, bindScene( &ManWil001::Scene00005 ) ); } void Scene00005( Entity::Player& player ) diff --git a/src/servers/sapphire_zone/Script/NativeScriptApi.h b/src/servers/sapphire_zone/Script/NativeScriptApi.h index 9e7f9d36..fe1e5244 100644 --- a/src/servers/sapphire_zone/Script/NativeScriptApi.h +++ b/src/servers/sapphire_zone/Script/NativeScriptApi.h @@ -4,6 +4,7 @@ #include #include #include +#include #include "Forwards.h" #ifdef _MSC_VER @@ -75,6 +76,13 @@ public: class EventScript : public ScriptObject { +protected: + template< typename Ret, class Obj > + inline Event::EventHandler::SceneChainCallback bindScene( Ret ( Obj::*f )( Entity::Player& ) ) + { + return std::bind( f, static_cast< Obj* >( this ), std::placeholders::_1 ); + } + public: explicit EventScript( uint32_t questId ) : ScriptObject( questId, typeid( EventScript ).hash_code() )