mirror of
https://github.com/glest/glest-source.git
synced 2025-09-01 04:01:47 +02:00
tools:update files that generate html unit docs
This was needed for ZetaGlest/zetaglest.github.io#1
This commit is contained in:
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
our $version = "0.8.1 beta";
|
our $version = "0.8.1 beta";
|
||||||
|
|
||||||
# This tool requires jquery and the jquery dataTables plugin (run setupDeps.sh which uses curl to try to download these into the media folder).
|
# This tool requires jquery and the jquery dataTables plugin (run setupDeps.sh which uses curl to try to download these into the media folder).
|
||||||
# These are NOT required to run the script but are used to display the resulting html.
|
# These are NOT required to run the script but are used to display the resulting html.
|
||||||
|
|
||||||
# general comments for running:
|
# general comments for running:
|
||||||
@@ -55,7 +55,7 @@ our $version = "0.8.1 beta";
|
|||||||
# - fixed morph cost of thor/thortotem
|
# - fixed morph cost of thor/thortotem
|
||||||
# - pass http://validator.w3.org
|
# - pass http://validator.w3.org
|
||||||
# - images path per unit for romans (5 times guard.bmp with different content)
|
# - images path per unit for romans (5 times guard.bmp with different content)
|
||||||
# - <NOBR> in cost
|
# - <NOBR> in cost
|
||||||
# - included levels
|
# - included levels
|
||||||
|
|
||||||
# maybe someday ...
|
# maybe someday ...
|
||||||
@@ -64,7 +64,7 @@ our $version = "0.8.1 beta";
|
|||||||
# - units commands in seperate table
|
# - units commands in seperate table
|
||||||
# - links to XML-files
|
# - links to XML-files
|
||||||
# - print -> &log
|
# - print -> &log
|
||||||
# - generate some descriptive text for each unit, like "this is the unit with the most hitpoints/damage to air units/armor/movement speed/... of the tech faction"
|
# - generate some descriptive text for each unit, like "this is the unit with the most hitpoints/damage to air units/armor/movement speed/... of the tech faction"
|
||||||
# - diff feature (CGI?) to show what changed in units if moving f.e. from vanila glest 3.2 to MG 3.4
|
# - diff feature (CGI?) to show what changed in units if moving f.e. from vanila glest 3.2 to MG 3.4
|
||||||
# - make overview tables sortable (javascript?)
|
# - make overview tables sortable (javascript?)
|
||||||
# - overview tables without border but different colors in odd/even rows
|
# - overview tables without border but different colors in odd/even rows
|
||||||
@@ -76,7 +76,7 @@ our $version = "0.8.1 beta";
|
|||||||
# - map symbology below diagram
|
# - map symbology below diagram
|
||||||
# - single pages for units with animated gif, link to XML, mini-diagram of techtree just for this unit
|
# - single pages for units with animated gif, link to XML, mini-diagram of techtree just for this unit
|
||||||
# - convert bmp-icons to png
|
# - convert bmp-icons to png
|
||||||
# - create PDF-handbook of all units
|
# - create PDF-handbook of all units
|
||||||
|
|
||||||
# usefull for converting HTML-colors: http://www.yafla.com/yaflaColor/ColorRGBHSL.aspx
|
# usefull for converting HTML-colors: http://www.yafla.com/yaflaColor/ColorRGBHSL.aspx
|
||||||
|
|
||||||
@@ -92,13 +92,13 @@ our $cfg;
|
|||||||
my $cfg_file;
|
my $cfg_file;
|
||||||
|
|
||||||
if ( $cfg_file = shift @ARGV ) {
|
if ( $cfg_file = shift @ARGV ) {
|
||||||
|
|
||||||
if ( ! -e $cfg_file ) {
|
if ( ! -e $cfg_file ) {
|
||||||
die "cfg_file not existing: $cfg_file\n";
|
die "cfg_file not existing: $cfg_file\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$cfg_file ="megapack.ini";
|
$cfg_file ="zetapack.ini";
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ! -e $cfg_file ) {
|
if ( ! -e $cfg_file ) {
|
||||||
@@ -465,14 +465,14 @@ foreach my $faction_path ( @factions ) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# don't clutter the diagram with direct links (mostly "requirement") if there's an indirect link with 2 hops.
|
# don't clutter the diagram with direct links (mostly "requirement") if there's an indirect link with 2 hops.
|
||||||
# f.e. don't show a link that the technodrom is a requirement of the defense-tower because there's a link from
|
# f.e. don't show a link that the technodrom is a requirement of the defense-tower because there's a link from
|
||||||
# technodrom to advanced architecture and a link from there to defense tower.
|
# technodrom to advanced architecture and a link from there to defense tower.
|
||||||
&check_multi_hops($faction);
|
&check_multi_hops($faction);
|
||||||
|
|
||||||
# now the graphviz-nodes are set, do the edges
|
# now the graphviz-nodes are set, do the edges
|
||||||
foreach my $edge ( @{$c_edges{"$faction"}} ) {
|
foreach my $edge ( @{$c_edges{"$faction"}} ) {
|
||||||
|
|
||||||
my ( $unit_from, $unit_to, $style, $relation ) = split(/:/, $edge );
|
my ( $unit_from, $unit_to, $style, $relation ) = split(/:/, $edge );
|
||||||
|
|
||||||
print "dedge: deciding edge for $faction:$unit_from:$unit_to - $relation -style: $style\n";
|
print "dedge: deciding edge for $faction:$unit_from:$unit_to - $relation -style: $style\n";
|
||||||
@@ -480,21 +480,21 @@ foreach my $faction_path ( @factions ) {
|
|||||||
|
|
||||||
# only show requirement-link of there's no build, morph or produce link
|
# only show requirement-link of there's no build, morph or produce link
|
||||||
# otherwise graphviz would show a dotted line where a solid one makes more sense
|
# otherwise graphviz would show a dotted line where a solid one makes more sense
|
||||||
if (
|
if (
|
||||||
(
|
(
|
||||||
$relation eq "Requirement" ||
|
$relation eq "Requirement" ||
|
||||||
$relation eq "Upgrade-Requirement"
|
$relation eq "Upgrade-Requirement"
|
||||||
) && (
|
) && (
|
||||||
$edges_relation{"$faction:$unit_from:$unit_to:Build"} ||
|
$edges_relation{"$faction:$unit_from:$unit_to:Build"} ||
|
||||||
$edges_relation{"$faction:$unit_from:$unit_to:Morph"} ||
|
$edges_relation{"$faction:$unit_from:$unit_to:Morph"} ||
|
||||||
$edges_relation{"$faction:$unit_from:$unit_to:Produce"}
|
$edges_relation{"$faction:$unit_from:$unit_to:Produce"}
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
||||||
my $dont_link_in_all=0;
|
my $dont_link_in_all=0;
|
||||||
if (
|
if (
|
||||||
$multi_hop{"$faction:$unit_from:$unit_to"} &&
|
$multi_hop{"$faction:$unit_from:$unit_to"} &&
|
||||||
$relation ne "Build" &&
|
$relation ne "Build" &&
|
||||||
$relation ne "Morph" &&
|
$relation ne "Morph" &&
|
||||||
@@ -513,9 +513,9 @@ foreach my $faction_path ( @factions ) {
|
|||||||
$graph_buildings -> add_edge("$unit_from" => "$unit_to", style => $style, color => $svg_fontcolor );
|
$graph_buildings -> add_edge("$unit_from" => "$unit_to", style => $style, color => $svg_fontcolor );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elsif (
|
elsif (
|
||||||
$relation eq "Requirement" ||
|
$relation eq "Requirement" ||
|
||||||
$relation eq "Upgrade-Requirement"
|
$relation eq "Upgrade-Requirement"
|
||||||
) {
|
) {
|
||||||
$graph_all -> add_edge("$unit_from" => "$unit_to", style => $style, color => $svg_fontcolor ) if (!$dont_link_in_all);
|
$graph_all -> add_edge("$unit_from" => "$unit_to", style => $style, color => $svg_fontcolor ) if (!$dont_link_in_all);
|
||||||
print "dedge: SHOWING edge $faction:$unit_from:$unit_to\n";
|
print "dedge: SHOWING edge $faction:$unit_from:$unit_to\n";
|
||||||
@@ -565,7 +565,7 @@ foreach my $faction_path ( @factions ) {
|
|||||||
|
|
||||||
&export_graphs($faction);
|
&export_graphs($faction);
|
||||||
|
|
||||||
if (
|
if (
|
||||||
$cfg->val('all', 'build_clickable_map') &&
|
$cfg->val('all', 'build_clickable_map') &&
|
||||||
$cfg->val('all', 'export_graph') =~ /as_png/ &&
|
$cfg->val('all', 'export_graph') =~ /as_png/ &&
|
||||||
$cfg->val('all', 'export_graph') =~ /as_cmapx/
|
$cfg->val('all', 'export_graph') =~ /as_cmapx/
|
||||||
@@ -594,20 +594,20 @@ foreach my $faction_path ( @factions ) {
|
|||||||
|
|
||||||
|
|
||||||
my $full_all = "<P> <P><HR><H1>Unit Details for Faction $faction_pretty</H1>\n";
|
my $full_all = "<P> <P><HR><H1>Unit Details for Faction $faction_pretty</H1>\n";
|
||||||
my $overview_all = "<TABLE BORDER=1 WIDTH=\"100%\"><TR> <TH> Name
|
my $overview_all = "<TABLE BORDER=1 WIDTH=\"100%\"><TR> <TH> Name
|
||||||
<TH> Total Cost
|
<TH> Total Cost
|
||||||
<TH> Hit Points
|
<TH> Hit Points
|
||||||
<TH> Rege- nerate
|
<TH> Rege- nerate
|
||||||
<TH> Armor Strength
|
<TH> Armor Strength
|
||||||
<TH> Armor Type
|
<TH> Armor Type
|
||||||
<TH> Sight Range
|
<TH> Sight Range
|
||||||
";
|
";
|
||||||
|
|
||||||
my $overview_combat = "<H3>Combat Units</H3> $overview_all
|
my $overview_combat = "<H3>Combat Units</H3> $overview_all
|
||||||
<TH> Move Speed
|
<TH> Move Speed
|
||||||
<TH> Air / Ground
|
<TH> Air / Ground
|
||||||
<TH> Attack Strength Land
|
<TH> Attack Strength Land
|
||||||
<TH> Attack Strength Air
|
<TH> Attack Strength Air
|
||||||
<TH> Attack Range
|
<TH> Attack Range
|
||||||
";
|
";
|
||||||
|
|
||||||
@@ -620,7 +620,7 @@ foreach my $faction_path ( @factions ) {
|
|||||||
<TH>Storage
|
<TH>Storage
|
||||||
";
|
";
|
||||||
|
|
||||||
my $overview_upgrades = "<H3>Upgrades</H3><TABLE BORDER=1><TR> <TH WIDTH=200> Name
|
my $overview_upgrades = "<H3>Upgrades</H3><TABLE BORDER=1><TR> <TH WIDTH=200> Name
|
||||||
<TH> Cost
|
<TH> Cost
|
||||||
<TH> Increases
|
<TH> Increases
|
||||||
<TH> Affects
|
<TH> Affects
|
||||||
@@ -677,7 +677,7 @@ foreach my $faction_path ( @factions ) {
|
|||||||
$full .= "Combat Unit\n";
|
$full .= "Combat Unit\n";
|
||||||
$col{'type'} = "Combat Unit";
|
$col{'type'} = "Combat Unit";
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
$full .= "</TD></TR>\n";
|
$full .= "</TD></TR>\n";
|
||||||
}
|
}
|
||||||
@@ -694,7 +694,7 @@ foreach my $faction_path ( @factions ) {
|
|||||||
my ( $cost, $cost_icon, $cost_icon_overview );
|
my ( $cost, $cost_icon, $cost_icon_overview );
|
||||||
# loop over creation-methods because f.e. guard might be produced in barracks or upgraded from swordman
|
# loop over creation-methods because f.e. guard might be produced in barracks or upgraded from swordman
|
||||||
|
|
||||||
my $num_creation_methods =@{$created_by_unit{ $u }};
|
my $num_creation_methods =@{$created_by_unit{ $u }};
|
||||||
my $num_method=0;
|
my $num_method=0;
|
||||||
$full .= "<TR><TD>Creation:</TD><TD>";
|
$full .= "<TR><TD>Creation:</TD><TD>";
|
||||||
|
|
||||||
@@ -714,7 +714,7 @@ foreach my $faction_path ( @factions ) {
|
|||||||
$col{"${resource}_${num_method}"} = $amount;
|
$col{"${resource}_${num_method}"} = $amount;
|
||||||
$cost_hash{ $resource } = $amount;
|
$cost_hash{ $resource } = $amount;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
my $created;
|
my $created;
|
||||||
if ( $method eq "morph" ) {
|
if ( $method eq "morph" ) {
|
||||||
@@ -751,10 +751,10 @@ foreach my $faction_path ( @factions ) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# prefer cost for produce-method in overview if more than one method (guard) because that's less micromanagement for player
|
# prefer cost for produce-method in overview if more than one method (guard) because that's less micromanagement for player
|
||||||
if (
|
if (
|
||||||
$num_creation_methods == 1 ||
|
$num_creation_methods == 1 ||
|
||||||
$num_creation_methods >= 2 &&
|
$num_creation_methods >= 2 &&
|
||||||
$method eq "produce"
|
$method eq "produce"
|
||||||
) {
|
) {
|
||||||
$cost_icon_overview = $cost_icon_overview_tmp;
|
$cost_icon_overview = $cost_icon_overview_tmp;
|
||||||
}
|
}
|
||||||
@@ -842,7 +842,7 @@ foreach my $faction_path ( @factions ) {
|
|||||||
if ( !$num_of_attacks ) {
|
if ( !$num_of_attacks ) {
|
||||||
my $full_attack_tmp_tmp;
|
my $full_attack_tmp_tmp;
|
||||||
|
|
||||||
( $full_attack_tmp_tmp, $max_strength_vs_land, $max_strength_vs_land_var, $max_strength_vs_air, $max_strength_vs_air_var, $max_range, $max_move_speed ) =
|
( $full_attack_tmp_tmp, $max_strength_vs_land, $max_strength_vs_land_var, $max_strength_vs_air, $max_strength_vs_air_var, $max_range, $max_move_speed ) =
|
||||||
&show_attack( $c, $max_strength_vs_land, $max_strength_vs_land_var, $max_strength_vs_air, $max_strength_vs_air_var, $max_range, $max_move_speed );
|
&show_attack( $c, $max_strength_vs_land, $max_strength_vs_land_var, $max_strength_vs_air, $max_strength_vs_air_var, $max_range, $max_move_speed );
|
||||||
|
|
||||||
$full_attack_tmp .= $full_attack_tmp_tmp;
|
$full_attack_tmp .= $full_attack_tmp_tmp;
|
||||||
@@ -874,13 +874,13 @@ foreach my $faction_path ( @factions ) {
|
|||||||
|
|
||||||
my $full_attack_tmp_tmp;
|
my $full_attack_tmp_tmp;
|
||||||
|
|
||||||
(
|
(
|
||||||
$full_attack_tmp_tmp,
|
$full_attack_tmp_tmp,
|
||||||
$max_strength_vs_land,
|
$max_strength_vs_land,
|
||||||
$max_strength_vs_land_var,
|
$max_strength_vs_land_var,
|
||||||
$max_strength_vs_air,
|
$max_strength_vs_air,
|
||||||
$max_strength_vs_air_var,
|
$max_strength_vs_air_var,
|
||||||
$max_range,
|
$max_range,
|
||||||
$max_move_speed,
|
$max_move_speed,
|
||||||
$col{"attack_strength_$num_attack"},
|
$col{"attack_strength_$num_attack"},
|
||||||
$col{"attack_var_$num_attack"},
|
$col{"attack_var_$num_attack"},
|
||||||
@@ -891,7 +891,7 @@ foreach my $faction_path ( @factions ) {
|
|||||||
$col{"attack_ep_cost_$num_attack"},
|
$col{"attack_ep_cost_$num_attack"},
|
||||||
$col{"used_on_hold_position_$num_attack"},
|
$col{"used_on_hold_position_$num_attack"},
|
||||||
$col{"target_$num_attack"},
|
$col{"target_$num_attack"},
|
||||||
) =
|
) =
|
||||||
&show_attack( $c, $max_strength_vs_land, $max_strength_vs_land_var, $max_strength_vs_air, $max_strength_vs_air_var, $max_range, $max_move_speed, $skill_on_hold_position );
|
&show_attack( $c, $max_strength_vs_land, $max_strength_vs_land_var, $max_strength_vs_air, $max_strength_vs_air_var, $max_range, $max_move_speed, $skill_on_hold_position );
|
||||||
|
|
||||||
|
|
||||||
@@ -963,7 +963,7 @@ foreach my $faction_path ( @factions ) {
|
|||||||
|
|
||||||
$full_attack_tmp .= "</TD></TR>\n";
|
$full_attack_tmp .= "</TD></TR>\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
# morphing
|
# morphing
|
||||||
my $num_morph_skill=0;
|
my $num_morph_skill=0;
|
||||||
foreach my $c ( @{$commands_of_unit{"$u:morph"}} ) {
|
foreach my $c ( @{$commands_of_unit{"$u:morph"}} ) {
|
||||||
@@ -997,7 +997,7 @@ foreach my $faction_path ( @factions ) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
$full_morph_tmp .= "</TD></TR>\n";
|
$full_morph_tmp .= "</TD></TR>\n";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# repairing
|
# repairing
|
||||||
@@ -1024,11 +1024,11 @@ foreach my $faction_path ( @factions ) {
|
|||||||
chop $col{"heal_units_$num_heal"};
|
chop $col{"heal_units_$num_heal"};
|
||||||
chop $col{"heal_units_$num_heal"};
|
chop $col{"heal_units_$num_heal"};
|
||||||
$full_repair_tmp .="<BR>\n";
|
$full_repair_tmp .="<BR>\n";
|
||||||
|
|
||||||
$full_repair_tmp .="Repair/Heal Speed: ".$speed{ $s }."<BR>\n";
|
$full_repair_tmp .="Repair/Heal Speed: ".$speed{ $s }."<BR>\n";
|
||||||
$full_repair_tmp .= "</TD></TR>\n";
|
$full_repair_tmp .= "</TD></TR>\n";
|
||||||
$col{"heal_speed_$num_heal"} = $speed{ $s };
|
$col{"heal_speed_$num_heal"} = $speed{ $s };
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# harvesting/mining
|
# harvesting/mining
|
||||||
@@ -1055,12 +1055,12 @@ foreach my $faction_path ( @factions ) {
|
|||||||
chop $col{"mine_resource_$num_mine"};
|
chop $col{"mine_resource_$num_mine"};
|
||||||
|
|
||||||
$full_harvest_tmp .="<BR>\n";
|
$full_harvest_tmp .="<BR>\n";
|
||||||
|
|
||||||
$full_harvest_tmp .="Speed: ".$speed{ $s }."<BR>\n";
|
$full_harvest_tmp .="Speed: ".$speed{ $s }."<BR>\n";
|
||||||
$full_harvest_tmp .="Max Load: ".$max_load{ $c }."<BR>\n";
|
$full_harvest_tmp .="Max Load: ".$max_load{ $c }."<BR>\n";
|
||||||
$full_harvest_tmp .="Hits per Unit: ".$hits_per_unit{ $c }."<BR>\n";
|
$full_harvest_tmp .="Hits per Unit: ".$hits_per_unit{ $c }."<BR>\n";
|
||||||
$full_harvest_tmp .= "</TD></TR>\n";
|
$full_harvest_tmp .= "</TD></TR>\n";
|
||||||
|
|
||||||
$col{"mine_speed_$num_mine"} = $speed{ $s };
|
$col{"mine_speed_$num_mine"} = $speed{ $s };
|
||||||
$col{"mine_max_load_$num_mine"} = $max_load{ $c };
|
$col{"mine_max_load_$num_mine"} = $max_load{ $c };
|
||||||
$col{"mine_hits_per_unit_$num_mine"} = $hits_per_unit{ $c };
|
$col{"mine_hits_per_unit_$num_mine"} = $hits_per_unit{ $c };
|
||||||
@@ -1165,7 +1165,7 @@ foreach my $faction_path ( @factions ) {
|
|||||||
else {
|
else {
|
||||||
$full_tmp = "<TR><TD>'$unit_pretty' is able to $relation:</TD><TD>";
|
$full_tmp = "<TR><TD>'$unit_pretty' is able to $relation:</TD><TD>";
|
||||||
}
|
}
|
||||||
|
|
||||||
my $last_command="";
|
my $last_command="";
|
||||||
foreach my $unit_allows ( @{$c_unit_allows{"$faction:$unit:$relation"}} ) {
|
foreach my $unit_allows ( @{$c_unit_allows{"$faction:$unit:$relation"}} ) {
|
||||||
my ( $faction, $req_unit, $command ) = split(/:/, $unit_allows );
|
my ( $faction, $req_unit, $command ) = split(/:/, $unit_allows );
|
||||||
@@ -1305,7 +1305,7 @@ foreach my $faction_path ( @factions ) {
|
|||||||
push @all_html_pages, $unit_html;
|
push @all_html_pages, $unit_html;
|
||||||
my $unit_title = &format_name( $unit )." - of the $faction_pretty Faction";
|
my $unit_title = &format_name( $unit )." - of the $faction_pretty Faction";
|
||||||
$h_all_html_pages{"$faction:units"} .= "$unit_html:$unit_title;";
|
$h_all_html_pages{"$faction:units"} .= "$unit_html:$unit_title;";
|
||||||
|
|
||||||
open (UNIT, "> $unit_html") || die "cant write unit-html: $unit_html\n";
|
open (UNIT, "> $unit_html") || die "cant write unit-html: $unit_html\n";
|
||||||
print UNIT &header($unit_title);
|
print UNIT &header($unit_title);
|
||||||
print UNIT &choose_faction_html( $faction )."<P>\n";
|
print UNIT &choose_faction_html( $faction )."<P>\n";
|
||||||
@@ -1323,7 +1323,7 @@ foreach my $faction_path ( @factions ) {
|
|||||||
$align="RIGHT";
|
$align="RIGHT";
|
||||||
}
|
}
|
||||||
$all_html_table .= " <TD ALIGN=$align>".($col{"$co"} || "")."</TD>\n";
|
$all_html_table .= " <TD ALIGN=$align>".($col{"$co"} || "")."</TD>\n";
|
||||||
|
|
||||||
}
|
}
|
||||||
$all_html_table .= "</TR>\n";
|
$all_html_table .= "</TR>\n";
|
||||||
}
|
}
|
||||||
@@ -1332,7 +1332,7 @@ foreach my $faction_path ( @factions ) {
|
|||||||
$overview_worker .= "</TABLE>\n";
|
$overview_worker .= "</TABLE>\n";
|
||||||
$overview_building .= "</TABLE>\n";
|
$overview_building .= "</TABLE>\n";
|
||||||
$overview_upgrades .= "</TABLE>\n";
|
$overview_upgrades .= "</TABLE>\n";
|
||||||
|
|
||||||
my $overview_html = "<H1>Overview for Faction: $faction_pretty</H1>\n\n";
|
my $overview_html = "<H1>Overview for Faction: $faction_pretty</H1>\n\n";
|
||||||
$overview_html .= $overview_combat;
|
$overview_html .= $overview_combat;
|
||||||
$overview_html .= $overview_worker;
|
$overview_html .= $overview_worker;
|
||||||
@@ -1465,7 +1465,7 @@ foreach my $faction_path ( @factions ) {
|
|||||||
print HTML "<LI><a href=\"$page\">$title</a>\n";
|
print HTML "<LI><a href=\"$page\">$title</a>\n";
|
||||||
}
|
}
|
||||||
print HTML "</UL>\n";
|
print HTML "</UL>\n";
|
||||||
|
|
||||||
}
|
}
|
||||||
print HTML $footer;
|
print HTML $footer;
|
||||||
close HTML;
|
close HTML;
|
||||||
@@ -1485,7 +1485,7 @@ exit 0;
|
|||||||
# end of main(), now subs
|
# end of main(), now subs
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
|
|
||||||
sub create_glestkey_page {
|
sub create_glestkey_page {
|
||||||
my $html_page = "glestkeys.html";
|
my $html_page = "glestkeys.html";
|
||||||
my $title = "Keyboard Assignment";
|
my $title = "Keyboard Assignment";
|
||||||
@@ -1495,7 +1495,7 @@ sub create_glestkey_page {
|
|||||||
|
|
||||||
print HTML header($title);
|
print HTML header($title);
|
||||||
print HTML "Note: Keyboard assignment can be changed in glestuserkeys.ini.<P>\n";
|
print HTML "Note: Keyboard assignment can be changed in glestuserkeys.ini.<P>\n";
|
||||||
|
|
||||||
print HTML "<TABLE BORDER=1><TH>Name<TH>Key\n";
|
print HTML "<TABLE BORDER=1><TH>Name<TH>Key\n";
|
||||||
|
|
||||||
open (KEYS, "< $glestkeys") || die "can't read glestkeys: $glestkeys\n";
|
open (KEYS, "< $glestkeys") || die "can't read glestkeys: $glestkeys\n";
|
||||||
@@ -1519,10 +1519,10 @@ sub create_glestkey_page {
|
|||||||
|
|
||||||
$key =~ s/^vk//;
|
$key =~ s/^vk//;
|
||||||
$key =~ s/\'//g;
|
$key =~ s/\'//g;
|
||||||
|
|
||||||
print HTML "<TR><TD>$name_pretty</TD><TD ALIGN=CENTER>$key</TD></TR>\n";
|
print HTML "<TR><TD>$name_pretty</TD><TD ALIGN=CENTER>$key</TD></TR>\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
print HTML "</TABLE>\n";
|
print HTML "</TABLE>\n";
|
||||||
@@ -1648,8 +1648,8 @@ sub read_unit {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
##########################################
|
##########################################
|
||||||
@@ -1696,7 +1696,7 @@ sub read_unit {
|
|||||||
my $req_name = $1;
|
my $req_name = $1;
|
||||||
print "FFF unit-req: $c of $u - $req_name\n";
|
print "FFF unit-req: $c of $u - $req_name\n";
|
||||||
|
|
||||||
# this can be multivalued, but not used yet so i'll be lazy
|
# this can be multivalued, but not used yet so i'll be lazy
|
||||||
$c_unit_requirements{ $c } = $req_name;
|
$c_unit_requirements{ $c } = $req_name;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1707,7 +1707,7 @@ sub read_unit {
|
|||||||
my $req_name = $1;
|
my $req_name = $1;
|
||||||
print "FFF-upgrade-req: $c of $u - $req_name\n";
|
print "FFF-upgrade-req: $c of $u - $req_name\n";
|
||||||
|
|
||||||
# this can be multivalued, but not used yet so i'll be lazy
|
# this can be multivalued, but not used yet so i'll be lazy
|
||||||
$c_upgrade_requirements{ $c } = $req_name;
|
$c_upgrade_requirements{ $c } = $req_name;
|
||||||
push @{ $c_unit_allows{"$faction:$req_name:Command"} }, "$c";
|
push @{ $c_unit_allows{"$faction:$req_name:Command"} }, "$c";
|
||||||
}
|
}
|
||||||
@@ -1768,7 +1768,7 @@ sub read_unit {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# now read resources stored
|
# now read resources stored
|
||||||
my $resources_stored = $xpath->find("/unit/parameters/resources-stored/resource");
|
my $resources_stored = $xpath->find("/unit/parameters/resources-stored/resource");
|
||||||
foreach my $resource_stored ( $resources_stored->get_nodelist ) {
|
foreach my $resource_stored ( $resources_stored->get_nodelist ) {
|
||||||
print "req: ".XML::XPath::XMLParser::as_string( $resource_stored ) . "\n";
|
print "req: ".XML::XPath::XMLParser::as_string( $resource_stored ) . "\n";
|
||||||
@@ -1802,7 +1802,7 @@ sub read_unit {
|
|||||||
# create graphviz-node
|
# create graphviz-node
|
||||||
&g_add_node( $faction, $unit, $unit_pretty, $url, $building{$u}, $upgrade{$u} );
|
&g_add_node( $faction, $unit, $unit_pretty, $url, $building{$u}, $upgrade{$u} );
|
||||||
|
|
||||||
# definition of
|
# definition of
|
||||||
# a. where to find requiremtns in the XML-data
|
# a. where to find requiremtns in the XML-data
|
||||||
# 1. if it's stored as parent-child or child-parent (REQUIREMENT, COMMAND)
|
# 1. if it's stored as parent-child or child-parent (REQUIREMENT, COMMAND)
|
||||||
# 2. which style of arrow should be used in graph (see cpan.org for graphviz-documentation)
|
# 2. which style of arrow should be used in graph (see cpan.org for graphviz-documentation)
|
||||||
@@ -1988,7 +1988,7 @@ sub check_multi_hops {
|
|||||||
|
|
||||||
# loop over all edges and check each
|
# loop over all edges and check each
|
||||||
foreach my $edge ( @{$c_edges{"$faction"}} ) {
|
foreach my $edge ( @{$c_edges{"$faction"}} ) {
|
||||||
|
|
||||||
my ( $unit_from, $unit_to, $style, $relation ) = split(/:/, $edge );
|
my ( $unit_from, $unit_to, $style, $relation ) = split(/:/, $edge );
|
||||||
|
|
||||||
print "#################edge_check1: $unit_from -> $unit_to\n";
|
print "#################edge_check1: $unit_from -> $unit_to\n";
|
||||||
@@ -2003,8 +2003,8 @@ sub check_multi_hops {
|
|||||||
}
|
}
|
||||||
# find multihop from building via upgrade to building to include in graphs without upgrades
|
# find multihop from building via upgrade to building to include in graphs without upgrades
|
||||||
# f.e. techndrome via advanced architecture to defense tower
|
# f.e. techndrome via advanced architecture to defense tower
|
||||||
elsif (
|
elsif (
|
||||||
$relation eq "Upgrade" &&
|
$relation eq "Upgrade" &&
|
||||||
$building{"$faction:$unit_from"}
|
$building{"$faction:$unit_from"}
|
||||||
) {
|
) {
|
||||||
# in our example, check all edges from advanced architecture for links to buildings
|
# in our example, check all edges from advanced architecture for links to buildings
|
||||||
@@ -2015,7 +2015,7 @@ sub check_multi_hops {
|
|||||||
$multi_hop_upgrade{"$faction:$unit_from:$o_unit_to"}=1;
|
$multi_hop_upgrade{"$faction:$unit_from:$o_unit_to"}=1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2036,8 +2036,8 @@ sub check_edges {
|
|||||||
my ( $o_unit_from, $o_unit_to, $o_style, $o_relation ) = split(/:/, $edge );
|
my ( $o_unit_from, $o_unit_to, $o_style, $o_relation ) = split(/:/, $edge );
|
||||||
|
|
||||||
print "edge_check3: $o_unit_from -> $o_unit_to\n";
|
print "edge_check3: $o_unit_from -> $o_unit_to\n";
|
||||||
if (
|
if (
|
||||||
$unit_to eq $o_unit_to &&
|
$unit_to eq $o_unit_to &&
|
||||||
# skip the record we're just checking
|
# skip the record we're just checking
|
||||||
$recursion_depth > 1
|
$recursion_depth > 1
|
||||||
) {
|
) {
|
||||||
@@ -2053,7 +2053,7 @@ sub check_edges {
|
|||||||
}
|
}
|
||||||
last REC if ( $found_multihop );
|
last REC if ( $found_multihop );
|
||||||
}
|
}
|
||||||
return $found_multihop;
|
return $found_multihop;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -2178,24 +2178,24 @@ sub calc_cost_of_unit {
|
|||||||
foreach my $resource_requirement ( @{$c_resource_requirement{$u}}, @resource_order ) {
|
foreach my $resource_requirement ( @{$c_resource_requirement{$u}}, @resource_order ) {
|
||||||
my ( $resource, $amount ) = split(/:/, $resource_requirement );
|
my ( $resource, $amount ) = split(/:/, $resource_requirement );
|
||||||
|
|
||||||
# ignore food, housing, energy if i have to calculate the cost of a unit morphed from
|
# ignore food, housing, energy if i have to calculate the cost of a unit morphed from
|
||||||
if (
|
if (
|
||||||
!$ignore_food ||
|
!$ignore_food ||
|
||||||
$ignore_food && (
|
$ignore_food && (
|
||||||
$resource eq "gold" ||
|
$resource eq "gold" ||
|
||||||
$resource eq "wood" ||
|
$resource eq "wood" ||
|
||||||
$resource eq "stone"
|
$resource eq "stone"
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
|
|
||||||
my ($amount_with_discount, $amount_total);
|
my ($amount_with_discount, $amount_total);
|
||||||
|
|
||||||
# part 2: stupid fix for thortotem + thor: add cost of stone in this case:
|
# part 2: stupid fix for thortotem + thor: add cost of stone in this case:
|
||||||
if (
|
if (
|
||||||
!$amount &&
|
!$amount &&
|
||||||
$resource eq $resource_now
|
$resource eq $resource_now
|
||||||
) {
|
) {
|
||||||
if (
|
if (
|
||||||
$morph_cost_resource{ $resource } &&
|
$morph_cost_resource{ $resource } &&
|
||||||
# and check it's not in @{c_resource_requirement}, this is really stupid but i don't come up with a good solution at this
|
# and check it's not in @{c_resource_requirement}, this is really stupid but i don't come up with a good solution at this
|
||||||
# time of the day ;)
|
# time of the day ;)
|
||||||
@@ -2238,8 +2238,8 @@ sub calc_cost_of_unit {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# handle f.e. thor where
|
# handle f.e. thor where
|
||||||
if ( $morph_cost_resource{ $resource_now } ) {
|
if ( $morph_cost_resource{ $resource_now } ) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2325,7 +2325,7 @@ sub link_unit {
|
|||||||
|
|
||||||
my $link;
|
my $link;
|
||||||
|
|
||||||
if (
|
if (
|
||||||
$cfg->val('all', 'link_to_single_units') ||
|
$cfg->val('all', 'link_to_single_units') ||
|
||||||
$link_to_single_units
|
$link_to_single_units
|
||||||
) {
|
) {
|
||||||
@@ -2394,26 +2394,26 @@ sub show_attack {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (
|
if (
|
||||||
$attack_land{ $s } &&
|
$attack_land{ $s } &&
|
||||||
$attack_air{ $s }
|
$attack_air{ $s }
|
||||||
) {
|
) {
|
||||||
$target .= "Ground and air";
|
$target .= "Ground and air";
|
||||||
$full_attack_tmp .= "Target: $target units<BR>\n";
|
$full_attack_tmp .= "Target: $target units<BR>\n";
|
||||||
}
|
}
|
||||||
elsif (
|
elsif (
|
||||||
$attack_air{ $s }
|
$attack_air{ $s }
|
||||||
) {
|
) {
|
||||||
$target .= "Only air";
|
$target .= "Only air";
|
||||||
$full_attack_tmp .= "Target: $target units<BR>\n";
|
$full_attack_tmp .= "Target: $target units<BR>\n";
|
||||||
}
|
}
|
||||||
elsif (
|
elsif (
|
||||||
$attack_land{ $s }
|
$attack_land{ $s }
|
||||||
) {
|
) {
|
||||||
$target .= "Only ground";
|
$target .= "Only ground";
|
||||||
$full_attack_tmp .= "Target: $target units<BR>\n";
|
$full_attack_tmp .= "Target: $target units<BR>\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if ( $attack_range{ $s } > $max_range ) {
|
if ( $attack_range{ $s } > $max_range ) {
|
||||||
$max_range = $attack_range{ $s };
|
$max_range = $attack_range{ $s };
|
||||||
@@ -2457,13 +2457,13 @@ sub show_attack {
|
|||||||
|
|
||||||
$full_attack_tmp .= "</TD></TR>\n";
|
$full_attack_tmp .= "</TD></TR>\n";
|
||||||
|
|
||||||
return (
|
return (
|
||||||
$full_attack_tmp,
|
$full_attack_tmp,
|
||||||
$max_strength_vs_land,
|
$max_strength_vs_land,
|
||||||
$max_strength_vs_land_var,
|
$max_strength_vs_land_var,
|
||||||
$max_strength_vs_air,
|
$max_strength_vs_air,
|
||||||
$max_strength_vs_air_var,
|
$max_strength_vs_air_var,
|
||||||
$max_range,
|
$max_range,
|
||||||
$max_move_speed,
|
$max_move_speed,
|
||||||
$attack_strenght{ $s },
|
$attack_strenght{ $s },
|
||||||
$attack_var{ $s },
|
$attack_var{ $s },
|
||||||
@@ -2506,7 +2506,7 @@ sub load_tip_files {
|
|||||||
}
|
}
|
||||||
close TIPS;
|
close TIPS;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sub choose_faction_html {
|
sub choose_faction_html {
|
||||||
@@ -2523,7 +2523,7 @@ sub choose_faction_html {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sub diagram_links_html {
|
sub diagram_links_html {
|
||||||
|
|
||||||
|
|
||||||
my ( $faction ) = @_;
|
my ( $faction ) = @_;
|
||||||
|
|
||||||
@@ -2645,12 +2645,12 @@ sub do_air_ground {
|
|||||||
my $full_tmp .= "<TR><TD>Movement Type:</TD><TD>";
|
my $full_tmp .= "<TR><TD>Movement Type:</TD><TD>";
|
||||||
|
|
||||||
# air + land means land (f.e. tech archer)
|
# air + land means land (f.e. tech archer)
|
||||||
# units can't be both, although that would seem ok for the genie
|
# units can't be both, although that would seem ok for the genie
|
||||||
if (
|
if (
|
||||||
$land_unit{ $u } ||
|
$land_unit{ $u } ||
|
||||||
(
|
(
|
||||||
$air_unit{ $u } &&
|
$air_unit{ $u } &&
|
||||||
$land_unit{ $u }
|
$land_unit{ $u }
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
$overview_tmp .= "Ground";
|
$overview_tmp .= "Ground";
|
||||||
@@ -2676,7 +2676,7 @@ sub show_special_pages {
|
|||||||
|
|
||||||
sub do_upgrade_benefits {
|
sub do_upgrade_benefits {
|
||||||
|
|
||||||
# show the benefit of an upgrade
|
# show the benefit of an upgrade
|
||||||
my ( $u ) = @_;
|
my ( $u ) = @_;
|
||||||
|
|
||||||
my $upgrade_benefits="";
|
my $upgrade_benefits="";
|
||||||
|
@@ -2,7 +2,7 @@ body {
|
|||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
width: 1016px;
|
width: 1016px;
|
||||||
|
|
||||||
background-color: #161616;
|
background-color: #000000;
|
||||||
font-size: 0.8em;
|
font-size: 0.8em;
|
||||||
color: #fff6c0;
|
color: #fff6c0;
|
||||||
font-family: "Lucida Sans Unicode","Lucida Grande","Lucida Sans", sans-serif;
|
font-family: "Lucida Sans Unicode","Lucida Grande","Lucida Sans", sans-serif;
|
||||||
@@ -17,7 +17,7 @@ body {
|
|||||||
width: 1016px;
|
width: 1016px;
|
||||||
height: 175px;
|
height: 175px;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
background: url("header/header.jpg") no-repeat;
|
/* background: url("header/header.jpg") no-repeat; */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Horizontal menu */
|
/* Horizontal menu */
|
||||||
@@ -157,7 +157,7 @@ h2#download {
|
|||||||
margin: 0 8px;
|
margin: 0 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Modules
|
* Modules
|
||||||
*/
|
*/
|
||||||
#aside_left { background: url("modules/l_repeat.jpg") repeat-y }
|
#aside_left { background: url("modules/l_repeat.jpg") repeat-y }
|
||||||
|
@@ -7,14 +7,14 @@ relative_paths = 1
|
|||||||
# Create 'screen shots' of models' G3D animations?
|
# Create 'screen shots' of models' G3D animations?
|
||||||
generate_g3d_images = 1
|
generate_g3d_images = 1
|
||||||
|
|
||||||
# export functions, see "perldoc GraphViz" (or search.cpan.org for GraphViz) for a list
|
# export functions, see "perldoc GraphViz" (or search.cpan.org for GraphViz) for a list
|
||||||
#export_graph=as_svg;as_png
|
#export_graph=as_svg;as_png
|
||||||
export_graph=as_svg;as_png;as_canon;as_text;as_cmapx
|
export_graph=as_svg;as_png;as_canon;as_text;as_cmapx
|
||||||
|
|
||||||
# combine png and cmapx to clickable map
|
# combine png and cmapx to clickable map
|
||||||
build_clickable_map=1
|
build_clickable_map=1
|
||||||
|
|
||||||
version=Megapack
|
version=Zetapack
|
||||||
|
|
||||||
# should links to units go the single pages for each unit (vs. the techtree-page if set to 0)
|
# should links to units go the single pages for each unit (vs. the techtree-page if set to 0)
|
||||||
link_to_single_units=1
|
link_to_single_units=1
|
||||||
@@ -32,15 +32,15 @@ level_armor=1.5
|
|||||||
|
|
||||||
|
|
||||||
[files]
|
[files]
|
||||||
g3dviewer_path=../../../mk/linux/megaglest_g3dviewer
|
g3dviewer_path=../../../mk/linux/zegaglest_g3dviewer
|
||||||
factions_path=../../../data/glest_game/techs/megapack/factions
|
factions_path=../../../../zetaglest-data/techs/zetapack/factions
|
||||||
resources_path=../../../data/glest_game/techs/megapack/resources
|
resources_path=../../../../zetaglest-data/techs/zetapack/resources
|
||||||
|
|
||||||
pack_file=../../../data/glest_game/techs/megapack/megapack.xml
|
pack_file=../../../../zetaglest-data/techs/zetapack/zetapack.xml
|
||||||
|
|
||||||
out_path=html
|
out_path=html
|
||||||
|
|
||||||
glestkeys=../../../data/glest_game/glestkeys.ini
|
glestkeys=../../../mk/shared/glestkeys.ini
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -149,6 +149,7 @@ header=<<EOT
|
|||||||
<link type="text/css" rel="stylesheet" href="style.css">
|
<link type="text/css" rel="stylesheet" href="style.css">
|
||||||
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
|
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
|
||||||
|
|
||||||
<!-- stuff for table-sorting, see jquery.com and datatables.net for details
|
<!-- stuff for table-sorting, see jquery.com and datatables.net for details
|
||||||
-->
|
-->
|
||||||
@@ -184,8 +185,14 @@ header=<<EOT
|
|||||||
<!-- Contain the right and left header images -->
|
<!-- Contain the right and left header images -->
|
||||||
<div id="header_left"></div>
|
<div id="header_left"></div>
|
||||||
<div id="header_right"></div>
|
<div id="header_right"></div>
|
||||||
<div id="logo"><a href="/"><img src="https://megaglest.org/uploads/megaglest2011/logo/logo.png" alt="MegaGlest logo" /></a></div>
|
<!-- FIXME: needs height and width specs -->
|
||||||
|
<div id="logo"><a href="/"><img src="/images/zetaglest_logo_360x181.png" alt="ZetaGlest logo" /></a></div>
|
||||||
</div>
|
</div>
|
||||||
|
<p><a href="https://zetaglest.dreamhosters.com/">Server List and Player Stats</a> |
|
||||||
|
<a href="https://github.com/ZetaGlest/zetaglest-source/blob/develop/README.md">README</a> |
|
||||||
|
<a href="https://github.com/ZetaGlest">on GitHub</a> |
|
||||||
|
<a href="https://github.com/ZetaGlest/zetaglest-source/blob/develop/CONTRIBUTING.md">Contributing</a> |
|
||||||
|
<a href="https://github.com/ZetaGlest/zetaglest-data#submitting-mods-tech-trees-tilesets-maps-scenarios">Submitting mods, tech trees, tilesets, maps, scenarios</a>
|
||||||
<!-- end header -->
|
<!-- end header -->
|
||||||
|
|
||||||
<!-- start content -->
|
<!-- start content -->
|
||||||
@@ -208,9 +215,9 @@ This page was generated by: VAR_CREATED_BY
|
|||||||
<div id="footer_left"></div>
|
<div id="footer_left"></div>
|
||||||
<div id="footer_right"></div>
|
<div id="footer_right"></div>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="https://megaglest.org/privacy.html">Privacy</a></li>
|
<!-- <li><a href="https://megaglest.org/privacy.html">Privacy</a></li> -->
|
||||||
<li><a href="https://megaglest.org/license.html"><img src="https://megaglest.org/uploads/megaglest2011/logo/gpl_osi.png" alt="GNU GPL and OSI logos" /></a></li>
|
<a href="https://github.com/ZetaGlest/zetaglest-source/blob/develop/COPYING"><img src="/images/ThemezHut-Released-under-GPL_135x90.png" alt="GNU GPL3 logo" /></a></li>
|
||||||
<li><a href="https://megaglest.org/credits.html">Credits</a></li>
|
<li><a href="https://github.com/ZetaGlest/zetaglest-source/blob/develop/AUTHORS.md">Credits</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
Reference in New Issue
Block a user