* This class validates input for wxTextCtrl to be numeric only
* Also upon initialization of the window that contains the "validated" text controls; these controls will be filled with a number given by a passed pointer
* Upon closing of this window the current value from these text controls will be written back into that pointer
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2211 4a71c877-e1ca-e34f-864e-861f7616d084
* Rename class CSaveSegmentDialog to SaveSegmentDialog
* Don't allow public access to private data members anymore
* Initialize private data members with constructor
* Add public access, member functions for private data members
* Don't define functions in a header file
* Add a header guard
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2209 4a71c877-e1ca-e34f-864e-861f7616d084
* Rename class CAutoFlagDialog to AutoFlagDialog
* Don't allow public access to private data members anymore
* Initialize private data members with constructor
* Add public access, read-only, member functions for private data members
* Upon initialization add button "handlers" to private pointers; rather than retrieving these pointers each time again
* Use only one function OnRotate() rather than four functions OnRot0, OnRot90, OnRot180 and OnRot270 which all have the exact same definition
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2205 4a71c877-e1ca-e34f-864e-861f7616d084
* Turn protected section of CEdgeBrush into a private section
* Mark all the functions that have their definition in the header as inline
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2204 4a71c877-e1ca-e34f-864e-861f7616d084
* Add list of files requiring porting from MFC to wxWidgets
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2202 4a71c877-e1ca-e34f-864e-861f7616d084
* Rename class CKeyHandler to KeyHandler (I don't want freaking MFC style classnames being prefixed with 'C')
* Modify class KeyHandler to use std::bitset instead of an array of bools
* Use forward declarations for pointers instead of including the entire header
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2200 4a71c877-e1ca-e34f-864e-861f7616d084
* Use std::ostream instead of FILE* for PCXHandler::WritePCX
* Change utility functions EncodeLine and EncodedPut to work with std::ostream instead of FILE* now
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2197 4a71c877-e1ca-e34f-864e-861f7616d084
* Change private member functions of PCXHandler; EncodedGet, EncodeLine and EncodedPut into static, inline, non-member, utility functions (EncodedGet now also works with std::istream)
* Use std::string for the composition of strings, rather than some char[] buffer and strcpy + strcat
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2196 4a71c877-e1ca-e34f-864e-861f7616d084
* Make IsPower2 take advantage of the mathematical properties that a number which is a power of two has (which is that a number which is a power of two minus one has _no_ matching bits with the number that is power of two); this severely decreases the complexity of this function (previous one looped over all bits)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2180 4a71c877-e1ca-e34f-864e-861f7616d084
* Remove macro MALLOC
* Use reinterpret_cast for the malloc stuff
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2179 4a71c877-e1ca-e34f-864e-861f7616d084
* Turn linked list macro LIST_REMOVE into inline function list_remove
* Remove macro MALLOC and use malloc instead (MALLOC was defined as malloc anyway)
* Replace some UBYTEs with chars
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2177 4a71c877-e1ca-e34f-864e-861f7616d084
* Remove unused BMP palette code, since obviously we're not using it
* Remove two other unused parameters from BMPHandler::Create: `void* Bits`, `bool Is555`
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2172 4a71c877-e1ca-e34f-864e-861f7616d084
* Remove unused parameter PALETTEENTRY* Palette from function BMPHandler::Create
* Change BMPHandler::GetBitmapWidth's return value to `unsigned int`
* Use std::vector for an "array" of PALETTENTRYs instead of a plain array
* Add a type CopyAblePALETTEENTRY which's definition is similar to PALETTEENTRY; with as difference that it has a copy assignment operator (so that we can use this type with std::copy, and other algorithms from the Standard Library)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2170 4a71c877-e1ca-e34f-864e-861f7616d084
* Replace BOOL, TRUE and FALSE with bool, true and false respectively
* Use the initializer list of the constructor instead of its function body for member variable initialization
* Replace usage of "operator delete" with "operator delete []" where the respective pointer had its memory allocated using "operator new []" (not doing so may cause heap corruption)
* Don't if (pointer != NULL) delete pointer; since delete NULL is a valid no-op.
* declare variables in a more local scope
* Use algorithms instead of custom implementations; e.g. std::swap rather than { tmp = x; x = y; y = tmp}
* Use reintrepret_cast<T> at some places instead of a C style cast, since these casts are really bad in this case (i.e. unnecessary), but they're easier to recognize this way
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2165 4a71c877-e1ca-e34f-864e-861f7616d084
* Instead declare our copy constructor and copy assignment operator private, also we don't provide an implementation of those
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2137 4a71c877-e1ca-e34f-864e-861f7616d084
Amoung a lot of changes here come:
- Handling of polygons referencing the same vertex more than once.
- Nicer GUI.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2085 4a71c877-e1ca-e34f-864e-861f7616d084
* Don't use pointers to fileParser for functions where references are lots more appropriate
* Mark some functions private instead of public (they're only used by class CHeightMap's implementation)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2025 4a71c877-e1ca-e34f-864e-861f7616d084
* Remove useless, and (luckily) unused default constructor from CFileParser
* Move initialisation of m_Flags to initialization list of constructor
* Don't use (void) as argument list of destructor (this is bad style in C, but especially so in C++, since C++ implies an empty argument list if you give one)
* Don't check whether new didn't return NULL, since we're using the throwing variant of new anyway
* Use istream.read instead of istream.readsome since the former will refill the buffer if necessary (which *is* necessary to be able to read something the first time)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2022 4a71c877-e1ca-e34f-864e-861f7616d084
* Use C++'s std::ifstream instead of stdio from C at some locations
* remove unused constructors from CFileParser (FILE* Stream, short Flags), (char* Buffer, long BufferSize, short Flags) and member function Create(char* FileName, short Flags)
* remove some duplicated code from fileparse.cpp
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2020 4a71c877-e1ca-e34f-864e-861f7616d084
* convert M$ Word documents into OpenDocument text documents (OpenOffice.org handles this perfectly) (lets use open standards instead of property formats!)
* remove WEDIT.DOC which seems to have been a duplicate of MANUAL.DOC or the otherway around, which doesn't matter really
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2011 4a71c877-e1ca-e34f-864e-861f7616d084
* Remove EditWorld.plg since this looks like a compilation report which we don't need in our repository (add it to the ignore list as well)
* Another MSVC compilation output file to ignore list: EditWorld.ncb
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2009 4a71c877-e1ca-e34f-864e-861f7616d084
* Give it a nicely oriented directory structure
* Rename all files in src/ (I hope I didn't miss any) to lowercase (except for MSVC project files)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2005 4a71c877-e1ca-e34f-864e-861f7616d084
as requested, it now provides a gui for setting the pie version -- you do this indirectly by setting the floating point precision (precision of 0 will create a "PIE 2", while anything else will create a "PIE 5"). note that only points will be given any extra precision at the moment, since i'm not sure how you want to handle texture coords. precision defaults to 0 (old pie format) since, afaik, pie 5 support in the engine is still lacking.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1989 4a71c877-e1ca-e34f-864e-861f7616d084
- Add debug output to gameserver sanity check
- Set the connection-check timeout to 10s
- Allow reusing of the masterserver address since otherwise lobbyserver restarts don't work immediately
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1951 4a71c877-e1ca-e34f-864e-861f7616d084
- no longer use glob
Known (and as of yet unfixed) issues are:
- it does not handle filenames safely (tabs and other whitespace in a filename are not handled correctly, though the likelyhood of this problem arising are low)
- it can parse extremely incorrect pie files (points not defined within a level, for example) when perhaps it should just fail gracefully
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1899 4a71c877-e1ca-e34f-864e-861f7616d084
connectors, team colors (using a second UV layer). Not supported: animations of any kind.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1840 4a71c877-e1ca-e34f-864e-861f7616d084
* To make sure we still have the guarantee that a char is 8bit I've inserted a static assertion for this (CHAR_BIT == 8)
* Use exact length types for lobbyserver
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1821 4a71c877-e1ca-e34f-864e-861f7616d084
Previous implementation could hit a deadlock since every single const_iterator class attempted to acquire a scoped_readonlylock on the lobby's mutex. Since the ReadWriteMutex doesn't grant readonlylocks anymore when a writer is pending for a lock this could deadlock if you ever would need two iterators at the same time. Therefore we now only acquire one readonly lock through the iterator_interface class.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1673 4a71c877-e1ca-e34f-864e-861f7616d084
It seems that "Artistic Style":
* somehow treats "lock" as a keyword, since it puts spaces behind every instance of "lock", this is not nice.
* doesn't recognize std::cout and std::cerr iostreams so doesn't properly line out multiline statements with stream operators
* doesn't indent subclasses correctly (it treats them as if they're one of the keywords "public", "protected", or "private")
* lines out multiline if-statements on their logical operators rather than their values, example:
> if (bla == bleh
> && mooh == meeh)
instead of:
> if (bla == bleh
> && mooh == meeh)
I've corrected all of the above manually before committing.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1669 4a71c877-e1ca-e34f-864e-861f7616d084
* GameLobby::gameLock now has a separate file
* GameLobby::const_iterator now also has a separate file
* move class RAIICounter to files of its own for ease of reusability
* remove dummy game (from lobbyprotocol::requestHandler in requesthandler.cpp)
* Remove commented out code (main.cpp)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1650 4a71c877-e1ca-e34f-864e-861f7616d084
* 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
* 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
* 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
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
* 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
* 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
* 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
(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
I don't claim that this code is of outstanding quality >_>
It was, after all, just written as a proof of concept prototype...
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1274 4a71c877-e1ca-e34f-864e-861f7616d084
- Reorder read_gdmp output
- Added compilation date to gdmp
- Reordered gdmp values: sysInfo now after programVersion/compileDate instead of before, to match read_gdmp display order
Still not implemented: Custom (signal safe) sprintf replacement, so we can output textfiles instead of binary blobs.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1189 4a71c877-e1ca-e34f-864e-861f7616d084
WorldEdit : only works on windows platform. Also needs ORIGINAL libs (inculded) to compile correctly)
PiePlugin (3ds Max -> .pie converter. Which is used for the .pie formats of 3d models used in game.
BSPIMD - Loads IMD, Generates BSP tree, saves IMD with BSP infomation.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@345 4a71c877-e1ca-e34f-864e-861f7616d084