D'angband  0.0.0
Deeangband
 全て クラス 名前空間 ファイル 関数 変数 型定義 列挙型 列挙値 フレンド マクロ定義 ページ
Deeangband::Field クラス

フロアのクラス [詳解]

#include <Field.h>

Deeangband::Field の継承関係図
Deeangband::Field 連携図

公開メンバ関数

 Field::Field (std::map< TAG, boost::shared_ptr< Dungeon >>::iterator dungeonIt, DEPTH depth)
 Fieldクラスコンストラクタ(TAG,Dungeonイテレータからの生成) [詳解]
 
 Field::Field ()
 Fieldクラスコンストラクタ [詳解]
 
 Field::‾Field ()
 Fieldクラスデストラクタ [詳解]
 
void Field::WipeData (void)
 ダミーデータによる初期化 [詳解]
 
MAP_LENGTH Field::GetWidth (void)
 フロアの横サイズを得る [詳解]
 
MAP_LENGTH Field::GetHeight (void)
 フロアの縦サイズを得る [詳解]
 
bool Field::SetSize (MAP_LENGTH width, MAP_LENGTH height)
 フロアのサイズを設定する [詳解]
 
SquareField::GetSquare (MAP_LENGTH x, MAP_LENGTH y)
 フロアの該当座標のマスを返す。 [詳解]
 
bool Field::GenerateTrap (std::map< TAG, boost::shared_ptr< TrapBase >>::iterator trapBaseIt, Coordinates *position)
 フロアの該当座標にトラップを生成する [詳解]
 
- 基底クラス Deeangband::GameInstance に属する継承公開メンバ関数
 GameInstance::GameInstance (void)
 GameInstanceクラスコンストラクタ [詳解]
 
virtual GameInstance::‾GameInstance (void)
 GameInstanceクラスデストラクタ [詳解]
 
virtual void GameInstance::WipeData (void)
 ダミーデータによる初期化 [詳解]
 
NAME GameInstance::GetName (void)
 名前を取得する [詳解]
 
DESCRIPTION GameInstance::GetDescription (void)
 解説を取得する [詳解]
 
GameWorldGameInstance::GetGameWorld (void)
 所属元のGameWorldインスタンスを返す [詳解]
 
bool GameInstance::IsValidGenerated (void)
 所属元のGameWorldインスタンスを返す [詳解]
 

非公開メンバ関数

template<class Archive >
void serialize (Archive &archive, const unsigned int version)
 クラスのシリアライズを設定する [詳解]
 

非公開変数類

std::vector< std::vector
< boost::shared_ptr< Square > > > 
squares
 フロアマスの配列 [詳解]
 
std::vector< boost::shared_ptr
< Creature > > 
creatures
 クリーチャーインスタンスの配列 [詳解]
 
std::vector< boost::shared_ptr
< Door > > 
doors
 ドアインスタンスの配列 [詳解]
 
std::vector< boost::shared_ptr
< Trap > > 
traps
 トラップインスタンスの配列 [詳解]
 
std::vector< boost::shared_ptr
< Item > > 
items
 アイテムインスタンスの配列 [詳解]
 
MAP_LENGTH width
 フロアの横サイズ [詳解]
 
MAP_LENGTH height
 フロアの縦サイズ [詳解]
 
bool generated
 フロア生成済み [詳解]
 
TAG dungeonTag
 生成元ダンジョンタグ [詳解]
 

フレンド

class boost::serialization::access
 

その他の継承メンバ

- 基底クラス Deeangband::GameInstance に属する継承限定公開変数類
NAME name
 名前 [詳解]
 
DESCRIPTION description
 解説 [詳解]
 
bool validGenerated
 正しく生成されたかの判定フラグ [詳解]
 

詳解

フロアのクラス

Field.h30 行目に定義があります。

関数詳解

Deeangband::Field::Field::Field ( std::map< TAG, boost::shared_ptr< Dungeon >>::iterator  dungeonIt,
DEPTH  depth 
)

Fieldクラスコンストラクタ(TAG,Dungeonイテレータからの生成)

引数
dungeonPtr生成元ダンジョンイテレータ
depth生成階層

本コンストラクタは、ダンジョン情報と生成階を元にフロアを生成する、恐らく最も実用の機会の多いコンストラクタになる。

処理の流れ

  • フロアサイズの決定
  • 外壁地形での全フロア充填
todo:
Dungeon情報を基にしたコンストラクタの生成を実装
Deeangband::Field::Field::Field ( )

Fieldクラスコンストラクタ

