Mercurial > hg > batmud > materials
annotate parsealloys.pl @ 29:0abb8333f7dc
Bump copyright years.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Thu, 29 Mar 2018 12:17:56 +0300 |
parents | cc87079b40aa |
children | 6b2827b1b810 |
rev | line source |
---|---|
0
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
1 #!/usr/bin/perl -w |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
2 # |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
3 # BatMUD alloy data parser and converter |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
4 # Developed by Matti Hämäläinen (Ggr Pupunen) <ccr@tnsp.org> |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
5 # (C) Copyright 2009-2015 Tecnic Software productions (TNSP) |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
6 # |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
7 # Old format of alloying skill output was somewhat different, but |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
8 # it has been tuned somewhere after 2005. New output format is: |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
9 # |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
10 #You mix obsidian and crystal and create a quantity of glass |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
11 #You mix nullium and illumium and create a quantity of dukonium |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
12 #You mix nullium and illumium and create a quantity of dukonium |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
13 use strict; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
14 use warnings; |
25
cc87079b40aa
Fix import of materials.pm in parsealloys.pl
Matti Hamalainen <ccr@tnsp.org>
parents:
0
diff
changeset
|
15 use File::Basename; |
cc87079b40aa
Fix import of materials.pm in parsealloys.pl
Matti Hamalainen <ccr@tnsp.org>
parents:
0
diff
changeset
|
16 use lib dirname(__FILE__); |
0
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
17 use materials; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
18 |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
19 my $domark = 0; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
20 my $mode = shift or die("Usage: $0 <-php|-text>\n"); |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
21 |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
22 if ($mode eq "-php") |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
23 { |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
24 $domark = 1; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
25 } |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
26 elsif ($mode eq "-text") |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
27 { |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
28 } |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
29 else |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
30 { |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
31 die("$0: Invalid operation mode '$mode'.\n"); |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
32 } |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
33 |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
34 |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
35 sub ul($) |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
36 { |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
37 my $tmp = $_[0]; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
38 $tmp =~ s/ /_/g; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
39 return $tmp; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
40 } |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
41 |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
42 |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
43 ### |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
44 ### Parse data from input, ignoring fumbled alloys |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
45 ### |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
46 my %data = (); |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
47 my $fumble = 0; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
48 my $nline = 0; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
49 my $ignored = 0; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
50 |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
51 |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
52 sub addCombo($$$) |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
53 { |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
54 if (!$fumble) |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
55 { |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
56 push(@{$data{$_[1]}{$_[2]}}, $_[0]); |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
57 } |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
58 else |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
59 { |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
60 $ignored++; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
61 #print STDERR "Ignoring fumbled combo $_[1] + $_[2] = $_[0]\n"; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
62 } |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
63 $fumble = 0; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
64 } |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
65 |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
66 |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
67 while (<STDIN>) { |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
68 chomp; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
69 if (/^You mix ([a-z ]+?) and ([a-z ]+?) and create a quantity of (.+?)\.?$/) |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
70 { |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
71 addCombo($3, $1, $2); |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
72 } |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
73 elsif (/^([a-zA-Z0-9]+)#([a-z ]+)\+([a-z ]+)=([a-z ]+)$/) |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
74 { |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
75 addCombo($4, $2, $3); |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
76 } |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
77 elsif (/^(You slip up and fumble your attempt)/) |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
78 { |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
79 $fumble = 1; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
80 } |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
81 } |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
82 |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
83 print STDERR "Ignored ".$ignored." fumbled alloys.\n"; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
84 |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
85 |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
86 ### |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
87 ### Re-format the data into single "ordered" hash, using as |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
88 ### close to alphabetical order as possible. |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
89 ### |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
90 my %final = (); |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
91 foreach my $min1 (keys %data) |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
92 { |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
93 foreach my $min2 (keys %{$data{$min1}}) |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
94 { |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
95 if (!defined($final{$min1}{$min2}) && !defined($final{$min2}{$min1})) |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
96 { |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
97 # Get both (a, b) and (b, a) combinations results into same array |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
98 my @tmp = (); |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
99 if (defined($data{$min1}{$min2})) |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
100 { |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
101 push(@tmp, @{$data{$min1}{$min2}}); |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
102 } |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
103 if (defined($data{$min2}{$min1})) |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
104 { |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
105 push(@tmp, @{$data{$min2}{$min1}}); |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
106 } |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
107 |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
108 # Determine if there are multiple results and which is the most likely. |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
109 # Some alloy combinations are inherently "unstable". |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
110 my %seen = (); |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
111 $seen{$_}++ foreach (@tmp); |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
112 if ($domark) |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
113 { |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
114 $final{$min1}{$min2} = $final{$min2}{$min1} = \%seen; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
115 } |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
116 elsif ($min1 lt $min2) |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
117 { |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
118 $final{$min1}{$min2} = \%seen; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
119 } |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
120 else |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
121 { |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
122 $final{$min2}{$min1} = \%seen; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
123 } |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
124 } |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
125 } |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
126 } |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
127 |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
128 |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
129 ## Output the results |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
130 if ($mode eq "-php") |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
131 { |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
132 print "<?php\n". |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
133 "\$alloyTable = [\n"; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
134 |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
135 foreach my $min1 (sort { $a cmp $b } keys %$Materials::matTable) |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
136 { |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
137 print " \"$min1\" => "; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
138 if (scalar(keys %{$final{$min1}}) > 0) |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
139 { |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
140 print "["; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
141 foreach my $min2 (sort { $a cmp $b } keys %{$final{$min1}}) |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
142 { |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
143 print "\"$min2\" => ["; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
144 foreach my $res (sort { $final{$min1}{$min2}{$a} <=> $final{$min1}{$min2}{$b} } keys %{$final{$min1}{$min2}}) { |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
145 print "\"$res\" => ".$final{$min1}{$min2}{$res}.", "; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
146 } |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
147 print "], "; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
148 } |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
149 print "],\n"; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
150 } |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
151 else |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
152 { |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
153 print "null,\n"; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
154 } |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
155 } |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
156 |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
157 print "];\n\n"; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
158 |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
159 # Create 'reverse' alloy table |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
160 my %restab = (); |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
161 foreach my $res (keys %$Materials::matTable) |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
162 { |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
163 foreach my $min1 (keys %final) |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
164 { |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
165 foreach my $min2 (keys %{$final{$min1}}) |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
166 { |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
167 my $tmp = $final{$min1}{$min2}; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
168 if (scalar(keys %$tmp) > 1) |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
169 { |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
170 # print STDERR "Ignoring multi $min1 + $min2 = ".join(", ", keys %$tmp)."\n"; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
171 } |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
172 else |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
173 { |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
174 foreach my $key (keys %$tmp) |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
175 { |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
176 if ($key eq $res && !defined($restab{$res}{$min1}{$min2}) && !defined($restab{$res}{$min2}{$min1})) |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
177 { |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
178 $restab{$res}{$min1}{$min2} = $$tmp{$key}; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
179 } |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
180 } |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
181 } |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
182 } |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
183 } |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
184 } |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
185 |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
186 print "\$alloyRevTable = [\n"; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
187 foreach my $res (sort { $a cmp $b } keys %restab) |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
188 { |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
189 print " \"$res\" => [\n"; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
190 foreach my $min1 (sort { $a cmp $b } keys %{$restab{$res}}) |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
191 { |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
192 if (scalar(keys %{$restab{$res}{$min1}}) > 0) |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
193 { |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
194 print " \"$min1\" => ["; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
195 foreach my $min2 (sort { $a cmp $b } keys %{$restab{$res}{$min1}}) |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
196 { |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
197 print "\"$min2\" => ".$restab{$res}{$min1}{$min2}.","; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
198 } |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
199 print "],\n"; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
200 } |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
201 } |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
202 print " ],\n"; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
203 } |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
204 |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
205 print "];\n\n". |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
206 "?>"; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
207 } |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
208 elsif ($mode eq "-text") |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
209 { |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
210 my $total = 0; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
211 my %tdata = (); |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
212 |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
213 foreach my $type (sort { $a cmp $b } keys %{$Materials::matByType}) |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
214 { |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
215 my $subtotal = 0; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
216 print "\n".$$Materials::revTransTable{16}{$type}." alloys\n". |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
217 "=========================================================\n"; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
218 |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
219 foreach my $min1 (@{$$Materials::matByType{$type}}) |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
220 { |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
221 foreach my $min2 (sort { $a cmp $b } keys %{$final{$min1}}) |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
222 { |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
223 printf "%-35s = ", ul($min1)." + ".ul($min2); |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
224 my $n = 0; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
225 foreach my $res (sort { |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
226 $final{$min1}{$min2}{$a} <=> $final{$min1}{$min2}{$b} |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
227 || |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
228 $a cmp $b |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
229 } keys %{$final{$min1}{$min2}}) |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
230 { |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
231 print ul($res)."[".$final{$min1}{$min2}{$res}."] "; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
232 $n++; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
233 } |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
234 if ($n > 1) { print " (unstable)"; } |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
235 print "\n"; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
236 $total++; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
237 $subtotal++; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
238 } |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
239 } |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
240 print "\n".$subtotal." ".lc($$Materials::revTransTable{16}{$type})." type alloys.\n\n"; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
241 } |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
242 |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
243 print "\n".$total." alloys total.\n"; |
c4f3b5b88891
Import material and alloy stuff into new repository.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
244 } |