Release Notes for Version 2.9

From C4 Engine Wiki
Jump to navigation Jump to search

Release date: May 20, 2012

  • The C4 Engine now runs under Linux. Generic makefiles can be found in the Linux folder, and NetBeans projects can be found in the NetBeans folder. The engine builds for 64-bit by default. The Browser, Movies, and Font Generator plugins have not been brought to Linux yet. All other tool plugins and game modules are fully supported.

Core Engine

  • The direct use of built-in integer types long, unsigned long, short,unsigned short, signed char, and unsigned char has been eliminated from the engine. The engine now defines the types int8, unsigned_int8, int16, unsigned_int16, int32, unsigned_int32, int64, and unsigned_int64, and these types are used throughout the source code. This was done to minimize potential differences across platforms and between 32-bit and 64-bit builds. (Note that the char type, which is a separate built-in type from signed char and unsigned char, is still used for character strings.)
  • The GraphNode class has been renamed to GraphElement. This is more consistent with the use of the term "element" in other containers (list element, map element, hash table element), and it avoids an ambiguity with the term "node" used to represent items in the scene.

World Manager

  • When a rigid body is extracted from an instanced world, any connectors ending at the instance node are now transferred to the node to which the rigid body controller is assigned.

Interface Manager

  • A new table widget has been added to the standard set of widgets built into the engine. A table is basically a list with a specified number of columns and a fixed cell size.

Message Manager

  • A new message flag called kMessageDestroyer has been added. It should be set for controller messages that cause the target node to be destroyed and get sent with the MessageMgr::SendMessageJournal() function. This flag prevents the message from being deleted from the journal when the controller is destroyed on the server.


World Editor

  • There is a new Find page that contains functionality for finding nodes in a world. Nodes can be matched against a name field (which is not case sensitive), a node type, and a controller type. The name field can be left blank and the node and controller types can be set to <any> in order to match any node that satisfies the restrictions that are specified. The buttons at the bottom of the page let you find all matches, the next match, or the previous match.