mirror of
https://github.com/ApfelTeeSaft/PlanetFleet.git
synced 2026-08-26 19:33:38 +00:00
fixed crash upon unpause bug
This commit is contained in:
@@ -43,11 +43,9 @@ namespace battleship{
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Game::update(){
|
void Game::update(){
|
||||||
|
updateLuaPlayers(false);
|
||||||
sol::state_view SOL_LUA_VIEW = generateView();
|
sol::state_view SOL_LUA_VIEW = generateView();
|
||||||
|
|
||||||
for(int i = 0; i < players.size(); i++)
|
|
||||||
SOL_LUA_VIEW["game"]["players"][i + 1] = players[i];
|
|
||||||
|
|
||||||
for(int i = 0; i < players.size(); i++)
|
for(int i = 0; i < players.size(); i++)
|
||||||
if(players[i]->isCpuPlayer()){
|
if(players[i]->isCpuPlayer()){
|
||||||
string plStr = "game.players[" + to_string(i + 1) + "]";
|
string plStr = "game.players[" + to_string(i + 1) + "]";
|
||||||
@@ -78,6 +76,15 @@ namespace battleship{
|
|||||||
FxManager::getSingleton()->update();
|
FxManager::getSingleton()->update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Game::updateLuaPlayers(bool resetBehaviour){
|
||||||
|
sol::state_view SOL_LUA_VIEW = generateView();
|
||||||
|
|
||||||
|
for(int i = 0; i < players.size(); i++)
|
||||||
|
SOL_LUA_VIEW["game"]["players"][i + 1] = players[i];
|
||||||
|
|
||||||
|
if(resetBehaviour)
|
||||||
|
SOL_LUA_VIEW.script_file(GameManager::getSingleton()->getPath() + "Scripts/Core/playerInit.lua");
|
||||||
|
}
|
||||||
|
|
||||||
void Game::removeAllElements(){
|
void Game::removeAllElements(){
|
||||||
generateView().script("game.players = {}");
|
generateView().script("game.players = {}");
|
||||||
@@ -101,11 +108,14 @@ namespace battleship{
|
|||||||
guiManager->readLuaScreenScript("gamePaused.lua", activeState->getGuiButtons());
|
guiManager->readLuaScreenScript("gamePaused.lua", activeState->getGuiButtons());
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
for(string f : configData::scripts)
|
|
||||||
generateView().script_file(gm->getPath() + f);
|
|
||||||
|
|
||||||
guiManager->readLuaScreenScript("inGame.lua", activeState->getGuiButtons());
|
|
||||||
sol::state_view SOL_LUA_VIEW = generateView();
|
sol::state_view SOL_LUA_VIEW = generateView();
|
||||||
|
|
||||||
|
for(string f : configData::scripts)
|
||||||
|
SOL_LUA_VIEW.script_file(gm->getPath() + f);
|
||||||
|
|
||||||
|
updateLuaPlayers(true);
|
||||||
|
guiManager->readLuaScreenScript("inGame.lua", activeState->getGuiButtons());
|
||||||
|
|
||||||
string gop = SOL_LUA_VIEW["gameObjPrefix"], vfxp = SOL_LUA_VIEW["vfxPrefix"];
|
string gop = SOL_LUA_VIEW["gameObjPrefix"], vfxp = SOL_LUA_VIEW["vfxPrefix"];
|
||||||
AssetManager::getSingleton()->load(gm->getPath() + gop, true);
|
AssetManager::getSingleton()->load(gm->getPath() + gop, true);
|
||||||
AssetManager::getSingleton()->load(gm->getPath() + vfxp, true);
|
AssetManager::getSingleton()->load(gm->getPath() + vfxp, true);
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ namespace battleship{
|
|||||||
public:
|
public:
|
||||||
static Game* getSingleton();
|
static Game* getSingleton();
|
||||||
void update();
|
void update();
|
||||||
|
void updateLuaPlayers(bool);
|
||||||
void togglePause();
|
void togglePause();
|
||||||
void removeAllElements();
|
void removeAllElements();
|
||||||
void changeUnitPlayer(Unit*, Player*);
|
void changeUnitPlayer(Unit*, Player*);
|
||||||
|
|||||||
+1
-9
@@ -68,21 +68,13 @@ namespace battleship{
|
|||||||
cam->setPosition(Map::getSingleton()->getSpawnPoint(playerId) + Vector3(1, 1, 1) * configData::CAMERA_DISTANCE);
|
cam->setPosition(Map::getSingleton()->getSpawnPoint(playerId) + Vector3(1, 1, 1) * configData::CAMERA_DISTANCE);
|
||||||
cam->lookAt(Vector3(0, -1, -1).norm(), Vector3(0, 1, -1).norm());
|
cam->lookAt(Vector3(0, -1, -1).norm(), Vector3(0, 1, -1).norm());
|
||||||
|
|
||||||
mainPlayer = Game::getSingleton()->getPlayer(playerId);
|
|
||||||
|
|
||||||
GameManager *gm = GameManager::getSingleton();
|
GameManager *gm = GameManager::getSingleton();
|
||||||
StateManager *stateManager = gm->getStateManager();
|
StateManager *stateManager = gm->getStateManager();
|
||||||
GuiAppState *guiState = ((GuiAppState*)stateManager->getAppStateByType((int)AppStateType::GUI_STATE));
|
GuiAppState *guiState = ((GuiAppState*)stateManager->getAppStateByType((int)AppStateType::GUI_STATE));
|
||||||
activeState = new ActiveGameState(guiState, playerId);
|
activeState = new ActiveGameState(guiState, playerId);
|
||||||
stateManager->attachAppState(activeState);
|
stateManager->attachAppState(activeState);
|
||||||
|
|
||||||
sol::state_view SOL_LUA_VIEW = generateView();
|
Game::getSingleton()->updateLuaPlayers(true);
|
||||||
vector<Player*> players = Game::getSingleton()->getPlayers();
|
|
||||||
|
|
||||||
for(int i = 0; i < players.size(); i++)
|
|
||||||
SOL_LUA_VIEW["game"]["players"][i + 1] = players[i];
|
|
||||||
|
|
||||||
SOL_LUA_VIEW.script_file(gm->getPath() + "Scripts/Core/playerInit.lua");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void InGameAppState::onDettached() {
|
void InGameAppState::onDettached() {
|
||||||
|
|||||||
@@ -51,7 +51,6 @@ namespace battleship{
|
|||||||
private:
|
private:
|
||||||
bool isMainMenuActive = false;
|
bool isMainMenuActive = false;
|
||||||
std::vector<std::string> modelPaths;
|
std::vector<std::string> modelPaths;
|
||||||
Player *mainPlayer;
|
|
||||||
int playerId;
|
int playerId;
|
||||||
std::string mapName = "";
|
std::string mapName = "";
|
||||||
ActiveGameState* activeState;
|
ActiveGameState* activeState;
|
||||||
|
|||||||
Reference in New Issue
Block a user