blob: 13350f6cef2b90095d457c554e45b3644ab4db0c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
from __future__ import print_function
from __future__ import absolute_import
#author: Bryan Bishop <kanzure@gmail.com>
#date: 2012-01-27
#fix trainer header labels to not suck so much
from . import analyze_incbins
def replace_trainer_header_labels(debug=False):
"""trainer header labels could be better"""
asm = analyze_incbins.asm
if debug: print(str(type(asm)))
single_asm = "\n".join(asm)
current_map_name = "asdjkl;"
line_id = 0
trainer_header_counter = 1
for line in asm:
trainer_header_base = current_map_name + "TrainerHeader"
trainer_header_name = trainer_header_base + str(trainer_header_counter)
#we've found a TrainerHeaders thing
if "TrainerHeaders:" in line:
current_map_name = line.split("TrainerHeaders")[0]
if line[0:len(current_map_name)] == current_map_name:
trainer_header_counter = 1
#replace a trainer header label
elif "TrainerHeader_" in line and line[0:14] == "TrainerHeader_":
temp = line.split("TrainerHeader_")[1]
temp = temp.split(": ;")[0]
old_label = "TrainerHeader_" + temp
new_label = current_map_name + "TH" + str(trainer_header_counter) #trainer_header_name
single_asm = single_asm.replace(old_label + ":", new_label + ":")
single_asm = single_asm.replace(old_label + "\n", new_label + "\n")
if debug: print("old_label = " + old_label)
if debug: print("new_label = " + new_label)
trainer_header_counter += 1
elif trainer_header_base in line and line[0:len(trainer_header_base)] == trainer_header_base and (line[len(trainer_header_base)+1:len(trainer_header_base)+2] == ":" or line[len(trainer_header_base)+2:len(trainer_header_base)+3] == ":"):
if line[len(trainer_header_base)+1:len(trainer_header_base)+2] == ":":
trainer_header_counter = int(line[len(trainer_header_base):len(trainer_header_base)+1])
elif line[len(trainer_header_base)+2:len(trainer_header_base)+3] == ":":
trainer_header_counter = int(line[len(trainer_header_base):len(trainer_header_base)+2])
trainer_header_name = trainer_header_base + str(trainer_header_counter)
#replace a text label
elif " TextBeforeBattle" in line and not current_map_name in line:
old_label = line.split("dw ")[1].split(" ;")[0]
new_label = current_map_name + "B4BattleTxt" + str(trainer_header_counter) #trainer_header_name + "BeforeBattleText"
single_asm = single_asm.replace(old_label + ":", new_label + ":")
single_asm = single_asm.replace(old_label + "\n", new_label + "\n")
single_asm = single_asm.replace(old_label + " ;", new_label + " ;")
if debug: print("old_label = " + old_label)
if debug: print("new_label = " + new_label)
#replace a text label
elif " TextAfterBattle" in line and not current_map_name in line:
old_label = line.split("dw ")[1].split(" ;")[0]
new_label = current_map_name + "AfterBattleTxt" + str(trainer_header_counter) #trainer_header_name + "AfterBattleText"
single_asm = single_asm.replace(old_label + ":", new_label + ":")
single_asm = single_asm.replace(old_label + "\n", new_label + "\n")
single_asm = single_asm.replace(old_label + " ;", new_label + " ;")
if debug: print("old_label = " + old_label)
if debug: print("new_label = " + new_label)
#replace a text label
elif " TextEndBattle" in line and not current_map_name in line:
old_label = line.split("dw ")[1].split(" ;")[0]
new_label = current_map_name + "EndBattleTxt" + str(trainer_header_counter) #trainer_header_name + "EndBattleText"
single_asm = single_asm.replace(old_label + ":", new_label + ":")
single_asm = single_asm.replace(old_label + "\n", new_label + "\n")
single_asm = single_asm.replace(old_label + " ;", new_label + " ;")
if debug: print("old_label = " + old_label)
if debug: print("new_label = " + new_label)
line_id += 1
print(single_asm)
if __name__ == "__main__":
analyze_incbins.load_asm()
replace_trainer_header_labels()
|