bool Deeangband::Field::Field::GenerateTrap ( std::map< TAG, boost::shared_ptr< TrapBase >>::iterator  trapBaseIt,
Coordinates position 
)

フロアの該当座標にトラップを生成する

引数
trapBaseTag配置するトラップ種別タグ
position配置したい座標
戻り値
生成に成功した場合trueを返す。

GenerateTrap関数はタグで指示されたトラップ種別のトラップをフロアの所定の位置に配置する。

todo:
Field::GenerateTrapの実装
MAP_LENGTH Deeangband::Field::Field::GetHeight ( void  )

フロアの縦サイズを得る

戻り値
フロアの縦サイズ
Square* Deeangband::Field::Field::GetSquare ( MAP_LENGTH  x,
MAP_LENGTH  y 
)

フロアの該当座標のマスを返す。

戻り値
該当するマスインスタンスの参照ポインタ
MAP_LENGTH Deeangband::Field::Field::GetWidth ( void  )

フロアの横サイズを得る

戻り値
フロアの横サイズ
bool Deeangband::Field::Field::SetSize ( MAP_LENGTH  width,
MAP_LENGTH  height 
)

フロアのサイズを設定する

引数
widthフロアの横サイズ
heightフロアの縦サイズ
戻り値
処理に成功した場合trueを返す
todo:
変更された場合のフロア配列のリサイズを実装
void Deeangband::Field::Field::WipeData ( void  )

ダミーデータによる初期化

戻り値
なし
Deeangband::Field::Field::‾Field ( )

Fieldクラスデストラクタ

todo:
フロアを完全消去する際に、同フロアに配置されるクリーチャー、アイテム、ドア、トラップ類を消去し、ユニーク性のあるものなどについて出現状態を調整すること。
template<class Archive >
void Deeangband::Field::serialize ( Archive &  archive,
const unsigned int  version 
)
inlineprivate

クラスのシリアライズを設定する

引数
archiveアーカイブ化するクラスのアドレス
versionファイルバージョン
戻り値
XMLSerializeテンプレート

Field.h51 行目に定義があります。

52  {
53  if(version >= 0)
54  {
55  archive & boost::serialization::make_nvp("Squares", squares);
56  archive & boost::serialization::make_nvp("Doors", doors);
57  archive & boost::serialization::make_nvp("Traps", traps);
58  archive & boost::serialization::make_nvp("Items", items);
59  archive & boost::serialization::make_nvp("Doors", doors);
60  archive & boost::serialization::make_nvp("Width", width);
61  archive & boost::serialization::make_nvp("Height", height);
62  }
63  }
std::vector< boost::shared_ptr< Door > > doors
ドアインスタンスの配列
Definition: Field.h:35
MAP_LENGTH width
フロアの横サイズ
Definition: Field.h:38
std::vector< std::vector< boost::shared_ptr< Square > > > squares
フロアマスの配列
Definition: Field.h:33
MAP_LENGTH height
フロアの縦サイズ
Definition: Field.h:39
std::vector< boost::shared_ptr< Item > > items
アイテムインスタンスの配列
Definition: Field.h:37
std::vector< boost::shared_ptr< Trap > > traps
トラップインスタンスの配列
Definition: Field.h:36

フレンドと関連関数の詳解

friend class boost::serialization::access
friend

Field.h43 行目に定義があります。

メンバ詳解

std::vector<boost::shared_ptr<Creature> > Deeangband::Field::creatures
private

クリーチャーインスタンスの配列

Field.h34 行目に定義があります。

std::vector<boost::shared_ptr<Door> > Deeangband::Field::doors
private

ドアインスタンスの配列

Field.h35 行目に定義があります。

TAG Deeangband::Field::dungeonTag
private

生成元ダンジョンタグ

Field.h41 行目に定義があります。

bool Deeangband::Field::generated
private

フロア生成済み

Field.h40 行目に定義があります。

MAP_LENGTH Deeangband::Field::height
private

フロアの縦サイズ

Field.h39 行目に定義があります。

std::vector<boost::shared_ptr<Item> > Deeangband::Field::items
private

アイテムインスタンスの配列

Field.h37 行目に定義があります。

std::vector<std::vector<boost::shared_ptr<Square> > > Deeangband::Field::squares
private

フロアマスの配列

Field.h33 行目に定義があります。

std::vector<boost::shared_ptr<Trap> > Deeangband::Field::traps
private

トラップインスタンスの配列

Field.h36 行目に定義があります。

MAP_LENGTH Deeangband::Field::width
private

フロアの横サイズ

Field.h38 行目に定義があります。


このクラス詳解は次のファイルから抽出されました: