1
1
forked from 0ad/0ad
0ad/source/ps
wraitii 1c9efa6fb5 Implement Single-Player campaigns - Barebones tutorial campaign included.
This implements necessary tooling to create a simple SP campaign.
The architecture is intended to be easily extensible in the future.

'Campaign Run' contains the metadata of a campaign, e.g. maps
played/won. It's saved in the user folder under
saves/campaigns/*.0adcampaign
Campaign templates are JSON files in campaigns/

Campaigns can specify which Menu interface they will use. This is
intended to allow more complex layouts/presentation.
For now, a simple list interface is provided. This allows making
campaigns without any fancy art required (and effectively mimics AoE1's
campaign interface).

The behaviour on game end is also intended to be extensible, supporting
things such as carrying over units between scenarios - for now, it
simply records won games.

GameSetup is not available for now - scenarios are triggered with the
settings defined in the map/default settings. Improving on this requires
refactoring the gamesetup further.

The load/save game page has been extended slightly to support
showing/hiding campaign games (campaign gamed are saved under saves/
directly, there is no strong motivation to do otherwise at this point)

Closes #4387

Differential Revision: https://code.wildfiregames.com/D11
This was SVN commit r24979.
2021-03-02 15:43:44 +00:00
..
GameSetup Introduce C++ templates replacements for DEFINE_INTERFACE_X and RegisterFunction macros 2021-03-01 20:52:24 +00:00
scripting Implement Single-Player campaigns - Barebones tutorial campaign included. 2021-03-02 15:43:44 +00:00
tests Fix unit-only Attack move. 2021-01-21 15:58:33 +00:00
XML Refactors smart pointers creation, reduces code duplication and improves exception safety. 2021-02-13 23:53:40 +00:00
ArchiveBuilder.cpp Fixes crash with mod packing on a wrong path. 2020-10-04 10:17:34 +00:00
ArchiveBuilder.h Handle mods specified on the command line when using the archive builder. 2014-06-15 16:43:08 +00:00
CacheLoader.cpp Unify duplicate u8* to hex string functions in a new Hexify function variant, similar to bb1f86f515, used by Tests, CacheLoader, Terms and Conditions, Lobby and mod.io. 2018-08-08 12:59:05 +00:00
CacheLoader.h Fix biome-specific mappreviews in 7f602037ba for zipped mods, refs #4962. 2018-08-05 21:50:00 +00:00
CConsole.cpp Fix typos in 12cceed3d9 2021-01-16 15:46:56 +00:00
CConsole.h Introduce C++ templates replacements for DEFINE_INTERFACE_X and RegisterFunction macros 2021-03-01 20:52:24 +00:00
CLogger.cpp Include Pyrogenesis.h and os_path.h where needed 2020-01-02 18:07:40 +00:00
CLogger.h Update (and debundle) fmt dependancy 2020-11-26 21:01:32 +00:00
Compress.cpp More build fixes for FreeBSD. 2012-01-31 00:06:56 +00:00
Compress.h Further header & precompiled cleanup, fix no-PCH builds. 2020-12-09 14:39:14 +00:00
ConfigDB.cpp Fixes config crash in case of an empty value 2021-02-14 02:10:46 +00:00
ConfigDB.h Fixes config crash in case of an empty value 2021-02-14 02:10:46 +00:00
CStr.cpp Fix segfault when sending a very large net chat message. 2020-08-01 15:25:13 +00:00
CStr.h Add a hashing function for CStr8 & CStrW 2020-11-19 15:25:27 +00:00
CStrIntern.cpp Refactors smart pointers creation, reduces code duplication and improves exception safety. 2021-02-13 23:53:40 +00:00
CStrIntern.h Replace boost::unordered_map, boost::unordered_set with std::unordered_map, std::unordered_set to establish consistency. 2019-11-25 14:30:25 +00:00
CStrInternStatic.h Removes shader code duplication to calculate LOS. 2021-01-20 18:46:32 +00:00
DllLoader.cpp Fix and disable some pesky Windows warnings. 2021-02-05 12:20:06 +00:00
DllLoader.h Remove trailing whitespace and whitespace in empty lines of source/ except source/third_party/. 2016-11-23 11:18:37 +00:00
Errors.cpp Don't leak all GUI objects on name ambiguity following 5cc814759f and remove ERROR_GROUP GUI. 2019-10-11 16:20:50 +00:00
Errors.h Catch exceptions by reference (by convention), based on patch from Markus, refs #1852 2013-05-22 22:27:53 +00:00
FileIo.cpp Update (and debundle) fmt dependancy 2020-11-26 21:01:32 +00:00
FileIo.h Clean up header includes, add new forward declarations. 2020-11-21 11:20:29 +00:00
Filesystem.cpp Further header & precompiled cleanup, fix no-PCH builds. 2020-12-09 14:39:14 +00:00
Filesystem.h Further header & precompiled cleanup, fix no-PCH builds. 2020-12-09 14:39:14 +00:00
Game.cpp [SM52 2/2] Update to Spidermonkey 52 APIs. 2020-11-18 14:39:04 +00:00
Game.h Update (and debundle) fmt dependancy 2020-11-26 21:01:32 +00:00
Globals.cpp Fix hotkeys not releasing properly. 2021-01-16 15:24:58 +00:00
Globals.h Fix hotkeys not releasing properly. 2021-01-16 15:24:58 +00:00
GUID.cpp Actually remove trailing whitespace for non-header files as well. 2016-11-23 13:02:58 +00:00
GUID.h Clean up header includes, add new forward declarations. 2020-11-21 11:20:29 +00:00
Hotkey.cpp Fix unit-only Attack move. 2021-01-21 15:58:33 +00:00
Hotkey.h Further Hotkey fixes. 2021-01-18 10:58:16 +00:00
Joystick.cpp Remove disabled by default SDL1 support. 2015-12-14 10:52:21 +00:00
Joystick.h Renames our sdl.h to libsdl.h, to avoid case sensitivity errors when it includes SDL.h. 2012-01-12 23:32:27 +00:00
KeyName.cpp Replaces UNICODE characters in the code by consistent ASCII characters. 2021-01-15 10:07:36 +00:00
KeyName.h Fix no-PCH builds and checkrefs following a4852c4c01 2020-11-20 11:41:56 +00:00
Loader.cpp Remove binary_function usage. 2020-11-30 15:45:05 +00:00
Loader.h Resolve Loader memory leak from 1f1642bfe3. 2019-09-30 08:49:00 +00:00
LoaderThunks.h Remove not needed checks and code for VS2015 [VS2013 -> VS2015] 2020-01-19 12:43:41 +00:00
Mod.cpp [SM52 2/2] Update to Spidermonkey 52 APIs. 2020-11-18 14:39:04 +00:00
Mod.h Rename ScriptRuntime to ScriptContext 2020-11-14 10:57:50 +00:00
ModInstaller.cpp Improve JS Exception handling. 2020-11-15 18:29:17 +00:00
ModInstaller.h Rename ScriptRuntime to ScriptContext 2020-11-14 10:57:50 +00:00
ModIo.cpp [SM78 2/2] Update to Spidermonkey 78 APIs 2020-12-06 14:03:02 +00:00
ModIo.h Include Pyrogenesis.h and os_path.h where needed 2020-01-02 18:07:40 +00:00
Profile.cpp Fix windows SEH hook when crashing in an std::thread 2021-01-10 08:39:54 +00:00
Profile.h Further header & precompiled cleanup, fix no-PCH builds. 2020-12-09 14:39:14 +00:00
Profiler2.cpp Fix windows SEH hook when crashing in an std::thread 2021-01-10 08:39:54 +00:00
Profiler2.h Fix windows SEH hook when crashing in an std::thread 2021-01-10 08:39:54 +00:00
Profiler2GPU.cpp Fix building without precompiled headers. 2020-11-18 11:35:36 +00:00
Profiler2GPU.h Make all Wildfire Games copyright headers consistent by always ending with a period and using (C) instead of (c). 2017-07-10 14:26:24 +00:00
ProfileViewer.cpp Add missing files in 4942cabab5 2020-12-31 14:27:02 +00:00
ProfileViewer.h Further header & precompiled cleanup, fix no-PCH builds. 2020-12-09 14:39:14 +00:00
Pyrogenesis.cpp Bump version to alpha 25. 2021-02-27 08:48:30 +00:00
Pyrogenesis.h Fix windows SEH hook when crashing in an std::thread 2021-01-10 08:39:54 +00:00
Replay.cpp Improve JS Exception handling. 2020-11-15 18:29:17 +00:00
Replay.h Include Pyrogenesis.h and os_path.h where needed 2020-01-02 18:07:40 +00:00
SavedGame.cpp Further header & precompiled cleanup, fix no-PCH builds. 2020-12-09 14:39:14 +00:00
SavedGame.h [SM52 2/2] Update to Spidermonkey 52 APIs. 2020-11-18 14:39:04 +00:00
Shapes.cpp Fix some gcc 8 and gcc 9 compiler warnings that were thrown 4500 times. 2019-07-09 00:18:48 +00:00
Shapes.h Fix some gcc 8 and gcc 9 compiler warnings that were thrown 4500 times. 2019-07-09 00:18:48 +00:00
Singleton.h Simple refactoring of Singleton. Make it non-copyable. 2019-01-13 15:11:40 +00:00
TemplateLoader.cpp Add missing cpp files in last commit refs D2503 2020-05-28 18:18:00 +00:00
TemplateLoader.h More ScriptInterface const. 2017-11-25 06:49:58 +00:00
Threading.cpp Fix windows SEH hook when crashing in an std::thread 2021-01-10 08:39:54 +00:00
Threading.h Fix windows SEH hook when crashing in an std::thread 2021-01-10 08:39:54 +00:00
ThreadUtil.h Fix windows SEH hook when crashing in an std::thread 2021-01-10 08:39:54 +00:00
TouchInput.cpp Cleanup Camera related code and uses constant references where possible. 2019-10-03 12:58:47 +00:00
TouchInput.h Set svn:eol-style=native, fix some inconsistent line endings 2013-12-06 00:42:50 +00:00
UniDoubler.h Use default Unicode encoding in source code on Windows. 2017-11-29 20:14:22 +00:00
UserReport.cpp Refactors smart pointers creation, reduces code duplication and improves exception safety. 2021-02-13 23:53:40 +00:00
UserReport.h Write UserReport data to local logfiles, so that users can review the personal data impact without exposing the data to JS/mods, refs #5257, b3438cabd2. 2018-08-22 22:17:42 +00:00
utf16string.h Further header & precompiled cleanup, fix no-PCH builds. 2020-12-09 14:39:14 +00:00
Util.cpp Fixes big screenshots with water (reflection or refraction camera), adds big screenshot customization. 2021-02-12 21:20:07 +00:00
Util.h Fixes big screenshots with water (reflection or refraction camera), adds big screenshot customization. 2021-02-12 21:20:07 +00:00
VideoMode.cpp Allows to override GL version for SDL. 2021-01-22 19:40:02 +00:00
VideoMode.h Remove obsolete GetVideoMode platform-specifics, replaces by platform-agnostic SDL2`s APIs. 2020-06-08 17:49:26 +00:00
VisualReplay.cpp Further header & precompiled cleanup, fix no-PCH builds. 2020-12-09 14:39:14 +00:00
VisualReplay.h Mass rename CxPrivate to CmptPrivate. 2020-11-13 16:44:15 +00:00
World.cpp [SM52 2/2] Update to Spidermonkey 52 APIs. 2020-11-18 14:39:04 +00:00
World.h [SM52 2/2] Update to Spidermonkey 52 APIs. 2020-11-18 14:39:04 +00:00