* Remove unused bitmaps res/bitmap2.bmp res/bmp00001.bmp; also remove them from our resource file
* Don't use a magic number in editworld.rc for means of referring to res/bitmap1.bmp use IDB_BITMAP1 instead
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2453 4a71c877-e1ca-e34f-864e-861f7616d084
* Remove some commented out functions from heightmap.cpp which where duplicated (i.e. functions with the same name and parameter prototypes existed elsewhere in the file) and used ListNode<T>
* Replace usage of ListNode<T> with std::list<T> usage; actually I replaced it with std::list<T>::iterator or std::list<T>::const_iterator since all code that still used ListNode<T> was code iterating over an instance of ListNode<T>
* Remove listtemp.h which contained template class ListNode<T>
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2451 4a71c877-e1ca-e34f-864e-861f7616d084
* #define VC_EXTRALEAN before including MFC & Windows headers to exclude some unused stuff
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2447 4a71c877-e1ca-e34f-864e-861f7616d084
* Remove several unused windows from the resource file: IDD_EDITSTATS, IDD_HEIGHTSCALE, IDD_OBJECTTYPES, IDD_SETSTATSCHOICE, IDD_SETSTATSCOMBO and IDD_SETSTATSVALUE
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2446 4a71c877-e1ca-e34f-864e-861f7616d084
* Update EditWorld's TODO file (remove limitsdialog.cpp from the list of yet to port windows)
* Use wxWidgets' precompiled header in numtextval.hpp
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2443 4a71c877-e1ca-e34f-864e-861f7616d084
* This class uses a container of integers instead of wxArrayInt (C++ container as specified in section 23.1 of the ISO C++ standard 1998)
* Add another ported dialog: LimitsDialog; to directory wxDialogs
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2442 4a71c877-e1ca-e34f-864e-861f7616d084
* Wrap some strings in _T() macro (deals with unicode/ascii text)
* Add an header guard to limitsdialog.hpp
* Use std::deque's constructor to load data into it from two InputIterators (first & last); note: in case of MSVC6 this requires you to fix the flawed STL
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2439 4a71c877-e1ca-e34f-864e-861f7616d084
* Change the return value of functions CHeightMap::GetMapWidth and CHeightMap::GetMapHeight from "DWORD" to "unsigned int" (also don't mark these functions as inline anymore)
* Mark function CHeightMap::GetScrollLimits as const and remove the inline keyword from its declaration
* Add a template function CHeightMap::SetScrollLimits which uses std::list::assign() to copy a list of CScrollLimits from two input iterators (in MSVC6 I had to fix the STL implementation to get this to compile, GCC works fine though, newer versions of MSVC *should* work as well btw)
Greater ease in porting to wxWidgets:
* Rename class CLimitsDialog to LimitsDialog
* Add templated constructor to LimitsDialog
* This constructor initializes an std::deque<CScrollLimits> (_limitsList) with a list of scrolling limits
* This constructor depends on InputIterators (as defined by the C++ standard in section 24.1.1) for its initialization
* Put member data in a private part of LimitsDialog's class declaration
* Make sure all member functions of LimitsDialog only work on its own private data and not on other classes' data
* Instead the usercode using LimitsDialog can use the InputIterators provided by LimitsDialog::firstLimit and LimitsDialog::lastLimit to copy data over (e.g. using STL Containers' assign() member function)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2435 4a71c877-e1ca-e34f-864e-861f7616d084
* Also dynamic_cast<T*> (which is compiler supported) should not be slower (if not faster) than wxWidgets' own RTTI implementation (t*)->IsKindOf(CLASSINFO(T))
This _does_ require RTTI to be enabled in wxWidgets' compilation; just enabling RTTI (as a compiler option) will only increase binary size, it should not add runtime overhead
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2264 4a71c877-e1ca-e34f-864e-861f7616d084
* remove some unnecessary #include directives
* add header guards
* declare some member functions const
* Add "const std::string& InitialLimitsDlg::SelectedString() const" which retrieves the string of the currently selected item
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2260 4a71c877-e1ca-e34f-864e-861f7616d084
* Some const correctness: "char*" -> "const char*"
* Fix a bug "if (a = b);" -> "if (a == b);"
* Fix a possible error where NULL might be dereferenced in CHeightMap::DrawScrollLimits (actually if that function would be called dereferencing NULL would be inevitable)
* Use references for output parameters rather than pointers
* If we use operator new[] then we should use operator delete[]
* Remove workaround for bad std::advance implementation since we're not using advance with our own iterators anymore
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2259 4a71c877-e1ca-e34f-864e-861f7616d084
* Make all member functions of CHeightMap that have an argument list declaration of "(void)" use "()" instead
* Rename std::advance in limitsdialog.cpp to just advance since it otherwise conflicts with MSVC's (flawed) implementation
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2255 4a71c877-e1ca-e34f-864e-861f7616d084
* Initialize CHeightMap's member variables using the constructor's initalization list rather than its body
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2254 4a71c877-e1ca-e34f-864e-861f7616d084
* Update the TODO list since SaveSegmentDialog has been ported from MFC to wxWidgets already
* Remove some commented out occurances of "ListNode<.*>.*\*" (yes regexp), to decrease the search context for refactoring code to use iterators
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2236 4a71c877-e1ca-e34f-864e-861f7616d084
* Apply ListNode<T>::iterator for some for-loops
* Make CHeightMap::GetScrollLimits return "ListNode<CSrollLimits>::iterator" instead of "ListNode<CSrollLimits>*" (effectively forcing all clients of this function to work in iterator style)
* Fix ListNode<T>::iterator::operator=
* Add function "void goToBegin()" to ListNode<T>::iterator (shouldn't be at the iterator I know, but this is the most intuitive intermediate solution)
* Add an own implementation of std::advance to limitsdialog.cpp (it is needed there);
* since apparently MSVC's STL developers can't even write something like: "for(; n ; --n) ++i;" correctly!!!
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2235 4a71c877-e1ca-e34f-864e-861f7616d084
* Rename class CInitialLimitsDlg to InitialLimitsDlg
* Add templated constructor to InitialLimitsDlg
* This constructor initializes an std::deque<std::string> (_stringList) with a list of strings
* This constructor depends on InputIterators (as defined by the C++ standard in section 24.1.1) for its initialization
* InitialLimitsDlg::OnInitDialog() now initializes its ComboBox with strings that have been loaded by the constructor from _stringList
* Add a proxy class that serves as an InputIterator for the initialization of InitialLimitsDlg
* This class is a proxy to ListNode<CScrollLimits>::iterator such that it extracts CScrollLimits.ScriptName and constructs an std::string from it
- These changes decouple InitialLimitsDlg from the implementation and interface of CHeightMap and CScrollLimits
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2234 4a71c877-e1ca-e34f-864e-861f7616d084
* Enable compilation of RTTI (RunTime Type-Information) compilation (not using any of it, .., yet)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2231 4a71c877-e1ca-e34f-864e-861f7616d084
* Rename the dialog in savesegmentdialog.xrc from "Dialog" to "Save Map Segment"
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2220 4a71c877-e1ca-e34f-864e-861f7616d084
* Give all parameters of AutoFlagDialog a default value
* Fix typo (used _TogXFlip and _TogYFlip instead of _ToggleXFlip and _ToggleYFlip respectively)
* Rename buttons ID_OK and ID_CANCEL to wxID_OK and wxID_CANCEL respectively; this causes wxWidgets' default handlers to be used for these
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2218 4a71c877-e1ca-e34f-864e-861f7616d084
* Add a default constructor for wxNumericTextValidator
* class wxNumericTextValidator:
* add DECLARE_DYNAMIC_CLASS, DECLARE_EVENT_TABLE and IMPLEMENT_DYNAMIC_CLASS
* fix BEGIN_EVENT_TABLE (use wxNumericTextValidator instead of wxTextValidator)
* return *this in copy assignment operator
* Some other minor fixes
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2217 4a71c877-e1ca-e34f-864e-861f7616d084
* 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
* 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