/*---------------------------------------------------------------------*//**
	フレーム制御
**//*---------------------------------------------------------------------*/
void StMod10401::exec(ExecRes* res, const ExecCtx* ec)
{
	if(Game::getGame()->getMoveMap()->getCurMapId() == MapIdDef::MAPID_EP01_FOREST4_EXIT_SQUARE)	// シネンの森出口広場マップ
	{
		SaveData* svd = Game::getGame()->getSaveSys()->getSaveData(); ASSERT(svd != 0L);
		if(	svd->getSaveF(SaveIdDef::SFID_ST10401_DONE_YASAN_THANK) &&	// ヤサンイベントが終わっている
			!svd->getSaveF(SaveIdDef::SFID_ST10204_MEET_KOTSUME) )		// コツメが合流していない
		{
			UnitManager* unitmng = Game::getGame()->getUnitManager(); ASSERT(unitmng != 0L);
			if(!unitmng->checkEnableEnemy())	// 有効な敵がいない場合のみ
			{
				// キャラクタの位置によってイベント起動
				const PcUnit* unitLeader = Game::getGame()->getMyParty()->getLeaderPcUnit();
				if(unitLeader != 0L)
				{
					const Vector3F* posLeader = unitLeader->getPosition();
					if(posLeader->x() <= 2700.0f)	// 大猿に近づいた
					{
						// 次のイベント起動確認
						do
						{
							// 通常歩行時以外(ソウマ詠唱中や対決中など)は失敗
							GameMode::ModeKind kindEnd = Game::getGame()->getGameMode()->getChildEndModeKind();
							if(kindEnd != GameMode::MODE_GAME_INGAME_WALKING_NORMAL)	{	break;	}

							Party* party = Game::getGame()->getMyParty();
							// アサダウン中は失敗
							if(party->getPcUnit(MyParty::PC_MY)->getCharStat()->getStat() != CharStat::STAT_ALIVE)	{	break;	}
							// コルポダウン中は失敗
							if(party->getPcUnit(MyParty::PC_PTN)->getCharStat()->getStat() != CharStat::STAT_ALIVE)	{	break;	}

							// イベント起動
							EventSys* evsys = Game::getGame()->getEventSys(); ASSERT(evsys != 0L);
							EvCause evcause(EventCause::CID_NULL);
							evsys->begin(EVID_KOTSUME_MEET_AGAIN, 0, &evcause);
						}
						while(false);
					}
				}
			}
		}
	}

	StMod10000::exec(res, ec);
}