Index: source/tools/entity/checkrefs.pl =================================================================== --- source/tools/entity/checkrefs.pl +++ source/tools/entity/checkrefs.pl @@ -176,6 +176,18 @@ push @deps, [ $path, "art/textures/ui/session/portraits/" . $ent->{Entity}{Identity}{Icon}{' content'} ] if $ent->{Entity}{Identity}{Icon} and $ent->{Entity}{Identity}{Icon}{' content'} ne ''; } + if ($ent->{Entity}{Heal} and $ent->{Entity}{Heal}{RangeOverlay}) + { + push @deps, [ $path, "art/textures/selection/" . $ent->{Entity}{Heal}{RangeOverlay}{LineTexture}{' content'} ] if $ent->{Entity}{Heal}{RangeOverlay}{LineTexture} and $ent->{Entity}{Heal}{RangeOverlay}{LineTexture}{' content'} ne ''; + push @deps, [ $path, "art/textures/selection/" . $ent->{Entity}{Heal}{RangeOverlay}{LineTextureMask}{' content'} ] if $ent->{Entity}{Heal}{RangeOverlay}{LineTextureMask} and $ent->{Entity}{Heal}{RangeOverlay}{LineTextureMask}{' content'} ne ''; + } + + if ($ent->{Entity}{Selectable} and $ent->{Entity}{Selectable}{Overlay} and $ent->{Entity}{Selectable}{Overlay}{Texture}) + { + push @deps, [ $path, "art/textures/selection/" . $ent->{Entity}{Selectable}{Overlay}{Texture}{MainTexture}{' content'} ] if $ent->{Entity}{Selectable}{Overlay}{Texture}{MainTexture} and $ent->{Entity}{Selectable}{Overlay}{Texture}{MainTexture}{' content'} ne ''; + push @deps, [ $path, "art/textures/selection/" . $ent->{Entity}{Selectable}{Overlay}{Texture}{MainTextureMask}{' content'} ] if $ent->{Entity}{Selectable}{Overlay}{Texture}{MainTextureMask} and $ent->{Entity}{Selectable}{Overlay}{Texture}{MainTextureMask}{' content'} ne ''; + } + if ($ent->{Entity}{Formation}) { push @deps, [ $path, "art/textures/ui/session/icons/" . $ent->{Entity}{Formation}{Icon}{' content'} ] if $ent->{Entity}{Formation}{Icon} and $ent->{Entity}{Formation}{Icon}{' content'} ne ''; @@ -443,7 +455,7 @@ } else { - my $xml = XMLin(vfs_to_physical($f), ForceArray => [qw(object script action sprite image)], KeyAttr => [], KeepRoot => 1) or die "Failed to parse '$f': $!"; + my $xml = XMLin(vfs_to_physical($f), ForceArray => [qw(object script action sprite image include)], KeyAttr => [], KeepRoot => 1) or die "Failed to parse '$f': $!"; my $name = (keys %$xml)[0]; if ($name eq 'objects' or $name eq 'object') { @@ -453,9 +465,26 @@ if ($_->{directory}) { # If including an entire directory, find all the *.js files - push @deps, [ $f, $_ ] for find_files($_->{directory}, 'js') + push @deps, [ $f, $_ ] for find_files($_->{directory}, 'js'); } } + + for(grep ref $_ , @{$xml->{objects}{object}}) + { + if($_->{include}) + { + foreach my $include (@{$_->{include}}) + { + push @deps, [ $f, $include->{file} ] if $include->{file}; + if ($include->{directory}) + { + # If including an entire directory, find all the *.xml files + push @deps, [ $f, $_ ] for find_files($include->{directory}, 'xml'); + } + } + } + } + my $add_objects; $add_objects = sub {