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;
{
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();
return deadNum;
}
+ ACTION_IT GameEngine::toNextProcess(void)
+ {
+ return this->gameWorld->GetActionList()->begin()++;
+ }
+
}
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();
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;
{
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++;
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;
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();
+ }
+
}
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
void HaveGameTime::PlusWait(ACTION_WAIT plusWait, bool normalRand);
};
+
}
BOOST_CLASS_VERSION(Deeangband::HaveGameTime, 10);