port: CMapOutdoor + PythonBackground + minimap (1:1 40250)

GameLib map/area/terrain units, PRTerrainLib Terrain/TextureSet,
PythonBackground(+Module) and ColorTransitionHelper ported verbatim;
pending stand-ins and background module stubs removed. Hand edits:
BeginEnvironment's pointer tag via uintptr_t, LoadWaterMap reads the
file's 32-bit longs. Terrain draw passes stay platform no-ops (Godot
draws the terrain). RecordingDevice gains textures, buffers and render
targets; orthographic draws become UI commands so CPythonMiniMap's
masked tiles show through minimap_image_filter in python_ui_surface.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
shenlei
2026-09-24 03:50:09 +09:00
co-authored by Claude Opus 5.5
parent b69116992c
commit 2ead95756e
100 changed files with 17679 additions and 1514 deletions
+8
View File
@@ -226,6 +226,14 @@ func run() -> void:
# Every texture name gets its own texture (face, body, hair are not one material).
_check(distinct_textures.size() == textures.size(),
"one texture per texture name (%d of %d)" % [distinct_textures.size(), textures.size()])
# CPythonMiniMap renders the outdoor map's minimap.dds tiles through minimap_image_filter.dds;
# the orthographic draws reach the UI stream as masked images.
var minimap_tiles := 0
for command in Metin2PythonHost.ui_render_commands():
if command.has("mask") and String(command["text"]).ends_with("minimap.dds"):
minimap_tiles += 1
report["minimap_tiles"] = minimap_tiles
_check(minimap_tiles > 0, "minimap tiles drawn through the filter mask (%d)" % minimap_tiles)
var bounds := []
for instance in world.find_children("Draw*", "MeshInstance3D", false, false):
if instance.visible and instance.mesh: