tags 434457 +patch thanks I fixed this bug. The problem was an uncaught exception when reading in sm files that contained letters. I don't know what the letters are supposed to mean, but pydance should convert unrecognized input to a sane default, ignore, or give an error, rather than crashing. The patch that I attached will cause pydance to convert unkown characters into "0"'s, which is the behavior described in the pydance docs.
-Brandon
diff -ur pydance-1.0.3/fileparsers.py pydance-1.0.3-5/fileparsers.py --- pydance-1.0.3/fileparsers.py 2005-04-04 13:49:22.000000000 -0700 +++ pydance-1.0.3-5/fileparsers.py 2008-01-29 14:49:07.000000000 -0800 @@ -603,13 +603,13 @@ if gametype in games.COUPLE: step1 = [note] step2 = [note] - step1.extend([SMFile.step[int(s)] for s in sd[0:count/2]]) - step2.extend([SMFile.step[int(s)] for s in sd[count/2:]]) + step1.extend([SMFile.step[util.my_int(s)] for s in sd[0:count/2]]) + step2.extend([SMFile.step[util.my_int(s)] for s in sd[count/2:]]) stepdata[0].append(step1) stepdata[1].append(step2) else: step = [note] - step.extend([SMFile.step[int(s)] for s in sd]) + step.extend([SMFile.step[util.my_int(s)] for s in sd]) stepdata.append(step) beat += note / 4.0 diff -ur pydance-1.0.3/util.py pydance-1.0.3-5/util.py --- pydance-1.0.3/util.py 2004-05-23 09:00:42.000000000 -0700 +++ pydance-1.0.3-5/util.py 2008-01-29 14:45:33.000000000 -0800 @@ -90,3 +90,11 @@ parts[i] = parts[i][0].capitalize() + oldparts[1:] return " ".join(parts) + +# This function takes a string, and returns an int. Unlike the builtin int() +# function, this function returns 0 if the string does not represent a number +def my_int(x): + try: + return int(x) + except: + return 0