parameters: (cls, game_version)
return_statement: return data_format
docstring: Return the members in this struct.
docstring_summary: Return the members in this struct.
docstring_tokens: Return the members in this struct .
function: def get_data_format_members(cls, game_version):
          """
          Return the members in this struct.
          """
          data_format = [
              (READ_GEN, None, None, IncludeMembers(cls=LivingUnit)),
              (READ_GEN, "construction_graphic_id", StorageType.ID_MEMBER, "int16_t"),
          ]
  
          if game_version[0].game_id not in ("ROR", "AOE1DE"):
              data_format.append((READ_GEN, "snow_graphic_id", StorageType.ID_MEMBER, "int16_t"))
  
              if game_version[0].game_id == "AOE2DE":
                  data_format.extend([
                      (READ_GEN, "destruction_graphic_id", StorageType.ID_MEMBER, "int16_t"),
                      (READ_GEN, "destruction_rubble_graphic_id", StorageType.ID_MEMBER, "int16_t"),
                      (READ_GEN, "research_graphic_id", StorageType.ID_MEMBER, "int16_t"),
                      (READ_GEN, "research_complete_graphic_id", StorageType.ID_MEMBER, "int16_t"),
                  ])
  
          data_format.extend([
              # 1=adjacent units may change the graphics
              (READ_GEN, "adjacent_mode", StorageType.BOOLEAN_MEMBER, "int8_t"),
              (READ_GEN, "graphics_angle", StorageType.INT_MEMBER, "int16_t"),
              (READ_GEN, "disappears_when_built", StorageType.BOOLEAN_MEMBER, "int8_t"),
              # second building to place directly on top
              (READ_GEN, "stack_unit_id", StorageType.ID_MEMBER, "int16_t"),
              # change underlying terrain to this id when building completed
              (READ_GEN, "foundation_terrain_id", StorageType.ID_MEMBER, "int16_t"),
              # deprecated terrain-like structures knowns as "Overlays" from alpha
              # AOE used for roads
              (SKIP, "old_overlay_id", StorageType.ID_MEMBER, "int16_t"),
              # research_id to be enabled when building creation
              (READ_GEN, "research_id", StorageType.ID_MEMBER, "int16_t"),
          ])
  
          if game_version[0].game_id not in ("ROR", "AOE1DE"):
              data_format.extend([
                  (SKIP, "can_burn", StorageType.BOOLEAN_MEMBER, "int8_t"),
                  (READ_GEN, "building_annex", StorageType.ARRAY_CONTAINER, SubdataMember(
                      ref_type=BuildingAnnex,
                      length=4
                  )),
                  # building at which an annex building is attached to
                  (READ_GEN, "head_unit_id", StorageType.ID_MEMBER, "int16_t"),
                  # destination unit id when unit shall transform (e.g. unpack)
                  (READ_GEN, "transform_unit_id", StorageType.ID_MEMBER, "int16_t"),
                  (READ_GEN, "transform_sound_id", StorageType.ID_MEMBER, "int16_t"),
              ])
  
          data_format.append((READ_GEN, "construction_sound_id", StorageType.ID_MEMBER, "int16_t"))
  
          if game_version[0].game_id not in ("ROR", "AOE1DE"):
              if game_version[0].game_id == "AOE2DE":
                  data_format.extend([
                      (READ_GEN, "wwise_construction_sound_id", StorageType.ID_MEMBER, "uint32_t"),
                      (READ_GEN, "wwise_transform_sound_id", StorageType.ID_MEMBER, "uint32_t"),
                  ])
  
              data_format.extend([
                  (READ_GEN, "garrison_type", StorageType.BITFIELD_MEMBER, EnumLookupMember(
                      raw_type="int8_t",
                      type_name="garrison_types",
                      lookup_dict=GARRISON_TYPES
                  )),
                  (READ_GEN, "garrison_heal_rate", StorageType.FLOAT_MEMBER, "float"),
                  (SKIP, "garrison_repair_rate", StorageType.FLOAT_MEMBER, "float"),
                  # id of the unit used for salvages
                  (SKIP, "salvage_unit_id", StorageType.ID_MEMBER, "int16_t"),
                  # list of attributes for salvages (looting table)
                  (SKIP, "salvage_attributes", StorageType.ARRAY_INT, "int8_t[6]"),
              ])
  
          return data_format
