Commit Graph

2111 Commits (ba36ac6cfd69466d2b36b5cba82fedb2fa6513da)

Author SHA1 Message Date
Giel van Schijndel 9182f1161b Make the fact that we're stripping NUL chars more explicit (see r7437)
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7496 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-28 09:59:23 +02:00
Buginator bebb4e773a set the volume of the FMV based on the user's preferences
fixes ticket:526

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7490 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-28 09:59:23 +02:00
Buginator 8a87d1985e Fix strlcpy() & strlcat() to use ASSERT_OR_RETURN
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7478 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-28 09:59:21 +02:00
Buginator 9a3f1046be Fix windows crash dump report, by returning back a c_str() instead of a string.
Fixes ticket:519

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7476 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-28 09:59:21 +02:00
Per Inge Mathisen fb980b636c Ease up on the volume of repeat testing done on the audio code.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7407 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-15 22:29:32 +02:00
Giel van Schijndel 52c8ba24e4 Revert accidentilly committed revisions r7394, r7395 and r7396 (part of a private branch)
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7398 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-15 22:29:31 +02:00
Giel van Schijndel af40e39f77 Move construction/allocation code for JSON structures to json_value.[ch]
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7396 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-15 22:29:30 +02:00
Giel van Schijndel ef5a01eeb9 Add a JSON tokenizer (lexer), parser and serializer
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7395 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-15 22:29:30 +02:00
Giel van Schijndel aaa1efe4bb Add a function for UTF-8 encoding
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7394 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-15 22:29:30 +02:00
Buginator 1855990fa8 Change non-fatal debug messages in the sound code from LOG_ERROR to LOG_WARNING instead.
fixes ticket:427

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7382 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-10 19:18:13 +02:00
Buginator b60b1ad10b Fix prototype to match function's definition.
(was missing a const)


git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7381 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-10 19:18:13 +02:00
Giel van Schijndel 3e5254af26 Only (attempt to) disable IPV6_V6ONLY on systems where it's #defined
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7378 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-10 19:18:11 +02:00
Giel van Schijndel 3dfb215c8b Add IPv6 support to the lobby protocol
* Add a new field: secondaryHosts, an array of two fallback hosts
  - Canibalize the entire "misc" field and part of the "extra" field for this
  - When connecting, first try the primary "host" field, then fall back to the hosts in secondaryHosts (in order)
 * Add a new field: gameId, used on the lobby server to link multiple lobby connections to a single game entry
  - First (attempt to) connect to the lobby with all available address families (currently IPv4 and IPv6)
  - Then ask for a gameId from the lobby server using the first established lobby connection
  - Set the gameId field in the GAMESTRUCT to the one retrieved
  - Transmit the GAMESTRUCT using a "addg" command to the lobby over each lobby connection
  - The lobby then compares all incoming ID numbers with ID numbers already present
  - If there's a match it will use the GAMESTRUCT already present and only add a new hostname to the list

This is the last change, part of, and closes #452

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7364 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-09 23:29:55 +02:00
Giel van Schijndel 3b80e3a63c Add client side IPv6 support
* Properly format IPv6 addresses (so that parsing later on will work again)
 * Resolve names to all address families, not just IPv4

Addresses #452

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7363 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-09 23:29:54 +02:00
Giel van Schijndel 4a90601536 Add partial server side IPv6 support
Implement a "dual stack", i.e. listen on both IPv4 and IPv6 addresses.
This change doesn't affect the socket API itself.

Addresses #452

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7362 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-09 23:29:54 +02:00
Giel van Schijndel 6739e6aa20 When drawing formatted text treat *real* newline characters ('\n') as newlines as well
- Not just the special formatting character '@'

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7346 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:42 +02:00
Giel van Schijndel 6fdc07b3f9 For the purpose of error messages set the error to ECONNRESET when we got disconnected while doing a readAll()
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7345 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:42 +02:00
Buginator 3042114be5 Work around for drivers that report VBO, but don't have full openGL 1.5 implementation.
This is the case for the current radeon open source drivers, and possibly others.

Patch by: suokko (Pauli Nieminen)
see: http://developer.wz2100.net/ticket/216
reference ticket:216



git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7341 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:41 +02:00
Buginator b9aea91c74 Move 'server_not_there' to a more correct location.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7333 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:40 +02:00
Buginator e26ca45678 When we get a error in readLobbyResponse(), we need to put a stop to hitting the server, since this will cause massive slowdowns.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7330 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:40 +02:00
Giel van Schijndel d02f591709 Lobby protocol; change the way the "addg" command works:
* Make the "addg" command return a status code (ranging 200-299 on success) and message (MOTD on succes)
 * Don't use the "motd" command anymore to check the lobby status, instead use the returned status code for that purpose.
 * Allow MOTD strings of arbitrary length (by sending along the length)

