OSDN Git Service

Creatureクラスにコンストラクタ1つ追加。 / Add another constructor of Creature class.
authorDeskull <desull@users.sourceforge.jp>
Fri, 9 Jan 2015 12:31:46 +0000 (21:31 +0900)
committerDeskull <desull@users.sourceforge.jp>
Fri, 9 Jan 2015 12:31:46 +0000 (21:31 +0900)
Deeangband/Creature.cpp
Deeangband/Creature.h
Deeangband/Field.cpp
Deeangband/Field.h
Deeangband/HavePosition.h

index 1ae2753..944b665 100644 (file)
@@ -81,26 +81,39 @@ namespace Deeangband
                11100000000, // Lv60\93\9e\92B\83\\83E\83\8b
        };
 
-       Creature::Creature(std::map<TAG, boost::shared_ptr<Species>>::iterator speciesIt) : GameInstance(), HaveSymbol(), HaveHp(), HaveGameTime(), HavePosition(), HaveInventory(), HaveSize()
+       Creature::Creature(std::map<TAG, boost::shared_ptr<Species>>::iterator speciesIt)
+               : GameInstance(), HaveSymbol(), HaveHp(), HaveGameTime(), HavePosition(), HaveInventory(), HaveSize()
        {
                WipeData();
                SetSpeciesData(&(*speciesIt->second));
        }
 
-       Creature::Creature(std::map<TAG, boost::shared_ptr<Species>>::iterator speciesIt, ID FieldID, Coordinates *coordinates) : GameInstance(), HaveSymbol(), HaveHp(), HaveGameTime(), HavePosition(fieldID, coordinates), HaveInventory(), HaveSize()
+       Creature::Creature(std::map<TAG, boost::shared_ptr<Species>>::iterator speciesIt, ID FieldID, Coordinates *coordinates)
+               : GameInstance(), HaveSymbol(), HaveHp(), HaveGameTime(), HavePosition(fieldID, coordinates), HaveInventory(), HaveSize()
        {
                this->fieldID = FieldID;
                WipeData();
                SetSpeciesData(&(*speciesIt->second));
        }
 
-       Creature::Creature(std::map<TAG, boost::shared_ptr<Species>>::iterator speciesIt, ID FieldID, int x, int y) : GameInstance(), HaveSymbol(), HaveHp(), HaveGameTime(), HavePosition(fieldID, x, y), HaveInventory(), HaveSize()
+       Creature::Creature(std::map<TAG, boost::shared_ptr<Species>>::iterator speciesIt, ID FieldID, MAP_LENGTH x, MAP_LENGTH y)
+               : GameInstance(), HaveSymbol(), HaveHp(), HaveGameTime(), HavePosition(fieldID, x, y), HaveInventory(), HaveSize()
        {
                this->fieldID = FieldID;
                WipeData();
                SetSpeciesData(&(*speciesIt->second));
        }
 
