Fix collapsing
fixed a potential bug, where adding a tree to spawn to the array would
not spawn something else since the parsing was based on a static number
tone down spawn
Resurrect the JSON load order documentation.

I kind of lost it in the emergency oops-fix when I broke JSON loading
altogether for a little bit. Let's have that back now.
Change the C-style arrays in the player class to C++-arrays

Extend the json classes to read/write std::arrays.
Remove the operator=, copy constructor from Creature

Also removed from the inheriting classes player, npc, monster, Character.
Instead let the compiler create those functions.

Also added a virtual destructor to the Creature class.

This allows the compiler to optimize those functions.
Also when adding a new member, one can not forget to add this to the copy operator, the compiler automatically adds it.

Made the copy constructor/operator of Creature and Character protected. Those classes can not be instantiated anyway, one can not copy a Creature, but only a player or monster object.
Always save player/monster/npc with content

Removes the save_content parameter from the serialize functions.

Move storing and loading of player::worn/player::inv/player::weapon to common load/store function. It must be done for npc and player.

Also let the json classes handle the item-vector that is monster::inv, instead of iterating over it manually when storing it.
Export load/store of Creature members to functions of that class.
Implement hierarchical store and load for Creature and sub classes.

Added comment to document the way it is supposed to work.

Separated serialize and deserialize of player, monster, npc into load and store functions which call the load/store functions of the parent classes.
Food description
Check cw
Fix display bug in menues/listings:

Use function calcStartPos to calculate the display offset (first line of the menu to be printed).
It incorporates the option MENU_SCROLL and does the actual calculation correctly, the calculation in construction.cpp was missing the offset=0 case.
Print npcs & notes and vehicle names on overmap in one step

Instead of having three nearly identical functions, add note, npcs names and vehicles names to a vector and print that vector line by line.
Also uses utf8_width for each line (not used previously for npc names and vehicle names).

Removed overmap::print_vehicle and overmap::print_npcs.
Moved overmap::has_vehicle to overmapbuffer.
Remove storing and restoring old data values in defense games.

That data is reloaded whenever the user starts a new game anyway (as it's part of the world data, probably altered by mods).

Also remove `(void)g` - old artifacts of a simpler time when g was parameter to those functions.
Truncate the mod names in the mod selection window.

Extracted display of the two lists into a function, called for both lists.
Truncate the mod name with the utf8_truncate function, don't use fold_and_print there.
Fix long option names / values wrapping onto next line.

Uses utf8_truncate to truncate long strings.
Defense game mode: initialize members on style DEFENSE_EASY

Previously the DEFENSE_EASY style would bypass initialization of many members.

Moved the default entries in the swtch statements out of the switch
statement. Behaviour is unchanged, but in case someone adds a
style/location, the compiler will warn about a missing case entry.
Remove obsoleted rule in Makefile.

SDLMain.o is no longer needed since SDL2 does not use it.

The file SDLMain.m which is required for this rule does not exist since 2bd95404f0654d72d8f93bed883020cfa7dced1b
Fix description of keybindings of mod selection tab:

'+' and '-' are used to move the mods up/down in the list of selected mods.
CONFIRM (enter key) is used to activate or deactivate the mod (depending on which list is active).
Redraw the mod selection screen after the help screen has been visited.