mirror of
https://gitea.wildfiregames.com/0ad/0ad.git
synced 2026-11-08 10:54:00 +00:00
Several categories of session UI textures were falsely reported as
unused because checkrefs only parsed XML/JSON data files and missed
texture references buried in JavaScript runtime logic.
Entity templates:
- Parse <Identity><Rank> to track session/icons/ranks/{rank}.png
- Parse <Minimap><Icon> to track session/icons/minimap/{icon}.png
Data-driven JSON files:
- Add add_resources(): scan simulation/data/resources/*.json for
resource 'code' fields -> session/icons/resources/{code}.png
- Add add_status_effects(): scan simulation/data/status_effects/*.json
for 'icon' fields -> session/icons/status_effects/{icon}.png
Technology files:
- In add_techs(): detect phase_*.json base techs (e.g. phase_city.json)
and add session/panel_phase_emblems_{phase}.png as a dep
JS scanning (extended):
- Extend the GUI JS literal-path regex to also recognise:
- 'texture:' sprite modifier prefix
- full 'art/textures/ui/...' literal paths
- bare 'session/...' paths used as runtime sprite components
- Also scan simulation/components, simulation/helpers and globalscripts
JS files (registered as roots) with the same regex so textures
referenced from simulation code are tracked
- Add _add_unit_action_icon_deps(): parse unit_actions.js for
'icon': 'X.png' properties -> session/icons/X
- Add _add_status_bar_icon_deps(): parse StatusBars.js AddBar() calls
for bar type strings -> session/icons/{type}_bg/fg.png
- Add _add_stance_icon_deps(): parse g_Stances in UnitAI.js for
selectable stance keys -> session/icons/stances/{stance}.png
Checkrefs.py
Description
This script checks the game files for missing dependencies, unused files, and for file integrity. If mods are specified, all their dependencies are also checked recursively. This script is particularly useful to detect broken actors or templates.
Requirements
- Python 3.6+ interpreter installed
- lxml for the -a option.
Usage
- cd in
source/tools/entityand run the script.
usage: checkrefs.py [-h] [-u] [-x] [-a] [-t] [-m MOD [MOD ...]]
Checks the game files for missing dependencies, unused files, and for file integrity.
options:
-h, --help show this help message and exit
-u, --check-unused check for all the unused files in the given mods and their dependencies.
Implies --check-map-xml. Currently yields a lot of false positives.
-x, --check-map-xml check maps for missing actor and templates.
-a, --validate-actors
run the validator.py script to check if the actors files have extra or
missing textures.
-t, --validate-templates
run the validator.py script to check if the xml files match their (.rng)
grammar file.
-m MOD [MOD ...], --mods MOD [MOD ...]
specify which mods to check. Default to public.