view CHANGES @ 666:3944096d12ce

* More updates to CHANGES * Updated the shooter demo settings-dist.xml to disable lights * Removed FIFE::CamreaZoneRenderer as it is not used
author prock@33b003aa-7bff-0310-803a-e67f0ece8222
date Mon, 08 Nov 2010 18:06:05 +0000
parents adb4b0e7c08c
children 0ac1056c8253
line wrap: on
line source


__/\\\\\\\\\\\\\\\___/\\\\\\\\\\\___/\\\\\\\\\\\\\\\___/\\\\\\\\\\\\\\\_        
 _\/\\\///////////___\/////\\\///___\/\\\///////////___\/\\\///////////__       
  _\/\\\__________________\/\\\______\/\\\______________\/\\\_____________      
   _\/\\\\\\\\\\\__________\/\\\______\/\\\\\\\\\\\______\/\\\\\\\\\\\_____     
    _\/\\\///////___________\/\\\______\/\\\///////_______\/\\\///////______    
     _\/\\\__________________\/\\\______\/\\\______________\/\\\_____________   
      _\/\\\__________________\/\\\______\/\\\______________\/\\\_____________  
       _\/\\\_______________/\\\\\\\\\\\__\/\\\______________\/\\\\\\\\\\\\\\\_ 
        _\///_______________\///////////___\///_______________\///////////////__

================================================================================
== 0.3.2 (November 19th, 2010)                                                ==
================================================================================

