- Generates "MINIMAP.png" in your srb2home
- Uses inherited automap code to render to a temporary buffer
- Because am_map.c is a mess of filescope static variables right now, this only works when the automap is disabled.
- Currently an equal alternate method to SLADE's map image export, but because we're in control, additional features can be added later...
- TODO: Off vertically by one pixel on GHZ. Otherwise effectively identical in shape
- TODO: the colours are rancid, I wonder if they were even updated for the 2.2 palette
Related:
- Use identical linear-time mechanisms for detecting borders of map geometry between automap and minimap
- Automap was previously using iteration over all vertices
- Minimap was previously pointlessly writing min/max values twice
* Instead of doing constant G_MapNumbers when finding the relationship between maps and cups...
* Add a cache of level IDs to cups, to go with the strings.
* Add a cache of the cup pointer to maps, so we don't have to search through all cups to find our map. (done in P_InitMapData)
* Pre-emptive work: G_IsSpecialStage and P_GetNextEmerald now reference cup data instead of a hardcoded ID set.
* Remove a bunch of old stuff from mapheaderinfo_t/associated, and reorder what stays
* Countdowntimer? 💥
* Startrings? 💥
* sstimer/ssspheres? 💥
* forcecharacter? 💥 (distinct from forceskin)
* interscreen? 💥
* sstage_start/end and smpstage_start/end? 💥💥💥💥
* You've been blocked
* G_MapNumber now returns a special NEXTMAP_INVALID if not found, for more consistent reference.
* Incorporate a good chunk of the `edit-headers` branch. Can't clear maps individually because of the new restrictions on sequential mapheaders, but we can add a "disable in vote screen, not even for map hell/archive" flag to a map at some future juncture for equivalent functionality...
Also:
- improved error prints for SOC condition definitions
- improved bounds checking to use `nummapheaders` for iterating over mapheaderinfo
There are still situations that use NUMMAPS like mapvisited, randmapbuffer, etc, which need to be addressed before merger.
* Register cv_netdemosize so it actually works
* Replace all the raw Z_Frees on demobuf with the appropriate function
* Free demobuf in G_CheckDemoStatus (yay, no more buffer == NULL asserts)
* ...allocating a buffer of uninitialized length? what
I would've liked to make it use a single allocate function to do this very cleanly, but these cases were very clearly not meant to be standardized and use wildly different methods to allocate & free...
This caused some scary issues with P_SaveNetGame the other day, and it's making ACS net sync harder. Let's just cut this off right now.
Also fixed some scary mix-ups in some of the Lua archiving code.
- Default color definitions are now parsed properly
- Fallback color value is now default color instead of player color
- Player setup now renders follower with right color
Selecting the first follower in the list is currently broken, will
fix later