OSDN Git Service

GameEngine::toNextProcess() を実装。 / Implement GameEngine::toNextProcess().
authorDeskull <desull@users.sourceforge.jp>
Sat, 3 Jan 2015 04:08:12 +0000 (13:08 +0900)
committerDeskull <desull@users.sourceforge.jp>
Sat, 3 Jan 2015 04:08:12 +0000 (13:08 +0900)
Deeangband/EngineTypedef.h
Deeangband/GameEngine.cpp
Deeangband/GameEngine.h
Deeangband/GameSurface.h
Deeangband/GameWorld.cpp
Deeangband/HaveGameTime.cpp
Deeangband/HaveGameTime.h

index 402218b..26ba385 100644 (file)
@@ -3,3 +3,4 @@ typedef std::map<ID, boost::shared_ptr<Creature>> CREATURE_LIST;
 typedef std::map<ID, boost::shared_ptr<Creature>>::iterator CREATURE_IT;
 
 typedef std::vector<boost::shared_ptr<HaveGameTime>> ACTION_LIST;
+typedef std::vector<boost::shared_ptr<HaveGameTime>>::iterator ACTION_IT;
index 96d3122..059a5c3 100644 (file)
@@ -30,11 +30,13 @@ namespace Deeangband
        {
                GAME_COMMAND commandID;
                PLAY_EXIT_CODE code = PLAY_EXIT_NONE;
+               ACTION_IT actionIt;
                gameSurface->Redraw();
 
                while(code == PLAY_EXIT_NONE)
                {
                        this->gameSurface->UpdateTimeStatus(this->gameWorld->GetGameTime());
+                       actionIt = this->toNextProcess();
                        commandID = gameSurface->GetCommand();
                        code = DoGameCommand(commandID);
                        ProcessDeadCreatures();
@@ -163,4 +165,9 @@ namespace Deeangband
                return deadNum;
        }
 
+       ACTION_IT GameEngine::toNextProcess(void)
+       {
+               return this->gameWorld->GetActionList()->begin()++;
+       }
+
 }
index feff22a..0462404 100644 (file)
@@ -31,6 +31,12 @@ namespace Deeangband
                GameSurface *gameSurface; //!< GameSurface\82Ì\8eQ\8fÆ\83|\83C\83\93\83^
                GameLogger *gameLogger; //!< GameLogger\82Ì\8eQ\8fÆ\83|\83C\83\93\83^
 
+               /*!
+                * @brief \8e\9f\82Ì\8f\88\97\9d\91Î\8fÛ\82ð\8eæ\93¾\82µ\81A\82»\82ê\82Ü\82Å\82Ì\83Q\81[\83\80\8e\9e\8aÔ\89Á\8eZ\82ð\8ds\82¤\81B
+                * @return \8e\9f\82Ì\8f\88\97\9d\91Î\8fÛ
+                */
+               ACTION_IT GameEngine::toNextProcess(void);
+
        public:
                GameEngine::GameEngine();
 
index 4e81b12..9a4ceb6 100644 (file)
@@ -33,9 +33,9 @@ namespace Deeangband
                virtual GameSurface::~GameSurface(void);
 
                /*!
-               * @brief \83Q\81[\83\80\83R\83}\83\93\83h\82ð\8eó\82¯\8eæ\82é
-               * @return GAME_COMMAND \82Å\92è\8b`\82³\82ê\82½\83R\83}\83\93\83h\93à\97e
-               */
+                * @brief \83Q\81[\83\80\83R\83}\83\93\83h\82ð\8eó\82¯\8eæ\82é
+                * @return GAME_COMMAND \82Å\92è\8b`\82³\82ê\82½\83R\83}\83\93\83h\93à\97e
+                */
                virtual GAME_COMMAND GetCommand(void)
                {
                        return GAME_COMMAND_REDRAW;
index 08f062d..5e7e9ea 100644 (file)
@@ -57,7 +57,7 @@ namespace Deeangband
        {
                creatureList.emplace(this->creatureID, boost::make_shared<Creature>(speciesList.find(creatureTag), fieldID, x, y));
                actionList.push_back(creatureList[this->creatureID]);
-               creatureList[this->creatureID]->PlusWait(10, TRUE);
+               creatureList[this->creatureID]->PlusWait(100, TRUE);
                do
                {
                        this->creatureID++;
index 0800360..f2de629 100644 (file)
@@ -39,6 +39,11 @@ namespace Deeangband
                return this->turn;
        }
 
+       TURN HaveGameTime::GetWait(void)
+       {
+               return this->wait;
+       }
+
        void HaveGameTime::PlusWait(ACTION_WAIT plusWait, bool normalRand)
        {
                double wait = normalRand ? Dice::CastNormalRand(plusWait, 5) : plusWait;
@@ -48,4 +53,14 @@ namespace Deeangband
                this->wait += (ACTION_WAIT)distWait(Dice::mt);
        }
 
+       bool operator<(HaveGameTime left, HaveGameTime right)
+       {
+               return left.GetWait() < right.GetWait();
+       }
+
+       bool operator>(HaveGameTime left, HaveGameTime right)
+       {
+               return left.GetWait() > right.GetWait();
+       }
+
 }
index d6f5780..da209e1 100644 (file)
@@ -76,6 +76,12 @@ namespace Deeangband
                TURN HaveGameTime::GetTurn(void);
 
                /*!
+               * @brief \83E\83F\83C\83g\92l\82ð\95Ô\82·
+               * @return \83E\83F\83C\83g\92l
+               */
+               TURN HaveGameTime::GetWait(void);
+
+               /*!
                 * @brief \83E\83F\83C\83g\92l\82ð\89Á\8eZ\82·\82é
                 * @param plusWait \89Á\8eZ\82·\82é\83E\83F\83C\83g\92l
                 * @param normalRand \90³\8bK\97\90\90\94\82ð\93K\97p\82·\82é\82È\82ç\82ΠTRUE
@@ -84,6 +90,7 @@ namespace Deeangband
                void HaveGameTime::PlusWait(ACTION_WAIT plusWait, bool normalRand);
 
        };
+
 }
 
 BOOST_CLASS_VERSION(Deeangband::HaveGameTime, 10);