AbyssLib 1.301
あびす謹製ノベルゲームフレームワークライブラリ
|
00001 /************************************************* 00002 ファイル名:TaskManager.h 00003 作成者 :あびす 00004 役割 :描画タスクの管理 00005 *************************************************/ 00010 #ifndef ABYSSLIB_TASKMANAGER_H 00011 #define ABYSSLIB_TASKMANAGER_H 00012 00013 namespace nsAbyssLib{ 00014 00015 namespace nsCore{ 00016 //依存クラス(参照先:AbyssLib.h) 00017 class INovelEngine; 00018 } 00019 00020 namespace nsTaskManager{ 00021 00022 //描画タスクの種類 00026 enum DRAWTASK_TYPE{ 00030 TYPE_NONE, //なし 00034 TYPE_RECT, //矩形 00038 TYPE_TEXT, //テキスト 00042 TYPE_GRAPHIC, //グラフィック 00043 }; 00044 //転送方法 00050 enum DRAWTASK_BLTTYPE{ 00054 BLTTYPE_NML = 0, //通常 00058 BLTTYPE_ADD = 1, //加色合成 00062 BLTTYPE_SUB = 2, //減色合成 00066 BLTTYPE_FAST = 4, //抜き色なし 00072 BLTTYPE_NONE = 8, //(門番) 00073 }; 00074 //立ち絵の優先順位 00078 enum TASKMANAGER_CHPRIORITY{ 00082 CHPRIORITY_LCR, //左中右 00086 CHPRIORITY_LRC, //左右中 00090 CHPRIORITY_CLR, //中左右 00094 CHPRIORITY_CRL, //中右左 00098 CHPRIORITY_RCL, //右中左 00102 CHPRIORITY_RLC, //右左中 00103 }; 00104 00105 //画面更新のパターン 00109 enum UPDATETYPE{ 00113 UPDATETYPE_NONE, //通常 00114 }; 00115 00116 //画面効果のパターン 00120 enum EFFECTTYPE{ 00124 EFFECTTYPE_NONE, //通常 00125 }; 00126 00127 //描画タスク 00131 struct DrawTask{ 00132 //共通 00138 BYTE a; //透過度 00144 int x; //X座標 00150 int y; //Y座標 00156 int z; //描画の順序(1) 00163 bool IsShow; //表示の有無 00170 unsigned int BltType; //転送方法 00171 00172 //矩形用 00178 RECT RectPos; //位置 00184 COLORREF Color; //カラー 00185 00186 //テキスト用 00192 TextTokenSection Text; //テキスト 00193 00194 //画像用 00200 RECT SrcRect; //転送元矩形 00206 mystr FileName; //ファイル名 00207 00208 //その他 00215 unsigned int zz; //描画の順序(2) 00222 unsigned int Type; //描画タスクの種類 00229 int nArg[10]; //引数(定数) 00236 mystr strArg[10]; //引数(文字列) 00237 00241 DrawTask(){ //デフォルトコンストラクタ 00242 Clear(); 00243 } 00247 void Clear(){ //各要素をクリア 00248 a = 255; 00249 x = 0; 00250 y = 0; 00251 z = 0; 00252 IsShow = false; 00253 BltType = BLTTYPE_NML; 00254 00255 ZeroMemory(&RectPos, sizeof(RectPos)); 00256 Color = 0; 00257 00258 Text.clear(); 00259 00260 ZeroMemory(&SrcRect, sizeof(SrcRect)); 00261 FileName = ""; 00262 00263 zz = 0; 00264 Type = 0; 00265 for(unsigned int i=0;i<10;i++){ 00266 nArg[i] = 0; 00267 strArg[i] = ""; 00268 } 00269 } 00275 bool operator ==(const DrawTask& t) const{ //比較演算子 00276 return(a==t.a && x==t.x && y==t.y && z==t.z && IsShow==t.IsShow && BltType==t.BltType && 00277 RectPos.left==t.RectPos.left && RectPos.top==t.RectPos.top && RectPos.right==t.RectPos.right && 00278 RectPos.bottom==t.RectPos.bottom && Color==t.Color && Text==t.Text && SrcRect.left==t.SrcRect.left && 00279 SrcRect.top==t.SrcRect.top && SrcRect.right==t.SrcRect.right && SrcRect.bottom==t.SrcRect.bottom && FileName==t.FileName && zz==t.zz && Type==t.Type); 00280 } 00281 }; 00282 00283 //スプライト 00290 struct Sprite{ 00295 DrawTask SpriteTask[2]; //描画タスク 00296 00300 Sprite(){ //デフォルトコンストラクタ 00301 Clear(); 00302 } 00306 void Clear(){ //各要素をクリア 00307 SpriteTask[0].Clear(); 00308 SpriteTask[1].Clear(); 00309 } 00310 }; 00311 00312 //ボタン 00319 struct Button{ 00325 bool IsPushed; //クリック検知用 00331 bool IsCursored; //カーソル検知用 00337 bool IsEnable; //有効か? 00341 RECT ClickRect; //判定矩形 00348 RECT SrcRect[2][4]; //転送元矩形 00352 mystr DestLabel; //移動先ラベル 00356 mystr OnClickSE; //クリック時のSE 00360 mystr OnCursorSE; //カーソル時のSE 00364 Sprite ButtonTask; //スプライト 00365 00369 Button(){ //デフォルトコンストラクタ 00370 Clear(); 00371 } 00375 void Clear(){ //各要素をクリア 00376 IsPushed = false; 00377 IsCursored = false; 00378 IsEnable = false; 00379 ZeroMemory(&ClickRect, sizeof(ClickRect)); 00380 ZeroMemory(SrcRect, sizeof(SrcRect)); 00381 DestLabel = ""; 00382 OnClickSE = ""; 00383 OnCursorSE = ""; 00384 ButtonTask.Clear(); 00385 } 00386 }; 00387 00388 //各種効果パターンのパラメータ 00392 struct EffectParam{ 00396 int Type; //種類 00402 DWORD Time; //効果時間 00406 COLORREF Color; //効果の色 00412 int nArg[10]; //引数(定数) 00418 mystr strArg[10]; //引数(文字列) 00419 00423 EffectParam(){ //デフォルトコンストラクタ 00424 Clear(); 00425 } 00429 void Clear(){ //各要素をクリア 00430 Type = 0; 00431 Time = 0; 00432 Color = 0; 00433 for(unsigned int i=0;i<10;i++){ 00434 nArg[i] = 0; 00435 strArg[i] = ""; 00436 } 00437 } 00438 }; 00439 00440 //各種更新パターンのパラメータ 00444 struct UpdateParam{ 00448 int Type; //種類 00454 DWORD Time; //更新時間 00458 COLORREF Color; //更新の色 00464 int nArg[10]; //引数(定数) 00470 mystr strArg[10]; //引数(文字列) 00471 00475 UpdateParam(){ //デフォルトコンストラクタ 00476 Clear(); 00477 } 00481 void Clear(){ //各要素をクリア 00482 Type = 0; 00483 Time = 0; 00484 Color = 0; 00485 for(unsigned int i=0;i<10;i++){ 00486 nArg[i] = 0; 00487 strArg[i] = ""; 00488 } 00489 } 00490 }; 00491 00492 //描画タスク・スプライト・ボタン管理(インターフェース) 00498 class ITaskManager{ 00499 public: 00500 //z 00508 virtual void SetMaxZ(int z) = 0; //最大Zを設定 00516 virtual void SetMinZ(int z) = 0; //最小Zを設定 00523 virtual void SetReservedZBG(int z) = 0; //予約済みZ座標(背景)を設定 00531 virtual void SetReservedZCh1(int z) = 0; //予約済みZ座標(立ち絵1)を設定 00539 virtual void SetReservedZCh2(int z) = 0; //予約済みZ座標(立ち絵2)を設定 00547 virtual void SetReservedZCh3(int z) = 0; //予約済みZ座標(立ち絵3)を設定 00548 //背景・立ち絵 00554 virtual void SetBG(const DrawTask& Task) = 0; //背景を設定 00560 virtual void SetLCh(const DrawTask& Task) = 0; //左立ち絵を設定 00566 virtual void SetCCh(const DrawTask& Task) = 0; //中央立ち絵を設定 00572 virtual void SetRCh(const DrawTask& Task) = 0; //右立ち絵を設定 00579 virtual void SetChPriority(unsigned int ChPriority) = 0; //立ち絵の優先順位を設定 00584 virtual void SetCharaSpace(unsigned int Space) = 0; //立ち絵と画面左右端の間隔を設定 00585 //スプライト 00591 virtual void AddSprite(const char* SpriteName) = 0; //新規追加 00598 virtual bool FindSprite(const char* SpriteName) const = 0; //存在するか? 00604 virtual void SetAllSpriteShow(bool IsShow) = 0; //全表示/非表示 00612 virtual void SetSpriteShow(const char* SpriteName, bool IsShow) = 0; //表示/非表示 00623 virtual void SetSprite(const char* SpriteName, int x, int y, int z, BYTE a) = 0; //移動(絶対座標) 00636 virtual void MoveSprite(const char* SpriteName, int x, int y, int z, int a) = 0; //移動(相対座標) 00647 virtual void SetSpriteImage(const char* SpriteName, const char* FileName, unsigned int BltType, RECT Image) = 0; 00648 //画像を設定 00655 virtual void SetSpriteText(const char* SpriteName, const TextTokenSection& Text) = 0; //テキストを設定 00662 virtual void SetSprite(const char* SpriteName, const DrawTask& Task) = 0; //スプライトを設定 00663 //ボタン 00671 virtual void AddButton(const char* ButtonName) = 0; //新規追加 00678 virtual bool FindButton(const char* ButtonName) const = 0; //存在するか? 00686 virtual void SetAllButtonShow(bool IsShow) = 0; //全表示/非表示 00696 virtual void SetButtonShow(const char* ButtonName, bool IsShow) = 0; //表示/非表示 00704 virtual void SetAllButtonEnable(bool IsEnable) = 0; //全有効化/無効化 00714 virtual void SetButtonEnable(const char* ButtonName, bool IsEnable) = 0; //有効化/無効化 00725 virtual void SetButton(const char* ButtonName, int x, int y, int z, BYTE a) = 0; //移動(絶対座標) 00738 virtual void MoveButton(const char* ButtonName, int x, int y, int z, int a) = 0; //移動(相対座標) 00755 virtual void SetButtonImage(const char* ButtonName, const char* FileName, unsigned int BltType, RECT Normal, RECT OnCursor, RECT OnHold, RECT Disable) = 0; 00756 //画像を設定 00763 virtual void SetButton(const char* ButtonName, const DrawTask& Task) = 0; //ボタンを設定 00772 virtual void SetButtonClickRect(const char* ButtonName, RECT ClickRect) = 0; //判定矩形を設定 00780 virtual void SetButtonDestLabel(const char* ButtonName, const char* DestLabel) = 0; //移動先ラベルを設定 00788 virtual void SetButtonSound(const char* ButtonName, const char* OnCursor, const char* OnClick) = 0; 00789 //カーソル時/クリック時のSEを設定 00790 //画面更新 00795 virtual int GetUpdateType() const = 0; //更新の種類を取得 00801 virtual void SetUpdateParam(const UpdateParam& Parameter) = 0; //更新パターンを設定 00802 //画面効果 00807 virtual int GetEffectType() const = 0; //効果の種類を取得 00813 virtual void SetEffectParam(const EffectParam& Parameter) = 0; //効果パターンを設定 00814 //その他 00821 virtual bool IsUsedSE(const char* FileName) const = 0; //SEを使用しているか? 00828 virtual bool IsUsedImage(const char* FileName) const = 0; //画像を使用しているか? 00829 }; 00830 00831 //前方宣言 00832 class TMAccessor; 00833 00834 //描画タスク・スプライト・ボタン管理 00840 class TaskManager : public ITaskManager{ 00844 friend class TMAccessor; //フレンドクラス 00845 public: 00849 TaskManager(); //デフォルトコンストラクタ 00850 00854 void Initialize(); //初期化 00855 00862 void SetParent(INovelEngine* Parent); //親エンジンを設定 00863 00864 void SetMaxZ(int z); //最大Zを設定 00865 void SetMinZ(int z); //最小Zを設定 00866 void SetReservedZBG(int z); //予約済みZ座標(背景)を設定 00867 void SetReservedZCh1(int z); //予約済みZ座標(立ち絵1)を設定 00868 void SetReservedZCh2(int z); //予約済みZ座標(立ち絵2)を設定 00869 void SetReservedZCh3(int z); //予約済みZ座標(立ち絵3)を設定 00870 00871 void SetBG(const DrawTask& Task); //背景を設定 00872 void SetLCh(const DrawTask& Task); //左立ち絵を設定 00873 void SetCCh(const DrawTask& Task); //中央立ち絵を設定 00874 void SetRCh(const DrawTask& Task); //右立ち絵を設定 00875 void SetChPriority(unsigned int ChPriority); //立ち絵の優先順位を設定 00876 void SetCharaSpace(unsigned int Space); //立ち絵と画面左右端の間隔を設定 00877 00878 void AddSprite(const char* SpriteName); //新規追加 00879 bool FindSprite(const char* SpriteName) const; //存在するか? 00880 void SetAllSpriteShow(bool IsShow); //全表示/非表示 00881 void SetSpriteShow(const char* SpriteName, bool IsShow); //表示/非表示 00882 void SetSprite(const char* SpriteName, int x, int y, int z, BYTE a); //移動(絶対座標) 00883 void MoveSprite(const char* SpriteName, int x, int y, int z, int a); //移動(相対座標) 00884 void SetSpriteImage(const char* SpriteName, const char* FileName, unsigned int BltType, RECT Image); 00885 //画像を設定 00886 void SetSpriteText(const char* SpriteName, const TextTokenSection& Text); //テキストを設定 00887 void SetSprite(const char* SpriteName, const DrawTask& Task); //スプライトを設定 00888 00889 void AddButton(const char* ButtonName); //新規追加 00890 bool FindButton(const char* ButtonName) const; //存在するか? 00891 void SetAllButtonShow(bool IsShow); //全表示/非表示 00892 void SetButtonShow(const char* ButtonName, bool IsShow); //表示/非表示 00893 void SetAllButtonEnable(bool IsEnable); //全有効化/無効化 00894 void SetButtonEnable(const char* ButtonName, bool IsEnable); //有効化/無効化 00895 void SetButton(const char* ButtonName, int x, int y, int z, BYTE a); //移動(絶対座標) 00896 void MoveButton(const char* ButtonName, int x, int y, int z, int a); //移動(相対座標) 00897 void SetButtonImage(const char* ButtonName, const char* FileName, unsigned int BltType, RECT Normal, RECT OnCursor, RECT OnHold, RECT Disable); 00898 //画像を設定 00899 void SetButton(const char* ButtonName, const DrawTask& Task); //ボタンを設定 00900 void SetButtonClickRect(const char* ButtonName, RECT ClickRect); //判定矩形を設定 00901 void SetButtonDestLabel(const char* ButtonName, const char* DestLabel); //移動先ラベルを設定 00902 void SetButtonSound(const char* ButtonName, const char* OnCursor, const char* OnClick); //カーソル時/クリック時のSEを設定 00906 void CheckButton(); //押下状態を調べて更新 00913 void EnterBRCS(); //検知の排他制御(開始) 00919 void LeaveBRCS(); //検知の排他制御(終了) 00926 void EnterBVCS(); //表示の排他制御(開始) 00932 void LeaveBVCS(); //表示の排他制御(終了) 00933 00939 void Update(); //タスクリストを構築 00940 int GetUpdateType() const; //更新の種類を取得 00941 void SetUpdateParam(const UpdateParam& Parameter); //更新パターンを設定 00942 00949 void ExecuteEffect1(); //実行(各種描画前) 00956 void ExecuteEffect2(); //実行(各種描画後(テキストウインドウ描画前)) 00963 void ExecuteEffect3(); //実行(各種描画後(テキストウインドウ描画後)) 00964 int GetEffectType() const; //効果の種類を取得 00965 void SetEffectParam(const EffectParam& Parameter); //効果パターンを設定 00966 00971 void SaveL(IIOStream* IOStream); //保存(ローカル) 00976 void LoadL(IIOStream* IOStream); //読み込み(ローカル) 00981 vector<DrawTask>& GetTaskList(); //描画タスクリストを取得(1) 00986 const vector<DrawTask>& GetTaskList() const; //描画タスクリストを取得(2) 00987 bool IsUsedSE(const char* FileName) const; //SEを使用しているか? 00988 bool IsUsedImage(const char* FileName) const; //画像を使用しているか? 00989 private: 00990 //親エンジンのアドレス 00991 INovelEngine* Outer; //親エンジンのアドレス 00992 //z 00993 int m_MaxZ, m_MinZ, m_RZBG, m_RZCh1, m_RZCh2, m_RZCh3; //z座標 00994 //描画タスクリスト 00995 vector<DrawTask> m_TaskList; //描画タスクリスト 00996 //描画タスク関係 00997 Sprite m_BG; //背景 00998 Sprite m_LCh; //左立ち絵 00999 Sprite m_CCh; //中央立ち絵 01000 Sprite m_RCh; //右立ち絵 01001 map<string, Sprite> m_Sprite; //スプライト 01002 map<string, Button> m_Button; //ボタン 01003 unsigned int m_CharaSpace; //立ち絵と画面左右端の間隔 01004 unsigned int m_ChPriority[2]; //立ち絵の優先順位 01005 unsigned int m_DrawTaskIterator; //描画タスクのイテレータ 01006 //画面更新用 01007 UpdateParam m_UpdateData; //画面更新用パラメータ 01008 //画面効果用 01009 EffectParam m_EffectData; //画面効果用パラメータ 01010 //状態変数 01011 map<string, bool> BRCS; bool IsBRCS; //ボタン検知の排他制御用 01012 map<string, bool> BVCS[2]; bool IsBVCS; //ボタン表示の排他制御用 01013 //状態変数(画面更新用) 01014 int UpdateI[4]; 01015 BYTE UpdateBy[4]; 01016 mystr UpdateS[4]; 01017 DWORD UpdateDw[4]; 01018 double UpdateD[4]; 01019 COLORREF UpdateC[4]; 01020 //状態変数(画面効果用) 01021 int EffectI[4]; 01022 BYTE EffectBy[4]; 01023 mystr EffectS[4]; 01024 DWORD EffectDw[4]; 01025 double EffectD[4]; 01026 COLORREF EffectC[4]; 01027 01028 TaskManager(const TaskManager&); //コピーコンストラクタ(禁止) 01029 TaskManager& operator =(const TaskManager&); //代入演算子(禁止) 01030 }; 01031 01032 //描画タスク・スプライト・ボタンへのアクセッサ(インターフェース) 01038 class ITMAccessor{ 01039 public: 01040 //描画タスクリスト 01044 virtual void ClearTaskList() = 0; //描画タスクリストを消去 01050 virtual void ZSortTaskList() = 0; //描画タスクリストをZソート 01056 virtual void DuplicateTaskList() = 0; //描画タスクリストを複写 01064 virtual void PushTaskList(const DrawTask& PushTask) = 0; //描画タスクリストを追加 01071 virtual void PushTaskListIM(const DrawTask& PushTask) = 0; //描画タスクリストを追加(即座) 01079 virtual void GetTaskList(unsigned int& Num, DrawTask* _DrawTask[]) = 0; //描画タスクリストを取得/設定 01080 //背景・立ち絵 01087 virtual Sprite& GetBG() = 0; //背景を取得 01094 virtual Sprite& GetLCh() = 0; //左立ち絵を取得 01101 virtual Sprite& GetCCh() = 0; //中央立ち絵を取得 01108 virtual Sprite& GetRCh() = 0; //右立ち絵を取得 01109 //スプライト 01118 virtual Sprite& GetSprite(const char* SpriteName) = 0; //スプライトを取得(1) 01126 virtual void GetSprite(unsigned int& Num, Sprite* _Sprite[]) = 0; //スプライトを取得(2) 01127 //ボタン 01136 virtual Button& GetButton(const char* ButtonName) = 0; //ボタンを取得(1) 01144 virtual void GetButton(unsigned int& Num, Button* _Button[]) = 0; //ボタンを取得(2) 01145 //立ち絵の表示位置 01151 virtual void SetChLocation() = 0; //立ち絵の表示位置を設定 01152 //描画タスクのイテレータ 01156 virtual void SwitchDrawTaskIterator() = 0; //描画タスクのイテレータを切替 01161 virtual unsigned int GetDrawTaskIterator() = 0; //描画タスクのイテレータを取得 01162 //画面効果 01169 virtual EffectParam& GetEffectParam() = 0; //効果パターンを取得/設定 01170 //画面更新 01177 virtual UpdateParam& GetUpdateParam() = 0; //更新パターンを取得/設定 01178 //状態変数(全般) 01182 virtual void InitStateVar() = 0; //全状態変数を初期化 01183 //状態変数(画面更新用)を取得/設定 01191 virtual int& GetUpdateI(unsigned int Num) = 0; 01199 virtual BYTE& GetUpdateBy(unsigned int Num) = 0; 01207 virtual mystr& GetUpdateS(unsigned int Num) = 0; 01215 virtual DWORD& GetUpdateDw(unsigned int Num) = 0; 01223 virtual double& GetUpdateD(unsigned int Num) = 0; 01231 virtual COLORREF& GetUpdateC(unsigned int Num) = 0; 01232 //状態変数(画面効果用)を取得/設定 01240 virtual int& GetEffectI(unsigned int Num) = 0; 01248 virtual BYTE& GetEffectBy(unsigned int Num) = 0; 01256 virtual mystr& GetEffectS(unsigned int Num) = 0; 01264 virtual DWORD& GetEffectDw(unsigned int Num) = 0; 01272 virtual double& GetEffectD(unsigned int Num) = 0; 01280 virtual COLORREF& GetEffectC(unsigned int Num) = 0; 01281 }; 01282 01283 //描画タスク・スプライト・ボタンへのアクセッサ 01290 class TMAccessor : public ITMAccessor{ 01291 public: 01295 TMAccessor(){} //デフォルトコンストラクタ 01296 01301 void SetParent(INovelEngine* Parent); //親エンジンを設定 01302 01303 void ClearTaskList(); //描画タスクリストを消去 01304 void ZSortTaskList(); //描画タスクリストをZソート 01305 void DuplicateTaskList(); //描画タスクリストを複写 01306 void PushTaskList(const DrawTask& PushTask); //描画タスクリストを追加 01307 void PushTaskListIM(const DrawTask& PushTask); //描画タスクリストを追加(即座) 01308 void GetTaskList(unsigned int& Num, DrawTask* _DrawTask[]); //描画タスクリストを取得/設定 01309 01310 Sprite& GetBG(); //背景を取得 01311 Sprite& GetLCh(); //左立ち絵を取得 01312 Sprite& GetCCh(); //中央立ち絵を取得 01313 Sprite& GetRCh(); //右立ち絵を取得 01314 01315 Sprite& GetSprite(const char* SpriteName); //スプライトを取得(1) 01316 void GetSprite(unsigned int& Num, Sprite* _Sprite[]); //スプライトを取得(2) 01317 01318 Button& GetButton(const char* ButtonName); //ボタンを取得(1) 01319 void GetButton(unsigned int& Num, Button* _Button[]); //ボタンを取得(2) 01320 01321 void SetChLocation(); //立ち絵の表示位置を設定 01322 01323 void SwitchDrawTaskIterator(); //描画タスクのイテレータを切替 01324 unsigned int GetDrawTaskIterator(); //描画タスクのイテレータを取得 01325 01326 EffectParam& GetEffectParam(); //効果パターンを取得/設定 01327 01328 UpdateParam& GetUpdateParam(); //更新パターンを取得/設定 01329 01330 void InitStateVar(); //全状態変数を初期化 01331 01332 //状態変数(画面更新用)を取得/設定 01333 int& GetUpdateI(unsigned int Num); 01334 BYTE& GetUpdateBy(unsigned int Num); 01335 mystr& GetUpdateS(unsigned int Num); 01336 DWORD& GetUpdateDw(unsigned int Num); 01337 double& GetUpdateD(unsigned int Num); 01338 COLORREF& GetUpdateC(unsigned int Num); 01339 01340 //状態変数(画面効果用)を取得/設定 01341 int& GetEffectI(unsigned int Num); 01342 BYTE& GetEffectBy(unsigned int Num); 01343 mystr& GetEffectS(unsigned int Num); 01344 DWORD& GetEffectDw(unsigned int Num); 01345 double& GetEffectD(unsigned int Num); 01346 COLORREF& GetEffectC(unsigned int Num); 01347 private: 01348 INovelEngine* Outer; //親エンジンのアドレス 01349 01350 TMAccessor(const TMAccessor&); //コピーコンストラクタ(禁止) 01351 TMAccessor& operator =(const TMAccessor&); //代入演算子(禁止) 01352 }; 01353 01354 #ifdef __cplusplus 01355 extern "C"{ 01356 #endif 01357 01358 //アクセッサを取得/設定 01363 __declspec(dllexport) ITMAccessor* GetTMAccessor(); //アクセッサを取得 01368 __declspec(dllexport) void SetTMAccessor(INovelEngine* Parent); //アクセッサを設定 01369 01370 #ifdef __cplusplus 01371 } 01372 #endif 01373 01374 } 01375 } 01376 01377 #endif