=== Engine ===
  * Removed the Camreazone renderer
  * Added light support (OpenGL only) by merging the light branch.  Speacial
    thanks to Helios for all his hard work in this area (#364)
  * Added a percentage bar widget (#411)
  * Modified some size_t definitions to more appropriate ones (#152)
  * Instance rotation changes are reported to the instance change listeners 
    (#475)
  * Fixed the GenericRenderingNode to no longer cause a segfault (#446)
  * Fixed an API inconsistency in SoundEmitter (#461)
  * There is no longer a memory leak when adding coloring overlays to instance 
    (#472)
  * instance.get2dGfxVisual().setVisible(False) now works as expected (#471)
  * Removed the last 0(n) loop through instances when rendering (#419)
  * Generic renderer now only renders objects on the specified layer (#458)
  * Fixed a memory leak when deleting maps.  The camera was not being
    deleted
  * Removed the NotFound exceptions in layer.getInstance() and model.getObjects()
    to be more consistent with the rest of the API
  * Fixed a bug in RenderBackendSDL, the clip area was not properly set
  * Renamed the backquad and border commands of the FloatingTextRenderer
  * Added the TransparentArea commands to the InstanceRenderer
  * Improved InstanceRenderer::addTransparentArea.  You can now pass a list
    of namespaces to be marked as transparent
  * Updated Instance to no longer derive from ResourceClass. It now derives from 
    FifeClass directly
  * Improved the floatingtextrenderer. Now you can set an alpha value for font, 
    background quad and border. Split quad and border into own commands
  * Added a triangle function to backend and genericrenderer, also added the 
    functions to set an alpha value for geometric figures
  * floatingtextrenderer now can change colors of the font via 
    setColor(uint r, uint b, uint g)
  * Added the colorbuffer patch with a small change due to SDL. Performance 
    boost between under OpenGL
  * Improved the most renderers with setColor() function to allow the user to
    modify the color used to render the primitives
  * Fixed the genericrenderer.  It is now tested whether the images are in the 
    viewport
  * Fixed the gridrenderer to only render the grin within the viewport
  * Changed the vertex functions in opengl/renderbackendopengl.cpp from vertex3f() 
    to vertex2f()
  * Moved the layer visibility and transparency, from instancerenderer.cpp to 
    layercache.cpp and improved it (r3395) 
  * Corrected the h,w calculation for zooming in layercache.cpp (r3369)
  * Fixed the bug, that x,y camera position result in an screen offset. (r3369)
  * GLImage now only creates one "texture chunk" (r3445, r3452)
  * Added nextPow2() math function (r3445)
  * Fixed color mask definitions and use them throughout the engine (r3445)
  * Moved the GLEnable and GLDisable structures to be globally accessible (r3445)
  * Templatized Rect to extend it's functionality beyond integers (r3447)
  * Added some typedefs: Rect, FloatRect, DoubleRect (r3447)
  * Removed the unused "trigger" system as it was unused (r3449)
  * Applied GreyGhosts patch to fife_settings. Allows the user to load the gui 
    XML whenever they want. Also returns a reference to the dialog so it can be 
    worked with outside of fife_settings. (r3451)
  * Removed unused files containing the unused GUIEventListener class (r3453)
  * Removed old and unused functions: set/getSourceWidget() (r3455)
  * Added drawRectangle() and fillRectangle() functions to the renderers (r3456)
  * Modified FIFE::FloatingTextRenderer? to use the new functions (r3456)
  * Updated some data types in FIFE::FloatingTextRenderer to use integer types 
    defined in fife_stdint.h (r3456)
  * Added FIFE::DeviceCaps and FIFE::ScreenMode to detect valid screen modes
  * Added the clearBackBuffer() function to the renderbackends (r3459)
  * Added the ability to query the current running screen mode (r3467)
  * Added a method to detect the closest supported screen mode (not 
    complete yet). If no matching screen modes are detected an exception is 
    thrown. (r3467)
  * Small change to the way the screen is initialized. The screen mode now 
    MUST be in the supported screen mode list before the screen will 
    initialize. (r3467)
  * Added clearResourceLoaders() to the Pool class. This can be used if different 
    resourceloaders have to be added at a later point in time (running editor for 
    example, a plugin might want to have it's own loader added) (r3469)
  * Added the ability to normalize a 2D and 3D point (r3470)
  * You can now rotate a 2D point around the origin or a specific point (r3470)
  * Major improvements to fife_math.h and added corresponding Python bindings. 
    Users now have access to FIFE's internal math functions. These functions 
    are recommended to be used by all clients if required. Note: this may cause 
    some problems with certain compilers. I hope this wont have to be reverted. 
    TODO: remove the static constant globals somehow. (r3471)
  * Adopted the new math functions for all subsystems (r3471)
  * Added the ability to change screen modes on the fly. This works both in 
    OpenGL and SDL modes. (#315)
  * Added IEngineChangeListener so the client can update the cameras viewport 
    if the screen mode has been changed. I chose to do it this way because the 
    engine has no way to know which camera it should update. It will be up to 
    the client to do it. (#315)
  * The cursor surface is now correctly freed when exiting.  (r3483)
  * Added DeviceCaps::getNearestScreenMode() for the client to request a 
    supported screen mode. (#315)

=== Build System ===
  * Removed libpng from ext (#385)
  * Debug is now automatically enabled when you build with profiling enabled
    (r3292)

=== Editor ===
  * Re-arranged the ObjectEdit gui to avoid misunderstandings
  * Can now place instances (which are visible) on new maps again (r3392)  
  
=== Extensions ===
  * Added the SimpleXMLSerializer extension
  * Removed the XML portion out of fife_settings in favor of SimpleXMLSerializer
  * Made the serializer used in fife_settings "pluggable"
  * fife_settings widgets are now updated when the settings are reset to default
  * Can now specify the default settings filename instead of using 
    settings-dist.xml
  * Fixed the write_instances function so it saves the stack position variable
    of instance visual when saving maps
  * Added getVolume() to the SoundManager
  * Added debug flag to loaders to enable/disable annoying print spam on maploading
  * BasicApplication now initializes pychan (r3388)
  * loaders extension can now handle multiple loaders for different filetypes. A 
    difference between map and object files is now being made! (r3469)
  * Modified the sound manager to better take care of sound clips (r3476)
  
=== Docs ===
  * Added some documentation to the filebrowser module
  
=== Pychan ===
  * Timers are now handled correctly by pychan (#483)
  * Can now modify the step length for sliders (#482)
  * Built in pychan dialogs now work (r3384)
  
=== Demos ===
  * Renamed <fife>/demos/pychan_demo/pychan_test.py to pychan_demo.py
  * Added a new pychan demo - gui animations
  * Added the Shooter demo
  * Made the dynamic widget test in the pychan_demo work/look a little better (r3484)
  
=== Misc ===
  * Fixed some compiler warning messages
  * Added license information for the gimp icon
  

================================================================================
== 0.3.1 (March, 2010)                                                        ==
================================================================================

=== Engine ===
  * Updated a lot of the python source files to have the correct headers
  * Fixed SWIG wrappers that didn't handle simple output parameters (#340)
  * Added color key support for both OpenGL and SDL renderer (#451, #146)
  * Changed the EventManager to use deque rather than vectors for storing 
    listeners (#454)
  * Added the ability to prepend event listeners to the front of the listener 
    list (#454)
  * Updated instance rotation values to be valid in all cases (#361)
  * VFS no longer crashes when entering a restricted path (#413)
  * Filename case is no longer transformed to be lower case (#418)
  * OpenGL renderer now clears the backbuffer correctly (#392)
  * Added the ability to render Vertexes (#455)
  * Camera names no longer clash when loading multiple maps (#342)
  * All layers are no longer activated when calling Camera::resetRenderers() 
    (#457)
  * Word wrapping in a pychan label now works as expected (#408)
  * SWIG wrappers now handle all simple output parameters (#340)
  * Added ActionVisual::getActionImageAngles()
  * Added Cursor::getX() and Cursor::getY()

=== Build System ===
  * FIFE now builds as expected on win32 using the FIFE dev kit
  * Win32 batch scripts no longer overwrite the users PATH variable (#429)
  * Requied DLLs are now installed as required on win32 (#430)
  * CXXFLAGS should now be honored
  * Fixed a problem with the dependency checks when using pkg-config on linux
  * Added OpenBSD support

=== Editor ===
  * Can now re-load a map (#381)
  * Opening more than one map and then closing them no longer causes a crash 
    (#441)
  * Undo/Redo works properly if you select different layers (#443)
  * Docked widgets no longer shrink when you click inside them (#444)
  * Object editor can now skip to first and last frames of an animation (#448)
  * Object editor sends some messages for the user to the editor status bar
  * Cleaned up object editor by adding preMapClosed and preMapShown events
  * Object editor now uses getActionImageAngles() to fetch animation angles
  * Object editor animation views should now work with all clients
  * Object offsets can now be saved to the object.xml file
  * Object offsets can now be manipulated by using the mousewheel
  * Added undo/redo support for the moving of instances
  
=== Extensions ===
  * File Browser now refreshes correctly (#391)
  
=== Docs ===
  * Fixed the Linux:Scons tutorial (#422)

=== Pychan ===
  * Fixed a couple python import lines (#440)
  * Added Widget.requestFocus()
 
=== Rio De Hola ===
  * Fixed the path to the AUTHORS file so the credits are displayed correctly
  
=== Misc ===
  * Added color tester to pychan demo
  * Demos now look for a local copy of FIFE before importing the installed version of FIFE
  



================================================================================
== 0.3.0 (January 20th, 2010)                                                 ==
================================================================================

=== Engine ===
  * Moved to Python 2.6 (#345)
  * Upgraded guichan in ext to 0.8.2 (#420)

  * Added UTF8 support
  * SCons build system has been re-written (#328)
  * Support for native mouse cursors
  * The background of Label widgets will be painted
  * Added adaptive pathfinding (#347)
  * Modified CellSelectionRenderer to support multiple cell selection

  * Added method Layer::getInstancesAt()
  * Added SoundEmitter::setCallback()
  * Added a setRolloff() function to the SoundEmitter class.
  * Added function to fife_utils: getUserDataDirectory. Returns the proper path 
    to save setting and data files depending on OS. 
  * Removed UnitTest++ from ext (#421)
  * Changed the way the fife python module is imported ( see 
    http://wiki.fifengine.de/Importing_Python_Module )
  * The serializers will use LogManager instead of printing directly to the 
    console

  * GuiManager: Proper translation of Guichan key events to FIFE key events
  * Proper size calculation for ToggleButton
  * Fixed a layer visibility bug where the toggleInstancesVisible and 
    setInstanceVisible functions were not working correctly. (#335)
  * Fixed building FIFE on OS X (#360)
  * Fixed setActionRuntime() (#373)
  * Fixed unreliable time handling when changing time factors.
  * Fixed a bug in the OpenGl renderer where the last chunk of images would not 
    be displayed when image_height % chunk_size was 0.
  * Fixed layer and instance transparency (#378)
  * Fixed a lot of small bugs

=== Rio de hola ===
  * Made rio_de_hola save its settings to the proper OS folder.
  * Added a prefix to cameras in Rio de Hola to avoid name clashes
  * Fixed second camera in rio so multiple Camera.setLocation calls are handled 
    correctly
  * More documentation has been written
  
=== Editor ===
  * Rewrote editor:
    - Improved GUI:
      - Resizable windows
      - Docking
      - Toolbars, menubar, statusbar
      - Model/View approach to toolbar and menubar buttons
    - New signal event system based on the one from django
    - Support for opening multiple maps
    - Better plugin support
  * New plugin: LayerTool
  * New plugin: LightEdit
  * New plugin: CameraEdit
  * Enhanced ObjectSelector
  * Enhanced ObjectEdit
  * New tool: ObjectPicker. Click on an instance on the map to set the current 
    object to the instance object
  * Ability to select cells and perform actions on them (move, delete, fill, 
    ...)
  * New type of scrolling: Press middle mouse button and move the mouse
  * New icons based on Bluesphere
  * Made the editor save its settings to the proper OS folder.
  * Fixed editor bug where the map didn't render after saving (#333)
  * Editor can now re-open a map (#381)
  * Fixed a problem navigating directory structure with the filebrowser (#377)
  * Filebrowser now refreshes when expected (#391)
  * Fixed a lot of bugs, and made a lot of new ones ;-)
  
=== PyChan ===
  * New greedy layout engine: Widgets is now able to expand in addition to 
    shrinking
  * New events: mouseWheelMovedUp and mouseWheelMovedDown

  * Added the position_technique attribute
  * Added Widget.removeAllChildren() method
  * Added a new method Widget.getNamedChildren
  * New method: Widget.insertChild()
  * New method: Widget.insertChildBefore()
  * New property: is_focusable
  * New properties: min_size, max_size
  * Moved helptext property from C++ to pychan
  * New togglebutton widget

  * ScrollArea: Size is not static anymore (can shrink and expand)
  * Allow objects with a call attribute to be used as event callbacks
  * Removed unused TimerListener
  * Switched to new content structure (#336)
  * Made the distribute and mapEvents methods faster
  * Added a small decorator for profiling rarely called functions
  * Optimized adaptLayout()
  * Added fast path for Widget.findChild(name=name). Roughly 10x faster

  * Fixed an input problem when a dropdown box is clicked on (#337)
  * Fixed pychan event_map to support callable objects (#374)
  * Fixed the pychan demo (#363)
  * Fixed a pychan problem where unkown characters were displayed when holding 
    the shift key (#383)
  * Lots of bug fixes
  
=== Documentation ===
  * Fixed some doxygen documentation problems (#343)
  * Created python coding standards article (#372)
  * Created "Bug Report" template (#409)
  
=== Misc ===
  * New versioning scheme (x.y.z) instead of (yyyy.r)
  * Moved extensions and fife.py to <FIFE>/engine/python/fife
  * Moved rio_de_hola and pychan_demo to <FIFE>/demos
  * Moved some misc scripts to <FIFE>/tools
  * Moved the FIFE editor to <FIFE>/editor
  * Added a Win32 installer for FIFE and the win32 SDK



================================================================================
== 2009.0 (January 7th, 2009)                                                 ==
================================================================================

=== Engine ===
  * Merged input rework branch
  * Possibility to hide instances/instance visuals
  * Added input and focus events
  * Modified clicklabel to provide a mouse listener for hover events
  * Use strings as grouping in generic renderer instead of numbers
  * Omission of a camera viewport in xml map files now indicate that the camera 
    should use the full window
  * Added removeActionListener to SWIG export
  * Some improvements to Scons build scripts
  * Prepared basicapplication to use WindowTitle and WindowIcon from clients' 
    settings.py
  * Logger now ignores non-existing log modules (warns to prompt)
  * Pools now have a function called purgeLoadedResources which deletes all 
    loaded resources that have a reference count of zero.
  * Movie: Switched to using FIFE::Image instead of Overlays
  * Reworked matrix vector multiplication
  * OpenAL-soft patch for OSS support

Optimizations:
  * Added hasing to pool to improve techdemo loading time
  * Lazy loading for animations
  * Combined events to reduce lag
  * Small optimizations for instance renderer

Bugs:
  * Initialize instance visuals properly
  * Fixed false positives when searching for instances in a rectangle
  * Fixed a horrendous misconception in Pool. The map was sorted by pointer 
    comparison.
  * Fix for textwrapping
  * Fixed bug where instances couldn't change layer
  * Fixed a small bug when initializing OpenGL
  * Fixed a scons issue where libraries checked for C instead of C++
  * Fixed a shutdown order problem
  * Fixed segfault on shutdown when profiling was activated (#334)
  * Fixed: Editors camera doesn't show map after saving (#333)
  * Fixed: FIFE crashes with a segmentation fault (#297)

=== Pychan ===
  * Modified pychan to accept RGBA colors
  * More documentation for layout system
  * adaptLayout now acts a bit smarter
  * Fix for scrollarea bug

=== Rio de hola === 
  * Improved some graphics and added some new ones
  * Profiling support

=== Editor ===
  * Scrolling support
  * Added an undo feature to the map-editor
  * Object editor plugin
  * Some bug fixes

=== Documentation ===
  * Updated the map format article to reflect the datasets changes (#323)

=== Misc ===
  * Removed old testmaps



================================================================================
== 2008.1 (July, 2008)                                                        ==
================================================================================

=== Model improvements & simplifications ===
 * Elevations removed (Fallout legacy).
 * Support for namespaces:
  * New resource infrastructure migrated into whole engine. This enables:
   * uniform pooling for all resources that need to be pooled.
   * uniform loading for all resources (model stuff, images, sounds...).
   * uniform saving for resources which support saving (model stuff).
  * Datasets are now stored in a flat list in model instead of dataset 
    hierarchy.
  * Changes in model are now bookkeeped. Observer interfaces provided for change 
    listeners.
   * This enables e.g. reacting only to changes instead of polling on every 
     round.
   * Also critical enabler for triggers.
  * Instances now support initial rotation value.
  * Objects support default actions.
  * Further model cleanup.

=== XML format changes ===
 * All resources are now defined with principle 1 file / 1 resource.
 * Importing of objects can now be done also based on directories where they are 
   contained.
 * Relative paths are now used instead of absolute ones.

=== Loaders ===
 * All loading happens now from python (tinyxml dependency removed).
 * Improved error reporting.

=== Editor ===
 * Possibility to move instances on map.
 * Possibility to rotate instances on map.
 * Possibility to zoom the map (OpenGL mode only).
 * Painting with currently selected instance (e.g. large ground areas).
 * Importing of multiple objects based on given directory.
 * Initial map creation wizard (still work in progress).

=== Rio de hola ===
 * More assets:
  * Graphics, sounds, music...
  * Two new maps matching the storyline.
  * Rio de hola now conforms to package structure: 
    http://wiki.fifengine.de/Fife_Package_Specification
  * Popup menu integration, demonstration of actions (kick, talk).

=== Pychan improvements ===
 * Hiding of scrollbars.
 * Text wrapping.
 * A lot of smaller improvements. 

=== Functionality ===
 * Pixel perfect instance picking (taking transparency into account).
 * Ability to get list of instances from given screen rectangle.
 * Distance calculations made easy, exposed to scripts.
 * Instance outlining.
 * Instance coloring.
 * Screenshots are now saved in png format (instead of bmp).
 * Stereo sound support in linux (introduced with the help of openal-soft).

=== Video / view improvements ===
 * Both renderbackend and separate images can now render graphical primitives 
   (e.g. lines, dots..).
 * Each camera now has separate set of renderers. Allows truly adjusting cameras 
   independently.
 * Zooming capability (currently properly supported only by OpenGL backend).
 * Support for drag cursor definitions.
 * OpenGL graphics chunking size is now definable in settings. Should help e.g. 
   with large backgrounds.
 * GenericRenderer adding customised rendering capabilities for scripts.

=== Misc. changes ===
 * Initial package structure defined for FIFE clients.
 * Updated guichan to the latest release 0.8.1.
 * Usage of unittest++ instead of boost unittests.
 * Lots of bug fixes.

=== Non-code related changes ===
 * Switch from GPL 2.0 to LGPL 2.1 (or newer).