# Copyright (c) 2021-2022-2023 Luca Cappa
# Released under the term specified in file LICENSE.txt
# SPDX short identifier: MIT
# A "pure" GitHub workflow using CMake, Ninja and vcpkg to build a C/C++ codebase.
# It leverages both CMakePresets.json and vcpkg.json.
# It is called "pure workflow" because it is an example which minimizes the usage of
# custom GitHub Actions, but leverages directly the tools that could be easily run on
# your development machines (i.e. CMake, vcpkg, Ninja) to ensure a perfectly identical
# and reproducible local build (on your development machine) and a remote build on
# build agents.
name: build-binaries
on:
workflow_dispatch:
jobs:
job:
name: ${{ matrix.os }}-${{ github.workflow }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
include:
doors {
name: "Trick Door"
type: STANDARD
receivers: "Components/Doors/side_1"
panels { room: "Starting Room" name: "TRICK" }
location_room: "Starting Room"
}
doors {
name: "Link Area Entrance"
type: STANDARD
receivers: "Components/Doors/side_2"
panels { room: "Trick Room" name: "INK" answer: "link" }
location_room: "Trick Room"
}
# side_3 is vanilla because I don't think it's real?
doors {
name: "Trick To Shop Door"
type: STANDARD
receivers: "Components/Doors/side_4"
panels { room: "Starting Room" name: "TRICK" answer: "treat" }
location_room: "Starting Room"
}
doors {
name: "Second Room Right Door"
type: STANDARD
receivers: "Components/Doors/second_right"
panels { room: "Starting Room" name: "HINT" }
location_room: "Starting Room"
}
doors {
name: "Red Alcove Exit"
type: STANDARD
receivers: "Components/Doors/second_right2"
panels { room: "Red Alcove" name: "DEAD" }
panels { room: "Red Alcove" name: "BROW" }
location_room: "Red Alcove"
}
doors {
name: "Four Corner Panels"
type: EVENT
panels { room: "Red Alcove" name: "DEAD" }
panels { room: "Red Alcove" name: "BROW" }
panels { room: "Blue Alcove" name: "BLUE" }
panels { room: "Blue Alcove" name: "ARMY" }
}
doors {
name: "Corners Painting"
type: STANDARD
receivers: "Components/Doors/second_right11"
panels { room: "Least Blue Last" name: "CORNERS" }
location_room: "Least Blue Last"
}
doors {
name: "Blue Alcove Exit"
type: STANDARD
receivers: "Components/Doors/second_right3"
panels { room: "Blue Alcove" name: "BLUE" }
panels { room: "Blue Alcove" name: "ARMY" }
location_room: "Blue Alcove"
}
doors {
name: "Rabbithole Door"
type: STANDARD
receivers: "Components/Doors/second_right8"
panels { room: "Rabbit Hole Lock" name: "RABBIT" }
panels { room: "Rabbit Hole Lock" name: "HOLE" }
location_room: "Rabbit Hole Lock"
}
# second_right is vanilla because it's like LOST door.
doors {
name: "Noon Door"
type: STANDARD
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: "Scarf Door"
type: STANDARD
receivers: "Components/Doors/second_right6"
panels { room: "Red Blue Halls" name: "RAIN WOMAN" }
location_room: "Red Blue Halls"
}
doors {
name: "Blue Alcove Entrance"
type: STANDARD
receivers: "Components/Doors/second_right9"
panels { room: "Wrath Room" name: "CORN" }
location_room: "Wrath Room"
}
doors {
name: "Second Room Left Door"
type: STANDARD
receivers: "Components/Doors/second_left"
# There's also the special behavior with returning from The Digital.
panels { room: "Starting Room" name: "THIN" }
location_room: "Starting Room"
}
doors {
name: "Flipped Second Room Right Door"
type: STANDARD
receivers: "Components/Doors/second_left_top"
panels { room: "Flipped Second Room" name: "SLENDER" }
location_room: "Flipped Second Room"
}
doors {
name: "Flipped Second Room Left Door"
type: STANDARD
receivers: "Components/Doors/second_right_top"
panels { room: "Flipped Second Room" name: "CLUE" }
location_room: "Flipped Second Room"
}
doors {
name: "Right Eye Entrance"
type: ITEM_ONLY
receivers: "Components/Doors/third_right"
panels { room: "Trick Room" name: "INK" }
}
doors {
name: "Red Blue Area Left Door"
type: STANDARD
receivers: "Components/Doors/fourth_right"
panels { room: "Right Eye" name: "WANDER" }
location_room: "Right Eye"
}
doors {
name: "Red Blue Area Right Door"
type: ITEM_ONLY
receivers: "Components/Doors/fifth_right"
panels { room: "Right Eye" name: "WANDER" }
location_room: "Right Eye"
}
# Components/Doors/back_left_1, _3, _4, _6 are vanilla because they're nothing.
doors {
name: "Orange Door Hider"
type: STANDARD
receivers: "Components/Doors/back_left_2"
panels { room: "Colored Doors Area" name: "OPEN" answer: "orange" }
# "wall" is supposed to also work. idk man
location_room: "Colored Doors Area"
}
doors {
name: "Lime Room Entrance"
type: STANDARD
receivers: "Components/Doors/back_left_5"
panels { room: "Ctrl Tutorial" name: "RIGHT" }
location_room: "Ctrl Tutorial"
}
doors {
name: "Revitalized Entrance"
type: STANDARD
receivers: "Components/Doors/back_left_8"
receivers: "Components/Doors/back_left_9"
panels { room: "Lime Room" name: "HIDE" }
panels { room: "Lime Room" name: "SEEK" }
location_room: "Lime Room"
}
doors {
name: "Control Center White Door"
type: CONTROL_CENTER_COLOR
receivers: "Components/Doors/back_left_7"
control_center_color: "white"
}
# exit_1 should maybe just be removed.
# entry_proxied_1 is part of the vanilla intro.
doors {
name: "X Area Entrance"
type: STANDARD
receivers: "Components/Doors/Entry/entry_proxied_2"
panels { room: "Starting Room" name: "HI" answer: "bye" }
location_room: "Starting Room"
}
doors {
name: "Composite Room Entrance"
type: STANDARD
receivers: "Components/Doors/Entry/entry_proxied_3"
panels { room: "Starting Room" name: "HI" answer: "hidden" }
location_room: "Starting Room"
}
doors {
name: "Flip Area Entrance"
type: STANDARD
receivers: "Components/Doors/Entry/entry_proxied_4"
panels { room: "Starting Room" name: "HI" answer: "high" }
location_room: "Starting Room"
}
doors {
name: "Daedalus Entrance"
type: STANDARD
receivers: "Components/Doors/Entry/entry_proxied_5"
panels { room: "Starting Room" name: "HI" answer: "hide" }
location_room: "Starting Room"
}
doors {
name: "Repetitive Entrance"
type: ITEM_ONLY
receivers: "Components/Doors/Entry/entry_proxied_9"
double_letters: true
}
doors {
name: "Shop Entrance"
type: STANDARD
receivers: "Components/Doors/Entry/entry_proxied_6"
panels { room: "Shop Entrance" name: "TURN" }
location_room: "Shop Entrance"
}
doors {
name: "Liberated Entrance"
type: STANDARD
receivers: "Components/Doors/Entry/entry_proxied_10"
panels { room: "Flipped Pyramid Area" name: "TURN (1)" }
location_room: "Flipped Pyramid Area"
}
doors {
name: "Flipped Pyramid Area Entrance"
type: EVENT
receivers: "Components/Doors/Entry/entry_proxied_12"
double_letters: true
}
doors {
name: "Literate Entrance"
type: STANDARD
receivers: "Components/Doors/Entry/entry_proxied_11"
panels { room: "Flipped Pyramid Area" name: "TURN (2)" }
location_room: "Flipped Pyramid Area"
}
doors {
name: "Parthenon Entrance"
type: STANDARD
receivers: "Components/Doors/Entry/entry_proxied_7"
panels { room: "Parthenon Return" name: "RETURN" }
location_room: "Parthenon Return"
}
doors {
name: "Colored Doors Area Entrance"
type: ITEM_ONLY
receivers: "Components/Doors/Entry/entry_proxied_8"
panels { room: "Parthenon Return" name: "RETURN" }
location_room: "Parthenon Return"
}
doors {
name: "D Room Entrance"
type: STANDARD
receivers: "Components/Doors/Entry/d_1"
panels { room: "Starting Room" name: "THAN" }
location_room: "Starting Room"
}
doors {
name: "Near D Room Painting"
type: ITEM_ONLY
receivers: "Components/Doors/Entry/d_3"
receivers: "Components/Doors/Entry/d_4"
double_letters: true
}
doors {
name: "D Room Panels"
type: EVENT
receivers: "Components/Doors/Entry/d_2"
panels { room: "D Room" name: "BASEBALL" }
panels { room: "D Room" name: "BIKERS" }
panels { room: "D Room" name: "RED" }
panels { room: "D Room" name: "SUN" }
panels { room: "D Room" name: "BLACK" }
panels { room: "D Room" name: "COWBOY" }
panels { room: "D Room" name: "SPRAY" }
panels { room: "D Room" name: "BOWLER" }
panels { room: "D Room" name: "CARPENTER" }
}
doors {
name: "Gallery Entrance"
type: STANDARD
receivers: "Components/Doors/Entry/entry_return_1"
panels { room: "Gallery Return" name: "RETURN" }
location_room: "Gallery Return"
}
# entry_front_1 - _6 are part of the vanilla intro.
doors {
name: "L Room Entrance"
type: STANDARD
receivers: "Components/Doors/Entry/entry_front_7"
receivers: "Components/Doors/Entry/entry_front_8"
panels { room: "Trick Room" name: "INK" }
location_room: "Trick Room"
}
doors {
name: "Least Blue Last Panels"
type: EVENT
#move_paintings { room: "Starting Room" name: "OWL" }
#receivers: "Components/Paintings/owl/visibilityListener"
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" }
}
doors {
name: "Red Room Painting"
type: STANDARD
#move_paintings { room: "Right Eye" name: "PSYCHIC" }
receivers: "Components/Paintings/psychic/teleportListener"
panels { room: "Right Eye" name: "FAINT" }
location_room: "Right Eye"
}
doors {
name: "Third Eye Painting"
type: LOCATION_ONLY
# move_paintings { room: "Eye Room" name: "GALLERY" }
# TODO: ummmm
panels { room: "Eye Room" name: "I" }
location_room: "Eye Room"
}