Author: esr
Date: Tue Apr 24 19:24:13 2007
New Revision: 17040
URL: http://svn.gna.org/viewcvs/wesnoth?rev=17040&view=rev
Log:
upconvert is fully working for 1.2.x -> 1.3.x conversions, so the old
Perl version and the regression test script can go away.
Removed:
trunk/data/tools/map_convert.pl
trunk/data/tools/regress
Modified:
trunk/changelog
Modified: trunk/changelog
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/changelog?rev=17040&r1=17039&r2=17040&view=diff
==============================================================================
--- trunk/changelog (original)
+++ trunk/changelog Tue Apr 24 19:24:13 2007
@@ -124,6 +124,8 @@
* New tool, macroscope, generates cross-reference reports on macro usage.
* The old find-unused-images and find-unused-sounds scripts are deleted
(replaced by macroscope).
+ * New tool upconvert handles converting maps and resource file names
+ between versions. It replaces map_convert.pl, which is now gone.
* New tool to create the unit tree in html, as used for units.wesnoth.org
(written by elricz)
* miscellanous changes and bug fixes
Removed: trunk/data/tools/map_convert.pl
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/data/tools/map_convert.pl?rev=17039&view=auto
==============================================================================
--- trunk/data/tools/map_convert.pl (original)
+++ trunk/data/tools/map_convert.pl (removed)
@@ -1,288 +1,0 @@
-#!/usr/bin/perl -w
-#script to convert from single char maps to multiple character maps
-
-sub printUsage{
- print "map_convert.pl terrain.cfg map_file.cfg [new_map_file.cfg]\n";
-}
-
-sub get_adjacent{
- #returns string of original location+adjacent locations on hex 1-char map
- $x=shift(@_);
- $y=shift(@_);
- local @[EMAIL PROTECTED];
- foreach(@map){
- chomp;
- }
-
-# $orig=substr($map[$y],$x,1);
- $odd=($x) % 2;
-# print "$orig($x,$y) : $odd";
- $adj=substr($map[$y],$x,1);
- if($x>0){
- $adj.=substr($map[$y],$x-1,1);
-# print "\tW";
- }
- if($x<length($map[$y])){
- $adj.=substr($map[$y],$x+1,1);
-# print "\tE";
- }
- if($y>0){
- $adj.=substr($map[$y-1],$x,1);
-# print "\tN";
- }
- if($y<$#_){
- $adj.=substr($map[$y+1],$x,1);
-# print "\tS";
- }
-
- if($x>0 && $y>0 && !$odd){
- $adj.=substr($map[$y-1],$x-1,1);
-# print "\tNW";
- }
- if($x<length($map[$y]) && $y>0 && !$odd){
- $adj.=substr($map[$y-1],$x+1,1);
-# print "\tNE";
- }
- if($x>0 && $y<$#_ && $odd){
- $adj.=substr($map[$y+1],$x-1,1);
-# print "\tSW";
- }
- if($x<length($map[$y]) && $y<$#_ && $odd){
- $adj.=substr($map[$y+1],$x+1,1);
-# print "\tSE";
- }
-
-# print "\n";
- return($adj);
-}
-
-if($#ARGV <1 ||$#ARGV>2){
- printUsage();
- exit;
-}
-
-$terrain_file=shift(@ARGV);
-$map_file=shift(@ARGV);
-if($#ARGV < 0){
- $new_map_file=$map_file;
- $backup=$map_file.".bak";
- system("cp $map_file $backup") && die "could not create backup file:
$backup\n";
-}else{
- $new_map_file=shift(@ARGV);
- if(-e "$new_map_file"){ die "New map file already exists:
$new_map_file\n";}
-}
-
-if(! -r "$terrain_file"){ die "can not read terrain file: $terrain_file\n";}
-if(! -r "$map_file"){ die "can not read map file: $map_file\n";}
-
-$conversion{1}='1 _K';
-$conversion{2}='2 _K';
-$conversion{3}='3 _K';
-$conversion{4}='4 _K';
-$conversion{5}='5 _K';
-$conversion{6}='6 _K';
-$conversion{7}='7 _K';
-$conversion{8}='8 _K';
-$conversion{9}='9 _K';
-$conversion{' '}='_s';
-
-
-#parse terrain_file
-open(TERRAIN, "<$terrain_file");
-$countdef=0;
-$max_len=0;
-while($line=<TERRAIN>){
-
- if($line=~/^\#ifdef/){
-#skip ifdef'd comments
- $countdef+=1;
- while(($countdef >0) && ($line=<TERRAIN>)){
- if($line=~/^\#ifdef/){
- $countdef+=1;
- }
- if($line=~/^\#endif/){
- $countdef-=1;
- }
- }
- }
- elsif($line=~/^\#/){}
- else{
-#parse [terrain] blocks
- if($line=~/^\[terrain\]/){
- $char='';
- $string='';
- $in=1;
- while(($in>0) && ($line=<TERRAIN>)){
- $line=~s/\s+//;
- if($line=~/^char/){
- $char=$line;
- $char=~s/char//;
- ($dummy,$char)=split('=',$char);
- $char=~s/\"//g;
- $char=~s/\s+//g;
- $char=substr($char,0,1);
- }elsif($line=~/^string/){
- $string=$line;
- $string=~s/^string//;
- ($dummy,$string)=split('=',$string);
- $string=~s/\"//g;
- $string=~s/\s+//g;
- }elsif($line=~/\[\/terrain\]/){
- $in=0;
- if((length($char)>0) && (length($string)>0)){
-# print "$char ---> $string\n";
- if(length($string)>$max_len){
- $max_len=length($string);
- }
- $conversion{$char}=$string;
- }
- }
- }
- }
- }
-}
-close(TERRAIN);
-
-#while (($k, $v) = each(%conversion)) {
-# print "$k -> $v\n";
-#}
-
-$width=$max_len+2;
-open(MAP, "<$map_file");
[EMAIL PROTECTED]();
-if ($map_file=~/.cfg$/) {
- $map_only=0;
-} else {
- $map_only=1;
-}
-while($line=<MAP>){
- push(@mfile,$line);
- if($line=~/map_data/){
- $map_only=0;
- }
-
-}
-
-push(@mfile,"\n");
-
[EMAIL PROTECTED]();
-close(MAP);
-
-$lineno = $baseline = 0;
-while($#mfile){
- $line=shift(@mfile);
- $lineno++;
- # Don't start parsing on map_data="{, let the WML preprocessor have it
- # Non-alphanumerics that can appear are / | \ & _ ~ ? [ ]'
- if($map_only || ($line=~/map_data=\"[A-Za-z0-9\/|\\&_~?\[\]]{2,}\r?/)){
- $baseline = $lineno;
- $cont=1;
-#read map assumes map is more than 1 line long.
- if(!$map_only){
- ($dummy,$line)=split('"',$line);
- }
- if((defined($line)) && (length($line))){push(@map,$line)};
-# print "$line\n";
- while(($cont) && ($#mfile)){
- $line=shift(@mfile);
- $lineno++;
- if($line=~/^#/) {
- push(@newfile,$line);
- next;
- }
- if($line=~/\"/){
- $cont=0;
- ($line,$dummy)=split('"',$line);
- }
- if (!$line=~/\n/){
- $line.="\n"
- }
- if(defined($line) && length($line)){push(@map,$line)};
- }
-
- if(! $map_only){
- $line="map_data=\"\n";
- push(@newfile,$line);
- }
- $y=0;
- $format="%${width}.${max_len}s";
- foreach(@map){
- chomp;
- if($_=~/,/){die "map file appears to be converted already\n";}
- $line='';
- for($x=0;$x!=length($_);$x++){
- $hex='';
- $char=substr($_,$x,1);
-# print "$char";
- if ($char=~/\r/) {
- $hex="\r"
- }elsif(defined($conversion{$char})){
- $hex=sprintf($format,$conversion{$char});
- }else{
- $ord=ord($char);
- $errline = $baseline + $y + 1;
- print "mapconvert.pl: \"$map_file\", line $errline:
unrecognized map character '$char' ($ord) at ($x,$y)\n";
- exit 1;
-# $hex=sprintf($format,$char);
- }
- if($hex=~/_K/){
- #convert keeps according to adjacent hexes
- $adj=get_adjacent($x,$y,@map);
- # print "adjacent: $adj\n";
- %hexcount=();
- for($i=1;$i<length($adj);$i++){
- #intentionally skipping 0 as it is original hex
- $a=(substr($adj,$i,1));
- $ca=$conversion{$a};
- if(!defined($ca)){
- $ord=ord($a);
- $errline = $baseline + $y + 1;
- print "mapconvert.pl: \"$map_file\", line
$errline: error in adjacent hexes: ($x,$y,$i)[$ord]:$a\n";
- }
- if($ca=~/^C/){ #this is a castle hex
- $hexcount{$ca}++;
- }
- }
- $maxc=0;
- $maxk="Ch";
- # Next line is a hack to make this code pass regression
- # testing against the Python port. Without the sort, when
- # there are two terrain types that occur in equal numbers
- # greater than any others, which one gets picked will be
- # randomly dependent on Perl's dictionary hash function.
- @sorted = sort keys(%hexcount);
- foreach(@sorted){
- if($hexcount{$_}>$maxc){
- $maxc=$hexcount{$_};
- $maxk=$_;
- }
-# print "$_ $hexcount{$_}\n";
- }
- # print "Dominated by $maxk\n";
- $maxk=~s/^C/K/;
- $hex=~s/_K/$maxk/;
- }
- $line.=$hex;
- if($x!=length($_)-1){$line.=','};
- }
- $line.="\n";
- push(@newfile,$line);
-# print "$line\n";
- $y++;
- }
- if($map_only){
- $line="\n";
- }else{
- $line="\"\n";
- }
- push(@newfile,$line);
- }else{
- push(@newfile,$line);
- }
-}
-
-open(NEWMAP,">$new_map_file");
-foreach(@newfile){
- print NEWMAP "$_";
-}
-
Removed: trunk/data/tools/regress
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/data/tools/regress?rev=17039&view=auto
==============================================================================
--- trunk/data/tools/regress (original)
+++ trunk/data/tools/regress (removed)
@@ -1,38 +1,0 @@
-#!/bin/bash
-#
-# Test map_convert.py against map_convert.pl.
-# If these scripts are really equivalent, we should see no diffs.
-
-# UMC should point at a mirror of the campaign server
-UMC=../../umc
-TERRAIN=../terrain.cfg
-
-# Clear the decks
-find $UMC -type f -regex '.*-p[ly]' -exec rm {} \;
-
-# The enumeration relies on $ not being in any filename
-for file in `find $UMC -name '*.cfg' | tr ' ' '$'; find $UMC -type f \! -name
'*.png' \! -name '*.jpg' -wholename '*/maps/*'`
-do
- file=`echo $file | tr '$' ' '`
- if map_convert.pl ${TERRAIN} "${file}" "${file}-pl"
- then
- if map_convert.py "${file}" "${file}-py"
- then
- if diff -u "${file}-pl" "${file}-py"
- then
- rm "${file}-pl" "${file}-py"
- else
- echo "${file}: regression failed"
- fi
- else
- echo "${file}: Python conversion failed"
- rm "${file}-pl"
- exit 1
- fi
- else
- echo "${file}: Perl conversion failed"
- continue
- fi
-done
-
-exit 0
_______________________________________________
Wesnoth-commits mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-commits