changeset 318:c12fd8e5c1b0 misc

Simplify things regarding organ/organic, inorg/inorganic a bit, at the cost of some refactoring of variable handling.
author Matti Hamalainen <ccr@tnsp.org>
date Wed, 30 Dec 2015 14:14:36 +0200
parents a4dff42fc40e
children 32c434c34238
files materials/parsematerial.pl
diffstat 1 files changed, 34 insertions(+), 23 deletions(-) [+]
line wrap: on
line diff
--- a/materials/parsematerial.pl	Wed Dec 30 12:21:00 2015 +0200
+++ b/materials/parsematerial.pl	Wed Dec 30 14:14:36 2015 +0200
@@ -16,7 +16,8 @@
 #
 # Data translation table generated with csv2transtab.pl
 #
-my %transTable = (
+my $transTable =
+{
   2 => {
     "very light" => 0,
     "light" => 1,
@@ -279,8 +280,11 @@
     "slab" => 48,
     "flare" => 49,
   },
+};
 
-  99 => {
+my $transFixes =
+{
+  16 => {
     "Organic" => 0,
     "Cloth" => 1,
     "Paper" => 2,
@@ -293,9 +297,10 @@
     "Glass" => 9,
     "Gem" => 10,
   },
-);
+};
 
-my %revTransTable = ();
+
+my $revTransTable = {};
 
 my @fieldInfo = (
   { "i" =>  1, "f" => "name",		"w" => 15, "l" => "Name",		"s" => "Name"		},
@@ -325,9 +330,9 @@
 
 sub ptranslate($$)
 {
-  if (defined($revTransTable{$_[0]}{$_[1]}))
+  if (defined($$revTransTable{$_[0]}{$_[1]}))
   {
-    return $revTransTable{$_[0]}{$_[1]};
+    return $$revTransTable{$_[0]}{$_[1]};
   }
   else
   {
@@ -350,9 +355,9 @@
 
 sub mtranslate($$)
 {
-  if (defined($transTable{$_[0]}{$_[1]}))
+  if (defined($$transTable{$_[0]}{$_[1]}))
   {
-    return $transTable{$_[0]}{$_[1]};
+    return $$transTable{$_[0]}{$_[1]};
   }
   else
   {
@@ -481,6 +486,12 @@
   }
 }
 
+# Fix material types
+foreach my $mid (keys %$transFixes)
+{
+  $$transTable{$mid} = $$transFixes{$mid};
+}
+
 # Sort the entries by name
 my @entries = sort { $a cmp $b } keys %$data;
 
@@ -492,14 +503,14 @@
 }
 
 # List of known types
-my %matTypes = %{$transTable{16}};
+my $matTypes = $$transTable{16};
 
 # Create reverse translation table
-foreach my $mid (keys %transTable)
+foreach my $mid (keys %$transTable)
 {
-  foreach my $mkey (keys %{$transTable{$mid}})
+  foreach my $mkey (keys %{$$transTable{$mid}})
   {
-    $revTransTable{$mid}{$transTable{$mid}{$mkey}} = $mkey;
+    $$revTransTable{$mid}{$$transTable{$mid}{$mkey}} = $mkey;
   }
 }
 
@@ -607,14 +618,14 @@
 elsif ($opt_mode eq "-tf")
 {
   print "/set gmat_names=".join(' ', map { my $tmp = $_; $tmp =~ s/ /_/g; $tmp } @entries)."\n";
-  print "/set gmat_ntypes=".join(' ', map(lc(ptranslate(99,$$data{$_}{16})), @entries))."\n";
-  print "/set gmat_types=".join(' ', sort map(lc(ptranslate(99,$_)), values %matTypes))."\n";
+  print "/set gmat_ntypes=".join(' ', map(lc(ptranslate(16, $$data{$_}{16})), @entries))."\n";
+  print "/set gmat_types=".join(' ', sort map(lc(ptranslate(16, $_)), values %$matTypes))."\n";
 
-  foreach my $mkey (sort keys %matTypes)
+  foreach my $mkey (sort keys %$matTypes)
   {
-    my $type = $matTypes{$mkey};
+    my $type = $$matTypes{$mkey};
     print "/set gmat_type_".
-      lc(ptranslate(99, $type))."=".
+      lc(ptranslate(16, $type))."=".
       join('|', @{$matByType{$type}})."\n";
   }
 }
@@ -660,16 +671,16 @@
   my $dumper = Data::Dumper->new([$data], ["matTable"]);
   print "our ".$dumper->Dump()."\n\n";
 
-  $dumper = Data::Dumper->new([\%transTable], ["transTable"]);
+  $dumper = Data::Dumper->new([\%$transTable], ["transTable"]);
   print "our ".$dumper->Dump()."\n\n";
 
-  $dumper = Data::Dumper->new([\%revTransTable], ["revTransTable"]);
+  $dumper = Data::Dumper->new([\%$revTransTable], ["revTransTable"]);
   print "our ".$dumper->Dump()."\n\n";
 
   $dumper = Data::Dumper->new([\%matByType], ["matByType"]);
   print "our ".$dumper->Dump()."\n\n";
 
-  $dumper = Data::Dumper->new([\%matTypes], ["matTypes"]);
+  $dumper = Data::Dumper->new([\%$matTypes], ["matTypes"]);
   print "our ".$dumper->Dump()."\n\n";
   
   print "1;\n";
@@ -684,12 +695,12 @@
   join(",", map { "\"".$$_{"l"}."\"" } @fieldInfo).
   ");\n\n".
   "\$matTransTable = array(\n";
-  foreach my $i (sort { $a <=> $b } keys %transTable)
+  foreach my $i (sort { $a <=> $b } keys %$transTable)
   {
     print "  array(";
-    foreach my $j (sort { $transTable{$i}{$a} <=> $transTable{$i}{$b} } keys %{$transTable{$i}})
+    foreach my $j (sort { $$transTable{$i}{$a} <=> $$transTable{$i}{$b} } keys %{$$transTable{$i}})
     {
-      print $transTable{$i}{$j};
+      print $$transTable{$i}{$j};
       $j =~ s/very /v./;
       $j =~ s/incredibly /incr./;
       print " => \"".$j."\","