Removed unused journeylifter Python tool
This commit is contained in:
parent
bbf43bd4a7
commit
b896517834
2 changed files with 1 additions and 130 deletions
|
@ -29,7 +29,7 @@
|
|||
* Chat is now enable in single-player and hotseat multiplayer. (Issue#1111)
|
||||
* Ported the "expand-terrain-macros" tool to Python 3
|
||||
* It's now possible to chat with oneself in SP campaigns. Chat is shown in replays. (Issue#1111)
|
||||
* Removed the unused "scoutDefault" Python tool
|
||||
* Removed unused "scoutDefault" and "journeylifter" Python tools
|
||||
|
||||
## Version 1.15.1
|
||||
### Editor
|
||||
|
|
|
@ -1,129 +0,0 @@
|
|||
#!/usr/bin/env python2
|
||||
|
||||
"""
|
||||
journeylifter -- turn in-line track markers into a journey file.
|
||||
|
||||
Run in the scenario directory of a campaign. Generates a journey.cfg and
|
||||
rewrites the files to reference it.
|
||||
|
||||
All mainline campaigns have already undergone this conversion; this script
|
||||
may be helpful with UMC.
|
||||
|
||||
Assumes any existing journey.cfg is generated and removes it.
|
||||
Assumes wmllint has been run, converting DOT/CROSS macros to the new form.
|
||||
Assumes the scenario's filenames sort in the order they present.
|
||||
Assumes there is only one continuous span of journey markers per file.
|
||||
"""
|
||||
|
||||
import os, sys, re, getopt, shutil
|
||||
|
||||
top = "."
|
||||
if __name__ == "__main__":
|
||||
(options, arguments) = getopt.getopt(sys.argv[1:], "-d?hrc", [
|
||||
'directory',
|
||||
'help',
|
||||
'revert',
|
||||
'clean',
|
||||
])
|
||||
revert = clean = False
|
||||
for (opt, val) in options:
|
||||
if opt in ('-d', '--directory'):
|
||||
top = val
|
||||
elif opt in ('-?', '-h', '-"# trackplacer: tracks begin\n'):
|
||||
print __doc__
|
||||
sys.exit(0)
|
||||
elif opt in ('-r', '--revert'):
|
||||
revert = True
|
||||
elif opt in ('-c', '--clean'):
|
||||
clean = True
|
||||
|
||||
os.chdir(top)
|
||||
try:
|
||||
os.remove("journey.cfg")
|
||||
except OSError:
|
||||
pass
|
||||
files = filter(lambda x: x.endswith(".cfg"), os.listdir("."))
|
||||
files.sort()
|
||||
if revert:
|
||||
for name in files:
|
||||
if os.path.exists(name + ".bak"):
|
||||
os.rename(name + ".bak", name)
|
||||
elif clean:
|
||||
for name in files:
|
||||
if os.path.exists(name + ".bak"):
|
||||
os.remove(name + ".bak")
|
||||
else:
|
||||
jfp = open("journey.cfg", "w")
|
||||
jfp.write("# trackplacer: tracks begin\n\n")
|
||||
old_waypoint_re = re.compile("{OLD_[A-Z]+ +([0-9]+) +([0-9]+)}")
|
||||
new_waypoint_re = re.compile("{NEW_[A-Z]+ +([0-9]+) +([0-9]+)}")
|
||||
scenario_id_re = re.compile('id=[0-9]*_?"?([^"\n]*)')
|
||||
background_re = re.compile('background=.*')
|
||||
background = None
|
||||
mapfile = {}
|
||||
out = {}
|
||||
n = 0
|
||||
id_list = []
|
||||
indent = 8
|
||||
|
||||
for name in files:
|
||||
out[name] = []
|
||||
lineno = 0
|
||||
scenario_id = None
|
||||
inside = False
|
||||
for line in open(name):
|
||||
lineno += 1
|
||||
if re.search(old_waypoint_re, line):
|
||||
continue
|
||||
elif re.search(new_waypoint_re, line):
|
||||
indent = 0
|
||||
while line[indent] == ' ':
|
||||
indent += 1
|
||||
if not inside:
|
||||
inside = True
|
||||
n += 1
|
||||
jfp.write("#define JOURNEY_STAGE%d\n" % n)
|
||||
jfp.write(" # from %s, line %d\n" % (name, lineno))
|
||||
jfp.write(" " + line.lstrip())
|
||||
elif re.search(background_re, line):
|
||||
mapfile["JOURNEY_STAGE%d" % (n+1,)] = (line, name, lineno)
|
||||
out[name].append(line)
|
||||
else:
|
||||
if inside:
|
||||
inside = False
|
||||
jfp.write("#enddef\n\n")
|
||||
out[name].append((" " * indent) + "{TO_%s}\n" % scenario_id)
|
||||
id_list.append((scenario_id, name))
|
||||
out[name].append(line)
|
||||
if not scenario_id:
|
||||
m = scenario_id_re.search(line)
|
||||
if m:
|
||||
scenario_id = m.group(1).upper()
|
||||
# Now edit out background lines in relevant [parts]s
|
||||
for (line, name, lineno) in mapfile.values():
|
||||
i = lineno
|
||||
while True:
|
||||
if '[part]' in out[name][i]:
|
||||
break
|
||||
if 'background' in out[name][i]:
|
||||
out[name] = out[name][:i] + out[name][i+1:]
|
||||
break
|
||||
i -= 1
|
||||
# Done processing individual files, now write the journey postamble
|
||||
jfp.write("# trackplacer: tracks end\n")
|
||||
jfp.write("# wmllint: no translatables\n\n")
|
||||
n = 0
|
||||
for (scenario_id, name) in id_list:
|
||||
n += 1
|
||||
jfp.write("#define TO_%s\n" % scenario_id)
|
||||
jfp.write(" # from %s\n" % name)
|
||||
segment = "JOURNEY_STAGE%d" % n
|
||||
if segment in mapfile:
|
||||
(line, name, lineno) = mapfile[segment]
|
||||
jfp.write(" " + line.lstrip())
|
||||
jfp.write(" {%s}\n" % segment)
|
||||
jfp.write("#enddef\n\n")
|
||||
jfp.close()
|
||||
for name in files:
|
||||
os.rename(name, name + ".bak")
|
||||
open(name, "w").writelines(out[name])
|
Loading…
Add table
Reference in a new issue