Release Notes for Version 2.9
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 theNetBeans
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
, andunsigned char
has been eliminated from the engine. The engine now defines the typesint8
,unsigned_int8
,int16
,unsigned_int16
,int32
,unsigned_int32
,int64
, andunsigned_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 thechar
type, which is a separate built-in type fromsigned char
andunsigned char
, is still used for character strings.)
- The
GraphNode
class has been renamed toGraphElement
. 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 theMessageMgr::SendMessageJournal()
function. This flag prevents the message from being deleted from the journal when the controller is destroyed on the server.
Tools
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.