...and some options for sortmapmodelslots and sorttextureslots
All three commands now accept three modifier keywords as arguments:
nosort do not sort the list alphabetically
nomerge do not merge any slots
mergeused merge used and unused (identical) slots freely
By default, the list is sorted and only unused identical slots are merged.
The keywords can be combined in any order. "nomerge" takes priority over
"mergeused".
Examples:
sortmapmodelslots
Sort the mapmodel slot list alphabetically and merge unused identical
slots. Merging an unused slot is pretty much the same as deleting it,
so this command sorts the list and removes unneeded double entries.
sortmapmodelslots nosort
Merges (deletes) unused double entries in the mapmodel slot list.
sorttextureslots nosort mergeused
Merges double entries in the texture slot list. If two identical
entries are used in the map, all uses are mapped to the new combined
slot. This leaves no visual changes on the map. Should be avoided, if
texture slots have been renamed manually - and the the renaming isn't
finished yet.
sortmapsoundslots mergeused
Sorts the mapsound slot list and merges all double entries.
DOCREF sortmapmodelslots sorttextureslots sortmapsoundslots
backpedal 1/42 of a microstep to get out of the way of rounding errors
(clip ents are not supposed to have seams, but at least GCC builds
with -O3 seem to also require a little here - so, 1/333 for clips)
instead of using a constant (and always wrong) speed, use the same part
of the movement vector that x- and y- slides use
(sadly, this fix seems to raise problems with the previous "fix sliding
along corners" commit, which seems to have liked the constant speed...)
* properly rotate the player hitbox
* add "corner bounce" (doesn't work flawlessly - but it's probably as
good as possible with this kind of physics engine)
also add script to generate a summary map license file
new (undocumented) debug commands:
loadmap <mapname>
loads a map directly, easy to use from scripts
debugline <filename> <text>
writes text to file (no path names allowed)
Two new string variables, mapinfo_license and mapinfo_comment, are stored
withing the header of a map file.
The variables are automatically read and written during loading and
saving maps. Default values are empty strings. The comment string is
ignored, as long as no license string is set. The license string is meant
to hold an abbreviated name of the license, picked from a list of
known map licenses.
DOCREF mapinfo_license mapinfo_comment
new physics for tagclipped corner cubes:
* corners between non-solids: tagclips extend the corner
(visualisation does not reflect that, yet)
* corners between solids: fully clipped (like before)
Drop support for maps outside packages/maps and for package config files.
(never been used in AC anyway)
also: generate all map related filenames with proper path separators
* do not use std::abs() because math.h includes one, that converts ints
to double. Use own iabs(), which directly uses labs() instead.
* don't use the word "gamma" as name for variables
* don't use a homebrew round() function
getclosestent
Returns the entity index number of the closest entity (or of the
pinned entity, if one exists). Returns -1, if no entities are on the map.
Returns always exactly the entity, that edit commands like delent
will use next.
DOCREF getclosestent