* 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
* we now use "$(RMF)" (which expands to "del /f") instead of "$(RM)" (which expands to "rm -f")
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2166 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
Also add some fallback in case server sends us a bad player number.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2160 4a71c877-e1ca-e34f-864e-861f7616d084
of alliances in this mode, and always add scavengers. Note that this mode
will not work if there are eight human players, and I do not know exactly
what will happen in this case. A check to remove scavengers has been added,
but not tested. The problem is of course that scavengers need a player, too.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2158 4a71c877-e1ca-e34f-864e-861f7616d084
functionality in the skirmish game mode, so it is not necessary.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2155 4a71c877-e1ca-e34f-864e-861f7616d084
Make sure that "let me win" cheat works again by fixing assert when grid is
updated with the base (non-off-world) units.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2150 4a71c877-e1ca-e34f-864e-861f7616d084
-Added necessary scripting function to enable commander support for the scripts.
-Added a "group" member var to droids, to find out the group a droid belongs to.
-Added "type" member var to a script GROUP object, to find out the type of the group (commander group, transporter group etc).
-Added "commander" member var to GROUP, to find out the commander, a particular group belongs to.
-It is now possible to find out if a player has all necessary components to build a certain repair/command/cyborg engineer/cyborg mechanic droid using the scripts.
-Fixed a scripting function pushing a boolean to the script stack instead of an expected integer.
-Updated scripting manual.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2146 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