OSDN Git Service

GameEngine::WalkCreature()をCreature::Walk()へ移設(不完全) / GameEngine::WalkCreature()...
authorDeskull <desull@users.sourceforge.jp>
Tue, 20 Jan 2015 13:42:07 +0000 (22:42 +0900)
committerDeskull <desull@users.sourceforge.jp>
Tue, 20 Jan 2015 13:42:07 +0000 (22:42 +0900)
Deeangband/Creature.cpp
Deeangband/Creature.h
Deeangband/GameEngine.cpp
Deeangband/GameEngine.h
Deeangband/GameSurfaceSDL.h
Deeangband/Square.h

index 44dbc0d..fee2e71 100644 (file)
@@ -9,6 +9,10 @@
 #include "stdafx.h"
 #include "Creature.h"
 
+#include "GameSurface.h"
+#include "GameLogger.h"
+#include "GameWorld.h"
+
 #include "Field.h"
 #include "Floor.h"
 #include "Item.h"
@@ -467,4 +471,31 @@ namespace Deeangband
                return this->sightList[(ry + this->sightRange) * (this->sightRange * 2 + 1) + rx + this->sightRange];
        }
 
+       bool Creature::Walk(DIRECTION direction)
+       {
+               Coordinates nextPoint = this->position + Direction::DirectionVector[direction];
+               //Floor *floorPtr = fieldPtr->GetSquare(nextPoint)->GetFloorPtr();
+               Creature *targetPtr;
+
+               //! @note \88Ú\93®\90æ\82É\95Ê\82Ì\83N\83\8a\81[\83`\83\83\81[\82ª\91\8dÝ\82·\82é\82È\82ç\82Î\94\92\95º\8f\88\97\9d\82É\88Ú\8ds\82µ\82Ä FALSE
+               //targetPtr = gameWorld->GetCreatureFromPosition(creaturePtr->GetFieldID(), &nextPoint);
+               //if(targetPtr)
+               //{
+                       //this->gameLogger->CreaturesCombated(creaturePtr->GetName(), targetPtr->GetName());
+                       return false; //this->CombatCreatures(creaturePtr, targetPtr);
+               //}
+
+               //if(!this->CanEnterPosition(floorPtr))
+               //{
+                       //this->gameSurface->GameMessage("\8ds\82­\8eè\82ð\91j\82Ü\82ê\82Ä\82¢\82é\81B");
+               //      return false;
+               //}
+
+               //creaturePtr->Walk(this->gameLogger, direction);
+               //this->gameSurface->FocusField(creaturePtr->GetPosition());
+               this->UpdateFieldLore();
+               //this->gameSurface->GameMessage("");
+               return true;
+       }
+
 }
\ No newline at end of file
index d815bf1..7f8b68e 100644 (file)
 #include "Lore.h"
 #include "GameConstants.h"
 #include "GameInstance.h"
-#include "GameLogger.h"
 #include "GameMessage.h"
 #include "SavingTable.h"
 #include "Species.h"
 
 namespace Deeangband
 {
+       class GameLogger;
+       class GameSurface;
+       class GameWorld;
+
        class Field;
        class Floor;
        class Item;
@@ -501,6 +504,15 @@ namespace Deeangband
                 */
                bool Creature::InSight(int x, int y);
 
+               /*!
+                * @brief \83N\83\8a\81[\83`\83\83\81[\82ð\8ew\92è\82Ì\95û\8cü\82É\95à\8ds\82³\82¹\82é
+                * @param creaturePtr \83N\83\8a\81[\83`\83\83\81[\82Ì\8eQ\8fÆ\83|\83C\83\93\83^
+                * @param direction \95à\8ds\82·\82é\95û\8cü
+                * @return \88Ú\93®\82ª\8eÀ\8dÛ\82É\8ds\82í\82ê\82½\82çtrue
+                */
+               bool Creature::Walk(DIRECTION direction);
+
+
        };
 
 }
index bbe0d27..5fce52f 100644 (file)
@@ -80,64 +80,33 @@ namespace Deeangband
                        return PLAY_EXIT_QUIT;
                        break;
                case GAME_COMMAND_NORTH:
