Release Notes for Version 2.5.5

From C4 Engine Wiki
Jump to navigation Jump to search

Release date: April 14, 2011

Core Engine


  • The shadow mapping capabilities used by the landscape light have been redesigned. There is no longer any restriction on geometry size relative to the section sizes for a landscape light. This allows smaller section sizes closer to the camera, which produce higher-resolution shadow maps, without having to worry about objects spanning more than two consecutive sections.
  • The timer query mechanism (for timing on the GPU) has been reworked to prevent a decrease in performance that could previously occur when the Rate window was open.

Interface Manager

  • Many of the Widget subclasses now expose settings for the colors of the different parts of the widgets, such as the background color, border color, highlight color, etc. Each widget has a default color type that usually corresponds to one of the more specific color types, and most widgets also support one or more additional color types. Some color types can have default values that are read from system variables, and these have a check box next to them in the settings. If the box is not checked, then the default color is used.
  • The Get Widget Color and Set Widget Color controller functions (accessible from the Call Controller Function script method) can now target any of the color types support by a widget.
  • Two new built-in controller functions, Get Widget Value and Set Widget Value, have been added to the scripting system. These can get and set values for the check, radio, progress, slider, scroll, list, multipane, and popup menu widgets.
  • The Pulsate and Fade mutators can now target any of the color types supported by a widget.
  • The Pulsate mutator now supports three blend modes: interpolate (the default), add, and multiply. The interpolate mode smoothly interpolates between the widget color c1 and the pulsate color c2 based on the time parameter t, where t is always in the range 0 to 1. The resulting color is c1 * (1 - t) + c2 * t, and this is the same effect that the pulsate mutator had in earlier versions. The add mode causes the pulsate color to be fractionally added to the widget color, producing the color c1 + c2 * t. The multiply mode causes the widget color to be multiplied by the smooth interpolation between white and the pulsate color to produce c1 * (white * (1 - t) + c2 * t).


  • The marking effect has a new flag called kMarkingDepthWrite that enables writing to the depth buffer for a marking. This was previously always on if the kMarkingLight flag was specified, but now needs to be specified separately in order for a marking to modify the depth buffer.

Math Library

  • The GetSineTable() and GetCosineTable() functions have been replaced by a single GetTrigTable() function. This table is an array of Vector2D objects for which the x component contains the cosine and the y component contains the sine of the array index times 2π/256.

World Manager

  • The Block class has been renamed to the TerrainBlock class. This was done because there will be a WaterBlock class in a future release.


Collada Importer

  • The Collada Importer is now able to handle more cases in which joint nodes (bones) are not properly indicated by the exporter that wrote a DAE file.
  • Extra functionality has been added to the Collada Importer to prevent the fusion of vertices with opposing tangent vectors, but with otherwise identical positions and texture coordinates.