Changeset View
Changeset View
Standalone View
Standalone View
source/ps/World.cpp
/* Copyright (C) 2017 Wildfire Games. | /* Copyright (C) 2018 Wildfire Games. | ||||
* This file is part of 0 A.D. | * This file is part of 0 A.D. | ||||
* | * | ||||
* 0 A.D. is free software: you can redistribute it and/or modify | * 0 A.D. is free software: you can redistribute it and/or modify | ||||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | ||||
* the Free Software Foundation, either version 2 of the License, or | * the Free Software Foundation, either version 2 of the License, or | ||||
* (at your option) any later version. | * (at your option) any later version. | ||||
* | * | ||||
* 0 A.D. is distributed in the hope that it will be useful, | * 0 A.D. is distributed in the hope that it will be useful, | ||||
▲ Show 20 Lines • Show All 59 Lines • ▼ Show 20 Lines | |||||
{ | { | ||||
// Load the map, if one was specified | // Load the map, if one was specified | ||||
if (mapFile.length()) | if (mapFile.length()) | ||||
{ | { | ||||
VfsPath mapfilename = VfsPath(mapFile).ChangeExtension(L".pmp"); | VfsPath mapfilename = VfsPath(mapFile).ChangeExtension(L".pmp"); | ||||
try | try | ||||
{ | { | ||||
CTriggerManager* pTriggerManager = NULL; | CTriggerManager* pTriggerManager = nullptr; | ||||
m_MapReader->LoadMap(mapfilename, rt, settings, m_Terrain, | m_MapReader->LoadMap(mapfilename, rt, settings, m_Terrain, | ||||
CRenderer::IsInitialised() ? g_Renderer.GetWaterManager() : NULL, | CRenderer::IsInitialised() ? g_Renderer.GetWaterManager() : nullptr, | ||||
CRenderer::IsInitialised() ? g_Renderer.GetSkyManager() : NULL, | CRenderer::IsInitialised() ? g_Renderer.GetSkyManager() : nullptr, | ||||
&g_LightEnv, m_pGame->GetView(), | &g_LightEnv, m_pGame->GetView(), | ||||
m_pGame->GetView() ? m_pGame->GetView()->GetCinema() : NULL, | m_pGame->GetView() ? m_pGame->GetView()->GetCinema() : nullptr, | ||||
pTriggerManager, CRenderer::IsInitialised() ? &g_Renderer.GetPostprocManager() : NULL, | pTriggerManager, CRenderer::IsInitialised() ? &g_Renderer.GetPostprocManager() : nullptr, | ||||
m_pGame->GetSimulation2(), &m_pGame->GetSimulation2()->GetSimContext(), playerID, false); | m_pGame->GetSimulation2(), &m_pGame->GetSimulation2()->GetSimContext(), playerID, false); | ||||
// fails immediately, or registers for delay loading | // fails immediately, or registers for delay loading | ||||
RegMemFun(this, &CWorld::DeleteMapReader, L"CWorld::DeleteMapReader", 5); | RegMemFun(this, &CWorld::DeleteMapReader, L"CWorld::DeleteMapReader", 5); | ||||
} | } | ||||
catch (PSERROR_File& err) | catch (PSERROR_File& err) | ||||
{ | { | ||||
SAFE_DELETE(m_MapReader); | SAFE_DELETE(m_MapReader); | ||||
LOGERROR("Failed to load map %s: %s", mapfilename.string8(), err.what()); | LOGERROR("Failed to load map %s: %s", mapfilename.string8(), err.what()); | ||||
throw PSERROR_Game_World_MapLoadFailed("Failed to load map.\nCheck application log for details."); | throw PSERROR_Game_World_MapLoadFailed("Failed to load map.\nCheck application log for details."); | ||||
} | } | ||||
} | } | ||||
} | } | ||||
void CWorld::RegisterInitRMS(const CStrW& scriptFile, JSRuntime* rt, JS::HandleValue settings, int playerID) | void CWorld::RegisterInitRMS(const CStrW& scriptFile, JSRuntime* rt, JS::HandleValue settings, int playerID) | ||||
{ | { | ||||
// If scriptFile is empty, a blank map will be generated using settings (no RMS run) | // If scriptFile is empty, a blank map will be generated using settings (no RMS run) | ||||
CTriggerManager* pTriggerManager = NULL; | CTriggerManager* pTriggerManager = nullptr; | ||||
m_MapReader->LoadRandomMap(scriptFile, rt, settings, m_Terrain, | m_MapReader->LoadRandomMap(scriptFile, rt, settings, m_Terrain, | ||||
CRenderer::IsInitialised() ? g_Renderer.GetWaterManager() : NULL, | CRenderer::IsInitialised() ? g_Renderer.GetWaterManager() : nullptr, | ||||
CRenderer::IsInitialised() ? g_Renderer.GetSkyManager() : NULL, | CRenderer::IsInitialised() ? g_Renderer.GetSkyManager() : nullptr, | ||||
&g_LightEnv, m_pGame->GetView(), | &g_LightEnv, m_pGame->GetView(), | ||||
m_pGame->GetView() ? m_pGame->GetView()->GetCinema() : NULL, | m_pGame->GetView() ? m_pGame->GetView()->GetCinema() : nullptr, | ||||
pTriggerManager, CRenderer::IsInitialised() ? &g_Renderer.GetPostprocManager() : NULL, | pTriggerManager, CRenderer::IsInitialised() ? &g_Renderer.GetPostprocManager() : nullptr, | ||||
m_pGame->GetSimulation2(), playerID); | m_pGame->GetSimulation2(), playerID); | ||||
// registers for delay loading | // registers for delay loading | ||||
RegMemFun(this, &CWorld::DeleteMapReader, L"CWorld::DeleteMapReader", 5); | RegMemFun(this, &CWorld::DeleteMapReader, L"CWorld::DeleteMapReader", 5); | ||||
} | } | ||||
int CWorld::DeleteMapReader() | int CWorld::DeleteMapReader() | ||||
{ | { | ||||
SAFE_DELETE(m_MapReader); | SAFE_DELETE(m_MapReader); | ||||
Show All 13 Lines |
Wildfire Games · Phabricator