* 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
* 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
* 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
* 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
* 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
* 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
* 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
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
* 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