Orbiter Release 050116 Change Log
=================================

Change log 041114 -> 050116
---------------------------
* Added Tony's Tour of Jupiter scenario.
* Particle streams: particles now respond to gravitational forces -> Better
  dynamics for particles created outside atmospheres.
* Particle streams: "atmospheric deceleration" now scaled with atmospheric
  pressure. No slowdown outside the atmosphere independent of 
  PARTICLESTREAMSPEC::atmslowdown setting.
* Upgraded to emdot's surface markers.
* DG: Added Roger's 11-16-04 external and VC mesh and textures. Adjusted group
  indices for animation in the code. Added ladder animation to top hatch
  sequence.
* DG: condensation cloud when opening hatch in space.
* DG: Added "no-scram" external mesh. Disabled scram-specific groups in the
  VC mesh of the non-scram version. Activated indicator block on the dashboard.
* DG: Activated hover balance control in panel mode.
* DG: Individual fuselage markings
* Map MFD: zoom, track and scroll functions implemented.
* API: new functions
	oapiCreateTextureSurface
	VESSEL::AddParticleStream
	VESSEL2::clbkConsumeDirectKey
	VESSEL2::clbkConsumeBufferedKey
	VESSEL2::clbkAnimate
	VESSEL2::clbkDockEvent
	VESSEL2::clbkSetStateEx
  All ovcXXX callback functions (except ovcInit) have now been superseded.
* VC: Generic engine status indicators in top left screen corner no longer
  displayed in virtual cockpit mode.
* Modified algorithm for cloud microstructures: transition is now gradual.
* Microtexture altitude range can now be controlled with planet config option
  "CloudMicrotextureAlt". Default is no microtexturing.
* Bug fix: orbit stability problem fixed
* Bug fix: fixed a bug which may have been responsible for problems with
  starting scenarios in "target from" and "target to" camera modes.
* Bug fix: reentry stream causing CTD.
* Bug fix: instability when switching to ground observer camera mode in
  Saturn scenario.
* Bug fix: CTD on exit for certain docking configurations.

Change log 041010 -> 041114
---------------------------
* Constellation labels: modified text colour
* Custom surface labels:
  - modified format for custom label reference in config files: multiple lists
    are now supported
  - label lists are now located under Config\<planet name>\Labels
  - individual lists can be turned on/off from the planetarium dialog
  - initial on/off state is set in the config file.
* Added emdot's labels for Earth and Moon
* HST: Recompiled HST.dll
* DG: Adjusted hover exhaust position
* Constellation labels: added missing Constell2.bin to zip.
* Custom labels:
  - no longer referenced in planet config file (other than to define a
    nonstandard location). Instead, orbiter scans the appropriate
    subdirectory directly. Makes it easier to add new lists via addons.
  - Label lists can now contain headers to set colour, size, shape, cutoff
    distance and initial visibility
* Implemented celestial markers. Added AGC navigation stars.
* Bug fix: Undocking is now possible again.
* New interface for planetary modules. Introduced class CELBODY to act as
  interface class for callbacks. Needs some more work and documentation.
* Sun is no longer fixed at coordinate origin. Its position is now generated
  from VSOP87 E series. This could have significant long-term effects on
  trajectory calculations - NEEDS TESTING! Preliminary tests indicate that the
  differences between VSOP and dynamic data are now at least an order of
  magnitude smaller than before! (Unfortunately the effect on Jovian moons
  is not significant)
* Re-implemented VSOP module. Now every planet has its own DLL (deriving from
  CELBODY). All VSOP-controlled planets call a common driver DLL
  (VsopDriver.dll in the orbiter main directory). Perturbation series are no
  longer hard-coded in the DLL, but read from data files
  (Config\<planet>\Data\Vsop87<x>.dll) Only Sun, Mercury, Jupiter make so far
  use of the new interface.
* Galilean satellites (Io, Europa, Ganymede, Callisto) are now updated with
  analytic perturbation code (GALSAT).
