Imports the current Win32 source for the pod-racing game 'Red Planet', built on the MUNGA engine and its L4 (Win32/DirectX) platform layer: - MUNGA / MUNGA_L4: cross-platform engine core and Win32 backend - RP / RP_L4: Red Planet game logic and Win32 application - DivLoader, Setup1: asset loader and installer project - lib, MUNGA_L4/openal, MUNGA_L4/sos: third-party audio dependencies Removed stale Subversion metadata and added .gitignore/.gitattributes. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
570 lines
13 KiB
C++
570 lines
13 KiB
C++
#ifndef __VCSTRUCT_H
|
|
#define __VSTRUCT_H
|
|
struct VCAttribute {
|
|
ElementHandle type; /* The element handle */
|
|
InstanceNo ino;
|
|
VCEntity *first;
|
|
int index;
|
|
uint32 mode;
|
|
uint32 cacheMode;
|
|
uint32 registerMode;
|
|
void *instanceData;
|
|
uint32 instanceDataSize;
|
|
uint32 instanceDataCount;
|
|
VCUserDataList *userDataList;
|
|
VCCallbackFunctions *createFunctionList;
|
|
VCCallbackFunctions *deleteFunctionList;
|
|
VCCallbackFunctions *updateFunctionList;
|
|
void *createCallbackHandle;
|
|
void *updateCallbackHandle;
|
|
void *deleteCallbackHandle;
|
|
};
|
|
|
|
struct VCCollision
|
|
{
|
|
InstanceNo ino;
|
|
uint32 status;
|
|
uint32 instanceCount;
|
|
uint32 collReportCount;
|
|
uint32 cacheMode;
|
|
void *instanceData;
|
|
uint32 instanceDataSize;
|
|
uint32 instanceDataCount;
|
|
VCCollisionReportData *collReportData;
|
|
uint32 collReportDataSize;
|
|
uint32 collReportDataCount;
|
|
uint32 numCollisionsReported;
|
|
VCUserDataList *userDataList;
|
|
VCCallbackFunctions *createFunctionList;
|
|
VCCallbackFunctions *deleteFunctionList;
|
|
VCCallbackFunctions *updateFunctionList;
|
|
void *createCallbackHandle;
|
|
void *updateCallbackHandle;
|
|
void *deleteCallbackHandle;
|
|
};
|
|
|
|
struct VCIntersection
|
|
{
|
|
InstanceNo ino;
|
|
uint32 status;
|
|
uint32 instanceCount;
|
|
uint32 intersectReportCount;
|
|
uint32 cacheMode;
|
|
void *instanceData;
|
|
uint32 instanceDataSize;
|
|
uint32 instanceDataCount;
|
|
VCIntersectionReportData *intersectReportData;
|
|
uint32 intersectReportDataSize;
|
|
uint32 intersectReportDataCount;
|
|
uint32 numIntersectionsReported;
|
|
VCUserDataList *userDataList;
|
|
VCCallbackFunctions *createFunctionList;
|
|
VCCallbackFunctions *deleteFunctionList;
|
|
VCCallbackFunctions *updateFunctionList;
|
|
void *createCallbackHandle;
|
|
void *updateCallbackHandle;
|
|
void *deleteCallbackHandle;
|
|
};
|
|
|
|
struct VCPosition
|
|
{
|
|
InstanceNo ino;
|
|
VCEntity *entity;
|
|
uint32 status;
|
|
uint32 cacheMode;
|
|
void *instanceData;
|
|
VCUserDataList *userDataList;
|
|
VCCallbackFunctions *createFunctionList;
|
|
VCCallbackFunctions *deleteFunctionList;
|
|
VCCallbackFunctions *updateFunctionList;
|
|
void *createCallbackHandle;
|
|
void *updateCallbackHandle;
|
|
void *deleteCallbackHandle;
|
|
};
|
|
|
|
struct VCXWindowId
|
|
{
|
|
InstanceNo ino;
|
|
uint32 status;
|
|
uint32 cacheMode;
|
|
void *instanceData;
|
|
uint32 instanceDataSize;
|
|
uint32 instanceDataCount;
|
|
VCUserDataList *userDataList;
|
|
VCCallbackFunctions *createFunctionList;
|
|
VCCallbackFunctions *deleteFunctionList;
|
|
VCCallbackFunctions *updateFunctionList;
|
|
void *createCallbackHandle;
|
|
void *updateCallbackHandle;
|
|
void *deleteCallbackHandle;
|
|
};
|
|
|
|
struct VCVisualViewResource
|
|
{
|
|
InstanceNo ino;
|
|
VCAttribute *attribute;
|
|
VCCallbackFunctions *createFunctionList;
|
|
VCCallbackFunctions *deleteFunctionList;
|
|
VCCallbackFunctions *updateFunctionList;
|
|
void *createCallbackHandle;
|
|
void *updateCallbackHandle;
|
|
void *deleteCallbackHandle;
|
|
};
|
|
|
|
|
|
struct VCPseudoGravity
|
|
{
|
|
InstanceNo ino;
|
|
uint32 status;
|
|
uint32 cacheMode;
|
|
void *instanceData;
|
|
VCUserDataList *userDataList;
|
|
VCCallbackFunctions *createFunctionList;
|
|
VCCallbackFunctions *deleteFunctionList;
|
|
VCCallbackFunctions *updateFunctionList;
|
|
void *createCallbackHandle;
|
|
void *updateCallbackHandle;
|
|
void *deleteCallbackHandle;
|
|
};
|
|
|
|
struct VCMaterial
|
|
{
|
|
|
|
InstanceNo ino;
|
|
char *name;
|
|
uint32 status;
|
|
uint32 cacheMode;
|
|
void *instanceData;
|
|
uint32 instanceDataSize;
|
|
uint32 instanceDataCount;
|
|
VCUserDataList *userDataList;
|
|
VCCallbackFunctions *createFunctionList;
|
|
VCCallbackFunctions *deleteFunctionList;
|
|
VCCallbackFunctions *updateFunctionList;
|
|
void *createCallbackHandle;
|
|
void *updateCallbackHandle;
|
|
void *deleteCallbackHandle;
|
|
};
|
|
|
|
struct VCRadiator
|
|
{
|
|
|
|
InstanceNo ino;
|
|
char *name;
|
|
uint32 status;
|
|
uint32 cacheMode;
|
|
void *instanceData;
|
|
VCUserDataList *userDataList;
|
|
VCCallbackFunctions *createFunctionList;
|
|
VCCallbackFunctions *deleteFunctionList;
|
|
VCCallbackFunctions *updateFunctionList;
|
|
void *createCallbackHandle;
|
|
void *updateCallbackHandle;
|
|
void *deleteCallbackHandle;
|
|
};
|
|
|
|
|
|
|
|
struct VCTexture
|
|
{
|
|
InstanceNo ino;
|
|
char *name;
|
|
uint32 status;
|
|
uint32 cacheMode;
|
|
void *instanceData;
|
|
uint32 instanceDataSize;
|
|
uint32 instanceDataCount;
|
|
VCUserDataList *userDataList;
|
|
VCCallbackFunctions *createFunctionList;
|
|
VCCallbackFunctions *deleteFunctionList;
|
|
VCCallbackFunctions *updateFunctionList;
|
|
void *createCallbackHandle;
|
|
void *updateCallbackHandle;
|
|
void *deleteCallbackHandle;
|
|
};
|
|
|
|
struct VCRamp
|
|
{
|
|
InstanceNo ino;
|
|
char *name;
|
|
uint32 status;
|
|
uint32 cacheMode;
|
|
void *instanceData;
|
|
uint32 instanceDataSize;
|
|
uint32 instanceDataCount;
|
|
VCUserDataList *userDataList;
|
|
VCCallbackFunctions *createFunctionList;
|
|
VCCallbackFunctions *deleteFunctionList;
|
|
VCCallbackFunctions *updateFunctionList;
|
|
void *createCallbackHandle;
|
|
void *updateCallbackHandle;
|
|
void *deleteCallbackHandle;
|
|
};
|
|
|
|
struct VCInput
|
|
{
|
|
InstanceNo ino;
|
|
uint32 status;
|
|
uint32 cacheMode;
|
|
void *instanceData;
|
|
uint32 instanceDataSize;
|
|
uint32 instanceDataCount;
|
|
VCUserDataList *userDataList;
|
|
VCCallbackFunctions *createFunctionList;
|
|
VCCallbackFunctions *deleteFunctionList;
|
|
VCCallbackFunctions *updateFunctionList;
|
|
void *createCallbackHandle;
|
|
void *updateCallbackHandle;
|
|
void *deleteCallbackHandle;
|
|
uint32 numWraps;
|
|
uint32 head;
|
|
};
|
|
|
|
struct VCTracker
|
|
{
|
|
InstanceNo ino;
|
|
char *name;
|
|
uint32 status;
|
|
uint32 cacheMode;
|
|
void *instanceData;
|
|
uint32 instanceDataSize;
|
|
uint32 instanceDataCount;
|
|
VCUserDataList *userDataList;
|
|
VCCallbackFunctions *createFunctionList;
|
|
VCCallbackFunctions *deleteFunctionList;
|
|
VCCallbackFunctions *updateFunctionList;
|
|
void *createCallbackHandle;
|
|
void *updateCallbackHandle;
|
|
void *deleteCallbackHandle;
|
|
};
|
|
|
|
struct VCSync
|
|
{
|
|
VCSync *next;
|
|
InstanceNo ino;
|
|
uint32 status;
|
|
uint32 cacheMode;
|
|
void *instanceData;
|
|
uint32 instanceDataSize;
|
|
uint32 instanceDataCount;
|
|
VCUserDataList *userDataList;
|
|
VCCallbackFunctions *createFunctionList;
|
|
VCCallbackFunctions *deleteFunctionList;
|
|
VCCallbackFunctions *updateFunctionList;
|
|
void *createCallbackHandle;
|
|
void *updateCallbackHandle;
|
|
void *deleteCallbackHandle;
|
|
};
|
|
|
|
struct VCMonitor
|
|
{
|
|
InstanceNo ino;
|
|
char *name;
|
|
uint32 status;
|
|
uint32 cacheMode;
|
|
void *instanceData;
|
|
uint32 instanceDataSize;
|
|
uint32 instanceDataCount;
|
|
VCUserDataList *userDataList;
|
|
VCCallbackFunctions *createFunctionList;
|
|
VCCallbackFunctions *deleteFunctionList;
|
|
VCCallbackFunctions *updateFunctionList;
|
|
void *createCallbackHandle;
|
|
void *updateCallbackHandle;
|
|
void *deleteCallbackHandle;
|
|
};
|
|
|
|
typedef struct
|
|
{
|
|
VCAttribute *attribute;
|
|
VCEntity *next;
|
|
int32 index;
|
|
int32 flags;
|
|
VCUserDataList *userDataList;
|
|
} VCAttributeData;
|
|
|
|
typedef struct VCEntityData
|
|
{
|
|
dmMatrix apos;
|
|
VCEntity *newParent;
|
|
uint32 traverseMode;
|
|
VCCallbackFunctions *createFuncList;
|
|
VCCallbackFunctions *updateFuncList;
|
|
VCCallbackFunctions *deleteFuncList;
|
|
VCUserDataList *userData;
|
|
void *vcPosCallbackInfo;
|
|
void *objPosCallbackInfo;
|
|
VCCallbackFunctions *entityRelocateCallbackList;
|
|
uint32 entityRelocateMode;
|
|
} VCEntityData;
|
|
|
|
struct VCEntity {
|
|
VCEntity *parent; /* Local parental ptr */
|
|
VCEntity *child; /* Local child ptr */
|
|
VCEntity *sibling; /* Local sibling ptr */
|
|
_VCObject *object; /* Hierarchy VL data */
|
|
InstanceNo ino; /* VCObject Instance No */
|
|
VCEntityData *systemData;
|
|
int numAttributes;
|
|
VCAttributeData *attributes;/* Hierarchy data objects */
|
|
};
|
|
|
|
|
|
typedef struct
|
|
{
|
|
VCColour backgroundColour;
|
|
int backgroundColourSet;
|
|
float32 nearClip;
|
|
int nearClipSet;
|
|
float32 farClip;
|
|
int farClipSet;
|
|
VCColour fogColour;
|
|
uint32 fogMode;
|
|
int fogColourSet;
|
|
float32 nearFog;
|
|
int nearFogSet;
|
|
float32 farFog;
|
|
int farFogSet;
|
|
|
|
void *callbackHandle;
|
|
|
|
}_VCBodyVisResInfo;
|
|
|
|
typedef struct
|
|
{
|
|
char *resourceFile;
|
|
float32 volume;
|
|
int volumeSet;
|
|
float32 spreadingRollOff;
|
|
int spreadingRollOffSet;
|
|
float32 atmosphericAbsorption;
|
|
int atmosphericAbsorptionSet;
|
|
void *callbackHandle;
|
|
}_VCBodyAudioResInfo;
|
|
|
|
|
|
struct VCBody
|
|
{
|
|
VCBody *next;
|
|
_VCBody *body;
|
|
uint32 bodySize;
|
|
uint32 bodyCount;
|
|
VCEntity *rootEntity;
|
|
VCEntity *bodyPosEntity;
|
|
InstanceNo ino;
|
|
VCCallbackFunctions *bodyPartCreateList;
|
|
_VCBodyPartList *bodyPartList;
|
|
VCCallbackFunctions *attributeFuncList;
|
|
VCCallbackFunctions *inputFuncList;
|
|
VCCallbackFunctions *collisionFuncList;
|
|
_VCBodyVisResInfo visualInfo;
|
|
_VCBodyAudioResInfo audioInfo;
|
|
};
|
|
|
|
|
|
struct _VCBody_InputFuncData
|
|
{
|
|
uint32 minKeyCode;
|
|
uint32 maxKeyCode;
|
|
char *limbName;
|
|
};
|
|
|
|
struct _VCBody_CollideFuncData
|
|
{
|
|
char *limbName;
|
|
};
|
|
|
|
struct _VCInput_FuncData
|
|
{
|
|
uint32 minKeyCode;
|
|
uint32 maxKeyCode;
|
|
};
|
|
|
|
struct VCUserDataList
|
|
{
|
|
VCUserDataList *next;
|
|
uint32 vcId;
|
|
void *data;
|
|
};
|
|
|
|
|
|
struct VCCollisionReport_Traverse
|
|
{
|
|
uint32 instanceCount;
|
|
VCCollision *collision;
|
|
uint32 nextOffset;
|
|
};
|
|
|
|
struct VCIntersectionReport_Traverse
|
|
{
|
|
uint32 instanceCount;
|
|
VCIntersection *intersection;
|
|
uint32 nextOffset;
|
|
};
|
|
|
|
|
|
|
|
struct VCEntity_Traverse
|
|
{
|
|
VCEntity *currentObject; /* Current hierarchy pos */
|
|
VCEntity *startObject; /* Start hierarchy pos */
|
|
};
|
|
|
|
struct VCAttribute_EntityTraverse
|
|
{
|
|
VCEntity *entity;
|
|
int32 index;
|
|
};
|
|
|
|
struct VCEntity_AttributeTraverse
|
|
{
|
|
VCEntity *entity;
|
|
int32 nextIndex;
|
|
ElementHandle element;
|
|
};
|
|
|
|
struct VCBody_Traverse
|
|
{
|
|
VCBody *body;
|
|
};
|
|
|
|
struct VCVisualView_Traverse
|
|
{
|
|
duHashIterator hashIter;
|
|
VCAttribute *visResource;
|
|
};
|
|
|
|
|
|
struct VCBody_AttributeTraverse
|
|
{
|
|
VCBody *body;
|
|
char *limbName; /* Request limb */
|
|
ElementHandle element;
|
|
_VCBodyPartList *currentBodyPart;
|
|
int currentAttribute;
|
|
VCBody *currentBody;
|
|
VCBody_Traverse bodyTraverseInfo;
|
|
};
|
|
|
|
|
|
|
|
struct VCCallbackFunctions
|
|
{
|
|
VCCallbackFunctions *next;
|
|
VC_CallbackFunc function;
|
|
void *data;
|
|
void *systemData;
|
|
};
|
|
|
|
typedef union
|
|
{
|
|
VCEntity_Traverse entityT;
|
|
VCEntity_AttributeTraverse entityAttributeT;
|
|
VCAttribute_EntityTraverse attributeEntityT;
|
|
VCBody_Traverse bodyT;
|
|
VCBody_AttributeTraverse bodyAttributeT;
|
|
VCCollisionReport_Traverse collReportT;
|
|
VCIntersectionReport_Traverse intersectReportT;
|
|
VCVisualView_Traverse viewT;
|
|
}VC_Traverse;
|
|
|
|
typedef struct
|
|
{
|
|
ElementHandle element;
|
|
char *limbName;
|
|
} _VCAttributeElementData;
|
|
|
|
typedef struct
|
|
{
|
|
InstanceNo inst;
|
|
VCCallbackFunctions *functionList;
|
|
} _VCInstCallback;
|
|
|
|
typedef struct
|
|
{
|
|
VCBody *body;
|
|
_VCBodyPartList *bodyPart;
|
|
}_VCBodyPartInfo;
|
|
|
|
|
|
struct _VCTimer_CallbackInfo
|
|
{
|
|
VLTime lastTime;
|
|
VLTime time;
|
|
VLTimerMode mode;
|
|
};
|
|
|
|
struct _VCBodyPartList
|
|
{
|
|
_VCBodyPartList *next;
|
|
VCAttribute *bodyPartAttr;
|
|
VCBody *body;
|
|
uint32 inputNeeded;
|
|
/*
|
|
VCEntity *pickedObject;
|
|
VCEntity_DropFunc dropFunc;
|
|
void *dropData;
|
|
VCAttribute *pickAttr;
|
|
*/
|
|
};
|
|
|
|
typedef struct
|
|
{
|
|
VCAttribute *bodyPartAttr;
|
|
VCBody *body;
|
|
VCEntity_DropFunc dropFunc;
|
|
void *dropData;
|
|
VCPickObjectData pickObject;
|
|
}_VCBodyPickInfo;
|
|
|
|
|
|
|
|
typedef struct
|
|
{
|
|
VCCallbackFunctions *relocateFunctionList;
|
|
VCCallbackFunctions *createFunctionList;
|
|
VCCallbackFunctions *invalidFunctionList;
|
|
VCCallbackFunctions *updateFunctionList;
|
|
VCCallbackFunctions *deleteFunctionList;
|
|
void *createCallbackHandle;
|
|
void *updateCallbackHandle;
|
|
void *deleteCallbackHandle;
|
|
uint32 relocateMode;
|
|
} _VCObjectFunctions;
|
|
|
|
typedef struct
|
|
{
|
|
_VCObjectFunctions functions;
|
|
int explicitInstances;
|
|
duHashTab *instTable;
|
|
ElementHandle element;
|
|
uint32 registered;
|
|
} _VCAttributeCallback;
|
|
|
|
typedef struct
|
|
{
|
|
_VCAttributeCallback *callbackList;
|
|
int32 listSize;
|
|
} _VCAttributeCallbackList;
|
|
|
|
typedef struct
|
|
{
|
|
void *relocateCallbackHandle;
|
|
void *invalidCallbackHandle;
|
|
}_VCEntityRelocateCallbackHandles;
|
|
|
|
|
|
typedef struct _VCSyncCallbackInfo
|
|
{
|
|
struct _VCSyncCallbackInfo *next;
|
|
char *actorName;
|
|
char *actorType;
|
|
VCSync_Func updateFunc;
|
|
VCSync_Func deleteFunc;
|
|
void *data;
|
|
}_VCSyncCallbackInfo;
|
|
|
|
|
|
|
|
#endif
|