6-17-2008: - Removed camera rotation dependence on FrameTime, improving camera smoothness between configurations. [0.10.4] - ** Released v 0.10.4 ** 6-16-2008: - Moved ship halting code inside ship class. ShipBase now has a stop() method. - Removed global variable from various handleMessage() methods, replaced with CEGUI window accessor. - Changed Navigation messagebox to display most recent item on top, with timestamp, is now wordwrapped, and has a maximum length to off-set the framerate deterioration associated with a large string. - Added a component health bar to the status display GUI. Currently ships start with randomly damaged components, for testing purposes. - Changed components to indicated whether they are working (> 40% health), reduced functionality ( 15% < health < 40%), unworking ( health < 15% ), or destroyed (health < 2 %, cannot be repaired) [0.09.1] - Added text description of component status to Status UI. [0.09.1] - Performed some STL iterator optimization [0.09.3] - ** Released v 0.09.3 ** - Fixed camera handling issues by altering SceneNode hierarchy and removing lookAt() instruction. [0.09.4] - Added a preliminary implementation of engine trails via a particle system. [0.10.1] - Removed a variety of testing and debugging mechanisms and changed default state of debug display to off. [0.10.2] - Added a macro to CameraHelper to change the camera rotation multiplier depending on whether we have a debug or release build. Rotation rate depends on frame rate, and frame rates are much higher in release builds, necessitating this change [0.10.3] - ** Released v 0.10.3 ** 6-07-2008: - Altered camera control to properly incorporate frame timing. 6-04-2008: - Included dxwebsetup.exe in distribution package to facilitate upgrading users' DirectX if necessary. - Changed default ship model to a much nicer one I found on the Web. - Changed default ship stats to match the more stately appearance of the new boat. - ** Released v 0.08.8 ** 6-03-2008: - Updated consistency of the use of "Starships" over "Winships". - Began integration of TinyXML to replace the hacky ship-importer I've been using. - Cleaned up the application destructor, solving a long-standing memory leak. - Altered versioning system. The terminal version number now increases with every successful build. However, not every successful build will be publically released. 6-02-2008: - Updated to March 2008 DirectX SDK. - ** Released v 0.08.3 ** 5-29-2008: - Removed necessity to pass an Ogre::FrameEvent structure through to the ship movement function by getting the frametime from Ogre::ControllerManager. - Mostly fixed the problem with ctrl+RMB destination selecting. Still fails sometimes, but is mostly reliable. Did this by chaning the mechanism for locating the mouseRay intersection. Now I create a plane whose normal is the direction the camera is facing, located at the position of the ship. Then check where the mouseRay intersects this plane. - Cascaded message handling and the update() functions - ** Released v 0.08.2 ** 5-26-2008: - Added a pointer and accessors in ShipManager to get and return the currently focussed GameObject (the object over which the player has direct control, usually a Ship). - Merged KeyListener and MouseListener to facilitate upcoming control enhancements. - Generalized ship control (removed reliance on choosing the selected ship based on a #define throughout, instead accessing the currently focussed ship through the ShipManager). - Added functions to ease looking up scene nodes connected to GameObjects. - Altered the scene graph hierarchy for Ships. Each ship graph now consists of four nodes. The root node is the node that is translated around with respect to the global root node. Below this are two siblings. One is the orient scene node which allows to control the orientation of the ship model. The Ogre::Entity representing the ship model is attached to this orient scene node. Sibling to the orient node is the camera orientation node, to which the camera position node is attached. When a ship is selected, the camera is attached to the camera position node. This system allows the camera to follow a ship around as it moves without being affected by the rotation of the ship model. This system will also be used for viewing other GameObject-derived items. The user-noticeable feature of this is that the camera now follows the ship as it moves. - Added CameraHelper class to assist with camera activities related to having a ship selected - Added the ability for the mouse to be used to rotate and zoom the camera. - ** Released v 0.08.1 ** 5-20-2008: - Added new subsystem name strings - Expanded default studebaker.xml test ship layout. - Changed ComponentBase default constructor to initialize components with 100% health. - Added first pass of Subsystem Status page, which enumerates subsystems and their components - Overhauled UI system. Now features a main UI with sub-UIs accessible from a menu. - ** Released v 0.07.1 ** 5-19-2008: - Created ShipManager singleton class to keep track of and update ships more globally. - Created the ShipManager::update() method, which, as it acts once per frame, takes an Ogre::FrameEvent struct as a parameter, and then proceeds to call the update() method for each ship object in its list. - Moved ship movement code into ShipBase class, function move(), which is called when the ship's update() function is called. - Moved two ship location functions from utility header into ShipManager - Added a method to ShipManager allowing to return a pointer to a ShipBase object by passing a GameObject pointer. Could be useful for certain messaging or targeting aplications. - Removed all ship listing members from WinShipsApplication and all FrameListeners. - With multiple files now including utilities.h, it was necessary to put the utility functions into a class and split the definitions into a .cpp file. - Adjusted format and location of the test .xml shipconfig file. It now includes information on owning subsystems, and resides in $(WorkDir)/shipconfig - Added a pointer to an Ogre::Entity to ShipBase class, so that ships can internally access their visual and spatial representation, and to avoid having to use a std::map between ShipBase and Ogre::Entity to keep the ties. - Added the mOrigFaceOrientation member to ShipBase, an Ogre::Vector3 which stores the direction the mesh originally "faces", to simplify moving "forward". - Started keeping better development notes! - ** Released v 0.06.1 **