Player: Fix compiler warnings
Also fix some warnings in other files.
Also fix some warnings in other files.
Fix preferences sync
Fix BFG and SSG empty switching
Options: add third masterserver (by TerminalHash) in config.
Fix empty switching
Add option to skip fist switching
Add weapbest command
Make autoswitch server-side. Add option to skip empty weapons by travi$
player: fix frag decrement on suicide
Game: subtraction points by suicide in team
Fix "by priority" in russian lang.
Game: improving weapon autoswitch, added rotation by travi$
Net: improving anti-autism measures by travi$
Game: Weapon autoswitch by travi$
these are msecs, not frames
net: free peer data before disconnect
net: force-kick penalized clients
net: kick clients if they take too long to auth
net: log connection attempts
more anti autism measures
Player: Add sanity check for network client peer
Net: Improve malformed packet handling more
Net: Handle malformed packets gracefully on server
headless: use dfserver.cfg instead dfconfig.cfg by default
graphics: lerp flags
game: mplats now move flags and items
net: sync moving items and flags
game: stationary mplats act as conveyor belts
graphics: lerp mplats
game: add flag dropping
use p1_dropflag/p2_dropflag/dropflag, g_allow_dropflag and g_throw_flag for adjustment
use p1_dropflag/p2_dropflag/dropflag, g_allow_dropflag and g_throw_flag for adjustment
game: execute onwadend event after state is changed to INTERCUSTOM
very important commit.
svrlist: fix local server ip decoding on big endian machines
android: update build instructions
android: update icons
android: support android 4.0
saves: fix incorrect map load after failed state load
players: fix bot state loading
monsters: update cache after load state
sfs: fix collector (again?)
android: remove unneeded layout
android: add simple launcher (port from k8vavoom)
android: setup argc/argv
android: add libminiupnpc
android: explicitly load libcrystax
fpc322: fix segfault on arm
Game: Revamp prev and next weapon commands
- Do not use key down/key up scheme for it
- Make it work the same way how direct weapon change works
- Take advantage of repeated key binds that were added earlier
Addendum to dac16ad95.
- Do not use key down/key up scheme for it
- Make it work the same way how direct weapon change works
- Take advantage of repeated key binds that were added earlier
Addendum to dac16ad95.
master: Fix implicit isprint() warning
game: ... but only if we're not in game right now
game: apply default game settings after setting them
master: add anti autism measures
Fix incorrect user message if no servers online but master is alive
Fix compilation errors when building Windows EXE for amd64 target
On Windows for amd64 (64-bit, x64), the x87 FPU had been forbidden in kernel-mode for ABI reasons and declared as deprecated in user-mode:
https://docs.microsoft.com/en-us/windows-hardware/drivers/kernel/using-floating-point-or-mmx-in-a-wdm-driver
https://docs.microsoft.com/en-us/windows/win32/dxtecharts/sixty-four-bit-programming-for-game-developers#porting-applications-to-64-bit-platforms
Nevertheless, currently it can still be used (just like in Linux for amd64), and this will remain as long as Windows thread scheduler preserves x87 internal machine state across context switches. That's the reason why FPC doesn't support it by default but only when built with FPC_SUPPORT_X87_TYPES_ON_WIN64 defined. So the only proper and correct way is to use FPC_HAS_TYPE_EXTENDED to determine if standard 'Extended' type is available.
It's also worth noting that FPC_SOFT_FPUX80 and FPC_SOFTFLOAT_FLOATX80 (other FPC compilation switches) seem to be irrelevant in this case - they're intended to make the compiler able to perform cross-compilation for x86 on non-x86 systems:
https://gitlab.com/freepascal.org/fpc/source/-/issues/9262
https://forum.lazarus.freepascal.org/index.php?topic=29678.0
https://lists.freepascal.org/fpc-devel/2020-September/043174.html
Some other links I found useful when investigating this case:
https://lists.freepascal.org/fpc-pascal/2017-August/052158.html (and subsequent mails in this thread)
https://www.virtualdub.org/blog2/entry_107.html
http://www.asmcommunity.net/forums/topic/?id=30178
https://forum.lazarus.freepascal.org/index.php/topic,43878.msg307985.html#msg307985
https://forum.lazarus.freepascal.org/index.php?topic=49890.0
https://stackoverflow.com/questions/4064189/floating-point-support-in-64-bit-compiler
https://stackoverflow.com/questions/15176290/what-is-long-double-on-x86-64
https://stackoverflow.com/questions/3206101/extended-80-bit-double-floating-point-in-x87-not-sse2-we-dont-miss-it
https://retrocomputing.stackexchange.com/questions/9751/did-any-compiler-fully-use-intel-x87-80-bit-floating-point
Although this commit fixes the compilation, the 64-bit builds are still unusable because we're lacking 64-bit libraries in d2df-binlib at the moment, thus making such EXE complaining on existing DLLs with INVALID_IMAGE_FORMAT (0xC000007B) at startup.
On Windows for amd64 (64-bit, x64), the x87 FPU had been forbidden in kernel-mode for ABI reasons and declared as deprecated in user-mode:
https://docs.microsoft.com/en-us/windows-hardware/drivers/kernel/using-floating-point-or-mmx-in-a-wdm-driver
https://docs.microsoft.com/en-us/windows/win32/dxtecharts/sixty-four-bit-programming-for-game-developers#porting-applications-to-64-bit-platforms
Nevertheless, currently it can still be used (just like in Linux for amd64), and this will remain as long as Windows thread scheduler preserves x87 internal machine state across context switches. That's the reason why FPC doesn't support it by default but only when built with FPC_SUPPORT_X87_TYPES_ON_WIN64 defined. So the only proper and correct way is to use FPC_HAS_TYPE_EXTENDED to determine if standard 'Extended' type is available.
It's also worth noting that FPC_SOFT_FPUX80 and FPC_SOFTFLOAT_FLOATX80 (other FPC compilation switches) seem to be irrelevant in this case - they're intended to make the compiler able to perform cross-compilation for x86 on non-x86 systems:
https://gitlab.com/freepascal.org/fpc/source/-/issues/9262
https://forum.lazarus.freepascal.org/index.php?topic=29678.0
https://lists.freepascal.org/fpc-devel/2020-September/043174.html
Some other links I found useful when investigating this case:
https://lists.freepascal.org/fpc-pascal/2017-August/052158.html (and subsequent mails in this thread)
https://www.virtualdub.org/blog2/entry_107.html
http://www.asmcommunity.net/forums/topic/?id=30178
https://forum.lazarus.freepascal.org/index.php/topic,43878.msg307985.html#msg307985
https://forum.lazarus.freepascal.org/index.php?topic=49890.0
https://stackoverflow.com/questions/4064189/floating-point-support-in-64-bit-compiler
https://stackoverflow.com/questions/15176290/what-is-long-double-on-x86-64
https://stackoverflow.com/questions/3206101/extended-80-bit-double-floating-point-in-x87-not-sse2-we-dont-miss-it
https://retrocomputing.stackexchange.com/questions/9751/did-any-compiler-fully-use-intel-x87-80-bit-floating-point
Although this commit fixes the compilation, the 64-bit builds are still unusable because we're lacking 64-bit libraries in d2df-binlib at the moment, thus making such EXE complaining on existing DLLs with INVALID_IMAGE_FORMAT (0xC000007B) at startup.
added some new msgs for friendlyfire options
osx: fix library linking (sdl_mixer)
osx: fix library linking
Other: add RPM spec.
fix whitespace
Game: add damage absorption
Update man and year in credits.
info: show enet version on startup
game: fix monster projectiles in coop
game: hit friendlies with everything by default
config: save player teams
game: add option to disable hits on friendly players
Console: Add support for repeated key binds
Game: Fix magic value check of gSpectMode
fix interpolation of spawned items
add man page by terminalhash
FPC3.2.0 compat patch by deaddoomer
don't write empty blocks (by deaddoomer)
net: add some more gulag tools
sdl2: fix hack for menus on android
whitelist a bunch of shit
al: fix build with sdl 1.2
game: clean up TPlayer.GetRespawnPoint()
now players can spawn even when there's a single point of any type
now players can spawn even when there's a single point of any type
game: g_FatalError actually ends the game
Game: Assign gsGameFlags where it's missing
scale option is now a capped switch
net: cancel interpolation of teleported players
update README
net: only flush packets after an actual frame; remember old positions before net update on client
Netmaster: Additional check for server name in ping response
Net: Report actual server port in ping response
Also fix the same problem for UPnP port forwarding.
Also fix the same problem for UPnP port forwarding.
AL: remove debug print
AL: update streams in a separate thread
draw talkbubble above the player corpse when necessary
corpse following is now done by the camera instead of the player
was this even necessary?
don't interpolate during endgame fadeout
move NilThreadId to utils
AL: add GME music loader
simplify TSoundLoader interface
decouple repainting from blitting the FBO; draw touch overlay after FBO
network now always ticks at 36 tick
attempt to unfuck serverlist
put network interp back in
Revert "purge cl_interp from the code"
This reverts commit cb61300b61ba18d486d19edf315f05b5b494fac3.
This reverts commit cb61300b61ba18d486d19edf315f05b5b494fac3.