This modification ensures that ''proper'' connectivity checking is being performed on the game server (and reported to the user accurately).

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7323 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:40 +02:00
Per Inge Mathisen 870c18b66d Make sure game time variables are properly initialized first time we refer to them. Detected by valgrind.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7318 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:39 +02:00
Buginator 967b1bcb74 Reset version string back to "trunk", accidentally changed in r7079.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7315 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:39 +02:00
Giel van Schijndel 38cfef4e6d Make sure to #undef the errno Exxxx symbols on Windows to prevent collision with the predefined ones by MinGW
Also lets :sort the Exxxx #define list

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7308 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:38 +02:00
Buginator 7e1a1d714c Slight fixes for the BSD socket overhaul to make it compile OK on MSVC again.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7307 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:38 +02:00
Giel van Schijndel 9fa9402919 Work around MSVC's weak & stinky preprocessor:
* Duplicate the entire ASSERT() call instead of conditionally expanding its parameter
  - Depending on whether we are or are not compiling on Windows

Thanks go to Buginator for reporting this.

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7306 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:38 +02:00
Giel van Schijndel fcf40c7eb2 For incoming connections print the address from which the connection originates.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7303 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:38 +02:00
Giel van Schijndel a3cbe4c0c3 Use a single function for address to text translation (instead of duplicating code)
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7302 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:37 +02:00
Giel van Schijndel dc70524cd2 Take advantage of SocketAccept's non-blocking nature
Just go ahead and try to accept incoming connections without waiting for
a notification that connections are pending.

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7301 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:37 +02:00
Giel van Schijndel 63b6d37a94 Make SocketAccept non-blocking
This way it is no longer required to first explicitly check whether
connections are pending (through checkSockets, which select(2)s) and
only then accept(2) it. Now you can attempt to accept the connection,
and if one is available it'll get returned, NULL otherwise.

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7300 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:37 +02:00
Giel van Schijndel 36f536fcdb Check for EAGAIN as well to confirm connect(2) has started
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7299 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:37 +02:00
Giel van Schijndel 73a29daefd * Use camelCase instead of CamelCase and under_squores (as requested by Per, see #435)
* Rename read_all to readNoInt because that function is a read(2) variant that doesn't get interrupted by signals (EINTR)
 * Add Doxygen comments to readNoInt and writeAll

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7298 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:37 +02:00
Giel van Schijndel a8f8357904 Mark the server socket as not-ready when we've just accept(2)ed on it
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7296 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:36 +02:00
Giel van Schijndel 99c1ed95e8 Always use SocketClose to clean up sockets
Additionally make SocketClose work properly on Windows as well.

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7295 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:36 +02:00
Giel van Schijndel 0bc6be39b1 Fix logic in handling return value of addSocket
When a socket set is full (in addSocket) print a debug message

This is the last change, part of, and closes #435

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7294 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:36 +02:00
Giel van Schijndel ba9d49acd5 Get rid of duplicated code
Addresses #435

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7293 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:36 +02:00
Giel van Schijndel ab6b694420 Bugfix: set SOCKET_ERROR to -1 to *correctly* check for errors
Addresses #435

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7292 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:36 +02:00
Giel van Schijndel a9070e60a9 For non-blocking sockets lets not block on read_all()
Addresses #435

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7291 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:36 +02:00
Giel van Schijndel 37d3b9535f Replace -1 for socket API errors with SOCKET_ERROR
Additionaly, on Unix systems define constants SOCKET_ERROR and INVALID_SOCKET to -1

Addresses #435

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7290 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:36 +02:00
Giel van Schijndel f412eb5a6f Port NetPlay's BSD socket usage to Windows
* 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
2009-05-06 22:29:35 +02:00
Giel van Schijndel ae878a7880 Change write_all such that it will always return "size" or -1 (error)
* 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
2009-05-06 22:29:35 +02:00
Giel van Schijndel 61e0a18a6a Pass the Socket* structure to read_all and write_all instead of a plain file descriptor
This way it becomes possible to modify a socket's state when
reading/writing.

Addresses #435

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7287 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:35 +02:00
Giel van Schijndel 939f4902ad Replace SDL-net by using BSD sockets instead
NOTE: Still needs some checking and work for Windoze compatibility.

Addresses #435

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7286 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:35 +02:00
Giel van Schijndel 8e57c65386 Use "struct timeval" from winsock2.h instead of our own
On Windows <sys/time.h> doesn't exist (MinGW being an exception) and
"struct timeval" is thus defined in winsock2.h.

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7285 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:35 +02:00
Giel van Schijndel 7297008ed5 Fix spelling error: rename "ERROR_WRONGVESION" to "ERROR_WRONGVERSION"
Thanks to Kreuvf for noting the mistake.

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7275 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:33 +02:00
Giel van Schijndel 47bbacc7bb Bugfix: NUL terminate the MOTD string buffer
If registering with the lobby server failed once, we don't want part of
the failure message to be kept at the end of the MOTD string.

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7270 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:33 +02:00
Freddie Witherden d0fec57acf Minor indentation/spelling fixes in patternManager.[ch].
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7263 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:32 +02:00
Per Inge Mathisen 7bea80efd3 Please use setDroidActionTarget() whenever you change psActionTarget. This helps set dangling pointer debugging information.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7262 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:32 +02:00
Giel van Schijndel e4f82dc1e5 Disconnect immediately when we've handled the client's request (or concluded it to be invalid)
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7256 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:31 +02:00
Giel van Schijndel dd66b9fe33 Fix a bug where we would check the wrong socket for readiness
- Would occur when processing a "list" command on the game server

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7255 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:31 +02:00
Giel van Schijndel 4a3b92bd4b Document the purpose of the different sets of sockets
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7254 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:31 +02:00
Per Inge Mathisen 73ea6f197e Remove unused functions from text drawing code.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7253 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:31 +02:00
Per Inge Mathisen b8d3c62005 Remove last of the useless statics from text drawing code.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7252 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:31 +02:00
Per Inge Mathisen e5006affb7 Remove useless and unused statics from text drawing code.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7251 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:31 +02:00
Buginator 1f9e48ba86 Fixes compile issue that was broken in r7237.
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
2009-05-06 22:29:30 +02:00
Giel van Schijndel f6b3c04c8c Backport r7244 into trunk from the 2.2 branch
Move GAMESTRUCT_VERSION to the top of GAMESTRUCT, thus allowing versioning to work properly at all times

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7246 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:30 +02:00
Per Inge Mathisen a9b8a20aa5 Make focusState a static to main.c, instead of a global from frame.c
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7240 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:30 +02:00
Giel van Schijndel e16e034ec7 Use 40 bytes for the "host" (IP address) in GAMESTRUCT, this allows for using IPv6 without breaking protocol combatility again
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7239 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:30 +02:00
Per Inge Mathisen 29a2b2fe35 Change SDL types to stdint.h defined types. Do not depend on SDL.h included system headers.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7238 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:30 +02:00
Per Inge Mathisen 8a0a0af7c0 Remove unnecessary SDL includes.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7237 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:29 +02:00
Giel van Schijndel 7db243a59e Lets correctly indicate in our error message which TCP ports should be open (instead of hardcoding the message and getting it wrong)
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7222 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 20:52:19 +02:00
Buginator 2dc8626d75 whoops! :o I applied the wrong patch.
Reverting.


git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7204 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-27 21:30:41 +02:00
Buginator 8a11947b31 Let's only send the map to the person that needs the map.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7178 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-27 12:46:39 +02:00
Buginator 7ef71df9cb Fixes ticket:419
Add check to make sure logfile is available.

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7169 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-27 12:46:38 +02:00
Buginator b095418a42 Fixes ticket: 369
Don't always assume that the (lobby) server will not be available, and give up on all future attempts.
We now reset the flag on NETclose().



git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7159 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-24 14:16:08 +02:00
Per Inge Mathisen 0c694a22b0 Introduce ASSERT_OR_RETURN, a macro to assert on an expression, and assert() and then return if it fails,
but only assert() in debug builds.


git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7136 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-23 01:36:45 +02:00
Buginator f17402ef40 excise the codebase from some C99 format specifiers.
(%zu -> %lu)


git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7120 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-22 13:18:34 +02:00
Giel van Schijndel acd07fc7b4 * Add functions for retrieving the masterserver's hostname and port and game hosting port
* Use these functions to save configuration values (instead of duplicating them)

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7091 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-20 15:31:23 +02:00
Buginator e9446f60b4 Backport r7084 to trunk also.
"remove dead code left in accidentally
Move a enum to netplay.h, and fix #include files so netplay.h comes before multiint.h"




git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7085 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-19 23:45:25 +02:00
Buginator c2e5d2462f Adds password support to warzone.
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
2009-04-19 23:45:25 +02:00
Giel van Schijndel bf4e0e3745 Major cleanup of configfile.[ch]:
* 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
2009-04-19 23:45:24 +02:00
Giel van Schijndel b92b348c3a In lexer_input.h #include <stdio.h> for FILE*
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7067 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-18 22:39:52 +02:00
Giel van Schijndel 1852caeff9 Get the size of a variable using "sizeof", not using the array size that was used for that variable (as the connection between the two is only obvious in the variable's declaration)
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7066 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-18 22:39:51 +02:00
Giel van Schijndel e0f65b827c Add support for Full Screen Anti-Aliasing (FSAA):
* 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
2009-04-18 17:08:19 +02:00
Giel van Schijndel b5fa41ceff Make it possible for the lexers to use data from an STDIO FILE* stream
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7052 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-18 15:37:53 +02:00
Giel van Schijndel 2da9dad740 Link betawidget with Pango
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7033 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-16 19:40:47 +02:00
Freddie Witherden f4e366cf33 Fix some indentation issues in button.[ch].
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7025 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-15 20:36:59 +02:00
Per Inge Mathisen 742fecefc8 Make Warzone use regular textures to display the videos. Removes requirement for texture
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
2009-04-15 20:36:58 +02:00
Buginator 79d8c664e8 Fix the player count to reflect the actual number of players that is shown on the game list, which got screwed up when people were kicked, or left the lobby.
merge r7013

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7016 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-12 14:12:07 +02:00
Buginator 7a6fa22b1e Version checking code.
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
2009-04-12 14:12:06 +02:00
Per Inge Mathisen b56294cb1c Make sure file handle to netlog file is set and reset to NULL when netlog is not active.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7006 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-12 14:12:06 +02:00
Per Inge Mathisen 46c70aa134 Don't crash if we fail to open the netlog file. Reported by Zarel.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7002 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-12 14:12:06 +02:00
Guangcong Luo 8dab7fb36c Fix incorrect connection error display introduced in r6998
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@6999 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-12 14:12:05 +02:00
Guangcong Luo fac8b8ffb9 Commit patch #366: Show "Connection error" in case of connection error
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@6998 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-12 14:12:05 +02:00
Elio Gubser c18559d219 release patterns when quit
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@6979 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-08 14:04:26 +02:00
Gerard Krol 5a2ff6f410 Allow structure baseplates to have transparency. 2009-04-07 12:18:14 +02:00
Giel van Schijndel 6bdbda9343 Allow code passing and retrieving of enums as vararg parameters in C++ as well.
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
2009-04-06 13:09:10 +02:00
Elio Gubser 9353874ef9 adds the base button class and imageButton class
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6956 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-06 13:09:09 +02:00
Freddie Witherden 4ab0f78bf4 Fix some indentation problems in hBox.[ch].
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6954 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-06 13:09:09 +02:00
Elio Gubser defbe884a7 fixed small bug in size fit algorithm
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6953 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-06 13:09:09 +02:00
Elio Gubser 959838440d fix for the same reason as r6951
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6952 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-06 13:09:09 +02:00
Elio Gubser e1478d46e8 don't use the helper macros before we set classInfo, as this would result in undefinied behaviour.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6951 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-06 13:09:08 +02:00
Elio Gubser adfc6f2aa8 added some asserts and improved commentaries
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6950 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-06 13:09:08 +02:00
Elio Gubser acf512b28a fixed incorrect if-condition
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6949 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-06 13:09:08 +02:00
Freddie Witherden 2a9d01789a Ensure to flush/mark dirty the Cairo image surface when we draw/read from it outside of Cairo.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6948 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-06 13:09:08 +02:00
Elio Gubser df6647b9f5 adds the patternManager for betawidget. take a look at sdl-testapp.lua for usage example
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6946 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-03 18:53:12 +02:00
Freddie Witherden 6b641069df Support resizing of widgets with OpenGL content.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6945 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-03 18:53:12 +02:00
Freddie Witherden cab53fcbfb Add OpenGL support to betawidget.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6944 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-03 18:53:12 +02:00
Giel van Schijndel 2bca3018f4 Make sure that WZ_ASSERT_STATIC_STRING works properly in C++ as well
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
2009-04-03 18:53:11 +02:00
Git SVN Gateway bc074e1ed2 Merge commit 'per/master'
* commit 'per/master':
  Fix ticket #293: Crashes in netlog code.
2009-03-30 16:13:17 +02:00