If a key is not listed in keymap.cfg but SDL provides a good enough name
for the corresponding scancode, a keymap entry is generated automatically.
If a key can't be found when adding a bind, it is checked, if SDL can
resolve the key name. The resolved keybind is then used to recreate the
keymap entry - and the bind can succeed.
Some SDL names for scancodes may not be usable as keymap names: if the
name contains (, ), $ or ", it will be rejected. Also, SDL does not
provide names for all scancodes. Scancode names provided by SDL can be
platform-dependant, therefore recreating the bind may fail on a different
platform.
However, the feature should work fine with most nonstandard keys - and the
information written to clientlog can be used to amend keymap.cfg
If a keycode can not be found on the list from keymap.cfg a second search
is done for the scancode. This should be helpful to assign
layout-dependent keys with rare keycodes.
Also: use a hash table for the keys (instead of a list).
Add two new scan codes for dead keys on german layouts: LEFTOF1 and
LEFTOFDEL.
* use keyrepeat and textinput switch code from sauer (on windows, opening
a console with "t" also produced a "t" as text otherwise)
* screenw and screenh are now cubescript-variables that always reflect
the actual resolution of the screen or the window
DOCREF screenw screenh
* switch travis to trusty
* new parameter fullscreendesktop: uses desktop resolution for fullscreen
* "colorbits" removed, since it's no longer supported
* scr_w/scr_h no longer necessarily reflect the true display resolution
(with fullscreendesktop = 1 and fullscreen = 1, scr_w and scr_h are
ignored)
* desktopw and desktoph are now guaranteed to have nonzero values
* fallback to old mouse behaviour when SDL_SetRelativeMouseMode fails
* require a click into the window to grab the mouse
* scr_w/scr_h default to desktop resolution on first run
thx sauerbraten :)
DOCREF fullscreendesktop colorbits
Clear the region on which the world is rendered (vertically flipped)
to create the reflection texture - otherwise regions not painted over
still contain data from the previous frame, including some HUD elements
in the bottom-left corner of the screen.
1. Before animation of the moving hand for throwing the grenade was cut,
now it's complete, like for normal grenade throw. To do that the code for
switching to previous weapon has changed location. selectweapon() isn't
used there, because if player has more grenades than 1, then after a throw
for a moment a grenade appeared in a hand, and just later previous weapon.
2. The changed code in quicknadethrow() prevents from shooting using right
mouse button, after starting to shoot quickly after grenade throw
(especially when player has more grenades than 1).
3. Also fixed resetting the "quicknade" variable.
It fixes the problem that activated grenade disappeared during switching
the weapons, when player tried to throw grenade when time for grenade
cooking was almost finished.
For example that fixes grenade attack animation, when in demo mode player
is spectated from 1st-person position. Till now there were visible
2 incomplete movements of the hand for throwing - first after activating
a grenade, second during throwing. Now there is visible one complete
movement, like in multiplayer.
the same mousewheel direction now always moves an entity away from or
towards the player
entproperty
if 100 is added to the attribute index parameter, the sign of the
increment value is changed
editaxis
returns a value for the main axis of player orientation (X:11, Y:12,
Z:13) and adds 100 if the player is looking in the negative
direction of the axis
DOCREF entproperty editaxis
greyed out menu items are a) grey and b) can't be operated
menuitemgreyedout 0|1
menu items added after this command are greyed out (1) or not (0)
DOCREF menuitemgreyedout
almost 3000 lines of "errors" contained one actual memleak, one actually
unused variable and three actual ambiguous code parts
from cppcheck website: "The goal is to detect only real errors in the
code (i.e. have zero false positives)." :)
thx for finding five problems in our code
new tool: list media sources
new stage: check vantage points
new: add single map from menu
new: option to abort maps on stage errors
fixed: make sure, player is alive (to be able to enter edit mode) during
conversions
newent7 type attr1 attr2 attr3 attr4 attr5 attr6 attr7
Works like newent, but can set all seven attributes directly.
Does not automatically put the camera yaw angle into mapmodel and flag
entities.
fixed selectionwalk so that the first parameter can be ""
DOCREF newent7
- always allow read-only edittextureslot, editmapmodelslot and
editmapsoundslot
- allow setvantagepoint when editing offline or spectating offline
- new var editing_sp: 1 during edit mode in singleplayer (offline)
- additional menus for read-only access to map config slots
- new bonus edit scripts: selectmiddle and unclipentclippedmodels
DOCREF edittextureslot editmapmodelslot editmapsoundslot setvantagepoint
DOCREF editing_sp
menuitemmapload mapname action [hoveraction [desc]]
create menu entry for a map file
menudirlistsub action dots
adds subdirectory entries to a menu with a files list
has to come after the menudirlist command
<action> is the command to be executed, when the menu entry is chosen
if <dots> is 1, an entry ".." is added
enumfiles path [extension]
lists files in a directory
if extension is specified, only files of that extension are listed
if the extension is "dir", only directories are listed
DOCREF menuitemmapload menudirlistsub enumfiles
pressing CTRL+F12 during spectating creates a clean screenshot and saves
it as map preview picture
modkeypressed
returns 1, if a CTRL key is pressed and 0, if not
screenshotpreview [lines]
creates a screenshot cropped to 4:3 with a given number of lines
(in the range of 144 to 480, default 240 or last given value)
and jpeg quality 80
gotovantagepoint
now returns 1, if the map actually has a vantage point set
DOCREF screenshotpreview modkeypressed gotovantagepoint