From c474cb27e4e68e64f98f8fe0375a63c5c3552705 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Wed, 13 Aug 2025 23:56:49 -0400 Subject: Assigned IDs for the_gallery --- apworld/player_logic.py | 4 ++ data/ids.txtpb | 103 ++++++++++++++++++++++++++++++++++++++ data/maps/the_gallery/doors.txtpb | 4 +- proto/data.proto | 1 + tools/datapacker/main.cpp | 7 +++ 5 files changed, 117 insertions(+), 2 deletions(-) diff --git a/apworld/player_logic.py b/apworld/player_logic.py index 8b240b5..7209ee5 100644 --- a/apworld/player_logic.py +++ b/apworld/player_logic.py @@ -160,4 +160,8 @@ class Lingo2PlayerLogic: for room in door.rooms: reqs.rooms.add(self.world.static_logic.get_room_region_name(room)) + for sub_door_id in door.doors: + sub_reqs = self.get_door_reqs(sub_door_id) + reqs.merge(sub_reqs) + return reqs diff --git a/data/ids.txtpb b/data/ids.txtpb index 0a05672..019ae84 100644 --- a/data/ids.txtpb +++ b/data/ids.txtpb @@ -2169,6 +2169,109 @@ maps { } } } +maps { + key: "the_gallery" + value { + doors { + key: "Ancient Painting" + value: 431 + } + doors { + key: "Between Painting" + value: 417 + } + doors { + key: "Butterfly Painting" + value: 413 + } + doors { + key: "Castle Painting" + value: 429 + } + doors { + key: "Colorful Painting" + value: 428 + } + doors { + key: "Control Center Painting" + value: 423 + } + doors { + key: "Darkroom Painting" + value: 412 + } + doors { + key: "Ending Door" + value: 433 + } + doors { + key: "Entry Painting" + value: 418 + } + doors { + key: "Gallery Extension" + value: 432 + } + doors { + key: "Graveyard Painting" + value: 422 + } + doors { + key: "Rainbow Painting" + value: 426 + } + doors { + key: "Sun Temple Painting" + value: 430 + } + doors { + key: "Tower Painting" + value: 424 + } + doors { + key: "Tree Painting" + value: 420 + } + doors { + key: "Unyielding Painting" + value: 421 + } + doors { + key: "Wise Painting" + value: 419 + } + doors { + key: "Wondrous Painting" + value: 425 + } + doors { + key: "Words Painting" + value: 427 + } + rooms { + key: "Back Room" + value { + panels { + key: "TREE" + value: 416 + } + panels { + key: "UNYIELDING" + value: 415 + } + } + } + rooms { + key: "Daedalus Extension" + value { + panels { + key: "WHERE" + value: 414 + } + } + } + } +} letters { key: "a2" value: 278 diff --git a/data/maps/the_gallery/doors.txtpb b/data/maps/the_gallery/doors.txtpb index 6ce4b0e..a010220 100644 --- a/data/maps/the_gallery/doors.txtpb +++ b/data/maps/the_gallery/doors.txtpb @@ -28,7 +28,7 @@ doors { name: "Butterfly Painting" type: ITEM_ONLY move_paintings { room: "Main Area" name: "BUTTERFLY" } - required_room { map: "the_butterfly" name: "Main Area" } + rooms { map: "the_butterfly" name: "Main Area" } } doors { name: "Between Painting" @@ -129,7 +129,7 @@ doors { name: "Colorful Painting" type: ITEM_ONLY move_paintings { room: "Main Area" name: "COLORFUL" } - required_room { map: "the_colorful" name: "White Room" } + rooms { map: "the_colorful" name: "White Room" } } doors { name: "Castle Painting" diff --git a/proto/data.proto b/proto/data.proto index f60d54f..49a940c 100644 --- a/proto/data.proto +++ b/proto/data.proto @@ -76,6 +76,7 @@ message Door { repeated string switches = 7; repeated KeyholderAnswer keyholders = 13; repeated uint64 rooms = 14; + repeated uint64 doors = 15; optional DoorType type = 8; } diff --git a/tools/datapacker/main.cpp b/tools/datapacker/main.cpp index 8b87ab1..1736ec1 100644 --- a/tools/datapacker/main.cpp +++ b/tools/datapacker/main.cpp @@ -339,6 +339,13 @@ class DataPacker { container_.FindOrAddRoom(map_name, ri.name(), current_map_name)); } + for (const DoorIdentifier& di : h_door.doors()) { + std::optional map_name = + di.has_map() ? std::optional(di.map()) : std::nullopt; + door.add_doors( + container_.FindOrAddDoor(map_name, di.name(), current_map_name)); + } + if (h_door.has_control_center_color()) { door.set_control_center_color(h_door.control_center_color()); } -- cgit 1.4.1