AbyssLib 1.301
あびす謹製ノベルゲームフレームワークライブラリ

AbyssLibSrc/AbyssLib/AbyssLib/Plugins.h

説明を見る。
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
 全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 フレンド マクロ定義