• R/O
  • HTTP
  • SSH
  • HTTPS

Deeangband-new: Commit

Deeangbandのフルスクラッチ新ソースコード。
BSD系ライセンスを採用予定。


Commit MetaInfo

Revision0b416ef6508cf8eb87fb79b9542cc3c697fbf36a (tree)
Time2015-01-26 23:38:46
AuthorDeskull <desull@user...>
CommiterDeskull

Log Message

Square::SetFloorTag()をSetFloor()に変更して修正。 / Rename Square::SetFloorTag() to SetFloor() and Fix.
GameWorldコンストラクタから、GameWorld::Initialize()を分離。 / Split GameWorld::Initialize() from GameWorld constructor.

Change Summary

Incremental Difference

--- a/Deeangband/Field.cpp
+++ b/Deeangband/Field.cpp
@@ -32,11 +32,11 @@ namespace Deeangband
3232 squares[y].push_back(boost::shared_ptr<Square>(new Square()));
3333 if(Dice::Cast(1, 4) == 3)
3434 {
35- squares[y][x]->SetFloorTag(dungeonPtr->GetInnerWallFloorTag());
35+ squares[y][x]->SetFloor(dungeonPtr->GetInnerWallFloorTag());
3636 }
3737 else
3838 {
39- squares[y][x]->SetFloorTag(dungeonPtr->GetFloorFloorTag());
39+ squares[y][x]->SetFloor(dungeonPtr->GetFloorFloorTag());
4040 }
4141 }
4242 }
@@ -216,7 +216,7 @@ namespace Deeangband
216216 squarePtr = this->GetSquare(x, y);
217217 if(squarePtr)
218218 {
219- squarePtr->SetFloorTag(dungeonPtr->GetFloorFloorTag());
219+ squarePtr->SetFloor(dungeonPtr->GetFloorFloorTag());
220220 }
221221 }
222222 }
@@ -224,9 +224,9 @@ namespace Deeangband
224224 for(y = sy; y <= ey; y++)
225225 {
226226 squarePtr = this->GetSquare(sx, y);
227- squarePtr->SetFloorTag(dungeonPtr->GetInnerWallFloorTag());
227+ squarePtr->SetFloor(dungeonPtr->GetInnerWallFloorTag());
228228 squarePtr = this->GetSquare(ex, y);
229- squarePtr->SetFloorTag(dungeonPtr->GetInnerWallFloorTag());
229+ squarePtr->SetFloor(dungeonPtr->GetInnerWallFloorTag());
230230 wallVec.push_back(boost::make_shared<Coordinates>(sx, y));
231231 wallVec.push_back(boost::make_shared<Coordinates>(ex, y));
232232 }
@@ -234,14 +234,14 @@ namespace Deeangband
234234 for(x = sx + 1; x < ex; x++)
235235 {
236236 squarePtr = this->GetSquare(x, sy);
237- squarePtr->SetFloorTag(dungeonPtr->GetInnerWallFloorTag());
237+ squarePtr->SetFloor(dungeonPtr->GetInnerWallFloorTag());
238238 squarePtr = this->GetSquare(x, ey);
239- squarePtr->SetFloorTag(dungeonPtr->GetInnerWallFloorTag());
239+ squarePtr->SetFloor(dungeonPtr->GetInnerWallFloorTag());
240240 wallVec.push_back(boost::make_shared<Coordinates>(x, sy));
241241 wallVec.push_back(boost::make_shared<Coordinates>(x, ey));
242242 }
243243
244- this->GetSquare(*wallVec[Dice::Rand0(wallVec.size())].get())->SetFloorTag(dungeonPtr->GetFloorFloorTag());
244+ this->GetSquare(*wallVec[Dice::Rand0(wallVec.size())].get())->SetFloor(dungeonPtr->GetFloorFloorTag());
245245 }
246246
247247 void Field::createRectRoom(Coordinates& leftTop, Coordinates& rightBottom)
--- a/Deeangband/GameEngine.cpp
+++ b/Deeangband/GameEngine.cpp
@@ -28,6 +28,9 @@ namespace Deeangband
2828 GameElement::GameSurfacePtr = gameSurface;
2929 GameElement::GameLoggerPtr = gameLogger;
3030
31+ Dice::Initialize();
32+ gameWorld->Initialize();
33+
3134 gameSurface->SetField(gameWorld->GetField(0));
3235 gameSurface->SetSideStatusCreature(gameWorld->GetCreature(0));
3336 this->gameLogger->PutLog("GameEngine開始");
--- a/Deeangband/GameWorld.cpp
+++ b/Deeangband/GameWorld.cpp
@@ -49,11 +49,7 @@ namespace Deeangband
4949
5050 GameWorld::GameWorld(void)
5151 {
52- int i;
53- Dice::Initialize();
5452 XMLLoad();
55- std::map<ID, boost::shared_ptr<Field>>::iterator fieldIt;
56- std::map<TAG, boost::shared_ptr<Species>>::iterator speciesIt;
5753
5854 this->itemID = 0;
5955 this->trapID = 0;
@@ -61,6 +57,13 @@ namespace Deeangband
6157 this->fieldID = 0;
6258 this->gameTime = 0;
6359
60+ }
61+
62+ void GameWorld::Initialize(void)
63+ {
64+ int i;
65+ std::map<ID, boost::shared_ptr<Field>>::iterator fieldIt;
66+ std::map<TAG, boost::shared_ptr<Species>>::iterator speciesIt;
6467 fieldList.emplace(0, boost::make_shared<Field>(dungeonList.find("VANILLA_WOMB"), 1));
6568 fieldIt = fieldList.find(0);
6669
@@ -70,15 +73,14 @@ namespace Deeangband
7073 speciesIt = speciesList.find("VANILLA_RAVING_LUNATIC");
7174 GameWorld::GenerateCreature(speciesIt, fieldIt, 5, 5);
7275
73-
7476 for(i = 0; i < MAX_KARMAS; i++)
7577 {
7678 karmaList.emplace("VANILLA_", boost::make_shared<Karma>());
7779 }
78-
7980 playerIt = creatureList.begin()++;
8081 }
8182
83+
8284 GameWorld::~GameWorld(void)
8385 {
8486 }
--- a/Deeangband/GameWorld.h
+++ b/Deeangband/GameWorld.h
@@ -305,17 +305,23 @@ namespace Deeangband
305305 public:
306306
307307 /*!
308- * @brief GameWorldクラスのコンストラクタ
309- * @param gSurface ゲームのインターフェイスとなる GameSurface 参照
310- */
308+ * @brief GameWorldクラスのコンストラクタ
309+ * @param gSurface ゲームのインターフェイスとなる GameSurface 参照
310+ */
311311 GameWorld::GameWorld(void);
312312
313313 /*!
314- * @brief GameWorldクラスのデストラクタ
315- */
314+ * @brief GameWorldクラスのデストラクタ
315+ */
316316 GameWorld::~GameWorld(void);
317317
318318 /*!
319+ * @brief ゲーム世界の初期生成を行う
320+ */
321+ void GameWorld::Initialize(void);
322+
323+
324+ /*!
319325 * @brief クリーチャーを生成しGameWorld中の諸要素と連携させる
320326 * @param creatureTag クリーチャータグ
321327 * @return 生成に成功した場合trueを返す
--- a/Deeangband/Square.cpp
+++ b/Deeangband/Square.cpp
@@ -52,9 +52,10 @@ namespace Deeangband
5252 return this->spaceTag;
5353 }
5454
55- bool Square::SetFloorTag(TAG tag)
55+ bool Square::SetFloor(TAG tag)
5656 {
5757 this->floorTag = tag;
58+ this->floorPtr = GameElement::GameWorldPtr->GetFloorList()->operator[](tag).get();
5859 return true;
5960 }
6061
--- a/Deeangband/Square.h
+++ b/Deeangband/Square.h
@@ -70,7 +70,7 @@ namespace Deeangband
7070 * @return タグの変更ができた場合trueを返す。
7171 * @todo 正規のタグかどうか判定する機能を実装する。
7272 */
73- bool Square::SetFloorTag(TAG tag);
73+ bool Square::SetFloor(TAG tag);
7474
7575 /*!
7676 * @brief 対応する床地形のタグを返す。
Show on old repository browser