Files
CydandClaude Opus 4.8 4abbf8879f Initial import of Red Planet v4.10 Win32 source
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>
2026-06-30 07:59:51 -05:00

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