-                       this->WalkCreature(playerIt, DIRECTION_NORTH);
+                       playerIt->second.get()->Walk(DIRECTION_NORTH);
                        break;
                case GAME_COMMAND_NORTH_EAST:
-                       this->WalkCreature(playerIt, DIRECTION_NORTH_EAST);
+                       playerIt->second.get()->Walk(DIRECTION_NORTH_EAST);
                        break;
                case GAME_COMMAND_EAST:
-                       this->WalkCreature(playerIt, DIRECTION_EAST);
+                       playerIt->second.get()->Walk(DIRECTION_EAST);
                        break;
                case GAME_COMMAND_SOUTH_EAST:
-                       this->WalkCreature(playerIt, DIRECTION_SOUTH_EAST);
+                       playerIt->second.get()->Walk(DIRECTION_SOUTH_EAST);
                        break;
                case GAME_COMMAND_SOUTH:
-                       this->WalkCreature(playerIt, DIRECTION_SOUTH);
+                       playerIt->second.get()->Walk(DIRECTION_SOUTH);
                        break;
                case GAME_COMMAND_SOUTH_WEST:
-                       this->WalkCreature(playerIt, DIRECTION_SOUTH_WEST);
+                       playerIt->second.get()->Walk(DIRECTION_SOUTH_WEST);
                        break;
                case GAME_COMMAND_WEST:
-                       this->WalkCreature(playerIt, DIRECTION_WEST);
+                       playerIt->second.get()->Walk(DIRECTION_WEST);
                        break;
                case GAME_COMMAND_NORTH_WEST:
-                       this->WalkCreature(playerIt, DIRECTION_NORTH_WEST);
+                       playerIt->second.get()->Walk(DIRECTION_NORTH_WEST);
                        break;
                }
                return PLAY_EXIT_NONE;
        }
 
