diff --git a/source/graphics/SkeletonAnimDef.cpp b/source/graphics/SkeletonAnimDef.cpp index b24359a82b..650fad11c7 100755 --- a/source/graphics/SkeletonAnimDef.cpp +++ b/source/graphics/SkeletonAnimDef.cpp @@ -76,9 +76,9 @@ CSkeletonAnimDef* CSkeletonAnimDef::Load(const char* filename) unpacker.UnpackRaw(&anim->m_NumFrames,sizeof(anim->m_NumFrames)); anim->m_Keys=new Key[anim->m_NumKeys*anim->m_NumFrames]; unpacker.UnpackRaw(anim->m_Keys,anim->m_NumKeys*anim->m_NumFrames*sizeof(Key)); - } catch (...) { + } catch (CFileUnpacker::CError) { delete anim; - throw CFileUnpacker::CFileEOFError(); + throw; } return anim; diff --git a/source/graphics/SkeletonAnimManager.cpp b/source/graphics/SkeletonAnimManager.cpp index 6b2d8adba7..e6dd7b7883 100755 --- a/source/graphics/SkeletonAnimManager.cpp +++ b/source/graphics/SkeletonAnimManager.cpp @@ -12,6 +12,7 @@ #include "Model.h" #include "CLogger.h" #include "SkeletonAnimManager.h" +#include "FileUnpacker.h" #include #define LOG_CATEGORY "graphics" @@ -56,7 +57,7 @@ CSkeletonAnimDef* CSkeletonAnimManager::GetAnimation(const char* filename) CSkeletonAnimDef* def; try { def=CSkeletonAnimDef::Load(filename); - } catch (...) { + } catch (CFileUnpacker::CError) { def=0; } diff --git a/source/gui/IGUIObject.cpp b/source/gui/IGUIObject.cpp index f9b00e86ef..6dd938c2a9 100755 --- a/source/gui/IGUIObject.cpp +++ b/source/gui/IGUIObject.cpp @@ -398,7 +398,9 @@ void IGUIObject::CheckSettingsValidity() { GUI::RecurseObject(0, this, &IGUIObject::UpdateMouseOver, NULL); } - catch (...) {} + catch (PS_RESULT) + { + } } try @@ -407,7 +409,7 @@ void IGUIObject::CheckSettingsValidity() HandleMessage(GUIM_SETTINGS_UPDATED); ScriptEvent("update"); } - catch (...) + catch (PS_RESULT) { } } diff --git a/source/ps/GameSetup/Config.cpp b/source/ps/GameSetup/Config.cpp index be0405e36f..6a983da2a5 100644 --- a/source/ps/GameSetup/Config.cpp +++ b/source/ps/GameSetup/Config.cpp @@ -35,7 +35,8 @@ int g_freq; bool g_Quickstart=false; - +// If non-empty, specified map will be automatically loaded +CStr g_AutostartMap = ""; //---------------------------------------------------------------------------- // config and profile @@ -95,6 +96,10 @@ static void ParseCommandLineArgs(int argc, char* argv[]) // switch first letter of option name switch(argv[i][1]) { + case 'a': + if(strncmp(name, "autostart=", 10) == 0) + g_AutostartMap = argv[i]+11; + break; case 'c': if(strcmp(name, "conf") == 0) { @@ -138,6 +143,10 @@ static void ParseCommandLineArgs(int argc, char* argv[]) else if(strncmp(name, "nopbuffer", 9) == 0) g_NoPBuffer = true; break; + case 'p': + if(strncmp(name, "profile=", 8) == 0) + g_ConfigDB.CreateValue(CFG_COMMAND, "profile")->m_String = argv[i]+9; + break; case 'q': if(strncmp(name, "quickstart", 10) == 0) g_Quickstart = true; @@ -147,20 +156,17 @@ static void ParseCommandLineArgs(int argc, char* argv[]) g_ConfigDB.CreateValue(CFG_COMMAND, "shadows")->m_String="true"; break; case 'v': - g_ConfigDB.CreateValue(CFG_COMMAND, "vsync")->m_String="true"; + if(strncmp(name, "vsync", 5) == 0) + g_ConfigDB.CreateValue(CFG_COMMAND, "vsync")->m_String="true"; break; case 'x': - if(strncmp(name, "xres=", 6) == 0) + if(strncmp(name, "xres=", 5) == 0) g_ConfigDB.CreateValue(CFG_COMMAND, "xres")->m_String=argv[i]+6; break; case 'y': - if(strncmp(name, "yres=", 6) == 0) + if(strncmp(name, "yres=", 5) == 0) g_ConfigDB.CreateValue(CFG_COMMAND, "yres")->m_String=argv[i]+6; break; - case 'p': - if(strncmp(name, "profile=", 8) == 0 ) - g_ConfigDB.CreateValue(CFG_COMMAND, "profile")->m_String = argv[i]+9; - break; } // switch } } diff --git a/source/ps/GameSetup/Config.h b/source/ps/GameSetup/Config.h index 85273fae71..53aeda7d39 100644 --- a/source/ps/GameSetup/Config.h +++ b/source/ps/GameSetup/Config.h @@ -23,6 +23,7 @@ extern int g_bpp; extern int g_freq; extern bool g_active; extern bool g_Quickstart; +extern CStr g_AutostartMap; extern CStr g_CursorName; diff --git a/source/ps/GameSetup/GameSetup.cpp b/source/ps/GameSetup/GameSetup.cpp index 10fdad12fc..988ee955aa 100644 --- a/source/ps/GameSetup/GameSetup.cpp +++ b/source/ps/GameSetup/GameSetup.cpp @@ -800,7 +800,6 @@ void Shutdown() void Init(int argc, char* argv[], uint flags) { const bool setup_vmode = (flags & INIT_HAVE_VMODE) == 0; - const bool setup_gui = (flags & INIT_NO_GUI ) == 0; debug_printf("INIT &argc=%p &argv=%p\n", &argc, &argv); MICROLOG(L"Init"); @@ -860,6 +859,9 @@ void Init(int argc, char* argv[], uint flags) // g_ConfigDB, command line args, globals CONFIG_Init(argc, argv); + // setup_gui must be set after CONFIG_Init, so command-line parameters can disable it + const bool setup_gui = ((flags & INIT_NO_GUI) == 0 && g_AutostartMap.Length() == 0); + // GUI is notified in SetVideoMode, so this must come before that. #ifndef NO_GUI new CGUI; @@ -991,6 +993,24 @@ void Init(int argc, char* argv[], uint flags) #endif g_Camera.UpdateFrustum(); } + + if (g_AutostartMap.Length()) + { + // Code copied mostly from atlas/GameInterface/Handlers/Map.cpp - + // maybe should be refactored to avoid duplication + g_GameAttributes.m_MapFile = g_AutostartMap+".pmp"; + for (int i=1; i<8; ++i) + g_GameAttributes.GetSlot(i)->AssignLocal(); + g_GameAttributes.m_LOSSetting = 2; + g_Game = new CGame(); + + PSRETURN ret = g_Game->StartGame(&g_GameAttributes); + debug_assert(ret == PSRETURN_OK); + LDR_NonprogressiveLoad(); + ret = g_Game->ReallyStartGame(); + debug_assert(ret == PSRETURN_OK); + } + } #if MSC_VERSION diff --git a/source/ps/World.cpp b/source/ps/World.cpp index d4c879e653..9e10fd1f24 100755 --- a/source/ps/World.cpp +++ b/source/ps/World.cpp @@ -55,7 +55,7 @@ void CWorld::Initialize(CGameAttributes *pAttribs) reader = new CMapReader; reader->LoadMap(mapfilename, &m_Terrain, &m_UnitManager, &g_LightEnv); // fails immediately, or registers for delay loading - } catch (...) { + } catch (CFileUnpacker::CError) { delete reader; LOG(ERROR, LOG_CATEGORY, "Failed to load map %s", mapfilename.c_str()); throw PSERROR_Game_World_MapLoadFailed(); diff --git a/source/tools/atlas/Atlas.sln b/source/tools/atlas/Atlas.sln deleted file mode 100644 index f0dafc4ff8..0000000000 --- a/source/tools/atlas/Atlas.sln +++ /dev/null @@ -1,97 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AtlasUI", "AtlasUI\AtlasUI.vcproj", "{E99BA969-D540-4F23-822E-37C499E8F704}" - ProjectSection(ProjectDependencies) = postProject - {228B468D-3C2E-45BF-9833-C626E1A35B04} = {228B468D-3C2E-45BF-9833-C626E1A35B04} - {8C9BF4E2-AE5A-4404-AD8A-0418508A737C} = {8C9BF4E2-AE5A-4404-AD8A-0418508A737C} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AtlasObject", "AtlasObject\AtlasObject.vcproj", "{228B468D-3C2E-45BF-9833-C626E1A35B04}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ActorEditor", "AtlasFrontends\ActorEditor.vcproj", "{E859DDC0-224A-41F6-B09F-E320EC8DDA35}" - ProjectSection(ProjectDependencies) = postProject - {E99BA969-D540-4F23-822E-37C499E8F704} = {E99BA969-D540-4F23-822E-37C499E8F704} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ColourTester", "AtlasFrontends\ColourTester.vcproj", "{C018BE85-EBFE-428E-8626-3CCB77052715}" - ProjectSection(ProjectDependencies) = postProject - {E99BA969-D540-4F23-822E-37C499E8F704} = {E99BA969-D540-4F23-822E-37C499E8F704} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pyrogenesis", "..\..\..\build\workspaces\vc2003\pyrogenesis.vcproj", "{CDA14ADB-57CA-DB49-A474-E7605D7922BD}" - ProjectSection(ProjectDependencies) = postProject - {E99BA969-D540-4F23-822E-37C499E8F704} = {E99BA969-D540-4F23-822E-37C499E8F704} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DatafileIO", "DatafileIO\DatafileIO.vcproj", "{8C9BF4E2-AE5A-4404-AD8A-0418508A737C}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ArchiveViewer", "AtlasFrontends\ArchiveViewer.vcproj", "{9F10EC81-4AD5-4AD9-A837-78F25E0C8938}" - ProjectSection(ProjectDependencies) = postProject - {E99BA969-D540-4F23-822E-37C499E8F704} = {E99BA969-D540-4F23-822E-37C499E8F704} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FileConverter", "AtlasFrontends\FileConverter.vcproj", "{65124F90-05DB-4B9C-9C69-7E22632359C4}" - ProjectSection(ProjectDependencies) = postProject - {E99BA969-D540-4F23-822E-37C499E8F704} = {E99BA969-D540-4F23-822E-37C499E8F704} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfiguration) = preSolution - Debug = Debug - Release = Release - Testing = Testing - EndGlobalSection - GlobalSection(ProjectConfiguration) = postSolution - {E99BA969-D540-4F23-822E-37C499E8F704}.Debug.ActiveCfg = Debug|Win32 - {E99BA969-D540-4F23-822E-37C499E8F704}.Debug.Build.0 = Debug|Win32 - {E99BA969-D540-4F23-822E-37C499E8F704}.Release.ActiveCfg = Release|Win32 - {E99BA969-D540-4F23-822E-37C499E8F704}.Release.Build.0 = Release|Win32 - {E99BA969-D540-4F23-822E-37C499E8F704}.Testing.ActiveCfg = Release|Win32 - {E99BA969-D540-4F23-822E-37C499E8F704}.Testing.Build.0 = Release|Win32 - {228B468D-3C2E-45BF-9833-C626E1A35B04}.Debug.ActiveCfg = Debug|Win32 - {228B468D-3C2E-45BF-9833-C626E1A35B04}.Debug.Build.0 = Debug|Win32 - {228B468D-3C2E-45BF-9833-C626E1A35B04}.Release.ActiveCfg = Release|Win32 - {228B468D-3C2E-45BF-9833-C626E1A35B04}.Release.Build.0 = Release|Win32 - {228B468D-3C2E-45BF-9833-C626E1A35B04}.Testing.ActiveCfg = Release|Win32 - {228B468D-3C2E-45BF-9833-C626E1A35B04}.Testing.Build.0 = Release|Win32 - {E859DDC0-224A-41F6-B09F-E320EC8DDA35}.Debug.ActiveCfg = Debug|Win32 - {E859DDC0-224A-41F6-B09F-E320EC8DDA35}.Debug.Build.0 = Debug|Win32 - {E859DDC0-224A-41F6-B09F-E320EC8DDA35}.Release.ActiveCfg = Release|Win32 - {E859DDC0-224A-41F6-B09F-E320EC8DDA35}.Release.Build.0 = Release|Win32 - {E859DDC0-224A-41F6-B09F-E320EC8DDA35}.Testing.ActiveCfg = Debug|Win32 - {E859DDC0-224A-41F6-B09F-E320EC8DDA35}.Testing.Build.0 = Debug|Win32 - {C018BE85-EBFE-428E-8626-3CCB77052715}.Debug.ActiveCfg = Debug|Win32 - {C018BE85-EBFE-428E-8626-3CCB77052715}.Release.ActiveCfg = Release|Win32 - {C018BE85-EBFE-428E-8626-3CCB77052715}.Release.Build.0 = Release|Win32 - {C018BE85-EBFE-428E-8626-3CCB77052715}.Testing.ActiveCfg = Debug|Win32 - {C018BE85-EBFE-428E-8626-3CCB77052715}.Testing.Build.0 = Debug|Win32 - {CDA14ADB-57CA-DB49-A474-E7605D7922BD}.Debug.ActiveCfg = Debug|Win32 - {CDA14ADB-57CA-DB49-A474-E7605D7922BD}.Debug.Build.0 = Debug|Win32 - {CDA14ADB-57CA-DB49-A474-E7605D7922BD}.Release.ActiveCfg = Release|Win32 - {CDA14ADB-57CA-DB49-A474-E7605D7922BD}.Release.Build.0 = Release|Win32 - {CDA14ADB-57CA-DB49-A474-E7605D7922BD}.Testing.ActiveCfg = Testing|Win32 - {CDA14ADB-57CA-DB49-A474-E7605D7922BD}.Testing.Build.0 = Testing|Win32 - {8C9BF4E2-AE5A-4404-AD8A-0418508A737C}.Debug.ActiveCfg = Debug|Win32 - {8C9BF4E2-AE5A-4404-AD8A-0418508A737C}.Release.ActiveCfg = Release|Win32 - {8C9BF4E2-AE5A-4404-AD8A-0418508A737C}.Release.Build.0 = Release|Win32 - {8C9BF4E2-AE5A-4404-AD8A-0418508A737C}.Testing.ActiveCfg = Release|Win32 - {8C9BF4E2-AE5A-4404-AD8A-0418508A737C}.Testing.Build.0 = Release|Win32 - {9F10EC81-4AD5-4AD9-A837-78F25E0C8938}.Debug.ActiveCfg = Debug|Win32 - {9F10EC81-4AD5-4AD9-A837-78F25E0C8938}.Release.ActiveCfg = Release|Win32 - {9F10EC81-4AD5-4AD9-A837-78F25E0C8938}.Release.Build.0 = Release|Win32 - {9F10EC81-4AD5-4AD9-A837-78F25E0C8938}.Testing.ActiveCfg = Debug|Win32 - {9F10EC81-4AD5-4AD9-A837-78F25E0C8938}.Testing.Build.0 = Debug|Win32 - {65124F90-05DB-4B9C-9C69-7E22632359C4}.Debug.ActiveCfg = Debug|Win32 - {65124F90-05DB-4B9C-9C69-7E22632359C4}.Release.ActiveCfg = Release|Win32 - {65124F90-05DB-4B9C-9C69-7E22632359C4}.Release.Build.0 = Release|Win32 - {65124F90-05DB-4B9C-9C69-7E22632359C4}.Testing.ActiveCfg = Debug|Win32 - {65124F90-05DB-4B9C-9C69-7E22632359C4}.Testing.Build.0 = Debug|Win32 - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution - EndGlobalSection -EndGlobal diff --git a/source/tools/atlas/AtlasObject/AtlasObject.vcproj b/source/tools/atlas/AtlasObject/AtlasObject.vcproj deleted file mode 100644 index 4fbdbf75c8..0000000000 --- a/source/tools/atlas/AtlasObject/AtlasObject.vcproj +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/source/tools/atlas/AtlasUI/ArchiveViewer/ArchiveViewer.h b/source/tools/atlas/AtlasUI/ArchiveViewer/ArchiveViewer.h index 0ee0fbc836..6c528ab5b6 100644 --- a/source/tools/atlas/AtlasUI/ArchiveViewer/ArchiveViewer.h +++ b/source/tools/atlas/AtlasUI/ArchiveViewer/ArchiveViewer.h @@ -1,5 +1,5 @@ -#include "CustomControls/FileHistory/FileHistory.h" -#include "CustomControls/SnapSplitterWindow/SnapSplitterWindow.h" +#include "FileHistory/FileHistory.h" +#include "SnapSplitterWindow/SnapSplitterWindow.h" #include "FilePreviewer.h" namespace DatafileIO diff --git a/source/tools/atlas/AtlasUI/AtlasUI.vcproj b/source/tools/atlas/AtlasUI/AtlasUI.vcproj deleted file mode 100644 index 5d5381492b..0000000000 --- a/source/tools/atlas/AtlasUI/AtlasUI.vcproj +++ /dev/null @@ -1,489 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/source/tools/atlas/AtlasUI/ColourTester/ColourTesterFileCtrl.h b/source/tools/atlas/AtlasUI/ColourTester/ColourTesterFileCtrl.h index 272e3746dd..df523a91d2 100644 --- a/source/tools/atlas/AtlasUI/ColourTester/ColourTesterFileCtrl.h +++ b/source/tools/atlas/AtlasUI/ColourTester/ColourTesterFileCtrl.h @@ -1,4 +1,4 @@ -#include "CustomControls/VirtualDirTreeCtrl/virtualdirtreectrl.h" +#include "VirtualDirTreeCtrl/virtualdirtreectrl.h" // wxGenericDirCtrl could potentially be used instead of this; but it gets // indented a long way (since its root is far further back than necessary), diff --git a/source/tools/atlas/AtlasUI/CustomControls/Windows/AtlasWindow.h b/source/tools/atlas/AtlasUI/CustomControls/Windows/AtlasWindow.h index 2a8d3fc36e..a734579352 100644 --- a/source/tools/atlas/AtlasUI/CustomControls/Windows/AtlasWindow.h +++ b/source/tools/atlas/AtlasUI/CustomControls/Windows/AtlasWindow.h @@ -4,7 +4,7 @@ #include "General/AtlasWindowCommandProc.h" #include "General/IAtlasSerialiser.h" -#include "CustomControls/FileHistory/FileHistory.h" +#include "FileHistory/FileHistory.h" #include "wx/filename.h" diff --git a/source/tools/atlas/AtlasUI/ScenarioEditor/ScenarioEditor.cpp b/source/tools/atlas/AtlasUI/ScenarioEditor/ScenarioEditor.cpp index 7c614b4d4f..ef551c8a18 100644 --- a/source/tools/atlas/AtlasUI/ScenarioEditor/ScenarioEditor.cpp +++ b/source/tools/atlas/AtlasUI/ScenarioEditor/ScenarioEditor.cpp @@ -3,8 +3,8 @@ #include "ScenarioEditor.h" #include "wx/glcanvas.h" -#include "CustomControls/SnapSplitterWindow/SnapSplitterWindow.h" -#include "CustomControls/HighResTimer/HighResTimer.h" +#include "SnapSplitterWindow/SnapSplitterWindow.h" +#include "HighResTimer/HighResTimer.h" #include "GameInterface/MessagePasser.h" #include "GameInterface/Messages.h" diff --git a/source/tools/atlas/DatafileIO/DatafileIO.vcproj b/source/tools/atlas/DatafileIO/DatafileIO.vcproj deleted file mode 100644 index c5d34d0447..0000000000 --- a/source/tools/atlas/DatafileIO/DatafileIO.vcproj +++ /dev/null @@ -1,187 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -