Commit Graph

1506 Commits (2063d578c3c1c3e28c50497fd3297dc9f1103215)

Author SHA1 Message Date
Giel van Schijndel 9773356a67 Less PImpl, More Impl
* Add new class lobbyprotocol::requestHandler which deals with protocol specific tasks
 * Move all protocol dependant code from class GameLobby to lobbyprotocol::requestHandler
 * Add some comments to code

git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1649 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-15 21:23:30 +00:00
Giel van Schijndel 87d8648c8b * Cleanup of directory structure
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1648 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-15 21:18:41 +00:00
Giel van Schijndel 94044a0e9c * move function printGame to new file game.cpp
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1647 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-15 21:13:32 +00:00
Giel van Schijndel 8f66b5246b * set host IP on incoming game
* Modify class TCPServer to take a boost::asio::ip::tcp::endpoint for member-function listen instead of a port number
 * Now use command line arguments for addresses to listen on (on each of those addresses we open port 9998 still)
 * Fix wrongly named include guards (lobby.hpp)

git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1646 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-15 21:07:46 +00:00
Giel van Schijndel d85d317842 * Add a lobby class
* handles incoming connections from TCPServer (functions properly now)
  * uses an std::list to store GAMESTRUCTs in
  * uses ReadWriteMutex for multithreading synchronisation
  * handles "addg" requests
   * handles game persistence (with specialized "game" locks, which will die along with the connection)
  * handles "list" requests
   * dumps the entire list of current games to the user

git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1645 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-15 21:01:02 +00:00
Giel van Schijndel 831dbe0c1d * Add utility class: ReadWriteMutex;
This class allows multiple readers to obtain a lock at the same time. Until a writer attempts to obtain a lock, then attempts by readers to lock will block. Also second writers that attempt to lock will block until the first releases its lock.

git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1644 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-15 20:57:49 +00:00
Giel van Schijndel aaac0278f5 * Handle the "list" command in a proper way by answering with a dummy game
* Add asynchronous TCP server class: TCPServer
 * Add comparison operators for SESSIONDESC and GAMESTRUCT respectively
 * Add -D_WIN32_WINNT=0x0501 to the compiletime options (needed for Boost::Asio on WinXP, 2k needs -D_WIN32_WINNT=0x0500, GNU/Linux systems define it themselves automatically)

git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1643 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-15 20:51:29 +00:00
Giel van Schijndel 7a0457e6e0 * Use EOF as connection and as such game termination
* move inclusion of definition of GAMESTRUCT to new header file game.hpp
  * Allow game.hpp including files to be compiled without SDL (useful for crosscompiling), by internally (in game.hpp) declaring GAMESTRUCT as well
 * Stay connected when an "addg" command is received (client needs to disconnect to indicate the game should be removed from the lobbylist)

git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1642 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-15 20:42:28 +00:00
Giel van Schijndel 771d1efa9e * Add a "pretty"-printing function for printing games to a terminal (through std::cout)
* switch to using IPv4 instead of IPv6 (for testing)
 * Use correct buffersize for retrieval of a command/method (5 bytes/chars right now, ought to be NUL-terminated)

git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1641 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-15 20:34:26 +00:00
Ari Johnson e0872c90af WZ_OS_MAC now no longer unsets WZ_OS_UNIX due to compatability update in
r1638.  Exception handler still removed if WZ_OS_MAC is set.


git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1640 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-15 20:33:55 +00:00
Giel van Schijndel a2f477edcf * Add _premature_ C++ testing lobby server
(one of my first, and probably ugly, versions, going to commit incrementally till the last)