* Jupiter's barycentric offset is now calculated by GALSAT code. Jupiter now
  uses the VSOP87 A series (rectangular) to allow direct addition of the
  offset.
* Adjusted siderial day length of Galilean satellites.
* New planet config option: AtmHazeShift, to shift the horizon base line of the
  haze layer (in units of planet radius).
* Bug fix: calculation of true anomaly from mean anomaly for ecc>1 (voyager
  scenario failure)
* Bug fix: vertex buffer for constellation labels is now held in system memory
  (should fix Alt-Tab CTD)
* All celestial body modules are now converted to new interface. The old
  VSOP87.dll has been decomissioned. The new VSOP87 and GALSAT driver routines
  have been moved to the Modules directory.
* Updated planet module sections in API Guide and API Reference.
* Updated moon ephemeris files for moons to Tony's 2005 Horizons data (except
  for Galilean moons which are now analytically updated)
* Modified CELBODY ephemeris interface so that both true and barycentric data
  can be returned by the module.
* API Reference: Added CELBODY documentation
* New vessel destruction sequence. Calling oapiDeleteVessel should now be more
  stable. Vessel destruction is deferred until the end of the frame update, so
  that suicide (self-destruct) calls are now permitted. Focus vessel can now
  also be destroyed. If the last focus-enabled vessel is destroyed, Orbiter
  returns to the launchpad.
* API: new functions
	VESSEL::CreateAirfoil2
	VESSEL::DelAirfoil
	VESSEL::ClearAirfoilDefinitions
	VESSEL::DelDock
	VESSEL::ClearDockDefinitions
* Bug fix: VESSEL::clbkPreStep and VESSEL::clbkPostStep are no longer called
  when simulation is paused.
* DG: Scenario entry 'PSNGR [1 2 3 4]' to enable individual passengers
  (default none)

Change log 041007 -> 041010
---------------------------
* Bug fix: rearranged VESSEL data members which may have been responsible for
  reported CTD of old vessel modules.
* API: opcTimestep reverts to previous behaviour (called before state update)
  new functions:
	opcPreStep (identical behaviour to opcTimeStep)
	opcPostStep (called after state update)
	VESSEL2::clbkNavMode
	VESSEL2::clbkPreStep
	VESSEL2::clbkPostStep
  deleted function:
	VESSEL2::clbkTimestep (replaced by clbkPostStep)
* API: Orbitersdk.h split into OrbiterAPI.h and VesselAPI.h
* Surface MFD: vertical acceleration display is now more stable.
* Support for old-style orbital stations has been removed.

Change log 040728 -> 041007
---------------------------
* Bug fix: Dialog context pointer passed in LPARAM to dialog message handler with
  WM_INITDIALOG message was invalid in last beta.
* Map MFD: Intersections with planet surface are now indicated.
* Bug fix: check for orbit stabilisation would occasionally fail incorrectly at
  large time steps.
* Orbit stabilisation is now enabled by default.
* Reworked killrot code: this version should reduce residual rotation for
  docked stacks, and be more stable at high time accelerations.
* Bug fix: Mapping of global coordinates to HUD screen coordinates (caused
  artefacts in docking approach markers)
* Added Roger's new DG exterior and VC meshes. Modified DG animations to work
  with the new meshes. Added DG control dialog (Ctrl-Space).
* DG: added instrumentation for VC.
* DG: Moved meshes and textures into 'DG' subdirectories.
* DG-S html help: updated 2-D panel documentation.
* Configured most VC displays and controls
* Orbital elements: Modified iterative calculation of eccentric anomaly E from
  mean anomaly M: initial guess for E no longer initialised to M, but to previous
  value of E. This improves the stability of the iteration at eccentricities
  close to 1. Threshold for residual r_k = M_k - E_k set to 1e-14. Iteration limit
  set to k_max = 10. Usually no more than 2-3 iterations are now required.
  This may fix the reported "straight-up" bug.
