AbyssLib 1.310
あびす謹製ノベルゲームフレームワークライブラリ
|
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; //転送方法 00177 float Degree; //回転角度 00178 00179 //矩形用 00185 RECT RectPos; //位置 00191 COLORREF Color; //カラー 00192 00193 //テキスト用 00199 TextTokenSection Text; //テキスト 00200 00201 //画像用 00207 RECT SrcRect; //転送元矩形 00213 mystr FileName; //ファイル名 00220 float ScalingX; //拡大倍率(X方向) 00227 float ScalingY; //拡大倍率(Y方向) 00228 00229 //その他 00236 unsigned int zz; //描画の順序(2) 00243 unsigned int Type; //描画タスクの種類 00250 int nArg[10]; //引数(定数) 00257 mystr strArg[10]; //引数(文字列) 00258 00262 DrawTask(){ //デフォルトコンストラクタ 00263 Clear(); 00264 } 00268 void Clear(){ //各要素をクリア 00269 a = 255; 00270 x = 0; 00271 y = 0; 00272 z = 0; 00273 IsShow = false; 00274 BltType = BLTTYPE_NML; 00275 Degree = 0.0f; 00276 00277 ZeroMemory(&RectPos, sizeof(RectPos)); 00278 Color = 0; 00279 00280 Text.clear(); 00281 00282 ZeroMemory(&SrcRect, sizeof(SrcRect)); 00283 FileName = ""; 00284 ScalingX = 1.0f; 00285 ScalingY = 1.0f; 00286 00287 zz = 0; 00288 Type = 0; 00289 for(unsigned int i=0;i<10;i++){ 00290 nArg[i] = 0; 00291 strArg[i] = ""; 00292 } 00293 } 00299 bool operator ==(const DrawTask& t) const{ //比較演算子 00300 return(a==t.a && x==t.x && y==t.y && z==t.z && IsShow==t.IsShow && BltType==t.BltType && Degree==t.Degree && 00301 RectPos.left==t.RectPos.left && RectPos.top==t.RectPos.top && RectPos.right==t.RectPos.right && RectPos.bottom==t.RectPos.bottom && Color==t.Color && 00302 Text==t.Text && 00303 SrcRect.left==t.SrcRect.left && SrcRect.top==t.SrcRect.top && SrcRect.right==t.SrcRect.right && SrcRect.bottom==t.SrcRect.bottom && FileName==t.FileName && ScalingX==t.ScalingX && ScalingY==t.ScalingY && 00304 zz==t.zz && Type==t.Type); 00305 } 00306 }; 00307 00308 //スプライト 00315 struct Sprite{ 00320 DrawTask SpriteTask[2]; //描画タスク 00321 00325 Sprite(){ //デフォルトコンストラクタ 00326 Clear(); 00327 } 00331 void Clear(){ //各要素をクリア 00332 SpriteTask[0].Clear(); 00333 SpriteTask[1].Clear(); 00334 } 00335 }; 00336 00337 //ボタン 00344 struct Button{ 00350 bool IsPushed; //クリック検知用 00356 bool IsCursored; //カーソル検知用 00362 bool IsEnable; //有効か? 00366 RECT ClickRect; //判定矩形 00373 RECT SrcRect[2][4]; //転送元矩形 00377 mystr DestLabel; //移動先ラベル 00381 mystr OnClickSE; //クリック時のSE 00385 mystr OnCursorSE; //カーソル時のSE 00389 Sprite ButtonTask; //スプライト 00390 00394 Button(){ //デフォルトコンストラクタ 00395 Clear(); 00396 } 00400 void Clear(){ //各要素をクリア 00401 IsPushed = false; 00402 IsCursored = false; 00403 IsEnable = false; 00404 ZeroMemory(&ClickRect, sizeof(ClickRect)); 00405 ZeroMemory(SrcRect, sizeof(SrcRect)); 00406 DestLabel = ""; 00407 OnClickSE = ""; 00408 OnCursorSE = ""; 00409 ButtonTask.Clear(); 00410 } 00411 }; 00412 00413 //各種効果パターンのパラメータ 00417 struct EffectParam{ 00421 int Type; //種類 00427 DWORD Time; //効果時間 00431 COLORREF Color; //効果の色 00437 int nArg[10]; //引数(定数) 00443 mystr strArg[10]; //引数(文字列) 00444 00448 EffectParam(){ //デフォルトコンストラクタ 00449 Clear(); 00450 } 00454 void Clear(){ //各要素をクリア 00455 Type = 0; 00456 Time = 0; 00457 Color = 0; 00458 for(unsigned int i=0;i<10;i++){ 00459 nArg[i] = 0; 00460 strArg[i] = ""; 00461 } 00462 } 00463 }; 00464 00465 //各種更新パターンのパラメータ 00469 struct UpdateParam{ 00473 int Type; //種類 00479 DWORD Time; //更新時間 00483 COLORREF Color; //更新の色 00489 int nArg[10]; //引数(定数) 00495 mystr strArg[10]; //引数(文字列) 00496 00500 UpdateParam(){ //デフォルトコンストラクタ 00501 Clear(); 00502 } 00506 void Clear(){ //各要素をクリア 00507 Type = 0; 00508 Time = 0; 00509 Color = 0; 00510 for(unsigned int i=0;i<10;i++){ 00511 nArg[i] = 0; 00512 strArg[i] = ""; 00513 } 00514 } 00515 }; 00516 00517 //描画タスク・スプライト・ボタン管理(インターフェース) 00523 class ITaskManager{ 00524 public: 00525 //z 00533 virtual void SetMaxZ(int z) = 0; //最大Zを設定 00541 virtual void SetMinZ(int z) = 0; //最小Zを設定 00548 virtual void SetReservedZBG(int z) = 0; //予約済みZ座標(背景)を設定 00556 virtual void SetReservedZCh1(int z) = 0; //予約済みZ座標(立ち絵1)を設定 00564 virtual void SetReservedZCh2(int z) = 0; //予約済みZ座標(立ち絵2)を設定 00572 virtual void SetReservedZCh3(int z) = 0; //予約済みZ座標(立ち絵3)を設定 00573 //背景・立ち絵 00579 virtual void SetBG(const DrawTask& Task) = 0; //背景を設定 00585 virtual void SetLCh(const DrawTask& Task) = 0; //左立ち絵を設定 00591 virtual void SetCCh(const DrawTask& Task) = 0; //中央立ち絵を設定 00597 virtual void SetRCh(const DrawTask& Task) = 0; //右立ち絵を設定 00604 virtual void SetChPriority(unsigned int ChPriority) = 0; //立ち絵の優先順位を設定 00609 virtual void SetCharaSpace(unsigned int Space) = 0; //立ち絵と画面左右端の間隔を設定 00610 //スプライト 00616 virtual void AddSprite(const char* SpriteName) = 0; //新規追加 00623 virtual bool FindSprite(const char* SpriteName) const = 0; //存在するか? 00629 virtual void SetAllSpriteShow(bool IsShow) = 0; //全表示/非表示 00637 virtual void SetSpriteShow(const char* SpriteName, bool IsShow) = 0; //表示/非表示 00648 virtual void SetSprite(const char* SpriteName, int x, int y, int z, BYTE a) = 0; //移動(絶対座標) 00661 virtual void MoveSprite(const char* SpriteName, int x, int y, int z, int a) = 0; //移動(相対座標) 00675 virtual void SetSpriteImage(const char* SpriteName, const char* FileName, unsigned int BltType, RECT Image, float ScalingX, float ScalingY, float Degree) = 0; 00676 //画像を設定 00683 virtual void SetSpriteText(const char* SpriteName, const TextTokenSection& Text) = 0; //テキストを設定 00690 virtual void SetSprite(const char* SpriteName, const DrawTask& Task) = 0; //スプライトを設定 00691 //ボタン 00699 virtual void AddButton(const char* ButtonName) = 0; //新規追加 00706 virtual bool FindButton(const char* ButtonName) const = 0; //存在するか? 00714 virtual void SetAllButtonShow(bool IsShow) = 0; //全表示/非表示 00724 virtual void SetButtonShow(const char* ButtonName, bool IsShow) = 0; //表示/非表示 00732 virtual void SetAllButtonEnable(bool IsEnable) = 0; //全有効化/無効化 00742 virtual void SetButtonEnable(const char* ButtonName, bool IsEnable) = 0; //有効化/無効化 00753 virtual void SetButton(const char* ButtonName, int x, int y, int z, BYTE a) = 0; //移動(絶対座標) 00766 virtual void MoveButton(const char* ButtonName, int x, int y, int z, int a) = 0; //移動(相対座標) 00786 virtual void SetButtonImage(const char* ButtonName, const char* FileName, unsigned int BltType, RECT Normal, RECT OnCursor, RECT OnHold, RECT Disable, float ScalingX, float ScalingY, float Degree) = 0; 00787 //画像を設定 00794 virtual void SetButton(const char* ButtonName, const DrawTask& Task) = 0; //ボタンを設定 00803 virtual void SetButtonClickRect(const char* ButtonName, RECT ClickRect) = 0; //判定矩形を設定 00811 virtual void SetButtonDestLabel(const char* ButtonName, const char* DestLabel) = 0; //移動先ラベルを設定 00819 virtual void SetButtonSound(const char* ButtonName, const char* OnCursor, const char* OnClick) = 0; 00820 //カーソル時/クリック時のSEを設定 00821 //画面更新 00826 virtual int GetUpdateType() const = 0; //更新の種類を取得 00832 virtual void SetUpdateParam(const UpdateParam& Parameter) = 0; //更新パターンを設定 00833 //画面効果 00838 virtual int GetEffectType() const = 0; //効果の種類を取得 00844 virtual void SetEffectParam(const EffectParam& Parameter) = 0; //効果パターンを設定 00845 //その他 00852 virtual bool IsUsedSE(const char* FileName) const = 0; //SEを使用しているか? 00859 virtual bool IsUsedImage(const char* FileName) const = 0; //画像を使用しているか? 00860 }; 00861 00862 //前方宣言 00863 class TMAccessor; 00864 00865 //描画タスク・スプライト・ボタン管理 00871 class TaskManager : public ITaskManager{ 00875 friend class TMAccessor; //フレンドクラス 00876 public: 00880 TaskManager(); //デフォルトコンストラクタ 00881 00885 void Initialize(); //初期化 00886 00893 void SetParent(INovelEngine* Parent); //親エンジンを設定 00894 00895 void SetMaxZ(int z); //最大Zを設定 00896 void SetMinZ(int z); //最小Zを設定 00897 void SetReservedZBG(int z); //予約済みZ座標(背景)を設定 00898 void SetReservedZCh1(int z); //予約済みZ座標(立ち絵1)を設定 00899 void SetReservedZCh2(int z); //予約済みZ座標(立ち絵2)を設定 00900 void SetReservedZCh3(int z); //予約済みZ座標(立ち絵3)を設定 00901 00902 void SetBG(const DrawTask& Task); //背景を設定 00903 void SetLCh(const DrawTask& Task); //左立ち絵を設定 00904 void SetCCh(const DrawTask& Task); //中央立ち絵を設定 00905 void SetRCh(const DrawTask& Task); //右立ち絵を設定 00906 void SetChPriority(unsigned int ChPriority); //立ち絵の優先順位を設定 00907 void SetCharaSpace(unsigned int Space); //立ち絵と画面左右端の間隔を設定 00908 00909 void AddSprite(const char* SpriteName); //新規追加 00910 bool FindSprite(const char* SpriteName) const; //存在するか? 00911 void SetAllSpriteShow(bool IsShow); //全表示/非表示 00912 void SetSpriteShow(const char* SpriteName, bool IsShow); //表示/非表示 00913 void SetSprite(const char* SpriteName, int x, int y, int z, BYTE a); //移動(絶対座標) 00914 void MoveSprite(const char* SpriteName, int x, int y, int z, int a); //移動(相対座標) 00915 void SetSpriteImage(const char* SpriteName, const char* FileName, unsigned int BltType, RECT Image, float ScalingX, float ScalingY, float Degree); 00916 //画像を設定 00917 void SetSpriteText(const char* SpriteName, const TextTokenSection& Text); //テキストを設定 00918 void SetSprite(const char* SpriteName, const DrawTask& Task); //スプライトを設定 00919 00920 void AddButton(const char* ButtonName); //新規追加 00921 bool FindButton(const char* ButtonName) const; //存在するか? 00922 void SetAllButtonShow(bool IsShow); //全表示/非表示 00923 void SetButtonShow(const char* ButtonName, bool IsShow); //表示/非表示 00924 void SetAllButtonEnable(bool IsEnable); //全有効化/無効化 00925 void SetButtonEnable(const char* ButtonName, bool IsEnable); //有効化/無効化 00926 void SetButton(const char* ButtonName, int x, int y, int z, BYTE a); //移動(絶対座標) 00927 void MoveButton(const char* ButtonName, int x, int y, int z, int a); //移動(相対座標) 00928 void SetButtonImage(const char* ButtonName, const char* FileName, unsigned int BltType, RECT Normal, RECT OnCursor, RECT OnHold, RECT Disable, float ScalingX, float ScalingY, float Degree); 00929 //画像を設定 00930 void SetButton(const char* ButtonName, const DrawTask& Task); //ボタンを設定 00931 void SetButtonClickRect(const char* ButtonName, RECT ClickRect); //判定矩形を設定 00932 void SetButtonDestLabel(const char* ButtonName, const char* DestLabel); //移動先ラベルを設定 00933 void SetButtonSound(const char* ButtonName, const char* OnCursor, const char* OnClick); //カーソル時/クリック時のSEを設定 00937 void CheckButton(); //押下状態を調べて更新 00944 void EnterBRCS(); //検知の排他制御(開始) 00950 void LeaveBRCS(); //検知の排他制御(終了) 00957 void EnterBVCS(); //表示の排他制御(開始) 00963 void LeaveBVCS(); //表示の排他制御(終了) 00964 00970 void Update(); //タスクリストを構築 00971 int GetUpdateType() const; //更新の種類を取得 00972 void SetUpdateParam(const UpdateParam& Parameter); //更新パターンを設定 00973 00980 void ExecuteEffect1(); //実行(各種描画前) 00987 void ExecuteEffect2(); //実行(各種描画後(テキストウインドウ描画前)) 00994 void ExecuteEffect3(); //実行(各種描画後(テキストウインドウ描画後)) 00995 int GetEffectType() const; //効果の種類を取得 00996 void SetEffectParam(const EffectParam& Parameter); //効果パターンを設定 00997 01002 void SaveL(IIOStream* IOStream); //保存(ローカル) 01007 void LoadL(IIOStream* IOStream); //読み込み(ローカル) 01012 vector<DrawTask>& GetTaskList(); //描画タスクリストを取得(1) 01017 const vector<DrawTask>& GetTaskList() const; //描画タスクリストを取得(2) 01018 bool IsUsedSE(const char* FileName) const; //SEを使用しているか? 01019 bool IsUsedImage(const char* FileName) const; //画像を使用しているか? 01020 private: 01021 //親エンジンのアドレス 01022 INovelEngine* Outer; //親エンジンのアドレス 01023 //z 01024 int m_MaxZ, m_MinZ, m_RZBG, m_RZCh1, m_RZCh2, m_RZCh3; //z座標 01025 //描画タスクリスト 01026 vector<DrawTask> m_TaskList; //描画タスクリスト 01027 //描画タスク関係 01028 Sprite m_BG; //背景 01029 Sprite m_LCh; //左立ち絵 01030 Sprite m_CCh; //中央立ち絵 01031 Sprite m_RCh; //右立ち絵 01032 map<string, Sprite> m_Sprite; //スプライト 01033 map<string, Button> m_Button; //ボタン 01034 unsigned int m_CharaSpace; //立ち絵と画面左右端の間隔 01035 unsigned int m_ChPriority[2]; //立ち絵の優先順位 01036 unsigned int m_DrawTaskIterator; //描画タスクのイテレータ 01037 //画面更新用 01038 UpdateParam m_UpdateData; //画面更新用パラメータ 01039 //画面効果用 01040 EffectParam m_EffectData; //画面効果用パラメータ 01041 //状態変数 01042 map<string, bool> BRCS; bool IsBRCS; //ボタン検知の排他制御用 01043 map<string, bool> BVCS[2]; bool IsBVCS; //ボタン表示の排他制御用 01044 //状態変数(画面更新用) 01045 int UpdateI[4]; 01046 BYTE UpdateBy[4]; 01047 mystr UpdateS[4]; 01048 DWORD UpdateDw[4]; 01049 double UpdateD[4]; 01050 COLORREF UpdateC[4]; 01051 //状態変数(画面効果用) 01052 int EffectI[4]; 01053 BYTE EffectBy[4]; 01054 mystr EffectS[4]; 01055 DWORD EffectDw[4]; 01056 double EffectD[4]; 01057 COLORREF EffectC[4]; 01058 01059 TaskManager(const TaskManager&); //コピーコンストラクタ(禁止) 01060 TaskManager& operator =(const TaskManager&); //代入演算子(禁止) 01061 }; 01062 01063 //描画タスク・スプライト・ボタンへのアクセッサ(インターフェース) 01069 class ITMAccessor{ 01070 public: 01071 //描画タスクリスト 01075 virtual void ClearTaskList() = 0; //描画タスクリストを消去 01081 virtual void ZSortTaskList() = 0; //描画タスクリストをZソート 01087 virtual void DuplicateTaskList() = 0; //描画タスクリストを複写 01095 virtual void PushTaskList(const DrawTask& PushTask) = 0; //描画タスクリストを追加 01102 virtual void PushTaskListIM(const DrawTask& PushTask) = 0; //描画タスクリストを追加(即座) 01110 virtual void GetTaskList(unsigned int& Num, DrawTask* _DrawTask[]) = 0; //描画タスクリストを取得/設定 01111 //背景・立ち絵 01118 virtual Sprite& GetBG() = 0; //背景を取得 01125 virtual Sprite& GetLCh() = 0; //左立ち絵を取得 01132 virtual Sprite& GetCCh() = 0; //中央立ち絵を取得 01139 virtual Sprite& GetRCh() = 0; //右立ち絵を取得 01140 //スプライト 01149 virtual Sprite& GetSprite(const char* SpriteName) = 0; //スプライトを取得(1) 01157 virtual void GetSprite(unsigned int& Num, Sprite* _Sprite[]) = 0; //スプライトを取得(2) 01158 //ボタン 01167 virtual Button& GetButton(const char* ButtonName) = 0; //ボタンを取得(1) 01175 virtual void GetButton(unsigned int& Num, Button* _Button[]) = 0; //ボタンを取得(2) 01176 //立ち絵の表示位置 01182 virtual void SetChLocation() = 0; //立ち絵の表示位置を設定 01183 //描画タスクのイテレータ 01187 virtual void SwitchDrawTaskIterator() = 0; //描画タスクのイテレータを切替 01192 virtual unsigned int GetDrawTaskIterator() = 0; //描画タスクのイテレータを取得 01193 //画面効果 01200 virtual EffectParam& GetEffectParam() = 0; //効果パターンを取得/設定 01201 //画面更新 01208 virtual UpdateParam& GetUpdateParam() = 0; //更新パターンを取得/設定 01209 //状態変数(全般) 01213 virtual void InitStateVar() = 0; //全状態変数を初期化 01214 //状態変数(画面更新用)を取得/設定 01222 virtual int& GetUpdateI(unsigned int Num) = 0; 01230 virtual BYTE& GetUpdateBy(unsigned int Num) = 0; 01238 virtual mystr& GetUpdateS(unsigned int Num) = 0; 01246 virtual DWORD& GetUpdateDw(unsigned int Num) = 0; 01254 virtual double& GetUpdateD(unsigned int Num) = 0; 01262 virtual COLORREF& GetUpdateC(unsigned int Num) = 0; 01263 //状態変数(画面効果用)を取得/設定 01271 virtual int& GetEffectI(unsigned int Num) = 0; 01279 virtual BYTE& GetEffectBy(unsigned int Num) = 0; 01287 virtual mystr& GetEffectS(unsigned int Num) = 0; 01295 virtual DWORD& GetEffectDw(unsigned int Num) = 0; 01303 virtual double& GetEffectD(unsigned int Num) = 0; 01311 virtual COLORREF& GetEffectC(unsigned int Num) = 0; 01312 }; 01313 01314 //描画タスク・スプライト・ボタンへのアクセッサ 01321 class TMAccessor : public ITMAccessor{ 01322 public: 01326 TMAccessor(){} //デフォルトコンストラクタ 01327 01332 void SetParent(INovelEngine* Parent); //親エンジンを設定 01333 01334 void ClearTaskList(); //描画タスクリストを消去 01335 void ZSortTaskList(); //描画タスクリストをZソート 01336 void DuplicateTaskList(); //描画タスクリストを複写 01337 void PushTaskList(const DrawTask& PushTask); //描画タスクリストを追加 01338 void PushTaskListIM(const DrawTask& PushTask); //描画タスクリストを追加(即座) 01339 void GetTaskList(unsigned int& Num, DrawTask* _DrawTask[]); //描画タスクリストを取得/設定 01340 01341 Sprite& GetBG(); //背景を取得 01342 Sprite& GetLCh(); //左立ち絵を取得 01343 Sprite& GetCCh(); //中央立ち絵を取得 01344 Sprite& GetRCh(); //右立ち絵を取得 01345 01346 Sprite& GetSprite(const char* SpriteName); //スプライトを取得(1) 01347 void GetSprite(unsigned int& Num, Sprite* _Sprite[]); //スプライトを取得(2) 01348 01349 Button& GetButton(const char* ButtonName); //ボタンを取得(1) 01350 void GetButton(unsigned int& Num, Button* _Button[]); //ボタンを取得(2) 01351 01352 void SetChLocation(); //立ち絵の表示位置を設定 01353 01354 void SwitchDrawTaskIterator(); //描画タスクのイテレータを切替 01355 unsigned int GetDrawTaskIterator(); //描画タスクのイテレータを取得 01356 01357 EffectParam& GetEffectParam(); //効果パターンを取得/設定 01358 01359 UpdateParam& GetUpdateParam(); //更新パターンを取得/設定 01360 01361 void InitStateVar(); //全状態変数を初期化 01362 01363 //状態変数(画面更新用)を取得/設定 01364 int& GetUpdateI(unsigned int Num); 01365 BYTE& GetUpdateBy(unsigned int Num); 01366 mystr& GetUpdateS(unsigned int Num); 01367 DWORD& GetUpdateDw(unsigned int Num); 01368 double& GetUpdateD(unsigned int Num); 01369 COLORREF& GetUpdateC(unsigned int Num); 01370 01371 //状態変数(画面効果用)を取得/設定 01372 int& GetEffectI(unsigned int Num); 01373 BYTE& GetEffectBy(unsigned int Num); 01374 mystr& GetEffectS(unsigned int Num); 01375 DWORD& GetEffectDw(unsigned int Num); 01376 double& GetEffectD(unsigned int Num); 01377 COLORREF& GetEffectC(unsigned int Num); 01378 private: 01379 INovelEngine* Outer; //親エンジンのアドレス 01380 01381 TMAccessor(const TMAccessor&); //コピーコンストラクタ(禁止) 01382 TMAccessor& operator =(const TMAccessor&); //代入演算子(禁止) 01383 }; 01384 01385 #ifdef __cplusplus 01386 extern "C"{ 01387 #endif 01388 01389 //アクセッサを取得/設定 01394 __declspec(dllexport) ITMAccessor* GetTMAccessor(); //アクセッサを取得 01399 __declspec(dllexport) void SetTMAccessor(INovelEngine* Parent); //アクセッサを設定 01400 01401 #ifdef __cplusplus 01402 } 01403 #endif 01404 01405 } 01406 } 01407 01408 #endif