AbyssLib 1.301
あびす謹製ノベルゲームフレームワークライブラリ
|
00001 /************************************************* 00002 ファイル名:Plugins.h 00003 作成者 :あびす 00004 役割 :プラグインの管理 00005 *************************************************/ 00012 #ifndef ABYSSLIB_PLUGINS_H 00013 #define ABYSSLIB_PLUGINS_H 00014 00015 namespace nsAbyssLib{ 00016 00017 namespace nsCore{ 00018 //依存クラス(参照先:AbyssLib.h) 00019 class INovelEngine; 00020 } 00021 namespace nsCommand{ 00022 //依存クラス(参照先:Command.h) 00023 class ICmd_Base; 00024 } 00025 00026 namespace nsPlugins{ 00027 00028 //型定義 00032 typedef ICmd_Base* (*FactoryFunc)(); 00036 typedef void (*UpdateFunc)(INovelEngine*); 00040 typedef void (*EffectFunc)(INovelEngine*); 00044 typedef int (*AnalysisFunc)(unsigned int); 00048 typedef void (*SaveLocalDataFunc)(INovelEngine*, IIOStream*); 00052 typedef void (*LoadLocalDataFunc)(INovelEngine*, IIOStream*); 00056 typedef void (*SaveEnvironmentDataFunc)(INovelEngine*, IIOStream*); 00060 typedef void (*LoadEnvironmentDataFunc)(INovelEngine*, IIOStream*); 00064 typedef void (*AddDrawTaskFunc)(INovelEngine*, const DrawTask&); 00068 typedef void (*DrawTaskFunc)(INovelEngine*, const DrawTask&); 00072 typedef void (*BltFunc)(INovelEngine*, const DrawTask&); 00073 //プラグイン用登録マップ(列挙型とFactory関数) 00079 extern map<unsigned int, FactoryFunc> PFactory; 00080 //プラグイン用登録マップ(列挙型とUpdate関数) 00086 extern map<unsigned int, UpdateFunc> PUpdate; 00087 //プラグイン用登録マップ(列挙型とEffect関数) 00093 extern map<unsigned int, EffectFunc> PEffect1; 00099 extern map<unsigned int, EffectFunc> PEffect2; 00105 extern map<unsigned int, EffectFunc> PEffect3; 00106 //プラグイン用登録マップ(列挙型とAnalysis関数、識別子名と列挙型) 00112 extern map<unsigned int, AnalysisFunc> PAnalysis; 00118 extern map<string, unsigned int> PCommandName; 00119 //プラグイン用登録リスト(列挙型) 00127 extern vector<unsigned int> PEnableSystemCommand; 00128 //プラグイン用登録マップ(プラグイン名とローカルデータの保存関数) 00134 extern map<string, SaveLocalDataFunc> PSaveLocalDataFunc; 00135 //プラグイン用登録マップ(プラグイン名とローカルデータの読み込み関数) 00141 extern map<string, LoadLocalDataFunc> PLoadLocalDataFunc; 00142 //プラグイン用登録マップ(プラグイン名と環境設定の保存関数) 00148 extern map<string, SaveEnvironmentDataFunc> PSaveEnvironmentDataFunc; 00149 //プラグイン用登録マップ(プラグイン名と環境設定の読み込み関数) 00155 extern map<string, LoadEnvironmentDataFunc> PLoadEnvironmentDataFunc; 00156 //プラグイン用登録マップ(列挙型と描画タスク追加関数) 00162 extern map<unsigned int, AddDrawTaskFunc> PAddDrawTaskFunc; 00163 //プラグイン用登録マップ(列挙型と描画タスク処理関数) 00169 extern map<unsigned int, DrawTaskFunc> PDrawTaskFunc; 00170 //プラグイン用登録マップ(列挙型と描画関数) 00176 extern map<unsigned int, BltFunc> PBltFunc; 00177 00178 //プラグインをLoad/Free 00184 void LoadPlugin(); 00191 void FreePlugin(); 00199 void FreeCommand(INovelEngine* Outer); 00200 00201 #ifdef __cplusplus 00202 extern "C"{ 00203 #endif 00204 00205 //バージョンを取得 00210 __declspec(dllexport) int GetAbyssLibVersion(); 00211 00212 //プラグイン用登録関数 00220 __declspec(dllexport) void RegisterPFactory(unsigned int PID, FactoryFunc PFunc); 00228 __declspec(dllexport) void RegisterPUpdate(unsigned int PID, UpdateFunc PFunc); 00236 __declspec(dllexport) void RegisterPEffect1(unsigned int PID, EffectFunc PFunc); 00244 __declspec(dllexport) void RegisterPEffect2(unsigned int PID, EffectFunc PFunc); 00252 __declspec(dllexport) void RegisterPEffect3(unsigned int PID, EffectFunc PFunc); 00260 __declspec(dllexport) void RegisterPAnalysis(unsigned int PID, AnalysisFunc PFunc); 00268 __declspec(dllexport) void RegisterPCommandName(const char* PName, unsigned int PID); 00275 __declspec(dllexport) void RegisterPEnableSystemCommand(unsigned int PID); 00283 __declspec(dllexport) void RegisterPSaveLocalDataFunc(const char* PName, SaveLocalDataFunc PFunc); 00291 __declspec(dllexport) void RegisterPLoadLocalDataFunc(const char* PName, LoadLocalDataFunc PFunc); 00299 __declspec(dllexport) void RegisterPSaveEnvironmentDataFunc(const char* PName, SaveEnvironmentDataFunc PFunc); 00307 __declspec(dllexport) void RegisterPLoadEnvironmentDataFunc(const char* PName, LoadEnvironmentDataFunc PFunc); 00315 __declspec(dllexport) void RegisterPAddDrawTaskFunc(unsigned int PID, AddDrawTaskFunc PFunc); 00323 __declspec(dllexport) void RegisterPDrawTaskFunc(unsigned int PID, DrawTaskFunc PFunc); 00331 __declspec(dllexport) void RegisterPBltFunc(unsigned int PID, BltFunc PFunc); 00332 00333 #ifdef __cplusplus 00334 } 00335 #endif 00336 00337 } 00338 } 00339 00340 #endif