#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 FindOrAddEnding(std::string ending_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_; std::map ending_id_by_name_; }; } // namespace com::fourisland::lingo2_archipelago #endif /* TOOLS_DATAPACKER_CONTAINER_H_ */ 93835e'>Starting Room.txtpb
blob: 98882a35dfa8babcbae17afec06d56a2c7a7e79d (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
name: "Starting Room"
display_name: "Starting Room"
panels {
  name: "HI"
  path: "Panels/Entry/entry_proxying_1"
  clue: "hi"
  answer: "hi"
  proxies { answer: "bye" path: "Panels/Entry/entry_proxied_2" }
  proxies { answer: "hidden" path: "Panels/Entry/entry_proxied_5" }
  proxies { answer: "high" path: "Panels/Entry/entry_proxied_3" }
  proxies { answer: "hide" path: "Panels/Entry/entry_proxied_4" }
  proxies { answer: "thewords" path: "Components/Listeners/entry_proxied_6" }
}
panels {
  name: "TRICK"
  path: "Panels/Entry/side_1"
  clue: "trick"
  answer: "trick"
  proxies { answer: "treat" path: "Panels/Entry/side_proxy_1" }
}
panels {
  name: "EYE"
  path: "Panels/Entry/front_1"
  clue: "eye"
  answer: "i"
  symbols: "zero"
}
panels {
  name: "HINT"
  path: "Panels/Entry/second_right"
  clue: "hint"
  answer: "hint"
}
panels {
  id: "THIN"
  path: "Panels/Entry/second_left"
  clue: "thin"
  answer: "thin"
}
panels {
  name: "THAN"
  path: "Panels/D/d_entry"
  clue: "than"
  answer: "than"
}
letters { key: "h" }
letters { key: "i" }
letters { key: "n" }
letters { key: "t" }
# Maze painting should stay vanilla as a hint.
paintings {
  name: "OWL"
  path: "Components/Paintings/owl"
  move: true # how do
  enter_only: true
  orientation: "north"
  required_door { door: "Least Blue Last Panels" }
  display_name: "Near Trick Painting"
}
paintings {
  name: "PAINS"
  path: "Components/Paintings/pains3"
  enter_only: true
  orientation: "east"
  required_door { door: "Near D Room Painting" }
  display_name: "Near D Room Painting"
}
ports {
  name: "DIGITAL"
  path: "Components/Warps/worldport"
  orientation: "west"
  required_door { name: "Second Room Left Door" }
}
ports {
  name: "DAEDALUS"
  path: "Components/Warps/worldport6"
  orientation: "west"
  required_door { name: "Daedalus Entrance" }
}
ports {
  name: "REPETITIVE"
  path: "Components/Warps/worldport7"
  orientation: "north"
  required_door { name: "Repetitive Entrance" }
}
ports {
  name: "COMPOSITE"
  path: "Components/Warps/worldport12"
  orientation: "east"
  required_door { name: "Composite Room Entrance" }
}