Esempio n. 1
0
    def __init__(self, parser_obj=None, data=None, pieces=None):
        retrievers = [
            Retriever("unit_count", DataType("u32")),
            Retriever("units", DataType(UnitStruct))
        ]

        super().__init__("Player Units", retrievers, parser_obj, data, pieces=pieces)
Esempio n. 2
0
    def __init__(self, parser_obj=None, data=None):
        retrievers = [
            Retriever("variable_id", DataType("u32")),
            Retriever("name", DataType("str32")),
        ]

        super().__init__("Variable", retrievers, parser_obj, data)
Esempio n. 3
0
    def __init__(self, parser_obj=None, data=None):
        retrievers = [
            Retriever("Unit count", DataType("u32"), save_as="unit_count"),
            Retriever("Units", DataType(UnitStruct), set_repeat="{unit_count}")
        ]

        super().__init__("Player Units", retrievers, parser_obj, data)
Esempio n. 4
0
    def __init__(self, parser_obj=None, data=None, pieces=None):
        retrievers = [
            Retriever("ai_file_name", DataType("str32")),
            Retriever("ai_file", DataType("str32")),
        ]

        super().__init__("AI2", retrievers, parser_obj, data, pieces=pieces)
Esempio n. 5
0
    def __init__(self, parser_obj=None, data=None):
        retrievers = [
            Retriever("Unknown, always 0", DataType("u32")),
            Retriever("Unknown, always 0 (2)", DataType("u32")),
            Retriever("AI .per file text", DataType("str32")),
        ]

        super().__init__("AI", retrievers, parser_obj, data)
Esempio n. 6
0
    def __init__(self, parser_obj=None, data=None, pieces=None):
        retrievers = [
            Retriever("unknown", DataType("u32")),
            Retriever("unknown_2", DataType("u32")),
            Retriever("ai_per_file_text", DataType("str32")),
        ]

        super().__init__("AI", retrievers, parser_obj, data, pieces=pieces)
    def __init__(self, parser_obj=None, data=None):
        retrievers = [
            Retriever("Active", DataType("u32")),
            Retriever("Human", DataType("u32")),
            Retriever("Civilization", DataType("u32")),
            Retriever("CTY mode", DataType("u32"))
        ]

        super().__init__("Player Data #1", retrievers, parser_obj, data)
Esempio n. 8
0
    def __init__(self, parser_obj=None, data=None):
        retrievers = [
            Retriever("ASCII, Pregame cinematic filename", DataType("str16")),
            Retriever("ASCII, Victory cinematic filename", DataType("str16")),
            Retriever("ASCII, Loss cinematic filename", DataType("str16")),
            # Retriever("Separator (! in some version)", DataType("1")),
        ]

        super().__init__("Cinematics", retrievers, parser_obj)
Esempio n. 9
0
    def __init__(self, parser_obj=None, data=None):
        retrievers = [
            Retriever("Terrain ID", DataType("u8")),
            Retriever("Elevation", DataType("u8")),
            Retriever("Unused", DataType("u8")),
            Retriever("Separator?", DataType("4"))
        ]

        super().__init__("Terrain", retrievers, parser_obj, data)
Esempio n. 10
0
    def __init__(self, parser_obj=None, data=None):
        retrievers = [
            Retriever("Number of unit sections", DataType("u32"), save_as="unit_sections"),  # Always 9 (Gaia + 8Plyrs)
            Retriever("Player data #4", DataType(PlayerDataFourStruct, repeat=8)),
            Retriever("Number of players?", DataType("u32")),  # Also always 9 (Gaia + 8Plyrs)
            Retriever("Player data #3", DataType(PlayerDataThreeStruct, repeat=8)),
            Retriever("Player Units", DataType(PlayerUnitsStruct), set_repeat="{unit_sections}"),
        ]

        super().__init__("Units", retrievers, parser_obj, data=data)