* Keymapper: added key definitions for 'leaning' mode in VC
  Defaults: lean forward: Alt+Ctrl+Up, lean left: Alt+Ctrl+Left,
  lean right: Alt+Ctrl+Right, return: Alt+Ctrl+Down
* 'Leaning' mode implemented for DG VC.
* Documentation: API Guide: updated and extended section 1.11 (designing panels)
  and added section 1.12 (designing virtual cockpits). If you are in the business
  of implementing vessel panels, please check if this is intelligible/
  complete/useful.
* Camera rotation implemented with mouse right-click and drag.
* API: Introduced VESSEL2 interface derived from VESSEL, and moved all
  virtual 'clbkXXX' functions there. This was necessary because it appears that
  virtual classes can't be expanded without losing backward compatibility, so
  in the future all vessel addons would stop working if new callback functions
  are added to the interface. With the new setup, addons remain compatible when
  they refer to an older VESSEL interface. Propagation to a new interface is
  simply done by deriving from a newer interface class.
* API: new functions
	VESSEL2::clbkADCtrlMode
	VESSEL2::clbkRCSMode
	VESSEL2::clbkPostCreation (to replace ovcPostCreation)
	VESSEL2::clbkFocusChanged (to replace ovcFocusChanged)
	VESSEL::GetMesh
	VESSEL::SetCameraShiftRange
	oapiMeshGroupCount
* API:
  VESSEL2::clbkVCMouseEvent has new interface (now returns mouse information)
  new function oapiVCSetAreaClickmode_Quadrilateral allows definition of
  quadrilateral mouse regions in VC
* Changed behaviour of opcTimestep: it is now called _after_ simulation state
  has been updated to current time step, rather than before. Attention addon
  developers: make sure to take this into account when implementing time-
  critical applications.

Change log 040531 -> 040728
---------------------------
* FlightData module: Data can now be logged in FlightData.log.
* FlightData module bug fix: worked around a compiler bug which could freeze orbiter
  when displaying data graphs in some circumstances.
* Planetarium: constellation labels are now rendered as GDI text instead of blitting from
  a bitmap, in the hope that this solves some CTD problems. Constellation labels can now
  be switched independent of lines, and can be displayed in full or abbreviated. The labels
  are now encoded in Constell2.bin. Constlabel.bmp is no longer necessary.
* Planetarium mode: custom surface labels now implemented. To use them, add UserLabelFile
  entry to planet cfg file, and add a file containing the labels. Format for each line
  of the label file:
 	<lng> <lat> : <label>
* Experimental: Micro-textures for cloud layers.
* Some more functions included in key mapper.
* Increased size of launchpad dialog.
* Orbiter online help: switched to html-based help browser. Now can also be called during the
  simulation (Alt-F1). Includes: scenario help (see scenario Checklists|Mission 1 for an example)
  and vessel help (see any scenario with DG for an example).
  Known problems: 
  a) the HTML client sometimes opens message boxes (for example, when using search).
  This upsets orbiter in fullscreen mode, since it needs to track all windows. Haven't found a
  fix for this yet.
  b) the HTML client doesn't provide access to its message queue, which means that the "focus
  follows mouse" behaviour can't be properly implemented.
  c) only "compiled" help files (chm) are supported, not plain html files. This requires the
  MS Html Help Workshop (which can be downloaded from MS). Somewhat annoying...
  d) Limited modularity. I haven't yet found a way for example to merge a separate help file for
  an addon MFD into the main help system. May require some JavaScript applet to search a given
  directory for help files and show them in a html file, but I don't know how.
* Double-clicking on dialog box title bars now minimises the window to its title bar.
* Planet config files: Added more horizon haze options:
  - AtmHazeExtent to define the amount of bleed-in of horizon haze into the planet disc.
    Range 0 (thinnest) to 1 (widest). Default 0.1
  - AtmHazeDensity to modify haze density. Default: 1
  - AtmHazeColor to define horizon haze colour independent from atmospheric colour.
* Removed a few more scenario inconsistencies.
* DG: started on scramjet implementation (Alt+ / Alt- to increase/decrease scramjet throttle)
  Some technical specs in DG HTML documentation.
