Author: esr
Date: Wed Nov 26 18:11:00 2008
New Revision: 31093

URL: http://svn.gna.org/viewcvs/wesnoth?rev=31093&view=rev
Log:
Yet more recruitment-pattern checking.

Modified:
    trunk/data/tools/wmllint

Modified: trunk/data/tools/wmllint
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/data/tools/wmllint?rev=31093&r1=31092&r2=31093&view=diff
==============================================================================
--- trunk/data/tools/wmllint (original)
+++ trunk/data/tools/wmllint Wed Nov 26 18:11:00 2008
@@ -723,11 +723,11 @@
 
 def consistency_check():
     "Consistency-check state information picked up by sanity_check"
-    #utypes = {}
     derivedlist = map(lambda x: x[2], derived_units)
     baselist = map(lambda x: x[3], derived_units)
     for (filename, recruitdict, patterndict) in sides:
         for (rdifficulty, (rl, recruit)) in recruitdict.items():
+            utypes = []
             for rtype in recruit:
                 if rtype not in unit_types:
                     # Assume WML coder knew what he was doing if macro 
reference
@@ -739,9 +739,9 @@
                         print '"%s", line %d: %s has no usage type' % 
(filename, rl, rtype)
                     continue
                 utype = usage[rtype]
+                utypes.append(utype)
                 for (pdifficulty, (pl, recruit_pattern)) in 
patterndict.items():
                     if condition_match(pdifficulty, rdifficulty):
-                        #utypes[rdifficulty].append(utype)
                         if utype not in recruit_pattern:
                             rshow = ''
                             if rdifficulty is not None:
@@ -750,10 +750,13 @@
                             if pdifficulty is not None:
                                 pshow = ' ' + pdifficulty
                             print '"%s", line %d: %s%s (%s) doesn\'t match 
the%s recruitment pattern (%s) for its side' % (filename, rl, rshow, rtype, 
utype, pshow, ", ".join(recruit_pattern))
-            #for (pdifficulty, (pl, recruitment_pattern)) in 
patterndict.items():
-            #    for utype in recruitment_pattern:
-            #        if utype not in utypes:
-            #            print '"%s", line %d: %s doesn\'t match a recruitable 
type for its side' % (filename, pl, utype)
+            # We have a list of all the usage types recruited at this 
sifficulty
+            # in utypes.  Use it to check the matching pattern, if any. 
+            for (pdifficulty, (pl, recruitment_pattern)) in 
patterndict.items():
+                if condition_match(pdifficulty, rdifficulty):
+                    for utype in recruitment_pattern:
+                        if utype not in utypes:
+                            print '"%s", line %d: %s doesn\'t match a 
recruitable type for its side and difficulty' % (filename, pl, utype)
     if movetypes:
         for (unit_id, filename, line, movetype) in unit_movetypes:
             if movetype not in movetypes:


_______________________________________________
Wesnoth-commits mailing list
Wesnoth-commits@gna.org
https://mail.gna.org/listinfo/wesnoth-commits

Reply via email to