* Use the "SOCKET" typedef to represent socket descriptors (instead of "int")
* Add wrapper functions for getting & setting the last socket error ("errno" on Unix)
* Add a wrapper function for strerror, strsockerror, that works on Windows
* Use recv(2) and send(2) instead of read(2) and write(2) respectively
* Use INVALID_SOCKET and SOCKET_ERROR instead of -1 to find errors
* Move setting of sockets to blocking/non-blocking to a separate function
* Add Windows-specific wrapper functions for getaddrinfo() and freeaddrinfo()
- Currently work only from 2000 *or* XP upwards, documentation is fuzzy.
Addresses #435
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7289 4a71c877-e1ca-e34f-864e-861f7616d084
* Check for write_all() == -1 (error) instead of "< 0" and "!= size" to
see whether sending has failed.
* Don't just mark sockets as "invalid" on error (by setting them to
NULL), close them as well.
* Give decent error messages on write failure (most likely a disconnect)
Addresses #435
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7288 4a71c877-e1ca-e34f-864e-861f7616d084
In this case, 'Remove unnecessary SDL includes.' Removed the #include for C99 types that we use on non C99 compilers.
In case your wondering, using SDL_stdinc.h, since SDL_types.h is Deprecated.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7250 4a71c877-e1ca-e34f-864e-861f7616d084
Adds feedback from the lobby server.
Notes: You have to enter a password *first*, and then either host the game, or join a game.
Thanks to elio for the new icons!
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7079 4a71c877-e1ca-e34f-864e-861f7616d084
* Remove unnecessary "// =====..." and "//~~~~..." comment bars
* Use "bool" instead of "BOOL"
* Use ARRAY_SIZE(registry) instead of REGISTRY_HASH_SIZE to get the amount of hash entries
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7068 4a71c877-e1ca-e34f-864e-861f7616d084
* Enable, at the user's request, FSAA.
- The user can specify the amount of samples (should be a power of 2) with the "FSAA" config option.
- The user can disable FSAA by setting the "FSAA" option to "0" (zero)
This closes#387.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7065 4a71c877-e1ca-e34f-864e-861f7616d084
rectangle extension. It uses one texture with a fixed size for videos (the old code allocated
a new texture once per frame). The texture size is set at 512x512, which is enough
for the current 320x240 videos. In addition the message about the radar not working is
removed and some extra checks added. Patch by Christian Ohm.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7021 4a71c877-e1ca-e34f-864e-861f7616d084
If client connects to host, and they don't respond (within 7secs) to the version packet, then it will auto-kick them.
If client sends wrong version in the version packet, then it will auto-kick them.
Also adds kick message support, for the different types of kicks that we do.
merged from r6992
NOTE: trunk won't connect with 2.2. This is *on purpose*, just testing version checking code for now.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7014 4a71c877-e1ca-e34f-864e-861f7616d084
In C++ enums are treated differently from integers in some cases, causing GCC to emit some rather nasty abort()-like code (x86/x64 instruction "ud2a") when used as the type for va_arg().
This was the compiler message generated:
{{{
stack.c:339: warning: ‘INTERP_TYPE’ is promoted to ‘int’ when passed through ‘...’
stack.c:339: note: (so you should pass ‘int’ not ‘INTERP_TYPE’ to ‘va_arg’)
stack.c:339: note: if this code is reached, the program will abort
}}}
NOTE: Compiling as C++ now works (as does the produced code), using: {{{./configure CC=g++ CFLAGS=-fpermissive --enable-debug=relaxed}}}
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6957 4a71c877-e1ca-e34f-864e-861f7616d084
In fact, WZ_ASSERT_STATIC_STRING should now work on ''all'' valid C++ compilers.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6930 4a71c877-e1ca-e34f-864e-861f7616d084
The blueprint is a green transparent version of the building you want to build. It is bright green when the build location is valid and red when it is not. After the building is placed a darker version of the green building will remain until a droid starts construction.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6840 4a71c877-e1ca-e34f-864e-861f7616d084
*Adds LOG_FEATURE (--debug feature) so we can keep track of features.
*Disallow VTOLs from being able to poach features.
*Changes feature spawning from instant to a variable time period.
*When feature can't be placed, break out of routine instead of sending invalid data.
*Actually remove features, and notify others that the feature was removed. (AKA, actually sync between machines.)
ASSERT() when numNaybors is invalid.
Fix a spamming debug line mistakenly changed in r6677
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6737 4a71c877-e1ca-e34f-864e-861f7616d084
In certain circumstances, if you try to abort out of a MP game (maybe SP as well), it would crash after deleting the widget, since it was still referencing the pointer in the global.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6732 4a71c877-e1ca-e34f-864e-861f7616d084
In MP games, since gametime can vary so much between machines, needed a more reliable time source to sync up messages between them.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6679 4a71c877-e1ca-e34f-864e-861f7616d084
* Fixes eventFireCallbackTrigger which was called multiple times.
* LOG_NET is to *only* be used for network traffic, not for sync issues.
* Adds visual display about when player leaves/drops.
* Adds / cleans up debug messages concerning connection issues.
* Adds new message type NET_PLAYER_DROPPED, (as opposed to NET_PLAYER_LEAVING). One is when we lose a connection, the other is when a player quits 'normally'.
Will be adding icons from Ticket #247 done by Zarel soon.
NOTE: please use --debug net if you have connection issues!
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6677 4a71c877-e1ca-e34f-864e-861f7616d084
We need to change the Glee.diff file as well.
Closes ticket #262
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6642 4a71c877-e1ca-e34f-864e-861f7616d084
**NOTE**: this will break gcc compiles. The fix is in the next commit, so we can get a clean diff from the "clean" 5.4 to the modified version that we require.
Change log:
* OpenGL 3.0 support, and 41 new extensions.
* 5.4 : fixes for GL_NV_gpu_program4, GL_EXT_shader_program4.
* 5.4 : Added 5 new extensions :
o GL_EXT_texture_swizzle
o GL_NV_explicit_multisample
o GL_NV_transform_feedback2
o WGL_NV_gpu_affinity
o GLX_ARB_create_context
* 5.4 : Various dead/dummy extensions have been removed, including :
o GL_NV_geometry_program4 (merged with GL_NV_gpu_program4)
o GL_NV_vertex_program4 (merged with GL_NV_gpu_program4)
o GL_NV_fragment_program4 (merged with GL_NV_gpu_program4)
o WGL_NV_video_out (renamed to WGL_NV_video_output)
* 5.33 : fixes some GCC warnings
* 5.33 : fixes some conflicts with glext.h on OS X
* 5.33 : fixes an issue where 2 extensions could go missing on some platforms
* 5.32 : fixes a potential access violation in __GLeeGetExtensions - thanks to Jacques Beaurain for spotting this bug.
* 5.31 : fixes a GLX compile error
* 5.30 : Better Linux/Mac OS support
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6641 4a71c877-e1ca-e34f-864e-861f7616d084