* DG: Hover thrust set to 150kN (realistic flight model) or 230kN (easy model). For vertical
  lift-off from Earth with the realistic model, main fuel mass < 3600kg is required.
* DG panel: Added scramjet throttle sliders
* DG: major redesign of 2D main panel to accomodate scramjet controls. Also redesigned main
  engine gimbal controls.
* DG: Airbrake, radiator and elevator trim status are now stored in scenario.
* DLL interfaces: All modules (including plugins and vessel dlls) should now
  - use the #define ORBITER_MODULE directive
  - link Orbitersdk.lib (in addition to Orbiter.lib)
  - use InitModule() and ExitModule() methods instead of DllMain().
  This allows orbiter to invoke a common DLL entry point which dumps the module name and
  version to Orbiter.log.
* Started on redesigning the vessel callback API. The idea is to replace all ovcXXX callback
  functions with virtual VESSEL methods which can be overwritten by derived classes. All
  ovcXXX functions are retained as far as they were present in the 031217 release, but are
  marked obsolete in the manual. ovcXXX functions added in the beta have been removed.
  Orbiter probes the module version id (see oapiGetModuleVersion) to check which callback
  functions are present in the VESSEL interface. The new mechanism has major advantages:
  - Cleaner module code (no more need to cast from VESSEL pointers, and no need to call
    a derived vessel method from the ovc callback hook).
  - Default behaviour can be invoked by calling the base class method, instead of requiring
    a separate oapiDoSomethingDefault function.
* API: new functions:
	oapiSetParticleLevelRef
	VESSEL::GetAtmRef
	oapiGetPlanetAtmConstants
	oapiColourFill
	oapiBltPanelAreaBackground (to be used in conjunction with the new
	     PANEL_MAP_BGONREQUEST panel area mapping flag).
	oapiGetOrbiterVersion
	oapiGetModuleVersion
	InitModule and ExitModule (replace opcDLLInit and opcDLLExit in plugin modules, and DllMain
             in all other modules)
	VESSEL::clbkSetClassCaps (to replace ovcSetClassCaps)
	VESSEL::clbkLoadStateEx (to replace ovcLoadStateEx)
	VESSEL::clbkSaveState (to replace ovcSaveState)
	VESSEL::clbkTimestep (to replace ovcTimestep)
	VESSEL::clbkVisualCreated (to replace ovcVisualCreated)
	VESSEL::clbkVisualDestroyed (to replace ovcVisualDestroyed)
	VESSEL::clbkDrawHUD (to replace ovcDrawHUD)
	VESSEL::clbkLoadGenericCockpit (to replace ovcGenericCockpit)
	VESSEL::clbkLoadPanel (to replace ovcLoadPanel)
	VESSEL::clbkPanelRedrawEvent (to replace ovcPanelRedrawEvent)
	VESSEL::clbkPanelMouseEvent (to replace ovcPanelMouseEvent)
	VESSEL::clbkLoadVC (to replace ovcLoadVC)
	VESSEL::clbkVCRedrawEvent (to replace ovcVCRedrawEvent)
	VESSEL::clbkVCMouseEvent (to replace ovcVCMouseEvent)
* API: deleted functions:
	ovcDrawHUD (replaced by VESSEL::clbkDrawHUD)
	ovcGenericCockpit (replaced by VESSEL::clbkLoadGenericCockpit)
	ovcLoadVC (replaced by VESSEL::clbkLoadVC)
	ovcVCRedrawEvent (replaced by VESSEL::clbkVCRedrawEvent)
	ovcVCMouseEvent (replaced by VESSEL::clbkVCMouseEvent)
        oapiDrawDefaultHUD (no longer required, because functionality is provided by
	        base class VESSEL::clbkDrawHUD)
* Bug fix: Modified method of merging planet textures with background colour. (Now uses an
  additional texture stage state instead of destination blending). Should get rid of "stars
  shining through planets" bug.