function_tokens: def get_data_format_members ( cls , game_version ) : data_format = [ ( READ_GEN , None , None , IncludeMembers ( cls = LivingUnit ) ) , ( READ_GEN , "construction_graphic_id" , StorageType . ID_MEMBER , "int16_t" ) , ] if game_version [ 0 ] . game_id not in ( "ROR" , "AOE1DE" ) : data_format . append ( ( READ_GEN , "snow_graphic_id" , StorageType . ID_MEMBER , "int16_t" ) ) if game_version [ 0 ] . game_id == "AOE2DE" : data_format . extend ( [ ( READ_GEN , "destruction_graphic_id" , StorageType . ID_MEMBER , "int16_t" ) , ( READ_GEN , "destruction_rubble_graphic_id" , StorageType . ID_MEMBER , "int16_t" ) , ( READ_GEN , "research_graphic_id" , StorageType . ID_MEMBER , "int16_t" ) , ( READ_GEN , "research_complete_graphic_id" , StorageType . ID_MEMBER , "int16_t" ) , ] ) data_format . extend ( [ # 1=adjacent units may change the graphics ( READ_GEN , "adjacent_mode" , StorageType . BOOLEAN_MEMBER , "int8_t" ) , ( READ_GEN , "graphics_angle" , StorageType . INT_MEMBER , "int16_t" ) , ( READ_GEN , "disappears_when_built" , StorageType . BOOLEAN_MEMBER , "int8_t" ) , # second building to place directly on top ( READ_GEN , "stack_unit_id" , StorageType . ID_MEMBER , "int16_t" ) , # change underlying terrain to this id when building completed ( READ_GEN , "foundation_terrain_id" , StorageType . ID_MEMBER , "int16_t" ) , # deprecated terrain-like structures knowns as "Overlays" from alpha # AOE used for roads ( SKIP , "old_overlay_id" , StorageType . ID_MEMBER , "int16_t" ) , # research_id to be enabled when building creation ( READ_GEN , "research_id" , StorageType . ID_MEMBER , "int16_t" ) , ] ) if game_version [ 0 ] . game_id not in ( "ROR" , "AOE1DE" ) : data_format . extend ( [ ( SKIP , "can_burn" , StorageType . BOOLEAN_MEMBER , "int8_t" ) , ( READ_GEN , "building_annex" , StorageType . ARRAY_CONTAINER , SubdataMember ( ref_type = BuildingAnnex , length = 4 ) ) , # building at which an annex building is attached to ( READ_GEN , "head_unit_id" , StorageType . ID_MEMBER , "int16_t" ) , # destination unit id when unit shall transform (e.g. unpack) ( READ_GEN , "transform_unit_id" , StorageType . ID_MEMBER , "int16_t" ) , ( READ_GEN , "transform_sound_id" , StorageType . ID_MEMBER , "int16_t" ) , ] ) data_format . append ( ( READ_GEN , "construction_sound_id" , StorageType . ID_MEMBER , "int16_t" ) ) if game_version [ 0 ] . game_id not in ( "ROR" , "AOE1DE" ) : if game_version [ 0 ] . game_id == "AOE2DE" : data_format . extend ( [ ( READ_GEN , "wwise_construction_sound_id" , StorageType . ID_MEMBER , "uint32_t" ) , ( READ_GEN , "wwise_transform_sound_id" , StorageType . ID_MEMBER , "uint32_t" ) , ] ) data_format . extend ( [ ( READ_GEN , "garrison_type" , StorageType . BITFIELD_MEMBER , EnumLookupMember ( raw_type = "int8_t" , type_name = "garrison_types" , lookup_dict = GARRISON_TYPES ) ) , ( READ_GEN , "garrison_heal_rate" , StorageType . FLOAT_MEMBER , "float" ) , ( SKIP , "garrison_repair_rate" , StorageType . FLOAT_MEMBER , "float" ) , # id of the unit used for salvages ( SKIP , "salvage_unit_id" , StorageType . ID_MEMBER , "int16_t" ) , # list of attributes for salvages (looting table) ( SKIP , "salvage_attributes" , StorageType . ARRAY_INT , "int8_t[6]" ) , ] ) return data_format