enlargearchslopeselections
If the variable is set to 1, after placing an arch or a slope, the
selection is enlarged, so that the arch or slope can be changed by
vdelta increments (for example, to raise an arch in 1/4 cube increments).
This is also the classic behaviour.
If the variable is set to 0 (which is now default), the selection remains
unchanged. This way, for example, the arch can be raised or lowered by
regular cube increments.
The arch menu allows changing the setting and also contains a script to
enlarge the selections once.
pushselections
New script to store the positions of all current selections. Can be used
repeatedly. To restore the selections, type "popselections".
enlargevdeltaselections
Enlarges all selections by one cube in x- and y- direction, to change a
selection from the "cube area" to the "vdelta area".
If an argument is given, it is used as increment value, so, for example
"enlargevdeltaselections -1" undoes a previous enlargement.
DOCREF enlargearchslopeselections pushselections enlargevdeltaselections
The menu lists all prefab arches and allows to edit them with sliders.
Arches can be saved and restored.
"archvertex" now returns the old value of the vertex, and if the vertex
argument is omitted, doesn't change it.
enumalias prefix
Lists all persistent aliases that start with prefix. Returns a table
with two entries per alias: 1) full name and 2) name without prefix
DOCREF archvertex enumalias
The edit protocol now allows the following commands in multiplayer:
arch, slope, edittag, edittagclip, selectionrotate, selectionflip
also:
mapenlarge has been limited to size 10 in multiplayer
entitiy undelete in multiplayer has been fixed
SV_EDITS, SV_EDITD and SV_EDITE are to be cleaned up with a protocol bump
DOCREF arch slope edittag edittagclip selectionrotate selectionflip
undolevel <level>
Returns the number of undo steps that can be undone. If argument "level"
is given, as many steps are undone, until "level" steps remain.
Example, during editing:
echo (undolevel)
prints number of previous editing steps, for example "55"
... do some editing ...
undolevel 55
undoes all changes to restore the previous state (if that state
is still in memory... keep in mind, undo-space is limited, see
"undomegs" parameter)
Unless memory limits delete states, undolevel commands can be undone
with "redo".
DOCREF undolevel
The mapper has now the choice to disable several graphics features on
the client (for his map only, of course). The overrides are stored in
the map header.
mapoverride_nowaterreflect
If "1", water reflection is disabled. Useful, when odd water colours
are used to emulate other liquids that are not supposed to be that
reflective.
mapoverride_limitwaveheight
If "1", waveheight is capped at 0.1 max. Useful for small water
areas (like puddles), where higher waves would look weird.
mapoverride_nostencilshadows
If "1", stencil shadows are disabled. On clients, where stencil shadows
are otherwise enabled, blob shadows are used instead. If shadows are
disabled anyway, they stay disabled. Useful for dim maps, where hard
shadows make no sense.
The player is free to ignore any of those overrides:
ignoreoverride_nowaterreflect
If "1", mapoverride_nowaterreflect is ignored and regular client
settings are used.
ignoreoverride_limitwaveheight
If "1", mapoverride_limitwaveheight is ignored, and "waveheight" is
used unchanged.
ignoreoverride_nostencilshadows
If "1", mapoverride_nostencilshadows is ignored.
DOCREF mapoverride_nowaterreflect ignoreoverride_nowaterreflect
DOCREF mapoverride_limitwaveheight ignoreoverride_limitwaveheight
DOCREF mapoverride_nostencilshadows ignoreoverride_nostencilshadows
also: more stuff in the map settings menu
getmaptimestamp fmt
Returns the "last written" timestamp of the current map in the requested
format. If fmt starts with "U", the time is given as UTC, otherwise
as local time. If fmt is empty, or not given or just the "U", the format
defaults to "YYYYMMDD_hh.mm.ss". Use "%c" to get something nicer.
DOCREF getmaptimestamp
getwatercolour
Returns a string with the four components of the water colour, red,
green, blue and alpha.
Example: echo (getwatercolor) --> 20 25 20 178
setwatercolour what value
Allows setting the components of the water colour independently. "what"
is either a keyword "red|green|blue|alpha" or the index number 0..3 and
determines, which component is set to "value".
Example:
watercolour 0 0 0
sets all colour components to zero
setwatercolour red 200
sets the red component to 200
DOCREF getwatercolour setwatercolour
same as looplist, but it automatically counts the loops in "i", starting
with 0.
Example:
a = [u v w] ; b = [x y z]
looplisti $a m [echo $m (at $b $i) $i]
u x 0
v y 1
w z 2
DOCREF looplisti
...including the option to sort the most visible textures to the default
slots for special uses (wall, floor, ceiling).
Also: add the information about default texture slots to the menus. Some
mappers may not know, yet.
Also: add a "Pick texture name" option to the edit texture slot menu.
The command sorttextureslots now allows to manually sort the first few
slots by adding the slot number to move to the slots #1, #2, #3...
DOCREF sorttextureslots
The command textureslotusagelist now returns two values per slot: usage
and visibility. If given the argument "onlymostvisible", instead of the
regular list, a list of only the most used wall, floor, ceiling and upper
wall textures (alternating with the keywords) is returned.
Example:
echo (textureslotusagelist onlymostvisible)
--> wall 211 floor 45 ceiling 0 "upper wall" 79
DOCREF textureslotusagelist
When a script file is executed, any additional arguments are passed
as execarg1..execargX to the script. The number of arguments is in
execnumargs and if the script in the file sets the value of execresult,
the exec command returns that value.
Example:
If there is a file testscript.cfg with this content:
execresult = (* $execarg1 $execarg2)
then the command
echo (exec testscript.cfg 6 7)
will output "42".
DOCREF exec
* removed convertcase
use toupper (concat A B C D ....) instead
* moved several COMMAND macros to their function bodies
* cleaned up screenshot extension handling
* prefix screenshot argument with "screenshot/" and add correct extension
Allows to reset notexture, to set a high-contrast color to find and
fix the areas and to set to a useful default texture.
As useful textures, in addition to rock.jpg and concrete.jpg, the menu
lists the default wall, floor and ceiling textures of the current map,
and also the last watched texture from the texture menu.
Also adds a few checks to detect unconverted map config files and misuse
of the new bright highlight textures.
Collect warnings during load_world() and issue a warning at the end. Most,
but not all warnings already printed a message - which usually scrolls out
of the console quite fast.
The collected value is also given back by the loadmap command, which
allows batch editing scripts for maps stop at problematic maps.
Mapsound errors are not detected, if soundvol is zero. Missing textures are
not flagged, if notexture is set.
The error code is ored together from those elements:
0x0000001 entity attribute overflow
One or more map entities had attribute values, that are no longer
supported with map format 10. Rework manually.
0x0000010 map decoder error
Indicates a damaged map file.
0x0000100 world error -1
Map is completely solid. Very funny.
0x0000200 world error -2
Map border is not solid. Fix manually.
0x0001000 missing skymap texture files
0x0002000 missing world texture files (only if no notexture is set)
0x0004000 missing mapmodel files
0x0008000 missing mapsound files
0x0010000 bad mapsound command in map config
0x0020000 bad mapmodel command in map config
0x0040000 bad texture command in map config
0x0080000 bad loadnotexture command in map config
0x0100000 error during loading of mapmodels (see earlier console output)
0x1000000 out of range integer value in map config (for example, "fog 0")
0x2000000 out of range float value in map config
0x4000000 generic cubescript error in map config
The command loadmap is now also available for non-debug builds.
DOCREF loadmap
The condition appeared on 32-bit g++ builds with -O3. Apparently, due to
optimisations, the player1 location vector was kept in FPU registers
during collision checks - and the written-to-memory float values gave
different results in the next round.
The fix forces a write to memory and a readback before the collision
checks. An alternative fix would be, to compile physics.cpp with the
switch -ffloat-store, but that would cause a bigger performance hit.
g++ 5.4 detects the static bools as "unused", which is true - but also
intentional.
Removing the "static" adds a lot of unused symbols to the global pool,
but it also prevents any compiler from detecting the "not used" status.
selectionwalk action beginsel endsel
The command iterates over all cubes in all selections and executes
"action" for each cube. The cubes of every selection are framed by
executions of "beginsel" and "endsel". The action script is allowed
to make changes to cube attributes, and if it does, an undo point is
automatically added. "beginsel" and "endsel" are optional.
While the scripts are executed, several aliases provide further info:
sw_cursel
Position and size of the current selection. Valid in all three
scripts. Holds four integer values for x, y, xs, ys. See command
"selection" for details.
(all following aliases are only valid during the execution of the action
script and provide the attributes of one cube of the map)
sw_abs_x
sw_abs_y
sw_rel_x
sw_rel_y
Absolute and relative (within the current selection) coordinates of
the current cube. Read-only values.
sw_type
Type of the current cube. Can be 0..4 for SOLID, CORNER, FHF, CHF and
SPACE. May be changed to other numerical value or keyword.
sw_floor
sw_ceil
Floor and ceiling heights of the current cube. Range -128..127
sw_wtex
sw_ftex
sw_ctex
sw_utex
Texture slot indices for wall, floor, ceiling and upper wall of the
current cube.
sw_vdelta
sw_tag
Vdelta and tag values of current cube.
sw_r
sw_g
sw_b
Current light values of current cube. Can be edited, but only with
temporary effect. Will be reset with the next light recalc.
The command is mostly useful for statistics scripts (like counting cubes
with certain attributes), but is can also be used for scripted editing,
as the following (useless) example shows:
selectionwalk [ += sw_floor (rnd 2) ]
Further changes:
The command listoptions now also can return the names of cube types:
echo (listoptions cubetypes)
The command countwalls is now implemented as a script instead of a
builtin command. The script works better, because it doesn't create
unnecessary undo points.
DOCREF selectionwalk listoptions countwalls