* Bug fix: planetarium mode "off" is now remembered across sessions.
* Bug fix: fixed "yellow clouds with space elevator" bug
* Bug fix: parent-child attachment chains with more than one level are now correctly updated.
* Bug fix: Orbit HUD: prograde marker no longer shows up in 90 deg. position (orbit-normal).
* Bug fix: Planet initialisation with EllipticOrbit = FALSE should now work (but long-term
  stability of dynamic planet updates still needs to be tested)
* Bug fix: Reading in hyperbolic orbital vessel elements from scenario did not produce
  correct orbits. (This may also fix problem with jumps in hyperbolic orbits during
  simulation)

Change log 040425 -> 040531
---------------------------
* Twilight: moved the onset of green and blue sky components during dawn/dusk
  closer together. This reduces the yellow and green hues, and narrows the reddish
  tips of the crescent Earth.
* Bug fix: HUD now scales again with FOV in 2D panel mode.
* Horizon haze adjusted to be less bright at large distances.
* Bug fix: scenarios without fixed start time are always reset to launch at
  system time.
* Keyboard mapper: partially implemented. Key associations read from keymap.cfg.
  Logical key functions defined in orbitersdk.h (OAPI_LKEY_xxx) for later use in API.
* Experimental implementation of distance-dependent fog at low altitudes.
  Problems:
  - DirectX doesn't allow fog to be applied before lighting transformation, so
    fog can't cope with lighting variations and only works locally (at low altitudes)
    Orbiter therefore scales down fog as a function of camera altitude
  - Fog leads to artefacts when applied to large triangles (apparent size) -> causes
    artefacts at very low altitudes outside areas covered with hires base tiles.
* Experimental implementation of increased ambient levels within lit atmospheres.
  Also works only locally and is therefore faded out as a function of camera altitude
  -> causes areas close to the terminator, which appear dark from a distance, to brighten
  as the camera moves in.
* Ctrl-F3 switches back to the previously active vessel. This allows to quickly switch
  backwards and forwards between two vessels.
* Planetarium mode: added labels for surface bases and transmitters.
* Planetarium mode: status is now saved in orbiter.cfg.
* Improved stability of calculation of eccentric anomaly.
* Luna.dll: replaced lunar ephemeris calculation with (partial) ELP2000-82 perturbation
  solution. Moon position and velocity is now significantly more accurate and consistent.
  (also fixes the old "sliding over lunar surface" bug). Moon.cfg now recognises the
  ErrorLimit flag (same usage as for major planets)
* Planet module interface has changed:
  <Planet>_Ephemeris replaces <Planet>_EclSphData
  <Planet>_FastEphemeris replaces <Planet>_CurrentData
  Both new methods accept an additional data format parameter, which allows to provide
  ephemerides in cartesian coordinates instead of the standard polar coordinates.
* Added status output to splash screen.
* Demo/kiosk mode: can now be activated by setting flags in Orbiter.cfg. In demo mode,
  - Background is covered with an image
  - only scenario tab is accessible in launchpad
  - maximum simulation runtime can be limited
  - maximum launchpad idle time can be limited, before
  - orbiter auto-launches with one of the scenarios in the Demo folder, if available
  - Orbiter exit option can be disabled.
* API: Added vessel callback function ovcDrawHUD to allow modules to draw
  vessel-specific modifications in the HUD.
* API: Added function oapiDrawDefaultHUD to generate default HUD from within ovcDrawHUD.
* DG: Now shows landing gear status in the HUD, using the ovcDrawHUD mechanism.
* Included Roger Benson's updated Mir. Modified cross sections and PMI values in Mir.cfg.
* Orbit MFD: Semi-major axis for hyperbolic orbits is now displayed as negative.
* Bug fix: calculation of eccentric and true anomaly of hyperbolic orbits.
* Bug fix: potential problems initialising hyperbolic orbits
* State vectors are now correctly calculated from orbital elements if e>1. Orbit
  stabilisation is now enabled for hyperbolic orbits.

