diff options
author | Haru <haru@dotalux.com> | 2014-11-15 04:00:54 +0100 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2014-11-15 11:47:30 +0300 |
commit | 61fc83fd7dd51e9a88ac7e6264692fcf561a37f7 (patch) | |
tree | ddaca2f239f7f96c6f96ec70f6af9fbe87e5c033 /tools/HPMHookGen/HPMDataCheckGen.pl | |
parent | 7456ee13ea06a28e1b9bf9d53ff7138fe40bf0aa (diff) | |
download | hercules-61fc83fd7dd51e9a88ac7e6264692fcf561a37f7.tar.gz hercules-61fc83fd7dd51e9a88ac7e6264692fcf561a37f7.tar.bz2 hercules-61fc83fd7dd51e9a88ac7e6264692fcf561a37f7.tar.xz hercules-61fc83fd7dd51e9a88ac7e6264692fcf561a37f7.zip |
Corrected an issue in the HPMHookGen when interfaces only have one member
- Fixed hooks/symbols generation for the inter_quest interface
- Re-enabled strict mode
Signed-off-by: Haru <haru@dotalux.com>
Diffstat (limited to 'tools/HPMHookGen/HPMDataCheckGen.pl')
-rw-r--r-- | tools/HPMHookGen/HPMDataCheckGen.pl | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/tools/HPMHookGen/HPMDataCheckGen.pl b/tools/HPMHookGen/HPMDataCheckGen.pl index f950152d1..01728341d 100644 --- a/tools/HPMHookGen/HPMDataCheckGen.pl +++ b/tools/HPMHookGen/HPMDataCheckGen.pl @@ -20,17 +20,18 @@ my %out; foreach my $file (@files) { my $xml = new XML::Simple; - my $data = $xml->XMLin($file); - next unless $data->{compounddef}->{includes}; # means its a struct from a .c file, plugins cant access those so we don't care. - next if $data->{compounddef}->{compoundname} =~ /::/; # its a duplicate with a :: name e.g. struct script_state {<...>} ay; - my @filepath = split(/[\/\\]/, $data->{compounddef}->{location}->{file}); + my $data = $xml->XMLin($file, ForceArray => 1); + my $filekey = (keys $data->{compounddef})[0]; + next unless $data->{compounddef}->{$filekey}->{includes}; # means its a struct from a .c file, plugins cant access those so we don't care. + next if $data->{compounddef}->{$filekey}->{compoundname}->[0] =~ /::/; # its a duplicate with a :: name e.g. struct script_state {<...>} ay; + my @filepath = split(/[\/\\]/, $data->{compounddef}->{$filekey}->{location}->[0]->{file}); my $foldername = uc($filepath[-2]); my $filename = uc($filepath[-1]); $filename =~ s/-/_/g; $filename =~ s/\.[^.]*$//; my $plugintypes = 'SERVER_TYPE_UNKNOWN'; $plugintypes = 'SERVER_TYPE_ALL' if $foldername eq 'COMMON'; $plugintypes = "SERVER_TYPE_${foldername}" if $foldername =~ /^(LOGIN|CHAR|MAP)/; my $symboldata = { - name => $data->{compounddef}->{compoundname}, + name => $data->{compounddef}->{$filekey}->{compoundname}->[0], type => $plugintypes, }; my $name = "${foldername}_${filename}_H"; |