|
|
1 month ago | |
|---|---|---|
| .. | ||
| README.md | 1 month ago | |
| campaign_state.json | 1 month ago | |
| hannibal_path.json | 1 month ago | |
| valid_provinces.json | 2 months ago | |
This directory contains campaign map resources for the Mediterranean strategic map.
Inked Cartography Path Lines
Spline-Smoothed Routes
Double-Stroke Coastlines
Province Fills with Parchment Texture
Cinematic Camera Defaults
New shaders for enhanced rendering (in assets/shaders/):
campaign_terrain.vert/.frag - Height-displaced terrain with hillshade and AOcampaign_stroke.vert/.frag - Improved stroke rendering with ink texturecampaign_province.vert/.frag - Province fills with parchment texturecampaign_badge.vert/.frag - Mission marker badges (shield, seal, banner)campaign_symbol.vert/.frag - Cartographic symbols (mountains, cities, ports)campaign_coastline.frag - Double-stroke coastline renderingui/campaign_map_render_utils.h provides:
campaign_base_color.png - Base terrain texture for the Mediterranean mapcampaign_water.png - Water texturecoastlines_uv.json - Coastline geometry in UV spacerivers_uv.json - River geometry in UV spaceland_mesh.bin - Binary land mesh dataterrain_height.png - 16-bit heightmap (ETOPO2022 60s bedrock) for terrain reliefterrain_height.json - Heightmap metadata (min/max meters, size, dataset)hannibal_path.json - Hannibal's campaign route visualization with coastline-aware paths
tools/map_pipeline/hannibal_path.pyprovinces.json - Generated province boundaries and metadata (generated by tools/map_pipeline/provinces.py)valid_provinces.json - Province ID validation and mission mappingThe valid_provinces.json file serves as the single source of truth for valid province IDs and their mapping to missions.
The following province IDs are generated by tools/map_pipeline/provinces.py:
iberia_carthaginian - Carthaginian Iberiaiberia_interior - Iberian Interiortransalpine_gaul - Transalpine Gaul (Rhône region)cisalpine_gaul - Cisalpine Gaul (Northern Italy)etruria - Etruria (Central Italy)roman_core - Roman Core (Rome and surroundings)southern_italy - Southern Italy (includes Apulia/Cannae region)sicily_roman - Roman-controlled Sicilysicily_carthaginian - Carthaginian-controlled Sicilysardinia - Sardiniacorsica - Corsicacarthage_core - Carthage and surrounding territorynumidia - Numidia (Western North Africa)libya - Libya (Eastern North Africa)illyria - Illyria (Balkans)Missions reference provinces via world_region_id field in campaign JSON files:
crossing_the_rhone → transalpine_gaulbattle_of_ticino → cisalpine_gaulbattle_of_trebia → cisalpine_gaulbattle_of_trasimene → etruriabattle_of_cannae → southern_italycampania_campaign → southern_italycrossing_the_alps → cisalpine_gaulbattle_of_zama → carthage_corevalid_provinces.json when adding new missions or featuresprovinces.pyMediterraneanMapPanel.qml) should reference these validated IDsprovinces.py, update valid_provinces.json accordinglysouthern_italy)To regenerate the provinces.json file:
cd tools/map_pipeline
python3 provinces.py
This will update the province boundaries, triangulation, and borders based on the definitions in provinces.py.