From 7286e514f0fe6ebaa69769181708e692d1f993c5 Mon Sep 17 00:00:00 2001 From: pudingus <39903631+pudingus@users.noreply.github.com> Date: Sat, 28 Nov 2020 17:05:21 +0100 Subject: [PATCH] Fix incorrect sector min max --- scripts/max4ds/4ds_export.ms | 15 +++++++++------ scripts/max4ds/4ds_parser.ms | 4 ++-- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/scripts/max4ds/4ds_export.ms b/scripts/max4ds/4ds_export.ms index 0e79535..b2c54c2 100644 --- a/scripts/max4ds/4ds_export.ms +++ b/scripts/max4ds/4ds_export.ms @@ -472,16 +472,11 @@ rollout MafiaTools_4dsExport "" ( --module sector.flags2 = 0 if version == #mafia then ( sector.mesh = snapshotAsMesh mnode.baseNode - sector.dmin = mnode.baseNode.min * unitscale - sector.dmax = mnode.baseNode.max * unitscale util.TransformVerts sector.mesh unitscale ) else ( sector.mesh = copy mnode.baseNode.mesh - sector.dmin = in coordsys local mnode.baseNode.min * unitscale - sector.dmax = in coordsys local mnode.baseNode.max * unitscale - local baseNode = mnode.baseNode local scl = scaleMatrix [unitscale,unitscale,unitscale] @@ -496,7 +491,15 @@ rollout MafiaTools_4dsExport "" ( --module sector.flags1 = sgp.sectorFlags1 sector.flags2 = sgp.sectorFlags2 ) - + + local size = 1.0e16 + sector.dmin = [size, size, size] + sector.dmax = [-size, -size, -size] + + for vertId = 1 to sector.mesh.numverts do ( + local vert = getVert sector.mesh vertId + MinMax sector.dmin sector.dmax vert + ) for portalNode in mnode.portals do ( diff --git a/scripts/max4ds/4ds_parser.ms b/scripts/max4ds/4ds_parser.ms index a4c269c..4f5c7b5 100644 --- a/scripts/max4ds/4ds_parser.ms +++ b/scripts/max4ds/4ds_parser.ms @@ -1127,7 +1127,7 @@ rollout MafiaTools_4dsParser "" ( --module struct TGlow ( position, --float, screen offset - unknown = 0.0, --float, only HD2 and Chameleon + unknown = 1.0, --float, only HD2 and Chameleon -- u16, 0 == no_texture, 1..N == materials -- zero is invalid here, crashes the game @@ -1154,7 +1154,7 @@ rollout MafiaTools_4dsParser "" ( --module WriteU8 f mglows.count for mglow in mglows do ( WriteFloatSafe f mglow.position - if version != #mafia do WriteFloatSafe f 0.0 + if version != #mafia do WriteFloatSafe f mglow.unknown WriteU16 f mglow.matId if mglow.matId == 0 do throw "TGlow.matId cannot be zero" )