5.4 Questions about CSS

How do I know what functions or members are available in CSS?
Use the 'type' command, such as 'type UnitSpec', which will display a list of all CSS-accesable type information for that object, including descriptive comments. If you just type 'type' with no arguments, then a list of all defined types is presented.
How do I call the copy operator (=) for a hard-coded objects in CSS?
Hard coded types are a little different than types defined within CSS (e.g., a Unit is a hard-coded type), because they are used to refer to things like units, layers, etc, in the network, which are external to css. In particular, they are *always* pointers. There is no such thing as a 'Unit un' in css -- its always really (implicitly) 'Unit* un'. So, dereferencing a pointer to a hard-coded object doesn't do anything, meaning that it can't tell the difference between assigning the pointer to point to a new object, and copying the object that the pointer currently points to. To explicitly invoke the object's copy operator, use the CopyFrom() member function (e.g., Unit* un = .units[0]; un.CopyFrom(.units[1]); ). Note that if you obtain a pointer to a hard-coded object via a "path" in the object hierarchy, then it knows that this is not just a free css pointer, and it will apply CopyFrom when you do '='.
How do I deal with errors in Scripts that are auto-running at
startup? If you startup the program with the project name on the command line, then the project will load over and over again if there is an error with a script that is set to run upon loading the project (auto-run). The solution is to load the project from the Root menu, and to immediately move the mouse over the xterminal window, and type a Return into that window when the error occurs. Then, you can debug the problem with the script at the point where the error occurred.