Earlier in third person perspective:
1. reflection of the spectator (player1) was visible on the water (at least
after full cycle of spectate mode switching);
2. it was possible to move position of the invisible spectator's (player1)
ghost, although he should be attached to spectated player. Bug was visible
on the water (the reflection moved) and in some cases on minimap - when
player executed "spectate" and later "spectatemode 1", then camera stayed
in the same position, but player position changed.
Thanks BrutalSystem
Now, if oldfashionedgunstats is enabled, then ammo stats > 99 won't collide
with grenade icon on modern monitors with aspect ratio > 1.5 . It will
collide still on older monitors, because of lack of the free space on HUD.
* 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
It bases mainly on 98d01d1f34
Some changes to allow the current experimental branch to be used for a
hotfix release for win10 users.
The latest win10-update broke compatibility with SDL1.2 - and apparently
MS is not going to fix it. This hotfix allows win10 users to use our
experimental SDL2-based client.
It is quite incompatible with the 1.2.0.2 release - but it's good enough
to be played in pubs.
Coopedit will not work and quite a few custom maps won't work properly.
This is due to lots of changes in the map file format and does not mean,
that those custom maps can not be played in future game releases - they
just need to be reworked. See akimbo2 to check out the reworked maps, btw.
The old official maps and most conservative custom maps should be fine.
Due to some physics changes, players of the hotfix client will have some
advantages and some disadvantages compared to the regular clients, so DO
NOT USE THE HOTFIX CLIENT TO PLAY COMPETITIVELY.
By default, if an incompatible map is loaded in multiplayer, the client
will disconnect automatically. This can be disabled (disconnectonmaperror),
but will probably get you marked as cheater, because on incompatible maps,
model clipping may not work properly. Just stick to compatible maps...
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.