void Scene_Battle::Start() { if (Player::battle_test_flag) { Game_Temp::battle_troop_id = Player::battle_test_troop_id; } if (Game_Temp::battle_troop_id <= 0 || Game_Temp::battle_troop_id > (int)Data::troops.size()) { char* error_msg = "Invalid Monster Party Id %d"; if (Player::battle_test_flag) { Output::Error(error_msg, Game_Temp::battle_troop_id); } else { Output::Warning(error_msg, Game_Temp::battle_troop_id); } Game_Temp::battle_result = Game_Temp::BattleVictory; Scene::Pop(); return; } Output::Debug("Starting battle %d (%s)", Game_Temp::battle_troop_id, Data::troops[Game_Temp::battle_troop_id-1].name.c_str()); if (Player::battle_test_flag) { InitBattleTest(); } else { Main_Data::game_enemyparty.reset(new Game_EnemyParty()); Main_Data::game_enemyparty->Setup(Game_Temp::battle_troop_id); } Game_Battle::Init(); cycle = 0; auto_battle = false; enemy_action = NULL; CreateUi(); screen.reset(new Screen()); Game_Temp::map_bgm = NULL; // Play map BGM on Scene_Map return Game_System::BgmPlay(Game_System::GetSystemBGM(Game_System::BGM_Battle)); if (!Game_Temp::battle_background.empty()) background.reset(new Background(Game_Temp::battle_background)); else background.reset(new Background(Game_Battle::GetTerrainId())); SetState(State_Start); }
void Scene_Battle::Start() { if (Player::battle_test_flag) { Game_Temp::battle_troop_id = Player::battle_test_troop_id; } if (Game_Temp::battle_troop_id <= 0 || Game_Temp::battle_troop_id > (int)Data::troops.size()) { Output::Warning("Invalid Monster Party Id %d", Game_Temp::battle_troop_id); Game_Temp::battle_result = Game_Temp::BattleVictory; Scene::Pop(); return; } if (Player::battle_test_flag) { InitBattleTest(); } else { Main_Data::game_enemyparty.reset(new Game_EnemyParty()); Main_Data::game_enemyparty->Setup(Game_Temp::battle_troop_id); } Game_Battle::Init(); cycle = 0; auto_battle = false; enemy_action = NULL; CreateCursors(); CreateWindows(); screen.reset(new Screen()); Game_Temp::map_bgm = NULL; // Play map BGM on Scene_Map return Game_System::BgmPlay(Data::system.battle_music); Game_System::SePlay(Data::system.battle_se); if (!Game_Temp::battle_background.empty()) background.reset(new Background(Game_Temp::battle_background)); else background.reset(new Background(Game_Temp::battle_terrain_id)); SetState(State_Start); }
void Scene_Battle::Start() { if (Player::battle_test_flag) { Game_Temp::battle_troop_id = Player::battle_test_troop_id; } const RPG::Troop* troop = ReaderUtil::GetElement(Data::troops, Game_Temp::battle_troop_id); if (!troop) { const char* error_msg = "Invalid Monster Party ID %d"; if (Player::battle_test_flag) { Output::Error(error_msg, Game_Temp::battle_troop_id); } else { Output::Warning(error_msg, Game_Temp::battle_troop_id); } Game_Temp::battle_result = Game_Temp::BattleVictory; Scene::Pop(); return; } // Game_Temp::battle_troop_id is valid during the whole battle Output::Debug("Starting battle %d (%s)", Game_Temp::battle_troop_id, troop->name.c_str()); if (Player::battle_test_flag) { InitBattleTest(); } else { Main_Data::game_enemyparty.reset(new Game_EnemyParty()); Main_Data::game_enemyparty->Setup(Game_Temp::battle_troop_id); } Game_Battle::Init(); cycle = 0; auto_battle = false; enemy_action = NULL; CreateUi(); Game_System::BgmPlay(Game_System::GetSystemBGM(Game_System::BGM_Battle)); SetState(State_Start); }