• R/O
  • HTTP
  • SSH
  • HTTPS

Deeangband-new: コミット

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


コミットメタ情報

リビジョンc298a2f27fe32ac47204312c33fa83b3d60daac4 (tree)
日時2017-09-24 10:54:18
作者Deskull <desull@user...>
コミッターDeskull

ログメッセージ

Floor::Scatter()、ACTION_RESULT列挙体を定義と適用。 / Define and apply Floor::Scatter() and enum ACTION_RESULT.

変更サマリ

差分

--- a/Deeangband/Creature.cpp
+++ b/Deeangband/Creature.cpp
@@ -469,7 +469,7 @@ namespace Deeangband
469469 return this->sightList[(ry + this->sightRange) * (this->sightRange * 2 + 1) + rx + this->sightRange];
470470 }
471471
472- bool Creature::Walk(DIRECTION direction)
472+ ACTION_RESULT Creature::Walk(DIRECTION direction)
473473 {
474474 Coordinates nextPoint = this->position + Direction::DirectionVector[direction];
475475 Square *nextSquarePtr = fieldPtr->GetSquare(nextPoint);
@@ -479,7 +479,7 @@ namespace Deeangband
479479 if(!nextSquarePtr)
480480 {
481481 GameElement::GameSurfacePtr->GameMessage("時空の壁に行く手を阻まれている。");
482- return false;
482+ return AR_FAILURE;
483483 }
484484
485485 //! @note 移動先に別のクリーチャーが存在するならば白兵処理に移行して FALSE
@@ -488,20 +488,38 @@ namespace Deeangband
488488 {
489489 this->Melee(targetPtr);
490490 GameElement::GameLoggerPtr->CreaturesCombated(this->GetName(), targetPtr->GetName());
491- return false;
491+ return AR_FAILURE;
492492 }
493493
494494 floorPtr = nextSquarePtr->GetFloorPtr();
495495 if(!this->CanEnterPosition(floorPtr))
496496 {
497497 GameElement::GameSurfacePtr->GameMessage("行く手を阻まれている。");
498- return false;
498+ return AR_FAILURE;
499499 }
500500
501501 this->position = nextPoint;
502502 this->UpdateFieldLore();
503503 GameElement::GameSurfacePtr->GameMessage("");
504- return true;
504+ return AR_SUCCESS;
505+ }
506+
507+ ACTION_RESULT Creature::Open(DIRECTION direction)
508+ {
509+ // TODO
510+ return AR_SUCCESS;
511+ }
512+
513+ ACTION_RESULT Creature::Close(DIRECTION direction)
514+ {
515+ // TODO
516+ return AR_SUCCESS;
517+ }
518+
519+ ACTION_RESULT Creature::Disarm(DIRECTION direction)
520+ {
521+ // TODO
522+ return AR_SUCCESS;
505523 }
506524
507525 PLAY_EXIT_CODE Creature::DoGameCommand(GAME_COMMAND command)
--- a/Deeangband/Creature.h
+++ b/Deeangband/Creature.h
@@ -494,15 +494,39 @@ namespace Deeangband
494494 * @brief 指定地点がクリーチャーの視界に入っているかを返す。
495495 * @return 視界に入っているなら true
496496 */
497- bool Creature::InSight(int x, int y);
497+ bool Creature::InSight(MAP_LENGTH x, MAP_LENGTH y);
498498
499499 /*!
500- * @brief クリーチャーを指定の方向に歩行させる
500+ * @brief クリーチャーが指定の方向に歩行する
501501 * @param creaturePtr クリーチャーの参照ポインタ
502502 * @param direction 歩行する方向
503503 * @return 移動が実際に行われたらtrue
504504 */
505- bool Creature::Walk(DIRECTION direction);
505+ ACTION_RESULT Creature::Walk(DIRECTION direction);
506+
507+ /*!
508+ * @brief クリーチャーが指定の方向にあるものを開ける
509+ * @param creaturePtr クリーチャーの参照ポインタ
510+ * @param direction 開けるものの方向
511+ * @return
512+ */
513+ ACTION_RESULT Creature::Open(DIRECTION direction);
514+
515+ /*!
516+ * @brief クリーチャーが指定の方向にあるものを閉じる
517+ * @param creaturePtr クリーチャーの参照ポインタ
518+ * @param direction 閉じるものの方向
519+ * @return
520+ */
521+ ACTION_RESULT Creature::Close(DIRECTION direction);
522+
523+ /*!
524+ * @brief クリーチャーが指定の方向にあるものを解除
525+ * @param creaturePtr クリーチャーの参照ポインタ
526+ * @param direction 解除先の方向
527+ * @return
528+ */
529+ ACTION_RESULT Creature::Disarm(DIRECTION direction);
506530
507531 /*!
508532 * @brief 受け取ったゲームコマンドを処理する
--- a/Deeangband/Deeangband.h
+++ b/Deeangband/Deeangband.h
@@ -113,6 +113,16 @@ namespace Deeangband
113113 CS_MAX /*!<総数:6*/
114114 };
115115
116+ /*!
117+ * @brief プレイヤーの行動処理の結果
118+ */
119+ typedef enum ACTION_RESULT
120+ {
121+ AR_SUCCESS, /*!< 成功した */
122+ AR_FAILURE, /*!< 未定義の理由で失敗した */
123+ } ACTION_RESULT;
124+
125+
116126 typedef int BASE_STATUS; //!< 基礎能力値の変数型
117127 typedef int LEVEL; //!< LEVELの変数型
118128 typedef int HP; //!< HPの変数型
@@ -143,7 +153,7 @@ typedef int ACTION_WAIT; //!<
143153 typedef int SKILL_EXP; //!<スキル経験値
144154 typedef int SKILL_RANK; //!<スキルランク
145155 typedef int POSITION; //!<座標
146-typedef int ERRR; //!<エラーコード
156+//typedef int ACTION_RESULT; //!<ゲーム中の行動処理コード
147157
148158 };
149159
--- a/Deeangband/Field.cpp
+++ b/Deeangband/Field.cpp
@@ -452,4 +452,9 @@ namespace Deeangband
452452 return SightPass[y * (this->width * 2 + 1) + x];
453453 }
454454
455+ Coordinates* Field::Scatter(MAP_LENGTH y, MAP_LENGTH x, MAP_LENGTH distance)
456+ {
457+ // TODO
458+ return NULL;
459+ }
455460 }
\ No newline at end of file
--- a/Deeangband/Field.h
+++ b/Deeangband/Field.h
@@ -185,6 +185,15 @@ namespace Deeangband
185185 */
186186 bool Field::GetSightPass(MAP_LENGTH x, MAP_LENGTH y);
187187
188+ /*!
189+ * @brief 指定地点からのばら撒き座標を返す。
190+ * @param x 指定地点X座標
191+ * @param y 指定地点Y座標
192+ * @param distance 限界距離
193+ * @return 計算結果の座標、指定不能ならばNULL。
194+ */
195+ Coordinates* Field::Scatter(MAP_LENGTH y, MAP_LENGTH x, MAP_LENGTH distance);
196+
188197 };
189198
190199 }
--- a/Deeangband/HavePosition.cpp
+++ b/Deeangband/HavePosition.cpp
@@ -56,17 +56,16 @@ namespace Deeangband
5656 return this->fieldID;
5757 }
5858
59- int HavePosition::Move(ID fieldID, int x, int y)
59+ ACTION_RESULT HavePosition::Move(ID fieldID, int x, int y)
6060 {
6161 this->fieldID = fieldID;
6262 this->position.Set(x, y);
63- return 0;
63+ return AR_SUCCESS;
6464 }
6565
66- int HavePosition::Move(ID fieldID, Coordinates coord)
66+ ACTION_RESULT HavePosition::Move(ID fieldID, Coordinates coord)
6767 {
68- this->Move(fieldID, coord.GetX(), coord.GetY());
69- return 0;
68+ return this->Move(fieldID, coord.GetX(), coord.GetY());
7069 }
7170
7271 }
--- a/Deeangband/HavePosition.h
+++ b/Deeangband/HavePosition.h
@@ -100,7 +100,7 @@ namespace Deeangband
100100 * @param y 移動先y座標
101101 * @return 移動できなかった場合のエラーID
102102 */
103- ERRR HavePosition::Move(ID fieldID, POSITION x, POSITION y);
103+ ACTION_RESULT HavePosition::Move(ID fieldID, POSITION x, POSITION y);
104104
105105 /*!
106106 * @brief 所定フロアの所定座標に移動する
@@ -108,7 +108,7 @@ namespace Deeangband
108108 * @param coord 移動先座標
109109 * @return 移動できなかった場合のエラーID
110110 */
111- ERRR HavePosition::Move(ID fieldID, Coordinates coord);
111+ ACTION_RESULT HavePosition::Move(ID fieldID, Coordinates coord);
112112 };
113113 }
114114
旧リポジトリブラウザで表示