+       Creature::Creature(std::map<TAG, boost::shared_ptr<Species>>::iterator* speciesIt, std::map<ID, boost::shared_ptr<Field>>::iterator* fieldIt, MAP_LENGTH x, MAP_LENGTH y)
+               : GameInstance(), HaveSymbol(), HaveHp(), HaveGameTime(), HavePosition(fieldID, x, y), HaveInventory(), HaveSize()
+       {
+               this->fieldID = (*fieldIt)->first;
+               this->fieldPtr = (*fieldIt)->second;
+               WipeData();
+               SetSpeciesData((*speciesIt)->second.get());
+       }
+
+
        Creature::Creature(void)
        {
                WipeData();
index b3d65e5..708d8ad 100644 (file)
@@ -110,18 +110,19 @@ namespace Deeangband
 
                Lore lore; //!< \8bL\89¯\8fî\95ñ
                std::map<int, std::map<int, bool>> sight; //!<\8e\8b\8aE\8fî\95ñ
+               std::vector<bool> sightList; //!<\8e\8b\8aE\8fî\95ñ
 
                /*!
-               * @brief \83N\83\8a\81[\83`\83\83\81[\8e\80\96S\8e\9e\82Ì\8f\88\97\9d\82ð\8ds\82¤
-               * @return \82È\82µ
-               */
+                * @brief \83N\83\8a\81[\83`\83\83\81[\8e\80\96S\8e\9e\82Ì\8f\88\97\9d\82ð\8ds\82¤
+                * @return \82È\82µ
+                */
                void Creature::die(void);
 
                /*!
-               * @brief \83N\83\8a\81[\83`\83\83\81[\82Ì\8c»MP\82ð\91\9d\8c¸\82³\82¹\82é
-               * @param amount \91\9d\8c¸MP\97Ê
-               * @return \82È\82µ
-               */
+                * @brief \83N\83\8a\81[\83`\83\83\81[\82Ì\8c»MP\82ð\91\9d\8c¸\82³\82¹\82é
+                * @param amount \91\9d\8c¸MP\97Ê
+                * @return \82È\82µ
+                */
                void Creature::calcMP(MP amount);
 
                /*!
@@ -202,6 +203,15 @@ namespace Deeangband
                Creature::Creature(std::map<TAG, boost::shared_ptr<Species>>::iterator speciesIt, ID FieldID, int x, int y);
 
                /*! 
+                * @brief Creature\83N\83\89\83X\83R\83\93\83X\83g\83\89\83N\83^(GameElement\83\81\83\93\83o\91Î\89\9e)
+                * @param speciesIt \90\90¬\8c³\82Æ\82È\82é\83N\83\8a\81[\83`\83\83\81[\83C\83e\83\8c\81[\83^\8eQ\8fÆ
+                * @param fieldIt \90\90¬\90æ\83t\83B\81[\83\8b\83h\83C\83e\83\8c\81[\83^\8eQ\8fÆ
+                * @param x \90\90¬\90æX\8dÀ\95W
+                * @param y \90\90¬\90æY\8dÀ\95W
+                */
+               Creature::Creature(std::map<TAG, boost::shared_ptr<Species>>::iterator* speciesIt, std::map<ID, boost::shared_ptr<Field>>::iterator* fieldIt, MAP_LENGTH x, MAP_LENGTH y);
+
+               /*! 
                 * @brief Creature\83N\83\89\83X\83R\83\93\83X\83g\83\89\83N\83^
                 */
                Creature::Creature(void);
index 4ef1a39..3b7c1bd 100644 (file)
@@ -187,6 +187,10 @@ namespace Deeangband
 
        }
 
+       void Field::GetSight(std::vector<Coordinates> &coordVec, int baseX, int baseY)
+       {
+       }
+
        bool Field::HaveSight(int bx, int by, int tx, int ty)
        {
                std::vector<Coordinates> coordVec;
index 6d59ef6..147217d 100644 (file)
@@ -137,6 +137,15 @@ namespace Deeangband
                bool Field::GenerateTrap(std::map<TAG, boost::shared_ptr<TrapBase>>::iterator trapBaseIt, Coordinates *position);
 
                /*!
+                * @brief \8ew\92è\92n\93_\82©\82ç\82Ì\8e\8b\8aE\82ð\95Ô\82·
+                * @param coordVec \8e\8b\93_\82ð\95Ô\82·Vector\82Ì\8eQ\8fÆ\93n\82µ
+                * @param baseX \8e\8b\93_\8c³X\8dÀ\95W
+                * @param baseY \8e\8b\93_\8c³Y\8dÀ\95W
+                * @return \82È\82µ
+                */
+               void Field::GetSight(std::vector<Coordinates> &coordVec, int baseX, int baseY);
+
+               /*!
                 * @brief \8e\8b\8aE\82ª\92Ê\82Á\82Ä\82¢\82é\82©\82Ì\94»\92è\82ð\8ds\82¤
                 * @param bx \8aî\93_X\8dÀ\95W
                 * @param by \8aî\93_Y\8dÀ\95W
index 901a29c..e608549 100644 (file)
@@ -15,6 +15,8 @@
 namespace Deeangband
 {
 
+       class Field;
+
        /*! 
         * @class HavePosition
         * @brief \83V\83\93\83{\83\8b\95Û\8e\9d\92\8a\8fÛ\83N\83\89\83X
@@ -44,6 +46,7 @@ namespace Deeangband
 
                Coordinates position; //!< \8f\8a\8dÝ\8dÀ\95W
                ID fieldID; //!< \8c»\8dÝ\83t\83\8d\83AID
+               boost::shared_ptr<Field> fieldPtr; //!< \8c»\8dÝ\83t\83\8d\83A\8eQ\8fÆ\83|\83C\83\93\83^
 
        public: