diff --git a/src/dialog.asm b/src/dialog.asm index e35267d5..7b06d07d 100644 --- a/src/dialog.asm +++ b/src/dialog.asm @@ -105,6 +105,7 @@ .IMPORT DataA_Dialog_PaperManual3_sDialog .IMPORT DataA_Dialog_PaperManual4_sDialog .IMPORT DataA_Dialog_PaperManual5_sDialog +.IMPORT DataA_Dialog_PaperManual6_sDialog .IMPORT DataA_Dialog_PaperManual9_sDialog .IMPORT DataA_Dialog_PortraitAnimBank_u8_arr .IMPORT DataA_Dialog_PortraitFirstTileId_u8_arr @@ -518,6 +519,7 @@ _Finish: d_entry t, PaperManual3, DataA_Dialog_PaperManual3_sDialog d_entry t, PaperManual4, DataA_Dialog_PaperManual4_sDialog d_entry t, PaperManual5, DataA_Dialog_PaperManual5_sDialog + d_entry t, PaperManual6, DataA_Dialog_PaperManual6_sDialog d_entry t, PaperManual9, DataA_Dialog_PaperManual9_sDialog d_entry t, PrisonFlowerSign, DataA_Dialog_PrisonFlowerSign_sDialog d_entry t, PrisonUpperAlexCell, DataA_Dialog_PrisonUpperAlexCell_sDialog diff --git a/src/dialog.inc b/src/dialog.inc index 2b26656c..b2d9c5e6 100644 --- a/src/dialog.inc +++ b/src/dialog.inc @@ -183,6 +183,7 @@ kDialogEntryCutscene = $ff ; ends the dialog and starts a new cutscene PaperManual3 PaperManual4 PaperManual5 + PaperManual6 PaperManual9 PrisonFlowerSign PrisonUpperAlexCell diff --git a/src/newgame.asm b/src/newgame.asm index 2320ae80..55daab75 100644 --- a/src/newgame.asm +++ b/src/newgame.asm @@ -226,6 +226,7 @@ _SetFlags: .byte eFlag::GardenLandingDroppedIn .byte eFlag::PaperJerome13 .byte eFlag::UpgradeOpIf + .byte eFlag::PaperManual6 .byte eFlag::PaperJerome12 .byte eFlag::GardenEastTalkedToCorra .byte eFlag::MermaidHut1MetQueen @@ -243,6 +244,7 @@ _SetFlags: .byte eFlag::UpgradeOpTil .byte eFlag::TempleAltarColumnBroken .byte eFlag::PaperJerome28 + .byte eFlag::PaperManual9 .byte eFlag::BossTemple .byte eFlag::UpgradeRam2 .byte eFlag::BreakerTemple diff --git a/src/paper.asm b/src/paper.asm index 37963133..be9ce28e 100644 --- a/src/paper.asm +++ b/src/paper.asm @@ -228,7 +228,7 @@ Ram_CollectedPapers_u8_arr: .res kPaperGridCols d_byte eFlag::PaperManual3, eDialog::PaperManual3 d_byte eFlag::PaperManual4, eDialog::PaperManual4 d_byte eFlag::PaperManual5, eDialog::PaperManual5 - d_byte eFlag::PaperManual6, 0 ; TODO + d_byte eFlag::PaperManual6, eDialog::PaperManual6 d_byte eFlag::PaperManual7, 0 ; TODO d_byte eFlag::PaperManual8, 0 ; TODO d_byte eFlag::PaperManual9, eDialog::PaperManual9 @@ -277,10 +277,10 @@ Ram_CollectedPapers_u8_arr: .res kPaperGridCols d_byte eFlag::PaperJerome36, eArea::Prison ; room: PrisonCell d_byte eFlag::PaperManual1, eArea::Temple ; room: TempleFoyer d_byte eFlag::PaperManual2, eArea::Prison ; room: PrisonEscape - d_byte eFlag::PaperManual3, eArea::Lava ; room: LavaStation - d_byte eFlag::PaperManual4, eArea::Factory ; room: FactoryUpper - d_byte eFlag::PaperManual5, eArea::Garden ; room: GardenShaft - d_byte eFlag::PaperManual6, $ff ; TODO + d_byte eFlag::PaperManual3, eArea::Garden ; room: GardenCrossroad + d_byte eFlag::PaperManual4, eArea::Lava ; room: LavaStation + d_byte eFlag::PaperManual5, eArea::Factory ; room: FactoryUpper + d_byte eFlag::PaperManual6, eArea::Garden ; room: GardenShaft d_byte eFlag::PaperManual7, $ff ; TODO d_byte eFlag::PaperManual8, $ff ; TODO d_byte eFlag::PaperManual9, eArea::Temple ; room: TempleApse diff --git a/src/rooms/factory_upper.asm b/src/rooms/factory_upper.asm index 8f8efac3..398853ba 100644 --- a/src/rooms/factory_upper.asm +++ b/src/rooms/factory_upper.asm @@ -204,7 +204,7 @@ _Devices_sDevice_arr: d_byte Type_eDevice, eDevice::Paper d_byte BlockRow_u8, 21 d_byte BlockCol_u8, 8 - d_byte Target_byte, eFlag::PaperManual4 + d_byte Target_byte, eFlag::PaperManual5 D_END .assert * - :- <= kMaxDevices * .sizeof(sDevice), error .byte eDevice::None @@ -288,11 +288,11 @@ _BottomSmallWheel: .SEGMENT "PRGA_Dialog" -.EXPORT DataA_Dialog_PaperManual4_sDialog -.PROC DataA_Dialog_PaperManual4_sDialog - dlg_Text Paper, DataA_Text1_PaperManual4_Page1_u8_arr - dlg_Text Paper, DataA_Text1_PaperManual4_Page2_u8_arr - dlg_Text Paper, DataA_Text1_PaperManual4_Page3_u8_arr +.EXPORT DataA_Dialog_PaperManual5_sDialog +.PROC DataA_Dialog_PaperManual5_sDialog + dlg_Text Paper, DataA_Text1_PaperManual5_Page1_u8_arr + dlg_Text Paper, DataA_Text1_PaperManual5_Page2_u8_arr + dlg_Text Paper, DataA_Text1_PaperManual5_Page3_u8_arr dlg_Done .ENDPROC @@ -300,21 +300,21 @@ _BottomSmallWheel: .SEGMENT "PRGA_Text1" -.PROC DataA_Text1_PaperManual4_Page1_u8_arr - .byte "CPU FIELD MANUAL p.4:$" +.PROC DataA_Text1_PaperManual5_Page1_u8_arr + .byte "CPU FIELD MANUAL p.5:$" .byte "Common register names:$" .byte " F:flag D:distance$" .byte " J:index K:key/lock#" .ENDPROC -.PROC DataA_Text1_PaperManual4_Page2_u8_arr +.PROC DataA_Text1_PaperManual5_Page2_u8_arr .byte "L/R:lever M:mirror$" .byte " P:power S:sensor$" .byte " T:turn U:upper$" .byte " V:valve W:weight#" .ENDPROC -.PROC DataA_Text1_PaperManual4_Page3_u8_arr +.PROC DataA_Text1_PaperManual5_Page3_u8_arr .byte " X:horzizontal offset$" .byte " Y:vertical ascent$" .byte " Z:vertical descent#" diff --git a/src/rooms/garden_crossroad.asm b/src/rooms/garden_crossroad.asm index db32bdc2..fad1c678 100644 --- a/src/rooms/garden_crossroad.asm +++ b/src/rooms/garden_crossroad.asm @@ -21,6 +21,7 @@ .INCLUDE "../actors/grub.inc" .INCLUDE "../charmap.inc" .INCLUDE "../device.inc" +.INCLUDE "../dialog.inc" .INCLUDE "../flag.inc" .INCLUDE "../machine.inc" .INCLUDE "../machines/lift.inc" @@ -181,6 +182,12 @@ _Devices_sDevice_arr: d_byte BlockCol_u8, 4 d_byte Target_byte, sState::Lever_u8 D_END + D_STRUCT sDevice + d_byte Type_eDevice, eDevice::Paper + d_byte BlockRow_u8, 13 + d_byte BlockCol_u8, 7 + d_byte Target_byte, eFlag::PaperManual3 + D_END .assert * - :- <= kMaxDevices * .sizeof(sDevice), error .byte eDevice::None _Passages_sPassage_arr: @@ -282,3 +289,31 @@ _ReadL: .ENDPROC ;;;=========================================================================;;; + +.SEGMENT "PRGA_Dialog" + +.EXPORT DataA_Dialog_PaperManual3_sDialog +.PROC DataA_Dialog_PaperManual3_sDialog + dlg_Text Paper, DataA_Text2_PaperManual3_Page1_u8_arr + dlg_Text Paper, DataA_Text2_PaperManual3_Page2_u8_arr + dlg_Done +.ENDPROC + +;;;=========================================================================;;; + +.SEGMENT "PRGA_Text2" + +.PROC DataA_Text2_PaperManual3_Page1_u8_arr + .byte "CPU FIELD MANUAL p.3:$" + .byte "A program loops until$" + .byte "an END is reached or$" + .byte "an error occurs.#" +.ENDPROC + +.PROC DataA_Text2_PaperManual3_Page2_u8_arr + .byte "An error occurs if a$" + .byte "machine tries to MOVE$" + .byte "or ACT but cannot.#" +.ENDPROC + +;;;=========================================================================;;; diff --git a/src/rooms/garden_shaft.asm b/src/rooms/garden_shaft.asm index 0552046e..4902d015 100644 --- a/src/rooms/garden_shaft.asm +++ b/src/rooms/garden_shaft.asm @@ -217,7 +217,7 @@ _Devices_sDevice_arr: d_byte Type_eDevice, eDevice::Paper d_byte BlockRow_u8, 11 d_byte BlockCol_u8, 1 - d_byte Target_byte, eFlag::PaperManual5 + d_byte Target_byte, eFlag::PaperManual6 D_END .assert * - :- <= kMaxDevices * .sizeof(sDevice), error .byte eDevice::None @@ -299,10 +299,10 @@ _Passages_sPassage_arr: .SEGMENT "PRGA_Dialog" -.EXPORT DataA_Dialog_PaperManual5_sDialog -.PROC DataA_Dialog_PaperManual5_sDialog - dlg_Text Paper, DataA_Text0_PaperManual5_Page1_u8_arr - dlg_Text Paper, DataA_Text0_PaperManual5_Page2_u8_arr +.EXPORT DataA_Dialog_PaperManual6_sDialog +.PROC DataA_Dialog_PaperManual6_sDialog + dlg_Text Paper, DataA_Text0_PaperManual6_Page1_u8_arr + dlg_Text Paper, DataA_Text0_PaperManual6_Page2_u8_arr dlg_Done .ENDPROC @@ -310,14 +310,14 @@ _Passages_sPassage_arr: .SEGMENT "PRGA_Text0" -.PROC DataA_Text0_PaperManual5_Page1_u8_arr - .byte "CPU FIELD MANUAL p.5:$" +.PROC DataA_Text0_PaperManual6_Page1_u8_arr + .byte "CPU FIELD MANUAL p.6:$" .byte "It can be useful to$" .byte "compare one register$" .byte "directly to another.#" .ENDPROC -.PROC DataA_Text0_PaperManual5_Page2_u8_arr +.PROC DataA_Text0_PaperManual6_Page2_u8_arr .byte "For example$" .byte " :IF Y>L$" .byte " :MOVE ", kTileIdBgArrowDown, "$" diff --git a/src/rooms/lava_station.asm b/src/rooms/lava_station.asm index ace66afa..44ac6d47 100644 --- a/src/rooms/lava_station.asm +++ b/src/rooms/lava_station.asm @@ -182,7 +182,7 @@ _Devices_sDevice_arr: d_byte Type_eDevice, eDevice::Paper d_byte BlockRow_u8, 4 d_byte BlockCol_u8, 27 - d_byte Target_byte, eFlag::PaperManual3 + d_byte Target_byte, eFlag::PaperManual4 D_END .assert * - :- <= kMaxDevices * .sizeof(sDevice), error .byte eDevice::None @@ -243,10 +243,10 @@ _ValvePipePlatformIndex_u8_arr4: .SEGMENT "PRGA_Dialog" -.EXPORT DataA_Dialog_PaperManual3_sDialog -.PROC DataA_Dialog_PaperManual3_sDialog - dlg_Text Paper, DataA_Text0_PaperManual3_Page1_u8_arr - dlg_Text Paper, DataA_Text0_PaperManual3_Page2_u8_arr +.EXPORT DataA_Dialog_PaperManual4_sDialog +.PROC DataA_Dialog_PaperManual4_sDialog + dlg_Text Paper, DataA_Text0_PaperManual4_Page1_u8_arr + dlg_Text Paper, DataA_Text0_PaperManual4_Page2_u8_arr dlg_Done .ENDPROC @@ -254,14 +254,14 @@ _ValvePipePlatformIndex_u8_arr4: .SEGMENT "PRGA_Text0" -.PROC DataA_Text0_PaperManual3_Page1_u8_arr - .byte "CPU FIELD MANUAL p.3:$" +.PROC DataA_Text0_PaperManual4_Page1_u8_arr + .byte "CPU FIELD MANUAL p.4:$" .byte "Every machine has an$" .byte "`A' register that you$" .byte "can COPY values into.#" .ENDPROC -.PROC DataA_Text0_PaperManual3_Page2_u8_arr +.PROC DataA_Text0_PaperManual4_Page2_u8_arr .byte "Unlike other registers$" .byte "it does nothing on its$" .byte "own, but it can store$"