1# ChangeLog
2
3## [0.4.2] - 2019-01-11
4
5### Engine
6* Remove Fog of War
7* Python 3.x support
8* Joystick and gamepad support
9* Implement hardware image cursor
10* Add more functionality to FIFE::SoundManager and get rid of the SoundManager extension
11* Sound Effects (A Feature to apply a number of sound effects on emitters such as FadeIn/Out. Perhabs also with use of the openAL EFX-extension.)
12* remove boost:regexp - replace with std:regexp
13* Pychan widget events #705
14* New fifechan widgets
15* New pychan attributes: ListAttr, ImageAttr
16* The most Pychan functions should be ported to Fifechan.
17
18### Misc
19* replaced GLEE with GLEW
20* remove build options `rend-camzones`, `rend-grid`, `use-githash`
21* version infos incl. git hash are inserted into version.h from CMakeLists, PR #997
22* Distinguish filtered mouse events
23* python bindings probably should not install cegui/librocket/etc. unconditionally
24* cameras must be attached to layers
25* Update outdated dependencies analyser & hook it into travis
26* Pychan should load it's font definitions from an XML file
27* Unchecked dependency for Xcursor
28* Copy pychan widgets/container at runtime (gui templates)
29* The Console should be optional when using fifechan
30
31### Bug Fixes
32* MouseScroll Button Pressing can crash fife
33* MacOS ld: warning: -L path '/usr/local/lib/libfifechan.dylib' is not a directory
34* Window width settings are not fully respected when using two screens
35* Build error with CEGUI
36* Investigate possilbe problems with CellGrid
37* Render problems with SDL 2.0.5
38* cegui widgets not cleared correctly with active map.
39* fife soundemitter lets UH hang
40* Soundemitter callback if soundclip was played
41* Box widgets should contain information about the on-screen positioning (not only relative to parent widget)
42* adjustSize() sometimes sets width to invalid values
43* Spacers don't expand to the dedicated maximum space
44* Some strings are cut short
45* Borders are not rendered on edges of widgets that touch their parent container's edge.
46* Pychan dropdown menus crash FIFE-based client on win32
47
48
49## [0.4.1] - 2017-02-07
50
51### Engine
52* Corrected wrong postion handling for events.
53* Added AnimationManager, issue #675
54* Enhanced XML formats, issue #963
55* Added events for mouse wheel left and right, issue #967
56* Fixed Location::getLayerCoordinates() on hex grids, issue #970
57* Removed special treatment of function keys, issue #976
58* Fixed tinyxml issue, was not being able to overwrite existing file, issue #978
59* Map more SDL keys to CEGUI keys, issue #980
60
61### Extensions
62* Load default settings if settings file has no FIFE module, issue #959
63* Update exception handler in ApplicationBase, issue #969
64* Remove Icon from manager on source load failure, issue #972
65
66### Misc
67* Ensure that FIFE exception message is printed in Python, issue #974
68* Several build fixes and improvements
69
70## [0.4.0] - 2017-01-16
71
72* removed Psyco JIT support (by removing "UsePsyco" and the related code)
73* removed "scons" build system
74* rename "cegui-0" (v0.8+) to "cegui"
75* removed cegui compatibility layer for versions below v0.7.9
76
77### Engine
78* renamed overloaded createTrigger and removeTrigger methods, issue #947 + PR #950
79* Got rid of various compiler warnings
80* Add getCellsInCircleSegment() to CellCache and getInstancesInCircle(),
81	getInstancesInCircleSegment() to Layer
82* Add MultiPathfinderTest
83* Add new instance function, prepareForUpdate()
84* Local tinyxml files are now only added to the compile list if either
85	local-tinyxml is defined for SCons or the system version of tinyxml is not found.
86	[t:619]
87* Add animation & color overlays [t:201], fixes [t:762], [t:764] and [t:763]
88* Merge GSOC work done by vdaras.
89* Replaces Guichan dependency by Fifechan
90* Add support for librocket
91* Add support for cegui [t:726]
92* Fixed keyboard input of control characters for CEGUI by Niektory [t: 796]
93* Make use of Fifechan optional
94* Add overlay test
95
96### Extensions
97* Added the gl/GLU.h header to the atlas creator [t:740]
98* Removing the soundmanagers dep on pychan [t:767]
99* Slightly modified frange() to be more robust and fixed the ceil() call, fixes [t:725]
100* Convince SWIG that Color.r (g, b, a) should be a python property [t:799]
101* Inherit fife.Exception from python's (Base)Exception [t:788]
102* Import cleanup in pychan.widgets [t:787]
103* Fix password- and textfield not accepting initial data
104* Remove cell_pathfinding compatibility layer [t:775]
105* Fix typo in fife_settings
106
107### Misc
108* Renamed all --with/--without scons options, fixes [t:797]
109* Add travis configuration by jakoch [t:784]
110* Modifying the versioning scheme [t:783]
111* Darwin config now expects everything to be installed from source
112
113## [0.3.5] - 2013-08-21
114
115### Engine
116* Fixed another LayerCache bug.
117* Fixed blocking bug, which has affected multi cell objects.
118* Fixed segmentation fault within pathfinder.
119* Fixed segmentation fault within Instance::follow.
120* Fixed the visible/invisible problem. [t:780]
121* Fixed facing location and a related bug. [t:773]
122
123## [0.3.4] - 2013-02-28
124
125### Engine
126* Fixed a couple of compiler errors when SDL renderer is chosen (i.e.
127  HAVE_OPENGL macro is not defined). [t:693]
128* Changed the way instance rotation works. Instead of using a facing location
129  the instance now use only a rotation value. But the possibility to get and
130  set facing locations is still available. In case you set a facing location,
131  internally it is converted to a angle or in case of get, the angle is
132  converted to a location. [t:647]
133* Fixed grid scaling by camera rotation. [t:695]
134* Optimized camera update() function. Old caused two matrix updates.
135* Changed the angle/rotation functions to use MapCoordinates instead of
136  ExactLayerCoordinates.
137* Added a virtual destructor to the IResourceManager interface. [t:709]
138* Fixed a problem with the usage of the size_t type. [t:702]
139* Addressed some API inconsistencies. Renamed LogManager::isLoggingToPrompt()
140  to isLogToPrompt() and LogManager::isLoggingToFile() to isLogToFile(). This
141  shouldn't affect python clients as the appropriate changes have been made
142  to the python extension. [t:711]
143* Addressed more API inconsistencies. Renamed (in serveral places)
144  setMouseAcceleration() to setMouseAccelerationEnabled() and
145  getMouseAcceleration() to isMouseAccelerationEnabled(). This shouldn't
146  affect python clients as the appropriate changes have been made to the
147  python extensions. [t:711]
148* Fixed some problems when zooming at 200% or 300%.. etc etc. Images were not
149  exactly 2x2 or 3x3. [t:719]
150* Added getMapViewPort() and getLayerViewPort() functions to camera class.
151  These functions return the position and size of the camera in map or layer
152  coordinates. CellRenderer make use of it to speed up rendering, especially
153  when many cells exist in the cache. [t:647]
154* Added Fog of War support.
155* Pathfinder has been completely re-written.
156* Added getDesktopHeight() and getDesktopWidth() to DeviceCaps. [t:669]
157* Enhanced Instance coloring. The new alpha component is used as interpolation
158  factor. [t:729]
159* Ensure SCons version is 2.0+. [t:735]
160* Added the staticLayer feature so that layers can be rendered as one texture.
161  [t:742]
162* Client can now select, per Layer, between three sorting algorithm.
163
164### Extensions
165* Fix event groups in pychan; only the last group's callback used to be
166  considered.  [t:23]
167* Added the getter and setter functions to the fifelog extension. [t:711]
168* Replace 'dct.has_key(k)' with 'k in dct'. [t:631]
169* You can now overwrite existing widget types without pychan "trying" to throw
170  an exception. There is no feedback if you do overwrite an existing widget,
171  it will silently allow you to do so. fixes[t:748]
172* Allow client to set focus to a child widget when using widget.execute().
173  [t:750]
174* Fixed a bug in the slider widget which caused it to ignore the step length.
175  [t:754]
176* Unknown exceptions are now caught by BasicApplication and the engine is
177  exited gracefully. This prevents an endless output of exceptions from being
178  printed to the console window. [t:755]
179* Added the ability to set the horizontal_scroll_amount and
180  vertical_scroll_amount via XML for scroll areas. [t:692]
181* Modified the default settings dialog box to no longer use drop downs. This
182  prevents the dropdown segfault from happening. [t:756]
183* Fix typo in xml serializer.  This was leading to a crash when extra_attrs
184  were passed. [t:760]
185
186### Misc
187* Added some excludes to the fife.iss file so it doesn't include some files
188  that it shouldn't when building the windows installer. [t:601]
189* Changed the python executable back to python.exe from pythonw.exe in the
190  windows installer. pythonw.exe crashes with some version of python when you
191  output something to the console screen. [t:601]
192* Added PathfinderTest to fife tests. It demonstrates multilayer movement and
193  how speed and cost multiplier could be used. [t:647]
194* Updated the header file location for fifechan when building with mingw on
195  windows. [t:698]
196* Update to allow FIFE to find fifechan when it is installed in the libpath.
197  Tested this on archlinux. [t:698]
198* Allow for parallel builds. fixes[t:696]
199* Removed unused file - freebsd8-config-dist.py. [t:716]
200* Updated the COPYING file to be the current copy of the LGPL 2.1 text. It
201  seemed to contain an older version of LGPL. fixes[t:718]
202* Modifying code/comments/file headers that apply to this branch to conform to
203  the new coding standard. Also applied the correct eol-style svn property for
204  some of the new files. [t:647]
205* Applying patch provided by gscai. This allows for custom command line
206  parameters to be passed to the windows build batch files. [t:737]
207* Applying patch provided by gscai. This allows the use of the CXX environment
208  variable to change the path to the desired C++ compiler. [t:738]
209* Fixed a bug where the shooter demo would crash after a few seconds after
210  starting a new game. This also prevents the player ship from being lost off
211  the left side of the screen. [t:747]
212
213### Docs
214* Updated the doxygen configuration file to be current with the latest doxygen
215  version.
216* Added a process on the web host to generate doxygen documentation as well as
217  epydocs for the python modules.
218* Doxygen docs now include the FIFE revision number they were generated from.
219* Updated a comment in quadtreerenderer.cpp that was being mistaken by doxygen
220  for the FIFE namespace docs.
221* Added FIFE namespace documentation to version.h
222* Fixed a bunch of doxygen warning/error messages (now that we are able to see
223  them). [t:550]
224* Epydoc formatting fixes for xml loader files. [t:724]
225
226## [0.3.3r3] - 2012-04-17
227
228### Engine
229* Implemented C++ map savers which is now being used by the editor. [t:491]
230* Fixed instance Z so it works now as expected.  This should only be used for
231  small optical corrections. (r3810)
232* Added layer z offset. [t:366]
233* Fixed a problem with instance setLocation(). (r3810)
234* Removed sub image loaders as they are not used. (r3811)
235* Object is no longer derived from IResource. (r3811)
236* SDL Renderer now renders quads as expected. [t:607]
237* Changed the Image creation in CoordinateRenderer. The coordinate is now
238  splitted into three images. So the TextRenderPool can reuse the most images
239  and must not create one for each coordinate. Additional the images take camera
240  zoom into account, but you can also disable it. [t:612]
241* Added InstanceDeleteListener to InstanceRenderer and RenderNode. [t:602]
242* All images created by effects are now owned by ImageManager and freed
243  if no longer used after 60 seconds. [t:611]
244* Added the set method to PointType2D and PointeType3D. [t:615]
245* Changed the way Atlases and SubImages?(SharedImages?) are loaded and freed.
246  SubImages now store a ImagePtr to its Atlas and the name. So a AtlasImage is
247  only unreferenced if all SubImages are removed. It is also possible to free
248  all images. Images that are required but were freed, invite self-adjusting.
249  [t:605]
250* Added functions to allow the client to set the mouse position on the screen
251  and retrieve it as a tuple in python.  [t:617]
252* Added another version of captureScreen() that takes width and height params
253  allowing you to resize the resulting image. [t:618]
254* Fixed a bug that led to Segmentation Faults, if the BitsPerPixel setting was
255  different than 32. [t:623]
256* Added support for True Type Collection fonts. [t:614]
257* Optimized getMatchingInstances(). [t:592]
258* TargetRenderer is no longer dependent on map loading. [t:636]
259* Small fix in the AtlasLoader to set the filename of any objects read from
260  the atlas file to the atlas xml file instead of the image file like it was
261  doing previously. This fixes a problem seen in the map loading/saving where
262  the imports would save the image file instead of the xml description file in
263  the map. [t:491]
264* Zooming now works as expected with x and y offsets. [t:667]
265* We now get more information when gcn::Exception is thrown. [t:665]
266* MapLoader now allows for .zip files to be loaded. ZipSource implements a
267  smarter file search so it can properly load files from a zip archive. [t:491]
268* Removed the lasttime_draw reset from TargetRenderer, because this can cause
269  problems. [t:674]
270* Cursor no longer moves to 0,0 on startup. [t:670]
271* Removed unneeded command line option -Wl from both release and debug builds
272  as this was breaking builds on gcc 4.7 and above. [t:691]
273
274### Extensions
275* Fixed the file extensions registration for python plugin map loaders. [t:609]
276* Setting module is more robust on errors concerning non-string parameters.
277  [t:626]
278* SimpleXMLSerializer now saves XML files with platform specific line engines.
279  [t:630]
280* Child widgets should correctly report if they are hidden or not. [t:628]
281* Removing the hack to grab references to the GUIChanManager. Now we just use
282  the pychan manager to grab what we need to grab from the GUIManager. Added 4
283  new functions to pychan Manager. getConsole(), getDefaultFont(), createFont(),
284  and releaseFont(). [t:644]
285* Fixed deepApply() to now include hidden children in it's search. also added
286  the ability to only search for visible widgets. [t:608]
287* GUI Icons can now be resized at render time. [t:655]
288* Widgets can now be cloned to make widget templating possible. [t:376]
289
290### Editor
291* Users can now specify an additional plugin directory for the editor. [t:598]
292* Fixed a couple small editor bugs regarding map loading. [t:603] and [t:604]
293* Added a plugin interface to extend the editor with savers. [t:610]
294* Toolbars can be docked/undocked again.  [t:635], [t:640], and [t:641]
295* The toolbox, toolbar, and statusbars statuses are now reflected correctly in
296  the menu. [t:643]
297* Object Editor plugin now displays animations as expected. [t:624]
298* Added InstanceHighlighter plugin
299* Added docking status saving to ToolBar widget class, added default docking
300  settings for Toolbox
301* Re-arranged init order in MainWindow.initGui() to make dockareas available
302  for ToolBar
303* Small change to screenshot icon to give it a bit more space on the left
304* Refactored ObjectSelector
305** Added auto-alignment depending on docking area (vertical/horizontal)
306** Right click can be used to trigger the alignment change manually
307** No annoying resizes on object selection
308** Speed issues not fully solved, but pin-pointed: resizing ~200 icons is a bit
309   too much for pychan
310* GUI Plugins can now use auto-alignment functionality from the ToolBar class
311* Small design fix in LayerTool
312* Small fix for MapFileHistory
313* Editor now doesn't load the same mapfile twice (gives feedback in the
314  statusbar)
315* Re-enabled saving for ObjectEdit? plugin
316* Implemented XMLObjectSaver which allows serialization of a fife.Object
317** NOTE: only well-formed xml files are accepted
318** NOTE: provides a compat-mode to scan for <object> tree roots, but also uses
319   new <asset> tree root
320* Added namespace sorting to ObjectSelector
321* Refactored ObjectEdit
322
323### Misc
324* Removed some unnecessary warning messages from Model. [t:645]
325* Removed non-free icons from the atlas editor and added license file to the
326  atlas editor. [t:637]
327* Added a proper distclean build target. [t:622]
328* Added getRevision() to allow client to query the revision FIFE was build from.
329  This only works if svnverion is present in the users PATH.  Window users will
330  always get 0. [t:671]
331* Added a check to animpacker.py to convert double points in action names to
332  underlines. Additional the convert now consumes less RAM, because the
333  ImageManager free images. [t:677]
334
335## [0.3.3r2] - 2011-11-02
336
337### Engine
338  * Added getVersion(), getMajor(), getMinor(), getSubMinor() functions and
339    exposed them to python. [t:582]
340  * Added a new math function to compare floats/doubles. It returns true if the
341    difference is smaller as delta.
342  * Fixed the getMatchingInstances() function. [t:579]
343  * Added an bool to getMatchingInstances(). If a client need pixel accuracy
344    results it should be set to true. Otherwise it should be set to false
345    because so it skips the pixel compare and is much faster. [t:586]
346  * Added two more InstanceChangeTypes, ICHANGE_BLOCK and ICHANGE_CELL. [t:574]
347  * The ActionFrame for animations has been made functional. This means a minor
348    API change. For details look into the changed demo scripts. [t:573]
349  * Fixed the broken FIFE::Command type events. Now all event states are
350    evaluated and not just one. Example from the ticket works now as expected.
351    [t:503]
352  * The DELETE macro which is defined in winnt.h is undef'ed on any windows
353    platform that defines the WIN32 macro. This fixes compilation when using
354    visual studio. [t:589]
355  * Added two new mouse settings. The first one is the mouse sensitivity and
356    the second can enable mouse acceleration. The sensitivity is limited to
357    -0.99 (the slowest) and 10.0 (the fastest). If you enable mouse acceleration
358    then the sensitivity is used as the max speed value. You can also change it
359    on runtime with the EventManager. [t:487]
360  * Added the getPtr() functions to ImageManager. All loaders now check to see
361    if an image has been defined before creating it. This was a small bug that
362    caused the image to be loaded even if the image was defined but not loaded
363    in the first place. [t:590]
364  * Fixed a bug in ImageManager::removeUnreferenced(). It would cause a segfault
365    when executed. This has been fixed.
366  * Fixed the problem where the animation atlas image becomes invalid after
367    deleting all objects from model. [t:590]
368  * Added a setting to allow users to deactivate the usage of the Framebuffer
369    Object in opengl backends. refs[t:581]
370  * Added a setting to allow users to deactivate the usage of NPOT Textures in
371    opengl backends. [t:581]
372  * Fixed a condition where if a widget is dragged to an area on the screen
373    where there is no widget the event gets lost. It also prevents the focus
374    from being dropped. [t:594]
375  * Fixed a condition where the user drags from the map to a guichan widget and
376    an event is lost. [t:594]
377  * Added getRealCellDimensions() function to camera. [t:592]
378  * Fixed a bug with Image names in TargetRenderer. [t:595]
379  * Added 1024x600 as a valid resolution. [t:597]
380
381### Extensions
382  * Fixed a problem where the setting value cache is not updated [t:578]
383  * Fixed a problem in fife_settings.py when starting the editor because the
384    editor tried to modify the value of a setting not in the FIFE module.
385    [t:578]
386  * Added 'all' to the valid LogModules setting [t:578]
387  * Pychan widgets can now be shown/hidden even if they are not top level
388    containers [t:375]
389  * Fixed a small bug with basicapplication. It was grabbing a reference to
390    the gui manager incorrectly.
391
392### Editor
393  * Fixed a bug in the layertool GUI. It was using the quit.png icon as its
394    delete layer image instead of the delete_layer.png icon. [t:583]
395  * Replacing the editor's icon files with free ones. [t:584]
396  * fixed a bug in pychan.internal (hide() method didn't handle deletion
397    correctly, added a guard & docstring to explain why this is bad)
398  * added new functionality to Plugin base class (read settings from editor's
399    settings file)
400  * added afterDock / afterUndock methods to Panel widget; did some code
401    cleanup & improvements to meet coding standard
402  * added documentation to the editor (mostly in docking functionality)
403  * updated both MapFileHistory? and LayerTool? plugins to use the new Plugin
404    functionality - their docking status is now saved & loaded again
405  * added new event 'onOpenMapFile' to the signalmanager which sends the path of
406    the requested mapfile
407  * added MapFileHistory? plugin
408  * records previous loaded mapfiles and loads them on editor startup via
409    settings xml
410  * selecting a mapfile either loads the map or updates outdated entries (e.g.
411    if a map has been deleted)
412  * I added a max value of 5 entries, can be adjusted in the plugin file though
413  * fixed minor issue with moving multiple selected instances
414  * fixed "move"-mode of editor - it now doesn't try to select / deselect cells
415    (that's the task of "selection mode")
416  * fifedit now can handle instances on hex grids again
417  * deselection of cells is now possible (previous implementation never could
418    work)
419  * switched instance selection from pixel-perfect to location (click on a cell
420    -> you select your instance, even if the cursor didn't scratch the instance
421    image)
422
423### Misc
424  * Fixed the Free Software Foundation address in COPYING as it was outdated.
425  * Added some more tiles to the rpg tileset in fife_test.
426  * Added a Show Hide test to the PychanTest module in fife_test.
427  * Small fix for the base class Test in the fife_test application. The create
428    function reversed the engine and application parameters from what is
429    actually passed in by the TestManager. The PychanTest was unaffected because
430    it had the parameters in the correct order as opposed to reversed in the
431    base class.
432  * Commented out a whole lot of debug statements to make the debug output in
433    FIFE useful again. I left them in the code in case anyone still needed them.
434  * Added more tests to the fife_test testing platform. [t:683]
435
436## [0.3.3] - 2011-10-06
437
438### Engine
439  * Many optimizations/improvements to the OpenGL renderer.  Depth testing was
440    modified and now works properly with alpha blending enabled.  Alpha testing
441    is used to discard pixels. [t:556]
442  * Optimized color overlays. [t:539]
443  * Customizable alpha threshold value for outlines / outlining [t:569]
444  * Added support for drawing/modifying images. [t:553]
445  * Re-implemented the Resouce Pools (ImagePool AnimationPool, etc) as
446    ImangeManager, SoundClipManager, etc. [t:504]
447  * Setting module no longer crashes when settings dialog has not been loaded.
448    [t:555]
449  * Fixed the problem that the objects of the renderers don't get deallocated
450    when the camera deconstructor was called. Affected renderers: Instance-,
451    Cellsection-, Generic- and LightRenderer.
452  * Added the missing reset() and removeAll() functions to the GenericRender
453    and LightRenderer.
454  * Removed the Engine::preInit() function.
455  * Removed EngineSetting::getPossibleResolutions() and validate() functions
456  * EngineSettings no longer throws any exceptions. Instead default values as
457    assigned and a warning message is sent to the logger.
458  * Some optimizations to LayerCache and Camera
459  * Removed some unnecessary includes.
460  * Changed when some exceptions are thrown. [t:511]
461  * Added setBackgroundColor(), so a client can change the clearing color for
462    the screen. [t:307]
463  * Added camera overlay functions. Clients can now add a color, image and
464    animation overlay to the camera [t:460]
465  * Made sure that the fife logger is part of the FIFE namespace.
466  * Modifying all integer definitions to conform to the C99 standard.
467  * Added the getMinMaxCoordinates() function to the map class. It retrieves
468    the minimum/maximum coordinates of instances on the map.
469  * Changed Model::getNumMaps() to Model::getMapCount().
470  * Changed Map::getNumLayers() to Map::getLayerCount().
471  * Changed Animation::getNumFrames() to Animation::getFrameCount().
472  * FifeClass is no longer derived from IReferenceCounted.
473  * ResourceClass now implements the reference counting routines.
474  * Singletons are no longer derived from FifeClass.
475  * Modified the HexGrid? and SquareGrid? clone process to work as expected
476    (even though it's not really used). This doesn't fix the obvious problems
477    with CellGrid? and the way grids are created. This will have to be looked
478    at closer in the future.
479  * Made the quad tree depth easily changeable (instead of hard coded to 2)  .
480  * SquareGrid? now uses diagonals by default.
481  * Model now logs to the LM_MODEL log module.
482  * Small modifications to Exception to make it output to the log correctly.
483    Now we can read the exception output.
484  * Changed a few sqrt to match the new math definition.
485  * Added layers getMinMaxCoordinate() function to python.
486  * Renaming the only 2 .hpp files to conform to standards.
487  * Optimized the lightrenderer a bit.
488  * Fixed a build error on updating project files. This was caused by not
489    installing the mingw part in the devkit installer.
490  * Added code to support different versions of boost filesystem. [t:529]
491  * Fixed some color variables (Uint8, int32_t to uint8_t).
492  * Added some code to the python build environment to support python 2.4+.
493    [t:465]
494  * Fixed a segfault in the view_tests.py unittest.
495  * Settings now list valid screen modes. [t:494]
496  * the default image loader now throws exceptions if the image fails to load.
497  * Fixed a bug in RawData::read where an incorrect calculation was done to
498    check the validity of a passed in parameter. This caused a problem with
499    loading asset files when the file did not have an appended new line at the
500    bottom. Also modified the RawData::getDataInBytes, RawData::readString, and
501    RawData::read methods so that they do not create a temporary data array and
502    instead read directly into the output buffer, this should be more efficient.
503    Added a quick comment to xmlobject.py describing why a raise call is
504    subverted by an earlier return statement. [t:516]
505  * Removes an unnecessary call from endFrame().
506  * Fixed some unittests.
507  * Added a framerate limiter. [t:525]
508  * Replaced the Generic- and LightRendererNode with RendererNode.
509  * Fixed the distance calculation in routepather.cpp.
510  * Added the OffRenderer. This is the only renderer that does not need a map
511    or camera. The functions are identical to those of the GenericRenderer,
512    but it use screen coordinates. This renderer is only intended for cases
513    where no map is loaded, eg for an intro.
514  * Changed the swig video_tests.py to use the new renderer.
515  * Removed the primitives and a few other functions from the python interface.
516    These are no longer needed.
517  * Added the swig cursor unit test.
518  * Added some getter functions to cursor along with some documentation.
519  * RenderItem now stores an ImagePtr.
520  * Fixed SharedPtr destructor. [t:561]
521  * Added the getInstancesIn() function to Layer. This picks the Instances from
522    the InstanceTree.
523  * Fixed getMatchingInstances(). The picked instances be checked with the
524    instances of the layer. To compare the instances, getInstancesIn() is used.
525    [t:562]
526  * Unnecessary InstanceActivity? are now detected and deleted. Inactive
527    Instances are removed from Layer m_active_instances. [t:564]
528  * Changed from using RawData::getDataInBytes to use RawData::readString in
529    the animation/atlas/object/map loaders because the readString function
530    appends a null terminator onto the end of the data contents. Without the
531    null terminator errors were sometimes seen when trying to load map assets.
532  * Added some error log printing indicating when map assets fail to load.
533    [t:567]
534  * Modified the RawData::read function so that it no longer appends a null
535    terminator as this was causing the python xml loaders to throw a
536    ParseError exception. Also fixed the RawData::readString function so that
537    it now appends the null terminator in the proper place. [t:567]
538  * Made scons check for the dev libraries of whatever python the user ran
539    scons with. [t:523]
540  * Fixed a  problem where pychan will throw an exception when trying to print
541    UTF8 characters to the console. [t:571]
542  * Fixed and optimized a few functions in location.cpp. [t:563] and [t:568]
543  * Added option --lib-dir to scons build system to specify a shared library
544    install location. The shared library generated will now contain an soname
545    that will be libfife.so.major. Also changed the generated shared library
546    name to be libfife.so.major.minor.release. Added a version.h file to
547    engine/core that will contain the current fife major, minor, and subminor
548    versions and should be updated for each fife release. [t:575]
549  * Fixed minor bug in getMatchingInstances(). This means that sometimes a wrong
550    choice was made, because alpha value was not correct.
551  * Change the way you set FIFE::Cursor to allow cursor to save a reference to
552    the image or animation. Added a function to reset the cursor drag to
553    nothing.
554  * Added GLee - currently it's compiled with fife as .cpp (scons doesn't get
555    compiled .c files).
556  * Initial support for c++ map/object/animation loaders. [t:491]
557  * Added dependency tinyxml for reading xml files. This is stored in
558    engine/core/ext/tinyxml directory. The scons scripts will attempt to use
559    system version of tinyxml if available otherwise the local one will be used.
560    [t:491]
561  * Added image Atlas support. [t:542]
562  * Added a zoom flag to the image/animation functions of the GenericRenderer.
563    So a client can disable the zoom for images. [t:543]
564  * Fixed a bug that caused the generated SWIG interface file for fife to not
565    compile when building with gcc 4.6.1. [t:546]
566  * Began work on de-coupling FIFE from guichan. [t:549]
567  * Changed Guichan graphics renderer to utilize vertex array instead of
568    immediate mode. [t:549]
569  * Removed Abstract* classes in favor of I* classes. This is to conform to our
570    coding standards. [t:550]
571  * After a new layer is added it is now activated for all renderers. This fixes
572    the problem of no instances being rendered for a newly created layer.
573    [t:551]
574  * Added the option to change the alpha value for instance picking.
575  * Added a setting for backbuffer clearing. So clients can deactivate it if
576    they have reasons for this.
577  * Removed the old setImageChunkingSize() setting because its useless.
578  * Changed the pump function. Model update gets only called if a map is loaded.
579  * Adding a quick and dirty shared pointer implementation that does not rely
580    on any 3rd party libraries. This will need to be extensively tested and can
581    always be swapped out for another implementation including
582    boost::shared_ptr.
583  * Added the unittest for SharedPtr.
584  * Instances now inherit blocking property from objects [t:514]
585  * Settings are now validated. [t:528]
586  * VFS now allows paths outside of launched applications when using a python
587    client. [t:544]
588  * Reworked the lighting module.  [t:557]
589  * The Windows icon is now freed correctly. [t:530]
590
591### Demos
592  * Fixed a bug in the shooter demo that caused a crash. [t:495]
593  * Updating the rio settings-dist.xml file to include the log level filter
594    setting.
595  * Added animated percentagebar widget to gui animation demo.
596  * Pychan demo now closes when you press escape or when you close the window.
597    [t:531]
598  * Shooter demo now generates a hichscore file if one does not exist.
599
600### Documentation
601  * Documented the shooter World.reset() function.
602  * Updating the dependency graphs. [t:554]
603  * Documented all valid FIFE settings. [t:527]
604
605### Extensions
606  * Updated basicapplication.py to initialize the logger before settings so
607    that setting messages will be logged.
608  * Removed some deprecated functions in pychan.
609  * Removed the deprecated ClickLabel widget from pychan. [t:552]
610  * Added changeBlending() to python.
611
612### Tools
613  * Editor no longer crashes when there are too many instances on the map when
614    using the OpenGL renderer. [t:500]
615  * Added Atlas Creator tool. Currently it's a standalone application written
616    in Qt. [t:541]
617
618## [0.3.2] - 2010-11-19
619
620### Engine
621  * Removed the Camreazone renderer
622  * Added light support (OpenGL only) by merging the light branch.  Speacial
623    thanks to Helios for all his hard work in this area (#364)
624  * Added a percentage bar widget (#411)
625  * Modified some size_t definitions to more appropriate ones (#152)
626  * Instance rotation changes are reported to the instance change listeners
627    (#475)
628  * Fixed the GenericRenderingNode to no longer cause a segfault (#446)
629  * Fixed an API inconsistency in SoundEmitter (#461)
630  * There is no longer a memory leak when adding coloring overlays to instance
631    (#472)
632  * instance.get2dGfxVisual().setVisible(False) now works as expected (#471)
633  * Removed the last 0(n) loop through instances when rendering (#419)
634  * Generic renderer now only renders objects on the specified layer (#458)
635  * Fixed a memory leak when deleting maps.  The camera was not being
636    deleted
637  * Removed the NotFound exceptions in layer.getInstance() and
638    model.getObjects() to be more consistent with the rest of the API
639  * Fixed a bug in RenderBackendSDL, the clip area was not properly set
640  * Renamed the backquad and border commands of the FloatingTextRenderer
641  * Added the TransparentArea commands to the InstanceRenderer
642  * Improved InstanceRenderer::addTransparentArea.  You can now pass a list
643    of namespaces to be marked as transparent
644  * Updated Instance to no longer derive from ResourceClass. It now derives from
645    FifeClass directly
646  * Improved the floatingtextrenderer. Now you can set an alpha value for font,
647    background quad and border. Split quad and border into own commands
648  * Added a triangle function to backend and genericrenderer, also added the
649    functions to set an alpha value for geometric figures
650  * floatingtextrenderer now can change colors of the font via
651    setColor(uint r, uint b, uint g)
652  * Added the colorbuffer patch with a small change due to SDL. Performance
653    boost between under OpenGL
654  * Improved the most renderers with setColor() function to allow the user to
655    modify the color used to render the primitives
656  * Fixed the genericrenderer.  It is now tested whether the images are in the
657    viewport
658  * Fixed the gridrenderer to only render the grin within the viewport
659  * Changed the vertex functions in opengl/renderbackendopengl.cpp from
660    vertex3f() to vertex2f()
661  * Moved the layer visibility and transparency, from instancerenderer.cpp to
662    layercache.cpp and improved it (r3395)
663  * Corrected the h,w calculation for zooming in layercache.cpp (r3369)
664  * Fixed the bug, that x,y camera position result in an screen offset. (r3369)
665  * GLImage now only creates one "texture chunk" (r3445, r3452)
666  * Added nextPow2() math function (r3445)
667  * Fixed color mask definitions and use them throughout the engine (r3445)
668  * Moved the GLEnable and GLDisable structures to be globally accessible
669    (r3445)
670  * Templatized Rect to extend it's functionality beyond integers (r3447)
671  * Added some typedefs: Rect, FloatRect, DoubleRect (r3447)
672  * Removed the unused "trigger" system as it was unused (r3449)
673  * Applied GreyGhosts patch to fife_settings. Allows the user to load the gui
674    XML whenever they want. Also returns a reference to the dialog so it can be
675    worked with outside of fife_settings. (r3451)
676  * Removed unused files containing the unused GUIEventListener class (r3453)
677  * Removed old and unused functions: set/getSourceWidget() (r3455)
678  * Added drawRectangle() and fillRectangle() functions to the renderers (r3456)
679  * Modified FIFE::FloatingTextRenderer? to use the new functions (r3456)
680  * Updated some data types in FIFE::FloatingTextRenderer to use integer types
681    defined in fife_stdint.h (r3456)
682  * Added FIFE::DeviceCaps and FIFE::ScreenMode to detect valid screen modes
683  * Added the ability to query the current running screen mode (r3467)
684  * Added a method to detect the closest supported screen mode (not
685    complete yet). If no matching screen modes are detected an exception is
686    thrown. (r3467)
687  * Small change to the way the screen is initialized. The screen mode now
688    MUST be in the supported screen mode list before the screen will
689    initialize. (r3467)
690  * Added clearResourceLoaders() to the Pool class. This can be used if
691    different resourceloaders have to be added at a later point in time
692    (running editor for example, a plugin might want to have it's own loader
693    added) (r3469)
694  * Added the ability to normalize a 2D and 3D point (r3470)
695  * You can now rotate a 2D point around the origin or a specific point (r3470)
696  * Major improvements to fife_math.h and added corresponding Python bindings.
697    Users now have access to FIFE's internal math functions. These functions
698    are recommended to be used by all clients if required. Note: this may cause
699    some problems with certain compilers. I hope this wont have to be reverted.
700    TODO: remove the static constant globals somehow. (r3471)
701  * Adopted the new math functions for all subsystems (r3471)
702  * Added the ability to change screen modes on the fly. This works both in
703    OpenGL and SDL modes. (#315)
704  * Added IEngineChangeListener so the client can update the cameras viewport
705    if the screen mode has been changed. I chose to do it this way because the
706    engine has no way to know which camera it should update. It will be up to
707    the client to do it. (#315)
708  * The cursor surface is now correctly freed when exiting.  (r3483)
709  * Added DeviceCaps::getNearestScreenMode() for the client to request a
710    supported screen mode. (#315)
711
712### Build System
713  * Removed libpng from ext (#385)
714  * Debug is now automatically enabled when you build with profiling enabled
715    (r3292)
716
717### Editor
718  * Re-arranged the ObjectEdit gui to avoid misunderstandings
719  * Can now place instances (which are visible) on new maps again (r3392)
720
721### Extensions
722  * Added the SimpleXMLSerializer extension
723  * Removed the XML portion out of fife_settings in favor of SimpleXMLSerializer
724  * Made the serializer used in fife_settings "pluggable"
725  * fife_settings widgets are now updated when the settings are reset to default
726  * Can now specify the default settings filename instead of using
727    settings-dist.xml
728  * Fixed the write_instances function so it saves the stack position variable
729    of instance visual when saving maps
730  * Added getVolume() to the SoundManager
731  * Added debug flag to loaders to enable/disable annoying print spam on
732    maploading
733  * BasicApplication now initializes pychan (r3388)
734  * loaders extension can now handle multiple loaders for different filetypes.
735    A difference between map and object files is now being made! (r3469)
736  * Modified the sound manager to better take care of sound clips (r3476)
737
738### Docs
739  * Added some documentation to the filebrowser module
740
741### Pychan
742  * Timers are now handled correctly by pychan (#483)
743  * Can now modify the step length for sliders (#482)
744  * Built in pychan dialogs now work (r3384)
745
746### Demos
747  * Renamed <fife>/demos/pychan_demo/pychan_test.py to pychan_demo.py
748  * Added a new pychan demo - gui animations
749  * Added the Shooter demo
750  * Made the dynamic widget test in the pychan_demo work/look a little better
751    (r3484)
752
753### Misc
754  * Fixed some compiler warning messages
755  * Added license information for the gimp icon
756
757## [0.3.1] - 2010-03-01
758
759### Engine
760  * Updated a lot of the python source files to have the correct headers
761  * Fixed SWIG wrappers that didn't handle simple output parameters (#340)
762  * Added color key support for both OpenGL and SDL renderer (#451, #146)
763  * Changed the EventManager to use deque rather than vectors for storing
764    listeners (#454)
765  * Added the ability to prepend event listeners to the front of the listener
766    list (#454)
767  * Updated instance rotation values to be valid in all cases (#361)
768  * VFS no longer crashes when entering a restricted path (#413)
769  * Filename case is no longer transformed to be lower case (#418)
770  * OpenGL renderer now clears the backbuffer correctly (#392)
771  * Added the ability to render Vertexes (#455)
772  * Camera names no longer clash when loading multiple maps (#342)
773  * All layers are no longer activated when calling Camera::resetRenderers()
774    (#457)
775  * Word wrapping in a pychan label now works as expected (#408)
776  * SWIG wrappers now handle all simple output parameters (#340)
777  * Added ActionVisual::getActionImageAngles()
778  * Added Cursor::getX() and Cursor::getY()
779
780### Build System
781  * FIFE now builds as expected on win32 using the FIFE dev kit
782  * Win32 batch scripts no longer overwrite the users PATH variable (#429)
783  * Requied DLLs are now installed as required on win32 (#430)
784  * CXXFLAGS should now be honored
785  * Fixed a problem with the dependency checks when using pkg-config on linux
786  * Added OpenBSD support
787
788### Editor
789  * Can now re-load a map (#381)
790  * Opening more than one map and then closing them no longer causes a crash
791    (#441)
792  * Undo/Redo works properly if you select different layers (#443)
793  * Docked widgets no longer shrink when you click inside them (#444)
794  * Object editor can now skip to first and last frames of an animation (#448)
795  * Object editor sends some messages for the user to the editor status bar
796  * Cleaned up object editor by adding preMapClosed and preMapShown events
797  * Object editor now uses getActionImageAngles() to fetch animation angles
798  * Object editor animation views should now work with all clients
799  * Object offsets can now be saved to the object.xml file
800  * Object offsets can now be manipulated by using the mousewheel
801  * Added undo/redo support for the moving of instances
802
803### Extensions
804  * File Browser now refreshes correctly (#391)
805
806### Docs
807  * Fixed the Linux:Scons tutorial (#422)
808
809### Pychan
810  * Fixed a couple python import lines (#440)
811  * Added Widget.requestFocus()
812
813### Rio De Hola
814  * Fixed the path to the AUTHORS file so the credits are displayed correctly
815
816### Misc
817  * Added color tester to pychan demo
818  * Demos now look for a local copy of FIFE before importing the installed
819    version of FIFE
820
821## [0.3.0] - 2010-01-20
822
823### Engine
824  * Moved to Python 2.6 (#345)
825  * Upgraded guichan in ext to 0.8.2 (#420)
826
827  * Added UTF8 support
828  * SCons build system has been re-written (#328)
829  * Support for native mouse cursors
830  * The background of Label widgets will be painted
831  * Added adaptive pathfinding (#347)
832  * Modified CellSelectionRenderer to support multiple cell selection
833
834  * Added method Layer::getInstancesAt()
835  * Added SoundEmitter::setCallback()
836  * Added a setRolloff() function to the SoundEmitter class.
837  * Added function to fife_utils: getUserDataDirectory. Returns the proper path
838    to save setting and data files depending on OS.
839  * Removed UnitTest++ from ext (#421)
840  * Changed the way the fife python module is imported
841  * The serializers will use LogManager instead of printing directly to the
842    console
843
844  * GuiManager: Proper translation of Guichan key events to FIFE key events
845  * Proper size calculation for ToggleButton
846  * Fixed a layer visibility bug where the toggleInstancesVisible and
847    setInstanceVisible functions were not working correctly. (#335)
848  * Fixed building FIFE on OS X (#360)
849  * Fixed setActionRuntime() (#373)
850  * Fixed unreliable time handling when changing time factors.
851  * Fixed a bug in the OpenGl renderer where the last chunk of images would not
852    be displayed when image_height % chunk_size was 0.
853  * Fixed layer and instance transparency (#378)
854  * Fixed a lot of small bugs
855
856### Rio de hola
857  * Made rio_de_hola save its settings to the proper OS folder.
858  * Added a prefix to cameras in Rio de Hola to avoid name clashes
859  * Fixed second camera in rio so multiple Camera.setLocation calls are handled
860    correctly
861  * More documentation has been written
862
863### Editor
864  * Rewrote editor:
865    - Improved GUI:
866      - Resizable windows
867      - Docking
868      - Toolbars, menubar, statusbar
869      - Model/View approach to toolbar and menubar buttons
870    - New signal event system based on the one from django
871    - Support for opening multiple maps
872    - Better plugin support
873  * New plugin: LayerTool
874  * New plugin: LightEdit
875  * New plugin: CameraEdit
876  * Enhanced ObjectSelector
877  * Enhanced ObjectEdit
878  * New tool: ObjectPicker. Click on an instance on the map to set the current
879    object to the instance object
880  * Ability to select cells and perform actions on them (move, delete, fill,
881    ...)
882  * New type of scrolling: Press middle mouse button and move the mouse
883  * New icons based on Bluesphere
884  * Made the editor save its settings to the proper OS folder.
885  * Fixed editor bug where the map didn't render after saving (#333)
886  * Editor can now re-open a map (#381)
887  * Fixed a problem navigating directory structure with the filebrowser (#377)
888  * Filebrowser now refreshes when expected (#391)
889  * Fixed a lot of bugs, and made a lot of new ones ;-)
890
891### PyChan
892  * New greedy layout engine: Widgets is now able to expand in addition to
893    shrinking
894  * New events: mouseWheelMovedUp and mouseWheelMovedDown
895
896  * Added the position_technique attribute
897  * Added Widget.removeAllChildren() method
898  * Added a new method Widget.getNamedChildren
899  * New method: Widget.insertChild()
900  * New method: Widget.insertChildBefore()
901  * New property: is_focusable
902  * New properties: min_size, max_size
903  * Moved helptext property from C++ to pychan
904  * New togglebutton widget
905
906  * ScrollArea: Size is not static anymore (can shrink and expand)
907  * Allow objects with a call attribute to be used as event callbacks
908  * Removed unused TimerListener
909  * Switched to new content structure (#336)
910  * Made the distribute and mapEvents methods faster
911  * Added a small decorator for profiling rarely called functions
912  * Optimized adaptLayout()
913  * Added fast path for Widget.findChild(name=name). Roughly 10x faster
914
915  * Fixed an input problem when a dropdown box is clicked on (#337)
916  * Fixed pychan event_map to support callable objects (#374)
917  * Fixed the pychan demo (#363)
918  * Fixed a pychan problem where unknown characters were displayed when holding
919    the shift key (#383)
920  * Lots of bug fixes
921
922### Documentation
923  * Fixed some doxygen documentation problems (#343)
924  * Created python coding standards article (#372)
925  * Created "Bug Report" template (#409)
926
927### Misc
928  * New versioning scheme (x.y.z) instead of (yyyy.r)
929  * Moved extensions and fife.py to <FIFE>/engine/python/fife
930  * Moved rio_de_hola and pychan_demo to <FIFE>/demos
931  * Moved some misc scripts to <FIFE>/tools
932  * Moved the FIFE editor to <FIFE>/editor
933  * Added a Win32 installer for FIFE and the win32 SDK
934
935## [2009.0] - 2009-01-07
936
937### Engine
938  * Merged input rework branch
939  * Possibility to hide instances/instance visuals
940  * Added input and focus events
941  * Modified clicklabel to provide a mouse listener for hover events
942  * Use strings as grouping in generic renderer instead of numbers
943  * Omission of a camera viewport in xml map files now indicate that the camera
944    should use the full window
945  * Added removeActionListener to SWIG export
946  * Some improvements to Scons build scripts
947  * Prepared basicapplication to use WindowTitle and WindowIcon from clients'
948    settings.py
949  * Logger now ignores non-existing log modules (warns to prompt)
950  * Pools now have a function called purgeLoadedResources which deletes all
951    loaded resources that have a reference count of zero.
952  * Movie: Switched to using FIFE::Image instead of Overlays
953  * Reworked matrix vector multiplication
954  * OpenAL-soft patch for OSS support
955
956Optimizations:
957  * Added hasing to pool to improve techdemo loading time
958  * Lazy loading for animations
959  * Combined events to reduce lag
960  * Small optimizations for instance renderer
961
962Bugs:
963  * Initialize instance visuals properly
964  * Fixed false positives when searching for instances in a rectangle
965  * Fixed a horrendous misconception in Pool. The map was sorted by pointer
966    comparison.
967  * Fix for textwrapping
968  * Fixed bug where instances couldn't change layer
969  * Fixed a small bug when initializing OpenGL
970  * Fixed a scons issue where libraries checked for C instead of C++
971  * Fixed a shutdown order problem
972  * Fixed segfault on shutdown when profiling was activated (#334)
973  * Fixed: Editors camera doesn't show map after saving (#333)
974  * Fixed: FIFE crashes with a segmentation fault (#297)
975
976### Pychan
977  * Modified pychan to accept RGBA colors
978  * More documentation for layout system
979  * adaptLayout now acts a bit smarter
980  * Fix for scrollarea bug
981
982### Rio de hola
983  * Improved some graphics and added some new ones
984  * Profiling support
985
986### Editor
987  * Scrolling support
988  * Added an undo feature to the map-editor
989  * Object editor plugin
990  * Some bug fixes
991
992### Documentation
993  * Updated the map format article to reflect the datasets changes (#323)
994
995### Misc
996  * Removed old testmaps
997
998## [2008.1] - 2008-06-01
999
1000### Model improvements & simplifications
1001 * Elevations removed (Fallout legacy).
1002 * Support for namespaces:
1003  * New resource infrastructure migrated into whole engine. This enables:
1004   * uniform pooling for all resources that need to be pooled.
1005   * uniform loading for all resources (model stuff, images, sounds...).
1006   * uniform saving for resources which support saving (model stuff).
1007  * Datasets are now stored in a flat list in model instead of dataset
1008    hierarchy.
1009  * Changes in model are now bookkeeped. Observer interfaces provided for change
1010    listeners.
1011   * This enables e.g. reacting only to changes instead of polling on every
1012     round.
1013   * Also critical enabler for triggers.
1014  * Instances now support initial rotation value.
1015  * Objects support default actions.
1016  * Further model cleanup.
1017
1018### XML format changes
1019 * All resources are now defined with principle 1 file / 1 resource.
1020 * Importing of objects can now be done also based on directories where they are
1021   contained.
1022 * Relative paths are now used instead of absolute ones.
1023
1024### Loaders
1025 * All loading happens now from python (tinyxml dependency removed).
1026 * Improved error reporting.
1027
1028### Editor
1029 * Possibility to move instances on map.
1030 * Possibility to rotate instances on map.
1031 * Possibility to zoom the map (OpenGL mode only).
1032 * Painting with currently selected instance (e.g. large ground areas).
1033 * Importing of multiple objects based on given directory.
1034 * Initial map creation wizard (still work in progress).
1035
1036### Rio de hola
1037 * More assets:
1038  * Graphics, sounds, music...
1039  * Two new maps matching the storyline.
1040  * Rio de hola now conforms to package structure
1041  * Popup menu integration, demonstration of actions (kick, talk).
1042
1043### Pychan improvements
1044 * Hiding of scrollbars.
1045 * Text wrapping.
1046 * A lot of smaller improvements.
1047
1048### Functionality
1049 * Pixel perfect instance picking (taking transparency into account).
1050 * Ability to get list of instances from given screen rectangle.
1051 * Distance calculations made easy, exposed to scripts.
1052 * Instance outlining.
1053 * Instance coloring.
1054 * Screenshots are now saved in png format (instead of bmp).
1055 * Stereo sound support in linux (introduced with the help of openal-soft).
1056
1057### Video / view improvements
1058 * Both renderbackend and separate images can now render graphical primitives
1059   (e.g. lines, dots..).
1060 * Each camera now has separate set of renderers. Allows truly adjusting cameras
1061   independently.
1062 * Zooming capability (currently properly supported only by OpenGL backend).
1063 * Support for drag cursor definitions.
1064 * OpenGL graphics chunking size is now definable in settings. Should help e.g.
1065   with large backgrounds.
1066 * GenericRenderer adding customised rendering capabilities for scripts.
1067
1068### Misc. changes
1069 * Initial package structure defined for FIFE clients.
1070 * Updated guichan to the latest release 0.8.1.
1071 * Usage of unittest++ instead of boost unittests.
1072 * Lots of bug fixes.
1073
1074### Non-code related changes
1075 * Switch from GPL 2.0 to LGPL 2.1 (or newer).
1076
1077[Unreleased]: https://github.com/fifengine/fifengine/compare/0.4.1...HEAD
1078[0.4.1]: https://github.com/fifengine/fifengine/compare/0.4.0...0.4.1
1079[0.4.0]: https://github.com/fifengine/fifengine/compare/0.3.5...0.4.0
1080[0.3.5]: https://github.com/fifengine/fifengine/compare/0.3.4...0.3.5
1081[0.3.4]: https://github.com/fifengine/fifengine/compare/0.3.3r3...0.3.4
1082[0.3.3r3]: https://github.com/fifengine/fifengine/compare/0.3.3r2...0.3.3r3
1083[0.3.3r2]: https://github.com/fifengine/fifengine/compare/0.3.3...0.3.3r2
1084[0.3.3]: https://github.com/fifengine/fifengine/compare/0.3.2...0.3.3
1085[0.3.2]: https://github.com/fifengine/fifengine/compare/0.3.1...0.3.2
1086[0.3.1]: https://github.com/fifengine/fifengine/compare/0.3.0...0.3.1
1087[0.3.0]:  https://github.com/fifengine/fifengine/compare/2009.0...0.3.0
1088[2009.0]: https://github.com/fifengine/fifengine/compare/2008.1...2009.0
1089[2008.1]: https://github.com/fifengine/fifengine/compare/2008.1
1090