GameServer
AIGenerator.h
[詳解]
1 
6 #ifndef __AIGENERATOR_H__
7 #define __AIGENERATOR_H__
8 
9 #include <boost/unordered_map.hpp>
10 #include "WeakPtrDefine.h"
11 
16 struct AIAction
17 {
20 
23 
26 };
27 
33 class AIGenerator : public boost::noncopyable
34 {
35 
36 private: // 別名定義.
37 
38  typedef shared_ptr<AIAction> AIActionSharedPtr;
39  typedef std::vector<AIActionSharedPtr> ActionVector; // Linuxで怒られるので対処。
40  typedef boost::unordered_map<int, ActionVector> ActionMap;
41 
42 public:
43 
47  virtual ~AIGenerator() {}
48 
53  void Initialize();
54 
61  const AIActionPtr Get(u32 Id) const;
62 
63 private:
64 
65  // 行動マップ
66  ActionMap Actions;
67 
68  // ========== Singleton ===============
69 public:
70 
76  static AIGenerator &GetInstance() { return Instance; }
77 
78 private:
79 
80  AIGenerator();
81  static AIGenerator Instance;
82 
83 };
84 
85 #endif // #ifndef __AIGENERATOR_H__
unsigned char u8
Definition: TypeDefs.h:6
u32 Value
行動の値
Definition: AIGenerator.h:22
AIActionPtr pNextAction
次の行動
Definition: AIGenerator.h:25
void Initialize()
初期化
Definition: AIGenerator.cpp:18
static AIGenerator & GetInstance()
シングルトンインスタンスを取得
Definition: AIGenerator.h:76
weak_ptr< AIAction > AIActionPtr
Definition: WeakPtrDefine.h:28
u8 Action
行動
Definition: AIGenerator.h:19
AI機構構築 シングルトンクラス
Definition: AIGenerator.h:33
unsigned int u32
Definition: TypeDefs.h:10
virtual ~AIGenerator()
デストラクタ
Definition: AIGenerator.h:47
const AIActionPtr Get(u32 Id) const
取得
Definition: AIGenerator.cpp:67
AIの行動
Definition: AIGenerator.h:16