Esempio n. 1
0
void gameDoc::initDocument(gameView* view)		//initialize doc
{
mBoard = new board();
endBattle();

//connect(this, SIGNAL(signalGameOver()),
//	view, SLOT(gameOver()));

//connect(mBoard, SIGNAL(signalsetPiece(int, int, int)),
//	view, SLOT(setUnit(int, int, int)));

//connect(mBoard, SIGNAL(signalMove(int int int)),
//	view, SLOT(markMove(int, int, int)));

//connect(this, SIGNAL(signalAIInfo(int, QMemArray<int>)),
//	view, SLOT(int, QMemeArray<int>)));
}
void GameField::update()
{
	switch (state_) {
	case kStateField:
		break;
	case kStateBattleStart:
		if (fadeEffect_.state() == GameFadeEffect::kStateFadeOutEnd) {
			state_ = kStateBattle;
			battle_->freeze(false);
			fadeEffect_.start((GameFadeEffect::FadeType)fadeInfos_[kFadePlaceBattleStartShow], GameFadeEffect::kStateFadeIn);
			map_.freeze();
			eventManager_.freeze();
			/*
			if (!players_.empty())
				players_[0]->freeze();
			 */
		}
		break;
	case kStateBattle:
		if (battle_->state() == GameBattle::kStateEnd) {
			state_ = kStateBattleEnd;
			battle_->pauseUpdate();
			fadeEffect_.start((GameFadeEffect::FadeType)fadeInfos_[kFadePlaceBattleEndHide], GameFadeEffect::kStateFadeOut);
		}
		break;
	case kStateBattleEnd:
		if (fadeEffect_.state() == GameFadeEffect::kStateFadeOutEnd) {
			endBattle();
		}
		break;
	case kStateChangeMap:
		if (fadeEffect_.state() == GameFadeEffect::kStateFadeOutEnd) {
			/*
			if (!players_.empty()) {
				players_[0]->pauseUpdate(false);
			}
			rpg2k::structure::EventState& ev = project_.getLSD().party();
			playerLeader()->setPosition(kuto::Point2(ev.x(), ev.y()));
			if (ev.eventDir() > 0)
				playerLeader()->setDirection(ev.eventDir());
			playerLeader()->updateMapPosition();
			 */

			map_.pauseUpdate(false);
			eventManager_.pauseUpdate(false);
			fadeEffect_.start((GameFadeEffect::FadeType)fadeInfos_[kFadePlaceMapShow], GameFadeEffect::kStateFadeIn);
			state_ = kStateField;
		}
		break;
	case kStateSystemMenuStart:
		if (fadeEffect_.state() == GameFadeEffect::kStateFadeOutEnd) {
			state_ = kStateSystemMenu;
			systemMenu_.start();
			fadeEffect_.start(GameFadeEffect::kTypeFade, GameFadeEffect::kStateFadeIn);
			map_.freeze();
			eventManager_.freeze();
			/*
			if (!players_.empty())
				players_[0]->freeze();
			 */
		}
		break;
	case kStateSystemMenu:
		if (systemMenu_.isEnd()) {
			state_ = kStateSystemMenuEnd;
			systemMenu_.pauseUpdate();
			fadeEffect_.start(GameFadeEffect::kTypeFade, GameFadeEffect::kStateFadeOut);
		}
		break;
	case kStateSystemMenuEnd:
		if (fadeEffect_.state() == GameFadeEffect::kStateFadeOutEnd) {
			endSystemMenu();
		}
		break;
	}
}