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

AbyssLibSrc/AbyssLib/AbyssLib/TaskManager.h

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