Ejemplo n.º 1
0
def get_trainer_gender():
    offset_table = VERSION_TABLE[savefile.version]
    section_offset = savefile.section_table["TRAINER_INFO"]

    b = savefile.bytes_at(section_offset + offset_table["PLAYER_GENDER"], 1)[0]

    return {0x00: "M", 0x01: "F"}[b]
Ejemplo n.º 2
0
def get_trainer_id():
    offset_table = VERSION_TABLE[savefile.version]
    section_offset = savefile.section_table["TRAINER_INFO"]

    bs = savefile.bytes_at(section_offset + offset_table["TRAINER_ID"], 4)
    public_id = int.from_bytes(bs[0:2], "little")
    secret_id = int.from_bytes(bs[2:4], "little")

    return (public_id, secret_id)
Ejemplo n.º 3
0
    def get_nickname(self):
        bs = savefile.bytes_at(self.offset + POKEMON_TABLE["NICKNAME"], 10)

        chars = []
        for b in bs:
            if b == 255:
                break
            chars.append(BYTE_TO_CHAR.get(b, "?"))

        return "".join(chars)
Ejemplo n.º 4
0
def set_trainer_id(new_public_id, new_secret_id):
    offset_table = VERSION_TABLE[savefile.version]
    section_offset = savefile.section_table["TRAINER_INFO"]

    savefile.set_value_at(section_offset + offset_table["TRAINER_ID"],
                          new_public_id, 2)
    savefile.set_value_at(section_offset + offset_table["TRAINER_ID"] + 2,
                          new_secret_id, 2)

    return savefile.bytes_at(section_offset + offset_table["TRAINER_ID"], 4)
Ejemplo n.º 5
0
def get_trainer_name():
    offset_table = VERSION_TABLE[savefile.version]
    section_offset = savefile.section_table["TRAINER_INFO"]

    bs = savefile.bytes_at(section_offset + offset_table["PLAYER_NAME"], 7)

    chars = []
    for b in bs:  # Trim input to 7 bytes
        chars.append(BYTE_TO_CHAR[b])

    return "".join(chars)
Ejemplo n.º 6
0
 def check_validity(self):
     bs = savefile.bytes_at(self.offset + POKEMON_TABLE["DATA"], 48)
     return any(bs)