Mercurial > hg > batmud > misc
changeset 258:8f3c5d3ea25a misc
Add value translation helper functions.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Sun, 08 Mar 2015 04:59:36 +0200 |
parents | 8ba1da42b219 |
children | acc3adbd65aa |
files | materials/parsematerial.pl |
diffstat | 1 files changed, 46 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/materials/parsematerial.pl Sun Mar 08 02:55:46 2015 +0200 +++ b/materials/parsematerial.pl Sun Mar 08 04:59:36 2015 +0200 @@ -281,6 +281,8 @@ }, ); +my %revTransTable = (); + my @fieldInfo = ( { "i" => 1, "f" => "name", "w" => 15, "l" => "Name", "s" => "Name" }, { "i" => 2, "f" => "weight", "w" => 10, "l" => "Weight", "s" => "Weight" }, @@ -307,6 +309,41 @@ ); +sub ptranslate($$) +{ + if (defined($revTransTable{$_[0]}{$_[1]})) + { + return $revTransTable{$_[0]}{$_[1]}; + } + else + { + die("$0: Unknown REVERSE translation table type ".$_[0]." : ".$_[1]."\n"); + } +} + +sub pt($$) +{ + return ptranslate($_[1], $_[0]{$_[1]}) +} + +sub pta($$) +{ + return map { ptranslate($_[1], $_) } @{$_[0]{$_[1]}}; +} + +sub mtranslate($$) +{ + if (defined($transTable{$_[0]}{$_[1]})) + { + return $transTable{$_[0]}{$_[1]}; + } + else + { + die("$0: Unknown translation table type ".$_[0]." : ".$_[1]."\n"); + } +} + + ### ### Check options ### @@ -428,6 +465,15 @@ # Create list of known types my @matTypes = sort { $a cmp $b } keys %matByType; +# Create reverse translation table +foreach my $mid (keys %transTable) +{ + foreach my $mkey (keys %{$transTable{$mid}}) + { + $revTransTable{$mid}{$transTable{$mid}{$mkey}} = $mkey; + } +} + ### ### Output functionality begins here