diff --git a/src/dialog.asm b/src/dialog.asm index a20f3b92..dbaf898a 100644 --- a/src/dialog.asm +++ b/src/dialog.asm @@ -105,6 +105,7 @@ .IMPORT DataA_Dialog_PaperJerome27_sDialog .IMPORT DataA_Dialog_PaperJerome28_sDialog .IMPORT DataA_Dialog_PaperJerome29_sDialog +.IMPORT DataA_Dialog_PaperJerome30_sDialog .IMPORT DataA_Dialog_PaperJerome31_sDialog .IMPORT DataA_Dialog_PaperJerome32_sDialog .IMPORT DataA_Dialog_PaperJerome34_sDialog @@ -519,6 +520,7 @@ _Finish: d_entry t, PaperJerome27, DataA_Dialog_PaperJerome27_sDialog d_entry t, PaperJerome28, DataA_Dialog_PaperJerome28_sDialog d_entry t, PaperJerome29, DataA_Dialog_PaperJerome29_sDialog + d_entry t, PaperJerome30, DataA_Dialog_PaperJerome30_sDialog d_entry t, PaperJerome31, DataA_Dialog_PaperJerome31_sDialog d_entry t, PaperJerome32, DataA_Dialog_PaperJerome32_sDialog d_entry t, PaperJerome34, DataA_Dialog_PaperJerome34_sDialog diff --git a/src/dialog.inc b/src/dialog.inc index 119da638..ace1574a 100644 --- a/src/dialog.inc +++ b/src/dialog.inc @@ -183,6 +183,7 @@ kDialogEntryCutscene = $ff ; ends the dialog and starts a new cutscene PaperJerome27 PaperJerome28 PaperJerome29 + PaperJerome30 PaperJerome31 PaperJerome32 PaperJerome34 diff --git a/src/newgame.asm b/src/newgame.asm index 6c708a91..c8bb8406 100644 --- a/src/newgame.asm +++ b/src/newgame.asm @@ -265,6 +265,7 @@ _SetFlags: .byte eFlag::PaperJerome18 ; room: FactoryWest .byte eFlag::CoreSouthCorraHelped .byte eFlag::PrisonEastEastGateOpen + .byte eFlag::PaperJerome15 ; room: PrisonLower .byte eFlag::PrisonEastLowerGateShut .byte eFlag::PrisonEastOrcTrapped .byte eFlag::PrisonEastWestGateOpen @@ -335,6 +336,7 @@ _SetFlags: .byte eFlag::CityBuilding3BlastedCrates .byte eFlag::PaperManual8 ; room: CityBuilding3 .byte eFlag::CityCenterDoorUnlocked + .byte eFlag::PaperJerome30 ; room: CityBuilding5 .byte eFlag::BossCity .byte eFlag::UpgradeBRemote .byte eFlag::BreakerCity @@ -352,6 +354,7 @@ _SetFlags: .byte eFlag::ShadowOfficeRemovedWall .byte eFlag::ShadowOfficeTaggedGhost .byte eFlag::PaperJerome20 ; room: ShadowDescent + .byte eFlag::PaperJerome32 ; room: ShadowDepths .byte eFlag::BossShadow .byte eFlag::UpgradeOpMul .byte eFlag::BreakerShadow diff --git a/src/paper.asm b/src/paper.asm index 9a78a2f0..549440f4 100644 --- a/src/paper.asm +++ b/src/paper.asm @@ -78,6 +78,9 @@ .IMPORT DataA_Text2_PaperJerome28_Page2_u8_arr .IMPORT DataA_Text2_PaperJerome29_Page1_u8_arr .IMPORT DataA_Text2_PaperJerome29_Page2_u8_arr +.IMPORT DataA_Text2_PaperJerome30_Page1_u8_arr +.IMPORT DataA_Text2_PaperJerome30_Page2_u8_arr +.IMPORT DataA_Text2_PaperJerome30_Page3_u8_arr .IMPORT DataA_Text2_PaperJerome31_Page1_u8_arr .IMPORT DataA_Text2_PaperJerome31_Page2_u8_arr .IMPORT DataA_Text2_PaperJerome32_Page1_u8_arr @@ -295,7 +298,7 @@ Ram_CollectedPapers_u8_arr: .res kPaperGridCols d_byte eFlag::PaperJerome27, eDialog::PaperJerome27 d_byte eFlag::PaperJerome28, eDialog::PaperJerome28 d_byte eFlag::PaperJerome29, eDialog::PaperJerome29 - d_byte eFlag::PaperJerome30, 0 ; TODO + d_byte eFlag::PaperJerome30, eDialog::PaperJerome30 d_byte eFlag::PaperJerome31, eDialog::PaperJerome31 d_byte eFlag::PaperJerome32, eDialog::PaperJerome32 d_byte eFlag::PaperJerome33, 0 ; TODO @@ -347,7 +350,7 @@ Ram_CollectedPapers_u8_arr: .res kPaperGridCols d_byte eFlag::PaperJerome27, eArea::Lava ; room: LavaTunnel d_byte eFlag::PaperJerome28, eArea::Temple ; room: TempleChevet d_byte eFlag::PaperJerome29, eArea::Mermaid ; room: MermaidElevator - d_byte eFlag::PaperJerome30, $ff ; TODO + d_byte eFlag::PaperJerome30, eArea::City ; room: CityBuilding5 d_byte eFlag::PaperJerome31, eArea::Core ; room: CoreFlower d_byte eFlag::PaperJerome32, eArea::Shadow ; room: ShadowDepths d_byte eFlag::PaperJerome33, $ff ; TODO @@ -856,6 +859,14 @@ _Right: dlg_Done .ENDPROC +.EXPORT DataA_Dialog_PaperJerome30_sDialog +.PROC DataA_Dialog_PaperJerome30_sDialog + dlg_Text Paper, DataA_Text2_PaperJerome30_Page1_u8_arr + dlg_Text Paper, DataA_Text2_PaperJerome30_Page2_u8_arr + dlg_Text Paper, DataA_Text2_PaperJerome30_Page3_u8_arr + dlg_Done +.ENDPROC + .EXPORT DataA_Dialog_PaperJerome31_sDialog .PROC DataA_Dialog_PaperJerome31_sDialog dlg_Text Paper, DataA_Text2_PaperJerome31_Page1_u8_arr diff --git a/src/rooms/city_building5.asm b/src/rooms/city_building5.asm index 342b5439..2f30908d 100644 --- a/src/rooms/city_building5.asm +++ b/src/rooms/city_building5.asm @@ -20,6 +20,7 @@ .INCLUDE "../actor.inc" .INCLUDE "../device.inc" .INCLUDE "../devices/mousehole.inc" +.INCLUDE "../flag.inc" .INCLUDE "../macros.inc" .INCLUDE "../room.inc" @@ -90,6 +91,12 @@ _Devices_sDevice_arr: d_byte Target_byte, eRoom::CityCenter D_END D_STRUCT sDevice + d_byte Type_eDevice, eDevice::Paper + d_byte BlockRow_u8, 11 + d_byte BlockCol_u8, 2 + d_byte Target_byte, eFlag::PaperJerome30 + D_END + D_STRUCT sDevice d_byte Type_eDevice, eDevice::Mousehole d_byte BlockRow_u8, 5 d_byte BlockCol_u8, 11 diff --git a/src/text/text2.txt b/src/text/text2.txt index 6fd1a7e5..b8d409f1 100644 --- a/src/text/text2.txt +++ b/src/text/text2.txt @@ -276,6 +276,22 @@ further incensed the mermaids, and they cut all ties with us.# +@PaperJerome30_Page1 +Day 30: In the years +that followed, human +society began to break +down.# + +@PaperJerome30_Page2 +Too much critical +infrastructure was no +longer possible to +maintain.# + +@PaperJerome30_Page3 +The city and complex +were slowly evacuated.# + @PaperJerome31_Page1 Day 31: Despite how we chose to use all our diff --git a/tests/scenario.py b/tests/scenario.py index 656aca0e..f809fcfe 100644 --- a/tests/scenario.py +++ b/tests/scenario.py @@ -595,7 +595,7 @@ def test_newgame_flags(newgame_flags, all_flags, papers): failed = True # TODO: remove this filter once all papers are added unused_flags = set(flag for flag in unused_flags - if not flag.startswith('Paper')) + if flag in papers or not flag.startswith('Paper')) if unused_flags: print('SCENARIO: missing newgame flags:') for flag in sorted(unused_flags):