Commit graph

10 commits

Author SHA1 Message Date
Kaloyan Chehlarski
c07720c1c0 NANCY: Fix RippedLetterPuzzle breakage on exit
The puzzle may be left in a broken state when a save is
initiated or when clicking a scene item while holding a
puzzle piece. The held piece is now tracked inside the
puzzle state object, and put in its place whenever the
game is saved/the puzzle is reopened.
2024-07-21 21:51:28 +02:00
Kaloyan Chehlarski
0b8e43f65f NANCY: Implement jornal-editing action records
Implemented the AddListEntry, DeleteListEntry, and
MarkListEntry action records. These are responsible for
modifying the list of autotext strings for each autotext
surface. Also, the JournalData struct now includes data
for entry marking. The last change breaks compatibility
with nancy6+ saves.
2024-02-08 23:12:14 +01:00
Kaloyan Chehlarski
1369449374 NANCY: Implement SetValue
Added support for the simplest of the data access action
records. This simply sets or adds to a value inside the
TableData struct.
2024-02-07 23:15:23 +01:00
Kaloyan Chehlarski
f5311cfe87 NANCY: Expand TableData struct
From nancy8 on, a new method of writing and evaluating
data started being used. This commit expands the existing
TableData struct to accommodate it.
2024-02-07 23:15:23 +01:00
Kaloyan Chehlarski
caf29003bd NANCY: Retain AssemblyPuzzle solve state
Added a PuzzleData struct for AssemblyPuzzle, which ensures
that loading the puzzle again after it's solved will show the
assembled state, instead of restarting the puzzle.
2023-12-28 23:58:17 +02:00
Kaloyan Chehlarski
56b48f6186 NANCY: Add GetEngineData macro
Added a macro that hides away the ugly casts whenever
an EngineData object is requested.
2023-10-12 12:42:28 +03:00
Kaloyan Chehlarski
82c3d2ae0b NANCY: Implement table indexing record types
Added support for three different action records types
(TableIndexOverlay, TableIndexPlaySound, and
TableIndexSetValueHS), all of which use nancy6's newly-
introduced TABL chunk, which describes a table of values
that can be changed through interaction. This is used
in nancy6's museum narrations puzzle.
2023-09-24 17:43:28 +03:00
Kaloyan Chehlarski
120160b6e4 NANCY: Implement Autotext
Implemented the Autotext record type, which is used for
text rendering (prior to its introduction in nancy6, all
in-game text was prerendered). Made relevant changes to
the Overlay and Hypertext classes to support it.
2023-09-23 21:59:40 +03:00
Kaloyan Chehlarski
e9779c0c36 NANCY: Implement SoundEqualizerPuzzle
Implemented the SoundEqualizerPuzzle, used for nancy2's
mixing console sequence. Also extended the SoundManager
to accommodate the need to change volume and playback
rate while a sound is playing.
2023-07-13 14:32:46 +03:00
Kaloyan Chehlarski
c6164fcf4a NANCY: Improve puzzle data storage and saving
Changed the way game-specific puzzle data is stored and
saved. Scene now holds a HashMap of lazily initialized
PuzzleData objects, each of which stores data for a specific
puzzle type. This helps avoid long switch statements in
the initialization and save/load code, and helps avoid
breaking savefiles every time a new puzzle type
is implemented.
2023-05-07 11:46:35 +03:00