From 7957abe66f33c8be5b11da9a91ec37091fb9e7aa Mon Sep 17 00:00:00 2001 From: snake-biscuits <36507175+snake-biscuits@users.noreply.github.com> Date: Wed, 2 Aug 2023 03:56:35 +0100 Subject: [PATCH] (#73) `sun_angle` -> `sun_normal` --- bsp_tool/branches/respawn/apex_legends.py | 7 ++++--- bsp_tool/branches/respawn/titanfall.py | 8 ++++---- bsp_tool/branches/respawn/titanfall2.py | 8 ++++---- bsp_tool/extensions/convert/respawn.py | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/bsp_tool/branches/respawn/apex_legends.py b/bsp_tool/branches/respawn/apex_legends.py index 51f1405b..fef5a039 100644 --- a/bsp_tool/branches/respawn/apex_legends.py +++ b/bsp_tool/branches/respawn/apex_legends.py @@ -391,11 +391,12 @@ class CellAABBNode(base.Struct): # LUMP 119 (0077) class LevelInfo(base.Struct): # LUMP 123 (007B) unknown: List[int] # possibly linked to mesh flags in worldspawn? num_static_props: int # should match len(bsp.GAME_LUMP.sprp.props) [UNTESTED] - sun_angle: List[float] # sun angle vector matching last ShadowEnvironment's light_environment if r2 + sun_normal: vector.vec3 # vector matching angles of last indexed light_environment entity num_entity_models: int # matches num_models in .ent file headers ("ENTITY02 num_models=X") - __slots__ = ["unknown", "num_static_props", "sun_angle", "num_entity_models"] + __slots__ = ["unknown", "num_static_props", "sun_normal", "num_entity_models"] _format = "5I3fI" - _arrays = {"unknown": 4, "sun_angle": [*"xyz"]} + _arrays = {"unknown": 4, "sun_normal": [*"xyz"]} + _classes = {"sun_normal": vector.vec3} class MaterialSort(base.Struct): # LUMP 82 (0052) diff --git a/bsp_tool/branches/respawn/titanfall.py b/bsp_tool/branches/respawn/titanfall.py index 397b7d08..33b71255 100644 --- a/bsp_tool/branches/respawn/titanfall.py +++ b/bsp_tool/branches/respawn/titanfall.py @@ -500,11 +500,11 @@ class LevelInfo(base.Struct): # LUMP 123 (007B) first_transparent_mesh: int first_sky_mesh: int num_static_props: int # len(bsp.GAME_LUMP.sprp.props) - sun_angle: vector.vec3 # represents angle of last light_environment - __slots__ = ["first_decal_mesh", "first_transparent_mesh", "first_sky_mesh", "num_static_props", "sun_angle"] + sun_normal: vector.vec3 # vector matching angles of last indexed light_environment entity + __slots__ = ["first_decal_mesh", "first_transparent_mesh", "first_sky_mesh", "num_static_props", "sun_normal"] _format = "4I3f" - _arrays = {"sun_angle": [*"xyz"]} - _classes = {"sun_angle": vector.vec3} + _arrays = {"sun_normal": [*"xyz"]} + _classes = {"sun_normal": vector.vec3} class LightmapHeader(base.MappedArray): # LUMP 83 (0053) diff --git a/bsp_tool/branches/respawn/titanfall2.py b/bsp_tool/branches/respawn/titanfall2.py index 9cfe90b9..c105abdc 100644 --- a/bsp_tool/branches/respawn/titanfall2.py +++ b/bsp_tool/branches/respawn/titanfall2.py @@ -287,11 +287,11 @@ class ShadowEnvironment(base.Struct): first_shadow_mesh: int # first ShadowMesh in this ShadowEnvironment unknown_2: List[int] # likely indices into other lumps (vistree? nodes?) [num_] num_shadow_meshes: int # number of ShadowMeshes in this ShadowEnvironment after first_shadow_mesh - sun_angle: vector.vec3 # a unit vector indicating the angle of the sun / shadows - __slots__ = ["unknown_1", "first_shadow_mesh", "unknown_2", "num_shadow_meshes", "sun_angle"] + sun_normal: vector.vec3 # represents angle of last light_environment + __slots__ = ["unknown_1", "first_shadow_mesh", "unknown_2", "num_shadow_meshes", "sun_normal"] _format = "6i3f" - _arrays = {"unknown_1": 2, "unknown_2": 2, "sun_angle": [*"xyz"]} - _classes = {"sun_angle": vector.vec3} + _arrays = {"unknown_1": 2, "unknown_2": 2, "sun_normal": [*"xyz"]} + _classes = {"sun_normal": vector.vec3} # classes for special lumps, in alphabetical order: diff --git a/bsp_tool/extensions/convert/respawn.py b/bsp_tool/extensions/convert/respawn.py index fdcabd50..291aa622 100644 --- a/bsp_tool/extensions/convert/respawn.py +++ b/bsp_tool/extensions/convert/respawn.py @@ -39,7 +39,7 @@ def titanfall_to_titanfall2(r1_bsp, outdir="./"): sun_vector = sun_vector.rotate(z=yaw) shadow_env = r2.ShadowEnvironment(unknown_1=(0, 0), first_shadow_mesh=0, unknown_2=(1, 0), num_shadow_meshes=len(r1_bsp.SHADOW_MESHES), - angle_vector=sun_vector) + sun_normal=sun_vector) r1_bsp.SHADOW_ENVIRONMENTS = [shadow_env] light_env["lightEnvironmentIndex"] = "*0" # Entities