00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 typedef unsigned char BYTE;
00017 typedef unsigned short WORD;
00018 typedef unsigned long DWORD;
00019 typedef BYTE BOOL;
00020
00021 typedef enum {
00022 Zero,
00023
00024 None,
00025 Misc,
00026
00027 PrimHdrSect,
00028 PrimHdr,
00029 PrimSet,
00030 Prim,
00031
00032 MIMePrimHdr,
00033 MIMePrimSet,
00034 MIMePrim,
00035 MIMeDiffSect,
00036
00037 TempBeforeThis,
00038
00039 CoordSect,
00040 Coord,
00041
00042 PolyPrimHdr,
00043 PolyPrimSet,
00044 PolyPrim,
00045 Poly,
00046 Vert,
00047 Norm,
00048
00049 SharedPrimHdr,
00050 SharedPrimSet,
00051 SharedPrim,
00052 SharedPolyPrimSet,
00053 SharedPolyPrim,
00054 SharedPoly,
00055 SharedVert,
00056 CalcedVert,
00057 SharedNorm,
00058 CalcedNorm,
00059
00060 AnimPrimHdr,
00061 AnimPrimSet,
00062 AnimPrim,
00063 InterpFuncSect,
00064 CtrlSect,
00065 ParamSect,
00066
00067 ImagePrimHdr,
00068 ImagePrimSet,
00069 ImagePrim,
00070 ClutImagePrim,
00071 ImageData,
00072 ClutData,
00073
00074 MIMePr,
00075
00076 JntMIMePrimHdr,
00077 JntMIMePrimSet,
00078 RstJntMIMePrimHdr,
00079 RstJntMIMePrimSet,
00080
00081 AxesMIMePrim,
00082 RstAxesMIMePrim,
00083 AxesMIMeDiff,
00084 AxesMIMeDiffData,
00085 RstAxesMIMeDiffData,
00086
00087 RPYMIMePrim,
00088 RstRPYMIMePrim,
00089 RPYMIMeDiff,
00090 RPYMIMeDiffData,
00091 RstRPYMIMeDiffData,
00092
00093 VNMIMePrimHdr,
00094 VNMIMePrimSet,
00095 RstVNMIMePrimHdr,
00096 RstVNMIMePrimSet,
00097 VNMIMeOrgsVNSect,
00098
00099 VertMIMePrim,
00100 VertMIMeDiff,
00101 VertMIMeDiffData,
00102 RstVertMIMePrim,
00103 RstVertMIMeDiff,
00104 RstVertMIMeDiffData,
00105 RstVertMIMeChanged,
00106
00107 NormMIMePrim,
00108 NormMIMeDiff,
00109 NormMIMeDiffData,
00110 RstNormMIMePrim,
00111 RstNormMIMeDiff,
00112 RstNormMIMeDiffData,
00113 RstNormMIMeChanged,
00114
00115 GroundPrimHdr,
00116 GroundPrimSet,
00117 TexGroundPrimHdr,
00118 TexGroundPrimSet,
00119
00120 GroundPrim,
00121 TexGroundPrim,
00122 GroundPoly,
00123 GroundGrid,
00124 TexGroundGrid,
00125 GroundVert,
00126 GroundNorm,
00127 GroundUV,
00128
00129 LastType
00130
00131 } TypeValue;
00132
00133 typedef struct _Type Type;
00134
00135 struct _Type {
00136 TypeValue val;
00137 short idx;
00138 Type *next;
00139 };
00140
00141 typedef struct {
00142 DWORD nextp;
00143 DWORD hdrp;
00144 DWORD not;
00145 } PrimSetHdr;
00146
00147 typedef struct {
00148 DWORD offset;
00149 DWORD data[1024 / sizeof(DWORD)];
00150
00151 } PrimHeader;
00152
00153 typedef struct {
00154 BYTE dev_id;
00155 BYTE ctg;
00156 BYTE drv;
00157 WORD type;
00158 } PrimType;
00159
00160 typedef struct {
00161 DWORD offset;
00162 PrimType type;
00163 WORD size, data;
00164 } PrimInfo;
00165
00166 typedef struct {
00167 Type type;
00168 BOOL refto;
00169 void *ext;
00170 } LabelElem;
00171
00172 typedef struct {
00173 DWORD sz;
00174 LabelElem *elem;
00175 } Label;
00176
00177 typedef struct {
00178 FILE *fp;
00179 Label label;
00180 } HMD;