git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1639 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-15 20:30:22 +00:00
Dennis Schridde 290635ede8 Use POSIX definitions for WZ_OS_UNIX.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1638 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-15 17:17:32 +00:00
Ari Johnson 7023d75bb7 Added note about the Mac OS X 'Debug' build
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1637 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-14 22:05:04 +00:00
Giel van Schijndel a176a655fa * move function addIGTextButton from frontend.c to ingameop.c (since we don't care about what the playstation compiler does with our code!)
Thanks to Kim <lav-coyote> for noting the comment about the playstation compiler reason

git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1636 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-14 21:56:28 +00:00
Ari Johnson 1ed4ff54e8 Mac OS X related improvements:
- WZ_OS_MAC && DEBUG implies --debug all so that Console.app can be used
   to view debugging output on debug builds when launching from Finder
 - DEBUG flag re-added to Debug builds in Xcode project; was removed
   accidentally at some point
 - WZ_OS_MAC no longer implies WZ_OS_UNIX; handled separately where
   necessary
 - Do not use Warzone's crash handler since Mac OS X provides a good
   crash reporter already that just saves the crash log, with lots of
   useful information, to ~/Library/Logs/CrashReporter/Warzone.crash.log


git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1635 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-14 21:48:20 +00:00
Ari Johnson f96b29201c Updated Xcode project file to reflect deleted netaudio_stub.c file
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1634 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-14 20:19:38 +00:00
Dennis Schridde 26c42e1698 Tiny note about endian_xxword -> SDL_SwapXXXX
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1633 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-13 22:37:13 +00:00
Giel van Schijndel d3374c5d99 * Update MSVC project file
Patch by vs2k5

git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1631 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-13 20:31:01 +00:00
Giel van Schijndel 48f37b22d9 * Fix wrong interpretation of number of games (only the first byte of the 32bit long unsigned integer was used)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1630 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-13 18:52:29 +00:00
Giel van Schijndel 0a590a79af * Use network byte-order (big-endian) for size of game list as response to "list" command
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1629 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-13 18:19:22 +00:00
Giel van Schijndel 7b025ea3e1 * Make our lobby protocol code endian safe (response of a "list" command now always is preceded by a 32bit long, unsigned, little endian integer)
* Remove parameter `BOOL async` of NETfindGame since it wasn't used

git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1628 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-13 17:31:12 +00:00
Giel van Schijndel 1697d6a9e8 * Update POTFILES.in to deal with removal of netaudio_stub.c (r1625)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1627 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-13 13:28:28 +00:00
Giel van Schijndel 70c07901ae * Remove unused spectator functions: NETspectate and NETisSpectator
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1626 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-13 11:36:46 +00:00
Giel van Schijndel a2d13bc53c * remove lib/netplay/netaudio_stub.c (only had empty functions)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1625 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-13 11:33:44 +00:00
Giel van Schijndel 1689bd9dc9 * Remove unused function NEThashFile
(This function was only used to generate a hash from the compiled Warzone executable, this hash was then used as a security value across the network. This method won't work when using different compilers, OSes, etc.)

git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1624 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-13 10:57:08 +00:00
Dennis Schridde 10128153aa - Comment,s comments, comments
- Move wzFPSmanager over to main.c, so the delay can be dealt with directly in the mainloop instead of the detour through frameUpdate
  - Adding the functions directly to main.c is probably not the wisest idea, but may be fixed later


git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1623 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-12 23:41:29 +00:00
Dennis Schridde f5439cfa16 - More cleanup
- Split the mainloop into several (run) subfunctions
- start/stop functions for (de)initialization. This replaces the !Restart part
- removed necessity of several variables
- This is the last step before the event based mainloop


git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1622 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-12 21:47:06 +00:00
Dennis Schridde 50ea035570 More cleanup
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1621 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-12 20:39:57 +00:00
Dennis Schridde 1b66305fd3 Revert r1619, because it broke campaign
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1620 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-12 17:58:10 +00:00
Dennis Schridde 22a7dd9dce Event based mainloop. WARNING: Is not yet fully finished and may have some flaws. Comments are appreciated.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1619 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-12 17:52:31 +00:00
Dennis Schridde 03e7785ada Remove unused function.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1618 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-12 16:10:20 +00:00
Dennis Schridde 956ec975da Type safety.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1617 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-12 16:04:27 +00:00
Dennis Schridde 7c7911c92f - Fix gameloop exit, broken in r1615
- Split input event handling


git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1616 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-12 15:54:35 +00:00
Dennis Schridde 165ed5ccda Cleanup, no change in behaviour.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1615 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-12 14:13:40 +00:00
Giel van Schijndel dd03ace476 * replace macros WORLD_COORD and MAP_COORD with inlines world_coord and map_coord respectively (compiler checked, so adds type safety)
* Add some debug messages for the cases where map_Height receives negative SDWORDs passed as if they are UDWORDs

git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1614 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-12 13:38:07 +00:00
Giel van Schijndel d9a360b693 * use WORLD_COORD instead of "<< TILE_SHIFT"
* fix coding style (i.e. replaced four spaces for one '\t')

git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1613 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-12 13:19:01 +00:00
Dennis Schridde 006657de3e Found another delay...
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1612 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-12 12:33:29 +00:00
Roman C bd6d26e6c1 - put back checks for off-map build coordinates
- removed asserts for off-map coords which were making the game completely unplayable (crashes wz after 3 mins of play in mp)

NOTE: if someone will decide to remove the checks please fix the problems caused by the removal to make sure the game is still playable

git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1611 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-12 12:32:12 +00:00
Dennis Schridde ad57a3e0f4 Tiny translation update
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1610 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-12 09:25:01 +00:00
Dennis Schridde 981d56f328 active.state is a bitflag, so this should work even on Windows and still ignore the annoying focus switch on mouse-over.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1609 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-12 08:20:33 +00:00
Dennis Schridde f8bd53fc62 Per folder filters for MSVC project. Patch by vs2k5.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1608 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-12 08:07:12 +00:00
Dennis Schridde a07d282350 Ignore SDL_APPMOUSEFOCUS on Linux, since it mostly happens accidentialy, while on Windows this is the only possibility to gain focus
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1607 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-10 17:55:05 +00:00
Roman C 2eebd4f424 - prevent AI scripts from building a truck for human players at startup
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1606 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-10 13:28:59 +00:00
Giel van Schijndel 2e3b51d45a * We now also respond properly to loss of focus on Windows
* When receiving an SDL_ACTIVEEVENT also check for SDL_APPMOUSEFOCUS, but don't loose focus because of it, only gain focus when receiving this

git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1605 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-10 10:24:56 +00:00
Giel van Schijndel bc9cc26f3d * Call SDL_Delay(1) when out of focus (to explicitly yield our CPU time to prevent hogging the CPU)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1604 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-10 09:34:17 +00:00
Giel van Schijndel b8a986228b * Warzone seems to hang when loosing focus (gets stuck into an infinite loop somewhere) on Windows
* Fix this by ignoring focus loss on Windows

git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1603 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-10 08:21:42 +00:00
Dennis Schridde f347fa4fa8 Config option: debugmode (aka --cheat)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1602 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-09 05:31:51 +00:00
Dennis Schridde 0cfa9f6467 - Some more housekeeping.
- Warzone reacts on loss of focus again!


git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1601 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-07 20:24:34 +00:00
Ari Johnson 1ab3eccc21 Updates to Xcode project and associated README.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1600 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-07 20:02:52 +00:00
Ari Johnson ad582834c2 Added a hack to permit compilation on Mac OS X despite NSIG not being
defined in <sys/signal.h> for _POSIX_C_SOURCE or _ANSI_SOURCE.


git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1599 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-07 20:02:18 +00:00