Commit Graph

5782 Commits (ef5a01eeb9c689c31099564cf92be2d5b91b504f)

Author SHA1 Message Date
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
Giel van Schijndel e5e90e5121 Lobbyserver: Append to the host list instead of trying to its first (possibly non-existing) element
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7391 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-15 22:29:30 +02:00
Buginator 8cc20df76f Artillery prediction fix.
patch by Rhamphoryncus (Adam Olsen)

fixes ticket:374
Thanks to per for the conversion

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7384 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-10 19:18:13 +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
Buginator 395f677099 Properly fix intfac.img & infac.h
After a short (*cough*) delay, finally add Zarel's new icons from ticket:247.  (fixes ticket:247) 

Move leave / disconnect icon to top(ish) right of screen.


git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7380 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-10 19:18:13 +02:00
Buginator 43ed454b7a NTW Mod 1.8.6b for 2.2 by Delphino
---
gates removed
little balance changes
Mysteryem's factory textures,
Black Project's camo textures (changed) and new truck sounds removed. 
Plus many other changes.  See enclosed doc file for more information.


git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7379 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-10 19:18:12 +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 e4a9273e53 Add the ticket number for the SDL-net -> BSD changelog entry.
Addresses #435

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7377 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-10 19:18:11 +02:00
Giel van Schijndel 4a0e33abc4 Update the ChangeLog for the addition of IPv6 support.
Addresses #452

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7375 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-10 19:18:11 +02:00
Giel van Schijndel 7afaa55bc5 Properly handle the fact that Game.hosts is now a variably-sized list
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7372 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-10 19:18:11 +02:00
René Jürgens 50c2974fa4 delete new vehicle con sfx's... they are not so good for warzone as i thought.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7366 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-10 19:18:11 +02:00
Giel van Schijndel a385545043 * Don't handle protocol specific encoding in wzmasterserver.py, instead deal with it in the Protocol classes in protocol.py
* Don't set Game's `hosts` value to a list of ''exactly'' 3
  - Instead use empty strings for non-existing hostnames below 3 (when encoding only)
  - This allows for a bit more extensibility in the future.

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7365 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-09 23:29:55 +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
Guangcong Luo ad647da647 "Player disconnected" and "Player left" icons.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7360 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-09 23:29:54 +02:00
Buginator 638c63261b Workaround for a bug in the script files that abuses the DORDER_BUILD order for demolition.
The problem is with the player*.slo file(s), but putting off a proper fix until the LUA translation is completed.

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7358 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-09 23:29:54 +02:00
Guangcong Luo 557985516b Fix crash introduced by r7353 when starting skirmish/MP game in T2/T3 mode.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7356 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-09 23:29:54 +02:00
Guangcong Luo 1c090d7bff Rebalance 0.5.0:
* Heavy VTOL bombs made lighter, light VTOL bombs made heavier.
* VTOL bomb accuracy upgrades changed to damage upgrades.
* Angel Missile stronger, Archangel Missile weaker, both fewer prereqs.
* Damage upgrades now also upgrade splash and burn damage.
* Needle Gun slightly stronger. Still not actually better than HPV.
* Rails now penetrating weapons. In practice, this shouldn't make much difference.
* Factory, Cyborg factory, and VTOL factory upgrades combined; now only 4 upgrades instead of 6-9 each.
* Repair facility upgrades condensed, now only 3 upgrades instead of 6.
* Artillery weapons do less damage to tanks, but more to walls.
* MG damage back down to original levels. The extra APDSB MG Bullets in the early game does plenty to compensate.
* VTOL HP actually makes sense now.
* Cannon HP increased a bit more.
* Stormy nerfed.
* All AA weapons have full fire-on-move.

For exact numbers, refer to http://guide.wz2100.net/new/ or wait for the detailed changelog after all rebalancing is done.

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7353 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
Giel van Schijndel a43e84e0fd Lobby server: in the "Game unreachable" message, sent when the connection test fails, give the port number of the game server, not the lobby server
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7343 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:42 +02:00
Giel van Schijndel a71b83b91b On platforms that don't support IPV6_V6ONLY, just ignore it and hope the platform doesn't automatically enable IPv6 mapped IPv4 addresses
This allows the lobby server to be used on platforms that don't support IPV6_V6ONLY socket option.

Thanks to Buginator for reporting this.

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7342 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:41 +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
Guangcong Luo fedd43dbe4 Stop trucks from ever building on burning oil resources (fixes bug #181)
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7339 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:41 +02:00
Buginator b6460140df * Don't abort() because a string can't be found.
* Don't abort() because we cannot find a Droid template.


git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7336 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:41 +02:00
Buginator d16573b326 Let's not underflow a unsigned variable.
Broken in r6969


git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7334 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
Guangcong Luo 5a974ed226 Windows installer fixes:
* Make the cross-compile script Ubuntu-compatible
 * Don't redownload the music mod if we already have it
 * Download sequences (if we don't already have it)
 * Remove EULA agreement (The GPL is not a EULA)
 * Install OpenAL silently (Its license is not a EULA; see ML discussion)

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7327 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:40 +02:00
Giel van Schijndel e672ad000e Fix error introduced in r7323: gameHost is a member of "self" now, not a local variable
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7324 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 cd07168f5c Silence valgrind warning about uninitialized local variable in visibility code.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7322 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:40 +02:00
Per Inge Mathisen 74a0ad9a94 Fix valgrind warning about an uninitialized variable in display3d.c
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7321 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:40 +02:00
Per Inge Mathisen c8b522c092 Make sure we clean up allocated memory from effects to stop memory checkers from complaining. Reviewed by devurandom.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7320 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:39 +02:00
Per Inge Mathisen 5c68cb0e9a Improve error reporting in research loading code, trying to hunt down memory leak reported by valgrind.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7319 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:39 +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
Buginator cb32aca203 Get rid of magic numbers, and use #define instead.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7313 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:39 +02:00
Buginator 331b98f46e Use strcasecmp() not stricmp()
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7311 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:39 +02:00
Buginator bb848f5582 Add error messages in case the values we have read in from the config file don't match the default values.
In fact, I am not really sure why we allow those to be changed when we release a new version?

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7309 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:38 +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 7c49ed6628 Lobby utility library:
* Create another custom context manager (can be used in with-statement) for creating a connection to a given (host, port): "connection"
  - Perform manual name-resolution, using each returned entry until one can be succesfully connected to (allows IPv4 + IPv6 through the same function)
 * Use this context manager instead of connecting manually

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7305 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:38 +02:00
Giel van Schijndel 24cc8fda66 Use the "Protocol" constructor function instead of trying to use "BinaryProtocol" (which doesn't exist anymore)
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7304 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