mirror of
https://mirror.ghproxy.com/https://github.com/dexyfex/CodeWalker
synced 2024-11-26 08:52:52 +08:00
Generate LOD Lights streetLight research, fix for MenyooXML import static objects
This commit is contained in:
parent
449fcb7424
commit
0790169e2e
@ -218,12 +218,16 @@ namespace CodeWalker.Project.Panels
|
|||||||
|
|
||||||
uint h = 0; //TODO: what hash to use???
|
uint h = 0; //TODO: what hash to use???
|
||||||
|
|
||||||
|
//any other way to know if it's a streetlight?
|
||||||
|
var name = ent.Archetype.Name;
|
||||||
|
bool isStreetLight = (name != null) && (name.Contains("street") || name.Contains("traffic"));
|
||||||
|
|
||||||
//@Calcium:
|
//@Calcium:
|
||||||
//1 = point
|
//1 = point
|
||||||
//2 = spot
|
//2 = spot
|
||||||
//4 = capsule
|
//4 = capsule
|
||||||
uint type = la.Type;
|
uint type = la.Type;
|
||||||
uint unk = 1;//that is this? 2 bits
|
uint unk = isStreetLight ? 1u : 0;//2 bits - isStreetLight low bit, unk high bit
|
||||||
uint t = la.TimeFlags + (type << 26) + (unk << 24);
|
uint t = la.TimeFlags + (type << 26) + (unk << 24);
|
||||||
|
|
||||||
var maxext = (byte)Math.Max(Math.Max(la.ExtentX, la.ExtentY), la.ExtentZ);
|
var maxext = (byte)Math.Max(Math.Max(la.ExtentX, la.ExtentY), la.ExtentZ);
|
||||||
@ -240,7 +244,7 @@ namespace CodeWalker.Project.Panels
|
|||||||
coneOuterAngleOrCapExt.Add(Math.Max((byte)la.ConeOuterAngle, maxext));
|
coneOuterAngleOrCapExt.Add(Math.Max((byte)la.ConeOuterAngle, maxext));
|
||||||
coronaIntensity.Add((byte)(la.CoronaIntensity*6));
|
coronaIntensity.Add((byte)(la.CoronaIntensity*6));
|
||||||
|
|
||||||
|
//final lights should be sorted by isStreetLight (1 first!) and then hash
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -261,7 +265,8 @@ namespace CodeWalker.Project.Panels
|
|||||||
var ll = new YmapLODLights();
|
var ll = new YmapLODLights();
|
||||||
var dl = new YmapDistantLODLights();
|
var dl = new YmapDistantLODLights();
|
||||||
var cdl = new CDistantLODLight();
|
var cdl = new CDistantLODLight();
|
||||||
cdl.category = 1;
|
cdl.category = 1;//0=small, 1=med, 2=large
|
||||||
|
cdl.numStreetLights = 0;//todo?
|
||||||
dl.CDistantLODLight = cdl;
|
dl.CDistantLODLight = cdl;
|
||||||
dl.positions = position.ToArray();
|
dl.positions = position.ToArray();
|
||||||
dl.colours = colour.ToArray();
|
dl.colours = colour.ToArray();
|
||||||
|
@ -2042,7 +2042,7 @@ namespace CodeWalker.Project
|
|||||||
cent.rotation = placement.Rotation;
|
cent.rotation = placement.Rotation;
|
||||||
cent.scaleXY = 1.0f;
|
cent.scaleXY = 1.0f;
|
||||||
cent.scaleZ = 1.0f;
|
cent.scaleZ = 1.0f;
|
||||||
cent.flags = placement.Dynamic ? 32u : 0;// 1572872; //?
|
cent.flags = placement.Dynamic ? 0 : 32u;// 1572872; //32 = static
|
||||||
cent.parentIndex = -1;
|
cent.parentIndex = -1;
|
||||||
cent.lodDist = placement.LodDistance;
|
cent.lodDist = placement.LodDistance;
|
||||||
cent.lodLevel = rage__eLodType.LODTYPES_DEPTH_ORPHANHD;
|
cent.lodLevel = rage__eLodType.LODTYPES_DEPTH_ORPHANHD;
|
||||||
|
Loading…
Reference in New Issue
Block a user