.. Variable types .. include:: /includes/standard.rst ================ Variable types ================ At their core, all variables in Sierra Script are 16-bit values. They are untyped, meaning you can assign a number, an object, or a pointer to a buffer to the same variable. That said, it is useful to note the kinds of things that can be assigned to variables. Number ========== A 16-bit number between -32768 and 32767. Example:: ; An immediate (Wait 1234) ; Assigned to a variable = someNum 1234 (Wait someNum) Boolean ========== A TRUE or FALSE expression. This is the same as a number, but is evaluated differently. If it's value is 0, it is a FALSE expression, otherwise it is a TRUE expression. String ========== A string of characters. A string is a pointer to memory containing null-terminated text. HeapPtr ========== A pointer to a block of memory. Blocks of memory can contain anything, from classes, to strings, to variables. Examples:: ; An immediate string (Display "Hello World") ; A string variable (string helloStr = "Hello World" ) ... (Display helloString) ; A variable (local, global, var, param, property) containing a pointer to a string = strPtr "Hello World" (Display strPtr) ; A pointer to a variable (local, global, var, param) (local [strBuf 40] ) ; then in code: (StrCpy @strBuf "Hello World") (Display @strBuf) Rect ====== An array of four variables defining a rectangle Example:: (procedure (SomeFunc &tmp [rect 4]) (TextSize @rect) (= yMin [rect 0]) (= xMin [rect 1]) (= yMax [rect 2]) (= xMax [rect 3]) ) Point ========= An array of two variables defining a point Example:: (procedure (SomeFunc &tmp [point 2]) (= y [point 0]) (= x [point 1]) )