From 21013ec0d1e3953276f11bd8cce12f33d46a33ec Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Sat, 1 Nov 2025 12:18:25 -0400 Subject: (Almost) all panels are locations or connections now --- apworld/client/player.gd | 9 +- apworld/player_logic.py | 5 +- apworld/static_logic.py | 3 +- data/MISSING PANELS.txt | 32 +++++ data/ids.yaml | 87 +++++++++++++- data/maps/control_center/doors.txtpb | 13 +++ data/maps/daedalus/doors.txtpb | 174 +++++++++++++++++++++++++++- data/maps/the_bearer/doors.txtpb | 15 +++ data/maps/the_colorful/doors.txtpb | 7 ++ data/maps/the_congruent/doors.txtpb | 12 +- data/maps/the_crystalline/doors.txtpb | 9 ++ data/maps/the_digital/doors.txtpb | 7 ++ data/maps/the_double_sided/doors.txtpb | 79 +++++++++++++ data/maps/the_entry/doors.txtpb | 88 +++++++++++++- data/maps/the_entry/rooms/Rabbit Hole.txtpb | 2 +- data/maps/the_fuzzy/doors.txtpb | 17 +++ data/maps/the_gold/doors.txtpb | 7 ++ data/maps/the_graveyard/doors.txtpb | 7 ++ data/maps/the_great/doors.txtpb | 108 ++++++++++++++++- data/maps/the_great/rooms/Maze Tower.txtpb | 1 - data/maps/the_impressive/doors.txtpb | 16 +++ data/maps/the_jubilant/doors.txtpb | 11 ++ data/maps/the_nuanced/doors.txtpb | 7 ++ data/maps/the_owl/doors.txtpb | 122 +++++++++++++++++-- data/maps/the_parthenon/doors.txtpb | 9 ++ data/maps/the_partial/doors.txtpb | 3 +- data/maps/the_plaza/doors.txtpb | 28 +++++ data/maps/the_relentless/doors.txtpb | 6 +- data/maps/the_repetitive/doors.txtpb | 43 ++++++- data/maps/the_stellar/doors.txtpb | 9 ++ data/maps/the_talented/doors.txtpb | 7 ++ data/maps/the_unkempt/doors.txtpb | 17 +++ data/maps/the_unyielding/doors.txtpb | 39 +++++++ proto/data.proto | 4 +- proto/human.proto | 5 + tools/assign_ids/main.cpp | 3 +- tools/datapacker/main.cpp | 4 + tools/validator/validator.cpp | 6 +- 38 files changed, 977 insertions(+), 44 deletions(-) create mode 100644 data/MISSING PANELS.txt create mode 100644 data/maps/the_gold/doors.txtpb diff --git a/apworld/client/player.gd b/apworld/client/player.gd index 0e3fb23..35fd793 100644 --- a/apworld/client/player.gd +++ b/apworld/client/player.gd @@ -604,9 +604,12 @@ func _ready(): continue if ( - door.get_type() == gamedata.SCRIPT_proto.DoorType.ITEM_ONLY - or door.get_type() == gamedata.SCRIPT_proto.DoorType.GALLERY_PAINTING - or door.get_type() == gamedata.SCRIPT_proto.DoorType.CONTROL_CENTER_COLOR + not (door.has_legacy_location() and door.get_legacy_location()) + and ( + door.get_type() == gamedata.SCRIPT_proto.DoorType.ITEM_ONLY + or door.get_type() == gamedata.SCRIPT_proto.DoorType.GALLERY_PAINTING + or door.get_type() == gamedata.SCRIPT_proto.DoorType.CONTROL_CENTER_COLOR + ) ): continue diff --git a/apworld/player_logic.py b/apworld/player_logic.py index 1d68e4a..57fb4f9 100644 --- a/apworld/player_logic.py +++ b/apworld/player_logic.py @@ -299,8 +299,7 @@ class Lingo2PlayerLogic: if door.map_id not in self.shuffled_maps: continue - if door.type in [data_pb2.DoorType.EVENT, data_pb2.DoorType.LOCATION_ONLY, data_pb2.DoorType.GRAVESTONE, - data_pb2.DoorType.LEGACY_LOCATION]: + if door.type in [data_pb2.DoorType.EVENT, data_pb2.DoorType.LOCATION_ONLY, data_pb2.DoorType.GRAVESTONE]: continue if door.id in self.item_by_door: @@ -417,6 +416,8 @@ class Lingo2PlayerLogic: for symbol_name in SYMBOL_ITEMS.values(): self.real_items.append(symbol_name) + print("hi") + def get_panel_reqs(self, panel_id: int, answer: str | None) -> AccessRequirements: if answer is None: if panel_id not in self.panel_reqs: diff --git a/apworld/static_logic.py b/apworld/static_logic.py index 702f30b..8e07b82 100644 --- a/apworld/static_logic.py +++ b/apworld/static_logic.py @@ -31,8 +31,7 @@ class Lingo2StaticLogic: location_name = self.get_door_location_name(door) self.location_id_to_name[door.ap_id] = location_name - if door.type not in [data_pb2.DoorType.EVENT, data_pb2.DoorType.LOCATION_ONLY, data_pb2.DoorType.GRAVESTONE, - data_pb2.DoorType.LEGACY_LOCATION]: + if door.type not in [data_pb2.DoorType.EVENT, data_pb2.DoorType.LOCATION_ONLY, data_pb2.DoorType.GRAVESTONE]: item_name = self.get_door_item_name(door) self.item_id_to_name[door.ap_id] = item_name diff --git a/data/MISSING PANELS.txt b/data/MISSING PANELS.txt new file mode 100644 index 0000000..478b8be --- /dev/null +++ b/data/MISSING PANELS.txt @@ -0,0 +1,32 @@ +Used in vanilla doors: + +The Between - RIGHT + + + + +Used in a pseudo-connection: + +The Sturdy - COLORS + + + + +Unsolved panels in letter rooms: + +Daedalus (F2 Room) - DEADLY +Daedalus (F2 Room) - DIMS +Daedalus (F2 Room) - GRAVE +Daedalus (F2 Room) - LETHAL +Daedalus (O2 Room) - ACCEPT +Daedalus (O2 Room) - FOLLOW +Daedalus (O2 Room) - PLEDGE +Daedalus (O2 Room) - WARNING +Daedalus (U2 Room) - EFFECTIVE +Daedalus (U2 Room) - HELPFUL +Daedalus (U2 Room) - INFERNAL +Daedalus (U2 Room) - PRACTICAL +Daedalus (U2 Room) - PRODUCTIVE +Daedalus (U2 Room) - WONDERLAND +The Digital - EYE +The Digital - HIGH diff --git a/data/ids.yaml b/data/ids.yaml index 1b94233..0042899 100644 --- a/data/ids.yaml +++ b/data/ids.yaml @@ -74,6 +74,8 @@ maps: Desert Door: 2717 Front Door: 2709 Hidden Door: 2840 + Letters Panel: 3285 + Near Perceptive Panel: 3284 Partial Door: 2713 Perceptive From Inside: 2842 Perceptive From Outside: 2841 @@ -1027,6 +1029,7 @@ maps: doors: Amber East Doors: 1511 Amber North Door: 1510 + Amber Room Panels: 3289 Amber South Door: 1509 Bee Room Back Door: 1523 Bee Room Entrance: 1521 @@ -1069,7 +1072,9 @@ maps: Dark Light Room Entrance: 1569 Dark Light Room Exit: 1570 Dark Light Room Exit Panel: 1571 + Direction Panels: 3297 Entry Shortcut Secret Exit: 1437 + Equality Panels: 3292 Eye Painting: 2751 Eye Painting Exit: 1446 F Keyholder Door: 1551 @@ -1077,6 +1082,7 @@ maps: F2 Room Southeast Door: 1487 F2 Room Southwest Door: 1490 F2 Room West Door: 1492 + Farewell Little Lamb Panels: 3302 Flip Painting Blocker: 1552 Globe Room East Door: 1589 Globe Room South Door: 1591 @@ -1107,13 +1113,16 @@ maps: Maze North Door: 1502 Maze South Door: 1503 Near Flip Painting Door: 1474 + Near H Keyholder Panel: 3299 Near Pyramid Gate: 1447 Near Sweet Blue Door: 1573 Near Sweet Brown Door: 1561 Near Yellow Room Door: 1565 North Castle Panel: 2742 + Nursery Panels: 3298 O2 Room Northeast Door: 1485 O2 Room Southeast Door: 1478 + Orange Panels: 3293 Orange Rainbow Panel: 2267 Orange Rainbow Room: 1535 Orange Room: 1507 @@ -1128,6 +1137,7 @@ maps: Pink Hallway: 1555 Planet Room Divider: 1513 Planet Room Secret Door: 1578 + Plum Panels: 3300 Plum Room Entrance: 1576 Plum Room Exit: 1577 Pumpkin Door: 1583 @@ -1152,6 +1162,7 @@ maps: Purple West Area West Door: 1466 Pyramid Entrance: 1505 Rain Side Panel: 1546 + Rainbow Color Backside Panels: 3286 Rainbow Rooms Entrance: 1533 Red Rainbow Panel: 2266 Red Rainbow Room: 1534 @@ -1159,6 +1170,7 @@ maps: Red Room Entrance: 1562 Red Smiley: 1554 Red Smiley Entrance: 1553 + Rent Panels: 3291 Roof Access: 1528 Salt Room Entrance: 1532 Seasoning Doors: 1544 @@ -1167,6 +1179,7 @@ maps: South Castle Area Entrance: 1575 South Castle Panel: 2744 Southwest Area Intersection: 1475 + Splintering Area Panels: 3287 Splintering Exit North Door: 1449 Splintering Exit South Door: 1450 Starting Room East Wall Center Door: 1439 @@ -1180,8 +1193,10 @@ maps: Starting Room West Wall North Door: 1438 Starting Room West Wall South Door: 1433 Sticks And Stones Door: 1593 + Teal Panel: 3296 Temple of the Eyes Entrance: 1444 Theo Panels: 2811 + Tree Panels: 3295 U2 Room East Door: 1498 U2 Room Southeast Door: 1493 U2 Room Southwest Door: 1496 @@ -1189,13 +1204,17 @@ maps: Welcome Back Door: 1435 Welcome Back Secret Door: 1434 West Castle Panel: 2743 + West Spire Panel: 3294 + West Sticks And Stones Panel: 3288 White Hallway From Entry: 1488 Wonderland North Door: 1520 Wonderland South Door: 1504 Yellow Rainbow Panel: 2268 Yellow Rainbow Room: 1536 + Yellow Roof Puzzles: 3290 Yellow Room: 1568 Yellow Room Entrance: 1567 + Yellow Smiley Annex Panels: 3301 Yellow Smiley Door: 1548 Z2 Room Back Exit: 1451 Z2 Room Northeast Door: 1454 @@ -1617,7 +1636,9 @@ maps: CAKE: 80 doors: Butterfly Entrance: 50 + Butterfly Room Panels: 3304 Control Center Brown Door: 49 + Control Center Color Panel: 3303 Exit Door: 47 Overlook Door: 46 the_between: @@ -1794,6 +1815,7 @@ maps: Black Door: 142 Blue Door: 144 Brown Door: 151 + Chaos Panel: 3305 Cyan Door: 149 Gray Door: 153 Green Door: 145 @@ -1858,6 +1880,7 @@ maps: Flipped Yellow Door: 175 G Keyholder Blocker: 181 G2 Door: 182 + Main Area Puzzles: 3306 Near C Keyholder Puzzles: 180 Obverse Magenta Door: 173 Obverse Yellow Door: 178 @@ -1877,6 +1900,8 @@ maps: Mastery: masteries: MASTERY: 2993 + doors: + Checkpoint Panels: 3307 the_darkroom: rooms: Congruent Entrance: @@ -1967,6 +1992,7 @@ maps: UNYIELDING: 3164 doors: Control Center Blue Door: 246 + Control Center Blue Panel: 3308 Gallery Entrance: 245 Tree Entrance: 247 the_door: @@ -2032,6 +2058,10 @@ maps: FULL: 286 ports: DARKROOM: 3165 + doors: + 10 Panels: 3310 + 15 Panels: 3311 + 5 Panels: 3309 the_entry: rooms: Blue Alcove: @@ -2132,7 +2162,7 @@ maps: PARTHENON: 3176 Rabbit Hole: panels: - PUZZLE: 364 + Blank: 364 ports: HOLE: 3177 Rabbit Hole Lock: @@ -2192,27 +2222,33 @@ maps: ports: CC: 3182 doors: + Big Eyes: 3316 Blue Alcove Entrance: 297 Blue Alcove Exit: 293 Colored Doors Area Entrance: 318 Composite Room Entrance: 309 Control Center White Door: 307 + Control Center White Panel: 3318 Corners Painting: 292 D Room Entrance: 319 Daedalus Entrance: 311 Flip Area Entrance: 310 + Flipped Right Eye Panels: 3315 Flipped Second Room Left Door: 300 Flipped Second Room Right Door: 299 Gallery Entrance: 321 L Room Entrance: 322 + Least Blue Last: 3317 Liberated Entrance: 314 Lime Room Entrance: 305 Link Area Entrance: 288 Literate Entrance: 316 Near D Room Painting: 320 Noon Door: 295 + Noon Door Panels: 3312 Orange Door Hider: 304 Parthenon Entrance: 317 + Rabbit Hole Blank Puzzle: 3319 Rabbithole Door: 294 Red Alcove Exit: 291 Red Blue Area Left Door: 302 @@ -2221,6 +2257,7 @@ maps: Revitalized Entrance: 306 Right Eye Entrance: 301 Scarf Door: 296 + Scarf Door Panels: 3313 Second Room Left Door: 298 Second Room Right Door: 290 Shop Entrance: 313 @@ -2228,6 +2265,8 @@ maps: Third Eye Painting: 324 Trick Door: 287 Trick To Shop Door: 289 + Wander Panels: 3314 + Wrath Room Puzzles: 3320 X Area Entrance: 308 the_extravagant: rooms: @@ -2299,6 +2338,7 @@ maps: MASTERY: 3037 doors: Black Panels: 3021 + Green Panels: 3321 the_gallery: rooms: Back Room: @@ -2338,6 +2378,8 @@ maps: The Whole Thing: panels: PANEL: 434 + doors: + The Panel: 3322 the_graveyard: rooms: Inside: @@ -2347,6 +2389,8 @@ maps: panels: FOOT: 436 SEVERE: 437 + doors: + Remember Panel: 3323 the_great: rooms: Back Area: @@ -2609,13 +2653,19 @@ maps: SHIFT: 624 doors: Back Area Entrance: 439 + Behind Orb Panel: 3336 + Behind Question Room Panels: 3332 Between Entrance: 440 Big Y: 462 + Broken Shed Panels: 3333 Building Building Gravestone: 468 Colorful Entrance: 455 Control Center Gray Door: 446 + Control Center Gray Panel: 3326 Control Center Purple Door: 445 + Control Center Purple Panel: 3327 Control Center Red Door: 447 + Control Center Red Panel: 3328 Courtyard Entrance: 442 Courtyard Side Door: 461 Daedalus Entrance: 448 @@ -2626,8 +2676,11 @@ maps: Invisible Entrance: 465 Jail Entrance: 451 Magnet Room Entrance: 449 + Mistreat Panel: 3329 + Nature Panels: 3334 Nature Room Door: 466 Nature Room Panels: 467 + Near Linear Panels: 3324 Near UC Painting Door: 441 North Landscape Entrance: 456 Pillar Room Entrance: 450 @@ -2636,10 +2689,14 @@ maps: Savory Painting: 452 Spiral Painting: 471 Talented Entrance: 463 + Teal Panel: 3335 The Landscapes Gravestone: 458 The Maze Gravestone: 460 Tower Entrance: 459 + Tower Panels: 3330 + Tree Panels: 3331 West/East Divider: 443 + Why Is It Not Red: 3325 Zero Room Panels: 470 the_hinterlands: rooms: @@ -2732,7 +2789,9 @@ maps: RIGHT: 683 doors: Control Center Green Door: 673 + Control Center Green Panel: 3338 Front Door: 671 + Green Eye Panels: 3337 Side Door: 672 the_invisible: rooms: @@ -2778,6 +2837,7 @@ maps: J: 2772 doors: Side Door: 687 + Side Room Puzzles: 3339 the_keen: rooms: Main Area: @@ -2907,6 +2967,7 @@ maps: Blue Side Puzzles: 763 Green Side Puzzles: 764 Main Room Door: 2750 + Stores Panel: 3340 the_orb: rooms: B Room: @@ -2994,12 +3055,22 @@ maps: Blue Owl: 818 Brush Door: 804 Control Center Magenta Door: 812 + Control Center Magenta Panel: 3343 First Door: 808 First Room Shortcut: 807 Gray Bottom Door: 811 Gray Owl: 814 Gray Top Door: 810 + Near Z1 Panel: 3350 Orange Owl: 815 + R1C1 Panels: 3341 + R1C2 Panels: 3342 + R1C3 Panels: 3344 + R1C4 Panels: 3345 + R2C1 Panels: 3346 + R2C2 Panels: 3347 + R2C3 Panels: 3348 + R2C4 Panels: 3349 Sky Bottom Doors: 806 Sky Owl: 813 Sky Top Doors: 805 @@ -3028,6 +3099,7 @@ maps: U: 2777 doors: K2 Door: 852 + Lavender Area Puzzles: 3351 the_partial: rooms: Control Center Entrance: @@ -3175,6 +3247,10 @@ maps: TYPIST BEAR RIGHT WING: 968 WING: 950 doors: + Near Broken Portal Panel: 3355 + Near Repetitive Panel: 3354 + Near Sirenic Panel: 3352 + Near Symbolic Panel: 3353 Northeast Door: 893 Northeast Puzzles: 897 Northwest Door: 892 @@ -3391,11 +3467,14 @@ maps: doors: Anti-Collectable: 2812 Anti-Collectable Room: 1025 + Anti-Collectable Room Panels: 3358 Black Hallway: 2780 Cyan Door: 1028 Cyan Puzzles: 1032 Dot Area Entrance: 1026 Entry Entrance: 1023 + H2 Room Puzzles: 3357 + Hots Panels: 3356 Lime Door: 1027 Lime Puzzles: 1031 Magenta Door: 1029 @@ -3544,6 +3623,7 @@ maps: doors: Entrance: 2995 Question Panels: 3017 + Welcome Back Panels: 3359 the_stormy: rooms: Center: @@ -3879,6 +3959,7 @@ maps: doors: Black Side Panels: 2427 Brown Side Panels: 2428 + Keyholder Hint Panel: 3360 Main Room Door: 2429 the_tenacious: rooms: @@ -4188,10 +4269,12 @@ maps: doors: Cog Rhino Hug Rug: 2586 Control Center Orange Door: 2582 + Control Center Orange Panel: 3362 East Door: 2580 Honor Our Hint: 2585 I Entered: 2845 Let Untrue Tie: 2583 + Near Teal Door Panels: 3361 Routine Out Chute: 2584 W2 Room Door: 2581 the_unyielding: @@ -4441,7 +4524,9 @@ maps: HEALTH: 1428 doors: Bearer Entrance: 1259 + Blue D Room Puzzles: 3363 Brown Alcove: 1255 + Color Hallway Panels: 3364 Digital Entrance: 1257 East Room 1: 2740 East Room 1 Entrance: 1251 diff --git a/data/maps/control_center/doors.txtpb b/data/maps/control_center/doors.txtpb index 1422301..bec8714 100644 --- a/data/maps/control_center/doors.txtpb +++ b/data/maps/control_center/doors.txtpb @@ -165,3 +165,16 @@ doors { panels { room: "Unyielding Entrance" name: "SEEK" } location_room: "Unyielding Entrance" } +doors { + name: "Near Perceptive Panel" + type: LOCATION_ONLY + panels { room: "Perceptive Entrance" name: "COLORS" } + location_room: "Perceptive Entrance" + location_name: "COLORS" +} +doors { + name: "Letters Panel" + type: LOCATION_ONLY + panels { room: "Main Area" name: "Letters" } + location_room: "Main Area" +} diff --git a/data/maps/daedalus/doors.txtpb b/data/maps/daedalus/doors.txtpb index de6971e..6c72642 100644 --- a/data/maps/daedalus/doors.txtpb +++ b/data/maps/daedalus/doors.txtpb @@ -188,10 +188,12 @@ doors { } doors { name: "Welcome Back Secret Door" - type: ITEM_ONLY + type: STANDARD receivers: "Components/Doors/Entry/entry_13" panels { room: "Welcome Back Area" name: "FAREWELL LITTLE LAMB" } panels { room: "West Spire" name: "BYE" } + location_room: "West Spire" + location_name: "BYE, FAREWELL LITTLE LAMB" } doors { name: "Welcome Back Door" @@ -225,11 +227,20 @@ doors { } doors { name: "Starting Room East Wall Center Door" - type: STANDARD + type: ITEM_ONLY + legacy_location: true receivers: "Components/Doors/Entry/entry_6" panels { room: "Rainbow Color Backside" name: "?" } location_room: "Rainbow Color Backside" } +doors { + name: "Rainbow Color Backside Panels" + type: LOCATION_ONLY + panels { room: "Rainbow Color Backside" name: "?" } + panels { room: "Rainbow Color Backside" name: "BACKSIDE" } + location_room: "Rainbow Color Backside" + location_name: "BACKSIDE, ?" +} doors { name: "Starting Room East Wall North Door" type: ITEM_ONLY @@ -300,7 +311,8 @@ doors { } doors { name: "Splintering Exit North Door" - type: STANDARD + type: ITEM_ONLY + legacy_location: true receivers: "Components/Doors/Entry/gate_4" panels { room: "West Castle Area" name: "EVER" } panels { room: "West Castle Area" name: "AXES" } @@ -317,6 +329,48 @@ doors { panels { room: "West Castle Area" name: "FLIP (1)" } panels { room: "West Castle Area" name: "SLOT" } } +doors { + name: "Splintering Area Panels" + type: LOCATION_ONLY + panels { room: "West Castle Area" name: "EVER" } + panels { room: "West Castle Area" name: "AXES" } + panels { room: "West Castle Area" name: "FLIP (1)" } + panels { room: "West Castle Area" name: "SLOT" } + panels { room: "West Castle Area" name: "WICKEDLY" } + panels { room: "West Castle Area" name: "CATHOLIC" } + panels { room: "West Castle Area" name: "SISTERLY" } + panels { room: "West Castle Area" name: "SQUEALED" } + panels { room: "West Castle Area" name: "READ" } + panels { room: "West Castle Area" name: "WORD" } + panels { room: "West Castle Area" name: "EACH" } + panels { room: "West Castle Area" name: "RANK" } + panels { room: "West Castle Area" name: "TEAR" } + panels { room: "West Castle Area" name: "SHUT" } + panels { room: "West Castle Area" name: "FLIP (2)" } + panels { room: "West Castle Area" name: "STUN" } + panels { room: "West Castle Area" name: "CHAT" } + panels { room: "West Castle Area" name: "LOST" } + panels { room: "West Castle Area" name: "PODS" } + panels { room: "West Castle Area" name: "FAME" } + location_room: "West Castle Area" +} +doors { + name: "West Sticks And Stones Panel" + type: LOCATION_ONLY + panels { room: "West Castle Area" name: "LETTERS" } + location_room: "West Castle Area" + location_name: "LETTERS" +} +doors { + name: "Amber Room Panels" + type: LOCATION_ONLY + panels { room: "West Castle Area" name: "HARMONY" } + panels { room: "West Castle Area" name: "MELODY" } + panels { room: "West Castle Area" name: "RHYTHM" } + panels { room: "West Castle Area" name: "TEXTURE" } + location_room: "West Castle Area" + location_name: "HARMONY, MELODY, RHYTHM, TEXTURE" +} doors { name: "Z2 Room Back Exit" type: ITEM_ONLY @@ -820,11 +874,22 @@ doors { } doors { name: "Composite Room NW Entrance" - type: STANDARD + type: ITEM_ONLY + legacy_location: true receivers: "Components/Doors/Halls/oroom_10" panels { room: "Red Color Door" name: "Near Obscured Puzzles" } location_room: "Red Color Door" } +doors { + name: "Yellow Roof Puzzles" + type: LOCATION_ONLY + panels { room: "Red Color Door" name: "BACKSIDE" } + panels { room: "Red Color Door" name: "WALK BACK" } + panels { room: "Red Color Door" name: "Back (1)" } + panels { room: "Red Color Door" name: "Back (2)" } + panels { room: "Red Color Door" name: "Near Obscured Puzzles" } + location_room: "Red Color Door" +} doors { name: "Composite Room South Door" type: LOCATION_ONLY @@ -886,7 +951,8 @@ doors { } doors { name: "F2 Room Southeast Door" - type: STANDARD + type: ITEM_ONLY + legacy_location: true receivers: "Components/Doors/Halls/froom_2" panels { room: "Sweet Foyer" name: "RENT (1)" } location_room: "Sweet Foyer" @@ -1768,11 +1834,36 @@ doors { } doors { name: "Near Sweet Brown Door" - type: STANDARD + type: ITEM_ONLY + legacy_location: true receivers: "Components/Doors/Halls 2/halls_2" panels { room: "Sweet Foyer" name: "RENT (4)" } location_room: "Sweet Foyer" } +doors { + name: "Rent Panels" + type: LOCATION_ONLY + panels { room: "Sweet Foyer" name: "RENT (1)" } + panels { room: "Sweet Foyer" name: "RENT (2)" } + panels { room: "Sweet Foyer" name: "RENT (3)" } + panels { room: "Sweet Foyer" name: "RENT (4)" } + location_room: "Sweet Foyer" +} +doors { + name: "Equality Panels" + type: LOCATION_ONLY + panels { room: "Sweet Foyer" name: "EQUAL" } + panels { room: "Sweet Foyer" name: "QUALITY" } + location_room: "Sweet Foyer" + location_name: "EQUAL, QUALITY" +} +doors { + name: "Orange Panels" + type: LOCATION_ONLY + panels { room: "Blue Smiley Annex" name: "ORANGE (1)" } + panels { room: "Blue Smiley Annex" name: "ORANGE (2)" } + location_room: "Blue Smiley Annex" +} doors { name: "Red Room Entrance" type: STANDARD @@ -2304,3 +2395,74 @@ doors { location_room: "House" location_name: "All Puzzles" } +doors { + name: "West Spire Panel" + type: LOCATION_ONLY + panels { room: "West Spire" name: "MISSING" } + location_room: "West Spire" + location_name: "MISSING" +} +doors { + name: "Tree Panels" + type: LOCATION_ONLY + panels { room: "Red Color Door" name: "FIR" } + panels { room: "Red Color Door" name: "OAK" } + panels { room: "Red Color Door" name: "PINE" } + panels { room: "Red Color Door" name: "ASH" } + location_room: "Red Color Door" + location_name: "ASH, FIR, OAK, PINE" +} +doors { + name: "Teal Panel" + type: LOCATION_ONLY + panels { room: "Outside Book Room" name: "TEAL" } + location_room: "Outside Book Room" + location_name: "TEAL" +} +doors { + name: "Direction Panels" + type: LOCATION_ONLY + panels { room: "Rainbow Color Doors" name: "DIRECTION (1)" } + panels { room: "Rainbow Color Doors" name: "DIRECTION (2)" } + panels { room: "Rainbow Color Doors" name: "DIRECTION (3)" } + location_room: "Rainbow Color Doors" +} +doors { + name: "Nursery Panels" + type: LOCATION_ONLY + panels { room: "Nursery" name: "Paintings" } + panels { room: "Nursery" name: "?" } + location_room: "Nursery" + location_name: "Paintings, ?" +} +doors { + name: "Near H Keyholder Panel" + type: LOCATION_ONLY + panels { room: "Outside House" name: "SILENCE" } + location_room: "Outside House" + location_name: "SILENCE" +} +doors { + name: "Plum Panels" + type: LOCATION_ONLY + panels { room: "Outside Hedges" name: "PLUM (1)" } + panels { room: "Outside Hedges" name: "PLUM (2)" } + location_room: "Outside Hedges" +} +doors { + name: "Yellow Smiley Annex Panels" + type: LOCATION_ONLY + panels { room: "Yellow Smiley Annex" name: "BELL" } + panels { room: "Yellow Smiley Annex" name: "COW" } + location_room: "Yellow Smiley Annex" + location_name: "BELL, COW" +} +doors { + name: "Farewell Little Lamb Panels" + type: LOCATION_ONLY + panels { room: "Purple Room South" name: "FAREWELL" } + panels { room: "Purple Room South" name: "LITTLE" } + panels { room: "Purple Room South" name: "LAMB" } + location_room: "Purple Room South" + location_name: "FAREWELL, LITTLE, LAMB" +} diff --git a/data/maps/the_bearer/doors.txtpb b/data/maps/the_bearer/doors.txtpb index 1893455..acbf86a 100644 --- a/data/maps/the_bearer/doors.txtpb +++ b/data/maps/the_bearer/doors.txtpb @@ -251,3 +251,18 @@ doors { receivers: "Components/Doors/brown_2" double_letters: true } +doors { + name: "Control Center Color Panel" + type: LOCATION_ONLY + panels { room: "Back Area" name: "COLOR" } + location_room: "Back Area" + location_name: "COLOR" +} +doors { + name: "Butterfly Room Panels" + type: LOCATION_ONLY + panels { room: "Butterfly Room" name: "DARKNESS" } + panels { room: "Butterfly Room" name: "VIBRANT" } + location_room: "Butterfly Room" + location_name: "DARKNESS, VIBRANT" +} diff --git a/data/maps/the_colorful/doors.txtpb b/data/maps/the_colorful/doors.txtpb index 4785cf2..3ce5f71 100644 --- a/data/maps/the_colorful/doors.txtpb +++ b/data/maps/the_colorful/doors.txtpb @@ -103,3 +103,10 @@ doors { panels { room: "Gray Room" name: "MEND" } location_room: "Gray Room" } +doors { + name: "Chaos Panel" + type: LOCATION_ONLY + panels { room: "Cyan Hallway" name: "CHAOS" } + location_room: "Cyan Hallway" + location_name: "CHAOS" +} diff --git a/data/maps/the_congruent/doors.txtpb b/data/maps/the_congruent/doors.txtpb index a714eba..fab8d95 100644 --- a/data/maps/the_congruent/doors.txtpb +++ b/data/maps/the_congruent/doors.txtpb @@ -1,11 +1,21 @@ doors { name: "Obverse Magenta Door" - type: STANDARD + type: ITEM_ONLY + legacy_location: true receivers: "Components/Doors/magenta_enterer2" panels { room: "Main Area" name: "LAKE" } panels { room: "Main Area" name: "DIE" } location_room: "Main Area" } +doors { + name: "Main Area Puzzles" + type: LOCATION_ONLY + panels { room: "Main Area" name: "LAKE" } + panels { room: "Main Area" name: "DIE" } + panels { room: "Main Area" name: "LIGHT" } + location_room: "Main Area" + location_name: "DIE, LAKE, LIGHT" +} doors { name: "Flipped Magenta Door" type: STANDARD diff --git a/data/maps/the_crystalline/doors.txtpb b/data/maps/the_crystalline/doors.txtpb index 024752a..5930463 100644 --- a/data/maps/the_crystalline/doors.txtpb +++ b/data/maps/the_crystalline/doors.txtpb @@ -3,3 +3,12 @@ doors { type: EVENT panels { room: "Flip Area" name: "SUCCEED" } } +doors { + name: "Checkpoint Panels" + type: LOCATION_ONLY + panels { room: "Main Area" name: "DROP" } + panels { room: "Main Area" name: "LEAP" } + panels { room: "Main Area" name: "SPIN" } + location_room: "Main Area" + location_name: "DROP, LEAP, SPIN" +} diff --git a/data/maps/the_digital/doors.txtpb b/data/maps/the_digital/doors.txtpb index 35cfa81..6c56c86 100644 --- a/data/maps/the_digital/doors.txtpb +++ b/data/maps/the_digital/doors.txtpb @@ -53,3 +53,10 @@ doors { panels { room: "Tree Area" name: "TREE" } location_room: "Tree Area" } +doors { + name: "Control Center Blue Panel" + type: LOCATION_ONLY + panels { room: "Main Area" name: "COLOR" } + location_room: "Main Area" + location_name: "COLOR" +} diff --git a/data/maps/the_double_sided/doors.txtpb b/data/maps/the_double_sided/doors.txtpb index 02b113a..1ae4324 100644 --- a/data/maps/the_double_sided/doors.txtpb +++ b/data/maps/the_double_sided/doors.txtpb @@ -113,3 +113,82 @@ doors { # The panel blocks your way; there's no door. panels { room: "Flipped Black Area" name: "SEAPLANE" } } +# These locations are kind of deranged but hey. Welcome to The Double Sided. +doors { + name: "5 Panels" + type: LOCATION_ONLY + panels { room: "Flipped Black Area" name: "SEAPLANE" } + panels { room: "Flipped Blue Area" name: "SKY" } + panels { room: "Flipped Blue Area" name: "HEAD" } + panels { room: "Flipped Green Area" name: "HIGH" } + panels { room: "Flipped Orange Area" name: "HEAVEN" } + panels { room: "Flipped Purple Area" name: "CEILING" } + panels { room: "Flipped Purple Area" name: "LEAVES" } + panels { room: "Flipped Red Area" name: "RAISED" } + panels { room: "Flipped Yellow Back Area" name: "ANGELS" } + panels { room: "Obverse Black Area" name: "MOUNTAIN" } + panels { room: "Obverse Black Area" name: "TRAIN" } + panels { room: "Obverse Green Area" name: "UPSIDE" } + panels { room: "Obverse Orange Back Area" name: "OVER" } + panels { room: "Obverse Orange Front Area" name: "UP" } + panels { room: "Obverse Orange Isolated Section" name: "TOP" } + panels { room: "Obverse Pink Area" name: "CLOUD" } + panels { room: "Obverse Purple Area" name: "DRAGON" } + panels { room: "Obverse Purple Area" name: "ABOVE" } + panels { room: "Start" name: "ATTIC" } + panels { room: "Start" name: "FULL" } + location_room: "Start" + complete_at: 5 +} +doors { + name: "10 Panels" + type: LOCATION_ONLY + panels { room: "Flipped Black Area" name: "SEAPLANE" } + panels { room: "Flipped Blue Area" name: "SKY" } + panels { room: "Flipped Blue Area" name: "HEAD" } + panels { room: "Flipped Green Area" name: "HIGH" } + panels { room: "Flipped Orange Area" name: "HEAVEN" } + panels { room: "Flipped Purple Area" name: "CEILING" } + panels { room: "Flipped Purple Area" name: "LEAVES" } + panels { room: "Flipped Red Area" name: "RAISED" } + panels { room: "Flipped Yellow Back Area" name: "ANGELS" } + panels { room: "Obverse Black Area" name: "MOUNTAIN" } + panels { room: "Obverse Black Area" name: "TRAIN" } + panels { room: "Obverse Green Area" name: "UPSIDE" } + panels { room: "Obverse Orange Back Area" name: "OVER" } + panels { room: "Obverse Orange Front Area" name: "UP" } + panels { room: "Obverse Orange Isolated Section" name: "TOP" } + panels { room: "Obverse Pink Area" name: "CLOUD" } + panels { room: "Obverse Purple Area" name: "DRAGON" } + panels { room: "Obverse Purple Area" name: "ABOVE" } + panels { room: "Start" name: "ATTIC" } + panels { room: "Start" name: "FULL" } + location_room: "Start" + complete_at: 10 +} +doors { + name: "15 Panels" + type: LOCATION_ONLY + panels { room: "Flipped Black Area" name: "SEAPLANE" } + panels { room: "Flipped Blue Area" name: "SKY" } + panels { room: "Flipped Blue Area" name: "HEAD" } + panels { room: "Flipped Green Area" name: "HIGH" } + panels { room: "Flipped Orange Area" name: "HEAVEN" } + panels { room: "Flipped Purple Area" name: "CEILING" } + panels { room: "Flipped Purple Area" name: "LEAVES" } + panels { room: "Flipped Red Area" name: "RAISED" } + panels { room: "Flipped Yellow Back Area" name: "ANGELS" } + panels { room: "Obverse Black Area" name: "MOUNTAIN" } + panels { room: "Obverse Black Area" name: "TRAIN" } + panels { room: "Obverse Green Area" name: "UPSIDE" } + panels { room: "Obverse Orange Back Area" name: "OVER" } + panels { room: "Obverse Orange Front Area" name: "UP" } + panels { room: "Obverse Orange Isolated Section" name: "TOP" } + panels { room: "Obverse Pink Area" name: "CLOUD" } + panels { room: "Obverse Purple Area" name: "DRAGON" } + panels { room: "Obverse Purple Area" name: "ABOVE" } + panels { room: "Start" name: "ATTIC" } + panels { room: "Start" name: "FULL" } + location_room: "Start" + complete_at: 15 +} diff --git a/data/maps/the_entry/doors.txtpb b/data/maps/the_entry/doors.txtpb index 5bc6f57..3f62338 100644 --- a/data/maps/the_entry/doors.txtpb +++ b/data/maps/the_entry/doors.txtpb @@ -69,19 +69,39 @@ doors { # second_right is vanilla because it's like LOST door. doors { name: "Noon Door" - type: STANDARD + type: ITEM_ONLY + legacy_location: true receivers: "Components/Doors/second_right5" receivers: "Components/Doors/second_right10" panels { room: "Red Blue Halls" name: "CENTER DAY" } location_room: "Red Blue Halls" } +doors { + name: "Noon Door Panels" + type: LOCATION_ONLY + panels { room: "Red Blue Halls" name: "CENTER" } + panels { room: "Red Blue Halls" name: "DAY" } + panels { room: "Red Blue Halls" name: "CENTER DAY" } + location_room: "Red Blue Halls" + location_name: "CENTER, DAY, CENTER DAY" +} doors { name: "Scarf Door" - type: STANDARD + type: ITEM_ONLY + legacy_location: true receivers: "Components/Doors/second_right6" panels { room: "Red Blue Halls" name: "RAIN WOMAN" } location_room: "Red Blue Halls" } +doors { + name: "Scarf Door Panels" + type: LOCATION_ONLY + panels { room: "Red Blue Halls" name: "RAIN" } + panels { room: "Red Blue Halls" name: "WOMAN" } + panels { room: "Red Blue Halls" name: "RAIN WOMAN" } + location_room: "Red Blue Halls" + location_name: "RAIN, WOMAN, RAIN WOMAN" +} doors { name: "Blue Alcove Entrance" type: STANDARD @@ -119,7 +139,8 @@ doors { } doors { name: "Red Blue Area Left Door" - type: STANDARD + type: ITEM_ONLY + legacy_location: true receivers: "Components/Doors/fourth_right" panels { room: "Right Eye" name: "WANDER" } location_room: "Right Eye" @@ -131,6 +152,31 @@ doors { panels { room: "Right Eye" name: "WANDER" } location_room: "Right Eye" } +doors { + name: "Wander Panels" + type: LOCATION_ONLY + panels { room: "Right Eye" name: "WANDER" } + panels { room: "Red Blue Halls" name: "WANDER" } + panels { room: "Link Area" name: "WANDER" } + panels { room: "Flipped Link Area" name: "WANDER" } + location_room: "Flipped Link Area" +} +doors { + name: "Flipped Right Eye Panels" + type: LOCATION_ONLY + panels { room: "Flipped Right Eye" name: "HERE" } + panels { room: "Flipped Right Eye" name: "WHERE" } + location_room: "Flipped Right Eye" + location_name: "HERE, WHERE" +} +doors { + name: "Big Eyes" + type: LOCATION_ONLY + panels { room: "Starting Room" name: "EYE" } + panels { room: "Right Eye" name: "EYE" } + location_room: "Right Eye" + location_name: "EYE" +} # Components/Doors/back_left_1, _3, _4, _6 are vanilla because they're nothing. doors { name: "Orange Door Hider" @@ -321,3 +367,39 @@ doors { receivers: "Components/GiftMapEntrance/PanelTeleporter" double_letters: true } +doors { + name: "Least Blue Last" + type: LOCATION_ONLY + panels { room: "Least Blue Last" name: "CAPABLE (1)" } + panels { room: "Least Blue Last" name: "CAPABLE (2)" } + panels { room: "Least Blue Last" name: "LUSTRE" } + panels { room: "Least Blue Last" name: "WANT" } + panels { room: "Least Blue Last" name: "STEALER" } + panels { room: "Least Blue Last" name: "OLD" } + panels { room: "Least Blue Last" name: "TRUST" } + panels { room: "Least Blue Last" name: "LABEL" } + panels { room: "Least Blue Last" name: "AIL" } + location_room: "Least Blue Last" +} +doors { + name: "Control Center White Panel" + type: LOCATION_ONLY + panels { room: "Lime Room" name: "COLOR" } + location_room: "Lime Room" + location_name: "COLOR" +} +doors { + name: "Rabbit Hole Blank Puzzle" + type: LOCATION_ONLY + panels { room: "Rabbit Hole" name: "Blank" } + location_room: "Rabbit Hole" + location_name: "Blank Puzzle" +} +doors { + name: "Wrath Room Puzzles" + type: LOCATION_ONLY + panels { room: "Wrath Room" name: "DICE" } + panels { room: "Wrath Room" name: "WREATH" } + location_room: "Wrath Room" + location_name: "DICE, WRATH" +} diff --git a/data/maps/the_entry/rooms/Rabbit Hole.txtpb b/data/maps/the_entry/rooms/Rabbit Hole.txtpb index 4ffeb84..4799fde 100644 --- a/data/maps/the_entry/rooms/Rabbit Hole.txtpb +++ b/data/maps/the_entry/rooms/Rabbit Hole.txtpb @@ -1,7 +1,7 @@ name: "Rabbit Hole" panel_display_name: "Red Blue Area" panels { - name: "PUZZLE" + name: "Blank" path: "Panels/Back Right/br_6" clue: "" answer: "down" diff --git a/data/maps/the_fuzzy/doors.txtpb b/data/maps/the_fuzzy/doors.txtpb index 0f89b80..9c481c9 100644 --- a/data/maps/the_fuzzy/doors.txtpb +++ b/data/maps/the_fuzzy/doors.txtpb @@ -5,6 +5,23 @@ doors { panels { room: "Main Area" name: "COMBINED" } location_room: "Main Area" } +doors { + name: "Green Panels" + type: LOCATION_ONLY + panels { room: "Main Area" name: "ACHIEVES" } + panels { room: "Main Area" name: "BEFORE" } + panels { room: "Main Area" name: "Blank" } + panels { room: "Main Area" name: "BOTH" } + panels { room: "Main Area" name: "CAGED" } + panels { room: "Main Area" name: "DICE" } + panels { room: "Main Area" name: "FIRST" } + panels { room: "Main Area" name: "FORGED" } + panels { room: "Main Area" name: "LOTTO" } + panels { room: "Main Area" name: "TOED" } + panels { room: "Main Area" name: "TUTU" } + panels { room: "Main Area" name: "UNVEILED" } + location_room: "Main Area" +} doors { name: "Mastery Door" type: EVENT diff --git a/data/maps/the_gold/doors.txtpb b/data/maps/the_gold/doors.txtpb new file mode 100644 index 0000000..d3329cb --- /dev/null +++ b/data/maps/the_gold/doors.txtpb @@ -0,0 +1,7 @@ +doors { + name: "The Panel" + type: LOCATION_ONLY + panels { room: "The Whole Thing" name: "PANEL" } + location_room: "The Whole Thing" + location_name: "Panel" +} diff --git a/data/maps/the_graveyard/doors.txtpb b/data/maps/the_graveyard/doors.txtpb index a10d8f6..20e7fcf 100644 --- a/data/maps/the_graveyard/doors.txtpb +++ b/data/maps/the_graveyard/doors.txtpb @@ -23,3 +23,10 @@ doors { receivers: "Components/Paintings/omrt/teleportListener" double_letters: true } +doors { + name: "Remember Panel" + type: LOCATION_ONLY + panels { room: "Inside" name: "REMEMBER" } + location_room: "Inside" + location_name: "REMEMBER" +} diff --git a/data/maps/the_great/doors.txtpb b/data/maps/the_great/doors.txtpb index 132aa6f..98d9859 100644 --- a/data/maps/the_great/doors.txtpb +++ b/data/maps/the_great/doors.txtpb @@ -28,6 +28,15 @@ doors { panels { room: "Main Area" name: "SEE" } location_room: "Main Area" } +doors { + name: "Near Linear Panels" + type: LOCATION_ONLY + panels { room: "Main Area" name: "DEW" } + panels { room: "Main Area" name: "EWE" } + panels { room: "Main Area" name: "NO" } + location_room: "Main Area" + location_name: "DEW, EWE, NO" +} doors { name: "Courtyard Entrance" type: STANDARD @@ -417,7 +426,8 @@ doors { } doors { name: "Question Room Back Door" - type: STANDARD + type: ITEM_ONLY + legacy_location: true receivers: "Components/Doors/question_11" panels { room: "Behind Question Area" name: "YEW" answer: "ewe" } location_room: "Behind Question Area" @@ -522,3 +532,99 @@ doors { type: EVENT panels { room: "West Side" name: "CLUE" } } +doors { + name: "Why Is It Not Red" + type: LOCATION_ONLY + panels { room: "Main Area" name: "WHY" } + panels { room: "Main Area" name: "IS" } + panels { room: "Main Area" name: "IT" } + panels { room: "Main Area" name: "NOT" } + panels { room: "Main Area" name: "RED" } + location_room: "Main Area" + location_name: "WHY, IS, IT, NOT, RED" +} +doors { + name: "Control Center Gray Panel" + type: LOCATION_ONLY + panels { room: "Main Area" name: "COLOR" } + location_room: "Main Area" + location_name: "COLOR" +} +doors { + name: "Control Center Purple Panel" + type: LOCATION_ONLY + panels { room: "East Landscape" name: "COLOR" } + location_room: "East Landscape" + location_name: "COLOR" +} +doors { + name: "Control Center Red Panel" + type: LOCATION_ONLY + panels { room: "West Side" name: "COLOR" } + location_room: "West Side" + location_name: "COLOR" +} +doors { + name: "Mistreat Panel" + type: LOCATION_ONLY + panels { room: "East Landscape" name: "MISTREAT" } + location_room: "East Landscape" + location_name: "MISTREAT" +} +doors { + name: "Tower Panels" + type: LOCATION_ONLY + panels { room: "Back Area" name: "TOWEL" } + panels { room: "Maze Tower" name: "SPIRE" } + location_room: "Maze Tower" + location_name: "SPIRE, TOWEL" +} +doors { + name: "Tree Panels" + type: LOCATION_ONLY + panels { room: "Back Area" name: "PLANT" } + panels { room: "Back Area" name: "TREE" } + location_room: "Back Area" + location_name: "PLANT, TREE" +} +doors { + name: "Behind Question Room Panels" + type: LOCATION_ONLY + panels { room: "Behind Question Area" name: "DEW" } + panels { room: "Behind Question Area" name: "YEW" answer: "ewe" } + panels { room: "Behind Question Area" name: "NO" } + location_room: "Behind Question Area" + location_name: "DEW, YEW/EWE, NO" +} +doors { + name: "Broken Shed Panels" + type: LOCATION_ONLY + panels { room: "North Landscape" name: "LAUGH" } + panels { room: "North Landscape" name: "FINISHED" } + panels { room: "North Landscape" name: "LAUGH FINISHED" } + location_room: "North Landscape" + location_name: "LAUGH, FINISHED, LAUGH FINISHED" +} +doors { + name: "Nature Panels" + type: LOCATION_ONLY + panels { room: "North Landscape" name: "WEATHER" } + panels { room: "North Landscape" name: "ANIMALS" } + panels { room: "North Landscape" name: "PLANTS" } + location_room: "North Landscape" + location_name: "ANIMALS, PLANTS, WEATHER" +} +doors { + name: "Teal Panel" + type: LOCATION_ONLY + panels { room: "Maze Wreck Area" name: "MAROON" } + location_room: "Maze Wreck Area" + location_name: "MAROON" +} +doors { + name: "Behind Orb Panel" + type: LOCATION_ONLY + panels { room: "Main Area" name: "BROWN RED ORANGE" } + location_room: "Main Area" + location_name: "Brown Red Orange" +} diff --git a/data/maps/the_great/rooms/Maze Tower.txtpb b/data/maps/the_great/rooms/Maze Tower.txtpb index 44c30d7..3b1e5fc 100644 --- a/data/maps/the_great/rooms/Maze Tower.txtpb +++ b/data/maps/the_great/rooms/Maze Tower.txtpb @@ -1,5 +1,4 @@ name: "Maze Tower" -panel_display_name: "Courtyard" panels { name: "FEEL" path: "Panels/Maze/maze_12" diff --git a/data/maps/the_impressive/doors.txtpb b/data/maps/the_impressive/doors.txtpb index 03ec9f5..9ab6845 100644 --- a/data/maps/the_impressive/doors.txtpb +++ b/data/maps/the_impressive/doors.txtpb @@ -29,6 +29,15 @@ doors { panels { room: "Green Eye" name: "RETURN" } panels { room: "Green Eye" name: "LEFT" } } +doors { + name: "Green Eye Panels" + type: LOCATION_ONLY + panels { room: "Green Eye" name: "RETURN" } + panels { room: "Green Eye" name: "TO" } + panels { room: "Green Eye" name: "LEFT" } + location_room: "Green Eye" + location_name: "RETURN, TO, LEFT" +} doors { name: "Control Center Green Door" type: CONTROL_CENTER_COLOR @@ -36,3 +45,10 @@ doors { receivers: "Components/Doors/entry_2" control_center_color: "green" } +doors { + name: "Control Center Green Panel" + type: LOCATION_ONLY + panels { room: "Side Area" name: "COLOR" } + location_room: "Side Area" + location_name: "COLOR" +} diff --git a/data/maps/the_jubilant/doors.txtpb b/data/maps/the_jubilant/doors.txtpb index 02db1ff..90bfd0f 100644 --- a/data/maps/the_jubilant/doors.txtpb +++ b/data/maps/the_jubilant/doors.txtpb @@ -31,3 +31,14 @@ doors { panels { room: "Main Area" name: "QUEEN" answer: "jack" } location_room: "Main Area" } +doors { + name: "Side Room Puzzles" + type: LOCATION_ONLY + panels { room: "Side Area" name: "CALLBACK" } + panels { room: "Side Area" name: "CALL" } + panels { room: "Side Area" name: "PUSHBACK" } + panels { room: "Side Area" name: "PUSH" } + panels { room: "Side Area" name: "FLASHBACK" } + panels { room: "Side Area" name: "FLASH" } + location_room: "Side Area" +} diff --git a/data/maps/the_nuanced/doors.txtpb b/data/maps/the_nuanced/doors.txtpb index cd29766..300524b 100644 --- a/data/maps/the_nuanced/doors.txtpb +++ b/data/maps/the_nuanced/doors.txtpb @@ -52,3 +52,10 @@ doors { panels { room: "Back Room" name: "LIMB" } panels { room: "Back Room" name: "SPARE" } } +doors { + name: "Stores Panel" + type: LOCATION_ONLY + panels { room: "Main Room" name: "TORE" } + location_room: "Main Room" + location_name: "TORE" +} diff --git a/data/maps/the_owl/doors.txtpb b/data/maps/the_owl/doors.txtpb index 032863e..eaafa48 100644 --- a/data/maps/the_owl/doors.txtpb +++ b/data/maps/the_owl/doors.txtpb @@ -1,13 +1,15 @@ doors { name: "Brush Door" - type: STANDARD + type: ITEM_ONLY + legacy_location: true receivers: "Components/Doors/entry_1" panels { room: "R2C2 Top" name: "CRUSH" } location_room: "R2C2 Top" } doors { name: "Sky Top Doors" - type: STANDARD + type: ITEM_ONLY + legacy_location: true receivers: "Components/Doors/entry_2" receivers: "Components/Doors/entry_4" panels { room: "R2C1 Left" name: "VERB" } @@ -15,7 +17,8 @@ doors { } doors { name: "Sky Bottom Doors" - type: STANDARD + type: ITEM_ONLY + legacy_location: true receivers: "Components/Doors/entry_3" receivers: "Components/Doors/entry_5" panels { room: "R2C1 Left" name: "FOIL" } @@ -23,21 +26,24 @@ doors { } doors { name: "First Room Shortcut" - type: STANDARD + type: ITEM_ONLY + legacy_location: true receivers: "Components/Doors/entry_6" panels { room: "Connected Area" name: "FIZZLE" } location_room: "Connected Area" } doors { name: "First Door" - type: STANDARD + type: ITEM_ONLY + legacy_location: true receivers: "Components/Doors/entry_7" panels { room: "R2C2 Bottom" name: "FOUL" } location_room: "R2C2 Bottom" } doors { name: "Blue Door" - type: STANDARD + type: ITEM_ONLY + legacy_location: true receivers: "Components/Doors/entry_8" panels { room: "Connected Area" name: "PAST" } panels { room: "Connected Area" name: "LAY" } @@ -65,7 +71,8 @@ doors { } doors { name: "Sky Owl" - type: STANDARD + type: ITEM_ONLY + legacy_location: true receivers: "Components/Owl/Room 1/LB" receivers: "Components/Owl/Room 1/LBG" receivers: "Components/Owl/Room 2/LB" @@ -93,7 +100,8 @@ doors { } doors { name: "Gray Owl" - type: STANDARD + type: ITEM_ONLY + legacy_location: true receivers: "Components/Owl/Room 1/G" receivers: "Components/Owl/Room 1/GG" receivers: "Components/Owl/Room 2/G" @@ -121,7 +129,8 @@ doors { } doors { name: "Orange Owl" - type: STANDARD + type: ITEM_ONLY + legacy_location: true receivers: "Components/Owl/Room 1/O" receivers: "Components/Owl/Room 1/OG" receivers: "Components/Owl/Room 2/O" @@ -149,7 +158,8 @@ doors { } doors { name: "White Owl" - type: STANDARD + type: ITEM_ONLY + legacy_location: true receivers: "Components/Owl/Room 1/W" receivers: "Components/Owl/Room 1/WG" receivers: "Components/Owl/Room 2/W" @@ -177,7 +187,8 @@ doors { } doors { name: "Black Owl" - type: STANDARD + type: ITEM_ONLY + legacy_location: true receivers: "Components/Owl/Room 1/BK" receivers: "Components/Owl/Room 1/BKG" receivers: "Components/Owl/Room 2/BK" @@ -205,7 +216,8 @@ doors { } doors { name: "Blue Owl" - type: STANDARD + type: ITEM_ONLY + legacy_location: true receivers: "Components/Owl/Room 1/BL" receivers: "Components/Owl/Room 1/BLG" receivers: "Components/Owl/Room 2/BL" @@ -251,3 +263,89 @@ doors { panels { room: "Connected Area" name: "WHITE" } panels { room: "Blue Room" name: "SKY" } } +doors { + name: "R1C1 Panels" + type: LOCATION_ONLY + panels { room: "Connected Area" name: "ETCH" } + panels { room: "Connected Area" name: "SHOE" } + panels { room: "Connected Area" name: "MARKER" } + location_room: "Connected Area" + location_name: "ETCH, MARKER, SHOE" +} +doors { + name: "R1C2 Panels" + type: LOCATION_ONLY + panels { room: "Connected Area" name: "FAINT" } + panels { room: "Connected Area" name: "PURE" } + panels { room: "Connected Area" name: "MODE" } + location_room: "Connected Area" + location_name: "FAINT, MODE, PURE" +} +doors { + name: "Control Center Magenta Panel" + type: LOCATION_ONLY + panels { room: "Connected Area" name: "COLOR" } + location_room: "Connected Area" + location_name: "COLOR" +} +doors { + name: "R1C3 Panels" + type: LOCATION_ONLY + panels { room: "Connected Area" name: "PENCIL" } + panels { room: "Connected Area" name: "WING" } + location_room: "Connected Area" + location_name: "PENCIL, WING" +} +doors { + name: "R1C4 Panels" + type: LOCATION_ONLY + panels { room: "Connected Area" name: "SKETCH" } + panels { room: "Connected Area" name: "PHOTO" } + panels { room: "R1C4 Left" name: "WALK" } + panels { room: "R1C4 Left" name: "STENCIL" } + location_room: "R1C4 Left" + location_name: "PHOTO, SKETCH, STENCIL, WALK" +} +doors { + name: "R2C1 Panels" + type: LOCATION_ONLY + panels { room: "Connected Area" name: "LAY" } + panels { room: "Connected Area" name: "PAST" } + panels { room: "R2C1 Left" name: "VERB" } + panels { room: "R2C1 Left" name: "FOIL" } + location_room: "R2C1 Left" + location_name: "FOIL, LAY, PAST, VERB" +} +doors { + name: "R2C2 Panels" + type: LOCATION_ONLY + panels { room: "R2C2 Bottom" name: "FOUL" } + panels { room: "R2C2 Top" name: "CRUSH" } + panels { room: "Connected Area" name: "FIZZLE" } + location_room: "R2C2 Top" + location_name: "CRUSH, FOUL, FIZZLE" +} +doors { + name: "R2C3 Panels" + type: LOCATION_ONLY + panels { room: "Connected Area" name: "PRIMARY" } + panels { room: "R2C3 Bottom" name: "FIGMENT" } + location_room: "R2C3 Bottom" + location_name: "FIGMENT, PRIMARY" +} +doors { + name: "R2C4 Panels" + type: LOCATION_ONLY + panels { room: "Connected Area" name: "SHOW" } + panels { room: "Connected Area" name: "HAD" } + panels { room: "Connected Area" name: "HEAVY" } + location_room: "Connected Area" + location_name: "HAD, HEAVY, SHOW" +} +doors { + name: "Near Z1 Panel" + type: LOCATION_ONLY + panels { room: "Z Room" name: "MAZE" } + location_room: "Z Room" + location_name: "MAZE" +} diff --git a/data/maps/the_parthenon/doors.txtpb b/data/maps/the_parthenon/doors.txtpb index 1161917..05d2e63 100644 --- a/data/maps/the_parthenon/doors.txtpb +++ b/data/maps/the_parthenon/doors.txtpb @@ -43,3 +43,12 @@ doors { panels { room: "Main Area" name: "ALEXANDER" answer: "alexander" } panels { room: "Main Area" name: "CAESAR" answer: "caesar" } } +doors { + name: "Lavender Area Puzzles" + type: LOCATION_ONLY + panels { room: "Lavender Area" name: "ME" } + panels { room: "Lavender Area" name: "SHEEP" } + panels { room: "Lavender Area" name: "WOOD" } + location_room: "Lavender Area" + location_name: "ME, SHEEP, WOOD" +} diff --git a/data/maps/the_partial/doors.txtpb b/data/maps/the_partial/doors.txtpb index 11826ea..e37d077 100644 --- a/data/maps/the_partial/doors.txtpb +++ b/data/maps/the_partial/doors.txtpb @@ -49,7 +49,8 @@ doors { } doors { name: "Control Center Entrance" - type: LEGACY_LOCATION + type: EVENT + legacy_location: true #receivers: "Components/Doors/controlDoor" panels { room: "Control Center Entrance" name: "RETURN" } location_room: "Control Center Entrance" diff --git a/data/maps/the_plaza/doors.txtpb b/data/maps/the_plaza/doors.txtpb index d95273c..fef8954 100644 --- a/data/maps/the_plaza/doors.txtpb +++ b/data/maps/the_plaza/doors.txtpb @@ -210,3 +210,31 @@ doors { panels { room: "Bottom Right Room" name: "HONEY" } panels { room: "Bottom Right Room" name: "INJECT" } } +doors { + name: "Near Sirenic Panel" + type: LOCATION_ONLY + panels { room: "Sirenic Entrance" name: "SIREN" } + location_room: "Sirenic Entrance" + location_name: "SIREN" +} +doors { + name: "Near Symbolic Panel" + type: LOCATION_ONLY + panels { room: "Symbolic Entrance" name: "FIGURATIVE" } + location_room: "Symbolic Entrance" + location_name: "FIGURATIVE" +} +doors { + name: "Near Repetitive Panel" + type: LOCATION_ONLY + panels { room: "Repetitive Entrance" name: "TEDIOUS" } + location_room: "Repetitive Entrance" + location_name: "TEDIOUS" +} +doors { + name: "Near Broken Portal Panel" + type: LOCATION_ONLY + panels { room: "Main Area" name: "AFFABLE" } + location_room: "Main Area" + location_name: "AFFABLE" +} diff --git a/data/maps/the_relentless/doors.txtpb b/data/maps/the_relentless/doors.txtpb index e970e40..e755d0b 100644 --- a/data/maps/the_relentless/doors.txtpb +++ b/data/maps/the_relentless/doors.txtpb @@ -26,7 +26,8 @@ doors { } doors { name: "Left/Turn Door" - type: LEGACY_LOCATION + type: EVENT + legacy_location: true panels { room: "Left Room" name: "HIDE" } panels { room: "Left Room" name: "LEFT" } panels { room: "Left Room" name: "MORE" } @@ -37,7 +38,8 @@ doors { } doors { name: "Turn/Shop Door" - type: LEGACY_LOCATION + type: EVENT + legacy_location: true panels { room: "Turn Room" name: "HIDE (1)" } panels { room: "Turn Room" name: "HIDE (2)" } panels { room: "Turn Room" name: "MORE" } diff --git a/data/maps/the_repetitive/doors.txtpb b/data/maps/the_repetitive/doors.txtpb index d964928..95d189f 100644 --- a/data/maps/the_repetitive/doors.txtpb +++ b/data/maps/the_repetitive/doors.txtpb @@ -20,11 +20,20 @@ doors { } doors { name: "Dot Area Entrance" - type: STANDARD + type: ITEM_ONLY + legacy_location: true receivers: "Components/Doors/Door8" panels { room: "Main Room" name: "HOTS (2)" } location_room: "Main Room" } +doors { + name: "Hots Panels" + type: LOCATION_ONLY + panels { room: "Main Room" name: "HOTS (1)" } + panels { room: "Main Room" name: "HOTS (2)" } + location_room: "Main Room" + location_name: "HOTS (1), HOTS (2)" +} doors { name: "Lime Door" type: STANDARD @@ -200,3 +209,35 @@ doors { senders: "Components/Collectables/anticollectable" location_room: "Anti Room" } +doors { + name: "H2 Room Puzzles" + type: LOCATION_ONLY + panels { room: "Main Room" name: "HEIGHT (1)" } + panels { room: "Main Room" name: "HEIGHT (2)" } + panels { room: "Main Room" name: "HEIGHT (3)" } + panels { room: "Main Room" name: "HEIGHT (4)" } + panels { room: "Main Room" name: "HEIGHT (5)" } + panels { room: "Main Room" name: "HEIGHT (6)" } + panels { room: "Main Room" name: "QUESTION" } + panels { room: "Main Room" name: "INTUITION" } + panels { room: "Main Room" name: "?" } + panels { room: "Main Room" name: "HAND" } + panels { room: "Main Room" name: "? HAND" } + panels { room: "Main Room" name: "RICHES" } + panels { room: "Main Room" name: "? RICHES" } + panels { room: "Main Room" name: "MISHMASH" } + location_room: "Main Room" +} +doors { + name: "Anti-Collectable Room Panels" + type: LOCATION_ONLY + panels { room: "Anti Room" name: "EYE (1)" } + panels { room: "Anti Room" name: "EYE (2)" } + panels { room: "Anti Room" name: "HA (1)" } + panels { room: "Anti Room" name: "HA (2)" } + panels { room: "Anti Room" name: "HA (3)" } + panels { room: "Anti Room" name: "HA (4)" } + panels { room: "Anti Room" name: "HA (5)" } + panels { room: "Anti Room" name: "TWO" } + location_room: "Anti Room" +} diff --git a/data/maps/the_stellar/doors.txtpb b/data/maps/the_stellar/doors.txtpb index 0656885..1359189 100644 --- a/data/maps/the_stellar/doors.txtpb +++ b/data/maps/the_stellar/doors.txtpb @@ -93,3 +93,12 @@ doors { panels { room: "Connected Area" name: "QUESTION (2)" } location_room: "Connected Area" } +doors { + name: "Welcome Back Panels" + type: LOCATION_ONLY + panels { room: "Connected Area" name: "GREETINGS" } + panels { room: "Connected Area" name: "BEHIND" } + panels { room: "Connected Area" name: "Blank" } + location_room: "Connected Area" + location_name: "BEHIND, GREETINGS, Blank" +} diff --git a/data/maps/the_talented/doors.txtpb b/data/maps/the_talented/doors.txtpb index d4d3148..766e003 100644 --- a/data/maps/the_talented/doors.txtpb +++ b/data/maps/the_talented/doors.txtpb @@ -52,3 +52,10 @@ doors { panels { room: "Back Room" name: "RELEVANT" } panels { room: "Back Room" name: "LONE" } } +doors { + name: "Keyholder Hint Panel" + type: LOCATION_ONLY + panels { room: "Main Area" name: "EARL" } + location_room: "Main Area" + location_name: "EARL" +} diff --git a/data/maps/the_unkempt/doors.txtpb b/data/maps/the_unkempt/doors.txtpb index 446fe69..d2e9bc6 100644 --- a/data/maps/the_unkempt/doors.txtpb +++ b/data/maps/the_unkempt/doors.txtpb @@ -185,3 +185,20 @@ doors { panels { room: "Right Area" name: "TOUGH" } location_room: "Right Area" } +doors { + name: "Near Teal Door Panels" + type: LOCATION_ONLY + panels { room: "Main Area" name: "I" } + panels { room: "Main Area" name: "SPY" } + panels { room: "Main Area" name: "HEFT" } + panels { room: "Main Area" name: "THEFT" } + location_room: "Main Area" + location_name: "HEFT, I, SPY, THEFT" +} +doors { + name: "Control Center Orange Panel" + type: LOCATION_ONLY + panels { room: "Right Area" name: "COLOR" } + location_room: "Right Area" + location_name: "COLOR" +} diff --git a/data/maps/the_unyielding/doors.txtpb b/data/maps/the_unyielding/doors.txtpb index a3c3999..265442c 100644 --- a/data/maps/the_unyielding/doors.txtpb +++ b/data/maps/the_unyielding/doors.txtpb @@ -504,3 +504,42 @@ doors { receivers: "Panels/Miscellaneous/entry_3/teleportListener" double_letters: true } +doors { + name: "Blue D Room Puzzles" + type: LOCATION_ONLY + panels { room: "Central Connected Area" name: "FOX" } + panels { room: "Central Connected Area" name: "LOCKS" } + panels { room: "Central Connected Area" name: "BOX" } + panels { room: "Central Connected Area" name: "SQUAWKS" } + panels { room: "Central Connected Area" name: "HAWKS" } + panels { room: "Central Connected Area" name: "TALKS" } + location_room: "Central Connected Area" +} +doors { + name: "Color Hallway Panels" + type: LOCATION_ONLY + panels { room: "Brown Alcove" name: "BROW" } + panels { room: "Central Connected Area" name: "RANGE" } + panels { room: "Central Connected Area" name: "WHIT" } + panels { room: "Central Connected Area" name: "ALMOND" } + panels { room: "Central Connected Area" name: "DAY" } + panels { room: "Central Connected Area" name: "REAM" } + panels { room: "Central Connected Area" name: "SON (2)" } + panels { room: "Central Connected Area" name: "RAY" } + panels { room: "Central Connected Area" name: "BURROWING" } + panels { room: "Orange Alcove" name: "ON" } + panels { room: "Plaza Entrance" name: "GEE" } + panels { room: "Plaza Entrance" name: "SEA" } + panels { room: "Gray Alcove" name: "GRAVELY" } + panels { room: "Cyan Alcove" name: "CAN" } + panels { room: "Star Rooms" name: "CYANIDE" } + panels { room: "Star Rooms" name: "BACK" } + panels { room: "Black Alcove" name: "LACK" } + panels { room: "White Corners" name: "ARCH" } + panels { room: "White Corners" name: "ZERO" } + panels { room: "White Corners" name: "DAM" } + panels { room: "White Corners" name: "WHEN" } + panels { room: "Hero Room" name: "HER" } + panels { room: "Daisy Alcove" name: "CYANIDES" } + location_room: "Central Connected Area" +} diff --git a/proto/data.proto b/proto/data.proto index d68c5c9..e9cc7d7 100644 --- a/proto/data.proto +++ b/proto/data.proto @@ -30,9 +30,6 @@ enum DoorType { // This door is never a location, and is an item as long as gallery painting shuffle is on. GALLERY_PAINTING = 7; - - // This location is not added to new worlds, but the client can send it out for backwards compataibility purposes. - LEGACY_LOCATION = 8; } enum DoorGroupType { @@ -159,6 +156,7 @@ message Door { optional DoorType type = 8; optional bool latch = 20; + optional bool legacy_location = 21; optional string location_name = 17; } diff --git a/proto/human.proto b/proto/human.proto index 1cd0f10..c586599 100644 --- a/proto/human.proto +++ b/proto/human.proto @@ -119,6 +119,11 @@ message HumanDoor { // opening trigger is deactivated. This applies to EVENT/LOCATION_ONLY doors, // as well as item-locked doors when not shuffling doors. optional bool latch = 17; + + // If true, the client will treat this door like a location, even though no + // location is created for it in the generator. This helps provide backwards + // compatability with older worlds. + optional bool legacy_location = 18; } message HumanDoors { diff --git a/tools/assign_ids/main.cpp b/tools/assign_ids/main.cpp index 8010a9a..4cf7c3f 100644 --- a/tools/assign_ids/main.cpp +++ b/tools/assign_ids/main.cpp @@ -112,7 +112,8 @@ class AssignIds { void ProcessDoor(const HumanDoor& h_door, const std::string& current_map_name) { - if (h_door.type() == DoorType::EVENT && !h_door.latch()) { + if (h_door.type() == DoorType::EVENT && !h_door.latch() && + !h_door.legacy_location()) { return; } diff --git a/tools/datapacker/main.cpp b/tools/datapacker/main.cpp index cf811c9..8109bf5 100644 --- a/tools/datapacker/main.cpp +++ b/tools/datapacker/main.cpp @@ -436,6 +436,10 @@ class DataPacker { if (h_door.has_latch()) { door.set_latch(h_door.latch()); } + + if (h_door.has_legacy_location()) { + door.set_legacy_location(h_door.legacy_location()); + } } void ProcessConnectionsFile(std::filesystem::path path, diff --git a/tools/validator/validator.cpp b/tools/validator/validator.cpp index a99447a..fe36be7 100644 --- a/tools/validator/validator.cpp +++ b/tools/validator/validator.cpp @@ -227,8 +227,7 @@ class Validator { if (h_door.type() == DoorType::STANDARD || h_door.type() == DoorType::LOCATION_ONLY || - h_door.type() == DoorType::GRAVESTONE || - h_door.type() == DoorType::LEGACY_LOCATION) { + h_door.type() == DoorType::GRAVESTONE || h_door.legacy_location()) { if (h_door.double_letters()) { std::cout << "Door " << door_identifier.ShortDebugString() << " is a location that depends on double_letters." @@ -241,7 +240,8 @@ class Validator { } } - bool needs_id = (h_door.type() != DoorType::EVENT || h_door.latch()); + bool needs_id = (h_door.type() != DoorType::EVENT || h_door.latch() || + h_door.legacy_location()); if (door_info.has_id != needs_id) { if (needs_id) { std::cout << "Door " << door_identifier.ShortDebugString() -- cgit 1.4.1