Commit Graph

547 Commits (8ec5831657fb323e961b7471fb22616ccb11f7df)

Author SHA1 Message Date
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
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
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 e0adf0d0e8 Revert r7276's accidental change to wzmasterserver.py
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7277 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:34 +02:00
Giel van Schijndel 9943cf6b01 Lets not mark utility modules as executable
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7276 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:34 +02:00
Giel van Schijndel 8b7f17e2e5 Fix _swap_endianness() to return it's argument endian-swapped, not a tuple containing that result
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7273 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:33 +02:00
Giel van Schijndel 7e7ba74801 Move exception handling to the location where RequestHandler.handle(self) is being invoked from
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7269 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:33 +02:00
Giel van Schijndel 36dc3d8c6c Use the RequestHandler's finish() method for cleaning up any open games instead of a try-finally block
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7268 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:33 +02:00
Giel van Schijndel 6618674111 Fix a syntax error from r7266 (and a disconnected spelling error while we're at it)
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7267 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:33 +02:00
Giel van Schijndel 0c7f44ee70 Make gamedblock intrinsic to GameDB itself (i.e. let it contain its own lock)
* Return generators instead of entire lists and have the generator keep the lock intact while it's being iterated over

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7266 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:32 +02:00
Giel van Schijndel 3153a9f63d Make sure to reset the "requests" counter when checkInterval is reached
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7265 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:32 +02:00
Giel van Schijndel 563ff537a1 Lobbyserver: Use separate sockets to listen on IPv4 and IPv6 (instead of a single socket which uses IPv4 to IPv6 mapping)
* Use select(2) to wait for a connection on both sockets and accept(2)ing them in a separate thread
 * This prevents IPv4 addresses from becoming IPv6 mapped, which might not be properly supported on all platforms
  - The IPv6 mapped addresses where transferred back to clients

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7264 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:32 +02:00
Giel van Schijndel fb4c443dd8 Update the lobby server to still be in sync with the 2.2 lobby protocol which was changed in r7239
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@7249 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:30 +02:00
Giel van Schijndel b665aa67ba Update the lobby server to still be in sync with the 2.2 lobby protocol which was changed in r7246
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@7248 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:30 +02:00
Giel van Schijndel ebd93276a6 Make the lobby server listen and operate on IPv6
* Also disable IPV6_V6ONLY to make sure that (on systems that support the option) IPv4 is still supported, using the same socket
  - This option works on Linux from 2.4.21 and 2.6 (according to "man ipv6")
  - On FreeBSD this works from version 6 onward (lower versions might work, I only tested on 6 and 7 and didn't find any note in the manual)
  - Furthermore, according to
    http://en.wikipedia.org/wiki/IPv4_mapped_address:
   * This works on Windows from Vista onward
   * This works on NetBSD (version unspecified)
   * This doesn't work on OpenBSD (as a design decision for security)

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7225 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 20:52:19 +02:00
Giel van Schijndel 66b09c68ec * Fix a copy/paste error
- Make sure to use the maxPlayers and currentPlayers variables found in the Game class, not the (non-existing) local variables
 * Don't use Game.check() as it doesn't exist, use Protocol.check(Game) instead

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7224 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 20:52:19 +02:00
Giel van Schijndel c2e33dc923 * Make the lobby host and version configurable
* Use the "Protocol" instead of "BinaryProtocol" class to communicate with the lobby (in the IRC bot)


git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7221 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 20:52:18 +02:00
Giel van Schijndel b5e6967f73 * Fix copy-paste error ("output" should be "input")
* Stop decoding as soon as an error is encountered


git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7220 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 20:52:18 +02:00
Giel van Schijndel b0c5590f6c Semantical error: call the function instead of evaluating it
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7219 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 20:52:18 +02:00
Giel van Schijndel 05d9661d7a * Do not change the function _swap_endianness on the fly to prevent it from being used in a 2.1 lobby
- Change this because altering _swap_endianness on the fly isn't threadsafe
  - Instead revert to code duplication (for now)

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7218 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-28 00:46:45 +02:00
Giel van Schijndel a5aa693b95 Split out the different lobby protocol versions in a class per version:
* This removes the need to specify what type of protocol (e.g. BinaryProtocol vs. JsonProtocol) should be used
  - Instead only the (Warzone) version needs to be specified, the constructor function (Protocol()) will figure out the correct protocol class to use

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7217 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-28 00:46:45 +02:00
Giel van Schijndel b64911e732 * For reading use a context managed "readable" as well
- However, unlike "writeable" don't return a StringIO object for strings

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7216 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-28 00:46:45 +02:00
Giel van Schijndel 832f8728d2 Use the Protocol class to find out what port to listen on, instead of manually configuring
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7215 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-28 00:46:45 +02:00
Giel van Schijndel cdc8412bd7 Convert wztest.py to use the latest lobby code for testing the lobby
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7212 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-27 22:46:38 +02:00
Giel van Schijndel eebb624276 * Change the lobby IRC bot to use the same code as the lobby server for protocol handling and game representation
* Move the "list" function (to retrieve the lobby's list of games) to the Protocol class

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7211 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-27 22:46:38 +02:00
Giel van Schijndel 32417e1bb9 * Allow Protocol's encode and decode functions to work directly on * sockets and file objects (in addition to strings)
- This removes the requirement for the socket handler to be aware of the size of a single game
  - I.e. this allows variable sized games without another API change
 * Read and write Protocol data directly from and to the sockets, decoding and encoding on the fly

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7209 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-27 21:30:41 +02:00
Giel van Schijndel b68ab0bb6d Log tracebacks when exceptions occur and aren't handled
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7208 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-27 21:30:41 +02:00
Giel van Schijndel d1d787c8d6 * Make the game server's port version dependant
* Move checking of game's vitality to from the Game class to the Protocol class
  - Do this because checking of games is inherently protcol dependant

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7200 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-27 21:30:40 +02:00
Giel van Schijndel 4b74fd0cc5 Don't deal with requestHandler stuff in the Game class
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7199 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-27 21:30:40 +02:00
Giel van Schijndel 57aefa7a85 * Use unpack_from, instead of unpack, if multiple items are contained in the same buffer
* Use xrange() instead of range() when looping over its items
  - xrange() is faster and more lightweight as iterable

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7198 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-27 21:30:40 +02:00
Giel van Schijndel 227ecdb1f8 Lobby protocol: Workaround the fact that the 2.0.x versions don't perform endian swapping
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7197 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-27 21:30:40 +02:00
Giel van Schijndel 322c10e7a4 * Use struct.Struct objects instead of free functions from the "struct" module to perform encoding and decoding
* Perform version range comparisons like this: lowest_version <= version < one_higher_than_largest_version

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7196 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-27 21:30:39 +02:00
Giel van Schijndel 9ff472fad5 Fix a syntax and semantical error:
* Use the % operator for formatting strings
 * Use struct.unpack for decoding a struct (instead of struct.pack)

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7195 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-27 21:30:39 +02:00
Giel van Schijndel 8bfd2acef1 Use a single function to perform the encoding as a C string
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7194 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-27 21:30:39 +02:00
Giel van Schijndel cffa0b65af Make BinaryProtocol more flexible to allow it to work with 2.0+ as well as the 2.2 lobby protocol (depending on what parameter was used during construction)
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7128 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-22 16:03:19 +02:00
Giel van Schijndel 7f5bc28bd0 Move the Game, Protocol classes to files of their own (to allow them to be reused by the IRC bot, instead of duplicating code)
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7127 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-22 16:03:19 +02:00
Giel van Schijndel f95bcd605b Move the IRC bot to the same directory as the lobby server
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7126 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-22 13:18:35 +02:00
Giel van Schijndel 1447766635 Whatever way we leave the bot's mainloop, make sure to terminate the lobby checking thread
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7125 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-22 13:18:35 +02:00
Giel van Schijndel 61d0fd23d0 Don't use Python 2.6 specific syntax (r7123)
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7124 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-22 13:18:35 +02:00
Giel van Schijndel 2dc1bcfd12 * Catch and handle all socket errors, not just timeouts
- Don't just report failure to the user that request a lobby listing, report the error message (asociated with the exception) as well


git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7123 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-22 13:18:35 +02:00
Giel van Schijndel e91765af19 * Notify all served IRC channels when shutting down
* Notify all served IRC channels when encoutering an unhandled exception (and shutting down as a result)


git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7118 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-22 13:18:34 +02:00
Giel van Schijndel fef445101e * Rename the "help" command to "about"
* Change "commands" to dynamically look through the commands that are available and list them


git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7117 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-22 13:18:34 +02:00
Giel van Schijndel a72e7d5288 * Move construction of BotCommands to its own class (__init__)
* Only attempt to call attributes of BotCommands if they're functions (rejecting __.*__ functions)
 * Return from readAndHandle as soon as we've handled a message


git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7116 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-22 13:18:34 +02:00
Giel van Schijndel c9113f9730 * Pass the IRC write function as a lambda to BotCommands' functions
* When a user joins a served channel, send him a notice of the games currently present ("list" output)


git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7113 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-22 13:18:33 +02:00
Giel van Schijndel b07a743f60 Properly store the gameFormat struct description in the class
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7112 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-22 13:18:33 +02:00
Giel van Schijndel d5cdfd7adb * Add channel operator support
* Add invite support
  - Invite users to all serviced channels when they make a request outside of a serviced channel (becmoing operator only for as long as necessary)


git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7106 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-22 13:18:33 +02:00
Giel van Schijndel 6461dd0208 * Send replies only to the channel from which the request came
* Send general messages to all served channels
 * Prefix all replies with the nickname of the user who made the request


git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7105 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-22 13:18:33 +02:00
Giel van Schijndel bbfe5e2abd Don't call the IRC command handling function in the try block (we don't want to protect against errors inside the IRC command function)
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7104 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-22 13:18:33 +02:00
Giel van Schijndel f1b178e4b0 Add multi-channel support to wzlobbybot, one list of channels in which to serve requests, another just to be present in.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7103 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-22 13:18:32 +02:00
Giel van Schijndel e00035b75a Add the ability for wzlobbybot to identify against NickServ
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7102 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-22 13:18:32 +02:00
Giel van Schijndel 7261e3392a Update the lobbybot such that it can work both with 2.0,2.1 and 2.2 lobbies, defaulting to 2.1 (as that's the current release)
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7101 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-22 13:18:32 +02:00
Giel van Schijndel d001fdbafc Notify the user when communication with the lobby fails
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7100 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-22 13:18:32 +02:00
Giel van Schijndel 88ddefb584 * Move the setup code of the lobby bot into a class of its own (Bot)
* Change to an event driven model for handling IRC commands
  - Add all IRC commands to a single class (BotCommands)
  - In class irc_connection.readAndHandle() call the corresponding function in BotCommands for the received IRC command


git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7099 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-22 13:18:32 +02:00
Gerard Krol 2786cfc1e9 Add the --squash flag to gitsvngateway. With --squash it will not try to unravel any merges but instead commit it as one change. 2009-04-20 19:53:13 +02:00
Giel van Schijndel 5694b99b90 Set a timeout on the lobby client to prevent blocking on connections to the lobby
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7095 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-20 15:31:24 +02:00
Giel van Schijndel 846a21b8a7 Make sure that the change_notifier thread gets terminated when the user hits CTRL-C
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7094 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-20 15:31:24 +02:00
Giel van Schijndel f8f33d5424 * Interpolate __author__ in the "info" (about-style) message
* Use functions to join channels and send messages
 * Notify a user requesting for services from the bot in the wrong channel


git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7093 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-20 15:31:24 +02:00
Giel van Schijndel ead99ec654 Properly align the "private" property
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7090 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-20 15:31:23 +02:00
Giel van Schijndel 8d5b42fe96 Lets consistently use TABs for indentation (instead of mixing with spaces)
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7089 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-20 15:31:23 +02:00
Giel van Schijndel e399b2562c Split out the protocol from the Game class into a separate BinaryProtocol(Protocol) class
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7088 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-20 15:31:23 +02:00
Giel van Schijndel 4aa8982d0a * Save Game's data in a dictionary for easier access at some locations
- This additionally make is possible to split out the lobby protocol into a separate class later on
 * Show exception's messages when exceptions occur

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7087 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-20 15:31:22 +02:00
Giel van Schijndel 72d1881464 Remove trailing whitespace
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7086 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-20 15:31:22 +02:00
Buginator 562ade5d29 Use the correct version of the masterserver file
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7080 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 bd04dd7378 Make the lobby server executable
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7073 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-19 23:45:24 +02:00
Giel van Schijndel 4beca8d487 Make the IRC bot executable
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7024 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-15 20:36:58 +02:00
Buginator e1c91576c9 Game server port is now 2100
Master server port is now 9990 

Updated masterserver python program as well.

merge: r6994

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7018 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-12 14:12:07 +02:00
Per Inge Mathisen c0358510d8 Add missing include
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@6982 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-12 14:12:03 +02:00
Giel van Schijndel cd7edf0f88 Use a more sofisticated regular expression for channel messages to ensure we only match messages that are intented for us (i.e. the lobby IRC bot)
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@6968 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-07 12:23:12 +02:00
Giel van Schijndel 74c3180bc3 Use a regular expression to extract messages intended for us (i.e. the lobby bot) instead of string manipulation with split & find
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@6967 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-07 12:23:12 +02:00
Giel van Schijndel 9dfa15c8f1 Move the bot to #warzone2100-games and change it's real name to indicate it's Warzone 2100 origin & purpose
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@6966 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-07 12:23:12 +02:00
Giel van Schijndel 3fea9dcbc3 Allow announcing to work properly still
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@6965 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-07 12:23:11 +02:00
Giel van Schijndel eb27d5987e Comment on why the endian swapping is performed (while on the protocol level it shouldn't be needed)
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@6964 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-07 12:23:11 +02:00
Giel van Schijndel 693a2ab4b7 Use a contextmanager and python's with-statement to manage the socket's lifetime, this guarantees exception safety
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@6963 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-07 12:23:11 +02:00
Giel van Schijndel 05b1e21416 Externalise code specific to querying the lobby server into a separate module
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@6962 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-07 12:23:11 +02:00
Giel van Schijndel acfa601182 Fix syntax error in lobby IRC bot
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@6961 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-07 12:23:11 +02:00
Giel van Schijndel 020b66a959 Don't use an IRC specific string representation of games
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@6960 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-07 12:23:11 +02:00
Giel van Schijndel d02d2a01ab Committing on behalf of and with Gerard's permission:
The initial version of the IRC bot for Warzone's lobby with the GPLv2 added.

git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@6959 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-07 12:23:11 +02:00
Giel van Schijndel 1f89497235 Prevent leaking memory in mapFree by deallocating all memory we allocated
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6910 4a71c877-e1ca-e34f-864e-861f7616d084
2009-03-30 16:10:58 +02:00
Giel van Schijndel 40dcefc574 Remove the C++ implementation of the lobby server since it isn't used nor is it being maintained
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6907 4a71c877-e1ca-e34f-864e-861f7616d084
2009-03-30 16:10:57 +02:00
Gerard Krol 107f634977 Set svn:eol-style native and convert the line endings to \n.
This is to make sure Git on Windows does not complain when autocrlf and safecrlf are set.



git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6886 4a71c877-e1ca-e34f-864e-861f7616d084
2009-03-21 01:53:25 +01:00
Gerard Krol 3000958bca Swap the order of the arguments when calling same_commit to check if we need to push, because only old..new seems to work correctly. 2009-03-19 00:57:29 +01:00
Gerard Krol 31d09e583c Replace slashes by underscores for the gitsvngateway merge filename, and don't make it return a non-zero exit code when the --dry-run was successful. 2009-03-18 18:37:17 +01:00
Gerard Krol 596f6c38a1 Add a --no-fetch option to gitsvngateway to increase the speed of running it over a lot of branches. 2009-03-18 18:13:41 +01:00
Gerard Krol 4d230332a1 Add an --automatic switch to gitsvngateway, where it will not ask to merge changes but instead abort. 2009-03-18 17:58:42 +01:00
Gerard Krol c11e05a058 Use getopt to parse options for gitsvngateway and add the --dry-run, --prefix and --remote options. 2009-03-18 17:58:33 +01:00
Gerard Krol 0abfe13c4c Use the _gitsvngateway prefix for internally used branches. 2009-03-18 15:19:58 +01:00
Gerard Krol e58d41d67a gitsvngateway no longer uses a file to store its state but instead determines it by checking if certain branches exist. 2009-03-18 14:44:35 +01:00
Gerard Krol b43712ec75 Add some checks to gitsvngateway to speed up execution when there are no changes. 2009-03-18 14:01:04 +01:00
Gerard Krol 799ce310e1 Small changes to make gitsvngateway work with Git 1.6.0.6. 2009-03-18 13:17:52 +01:00
Gerard Krol 64d4b710c2 Use a slightly more robust way of detecting merges. It still is ugly though. 2009-03-17 20:16:05 +01:00
Gerard Krol 0a3467af02 Small cleanup of gitsvngateway, the code should be more robust now. 2009-03-17 16:50:18 +01:00
Gerard Krol bd0d42dcc0 The gitsvngateway now uses git cherry-pick instead of git merge --squash to prevent merge conflicts. 2009-03-17 16:23:45 +01:00
Gerard Krol 0f53e9ecf0 Use colour to print the messages from gitsvngateway to better separate them from the output from the Git commands. 2009-03-17 14:20:12 +01:00
Gerard Krol f52d181826 The gitsvngateway script now allows you to check what it is about to commit. It also tries to unravel a merge and commit the individual changes to SVN. 2009-03-17 13:53:31 +01:00
Gerard Krol 1b5816f89b Add "gitsvngateway", a script to pass commits from Git to SVN and from SVN to Git. 2009-03-17 11:20:25 +01:00
Per Inge Mathisen da04dd5173 map2lnd: Use the right edge brush set for each tileset.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6837 4a71c877-e1ca-e34f-864e-861f7616d084
2009-03-11 21:30:36 +00:00
Gerard Krol 71bc279c9e Fix some spelling errors in debug messages and comments. Patch by Paul Wise <pabs3>.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6832 4a71c877-e1ca-e34f-864e-861f7616d084
2009-03-11 11:51:40 +00:00
Per Inge Mathisen 811bb12786 map2png: Little utility to create PNG previews from map files. Very basic at the moment.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6830 4a71c877-e1ca-e34f-864e-861f7616d084
2009-03-09 23:05:54 +00:00
Per Inge Mathisen 7a9da735e2 map2lnd: Fix bug in setting the number of objects in the exported map.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6818 4a71c877-e1ca-e34f-864e-861f7616d084
2009-03-08 17:15:14 +00:00
Per Inge Mathisen b8268b2370 mapinfo: Correct for structure padding. Now we can parse savegame structures, too.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6817 4a71c877-e1ca-e34f-864e-861f7616d084
2009-03-08 17:06:11 +00:00
Per Inge Mathisen 48ff63c9d1 map2lnd: Export structures as well.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6816 4a71c877-e1ca-e34f-864e-861f7616d084
2009-03-08 16:52:17 +00:00
Per Inge Mathisen eb14b8753d map2lnd: Support exporting droids.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6815 4a71c877-e1ca-e34f-864e-861f7616d084
2009-03-08 15:11:54 +00:00
Per Inge Mathisen eb8329e481 mapinfo: Read droid data for editworld maps (not savegames).
mapinfo: Calculate number of players by checking construction droids.


git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6814 4a71c877-e1ca-e34f-864e-861f7616d084
2009-03-08 14:19:28 +00:00
Per Inge Mathisen 3fd2879d6a mapinfo: Fix crash on some failures upon trying to close already closed file.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6803 4a71c877-e1ca-e34f-864e-861f7616d084
2009-03-07 21:52:34 +00:00
Per Inge Mathisen c8dcde2182 map2lnd: Fix bug in positioning of features. Thanks again to Mysteryem for debugging help.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6797 4a71c877-e1ca-e34f-864e-861f7616d084
2009-03-07 18:57:41 +00:00
Per Inge Mathisen 9dbcf2dca1 Implement more robust error handling. Sanity check feature coordinates.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6796 4a71c877-e1ca-e34f-864e-861f7616d084
2009-03-07 18:47:07 +00:00
Per Inge Mathisen 788bd21477 map2lnd: Read tileset type and use it to determine which tileset is being exported. Also export all features.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6783 4a71c877-e1ca-e34f-864e-861f7616d084
2009-03-07 14:20:20 +00:00
Per Inge Mathisen a31fe8a6ec mapinfo: Add function to deduce a given map's tileset from the terrain type info.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6767 4a71c877-e1ca-e34f-864e-861f7616d084
2009-03-02 19:40:31 +00:00
Per Inge Mathisen a348f2683b map2lnd: Convert gateway information.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6766 4a71c877-e1ca-e34f-864e-861f7616d084
2009-03-02 18:53:08 +00:00
Per Inge Mathisen 17733f3946 map2lnd: Reuse physfs aux code from framework. More generic handling of partially big endian ported savegames. Initial support for features.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6757 4a71c877-e1ca-e34f-864e-861f7616d084
2009-03-01 12:44:54 +00:00
Per Inge Mathisen 8f3a5ab23d map2lnd: Update documentation some more with info from Editworld. Clean up the messy source a bit.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6755 4a71c877-e1ca-e34f-864e-861f7616d084
2009-03-01 01:21:29 +00:00
Per Inge Mathisen 28df89817c map2lnd: Fix documentation of map logic.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6754 4a71c877-e1ca-e34f-864e-861f7616d084
2009-03-01 00:58:41 +00:00
Per Inge Mathisen bed64f33e9 map2lnd: Fix geometry
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6753 4a71c877-e1ca-e34f-864e-861f7616d084
2009-03-01 00:25:13 +00:00
Per Inge Mathisen 9d986d917f map2ldn: Fix conversion error. Reported by Mysteryem.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6739 4a71c877-e1ca-e34f-864e-861f7616d084
2009-02-28 09:44:32 +00:00
Per Inge Mathisen 7b8e81ed8f map2lnd: Tons of bugfixes thanks to some help by Mysteryem. It is hardcoded to use Arizona at the moment, though.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6731 4a71c877-e1ca-e34f-864e-861f7616d084
2009-02-27 22:24:37 +00:00
Per Inge Mathisen 09ddf35b87 mapinfo: Parse .gam file and show scroll limits.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6730 4a71c877-e1ca-e34f-864e-861f7616d084
2009-02-26 23:17:05 +00:00
Per Inge Mathisen 08e9bd5efa Initial map to LND format converter from patch #787: LND format exporter, now as a separate
application. It has not been tested with editworld yet. Needs some TLC.


git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6729 4a71c877-e1ca-e34f-864e-861f7616d084
2009-02-26 22:10:57 +00:00
Per Inge Mathisen 58546965b7 Delete commented out references to non-existent files from gamedesc.lev
Delete two unused and broken map files that either belongs to an expand mission or is unreferenced.
Add basic unit testing framework for testing all map files in data/base.


git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6728 4a71c877-e1ca-e34f-864e-861f7616d084
2009-02-26 19:41:25 +00:00
Per Inge Mathisen be34651386 A simple map inspection tool
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6727 4a71c877-e1ca-e34f-864e-861f7616d084
2009-02-24 22:12:49 +00:00
Dennis Schridde aac41748dc Bump copyright
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6617 4a71c877-e1ca-e34f-864e-861f7616d084
2009-02-10 18:01:48 +00:00
Per Inge Mathisen 2d24d351e5 qwzm: Make use of QGLViewer. This lets us rotate and translate the model, as well as add various
helpful hints to the scene. Note that you need to install QGLViewer to use qwzm now.


git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6592 4a71c877-e1ca-e34f-864e-861f7616d084
2009-02-07 18:21:06 +00:00
Per Inge Mathisen 90121f4920 pie2wzm: Fix spurious warning about missing connector directive in PIE model.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6590 4a71c877-e1ca-e34f-864e-861f7616d084
2009-02-07 12:35:11 +00:00
Per Inge Mathisen d4beacb790 pie2wzm: Make sure we output a line ending after the connector directive for multi-mesh models.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6589 4a71c877-e1ca-e34f-864e-861f7616d084
2009-02-07 12:28:37 +00:00
Per Inge Mathisen ea999b01a7 qwzm: Port over level parsing fix from pie2wzm. Fix connector parsing error.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6588 4a71c877-e1ca-e34f-864e-861f7616d084
2009-02-04 23:25:30 +00:00
Per Inge Mathisen 9b26e6c1bd qwzm: Add missing file from way back.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6587 4a71c877-e1ca-e34f-864e-861f7616d084
2009-02-04 23:13:02 +00:00
Per Inge Mathisen 86d734598f pie2wam: Add verbose mode. Fix parsing error in some multilevel files.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6586 4a71c877-e1ca-e34f-864e-861f7616d084
2009-02-04 23:12:05 +00:00
Giel van Schijndel 3fb2610c6c Convert OpenDocument documents shortcuts.odt and todo.odt to reStructuredText (easier to edit and view)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6545 4a71c877-e1ca-e34f-864e-861f7616d084
2009-01-11 20:49:43 +00:00
Per Inge Mathisen 2528179e0b pie2wzm: Support new WZM connector spec.
qwzm: Fix tessellation bug in PIE conversion code. Fix crash.
wzm base: Detect more errors, print nicer WZM output.


git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6508 4a71c877-e1ca-e34f-864e-861f7616d084
2008-12-26 19:28:22 +00:00
Per Inge Mathisen 739fbcce41 qwzm: Add beginnings of connector support.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6496 4a71c877-e1ca-e34f-864e-861f7616d084
2008-12-26 00:37:11 +00:00
Per Inge Mathisen 7314ba1b29 qwzm: Add short-cut keys and some GUI prettifying.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6459 4a71c877-e1ca-e34f-864e-861f7616d084
2008-12-12 18:29:33 +00:00
Per Inge Mathisen b63790aaba qwzm: Forgot to commit one file
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6458 4a71c877-e1ca-e34f-864e-861f7616d084
2008-12-12 17:55:19 +00:00
Per Inge Mathisen 0d243ce82d qwzm: Show animation frames as they are animated. Allow user to manually step through frames.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6452 4a71c877-e1ca-e34f-864e-861f7616d084
2008-12-10 21:27:42 +00:00
Per Inge Mathisen 001c5f2326 qwzm: You can now add and remove animation frames to models.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6451 4a71c877-e1ca-e34f-864e-861f7616d084
2008-12-10 20:34:08 +00:00
Per Inge Mathisen 7c477d668d qwzm: Allow basic editing of animation frames. You can change timing, translation and rotation.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6447 4a71c877-e1ca-e34f-864e-861f7616d084
2008-12-09 21:27:19 +00:00
Per Inge Mathisen 5a98e7c029 qwzm: Add dialog to display the animation frames for each model mesh.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6446 4a71c877-e1ca-e34f-864e-861f7616d084
2008-12-09 20:59:57 +00:00
Per Inge Mathisen 541335f18e I forgot one file...
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6244 4a71c877-e1ca-e34f-864e-861f7616d084
2008-11-04 22:07:24 +00:00
Per Inge Mathisen f714179393 qwzm: Refactor model loading functions to save code lines and remove duplicate code.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6242 4a71c877-e1ca-e34f-864e-861f7616d084
2008-11-02 21:31:51 +00:00
Per Inge Mathisen 3d34a03813 qwzm: Move conversion functions into their own file. Add TODO messages to stdout for stuff that doesn't work.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6241 4a71c877-e1ca-e34f-864e-861f7616d084
2008-11-02 21:07:17 +00:00
Per Inge Mathisen 753bc5ac03 qwzm: Add import from PIE feature.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6240 4a71c877-e1ca-e34f-864e-861f7616d084
2008-11-02 20:52:00 +00:00
Per Inge Mathisen 28d9734e8f pie2wzm: Remove two bad TODO items
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6239 4a71c877-e1ca-e34f-864e-861f7616d084
2008-11-02 20:49:26 +00:00
Per Inge Mathisen 07c1245e01 qwzm: Add 3DS import feature.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6238 4a71c877-e1ca-e34f-864e-861f7616d084
2008-11-02 19:50:54 +00:00
Per Inge Mathisen 632b539aea wzmutils: Add WZM save model function.
qwzm: Add more dummy GUI stubs. Implement save and save as.


git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6237 4a71c877-e1ca-e34f-864e-861f7616d084
2008-11-02 17:47:10 +00:00
Per Inge Mathisen 615520bc59 wzmviewer/qwzm: Unify animation code.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6236 4a71c877-e1ca-e34f-864e-861f7616d084
2008-11-02 15:16:03 +00:00
Per Inge Mathisen ecb8208534 qwzm: Brute force fix for infinitely extrapolating interpolation in no animation case.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6235 4a71c877-e1ca-e34f-864e-861f7616d084
2008-11-01 23:47:35 +00:00
Per Inge Mathisen d7c9a522c9 qwzm: Fix animation bug due to using different timers for drawing and animating.
However, introduces new bug, when animation is not on, interpolation function will 
extrapolate into infinity, creating really funny non-animation animation.


git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6234 4a71c877-e1ca-e34f-864e-861f7616d084
2008-11-01 23:10:10 +00:00
Per Inge Mathisen a2031b9fd3 wzmviewer: Refactor more code for sharing with qwzm
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6233 4a71c877-e1ca-e34f-864e-861f7616d084
2008-11-01 22:24:09 +00:00