void Export.Reference <Area> .API(Export.Exporter ex) { ex.Value(AreaID); ex.Value(GeometryLayoutPointer); ex.Ref(level); ex.Ref(AreaModel); ex.Ref(collision); ex.RefArray(Objects.ToArray()); ex.RefArray(MacroObjects.ToArray()); ex.RefArray(SpecialObjects.ToArray()); ex.RefArray(Warps.ToArray()); ex.RefArray(PaintingWarps.ToArray()); ex.RefArray(InstantWarps.ToArray()); }
unsafe void Export.Reference <Object3D> .API(Export.Exporter ex) { { byte * data = stackalloc byte[data_size]; ulong *ulng = (ulong *)data; *ulng++ = Flags; uint *unt = (uint *)ulng; *unt++ = getBehaviorAddress(); short *shrt = (short *)unt; *shrt++ = trs.translation.X; *shrt++ = trs.translation.Y; *shrt++ = trs.translation.Z; *shrt++ = trs.rotation.X; *shrt++ = trs.rotation.Y; *shrt++ = trs.rotation.Z; ushort *ushrt = (ushort *)shrt; *ushrt++ = presetID; byte *uchr = (byte *)ushrt; *uchr++ = modelID; //1 *uchr++ = getActMask(); //2 *uchr++ = BehaviorParameter1; //3 *uchr++ = BehaviorParameter2; //4 *uchr++ = BehaviorParameter3; //5 *uchr++ = BehaviorParameter4; //6 if ((uint)(uchr - data) != data_size) { throw new System.InvalidOperationException(); } ex.Value(data, (uint)data_size); } ex.Ref(area); }
unsafe void Export.Reference <Texture2D> .API(Export.Exporter ex) { { int *members = stackalloc int[4]; members[0] = width; members[1] = height; members[2] = TextureParamS; members[3] = TextureParamT; ex.Value(members, 5); } }
unsafe void Export.Reference <Warp> .API(Export.Exporter ex) { byte *dat = stackalloc byte[(int)dat_size]; byte *uchr = dat; *uchr++ = this.warpFrom_ID; *uchr++ = this.warpTo_AreaID; *uchr++ = this.warpTo_LevelID; *uchr++ = this.warpTo_WarpID; *((uint *)uchr) = this.getROMUnsignedAddress(); ex.Value(dat, dat_size); }
void ValueInterface <T> .Value(ref T v) { exporter.Value <T>(ref v); }
void Export.Reference <CollisionTriangleList> .API(Export.Exporter ex) { ex.Value(id); ex.Array(indices); }
void Export.Reference <Level> .API(Export.Exporter ex) { ex.Value(levelID); ex.RefArray(Areas); }
void Export.Reference <Model3D> .API(Export.Exporter ex) { ex.Value(GeoDataSegAddress); //ex.Array(geoDisplayLists); ex.RefArray(meshes); }