mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-06-10 16:24:45 -07:00
new protocol testing code
This commit is contained in:
parent
a8c45fda1a
commit
dbd3af8265
8 changed files with 364 additions and 0 deletions
56
common/protocol_info.pl
Executable file
56
common/protocol_info.pl
Executable file
|
|
@ -0,0 +1,56 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
open(file, "protocol_info.dat");
|
||||
while (<file>) {
|
||||
s/\s+$//;
|
||||
@line = split(/:/);
|
||||
$type = shift(@line);
|
||||
if ($type == 0) {
|
||||
$baseClass = 'Command';
|
||||
} elsif ($type == 1) {
|
||||
$baseClass = 'ChatCommand';
|
||||
} else {
|
||||
$baseClass = 'GameCommand';
|
||||
}
|
||||
|
||||
$name1 = shift(@line);
|
||||
$className = 'Command_' . shift(@line);
|
||||
print "class $className : public $baseClass {\n"
|
||||
. "private:\n";
|
||||
$paramStr1 = '';
|
||||
$paramStr2 = '';
|
||||
$paramStr3 = '';
|
||||
$paramStr4 = '';
|
||||
while ($param = shift(@line)) {
|
||||
($key, $value) = split(/,/, $param);
|
||||
$prettyVarName = $value;
|
||||
if (!($paramStr1 eq '')) {
|
||||
$paramStr1 .= ', ';
|
||||
}
|
||||
$paramStr2 .= ", $prettyVarName(_$prettyVarName)";
|
||||
$paramStr3 .= "\t\tparameters.insert(\"$value\", $prettyVarName);\n";
|
||||
if ($key == 'b') {
|
||||
$dataType = 'bool';
|
||||
$paramStr1 .= "bool _$prettyVarName = false";
|
||||
} elsif ($key == 's') {
|
||||
$dataType = 'QString';
|
||||
$paramStr1 .= "const QString &_$prettyVarName = QString()";
|
||||
} elsif ($key == 'i') {
|
||||
$dataType = 'int';
|
||||
$paramStr1 .= "int _$prettyVarName = -1";
|
||||
}
|
||||
$first = substr($prettyVarName, 0, 1);
|
||||
$first =~ tr/a-z/A-Z/;
|
||||
$prettyVarName2 = $first . substr($prettyVarName, 1, length($prettyVarName));
|
||||
$paramStr4 .= "\t$dataType get$prettyVarName2() const { return $prettyVarName; }\n";
|
||||
print "\t$dataType $value;\n";
|
||||
}
|
||||
print "public:\n";
|
||||
print "\t$className($paramStr1)\n\t\t: $baseClass(\"$name1\")$paramStr2\n"
|
||||
. "\t{\n";
|
||||
print $paramStr3;
|
||||
print "\t}\n";
|
||||
print $paramStr4;
|
||||
print "};\n";
|
||||
}
|
||||
close(file);
|
||||
Loading…
Add table
Add a link
Reference in a new issue