#ifndef TOOLS_DATAPACKER_CONTAINER_H_ #define TOOLS_DATAPACKER_CONTAINER_H_ #include #include #include #include #include "proto/data.pb.h" namespace com::fourisland::lingo2_archipelago { class Container { public: uint64_t FindOrAddMap(std::string map_name); uint64_t FindOrAddRoom(std::optional map_name, std::string room_name, std::optional map_fallback); uint64_t FindOrAddPainting(std::optional map_name, std::optional room_name, std::string painting_name, std::optional map_fallback, std::optional room_fallback); uint64_t FindOrAddPort(std::optional map_name, std::optional room_name, std::string port_name, std::optional map_fallback, std::optional room_fallback); uint64_t FindOrAddPanel(std::optional map_name, std::optional room_name, std::string panel_name, std::optional map_fallback, std::optional room_fallback); uint64_t FindOrAddLetter(std::string key, bool level2); uint64_t FindLetterByName(std::string letter_name); uint64_t FindOrAddMastery(std::optional map_name, std::optional room_name, std::string mastery_name, std::optional map_fallback, std::optional room_fallback); uint64_t FindOrAddKeyholder(std::optional map_name, std::optional room_name, std::string keyholder_name, std::optional map_fallback, std::optional room_fallback); uint64_t FindOrAddDoor(std::optional map_name, std::string door_name, std::optional map_fallback); void AddConnection(const Connection& connection); AllObjects& all_objects() { return all_objects_; } private: AllObjects all_objects_; std::map map_id_by_name_; std::map> room_id_by_map_room_names_; std::map>> painting_id_by_map_room_painting_names_; std::map>> port_id_by_map_room_port_names_; std::map>> panel_id_by_map_room_panel_names_; std::map letter_id_by_name_; std::map>> mastery_id_by_map_room_mastery_names_; std::map>> keyholder_id_by_map_room_keyholder_names_; std::map> door_id_by_map_door_names_; }; } // namespace com::fourisland::lingo2_archipelago #endif /* TOOLS_DATAPACKER_CONTAINER_H_ */ ass='content'>blob: e3e80c05ba81b00a0f0ea7db7720f07b436419a8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
connections {
  from_room: "First Second Room"
  to_room: "Loose Strings Room"
  door { name: "Firs Door" }
}
connections {
  from_room: "First Second Room"
  to_room: "Silver Portal Room"
  door { name: "Initial Door" }
}
connections {
  from {
    port {
      room: "First Second Room"
      name: "TTD"
    }
  }
  to {
    port {
      room: "First Second Room"
      name: "GREAT"
    }
  }
  oneway: true
}
connections {
  from_room: "First Second Room"
  to_room: "Silver Portal Room"
  door { name: "Second Left Door" }
}
connections {
  from_room: "First Second Room"
  to_room: "One Luck Room"
  door { name: "Second Right Door" }
}
connections {
  from_room: "Silver Portal Room"
  to_room: "First Second Room"
  oneway: true
}
connections {
  from {
    port {
      room: "Silver Portal Room"
      name: "BEGIN"
    }
  }
  to {
    port {
      room: "First Second Room"
      name: "GREAT"
    }
  }
  oneway: true
}
connections {
  from {
    port {
      room: "Silver Portal Room"
      name: "NEXT"
    }
  }
  to {
    port {
      room: "One Luck Room"
      name: "BEGIN"
    }
  }
  oneway: true
}
connections {
  from {
    port {
      room: "One Luck Room"
      name: "BEGIN"
    }
  }
  to {
    port {
      room: "First Second Room"
      name: "GREAT"
    }
  }
  oneway: true
}
connections {
  from_room: "One Luck Room"
  to_room: "Dead End Room"
  oneway: true
}
connections {
  from_room: "One Luck Room"
  to_room: "First Second Room"
  oneway: true
}
connections {
  from_room: "Dead End Room"
  to_room: "Silver Portal Room"
  oneway: true
}
connections {
  from {
    port {
      room: "Dead End Room"
      name: "BEGIN"
    }
  }
  to {
    port {
      room: "First Second Room"
      name: "GREAT"
    }
  }
  oneway: true
}
connections {
  from {
    port {
      room: "Dead End Room"
      name: "BEGIN2"
    }
  }
  to {
    port {
      room: "First Second Room"
      name: "GREAT"
    }
  }
  oneway: true
}
connections {
  from_room: "Loose Strings Room"
  to_room: "First Second Room"
  oneway: true
}
connections {
  from {
    port {
      room: "Loose Strings Room"
      name: "BEGIN"
    }
  }
  to {
    port {
      room: "First Second Room"
      name: "GREAT"
    }
  }
  oneway: true
}