CAOS Data Types

The Creatures 3 engine (unlike C1 and C2 before it) now has a concept of a data type within the CAOS language, and these types must be correctly used ... with certain commands only possible on certain types.

The data types consist of:

A text string. For example, "Go to the CDN newsgroups for on-topic discussions"

A whole number. For example, 389.

A number with decimal places. For example, 1891.32

A pointer to an agent ID in the game.

What this means is that now when you assign a value to a variable you must use the correct form of assignment. C1 and C2 simply used SETV for all assignments, C3 introduces 2 new assignments:

SETA - which stores a reference to an agent in a variable
SETS - which stores a string in a variable.

SETV now stores only decimal values (integers and floats).

Example uses of these commands:

setv va00 79
setv va01 0.2
setv ov78 100
seta ov16 targ
seta va99 ownr
sets va10 "hello"
sets ov10 "world"

By default all variables are initialised with a value of 0, this means if you intend to use a variable for holding an agent (and want to check whether it is null) you will need to initialise it as such. E.g. seta ov00 null

The CAOS Language Guide lists for every command what data type it is expecting.