summary refs log tree commit diff stats
path: root/data
diff options
context:
space:
mode:
authorStar Rauchenberger <fefferburbia@gmail.com>2025-08-18 12:56:13 -0400
committerStar Rauchenberger <fefferburbia@gmail.com>2025-08-18 12:56:13 -0400
commit1ac21d4a67ddd211fda841aa6e368bc2cf52a3d6 (patch)
treebdcf651c156c27982e37bddb7cb7e0b09aa90d5a /data
parent15b8794bbe80be0bcf1f482674455efe002cec2c (diff)
downloadlingo2-archipelago-1ac21d4a67ddd211fda841aa6e368bc2cf52a3d6.tar.gz
lingo2-archipelago-1ac21d4a67ddd211fda841aa6e368bc2cf52a3d6.tar.bz2
lingo2-archipelago-1ac21d4a67ddd211fda841aa6e368bc2cf52a3d6.zip
Validate that nodes in game files are used
You can now also list out nodes that you are explicitly not mapping out. The current state of the repo does produce some warnings when the validator is run and they're either endings, paintings that I'm not sure what to do with yet, and weird proxy stuff I'm not sure how to handle yet.
Diffstat (limited to 'data')
-rw-r--r--data/connections.txtpb2
-rw-r--r--data/maps/the_between/connections.txtpb43
-rw-r--r--data/maps/the_between/rooms/B2 Back Room.txtpb17
-rw-r--r--data/maps/the_between/rooms/B2 Front Room.txtpb12
-rw-r--r--data/maps/the_between/rooms/B2 Room.txtpb8
-rw-r--r--data/maps/the_between/rooms/Main Area.txtpb6
-rw-r--r--data/maps/the_between/rooms/Plaza Entrance.txtpb7
-rw-r--r--data/maps/the_colorful/metadata.txtpb2
-rw-r--r--data/maps/the_entry/metadata.txtpb10
-rw-r--r--data/maps/the_extravagant/metadata.txtpb2
-rw-r--r--data/maps/the_gallery/metadata.txtpb8
-rw-r--r--data/maps/the_graveyard/metadata.txtpb5
-rw-r--r--data/maps/the_great/metadata.txtpb7
-rw-r--r--data/maps/the_great/rooms/Back Area.txtpb2
-rw-r--r--data/maps/the_great/rooms/Daedalus Entrance.txtpb2
-rw-r--r--data/maps/the_great/rooms/Main Area.txtpb10
-rw-r--r--data/maps/the_great/rooms/Purple Room.txtpb2
-rw-r--r--data/maps/the_great/rooms/Salmon Room.txtpb2
-rw-r--r--data/maps/the_hinterlands/metadata.txtpb32
-rw-r--r--data/maps/the_impressive/metadata.txtpb5
-rw-r--r--data/maps/the_orb/metadata.txtpb4
-rw-r--r--data/maps/the_orb/rooms/B Room.txtpb1
22 files changed, 163 insertions, 26 deletions
diff --git a/data/connections.txtpb b/data/connections.txtpb index 5e67500..e5014f7 100644 --- a/data/connections.txtpb +++ b/data/connections.txtpb
@@ -915,7 +915,7 @@ connections {
915 from { 915 from {
916 port { 916 port {
917 map: "the_between" 917 map: "the_between"
918 room: "Main Area" 918 room: "Plaza Entrance"
919 name: "PLAZA" 919 name: "PLAZA"
920 } 920 }
921 } 921 }
diff --git a/data/maps/the_between/connections.txtpb b/data/maps/the_between/connections.txtpb index e2e7dc8..4e2e9a5 100644 --- a/data/maps/the_between/connections.txtpb +++ b/data/maps/the_between/connections.txtpb
@@ -5,6 +5,47 @@ connections {
5} 5}
6connections { 6connections {
7 from_room: "Main Area" 7 from_room: "Main Area"
8 to_room: "B2 Room" 8 to_room: "B2 Front Room"
9 door { name: "B2 Door" } 9 door { name: "B2 Door" }
10} 10}
11connections {
12 from {
13 painting {
14 room: "B2 Front Room"
15 name: "EYES4"
16 }
17 }
18 to {
19 painting {
20 room: "B2 Back Room"
21 name: "EYES3"
22 }
23 }
24 oneway: true
25}
26connections {
27 from {
28 painting {
29 room: "B2 Front Room"
30 name: "EYES"
31 }
32 }
33 to {
34 painting {
35 room: "B2 Back Room"
36 name: "EYES2"
37 }
38 }
39 oneway: true
40}
41connections {
42 from_room: "B2 Back Room"
43 to_room: "B2 Front Room"
44 # via collecting B2
45 oneway: true
46}
47connections {
48 from_room: "Main Area"
49 to_room: "Plaza Entrance"
50 door { name: "Plaza Entrance" }
51}
diff --git a/data/maps/the_between/rooms/B2 Back Room.txtpb b/data/maps/the_between/rooms/B2 Back Room.txtpb new file mode 100644 index 0000000..132ba56 --- /dev/null +++ b/data/maps/the_between/rooms/B2 Back Room.txtpb
@@ -0,0 +1,17 @@
1name: "B2 Back Room"
2display_name: "B2 Room"
3letters {
4 key: "b"
5 level2: true
6 path: "Components/Collectables/collectable"
7}
8paintings {
9 name: "EYES2"
10 path: "Components/Paintings/eyes2"
11 orientation: "east"
12}
13paintings {
14 name: "EYES3"
15 path: "Components/Paintings/eyes3"
16 orientation: "west"
17}
diff --git a/data/maps/the_between/rooms/B2 Front Room.txtpb b/data/maps/the_between/rooms/B2 Front Room.txtpb new file mode 100644 index 0000000..02c09fb --- /dev/null +++ b/data/maps/the_between/rooms/B2 Front Room.txtpb
@@ -0,0 +1,12 @@
1name: "B2 Front Room"
2display_name: "B2 Room"
3paintings {
4 name: "EYES"
5 path: "Components/Paintings/eyes"
6 orientation: "east"
7}
8paintings {
9 name: "EYES4"
10 path: "Components/Paintings/eyes4"
11 orientation: "west"
12}
diff --git a/data/maps/the_between/rooms/B2 Room.txtpb b/data/maps/the_between/rooms/B2 Room.txtpb deleted file mode 100644 index aad5d15..0000000 --- a/data/maps/the_between/rooms/B2 Room.txtpb +++ /dev/null
@@ -1,8 +0,0 @@
1name: "B2 Room"
2display_name: "B2 Room"
3letters {
4 key: "b"
5 level2: true
6 path: "Components/Collectables/collectable"
7}
8# Uhh idk if the paintings and door in here should be randomized.
diff --git a/data/maps/the_between/rooms/Main Area.txtpb b/data/maps/the_between/rooms/Main Area.txtpb index 1e0e291..164493d 100644 --- a/data/maps/the_between/rooms/Main Area.txtpb +++ b/data/maps/the_between/rooms/Main Area.txtpb
@@ -201,9 +201,3 @@ ports {
201 path: "Components/Warps/worldport" 201 path: "Components/Warps/worldport"
202 orientation: "east" 202 orientation: "east"
203} 203}
204ports {
205 name: "PLAZA"
206 path: "Components/Warps/worldport4"
207 orientation: "north"
208 required_door { name: "Plaza Entrance" }
209}
diff --git a/data/maps/the_between/rooms/Plaza Entrance.txtpb b/data/maps/the_between/rooms/Plaza Entrance.txtpb new file mode 100644 index 0000000..b99081a --- /dev/null +++ b/data/maps/the_between/rooms/Plaza Entrance.txtpb
@@ -0,0 +1,7 @@
1name: "Plaza Entrance"
2display_name: "Main Area"
3ports {
4 name: "PLAZA"
5 path: "Components/Warps/worldport4"
6 orientation: "north"
7}
diff --git a/data/maps/the_colorful/metadata.txtpb b/data/maps/the_colorful/metadata.txtpb new file mode 100644 index 0000000..4c475a0 --- /dev/null +++ b/data/maps/the_colorful/metadata.txtpb
@@ -0,0 +1,2 @@
1# This has something to do with the FISH/FISHES proxy.
2excluded_nodes: "Components/panel_fake"
diff --git a/data/maps/the_entry/metadata.txtpb b/data/maps/the_entry/metadata.txtpb new file mode 100644 index 0000000..24d17bf --- /dev/null +++ b/data/maps/the_entry/metadata.txtpb
@@ -0,0 +1,10 @@
1# This is a debug warp to The Ancient and as far as I can tell there is no way
2# to access it.
3excluded_nodes: "Components/Warps/worldport-test"
4# Proxy stuff related to the Ctrl Tutorial.
5excluded_nodes: "Panels/Back Left/backleft_2_proxied_1"
6excluded_nodes: "Panels/Back Left/backleft_2_proxied_2"
7excluded_nodes: "Panels/Back Left/backleft_3_proxied_1"
8excluded_nodes: "Panels/Back Left/backleft_3_proxied_2"
9excluded_nodes: "Panels/Back Left/backleft_4_proxied_1"
10excluded_nodes: "Panels/Back Left/backleft_4_proxied_2"
diff --git a/data/maps/the_extravagant/metadata.txtpb b/data/maps/the_extravagant/metadata.txtpb new file mode 100644 index 0000000..36fc80a --- /dev/null +++ b/data/maps/the_extravagant/metadata.txtpb
@@ -0,0 +1,2 @@
1# This appears to be completely inaccessible.
2excluded_nodes: "Components/Warps/worldport"
diff --git a/data/maps/the_gallery/metadata.txtpb b/data/maps/the_gallery/metadata.txtpb new file mode 100644 index 0000000..c07cb5c --- /dev/null +++ b/data/maps/the_gallery/metadata.txtpb
@@ -0,0 +1,8 @@
1# These are the eyes in the foyer, and aren't normal paintings.
2excluded_nodes: "Components/Paintings/Starting/eye"
3excluded_nodes: "Components/Paintings/Starting/eye2"
4excluded_nodes: "Components/Paintings/Starting/eye3"
5excluded_nodes: "Components/Paintings/Starting/eye4"
6# This is the E that got removed but not deleted. It's above the ceiling and
7# cannot be accessed.
8excluded_nodes: "Components/Paintings/Starting/e"
diff --git a/data/maps/the_graveyard/metadata.txtpb b/data/maps/the_graveyard/metadata.txtpb new file mode 100644 index 0000000..fbac6ab --- /dev/null +++ b/data/maps/the_graveyard/metadata.txtpb
@@ -0,0 +1,5 @@
1# These really shouldn't be shuffled because it would make Black Ending trivial.
2excluded_nodes: "Components/Paintings/grave"
3excluded_nodes: "Components/Paintings/grave2"
4# I'll be real, I have no idea what this is.
5excluded_nodes: "Panels/panel_4"
diff --git a/data/maps/the_great/metadata.txtpb b/data/maps/the_great/metadata.txtpb new file mode 100644 index 0000000..d3b3018 --- /dev/null +++ b/data/maps/the_great/metadata.txtpb
@@ -0,0 +1,7 @@
1# This can't be shuffled because it is tilted.
2excluded_nodes: "Components/Paintings/u"
3# This can't be shuffled because it is on the ground.
4excluded_nodes: "Components/blare"
5# This is the fake HI panel that used to be in the Control Center entrance. It
6# is neither visible nor accessible.
7excluded_nodes: "Panels/General/entry_4"
diff --git a/data/maps/the_great/rooms/Back Area.txtpb b/data/maps/the_great/rooms/Back Area.txtpb index 0a8b168..013b0e2 100644 --- a/data/maps/the_great/rooms/Back Area.txtpb +++ b/data/maps/the_great/rooms/Back Area.txtpb
@@ -134,7 +134,7 @@ ports {
134} 134}
135ports { 135ports {
136 name: "TOWER" 136 name: "TOWER"
137 path: "Components/Warps/worldport10" 137 path: "Meshes/Blocks/Warps/worldport10"
138 orientation: "south" 138 orientation: "south"
139 required_door { name: "Tower Entrance" } 139 required_door { name: "Tower Entrance" }
140 # The reverse warp bypasses the door, so there needs to be two oneway connections. 140 # The reverse warp bypasses the door, so there needs to be two oneway connections.
diff --git a/data/maps/the_great/rooms/Daedalus Entrance.txtpb b/data/maps/the_great/rooms/Daedalus Entrance.txtpb index c7e71f0..f4c159a 100644 --- a/data/maps/the_great/rooms/Daedalus Entrance.txtpb +++ b/data/maps/the_great/rooms/Daedalus Entrance.txtpb
@@ -9,7 +9,7 @@ panels {
9} 9}
10ports { 10ports {
11 name: "DAEDALUS" 11 name: "DAEDALUS"
12 path: "Components/Warps/worldport8" 12 path: "Meshes/Blocks/Warps/worldport8"
13 orientation: "south" 13 orientation: "south"
14 required_door { name: "Daedalus Entrance" } 14 required_door { name: "Daedalus Entrance" }
15 # The reverse warp bypasses the door, so there needs to be two oneway connections. 15 # The reverse warp bypasses the door, so there needs to be two oneway connections.
diff --git a/data/maps/the_great/rooms/Main Area.txtpb b/data/maps/the_great/rooms/Main Area.txtpb index b562909..cf6285a 100644 --- a/data/maps/the_great/rooms/Main Area.txtpb +++ b/data/maps/the_great/rooms/Main Area.txtpb
@@ -121,27 +121,27 @@ panels {
121} 121}
122ports { 122ports {
123 name: "ENTRY" 123 name: "ENTRY"
124 path: "Components/Warps/worldport" 124 path: "Meshes/Blocks/Warps/worldport"
125 orientation: "south" 125 orientation: "south"
126} 126}
127ports { 127ports {
128 name: "KEEN" 128 name: "KEEN"
129 path: "Components/Warps/worldport6" 129 path: "Meshes/Blocks/Warps/worldport6"
130 orientation: "north" 130 orientation: "north"
131} 131}
132ports { 132ports {
133 name: "ORB" 133 name: "ORB"
134 path: "Components/Warps/worldport3" 134 path: "Meshes/Blocks/Warps/worldport3"
135 orientation: "north" 135 orientation: "north"
136} 136}
137ports { 137ports {
138 name: "LINEAR" 138 name: "LINEAR"
139 path: "Components/Warps/worldport15" 139 path: "Meshes/Blocks/Warps/worldport15"
140 orientation: "south" 140 orientation: "south"
141} 141}
142ports { 142ports {
143 name: "DIGITAL" 143 name: "DIGITAL"
144 path: "Components/Warps/worldport4" 144 path: "Meshes/Blocks/Warps/worldport4"
145 orientation: "down" 145 orientation: "down"
146 required_door { name: "Digital Entrance" } 146 required_door { name: "Digital Entrance" }
147} 147}
diff --git a/data/maps/the_great/rooms/Purple Room.txtpb b/data/maps/the_great/rooms/Purple Room.txtpb index 8edc789..ff9bd9a 100644 --- a/data/maps/the_great/rooms/Purple Room.txtpb +++ b/data/maps/the_great/rooms/Purple Room.txtpb
@@ -2,6 +2,6 @@ name: "Purple Room"
2display_name: "Main Area" 2display_name: "Main Area"
3ports { 3ports {
4 name: "DAEDALUS" 4 name: "DAEDALUS"
5 path: "Components/Warps/worldport18" 5 path: "Meshes/Blocks/Warps/worldport18"
6 orientation: "north" 6 orientation: "north"
7} 7}
diff --git a/data/maps/the_great/rooms/Salmon Room.txtpb b/data/maps/the_great/rooms/Salmon Room.txtpb index 9e29860..96efd1a 100644 --- a/data/maps/the_great/rooms/Salmon Room.txtpb +++ b/data/maps/the_great/rooms/Salmon Room.txtpb
@@ -2,6 +2,6 @@ name: "Salmon Room"
2display_name: "Main Area" 2display_name: "Main Area"
3ports { 3ports {
4 name: "BETWEEN" 4 name: "BETWEEN"
5 path: "Components/Warps/worldport11" 5 path: "Meshes/Blocks/Warps/worldport11"
6 orientation: "east" 6 orientation: "east"
7} 7}
diff --git a/data/maps/the_hinterlands/metadata.txtpb b/data/maps/the_hinterlands/metadata.txtpb new file mode 100644 index 0000000..b15ef2e --- /dev/null +++ b/data/maps/the_hinterlands/metadata.txtpb
@@ -0,0 +1,32 @@
1# I'm not currently planning on shuffling anything in here.
2excluded_nodes: "Components/Paintings/C"
3excluded_nodes: "Components/Paintings/E"
4excluded_nodes: "Components/Paintings/F/F_0"
5excluded_nodes: "Components/Paintings/F/F_1"
6excluded_nodes: "Components/Paintings/U"
7excluded_nodes: "Components/Paintings/U_1"
8excluded_nodes: "Components/Paintings/X"
9excluded_nodes: "Components/Paintings/z2_1"
10excluded_nodes: "Components/Paintings/z2_2"
11excluded_nodes: "Components/Warps/worldport3_deco"
12excluded_nodes: "Components/Warps/worldport3_deco2"
13excluded_nodes: "Components/Warps/worldport3_deco3"
14excluded_nodes: "Components/Warps/worldport3_deco4"
15excluded_nodes: "Components/Warps/worldport3_deco5"
16excluded_nodes: "Panels/G/court"
17excluded_nodes: "Panels/J/red"
18excluded_nodes: "Panels/K/no"
19excluded_nodes: "Panels/L/trick"
20excluded_nodes: "Panels/Misc/hi"
21excluded_nodes: "Panels/Misc/hint"
22excluded_nodes: "Panels/O/oh"
23excluded_nodes: "Panels/P/hint"
24excluded_nodes: "Panels/Q/gray"
25excluded_nodes: "Panels/V/grin"
26excluded_nodes: "Panels/Z/art"
27excluded_nodes: "Panels/k2/place"
28excluded_nodes: "Panels/m2/green"
29excluded_nodes: "Panels/o2/orange2"
30excluded_nodes: "Panels/p2/foxes"
31excluded_nodes: "Panels/u2/open"
32excluded_nodes: "Panels/v2/snipe"
diff --git a/data/maps/the_impressive/metadata.txtpb b/data/maps/the_impressive/metadata.txtpb new file mode 100644 index 0000000..3d4e2b5 --- /dev/null +++ b/data/maps/the_impressive/metadata.txtpb
@@ -0,0 +1,5 @@
1# These are apparently little eyes on the Green Eye panel pedestals? I don't
2# think they're ever visible in gameplay.
3excluded_nodes: "Meshes/eye"
4excluded_nodes: "Meshes/eye2"
5excluded_nodes: "Meshes/eye3"
diff --git a/data/maps/the_orb/metadata.txtpb b/data/maps/the_orb/metadata.txtpb new file mode 100644 index 0000000..920422d --- /dev/null +++ b/data/maps/the_orb/metadata.txtpb
@@ -0,0 +1,4 @@
1# These are inaccessible, and were probably just copy pasted from the other
2# rooms.
3excluded_nodes: "Components/Warps/worldport2"
4excluded_nodes: "Components/Warps/worldport3"
diff --git a/data/maps/the_orb/rooms/B Room.txtpb b/data/maps/the_orb/rooms/B Room.txtpb index 08dce6e..833c659 100644 --- a/data/maps/the_orb/rooms/B Room.txtpb +++ b/data/maps/the_orb/rooms/B Room.txtpb
@@ -10,7 +10,6 @@ paintings {
10 # TODO: This is too high up to enter. It's also a hint painting. 10 # TODO: This is too high up to enter. It's also a hint painting.
11 exit_only: true 11 exit_only: true
12} 12}
13# I believe worldport2 and worldport3 are completely inaccessible.
14# TODO: Should these two be independent for shuffling purposes, or always tied 13# TODO: Should these two be independent for shuffling purposes, or always tied
15# to the Main Area's port? 14# to the Main Area's port?
16ports { 15ports {