-       bool GameEngine::WalkCreature(CREATURE_IT creatureIt, DIRECTION direction)
-       {
-               return this->WalkCreature(creatureIt->second.get(), direction);
-       }
-
-       bool GameEngine::WalkCreature(Creature *creaturePtr, DIRECTION direction)
-       {
-               Coordinates nextPoint = creaturePtr->GetPosition() + Direction::DirectionVector[direction];
-               Floor *floorPtr = gameWorld->GetFloorFromPosition(creaturePtr->GetFieldID(), &nextPoint);
-               Creature *targetPtr;
-
-               //! @note \88Ú\93®\90æ\82É\95Ê\82Ì\83N\83\8a\81[\83`\83\83\81[\82ª\91\8dÝ\82·\82é\82È\82ç\82Î\94\92\95º\8f\88\97\9d\82É\88Ú\8ds\82µ\82Ä FALSE
-               targetPtr = gameWorld->GetCreatureFromPosition(creaturePtr->GetFieldID(), &nextPoint);
-               if(targetPtr)
-               {
-                       this->gameLogger->CreaturesCombated(creaturePtr->GetName(), targetPtr->GetName());
-                       return this->CombatCreatures(creaturePtr, targetPtr);
-               }
-
-               if(!creaturePtr->CanEnterPosition(floorPtr))
-               {
-                       this->gameSurface->GameMessage("\8ds\82­\8eè\82ð\91j\82Ü\82ê\82Ä\82¢\82é\81B");
-                       return false;
-               }
-
-               creaturePtr->Walk(this->gameLogger, direction);
-               this->gameSurface->FocusField(creaturePtr->GetPosition());
-               creaturePtr->UpdateFieldLore();
-               this->gameSurface->GameMessage("");
-               return true;
-       }
 
        bool GameEngine::CombatCreatures(Creature *attackerPtr, Creature *targetPtr)
        {
index 12125ba..3a4f55e 100644 (file)
@@ -55,16 +55,6 @@ namespace Deeangband
                PLAY_EXIT_CODE GameEngine::DoGameCommand(GAME_COMMAND command);
 
                /*!
-                * @brief \83N\83\8a\81[\83`\83\83\81[\82ð\8ew\92è\82Ì\95û\8cü\82É\95à\8ds\82³\82¹\82é
-                * @param creaturePtr \83N\83\8a\81[\83`\83\83\81[\82Ì\8eQ\8fÆ\83|\83C\83\93\83^
-                * @param direction \95à\8ds\82·\82é\95û\8cü
-                * @return \88Ú\93®\82ª\8eÀ\8dÛ\82É\8ds\82í\82ê\82½\82çtrue
-                */
-               bool GameEngine::WalkCreature(Creature *creaturePtr, DIRECTION direction);
-
-               bool GameEngine::WalkCreature(CREATURE_IT creaturePtr, DIRECTION direction);
-
-               /*!
                 * @brief \83N\83\8a\81[\83`\83\83\81[\93¯\8em\82Ì\94\92\95º\90í\82ð\8f\88\92u\82·\82é
                 * @param creaturePtr \8dU\8c\82\91¤\83N\83\8a\81[\83`\83\83\81[\82Ì\8eQ\8fÆ\83|\83C\83\93\83^
                 * @param targetPtr \96Ú\95W\91¤\83N\83\8a\81[\83`\83\83\81[\82Ì\8eQ\8fÆ\83|\83C\83\93\83^
index 43601b6..b807055 100644 (file)
@@ -200,49 +200,49 @@ namespace Deeangband
 
 
                /*!
-               * @brief \8ew\92è\82³\82ê\82½\83N\83\8a\81[\83`\83\83\81[\82Ì\83X\83e\81[\83^\83X\82ð\95\\8e¦\82·\82é
-               * @param creaturePtr \95\\8e¦\82µ\82½\82¢\83N\83\8a\81[\83`\83\83\81[\82Ì\8eQ\8fÆ\83|\83C\83\93\83^
-               * @return \82È\82µ
-               */
+                * @brief \8ew\92è\82³\82ê\82½\83N\83\8a\81[\83`\83\83\81[\82Ì\83X\83e\81[\83^\83X\82ð\95\\8e¦\82·\82é
+                * @param creaturePtr \95\\8e¦\82µ\82½\82¢\83N\83\8a\81[\83`\83\83\81[\82Ì\8eQ\8fÆ\83|\83C\83\93\83^
+                * @return \82È\82µ
+                */
                void GameSurfaceSDL::ViewCreatureStatus(Creature *creaturePtr);
 
                /*!
-               * @brief \83Q\81[\83\80\89æ\96Ê\8d\82É\83v\83\8c\83C\83\84\81[\8aÈ\97ª\8fî\95ñ\82ð\95\\8e¦\82·\82é\81B
-               * @param creaturePtr \95\\8e¦\82µ\82½\82¢\83N\83\8a\81[\83`\83\83\81[\82Ì\83C\83\93\83X\83^\83\93\83X\8eQ\8fÆ\83|\83C\83\93\83^\81BNULL\82È\82ç\82Î\94ñ\95\\8e¦\81B
-               * @return \82È\82µ
-               */
+                * @brief \83Q\81[\83\80\89æ\96Ê\8d\82É\83v\83\8c\83C\83\84\81[\8aÈ\97ª\8fî\95ñ\82ð\95\\8e¦\82·\82é\81B
+                * @param creaturePtr \95\\8e¦\82µ\82½\82¢\83N\83\8a\81[\83`\83\83\81[\82Ì\83C\83\93\83X\83^\83\93\83X\8eQ\8fÆ\83|\83C\83\93\83^\81BNULL\82È\82ç\82Î\94ñ\95\\8e¦\81B
+                * @return \82È\82µ
+                */
                void GameSurfaceSDL::SetSideStatusCreature(Creature *creaturePtr);
 
                /*!
-               * @brief \95\\8e¦\82·\82é\83t\83\8d\83A\82ð\90Ø\82è\91Ö\82¦\82é
-               * @param fieldPtr \95\\8e¦\82µ\82½\82¢\83t\83\8d\83A\82Ì\8eQ\8fÆ\83|\83C\83\93\83^
-               * @return \82È\82µ
-               */
+                * @brief \95\\8e¦\82·\82é\83t\83\8d\83A\82ð\90Ø\82è\91Ö\82¦\82é
+                * @param fieldPtr \95\\8e¦\82µ\82½\82¢\83t\83\8d\83A\82Ì\8eQ\8fÆ\83|\83C\83\93\83^
+                * @return \82È\82µ
+                */
                void GameSurfaceSDL::SetField(Field *fieldPtr);
 
                /*!
-               * @brief \83R\83\93\83X\83g\83\89\83N\83^
-               * @param gameWorld \8f\88\97\9d\82µ\82½\82¢GameWorld\83C\83\93\83X\83^\83\93\83X
-               */
+                * @brief \83R\83\93\83X\83g\83\89\83N\83^
+                * @param gameWorld \8f\88\97\9d\82µ\82½\82¢GameWorld\83C\83\93\83X\83^\83\93\83X
+                */
                GameSurfaceSDL::GameSurfaceSDL(GameWorld *gameWorld);
 
                /*!
-               * @brief \83f\83X\83g\83\89\83N\83^
-               */
+                * @brief \83f\83X\83g\83\89\83N\83^
+                */
                GameSurfaceSDL::~GameSurfaceSDL(void);
 
                /*!
-               * @brief \83v\83\8c\83C\83\84\81[\82©\82ç\83R\83}\83\93\83h\82ð\8eæ\93¾\82·\82é
-               * @return \83Q\81[\83\80\83R\83}\83\93\83hID
-               */
+                * @brief \83v\83\8c\83C\83\84\81[\82©\82ç\83R\83}\83\93\83h\82ð\8eæ\93¾\82·\82é
+                * @return \83Q\81[\83\80\83R\83}\83\93\83hID
+                */
                GAME_COMMAND GameSurfaceSDL::GetCommand(const CREATURE_IT& subjectCreatureIt);
 
                /*!
-               * @brief \83t\83\8d\83A\95\\8e¦\82Ì\83t\83H\81[\83J\83X\82ð\95Ï\8dX\82·\82é
-               * @param x \8aî\8f\80X\8dÀ\95W
-               * @param y \8aî\8f\80Y\8dÀ\95W
-               * @return \82È\82µ
-               */
+                * @brief \83t\83\8d\83A\95\\8e¦\82Ì\83t\83H\81[\83J\83X\82ð\95Ï\8dX\82·\82é
+                * @param x \8aî\8f\80X\8dÀ\95W
+                * @param y \8aî\8f\80Y\8dÀ\95W
+                * @return \82È\82µ
+                */
                void GameSurfaceSDL::FocusField(MAP_LENGTH x, MAP_LENGTH y);
 
                /*!
index 182da6f..17b0bf9 100644 (file)
@@ -71,25 +71,25 @@ namespace Deeangband
                * @brief \91Î\89\9e\82·\82é\8f°\92n\8c`\82Ì\83^\83O\82ð\95Ô\82·\81B
                * @return \91Î\89\9e\82·\82é\8f°\92n\8c`\83^\83O
                */
-               TAG GetFloorTag(void);
+               TAG Square::GetFloorTag(void);
 
                /*!
                * @brief \91Î\89\9e\82·\82é\8f°\92n\8c`\82Ì\83^\83O\82ð\95Ô\82·\81B
                * @return \91Î\89\9e\82·\82é\8f°\92n\8c`\83^\83O
                */
-               TAG GetAirTag(void);
+               TAG Square::GetAirTag(void);
 
                /*!
                * @brief \91Î\89\9e\82·\82é\8bó\8aÔ\92n\8c`\82Ì\83^\83O\82ð\95Ô\82·\81B
                * @return \91Î\89\9e\82·\82é\8f°\92n\8c`\83^\83O
                */
-               TAG GetSpaceTag(void);
+               TAG Square::GetSpaceTag(void);
 
                /*!
                 * @brief \91Î\89\9e\82·\82é\92n\8c`\82Ì\83|\83C\83\93\83^\82ð\95Ô\82·\81B
                 * @return \91Î\89\9e\82·\82é\92n\8c`\82Ì\8eQ\8fÆ\83|\83C\83\93\83^
                 */
-               Floor* GetFloorPtr(void);
+               Floor* Square::GetFloorPtr(void);
 
                /*!
                 * @brief \92n\8c`\82ª\95Ç\82Å\8eÕ\95Á\82³\82ê\82Ä\82¢\82é\82©\82ð\95Ô\82·