-
Notifications
You must be signed in to change notification settings - Fork 7
Archive
The "Archive" window controls general information of an archive (either archive.dat
for new games, or savgamXX.dat
files).
It shows which levels are available and allows to add or remove a level from being part of the active mod.
A further tab is the Game State
, which allows modification of a lot of the overall state.
This window is the starting point for any fan-mission, but also the window to go to for savegame editing.
The level list displays the 16 possible saved levels (0
for the first and 15
for the last level):
- a green number symbolises that the selected level is part of the active mod, and
- a light gray (not in mod, read-only) symbolises that the selected level is not part of the active mod. (It is "removed")
- a red entry shows that the level is missing as per current game state. Starting/loading this archive will result in a crash.
The two Clear and Remove buttons feature specific functions that alter the availability of the levels in the active mod and how they are stored in the archive.dat
file. Both actions can be undone.
The Clear button resets data of the selected level to default settings. This allows to build a level from scratch. Furthermore it adds the selected level to the active mod, if it was not part of the mod.
In summary, the Clear button provides three functions:
- to clear (reset) a levels level-global settings, level tiles and level objects which allows to rebuild the selected level from scratch
- to add an empty level to the active mod
- make the level part of the active mod again, should it have been "removed" previously.
To select the "cleared" level that you want to edit for the active mod, use the "Level Control" window.
The Remove button removes the level from the archive. Removed levels can not be edited and not part of the active mod. To be able to edit a "removed" level again and make it part of the active mod, the Clear button must be used to add it back to the archive.
A classic game engine always starts the game on level 1, so the editor indicates a missing level 1 by highlighting it in red.
The NDS "Source Port", which is a compatible game engine, allows to load original levels, or levels of other mods, if the given level is "removed" from the current mod.
In case of a new mission mod, this shows how the game would start up when selecting New Game
. Properties can only be modified if they are "overridden".
In case of savegame editing, this shows the current state and allows its modification.
The classic engine does not support changing where (and how) the character starts for a new game. It is always on level 1, on tile 30:22, facing West, and with a first email in their pocket (amongst other things). The window shows all the defaults that are taken.
Only special engines allow to override this starting information. When working on a mission, the Override button allows to change these values. When the initial game state is overridden, a Remove button allows to use the engine defaults again.
The Override button is not available as long as no level has been created, meaning, the mod is not yet a mission.
Next to the defaults mentioned above, a big default set is also that of the game variables (boolean and integer), which can be used by conditions for example.
Variables are described per project. They have a basis, which is selectable (the "context"). While the "Citadel" mission has the most defaults, the "Engine" still has a few variables already in use. Beyond that you can override the descriptions of any variable by opening the context menu of the specific variable through a single click of the secondary mouse button (the right button by default).
The names of variables will be shown in the respective selection slider in object properties.
Some variables are "hardcoded" by the engine. Their reset value cannot be changed. It is better to leave such variables alone, in general.
To remove all the overrides in one go, use the Remove all overrides button.
The Reset All button will reset all the variables according to the selected context. To reset a single variable, use the dedicated menu item of the context menu.
Note that not all variables have been mapped out. While for the engine all have been determined, mission "Citadel" may still have several variables marked as
(unknown)
. Pull-requests are happily accepted for ss-specs.
The two integer variables 31 and 32 have special handling:
- If they are equal at the start of a new game, the engine will randomize them until they aren't.
- Although internally they are integer variables like any other, they are treated as "Binary Coded Decimal" values, to be used as codes for numberpads.
The game state does not store all the details of a "general" item in the inventory. Instead, the engine stores all these items in the current level (at a location that is not reachable). And to these objects, the "General" inventory points to via object IDs (similar like container).
When the player starts a level transition, the engine takes all these inventory objects, removes them from this level, and ports them over to the destination level.
This means that a level should always have up to 16 spare object slots available! Although the engine has some default-cleanup procedure implemented (removing junk items first), it is better to always have this spare room available.
Some entries, such as the version of a particular hardware, are dependent on the actual names. To display them (instead of ???
), the list of static data should have the corresponding text resources available.
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.