Esempio n. 11
0
    def __init__(self, parser_obj=None, data=None, pieces=None):
        retrievers = [
            Retriever("per_player_diplomacy", DataType(PlayerDiplomacyStruct, repeat=16)),
            Retriever("individual_victories", DataType("60", repeat=16 * 12)),  # 12 Conditions per (16) Player(s).
            Retriever("separator", DataType("u32")),
            Retriever("per_player_allied_victory", DataType("u32", repeat=16)),  # Ignored -> PlayerDataThree
            Retriever("unknown", DataType("4")),
        ]

        super().__init__("Diplomacy", retrievers, parser_obj, data=data, pieces=pieces)
Esempio n. 12
0
    def __init__(self, parser_obj=None, data=None):
        retrievers = [
            Retriever("Per-player diplomacy", DataType(PlayerDiplomacyStruct, repeat=16)),
            Retriever("Individual Victories", DataType("60", repeat=16*12)),  # 12 Conditions per (16) Player(s).
            Retriever("Separator", DataType("u32")),
            Retriever("Per-player allied victory", DataType("u32", repeat=16)),  # Ignored -> PlayerDataThree
            Retriever("Unknown", DataType("4")),
        ]

        super().__init__("Diplomacy", retrievers, parser_obj)
    def __init__(self, parser_obj=None, data=None, pieces=None):
        retrievers = [
            Retriever("active", DataType("u32")),
            Retriever("human", DataType("u32")),
            Retriever("civilization", DataType("u32")),
            Retriever("architecture_set", DataType("u32")),
            Retriever("cty_mode", DataType("u32")),
        ]

        super().__init__("Player Data #1", retrievers, parser_obj, data, pieces=pieces)
Esempio n. 14
0
    def __init__(self, parser_obj=None, data=None):
        retrievers = [
            Retriever("ASCII, Background filename", DataType("str16")),
            Retriever("Picture Version", DataType("u32")),
            Retriever("Bitmap width", DataType("u32")),
            Retriever("Bitmap height", DataType("s32")),
            Retriever("Picture Orientation", DataType("s16")),
            # Retriever("	BITMAPINFOHEADER", DataType("u32")),
        ]

        super().__init__("Background Image", retrievers, parser_obj)
Esempio n. 15
0
    def __init__(self, parser_obj=None, data=None, pieces=None):
        retrievers = [
            Retriever("ascii_filename", DataType("str16")),
            Retriever("picture_version", DataType("u32")),
            Retriever("bitmap_width", DataType("u32")),
            Retriever("bitmap_height", DataType("s32")),
            Retriever("picture_orientation", DataType("s16")),
            # Retriever("BITMAPINFOHEADER", DataType("u32")),
        ]

        super().__init__("Background Image", retrievers, parser_obj, data=data, pieces=pieces)
Esempio n. 16
0
    def __init__(self, parser_obj=None, data=None, pieces=None):
        retrievers = [
            Retriever("ascii_pregame", DataType("str16")),
            Retriever("ascii_victory", DataType("str16")),
            Retriever("ascii_loss", DataType("str16")),
            # Retriever("Separator (! in some version)", DataType("1")),
        ]

        super().__init__("Cinematics",
                         retrievers,
                         parser_obj,
                         data=data,
                         pieces=pieces)
Esempio n. 17
0
    def __init__(self, parser_obj=None, data=None, pieces=None):
        retrievers = []
        for disabled_type in ["tech", "building", "unit"]:
            retrievers.append(
                Retriever(f"per_player_number_of_disabled_{disabled_type}s",
                          DataType("u32", repeat=16)))
            for player in range(1, 9):
                retrievers.append(
                    Retriever(f"disabled_{disabled_type}_ids_player_{player}",
                              DataType("u32")))
                # Unused: Players 9 - 16 can't have {disabled_type} technologies
            retrievers.append(
                Retriever(f"disabled_{disabled_type}_ids_player9-16",
                          DataType("u32", repeat=0)))

        retrievers += [
            Retriever("combat_mode", DataType("u32")),
            Retriever("naval_mode", DataType("u32")),
            Retriever("all_techs", DataType("u32")),
            Retriever("per_player_starting_age", DataType("u32", repeat=16)),
            # 2: Dark 6 = Post | 1-8 players 9 GAIA
            Retriever("unknown", DataType("36")),
        ]
        super().__init__("Options",
                         retrievers,
                         parser_obj,
                         data=data,
                         pieces=pieces)