Change log 040401 -> 040425
---------------------------
* Atlantis module: Trim is now available after loading orbiter-only scenarios.
* Only meshes with the VISMODE_EXTERNAL attribute cast shadows.
* Changing mesh visibility flags now also works while the mesh is rendered. Added
  constant MESHVIS_NEVER (0) for convenience.
* Docking approach path rectangles now work with VC HUD.
* Preliminary implementation of atmospheric haze by alpha-gradient texture.
* New format for surface bases in planet cfg files, to simplify the addition of
  new bases. The old format is still recognized and can be used simultaneously.
* API: added functions
  oapiSwitchPanel
  oapiSetPanel
* Bug fix: cloud brightness increased when camera is close to runway lighting
* Ring systems are now rendered without z-buffer if the camera is inside the inner
  ring radius. This should get rid of some ring rendering artefacts.
* Slight modification of Earth AtmColor0: less red, more blue.
* Ground observer panning speed is now stored in orbiter.cfg
* Planets rendered through an atmosphere now add the background colour to their
  surface (check moon from Earth's surface)

Change log 040216 -> 040401
---------------------------
* Bug fix: Simulation window now receives input focus after double-clicking a
  scenario from the list.
* Bug fix: Panels not updated when switching spacecraft with F3.
* Bug fix: GDI resource leak in Map MFD.
* Bug fix: File handle leak when loading base surface tiles.
* Large distances (>1e4AU) are now displayed as pc (parsec)
* Virtual cockpit HUD implemented.
* Meshes marked with MESHVIS_COCKPIT are now again rendered in internal views.
* Added flag MESHVIS_VC to be used with VESSEL::SetMeshVisibilityMode to mark a mesh
  to be rendered in virtual cockpit mode only.
* Base objects remain visible even if camera is below zero altitude.
* Virtual cockpit mode is now stored in the scenario (BEGIN_VC/END_VC)
* VC HUD: Implemented camera parallax correction.
* Improved VC camera rotation algorithm
* API: added functions
  VESSEL::GetCameraDefaultDirection
  VESSEL::SetCameraDefaultDirection
  VESSEL::SetCameraRotationRange
  oapiCameraSetCockpitDir
  oapiCameraMode
* New API vessel callback function ovcGenericCockpit to initialise or disable
  generic cockpit view.


Change log 040128 -> 040216
---------------------------
* Modified the brightness fall-off with distance for planets rendered as pixel
  blocks. Planet brightnesses compare now better with star brightnesses when
  viewed from Earth, but it remains a compromise due to limited dynamic range.
* Adjusted planet AlbedoRGB for Venus and Mercury.
* Modified darkening of sky during dusk/dawn: sky remains brighter, stars come
  on later. Sky also darkens less rapidly with altitude.
* Ground observer camera dialog: Locations can now be entered manually (longitude,
  latitude, altitude) instead of selecting from the predefined locations.
  Added new button "Current" to set the current camera location to ground observer mode.
  This now also provides a kind of flyby mode: move the camera in target-relative
  mode ahead of the vessel, then click "Current" to fix the camera and see the vessel
  fly by.
* Added stencil buffer support to remove the shadow rendering artefacts arising from
  overlapping projected polygons. Reduced shadow darkness. Launchpad dialog now
  has an option to enable/disable stencil buffers in the video tab. If disabled,
  or if video mode doesn't support stencil buffers, shadows are rendered black.
* Diffuse particle streams can now also generate ground shadows.
* API: Added oapiGetPlanetJCoeffCount, oapiGetPlanetJCoeff, VESSEL::OrbitStabilised,
  VESSEL::NonsphericalGravityEnabled.
* DG: Reduced hover thrust rating. VTOL is now just about possible on Mars, but no
  longer on Earth.
* Bug fix: wrong signs in Surface HUD pitch ladder labels.
* Added signs to Orbit HUD pitch ladder labels.
* Added azimuth ribbon to Orbit HUD.
* Experimental implementation of nosewheel steering (used by DG).
* New particles for Atlantis SRB.
* Camera can now be rotated in cockpit mode. Some changes in the keyboard controls:
  - Cursor keys now rotate the view
  - Panels are scrolled with Ctrl-Cursor keys
  - Switch between panels with Alt-Cursor keys
  Changes in joystick coolie hat controls:
  - Coolie hat now rotates the view
  - Coolie hat + joystick button 2 scrolls the panel
* Virtual cockpit implementation started. F8 now cycles through generic, 2D panels,
  and 3D virtual cockpit where supported.
* Added callback function ovcLoadVC for vessel modules to initialise the virtual
  cockpit.
* New API functions:
  oapiVCRegisterMFD (register MFD surface in virtual cockpit)
  oapiVCRegisterArea (register a texture area for dynamic updates in virtual cockpit)
  oapiGetTextureHandle (retrieve a texture from a mesh - required for accessing
  textures for dynamic updates)
* Mesh file extensions:
  FLAG 2 (bit 1) indicates that the group is not rendered (but its shadow is)
  FLAG 4 (bit 2) indicates that lighting is disabled when rendering the group
     (useful for rendering instruments)
  Flag 'D' following a texture name indicates that the texture can be dynamically
  updated (for virtual cockpits).
* Added mouse interface to virtual cockpit.
* Modified virtual cockpit camera for more 'natural' feeling:
  - rotation point is offset from camera position ("head-neck offset") to create
    a parallax when turning the head.
  - small acceleration/deceleration at the beginning and end of a head rotation.
* Started on virtual cockpit design for DG


Change log 031217 -> 040128
---------------------------
* Improved cloud shadow implementation (cloud shadows now appear less "grey")
* More than 64k stars can now be rendered.
* New encoding for planets as pixel blocks. Colours are now correct in 16bit
  modes. "Blockiness" is reduced.
* Bug fix: Crash on selecting "ignore joystick throttle setting on launch" for
  joysticks without throttle control.
* Bug fix: surface bases are now rendered below cloud cover.
* Nonspherical planet shapes can now be considered in the calculation of the
  gravitational potential (but the shape must be symmetric w.r.t. its axis of
  rotation). At the moment, perturbation terms up to the 4th order harmonic
  (coefficients J2-J4) are used. Perturbation terms for the major planets are
  included.
* New feature: shadows projected from vessels onto planetary surfaces.
* Mesh files now support "FLAG" group entry to specify bit-flags. Bit 0 in
  vessel meshes indicates "exclude from shadow projection", to improve render
  efficiency of shadows.
* Bug fix: Launchpad freezing when selecting a fullscreen-only video mode.
* Bug fix: Video modes erraneously registered as fullscreen-only.
* Directories in the Launchpad scenario list are now sorted alphabetically.
* Scenarios can now be launched by double-clicking in the list.
* Orbit MJD: Orbital elements can now be displayed in equatorial reference
  frame, in addition to ecliptic frame. New button ("FRM") added to switch
  between frames.
  Target elements are now displayed even if the reference body is not the
  target's primary gravitational field source.
* DG: Reduced wheel brake effect.
* Modified meshes for DG, Atlantis (+SRB and tank) for efficient shadow rendering
  (added "FLAG 1" entries). Reduced Atlantis mesh by 1300 vertices.
* Mesh base objects can now cast shadows (must specify the "SHADOW" flag in their
  base config entry).
* Mesh base object elevations are now corrected for Earth curvature when
  "MapObjectsToSphere" flag is specified in the config file. ATTENTION SURFACE
  BASE ADDON DEVELOPERS: manual y-offsets for mesh objects (defined in the
  POS entry of the config file or directly in the mesh) should be removed.
* Specular reflection from water surfaces now depends on reflection angle and
  atmospheric colour, to correct for the excessively yellow reflection hue.
* Added more tiles to KSC.


Change log 031105 -> 031217
---------------------------
* Bug fix: Planet textures are now restored in T&L fullscreen modes
  after Alt+Tab.
* Bug fix: PlanetPatchRes entry in Orbiter.cfg is now interpreted correctly
  (higher planet texture resolution for entries > 1)
* New feature: Option to ignore joystick throttle setting on simulation
  start has been added to Joystick tab in Orbiter Launchpad.
* Modified colours for specular reflection from water surfaces
* New feature: Added "cloud shadows on surface" visual option
* Docking port index for direct HUD selection (Ctrl+Alt+R) now starts with 1
  (previously 0) to make consistent with dock numbering in info sheet (Ctrl-I)
* Direct target selection for Docking MFD (Shift-T) now works with vessels (not
  just legacy stations) and allows docking port specification
* Docking MFD now stores mode (NAV/VIS) and slaved NAV receiver index.
* Reduced SIZE parameter in Canaveral.cfg to 1000 to avoid rendering of surface
  tiles at large distances.
* DG exhaust particles now defined for both main engines separately. Single-
  engine situations are now handled properly.
* Bug fix: Shuttle-A auxiliary pod rotation animation error.
* Modified profile drag calculation for DG with more pronounced drag increase for
  high AOA.
* Bug fix: Base tiles can now be applied on the southern hemisphere. Note that:
  (a) latitude index 0 in the base config file (and tile texture name *_n0000.dds)
      correspond to tiles immediately north of the equator, while latitude index -1
      (and tile texture name *_s0001.dds) correspond to tiles immediately south of
      the equator.
  (b) textures for tiles on the southern hemisphere must be rotated 180 degrees.
* Bug fix: Pixelated edge in horizon haze textures with FSAA.
* New feature: F9 now also displays ecliptic grid and equator of target planet on
  celestial sphere, plus planet and vessel markers. New "Planetarium options"
  dialog (Ctrl-F9).
* Celestial bodies (planets, moons) are now rendered at larger camera distances as
  pixel blocks with variable intensity.
* Polar regions can now be covered with level 9 texture patches.
* The display of the info block in the top right corner can now toggled with "I"
  also in internal (cockpit) view. The info block has been cleaned up a bit.
* New categories "Celestial body" and "Camera target" added to object info dialog
  (Ctrl-I). Planetary orbital elements and positions are no longer displayed in the
  main simulation window.
* "Planetary texture files" documentation has been moved from User Manual
  (Orbiter.pdf) to API Guide (Orbitersdk\doc\API_Guide.pdf).
* The "step limit" entry in the orbit stabilisation definition of the orbiter
  launchpad is now active. This value is interpreted as follows:
	Only apply orbit stabilisation if this condition is satisfied
	(in addition to all other conditions):
		v dt > a 2pi r
	where v: orbital velocity, dt: time step, a: step limit,
	r: radius vector length
* Upgraded Orbiter's star database (star.bin) to Hipparcos data set (>100000
  stars). The lauchpad now contains a "Contrast" entry in addition to "Brightness"
  to control the appearence of stars. The "Constellation colour" entry has been
  removed.
* SDK: oapiOpenInputBox: input boxes now accept all printable characters as input.
* Vessel thrust ratings (main, retro, hover) are now listed in the info sheet
  (previously in the simulation window).
* Orbiter now again assigns keys 1,2..0 for plugin MFD modes which request a
  selection key that is already assigned.
* Bug fix: possible crash on repeated opening of input box fixed.
* Bug fix: fixed problem that caused FlightData dialog not to update its graphs.
* Reference planet for Surface MFD and atmospheric calculation now based on
  distance to planet surface rather than centre.
* Added the latest version (v3.05) of Duncan Sharpe's TransX MFD module.
* Bug fix: initial field of view (FOV) is now correctly read from scenario.
* Shuttle-PB: Now contains RCS thrusters for forward/back motion in linear mode.
* Shuttle-PB: Particle streams for main and hover thrusters.
* Mouse wheel is now supported to move the camera towards/away from the target
  in external views (replicating PgUp/PgDown)
* Global surface base velocities are now correctly updated.
