From 6a9696e525795fbbab564d216d6e85aa5cc030bb Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Wed, 28 Nov 2018 00:11:06 +0100 Subject: [PATCH] - moved the remaining exports from p_sectors.cpp to vmthunks.cpp --- src/p_sectors.cpp | 295 +----------------------------------- src/scripting/vmthunks.cpp | 296 ++++++++++++++++++++++++++++++++++++- 2 files changed, 295 insertions(+), 296 deletions(-) diff --git a/src/p_sectors.cpp b/src/p_sectors.cpp index 6eeea5442..6494a202d 100644 --- a/src/p_sectors.cpp +++ b/src/p_sectors.cpp @@ -139,16 +139,6 @@ double sector_t::FindLowestFloorSurrounding (vertex_t **v) const return floor; } -DEFINE_ACTION_FUNCTION(_Sector, FindLowestFloorSurrounding) -{ - PARAM_SELF_STRUCT_PROLOGUE(sector_t); - vertex_t *v; - double h = self->FindLowestFloorSurrounding(&v); - if (numret > 0) ret[0].SetFloat(h); - if (numret > 1) ret[1].SetPointer(v); - return numret; -} - // // P_FindHighestFloorSurrounding() // FIND HIGHEST FLOOR HEIGHT IN SURROUNDING SECTORS @@ -188,18 +178,6 @@ double sector_t::FindHighestFloorSurrounding (vertex_t **v) const return floor; } -DEFINE_ACTION_FUNCTION(_Sector, FindHighestFloorSurrounding) -{ - PARAM_SELF_STRUCT_PROLOGUE(sector_t); - vertex_t *v; - double h = self->FindHighestFloorSurrounding(&v); - if (numret > 0) ret[0].SetFloat(h); - if (numret > 1) ret[1].SetPointer(v); - return numret; -} - - - // // P_FindNextHighestFloor() // @@ -251,16 +229,6 @@ double sector_t::FindNextHighestFloor (vertex_t **v) const return height; } -DEFINE_ACTION_FUNCTION(_Sector, FindNextHighestFloor) -{ - PARAM_SELF_STRUCT_PROLOGUE(sector_t); - vertex_t *v; - double h = self->FindNextHighestFloor(&v); - if (numret > 0) ret[0].SetFloat(h); - if (numret > 1) ret[1].SetPointer(v); - return numret; -} - // // P_FindNextLowestFloor() @@ -313,16 +281,6 @@ double sector_t::FindNextLowestFloor (vertex_t **v) const return height; } -DEFINE_ACTION_FUNCTION(_Sector, FindNextLowestFloor) -{ - PARAM_SELF_STRUCT_PROLOGUE(sector_t); - vertex_t *v; - double h = self->FindNextLowestFloor(&v); - if (numret > 0) ret[0].SetFloat(h); - if (numret > 1) ret[1].SetPointer(v); - return numret; -} - // // P_FindNextLowestCeiling() @@ -375,16 +333,6 @@ double sector_t::FindNextLowestCeiling (vertex_t **v) const return height; } -DEFINE_ACTION_FUNCTION(_Sector, FindNextLowestCeiling) -{ - PARAM_SELF_STRUCT_PROLOGUE(sector_t); - vertex_t *v; - double h = self->FindNextLowestCeiling(&v); - if (numret > 0) ret[0].SetFloat(h); - if (numret > 1) ret[1].SetPointer(v); - return numret; -} - // // P_FindNextHighestCeiling() @@ -438,16 +386,6 @@ double sector_t::FindNextHighestCeiling (vertex_t **v) const } -DEFINE_ACTION_FUNCTION(_Sector, FindNextHighestCeiling) -{ - PARAM_SELF_STRUCT_PROLOGUE(sector_t); - vertex_t *v; - double h = self->FindNextHighestCeiling(&v); - if (numret > 0) ret[0].SetFloat(h); - if (numret > 1) ret[1].SetPointer(v); - return numret; -} - // // FIND LOWEST CEILING IN THE SURROUNDING SECTORS // @@ -486,16 +424,6 @@ double sector_t::FindLowestCeilingSurrounding (vertex_t **v) const return height; } -DEFINE_ACTION_FUNCTION(_Sector, FindLowestCeilingSurrounding) -{ - PARAM_SELF_STRUCT_PROLOGUE(sector_t); - vertex_t *v; - double h = self->FindLowestCeilingSurrounding(&v); - if (numret > 0) ret[0].SetFloat(h); - if (numret > 1) ret[1].SetPointer(v); - return numret; -} - // // FIND HIGHEST CEILING IN THE SURROUNDING SECTORS @@ -535,16 +463,6 @@ double sector_t::FindHighestCeilingSurrounding (vertex_t **v) const return height; } -DEFINE_ACTION_FUNCTION(_Sector, FindHighestCeilingSurrounding) -{ - PARAM_SELF_STRUCT_PROLOGUE(sector_t); - vertex_t *v; - double h = self->FindHighestCeilingSurrounding(&v); - if (numret > 0) ret[0].SetFloat(h); - if (numret > 1) ret[1].SetPointer(v); - return numret; -} - // // P_FindShortestTextureAround() @@ -692,14 +610,6 @@ int sector_t::FindMinSurroundingLight (int min) const return min; } -DEFINE_ACTION_FUNCTION(_Sector, FindMinSurroundingLight) -{ - PARAM_SELF_STRUCT_PROLOGUE(sector_t); - PARAM_INT(min); - auto h = self->FindMinSurroundingLight(min); - ACTION_RETURN_INT(h); -} - // // Find the highest point on the floor of the sector // @@ -739,15 +649,6 @@ double sector_t::FindHighestFloorPoint (vertex_t **v) const return height; } -DEFINE_ACTION_FUNCTION(_Sector, FindHighestFloorPoint) -{ - PARAM_SELF_STRUCT_PROLOGUE(sector_t); - vertex_t *v; - double h = self->FindHighestFloorPoint(&v); - if (numret > 0) ret[0].SetFloat(h); - if (numret > 1) ret[1].SetPointer(v); - return numret; -} // // Find the lowest point on the ceiling of the sector @@ -788,15 +689,6 @@ double sector_t::FindLowestCeilingPoint (vertex_t **v) const return height; } -DEFINE_ACTION_FUNCTION(_Sector, FindLowestCeilingPoint) -{ - PARAM_SELF_STRUCT_PROLOGUE(sector_t); - vertex_t *v; - double h = self->FindLowestCeilingPoint(&v); - if (numret > 0) ret[0].SetFloat(h); - if (numret > 1) ret[1].SetPointer(v); - return numret; -} //===================================================================================== // @@ -1056,18 +948,6 @@ double sector_t::HighestCeilingAt(const DVector2 &p, sector_t **resultsec) return check->ceilingplane.ZatPoint(pos); } -DEFINE_ACTION_FUNCTION(_Sector, HighestCeilingAt) -{ - PARAM_SELF_STRUCT_PROLOGUE(sector_t); - PARAM_FLOAT(x); - PARAM_FLOAT(y); - sector_t *s; - double h = self->HighestCeilingAt(DVector2(x, y), &s); - if (numret > 0) ret[0].SetFloat(h); - if (numret > 1) ret[1].SetPointer(s); - return numret; -} - //=========================================================================== // // Finds the lowest floor at the given position, all portals considered @@ -1091,18 +971,6 @@ double sector_t::LowestFloorAt(const DVector2 &p, sector_t **resultsec) return check->floorplane.ZatPoint(pos); } -DEFINE_ACTION_FUNCTION(_Sector, LowestFloorAt) -{ - PARAM_SELF_STRUCT_PROLOGUE(sector_t); - PARAM_FLOAT(x); - PARAM_FLOAT(y); - sector_t *s; - double h = self->LowestFloorAt(DVector2(x, y), &s); - if (numret > 0) ret[0].SetFloat(h); - if (numret > 1) ret[1].SetPointer(s); - return numret; -} - //===================================================================================== // // @@ -1152,34 +1020,6 @@ double sector_t::NextHighestCeilingAt(double x, double y, double bottomz, double } } -DEFINE_ACTION_FUNCTION(_Sector, NextHighestCeilingAt) -{ - PARAM_SELF_STRUCT_PROLOGUE(sector_t); - PARAM_FLOAT(x); - PARAM_FLOAT(y); - PARAM_FLOAT(bottomz); - PARAM_FLOAT(topz); - PARAM_INT(flags); - sector_t *resultsec; - F3DFloor *resultff; - double resultheight = self->NextHighestCeilingAt(x, y, bottomz, topz, flags, &resultsec, &resultff); - - if (numret > 2) - { - ret[2].SetPointer(resultff); - numret = 3; - } - if (numret > 1) - { - ret[1].SetPointer(resultsec); - } - if (numret > 0) - { - ret[0].SetFloat(resultheight); - } - return numret; -} - //===================================================================================== // // @@ -1230,35 +1070,6 @@ double sector_t::NextLowestFloorAt(double x, double y, double z, int flags, doub } } -DEFINE_ACTION_FUNCTION(_Sector, NextLowestFloorAt) -{ - PARAM_SELF_STRUCT_PROLOGUE(sector_t); - PARAM_FLOAT(x); - PARAM_FLOAT(y); - PARAM_FLOAT(z); - PARAM_INT(flags); - PARAM_FLOAT(steph); - sector_t *resultsec; - F3DFloor *resultff; - double resultheight = self->NextLowestFloorAt(x, y, z, flags, steph, &resultsec, &resultff); - - if (numret > 2) - { - ret[2].SetPointer(resultff); - numret = 3; - } - if (numret > 1) - { - ret[1].SetPointer(resultsec); - } - if (numret > 0) - { - ret[0].SetFloat(resultheight); - } - return numret; -} - - //=========================================================================== // // @@ -1285,18 +1096,7 @@ DEFINE_ACTION_FUNCTION(_Sector, NextLowestFloorAt) } } - DEFINE_ACTION_FUNCTION(_Sector, GetFriction) - { - PARAM_SELF_STRUCT_PROLOGUE(sector_t); - PARAM_INT(plane); - double mf; - double h = self->GetFriction(plane, &mf); - if (numret > 0) ret[0].SetFloat(h); - if (numret > 1) ret[1].SetFloat(mf); - return numret; - } - - //=========================================================================== + //=========================================================================== // // // @@ -1478,14 +1278,6 @@ DEFINE_ACTION_FUNCTION(_Sector, NextLowestFloorAt) return res; } - DEFINE_ACTION_FUNCTION(_Sector, TriggerSectorActions) - { - PARAM_SELF_STRUCT_PROLOGUE(sector_t); - PARAM_OBJECT(thing, AActor); - PARAM_INT(activation); - ACTION_RETURN_BOOL(self->TriggerSectorActions(thing, activation)); - } - //=========================================================================== // // checks if the floor is higher than the ceiling and sets a flag @@ -1782,88 +1574,3 @@ void vertex_t::RecalcVertexHeights() dirty = false; } -DEFINE_ACTION_FUNCTION(_Sector, GetPortalDisplacement) -{ - PARAM_SELF_STRUCT_PROLOGUE(sector_t); - PARAM_INT(pos); - ACTION_RETURN_VEC2(self->GetPortalDisplacement(pos)); -} - - -DEFINE_FIELD_X(Sector, sector_t, floorplane) -DEFINE_FIELD_X(Sector, sector_t, ceilingplane) -DEFINE_FIELD_X(Sector, sector_t, Colormap) -DEFINE_FIELD_X(Sector, sector_t, SpecialColors) -DEFINE_FIELD_X(Sector, sector_t, SoundTarget) -DEFINE_FIELD_X(Sector, sector_t, special) -DEFINE_FIELD_X(Sector, sector_t, lightlevel) -DEFINE_FIELD_X(Sector, sector_t, seqType) -DEFINE_FIELD_X(Sector, sector_t, sky) -DEFINE_FIELD_X(Sector, sector_t, SeqName) -DEFINE_FIELD_X(Sector, sector_t, centerspot) -DEFINE_FIELD_X(Sector, sector_t, validcount) -DEFINE_FIELD_X(Sector, sector_t, thinglist) -DEFINE_FIELD_X(Sector, sector_t, friction) -DEFINE_FIELD_X(Sector, sector_t, movefactor) -DEFINE_FIELD_X(Sector, sector_t, terrainnum) -DEFINE_FIELD_X(Sector, sector_t, floordata) -DEFINE_FIELD_X(Sector, sector_t, ceilingdata) -DEFINE_FIELD_X(Sector, sector_t, lightingdata) -DEFINE_FIELD_X(Sector, sector_t, interpolations) -DEFINE_FIELD_X(Sector, sector_t, soundtraversed) -DEFINE_FIELD_X(Sector, sector_t, stairlock) -DEFINE_FIELD_X(Sector, sector_t, prevsec) -DEFINE_FIELD_X(Sector, sector_t, nextsec) -DEFINE_FIELD_UNSIZED(Sector, sector_t, Lines) -DEFINE_FIELD_X(Sector, sector_t, heightsec) -DEFINE_FIELD_X(Sector, sector_t, bottommap) -DEFINE_FIELD_X(Sector, sector_t, midmap) -DEFINE_FIELD_X(Sector, sector_t, topmap) -DEFINE_FIELD_X(Sector, sector_t, touching_thinglist) -DEFINE_FIELD_X(Sector, sector_t, sectorportal_thinglist) -DEFINE_FIELD_X(Sector, sector_t, gravity) -DEFINE_FIELD_X(Sector, sector_t, damagetype) -DEFINE_FIELD_X(Sector, sector_t, damageamount) -DEFINE_FIELD_X(Sector, sector_t, damageinterval) -DEFINE_FIELD_X(Sector, sector_t, leakydamage) -DEFINE_FIELD_X(Sector, sector_t, ZoneNumber) -DEFINE_FIELD_X(Sector, sector_t, healthceiling) -DEFINE_FIELD_X(Sector, sector_t, healthfloor) -DEFINE_FIELD_X(Sector, sector_t, healthceilinggroup) -DEFINE_FIELD_X(Sector, sector_t, healthfloorgroup) -DEFINE_FIELD_X(Sector, sector_t, MoreFlags) -DEFINE_FIELD_X(Sector, sector_t, Flags) -DEFINE_FIELD_X(Sector, sector_t, SecActTarget) -DEFINE_FIELD_X(Sector, sector_t, Portals) -DEFINE_FIELD_X(Sector, sector_t, PortalGroup) -DEFINE_FIELD_X(Sector, sector_t, sectornum) - -DEFINE_FIELD_X(Line, line_t, v1) -DEFINE_FIELD_X(Line, line_t, v2) -DEFINE_FIELD_X(Line, line_t, delta) -DEFINE_FIELD_X(Line, line_t, flags) -DEFINE_FIELD_X(Line, line_t, activation) -DEFINE_FIELD_X(Line, line_t, special) -DEFINE_FIELD_X(Line, line_t, args) -DEFINE_FIELD_X(Line, line_t, alpha) -DEFINE_FIELD_X(Line, line_t, sidedef) -DEFINE_FIELD_X(Line, line_t, bbox) -DEFINE_FIELD_X(Line, line_t, frontsector) -DEFINE_FIELD_X(Line, line_t, backsector) -DEFINE_FIELD_X(Line, line_t, validcount) -DEFINE_FIELD_X(Line, line_t, locknumber) -DEFINE_FIELD_X(Line, line_t, portalindex) -DEFINE_FIELD_X(Line, line_t, portaltransferred) -DEFINE_FIELD_X(Line, line_t, health) -DEFINE_FIELD_X(Line, line_t, healthgroup) - -DEFINE_FIELD_X(Side, side_t, sector) -DEFINE_FIELD_X(Side, side_t, linedef) -DEFINE_FIELD_X(Side, side_t, Light) -DEFINE_FIELD_X(Side, side_t, Flags) - -DEFINE_FIELD_X(Secplane, secplane_t, normal) -DEFINE_FIELD_X(Secplane, secplane_t, D) -DEFINE_FIELD_X(Secplane, secplane_t, negiC) - -DEFINE_FIELD_X(Vertex, vertex_t, p) diff --git a/src/scripting/vmthunks.cpp b/src/scripting/vmthunks.cpp index 65953ec91..bf3fffef8 100644 --- a/src/scripting/vmthunks.cpp +++ b/src/scripting/vmthunks.cpp @@ -1,4 +1,4 @@ -//----------------------------------------------------------------------------- +s//----------------------------------------------------------------------------- // // Copyright 2016-2018 Christoph Oelckers // @@ -17,7 +17,7 @@ // //----------------------------------------------------------------------------- // -// VM thunks for simple functions. +// VM thunks for internal functions. // //----------------------------------------------------------------------------- @@ -27,6 +27,219 @@ #include "s_sound.h" #include "p_local.h" + +DEFINE_ACTION_FUNCTION(_Sector, FindLowestFloorSurrounding) +{ + PARAM_SELF_STRUCT_PROLOGUE(sector_t); + vertex_t *v; + double h = self->FindLowestFloorSurrounding(&v); + if (numret > 0) ret[0].SetFloat(h); + if (numret > 1) ret[1].SetPointer(v); + return numret; +} + + +DEFINE_ACTION_FUNCTION(_Sector, FindHighestFloorSurrounding) +{ + PARAM_SELF_STRUCT_PROLOGUE(sector_t); + vertex_t *v; + double h = self->FindHighestFloorSurrounding(&v); + if (numret > 0) ret[0].SetFloat(h); + if (numret > 1) ret[1].SetPointer(v); + return numret; +} + +DEFINE_ACTION_FUNCTION(_Sector, FindNextHighestFloor) +{ + PARAM_SELF_STRUCT_PROLOGUE(sector_t); + vertex_t *v; + double h = self->FindNextHighestFloor(&v); + if (numret > 0) ret[0].SetFloat(h); + if (numret > 1) ret[1].SetPointer(v); + return numret; +} + +DEFINE_ACTION_FUNCTION(_Sector, FindNextLowestFloor) +{ + PARAM_SELF_STRUCT_PROLOGUE(sector_t); + vertex_t *v; + double h = self->FindNextLowestFloor(&v); + if (numret > 0) ret[0].SetFloat(h); + if (numret > 1) ret[1].SetPointer(v); + return numret; +} + +DEFINE_ACTION_FUNCTION(_Sector, FindNextLowestCeiling) +{ + PARAM_SELF_STRUCT_PROLOGUE(sector_t); + vertex_t *v; + double h = self->FindNextLowestCeiling(&v); + if (numret > 0) ret[0].SetFloat(h); + if (numret > 1) ret[1].SetPointer(v); + return numret; +} + +DEFINE_ACTION_FUNCTION(_Sector, FindNextHighestCeiling) +{ + PARAM_SELF_STRUCT_PROLOGUE(sector_t); + vertex_t *v; + double h = self->FindNextHighestCeiling(&v); + if (numret > 0) ret[0].SetFloat(h); + if (numret > 1) ret[1].SetPointer(v); + return numret; +} + +DEFINE_ACTION_FUNCTION(_Sector, FindLowestCeilingSurrounding) +{ + PARAM_SELF_STRUCT_PROLOGUE(sector_t); + vertex_t *v; + double h = self->FindLowestCeilingSurrounding(&v); + if (numret > 0) ret[0].SetFloat(h); + if (numret > 1) ret[1].SetPointer(v); + return numret; +} + +DEFINE_ACTION_FUNCTION(_Sector, FindHighestCeilingSurrounding) +{ + PARAM_SELF_STRUCT_PROLOGUE(sector_t); + vertex_t *v; + double h = self->FindHighestCeilingSurrounding(&v); + if (numret > 0) ret[0].SetFloat(h); + if (numret > 1) ret[1].SetPointer(v); + return numret; +} + + +DEFINE_ACTION_FUNCTION(_Sector, FindMinSurroundingLight) +{ + PARAM_SELF_STRUCT_PROLOGUE(sector_t); + PARAM_INT(min); + auto h = self->FindMinSurroundingLight(min); + ACTION_RETURN_INT(h); +} + +DEFINE_ACTION_FUNCTION(_Sector, FindHighestFloorPoint) +{ + PARAM_SELF_STRUCT_PROLOGUE(sector_t); + vertex_t *v; + double h = self->FindHighestFloorPoint(&v); + if (numret > 0) ret[0].SetFloat(h); + if (numret > 1) ret[1].SetPointer(v); + return numret; +} +DEFINE_ACTION_FUNCTION(_Sector, FindLowestCeilingPoint) +{ + PARAM_SELF_STRUCT_PROLOGUE(sector_t); + vertex_t *v; + double h = self->FindLowestCeilingPoint(&v); + if (numret > 0) ret[0].SetFloat(h); + if (numret > 1) ret[1].SetPointer(v); + return numret; +} + +DEFINE_ACTION_FUNCTION(_Sector, HighestCeilingAt) +{ + PARAM_SELF_STRUCT_PROLOGUE(sector_t); + PARAM_FLOAT(x); + PARAM_FLOAT(y); + sector_t *s; + double h = self->HighestCeilingAt(DVector2(x, y), &s); + if (numret > 0) ret[0].SetFloat(h); + if (numret > 1) ret[1].SetPointer(s); + return numret; +} +DEFINE_ACTION_FUNCTION(_Sector, LowestFloorAt) +{ + PARAM_SELF_STRUCT_PROLOGUE(sector_t); + PARAM_FLOAT(x); + PARAM_FLOAT(y); + sector_t *s; + double h = self->LowestFloorAt(DVector2(x, y), &s); + if (numret > 0) ret[0].SetFloat(h); + if (numret > 1) ret[1].SetPointer(s); + return numret; +} + +DEFINE_ACTION_FUNCTION(_Sector, NextHighestCeilingAt) +{ + PARAM_SELF_STRUCT_PROLOGUE(sector_t); + PARAM_FLOAT(x); + PARAM_FLOAT(y); + PARAM_FLOAT(bottomz); + PARAM_FLOAT(topz); + PARAM_INT(flags); + sector_t *resultsec; + F3DFloor *resultff; + double resultheight = self->NextHighestCeilingAt(x, y, bottomz, topz, flags, &resultsec, &resultff); + + if (numret > 2) + { + ret[2].SetPointer(resultff); + numret = 3; + } + if (numret > 1) + { + ret[1].SetPointer(resultsec); + } + if (numret > 0) + { + ret[0].SetFloat(resultheight); + } + return numret; +} +DEFINE_ACTION_FUNCTION(_Sector, NextLowestFloorAt) +{ + PARAM_SELF_STRUCT_PROLOGUE(sector_t); + PARAM_FLOAT(x); + PARAM_FLOAT(y); + PARAM_FLOAT(z); + PARAM_INT(flags); + PARAM_FLOAT(steph); + sector_t *resultsec; + F3DFloor *resultff; + double resultheight = self->NextLowestFloorAt(x, y, z, flags, steph, &resultsec, &resultff); + + if (numret > 2) + { + ret[2].SetPointer(resultff); + numret = 3; + } + if (numret > 1) + { + ret[1].SetPointer(resultsec); + } + if (numret > 0) + { + ret[0].SetFloat(resultheight); + } + return numret; +} + +DEFINE_ACTION_FUNCTION(_Sector, GetFriction) +{ + PARAM_SELF_STRUCT_PROLOGUE(sector_t); + PARAM_INT(plane); + double mf; + double h = self->GetFriction(plane, &mf); + if (numret > 0) ret[0].SetFloat(h); + if (numret > 1) ret[1].SetFloat(mf); + return numret; +} +DEFINE_ACTION_FUNCTION(_Sector, TriggerSectorActions) +{ + PARAM_SELF_STRUCT_PROLOGUE(sector_t); + PARAM_OBJECT(thing, AActor); + PARAM_INT(activation); + ACTION_RETURN_BOOL(self->TriggerSectorActions(thing, activation)); +} + +DEFINE_ACTION_FUNCTION(_Sector, GetPortalDisplacement) +{ + PARAM_SELF_STRUCT_PROLOGUE(sector_t); + PARAM_INT(pos); + ACTION_RETURN_VEC2(self->GetPortalDisplacement(pos)); +} + DEFINE_ACTION_FUNCTION_NATIVE(_Sector, FindShortestTextureAround, FindShortestTextureAround) { PARAM_SELF_STRUCT_PROLOGUE(sector_t); @@ -1265,3 +1478,82 @@ DEFINE_ACTION_FUNCTION_NATIVE(AActor, A_PlaySound, A_PlaySound) A_PlaySound(self, soundid, channel, volume, looping, attenuation, local); return 0; } + + +DEFINE_FIELD_X(Sector, sector_t, floorplane) +DEFINE_FIELD_X(Sector, sector_t, ceilingplane) +DEFINE_FIELD_X(Sector, sector_t, Colormap) +DEFINE_FIELD_X(Sector, sector_t, SpecialColors) +DEFINE_FIELD_X(Sector, sector_t, SoundTarget) +DEFINE_FIELD_X(Sector, sector_t, special) +DEFINE_FIELD_X(Sector, sector_t, lightlevel) +DEFINE_FIELD_X(Sector, sector_t, seqType) +DEFINE_FIELD_X(Sector, sector_t, sky) +DEFINE_FIELD_X(Sector, sector_t, SeqName) +DEFINE_FIELD_X(Sector, sector_t, centerspot) +DEFINE_FIELD_X(Sector, sector_t, validcount) +DEFINE_FIELD_X(Sector, sector_t, thinglist) +DEFINE_FIELD_X(Sector, sector_t, friction) +DEFINE_FIELD_X(Sector, sector_t, movefactor) +DEFINE_FIELD_X(Sector, sector_t, terrainnum) +DEFINE_FIELD_X(Sector, sector_t, floordata) +DEFINE_FIELD_X(Sector, sector_t, ceilingdata) +DEFINE_FIELD_X(Sector, sector_t, lightingdata) +DEFINE_FIELD_X(Sector, sector_t, interpolations) +DEFINE_FIELD_X(Sector, sector_t, soundtraversed) +DEFINE_FIELD_X(Sector, sector_t, stairlock) +DEFINE_FIELD_X(Sector, sector_t, prevsec) +DEFINE_FIELD_X(Sector, sector_t, nextsec) +DEFINE_FIELD_UNSIZED(Sector, sector_t, Lines) +DEFINE_FIELD_X(Sector, sector_t, heightsec) +DEFINE_FIELD_X(Sector, sector_t, bottommap) +DEFINE_FIELD_X(Sector, sector_t, midmap) +DEFINE_FIELD_X(Sector, sector_t, topmap) +DEFINE_FIELD_X(Sector, sector_t, touching_thinglist) +DEFINE_FIELD_X(Sector, sector_t, sectorportal_thinglist) +DEFINE_FIELD_X(Sector, sector_t, gravity) +DEFINE_FIELD_X(Sector, sector_t, damagetype) +DEFINE_FIELD_X(Sector, sector_t, damageamount) +DEFINE_FIELD_X(Sector, sector_t, damageinterval) +DEFINE_FIELD_X(Sector, sector_t, leakydamage) +DEFINE_FIELD_X(Sector, sector_t, ZoneNumber) +DEFINE_FIELD_X(Sector, sector_t, healthceiling) +DEFINE_FIELD_X(Sector, sector_t, healthfloor) +DEFINE_FIELD_X(Sector, sector_t, healthceilinggroup) +DEFINE_FIELD_X(Sector, sector_t, healthfloorgroup) +DEFINE_FIELD_X(Sector, sector_t, MoreFlags) +DEFINE_FIELD_X(Sector, sector_t, Flags) +DEFINE_FIELD_X(Sector, sector_t, SecActTarget) +DEFINE_FIELD_X(Sector, sector_t, Portals) +DEFINE_FIELD_X(Sector, sector_t, PortalGroup) +DEFINE_FIELD_X(Sector, sector_t, sectornum) + +DEFINE_FIELD_X(Line, line_t, v1) +DEFINE_FIELD_X(Line, line_t, v2) +DEFINE_FIELD_X(Line, line_t, delta) +DEFINE_FIELD_X(Line, line_t, flags) +DEFINE_FIELD_X(Line, line_t, activation) +DEFINE_FIELD_X(Line, line_t, special) +DEFINE_FIELD_X(Line, line_t, args) +DEFINE_FIELD_X(Line, line_t, alpha) +DEFINE_FIELD_X(Line, line_t, sidedef) +DEFINE_FIELD_X(Line, line_t, bbox) +DEFINE_FIELD_X(Line, line_t, frontsector) +DEFINE_FIELD_X(Line, line_t, backsector) +DEFINE_FIELD_X(Line, line_t, validcount) +DEFINE_FIELD_X(Line, line_t, locknumber) +DEFINE_FIELD_X(Line, line_t, portalindex) +DEFINE_FIELD_X(Line, line_t, portaltransferred) +DEFINE_FIELD_X(Line, line_t, health) +DEFINE_FIELD_X(Line, line_t, healthgroup) + +DEFINE_FIELD_X(Side, side_t, sector) +DEFINE_FIELD_X(Side, side_t, linedef) +DEFINE_FIELD_X(Side, side_t, Light) +DEFINE_FIELD_X(Side, side_t, Flags) + +DEFINE_FIELD_X(Secplane, secplane_t, normal) +DEFINE_FIELD_X(Secplane, secplane_t, D) +DEFINE_FIELD_X(Secplane, secplane_t, negiC) + +DEFINE_FIELD_X(Vertex, vertex_t, p)