CFrame
What is a CFrame?
CFrame is a format used to store a frame and it's objects, layers, transitions, etc.
Structure
| Size | Type | Name | Description |
|---|---|---|---|
| 4 | UInt32 | Handle | The frame's handle |
| ... | CString | Name | The frame's name |
| 4 | Int32 | Width | The width of the frame |
| 4 | Int32 | Height | The height of the frame |
| 4 | RGBA | Background Color | The background color of the frame |
| 4 | UInt32 | Flags | |
| 4 | UInt32 | Max Object Count | The maximum amount of object instances that can exist at any one time |
| ... | CString | Password | The frame's password |
| ... | Unknown | Starts with a size (excluding itself), go ahead and skip it | |
| 4 | Int32 | Editor X | The frame's X panned position in the editor |
| 4 | Int32 | Editor Y | The frame's Y panned position in the editor |
| ... | LOGPALETTE | Palette | A palette used for 256 color mode, uses a WinAPI structure, although please note, Version is omitted here and Count is 4 bytes |
| 4 | Int32 | Icon Handle | The handle of the preview image in the Icon Bank |
| 4 | Int32 | Editor Layer | The frame's currently selected layer index in the editor |
| ... | CLayers | Layers | The frame's layers |
| 1 | Boolean | Has Fade In | Whether or not this frame has a Fade In transition, if false then the next variable does not exist |
| ... | CTransition | Fade In | The Fade In Transition, only exists if Has Fade In is true |
| 1 | Boolean | Has Fade Out | Whether or not this frame has a Fade Out transition, if false then the next variable does not exist |
| ... | CTransition | Fade Out | The Fade Out Transition, only exists if Has Fade Out is true |
| ... | CObjectInfos | Object Infos | An array of object definitions in this frame |
| ... | CObjectFolders | Object Folders | An array of object folders in this frame |
| ... | CObjectInstances | Object Instances | An array of object instances in this frame |
| ... | CFrameEvents | Frame Events | A structure defining all data relating to frame events |
| ... | CChunk | Frame Chunks | A list of frame chunks, the end is indicated by a chunk with an ID of 0 |
Flag Definitions
Flags
| Value | Name | Description |
|---|---|---|
| 0x0001 | Grab desktop at start | Sets the background of the frame to a snapshot of the desktop, mainly used for screensavers |
| 0x0002 | Keep display from previous frame | Sets the background of the frame to the display left by the previous frame |
| 0x0004 | Handle background collisions even out of window | The collisions with the background will be handled regardless of the distance from the camera |
| 0x0008 | Display frame title in window caption | Displays the frame's name in the title of the window |
| 0x0010 | Resize to screen size at start | Sets the frame size to the size of the current monitor's resolution upon being loaded |
| 0x0020 | Force Load On Call option for all objects (Force) | Forces Load On Call to be enabled on all objects in this frame |
| 0x0040 | No display surface | Disables the display surface completely to save memory, meant to be used in applications where only Windows controls are used (like buttons, checkmarks, edit boxes, and list boxes) |
| 0x0080 | Screen saver setup frame | Sets this frame as the frame to be ran when the user is configuring the screen saver |
| 0x0100 | Timer-based movements | Uses delta-time for the movement and animation speed of objects, detaching them from the framerate |
| 0x0200 | Unknown | Seemingly unused |
| 0x0400 | Exclude global events | Excludes global events from running in this frame, this is inverted in the UI as "Include global events" |
| 0x0800 | Unknown | Seemingly unused |
| 0x1000 | Don't include at build time | Removes the frame data from the application when built |
| 0x2000 | Direct3D: don't erase background if the frame has an effect | Allows the frame effect to use the previous display, for example for motion blur effects |
| 0x4000 | Unknown | Seemingly unused |
| 0x8000 | Force Load On Call option for all objects (Ignore) | Forces Load On Call to be disabled on all objects in this frame |