mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-12 09:31:30 +00:00
73 lines
1.6 KiB
Perl
73 lines
1.6 KiB
Perl
#!/usr/bin/perl
|
|
|
|
my $date = $ARGV[0];
|
|
my $opcodes_out = $ARGV[1];
|
|
|
|
my %opcodes = ();
|
|
|
|
open(F, "<worldopcodes.xml") || die "Unable to open worldopcodes.xml";
|
|
while(<F>) {
|
|
chomp;
|
|
next unless (/updated="$date"/);
|
|
if(/^.*id="([0-9a-fA-F]+)".*name="(OP_[^"]+)".*$/) {
|
|
$opcodes{$2} = $1;
|
|
}
|
|
}
|
|
close(F);
|
|
open(F, "<zoneopcodes.xml") || die "Unable to open zoneopcodes.xml";
|
|
while(<F>) {
|
|
chomp;
|
|
next unless (/updated="$date"/);
|
|
if(/^.*id="([0-9a-fA-F]+)".*name="(OP_[^"]+)".*$/) {
|
|
$opcodes{$2} = $1;
|
|
}
|
|
}
|
|
close(F);
|
|
|
|
my %fixes = (
|
|
'OP_TributeInfo' => 'OP_SendTributes',
|
|
'OP_CancelInvite' => 'OP_GroupCancelInvite',
|
|
'OP_GMFind' => 'OP_FindPersonRequest',
|
|
'OP_CommonMessage' => 'OP_ChannelMessage',
|
|
'OP_FindResponse' => 'OP_FindPersonReply',
|
|
'OP_SpawnRename' => 'OP_MobRename',
|
|
'OP_SendZonePoints' => 'OP_SendZonepoints',
|
|
'OP_RequestZoneChange' => 'OP_RequestClientZoneChange',
|
|
'OP_Lockouts' => 'OP_LockoutTimerInfo',
|
|
'OP_GuildList' => 'OP_ZoneGuildList',
|
|
'OP_Action2' => 'OP_Damage'
|
|
);
|
|
|
|
foreach my $seq (keys(%fixes)) {
|
|
if(defined($opcodes{$seq})) {
|
|
$opcodes{ $fixes{$seq} } = $opcodes{$seq};
|
|
delete($opcodes{$seq});
|
|
}
|
|
}
|
|
|
|
open(F, "<$opcodes_out") || die "Unable to open $opcodes_out";
|
|
while(<F>) {
|
|
chomp;
|
|
my $line = $_;
|
|
$line =~ s/# ShowEQ [0-9\/]+//g;
|
|
my $found = 0;
|
|
foreach my $op (keys(%opcodes)) {
|
|
if($line =~ /^$op=0x.*$/) {
|
|
print "$op=0x".$opcodes{$op}."\t\t\t# ShowEQ $date\n";
|
|
delete($opcodes{$op});
|
|
$found = 1;
|
|
last;
|
|
}
|
|
}
|
|
if(!$found) {
|
|
print "$line\n";
|
|
}
|
|
}
|
|
close(F);
|
|
|
|
foreach my $op (keys(%opcodes)) {
|
|
print "# Unmatched: $op=0x".$opcodes{$op}."\n";
|
|
}
|
|
|
|
|