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

AbyssLibSrc/AbyssLib/AbyssLib/Command/Command.h

説明を見る。
00001 /*************************************************
00002 ファイル名:Command.h
00003 作成者  :あびす
00004 役割   :各種命令
00005 *************************************************/
00010 #ifndef ABYSSLIB_COMMAND_H
00011 #define ABYSSLIB_COMMAND_H
00012 
00013 namespace nsAbyssLib{
00014 namespace nsCommand{
00015 
00016 //各種命令の列挙型
00024 enum TYPE_CMD{
00028     NO_CMD,                                                     //非命令
00029 };
00030 
00031 //各種命令のパラメータ
00037 struct CmdParam{
00041     int nArg[10];                                               //定数
00045     mystr strArg[20];                                           //文字列
00049     Expression ExArg[30];                                       //多項式
00050 
00054     CmdParam(){                                                 //デフォルトコンストラクタ
00055         Clear();
00056     }
00060     void Clear(){                                               //各要素をクリア
00061         for(int i=0;i<10;i++){
00062             nArg[i] = 0;
00063         }
00064         for(int i=0;i<20;i++){
00065             strArg[i] = "";
00066         }
00067         for(int i=0;i<30;i++){
00068             ExArg[i].clear();
00069         }
00070     }
00071 };
00072 
00073 //命令クラス(インターフェース)
00080 class ICmd_Base{
00081 public:
00089     virtual void Initialize(){}                                 //状態変数を初期化
00097     virtual void Suicide() = 0;                                 //自分自身を削除
00098 
00104     virtual void Run() = 0;                                     //命令を実行
00112     virtual void SetParent(INovelEngine* Parent){               //親エンジンを設定
00113         Outer = Parent;
00114     }
00121     virtual void SetParam(const CmdParam& Parameter){}          //メンバ変数を設定
00122 
00132     virtual int GetID() const = 0;                              //命令の種類を取得
00139     virtual void Print(const ITextStream* Output) const = 0;    //命令の内容を表示
00140 
00147     virtual void Save(IIOStream* IOStream){}                    //ファイルに書き込む
00154     virtual void Load(IIOStream* IOStream){}                    //ファイルから読み出す
00155 protected:
00161     INovelEngine* Outer;                                        //親エンジンのアドレス
00162 };
00163 
00164 //命令クラスのFactory関数
00172 ICmd_Base* CommandFactory(unsigned int CommandType);
00173 
00174 }
00175 }
00176 
00177 #endif
 全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 フレンド マクロ定義