Esempio n. 18
0
    def __init__(self, parser_obj=None, data=None):
        retrievers = [
            Retriever("Version", DataType("c4"), save_as="scenario_version"),
            Retriever("Header length", DataType("u32")),
            Retriever("Savable", DataType("s32")),
            Retriever("Timestamp of last save", DataType("u32")),
            Retriever("Scenario instructions", DataType("str32")),
            Retriever("Individual victories used", DataType("u32")),
            Retriever("Player count", DataType("u32")),
            Retriever("Data", DataType("36")),
            Retriever("Creator name", DataType("str32")),
            Retriever("Data (2)", DataType("4")),
        ]

        super().__init__("File Header", retrievers, parser_obj)
Esempio n. 19
0
    def __init__(self, parser_obj=None, data=None, pieces=None):
        retrievers = [
            Retriever("version", DataType("c4"), save_as="scenario_version"),
            Retriever("header_length", DataType("u32")),
            Retriever("savable", DataType("s32")),
            Retriever("timestamp_of_last_save", DataType("u32")),
            Retriever("scenario_instructions", DataType("str32")),
            Retriever("individual_victories_used", DataType("u32")),
            Retriever("player_count", DataType("u32")),
            Retriever("data", DataType("36")),
            Retriever("creator_name", DataType("str32")),
            Retriever("trigger_count", DataType("u32")),
        ]

        super().__init__("File Header", retrievers, parser_obj, data=data, pieces=pieces)
Esempio n. 20
0
    def __init__(self,
                 name,
                 datatype=DataType(),
                 save_as=None,
                 set_repeat=None,
                 log_value=False):
        """
        Args:
            name (str): The name of the item. Has to be unique within the Piece or Struct
            datatype (DataType): A datatype object
            save_as (str): To Be Removed (Deprecated)
            set_repeat (str): To Be Removed (Deprecated)
            log_value (bool): A boolean for, mostly, debugging. This will log this Retriever with it's data when the
                data is changed, when this retriever is constructed and committed.
        """
        self.name: str = name
        self.datatype: DataType = datatype
        if log_value:
            self.datatype.log_value = True
        self.datatype._debug_retriever_name = name
        self.save_as = save_as
        self.set_repeat = set_repeat
        self.log_value = log_value
        self._data = None

        self.on_construct: RetrieverDependency
        self.on_commit: RetrieverDependency
        self.on_refresh: RetrieverDependency
Esempio n. 21
0
    def __init__(self, parser_obj=None, data=None, pieces=None):
        retrievers = [
            Retriever("number_of_unit_sections", DataType("u32")),
            Retriever("player_data_4", DataType(PlayerDataFourStruct,
                                                repeat=8)),
            Retriever("number_of_players",
                      DataType("u32")),  # Also always 9 (Gaia + 8Plyrs)
            Retriever("player_data_3", DataType(PlayerDataThreeStruct,
                                                repeat=8)),
            Retriever("players_units", DataType(PlayerUnitsStruct)),
        ]

        super().__init__("Units",
                         retrievers,
                         parser_obj,
                         data=data,
                         pieces=pieces)
Esempio n. 22
0
    def __init__(self, parser_obj=None, data=None):
        retrievers = [
            Retriever("X position", DataType("f32")),
            Retriever("Y position", DataType("f32")),
            Retriever("Z position", DataType("f32")),
            Retriever("ID", DataType("u32")),
            Retriever("Unit 'constant'", DataType("u16")),
            Retriever("Status", DataType("u8")),
            # Status, Always 2. 0-6 no difference (?) | 7-255 makes it disappear. (Except from the mini-map)
            Retriever("Rotation, in radians", DataType("f32")),
            Retriever("Initial animation frame", DataType("u16")),
            Retriever("Garrisoned in: ID", DataType("s32")),
        ]

        super().__init__("Unit", retrievers, parser_obj, data)
