46 lines
1.4 KiB
Python
46 lines
1.4 KiB
Python
from collections import defaultdict
|
|
|
|
from data import static_logic as static_witness_logic
|
|
|
|
if __name__ == "__main__":
|
|
with open("data/APWitnessData.h", "w") as datafile:
|
|
datafile.write("""# pragma once
|
|
|
|
# include <map>
|
|
# include <set>
|
|
# include <string>
|
|
|
|
""")
|
|
|
|
area_to_location_ids = defaultdict(list)
|
|
area_to_entity_ids = defaultdict(list)
|
|
|
|
for entity_id, entity_object in static_witness_logic.ENTITIES_BY_HEX.items():
|
|
location_id = entity_object["id"]
|
|
|
|
area = entity_object["area"]["name"]
|
|
area_to_entity_ids[area].append(entity_id)
|
|
|
|
if location_id is None:
|
|
continue
|
|
|
|
area_to_location_ids[area].append(str(location_id))
|
|
|
|
datafile.write("inline std::map<std::string, std::set<int64_t>> areaNameToLocationIDs = {\n")
|
|
datafile.write(
|
|
"\n".join(
|
|
'\t{"' + area + '", { ' + ", ".join(location_ids) + " }},"
|
|
for area, location_ids in area_to_location_ids.items()
|
|
)
|
|
)
|
|
datafile.write("\n};\n\n")
|
|
|
|
datafile.write("inline std::map<std::string, std::set<int64_t>> areaNameToEntityIDs = {\n")
|
|
datafile.write(
|
|
"\n".join(
|
|
'\t{"' + area + '", { ' + ", ".join(entity_ids) + " }},"
|
|
for area, entity_ids in area_to_entity_ids.items()
|
|
)
|
|
)
|
|
datafile.write("\n};\n\n")
|