2V2-e.5c: live smoke on c1, show the map behind the actor
The live run passed its checks, but the screenshot showed wolves floating over a ground that ended at the actor's feet. Native heights were right (every actor meets sample_height); two Metin2World settings written for metre units culled the terrain in this cm-scaled scene: the .msenv depth fog (120-520) and the terrain patch visibility_range_end (3500). The 3D surface now turns the legacy fog off (fog belongs to the recorded D3DRS_FOG* state, off until SetEnvironmentData is ported) and builds one mesh per tile. The render test checks that every actor (draws grouped by world matrix) stands on the map and that the map behind the actor shows texture. mouse.cfg, written by 40250 uitaskbar.py at runtime, is ignored. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
5a1df57e69
commit
157f7c3bb4
@@ -141,6 +141,9 @@ func _load_terrain(draw: Dictionary) -> void:
|
||||
terrain.set("assets_root", "pack://")
|
||||
terrain.set("map_path", map_path)
|
||||
terrain.set("load_radius_tiles", 1)
|
||||
# One mesh per 256 m tile: split patches carry a visibility_range_end meant for metres, which in
|
||||
# this cm scene culled every patch beyond 35 m (the map behind the actor vanished).
|
||||
terrain.set("terrain_patches", 1)
|
||||
terrain.set("objects_enabled", false)
|
||||
terrain.set("water_enabled", false)
|
||||
terrain.call("set_collision_enabled", false)
|
||||
@@ -173,6 +176,12 @@ func _load_terrain(draw: Dictionary) -> void:
|
||||
# WorldEnv from .msenv replaces the black environment created before map load.
|
||||
if terrain_report.get("env_ok", false):
|
||||
environment.environment = null
|
||||
# Its depth fog is in legacy metres, but this scene is in cm, so it fogged everything past
|
||||
# ~5 m and hid the terrain behind the actor. Fog belongs to the recorded D3DRS_FOG* state,
|
||||
# which stays off until CPythonBackground::SetEnvironmentData is ported.
|
||||
var map_environment := terrain.get_node_or_null("WorldEnv") as WorldEnvironment
|
||||
if map_environment and map_environment.environment:
|
||||
map_environment.environment.fog_enabled = false
|
||||
|
||||
func _map_for_position(global_cm: Vector2) -> String:
|
||||
if _atlas.is_empty():
|
||||
|
||||
Reference in New Issue
Block a user