Esempio n. 23
0
    def __init__(self, parser_obj=None, data=None, pieces=None):
        retrievers = [
            Retriever("x", DataType("f32")),
            Retriever("y", DataType("f32")),
            Retriever("z", DataType("f32")),
            Retriever("reference_id", DataType("s32")),
            Retriever("unit_const", DataType("u16")),
            Retriever("status", DataType("u8")),
            # Status, Always 2. 0-6 no difference (?) | 7-255 makes it disappear. (Except from the mini-map)
            Retriever("rotation", DataType("f32")),
            Retriever("initial_animation_frame", DataType("u16")),
            Retriever("garrisoned_in_id", DataType("s32")),
        ]

        super().__init__("Unit", retrievers, parser_obj, data, pieces=pieces)
Esempio n. 24
0
    def __init__(self, parser_obj=None, data=None, pieces=None):
        retrievers = [
            Retriever("stance_with_each_player", DataType("u32", repeat=16)),
        ]

        super().__init__("Player Diplomacy",
                         retrievers,
                         parser_obj,
                         data,
                         pieces=pieces)
Esempio n. 25
0
    def __init__(self, parser_obj=None, data=None, pieces=None):
        retrievers = [
            Retriever("trigger_version", DataType("f64")),
            Retriever("trigger_instruction_start", DataType("s8")),
            Retriever("number_of_triggers", DataType("s32")),
            Retriever("trigger_data", DataType(TriggerStruct)),
            Retriever("trigger_display_order_array", DataType("u32")),
            Retriever("unknown", DataType("1028")),
            Retriever("number_of_variables", DataType("u32")),
            Retriever("variable_data", DataType(VariableStruct)),
        ]

        super().__init__("Triggers", retrievers, parser_obj, data=data, pieces=pieces)
Esempio n. 26
0
    def __init__(self, parser_obj=None, data=None, pieces=None):
        retrievers = [
            Retriever("unknown_2", DataType("4")),
            Retriever("script_file_path", DataType("str16")),
            Retriever("unknown_3", DataType("4")),
            Retriever("ai_files_present", DataType("u32")),
            Retriever("unknown_4", DataType("4")),
            Retriever("number_of_ai_files", DataType("u32"), possibly_list=False),
            Retriever("ai_files", DataType(AI2Struct)),
            Retriever("__END_OF_FILE_MARK__", DataType("1")),
        ]

        super().__init__("Files", retrievers, parser_obj, data=data, pieces=pieces)
    def __init__(self, parser_obj=None, data=None):
        retrievers = [
            Retriever("Food, duplicate", DataType("f32")),
            Retriever("Wood, duplicate", DataType("f32")),
            Retriever("Gold, duplicate", DataType("f32")),
            Retriever("Stone, duplicate", DataType("f32")),
            Retriever("'Ore X', duplicate", DataType("f32")),
            Retriever("Trade Goods, duplicate", DataType("f32")),
            Retriever("Population limit", DataType("f32")),
        ]

        super().__init__("Player Data #4", retrievers, parser_obj, data)
Esempio n. 28
0
    def __init__(self, parser_obj=None, data=None):
        retrievers = [
            Retriever("Gold", DataType("u32")),
            Retriever("Wood", DataType("u32")),
            Retriever("Food", DataType("u32")),
            Retriever("Stone", DataType("u32")),
            Retriever("Ore X (unused)", DataType("u32")),
            Retriever("Trade Goods", DataType("u32")),
            Retriever("Player color", DataType("u32"))
        ]

        super().__init__("Resources", retrievers, parser_obj, data)
Esempio n. 29
0
    def __init__(self, parser_obj=None, data=None, pieces=None):
        retrievers = [
            Retriever("gold", DataType("u32")),
            Retriever("wood", DataType("u32")),
            Retriever("food", DataType("u32")),
            Retriever("stone", DataType("u32")),
            Retriever("ore_x_unused", DataType("u32")),
            Retriever("trade_goods", DataType("u32")),
            Retriever("player_color", DataType("u32"))
        ]

        super().__init__("Resources", retrievers, parser_obj, data, pieces=pieces)
Esempio n. 30
0
 def __init__(self,
              name,
              datatype=DataType(),
              on_success=None,
              save_as=None,
              set_repeat=None,
              log_value=False):
     self.name = name
     self.datatype = datatype
     self.on_success = on_success
     self.save_as = save_as
     self.set_repeat = set_repeat
     self.log_value = log_value
     self.data = None