264 lines
15 KiB
Plaintext
264 lines
15 KiB
Plaintext
/*************************************************
|
|
{filename:CK_FILE_WRITEMODE}
|
|
Summary: Specify the way files are saved to disk (compression)
|
|
|
|
Remarks :
|
|
+ File write mode controls the format of a Virtools file when saved. More specifically it
|
|
controls whether compression is enabled and also if the Virtools Dev Interface specific data
|
|
should be stored in the file (if CKFILE_FORVIEWER flag is set , no interface data is saved)
|
|
|
|
See also: CKContext::SetFileWriteMode,CKContext::GetFileWriteMode,CKContext::SetCompressionLevel,CKContext::SetGlobalImagesSaveOptions,CKContext::SetGlobalSoundsSaveOptions
|
|
*************************************************/
|
|
typedef enum CK_FILE_WRITEMODE
|
|
{
|
|
CKFILE_UNCOMPRESSED =0, // Save data uncompressed
|
|
CKFILE_CHUNKCOMPRESSED_OLD =1, // Obsolete
|
|
CKFILE_EXTERNALTEXTURES_OLD=2, // Obsolete : use CKContext::SetGlobalImagesSaveOptions instead.
|
|
CKFILE_FORVIEWER =4, // Don't save Interface Data within the file, the level won't be editable anymore in the interface
|
|
CKFILE_WHOLECOMPRESSED =8, // Compress the whole file
|
|
} CK_FILE_WRITEMODE;
|
|
|
|
/*************************************************
|
|
{filename:CK_LOAD_FLAGS}
|
|
Summary: Load Options.
|
|
|
|
Remarks:
|
|
+ This options apply when loading a Virtools file
|
|
or a importing a 3D Model file.
|
|
+ They defines whether object geometry,only animations
|
|
or only behaviors should be loaded.
|
|
+ One can specify (using the CK_LOAD_AS_DYNAMIC_OBJECT) if
|
|
created CKObjects should be created as dynamic (See also Dynamic Objects)
|
|
See also : CKContext::Load,CKContext::CKSave
|
|
*************************************************/
|
|
typedef enum CK_LOAD_FLAGS {
|
|
CK_LOAD_ANIMATION =1<<0, // Load animations
|
|
CK_LOAD_GEOMETRY =1<<1, // Load geometry.
|
|
CK_LOAD_DEFAULT =CK_LOAD_GEOMETRY|CK_LOAD_ANIMATION, // Load animations & geometry
|
|
CK_LOAD_ASCHARACTER =1<<2, // Load all the objects and create a character that contains them all .
|
|
CK_LOAD_DODIALOG =1<<3, // Check object name unicity and warns the user with a dialog box when duplicate names are found.
|
|
CK_LOAD_AS_DYNAMIC_OBJECT =1<<4, // Objects loaded from this file may be deleted at run-time or are temporary
|
|
CK_LOAD_AUTOMATICMODE =1<<5, // Check object name unicity and automatically rename or replace according to the options specified in CKContext::SetAutomaticLoadMode
|
|
CK_LOAD_CHECKDUPLICATES =1<<6, // Check object name unicity (The list of duplicates is stored in the CKFile class after a OpenFile call
|
|
CK_LOAD_CHECKDEPENDENCIES =1<<7, // Check if every plugins needed are availables
|
|
CK_LOAD_ONLYBEHAVIORS =1<<8, //
|
|
} CK_LOAD_FLAGS;
|
|
|
|
// Options that will be used to create this object...
|
|
enum CK_FO_OPTIONS {
|
|
CK_FO_DEFAULT = 0, // Default behavior : a new object will be created with the name stored in CKFileObject
|
|
CK_FO_RENAMEOBJECT, // Renaming : a new object will be created with the name stored in CKFileObject + a integer value XXX to ensure its uniqueness
|
|
CK_FO_REPLACEOBJECT, // Do not create a new object, instead use an existing one which CK_ID is given by CreatedObject
|
|
// to load the chunk on
|
|
CK_FO_DONTLOADOBJECT, // Object chunk will not be read either because it is a reference
|
|
// or because the loaded object already exist in the current level
|
|
// and the user choose to keep the existing one.
|
|
};
|
|
|
|
/*************************************************
|
|
{filename:CK_LOADMODE}
|
|
Summary: Specify the way an object just loaded should be handled when it already exists in the level.
|
|
{secret}
|
|
|
|
See also:
|
|
*************************************************/
|
|
typedef enum CK_LOADMODE
|
|
{
|
|
CKLOAD_INVALID=-1,// Use the existing object instead of loading
|
|
CKLOAD_OK=0, // Ignore ( Name unicity is broken )
|
|
CKLOAD_REPLACE=1, // Replace the existing object (Not yet implemented)
|
|
CKLOAD_RENAME=2, // Rename the loaded object
|
|
CKLOAD_USECURRENT=3,// Use the existing object instead of loading
|
|
} CK_LOADMODE;
|
|
|
|
/*************************************************
|
|
{filename:CK_OBJECTCREATION_OPTIONS}
|
|
Summary: Specify the way an object is created through CKCreateObject.
|
|
|
|
Remarks:
|
|
+ These flag controls the way an object is created, the most important of these flags
|
|
being CK_OBJECTCREATION_DYNAMIC which, if set in CKCreateObject, make the newly created object
|
|
dynamic.
|
|
See also: CKContext::CreateObject,Dynamic Objects
|
|
*************************************************/
|
|
enum CK_OBJECTCREATION_OPTIONS
|
|
{
|
|
CK_OBJECTCREATION_NONAMECHECK = 0, // Do not test for name unicity (may be overriden in special case)
|
|
CK_OBJECTCREATION_REPLACE = 1, // Replace the current object by the object being loaded
|
|
CK_OBJECTCREATION_RENAME = 2, // Rename the created object to ensure its uniqueness
|
|
CK_OBJECTCREATION_USECURRENT = 3, // Do not create a new object, use the one with the same name instead
|
|
CK_OBJECTCREATION_ASK = 4, // If a duplicate name if found, opens a dialog box to ask the useror use automatic load mode if any.
|
|
CK_OBJECTCREATION_FLAGSMASK = 0x0000000F, // Mask for previous values
|
|
CK_OBJECTCREATION_DYNAMIC = 0x00000010, // The object must be created dynamic
|
|
CK_OBJECTCREATION_ACTIVATE = 0x00000020, // The object will be copied/created active
|
|
CK_OBJECTCREATION_NONAMECOPY = 0x00000040 // The object will take control of the string given to it directly, without copying it
|
|
};
|
|
|
|
/*************************************************
|
|
{filename:CK_PLUGIN_TYPE}
|
|
Summary: Type identifier for a Virtools plugin.
|
|
Remarks:
|
|
+ Each plugin must be given a type.
|
|
+ This enumeration is used to identify a specific catagory
|
|
of plugin when using the CKPluginManager.
|
|
|
|
See also: CKPluginManager,Creating New Plugins
|
|
*************************************************/
|
|
typedef enum CK_PLUGIN_TYPE {
|
|
CKPLUGIN_BITMAP_READER = 0, // The plugin is bitmap (textures,sprites) loader
|
|
CKPLUGIN_SOUND_READER = 1, // Sound Reader Plugin
|
|
CKPLUGIN_MODEL_READER = 2, // 3D Model Reader
|
|
CKPLUGIN_MANAGER_DLL = 3, // The plugin implements a Manager
|
|
CKPLUGIN_BEHAVIOR_DLL = 4, // The plugin implements one or more behaviors
|
|
CKPLUGIN_RENDERENGINE_DLL = 5, // Render Engine plugin
|
|
CKPLUGIN_MOVIE_READER = 6, // Movie (AVI,Mpeg) reader
|
|
CKPLUGIN_EXTENSION_DLL = 7, // Generic extension (definition of new parameter types or operations for ex.)
|
|
} CK_PLUGIN_TYPE;
|
|
|
|
/***************************************************
|
|
CHUNK_OPTIONS in Virtools header.
|
|
*************************************************/
|
|
enum CK_STATECHUNK_CHUNKOPTIONS {
|
|
CHNK_OPTION_IDS = 0x01, // IDS are stored inside chunk
|
|
CHNK_OPTION_MAN = 0x02, // Managers ints are store inside chunk
|
|
CHNK_OPTION_CHN = 0x04, // Sub chunk are stored inside chunk
|
|
CHNK_OPTION_FILE = 0x08, // Chunk was written with indices relative to a file....
|
|
CHNK_OPTION_ALLOWDYN = 0x10, // Dynamic object can be written in the chunk
|
|
CHNK_OPTION_LISTBIG = 0x20, // List are store in big Endian ?
|
|
CHNK_DONTDELETE_PTR = 0x40, // Data buffer stored in m_Buffer is not owned by CKStateChunk , it must not be deleted...
|
|
CHNK_DONTDELETE_PARSER = 0x80, // m_Parser Ptr is not owned by CKStateChunk , it must not be deleted...
|
|
};
|
|
|
|
typedef enum CK_OBJECT_SHOWOPTION {
|
|
CKHIDE =0,
|
|
CKSHOW =1,
|
|
CKHIERARCHICALHIDE =2
|
|
} CK_OBJECT_SHOWOPTION;
|
|
|
|
/***************************************************
|
|
{filename:CK_OBJECT_FLAGS}
|
|
Summary: CKObject Flags
|
|
|
|
Remarks:
|
|
+ Flags specifying special settings for basic objects.
|
|
+ Some of this flags are shared with sub-classes such as CKParameterIn,CKParameterOut and CKBehaviorIO.
|
|
+ You rarely need to modify directly this flags through CKObject::SetFlags or CKObject::ModifyObjectFlags instead
|
|
you should always use the specific acces function (given between ()) which may need to perform additionnal operations.
|
|
See also: CKObject,CKObject::GetObjectFlags,CKObject::ModifyObjectFlags
|
|
*************************************************/
|
|
typedef enum CK_OBJECT_FLAGS {
|
|
CK_OBJECT_INTERFACEOBJ = 0x00000001, // Reserved for Inteface Use
|
|
CK_OBJECT_PRIVATE = 0x00000002, // The object must not be displayed in interface (Lists,Level view,etc...),nor should it be saved. (CKObject::IsPrivate()
|
|
CK_OBJECT_INTERFACEMARK = 0x00000004,
|
|
CK_OBJECT_FREEID = 0x00000008, // ID of this object can be released safely and is free to be reused by future CKobjects.
|
|
CK_OBJECT_TOBEDELETED = 0x00000010, // This object is being deleted
|
|
CK_OBJECT_NOTTOBESAVED = 0x00000020, // This object must not be saved
|
|
CK_OBJECT_VISIBLE = 0x00000040, // This object is visible (CKObject::Show)
|
|
CK_OBJECT_NAMESHARED = 0x00000080, // This object has its name from another entity
|
|
CK_OBJECT_DYNAMIC = 0x00000108, // This object may be created or deleted at run-time, it also contails CK_OBJECT_FREEID. (CKObject::IsDynamic,CKContext::CreateObject)
|
|
CK_OBJECT_HIERACHICALHIDE = 0x00000200, // This object hides all its hierarchy (CKObject::Show)
|
|
CK_OBJECT_UPTODATE = 0x00000400, // (Camera,etc..)
|
|
CK_OBJECT_TEMPMARKER = 0x00000800,
|
|
CK_OBJECT_ONLYFORFILEREFERENCE = 0x00001000,
|
|
CK_OBJECT_NOTTOBEDELETED = 0x00002000, // This object must not be deleted in a clear all
|
|
CK_OBJECT_APPDATA = 0x00004000, // This object has app data
|
|
CK_OBJECT_SINGLEACTIVITY = 0x00008000, // this object has an information of single activity
|
|
CK_OBJECT_LOADSKIPBEOBJECT = 0x00010000, // When loading this object the CKBeObject part should be skipped
|
|
|
|
CK_OBJECT_NOTTOBELISTEDANDSAVED = 0x00000023, // Combination of Private and Not To Be Saved
|
|
|
|
|
|
// The following flags are specific to parameters (they are stored here for object's size purposes )
|
|
CK_PARAMETEROUT_SETTINGS = 0x00400000,
|
|
CK_PARAMETEROUT_PARAMOP = 0x00800000, // This parameter is the output of a CKParameterOperation (Automatically set by Engine)
|
|
CK_PARAMETERIN_DISABLED = 0x01000000, // Parameter In or Out is disabled (CKBehavior::EnableInputParameter,CKBehavior::DisableInputParameter)
|
|
CK_PARAMETERIN_THIS = 0x02000000, // Special parameter type : its value and type are always equal to its owner (CKParameter::SetAsMyselfParameter)
|
|
CK_PARAMETERIN_SHARED = 0x04000000,
|
|
CK_PARAMETEROUT_DELETEAFTERUSE = 0x08000000, // When adding parameters to CKMessage, they can be automatically deleted when message is released (CKMessage::AddParameter)
|
|
CK_OBJECT_PARAMMASK = 0x0FC00000, // Mask for options specific to parameters
|
|
|
|
// The Following flags are specific for Behavior ios (CKBehaviorIO)
|
|
CK_BEHAVIORIO_IN = 0x10000000, // This BehaviorIO is a behavior input (CKBehaviorIO::SetType}
|
|
CK_BEHAVIORIO_OUT = 0x20000000, // This BehaviorIO is a behavior output (CKBehaviorIO::SetType)
|
|
CK_BEHAVIORIO_ACTIVE = 0x40000000, // This BehaviorIO is a currently active (CKBehaviorIO::Activate}
|
|
CK_OBJECT_IOTYPEMASK = 0x30000000,
|
|
CK_OBJECT_IOMASK = 0xF0000000,
|
|
|
|
// The Following flags are specific for Behavior ios (CKBehaviorIO)
|
|
CKBEHAVIORLINK_RESERVED = 0x10000000, // This BehaviorIO is a behavior input (CKBehaviorIO::SetType}
|
|
CKBEHAVIORLINK_ACTIVATEDLASTFRAME = 0x20000000, // This link had been activated last frame
|
|
CK_OBJECT_BEHAVIORLINKMASK = 0x30000000,
|
|
} CK_OBJECT_FLAGS;
|
|
|
|
|
|
/*************************************************
|
|
{filename:CK_3DENTITY_FLAGS}
|
|
Summary: 3dEntity Flags
|
|
Remarks:
|
|
+ Flags give user and engine more information about the 3dEntity.
|
|
|
|
See also: CK3dEntity::SetFlags,CK3dEntity::GetFlags,
|
|
*************************************************/
|
|
typedef enum CK_3DENTITY_FLAGS {
|
|
CK_3DENTITY_DUMMY = 0x00000001, // Entity is a dummy used to represent a position
|
|
CK_3DENTITY_FRAME = 0x00000002, // Entity is a frame used to represent an orientation
|
|
CK_3DENTITY_RESERVED0 = 0x00000020, // Obsolete Flag
|
|
CK_3DENTITY_TARGETLIGHT = 0x00000100, // Entity is a target of a light
|
|
CK_3DENTITY_TARGETCAMERA = 0x00000200, // Entity is a target of a camera
|
|
CK_3DENTITY_IGNOREANIMATION = 0x00000400, // Animation using this entity can't modify it
|
|
CK_3DENTITY_HIERARCHICALOBSTACLE= 0x00000800, // Used by the Collision Manager
|
|
CK_3DENTITY_UPDATELASTFRAME = 0x00001000, // Store the last world matrix for this Entity after each render
|
|
CK_3DENTITY_CAMERAIGNOREASPECT = 0x00002000, // Ignore aspect ratio setting for cameras
|
|
CK_3DENTITY_DISABLESKINPROCESS = 0x00004000, // Force skin processing to be disabled
|
|
CK_3DENTITY_ENABLESKINOFFSET = 0x00008000, // If not set the skin stay attached to the bones the vertices are linked to, otherwise the skin can be freely rotated,translated or scaled according to its owner entity matrix.
|
|
CK_3DENTITY_PLACEVALID = 0x00010000, // Used internally when saving
|
|
CK_3DENTITY_PARENTVALID = 0x00020000, // Used internally when saving
|
|
CK_3DENTITY_IKJOINTVALID = 0x00040000, // Special flag for Bodyparts : IK Joint data is valid
|
|
CK_3DENTITY_PORTAL = 0x00080000, // The 3dEntity is a portal
|
|
CK_3DENTITY_ZORDERVALID = 0x00100000, // The 3dEntity has a non-zero ZOrder
|
|
CK_3DENTITY_CHARACTERDOPROCESS = 0x80000000, // Special flag for Characters : Automatic process of animation
|
|
} CK_3DENTITY_FLAGS;
|
|
|
|
|
|
/*************************************************
|
|
{filename:CK_TEXTURE_SAVEOPTIONS}
|
|
Summary: Specify the way textures or sprites will be saved
|
|
|
|
Remarks :
|
|
+ Textures can be stored inside Virtools files or kept as references to external files.
|
|
+ These options can be used for a specific texture (or sprite) or as a global setting.
|
|
See also: CKBitmapData::SetSaveOptions,CKSprite::SetSaveOptions,CKContext::SetGlobalImagesSaveOptions
|
|
*************************************************/
|
|
typedef enum CK_TEXTURE_SAVEOPTIONS
|
|
{
|
|
CKTEXTURE_RAWDATA =0, // Save raw data inside file. The bitmap is saved in a raw 32 bit per pixel format.
|
|
CKTEXTURE_EXTERNAL =1, // Store only the file name for the texture. The bitmap file must be present in the bitmap paths
|
|
// when loading the composition.
|
|
CKTEXTURE_IMAGEFORMAT =2, // Save using format specified. The bitmap data will be converted to the
|
|
// specified format by the correspondant bitmap plugin and saved inside file.
|
|
CKTEXTURE_USEGLOBAL =3, // Use Global settings, that is the settings given with CKContext::SetGlobalImagesSaveOptions. (Not valid when using CKContext::SetImagesSaveOptions).
|
|
CKTEXTURE_INCLUDEORIGINALFILE =4, // Insert original image file inside CMO file. The bitmap file that
|
|
// was used originally for the texture or sprite will be append to
|
|
// the composition file and extracted when the file is loaded.
|
|
} CK_TEXTURE_SAVEOPTIONS;
|
|
|
|
|
|
/*************************************************
|
|
{filename:CK_SOUND_SAVEOPTIONS}
|
|
Summary: Specify the way sounds will be saved
|
|
|
|
Remarks :
|
|
+ Sounds can kept as references to external files or the original sound file can
|
|
be appended to the composition file.
|
|
+ These options can be used for a specific sound or as a global setting.
|
|
See also: CKSound::SetSaveOptions,CKContext::SetGlobalSoundSaveOptions
|
|
*************************************************/
|
|
typedef enum CK_SOUND_SAVEOPTIONS
|
|
{
|
|
CKSOUND_EXTERNAL =0, // Store only the file name for the sound. The sound file must be present
|
|
// in one of the sound paths when the composition is loaded.
|
|
CKSOUND_INCLUDEORIGINALFILE =1, // Insert original sound file inside the CMO file. The sound file that
|
|
// was used originally will be append to the composition file and
|
|
// extracted when the file is loaded.
|
|
CKSOUND_USEGLOBAL =2, // Use Global settings. This flag is only valid for the CKSound::SetSaveOptions method.
|
|
} CK_SOUND_SAVEOPTIONS; |