summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBryan Bishop <kanzure@gmail.com>2013-09-01 15:08:58 -0500
committerBryan Bishop <kanzure@gmail.com>2013-09-01 15:08:58 -0500
commit0b67d453f6eefa3132e9e28bce6bdf8ad5e9a362 (patch)
tree67b161e4b3b846f26836311ffce29b06b6360d93
parentf62d266e1abafeac20255f1ef447c4244a350e80 (diff)
fix "from trainers import .." syntax
-rw-r--r--pokemontools/crystal.py59
1 files changed, 27 insertions, 32 deletions
diff --git a/pokemontools/crystal.py b/pokemontools/crystal.py
index c824515..8f1c27f 100644
--- a/pokemontools/crystal.py
+++ b/pokemontools/crystal.py
@@ -47,12 +47,6 @@ texts = []
# this doesn't do anything but is still used in TextScript
constant_abbreviation_bytes = {}
-from trainers import (
- trainer_group_pointer_table_address, # 0x39999
- trainer_group_pointer_table_address_gs, # 0x3993E
- trainer_group_names,
-)
-
import chars
import labels
import pksv
@@ -60,6 +54,7 @@ import romstr
import move_constants
import pointers
import interval_map
+import trainers
# ---- script_parse_table explanation ----
# This is an IntervalMap that keeps track of previously parsed scripts, texts
@@ -1641,16 +1636,16 @@ class TrainerIdParam(SingleByteParam):
trainer_group_id = self.parent.params[foundit].byte
# check the rule to see whether to use an id or not
- if ("uses_numeric_trainer_ids" in trainer_group_names[trainer_group_id].keys()) or \
- (not "trainer_names" in trainer_group_names[trainer_group_id].keys()):
+ if ("uses_numeric_trainer_ids" in trainers.trainer_group_names[trainer_group_id].keys()) or \
+ (not "trainer_names" in trainers.trainer_group_names[trainer_group_id].keys()):
return str(self.byte)
else:
- return trainer_group_names[trainer_group_id]["trainer_names"][self.byte-1]
+ return trainers.trainer_group_names[trainer_group_id]["trainer_names"][self.byte-1]
class TrainerGroupParam(SingleByteParam):
def to_asm(self):
trainer_group_id = self.byte
- return trainer_group_names[trainer_group_id]["constant"]
+ return trainers.trainer_group_names[trainer_group_id]["constant"]
class MoveParam(SingleByteParam):
def to_asm(self):
@@ -3771,15 +3766,15 @@ class TrainerFragment(Command):
# give this object a possibly better label
label = "Trainer"
- if ("uses_numeric_trainer_ids" in trainer_group_names[trainer_group].keys()) \
- or ("trainer_names" not in trainer_group_names[trainer_group].keys()):
- label += string.capwords(trainer_group_names[trainer_group]["constant"])
- if "trainer_names" in trainer_group_names[trainer_group].keys() \
- and len(trainer_group_names[trainer_group]["trainer_names"]) > 1:
+ if ("uses_numeric_trainer_ids" in trainers.trainer_group_names[trainer_group].keys()) \
+ or ("trainer_names" not in trainers.trainer_group_names[trainer_group].keys()):
+ label += string.capwords(trainers.trainer_group_names[trainer_group]["constant"])
+ if "trainer_names" in trainers.trainer_group_names[trainer_group].keys() \
+ and len(trainers.trainer_group_names[trainer_group]["trainer_names"]) > 1:
label += str(trainer_id)
else:
- label += string.capwords(trainer_group_names[trainer_group]["constant"]) + \
- string.capwords(trainer_group_names[trainer_group]["trainer_names"][trainer_id-1])
+ label += string.capwords(trainers.trainer_group_names[trainer_group]["constant"]) + \
+ string.capwords(trainers.trainer_group_names[trainer_group]["trainer_names"][trainer_id-1])
label = label.replace("Gruntm", "GruntM").replace("Gruntf", "GruntF").replace("Lt_surge", "LtSurge")
@@ -3858,8 +3853,8 @@ class TrainerGroupTable:
def __init__(self):
assert 0x43 in trainer_group_maximums.keys(), "TrainerGroupTable should onyl be created after all the trainers have been found"
- self.address = trainer_group_pointer_table_address
- self.bank = pointers.calculate_bank(trainer_group_pointer_table_address)
+ self.address = trainers.trainer_group_pointer_table_address
+ self.bank = pointers.calculate_bank(trainers.trainer_group_pointer_table_address)
self.label = Label(name="TrainerGroupPointerTable", address=self.address, object=self)
self.size = None
self.last_address = None
@@ -3880,16 +3875,16 @@ class TrainerGroupTable:
def parse(self):
size = 0
- for (key, kvalue) in trainer_group_names.items():
+ for (key, kvalue) in trainers.trainer_group_names.items():
# calculate the location of this trainer group header from its pointer
pointer_bytes_location = kvalue["pointer_address"]
parsed_address = calculate_pointer_from_bytes_at(pointer_bytes_location, bank=self.bank)
- trainer_group_names[key]["parsed_address"] = parsed_address
+ trainers.trainer_group_names[key]["parsed_address"] = parsed_address
# parse the trainer group header at this location
name = kvalue["name"]
trainer_group_header = TrainerGroupHeader(address=parsed_address, group_id=key, group_name=name)
- trainer_group_names[key]["header"] = trainer_group_header
+ trainers.trainer_group_names[key]["header"] = trainer_group_header
self.headers.append(trainer_group_header)
# keep track of the size of this pointer table
@@ -4036,7 +4031,7 @@ class TrainerHeader:
x = 2
else:
x = 1
- seed = trainer_group_names[self.trainer_group_id]["name"]+"_"+seed[-x:]
+ seed = trainers.trainer_group_names[self.trainer_group_id]["name"]+"_"+seed[-x:]
elif self.trainer_group_id == 0x1f and "EXECUTIVE" in seed:
seed = "GRUNT_"+seed
elif self.trainer_group_id == 0x2d and "BENNY" in seed.upper():
@@ -4268,7 +4263,7 @@ def report_unreferenced_trainer_ids():
if len(unreferenced) > 0:
total_unreferenced_trainers += len(unreferenced)
- output = "trainer group "+hex(key)+" (\""+trainer_group_names[key]["name"]+"\")"
+ output = "trainer group "+hex(key)+" (\""+trainers.trainer_group_names[key]["name"]+"\")"
output += " (min="+str(min_id)+", max="+str(max_id)+")"
output += " has "+str(len(unreferenced))+" unreferenced trainer ids"
output += ": " + str(unreferenced)
@@ -4311,7 +4306,7 @@ def trainer_group_report():
output = ""
total = 0
for trainer_group_id in trainer_group_maximums.keys():
- group_name = trainer_group_names[trainer_group_id]["name"]
+ group_name = trainers.trainer_group_names[trainer_group_id]["name"]
first_name = trainer_name_from_group(trainer_group_id).replace("\n", "")
trainers = len(trainer_group_maximums[trainer_group_id])
total += trainers
@@ -4324,7 +4319,7 @@ def trainer_group_report():
def make_trainer_group_name_trainer_ids(trainer_group_table, debug=True):
"""
- Edits trainer_group_names and sets the trainer names.
+ Edits trainers.trainer_group_names and sets the trainer names.
For instance, "AMY & MAY" becomes "AMY_AND_MAY1" and "AMY_AND_MAY2"
This should only be used after TrainerGroupTable.parse has been called.
@@ -4353,8 +4348,8 @@ def make_trainer_group_name_trainer_ids(trainer_group_table, debug=True):
culprit.seed_constant_name = culprit.name.replace("@", "") + str(id+1)
culprit.constant_name = culprit.make_constant_name()
- # now add the trainer names to trainer_group_names
- trainer_group_names[i]["trainer_names"] = [theader.make_constant_name() for theader in header.individual_trainer_headers]
+ # now add the trainer names to trainers.trainer_group_names
+ trainers.trainer_group_names[i]["trainer_names"] = [theader.make_constant_name() for theader in header.individual_trainer_headers]
i += 1
@@ -4368,12 +4363,12 @@ def pretty_print_trainer_id_constants():
make_trainer_group_name_trainer_ids must be called prior to this.
"""
assert trainer_group_table != None, "must make trainer_group_table first"
- assert trainer_group_names != None, "must have trainer_group_names available"
- assert "trainer_names" in trainer_group_names[1].keys(), "trainer_names must be set in trainer_group_names"
+ assert trainers.trainer_group_names != None, "must have trainers.trainer_group_names available"
+ assert "trainer_names" in trainers.trainer_group_names[1].keys(), "trainer_names must be set in trainers.trainer_group_names"
output = ""
- for (key, value) in trainer_group_names.items():
- if "uses_numeric_trainer_ids" in trainer_group_names[key].keys():
+ for (key, value) in trainers.trainer_group_names.items():
+ if "uses_numeric_trainer_ids" in trainers.trainer_group_names[key].keys():
continue
id = key
group = value